From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.2 required=5.0 tests=ALL_TRUSTED, DKIM_ADSP_NXDOMAIN,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 3003 invoked from network); 11 Aug 2022 02:01:27 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 11 Aug 2022 02:01:27 -0000 Content-Type: multipart/mixed; boundary="===============0918114410959375753==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_WIP_Qt6_webengine?= To: ml@inbox.vuxu.org From: sgn Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Thu, 11 Aug 2022 04:01:27 +0200 List-Id: Message-ID: <20220811020127.a4s_uEMb73_t6KHiJLWDdVubdYCRUqWUkWMMuOPx0cQ@z> GitHub notification mails are now in MIME to allow UTF8. --===============0918114410959375753== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgc2duIGFnYWluc3QgbWFzdGVyIG9u IHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNvbS9zZ24vdm9p ZC1wYWNrYWdlcyBxdDYtd2ViZW5naW5lCmh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3Zv aWQtcGFja2FnZXMvcHVsbC8zODUwOQoKV0lQIFF0NiB3ZWJlbmdpbmUKPCEtLSBVbmNvbW1lbnQg cmVsZXZhbnQgc2VjdGlvbnMgYW5kIGRlbGV0ZSBvcHRpb25zIHdoaWNoIGFyZSBub3QgYXBwbGlj YWJsZSAtLT4NCg0KTmV2ZXIgdHJpZWQgdG8gY3Jvc3MgYnVpbGQNCkZ1bmN0aW9uYWxpdHkgd29y a3MgKGF0IGxlYXN0IGNhbiB2aWV3IHlvdXR1YmUgdmlkZW8gb24geDg2XzY0LW11c2wpDQoNCiMj IyMgVGVzdGluZyB0aGUgY2hhbmdlcw0KLSBJIHRlc3RlZCB0aGUgY2hhbmdlcyBpbiB0aGlzIFBS OiAqKllFUyoqfCoqYnJpZWZseSoqfCoqTk8qKg0KW2NpIHNraXBdDQoNCjwhLS0NCiMjIyMgTmV3 IHBhY2thZ2UNCi0gVGhpcyBuZXcgcGFja2FnZSBjb25mb3JtcyB0byB0aGUgW3F1YWxpdHkgcmVx dWlyZW1lbnRzXShodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2Js b2IvbWFzdGVyL01hbnVhbC5tZCNxdWFsaXR5LXJlcXVpcmVtZW50cyk6ICoqWUVTKip8KipOTyoq DQotLT4NCg0KPCEtLSBOb3RlOiBJZiB0aGUgYnVpbGQgaXMgbGlrZWx5IHRvIHRha2UgbW9yZSB0 aGFuIDIgaG91cnMsIHBsZWFzZSBhZGQgY2kgc2tpcCB0YWcgYXMgZGVzY3JpYmVkIGluDQpodHRw czovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2Jsb2IvbWFzdGVyL0NPTlRS SUJVVElORy5tZCNjb250aW51b3VzLWludGVncmF0aW9uDQphbmQgdGVzdCBhdCBsZWFzdCBvbmUg bmF0aXZlIGJ1aWxkIGFuZCwgaWYgc3VwcG9ydGVkLCBhdCBsZWFzdCBvbmUgY3Jvc3MgYnVpbGQu DQpJZ25vcmUgdGhpcyBzZWN0aW9uIGlmIHRoaXMgUFIgaXMgbm90IHNraXBwaW5nIENJLg0KLS0+ DQo8IS0tDQojIyMjIExvY2FsIGJ1aWxkIHRlc3RpbmcNCi0gSSBidWlsdCB0aGlzIFBSIGxvY2Fs bHkgZm9yIG15IG5hdGl2ZSBhcmNoaXRlY3R1cmUsIChBUkNILUxJQkMpDQotIEkgYnVpbHQgdGhp cyBQUiBsb2NhbGx5IGZvciB0aGVzZSBhcmNoaXRlY3R1cmVzIChpZiBzdXBwb3J0ZWQuIG1hcmsg Y3Jvc3NidWlsZHMpOg0KICAtIGFhcmNoNjQtbXVzbA0KICAtIGFybXY3bA0KICAtIGFybXY2bC1t dXNsDQotLT4NCgoKQSBwYXRjaCBmaWxlIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGlu dXgvdm9pZC1wYWNrYWdlcy9wdWxsLzM4NTA5LnBhdGNoIGlzIGF0dGFjaGVk --===============0918114410959375753== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-qt6-webengine-38509.patch" RnJvbSAzNzM4NzQ0ZWYwMWQyYzAzMTNmMWU5ODdjNDdkZGIzZWM0NzcwMzc5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1B N249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogTW9u LCA4IEF1ZyAyMDIyIDE3OjEzOjA3ICswNzAwClN1YmplY3Q6IFtQQVRDSCAwMS8yNl0gcXQ2LWJh c2U6IHVwZGF0ZSB0byA2LjMuMS4KCi0tLQogc3JjcGtncy9xdDYtYmFzZS9wYXRjaGVzL2FybS15 aWVsZC5wYXRjaCB8IDM3ICsrKysrKysrKysrKysrKysrKysrKysrKwogc3JjcGtncy9xdDYtYmFz ZS9wYXRjaGVzL2xpYmF0b21pYy5wYXRjaCB8IDE0IC0tLS0tLS0tLQogc3JjcGtncy9xdDYtYmFz ZS90ZW1wbGF0ZSAgICAgICAgICAgICAgICB8IDE2ICsrKysrKy0tLS0KIDMgZmlsZXMgY2hhbmdl ZCwgNDcgaW5zZXJ0aW9ucygrKSwgMjAgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjcGtncy9xdDYtYmFzZS9wYXRjaGVzL2FybS15aWVsZC5wYXRjaAogZGVsZXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvcXQ2LWJhc2UvcGF0Y2hlcy9saWJhdG9taWMucGF0Y2gKCmRpZmYgLS1naXQg YS9zcmNwa2dzL3F0Ni1iYXNlL3BhdGNoZXMvYXJtLXlpZWxkLnBhdGNoIGIvc3JjcGtncy9xdDYt YmFzZS9wYXRjaGVzL2FybS15aWVsZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAuLjJiZWY4NTg0Yjg4ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2 LWJhc2UvcGF0Y2hlcy9hcm0teWllbGQucGF0Y2gKQEAgLTAsMCArMSwzNyBAQAorRnJvbSA4MTI4 YWJlYWVjZTViMDU0NzZmNzlmZjQ5MzU5N2I4MzhiMjIzNTEyIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQorRnJvbTogTWFyYyBNdXR6IDxtYXJjLm11dHpAcXQuaW8+CitEYXRlOiBXZWQsIDMgQXVn IDIwMjIgMTc6MjM6MjAgKzAyMDAKK1N1YmplY3Q6IEZpeCBxWWllbGRDcHUoKSBmb3IgQVJNIDwg QVJNdjcKKworQXBwYXJlbnRseSwgd2Ugc3RpbGwgc3VwcG9ydCB0aGVzZSBhcmNoaXRlY3R1cmUg dmVyc2lvbnMsIGFuZCB0aGVyZSdzCitubyB3YXkgdG8gZGV0ZWN0IEFSTXY2ay1vci1ncmVhdGVy IHNwZWNpZmljYWxseSwgc28gZXhjbHVkZSB5aWVsZCBmb3IKK0FSTSA8IEFSTXY3LgorCitBbWVu ZHMgODc3YzE1OGM1OTc2YmViZmZkMGZmMDJjMzliNmI2NmE4NDJjNjM0NC4KKworRml4ZXM6IFFU QlVHLTEwNDMxNgorUGljay10bzogNi40IDYuMworQ2hhbmdlLUlkOiBJNTFhMmYwZjhlMDk5M2Ri YTQxZTQ3YmI2MTEwNDczYWM4ZTdjZDMyYQorUmV2aWV3ZWQtYnk6IFRoaWFnbyBNYWNpZWlyYSA8 dGhpYWdvLm1hY2llaXJhQGludGVsLmNvbT4KKy0tLQorIHNyYy9jb3JlbGliL2dsb2JhbC9xc2lt ZF9wLmggfCAyICstCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9u KC0pCisKKyhsaW1pdGVkIHRvICdzcmMvY29yZWxpYi9nbG9iYWwvcXNpbWRfcC5oJykKKworZGlm ZiAtLWdpdCBhL3NyYy9jb3JlbGliL2dsb2JhbC9xc2ltZF9wLmggYi9zcmMvY29yZWxpYi9nbG9i YWwvcXNpbWRfcC5oCitpbmRleCBhZDc4YzM5MzRmLi4wOTNmYzNhZWRjIDEwMDY0NAorLS0tIGEv c3JjL2NvcmVsaWIvZ2xvYmFsL3FzaW1kX3AuaAorKysrIGIvc3JjL2NvcmVsaWIvZ2xvYmFsL3Fz aW1kX3AuaAorQEAgLTM5Nyw3ICszOTcsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcVlpZWxkQ3B1 KCkKKyB7CisgI2lmIGRlZmluZWQoUV9QUk9DRVNTT1JfWDg2KQorICAgICBfbW1fcGF1c2UoKTsK Ky0jZWxpZiBkZWZpbmVkKFFfUFJPQ0VTU09SX0FSTSkKKysjZWxpZiBkZWZpbmVkKFFfUFJPQ0VT U09SX0FSTSkgJiYgUV9QUk9DRVNTT1JfQVJNID49IDcgLyogeWllbGQgd2FzIGFkZGVkIGluIEFS TXY3ICovCisgIyAgaWYgX19oYXNfYnVpbHRpbihfX2J1aWx0aW5fYXJtX3lpZWxkKSAvKiBlLmcu IENsYW5nICovCisgICAgIF9fYnVpbHRpbl9hcm1feWllbGQoKTsKKyAjICBlbGlmIGRlZmluZWQo UV9PU19JTlRFR1JJVFkpIHx8IFwKKy0tIAorY2dpdCB2MS4yLjEKKwpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9xdDYtYmFzZS9wYXRjaGVzL2xpYmF0b21pYy5wYXRjaCBiL3NyY3BrZ3MvcXQ2LWJhc2Uv cGF0Y2hlcy9saWJhdG9taWMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJm N2E4MDc1MThlNC4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvcXQ2LWJhc2UvcGF0Y2hlcy9s aWJhdG9taWMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi1JbmRleDogY21h a2UvRmluZFdyYXBBdG9taWMuY21ha2UKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBhL2NtYWtlL0ZpbmRXcmFw QXRvbWljLmNtYWtlCi0rKysgYi9jbWFrZS9GaW5kV3JhcEF0b21pYy5jbWFrZQotQEAgLTM4LDcg KzM4LDggQEAgZW5kaWYoKQotIAotIGFkZF9saWJyYXJ5KFdyYXBBdG9taWM6OldyYXBBdG9taWMg SU5URVJGQUNFIElNUE9SVEVEKQotIGlmKEhBVkVfU1REQVRPTUlDX1dJVEhfTElCKQotLSAgICB0 YXJnZXRfbGlua19saWJyYXJpZXMoV3JhcEF0b21pYzo6V3JhcEF0b21pYyBJTlRFUkZBQ0UgYXRv bWljKQotKyAgICBmaW5kX2xpYnJhcnkoTElCQVRPTUlDIGF0b21pYyBSRVFVSVJFRCkKLSsgICAg dGFyZ2V0X2xpbmtfbGlicmFyaWVzKFdyYXBBdG9taWM6OldyYXBBdG9taWMgSU5URVJGQUNFICR7 TElCQVRPTUlDfSkKLSBlbmRpZigpCi0gCi0gc2V0KFdyYXBBdG9taWNfRk9VTkQgMSkKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvcXQ2LWJhc2UvdGVtcGxhdGUgYi9zcmNwa2dzL3F0Ni1iYXNlL3RlbXBs YXRlCmluZGV4IGNjNDdlMThhNzBmZi4uNGU4OGQ2YjlmMTc0IDEwMDY0NAotLS0gYS9zcmNwa2dz L3F0Ni1iYXNlL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcXQ2LWJhc2UvdGVtcGxhdGUKQEAgLTEs NyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdxdDYtYmFzZScKIHBrZ25hbWU9cXQ2LWJh c2UKLXZlcnNpb249Ni4zLjAKLXJldmlzaW9uPTIKK3ZlcnNpb249Ni4zLjEKK3JldmlzaW9uPTEK IHdya3NyYz0icXRiYXNlLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0iCiBidWlsZF9zdHlsZT1j bWFrZQogY29uZmlndXJlX2FyZ3M9Ii1ESU5TVEFMTF9EQVRBRElSPXNoYXJlL3F0NgpAQCAtOSw2 ICs5LDggQEAgY29uZmlndXJlX2FyZ3M9Ii1ESU5TVEFMTF9EQVRBRElSPXNoYXJlL3F0NgogIC1E SU5TVEFMTF9CSU5ESVI9bGliL3F0Ni9iaW4KICAtRElOU1RBTExfTUtTUEVDU0RJUj1saWIvcXQ2 L21rc3BlY3MKICAtRElOU1RBTExfSU5DTFVERURJUj1pbmNsdWRlL3F0NgorIC1ESU5TVEFMTF9F WEFNUExFU0RJUj1saWIvcXQ2L2V4YW1wbGVzCisgLURJTlNUQUxMX1RFU1RTRElSPWxpYi9xdDYv dGVzdHMKICAtRElOU1RBTExfU1lTQ09ORkRJUj0vZXRjL3hkZwogIC1EUVRfRkVBVFVSRV9vcGVu c3NsX2xpbmtlZD1PTgogIC1EUVRfRkVBVFVSRV9zeXN0ZW1fc3FsaXRlPU9OCkBAIC0yOSwxNCAr MzEsMTMgQEAgbWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKIGxpY2Vuc2U9 IkdQTC0zLjAtb25seSBXSVRIIFF0LUdQTC1leGNlcHRpb24tMS4wLCBMR1BMLTMuMC1vbmx5LCBH UEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnF0LmlvIgogZGlzdGZpbGVz PSJodHRwczovL2Rvd25sb2FkLnF0LmlvL29mZmljaWFsX3JlbGVhc2VzL3F0LyR7dmVyc2lvbiUu Kn0vJHt2ZXJzaW9ufS9zdWJtb2R1bGVzL3F0YmFzZS1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259 LnRhci54eiIKLWNoZWNrc3VtPWI4NjVhYWU0MzM1N2Y3OTJiM2IwYTE2Mjg5OWQ5YmY2YTEzOTNh NTVjNGU1ZTRlZGU1MzE2YjE1N2IxYTBmOTkKK2NoZWNrc3VtPTBhNjQ0MjFkOWMyNDY5YzJjNDg0 OTBhMDMyYWI5MWQ1NDcwMTdjOWNjMTcxZjNmODA3MGJjMzE4ODhmMjRlMDMKIHB5dGhvbl92ZXJz aW9uPTMKIAogaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCiAJaG9zdG1ha2VkZXBlbmRzKz0i IHF0Ni1iYXNlLWRldmVsIgogCSMgUXRTZXR1cCBmYWlscyBuYXRpdmUgYnVpbGRzIGlmIHRoaXMg aXMgc2V0Ci0JY29uZmlndXJlX2FyZ3MrPSIgLURRVF9IT1NUX1BBVEg9L3VzcgotCSAtRFFUX0JV SUxEX1RPT0xTX1dIRU5fQ1JPU1NDT01QSUxJTkc9dHJ1ZSIKKwljb25maWd1cmVfYXJncys9Ii1E UVRfQlVJTERfVE9PTFNfV0hFTl9DUk9TU0NPTVBJTElORz10cnVlIgogZmkKIAogIyBJdCBpcyBj dXJyZW50bHkgZXhwZWN0ZWQgdGhhdCBxdWl0ZSBhIGZldyBwYXRjaGVzIGRvIGZhaWwKQEAgLTIy NSw3ICsyMjYsNyBAQCBxdDYtcGx1Z2luLXRscy1xY2VydG9ubHlfcGFja2FnZSgpIHsKIHF0Ni1w bHVnaW4tbmV0d29ya2luZm9ybWF0aW9uX3BhY2thZ2UoKSB7CiAJc2hvcnRfZGVzYys9IiAtIE5l dHdvcmtpbmZvcm1hdGlvbiBwbHVnaW4iCiAJcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlIHVzci9s aWIvcXQ2L3BsdWdpbnMvbmV0d29ya2luZm9ybWF0aW9uL2xpYnFuZXR3b3JrbWFuYWdlci5zbwor CQl2bW92ZSB1c3IvbGliL3F0Ni9wbHVnaW5zL25ldHdvcmtpbmZvcm1hdGlvbi8KIAl9CiB9CiAK QEAgLTI0Niw5ICsyNDcsMTIgQEAgcXQ2LWJhc2UtZGV2ZWxfcGFja2FnZSgpIHsKIAlwa2dfaW5z dGFsbCgpIHsKIAkJdm1vdmUgdXNyL2luY2x1ZGUKIAkJdm1vdmUgdXNyL2xpYi9jbWFrZQorCQl2 bW92ZSB1c3IvbGliL21ldGF0eXBlcworCQl2bW92ZSB1c3IvbGliL3BrZ2NvbmZpZwogCQl2bW92 ZSB1c3IvbGliL3F0Ni9ta3NwZWNzCiAJCXZtb3ZlICJ1c3IvbGliLyouYSIKIAkJdm1vdmUgInVz ci9saWIvKi5zbyIKIAkJdm1vdmUgInVzci9saWIvKi5wcmwiCisJCXZtb3ZlIHVzci9zaGFyZS9x dDYvbW9kdWxlcwogCX0KIH0KCkZyb20gNTM1Y2I5NTQ0NjRkODc3ZThhZjlhNzg0YjhkNTg3N2Y4 ZjM0YjUyNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1DND05MG89 QzM9QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBn bWFpbC5jb20+CkRhdGU6IE1vbiwgOCBBdWcgMjAyMiAxNzoxMzowNyArMDcwMApTdWJqZWN0OiBb UEFUQ0ggMDIvMjZdIHF0Ni1jaGFydHM6IHVwZGF0ZSB0byA2LjMuMS4KCi0tLQogc3JjcGtncy9x dDYtY2hhcnRzL3RlbXBsYXRlIHwgOCArKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0 aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni1jaGFydHMv dGVtcGxhdGUgYi9zcmNwa2dzL3F0Ni1jaGFydHMvdGVtcGxhdGUKaW5kZXggNzljYjhhMjIwNDAx Li5kMzk0N2JhOTM4ZjMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcXQ2LWNoYXJ0cy90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL3F0Ni1jaGFydHMvdGVtcGxhdGUKQEAgLTEsMTAgKzEsOSBAQAogIyBUZW1w bGF0ZSBmaWxlIGZvciAncXQ2LWNoYXJ0cycKIHBrZ25hbWU9cXQ2LWNoYXJ0cwotdmVyc2lvbj02 LjMuMAordmVyc2lvbj02LjMuMQogcmV2aXNpb249MQogd3Jrc3JjPSJxdGNoYXJ0cy1ldmVyeXdo ZXJlLXNyYy0ke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9Y21ha2UKLWNvbmZpZ3VyZV9hcmdzPSIt RFFUX0hPU1RfUEFUSD0vdXNyIgogaG9zdG1ha2VkZXBlbmRzPSJwZXJsIHF0Ni1kZWNsYXJhdGl2 ZS1kZXZlbCIKIG1ha2VkZXBlbmRzPSJxdDYtZGVjbGFyYXRpdmUtZGV2ZWwiCiBzaG9ydF9kZXNj PSJDcm9zcy1wbGF0Zm9ybSBhcHBsaWNhdGlvbiBhbmQgVUkgZnJhbWV3b3JrIC0gY2hhcnRzIgpA QCAtMTIsNyArMTEsNyBAQCBtYWludGFpbmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+Igog bGljZW5zZT0iR1BMLTMuMC1vbmx5IgogaG9tZXBhZ2U9Imh0dHBzOi8vcXQuaW8vIgogZGlzdGZp bGVzPSJodHRwOi8vZG93bmxvYWQucXQuaW8vb2ZmaWNpYWxfcmVsZWFzZXMvcXQvJHt2ZXJzaW9u JS4qfS8ke3ZlcnNpb259L3N1Ym1vZHVsZXMvcXRjaGFydHMtZXZlcnl3aGVyZS1zcmMtJHt2ZXJz aW9ufS50YXIueHoiCi1jaGVja3N1bT02NzI3NjJjNWY2NDFjY2M4OGEzMGFlZWRlZmI2M2YwM2Mw ZjgzNzY0OWIzMzRmNDZlZWE1NzU5MmU4N2UzNmNkCitjaGVja3N1bT1mMzMwY2MyMzI4NzI5MTA0 ZDc5YjIwODg5OTBjZTA4NDBmMmRhODlkOWQ5ODkzNjBkNGMzNTJlNzk3ZDI3Y2Y3CiAKIHF0Ni1j aGFydHMtZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSIke3NvdXJjZXBrZ30+PSR7dmVyc2lv bn1fJHtyZXZpc2lvbn0iCkBAIC0yMCw4ICsxOSwxMSBAQCBxdDYtY2hhcnRzLWRldmVsX3BhY2th Z2UoKSB7CiAJcGtnX2luc3RhbGwoKSB7CiAJCXZtb3ZlIHVzci9pbmNsdWRlCiAJCXZtb3ZlIHVz ci9saWIvY21ha2UKKwkJdm1vdmUgdXNyL2xpYi9tZXRhdHlwZXMKKwkJdm1vdmUgdXNyL2xpYi9w a2djb25maWcKIAkJdm1vdmUgdXNyL2xpYi9xdDYvbWtzcGVjcwogCQl2bW92ZSAidXNyL2xpYi8q LnNvIgogCQl2bW92ZSAidXNyL2xpYi8qLnBybCIKKwkJdm1vdmUgdXNyL3NoYXJlL3F0Ni9tb2R1 bGVzCiAJfQogfQoKRnJvbSA5MWFlNzdiNDBkMzBkZTU4NjM2OGEyMTg0MDgyYjgwM2YxNmIxNjU1 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49 MjBUcj1FMT1CQT1BN249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNv bT4KRGF0ZTogTW9uLCA4IEF1ZyAyMDIyIDE3OjEzOjA3ICswNzAwClN1YmplY3Q6IFtQQVRDSCAw My8yNl0gcXQ2LWRlY2xhcmF0aXZlOiB1cGRhdGUgdG8gNi4zLjEuCgotLS0KIHNyY3BrZ3MvcXQ2 LWRlY2xhcmF0aXZlL3RlbXBsYXRlIHwgMTIgKysrKysrKy0tLS0tCiAxIGZpbGUgY2hhbmdlZCwg NyBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2 LWRlY2xhcmF0aXZlL3RlbXBsYXRlIGIvc3JjcGtncy9xdDYtZGVjbGFyYXRpdmUvdGVtcGxhdGUK aW5kZXggZTBiZDI4ZDllMzgzLi5jZmRjNzRmMjgxZDYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcXQ2 LWRlY2xhcmF0aXZlL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcXQ2LWRlY2xhcmF0aXZlL3RlbXBs YXRlCkBAIC0xLDIzICsxLDIyIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdxdDYtZGVjbGFyYXRp dmUnCiBwa2duYW1lPXF0Ni1kZWNsYXJhdGl2ZQotdmVyc2lvbj02LjMuMAordmVyc2lvbj02LjMu MQogcmV2aXNpb249MQogd3Jrc3JjPSJxdGRlY2xhcmF0aXZlLWV2ZXJ5d2hlcmUtc3JjLSR7dmVy c2lvbn0iCiBidWlsZF9zdHlsZT1jbWFrZQotY29uZmlndXJlX2FyZ3M9IiAtRFFUX0hPU1RfUEFU SD0vdXNyIgogaG9zdG1ha2VkZXBlbmRzPSJxdDYtYmFzZS1kZXZlbCBwZXJsIHBrZy1jb25maWcg d2F5bGFuZC1kZXZlbAogIHF0Ni1zaGFkZXJ0b29scy1kZXZlbCIKLW1ha2VkZXBlbmRzPSJxdDYt YmFzZS1kZXZlbCBWdWxrYW4tSGVhZGVycyIKK21ha2VkZXBlbmRzPSJxdDYtYmFzZS1kZXZlbCBW dWxrYW4tSGVhZGVycyBxdDYtc2hhZGVydG9vbHMtZGV2ZWwiCiBzaG9ydF9kZXNjPSJDcm9zcy1w bGF0Zm9ybSBhcHBsaWNhdGlvbiBhbmQgVUkgZnJhbWV3b3JrIC0gRGVjbGFyYXRpdmUiCiBtYWlu dGFpbmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+IgogbGljZW5zZT0iR1BMLTMuMC1vbmx5 IHdpdGggUXQtR1BMLWV4Y2VwdGlvbi0xLjAsIExHUEwtMy4wLW9ubHksIEdQTC0yLjAtb3ItbGF0 ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93d3cucXQuaW8iCiBkaXN0ZmlsZXM9Imh0dHBzOi8vZG93 bmxvYWQucXQuaW8vb2ZmaWNpYWxfcmVsZWFzZXMvcXQvJHt2ZXJzaW9uJS4qfS8ke3ZlcnNpb259 L3N1Ym1vZHVsZXMvcXRkZWNsYXJhdGl2ZS1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259LnRhci54 eiIKLWNoZWNrc3VtPWQyOTRiMDI5ZGMyYjJkNGY2NWRhNTE2ZmRjM2I4MDg4ZDMyNjQzZWI3ZmY3 N2RiMTM1YThiOWNlOTA0Y2FhMzcKK2NoZWNrc3VtPTAzZTc2OTQxMjM4MjBmY2NhMzk3Zjk1Y2Uz MTJlMGI3ZjMwMzk0OTNjODc1NGM4MzZkYTA5OGExYTA0MzQ2ZTgKIHJlcGxhY2VzPSJxdDYtcXVp Y2tjb250cm9sczI+PTAiCiAKIGlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgotCWNvbmZpZ3Vy ZV9hcmdzKz0iIC1EUVRfQlVJTERfVE9PTFNfV0hFTl9DUk9TU0NPTVBJTElORz10cnVlIgorCWNv bmZpZ3VyZV9hcmdzPSItRFFUX0JVSUxEX1RPT0xTX1dIRU5fQ1JPU1NDT01QSUxJTkc9dHJ1ZSIK IAlob3N0bWFrZWRlcGVuZHMrPSIgcXQ2LWRlY2xhcmF0aXZlLWRldmVsIgogZmkKIApAQCAtNjAs MTEgKzU5LDE0IEBAIHF0Ni1kZWNsYXJhdGl2ZS1kZXZlbF9wYWNrYWdlKCkgewogCXBrZ19pbnN0 YWxsKCkgewogCQl2bW92ZSB1c3IvaW5jbHVkZQogCQl2bW92ZSB1c3IvbGliL2NtYWtlCisJCXZt b3ZlIHVzci9saWIvbWV0YXR5cGVzCisJCXZtb3ZlIHVzci9saWIvcGtnY29uZmlnCiAJCXZtb3Zl IHVzci9saWIvcXQ2L21rc3BlY3MKIAkJdm1vdmUgInVzci9saWIvbGliUXQ2UXVpY2tUZXN0LnNv LioiCiAJCXZtb3ZlIHVzci9saWIvcXQ2L3FtbC9RdFRlc3QKIAkJdm1vdmUgdXNyL2xpYi9xdDYv YmluL3FtbHRlc3RydW5uZXIKIAkJdm1vdmUgInVzci9saWIvKi5zbyIKIAkJdm1vdmUgInVzci9s aWIvKi5wcmwiCisJCXZtb3ZlIHVzci9zaGFyZS9xdDYvbW9kdWxlcwogCX0KIH0KCkZyb20gMzMz ZmUwNmZhNjFkODZkYWUzYWRkNmQ0MzMwNmY2YzY3NTE4ZjM1YiBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogPT9VVEYtOD9xPz1DND05MG89QzM9QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1D Mz1CNG5nPTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+CkRhdGU6IE1vbiwgOCBBdWcg MjAyMiAxNzoxMzowNyArMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDQvMjZdIHF0Ni1pbWFnZWZvcm1h dHM6IHVwZGF0ZSB0byA2LjMuMS4KCi0tLQogc3JjcGtncy9xdDYtaW1hZ2Vmb3JtYXRzL3RlbXBs YXRlIHwgNSArKy0tLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni1pbWFnZWZvcm1hdHMvdGVtcGxhdGUgYi9z cmNwa2dzL3F0Ni1pbWFnZWZvcm1hdHMvdGVtcGxhdGUKaW5kZXggZWFjYTk1MjQzYzQ4Li45ZjZk MmZiNjY3NzYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcXQ2LWltYWdlZm9ybWF0cy90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL3F0Ni1pbWFnZWZvcm1hdHMvdGVtcGxhdGUKQEAgLTEsMTAgKzEsOSBAQAog IyBUZW1wbGF0ZSBmaWxlIGZvciAncXQ2LWltYWdlZm9ybWF0cycKIHBrZ25hbWU9cXQ2LWltYWdl Zm9ybWF0cwotdmVyc2lvbj02LjMuMAordmVyc2lvbj02LjMuMQogcmV2aXNpb249MQogd3Jrc3Jj PSJxdGltYWdlZm9ybWF0cy1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9 Y21ha2UKLWNvbmZpZ3VyZV9hcmdzPSItRFFUX0hPU1RfUEFUSD0vdXNyIgogaG9zdG1ha2VkZXBl bmRzPSJwZXJsIHF0Ni1iYXNlLWRldmVsIgogbWFrZWRlcGVuZHM9InF0Ni1iYXNlLWRldmVsIgog c2hvcnRfZGVzYz0iQ3Jvc3MtcGxhdGZvcm0gYXBwbGljYXRpb24gYW5kIFVJIGZyYW1ld29yayAt IGltYWdlZm9ybWF0cyIKQEAgLTEyLDQgKzExLDQgQEAgbWFpbnRhaW5lcj0iSm9obiA8bWVAam9o bm55bmF0b3IuZGV2PiIKIGxpY2Vuc2U9IkxHUEwtMy4wLW9ubHkgT1IgR1BMLTIuMC1vbmx5IE9S IEdQTC0zLjAtb25seSIKIGhvbWVwYWdlPSJodHRwczovL3F0LmlvLyIKIGRpc3RmaWxlcz0iaHR0 cDovL2Rvd25sb2FkLnF0LmlvL29mZmljaWFsX3JlbGVhc2VzL3F0LyR7dmVyc2lvbiUuKn0vJHt2 ZXJzaW9ufS9zdWJtb2R1bGVzL3F0aW1hZ2Vmb3JtYXRzLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lv bn0udGFyLnh6IgotY2hlY2tzdW09MDI1ZDBkMTdlZDc1YjQyYTdlYjZiNTIzNzMxYWI4ZjE3MDI1 NDIxYTg4MTBjYWRlMjVjYWZmZTA1ZDkzYWJlZgorY2hlY2tzdW09YWQwMzEyYjhkZmJiYjY3Zjcy OWJmYWRiZmNkNDcyNDZlZTRhMTI4YjcxNzczMWJhMTU4YzQxZDAxZmRlMjEyZgoKRnJvbSA5Zjli MGViOGUwNWNiMDU1OTZjYWIyNDk0MDNkZTliZDcxMTc0NjRlIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249MjBDPUMz PUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCA4IEF1ZyAy MDIyIDE3OjEzOjA3ICswNzAwClN1YmplY3Q6IFtQQVRDSCAwNS8yNl0gcXQ2LWxvY2F0aW9uOiB1 cGRhdGUgdG8gNi4zLjEuCgotLS0KIHNyY3BrZ3MvcXQ2LWxvY2F0aW9uL3RlbXBsYXRlIHwgOCAr KysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni1sb2NhdGlvbi90ZW1wbGF0ZSBiL3NyY3BrZ3MvcXQ2 LWxvY2F0aW9uL3RlbXBsYXRlCmluZGV4IGI3Mzk3ZjVmODk0Mi4uOWYyNjEwMzI1OWFkIDEwMDY0 NAotLS0gYS9zcmNwa2dzL3F0Ni1sb2NhdGlvbi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3F0Ni1s b2NhdGlvbi90ZW1wbGF0ZQpAQCAtMSwxMCArMSw5IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdx dDYtbG9jYXRpb24nCiBwa2duYW1lPXF0Ni1sb2NhdGlvbgotdmVyc2lvbj02LjMuMAordmVyc2lv bj02LjMuMQogcmV2aXNpb249MQogd3Jrc3JjPSJxdHBvc2l0aW9uaW5nLWV2ZXJ5d2hlcmUtc3Jj LSR7dmVyc2lvbn0iCiBidWlsZF9zdHlsZT1jbWFrZQotY29uZmlndXJlX2FyZ3M9Ii1EUVRfSE9T VF9QQVRIPS91c3IiCiBob3N0bWFrZWRlcGVuZHM9InBlcmwgcXQ2LWJhc2UtZGV2ZWwgcXQ2LWRl Y2xhcmF0aXZlLWRldmVsIgogbWFrZWRlcGVuZHM9InF0Ni1zZXJpYWxwb3J0LWRldmVsIHF0Ni1k ZWNsYXJhdGl2ZS1kZXZlbCBHQ29uZi1kZXZlbCIKIHNob3J0X2Rlc2M9IkNyb3NzLXBsYXRmb3Jt IGFwcGxpY2F0aW9uIGFuZCBVSSBmcmFtZXdvcmsgLSBsb2NhdGlvbiIKQEAgLTEyLDcgKzExLDcg QEAgbWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKIGxpY2Vuc2U9IihMR1BM LTMuMC1vbmx5IE9SIEdQTC0yLjAtb25seSBPUiBHUEwtMy4wLW9ubHkpIEFORCBHUEwtMy4wLW9u bHkgd2l0aCBRdC1HUEwtZXhjZXB0aW9uLTEuMCIKIGhvbWVwYWdlPSJodHRwczovL3F0LmlvLyIK IGRpc3RmaWxlcz0iaHR0cDovL2Rvd25sb2FkLnF0LmlvL29mZmljaWFsX3JlbGVhc2VzL3F0LyR7 dmVyc2lvbiUuKn0vJHt2ZXJzaW9ufS9zdWJtb2R1bGVzL3F0cG9zaXRpb25pbmctZXZlcnl3aGVy ZS1zcmMtJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1lOWVkNTBmNmIyNDVhMzQ2ZGIzNGQ2 MjVkMDAxMjc3NGVmMGVjOGU3ZmQ2NTAzNzEyN2VjMjY3NTg3MDgyMzZlCitjaGVja3N1bT0wNjc4 OGU0ZWNhZTE5MjAwOTRiMzBlNDA0NmYwYWJkMjNjODE4OWQ4YTUxZTljOTM5YjAyZjBiNmFiZTJl ODZjCiAKIHF0Ni1sb2NhdGlvbi1kZXZlbF9wYWNrYWdlKCkgewogCWRlcGVuZHM9IiR7c291cmNl cGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSBxdDYtYmFzZS1kZXZlbD49JHt2ZXJzaW9ufV8x IgpAQCAtMjAsOCArMTksMTEgQEAgcXQ2LWxvY2F0aW9uLWRldmVsX3BhY2thZ2UoKSB7CiAJcGtn X2luc3RhbGwoKSB7CiAJCXZtb3ZlIHVzci9pbmNsdWRlCiAJCXZtb3ZlIHVzci9saWIvY21ha2UK KwkJdm1vdmUgdXNyL2xpYi9tZXRhdHlwZXMKKwkJdm1vdmUgdXNyL2xpYi9wa2djb25maWcKIAkJ dm1vdmUgdXNyL2xpYi9xdDYvbWtzcGVjcwogCQl2bW92ZSAidXNyL2xpYi8qLnNvIgogCQl2bW92 ZSAidXNyL2xpYi8qLnBybCIKKwkJdm1vdmUgdXNyL3NoYXJlL3F0Ni9tb2R1bGVzCiAJfQogfQoK RnJvbSAyN2MzZWFhOWUyN2I1YWIwMzI3ZTNhZGFmZjMwYjY1ZGY5MDkzMzY1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1B N249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogTW9u LCA4IEF1ZyAyMDIyIDE3OjEzOjA4ICswNzAwClN1YmplY3Q6IFtQQVRDSCAwNi8yNl0gcXQ2LWxv dHRpZTogdXBkYXRlIHRvIDYuMy4xLgoKLS0tCiBzcmNwa2dzL3F0Ni1sb3R0aWUvdGVtcGxhdGUg fCA5ICsrKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni1sb3R0aWUvdGVtcGxhdGUgYi9zcmNwa2dz L3F0Ni1sb3R0aWUvdGVtcGxhdGUKaW5kZXggMWM5N2NkNWY0ZjMyLi5hN2JlYjYyZWMzNjggMTAw NjQ0Ci0tLSBhL3NyY3BrZ3MvcXQ2LWxvdHRpZS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3F0Ni1s b3R0aWUvdGVtcGxhdGUKQEAgLTEsMTAgKzEsOSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncXQ2 LWxvdHRpZScKIHBrZ25hbWU9cXQ2LWxvdHRpZQotdmVyc2lvbj02LjMuMAordmVyc2lvbj02LjMu MQogcmV2aXNpb249MQogd3Jrc3JjPSJxdGxvdHRpZS1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259 IgogYnVpbGRfc3R5bGU9Y21ha2UKLWNvbmZpZ3VyZV9hcmdzPSItRFFUX0hPU1RfUEFUSD0vdXNy IgogaG9zdG1ha2VkZXBlbmRzPSJwZXJsIHF0Ni1iYXNlLWRldmVsIgogbWFrZWRlcGVuZHM9InF0 Ni1kZWNsYXJhdGl2ZS1kZXZlbCIKIHNob3J0X2Rlc2M9IkNyb3NzLXBsYXRmb3JtIGFwcGxpY2F0 aW9uIGFuZCBVSSBmcmFtZXdvcmsgLSBsb3R0aWUiCkBAIC0xMiwxMCArMTEsMTAgQEAgbWFpbnRh aW5lcj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKIGxpY2Vuc2U9IkdQTC0zLjAtb25seSIK IGhvbWVwYWdlPSJodHRwczovL3F0LmlvLyIKIGRpc3RmaWxlcz0iaHR0cDovL2Rvd25sb2FkLnF0 LmlvL29mZmljaWFsX3JlbGVhc2VzL3F0LyR7dmVyc2lvbiUuKn0vJHt2ZXJzaW9ufS9zdWJtb2R1 bGVzL3F0bG90dGllLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09 MzlkYjU3MGJiYmE1YjUyN2ExZWI2YTU3NzRiZWQ0NzM5OGFjZTJmNzIxN2JiZjQ1YjExOTRhZGE2 Y2Y5N2RlYgorY2hlY2tzdW09NzQwYmE3Njk5OTEyNGQ1ZTFhODVlZjNkMDFjNjk5NzZiYjg1NTc4 NjJiNmIyNmJmNDhiMzU3ZmUwY2FiMWNmNQogCiBpZiBbICIkWEJQU19DSEVDS19QS0dTIiBdOyB0 aGVuCi0JY29uZmlndXJlX2FyZ3MrPSIgLURRVF9CVUlMRF9URVNUUz1PTiIKKwljb25maWd1cmVf YXJncz0iLURRVF9CVUlMRF9URVNUUz1PTiIKIGZpCiAKIHByZV9jaGVjaygpIHsKQEAgLTI4LDgg KzI3LDEwIEBAIHF0Ni1sb3R0aWUtZGV2ZWxfcGFja2FnZSgpIHsKIAlwa2dfaW5zdGFsbCgpIHsK IAkJdm1vdmUgdXNyL2luY2x1ZGUKIAkJdm1vdmUgdXNyL2xpYi9jbWFrZQorCQl2bW92ZSB1c3Iv bGliL21ldGF0eXBlcwogCQl2bW92ZSB1c3IvbGliL3F0Ni9ta3NwZWNzCiAJCXZtb3ZlICJ1c3Iv bGliLyouc28iCiAJCXZtb3ZlICJ1c3IvbGliLyoucHJsIgorCQl2bW92ZSB1c3Ivc2hhcmUvcXQ2 L21vZHVsZXMKIAl9CiB9CgpGcm9tIGY5YWNmNWNhM2Q5OThkMTNiYjcwMTM3YWM3YjFkNzRkZGMz ZTI4YjEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT89QzQ9OTBvPUMz PUEwbj0yMFRyPUUxPUJBPUE3bj0yMEM9QzM9QjRuZz0yMERhbmg/PQogPGNvbmdkYW5ocXhAZ21h aWwuY29tPgpEYXRlOiBNb24sIDggQXVnIDIwMjIgMTc6MTM6MDggKzA3MDAKU3ViamVjdDogW1BB VENIIDA3LzI2XSBxdDYtbmV0d29ya2F1dGg6IHVwZGF0ZSB0byA2LjMuMS4KCi0tLQogc3JjcGtn cy9xdDYtbmV0d29ya2F1dGgvdGVtcGxhdGUgfCAxMCArKysrKystLS0tCiAxIGZpbGUgY2hhbmdl ZCwgNiBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv cXQ2LW5ldHdvcmthdXRoL3RlbXBsYXRlIGIvc3JjcGtncy9xdDYtbmV0d29ya2F1dGgvdGVtcGxh dGUKaW5kZXggZTkzNGJlYWRhOWIwLi4xNDU0Y2ViNGE1MjUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv cXQ2LW5ldHdvcmthdXRoL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcXQ2LW5ldHdvcmthdXRoL3Rl bXBsYXRlCkBAIC0xLDEwICsxLDkgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3F0Ni1uZXR3b3Jr YXV0aCcKIHBrZ25hbWU9cXQ2LW5ldHdvcmthdXRoCi12ZXJzaW9uPTYuMy4wCit2ZXJzaW9uPTYu My4xCiByZXZpc2lvbj0xCiB3cmtzcmM9InF0bmV0d29ya2F1dGgtZXZlcnl3aGVyZS1zcmMtJHt2 ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPWNtYWtlCi1jb25maWd1cmVfYXJncz0iLURRVF9IT1NUX1BB VEg9L3VzciIKIGhvc3RtYWtlZGVwZW5kcz0icGVybCBxdDYtYmFzZS1kZXZlbCIKIG1ha2VkZXBl bmRzPSJxdDYtYmFzZS1kZXZlbCIKIHNob3J0X2Rlc2M9IkNyb3NzLXBsYXRmb3JtIGFwcGxpY2F0 aW9uIGFuZCBVSSBmcmFtZXdvcmsgLSBuZXR3b3JrYXV0aCIKQEAgLTEyLDEwICsxMSwxMCBAQCBt YWludGFpbmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+IgogbGljZW5zZT0iR1BMLTMuMC1v bmx5IgogaG9tZXBhZ2U9Imh0dHBzOi8vcXQuaW8vIgogZGlzdGZpbGVzPSJodHRwOi8vZG93bmxv YWQucXQuaW8vb2ZmaWNpYWxfcmVsZWFzZXMvcXQvJHt2ZXJzaW9uJS4qfS8ke3ZlcnNpb259L3N1 Ym1vZHVsZXMvcXRuZXR3b3JrYXV0aC1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259LnRhci54eiIK LWNoZWNrc3VtPTIwM2E5ODk0MjkxOTAyODUyMDAzOGY5MGEyMGNkN2VlMzJiNTM3MjMzNTQ1ZDEx ZTQyOWMzZTJjMWFkOTA2OWYKK2NoZWNrc3VtPWQ2MGY1NGI5ZDQ1MDlmYThiZGJmMTk5MGJjOTFm NmUyNjBlMzhjZGI1N2E3YjgxMTlmYTM4NjFiYzVkMmZiMmEKIAogaWYgWyAiJFhCUFNfQ0hFQ0tf UEtHUyIgXTsgdGhlbgotCWNvbmZpZ3VyZV9hcmdzKz0iIC1EUVRfQlVJTERfVEVTVFM9T04iCisJ Y29uZmlndXJlX2FyZ3M9Ii1EUVRfQlVJTERfVEVTVFM9T04iCiBmaQogCiBxdDYtbmV0d29ya2F1 dGgtZGV2ZWxfcGFja2FnZSgpIHsKQEAgLTI0LDggKzIzLDExIEBAIHF0Ni1uZXR3b3JrYXV0aC1k ZXZlbF9wYWNrYWdlKCkgewogCXBrZ19pbnN0YWxsKCkgewogCQl2bW92ZSB1c3IvaW5jbHVkZQog CQl2bW92ZSB1c3IvbGliL2NtYWtlCisJCXZtb3ZlIHVzci9saWIvbWV0YXR5cGVzCisJCXZtb3Zl IHVzci9saWIvcGtnY29uZmlnCiAJCXZtb3ZlIHVzci9saWIvcXQ2L21rc3BlY3MKIAkJdm1vdmUg InVzci9saWIvKi5zbyIKIAkJdm1vdmUgInVzci9saWIvKi5wcmwiCisJCXZtb3ZlIHVzci9zaGFy ZS9xdDYvbW9kdWxlcwogCX0KIH0KCkZyb20gNzFjOGEyNjRiZmU4OTlmNzZhZjYyNWE3N2VkOGM0 OGU4ZDA3MmU2ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1DND05 MG89QzM9QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2Rhbmhx eEBnbWFpbC5jb20+CkRhdGU6IE1vbiwgOCBBdWcgMjAyMiAxNzoxMzowOCArMDcwMApTdWJqZWN0 OiBbUEFUQ0ggMDgvMjZdIHF0Ni1xdDVjb21wYXQ6IHVwZGF0ZSB0byA2LjMuMS4KCi0tLQogc3Jj cGtncy9xdDYtcXQ1Y29tcGF0L3RlbXBsYXRlIHwgMTIgKysrKysrKy0tLS0tCiAxIGZpbGUgY2hh bmdlZCwgNyBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvcXQ2LXF0NWNvbXBhdC90ZW1wbGF0ZSBiL3NyY3BrZ3MvcXQ2LXF0NWNvbXBhdC90ZW1wbGF0 ZQppbmRleCA3ZmNkNWFkNTA4MGUuLmE2MjU3M2NmYWJmYSAxMDA2NDQKLS0tIGEvc3JjcGtncy9x dDYtcXQ1Y29tcGF0L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcXQ2LXF0NWNvbXBhdC90ZW1wbGF0 ZQpAQCAtMSwxMCArMSw5IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdxdDYtcXQ1Y29tcGF0Jwog cGtnbmFtZT1xdDYtcXQ1Y29tcGF0Ci12ZXJzaW9uPTYuMy4wCi1yZXZpc2lvbj0yCit2ZXJzaW9u PTYuMy4xCityZXZpc2lvbj0xCiB3cmtzcmM9InF0NWNvbXBhdC1ldmVyeXdoZXJlLXNyYy0ke3Zl cnNpb259IgogYnVpbGRfc3R5bGU9Y21ha2UKLWNvbmZpZ3VyZV9hcmdzPSItRFFUX0hPU1RfUEFU SD0vdXNyIgogaG9zdG1ha2VkZXBlbmRzPSJxdDYtYmFzZS1kZXZlbCBxdDYtZGVjbGFyYXRpdmUt ZGV2ZWwgcGVybCBwa2ctY29uZmlnIgogbWFrZWRlcGVuZHM9InF0Ni1iYXNlLWRldmVsIHF0Ni1k ZWNsYXJhdGl2ZS1kZXZlbCIKIHNob3J0X2Rlc2M9IkNyb3NzLXBsYXRmb3JtIGFwcGxpY2F0aW9u IGFuZCBVSSBmcmFtZXdvcmsgLSBRdDUgQ29tcGF0aWJpbHR5IENvbXBvbmVudCIKQEAgLTEyLDEw ICsxMSwxMCBAQCBtYWludGFpbmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+IgogbGljZW5z ZT0iR1BMLTMuMC1vbmx5IHdpdGggUXQtR1BMLWV4Y2VwdGlvbi0xLjAsIExHUEwtMy4wLW9ubHks IEdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9xdC5pby8iCiBkaXN0ZmlsZXM9 Imh0dHA6Ly9kb3dubG9hZC5xdC5pby9vZmZpY2lhbF9yZWxlYXNlcy9xdC8ke3ZlcnNpb24lLip9 LyR7dmVyc2lvbn0vc3VibW9kdWxlcy9xdDVjb21wYXQtZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9u fS50YXIueHoiCi1jaGVja3N1bT0yYjE5OWJlNzgwYzUwZDkyMTQ1MTJiOTIyZDk0Y2IyNDBiMDQx MmZkNjNmNDU5ZTM1NmI3NjEwMmNhZDE3MTNlCitjaGVja3N1bT1hNDNlYzYyYmQ3NzhlYWVjZjg4 YWQ3ODQ3MTE4ZDFjMmE0NzFiMGZjYjgyMGY5M2JlYjMxMWQ3YWI5NTY2Y2ZkCiAKIGlmIFsgIiRY QlBTX0NIRUNLX1BLR1MiIF07IHRoZW4KLQljb25maWd1cmVfYXJncys9IiAtRFFUX0JVSUxEX1RF U1RTPU9OIgorCWNvbmZpZ3VyZV9hcmdzPSItRFFUX0JVSUxEX1RFU1RTPU9OIgogZmkKIAogcXQ2 LXF0NWNvbXBhdC1kZXZlbF9wYWNrYWdlKCkgewpAQCAtMjQsOCArMjMsMTEgQEAgcXQ2LXF0NWNv bXBhdC1kZXZlbF9wYWNrYWdlKCkgewogCXBrZ19pbnN0YWxsKCkgewogCQl2bW92ZSB1c3IvaW5j bHVkZQogCQl2bW92ZSB1c3IvbGliL2NtYWtlCisJCXZtb3ZlIHVzci9saWIvbWV0YXR5cGVzCisJ CXZtb3ZlIHVzci9saWIvcGtnY29uZmlnCiAJCXZtb3ZlIHVzci9saWIvcXQ2L21rc3BlY3MKIAkJ dm1vdmUgInVzci9saWIvKi5zbyIKIAkJdm1vdmUgInVzci9saWIvKi5wcmwiCisJCXZtb3ZlIHVz ci9zaGFyZS9xdDYvbW9kdWxlcwogCX0KIH0KCkZyb20gNTljOWNiZmI0OTNlODM3YTgyZDQxNWI5 OGEyMjFlMTQzMjM5MjE2NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9x Pz1DND05MG89QzM9QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29u Z2RhbmhxeEBnbWFpbC5jb20+CkRhdGU6IE1vbiwgOCBBdWcgMjAyMiAxNzoxMzowOCArMDcwMApT dWJqZWN0OiBbUEFUQ0ggMDkvMjZdIHF0Ni1xdWljazNkOiB1cGRhdGUgdG8gNi4zLjEuCgotLS0K IHNyY3BrZ3MvcXQ2LXF1aWNrM2QvdGVtcGxhdGUgfCAxMCArKysrKystLS0tCiAxIGZpbGUgY2hh bmdlZCwgNiBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvcXQ2LXF1aWNrM2QvdGVtcGxhdGUgYi9zcmNwa2dzL3F0Ni1xdWljazNkL3RlbXBsYXRlCmlu ZGV4IDBmN2VmMzM2YTNmZi4uYjIzNDljMDM1MDFiIDEwMDY0NAotLS0gYS9zcmNwa2dzL3F0Ni1x dWljazNkL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcXQ2LXF1aWNrM2QvdGVtcGxhdGUKQEAgLTEs MTAgKzEsOSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncXQ2LXF1aWNrM2QnCiBwa2duYW1lPXF0 Ni1xdWljazNkCi12ZXJzaW9uPTYuMy4wCit2ZXJzaW9uPTYuMy4xCiByZXZpc2lvbj0xCiB3cmtz cmM9InF0cXVpY2szZC1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9Y21h a2UKLWNvbmZpZ3VyZV9hcmdzPSItRFFUX0hPU1RfUEFUSD0vdXNyICIKIGhvc3RtYWtlZGVwZW5k cz0icGVybCBxdDYtYmFzZS1kZXZlbCBxdDYtZGVjbGFyYXRpdmUtZGV2ZWwgcXQ2LXNoYWRlcnRv b2xzLWRldmVsIgogbWFrZWRlcGVuZHM9InF0Ni1iYXNlLWRldmVsIHF0Ni1kZWNsYXJhdGl2ZS1k ZXZlbCBxdDYtc2hhZGVydG9vbHMtZGV2ZWwKICBsaWJhc3NpbXAtZGV2ZWwiCkBAIC0xMyw3ICsx Miw3IEBAIG1haW50YWluZXI9IkpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4iCiBsaWNlbnNlPSJH UEwtMy4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vcXQuaW8vIgogZGlzdGZpbGVzPSJo dHRwOi8vZG93bmxvYWQucXQuaW8vb2ZmaWNpYWxfcmVsZWFzZXMvcXQvJHt2ZXJzaW9uJS4qfS8k e3ZlcnNpb259L3N1Ym1vZHVsZXMvcXRxdWljazNkLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0u dGFyLnh6IgotY2hlY2tzdW09MGFkMDViZDFlZTFmNzg0YjE4MjIwYTJkMjYyNWVlOGRlOTE2NjJj ODhmZGM3Yjc5ODY2Mjk1M2Q4NmViMzI3ZQorY2hlY2tzdW09MmZhNzY2ZWU0N2I4YzA3NDEyYjNi NzU1MjA2YWRhMDcxNWZiMDc4MTNiNjRlZDA2OWU3MjA1MDQ0YzA2MTI1NgogCiBpZiBbICIkWEJQ U19UQVJHRVRfRU5ESUFOIiA9ICJiZSIgXTsgdGhlbgogCSMgcG9zc2libHkgYSBxdDYtc2hhZGVy dG9vbHMgYnVnLCBhY3R1YWxseQpAQCAtMjYsOSArMjUsMTIgQEAgcXQ2LXF1aWNrM2QtZGV2ZWxf cGFja2FnZSgpIHsKIAlwa2dfaW5zdGFsbCgpIHsKIAkJdm1vdmUgdXNyL2luY2x1ZGUKIAkJdm1v dmUgdXNyL2xpYi9jbWFrZQotCQl2bW92ZSB1c3IvbGliL3F0Ni9ta3NwZWNzCisJCXZtb3ZlIHVz ci9saWIvbWV0YXR5cGVzCisJCXZtb3ZlIHVzci9saWIvcGtnY29uZmlnCiAJCXZtb3ZlIHVzci9s aWIvcXQ2L2JpbgorCQl2bW92ZSB1c3IvbGliL3F0Ni9ta3NwZWNzCiAJCXZtb3ZlICJ1c3IvbGli Lyouc28iCiAJCXZtb3ZlICJ1c3IvbGliLyoucHJsIgorCQl2bW92ZSB1c3Ivc2hhcmUvcXQ2L21v ZHVsZXMKIAl9CiB9CgpGcm9tIGIxNzllMTkxMzg2YTc2M2ZlYzNlNjU1MDBjNzI0Y2Y5MDI1Y2M5 YTQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT89QzQ9OTBvPUMzPUEw bj0yMFRyPUUxPUJBPUE3bj0yMEM9QzM9QjRuZz0yMERhbmg/PQogPGNvbmdkYW5ocXhAZ21haWwu Y29tPgpEYXRlOiBNb24sIDggQXVnIDIwMjIgMTc6MTM6MDkgKzA3MDAKU3ViamVjdDogW1BBVENI IDEwLzI2XSBxdDYtcXVpY2t0aW1lbGluZTogdXBkYXRlIHRvIDYuMy4xLgoKLS0tCiBzcmNwa2dz L3F0Ni1xdWlja3RpbWVsaW5lL3RlbXBsYXRlIHwgNyArKystLS0tCiAxIGZpbGUgY2hhbmdlZCwg MyBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2 LXF1aWNrdGltZWxpbmUvdGVtcGxhdGUgYi9zcmNwa2dzL3F0Ni1xdWlja3RpbWVsaW5lL3RlbXBs YXRlCmluZGV4IDE1YWE3YThlNTgxOS4uYmYwMmUwNDNjNGE1IDEwMDY0NAotLS0gYS9zcmNwa2dz L3F0Ni1xdWlja3RpbWVsaW5lL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcXQ2LXF1aWNrdGltZWxp bmUvdGVtcGxhdGUKQEAgLTEsMTAgKzEsOSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncXQ2LXF1 aWNrdGltZWxpbmUnCiBwa2duYW1lPXF0Ni1xdWlja3RpbWVsaW5lCi12ZXJzaW9uPTYuMy4wCit2 ZXJzaW9uPTYuMy4xCiByZXZpc2lvbj0xCiB3cmtzcmM9InF0cXVpY2t0aW1lbGluZS1ldmVyeXdo ZXJlLXNyYy0ke3ZlcnNpb24vcmMvLXJjfSIKIGJ1aWxkX3N0eWxlPWNtYWtlCi1jb25maWd1cmVf YXJncz0iLURRVF9IT1NUX1BBVEg9L3VzciAiCiBob3N0bWFrZWRlcGVuZHM9InBlcmwgcXQ2LWJh c2UtZGV2ZWwgcXQ2LWRlY2xhcmF0aXZlLWRldmVsIgogbWFrZWRlcGVuZHM9InF0Ni1iYXNlLWRl dmVsIHF0Ni1kZWNsYXJhdGl2ZS1kZXZlbCIKIHNob3J0X2Rlc2M9IkNyb3NzLXBsYXRmb3JtIGFw cGxpY2F0aW9uIGFuZCBVSSBmcmFtZXdvcmsgLSBxdWlja3RpbWVsaW5lIgpAQCAtMTIsMTAgKzEx LDEwIEBAIG1haW50YWluZXI9IkpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4iCiBsaWNlbnNlPSJH UEwtMy4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vcXQuaW8vIgogZGlzdGZpbGVzPSJo dHRwOi8vZG93bmxvYWQucXQuaW8vb2ZmaWNpYWxfcmVsZWFzZXMvcXQvJHt2ZXJzaW9uJS4qfS8k e3ZlcnNpb24vcmMvLXJjfS9zdWJtb2R1bGVzL3F0cXVpY2t0aW1lbGluZS1ldmVyeXdoZXJlLXNy Yy0ke3ZlcnNpb24vcmMvLXJjfS50YXIueHoiCi1jaGVja3N1bT05ZmYwYTkzMTE1OWVmYzZiZTVi ZDlmOGExZTRhMTZhNzBlMmRhYjM3Y2YyMmFkODVjNmQzMzBjY2ZkZjMxYzFhCitjaGVja3N1bT01 OGExM2NmMGNlOGU3NzU1NjM5ZjIwNjg0MDc4NzMzYWYyNGY1YTMxN2Y2ZGRiNDBkNjA3OWM4YzVh MjhlYmJlCiAKIGlmIFsgIiRYQlBTX0NIRUNLX1BLR1MiIF07IHRoZW4KLQljb25maWd1cmVfYXJn cys9IiAtRFFUX0JVSUxEX1RFU1RTPU9OIgorCWNvbmZpZ3VyZV9hcmdzPSItRFFUX0JVSUxEX1RF U1RTPU9OIgogZmkKIAogcHJlX2NoZWNrKCkgewoKRnJvbSA3MzRjMzI5M2RkYmEwMjJhM2M5NmY5 YmExZjM1ZTU1ODc1ZmNmYzM0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04 P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxj b25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCA4IEF1ZyAyMDIyIDE3OjEzOjA5ICswNzAw ClN1YmplY3Q6IFtQQVRDSCAxMS8yNl0gcXQ2LXNjeG1sOiB1cGRhdGUgdG8gNi4zLjEuCgotLS0K IHNyY3BrZ3MvcXQ2LXNjeG1sL3RlbXBsYXRlIHwgMTAgKysrKysrLS0tLQogMSBmaWxlIGNoYW5n ZWQsIDYgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dz L3F0Ni1zY3htbC90ZW1wbGF0ZSBiL3NyY3BrZ3MvcXQ2LXNjeG1sL3RlbXBsYXRlCmluZGV4IDEx MmJhY2EwYWI4My4uOTQyYTcxYWZlNDc2IDEwMDY0NAotLS0gYS9zcmNwa2dzL3F0Ni1zY3htbC90 ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3F0Ni1zY3htbC90ZW1wbGF0ZQpAQCAtMSwxMCArMSw5IEBA CiAjIFRlbXBsYXRlIGZpbGUgZm9yICdxdDYtc2N4bWwnCiBwa2duYW1lPXF0Ni1zY3htbAotdmVy c2lvbj02LjMuMAordmVyc2lvbj02LjMuMQogcmV2aXNpb249MQogd3Jrc3JjPSJxdHNjeG1sLWV2 ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0iCiBidWlsZF9zdHlsZT1jbWFrZQotY29uZmlndXJlX2Fy Z3M9Ii1EUVRfSE9TVF9QQVRIPS91c3IiCiBob3N0bWFrZWRlcGVuZHM9InBlcmwgcXQ2LWRlY2xh cmF0aXZlLWRldmVsIgogbWFrZWRlcGVuZHM9InF0Ni1kZWNsYXJhdGl2ZS1kZXZlbCIKIHNob3J0 X2Rlc2M9IkNyb3NzLXBsYXRmb3JtIGFwcGxpY2F0aW9uIGFuZCBVSSBmcmFtZXdvcmsgLSBzY3ht bCIKQEAgLTEyLDEwICsxMSwxMCBAQCBtYWludGFpbmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5k ZXY+IgogbGljZW5zZT0iTEdQTC0zLjAtb25seSBPUiBHUEwtMi4wLW9ubHkgT1IgR1BMLTMuMC1v bmx5IgogaG9tZXBhZ2U9Imh0dHBzOi8vcXQuaW8vIgogZGlzdGZpbGVzPSJodHRwOi8vZG93bmxv YWQucXQuaW8vb2ZmaWNpYWxfcmVsZWFzZXMvcXQvJHt2ZXJzaW9uJS4qfS8ke3ZlcnNpb259L3N1 Ym1vZHVsZXMvcXRzY3htbC1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNr c3VtPTA5YjBkYmQ2YWMzNjc5MjBmYjFiYTk2YTM5ZGNkNGM5ZDMzZWIwODIwZGNjNzk1Mzg5OTI4 MjVkNTg4YTcwZjAKK2NoZWNrc3VtPTAxYmMxNTRkNjE2M2QxZjA0OWY0ZTFlNzY2NThhMDQ0NzMw YWNlN2IwYTViZTM1YzlhNDZmY2QxMzk2Zjg2MTkKIAogaWYgWyAiJFhCUFNfQ0hFQ0tfUEtHUyIg XTsgdGhlbgotCWNvbmZpZ3VyZV9hcmdzKz0iIC1EUVRfQlVJTERfVEVTVFM9T04iCisJY29uZmln dXJlX2FyZ3M9Ii1EUVRfQlVJTERfVEVTVFM9T04iCiBmaQogCiBxdDYtc2N4bWwtZGV2ZWxfcGFj a2FnZSgpIHsKQEAgLTI0LDggKzIzLDExIEBAIHF0Ni1zY3htbC1kZXZlbF9wYWNrYWdlKCkgewog CXBrZ19pbnN0YWxsKCkgewogCQl2bW92ZSB1c3IvaW5jbHVkZQogCQl2bW92ZSB1c3IvbGliL2Nt YWtlCisJCXZtb3ZlIHVzci9saWIvbWV0YXR5cGVzCisJCXZtb3ZlIHVzci9saWIvcGtnY29uZmln CiAJCXZtb3ZlIHVzci9saWIvcXQ2L21rc3BlY3MKIAkJdm1vdmUgInVzci9saWIvKi5zbyIKIAkJ dm1vdmUgInVzci9saWIvKi5wcmwiCisJCXZtb3ZlIHVzci9zaGFyZS9xdDYvbW9kdWxlcwogCX0K IH0KCkZyb20gZDljYmM1NTI1ZGU5YWUxMGE1OTUwMzdlZGE2NzQzMzMwOGQzNWQ3YSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1DND05MG89QzM9QTBuPTIwVHI9RTE9 QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+CkRhdGU6 IE1vbiwgOCBBdWcgMjAyMiAxNzoxMzowOSArMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTIvMjZdIHF0 Ni1zZXJpYWxwb3J0OiB1cGRhdGUgdG8gNi4zLjEuCgotLS0KIHNyY3BrZ3MvcXQ2LXNlcmlhbHBv cnQvdGVtcGxhdGUgfCA4ICsrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCsp LCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXNlcmlhbHBvcnQvdGVt cGxhdGUgYi9zcmNwa2dzL3F0Ni1zZXJpYWxwb3J0L3RlbXBsYXRlCmluZGV4IDA4MDQ2NzFjYTU3 Yi4uMmRlOWQ2MzY0YTVjIDEwMDY0NAotLS0gYS9zcmNwa2dzL3F0Ni1zZXJpYWxwb3J0L3RlbXBs YXRlCisrKyBiL3NyY3BrZ3MvcXQ2LXNlcmlhbHBvcnQvdGVtcGxhdGUKQEAgLTEsMTAgKzEsOSBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncXQ2LXNlcmlhbHBvcnQnCiBwa2duYW1lPXF0Ni1zZXJp YWxwb3J0Ci12ZXJzaW9uPTYuMy4wCit2ZXJzaW9uPTYuMy4xCiByZXZpc2lvbj0xCiB3cmtzcmM9 InF0c2VyaWFscG9ydC1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9Y21h a2UKLWNvbmZpZ3VyZV9hcmdzPSItRFFUX0hPU1RfUEFUSD0vdXNyIgogaG9zdG1ha2VkZXBlbmRz PSJwZXJsIHF0Ni1iYXNlLWRldmVsIHBrZy1jb25maWciCiBtYWtlZGVwZW5kcz0icXQ2LWJhc2Ut ZGV2ZWwiCiBzaG9ydF9kZXNjPSJDcm9zcy1wbGF0Zm9ybSBhcHBsaWNhdGlvbiBhbmQgVUkgZnJh bWV3b3JrIC0gc2VyaWFscG9ydCIKQEAgLTEyLDcgKzExLDcgQEAgbWFpbnRhaW5lcj0iSm9obiA8 bWVAam9obm55bmF0b3IuZGV2PiIKIGxpY2Vuc2U9IihMR1BMLTMuMC1vbmx5IE9SIEdQTC0yLjAt b25seSBPUiBHUEwtMy4wLW9ubHkpIEFORCBHUEwtMy4wLW9ubHkgd2l0aCBRdC1HUEwtZXhjZXB0 aW9uLTEuMCIKIGhvbWVwYWdlPSJodHRwczovL3F0LmlvLyIKIGRpc3RmaWxlcz0iaHR0cDovL2Rv d25sb2FkLnF0LmlvL29mZmljaWFsX3JlbGVhc2VzL3F0LyR7dmVyc2lvbiUuKn0vJHt2ZXJzaW9u fS9zdWJtb2R1bGVzL3F0c2VyaWFscG9ydC1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259LnRhci54 eiIKLWNoZWNrc3VtPWVlYmQ2OTM0ZDQ4Y2MwNDRiOGM4Nzc5NWE0ZmQ5MWJiODFmNzE5NWQ0YjVh MmRkYjEyODAyZjM0M2Q1ZGI2NGYKK2NoZWNrc3VtPTRlYjZkODBlNjU3OTlkZDJlMDMxOGRmNGRm YmExNDE3M2MxOTI5ZTg2MTcxOGNkYTliZWRjYTI0MjUzYjYxNmUKIAogcXQ2LXNlcmlhbHBvcnQt ZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSIke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHty ZXZpc2lvbn0gcXQ2LWJhc2UtZGV2ZWw+PSR7dmVyc2lvbn1fMSIKQEAgLTIwLDggKzE5LDExIEBA IHF0Ni1zZXJpYWxwb3J0LWRldmVsX3BhY2thZ2UoKSB7CiAJcGtnX2luc3RhbGwoKSB7CiAJCXZt b3ZlIHVzci9pbmNsdWRlCiAJCXZtb3ZlIHVzci9saWIvY21ha2UKKwkJdm1vdmUgdXNyL2xpYi9t ZXRhdHlwZXMKKwkJdm1vdmUgdXNyL2xpYi9wa2djb25maWcKIAkJdm1vdmUgdXNyL2xpYi9xdDYv bWtzcGVjcwogCQl2bW92ZSAidXNyL2xpYi8qLnNvIgogCQl2bW92ZSAidXNyL2xpYi8qLnBybCIK KwkJdm1vdmUgdXNyL3NoYXJlL3F0Ni9tb2R1bGVzCiAJfQogfQoKRnJvbSBiOTA0NmI4NDcxOWY3 ZmEzNWVkMDdlZmIwY2IzNmJmODE0OTgxYjQ3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249MjBDPUMzPUI0bmc9MjBE YW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCA4IEF1ZyAyMDIyIDE3OjEz OjA5ICswNzAwClN1YmplY3Q6IFtQQVRDSCAxMy8yNl0gcXQ2LXNoYWRlcnRvb2xzOiB1cGRhdGUg dG8gNi4zLjEuCgotLS0KIHNyY3BrZ3MvcXQ2LXNoYWRlcnRvb2xzL3RlbXBsYXRlIHwgMTQgKysr KysrKysrKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXNoYWRlcnRvb2xzL3RlbXBsYXRlIGIvc3Jj cGtncy9xdDYtc2hhZGVydG9vbHMvdGVtcGxhdGUKaW5kZXggOWMxZWMyMTBhOTZhLi40NjA2ZmE3 NzI2YjEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcXQ2LXNoYWRlcnRvb2xzL3RlbXBsYXRlCisrKyBi L3NyY3BrZ3MvcXQ2LXNoYWRlcnRvb2xzL3RlbXBsYXRlCkBAIC0xLDEwICsxLDEwIEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICdxdDYtc2hhZGVydG9vbHMnCiBwa2duYW1lPXF0Ni1zaGFkZXJ0b29s cwotdmVyc2lvbj02LjMuMAordmVyc2lvbj02LjMuMQogcmV2aXNpb249MQogd3Jrc3JjPSJxdHNo YWRlcnRvb2xzLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0iCiBidWlsZF9zdHlsZT1jbWFrZQot Y29uZmlndXJlX2FyZ3M9Ii1EUVRfSE9TVF9QQVRIPS91c3IgIgorY29uZmlndXJlX2FyZ3M9Ii1E UVRfQlVJTERfVE9PTFNfV0hFTl9DUk9TU0NPTVBJTElORz10cnVlIgogaG9zdG1ha2VkZXBlbmRz PSJwZXJsIHF0Ni1iYXNlLWRldmVsIgogbWFrZWRlcGVuZHM9InF0Ni1iYXNlLWRldmVsIgogc2hv cnRfZGVzYz0iQ3Jvc3MtcGxhdGZvcm0gYXBwbGljYXRpb24gYW5kIFVJIGZyYW1ld29yayAtIHNo YWRlcnRvb2xzIgpAQCAtMTIsNyArMTIsMTIgQEAgbWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55 bmF0b3IuZGV2PiIKIGxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6 Ly9xdC5pby8iCiBkaXN0ZmlsZXM9Imh0dHA6Ly9kb3dubG9hZC5xdC5pby9vZmZpY2lhbF9yZWxl YXNlcy9xdC8ke3ZlcnNpb24lLip9LyR7dmVyc2lvbn0vc3VibW9kdWxlcy9xdHNoYWRlcnRvb2xz LWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09NTQ5ODk1OWI5ZDM3 YzI1NGJkMTI2YWIxMzIwY2Y4NmFlYjhhMzFiM2VhN2U1MWRiNjY2YThmOTY5OGFmYmQ2YworY2hl Y2tzdW09NTliNzcxNzY5NjE1MjhjYzdiMGM5MzI1MTM0NjU1ZTI3M2FhODdiNGNiMzg2YzBmNDY4 M2Q4ZjI4NTJlNDM1YQorCitpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KKwlob3N0bWFrZWRl cGVuZHMrPSIgcXQ2LXNoYWRlcnRvb2xzLWRldmVsIgorZmkKKwogCiBxdDYtc2hhZGVydG9vbHMt ZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSIke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHty ZXZpc2lvbn0gcXQ2LWJhc2UtZGV2ZWw+PSR7dmVyc2lvbn1fMSIKQEAgLTIwLDggKzI1LDExIEBA IHF0Ni1zaGFkZXJ0b29scy1kZXZlbF9wYWNrYWdlKCkgewogCXBrZ19pbnN0YWxsKCkgewogCQl2 bW92ZSB1c3IvaW5jbHVkZQogCQl2bW92ZSB1c3IvbGliL2NtYWtlCisJCXZtb3ZlIHVzci9saWIv bWV0YXR5cGVzCisJCXZtb3ZlIHVzci9saWIvcGtnY29uZmlnCiAJCXZtb3ZlIHVzci9saWIvcXQ2 L21rc3BlY3MKIAkJdm1vdmUgInVzci9saWIvKi5zbyIKIAkJdm1vdmUgInVzci9saWIvKi5wcmwi CisJCXZtb3ZlIHVzci9zaGFyZS9xdDYvbW9kdWxlcwogCX0KIH0KCkZyb20gOTQ1NDlmNDBjNzI1 ZjU4Zjg5Y2NhMGYxYmE1NmM0YmY4MGVjYjQxMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogPT9VVEYtOD9xPz1DND05MG89QzM9QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIw RGFuaD89CiA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+CkRhdGU6IE1vbiwgOCBBdWcgMjAyMiAxNzox MzowOSArMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTQvMjZdIHF0Ni1zdmc6IHVwZGF0ZSB0byA2LjMu MS4KCi0tLQogc3JjcGtncy9xdDYtc3ZnL3RlbXBsYXRlIHwgMTAgKysrKysrLS0tLQogMSBmaWxl IGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmNwa2dzL3F0Ni1zdmcvdGVtcGxhdGUgYi9zcmNwa2dzL3F0Ni1zdmcvdGVtcGxhdGUKaW5kZXgg YWE4ZTZiNzQ1MTA5Li4zMDliMDk4OGU0MzUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcXQ2LXN2Zy90 ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3F0Ni1zdmcvdGVtcGxhdGUKQEAgLTEsMTAgKzEsOSBAQAog IyBUZW1wbGF0ZSBmaWxlIGZvciAncXQ2LXN2ZycKIHBrZ25hbWU9cXQ2LXN2ZwotdmVyc2lvbj02 LjMuMAordmVyc2lvbj02LjMuMQogcmV2aXNpb249MQogd3Jrc3JjPSJxdHN2Zy1ldmVyeXdoZXJl LXNyYy0ke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9Y21ha2UKLWNvbmZpZ3VyZV9hcmdzPSItRFFU X0hPU1RfUEFUSD0vdXNyICIKIGhvc3RtYWtlZGVwZW5kcz0icXQ2LWJhc2UtZGV2ZWwgcGVybCIK IG1ha2VkZXBlbmRzPSJxdDYtYmFzZS1kZXZlbCIKIHNob3J0X2Rlc2M9IkNyb3NzLXBsYXRmb3Jt IGFwcGxpY2F0aW9uIGFuZCBVSSBmcmFtZXdvcmsgKFFUNikgLSBxdDYtc3ZnIGNvbXBvbmVudCIK QEAgLTEyLDEwICsxMSwxMCBAQCBtYWludGFpbmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+ IgogbGljZW5zZT0iR1BMLTMuMC1vbmx5IHdpdGggUXQtR1BMLWV4Y2VwdGlvbi0xLjAsIEdQTC0y LjAtb3ItbGF0ZXIsIExHUEwtMy4wLW9ubHkiCiBob21lcGFnZT0iaHR0cHM6Ly9xdC5pby8iCiBk aXN0ZmlsZXM9Imh0dHA6Ly9kb3dubG9hZC5xdC5pby9vZmZpY2lhbF9yZWxlYXNlcy9xdC8ke3Zl cnNpb24lLip9LyR7dmVyc2lvbn0vc3VibW9kdWxlcy9xdHN2Zy1ldmVyeXdoZXJlLXNyYy0ke3Zl cnNpb259LnRhci54eiIKLWNoZWNrc3VtPTMxNjQ1MDRkN2UzZjY0MDQzOTMwODIzNTczOWIxMTI2 MDVhYjVmYzljYzUxN2NhMGIyOGY5ZmI5M2E4ZGIwZTMKK2NoZWNrc3VtPTdiMTlmNDE4ZTZmN2I4 ZTIzMzQ0MDgyZGQwNDQ0MGFhY2Y1ZGEyM2M1YTczOTgwYmEyMmFlNGViYTRmODdkZjcKIAogaWYg WyAiJFhCUFNfQ0hFQ0tfUEtHUyIgXTsgdGhlbgotCWNvbmZpZ3VyZV9hcmdzKz0iIC1EUVRfQlVJ TERfVEVTVFM9T04iCisJY29uZmlndXJlX2FyZ3M9Ii1EUVRfQlVJTERfVEVTVFM9T04iCiBmaQog CiBkb19jaGVjaygpIHsKQEAgLTI5LDggKzI4LDExIEBAIHF0Ni1zdmctZGV2ZWxfcGFja2FnZSgp IHsKIAlwa2dfaW5zdGFsbCgpIHsKIAkJdm1vdmUgdXNyL2luY2x1ZGUKIAkJdm1vdmUgdXNyL2xp Yi9jbWFrZQorCQl2bW92ZSB1c3IvbGliL21ldGF0eXBlcworCQl2bW92ZSB1c3IvbGliL3BrZ2Nv bmZpZwogCQl2bW92ZSB1c3IvbGliL3F0Ni9ta3NwZWNzCiAJCXZtb3ZlICJ1c3IvbGliLyouc28i CiAJCXZtb3ZlICJ1c3IvbGliLyoucHJsIgorCQl2bW92ZSB1c3Ivc2hhcmUvcXQ2L21vZHVsZXMK IAl9CiB9CgpGcm9tIDllYTk3MjI0NGJhMzAwY2VjM2JkYzU5MjY3NzQ1NWRiODJmODI5MTIgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT89QzQ9OTBvPUMzPUEwbj0yMFRy PUUxPUJBPUE3bj0yMEM9QzM9QjRuZz0yMERhbmg/PQogPGNvbmdkYW5ocXhAZ21haWwuY29tPgpE YXRlOiBNb24sIDggQXVnIDIwMjIgMTc6MTM6MTAgKzA3MDAKU3ViamVjdDogW1BBVENIIDE1LzI2 XSBxdDYtdG9vbHM6IHVwZGF0ZSB0byA2LjMuMS4KCi0tLQogc3JjcGtncy9xdDYtdG9vbHMvdGVt cGxhdGUgfCAyMyArKysrKysrKysrKysrKysrKystLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE4IGlu c2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtdG9v bHMvdGVtcGxhdGUgYi9zcmNwa2dzL3F0Ni10b29scy90ZW1wbGF0ZQppbmRleCBmODc1ZGZmNWMw NDYuLmZkMzExMTc2ZTMxZCAxMDA2NDQKLS0tIGEvc3JjcGtncy9xdDYtdG9vbHMvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9xdDYtdG9vbHMvdGVtcGxhdGUKQEAgLTEsMjMgKzEsMzMgQEAKICMgVGVt cGxhdGUgZmlsZSBmb3IgJ3F0Ni10b29scycKIHBrZ25hbWU9cXQ2LXRvb2xzCi12ZXJzaW9uPTYu My4wCit2ZXJzaW9uPTYuMy4xCiByZXZpc2lvbj0xCiB3cmtzcmM9InF0dG9vbHMtZXZlcnl3aGVy ZS1zcmMtJHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPWNtYWtlCi1jb25maWd1cmVfYXJncz0iLURR VF9IT1NUX1BBVEg9L3VzciAiCi1ob3N0bWFrZWRlcGVuZHM9InF0Ni1iYXNlLWRldmVsIHBlcmwi Ci1tYWtlZGVwZW5kcz0icXQ2LWJhc2UtZGV2ZWwgbGliYXRvbWljLWRldmVsIgorY29uZmlndXJl X2FyZ3M9Ii1EUVRfQlVJTERfVE9PTFNfV0hFTl9DUk9TU0NPTVBJTElORz1UUlVFCisgLURRVF9C VUlMRF9TSEFSRURfTElCUz1PTiAtRFFUX0ZFQVRVUkVfYXNzaXN0YW50PU9OIgoraG9zdG1ha2Vk ZXBlbmRzPSJxdDYtYmFzZS1kZXZlbCBwZXJsIHF0Ni1wbHVnaW4tc3FsaXRlIgorbWFrZWRlcGVu ZHM9InF0Ni1iYXNlLWRldmVsIGxpYmF0b21pYy1kZXZlbCBxdDYtcGx1Z2luLXNxbGl0ZSIKIHNo b3J0X2Rlc2M9IkNyb3NzLXBsYXRmb3JtIGFwcGxpY2F0aW9uIGFuZCBVSSBmcmFtZXdvcmsgKFFU NikgLSBxdDYtdG9vbHMgY29tcG9uZW50IgogbWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0 b3IuZGV2PiIKIGxpY2Vuc2U9IkdQTC0zLjAtb25seSB3aXRoIFF0LUdQTC1leGNlcHRpb24tMS4w LCBMR1BMLTMuMC1vbmx5LCBHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vcXQu aW8vIgogZGlzdGZpbGVzPSJodHRwOi8vZG93bmxvYWQucXQuaW8vb2ZmaWNpYWxfcmVsZWFzZXMv cXQvJHt2ZXJzaW9uJS4qfS8ke3ZlcnNpb259L3N1Ym1vZHVsZXMvcXR0b29scy1ldmVyeXdoZXJl LXNyYy0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWZjZTk0Njg4ZWE5MjU3ODJhMjg3OTM0 NzU4NDk5MWY4NTQ2MzBkYWFkYmE2YzUyYWVkNmQ5M2UzM2NkMGIxOWMKK2NoZWNrc3VtPWM0MTI3 NTBmMmFhM2JlYjkzZmNlNWYzMDUxN2M2MDdmNTVkYWFlYjdkMDQwN2FmMjA2YThhZGY5MTdlMTI2 YzEKKworaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCisJaG9zdG1ha2VkZXBlbmRzKz0iIHF0 Ni10b29scy1kZXZlbCIKK2ZpCisKIAogaWYgWyAiJFhCUFNfQ0hFQ0tfUEtHUyIgXTsgdGhlbgog CWNvbmZpZ3VyZV9hcmdzKz0iIC1EUVRfQlVJTERfVEVTVFM9T04iCiBmaQogCitwb3N0X2J1aWxk KCkgeworCW5pbmphIC1DIGJ1aWxkICR7bWFrZWpvYnN9IGxpYi9xdDYvbGliZXhlYy9xaGVscGdl bmVyYXRvcgorfQorCiBkb19jaGVjaygpIHsKIAljZCBidWlsZAogCSMgU29tZSBvZiB0aGVzZSB0 ZXN0cyBleHBlY3QgdGhhdCBxdDYtdG9vbHMgaXMgYWxyZWFkeQpAQCAtMzEsOCArNDEsMTEgQEAg cXQ2LXRvb2xzLWRldmVsX3BhY2thZ2UoKSB7CiAJcGtnX2luc3RhbGwoKSB7CiAJCXZtb3ZlIHVz ci9pbmNsdWRlCiAJCXZtb3ZlIHVzci9saWIvY21ha2UKKwkJdm1vdmUgdXNyL2xpYi9tZXRhdHlw ZXMKKwkJdm1vdmUgdXNyL2xpYi9wa2djb25maWcKIAkJdm1vdmUgdXNyL2xpYi9xdDYvbWtzcGVj cwogCQl2bW92ZSAidXNyL2xpYi8qLnNvIgogCQl2bW92ZSAidXNyL2xpYi8qLnBybCIKKwkJdm1v dmUgdXNyL3NoYXJlL3F0Ni9tb2R1bGVzCiAJfQogfQoKRnJvbSA4ZDY0ODM4ZjU4ZTc3YTZjNGFl ZmQzOGI1YjVjY2NjY2EyMDU5MzhlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VU Ri04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249MjBDPUMzPUI0bmc9MjBEYW5oPz0K IDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCA4IEF1ZyAyMDIyIDE3OjEzOjEwICsw NzAwClN1YmplY3Q6IFtQQVRDSCAxNi8yNl0gcXQ2LXRyYW5zbGF0aW9uczogdXBkYXRlIHRvIDYu My4xLgoKLS0tCiBzcmNwa2dzL3F0Ni10cmFuc2xhdGlvbnMvdGVtcGxhdGUgfCA1ICsrLS0tCiAx IGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvcXQ2LXRyYW5zbGF0aW9ucy90ZW1wbGF0ZSBiL3NyY3BrZ3MvcXQ2LXRyYW5z bGF0aW9ucy90ZW1wbGF0ZQppbmRleCBiZTBhNzRjYTc0ZTIuLjFiOTE3Y2NiMzYyMCAxMDA2NDQK LS0tIGEvc3JjcGtncy9xdDYtdHJhbnNsYXRpb25zL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcXQ2 LXRyYW5zbGF0aW9ucy90ZW1wbGF0ZQpAQCAtMSwxMCArMSw5IEBACiAjIFRlbXBsYXRlIGZpbGUg Zm9yICdxdDYtdHJhbnNsYXRpb25zJwogcGtnbmFtZT1xdDYtdHJhbnNsYXRpb25zCi12ZXJzaW9u PTYuMy4wCit2ZXJzaW9uPTYuMy4xCiByZXZpc2lvbj0xCiB3cmtzcmM9InF0dHJhbnNsYXRpb25z LWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0iCiBidWlsZF9zdHlsZT1jbWFrZQotY29uZmlndXJl X2FyZ3M9Ii1EUVRfSE9TVF9QQVRIPS91c3IgIgogaG9zdG1ha2VkZXBlbmRzPSJxdDYtYmFzZS1k ZXZlbCBxdDYtdG9vbHMtZGV2ZWwgcGVybCIKIG1ha2VkZXBlbmRzPSJxdDYtYmFzZS1kZXZlbCBx dDYtdG9vbHMtZGV2ZWwiCiBzaG9ydF9kZXNjPSJDcm9zcy1wbGF0Zm9ybSBhcHBsaWNhdGlvbiBh bmQgVUkgZnJhbWV3b3JrIC0gdHJhbnNsYXRpb25zIgpAQCAtMTIsNCArMTEsNCBAQCBtYWludGFp bmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+IgogbGljZW5zZT0iR1BMLTMuMC1vbmx5IHdp dGggUXQtR1BMLWV4Y2VwdGlvbi0xLjAiCiBob21lcGFnZT0iaHR0cHM6Ly9xdC5pby8iCiBkaXN0 ZmlsZXM9Imh0dHA6Ly9kb3dubG9hZC5xdC5pby9vZmZpY2lhbF9yZWxlYXNlcy9xdC8ke3ZlcnNp b24lLip9LyR7dmVyc2lvbn0vc3VibW9kdWxlcy9xdHRyYW5zbGF0aW9ucy1ldmVyeXdoZXJlLXNy Yy0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWU0ZGQ0ZWY4OTJhMzRhOTUxNGExOTIzOGYx ODlhMzNlZDg1Yzc2ZjMxZGNhZDY1OTljZWQ5M2IxZTMzNDQwYjMKK2NoZWNrc3VtPWQ3YmRkNTVl MjkwOGRlZDkwMWRjYzI2MjE1NzEwMGFmMmE0OTBiZjA0ZDMxZTMyOTk1ZjZkOTFkNzhkZmRiOTcK CkZyb20gODcxY2I0YjQyM2UzNzJlZGU3M2E5YWYwMDQ1M2VlZWE1MzRhZTc5ZSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1DND05MG89QzM9QTBuPTIwVHI9RTE9QkE9 QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+CkRhdGU6IE1v biwgOCBBdWcgMjAyMiAxNzoxMzoxMCArMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTcvMjZdIHF0Ni12 aXJ0dWFsa2V5Ym9hcmQ6IHVwZGF0ZSB0byA2LjMuMS4KCi0tLQogc3JjcGtncy9xdDYtdmlydHVh bGtleWJvYXJkL3RlbXBsYXRlIHwgMTAgKysrKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5z ZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni12aXJ0 dWFsa2V5Ym9hcmQvdGVtcGxhdGUgYi9zcmNwa2dzL3F0Ni12aXJ0dWFsa2V5Ym9hcmQvdGVtcGxh dGUKaW5kZXggNjdlY2VmMTQ1ZWExLi43N2EyNDc0MDBiOTcgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv cXQ2LXZpcnR1YWxrZXlib2FyZC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3F0Ni12aXJ0dWFsa2V5 Ym9hcmQvdGVtcGxhdGUKQEAgLTEsMTAgKzEsOSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncXQ2 LXZpcnR1YWxrZXlib2FyZCcKIHBrZ25hbWU9cXQ2LXZpcnR1YWxrZXlib2FyZAotdmVyc2lvbj02 LjMuMAordmVyc2lvbj02LjMuMQogcmV2aXNpb249MQogd3Jrc3JjPSJxdHZpcnR1YWxrZXlib2Fy ZC1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9Y21ha2UKLWNvbmZpZ3Vy ZV9hcmdzPSItRFFUX0hPU1RfUEFUSD0vdXNyIgogaG9zdG1ha2VkZXBlbmRzPSJwZXJsIHBrZy1j b25maWcgcXQ2LWRlY2xhcmF0aXZlLWRldmVsIgogbWFrZWRlcGVuZHM9InF0Ni1kZWNsYXJhdGl2 ZS1kZXZlbCBxdDYtc3ZnLWRldmVsIGh1bnNwZWxsLWRldmVsIgogc2hvcnRfZGVzYz0iQ3Jvc3Mt cGxhdGZvcm0gYXBwbGljYXRpb24gYW5kIFVJIGZyYW1ld29yayAtIHZpcnR1YWxrZXlib2FyZCIK QEAgLTEyLDEwICsxMSwxMCBAQCBtYWludGFpbmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+ IgogbGljZW5zZT0iR1BMLTMuMC1vbmx5IgogaG9tZXBhZ2U9Imh0dHBzOi8vcXQuaW8vIgogZGlz dGZpbGVzPSJodHRwOi8vZG93bmxvYWQucXQuaW8vb2ZmaWNpYWxfcmVsZWFzZXMvcXQvJHt2ZXJz aW9uJS4qfS8ke3ZlcnNpb259L3N1Ym1vZHVsZXMvcXR2aXJ0dWFsa2V5Ym9hcmQtZXZlcnl3aGVy ZS1zcmMtJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT04OWFhZjE1YWNmNTQzMmFmOGY1Y2Y0 ZWM0NWNiMzJkODdhMzM0ODkwNjIxNWRkNTZlODFjYjI5NGViMjc2NTczCitjaGVja3N1bT01ZmUw ODliMjA0ZDg1OWFiMGRkMDE2OWY4MTFmMmUzMGNhZTdjNWNiMzZmOGFiOTVjYTM2ODgzZjFmYzBj MmI4CiAKIGlmIFsgIiRYQlBTX0NIRUNLX1BLR1MiIF07IHRoZW4KLQljb25maWd1cmVfYXJncys9 IiAtRFFUX0JVSUxEX1RFU1RTPU9OIgorCWNvbmZpZ3VyZV9hcmdzPSItRFFUX0JVSUxEX1RFU1RT PU9OIgogZmkKIAogZG9fY2hlY2soKSB7CkBAIC0zMiw4ICszMSwxMSBAQCBxdDYtdmlydHVhbGtl eWJvYXJkLWRldmVsX3BhY2thZ2UoKSB7CiAJcGtnX2luc3RhbGwoKSB7CiAJCXZtb3ZlIHVzci9p bmNsdWRlCiAJCXZtb3ZlIHVzci9saWIvY21ha2UKKwkJdm1vdmUgdXNyL2xpYi9tZXRhdHlwZXMK KwkJdm1vdmUgdXNyL2xpYi9wa2djb25maWcKIAkJdm1vdmUgdXNyL2xpYi9xdDYvbWtzcGVjcwog CQl2bW92ZSAidXNyL2xpYi8qLnNvIgogCQl2bW92ZSAidXNyL2xpYi8qLnBybCIKKwkJdm1vdmUg dXNyL3NoYXJlL3F0Ni9tb2R1bGVzCiAJfQogfQoKRnJvbSBjMTVhNzE1OWUxOGQ1ZGM4NmUxZjNj MDU3NGRlMTJmZWRkNDA1ZDllIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04 P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxj b25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCA4IEF1ZyAyMDIyIDE3OjEzOjEwICswNzAw ClN1YmplY3Q6IFtQQVRDSCAxOC8yNl0gcXQ2LXdheWxhbmQ6IHVwZGF0ZSB0byA2LjMuMS4KCi0t LQogc3JjcGtncy9xdDYtd2F5bGFuZC90ZW1wbGF0ZSB8IDExICsrKysrKystLS0tCiAxIGZpbGUg Y2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvcXQ2LXdheWxhbmQvdGVtcGxhdGUgYi9zcmNwa2dzL3F0Ni13YXlsYW5kL3RlbXBsYXRl CmluZGV4IGI3MWEyNzMwMDliOS4uODNhZmIzNGUyMjllIDEwMDY0NAotLS0gYS9zcmNwa2dzL3F0 Ni13YXlsYW5kL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcXQ2LXdheWxhbmQvdGVtcGxhdGUKQEAg LTEsMTMgKzEsMTQgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3F0Ni13YXlsYW5kJwogcGtnbmFt ZT1xdDYtd2F5bGFuZAotdmVyc2lvbj02LjMuMAordmVyc2lvbj02LjMuMQogcmV2aXNpb249MQog d3Jrc3JjPSJxdHdheWxhbmQtZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxl PWNtYWtlCi1jb25maWd1cmVfYXJncz0iLURRVF9IT1NUX1BBVEg9L3VzciAtRFFUX0JVSUxEX1RP T0xTX1dIRU5fQ1JPU1NDT01QSUxJTkc9dHJ1ZSIKK2NvbmZpZ3VyZV9hcmdzPSItRFFUX0JVSUxE X1RPT0xTX1dIRU5fQ1JPU1NDT01QSUxJTkc9dHJ1ZSIKIGhvc3RtYWtlZGVwZW5kcz0icXQ2LWJh c2UtZGV2ZWwgcGVybCBwa2ctY29uZmlnIHdheWxhbmQtZGV2ZWwgcXQ2LXdheWxhbmQtZGV2ZWwi CiAjIFhYWDogUW1sIGFzIG9wdGlvbmFsIGRlcAogbWFrZWRlcGVuZHM9InF0Ni1iYXNlLWRldmVs IHdheWxhbmQtZGV2ZWwgbGlieGtiY29tbW9uLWRldmVsCisgcXQ2LWRlY2xhcmF0aXZlLWRldmVs CiAgbGliWGNvbXBvc2l0ZS1kZXZlbCBNZXNhTGliLWRldmVsIFZ1bGthbi1IZWFkZXJzIGxpYmRy bS1kZXZlbCIKIGNoZWNrZGVwZW5kcz0iZGJ1cyBtZXNhLWRyaSIKIHNob3J0X2Rlc2M9IkNyb3Nz LXBsYXRmb3JtIGFwcGxpY2F0aW9uIGFuZCBVSSBmcmFtZXdvcmsgLSBXYXlsYW5kIgpAQCAtMTUs NyArMTYsNyBAQCBtYWludGFpbmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+IgogbGljZW5z ZT0iR1BMLTMuMC1vbmx5IHdpdGggUXQtR1BMLWV4Y2VwdGlvbi0xLjAsIExHUEwtMy4wLW9ubHks IEdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93d3cucXQuaW8iCiBkaXN0Zmls ZXM9Imh0dHBzOi8vZG93bmxvYWQucXQuaW8vb2ZmaWNpYWxfcmVsZWFzZXMvcXQvJHt2ZXJzaW9u JS4qfS8ke3ZlcnNpb259L3N1Ym1vZHVsZXMvcXR3YXlsYW5kLWV2ZXJ5d2hlcmUtc3JjLSR7dmVy c2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZTdiNTY3ZjZlNDNmZmM1OTE4ZDRhYTgyNWNlMWVjZWQ2 NmEwMGNiMGE4NzEzM2IyOTEyYmE1YzFiMmEwMjE5MAorY2hlY2tzdW09NmYxNGZlYTJkMTcyYTVi NDE3MGJlM2VmY2IwZTU4NTM1ZjY2MDViNjFiY2Q4MjNmNmQ1YzlkMTY1YmI4YzBmMAogCiBpZiBb ICIkWEJQU19DSEVDS19QS0dTIiBdOyB0aGVuCiAJY29uZmlndXJlX2FyZ3MrPSIgLURRVF9CVUlM RF9URVNUUz1PTiIKQEAgLTMyLDkgKzMzLDExIEBAIHF0Ni13YXlsYW5kLWRldmVsX3BhY2thZ2Uo KSB7CiAJcGtnX2luc3RhbGwoKSB7CiAJCXZtb3ZlIHVzci9pbmNsdWRlCiAJCXZtb3ZlIHVzci9s aWIvY21ha2UKKwkJdm1vdmUgdXNyL2xpYi9tZXRhdHlwZXMKKwkJdm1vdmUgdXNyL2xpYi9wa2dj b25maWcKIAkJdm1vdmUgdXNyL2xpYi9xdDYvbWtzcGVjcwotCQl2bW92ZSB1c3IvbGliL3F0Ni9s aWJleGVjL3F0d2F5bGFuZHNjYW5uZXIKIAkJdm1vdmUgInVzci9saWIvKi5zbyIKIAkJdm1vdmUg InVzci9saWIvKi5wcmwiCisJCXZtb3ZlIHVzci9zaGFyZS9xdDYvbW9kdWxlcwogCX0KIH0KCkZy b20gZmYzNDBiNmVlOTE5NzYyOTA4MmFmN2ZiNGIzNTQ1NTU3NWRmZGMyZSBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1DND05MG89QzM9QTBuPTIwVHI9RTE9QkE9QTdu PTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+CkRhdGU6IE1vbiwg OCBBdWcgMjAyMiAxNzoxMzoxMCArMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTkvMjZdIHF0Ni13ZWJz b2NrZXRzOiB1cGRhdGUgdG8gNi4zLjEuCgotLS0KIHNyY3BrZ3MvcXQ2LXdlYnNvY2tldHMvdGVt cGxhdGUgfCA4ICsrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAzIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYnNvY2tldHMvdGVtcGxhdGUg Yi9zcmNwa2dzL3F0Ni13ZWJzb2NrZXRzL3RlbXBsYXRlCmluZGV4IGMyZTY3NGFhY2IzMS4uNDg3 NWFmMDkzNDMyIDEwMDY0NAotLS0gYS9zcmNwa2dzL3F0Ni13ZWJzb2NrZXRzL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3MvcXQ2LXdlYnNvY2tldHMvdGVtcGxhdGUKQEAgLTEsMTAgKzEsOSBAQAogIyBU ZW1wbGF0ZSBmaWxlIGZvciAncXQ2LXdlYnNvY2tldHMnCiBwa2duYW1lPXF0Ni13ZWJzb2NrZXRz Ci12ZXJzaW9uPTYuMy4wCit2ZXJzaW9uPTYuMy4xCiByZXZpc2lvbj0xCiB3cmtzcmM9InF0d2Vi c29ja2V0cy1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9Y21ha2UKLWNv bmZpZ3VyZV9hcmdzPSItRFFUX0hPU1RfUEFUSD0vdXNyIgogaG9zdG1ha2VkZXBlbmRzPSJwZXJs IHF0Ni1iYXNlLWRldmVsIHF0Ni1kZWNsYXJhdGl2ZS1kZXZlbCIKIG1ha2VkZXBlbmRzPSJxdDYt YmFzZS1kZXZlbCBxdDYtZGVjbGFyYXRpdmUtZGV2ZWwiCiBzaG9ydF9kZXNjPSJDcm9zcy1wbGF0 Zm9ybSBhcHBsaWNhdGlvbiBhbmQgVUkgZnJhbWV3b3JrIC0gd2Vic29ja2V0cyIKQEAgLTEyLDcg KzExLDcgQEAgbWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKIGxpY2Vuc2U9 IihMR1BMLTMuMC1vbmx5IE9SIEdQTC0yLjAtb25seSBPUiBHUEwtMy4wLW9ubHkpIEFORCBHUEwt My4wLW9ubHkgd2l0aCBRdC1HUEwtZXhjZXB0aW9uLTEuMCIKIGhvbWVwYWdlPSJodHRwczovL3F0 LmlvLyIKIGRpc3RmaWxlcz0iaHR0cDovL2Rvd25sb2FkLnF0LmlvL29mZmljaWFsX3JlbGVhc2Vz L3F0LyR7dmVyc2lvbiUuKn0vJHt2ZXJzaW9ufS9zdWJtb2R1bGVzL3F0d2Vic29ja2V0cy1ldmVy eXdoZXJlLXNyYy0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWUwMThhMDlmZTk2MGI3ZDk1 NjBkNmJiYzlkM2NhMDIyZmVkNjU2NmU2YmE2ZmM2ZDg2OWE5NzQ4MmQ0ZTYzNjEKK2NoZWNrc3Vt PTlmOTgwZDkwYzk3ZmNiZGUxYjUwYzc3M2Y2ZGM1ODBjZmRmOGMzNmNlMTRhMWJlM2FhMmNjYWRm ZTYwNTEyMWEKIAogcXQ2LXdlYnNvY2tldHMtZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSIk e3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0gcXQ2LWJhc2UtZGV2ZWw+PSR7dmVy c2lvbn1fMSIKQEAgLTIwLDggKzE5LDExIEBAIHF0Ni13ZWJzb2NrZXRzLWRldmVsX3BhY2thZ2Uo KSB7CiAJcGtnX2luc3RhbGwoKSB7CiAJCXZtb3ZlIHVzci9pbmNsdWRlCiAJCXZtb3ZlIHVzci9s aWIvY21ha2UKKwkJdm1vdmUgdXNyL2xpYi9tZXRhdHlwZXMKKwkJdm1vdmUgdXNyL2xpYi9wa2dj b25maWcKIAkJdm1vdmUgdXNyL2xpYi9xdDYvbWtzcGVjcwogCQl2bW92ZSAidXNyL2xpYi8qLnNv IgogCQl2bW92ZSAidXNyL2xpYi8qLnBybCIKKwkJdm1vdmUgdXNyL3NoYXJlL3F0Ni9tb2R1bGVz CiAJfQogfQoKRnJvbSBmZjRmNzMyOTU3OTUxMTdlYzNiZWIyMzkxZjQwYTgwMGIwY2IyOWMzIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBU cj1FMT1CQT1BN249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4K RGF0ZTogVHVlLCA5IEF1ZyAyMDIyIDIwOjE2OjQ3ICswNzAwClN1YmplY3Q6IFtQQVRDSCAyMC8y Nl0gcXQ2LTNkOiB1cGRhdGUgdG8gNi4zLjEuCgotLS0KIHNyY3BrZ3MvcXQ2LTNkL3RlbXBsYXRl IHwgNSArKy0tLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni0zZC90ZW1wbGF0ZSBiL3NyY3BrZ3MvcXQ2LTNk L3RlbXBsYXRlCmluZGV4IDY2NmY1NzU1OTUzMi4uYzA4YzNiZDRhNDFiIDEwMDY0NAotLS0gYS9z cmNwa2dzL3F0Ni0zZC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3F0Ni0zZC90ZW1wbGF0ZQpAQCAt MSwxMCArMSw5IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdxdDYtM2QnCiBwa2duYW1lPXF0Ni0z ZAotdmVyc2lvbj02LjMuMAordmVyc2lvbj02LjMuMQogcmV2aXNpb249MQogd3Jrc3JjPSJxdDNk LWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0iCiBidWlsZF9zdHlsZT1jbWFrZQotY29uZmlndXJl X2FyZ3M9Ii1EUVRfSE9TVF9QQVRIPS91c3IiCiBob3N0bWFrZWRlcGVuZHM9InBlcmwgcXQ2LWRl Y2xhcmF0aXZlLWRldmVsIgogbWFrZWRlcGVuZHM9InF0Ni1kZWNsYXJhdGl2ZS1kZXZlbCBxdDYt c2hhZGVydG9vbHMtZGV2ZWwgbGliYXNzaW1wLWRldmVsCiAgbGliYXRvbWljLWRldmVsIgpAQCAt MTMsNyArMTIsNyBAQCBtYWludGFpbmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+IgogbGlj ZW5zZT0iKExHUEwtMy4wLW9ubHkgT1IgR1BMLTIuMC1vbmx5IE9SIEdQTC0zLjAtb25seSkgQU5E IEdQTC0zLjAtb25seSB3aXRoIFF0LUdQTC1leGNlcHRpb24tMS4wIgogaG9tZXBhZ2U9Imh0dHBz Oi8vcXQuaW8vIgogZGlzdGZpbGVzPSJodHRwOi8vZG93bmxvYWQucXQuaW8vb2ZmaWNpYWxfcmVs ZWFzZXMvcXQvJHt2ZXJzaW9uJS4qfS8ke3ZlcnNpb259L3N1Ym1vZHVsZXMvcXQzZC1ldmVyeXdo ZXJlLXNyYy0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTc0ZTc2MjM4MGRhZDM0ODg3ODc4 YjkxMjRkYmZiOTgxZDVjZjRiOGI4MDcyODFmZjhiZmYzMTExNDViNTRkZTEKK2NoZWNrc3VtPTk5 MTliNjZkZmIyNTNmYTI2ZGIxYTdkNjY0MzU4Y2JjMDdmNDZjODgxMDA4MmVlMzEyMGQwYTU0YjE1 M2VkZmUKIAogcXQ2LTNkLWRldmVsX3BhY2thZ2UoKSB7CiAJZGVwZW5kcz0iJHtzb3VyY2Vwa2d9 Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgoKRnJvbSA5NjQzNjc0NjE3NmI4ZDhmNGQxZGRhYjUy YzExOGM3NjI4YTgxNjNhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/ PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25n ZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCA4IEF1ZyAyMDIyIDE3OjEzOjExICswNzAwClN1 YmplY3Q6IFtQQVRDSCAyMS8yNl0gTmV3IHBhY2thZ2U6IHF0Ni13ZWJjaGFubmVsLTYuMy4xCgot LS0KIHNyY3BrZ3MvcXQ2LXdlYmNoYW5uZWwtZGV2ZWwgICAgfCAgMSArCiBzcmNwa2dzL3F0Ni13 ZWJjaGFubmVsL3RlbXBsYXRlIHwgMzIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK IHNyY3BrZ3MvcXQ2LXdlYmNoYW5uZWwvdXBkYXRlICAgfCAgMSArCiAzIGZpbGVzIGNoYW5nZWQs IDM0IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEyMDAwMCBzcmNwa2dzL3F0Ni13ZWJjaGFu bmVsLWRldmVsCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViY2hhbm5lbC90ZW1w bGF0ZQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmNoYW5uZWwvdXBkYXRlCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViY2hhbm5lbC1kZXZlbCBiL3NyY3BrZ3MvcXQ2LXdl YmNoYW5uZWwtZGV2ZWwKbmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggMDAwMDAwMDAwMDAwLi4w M2U4YjIzZDc4NWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJjaGFubmVsLWRl dmVsCkBAIC0wLDAgKzEgQEAKK3F0Ni13ZWJjaGFubmVsClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg ZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViY2hhbm5lbC90ZW1wbGF0ZSBiL3NyY3Br Z3MvcXQ2LXdlYmNoYW5uZWwvdGVtcGxhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwLi40MzJjNDJiY2MwNTYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13 ZWJjaGFubmVsL3RlbXBsYXRlCkBAIC0wLDAgKzEsMzIgQEAKKyMgVGVtcGxhdGUgZmlsZSBmb3Ig J3F0Ni13ZWJjaGFubmVsJworcGtnbmFtZT1xdDYtd2ViY2hhbm5lbAordmVyc2lvbj02LjMuMQor cmV2aXNpb249MQord3Jrc3JjPSJxdHdlYmNoYW5uZWwtZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9u fSIKK2J1aWxkX3N0eWxlPWNtYWtlCitob3N0bWFrZWRlcGVuZHM9InBlcmwgcXQ2LWJhc2UtZGV2 ZWwgcXQ2LWRlY2xhcmF0aXZlLWRldmVsIgorbWFrZWRlcGVuZHM9InF0Ni1iYXNlLWRldmVsIHF0 Ni1kZWNsYXJhdGl2ZS1kZXZlbCBxdDYtd2Vic29ja2V0cy1kZXZlbCIKK3Nob3J0X2Rlc2M9IkNy b3NzLXBsYXRmb3JtIGFwcGxpY2F0aW9uIGFuZCBVSSBmcmFtZXdvcmsgLSB3ZWJjaGFubmVsIgor bWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKK2xpY2Vuc2U9IihMR1BMLTMu MC1vbmx5IE9SIEdQTC0yLjAtb25seSBPUiBHUEwtMy4wLW9ubHkpIEFORCBHUEwtMy4wLW9ubHkg d2l0aCBRdC1HUEwtZXhjZXB0aW9uLTEuMCIKK2hvbWVwYWdlPSJodHRwczovL3F0LmlvLyIKK2Rp c3RmaWxlcz0iaHR0cDovL2Rvd25sb2FkLnF0LmlvL29mZmljaWFsX3JlbGVhc2VzL3F0LyR7dmVy c2lvbiUuKn0vJHt2ZXJzaW9ufS9zdWJtb2R1bGVzL3F0d2ViY2hhbm5lbC1ldmVyeXdoZXJlLXNy Yy0ke3ZlcnNpb259LnRhci54eiIKK2NoZWNrc3VtPWFhYTIwYWMyM2Y4Njk5MjcyMWI3ZWU0ODdj Mzc5YTNmZDY4Y2FhOGNkY2VhMGE3N2EzN2UwZDhiNDdmZjI2NjgKKworcXQ2LXdlYmNoYW5uZWwt ZGV2ZWxfcGFja2FnZSgpIHsKKwlkZXBlbmRzPSIke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHty ZXZpc2lvbn0gcXQ2LWJhc2UtZGV2ZWw+PSR7dmVyc2lvbn1fMQorCSBxdDYtd2Vic29ja2V0cy1k ZXZlbD49JHt2ZXJzaW9ufV8xIgorCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIK Kwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2luY2x1ZGUKKwkJdm1vdmUgdXNyL2xpYi9j bWFrZQorCQl2bW92ZSB1c3IvbGliL21ldGF0eXBlcworCQl2bW92ZSB1c3IvbGliL3BrZ2NvbmZp ZworCQl2bW92ZSB1c3IvbGliL3F0Ni9ta3NwZWNzCisJCXZtb3ZlIHVzci9saWIvcXQ2L3FtbC9R dFdlYkNoYW5uZWwvcGx1Z2lucy5xbWx0eXBlcworCQl2bW92ZSB1c3IvbGliL3F0Ni9xbWwvUXRX ZWJDaGFubmVsL3FtbGRpcgorCQl2bW92ZSAidXNyL2xpYi8qLnNvIgorCQl2bW92ZSAidXNyL2xp Yi8qLnBybCIKKwkJdm1vdmUgdXNyL3NoYXJlL3F0Ni9tb2R1bGVzCisJfQorfQpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9xdDYtd2ViY2hhbm5lbC91cGRhdGUgYi9zcmNwa2dzL3F0Ni13ZWJjaGFubmVs L3VwZGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjg0NDU1MjQ2 NTIyMgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmNoYW5uZWwvdXBkYXRlCkBA IC0wLDAgKzEgQEAKK3BrZ25hbWU9IiR7cGtnbmFtZS82LS99LWV2ZXJ5d2hlcmUtc3JjIgoKRnJv bSAyODJmMWI0NjkyMDNlOWEzYzFjZWFkZmEwZWIwZjI0OTA5NjAxZjUyIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249 MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCA4 IEF1ZyAyMDIyIDE3OjEzOjExICswNzAwClN1YmplY3Q6IFtQQVRDSCAyMi8yNl0gTmV3IHBhY2th Z2U6IHF0Ni1tdWx0aW1lZGlhLTYuMy4xCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAg ICAgICAgfCAgMyArKysKIHNyY3BrZ3MvcXQ2LW11bHRpbWVkaWEtZGV2ZWwgICAgfCAgMSArCiBz cmNwa2dzL3F0Ni1tdWx0aW1lZGlhL3RlbXBsYXRlIHwgMzMgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrCiBzcmNwa2dzL3F0Ni1tdWx0aW1lZGlhL3VwZGF0ZSAgIHwgIDEgKwogNCBm aWxlcyBjaGFuZ2VkLCAzOCBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMjAwMDAgc3JjcGtn cy9xdDYtbXVsdGltZWRpYS1kZXZlbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LW11 bHRpbWVkaWEvdGVtcGxhdGUKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni1tdWx0aW1l ZGlhL3VwZGF0ZQoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmlu ZGV4IGVhNmZkZTRmZmUzMS4uZGE3OGZhYTY4OWQ1IDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJz CisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTIwNzcsNiArMjA3Nyw5IEBAIGxpYlF0NlNlcmlhbFBv cnQuc28uNiBxdDYtc2VyaWFscG9ydC02LjIuMGFscGhhXzEKIGxpYlF0NldlYlNvY2tldHMuc28u NiBxdDYtd2Vic29ja2V0cy02LjIuMGFscGhhXzEKIGxpYlF0NldlYkNoYW5uZWwuc28uNiBxdDYt d2ViY2hhbm5lbC02LjIuMGFscGhhXzEKIGxpYlF0NlBvc2l0aW9uaW5nLnNvLjYgcXQ2LWxvY2F0 aW9uLTYuMi4wYWxwaGFfMQorbGliUXQ2TXVsdGltZWRpYVdpZGdldHMuc28uNiBxdDYtbXVsdGlt ZWRpYS02LjMuMV8xCitsaWJRdDZNdWx0aW1lZGlhUXVpY2suc28uNiBxdDYtbXVsdGltZWRpYS02 LjMuMV8xCitsaWJRdDZNdWx0aW1lZGlhLnNvLjYgcXQ2LW11bHRpbWVkaWEtNi4zLjFfMQogbGli bnB0aC5zby4wIG5wdGgtMS4xXzEKIGxpYm5wdXBucC5zby40IGxpYm5wdXBucC00LjAuMl8xCiBs aWJnbGZ3LnNvLjMgZ2xmdy0zLjAuNF8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni1tdWx0aW1l ZGlhLWRldmVsIGIvc3JjcGtncy9xdDYtbXVsdGltZWRpYS1kZXZlbApuZXcgZmlsZSBtb2RlIDEy MDAwMAppbmRleCAwMDAwMDAwMDAwMDAuLjkzNDM0NDY1MDJkMAotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3MvcXQ2LW11bHRpbWVkaWEtZGV2ZWwKQEAgLTAsMCArMSBAQAorcXQ2LW11bHRpbWVk aWEKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni1t dWx0aW1lZGlhL3RlbXBsYXRlIGIvc3JjcGtncy9xdDYtbXVsdGltZWRpYS90ZW1wbGF0ZQpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjUzNWEyZjU1ZmZlNAotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LW11bHRpbWVkaWEvdGVtcGxhdGUKQEAgLTAsMCArMSwz MyBAQAorIyBUZW1wbGF0ZSBmaWxlIGZvciAncXQ2LW11bHRpbWVkaWEnCitwa2duYW1lPXF0Ni1t dWx0aW1lZGlhCit2ZXJzaW9uPTYuMy4xCityZXZpc2lvbj0xCit3cmtzcmM9InF0bXVsdGltZWRp YS1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259IgorYnVpbGRfc3R5bGU9Y21ha2UKK2NvbmZpZ3Vy ZV9hcmdzPSItRFFUX0ZFQVRVUkVfZ3N0cmVhbWVyPU9OIgoraG9zdG1ha2VkZXBlbmRzPSJwZXJs IHF0Ni1kZWNsYXJhdGl2ZS1kZXZlbCBwa2ctY29uZmlnCisgcXQ2LXNoYWRlcnRvb2xzLWRldmVs IgorbWFrZWRlcGVuZHM9InF0Ni1kZWNsYXJhdGl2ZS1kZXZlbAorIHF0Ni1zaGFkZXJ0b29scy1k ZXZlbCBsaWJnbGliLWRldmVsIGdzdC1wbHVnaW5zLWJhc2UxLWRldmVsIgorc2hvcnRfZGVzYz0i Q3Jvc3MtcGxhdGZvcm0gYXBwbGljYXRpb24gYW5kIFVJIGZyYW1ld29yayAtIG11bHRpbWVkaWEi CittYWludGFpbmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+IgorbGljZW5zZT0iKExHUEwt My4wLW9ubHkgT1IgR1BMLTIuMC1vbmx5IE9SIEdQTC0zLjAtb25seSkgQU5EIEdQTC0zLjAtb25s eSB3aXRoIFF0LUdQTC1leGNlcHRpb24tMS4wIgoraG9tZXBhZ2U9Imh0dHBzOi8vcXQuaW8vIgor ZGlzdGZpbGVzPSJodHRwOi8vZG93bmxvYWQucXQuaW8vb2ZmaWNpYWxfcmVsZWFzZXMvcXQvJHt2 ZXJzaW9uJS4qfS8ke3ZlcnNpb259L3N1Ym1vZHVsZXMvcXRtdWx0aW1lZGlhLWV2ZXJ5d2hlcmUt c3JjLSR7dmVyc2lvbn0udGFyLnh6IgorY2hlY2tzdW09N2UwMzI0MmFhZGQ2MzRmZjJkOWZjZjA4 OTQ4MjkwZjAzZGEzZDlhNTAxMjM2OWQ5MDhkYTg5ZjgyYjFkNzMzNgorCitxdDYtbXVsdGltZWRp YS1kZXZlbF9wYWNrYWdlKCkgeworCWRlcGVuZHM9IiR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8k e3JldmlzaW9ufSBxdDYtYmFzZS1kZXZlbD49JHt2ZXJzaW9ufV8xIgorCXNob3J0X2Rlc2MrPSIg LSBkZXZlbG9wbWVudCBmaWxlcyIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2luY2x1 ZGUKKwkJdm1vdmUgdXNyL2xpYi9jbWFrZQorCQl2bW92ZSB1c3IvbGliL21ldGF0eXBlcworCQl2 bW92ZSB1c3IvbGliL3BrZ2NvbmZpZworCQl2bW92ZSB1c3IvbGliL3F0Ni9ta3NwZWNzCisJCXZt b3ZlIHVzci9saWIvcXQ2L3FtbC9RdE11bHRpbWVkaWEvcGx1Z2lucy5xbWx0eXBlcworCQl2bW92 ZSB1c3IvbGliL3F0Ni9xbWwvUXRNdWx0aW1lZGlhL3FtbGRpcgorCQl2bW92ZSAidXNyL2xpYi8q LnNvIgorCQl2bW92ZSAidXNyL2xpYi8qLnBybCIKKwl9Cit9CmRpZmYgLS1naXQgYS9zcmNwa2dz L3F0Ni1tdWx0aW1lZGlhL3VwZGF0ZSBiL3NyY3BrZ3MvcXQ2LW11bHRpbWVkaWEvdXBkYXRlCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uODQ0NTUyNDY1MjIyCi0tLSAv ZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtbXVsdGltZWRpYS91cGRhdGUKQEAgLTAsMCArMSBA QAorcGtnbmFtZT0iJHtwa2duYW1lLzYtL30tZXZlcnl3aGVyZS1zcmMiCgpGcm9tIGU1MjQ3YWFi NTYzMTdlYWE4Yjk4MjAzZDVhNzI4MTAwYjcxNDNlMzYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206ID0/VVRGLTg/cT89QzQ9OTBvPUMzPUEwbj0yMFRyPUUxPUJBPUE3bj0yMEM9QzM9QjRu Zz0yMERhbmg/PQogPGNvbmdkYW5ocXhAZ21haWwuY29tPgpEYXRlOiBNb24sIDggQXVnIDIwMjIg MTg6MjI6NDggKzA3MDAKU3ViamVjdDogW1BBVENIIDIzLzI2XSBOZXcgcGFja2FnZTogcXQ2LWNv bm5lY3Rpdml0eS02LjMuMQoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgICAgICAgICAgICAg fCAgMiArKwogc3JjcGtncy9xdDYtY29ubmVjdGl2aXR5LWRldmVsICAgIHwgIDEgKwogc3JjcGtn cy9xdDYtY29ubmVjdGl2aXR5L3RlbXBsYXRlIHwgMzAgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDMzIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEy MDAwMCBzcmNwa2dzL3F0Ni1jb25uZWN0aXZpdHktZGV2ZWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL3F0Ni1jb25uZWN0aXZpdHkvdGVtcGxhdGUKCmRpZmYgLS1naXQgYS9jb21tb24vc2hs aWJzIGIvY29tbW9uL3NobGlicwppbmRleCBkYTc4ZmFhNjg5ZDUuLmQ0NjY0M2ZjMzFlZCAxMDA2 NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC0yMDcxLDYgKzIw NzEsOCBAQCBsaWJRdDZEZXNpZ25lci5zby42IHF0Ni10b29scy02LjEuMF8xCiBsaWJRdDZEZXNp Z25lckNvbXBvbmVudHMuc28uNiBxdDYtdG9vbHMtNi4xLjBfMQogbGliUXQ2SGVscC5zby42IHF0 Ni10b29scy02LjEuMF8xCiBsaWJRdDZVaVRvb2xzLnNvLjYgcXQ2LXRvb2xzLTYuMS4wXzEKK2xp YlF0Nk5mYy5zby42IHF0Ni1jb25uZWN0aXZpdHktNi4zLjFfMQorbGliUXQ2Qmx1ZXRvb3RoLnNv LjYgcXQ2LWNvbm5lY3Rpdml0eS02LjMuMV8xCiBsaWJRdDZIdW5zcGVsbElucHV0TWV0aG9kLnNv LjYgcXQ2LXZpcnR1YWxrZXlib2FyZC02LjEuMF8xCiBsaWJRdDZWaXJ0dWFsS2V5Ym9hcmQuc28u NiBxdDYtdmlydHVhbGtleWJvYXJkLTYuMS4wXzEKIGxpYlF0NlNlcmlhbFBvcnQuc28uNiBxdDYt c2VyaWFscG9ydC02LjIuMGFscGhhXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LWNvbm5lY3Rp dml0eS1kZXZlbCBiL3NyY3BrZ3MvcXQ2LWNvbm5lY3Rpdml0eS1kZXZlbApuZXcgZmlsZSBtb2Rl IDEyMDAwMAppbmRleCAwMDAwMDAwMDAwMDAuLjQ3OGNjOWQ4YWEzOQotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3MvcXQ2LWNvbm5lY3Rpdml0eS1kZXZlbApAQCAtMCwwICsxIEBACitxdDYtY29u bmVjdGl2aXR5ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9xdDYtY29ubmVjdGl2aXR5L3RlbXBsYXRlIGIvc3JjcGtncy9xdDYtY29ubmVjdGl2aXR5L3Rl bXBsYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNmNiNjE3NDRk MGNiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtY29ubmVjdGl2aXR5L3RlbXBsYXRl CkBAIC0wLDAgKzEsMzAgQEAKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ3F0Ni1jb25uZWN0aXZpdHkn Citwa2duYW1lPXF0Ni1jb25uZWN0aXZpdHkKK3ZlcnNpb249Ni4zLjEKK3JldmlzaW9uPTEKK3dy a3NyYz0icXRjb25uZWN0aXZpdHktZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9ufSIKK2J1aWxkX3N0 eWxlPWNtYWtlCitob3N0bWFrZWRlcGVuZHM9InBlcmwgcXQ2LWRlY2xhcmF0aXZlLWRldmVsIgor bWFrZWRlcGVuZHM9InF0Ni1kZWNsYXJhdGl2ZS1kZXZlbCIKK3Nob3J0X2Rlc2M9IkNyb3NzLXBs YXRmb3JtIGFwcGxpY2F0aW9uIGFuZCBVSSBmcmFtZXdvcmsgLSBDb25uZWN0aXZpdHkiCittYWlu dGFpbmVyPSLEkG/DoG4gVHLhuqduIEPDtG5nIERhbmggPGNvbmdkYW5ocXhAZ21haWwuY29tPiIK K2xpY2Vuc2U9IkdQTC0zLjAtb25seSIKK2hvbWVwYWdlPSJodHRwczovL3F0LmlvLyIKK2Rpc3Rm aWxlcz0iaHR0cDovL2Rvd25sb2FkLnF0LmlvL29mZmljaWFsX3JlbGVhc2VzL3F0LyR7dmVyc2lv biUuKn0vJHt2ZXJzaW9ufS9zdWJtb2R1bGVzL3F0Y29ubmVjdGl2aXR5LWV2ZXJ5d2hlcmUtc3Jj LSR7dmVyc2lvbn0udGFyLnh6IgorY2hlY2tzdW09YjI1Y2U0NzEwYTljNjFiYzZhNWRiYWVlYjNl MmVkOTA3YThiYzg1NDc4ZmRiMmFiNDMxMjI5Nzc2OGI2OTViMAorCitxdDYtY29ubmVjdGl2aXR5 LWRldmVsX3BhY2thZ2UoKSB7CisJZGVwZW5kcz0iJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7 cmV2aXNpb259CisJIHF0Ni1kZWNsYXJhdGl2ZT49JHt2ZXJzaW9ufSIKKwlzaG9ydF9kZXNjKz0i IC0gZGV2ZWxvcG1lbnQgZmlsZXMiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlIHVzci9pbmNs dWRlCisJCXZtb3ZlIHVzci9saWIvY21ha2UKKwkJdm1vdmUgdXNyL2xpYi9tZXRhdHlwZXMKKwkJ dm1vdmUgdXNyL2xpYi9wa2djb25maWcKKwkJdm1vdmUgdXNyL2xpYi9xdDYvbWtzcGVjcworCQl2 bW92ZSAidXNyL2xpYi8qLnNvIgorCQl2bW92ZSAidXNyL2xpYi8qLnBybCIKKwkJdm1vdmUgdXNy L3NoYXJlL3F0Ni9tb2R1bGVzCisJfQorfQoKRnJvbSA5OTdkYjZkMzAyNmY2OWNhMGE2NzNkMDBj NmYzNGUzZGI5YmVmNGEwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/ PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25n ZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCA4IEF1ZyAyMDIyIDE4OjIyOjU3ICswNzAwClN1 YmplY3Q6IFtQQVRDSCAyNC8yNl0gTmV3IHBhY2thZ2U6IHF0Ni1zZW5zb3JzLTYuMy4xCgotLS0K IGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAgfCAgMiArKwogc3JjcGtncy9xdDYtc2Vuc29y cy1kZXZlbCAgICB8ICAxICsKIHNyY3BrZ3MvcXQ2LXNlbnNvcnMvdGVtcGxhdGUgfCAzMSArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDM0IGluc2VydGlv bnMoKykKIGNyZWF0ZSBtb2RlIDEyMDAwMCBzcmNwa2dzL3F0Ni1zZW5zb3JzLWRldmVsCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtc2Vuc29ycy90ZW1wbGF0ZQoKZGlmZiAtLWdpdCBh L2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4IGQ0NjY0M2ZjMzFlZC4uZjYyODRl ZWUxYmFlIDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAg LTIwNzMsNiArMjA3Myw4IEBAIGxpYlF0NkhlbHAuc28uNiBxdDYtdG9vbHMtNi4xLjBfMQogbGli UXQ2VWlUb29scy5zby42IHF0Ni10b29scy02LjEuMF8xCiBsaWJRdDZOZmMuc28uNiBxdDYtY29u bmVjdGl2aXR5LTYuMy4xXzEKIGxpYlF0NkJsdWV0b290aC5zby42IHF0Ni1jb25uZWN0aXZpdHkt Ni4zLjFfMQorbGliUXQ2U2Vuc29ycy5zby42IHF0Ni1zZW5zb3JzLTYuMy4xXzEKK2xpYlF0NlNl bnNvcnNRdWljay5zby42IHF0Ni1zZW5zb3JzLTYuMy4xXzEKIGxpYlF0Nkh1bnNwZWxsSW5wdXRN ZXRob2Quc28uNiBxdDYtdmlydHVhbGtleWJvYXJkLTYuMS4wXzEKIGxpYlF0NlZpcnR1YWxLZXli b2FyZC5zby42IHF0Ni12aXJ0dWFsa2V5Ym9hcmQtNi4xLjBfMQogbGliUXQ2U2VyaWFsUG9ydC5z by42IHF0Ni1zZXJpYWxwb3J0LTYuMi4wYWxwaGFfMQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYt c2Vuc29ycy1kZXZlbCBiL3NyY3BrZ3MvcXQ2LXNlbnNvcnMtZGV2ZWwKbmV3IGZpbGUgbW9kZSAx MjAwMDAKaW5kZXggMDAwMDAwMDAwMDAwLi5lYjk0NTdmMDQwNTUKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmNwa2dzL3F0Ni1zZW5zb3JzLWRldmVsCkBAIC0wLDAgKzEgQEAKK3F0Ni1zZW5zb3JzClwg Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtc2Vuc29y cy90ZW1wbGF0ZSBiL3NyY3BrZ3MvcXQ2LXNlbnNvcnMvdGVtcGxhdGUKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi41YTgxZjQzYjYwZWIKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmNwa2dzL3F0Ni1zZW5zb3JzL3RlbXBsYXRlCkBAIC0wLDAgKzEsMzEgQEAKKyMgVGVtcGxh dGUgZmlsZSBmb3IgJ3F0Ni1zZW5zb3JzJworcGtnbmFtZT1xdDYtc2Vuc29ycwordmVyc2lvbj02 LjMuMQorcmV2aXNpb249MQord3Jrc3JjPSJxdHNlbnNvcnMtZXZlcnl3aGVyZS1zcmMtJHt2ZXJz aW9ufSIKK2J1aWxkX3N0eWxlPWNtYWtlCitob3N0bWFrZWRlcGVuZHM9InBlcmwgcXQ2LWRlY2xh cmF0aXZlLWRldmVsIHF0Ni1zdmctZGV2ZWwgcGtnLWNvbmZpZyIKK21ha2VkZXBlbmRzPSJxdDYt ZGVjbGFyYXRpdmUtZGV2ZWwgcXQ2LXN2Zy1kZXZlbCIKK3Nob3J0X2Rlc2M9IkNyb3NzLXBsYXRm b3JtIGFwcGxpY2F0aW9uIGFuZCBVSSBmcmFtZXdvcmsgLSBTZW5zb3JzIgorbWFpbnRhaW5lcj0i xJBvw6BuIFRy4bqnbiBDw7RuZyBEYW5oIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4iCitsaWNlbnNl PSIoTEdQTC0zLjAtb25seSBPUiBHUEwtMi4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5KSBBTkQgR1BM LTMuMC1vbmx5IHdpdGggUXQtR1BMLWV4Y2VwdGlvbi0xLjAiCitob21lcGFnZT0iaHR0cHM6Ly9x dC5pby8iCitkaXN0ZmlsZXM9Imh0dHA6Ly9kb3dubG9hZC5xdC5pby9vZmZpY2lhbF9yZWxlYXNl cy9xdC8ke3ZlcnNpb24lLip9LyR7dmVyc2lvbn0vc3VibW9kdWxlcy9xdHNlbnNvcnMtZXZlcnl3 aGVyZS1zcmMtJHt2ZXJzaW9ufS50YXIueHoiCitjaGVja3N1bT00YjI0MGI1OWVkYmE5YTQyYjQ3 MzU3NThhMjVmMjc5YTI2ODQxYjk4Mjg2NGU3YjM4ZjZlZjBiODFlMGQ2MGNjCisKK3F0Ni1zZW5z b3JzLWRldmVsX3BhY2thZ2UoKSB7CisJZGVwZW5kcz0iJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259 XyR7cmV2aXNpb259CisJIHF0Ni1kZWNsYXJhdGl2ZS1kZXZlbD49JHt2ZXJzaW9ufV8xIgorCXNo b3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1v dmUgdXNyL2luY2x1ZGUKKwkJdm1vdmUgdXNyL2xpYi9jbWFrZQorCQl2bW92ZSB1c3IvbGliL21l dGF0eXBlcworCQl2bW92ZSB1c3IvbGliL3BrZ2NvbmZpZworCQl2bW92ZSB1c3IvbGliL3F0Ni9t a3NwZWNzCisJCXZtb3ZlIHVzci9saWIvcXQ2L3FtbC9RdFNlbnNvcnMvcGx1Z2lucy5xbWx0eXBl cworCQl2bW92ZSB1c3IvbGliL3F0Ni9xbWwvUXRTZW5zb3JzL3FtbGRpcgorCQl2bW92ZSAidXNy L2xpYi8qLnNvIgorCQl2bW92ZSAidXNyL2xpYi8qLnBybCIKKwl9Cit9CgpGcm9tIGJhNGQzZWFh MmFhMTEyMmE4ZWQ5YTVkYmZmOWExOGFlZGFiYjRhOWIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206ID0/VVRGLTg/cT89QzQ9OTBvPUMzPUEwbj0yMFRyPUUxPUJBPUE3bj0yMEM9QzM9QjRu Zz0yMERhbmg/PQogPGNvbmdkYW5ocXhAZ21haWwuY29tPgpEYXRlOiBNb24sIDggQXVnIDIwMjIg MTg6MjM6MDggKzA3MDAKU3ViamVjdDogW1BBVENIIDI1LzI2XSBOZXcgcGFja2FnZTogcXQ2LXJl bW90ZW9iamVjdHMtNi4zLjEKCi0tLQogY29tbW9uL3NobGlicyAgICAgICAgICAgICAgICAgICAg ICB8ICAyICsrCiBzcmNwa2dzL3F0Ni1yZW1vdGVvYmplY3RzLWRldmVsICAgIHwgIDEgKwogc3Jj cGtncy9xdDYtcmVtb3Rlb2JqZWN0cy90ZW1wbGF0ZSB8IDMxICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAzNCBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9k ZSAxMjAwMDAgc3JjcGtncy9xdDYtcmVtb3Rlb2JqZWN0cy1kZXZlbAogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvcXQ2LXJlbW90ZW9iamVjdHMvdGVtcGxhdGUKCmRpZmYgLS1naXQgYS9jb21t b24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCBmNjI4NGVlZTFiYWUuLmEwZmFiODg2OTk0 OCAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC0yMDcz LDYgKzIwNzMsOCBAQCBsaWJRdDZIZWxwLnNvLjYgcXQ2LXRvb2xzLTYuMS4wXzEKIGxpYlF0NlVp VG9vbHMuc28uNiBxdDYtdG9vbHMtNi4xLjBfMQogbGliUXQ2TmZjLnNvLjYgcXQ2LWNvbm5lY3Rp dml0eS02LjMuMV8xCiBsaWJRdDZCbHVldG9vdGguc28uNiBxdDYtY29ubmVjdGl2aXR5LTYuMy4x XzEKK2xpYlF0NlJlbW90ZU9iamVjdHMuc28uNiBxdDYtcmVtb3Rlb2JqZWN0cy02LjMuMV8xCits aWJRdDZSZW1vdGVPYmplY3RzUW1sLnNvLjYgcXQ2LXJlbW90ZW9iamVjdHMtNi4zLjFfMQogbGli UXQ2U2Vuc29ycy5zby42IHF0Ni1zZW5zb3JzLTYuMy4xXzEKIGxpYlF0NlNlbnNvcnNRdWljay5z by42IHF0Ni1zZW5zb3JzLTYuMy4xXzEKIGxpYlF0Nkh1bnNwZWxsSW5wdXRNZXRob2Quc28uNiBx dDYtdmlydHVhbGtleWJvYXJkLTYuMS4wXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXJlbW90 ZW9iamVjdHMtZGV2ZWwgYi9zcmNwa2dzL3F0Ni1yZW1vdGVvYmplY3RzLWRldmVsCm5ldyBmaWxl IG1vZGUgMTIwMDAwCmluZGV4IDAwMDAwMDAwMDAwMC4uMmEwMjdmOTUyNjZmCi0tLSAvZGV2L251 bGwKKysrIGIvc3JjcGtncy9xdDYtcmVtb3Rlb2JqZWN0cy1kZXZlbApAQCAtMCwwICsxIEBACitx dDYtcmVtb3Rlb2JqZWN0cwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvcXQ2LXJlbW90ZW9iamVjdHMvdGVtcGxhdGUgYi9zcmNwa2dzL3F0Ni1yZW1vdGVv YmplY3RzL3RlbXBsYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u ZWJiMDYzODJjOGQ2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtcmVtb3Rlb2JqZWN0 cy90ZW1wbGF0ZQpAQCAtMCwwICsxLDMxIEBACisjIFRlbXBsYXRlIGZpbGUgZm9yICdxdDYtcmVt b3Rlb2JqZWN0cycKK3BrZ25hbWU9cXQ2LXJlbW90ZW9iamVjdHMKK3ZlcnNpb249Ni4zLjEKK3Jl dmlzaW9uPTEKK3dya3NyYz0icXRyZW1vdGVvYmplY3RzLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lv bn0iCitidWlsZF9zdHlsZT1jbWFrZQoraG9zdG1ha2VkZXBlbmRzPSJwZXJsIHF0Ni1kZWNsYXJh dGl2ZS1kZXZlbCBwa2ctY29uZmlnIgorbWFrZWRlcGVuZHM9InF0Ni1kZWNsYXJhdGl2ZS1kZXZl bCIKK3Nob3J0X2Rlc2M9IkNyb3NzLXBsYXRmb3JtIGFwcGxpY2F0aW9uIGFuZCBVSSBmcmFtZXdv cmsgLSBSZW1vdGUgT2JqZWN0cyIKK21haW50YWluZXI9IsSQb8OgbiBUcuG6p24gQ8O0bmcgRGFu aCA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+IgorbGljZW5zZT0iKExHUEwtMy4wLW9ubHkgT1IgR1BM LTIuMC1vbmx5IE9SIEdQTC0zLjAtb25seSkgQU5EIEdQTC0zLjAtb25seSB3aXRoIFF0LUdQTC1l eGNlcHRpb24tMS4wIgoraG9tZXBhZ2U9Imh0dHBzOi8vcXQuaW8vIgorZGlzdGZpbGVzPSJodHRw Oi8vZG93bmxvYWQucXQuaW8vb2ZmaWNpYWxfcmVsZWFzZXMvcXQvJHt2ZXJzaW9uJS4qfS8ke3Zl cnNpb259L3N1Ym1vZHVsZXMvcXRyZW1vdGVvYmplY3RzLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lv bn0udGFyLnh6IgorY2hlY2tzdW09ZWE2ZDAzOGIxMWM2MDk4MWRlMGJkMzlhNjA5MWE1OWFiZjdk MDMxZTM3YmZjNTkyYjMxYmUxMjE3YmVmNGNhNgorCitxdDYtcmVtb3Rlb2JqZWN0cy1kZXZlbF9w YWNrYWdlKCkgeworCWRlcGVuZHM9IiR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9u fQorCSBxdDYtZGVjbGFyYXRpdmUtZGV2ZWw+PSR7dmVyc2lvbn1fMSIKKwlzaG9ydF9kZXNjKz0i IC0gZGV2ZWxvcG1lbnQgZmlsZXMiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlIHVzci9pbmNs dWRlCisJCXZtb3ZlIHVzci9saWIvY21ha2UKKwkJdm1vdmUgdXNyL2xpYi9tZXRhdHlwZXMKKwkJ dm1vdmUgdXNyL2xpYi9wa2djb25maWcKKwkJdm1vdmUgdXNyL2xpYi9xdDYvbWtzcGVjcworCQl2 bW92ZSB1c3IvbGliL3F0Ni9xbWwvUXRSZW1vdGVPYmplY3RzL3BsdWdpbnMucW1sdHlwZXMKKwkJ dm1vdmUgdXNyL2xpYi9xdDYvcW1sL1F0UmVtb3RlT2JqZWN0cy9xbWxkaXIKKwkJdm1vdmUgInVz ci9saWIvKi5zbyIKKwkJdm1vdmUgInVzci9saWIvKi5wcmwiCisJfQorfQoKRnJvbSAyYzY2ZGVk NmE5YzVlOTU0NTQwNmJkMGFkMzI4MzM1ODcwNjNlZWFmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249MjBDPUMzPUI0 bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCA4IEF1ZyAyMDIy IDE3OjEzOjExICswNzAwClN1YmplY3Q6IFtQQVRDSCAyNi8yNl0gTmV3IHBhY2thZ2U6IHF0Ni13 ZWJlbmdpbmUtNi4zLjEuCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgIDcgKwogc3JjcGtncy9xdDYtd2ViZW5naW5lLWRldmVsICAgICAgICAg ICAgICAgICAgIHwgICAgMSArCiBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUtZXhhbXBsZXMgICAgICAg ICAgICAgICAgfCAgICAxICsKIC4uLi9wYXRjaGVzLzAwMDEtTm9uZS1uby1kZWJ1Zy5wYXRjaCAg ICAgICAgICB8ICAgMTEgKwogLi4uL3BhdGNoZXMvMDAwMi1lbmFibGUtcHBjNjQucGF0Y2ggICAg ICAgICAgIHwgICAyMCArCiAuLi4vcGF0Y2hlcy8wMDAzLWNyb3NzLWhhY2sucGF0Y2ggICAgICAg ICAgICAgfCAgIDEwICsKIC4uLi8wMDA0LXBwYy1kaXNhYmxlLWp4bC1kZWNvZGVyLnBhdGNoICAg ICAgICB8ICAgMTMgKwogLi4uL3BhdGNoZXMvMDA1MC1uby1nbGliYy1jbWFrZS1jaGVjay5wYXRj aCAgIHwgICAxNCArCiAuLi4vMDEwMC1jaHJvbWl1bS1zYW5kYm94LW1lbWJhcnJpZXIucGF0Y2gg ICAgfCAgIDU4ICsKIC4uLi9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwMS1zaXplX3QucGF0Y2gg ICB8ICAgMTYgKwogLi4uLzAxMDItY2hyb21pdW0tOTAtcnV5LWluY2x1ZGUucGF0Y2ggICAgICAg IHwgICAxOSArCiAuLi4tdjgtbW9ub3RvbmljLXB0aHJlYWQtY29udF90aW1lZHdhaXQucGF0Y2gg fCAgIDIyICsKIC4uLi8wMTA0LWNocm9taXVtLXJldmVydC05ZDA4MGMwLnBhdGNoICAgICAgICB8 ICAxNjIgKwogLi4uLWNocm9taXVtLXJldmVydC1kcm9wLW9mLXN5c3RlbS1qYXZhLnBhdGNoIHwg ICAxNSArCiAuLi4vcGF0Y2hlcy8wMTA2LWNocm9taXVtLXN5c3RlbS1ub2RlanMucGF0Y2ggfCAg IDIwICsKIC4uLi8wMTA3LWNocm9taXVtLWN1cnNlZF5Vc2NvcGVkX2ZpbGUucGF0Y2ggICB8ICAg MTggKwogLi4uLzAxMDgtY2hyb21pdW0tZml4LW5hcnJvd2luZy1jYXN0LnBhdGNoICAgIHwgICA1 MyArCiAuLi4vMDEwOS1jaHJvbWl1bS1yZW1vdmUtc3RyaXBfYmluYXJ5LnBhdGNoICAgfCAgIDMy ICsKIC4uLml1bS1yZXZlcnQtdXNlLWZmaWxlLWNvbXBpbGF0aW9uLWRpci5wYXRjaCB8ICAgNTcg KwogLi4uMTEtY2hyb21pdW0tbm8tV25vLXN0cmluZ29wLW92ZXJyZWFkLnBhdGNoIHwgICAxMCAr CiAuLi4vMDE1MC1jaHJvbWl1bS1nbGliYy1saWJjX21hbGxvYy5wYXRjaCAgICAgfCAgIDI0ICsK IC4uLi1pbmNsdWRlLXN5cy1yZWcuaC10by1nZXQtX19XT1JEU0laRS5wYXRjaCB8ICAgMjEgKwog Li4uLzAyMDEtY2hyb21pdW0tbXVzbC1kaXNwYXRjaC10by1tdXNsLnBhdGNoIHwgIDEwMyArCiAu Li4vMDIwMi1jaHJvbWl1bS1tdXNsLW5vLW1hbGxpbmZvLnBhdGNoICAgICAgfCAgIDYyICsKIC4u Li8wMjAzLWNocm9taXVtLW11c2wtc2lnaW5mb190LnBhdGNoICAgICAgICB8ICAgMTggKwogLi4u LzAyMDQtY2hyb21pdW0tbXVzbC1zdGFja3N0YXJ0LnBhdGNoICAgICAgIHwgICAyMCArCiAuLi4v cGF0Y2hlcy8wMjA1LWNocm9taXVtLW11c2wtc2FuZGJveC5wYXRjaCAgfCAgIDkyICsKIC4uLjAy MDYtY2hyb21pdW0tbXVzbC1kZWZhdWx0LXN0YWNrc2l6ZS5wYXRjaCB8ICAgMTUgKwogLi4uL3Bh dGNoZXMvMDIwOC1jaHJvbWl1bS1tdXNsLWV4ZWNpbmZvLnBhdGNoIHwgIDEyNSArCiAuLi4vMDIw OS1jaHJvbWl1bS1tdXNsLXRocmVhZC1zdGFja3NpemUucGF0Y2ggfCAgIDIyICsKIC4uLi8wMjEw LWNocm9taXVtLW11c2wtbXNndmVjLXB1c2hfYmFjay5wYXRjaCB8ICAgMTQgKwogLi4uaXVtLW11 c2wtY2Fub25pY2FsaXplLWZpbGUtbmFtZS1tdXNsLnBhdGNoIHwgICAxMSArCiAuLi4vMDIxMi1j aHJvbWl1bS1tdXNsLW5vLWdldGNvbnRleHQucGF0Y2ggICAgfCAgIDI5ICsKIC4uLi9wYXRjaGVz LzAyMTMtY2hyb21pdW0tbXVzbC1jcmFzaHBhZC5wYXRjaCB8ICAgMjQgKwogLi4uL3BhdGNoZXMv MDIxNC1jaHJvbWl1bS1tdXNsLWZpeGVzLnBhdGNoICAgIHwgIDEwOCArCiAuLi4vcGF0Y2hlcy8w MjE1LWNocm9taXVtLW11c2wtY2RlZnMucGF0Y2ggICAgfCAgIDI5ICsKIC4uLi9wYXRjaGVzLzAy MTYtY2hyb21pdW0tbXVzbC1zdGF0LnBhdGNoICAgICB8ICAgMTIgKwogLi4uL3BhdGNoZXMvMDIx Ny1jaHJvbWl1bS1tdXNsLXJlc29sdmVyLnBhdGNoIHwgICA3NyArCiAuLi4vcGF0Y2hlcy8wNjAw LWNocm9taXVtLXNuZGlvLnBhdGNoICAgICAgICAgfCAgODc2ICsrKysKIC4uLi9wYXRjaGVzLzA3 MDAtYXJtdjdsLW5lb24ucGF0Y2ggICAgICAgICAgICB8ICAgMTAgKwogLi4uLWNocm9taXVtLW11 c2wtY3Jvc3Mtbm8tYXNtX3B0cmFjZV9oLnBhdGNoIHwgICAzMCArCiAuLi4vMDc1MS1jaHJvbWl1 bS1tdXNsLWFybS11c2VyX3ZmcC5wYXRjaCAgICAgfCAgIDIwICsKIC4uLi8wNzUyLWNocm9taXVt LW11c2wtYXJtLWVsZl9hdXh2X3QucGF0Y2ggICB8ICAgMTggKwogLi4uMDgwMS1jaHJvbWl1bS1p Njg2LXZhYXBpLWZwZXJtaXNzaXZlLnBhdGNoIHwgICAyNCArCiAuLi4vcGF0Y2hlcy8wOTAwLXh4 eC1wcGM2NGxlLWxpYnZweC5wYXRjaCAgICAgfCAgIDY1ICsKIC4uLi8wOTAxLXh4eC1wcGM2NGxl LXNhbmRib3gtbGludXgtc3RhdC5wYXRjaCB8ICAgMzEgKwogLi4uL3BhdGNoZXMvMDkwMi14eHgt cHBjNjRsZS1zdXBwb3J0LnBhdGNoICAgIHwgMzU1NiArKysrKysrKysrKysrKysrKwogLi4uLzA5 MDMteHh4LXBwYzY0bGUtc3dpZnRzaGFkZXIucGF0Y2ggICAgICAgIHwgICAxOCArCiBzcmNwa2dz L3F0Ni13ZWJlbmdpbmUvdGVtcGxhdGUgICAgICAgICAgICAgICAgfCAgMTc4ICsKIHNyY3BrZ3Mv cXQ2LXdlYmVuZ2luZS91cGRhdGUgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogNTAgZmlsZXMg Y2hhbmdlZCwgNjE5MiBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMjAwMDAgc3JjcGtncy9x dDYtd2ViZW5naW5lLWRldmVsCiBjcmVhdGUgbW9kZSAxMjAwMDAgc3JjcGtncy9xdDYtd2ViZW5n aW5lLWV4YW1wbGVzCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvMDAwMS1Ob25lLW5vLWRlYnVnLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDAwMi1lbmFibGUtcHBjNjQucGF0Y2gKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDAzLWNyb3NzLWhhY2su cGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8w MDA0LXBwYy1kaXNhYmxlLWp4bC1kZWNvZGVyLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDA1MC1uby1nbGliYy1jbWFrZS1jaGVjay5wYXRj aAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDAt Y2hyb21pdW0tc2FuZGJveC1tZW1iYXJyaWVyLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwMS1zaXplX3QucGF0Y2gKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTAyLWNocm9taXVtLTkwLXJ1 eS1pbmNsdWRlLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5l L3BhdGNoZXMvMDEwMy1jaHJvbWl1bS12OC1tb25vdG9uaWMtcHRocmVhZC1jb250X3RpbWVkd2Fp dC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVz LzAxMDQtY2hyb21pdW0tcmV2ZXJ0LTlkMDgwYzAucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA1LWNocm9taXVtLXJldmVydC1kcm9wLW9m LXN5c3RlbS1qYXZhLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5n aW5lL3BhdGNoZXMvMDEwNi1jaHJvbWl1bS1zeXN0ZW0tbm9kZWpzLnBhdGNoCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwNy1jaHJvbWl1bS1jdXJz ZWReVXNjb3BlZF9maWxlLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2Vi ZW5naW5lL3BhdGNoZXMvMDEwOC1jaHJvbWl1bS1maXgtbmFycm93aW5nLWNhc3QucGF0Y2gKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA5LWNocm9t aXVtLXJlbW92ZS1zdHJpcF9iaW5hcnkucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTEwLWNocm9taXVtLXJldmVydC11c2UtZmZpbGUtY29t cGlsYXRpb24tZGlyLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5n aW5lL3BhdGNoZXMvMDExMS1jaHJvbWl1bS1uby1Xbm8tc3RyaW5nb3Atb3ZlcnJlYWQucGF0Y2gK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTUwLWNo cm9taXVtLWdsaWJjLWxpYmNfbWFsbG9jLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIwMC1jaHJvbWl1bS1tdXNsLWluY2x1ZGUtc3lzLXJl Zy5oLXRvLWdldC1fX1dPUkRTSVpFLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9x dDYtd2ViZW5naW5lL3BhdGNoZXMvMDIwMS1jaHJvbWl1bS1tdXNsLWRpc3BhdGNoLXRvLW11c2wu cGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8w MjAyLWNocm9taXVtLW11c2wtbm8tbWFsbGluZm8ucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjAzLWNocm9taXVtLW11c2wtc2lnaW5mb190 LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMv MDIwNC1jaHJvbWl1bS1tdXNsLXN0YWNrc3RhcnQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjA1LWNocm9taXVtLW11c2wtc2FuZGJveC5w YXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAy MDYtY2hyb21pdW0tbXVzbC1kZWZhdWx0LXN0YWNrc2l6ZS5wYXRjaAogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDgtY2hyb21pdW0tbXVzbC1leGVj aW5mby5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRj aGVzLzAyMDktY2hyb21pdW0tbXVzbC10aHJlYWQtc3RhY2tzaXplLnBhdGNoCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIxMC1jaHJvbWl1bS1tdXNs LW1zZ3ZlYy1wdXNoX2JhY2sucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13 ZWJlbmdpbmUvcGF0Y2hlcy8wMjExLWNocm9taXVtLW11c2wtY2Fub25pY2FsaXplLWZpbGUtbmFt ZS1tdXNsLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvMDIxMi1jaHJvbWl1bS1tdXNsLW5vLWdldGNvbnRleHQucGF0Y2gKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjEzLWNocm9taXVtLW11c2wt Y3Jhc2hwYWQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUv cGF0Y2hlcy8wMjE0LWNocm9taXVtLW11c2wtZml4ZXMucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjE1LWNocm9taXVtLW11c2wtY2RlZnMu cGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8w MjE2LWNocm9taXVtLW11c2wtc3RhdC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv cXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMTctY2hyb21pdW0tbXVzbC1yZXNvbHZlci5wYXRjaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA2MDAtY2hy b21pdW0tc25kaW8ucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdp bmUvcGF0Y2hlcy8wNzAwLWFybXY3bC1uZW9uLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDc1MC1jaHJvbWl1bS1tdXNsLWNyb3NzLW5vLWFz bV9wdHJhY2VfaC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2lu ZS9wYXRjaGVzLzA3NTEtY2hyb21pdW0tbXVzbC1hcm0tdXNlcl92ZnAucGF0Y2gKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wNzUyLWNocm9taXVtLW11 c2wtYXJtLWVsZl9hdXh2X3QucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13 ZWJlbmdpbmUvcGF0Y2hlcy8wODAxLWNocm9taXVtLWk2ODYtdmFhcGktZnBlcm1pc3NpdmUucGF0 Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wOTAw LXh4eC1wcGM2NGxlLWxpYnZweC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2 LXdlYmVuZ2luZS9wYXRjaGVzLzA5MDEteHh4LXBwYzY0bGUtc2FuZGJveC1saW51eC1zdGF0LnBh dGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDkw Mi14eHgtcHBjNjRsZS1zdXBwb3J0LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9x dDYtd2ViZW5naW5lL3BhdGNoZXMvMDkwMy14eHgtcHBjNjRsZS1zd2lmdHNoYWRlci5wYXRjaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS90ZW1wbGF0ZQogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS91cGRhdGUKCmRpZmYgLS1naXQgYS9j b21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCBhMGZhYjg4Njk5NDguLmZhNzJmOGVl MjRkMiAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC0y MDg2LDYgKzIwODYsMTMgQEAgbGliUXQ2UG9zaXRpb25pbmcuc28uNiBxdDYtbG9jYXRpb24tNi4y LjBhbHBoYV8xCiBsaWJRdDZNdWx0aW1lZGlhV2lkZ2V0cy5zby42IHF0Ni1tdWx0aW1lZGlhLTYu My4xXzEKIGxpYlF0Nk11bHRpbWVkaWFRdWljay5zby42IHF0Ni1tdWx0aW1lZGlhLTYuMy4xXzEK IGxpYlF0Nk11bHRpbWVkaWEuc28uNiBxdDYtbXVsdGltZWRpYS02LjMuMV8xCitsaWJRdDZXZWJF bmdpbmVRdWljay5zby42IHF0Ni13ZWJlbmdpbmUtNi4zLjFfMQorbGliUXQ2UGRmV2lkZ2V0cy5z by42IHF0Ni13ZWJlbmdpbmUtNi4zLjFfMQorbGliUXQ2UGRmUXVpY2suc28uNiBxdDYtd2ViZW5n aW5lLTYuMy4xXzEKK2xpYlF0NldlYkVuZ2luZUNvcmUuc28uNiBxdDYtd2ViZW5naW5lLTYuMy4x XzEKK2xpYlF0NlBkZi5zby42IHF0Ni13ZWJlbmdpbmUtNi4zLjFfMQorbGliUXQ2V2ViRW5naW5l UXVpY2tEZWxlZ2F0ZXNRbWwuc28uNiBxdDYtd2ViZW5naW5lLTYuMy4xXzEKK2xpYlF0NldlYkVu Z2luZVdpZGdldHMuc28uNiBxdDYtd2ViZW5naW5lLTYuMy4xXzEKIGxpYm5wdGguc28uMCBucHRo LTEuMV8xCiBsaWJucHVwbnAuc28uNCBsaWJucHVwbnAtNC4wLjJfMQogbGliZ2xmdy5zby4zIGds ZnctMy4wLjRfMQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lLWRldmVsIGIvc3Jj cGtncy9xdDYtd2ViZW5naW5lLWRldmVsCm5ldyBmaWxlIG1vZGUgMTIwMDAwCmluZGV4IDAwMDAw MDAwMDAwMC4uOGU0ZDFiOTljNTg3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2Vi ZW5naW5lLWRldmVsCkBAIC0wLDAgKzEgQEAKK3F0Ni13ZWJlbmdpbmUKXCBObyBuZXdsaW5lIGF0 IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUtZXhhbXBsZXMg Yi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUtZXhhbXBsZXMKbmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5k ZXggMDAwMDAwMDAwMDAwLi44ZTRkMWI5OWM1ODcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dz L3F0Ni13ZWJlbmdpbmUtZXhhbXBsZXMKQEAgLTAsMCArMSBAQAorcXQ2LXdlYmVuZ2luZQpcIE5v IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2lu ZS9wYXRjaGVzLzAwMDEtTm9uZS1uby1kZWJ1Zy5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2lu ZS9wYXRjaGVzLzAwMDEtTm9uZS1uby1kZWJ1Zy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMDAuLjFiYTMzZjhlNmZkOQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3Br Z3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAwMDEtTm9uZS1uby1kZWJ1Zy5wYXRjaApAQCAtMCww ICsxLDExIEBACistLS0gYS9jbWFrZS9GdW5jdGlvbnMuY21ha2UKKysrKyBiL2NtYWtlL0Z1bmN0 aW9ucy5jbWFrZQorQEAgLTgxMyw2ICs4MTMsOCBAQCBtYWNybyhhcHBlbmRfYnVpbGRfdHlwZV9z ZXR1cCkKKyAgICAgICAgIGVuZGlmKCkKKyAgICAgZWxzZWlmKCR7Y29uZmlnfSBTVFJFUVVBTCAi TWluU2l6ZVJlbCIpCisgICAgICAgICBsaXN0KEFQUEVORCBnbkFyZ0FyZyBpc19kZWJ1Zz1mYWxz ZSBzeW1ib2xfbGV2ZWw9MCBvcHRpbWl6ZV9mb3Jfc2l6ZT10cnVlKQorKyAgICBlbHNlaWYoJHtj b25maWd9IFNUUkVRVUFMICJOb25lIikKKysgICAgICAgIGxpc3QoQVBQRU5EIGduQXJnQXJnIGlz X2RlYnVnPWZhbHNlIHN5bWJvbF9sZXZlbD0wKQorICAgICBlbmRpZigpCisgICAgIGlmKEZFQVRV UkVfZGV2ZWxvcGVyX2J1aWxkIE9SICgke2NvbmZpZ30gU1RSRVFVQUwgIkRlYnVnIikgT1IgUVRf RkVBVFVSRV93ZWJlbmdpbmVfc2FuaXRpemVyKQorICAgICAgICAgbGlzdChBUFBFTkQgZ25BcmdB cmcKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAwMDItZW5hYmxl LXBwYzY0LnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDAwMi1lbmFibGUt cHBjNjQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5kNzJl ZjFhZDFhMTAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hl cy8wMDAyLWVuYWJsZS1wcGM2NC5wYXRjaApAQCAtMCwwICsxLDIwIEBACistLS0gYS9jbWFrZS9G dW5jdGlvbnMuY21ha2UKKysrKyBiL2NtYWtlL0Z1bmN0aW9ucy5jbWFrZQorQEAgLTYyMiw2ICs2 MjIsOCBAQCBmdW5jdGlvbihnZXRfZ25fYXJjaCByZXN1bHQgYXJjaCkKKyAgICAgICAgIHNldCgk e3Jlc3VsdH0gIm1pcHNlbCIgUEFSRU5UX1NDT1BFKQorICAgICBlbHNlaWYoYXJjaCBTVFJFUVVB TCAibWlwc2VsNjQiKQorICAgICAgICAgc2V0KCR7cmVzdWx0fSAibWlwczY0ZWwiIFBBUkVOVF9T Q09QRSkKKysgICAgZWxzZWlmKGFyY2ggU1RSRVFVQUwgInBvd2VyNjQiKQorKyAgICAgICAgc2V0 KCR7cmVzdWx0fSAicG93ZXI2NCIgUEFSRU5UX1NDT1BFKQorICAgICBlbHNlKCkKKyAgICAgICAg IG1lc3NhZ2UoREVCVUcgIlVuc3VwcG9ydGVkIGFyY2hpdGVjdHVyZTogJHthcmNofSIpCisgICAg IGVuZGlmKCkKK0BAIC02NDEsNiArNjQzLDggQEAgZnVuY3Rpb24oZ2V0X3Y4X2FyY2ggcmVzdWx0 IHRhcmdldEFyY2ggaAorICAgICAgICAgICAgIHNldCgke3Jlc3VsdH0gIm1pcHNlbCIgUEFSRU5U X1NDT1BFKQorICAgICAgICAgZWxzZWlmKGhvc3RBcmNoIFNUUkVRVUFMICJtaXBzZWw2NCIpCisg ICAgICAgICAgICAgc2V0KCR7cmVzdWx0fSAibWlwc2VsIiBQQVJFTlRfU0NPUEUpCisrICAgICAg ICBlbHNlaWYoaG9zdEFyY2ggU1RSRVFVQUwgInBvd2VyNjQiKQorKyAgICAgICAgICAgIHNldCgk e3Jlc3VsdH0gInBvd2VyNjQiIFBBUkVOVF9TQ09QRSkKKyAgICAgICAgIGVsc2UoKQorICAgICAg ICAgICAgIG1lc3NhZ2UoREVCVUcgIlVuc3VwcG9ydGVkIGFyY2hpdGVjdHVyZTogJHtob3N0QXJj aH0iKQorICAgICAgICAgZW5kaWYoKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5l L3BhdGNoZXMvMDAwMy1jcm9zcy1oYWNrLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvMDAwMy1jcm9zcy1oYWNrLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMC4uZWE5ZjkwMDk0YTYzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYt d2ViZW5naW5lL3BhdGNoZXMvMDAwMy1jcm9zcy1oYWNrLnBhdGNoCkBAIC0wLDAgKzEsMTAgQEAK Ky0tLSBhL3NyYy9jb3JlL2FwaS9DTWFrZUxpc3RzLnR4dAorKysrIGIvc3JjL2NvcmUvYXBpL0NN YWtlTGlzdHMudHh0CitAQCAtNTAsNiArNTAsNyBAQCBxdF9pbnRlcm5hbF9hZGRfbW9kdWxlKFdl YkVuZ2luZUNvcmUKKyAgICAgICAgIFF0OjpHdWkKKyAgICAgICAgIFF0OjpOZXR3b3JrCisgICAg ICAgICBRdDo6UXVpY2sKKysgICAgICAgIFgxMQorICkKKyAKKyBzZXRfdGFyZ2V0X3Byb3BlcnRp ZXMoV2ViRW5naW5lQ29yZSBQUk9QRVJUSUVTIFFUV0VCRU5HSU5FUFJPQ0VTU19OQU1FICR7cXRX ZWJFbmdpbmVQcm9jZXNzTmFtZX0pCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUv cGF0Y2hlcy8wMDA0LXBwYy1kaXNhYmxlLWp4bC1kZWNvZGVyLnBhdGNoIGIvc3JjcGtncy9xdDYt d2ViZW5naW5lL3BhdGNoZXMvMDAwNC1wcGMtZGlzYWJsZS1qeGwtZGVjb2Rlci5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjczYzExNTE5NjhmNAotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAwMDQtcHBjLWRpc2Fi bGUtanhsLWRlY29kZXIucGF0Y2gKQEAgLTAsMCArMSwxMyBAQAorLS0tIGEvc3JjL2NvcmUvQ01h a2VMaXN0cy50eHQKKysrKyBiL3NyYy9jb3JlL0NNYWtlTGlzdHMudHh0CitAQCAtNDE0LDYgKzQx NCwxMCBAQCBmb3JlYWNoKGFyY2ggJHthcmNoc30pCisgICAgICAgICAgICAgICAgIENPTkRJVElP TiBRVF9GRUFUVVJFX3dlYmVuZ2luZV9vem9uZV94MTEgQU5EIFhTQ1JOU0FWRVJfRk9VTkQKKyAg ICAgICAgICAgICApCisgCisrICAgICAgICAgICAgaWYgKGNwdSBTVFJFUVVBTCAicHBjNjQiKQor KyAgICAgICAgICAgICAgICBsaXN0KEFQUEVORCBnbkFyZ0FyZyBlbmFibGVfanhsX2RlY29kZXI9 ZmFsc2UpCisrICAgICAgICAgICAgZW5kaWYoKQorKworICAgICAgICAgICAgIGlmKFFUX0ZFQVRV UkVfd2ViZW5naW5lX2tlcmJlcm9zKQorICAgICAgICAgICAgICAgICBsaXN0KEFQUEVORCBnbkFy Z0FyZworICAgICAgICAgICAgICAgICAgICAgIGV4dGVybmFsX2dzc2FwaV9pbmNsdWRlX2Rpcj0i JHtHU1NBUElfSU5DTFVERV9ESVJTfS9nc3NhcGkiCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13 ZWJlbmdpbmUvcGF0Y2hlcy8wMDUwLW5vLWdsaWJjLWNtYWtlLWNoZWNrLnBhdGNoIGIvc3JjcGtn cy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDA1MC1uby1nbGliYy1jbWFrZS1jaGVjay5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmY3NTZiZjAyODZiYgotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAwNTAtbm8tZ2xp YmMtY21ha2UtY2hlY2sucGF0Y2gKQEAgLTAsMCArMSwxNCBAQAorLS0tIGEvY29uZmlndXJlLmNt YWtlCisrKysgYi9jb25maWd1cmUuY21ha2UKK0BAIC00OTksMTEgKzQ5OSw2IEBAIGFkZF9jaGVj a19mb3Jfc3VwcG9ydCgKKyApCisgYWRkX2NoZWNrX2Zvcl9zdXBwb3J0KAorICAgIE1PRFVMRVMg UXRXZWJFbmdpbmUgUXRQZGYKKy0gICBDT05ESVRJT04gTk9UIExJTlVYIE9SIFRFU1RfZ2xpYmMK Ky0gICBNRVNTQUdFICJBIHN1aXRhYmxlIHZlcnNpb24gPj0gMi4xNyBvZiBnbGliYyBpcyByZXF1 aXJlZC4iCistKQorLWFkZF9jaGVja19mb3Jfc3VwcG9ydCgKKy0gICBNT0RVTEVTIFF0V2ViRW5n aW5lIFF0UGRmCisgICAgQ09ORElUSU9OIE5PVCBMSU5VWCBPUiBURVNUX2tocgorICAgIE1FU1NB R0UgIkJ1aWxkIHJlcXVpcmVzIEtocm9ub3MgZGV2ZWxvcG1lbnQgaGVhZGVycyBmb3IgYnVpbGQg LSBzZWUgbWVzYS9saWJlZ2wxLW1lc2EtZGV2IgorICkKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2 LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDAtY2hyb21pdW0tc2FuZGJveC1tZW1iYXJyaWVyLnBhdGNo IGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwMC1jaHJvbWl1bS1zYW5kYm94LW1l bWJhcnJpZXIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4y ZGQ3YjRhYTk0OGYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0 Y2hlcy8wMTAwLWNocm9taXVtLXNhbmRib3gtbWVtYmFycmllci5wYXRjaApAQCAtMCwwICsxLDU4 IEBACistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJw Zi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Nh bmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuY2MKK0BAIC00MTMs NiArNDEzLDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkUHJvY2Vzc1N0YXJ0TworICAg c3dpdGNoIChzeXNubykgeworICAgICBjYXNlIF9fTlJfZXhpdDoKKyAgICAgY2FzZSBfX05SX2V4 aXRfZ3JvdXA6CisrICAgIGNhc2UgX19OUl9tZW1iYXJyaWVyOgorICAgICBjYXNlIF9fTlJfd2Fp dDQ6CisgICAgIGNhc2UgX19OUl93YWl0aWQ6CisgI2lmIGRlZmluZWQoX19pMzg2X18pCistLS0g YS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9hcm02 NF9saW51eF9zeXNjYWxscy5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9s aW51eC9zeXN0ZW1faGVhZGVycy9hcm02NF9saW51eF9zeXNjYWxscy5oCitAQCAtMTIxNSw0ICsx MjE1LDggQEAKKyAjZGVmaW5lIF9fTlJfbGFuZGxvY2tfcmVzdHJpY3Rfc2VsZiA0NDYKKyAjZW5k aWYKKyAKKysjaWYgIWRlZmluZWQoX19OUl9tZW1iYXJyaWVyKQorKyNkZWZpbmUgX19OUl9tZW1i YXJyaWVyIDI4MworKyNlbmRpZgorKworICNlbmRpZiAgLy8gU0FOREJPWF9MSU5VWF9TWVNURU1f SEVBREVSU19BUk02NF9MSU5VWF9TWVNDQUxMU19IXworLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvYXJtX2xpbnV4X3N5c2NhbGxzLmgKKysr KyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2Fy bV9saW51eF9zeXNjYWxscy5oCitAQCAtMTYxNyw2ICsxNjE3LDEwIEBACisgI2RlZmluZSBfX05S X2xhbmRsb2NrX3Jlc3RyaWN0X3NlbGYgKF9fTlJfU1lTQ0FMTF9CQVNFICsgNDQ2KQorICNlbmRp ZgorIAorKyNpZiAhZGVmaW5lZChfX05SX21lbWJhcnJpZXIpCisrI2RlZmluZSBfX05SX21lbWJh cnJpZXIgKF9fTlJfU1lTQ0FMTF9CQVNFKzM4OSkKKysjZW5kaWYKKysKKyAvLyBBUk0gcHJpdmF0 ZSBzeXNjYWxscy4KKyAjaWYgIWRlZmluZWQoX19BUk1fTlJfQkFTRSkKKyAjZGVmaW5lIF9fQVJN X05SX0JBU0UgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMHhGMDAwMCkKKy0tLSBhL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3g4Nl8zMl9saW51eF9zeXNj YWxscy5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zeXN0ZW1f aGVhZGVycy94ODZfMzJfbGludXhfc3lzY2FsbHMuaAorQEAgLTE3NTAsNSArMTc1MCw5IEBACisg I2RlZmluZSBfX05SX2xhbmRsb2NrX3Jlc3RyaWN0X3NlbGYgNDQ2CisgI2VuZGlmCisgCisrI2lm ICFkZWZpbmVkKF9fTlJfbWVtYmFycmllcikKKysjZGVmaW5lIF9fTlJfbWVtYmFycmllciAzNzUK KysjZW5kaWYKKysKKyAjZW5kaWYgIC8vIFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNfWDg2 XzMyX0xJTlVYX1NZU0NBTExTX0hfCisgCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2Fu ZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy94ODZfNjRfbGludXhfc3lzY2FsbHMuaAorKysrIGIv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMveDg2XzY0 X2xpbnV4X3N5c2NhbGxzLmgKK0BAIC0xNDM4LDUgKzE0MzgsOSBAQAorICNkZWZpbmUgX19OUl9s YW5kbG9ja19yZXN0cmljdF9zZWxmIDQ0NgorICNlbmRpZgorIAorKyNpZiAhZGVmaW5lZChfX05S X21lbWJhcnJpZXIpCisrI2RlZmluZSBfX05SX21lbWJhcnJpZXIgMzI0CisrI2VuZGlmCisrCisg I2VuZGlmICAvLyBTQU5EQk9YX0xJTlVYX1NZU1RFTV9IRUFERVJTX1g4Nl82NF9MSU5VWF9TWVND QUxMU19IXworIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEw MS1zaXplX3QucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTAxLXNpemVf dC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmZjY2MwODVk YTMxMQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAx MDEtc2l6ZV90LnBhdGNoCkBAIC0wLDAgKzEsMTYgQEAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS90aGlyZF9wYXJ0eS9hbmdsZS9pbmNsdWRlL3BsYXRmb3JtL1BsYXRmb3JtTWV0aG9kcy5o CisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYW5nbGUvaW5jbHVkZS9w bGF0Zm9ybS9QbGF0Zm9ybU1ldGhvZHMuaAorQEAgLTIzOSwxMSArMjM5LDExIEBAIGlubGluZSB2 b2lkIERlZmF1bHRPdmVycmlkZUZlYXR1cmVzTXRsKFAKKyB1c2luZyBQcm9ncmFtS2V5VHlwZSAg ID0gc3RkOjphcnJheTx1aW50OF90LCAyMD47CisgdXNpbmcgQ2FjaGVQcm9ncmFtRnVuYyA9IHZv aWQgKCopKFBsYXRmb3JtTWV0aG9kcyAqcGxhdGZvcm0sCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IFByb2dyYW1LZXlUeXBlICZrZXksCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNpemVfdCBwcm9ncmFtU2l6ZSwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RkOjpzaXplX3QgcHJvZ3JhbVNpemUsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKnByb2dyYW1CeXRlcyk7CisgaW5s aW5lIHZvaWQgRGVmYXVsdENhY2hlUHJvZ3JhbShQbGF0Zm9ybU1ldGhvZHMgKnBsYXRmb3JtLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUHJvZ3JhbUtleVR5cGUgJmtl eSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBwcm9ncmFtU2l6ZSwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6c2l6ZV90IHByb2dyYW1TaXpl LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqcHJvZ3Jh bUJ5dGVzKQorIHt9CisgCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hl cy8wMTAyLWNocm9taXVtLTkwLXJ1eS1pbmNsdWRlLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5n aW5lL3BhdGNoZXMvMDEwMi1jaHJvbWl1bS05MC1ydXktaW5jbHVkZS5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmJiYmE1NzkwNzZkNgotLS0gL2Rldi9udWxs CisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDItY2hyb21pdW0tOTAtcnV5 LWluY2x1ZGUucGF0Y2gKQEAgLTAsMCArMSwxOSBAQAorRnJvbSA3MTQwOTJmMzM2YmIxNGQyZmNj MjczOTZlYzMyM2IzZDg0M2JiOTYyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogU3Rl cGhhbiBIYXJ0bWFubiA8c3RoYTA5QGdvb2dsZW1haWwuY29tPgorRGF0ZTogVGh1LCA0IE1hciAy MDIxIDE1OjA1OjQ2ICswMDAwCitTdWJqZWN0OiBbUEFUQ0hdIElXWVU6IGluY2x1ZGUgbGltaXRz IGZvciBzdGQ6Om51bWVyaWNfbGltaXRzCisKKy0tLQorIHRoaXJkX3BhcnR5L3J1eS9zcmMvcnV5 L2Jsb2NrX21hcC5jYyB8IDEgKworIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQorCist LS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvcnV5L3NyYy9ydXkvYmxvY2tf bWFwLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvcnV5L3NyYy9y dXkvYmxvY2tfbWFwLmNjCitAQCAtMTcsNiArMTcsNyBAQCBsaW1pdGF0aW9ucyB1bmRlciB0aGUg TGljZW5zZS4KKyAKKyAjaW5jbHVkZSA8YWxnb3JpdGhtPgorICNpbmNsdWRlIDxjc3RkaW50Pgor KyNpbmNsdWRlIDxsaW1pdHM+CisgCisgI2lmZGVmIFJVWV9NQUtFQkxPQ0tNQVBfREVCVUcKKyAj aW5jbHVkZSA8Y3N0ZGlvPgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNo ZXMvMDEwMy1jaHJvbWl1bS12OC1tb25vdG9uaWMtcHRocmVhZC1jb250X3RpbWVkd2FpdC5wYXRj aCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDMtY2hyb21pdW0tdjgtbW9ub3Rv bmljLXB0aHJlYWQtY29udF90aW1lZHdhaXQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAwLi4xZGM4YmM0ZDNkMTcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dz L3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTAzLWNocm9taXVtLXY4LW1vbm90b25pYy1wdGhyZWFk LWNvbnRfdGltZWR3YWl0LnBhdGNoCkBAIC0wLDAgKzEsMjIgQEAKK1VzZSBtb25vdG9uaWMgY2xv Y2sgZm9yIHB0aHJlYWRfY29uZF90aW1lZHdhaXQgd2l0aCBtdXNsIHRvby4KKworLS0tIGEvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3Y4L3NyYy9iYXNlL3BsYXRmb3JtL2NvbmRpdGlvbi12YXJpYWJs ZS5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4L3NyYy9iYXNlL3BsYXRmb3JtL2Nv bmRpdGlvbi12YXJpYWJsZS5jYworQEAgLTIwLDcgKzIwLDcgQEAgbmFtZXNwYWNlIGJhc2Ugewor IAorIENvbmRpdGlvblZhcmlhYmxlOjpDb25kaXRpb25WYXJpYWJsZSgpIHsKKyAjaWYgKFY4X09T X0ZSRUVCU0QgfHwgVjhfT1NfTkVUQlNEIHx8IFY4X09TX09QRU5CU0QgfHwgXAorLSAgICAgKFY4 X09TX0xJTlVYICYmIFY4X0xJQkNfR0xJQkMpKQorKyAgICAgVjhfT1NfTElOVVgpCisgICAvLyBP biBGcmVlL05ldC9PcGVuQlNEIGFuZCBMaW51eCB3aXRoIGdsaWJjIHdlIGNhbiBjaGFuZ2UgdGhl IHRpbWUKKyAgIC8vIHNvdXJjZSBmb3IgcHRocmVhZF9jb25kX3RpbWVkd2FpdCgpIHRvIHVzZSB0 aGUgbW9ub3RvbmljIGNsb2NrLgorICAgcHRocmVhZF9jb25kYXR0cl90IGF0dHI7CitAQCAtOTYs NyArOTYsNyBAQCBib29sIENvbmRpdGlvblZhcmlhYmxlOjpXYWl0Rm9yKE11dGV4KiBtCisgICAg ICAgJm5hdGl2ZV9oYW5kbGVfLCAmbXV0ZXgtPm5hdGl2ZV9oYW5kbGUoKSwgJnRzKTsKKyAjZWxz ZQorICNpZiAoVjhfT1NfRlJFRUJTRCB8fCBWOF9PU19ORVRCU0QgfHwgVjhfT1NfT1BFTkJTRCB8 fCBcCistICAgICAoVjhfT1NfTElOVVggJiYgVjhfTElCQ19HTElCQykpCisrICAgICBWOF9PU19M SU5VWCkKKyAgIC8vIE9uIEZyZWUvTmV0L09wZW5CU0QgYW5kIExpbnV4IHdpdGggZ2xpYmMgd2Ug Y2FuIGNoYW5nZSB0aGUgdGltZQorICAgLy8gc291cmNlIGZvciBwdGhyZWFkX2NvbmRfdGltZWR3 YWl0KCkgdG8gdXNlIHRoZSBtb25vdG9uaWMgY2xvY2suCisgICByZXN1bHQgPSBjbG9ja19nZXR0 aW1lKENMT0NLX01PTk9UT05JQywgJnRzKTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVu Z2luZS9wYXRjaGVzLzAxMDQtY2hyb21pdW0tcmV2ZXJ0LTlkMDgwYzAucGF0Y2ggYi9zcmNwa2dz L3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA0LWNocm9taXVtLXJldmVydC05ZDA4MGMwLnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNDJiMWVlOWVjMDYzCi0t LSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwNC1jaHJv bWl1bS1yZXZlcnQtOWQwODBjMC5wYXRjaApAQCAtMCwwICsxLDE2MiBAQAorIE9yaWdpbmFsIGNo YW5nZSdzIGRlc2NyaXB0aW9uOgorID4gUmVwbGFjZSAnYmxhY2tsaXN0JyB3aXRoICdpZ25vcmVs aXN0JyBpbiAuL3Rvb2xzL21zYW4vLgorID4KKyA+IEJ1ZzogMTA5NzI3MiwgMTA5NzI2OAorID4g Q2hhbmdlLUlkOiBJZDVjODIyN2E1YmZiMWZmYWVjODJkMzE2OGI2MDkwODViMTBjODI5NworID4g UmV2aWV3ZWQtb246IGh0dHBzOi8vY2hyb21pdW0tcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20vYy9j aHJvbWl1bS9zcmMvKy8yODY3NzMwCisgPiBDb21taXQtUXVldWU6IER5bGFuIEN1dGxlciA8ZHls YW5jdXRsZXJAZ29vZ2xlLmNvbT4KKyA+IFJldmlld2VkLWJ5OiBOaWNvIFdlYmVyIDx0aGFraXNA Y2hyb21pdW0ub3JnPgorID4gUmV2aWV3ZWQtYnk6IEpvbmF0aGFuIE1ldHptYW4gPG1ldHptYW5A Y2hyb21pdW0ub3JnPgorID4gQ3ItQ29tbWl0LVBvc2l0aW9uOiByZWZzL2hlYWRzL21hc3RlckB7 Izg4MzAzNX0KKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9idWlsZC9jb25maWcvc2FuaXRp emVycy9CVUlMRC5nbgorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2J1aWxkL2NvbmZpZy9z YW5pdGl6ZXJzL0JVSUxELmduCitAQCAtMjcyLDExICsyNzIsMTEgQEAgY29uZmlnKCJhc2FuX2Zs YWdzIikgeworICAgaWYgKGlzX2FzYW4pIHsKKyAgICAgY2ZsYWdzICs9IFsgIi1mc2FuaXRpemU9 YWRkcmVzcyIgXQorICAgICBpZiAoaXNfd2luKSB7CistICAgICAgaWYgKCFkZWZpbmVkKGFzYW5f d2luX2Jsb2NrbGlzdF9wYXRoKSkgeworLSAgICAgICAgYXNhbl93aW5fYmxvY2tsaXN0X3BhdGgg PQorKyAgICAgIGlmICghZGVmaW5lZChhc2FuX3dpbl9ibGFja2xpc3RfcGF0aCkpIHsKKysgICAg ICAgIGFzYW5fd2luX2JsYWNrbGlzdF9wYXRoID0KKyAgICAgICAgICAgICByZWJhc2VfcGF0aCgi Ly90b29scy9tZW1vcnkvYXNhbi9ibG9ja2xpc3Rfd2luLnR4dCIsIHJvb3RfYnVpbGRfZGlyKQor ICAgICAgIH0KKy0gICAgICBjZmxhZ3MgKz0gWyAiLWZzYW5pdGl6ZS1pZ25vcmVsaXN0PSRhc2Fu X3dpbl9ibG9ja2xpc3RfcGF0aCIgXQorKyAgICAgIGNmbGFncyArPSBbICItZnNhbml0aXplLWJs YWNrbGlzdD0kYXNhbl93aW5fYmxhY2tsaXN0X3BhdGgiIF0KKyAgICAgfQorICAgfQorIH0KK0BA IC0zMDYsMTMgKzMwNiwxMyBAQCBjb25maWcoImxpbmtfc2hhcmVkX2xpYnJhcnkiKSB7CisgY29u ZmlnKCJjZmlfZmxhZ3MiKSB7CisgICBjZmxhZ3MgPSBbXQorICAgaWYgKGlzX2NmaSAmJiBjdXJy ZW50X3Rvb2xjaGFpbiA9PSBkZWZhdWx0X3Rvb2xjaGFpbikgeworLSAgICBpZiAoIWRlZmluZWQo Y2ZpX2lnbm9yZWxpc3RfcGF0aCkpIHsKKy0gICAgICBjZmlfaWdub3JlbGlzdF9wYXRoID0KKysg ICAgaWYgKCFkZWZpbmVkKGNmaV9ibGFja2xpc3RfcGF0aCkpIHsKKysgICAgICBjZmlfYmxhY2ts aXN0X3BhdGggPQorICAgICAgICAgICByZWJhc2VfcGF0aCgiLy90b29scy9jZmkvaWdub3Jlcy50 eHQiLCByb290X2J1aWxkX2RpcikKKyAgICAgfQorICAgICBjZmxhZ3MgKz0gWworICAgICAgICIt ZnNhbml0aXplPWNmaS12Y2FsbCIsCistICAgICAgIi1mc2FuaXRpemUtaWdub3JlbGlzdD0kY2Zp X2lnbm9yZWxpc3RfcGF0aCIsCisrICAgICAgIi1mc2FuaXRpemUtYmxhY2tsaXN0PSRjZmlfYmxh Y2tsaXN0X3BhdGgiLAorICAgICBdCisgCisgICAgIGlmICh1c2VfY2ZpX2Nhc3QpIHsKK0BAIC00 MDksMTQgKzQwOSwxNCBAQCBjb25maWcoIm1zYW5fZmxhZ3MiKSB7CisgICBpZiAoaXNfbXNhbikg eworICAgICBhc3NlcnQoaXNfbGludXggfHwgaXNfY2hyb21lb3MsCisgICAgICAgICAgICAibXNh biBvbmx5IHN1cHBvcnRlZCBvbiBsaW51eCB4ODZfNjQvQ2hyb21lT1MiKQorLSAgICBpZiAoIWRl ZmluZWQobXNhbl9pZ25vcmVsaXN0X3BhdGgpKSB7CistICAgICAgbXNhbl9pZ25vcmVsaXN0X3Bh dGggPQorLSAgICAgICAgICByZWJhc2VfcGF0aCgiLy90b29scy9tc2FuL2lnbm9yZWxpc3QudHh0 Iiwgcm9vdF9idWlsZF9kaXIpCisrICAgIGlmICghZGVmaW5lZChtc2FuX2JsYWNrbGlzdF9wYXRo KSkgeworKyAgICAgIG1zYW5fYmxhY2tsaXN0X3BhdGggPQorKyAgICAgICAgICByZWJhc2VfcGF0 aCgiLy90b29scy9tc2FuL2JsYWNrbGlzdC50eHQiLCByb290X2J1aWxkX2RpcikKKyAgICAgfQor ICAgICBjZmxhZ3MgPSBbCisgICAgICAgIi1mc2FuaXRpemU9bWVtb3J5IiwKKyAgICAgICAiLWZz YW5pdGl6ZS1tZW1vcnktdHJhY2stb3JpZ2lucz0kbXNhbl90cmFja19vcmlnaW5zIiwKKy0gICAg ICAiLWZzYW5pdGl6ZS1pZ25vcmVsaXN0PSRtc2FuX2lnbm9yZWxpc3RfcGF0aCIsCisrICAgICAg Ii1mc2FuaXRpemUtYmxhY2tsaXN0PSRtc2FuX2JsYWNrbGlzdF9wYXRoIiwKKyAgICAgXQorICAg fQorIH0KK0BAIC00MjQsMTMgKzQyNCwxMyBAQCBjb25maWcoIm1zYW5fZmxhZ3MiKSB7CisgY29u ZmlnKCJ0c2FuX2ZsYWdzIikgeworICAgaWYgKGlzX3RzYW4pIHsKKyAgICAgYXNzZXJ0KGlzX2xp bnV4IHx8IGlzX2Nocm9tZW9zLCAidHNhbiBvbmx5IHN1cHBvcnRlZCBvbiBsaW51eCB4ODZfNjQi KQorLSAgICBpZiAoIWRlZmluZWQodHNhbl9pZ25vcmVsaXN0X3BhdGgpKSB7CistICAgICAgdHNh bl9pZ25vcmVsaXN0X3BhdGggPQorKyAgICBpZiAoIWRlZmluZWQodHNhbl9ibGFja2xpc3RfcGF0 aCkpIHsKKysgICAgICB0c2FuX2JsYWNrbGlzdF9wYXRoID0KKyAgICAgICAgICAgcmViYXNlX3Bh dGgoIi8vdG9vbHMvbWVtb3J5L3RzYW5fdjIvaWdub3Jlcy50eHQiLCByb290X2J1aWxkX2RpcikK KyAgICAgfQorICAgICBjZmxhZ3MgPSBbCisgICAgICAgIi1mc2FuaXRpemU9dGhyZWFkIiwKKy0g ICAgICAiLWZzYW5pdGl6ZS1pZ25vcmVsaXN0PSR0c2FuX2lnbm9yZWxpc3RfcGF0aCIsCisrICAg ICAgIi1mc2FuaXRpemUtYmxhY2tsaXN0PSR0c2FuX2JsYWNrbGlzdF9wYXRoIiwKKyAgICAgXQor ICAgfQorIH0KK0BAIC00MzgsOCArNDM4LDggQEAgY29uZmlnKCJ0c2FuX2ZsYWdzIikgeworIGNv bmZpZygidWJzYW5fZmxhZ3MiKSB7CisgICBjZmxhZ3MgPSBbXQorICAgaWYgKGlzX3Vic2FuKSB7 CistICAgIGlmICghZGVmaW5lZCh1YnNhbl9pZ25vcmVsaXN0X3BhdGgpKSB7CistICAgICAgdWJz YW5faWdub3JlbGlzdF9wYXRoID0KKysgICAgaWYgKCFkZWZpbmVkKHVic2FuX2JsYWNrbGlzdF9w YXRoKSkgeworKyAgICAgIHVic2FuX2JsYWNrbGlzdF9wYXRoID0KKyAgICAgICAgICAgcmViYXNl X3BhdGgoIi8vdG9vbHMvdWJzYW4vaWdub3JlbGlzdC50eHQiLCByb290X2J1aWxkX2RpcikKKyAg ICAgfQorICAgICBjZmxhZ3MgKz0gWworQEAgLTQ1Niw3ICs0NTYsNyBAQCBjb25maWcoInVic2Fu X2ZsYWdzIikgeworICAgICAgICItZnNhbml0aXplPXNpZ25lZC1pbnRlZ2VyLW92ZXJmbG93IiwK KyAgICAgICAiLWZzYW5pdGl6ZT11bnJlYWNoYWJsZSIsCisgICAgICAgIi1mc2FuaXRpemU9dmxh LWJvdW5kIiwKKy0gICAgICAiLWZzYW5pdGl6ZS1pZ25vcmVsaXN0PSR1YnNhbl9pZ25vcmVsaXN0 X3BhdGgiLAorKyAgICAgICItZnNhbml0aXplLWJsYWNrbGlzdD0kdWJzYW5fYmxhY2tsaXN0X3Bh dGgiLAorICAgICBdCisgICAgIGlmICghaXNfY2xhbmcpIHsKKyAgICAgICAjIFRoZXNlIGV4cG9z ZXMgdG9vIG11Y2ggaWxsZWdhbCBDKysxNCBjb2RlIHRvIGNvbXBpbGUgb24gYW55dGhpbmcgc3Ry aWN0ZXIgdGhhbiBjbGFuZzoKK0BAIC00OTcsOCArNDk3LDggQEAgY29uZmlnKCJ1YnNhbl9ub19y ZWNvdmVyIikgeworIAorIGNvbmZpZygidWJzYW5fc2VjdXJpdHlfZmxhZ3MiKSB7CisgICBpZiAo aXNfdWJzYW5fc2VjdXJpdHkpIHsKKy0gICAgaWYgKCFkZWZpbmVkKHVic2FuX3NlY3VyaXR5X2ln bm9yZWxpc3RfcGF0aCkpIHsKKy0gICAgICB1YnNhbl9zZWN1cml0eV9pZ25vcmVsaXN0X3BhdGgg PQorKyAgICBpZiAoIWRlZmluZWQodWJzYW5fc2VjdXJpdHlfYmxhY2tsaXN0X3BhdGgpKSB7Cisr ICAgICAgdWJzYW5fc2VjdXJpdHlfYmxhY2tsaXN0X3BhdGggPQorICAgICAgICAgICByZWJhc2Vf cGF0aCgiLy90b29scy91YnNhbi9zZWN1cml0eV9pZ25vcmVsaXN0LnR4dCIsIHJvb3RfYnVpbGRf ZGlyKQorICAgICB9CisgICAgIGNmbGFncyA9IFsKK0BAIC01MDYsNyArNTA2LDcgQEAgY29uZmln KCJ1YnNhbl9zZWN1cml0eV9mbGFncyIpIHsKKyAgICAgICAiLWZzYW5pdGl6ZT1zaGlmdCIsCisg ICAgICAgIi1mc2FuaXRpemU9c2lnbmVkLWludGVnZXItb3ZlcmZsb3ciLAorICAgICAgICItZnNh bml0aXplPXZsYS1ib3VuZCIsCistICAgICAgIi1mc2FuaXRpemUtaWdub3JlbGlzdD0kdWJzYW5f c2VjdXJpdHlfaWdub3JlbGlzdF9wYXRoIiwKKysgICAgICAiLWZzYW5pdGl6ZS1ibGFja2xpc3Q9 JHVic2FuX3NlY3VyaXR5X2JsYWNrbGlzdF9wYXRoIiwKKyAgICAgXQorICAgfQorIH0KK0BAIC01 MTksMTMgKzUxOSwxMyBAQCBjb25maWcoInVic2FuX251bGxfZmxhZ3MiKSB7CisgCisgY29uZmln KCJ1YnNhbl92cHRyX2ZsYWdzIikgeworICAgaWYgKGlzX3Vic2FuX3ZwdHIpIHsKKy0gICAgaWYg KCFkZWZpbmVkKHVic2FuX3ZwdHJfaWdub3JlbGlzdF9wYXRoKSkgeworLSAgICAgIHVic2FuX3Zw dHJfaWdub3JlbGlzdF9wYXRoID0KKysgICAgaWYgKCFkZWZpbmVkKHVic2FuX3ZwdHJfYmxhY2ts aXN0X3BhdGgpKSB7CisrICAgICAgdWJzYW5fdnB0cl9ibGFja2xpc3RfcGF0aCA9CisgICAgICAg ICAgIHJlYmFzZV9wYXRoKCIvL3Rvb2xzL3Vic2FuL3ZwdHJfaWdub3JlbGlzdC50eHQiLCByb290 X2J1aWxkX2RpcikKKyAgICAgfQorICAgICBjZmxhZ3MgPSBbCisgICAgICAgIi1mc2FuaXRpemU9 dnB0ciIsCistICAgICAgIi1mc2FuaXRpemUtaWdub3JlbGlzdD0kdWJzYW5fdnB0cl9pZ25vcmVs aXN0X3BhdGgiLAorKyAgICAgICItZnNhbml0aXplLWJsYWNrbGlzdD0kdWJzYW5fdnB0cl9ibGFj a2xpc3RfcGF0aCIsCisgICAgIF0KKyAgICAgaWYgKCFpc19jbGFuZykgeworICAgICAgICMgQ2xh bmcgc3BlY2lmaWMgZmxhZzoKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9idWlsZF9vdmVy cmlkZXMvYnVpbGQuZ25pCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vYnVpbGRfb3ZlcnJp ZGVzL2J1aWxkLmduaQorQEAgLTQzLDE1ICs0MywxNSBAQCBkZWNsYXJlX2FyZ3MoKSB7CisgIyBB bGxvd3MgZGlmZmVyZW50IHByb2plY3RzIHRvIHNwZWNpZnkgdGhlaXIgb3duIHN1cHByZXNzaW9u L2lnbm9yZSBsaXN0cyBmb3IKKyAjIHNhbml0aXplciB0b29scy4KKyAjIGFzYW5fc3VwcHJlc3Np b25zX2ZpbGUgPSAicGF0aC90by9hc2FuX3N1cHByZXNzaW9ucy5jYyIKKy0jIGFzYW5fd2luX2ln bm9yZWxpc3RfcGF0aCA9ICJwYXRoL3RvL2FzYW4vYmxvY2tsaXN0X3dpbi50eHQiCisrIyBhc2Fu X3dpbl9ibGFja2xpc3RfcGF0aCA9ICJwYXRoL3RvL2FzYW4vYmxvY2tsaXN0X3dpbi50eHQiCisg IyBsc2FuX3N1cHByZXNzaW9uc19maWxlID0gInBhdGgvdG8vbHNhbl9zdXBwcmVzc2lvbnMuY2Mi CisgIyB0c2FuX3N1cHByZXNzaW9uc19maWxlID0gInBhdGgvdG8vdHNhbl9zdXBwcmVzc2lvbnMu Y2MiCistIyB0c2FuX2lnbm9yZWxpc3RfcGF0aCA9ICJwYXRoL3RvL3RzYW4vaWdub3Jlcy50eHQi CistIyBtc2FuX2lnbm9yZWxpc3RfcGF0aCA9ICJwYXRoL3RvL21zYW4vaWdub3JlbGlzdC50eHQi CistIyB1YnNhbl9pZ25vcmVsaXN0X3BhdGggPSAicGF0aC90by91YnNhbi9pZ25vcmVsaXN0LnR4 dCIKKy0jIHVic2FuX3ZwdHJfaWdub3JlbGlzdF9wYXRoID0gInBhdGgvdG8vdWJzYW4vdnB0cl9p Z25vcmVsaXN0LnR4dCIKKy0jIHVic2FuX3NlY3VyaXR5X2lnbm9yZWxpc3RfcGF0aCA9ICJwYXRo L3RvL3Vic2FuL3NlY3VyaXR5X2lnbm9yZWxpc3QudHh0IgorLSMgY2ZpX2lnbm9yZWxpc3RfcGF0 aCA9ICJwYXRoL3RvL2NmaS9pZ25vcmVzLnR4dCIKKysjIHRzYW5fYmxhY2tsaXN0X3BhdGggPSAi cGF0aC90by90c2FuL2lnbm9yZXMudHh0IgorKyMgbXNhbl9ibGFja2xpc3RfcGF0aCA9ICJwYXRo L3RvL21zYW4vYmxhY2tsaXN0LnR4dCIKKysjIHVic2FuX2JsYWNrbGlzdF9wYXRoID0gInBhdGgv dG8vdWJzYW4vYmxhY2tsaXN0LnR4dCIKKysjIHVic2FuX3ZwdHJfYmxhY2tsaXN0X3BhdGggPSAi cGF0aC90by91YnNhbi92cHRyX2JsYWNrbGlzdC50eHQiCisrIyB1YnNhbl9zZWN1cml0eV9ibGFj a2xpc3RfcGF0aCA9ICJwYXRoL3RvL3Vic2FuL3NlY3VyaXR5X2JsYWNrbGlzdC50eHQiCisrIyBj ZmlfYmxhY2tsaXN0X3BhdGggPSAicGF0aC90by9jZmkvaWdub3Jlcy50eHQiCisgCisgZGVjbGFy ZV9hcmdzKCkgeworICAgIyBBbmRyb2lkIDMyLWJpdCBub24tY29tcG9uZW50LCBub24tY2xhbmcg YnVpbGRzIGNhbm5vdCBoYXZlIHN5bWJvbF9sZXZlbD0yCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0 Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA1LWNocm9taXVtLXJldmVydC1kcm9wLW9mLXN5c3RlbS1q YXZhLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwNS1jaHJvbWl1bS1y ZXZlcnQtZHJvcC1vZi1zeXN0ZW0tamF2YS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMDAuLjQ0ZjNhYThmYWU1ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv cXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDUtY2hyb21pdW0tcmV2ZXJ0LWRyb3Atb2Ytc3lzdGVt LWphdmEucGF0Y2gKQEAgLTAsMCArMSwxNSBAQAorVGhpcyB3YXMgZHJvcHBlZCBmb3Igc29tZSBy ZWFzb24gaW4gNjk1MWMzN2NlY2QwNTk3OWIyMzJhMzllNWMxMGU2MzQ2YTBmNzRlZgorLS0tIGEv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Nsb3N1cmVfY29tcGlsZXIvY29tcGls ZXIucHkKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jbG9zdXJlX2Nv bXBpbGVyL2NvbXBpbGVyLnB5CitAQCAtMTMsOCArMTMsOSBAQCBpbXBvcnQgc3VicHJvY2Vzcwor IAorIAorIF9DVVJSRU5UX0RJUiA9IG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxl X18pKQorLV9KQVZBX1BBVEggPSBvcy5wYXRoLmpvaW4oX0NVUlJFTlRfRElSLCAiLi4iLCAiamRr IiwgImN1cnJlbnQiLCAiYmluIiwgImphdmEiKQorLWFzc2VydCBvcy5wYXRoLmlzZmlsZShfSkFW QV9QQVRIKSwgImphdmEgb25seSBhbGxvd2VkIGluIGFuZHJvaWQgYnVpbGRzIgorK19KQVZBX0JJ TiA9ICJqYXZhIgorK19KREtfUEFUSCA9IG9zLnBhdGguam9pbihfQ1VSUkVOVF9ESVIsICIuLiIs ICJqZGsiLCAiY3VycmVudCIsICJiaW4iLCAiamF2YSIpCisrX0pBVkFfUEFUSCA9IF9KREtfUEFU SCBpZiBvcy5wYXRoLmlzZmlsZShfSkRLX1BBVEgpIGVsc2UgX0pBVkFfQklOCisgCisgY2xhc3Mg Q29tcGlsZXIob2JqZWN0KToKKyAgICIiIlJ1bnMgdGhlIENsb3N1cmUgY29tcGlsZXIgb24gZ2l2 ZW4gc291cmNlIGZpbGVzIHRvIHR5cGVjaGVjayB0aGVtCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0 Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA2LWNocm9taXVtLXN5c3RlbS1ub2RlanMucGF0Y2ggYi9z cmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA2LWNocm9taXVtLXN5c3RlbS1ub2RlanMu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4xZTA2N2NjNmVk YTAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA2 LWNocm9taXVtLXN5c3RlbS1ub2RlanMucGF0Y2gKQEAgLTAsMCArMSwyMCBAQAorLS0tIGEvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L25vZGUvbm9kZS5weQorKysrIGIvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L25vZGUvbm9kZS5weQorQEAgLTM2LDExICszNiwx MiBAQCBkZWYgR2V0QmluYXJ5UGF0aCgpOgorICAgaWYgcGxhdGZvcm0uc3lzdGVtKCkgPT0gJ0Rh cndpbicgYW5kIHBsYXRmb3JtLm1hY2hpbmUoKSA9PSAnYXJtNjQnOgorICAgICAgIHJldHVybiBv cy5wYXRoLmpvaW4ob3NfcGF0aC5qb2luKG9zX3BhdGguZGlybmFtZShfX2ZpbGVfXyksICdtYWMn LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25vZGUtZGFyd2luLWFybTY0JywgJ2Jpbics ICdub2RlJykpCistICByZXR1cm4gb3NfcGF0aC5qb2luKG9zX3BhdGguZGlybmFtZShfX2ZpbGVf XyksICp7CistICAgICdEYXJ3aW4nOiAoJ21hYycsICdub2RlLWRhcndpbi14NjQnLCAnYmluJywg J25vZGUnKSwKKy0gICAgJ0xpbnV4JzogKCdsaW51eCcsICdub2RlLWxpbnV4LXg2NCcsICdiaW4n LCAnbm9kZScpLAorLSAgICAnV2luZG93cyc6ICgnd2luJywgJ25vZGUuZXhlJyksCistICB9W3Bs YXRmb3JtLnN5c3RlbSgpXSkKKysgIHJldHVybiAiL3Vzci9iaW4vbm9kZSIKKysgICNyZXR1cm4g b3NfcGF0aC5qb2luKG9zX3BhdGguZGlybmFtZShfX2ZpbGVfXyksICp7CisrICAjICAnRGFyd2lu JzogKCdtYWMnLCAnbm9kZS1kYXJ3aW4teDY0JywgJ2JpbicsICdub2RlJyksCisrICAjICAnTGlu dXgnOiAoJ2xpbnV4JywgJ25vZGUtbGludXgteDY0JywgJ2JpbicsICdub2RlJyksCisrICAjICAn V2luZG93cyc6ICgnd2luJywgJ25vZGUuZXhlJyksCisrICAjfVtwbGF0Zm9ybS5zeXN0ZW0oKV0p CisgCisgCisgZGVmIFJ1bk5vZGUoY21kX3BhcnRzLCBzdGRvdXQ9Tm9uZSk6CmRpZmYgLS1naXQg YS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA3LWNocm9taXVtLWN1cnNlZF5Vc2Nv cGVkX2ZpbGUucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA3LWNocm9t aXVtLWN1cnNlZF5Vc2NvcGVkX2ZpbGUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwLi5hOGY1ZDk3MTg4M2QKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0 Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA3LWNocm9taXVtLWN1cnNlZF5Vc2NvcGVkX2ZpbGUucGF0 Y2gKQEAgLTAsMCArMSwxOCBAQAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jhc2UvZmls ZXMvc2NvcGVkX2ZpbGVfbGludXguY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNl L2ZpbGVzL3Njb3BlZF9maWxlX2xpbnV4LmNjCitAQCAtNzcsMTUgKzc3LDMgQEAgYm9vbCBJc0ZE T3duZWQoaW50IGZkKSB7CisgfQorIAorIH0gIC8vIG5hbWVzcGFjZSBiYXNlCistCistZXh0ZXJu ICJDIiB7CistCistaW50IF9fY2xvc2UoaW50KTsKKy0KKy1fX2F0dHJpYnV0ZV9fKCh2aXNpYmls aXR5KCJkZWZhdWx0IiksIG5vaW5saW5lKSkgaW50IGNsb3NlKGludCBmZCkgeworLSAgaWYgKGJh c2U6OklzRkRPd25lZChmZCkgJiYgZ19pc19vd25lcnNoaXBfZW5mb3JjZWQpCistICAgIENyYXNo T25GZE93bmVyc2hpcFZpb2xhdGlvbigpOworLSAgcmV0dXJuIF9fY2xvc2UoZmQpOworLX0KKy0K Ky19ICAvLyBleHRlcm4gIkMiCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0 Y2hlcy8wMTA4LWNocm9taXVtLWZpeC1uYXJyb3dpbmctY2FzdC5wYXRjaCBiL3NyY3BrZ3MvcXQ2 LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDgtY2hyb21pdW0tZml4LW5hcnJvd2luZy1jYXN0LnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZWQzMmNkOWI3NDE1Ci0t LSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwOC1jaHJv bWl1bS1maXgtbmFycm93aW5nLWNhc3QucGF0Y2gKQEAgLTAsMCArMSw1MyBAQAorLS0tIGEvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL2Jhc2UvZmlsZXMvZmlsZV91dGlsX2xpbnV4LmNjCisrKysgYi9z cmMvM3JkcGFydHkvY2hyb21pdW0vYmFzZS9maWxlcy9maWxlX3V0aWxfbGludXguY2MKK0BAIC0y MywxNCArMjMsMTQgQEAgYm9vbCBHZXRGaWxlU3lzdGVtVHlwZShjb25zdCBGaWxlUGF0aCYgcAor IAorICAgLy8gTm90IGFsbCBwb3NzaWJsZSB8c3RhdGZzX2J1Zi5mX3R5cGV8IHZhbHVlcyBhcmUg aW4gbGludXgvbWFnaWMuaC4KKyAgIC8vIE1pc3NpbmcgdmFsdWVzIGFyZSBjb3BpZWQgZnJvbSB0 aGUgc3RhdGZzIG1hbiBwYWdlLgorLSAgc3dpdGNoIChzdGF0ZnNfYnVmLmZfdHlwZSkgeworKyAg c3dpdGNoIChzdGF0aWNfY2FzdDx1aW50bWF4X3Q+KHN0YXRmc19idWYuZl90eXBlKSkgeworICAg ICBjYXNlIDA6CisgICAgICAgKnR5cGUgPSBGSUxFX1NZU1RFTV8wOworICAgICAgIGJyZWFrOwor ICAgICBjYXNlIEVYVDJfU1VQRVJfTUFHSUM6ICAvLyBBbHNvIGV4dDMgYW5kIGV4dDQKKyAgICAg Y2FzZSBNU0RPU19TVVBFUl9NQUdJQzoKKyAgICAgY2FzZSBSRUlTRVJGU19TVVBFUl9NQUdJQzoK Ky0gICAgY2FzZSBzdGF0aWNfY2FzdDxpbnQ+KEJUUkZTX1NVUEVSX01BR0lDKToKKysgICAgY2Fz ZSBCVFJGU19TVVBFUl9NQUdJQzoKKyAgICAgY2FzZSAweDUzNDY1NDRFOiAgLy8gTlRGUworICAg ICBjYXNlIDB4NTg0NjUzNDI6ICAvLyBYRlMKKyAgICAgY2FzZSAweDMxNTM0NjRBOiAgLy8gSkZT CitAQCAtNDAsMTQgKzQwLDE0IEBAIGJvb2wgR2V0RmlsZVN5c3RlbVR5cGUoY29uc3QgRmlsZVBh dGgmIHAKKyAgICAgICAqdHlwZSA9IEZJTEVfU1lTVEVNX05GUzsKKyAgICAgICBicmVhazsKKyAg ICAgY2FzZSBTTUJfU1VQRVJfTUFHSUM6CistICAgIGNhc2Ugc3RhdGljX2Nhc3Q8aW50PigweEZG NTM0RDQyKTogIC8vIENJRlMKKysgICAgY2FzZSAweEZGNTM0RDQyOiAgLy8gQ0lGUworICAgICAg ICp0eXBlID0gRklMRV9TWVNURU1fU01COworICAgICAgIGJyZWFrOworICAgICBjYXNlIENPREFf U1VQRVJfTUFHSUM6CisgICAgICAgKnR5cGUgPSBGSUxFX1NZU1RFTV9DT0RBOworICAgICAgIGJy ZWFrOworLSAgICBjYXNlIHN0YXRpY19jYXN0PGludD4oSFVHRVRMQkZTX01BR0lDKToKKy0gICAg Y2FzZSBzdGF0aWNfY2FzdDxpbnQ+KFJBTUZTX01BR0lDKToKKysgICAgY2FzZSBIVUdFVExCRlNf TUFHSUM6CisrICAgIGNhc2UgUkFNRlNfTUFHSUM6CisgICAgIGNhc2UgVE1QRlNfTUFHSUM6Cisg ICAgICAgKnR5cGUgPSBGSUxFX1NZU1RFTV9NRU1PUlk7CisgICAgICAgYnJlYWs7CistLS0gYS9z cmMvM3JkcGFydHkvY2hyb21pdW0vYmFzZS9zeXN0ZW0vc3lzX2luZm9fcG9zaXguY2MKKysrKyBi L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL3N5c3RlbS9zeXNfaW5mb19wb3NpeC5jYworQEAg LTEwMCwxMCArMTAwLDEwIEBAIGJvb2wgSXNTdGF0c1plcm9JZlVubGltaXRlZChjb25zdCBiYXNl OjoKKyAgIGlmIChIQU5ETEVfRUlOVFIoc3RhdGZzKHBhdGgudmFsdWUoKS5jX3N0cigpLCAmc3Rh dHMpKSAhPSAwKQorICAgICByZXR1cm4gZmFsc2U7CisgCistICBzd2l0Y2ggKHN0YXRzLmZfdHlw ZSkgeworKyAgc3dpdGNoIChzdGF0aWNfY2FzdDx1aW50bWF4X3Q+KHN0YXRzLmZfdHlwZSkpIHsK KyAgICAgY2FzZSBUTVBGU19NQUdJQzoKKy0gICAgY2FzZSBzdGF0aWNfY2FzdDxpbnQ+KEhVR0VU TEJGU19NQUdJQyk6CistICAgIGNhc2Ugc3RhdGljX2Nhc3Q8aW50PihSQU1GU19NQUdJQyk6Cisr ICAgIGNhc2UgSFVHRVRMQkZTX01BR0lDOgorKyAgICBjYXNlIFJBTUZTX01BR0lDOgorICAgICAg IHJldHVybiB0cnVlOworICAgfQorICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwOS1jaHJvbWl1bS1yZW1vdmUtc3RyaXBfYmluYXJ5 LnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwOS1jaHJvbWl1bS1yZW1v dmUtc3RyaXBfYmluYXJ5LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwMC4uNWViZDE2ZTY1OWFmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5n aW5lL3BhdGNoZXMvMDEwOS1jaHJvbWl1bS1yZW1vdmUtc3RyaXBfYmluYXJ5LnBhdGNoCkBAIC0w LDAgKzEsMzIgQEAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9jaHJvbWUvdGVzdC9jaHJv bWVkcml2ZXIvQlVJTEQuZ24KKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9jaHJvbWUvdGVz dC9jaHJvbWVkcml2ZXIvQlVJTEQuZ24KK0BAIC0zMDgsMTEgKzMwOCw3IEBAIHNvdXJjZV9zZXQo ImxpYiIpIHsKKyAgIH0KKyB9CisgCistaWYgKGlzX2xpbnV4KSB7CistICBjaHJvbWVkcml2ZXJf b3V0cHV0ID0gImNocm9tZWRyaXZlci51bnN0cmlwcGVkIgorLX0gZWxzZSB7CistICBjaHJvbWVk cml2ZXJfb3V0cHV0ID0gImNocm9tZWRyaXZlciIKKy19CisrY2hyb21lZHJpdmVyX291dHB1dCA9 ICJjaHJvbWVkcml2ZXIiCisgCisgZXhlY3V0YWJsZSgiJGNocm9tZWRyaXZlcl9vdXRwdXQiKSB7 CisgICB0ZXN0b25seSA9IHRydWUKK0BAIC0zMzYsMTYgKzMzMiw2IEBAIGV4ZWN1dGFibGUoIiRj aHJvbWVkcml2ZXJfb3V0cHV0IikgeworICAgfQorIH0KKyAKKy1pZiAoaXNfbGludXgpIHsKKy0g IHN0cmlwX2JpbmFyeSgiY2hyb21lZHJpdmVyIikgeworLSAgICB0ZXN0b25seSA9IHRydWUKKy0g ICAgYmluYXJ5X2lucHV0ID0gIiRyb290X291dF9kaXIvJGNocm9tZWRyaXZlcl9vdXRwdXQiCist ICAgIHN5bWJvbF9vdXRwdXQgPSAiJHJvb3Rfb3V0X2Rpci9jaHJvbWVkcml2ZXIuZGVidWciCist ICAgIHN0cmlwcGVkX2JpbmFyeV9vdXRwdXQgPSAiJHJvb3Rfb3V0X2Rpci9jaHJvbWVkcml2ZXIi CistICAgIGRlcHMgPSBbICI6JGNocm9tZWRyaXZlcl9vdXRwdXQiIF0KKy0gIH0KKy19CistCisg cHl0aG9uX2xpYnJhcnkoImNocm9tZWRyaXZlcl9weV90ZXN0cyIpIHsKKyAgIHRlc3Rvbmx5ID0g dHJ1ZQorICAgZGVwcyA9IFsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRj aGVzLzAxMTAtY2hyb21pdW0tcmV2ZXJ0LXVzZS1mZmlsZS1jb21waWxhdGlvbi1kaXIucGF0Y2gg Yi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTEwLWNocm9taXVtLXJldmVydC11c2Ut ZmZpbGUtY29tcGlsYXRpb24tZGlyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMC4uYTAwZjdlYTgwZjdhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYt d2ViZW5naW5lL3BhdGNoZXMvMDExMC1jaHJvbWl1bS1yZXZlcnQtdXNlLWZmaWxlLWNvbXBpbGF0 aW9uLWRpci5wYXRjaApAQCAtMCwwICsxLDU3IEBACitGcm9tIDM0YTk1NTgyMzYzMDA5NmY1YjAx YzJiMDFkNTFjMWVhNTlkMjI3NjMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBaZXF1 YW4gV3UgPHplcXVhbnd1QGdvb2dsZS5jb20+CitEYXRlOiBUdWUsIDIwIEp1bCAyMDIxIDE0OjEz OjUwICswMDAwCitTdWJqZWN0OiBbUEFUQ0hdIFVzZSAtZmZpbGUtY29tcGlsYXRpb24tZGlyPSBp bnN0ZWFkIG9mCisgLWZkZWJ1Zy1jb21waWxhdGlvbi1kaXI9CisKK0J1ZzogMTAxMDI2NworQ2hh bmdlLUlkOiBJZjJiNGVhZDg1MzVhNzY0OTBlYjQ2NmEzOGUzZDhmZWQ2ZWE5MTA3OQorUmV2aWV3 ZWQtb246IGh0dHBzOi8vY2hyb21pdW0tcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20vYy9jaHJvbWl1 bS9zcmMvKy8yNzcwNzM4CitBdXRvLVN1Ym1pdDogWmVxdWFuIFd1IDx6ZXF1YW53dUBnb29nbGUu Y29tPgorQ29tbWl0LVF1ZXVlOiBOaWNvIFdlYmVyIDx0aGFraXNAY2hyb21pdW0ub3JnPgorUmV2 aWV3ZWQtYnk6IE5pY28gV2ViZXIgPHRoYWtpc0BjaHJvbWl1bS5vcmc+CitDci1Db21taXQtUG9z aXRpb246IHJlZnMvaGVhZHMvbWFzdGVyQHsjOTAzNDU2fQorLS0tIGEvc3JjLzNyZHBhcnR5L2No cm9taXVtL2J1aWxkL2NvbmZpZy9jb21waWxlci9CVUlMRC5nbgorKysrIGIvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL2J1aWxkL2NvbmZpZy9jb21waWxlci9CVUlMRC5nbgorQEAgLTEyNjksMTkgKzEy NjksMTIgQEAgY29uZmlnKCJjb21waWxlcl9kZXRlcm1pbmlzdGljIikgeworICAgICAjIGRpZmZl cmVudCBidWlsZCBkaXJlY3RvcnkgbGlrZSAib3V0L2ZlYXR1cmVfYSIgYW5kICJvdXQvZmVhdHVy ZV9iIiBpZgorICAgICAjIHdlIGJ1aWxkIHNhbWUgZmlsZXMgd2l0aCBzYW1lIGNvbXBpbGUgZmxh Zy4KKyAgICAgIyBPdGhlciBwYXRocyBhcmUgYWxyZWFkeSBnaXZlbiBpbiByZWxhdGl2ZSwgbm8g bmVlZCB0byBub3JtYWxpemUgdGhlbS4KKy0gICAgaWYgKGlzX25hY2wpIHsKKy0gICAgICAjIFRP RE8oaHR0cHM6Ly9jcmJ1Zy5jb20vMTIzMTIzNik6IFVzZSAtZmZpbGUtY29tcGlsYXRpb24tZGly PSBoZXJlLgorLSAgICAgIGNmbGFncyArPSBbCistICAgICAgICAiLVhjbGFuZyIsCistICAgICAg ICAiLWZkZWJ1Zy1jb21waWxhdGlvbi1kaXIiLAorLSAgICAgICAgIi1YY2xhbmciLAorLSAgICAg ICAgIi4iLAorLSAgICAgIF0KKy0gICAgfSBlbHNlIHsKKy0gICAgICAjIC1mZmlsZS1jb21waWxh dGlvbi1kaXIgaXMgYW4gYWxpYXMgZm9yIGJvdGggLWZkZWJ1Zy1jb21waWxhdGlvbi1kaXI9Cist ICAgICAgIyBhbmQgLWZjb3ZlcmFnZS1jb21waWxhdGlvbi1kaXI9LgorLSAgICAgIGNmbGFncyAr PSBbICItZmZpbGUtY29tcGlsYXRpb24tZGlyPS4iIF0KKy0gICAgfQorKyAgICBjZmxhZ3MgKz0g WworKyAgICAgICItWGNsYW5nIiwKKysgICAgICAiLWZkZWJ1Zy1jb21waWxhdGlvbi1kaXIiLAor KyAgICAgICItWGNsYW5nIiwKKysgICAgICAiLiIsCisrICAgIF0KKyAgICAgaWYgKCFpc193aW4p IHsKKyAgICAgICAjIFdlIGRvbid0IHVzZSBjbGFuZyAtY2MxYXMgb24gV2luZG93cyAoeWV0PyBo dHRwczovL2NyYnVnLmNvbS83NjIxNjcpCisgICAgICAgYXNtZmxhZ3MgPSBbICItV2EsLWZkZWJ1 Zy1jb21waWxhdGlvbi1kaXIsLiIgXQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2J1aWxk L2NvbmZpZy9jb21waWxlci9jb21waWxlci5nbmkKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS9idWlsZC9jb25maWcvY29tcGlsZXIvY29tcGlsZXIuZ25pCitAQCAtMjI4LDggKzIyOCwxMSBA QCBkZWNsYXJlX2FyZ3MoKSB7CisgIyBkZXRlcm1pbmlzdGljIGJ1aWxkcyB0byByZWR1Y2UgY29t cGlsZSB0aW1lcywgc28gdGhpcyBpcyBsZXNzIHJlbGV2YW50IGZvcgorICMgb2ZmaWNpYWwgYnVp bGRlcnMuCisgc3RyaXBfYWJzb2x1dGVfcGF0aHNfZnJvbV9kZWJ1Z19zeW1ib2xzX2RlZmF1bHQg PQorLSAgICBpc19hbmRyb2lkIHx8IGlzX2Z1Y2hzaWEgfHwgaXNfbmFjbCB8fCAoaXNfd2luICYm IHVzZV9sbGQpIHx8IGlzX2xpbnV4IHx8CistICAgIGlzX2Nocm9tZW9zIHx8IChpc19hcHBsZSAm JiAhZW5hYmxlX2RzeW1zKQorKyAgICAjIFRPRE8oY3JidWcuY29tLzEwMTAyNjcpOiByZW1vdmUg JyF1c2VfY2xhbmdfY292ZXJhZ2UnLCBjb3ZlcmFnZSBidWlsZCBoYXMKKysgICAgIyBkZXBlbmRl bmN5IHRvIGFic29sdXRlIHBhdGggb2Ygc291cmNlIGZpbGVzLgorKyAgICAhdXNlX2NsYW5nX2Nv dmVyYWdlICYmCisrICAgIChpc19hbmRyb2lkIHx8IGlzX2Z1Y2hzaWEgfHwgaXNfbmFjbCB8fCAo aXNfd2luICYmIHVzZV9sbGQpIHx8IGlzX2xpbnV4IHx8CisrICAgICBpc19jaHJvbWVvcyB8fCAo aXNfYXBwbGUgJiYgIWVuYWJsZV9kc3ltcykpCisgCisgZGVjbGFyZV9hcmdzKCkgeworICAgc3Ry aXBfYWJzb2x1dGVfcGF0aHNfZnJvbV9kZWJ1Z19zeW1ib2xzID0gc3RyaXBfYWJzb2x1dGVfcGF0 aHNfZnJvbV9kZWJ1Z19zeW1ib2xzX2RlZmF1bHQKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdl YmVuZ2luZS9wYXRjaGVzLzAxMTEtY2hyb21pdW0tbm8tV25vLXN0cmluZ29wLW92ZXJyZWFkLnBh dGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDExMS1jaHJvbWl1bS1uby1Xbm8t c3RyaW5nb3Atb3ZlcnJlYWQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwLi4wM2VhYzNmOGUwNjcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJl bmdpbmUvcGF0Y2hlcy8wMTExLWNocm9taXVtLW5vLVduby1zdHJpbmdvcC1vdmVycmVhZC5wYXRj aApAQCAtMCwwICsxLDEwIEBACistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vYnVpbGQvY29u ZmlnL2NvbXBpbGVyL0JVSUxELmduCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vYnVpbGQv Y29uZmlnL2NvbXBpbGVyL0JVSUxELmduCitAQCAtMzk0LDcgKzM5NCw2IEBAIGNvbmZpZygiY29t cGlsZXIiKSB7CisgICAgICAgICAiLVduby1wYXJlbnRoZXNlcyIsCisgICAgICAgICAiLVduby1z aWduLWNvbXBhcmUiLCAjIGZpZG8KKyAgICAgICAgICItV25vLXN0cmluZ29wLW92ZXJmbG93Iiwg IyBza2lhLCBsaWJhb20sIHByb3RvYnVmLCBpY3UKKy0gICAgICAgICItV25vLXN0cmluZ29wLW92 ZXJyZWFkIiwgIyBsaWJhb20KKyAgICAgICAgICItV25vLXBzYWJpIiwgIyBza2lhCisgICAgICAg ICAiLVduby1tdWx0aWNoYXIiLCAjIGNyYXNocGFkCisgICAgICAgICAiLVduby1mb3JtYXQtemVy by1sZW5ndGgiLCAjIHVzZXJfYWdlbnQuY2MKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVu Z2luZS9wYXRjaGVzLzAxNTAtY2hyb21pdW0tZ2xpYmMtbGliY19tYWxsb2MucGF0Y2ggYi9zcmNw a2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTUwLWNocm9taXVtLWdsaWJjLWxpYmNfbWFsbG9j LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uN2UxYjY2ZTVj NzNkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDE1 MC1jaHJvbWl1bS1nbGliYy1saWJjX21hbGxvYy5wYXRjaApAQCAtMCwwICsxLDI0IEBACistLS0g YS9zcmMvM3JkcGFydHkvY2hyb21pdW0vYmFzZS9wcm9jZXNzL21lbW9yeV9saW51eC5jYworKysr IGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jhc2UvcHJvY2Vzcy9tZW1vcnlfbGludXguY2MKK0BA IC0yMyw2ICsyMywxMiBAQAorICNpbmNsdWRlICJ0aGlyZF9wYXJ0eS90Y21hbGxvYy9jaHJvbWl1 bS9zcmMvZ3BlcmZ0b29scy90Y21hbGxvYy5oIgorICNlbmRpZgorIAorKyNpZiBkZWZpbmVkKExJ QkNfR0xJQkMpCisrZXh0ZXJuICJDIiB7CisrZXh0ZXJuIHZvaWQgKl9fbGliY19tYWxsb2Moc2l6 ZV90IHNpemUpOworK30KKysjZW5kaWYKKysKKyBuYW1lc3BhY2UgYmFzZSB7CisgCisgbmFtZXNw YWNlIHsKK0BAIC0xMjAsNyArMTI2LDcgQEAgYm9vbCBVbmNoZWNrZWRNYWxsb2Moc2l6ZV90IHNp emUsIHZvaWQqKgorICAgICAoIWRlZmluZWQoTElCQ19HTElCQykgJiYgIUJVSUxERkxBRyhVU0Vf VENNQUxMT0MpKQorICAgKnJlc3VsdCA9IG1hbGxvYyhzaXplKTsKKyAjZWxpZiBkZWZpbmVkKExJ QkNfR0xJQkMpICYmICFCVUlMREZMQUcoVVNFX1RDTUFMTE9DKQorLSAgKnJlc3VsdCA9IF9fbGli Y19tYWxsb2Moc2l6ZSk7CisrICAqcmVzdWx0ID0gOjpfX2xpYmNfbWFsbG9jKHNpemUpOworICNl bGlmIEJVSUxERkxBRyhVU0VfVENNQUxMT0MpCisgICAqcmVzdWx0ID0gdGNfbWFsbG9jX3NraXBf bmV3X2hhbmRsZXIoc2l6ZSk7CisgI2VuZGlmCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJl bmdpbmUvcGF0Y2hlcy8wMjAwLWNocm9taXVtLW11c2wtaW5jbHVkZS1zeXMtcmVnLmgtdG8tZ2V0 LV9fV09SRFNJWkUucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjAwLWNo cm9taXVtLW11c2wtaW5jbHVkZS1zeXMtcmVnLmgtdG8tZ2V0LV9fV09SRFNJWkUucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi40MWI5MDA3MWI1ZTQKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjAwLWNocm9taXVt LW11c2wtaW5jbHVkZS1zeXMtcmVnLmgtdG8tZ2V0LV9fV09SRFNJWkUucGF0Y2gKQEAgLTAsMCAr MSwyMSBAQAorRnJvbSA5MDAxYzU0ZDZiOTc0NDQ5MTc0YThjZWU4ZjNmNWQ3OGE5YmQ2YzllIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRmVsaXggSmFuZGEgPGZlbGl4LmphbmRhQHBv c3Rlby5kZT4KK0RhdGU6IFN1biwgMSBGZWIgMjAxNSAxNDoyNjo1MiArMDEwMAorU3ViamVjdDog W1BBVENIIDMvNl0gaW5jbHVkZSA8c3lzL3JlZy5oPiB0byBnZXQgX19XT1JEU0laRSBvbiBtdXNs IGxpYmMKKworLS0tCisgcXR3ZWJlbmdpbmUvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3Bh cnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbGludXgvZWxmX2NvcmVfZHVtcC5oIHwg MSArCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCisKKy0tLSBhL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY29tbW9uL2xpbnV4 L2VsZl9jb3JlX2R1bXAuaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbGludXgvZWxmX2NvcmVfZHVtcC5oCitAQCAt MzcsNiArMzcsOSBAQAorICNpbmNsdWRlIDxsaW1pdHMuaD4KKyAjaW5jbHVkZSA8bGluay5oPgor ICNpbmNsdWRlIDxzdGRkZWYuaD4KKysjaWZuZGVmIF9fR0xJQkNfXworKyNpbmNsdWRlIDxzeXMv cmVnLmg+CisrI2VuZGlmCisgCisgI2luY2x1ZGUgImNvbW1vbi9tZW1vcnlfcmFuZ2UuaCIKKyAK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDEtY2hyb21pdW0t bXVzbC1kaXNwYXRjaC10by1tdXNsLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNo ZXMvMDIwMS1jaHJvbWl1bS1tdXNsLWRpc3BhdGNoLXRvLW11c2wucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5hNThhNjg4YTRiNTUKLS0tIC9kZXYvbnVsbAor KysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjAxLWNocm9taXVtLW11c2wtZGlz cGF0Y2gtdG8tbXVzbC5wYXRjaApAQCAtMCwwICsxLDEwMyBAQAorLS0tIGEvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL2Jhc2UvYWxsb2NhdG9yL2FsbG9jYXRvcl9zaGltX2RlZmF1bHRfZGlzcGF0Y2hf dG9fZ2xpYmMuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL2FsbG9jYXRvci9h bGxvY2F0b3Jfc2hpbV9kZWZhdWx0X2Rpc3BhdGNoX3RvX2dsaWJjLmNjCitAQCAtOCw2ICs4LDcg QEAKKyAjaW5jbHVkZSA8ZGxmY24uaD4KKyAjaW5jbHVkZSA8bWFsbG9jLmg+CisgCisrI2lmIGRl ZmluZWQoX19HTElCQ19fKQorIC8vIFRoaXMgdHJhbnNsYXRpb24gdW5pdCBkZWZpbmVzIGEgZGVm YXVsdCBkaXNwYXRjaCBmb3IgdGhlIGFsbG9jYXRvciBzaGltIHdoaWNoCisgLy8gcm91dGVzIGFs bG9jYXRpb25zIHRvIGxpYmMgZnVuY3Rpb25zLgorIC8vIFRoZSBjb2RlIGhlcmUgaXMgc3Ryb25n bHkgaW5zcGlyZWQgZnJvbSB0Y21hbGxvYydzIGxpYmNfb3ZlcnJpZGVfZ2xpYmMuaC4KK0BAIC04 NywzICs4OCw5MiBAQCBjb25zdCBBbGxvY2F0b3JEaXNwYXRjaCBBbGxvY2F0b3JEaXNwYXRjCisg ICAgIG51bGxwdHIsICAgICAgICAgICAgICAgLyogYWxpZ25lZF9mcmVlX2Z1bmN0aW9uICovCisg ICAgIG51bGxwdHIsICAgICAgICAgICAgICAgLyogbmV4dCAqLworIH07CisrCisrI2Vsc2UgLy8g ZGVmaW5lZChfX0dMSUJDX18pCisrCisrI2luY2x1ZGUgPGRsZmNuLmg+CisrCisrZXh0ZXJuICJD IiB7CisrLy8gRGVjbGFyZSBmdW5jdGlvbiBwb2ludGVycyB0byB0aGUgbWVtb3J5IGZ1bmN0aW9u cworK3R5cGVkZWYgdm9pZCogKCp0X2xpYmNfbWFsbG9jKShzaXplX3Qgc2l6ZSk7CisrdHlwZWRl ZiB2b2lkKiAoKnRfbGliY19jYWxsb2MpKHNpemVfdCBuLCBzaXplX3Qgc2l6ZSk7CisrdHlwZWRl ZiB2b2lkKiAoKnRfbGliY19yZWFsbG9jKSh2b2lkKiBhZGRyZXNzLCBzaXplX3Qgc2l6ZSk7Cisr dHlwZWRlZiB2b2lkKiAoKnRfbGliY19tZW1hbGlnbikoc2l6ZV90IGFsaWdubWVudCwgc2l6ZV90 IHNpemUpOworK3R5cGVkZWYgdm9pZCAoKnRfbGliY19mcmVlKSh2b2lkKiBwdHIpOworK3R5cGVk ZWYgc2l6ZV90ICgqdF9saWJjX21hbGxvY191c2FibGVfc2l6ZSkodm9pZCogcHRyKTsKKysKKysv LyBTdGF0aWMgaW5zdGFuY2VzIG9mIHBvaW50ZXJzIHRvIGxpYmMuc28gZGwgc3ltYm9scworK3N0 YXRpYyB0X2xpYmNfbWFsbG9jIGxpYmNfbWFsbG9jID0gTlVMTDsKKytzdGF0aWMgdF9saWJjX2Nh bGxvYyBsaWJjX2NhbGxvYyA9IE5VTEw7Cisrc3RhdGljIHRfbGliY19yZWFsbG9jIGxpYmNfcmVh bGxvYyA9IE5VTEw7Cisrc3RhdGljIHRfbGliY19tZW1hbGlnbiBsaWJjX21lbWFsaWduID0gTlVM TDsKKytzdGF0aWMgdF9saWJjX2ZyZWUgbGliY19mcmVlID0gTlVMTDsKKytzdGF0aWMgdF9saWJj X21hbGxvY191c2FibGVfc2l6ZSBsaWJjX21hbGxvY191c2FibGVfc2l6ZSA9IE5VTEw7CisrCisr Ly8gcmVzb2x2ZSB0aGUgc3ltYm9scyBpbiBsaWJjLnNvCisrdm9pZCBtdXNsX2xpYmNfbWVtb3J5 X2luaXQodm9pZCkKKyt7CisrICBsaWJjX21hbGxvYyA9ICh0X2xpYmNfbWFsbG9jKSBkbHN5bShS VExEX05FWFQsICJtYWxsb2MiKTsKKysgIGxpYmNfY2FsbG9jID0gKHRfbGliY19jYWxsb2MpIGRs c3ltKFJUTERfTkVYVCwgImNhbGxvYyIpOworKyAgbGliY19yZWFsbG9jID0gKHRfbGliY19yZWFs bG9jKSBkbHN5bShSVExEX05FWFQsICJyZWFsbG9jIik7CisrICBsaWJjX21lbWFsaWduID0gKHRf bGliY19tZW1hbGlnbikgZGxzeW0oUlRMRF9ORVhULCAibWVtYWxpZ24iKTsKKysgIGxpYmNfZnJl ZSA9ICh0X2xpYmNfZnJlZSkgZGxzeW0oUlRMRF9ORVhULCAiZnJlZSIpOworKyAgbGliY19tYWxs b2NfdXNhYmxlX3NpemUgPSAodF9saWJjX21hbGxvY191c2FibGVfc2l6ZSkgZGxzeW0oUlRMRF9O RVhULCAibWFsbG9jX3VzYWJsZV9zaXplIik7CisrfQorK30gIC8vIGV4dGVybiAiQyIKKysKKytu YW1lc3BhY2UgeworKworK3VzaW5nIGJhc2U6OmFsbG9jYXRvcjo6QWxsb2NhdG9yRGlzcGF0Y2g7 CisrCisrdm9pZCogTXVzbE1hbGxvYyhjb25zdCBBbGxvY2F0b3JEaXNwYXRjaCosIHNpemVfdCBz aXplLCB2b2lkKiBjb250ZXh0KSB7CisrICBpZiAoIWxpYmNfbWFsbG9jKQorKyAgICBtdXNsX2xp YmNfbWVtb3J5X2luaXQoKTsKKysgIHJldHVybiAoKmxpYmNfbWFsbG9jKShzaXplKTsKKyt9Cisr Cisrdm9pZCogTXVzbENhbGxvYyhjb25zdCBBbGxvY2F0b3JEaXNwYXRjaCosIHNpemVfdCBuLCBz aXplX3Qgc2l6ZSwgdm9pZCogY29udGV4dCkgeworKyAgaWYgKCFsaWJjX2NhbGxvYykKKysgICAg bXVzbF9saWJjX21lbW9yeV9pbml0KCk7CisrICByZXR1cm4gKCpsaWJjX2NhbGxvYykobiwgc2l6 ZSk7CisrfQorKworK3ZvaWQqIE11c2xSZWFsbG9jKGNvbnN0IEFsbG9jYXRvckRpc3BhdGNoKiwg dm9pZCogYWRkcmVzcywgc2l6ZV90IHNpemUsIHZvaWQqIGNvbnRleHQpIHsKKysgIGlmICghbGli Y19yZWFsbG9jKQorKyAgICBtdXNsX2xpYmNfbWVtb3J5X2luaXQoKTsKKysgIHJldHVybiAoKmxp YmNfcmVhbGxvYykoYWRkcmVzcywgc2l6ZSk7CisrfQorKworK3ZvaWQqIE11c2xNZW1hbGlnbihj b25zdCBBbGxvY2F0b3JEaXNwYXRjaCosIHNpemVfdCBhbGlnbm1lbnQsIHNpemVfdCBzaXplLCB2 b2lkKiBjb250ZXh0KSB7CisrICBpZiAoIWxpYmNfbWVtYWxpZ24pCisrICAgIG11c2xfbGliY19t ZW1vcnlfaW5pdCgpOworKyAgcmV0dXJuICgqbGliY19tZW1hbGlnbikoYWxpZ25tZW50LCBzaXpl KTsKKyt9CisrCisrdm9pZCBNdXNsRnJlZShjb25zdCBBbGxvY2F0b3JEaXNwYXRjaCosIHZvaWQq IGFkZHJlc3MsIHZvaWQqIGNvbnRleHQpIHsKKysgIGlmICghbGliY19mcmVlKQorKyAgICBtdXNs X2xpYmNfbWVtb3J5X2luaXQoKTsKKysgICgqbGliY19mcmVlKShhZGRyZXNzKTsKKyt9CisrCisr c2l6ZV90IE11c2xHZXRTaXplRXN0aW1hdGUoY29uc3QgQWxsb2NhdG9yRGlzcGF0Y2gqLCB2b2lk KiBhZGRyZXNzLCB2b2lkKiBjb250ZXh0KSB7CisrICAvLyBUT0RPKHNpZ2dpLCBwcmltaWFubyk6 IG1hbGxvY191c2FibGVfc2l6ZSBtYXkgbmVlZCByZWRpcmVjdGlvbiBpbiB0aGUKKysgIC8vICAg ICBwcmVzZW5jZSBvZiBpbnRlcnBvc2luZyBzaGltcyB0aGF0IGRpdmVydCBhbGxvY2F0aW9ucy4K KysgIGlmICghbGliY19tYWxsb2NfdXNhYmxlX3NpemUpCisrICAgIG11c2xfbGliY19tZW1vcnlf aW5pdCgpOworKyAgcmV0dXJuICgqbGliY19tYWxsb2NfdXNhYmxlX3NpemUpKGFkZHJlc3MpOwor K30KKysKKyt9ICAvLyBuYW1lc3BhY2UKKysKKytjb25zdCBBbGxvY2F0b3JEaXNwYXRjaCBBbGxv Y2F0b3JEaXNwYXRjaDo6ZGVmYXVsdF9kaXNwYXRjaCA9IHsKKysgICAgJk11c2xNYWxsb2MsICAg ICAgICAgICAvKiBhbGxvY19mdW5jdGlvbiAqLworKyAgICAmTXVzbENhbGxvYywgICAgICAgICAg IC8qIGFsbG9jX3plcm9faW5pdGlhbGl6ZWRfZnVuY3Rpb24gKi8KKysgICAgJk11c2xNZW1hbGln biwgICAgICAgICAvKiBhbGxvY19hbGlnbmVkX2Z1bmN0aW9uICovCisrICAgICZNdXNsUmVhbGxv YywgICAgICAgICAgLyogcmVhbGxvY19mdW5jdGlvbiAqLworKyAgICAmTXVzbEZyZWUsICAgICAg ICAgICAgIC8qIGZyZWVfZnVuY3Rpb24gKi8KKysgICAgJk11c2xHZXRTaXplRXN0aW1hdGUsICAv KiBnZXRfc2l6ZV9lc3RpbWF0ZV9mdW5jdGlvbiAqLworKyAgICBudWxscHRyLCAgICAgICAgICAg ICAgIC8qIG5leHQgKi8KKyt9OworKworKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYt d2ViZW5naW5lL3BhdGNoZXMvMDIwMi1jaHJvbWl1bS1tdXNsLW5vLW1hbGxpbmZvLnBhdGNoIGIv c3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIwMi1jaHJvbWl1bS1tdXNsLW5vLW1hbGxp bmZvLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYTViZGI1 YTQzYTVmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMv MDIwMi1jaHJvbWl1bS1tdXNsLW5vLW1hbGxpbmZvLnBhdGNoCkBAIC0wLDAgKzEsNjIgQEAKKy0t LSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL3Byb2Nlc3MvcHJvY2Vzc19tZXRyaWNzX3Bv c2l4LmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vYmFzZS9wcm9jZXNzL3Byb2Nlc3Nf bWV0cmljc19wb3NpeC5jYworQEAgLTEwNSw3ICsxMDUsNyBAQCB2b2lkIEluY3JlYXNlRmRMaW1p dFRvKHVuc2lnbmVkIGludCBtYXhfCisgCisgI2VuZGlmICAvLyAhZGVmaW5lZChPU19GVUNIU0lB KQorIAorLSNpZiBkZWZpbmVkKE9TX0xJTlVYKSB8fCBkZWZpbmVkKE9TX0NIUk9NRU9TKSB8fCBk ZWZpbmVkKE9TX0FORFJPSUQpCisrI2lmIChkZWZpbmVkKE9TX0xJTlVYKSAmJiBkZWZpbmVkKF9f R0xJQkNfXykpIHx8IGRlZmluZWQoT1NfQ0hST01FT1MpIHx8IGRlZmluZWQoT1NfQU5EUk9JRCkK KyBuYW1lc3BhY2UgeworIAorIHNpemVfdCBHZXRNYWxsb2NVc2FnZU1hbGxpbmZvKCkgeworQEAg LTEyNywxNiArMTI3LDE2IEBAIHNpemVfdCBHZXRNYWxsb2NVc2FnZU1hbGxpbmZvKCkgeworIH0K KyAKKyB9ICAvLyBuYW1lc3BhY2UKKy0jZW5kaWYgIC8vIGRlZmluZWQoT1NfTElOVVgpIHx8IGRl ZmluZWQoT1NfQ0hST01FT1MpIHx8IGRlZmluZWQoT1NfQU5EUk9JRCkKKysjZW5kaWYgIC8vIChk ZWZpbmVkKE9TX0xJTlVYKSAmJiBkZWZpbmVkKF9fR0xJQkNfXykpIHx8IGRlZmluZWQoT1NfQ0hS T01FT1MpIHx8IGRlZmluZWQoT1NfQU5EUk9JRCkKKyAKKyBzaXplX3QgUHJvY2Vzc01ldHJpY3M6 OkdldE1hbGxvY1VzYWdlKCkgeworICNpZiBkZWZpbmVkKE9TX0FQUExFKQorICAgbWFsbG9jX3N0 YXRpc3RpY3NfdCBzdGF0cyA9IHswfTsKKyAgIG1hbGxvY196b25lX3N0YXRpc3RpY3MobnVsbHB0 ciwgJnN0YXRzKTsKKyAgIHJldHVybiBzdGF0cy5zaXplX2luX3VzZTsKKy0jZWxpZiBkZWZpbmVk KE9TX0xJTlVYKSB8fCBkZWZpbmVkKE9TX0NIUk9NRU9TKSB8fCBkZWZpbmVkKE9TX0FORFJPSUQp CisrI2VsaWYgKGRlZmluZWQoT1NfTElOVVgpICYmIGRlZmluZWQoX19HTElCQ19fKSkgfHwgZGVm aW5lZChPU19DSFJPTUVPUykgfHwgZGVmaW5lZChPU19BTkRST0lEKQorICAgcmV0dXJuIEdldE1h bGxvY1VzYWdlTWFsbGluZm8oKTsKKy0jZWxpZiBkZWZpbmVkKE9TX0ZVQ0hTSUEpCisrI2Vsc2UK KyAgIC8vIFRPRE8oZnVjaHNpYSk6IE5vdCBjdXJyZW50bHkgZXhwb3NlZC4gaHR0cHM6Ly9jcmJ1 Zy5jb20vNzM1MDg3LgorICAgcmV0dXJuIDA7CisgI2VuZGlmCistLS0gYS9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdGhpcmRfcGFydHkvdGZsaXRlL3NyYy90ZW5zb3JmbG93L2xpdGUvcHJvZmlsaW5n L21lbW9yeV9pbmZvLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkv dGZsaXRlL3NyYy90ZW5zb3JmbG93L2xpdGUvcHJvZmlsaW5nL21lbW9yeV9pbmZvLmNjCitAQCAt MjcsNyArMjcsNyBAQCBuYW1lc3BhY2UgbWVtb3J5IHsKKyBjb25zdCBpbnQgTWVtb3J5VXNhZ2U6 OmtWYWx1ZU5vdFNldCA9IDA7CisgCisgYm9vbCBNZW1vcnlVc2FnZTo6SXNTdXBwb3J0ZWQoKSB7 CistI2lmZGVmIF9fbGludXhfXworKyNpZmRlZiBfX0dMSUJDX18KKyAgIHJldHVybiB0cnVlOwor ICNlbmRpZgorICAgcmV0dXJuIGZhbHNlOworQEAgLTM1LDcgKzM1LDcgQEAgYm9vbCBNZW1vcnlV c2FnZTo6SXNTdXBwb3J0ZWQoKSB7CisgCisgTWVtb3J5VXNhZ2UgR2V0TWVtb3J5VXNhZ2UoKSB7 CisgICBNZW1vcnlVc2FnZSByZXN1bHQ7CistI2lmZGVmIF9fbGludXhfXworKyNpZmRlZiBfX0dM SUJDX18KKyAgIHJ1c2FnZSByZXM7CisgICBpZiAoZ2V0cnVzYWdlKFJVU0FHRV9TRUxGLCAmcmVz KSA9PSAwKSB7CisgICAgIHJlc3VsdC5tYXhfcnNzX2tiID0gcmVzLnJ1X21heHJzczsKKy0tLSBh L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL3RyYWNlX2V2ZW50L21hbGxvY19kdW1wX3Byb3Zp ZGVyLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vYmFzZS90cmFjZV9ldmVudC9tYWxs b2NfZHVtcF9wcm92aWRlci5jYworQEAgLTIxMyw3ICsyMTMsNyBAQCBib29sIE1hbGxvY0R1bXBQ cm92aWRlcjo6T25NZW1vcnlEdW1wKGNvCisgICAgICAgICAgICAgICAgICAgICAgJmFsbG9jYXRl ZF9vYmplY3RzX2NvdW50KTsKKyAjZWxpZiBkZWZpbmVkKE9TX0ZVQ0hTSUEpCisgLy8gVE9ETyhm dWNoc2lhKTogUG9ydCwgc2VlIGh0dHBzOi8vY3JidWcuY29tLzcwNjU5Mi4KKy0jZWxzZQorKyNl bGlmIGRlZmluZWQoX19HTElCQ19fKQorICNpZiBkZWZpbmVkKF9fR0xJQkNfXykgJiYgZGVmaW5l ZChfX0dMSUJDX1BSRVJFUSkKKyAjaWYgX19HTElCQ19QUkVSRVEoMiwgMzMpCisgI2RlZmluZSBN QUxMSU5GTzJfRk9VTkRfSU5fTElCQwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5l L3BhdGNoZXMvMDIwMy1jaHJvbWl1bS1tdXNsLXNpZ2luZm9fdC5wYXRjaCBiL3NyY3BrZ3MvcXQ2 LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDMtY2hyb21pdW0tbXVzbC1zaWdpbmZvX3QucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi40M2VmN2ZkN2M1ZDIKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjAzLWNocm9taXVt LW11c2wtc2lnaW5mb190LnBhdGNoCkBAIC0wLDAgKzEsMTggQEAKK1RoZXJlJ3MgYSBzdWJ0bGUg ZGlmZmVyZW5jZSBpbiB0aGUgaW50ZXJuYWwgbmFtZSBvZiBzaWdpbmZvX3QgZmllbGRzCitiZXR3 ZWVuIGdsaWJjIGFuZCBtdXNsLiBUaGUgc3RydWN0dXJlIGl0c2VsZiBpcyBlcXVpdmFsZW50LCBz byBpdAorc2hvdWxkIHN1ZmZpY2UgdG8gYWRkIGEgbWFjcm8gdG8gcmVuYW1lIHRoZSBmaWVsZC4K KworLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYv dHJhcC5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29t cC1icGYvdHJhcC5jYworQEAgLTE3NCw3ICsxNzQsMTEgQEAgdm9pZCBUcmFwOjpTaWdTeXMoaW50 IG5yLCBMaW51eFNpZ0luZm8qCisgICAvLyBJZiB0aGUgdmVyc2lvbiBvZiBnbGliYyBkb2Vzbid0 IGluY2x1ZGUgdGhpcyBpbmZvcm1hdGlvbiBpbgorICAgLy8gc2lnaW5mb190IChvbGRlciB0aGFu IDIuMTcpLCB3ZSBuZWVkIHRvIGV4cGxpY2l0bHkgY29weSBpdAorICAgLy8gaW50byBhbiBhcmNo X3NpZ3N5cyBzdHJ1Y3R1cmUuCisrI2lmIGRlZmluZWQoX19HTElCQ19fKQorICAgbWVtY3B5KCZz aWdzeXMsICZpbmZvLT5fc2lmaWVsZHMsIHNpemVvZihzaWdzeXMpKTsKKysjZWxzZQorKyAgbWVt Y3B5KCZzaWdzeXMsICZpbmZvLT5fX3NpX2ZpZWxkcywgc2l6ZW9mKHNpZ3N5cykpOworKyNlbmRp ZgorICNlbmRpZgorIAorICNpZiBkZWZpbmVkKF9fbWlwc19fKQpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIwNC1jaHJvbWl1bS1tdXNsLXN0YWNrc3RhcnQucGF0 Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjA0LWNocm9taXVtLW11c2wtc3Rh Y2tzdGFydC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmIw M2NmNDNiODZkYgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRj aGVzLzAyMDQtY2hyb21pdW0tbXVzbC1zdGFja3N0YXJ0LnBhdGNoCkBAIC0wLDAgKzEsMjAgQEAK Ky0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9w bGF0Zm9ybS93dGYvc3RhY2tfdXRpbC5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Ro aXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL3d0Zi9zdGFja191dGlsLmNjCitAQCAt MjksNyArMjksNyBAQCBzaXplX3QgR2V0VW5kZXJlc3RpbWF0ZWRTdGFja1NpemUoKSB7CisgLy8g RklYTUU6IE9uIE1hYyBPU1ggYW5kIExpbnV4LCB0aGlzIG1ldGhvZCBjYW5ub3QgZXN0aW1hdGUg c3RhY2sgc2l6ZQorIC8vIGNvcnJlY3RseSBmb3IgdGhlIG1haW4gdGhyZWFkLgorIAorLSNlbGlm IGRlZmluZWQoX19HTElCQ19fKSB8fCBkZWZpbmVkKE9TX0FORFJPSUQpIHx8IGRlZmluZWQoT1Nf RlJFRUJTRCkgfHwgXAorKyNlbGlmIGRlZmluZWQoT1NfTElOVVgpIHx8IGRlZmluZWQoT1NfQU5E Uk9JRCkgfHwgZGVmaW5lZChPU19GUkVFQlNEKSB8fCBcCisgICAgIGRlZmluZWQoT1NfRlVDSFNJ QSkKKyAgIC8vIHB0aHJlYWRfZ2V0YXR0cl9ucCgpIGNhbiBmYWlsIGlmIHRoZSB0aHJlYWQgaXMg bm90IGludm9rZWQgYnkKKyAgIC8vIHB0aHJlYWRfY3JlYXRlKCkgKGUuZy4sIHRoZSBtYWluIHRo cmVhZCBvZiBibGlua191bml0dGVzdHMpLgorQEAgLTk3LDcgKzk3LDcgQEAgcmV0dXJuIFRocmVh ZGluZzo6VGhyZWFkU3RhY2tTaXplKCk7CisgfQorIAorIHZvaWQqIEdldFN0YWNrU3RhcnQoKSB7 CistI2lmIGRlZmluZWQoX19HTElCQ19fKSB8fCBkZWZpbmVkKE9TX0FORFJPSUQpIHx8IGRlZmlu ZWQoT1NfRlJFRUJTRCkgfHwgXAorKyNpZiBkZWZpbmVkKE9TX0xJTlVYKSB8fCBkZWZpbmVkKE9T X0FORFJPSUQpIHx8IGRlZmluZWQoT1NfRlJFRUJTRCkgfHwgXAorICAgICBkZWZpbmVkKE9TX0ZV Q0hTSUEpCisgICBwdGhyZWFkX2F0dHJfdCBhdHRyOworICAgaW50IGVycm9yOwpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIwNS1jaHJvbWl1bS1tdXNsLXNhbmRi b3gucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjA1LWNocm9taXVtLW11 c2wtc2FuZGJveC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAu Ljc3MmE1NzhmZDgyMwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9w YXRjaGVzLzAyMDUtY2hyb21pdW0tbXVzbC1zYW5kYm94LnBhdGNoCkBAIC0wLDAgKzEsOTIgQEAK Ky0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhl bHBlcnMvc3lzY2FsbF9wYXJhbWV0ZXJzX3Jlc3RyaWN0aW9ucy5jYworKysrIGIvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3Bh cmFtZXRlcnNfcmVzdHJpY3Rpb25zLmNjCitAQCAtMTM4LDcgKzEzOCw3IEBAIG5hbWVzcGFjZSBz YW5kYm94IHsKKyAvLyBwcmVzZW50IChhcyBpbiBuZXdlciB2ZXJzaW9ucyBvZiBwb3NpeF9zcGF3 bikuCisgUmVzdWx0RXhwciBSZXN0cmljdENsb25lVG9UaHJlYWRzQW5kRVBFUk1Gb3JrKCkgewor ICAgY29uc3QgQXJnPHVuc2lnbmVkIGxvbmc+IGZsYWdzKDApOworLQorKyNpZiBkZWZpbmVkKF9f R0xJQkNfXykKKyAgIC8vIFRPRE8obWRlbXBza3kpOiBFeHRlbmQgRFNMIHRvIHN1cHBvcnQgKGZs YWdzICYgfm1hc2sxKSA9PSBtYXNrMi4KKyAgIGNvbnN0IHVpbnQ2NF90IGtBbmRyb2lkQ2xvbmVN YXNrID0gQ0xPTkVfVk0gfCBDTE9ORV9GUyB8IENMT05FX0ZJTEVTIHwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQ0xPTkVfU0lHSEFORCB8IENMT05FX1RIUkVBRCB8CitA QCAtMTY1LDYgKzE2NSwxNyBAQCBSZXN1bHRFeHByIFJlc3RyaWN0Q2xvbmVUb1RocmVhZHNBbmRF UEVSCisgICByZXR1cm4gSWYoSXNBbmRyb2lkKCkgPyBhbmRyb2lkX3Rlc3QgOiBnbGliY190ZXN0 LCBBbGxvdygpKQorICAgICAgIC5FbHNlSWYoaXNfZm9ya19vcl9jbG9uZV92Zm9yaywgRXJyb3Io RVBFUk0pKQorICAgICAgIC5FbHNlKENyYXNoU0lHU1lTQ2xvbmUoKSk7CisrI2Vsc2UKKysgIGNv bnN0IGludCByZXF1aXJlZCA9IENMT05FX1ZNIHwgQ0xPTkVfRlMgfCBDTE9ORV9GSUxFUyB8IENM T05FX1NJR0hBTkQgfAorKyAgICAgICAgICAgICAgICAgICAgICAgQ0xPTkVfVEhSRUFEIHwgQ0xP TkVfU1lTVlNFTTsKKysgIGNvbnN0IGludCBzYWZlID0gQ0xPTkVfU0VUVExTIHwgQ0xPTkVfUEFS RU5UX1NFVFRJRCB8IENMT05FX0NISUxEX0NMRUFSVElEIHwKKysgICAgICAgICAgICAgICAgICAg Q0xPTkVfREVUQUNIRUQ7CisrICBjb25zdCBCb29sRXhwciB0aHJlYWRfY2xvbmVfb2sgPSAoZmxh Z3MmfnNhZmUpPT1yZXF1aXJlZDsKKysKKysgIHJldHVybiBJZih0aHJlYWRfY2xvbmVfb2ssIEFs bG93KCkpCisrICAgICAgLkVsc2VJZigoZmxhZ3MgJiAoQ0xPTkVfVk0gfCBDTE9ORV9USFJFQUQp KSA9PSAwLCBFcnJvcihFUEVSTSkpCisrICAgICAgLkVsc2UoQ3Jhc2hTSUdTWVNDbG9uZSgpKTsK KysjZW5kaWYKKyB9CisgCisgI2lmbmRlZiBQUl9QQUNfUkVTRVRfS0VZUworLS0tIGEvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxs X3NldHMuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlY2Nv bXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmNjCitAQCAtNDE5LDYgKzQxOSw5IEBAIGJvb2wg U3lzY2FsbFNldHM6OklzQWxsb3dlZFByb2Nlc3NTdGFydE8KKyAjaWYgZGVmaW5lZChfX2kzODZf XykKKyAgICAgY2FzZSBfX05SX3dhaXRwaWQ6CisgI2VuZGlmCisrI2lmICFkZWZpbmVkKF9fR0xJ QkNfXykKKysgICAgY2FzZSBfX05SX3NldF90aWRfYWRkcmVzczoKKysjZW5kaWYKKyAgICAgICBy ZXR1cm4gdHJ1ZTsKKyAgICAgY2FzZSBfX05SX2Nsb25lOiAgLy8gU2hvdWxkIGJlIHBhcmFtZXRl ci1yZXN0cmljdGVkLgorICAgICBjYXNlIF9fTlJfc2V0bnM6ICAvLyBQcml2aWxlZ2VkLgorQEAg LTQzMSw3ICs0MzQsOSBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRQcm9jZXNzU3RhcnRP CisgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5l ZChfX21pcHNfXykKKyAgICAgY2FzZSBfX05SX3NldF90aHJlYWRfYXJlYToKKyAjZW5kaWYKKysj aWYgZGVmaW5lZChfX0dMSUJDX18pCisgICAgIGNhc2UgX19OUl9zZXRfdGlkX2FkZHJlc3M6Cisr I2VuZGlmCisgICAgIGNhc2UgX19OUl91bnNoYXJlOgorICNpZiAhZGVmaW5lZChfX21pcHNfXykg JiYgIWRlZmluZWQoX19hYXJjaDY0X18pCisgICAgIGNhc2UgX19OUl92Zm9yazoKK0BAIC01NDUs NiArNTUwLDkgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkQWRkcmVzc1NwYWNlQQorICAg ICBjYXNlIF9fTlJfbWxvY2s6CisgICAgIGNhc2UgX19OUl9tdW5sb2NrOgorICAgICBjYXNlIF9f TlJfbXVubWFwOgorKyNpZiAhZGVmaW5lZChfX0dMSUJDX18pCisrICAgIGNhc2UgX19OUl9tcmVt YXA6CisrI2VuZGlmCisgICAgICAgcmV0dXJuIHRydWU7CisgICAgIGNhc2UgX19OUl9tYWR2aXNl OgorICAgICBjYXNlIF9fTlJfbWluY29yZToKK0BAIC01NjIsNyArNTcwLDkgQEAgYm9vbCBTeXNj YWxsU2V0czo6SXNBbGxvd2VkQWRkcmVzc1NwYWNlQQorICAgICBjYXNlIF9fTlJfbW9kaWZ5X2xk dDoKKyAjZW5kaWYKKyAgICAgY2FzZSBfX05SX21wcm90ZWN0OgorKyNpZiBkZWZpbmVkKF9fR0xJ QkNfXykKKyAgICAgY2FzZSBfX05SX21yZW1hcDoKKysjZW5kaWYKKyAgICAgY2FzZSBfX05SX21z eW5jOgorICAgICBjYXNlIF9fTlJfbXVubG9ja2FsbDoKKyAgICAgY2FzZSBfX05SX3JlYWRhaGVh ZDoKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L3BvbGljeS9saW51eC9icGZf cmVuZGVyZXJfcG9saWN5X2xpbnV4LmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2Fu ZGJveC9wb2xpY3kvbGludXgvYnBmX3JlbmRlcmVyX3BvbGljeV9saW51eC5jYworQEAgLTk3LDEx ICs5NywxOCBAQCBSZXN1bHRFeHByIFJlbmRlcmVyUHJvY2Vzc1BvbGljeTo6RXZhbHVhCisgICAg IGNhc2UgX19OUl9zeXNpbmZvOgorICAgICBjYXNlIF9fTlJfdGltZXM6CisgICAgIGNhc2UgX19O Ul91bmFtZToKKysjaWYgIWRlZmluZWQoX19HTElCQ19fKQorKyAgICBjYXNlIF9fTlJfc2NoZWRf Z2V0cGFyYW06CisrICAgIGNhc2UgX19OUl9zY2hlZF9nZXRzY2hlZHVsZXI6CisrICAgIGNhc2Ug X19OUl9zY2hlZF9zZXRzY2hlZHVsZXI6CisrI2VuZGlmCisgICAgICAgcmV0dXJuIEFsbG93KCk7 CisgICAgIGNhc2UgX19OUl9zY2hlZF9nZXRhZmZpbml0eToKKysjaWYgZGVmaW5lZChfX0dMSUJD X18pCisgICAgIGNhc2UgX19OUl9zY2hlZF9nZXRwYXJhbToKKyAgICAgY2FzZSBfX05SX3NjaGVk X2dldHNjaGVkdWxlcjoKKyAgICAgY2FzZSBfX05SX3NjaGVkX3NldHNjaGVkdWxlcjoKKysjZW5k aWYKKyAgICAgICByZXR1cm4gUmVzdHJpY3RTY2hlZFRhcmdldChHZXRQb2xpY3lQaWQoKSwgc3lz bm8pOworICAgICBjYXNlIF9fTlJfcHJsaW1pdDY0OgorICAgICAgIC8vIFNlZSBjcmJ1Zy5jb20v NjYyNDUwIGFuZCBzZXRybGltaXQgY29tbWVudCBhYm92ZS4KZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv cXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDYtY2hyb21pdW0tbXVzbC1kZWZhdWx0LXN0YWNrc2l6 ZS5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDYtY2hyb21pdW0tbXVz bC1kZWZhdWx0LXN0YWNrc2l6ZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMDAuLmJjMDc0OTViODE0NAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdl YmVuZ2luZS9wYXRjaGVzLzAyMDYtY2hyb21pdW0tbXVzbC1kZWZhdWx0LXN0YWNrc2l6ZS5wYXRj aApAQCAtMCwwICsxLDE1IEBACistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vYmFzZS90aHJl YWRpbmcvcGxhdGZvcm1fdGhyZWFkX2xpbnV4LmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21p dW0vYmFzZS90aHJlYWRpbmcvcGxhdGZvcm1fdGhyZWFkX2xpbnV4LmNjCitAQCAtNDM5LDcgKzQz OSwxMiBAQCB2b2lkIFRlcm1pbmF0ZU9uVGhyZWFkKCkge30KKyAKKyBzaXplX3QgR2V0RGVmYXVs dFRocmVhZFN0YWNrU2l6ZShjb25zdCBwdGhyZWFkX2F0dHJfdCYgYXR0cmlidXRlcykgeworICNp ZiAhZGVmaW5lZChUSFJFQURfU0FOSVRJWkVSKQorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykKKyAg IHJldHVybiAwOworKyNlbHNlIC8vIGRlZmluZWQoX19HTElCQ19fKQorKyAgLy8gRm9yIE11c2wg bGliYyB0cnkgd2l0aCBhIGRlZmF1bHQgc3RhY2sgc2l6ZSBvZiAyIE1pQgorKyAgcmV0dXJuIDIg KiAxMDI0ICogMTAyNDsKKysjZW5kaWYgLy8gIWRlZmluZWQoX19HTElCQ19fKQorICNlbHNlCisg ICAvLyBUaHJlYWRTYW5pdGl6ZXIgYmxvYXRzIHRoZSBzdGFjayBoZWF2aWx5LiBFdmlkZW5jZSBo YXMgYmVlbiB0aGF0IHRoZQorICAgLy8gZGVmYXVsdCBzdGFjayBzaXplIGlzbid0IGVub3VnaCBm b3Igc29tZSBicm93c2VyIHRlc3RzLgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5l L3BhdGNoZXMvMDIwOC1jaHJvbWl1bS1tdXNsLWV4ZWNpbmZvLnBhdGNoIGIvc3JjcGtncy9xdDYt d2ViZW5naW5lL3BhdGNoZXMvMDIwOC1jaHJvbWl1bS1tdXNsLWV4ZWNpbmZvLnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uOWYzYjk2NDY3NmIzCi0tLSAvZGV2 L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIwOC1jaHJvbWl1bS1t dXNsLWV4ZWNpbmZvLnBhdGNoCkBAIC0wLDAgKzEsMTI1IEBACistLS0gYS9zcmMvM3JkcGFydHkv Y2hyb21pdW0vYmFzZS9kZWJ1Zy9zdGFja190cmFjZS5jYworKysrIGIvc3JjLzNyZHBhcnR5L2No cm9taXVtL2Jhc2UvZGVidWcvc3RhY2tfdHJhY2UuY2MKK0BAIC0yNTIsNyArMjUyLDkgQEAgdm9p ZCBTdGFja1RyYWNlOjpQcmludCgpIGNvbnN0IHsKKyB9CisgCisgdm9pZCBTdGFja1RyYWNlOjpP dXRwdXRUb1N0cmVhbShzdGQ6Om9zdHJlYW0qIG9zKSBjb25zdCB7CisrI2lmIGRlZmluZWQoX19H TElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorICAgT3V0cHV0VG9TdHJlYW1XaXRoUHJlZml4KG9z LCBudWxscHRyKTsKKysjZW5kaWYKKyB9CisgCisgc3RkOjpzdHJpbmcgU3RhY2tUcmFjZTo6VG9T dHJpbmcoKSBjb25zdCB7CitAQCAtMjYwLDcgKzI2Miw3IEBAIHN0ZDo6c3RyaW5nIFN0YWNrVHJh Y2U6OlRvU3RyaW5nKCkgY29uc3QKKyB9Cisgc3RkOjpzdHJpbmcgU3RhY2tUcmFjZTo6VG9TdHJp bmdXaXRoUHJlZml4KGNvbnN0IGNoYXIqIHByZWZpeF9zdHJpbmcpIGNvbnN0IHsKKyAgIHN0ZDo6 c3RyaW5nc3RyZWFtIHN0cmVhbTsKKy0jaWYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYgIWRlZmlu ZWQoX0FJWCkKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisgICBP dXRwdXRUb1N0cmVhbVdpdGhQcmVmaXgoJnN0cmVhbSwgcHJlZml4X3N0cmluZyk7CisgI2VuZGlm CisgICByZXR1cm4gc3RyZWFtLnN0cigpOworLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jh c2UvZGVidWcvc3RhY2tfdHJhY2VfcG9zaXguY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS9iYXNlL2RlYnVnL3N0YWNrX3RyYWNlX3Bvc2l4LmNjCitAQCAtMjcsNyArMjcsNyBAQAorICNp ZiAhZGVmaW5lZChVU0VfU1lNQk9MSVpFKQorICNpbmNsdWRlIDxjeHhhYmkuaD4KKyAjZW5kaWYK Ky0jaWYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKysjaWYgZGVmaW5l ZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisgI2luY2x1ZGUgPGV4ZWNpbmZvLmg+Cisg I2VuZGlmCisgCitAQCAtODksNyArODksNyBAQCB2b2lkIERlbWFuZ2xlU3ltYm9scyhzdGQ6OnN0 cmluZyogdGV4dCkKKyAgIC8vIE5vdGU6IGNvZGUgaW4gdGhpcyBmdW5jdGlvbiBpcyBOT1QgYXN5 bmMtc2lnbmFsIHNhZmUgKHN0ZDo6c3RyaW5nIHVzZXMKKyAgIC8vIG1hbGxvYyBpbnRlcm5hbGx5 KS4KKyAKKy0jaWYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKysjaWYg ZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisgICBzdGQ6OnN0cmluZzo6c2l6 ZV90eXBlIHNlYXJjaF9mcm9tID0gMDsKKyAgIHdoaWxlIChzZWFyY2hfZnJvbSA8IHRleHQtPnNp emUoKSkgeworICAgICAvLyBMb29rIGZvciB0aGUgc3RhcnQgb2YgYSBtYW5nbGVkIHN5bWJvbCwg ZnJvbSBzZWFyY2hfZnJvbS4KK0BAIC0xMjQsNyArMTI0LDcgQEAgdm9pZCBEZW1hbmdsZVN5bWJv bHMoc3RkOjpzdHJpbmcqIHRleHQpCisgICAgICAgc2VhcmNoX2Zyb20gPSBtYW5nbGVkX3N0YXJ0 ICsgMjsKKyAgICAgfQorICAgfQorLSNlbmRpZiAgLy8gIWRlZmluZWQoX19VQ0xJQkNfXykgJiYg IWRlZmluZWQoX0FJWCkKKysjZW5kaWYgIC8vICFkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmlu ZWQoX0FJWCkKKyB9CisgI2VuZGlmICAvLyAhZGVmaW5lZChVU0VfU1lNQk9MSVpFKQorIAorQEAg LTEzNiw3ICsxMzYsNyBAQCBjbGFzcyBCYWNrdHJhY2VPdXRwdXRIYW5kbGVyIHsKKyAgIHZpcnR1 YWwgfkJhY2t0cmFjZU91dHB1dEhhbmRsZXIoKSA9IGRlZmF1bHQ7CisgfTsKKyAKKy0jaWYgIWRl ZmluZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKysjaWYgZGVmaW5lZChfX0dMSUJD X18pICYmICFkZWZpbmVkKF9BSVgpCisgdm9pZCBPdXRwdXRQb2ludGVyKHZvaWQqIHBvaW50ZXIs IEJhY2t0cmFjZU91dHB1dEhhbmRsZXIqIGhhbmRsZXIpIHsKKyAgIC8vIFRoaXMgc2hvdWxkIGJl IG1vcmUgdGhhbiBlbm91Z2ggdG8gc3RvcmUgYSA2NC1iaXQgbnVtYmVyIGluIGhleDoKKyAgIC8v IDE2IGhleCBkaWdpdHMgKyAxIGZvciBudWxsLXRlcm1pbmF0b3IuCitAQCAtMjE5LDcgKzIxOSw3 IEBAIHZvaWQgUHJvY2Vzc0JhY2t0cmFjZSh2b2lkKiBjb25zdCogdHJhY2UKKyAgIH0KKyAjZW5k aWYgIC8vIGRlZmluZWQoVVNFX1NZTUJPTElaRSkKKyB9CistI2VuZGlmICAvLyAhZGVmaW5lZChf X1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorKyNlbmRpZiAgLy8gIWRlZmluZWQoX19HTElC Q19fKSAmJiAhZGVmaW5lZChfQUlYKQorIAorIHZvaWQgUHJpbnRUb1N0ZGVycihjb25zdCBjaGFy KiBvdXRwdXQpIHsKKyAgIC8vIE5PVEU6IFRoaXMgY29kZSBNVVNUIGJlIGFzeW5jLXNpZ25hbCBz YWZlIChpdCdzIHVzZWQgYnkgaW4tcHJvY2VzcworQEAgLTgzOSw3ICs4MzksNyBAQCBzaXplX3Qg Q29sbGVjdFN0YWNrVHJhY2Uodm9pZCoqIHRyYWNlLCBzCisgICAvLyBJZiB3ZSBkbyBub3QgaGF2 ZSB1bndpbmQgdGFibGVzLCB0aGVuIHRyeSB0cmFjaW5nIHVzaW5nIGZyYW1lIHBvaW50ZXJzLgor ICAgcmV0dXJuIGJhc2U6OmRlYnVnOjpUcmFjZVN0YWNrRnJhbWVQb2ludGVycyhjb25zdF9jYXN0 PGNvbnN0IHZvaWQqKj4odHJhY2UpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb3VudCwgMCk7CistI2VsaWYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYg IWRlZmluZWQoX0FJWCkKKysjZWxpZiBkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX0FJ WCkKKyAgIC8vIFRob3VnaCB0aGUgYmFja3RyYWNlIEFQSSBtYW4gcGFnZSBkb2VzIG5vdCBsaXN0 IGFueSBwb3NzaWJsZSBuZWdhdGl2ZQorICAgLy8gcmV0dXJuIHZhbHVlcywgd2UgdGFrZSBubyBj aGFuY2UuCisgICByZXR1cm4gYmFzZTo6c2F0dXJhdGVkX2Nhc3Q8c2l6ZV90PihiYWNrdHJhY2Uo dHJhY2UsIGNvdW50KSk7CitAQCAtODUyLDEzICs4NTIsMTMgQEAgdm9pZCBTdGFja1RyYWNlOjpQ cmludFdpdGhQcmVmaXgoY29uc3QgYworIC8vIE5PVEU6IFRoaXMgY29kZSBNVVNUIGJlIGFzeW5j LXNpZ25hbCBzYWZlIChpdCdzIHVzZWQgYnkgaW4tcHJvY2VzcworIC8vIHN0YWNrIGR1bXBpbmcg c2lnbmFsIGhhbmRsZXIpLiBOTyBtYWxsb2Mgb3Igc3RkaW8gaXMgYWxsb3dlZCBoZXJlLgorIAor LSNpZiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorKyNpZiBkZWZpbmVk KF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKyAgIFByaW50QmFja3RyYWNlT3V0cHV0SGFu ZGxlciBoYW5kbGVyOworICAgUHJvY2Vzc0JhY2t0cmFjZSh0cmFjZV8sIGNvdW50XywgcHJlZml4 X3N0cmluZywgJmhhbmRsZXIpOworICNlbmRpZgorIH0KKyAKKy0jaWYgIWRlZmluZWQoX19VQ0xJ QkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZp bmVkKF9BSVgpCisgdm9pZCBTdGFja1RyYWNlOjpPdXRwdXRUb1N0cmVhbVdpdGhQcmVmaXgoc3Rk Ojpvc3RyZWFtKiBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBjaGFyKiBwcmVmaXhfc3RyaW5nKSBjb25zdCB7CisgICBTdHJlYW1CYWNrdHJhY2VP dXRwdXRIYW5kbGVyIGhhbmRsZXIob3MpOworLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jh c2UvbG9nZ2luZy5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jhc2UvbG9nZ2luZy5j YworQEAgLTU4Miw3ICs1ODIsNyBAQCBMb2dNZXNzYWdlOjpMb2dNZXNzYWdlKGNvbnN0IGNoYXIq IGZpbGUsCisgCisgTG9nTWVzc2FnZTo6fkxvZ01lc3NhZ2UoKSB7CisgICBzaXplX3Qgc3RhY2tf c3RhcnQgPSBzdHJlYW1fLnRlbGxwKCk7CistI2lmICFkZWZpbmVkKE9GRklDSUFMX0JVSUxEKSAm JiAhZGVmaW5lZChPU19OQUNMKSAmJiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiBcCisrI2lmICFk ZWZpbmVkKE9GRklDSUFMX0JVSUxEKSAmJiAhZGVmaW5lZChPU19OQUNMKSAmJiBkZWZpbmVkKF9f R0xJQkNfXykgJiYgXAorICAgICAhZGVmaW5lZChPU19BSVgpCisgICBpZiAoc2V2ZXJpdHlfID09 IExPR0dJTkdfRkFUQUwgJiYgIWJhc2U6OmRlYnVnOjpCZWluZ0RlYnVnZ2VkKCkpIHsKKyAgICAg Ly8gSW5jbHVkZSBhIHN0YWNrIHRyYWNlIG9uIGEgZmF0YWwsIHVubGVzcyBhIGRlYnVnZ2VyIGlz IGF0dGFjaGVkLgorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4L3NyYy9jb2RlZ2VuL2V4 dGVybmFsLXJlZmVyZW5jZS10YWJsZS5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4 L3NyYy9jb2RlZ2VuL2V4dGVybmFsLXJlZmVyZW5jZS10YWJsZS5jYworQEAgLTEyLDcgKzEyLDkg QEAKKyAKKyAjaWYgZGVmaW5lZChERUJVRykgJiYgZGVmaW5lZChWOF9PU19MSU5VWCkgJiYgIWRl ZmluZWQoVjhfT1NfQU5EUk9JRCkKKyAjZGVmaW5lIFNZTUJPTElaRV9GVU5DVElPTgorKyNpZiBk ZWZpbmVkKF9fR0xJQkNfXykKKyAjaW5jbHVkZSA8ZXhlY2luZm8uaD4KKysjZW5kaWYKKyAKKyAj aW5jbHVkZSA8dmVjdG9yPgorIAorQEAgLTEwMyw3ICsxMDUsNyBAQCB2b2lkIEV4dGVybmFsUmVm ZXJlbmNlVGFibGU6OkluaXQoSXNvbGF0CisgfQorIAorIGNvbnN0IGNoYXIqIEV4dGVybmFsUmVm ZXJlbmNlVGFibGU6OlJlc29sdmVTeW1ib2wodm9pZCogYWRkcmVzcykgeworLSNpZmRlZiBTWU1C T0xJWkVfRlVOQ1RJT04KKysjaWYgZGVmaW5lZChTWU1CT0xJWkVfRlVOQ1RJT04pICYmIGRlZmlu ZWQoX19HTElCQ19fKQorICAgY2hhcioqIG5hbWVzID0gYmFja3RyYWNlX3N5bWJvbHMoJmFkZHJl c3MsIDEpOworICAgY29uc3QgY2hhciogbmFtZSA9IG5hbWVzWzBdOworICAgLy8gVGhlIGFycmF5 IG9mIG5hbWVzIGlzIG1hbGxvYydlZC4gSG93ZXZlciwgZWFjaCBuYW1lIHN0cmluZyBpcyBzdGF0 aWMKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDktY2hyb21p dW0tbXVzbC10aHJlYWQtc3RhY2tzaXplLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvMDIwOS1jaHJvbWl1bS1tdXNsLXRocmVhZC1zdGFja3NpemUucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi40Yjc2MGE0MjhiMjUKLS0tIC9kZXYvbnVs bAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjA5LWNocm9taXVtLW11c2wt dGhyZWFkLXN0YWNrc2l6ZS5wYXRjaApAQCAtMCwwICsxLDIyIEBACistLS0gYS9zcmMvM3JkcGFy dHkvY2hyb21pdW0vcHBhcGkvdXRpbGl0eS90aHJlYWRpbmcvc2ltcGxlX3RocmVhZC5jYworKysr IGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3BwYXBpL3V0aWxpdHkvdGhyZWFkaW5nL3NpbXBsZV90 aHJlYWQuY2MKK0BAIC0xMyw3ICsxMyw3IEBAIG5hbWVzcGFjZSBwcCB7CisgbmFtZXNwYWNlIHsK KyAKKyAvLyBVc2UgMk1CIGRlZmF1bHQgc3RhY2sgc2l6ZSBmb3IgTmF0aXZlIENsaWVudCwgb3Ro ZXJ3aXNlIHVzZSBzeXN0ZW0gZGVmYXVsdC4KKy0jaWYgZGVmaW5lZChfX25hdGl2ZV9jbGllbnRf XykKKysjaWYgZGVmaW5lZChfX25hdGl2ZV9jbGllbnRfXykgfHwgIWRlZmluZWQoX19HTElCQ19f KQorIGNvbnN0IHNpemVfdCBrRGVmYXVsdFN0YWNrU2l6ZSA9IDIgKiAxMDI0ICogMTAyNDsKKyAj ZWxzZQorIGNvbnN0IHNpemVfdCBrRGVmYXVsdFN0YWNrU2l6ZSA9IDA7CistLS0gYS9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdjgvc3JjL2Jhc2UvcGxhdGZvcm0vcGxhdGZvcm0tcG9zaXguY2MKKysr KyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvYmFzZS9wbGF0Zm9ybS9wbGF0Zm9ybS1w b3NpeC5jYworQEAgLTg4Myw3ICs4ODMsNyBAQCBib29sIFRocmVhZDo6U3RhcnQoKSB7CisgI2lm IFY4X09TX01BQ09TWAorICAgICAvLyBEZWZhdWx0IG9uIE1hYyBPUyBYIGlzIDUxMmtCIC0tIGJ1 bXAgdXAgdG8gMU1CCisgICAgIHN0YWNrX3NpemUgPSAxICogMTAyNCAqIDEwMjQ7CistI2VsaWYg VjhfT1NfQUlYCisrI2VsaWYgVjhfT1NfQUlYIHx8ICFkZWZpbmVkKF9fR0xJQkNfXykKKyAgICAg Ly8gRGVmYXVsdCBvbiBBSVggaXMgOTZrQiAtLSBidW1wIHVwIHRvIDJNQgorICAgICBzdGFja19z aXplID0gMiAqIDEwMjQgKiAxMDI0OworICNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYt d2ViZW5naW5lL3BhdGNoZXMvMDIxMC1jaHJvbWl1bS1tdXNsLW1zZ3ZlYy1wdXNoX2JhY2sucGF0 Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjEwLWNocm9taXVtLW11c2wtbXNn dmVjLXB1c2hfYmFjay5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MDAuLjkwNWRhYTIyMzcwMAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2lu ZS9wYXRjaGVzLzAyMTAtY2hyb21pdW0tbXVzbC1tc2d2ZWMtcHVzaF9iYWNrLnBhdGNoCkBAIC0w LDAgKzEsMTQgQEAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9uZXQvc29ja2V0L3VkcF9z b2NrZXRfcG9zaXguY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9uZXQvc29ja2V0L3Vk cF9zb2NrZXRfcG9zaXguY2MKK0BAIC0xMTYyLDcgKzExNjIsMTEgQEAgU2VuZFJlc3VsdCBVRFBT b2NrZXRQb3NpeFNlbmRlcjo6SW50ZXJuYQorICAgICBtc2dfaW92LT5wdXNoX2JhY2soe2NvbnN0 X2Nhc3Q8Y2hhcio+KGJ1ZmZlci0+ZGF0YSgpKSwgYnVmZmVyLT5sZW5ndGgoKX0pOworICAgbXNn dmVjLT5yZXNlcnZlKGJ1ZmZlcnMuc2l6ZSgpKTsKKyAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwg YnVmZmVycy5zaXplKCk7IGorKykKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pCisgICAgIG1zZ3Zl Yy0+cHVzaF9iYWNrKHt7bnVsbHB0ciwgMCwgJm1zZ19pb3Zbal0sIDEsIG51bGxwdHIsIDAsIDB9 LCAwfSk7CisrI2Vsc2UKKysgICAgbXNndmVjLT5wdXNoX2JhY2soe3tudWxscHRyLCAwLCAmbXNn X2lvdltqXSwgMSwgMCwgMCwgMH0sIDB9KTsKKysjZW5kaWYKKyAgIGludCByZXN1bHQgPSBIQU5E TEVfRUlOVFIoU2VuZG1tc2coZmQsICZtc2d2ZWNbMF0sIGJ1ZmZlcnMuc2l6ZSgpLCAwKSk7Cisg ICBTZW5kUmVzdWx0IHNlbmRfcmVzdWx0KDAsIDAsIHN0ZDo6bW92ZShidWZmZXJzKSk7CisgICBp ZiAocmVzdWx0IDwgMCkgewpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNo ZXMvMDIxMS1jaHJvbWl1bS1tdXNsLWNhbm9uaWNhbGl6ZS1maWxlLW5hbWUtbXVzbC5wYXRjaCBi L3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMTEtY2hyb21pdW0tbXVzbC1jYW5vbmlj YWxpemUtZmlsZS1uYW1lLW11c2wucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwLi5kNDNlNmJkNDg4YmMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13 ZWJlbmdpbmUvcGF0Y2hlcy8wMjExLWNocm9taXVtLW11c2wtY2Fub25pY2FsaXplLWZpbGUtbmFt ZS1tdXNsLnBhdGNoCkBAIC0wLDAgKzEsMTEgQEAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS90aGlyZF9wYXJ0eS9uYXNtL25hc21saWIvcmVhbHBhdGguYworKysrIGIvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3RoaXJkX3BhcnR5L25hc20vbmFzbWxpYi9yZWFscGF0aC5jCitAQCAtNTUsNyAr NTUsNyBAQAorICAqLworIGNoYXIgKm5hc21fcmVhbHBhdGgoY29uc3QgY2hhciAqcmVsX3BhdGgp CisgeworLSAgICBjaGFyICpycCA9IGNhbm9uaWNhbGl6ZV9maWxlX25hbWUocmVsX3BhdGgpOwor KyAgICBjaGFyICpycCA9IHJlYWxwYXRoKHJlbF9wYXRoLCBOVUxMKTsKKyAgICAgcmV0dXJuIHJw ID8gcnAgOiBuYXNtX3N0cmR1cChyZWxfcGF0aCk7CisgfQorIApkaWZmIC0tZ2l0IGEvc3JjcGtn cy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIxMi1jaHJvbWl1bS1tdXNsLW5vLWdldGNvbnRleHQu cGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjEyLWNocm9taXVtLW11c2wt bm8tZ2V0Y29udGV4dC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MDAuLjU3NTVmMWI0NWE3ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2lu ZS9wYXRjaGVzLzAyMTItY2hyb21pdW0tbXVzbC1uby1nZXRjb250ZXh0LnBhdGNoCkBAIC0wLDAg KzEsMjkgQEAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3Bh ZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuY2MK KysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3Bh ZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuY2MKK0BAIC00ODks OCArNDg5LDEwIEBAIGJvb2wgRXhjZXB0aW9uSGFuZGxlcjo6U2ltdWxhdGVTaWduYWxEZWwKKyAg IC8vIEV4Y2VwdGlvbkhhbmRsZXI6OkhhbmRsZVNpZ25hbCgpLgorICAgc2lnaW5mby5zaV9jb2Rl ID0gU0lfVVNFUjsKKyAgIHNpZ2luZm8uc2lfcGlkID0gZ2V0cGlkKCk7CistICB1Y29udGV4dF90 IGNvbnRleHQ7CisrICB1Y29udGV4dF90IGNvbnRleHQgPSB7IDAgfTsKKysjaWYgZGVmaW5lZChf X0dMSUJDX18pCisgICBnZXRjb250ZXh0KCZjb250ZXh0KTsKKysjZW5kaWYKKyAgIHJldHVybiBI YW5kbGVTaWduYWwoc2lnLCAmc2lnaW5mbywgJmNvbnRleHQpOworIH0KKyAKK0BAIC02NzUsOSAr Njc3LDE0IEBAIGJvb2wgRXhjZXB0aW9uSGFuZGxlcjo6V3JpdGVNaW5pZHVtcCgpIHsKKyAgIHN5 c19wcmN0bChQUl9TRVRfRFVNUEFCTEUsIDEsIDAsIDAsIDApOworIAorICAgQ3Jhc2hDb250ZXh0 IGNvbnRleHQ7CisrCisrI2lmIGRlZmluZWQoX19HTElCQ19fKQorICAgaW50IGdldGNvbnRleHRf cmVzdWx0ID0gZ2V0Y29udGV4dCgmY29udGV4dC5jb250ZXh0KTsKKyAgIGlmIChnZXRjb250ZXh0 X3Jlc3VsdCkKKyAgICAgcmV0dXJuIGZhbHNlOworKyNlbHNlCisrICByZXR1cm4gZmFsc2U7Cisr I2VuZGlmCisgCisgI2lmIGRlZmluZWQoX19pMzg2X18pCisgICAvLyBJbiBDUFVGaWxsRnJvbVVD b250ZXh0IGluIG1pbmlkdW1wd3JpdGVyLmNjIHRoZSBzdGFjayBwb2ludGVyIGlzIHJldHJpZXZl ZApkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIxMy1jaHJvbWl1 bS1tdXNsLWNyYXNocGFkLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIx My1jaHJvbWl1bS1tdXNsLWNyYXNocGFkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwMC4uNzFiYmFkMmFmMTdlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9x dDYtd2ViZW5naW5lL3BhdGNoZXMvMDIxMy1jaHJvbWl1bS1tdXNsLWNyYXNocGFkLnBhdGNoCkBA IC0wLDAgKzEsMjQgQEAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC9jb21wYXQvbGludXgvc3lzL3B0cmFjZS5oCisrKysgYi9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvY29tcGF0L2xpbnV4 L3N5cy9wdHJhY2UuaAorQEAgLTE3LDcgKzE3LDkgQEAKKyAKKyAjaW5jbHVkZV9uZXh0IDxzeXMv cHRyYWNlLmg+CisgCisrI2lmZGVmIF9fR0xJQkNfXworICNpbmNsdWRlIDxzeXMvY2RlZnMuaD4K KysjZW5kaWYKKyAKKyAvLyBodHRwczovL3NvdXJjZXdhcmUub3JnL2J1Z3ppbGxhL3Nob3dfYnVn LmNnaT9pZD0yMjQzMworICNpZiAhZGVmaW5lZChQVFJBQ0VfR0VUX1RIUkVBRF9BUkVBKSAmJiAh ZGVmaW5lZChQVF9HRVRfVEhSRUFEX0FSRUEpICYmIFwKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3B0cmFjZXIuY2MK KysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC91dGlsL2xpbnV4L3B0cmFjZXIuY2MKK0BAIC0yNiw2ICsyNiw5IEBACisgCisgI2lmIGRlZmlu ZWQoQVJDSF9DUFVfWDg2X0ZBTUlMWSkKKyAjaW5jbHVkZSA8YXNtL2xkdC5oPgorKyNpZiAhZGVm aW5lZChfX0dMSUJDX18pCisrI2luY2x1ZGUgPGFzbS9wdHJhY2UtYWJpLmg+CisrI2VuZGlmCisg I2VuZGlmCisgCisgbmFtZXNwYWNlIGNyYXNocGFkIHsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2 LXdlYmVuZ2luZS9wYXRjaGVzLzAyMTQtY2hyb21pdW0tbXVzbC1maXhlcy5wYXRjaCBiL3NyY3Br Z3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMTQtY2hyb21pdW0tbXVzbC1maXhlcy5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjU1YjI2N2VkMTcxNAotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMTQtY2hyb21p dW0tbXVzbC1maXhlcy5wYXRjaApAQCAtMCwwICsxLDEwOCBAQAorLS0tIGEvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3NhbmRib3gvbGludXgvc3VpZC9wcm9jZXNzX3V0aWwuaAorKysrIGIvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc3VpZC9wcm9jZXNzX3V0aWwuaAorQEAgLTEy LDYgKzEyLDE1IEBACisgI2luY2x1ZGUgPHN0ZGludC5oPgorICNpbmNsdWRlIDxzeXMvdHlwZXMu aD4KKyAKKysjaWYgIWRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChURU1QX0ZBSUxVUkVf UkVUUlkpCisrIyBkZWZpbmUgVEVNUF9GQUlMVVJFX1JFVFJZKGV4cHJlc3Npb24pIFwKKysJKF9f ZXh0ZW5zaW9uX18JCQlcCisrCSAoeyBsb25nIGludCBfX3Jlc3VsdDsJCVwKKysJICBkbyBfX3Jl c3VsdCA9IChsb25nIGludCkgKGV4cHJlc3Npb24pOyBcCisrCSAgd2hpbGUgKF9fcmVzdWx0ID09 IC0xTCAmJiBlcnJubyA9PSBFSU5UUik7IFwKKysJICBfX3Jlc3VsdDsgfSkpCisrI2VuZGlmCisr CisgLy8gVGhpcyBhZGp1c3RzIC9wcm9jL3Byb2Nlc3Mvb29tX3Njb3JlX2FkaiBzbyB0aGUgTGlu dXggT09NIGtpbGxlcgorIC8vIHdpbGwgcHJlZmVyIGNlcnRhaW4gcHJvY2VzcyB0eXBlcyBvdmVy IG90aGVycy4gVGhlIHJhbmdlIGZvciB0aGUKKyAvLyBhZGp1c3RtZW50IGlzIFstMTAwMCwgMTAw MF0sIHdpdGggWzAsIDEwMDBdIGJlaW5nIHVzZXIgYWNjZXNzaWJsZS4KKy0tLSBhL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS9zZXJ2aWNlcy9kZXZpY2Uvc2VyaWFsL3NlcmlhbF9pb19oYW5kbGVyX3Bv c2l4LmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2VydmljZXMvZGV2aWNlL3Nlcmlh bC9zZXJpYWxfaW9faGFuZGxlcl9wb3NpeC5jYworQEAgLTYsNiArNiw3IEBACisgCisgI2luY2x1 ZGUgPHN5cy9pb2N0bC5oPgorICNpbmNsdWRlIDx0ZXJtaW9zLmg+CisrI2luY2x1ZGUgPGFzbS1n ZW5lcmljL2lvY3Rscy5oPgorIAorICNpbmNsdWRlIDxhbGdvcml0aG0+CisgI2luY2x1ZGUgPHV0 aWxpdHk+CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQv YnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVh ZGVyLmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9i cmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFk ZXIuaAorQEAgLTM4LDYgKzM4LDEwIEBACisgI2luY2x1ZGUgImNvbW1vbi9tZW1vcnlfYWxsb2Nh dG9yLmgiCisgI2luY2x1ZGUgImdvb2dsZV9icmVha3BhZC9jb21tb24vbWluaWR1bXBfZm9ybWF0 LmgiCisgCisrI2lmbmRlZiBfX0dMSUJDX18KKysjZGVmaW5lIF9saWJjX2Zwc3RhdGUgX2Zwc3Rh dGUKKysjZW5kaWYKKysKKyBuYW1lc3BhY2UgZ29vZ2xlX2JyZWFrcGFkIHsKKyAKKyAvLyBXcmFw cyBwbGF0Zm9ybS1kZXBlbmRlbnQgaW1wbGVtZW50YXRpb25zIG9mIGFjY2Vzc29ycyB0byB1Y29u dGV4dF90IHN0cnVjdHMuCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkv ZmZtcGVnL2xpYmF2dXRpbC9jcHUuYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJk X3BhcnR5L2ZmbXBlZy9saWJhdnV0aWwvY3B1LmMKK0BAIC00MSw4ICs0MSwxMCBAQAorICNpbmNs dWRlIDxzeXMvcGFyYW0uaD4KKyAjZW5kaWYKKyAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisrI2lm ZGVmIF9fR0xJQkNfXworICNpbmNsdWRlIDxzeXMvc3lzY3RsLmg+CisgI2VuZGlmCisrI2VuZGlm CisgI2lmIEhBVkVfVU5JU1REX0gKKyAjaW5jbHVkZSA8dW5pc3RkLmg+CisgI2VuZGlmCistLS0g YS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvcGVyZmV0dG8vaW5jbHVkZS9wZXJm ZXR0by9leHQvYmFzZS90aHJlYWRfdXRpbHMuaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3RoaXJkX3BhcnR5L3BlcmZldHRvL2luY2x1ZGUvcGVyZmV0dG8vZXh0L2Jhc2UvdGhyZWFkX3V0 aWxzLmgKK0BAIC0yOSw5ICsyOSw3IEBACisgI2luY2x1ZGUgPGFsZ29yaXRobT4KKyAjZW5kaWYK KyAKKy0jaWYgUEVSRkVUVE9fQlVJTERGTEFHKFBFUkZFVFRPX09TX0FORFJPSUQpCisgI2luY2x1 ZGUgPHN5cy9wcmN0bC5oPgorLSNlbmRpZgorIAorIC8vIEludGVybmFsIGltcGxlbWVudGF0aW9u IHV0aWxzIHRoYXQgYXJlbid0IGFzIHdpZGVseSB1c2VmdWwvc3VwcG9ydGVkIGFzCisgLy8gYmFz ZS90aHJlYWRfdXRpbHMuaC4KK0BAIC01OCw3ICs1Niw3IEBAIGlubGluZSBib29sIE1heWJlU2V0 VGhyZWFkTmFtZShjb25zdCBzdGQKKyAKKyBpbmxpbmUgYm9vbCBHZXRUaHJlYWROYW1lKHN0ZDo6 c3RyaW5nJiBvdXRfcmVzdWx0KSB7CisgICBjaGFyIGJ1ZlsxNl0gPSB7fTsKKy0jaWYgUEVSRkVU VE9fQlVJTERGTEFHKFBFUkZFVFRPX09TX0FORFJPSUQpCisrI2lmICFkZWZpbmVkKF9fR0xJQkNf XykKKyAgIGlmIChwcmN0bChQUl9HRVRfTkFNRSwgYnVmKSAhPSAwKQorICAgICByZXR1cm4gZmFs c2U7CisgI2Vsc2UKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9sc3Mv bGludXhfc3lzY2FsbF9zdXBwb3J0LmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGly ZF9wYXJ0eS9sc3MvbGludXhfc3lzY2FsbF9zdXBwb3J0LmgKK0BAIC0xMzAwLDYgKzEzMDAsMTgg QEAgc3RydWN0IGtlcm5lbF9zdGF0ZnMgeworICNpZm5kZWYgX19OUl9mYWxsb2NhdGUKKyAjZGVm aW5lIF9fTlJfZmFsbG9jYXRlICAgICAgICAgIDI4NQorICNlbmRpZgorKworKyNpZiAhZGVmaW5l ZChfX0dMSUJDX18pCisrI2lmZGVmIF9fTlJfcHJlYWQKKysjdW5kZWYgX19OUl9wcmVhZAorKyNl bmRpZgorKyNpZmRlZiBfX05SX3B3cml0ZQorKyN1bmRlZiBfX05SX3B3cml0ZQorKyNlbmRpZgor KyNkZWZpbmUgX19OUl9wcmVhZCBfX05SX3ByZWFkNjQKKysjZGVmaW5lIF9fTlJfcHdyaXRlIF9f TlJfcHdyaXRlNjQKKysjZW5kaWYgLyogIWRlZmluZWQoX19HTElCQ19fKSAqLworKworICNpZm5k ZWYgX19OUl9nZXRyYW5kb20KKyAjZGVmaW5lIF9fTlJfZ2V0cmFuZG9tICAgICAgICAgIDMxOAor ICNlbmRpZgorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL25ldC9kbnMvZG5zX2NvbmZpZ19z ZXJ2aWNlX3Bvc2l4LmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vbmV0L2Rucy9kbnNf Y29uZmlnX3NlcnZpY2VfcG9zaXguY2MKK0BAIC05Myw3ICs5Myw4IEBAIGFic2w6Om9wdGlvbmFs PERuc0NvbmZpZz4gUmVhZERuc0NvbmZpZygKKyAKKyAgIGFic2w6Om9wdGlvbmFsPERuc0NvbmZp Zz4gZG5zX2NvbmZpZzsKKyAvLyBUT0RPKGZ1Y2hzaWEpOiBVc2UgcmVzX25pbml0KCkgd2hlbiBp dCdzIGltcGxlbWVudGVkIG9uIEZ1Y2hzaWEuCistI2lmIGRlZmluZWQoT1NfT1BFTkJTRCkgfHwg ZGVmaW5lZChPU19GVUNIU0lBKQorKyNpZiBkZWZpbmVkKE9TX09QRU5CU0QpIHx8IGRlZmluZWQo T1NfRlVDSFNJQSkgfHwgXAorKyAgKGRlZmluZWQoT1NfTElOVVgpICYmICFkZWZpbmVkKF9fR0xJ QkNfXykpCisgICAvLyBOb3RlOiByZXNfbmluaXQgaW4gZ2xpYmMgYWx3YXlzIHJldHVybnMgMCBh bmQgc2V0cyBSRVNfSU5JVC4KKyAgIC8vIHJlc19pbml0IGJlaGF2ZXMgdGhlIHNhbWUgd2F5Lgor ICAgbWVtc2V0KCZfcmVzLCAwLCBzaXplb2YoX3JlcykpOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9x dDYtd2ViZW5naW5lL3BhdGNoZXMvMDIxNS1jaHJvbWl1bS1tdXNsLWNkZWZzLnBhdGNoIGIvc3Jj cGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIxNS1jaHJvbWl1bS1tdXNsLWNkZWZzLnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uOWQxZGFlYzI5MTE4Ci0t LSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIxNS1jaHJv bWl1bS1tdXNsLWNkZWZzLnBhdGNoCkBAIC0wLDAgKzEsMjkgQEAKKy0tLSBhL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9saWJzeW5jL3NyYy9pbmNsdWRlL3N5bmMvc3luYy5oCisr KysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvbGlic3luYy9zcmMvaW5jbHVk ZS9zeW5jL3N5bmMuaAorQEAgLTE5LDEyICsxOSwxMyBAQAorICNpZm5kZWYgX19TWVNfQ09SRV9T WU5DX0gKKyAjZGVmaW5lIF9fU1lTX0NPUkVfU1lOQ19ICisgCistI2luY2x1ZGUgPHN5cy9jZGVm cy5oPgorICNpbmNsdWRlIDxzdGRpbnQuaD4KKyAKKyAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4K KyAKKy1fX0JFR0lOX0RFQ0xTCisrI2lmZGVmIF9fY3BsdXNwbHVzCisrZXh0ZXJuICJDIiB7Cisr I2VuZGlmCisgCisgc3RydWN0IHN5bmNfbGVnYWN5X21lcmdlX2RhdGEgeworICBpbnQzMl90IGZk MjsKK0BAIC0xNTgsNiArMTU5LDkgQEAgc3RydWN0IHN5bmNfcHRfaW5mbyAqc3luY19wdF9pbmZv KHN0cnVjdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc3luY19w dF9pbmZvICppdHIpOworIHZvaWQgc3luY19mZW5jZV9pbmZvX2ZyZWUoc3RydWN0IHN5bmNfZmVu Y2VfaW5mb19kYXRhICppbmZvKTsKKyAKKy1fX0VORF9ERUNMUworKyNpZmRlZiBfX2NwbHVzcGx1 cworK30KKysjZW5kaWYKKysKKyAKKyAjZW5kaWYgLyogX19TWVNfQ09SRV9TWU5DX0ggKi8KZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMTYtY2hyb21pdW0tbXVz bC1zdGF0LnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIxNi1jaHJvbWl1 bS1tdXNsLXN0YXQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw Li40NTA5YTY5NTdjZDcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUv cGF0Y2hlcy8wMjE2LWNocm9taXVtLW11c2wtc3RhdC5wYXRjaApAQCAtMCwwICsxLDEyIEBACist LS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vYmFzZS9maWxlcy9maWxlLmgKKysrKyBiL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS9iYXNlL2ZpbGVzL2ZpbGUuaAorQEAgLTE5LDcgKzE5LDggQEAKKyAj aW5jbHVkZSAiYnVpbGQvYnVpbGRfY29uZmlnLmgiCisgCisgI2lmIGRlZmluZWQoT1NfQlNEKSB8 fCBkZWZpbmVkKE9TX0FQUExFKSB8fCBkZWZpbmVkKE9TX05BQ0wpIHx8IFwKKy0gICAgZGVmaW5l ZChPU19GVUNIU0lBKSB8fCAoZGVmaW5lZChPU19BTkRST0lEKSAmJiBfX0FORFJPSURfQVBJX18g PCAyMSkKKysgICAgZGVmaW5lZChPU19GVUNIU0lBKSB8fCAoZGVmaW5lZChPU19BTkRST0lEKSAm JiBfX0FORFJPSURfQVBJX18gPCAyMSkgfHwgXAorKyAgICAoZGVmaW5lZChPU19MSU5VWCkgJiYg IWRlZmluZWQoX19HTElCQ19fKSkKKyBzdHJ1Y3Qgc3RhdDsKKyBuYW1lc3BhY2UgYmFzZSB7Cisg dHlwZWRlZiBzdHJ1Y3Qgc3RhdCBzdGF0X3dyYXBwZXJfdDsKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv cXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMTctY2hyb21pdW0tbXVzbC1yZXNvbHZlci5wYXRjaCBi L3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMTctY2hyb21pdW0tbXVzbC1yZXNvbHZl ci5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmMzZDdhZmFk OWIxOQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAy MTctY2hyb21pdW0tbXVzbC1yZXNvbHZlci5wYXRjaApAQCAtMCwwICsxLDc3IEBACistLS0gYS9z cmMvM3JkcGFydHkvY2hyb21pdW0vbmV0L2Rucy9kbnNfY29uZmlnX3NlcnZpY2VfbGludXguY2MK KysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9uZXQvZG5zL2Ruc19jb25maWdfc2VydmljZV9s aW51eC5jYworQEAgLTQzMiwxMSArNDMyLDEzIEBAIGNsYXNzIERuc0NvbmZpZ1NlcnZpY2VMaW51 eDo6Q29uZmlnUmVhZGUKKyAgICAgYmFzZTo6U2NvcGVkQmxvY2tpbmdDYWxsIHNjb3BlZF9ibG9j a2luZ19jYWxsKAorICAgICAgICAgRlJPTV9IRVJFLCBiYXNlOjpCbG9ja2luZ1R5cGU6Ok1BWV9C TE9DSyk7CisgCisrI2lmIGRlZmluZWQoX19HTElCQ19fKQorICAgICBzdGQ6OnVuaXF1ZV9wdHI8 c3RydWN0IF9fcmVzX3N0YXRlPiByZXMgPSByZXNvbHZfcmVhZGVyXy0+R2V0UmVzU3RhdGUoKTsK KyAgICAgaWYgKHJlcykgeworICAgICAgIGRuc19jb25maWdfID0gQ29udmVydFJlc1N0YXRlVG9E bnNDb25maWcoKnJlcy5nZXQoKSk7CisgICAgICAgcmVzb2x2X3JlYWRlcl8tPkNsb3NlUmVzU3Rh dGUocmVzLmdldCgpKTsKKyAgICAgfQorKyNlbmRpZgorIAorICAgICBVTUFfSElTVE9HUkFNX0JP T0xFQU4oIk5ldC5ETlMuRG5zQ29uZmlnLlJlc29sdi5SZWFkIiwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgIGRuc19jb25maWdfLmhhc192YWx1ZSgpKTsKK0BAIC00ODYsNiArNDg4LDcgQEAg Y2xhc3MgRG5zQ29uZmlnU2VydmljZUxpbnV4OjpDb25maWdSZWFkZQorIAorIHN0ZDo6dW5pcXVl X3B0cjxzdHJ1Y3QgX19yZXNfc3RhdGU+CisgRG5zQ29uZmlnU2VydmljZUxpbnV4OjpSZXNvbHZS ZWFkZXI6OkdldFJlc1N0YXRlKCkgeworKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykKKyAgIGF1dG8g cmVzID0gc3RkOjptYWtlX3VuaXF1ZTxzdHJ1Y3QgX19yZXNfc3RhdGU+KCk7CisgICBtZW1zZXQo cmVzLmdldCgpLCAwLCBzaXplb2Yoc3RydWN0IF9fcmVzX3N0YXRlKSk7CisgCitAQCAtNDk1LDEx ICs0OTgsMTYgQEAgRG5zQ29uZmlnU2VydmljZUxpbnV4OjpSZXNvbHZSZWFkZXI6OkdldAorICAg fQorIAorICAgcmV0dXJuIHJlczsKKysjZWxzZQorKyAgcmV0dXJuIG51bGxwdHI7CisrI2VuZGlm CisgfQorIAorIHZvaWQgRG5zQ29uZmlnU2VydmljZUxpbnV4OjpSZXNvbHZSZWFkZXI6OkNsb3Nl UmVzU3RhdGUoCisgICAgIHN0cnVjdCBfX3Jlc19zdGF0ZSogcmVzKSB7CisrI2lmIGRlZmluZWQo X19HTElCQ19fKQorICAgcmVzX25jbG9zZShyZXMpOworKyNlbmRpZgorIH0KKyAKKyBEbnNDb25m aWdTZXJ2aWNlTGludXg6OkRuc0NvbmZpZ1NlcnZpY2VMaW51eCgpCistLS0gYS9zcmMvM3JkcGFy dHkvY2hyb21pdW0vbmV0L2Rucy9kbnNfcmVsb2FkZXIuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS9uZXQvZG5zL2Ruc19yZWxvYWRlci5jYworQEAgLTQsOCArNCw3IEBACisgCisgI2lu Y2x1ZGUgIm5ldC9kbnMvZG5zX3JlbG9hZGVyLmgiCisgCistI2lmIGRlZmluZWQoT1NfUE9TSVgp ICYmICFkZWZpbmVkKE9TX0FQUExFKSAmJiAhZGVmaW5lZChPU19PUEVOQlNEKSAmJiBcCistICAg ICFkZWZpbmVkKE9TX0FORFJPSUQpICYmICFkZWZpbmVkKE9TX0ZVQ0hTSUEpCisrI2lmZGVmIF9f R0xJQkNfXworIAorICNpbmNsdWRlIDxyZXNvbHYuaD4KKyAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS9uZXQvZG5zL2hvc3RfcmVzb2x2ZXJfbWFuYWdlci5jYworKysrIGIvc3JjLzNyZHBh cnR5L2Nocm9taXVtL25ldC9kbnMvaG9zdF9yZXNvbHZlcl9tYW5hZ2VyLmNjCitAQCAtMjcyMCw4 ICsyNzIwLDcgQEAgSG9zdFJlc29sdmVyTWFuYWdlcjo6SG9zdFJlc29sdmVyTWFuYWdlcgorICAg TmV0d29ya0NoYW5nZU5vdGlmaWVyOjpBZGRDb25uZWN0aW9uVHlwZU9ic2VydmVyKHRoaXMpOwor ICAgaWYgKHN5c3RlbV9kbnNfY29uZmlnX25vdGlmaWVyXykKKyAgICAgc3lzdGVtX2Ruc19jb25m aWdfbm90aWZpZXJfLT5BZGRPYnNlcnZlcih0aGlzKTsKKy0jaWYgZGVmaW5lZChPU19QT1NJWCkg JiYgIWRlZmluZWQoT1NfQVBQTEUpICYmICFkZWZpbmVkKE9TX09QRU5CU0QpICYmIFwKKy0gICAg IWRlZmluZWQoT1NfQU5EUk9JRCkKKysjaWZkZWYgX19HTElCQ19fCisgICBFbnN1cmVEbnNSZWxv YWRlckluaXQoKTsKKyAjZW5kaWYKKyAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9uZXQv ZG5zL2hvc3RfcmVzb2x2ZXJfcHJvYy5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL25l dC9kbnMvaG9zdF9yZXNvbHZlcl9wcm9jLmNjCitAQCAtMTc2LDggKzE3Niw3IEBAIGludCBTeXN0 ZW1Ib3N0UmVzb2x2ZXJDYWxsKGNvbnN0IHN0ZDo6c3QKKyAgIGJhc2U6OlNjb3BlZEJsb2NraW5n Q2FsbCBzY29wZWRfYmxvY2tpbmdfY2FsbChGUk9NX0hFUkUsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZTo6QmxvY2tpbmdUeXBlOjpXSUxMX0JM T0NLKTsKKyAKKy0jaWYgZGVmaW5lZChPU19QT1NJWCkgJiYgIWRlZmluZWQoT1NfQVBQTEUpICYm ICFkZWZpbmVkKE9TX09QRU5CU0QpICYmIFwKKy0gICAgIWRlZmluZWQoT1NfQU5EUk9JRCkgJiYg IWRlZmluZWQoT1NfRlVDSFNJQSkKKysjaWZkZWYgX19HTElCQ19fCisgICBEbnNSZWxvYWRlck1h eWJlUmVsb2FkKCk7CisgI2VuZGlmCisgICBhYnNsOjpvcHRpb25hbDxBZGRyZXNzSW5mbz4gYWk7 CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wNjAwLWNocm9taXVt LXNuZGlvLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDYwMC1jaHJvbWl1 bS1zbmRpby5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjAz MDI4NzRmZmJhNAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRj aGVzLzA2MDAtY2hyb21pdW0tc25kaW8ucGF0Y2gKQEAgLTAsMCArMSw4NzYgQEAKKy0tLSBhL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS9tZWRpYS9CVUlMRC5nbgorKysrIGIvc3JjLzNyZHBhcnR5L2No cm9taXVtL21lZGlhL0JVSUxELmduCitAQCAtNzIsNiArNzIsOSBAQCBjb25maWcoIm1lZGlhX2Nv bmZpZyIpIHsKKyAgICAgICBkZWZpbmVzICs9IFsgIkRMT1BFTl9QVUxTRUFVRElPIiBdCisgICAg IH0KKyAgIH0KKysgIGlmICh1c2Vfc25kaW8pIHsKKysgICAgZGVmaW5lcyArPSBbICJVU0VfU05E SU8iIF0KKysgIH0KKyAgIGlmICh1c2VfY3JhcykgeworICAgICBkZWZpbmVzICs9IFsgIlVTRV9D UkFTIiBdCisgICB9CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vbWVkaWEvYXVkaW8vQlVJ TEQuZ24KKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9tZWRpYS9hdWRpby9CVUlMRC5nbgor QEAgLTI0MCw2ICsyNDAsMTcgQEAgc291cmNlX3NldCgiYXVkaW8iKSB7CisgICAgIHNvdXJjZXMg Kz0gWyAibGludXgvYXVkaW9fbWFuYWdlcl9saW51eC5jYyIgXQorICAgfQorIAorKyAgaWYgKHVz ZV9zbmRpbykgeworKyAgICBsaWJzICs9IFsgInNuZGlvIiBdCisrICAgIHNvdXJjZXMgKz0gWwor KyAgICAgICJzbmRpby9hdWRpb19tYW5hZ2VyX3NuZGlvLmNjIiwKKysgICAgICAic25kaW8vc25k aW9faW5wdXQuY2MiLAorKyAgICAgICJzbmRpby9zbmRpb19pbnB1dC5oIiwKKysgICAgICAic25k aW8vc25kaW9fb3V0cHV0LmNjIiwKKysgICAgICAic25kaW8vc25kaW9fb3V0cHV0LmgiCisrICAg IF0KKysgIH0KKysKKyAgIGlmICh1c2VfYWxzYSkgeworICAgICBsaWJzICs9IFsgImFzb3VuZCIg XQorICAgICBzb3VyY2VzICs9IFsKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9tZWRpYS9h dWRpby9saW51eC9hdWRpb19tYW5hZ2VyX2xpbnV4LmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hy b21pdW0vbWVkaWEvYXVkaW8vbGludXgvYXVkaW9fbWFuYWdlcl9saW51eC5jYworQEAgLTI1LDYg KzI1LDExIEBACisgI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL3B1bHNlL2F1ZGlvX21hbmFnZXJfcHVs c2UuaCIKKyAjaW5jbHVkZSAibWVkaWEvYXVkaW8vcHVsc2UvcHVsc2VfdXRpbC5oIgorICNlbmRp ZgorKyNpZiBkZWZpbmVkKFVTRV9TTkRJTykKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8vc25kaW8v YXVkaW9fbWFuYWdlcl9zbmRpby5oIgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9zbmRpby9zbmRp b19pbnB1dC5oIgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9zbmRpby9zbmRpb19vdXRwdXQuaCIK KysjZW5kaWYKKyAKKyBuYW1lc3BhY2UgbWVkaWEgeworIAorQEAgLTMyLDcgKzM3LDggQEAgZW51 bSBMaW51eEF1ZGlvSU8geworICAga1B1bHNlLAorICAga0Fsc2EsCisgICBrQ3JhcywKKy0gIGtB dWRpb0lPTWF4ID0ga0NyYXMgIC8vIE11c3QgYWx3YXlzIGJlIGVxdWFsIHRvIGxhcmdlc3QgbG9n Z2VkIGVudHJ5LgorKyAga1NuZGlvLAorKyAga0F1ZGlvSU9NYXggPSBrU25kaW8gLy8gTXVzdCBh bHdheXMgYmUgZXF1YWwgdG8gbGFyZ2VzdCBsb2dnZWQgZW50cnkuCisgfTsKKyAKKyBzdGQ6OnVu aXF1ZV9wdHI8bWVkaWE6OkF1ZGlvTWFuYWdlcj4gQ3JlYXRlQXVkaW9NYW5hZ2VyKAorQEAgLTQ1 LDYgKzUxLDE2IEBAIHN0ZDo6dW5pcXVlX3B0cjxtZWRpYTo6QXVkaW9NYW5hZ2VyPiBDcmUKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXVkaW9fbG9nX2Zh Y3RvcnkpOworICAgfQorIAorKyNpZiBkZWZpbmVkKFVTRV9TTkRJTykKKysgIHN0cnVjdCBzaW9f aGRsICpoZGwgPSBzaW9fb3BlbihTSU9fREVWQU5ZLCBTSU9fUExBWSwgMCk7CisrICBpZiAoaGRs ICE9IE5VTEwpIHsKKysgICAgc2lvX2Nsb3NlKGhkbCk7CisrICAgIFVNQV9ISVNUT0dSQU1fRU5V TUVSQVRJT04oIk1lZGlhLkxpbnV4QXVkaW9JTyIsIGtTbmRpbywga0F1ZGlvSU9NYXggKyAxKTsK KysgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8QXVkaW9NYW5hZ2VyU25kaW8+KHN0ZDo6bW92 ZShhdWRpb190aHJlYWQpLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYXVkaW9fbG9nX2ZhY3RvcnkpOworKyAgfQorKyNlbmRpZgorKworICNpZiBk ZWZpbmVkKFVTRV9DUkFTKQorICAgaWYgKGJhc2U6OkNvbW1hbmRMaW5lOjpGb3JDdXJyZW50UHJv Y2VzcygpLT5IYXNTd2l0Y2goc3dpdGNoZXM6OmtVc2VDcmFzKSkgeworICAgICBVTUFfSElTVE9H UkFNX0VOVU1FUkFUSU9OKCJNZWRpYS5MaW51eEF1ZGlvSU8iLCBrQ3Jhcywga0F1ZGlvSU9NYXgg KyAxKTsKKy0tLSAvZGV2L251bGwKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9tZWRpYS9h dWRpby9zbmRpby9hdWRpb19tYW5hZ2VyX3NuZGlvLmNjCitAQCAtMCwwICsxLDE0OCBAQAorKy8v IENvcHlyaWdodCAoYykgMjAxMiBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNl cnZlZC4KKysvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1z dHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisrLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4K KysKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8vc25kaW8vYXVkaW9fbWFuYWdlcl9zbmRpby5oIgor KworKyNpbmNsdWRlICJiYXNlL21ldHJpY3MvaGlzdG9ncmFtX21hY3Jvcy5oIgorKyNpbmNsdWRl ICJiYXNlL21lbW9yeS9wdHJfdXRpbC5oIgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9hdWRpb19k ZXZpY2VfZGVzY3JpcHRpb24uaCIKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8vYXVkaW9fb3V0cHV0 X2Rpc3BhdGNoZXIuaCIKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8vc25kaW8vc25kaW9faW5wdXQu aCIKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8vc25kaW8vc25kaW9fb3V0cHV0LmgiCisrI2luY2x1 ZGUgIm1lZGlhL2Jhc2UvbGltaXRzLmgiCisrI2luY2x1ZGUgIm1lZGlhL2Jhc2UvbWVkaWFfc3dp dGNoZXMuaCIKKysKKytuYW1lc3BhY2UgbWVkaWEgeworKworKworKy8vIE1heGltdW0gbnVtYmVy IG9mIG91dHB1dCBzdHJlYW1zIHRoYXQgY2FuIGJlIG9wZW4gc2ltdWx0YW5lb3VzbHkuCisrc3Rh dGljIGNvbnN0IGludCBrTWF4T3V0cHV0U3RyZWFtcyA9IDQ7CisrCisrLy8gRGVmYXVsdCBzYW1w bGUgcmF0ZSBmb3IgaW5wdXQgYW5kIG91dHB1dCBzdHJlYW1zLgorK3N0YXRpYyBjb25zdCBpbnQg a0RlZmF1bHRTYW1wbGVSYXRlID0gNDgwMDA7CisrCisrdm9pZCBBZGREZWZhdWx0RGV2aWNlKEF1 ZGlvRGV2aWNlTmFtZXMqIGRldmljZV9uYW1lcykgeworKyAgRENIRUNLKGRldmljZV9uYW1lcy0+ ZW1wdHkoKSk7CisrICBkZXZpY2VfbmFtZXMtPnB1c2hfZnJvbnQoQXVkaW9EZXZpY2VOYW1lOjpD cmVhdGVEZWZhdWx0KCkpOworK30KKysKKytib29sIEF1ZGlvTWFuYWdlclNuZGlvOjpIYXNBdWRp b091dHB1dERldmljZXMoKSB7CisrICByZXR1cm4gdHJ1ZTsKKyt9CisrCisrYm9vbCBBdWRpb01h bmFnZXJTbmRpbzo6SGFzQXVkaW9JbnB1dERldmljZXMoKSB7CisrICByZXR1cm4gdHJ1ZTsKKyt9 CisrCisrdm9pZCBBdWRpb01hbmFnZXJTbmRpbzo6R2V0QXVkaW9JbnB1dERldmljZU5hbWVzKAor KyAgICBBdWRpb0RldmljZU5hbWVzKiBkZXZpY2VfbmFtZXMpIHsKKysgIERDSEVDSyhkZXZpY2Vf bmFtZXMtPmVtcHR5KCkpOworKyAgQWRkRGVmYXVsdERldmljZShkZXZpY2VfbmFtZXMpOworK30K KysKKyt2b2lkIEF1ZGlvTWFuYWdlclNuZGlvOjpHZXRBdWRpb091dHB1dERldmljZU5hbWVzKAor KyAgICBBdWRpb0RldmljZU5hbWVzKiBkZXZpY2VfbmFtZXMpIHsKKysgIEFkZERlZmF1bHREZXZp Y2UoZGV2aWNlX25hbWVzKTsKKyt9CisrCisrY29uc3QgY2hhciogQXVkaW9NYW5hZ2VyU25kaW86 OkdldE5hbWUoKSB7CisrICByZXR1cm4gIlNORElPIjsKKyt9CisrCisrQXVkaW9QYXJhbWV0ZXJz IEF1ZGlvTWFuYWdlclNuZGlvOjpHZXRJbnB1dFN0cmVhbVBhcmFtZXRlcnMoCisrICAgIGNvbnN0 IHN0ZDo6c3RyaW5nJiBkZXZpY2VfaWQpIHsKKysgIHN0YXRpYyBjb25zdCBpbnQga0RlZmF1bHRJ bnB1dEJ1ZmZlclNpemUgPSAxMDI0OworKworKyAgaW50IHVzZXJfYnVmZmVyX3NpemUgPSBHZXRV c2VyQnVmZmVyU2l6ZSgpOworKyAgaW50IGJ1ZmZlcl9zaXplID0gdXNlcl9idWZmZXJfc2l6ZSA/ CisrICAgICAgdXNlcl9idWZmZXJfc2l6ZSA6IGtEZWZhdWx0SW5wdXRCdWZmZXJTaXplOworKwor KyAgcmV0dXJuIEF1ZGlvUGFyYW1ldGVycygKKysgICAgICBBdWRpb1BhcmFtZXRlcnM6OkFVRElP X1BDTV9MT1dfTEFURU5DWSwgQ0hBTk5FTF9MQVlPVVRfU1RFUkVPLAorKyAgICAgIGtEZWZhdWx0 U2FtcGxlUmF0ZSwgYnVmZmVyX3NpemUpOworK30KKysKKytBdWRpb01hbmFnZXJTbmRpbzo6QXVk aW9NYW5hZ2VyU25kaW8oc3RkOjp1bmlxdWVfcHRyPEF1ZGlvVGhyZWFkPiBhdWRpb190aHJlYWQs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdWRpb0xvZ0ZhY3Rv cnkqIGF1ZGlvX2xvZ19mYWN0b3J5KQorKyAgICA6IEF1ZGlvTWFuYWdlckJhc2Uoc3RkOjptb3Zl KGF1ZGlvX3RocmVhZCksCisrICAgICAgICAgICAgICAgICAgICAgICBhdWRpb19sb2dfZmFjdG9y eSkgeworKyAgRExPRyhXQVJOSU5HKSA8PCAiQXVkaW9NYW5hZ2VyU25kaW8iOworKyAgU2V0TWF4 T3V0cHV0U3RyZWFtc0FsbG93ZWQoa01heE91dHB1dFN0cmVhbXMpOworK30KKysKKytBdWRpb01h bmFnZXJTbmRpbzo6fkF1ZGlvTWFuYWdlclNuZGlvKCkgeworKyAgU2h1dGRvd24oKTsKKyt9Cisr CisrQXVkaW9PdXRwdXRTdHJlYW0qIEF1ZGlvTWFuYWdlclNuZGlvOjpNYWtlTGluZWFyT3V0cHV0 U3RyZWFtKAorKyAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcywKKysgICAgY29uc3Qg TG9nQ2FsbGJhY2smIGxvZ19jYWxsYmFjaykgeworKyAgRENIRUNLX0VRKEF1ZGlvUGFyYW1ldGVy czo6QVVESU9fUENNX0xJTkVBUiwgcGFyYW1zLmZvcm1hdCgpKTsKKysgIHJldHVybiBNYWtlT3V0 cHV0U3RyZWFtKHBhcmFtcyk7CisrfQorKworK0F1ZGlvT3V0cHV0U3RyZWFtKiBBdWRpb01hbmFn ZXJTbmRpbzo6TWFrZUxvd0xhdGVuY3lPdXRwdXRTdHJlYW0oCisrICAgIGNvbnN0IEF1ZGlvUGFy YW1ldGVycyYgcGFyYW1zLAorKyAgICBjb25zdCBzdGQ6OnN0cmluZyYgZGV2aWNlX2lkLAorKyAg ICBjb25zdCBMb2dDYWxsYmFjayYgbG9nX2NhbGxiYWNrKSB7CisrICBETE9HX0lGKEVSUk9SLCAh ZGV2aWNlX2lkLmVtcHR5KCkpIDw8ICJOb3QgaW1wbGVtZW50ZWQhIjsKKysgIERDSEVDS19FUShB dWRpb1BhcmFtZXRlcnM6OkFVRElPX1BDTV9MT1dfTEFURU5DWSwgcGFyYW1zLmZvcm1hdCgpKTsK KysgIHJldHVybiBNYWtlT3V0cHV0U3RyZWFtKHBhcmFtcyk7CisrfQorKworK0F1ZGlvSW5wdXRT dHJlYW0qIEF1ZGlvTWFuYWdlclNuZGlvOjpNYWtlTGluZWFySW5wdXRTdHJlYW0oCisrICAgIGNv bnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAorKyAgICBjb25zdCBzdGQ6OnN0cmluZyYgZGV2 aWNlX2lkLAorKyAgICBjb25zdCBMb2dDYWxsYmFjayYgbG9nX2NhbGxiYWNrKSB7CisrICBEQ0hF Q0tfRVEoQXVkaW9QYXJhbWV0ZXJzOjpBVURJT19QQ01fTElORUFSLCBwYXJhbXMuZm9ybWF0KCkp OworKyAgcmV0dXJuIE1ha2VJbnB1dFN0cmVhbShwYXJhbXMpOworK30KKysKKytBdWRpb0lucHV0 U3RyZWFtKiBBdWRpb01hbmFnZXJTbmRpbzo6TWFrZUxvd0xhdGVuY3lJbnB1dFN0cmVhbSgKKysg ICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMsCisrICAgIGNvbnN0IHN0ZDo6c3RyaW5n JiBkZXZpY2VfaWQsCisrICAgIGNvbnN0IExvZ0NhbGxiYWNrJiBsb2dfY2FsbGJhY2spIHsKKysg IERDSEVDS19FUShBdWRpb1BhcmFtZXRlcnM6OkFVRElPX1BDTV9MT1dfTEFURU5DWSwgcGFyYW1z LmZvcm1hdCgpKTsKKysgIHJldHVybiBNYWtlSW5wdXRTdHJlYW0ocGFyYW1zKTsKKyt9CisrCisr QXVkaW9QYXJhbWV0ZXJzIEF1ZGlvTWFuYWdlclNuZGlvOjpHZXRQcmVmZXJyZWRPdXRwdXRTdHJl YW1QYXJhbWV0ZXJzKAorKyAgICBjb25zdCBzdGQ6OnN0cmluZyYgb3V0cHV0X2RldmljZV9pZCwK KysgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBpbnB1dF9wYXJhbXMpIHsKKysgIC8vIFRPRE8o dG9tbWkpOiBTdXBwb3J0IHxvdXRwdXRfZGV2aWNlX2lkfC4KKysgIERMT0dfSUYoRVJST1IsICFv dXRwdXRfZGV2aWNlX2lkLmVtcHR5KCkpIDw8ICJOb3QgaW1wbGVtZW50ZWQhIjsKKysgIHN0YXRp YyBjb25zdCBpbnQga0RlZmF1bHRPdXRwdXRCdWZmZXJTaXplID0gMjA0ODsKKysKKysgIENoYW5u ZWxMYXlvdXQgY2hhbm5lbF9sYXlvdXQgPSBDSEFOTkVMX0xBWU9VVF9TVEVSRU87CisrICBpbnQg c2FtcGxlX3JhdGUgPSBrRGVmYXVsdFNhbXBsZVJhdGU7CisrICBpbnQgYnVmZmVyX3NpemUgPSBr RGVmYXVsdE91dHB1dEJ1ZmZlclNpemU7CisrICBpZiAoaW5wdXRfcGFyYW1zLklzVmFsaWQoKSkg eworKyAgICBzYW1wbGVfcmF0ZSA9IGlucHV0X3BhcmFtcy5zYW1wbGVfcmF0ZSgpOworKyAgICBj aGFubmVsX2xheW91dCA9IGlucHV0X3BhcmFtcy5jaGFubmVsX2xheW91dCgpOworKyAgICBidWZm ZXJfc2l6ZSA9IHN0ZDo6bWluKGJ1ZmZlcl9zaXplLCBpbnB1dF9wYXJhbXMuZnJhbWVzX3Blcl9i dWZmZXIoKSk7CisrICB9CisrCisrICBpbnQgdXNlcl9idWZmZXJfc2l6ZSA9IEdldFVzZXJCdWZm ZXJTaXplKCk7CisrICBpZiAodXNlcl9idWZmZXJfc2l6ZSkKKysgICAgYnVmZmVyX3NpemUgPSB1 c2VyX2J1ZmZlcl9zaXplOworKworKyAgcmV0dXJuIEF1ZGlvUGFyYW1ldGVycygKKysgICAgICBB dWRpb1BhcmFtZXRlcnM6OkFVRElPX1BDTV9MT1dfTEFURU5DWSwgY2hhbm5lbF9sYXlvdXQsCisr ICAgICAgc2FtcGxlX3JhdGUsIGJ1ZmZlcl9zaXplKTsKKyt9CisrCisrQXVkaW9JbnB1dFN0cmVh bSogQXVkaW9NYW5hZ2VyU25kaW86Ok1ha2VJbnB1dFN0cmVhbSgKKysgICAgY29uc3QgQXVkaW9Q YXJhbWV0ZXJzJiBwYXJhbXMpIHsKKysgIERMT0coV0FSTklORykgPDwgIk1ha2VJbnB1dFN0cmVh bSI7CisrICByZXR1cm4gbmV3IFNuZGlvQXVkaW9JbnB1dFN0cmVhbSh0aGlzLAorKyAgICAgICAg ICAgICBBdWRpb0RldmljZURlc2NyaXB0aW9uOjprRGVmYXVsdERldmljZUlkLCBwYXJhbXMpOwor K30KKysKKytBdWRpb091dHB1dFN0cmVhbSogQXVkaW9NYW5hZ2VyU25kaW86Ok1ha2VPdXRwdXRT dHJlYW0oCisrICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zKSB7CisrICBETE9HKFdB Uk5JTkcpIDw8ICJNYWtlT3V0cHV0U3RyZWFtIjsKKysgIHJldHVybiBuZXcgU25kaW9BdWRpb091 dHB1dFN0cmVhbShwYXJhbXMsIHRoaXMpOworK30KKysKKyt9ICAvLyBuYW1lc3BhY2UgbWVkaWEK Ky0tLSAvZGV2L251bGwKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9tZWRpYS9hdWRpby9z bmRpby9hdWRpb19tYW5hZ2VyX3NuZGlvLmgKK0BAIC0wLDAgKzEsNjUgQEAKKysvLyBDb3B5cmln aHQgKGMpIDIwMTIgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisr Ly8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGlj ZW5zZSB0aGF0IGNhbiBiZQorKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisrCisrI2lm bmRlZiBNRURJQV9BVURJT19TTkRJT19BVURJT19NQU5BR0VSX1NORElPX0hfCisrI2RlZmluZSBN RURJQV9BVURJT19TTkRJT19BVURJT19NQU5BR0VSX1NORElPX0hfCisrCisrI2luY2x1ZGUgPHNl dD4KKysKKysjaW5jbHVkZSAiYmFzZS9jb21waWxlcl9zcGVjaWZpYy5oIgorKyNpbmNsdWRlICJi YXNlL21hY3Jvcy5oIgorKyNpbmNsdWRlICJiYXNlL21lbW9yeS9yZWZfY291bnRlZC5oIgorKyNp bmNsdWRlICJiYXNlL3RocmVhZGluZy90aHJlYWQuaCIKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8v YXVkaW9fbWFuYWdlcl9iYXNlLmgiCisrCisrbmFtZXNwYWNlIG1lZGlhIHsKKysKKytjbGFzcyBN RURJQV9FWFBPUlQgQXVkaW9NYW5hZ2VyU25kaW8gOiBwdWJsaWMgQXVkaW9NYW5hZ2VyQmFzZSB7 CisrIHB1YmxpYzoKKysgIEF1ZGlvTWFuYWdlclNuZGlvKHN0ZDo6dW5pcXVlX3B0cjxBdWRpb1Ro cmVhZD4gYXVkaW9fdGhyZWFkLAorKyAgICAgICAgICAgICAgICAgICBBdWRpb0xvZ0ZhY3Rvcnkq IGF1ZGlvX2xvZ19mYWN0b3J5KTsKKysgIH5BdWRpb01hbmFnZXJTbmRpbygpIG92ZXJyaWRlOwor KworKyAgLy8gSW1wbGVtZW50YXRpb24gb2YgQXVkaW9NYW5hZ2VyLgorKyAgYm9vbCBIYXNBdWRp b091dHB1dERldmljZXMoKSBvdmVycmlkZTsKKysgIGJvb2wgSGFzQXVkaW9JbnB1dERldmljZXMo KSBvdmVycmlkZTsKKysgIHZvaWQgR2V0QXVkaW9JbnB1dERldmljZU5hbWVzKEF1ZGlvRGV2aWNl TmFtZXMqIGRldmljZV9uYW1lcykgb3ZlcnJpZGU7CisrICB2b2lkIEdldEF1ZGlvT3V0cHV0RGV2 aWNlTmFtZXMoQXVkaW9EZXZpY2VOYW1lcyogZGV2aWNlX25hbWVzKSBvdmVycmlkZTsKKysgIEF1 ZGlvUGFyYW1ldGVycyBHZXRJbnB1dFN0cmVhbVBhcmFtZXRlcnMoCisrICAgICAgY29uc3Qgc3Rk OjpzdHJpbmcmIGRldmljZV9pZCkgb3ZlcnJpZGU7CisrICBjb25zdCBjaGFyKiBHZXROYW1lKCkg b3ZlcnJpZGU7CisrCisrICAvLyBJbXBsZW1lbnRhdGlvbiBvZiBBdWRpb01hbmFnZXJCYXNlLgor KyAgQXVkaW9PdXRwdXRTdHJlYW0qIE1ha2VMaW5lYXJPdXRwdXRTdHJlYW0oCisrICAgICAgY29u c3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMsCisrICAgICAgY29uc3QgTG9nQ2FsbGJhY2smIGxv Z19jYWxsYmFjaykgb3ZlcnJpZGU7CisrICBBdWRpb091dHB1dFN0cmVhbSogTWFrZUxvd0xhdGVu Y3lPdXRwdXRTdHJlYW0oCisrICAgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMsCisr ICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGRldmljZV9pZCwKKysgICAgICBjb25zdCBMb2dDYWxs YmFjayYgbG9nX2NhbGxiYWNrKSBvdmVycmlkZTsKKysgIEF1ZGlvSW5wdXRTdHJlYW0qIE1ha2VM aW5lYXJJbnB1dFN0cmVhbSgKKysgICAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcywK KysgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgZGV2aWNlX2lkLAorKyAgICAgIGNvbnN0IExvZ0Nh bGxiYWNrJiBsb2dfY2FsbGJhY2spIG92ZXJyaWRlOworKyAgQXVkaW9JbnB1dFN0cmVhbSogTWFr ZUxvd0xhdGVuY3lJbnB1dFN0cmVhbSgKKysgICAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBh cmFtcywKKysgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgZGV2aWNlX2lkLAorKyAgICAgIGNvbnN0 IExvZ0NhbGxiYWNrJiBsb2dfY2FsbGJhY2spIG92ZXJyaWRlOworKworKyBwcm90ZWN0ZWQ6Cisr ICBBdWRpb1BhcmFtZXRlcnMgR2V0UHJlZmVycmVkT3V0cHV0U3RyZWFtUGFyYW1ldGVycygKKysg ICAgICBjb25zdCBzdGQ6OnN0cmluZyYgb3V0cHV0X2RldmljZV9pZCwKKysgICAgICBjb25zdCBB dWRpb1BhcmFtZXRlcnMmIGlucHV0X3BhcmFtcykgb3ZlcnJpZGU7CisrCisrIHByaXZhdGU6Cisr ICAvLyBDYWxsZWQgYnkgTWFrZUxpbmVhck91dHB1dFN0cmVhbSBhbmQgTWFrZUxvd0xhdGVuY3lP dXRwdXRTdHJlYW0uCisrICBBdWRpb091dHB1dFN0cmVhbSogTWFrZU91dHB1dFN0cmVhbShjb25z dCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcyk7CisrICBBdWRpb0lucHV0U3RyZWFtKiBNYWtlSW5w dXRTdHJlYW0oY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMpOworKworKyAgRElTQUxMT1df Q09QWV9BTkRfQVNTSUdOKEF1ZGlvTWFuYWdlclNuZGlvKTsKKyt9OworKworK30gIC8vIG5hbWVz cGFjZSBtZWRpYQorKworKyNlbmRpZiAgLy8gTUVESUFfQVVESU9fU05ESU9fQVVESU9fTUFOQUdF Ul9TTkRJT19IXworLS0tIC9kZXYvbnVsbAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL21l ZGlhL2F1ZGlvL3NuZGlvL3NuZGlvX2lucHV0LmNjCitAQCAtMCwwICsxLDIwMCBAQAorKy8vIENv cHlyaWdodCAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor Ky8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxp Y2Vuc2UgdGhhdCBjYW4gYmUKKysvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorKworKyNp bmNsdWRlICJiYXNlL2JpbmQuaCIKKysjaW5jbHVkZSAiYmFzZS9sb2dnaW5nLmgiCisrI2luY2x1 ZGUgImJhc2UvbWFjcm9zLmgiCisrI2luY2x1ZGUgIm1lZGlhL2Jhc2UvYXVkaW9fdGltZXN0YW1w X2hlbHBlci5oIgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9zbmRpby9hdWRpb19tYW5hZ2VyX3Nu ZGlvLmgiCisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL2F1ZGlvX21hbmFnZXIuaCIKKysjaW5jbHVk ZSAibWVkaWEvYXVkaW8vc25kaW8vc25kaW9faW5wdXQuaCIKKysKKytuYW1lc3BhY2UgbWVkaWEg eworKworK3N0YXRpYyBjb25zdCBTYW1wbGVGb3JtYXQga1NhbXBsZUZvcm1hdCA9IGtTYW1wbGVG b3JtYXRTMTY7CisrCisrdm9pZCBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06Ok9uTW92ZUNhbGxiYWNr KHZvaWQgKmFyZywgaW50IGRlbHRhKQorK3sKKysgIFNuZGlvQXVkaW9JbnB1dFN0cmVhbSogc2Vs ZiA9IHN0YXRpY19jYXN0PFNuZGlvQXVkaW9JbnB1dFN0cmVhbSo+KGFyZyk7CisrCisrICBzZWxm LT5od19kZWxheSArPSBkZWx0YTsKKyt9CisrCisrdm9pZCAqU25kaW9BdWRpb0lucHV0U3RyZWFt OjpUaHJlYWRFbnRyeSh2b2lkICphcmcpIHsKKysgIFNuZGlvQXVkaW9JbnB1dFN0cmVhbSogc2Vs ZiA9IHN0YXRpY19jYXN0PFNuZGlvQXVkaW9JbnB1dFN0cmVhbSo+KGFyZyk7CisrCisrICBzZWxm LT5UaHJlYWRMb29wKCk7CisrICByZXR1cm4gTlVMTDsKKyt9CisrCisrU25kaW9BdWRpb0lucHV0 U3RyZWFtOjpTbmRpb0F1ZGlvSW5wdXRTdHJlYW0oQXVkaW9NYW5hZ2VyQmFzZSogbWFuYWdlciwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6 OnN0cmluZyYgZGV2aWNlX25hbWUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMpCisrICAgIDogbWFuYWdl cihtYW5hZ2VyKSwKKysgICAgICBwYXJhbXMocGFyYW1zKSwKKysgICAgICBhdWRpb19idXMoQXVk aW9CdXM6OkNyZWF0ZShwYXJhbXMpKSwKKysgICAgICBzdGF0ZShrQ2xvc2VkKSB7CisrfQorKwor K1NuZGlvQXVkaW9JbnB1dFN0cmVhbTo6flNuZGlvQXVkaW9JbnB1dFN0cmVhbSgpIHsKKysgIGlm IChzdGF0ZSAhPSBrQ2xvc2VkKQorKyAgICBDbG9zZSgpOworK30KKysKKytib29sIFNuZGlvQXVk aW9JbnB1dFN0cmVhbTo6T3BlbigpIHsKKysgIHN0cnVjdCBzaW9fcGFyIHBhcjsKKysgIGludCBz aWc7CisrCisrICBpZiAoc3RhdGUgIT0ga0Nsb3NlZCkKKysgICAgcmV0dXJuIGZhbHNlOworKwor KyAgaWYgKHBhcmFtcy5mb3JtYXQoKSAhPSBBdWRpb1BhcmFtZXRlcnM6OkFVRElPX1BDTV9MSU5F QVIgJiYKKysgICAgICBwYXJhbXMuZm9ybWF0KCkgIT0gQXVkaW9QYXJhbWV0ZXJzOjpBVURJT19Q Q01fTE9XX0xBVEVOQ1kpIHsKKysgICAgTE9HKFdBUk5JTkcpIDw8ICJVbnN1cHBvcnRlZCBhdWRp byBmb3JtYXQuIjsKKysgICAgcmV0dXJuIGZhbHNlOworKyAgfQorKworKyAgc2lvX2luaXRwYXIo JnBhcik7CisrICBwYXIucmF0ZSA9IHBhcmFtcy5zYW1wbGVfcmF0ZSgpOworKyAgcGFyLnJjaGFu ID0gcGFyYW1zLmNoYW5uZWxzKCk7CisrICBwYXIuYml0cyA9IFNhbXBsZUZvcm1hdFRvQml0c1Bl ckNoYW5uZWwoa1NhbXBsZUZvcm1hdCk7CisrICBwYXIuYnBzID0gcGFyLmJpdHMgLyA4OworKyAg cGFyLnNpZyA9IHNpZyA9IHBhci5iaXRzICE9IDggPyAxIDogMDsKKysgIHBhci5sZSA9IFNJT19M RV9OQVRJVkU7CisrICBwYXIuYXBwYnVmc3ogPSBwYXJhbXMuZnJhbWVzX3Blcl9idWZmZXIoKTsK KysKKysgIGhkbCA9IHNpb19vcGVuKFNJT19ERVZBTlksIFNJT19SRUMsIDApOworKworKyAgaWYg KGhkbCA9PSBOVUxMKSB7CisrICAgIExPRyhFUlJPUikgPDwgIkNvdWxkbid0IG9wZW4gYXVkaW8g ZGV2aWNlLiI7CisrICAgIHJldHVybiBmYWxzZTsKKysgIH0KKysKKysgIGlmICghc2lvX3NldHBh cihoZGwsICZwYXIpIHx8ICFzaW9fZ2V0cGFyKGhkbCwgJnBhcikpIHsKKysgICAgTE9HKEVSUk9S KSA8PCAiQ291bGRuJ3Qgc2V0IGF1ZGlvIHBhcmFtZXRlcnMuIjsKKysgICAgZ290byBiYWRfY2xv c2U7CisrICB9CisrCisrICBpZiAocGFyLnJhdGUgICE9ICh1bnNpZ25lZCBpbnQpcGFyYW1zLnNh bXBsZV9yYXRlKCkgfHwKKysgICAgICBwYXIucmNoYW4gIT0gKHVuc2lnbmVkIGludClwYXJhbXMu Y2hhbm5lbHMoKSB8fAorKyAgICAgIHBhci5iaXRzICAhPSAodW5zaWduZWQgaW50KVNhbXBsZUZv cm1hdFRvQml0c1BlckNoYW5uZWwoa1NhbXBsZUZvcm1hdCkgfHwKKysgICAgICBwYXIuc2lnICAg IT0gKHVuc2lnbmVkIGludClzaWcgfHwKKysgICAgICAocGFyLmJwcyA+IDEgJiYgcGFyLmxlICE9 IFNJT19MRV9OQVRJVkUpIHx8CisrICAgICAgKHBhci5iaXRzICE9IHBhci5icHMgKiA4KSkgewor KyAgICBMT0coRVJST1IpIDw8ICJVbnN1cHBvcnRlZCBhdWRpbyBwYXJhbWV0ZXJzLiI7CisrICAg IGdvdG8gYmFkX2Nsb3NlOworKyAgfQorKyAgc3RhdGUgPSBrU3RvcHBlZDsKKysgIGJ1ZmZlciA9 IG5ldyBjaGFyW2F1ZGlvX2J1cy0+ZnJhbWVzKCkgKiBwYXJhbXMuR2V0Qnl0ZXNQZXJGcmFtZShr U2FtcGxlRm9ybWF0KV07CisrICBzaW9fb25tb3ZlKGhkbCwgJk9uTW92ZUNhbGxiYWNrLCB0aGlz KTsKKysgIHJldHVybiB0cnVlOworK2JhZF9jbG9zZToKKysgIHNpb19jbG9zZShoZGwpOworKyAg cmV0dXJuIGZhbHNlOworK30KKysKKyt2b2lkIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6U3RhcnQo QXVkaW9JbnB1dENhbGxiYWNrKiBjYikgeworKworKyAgU3RhcnRBZ2MoKTsKKysKKysgIHN0YXRl ID0ga1J1bm5pbmc7CisrICBod19kZWxheSA9IDA7CisrICBjYWxsYmFjayA9IGNiOworKyAgc2lv X3N0YXJ0KGhkbCk7CisrICBpZiAocHRocmVhZF9jcmVhdGUoJnRocmVhZCwgTlVMTCwgJlRocmVh ZEVudHJ5LCB0aGlzKSAhPSAwKSB7CisrICAgIExPRyhFUlJPUikgPDwgIkZhaWxlZCB0byBjcmVh dGUgcmVhbC10aW1lIHRocmVhZCBmb3IgcmVjb3JkaW5nLiI7CisrICAgIHNpb19zdG9wKGhkbCk7 CisrICAgIHN0YXRlID0ga1N0b3BwZWQ7CisrICB9CisrfQorKworK3ZvaWQgU25kaW9BdWRpb0lu cHV0U3RyZWFtOjpTdG9wKCkgeworKworKyAgaWYgKHN0YXRlID09IGtTdG9wcGVkKQorKyAgICBy ZXR1cm47CisrCisrICBzdGF0ZSA9IGtTdG9wV2FpdDsKKysgIHB0aHJlYWRfam9pbih0aHJlYWQs IE5VTEwpOworKyAgc2lvX3N0b3AoaGRsKTsKKysgIHN0YXRlID0ga1N0b3BwZWQ7CisrCisrICBT dG9wQWdjKCk7CisrfQorKworK3ZvaWQgU25kaW9BdWRpb0lucHV0U3RyZWFtOjpDbG9zZSgpIHsK KysKKysgIGlmIChzdGF0ZSA9PSBrQ2xvc2VkKQorKyAgICByZXR1cm47CisrCisrICBpZiAoc3Rh dGUgPT0ga1J1bm5pbmcpCisrICAgIFN0b3AoKTsKKysKKysgIHN0YXRlID0ga0Nsb3NlZDsKKysg IGRlbGV0ZSBbXSBidWZmZXI7CisrICBzaW9fY2xvc2UoaGRsKTsKKysKKysgIG1hbmFnZXItPlJl bGVhc2VJbnB1dFN0cmVhbSh0aGlzKTsKKyt9CisrCisrZG91YmxlIFNuZGlvQXVkaW9JbnB1dFN0 cmVhbTo6R2V0TWF4Vm9sdW1lKCkgeworKyAgLy8gTm90IHN1cHBvcnRlZAorKyAgcmV0dXJuIDAu MDsKKyt9CisrCisrdm9pZCBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06OlNldFZvbHVtZShkb3VibGUg dm9sdW1lKSB7CisrICAvLyBOb3Qgc3VwcG9ydGVkLiBEbyBub3RoaW5nLgorK30KKysKKytkb3Vi bGUgU25kaW9BdWRpb0lucHV0U3RyZWFtOjpHZXRWb2x1bWUoKSB7CisrICAvLyBOb3Qgc3VwcG9y dGVkLgorKyAgcmV0dXJuIDAuMDsKKyt9CisrCisrYm9vbCBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06 OklzTXV0ZWQoKSB7CisrICAvLyBOb3Qgc3VwcG9ydGVkLgorKyAgcmV0dXJuIGZhbHNlOworK30K KysKKyt2b2lkIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6U2V0T3V0cHV0RGV2aWNlRm9yQWVjKAor KyAgICBjb25zdCBzdGQ6OnN0cmluZyYgb3V0cHV0X2RldmljZV9pZCkgeworKyAgLy8gTm90IHN1 cHBvcnRlZC4KKyt9CisrCisrdm9pZCBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06OlRocmVhZExvb3Ao dm9pZCkgeworKyAgc2l6ZV90IHRvZG8sIG47CisrICBjaGFyICpkYXRhOworKyAgdW5zaWduZWQg aW50IG5mcmFtZXM7CisrICBkb3VibGUgbm9ybWFsaXplZF92b2x1bWUgPSAwLjA7CisrCisrICBu ZnJhbWVzID0gYXVkaW9fYnVzLT5mcmFtZXMoKTsKKysKKysgIHdoaWxlIChzdGF0ZSA9PSBrUnVu bmluZyAmJiAhc2lvX2VvZihoZGwpKSB7CisrCisrICAgIEdldEFnY1ZvbHVtZSgmbm9ybWFsaXpl ZF92b2x1bWUpOworKworKyAgICAvLyByZWFkIG9uZSBibG9jaworKyAgICB0b2RvID0gbmZyYW1l cyAqIHBhcmFtcy5HZXRCeXRlc1BlckZyYW1lKGtTYW1wbGVGb3JtYXQpOworKyAgICBkYXRhID0g YnVmZmVyOworKyAgICB3aGlsZSAodG9kbyA+IDApIHsKKysgICAgICBuID0gc2lvX3JlYWQoaGRs LCBkYXRhLCB0b2RvKTsKKysgICAgICBpZiAobiA9PSAwKQorKyAgICAgICAgcmV0dXJuOwkvLyB1 bnJlY292ZXJhYmxlIEkvTyBlcnJvcgorKyAgICAgIHRvZG8gLT0gbjsKKysgICAgICBkYXRhICs9 IG47CisrICAgIH0KKysgICAgaHdfZGVsYXkgLT0gbmZyYW1lczsKKysKKysgICAgLy8gY29udmVy dCBmcmFtZXMgY291bnQgdG8gVGltZURlbHRhCisrICAgIGNvbnN0IGJhc2U6OlRpbWVEZWx0YSBk ZWxheSA9IEF1ZGlvVGltZXN0YW1wSGVscGVyOjpGcmFtZXNUb1RpbWUoaHdfZGVsYXksCisrICAg ICAgcGFyYW1zLnNhbXBsZV9yYXRlKCkpOworKworKyAgICAvLyBwdXNoIGludG8gYnVzCisrICAg IGF1ZGlvX2J1cy0+RnJvbUludGVybGVhdmVkPFNpZ25lZEludDE2U2FtcGxlVHlwZVRyYWl0cz4o cmVpbnRlcnByZXRfY2FzdDxpbnQxNl90Kj4oYnVmZmVyKSwgbmZyYW1lcyk7CisrCisrICAgIC8v IGludm9rZSBjYWxsYmFjaworKyAgICBjYWxsYmFjay0+T25EYXRhKGF1ZGlvX2J1cy5nZXQoKSwg YmFzZTo6VGltZVRpY2tzOjpOb3coKSAtIGRlbGF5LCAxLik7CisrICB9CisrfQorKworK30gIC8v IG5hbWVzcGFjZSBtZWRpYQorLS0tIC9kZXYvbnVsbAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL21lZGlhL2F1ZGlvL3NuZGlvL3NuZGlvX2lucHV0LmgKK0BAIC0wLDAgKzEsOTEgQEAKKysv LyBDb3B5cmlnaHQgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZl ZC4KKysvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHls ZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisrLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKysK KysjaWZuZGVmIE1FRElBX0FVRElPX1NORElPX1NORElPX0lOUFVUX0hfCisrI2RlZmluZSBNRURJ QV9BVURJT19TTkRJT19TTkRJT19JTlBVVF9IXworKworKyNpbmNsdWRlIDxzdGRpbnQuaD4KKysj aW5jbHVkZSA8c3RyaW5nPgorKyNpbmNsdWRlIDxzbmRpby5oPgorKworKyNpbmNsdWRlICJiYXNl L2NvbXBpbGVyX3NwZWNpZmljLmgiCisrI2luY2x1ZGUgImJhc2UvbWFjcm9zLmgiCisrI2luY2x1 ZGUgImJhc2UvbWVtb3J5L3dlYWtfcHRyLmgiCisrI2luY2x1ZGUgImJhc2UvdGltZS90aW1lLmgi CisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL2FnY19hdWRpb19zdHJlYW0uaCIKKysjaW5jbHVkZSAi bWVkaWEvYXVkaW8vYXVkaW9faW8uaCIKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8vYXVkaW9fZGV2 aWNlX2Rlc2NyaXB0aW9uLmgiCisrI2luY2x1ZGUgIm1lZGlhL2Jhc2UvYXVkaW9fcGFyYW1ldGVy cy5oIgorKworK25hbWVzcGFjZSBtZWRpYSB7CisrCisrY2xhc3MgQXVkaW9NYW5hZ2VyQmFzZTsK KysKKysvLyBJbXBsZW1lbnRhdGlvbiBvZiBBdWRpb091dHB1dFN0cmVhbSB1c2luZyBzbmRpbyg3 KQorK2NsYXNzIFNuZGlvQXVkaW9JbnB1dFN0cmVhbSA6IHB1YmxpYyBBZ2NBdWRpb1N0cmVhbTxB dWRpb0lucHV0U3RyZWFtPiB7CisrIHB1YmxpYzoKKysgIC8vIFBhc3MgdGhpcyB0byB0aGUgY29u c3RydWN0b3IgaWYgeW91IHdhbnQgdG8gYXR0ZW1wdCBhdXRvLXNlbGVjdGlvbgorKyAgLy8gb2Yg dGhlIGF1ZGlvIHJlY29yZGluZyBkZXZpY2UuCisrICBzdGF0aWMgY29uc3QgY2hhciBrQXV0b1Nl bGVjdERldmljZVtdOworKworKyAgLy8gQ3JlYXRlIGEgUENNIE91dHB1dCBzdHJlYW0gZm9yIHRo ZSBTTkRJTyBkZXZpY2UgaWRlbnRpZmllZCBieQorKyAgLy8gfGRldmljZV9uYW1lfC4gSWYgdW5z dXJlIG9mIHdoYXQgdG8gdXNlIGZvciB8ZGV2aWNlX25hbWV8LCB1c2UKKysgIC8vIHxrQXV0b1Nl bGVjdERldmljZXwuCisrICBTbmRpb0F1ZGlvSW5wdXRTdHJlYW0oQXVkaW9NYW5hZ2VyQmFzZSog YXVkaW9fbWFuYWdlciwKKysgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyYg ZGV2aWNlX25hbWUsCisrICAgICAgICAgICAgICAgICAgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJz JiBwYXJhbXMpOworKworKyAgflNuZGlvQXVkaW9JbnB1dFN0cmVhbSgpIG92ZXJyaWRlOworKwor KyAgLy8gSW1wbGVtZW50YXRpb24gb2YgQXVkaW9JbnB1dFN0cmVhbS4KKysgIGJvb2wgT3Blbigp IG92ZXJyaWRlOworKyAgdm9pZCBTdGFydChBdWRpb0lucHV0Q2FsbGJhY2sqIGNhbGxiYWNrKSBv dmVycmlkZTsKKysgIHZvaWQgU3RvcCgpIG92ZXJyaWRlOworKyAgdm9pZCBDbG9zZSgpIG92ZXJy aWRlOworKyAgZG91YmxlIEdldE1heFZvbHVtZSgpIG92ZXJyaWRlOworKyAgdm9pZCBTZXRWb2x1 bWUoZG91YmxlIHZvbHVtZSkgb3ZlcnJpZGU7CisrICBkb3VibGUgR2V0Vm9sdW1lKCkgb3ZlcnJp ZGU7CisrICBib29sIElzTXV0ZWQoKSBvdmVycmlkZTsKKysgIHZvaWQgU2V0T3V0cHV0RGV2aWNl Rm9yQWVjKGNvbnN0IHN0ZDo6c3RyaW5nJiBvdXRwdXRfZGV2aWNlX2lkKSBvdmVycmlkZTsKKysK KysgcHJpdmF0ZToKKysKKysgIGVudW0gU3RyZWFtU3RhdGUgeworKyAgICBrQ2xvc2VkLCAgICAg ICAgICAgIC8vIE5vdCBvcGVuZWQgeWV0CisrICAgIGtTdG9wcGVkLCAgICAgICAgICAgLy8gRGV2 aWNlIG9wZW5lZCwgYnV0IG5vdCBzdGFydGVkIHlldAorKyAgICBrUnVubmluZywgICAgICAgICAg IC8vIFN0YXJ0ZWQsIGRldmljZSBwbGF5aW5nCisrICAgIGtTdG9wV2FpdCAgICAgICAgICAgLy8g U3RvcHBpbmcsIHdhaXRpbmcgZm9yIHRoZSByZWFsLXRpbWUgdGhyZWFkIHRvIGV4aXQKKysgIH07 CisrCisrICAvLyBDLXN0eWxlIGNhbGwtYmFja3MKKysgIHN0YXRpYyB2b2lkIE9uTW92ZUNhbGxi YWNrKHZvaWQgKmFyZywgaW50IGRlbHRhKTsKKysgIHN0YXRpYyB2b2lkKiBUaHJlYWRFbnRyeSh2 b2lkICphcmcpOworKworKyAgLy8gQ29udGludW91c2x5IG1vdmVzIGRhdGEgZnJvbSB0aGUgZGV2 aWNlIHRvIHRoZSBjb25zdW1lcgorKyAgdm9pZCBUaHJlYWRMb29wKCk7CisrICAvLyBPdXIgY3Jl YXRvciwgdGhlIGF1ZGlvIG1hbmFnZXIgbmVlZHMgdG8gYmUgbm90aWZpZWQgd2hlbiB3ZSBjbG9z ZS4KKysgIEF1ZGlvTWFuYWdlckJhc2UqIG1hbmFnZXI7CisrICAvLyBQYXJhbWV0ZXJzIG9mIHRo ZSBzb3VyY2UKKysgIEF1ZGlvUGFyYW1ldGVycyBwYXJhbXM7CisrICAvLyBXZSBzdG9yZSBkYXRh IGhlcmUgZm9yIGNvbnN1bWVyCisrICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9CdXM+IGF1ZGlvX2J1 czsKKysgIC8vIENhbGwtYmFjayB0aGF0IGNvbnN1bWVzIHJlY29yZGVkIGRhdGEKKysgIEF1ZGlv SW5wdXRDYWxsYmFjayogY2FsbGJhY2s7ICAvLyBWYWxpZCBkdXJpbmcgYSByZWNvcmRpbmcgc2Vz c2lvbi4KKysgIC8vIEhhbmRsZSBvZiB0aGUgYXVkaW8gZGV2aWNlCisrICBzdHJ1Y3Qgc2lvX2hk bCogaGRsOworKyAgLy8gQ3VycmVudCBzdGF0ZSBvZiB0aGUgc3RyZWFtCisrICBlbnVtIFN0cmVh bVN0YXRlIHN0YXRlOworKyAgLy8gSGlnaCBwcmlvcml0eSB0aHJlYWQgcnVubmluZyBUaHJlYWRM b29wKCkKKysgIHB0aHJlYWRfdCB0aHJlYWQ7CisrICAvLyBOdW1iZXIgb2YgZnJhbWVzIGJ1ZmZl cmVkIGluIHRoZSBoYXJkd2FyZQorKyAgaW50IGh3X2RlbGF5OworKyAgLy8gVGVtcG9yYXJ5IGJ1 ZmZlciB3aGVyZSBkYXRhIGlzIHN0b3JlZCBzbmRpby1jb21wYXRpYmxlIGZvcm1hdAorKyAgY2hh ciogYnVmZmVyOworKworKyAgRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOKFNuZGlvQXVkaW9JbnB1 dFN0cmVhbSk7CisrfTsKKysKKyt9ICAvLyBuYW1lc3BhY2UgbWVkaWEKKysKKysjZW5kaWYgIC8v IE1FRElBX0FVRElPX1NORElPX1NORElPX0lOUFVUX0hfCistLS0gL2Rldi9udWxsCisrKysgYi9z cmMvM3JkcGFydHkvY2hyb21pdW0vbWVkaWEvYXVkaW8vc25kaW8vc25kaW9fb3V0cHV0LmNjCitA QCAtMCwwICsxLDE4MyBAQAorKy8vIENvcHlyaWdodCAoYykgMjAxMiBUaGUgQ2hyb21pdW0gQXV0 aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKysvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBp cyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisrLy8gZm91bmQg aW4gdGhlIExJQ0VOU0UgZmlsZS4KKysKKysjaW5jbHVkZSAiYmFzZS9sb2dnaW5nLmgiCisrI2lu Y2x1ZGUgImJhc2UvdGltZS90aW1lLmgiCisrI2luY2x1ZGUgImJhc2UvdGltZS9kZWZhdWx0X3Rp Y2tfY2xvY2suaCIKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8vYXVkaW9fbWFuYWdlcl9iYXNlLmgi CisrI2luY2x1ZGUgIm1lZGlhL2Jhc2UvYXVkaW9fdGltZXN0YW1wX2hlbHBlci5oIgorKyNpbmNs dWRlICJtZWRpYS9hdWRpby9zbmRpby9zbmRpb19vdXRwdXQuaCIKKysKKytuYW1lc3BhY2UgbWVk aWEgeworKworK3N0YXRpYyBjb25zdCBTYW1wbGVGb3JtYXQga1NhbXBsZUZvcm1hdCA9IGtTYW1w bGVGb3JtYXRTMTY7CisrCisrdm9pZCBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjpPbk1vdmVDYWxs YmFjayh2b2lkICphcmcsIGludCBkZWx0YSkgeworKyAgU25kaW9BdWRpb091dHB1dFN0cmVhbSog c2VsZiA9IHN0YXRpY19jYXN0PFNuZGlvQXVkaW9PdXRwdXRTdHJlYW0qPihhcmcpOworKworKyAg c2VsZi0+aHdfZGVsYXkgLT0gZGVsdGE7CisrfQorKworK3ZvaWQgU25kaW9BdWRpb091dHB1dFN0 cmVhbTo6T25Wb2xDYWxsYmFjayh2b2lkICphcmcsIHVuc2lnbmVkIGludCB2b2wpIHsKKysgIFNu ZGlvQXVkaW9PdXRwdXRTdHJlYW0qIHNlbGYgPSBzdGF0aWNfY2FzdDxTbmRpb0F1ZGlvT3V0cHV0 U3RyZWFtKj4oYXJnKTsKKysKKysgIHNlbGYtPnZvbCA9IHZvbDsKKyt9CisrCisrdm9pZCAqU25k aW9BdWRpb091dHB1dFN0cmVhbTo6VGhyZWFkRW50cnkodm9pZCAqYXJnKSB7CisrICBTbmRpb0F1 ZGlvT3V0cHV0U3RyZWFtKiBzZWxmID0gc3RhdGljX2Nhc3Q8U25kaW9BdWRpb091dHB1dFN0cmVh bSo+KGFyZyk7CisrCisrICBzZWxmLT5UaHJlYWRMb29wKCk7CisrICByZXR1cm4gTlVMTDsKKyt9 CisrCisrU25kaW9BdWRpb091dHB1dFN0cmVhbTo6U25kaW9BdWRpb091dHB1dFN0cmVhbShjb25z dCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEF1ZGlvTWFuYWdlckJhc2UqIG1hbmFnZXIpCisrICAgIDogbWFu YWdlcihtYW5hZ2VyKSwKKysgICAgICBwYXJhbXMocGFyYW1zKSwKKysgICAgICBhdWRpb19idXMo QXVkaW9CdXM6OkNyZWF0ZShwYXJhbXMpKSwKKysgICAgICBzdGF0ZShrQ2xvc2VkKSwKKysgICAg ICBtdXRleChQVEhSRUFEX01VVEVYX0lOSVRJQUxJWkVSKSB7CisrfQorKworK1NuZGlvQXVkaW9P dXRwdXRTdHJlYW06On5TbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKCkgeworKyAgaWYgKHN0YXRlICE9 IGtDbG9zZWQpCisrICAgIENsb3NlKCk7CisrfQorKworK2Jvb2wgU25kaW9BdWRpb091dHB1dFN0 cmVhbTo6T3BlbigpIHsKKysgIHN0cnVjdCBzaW9fcGFyIHBhcjsKKysgIGludCBzaWc7CisrCisr ICBpZiAocGFyYW1zLmZvcm1hdCgpICE9IEF1ZGlvUGFyYW1ldGVyczo6QVVESU9fUENNX0xJTkVB UiAmJgorKyAgICAgIHBhcmFtcy5mb3JtYXQoKSAhPSBBdWRpb1BhcmFtZXRlcnM6OkFVRElPX1BD TV9MT1dfTEFURU5DWSkgeworKyAgICBMT0coV0FSTklORykgPDwgIlVuc3VwcG9ydGVkIGF1ZGlv IGZvcm1hdC4iOworKyAgICByZXR1cm4gZmFsc2U7CisrICB9CisrICBzaW9faW5pdHBhcigmcGFy KTsKKysgIHBhci5yYXRlID0gcGFyYW1zLnNhbXBsZV9yYXRlKCk7CisrICBwYXIucGNoYW4gPSBw YXJhbXMuY2hhbm5lbHMoKTsKKysgIHBhci5iaXRzID0gU2FtcGxlRm9ybWF0VG9CaXRzUGVyQ2hh bm5lbChrU2FtcGxlRm9ybWF0KTsKKysgIHBhci5icHMgPSBwYXIuYml0cyAvIDg7CisrICBwYXIu c2lnID0gc2lnID0gcGFyLmJpdHMgIT0gOCA/IDEgOiAwOworKyAgcGFyLmxlID0gU0lPX0xFX05B VElWRTsKKysgIHBhci5hcHBidWZzeiA9IHBhcmFtcy5mcmFtZXNfcGVyX2J1ZmZlcigpOworKwor KyAgaGRsID0gc2lvX29wZW4oU0lPX0RFVkFOWSwgU0lPX1BMQVksIDApOworKyAgaWYgKGhkbCA9 PSBOVUxMKSB7CisrICAgIExPRyhFUlJPUikgPDwgIkNvdWxkbid0IG9wZW4gYXVkaW8gZGV2aWNl LiI7CisrICAgIHJldHVybiBmYWxzZTsKKysgIH0KKysgIGlmICghc2lvX3NldHBhcihoZGwsICZw YXIpIHx8ICFzaW9fZ2V0cGFyKGhkbCwgJnBhcikpIHsKKysgICAgTE9HKEVSUk9SKSA8PCAiQ291 bGRuJ3Qgc2V0IGF1ZGlvIHBhcmFtZXRlcnMuIjsKKysgICAgZ290byBiYWRfY2xvc2U7CisrICB9 CisrICBpZiAocGFyLnJhdGUgICE9ICh1bnNpZ25lZCBpbnQpcGFyYW1zLnNhbXBsZV9yYXRlKCkg fHwKKysgICAgICBwYXIucGNoYW4gIT0gKHVuc2lnbmVkIGludClwYXJhbXMuY2hhbm5lbHMoKSB8 fAorKyAgICAgIHBhci5iaXRzICAhPSAodW5zaWduZWQgaW50KVNhbXBsZUZvcm1hdFRvQml0c1Bl ckNoYW5uZWwoa1NhbXBsZUZvcm1hdCkgfHwKKysgICAgICBwYXIuc2lnICAgIT0gKHVuc2lnbmVk IGludClzaWcgfHwKKysgICAgICAocGFyLmJwcyA+IDEgJiYgcGFyLmxlICE9IFNJT19MRV9OQVRJ VkUpIHx8CisrICAgICAgKHBhci5iaXRzICE9IHBhci5icHMgKiA4KSkgeworKyAgICBMT0coRVJS T1IpIDw8ICJVbnN1cHBvcnRlZCBhdWRpbyBwYXJhbWV0ZXJzLiI7CisrICAgIGdvdG8gYmFkX2Ns b3NlOworKyAgfQorKyAgc3RhdGUgPSBrU3RvcHBlZDsKKysgIHZvbHBlbmRpbmcgPSAwOworKyAg dm9sID0gMDsKKysgIGJ1ZmZlciA9IG5ldyBjaGFyW2F1ZGlvX2J1cy0+ZnJhbWVzKCkgKiBwYXJh bXMuR2V0Qnl0ZXNQZXJGcmFtZShrU2FtcGxlRm9ybWF0KV07CisrICBzaW9fb25tb3ZlKGhkbCwg Jk9uTW92ZUNhbGxiYWNrLCB0aGlzKTsKKysgIHNpb19vbnZvbChoZGwsICZPblZvbENhbGxiYWNr LCB0aGlzKTsKKysgIHJldHVybiB0cnVlOworKyBiYWRfY2xvc2U6CisrICBzaW9fY2xvc2UoaGRs KTsKKysgIHJldHVybiBmYWxzZTsKKyt9CisrCisrdm9pZCBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFt OjpDbG9zZSgpIHsKKysgIGlmIChzdGF0ZSA9PSBrQ2xvc2VkKQorKyAgICByZXR1cm47CisrICBp ZiAoc3RhdGUgPT0ga1J1bm5pbmcpCisrICAgIFN0b3AoKTsKKysgIHN0YXRlID0ga0Nsb3NlZDsK KysgIGRlbGV0ZSBbXSBidWZmZXI7CisrICBzaW9fY2xvc2UoaGRsKTsKKysgIG1hbmFnZXItPlJl bGVhc2VPdXRwdXRTdHJlYW0odGhpcyk7ICAvLyBDYWxscyB0aGUgZGVzdHJ1Y3RvcgorK30KKysK Kyt2b2lkIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW06OlN0YXJ0KEF1ZGlvU291cmNlQ2FsbGJhY2sq IGNhbGxiYWNrKSB7CisrICBzdGF0ZSA9IGtSdW5uaW5nOworKyAgaHdfZGVsYXkgPSAwOworKyAg c291cmNlID0gY2FsbGJhY2s7CisrICBzaW9fc3RhcnQoaGRsKTsKKysgIGlmIChwdGhyZWFkX2Ny ZWF0ZSgmdGhyZWFkLCBOVUxMLCAmVGhyZWFkRW50cnksIHRoaXMpICE9IDApIHsKKysgICAgTE9H KEVSUk9SKSA8PCAiRmFpbGVkIHRvIGNyZWF0ZSByZWFsLXRpbWUgdGhyZWFkLiI7CisrICAgIHNp b19zdG9wKGhkbCk7CisrICAgIHN0YXRlID0ga1N0b3BwZWQ7CisrICB9CisrfQorKworK3ZvaWQg U25kaW9BdWRpb091dHB1dFN0cmVhbTo6U3RvcCgpIHsKKysgIGlmIChzdGF0ZSA9PSBrU3RvcHBl ZCkKKysgICAgcmV0dXJuOworKyAgc3RhdGUgPSBrU3RvcFdhaXQ7CisrICBwdGhyZWFkX2pvaW4o dGhyZWFkLCBOVUxMKTsKKysgIHNpb19zdG9wKGhkbCk7CisrICBzdGF0ZSA9IGtTdG9wcGVkOwor K30KKysKKyt2b2lkIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW06OlNldFZvbHVtZShkb3VibGUgdikg eworKyAgcHRocmVhZF9tdXRleF9sb2NrKCZtdXRleCk7CisrICB2b2wgPSB2ICogU0lPX01BWFZP TDsKKysgIHZvbHBlbmRpbmcgPSAxOworKyAgcHRocmVhZF9tdXRleF91bmxvY2soJm11dGV4KTsK Kyt9CisrCisrdm9pZCBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjpHZXRWb2x1bWUoZG91YmxlKiB2 KSB7CisrICBwdGhyZWFkX211dGV4X2xvY2soJm11dGV4KTsKKysgICp2ID0gdm9sICogKDEuIC8g U0lPX01BWFZPTCk7CisrICBwdGhyZWFkX211dGV4X3VubG9jaygmbXV0ZXgpOworK30KKysKKysv LyBUaGlzIHN0cmVhbSBpcyBhbHdheXMgdXNlZCB3aXRoIHN1YiBzZWNvbmQgYnVmZmVyIHNpemVz LCB3aGVyZSBpdCdzCisrLy8gc3VmZmljaWVudCB0byBzaW1wbHkgYWx3YXlzIGZsdXNoIHVwb24g U3RhcnQoKS4KKyt2b2lkIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW06OkZsdXNoKCkge30KKysKKyt2 b2lkIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW06OlRocmVhZExvb3Aodm9pZCkgeworKyAgaW50IGF2 YWlsLCBjb3VudCwgcmVzdWx0OworKworKyAgd2hpbGUgKHN0YXRlID09IGtSdW5uaW5nKSB7Cisr ICAgIC8vIFVwZGF0ZSB2b2x1bWUgaWYgbmVlZGVkCisrICAgIHB0aHJlYWRfbXV0ZXhfbG9jaygm bXV0ZXgpOworKyAgICBpZiAodm9scGVuZGluZykgeworKyAgICAgIHZvbHBlbmRpbmcgPSAwOwor KyAgICAgIHNpb19zZXR2b2woaGRsLCB2b2wpOworKyAgICB9CisrICAgIHB0aHJlYWRfbXV0ZXhf dW5sb2NrKCZtdXRleCk7CisrCisrICAgIC8vIEdldCBkYXRhIHRvIHBsYXkKKysgICAgY29uc3Qg YmFzZTo6VGltZURlbHRhIGRlbGF5ID0gQXVkaW9UaW1lc3RhbXBIZWxwZXI6OkZyYW1lc1RvVGlt ZShod19kZWxheSwKKysJcGFyYW1zLnNhbXBsZV9yYXRlKCkpOworKyAgICBjb3VudCA9IHNvdXJj ZS0+T25Nb3JlRGF0YShkZWxheSwgYmFzZTo6VGltZVRpY2tzOjpOb3coKSwgMCwgYXVkaW9fYnVz LmdldCgpKTsKKysgICAgYXVkaW9fYnVzLT5Ub0ludGVybGVhdmVkPFNpZ25lZEludDE2U2FtcGxl VHlwZVRyYWl0cz4oY291bnQsIHJlaW50ZXJwcmV0X2Nhc3Q8aW50MTZfdCo+KGJ1ZmZlcikpOwor KyAgICBpZiAoY291bnQgPT0gMCkgeworKyAgICAgIC8vIFdlIGhhdmUgdG8gc3VibWl0IHNvbWV0 aGluZyB0byB0aGUgZGV2aWNlCisrICAgICAgY291bnQgPSBhdWRpb19idXMtPmZyYW1lcygpOwor KyAgICAgIG1lbXNldChidWZmZXIsIDAsIGNvdW50ICogcGFyYW1zLkdldEJ5dGVzUGVyRnJhbWUo a1NhbXBsZUZvcm1hdCkpOworKyAgICAgIExPRyhXQVJOSU5HKSA8PCAiTm8gZGF0YSB0byBwbGF5 LCBydW5uaW5nIGVtcHR5IGN5Y2xlLiI7CisrICAgIH0KKysKKysgICAgLy8gU3VibWl0IGRhdGEg dG8gdGhlIGRldmljZQorKyAgICBhdmFpbCA9IGNvdW50ICogcGFyYW1zLkdldEJ5dGVzUGVyRnJh bWUoa1NhbXBsZUZvcm1hdCk7CisrICAgIHJlc3VsdCA9IHNpb193cml0ZShoZGwsIGJ1ZmZlciwg YXZhaWwpOworKyAgICBpZiAocmVzdWx0ID09IDApIHsKKysgICAgICBMT0coV0FSTklORykgPDwg IkF1ZGlvIGRldmljZSBkaXNjb25uZWN0ZWQuIjsKKysgICAgICBicmVhazsKKysgICAgfQorKwor KyAgICAvLyBVcGRhdGUgaGFyZHdhcmUgcG9pbnRlcgorKyAgICBod19kZWxheSArPSBjb3VudDsK KysgIH0KKyt9CisrCisrfSAgLy8gbmFtZXNwYWNlIG1lZGlhCistLS0gL2Rldi9udWxsCisrKysg Yi9zcmMvM3JkcGFydHkvY2hyb21pdW0vbWVkaWEvYXVkaW8vc25kaW8vc25kaW9fb3V0cHV0LmgK K0BAIC0wLDAgKzEsODYgQEAKKysvLyBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIENocm9taXVtIEF1 dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisrLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUg aXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorKy8vIGZvdW5k IGluIHRoZSBMSUNFTlNFIGZpbGUuCisrCisrI2lmbmRlZiBNRURJQV9BVURJT19TTkRJT19TTkRJ T19PVVRQVVRfSF8KKysjZGVmaW5lIE1FRElBX0FVRElPX1NORElPX1NORElPX09VVFBVVF9IXwor KworKyNpbmNsdWRlIDxwdGhyZWFkLmg+CisrI2luY2x1ZGUgPHNuZGlvLmg+CisrCisrI2luY2x1 ZGUgImJhc2UvdGltZS90aWNrX2Nsb2NrLmgiCisrI2luY2x1ZGUgImJhc2UvdGltZS90aW1lLmgi CisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL2F1ZGlvX2lvLmgiCisrCisrbmFtZXNwYWNlIG1lZGlh IHsKKysKKytjbGFzcyBBdWRpb01hbmFnZXJCYXNlOworKworKy8vIEltcGxlbWVudGF0aW9uIG9m IEF1ZGlvT3V0cHV0U3RyZWFtIHVzaW5nIHNuZGlvKDcpCisrY2xhc3MgU25kaW9BdWRpb091dHB1 dFN0cmVhbSA6IHB1YmxpYyBBdWRpb091dHB1dFN0cmVhbSB7CisrIHB1YmxpYzoKKysgIC8vIFRo ZSBtYW5hZ2VyIGlzIGNyZWF0aW5nIHRoaXMgb2JqZWN0CisrICBTbmRpb0F1ZGlvT3V0cHV0U3Ry ZWFtKGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICBBdWRpb01hbmFnZXJCYXNlKiBtYW5hZ2VyKTsKKysgIHZpcnR1YWwgflNuZGlvQXVkaW9P dXRwdXRTdHJlYW0oKTsKKysKKysgIC8vIEltcGxlbWVudGF0aW9uIG9mIEF1ZGlvT3V0cHV0U3Ry ZWFtLgorKyAgYm9vbCBPcGVuKCkgb3ZlcnJpZGU7CisrICB2b2lkIENsb3NlKCkgb3ZlcnJpZGU7 CisrICB2b2lkIFN0YXJ0KEF1ZGlvU291cmNlQ2FsbGJhY2sqIGNhbGxiYWNrKSBvdmVycmlkZTsK KysgIHZvaWQgU3RvcCgpIG92ZXJyaWRlOworKyAgdm9pZCBTZXRWb2x1bWUoZG91YmxlIHZvbHVt ZSkgb3ZlcnJpZGU7CisrICB2b2lkIEdldFZvbHVtZShkb3VibGUqIHZvbHVtZSkgb3ZlcnJpZGU7 CisrICB2b2lkIEZsdXNoKCkgb3ZlcnJpZGU7CisrCisrICBmcmllbmQgdm9pZCBzbmRpb19vbm1v dmUodm9pZCAqYXJnLCBpbnQgZGVsdGEpOworKyAgZnJpZW5kIHZvaWQgc25kaW9fb252b2wodm9p ZCAqYXJnLCB1bnNpZ25lZCBpbnQgdm9sKTsKKysgIGZyaWVuZCB2b2lkICpzbmRpb190aHJlYWRz dGFydCh2b2lkICphcmcpOworKworKyBwcml2YXRlOgorKyAgZW51bSBTdHJlYW1TdGF0ZSB7Cisr ICAgIGtDbG9zZWQsICAgICAgICAgICAgLy8gTm90IG9wZW5lZCB5ZXQKKysgICAga1N0b3BwZWQs ICAgICAgICAgICAvLyBEZXZpY2Ugb3BlbmVkLCBidXQgbm90IHN0YXJ0ZWQgeWV0CisrICAgIGtS dW5uaW5nLCAgICAgICAgICAgLy8gU3RhcnRlZCwgZGV2aWNlIHBsYXlpbmcKKysgICAga1N0b3BX YWl0ICAgICAgICAgICAvLyBTdG9wcGluZywgd2FpdGluZyBmb3IgdGhlIHJlYWwtdGltZSB0aHJl YWQgdG8gZXhpdAorKyAgfTsKKysKKysgIC8vIEMtc3R5bGUgY2FsbC1iYWNrcworKyAgc3RhdGlj IHZvaWQgT25Nb3ZlQ2FsbGJhY2sodm9pZCAqYXJnLCBpbnQgZGVsdGEpOworKyAgc3RhdGljIHZv aWQgT25Wb2xDYWxsYmFjayh2b2lkICphcmcsIHVuc2lnbmVkIGludCB2b2wpOworKyAgc3RhdGlj IHZvaWQqIFRocmVhZEVudHJ5KHZvaWQgKmFyZyk7CisrCisrICAvLyBDb250aW51b3VzbHkgbW92 ZXMgZGF0YSBmcm9tIHRoZSBwcm9kdWNlciB0byB0aGUgZGV2aWNlCisrICB2b2lkIFRocmVhZExv b3Aodm9pZCk7CisrCisrICAvLyBPdXIgY3JlYXRvciwgdGhlIGF1ZGlvIG1hbmFnZXIgbmVlZHMg dG8gYmUgbm90aWZpZWQgd2hlbiB3ZSBjbG9zZS4KKysgIEF1ZGlvTWFuYWdlckJhc2UqIG1hbmFn ZXI7CisrICAvLyBQYXJhbWV0ZXJzIG9mIHRoZSBzb3VyY2UKKysgIEF1ZGlvUGFyYW1ldGVycyBw YXJhbXM7CisrICAvLyBTb3VyY2Ugc3RvcmVzIGRhdGEgaGVyZQorKyAgc3RkOjp1bmlxdWVfcHRy PEF1ZGlvQnVzPiBhdWRpb19idXM7CisrICAvLyBDYWxsLWJhY2sgdGhhdCBwcm9kdWNlcyBkYXRh IHRvIHBsYXkKKysgIEF1ZGlvU291cmNlQ2FsbGJhY2sqIHNvdXJjZTsKKysgIC8vIEhhbmRsZSBv ZiB0aGUgYXVkaW8gZGV2aWNlCisrICBzdHJ1Y3Qgc2lvX2hkbCogaGRsOworKyAgLy8gQ3VycmVu dCBzdGF0ZSBvZiB0aGUgc3RyZWFtCisrICBlbnVtIFN0cmVhbVN0YXRlIHN0YXRlOworKyAgLy8g SGlnaCBwcmlvcml0eSB0aHJlYWQgcnVubmluZyBUaHJlYWRMb29wKCkKKysgIHB0aHJlYWRfdCB0 aHJlYWQ7CisrICAvLyBQcm90ZWN0cyB2b2wsIHZvbHBlbmRpbmcgYW5kIGh3X2RlbGF5CisrICBw dGhyZWFkX211dGV4X3QgbXV0ZXg7CisrICAvLyBDdXJyZW50IHZvbHVtZSBpbiB0aGUgMC4uU0lP X01BWFZPTCByYW5nZQorKyAgaW50IHZvbDsKKysgIC8vIFNldCB0byAxIGlmIHZvbHVtZXMgbXVz dCBiZSByZWZyZXNoZWQgaW4gdGhlIHJlYWx0aW1lIHRocmVhZAorKyAgaW50IHZvbHBlbmRpbmc7 CisrICAvLyBOdW1iZXIgb2YgZnJhbWVzIGJ1ZmZlcmVkIGluIHRoZSBoYXJkd2FyZQorKyAgaW50 IGh3X2RlbGF5OworKyAgLy8gVGVtcG9yYXJ5IGJ1ZmZlciB3aGVyZSBkYXRhIGlzIHN0b3JlZCBz bmRpby1jb21wYXRpYmxlIGZvcm1hdAorKyAgY2hhciogYnVmZmVyOworKworKyAgRElTQUxMT1df Q09QWV9BTkRfQVNTSUdOKFNuZGlvQXVkaW9PdXRwdXRTdHJlYW0pOworK307CisrCisrfSAgLy8g bmFtZXNwYWNlIG1lZGlhCisrCisrI2VuZGlmICAvLyBNRURJQV9BVURJT19TTkRJT19TTkRJT19P VVRQVVRfSF8KKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9tZWRpYS9tZWRpYV9vcHRpb25z LmduaQorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL21lZGlhL21lZGlhX29wdGlvbnMuZ25p CitAQCAtMTIxLDYgKzEyMSw5IEBAIGRlY2xhcmVfYXJncygpIHsKKyAgICMgRW5hYmxlcyBydW50 aW1lIHNlbGVjdGlvbiBvZiBBTFNBIGxpYnJhcnkgZm9yIGF1ZGlvLgorICAgdXNlX2Fsc2EgPSBm YWxzZQorIAorKyAgIyBFbmFibGUgcnVudGltZSBzZWxlY3Rpb24gb2Ygc25kaW8oNykKKysgIHVz ZV9zbmRpbyA9IGZhbHNlCisrCisgICAjIEFsc2Egc2hvdWxkIGJlIHVzZWQgb24gbm9uLUFuZHJv aWQsIG5vbi1NYWMgUE9TSVggc3lzdGVtcy4KKyAgICMgQWxzYSBzaG91bGQgYmUgdXNlZCBvbiBk ZXNrdG9wIENocm9tZWNhc3QgYW5kIGF1ZGlvLW9ubHkgQ2hyb21lY2FzdCBidWlsZHMuCisgICBp ZiAoaXNfcG9zaXggJiYgIWlzX2FuZHJvaWQgJiYgIWlzX21hYyAmJgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDcwMC1hcm12N2wtbmVvbi5wYXRjaCBiL3NyY3Br Z3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA3MDAtYXJtdjdsLW5lb24ucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5kNDJmYTE5YTA3YTEKLS0tIC9kZXYvbnVs bAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wNzAwLWFybXY3bC1uZW9uLnBh dGNoCkBAIC0wLDAgKzEsMTAgQEAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9za2lhL0JV SUxELmduCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2tpYS9CVUlMRC5nbgorQEAgLTgw MCw3ICs4MDAsNiBAQCBza2lhX3NvdXJjZV9zZXQoInNraWFfb3B0cyIpIHsKKyAgICAgICAgICMg Um9vdCBidWlsZCBjb25maWcgc2V0cyAtbWZwdT0kYXJtX2ZwdSwgd2hpY2ggd2UgZXhwZWN0IHRv IGJlIG5lb24KKyAgICAgICAgICMgd2hlbiBydW5uaW5nIHRoaXMuCisgICAgICAgICBpZiAoIWFy bV91c2VfbmVvbikgeworLSAgICAgICAgICBjb25maWdzIC09IFsgIi8vYnVpbGQvY29uZmlnL2Nv bXBpbGVyOmNvbXBpbGVyX2FybV9mcHUiIF0KKyAgICAgICAgICAgY2ZsYWdzICs9IFsgIi1tZnB1 PW5lb24iIF0KKyAgICAgICAgIH0KKyAgICAgICB9CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13 ZWJlbmdpbmUvcGF0Y2hlcy8wNzUwLWNocm9taXVtLW11c2wtY3Jvc3Mtbm8tYXNtX3B0cmFjZV9o LnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDc1MC1jaHJvbWl1bS1tdXNs LWNyb3NzLW5vLWFzbV9wdHJhY2VfaC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAuLjNjZjEzMjkwOGFmNAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2 LXdlYmVuZ2luZS9wYXRjaGVzLzA3NTAtY2hyb21pdW0tbXVzbC1jcm9zcy1uby1hc21fcHRyYWNl X2gucGF0Y2gKQEAgLTAsMCArMSwzMCBAQAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Ro aXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3Jp dGVyL2xpbnV4X3B0cmFjZV9kdW1wZXIuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90 aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dy aXRlci9saW51eF9wdHJhY2VfZHVtcGVyLmNjCitAQCAtMzgsNyArMzgsMTIgQEAKKyAKKyAjaW5j bHVkZSAiY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9wdHJhY2VfZHVtcGVyLmgi CisgCisrI2lmIGRlZmluZWQoX19HTElCQ19fKQorICNpbmNsdWRlIDxhc20vcHRyYWNlLmg+Cisr I2Vsc2UKKysvKiBGb3IgYXJtKi1tdXNsIHRoaXMgZGVmaW5pdGlvbiBpcyBtaXNzaW5nICovCisr I2RlZmluZSBBUk1fc3AgdXJlZ3NbMTNdCisrI2VuZGlmCisgI2luY2x1ZGUgPGFzc2VydC5oPgor ICNpbmNsdWRlIDxlcnJuby5oPgorICNpbmNsdWRlIDxmY250bC5oPgorLS0tIGEvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGlu dXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2NvcmVfZHVtcGVyLmNjCisrKysgYi9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51 eC9taW5pZHVtcF93cml0ZXIvbGludXhfY29yZV9kdW1wZXIuY2MKK0BAIC0zMiw3ICszMiwxMiBA QAorIAorICNpbmNsdWRlICJjbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2NvcmVf ZHVtcGVyLmgiCisgCisrI2lmIGRlZmluZWQoX19HTElCQ19fKQorICNpbmNsdWRlIDxhc20vcHRy YWNlLmg+CisrI2Vsc2UKKysvKiBGb3IgYXJtKi1tdXNsIHRoaXMgZGVmaW5pdGlvbiBpcyBtaXNz aW5nICovCisrI2RlZmluZSBBUk1fc3AgdXJlZ3NbMTNdCisrI2VuZGlmCisgI2luY2x1ZGUgPGFz c2VydC5oPgorICNpbmNsdWRlIDxlbGYuaD4KKyAjaW5jbHVkZSA8c3RkaW8uaD4KZGlmZiAtLWdp dCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA3NTEtY2hyb21pdW0tbXVzbC1hcm0t dXNlcl92ZnAucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wNzUxLWNocm9t aXVtLW11c2wtYXJtLXVzZXJfdmZwLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMC4uNmUyZDYyZjM1ZWU2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYt d2ViZW5naW5lL3BhdGNoZXMvMDc1MS1jaHJvbWl1bS1tdXNsLWFybS11c2VyX3ZmcC5wYXRjaApA QCAtMCwwICsxLDIwIEBACistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkv Y3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC90aHJlYWRfaW5mby5oCisrKysgYi9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC90 aHJlYWRfaW5mby5oCitAQCAtMTcsNiArMTcsMTcgQEAKKyAKKyAjaW5jbHVkZSA8c3RkaW50Lmg+ CisgI2luY2x1ZGUgPHN5cy91c2VyLmg+CisrI2lmICFkZWZpbmVkKF9fR0xJQkNfXykKKytzdHJ1 Y3QgdXNlcl92ZnAgeworKwl1bnNpZ25lZCBsb25nIGxvbmcgZnByZWdzWzMyXTsKKysJdW5zaWdu ZWQgbG9uZyBmcHNjcjsKKyt9OworK3N0cnVjdCB1c2VyX3ZmcF9leGMgeworKwl1bnNpZ25lZCBs b25nIGZwZXhjOworKwl1bnNpZ25lZCBsb25nIGZwaW5zdDsKKysJdW5zaWduZWQgbG9uZyBmcGlu c3QyOworK307CisrI2VuZGlmIC8qICFkZWZpbmVkKF9fR0xJQkNfXykgKi8KKyAKKyAjaW5jbHVk ZSA8dHlwZV90cmFpdHM+CisgCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0 Y2hlcy8wNzUyLWNocm9taXVtLW11c2wtYXJtLWVsZl9hdXh2X3QucGF0Y2ggYi9zcmNwa2dzL3F0 Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wNzUyLWNocm9taXVtLW11c2wtYXJtLWVsZl9hdXh2X3QucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi43MTEyYzhjZmQzZmEK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wNzUyLWNo cm9taXVtLW11c2wtYXJtLWVsZl9hdXh2X3QucGF0Y2gKQEAgLTAsMCArMSwxOCBAQAorLS0tIGEv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4L3NyYy9iYXNlL2NwdS5jYworKysrIGIvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3Y4L3NyYy9iYXNlL2NwdS5jYworQEAgLTE2Myw2ICsxNjMsMTUgQEAgc3Rh dGljIFY4X0lOTElORSB2b2lkIF9fY3B1aWQoaW50IGNwdV9pbgorIAorICNpZiBWOF9IT1NUX0FS Q0hfQVJNIHx8IFY4X0hPU1RfQVJDSF9BUk02NAorIAorKyNpZm5kZWYgX19HTElCQ19fCisrI2lu Y2x1ZGUgPGVsZi5oPgorKyNpZmRlZiBfX0xQNjRfXworK3R5cGVkZWYgRWxmNjRfYXV4dl90IGVs Zl9hdXh2X3Q7CisrI2Vsc2UKKyt0eXBlZGVmIEVsZjMyX2F1eHZfdCBlbGZfYXV4dl90OworKyNl bmRpZgorKyNlbmRpZgorKworIHN0YXRpYyB1aW50MzJfdCBSZWFkRUxGSFdDYXBzKCkgeworICAg dWludDMyX3QgcmVzdWx0ID0gMDsKKyAjaWYgVjhfR0xJQkNfUFJFUkVRKDIsIDE2KQpkaWZmIC0t Z2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDgwMS1jaHJvbWl1bS1pNjg2LXZh YXBpLWZwZXJtaXNzaXZlLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDgw MS1jaHJvbWl1bS1pNjg2LXZhYXBpLWZwZXJtaXNzaXZlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uM2Q0MDQzZTAzYjg5Ci0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDgwMS1jaHJvbWl1bS1pNjg2LXZhYXBpLWZw ZXJtaXNzaXZlLnBhdGNoCkBAIC0wLDAgKzEsMjQgQEAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS9tZWRpYS9ncHUvdmFhcGkvQlVJTEQuZ24KKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS9tZWRpYS9ncHUvdmFhcGkvQlVJTEQuZ24KK0BAIC0xNCw2ICsxNCwxMCBAQCBpbXBvcnQoIi8v dWkvZ2wvZmVhdHVyZXMuZ25pIikKKyBhc3NlcnQoaXNfbGludXggfHwgaXNfY2hyb21lb3MpCisg YXNzZXJ0KHVzZV92YWFwaSkKKyAKKytjb25maWcoInZhYXBpX3Blcm1pc3NpdmUiKSB7CisrICBj ZmxhZ3MgPSBbICItZnBlcm1pc3NpdmUiIF0KKyt9CisrCisgZ2VuZXJhdGVfc3R1YnMoImxpYnZh X3N0dWJzIikgeworICAgZXh0cmFfaGVhZGVyID0gInZhX3N0dWJfaGVhZGVyLmZyYWdtZW50Igor ICAgc2lncyA9IFsgInZhLnNpZ3MiIF0KK0BAIC0xMzYsNiArMTQwLDEwIEBAIHNvdXJjZV9zZXQo InZhYXBpIikgeworICAgICBdCisgICB9CisgCisrICBpZiAodGFyZ2V0X2NwdSA9PSAieDg2Iikg eworKyAgICBjb25maWdzICs9IFsgIjp2YWFwaV9wZXJtaXNzaXZlIiBdCisrICB9CisrCisgICBp ZiAodXNlX3gxMSkgeworICAgICBkZXBzICs9IFsgIi8vdWkvZ2Z4L3giIF0KKyAgICAgc291cmNl cyArPSBbCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wOTAwLXh4 eC1wcGM2NGxlLWxpYnZweC5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA5 MDAteHh4LXBwYzY0bGUtbGlidnB4LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMC4uNWM5NTY2YjU2YmQ0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYt d2ViZW5naW5lL3BhdGNoZXMvMDkwMC14eHgtcHBjNjRsZS1saWJ2cHgucGF0Y2gKQEAgLTAsMCAr MSw2NSBAQAorVXNlcyBnZW5lcmljIHRhcmdldCBmb3Igbm93LiBUbyB1c2UgcHBjNjRsZSwgY2hh bmdlIC0tdGFyZ2V0IHRvIHBwYzY0bGUtZ251CithbmQgYWRkIC0tZW5hYmxlLXZzeCwgYW5kIGNo YW5nZSBnZW5lcmljIHRvIHBwYyBmb3IgdGhlIHJ0Y2QgaGVhZGVyLgorCitGcm9tIDE4ZTZjNWM1 NWNmYWUwY2ZiNDU4ZDgyMTBkN2JjNzA5MzYwYTBlOTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CitGcm9tOiBxNjYgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgorRGF0ZTogV2VkLCA5IFNlcCAyMDIw IDE5OjA4OjI1ICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIGVuYWJsZSBnZW5lcmF0aW9uIG9mIHBw YzY0IGxpYnZweCBiaXRzCisKK3RoaXMgZG9lc24ndCB1cGRhdGUgdGhlIGduaSBmaWxlLCB0aGF0 J3MgZG9uZSBmcm9tCit0aGUgdGVtcGxhdGUgYnkgcnVubmluZyB0aGUgYXBwcm9wcmlhdGUgc2Ny aXB0cworLS0tCisgdGhpcmRfcGFydHkvbGlidnB4L0JVSUxELmduICAgICAgICB8IDQgKysrKwor IHRoaXJkX3BhcnR5L2xpYnZweC9nZW5lcmF0ZV9nbmkuc2ggfCA5ICsrKysrKysrKworIDIgZmls ZXMgY2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKQorCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21p dW0vdGhpcmRfcGFydHkvbGlidnB4L0JVSUxELmduCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21p dW0vdGhpcmRfcGFydHkvbGlidnB4L0JVSUxELmduCitAQCAtNDI0LDYgKzQyNCw4IEBAIHN0YXRp Y19saWJyYXJ5KCJidW5kbGVkX2xpYnZweCIpIHsKKyAgICAgICBzb3VyY2VzID0gbGlidnB4X3Ny Y3NfYXJtNjQKKyAgICAgICBwdWJsaWNfZGVwcyA9IFsgIjpsaWJ2cHhfYXJtNjRfaGVhZGVycyIg XQorICAgICB9CisrICB9IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09ICJwcGM2NCIpIHsKKysgICAg c291cmNlcyA9IGxpYnZweF9zcmNzX3BwYzY0CisgICB9CisgCisgICBjb25maWdzIC09IFsgIi8v YnVpbGQvY29uZmlnL2NvbXBpbGVyOmNocm9taXVtX2NvZGUiIF0KKy0tLSBhL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9saWJ2cHgvZ2VuZXJhdGVfZ25pLnNoCisrKysgYi9zcmMv M3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvbGlidnB4L2dlbmVyYXRlX2duaS5zaAorQEAg LTM3NCw2ICszNzQsNyBAQCBnZW5fY29uZmlnX2ZpbGVzIGxpbnV4L2FybS1uZW9uLWhpZ2hiZCAi CisgZ2VuX2NvbmZpZ19maWxlcyBsaW51eC9hcm02NC1oaWdoYmQgIi0tdGFyZ2V0PWFybXY4LWxp bnV4LWdjYyAke2FsbF9wbGF0Zm9ybXN9ICR7SElHSEJEfSIKKyBnZW5fY29uZmlnX2ZpbGVzIGxp bnV4L21pcHNlbCAiLS10YXJnZXQ9bWlwczMyLWxpbnV4LWdjYyAke2FsbF9wbGF0Zm9ybXN9Igor IGdlbl9jb25maWdfZmlsZXMgbGludXgvbWlwczY0ZWwgIi0tdGFyZ2V0PW1pcHM2NC1saW51eC1n Y2MgJHthbGxfcGxhdGZvcm1zfSIKKytnZW5fY29uZmlnX2ZpbGVzIGxpbnV4L3BwYzY0ICItLXRh cmdldD1nZW5lcmljLWdudSAkSElHSEJEICR7YWxsX3BsYXRmb3Jtc30iCisgZ2VuX2NvbmZpZ19m aWxlcyBsaW51eC9nZW5lcmljICItLXRhcmdldD1nZW5lcmljLWdudSAkSElHSEJEICR7YWxsX3Bs YXRmb3Jtc30iCisgZ2VuX2NvbmZpZ19maWxlcyB3aW4vYXJtNjQgIi0tdGFyZ2V0PWFybTY0LXdp bjY0LXZzMTUgJHthbGxfcGxhdGZvcm1zfSAke0hJR0hCRH0iCisgZ2VuX2NvbmZpZ19maWxlcyB3 aW4vaWEzMiAiLS10YXJnZXQ9eDg2LXdpbjMyLXZzMTQgJHthbGxfcGxhdGZvcm1zfSAke3g4Nl9w bGF0Zm9ybXN9IgorQEAgLTM5OSw2ICs0MDAsNyBAQCBsaW50X2NvbmZpZyBsaW51eC9hcm0tbmVv bi1oaWdoYmQKKyBsaW50X2NvbmZpZyBsaW51eC9hcm02NC1oaWdoYmQKKyBsaW50X2NvbmZpZyBs aW51eC9taXBzZWwKKyBsaW50X2NvbmZpZyBsaW51eC9taXBzNjRlbAorK2xpbnRfY29uZmlnIGxp bnV4L3BwYzY0CisgbGludF9jb25maWcgbGludXgvZ2VuZXJpYworIGxpbnRfY29uZmlnIHdpbi9h cm02NAorIGxpbnRfY29uZmlnIHdpbi9pYTMyCitAQCAtNDI4LDYgKzQzMCw3IEBAIGdlbl9ydGNk X2hlYWRlciBsaW51eC9hcm0tbmVvbi1oaWdoYmQgYXIKKyBnZW5fcnRjZF9oZWFkZXIgbGludXgv YXJtNjQtaGlnaGJkIGFybXY4CisgZ2VuX3J0Y2RfaGVhZGVyIGxpbnV4L21pcHNlbCBtaXBzZWwK KyBnZW5fcnRjZF9oZWFkZXIgbGludXgvbWlwczY0ZWwgbWlwczY0ZWwKKytnZW5fcnRjZF9oZWFk ZXIgbGludXgvcHBjNjQgZ2VuZXJpYworIGdlbl9ydGNkX2hlYWRlciBsaW51eC9nZW5lcmljIGdl bmVyaWMKKyBnZW5fcnRjZF9oZWFkZXIgd2luL2FybTY0IGFybXY4CisgZ2VuX3J0Y2RfaGVhZGVy IHdpbi9pYTMyIHg4NiAiJHtyZXF1aXJlX3NzZTJ9IgorQEAgLTUxMyw2ICs1MTYsMTIgQEAgaWYg WyAteiAkT05MWV9DT05GSUdTIF07IHRoZW4KKyAKKyAgIGVjaG8gIk1JUFM2NCBzb3VyY2UgbGlz dCBpcyBpZGVudGljYWwgdG8gTUlQUyBzb3VyY2UgbGlzdC4gTm8gbmVlZCB0byBnZW5lcmF0ZSBp dC4iCisgCisrICBlY2hvICJHZW5lcmF0ZSBwcGM2NCBzb3VyY2UgbGlzdC4iCisrICBjb25maWc9 JChwcmludF9jb25maWdfYmFzaWMgbGludXgvcHBjNjQpCisrICBtYWtlX2NsZWFuCisrICBtYWtl IGxpYnZweF9zcmNzLnR4dCB0YXJnZXQ9bGlicyAkY29uZmlnID4gL2Rldi9udWxsCisrICBjb252 ZXJ0X3NyY3NfdG9fcHJvamVjdF9maWxlcyBsaWJ2cHhfc3Jjcy50eHQgbGlidnB4X3NyY3NfcHBj NjQKKysKKyAgIGVjaG8gIkdlbmVyYXRlIE5hQ2wgc291cmNlIGxpc3QuIgorICAgY29uZmlnPSQo cHJpbnRfY29uZmlnX2Jhc2ljIG5hY2wpCisgICBtYWtlX2NsZWFuCmRpZmYgLS1naXQgYS9zcmNw a2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wOTAxLXh4eC1wcGM2NGxlLXNhbmRib3gtbGludXgt c3RhdC5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA5MDEteHh4LXBwYzY0 bGUtc2FuZGJveC1saW51eC1zdGF0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMC4uNGI4ZTYzMjA2MDFjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYt d2ViZW5naW5lL3BhdGNoZXMvMDkwMS14eHgtcHBjNjRsZS1zYW5kYm94LWxpbnV4LXN0YXQucGF0 Y2gKQEAgLTAsMCArMSwzMSBAQAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gv bGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc3RhdC5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hy b21pdW0vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zdGF0LmgKK0BAIC0xNTUs NiArMTU1LDI4IEBAIHN0cnVjdCBrZXJuZWxfc3RhdCB7CisgICB1bnNpZ25lZCBpbnQgX191bnVz ZWQ0OworICAgdW5zaWduZWQgaW50IF9fdW51c2VkNTsKKyB9OworKyNlbGlmIGRlZmluZWQoX19w b3dlcnBjNjRfXykKKytzdHJ1Y3Qga2VybmVsX3N0YXQgeworKyAgdW5zaWduZWQgbG9uZwlzdF9k ZXY7CisrICB1bnNpZ25lZCBsb25nCXN0X2lubzsKKysgIHVuc2lnbmVkIGxvbmcJc3Rfbmxpbms7 CisrICB1bnNpZ25lZCBpbnQJc3RfbW9kZTsKKysgIHVuc2lnbmVkIGludAlzdF91aWQ7CisrICB1 bnNpZ25lZCBpbnQJc3RfZ2lkOworKyAgdW5zaWduZWQgbG9uZwlzdF9yZGV2OworKyAgbG9uZwkJ c3Rfc2l6ZTsKKysgIHVuc2lnbmVkIGxvbmcJc3RfYmxrc2l6ZTsKKysgIHVuc2lnbmVkIGxvbmcJ c3RfYmxvY2tzOworKyAgdW5zaWduZWQgbG9uZwlzdF9hdGltZV87CisrICB1bnNpZ25lZCBsb25n CXN0X2F0aW1lX25zZWNfOworKyAgdW5zaWduZWQgbG9uZwlzdF9tdGltZV87CisrICB1bnNpZ25l ZCBsb25nCXN0X210aW1lX25zZWNfOworKyAgdW5zaWduZWQgbG9uZwlzdF9jdGltZV87CisrICB1 bnNpZ25lZCBsb25nCXN0X2N0aW1lX25zZWNfOworKyAgdW5zaWduZWQgbG9uZwlfX3VudXNlZDQ7 CisrICB1bnNpZ25lZCBsb25nCV9fdW51c2VkNTsKKysgIHVuc2lnbmVkIGxvbmcJX191bnVzZWQ2 OworK307CisgI2VuZGlmCisgCisgI2lmICFkZWZpbmVkKEFUX0VNUFRZX1BBVEgpCmRpZmYgLS1n aXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wOTAyLXh4eC1wcGM2NGxlLXN1cHBv cnQucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wOTAyLXh4eC1wcGM2NGxl LXN1cHBvcnQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4z M2Q0MTVlNTVmNjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0 Y2hlcy8wOTAyLXh4eC1wcGM2NGxlLXN1cHBvcnQucGF0Y2gKQEAgLTAsMCArMSwzNTU2IEBACitj b21taXQgMmMwMTNhMzE3YjExMTRlZjY3Y2RiYmMzMDgyNGIyODkwN2I5ZWE5NAorQXV0aG9yOiBE YW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KK0RhdGU6ICAgV2VkIE1hciAzIDE5 OjA4OjI5IDIwMjEgKzAxMDAKKworICAgIHBwYzY0bGUgc3VwcG9ydAorCistLS0gYS9zcmMvM3Jk cGFydHkvY2hyb21pdW0vc2FuZGJveC9mZWF0dXJlcy5nbmkKKysrKyBiL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS9zYW5kYm94L2ZlYXR1cmVzLmduaQorQEAgLTExLDcgKzExLDggQEAgaW1wb3J0KCIv L2J1aWxkL2NvbmZpZy9uYWNsL2NvbmZpZy5nbmkiKQorIHVzZV9zZWNjb21wX2JwZiA9IChpc19s aW51eCB8fCBpc19jaHJvbWVvcyB8fCBpc19hbmRyb2lkKSAmJgorICAgICAgICAgICAgICAgICAg IChjdXJyZW50X2NwdSA9PSAieDg2IiB8fCBjdXJyZW50X2NwdSA9PSAieDY0IiB8fAorICAgICAg ICAgICAgICAgICAgICBjdXJyZW50X2NwdSA9PSAiYXJtIiB8fCBjdXJyZW50X2NwdSA9PSAiYXJt NjQiIHx8CistICAgICAgICAgICAgICAgICAgIGN1cnJlbnRfY3B1ID09ICJtaXBzZWwiIHx8IGN1 cnJlbnRfY3B1ID09ICJtaXBzNjRlbCIpCisrICAgICAgICAgICAgICAgICAgIGN1cnJlbnRfY3B1 ID09ICJtaXBzZWwiIHx8IGN1cnJlbnRfY3B1ID09ICJtaXBzNjRlbCIgfHwKKysgICAgICAgICAg ICAgICAgICAgY3VycmVudF9jcHUgPT0gInBwYzY0IikKKyAKKyB1c2Vfc2VjY29tcF9icGYgPSB1 c2Vfc2VjY29tcF9icGYgfHwgaXNfbmFjbF9ub25zZmkKKyAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS9zYW5kYm94L2xpbnV4L0JVSUxELmduCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21p dW0vc2FuZGJveC9saW51eC9CVUlMRC5nbgorQEAgLTQzMyw2ICs0MzMsOCBAQCBjb21wb25lbnQo InNhbmRib3hfc2VydmljZXMiKSB7CisgCisgc291cmNlX3NldCgic2FuZGJveF9zZXJ2aWNlc19o ZWFkZXJzIikgeworICAgc291cmNlcyA9IFsKKysgICAgInN5c3RlbV9oZWFkZXJzL3BwYzY0X2xp bnV4X3N5c2NhbGxzLmgiLAorKyAgICAic3lzdGVtX2hlYWRlcnMvcHBjNjRfbGludXhfdWNvbnRl eHQuaCIsCisgICAgICJzeXN0ZW1faGVhZGVycy9hcm02NF9saW51eF9zeXNjYWxscy5oIiwKKyAg ICAgInN5c3RlbV9oZWFkZXJzL2FybV9saW51eF9zeXNjYWxscy5oIiwKKyAgICAgInN5c3RlbV9o ZWFkZXJzL2FybV9saW51eF91Y29udGV4dC5oIiwKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS9zYW5kYm94L2xpbnV4L2JwZl9kc2wvbGludXhfc3lzY2FsbF9yYW5nZXMuaAorKysrIGIvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvYnBmX2RzbC9saW51eF9zeXNjYWxsX3Jh bmdlcy5oCitAQCAtNTYsNiArNTYsMTMgQEAKKyAjZGVmaW5lIE1BWF9QVUJMSUNfU1lTQ0FMTCBf X05SX3N5c2NhbGxzCisgI2RlZmluZSBNQVhfU1lTQ0FMTCBNQVhfUFVCTElDX1NZU0NBTEwKKyAK KysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrCisrI2luY2x1ZGUgPGFzbS91bmlzdGQu aD4KKysjZGVmaW5lIE1JTl9TWVNDQUxMIDB1CisrI2RlZmluZSBNQVhfUFVCTElDX1NZU0NBTEwg Mzg2dQorKyNkZWZpbmUgTUFYX1NZU0NBTEwgTUFYX1BVQkxJQ19TWVNDQUxMCisrCisgI2Vsc2UK KyAjZXJyb3IgIlVuc3VwcG9ydGVkIGFyY2hpdGVjdHVyZSIKKyAjZW5kaWYKKy0tLSBhL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L2JwZl9kc2wvc2VjY29tcF9tYWNyb3MuaAor KysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvYnBmX2RzbC9zZWNjb21w X21hY3Jvcy5oCitAQCAtMTYsNiArMTYsOSBAQAorICNpZiBkZWZpbmVkKF9fbWlwc19fKQorIC8v IHN5cy91c2VyLmggaW4gZWdsaWJjIG1pc3NlcyBzaXplX3QgZGVmaW5pdGlvbgorICNpbmNsdWRl IDxzdGRkZWYuaD4KKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pICYmIGRlZmluZWQoX19H TElCQ19fKQorKy8vIE1hbnVhbGx5IGRlZmluZSBncmVnX3Qgb24gcHBjNjQKKyt0eXBlZGVmIHVu c2lnbmVkIGxvbmcgbG9uZyBncmVnX3Q7CisgI2VuZGlmCisgI2VuZGlmCisgCitAQCAtMzQ2LDYg KzM0OSw1OSBAQCBzdHJ1Y3QgcmVnc19zdHJ1Y3QgeworICNkZWZpbmUgU0VDQ09NUF9QVF9QQVJN NChfcmVncykgKF9yZWdzKS5yZWdzWzNdCisgI2RlZmluZSBTRUNDT01QX1BUX1BBUk01KF9yZWdz KSAoX3JlZ3MpLnJlZ3NbNF0KKyAjZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTYoX3JlZ3MpIChfcmVn cykucmVnc1s1XQorKworKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysjaW5jbHVkZSA8 YXNtL3B0cmFjZS5oPgorKworK3R5cGVkZWYgc3RydWN0IHB0X3JlZ3MgcmVnc19zdHJ1Y3Q7Cisr CisrI2lmZGVmIEFSQ0hfQ1BVX0xJVFRMRV9FTkRJQU4KKysjZGVmaW5lIFNFQ0NPTVBfQVJDSCBB VURJVF9BUkNIX1BQQzY0TEUKKysjZWxzZQorKyNkZWZpbmUgU0VDQ09NUF9BUkNIIEFVRElUX0FS Q0hfUFBDNjQKKysjZW5kaWYKKysKKysjaWZkZWYgX19HTElCQ19fCisrI2RlZmluZSBTRUNDT01Q X1JFRyhfY3R4LCBfcmVnKSAoKF9jdHgpLT51Y19tY29udGV4dC5yZWdzLT5ncHJbX3JlZ10pCisr I2Vsc2UKKysjZGVmaW5lIFNFQ0NPTVBfUkVHKF9jdHgsIF9yZWcpICgoKHN0cnVjdCBwdF9yZWdz ICopKF9jdHgpLT51Y19tY29udGV4dC5yZWdzKS0+Z3ByW19yZWddKQorKyNlbmRpZgorKworKyNk ZWZpbmUgU0VDQ09NUF9SRVNVTFQoX2N0eCkgU0VDQ09NUF9SRUcoX2N0eCwgMykKKysjZGVmaW5l IFNFQ0NPTVBfU1lTQ0FMTChfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCAwKQorKyNpZmRlZiBfX0dM SUJDX18KKysjZGVmaW5lIFNFQ0NPTVBfSVAoX2N0eCkgKF9jdHgpLT51Y19tY29udGV4dC5yZWdz LT5uaXAKKysjZWxzZQorKyNkZWZpbmUgU0VDQ09NUF9JUChfY3R4KSAoKHN0cnVjdCBwdF9yZWdz ICopKF9jdHgpLT51Y19tY29udGV4dC5yZWdzKS0+bmlwCisrI2VuZGlmCisrI2RlZmluZSBTRUND T01QX1BBUk0xKF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgsIDMpCisrI2RlZmluZSBTRUNDT01QX1BB Uk0yKF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgsIDQpCisrI2RlZmluZSBTRUNDT01QX1BBUk0zKF9j dHgpIFNFQ0NPTVBfUkVHKF9jdHgsIDUpCisrI2RlZmluZSBTRUNDT01QX1BBUk00KF9jdHgpIFNF Q0NPTVBfUkVHKF9jdHgsIDYpCisrI2RlZmluZSBTRUNDT01QX1BBUk01KF9jdHgpIFNFQ0NPTVBf UkVHKF9jdHgsIDcpCisrI2RlZmluZSBTRUNDT01QX1BBUk02KF9jdHgpIFNFQ0NPTVBfUkVHKF9j dHgsIDgpCisrCisrI2RlZmluZSBTRUNDT01QX05SX0lEWCAob2Zmc2V0b2Yoc3RydWN0IGFyY2hf c2VjY29tcF9kYXRhLCBucikpCisrI2RlZmluZSBTRUNDT01QX0FSQ0hfSURYIChvZmZzZXRvZihz dHJ1Y3QgYXJjaF9zZWNjb21wX2RhdGEsIGFyY2gpKQorKyNkZWZpbmUgU0VDQ09NUF9JUF9NU0Jf SURYIFwKKysgIChvZmZzZXRvZihzdHJ1Y3QgYXJjaF9zZWNjb21wX2RhdGEsIGluc3RydWN0aW9u X3BvaW50ZXIpICsgNCkKKysjZGVmaW5lIFNFQ0NPTVBfSVBfTFNCX0lEWCBcCisrICAob2Zmc2V0 b2Yoc3RydWN0IGFyY2hfc2VjY29tcF9kYXRhLCBpbnN0cnVjdGlvbl9wb2ludGVyKSArIDApCisr I2RlZmluZSBTRUNDT01QX0FSR19NU0JfSURYKG5yKSBcCisrICAob2Zmc2V0b2Yoc3RydWN0IGFy Y2hfc2VjY29tcF9kYXRhLCBhcmdzKSArIDggKiAobnIpICsgNCkKKysjZGVmaW5lIFNFQ0NPTVBf QVJHX0xTQl9JRFgobnIpIFwKKysgIChvZmZzZXRvZihzdHJ1Y3QgYXJjaF9zZWNjb21wX2RhdGEs IGFyZ3MpICsgOCAqIChucikgKyAwKQorKworKyNkZWZpbmUgU0VDQ09NUF9QVF9SRVNVTFQoX3Jl Z3MpIChfcmVncykuZ3ByWzNdCisrI2RlZmluZSBTRUNDT01QX1BUX1NZU0NBTEwoX3JlZ3MpIChf cmVncykuZ3ByWzBdCisrI2RlZmluZSBTRUNDT01QX1BUX0lQKF9yZWdzKSAoX3JlZ3MpLm5pcAor KyNkZWZpbmUgU0VDQ09NUF9QVF9QQVJNMShfcmVncykgKF9yZWdzKS5ncHJbM10KKysjZGVmaW5l IFNFQ0NPTVBfUFRfUEFSTTIoX3JlZ3MpIChfcmVncykuZ3ByWzRdCisrI2RlZmluZSBTRUNDT01Q X1BUX1BBUk0zKF9yZWdzKSAoX3JlZ3MpLmdwcls1XQorKyNkZWZpbmUgU0VDQ09NUF9QVF9QQVJN NChfcmVncykgKF9yZWdzKS5ncHJbNl0KKysjZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTUoX3JlZ3Mp IChfcmVncykuZ3ByWzddCisrI2RlZmluZSBTRUNDT01QX1BUX1BBUk02KF9yZWdzKSAoX3JlZ3Mp Lmdwcls4XQorKworICNlbHNlCisgI2Vycm9yIFVuc3VwcG9ydGVkIHRhcmdldCBwbGF0Zm9ybQor IAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYt aGVscGVycy9iYXNlbGluZV9wb2xpY3kuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9z YW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVfcG9saWN5LmNjCitAQCAt OTAsNyArOTAsNyBAQCBib29sIElzQmFzZWxpbmVQb2xpY3lXYXRjaGVkKGludCBzeXNubykKKyAg ICAgICAgICBTeXNjYWxsU2V0czo6SXNOdW1hKHN5c25vKSB8fAorICAgICAgICAgIFN5c2NhbGxT ZXRzOjpJc1ByY3RsKHN5c25vKSB8fAorICAgICAgICAgIFN5c2NhbGxTZXRzOjpJc1Byb2Nlc3NH cm91cE9yU2Vzc2lvbihzeXNubykgfHwKKy0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAorKyNp ZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pIHx8IFwKKyAgICAg KGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklU UykpCisgICAgICAgICAgU3lzY2FsbFNldHM6OklzU29ja2V0Q2FsbChzeXNubykgfHwKKyAjZW5k aWYKK0BAIC0yNTgsNyArMjU4LDcgQEAgUmVzdWx0RXhwciBFdmFsdWF0ZVN5c2NhbGxJbXBsKGlu dCBmc19kZQorICAgfQorIAorICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2 XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKKy0gICAgZGVmaW5lZChfX2FhcmNoNjRf XykKKysgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQor ICAgaWYgKHN5c25vID09IF9fTlJfbW1hcCkKKyAgICAgcmV0dXJuIFJlc3RyaWN0TW1hcEZsYWdz KCk7CisgI2VuZGlmCitAQCAtMjc5LDcgKzI3OSw3IEBAIFJlc3VsdEV4cHIgRXZhbHVhdGVTeXNj YWxsSW1wbChpbnQgZnNfZGUKKyAgICAgcmV0dXJuIFJlc3RyaWN0UHJjdGwoKTsKKyAKKyAjaWYg ZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBz X18pIHx8IFwKKy0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKKysgICAgZGVmaW5lZChfX2FhcmNo NjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgaWYgKHN5c25vID09IF9fTlJfc29j a2V0cGFpcikgeworICAgICAvLyBPbmx5IGFsbG93IEFGX1VOSVgsIFBGX1VOSVguIENyYXNoIGlm IGFueXRoaW5nIGVsc2UgaXMgc2Vlbi4KKyAgICAgc3RhdGljX2Fzc2VydChBRl9VTklYID09IFBG X1VOSVgsCitAQCAtMzQzLDcgKzM0Myw4IEBAIFJlc3VsdEV4cHIgRXZhbHVhdGVTeXNjYWxsSW1w bChpbnQgZnNfZGUKKyAgIH0KKyAKKyAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAorLSAgICAo ZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRT KSkKKysgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9D UFVfMzJfQklUUykpIHx8IFwKKysgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgaWYgKFN5 c2NhbGxTZXRzOjpJc1NvY2tldENhbGwoc3lzbm8pKQorICAgICByZXR1cm4gUmVzdHJpY3RTb2Nr ZXRjYWxsQ29tbWFuZCgpOworICNlbmRpZgorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Nh bmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9iYXNlbGluZV9wb2xpY3lfdW5pdHRlc3Qu Y2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBm LWhlbHBlcnMvYmFzZWxpbmVfcG9saWN5X3VuaXR0ZXN0LmNjCitAQCAtMzE3LDcgKzMxNyw3IEBA IFRFU1RfQkFTRUxJTkVfU0lHU1lTKF9fTlJfc3lzaW5mbykKKyBURVNUX0JBU0VMSU5FX1NJR1NZ UyhfX05SX3N5c2xvZykKKyBURVNUX0JBU0VMSU5FX1NJR1NZUyhfX05SX3RpbWVyX2NyZWF0ZSkK KyAKKy0jaWYgIWRlZmluZWQoX19hYXJjaDY0X18pCisrI2lmICFkZWZpbmVkKF9fYWFyY2g2NF9f KSAmJiAhZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorIFRFU1RfQkFTRUxJTkVfU0lHU1lTKF9fTlJf aW5vdGlmeV9pbml0KQorIFRFU1RfQkFTRUxJTkVfU0lHU1lTKF9fTlJfdnNlcnZlcikKKyAjZW5k aWYKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBm LWhlbHBlcnMvc3lzY2FsbF9wYXJhbWV0ZXJzX3Jlc3RyaWN0aW9ucy5jYworKysrIGIvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxs X3BhcmFtZXRlcnNfcmVzdHJpY3Rpb25zLmNjCitAQCAtNDAsNiArNDAsNyBAQAorICNpbmNsdWRl IDxzeXMvcHRyYWNlLmg+CisgI2lmIChkZWZpbmVkKE9TX0xJTlVYKSB8fCBCVUlMREZMQUcoSVNf Q0hST01FT1NfTEFDUk9TKSkgJiYgXAorICAgICAhZGVmaW5lZChfX2FybV9fKSAmJiAhZGVmaW5l ZChfX2FhcmNoNjRfXykgJiYgICAgICAgICAgIFwKKysgICAgIWRlZmluZWQoX19wb3dlcnBjNjRf XykgJiYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICFkZWZpbmVkKFBUUkFD RV9HRVRfVEhSRUFEX0FSRUEpCisgLy8gQWxzbyBpbmNsdWRlIGFzbS9wdHJhY2UtYWJpLmggc2lu Y2UgcHRyYWNlLmggaW4gb2xkZXIgbGliYyAoZm9yIGluc3RhbmNlCisgLy8gdGhlIG9uZSBpbiBV YnVudHUgMTYuMDQgTFRTKSBpcyBtaXNzaW5nIFBUUkFDRV9HRVRfVEhSRUFEX0FSRUEuCitAQCAt NDksNiArNTAsMTEgQEAKKyAjZW5kaWYKKyAjZW5kaWYgIC8vICFPU19OQUNMX05PTlNGSQorIAor Ky8vIE9uIFBQQzY0LCBUQ0dFVFMgaXMgZGVmaW5lZCBpbiB0ZXJtcyBvZiBzdHJ1Y3QgdGVybWlv cywgc28gd2UgbXVzdCBpbmNsdWRlIHRlcm1pb3MuaAorKyNpZmRlZiBfX3Bvd2VycGM2NF9fCisr I2luY2x1ZGUgPHRlcm1pb3MuaD4KKysjZW5kaWYKKysKKyAjaWYgZGVmaW5lZChPU19BTkRST0lE KQorIAorICNpZiAhZGVmaW5lZChGX0RVUEZEX0NMT0VYRUMpCitAQCAtMTA2LDYgKzExMiwxNCBA QCBpbmxpbmUgYm9vbCBJc0FyY2hpdGVjdHVyZU1pcHMoKSB7CisgI2VuZGlmCisgfQorIAorK2lu bGluZSBib29sIElzQXJjaGl0ZWN0dXJlUFBDNjQoKSB7CisrI2lmIGRlZmluZWQoX19wb3dlcnBj NjRfXykKKysgIHJldHVybiB0cnVlOworKyNlbHNlCisrICByZXR1cm4gZmFsc2U7CisrI2VuZGlm CisrfQorKworIC8vIFVidW50dSdzIHZlcnNpb24gb2YgZ2xpYmMgaGFzIGEgcmFjZSBjb25kaXRp b24gaW4gc2VtX3Bvc3QgdGhhdCBjYW4gY2F1c2UKKyAvLyBpdCB0byBjYWxsIGZ1dGV4KDIpIHdp dGggYm9ndXMgb3AgYXJndW1lbnRzLiBUbyB3b3JrYXJvdW5kIHRoaXMsIHdlIG5lZWQKKyAvLyB0 byBhbGxvdyB0aG9zZSBmdXRleCgyKSBjYWxscyB0byBmYWlsIHdpdGggRUlOVkFMLCBpbnN0ZWFk IG9mIGNyYXNoaW5nIHRoZQorQEAgLTI3MCw2ICsyODQsOCBAQCBSZXN1bHRFeHByIFJlc3RyaWN0 RmNudGxDb21tYW5kcygpIHsKKyAgIHVpbnQ2NF90IGtPTGFyZ2VGaWxlRmxhZyA9IE9fTEFSR0VG SUxFOworICAgaWYgKElzQXJjaGl0ZWN0dXJlWDg2XzY0KCkgfHwgSXNBcmNoaXRlY3R1cmVJMzg2 KCkgfHwgSXNBcmNoaXRlY3R1cmVNaXBzKCkpCisgICAgIGtPTGFyZ2VGaWxlRmxhZyA9IDAxMDAw MDA7CisrICBlbHNlIGlmIChJc0FyY2hpdGVjdHVyZVBQQzY0KCkpCisrICAgIGtPTGFyZ2VGaWxl RmxhZyA9IDAyMDAwMDA7CisgCisgICBjb25zdCBBcmc8aW50PiBjbWQoMSk7CisgICBjb25zdCBB cmc8bG9uZz4gbG9uZ19hcmcoMik7CitAQCAtMjg3LDcgKzMwMywxNiBAQCBSZXN1bHRFeHByIFJl c3RyaWN0RmNudGxDb21tYW5kcygpIHsKKyAgICAgICAgICAgICAgIEZfU0VUTEtXLAorICAgICAg ICAgICAgICAgRl9HRVRMSywKKyAgICAgICAgICAgICAgIEZfRFVQRkQsCistICAgICAgICAgICAg ICBGX0RVUEZEX0NMT0VYRUMpLAorKyAgICAgICAgICAgICAgRl9EVVBGRF9DTE9FWEVDCisrI2lm IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysvLyBPbiBQUEM2NCwgRl9TRVRMSywgRl9HRVRMSywg Rl9TRVRMS1cgYXJlIGRlZmluZWQgYXMgdGhlIDY0LWJpdCB2YXJpYW50cworKy8vIGJ1dCBnbGli YyB3aWxsIHNvbWV0aW1lcyBzdGlsbCB1c2UgdGhlIDMyLWJpdCB2ZXJzaW9ucy4gQWxsb3cgYm90 aC4KKysgICAgICAgICAgICAgICwKKysgICAgICAgICAgICAgIDUsIC8qIEZfR0VUTEsgKDMyKSAq LworKyAgICAgICAgICAgICAgNiwgLyogRl9TRVRMSyAoMzIpICovCisrICAgICAgICAgICAgICA3 ICAvKiBGX1NFVExLVyAoMzIpICovCisrI2VuZGlmCisrCSAgICAgKSwKKyAgICAgICAgICAgICAg QWxsb3coKSkKKyAgICAgICAuQ2FzZShGX1NFVEZMLAorICAgICAgICAgICAgIElmKChsb25nX2Fy ZyAmIH5rQWxsb3dlZE1hc2spID09IDAsIEFsbG93KCkpLkVsc2UoQ3Jhc2hTSUdTWVMoKSkpCitA QCAtMjk3LDcgKzMyMiw3IEBAIFJlc3VsdEV4cHIgUmVzdHJpY3RGY250bENvbW1hbmRzKCkgewor ICAgLy8gY2xhbmctZm9ybWF0IG9uCisgfQorIAorLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBk ZWZpbmVkKF9fbWlwc19fKQorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fbWlw c19fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgUmVzdWx0RXhwciBSZXN0cmljdFNvY2tl dGNhbGxDb21tYW5kKCkgeworICAgLy8gVW5mb3J0dW5hdGVseSwgd2UgYXJlIHVuYWJsZSB0byBy ZXN0cmljdCB0aGUgZmlyc3QgcGFyYW1ldGVyIHRvCisgICAvLyBzb2NrZXRwYWlyKDIpLiBXaGls c3QgaW5pdGlhbGx5IHNvdW5kaW5nIGJhZCwgaXQncyBub3Rld29ydGh5IHRoYXQgdmVyeQorQEAg LTQ1NCw3ICs0NzksNyBAQCBSZXN1bHRFeHByIFJlc3RyaWN0UHRyYWNlKCkgeworICNlbmRpZgor ICAgcmV0dXJuIFN3aXRjaChyZXF1ZXN0KQorICAgICAgIC5DQVNFUygoCistI2lmICFkZWZpbmVk KF9fYWFyY2g2NF9fKQorKyNpZiAhZGVmaW5lZChfX2FhcmNoNjRfXykgJiYgIWRlZmluZWQoX19w b3dlcnBjNjRfXykKKyAgICAgICAgICAgICAgICAgIFBUUkFDRV9HRVRSRUdTLCBQVFJBQ0VfR0VU RlBSRUdTLAorICNpZiBkZWZpbmVkKFRSQUNFX0dFVF9USFJFQURfQVJFQSkKKyAgICAgICAgICAg ICAgICAgIFBUUkFDRV9HRVRfVEhSRUFEX0FSRUEsCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21p dW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVyc19y ZXN0cmljdGlvbnMuaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgv c2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3BhcmFtZXRlcnNfcmVzdHJpY3Rpb25zLmgKK0BA IC00OSw3ICs0OSw3IEBAIFNBTkRCT1hfRVhQT1JUIGJwZl9kc2w6OlJlc3VsdEV4cHIgUmVzdHIK KyAvLyBPX05PTkJMT0NLIHwgT19TWU5DIHwgT19MQVJHRUZJTEUgfCBPX0NMT0VYRUMgfCBPX05P QVRJTUUuCisgU0FOREJPWF9FWFBPUlQgYnBmX2RzbDo6UmVzdWx0RXhwciBSZXN0cmljdEZjbnRs Q29tbWFuZHMoKTsKKyAKKy0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX21pcHNf XykKKysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQorIC8vIFJlc3RyaWN0IHNvY2tldGNhbGwoMikgdG8gb25seSBhbGxv dyBzb2NrZXRwYWlyKDIpLCBzZW5kKDIpLCByZWN2KDIpLAorIC8vIHNlbmR0bygyKSwgcmVjdmZy b20oMiksIHNodXRkb3duKDIpLCBzZW5kbXNnKDIpIGFuZCByZWN2bXNnKDIpLgorIFNBTkRCT1hf RVhQT1JUIGJwZl9kc2w6OlJlc3VsdEV4cHIgUmVzdHJpY3RTb2NrZXRjYWxsQ29tbWFuZCgpOwor LS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVs cGVycy9zeXNjYWxsX3NldHMuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94 L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmNjCitAQCAtMjgsNyArMjgs NyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0tpbGwoaW50IHN5c25vKSB7CisgYm9vbCBTeXNjYWxs U2V0czo6SXNBbGxvd2VkR2V0dGltZShpbnQgc3lzbm8pIHsKKyAgIHN3aXRjaCAoc3lzbm8pIHsK KyAgICAgY2FzZSBfX05SX2dldHRpbWVvZmRheToKKy0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwg ZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBcCisrI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmlu ZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSB8fCBcCisgICAgIChkZWZp bmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQor ICAgICBjYXNlIF9fTlJfdGltZToKKyAjZW5kaWYKK0BAIC01MSwxMiArNTEsMTIgQEAgYm9vbCBT eXNjYWxsU2V0czo6SXNBbGxvd2VkR2V0dGltZShpbnQgcworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIGZpbHRlcmVkIGJ5IFJlc3RyaWN0Q2xvY2tJRCgpLgorICAgICBj YXNlIF9fTlJfY2xvY2tfbmFub3NsZWVwX3RpbWU2NDogIC8vIFBhcmFtZXRlcnMgZmlsdGVyZWQg YnkgUmVzdHJpY3RDbG9ja0lEKCkuCisgI2VuZGlmCistI2lmIGRlZmluZWQoX19pMzg2X18pIHx8 IFwKKysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSB8fCBc CisgICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BV XzMyX0JJVFMpKQorICAgICBjYXNlIF9fTlJfZnRpbWU6ICAvLyBPYnNvbGV0ZS4KKyAjZW5kaWYK KyAgICAgY2FzZSBfX05SX3NldHRpbWVvZmRheTogIC8vIFByaXZpbGVnZWQuCistI2lmIGRlZmlu ZWQoX19pMzg2X18pIHx8IFwKKysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3Bv d2VycGM2NF9fKSB8fCBcCisgICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBk ZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQorICAgICBjYXNlIF9fTlJfc3RpbWU6CisgI2VuZGlm CitAQCAtMTM1LDcgKzEzNSw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzRmlsZVN5c3RlbShpbnQg c3lzbm8KKyAgICAgY2FzZSBfX05SX2ZhY2Nlc3NhdDogIC8vIEVQRVJNIG5vdCBhIHZhbGlkIGVy cm5vLgorICAgICBjYXNlIF9fTlJfZmNobW9kYXQ6CisgICAgIGNhc2UgX19OUl9mY2hvd25hdDog IC8vIFNob3VsZCBiZSBjYWxsZWQgY2hvd25hdCA/CistI2lmIGRlZmluZWQoX194ODZfNjRfXykg fHwgZGVmaW5lZChfX2FhcmNoNjRfXykKKysjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZp bmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19O Ul9uZXdmc3RhdGF0OiAgLy8gZnN0YXRhdCgpLiBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KKyAj ZWxpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKKyAgICAgKGRl ZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykp CitAQCAtMTU0LDcgKzE1NCw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzRmlsZVN5c3RlbShpbnQg c3lzbm8KKyAgICAgY2FzZSBfX05SX21lbWZkX2NyZWF0ZToKKyAgICAgY2FzZSBfX05SX21rZGly YXQ6CisgICAgIGNhc2UgX19OUl9ta25vZGF0OgorLSNpZiBkZWZpbmVkKF9faTM4Nl9fKQorKyNp ZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2Ug X19OUl9vbGRsc3RhdDoKKyAgICAgY2FzZSBfX05SX29sZHN0YXQ6CisgI2VuZGlmCitAQCAtMTY3 LDcgKzE2Nyw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzRmlsZVN5c3RlbShpbnQgc3lzbm8KKyAg ICAgY2FzZSBfX05SX3N0YXQ2NDoKKyAjZW5kaWYKKyAgICAgY2FzZSBfX05SX3N0YXRmczogIC8v IEVQRVJNIG5vdCBhIHZhbGlkIGVycm5vLgorLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZp bmVkKF9fYXJtX18pIHx8IFwKKysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2Fy bV9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pIHx8IFwKKyAgICAgKGRlZmluZWQoQVJDSF9D UFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCisgICAgIGNhc2Ug X19OUl9zdGF0ZnM2NDoKKyAjZW5kaWYKK0BAIC0xNzksNyArMTc5LDggQEAgYm9vbCBTeXNjYWxs U2V0czo6SXNGaWxlU3lzdGVtKGludCBzeXNubworICAgICBjYXNlIF9fTlJfdHJ1bmNhdGU2NDoK KyAjZW5kaWYKKyAgICAgY2FzZSBfX05SX3VubGlua2F0OgorLSNpZiBkZWZpbmVkKF9faTM4Nl9f KSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pCisrI2lmIGRlZmlu ZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykg fHwgXAorKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl91dGltZToK KyAjZW5kaWYKKyAgICAgY2FzZSBfX05SX3V0aW1lbnNhdDogIC8vIE5ldy4KK0BAIC0yMDQsNyAr MjA1LDggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkRmlsZVN5c3RlbUFjYworICNlbmRp ZgorICAgICAgIHJldHVybiB0cnVlOworIC8vIFRPRE8oamxuKTogdGhlc2Ugc2hvdWxkIGJlIGRl bmllZCBncmFjZWZ1bGx5IGFzIHdlbGwgKG1vdmVkIGJlbG93KS4KKy0jaWYgZGVmaW5lZChfX2kz ODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQorKyNpZiBk ZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBz X18pIHx8IFwKKysgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfZmFk dmlzZTY0OiAgLy8gRVBFUk0gbm90IGEgdmFsaWQgZXJybm8uCisgI2VuZGlmCisgI2lmIGRlZmlu ZWQoX19pMzg2X18pCitAQCAtMjE2LDEyICsyMTgsMTIgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNB bGxvd2VkRmlsZVN5c3RlbUFjYworICAgICBjYXNlIF9fTlJfZmRhdGFzeW5jOiAgLy8gRVBFUk0g bm90IGEgdmFsaWQgZXJybm8uCisgICAgIGNhc2UgX19OUl9mbG9jazogICAgICAvLyBFUEVSTSBu b3QgYSB2YWxpZCBlcnJuby4KKyAgICAgY2FzZSBfX05SX2ZzdGF0ZnM6ICAgIC8vIEdpdmUgaW5m b3JtYXRpb24gYWJvdXQgdGhlIHdob2xlIGZpbGVzeXN0ZW0uCistI2lmIGRlZmluZWQoX19pMzg2 X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBk ZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykgfHwgXAorICAgICAoZGVm aW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkK KyAgICAgY2FzZSBfX05SX2ZzdGF0ZnM2NDoKKyAjZW5kaWYKKyAgICAgY2FzZSBfX05SX2ZzeW5j OiAgLy8gRVBFUk0gbm90IGEgdmFsaWQgZXJybm8uCistI2lmIGRlZmluZWQoX19pMzg2X18pCisr I2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2Fz ZSBfX05SX29sZGZzdGF0OgorICNlbmRpZgorICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZp bmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKK0BAIC0yMjksNiArMjMx LDggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkRmlsZVN5c3RlbUFjYworICAgICBjYXNl IF9fTlJfc3luY19maWxlX3JhbmdlOiAgLy8gRVBFUk0gbm90IGEgdmFsaWQgZXJybm8uCisgI2Vs aWYgZGVmaW5lZChfX2FybV9fKQorICAgICBjYXNlIF9fTlJfYXJtX3N5bmNfZmlsZV9yYW5nZTog IC8vIEVQRVJNIG5vdCBhIHZhbGlkIGVycm5vLgorKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRf XykKKysgICAgY2FzZSBfX05SX3N5bmNfZmlsZV9yYW5nZTI6IC8vIEVQRVJNIG5vdCBhIHZhbGlk IGVycm5vLgorICNlbmRpZgorICAgICBkZWZhdWx0OgorICAgICAgIHJldHVybiBmYWxzZTsKK0BA IC0yNDgsNyArMjUyLDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNEZW5pZWRGaWxlU3lzdGVtQWNj ZQorICAgICBjYXNlIF9fTlJfZ2V0ZGVudHM6ICAgIC8vIEVQRVJNIG5vdCBhIHZhbGlkIGVycm5v LgorICNlbmRpZgorICAgICBjYXNlIF9fTlJfZ2V0ZGVudHM2NDogIC8vIEVQRVJNIG5vdCBhIHZh bGlkIGVycm5vLgorLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCisrI2lmIGRlZmluZWQoX19p Mzg2X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykgfHwgXAorICAgICAoZGVmaW5lZChBUkNI X0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKKyAgICAgY2Fz ZSBfX05SX3JlYWRkaXI6CisgI2VuZGlmCitAQCAtMjkwLDcgKzI5NCw3IEBAIGJvb2wgU3lzY2Fs bFNldHM6OklzR2V0U2ltcGxlSWQoaW50IHN5c24KKyBib29sIFN5c2NhbGxTZXRzOjpJc1Byb2Nl c3NQcml2aWxlZ2VDaGFuZ2UoaW50IHN5c25vKSB7CisgICBzd2l0Y2ggKHN5c25vKSB7CisgICAg IGNhc2UgX19OUl9jYXBzZXQ6CistI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194 ODZfNjRfXykKKysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8 fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl9pb3Blcm06ICAvLyBJbnRl bCBwcml2aWxlZ2UuCisgICAgIGNhc2UgX19OUl9pb3BsOiAgICAvLyBJbnRlbCBwcml2aWxlZ2Uu CisgI2VuZGlmCitAQCAtMzQwLDcgKzM0NCw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dl ZFNpZ25hbEhhbmRsaW4KKyAgICAgY2FzZSBfX05SX3J0X3NpZ3Byb2NtYXNrOgorICAgICBjYXNl IF9fTlJfcnRfc2lncmV0dXJuOgorICAgICBjYXNlIF9fTlJfcnRfc2lndGltZWR3YWl0OgorLSNp ZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKKysjaWYgZGVmaW5l ZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18p IHx8IFwKKyAgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJD SF9DUFVfMzJfQklUUykpCisgICAgIGNhc2UgX19OUl9ydF9zaWd0aW1lZHdhaXRfdGltZTY0Ogor ICAgICBjYXNlIF9fTlJfc2lnYWN0aW9uOgorQEAgLTM1Nyw3ICszNjEsNyBAQCBib29sIFN5c2Nh bGxTZXRzOjpJc0FsbG93ZWRTaWduYWxIYW5kbGluCisgICAgIGNhc2UgX19OUl9zaWduYWxmZDoK KyAjZW5kaWYKKyAgICAgY2FzZSBfX05SX3NpZ25hbGZkNDoKKy0jaWYgZGVmaW5lZChfX2kzODZf XykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCisrI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRl ZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSB8fCBcCisgICAgIChkZWZp bmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQor ICAgICBjYXNlIF9fTlJfc2lncGVuZGluZzoKKyAgICAgY2FzZSBfX05SX3NpZ3N1c3BlbmQ6CitA QCAtMzgyLDcgKzM4Niw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZE9wZXJhdGlvbk9u RmQKKyAjZW5kaWYKKyAgICAgY2FzZSBfX05SX2R1cDM6CisgI2lmIGRlZmluZWQoX194ODZfNjRf XykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCistICAgIGRl ZmluZWQoX19hYXJjaDY0X18pCisrICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQo X19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX3NodXRkb3duOgorICNlbmRpZgorICAgICAg IHJldHVybiB0cnVlOworQEAgLTQxNiw3ICs0MjAsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0Fs bG93ZWRQcm9jZXNzU3RhcnRPCisgICAgIGNhc2UgX19OUl9tZW1iYXJyaWVyOgorICAgICBjYXNl IF9fTlJfd2FpdDQ6CisgICAgIGNhc2UgX19OUl93YWl0aWQ6CistI2lmIGRlZmluZWQoX19pMzg2 X18pCisrI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAg ICAgY2FzZSBfX05SX3dhaXRwaWQ6CisgI2VuZGlmCisgI2lmICFkZWZpbmVkKF9fR0xJQkNfXykK K0BAIC00MzgsNyArNDQyLDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkUHJvY2Vzc1N0 YXJ0TworICAgICBjYXNlIF9fTlJfc2V0X3RpZF9hZGRyZXNzOgorICNlbmRpZgorICAgICBjYXNl IF9fTlJfdW5zaGFyZToKKy0jaWYgIWRlZmluZWQoX19taXBzX18pICYmICFkZWZpbmVkKF9fYWFy Y2g2NF9fKQorKyNpZiAhZGVmaW5lZChfX21pcHNfXykgJiYgIWRlZmluZWQoX19hYXJjaDY0X18p IHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX3Zmb3JrOgorICNlbmRp ZgorICAgICBkZWZhdWx0OgorQEAgLTQ5MSw3ICs0OTUsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJ c0FsbG93ZWRHZXRPck1vZGlmeVNvCisgICAgICAgcmV0dXJuIHRydWU7CisgICAgIGRlZmF1bHQ6 CisgI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVk KF9fbWlwc19fKSB8fCBcCistICAgIGRlZmluZWQoX19hYXJjaDY0X18pCisrICAgIGRlZmluZWQo X19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX3Nv Y2tldHBhaXI6ICAvLyBXZSB3aWxsIHdhbnQgdG8gaW5zcGVjdCBpdHMgYXJndW1lbnQuCisgI2Vu ZGlmCisgICAgICAgcmV0dXJuIGZhbHNlOworQEAgLTUwMSw3ICs1MDUsNyBAQCBib29sIFN5c2Nh bGxTZXRzOjpJc0FsbG93ZWRHZXRPck1vZGlmeVNvCisgYm9vbCBTeXNjYWxsU2V0czo6SXNEZW5p ZWRHZXRPck1vZGlmeVNvY2tldChpbnQgc3lzbm8pIHsKKyAgIHN3aXRjaCAoc3lzbm8pIHsKKyAj aWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19t aXBzX18pIHx8IFwKKy0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKKysgICAgZGVmaW5lZChfX2Fh cmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfYWNjZXB0 OgorICAgICBjYXNlIF9fTlJfYWNjZXB0NDoKKyAgICAgY2FzZSBfX05SX2JpbmQ6CitAQCAtNTE1 LDcgKzUxOSw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzRGVuaWVkR2V0T3JNb2RpZnlTb2MKKyAg IH0KKyB9CisgCistI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKKysjaWYgZGVmaW5lZChfX2kz ODZfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSB8fCBcCisgICAgIChkZWZpbmVkKEFSQ0hf Q1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQorIC8vIEJpZyBt dWx0aXBsZXhpbmcgc3lzdGVtIGNhbGwgZm9yIHNvY2tldHMuCisgYm9vbCBTeXNjYWxsU2V0czo6 SXNTb2NrZXRDYWxsKGludCBzeXNubykgeworQEAgLTUzMCw3ICs1MzQsOCBAQCBib29sIFN5c2Nh bGxTZXRzOjpJc1NvY2tldENhbGwoaW50IHN5c25vCisgfQorICNlbmRpZgorIAorLSNpZiBkZWZp bmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX21pcHNfXykK KysjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQo X19taXBzX18pIHx8IFwKKysgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorIGJvb2wgU3lzY2Fs bFNldHM6OklzTmV0d29ya1NvY2tldEluZm9ybWF0aW9uKGludCBzeXNubykgeworICAgc3dpdGNo IChzeXNubykgeworICAgICBjYXNlIF9fTlJfZ2V0cGVlcm5hbWU6CitAQCAtNTU4LDcgKzU2Myw3 IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEFkZHJlc3NTcGFjZUEKKyAgICAgY2FzZSBf X05SX21pbmNvcmU6CisgICAgIGNhc2UgX19OUl9tbG9ja2FsbDoKKyAjaWYgZGVmaW5lZChfX2kz ODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCist ICAgIGRlZmluZWQoX19hYXJjaDY0X18pCisrICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRl ZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX21tYXA6CisgI2VuZGlmCisgI2lm IGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAorQEAgLTU4OSw3ICs1 OTQsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRBZGRyZXNzU3BhY2VBCisgYm9vbCBT eXNjYWxsU2V0czo6SXNBbGxvd2VkR2VuZXJhbElvKGludCBzeXNubykgeworICAgc3dpdGNoIChz eXNubykgeworICAgICBjYXNlIF9fTlJfbHNlZWs6CistI2lmIGRlZmluZWQoX19pMzg2X18pIHx8 IGRlZmluZWQoX19hcm1fXykgfHwgXAorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVk KF9fYXJtX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykgfHwgXAorICAgICAoZGVmaW5lZChB UkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKKyAgICAg Y2FzZSBfX05SX19sbHNlZWs6CisgI2VuZGlmCitAQCAtNjA5LDI3ICs2MTQsMjcgQEAgYm9vbCBT eXNjYWxsU2V0czo6SXNBbGxvd2VkR2VuZXJhbElvKGludAorICAgICBjYXNlIF9fTlJfcmVhZDoK KyAgICAgY2FzZSBfX05SX3JlYWR2OgorICAgICBjYXNlIF9fTlJfcHJlYWQ2NDoKKy0jaWYgZGVm aW5lZChfX2FybV9fKSB8fCBcCisrI2lmIGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX3Bv d2VycGM2NF9fKSB8fCBcCisgICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBk ZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQorICAgICBjYXNlIF9fTlJfcmVjdjoKKyAjZW5kaWYK KyAjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQo X19taXBzX18pIHx8IFwKKy0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKKysgICAgZGVmaW5lZChf X2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfcmVj dmZyb206ICAvLyBDb3VsZCBzcGVjaWZ5IHNvdXJjZS4KKyAgICAgY2FzZSBfX05SX3JlY3Ztc2c6 ICAgLy8gQ291bGQgc3BlY2lmeSBzb3VyY2UuCisgI2VuZGlmCistI2lmIGRlZmluZWQoX19pMzg2 X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykKKysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVm aW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19O Ul9zZWxlY3Q6CisgI2VuZGlmCistI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19h cm1fXykgfHwgZGVmaW5lZChfX21pcHNfXykKKysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVm aW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0 X18pCisgICAgIGNhc2UgX19OUl9fbmV3c2VsZWN0OgorICNlbmRpZgorLSNpZiBkZWZpbmVkKF9f YXJtX18pIHx8IFwKKysjaWYgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0 X18pIHx8IFwKKyAgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQo QVJDSF9DUFVfMzJfQklUUykpCisgICAgIGNhc2UgX19OUl9zZW5kOgorICNlbmRpZgorICNpZiBk ZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX21pcHNf XykgfHwgXAorLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQorKyAgICBkZWZpbmVkKF9fYWFyY2g2 NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl9zZW5kbXNnOiAg Ly8gQ291bGQgc3BlY2lmeSBkZXN0aW5hdGlvbi4KKyAgICAgY2FzZSBfX05SX3NlbmR0bzogICAv LyBDb3VsZCBzcGVjaWZ5IGRlc3RpbmF0aW9uLgorICNlbmRpZgorQEAgLTY4NCw3ICs2ODksNyBA QCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRCYXNpY1NjaGVkdWxlCisgICAgIGNhc2UgX19O Ul9uYW5vc2xlZXA6CisgICAgICAgcmV0dXJuIHRydWU7CisgICAgIGNhc2UgX19OUl9nZXRwcmlv cml0eToKKy0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCisr I2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX3Bv d2VycGM2NF9fKSB8fCBcCisgICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBk ZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQorICAgICBjYXNlIF9fTlJfbmljZToKKyAjZW5kaWYK K0BAIC02OTYsNyArNzAxLDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkQmFzaWNTY2hl ZHVsZQorIAorIGJvb2wgU3lzY2FsbFNldHM6OklzQWRtaW5PcGVyYXRpb24oaW50IHN5c25vKSB7 CisgICBzd2l0Y2ggKHN5c25vKSB7CistI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQo X19hcm1fXykgfHwgXAorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18p IHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykgfHwgXAorICAgICAoZGVmaW5lZChBUkNIX0NQVV9N SVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKKyAgICAgY2FzZSBfX05S X2JkZmx1c2g6CisgI2VuZGlmCitAQCAtNzEzLDcgKzcxOCw4IEBAIGJvb2wgU3lzY2FsbFNldHM6 OklzQWRtaW5PcGVyYXRpb24oaW50IHMKKyAKKyBib29sIFN5c2NhbGxTZXRzOjpJc0tlcm5lbE1v ZHVsZShpbnQgc3lzbm8pIHsKKyAgIHN3aXRjaCAoc3lzbm8pIHsKKy0jaWYgZGVmaW5lZChfX2kz ODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQorKyNpZiBk ZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBz X18pIHx8IFwKKysgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfY3Jl YXRlX21vZHVsZToKKyAgICAgY2FzZSBfX05SX2dldF9rZXJuZWxfc3ltczogIC8vIFNob3VsZCBF Tk9TWVMuCisgICAgIGNhc2UgX19OUl9xdWVyeV9tb2R1bGU6CitAQCAtNzQ1LDcgKzc1MSw3IEBA IGJvb2wgU3lzY2FsbFNldHM6OklzRnNDb250cm9sKGludCBzeXNubykKKyAgICAgY2FzZSBfX05S X3F1b3RhY3RsOgorICAgICBjYXNlIF9fTlJfc3dhcG9mZjoKKyAgICAgY2FzZSBfX05SX3N3YXBv bjoKKy0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8 fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pIHx8IFwKKyAgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQ U19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCisgICAgIGNhc2UgX19OUl91 bW91bnQ6CisgI2VuZGlmCitAQCAtNzYyLDcgKzc2OCw3IEBAIGJvb2wgU3lzY2FsbFNldHM6Oklz TnVtYShpbnQgc3lzbm8pIHsKKyAgICAgY2FzZSBfX05SX2dldGNwdToKKyAgICAgY2FzZSBfX05S X21iaW5kOgorICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8 IGRlZmluZWQoX19taXBzX18pIHx8IFwKKy0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKKysgICAg ZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNl IF9fTlJfbWlncmF0ZV9wYWdlczoKKyAjZW5kaWYKKyAgICAgY2FzZSBfX05SX21vdmVfcGFnZXM6 CitAQCAtNzk3LDEzICs4MDMsMTMgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNHbG9iYWxQcm9jZXNz RW52aXJvbgorICAgc3dpdGNoIChzeXNubykgeworICAgICBjYXNlIF9fTlJfYWNjdDogIC8vIFBy aXZpbGVnZWQuCisgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykg fHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAorLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQorKyAg ICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNh c2UgX19OUl9nZXRybGltaXQ6CisgI2VuZGlmCistI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRl ZmluZWQoX19hcm1fXykKKysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9f KSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl91Z2V0cmxpbWl0Ogor ICNlbmRpZgorLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCisrI2lmIGRlZmluZWQoX19pMzg2 X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykgfHwgXAorICAgICAoZGVmaW5lZChBUkNIX0NQ VV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKKyAgICAgY2FzZSBf X05SX3VsaW1pdDoKKyAjZW5kaWYKK0BAIC04MzgsNyArODQ0LDcgQEAgYm9vbCBTeXNjYWxsU2V0 czo6SXNHbG9iYWxTeXN0ZW1TdGF0dXMoaQorICNlbmRpZgorICAgICBjYXNlIF9fTlJfc3lzaW5m bzoKKyAgICAgY2FzZSBfX05SX3VuYW1lOgorLSNpZiBkZWZpbmVkKF9faTM4Nl9fKQorKyNpZiBk ZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19O Ul9vbGR1bmFtZToKKyAgICAgY2FzZSBfX05SX29sZG9sZHVuYW1lOgorICNlbmRpZgorQEAgLTkw NCw4ICs5MTAsMTYgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNTeXN0ZW1WU2VtYXBob3Jlcyhpbgor IH0KKyAjZW5kaWYKKyAKKysvKiBzaGl0dHkgaGFjayBhcm91bmQgVm9pZCdzIDQuMTkga2VybmVs IGhlYWRlcnMgbWlzc2luZyB0aG9zZSBudW1iZXJzICovCisrI2lmIGRlZmluZWQoX19wb3dlcnBj NjRfXykgJiYgIWRlZmluZWQoX19OUl9zaG1nZXQpCisrI2RlZmluZSBfX05SX3NobWdldCAzOTUK KysjZGVmaW5lIF9fTlJfc2htY3RsIDM5NgorKyNkZWZpbmUgX19OUl9zaG1hdCAzOTcKKysjZGVm aW5lIF9fTlJfc2htZHQgMzk4CisrI2VuZGlmCisrCisgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8 IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCistICAgIGRlZmlu ZWQoX19hYXJjaDY0X18pIHx8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCisrICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykg fHwgXAorICAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNI X0NQVV82NF9CSVRTKSkKKyAvLyBUaGVzZSBnaXZlIGEgbG90IG9mIGFtYmllbnQgYXV0aG9yaXR5 IGFuZCBieXBhc3MgdGhlIHNldHVpZCBzYW5kYm94LgorIGJvb2wgU3lzY2FsbFNldHM6OklzU3lz dGVtVlNoYXJlZE1lbW9yeShpbnQgc3lzbm8pIHsKK0BAIC05MzYsNyArOTUwLDcgQEAgYm9vbCBT eXNjYWxsU2V0czo6SXNTeXN0ZW1WTWVzc2FnZVF1ZXVlKAorIH0KKyAjZW5kaWYKKyAKKy0jaWYg ZGVmaW5lZChfX2kzODZfXykgfHwgXAorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVk KF9fcG93ZXJwYzY0X18pIHx8IFwKKyAgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkp ICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCisgLy8gQmlnIHN5c3RlbSBWIG11bHRpcGxl eGluZyBzeXN0ZW0gY2FsbC4KKyBib29sIFN5c2NhbGxTZXRzOjpJc1N5c3RlbVZJcGMoaW50IHN5 c25vKSB7CitAQCAtOTU2LDcgKzk3MCw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQW55U3lzdGVt VihpbnQgc3lzbm8KKyAgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmlu ZWQoQVJDSF9DUFVfNjRfQklUUykpCisgICByZXR1cm4gSXNTeXN0ZW1WTWVzc2FnZVF1ZXVlKHN5 c25vKSB8fCBJc1N5c3RlbVZTZW1hcGhvcmVzKHN5c25vKSB8fAorICAgICAgICAgIElzU3lzdGVt VlNoYXJlZE1lbW9yeShzeXNubyk7CistI2VsaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAorKyNl bGlmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykgfHwgXAorICAg ICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9C SVRTKSkKKyAgIHJldHVybiBJc1N5c3RlbVZJcGMoc3lzbm8pOworICNlbmRpZgorQEAgLTEwMTQs NyArMTAyOCw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzRmFOb3RpZnkoaW50IHN5c25vKQorIGJv b2wgU3lzY2FsbFNldHM6OklzVGltZXIoaW50IHN5c25vKSB7CisgICBzd2l0Y2ggKHN5c25vKSB7 CisgICAgIGNhc2UgX19OUl9nZXRpdGltZXI6CistI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRl ZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykKKysjaWYgZGVmaW5lZChfX2kz ODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCisr ICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX2FsYXJtOgorICNlbmRp ZgorICAgICBjYXNlIF9fTlJfc2V0aXRpbWVyOgorQEAgLTEwOTYsMTcgKzExMTEsMjAgQEAgYm9v bCBTeXNjYWxsU2V0czo6SXNNaXNjKGludCBzeXNubykgeworICAgICBjYXNlIF9fTlJfc3luY2Zz OgorICAgICBjYXNlIF9fTlJfdmhhbmd1cDoKKyAvLyBUaGUgc3lzdGVtIGNhbGxzIGJlbG93IGFy ZSBub3QgaW1wbGVtZW50ZWQuCistI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194 ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykKKysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwg ZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCisrICAgIGRlZmlu ZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX2Fmc19zeXNjYWxsOgorICNlbmRpZgor ICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCistICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNf RkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQorKyAgICAoZGVmaW5lZChBUkNI X0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAorKyAg ICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl9icmVhazoKKyAjZW5kaWYK Ky0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVk KF9fbWlwc19fKQorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18p IHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKKysgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQor ICAgICBjYXNlIF9fTlJfZ2V0cG1zZzoKKyAjZW5kaWYKKy0jaWYgZGVmaW5lZChfX2kzODZfXykg fHwgXAorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pIHx8 IFwKKyAgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9D UFVfMzJfQklUUykpCisgICAgIGNhc2UgX19OUl9ndHR5OgorICAgICBjYXNlIF9fTlJfaWRsZToK K0BAIC0xMTE1LDIwICsxMTMzLDIxIEBAIGJvb2wgU3lzY2FsbFNldHM6OklzTWlzYyhpbnQgc3lz bm8pIHsKKyAgICAgY2FzZSBfX05SX3Byb2Y6CisgICAgIGNhc2UgX19OUl9wcm9maWw6CisgI2Vu ZGlmCistI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVm aW5lZChfX21pcHNfXykKKysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82 NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCisrICAgIGRlZmluZWQoX19wb3dlcnBjNjRf XykKKyAgICAgY2FzZSBfX05SX3B1dHBtc2c6CisgI2VuZGlmCisgI2lmIGRlZmluZWQoX194ODZf NjRfXykKKyAgICAgY2FzZSBfX05SX3NlY3VyaXR5OgorICNlbmRpZgorLSNpZiBkZWZpbmVkKF9f aTM4Nl9fKSB8fCBcCisrI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19wb3dlcnBj NjRfXykgfHwgXAorICAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5l ZChBUkNIX0NQVV8zMl9CSVRTKSkKKyAgICAgY2FzZSBfX05SX3N0dHk6CisgI2VuZGlmCistI2lm IGRlZmluZWQoX194ODZfNjRfXykKKysjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl90dXhjYWxsOgorICNlbmRpZgorLSNpZiAh ZGVmaW5lZChfX2FhcmNoNjRfXykKKysjaWYgIWRlZmluZWQoX19hYXJjaDY0X18pICYmICFkZWZp bmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl92c2VydmVyOgorICNlbmRpZgorICAg ICAgIHJldHVybiB0cnVlOworLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGlu dXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuaAorKysrIGIvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMu aAorQEAgLTQzLDEzICs0MywxNCBAQCBjbGFzcyBTQU5EQk9YX0VYUE9SVCBTeXNjYWxsU2V0cyB7 CisgICBzdGF0aWMgYm9vbCBJc0RlbmllZEdldE9yTW9kaWZ5U29ja2V0KGludCBzeXNubyk7Cisg CisgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKKy0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQ U19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCisrICAgIChkZWZpbmVkKEFS Q0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCisr ICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgIC8vIEJpZyBtdWx0aXBsZXhpbmcgc3lzdGVt IGNhbGwgZm9yIHNvY2tldHMuCisgICBzdGF0aWMgYm9vbCBJc1NvY2tldENhbGwoaW50IHN5c25v KTsKKyAjZW5kaWYKKyAKKyAjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJt X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKKy0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykK KysgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAg c3RhdGljIGJvb2wgSXNOZXR3b3JrU29ja2V0SW5mb3JtYXRpb24oaW50IHN5c25vKTsKKyAjZW5k aWYKKyAKK0BAIC03Nyw3ICs3OCw3IEBAIGNsYXNzIFNBTkRCT1hfRVhQT1JUIFN5c2NhbGxTZXRz IHsKKyAgIHN0YXRpYyBib29sIElzU3lzdGVtVlNlbWFwaG9yZXMoaW50IHN5c25vKTsKKyAjZW5k aWYKKyAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZp bmVkKF9fYXJtX18pIHx8IFwKKy0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgZGVmaW5lZChfX2FhcmNoNjRf XykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSB8fCBcCisgICAgIChkZWZpbmVkKEFSQ0hfQ1BV X01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzY0X0JJVFMpKQorICAgLy8gVGhlc2Ug Z2l2ZSBhIGxvdCBvZiBhbWJpZW50IGF1dGhvcml0eSBhbmQgYnlwYXNzIHRoZSBzZXR1aWQgc2Fu ZGJveC4KKyAgIHN0YXRpYyBib29sIElzU3lzdGVtVlNoYXJlZE1lbW9yeShpbnQgc3lzbm8pOwor QEAgLTg5LDcgKzkwLDggQEAgY2xhc3MgU0FOREJPWF9FWFBPUlQgU3lzY2FsbFNldHMgeworICNl bmRpZgorIAorICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCistICAgIChkZWZpbmVkKEFSQ0hf Q1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQorKyAgICAoZGVm aW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkg fHwgXAorKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAvLyBCaWcgc3lzdGVtIFYgbXVs dGlwbGV4aW5nIHN5c3RlbSBjYWxsLgorICAgc3RhdGljIGJvb2wgSXNTeXN0ZW1WSXBjKGludCBz eXNubyk7CisgI2VuZGlmCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51 eC9zZWNjb21wLWJwZi9zeXNjYWxsLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2Fu ZGJveC9saW51eC9zZWNjb21wLWJwZi9zeXNjYWxsLmNjCitAQCAtMTgsNyArMTgsNyBAQCBuYW1l c3BhY2Ugc2FuZGJveCB7CisgbmFtZXNwYWNlIHsKKyAKKyAjaWYgZGVmaW5lZChBUkNIX0NQVV9Y ODZfRkFNSUxZKSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX0FSTV9GQU1JTFkpIHx8IFwKKy0gICAgZGVm aW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKKysgICAgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZB TUlMWSkgfHwgZGVmaW5lZCAoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorIC8vIE51bWJlciB0aGF0 J3Mgbm90IGN1cnJlbnRseSB1c2VkIGJ5IGFueSBMaW51eCBrZXJuZWwgQUJJcy4KKyBjb25zdCBp bnQga0ludmFsaWRTeXNjYWxsTnVtYmVyID0gMHgzNTFkMzsKKyAjZWxzZQorQEAgLTMxMiwxMCAr MzEyLDU0IEBAIGFzbSgvLyBXZSBuZWVkIHRvIGJlIGFibGUgdG8gdGVsbCB0aGUga2UKKyAgICAg IjI6cmV0XG4iCisgICAgICIuY2ZpX2VuZHByb2NcbiIKKyAgICAgIi5zaXplIFN5c2NhbGxBc20s IC4tU3lzY2FsbEFzbVxuIgorKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysgICAgIi50 ZXh0XG4iCisrICAgICIuYWxpZ24gNFxuIgorKyAgICAiLnR5cGUgU3lzY2FsbEFzbSBAZnVuY3Rp b25cbiIKKysgICAgIlN5c2NhbGxBc206XG4iCisrICAgICIuY2ZpX3N0YXJ0cHJvY1xuIgorKwor KyAgICAvLyBDaGVjayBpZiByMyBpcyBuZWdhdGl2ZQorKyAgICAiY21wZGkgMywgMFxuIgorKyAg ICAiYmd0IDJmXG4iCisrCisrICAgIC8vIExvYWQgYWRkcmVzcyBvZiAzZiBpbnRvIHIzIGFuZCBy ZXR1cm4KKysgICAgIm1mbHIgMTBcbiIKKysgICAgImJsIDFmXG4iCisrICAgICIxOiBtZmxyIDNc biIKKysgICAgIm10bHIgMTBcbiIKKysgICAgImFkZGkgMywgMywgNCoxM1xuIgorKyAgICAiYmxy XG4iCisrCisrICAgIC8vIExvYWQgYXJndW1lbnRzIGZyb20gYXJyYXkgaW50byByMy04CisrICAg IC8vIHNhdmUgcGFyYW0gMyBpbiByMTAKKysgICAgIjI6XG4iCisrICAgICJtciAwLCAzXG4iCisr ICAgICJsZCAzLCAwKDQpXG4iCisrICAgICJsZCA1LCAxNig0KVxuIgorKyAgICAibGQgNiwgMjQo NClcbiIKKysgICAgImxkIDcsIDMyKDQpXG4iCisrICAgICJsZCA4LCA0MCg0KVxuIgorKyAgICAi bGQgNCwgOCg0KVxuIgorKyAgICAibGkgOSwgMFxuIgorKworKyAgICAvLyBFbnRlciBrZXJuZWwK KysgICAgInNjXG4iCisrCisrICAgIC8vIE1hZ2ljIHJldHVybiBhZGRyZXNzCisrICAgICIzOlxu IgorKyAgICAvLyBMaWtlIE1JUFMsIHBwYzY0IHJldHVybiB2YWx1ZXMgYXJlIGFsd2F5cyBwb3Np dGl2ZS4KKysgICAgLy8gQ2hlY2sgZm9yIGVycm9yIGluIGNyMC5TTyBhbmQgbmVnYXRlIHVwb24g ZXJyb3IKKysgICAgImJjIDQsIDMsIDRmXG4iCisrICAgICJuZWcgMywgM1xuIgorKyAgICAiNDog YmxyXG4iCisrCisrICAgICIuY2ZpX2VuZHByb2NcbiIKKysgICAgIi5zaXplIFN5c2NhbGxBc20s IC4tU3lzY2FsbEFzbVxuIgorICNlbmRpZgorICAgICApOyAgLy8gYXNtCisgCistI2lmIGRlZmlu ZWQoX194ODZfNjRfXykKKysjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pCisgZXh0ZXJuICJDIiB7CisgaW50cHRyX3QgU3lzY2FsbEFzbShpbnRwdHJfdCBu ciwgY29uc3QgaW50cHRyX3QgYXJnc1s2XSk7CisgfQorQEAgLTQyOSw2ICs0NzMsOCBAQCBpbnRw dHJfdCBTeXNjYWxsOjpDYWxsKGludCBuciwKKyAgICAgcmV0ID0gaW5vdXQ7CisgICB9CisgCisr I2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgaW50cHRyX3QgcmV0ID0gU3lzY2FsbEFz bShuciwgYXJncyk7CisgI2Vsc2UKKyAjZXJyb3IgIlVuaW1wbGVtZW50ZWQgYXJjaGl0ZWN0dXJl IgorICNlbmRpZgorQEAgLTQ0NSw4ICs0OTEsMjYgQEAgdm9pZCBTeXNjYWxsOjpQdXRWYWx1ZUlu VWNvbnRleHQoaW50cHRyXworICAgICAvLyBuZWVkcyB0byBiZSBjaGFuZ2VkIGJhY2suCisgICAg IHJldF92YWwgPSAtcmV0X3ZhbDsKKyAgICAgU0VDQ09NUF9QQVJNNChjdHgpID0gMTsKKy0gIH0g ZWxzZQorKyAgfSBlbHNlIHsKKyAgICAgU0VDQ09NUF9QQVJNNChjdHgpID0gMDsKKysgIH0KKysj ZW5kaWYKKysjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgLy8gU2FtZSBhcyBNSVBTLCBu ZWVkIHRvIGludmVydCByZXQgYW5kIHNldCBlcnJvciByZWdpc3RlciAoY3IwLlNPKQorKyAgaWYg KHJldF92YWwgPD0gLTEgJiYgcmV0X3ZhbCA+PSAtNDA5NSkgeworKyAgICByZXRfdmFsID0gLXJl dF92YWw7CisrI2lmZGVmIF9fR0xJQkNfXworKyAgICBjdHgtPnVjX21jb250ZXh0LnJlZ3MtPmNj ciB8PSAoMSA8PCAyOCk7CisrI2Vsc2UKKysgICAgKChzdHJ1Y3QgcHRfcmVncyAqKWN0eC0+dWNf bWNvbnRleHQucmVncyktPmNjciB8PSAoMSA8PCAyOCk7CisrI2VuZGlmCisrICB9IGVsc2Ugewor KyNpZmRlZiBfX0dMSUJDX18KKysgICAgY3R4LT51Y19tY29udGV4dC5yZWdzLT5jY3IgJj0gfigx IDw8IDI4KTsKKysjZWxzZQorKyAgICAoKHN0cnVjdCBwdF9yZWdzICopY3R4LT51Y19tY29udGV4 dC5yZWdzKS0+Y2NyICY9IH4oMSA8PCAyOCk7CisrI2VuZGlmCisrICB9CisgI2VuZGlmCisgICBT RUNDT01QX1JFU1VMVChjdHgpID0gc3RhdGljX2Nhc3Q8Z3JlZ190PihyZXRfdmFsKTsKKyB9Cist LS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi90cmFw LmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJw Zi90cmFwLmNjCitAQCAtMjM2LDYgKzIzNiwyMCBAQCB2b2lkIFRyYXA6OlNpZ1N5cyhpbnQgbnIs IExpbnV4U2lnSW5mbyoKKyAgICAgICBTZXRJc0luU2lnSGFuZGxlcigpOworICAgICB9CisgCisr I2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysgICAgLy8gT24gcHBjNjQrZ2xpYmMsIHNvbWUg c3lzY2FsbHMgc2VlbSB0byBhY2NpZGVudGFsbHkgbmVnYXRlIHRoZSBmaXJzdAorKyAgICAvLyBw YXJhbWV0ZXIgd2hpY2ggY2F1c2VzIGNoZWNrcyBhZ2FpbnN0IGl0IHRvIGZhaWwuIEZvciBub3cs IG1hbnVhbGx5CisrICAgIC8vIG5lZ2F0ZSB0aGVtIGJhY2suCisrICAgIC8vIFRPRE8oc2hhd25A YW5hc3Rhcy5pbyk6IGludmVzdGlnYXRlIHRoaXMgaXNzdWUgZnVydGhlcgorKyAgICBhdXRvIG5y ID0gU0VDQ09NUF9TWVNDQUxMKGN0eCk7CisrICAgIGlmIChuciA9PSBfX05SX29wZW5hdCB8fCBu ciA9PSBfX05SX21rZGlyYXQgfHwgbnIgPT0gX19OUl9mYWNjZXNzYXQgfHwgbnIgPT0gX19OUl9y ZWFkbGlua2F0IHx8CisrICAgICAgICBuciA9PSBfX05SX3JlbmFtZWF0IHx8IG5yID09IF9fTlJf cmVuYW1lYXQyIHx8IG5yID09IF9fTlJfbmV3ZnN0YXRhdCB8fCBuciA9PSBfX05SX3VubGlua2F0 KSB7CisrICAgICAgICBpZiAoc3RhdGljX2Nhc3Q8aW50PihTRUNDT01QX1BBUk0xKGN0eCkpID4g MCkgeworKyAgICAgICAgICAgIFNFQ0NPTVBfUEFSTTEoY3R4KSA9IC1TRUNDT01QX1BBUk0xKGN0 eCk7CisrICAgICAgICB9CisrICAgIH0KKysjZW5kaWYKKysKKyAgICAgLy8gQ29weSB0aGUgc2Vj Y29tcC1zcGVjaWZpYyBkYXRhIGludG8gYSBhcmNoX3NlY2NvbXBfZGF0YSBzdHJ1Y3R1cmUuIFRo aXMKKyAgICAgLy8gaXMgd2hhdCB3ZSBhcmUgc2hvd2luZyB0byBUcmFwRm5jIGNhbGxiYWNrcyB0 aGF0IHRoZSBzeXN0ZW0gY2FsbAorICAgICAvLyBldmFsdWF0b3IgcmVnaXN0ZXJlZCB3aXRoIHRo ZSBzYW5kYm94LgorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2Vy dmljZXMvY3JlZGVudGlhbHMuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94 L2xpbnV4L3NlcnZpY2VzL2NyZWRlbnRpYWxzLmNjCitAQCAtODEsNyArODEsNyBAQCBib29sIENo cm9vdFRvU2FmZUVtcHR5RGlyKCkgeworICAgcGlkX3QgcGlkID0gLTE7CisgICBhbGlnbmFzKDE2 KSBjaGFyIHN0YWNrX2J1ZltQVEhSRUFEX1NUQUNLX01JTl07CisgI2lmIGRlZmluZWQoQVJDSF9D UFVfWDg2X0ZBTUlMWSkgfHwgZGVmaW5lZChBUkNIX0NQVV9BUk1fRkFNSUxZKSB8fCBcCistICAg IGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCisrICAgIGRlZmluZWQoQVJDSF9DUFVfTUlQ U19GQU1JTFkpIHx8IGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorICAgLy8gVGhlIHN0 YWNrIGdyb3dzIGRvd253YXJkLgorICAgdm9pZCogc3RhY2sgPSBzdGFja19idWYgKyBzaXplb2Yo c3RhY2tfYnVmKTsKKyAjZWxzZQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gv bGludXgvc2VydmljZXMvc3lzY2FsbF93cmFwcGVycy5jYworKysrIGIvc3JjLzNyZHBhcnR5L2No cm9taXVtL3NhbmRib3gvbGludXgvc2VydmljZXMvc3lzY2FsbF93cmFwcGVycy5jYworQEAgLTYx LDcgKzYxLDcgQEAgbG9uZyBzeXNfY2xvbmUodW5zaWduZWQgbG9uZyBmbGFncywKKyAjaWYgZGVm aW5lZChBUkNIX0NQVV9YODZfNjQpCisgICByZXR1cm4gc3lzY2FsbChfX05SX2Nsb25lLCBmbGFn cywgY2hpbGRfc3RhY2ssIHB0aWQsIGN0aWQsIHRscyk7CisgI2VsaWYgZGVmaW5lZChBUkNIX0NQ VV9YODYpIHx8IGRlZmluZWQoQVJDSF9DUFVfQVJNX0ZBTUlMWSkgfHwgXAorLSAgICBkZWZpbmVk KEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQorKyAgICBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZ KSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKyAgIC8vIENPTkZJR19DTE9ORV9C QUNLV0FSRFMgZGVmaW5lZC4KKyAgIHJldHVybiBzeXNjYWxsKF9fTlJfY2xvbmUsIGZsYWdzLCBj aGlsZF9zdGFjaywgcHRpZCwgdGxzLCBjdGlkKTsKKyAjZW5kaWYKKy0tLSBhL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c2NhbGxfYnJva2VyL2Jyb2tlcl9wcm9jZXNzLmNj CisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zeXNjYWxsX2Jyb2tl ci9icm9rZXJfcHJvY2Vzcy5jYworQEAgLTE2NSw3ICsxNjUsNyBAQCBib29sIEJyb2tlclByb2Nl c3M6OklzU3lzY2FsbEJyb2tlcmFibGUoCisgI2lmIGRlZmluZWQoX19OUl9mc3RhdGF0NjQpCisg ICAgIGNhc2UgX19OUl9mc3RhdGF0NjQ6CisgI2VuZGlmCistI2lmIGRlZmluZWQoX194ODZfNjRf XykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykKKysjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBk ZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2Ug X19OUl9uZXdmc3RhdGF0OgorICNlbmRpZgorICAgICAgIHJldHVybiAhZmFzdF9jaGVjayB8fCBh bGxvd2VkX2NvbW1hbmRfc2V0Xy50ZXN0KENPTU1BTkRfU1RBVCk7CistLS0gYS9zcmMvM3JkcGFy dHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zZWNjb21wLmgK KysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJz L2xpbnV4X3NlY2NvbXAuaAorQEAgLTQxLDYgKzQxLDkgQEAKKyAjaWZuZGVmIEVNX0FBUkNINjQK KyAjZGVmaW5lIEVNX0FBUkNINjQgMTgzCisgI2VuZGlmCisrI2lmbmRlZiBFTV9QUEM2NAorKyNk ZWZpbmUgRU1fUFBDNjQgMjEKKysjZW5kaWYKKyAKKyAjaWZuZGVmIF9fQVVESVRfQVJDSF82NEJJ VAorICNkZWZpbmUgX19BVURJVF9BUkNIXzY0QklUIDB4ODAwMDAwMDAKK0BAIC03NCw2ICs3Nywx NCBAQAorICNkZWZpbmUgQVVESVRfQVJDSF9BQVJDSDY0IChFTV9BQVJDSDY0IHwgX19BVURJVF9B UkNIXzY0QklUIHwgX19BVURJVF9BUkNIX0xFKQorICNlbmRpZgorIAorKyNpZm5kZWYgQVVESVRf QVJDSF9QUEM2NAorKyNkZWZpbmUgQVVESVRfQVJDSF9QUEM2NCAoRU1fUFBDNjQgfCBfX0FVRElU X0FSQ0hfNjRCSVQpCisrI2VuZGlmCisrCisrI2lmbmRlZiBBVURJVF9BUkNIX1BQQzY0TEUKKysj ZGVmaW5lIEFVRElUX0FSQ0hfUFBDNjRMRSAoRU1fUFBDNjQgfCBfX0FVRElUX0FSQ0hfNjRCSVQg fCBfX0FVRElUX0FSQ0hfTEUpCisrI2VuZGlmCisrCisgLy8gRm9yIHByY3RsLmgKKyAjaWZuZGVm IFBSX1NFVF9TRUNDT01QCisgI2RlZmluZSBQUl9TRVRfU0VDQ09NUCAgICAgICAgICAgICAgIDIy CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVy cy9saW51eF9zaWduYWwuaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGlu dXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc2lnbmFsLmgKK0BAIC0xMyw3ICsxMyw3IEBACisgLy8g KG5vdCB1bmRlZmluZWQsIGJ1dCBkZWZpbmVkIGRpZmZlcmVudCB2YWx1ZXMgYW5kIGluIGRpZmZl cmVudCBtZW1vcnkKKyAvLyBsYXlvdXRzKS4gU28sIGZpbGwgdGhlIGdhcCBoZXJlLgorICNpZiBk ZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1f XykgfHwgXAorLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQorKyAgICBkZWZpbmVkKF9fYWFyY2g2 NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgCisgI2RlZmluZSBMSU5VWF9TSUdIVVAg MQorICNkZWZpbmUgTElOVVhfU0lHSU5UIDIKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9z YW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3N5c2NhbGxzLmgKKysrKyBiL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3N5c2Nh bGxzLmgKK0BAIC0zNSw1ICszNSw5IEBACisgI2luY2x1ZGUgInNhbmRib3gvbGludXgvc3lzdGVt X2hlYWRlcnMvYXJtNjRfbGludXhfc3lzY2FsbHMuaCIKKyAjZW5kaWYKKyAKKysjaWYgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQorKyNpbmNsdWRlICJzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJz L3BwYzY0X2xpbnV4X3N5c2NhbGxzLmgiCisrI2VuZGlmCisrCisgI2VuZGlmICAvLyBTQU5EQk9Y X0xJTlVYX1NZU1RFTV9IRUFERVJTX0xJTlVYX1NZU0NBTExTX0hfCisgCistLS0gYS9zcmMvM3Jk cGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF91Y29udGV4 dC5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zeXN0ZW1faGVh ZGVycy9saW51eF91Y29udGV4dC5oCitAQCAtMTEsNiArMTEsOCBAQAorICNpbmNsdWRlICJzYW5k Ym94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2FybV9saW51eF91Y29udGV4dC5oIgorICNlbGlmIGRl ZmluZWQoX19pMzg2X18pCisgI2luY2x1ZGUgInNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMv aTM4Nl9saW51eF91Y29udGV4dC5oIgorKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysj aW5jbHVkZSAic2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9wcGM2NF9saW51eF91Y29udGV4 dC5oIgorICNlbHNlCisgI2Vycm9yICJObyBzdXBwb3J0IGZvciB5b3VyIGFyY2hpdGVjdHVyZSBp biBQTmFDbCBoZWFkZXIiCisgI2VuZGlmCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2Fu ZGJveC9wb2xpY3kvbGludXgvYnBmX3JlbmRlcmVyX3BvbGljeV9saW51eC5jYworKysrIGIvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvcG9saWN5L2xpbnV4L2JwZl9yZW5kZXJlcl9wb2xp Y3lfbGludXguY2MKK0BAIC0xNSw2ICsxNSwxMSBAQAorICNpbmNsdWRlICJzYW5kYm94L2xpbnV4 L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3N5c2NhbGxzLmgiCisgI2luY2x1ZGUgInNhbmRib3gvcG9s aWN5L2xpbnV4L3NhbmRib3hfbGludXguaCIKKyAKKysvLyBPbiBQUEM2NCwgVENHRVRTIGlzIGRl ZmluZWQgaW4gdGVybXMgb2Ygc3RydWN0IHRlcm1pb3MsIHNvIHdlIG11c3QgaW5jbHVkZSB0ZXJt aW9zLmgKKysjaWZkZWYgX19wb3dlcnBjNjRfXworKyNpbmNsdWRlIDx0ZXJtaW9zLmg+CisrI2Vu ZGlmCisrCisgLy8gVE9ETyh2aWduYXR0aSk6IHJlcGxhY2UgdGhlIGxvY2FsIGRlZmluaXRpb25z IGJlbG93IHdpdGggI2luY2x1ZGUKKyAvLyA8bGludXgvZG1hLWJ1Zi5oPiBvbmNlIGtlcm5lbCB2 ZXJzaW9uIDQuNiBiZWNvbWVzIHdpZGVseSB1c2VkLgorICNpbmNsdWRlIDxsaW51eC90eXBlcy5o PgorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2FuZ2xlL3NyYy9jb21w aWxlci90cmFuc2xhdG9yL0luZm9TaW5rLmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90 aGlyZF9wYXJ0eS9hbmdsZS9zcmMvY29tcGlsZXIvdHJhbnNsYXRvci9JbmZvU2luay5oCitAQCAt OTMsNyArOTMsMTYgQEAgY2xhc3MgVEluZm9TaW5rQmFzZQorICAgICAgICAgICAgIHN0cmVhbS5w cmVjaXNpb24oOCk7CisgICAgICAgICAgICAgc3RyZWFtIDw8IGY7CisgICAgICAgICB9CistICAg ICAgICBzaW5rLmFwcGVuZChzdHJlYW0uc3RyKCkpOworKworKyAgICAgICAgLy8gSGFjayB0byB3 b3JrIGFyb3VuZCBhIGJ1ZyB3aGVyZSBuZWdhdGl2ZSBmbG9hdGluZyBwb2ludCB2YWx1ZXMKKysg ICAgICAgIC8vIGFyZSByZW5kZXJlZCBsaWtlICcuMC41JyBpbnN0ZWFkIG9mICctMC41JworKyAg ICAgICAgc3RkOjpzdHJpbmcgcmVzKHN0cmVhbS5zdHIoKSk7CisrCisrICAgICAgICBpZiAoc2ln bmJpdChmKSkgeyAvLyB0ZXN0IGlmIGYgaXMgbmVnYXRpdmUKKysgICAgICAgICAgICByZXNbMF0g PSAnLSc7CisrICAgICAgICB9CisrCisrICAgICAgICBzaW5rLmFwcGVuZChyZXMpOworICAgICAg ICAgcmV0dXJuICp0aGlzOworICAgICB9CisgICAgIC8vIFdyaXRlIGJvb2xlYW4gdmFsdWVzIGFz IHRoZWlyIG5hbWVzIGluc3RlYWQgb2YgaW50ZWdyYWwgdmFsdWUuCistLS0gYS9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYW5nbGUvc3JjL2xpYkFOR0xFL0NvbnN0YW50cy5oCisr KysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYW5nbGUvc3JjL2xpYkFOR0xF L0NvbnN0YW50cy5oCitAQCAtOSw2ICs5LDcgQEAKKyAjaWZuZGVmIExJQkFOR0xFX0NPTlNUQU5U U19IXworICNkZWZpbmUgTElCQU5HTEVfQ09OU1RBTlRTX0hfCisgCisrI2luY2x1ZGUgPGNzdGRk ZWY+CisgI2luY2x1ZGUgImNvbW1vbi9wbGF0Zm9ybS5oIgorIAorICNpbmNsdWRlIDxzdGRpbnQu aD4KKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvQlVJ TEQuZ24KKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv QlVJTEQuZ24KK0BAIC05OSw2ICs5OSwxMyBAQCBpZiAoaXNfd2luICYmICFpc19tc2FuICYmIGN1 cnJlbnRfY3B1ICE9CisgICAgICAgfSBlbHNlIHsKKyAgICAgICAgIHB1YmxpY19jb25maWdzID0g WyAiOm5vX2FzbV9jb25maWciIF0KKyAgICAgICB9CisrICAgIH0gZWxzZSBpZiAoY3VycmVudF9j cHUgPT0gInBwYzY0IikgeworKyAgICAgIGlmIChpc19saW51eCkgeworKyAgICAgICAgIyBUT0RP OiBwcGM2NCAoYmUpIGNoZWNrCisrICAgICAgICBzb3VyY2VzICs9IGNyeXB0b19zb3VyY2VzX2xp bnV4X3BwYzY0bGUKKysgICAgICB9IGVsc2UgeworKyAgICAgICAgcHVibGljX2NvbmZpZ3MgPSBb ICI6bm9fYXNtX2NvbmZpZyIgXQorKyAgICAgIH0KKyAgICAgfSBlbHNlIHsKKyAgICAgICBwdWJs aWNfY29uZmlncyA9IFsgIjpub19hc21fY29uZmlnIiBdCisgICAgIH0KKy0tLSBhL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9CVUlMRC5nbgorKysrIGIvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL0JVSUxELmduCitAQCAtNjIzLDcg KzYyMyw2IEBAIGlmIChpc19saW51eCB8fCBpc19jaHJvbWVvcyB8fCBpc19hbmRyb2kKKyAgICAg ICAiYnJlYWtwYWQvc3JjL2NsaWVudC9taW5pZHVtcF9maWxlX3dyaXRlci5oIiwKKyAgICAgICAi YnJlYWtwYWQvc3JjL2NvbW1vbi9jb252ZXJ0X1VURi5jYyIsCisgICAgICAgImJyZWFrcGFkL3Ny Yy9jb21tb24vY29udmVydF9VVEYuaCIsCistICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vbGlu dXgvYnJlYWtwYWRfZ2V0Y29udGV4dC5TIiwKKyAgICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9s aW51eC9lbGZfY29yZV9kdW1wLmNjIiwKKyAgICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51 eC9lbGZfY29yZV9kdW1wLmgiLAorICAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2Vs ZnV0aWxzLmNjIiwKK0BAIC02NjMsNiArNjYyLDE1IEBAIGlmIChpc19saW51eCB8fCBpc19jaHJv bWVvcyB8fCBpc19hbmRyb2kKKyAKKyAgICAgbGlicyA9IFsgImRsIiBdCisgCisrICAgIGlmIChj dXJyZW50X2NwdSA9PSAicHBjNjQiKSB7CisrICAgICAgICBkZWZpbmVzID0gWyAiSEFWRV9HRVRD T05URVhUIiBdCisrICAgICAgICBsaWJzICs9IFsgInVjb250ZXh0IiBdCisrICAgIH0gZWxzZSB7 CisrICAgICAgICBzb3VyY2VzICs9IFsKKysgICAgICAgICAgICAiYnJlYWtwYWQvc3JjL2NvbW1v bi9saW51eC9icmVha3BhZF9nZXRjb250ZXh0LlMiCisrICAgICAgICBdCisrICAgIH0KKysKKyAg ICAgaW5jbHVkZV9kaXJzID0gWworICAgICAgICIuIiwKKyAgICAgICAiYnJlYWtwYWQvc3JjIiwK K0BAIC03MTIsNyArNzIwLDYgQEAgaWYgKGlzX2xpbnV4IHx8IGlzX2Nocm9tZW9zIHx8IGlzX2Fu ZHJvaQorICAgICAgICJicmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9t aW5pZHVtcF93cml0ZXJfdW5pdHRlc3QuY2MiLAorICAgICAgICJicmVha3BhZC9zcmMvY2xpZW50 L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXJfdW5pdHRlc3RfdXRpbHMuY2Mi LAorICAgICAgICJicmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9wcm9j X2NwdWluZm9fcmVhZGVyX3VuaXR0ZXN0LmNjIiwKKy0gICAgICAiYnJlYWtwYWQvc3JjL2NvbW1v bi9saW51eC9icmVha3BhZF9nZXRjb250ZXh0X3VuaXR0ZXN0LmNjIiwKKyAgICAgICAiYnJlYWtw YWQvc3JjL2NvbW1vbi9saW51eC9lbGZfY29yZV9kdW1wX3VuaXR0ZXN0LmNjIiwKKyAgICAgICAi YnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9maWxlX2lkX3VuaXR0ZXN0LmNjIiwKKyAgICAgICAi YnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9saW51eF9saWJjX3N1cHBvcnRfdW5pdHRlc3QuY2Mi LAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFr cGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Jhd19jb250ZXh0X2NwdS5o CisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vcmF3X2NvbnRleHRfY3B1LmgK K0BAIC00NCw2ICs0NCw4IEBAIHR5cGVkZWYgTURSYXdDb250ZXh0QVJNIFJhd0NvbnRleHRDUFU7 CisgdHlwZWRlZiBNRFJhd0NvbnRleHRBUk02NF9PbGQgUmF3Q29udGV4dENQVTsKKyAjZWxpZiBk ZWZpbmVkKF9fbWlwc19fKQorIHR5cGVkZWYgTURSYXdDb250ZXh0TUlQUyBSYXdDb250ZXh0Q1BV OworKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyt0eXBlZGVmIE1EUmF3Q29udGV4dFBQ QzY0IFJhd0NvbnRleHRDUFU7CisgI2Vsc2UKKyAjZXJyb3IgIlRoaXMgY29kZSBoYXMgbm90IGJl ZW4gcG9ydGVkIHRvIHlvdXIgcGxhdGZvcm0geWV0LiIKKyAjZW5kaWYKKy0tLSBhL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xp bnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRfaW5mby5jYworKysrIGIvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgv ZHVtcF93cml0ZXJfY29tbW9uL3RocmVhZF9pbmZvLmNjCitAQCAtMjcwLDcgKzI3MCw1NCBAQCB2 b2lkIFRocmVhZEluZm86OkZpbGxDUFVDb250ZXh0KFJhd0NvbnRlCisgICBvdXQtPmZsb2F0X3Nh dmUuZmlyID0gbWNvbnRleHQuZnBjX2VpcjsKKyAjZW5kaWYKKyB9CistI2VuZGlmICAvLyBfX21p cHNfXworKworKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysKKysjaWYgIWRlZmluZWQo X19HTElCQ19fKQorKyNpbmNsdWRlIDxhc20vZWxmLmg+CisrI2luY2x1ZGUgPGFzbS9wdHJhY2Uu aD4KKysjZW5kaWYKKysKKyt1aW50cHRyX3QgVGhyZWFkSW5mbzo6R2V0SW5zdHJ1Y3Rpb25Qb2lu dGVyKCkgY29uc3QgeworKyAgICByZXR1cm4gbWNvbnRleHQuZ3BfcmVnc1tQVF9OSVBdOworK30K KysKKyt2b2lkIFRocmVhZEluZm86OkZpbGxDUFVDb250ZXh0KFJhd0NvbnRleHRDUFUqIG91dCkg Y29uc3QgeworKyAgICBvdXQtPmNvbnRleHRfZmxhZ3MgPSBNRF9DT05URVhUX1BQQzY0X0ZVTEw7 CisrICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfQ09OVEVYVF9QUEM2NF9HUFJfQ09VTlQ7IGkr KykKKysgICAgICAgIG91dC0+Z3ByW2ldID0gbWNvbnRleHQuZ3BfcmVnc1tpXTsKKysKKysgICAg b3V0LT5sciA9IG1jb250ZXh0LmdwX3JlZ3NbUFRfTE5LXTsKKysgICAgb3V0LT5zcnIwID0gbWNv bnRleHQuZ3BfcmVnc1tQVF9OSVBdOworKyAgICBvdXQtPnNycjEgPSBtY29udGV4dC5ncF9yZWdz W1BUX01TUl07CisrICAgIG91dC0+Y3IgPSBtY29udGV4dC5ncF9yZWdzW1BUX0NDUl07CisrICAg IG91dC0+eGVyID0gbWNvbnRleHQuZ3BfcmVnc1tQVF9YRVJdOworKyAgICBvdXQtPmN0ciA9IG1j b250ZXh0LmdwX3JlZ3NbUFRfQ1RSXTsKKysKKysjaWZkZWYgX19HTElCQ19fCisrICAgIGZvciAo aW50IGkgPSAwOyBpIDwgTURfRkxPQVRJTkdTQVZFQVJFQV9QUENfRlBSX0NPVU5UOyBpKyspCisr ICAgICAgICBvdXQtPmZsb2F0X3NhdmUuZnByZWdzW2ldID0gbWNvbnRleHQuZnBfcmVnc1tpXTsK KysKKysgICAgb3V0LT5mbG9hdF9zYXZlLmZwc2NyID0gbWNvbnRleHQuZnBfcmVnc1tORlBSRUct MV07CisrI2Vsc2UKKysgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9GTE9BVElOR1NBVkVBUkVB X1BQQ19GUFJfQ09VTlQ7IGkrKykKKysgICAgICAgIG91dC0+ZmxvYXRfc2F2ZS5mcHJlZ3NbaV0g PSAoKHVpbnQ2NF90ICopJm1jb250ZXh0LmZwX3JlZ3MpW2ldOworKworKyAgICAgb3V0LT5mbG9h dF9zYXZlLmZwc2NyID0gKCh1aW50NjRfdCAqKSZtY29udGV4dC5mcF9yZWdzKVtFTEZfTkZQUkVH LTFdOworKyNlbmRpZgorKworKyAgICBmb3IgKGludCBpID0gMDsgaSA8IE1EX1ZFQ1RPUlNBVkVB UkVBX1BQQ19WUl9DT1VOVDsgaSsrKQorKyAgICAgICAgb3V0LT52ZWN0b3Jfc2F2ZS5zYXZlX3Zy W2ldID0gXAorKyAgICAgICAgICAgIHsoKCh1aW50NjRfdCl2cmVncy52cnJlZ3NbaV1bMF0pIDw8 IDMyKQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgfCB2cmVncy52cnJlZ3NbaV1bMV0sCisr ICAgICAgICAgICAgKCgodWludDY0X3QpdnJlZ3MudnJyZWdzW2ldWzJdKSA8PCAzMikKKysgICAg ICAgICAgICAgICAgICAgICAgICAgfCB2cmVncy52cnJlZ3NbaV1bM119OworKworKyAgICBvdXQt PnZyc2F2ZSA9IHZyZWdzLnZyc2F2ZTsKKysgICAgb3V0LT52ZWN0b3Jfc2F2ZS5zYXZlX3ZzY3Ig PSB7MCwgdnJlZ3MudnNjci52c2NyX3dvcmR9OworKyAgICBvdXQtPnZlY3Rvcl9zYXZlLnNhdmVf dnJ2YWxpZCA9IDB4RkZGRkZGRkY7CisrfQorKyNlbmRpZiAgLy8gX19wb3dlcnBjNjRfXworIAor IHZvaWQgVGhyZWFkSW5mbzo6R2V0R2VuZXJhbFB1cnBvc2VSZWdpc3RlcnModm9pZCoqIGdwX3Jl Z3MsIHNpemVfdCogc2l6ZSkgeworICAgYXNzZXJ0KGdwX3JlZ3MgfHwgc2l6ZSk7CitAQCAtMjc5 LDYgKzMyNiwxMSBAQCB2b2lkIFRocmVhZEluZm86OkdldEdlbmVyYWxQdXJwb3NlUmVnaXN0Cisg ICAgICpncF9yZWdzID0gbWNvbnRleHQuZ3JlZ3M7CisgICBpZiAoc2l6ZSkKKyAgICAgKnNpemUg PSBzaXplb2YobWNvbnRleHQuZ3JlZ3MpOworKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykK KysgIGlmIChncF9yZWdzKQorKyAgICAqZ3BfcmVncyA9IG1jb250ZXh0LmdwX3JlZ3M7CisrICBp ZiAoc2l6ZSkKKysgICAgKnNpemUgPSBzaXplb2YobWNvbnRleHQuZ3BfcmVncyk7CisgI2Vsc2UK KyAgIGlmIChncF9yZWdzKQorICAgICAqZ3BfcmVncyA9ICZyZWdzOworQEAgLTI5NCw2ICszNDYs MTEgQEAgdm9pZCBUaHJlYWRJbmZvOjpHZXRGbG9hdGluZ1BvaW50UmVnaXN0ZQorICAgICAqZnBf cmVncyA9ICZtY29udGV4dC5mcHJlZ3M7CisgICBpZiAoc2l6ZSkKKyAgICAgKnNpemUgPSBzaXpl b2YobWNvbnRleHQuZnByZWdzKTsKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICBp ZiAoZnBfcmVncykKKysgICAgKmZwX3JlZ3MgPSAmbWNvbnRleHQuZnBfcmVnczsKKysgIGlmIChz aXplKQorKyAgICAqc2l6ZSA9IHNpemVvZihtY29udGV4dC5mcF9yZWdzKTsKKyAjZWxzZQorICAg aWYgKGZwX3JlZ3MpCisgICAgICpmcF9yZWdzID0gJmZwcmVnczsKK0BAIC0zMDIsNCArMzU5LDEz IEBAIHZvaWQgVGhyZWFkSW5mbzo6R2V0RmxvYXRpbmdQb2ludFJlZ2lzdGUKKyAjZW5kaWYKKyB9 CisgCisrI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyt2b2lkIFRocmVhZEluZm86OkdldFZl Y3RvclJlZ2lzdGVycyh2b2lkKiogdl9yZWdzLCBzaXplX3QqIHNpemUpIHsKKysgICAgaWYgKHZf cmVncykKKysgICAgICAgICp2X3JlZ3MgPSAmdnJlZ3M7CisrICAgIGlmIChzaXplKQorKyAgICAg ICAgKnNpemUgPSBzaXplb2YodnJlZ3MpOworK30KKysjZW5kaWYKKysKKyB9ICAvLyBuYW1lc3Bh Y2UgZ29vZ2xlX2JyZWFrcGFkCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFy dHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24v dGhyZWFkX2luZm8uaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Jy ZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3RocmVh ZF9pbmZvLmgKK0BAIC02OCw2ICs2OCwxMCBAQCBzdHJ1Y3QgVGhyZWFkSW5mbyB7CisgICAvLyBV c2UgdGhlIHN0cnVjdHVyZXMgZGVmaW5lZCBpbiA8c3lzL3VzZXIuaD4KKyAgIHN0cnVjdCB1c2Vy X3JlZ3Nfc3RydWN0IHJlZ3M7CisgICBzdHJ1Y3QgdXNlcl9mcHNpbWRfc3RydWN0IGZwcmVnczsK KysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICAvLyBVc2UgdGhlIHN0cnVjdHVyZXMg ZGVmaW5lZCBpbiA8c3lzL3Vjb250ZXh0Lmg+LgorKyAgbWNvbnRleHRfdCBtY29udGV4dDsKKysg IHZycmVnc2V0X3QgdnJlZ3M7CisgI2VsaWYgZGVmaW5lZChfX21pcHNfXykKKyAgIC8vIFVzZSB0 aGUgc3RydWN0dXJlIGRlZmluZWQgaW4gPHN5cy91Y29udGV4dC5oPi4KKyAgIG1jb250ZXh0X3Qg bWNvbnRleHQ7CitAQCAtODQsNiArODgsMTEgQEAgc3RydWN0IFRocmVhZEluZm8geworIAorICAg Ly8gUmV0dXJucyB0aGUgcG9pbnRlciBhbmQgc2l6ZSBvZiBmbG9hdCBwb2ludCByZWdpc3RlciBh cmVhLgorICAgdm9pZCBHZXRGbG9hdGluZ1BvaW50UmVnaXN0ZXJzKHZvaWQqKiBmcF9yZWdzLCBz aXplX3QqIHNpemUpOworKworKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICAvLyBSZXR1 cm5zIHRoZSBwb2ludGVyIGFuZCBzaXplIG9mIHRoZSB2ZWN0b3IgcmVnaXN0ZXIgYXJlYS4gKFBQ QzY0IG9ubHkpCisrICB2b2lkIEdldFZlY3RvclJlZ2lzdGVycyh2b2lkKiogdl9yZWdzLCBzaXpl X3QqIHNpemUpOworKyNlbmRpZgorIH07CisgCisgfSAgLy8gbmFtZXNwYWNlIGdvb2dsZV9icmVh a3BhZAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2Jy ZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRl ci5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2Jy ZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRl ci5jYworQEAgLTI1NCw2ICsyNTQsNjAgQEAgdm9pZCBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNv bnRleHQoUmF3QworICAgb3V0LT5mbG9hdF9zYXZlLmZpciA9IHVjLT51Y19tY29udGV4dC5mcGNf ZWlyOyAgLy8gVW51c2VkLgorICNlbmRpZgorIH0KKysKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCisrCisrI2lmbmRlZiBfX0dMSUJDX18KKysjaW5jbHVkZSA8YXNtL2VsZi5oPgorKyNp bmNsdWRlIDxhc20vcHRyYWNlLmg+CisrI2VuZGlmCisrCisrdWludHB0cl90IFVDb250ZXh0UmVh ZGVyOjpHZXRTdGFja1BvaW50ZXIoY29uc3QgdWNvbnRleHRfdCogdWMpIHsKKysgICAgcmV0dXJu IHVjLT51Y19tY29udGV4dC5ncF9yZWdzW01EX0NPTlRFWFRfUFBDNjRfUkVHX1NQXTsKKyt9Cisr CisrdWludHB0cl90IFVDb250ZXh0UmVhZGVyOjpHZXRJbnN0cnVjdGlvblBvaW50ZXIoY29uc3Qg dWNvbnRleHRfdCogdWMpIHsKKysgICAgcmV0dXJuIHVjLT51Y19tY29udGV4dC5ncF9yZWdzW1BU X05JUF07CisrfQorKworK3ZvaWQgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0KFJhd0Nv bnRleHRDUFUqIG91dCwgY29uc3QgdWNvbnRleHRfdCogdWMsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3QgdnJyZWdzZXRfdCogdnJlZ3MpIHsKKysgICAgb3V0LT5j b250ZXh0X2ZsYWdzID0gTURfQ09OVEVYVF9QUEM2NF9GVUxMOworKworKyAgICBmb3IgKGludCBp ID0gMDsgaSA8IE1EX0NPTlRFWFRfUFBDNjRfR1BSX0NPVU5UOyBpKyspCisrICAgICAgICBvdXQt PmdwcltpXSA9IHVjLT51Y19tY29udGV4dC5ncF9yZWdzW2ldOworKworKyAgICBvdXQtPmxyID0g dWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfTE5LXTsKKysgICAgb3V0LT5zcnIwID0gdWMtPnVj X21jb250ZXh0LmdwX3JlZ3NbUFRfTklQXTsKKysgICAgb3V0LT5zcnIxID0gdWMtPnVjX21jb250 ZXh0LmdwX3JlZ3NbUFRfTVNSXTsKKysgICAgb3V0LT5jciA9IHVjLT51Y19tY29udGV4dC5ncF9y ZWdzW1BUX0NDUl07CisrICAgIG91dC0+eGVyID0gdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRf WEVSXTsKKysgICAgb3V0LT5jdHIgPSB1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9DVFJdOwor KworKyNpZmRlZiBfX0dMSUJDX18KKysgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9GTE9BVElO R1NBVkVBUkVBX1BQQ19GUFJfQ09VTlQ7IGkrKykKKysgICAgICAgIG91dC0+ZmxvYXRfc2F2ZS5m cHJlZ3NbaV0gPSB1Yy0+dWNfbWNvbnRleHQuZnBfcmVnc1tpXTsKKysKKysgICAgb3V0LT5mbG9h dF9zYXZlLmZwc2NyID0gdWMtPnVjX21jb250ZXh0LmZwX3JlZ3NbTkZQUkVHLTFdOworKyNlbHNl CisrICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfRkxPQVRJTkdTQVZFQVJFQV9QUENfRlBSX0NP VU5UOyBpKyspCisrICAgICAgICBvdXQtPmZsb2F0X3NhdmUuZnByZWdzW2ldID0gKCh1aW50NjRf dCAqKSZ1Yy0+dWNfbWNvbnRleHQuZnBfcmVncylbaV07CisrCisrICAgIG91dC0+ZmxvYXRfc2F2 ZS5mcHNjciA9ICgodWludDY0X3QgKikmdWMtPnVjX21jb250ZXh0LmZwX3JlZ3MpW0VMRl9ORlBS RUctMV07CisrI2VuZGlmCisrCisrICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfVkVDVE9SU0FW RUFSRUFfUFBDX1ZSX0NPVU5UOyBpKyspCisrICAgICAgICBvdXQtPnZlY3Rvcl9zYXZlLnNhdmVf dnJbaV0gPQorKyAgICAgICAgICAgIHsoKCh1aW50NjRfdCl2cmVncy0+dnJyZWdzW2ldWzBdKSA8 PCAzMikKKysgICAgICAgICAgICAgICAgICAgICAgICAgfCB2cmVncy0+dnJyZWdzW2ldWzFdLAor KyAgICAgICAgICAgICAoKCh1aW50NjRfdCl2cmVncy0+dnJyZWdzW2ldWzJdKSA8PCAzMikKKysg ICAgICAgICAgICAgICAgICAgICAgICAgfCB2cmVncy0+dnJyZWdzW2ldWzNdfTsKKysKKysgICAg b3V0LT52cnNhdmUgPSB2cmVncy0+dnJzYXZlOworKyAgICBvdXQtPnZlY3Rvcl9zYXZlLnNhdmVf dnNjciA9IHswLCB2cmVncy0+dnNjci52c2NyX3dvcmR9OworKyAgICBvdXQtPnZlY3Rvcl9zYXZl LnNhdmVfdnJ2YWxpZCA9IDB4RkZGRkZGRkY7CisrfQorKworICNlbmRpZgorIAorIH0gIC8vIG5h bWVzcGFjZSBnb29nbGVfYnJlYWtwYWQKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGly ZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2Nv bW1vbi91Y29udGV4dF9yZWFkZXIuaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJk X3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29t bW9uL3Vjb250ZXh0X3JlYWRlci5oCitAQCAtNTksNiArNTksOSBAQCBzdHJ1Y3QgVUNvbnRleHRS ZWFkZXIgeworICNlbGlmIGRlZmluZWQoX19hYXJjaDY0X18pCisgICBzdGF0aWMgdm9pZCBGaWxs Q1BVQ29udGV4dChSYXdDb250ZXh0Q1BVKiBvdXQsIGNvbnN0IHVjb250ZXh0X3QqIHVjLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGZwc2ltZF9jb250ZXh0KiBm cHJlZ3MpOworKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysgIHN0YXRpYyB2b2lkIEZp bGxDUFVDb250ZXh0KFJhd0NvbnRleHRDUFUgKm91dCwgY29uc3QgdWNvbnRleHRfdCAqdWMsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2cnJlZ3NldF90KiB2cmVncyk7Cisg I2Vsc2UKKyAgIHN0YXRpYyB2b2lkIEZpbGxDUFVDb250ZXh0KFJhd0NvbnRleHRDUFUqIG91dCwg Y29uc3QgdWNvbnRleHRfdCogdWMpOworICNlbmRpZgorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxl ci9leGNlcHRpb25faGFuZGxlci5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJk X3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRp b25faGFuZGxlci5jYworQEAgLTEwNSw2ICsxMDUsMTMgQEAKKyAjZGVmaW5lIFBSX1NFVF9QVFJB Q0VSIDB4NTk2MTZkNjEKKyAjZW5kaWYKKyAKKysvKiBtdXNsIGhhY2ssIGNhbid0IGluY2x1ZGUg YXNtL3B0cmFjZS5oIGFzIHRoYXQgY2F1c2VzIGNvbmZsaWN0cyAqLworKyNpZm5kZWYgX19HTElC Q19fCisrI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykgJiYgIWRlZmluZWQoUFRfTklQKQorKyNk ZWZpbmUgUFRfTklQIDMyCisrI2VuZGlmCisrI2VuZGlmCisrCisgbmFtZXNwYWNlIGdvb2dsZV9i cmVha3BhZCB7CisgCisgbmFtZXNwYWNlIHsKK0BAIC00NjEsOSArNDY4LDE2IEBAIGJvb2wgRXhj ZXB0aW9uSGFuZGxlcjo6SGFuZGxlU2lnbmFsKGludAorICAgICBtZW1jcHkoJmdfY3Jhc2hfY29u dGV4dF8uZmxvYXRfc3RhdGUsIGZwX3B0ciwKKyAgICAgICAgICAgIHNpemVvZihnX2NyYXNoX2Nv bnRleHRfLmZsb2F0X3N0YXRlKSk7CisgICB9CisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQorKyAgLy8gT24gUFBDNjQsIHdlIG11c3QgY29weSBWUiBzdGF0ZQorKyAgdWNvbnRleHRfdCog dWNfcHRyID0gKHVjb250ZXh0X3QqKXVjOworKyAgaWYgKHVjX3B0ci0+dWNfbWNvbnRleHQudl9y ZWdzKSB7CisrICAgIG1lbWNweSgmZ19jcmFzaF9jb250ZXh0Xy52ZWN0b3Jfc3RhdGUsIHVjX3B0 ci0+dWNfbWNvbnRleHQudl9yZWdzLAorKyAgICAgICAgICAgc2l6ZW9mKGdfY3Jhc2hfY29udGV4 dF8udmVjdG9yX3N0YXRlKSk7CisrICB9CisgI2VsaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAm JiAhZGVmaW5lZChfX21pcHNfXykKKyAgIC8vIEZQIHN0YXRlIGlzIG5vdCBwYXJ0IG9mIHVzZXIg QUJJIG9uIEFSTSBMaW51eC4KKy0gIC8vIEluIGNhc2Ugb2YgTUlQUyBMaW51eCBGUCBzdGF0ZSBp cyBhbHJlYWR5IHBhcnQgb2YgdWNvbnRleHRfdAorKyAgLy8gSW4gY2FzZSBvZiBNSVBTLCBMaW51 eCBGUCBzdGF0ZSBpcyBhbHJlYWR5IHBhcnQgb2YgdWNvbnRleHRfdAorICAgLy8gYW5kICdmbG9h dF9zdGF0ZScgaXMgbm90IGEgbWVtYmVyIG9mIENyYXNoQ29udGV4dC4KKyAgIHVjb250ZXh0X3Qq IHVjX3B0ciA9ICh1Y29udGV4dF90Kil1YzsKKyAgIGlmICh1Y19wdHItPnVjX21jb250ZXh0LmZw cmVncykgeworQEAgLTcwOCwxMSArNzIyLDE5IEBAIGJvb2wgRXhjZXB0aW9uSGFuZGxlcjo6V3Jp dGVNaW5pZHVtcCgpIHsKKyAgIH0KKyAjZW5kaWYKKyAKKy0jaWYgIWRlZmluZWQoX19BUk1fRUFC SV9fKSAmJiAhZGVmaW5lZChfX2FhcmNoNjRfXykgJiYgIWRlZmluZWQoX19taXBzX18pCisrI2lm ICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19hYXJjaDY0X18pICYmICFkZWZp bmVkKF9fbWlwc19fKSBcCisrICAgICYmICFkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAvLyBG UFUgc3RhdGUgaXMgbm90IHBhcnQgb2YgQVJNIEVBQkkgdWNvbnRleHRfdC4KKyAgIG1lbWNweSgm Y29udGV4dC5mbG9hdF9zdGF0ZSwgY29udGV4dC5jb250ZXh0LnVjX21jb250ZXh0LmZwcmVncywK KyAgICAgICAgICBzaXplb2YoY29udGV4dC5mbG9hdF9zdGF0ZSkpOworICNlbmRpZgorKworKyNp ZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICAvLyBWZWN0b3IgcmVnaXN0ZXJzIG11c3QgYmUg Y29waWVkIG9uIFBQQzY0CisrICBtZW1jcHkoJmNvbnRleHQudmVjdG9yX3N0YXRlLCBjb250ZXh0 LmNvbnRleHQudWNfbWNvbnRleHQudl9yZWdzLAorKyAgICAgICAgIHNpemVvZihjb250ZXh0LnZl Y3Rvcl9zdGF0ZSkpOworKyNlbmRpZgorKworICAgY29udGV4dC50aWQgPSBzeXNfZ2V0dGlkKCk7 CisgCisgICAvLyBBZGQgYW4gZXhjZXB0aW9uIHN0cmVhbSB0byB0aGUgbWluaWR1bXAgZm9yIGJl dHRlciByZXBvcnRpbmcuCitAQCAtNzMzLDYgKzc1NSw5IEBAIGJvb2wgRXhjZXB0aW9uSGFuZGxl cjo6V3JpdGVNaW5pZHVtcCgpIHsKKyAjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQorICAgY29udGV4 dC5zaWdpbmZvLnNpX2FkZHIgPQorICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNvbnRl eHQuY29udGV4dC51Y19tY29udGV4dC5wYyk7CisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQorKyAgY29udGV4dC5zaWdpbmZvLnNpX2FkZHIgPQorKyAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8 dm9pZCo+KGNvbnRleHQuY29udGV4dC51Y19tY29udGV4dC5ncF9yZWdzW1BUX05JUF0pOworICNl bHNlCisgI2Vycm9yICJUaGlzIGNvZGUgaGFzIG5vdCBiZWVuIHBvcnRlZCB0byB5b3VyIHBsYXRm b3JtIHlldC4iCisgI2VuZGlmCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFy dHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9o YW5kbGVyLmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3Bh ZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuaAor QEAgLTE5Miw3ICsxOTIsMTEgQEAgY2xhc3MgRXhjZXB0aW9uSGFuZGxlciB7CisgICAgIHNpZ2lu Zm9fdCBzaWdpbmZvOworICAgICBwaWRfdCB0aWQ7ICAvLyB0aGUgY3Jhc2hpbmcgdGhyZWFkLgor ICAgICB1Y29udGV4dF90IGNvbnRleHQ7CistI2lmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYg IWRlZmluZWQoX19taXBzX18pCisrI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysgICAgLy8g UFBDNjQncyBGUCBzdGF0ZSBpcyBhIHBhcnQgb2YgdWNvbnRleHRfdCBsaWtlIE1JUFMgYnV0IHRo ZSB2ZWN0b3IKKysgICAgLy8gc3RhdGUgaXMgbm90LCBzbyBhIHN0cnVjdCBpcyBuZWVkZWQuCisr ICAgIHZzdGF0ZV90IHZlY3Rvcl9zdGF0ZTsKKysjZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18p ICYmICFkZWZpbmVkKF9fbWlwc19fKQorICAgICAvLyAjaWZkZWYgdGhpcyBvdXQgYmVjYXVzZSBG UCBzdGF0ZSBpcyBub3QgcGFydCBvZiB1c2VyIEFCSSBmb3IgTGludXggQVJNLgorICAgICAvLyBJ biBjYXNlIG9mIE1JUFMgTGludXggRlAgc3RhdGUgaXMgYWxyZWFkeSBwYXJ0IG9mIHVjb250ZXh0 X3Qgc28KKyAgICAgLy8gJ2Zsb2F0X3N0YXRlJyBpcyBub3QgcmVxdWlyZWQuCistLS0gYS9zcmMv M3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVu dC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyX3VuaXR0ZXN0LmNjCisrKysgYi9zcmMv M3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVu dC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyX3VuaXR0ZXN0LmNjCitAQCAtMzA3LDcg KzMwNyw3IEBAIFRFU1QoRXhjZXB0aW9uSGFuZGxlclRlc3QsIFBhcmFsbGVsQ2hpbGQKKyAgIH0K KyAKKyAgIC8vIFdhaXQgYSB3aGlsZSB1bnRpbCB0aGUgY2hpbGQgc2hvdWxkIGhhdmUgY3Jhc2hl ZC4KKy0gIHVzbGVlcCgxMDAwMDAwKTsKKysgIHVzbGVlcCgyMDAwMDAwKTsKKyAgIC8vIEtpbGwg dGhlIGNoaWxkIGlmIGl0IGlzIHN0aWxsIHJ1bm5pbmcuCisgICBraWxsKGNoaWxkLCBTSUdLSUxM KTsKKyAKK0BAIC01NTksNiArNTU5LDggQEAgY29uc3QgdW5zaWduZWQgY2hhciBrSWxsZWdhbElu c3RydWN0aW9uWworICNpZiBkZWZpbmVkKF9fbWlwc19fKQorICAgLy8gbWZjMiB6ZXJvLEltcGwg LSB1c3VhbGx5IGlsbGVnYWwgaW4gdXNlcnNwYWNlLgorICAgMHg0OCwgMHgwMCwgMHgwMCwgMHg0 OAorKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysgIDB4MDEsIDB4MDEsIDB4MDEsIDB4 MDEgLy8gQ3Jhc2hlcyBvbiBhIHRlc3RlZCBQT1dFUjkgY3B1CisgI2Vsc2UKKyAgIC8vIFRoaXMg Y3Jhc2hlcyB3aXRoIFNJR0lMTCBvbiB4ODYveDg2LTY0L2FybS4KKyAgIDB4ZmYsIDB4ZmYsIDB4 ZmYsIDB4ZmYKK0BAIC03NTQsMTAgKzc1NiwxMCBAQCBURVNUKEV4Y2VwdGlvbkhhbmRsZXJUZXN0 LCBJbnN0cnVjdGlvblBvCisgCisgICAvLyBUaGVzZSBhcmUgZGVmaW5lZCBoZXJlIHNvIHRoZSBw YXJlbnQgY2FuIHVzZSB0aGVtIHRvIGNoZWNrIHRoZQorICAgLy8gZGF0YSBmcm9tIHRoZSBtaW5p ZHVtcCBhZnRlcndhcmRzLgorLSAgLy8gVXNlIDRrIGhlcmUgYmVjYXVzZSB0aGUgT1Mgd2lsbCBo YW5kIG91dCBhIHNpbmdsZSBwYWdlIGV2ZW4KKysgIC8vIFVzZSB0aGUgcGFnZSBzaXplIGhlcmUg YmVjYXVzZSB0aGUgT1Mgd2lsbCBoYW5kIG91dCBhIHNpbmdsZSBwYWdlIGV2ZW4KKyAgIC8vIGlm IGEgc21hbGxlciBzaXplIGlzIHJlcXVlc3RlZCwgYW5kIHRoaXMgdGVzdCB3YW50cyB0bworICAg Ly8gdGVzdCB0aGUgdXBwZXIgYm91bmQgb2YgdGhlIG1lbW9yeSByYW5nZS4KKy0gIGNvbnN0IHVp bnQzMl90IGtNZW1vcnlTaXplID0gNDA5NjsgIC8vIGJ5dGVzCisrICBjb25zdCB1aW50MzJfdCBr TWVtb3J5U2l6ZSA9IGdldHBhZ2VzaXplKCk7ICAvLyBieXRlcworICAgY29uc3QgaW50IGtPZmZz ZXQgPSBrTWVtb3J5U2l6ZSAtIHNpemVvZihrSWxsZWdhbEluc3RydWN0aW9uKTsKKyAKKyAgIGNv bnN0IHBpZF90IGNoaWxkID0gZm9yaygpOworLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Ro aXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWljcm9kdW1wX3dy aXRlci9taWNyb2R1bXBfd3JpdGVyLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhp cmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taWNyb2R1bXBfd3Jp dGVyL21pY3JvZHVtcF93cml0ZXIuY2MKK0BAIC0xMzgsNyArMTM4LDkgQEAgY2xhc3MgTWljcm9k dW1wV3JpdGVyIHsKKyAgICAgICAgICAgICAgICAgICBjb25zdCBNaWNyb2R1bXBFeHRyYUluZm8m IG1pY3JvZHVtcF9leHRyYV9pbmZvLAorICAgICAgICAgICAgICAgICAgIExpbnV4RHVtcGVyKiBk dW1wZXIpCisgICAgICAgOiB1Y29udGV4dF8oY29udGV4dCA/ICZjb250ZXh0LT5jb250ZXh0IDog TlVMTCksCistI2lmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18p CisrI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysgICAgICAgIHZlY3Rvcl9zdGF0ZV8oY29u dGV4dCA/ICZjb250ZXh0LT52ZWN0b3Jfc3RhdGUgOiBOVUxMKSwKKysjZWxpZiAhZGVmaW5lZChf X0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQorICAgICAgICAgZmxvYXRfc3RhdGVf KGNvbnRleHQgPyAmY29udGV4dC0+ZmxvYXRfc3RhdGUgOiBOVUxMKSwKKyAjZW5kaWYKKyAgICAg ICAgIGR1bXBlcl8oZHVtcGVyKSwKK0BAIC0zMzcsNiArMzM5LDggQEAgY2xhc3MgTWljcm9kdW1w V3JpdGVyIHsKKyAjIGVsc2UKKyAjICBlcnJvciAiVGhpcyBtaXBzIEFCSSBpcyBjdXJyZW50bHkg bm90IHN1cHBvcnRlZCAobjMyKSIKKyAjZW5kaWYKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0 X18pCisrICAgIGNvbnN0IGNoYXIga0FyY2hbXSA9ICJwcGM2NCI7CisgI2Vsc2UKKyAjZXJyb3Ig IlRoaXMgY29kZSBoYXMgbm90IGJlZW4gcG9ydGVkIHRvIHlvdXIgcGxhdGZvcm0geWV0IgorICNl bmRpZgorQEAgLTQwOSw3ICs0MTMsOSBAQCBjbGFzcyBNaWNyb2R1bXBXcml0ZXIgeworICAgdm9p ZCBEdW1wQ1BVU3RhdGUoKSB7CisgICAgIFJhd0NvbnRleHRDUFUgY3B1OworICAgICBteV9tZW1z ZXQoJmNwdSwgMCwgc2l6ZW9mKFJhd0NvbnRleHRDUFUpKTsKKy0jaWYgIWRlZmluZWQoX19BUk1f RUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKKysjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQorKyAgICBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNvbnRleHQoJmNwdSwgdWNvbnRleHRfLCB2 ZWN0b3Jfc3RhdGVfKTsKKysjZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVk KF9fbWlwc19fKQorICAgICBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNvbnRleHQoJmNwdSwgdWNv bnRleHRfLCBmbG9hdF9zdGF0ZV8pOworICNlbHNlCisgICAgIFVDb250ZXh0UmVhZGVyOjpGaWxs Q1BVQ29udGV4dCgmY3B1LCB1Y29udGV4dF8pOworQEAgLTYwNSw3ICs2MTEsOSBAQCBjbGFzcyBN aWNyb2R1bXBXcml0ZXIgeworICAgdm9pZCogQWxsb2ModW5zaWduZWQgYnl0ZXMpIHsgcmV0dXJu IGR1bXBlcl8tPmFsbG9jYXRvcigpLT5BbGxvYyhieXRlcyk7IH0KKyAKKyAgIGNvbnN0IHVjb250 ZXh0X3QqIGNvbnN0IHVjb250ZXh0XzsKKy0jaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAh ZGVmaW5lZChfX21pcHNfXykKKysjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgY29uc3Qg Z29vZ2xlX2JyZWFrcGFkOjp2c3RhdGVfdCogY29uc3QgdmVjdG9yX3N0YXRlXzsKKysjZWxpZiAh ZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQorICAgY29uc3QgZ29v Z2xlX2JyZWFrcGFkOjpmcHN0YXRlX3QqIGNvbnN0IGZsb2F0X3N0YXRlXzsKKyAjZW5kaWYKKyAg IExpbnV4RHVtcGVyKiBkdW1wZXJfOworLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJk X3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWljcm9kdW1wX3dyaXRl ci9taWNyb2R1bXBfd3JpdGVyX3VuaXR0ZXN0LmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21p dW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taWNyb2R1 bXBfd3JpdGVyL21pY3JvZHVtcF93cml0ZXJfdW5pdHRlc3QuY2MKK0BAIC0yNzksMTAgKzI3OSwx OSBAQCBURVNUKE1pY3JvZHVtcFdyaXRlclRlc3QsIEJhc2ljV2l0aE1hcHBpCisgICBDcmFzaEFu ZEdldE1pY3JvZHVtcChtYXBwaW5ncywgTWljcm9kdW1wRXh0cmFJbmZvKCksICZidWYpOworICAg QVNTRVJUX1RSVUUoQ29udGFpbnNNaWNyb2R1bXAoYnVmKSk7CisgCisrICBpbnQgcGFnZV9zaXpl ID0gZ2V0cGFnZXNpemUoKTsKKyAjaWZkZWYgX19MUDY0X18KKy0gIEFTU0VSVF9ORShzdGQ6OnN0 cmluZzo6bnBvcywKKy0gICAgICAgICAgICBidWYuZmluZCgiTSAwMDAwMDAwMDAwMDAxMDAwIDAw MDAwMDAwMDAwMDAwMkEgMDAwMDAwMDAwMDAwMTAwMCAiCistICAgICAgICAgICAgICAgICAgICAg IjMzMjIxMTAwNTU0NDc3NjY4ODk5QUFCQkNDRERFRUZGMCBsaWJmb28uc28iKSk7CisrICAvLyBU aGlzIHRlc3QgaXMgb25seSBhdmFpbGFibGUgZm9yIHRoZSBmb2xsb3dpbmcgcGFnZSBzaXplcwor KyAgQVNTRVJUX1RSVUUoKHBhZ2Vfc2l6ZSA9PSA0MDk2KSB8fCAocGFnZV9zaXplID09IDY1NTM2 KSk7CisrICBpZiAocGFnZV9zaXplID09IDQwOTYpIHsKKysgICAgQVNTRVJUX05FKHN0ZDo6c3Ry aW5nOjpucG9zLAorKyAgICAgICAgICAgICAgYnVmLmZpbmQoIk0gMDAwMDAwMDAwMDAwMTAwMCAw MDAwMDAwMDAwMDAwMDJBIDAwMDAwMDAwMDAwMDEwMDAgIgorKyAgICAgICAgICAgICAgICAgICAg ICAgIjMzMjIxMTAwNTU0NDc3NjY4ODk5QUFCQkNDRERFRUZGMCBsaWJmb28uc28iKSk7CisrICB9 IGVsc2UgeworKyAgICBBU1NFUlRfTkUoc3RkOjpzdHJpbmc6Om5wb3MsCisrICAgICAgICAgICAg ICBidWYuZmluZCgiTSAwMDAwMDAwMDAwMDEwMDAwIDAwMDAwMDAwMDAwMDAwMkEgMDAwMDAwMDAw MDAxMDAwMCAiCisrICAgICAgICAgICAgICAgICAgICAgICAiMzMyMjExMDA1NTQ0Nzc2Njg4OTlB QUJCQ0NEREVFRkYwIGxpYmZvby5zbyIpKTsKKysgIH0KKyAjZWxzZQorICAgQVNTRVJUX05FKHN0 ZDo6c3RyaW5nOjpucG9zLAorICAgICAgICAgICAgIGJ1Zi5maW5kKCJNIDAwMDAxMDAwIDAwMDAw MDJBIDAwMDAxMDAwICIKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9i cmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9j b3JlX2R1bXBlci5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Jy ZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2Nv cmVfZHVtcGVyLmNjCitAQCAtMTE3LDYgKzExNyw5IEBAIGJvb2wgTGludXhDb3JlRHVtcGVyOjpH ZXRUaHJlYWRJbmZvQnlJbmQKKyAjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQorICAgc3RhY2tfcG9p bnRlciA9CisgICAgICAgcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oaW5mby0+bWNvbnRleHQu Z3JlZ3NbTURfQ09OVEVYVF9NSVBTX1JFR19TUF0pOworKyNlbGlmIGRlZmluZWQoX19wb3dlcnBj NjRfXykKKysgIHN0YWNrX3BvaW50ZXIgPQorKyAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhf dCo+KGluZm8tPm1jb250ZXh0LmdwX3JlZ3NbTURfQ09OVEVYVF9QUEM2NF9SRUdfU1BdKTsKKyAj ZWxzZQorICNlcnJvciAiVGhpcyBjb2RlIGhhc24ndCBiZWVuIHBvcnRlZCB0byB5b3VyIHBsYXRm b3JtIHlldC4iCisgI2VuZGlmCitAQCAtMjEyLDcgKzIxNSwxMCBAQCBib29sIExpbnV4Q29yZUR1 bXBlcjo6RW51bWVyYXRlVGhyZWFkcygpCisgICAgICAgICBtZW1zZXQoJmluZm8sIDAsIHNpemVv ZihUaHJlYWRJbmZvKSk7CisgICAgICAgICBpbmZvLnRnaWQgPSBzdGF0dXMtPnByX3BncnA7Cisg ICAgICAgICBpbmZvLnBwaWQgPSBzdGF0dXMtPnByX3BwaWQ7CistI2lmIGRlZmluZWQoX19taXBz X18pCisrI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysgICAgICAgIGZvciAoaW50IGkgPSAw OyBpIDwgMzE7IGkrKykKKysgICAgICAgICAgICBpbmZvLm1jb250ZXh0LmdwX3JlZ3NbaV0gPSBz dGF0dXMtPnByX3JlZ1tpXTsKKysjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQorICNpZiBkZWZpbmVk KF9fQU5EUk9JRF9fKQorICAgICAgICAgZm9yIChpbnQgaSA9IEVGX1IwOyBpIDw9IEVGX1IzMTsg aSsrKQorICAgICAgICAgICBpbmZvLm1jb250ZXh0LmdyZWdzW2kgLSBFRl9SMF0gPSBzdGF0dXMt PnByX3JlZ1tpXTsKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVh a3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9kdW1w ZXIuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9i cmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9kdW1wZXIuY2MK K0BAIC03NjUsNyArNzY1LDkgQEAgYm9vbCBMaW51eER1bXBlcjo6R2V0U3RhY2tJbmZvKGNvbnN0 IHZvaQorICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KGludF9zdGFja19wb2ludGVy ICYgfihwYWdlX3NpemUgLSAxKSk7CisgCisgICAvLyBUaGUgbnVtYmVyIG9mIGJ5dGVzIG9mIHN0 YWNrIHdoaWNoIHdlIHRyeSB0byBjYXB0dXJlLgorLSAgc3RhdGljIGNvbnN0IHB0cmRpZmZfdCBr U3RhY2tUb0NhcHR1cmUgPSAzMiAqIDEwMjQ7CisrICAvLyBUaGlzIG5vdyBkZXBlbmRzIG9uIHBh Z2Vfc2l6ZSB0byBhdm9pZCBtaXNzaW5nIGRhdGEKKysgIC8vIG9uIHN5c3RlbXMgd2l0aCBsYXJn ZXIgcGFnZSBzaXplcy4KKysgIHN0YXRpYyBjb25zdCBwdHJkaWZmX3Qga1N0YWNrVG9DYXB0dXJl ID0gOCAqIHBhZ2Vfc2l6ZTsKKyAKKyAgIGNvbnN0IE1hcHBpbmdJbmZvKiBtYXBwaW5nID0gRmlu ZE1hcHBpbmcoc3RhY2tfcG9pbnRlcik7CisgICBpZiAoIW1hcHBpbmcpCistLS0gYS9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9s aW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfZHVtcGVyLmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21p bmlkdW1wX3dyaXRlci9saW51eF9kdW1wZXIuaAorQEAgLTYzLDcgKzYzLDggQEAgbmFtZXNwYWNl IGdvb2dsZV9icmVha3BhZCB7CisgIChkZWZpbmVkKF9fbWlwc19fKSAmJiBfTUlQU19TSU0gPT0g X0FCSU8zMikKKyB0eXBlZGVmIEVsZjMyX2F1eHZfdCBlbGZfYXV4X2VudHJ5OworICNlbGlmIGRl ZmluZWQoX194ODZfNjQpIHx8IGRlZmluZWQoX19hYXJjaDY0X18pIHx8IFwKKy0gICAgIChkZWZp bmVkKF9fbWlwc19fKSAmJiBfTUlQU19TSU0gIT0gX0FCSU8zMikKKysgICAgIChkZWZpbmVkKF9f bWlwc19fKSAmJiBfTUlQU19TSU0gIT0gX0FCSU8zMikgfHwgXAorKyAgICAgZGVmaW5lZChfX3Bv d2VycGM2NF9fKQorIHR5cGVkZWYgRWxmNjRfYXV4dl90IGVsZl9hdXhfZW50cnk7CisgI2VuZGlm CisgCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJl YWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfZHVtcGVyX3VuaXR0 ZXN0X2hlbHBlci5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Jy ZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2R1 bXBlcl91bml0dGVzdF9oZWxwZXIuY2MKK0BAIC01MSw2ICs1MSw4IEBACisgI2RlZmluZSBUSURf UFRSX1JFR0lTVEVSICJyY3giCisgI2VsaWYgZGVmaW5lZChfX21pcHNfXykKKyAjZGVmaW5lIFRJ RF9QVFJfUkVHSVNURVIgIiQxIgorKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysjZGVm aW5lIFRJRF9QVFJfUkVHSVNURVIgInI4IgorICNlbHNlCisgI2Vycm9yIFRoaXMgdGVzdCBoYXMg bm90IGJlZW4gcG9ydGVkIHRvIHRoaXMgcGxhdGZvcm0uCisgI2VuZGlmCistLS0gYS9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9s aW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfcHRyYWNlX2R1bXBlci5jYworKysrIGIvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQv bGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X3B0cmFjZV9kdW1wZXIuY2MKK0BAIC0xNTQsMTkg KzE1NCwyNyBAQCBib29sIExpbnV4UHRyYWNlRHVtcGVyOjpDb3B5RnJvbVByb2Nlc3MoCisgICBy ZXR1cm4gdHJ1ZTsKKyB9CisgCistYm9vbCBMaW51eFB0cmFjZUR1bXBlcjo6UmVhZFJlZ2lzdGVy U2V0KFRocmVhZEluZm8qIGluZm8sIHBpZF90IHRpZCkKKy17CisrYm9vbCBMaW51eFB0cmFjZUR1 bXBlcjo6UmVhZFJlZ2lzdGVyU2V0KFRocmVhZEluZm8qIGluZm8sIHBpZF90IHRpZCkgeworICNp ZmRlZiBQVFJBQ0VfR0VUUkVHU0VUCisgICBzdHJ1Y3QgaW92ZWMgaW87CisgICBpbmZvLT5HZXRH ZW5lcmFsUHVycG9zZVJlZ2lzdGVycygmaW8uaW92X2Jhc2UsICZpby5pb3ZfbGVuKTsKKy0gIGlm IChzeXNfcHRyYWNlKFBUUkFDRV9HRVRSRUdTRVQsIHRpZCwgKHZvaWQqKU5UX1BSU1RBVFVTLCAo dm9pZCopJmlvKSA9PSAtMSkgeworKyAgaWYgKHB0cmFjZShQVFJBQ0VfR0VUUkVHU0VULCB0aWQs ICh2b2lkKilOVF9QUlNUQVRVUywgKHZvaWQqKSZpbykgPT0gLTEpIHsKKyAgICAgcmV0dXJuIGZh bHNlOworICAgfQorIAorICAgaW5mby0+R2V0RmxvYXRpbmdQb2ludFJlZ2lzdGVycygmaW8uaW92 X2Jhc2UsICZpby5pb3ZfbGVuKTsKKy0gIGlmIChzeXNfcHRyYWNlKFBUUkFDRV9HRVRSRUdTRVQs IHRpZCwgKHZvaWQqKU5UX0ZQUkVHU0VULCAodm9pZCopJmlvKSA9PSAtMSkgeworKyAgaWYgKHB0 cmFjZShQVFJBQ0VfR0VUUkVHU0VULCB0aWQsICh2b2lkKilOVF9GUFJFR1NFVCwgKHZvaWQqKSZp bykgPT0gLTEpIHsKKyAgICAgcmV0dXJuIGZhbHNlOworICAgfQorKworKyNpZiBkZWZpbmVkKF9f cG93ZXJwYzY0X18pCisrICAvLyBHcmFiIHRoZSB2ZWN0b3IgcmVnaXN0ZXJzIG9uIFBQQzY0IHRv bworKyAgaW5mby0+R2V0VmVjdG9yUmVnaXN0ZXJzKCZpby5pb3ZfYmFzZSwgJmlvLmlvdl9sZW4p OworKyAgaWYgKHB0cmFjZShQVFJBQ0VfR0VUUkVHU0VULCB0aWQsICh2b2lkKilOVF9QUENfVk1Y LCAodm9pZCopJmlvKSA9PSAtMSkgeworKyAgICByZXR1cm4gZmFsc2U7CisrICB9CisrI2VuZGlm IC8vIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysKKyAgIHJldHVybiB0cnVlOworICNlbHNlCisg ICByZXR1cm4gZmFsc2U7CitAQCAtMzAzLDYgKzMxMSw5IEBAIGJvb2wgTGludXhQdHJhY2VEdW1w ZXI6OkdldFRocmVhZEluZm9CeUkKKyAjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQorICAgc3RhY2tf cG9pbnRlciA9CisgICAgICAgcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oaW5mby0+bWNvbnRl eHQuZ3JlZ3NbTURfQ09OVEVYVF9NSVBTX1JFR19TUF0pOworKyNlbGlmIGRlZmluZWQoX19wb3dl cnBjNjRfXykKKysgIHN0YWNrX3BvaW50ZXIgPQorKyAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWlu dDhfdCo+KGluZm8tPm1jb250ZXh0LmdwX3JlZ3NbTURfQ09OVEVYVF9QUEM2NF9SRUdfU1BdKTsK KyAjZWxzZQorICNlcnJvciAiVGhpcyBjb2RlIGhhc24ndCBiZWVuIHBvcnRlZCB0byB5b3VyIHBs YXRmb3JtIHlldC4iCisgI2VuZGlmCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRf cGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIv bGludXhfcHRyYWNlX2R1bXBlcl91bml0dGVzdC5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1 bXBfd3JpdGVyL2xpbnV4X3B0cmFjZV9kdW1wZXJfdW5pdHRlc3QuY2MKK0BAIC00NjIsNiArNDYy LDkgQEAgVEVTVChMaW51eFB0cmFjZUR1bXBlclRlc3QsIFZlcmlmeVN0YWNrUgorICNlbGlmIGRl ZmluZWQoX19taXBzX18pCisgICAgIHBpZF90KiBwcm9jZXNzX3RpZF9sb2NhdGlvbiA9CisgICAg ICAgICByZWludGVycHJldF9jYXN0PHBpZF90Kj4ob25lX3RocmVhZC5tY29udGV4dC5ncmVnc1sx XSk7CisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgICBwaWRfdCogcHJvY2Vzc190 aWRfbG9jYXRpb24gPQorKyAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxwaWRfdCo+KG9uZV90aHJl YWQubWNvbnRleHQuZ3BfcmVnc1s4XSk7CisgI2Vsc2UKKyAjZXJyb3IgVGhpcyB0ZXN0IGhhcyBu b3QgYmVlbiBwb3J0ZWQgdG8gdGhpcyBwbGF0Zm9ybS4KKyAjZW5kaWYKK0BAIC01NTksNiArNTYy LDggQEAgVEVTVF9GKExpbnV4UHRyYWNlRHVtcGVyVGVzdCwgU2FuaXRpemVTdAorICAgdWludHB0 cl90IGhlYXBfYWRkciA9IHRocmVhZF9pbmZvLnJlZ3MucmN4OworICNlbGlmIGRlZmluZWQoX19t aXBzX18pCisgICB1aW50cHRyX3QgaGVhcF9hZGRyID0gdGhyZWFkX2luZm8ubWNvbnRleHQuZ3Jl Z3NbMV07CisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgdWludHB0cl90IGhlYXBf YWRkciA9IHRocmVhZF9pbmZvLm1jb250ZXh0LmdwX3JlZ3NbOF07CisgI2Vsc2UKKyAjZXJyb3Ig VGhpcyB0ZXN0IGhhcyBub3QgYmVlbiBwb3J0ZWQgdG8gdGhpcyBwbGF0Zm9ybS4KKyAjZW5kaWYK Ky0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3Bh ZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXIuY2MKKysr KyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9z cmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXIuY2MKK0BAIC0x MzYsNyArMTM2LDkgQEAgY2xhc3MgTWluaWR1bXBXcml0ZXIgeworICAgICAgIDogZmRfKG1pbmlk dW1wX2ZkKSwKKyAgICAgICAgIHBhdGhfKG1pbmlkdW1wX3BhdGgpLAorICAgICAgICAgdWNvbnRl eHRfKGNvbnRleHQgPyAmY29udGV4dC0+Y29udGV4dCA6IE5VTEwpLAorLSNpZiAhZGVmaW5lZChf X0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQorKyNpZiBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCisrICAgICAgICB2ZWN0b3Jfc3RhdGVfKGNvbnRleHQgPyAmY29udGV4dC0+dmVjdG9y X3N0YXRlIDogTlVMTCksCisrI2VsaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5l ZChfX21pcHNfXykKKyAgICAgICAgIGZsb2F0X3N0YXRlXyhjb250ZXh0ID8gJmNvbnRleHQtPmZs b2F0X3N0YXRlIDogTlVMTCksCisgI2VuZGlmCisgICAgICAgICBkdW1wZXJfKGR1bXBlciksCitA QCAtNDY4LDcgKzQ3MCw5IEBAIGNsYXNzIE1pbmlkdW1wV3JpdGVyIHsKKyAgICAgICAgIGlmICgh Y3B1LkFsbG9jYXRlKCkpCisgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgIG15X21l bXNldChjcHUuZ2V0KCksIDAsIHNpemVvZihSYXdDb250ZXh0Q1BVKSk7CistI2lmICFkZWZpbmVk KF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCisrI2lmIGRlZmluZWQoX19wb3dl cnBjNjRfXykKKysgICAgICAgIFVDb250ZXh0UmVhZGVyOjpGaWxsQ1BVQ29udGV4dChjcHUuZ2V0 KCksIHVjb250ZXh0XywgdmVjdG9yX3N0YXRlXyk7CisrI2VsaWYgIWRlZmluZWQoX19BUk1fRUFC SV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKKyAgICAgICAgIFVDb250ZXh0UmVhZGVyOjpGaWxs Q1BVQ29udGV4dChjcHUuZ2V0KCksIHVjb250ZXh0XywgZmxvYXRfc3RhdGVfKTsKKyAjZWxzZQor ICAgICAgICAgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0KGNwdS5nZXQoKSwgdWNvbnRl eHRfKTsKK0BAIC04OTcsNyArOTAxLDcgQEAgY2xhc3MgTWluaWR1bXBXcml0ZXIgeworICAgICBk aXJlbnQtPmxvY2F0aW9uLnJ2YSA9IDA7CisgICB9CisgCistI2lmIGRlZmluZWQoX19pMzg2X18p IHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykKKysjaWYgZGVmaW5l ZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8 fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICBib29sIFdyaXRlQ1BVSW5mb3JtYXRpb24oTURS YXdTeXN0ZW1JbmZvKiBzeXNfaW5mbykgeworICAgICBjaGFyIHZlbmRvcl9pZFtzaXplb2Yoc3lz X2luZm8tPmNwdS54ODZfY3B1X2luZm8udmVuZG9yX2lkKSArIDFdID0gezB9OworICAgICBzdGF0 aWMgY29uc3QgY2hhciB2ZW5kb3JfaWRfbmFtZVtdID0gInZlbmRvcl9pZCI7CitAQCAtOTE3LDcg KzkyMSw5IEBAIGNsYXNzIE1pbmlkdW1wV3JpdGVyIHsKKyAKKyAgICAgLy8gcHJvY2Vzc29yX2Fy Y2hpdGVjdHVyZSBzaG91bGQgYWx3YXlzIGJlIHNldCwgZG8gdGhpcyBmaXJzdAorICAgICBzeXNf aW5mby0+cHJvY2Vzc29yX2FyY2hpdGVjdHVyZSA9CistI2lmIGRlZmluZWQoX19taXBzX18pCisr I2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysgICAgICAgIE1EX0NQVV9BUkNISVRFQ1RVUkVf UFBDNjQ7CisrI2VsaWYgZGVmaW5lZChfX21pcHNfXykKKyAjIGlmIF9NSVBTX1NJTSA9PSBfQUJJ TzMyCisgICAgICAgICBNRF9DUFVfQVJDSElURUNUVVJFX01JUFM7CisgIyBlbGlmIF9NSVBTX1NJ TSA9PSBfQUJJNjQKK0BAIC0xMzMzLDcgKzEzMzksOSBAQCBjbGFzcyBNaW5pZHVtcFdyaXRlciB7 CisgICBjb25zdCBjaGFyKiBwYXRoXzsgIC8vIFBhdGggdG8gdGhlIGZpbGUgd2hlcmUgdGhlIG1p bmlkdW0gc2hvdWxkIGJlIHdyaXR0ZW4uCisgCisgICBjb25zdCB1Y29udGV4dF90KiBjb25zdCB1 Y29udGV4dF87ICAvLyBhbHNvIGZyb20gdGhlIHNpZ25hbCBoYW5kbGVyCistI2lmICFkZWZpbmVk KF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCisrI2lmIGRlZmluZWQoX19wb3dl cnBjNjRfXykKKysgIGNvbnN0IGdvb2dsZV9icmVha3BhZDo6dnN0YXRlX3QqIGNvbnN0IHZlY3Rv cl9zdGF0ZV87CisrI2VsaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21p cHNfXykKKyAgIGNvbnN0IGdvb2dsZV9icmVha3BhZDo6ZnBzdGF0ZV90KiBjb25zdCBmbG9hdF9z dGF0ZV87ICAvLyBkaXR0bworICNlbmRpZgorICAgTGludXhEdW1wZXIqIGR1bXBlcl87CistLS0g YS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3Jj L2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyLmgKKysrKyBiL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xp ZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXIuaAorQEAgLTQ4LDYgKzQ4 LDggQEAgY2xhc3MgRXhjZXB0aW9uSGFuZGxlcjsKKyAKKyAjaWYgZGVmaW5lZChfX2FhcmNoNjRf XykKKyB0eXBlZGVmIHN0cnVjdCBmcHNpbWRfY29udGV4dCBmcHN0YXRlX3Q7CisrI2VsaWYgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQorK3R5cGVkZWYgdnJyZWdzZXRfdCB2c3RhdGVfdDsKKyAjZWxp ZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQorIHR5cGVkZWYg c3RkOjpyZW1vdmVfcG9pbnRlcjxmcHJlZ3NldF90Pjo6dHlwZSBmcHN0YXRlX3Q7CisgI2VuZGlm CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyX3VuaXR0 ZXN0LmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQv YnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVy X3VuaXR0ZXN0LmNjCitAQCAtNzE1LDYgKzcxNSwxMiBAQCBURVNUKE1pbmlkdW1wV3JpdGVyVGVz dCwgSW52YWxpZFN0YWNrUG9pCisgI2VsaWYgZGVmaW5lZChfX21pcHNfXykKKyAgIGNvbnRleHQu Y29udGV4dC51Y19tY29udGV4dC5ncmVnc1tNRF9DT05URVhUX01JUFNfUkVHX1NQXSA9CisgICAg ICAgaW52YWxpZF9zdGFja19wb2ludGVyOworKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykK KysgIGNvbnRleHQuY29udGV4dC51Y19tY29udGV4dC5ncF9yZWdzW01EX0NPTlRFWFRfUFBDNjRf UkVHX1NQXSA9CisrICAgICAgaW52YWxpZF9zdGFja19wb2ludGVyOworKyNlbGlmIGRlZmluZWQo X19wb3dlcnBjNjRfXykKKysgIGNvbnRleHQuY29udGV4dC51Y19tY29udGV4dC5ncF9yZWdzW01E X0NPTlRFWFRfUFBDNjRfUkVHX1NQXSA9CisrICAgICAgaW52YWxpZF9zdGFja19wb2ludGVyOwor ICNlbHNlCisgIyBlcnJvciAiVGhpcyBjb2RlIGhhcyBub3QgYmVlbiBwb3J0ZWQgdG8geW91ciBw bGF0Zm9ybSB5ZXQuIgorICNlbmRpZgorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJk X3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbGludXgvbWVtb3J5X21hcHBlZF9m aWxlLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQv YnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9tZW1vcnlfbWFwcGVkX2ZpbGUuY2MKK0BAIC02NSw4 ICs2NSw3IEBAIGJvb2wgTWVtb3J5TWFwcGVkRmlsZTo6TWFwKGNvbnN0IGNoYXIqIHAKKyAgIH0K KyAKKyAjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBc CistICAgKGRlZmluZWQoX19taXBzX18pICYmIF9NSVBTX1NJTSA9PSBfQUJJNjQpCistCisrICAg KGRlZmluZWQoX19taXBzX18pICYmIF9NSVBTX1NJTSA9PSBfQUJJNjQpIHx8IGRlZmluZWQoX19w b3dlcnBjNjRfXykKKyAgIHN0cnVjdCBrZXJuZWxfc3RhdCBzdDsKKyAgIGlmIChzeXNfZnN0YXQo ZmQsICZzdCkgPT0gLTEgfHwgc3Quc3Rfc2l6ZSA8IDApIHsKKyAjZWxzZQorLS0tIGEvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24v bGludXgvbWVtb3J5X21hcHBlZF9maWxlX3VuaXR0ZXN0LmNjCisrKysgYi9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9t ZW1vcnlfbWFwcGVkX2ZpbGVfdW5pdHRlc3QuY2MKK0BAIC0xNzYsOSArMTc2LDEwIEBAIFRFU1Rf RihNZW1vcnlNYXBwZWRGaWxlVGVzdCwgUmVtYXBBZnRlck0KKyBURVNUX0YoTWVtb3J5TWFwcGVk RmlsZVRlc3QsIE1hcFdpdGhPZmZzZXQpIHsKKyAgIC8vIFB1dCBtb3JlIGRhdGEgaW4gdGhlIHRl c3QgZmlsZSB0aGlzIHRpbWUuIE9mZnNldHMgY2FuIG9ubHkgYmUKKyAgIC8vIGRvbmUgb24gcGFn ZSBib3VuZGFyaWVzLCBzbyB3ZSBuZWVkIGEgdHdvIHBhZ2UgZmlsZSB0byB0ZXN0IHRoaXMuCist ICBjb25zdCBpbnQgcGFnZV9zaXplID0gNDA5NjsKKy0gIGNoYXIgZGF0YTFbMiAqIHBhZ2Vfc2l6 ZV07CistICBzaXplX3QgZGF0YTFfc2l6ZSA9IHNpemVvZihkYXRhMSk7CisrICBjb25zdCBpbnQg cGFnZV9zaXplID0gZ2V0cGFnZXNpemUoKTsKKysgIGNoYXIgKmRhdGExID0gc3RhdGljX2Nhc3Q8 Y2hhcio+KG1hbGxvYygyICogcGFnZV9zaXplKSk7CisrICBFWFBFQ1RfVFJVRShkYXRhMSAhPSBO VUxMKTsKKysgIHNpemVfdCBkYXRhMV9zaXplID0gKDIgKiBwYWdlX3NpemUpOworICAgZm9yIChz aXplX3QgaSA9IDA7IGkgPCBkYXRhMV9zaXplOyArK2kpIHsKKyAgICAgZGF0YTFbaV0gPSBpICYg MHg3ZjsKKyAgIH0KKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVh a3BhZC9icmVha3BhZC9zcmMvY29tbW9uL21lbW9yeV9hbGxvY2F0b3JfdW5pdHRlc3QuY2MKKysr KyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9z cmMvY29tbW9uL21lbW9yeV9hbGxvY2F0b3JfdW5pdHRlc3QuY2MKK0BAIC01Nyw4ICs1Nyw5IEBA IFRFU1QoUGFnZUFsbG9jYXRvclRlc3QsIExhcmdlT2JqZWN0KSB7CisgCisgICBFWFBFQ1RfRVEo MFUsIGFsbG9jYXRvci5wYWdlc19hbGxvY2F0ZWQoKSk7CisgICB1aW50OF90KiBwID0gcmVpbnRl cnByZXRfY2FzdDx1aW50OF90Kj4oYWxsb2NhdG9yLkFsbG9jKDEwMDAwKSk7CisrICB1aW50NjRf dCBleHBlY3RlZF9wYWdlcyA9IDEgKyAoKDEwMDAwIC0gMSkgLyBnZXRwYWdlc2l6ZSgpKTsKKyAg IEFTU0VSVF9GQUxTRShwID09IE5VTEwpOworLSAgRVhQRUNUX0VRKDNVLCBhbGxvY2F0b3IucGFn ZXNfYWxsb2NhdGVkKCkpOworKyAgRVhQRUNUX0VRKGV4cGVjdGVkX3BhZ2VzLCBhbGxvY2F0b3Iu cGFnZXNfYWxsb2NhdGVkKCkpOworICAgZm9yICh1bnNpZ25lZCBpID0gMTsgaSA8IDEwOyArK2kp IHsKKyAgICAgdWludDhfdCogcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KGFsbG9jYXRv ci5BbGxvYyhpKSk7CisgICAgIEFTU0VSVF9GQUxTRShwID09IE5VTEwpOworLS0tIGEvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9wcm9jZXNz b3IvZXhwbG9pdGFiaWxpdHlfbGludXguY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90 aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvcHJvY2Vzc29yL2V4cGxvaXRhYmlsaXR5 X2xpbnV4LmNjCitAQCAtMjAyLDEyICsyMDIsMTQgQEAgYm9vbCBFeHBsb2l0YWJpbGl0eUxpbnV4 OjpFbmRlZE9uSWxsZWdhbAorICAgLy8gQ2hlY2sgYXJjaGl0ZWN0dXJlIGFuZCBzZXQgYXJjaGl0 ZWN0dXJlIHZhcmlhYmxlIHRvIGNvcnJlc3BvbmRpbmcgZmxhZworICAgLy8gaW4gb2JqZHVtcC4K KyAgIHN3aXRjaCAoY29udGV4dC0+R2V0Q29udGV4dENQVSgpKSB7CisrI2lmIGRlZmluZWQoX19p Mzg2KSB8fCBkZWZpbmVkKF9feDg2XzY0KQorICAgICBjYXNlIE1EX0NPTlRFWFRfWDg2OgorICAg ICAgIGFyY2hpdGVjdHVyZSA9ICJpMzg2IjsKKyAgICAgICBicmVhazsKKyAgICAgY2FzZSBNRF9D T05URVhUX0FNRDY0OgorICAgICAgIGFyY2hpdGVjdHVyZSA9ICJpMzg2Ong4Ni02NCI7CisgICAg ICAgYnJlYWs7CisrI2VuZGlmCisgICAgIGRlZmF1bHQ6CisgICAgICAgLy8gVW5zdXBwb3J0ZWQg YXJjaGl0ZWN0dXJlLiBOb3RlIHRoYXQgQVJNIGFyY2hpdGVjdHVyZXMgYXJlIG5vdAorICAgICAg IC8vIHN1cHBvcnRlZCBiZWNhdXNlIG9iamR1bXAgZG9lcyBub3Qgc3VwcG9ydCBBUk0uCistLS0g YS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3Jj L3Byb2Nlc3Nvci9leHBsb2l0YWJpbGl0eV91bml0dGVzdC5jYworKysrIGIvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9wcm9jZXNzb3IvZXhw bG9pdGFiaWxpdHlfdW5pdHRlc3QuY2MKK0BAIC0xMDQsNiArMTA0LDggQEAgRXhwbG9pdGFiaWxp dHlGb3IoY29uc3Qgc3RyaW5nJiBmaWxlbmFtZQorIH0KKyAKKyBURVNUKEV4cGxvaXRhYmlsaXR5 VGVzdCwgVGVzdFdpbmRvd3NFbmdpbmUpIHsKKysvLyBUaGUgZm9sbG93aW5nIHRlc3RzIGFyZSBv bmx5IGV4ZWN1dGFibGUgb24gYW4geDg2LWNsYXNzIGxpbnV4IG1hY2hpbmUuCisrI2lmICFkZWZp bmVkKF9XSU4zMikgJiYgKGRlZmluZWQoX19pMzg2KSB8fCBkZWZpbmVkKF9feDg2XzY0KSkKKyAg IEFTU0VSVF9FUShnb29nbGVfYnJlYWtwYWQ6OkVYUExPSVRBQklMSVRZX0hJR0gsCisgICAgICAg ICAgICAgRXhwbG9pdGFiaWxpdHlGb3IoImFzY2lpX3JlYWRfYXYuZG1wIikpOworICAgQVNTRVJU X0VRKGdvb2dsZV9icmVha3BhZDo6RVhQTE9JVEFCSUxJVFlfSElHSCwKK0BAIC0xMzYsOSArMTM4 LDEyIEBAIFRFU1QoRXhwbG9pdGFiaWxpdHlUZXN0LCBUZXN0V2luZG93c0VuZ2kKKyAgICAgICAg ICAgICBFeHBsb2l0YWJpbGl0eUZvcigicmVhZF9hdl9jbG9iYmVyX3dyaXRlLmRtcCIpKTsKKyAg IEFTU0VSVF9FUShnb29nbGVfYnJlYWtwYWQ6OkVYUExPSVRBQklMSVRZX0xPVywKKyAgICAgICAg ICAgICBFeHBsb2l0YWJpbGl0eUZvcigicmVhZF9hdl9jb25kaXRpb25hbC5kbXAiKSk7CisrI2Vu ZGlmCisgfQorIAorIFRFU1QoRXhwbG9pdGFiaWxpdHlUZXN0LCBUZXN0TGludXhFbmdpbmUpIHsK KysvLyBUaGUgZm9sbG93aW5nIHRlc3RzIGFyZSBvbmx5IGV4ZWN1dGFibGUgb24gYW4geDg2LWNs YXNzIGxpbnV4IG1hY2hpbmUuCisrI2lmIGRlZmluZWQoX19pMzg2KSB8fCBkZWZpbmVkKF9feDg2 XzY0KQorICAgQVNTRVJUX0VRKGdvb2dsZV9icmVha3BhZDo6RVhQTE9JVEFCSUxJVFlfSU5URVJF U1RJTkcsCisgICAgICAgICAgICAgRXhwbG9pdGFiaWxpdHlGb3IoImxpbnV4X251bGxfcmVhZF9h di5kbXAiKSk7CisgICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFrcGFkOjpFWFBMT0lUQUJJTElUWV9I SUdILAorQEAgLTE3MSw3ICsxNzYsOCBAQCBURVNUKEV4cGxvaXRhYmlsaXR5VGVzdCwgVGVzdExp bnV4RW5naW5lCisgICAgICAgICAgICAgRXhwbG9pdGFiaWxpdHlGb3IoImxpbnV4X2V4ZWN1dGFi bGVfaGVhcC5kbXAiKSk7CisgICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFrcGFkOjpFWFBMT0lUQUJJ TElUWV9ISUdILAorICAgICAgICAgICAgIEV4cGxvaXRhYmlsaXR5Rm9yKCJsaW51eF9qbXBfdG9f bW9kdWxlX25vdF9leGVfcmVnaW9uLmRtcCIpKTsKKy0jaWZuZGVmIF9XSU4zMgorKyNlbmRpZgor KyNpZiAhZGVmaW5lZChfV0lOMzIpICYmIChkZWZpbmVkKF9faTM4NikgfHwgZGVmaW5lZChfX3g4 Nl82NCkpCisgICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFrcGFkOjpFWFBMT0lUQUJJTElUWV9ISUdI LAorICAgICAgICAgICAgIEV4cGxvaXRhYmlsaXR5Rm9yKCJsaW51eF93cml0ZV90b19ub253cml0 YWJsZV9tb2R1bGUuZG1wIikpOworICAgQVNTRVJUX0VRKGdvb2dsZV9icmVha3BhZDo6RVhQTE9J VEFCSUxJVFlfSElHSCwKK0BAIC0xODIsMTAgKzE4OCwxMCBAQCBURVNUKEV4cGxvaXRhYmlsaXR5 VGVzdCwgVGVzdExpbnV4RW5naW5lCisgICAgICAgICAgICAgRXhwbG9pdGFiaWxpdHlGb3IoImxp bnV4X3dyaXRlX3RvX291dHNpZGVfbW9kdWxlX3ZpYV9tYXRoLmRtcCIpKTsKKyAgIEFTU0VSVF9F UShnb29nbGVfYnJlYWtwYWQ6OkVYUExPSVRBQklMSVRZX0lOVEVSRVNUSU5HLAorICAgICAgICAg ICAgIEV4cGxvaXRhYmlsaXR5Rm9yKCJsaW51eF93cml0ZV90b191bmRlcl80ay5kbXAiKSk7Cist I2VuZGlmICAvLyBfV0lOMzIKKysjZW5kaWYgIC8vICFkZWZpbmVkKF9XSU4zMikgJiYgKCFkZWZp bmVkKF9faTM4NikgJiYgIWRlZmluZWQoX194ODZfNjQpKQorIH0KKyAKKy0jaWZuZGVmIF9XSU4z MgorKyNpZiAhZGVmaW5lZChfV0lOMzIpICYmIChkZWZpbmVkKF9faTM4NikgfHwgZGVmaW5lZChf X3g4Nl82NCkpCisgVEVTVChFeHBsb2l0YWJpbGl0eUxpbnV4VXRpbHNUZXN0LCBEaXNhc3NlbWJs ZUJ5dGVzVGVzdCkgeworICAgQVNTRVJUX0ZBTFNFKEV4cGxvaXRhYmlsaXR5TGludXhUZXN0OjpE aXNhc3NlbWJsZUJ5dGVzKCIiLCBOVUxMLCA1LCBOVUxMKSk7CisgICB1aW50OF90IGJ5dGVzWzZd ID0gezB4YzcsIDB4MCwgMHg1LCAweDAsIDB4MCwgMHgwfTsKK0BAIC0zMDEsNiArMzA3LDcgQEAg VEVTVChFeHBsb2l0YWJpbGl0eUxpbnV4VXRpbHNUZXN0LCBDYWxjdQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJndy aXRlX2FkZHJlc3MpKTsKKyB9CistI2VuZGlmICAvLyBfV0lOMzIKKysjZW5kaWYgIC8vICFkZWZp bmVkKF9XSU4zMikgJiYgKGRlZmluZWQoX19pMzg2KSB8fCBkZWZpbmVkKF9feDg2XzY0KSkKKysK KyAKKyB9ICAvLyBuYW1lc3BhY2UKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9w YXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvdG9vbHMvbGludXgvbWQyY29yZS9taW5pZHVtcC0y LWNvcmUuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3Bh ZC9icmVha3BhZC9zcmMvdG9vbHMvbGludXgvbWQyY29yZS9taW5pZHVtcC0yLWNvcmUuY2MKK0BA IC03Nyw2ICs3Nyw4IEBACisgICAjZGVmaW5lIEVMRl9BUkNIICBFTV9NSVBTCisgI2VsaWYgZGVm aW5lZChfX2FhcmNoNjRfXykKKyAgICNkZWZpbmUgRUxGX0FSQ0ggIEVNX0FBUkNINjQKKysjZWxp ZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICAjZGVmaW5lIEVMRl9BUkNIICBFTV9QUEM2NAor ICNlbmRpZgorIAorICNpZiBkZWZpbmVkKF9fYXJtX18pCitAQCAtODcsNiArODksOCBAQCB0eXBl ZGVmIHVzZXJfcmVncyB1c2VyX3JlZ3Nfc3RydWN0OworICNlbGlmIGRlZmluZWQgKF9fbWlwc19f KQorIC8vIFRoaXMgZmlsZS1sb2NhbCB0eXBlZGVmIHNpbXBsaWZpZXMgdGhlIHNvdXJjZSBjb2Rl LgorIHR5cGVkZWYgZ3JlZ3NldF90IHVzZXJfcmVnc19zdHJ1Y3Q7CisrI2VsaWYgZGVmaW5lZChf X3Bvd2VycGM2NF9fKQorK3R5cGVkZWYgc3RydWN0IHB0X3JlZ3MgdXNlcl9yZWdzX3N0cnVjdDsK KyAjZW5kaWYKKyAKKyB1c2luZyBnb29nbGVfYnJlYWtwYWQ6Ok1EVHlwZUhlbHBlcjsKK0BAIC0z MjIsNiArMzI2LDEyIEBAIHN0cnVjdCBDcmFzaGVkUHJvY2VzcyB7CisgI2lmIGRlZmluZWQoX19h YXJjaDY0X18pCisgICAgIHVzZXJfZnBzaW1kX3N0cnVjdCBmcHJlZ3M7CisgI2VuZGlmCisrI2lm IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysgICAgbWNvbnRleHRfdCBtY29udGV4dDsKKysjZW5k aWYKKysjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgICBtY29udGV4dF90IG1jb250ZXh0 OworKyNlbmRpZgorICAgICB1aW50cHRyX3Qgc3RhY2tfYWRkcjsKKyAgICAgY29uc3QgdWludDhf dCogc3RhY2s7CisgICAgIHNpemVfdCBzdGFja19sZW5ndGg7CitAQCAtNTM1LDYgKzU0NSwzOCBA QCBQYXJzZVRocmVhZFJlZ2lzdGVycyhDcmFzaGVkUHJvY2Vzczo6VGhyCisgICB0aHJlYWQtPm1j b250ZXh0LmZwY19laXIgPSByYXdyZWdzLT5mbG9hdF9zYXZlLmZpcjsKKyAjZW5kaWYKKyB9Cisr I2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorK3N0YXRpYyB2b2lkCisrUGFyc2VUaHJlYWRS ZWdpc3RlcnMoQ3Jhc2hlZFByb2Nlc3M6OlRocmVhZCogdGhyZWFkLAorKyAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IE1pbmlkdW1wTWVtb3J5UmFuZ2UmIHJhbmdlKSB7CisrICBjb25zdCBNRFJh d0NvbnRleHRQUEM2NCogcmF3cmVncyA9IHJhbmdlLkdldERhdGE8TURSYXdDb250ZXh0UFBDNjQ+ KDApOworKworKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9DT05URVhUX1BQQzY0X0dQUl9DT1VO VDsgaSsrKQorKyAgICB0aHJlYWQtPm1jb250ZXh0LmdwX3JlZ3NbaV0gPSByYXdyZWdzLT5ncHJb aV07CisrCisrICB0aHJlYWQtPm1jb250ZXh0LmdwX3JlZ3NbUFRfTE5LXSA9IHJhd3JlZ3MtPmxy OworKyAgdGhyZWFkLT5tY29udGV4dC5ncF9yZWdzW1BUX05JUF0gPSByYXdyZWdzLT5zcnIwOwor KyAgdGhyZWFkLT5tY29udGV4dC5ncF9yZWdzW1BUX01TUl0gPSByYXdyZWdzLT5zcnIxOworKyAg dGhyZWFkLT5tY29udGV4dC5ncF9yZWdzW1BUX0NDUl0gPSByYXdyZWdzLT5jcjsKKysgIHRocmVh ZC0+bWNvbnRleHQuZ3BfcmVnc1tQVF9YRVJdID0gcmF3cmVncy0+eGVyOworKyAgdGhyZWFkLT5t Y29udGV4dC5ncF9yZWdzW1BUX0NUUl0gPSByYXdyZWdzLT5jdHI7CisrICB0aHJlYWQtPm1jb250 ZXh0LnZfcmVncy0+dnJzYXZlID0gcmF3cmVncy0+dnJzYXZlOworKworKyAgZm9yIChpbnQgaSA9 IDA7IGkgPCBNRF9GTE9BVElOR1NBVkVBUkVBX1BQQ19GUFJfQ09VTlQ7IGkrKykKKysgICAgICB0 aHJlYWQtPm1jb250ZXh0LmZwX3JlZ3NbaV0gPSByYXdyZWdzLT5mbG9hdF9zYXZlLmZwcmVnc1tp XTsKKysKKysgIHRocmVhZC0+bWNvbnRleHQuZnBfcmVnc1tORlBSRUctMV0gPSByYXdyZWdzLT5m bG9hdF9zYXZlLmZwc2NyOworKworKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9WRUNUT1JTQVZF QVJFQV9QUENfVlJfQ09VTlQ7IGkrKykgeworKyAgICAgIHRocmVhZC0+bWNvbnRleHQudl9yZWdz LT52cnJlZ3NbaV1bMF0gPSByYXdyZWdzLT52ZWN0b3Jfc2F2ZS5zYXZlX3ZyW2ldLmhpZ2ggPj4g MzI7CisrICAgICAgdGhyZWFkLT5tY29udGV4dC52X3JlZ3MtPnZycmVnc1tpXVsxXSA9IHJhd3Jl Z3MtPnZlY3Rvcl9zYXZlLnNhdmVfdnJbaV0uaGlnaDsKKysgICAgICB0aHJlYWQtPm1jb250ZXh0 LnZfcmVncy0+dnJyZWdzW2ldWzJdID0gcmF3cmVncy0+dmVjdG9yX3NhdmUuc2F2ZV92cltpXS5s b3cgPj4gMzI7CisrICAgICAgdGhyZWFkLT5tY29udGV4dC52X3JlZ3MtPnZycmVnc1tpXVszXSA9 IHJhd3JlZ3MtPnZlY3Rvcl9zYXZlLnNhdmVfdnJbaV0ubG93OworKyAgfQorKworKyAgdGhyZWFk LT5tY29udGV4dC52X3JlZ3MtPnZzY3IudnNjcl93b3JkID0gcmF3cmVncy0+dmVjdG9yX3NhdmUu c2F2ZV92c2NyLmxvdyAmIDB4RkZGRkZGRkY7CisrfQorKworICNlbHNlCisgI2Vycm9yICJUaGlz IGNvZGUgaGFzIG5vdCBiZWVuIHBvcnRlZCB0byB5b3VyIHBsYXRmb3JtIHlldCIKKyAjZW5kaWYK K0BAIC02MjMsNiArNjY1LDEyIEBAIFBhcnNlU3lzdGVtSW5mbyhjb25zdCBPcHRpb25zJiBvcHRp b25zLAorICMgZWxzZQorICMgIGVycm9yICJUaGlzIG1pcHMgQUJJIGlzIGN1cnJlbnRseSBub3Qg c3VwcG9ydGVkIChuMzIpIgorICMgZW5kaWYKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18p CisrICBpZiAoc3lzaW5mby0+cHJvY2Vzc29yX2FyY2hpdGVjdHVyZSAhPSBNRF9DUFVfQVJDSElU RUNUVVJFX1BQQzY0KSB7CisrICAgIGZwcmludGYoc3RkZXJyLAorKyAgICAgICAgICAgICJUaGlz IHZlcnNpb24gb2YgbWluaWR1bXAtMi1jb3JlIG9ubHkgc3VwcG9ydHMgUFBDNjQuXG4iKTsKKysg ICAgZXhpdCgxKTsKKysgIH0KKyAjZWxzZQorICNlcnJvciAiVGhpcyBjb2RlIGhhcyBub3QgYmVl biBwb3J0ZWQgdG8geW91ciBwbGF0Zm9ybSB5ZXQiCisgI2VuZGlmCistLS0gYS9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvQ09OVFJJQlVUT1JTCisr KysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQv Q09OVFJJQlVUT1JTCitAQCAtMTMsMyArMTMsNCBAQCBNYXJrIE1lbnRvdmFpIDxtYXJrQGNocm9t aXVtLm9yZz4KKyBSb2JlcnQgU2VzZWsgPHJzZXNla0BjaHJvbWl1bS5vcmc+CisgU2NvdHQgR3Jh aGFtIDxzY290dG1nQGNocm9taXVtLm9yZz4KKyBKb3NodWEgUGVyYXphIDxqcGVyYXphQGNocm9t aXVtLm9yZz4KKytTaGF3biBBbmFzdGFzaW8gPHNoYXduQGFuYXN0YXMuaW8+CistLS0gYS9zcmMv M3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvY29tcGF0L2xp bnV4L3N5cy91c2VyLmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC9jb21wYXQvbGludXgvc3lzL3VzZXIuaAorQEAgLTE1LDYgKzE1LDcg QEAKKyAjaWZuZGVmIENSQVNIUEFEX0NPTVBBVF9MSU5VWF9TWVNfVVNFUl9IXworICNkZWZpbmUg Q1JBU0hQQURfQ09NUEFUX0xJTlVYX1NZU19VU0VSX0hfCisgCisrI2luY2x1ZGUgPGNzdGRkZWY+ CisgI2luY2x1ZGVfbmV4dCA8c3lzL3VzZXIuaD4KKyAKKyAjaW5jbHVkZSA8ZmVhdHVyZXMuaD4K Ky0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0LmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0 LmgKK0BAIC01OTIsNiArNTkyLDcwIEBAIHN0cnVjdCBNaW5pZHVtcENvbnRleHRNSVBTNjQgewor ICAgdWludDY0X3QgZmlyOworIH07CisgCisrLy8hIFxicmllZiBwcGM2NC1zcGVjaWZpYyBmbGFn cyBmb3IgTWluaWR1bXBQUEM2NDo6Y29udGV4dF9mbGFncworKy8vISBCYXNlZCBvbiBtaW5pZHVt cF9jcHVfcHBjNjQuaCBmcm9tIGJyZWFrcGFkCisrZW51bSBNaW5pZHVtcENvbnRleHRQUEM2NEZs YWdzIDogdWludDMyX3QgeworKyAgLy8hIFxicmllZiBJZGVudGlmaWVzIHRoZSBjb250ZXh0IGFz IFBQQzY0LgorKyAga01pbmlkdW1wQ29udGV4dFBQQzY0ID0gMHgwMTAwMDAwMCwKKysKKysgIC8v ISBcYnJpZWYgSW5kaWNhdGVzIHRoZSB2YWxpZGl0eSBvZiBnZW5lcmFsIHB1cnBvc2UgcmVnaXN0 ZXJzLgorKyAgLy8hCisrICAvLyEgUmVnaXN0ZXJzIGByMGAtYHIzMWAsIGBuaXBgLCBgbXNyYCwg YGxyYCwgZXRjLiBhcmUgdmFsaWQuCisrICBrTWluaWR1bXBDb250ZXh0UFBDNjRCYXNlID0ga01p bmlkdW1wQ29udGV4dFBQQzY0IHwgMHgwMDAwMDAwMSwKKysKKysgIC8vISBcYnJpZWYgSW5kaWNh dGVzIHRoZSB2YWxpZGl0eSBvZiBmbG9hdGluZyBwb2ludCByZWdpc3RlcnMuCisrICAvLyEKKysg IC8vISBSZWdpc3RlcnMgYGZwMGAtYGZwMzFgLCBgZnBzY3JgIGFyZSB2YWxpZC4KKysgIGtNaW5p ZHVtcENvbnRleHRQUEM2NEZsb2F0aW5nID0ga01pbmlkdW1wQ29udGV4dFBQQzY0IHwgMHgwMDAw MDAwOCwKKysKKysgIC8vISBcYnJpZWYgSW5kaWNhdGVzIHRoZSB2YWxpZGl0eSBvZiBBbHRpdmVj L1ZNWCByZWdpc3RlcnMuCisrICAvLyEKKysgIC8vISBSZWdpc3RlcnMgYHYwYC1gdjMxYCwgYHZz Y3JgLCBgdnJzYXZlYC4KKysgIGtNaW5pZHVtcENvbnRleHRQUEM2NFZlY3RvciA9IGtNaW5pZHVt cENvbnRleHRQUEM2NCB8IDB4MDAwMDAwMjAsCisrCisrICAvLyEgXGJyaWVmIEluZGljYXRlcyB0 aGUgdmFsaWRpdHkgb2YgYWxsIHJlZ2lzdGVycworKyAga01pbmlkdW1wQ29udGV4dFBQQzY0QWxs ID0ga01pbmlkdW1wQ29udGV4dFBQQzY0QmFzZSAgICAgfAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAga01pbmlkdW1wQ29udGV4dFBQQzY0RmxvYXRpbmcgfAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAga01pbmlkdW1wQ29udGV4dFBQQzY0VmVjdG9yCisrfTsKKysKKysvLyEg XGJyaWVmIEEgUFBDNjQgQ1BVIGNvbnRleHQgY2FycmllZCBpbiBhIG1pbmlkdW1wIGZpbGUuCisr Ly8hIEJhc2VkIG9uIG1pbmlkdW1wX2NwdV9wcGM2NC5oIGZyb20gYnJlYWtwYWQuCisrc3RydWN0 IE1pbmlkdW1wQ29udGV4dFBQQzY0IHsKKysgIHVpbnQ2NF90IGNvbnRleHRfZmxhZ3M7CisrCisr ICAvLyEgXGJyaWVmIEdlbmVyYWwgcHVycG9zZSByZWdpc3RlcnMuCisrICB1aW50NjRfdCBuaXA7 CisrICB1aW50NjRfdCBtc3I7CisrICB1aW50NjRfdCByZWdzWzMyXTsKKysgIHVpbnQ2NF90IGNj cjsKKysgIHVpbnQ2NF90IHhlcjsKKysgIHVpbnQ2NF90IGxuazsKKysgIHVpbnQ2NF90IGN0cjsK KysKKysgIC8vISBcYnJpZWYgRmxvYXRpbmcgcG9pbnQgcmVnaXN0ZXJzLgorKyAgZG91YmxlIGZw cmVnc1szMl07CisrCisrICAvLyEgXGJyaWVmIEZQVSBzdGF0dXMgcmVnaXN0ZXIuCisrICBkb3Vi bGUgZnBzY3I7CisrCisrICAvLyEgXGJyaWVmIEFsdGl2ZWMvVk1YIHZlY3RvciByZWdpc3RlcnMu CisrICBzdHJ1Y3QgeworKyAgICAgIC8vISBcYnJpZWYgVmVjdG9yIHJlZ2lzdGVycyBhcmUgMTI4 Yml0cy4KKysgICAgICB1aW50MTI4X3N0cnVjdCBzYXZlX3ZyWzMyXTsKKysgICAgICB1aW50MTI4 X3N0cnVjdCBzYXZlX3ZzY3I7CisrCisrICAgICAgLy8hIFxicmllZiBQYWRkaW5nIGluY2x1ZGVk IGZvciBicmVha3BhZCBjb21wYXRpYmlsdGl5LgorKyAgICAgIHVpbnQzMl90IHNhdmVfcGFkNVs0 XTsKKysKKysgICAgICAvLyEgXGJyaWVmIFZSU0FWRSByZWdpc3Rlci4KKysgICAgICB1aW50MzJf dCBzYXZlX3Zyc2F2ZTsKKysKKysgICAgICAvLyEgXGJyaWVmIFBhZGRpbmcgaW5jbHVkZWQgZm9y IGJyZWFrcGFkIGNvbXBhdGliaWx0aXkuCisrICAgICAgdWludDMyX3Qgc2F2ZV9wYWQ2WzddOwor KyAgfSB2cmVnczsKKyt9OworKworIH0gIC8vIG5hbWVzcGFjZSBjcmFzaHBhZAorIAorICNlbmRp ZiAgLy8gQ1JBU0hQQURfTUlOSURVTVBfTUlOSURVTVBfQ09OVEVYVF9IXworLS0tIGEvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21p bmlkdW1wX2NvbnRleHRfd3JpdGVyLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhp cmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29udGV4dF93cml0 ZXIuY2MKK0BAIC0xMDEsNiArMTAxLDEzIEBAIE1pbmlkdW1wQ29udGV4dFdyaXRlcjo6Q3JlYXRl RnJvbVNuYXBzaG8KKyAgICAgICBicmVhazsKKyAgICAgfQorIAorKyAgICBjYXNlIGtDUFVBcmNo aXRlY3R1cmVQUEM2NDogeworKyAgICAgIGNvbnRleHQgPSBzdGQ6Om1ha2VfdW5pcXVlPE1pbmlk dW1wQ29udGV4dFBQQzY0V3JpdGVyPigpOworKyAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8TWluaWR1 bXBDb250ZXh0UFBDNjRXcml0ZXIqPihjb250ZXh0LmdldCgpKQorKyAgICAgICAgICAtPkluaXRh bGl6ZUZyb21TbmFwc2hvdChjb250ZXh0X3NuYXBzaG90LT5wcGM2NCk7CisrICAgICAgYnJlYWs7 CisrICAgIH0KKysKKyAgICAgZGVmYXVsdDogeworICAgICAgIExPRyhFUlJPUikgPDwgInVua25v d24gY29udGV4dCBhcmNoaXRlY3R1cmUgIgorICAgICAgICAgICAgICAgICAgPDwgY29udGV4dF9z bmFwc2hvdC0+YXJjaGl0ZWN0dXJlOworLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJk X3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHRfd3JpdGVy LmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFz aHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0X3dyaXRlci5oCitAQCAtMzE1LDYgKzMxNSw0 NSBAQCBjbGFzcyBNaW5pZHVtcENvbnRleHRNSVBTNjRXcml0ZXIgZmluYWwKKyAgIERJU0FMTE9X X0NPUFlfQU5EX0FTU0lHTihNaW5pZHVtcENvbnRleHRNSVBTNjRXcml0ZXIpOworIH07CisgCisr Y2xhc3MgTWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXIgZmluYWwgOiBwdWJsaWMgTWluaWR1bXBD b250ZXh0V3JpdGVyIHsKKysgcHVibGljOgorKyAgTWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXIo KTsKKysgIH5NaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlcigpIG92ZXJyaWRlOworKworKyAgLy8h IFxicmllZiBJbml0YWxpemVzIHRoZSBNaW5pZHVtcENvbnRleHRQUEM2NCBiYXNlZCBvbiBcYSBj b250ZXh0X3NuYXBzaG90LgorKyAgLy8hCisrICAvLyEgXHBhcmFtW2luXSBjb250ZXh0X3NuYXBz aG90IFRoZSBjb250ZXh0IHNuYXBzaG90IHRvIHVzZSBhcyBzb3VyY2UgZGF0YS4KKysgIC8vIQor KyAgLy8hIFxub3RlIFZhbGlkIGluICNrU3RhdGVNdXRhYmxlLiBObyBtdXRhdGlvbiBvZiBjb250 ZXh0KCkgbWF5IGJlIGRvbmUgYmVmb3JlCisrICAvLyEgICAgIGNhbGxpbmcgdGhpcyBtZXRob2Qs IGFuZCBpdCBpcyBub3Qgbm9ybWFsbHkgbmVjZXNzYXJ5IHRvIGFsdGVyCisrICAvLyEgICAgIGNv bnRleHQoKSBhZnRlciBjYWxsaW5nIHRoaXMgbWV0aG9kLgorKyAgdm9pZCBJbml0YWxpemVGcm9t U25hcHNob3QoY29uc3QgQ1BVQ29udGV4dFBQQzY0KiBjb250ZXh0X3NuYXBzaG90KTsKKysKKysg IC8vISBcYnJpZWYgUmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIGNvbnRleHQgc3RydWN0dXJlIHRo YXQgdGhpcyBvYmplY3Qgd2lsbAorKyAgLy8hICAgICB3cml0ZS4KKysgIC8vIQorKyAgLy8hIFxh dHRlbnRpb24gVGhpcyByZXR1cm5zIGEgbm9uLWBjb25zdGAgcG9pbnRlciB0byB0aGlzIG9iamVj dOKAmXMgcHJpdmF0ZQorKyAgLy8hICAgICBkYXRhIHNvIHRoYXQgYSBjYWxsZXIgY2FuIHBvcHVs YXRlIHRoZSBjb250ZXh0IHN0cnVjdHVyZSBkaXJlY3RseS4KKysgIC8vISAgICAgVGhpcyBpcyBk b25lIGJlY2F1c2UgcHJvdmlkaW5nIHNldHRlciBpbnRlcmZhY2VzIHRvIGVhY2ggZmllbGQgaW4g dGhlCisrICAvLyEgICAgIGNvbnRleHQgc3RydWN0dXJlIHdvdWxkIGJlIHVud2llbGR5IGFuZCBj dW1iZXJzb21lLiBDYXJlIG11c3QgYmUgdGFrZW4KKysgIC8vISAgICAgdG8gcG9wdWxhdGUgdGhl IGNvbnRleHQgc3RydWN0dXJlIGNvcnJlY3RseS4gVGhlIGNvbnRleHQgc3RydWN0dXJlCisrICAv LyEgICAgIG11c3Qgb25seSBiZSBtb2RpZmllZCB3aGlsZSB0aGlzIG9iamVjdCBpcyBpbiB0aGUg I2tTdGF0ZU11dGFibGUKKysgIC8vISAgICAgc3RhdGUuCisrICBNaW5pZHVtcENvbnRleHRQUEM2 NCogY29udGV4dCgpIHsgcmV0dXJuICZjb250ZXh0XzsgfQorKworKyBwcm90ZWN0ZWQ6CisrICAv LyBNaW5pZHVtcFdyaXRhYmxlOgorKyAgYm9vbCBXcml0ZU9iamVjdChGaWxlV3JpdGVySW50ZXJm YWNlKiBmaWxlX3dyaXRlcikgb3ZlcnJpZGU7CisrCisrICAvLyBNaW5pZHVtcENvbnRleHRXcml0 ZXI6CisrICBzaXplX3QgQ29udGV4dFNpemUoKSBjb25zdCBvdmVycmlkZTsKKysKKysgcHJpdmF0 ZToKKysgIE1pbmlkdW1wQ29udGV4dFBQQzY0IGNvbnRleHRfOworKworKyAgRElTQUxMT1dfQ09Q WV9BTkRfQVNTSUdOKE1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyKTsKKyt9OworKworIH0gIC8v IG5hbWVzcGFjZSBjcmFzaHBhZAorIAorICNlbmRpZiAgLy8gQ1JBU0hQQURfTUlOSURVTVBfTUlO SURVTVBfQ09OVEVYVF9XUklURVJfSF8KKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0X3dyaXRl cl90ZXN0LmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hw YWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29udGV4dF93cml0ZXJfdGVzdC5jYworQEAg LTIxMyw2ICsyMTMsMjEgQEAgVEVTVChNaW5pZHVtcENvbnRleHRXcml0ZXIsIE1JUFM2NF9Gcm9t UworICAgICAgIGNvbnRleHQsIEV4cGVjdE1pbmlkdW1wQ29udGV4dE1JUFM2NCwga1NlZWQpOwor IH0KKyAKKytURVNUKE1pbmlkdW1wQ29udGV4dFdyaXRlciwgUFBDNjRfWmVyb3MpIHsKKysgIEVt cHR5Q29udGV4dFRlc3Q8TWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXIsIE1pbmlkdW1wQ29udGV4 dFBQQzY0PigKKysgICAgRXhwZWN0TWluaWR1bXBDb250ZXh0UFBDNjQpOworK30KKysKKytURVNU KE1pbmlkdW1wQ29udGV4dFdyaXRlciwgUFBDNjRfRnJvbVNuYXBzaG90KSB7CisrICBjb25zdGV4 cHIgdWludDMyX3Qga1NlZWQgPSA2NDsKKysgIENQVUNvbnRleHRQUEM2NCBjb250ZXh0X3BwYzY0 OworKyAgQ1BVQ29udGV4dCBjb250ZXh0OworKyAgY29udGV4dC5wcGM2NCA9ICZjb250ZXh0X3Bw YzY0OworKyAgSW5pdGlhbGl6ZUNQVUNvbnRleHRQUEM2NCgmY29udGV4dCwga1NlZWQpOworKyAg RnJvbVNuYXBzaG90VGVzdDxNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlciwgTWluaWR1bXBDb250 ZXh0UFBDNjQ+KAorKyAgICAgIGNvbnRleHQsIEV4cGVjdE1pbmlkdW1wQ29udGV4dFBQQzY0LCBr U2VlZCk7CisrfQorKworIH0gIC8vIG5hbWVzcGFjZQorIH0gIC8vIG5hbWVzcGFjZSB0ZXN0Cisg fSAgLy8gbmFtZXNwYWNlIGNyYXNocGFkCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhp cmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfbWlzY19pbmZvX3dy aXRlci5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFk L2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX21pc2NfaW5mb193cml0ZXIuY2MKK0BAIC0xMzUs NiArMTM1LDggQEAgc3RkOjpzdHJpbmcgTWluaWR1bXBNaXNjSW5mb0RlYnVnQnVpbGRTdAorICAg c3RhdGljIGNvbnN0ZXhwciBjaGFyIGtDUFVbXSA9ICJtaXBzIjsKKyAjZWxpZiBkZWZpbmVkKEFS Q0hfQ1BVX01JUFM2NEVMKQorICAgc3RhdGljIGNvbnN0ZXhwciBjaGFyIGtDUFVbXSA9ICJtaXBz NjQiOworKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjQpCisrICBzdGF0aWMgY29uc3RleHBy IGNoYXIga0NQVVtdID0gInBwYzY0IjsKKyAjZWxzZQorICNlcnJvciBkZWZpbmUga0NQVSBmb3Ig dGhpcyBDUFUKKyAjZW5kaWYKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jYXB0dXJlX21lbW9yeS5jYworKysrIGIvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90 L2NhcHR1cmVfbWVtb3J5LmNjCitAQCAtMTEyLDYgKzExMiwxMSBAQCB2b2lkIENhcHR1cmVNZW1v cnk6OlBvaW50ZWRUb0J5Q29udGV4dChjCisgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGJhc2U6 OnNpemUoY29udGV4dC5taXBzZWwtPnJlZ3MpOyArK2kpIHsKKyAgICAgTWF5YmVDYXB0dXJlTWVt b3J5QXJvdW5kKGRlbGVnYXRlLCBjb250ZXh0Lm1pcHNlbC0+cmVnc1tpXSk7CisgICB9CisrI2Vs aWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisrICBNYXliZUNhcHR1cmVNZW1vcnlB cm91bmQoZGVsZWdhdGUsIGNvbnRleHQucHBjNjQtPm5pcCk7CisrICBmb3IgKHNpemVfdCBpID0g MDsgaSA8IGJhc2U6OnNpemUoY29udGV4dC5wcGM2NC0+cmVncyk7ICsraSkgeworKyAgICBNYXli ZUNhcHR1cmVNZW1vcnlBcm91bmQoZGVsZWdhdGUsIGNvbnRleHQucHBjNjQtPnJlZ3NbaV0pOwor KyAgfQorICNlbHNlCisgI2Vycm9yIFBvcnQuCisgI2VuZGlmCistLS0gYS9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY3B1X2FyY2hp dGVjdHVyZS5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hw YWQvY3Jhc2hwYWQvc25hcHNob3QvY3B1X2FyY2hpdGVjdHVyZS5oCitAQCAtNDMsNyArNDMsMTAg QEAgZW51bSBDUFVBcmNoaXRlY3R1cmUgeworICAga0NQVUFyY2hpdGVjdHVyZU1JUFNFTCwKKyAK KyAgIC8vISBcYnJpZWYgNjQtYml0IE1JUFNFTC4KKy0gIGtDUFVBcmNoaXRlY3R1cmVNSVBTNjRF TAorKyAga0NQVUFyY2hpdGVjdHVyZU1JUFM2NEVMLAorKworKyAgLy8hIFxicmllZiA2NC1iaXQg UFBDNjQuCisrICBrQ1BVQXJjaGl0ZWN0dXJlUFBDNjQKKyB9OworIAorIH0gIC8vIG5hbWVzcGFj ZSBjcmFzaHBhZAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL3NuYXBzaG90L2NwdV9jb250ZXh0LmNjCisrKysgYi9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY3B1X2NvbnRl eHQuY2MKK0BAIC0xNjksNiArMTY5LDggQEAgdWludDY0X3QgQ1BVQ29udGV4dDo6SW5zdHJ1Y3Rp b25Qb2ludGVyKAorICAgICAgIHJldHVybiBhcm0tPnBjOworICAgICBjYXNlIGtDUFVBcmNoaXRl Y3R1cmVBUk02NDoKKyAgICAgICByZXR1cm4gYXJtNjQtPnBjOworKyAgICBjYXNlIGtDUFVBcmNo aXRlY3R1cmVQUEM2NDoKKysgICAgICByZXR1cm4gcHBjNjQtPm5pcDsKKyAgICAgZGVmYXVsdDoK KyAgICAgICBOT1RSRUFDSEVEKCk7CisgICAgICAgcmV0dXJuIH4wdWxsOworQEAgLTE4NSw2ICsx ODcsOCBAQCB1aW50NjRfdCBDUFVDb250ZXh0OjpTdGFja1BvaW50ZXIoKSBjb25zCisgICAgICAg cmV0dXJuIGFybS0+c3A7CisgICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVyZUFSTTY0OgorICAgICAg IHJldHVybiBhcm02NC0+c3A7CisrICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVyZVBQQzY0OgorKyAg ICAgIHJldHVybiBwcGM2NC0+cmVnc1sxXTsKKyAgICAgZGVmYXVsdDoKKyAgICAgICBOT1RSRUFD SEVEKCk7CisgICAgICAgcmV0dXJuIH4wdWxsOworQEAgLTE5Niw2ICsyMDAsNyBAQCBib29sIENQ VUNvbnRleHQ6OklzNjRCaXQoKSBjb25zdCB7CisgICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVyZVg4 Nl82NDoKKyAgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlQVJNNjQ6CisgICAgIGNhc2Uga0NQVUFy Y2hpdGVjdHVyZU1JUFM2NEVMOgorKyAgICBjYXNlIGtDUFVBcmNoaXRlY3R1cmVQUEM2NDoKKyAg ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlWDg2OgorICAgICBj YXNlIGtDUFVBcmNoaXRlY3R1cmVBUk06CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhp cmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY3B1X2NvbnRleHQuaAorKysrIGIv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBz aG90L2NwdV9jb250ZXh0LmgKK0BAIC0zNTIsNiArMzUyLDI0IEBAIHN0cnVjdCBDUFVDb250ZXh0 TUlQUzY0IHsKKyAgIHVpbnQ2NF90IGZpcjsKKyB9OworIAorKy8vISBcYnJpZWYgQSBjb250ZXh0 IHN0cnVjdHVyZSBjYXJyeWluZyBQUEM2NCBDUFUgc3RhdGUuCisrc3RydWN0IENQVUNvbnRleHRQ UEM2NCB7CisrICB1aW50NjRfdCBuaXA7CisrICB1aW50NjRfdCBtc3I7CisrICB1aW50NjRfdCBy ZWdzWzMyXTsKKysgIHVpbnQ2NF90IGNjcjsKKysgIHVpbnQ2NF90IHhlcjsKKysgIHVpbnQ2NF90 IGxuazsKKysgIHVpbnQ2NF90IGN0cjsKKysgIGRvdWJsZSBmcHJlZ3NbMzJdOworKyAgZG91Ymxl IGZwc2NyOworKyAgc3RydWN0IHsKKysgICAgdWludDEyOF9zdHJ1Y3Qgc2F2ZV92clszMl07Cisr ICAgIHVpbnQxMjhfc3RydWN0IHNhdmVfdnNjcjsKKysgICAgdWludDMyX3Qgc2F2ZV92cnNhdmU7 CisrICB9IHZyZWdzOworK307CisrCisgLy8hIFxicmllZiBBIGNvbnRleHQgc3RydWN0dXJlIGNh cGFibGUgb2YgY2FycnlpbmcgdGhlIGNvbnRleHQgb2YgYW55IHN1cHBvcnRlZAorIC8vISAgICAg Q1BVIGFyY2hpdGVjdHVyZS4KKyBzdHJ1Y3QgQ1BVQ29udGV4dCB7CitAQCAtMzgyLDYgKzQwMCw3 IEBAIHN0cnVjdCBDUFVDb250ZXh0IHsKKyAgICAgQ1BVQ29udGV4dEFSTTY0KiBhcm02NDsKKyAg ICAgQ1BVQ29udGV4dE1JUFMqIG1pcHNlbDsKKyAgICAgQ1BVQ29udGV4dE1JUFM2NCogbWlwczY0 OworKyAgICBDUFVDb250ZXh0UFBDNjQqIHBwYzY0OworICAgfTsKKyB9OworIAorLS0tIGEvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90 L2xpbnV4L2NwdV9jb250ZXh0X2xpbnV4LmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90 aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9jcHVfY29udGV4dF9s aW51eC5oCitAQCAtMTUsNiArMTUsNyBAQAorICNpZm5kZWYgQ1JBU0hQQURfU05BUFNIT1RfTElO VVhfQ1BVX0NPTlRFWFRfTElOVVhfSF8KKyAjZGVmaW5lIENSQVNIUEFEX1NOQVBTSE9UX0xJTlVY X0NQVV9DT05URVhUX0xJTlVYX0hfCisgCisrI2luY2x1ZGUgPGNzdHJpbmc+CisgI2luY2x1ZGUg ImJ1aWxkL2J1aWxkX2NvbmZpZy5oIgorICNpbmNsdWRlICJzbmFwc2hvdC9jcHVfY29udGV4dC5o IgorICNpbmNsdWRlICJzbmFwc2hvdC9saW51eC9zaWduYWxfY29udGV4dC5oIgorQEAgLTE3NCw2 ICsxNzUsNzYgQEAgdm9pZCBJbml0aWFsaXplQ1BVQ29udGV4dE1JUFMoCisgCisgI2VuZGlmICAv LyBBUkNIX0NQVV9NSVBTX0ZBTUlMWSB8fCBET1hZR0VOCisgCisrI2lmIGRlZmluZWQoQVJDSF9D UFVfUFBDNjRfRkFNSUxZKSB8fCBET1hZR0VOCisrCisrLy8hIFxicmllZiBJbml0YWxpemVzIGEg Q1BVQ29udGV4dFBQQzY0IHN0cnVjdHVyZSBmcm9tIG5hdGl2ZSBjb250ZXh0CisrLy8hICAgICBz dHJ1Y3R1cmVzIG9uIExpbnV4LgorKy8vIQorKy8vISBccGFyYW1baW5dIHRocmVhZF9jb250ZXh0 IFRoZSBuYXRpdmUgdGhyZWFkIGNvbnRleHQuCisrLy8hIFxwYXJhbVtpbl0gZmxvYXRfY29udGV4 dCBUaGUgbmF0aXZlIGZsb2F0IGNvbnRleHQuCisrLy8hIFxwYXJhbVtpbl0gdmVjdG9yX2NvbnRl eHQgVGhlIG5hdGl2ZSB2ZWN0b3IgY29udGV4dC4KKysvLyEgXHBhcmFtW291dF0gY29udGV4dCBU aGUgQ1BVQ29udGV4dFBQQzY0IHN0cnVjdHVyZSB0byBpbml0YWxpemUuCisrdGVtcGxhdGUgPHR5 cGVuYW1lIFRyYWl0cz4KKyt2b2lkIEluaXRpYWxpemVDUFVDb250ZXh0UFBDNjQoCisrICAgIGNv bnN0IFRocmVhZENvbnRleHQ6OnQ2NF90JiB0aHJlYWRfY29udGV4dCwKKysgICAgY29uc3QgRmxv YXRDb250ZXh0OjpmNjRfdCYgZmxvYXRfY29udGV4dCwKKysgICAgY29uc3QgVmVjdG9yQ29udGV4 dDo6djY0X3QmIHZlY3Rvcl9jb250ZXh0LAorKyAgICB0eXBlbmFtZSBUcmFpdHM6OkNQVUNvbnRl eHQqIGNvbnRleHQpIHsKKysKKysgIG1lbWNweShjb250ZXh0LT5yZWdzLCB0aHJlYWRfY29udGV4 dC5ncHIsIHNpemVvZihjb250ZXh0LT5yZWdzKSk7CisrICBjb250ZXh0LT5uaXAgPSB0aHJlYWRf Y29udGV4dC5uaXA7CisrICBjb250ZXh0LT5tc3IgPSB0aHJlYWRfY29udGV4dC5tc3I7CisrICBj b250ZXh0LT5jY3IgPSB0aHJlYWRfY29udGV4dC5jY3I7CisrICBjb250ZXh0LT54ZXIgPSB0aHJl YWRfY29udGV4dC54ZXI7CisrICBjb250ZXh0LT5sbmsgPSB0aHJlYWRfY29udGV4dC5sbms7Cisr ICBjb250ZXh0LT5jdHIgPSB0aHJlYWRfY29udGV4dC5jdHI7CisrCisrICBtZW1jcHkoY29udGV4 dC0+ZnByZWdzLCBmbG9hdF9jb250ZXh0LmZwcmVncywgc2l6ZW9mKGNvbnRleHQtPmZwcmVncykp OworKyAgY29udGV4dC0+ZnBzY3IgPSBmbG9hdF9jb250ZXh0LmZwc2NyOworKworKyAgZm9yICh1 aW50OF90IGkgPSAwOyBpIDwgMzI7IGkrKykgeworKyAgICBjb250ZXh0LT52cmVncy5zYXZlX3Zy W2ldID0geworKyAgICAgICgoKHVpbnQ2NF90KXZlY3Rvcl9jb250ZXh0LnZycmVnc1tpXVswXSkg PDwgMzIpIHwKKysgICAgICAgIHZlY3Rvcl9jb250ZXh0LnZycmVnc1tpXVsxXSwKKysgICAgICAo KCh1aW50NjRfdCl2ZWN0b3JfY29udGV4dC52cnJlZ3NbaV1bMl0pIDw8IDMyKSB8CisrICAgICAg ICB2ZWN0b3JfY29udGV4dC52cnJlZ3NbaV1bM10KKysgICAgfTsKKysgIH0KKysgIGNvbnRleHQt PnZyZWdzLnNhdmVfdnJzYXZlID0gdmVjdG9yX2NvbnRleHQudnJzYXZlOworKyAgY29udGV4dC0+ dnJlZ3Muc2F2ZV92c2NyID0gezAsICh1aW50NjRfdCl2ZWN0b3JfY29udGV4dC52c2NyLnZzY3Jf d29yZH07CisrfQorKworK3RlbXBsYXRlIDx0eXBlbmFtZSBUcmFpdHM+Cisrdm9pZCBJbml0aWFs aXplQ1BVQ29udGV4dFBQQzY0KAorKyAgICBjb25zdCBTaWduYWxUaHJlYWRDb250ZXh0NjQgJnRo cmVhZF9jb250ZXh0LAorKyAgICBjb25zdCBTaWduYWxGbG9hdENvbnRleHQ2NCAmZmxvYXRfY29u dGV4dCwKKysgICAgY29uc3QgU2lnbmFsVmVjdG9yQ29udGV4dDY0ICZ2ZWN0b3JfY29udGV4dCwK KysgICAgdHlwZW5hbWUgVHJhaXRzOjpDUFVDb250ZXh0KiBjb250ZXh0KSB7CisrCisrICBtZW1j cHkoY29udGV4dC0+cmVncywgdGhyZWFkX2NvbnRleHQucmVncywgc2l6ZW9mKGNvbnRleHQtPnJl Z3MpKTsKKysgIGNvbnRleHQtPm5pcCA9IHRocmVhZF9jb250ZXh0Lm5pcDsKKysgIGNvbnRleHQt Pm1zciA9IHRocmVhZF9jb250ZXh0Lm1zcjsKKysgIGNvbnRleHQtPmNjciA9IHRocmVhZF9jb250 ZXh0LmNjcjsKKysgIGNvbnRleHQtPnhlciA9IHRocmVhZF9jb250ZXh0LnhlcjsKKysgIGNvbnRl eHQtPmxuayA9IHRocmVhZF9jb250ZXh0LmxuazsKKysgIGNvbnRleHQtPmN0ciA9IHRocmVhZF9j b250ZXh0LmN0cjsKKysKKysgIG1lbWNweShjb250ZXh0LT5mcHJlZ3MsIGZsb2F0X2NvbnRleHQu cmVncywgc2l6ZW9mKGNvbnRleHQtPmZwcmVncykpOworKyAgY29udGV4dC0+ZnBzY3IgPSBmbG9h dF9jb250ZXh0LmZwc2NyOworKworKyAgZm9yICh1aW50OF90IGkgPSAwOyBpIDwgMzI7IGkrKykg eworKyAgICBjb250ZXh0LT52cmVncy5zYXZlX3ZyW2ldID0geworKyAgICAgICgoKHVpbnQ2NF90 KXZlY3Rvcl9jb250ZXh0LnZycmVnc1tpXVswXSkgPDwgMzIpIHwKKysgICAgICAgIHZlY3Rvcl9j b250ZXh0LnZycmVnc1tpXVsxXSwKKysgICAgICAoKCh1aW50NjRfdCl2ZWN0b3JfY29udGV4dC52 cnJlZ3NbaV1bMl0pIDw8IDMyKSB8CisrICAgICAgICB2ZWN0b3JfY29udGV4dC52cnJlZ3NbaV1b M10KKysgICAgfTsKKysgIH0KKysgIGNvbnRleHQtPnZyZWdzLnNhdmVfdnJzYXZlID0gdmVjdG9y X2NvbnRleHQudnJzYXZlOworKyAgY29udGV4dC0+dnJlZ3Muc2F2ZV92c2NyID0gezAsICh1aW50 NjRfdCl2ZWN0b3JfY29udGV4dC52c2NyLnZzY3Jfd29yZH07CisrfQorKworKyNlbmRpZgorIH0g IC8vIG5hbWVzcGFjZSBpbnRlcm5hbAorIH0gIC8vIG5hbWVzcGFjZSBjcmFzaHBhZAorIAorLS0t IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3Nu YXBzaG90L2xpbnV4L2RlYnVnX3JlbmRlenZvdXNfdGVzdC5jYworKysrIGIvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2Rl YnVnX3JlbmRlenZvdXNfdGVzdC5jYworQEAgLTE5Miw2ICsxOTIsOCBAQCB2b2lkIFRlc3RBZ2Fp bnN0VGFyZ2V0KFB0cmFjZUNvbm5lY3Rpb24qCisgICAgICAgICAgICAgICBkZXZpY2UgPT0gMCAm JiBpbm9kZSA9PSAwICYmIG1hcHBpbmdfbmFtZSA9PSAiW3Zkc29dIjsKKyAjaWYgZGVmaW5lZChB UkNIX0NQVV9YODYpCisgICAgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgY2hhciBrUHJlZml4W10g PSAibGludXgtZ2F0ZS5zby4iOworKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjQpCisrICAg ICAgICAgIHN0YXRpYyBjb25zdGV4cHIgY2hhciBrUHJlZml4W10gPSAibGludXgtdmRzbzY0LnNv LiI7CisgI2Vsc2UKKyAgICAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBjaGFyIGtQcmVmaXhbXSA9 ICJsaW51eC12ZHNvLnNvLiI7CisgI2VuZGlmCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0v dGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvZXhjZXB0aW9uX3Nu YXBzaG90X2xpbnV4LmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkv Y3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4 LmNjCitAQCAtMzIzLDYgKzMyMyw2OSBAQCBib29sIEV4Y2VwdGlvblNuYXBzaG90TGludXg6OlJl YWRDb250ZXh0CisgICAgICAgcmVhZGVyLCBjb250ZXh0X2FkZHJlc3MsIGNvbnRleHRfLm1pcHM2 NCk7CisgfQorIAorKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKworK3Rl bXBsYXRlIDx0eXBlbmFtZSBUcmFpdHM+Cisrc3RhdGljIGJvb2wgUmVhZENvbnRleHQoUHJvY2Vz c1JlYWRlckxpbnV4KiByZWFkZXIsCisrICAgICAgICAgICAgICAgICAgICAgICAgTGludXhWTUFk ZHJlc3MgY29udGV4dF9hZGRyZXNzLAorKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVuYW1l IFRyYWl0czo6Q1BVQ29udGV4dCogZGVzdF9jb250ZXh0KSB7CisrICBjb25zdCBQcm9jZXNzTWVt b3J5KiBtZW1vcnkgPSByZWFkZXItPk1lbW9yeSgpOworKworKyAgTGludXhWTUFkZHJlc3MgZ3Bf cmVnc19hZGRyZXNzID0gY29udGV4dF9hZGRyZXNzICsKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG9mZnNldG9mKFVDb250ZXh0LCBtY29udGV4dCkgKworKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0b2YodHlwZW5hbWUgVHJhaXRzOjpNQ29udGV4 dCwgZ3BfcmVncyk7CisrCisrICB0eXBlbmFtZSBUcmFpdHM6OlNpZ25hbFRocmVhZENvbnRleHQg dGhyZWFkX2NvbnRleHQ7CisrICBpZiAoIW1lbW9yeS0+UmVhZChncF9yZWdzX2FkZHJlc3MsIHNp emVvZih0aHJlYWRfY29udGV4dCksICZ0aHJlYWRfY29udGV4dCkpIHsKKysgICAgTE9HKEVSUk9S KSA8PCAiQ291bGRuJ3QgcmVhZCBncF9yZWdzISI7CisrICAgIHJldHVybiBmYWxzZTsKKysgIH0K KysKKysgIExpbnV4Vk1BZGRyZXNzIGZwX3JlZ3NfYWRkcmVzcyA9IGNvbnRleHRfYWRkcmVzcyAr CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRvZihVQ29udGV4dCwg bWNvbnRleHQpICsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9m KHR5cGVuYW1lIFRyYWl0czo6TUNvbnRleHQsIGZwX3JlZ3MpOworKworKyAgdHlwZW5hbWUgVHJh aXRzOjpTaWduYWxGbG9hdENvbnRleHQgZnBfY29udGV4dDsKKysgIGlmICghbWVtb3J5LT5SZWFk KGZwX3JlZ3NfYWRkcmVzcywgc2l6ZW9mKGZwX2NvbnRleHQpLCAmZnBfY29udGV4dCkpIHsKKysg ICAgTE9HKEVSUk9SKSA8PCAiQ291bGRuJ3QgcmVhZCBmcF9yZWdzISI7CisrICAgIHJldHVybiBm YWxzZTsKKysgIH0KKysKKysgIExpbnV4Vk1BZGRyZXNzIHZfcmVnc19wdHJfYWRkcmVzcyA9IGNv bnRleHRfYWRkcmVzcyArCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNl dG9mKFVDb250ZXh0LCBtY29udGV4dCkgKworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBvZmZzZXRvZih0eXBlbmFtZSBUcmFpdHM6Ok1Db250ZXh0LCB2bXhfcmVzZXJ2ZSkgKyA4 OworKworKyAgdHlwZW5hbWUgVHJhaXRzOjpTaWduYWxWZWN0b3JDb250ZXh0IHZfY29udGV4dDsK KysgIGlmICghbWVtb3J5LT5SZWFkKHZfcmVnc19wdHJfYWRkcmVzcywgc2l6ZW9mKHZfY29udGV4 dCksICZ2X2NvbnRleHQpKSB7CisrICAgIExPRyhFUlJPUikgPDwgIkNvdWxkbid0IHJlYWQgdl9y ZWdzISI7CisrICAgIHJldHVybiBmYWxzZTsKKysgIH0KKysKKysgIEluaXRpYWxpemVDUFVDb250 ZXh0UFBDNjQ8Q29udGV4dFRyYWl0czY0Pih0aHJlYWRfY29udGV4dCwgZnBfY29udGV4dCwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdl9jb250ZXh0LCBkZXN0X2NvbnRleHQpOworKwor KyAgcmV0dXJuIHRydWU7CisrfQorKworK3RlbXBsYXRlPD4KKytib29sIEV4Y2VwdGlvblNuYXBz aG90TGludXg6OlJlYWRDb250ZXh0PENvbnRleHRUcmFpdHM2ND4oCisrICAgIFByb2Nlc3NSZWFk ZXJMaW51eCogcmVhZGVyLAorKyAgICBMaW51eFZNQWRkcmVzcyBjb250ZXh0X2FkZHJlc3MpIHsK KysgIGNvbnRleHRfLmFyY2hpdGVjdHVyZSA9IGtDUFVBcmNoaXRlY3R1cmVQUEM2NDsKKysgIGNv bnRleHRfLnBwYzY0ID0gJmNvbnRleHRfdW5pb25fLnBwYzY0OworKworKyAgcmV0dXJuIGludGVy bmFsOjpSZWFkQ29udGV4dDxDb250ZXh0VHJhaXRzNjQ+KAorKyAgICAgIHJlYWRlciwgY29udGV4 dF9hZGRyZXNzLCBjb250ZXh0Xy5wcGM2NCk7CisrfQorKworK3RlbXBsYXRlPD4KKytib29sIEV4 Y2VwdGlvblNuYXBzaG90TGludXg6OlJlYWRDb250ZXh0PENvbnRleHRUcmFpdHMzMj4oCisrICAg IFByb2Nlc3NSZWFkZXJMaW51eCogcmVhZGVyLAorKyAgICBMaW51eFZNQWRkcmVzcyBjb250ZXh0 X2FkZHJlc3MpIHsKKysgIC8vIFBQQzY0IGlzIDY0LWJpdAorKyAgcmV0dXJuIGZhbHNlOworK30K KysKKyAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4Nl9GQU1JTFkKKyAKKyBib29sIEV4Y2VwdGlvblNu YXBzaG90TGludXg6OkluaXRpYWxpemUoUHJvY2Vzc1JlYWRlckxpbnV4KiBwcm9jZXNzX3JlYWRl ciwKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFz aHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25fc25hcHNob3RfbGludXguaAorKysrIGIvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90 L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51eC5oCitAQCAtODQsNiArODQsOCBAQCBjbGFz cyBFeGNlcHRpb25TbmFwc2hvdExpbnV4IGZpbmFsIDogcHViCisgI2VsaWYgZGVmaW5lZChBUkNI X0NQVV9NSVBTX0ZBTUlMWSkKKyAgICAgQ1BVQ29udGV4dE1JUFMgbWlwc2VsOworICAgICBDUFVD b250ZXh0TUlQUzY0IG1pcHM2NDsKKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlM WSkKKysgICAgQ1BVQ29udGV4dFBQQzY0IHBwYzY0OworICNlbmRpZgorICAgfSBjb250ZXh0X3Vu aW9uXzsKKyAgIENQVUNvbnRleHQgY29udGV4dF87CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21p dW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvZXhjZXB0aW9u X3NuYXBzaG90X2xpbnV4X3Rlc3QuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25fc25hcHNo b3RfbGludXhfdGVzdC5jYworQEAgLTI5Niw3ICsyOTYsMjggQEAgdm9pZCBFeHBlY3RDb250ZXh0 KGNvbnN0IENQVUNvbnRleHQmIGFjdAorICAgICAgICAgICAgIDApOworICN1bmRlZiBDUFVfQVJD SF9OQU1FCisgfQorKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorK3VzaW5n IE5hdGl2ZUNQVUNvbnRleHQgPSB1Y29udGV4dF90OworIAorK3ZvaWQgSW5pdGlhbGl6ZUNvbnRl eHQoTmF0aXZlQ1BVQ29udGV4dCogY29udGV4dCkgeworKyAgZm9yIChzaXplX3QgcmVnID0gMDsg cmVnIDwgMzI7ICsrcmVnKSB7CisrICAgIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbcmVn XSA9IHJlZzsKKysgIH0KKysKKysgIG1lbXNldCgmY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVn cywgNDQsCisrICAgICAgc2l6ZW9mKGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3MpKTsKKyt9 CisrCisrdm9pZCBFeHBlY3RDb250ZXh0KGNvbnN0IENQVUNvbnRleHQmIGFjdHVhbCwgY29uc3Qg TmF0aXZlQ1BVQ29udGV4dCYgZXhwZWN0ZWQpIHsKKysgIEVYUEVDVF9FUShhY3R1YWwuYXJjaGl0 ZWN0dXJlLCBrQ1BVQXJjaGl0ZWN0dXJlUFBDNjQpOworKworKyAgZm9yIChzaXplX3QgcmVnID0g MDsgcmVnIDwgMzI7ICsrcmVnKSB7CisrICAgIEVYUEVDVF9FUShhY3R1YWwucHBjNjQtPnJlZ3Nb cmVnXSwgZXhwZWN0ZWQudWNfbWNvbnRleHQuZ3BfcmVnc1tyZWddKTsKKysgIH0KKysKKysgIEVY UEVDVF9FUShtZW1jbXAoYWN0dWFsLnBwYzY0LT5mcHJlZ3MsIGV4cGVjdGVkLnVjX21jb250ZXh0 LmZwX3JlZ3MsCisrICAgICAgICAgICAgc2l6ZW9mKGFjdHVhbC5wcGM2NC0+ZnByZWdzKSksIDAp OworK30KKyAjZWxzZQorICNlcnJvciBQb3J0LgorICNlbmRpZgorLS0tIGEvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3By b2Nlc3NfcmVhZGVyX2xpbnV4LmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRf cGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvcHJvY2Vzc19yZWFkZXJfbGlu dXguY2MKK0BAIC0xMDgsNiArMTA4LDggQEAgdm9pZCBQcm9jZXNzUmVhZGVyTGludXg6OlRocmVh ZDo6SW5pdGlhbAorICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCisgICBzdGFj a19wb2ludGVyID0gcmVhZGVyLT5JczY0Qml0KCkgPyB0aHJlYWRfaW5mby50aHJlYWRfY29udGV4 dC50NjQucmVnc1syOV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRo cmVhZF9pbmZvLnRocmVhZF9jb250ZXh0LnQzMi5yZWdzWzI5XTsKKysjZWxpZiBkZWZpbmVkKEFS Q0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKysgIHN0YWNrX3BvaW50ZXIgPSB0aHJlYWRfaW5mby50aHJl YWRfY29udGV4dC50NjQuZ3ByWzFdOworICNlbHNlCisgI2Vycm9yIFBvcnQuCisgI2VuZGlmCist LS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQv c25hcHNob3QvbGludXgvc2lnbmFsX2NvbnRleHQuaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3NpZ25hbF9j b250ZXh0LmgKK0BAIC00MjIsNiArNDIyLDkzIEBAIHN0YXRpY19hc3NlcnQob2Zmc2V0b2YoVUNv bnRleHQ8Q29udGV4dFQKKyAgICAgICAgICAgICAgICJjb250ZXh0IG9mZnNldCBtaXNtYXRjaCIp OworICNlbmRpZgorIAorKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKwor K3N0cnVjdCBTaWduYWxUaHJlYWRDb250ZXh0NjQgeworKyAgdWludDY0X3QgcmVnc1szMl07Cisr ICB1aW50NjRfdCBuaXA7CisrICB1aW50NjRfdCBtc3I7CisrICB1aW50NjRfdCBvcmlnX3IzOwor KyAgdWludDY0X3QgY3RyOworKyAgdWludDY0X3QgbG5rOworKyAgdWludDY0X3QgeGVyOworKyAg dWludDY0X3QgY2NyOworKyAgdWludDY0X3Qgc29mdGU7CisrICB1aW50NjRfdCB0cmFwOworKyAg dWludDY0X3QgZGFyOworKyAgdWludDY0X3QgZHNpc3I7CisrICB1aW50NjRfdCByZXN1bHQ7Cisr ICB1aW50NjRfdCBkc2NyOworKyAgdWludDY0X3QgZnByMFszXTsKKyt9OworKworK3N0cnVjdCBT aWduYWxGbG9hdENvbnRleHQ2NCB7CisrICBkb3VibGUgcmVnc1szMl07CisrICBkb3VibGUgZnBz Y3I7CisrfTsKKysKKytzdHJ1Y3QgU2lnbmFsVmVjdG9yQ29udGV4dDY0IHsKKysgIGludDMyX3Qg dnJyZWdzWzMyXVs0XTsKKysgIHN0cnVjdCB7CisrICAgIGludDMyX3QgX19wYWRbM107CisrICAg IGludDMyX3QgdnNjcl93b3JkOworKyAgfSB2c2NyOworKyAgaW50MzJfdCB2cnNhdmU7CisrICBp bnQzMl90IF9fcGFkWzNdOworK30gX19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18oMTYpKSk7Cisr CisrCisrI3ByYWdtYSBwYWNrKHBvcCkKKytzdHJ1Y3QgTUNvbnRleHQ2NCB7CisrICB1aW50NjRf dCByZXNlcnZlZFs0XTsKKysgIGludDMyX3Qgc2lnbmFsOworKyAgaW50MzJfdCBfX3BhZDA7Cisr ICB1aW50NjRfdCBoYW5kbGVyOworKyAgdWludDY0X3Qgb2xkbWFzazsKKysgIHVpbnQ2NF90IHB0 X3JlZ3NfcHRyOworKyAgU2lnbmFsVGhyZWFkQ29udGV4dDY0IGdwX3JlZ3M7CisrICBTaWduYWxG bG9hdENvbnRleHQ2NCAgZnBfcmVnczsKKysgIFNpZ25hbFZlY3RvckNvbnRleHQ2NCAqdl9yZWdz OworKyNpZmRlZiBfX0dMSUJDX18KKysgIGludDY0X3Qgdm14X3Jlc2VydmVbNjldOworKyNlbHNl CisrICBpbnQ2NF90IHZteF9yZXNlcnZlWzEwMV07CisrI2VuZGlmCisrfTsKKysKKytzdHJ1Y3Qg Q29udGV4dFRyYWl0czY0IDogcHVibGljIFRyYWl0czY0IHsKKysgIHVzaW5nIE1Db250ZXh0ID0g TUNvbnRleHQ2NDsKKysgIHVzaW5nIFNpZ25hbFRocmVhZENvbnRleHQgPSBTaWduYWxUaHJlYWRD b250ZXh0NjQ7CisrICB1c2luZyBTaWduYWxGbG9hdENvbnRleHQgPSBTaWduYWxGbG9hdENvbnRl eHQ2NDsKKysgIHVzaW5nIFNpZ25hbFZlY3RvckNvbnRleHQgPSBTaWduYWxWZWN0b3JDb250ZXh0 NjQ7CisrICB1c2luZyBDUFVDb250ZXh0ID0gQ1BVQ29udGV4dFBQQzY0OworK307CisrCisrc3Ry dWN0IENvbnRleHRUcmFpdHMzMiA6IHB1YmxpYyBUcmFpdHMzMiB7fTsKKysKKytzdHJ1Y3QgVUNv bnRleHQgeworKyAgdWludDY0X3QgZmxhZ3M7CisrICB1aW50NjRfdCBsaW5rOworKyAgU2lnbmFs U3RhY2s8Q29udGV4dFRyYWl0czY0PiBzdGFjazsKKysgIFNpZ3NldDxDb250ZXh0VHJhaXRzNjQ+ IHNpZ21hc2s7CisrICBNQ29udGV4dDY0IG1jb250ZXh0OworK307CisrI3ByYWdtYSBwYWNrKHB1 c2gsIDEpCisrCisrc3RhdGljX2Fzc2VydChzaXplb2YoVUNvbnRleHQpID09IHNpemVvZih1Y29u dGV4dF90KSwKKysgICAgICAgICAgICAgICJ1Y29udGV4dF90IHNpemUgbWlzbWF0Y2giKTsKKytz dGF0aWNfYXNzZXJ0KHNpemVvZihNQ29udGV4dDY0KSA9PSBzaXplb2YobWNvbnRleHRfdCksCisr ICAgICAgICAgICAgICAibWNvbnRleHRfdCBzaXplIG1pc21hdGNoIik7Cisrc3RhdGljX2Fzc2Vy dChzaXplb2YoU2lnbmFsVGhyZWFkQ29udGV4dDY0KSA9PSBzaXplb2YoZ3JlZ3NldF90KSwKKysg ICAgICAgICAgICAgICJncmVnc2V0X3Qgc2l6ZSBtaXNtYXRjaCIpOworK3N0YXRpY19hc3NlcnQo c2l6ZW9mKFNpZ25hbEZsb2F0Q29udGV4dDY0KSA9PSBzaXplb2YoZnByZWdzZXRfdCksCisrICAg ICAgICAgICAgICAiZnByZWdzZXRfdCBzaXplIG1pc21hdGNoIik7Cisrc3RhdGljX2Fzc2VydChz aXplb2YoU2lnbmFsVmVjdG9yQ29udGV4dDY0KSA9PSBzaXplb2YodnJyZWdzZXRfdCksCisrICAg ICAgICAgICAgICAidnJyZWdzZXRfdCBzaXplIG1pc21hdGNoIik7Cisrc3RhdGljX2Fzc2VydChv ZmZzZXRvZihVQ29udGV4dCwgbWNvbnRleHQpID09CisrICAgICAgICAgICAgICBvZmZzZXRvZih1 Y29udGV4dF90LCB1Y19tY29udGV4dCksICJtY29udGV4dCBvZmZzZXQgbWlzbWF0Y2giKTsKKytz dGF0aWNfYXNzZXJ0KG9mZnNldG9mKE1Db250ZXh0NjQsIGdwX3JlZ3MpID09CisrICAgICAgICAg ICAgICBvZmZzZXRvZihtY29udGV4dF90LCBncF9yZWdzKSwgImdwX3JlZ3Mgb2Zmc2V0IG1pc21h dGNoIik7CisgI2Vsc2UKKyAjZXJyb3IgUG9ydC4KKyAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4Nl9G QU1JTFkKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9j cmFzaHBhZC9zbmFwc2hvdC9saW51eC9zeXN0ZW1fc25hcHNob3RfbGludXguY2MKKysrKyBiL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hv dC9saW51eC9zeXN0ZW1fc25hcHNob3RfbGludXguY2MKK0BAIC0yMDQsNiArMjA0LDggQEAgQ1BV QXJjaGl0ZWN0dXJlIFN5c3RlbVNuYXBzaG90TGludXg6OkdldAorICNlbGlmIGRlZmluZWQoQVJD SF9DUFVfTUlQU19GQU1JTFkpCisgICByZXR1cm4gcHJvY2Vzc19yZWFkZXJfLT5JczY0Qml0KCkg PyBrQ1BVQXJjaGl0ZWN0dXJlTUlQUzY0RUwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA6IGtDUFVBcmNoaXRlY3R1cmVNSVBTRUw7CisrI2VsaWYgZGVmaW5lZChBUkNIX0NQ VV9QUEM2NF9GQU1JTFkpCisrICByZXR1cm4ga0NQVUFyY2hpdGVjdHVyZVBQQzY0OworICNlbHNl CisgI2Vycm9yIHBvcnQgdG8geW91ciBhcmNoaXRlY3R1cmUKKyAjZW5kaWYKK0BAIC0yMTksNiAr MjIxLDkgQEAgdWludDMyX3QgU3lzdGVtU25hcHNob3RMaW51eDo6Q1BVUmV2aXNpbworICNlbGlm IGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCisgICAvLyBOb3QgaW1wbGVtZW50YWJsZSBv biBNSVBTCisgICByZXR1cm4gMDsKKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlM WSkKKysgIC8vIE5vdCB5ZXQgaW1wbGVtZW50ZWQgb24gUFBDNjQKKysgIHJldHVybiAwOworICNl bHNlCisgI2Vycm9yIHBvcnQgdG8geW91ciBhcmNoaXRlY3R1cmUKKyAjZW5kaWYKK0BAIC0yMzks NiArMjQ0LDkgQEAgc3RkOjpzdHJpbmcgU3lzdGVtU25hcHNob3RMaW51eDo6Q1BVVmVuZAorICNl bGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCisgICAvLyBOb3QgaW1wbGVtZW50YWJs ZSBvbiBNSVBTCisgICByZXR1cm4gc3RkOjpzdHJpbmcoKTsKKysjZWxpZiBkZWZpbmVkKEFSQ0hf Q1BVX1BQQzY0X0ZBTUlMWSkKKysgIC8vIE5vdCB5ZXQgaW1wbGVtZW50ZWQgb24gUFBDNjQKKysg IHJldHVybiBzdGQ6OnN0cmluZygpOworICNlbHNlCisgI2Vycm9yIHBvcnQgdG8geW91ciBhcmNo aXRlY3R1cmUKKyAjZW5kaWYKK0BAIC0zNzIsNiArMzgwLDkgQEAgYm9vbCBTeXN0ZW1TbmFwc2hv dExpbnV4OjpOWEVuYWJsZWQoKSBjbworICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1J TFkpCisgICAvLyBOb3QgaW1wbGVtZW50YWJsZSBvbiBNSVBTCisgICByZXR1cm4gZmFsc2U7Cisr I2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisrICAvLyBOb3QgeWV0IGltcGxl bWVudGVkIG9uIFBQQzY0CisrICByZXR1cm4gZmFsc2U7CisgI2Vsc2UKKyAjZXJyb3IgUG9ydC4K KyAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4Nl9GQU1JTFkKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC90ZXN0X21v ZHVsZXMuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBh ZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC90ZXN0X21vZHVsZXMuY2MKK0BAIC0xMTAsNiArMTEw LDggQEAgYm9vbCBXcml0ZVRlc3RNb2R1bGUoY29uc3QgYmFzZTo6RmlsZVBhdAorICAgbW9kdWxl LmVoZHIuZV9tYWNoaW5lID0gRU1fQUFSQ0g2NDsKKyAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01J UFNFTCkgfHwgZGVmaW5lZChBUkNIX0NQVV9NSVBTNjRFTCkKKyAgIG1vZHVsZS5laGRyLmVfbWFj aGluZSA9IEVNX01JUFM7CisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NCkKKysgIG1vZHVs ZS5laGRyLmVfbWFjaGluZSA9IEVNX1BQQzY0OworICNlbmRpZgorIAorICAgbW9kdWxlLmVoZHIu ZV92ZXJzaW9uID0gRVZfQ1VSUkVOVDsKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC90aHJlYWRfc25hcHNob3Rf bGludXguY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBh ZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC90aHJlYWRfc25hcHNob3RfbGludXguY2MKK0BAIC0x ODYsNiArMTg2LDE0IEBAIGJvb2wgVGhyZWFkU25hcHNob3RMaW51eDo6SW5pdGlhbGl6ZShQcm8K KyAgICAgICAgIHRocmVhZC50aHJlYWRfaW5mby5mbG9hdF9jb250ZXh0LmYzMiwKKyAgICAgICAg IGNvbnRleHRfLm1pcHNlbCk7CisgICB9CisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9G QU1JTFkpCisrICBjb250ZXh0Xy5hcmNoaXRlY3R1cmUgPSBrQ1BVQXJjaGl0ZWN0dXJlUFBDNjQ7 CisrICBjb250ZXh0Xy5wcGM2NCA9ICZjb250ZXh0X3VuaW9uXy5wcGM2NDsKKysgIEluaXRpYWxp emVDUFVDb250ZXh0UFBDNjQ8Q29udGV4dFRyYWl0czY0PigKKysgICAgICB0aHJlYWQudGhyZWFk X2luZm8udGhyZWFkX2NvbnRleHQudDY0LAorKyAgICAgIHRocmVhZC50aHJlYWRfaW5mby5mbG9h dF9jb250ZXh0LmY2NCwKKysgICAgICB0aHJlYWQudGhyZWFkX2luZm8udmVjdG9yX2NvbnRleHQu djY0LAorKyAgICAgIGNvbnRleHRfLnBwYzY0KTsKKyAjZWxzZQorICNlcnJvciBQb3J0LgorICNl bmRpZgorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2Ny YXNocGFkL3NuYXBzaG90L2xpbnV4L3RocmVhZF9zbmFwc2hvdF9saW51eC5oCisrKysgYi9zcmMv M3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3Qv bGludXgvdGhyZWFkX3NuYXBzaG90X2xpbnV4LmgKK0BAIC02OCw2ICs2OCw4IEBAIGNsYXNzIFRo cmVhZFNuYXBzaG90TGludXggZmluYWwgOiBwdWJsaWMKKyAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BV X01JUFNfRkFNSUxZKQorICAgICBDUFVDb250ZXh0TUlQUyBtaXBzZWw7CisgICAgIENQVUNvbnRl eHRNSVBTNjQgbWlwczY0OworKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQor KyAgICBDUFVDb250ZXh0UFBDNjQgcHBjNjQ7CisgI2Vsc2UKKyAjZXJyb3IgUG9ydC4KKyAjZW5k aWYgIC8vIEFSQ0hfQ1BVX1g4Nl9GQU1JTFkKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90 aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L2F1eGlsaWFyeV92ZWN0b3Iu Y2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFz aHBhZC91dGlsL2xpbnV4L2F1eGlsaWFyeV92ZWN0b3IuY2MKK0BAIC01Niw2ICs1NiwxMSBAQCBi b29sIEF1eGlsaWFyeVZlY3Rvcjo6UmVhZChQdHJhY2VDb25uZWN0CisgICAgIGlmICh0eXBlID09 IEFUX0lHTk9SRSkgeworICAgICAgIGNvbnRpbnVlOworICAgICB9CisrI2lmIGRlZmluZWQoQVJD SF9DUFVfUFBDNjRfRkFNSUxZKQorKyAgICBpZiAodHlwZSA9PSBBVF9JR05PUkVQUEMpIHsKKysg ICAgICBjb250aW51ZTsKKysgICAgfQorKyNlbmRpZgorICAgICBpZiAoIU1hcEluc2VydE9yUmVw bGFjZSgmdmFsdWVzXywgdHlwZSwgdmFsdWUsIG51bGxwdHIpKSB7CisgICAgICAgTE9HKEVSUk9S KSA8PCAiZHVwbGljYXRlIGF1eHYgZW50cnkiOworICAgICAgIHJldHVybiBmYWxzZTsKKy0tLSBh L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGls L2xpbnV4L3B0cmFjZXIuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3B0cmFjZXIuY2MKK0BAIC00MDEsNiArNDAx LDY0IEBAIGJvb2wgR2V0VGhyZWFkQXJlYTY0KHBpZF90IHRpZCwKKyAgIHJldHVybiB0cnVlOwor IH0KKyAKKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKysvLyBQUEM2NCBo YXMgaGFkIEhBVkVfQVJDSF9UUkFDRUhPT0sgc2V0IHNpbmNlIDIuNi4yNyAoZXZlbiBiZWZvcmUg eDg2IGhhZCBpdCkuCisrLy8gVGhhdCBtZWFucyB3ZSBjYW4gc2ltcGx5IHVzZSBQVFJBQ0VfR0VU UkVHRVNFVC4KKysKKyt0ZW1wbGF0ZSA8dHlwZW5hbWUgRGVzdGluYXRpb24+CisrYm9vbCBHZXRS ZWdpc3RlclNldChwaWRfdCB0aWQsIGludCBzZXQsIERlc3RpbmF0aW9uKiBkZXN0LCBib29sIGNh bl9sb2cpIHsKKysgIGlvdmVjIGlvdjsKKysgIGlvdi5pb3ZfYmFzZSA9IHJlaW50ZXJwcmV0X2Nh c3Q8dm9pZCo+KGRlc3QpOworKyAgaW92Lmlvdl9sZW4gPSBzaXplb2YoKmRlc3QpOworKyAgaWYg KHB0cmFjZShQVFJBQ0VfR0VUUkVHU0VULCB0aWQsIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHNl dCksICZpb3YpICE9IDApIHsKKysgICAgUExPR19JRihFUlJPUiwgY2FuX2xvZykgPDwgInB0cmFj ZSI7CisrICAgIHJldHVybiBmYWxzZTsKKysgIH0KKysgIGlmIChpb3YuaW92X2xlbiAhPSBzaXpl b2YoKmRlc3QpKSB7CisrICAgIExPR19JRihFUlJPUiwgY2FuX2xvZykgPDwgIlVuZXhwZWN0ZWQg cmVnaXN0ZXJzIHNpemUiOworKyAgICByZXR1cm4gZmFsc2U7CisrICB9CisrICByZXR1cm4gdHJ1 ZTsKKyt9CisrCisrYm9vbCBHZXRWZWN0b3JSZWdpc3RlcnM2NChwaWRfdCB0aWQsCisrICAgICAg ICAgICAgICAgICAgICAgICAgICBWZWN0b3JDb250ZXh0KiBjb250ZXh0LAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgYm9vbCBjYW5fbG9nKSB7CisrICByZXR1cm4gR2V0UmVnaXN0ZXJTZXQo dGlkLCBOVF9QUENfVk1YLCAmY29udGV4dC0+djY0LCBjYW5fbG9nKTsKKyt9CisrCisrYm9vbCBH ZXRGbG9hdGluZ1BvaW50UmVnaXN0ZXJzNjQocGlkX3QgdGlkLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEZsb2F0Q29udGV4dCogY29udGV4dCwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBib29sIGNhbl9sb2cpIHsKKysgIHJldHVybiBHZXRSZWdpc3RlclNl dCh0aWQsIE5UX1BSRlBSRUcsICZjb250ZXh0LT5mNjQsIGNhbl9sb2cpOworK30KKysKKytib29s IEdldFRocmVhZEFyZWE2NChwaWRfdCB0aWQsCisrICAgICAgICAgICAgICAgICAgICAgY29uc3Qg VGhyZWFkQ29udGV4dCYgY29udGV4dCwKKysgICAgICAgICAgICAgICAgICAgICBMaW51eFZNQWRk cmVzcyogYWRkcmVzcywKKysgICAgICAgICAgICAgICAgICAgICBib29sIGNhbl9sb2cpIHsKKysg IC8vIFBQQzY0IGRvZXNuJ3QgaGF2ZSBQVFJBQ0VfR0VUX1RIUkVBRF9BUkVBIHNpbmNlIHRoZSB0 aHJlYWQgcG9pbnRlcgorKyAgLy8gaXMgc3RvcmVkIGluIEdQUiAxMy4KKysgIFRocmVhZENvbnRl eHQ6OnQ2NF90IHRjOworKyAgaWYgKCFHZXRSZWdpc3RlclNldCh0aWQsIE5UX1BSU1RBVFVTLCAm dGMsIGNhbl9sb2cpKSB7CisrICAgIExPR19JRihFUlJPUiwgY2FuX2xvZykgPDwgIlVuYWJsZSB0 byBnZXQgdGhyZWFkIHBvaW50ZXIhIjsKKysgICAgcmV0dXJuIGZhbHNlOworKyAgfQorKworKyAg KmFkZHJlc3MgPSB0Yy5ncHJbMTNdOworKworKyAgcmV0dXJuIHRydWU7CisrfQorKworKy8vIFN0 dWJzIGZvciAzMi1iaXQgZnVuY3Rpb25zIG5vdCBhcHBsaWNhYmxlIG9uIFBQQzY0CisrYm9vbCBH ZXRGbG9hdGluZ1BvaW50UmVnaXN0ZXJzMzIocGlkX3QgdGlkLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEZsb2F0Q29udGV4dCogY29udGV4dCwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBib29sIGNhbl9sb2cpIHsgcmV0dXJuIGZhbHNlOyB9CisrYm9vbCBH ZXRUaHJlYWRBcmVhMzIocGlkX3QgdGlkLAorKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFRo cmVhZENvbnRleHQgJmNvbnRleHQsCisrICAgICAgICAgICAgICAgICAgICAgTGludXhWTUFkZHJl c3MgKmFkZHJlc3MsCisrICAgICAgICAgICAgICAgICAgICAgYm9vbCBjYW5fbG9nKSB7IHJldHVy biBmYWxzZTsgfQorKworICNlbHNlCisgI2Vycm9yIFBvcnQuCisgI2VuZGlmICAvLyBBUkNIX0NQ VV9YODZfRkFNSUxZCitAQCAtNDk3LDYgKzU1NSw5IEBAIGJvb2wgUHRyYWNlcjo6R2V0VGhyZWFk SW5mbyhwaWRfdCB0aWQsIFQKKyAgIGlmIChpc182NF9iaXRfKSB7CisgICAgIHJldHVybiBHZXRH ZW5lcmFsUHVycG9zZVJlZ2lzdGVyczY0KHRpZCwgJmluZm8tPnRocmVhZF9jb250ZXh0LCBjYW5f bG9nXykgJiYKKyAgICAgICAgICAgIEdldEZsb2F0aW5nUG9pbnRSZWdpc3RlcnM2NCh0aWQsICZp bmZvLT5mbG9hdF9jb250ZXh0LCBjYW5fbG9nXykgJiYKKysjaWYgZGVmaW5lZChBUkNIX0NQVV9Q UEM2NF9GQU1JTFkpCisrICAgICAgICAgICBHZXRWZWN0b3JSZWdpc3RlcnM2NCh0aWQsICZpbmZv LT52ZWN0b3JfY29udGV4dCwgY2FuX2xvZ18pICYmCisrI2VuZGlmCisgICAgICAgICAgICBHZXRU aHJlYWRBcmVhNjQodGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZm8tPnRocmVh ZF9jb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICZpbmZvLT50aHJlYWRfc3Bl Y2lmaWNfZGF0YV9hZGRyZXNzLAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvdGhyZWFkX2luZm8uaAorKysrIGIvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGlu dXgvdGhyZWFkX2luZm8uaAorQEAgLTM5LDYgKzM5LDEzIEBAIHN0cnVjdCB1c2VyX3ZmcF9leGMg eworICNpbmNsdWRlIDxhbmRyb2lkL2FwaS1sZXZlbC5oPgorICNlbmRpZgorIAorKyNpZiBkZWZp bmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKysjaW5jbHVkZSA8c3lzL3Vjb250ZXh0Lmg+Cisr I2lmICFkZWZpbmVkKF9fR0xJQkNfXykKKysjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorKyNlbmRp ZgorKyNlbmRpZgorKworIG5hbWVzcGFjZSBjcmFzaHBhZCB7CisgCisgLy8hIFxicmllZiBUaGUg c2V0IG9mIGdlbmVyYWwgcHVycG9zZSByZWdpc3RlcnMgZm9yIGFuIGFyY2hpdGVjdHVyZSBmYW1p bHkuCitAQCAtOTAsNiArOTcsOCBAQCB1bmlvbiBUaHJlYWRDb250ZXh0IHsKKyAgICAgdWludDMy X3QgY3AwX3N0YXR1czsKKyAgICAgdWludDMyX3QgY3AwX2NhdXNlOworICAgICB1aW50MzJfdCBw YWRkaW5nMV87CisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisrICAgIC8v IFBQQzY0IGlzIDY0LWJpdAorICNlbHNlCisgI2Vycm9yIFBvcnQuCisgI2VuZGlmICAvLyBBUkNI X0NQVV9YODZfRkFNSUxZCitAQCAtMTQzLDYgKzE1MiwyMSBAQCB1bmlvbiBUaHJlYWRDb250ZXh0 IHsKKyAgICAgdWludDY0X3QgY3AwX2JhZHZhZGRyOworICAgICB1aW50NjRfdCBjcDBfc3RhdHVz OworICAgICB1aW50NjRfdCBjcDBfY2F1c2U7CisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2 NF9GQU1JTFkpCisrICAgIC8vIFJlZmxlY3RzIHN0cnVjdCBwdF9yZWdzIGluIGFzbS9wdHJhY2Uu aC4KKysgICAgdWludDY0X3QgZ3ByWzMyXTsKKysgICAgdWludDY0X3QgbmlwOworKyAgICB1aW50 NjRfdCBtc3I7CisrICAgIHVpbnQ2NF90IG9yaWdfZ3ByMzsKKysgICAgdWludDY0X3QgY3RyOwor KyAgICB1aW50NjRfdCBsbms7CisrICAgIHVpbnQ2NF90IHhlcjsKKysgICAgdWludDY0X3QgY2Ny OworKyAgICB1aW50NjRfdCBzb2Z0ZTsKKysgICAgdWludDY0X3QgdHJhcDsKKysgICAgdWludDY0 X3QgZGFyOworKyAgICB1aW50NjRfdCBkc2lzcjsKKysgICAgdWludDY0X3QgcmVzdWx0OworICNl bHNlCisgI2Vycm9yIFBvcnQuCisgI2VuZGlmICAvLyBBUkNIX0NQVV9YODZfRkFNSUxZCitAQCAt MTU0LDYgKzE3OCw4IEBAIHVuaW9uIFRocmVhZENvbnRleHQgeworICAgdXNpbmcgTmF0aXZlVGhy ZWFkQ29udGV4dCA9IHVzZXJfcmVnczsKKyAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFN SUxZKQorIC8vIE5vIGFwcHJvcHJpYXRlIE5hdGl2ZVRocmVhZHNDb250ZXh0IHR5cGUgYXZhaWxh YmxlIGZvciBNSVBTCisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisrICB1 c2luZyBOYXRpdmVUaHJlYWRDb250ZXh0ID0gc3RydWN0IHB0X3JlZ3M7CisgI2Vsc2UKKyAjZXJy b3IgUG9ydC4KKyAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4Nl9GQU1JTFkgfHwgQVJDSF9DUFVfQVJN NjQKK0BAIC0yMjksNiArMjU1LDkgQEAgdW5pb24gRmxvYXRDb250ZXh0IHsKKyAgICAgfSBmcHJl Z3NbMzJdOworICAgICB1aW50MzJfdCBmcGNzcjsKKyAgICAgdWludDMyX3QgZnB1X2lkOworKyNl bGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKyAgICAvLyBDcmFzaHBhZCdzIFBQ QyBzdXBwb3J0IGlzIDY0LWJpdCBvbmx5LCBzbyB0aGlzCisrICAgIC8vIDMyYml0LW9ubHkgc3Ry dWN0IGlzIGRlY2xhcmVkIGFzIGVtcHR5LgorICNlbHNlCisgI2Vycm9yIFBvcnQuCisgI2VuZGlm ICAvLyBBUkNIX0NQVV9YODZfRkFNSUxZCitAQCAtMjYzLDYgKzI5MiwxMCBAQCB1bmlvbiBGbG9h dENvbnRleHQgeworICAgICBkb3VibGUgZnByZWdzWzMyXTsKKyAgICAgdWludDMyX3QgZnBjc3I7 CisgICAgIHVpbnQzMl90IGZwdV9pZDsKKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZB TUlMWSkKKysgICAgLy8gUmVmbGVjdHMgZnByZWdzZXRfdCBpbiBzeXMvdWNvbnRleHQuaAorKyAg ICBkb3VibGUgZnByZWdzWzMyXTsKKysgICAgZG91YmxlIGZwc2NyOworICNlbHNlCisgI2Vycm9y IFBvcnQuCisgI2VuZGlmICAvLyBBUkNIX0NQVV9YODZfRkFNSUxZCitAQCAtMjkxLDYgKzMyNCw4 IEBAIHVuaW9uIEZsb2F0Q29udGV4dCB7CisgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihmNjQpID09 IHNpemVvZih1c2VyX2Zwc2ltZF9zdHJ1Y3QpLCAiU2l6ZSBtaXNtYXRjaCIpOworICNlbGlmIGRl ZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCisgLy8gTm8gYXBwcm9wcmlhdGUgZmxvYXRpbmcg cG9pbnQgY29udGV4dCBuYXRpdmUgdHlwZSBmb3IgYXZhaWxhYmxlIE1JUFMuCisrI2VsaWYgZGVm aW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisrICBzdGF0aWNfYXNzZXJ0KHNpemVvZihmNjQp ID09IHNpemVvZihmcHJlZ3NldF90KSwgIlNpemUgbWlzbWF0Y2giKTsKKyAjZWxzZQorICNlcnJv ciBQb3J0LgorICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2CitAQCAtMjk4LDYgKzMzMywyNiBAQCB1 bmlvbiBGbG9hdENvbnRleHQgeworIHN0YXRpY19hc3NlcnQoc3RkOjppc19zdGFuZGFyZF9sYXlv dXQ8RmxvYXRDb250ZXh0Pjo6dmFsdWUsCisgICAgICAgICAgICAgICAiTm90IHN0YW5kYXJkIGxh eW91dCIpOworIAorKy8vISBcYnJpZWYgVGhlIHZlY3RvciByZWdpc3RlcnMgdXNlZCBmb3IgYW4g YXJjaGl0ZWN0dXJlIGZhbWlseQorK3VuaW9uIFZlY3RvckNvbnRleHQgeworKyAgc3RydWN0IHYz Ml90IHt9IHYzMjsKKysjaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisrICBfX2F0 dHJpYnV0ZV9fKChfX2FsaWduZWRfXygxNikpKSAvLyBWZWN0b3IgY29udGV4dCBtdXN0IGJlIGRv dWJsZXdvcmQgYWxpZ25lZC4KKysjZW5kaWYKKysgIHN0cnVjdCB2NjRfdCB7CisrI2lmIGRlZmlu ZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKyAgICAvLyBSZWZsZWN0cyB2cnJlZ3NldF90IGlu IHN5cy91Y29udGV4dC5oCisrICAgIHVpbnQzMl90IHZycmVnc1szMl1bNF07CisrICAgIHN0cnVj dCB7CisrICAgICAgdWludDMyX3QgX19wYWRbM107CisrICAgICAgdWludDMyX3QgdnNjcl93b3Jk OworKyAgICB9IHZzY3I7CisrICAgIHVpbnQzMl90IHZyc2F2ZTsKKysgICAgdWludDMyX3QgX19w YWRbM107CisrI2VuZGlmCisrICB9IHY2NDsKKyt9OworKworIC8vISBcYnJpZWYgQSBjb2xsZWN0 aW9uIG9mIGBwdHJhY2VgLWFibGUgaW5mb3JtYXRpb24gYWJvdXQgYSB0aHJlYWQuCisgc3RydWN0 IFRocmVhZEluZm8geworICAgVGhyZWFkSW5mbygpOworQEAgLTMwOSw2ICszNjQsOSBAQCBzdHJ1 Y3QgVGhyZWFkSW5mbyB7CisgICAvLyEgXGJyaWVmIFRoZSBmbG9hdGluZyBwb2ludCByZWdpc3Rl cnMgZm9yIHRoZSB0aHJlYWQuCisgICBGbG9hdENvbnRleHQgZmxvYXRfY29udGV4dDsKKyAKKysg IC8vISBcYnJpZWYgKE9wdGlvbmFsKSBUaGUgdmVjdG9yIHJlZ2lzdGVycyB1c2VkIGZvciB0aGUg dGhyZWFkLgorKyAgVmVjdG9yQ29udGV4dCB2ZWN0b3JfY29udGV4dDsKKysKKyAgIC8vISBcYnJp ZWYgVGhlIHRocmVhZC1sb2NhbCBzdG9yYWdlIGFkZHJlc3MgZm9yIHRoZSB0aHJlYWQuCisgICBM aW51eFZNQWRkcmVzcyB0aHJlYWRfc3BlY2lmaWNfZGF0YV9hZGRyZXNzOworIH07CistLS0gYS9z cmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9t aXNjL2NhcHR1cmVfY29udGV4dC5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRf cGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dC5oCitAQCAt NjksNiArNjksNyBAQCB1c2luZyBOYXRpdmVDUFVDb250ZXh0ID0gdWNvbnRleHRfdDsKKyAvLyEg ICAgIG1hY09TL0xpbnV4L0Z1Y2hzaWEgfCB4ODZfNjQgICAgICAgfCBgJSVyZGlgCisgLy8hICAg ICBMaW51eCAgICAgICAgICAgICAgIHwgQVJNL0FSTTY0ICAgIHwgYHIwYC9geDBgCisgLy8hICAg ICBMaW51eCAgICAgICAgICAgICAgIHwgTUlQUy9NSVBTNjQgIHwgYCRhMGAKKysvLyEgICAgIExp bnV4ICAgICAgICAgICAgICAgfCBQUEM2NCAgICAgICAgfCBgcjNgCisgLy8hCisgLy8hICAgICBB ZGRpdGlvbmFsbHksIHRoZSB2YWx1ZSBgTFJgIG9uIEFSTS9BUk02NCB3aWxsIGJlIHRoZSByZXR1 cm4gYWRkcmVzcyBvZgorIC8vISAgICAgdGhpcyBmdW5jdGlvbi4KKy0tLSBhL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVy ZV9jb250ZXh0X2xpbnV4LlMKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0X2xpbnV4LlMKK0BA IC0zMiw3ICszMiw3IEBACisgICAuYmFsaWduIDQsIDB4MAorICAgLnR5cGUgQ0FQVFVSRUNPTlRF WFRfU1lNQk9MLCAlZnVuY3Rpb24KKyAgIC50eXBlIENBUFRVUkVDT05URVhUX1NZTUJPTDIsICVm dW5jdGlvbgorLSNlbGlmIGRlZmluZWQoX19taXBzX18pCisrI2VsaWYgZGVmaW5lZChfX21pcHNf XykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgLmJhbGlnbiA0LCAweDAKKyAjZW5kaWYK KyAKK0BAIC00MjMsNCArNDIzLDIxNCBAQCBDQVBUVVJFQ09OVEVYVF9TWU1CT0wyOgorICAganIg JHJhCisgCisgICAuc2V0IGF0CisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgLy8g U3RvcmUgcjAtcjMxCisrICBzdGQgMCwgMHhlOCgzKSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmdwX3JlZ3NbMF0KKysgIHN0ZCAxLCAweGYwKDMpICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu Z3BfcmVnc1sxXQorKyAgc3RkIDIsIDB4ZjgoMykgICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5n cF9yZWdzWzJdCisrICAvLyBub3RlIHRoYXQgcjMncyBvcmlnaW5hbCB2YWx1ZSB3YXMgbG9zdAor KyAgc3RkIDMsIDB4MTAwKDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzNdCisr ICBzdGQgNCwgMHgxMDgoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbNF0KKysg IHN0ZCA1LCAweDExMCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1s1XQorKyAg c3RkIDYsIDB4MTE4KDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzZdCisrICBz dGQgNywgMHgxMjAoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbN10KKysgIHN0 ZCA4LCAweDEyOCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1s4XQorKyAgc3Rk IDksIDB4MTMwKDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzldCisrICBzdGQg MTAsIDB4MTM4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMTBdCisrICBzdGQg MTEsIDB4MTQwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMTFdCisrICBzdGQg MTIsIDB4MTQ4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMTJdCisrICBzdGQg MTMsIDB4MTUwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMTNdCisrICBzdGQg MTQsIDB4MTU4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMTRdCisrICBzdGQg MTUsIDB4MTYwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMTVdCisrICBzdGQg MTYsIDB4MTY4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMTZdCisrICBzdGQg MTcsIDB4MTcwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMTddCisrICBzdGQg MTgsIDB4MTc4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMThdCisrICBzdGQg MTksIDB4MTgwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMTldCisrICBzdGQg MjAsIDB4MTg4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMjBdCisrICBzdGQg MjEsIDB4MTkwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMjFdCisrICBzdGQg MjIsIDB4MTk4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMjJdCisrICBzdGQg MjMsIDB4MWEwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMjNdCisrICBzdGQg MjQsIDB4MWE4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMjRdCisrICBzdGQg MjUsIDB4MWIwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMjVdCisrICBzdGQg MjYsIDB4MWI4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMjZdCisrICBzdGQg MjcsIDB4MWMwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMjddCisrICBzdGQg MjgsIDB4MWM4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMjhdCisrICBzdGQg MjksIDB4MWQwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMjldCisrICBzdGQg MzAsIDB4MWQ4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMzBdCisrICBzdGQg MzEsIDB4MWUwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMzFdCisrCisrICAv LyBGb3IgTklQLCB3ZSBjYW4gdXNlIHRoZSB2YWx1ZSBpbiB0aGUgbGluayByZWdpc3RlcgorKyAg bWZsciAwCisrICBzdGQgMCwgMHgxZTgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVn c1tQVF9OSVBdCisrCisrICAvLyBDVFIKKysgIG1mY3RyIDAKKysgIHN0ZCAwLCAweDIwMCgzKSAv LyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX0NUUl0KKysKKysgIC8vIEZvciBMTkss IHdlJ2xsIHVzZSB0aGUgY2FsbGVyJ3MgTFIgc2F2ZSBhcmVhICgyIHN0YWNrIGZyYW1lcyB1cCku CisrICAvLyByNCBjYW4gYmUgdXNlZCBhcyBhIHNjcmF0Y2ggcmVnaXN0ZXIgc2luY2UgaXQgaGFz IGFscmVhZHkgYmVlbiBzYXZlZC4KKysgIGxkIDQsIDAoMSkKKysgIGxkIDQsIDE2KDQpCisrICBz dGQgNCwgMHgyMDgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9MTktdCisr CisrICAvLyBYRVIKKysgIG1meGVyIDAKKysgIHN0ZCAwLCAweDIxMCgzKSAvLyBjb250ZXh0LT51 Y19tY29udGV4dC5ncF9yZWdzW1BUX1hFUl0KKysKKysgIC8vIENDUgorKyAgbWZjciAwCisrICBz dGQgMCwgMHgyMTgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9DQ1JdCisr CisrICAvLyBNU1IsIG9yaWdfcjMsIE1RLCBUUkFQLCBEQVIsIERTSVNSLCBSRVNVTFQsIERTQ1Is CisrICAvLyBub3QgdXNlZCBvciBub3QgcmVsZXZhbnQsICB6ZXJvIHRoZW0gb3V0LgorKyAgbGkg NCwgMAorKyAgc3RkIDQsIDB4MWYwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3Nb UFRfTVNSXQorKyAgc3RkIDQsIDB4MWY4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3Jl Z3NbUFRfT1JJR19SM10KKysgIHN0ZCA0LCAweDIyMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4 dC5ncF9yZWdzW1BUX01RXQorKyAgc3RkIDQsIDB4MjI4KDMpIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmdwX3JlZ3NbUFRfVFJBUF0KKysgIHN0ZCA0LCAweDIzMCgzKSAvLyBjb250ZXh0LT51Y19t Y29udGV4dC5ncF9yZWdzW1BUX0RBUl0KKysgIHN0ZCA0LCAweDIzOCgzKSAvLyBjb250ZXh0LT51 Y19tY29udGV4dC5ncF9yZWdzW1BUX0RTSVNSXQorKyAgc3RkIDQsIDB4MjQwKDMpIC8vIGNvbnRl eHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfUkVTVUxUXQorKyAgc3RkIDQsIDB4MjQ4KDMpIC8v IGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfRFNDUl0KKysKKysgIC8vIFVwZGF0ZSBj b250ZXh0LT51Y19tY29udGV4dC5yZWdzIHRvIHBvaW50IHRvIGdwX3JlZ3MKKysgIGFkZGkgMCwg MywgMHhlOAorKyAgc3RkIDAsIDB4ZTAoMykKKysKKysgIC8vIFNhdmUgZmxvYXRpbmcgcG9pbnQg cmVnaXN0ZXJzIDAtMzEKKysgIHN0ZmQgMCwgMHgyNjgoMykgIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmZwX3JlZ3NbMF0KKysgIHN0ZmQgMSwgMHgyNzAoMykgIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmZwX3JlZ3NbMV0KKysgIHN0ZmQgMiwgMHgyNzgoMykgIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmZwX3JlZ3NbMl0KKysgIHN0ZmQgMywgMHgyODAoMykgIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmZwX3JlZ3NbM10KKysgIHN0ZmQgNCwgMHgyODgoMykgIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmZwX3JlZ3NbNF0KKysgIHN0ZmQgNSwgMHgyOTAoMykgIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmZwX3JlZ3NbNV0KKysgIHN0ZmQgNiwgMHgyOTgoMykgIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmZwX3JlZ3NbNl0KKysgIHN0ZmQgNywgMHgyYTAoMykgIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmZwX3JlZ3NbN10KKysgIHN0ZmQgOCwgMHgyYTgoMykgIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmZwX3JlZ3NbOF0KKysgIHN0ZmQgOSwgMHgyYjAoMykgIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmZwX3JlZ3NbOV0KKysgIHN0ZmQgMTAsIDB4MmI4KDMpIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmZwX3JlZ3NbMTBdCisrICBzdGZkIDExLCAweDJjMCgzKSAvLyBjb250ZXh0LT51Y19tY29u dGV4dC5mcF9yZWdzWzExXQorKyAgc3RmZCAxMiwgMHgyYzgoMykgLy8gY29udGV4dC0+dWNfbWNv bnRleHQuZnBfcmVnc1sxMl0KKysgIHN0ZmQgMTMsIDB4MmQwKDMpIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LmZwX3JlZ3NbMTNdCisrICBzdGZkIDE0LCAweDJkOCgzKSAvLyBjb250ZXh0LT51Y19t Y29udGV4dC5mcF9yZWdzWzE0XQorKyAgc3RmZCAxNSwgMHgyZTAoMykgLy8gY29udGV4dC0+dWNf bWNvbnRleHQuZnBfcmVnc1sxNV0KKysgIHN0ZmQgMTYsIDB4MmU4KDMpIC8vIGNvbnRleHQtPnVj X21jb250ZXh0LmZwX3JlZ3NbMTZdCisrICBzdGZkIDE3LCAweDJmMCgzKSAvLyBjb250ZXh0LT51 Y19tY29udGV4dC5mcF9yZWdzWzE3XQorKyAgc3RmZCAxOCwgMHgyZjgoMykgLy8gY29udGV4dC0+ dWNfbWNvbnRleHQuZnBfcmVnc1sxOF0KKysgIHN0ZmQgMTksIDB4MzAwKDMpIC8vIGNvbnRleHQt PnVjX21jb250ZXh0LmZwX3JlZ3NbMTldCisrICBzdGZkIDIwLCAweDMwOCgzKSAvLyBjb250ZXh0 LT51Y19tY29udGV4dC5mcF9yZWdzWzIwXQorKyAgc3RmZCAyMSwgMHgzMTAoMykgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQuZnBfcmVnc1syMV0KKysgIHN0ZmQgMjIsIDB4MzE4KDMpIC8vIGNvbnRl eHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMjJdCisrICBzdGZkIDIzLCAweDMyMCgzKSAvLyBjb250 ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzIzXQorKyAgc3RmZCAyNCwgMHgzMjgoMykgLy8gY29u dGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1syNF0KKysgIHN0ZmQgMjUsIDB4MzMwKDMpIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMjVdCisrICBzdGZkIDI2LCAweDMzOCgzKSAvLyBj b250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzI2XQorKyAgc3RmZCAyNywgMHgzNDAoMykgLy8g Y29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1syN10KKysgIHN0ZmQgMjgsIDB4MzQ4KDMpIC8v IGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMjhdCisrICBzdGZkIDI5LCAweDM1MCgzKSAv LyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzI5XQorKyAgc3RmZCAzMCwgMHgzNTgoMykg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1szMF0KKysgIHN0ZmQgMzEsIDB4MzYwKDMp IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMzFdCisrCisrICAvLyBGUFNDUgorKyAg bWZmcyAwCisrICBzdGZkIDAsIDB4MzY4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3Jl Z3NbMzJdCisrCisrICAvLyBTYXZlIFZNWCBWZWN0b3IgcmVnaXN0ZXJzCisrICAvLyBVcGRhdGUg cjQgdG8gY29udGFpbiB0aGUgYmFzZSBhZGRyZXNzIG9mIHZteF9yZXNlcnZlCisrICBhZGRpIDQs IDMsIDB4Mzc4CisrICAvLyBFbnN1cmUgdGhhdCBpdCBpcyBxdWFkd29yZCBhbGlnbmVkCisrICBh bmRpLiA1LCA0LCAweEYKKysgIGJlcSAxZiAvLyBObyBhbGlnbm1lbnQgaXMgbmVjZXNzYXJ5Cisr ICAvLyBBZGRyZXNzIGlzIGRvdWJsZXdvcmQgYWxpZ25lZCBhbmQgbm90IHF1YWR3b3JkIGFsaWdu ZWQsIGFkZCA4CisrICBhZGRpIDQsIDQsIDgKKysKKysxOgorKyAgLy8gU3RvcmUgVk1YIHJlZ2lz dGVycyAwLTMxCisrICAvLyByNCB3aWxsIGNvbnRhaW4gdGhlIGJhc2UgYWRkcmVzcworKyAgLy8g cjUgd2lsbCBjb250YWluIHRoZSBpbmRleAorKyAgbGkgNSwgMAorKyAgc3R2eCAwLCA0LCA1ICAg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDBdCisrICBhZGRp IDUsIDUsIDE2CisrICBzdHZ4IDEsIDQsIDUgICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhf cmVzZXJ2ZVsoYWxpZ24pICsgMV0KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggMiwgNCwgNSAg IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAyXQorKyAgYWRk aSA1LCA1LCAxNgorKyAgc3R2eCAzLCA0LCA1ICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14 X3Jlc2VydmVbKGFsaWduKSArIDNdCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDQsIDQsIDUg ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgNF0KKysgIGFk ZGkgNSwgNSwgMTYKKysgIHN0dnggNSwgNCwgNSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZt eF9yZXNlcnZlWyhhbGlnbikgKyA1XQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCA2LCA0LCA1 ICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDZdCisrICBh ZGRpIDUsIDUsIDE2CisrICBzdHZ4IDcsIDQsIDUgICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52 bXhfcmVzZXJ2ZVsoYWxpZ24pICsgN10KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggOCwgNCwg NSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyA4XQorKyAg YWRkaSA1LCA1LCAxNgorKyAgc3R2eCA5LCA0LCA1ICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu dm14X3Jlc2VydmVbKGFsaWduKSArIDldCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDEwLCA0 LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTBdCisr ICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDExLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4 dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTFdCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDEy LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTJd CisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDEzLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29u dGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTNdCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4 IDE0LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsg MTRdCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDE1LCA0LCA1ICAvLyBjb250ZXh0LT51Y19t Y29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTVdCisrICBhZGRpIDUsIDUsIDE2CisrICBz dHZ4IDE2LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24p ICsgMTZdCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDE3LCA0LCA1ICAvLyBjb250ZXh0LT51 Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTddCisrICBhZGRpIDUsIDUsIDE2Cisr ICBzdHZ4IDE4LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxp Z24pICsgMThdCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDE5LCA0LCA1ICAvLyBjb250ZXh0 LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTldCisrICBhZGRpIDUsIDUsIDE2 CisrICBzdHZ4IDIwLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVso YWxpZ24pICsgMjBdCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDIxLCA0LCA1ICAvLyBjb250 ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjFdCisrICBhZGRpIDUsIDUs IDE2CisrICBzdHZ4IDIyLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2 ZVsoYWxpZ24pICsgMjJdCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDIzLCA0LCA1ICAvLyBj b250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjNdCisrICBhZGRpIDUs IDUsIDE2CisrICBzdHZ4IDI0LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVz ZXJ2ZVsoYWxpZ24pICsgMjRdCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDI1LCA0LCA1ICAv LyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjVdCisrICBhZGRp IDUsIDUsIDE2CisrICBzdHZ4IDI2LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhf cmVzZXJ2ZVsoYWxpZ24pICsgMjZdCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDI3LCA0LCA1 ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjddCisrICBh ZGRpIDUsIDUsIDE2CisrICBzdHZ4IDI4LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52 bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjhdCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDI5LCA0 LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjldCisr ICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDMwLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4 dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMzBdCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDMx LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMzFd CisrICBhZGRpIDUsIDUsIDE2CisrCisrICAvLyBWU0NSCisrICBtZnZzY3IgMAorKyAgc3R2eCAw LCA0LCA1CisrICBhZGRpIDUsIDUsIDE2CisrCisrICAvLyBWUlNBVkUKKysgIG1mdnJzYXZlIDAK KysgIHN0d3ggMCwgNCwgNQorKworKyAgLy8gVXBkYXRlIGNvbnRleHQtPnVjX21jb250ZXh0LnZf cmVncyB0byBwb2ludCB0byB2bXhfcmVzZXJ2ZSArIGFsaWdubWVudC4KKysgIHN0ZCA0LCAweDM3 MCgzKQorKworKyAgLy8gWmVybyBvdXQgYWxsIHVudXNlZCBmaWVsZHMKKysgIGxpIDQsIDAKKysg IHN0ZCA0LCAweGM4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnNpZ25hbAorKyAgc3RkIDQs IDB4ZDAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuaGFuZGxlcgorKyAgc3RkIDQsIDB4ZDgo MykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQub2xkbWFzaworKworKyAgYmxyCisgI2VuZGlmICAv LyBfX2kzODZfXworLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHRfdGVzdC5jYworKysrIGIvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlz Yy9jYXB0dXJlX2NvbnRleHRfdGVzdC5jYworQEAgLTU3LDcgKzU3LDcgQEAgdm9pZCBUZXN0Q2Fw dHVyZUNvbnRleHQoKSB7CisgICB1aW50cHRyX3QgcGMgPSBQcm9ncmFtQ291bnRlckZyb21Db250 ZXh0KGNvbnRleHRfMSk7CisgCisgI2lmICFkZWZpbmVkKEFERFJFU1NfU0FOSVRJWkVSKSAmJiAh ZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgXAorLSAgICAhZGVmaW5lZChNRU1PUllf U0FOSVRJWkVSKQorKyAgICAhZGVmaW5lZChNRU1PUllfU0FOSVRJWkVSKSAmJiAhZGVmaW5lZChB UkNIX0NQVV9QUEM2NF9GQU1JTFkpCisgICAvLyBTYW5pdGl6ZXJzIGNhbiBjYXVzZSBlbm91Z2gg Y29kZSBibG9hdCB0aGF0IHRoZSDigJxuZWFyYnnigJ0gY2hlY2sgd291bGQKKyAgIC8vIGxpa2Vs eSBmYWlsLgorICAgY29uc3QgdWludHB0cl90IGtSZWZlcmVuY2VQQyA9CistLS0gYS9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2Nh cHR1cmVfY29udGV4dF90ZXN0X3V0aWxfbGludXguY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250 ZXh0X3Rlc3RfdXRpbF9saW51eC5jYworQEAgLTM1LDYgKzM1LDggQEAgdm9pZCBTYW5pdHlDaGVj a0NvbnRleHQoY29uc3QgTmF0aXZlQ1BVQworICAgRVhQRUNUX0VRKGNvbnRleHQudWNfbWNvbnRl eHQucmVnc1swXSwgRnJvbVBvaW50ZXJDYXN0PHVpbnRwdHJfdD4oJmNvbnRleHQpKTsKKyAjZWxp ZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQorICAgRVhQRUNUX0VRKGNvbnRleHQudWNf bWNvbnRleHQuZ3JlZ3NbNF0sIEZyb21Qb2ludGVyQ2FzdDx1aW50cHRyX3Q+KCZjb250ZXh0KSk7 CisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisrICBFWFBFQ1RfRVEoY29u dGV4dC51Y19tY29udGV4dC5ncF9yZWdzWzNdLCBGcm9tUG9pbnRlckNhc3Q8dWludHB0cl90Pigm Y29udGV4dCkpOworICNlbmRpZgorIH0KKyAKK0BAIC00OSw2ICs1MSw4IEBAIHVpbnRwdHJfdCBQ cm9ncmFtQ291bnRlckZyb21Db250ZXh0KGNvbnMKKyAgIHJldHVybiBjb250ZXh0LnVjX21jb250 ZXh0LnBjOworICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCisgICByZXR1cm4g Y29udGV4dC51Y19tY29udGV4dC5wYzsKKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZB TUlMWSkKKysgIHJldHVybiBjb250ZXh0LnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfTklQXTsKKyAj ZW5kaWYKKyB9CisgCitAQCAtNjMsNiArNjcsOCBAQCB1aW50cHRyX3QgU3RhY2tQb2ludGVyRnJv bUNvbnRleHQoY29uc3QKKyAgIHJldHVybiBjb250ZXh0LnVjX21jb250ZXh0LnNwOworICNlbGlm IGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCisgICByZXR1cm4gY29udGV4dC51Y19tY29u dGV4dC5ncmVnc1syOV07CisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisr ICByZXR1cm4gY29udGV4dC51Y19tY29udGV4dC5ncF9yZWdzWzFdOworICNlbmRpZgorIH0KKyAK Ky0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC91dGlsL3Bvc2l4L3NpZ25hbHNfdGVzdC5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvcG9zaXgvc2lnbmFsc190ZXN0LmNj CitAQCAtNDYsOSArNDYsOSBAQCBib29sIENhbkNhdXNlU2lnbmFsKGludCBzaWcpIHsKKyAgIHJl dHVybiBzaWcgPT0gU0lHQUJSVCB8fAorICAgICAgICAgIHNpZyA9PSBTSUdBTFJNIHx8CisgICAg ICAgICAgc2lnID09IFNJR0JVUyB8fAorLSNpZiAhZGVmaW5lZChBUkNIX0NQVV9BUk02NCkKKysj aWYgIWRlZmluZWQoQVJDSF9DUFVfQVJNNjQpICYmICFkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0KQor ICAgICAgICAgIHNpZyA9PSBTSUdGUEUgfHwKKy0jZW5kaWYgIC8vICFkZWZpbmVkKEFSQ0hfQ1BV X0FSTTY0KQorKyNlbmRpZiAgLy8gIWRlZmluZWQoQVJDSF9DUFVfQVJNNjQpICYmICFkZWZpbmVk KEFSQ0hfQ1BVX1BQQzY0KQorICNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1g4Nl9GQU1JTFkpIHx8IGRl ZmluZWQoQVJDSF9DUFVfQVJNRUwpCisgICAgICAgICAgc2lnID09IFNJR0lMTCB8fAorICNlbmRp ZiAgLy8gZGVmaW5lZChBUkNIX0NQVV9YODZfRkFNSUxZKSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX0FS TUVMKQorQEAgLTExNyw5ICsxMTcsMTEgQEAgdm9pZCBDYXVzZVNpZ25hbChpbnQgc2lnKSB7Cisg ICAgICAgYnJlYWs7CisgICAgIH0KKyAKKy0jaWYgIWRlZmluZWQoQVJDSF9DUFVfQVJNNjQpCisr I2lmICFkZWZpbmVkKEFSQ0hfQ1BVX0FSTTY0KSAmJiAhZGVmaW5lZChBUkNIX0NQVV9QUEM2NCkK KyAgICAgLy8gQVJNNjQgaGFzIGhhcmR3YXJlIGludGVnZXIgZGl2aXNpb24gaW5zdHJ1Y3Rpb25z IHRoYXQgZG9u4oCZdCBnZW5lcmF0ZSBhCisgICAgIC8vIHRyYXAgZm9yIGRpdmlkZS1ieS16ZXJv LCBzbyB0aGlzIGRvZXNu4oCZdCBwcm9kdWNlIFNJR0ZQRS4KKysgICAgLy8KKysgICAgLy8gUFBD NjQgZml4ZWQtcG9pbnQgZGl2aXNpb24gYnkgemVybyBhbHNvIGRvZXNuJ3QgcHJvZHVjZSBhIFNJ R0ZQRS4KKyAgICAgY2FzZSBTSUdGUEU6IHsKKyAgICAgICAvLyBPcHRpbWl6YXRpb24gbWFrZXMg dGhpcyB0cmlja3ksIHNvIGdldCB6ZXJvIGZyb20gYSBzeXN0ZW0gY2FsbCBsaWtlbHkKKyAgICAg ICAvLyB0byBzdWNjZWVkLCBhbmQgdHJ5IHRvIGRvIHNvbWV0aGluZyB3aXRoIHRoZSByZXN1bHQu CitAQCAtMTM3LDcgKzEzOSw3IEBAIHZvaWQgQ2F1c2VTaWduYWwoaW50IHNpZykgeworICAgICAg IGZzdGF0KHF1b3RpZW50LCAmc3RhdF9idWYpOworICAgICAgIGJyZWFrOworICAgICB9CistI2Vu ZGlmICAvLyBBUkNIX0NQVV9BUk02NAorKyNlbmRpZiAgLy8gIWRlZmluZWQoQVJDSF9DUFVfQVJN NjQpICYmICFkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0KQorIAorICNpZiBkZWZpbmVkKEFSQ0hfQ1BV X1g4Nl9GQU1JTFkpIHx8IGRlZmluZWQoQVJDSF9DUFVfQVJNRUwpCisgICAgIGNhc2UgU0lHSUxM OiB7CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvZGF2MWQvQlVJTEQu Z24KKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9kYXYxZC9CVUlMRC5n bgorQEAgLTE5Niw2ICsxOTYsOCBAQCBzdGF0aWNfbGlicmFyeSgiZGF2MWRfOGJpdCIpIHsKKyAg ICAgc291cmNlcyArPSBhcm1fdGVtcGxhdGVfc291cmNlcworICAgfSBlbHNlIGlmIChjdXJyZW50 X2NwdSA9PSAiYXJtNjQiKSB7CisgICAgIHNvdXJjZXMgKz0gYXJtX3RlbXBsYXRlX3NvdXJjZXMK KysgIH0gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gInBwYzY0IikgeworKyAgICBzb3VyY2VzICs9 IHBwYzY0X3RlbXBsYXRlX3NvdXJjZXMKKyAgIH0KKyAKKyAgIGNmbGFncyA9IGRhdjFkX2NvcHRz CitAQCAtMjI2LDYgKzIyOCw4IEBAIHN0YXRpY19saWJyYXJ5KCJkYXYxZF8xMGJpdCIpIHsKKyAg ICAgc291cmNlcyArPSBhcm1fdGVtcGxhdGVfc291cmNlcworICAgfSBlbHNlIGlmIChjdXJyZW50 X2NwdSA9PSAiYXJtNjQiKSB7CisgICAgIHNvdXJjZXMgKz0gYXJtX3RlbXBsYXRlX3NvdXJjZXMK KysgIH0gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gInBwYzY0IikgeworKyAgICBzb3VyY2VzICs9 IHBwYzY0X3RlbXBsYXRlX3NvdXJjZXMKKyAgIH0KKyAKKyAgIGNmbGFncyA9IGRhdjFkX2NvcHRz CitAQCAtMjgzLDYgKzI4NywyMSBAQCBpZiAoY3VycmVudF9jcHUgPT0gIng4NiIgfHwgY3VycmVu dF9jcHUKKyAgICAgfQorIAorICAgICBjZmxhZ3MgPSBkYXYxZF9jb3B0cworKyAgfQorK30gZWxz ZSBpZiAoY3VycmVudF9jcHUgPT0gInBwYzY0IikgeworKyAgc3RhdGljX2xpYnJhcnkoImRhdjFk X3BwYyIpIHsKKysgICAgc291cmNlcyA9IFsKKysgICAgICAibGliZGF2MWQvc3JjL3BwYy9jcHUu YyIsCisrICAgICAgImxpYmRhdjFkL3NyYy9wcGMvY3B1LmgiLAorKyAgICBdCisrCisrICAgIGNv bmZpZ3MgLT0gWyAiLy9idWlsZC9jb25maWcvY29tcGlsZXI6Y2hyb21pdW1fY29kZSIgXQorKyAg ICBjb25maWdzICs9IFsKKysgICAgICAiLy9idWlsZC9jb25maWcvY29tcGlsZXI6bm9fY2hyb21p dW1fY29kZSIsCisrICAgICAgIjpkYXYxZF9jb25maWciLAorKyAgICBdCisrCisrICAgIGNmbGFn cyA9IGRhdjFkX2NvcHRzCisgCisgICAgIGRlcHMgPSBbICI6ZGF2MWRfaGVhZGVycyIgXQorICAg ICBhbGxvd19jaXJjdWxhcl9pbmNsdWRlc19mcm9tID0gWyAiOmRhdjFkX2hlYWRlcnMiIF0KK0BA IC0zMTUsNSArMzM0LDcgQEAgc3RhdGljX2xpYnJhcnkoImRhdjFkIikgeworICAgICB9CisgICB9 IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09ICJhcm0iIHx8IGN1cnJlbnRfY3B1ID09ICJhcm02NCIp IHsKKyAgICAgZGVwcyArPSBbICI6ZGF2MWRfYXJtIiBdCisrICB9IGVsc2UgaWYgKGN1cnJlbnRf Y3B1ID09ICJwcGM2NCIpIHsKKysgICAgZGVwcyArPSBbICI6ZGF2MWRfcHBjIiBdCisgICB9Cisg fQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2RhdjFkL2RhdjFkX2dl bmVyYXRlZC5nbmkKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9kYXYx ZC9kYXYxZF9nZW5lcmF0ZWQuZ25pCitAQCAtMTAzLDYgKzEwMywxMSBAQCBhcm1fdGVtcGxhdGVf c291cmNlcyA9IFsKKyAgICJsaWJkYXYxZC9zcmMvYXJtL21jX2luaXRfdG1wbC5jIiwKKyBdCisg CisrcHBjNjRfdGVtcGxhdGVfc291cmNlcyA9IFsKKysgICJsaWJkYXYxZC9zcmMvcHBjL2NkZWZf aW5pdF90bXBsLmMiLAorKyAgImxpYmRhdjFkL3NyYy9wcGMvbG9vcHJlc3RvcmF0aW9uX2luaXRf dG1wbC5jIiwKKytdCisrCisgdGVtcGxhdGVfc291cmNlcyA9IFsKKyAgICJsaWJkYXYxZC9zcmMv Y2RlZl9hcHBseV90bXBsLmMiLAorICAgImxpYmRhdjFkL3NyYy9jZGVmX3RtcGwuYyIsCistLS0g YS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvZGF2MWQvZ2VuZXJhdGVfc291cmNl LnB5CisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvZGF2MWQvZ2VuZXJh dGVfc291cmNlLnB5CitAQCAtNTcsNiArNTcsOCBAQCBkZWYgX1dyaXRlR24oZmQpOgorICAgX1dy aXRlQXJyYXkoZmQsICJhcm02NF9hc21fc291cmNlcyIsIF9HbG9iKCJsaWJkYXYxZC9zcmMvYXJt LzY0LyouUyIpKQorICAgX1dyaXRlQXJyYXkoZmQsICJhcm1fdGVtcGxhdGVfc291cmNlcyIsIF9H bG9iKCJsaWJkYXYxZC9zcmMvYXJtLypfdG1wbC5jIikpCisgCisrICBfV3JpdGVBcnJheShmZCwg InBwYzY0X3RlbXBsYXRlX3NvdXJjZXMiLCBfR2xvYigibGliZGF2MWQvc3JjL3BwYy8qX3RtcGwu YyIpKQorKworICAgdGVtcGxhdGVfc291cmNlcyA9IF9HbG9iKCJsaWJkYXYxZC9zcmMvKl90bXBs LmMiKQorICAgX1dyaXRlQXJyYXkoZmQsICJ0ZW1wbGF0ZV9zb3VyY2VzIiwgdGVtcGxhdGVfc291 cmNlcykKKyAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9kYXYxZC9s aWJkYXYxZC9zcmMvcHBjL3R5cGVzLmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGly ZF9wYXJ0eS9kYXYxZC9saWJkYXYxZC9zcmMvcHBjL3R5cGVzLmgKK0BAIC01MSw0ICs1MSwxOSBA QAorICNkZWZpbmUgdTE2bF90b19pMzIodikgKChpMzJ4NCkgdmVjX21lcmdlbCgodTE2eDgpIHYs IHZlY19zcGxhdF91MTYoMCkpKQorICNkZWZpbmUgaTE2bF90b19pMzIodikgKChpMzJ4NCkgdmVj X3VucGFja2woKGkxNng4KXYpKQorIAorKyNpZiBkZWZpbmVkKF9fY2xhbmdfXykKKysjdW5kZWYg dmVjX3NwbGF0cworKyNkZWZpbmUgdmVjX3NwbGF0cyhOKSAgICAgICAgICAgICAgICAgICAgIFwK KysgICAgX0dlbmVyaWMoKE4pLCAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgICAgICB1 bnNpZ25lZCBjaGFyOiAgICAgICgodTh4MTYpKE4pKSwgXAorKyAgICAgICAgc2lnbmVkIGNoYXI6 ICAgICAgICAoKGk4eDE2KShOKSksIFwKKysgICAgICAgIHVuc2lnbmVkIHNob3J0OiAgICAgKCh1 MTZ4OCkoTikpLCBcCisrICAgICAgICBzaWduZWQgc2hvcnQ6ICAgICAgICgoaTE2eDgpKE4pKSwg XAorKyAgICAgICAgdW5zaWduZWQgaW50OiAgICAgICAoKHUzMng0KShOKSksIFwKKysgICAgICAg IHNpZ25lZCBpbnQ6ICAgICAgICAgKChpMzJ4NCkoTikpLCBcCisrICAgICAgICB1bnNpZ25lZCBs b25nIGxvbmc6ICgodTY0eDIpKE4pKSwgXAorKyAgICAgICAgc2lnbmVkIGxvbmcgbG9uZzogICAo KGk2NHgyKShOKSkgIFwKKysgICAgKQorKyNlbmRpZgorKworICNlbmRpZiAvKiBEQVYxRF9TUkNf UFBDX1RZUEVTX0ggKi8KKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9l aWdlbjMvQlVJTEQuZ24KKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9l aWdlbjMvQlVJTEQuZ24KK0BAIC0yMiw0ICsyMiw4IEBAIGNvbmZpZygiZWlnZW5faW5jbHVkZXMi KSB7CisgICAgICMgZm9yIHRoaXMgY29tcG9uZW50IG9uIFdpbmRvd3Mgb24gQXJtIGR1ZSB0byBj b21waWxhdGlvbiBlcnJvcnMuCisgICAgIGRlZmluZXMgKz0gWyAiRUlHRU5fRE9OVF9WRUNUT1JJ WkUiIF0KKyAgIH0KKysKKysgIGlmICh0YXJnZXRfY3B1ID09ICJwcGM2NCIpIHsKKysgICAgZGVm aW5lcyArPSBbICJFSUdFTl9ET05UX1ZFQ1RPUklaRSIgXQorKyAgfQorIH0KKy0tLSBhL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9saWJhb20vQlVJTEQuZ24KKysrKyBiL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9saWJhb20vQlVJTEQuZ24KK0BAIC0zNyw2ICsz Nyw4IEBAIGlmIChlbmFibGVfbGliYW9tKSB7CisgICAgIH0gZWxzZSB7CisgICAgICAgY3B1X2Fy Y2hfZnVsbCA9ICJhcm0iCisgICAgIH0KKysgIH0gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gInBw YzY0IikgeworKyAgICBjcHVfYXJjaF9mdWxsID0gImdlbmVyaWMiCisgICB9IGVsc2UgeworICAg ICBjcHVfYXJjaF9mdWxsID0gY3VycmVudF9jcHUKKyAgIH0KKy0tLSBhL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS90aGlyZF9wYXJ0eS9saWJnYXYxL29wdGlvbnMuZ25pCisrKysgYi9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdGhpcmRfcGFydHkvbGliZ2F2MS9vcHRpb25zLmduaQorQEAgLTEyLDUgKzEy LDUgQEAgZGVjbGFyZV9hcmdzKCkgeworICAgICAgIGlzX2Nocm9tZW9zX2FzaCAmJiAodGFyZ2V0 X2NwdSA9PSAiYXJtIiB8fCB0YXJnZXRfY3B1ID09ICJhcm02NCIpCisgICB1c2VfbGliZ2F2MV9w YXJzZXIgPQorICAgICAgIChpc19jaHJvbWVvcyB8fCBpc19saW51eCB8fCBpc193aW4pICYmCist ICAgICAgKHRhcmdldF9jcHUgPT0gIng4NiIgfHwgdGFyZ2V0X2NwdSA9PSAieDY0IiB8fCB0YXJn ZXRfY3B1ID09ICJhcm02NCIpCisrICAgICAgKHRhcmdldF9jcHUgPT0gIng4NiIgfHwgdGFyZ2V0 X2NwdSA9PSAieDY0IiB8fCB0YXJnZXRfY3B1ID09ICJhcm02NCIgfHwgdGFyZ2V0X2NwdSA9PSAi cHBjNjQiKQorIH0KKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9sc3Mv bGludXhfc3lzY2FsbF9zdXBwb3J0LmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGly ZF9wYXJ0eS9sc3MvbGludXhfc3lzY2FsbF9zdXBwb3J0LmgKK0BAIC00MjYyLDcgKzQyNjIsNyBA QCBzdHJ1Y3Qga2VybmVsX3N0YXRmcyB7CisgICAgICAgTFNTX1JFRygyLCBidWYpOworICAgICAg IExTU19CT0RZKHZvaWQqLCBtbWFwMiwgIjAiKF9fcjIpKTsKKyAgICAgfQorLSNlbHNlCisrI2Vs aWYgIWRlZmluZWQoX19wb3dlcnBjNjRfXykgLyogcHBjNjQgZG9lc24ndCBoYXZlIG1tYXAyICov CisgICAgICNkZWZpbmUgX19OUl9fbW1hcDIgX19OUl9tbWFwMgorICAgICBMU1NfSU5MSU5FIF9z eXNjYWxsNih2b2lkKiwgX21tYXAyLCAgICAgICAgICAgIHZvaWQqLCBzLAorICAgICAgICAgICAg ICAgICAgICAgICAgICBzaXplX3QsICAgICAgICAgICAgICAgICAgIGwsIGludCwgICAgICAgICAg ICAgICBwLAorQEAgLTQzNzMsNyArNDM3Myw3IEBAIHN0cnVjdCBrZXJuZWxfc3RhdGZzIHsKKyAg ICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgZGVmaW5lZChfX0FSTV9BUkNIXzNfXykgfHwg ZGVmaW5lZChfX0FSTV9FQUJJX18pIHx8ICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgKGRl ZmluZWQoX19taXBzX18pICYmIF9NSVBTX1NJTSA9PSBfTUlQU19TSU1fQUJJMzIpIHx8ICAgICAg ICAgICAgICAgICAgIFwKKy0gICAgICBkZWZpbmVkKF9fUFBDX18pIHx8ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgICAoZGVmaW5lZChf X1BQQ19fKSAmJiAhZGVmaW5lZChfX3Bvd2VycGM2NF9fKSkgfHwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIChkZWZpbmVkKF9fczM5 MF9fKSAmJiAhZGVmaW5lZChfX3MzOTB4X18pKQorICAgICAvKiBPbiB0aGVzZSBhcmNoaXRlY3R1 cmVzLCBpbXBsZW1lbnQgbW1hcCgpIHdpdGggbW1hcDIoKS4gKi8KKyAgICAgTFNTX0lOTElORSB2 b2lkKiBMU1NfTkFNRShtbWFwKSh2b2lkICpzLCBzaXplX3QgbCwgaW50IHAsIGludCBmLCBpbnQg ZCwKK0BAIC00NTU2LDkgKzQ1NTYsMTcgQEAgc3RydWN0IGtlcm5lbF9zdGF0ZnMgeworICAgICB9 CisgICAjZW5kaWYKKyAgICNpZiBkZWZpbmVkKF9fTlJfZnN0YXRhdDY0KQorKyAgICAjaWYgIWRl ZmluZWQoX19HTElCQ19fKQorKyAgICAgICAgLy8gbXVzbCBkb2Vzbid0IGRlZmluZSBmc3RhdGF0 NjQgZnN0YXRhdAorKyAgICAgICAgI3VuZGVmIGZzdGF0YXQ2NAorKyAgICAjZW5kaWYKKyAgICAg TFNTX0lOTElORSBfc3lzY2FsbDQoaW50LCAgIGZzdGF0YXQ2NCwgICAgICAgIGludCwgICBkLAor ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICosICAgICAgcCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RydWN0IGtlcm5lbF9zdGF0NjQgKiwgICBiLCAgICBpbnQsICAg ZikKKysgICAgI2lmICFkZWZpbmVkKF9fR0xJQkNfXykKKysgICAgCS8vIHRoZW4gcmVzdG9yZSBp dAorKyAgICAgICAgI2RlZmluZSBmc3RhdGF0NjQgZnN0YXRhdAorKyAgICAjZW5kaWYKKyAgICNl bmRpZgorICAgI2lmIGRlZmluZWQoX19OUl93YWl0cGlkKQorICAgICAvLyB3YWl0cGlkIGlzIHBv bHlmaWxsZWQgYmVsb3cgd2hlbiBub3QgYXZhaWxhYmxlLgorLS0tIGEvc3JjLzNyZHBhcnR5L2No cm9taXVtL3RoaXJkX3BhcnR5L3BkZml1bS90aGlyZF9wYXJ0eS9saWJwbmcxNi9wbmdwcml2LmgK KysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9wZGZpdW0vdGhpcmRfcGFy dHkvbGlicG5nMTYvcG5ncHJpdi5oCitAQCAtMTk2LDExICsxOTYsNyBAQAorICNlbmRpZgorIAor ICNpZm5kZWYgUE5HX1BPV0VSUENfVlNYX09QVAorLSMgIGlmIGRlZmluZWQoX19QUEM2NF9fKSAm JiBkZWZpbmVkKF9fQUxUSVZFQ19fKSAmJiBkZWZpbmVkKF9fVlNYX18pCistIyAgICAgZGVmaW5l IFBOR19QT1dFUlBDX1ZTWF9PUFQgMgorLSMgIGVsc2UKKy0jICAgICBkZWZpbmUgUE5HX1BPV0VS UENfVlNYX09QVCAwCistIyAgZW5kaWYKKysjICBkZWZpbmUgUE5HX1BPV0VSUENfVlNYX09QVCAw CisgI2VuZGlmCisgCisgI2lmbmRlZiBQTkdfSU5URUxfU1NFX09QVAorLS0tIGEvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3BmZmZ0L3NyYy9wZmZmdC5jCisrKysgYi9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvcGZmZnQvc3JjL3BmZmZ0LmMKK0BAIC0xMDAsNiAr MTAwLDcgQEAKKyAgICBBbHRpdmVjIHN1cHBvcnQgbWFjcm9zIAorICovCisgI2lmICFkZWZpbmVk KFBGRkZUX1NJTURfRElTQUJMRSkgJiYgKGRlZmluZWQoX19wcGNfXykgfHwgZGVmaW5lZChfX3Bw YzY0X18pKQorKyNpbmNsdWRlIDxhbHRpdmVjLmg+CisgdHlwZWRlZiB2ZWN0b3IgZmxvYXQgdjRz ZjsKKyAjICBkZWZpbmUgU0lNRF9TWiA0CisgIyAgZGVmaW5lIFZaRVJPKCkgKCh2ZWN0b3IgZmxv YXQpIHZlY19zcGxhdF91OCgwKSkKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9w YXJ0eS9za2lhL3NyYy9za3NsL1NrU0xTdHJpbmcuY3BwCisrKysgYi9zcmMvM3JkcGFydHkvY2hy b21pdW0vdGhpcmRfcGFydHkvc2tpYS9zcmMvc2tzbC9Ta1NMU3RyaW5nLmNwcAorQEAgLTE0Miw3 ICsxNDIsMTIgQEAgU3RyaW5nIHRvX3N0cmluZyhkb3VibGUgdmFsdWUpIHsKKyAgICAgaWYgKG5l ZWRzRG90WmVybykgeworICAgICAgICAgYnVmZmVyIDw8ICIuMCI7CisgICAgIH0KKy0gICAgcmV0 dXJuIFN0cmluZyhidWZmZXIuc3RyKCkuY19zdHIoKSk7CisrCisrICAgIHN0ZDo6c3RyaW5nIHJl dChidWZmZXIuc3RyKCkpOworKyAgICBpZiAoc2lnbmJpdCh2YWx1ZSkgJiYgcmV0WzBdID09ICcu JykgeworKyAgICAgICAgcmV0WzBdID0gJy0nOworKyAgICB9CisrICAgIHJldHVybiBTdHJpbmco cmV0LmNfc3RyKCkpOworIH0KKyAKKyBib29sIHN0b2QoY29uc3Qgc2tzdGQ6OnN0cmluZ192aWV3 JiBzLCBTS1NMX0ZMT0FUKiB2YWx1ZSkgeworLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Ro aXJkX3BhcnR5L3NxbGl0ZS9zcmMvYW1hbGdhbWF0aW9uL3NxbGl0ZTMuYworKysrIGIvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvYW1hbGdhbWF0aW9uL3NxbGl0 ZTMuYworQEAgLTE0NjI4LDcgKzE0NjI4LDggQEAgdHlwZWRlZiBJTlQxNl9UWVBFIExvZ0VzdDsK KyAjIGlmIGRlZmluZWQoaTM4NikgICAgICB8fCBkZWZpbmVkKF9faTM4Nl9fKSAgICAgIHx8IGRl ZmluZWQoX01fSVg4NikgfHwgICAgXAorICAgICAgZGVmaW5lZChfX3g4Nl82NCkgIHx8IGRlZmlu ZWQoX194ODZfNjRfXykgICAgfHwgZGVmaW5lZChfTV9YNjQpICB8fCAgICBcCisgICAgICBkZWZp bmVkKF9NX0FNRDY0KSAgfHwgZGVmaW5lZChfTV9BUk0pICAgICAgICB8fCBkZWZpbmVkKF9feDg2 KSAgIHx8ICAgIFwKKy0gICAgIGRlZmluZWQoX19BUk1FTF9fKSB8fCBkZWZpbmVkKF9fQUFSQ0g2 NEVMX18pIHx8IGRlZmluZWQoX01fQVJNNjQpCisrICAgICBkZWZpbmVkKF9fQVJNRUxfXykgfHwg ZGVmaW5lZChfX0FBUkNINjRFTF9fKSB8fCBkZWZpbmVkKF9NX0FSTTY0KSB8fCAgIFwKKysgICAg IGRlZmluZWQoX19wb3dlcnBjNjRfXykgJiYgKF9fQllURV9PUkRFUl9fID09IF9fT1JERVJfTElU VExFX0VORElBTl9fKQorICMgICBkZWZpbmUgU1FMSVRFX0JZVEVPUkRFUiAgICAxMjM0CisgIyBl bGlmIGRlZmluZWQoc3BhcmMpICAgICB8fCBkZWZpbmVkKF9fcHBjX18pIHx8IFwKKyAgICAgICAg ZGVmaW5lZChfX0FSTUVCX18pIHx8IGRlZmluZWQoX19BQVJDSDY0RUJfXykKKy0tLSBhL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL2FtYWxnYW1hdGlvbl9kZXYv c3FsaXRlMy5jCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvc3FsaXRl L3NyYy9hbWFsZ2FtYXRpb25fZGV2L3NxbGl0ZTMuYworQEAgLTE0NjQxLDcgKzE0NjQxLDggQEAg dHlwZWRlZiBJTlQxNl9UWVBFIExvZ0VzdDsKKyAjIGlmIGRlZmluZWQoaTM4NikgICAgICB8fCBk ZWZpbmVkKF9faTM4Nl9fKSAgICAgIHx8IGRlZmluZWQoX01fSVg4NikgfHwgICAgXAorICAgICAg ZGVmaW5lZChfX3g4Nl82NCkgIHx8IGRlZmluZWQoX194ODZfNjRfXykgICAgfHwgZGVmaW5lZChf TV9YNjQpICB8fCAgICBcCisgICAgICBkZWZpbmVkKF9NX0FNRDY0KSAgfHwgZGVmaW5lZChfTV9B Uk0pICAgICAgICB8fCBkZWZpbmVkKF9feDg2KSAgIHx8ICAgIFwKKy0gICAgIGRlZmluZWQoX19B Uk1FTF9fKSB8fCBkZWZpbmVkKF9fQUFSQ0g2NEVMX18pIHx8IGRlZmluZWQoX01fQVJNNjQpCisr ICAgICBkZWZpbmVkKF9fQVJNRUxfXykgfHwgZGVmaW5lZChfX0FBUkNINjRFTF9fKSB8fCBkZWZp bmVkKF9NX0FSTTY0KSB8fCAgIFwKKysgICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykgJiYgKF9f QllURV9PUkRFUl9fID09IF9fT1JERVJfTElUVExFX0VORElBTl9fKQorICMgICBkZWZpbmUgU1FM SVRFX0JZVEVPUkRFUiAgICAxMjM0CisgIyBlbGlmIGRlZmluZWQoc3BhcmMpICAgICB8fCBkZWZp bmVkKF9fcHBjX18pIHx8IFwKKyAgICAgICAgZGVmaW5lZChfX0FSTUVCX18pIHx8IGRlZmluZWQo X19BQVJDSDY0RUJfXykKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9z cWxpdGUvc3JjL2V4dC9ydHJlZS9ydHJlZS5jCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0v dGhpcmRfcGFydHkvc3FsaXRlL3NyYy9leHQvcnRyZWUvcnRyZWUuYworQEAgLTQ1MCw3ICs0NTAs NyBAQCBzdHJ1Y3QgUnRyZWVNYXRjaEFyZyB7CisgI2lmIGRlZmluZWQoaTM4NikgICAgIHx8IGRl ZmluZWQoX19pMzg2X18pICAgfHwgZGVmaW5lZChfTV9JWDg2KSB8fCAgICBcCisgICAgIGRlZmlu ZWQoX194ODZfNjQpIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfTV9YNjQpICB8 fCAgICBcCisgICAgIGRlZmluZWQoX01fQU1ENjQpIHx8IGRlZmluZWQoX01fQVJNKSAgICAgfHwg ZGVmaW5lZChfX3g4NikgICB8fCAgICBcCistICAgIGRlZmluZWQoX19hcm1fXykKKysgICAgZGVm aW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pICYmIChfX0JZVEVfT1JERVJf XyA9PSBfX09SREVSX0xJVFRMRV9FTkRJQU5fXykKKyAjIGRlZmluZSBTUUxJVEVfQllURU9SREVS ICAgIDEyMzQKKyAjZWxpZiBkZWZpbmVkKHNwYXJjKSAgICB8fCBkZWZpbmVkKF9fcHBjX18pCisg IyBkZWZpbmUgU1FMSVRFX0JZVEVPUkRFUiAgICA0MzIxCistLS0gYS9zcmMvM3JkcGFydHkvY2hy b21pdW0vdGhpcmRfcGFydHkvc3FsaXRlL3NyYy9zcmMvc3FsaXRlSW50LmgKKysrKyBiL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL3NyYy9zcWxpdGVJbnQuaAor QEAgLTg5MCw3ICs4OTAsOCBAQCB0eXBlZGVmIElOVDE2X1RZUEUgTG9nRXN0OworICMgaWYgZGVm aW5lZChpMzg2KSAgICAgIHx8IGRlZmluZWQoX19pMzg2X18pICAgICAgfHwgZGVmaW5lZChfTV9J WDg2KSB8fCAgICBcCisgICAgICBkZWZpbmVkKF9feDg2XzY0KSAgfHwgZGVmaW5lZChfX3g4Nl82 NF9fKSAgICB8fCBkZWZpbmVkKF9NX1g2NCkgIHx8ICAgIFwKKyAgICAgIGRlZmluZWQoX01fQU1E NjQpICB8fCBkZWZpbmVkKF9NX0FSTSkgICAgICAgIHx8IGRlZmluZWQoX194ODYpICAgfHwgICAg XAorLSAgICAgZGVmaW5lZChfX0FSTUVMX18pIHx8IGRlZmluZWQoX19BQVJDSDY0RUxfXykgfHwg ZGVmaW5lZChfTV9BUk02NCkKKysgICAgIGRlZmluZWQoX19BUk1FTF9fKSB8fCBkZWZpbmVkKF9f QUFSQ0g2NEVMX18pIHx8IGRlZmluZWQoX01fQVJNNjQpIHx8IFwKKysgICAgIGRlZmluZWQoX19w b3dlcnBjNjRfXykgJiYgKF9fQllURV9PUkRFUl9fID09IF9fT1JERVJfTElUVExFX0VORElBTl9f KQorICMgICBkZWZpbmUgU1FMSVRFX0JZVEVPUkRFUiAgICAxMjM0CisgIyBlbGlmIGRlZmluZWQo c3BhcmMpICAgICB8fCBkZWZpbmVkKF9fcHBjX18pIHx8IFwKKyAgICAgICAgZGVmaW5lZChfX0FS TUVCX18pIHx8IGRlZmluZWQoX19BQVJDSDY0RUJfXykKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS90aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy9kZXNrdG9wX2NhcHR1cmUvZGlmZmVyX2Js b2NrLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvd2VicnRjL21v ZHVsZXMvZGVza3RvcF9jYXB0dXJlL2RpZmZlcl9ibG9jay5jYworQEAgLTMwLDExICszMCw3IEBA IGJvb2wgVmVjdG9yRGlmZmVyZW5jZShjb25zdCB1aW50OF90KiBpbWEKKyAgIHN0YXRpYyBib29s ICgqZGlmZl9wcm9jKShjb25zdCB1aW50OF90KiwgY29uc3QgdWludDhfdCopID0gbnVsbHB0cjsK KyAKKyAgIGlmICghZGlmZl9wcm9jKSB7CistI2lmIGRlZmluZWQoV0VCUlRDX0FSQ0hfQVJNX0ZB TUlMWSkgfHwgZGVmaW5lZChXRUJSVENfQVJDSF9NSVBTX0ZBTUlMWSkKKy0gICAgLy8gRm9yIEFS TSBhbmQgTUlQUyBwcm9jZXNzb3JzLCBhbHdheXMgdXNlIEMgdmVyc2lvbi4KKy0gICAgLy8gVE9E TyhoY2xhbSk6IEltcGxlbWVudCBhIE5FT04gdmVyc2lvbi4KKy0gICAgZGlmZl9wcm9jID0gJlZl Y3RvckRpZmZlcmVuY2VfQzsKKy0jZWxzZQorKyNpZiBkZWZpbmVkKFdFQlJUQ19BUkNIX1g4Nl9G QU1JTFkpCisgICAgIGJvb2wgaGF2ZV9zc2UyID0gR2V0Q1BVSW5mbyhrU1NFMikgIT0gMDsKKyAg ICAgLy8gRm9yIHg4NiBwcm9jZXNzb3JzLCBjaGVjayBpZiBTU0UyIGlzIHN1cHBvcnRlZC4KKyAg ICAgaWYgKGhhdmVfc3NlMiAmJiBrQmxvY2tTaXplID09IDMyKSB7CitAQCAtNDQsNiArNDAsMTAg QEAgYm9vbCBWZWN0b3JEaWZmZXJlbmNlKGNvbnN0IHVpbnQ4X3QqIGltYQorICAgICB9IGVsc2Ug eworICAgICAgIGRpZmZfcHJvYyA9ICZWZWN0b3JEaWZmZXJlbmNlX0M7CisgICAgIH0KKysjZWxz ZQorKyAgICAvLyBGb3Igb3RoZXIgcHJvY2Vzc29ycywgYWx3YXlzIHVzZSBDIHZlcnNpb24uCisr ICAgIC8vIFRPRE8oaGNsYW0pOiBJbXBsZW1lbnQgYSBORU9OIHZlcnNpb24uCisrICAgIGRpZmZf cHJvYyA9ICZWZWN0b3JEaWZmZXJlbmNlX0M7CisgI2VuZGlmCisgICB9CisgCistLS0gYS9zcmMv M3JkcGFydHkvY2hyb21pdW0vdjgvQlVJTEQuZ24KKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS92OC9CVUlMRC5nbgorQEAgLTEwODMsNiArMTA4MywxMiBAQCBjb25maWcoInRvb2xjaGFpbiIp IHsKKyAgICAgfQorICAgICBpZiAoaG9zdF9ieXRlb3JkZXIgPT0gImxpdHRsZSIpIHsKKyAgICAg ICBkZWZpbmVzICs9IFsgIlY4X1RBUkdFVF9BUkNIX1BQQ19MRSIgXQorKyAgICAgIGNmbGFncyAr PSBbCisrICAgICAgICAjIEVuYWJsZSB1c2FnZSBvZiBBbHRpVmVjLCBWU1gsIGFuZCBvdGhlciBQ T1dFUjggYW5kIGhpZ2hlciBmZWF0dXJlcworKyAgICAgICAgIi1tY3B1PXBvd2VyOCIsCisrICAg ICAgICAiLW1hbHRpdmVjIiwKKysgICAgICAgICItbXZzeCIsCisrICAgICAgXQorICAgICB9IGVs c2UgaWYgKGhvc3RfYnl0ZW9yZGVyID09ICJiaWciKSB7CisgICAgICAgZGVmaW5lcyArPSBbICJW OF9UQVJHRVRfQVJDSF9QUENfQkUiIF0KKyAgICAgICBpZiAoY3VycmVudF9vcyA9PSAiYWl4Iikg eworLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3VpL2dsL2ZlYXR1cmVzLmduaQorKysrIGIv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3VpL2dsL2ZlYXR1cmVzLmduaQorQEAgLTM1LDcgKzM1LDgg QEAgZGVjbGFyZV9hcmdzKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgIChpc19tYWMgJiYg dXNlX2VnbCkgfHwgaXNfY2hyb21lb3NfYXNoIHx8IGlzX2Z1Y2hzaWEpICYmCisgICAgICAgICAg ICAgICAgICAgICAgICAodGFyZ2V0X2NwdSA9PSAieDg2IiB8fCB0YXJnZXRfY3B1ID09ICJ4NjQi IHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2NwdSA9PSAiYXJtIiB8fCB0YXJn ZXRfY3B1ID09ICJhcm02NCIgfHwKKy0gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRfY3B1 ID09ICJtaXBzZWwiIHx8IHRhcmdldF9jcHUgPT0gIm1pcHM2NGVsIikKKysgICAgICAgICAgICAg ICAgICAgICAgICB0YXJnZXRfY3B1ID09ICJtaXBzZWwiIHx8IHRhcmdldF9jcHUgPT0gIm1pcHM2 NGVsIiB8fAorKyAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9jcHUgPT0gInBwYzY0IikK KyB9CisgCisgdXNlX2dseCA9IHVzZV94MTEgfHwgb3pvbmVfcGxhdGZvcm1feDExCistLS0gYS9z cmMvM3JkcGFydHkvY2hyb21pdW0vdjgvdGVzdC9CVUlMRC5nbgorKysrIGIvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3Y4L3Rlc3QvQlVJTEQuZ24KK0BAIC00Miw3ICs0Miw2IEBAIGdyb3VwKCJnbl9h bGwiKSB7CisgICAgICAgImJlbmNobWFya3MvY3BwOmduX2FsbCIsCisgICAgICAgImNjdGVzdDpj Y3Rlc3QiLAorICAgICAgICJjY3Rlc3Q6Z2VuZXJhdGUtYnl0ZWNvZGUtZXhwZWN0YXRpb25zIiwK Ky0gICAgICAidW5pdHRlc3RzOnVuaXR0ZXN0cyIsCisgICAgIF0KKyAgIH0KKyB9CitAQCAtODQs NyArODMsNiBAQCBncm91cCgidjhfYm90X2RlZmF1bHQiKSB7CisgICAgICJtZXNzYWdlOnY4X21l c3NhZ2UiLAorICAgICAibWpzdW5pdDp2OF9tanN1bml0IiwKKyAgICAgIm1rZ3Jva2R1bXA6bWtn cm9rZHVtcCIsCistICAgICJ1bml0dGVzdHM6dW5pdHRlc3RzIiwKKyAgICAgIndlYmtpdDp2OF93 ZWJraXQiLAorICAgXQorIAorQEAgLTEwOSw3ICsxMDcsNiBAQCBncm91cCgidjhfZGVmYXVsdCIp IHsKKyAgICAgIm1lc3NhZ2U6djhfbWVzc2FnZSIsCisgICAgICJtanN1bml0OnY4X21qc3VuaXQi LAorICAgICAibWtncm9rZHVtcDpta2dyb2tkdW1wIiwKKy0gICAgInVuaXR0ZXN0czp1bml0dGVz dHMiLAorICAgXQorIAorICAgaWYgKHY4X2VuYWJsZV93ZWJhc3NlbWJseSkgeworLS0tIC9kZXYv bnVsbAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Rldi9udWxsCitAQCAtMCwwICsxLDM5 IEBACisrLyoKKysgKiBBdXRvZ2VuZXJhdGVkIGJ5IHRoZSBNZXNvbiBidWlsZCBzeXN0ZW0uCisr ICogRG8gbm90IGVkaXQsIHlvdXIgY2hhbmdlcyB3aWxsIGJlIGxvc3QuCisrICovCisrCisrI3By YWdtYSBvbmNlCisrCisrI2RlZmluZSBBUkNIX0FBUkNINjQgMAorKworKyNkZWZpbmUgQVJDSF9B Uk0gMAorKworKyNkZWZpbmUgQVJDSF9QUEM2NExFIDEKKysKKysjZGVmaW5lIEFSQ0hfWDg2IDAK KysKKysjZGVmaW5lIEFSQ0hfWDg2XzMyIDAKKysKKysjZGVmaW5lIEFSQ0hfWDg2XzY0IDAKKysK KysjZGVmaW5lIENPTkZJR18xNkJQQyAxCisrCisrI2RlZmluZSBDT05GSUdfOEJQQyAxCisrCisr Ly8gI2RlZmluZSBDT05GSUdfTE9HIDEgLS0gTG9nZ2luZyBpcyBjb250cm9sbGVkIGJ5IENocm9t aXVtCisrCisrI2RlZmluZSBFTkRJQU5ORVNTX0JJRyAwCisrCisrI2RlZmluZSBIQVZFX0FTTSAx CisrCisrI2RlZmluZSBIQVZFX0NMT0NLX0dFVFRJTUUgMQorKworKyNkZWZpbmUgSEFWRV9ETFNZ TSAxCisrCisrI2RlZmluZSBIQVZFX0dFVEFVWFZBTCAxCisrCisrI2RlZmluZSBIQVZFX1BPU0lY X01FTUFMSUdOIDEKKysKKysjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQorKworLS0tIGEvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Fic2VpbC1jcHAvYWJzbC9iYXNlL2ludGVybmFs L3Vuc2NhbGVkY3ljbGVjbG9jay5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRf cGFydHkvYWJzZWlsLWNwcC9hYnNsL2Jhc2UvaW50ZXJuYWwvdW5zY2FsZWRjeWNsZWNsb2NrLmgK K0BAIC00Niw3ICs0Niw3IEBACisgCisgLy8gVGhlIGZvbGxvd2luZyBwbGF0Zm9ybXMgaGF2ZSBh biBpbXBsZW1lbnRhdGlvbiBvZiBhIGhhcmR3YXJlIGNvdW50ZXIuCisgI2lmIGRlZmluZWQoX19p Mzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwg XAorLSAgZGVmaW5lZChfX3Bvd2VycGNfXykgfHwgZGVmaW5lZChfX3BwY19fKSB8fCBcCisrICAo KGRlZmluZWQoX19wb3dlcnBjX18pIHx8IGRlZmluZWQoX19wcGNfXykpICYmIGRlZmluZWQoX19H TElCQ19fKSkgfHwgXAorICAgZGVmaW5lZChfTV9JWDg2KSB8fCBkZWZpbmVkKF9NX1g2NCkKKyAj ZGVmaW5lIEFCU0xfSEFWRV9VTlNDQUxFRF9DWUNMRUNMT0NLX0lNUExFTUVOVEFUSU9OIDEKKyAj ZWxzZQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Fic2VpbC1jcHAv YWJzbC9kZWJ1Z2dpbmcvaW50ZXJuYWwvc3RhY2t0cmFjZV9jb25maWcuaAorKysrIGIvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Fic2VpbC1jcHAvYWJzbC9kZWJ1Z2dpbmcvaW50 ZXJuYWwvc3RhY2t0cmFjZV9jb25maWcuaAorQEAgLTU5LDcgKzU5LDcgQEAKKyAjZWxpZiBkZWZp bmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pCisgI2RlZmluZSBBQlNMX1NUQUNL VFJBQ0VfSU5MX0hFQURFUiBcCisgICAiYWJzbC9kZWJ1Z2dpbmcvaW50ZXJuYWwvc3RhY2t0cmFj ZV94ODYtaW5sLmluYyIKKy0jZWxpZiBkZWZpbmVkKF9fcHBjX18pIHx8IGRlZmluZWQoX19QUENf XykKKysjZWxpZiBkZWZpbmVkKF9fcHBjX18pIHx8IGRlZmluZWQoX19QUENfXykgJiYgZGVmaW5l ZChfX0dMSUJDX18pCisgI2RlZmluZSBBQlNMX1NUQUNLVFJBQ0VfSU5MX0hFQURFUiBcCisgICAi YWJzbC9kZWJ1Z2dpbmcvaW50ZXJuYWwvc3RhY2t0cmFjZV9wb3dlcnBjLWlubC5pbmMiCisgI2Vs aWYgZGVmaW5lZChfX2FhcmNoNjRfXykKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNl L2FsbG9jYXRvci9wYXJ0aXRpb25fYWxsb2NhdG9yL3BhcnRpdGlvbl9hbGxvY19jb25maWcuaAor KysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jhc2UvYWxsb2NhdG9yL3BhcnRpdGlvbl9hbGxv Y2F0b3IvcGFydGl0aW9uX2FsbG9jX2NvbmZpZy5oCitAQCAtMTAwLDcgKzEwMCw4IEBAIHN0YXRp Y19hc3NlcnQoc2l6ZW9mKHZvaWQqKSAhPSA4LCAiIik7CisgLy8gUFVUX1JFRl9DT1VOVF9JTl9Q UkVWSU9VU19TTE9UIGRvZXMuIEluIHRoaXMgY2FzZSB0aGUgcmVmY291bnQgb3ZlcmxhcHMgd2l0 aAorIC8vIHRoZSBuZXh0IHBvaW50ZXIgc2hhZG93IGZvciB0aGUgc21hbGxlc3QgYnVja2V0Lgor ICNpZiAhKGRlZmluZWQoT1NfTUFDKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVX0FSTTY0KSkgJiYgXAor LSAgICAhQlVJTERGTEFHKFBVVF9SRUZfQ09VTlRfSU5fUFJFVklPVVNfU0xPVCkKKysgICAgIUJV SUxERkxBRyhQVVRfUkVGX0NPVU5UX0lOX1BSRVZJT1VTX1NMT1QpICYmIFwKKysgICAgKCFkZWZp bmVkKF9fR0xJQkMpICYmICFkZWZpbmVkKF9fcG93ZXJwYzY0X18pKQorICNkZWZpbmUgUEFfSEFT X0ZSRUVMSVNUX0hBUkRFTklORworICNlbmRpZgorIAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL2J1aWxkL2Rvd25sb2FkX25hY2xfdG9vbGNoYWlucy5weQorKysrIGIvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL2J1aWxkL2Rvd25sb2FkX25hY2xfdG9vbGNoYWlucy5weQorQEAgLTEzLDYgKzEz LDggQEAgaW1wb3J0IHN5cworIAorIAorIGRlZiBNYWluKGFyZ3MpOgorKyAgaWYgJ2Rpc2FibGVf bmFjbD0xJyBpbiBvcy5lbnZpcm9uLmdldCgnR1lQX0RFRklORVMnLCAnJyk6CisrICAgIHJldHVy biAwCisgICBzY3JpcHRfZGlyID0gb3MucGF0aC5kaXJuYW1lKG9zLnBhdGguYWJzcGF0aChfX2Zp bGVfXykpCisgICBzcmNfZGlyID0gb3MucGF0aC5kaXJuYW1lKHNjcmlwdF9kaXIpCisgICBuYWNs X2RpciA9IG9zLnBhdGguam9pbihzcmNfZGlyLCAnbmF0aXZlX2NsaWVudCcpCistLS0gYS9zcmMv M3JkcGFydHkvY2hyb21pdW0vY2hyb21lL2luc3RhbGxlci9saW51eC9CVUlMRC5nbgorKysrIGIv c3JjLzNyZHBhcnR5L2Nocm9taXVtL2Nocm9tZS9pbnN0YWxsZXIvbGludXgvQlVJTEQuZ24KK0BA IC0xMDAsOCArMTAwLDYgQEAgcGFja2FnaW5nX2ZpbGVzID0gcGFja2FnaW5nX2ZpbGVzX2JpbmFy aQorICAgICAgICAgICAgICAgICAgICAgIiRyb290X291dF9kaXIveGRnLW1pbWUiLAorICAgICAg ICAgICAgICAgICAgICAgIiRyb290X291dF9kaXIveGRnLXNldHRpbmdzIiwKKyAgICAgICAgICAg ICAgICAgICAgICIkcm9vdF9vdXRfZGlyL2xvY2FsZXMvZW4tVVMucGFrIiwKKy0gICAgICAgICAg ICAgICAgICAgICIkcm9vdF9vdXRfZGlyL01FSVByZWxvYWQvbWFuaWZlc3QuanNvbiIsCistICAg ICAgICAgICAgICAgICAgICAiJHJvb3Rfb3V0X2Rpci9NRUlQcmVsb2FkL3ByZWxvYWRlZF9kYXRh LnBiIiwKKyAgICAgICAgICAgICAgICAgICBdCisgCisgYWN0aW9uX2ZvcmVhY2goImNhbGN1bGF0 ZV9kZWJfZGVwZW5kZW5jaWVzIikgeworQEAgLTMyMSw3ICszMTksNiBAQCBncm91cCgiaW5zdGFs bGVyX2RlcHMiKSB7CisgICAgICI6dGhlbWVfZmlsZXMiLAorICAgICAiLy9jaHJvbWUiLAorICAg ICAiLy9jaHJvbWU6cGFja2VkX3Jlc291cmNlcyIsCistICAgICIvL2Nocm9tZS9icm93c2VyL3Jl c291cmNlcy9tZWRpYS9tZWlfcHJlbG9hZDpjb21wb25lbnQiLAorICAgICAiLy9jb21wb25lbnRz L2NyYXNoL2NvcmUvYXBwOmNocm9tZV9jcmFzaHBhZF9oYW5kbGVyIiwKKyAgICAgIi8vc2FuZGJv eC9saW51eDpjaHJvbWVfc2FuZGJveCIsCisgICBdCistLS0gL2Rldi9udWxsCisrKysgYi9zcmMv M3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9wcGM2NF9saW51 eF9zeXNjYWxscy5oCitAQCAtMCwwICsxLDEyIEBACisrLy8gQ29weXJpZ2h0IDIwMTQgVGhlIENo cm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisrLy8gVXNlIG9mIHRoaXMgc291 cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQor Ky8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisrCisrI2lmbmRlZiBTQU5EQk9YX0xJTlVY X1NZU1RFTV9IRUFERVJTX1BQQzY0X0xJTlVYX1NZU0NBTExTX0hfCisrI2RlZmluZSBTQU5EQk9Y X0xJTlVYX1NZU1RFTV9IRUFERVJTX1BQQzY0X0xJTlVYX1NZU0NBTExTX0hfCisrCisrI2luY2x1 ZGUgPGFzbS91bmlzdGQuaD4KKysKKysvL1RPRE86IGlzIGl0IG5lY2Vzc2FyeSB0byByZWRlZmlu ZSBzeXNjYWxsIG51bWJlcnMgZm9yIFBQQzY0PworKworKyNlbmRpZiAgLy8gU0FOREJPWF9MSU5V WF9TWVNURU1fSEVBREVSU19QUEM2NF9MSU5VWF9TWVNDQUxMU19IXworLS0tIC9kZXYvbnVsbAor KysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMv cHBjNjRfbGludXhfdWNvbnRleHQuaAorQEAgLTAsMCArMSwxMiBAQAorKy8vIENvcHlyaWdodCAy MDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKy8vIFVzZSBv ZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhh dCBjYW4gYmUKKysvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorKworKyNpZm5kZWYgU0FO REJPWF9MSU5VWF9TWVNURU1fSEVBREVSU19QUEM2NF9MSU5VWF9VQ09OVEVYVF9IXworKyNkZWZp bmUgU0FOREJPWF9MSU5VWF9TWVNURU1fSEVBREVSU19QUEM2NF9MSU5VWF9VQ09OVEVYVF9IXwor KworKyNpbmNsdWRlIDxzeXMvdWNvbnRleHQuaD4KKysKKysvL1RPRE86IGlzIGl0IG5lY2Vzc2Fy eSB0byByZWRlZmluZSB1Y29udGV4dCBvbiBQUEM2ND8KKysKKysjZW5kaWYgIC8vIFNBTkRCT1hf TElOVVhfU1lTVEVNX0hFQURFUlNfUFBDNjRfTElOVVhfVUNPTlRFWFRfSF8KKy0tLSBhL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL25ldC9o dHRwX3RyYW5zcG9ydF9saWJjdXJsLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhp cmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9uZXQvaHR0cF90cmFuc3BvcnRfbGliY3Vy bC5jYworQEAgLTIzNiw2ICsyMzYsMTIgQEAgc3RkOjpzdHJpbmcgVXNlckFnZW50KCkgeworICNl bGlmIGRlZmluZWQoQVJDSF9DUFVfQklHX0VORElBTikKKyAgICAgc3RhdGljIGNvbnN0ZXhwciBj aGFyIGFyY2hbXSA9ICJhYXJjaDY0X2JlIjsKKyAjZW5kaWYKKysjZWxpZiBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pCisrI2lmIGRlZmluZWQoQVJDSF9DUFVfTElUVExFX0VORElBTikKKysgICAgc3Rh dGljIGNvbnN0ZXhwciBjaGFyIGFyY2hbXSA9ICJwcGM2NGxlIjsKKysjZWxpZiBkZWZpbmVkKEFS Q0hfQ1BVX0JJR19FTkRJQU4pCisrICAgIHN0YXRpYyBjb25zdGV4cHIgY2hhciBhcmNoW10gPSAi cHBjNjQiOworKyNlbmRpZgorICNlbHNlCisgI2Vycm9yIFBvcnQKKyAjZW5kaWYKKy0tLSAvZGV2 L251bGwKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9kYXYxZC9jb25m aWcvbGludXgvcHBjNjQvY29uZmlnLmgKK0BAIC0wLDAgKzEsMzkgQEAKKysvKgorKyAqIEF1dG9n ZW5lcmF0ZWQgYnkgdGhlIE1lc29uIGJ1aWxkIHN5c3RlbS4KKysgKiBEbyBub3QgZWRpdCwgeW91 ciBjaGFuZ2VzIHdpbGwgYmUgbG9zdC4KKysgKi8KKysKKysjcHJhZ21hIG9uY2UKKysKKysjZGVm aW5lIEFSQ0hfQUFSQ0g2NCAwCisrCisrI2RlZmluZSBBUkNIX0FSTSAwCisrCisrI2RlZmluZSBB UkNIX1BQQzY0TEUgMQorKworKyNkZWZpbmUgQVJDSF9YODYgMAorKworKyNkZWZpbmUgQVJDSF9Y ODZfMzIgMAorKworKyNkZWZpbmUgQVJDSF9YODZfNjQgMAorKworKyNkZWZpbmUgQ09ORklHXzE2 QlBDIDEKKysKKysjZGVmaW5lIENPTkZJR184QlBDIDEKKysKKysvLyAjZGVmaW5lIENPTkZJR19M T0cgMSAtLSBMb2dnaW5nIGlzIGNvbnRyb2xsZWQgYnkgQ2hyb21pdW0KKysKKysjZGVmaW5lIEVO RElBTk5FU1NfQklHIDAKKysKKysjZGVmaW5lIEhBVkVfQVNNIDEKKysKKysjZGVmaW5lIEhBVkVf Q0xPQ0tfR0VUVElNRSAxCisrCisrI2RlZmluZSBIQVZFX0RMU1lNIDEKKysKKysjZGVmaW5lIEhB VkVfR0VUQVVYVkFMIDEKKysKKysjZGVmaW5lIEhBVkVfUE9TSVhfTUVNQUxJR04gMQorKworKyNk ZWZpbmUgSEFWRV9VTklTVERfSCAxCisrCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdp bmUvcGF0Y2hlcy8wOTAzLXh4eC1wcGM2NGxlLXN3aWZ0c2hhZGVyLnBhdGNoIGIvc3JjcGtncy9x dDYtd2ViZW5naW5lL3BhdGNoZXMvMDkwMy14eHgtcHBjNjRsZS1zd2lmdHNoYWRlci5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjFhOGNkODM2OGRhMQotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA5MDMteHh4LXBw YzY0bGUtc3dpZnRzaGFkZXIucGF0Y2gKQEAgLTAsMCArMSwxOCBAQAorLS0tIGEvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3RoaXJkX3BhcnR5L2xsdm0tMTAu MC9CVUlMRC5nbgorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3N3aWZ0 c2hhZGVyL3RoaXJkX3BhcnR5L2xsdm0tMTAuMC9CVUlMRC5nbgorQEAgLTU3Niw2ICs1NzYsNyBA QCBzd2lmdHNoYWRlcl9sbHZtX3NvdXJjZV9zZXQoInN3aWZ0c2hhZGVyCisgICAgICJsbHZtL2xp Yi9NQy9NQ0FzbUluZm9DT0ZGLmNwcCIsCisgICAgICJsbHZtL2xpYi9NQy9NQ0FzbUluZm9EYXJ3 aW4uY3BwIiwKKyAgICAgImxsdm0vbGliL01DL01DQXNtSW5mb0VMRi5jcHAiLAorKyAgICAibGx2 bS9saWIvTUMvTUNBc21JbmZvWENPRkYuY3BwIiwKKyAgICAgImxsdm0vbGliL01DL01DQXNtTWFj cm8uY3BwIiwKKyAgICAgImxsdm0vbGliL01DL01DQXNtU3RyZWFtZXIuY3BwIiwKKyAgICAgImxs dm0vbGliL01DL01DQXNzZW1ibGVyLmNwcCIsCitAQCAtNjMxLDYgKzYzMiw3IEBAIHN3aWZ0c2hh ZGVyX2xsdm1fc291cmNlX3NldCgic3dpZnRzaGFkZXIKKyAgICAgImxsdm0vbGliL01DL01DV2lu Q09GRlN0cmVhbWVyLmNwcCIsCisgICAgICJsbHZtL2xpYi9NQy9NQ1dpbkVILmNwcCIsCisgICAg ICJsbHZtL2xpYi9NQy9NQ1hDT0ZGU3RyZWFtZXIuY3BwIiwKKysgICAgImxsdm0vbGliL01DL01D WENPRkZPYmplY3RUYXJnZXRXcml0ZXIuY3BwIiwKKyAgICAgImxsdm0vbGliL01DL01hY2hPYmpl Y3RXcml0ZXIuY3BwIiwKKyAgICAgImxsdm0vbGliL01DL1N0cmluZ1RhYmxlQnVpbGRlci5jcHAi LAorICAgICAibGx2bS9saWIvTUMvU3VidGFyZ2V0RmVhdHVyZS5jcHAiLApkaWZmIC0tZ2l0IGEv c3JjcGtncy9xdDYtd2ViZW5naW5lL3RlbXBsYXRlIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3Rl bXBsYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMmYwZGUyYzdh ZGY2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3RlbXBsYXRlCkBA IC0wLDAgKzEsMTc4IEBACisjIFRlbXBsYXRlIGZpbGUgZm9yICdxdDYtd2ViZW5naW5lJworcGtn bmFtZT1xdDYtd2ViZW5naW5lCit2ZXJzaW9uPTYuMy4xCityZXZpc2lvbj0xCit3cmtzcmM9InF0 d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0iCitidWlsZF9zdHlsZT1jbWFrZQor Y29uZmlndXJlX2FyZ3M9Ii1EUVRfQlVJTERfVE9PTFNfV0hFTl9DUk9TU0NPTVBJTElORz10cnVl CisgLURRVF9GRUFUVVJFX3dlYmVuZ2luZV9zeXN0ZW1fZmZtcGVnPU9OCisgLURRVF9GRUFUVVJF X3dlYmVuZ2luZV9zeXN0ZW1fbGliZXZlbnQ9T04KKyAtRFFUX0ZFQVRVUkVfd2ViZW5naW5lX3N5 c3RlbV9nbj1PTgorIC1EUVRfRkVBVFVSRV93ZWJlbmdpbmVfc3lzdGVtX2ljdT1PTgorIC1EUVRf RkVBVFVSRV93ZWJlbmdpbmVfd2VicnRjX3BpcGV3aXJlPU9OCisgLUROaW5qYV9FWEVDVVRBQkxF PSRYQlBTX1dSQVBQRVJESVIvbmluamEKKyAkKHZvcHRfYm9vbCBleGFtcGxlcyBRVF9CVUlMRF9F WEFNUExFUykKKyAtRFBLR19DT05GSUdfSE9TVF9FWEVDVVRBQkxFPSR7UEtHX0NPTkZJR19GT1Jf QlVJTER9IgoraG9zdG1ha2VkZXBlbmRzPSJxdDYtYmFzZS1kZXZlbCBwZXJsIHBrZy1jb25maWcg bm9kZWpzIHB5dGhvbjMtaHRtbDVsaWIKKyBxdDYtZGVjbGFyYXRpdmUtZGV2ZWwgcHJvdG9idWYg Z3BlcmYgZmxleCBuc3MtZGV2ZWwgbGlid2VicC1kZXZlbAorIGljdS1kZXZlbCBsaWJldmVudC1k ZXZlbCIKK21ha2VkZXBlbmRzPSJxdDYtYmFzZS1kZXZlbCBxdDYtZGVjbGFyYXRpdmUtZGV2ZWwg cHVsc2VhdWRpby1kZXZlbAorIHF0Ni10b29scy1kZXZlbCBxdDYtd2Vic29ja2V0cy1kZXZlbCBs aWJmbGFjLWRldmVsCisgYWxzYS1saWItZGV2ZWwgbGlidnB4LWRldmVsIHBjaXV0aWxzLWRldmVs IG9wdXMtZGV2ZWwgbGlieHNsdC1kZXZlbAorIGxpYnhtbDItZGV2ZWwgZnJlZXR5cGUtZGV2ZWwg bGNtczItZGV2ZWwgbGlid2VicC1kZXZlbCBpY3UtZGV2ZWwKKyByZTItZGV2ZWwgemxpYi1kZXZl bCBsaWJwbmctZGV2ZWwgbWluaXppcC1kZXZlbCBoYXJmYnV6ei1kZXZlbAorIG5zcy1kZXZlbCBs aWJYY3Vyc29yLWRldmVsIGxpYlhjb21wb3NpdGUtZGV2ZWwgbGliWFNjcm5TYXZlci1kZXZlbAor IHByb3RvYnVmLWRldmVsIGZmbXBlZy1kZXZlbCBzbmFwcHktZGV2ZWwgbGliZXZlbnQtZGV2ZWwg cGlwZXdpcmUtZGV2ZWwKKyBsaWJ4a2JmaWxlLWRldmVsIHF0Ni1sb2NhdGlvbi1kZXZlbCBxdDYt d2ViY2hhbm5lbC1kZXZlbCBsaWJ4c2htZmVuY2UtZGV2ZWwiCisjIE5vdCB3b3JraW5nIHByb3Bl cmx5IHdpdGggSFRUUFMgd2l0aG91dCB0aG9zZSBwYWNrYWdlcworIyBOb3Qgc3RyaWN0IGRlcGVu ZGVuY2llcywgdGhvdWdoCitkZXBlbmRzPSJxdDYtcGx1Z2luLXRscy1vcGVuc3NsIHF0Ni1wbHVn aW4tdGxzLXFjZXJ0b25seSIKK3Nob3J0X2Rlc2M9IkNyb3NzLXBsYXRmb3JtIGFwcGxpY2F0aW9u IGFuZCBVSSBmcmFtZXdvcmsgLSBXZWJlbmdpbmUiCittYWludGFpbmVyPSJKb2huIDxtZUBqb2hu bnluYXRvci5kZXY+IgorbGljZW5zZT0iR1BMLTMuMC1vbmx5LCBHUEwtMi4wLW9ubHksIExHUEwt My4wLW9ubHkgQlNELTMtQ2xhdXNlIgoraG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnF0LmlvIgorZGlz dGZpbGVzPSJodHRwczovL2Rvd25sb2FkLnF0LmlvL29mZmljaWFsX3JlbGVhc2VzL3F0LyR7dmVy c2lvbiUuKn0vJHt2ZXJzaW9ufS9zdWJtb2R1bGVzL3F0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3Jj LSR7dmVyc2lvbn0udGFyLnh6IgorY2hlY2tzdW09YWQ3YTMzYjIxYTk1NmRlZGEzN2M1ODdkNTBm ODIxY2EzODE2NDAzYWUzMWJhOWI1ZDU5ZDAxNTYxYWQ2NmU0NworCitpZiBbIC16ICIkQ1JPU1Nf QlVJTEQiIF07dGhlbgorCWNvbmZpZ3VyZV9hcmdzKz0iIC1EQ01BS0VfVE9PTENIQUlOX0ZJTEU9 L3Vzci9saWIvY21ha2UvUXQ2L3F0LnRvb2xjaGFpbi5jbWFrZSIKK2ZpCisKK2lmIFsgIiRYQlBT X0xJQkMiID0gIm11c2wiIF07IHRoZW4KKwlob3N0bWFrZWRlcGVuZHMrPSIgbXVzbC1sZWdhY3kt Y29tcGF0IgorZmkKKworaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMiID0gIm11c2wiIF07IHRoZW4K KwltYWtlZGVwZW5kcys9IiBtdXNsLWxlZ2FjeS1jb21wYXQiCitmaQorCitpZiBbICEgIiRYQlBT X1dPUkRTSVpFIiA9ICIkWEJQU19UQVJHRVRfV09SRFNJWkUiIF07IHRoZW4KKwlicm9rZW49Indl YmVuZ2luZSBjYW4gYmUgYnVpbHQgb25seSBpZiB3b3JkIHNpemUgbWF0Y2hlcyIKK2ZpCisKK2lm IFsgIiRYQlBTX1dPUkRTSVpFIiAtZXEgMzIgXTsgdGhlbgorCW5vZGVidWc9eWVzCisJTERGTEFH Uz0iLVdsLC0tbm8ta2VlcC1tZW1vcnkiCitmaQorCitpZiBbICIkWEJQU19UQVJHRVRfRU5ESUFO IiAhPSAibGUiIF07IHRoZW4KKwlicm9rZW49IndlYmVuZ2luZSBvbmx5IHN1cHBvcnRzIGxpdHRs ZSBlbmRpYW4iCitmaQorCitidWlsZF9vcHRpb25zPSJzbmRpbyBleGFtcGxlcyIKK2J1aWxkX29w dGlvbnNfZGVmYXVsdD0iIgorZGVzY19vcHRpb25fZXhhbXBsZXM9IkJ1aWxkIGV4YW1wbGVzIgor ZGVzY19vcHRpb25fc25kaW89IkVuYWJsZSBzdXBwb3J0IGZvciBzbmRpbyIKKworc3VicGFja2Fn ZXM9InF0Ni13ZWJlbmdpbmUtZGV2ZWwiCisKK2lmIFsgIiRidWlsZF9vcHRpb25fZXhhbXBsZXMi IF07IHRoZW4KKwlzdWJwYWNrYWdlcys9IiBxdDYtd2ViZW5naW5lLWV4YW1wbGVzIgorZmkKKwor X2Jvb3RzdHJhcF9nbigpIHsKKwkjIEJvb3RzdHJhcCBnbiAoZ2VuZXJhdGUgbmluamEpCisJZWNo byAiQm9vdHN0cmFwcGluZyAnZ24nIgorCWNkICR7d3Jrc3JjfS9zcmMvM3JkcGFydHkvZ24KKwlD RkxBR1M9IiRDRkxBR1NfaG9zdCIgQ1hYRkxBR1M9IiRDWFhGTEFHU19ob3N0IiBMREZMQUdTPSIk TERGTEFHU19ob3N0IiBcCisJUEtHQ09ORklHPS91c3IvYmluL3BrZ2NvbmZpZyBQS0dfQ09ORklH X1BBVEg9Ii91c3IvbGliL3BrZ2NvbmZpZzovdXNyL3NoYXJlL3BrZ2NvbmZpZyIgXAorCQlweXRo b24zIGJ1aWxkL2dlbi5weSAtLW5vLWxhc3QtY29tbWl0LXBvc2l0aW9uIC0tb3V0LXBhdGggXAor CQkJJHt3cmtzcmN9L3NyYy8zcmRwYXJ0eS9nbi9vdXQvUmVsZWFzZSAtLWNjICIke0NDX2hvc3Q6 LSRDQ30iIFwKKwkJCS0tY3h4ICIke0NYWF9ob3N0Oi0kQ1hYfSIgLS1sZCAiJHtDWFhfaG9zdDot JENYWH0iIC0tYXIgIiR7QVJfaG9zdDotJEFSfSIgXAorCQkJLS1xdC12ZXJzaW9uICIke3ZlcnNp b259LnF0d2ViZW5naW5lLnF0LmlvIgorCW5pbmphIC1DIG91dC9SZWxlYXNlIGduCisJY2QgJHt3 cmtzcmN9Cit9CisKK191bmJ1bmRsZV9saWJzKCkgeworCWNkICR7d3Jrc3JjfS9zcmMvM3JkcGFy dHkvY2hyb21pdW0KKwllY2hvIERyb3BwaW5nIGJ1bmRsZWQgbGlicyBmcm9tIGNocm9taXVtCisJ IyBVc2Ugc3lzdGVtLXByb3ZpZGVkIGxpYnJhcmllcy4KKwkjIFRPRE86IHVzZV9zeXN0ZW1faHVu c3BlbGwgKHVwc3RyZWFtIGNoYW5nZXMgbmVlZGVkKS4KKwkjIFRPRE86IHVzZV9zeXN0ZW1fbGli c3J0cC4KKwkjIFRPRE86IHVzZV9zeXN0ZW1fbGlidXNiIChodHRwOi8vY3JidWcuY29tLzI2NjE0 OSkuCisJIyBUT0RPOiB1c2Vfc3lzdGVtX3NzbCAoaHR0cDovL2NyYnVnLmNvbS81ODA4NykuCisJ IyBUT0RPOiB1c2Vfc3lzdGVtX3NxbGl0ZSAoaHR0cDovL2NyYnVnLmNvbS8yMjIwOCkuCisJIyBU T0RPOiB1c2Vfc3lzdGVtX2ljdSAoc2VnZmF1bHRzKQorCSMgdXNlX3N5c3RlbV9wcm90b2J1Zgor CSMgdXNlX3N5c3RlbV92OD0xCisJIyB1c2Vfc3lzdGVtX3psaWI9MQorCSMgYnppcDIganNvbmNw cCBtaW5pemlwIHhkZ191dGlscyBzcGVleAorCXN5c3RlbT0iCisJCWZmbXBlZworCQlmbGFjCisJ CWZvbnRjb25maWcKKwkJZnJlZXR5cGUKKwkJaGFyZmJ1enotbmcKKwkJaWN1CisJCWxpYmRybQor CQlsaWJldmVudAorCQlsaWJqcGVnCisJCWxpYnBuZworCQlsaWJ3ZWJwCisJCWxpYnhtbAorCQls aWJ4c2x0CisJCW9wdXMKKwkJcmUyCisJCXNuYXBweQorCSIKKwlidWlsZC9saW51eC91bmJ1bmRs ZS9yZXBsYWNlX2duX2ZpbGVzLnB5IC0tc3lzdGVtLWxpYnJhcmllcyAke3N5c3RlbX0KK30KKwor IyBQcm92aWRlIGEgd3JhcHBlciB0byBydW4gLi94YnBzLXNyYyAtaiAxIGJ1aWxkIGxhdGVyCitf d3JhcF9uaW5qYSgpIHsKKwljYXQgPDwtJ19FT0YnID4iJFhCUFNfV1JBUFBFUkRJUiIvbmluamEK KwkjIS9iaW4vc2gKKworCWV4ZWMgL3Vzci9iaW4vbmluamEgJE5JTkpBRkxBR1MgIiRAIgorCV9F T0YKKwljaG1vZCAreCAiJFhCUFNfV1JBUFBFUkRJUiIvbmluamEKK30KKworcHJlX2NvbmZpZ3Vy ZSgpIHsKKwlfYm9vdHN0cmFwX2duCisJIyBfdW5idW5kbGVfbGlicworCV93cmFwX25pbmphCisJ ZXhwb3J0IFBBVEg9IiRQQVRIOiR7d3Jrc3JjfS9zcmMvM3JkcGFydHkvZ24vb3V0L1JlbGVhc2Ui Cit9CisKK3ByZV9idWlsZCgpIHsKKwlleHBvcnQgUEFUSD0iJFBBVEg6JHt3cmtzcmN9L3NyYy8z cmRwYXJ0eS9nbi9vdXQvUmVsZWFzZSIKKwlleHBvcnQgTklOSkFGTEFHUz0iJG1ha2Vqb2JzIgor Cit9CisKK3ByZV9pbnN0YWxsKCkgeworCWV4cG9ydCBQQVRIPSIkUEFUSDoke3dya3NyY30vc3Jj LzNyZHBhcnR5L2duL291dC9SZWxlYXNlIgorfQorCitwb3N0X2luc3RhbGwoKSB7CisJbG9jYWwg X2ZpbGUKKwlmaW5kICIke0RFU1RESVJ9Ii91c3IvbGliL3F0Ni9leGFtcGxlcyBcCisJCS1wYXRo ICcqL2xpYi9xdDYvKiovbGliL3F0Ni8qJyAtdHlwZSBmIHwKKwl3aGlsZSByZWFkIF9maWxlOyBk bworCQltdiAiJF9maWxlIiAiJHtfZmlsZSUvbGliL3F0Ni8qfSIKKwlkb25lCit9CisKK3F0Ni13 ZWJlbmdpbmUtZGV2ZWxfcGFja2FnZSgpIHsKKwlkZXBlbmRzPSIke3NvdXJjZXBrZ30+PSR7dmVy c2lvbn1fJHtyZXZpc2lvbn0gcXQ2LXdlYmNoYW5uZWwtZGV2ZWw+PSR7dmVyc2lvbn1fMQorCSBx dDYtZGVjbGFyYXRpdmUtZGV2ZWw+PSR7dmVyc2lvbn1fMSBxdDYtbG9jYXRpb24tZGV2ZWw+PSR7 dmVyc2lvbn1fMSIKKwlzaG9ydF9kZXNjKz0iIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCisJcGtnX2lu c3RhbGwoKSB7CisJCXZtb3ZlIHVzci9pbmNsdWRlCisJCXZtb3ZlIHVzci9saWIvY21ha2UKKwkJ dm1vdmUgdXNyL2xpYi9wa2djb25maWcKKwkJdm1vdmUgdXNyL2xpYi9xdDYvbWtzcGVjcworCQl2 bW92ZSAidXNyL2xpYi8qLnNvIgorCQl2bW92ZSAidXNyL2xpYi8qLnBybCIKKwkJdm1vdmUgdXNy L3NoYXJlL3F0Ni9tb2R1bGVzCisJfQorfQorCitxdDYtd2ViZW5naW5lLWV4YW1wbGVzX3BhY2th Z2UoKSB7CisJc2hvcnRfZGVzYys9IiAtIHNhbXBsZSBicm93c2VycyIKKwlwa2dfaW5zdGFsbCgp IHsKKwkJdm1vdmUgdXNyL2xpYi9xdDYvZXhhbXBsZXMKKwl9Cit9CmRpZmYgLS1naXQgYS9zcmNw a2dzL3F0Ni13ZWJlbmdpbmUvdXBkYXRlIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3VwZGF0ZQpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjg0NDU1MjQ2NTIyMgotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS91cGRhdGUKQEAgLTAsMCArMSBA QAorcGtnbmFtZT0iJHtwa2duYW1lLzYtL30tZXZlcnl3aGVyZS1zcmMiCg== --===============0918114410959375753==--