From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [v2 3/3] tools & docs: add L2 CAT support in tools and docs. Date: Thu, 22 Sep 2016 10:17:20 +0800 Message-ID: <1474510640-29621-1-git-send-email-yi.y.sun@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bmta4-0007Rw-0L for xen-devel@lists.xenproject.org; Thu, 22 Sep 2016 02:17:44 +0000 List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: wei.liu2@citrix.com, he.chen@linux.intel.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, Yi Sun , jbeulich@suse.com, chao.p.peng@linux.intel.com List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBpcyB0aGUgeGwveGMgY2hhbmdlcyB0byBzdXBwb3J0IEludGVsIEwyIENBVAoo Q2FjaGUgQWxsb2NhdGlvbiBUZWNobm9sb2d5KS4KClRoZSBuZXcgbGV2ZWwgb3B0aW9uIGlzIGlu dHJvZHVjZWQgdG8gb3JpZ2luYWwgQ0FUIHNldHRpbmcKY29tbWFuZCBpbiBvcmRlciB0byBzZXQg Q0JNIGZvciBzcGVjaWZpZWQgbGV2ZWwgQ0FULgotICd4bCBwc3ItaHdpbmZvJyBpcyB1cGRhdGVk IHRvIHNob3cgYm90aCBMMyBDQVQgYW5kIEwyIENBVAogIGluZm8uCi0gJ3hsIHBzci1jYXQtY2Jt LXNldCcgaXMgdXBkYXRlZCB0byBzZXQgY2FjaGUgY2FwYWNpdHkKICBiaXRtYXNrcyhDQk0pIGZv ciBhIGRvbWFpbiBhY2NvcmRpbmcgdG8gaW5wdXQgY2FjaGUgbGV2ZWwuCi0gJ3hsIHBzci1jYXQt c2hvdycgaXMgdXBkYXRlZCB0byBzaG93IENCTSBvZiBhIGRvbWFpbgogIGFjY29yZGluZyB0byBp bnB1dCBjYWNoZSBsZXZlbC4KCkV4YW1wbGVzOgpyb290QDp+JCB4bCBwc3ItaHdpbmZvIC0tY2F0 CkNhY2hlIEFsbG9jYXRpb24gVGVjaG5vbG9neSAoQ0FUKTogTDIKU29ja2V0IElEICAgICAgIDog MApNYXhpbXVtIENPUyAgICAgOiAzCkNCTSBsZW5ndGggICAgICA6IDgKRGVmYXVsdCBDQk0gICAg IDogMHhmZgoKcm9vdEA6fiQgeGwgcHNyLWNhdC1jYm0tc2V0IC1sMiAxIDB4N2YKCnJvb3RAOn4k IHhsIHBzci1jYXQtc2hvdyAtbDIgMQpTb2NrZXQgSUQgICAgICAgOiAwCkRlZmF1bHQgQ0JNICAg ICA6IDB4ZmYKICAgSUQgICAgICAgICAgICAgICAgICAgICBOQU1FICAgICAgICAgICAgIENCTQog ICAgMSAgICAgICAgICAgICAgICAgdWJ1bnR1MTQgICAgICAgICAgICAweDdmCgpTaWduZWQtb2Zm LWJ5OiBIZSBDaGVuIDxoZS5jaGVuQGxpbnV4LmludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogWWkg U3VuIDx5aS55LnN1bkBsaW51eC5pbnRlbC5jb20+CgotLS0KQ2hhbmdlZCBzaW5jZSB2MToKICog eGxfY21kaW1wbC5jCiAgIC0gQWRkIHByb21wdCBtZXNzYWdlIHRvIGlucHV0IGNhY2hlIGxldmVs LgogKiB4Y19wc3IuYwogICAtIEFkanVzdCBjb2RlcyB0byBtYWtlIGl0IGVhc2llciB0byByZWFk LgotLS0KIGRvY3MvbWFuL3hsLnBvZC4xLmluICAgICAgICAgIHwgIDI1ICsrKysrLQogZG9jcy9t aXNjL3hsLXBzci5tYXJrZG93biAgICAgfCAgMTAgKystCiB0b29scy9saWJ4Yy9pbmNsdWRlL3hl bmN0cmwuaCB8ICAgNyArLQogdG9vbHMvbGlieGMveGNfcHNyLmMgICAgICAgICAgfCAgNDcgKysr KysrKy0tLQogdG9vbHMvbGlieGwvbGlieGwuaCAgICAgICAgICAgfCAgIDIgKwogdG9vbHMvbGli eGwvbGlieGxfcHNyLmMgICAgICAgfCAgNTAgKysrKysrKysrKy0KIHRvb2xzL2xpYnhsL2xpYnhs X3R5cGVzLmlkbCAgIHwgICAxICsKIHRvb2xzL2xpYnhsL3hsX2NtZGltcGwuYyAgICAgIHwgMTk1 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLQogdG9vbHMvbGlieGwv eGxfY21kdGFibGUuYyAgICAgfCAgIDQgKy0KIDkgZmlsZXMgY2hhbmdlZCwgMjg3IGluc2VydGlv bnMoKyksIDU0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvY3MvbWFuL3hsLnBvZC4xLmlu IGIvZG9jcy9tYW4veGwucG9kLjEuaW4KaW5kZXggYTJiZTU0MS4uZjc4ODdhYyAxMDA2NDQKLS0t IGEvZG9jcy9tYW4veGwucG9kLjEuaW4KKysrIGIvZG9jcy9tYW4veGwucG9kLjEuaW4KQEAgLTE2 OTYsNiArMTY5Niw5IEBAIG9jY3VwYW5jeSBtb25pdG9yaW5nIHNoYXJlIHRoZSBzYW1lIHNldCBv ZiB1bmRlcmx5aW5nIG1vbml0b3Jpbmcgc2VydmljZS4gT25jZQogYSBkb21haW4gaXMgYXR0YWNo ZWQgdG8gdGhlIG1vbml0b3Jpbmcgc2VydmljZSwgbW9uaXRvcmluZyBkYXRhIGNhbiBiZSBzaG93 bgogZm9yIGFueSBvZiB0aGVzZSBtb25pdG9yaW5nIHR5cGVzLgogCitUaGVyZSBpcyBubyBjYWNo ZSBtb25pdG9yaW5nIGFuZCBtZW1vcnkgYmFuZHdpZHRoIG1vbml0b3Jpbmcgb24gTDIgY2FjaGUg c28KK2Zhci4KKwogPW92ZXIgNAogCiA9aXRlbSBCPHBzci1jbXQtYXR0YWNoPiBbSTxkb21haW4t aWQ+XQpAQCAtMTcyMCw3ICsxNzIzLDcgQEAgbW9uaXRvciB0eXBlcyBhcmU6CiAKIEludGVsIEJy b2Fkd2VsbCBhbmQgbGF0ZXIgc2VydmVyIHBsYXRmb3JtcyBvZmZlciBjYXBhYmlsaXRpZXMgdG8g Y29uZmlndXJlIGFuZAogbWFrZSB1c2Ugb2YgdGhlIENhY2hlIEFsbG9jYXRpb24gVGVjaG5vbG9n eSAoQ0FUKSBtZWNoYW5pc21zLCB3aGljaCBlbmFibGUgbW9yZQotY2FjaGUgcmVzb3VyY2VzIChp LmUuIEwzIGNhY2hlKSB0byBiZSBtYWRlIGF2YWlsYWJsZSBmb3IgaGlnaCBwcmlvcml0eQorY2Fj aGUgcmVzb3VyY2VzIChpLmUuIEwzL0wyIGNhY2hlKSB0byBiZSBtYWRlIGF2YWlsYWJsZSBmb3Ig aGlnaCBwcmlvcml0eQogYXBwbGljYXRpb25zLiBJbiB0aGUgWGVuIGltcGxlbWVudGF0aW9uLCBD QVQgaXMgdXNlZCB0byBjb250cm9sIGNhY2hlIGFsbG9jYXRpb24KIG9uIFZNIGJhc2lzLiBUbyBl bmZvcmNlIGNhY2hlIG9uIGEgc3BlY2lmaWMgZG9tYWluLCBqdXN0IHNldCBjYXBhY2l0eSBiaXRt YXNrcwogKENCTSkgZm9yIHRoZSBkb21haW4uCkBAIC0xNzMwLDcgKzE3MzMsNyBAQCBJbnRlbCBC cm9hZHdlbGwgYW5kIGxhdGVyIHNlcnZlciBwbGF0Zm9ybXMgYWxzbyBvZmZlciBDb2RlL0RhdGEg UHJpb3JpdGl6YXRpb24KIGFwcGxpY2F0aW9ucy4gQ0RQIGlzIHVzZWQgb24gYSBwZXIgVk0gYmFz aXMgaW4gdGhlIFhlbiBpbXBsZW1lbnRhdGlvbi4gVG8KIHNwZWNpZnkgY29kZSBvciBkYXRhIENC TSBmb3IgdGhlIGRvbWFpbiwgQ0RQIGZlYXR1cmUgbXVzdCBiZSBlbmFibGVkIGFuZCBDQk0KIHR5 cGUgb3B0aW9ucyBuZWVkIHRvIGJlIHNwZWNpZmllZCB3aGVuIHNldHRpbmcgQ0JNLCBhbmQgdGhl IHR5cGUgb3B0aW9ucyAoY29kZQotYW5kIGRhdGEpIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuCith bmQgZGF0YSkgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4gVGhlcmUgaXMgbm8gQ0RQIHN1cHBvcnQg b24gTDIgc28gZmFyLgogCiA9b3ZlciA0CiAKQEAgLTE3NDcsNiArMTc1MCwxMSBAQCBCPE9QVElP TlM+CiAKIFNwZWNpZnkgdGhlIHNvY2tldCB0byBwcm9jZXNzLCBvdGhlcndpc2UgYWxsIHNvY2tl dHMgYXJlIHByb2Nlc3NlZC4KIAorPWl0ZW0gQjwtbCBMRVZFTD4sIEI8LS1sZXZlbD1MRVZFTD4K KworU3BlY2lmeSB0aGUgY2FjaGUgbGV2ZWwgdG8gcHJvY2Vzcywgb3RoZXJ3aXNlIHRoZSBsYXN0 IGxldmVsIGNhY2hlIGlzCitwcm9jZXNzZWQuCisKID1pdGVtIEI8LWM+LCBCPC0tY29kZT4KIAog U2V0IGNvZGUgQ0JNIHdoZW4gQ0RQIGlzIGVuYWJsZWQuCkBAIC0xNzU3LDEwICsxNzY1LDIxIEBA IFNldCBkYXRhIENCTSB3aGVuIENEUCBpcyBlbmFibGVkLgogCiA9YmFjawogCi09aXRlbSBCPHBz ci1jYXQtc2hvdz4gW0k8ZG9tYWluLWlkPl0KKz1pdGVtIEI8cHNyLWNhdC1zaG93PiBbSTxPUFRJ T05TPl0gW0k8ZG9tYWluLWlkPl0KIAogU2hvdyBDQVQgc2V0dGluZ3MgZm9yIGEgY2VydGFpbiBk b21haW4gb3IgYWxsIGRvbWFpbnMuCiAKK0I8T1BUSU9OUz4KKworPW92ZXIgNAorCis9aXRlbSBC PC1sIExFVkVMPiwgQjwtLWxldmVsPUxFVkVMPgorCitTcGVjaWZ5IHRoZSBjYWNoZSBsZXZlbCB0 byBwcm9jZXNzLCBvdGhlcndpc2UgdGhlIGxhc3QgbGV2ZWwgY2FjaGUgaXMKK3Byb2Nlc3NlZC4K KworPWJhY2sKKwogPWJhY2sKIAogPWhlYWQxIElHTk9SRUQgRk9SIENPTVBBVElCSUxJVFkgV0lU SCBYTQpkaWZmIC0tZ2l0IGEvZG9jcy9taXNjL3hsLXBzci5tYXJrZG93biBiL2RvY3MvbWlzYy94 bC1wc3IubWFya2Rvd24KaW5kZXggYzNjMWU4ZS4uYmQyYjZiZCAxMDA2NDQKLS0tIGEvZG9jcy9t aXNjL3hsLXBzci5tYXJrZG93bgorKysgYi9kb2NzL21pc2MveGwtcHNyLm1hcmtkb3duCkBAIC03 MCw3ICs3MCw3IEBAIHRvdGFsLW1lbS1iYW5kd2lkdGggaW5zdGVhZCBvZiBjYWNoZS1vY2N1cGFu Y3kpLiBFLmcuIGFmdGVyIGEgYHhsIHBzci1jbXQtYXR0YWNoCiAKIENhY2hlIEFsbG9jYXRpb24g VGVjaG5vbG9neSAoQ0FUKSBpcyBhIG5ldyBmZWF0dXJlIGF2YWlsYWJsZSBvbiBJbnRlbAogQnJv YWR3ZWxsIGFuZCBsYXRlciBzZXJ2ZXIgcGxhdGZvcm1zIHRoYXQgYWxsb3dzIGFuIE9TIG9yIEh5 cGVydmlzb3IvVk1NIHRvCi1wYXJ0aXRpb24gY2FjaGUgYWxsb2NhdGlvbiAoaS5lLiBMMyBjYWNo ZSkgYmFzZWQgb24gYXBwbGljYXRpb24gcHJpb3JpdHkgb3IKK3BhcnRpdGlvbiBjYWNoZSBhbGxv Y2F0aW9uIChpLmUuIEwzL0wyIGNhY2hlKSBiYXNlZCBvbiBhcHBsaWNhdGlvbiBwcmlvcml0eSBv cgogQ2xhc3Mgb2YgU2VydmljZSAoQ09TKS4gRWFjaCBDT1MgaXMgY29uZmlndXJlZCB1c2luZyBj YXBhY2l0eSBiaXRtYXNrcyAoQ0JNKQogd2hpY2ggcmVwcmVzZW50IGNhY2hlIGNhcGFjaXR5IGFu ZCBpbmRpY2F0ZSB0aGUgZGVncmVlIG9mIG92ZXJsYXAgYW5kCiBpc29sYXRpb24gYmV0d2VlbiBj bGFzc2VzLiBTeXN0ZW0gY2FjaGUgcmVzb3VyY2UgaXMgZGl2aWRlZCBpbnRvIG51bWJlcnMgb2YK QEAgLTExOSwxMyArMTE5LDE5IEBAIEEgY2JtIGlzIHZhbGlkIG9ubHkgd2hlbjoKIEluIGEgbXVs dGktc29ja2V0IHN5c3RlbSwgdGhlIHNhbWUgY2JtIHdpbGwgYmUgc2V0IG9uIGVhY2ggc29ja2V0 IGJ5IGRlZmF1bHQuCiBQZXIgc29ja2V0IGNibSBjYW4gYmUgc3BlY2lmaWVkIHdpdGggdGhlIGAt LXNvY2tldCBTT0NLRVRgIG9wdGlvbi4KIAorSW4gZGlmZmVyZW50IHN5c3RlbXMsIHRoZSBkaWZm ZXJlbnQgY2FjaGUgbGV2ZWwgaXMgc3VwcG9ydGVkLCBlLmcuIEwzIGNhY2hlIG9yCitMMiBjYWNo ZS4gUGVyIGNhY2hlIGxldmVsIGNibSBjYW4gYmUgc3BlY2lmaWVkIHdpdGggdGhlIGAtLWxldmVs IExFVkVMYCBvcHRpb24uCisKIFNldHRpbmcgdGhlIENCTSBtYXkgbm90IGJlIHN1Y2Nlc3NmdWwg aWYgaW5zdWZmaWNpZW50IENPUyBpcyBhdmFpbGFibGUuIEluCiBzdWNoIGNhc2UgdW51c2VkIENP UyhlcykgbWF5IGJlIGZyZWVkIGJ5IHNldHRpbmcgQ0JNIG9mIGFsbCByZWxhdGVkIGRvbWFpbnMg dG8KIGl0cyBkZWZhdWx0IHZhbHVlKGFsbC1vbmVzKS4KIAogUGVyIGRvbWFpbiBDQk0gc2V0dGlu Z3MgY2FuIGJlIHNob3duIGJ5OgogCi1geGwgcHNyLWNhdC1zaG93YAorYHhsIHBzci1jYXQtc2hv dyBbT1BUSU9OU10gPGRvbWlkPmAKKworSW4gZGlmZmVyZW50IHN5c3RlbXMsIHRoZSBkaWZmZXJl bnQgY2FjaGUgbGV2ZWwgaXMgc3VwcG9ydGVkLCBlLmcuIEwzIGNhY2hlIG9yCitMMiBjYWNoZS4g UGVyIGNhY2hlIGxldmVsIGNibSBjYW4gYmUgc3BlY2lmaWVkIHdpdGggdGhlIGAtLWxldmVsIExF VkVMYCBvcHRpb24uCiAKICMjIENvZGUgYW5kIERhdGEgUHJpb3JpdGl6YXRpb24gKENEUCkKIApk aWZmIC0tZ2l0IGEvdG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmggYi90b29scy9saWJ4Yy9p bmNsdWRlL3hlbmN0cmwuaAppbmRleCA1NjBjZTdiLi5kNzBlOGE4IDEwMDY0NAotLS0gYS90b29s cy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaAorKysgYi90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0 cmwuaApAQCAtMjU4NSw2ICsyNTg1LDcgQEAgZW51bSB4Y19wc3JfY2F0X3R5cGUgewogICAgIFhD X1BTUl9DQVRfTDNfQ0JNICAgICAgPSAxLAogICAgIFhDX1BTUl9DQVRfTDNfQ0JNX0NPREUgPSAy LAogICAgIFhDX1BTUl9DQVRfTDNfQ0JNX0RBVEEgPSAzLAorICAgIFhDX1BTUl9DQVRfTDJfQ0JN ICAgICAgPSA0LAogfTsKIHR5cGVkZWYgZW51bSB4Y19wc3JfY2F0X3R5cGUgeGNfcHNyX2NhdF90 eXBlOwogCkBAIC0yNjA5LDkgKzI2MTAsOSBAQCBpbnQgeGNfcHNyX2NhdF9zZXRfZG9tYWluX2Rh dGEoeGNfaW50ZXJmYWNlICp4Y2gsIHVpbnQzMl90IGRvbWlkLAogaW50IHhjX3Bzcl9jYXRfZ2V0 X2RvbWFpbl9kYXRhKHhjX2ludGVyZmFjZSAqeGNoLCB1aW50MzJfdCBkb21pZCwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB4Y19wc3JfY2F0X3R5cGUgdHlwZSwgdWludDMyX3QgdGFy Z2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90ICpkYXRhKTsKLWlu dCB4Y19wc3JfY2F0X2dldF9sM19pbmZvKHhjX2ludGVyZmFjZSAqeGNoLCB1aW50MzJfdCBzb2Nr ZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqY29zX21heCwgdWludDMy X3QgKmNibV9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBib29sICpjZHBfZW5hYmxl ZCk7CitpbnQgeGNfcHNyX2NhdF9nZXRfaW5mbyh4Y19pbnRlcmZhY2UgKnhjaCwgdWludDMyX3Qg c29ja2V0LCBpbnQgbHZsLAorICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgKmNvc19t YXgsIHVpbnQzMl90ICpjYm1fbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCAqY2Rw X2VuYWJsZWQpOwogCiBpbnQgeGNfZ2V0X2NwdV9sZXZlbGxpbmdfY2Fwcyh4Y19pbnRlcmZhY2Ug KnhjaCwgdWludDMyX3QgKmNhcHMpOwogaW50IHhjX2dldF9jcHVfZmVhdHVyZXNldCh4Y19pbnRl cmZhY2UgKnhjaCwgdWludDMyX3QgaW5kZXgsCmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy94Y19w c3IuYyBiL3Rvb2xzL2xpYnhjL3hjX3Bzci5jCmluZGV4IDQzYjMyODYuLjc1OGYyZmMgMTAwNjQ0 Ci0tLSBhL3Rvb2xzL2xpYnhjL3hjX3Bzci5jCisrKyBiL3Rvb2xzL2xpYnhjL3hjX3Bzci5jCkBA IC0yNjYsNiArMjY2LDkgQEAgaW50IHhjX3Bzcl9jYXRfc2V0X2RvbWFpbl9kYXRhKHhjX2ludGVy ZmFjZSAqeGNoLCB1aW50MzJfdCBkb21pZCwKICAgICBjYXNlIFhDX1BTUl9DQVRfTDNfQ0JNX0RB VEE6CiAgICAgICAgIGNtZCA9IFhFTl9ET01DVExfUFNSX0NBVF9PUF9TRVRfTDNfREFUQTsKICAg ICAgICAgYnJlYWs7CisgICAgY2FzZSBYQ19QU1JfQ0FUX0wyX0NCTToKKyAgICAgICAgY21kID0g WEVOX0RPTUNUTF9QU1JfQ0FUX09QX1NFVF9MMl9DQk07CisgICAgICAgIGJyZWFrOwogICAgIGRl ZmF1bHQ6CiAgICAgICAgIGVycm5vID0gRUlOVkFMOwogICAgICAgICByZXR1cm4gLTE7CkBAIC0y OTksNiArMzAyLDkgQEAgaW50IHhjX3Bzcl9jYXRfZ2V0X2RvbWFpbl9kYXRhKHhjX2ludGVyZmFj ZSAqeGNoLCB1aW50MzJfdCBkb21pZCwKICAgICBjYXNlIFhDX1BTUl9DQVRfTDNfQ0JNX0RBVEE6 CiAgICAgICAgIGNtZCA9IFhFTl9ET01DVExfUFNSX0NBVF9PUF9HRVRfTDNfREFUQTsKICAgICAg ICAgYnJlYWs7CisgICAgY2FzZSBYQ19QU1JfQ0FUX0wyX0NCTToKKyAgICAgICAgY21kID0gWEVO X0RPTUNUTF9QU1JfQ0FUX09QX0dFVF9MMl9DQk07CisgICAgICAgIGJyZWFrOwogICAgIGRlZmF1 bHQ6CiAgICAgICAgIGVycm5vID0gRUlOVkFMOwogICAgICAgICByZXR1cm4gLTE7CkBAIC0zMTcs MjQgKzMyMyw0MSBAQCBpbnQgeGNfcHNyX2NhdF9nZXRfZG9tYWluX2RhdGEoeGNfaW50ZXJmYWNl ICp4Y2gsIHVpbnQzMl90IGRvbWlkLAogICAgIHJldHVybiByYzsKIH0KIAotaW50IHhjX3Bzcl9j YXRfZ2V0X2wzX2luZm8oeGNfaW50ZXJmYWNlICp4Y2gsIHVpbnQzMl90IHNvY2tldCwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICpjb3NfbWF4LCB1aW50MzJfdCAqY2JtX2xl biwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgKmNkcF9lbmFibGVkKQorI2RlZmlu ZSBMM19DQVQgMworI2RlZmluZSBMMl9DQVQgMgoraW50IHhjX3Bzcl9jYXRfZ2V0X2luZm8oeGNf aW50ZXJmYWNlICp4Y2gsIHVpbnQzMl90IHNvY2tldCwgaW50IGx2bCwKKyAgICAgICAgICAgICAg ICAgICAgICAgIHVpbnQzMl90ICpjb3NfbWF4LCB1aW50MzJfdCAqY2JtX2xlbiwKKyAgICAgICAg ICAgICAgICAgICAgICAgIGJvb2wgKmNkcF9lbmFibGVkKQogewotICAgIGludCByYzsKKyAgICBp bnQgcmMgPSAtMTsKICAgICBERUNMQVJFX1NZU0NUTDsKIAogICAgIHN5c2N0bC5jbWQgPSBYRU5f U1lTQ1RMX3Bzcl9jYXRfb3A7Ci0gICAgc3lzY3RsLnUucHNyX2NhdF9vcC5jbWQgPSBYRU5fU1lT Q1RMX1BTUl9DQVRfZ2V0X2wzX2luZm87CiAgICAgc3lzY3RsLnUucHNyX2NhdF9vcC50YXJnZXQg PSBzb2NrZXQ7CiAKLSAgICByYyA9IHhjX3N5c2N0bCh4Y2gsICZzeXNjdGwpOwotICAgIGlmICgg IXJjICkKLSAgICB7Ci0gICAgICAgICpjb3NfbWF4ID0gc3lzY3RsLnUucHNyX2NhdF9vcC51Lmwz X2luZm8uY29zX21heDsKLSAgICAgICAgKmNibV9sZW4gPSBzeXNjdGwudS5wc3JfY2F0X29wLnUu bDNfaW5mby5jYm1fbGVuOwotICAgICAgICAqY2RwX2VuYWJsZWQgPSBzeXNjdGwudS5wc3JfY2F0 X29wLnUubDNfaW5mby5mbGFncyAmCi0gICAgICAgICAgICAgICAgICAgICAgIFhFTl9TWVNDVExf UFNSX0NBVF9MM19DRFA7CisgICAgc3dpdGNoICggbHZsICkgeworICAgIGNhc2UgTDJfQ0FUOgor ICAgICAgICBzeXNjdGwudS5wc3JfY2F0X29wLmNtZCA9IFhFTl9TWVNDVExfUFNSX0NBVF9nZXRf bDJfaW5mbzsKKyAgICAgICAgcmMgPSB4Y19zeXNjdGwoeGNoLCAmc3lzY3RsKTsKKyAgICAgICAg aWYgKCAhcmMgKQorICAgICAgICB7CisgICAgICAgICAgICAqY29zX21heCA9IHN5c2N0bC51LnBz cl9jYXRfb3AudS5sMl9pbmZvLmNvc19tYXg7CisgICAgICAgICAgICAqY2JtX2xlbiA9IHN5c2N0 bC51LnBzcl9jYXRfb3AudS5sMl9pbmZvLmNibV9sZW47CisgICAgICAgIH0KKyAgICAgICAgYnJl YWs7CisgICAgY2FzZSBMM19DQVQ6CisgICAgICAgIHN5c2N0bC51LnBzcl9jYXRfb3AuY21kID0g WEVOX1NZU0NUTF9QU1JfQ0FUX2dldF9sM19pbmZvOworICAgICAgICByYyA9IHhjX3N5c2N0bCh4 Y2gsICZzeXNjdGwpOworICAgICAgICBpZiAoICFyYyApCisgICAgICAgIHsKKyAgICAgICAgICAg ICpjb3NfbWF4ID0gc3lzY3RsLnUucHNyX2NhdF9vcC51LmwzX2luZm8uY29zX21heDsKKyAgICAg ICAgICAgICpjYm1fbGVuID0gc3lzY3RsLnUucHNyX2NhdF9vcC51LmwzX2luZm8uY2JtX2xlbjsK KyAgICAgICAgICAgICpjZHBfZW5hYmxlZCA9IHN5c2N0bC51LnBzcl9jYXRfb3AudS5sM19pbmZv LmZsYWdzICYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTl9TWVNDVExfUFNSX0NBVF9M M19DRFA7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAg cmV0dXJuIHJjOwogICAgIH0KIAogICAgIHJldHVybiByYzsKZGlmZiAtLWdpdCBhL3Rvb2xzL2xp YnhsL2xpYnhsLmggYi90b29scy9saWJ4bC9saWJ4bC5oCmluZGV4IDdjZmE1NDAuLmIxNTQyNjcg MTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsLmgKKysrIGIvdG9vbHMvbGlieGwvbGlieGwu aApAQCAtMjE0Nyw2ICsyMTQ3LDggQEAgaW50IGxpYnhsX3Bzcl9jYXRfZ2V0X2NibShsaWJ4bF9j dHggKmN0eCwgdWludDMyX3QgZG9taWQsCiAgKi8KIGludCBsaWJ4bF9wc3JfY2F0X2dldF9sM19p bmZvKGxpYnhsX2N0eCAqY3R4LCBsaWJ4bF9wc3JfY2F0X2luZm8gKippbmZvLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaW50ICpucik7CitpbnQgbGlieGxfcHNyX2NhdF9nZXRfaW5m byhsaWJ4bF9jdHggKmN0eCwgbGlieGxfcHNyX2NhdF9pbmZvICoqaW5mbywKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgIGludCAqbnIsIGludCBsdmwpOwogdm9pZCBsaWJ4bF9wc3JfY2F0X2lu Zm9fbGlzdF9mcmVlKGxpYnhsX3Bzcl9jYXRfaW5mbyAqbGlzdCwgaW50IG5yKTsKICNlbmRpZgog CmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9wc3IuYyBiL3Rvb2xzL2xpYnhsL2xpYnhs X3Bzci5jCmluZGV4IDk5NzMzZjYuLjg2MWQ1YTggMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xp YnhsX3Bzci5jCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX3Bzci5jCkBAIC0zNzksOCArMzc5LDU0 IEBAIGludCBsaWJ4bF9wc3JfY2F0X2dldF9sM19pbmZvKGxpYnhsX2N0eCAqY3R4LCBsaWJ4bF9w c3JfY2F0X2luZm8gKippbmZvLAogCiAgICAgbGlieGxfZm9yX2VhY2hfc2V0X2JpdChzb2NrZXRp ZCwgc29ja2V0bWFwKSB7CiAgICAgICAgIHB0cltpXS5pZCA9IHNvY2tldGlkOwotICAgICAgICBp ZiAoeGNfcHNyX2NhdF9nZXRfbDNfaW5mbyhjdHgtPnhjaCwgc29ja2V0aWQsICZwdHJbaV0uY29z X21heCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnB0cltpXS5jYm1fbGVu LCAmcHRyW2ldLmNkcF9lbmFibGVkKSkgeworICAgICAgICBpZiAoeGNfcHNyX2NhdF9nZXRfaW5m byhjdHgtPnhjaCwgc29ja2V0aWQsIDMsICZwdHJbaV0uY29zX21heCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJnB0cltpXS5jYm1fbGVuLCAmcHRyW2ldLmNkcF9lbmFibGVkKSkg eworICAgICAgICAgICAgbGlieGxfX3Bzcl9jYXRfbG9nX2Vycl9tc2coZ2MsIGVycm5vKTsKKyAg ICAgICAgICAgIHJjID0gRVJST1JfRkFJTDsKKyAgICAgICAgICAgIGZyZWUocHRyKTsKKyAgICAg ICAgICAgIGdvdG8gb3V0OworICAgICAgICB9CisgICAgICAgIGkrKzsKKyAgICB9CisKKyAgICAq aW5mbyA9IHB0cjsKKyAgICAqbnIgPSBpOworb3V0OgorICAgIGxpYnhsX2JpdG1hcF9kaXNwb3Nl KCZzb2NrZXRtYXApOworICAgIEdDX0ZSRUU7CisgICAgcmV0dXJuIHJjOworfQorCitpbnQgbGli eGxfcHNyX2NhdF9nZXRfaW5mbyhsaWJ4bF9jdHggKmN0eCwgbGlieGxfcHNyX2NhdF9pbmZvICoq aW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAqbnIsIGludCBsdmwpCit7Cisg ICAgR0NfSU5JVChjdHgpOworICAgIGludCByYzsKKyAgICBpbnQgaSA9IDAsIHNvY2tldGlkLCBu cl9zb2NrZXRzOworICAgIGxpYnhsX2JpdG1hcCBzb2NrZXRtYXA7CisgICAgbGlieGxfcHNyX2Nh dF9pbmZvICpwdHI7CisKKyAgICBsaWJ4bF9iaXRtYXBfaW5pdCgmc29ja2V0bWFwKTsKKworICAg IHJjID0gbGlieGxfX2NvdW50X3BoeXNpY2FsX3NvY2tldHMoZ2MsICZucl9zb2NrZXRzKTsKKyAg ICBpZiAocmMpIHsKKyAgICAgICAgTE9HRShFUlJPUiwgImZhaWxlZCB0byBnZXQgc3lzdGVtIHNv Y2tldCBjb3VudCIpOworICAgICAgICBnb3RvIG91dDsKKyAgICB9CisKKyAgICBsaWJ4bF9zb2Nr ZXRfYml0bWFwX2FsbG9jKGN0eCwgJnNvY2tldG1hcCwgbnJfc29ja2V0cyk7CisgICAgcmMgPSBs aWJ4bF9nZXRfb25saW5lX3NvY2tldG1hcChjdHgsICZzb2NrZXRtYXApOworICAgIGlmIChyYyA8 IDApIHsKKyAgICAgICAgTE9HRShFUlJPUiwgImZhaWxlZCB0byBnZXQgYXZhaWxhYmxlIHNvY2tl dHMiKTsKKyAgICAgICAgZ290byBvdXQ7CisgICAgfQorCisgICAgcHRyID0gbGlieGxfX21hbGxv YyhOT0dDLCBucl9zb2NrZXRzICogc2l6ZW9mKGxpYnhsX3Bzcl9jYXRfaW5mbykpOworCisgICAg bGlieGxfZm9yX2VhY2hfc2V0X2JpdChzb2NrZXRpZCwgc29ja2V0bWFwKSB7CisgICAgICAgIHB0 cltpXS5pZCA9IHNvY2tldGlkOworICAgICAgICBpZiAoeGNfcHNyX2NhdF9nZXRfaW5mbyhjdHgt PnhjaCwgc29ja2V0aWQsIGx2bCwgJnB0cltpXS5jb3NfbWF4LAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAmcHRyW2ldLmNibV9sZW4sICZwdHJbaV0uY2RwX2VuYWJsZWQpKSB7CiAg ICAgICAgICAgICBsaWJ4bF9fcHNyX2NhdF9sb2dfZXJyX21zZyhnYywgZXJybm8pOwogICAgICAg ICAgICAgcmMgPSBFUlJPUl9GQUlMOwogICAgICAgICAgICAgZnJlZShwdHIpOwpkaWZmIC0tZ2l0 IGEvdG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRsIGIvdG9vbHMvbGlieGwvbGlieGxfdHlwZXMu aWRsCmluZGV4IDk4YmZjM2EuLjQ1MDNhOGIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhs X3R5cGVzLmlkbAorKysgYi90b29scy9saWJ4bC9saWJ4bF90eXBlcy5pZGwKQEAgLTg5MCw2ICs4 OTAsNyBAQCBsaWJ4bF9wc3JfY2JtX3R5cGUgPSBFbnVtZXJhdGlvbigicHNyX2NibV90eXBlIiwg WwogICAgICgxLCAiTDNfQ0JNIiksCiAgICAgKDIsICJMM19DQk1fQ09ERSIpLAogICAgICgzLCAi TDNfQ0JNX0RBVEEiKSwKKyAgICAoNCwgIkwyX0NCTSIpLAogICAgIF0pCiAKIGxpYnhsX3Bzcl9j YXRfaW5mbyA9IFN0cnVjdCgicHNyX2NhdF9pbmZvIiwgWwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGli eGwveGxfY21kaW1wbC5jIGIvdG9vbHMvbGlieGwveGxfY21kaW1wbC5jCmluZGV4IDYyMjM3ZDAu LmNjMzE5MDYgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL3hsX2NtZGltcGwuYworKysgYi90b29s cy9saWJ4bC94bF9jbWRpbXBsLmMKQEAgLTkyNzMsMTggKzkyNzMsMTI0IEBAIGludCBtYWluX3Bz cl9jbXRfc2hvdyhpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAjZW5kaWYKIAogI2lmZGVmIExJQlhM X0hBVkVfUFNSX0NBVAotc3RhdGljIGludCBwc3JfY2F0X2h3aW5mbyh2b2lkKQorc3RhdGljIHZv aWQgcHNyX2NhdF9wcmludF9vbmVfZG9tYWluX2NibV90eXBlKHVpbnQzMl90IGRvbWlkLCB1aW50 MzJfdCBzb2NrZXRpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsaWJ4bF9wc3JfY2JtX3R5cGUgdHlwZSkKK3sKKyAgICB1aW50NjRfdCBjYm07CisKKyAg ICBpZiAoIWxpYnhsX3Bzcl9jYXRfZ2V0X2NibShjdHgsIGRvbWlkLCB0eXBlLCBzb2NrZXRpZCwg JmNibSkpCisgICAgICAgIHByaW50ZigiJSMxNiJQUkl4NjQsIGNibSk7CisgICAgZWxzZQorICAg ICAgICBwcmludGYoIiUxNnMiLCAiZXJyb3IiKTsKK30KKworc3RhdGljIGludCBwc3JfbDJfY2F0 X2h3aW5mbyh2b2lkKQoreworICAgIGludCByYzsKKyAgICBpbnQgaSwgbnI7CisgICAgbGlieGxf cHNyX2NhdF9pbmZvICppbmZvOworCisgICAgcHJpbnRmKCJDYWNoZSBBbGxvY2F0aW9uIFRlY2hu b2xvZ3kgKENBVCk6IEwyXG4iKTsKKworICAgIHJjID0gbGlieGxfcHNyX2NhdF9nZXRfaW5mbyhj dHgsICZpbmZvLCAmbnIsIDIpOworICAgIGlmIChyYykgeworICAgICAgICBmcHJpbnRmKHN0ZGVy ciwgIkZhaWxlZCB0byBnZXQgbDIgY2F0IGluZm9cbiIpOworICAgICAgICByZXR1cm4gcmM7Cisg ICAgfQorCisgICAgZm9yIChpID0gMDsgaSA8IG5yOyBpKyspIHsKKyAgICAgICAgLyogVGhlcmUg aXMgbm8gQ01UIG9uIEwyIGNhY2hlIHNvIGZhci4gKi8KKyAgICAgICAgcHJpbnRmKCIlLTE2czog JXVcbiIsICJTb2NrZXQgSUQiLCBpbmZvW2ldLmlkKTsKKyAgICAgICAgcHJpbnRmKCIlLTE2czog JXVcbiIsICJNYXhpbXVtIENPUyIsIGluZm9baV0uY29zX21heCk7CisgICAgICAgIHByaW50Zigi JS0xNnM6ICV1XG4iLCAiQ0JNIGxlbmd0aCIsIGluZm9baV0uY2JtX2xlbik7CisgICAgICAgIHBy aW50ZigiJS0xNnM6ICUjbGx4XG4iLCAiRGVmYXVsdCBDQk0iLAorICAgICAgICAgICAgICAgKDF1 bGwgPDwgaW5mb1tpXS5jYm1fbGVuKSAtIDEpOworICAgIH0KKworICAgIGxpYnhsX3Bzcl9jYXRf aW5mb19saXN0X2ZyZWUoaW5mbywgbnIpOworICAgIHJldHVybiByYzsKK30KKworc3RhdGljIHZv aWQgcHNyX2wyX2NhdF9wcmludF9vbmVfZG9tYWluX2NibSh1aW50MzJfdCBkb21pZCwgdWludDMy X3Qgc29ja2V0aWQpCit7CisgICAgY2hhciAqZG9tYWluX25hbWU7CisKKyAgICBkb21haW5fbmFt ZSA9IGxpYnhsX2RvbWlkX3RvX25hbWUoY3R4LCBkb21pZCk7CisgICAgcHJpbnRmKCIlNWQlMjVz IiwgZG9taWQsIGRvbWFpbl9uYW1lKTsKKyAgICBmcmVlKGRvbWFpbl9uYW1lKTsKKworICAgIHBz cl9jYXRfcHJpbnRfb25lX2RvbWFpbl9jYm1fdHlwZShkb21pZCwgc29ja2V0aWQsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExJQlhMX1BTUl9DQk1fVFlQRV9MMl9DQk0p OworCisgICAgcHJpbnRmKCJcbiIpOworfQorCitzdGF0aWMgaW50IHBzcl9sMl9jYXRfcHJpbnRf ZG9tYWluX2NibSh1aW50MzJfdCBkb21pZCwgdWludDMyX3Qgc29ja2V0aWQpCit7CisgICAgaW50 IGksIG5yX2RvbWFpbnM7CisgICAgbGlieGxfZG9taW5mbyAqbGlzdDsKKworICAgIGlmIChkb21p ZCAhPSBJTlZBTElEX0RPTUlEKSB7CisgICAgICAgIHBzcl9sMl9jYXRfcHJpbnRfb25lX2RvbWFp bl9jYm0oZG9taWQsIHNvY2tldGlkKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAg aWYgKCEobGlzdCA9IGxpYnhsX2xpc3RfZG9tYWluKGN0eCwgJm5yX2RvbWFpbnMpKSkgeworICAg ICAgICBmcHJpbnRmKHN0ZGVyciwgIkZhaWxlZCB0byBnZXQgZG9tYWluIGxpc3QgZm9yIGNibSBk aXNwbGF5XG4iKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIGZvciAoaSA9IDA7 IGkgPCBucl9kb21haW5zOyBpKyspCisgICAgICAgIHBzcl9sMl9jYXRfcHJpbnRfb25lX2RvbWFp bl9jYm0obGlzdFtpXS5kb21pZCwgc29ja2V0aWQpOworICAgIGxpYnhsX2RvbWluZm9fbGlzdF9m cmVlKGxpc3QsIG5yX2RvbWFpbnMpOworCisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQg cHNyX2wyX2NhdF9wcmludF9zb2NrZXQodWludDMyX3QgZG9taWQsIGxpYnhsX3Bzcl9jYXRfaW5m byAqaW5mbykKK3sKKyAgICBwcmludGYoIiUtMTZzOiAldVxuIiwgIlNvY2tldCBJRCIsIGluZm8t PmlkKTsKKyAgICBwcmludGYoIiUtMTZzOiAlI2xseFxuIiwgIkRlZmF1bHQgQ0JNIiwgKDF1bGwg PDwgaW5mby0+Y2JtX2xlbikgLSAxKTsKKyAgICBwcmludGYoIiU1cyUyNXMlMTZzXG4iLCAiSUQi LCAiTkFNRSIsICJDQk0iKTsKKworICAgIHJldHVybiBwc3JfbDJfY2F0X3ByaW50X2RvbWFpbl9j Ym0oZG9taWQsIGluZm8tPmlkKTsKK30KKworc3RhdGljIGludCBwc3JfbDJfY2F0X3Nob3codWlu dDMyX3QgZG9taWQpCit7CisgICAgaW50IGksIG5yOworICAgIGludCByYzsKKyAgICBsaWJ4bF9w c3JfY2F0X2luZm8gKmluZm87CisKKyAgICByYyA9IGxpYnhsX3Bzcl9jYXRfZ2V0X2luZm8oY3R4 LCAmaW5mbywgJm5yLCAyKTsKKyAgICBpZiAocmMpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIs ICJGYWlsZWQgdG8gZ2V0IGwyIGNhdCBpbmZvXG4iKTsKKyAgICAgICAgcmV0dXJuIHJjOworICAg IH0KKworICAgIGZvciAoaSA9IDA7IGkgPCBucjsgaSsrKSB7CisgICAgICAgIHJjID0gcHNyX2wy X2NhdF9wcmludF9zb2NrZXQoZG9taWQsIGluZm8gKyBpKTsKKyAgICAgICAgaWYgKHJjKQorICAg ICAgICAgICAgZ290byBvdXQ7CisgICAgfQorCitvdXQ6CisgICAgbGlieGxfcHNyX2NhdF9pbmZv X2xpc3RfZnJlZShpbmZvLCBucik7CisgICAgcmV0dXJuIHJjOworfQorCitzdGF0aWMgaW50IHBz cl9sM19jYXRfaHdpbmZvKHZvaWQpCiB7CiAgICAgaW50IHJjOwogICAgIGludCBpLCBucjsKICAg ICB1aW50MzJfdCBsM19jYWNoZV9zaXplOwogICAgIGxpYnhsX3Bzcl9jYXRfaW5mbyAqaW5mbzsK IAotICAgIHByaW50ZigiQ2FjaGUgQWxsb2NhdGlvbiBUZWNobm9sb2d5IChDQVQpOlxuIik7Cisg ICAgcHJpbnRmKCJDYWNoZSBBbGxvY2F0aW9uIFRlY2hub2xvZ3kgKENBVCk6IEwzXG4iKTsKIAot ICAgIHJjID0gbGlieGxfcHNyX2NhdF9nZXRfbDNfaW5mbyhjdHgsICZpbmZvLCAmbnIpOworICAg IHJjID0gbGlieGxfcHNyX2NhdF9nZXRfaW5mbyhjdHgsICZpbmZvLCAmbnIsIDMpOwogICAgIGlm IChyYykgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkZhaWxlZCB0byBnZXQgY2F0IGluZm9c biIpOworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkZhaWxlZCB0byBnZXQgbDMgY2F0IGluZm9c biIpOwogICAgICAgICByZXR1cm4gcmM7CiAgICAgfQogCkBAIC05MzEwLDE3ICs5NDE2LDYgQEAg b3V0OgogICAgIHJldHVybiByYzsKIH0KIAotc3RhdGljIHZvaWQgcHNyX2NhdF9wcmludF9vbmVf ZG9tYWluX2NibV90eXBlKHVpbnQzMl90IGRvbWlkLCB1aW50MzJfdCBzb2NrZXRpZCwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9wc3JfY2JtX3R5 cGUgdHlwZSkKLXsKLSAgICB1aW50NjRfdCBjYm07Ci0KLSAgICBpZiAoIWxpYnhsX3Bzcl9jYXRf Z2V0X2NibShjdHgsIGRvbWlkLCB0eXBlLCBzb2NrZXRpZCwgJmNibSkpCi0gICAgICAgIHByaW50 ZigiJSMxNiJQUkl4NjQsIGNibSk7Ci0gICAgZWxzZQotICAgICAgICBwcmludGYoIiUxNnMiLCAi ZXJyb3IiKTsKLX0KLQogc3RhdGljIHZvaWQgcHNyX2NhdF9wcmludF9vbmVfZG9tYWluX2NibSh1 aW50MzJfdCBkb21pZCwgdWludDMyX3Qgc29ja2V0aWQsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGJvb2wgY2RwX2VuYWJsZWQpCiB7CkBAIC05Mzk1LDkgKzk0OTAs OSBAQCBzdGF0aWMgaW50IHBzcl9jYXRfc2hvdyh1aW50MzJfdCBkb21pZCkKICAgICBpbnQgcmM7 CiAgICAgbGlieGxfcHNyX2NhdF9pbmZvICppbmZvOwogCi0gICAgcmMgPSBsaWJ4bF9wc3JfY2F0 X2dldF9sM19pbmZvKGN0eCwgJmluZm8sICZucik7CisgICAgcmMgPSBsaWJ4bF9wc3JfY2F0X2dl dF9pbmZvKGN0eCwgJmluZm8sICZuciwgMyk7CiAgICAgaWYgKHJjKSB7Ci0gICAgICAgIGZwcmlu dGYoc3RkZXJyLCAiRmFpbGVkIHRvIGdldCBjYXQgaW5mb1xuIik7CisgICAgICAgIGZwcmludGYo c3RkZXJyLCAiRmFpbGVkIHRvIGdldCBsMyBjYXQgaW5mb1xuIik7CiAgICAgICAgIHJldHVybiBy YzsKICAgICB9CiAKQEAgLTk0MjQsMTggKzk1MTksMjAgQEAgaW50IG1haW5fcHNyX2NhdF9jYm1f c2V0KGludCBhcmdjLCBjaGFyICoqYXJndikKICAgICBsaWJ4bF9zdHJpbmdfbGlzdCBzb2NrZXRf bGlzdDsKICAgICB1bnNpZ25lZCBsb25nIHN0YXJ0LCBlbmQ7CiAgICAgaW50IGksIGosIGxlbjsK KyAgICBpbnQgbHZsID0gMDsKIAogICAgIHN0YXRpYyBzdHJ1Y3Qgb3B0aW9uIG9wdHNbXSA9IHsK ICAgICAgICAgeyJzb2NrZXQiLCAxLCAwLCAncyd9LAogICAgICAgICB7ImRhdGEiLCAwLCAwLCAn ZCd9LAogICAgICAgICB7ImNvZGUiLCAwLCAwLCAnYyd9LAorICAgICAgICB7ImxldmVsIiwgMSwg MCwgJ2wnfSwKICAgICAgICAgQ09NTU9OX0xPTkdfT1BUUwogICAgIH07CiAKICAgICBsaWJ4bF9z b2NrZXRfYml0bWFwX2FsbG9jKGN0eCwgJnRhcmdldF9tYXAsIDApOwogICAgIGxpYnhsX2JpdG1h cF9zZXRfbm9uZSgmdGFyZ2V0X21hcCk7CiAKLSAgICBTV0lUQ0hfRk9SRUFDSF9PUFQob3B0LCAi czpjZCIsIG9wdHMsICJwc3ItY2F0LWNibS1zZXQiLCAyKSB7CisgICAgU1dJVENIX0ZPUkVBQ0hf T1BUKG9wdCwgInM6bDpjZCIsIG9wdHMsICJwc3ItY2F0LWNibS1zZXQiLCAyKSB7CiAgICAgY2Fz ZSAncyc6CiAgICAgICAgIHRyaW0oaXNzcGFjZSwgb3B0YXJnLCAmdmFsdWUpOwogICAgICAgICBz cGxpdF9zdHJpbmdfaW50b19zdHJpbmdfbGlzdCh2YWx1ZSwgIiwiLCAmc29ja2V0X2xpc3QpOwpA QCAtOTQ1NSwxNyArOTU1MiwzMiBAQCBpbnQgbWFpbl9wc3JfY2F0X2NibV9zZXQoaW50IGFyZ2Ms IGNoYXIgKiphcmd2KQogICAgIGNhc2UgJ2MnOgogICAgICAgICBvcHRfY29kZSA9IDE7CiAgICAg ICAgIGJyZWFrOworICAgIGNhc2UgJ2wnOgorICAgICAgICBsdmwgPSBhdG9pKG9wdGFyZyk7Cisg ICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIGlmIChvcHRfZGF0YSAmJiBvcHRfY29kZSkgewot ICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkNhbm5vdCBoYW5kbGUgLWMgYW5kIC1kIGF0IHRoZSBz YW1lIHRpbWVcbiIpOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgfSBlbHNlIGlmIChvcHRfZGF0 YSkgewotICAgICAgICB0eXBlID0gTElCWExfUFNSX0NCTV9UWVBFX0wzX0NCTV9EQVRBOwotICAg IH0gZWxzZSBpZiAob3B0X2NvZGUpIHsKLSAgICAgICAgdHlwZSA9IExJQlhMX1BTUl9DQk1fVFlQ RV9MM19DQk1fQ09ERTsKKyAgICBpZiAobHZsID09IDIpIHsKKyAgICAgICAgaWYgKG9wdF9kYXRh IHx8IG9wdF9jb2RlKSB7CisgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkwyIENBVCBkb2Vz IG5vdCBzdXBwb3J0IENEUCB5ZXQuXG4iKTsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAg ICAgfQorICAgICAgICB0eXBlID0gTElCWExfUFNSX0NCTV9UWVBFX0wyX0NCTTsKKyAgICB9IGVs c2UgaWYgKGx2bCA9PSAzKSB7CisgICAgICAgIGlmIChvcHRfZGF0YSAmJiBvcHRfY29kZSkgewor ICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJDYW5ub3QgaGFuZGxlIC1jIGFuZCAtZCBhdCB0 aGUgc2FtZSB0aW1lXG4iKTsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfSBlbHNl IGlmIChvcHRfZGF0YSkgeworICAgICAgICAgICAgdHlwZSA9IExJQlhMX1BTUl9DQk1fVFlQRV9M M19DQk1fREFUQTsKKyAgICAgICAgfSBlbHNlIGlmIChvcHRfY29kZSkgeworICAgICAgICAgICAg dHlwZSA9IExJQlhMX1BTUl9DQk1fVFlQRV9MM19DQk1fQ09ERTsKKyAgICAgICAgfSBlbHNlIHsK KyAgICAgICAgICAgIHR5cGUgPSBMSUJYTF9QU1JfQ0JNX1RZUEVfTDNfQ0JNOworICAgICAgICB9 CiAgICAgfSBlbHNlIHsKLSAgICAgICAgdHlwZSA9IExJQlhMX1BTUl9DQk1fVFlQRV9MM19DQk07 CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJ3hsICVzJyByZXF1aXJlcyB0byBpbnB1dCBjYWNo ZSBsZXZlbCAtbCVkIG9yIC1sJWQuXG4iLAorICAgICAgICAgICAgICAgICJwc3ItY2F0LWNibS1z ZXQiLCAyLCAzKTsKKyAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KIAogICAgIGlmIChsaWJ4bF9i aXRtYXBfaXNfZW1wdHkoJnRhcmdldF9tYXApKQpAQCAtOTQ4NywxMSArOTU5OSwyMCBAQCBpbnQg bWFpbl9wc3JfY2F0X2NibV9zZXQoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCiBpbnQgbWFpbl9w c3JfY2F0X3Nob3coaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewotICAgIGludCBvcHQ7CisgICAg aW50IG9wdCA9IDA7CiAgICAgdWludDMyX3QgZG9taWQ7CisgICAgaW50IGx2bCA9IDA7CisgICAg aW50IHJjOwogCi0gICAgU1dJVENIX0ZPUkVBQ0hfT1BUKG9wdCwgIiIsIE5VTEwsICJwc3ItY2F0 LXNob3ciLCAwKSB7Ci0gICAgICAgIC8qIE5vIG9wdGlvbnMgKi8KKyAgICBzdGF0aWMgc3RydWN0 IG9wdGlvbiBvcHRzW10gPSB7CisgICAgICAgIHsibGV2ZWwiLCAxLCAwLCAnbCd9LAorICAgICAg ICBDT01NT05fTE9OR19PUFRTCisgICAgfTsKKworICAgIFNXSVRDSF9GT1JFQUNIX09QVChvcHQs ICJsOiIsIG9wdHMsICJwc3ItY2F0LXNob3ciLCAwKSB7CisgICAgY2FzZSAnbCc6CisgICAgICAg IGx2bCA9IGF0b2kob3B0YXJnKTsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgaWYgKG9w dGluZCA+PSBhcmdjKQpAQCAtOTUwMyw3ICs5NjI0LDE1IEBAIGludCBtYWluX3Bzcl9jYXRfc2hv dyhpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgICAgICAgIHJldHVybiAyOwogICAgIH0KIAotICAg IHJldHVybiBwc3JfY2F0X3Nob3coZG9taWQpOworICAgIGlmICgzID09IGx2bCkKKyAgICAgICAg cmMgPSBwc3JfY2F0X3Nob3coZG9taWQpOworICAgIGVsc2UgaWYgKDIgPT0gbHZsKQorICAgICAg ICByYyA9IHBzcl9sMl9jYXRfc2hvdyhkb21pZCk7CisgICAgZWxzZQorICAgICAgICBmcHJpbnRm KHN0ZGVyciwgIid4bCAlcycgcmVxdWlyZXMgdG8gaW5wdXQgY2FjaGUgbGV2ZWwgLWwlZCBvciAt bCVkLlxuIiwKKyAgICAgICAgICAgICAgICAicHNyLWNhdC1zaG93IiwgMiwgMyk7CisKKyAgICBy ZXR1cm4gcmM7CiB9CiAKIGludCBtYWluX3Bzcl9od2luZm8oaW50IGFyZ2MsIGNoYXIgKiphcmd2 KQpAQCAtOTUyOSw3ICs5NjU4LDExIEBAIGludCBtYWluX3Bzcl9od2luZm8oaW50IGFyZ2MsIGNo YXIgKiphcmd2KQogICAgICAgICByZXQgPSBwc3JfY210X2h3aW5mbygpOwogCiAgICAgaWYgKCFy ZXQgJiYgKGFsbCB8fCBjYXQpKQotICAgICAgICByZXQgPSBwc3JfY2F0X2h3aW5mbygpOworICAg ICAgICByZXQgPSBwc3JfbDNfY2F0X2h3aW5mbygpOworCisgICAgLyogTDIgQ0FUIGlzIGluZGVw ZW5kZW50IHdpdGggQ01UIGFuZCBMMyBDQVQgKi8KKyAgICBpZiAoYWxsIHx8IGNhdCkKKyAgICAg ICAgcmV0ID0gcHNyX2wyX2NhdF9od2luZm8oKTsKIAogICAgIHJldHVybiByZXQ7CiB9CmRpZmYg LS1naXQgYS90b29scy9saWJ4bC94bF9jbWR0YWJsZS5jIGIvdG9vbHMvbGlieGwveGxfY21kdGFi bGUuYwppbmRleCA3ODc4NmZlLi41YTI2NzZlIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC94bF9j bWR0YWJsZS5jCisrKyBiL3Rvb2xzL2xpYnhsL3hsX2NtZHRhYmxlLmMKQEAgLTU0OSwxMyArNTQ5 LDE1IEBAIHN0cnVjdCBjbWRfc3BlYyBjbWRfdGFibGVbXSA9IHsKICAgICAgICJTZXQgY2FjaGUg Y2FwYWNpdHkgYml0bWFza3MoQ0JNKSBmb3IgYSBkb21haW4iLAogICAgICAgIltvcHRpb25zXSA8 RG9tYWluPiA8Q0JNPiIsCiAgICAgICAiLXMgPHNvY2tldD4gICAgICAgU3BlY2lmeSB0aGUgc29j a2V0IHRvIHByb2Nlc3MsIG90aGVyd2lzZSBhbGwgc29ja2V0cyBhcmUgcHJvY2Vzc2VkXG4iCisg ICAgICAiLWwgPGxldmVsPiAgICAgICAgU3BlY2lmeSB0aGUgY2FjaGUgbGV2ZWwgdG8gcHJvY2Vz cywgb3RoZXJ3aXNlIEwzIGNhY2hlIGlzIHByb2Nlc3NlZFxuIgogICAgICAgIi1jICAgICAgICAg ICAgICAgIFNldCBjb2RlIENCTSBpZiBDRFAgaXMgc3VwcG9ydGVkXG4iCiAgICAgICAiLWQgICAg ICAgICAgICAgICAgU2V0IGRhdGEgQ0JNIGlmIENEUCBpcyBzdXBwb3J0ZWRcbiIKICAgICB9LAog ICAgIHsgInBzci1jYXQtc2hvdyIsCiAgICAgICAmbWFpbl9wc3JfY2F0X3Nob3csIDAsIDEsCiAg ICAgICAiU2hvdyBDYWNoZSBBbGxvY2F0aW9uIFRlY2hub2xvZ3kgaW5mb3JtYXRpb24iLAotICAg ICAgIjxEb21haW4+IiwKKyAgICAgICJbb3B0aW9uc10gPERvbWFpbj4iLAorICAgICAgIi1sIDxs ZXZlbD4gICAgICAgIFNwZWNpZnkgdGhlIGNhY2hlIGxldmVsIHRvIHByb2Nlc3MsIG90aGVyd2lz ZSBMMyBjYWNoZSBpcyBwcm9jZXNzZWRcbiIKICAgICB9LAogCiAjZW5kaWYKLS0gCjIuNy40CgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVs IG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5v cmcveGVuLWRldmVsCg==