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=-1.0 required=5.0 tests=ALL_TRUSTED, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 11998 invoked from network); 9 Aug 2022 13:18:58 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 9 Aug 2022 13:18:58 -0000 Content-Type: multipart/mixed; boundary="===============2447921660362331036==" 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: Tue, 09 Aug 2022 15:18:58 +0200 List-Id: Message-ID: <20220809131858.8hzPo2AHCWyOiWIZd323eA29VnHTKIsTd65jJfzXiPA@z> GitHub notification mails are now in MIME to allow UTF8. --===============2447921660362331036== 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 --===============2447921660362331036== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-qt6-webengine-38509.patch" RnJvbSAyZWYxOTdiY2MyOWJmYzA2OGY1NWNmZTRmOWM3MWE3YTI1NjBiNGU4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1B N249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogTW9u LCA4IEF1ZyAyMDIyIDE3OjEzOjA3ICswNzAwClN1YmplY3Q6IFtQQVRDSCAwMS8yN10gcXQ2LWJh c2U6IHVwZGF0ZSB0byA2LjMuMS4KCi0tLQogc3JjcGtncy9xdDYtYmFzZS9wYXRjaGVzL2xpYmF0 b21pYy5wYXRjaCB8IDE0IC0tLS0tLS0tLS0tLS0tCiBzcmNwa2dzL3F0Ni1iYXNlL3RlbXBsYXRl ICAgICAgICAgICAgICAgIHwgMTYgKysrKysrKysrKy0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAx MCBpbnNlcnRpb25zKCspLCAyMCBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL3F0Ni1iYXNlL3BhdGNoZXMvbGliYXRvbWljLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9xdDYtYmFzZS9wYXRjaGVzL2xpYmF0b21pYy5wYXRjaCBiL3NyY3BrZ3MvcXQ2LWJhc2UvcGF0 Y2hlcy9saWJhdG9taWMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJmN2E4 MDc1MThlNC4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvcXQ2LWJhc2UvcGF0Y2hlcy9saWJh dG9taWMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi1JbmRleDogY21ha2Uv RmluZFdyYXBBdG9taWMuY21ha2UKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBhL2NtYWtlL0ZpbmRXcmFwQXRv bWljLmNtYWtlCi0rKysgYi9jbWFrZS9GaW5kV3JhcEF0b21pYy5jbWFrZQotQEAgLTM4LDcgKzM4 LDggQEAgZW5kaWYoKQotIAotIGFkZF9saWJyYXJ5KFdyYXBBdG9taWM6OldyYXBBdG9taWMgSU5U RVJGQUNFIElNUE9SVEVEKQotIGlmKEhBVkVfU1REQVRPTUlDX1dJVEhfTElCKQotLSAgICB0YXJn ZXRfbGlua19saWJyYXJpZXMoV3JhcEF0b21pYzo6V3JhcEF0b21pYyBJTlRFUkZBQ0UgYXRvbWlj KQotKyAgICBmaW5kX2xpYnJhcnkoTElCQVRPTUlDIGF0b21pYyBSRVFVSVJFRCkKLSsgICAgdGFy Z2V0X2xpbmtfbGlicmFyaWVzKFdyYXBBdG9taWM6OldyYXBBdG9taWMgSU5URVJGQUNFICR7TElC QVRPTUlDfSkKLSBlbmRpZigpCi0gCi0gc2V0KFdyYXBBdG9taWNfRk9VTkQgMSkKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvcXQ2LWJhc2UvdGVtcGxhdGUgYi9zcmNwa2dzL3F0Ni1iYXNlL3RlbXBsYXRl CmluZGV4IGNjNDdlMThhNzBmZi4uNGU4OGQ2YjlmMTc0IDEwMDY0NAotLS0gYS9zcmNwa2dzL3F0 Ni1iYXNlL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcXQ2LWJhc2UvdGVtcGxhdGUKQEAgLTEsNyAr MSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdxdDYtYmFzZScKIHBrZ25hbWU9cXQ2LWJhc2UK LXZlcnNpb249Ni4zLjAKLXJldmlzaW9uPTIKK3ZlcnNpb249Ni4zLjEKK3JldmlzaW9uPTEKIHdy a3NyYz0icXRiYXNlLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0iCiBidWlsZF9zdHlsZT1jbWFr ZQogY29uZmlndXJlX2FyZ3M9Ii1ESU5TVEFMTF9EQVRBRElSPXNoYXJlL3F0NgpAQCAtOSw2ICs5 LDggQEAgY29uZmlndXJlX2FyZ3M9Ii1ESU5TVEFMTF9EQVRBRElSPXNoYXJlL3F0NgogIC1ESU5T VEFMTF9CSU5ESVI9bGliL3F0Ni9iaW4KICAtRElOU1RBTExfTUtTUEVDU0RJUj1saWIvcXQ2L21r c3BlY3MKICAtRElOU1RBTExfSU5DTFVERURJUj1pbmNsdWRlL3F0NgorIC1ESU5TVEFMTF9FWEFN UExFU0RJUj1saWIvcXQ2L2V4YW1wbGVzCisgLURJTlNUQUxMX1RFU1RTRElSPWxpYi9xdDYvdGVz dHMKICAtRElOU1RBTExfU1lTQ09ORkRJUj0vZXRjL3hkZwogIC1EUVRfRkVBVFVSRV9vcGVuc3Ns X2xpbmtlZD1PTgogIC1EUVRfRkVBVFVSRV9zeXN0ZW1fc3FsaXRlPU9OCkBAIC0yOSwxNCArMzEs MTMgQEAgbWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKIGxpY2Vuc2U9IkdQ TC0zLjAtb25seSBXSVRIIFF0LUdQTC1leGNlcHRpb24tMS4wLCBMR1BMLTMuMC1vbmx5LCBHUEwt Mi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnF0LmlvIgogZGlzdGZpbGVzPSJo dHRwczovL2Rvd25sb2FkLnF0LmlvL29mZmljaWFsX3JlbGVhc2VzL3F0LyR7dmVyc2lvbiUuKn0v JHt2ZXJzaW9ufS9zdWJtb2R1bGVzL3F0YmFzZS1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259LnRh ci54eiIKLWNoZWNrc3VtPWI4NjVhYWU0MzM1N2Y3OTJiM2IwYTE2Mjg5OWQ5YmY2YTEzOTNhNTVj NGU1ZTRlZGU1MzE2YjE1N2IxYTBmOTkKK2NoZWNrc3VtPTBhNjQ0MjFkOWMyNDY5YzJjNDg0OTBh MDMyYWI5MWQ1NDcwMTdjOWNjMTcxZjNmODA3MGJjMzE4ODhmMjRlMDMKIHB5dGhvbl92ZXJzaW9u PTMKIAogaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCiAJaG9zdG1ha2VkZXBlbmRzKz0iIHF0 Ni1iYXNlLWRldmVsIgogCSMgUXRTZXR1cCBmYWlscyBuYXRpdmUgYnVpbGRzIGlmIHRoaXMgaXMg c2V0Ci0JY29uZmlndXJlX2FyZ3MrPSIgLURRVF9IT1NUX1BBVEg9L3VzcgotCSAtRFFUX0JVSUxE X1RPT0xTX1dIRU5fQ1JPU1NDT01QSUxJTkc9dHJ1ZSIKKwljb25maWd1cmVfYXJncys9Ii1EUVRf QlVJTERfVE9PTFNfV0hFTl9DUk9TU0NPTVBJTElORz10cnVlIgogZmkKIAogIyBJdCBpcyBjdXJy ZW50bHkgZXhwZWN0ZWQgdGhhdCBxdWl0ZSBhIGZldyBwYXRjaGVzIGRvIGZhaWwKQEAgLTIyNSw3 ICsyMjYsNyBAQCBxdDYtcGx1Z2luLXRscy1xY2VydG9ubHlfcGFja2FnZSgpIHsKIHF0Ni1wbHVn aW4tbmV0d29ya2luZm9ybWF0aW9uX3BhY2thZ2UoKSB7CiAJc2hvcnRfZGVzYys9IiAtIE5ldHdv cmtpbmZvcm1hdGlvbiBwbHVnaW4iCiAJcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlIHVzci9saWIv cXQ2L3BsdWdpbnMvbmV0d29ya2luZm9ybWF0aW9uL2xpYnFuZXR3b3JrbWFuYWdlci5zbworCQl2 bW92ZSB1c3IvbGliL3F0Ni9wbHVnaW5zL25ldHdvcmtpbmZvcm1hdGlvbi8KIAl9CiB9CiAKQEAg LTI0Niw5ICsyNDcsMTIgQEAgcXQ2LWJhc2UtZGV2ZWxfcGFja2FnZSgpIHsKIAlwa2dfaW5zdGFs bCgpIHsKIAkJdm1vdmUgdXNyL2luY2x1ZGUKIAkJdm1vdmUgdXNyL2xpYi9jbWFrZQorCQl2bW92 ZSB1c3IvbGliL21ldGF0eXBlcworCQl2bW92ZSB1c3IvbGliL3BrZ2NvbmZpZwogCQl2bW92ZSB1 c3IvbGliL3F0Ni9ta3NwZWNzCiAJCXZtb3ZlICJ1c3IvbGliLyouYSIKIAkJdm1vdmUgInVzci9s aWIvKi5zbyIKIAkJdm1vdmUgInVzci9saWIvKi5wcmwiCisJCXZtb3ZlIHVzci9zaGFyZS9xdDYv bW9kdWxlcwogCX0KIH0KCkZyb20gY2Q4YTFjOTBkMDRjZjA4YTg2N2I1NjY4M2YyYTIxOGZkMGMz ZGVlOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1DND05MG89QzM9 QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBnbWFp bC5jb20+CkRhdGU6IE1vbiwgOCBBdWcgMjAyMiAxNzoxMzowNyArMDcwMApTdWJqZWN0OiBbUEFU Q0ggMDIvMjddIHF0Ni1jaGFydHM6IHVwZGF0ZSB0byA2LjMuMS4KCi0tLQogc3JjcGtncy9xdDYt Y2hhcnRzL3RlbXBsYXRlIHwgOCArKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9u cygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni1jaGFydHMvdGVt cGxhdGUgYi9zcmNwa2dzL3F0Ni1jaGFydHMvdGVtcGxhdGUKaW5kZXggNzljYjhhMjIwNDAxLi5k Mzk0N2JhOTM4ZjMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcXQ2LWNoYXJ0cy90ZW1wbGF0ZQorKysg Yi9zcmNwa2dzL3F0Ni1jaGFydHMvdGVtcGxhdGUKQEAgLTEsMTAgKzEsOSBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAncXQ2LWNoYXJ0cycKIHBrZ25hbWU9cXQ2LWNoYXJ0cwotdmVyc2lvbj02LjMu MAordmVyc2lvbj02LjMuMQogcmV2aXNpb249MQogd3Jrc3JjPSJxdGNoYXJ0cy1ldmVyeXdoZXJl LXNyYy0ke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9Y21ha2UKLWNvbmZpZ3VyZV9hcmdzPSItRFFU X0hPU1RfUEFUSD0vdXNyIgogaG9zdG1ha2VkZXBlbmRzPSJwZXJsIHF0Ni1kZWNsYXJhdGl2ZS1k ZXZlbCIKIG1ha2VkZXBlbmRzPSJxdDYtZGVjbGFyYXRpdmUtZGV2ZWwiCiBzaG9ydF9kZXNjPSJD cm9zcy1wbGF0Zm9ybSBhcHBsaWNhdGlvbiBhbmQgVUkgZnJhbWV3b3JrIC0gY2hhcnRzIgpAQCAt MTIsNyArMTEsNyBAQCBtYWludGFpbmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+IgogbGlj ZW5zZT0iR1BMLTMuMC1vbmx5IgogaG9tZXBhZ2U9Imh0dHBzOi8vcXQuaW8vIgogZGlzdGZpbGVz PSJodHRwOi8vZG93bmxvYWQucXQuaW8vb2ZmaWNpYWxfcmVsZWFzZXMvcXQvJHt2ZXJzaW9uJS4q fS8ke3ZlcnNpb259L3N1Ym1vZHVsZXMvcXRjaGFydHMtZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9u fS50YXIueHoiCi1jaGVja3N1bT02NzI3NjJjNWY2NDFjY2M4OGEzMGFlZWRlZmI2M2YwM2MwZjgz NzY0OWIzMzRmNDZlZWE1NzU5MmU4N2UzNmNkCitjaGVja3N1bT1mMzMwY2MyMzI4NzI5MTA0ZDc5 YjIwODg5OTBjZTA4NDBmMmRhODlkOWQ5ODkzNjBkNGMzNTJlNzk3ZDI3Y2Y3CiAKIHF0Ni1jaGFy dHMtZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSIke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1f JHtyZXZpc2lvbn0iCkBAIC0yMCw4ICsxOSwxMSBAQCBxdDYtY2hhcnRzLWRldmVsX3BhY2thZ2Uo KSB7CiAJcGtnX2luc3RhbGwoKSB7CiAJCXZtb3ZlIHVzci9pbmNsdWRlCiAJCXZtb3ZlIHVzci9s aWIvY21ha2UKKwkJdm1vdmUgdXNyL2xpYi9tZXRhdHlwZXMKKwkJdm1vdmUgdXNyL2xpYi9wa2dj b25maWcKIAkJdm1vdmUgdXNyL2xpYi9xdDYvbWtzcGVjcwogCQl2bW92ZSAidXNyL2xpYi8qLnNv IgogCQl2bW92ZSAidXNyL2xpYi8qLnBybCIKKwkJdm1vdmUgdXNyL3NoYXJlL3F0Ni9tb2R1bGVz CiAJfQogfQoKRnJvbSA2NTAzZWJiYThkZmEwMjQwNzY5ZmQ5OTE3MGI1YjBkNzBmNWMxMjU0IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBU cj1FMT1CQT1BN249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4K RGF0ZTogTW9uLCA4IEF1ZyAyMDIyIDE3OjEzOjA3ICswNzAwClN1YmplY3Q6IFtQQVRDSCAwMy8y N10gcXQ2LWRlY2xhcmF0aXZlOiB1cGRhdGUgdG8gNi4zLjEuCgotLS0KIHNyY3BrZ3MvcXQ2LWRl Y2xhcmF0aXZlL3RlbXBsYXRlIHwgMTIgKysrKysrKy0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNyBp bnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LWRl Y2xhcmF0aXZlL3RlbXBsYXRlIGIvc3JjcGtncy9xdDYtZGVjbGFyYXRpdmUvdGVtcGxhdGUKaW5k ZXggZTBiZDI4ZDllMzgzLi5jZmRjNzRmMjgxZDYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcXQ2LWRl Y2xhcmF0aXZlL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcXQ2LWRlY2xhcmF0aXZlL3RlbXBsYXRl CkBAIC0xLDIzICsxLDIyIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdxdDYtZGVjbGFyYXRpdmUn CiBwa2duYW1lPXF0Ni1kZWNsYXJhdGl2ZQotdmVyc2lvbj02LjMuMAordmVyc2lvbj02LjMuMQog cmV2aXNpb249MQogd3Jrc3JjPSJxdGRlY2xhcmF0aXZlLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lv bn0iCiBidWlsZF9zdHlsZT1jbWFrZQotY29uZmlndXJlX2FyZ3M9IiAtRFFUX0hPU1RfUEFUSD0v dXNyIgogaG9zdG1ha2VkZXBlbmRzPSJxdDYtYmFzZS1kZXZlbCBwZXJsIHBrZy1jb25maWcgd2F5 bGFuZC1kZXZlbAogIHF0Ni1zaGFkZXJ0b29scy1kZXZlbCIKLW1ha2VkZXBlbmRzPSJxdDYtYmFz ZS1kZXZlbCBWdWxrYW4tSGVhZGVycyIKK21ha2VkZXBlbmRzPSJxdDYtYmFzZS1kZXZlbCBWdWxr YW4tSGVhZGVycyBxdDYtc2hhZGVydG9vbHMtZGV2ZWwiCiBzaG9ydF9kZXNjPSJDcm9zcy1wbGF0 Zm9ybSBhcHBsaWNhdGlvbiBhbmQgVUkgZnJhbWV3b3JrIC0gRGVjbGFyYXRpdmUiCiBtYWludGFp bmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+IgogbGljZW5zZT0iR1BMLTMuMC1vbmx5IHdp dGggUXQtR1BMLWV4Y2VwdGlvbi0xLjAsIExHUEwtMy4wLW9ubHksIEdQTC0yLjAtb3ItbGF0ZXIi CiBob21lcGFnZT0iaHR0cHM6Ly93d3cucXQuaW8iCiBkaXN0ZmlsZXM9Imh0dHBzOi8vZG93bmxv YWQucXQuaW8vb2ZmaWNpYWxfcmVsZWFzZXMvcXQvJHt2ZXJzaW9uJS4qfS8ke3ZlcnNpb259L3N1 Ym1vZHVsZXMvcXRkZWNsYXJhdGl2ZS1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259LnRhci54eiIK LWNoZWNrc3VtPWQyOTRiMDI5ZGMyYjJkNGY2NWRhNTE2ZmRjM2I4MDg4ZDMyNjQzZWI3ZmY3N2Ri MTM1YThiOWNlOTA0Y2FhMzcKK2NoZWNrc3VtPTAzZTc2OTQxMjM4MjBmY2NhMzk3Zjk1Y2UzMTJl MGI3ZjMwMzk0OTNjODc1NGM4MzZkYTA5OGExYTA0MzQ2ZTgKIHJlcGxhY2VzPSJxdDYtcXVpY2tj b250cm9sczI+PTAiCiAKIGlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgotCWNvbmZpZ3VyZV9h cmdzKz0iIC1EUVRfQlVJTERfVE9PTFNfV0hFTl9DUk9TU0NPTVBJTElORz10cnVlIgorCWNvbmZp Z3VyZV9hcmdzPSItRFFUX0JVSUxEX1RPT0xTX1dIRU5fQ1JPU1NDT01QSUxJTkc9dHJ1ZSIKIAlo b3N0bWFrZWRlcGVuZHMrPSIgcXQ2LWRlY2xhcmF0aXZlLWRldmVsIgogZmkKIApAQCAtNjAsMTEg KzU5LDE0IEBAIHF0Ni1kZWNsYXJhdGl2ZS1kZXZlbF9wYWNrYWdlKCkgewogCXBrZ19pbnN0YWxs KCkgewogCQl2bW92ZSB1c3IvaW5jbHVkZQogCQl2bW92ZSB1c3IvbGliL2NtYWtlCisJCXZtb3Zl IHVzci9saWIvbWV0YXR5cGVzCisJCXZtb3ZlIHVzci9saWIvcGtnY29uZmlnCiAJCXZtb3ZlIHVz ci9saWIvcXQ2L21rc3BlY3MKIAkJdm1vdmUgInVzci9saWIvbGliUXQ2UXVpY2tUZXN0LnNvLioi CiAJCXZtb3ZlIHVzci9saWIvcXQ2L3FtbC9RdFRlc3QKIAkJdm1vdmUgdXNyL2xpYi9xdDYvYmlu L3FtbHRlc3RydW5uZXIKIAkJdm1vdmUgInVzci9saWIvKi5zbyIKIAkJdm1vdmUgInVzci9saWIv Ki5wcmwiCisJCXZtb3ZlIHVzci9zaGFyZS9xdDYvbW9kdWxlcwogCX0KIH0KCkZyb20gYzI1YzBj YzFkZDM5ODY3MTZhMTNiYjRjNjI4OWU5OWE5MDllM2JlOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogPT9VVEYtOD9xPz1DND05MG89QzM9QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1DMz1C NG5nPTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+CkRhdGU6IE1vbiwgOCBBdWcgMjAy MiAxNzoxMzowNyArMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDQvMjddIHF0Ni1pbWFnZWZvcm1hdHM6 IHVwZGF0ZSB0byA2LjMuMS4KCi0tLQogc3JjcGtncy9xdDYtaW1hZ2Vmb3JtYXRzL3RlbXBsYXRl IHwgNSArKy0tLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni1pbWFnZWZvcm1hdHMvdGVtcGxhdGUgYi9zcmNw a2dzL3F0Ni1pbWFnZWZvcm1hdHMvdGVtcGxhdGUKaW5kZXggZWFjYTk1MjQzYzQ4Li45ZjZkMmZi NjY3NzYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcXQ2LWltYWdlZm9ybWF0cy90ZW1wbGF0ZQorKysg Yi9zcmNwa2dzL3F0Ni1pbWFnZWZvcm1hdHMvdGVtcGxhdGUKQEAgLTEsMTAgKzEsOSBAQAogIyBU ZW1wbGF0ZSBmaWxlIGZvciAncXQ2LWltYWdlZm9ybWF0cycKIHBrZ25hbWU9cXQ2LWltYWdlZm9y bWF0cwotdmVyc2lvbj02LjMuMAordmVyc2lvbj02LjMuMQogcmV2aXNpb249MQogd3Jrc3JjPSJx dGltYWdlZm9ybWF0cy1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9Y21h a2UKLWNvbmZpZ3VyZV9hcmdzPSItRFFUX0hPU1RfUEFUSD0vdXNyIgogaG9zdG1ha2VkZXBlbmRz PSJwZXJsIHF0Ni1iYXNlLWRldmVsIgogbWFrZWRlcGVuZHM9InF0Ni1iYXNlLWRldmVsIgogc2hv cnRfZGVzYz0iQ3Jvc3MtcGxhdGZvcm0gYXBwbGljYXRpb24gYW5kIFVJIGZyYW1ld29yayAtIGlt YWdlZm9ybWF0cyIKQEAgLTEyLDQgKzExLDQgQEAgbWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55 bmF0b3IuZGV2PiIKIGxpY2Vuc2U9IkxHUEwtMy4wLW9ubHkgT1IgR1BMLTIuMC1vbmx5IE9SIEdQ TC0zLjAtb25seSIKIGhvbWVwYWdlPSJodHRwczovL3F0LmlvLyIKIGRpc3RmaWxlcz0iaHR0cDov L2Rvd25sb2FkLnF0LmlvL29mZmljaWFsX3JlbGVhc2VzL3F0LyR7dmVyc2lvbiUuKn0vJHt2ZXJz aW9ufS9zdWJtb2R1bGVzL3F0aW1hZ2Vmb3JtYXRzLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0u dGFyLnh6IgotY2hlY2tzdW09MDI1ZDBkMTdlZDc1YjQyYTdlYjZiNTIzNzMxYWI4ZjE3MDI1NDIx YTg4MTBjYWRlMjVjYWZmZTA1ZDkzYWJlZgorY2hlY2tzdW09YWQwMzEyYjhkZmJiYjY3ZjcyOWJm YWRiZmNkNDcyNDZlZTRhMTI4YjcxNzczMWJhMTU4YzQxZDAxZmRlMjEyZgoKRnJvbSA0MThkNDk3 NmI4NzY5MmRkYjBmOWU1ODA0NTQ3ZGM2N2E3NDE4NzM1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249MjBDPUMzPUI0 bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCA4IEF1ZyAyMDIy IDE3OjEzOjA3ICswNzAwClN1YmplY3Q6IFtQQVRDSCAwNS8yN10gcXQ2LWxvY2F0aW9uOiB1cGRh dGUgdG8gNi4zLjEuCgotLS0KIHNyY3BrZ3MvcXQ2LWxvY2F0aW9uL3RlbXBsYXRlIHwgOCArKysr Ky0tLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni1sb2NhdGlvbi90ZW1wbGF0ZSBiL3NyY3BrZ3MvcXQ2LWxv Y2F0aW9uL3RlbXBsYXRlCmluZGV4IGI3Mzk3ZjVmODk0Mi4uOWYyNjEwMzI1OWFkIDEwMDY0NAot LS0gYS9zcmNwa2dzL3F0Ni1sb2NhdGlvbi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3F0Ni1sb2Nh dGlvbi90ZW1wbGF0ZQpAQCAtMSwxMCArMSw5IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdxdDYt bG9jYXRpb24nCiBwa2duYW1lPXF0Ni1sb2NhdGlvbgotdmVyc2lvbj02LjMuMAordmVyc2lvbj02 LjMuMQogcmV2aXNpb249MQogd3Jrc3JjPSJxdHBvc2l0aW9uaW5nLWV2ZXJ5d2hlcmUtc3JjLSR7 dmVyc2lvbn0iCiBidWlsZF9zdHlsZT1jbWFrZQotY29uZmlndXJlX2FyZ3M9Ii1EUVRfSE9TVF9Q QVRIPS91c3IiCiBob3N0bWFrZWRlcGVuZHM9InBlcmwgcXQ2LWJhc2UtZGV2ZWwgcXQ2LWRlY2xh cmF0aXZlLWRldmVsIgogbWFrZWRlcGVuZHM9InF0Ni1zZXJpYWxwb3J0LWRldmVsIHF0Ni1kZWNs YXJhdGl2ZS1kZXZlbCBHQ29uZi1kZXZlbCIKIHNob3J0X2Rlc2M9IkNyb3NzLXBsYXRmb3JtIGFw cGxpY2F0aW9uIGFuZCBVSSBmcmFtZXdvcmsgLSBsb2NhdGlvbiIKQEAgLTEyLDcgKzExLDcgQEAg bWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKIGxpY2Vuc2U9IihMR1BMLTMu MC1vbmx5IE9SIEdQTC0yLjAtb25seSBPUiBHUEwtMy4wLW9ubHkpIEFORCBHUEwtMy4wLW9ubHkg d2l0aCBRdC1HUEwtZXhjZXB0aW9uLTEuMCIKIGhvbWVwYWdlPSJodHRwczovL3F0LmlvLyIKIGRp c3RmaWxlcz0iaHR0cDovL2Rvd25sb2FkLnF0LmlvL29mZmljaWFsX3JlbGVhc2VzL3F0LyR7dmVy c2lvbiUuKn0vJHt2ZXJzaW9ufS9zdWJtb2R1bGVzL3F0cG9zaXRpb25pbmctZXZlcnl3aGVyZS1z cmMtJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1lOWVkNTBmNmIyNDVhMzQ2ZGIzNGQ2MjVk MDAxMjc3NGVmMGVjOGU3ZmQ2NTAzNzEyN2VjMjY3NTg3MDgyMzZlCitjaGVja3N1bT0wNjc4OGU0 ZWNhZTE5MjAwOTRiMzBlNDA0NmYwYWJkMjNjODE4OWQ4YTUxZTljOTM5YjAyZjBiNmFiZTJlODZj CiAKIHF0Ni1sb2NhdGlvbi1kZXZlbF9wYWNrYWdlKCkgewogCWRlcGVuZHM9IiR7c291cmNlcGtn fT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSBxdDYtYmFzZS1kZXZlbD49JHt2ZXJzaW9ufV8xIgpA QCAtMjAsOCArMTksMTEgQEAgcXQ2LWxvY2F0aW9uLWRldmVsX3BhY2thZ2UoKSB7CiAJcGtnX2lu c3RhbGwoKSB7CiAJCXZtb3ZlIHVzci9pbmNsdWRlCiAJCXZtb3ZlIHVzci9saWIvY21ha2UKKwkJ dm1vdmUgdXNyL2xpYi9tZXRhdHlwZXMKKwkJdm1vdmUgdXNyL2xpYi9wa2djb25maWcKIAkJdm1v dmUgdXNyL2xpYi9xdDYvbWtzcGVjcwogCQl2bW92ZSAidXNyL2xpYi8qLnNvIgogCQl2bW92ZSAi dXNyL2xpYi8qLnBybCIKKwkJdm1vdmUgdXNyL3NoYXJlL3F0Ni9tb2R1bGVzCiAJfQogfQoKRnJv bSA3ZmZkYzk1YmE2ZDg5Y2Y0YWNmZjA4N2Q4ZDE4MmJkYjY5MGNiODA0IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249 MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCA4 IEF1ZyAyMDIyIDE3OjEzOjA4ICswNzAwClN1YmplY3Q6IFtQQVRDSCAwNi8yN10gcXQ2LWxvdHRp ZTogdXBkYXRlIHRvIDYuMy4xLgoKLS0tCiBzcmNwa2dzL3F0Ni1sb3R0aWUvdGVtcGxhdGUgfCA5 ICsrKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni1sb3R0aWUvdGVtcGxhdGUgYi9zcmNwa2dzL3F0 Ni1sb3R0aWUvdGVtcGxhdGUKaW5kZXggMWM5N2NkNWY0ZjMyLi5hN2JlYjYyZWMzNjggMTAwNjQ0 Ci0tLSBhL3NyY3BrZ3MvcXQ2LWxvdHRpZS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3F0Ni1sb3R0 aWUvdGVtcGxhdGUKQEAgLTEsMTAgKzEsOSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncXQ2LWxv dHRpZScKIHBrZ25hbWU9cXQ2LWxvdHRpZQotdmVyc2lvbj02LjMuMAordmVyc2lvbj02LjMuMQog cmV2aXNpb249MQogd3Jrc3JjPSJxdGxvdHRpZS1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259Igog YnVpbGRfc3R5bGU9Y21ha2UKLWNvbmZpZ3VyZV9hcmdzPSItRFFUX0hPU1RfUEFUSD0vdXNyIgog aG9zdG1ha2VkZXBlbmRzPSJwZXJsIHF0Ni1iYXNlLWRldmVsIgogbWFrZWRlcGVuZHM9InF0Ni1k ZWNsYXJhdGl2ZS1kZXZlbCIKIHNob3J0X2Rlc2M9IkNyb3NzLXBsYXRmb3JtIGFwcGxpY2F0aW9u IGFuZCBVSSBmcmFtZXdvcmsgLSBsb3R0aWUiCkBAIC0xMiwxMCArMTEsMTAgQEAgbWFpbnRhaW5l cj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKIGxpY2Vuc2U9IkdQTC0zLjAtb25seSIKIGhv bWVwYWdlPSJodHRwczovL3F0LmlvLyIKIGRpc3RmaWxlcz0iaHR0cDovL2Rvd25sb2FkLnF0Lmlv L29mZmljaWFsX3JlbGVhc2VzL3F0LyR7dmVyc2lvbiUuKn0vJHt2ZXJzaW9ufS9zdWJtb2R1bGVz L3F0bG90dGllLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09Mzlk YjU3MGJiYmE1YjUyN2ExZWI2YTU3NzRiZWQ0NzM5OGFjZTJmNzIxN2JiZjQ1YjExOTRhZGE2Y2Y5 N2RlYgorY2hlY2tzdW09NzQwYmE3Njk5OTEyNGQ1ZTFhODVlZjNkMDFjNjk5NzZiYjg1NTc4NjJi NmIyNmJmNDhiMzU3ZmUwY2FiMWNmNQogCiBpZiBbICIkWEJQU19DSEVDS19QS0dTIiBdOyB0aGVu Ci0JY29uZmlndXJlX2FyZ3MrPSIgLURRVF9CVUlMRF9URVNUUz1PTiIKKwljb25maWd1cmVfYXJn cz0iLURRVF9CVUlMRF9URVNUUz1PTiIKIGZpCiAKIHByZV9jaGVjaygpIHsKQEAgLTI4LDggKzI3 LDEwIEBAIHF0Ni1sb3R0aWUtZGV2ZWxfcGFja2FnZSgpIHsKIAlwa2dfaW5zdGFsbCgpIHsKIAkJ dm1vdmUgdXNyL2luY2x1ZGUKIAkJdm1vdmUgdXNyL2xpYi9jbWFrZQorCQl2bW92ZSB1c3IvbGli L21ldGF0eXBlcwogCQl2bW92ZSB1c3IvbGliL3F0Ni9ta3NwZWNzCiAJCXZtb3ZlICJ1c3IvbGli Lyouc28iCiAJCXZtb3ZlICJ1c3IvbGliLyoucHJsIgorCQl2bW92ZSB1c3Ivc2hhcmUvcXQ2L21v ZHVsZXMKIAl9CiB9CgpGcm9tIDM1NzgyYmFkZDc2NWFkYmJhNTNiNzlmNWVkYTE2MTk2OWFhMTVl YzcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT89QzQ9OTBvPUMzPUEw bj0yMFRyPUUxPUJBPUE3bj0yMEM9QzM9QjRuZz0yMERhbmg/PQogPGNvbmdkYW5ocXhAZ21haWwu Y29tPgpEYXRlOiBNb24sIDggQXVnIDIwMjIgMTc6MTM6MDggKzA3MDAKU3ViamVjdDogW1BBVENI IDA3LzI3XSBxdDYtbmV0d29ya2F1dGg6IHVwZGF0ZSB0byA2LjMuMS4KCi0tLQogc3JjcGtncy9x dDYtbmV0d29ya2F1dGgvdGVtcGxhdGUgfCAxMCArKysrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwg NiBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2 LW5ldHdvcmthdXRoL3RlbXBsYXRlIGIvc3JjcGtncy9xdDYtbmV0d29ya2F1dGgvdGVtcGxhdGUK aW5kZXggZTkzNGJlYWRhOWIwLi4xNDU0Y2ViNGE1MjUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcXQ2 LW5ldHdvcmthdXRoL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcXQ2LW5ldHdvcmthdXRoL3RlbXBs YXRlCkBAIC0xLDEwICsxLDkgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3F0Ni1uZXR3b3JrYXV0 aCcKIHBrZ25hbWU9cXQ2LW5ldHdvcmthdXRoCi12ZXJzaW9uPTYuMy4wCit2ZXJzaW9uPTYuMy4x CiByZXZpc2lvbj0xCiB3cmtzcmM9InF0bmV0d29ya2F1dGgtZXZlcnl3aGVyZS1zcmMtJHt2ZXJz aW9ufSIKIGJ1aWxkX3N0eWxlPWNtYWtlCi1jb25maWd1cmVfYXJncz0iLURRVF9IT1NUX1BBVEg9 L3VzciIKIGhvc3RtYWtlZGVwZW5kcz0icGVybCBxdDYtYmFzZS1kZXZlbCIKIG1ha2VkZXBlbmRz PSJxdDYtYmFzZS1kZXZlbCIKIHNob3J0X2Rlc2M9IkNyb3NzLXBsYXRmb3JtIGFwcGxpY2F0aW9u IGFuZCBVSSBmcmFtZXdvcmsgLSBuZXR3b3JrYXV0aCIKQEAgLTEyLDEwICsxMSwxMCBAQCBtYWlu dGFpbmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+IgogbGljZW5zZT0iR1BMLTMuMC1vbmx5 IgogaG9tZXBhZ2U9Imh0dHBzOi8vcXQuaW8vIgogZGlzdGZpbGVzPSJodHRwOi8vZG93bmxvYWQu cXQuaW8vb2ZmaWNpYWxfcmVsZWFzZXMvcXQvJHt2ZXJzaW9uJS4qfS8ke3ZlcnNpb259L3N1Ym1v ZHVsZXMvcXRuZXR3b3JrYXV0aC1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259LnRhci54eiIKLWNo ZWNrc3VtPTIwM2E5ODk0MjkxOTAyODUyMDAzOGY5MGEyMGNkN2VlMzJiNTM3MjMzNTQ1ZDExZTQy OWMzZTJjMWFkOTA2OWYKK2NoZWNrc3VtPWQ2MGY1NGI5ZDQ1MDlmYThiZGJmMTk5MGJjOTFmNmUy NjBlMzhjZGI1N2E3YjgxMTlmYTM4NjFiYzVkMmZiMmEKIAogaWYgWyAiJFhCUFNfQ0hFQ0tfUEtH UyIgXTsgdGhlbgotCWNvbmZpZ3VyZV9hcmdzKz0iIC1EUVRfQlVJTERfVEVTVFM9T04iCisJY29u ZmlndXJlX2FyZ3M9Ii1EUVRfQlVJTERfVEVTVFM9T04iCiBmaQogCiBxdDYtbmV0d29ya2F1dGgt ZGV2ZWxfcGFja2FnZSgpIHsKQEAgLTI0LDggKzIzLDExIEBAIHF0Ni1uZXR3b3JrYXV0aC1kZXZl bF9wYWNrYWdlKCkgewogCXBrZ19pbnN0YWxsKCkgewogCQl2bW92ZSB1c3IvaW5jbHVkZQogCQl2 bW92ZSB1c3IvbGliL2NtYWtlCisJCXZtb3ZlIHVzci9saWIvbWV0YXR5cGVzCisJCXZtb3ZlIHVz ci9saWIvcGtnY29uZmlnCiAJCXZtb3ZlIHVzci9saWIvcXQ2L21rc3BlY3MKIAkJdm1vdmUgInVz ci9saWIvKi5zbyIKIAkJdm1vdmUgInVzci9saWIvKi5wcmwiCisJCXZtb3ZlIHVzci9zaGFyZS9x dDYvbW9kdWxlcwogCX0KIH0KCkZyb20gMDM4MjhhNmVlODI0NDBkZmUxYjhhMWUxOGE4ZWI0YWZl Yzg4YjM5MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1DND05MG89 QzM9QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBn bWFpbC5jb20+CkRhdGU6IE1vbiwgOCBBdWcgMjAyMiAxNzoxMzowOCArMDcwMApTdWJqZWN0OiBb UEFUQ0ggMDgvMjddIHF0Ni1xdDVjb21wYXQ6IHVwZGF0ZSB0byA2LjMuMS4KCi0tLQogc3JjcGtn cy9xdDYtcXQ1Y29tcGF0L3RlbXBsYXRlIHwgMTIgKysrKysrKy0tLS0tCiAxIGZpbGUgY2hhbmdl ZCwgNyBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv cXQ2LXF0NWNvbXBhdC90ZW1wbGF0ZSBiL3NyY3BrZ3MvcXQ2LXF0NWNvbXBhdC90ZW1wbGF0ZQpp bmRleCA3ZmNkNWFkNTA4MGUuLmE2MjU3M2NmYWJmYSAxMDA2NDQKLS0tIGEvc3JjcGtncy9xdDYt cXQ1Y29tcGF0L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcXQ2LXF0NWNvbXBhdC90ZW1wbGF0ZQpA QCAtMSwxMCArMSw5IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdxdDYtcXQ1Y29tcGF0JwogcGtn bmFtZT1xdDYtcXQ1Y29tcGF0Ci12ZXJzaW9uPTYuMy4wCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTYu My4xCityZXZpc2lvbj0xCiB3cmtzcmM9InF0NWNvbXBhdC1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNp b259IgogYnVpbGRfc3R5bGU9Y21ha2UKLWNvbmZpZ3VyZV9hcmdzPSItRFFUX0hPU1RfUEFUSD0v dXNyIgogaG9zdG1ha2VkZXBlbmRzPSJxdDYtYmFzZS1kZXZlbCBxdDYtZGVjbGFyYXRpdmUtZGV2 ZWwgcGVybCBwa2ctY29uZmlnIgogbWFrZWRlcGVuZHM9InF0Ni1iYXNlLWRldmVsIHF0Ni1kZWNs YXJhdGl2ZS1kZXZlbCIKIHNob3J0X2Rlc2M9IkNyb3NzLXBsYXRmb3JtIGFwcGxpY2F0aW9uIGFu ZCBVSSBmcmFtZXdvcmsgLSBRdDUgQ29tcGF0aWJpbHR5IENvbXBvbmVudCIKQEAgLTEyLDEwICsx MSwxMCBAQCBtYWludGFpbmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+IgogbGljZW5zZT0i R1BMLTMuMC1vbmx5IHdpdGggUXQtR1BMLWV4Y2VwdGlvbi0xLjAsIExHUEwtMy4wLW9ubHksIEdQ TC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9xdC5pby8iCiBkaXN0ZmlsZXM9Imh0 dHA6Ly9kb3dubG9hZC5xdC5pby9vZmZpY2lhbF9yZWxlYXNlcy9xdC8ke3ZlcnNpb24lLip9LyR7 dmVyc2lvbn0vc3VibW9kdWxlcy9xdDVjb21wYXQtZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9ufS50 YXIueHoiCi1jaGVja3N1bT0yYjE5OWJlNzgwYzUwZDkyMTQ1MTJiOTIyZDk0Y2IyNDBiMDQxMmZk NjNmNDU5ZTM1NmI3NjEwMmNhZDE3MTNlCitjaGVja3N1bT1hNDNlYzYyYmQ3NzhlYWVjZjg4YWQ3 ODQ3MTE4ZDFjMmE0NzFiMGZjYjgyMGY5M2JlYjMxMWQ3YWI5NTY2Y2ZkCiAKIGlmIFsgIiRYQlBT X0NIRUNLX1BLR1MiIF07IHRoZW4KLQljb25maWd1cmVfYXJncys9IiAtRFFUX0JVSUxEX1RFU1RT PU9OIgorCWNvbmZpZ3VyZV9hcmdzPSItRFFUX0JVSUxEX1RFU1RTPU9OIgogZmkKIAogcXQ2LXF0 NWNvbXBhdC1kZXZlbF9wYWNrYWdlKCkgewpAQCAtMjQsOCArMjMsMTEgQEAgcXQ2LXF0NWNvbXBh dC1kZXZlbF9wYWNrYWdlKCkgewogCXBrZ19pbnN0YWxsKCkgewogCQl2bW92ZSB1c3IvaW5jbHVk ZQogCQl2bW92ZSB1c3IvbGliL2NtYWtlCisJCXZtb3ZlIHVzci9saWIvbWV0YXR5cGVzCisJCXZt b3ZlIHVzci9saWIvcGtnY29uZmlnCiAJCXZtb3ZlIHVzci9saWIvcXQ2L21rc3BlY3MKIAkJdm1v dmUgInVzci9saWIvKi5zbyIKIAkJdm1vdmUgInVzci9saWIvKi5wcmwiCisJCXZtb3ZlIHVzci9z aGFyZS9xdDYvbW9kdWxlcwogCX0KIH0KCkZyb20gY2JmZDhiYzZmZGY2MjdkMTRjMzAyYmM4Nzc3 NjQ5YWRjNjRjMzA5NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1D ND05MG89QzM9QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2Rh bmhxeEBnbWFpbC5jb20+CkRhdGU6IE1vbiwgOCBBdWcgMjAyMiAxNzoxMzowOCArMDcwMApTdWJq ZWN0OiBbUEFUQ0ggMDkvMjddIHF0Ni1xdWljazNkOiB1cGRhdGUgdG8gNi4zLjEuCgotLS0KIHNy Y3BrZ3MvcXQ2LXF1aWNrM2QvdGVtcGxhdGUgfCAxMCArKysrKystLS0tCiAxIGZpbGUgY2hhbmdl ZCwgNiBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv cXQ2LXF1aWNrM2QvdGVtcGxhdGUgYi9zcmNwa2dzL3F0Ni1xdWljazNkL3RlbXBsYXRlCmluZGV4 IDBmN2VmMzM2YTNmZi4uYjIzNDljMDM1MDFiIDEwMDY0NAotLS0gYS9zcmNwa2dzL3F0Ni1xdWlj azNkL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcXQ2LXF1aWNrM2QvdGVtcGxhdGUKQEAgLTEsMTAg KzEsOSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncXQ2LXF1aWNrM2QnCiBwa2duYW1lPXF0Ni1x dWljazNkCi12ZXJzaW9uPTYuMy4wCit2ZXJzaW9uPTYuMy4xCiByZXZpc2lvbj0xCiB3cmtzcmM9 InF0cXVpY2szZC1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9Y21ha2UK LWNvbmZpZ3VyZV9hcmdzPSItRFFUX0hPU1RfUEFUSD0vdXNyICIKIGhvc3RtYWtlZGVwZW5kcz0i cGVybCBxdDYtYmFzZS1kZXZlbCBxdDYtZGVjbGFyYXRpdmUtZGV2ZWwgcXQ2LXNoYWRlcnRvb2xz LWRldmVsIgogbWFrZWRlcGVuZHM9InF0Ni1iYXNlLWRldmVsIHF0Ni1kZWNsYXJhdGl2ZS1kZXZl bCBxdDYtc2hhZGVydG9vbHMtZGV2ZWwKICBsaWJhc3NpbXAtZGV2ZWwiCkBAIC0xMyw3ICsxMiw3 IEBAIG1haW50YWluZXI9IkpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4iCiBsaWNlbnNlPSJHUEwt My4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vcXQuaW8vIgogZGlzdGZpbGVzPSJodHRw Oi8vZG93bmxvYWQucXQuaW8vb2ZmaWNpYWxfcmVsZWFzZXMvcXQvJHt2ZXJzaW9uJS4qfS8ke3Zl cnNpb259L3N1Ym1vZHVsZXMvcXRxdWljazNkLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0udGFy Lnh6IgotY2hlY2tzdW09MGFkMDViZDFlZTFmNzg0YjE4MjIwYTJkMjYyNWVlOGRlOTE2NjJjODhm ZGM3Yjc5ODY2Mjk1M2Q4NmViMzI3ZQorY2hlY2tzdW09MmZhNzY2ZWU0N2I4YzA3NDEyYjNiNzU1 MjA2YWRhMDcxNWZiMDc4MTNiNjRlZDA2OWU3MjA1MDQ0YzA2MTI1NgogCiBpZiBbICIkWEJQU19U QVJHRVRfRU5ESUFOIiA9ICJiZSIgXTsgdGhlbgogCSMgcG9zc2libHkgYSBxdDYtc2hhZGVydG9v bHMgYnVnLCBhY3R1YWxseQpAQCAtMjYsOSArMjUsMTIgQEAgcXQ2LXF1aWNrM2QtZGV2ZWxfcGFj a2FnZSgpIHsKIAlwa2dfaW5zdGFsbCgpIHsKIAkJdm1vdmUgdXNyL2luY2x1ZGUKIAkJdm1vdmUg dXNyL2xpYi9jbWFrZQotCQl2bW92ZSB1c3IvbGliL3F0Ni9ta3NwZWNzCisJCXZtb3ZlIHVzci9s aWIvbWV0YXR5cGVzCisJCXZtb3ZlIHVzci9saWIvcGtnY29uZmlnCiAJCXZtb3ZlIHVzci9saWIv cXQ2L2JpbgorCQl2bW92ZSB1c3IvbGliL3F0Ni9ta3NwZWNzCiAJCXZtb3ZlICJ1c3IvbGliLyou c28iCiAJCXZtb3ZlICJ1c3IvbGliLyoucHJsIgorCQl2bW92ZSB1c3Ivc2hhcmUvcXQ2L21vZHVs ZXMKIAl9CiB9CgpGcm9tIDhhOWI5MGY3OTY0OGEzOWVmYzk2MmNiMDVkODhiNjA2MjNmMzIwNWIg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT89QzQ9OTBvPUMzPUEwbj0y MFRyPUUxPUJBPUE3bj0yMEM9QzM9QjRuZz0yMERhbmg/PQogPGNvbmdkYW5ocXhAZ21haWwuY29t PgpEYXRlOiBNb24sIDggQXVnIDIwMjIgMTc6MTM6MDkgKzA3MDAKU3ViamVjdDogW1BBVENIIDEw LzI3XSBxdDYtcXVpY2t0aW1lbGluZTogdXBkYXRlIHRvIDYuMy4xLgoKLS0tCiBzcmNwa2dzL3F0 Ni1xdWlja3RpbWVsaW5lL3RlbXBsYXRlIHwgNyArKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBp bnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXF1 aWNrdGltZWxpbmUvdGVtcGxhdGUgYi9zcmNwa2dzL3F0Ni1xdWlja3RpbWVsaW5lL3RlbXBsYXRl CmluZGV4IDE1YWE3YThlNTgxOS4uYmYwMmUwNDNjNGE1IDEwMDY0NAotLS0gYS9zcmNwa2dzL3F0 Ni1xdWlja3RpbWVsaW5lL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcXQ2LXF1aWNrdGltZWxpbmUv dGVtcGxhdGUKQEAgLTEsMTAgKzEsOSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncXQ2LXF1aWNr dGltZWxpbmUnCiBwa2duYW1lPXF0Ni1xdWlja3RpbWVsaW5lCi12ZXJzaW9uPTYuMy4wCit2ZXJz aW9uPTYuMy4xCiByZXZpc2lvbj0xCiB3cmtzcmM9InF0cXVpY2t0aW1lbGluZS1ldmVyeXdoZXJl LXNyYy0ke3ZlcnNpb24vcmMvLXJjfSIKIGJ1aWxkX3N0eWxlPWNtYWtlCi1jb25maWd1cmVfYXJn cz0iLURRVF9IT1NUX1BBVEg9L3VzciAiCiBob3N0bWFrZWRlcGVuZHM9InBlcmwgcXQ2LWJhc2Ut ZGV2ZWwgcXQ2LWRlY2xhcmF0aXZlLWRldmVsIgogbWFrZWRlcGVuZHM9InF0Ni1iYXNlLWRldmVs IHF0Ni1kZWNsYXJhdGl2ZS1kZXZlbCIKIHNob3J0X2Rlc2M9IkNyb3NzLXBsYXRmb3JtIGFwcGxp Y2F0aW9uIGFuZCBVSSBmcmFtZXdvcmsgLSBxdWlja3RpbWVsaW5lIgpAQCAtMTIsMTAgKzExLDEw IEBAIG1haW50YWluZXI9IkpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4iCiBsaWNlbnNlPSJHUEwt My4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vcXQuaW8vIgogZGlzdGZpbGVzPSJodHRw Oi8vZG93bmxvYWQucXQuaW8vb2ZmaWNpYWxfcmVsZWFzZXMvcXQvJHt2ZXJzaW9uJS4qfS8ke3Zl cnNpb24vcmMvLXJjfS9zdWJtb2R1bGVzL3F0cXVpY2t0aW1lbGluZS1ldmVyeXdoZXJlLXNyYy0k e3ZlcnNpb24vcmMvLXJjfS50YXIueHoiCi1jaGVja3N1bT05ZmYwYTkzMTE1OWVmYzZiZTViZDlm OGExZTRhMTZhNzBlMmRhYjM3Y2YyMmFkODVjNmQzMzBjY2ZkZjMxYzFhCitjaGVja3N1bT01OGEx M2NmMGNlOGU3NzU1NjM5ZjIwNjg0MDc4NzMzYWYyNGY1YTMxN2Y2ZGRiNDBkNjA3OWM4YzVhMjhl YmJlCiAKIGlmIFsgIiRYQlBTX0NIRUNLX1BLR1MiIF07IHRoZW4KLQljb25maWd1cmVfYXJncys9 IiAtRFFUX0JVSUxEX1RFU1RTPU9OIgorCWNvbmZpZ3VyZV9hcmdzPSItRFFUX0JVSUxEX1RFU1RT PU9OIgogZmkKIAogcHJlX2NoZWNrKCkgewoKRnJvbSBhNjZlNmVkOTlhYmU1NzE3ZWU3MjY2N2Y4 ZGE0NmJjNDcxNmQ0NTYwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/ PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25n ZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCA4IEF1ZyAyMDIyIDE3OjEzOjA5ICswNzAwClN1 YmplY3Q6IFtQQVRDSCAxMS8yN10gcXQ2LXNjeG1sOiB1cGRhdGUgdG8gNi4zLjEuCgotLS0KIHNy Y3BrZ3MvcXQ2LXNjeG1sL3RlbXBsYXRlIHwgMTAgKysrKysrLS0tLQogMSBmaWxlIGNoYW5nZWQs IDYgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0 Ni1zY3htbC90ZW1wbGF0ZSBiL3NyY3BrZ3MvcXQ2LXNjeG1sL3RlbXBsYXRlCmluZGV4IDExMmJh Y2EwYWI4My4uOTQyYTcxYWZlNDc2IDEwMDY0NAotLS0gYS9zcmNwa2dzL3F0Ni1zY3htbC90ZW1w bGF0ZQorKysgYi9zcmNwa2dzL3F0Ni1zY3htbC90ZW1wbGF0ZQpAQCAtMSwxMCArMSw5IEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICdxdDYtc2N4bWwnCiBwa2duYW1lPXF0Ni1zY3htbAotdmVyc2lv bj02LjMuMAordmVyc2lvbj02LjMuMQogcmV2aXNpb249MQogd3Jrc3JjPSJxdHNjeG1sLWV2ZXJ5 d2hlcmUtc3JjLSR7dmVyc2lvbn0iCiBidWlsZF9zdHlsZT1jbWFrZQotY29uZmlndXJlX2FyZ3M9 Ii1EUVRfSE9TVF9QQVRIPS91c3IiCiBob3N0bWFrZWRlcGVuZHM9InBlcmwgcXQ2LWRlY2xhcmF0 aXZlLWRldmVsIgogbWFrZWRlcGVuZHM9InF0Ni1kZWNsYXJhdGl2ZS1kZXZlbCIKIHNob3J0X2Rl c2M9IkNyb3NzLXBsYXRmb3JtIGFwcGxpY2F0aW9uIGFuZCBVSSBmcmFtZXdvcmsgLSBzY3htbCIK QEAgLTEyLDEwICsxMSwxMCBAQCBtYWludGFpbmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+ IgogbGljZW5zZT0iTEdQTC0zLjAtb25seSBPUiBHUEwtMi4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5 IgogaG9tZXBhZ2U9Imh0dHBzOi8vcXQuaW8vIgogZGlzdGZpbGVzPSJodHRwOi8vZG93bmxvYWQu cXQuaW8vb2ZmaWNpYWxfcmVsZWFzZXMvcXQvJHt2ZXJzaW9uJS4qfS8ke3ZlcnNpb259L3N1Ym1v ZHVsZXMvcXRzY3htbC1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3Vt PTA5YjBkYmQ2YWMzNjc5MjBmYjFiYTk2YTM5ZGNkNGM5ZDMzZWIwODIwZGNjNzk1Mzg5OTI4MjVk NTg4YTcwZjAKK2NoZWNrc3VtPTAxYmMxNTRkNjE2M2QxZjA0OWY0ZTFlNzY2NThhMDQ0NzMwYWNl N2IwYTViZTM1YzlhNDZmY2QxMzk2Zjg2MTkKIAogaWYgWyAiJFhCUFNfQ0hFQ0tfUEtHUyIgXTsg dGhlbgotCWNvbmZpZ3VyZV9hcmdzKz0iIC1EUVRfQlVJTERfVEVTVFM9T04iCisJY29uZmlndXJl X2FyZ3M9Ii1EUVRfQlVJTERfVEVTVFM9T04iCiBmaQogCiBxdDYtc2N4bWwtZGV2ZWxfcGFja2Fn ZSgpIHsKQEAgLTI0LDggKzIzLDExIEBAIHF0Ni1zY3htbC1kZXZlbF9wYWNrYWdlKCkgewogCXBr Z19pbnN0YWxsKCkgewogCQl2bW92ZSB1c3IvaW5jbHVkZQogCQl2bW92ZSB1c3IvbGliL2NtYWtl CisJCXZtb3ZlIHVzci9saWIvbWV0YXR5cGVzCisJCXZtb3ZlIHVzci9saWIvcGtnY29uZmlnCiAJ CXZtb3ZlIHVzci9saWIvcXQ2L21rc3BlY3MKIAkJdm1vdmUgInVzci9saWIvKi5zbyIKIAkJdm1v dmUgInVzci9saWIvKi5wcmwiCisJCXZtb3ZlIHVzci9zaGFyZS9xdDYvbW9kdWxlcwogCX0KIH0K CkZyb20gYzcyZTk1N2YzMTAwMzU4YTEwYWI5ZjU2MWE1MWI5NzMyMGIyNDhlZSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1DND05MG89QzM9QTBuPTIwVHI9RTE9QkE9 QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+CkRhdGU6IE1v biwgOCBBdWcgMjAyMiAxNzoxMzowOSArMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTIvMjddIHF0Ni1z ZXJpYWxwb3J0OiB1cGRhdGUgdG8gNi4zLjEuCgotLS0KIHNyY3BrZ3MvcXQ2LXNlcmlhbHBvcnQv dGVtcGxhdGUgfCA4ICsrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAz IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXNlcmlhbHBvcnQvdGVtcGxh dGUgYi9zcmNwa2dzL3F0Ni1zZXJpYWxwb3J0L3RlbXBsYXRlCmluZGV4IDA4MDQ2NzFjYTU3Yi4u MmRlOWQ2MzY0YTVjIDEwMDY0NAotLS0gYS9zcmNwa2dzL3F0Ni1zZXJpYWxwb3J0L3RlbXBsYXRl CisrKyBiL3NyY3BrZ3MvcXQ2LXNlcmlhbHBvcnQvdGVtcGxhdGUKQEAgLTEsMTAgKzEsOSBAQAog IyBUZW1wbGF0ZSBmaWxlIGZvciAncXQ2LXNlcmlhbHBvcnQnCiBwa2duYW1lPXF0Ni1zZXJpYWxw b3J0Ci12ZXJzaW9uPTYuMy4wCit2ZXJzaW9uPTYuMy4xCiByZXZpc2lvbj0xCiB3cmtzcmM9InF0 c2VyaWFscG9ydC1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9Y21ha2UK LWNvbmZpZ3VyZV9hcmdzPSItRFFUX0hPU1RfUEFUSD0vdXNyIgogaG9zdG1ha2VkZXBlbmRzPSJw ZXJsIHF0Ni1iYXNlLWRldmVsIHBrZy1jb25maWciCiBtYWtlZGVwZW5kcz0icXQ2LWJhc2UtZGV2 ZWwiCiBzaG9ydF9kZXNjPSJDcm9zcy1wbGF0Zm9ybSBhcHBsaWNhdGlvbiBhbmQgVUkgZnJhbWV3 b3JrIC0gc2VyaWFscG9ydCIKQEAgLTEyLDcgKzExLDcgQEAgbWFpbnRhaW5lcj0iSm9obiA8bWVA am9obm55bmF0b3IuZGV2PiIKIGxpY2Vuc2U9IihMR1BMLTMuMC1vbmx5IE9SIEdQTC0yLjAtb25s eSBPUiBHUEwtMy4wLW9ubHkpIEFORCBHUEwtMy4wLW9ubHkgd2l0aCBRdC1HUEwtZXhjZXB0aW9u LTEuMCIKIGhvbWVwYWdlPSJodHRwczovL3F0LmlvLyIKIGRpc3RmaWxlcz0iaHR0cDovL2Rvd25s b2FkLnF0LmlvL29mZmljaWFsX3JlbGVhc2VzL3F0LyR7dmVyc2lvbiUuKn0vJHt2ZXJzaW9ufS9z dWJtb2R1bGVzL3F0c2VyaWFscG9ydC1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259LnRhci54eiIK LWNoZWNrc3VtPWVlYmQ2OTM0ZDQ4Y2MwNDRiOGM4Nzc5NWE0ZmQ5MWJiODFmNzE5NWQ0YjVhMmRk YjEyODAyZjM0M2Q1ZGI2NGYKK2NoZWNrc3VtPTRlYjZkODBlNjU3OTlkZDJlMDMxOGRmNGRmYmEx NDE3M2MxOTI5ZTg2MTcxOGNkYTliZWRjYTI0MjUzYjYxNmUKIAogcXQ2LXNlcmlhbHBvcnQtZGV2 ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSIke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZp c2lvbn0gcXQ2LWJhc2UtZGV2ZWw+PSR7dmVyc2lvbn1fMSIKQEAgLTIwLDggKzE5LDExIEBAIHF0 Ni1zZXJpYWxwb3J0LWRldmVsX3BhY2thZ2UoKSB7CiAJcGtnX2luc3RhbGwoKSB7CiAJCXZtb3Zl IHVzci9pbmNsdWRlCiAJCXZtb3ZlIHVzci9saWIvY21ha2UKKwkJdm1vdmUgdXNyL2xpYi9tZXRh dHlwZXMKKwkJdm1vdmUgdXNyL2xpYi9wa2djb25maWcKIAkJdm1vdmUgdXNyL2xpYi9xdDYvbWtz cGVjcwogCQl2bW92ZSAidXNyL2xpYi8qLnNvIgogCQl2bW92ZSAidXNyL2xpYi8qLnBybCIKKwkJ dm1vdmUgdXNyL3NoYXJlL3F0Ni9tb2R1bGVzCiAJfQogfQoKRnJvbSBmMmFhYjQwNzVlZDk5NjBj ODI5OGFhZjIwMmM2NjRmZTgxMGE2M2QwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9 P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249MjBDPUMzPUI0bmc9MjBEYW5o Pz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCA4IEF1ZyAyMDIyIDE3OjEzOjA5 ICswNzAwClN1YmplY3Q6IFtQQVRDSCAxMy8yN10gcXQ2LXNoYWRlcnRvb2xzOiB1cGRhdGUgdG8g Ni4zLjEuCgotLS0KIHNyY3BrZ3MvcXQ2LXNoYWRlcnRvb2xzL3RlbXBsYXRlIHwgOCArKysrKy0t LQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9zcmNwa2dzL3F0Ni1zaGFkZXJ0b29scy90ZW1wbGF0ZSBiL3NyY3BrZ3MvcXQ2LXNo YWRlcnRvb2xzL3RlbXBsYXRlCmluZGV4IDljMWVjMjEwYTk2YS4uMDEzZDk3ZjYwMWI2IDEwMDY0 NAotLS0gYS9zcmNwa2dzL3F0Ni1zaGFkZXJ0b29scy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3F0 Ni1zaGFkZXJ0b29scy90ZW1wbGF0ZQpAQCAtMSwxMCArMSw5IEBACiAjIFRlbXBsYXRlIGZpbGUg Zm9yICdxdDYtc2hhZGVydG9vbHMnCiBwa2duYW1lPXF0Ni1zaGFkZXJ0b29scwotdmVyc2lvbj02 LjMuMAordmVyc2lvbj02LjMuMQogcmV2aXNpb249MQogd3Jrc3JjPSJxdHNoYWRlcnRvb2xzLWV2 ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0iCiBidWlsZF9zdHlsZT1jbWFrZQotY29uZmlndXJlX2Fy Z3M9Ii1EUVRfSE9TVF9QQVRIPS91c3IgIgogaG9zdG1ha2VkZXBlbmRzPSJwZXJsIHF0Ni1iYXNl LWRldmVsIgogbWFrZWRlcGVuZHM9InF0Ni1iYXNlLWRldmVsIgogc2hvcnRfZGVzYz0iQ3Jvc3Mt cGxhdGZvcm0gYXBwbGljYXRpb24gYW5kIFVJIGZyYW1ld29yayAtIHNoYWRlcnRvb2xzIgpAQCAt MTIsNyArMTEsNyBAQCBtYWludGFpbmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+IgogbGlj ZW5zZT0iR1BMLTMuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3F0LmlvLyIKIGRpc3Rm aWxlcz0iaHR0cDovL2Rvd25sb2FkLnF0LmlvL29mZmljaWFsX3JlbGVhc2VzL3F0LyR7dmVyc2lv biUuKn0vJHt2ZXJzaW9ufS9zdWJtb2R1bGVzL3F0c2hhZGVydG9vbHMtZXZlcnl3aGVyZS1zcmMt JHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT01NDk4OTU5YjlkMzdjMjU0YmQxMjZhYjEzMjBj Zjg2YWViOGEzMWIzZWE3ZTUxZGI2NjZhOGY5Njk4YWZiZDZjCitjaGVja3N1bT01OWI3NzE3Njk2 MTUyOGNjN2IwYzkzMjUxMzQ2NTVlMjczYWE4N2I0Y2IzODZjMGY0NjgzZDhmMjg1MmU0MzVhCiAK IHF0Ni1zaGFkZXJ0b29scy1kZXZlbF9wYWNrYWdlKCkgewogCWRlcGVuZHM9IiR7c291cmNlcGtn fT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSBxdDYtYmFzZS1kZXZlbD49JHt2ZXJzaW9ufV8xIgpA QCAtMjAsOCArMTksMTEgQEAgcXQ2LXNoYWRlcnRvb2xzLWRldmVsX3BhY2thZ2UoKSB7CiAJcGtn X2luc3RhbGwoKSB7CiAJCXZtb3ZlIHVzci9pbmNsdWRlCiAJCXZtb3ZlIHVzci9saWIvY21ha2UK KwkJdm1vdmUgdXNyL2xpYi9tZXRhdHlwZXMKKwkJdm1vdmUgdXNyL2xpYi9wa2djb25maWcKIAkJ dm1vdmUgdXNyL2xpYi9xdDYvbWtzcGVjcwogCQl2bW92ZSAidXNyL2xpYi8qLnNvIgogCQl2bW92 ZSAidXNyL2xpYi8qLnBybCIKKwkJdm1vdmUgdXNyL3NoYXJlL3F0Ni9tb2R1bGVzCiAJfQogfQoK RnJvbSA1YTM2OGUxYzIwYjYwYjZjMWZlZmVmODI3MTA0NWYzYzA0NTU3ZDhmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1B N249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogTW9u LCA4IEF1ZyAyMDIyIDE3OjEzOjA5ICswNzAwClN1YmplY3Q6IFtQQVRDSCAxNC8yN10gcXQ2LXN2 ZzogdXBkYXRlIHRvIDYuMy4xLgoKLS0tCiBzcmNwa2dzL3F0Ni1zdmcvdGVtcGxhdGUgfCAxMCAr KysrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXN2Zy90ZW1wbGF0ZSBiL3NyY3BrZ3MvcXQ2LXN2 Zy90ZW1wbGF0ZQppbmRleCBhYThlNmI3NDUxMDkuLjMwOWIwOTg4ZTQzNSAxMDA2NDQKLS0tIGEv c3JjcGtncy9xdDYtc3ZnL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcXQ2LXN2Zy90ZW1wbGF0ZQpA QCAtMSwxMCArMSw5IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdxdDYtc3ZnJwogcGtnbmFtZT1x dDYtc3ZnCi12ZXJzaW9uPTYuMy4wCit2ZXJzaW9uPTYuMy4xCiByZXZpc2lvbj0xCiB3cmtzcmM9 InF0c3ZnLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0iCiBidWlsZF9zdHlsZT1jbWFrZQotY29u ZmlndXJlX2FyZ3M9Ii1EUVRfSE9TVF9QQVRIPS91c3IgIgogaG9zdG1ha2VkZXBlbmRzPSJxdDYt YmFzZS1kZXZlbCBwZXJsIgogbWFrZWRlcGVuZHM9InF0Ni1iYXNlLWRldmVsIgogc2hvcnRfZGVz Yz0iQ3Jvc3MtcGxhdGZvcm0gYXBwbGljYXRpb24gYW5kIFVJIGZyYW1ld29yayAoUVQ2KSAtIHF0 Ni1zdmcgY29tcG9uZW50IgpAQCAtMTIsMTAgKzExLDEwIEBAIG1haW50YWluZXI9IkpvaG4gPG1l QGpvaG5ueW5hdG9yLmRldj4iCiBsaWNlbnNlPSJHUEwtMy4wLW9ubHkgd2l0aCBRdC1HUEwtZXhj ZXB0aW9uLTEuMCwgR1BMLTIuMC1vci1sYXRlciwgTEdQTC0zLjAtb25seSIKIGhvbWVwYWdlPSJo dHRwczovL3F0LmlvLyIKIGRpc3RmaWxlcz0iaHR0cDovL2Rvd25sb2FkLnF0LmlvL29mZmljaWFs X3JlbGVhc2VzL3F0LyR7dmVyc2lvbiUuKn0vJHt2ZXJzaW9ufS9zdWJtb2R1bGVzL3F0c3ZnLWV2 ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09MzE2NDUwNGQ3ZTNmNjQw NDM5MzA4MjM1NzM5YjExMjYwNWFiNWZjOWNjNTE3Y2EwYjI4ZjlmYjkzYThkYjBlMworY2hlY2tz dW09N2IxOWY0MThlNmY3YjhlMjMzNDQwODJkZDA0NDQwYWFjZjVkYTIzYzVhNzM5ODBiYTIyYWU0 ZWJhNGY4N2RmNwogCiBpZiBbICIkWEJQU19DSEVDS19QS0dTIiBdOyB0aGVuCi0JY29uZmlndXJl X2FyZ3MrPSIgLURRVF9CVUlMRF9URVNUUz1PTiIKKwljb25maWd1cmVfYXJncz0iLURRVF9CVUlM RF9URVNUUz1PTiIKIGZpCiAKIGRvX2NoZWNrKCkgewpAQCAtMjksOCArMjgsMTEgQEAgcXQ2LXN2 Zy1kZXZlbF9wYWNrYWdlKCkgewogCXBrZ19pbnN0YWxsKCkgewogCQl2bW92ZSB1c3IvaW5jbHVk ZQogCQl2bW92ZSB1c3IvbGliL2NtYWtlCisJCXZtb3ZlIHVzci9saWIvbWV0YXR5cGVzCisJCXZt b3ZlIHVzci9saWIvcGtnY29uZmlnCiAJCXZtb3ZlIHVzci9saWIvcXQ2L21rc3BlY3MKIAkJdm1v dmUgInVzci9saWIvKi5zbyIKIAkJdm1vdmUgInVzci9saWIvKi5wcmwiCisJCXZtb3ZlIHVzci9z aGFyZS9xdDYvbW9kdWxlcwogCX0KIH0KCkZyb20gNWNiNWZkNDY2MWI3YWVjMWQwNDhlZTY1MTAw MThhZWRmOWQxOGU5NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1D ND05MG89QzM9QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2Rh bmhxeEBnbWFpbC5jb20+CkRhdGU6IE1vbiwgOCBBdWcgMjAyMiAxNzoxMzoxMCArMDcwMApTdWJq ZWN0OiBbUEFUQ0ggMTUvMjddIHF0Ni10b29sczogdXBkYXRlIHRvIDYuMy4xLgoKLS0tCiBzcmNw a2dzL3F0Ni10b29scy90ZW1wbGF0ZSB8IDEwICsrKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2 IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYt dG9vbHMvdGVtcGxhdGUgYi9zcmNwa2dzL3F0Ni10b29scy90ZW1wbGF0ZQppbmRleCBmODc1ZGZm NWMwNDYuLjA2MWJiZDQzYmIzNSAxMDA2NDQKLS0tIGEvc3JjcGtncy9xdDYtdG9vbHMvdGVtcGxh dGUKKysrIGIvc3JjcGtncy9xdDYtdG9vbHMvdGVtcGxhdGUKQEAgLTEsMTAgKzEsOSBAQAogIyBU ZW1wbGF0ZSBmaWxlIGZvciAncXQ2LXRvb2xzJwogcGtnbmFtZT1xdDYtdG9vbHMKLXZlcnNpb249 Ni4zLjAKK3ZlcnNpb249Ni4zLjEKIHJldmlzaW9uPTEKIHdya3NyYz0icXR0b29scy1ldmVyeXdo ZXJlLXNyYy0ke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9Y21ha2UKLWNvbmZpZ3VyZV9hcmdzPSIt RFFUX0hPU1RfUEFUSD0vdXNyICIKIGhvc3RtYWtlZGVwZW5kcz0icXQ2LWJhc2UtZGV2ZWwgcGVy bCIKIG1ha2VkZXBlbmRzPSJxdDYtYmFzZS1kZXZlbCBsaWJhdG9taWMtZGV2ZWwiCiBzaG9ydF9k ZXNjPSJDcm9zcy1wbGF0Zm9ybSBhcHBsaWNhdGlvbiBhbmQgVUkgZnJhbWV3b3JrIChRVDYpIC0g cXQ2LXRvb2xzIGNvbXBvbmVudCIKQEAgLTEyLDEwICsxMSwxMCBAQCBtYWludGFpbmVyPSJKb2hu IDxtZUBqb2hubnluYXRvci5kZXY+IgogbGljZW5zZT0iR1BMLTMuMC1vbmx5IHdpdGggUXQtR1BM LWV4Y2VwdGlvbi0xLjAsIExHUEwtMy4wLW9ubHksIEdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFn ZT0iaHR0cHM6Ly9xdC5pby8iCiBkaXN0ZmlsZXM9Imh0dHA6Ly9kb3dubG9hZC5xdC5pby9vZmZp Y2lhbF9yZWxlYXNlcy9xdC8ke3ZlcnNpb24lLip9LyR7dmVyc2lvbn0vc3VibW9kdWxlcy9xdHRv b2xzLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZmNlOTQ2ODhl YTkyNTc4MmEyODc5MzQ3NTg0OTkxZjg1NDYzMGRhYWRiYTZjNTJhZWQ2ZDkzZTMzY2QwYjE5Ywor Y2hlY2tzdW09YzQxMjc1MGYyYWEzYmViOTNmY2U1ZjMwNTE3YzYwN2Y1NWRhYWViN2QwNDA3YWYy MDZhOGFkZjkxN2UxMjZjMQogCiBpZiBbICIkWEJQU19DSEVDS19QS0dTIiBdOyB0aGVuCi0JY29u ZmlndXJlX2FyZ3MrPSIgLURRVF9CVUlMRF9URVNUUz1PTiIKKwljb25maWd1cmVfYXJncz0iLURR VF9CVUlMRF9URVNUUz1PTiIKIGZpCiAKIGRvX2NoZWNrKCkgewpAQCAtMzEsOCArMzAsMTEgQEAg cXQ2LXRvb2xzLWRldmVsX3BhY2thZ2UoKSB7CiAJcGtnX2luc3RhbGwoKSB7CiAJCXZtb3ZlIHVz ci9pbmNsdWRlCiAJCXZtb3ZlIHVzci9saWIvY21ha2UKKwkJdm1vdmUgdXNyL2xpYi9tZXRhdHlw ZXMKKwkJdm1vdmUgdXNyL2xpYi9wa2djb25maWcKIAkJdm1vdmUgdXNyL2xpYi9xdDYvbWtzcGVj cwogCQl2bW92ZSAidXNyL2xpYi8qLnNvIgogCQl2bW92ZSAidXNyL2xpYi8qLnBybCIKKwkJdm1v dmUgdXNyL3NoYXJlL3F0Ni9tb2R1bGVzCiAJfQogfQoKRnJvbSAwN2UzMWMwZjVlYjQ2MjhkMTM1 MmIyODAzZWI0NGI2NTdkNmE4MzUyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VU Ri04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249MjBDPUMzPUI0bmc9MjBEYW5oPz0K IDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCA4IEF1ZyAyMDIyIDE3OjEzOjEwICsw NzAwClN1YmplY3Q6IFtQQVRDSCAxNi8yN10gcXQ2LXRyYW5zbGF0aW9uczogdXBkYXRlIHRvIDYu My4xLgoKLS0tCiBzcmNwa2dzL3F0Ni10cmFuc2xhdGlvbnMvdGVtcGxhdGUgfCA1ICsrLS0tCiAx IGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvcXQ2LXRyYW5zbGF0aW9ucy90ZW1wbGF0ZSBiL3NyY3BrZ3MvcXQ2LXRyYW5z bGF0aW9ucy90ZW1wbGF0ZQppbmRleCBiZTBhNzRjYTc0ZTIuLjFiOTE3Y2NiMzYyMCAxMDA2NDQK LS0tIGEvc3JjcGtncy9xdDYtdHJhbnNsYXRpb25zL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcXQ2 LXRyYW5zbGF0aW9ucy90ZW1wbGF0ZQpAQCAtMSwxMCArMSw5IEBACiAjIFRlbXBsYXRlIGZpbGUg Zm9yICdxdDYtdHJhbnNsYXRpb25zJwogcGtnbmFtZT1xdDYtdHJhbnNsYXRpb25zCi12ZXJzaW9u PTYuMy4wCit2ZXJzaW9uPTYuMy4xCiByZXZpc2lvbj0xCiB3cmtzcmM9InF0dHJhbnNsYXRpb25z LWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0iCiBidWlsZF9zdHlsZT1jbWFrZQotY29uZmlndXJl X2FyZ3M9Ii1EUVRfSE9TVF9QQVRIPS91c3IgIgogaG9zdG1ha2VkZXBlbmRzPSJxdDYtYmFzZS1k ZXZlbCBxdDYtdG9vbHMtZGV2ZWwgcGVybCIKIG1ha2VkZXBlbmRzPSJxdDYtYmFzZS1kZXZlbCBx dDYtdG9vbHMtZGV2ZWwiCiBzaG9ydF9kZXNjPSJDcm9zcy1wbGF0Zm9ybSBhcHBsaWNhdGlvbiBh bmQgVUkgZnJhbWV3b3JrIC0gdHJhbnNsYXRpb25zIgpAQCAtMTIsNCArMTEsNCBAQCBtYWludGFp bmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+IgogbGljZW5zZT0iR1BMLTMuMC1vbmx5IHdp dGggUXQtR1BMLWV4Y2VwdGlvbi0xLjAiCiBob21lcGFnZT0iaHR0cHM6Ly9xdC5pby8iCiBkaXN0 ZmlsZXM9Imh0dHA6Ly9kb3dubG9hZC5xdC5pby9vZmZpY2lhbF9yZWxlYXNlcy9xdC8ke3ZlcnNp b24lLip9LyR7dmVyc2lvbn0vc3VibW9kdWxlcy9xdHRyYW5zbGF0aW9ucy1ldmVyeXdoZXJlLXNy Yy0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWU0ZGQ0ZWY4OTJhMzRhOTUxNGExOTIzOGYx ODlhMzNlZDg1Yzc2ZjMxZGNhZDY1OTljZWQ5M2IxZTMzNDQwYjMKK2NoZWNrc3VtPWQ3YmRkNTVl MjkwOGRlZDkwMWRjYzI2MjE1NzEwMGFmMmE0OTBiZjA0ZDMxZTMyOTk1ZjZkOTFkNzhkZmRiOTcK CkZyb20gNTIxZWY4OWExNzg4ZjFkYTM5MTc3N2ZhZTk0N2IxMTQ0ZTA0ZWM0MCBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1DND05MG89QzM9QTBuPTIwVHI9RTE9QkE9 QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+CkRhdGU6IE1v biwgOCBBdWcgMjAyMiAxNzoxMzoxMCArMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTcvMjddIHF0Ni12 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 dXNyL3NoYXJlL3F0Ni9tb2R1bGVzCiAJfQogfQoKRnJvbSA2MTg5YTE5M2I3MzcwOGFlNjc4OTM0 Y2U5OWExYzZjMDBlNzNkZjhjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04 P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxj b25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCA4IEF1ZyAyMDIyIDE3OjEzOjEwICswNzAw ClN1YmplY3Q6IFtQQVRDSCAxOC8yN10gcXQ2LXdheWxhbmQ6IHVwZGF0ZSB0byA2LjMuMS4KCi0t 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 b20gYzM5MmVhM2I5MjdiOGU0Zjg5NjY2YzM0MDdiNWE2ZjRmMjJlZmQ0YyBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1DND05MG89QzM9QTBuPTIwVHI9RTE9QkE9QTdu PTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+CkRhdGU6IE1vbiwg OCBBdWcgMjAyMiAxNzoxMzoxMCArMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTkvMjddIHF0Ni13ZWJz 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 CiAJfQogfQoKRnJvbSBmYjkzZjQ2MWIwZDAwNWExNWE4ZTJjN2Y0YzM3YTlkZmUwNjdiMzFlIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBU cj1FMT1CQT1BN249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4K RGF0ZTogTW9uLCA4IEF1ZyAyMDIyIDE3OjEzOjExICswNzAwClN1YmplY3Q6IFtQQVRDSCAyMC8y N10gTmV3IHBhY2thZ2U6IHF0Ni13ZWJjaGFubmVsLTYuMy4xCgotLS0KIHNyY3BrZ3MvcXQ2LXdl YmNoYW5uZWwtZGV2ZWwgICAgfCAgMSArCiBzcmNwa2dzL3F0Ni13ZWJjaGFubmVsL3RlbXBsYXRl IHwgMzIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHNyY3BrZ3MvcXQ2LXdlYmNo YW5uZWwvdXBkYXRlICAgfCAgMSArCiAzIGZpbGVzIGNoYW5nZWQsIDM0IGluc2VydGlvbnMoKykK IGNyZWF0ZSBtb2RlIDEyMDAwMCBzcmNwa2dzL3F0Ni13ZWJjaGFubmVsLWRldmVsCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViY2hhbm5lbC90ZW1wbGF0ZQogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmNoYW5uZWwvdXBkYXRlCgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9xdDYtd2ViY2hhbm5lbC1kZXZlbCBiL3NyY3BrZ3MvcXQ2LXdlYmNoYW5uZWwtZGV2ZWwKbmV3 IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggMDAwMDAwMDAwMDAwLi4wM2U4YjIzZDc4NWQKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJjaGFubmVsLWRldmVsCkBAIC0wLDAgKzEgQEAK K3F0Ni13ZWJjaGFubmVsClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv c3JjcGtncy9xdDYtd2ViY2hhbm5lbC90ZW1wbGF0ZSBiL3NyY3BrZ3MvcXQ2LXdlYmNoYW5uZWwv dGVtcGxhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi40MzJjNDJi Y2MwNTYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJjaGFubmVsL3RlbXBsYXRl CkBAIC0wLDAgKzEsMzIgQEAKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ3F0Ni13ZWJjaGFubmVsJwor cGtnbmFtZT1xdDYtd2ViY2hhbm5lbAordmVyc2lvbj02LjMuMQorcmV2aXNpb249MQord3Jrc3Jj PSJxdHdlYmNoYW5uZWwtZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9ufSIKK2J1aWxkX3N0eWxlPWNt YWtlCitob3N0bWFrZWRlcGVuZHM9InBlcmwgcXQ2LWJhc2UtZGV2ZWwgcXQ2LWRlY2xhcmF0aXZl LWRldmVsIgorbWFrZWRlcGVuZHM9InF0Ni1iYXNlLWRldmVsIHF0Ni1kZWNsYXJhdGl2ZS1kZXZl bCBxdDYtd2Vic29ja2V0cy1kZXZlbCIKK3Nob3J0X2Rlc2M9IkNyb3NzLXBsYXRmb3JtIGFwcGxp Y2F0aW9uIGFuZCBVSSBmcmFtZXdvcmsgLSB3ZWJjaGFubmVsIgorbWFpbnRhaW5lcj0iSm9obiA8 bWVAam9obm55bmF0b3IuZGV2PiIKK2xpY2Vuc2U9IihMR1BMLTMuMC1vbmx5IE9SIEdQTC0yLjAt b25seSBPUiBHUEwtMy4wLW9ubHkpIEFORCBHUEwtMy4wLW9ubHkgd2l0aCBRdC1HUEwtZXhjZXB0 aW9uLTEuMCIKK2hvbWVwYWdlPSJodHRwczovL3F0LmlvLyIKK2Rpc3RmaWxlcz0iaHR0cDovL2Rv d25sb2FkLnF0LmlvL29mZmljaWFsX3JlbGVhc2VzL3F0LyR7dmVyc2lvbiUuKn0vJHt2ZXJzaW9u fS9zdWJtb2R1bGVzL3F0d2ViY2hhbm5lbC1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259LnRhci54 eiIKK2NoZWNrc3VtPWFhYTIwYWMyM2Y4Njk5MjcyMWI3ZWU0ODdjMzc5YTNmZDY4Y2FhOGNkY2Vh MGE3N2EzN2UwZDhiNDdmZjI2NjgKKworcXQ2LXdlYmNoYW5uZWwtZGV2ZWxfcGFja2FnZSgpIHsK KwlkZXBlbmRzPSIke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0gcXQ2LWJhc2Ut ZGV2ZWw+PSR7dmVyc2lvbn1fMQorCSBxdDYtd2Vic29ja2V0cy1kZXZlbD49JHt2ZXJzaW9ufV8x IgorCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKKwlwa2dfaW5zdGFsbCgpIHsK KwkJdm1vdmUgdXNyL2luY2x1ZGUKKwkJdm1vdmUgdXNyL2xpYi9jbWFrZQorCQl2bW92ZSB1c3Iv bGliL21ldGF0eXBlcworCQl2bW92ZSB1c3IvbGliL3BrZ2NvbmZpZworCQl2bW92ZSB1c3IvbGli L3F0Ni9ta3NwZWNzCisJCXZtb3ZlIHVzci9saWIvcXQ2L3FtbC9RdFdlYkNoYW5uZWwvcGx1Z2lu cy5xbWx0eXBlcworCQl2bW92ZSB1c3IvbGliL3F0Ni9xbWwvUXRXZWJDaGFubmVsL3FtbGRpcgor CQl2bW92ZSAidXNyL2xpYi8qLnNvIgorCQl2bW92ZSAidXNyL2xpYi8qLnBybCIKKwkJdm1vdmUg dXNyL3NoYXJlL3F0Ni9tb2R1bGVzCisJfQorfQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2Vi Y2hhbm5lbC91cGRhdGUgYi9zcmNwa2dzL3F0Ni13ZWJjaGFubmVsL3VwZGF0ZQpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjg0NDU1MjQ2NTIyMgotLS0gL2Rldi9udWxs CisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmNoYW5uZWwvdXBkYXRlCkBAIC0wLDAgKzEgQEAKK3BrZ25h bWU9IiR7cGtnbmFtZS82LS99LWV2ZXJ5d2hlcmUtc3JjIgoKRnJvbSA5NjFlYzgyOTI3NGNiZGNm NDNjM2U0ZTU3ZDg2OWY3NGQwMWFkMzdhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9 P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249MjBDPUMzPUI0bmc9MjBEYW5o Pz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCA4IEF1ZyAyMDIyIDE3OjEzOjEx ICswNzAwClN1YmplY3Q6IFtQQVRDSCAyMS8yN10gTmV3IHBhY2thZ2U6IHF0Ni1tdWx0aW1lZGlh LTYuMy4xCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAgICAgfCAgMyArKysKIHNy Y3BrZ3MvcXQ2LW11bHRpbWVkaWEtZGV2ZWwgICAgfCAgMSArCiBzcmNwa2dzL3F0Ni1tdWx0aW1l ZGlhL3RlbXBsYXRlIHwgMzMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBzcmNw a2dzL3F0Ni1tdWx0aW1lZGlhL3VwZGF0ZSAgIHwgIDEgKwogNCBmaWxlcyBjaGFuZ2VkLCAzOCBp bnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMjAwMDAgc3JjcGtncy9xdDYtbXVsdGltZWRpYS1k ZXZlbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LW11bHRpbWVkaWEvdGVtcGxhdGUK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni1tdWx0aW1lZGlhL3VwZGF0ZQoKZGlmZiAt LWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4IGVhNmZkZTRmZmUzMS4u ZGE3OGZhYTY4OWQ1IDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxp YnMKQEAgLTIwNzcsNiArMjA3Nyw5IEBAIGxpYlF0NlNlcmlhbFBvcnQuc28uNiBxdDYtc2VyaWFs cG9ydC02LjIuMGFscGhhXzEKIGxpYlF0NldlYlNvY2tldHMuc28uNiBxdDYtd2Vic29ja2V0cy02 LjIuMGFscGhhXzEKIGxpYlF0NldlYkNoYW5uZWwuc28uNiBxdDYtd2ViY2hhbm5lbC02LjIuMGFs cGhhXzEKIGxpYlF0NlBvc2l0aW9uaW5nLnNvLjYgcXQ2LWxvY2F0aW9uLTYuMi4wYWxwaGFfMQor bGliUXQ2TXVsdGltZWRpYVdpZGdldHMuc28uNiBxdDYtbXVsdGltZWRpYS02LjMuMV8xCitsaWJR dDZNdWx0aW1lZGlhUXVpY2suc28uNiBxdDYtbXVsdGltZWRpYS02LjMuMV8xCitsaWJRdDZNdWx0 aW1lZGlhLnNvLjYgcXQ2LW11bHRpbWVkaWEtNi4zLjFfMQogbGlibnB0aC5zby4wIG5wdGgtMS4x XzEKIGxpYm5wdXBucC5zby40IGxpYm5wdXBucC00LjAuMl8xCiBsaWJnbGZ3LnNvLjMgZ2xmdy0z LjAuNF8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni1tdWx0aW1lZGlhLWRldmVsIGIvc3JjcGtn cy9xdDYtbXVsdGltZWRpYS1kZXZlbApuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRleCAwMDAwMDAw MDAwMDAuLjkzNDM0NDY1MDJkMAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LW11bHRp bWVkaWEtZGV2ZWwKQEAgLTAsMCArMSBAQAorcXQ2LW11bHRpbWVkaWEKXCBObyBuZXdsaW5lIGF0 IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni1tdWx0aW1lZGlhL3RlbXBsYXRl IGIvc3JjcGtncy9xdDYtbXVsdGltZWRpYS90ZW1wbGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMDAuLjUzNWEyZjU1ZmZlNAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3Br Z3MvcXQ2LW11bHRpbWVkaWEvdGVtcGxhdGUKQEAgLTAsMCArMSwzMyBAQAorIyBUZW1wbGF0ZSBm aWxlIGZvciAncXQ2LW11bHRpbWVkaWEnCitwa2duYW1lPXF0Ni1tdWx0aW1lZGlhCit2ZXJzaW9u PTYuMy4xCityZXZpc2lvbj0xCit3cmtzcmM9InF0bXVsdGltZWRpYS1ldmVyeXdoZXJlLXNyYy0k e3ZlcnNpb259IgorYnVpbGRfc3R5bGU9Y21ha2UKK2NvbmZpZ3VyZV9hcmdzPSItRFFUX0ZFQVRV UkVfZ3N0cmVhbWVyPU9OIgoraG9zdG1ha2VkZXBlbmRzPSJwZXJsIHF0Ni1kZWNsYXJhdGl2ZS1k ZXZlbCBwa2ctY29uZmlnCisgcXQ2LXNoYWRlcnRvb2xzLWRldmVsIgorbWFrZWRlcGVuZHM9InF0 Ni1kZWNsYXJhdGl2ZS1kZXZlbAorIHF0Ni1zaGFkZXJ0b29scy1kZXZlbCBsaWJnbGliLWRldmVs IGdzdC1wbHVnaW5zLWJhc2UxLWRldmVsIgorc2hvcnRfZGVzYz0iQ3Jvc3MtcGxhdGZvcm0gYXBw bGljYXRpb24gYW5kIFVJIGZyYW1ld29yayAtIG11bHRpbWVkaWEiCittYWludGFpbmVyPSJKb2hu IDxtZUBqb2hubnluYXRvci5kZXY+IgorbGljZW5zZT0iKExHUEwtMy4wLW9ubHkgT1IgR1BMLTIu MC1vbmx5IE9SIEdQTC0zLjAtb25seSkgQU5EIEdQTC0zLjAtb25seSB3aXRoIFF0LUdQTC1leGNl cHRpb24tMS4wIgoraG9tZXBhZ2U9Imh0dHBzOi8vcXQuaW8vIgorZGlzdGZpbGVzPSJodHRwOi8v ZG93bmxvYWQucXQuaW8vb2ZmaWNpYWxfcmVsZWFzZXMvcXQvJHt2ZXJzaW9uJS4qfS8ke3ZlcnNp b259L3N1Ym1vZHVsZXMvcXRtdWx0aW1lZGlhLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0udGFy Lnh6IgorY2hlY2tzdW09N2UwMzI0MmFhZGQ2MzRmZjJkOWZjZjA4OTQ4MjkwZjAzZGEzZDlhNTAx MjM2OWQ5MDhkYTg5ZjgyYjFkNzMzNgorCitxdDYtbXVsdGltZWRpYS1kZXZlbF9wYWNrYWdlKCkg eworCWRlcGVuZHM9IiR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSBxdDYtYmFz ZS1kZXZlbD49JHt2ZXJzaW9ufV8xIgorCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxl cyIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2luY2x1ZGUKKwkJdm1vdmUgdXNyL2xp Yi9jbWFrZQorCQl2bW92ZSB1c3IvbGliL21ldGF0eXBlcworCQl2bW92ZSB1c3IvbGliL3BrZ2Nv bmZpZworCQl2bW92ZSB1c3IvbGliL3F0Ni9ta3NwZWNzCisJCXZtb3ZlIHVzci9saWIvcXQ2L3Ft bC9RdE11bHRpbWVkaWEvcGx1Z2lucy5xbWx0eXBlcworCQl2bW92ZSB1c3IvbGliL3F0Ni9xbWwv UXRNdWx0aW1lZGlhL3FtbGRpcgorCQl2bW92ZSAidXNyL2xpYi8qLnNvIgorCQl2bW92ZSAidXNy L2xpYi8qLnBybCIKKwl9Cit9CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni1tdWx0aW1lZGlhL3Vw ZGF0ZSBiL3NyY3BrZ3MvcXQ2LW11bHRpbWVkaWEvdXBkYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMC4uODQ0NTUyNDY1MjIyCi0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9xdDYtbXVsdGltZWRpYS91cGRhdGUKQEAgLTAsMCArMSBAQAorcGtnbmFtZT0iJHtwa2du YW1lLzYtL30tZXZlcnl3aGVyZS1zcmMiCgpGcm9tIDcyYTYwN2ZkZDBkMDhlODViZDRlZWFjYjI2 ZjFmY2MzZTgzZmM3NzcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT89 QzQ9OTBvPUMzPUEwbj0yMFRyPUUxPUJBPUE3bj0yMEM9QzM9QjRuZz0yMERhbmg/PQogPGNvbmdk YW5ocXhAZ21haWwuY29tPgpEYXRlOiBNb24sIDggQXVnIDIwMjIgMTg6MjI6NDggKzA3MDAKU3Vi amVjdDogW1BBVENIIDIyLzI3XSBOZXcgcGFja2FnZTogcXQ2LWNvbm5lY3Rpdml0eS02LjMuMQoK LS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgICAgICAgICAgICAgfCAgMiArKwogc3JjcGtncy9x dDYtY29ubmVjdGl2aXR5LWRldmVsICAgIHwgIDEgKwogc3JjcGtncy9xdDYtY29ubmVjdGl2aXR5 L3RlbXBsYXRlIHwgMzAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNo YW5nZWQsIDMzIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEyMDAwMCBzcmNwa2dzL3F0Ni1j b25uZWN0aXZpdHktZGV2ZWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni1jb25uZWN0 aXZpdHkvdGVtcGxhdGUKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGli cwppbmRleCBkYTc4ZmFhNjg5ZDUuLmQ0NjY0M2ZjMzFlZCAxMDA2NDQKLS0tIGEvY29tbW9uL3No bGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC0yMDcxLDYgKzIwNzEsOCBAQCBsaWJRdDZEZXNp Z25lci5zby42IHF0Ni10b29scy02LjEuMF8xCiBsaWJRdDZEZXNpZ25lckNvbXBvbmVudHMuc28u NiBxdDYtdG9vbHMtNi4xLjBfMQogbGliUXQ2SGVscC5zby42IHF0Ni10b29scy02LjEuMF8xCiBs aWJRdDZVaVRvb2xzLnNvLjYgcXQ2LXRvb2xzLTYuMS4wXzEKK2xpYlF0Nk5mYy5zby42IHF0Ni1j b25uZWN0aXZpdHktNi4zLjFfMQorbGliUXQ2Qmx1ZXRvb3RoLnNvLjYgcXQ2LWNvbm5lY3Rpdml0 eS02LjMuMV8xCiBsaWJRdDZIdW5zcGVsbElucHV0TWV0aG9kLnNvLjYgcXQ2LXZpcnR1YWxrZXli b2FyZC02LjEuMF8xCiBsaWJRdDZWaXJ0dWFsS2V5Ym9hcmQuc28uNiBxdDYtdmlydHVhbGtleWJv YXJkLTYuMS4wXzEKIGxpYlF0NlNlcmlhbFBvcnQuc28uNiBxdDYtc2VyaWFscG9ydC02LjIuMGFs cGhhXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LWNvbm5lY3Rpdml0eS1kZXZlbCBiL3NyY3Br Z3MvcXQ2LWNvbm5lY3Rpdml0eS1kZXZlbApuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRleCAwMDAw MDAwMDAwMDAuLjQ3OGNjOWQ4YWEzOQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LWNv bm5lY3Rpdml0eS1kZXZlbApAQCAtMCwwICsxIEBACitxdDYtY29ubmVjdGl2aXR5ClwgTm8gbmV3 bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtY29ubmVjdGl2aXR5 L3RlbXBsYXRlIGIvc3JjcGtncy9xdDYtY29ubmVjdGl2aXR5L3RlbXBsYXRlCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNmNiNjE3NDRkMGNiCi0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9xdDYtY29ubmVjdGl2aXR5L3RlbXBsYXRlCkBAIC0wLDAgKzEsMzAgQEAK KyMgVGVtcGxhdGUgZmlsZSBmb3IgJ3F0Ni1jb25uZWN0aXZpdHknCitwa2duYW1lPXF0Ni1jb25u ZWN0aXZpdHkKK3ZlcnNpb249Ni4zLjEKK3JldmlzaW9uPTEKK3dya3NyYz0icXRjb25uZWN0aXZp dHktZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9ufSIKK2J1aWxkX3N0eWxlPWNtYWtlCitob3N0bWFr ZWRlcGVuZHM9InBlcmwgcXQ2LWRlY2xhcmF0aXZlLWRldmVsIgorbWFrZWRlcGVuZHM9InF0Ni1k ZWNsYXJhdGl2ZS1kZXZlbCIKK3Nob3J0X2Rlc2M9IkNyb3NzLXBsYXRmb3JtIGFwcGxpY2F0aW9u IGFuZCBVSSBmcmFtZXdvcmsgLSBDb25uZWN0aXZpdHkiCittYWludGFpbmVyPSLEkG/DoG4gVHLh uqduIEPDtG5nIERhbmggPGNvbmdkYW5ocXhAZ21haWwuY29tPiIKK2xpY2Vuc2U9IkdQTC0zLjAt b25seSIKK2hvbWVwYWdlPSJodHRwczovL3F0LmlvLyIKK2Rpc3RmaWxlcz0iaHR0cDovL2Rvd25s b2FkLnF0LmlvL29mZmljaWFsX3JlbGVhc2VzL3F0LyR7dmVyc2lvbiUuKn0vJHt2ZXJzaW9ufS9z dWJtb2R1bGVzL3F0Y29ubmVjdGl2aXR5LWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0udGFyLnh6 IgorY2hlY2tzdW09YjI1Y2U0NzEwYTljNjFiYzZhNWRiYWVlYjNlMmVkOTA3YThiYzg1NDc4ZmRi MmFiNDMxMjI5Nzc2OGI2OTViMAorCitxdDYtY29ubmVjdGl2aXR5LWRldmVsX3BhY2thZ2UoKSB7 CisJZGVwZW5kcz0iJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259CisJIHF0Ni1k ZWNsYXJhdGl2ZT49JHt2ZXJzaW9ufSIKKwlzaG9ydF9kZXNjKz0iIC0gZGV2ZWxvcG1lbnQgZmls ZXMiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlIHVzci9pbmNsdWRlCisJCXZtb3ZlIHVzci9s aWIvY21ha2UKKwkJdm1vdmUgdXNyL2xpYi9tZXRhdHlwZXMKKwkJdm1vdmUgdXNyL2xpYi9wa2dj b25maWcKKwkJdm1vdmUgdXNyL2xpYi9xdDYvbWtzcGVjcworCQl2bW92ZSAidXNyL2xpYi8qLnNv IgorCQl2bW92ZSAidXNyL2xpYi8qLnBybCIKKwkJdm1vdmUgdXNyL3NoYXJlL3F0Ni9tb2R1bGVz CisJfQorfQoKRnJvbSA3MDI0YzA0ZWQwNDQ5YzFiYTVjNzA4YjJkZjIxZmNjMWEyNDA3ZGFlIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBU cj1FMT1CQT1BN249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4K RGF0ZTogTW9uLCA4IEF1ZyAyMDIyIDE4OjIyOjU3ICswNzAwClN1YmplY3Q6IFtQQVRDSCAyMy8y N10gTmV3IHBhY2thZ2U6IHF0Ni1zZW5zb3JzLTYuMy4xCgotLS0KIGNvbW1vbi9zaGxpYnMgICAg ICAgICAgICAgICAgfCAgMiArKwogc3JjcGtncy9xdDYtc2Vuc29ycy1kZXZlbCAgICB8ICAxICsK IHNyY3BrZ3MvcXQ2LXNlbnNvcnMvdGVtcGxhdGUgfCAzMSArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDM0IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2Rl IDEyMDAwMCBzcmNwa2dzL3F0Ni1zZW5zb3JzLWRldmVsCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9xdDYtc2Vuc29ycy90ZW1wbGF0ZQoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9j b21tb24vc2hsaWJzCmluZGV4IGQ0NjY0M2ZjMzFlZC4uZjYyODRlZWUxYmFlIDEwMDY0NAotLS0g YS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTIwNzMsNiArMjA3Myw4IEBA IGxpYlF0NkhlbHAuc28uNiBxdDYtdG9vbHMtNi4xLjBfMQogbGliUXQ2VWlUb29scy5zby42IHF0 Ni10b29scy02LjEuMF8xCiBsaWJRdDZOZmMuc28uNiBxdDYtY29ubmVjdGl2aXR5LTYuMy4xXzEK IGxpYlF0NkJsdWV0b290aC5zby42IHF0Ni1jb25uZWN0aXZpdHktNi4zLjFfMQorbGliUXQ2U2Vu c29ycy5zby42IHF0Ni1zZW5zb3JzLTYuMy4xXzEKK2xpYlF0NlNlbnNvcnNRdWljay5zby42IHF0 Ni1zZW5zb3JzLTYuMy4xXzEKIGxpYlF0Nkh1bnNwZWxsSW5wdXRNZXRob2Quc28uNiBxdDYtdmly dHVhbGtleWJvYXJkLTYuMS4wXzEKIGxpYlF0NlZpcnR1YWxLZXlib2FyZC5zby42IHF0Ni12aXJ0 dWFsa2V5Ym9hcmQtNi4xLjBfMQogbGliUXQ2U2VyaWFsUG9ydC5zby42IHF0Ni1zZXJpYWxwb3J0 LTYuMi4wYWxwaGFfMQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtc2Vuc29ycy1kZXZlbCBiL3Ny Y3BrZ3MvcXQ2LXNlbnNvcnMtZGV2ZWwKbmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggMDAwMDAw MDAwMDAwLi5lYjk0NTdmMDQwNTUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni1zZW5z b3JzLWRldmVsCkBAIC0wLDAgKzEgQEAKK3F0Ni1zZW5zb3JzClwgTm8gbmV3bGluZSBhdCBlbmQg b2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtc2Vuc29ycy90ZW1wbGF0ZSBiL3NyY3Br Z3MvcXQ2LXNlbnNvcnMvdGVtcGxhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwLi41YTgxZjQzYjYwZWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni1zZW5z b3JzL3RlbXBsYXRlCkBAIC0wLDAgKzEsMzEgQEAKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ3F0Ni1z ZW5zb3JzJworcGtnbmFtZT1xdDYtc2Vuc29ycwordmVyc2lvbj02LjMuMQorcmV2aXNpb249MQor d3Jrc3JjPSJxdHNlbnNvcnMtZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9ufSIKK2J1aWxkX3N0eWxl PWNtYWtlCitob3N0bWFrZWRlcGVuZHM9InBlcmwgcXQ2LWRlY2xhcmF0aXZlLWRldmVsIHF0Ni1z dmctZGV2ZWwgcGtnLWNvbmZpZyIKK21ha2VkZXBlbmRzPSJxdDYtZGVjbGFyYXRpdmUtZGV2ZWwg cXQ2LXN2Zy1kZXZlbCIKK3Nob3J0X2Rlc2M9IkNyb3NzLXBsYXRmb3JtIGFwcGxpY2F0aW9uIGFu ZCBVSSBmcmFtZXdvcmsgLSBTZW5zb3JzIgorbWFpbnRhaW5lcj0ixJBvw6BuIFRy4bqnbiBDw7Ru ZyBEYW5oIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4iCitsaWNlbnNlPSIoTEdQTC0zLjAtb25seSBP UiBHUEwtMi4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5KSBBTkQgR1BMLTMuMC1vbmx5IHdpdGggUXQt R1BMLWV4Y2VwdGlvbi0xLjAiCitob21lcGFnZT0iaHR0cHM6Ly9xdC5pby8iCitkaXN0ZmlsZXM9 Imh0dHA6Ly9kb3dubG9hZC5xdC5pby9vZmZpY2lhbF9yZWxlYXNlcy9xdC8ke3ZlcnNpb24lLip9 LyR7dmVyc2lvbn0vc3VibW9kdWxlcy9xdHNlbnNvcnMtZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9u fS50YXIueHoiCitjaGVja3N1bT00YjI0MGI1OWVkYmE5YTQyYjQ3MzU3NThhMjVmMjc5YTI2ODQx Yjk4Mjg2NGU3YjM4ZjZlZjBiODFlMGQ2MGNjCisKK3F0Ni1zZW5zb3JzLWRldmVsX3BhY2thZ2Uo KSB7CisJZGVwZW5kcz0iJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259CisJIHF0 Ni1kZWNsYXJhdGl2ZS1kZXZlbD49JHt2ZXJzaW9ufV8xIgorCXNob3J0X2Rlc2MrPSIgLSBkZXZl bG9wbWVudCBmaWxlcyIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2luY2x1ZGUKKwkJ dm1vdmUgdXNyL2xpYi9jbWFrZQorCQl2bW92ZSB1c3IvbGliL21ldGF0eXBlcworCQl2bW92ZSB1 c3IvbGliL3BrZ2NvbmZpZworCQl2bW92ZSB1c3IvbGliL3F0Ni9ta3NwZWNzCisJCXZtb3ZlIHVz ci9saWIvcXQ2L3FtbC9RdFNlbnNvcnMvcGx1Z2lucy5xbWx0eXBlcworCQl2bW92ZSB1c3IvbGli L3F0Ni9xbWwvUXRTZW5zb3JzL3FtbGRpcgorCQl2bW92ZSAidXNyL2xpYi8qLnNvIgorCQl2bW92 ZSAidXNyL2xpYi8qLnBybCIKKwl9Cit9CgpGcm9tIGIzMmY4ZmQwOTQ3Yzg0NjVlOWYxYzRmMjJh Y2RlOGRjMGU0NmE1YzAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT89 QzQ9OTBvPUMzPUEwbj0yMFRyPUUxPUJBPUE3bj0yMEM9QzM9QjRuZz0yMERhbmg/PQogPGNvbmdk YW5ocXhAZ21haWwuY29tPgpEYXRlOiBNb24sIDggQXVnIDIwMjIgMTg6MjM6MDggKzA3MDAKU3Vi amVjdDogW1BBVENIIDI0LzI3XSBOZXcgcGFja2FnZTogcXQ2LXJlbW90ZW9iamVjdHMtNi4zLjEK Ci0tLQogY29tbW9uL3NobGlicyAgICAgICAgICAgICAgICAgICAgICB8ICAyICsrCiBzcmNwa2dz L3F0Ni1yZW1vdGVvYmplY3RzLWRldmVsICAgIHwgIDEgKwogc3JjcGtncy9xdDYtcmVtb3Rlb2Jq ZWN0cy90ZW1wbGF0ZSB8IDMxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMyBmaWxl cyBjaGFuZ2VkLCAzNCBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMjAwMDAgc3JjcGtncy9x dDYtcmVtb3Rlb2JqZWN0cy1kZXZlbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXJl bW90ZW9iamVjdHMvdGVtcGxhdGUKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9u L3NobGlicwppbmRleCBmNjI4NGVlZTFiYWUuLmEwZmFiODg2OTk0OCAxMDA2NDQKLS0tIGEvY29t bW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC0yMDczLDYgKzIwNzMsOCBAQCBsaWJR dDZIZWxwLnNvLjYgcXQ2LXRvb2xzLTYuMS4wXzEKIGxpYlF0NlVpVG9vbHMuc28uNiBxdDYtdG9v bHMtNi4xLjBfMQogbGliUXQ2TmZjLnNvLjYgcXQ2LWNvbm5lY3Rpdml0eS02LjMuMV8xCiBsaWJR dDZCbHVldG9vdGguc28uNiBxdDYtY29ubmVjdGl2aXR5LTYuMy4xXzEKK2xpYlF0NlJlbW90ZU9i amVjdHMuc28uNiBxdDYtcmVtb3Rlb2JqZWN0cy02LjMuMV8xCitsaWJRdDZSZW1vdGVPYmplY3Rz UW1sLnNvLjYgcXQ2LXJlbW90ZW9iamVjdHMtNi4zLjFfMQogbGliUXQ2U2Vuc29ycy5zby42IHF0 Ni1zZW5zb3JzLTYuMy4xXzEKIGxpYlF0NlNlbnNvcnNRdWljay5zby42IHF0Ni1zZW5zb3JzLTYu My4xXzEKIGxpYlF0Nkh1bnNwZWxsSW5wdXRNZXRob2Quc28uNiBxdDYtdmlydHVhbGtleWJvYXJk LTYuMS4wXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXJlbW90ZW9iamVjdHMtZGV2ZWwgYi9z cmNwa2dzL3F0Ni1yZW1vdGVvYmplY3RzLWRldmVsCm5ldyBmaWxlIG1vZGUgMTIwMDAwCmluZGV4 IDAwMDAwMDAwMDAwMC4uMmEwMjdmOTUyNjZmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9x dDYtcmVtb3Rlb2JqZWN0cy1kZXZlbApAQCAtMCwwICsxIEBACitxdDYtcmVtb3Rlb2JqZWN0cwpc IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXJlbW90 ZW9iamVjdHMvdGVtcGxhdGUgYi9zcmNwa2dzL3F0Ni1yZW1vdGVvYmplY3RzL3RlbXBsYXRlCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZWJiMDYzODJjOGQ2Ci0tLSAv ZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtcmVtb3Rlb2JqZWN0cy90ZW1wbGF0ZQpAQCAtMCww ICsxLDMxIEBACisjIFRlbXBsYXRlIGZpbGUgZm9yICdxdDYtcmVtb3Rlb2JqZWN0cycKK3BrZ25h bWU9cXQ2LXJlbW90ZW9iamVjdHMKK3ZlcnNpb249Ni4zLjEKK3JldmlzaW9uPTEKK3dya3NyYz0i cXRyZW1vdGVvYmplY3RzLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0iCitidWlsZF9zdHlsZT1j bWFrZQoraG9zdG1ha2VkZXBlbmRzPSJwZXJsIHF0Ni1kZWNsYXJhdGl2ZS1kZXZlbCBwa2ctY29u ZmlnIgorbWFrZWRlcGVuZHM9InF0Ni1kZWNsYXJhdGl2ZS1kZXZlbCIKK3Nob3J0X2Rlc2M9IkNy b3NzLXBsYXRmb3JtIGFwcGxpY2F0aW9uIGFuZCBVSSBmcmFtZXdvcmsgLSBSZW1vdGUgT2JqZWN0 cyIKK21haW50YWluZXI9IsSQb8OgbiBUcuG6p24gQ8O0bmcgRGFuaCA8Y29uZ2RhbmhxeEBnbWFp bC5jb20+IgorbGljZW5zZT0iKExHUEwtMy4wLW9ubHkgT1IgR1BMLTIuMC1vbmx5IE9SIEdQTC0z LjAtb25seSkgQU5EIEdQTC0zLjAtb25seSB3aXRoIFF0LUdQTC1leGNlcHRpb24tMS4wIgoraG9t ZXBhZ2U9Imh0dHBzOi8vcXQuaW8vIgorZGlzdGZpbGVzPSJodHRwOi8vZG93bmxvYWQucXQuaW8v b2ZmaWNpYWxfcmVsZWFzZXMvcXQvJHt2ZXJzaW9uJS4qfS8ke3ZlcnNpb259L3N1Ym1vZHVsZXMv cXRyZW1vdGVvYmplY3RzLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0udGFyLnh6IgorY2hlY2tz dW09ZWE2ZDAzOGIxMWM2MDk4MWRlMGJkMzlhNjA5MWE1OWFiZjdkMDMxZTM3YmZjNTkyYjMxYmUx MjE3YmVmNGNhNgorCitxdDYtcmVtb3Rlb2JqZWN0cy1kZXZlbF9wYWNrYWdlKCkgeworCWRlcGVu ZHM9IiR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufQorCSBxdDYtZGVjbGFyYXRp dmUtZGV2ZWw+PSR7dmVyc2lvbn1fMSIKKwlzaG9ydF9kZXNjKz0iIC0gZGV2ZWxvcG1lbnQgZmls ZXMiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlIHVzci9pbmNsdWRlCisJCXZtb3ZlIHVzci9s aWIvY21ha2UKKwkJdm1vdmUgdXNyL2xpYi9tZXRhdHlwZXMKKwkJdm1vdmUgdXNyL2xpYi9wa2dj b25maWcKKwkJdm1vdmUgdXNyL2xpYi9xdDYvbWtzcGVjcworCQl2bW92ZSB1c3IvbGliL3F0Ni9x bWwvUXRSZW1vdGVPYmplY3RzL3BsdWdpbnMucW1sdHlwZXMKKwkJdm1vdmUgdXNyL2xpYi9xdDYv cW1sL1F0UmVtb3RlT2JqZWN0cy9xbWxkaXIKKwkJdm1vdmUgInVzci9saWIvKi5zbyIKKwkJdm1v dmUgInVzci9saWIvKi5wcmwiCisJfQorfQoKRnJvbSA0MDE3MzJlYzQ2ZGMxMTdmZWVkNjM2ZTVm M2ZkM2IxMTNhZDNmNjMxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/ PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25n ZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCA4IEF1ZyAyMDIyIDE3OjEzOjExICswNzAwClN1 YmplY3Q6IFtQQVRDSCAyNS8yN10gTmV3IHBhY2thZ2U6IHF0Ni13ZWJlbmdpbmUtNi4zLjEuCgot LS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDcg Kwogc3JjcGtncy9xdDYtd2ViZW5naW5lLWRldmVsICAgICAgICAgICAgICAgICAgIHwgICAgMSAr CiBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUtZXhhbXBsZXMgICAgICAgICAgICAgICAgfCAgICAxICsK IC4uLi9wYXRjaGVzLzAwMDEtTm9uZS1uby1kZWJ1Zy5wYXRjaCAgICAgICAgICB8ICAgMTEgKwog Li4uL3BhdGNoZXMvMDAwMi1lbmFibGUtcHBjNjQucGF0Y2ggICAgICAgICAgIHwgICAyMCArCiAu Li4vcGF0Y2hlcy8wMDAzLWNyb3NzLWhhY2sucGF0Y2ggICAgICAgICAgICAgfCAgIDEwICsKIC4u Li8wMDA0LXBwYy1kaXNhYmxlLWp4bC1kZWNvZGVyLnBhdGNoICAgICAgICB8ICAgMTMgKwogLi4u L3BhdGNoZXMvMDA1MC1uby1nbGliYy1jbWFrZS1jaGVjay5wYXRjaCAgIHwgICAxNCArCiAuLi4v MDEwMC1jaHJvbWl1bS1zYW5kYm94LW1lbWJhcnJpZXIucGF0Y2ggICAgfCAgIDU4ICsKIC4uLi9x dDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwMS1zaXplX3QucGF0Y2ggICB8ICAgMTYgKwogLi4uLzAx MDItY2hyb21pdW0tOTAtcnV5LWluY2x1ZGUucGF0Y2ggICAgICAgIHwgICAxOSArCiAuLi4tdjgt bW9ub3RvbmljLXB0aHJlYWQtY29udF90aW1lZHdhaXQucGF0Y2ggfCAgIDIyICsKIC4uLi8wMTA0 LWNocm9taXVtLXJldmVydC05ZDA4MGMwLnBhdGNoICAgICAgICB8ICAxNjIgKwogLi4uLWNocm9t aXVtLXJldmVydC1kcm9wLW9mLXN5c3RlbS1qYXZhLnBhdGNoIHwgICAxNSArCiAuLi4vcGF0Y2hl cy8wMTA2LWNocm9taXVtLXN5c3RlbS1ub2RlanMucGF0Y2ggfCAgIDIwICsKIC4uLi8wMTA3LWNo cm9taXVtLWN1cnNlZF5Vc2NvcGVkX2ZpbGUucGF0Y2ggICB8ICAgMTggKwogLi4uLzAxMDgtY2hy b21pdW0tZml4LW5hcnJvd2luZy1jYXN0LnBhdGNoICAgIHwgICA1MyArCiAuLi4vMDEwOS1jaHJv bWl1bS1yZW1vdmUtc3RyaXBfYmluYXJ5LnBhdGNoICAgfCAgIDMyICsKIC4uLml1bS1yZXZlcnQt dXNlLWZmaWxlLWNvbXBpbGF0aW9uLWRpci5wYXRjaCB8ICAgNTcgKwogLi4uMTEtY2hyb21pdW0t bm8tV25vLXN0cmluZ29wLW92ZXJyZWFkLnBhdGNoIHwgICAxMCArCiAuLi4vMDE1MC1jaHJvbWl1 bS1nbGliYy1saWJjX21hbGxvYy5wYXRjaCAgICAgfCAgIDI0ICsKIC4uLi1pbmNsdWRlLXN5cy1y ZWcuaC10by1nZXQtX19XT1JEU0laRS5wYXRjaCB8ICAgMjEgKwogLi4uLzAyMDEtY2hyb21pdW0t bXVzbC1kaXNwYXRjaC10by1tdXNsLnBhdGNoIHwgIDEwMyArCiAuLi4vMDIwMi1jaHJvbWl1bS1t dXNsLW5vLW1hbGxpbmZvLnBhdGNoICAgICAgfCAgIDYyICsKIC4uLi8wMjAzLWNocm9taXVtLW11 c2wtc2lnaW5mb190LnBhdGNoICAgICAgICB8ICAgMTggKwogLi4uLzAyMDQtY2hyb21pdW0tbXVz bC1zdGFja3N0YXJ0LnBhdGNoICAgICAgIHwgICAyMCArCiAuLi4vcGF0Y2hlcy8wMjA1LWNocm9t aXVtLW11c2wtc2FuZGJveC5wYXRjaCAgfCAgIDkyICsKIC4uLjAyMDYtY2hyb21pdW0tbXVzbC1k ZWZhdWx0LXN0YWNrc2l6ZS5wYXRjaCB8ICAgMTUgKwogLi4uLWNocm9taXVtLW11c2wtY3Jvc3Mt bm8tYXNtX3B0cmFjZV9oLnBhdGNoIHwgICAzMCArCiAuLi4vcGF0Y2hlcy8wMjA4LWNocm9taXVt LW11c2wtZXhlY2luZm8ucGF0Y2ggfCAgMTI1ICsKIC4uLi8wMjA5LWNocm9taXVtLW11c2wtdGhy ZWFkLXN0YWNrc2l6ZS5wYXRjaCB8ICAgMjIgKwogLi4uLzAyMTAtY2hyb21pdW0tbXVzbC1tc2d2 ZWMtcHVzaF9iYWNrLnBhdGNoIHwgICAxNCArCiAuLi5pdW0tbXVzbC1jYW5vbmljYWxpemUtZmls ZS1uYW1lLW11c2wucGF0Y2ggfCAgIDExICsKIC4uLi8wMjEyLWNocm9taXVtLW11c2wtbm8tZ2V0 Y29udGV4dC5wYXRjaCAgICB8ICAgMjkgKwogLi4uL3BhdGNoZXMvMDIxMy1jaHJvbWl1bS1tdXNs LWNyYXNocGFkLnBhdGNoIHwgICAyMiArCiAuLi4vcGF0Y2hlcy8wMjE0LWNocm9taXVtLW11c2wt Zml4ZXMucGF0Y2ggICAgfCAgMTA4ICsKIC4uLi9wYXRjaGVzLzAyMTUtY2hyb21pdW0tbXVzbC1j ZGVmcy5wYXRjaCAgICB8ICAgMjkgKwogLi4uL3BhdGNoZXMvMDIxNi1jaHJvbWl1bS1tdXNsLXN0 YXQucGF0Y2ggICAgIHwgICAxMiArCiAuLi4vcGF0Y2hlcy8wMjE3LWNocm9taXVtLW11c2wtcmVz b2x2ZXIucGF0Y2ggfCAgIDc3ICsKIC4uLi9wYXRjaGVzLzA2MDAtY2hyb21pdW0tc25kaW8ucGF0 Y2ggICAgICAgICB8ICA4NzYgKysrKwogLi4uL3BhdGNoZXMvMDcwMC1hcm12N2wtbmVvbi5wYXRj aCAgICAgICAgICAgIHwgICAxMCArCiAuLi4vMDc1MC1jaHJvbWl1bS1tdXNsLWFybS11c2VyX3Zm cC5wYXRjaCAgICAgfCAgIDIwICsKIC4uLi8wNzUxLWNocm9taXVtLW11c2wtYXJtLWVsZl9hdXh2 X3QucGF0Y2ggICB8ICAgMTggKwogLi4uMDgwMS1jaHJvbWl1bS1pNjg2LXZhYXBpLWZwZXJtaXNz aXZlLnBhdGNoIHwgICAyNCArCiAuLi4vcGF0Y2hlcy8wOTAwLXh4eC1wcGM2NGxlLWxpYnZweC5w YXRjaCAgICAgfCAgIDY1ICsKIC4uLi8wOTAxLXh4eC1wcGM2NGxlLXNhbmRib3gtbGludXgtc3Rh dC5wYXRjaCB8ICAgMzEgKwogLi4uL3BhdGNoZXMvMDkwMi14eHgtcHBjNjRsZS1zdXBwb3J0LnBh dGNoICAgIHwgMzU1OSArKysrKysrKysrKysrKysrKwogLi4uLzA5MDMteHh4LXBwYzY0bGUtc3dp ZnRzaGFkZXIucGF0Y2ggICAgICAgIHwgICAxOCArCiBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvdGVt cGxhdGUgICAgICAgICAgICAgICAgfCAgMTc4ICsKIHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS91cGRh dGUgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogNTAgZmlsZXMgY2hhbmdlZCwgNjE5MyBpbnNl cnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMjAwMDAgc3JjcGtncy9xdDYtd2ViZW5naW5lLWRldmVs CiBjcmVhdGUgbW9kZSAxMjAwMDAgc3JjcGtncy9xdDYtd2ViZW5naW5lLWV4YW1wbGVzCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDAwMS1Ob25lLW5v LWRlYnVnLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvMDAwMi1lbmFibGUtcHBjNjQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDAzLWNyb3NzLWhhY2sucGF0Y2gKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDA0LXBwYy1kaXNhYmxlLWp4 bC1kZWNvZGVyLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5l L3BhdGNoZXMvMDA1MC1uby1nbGliYy1jbWFrZS1jaGVjay5wYXRjaAogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDAtY2hyb21pdW0tc2FuZGJveC1t ZW1iYXJyaWVyLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5l L3BhdGNoZXMvMDEwMS1zaXplX3QucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0 Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTAyLWNocm9taXVtLTkwLXJ1eS1pbmNsdWRlLnBhdGNoCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwMy1jaHJv bWl1bS12OC1tb25vdG9uaWMtcHRocmVhZC1jb250X3RpbWVkd2FpdC5wYXRjaAogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDQtY2hyb21pdW0tcmV2 ZXJ0LTlkMDgwYzAucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdp bmUvcGF0Y2hlcy8wMTA1LWNocm9taXVtLXJldmVydC1kcm9wLW9mLXN5c3RlbS1qYXZhLnBhdGNo CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwNi1j aHJvbWl1bS1zeXN0ZW0tbm9kZWpzLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9x dDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwNy1jaHJvbWl1bS1jdXJzZWReVXNjb3BlZF9maWxlLnBh dGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEw OC1jaHJvbWl1bS1maXgtbmFycm93aW5nLWNhc3QucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA5LWNocm9taXVtLXJlbW92ZS1zdHJpcF9i aW5hcnkucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0 Y2hlcy8wMTEwLWNocm9taXVtLXJldmVydC11c2UtZmZpbGUtY29tcGlsYXRpb24tZGlyLnBhdGNo CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDExMS1j aHJvbWl1bS1uby1Xbm8tc3RyaW5nb3Atb3ZlcnJlYWQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTUwLWNocm9taXVtLWdsaWJjLWxpYmNf bWFsbG9jLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvMDIwMC1jaHJvbWl1bS1tdXNsLWluY2x1ZGUtc3lzLXJlZy5oLXRvLWdldC1fX1dPUkRT SVpFLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNo ZXMvMDIwMS1jaHJvbWl1bS1tdXNsLWRpc3BhdGNoLXRvLW11c2wucGF0Y2gKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjAyLWNocm9taXVtLW11c2wt bm8tbWFsbGluZm8ucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdp bmUvcGF0Y2hlcy8wMjAzLWNocm9taXVtLW11c2wtc2lnaW5mb190LnBhdGNoCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIwNC1jaHJvbWl1bS1tdXNs LXN0YWNrc3RhcnQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdp bmUvcGF0Y2hlcy8wMjA1LWNocm9taXVtLW11c2wtc2FuZGJveC5wYXRjaAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDYtY2hyb21pdW0tbXVzbC1k ZWZhdWx0LXN0YWNrc2l6ZS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdl YmVuZ2luZS9wYXRjaGVzLzAyMDctY2hyb21pdW0tbXVzbC1jcm9zcy1uby1hc21fcHRyYWNlX2gu cGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8w MjA4LWNocm9taXVtLW11c2wtZXhlY2luZm8ucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjA5LWNocm9taXVtLW11c2wtdGhyZWFkLXN0YWNr c2l6ZS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRj aGVzLzAyMTAtY2hyb21pdW0tbXVzbC1tc2d2ZWMtcHVzaF9iYWNrLnBhdGNoCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIxMS1jaHJvbWl1bS1tdXNs LWNhbm9uaWNhbGl6ZS1maWxlLW5hbWUtbXVzbC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMTItY2hyb21pdW0tbXVzbC1uby1nZXRjb250 ZXh0LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNo ZXMvMDIxMy1jaHJvbWl1bS1tdXNsLWNyYXNocGFkLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIxNC1jaHJvbWl1bS1tdXNsLWZpeGVzLnBh dGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIx NS1jaHJvbWl1bS1tdXNsLWNkZWZzLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9x dDYtd2ViZW5naW5lL3BhdGNoZXMvMDIxNi1jaHJvbWl1bS1tdXNsLXN0YXQucGF0Y2gKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjE3LWNocm9taXVt LW11c2wtcmVzb2x2ZXIucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJl bmdpbmUvcGF0Y2hlcy8wNjAwLWNocm9taXVtLXNuZGlvLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDcwMC1hcm12N2wtbmVvbi5wYXRjaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA3NTAtY2hy b21pdW0tbXVzbC1hcm0tdXNlcl92ZnAucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wNzUxLWNocm9taXVtLW11c2wtYXJtLWVsZl9hdXh2X3Qu cGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8w ODAxLWNocm9taXVtLWk2ODYtdmFhcGktZnBlcm1pc3NpdmUucGF0Y2gKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wOTAwLXh4eC1wcGM2NGxlLWxpYnZw eC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVz LzA5MDEteHh4LXBwYzY0bGUtc2FuZGJveC1saW51eC1zdGF0LnBhdGNoCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDkwMi14eHgtcHBjNjRsZS1zdXBw b3J0LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNo ZXMvMDkwMy14eHgtcHBjNjRsZS1zd2lmdHNoYWRlci5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS90ZW1wbGF0ZQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvcXQ2LXdlYmVuZ2luZS91cGRhdGUKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29t bW9uL3NobGlicwppbmRleCBhMGZhYjg4Njk5NDguLmZhNzJmOGVlMjRkMiAxMDA2NDQKLS0tIGEv Y29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC0yMDg2LDYgKzIwODYsMTMgQEAg bGliUXQ2UG9zaXRpb25pbmcuc28uNiBxdDYtbG9jYXRpb24tNi4yLjBhbHBoYV8xCiBsaWJRdDZN dWx0aW1lZGlhV2lkZ2V0cy5zby42IHF0Ni1tdWx0aW1lZGlhLTYuMy4xXzEKIGxpYlF0Nk11bHRp bWVkaWFRdWljay5zby42IHF0Ni1tdWx0aW1lZGlhLTYuMy4xXzEKIGxpYlF0Nk11bHRpbWVkaWEu c28uNiBxdDYtbXVsdGltZWRpYS02LjMuMV8xCitsaWJRdDZXZWJFbmdpbmVRdWljay5zby42IHF0 Ni13ZWJlbmdpbmUtNi4zLjFfMQorbGliUXQ2UGRmV2lkZ2V0cy5zby42IHF0Ni13ZWJlbmdpbmUt Ni4zLjFfMQorbGliUXQ2UGRmUXVpY2suc28uNiBxdDYtd2ViZW5naW5lLTYuMy4xXzEKK2xpYlF0 NldlYkVuZ2luZUNvcmUuc28uNiBxdDYtd2ViZW5naW5lLTYuMy4xXzEKK2xpYlF0NlBkZi5zby42 IHF0Ni13ZWJlbmdpbmUtNi4zLjFfMQorbGliUXQ2V2ViRW5naW5lUXVpY2tEZWxlZ2F0ZXNRbWwu c28uNiBxdDYtd2ViZW5naW5lLTYuMy4xXzEKK2xpYlF0NldlYkVuZ2luZVdpZGdldHMuc28uNiBx dDYtd2ViZW5naW5lLTYuMy4xXzEKIGxpYm5wdGguc28uMCBucHRoLTEuMV8xCiBsaWJucHVwbnAu c28uNCBsaWJucHVwbnAtNC4wLjJfMQogbGliZ2xmdy5zby4zIGdsZnctMy4wLjRfMQpkaWZmIC0t Z2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lLWRldmVsIGIvc3JjcGtncy9xdDYtd2ViZW5naW5l LWRldmVsCm5ldyBmaWxlIG1vZGUgMTIwMDAwCmluZGV4IDAwMDAwMDAwMDAwMC4uOGU0ZDFiOTlj NTg3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lLWRldmVsCkBAIC0w LDAgKzEgQEAKK3F0Ni13ZWJlbmdpbmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg LS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUtZXhhbXBsZXMgYi9zcmNwa2dzL3F0Ni13ZWJl bmdpbmUtZXhhbXBsZXMKbmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggMDAwMDAwMDAwMDAwLi44 ZTRkMWI5OWM1ODcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUtZXhh bXBsZXMKQEAgLTAsMCArMSBAQAorcXQ2LXdlYmVuZ2luZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m IGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAwMDEtTm9u ZS1uby1kZWJ1Zy5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAwMDEtTm9u ZS1uby1kZWJ1Zy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAu LjFiYTMzZjhlNmZkOQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9w YXRjaGVzLzAwMDEtTm9uZS1uby1kZWJ1Zy5wYXRjaApAQCAtMCwwICsxLDExIEBACistLS0gYS9j bWFrZS9GdW5jdGlvbnMuY21ha2UKKysrKyBiL2NtYWtlL0Z1bmN0aW9ucy5jbWFrZQorQEAgLTgx Myw2ICs4MTMsOCBAQCBtYWNybyhhcHBlbmRfYnVpbGRfdHlwZV9zZXR1cCkKKyAgICAgICAgIGVu ZGlmKCkKKyAgICAgZWxzZWlmKCR7Y29uZmlnfSBTVFJFUVVBTCAiTWluU2l6ZVJlbCIpCisgICAg ICAgICBsaXN0KEFQUEVORCBnbkFyZ0FyZyBpc19kZWJ1Zz1mYWxzZSBzeW1ib2xfbGV2ZWw9MCBv cHRpbWl6ZV9mb3Jfc2l6ZT10cnVlKQorKyAgICBlbHNlaWYoJHtjb25maWd9IFNUUkVRVUFMICJO b25lIikKKysgICAgICAgIGxpc3QoQVBQRU5EIGduQXJnQXJnIGlzX2RlYnVnPWZhbHNlIHN5bWJv bF9sZXZlbD0wKQorICAgICBlbmRpZigpCisgICAgIGlmKEZFQVRVUkVfZGV2ZWxvcGVyX2J1aWxk IE9SICgke2NvbmZpZ30gU1RSRVFVQUwgIkRlYnVnIikgT1IgUVRfRkVBVFVSRV93ZWJlbmdpbmVf c2FuaXRpemVyKQorICAgICAgICAgbGlzdChBUFBFTkQgZ25BcmdBcmcKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAwMDItZW5hYmxlLXBwYzY0LnBhdGNoIGIvc3Jj cGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDAwMi1lbmFibGUtcHBjNjQucGF0Y2gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5kNzJlZjFhZDFhMTAKLS0tIC9kZXYv bnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDAyLWVuYWJsZS1wcGM2 NC5wYXRjaApAQCAtMCwwICsxLDIwIEBACistLS0gYS9jbWFrZS9GdW5jdGlvbnMuY21ha2UKKysr KyBiL2NtYWtlL0Z1bmN0aW9ucy5jbWFrZQorQEAgLTYyMiw2ICs2MjIsOCBAQCBmdW5jdGlvbihn ZXRfZ25fYXJjaCByZXN1bHQgYXJjaCkKKyAgICAgICAgIHNldCgke3Jlc3VsdH0gIm1pcHNlbCIg UEFSRU5UX1NDT1BFKQorICAgICBlbHNlaWYoYXJjaCBTVFJFUVVBTCAibWlwc2VsNjQiKQorICAg ICAgICAgc2V0KCR7cmVzdWx0fSAibWlwczY0ZWwiIFBBUkVOVF9TQ09QRSkKKysgICAgZWxzZWlm KGFyY2ggU1RSRVFVQUwgInBvd2VyNjQiKQorKyAgICAgICAgc2V0KCR7cmVzdWx0fSAicG93ZXI2 NCIgUEFSRU5UX1NDT1BFKQorICAgICBlbHNlKCkKKyAgICAgICAgIG1lc3NhZ2UoREVCVUcgIlVu c3VwcG9ydGVkIGFyY2hpdGVjdHVyZTogJHthcmNofSIpCisgICAgIGVuZGlmKCkKK0BAIC02NDEs NiArNjQzLDggQEAgZnVuY3Rpb24oZ2V0X3Y4X2FyY2ggcmVzdWx0IHRhcmdldEFyY2ggaAorICAg ICAgICAgICAgIHNldCgke3Jlc3VsdH0gIm1pcHNlbCIgUEFSRU5UX1NDT1BFKQorICAgICAgICAg ZWxzZWlmKGhvc3RBcmNoIFNUUkVRVUFMICJtaXBzZWw2NCIpCisgICAgICAgICAgICAgc2V0KCR7 cmVzdWx0fSAibWlwc2VsIiBQQVJFTlRfU0NPUEUpCisrICAgICAgICBlbHNlaWYoaG9zdEFyY2gg U1RSRVFVQUwgInBvd2VyNjQiKQorKyAgICAgICAgICAgIHNldCgke3Jlc3VsdH0gInBvd2VyNjQi IFBBUkVOVF9TQ09QRSkKKyAgICAgICAgIGVsc2UoKQorICAgICAgICAgICAgIG1lc3NhZ2UoREVC VUcgIlVuc3VwcG9ydGVkIGFyY2hpdGVjdHVyZTogJHtob3N0QXJjaH0iKQorICAgICAgICAgZW5k aWYoKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDAwMy1jcm9z cy1oYWNrLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDAwMy1jcm9zcy1o YWNrLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZWE5Zjkw MDk0YTYzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMv MDAwMy1jcm9zcy1oYWNrLnBhdGNoCkBAIC0wLDAgKzEsMTAgQEAKKy0tLSBhL3NyYy9jb3JlL2Fw aS9DTWFrZUxpc3RzLnR4dAorKysrIGIvc3JjL2NvcmUvYXBpL0NNYWtlTGlzdHMudHh0CitAQCAt NTAsNiArNTAsNyBAQCBxdF9pbnRlcm5hbF9hZGRfbW9kdWxlKFdlYkVuZ2luZUNvcmUKKyAgICAg ICAgIFF0OjpHdWkKKyAgICAgICAgIFF0OjpOZXR3b3JrCisgICAgICAgICBRdDo6UXVpY2sKKysg ICAgICAgIFgxMQorICkKKyAKKyBzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoV2ViRW5naW5lQ29yZSBQ Uk9QRVJUSUVTIFFUV0VCRU5HSU5FUFJPQ0VTU19OQU1FICR7cXRXZWJFbmdpbmVQcm9jZXNzTmFt ZX0pCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDA0LXBwYy1k aXNhYmxlLWp4bC1kZWNvZGVyLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMv MDAwNC1wcGMtZGlzYWJsZS1qeGwtZGVjb2Rlci5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMDAuLjczYzExNTE5NjhmNAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3Br Z3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAwMDQtcHBjLWRpc2FibGUtanhsLWRlY29kZXIucGF0 Y2gKQEAgLTAsMCArMSwxMyBAQAorLS0tIGEvc3JjL2NvcmUvQ01ha2VMaXN0cy50eHQKKysrKyBi L3NyYy9jb3JlL0NNYWtlTGlzdHMudHh0CitAQCAtNDE0LDYgKzQxNCwxMCBAQCBmb3JlYWNoKGFy Y2ggJHthcmNoc30pCisgICAgICAgICAgICAgICAgIENPTkRJVElPTiBRVF9GRUFUVVJFX3dlYmVu Z2luZV9vem9uZV94MTEgQU5EIFhTQ1JOU0FWRVJfRk9VTkQKKyAgICAgICAgICAgICApCisgCisr ICAgICAgICAgICAgaWYgKGNwdSBTVFJFUVVBTCAicHBjNjQiKQorKyAgICAgICAgICAgICAgICBs aXN0KEFQUEVORCBnbkFyZ0FyZyBlbmFibGVfanhsX2RlY29kZXI9ZmFsc2UpCisrICAgICAgICAg ICAgZW5kaWYoKQorKworICAgICAgICAgICAgIGlmKFFUX0ZFQVRVUkVfd2ViZW5naW5lX2tlcmJl cm9zKQorICAgICAgICAgICAgICAgICBsaXN0KEFQUEVORCBnbkFyZ0FyZworICAgICAgICAgICAg ICAgICAgICAgIGV4dGVybmFsX2dzc2FwaV9pbmNsdWRlX2Rpcj0iJHtHU1NBUElfSU5DTFVERV9E SVJTfS9nc3NhcGkiCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8w MDUwLW5vLWdsaWJjLWNtYWtlLWNoZWNrLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvMDA1MC1uby1nbGliYy1jbWFrZS1jaGVjay5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAuLmY3NTZiZjAyODZiYgotLS0gL2Rldi9udWxsCisrKyBiL3Ny Y3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAwNTAtbm8tZ2xpYmMtY21ha2UtY2hlY2sucGF0 Y2gKQEAgLTAsMCArMSwxNCBAQAorLS0tIGEvY29uZmlndXJlLmNtYWtlCisrKysgYi9jb25maWd1 cmUuY21ha2UKK0BAIC00OTksMTEgKzQ5OSw2IEBAIGFkZF9jaGVja19mb3Jfc3VwcG9ydCgKKyAp CisgYWRkX2NoZWNrX2Zvcl9zdXBwb3J0KAorICAgIE1PRFVMRVMgUXRXZWJFbmdpbmUgUXRQZGYK Ky0gICBDT05ESVRJT04gTk9UIExJTlVYIE9SIFRFU1RfZ2xpYmMKKy0gICBNRVNTQUdFICJBIHN1 aXRhYmxlIHZlcnNpb24gPj0gMi4xNyBvZiBnbGliYyBpcyByZXF1aXJlZC4iCistKQorLWFkZF9j aGVja19mb3Jfc3VwcG9ydCgKKy0gICBNT0RVTEVTIFF0V2ViRW5naW5lIFF0UGRmCisgICAgQ09O RElUSU9OIE5PVCBMSU5VWCBPUiBURVNUX2tocgorICAgIE1FU1NBR0UgIkJ1aWxkIHJlcXVpcmVz IEtocm9ub3MgZGV2ZWxvcG1lbnQgaGVhZGVycyBmb3IgYnVpbGQgLSBzZWUgbWVzYS9saWJlZ2wx LW1lc2EtZGV2IgorICkKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVz LzAxMDAtY2hyb21pdW0tc2FuZGJveC1tZW1iYXJyaWVyLnBhdGNoIGIvc3JjcGtncy9xdDYtd2Vi ZW5naW5lL3BhdGNoZXMvMDEwMC1jaHJvbWl1bS1zYW5kYm94LW1lbWJhcnJpZXIucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4yZGQ3YjRhYTk0OGYKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTAwLWNocm9taXVt LXNhbmRib3gtbWVtYmFycmllci5wYXRjaApAQCAtMCwwICsxLDU4IEBACistLS0gYS9zcmMvM3Jk cGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxf c2V0cy5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29t cC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuY2MKK0BAIC00MTMsNiArNDEzLDcgQEAgYm9vbCBT eXNjYWxsU2V0czo6SXNBbGxvd2VkUHJvY2Vzc1N0YXJ0TworICAgc3dpdGNoIChzeXNubykgewor ICAgICBjYXNlIF9fTlJfZXhpdDoKKyAgICAgY2FzZSBfX05SX2V4aXRfZ3JvdXA6CisrICAgIGNh c2UgX19OUl9tZW1iYXJyaWVyOgorICAgICBjYXNlIF9fTlJfd2FpdDQ6CisgICAgIGNhc2UgX19O Ul93YWl0aWQ6CisgI2lmIGRlZmluZWQoX19pMzg2X18pCistLS0gYS9zcmMvM3JkcGFydHkvY2hy b21pdW0vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9hcm02NF9saW51eF9zeXNjYWxscy5o CisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVy cy9hcm02NF9saW51eF9zeXNjYWxscy5oCitAQCAtMTIxNSw0ICsxMjE1LDggQEAKKyAjZGVmaW5l IF9fTlJfbGFuZGxvY2tfcmVzdHJpY3Rfc2VsZiA0NDYKKyAjZW5kaWYKKyAKKysjaWYgIWRlZmlu ZWQoX19OUl9tZW1iYXJyaWVyKQorKyNkZWZpbmUgX19OUl9tZW1iYXJyaWVyIDI4MworKyNlbmRp ZgorKworICNlbmRpZiAgLy8gU0FOREJPWF9MSU5VWF9TWVNURU1fSEVBREVSU19BUk02NF9MSU5V WF9TWVNDQUxMU19IXworLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgv c3lzdGVtX2hlYWRlcnMvYXJtX2xpbnV4X3N5c2NhbGxzLmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2FybV9saW51eF9zeXNjYWxscy5o CitAQCAtMTYxNyw2ICsxNjE3LDEwIEBACisgI2RlZmluZSBfX05SX2xhbmRsb2NrX3Jlc3RyaWN0 X3NlbGYgKF9fTlJfU1lTQ0FMTF9CQVNFICsgNDQ2KQorICNlbmRpZgorIAorKyNpZiAhZGVmaW5l ZChfX05SX21lbWJhcnJpZXIpCisrI2RlZmluZSBfX05SX21lbWJhcnJpZXIgKF9fTlJfU1lTQ0FM TF9CQVNFKzM4OSkKKysjZW5kaWYKKysKKyAvLyBBUk0gcHJpdmF0ZSBzeXNjYWxscy4KKyAjaWYg IWRlZmluZWQoX19BUk1fTlJfQkFTRSkKKyAjZGVmaW5lIF9fQVJNX05SX0JBU0UgKF9fTlJfU1lT Q0FMTF9CQVNFICsgMHhGMDAwMCkKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94 L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3g4Nl8zMl9saW51eF9zeXNjYWxscy5oCisrKysgYi9zcmMv M3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy94ODZfMzJfbGlu dXhfc3lzY2FsbHMuaAorQEAgLTE3NTAsNSArMTc1MCw5IEBACisgI2RlZmluZSBfX05SX2xhbmRs b2NrX3Jlc3RyaWN0X3NlbGYgNDQ2CisgI2VuZGlmCisgCisrI2lmICFkZWZpbmVkKF9fTlJfbWVt YmFycmllcikKKysjZGVmaW5lIF9fTlJfbWVtYmFycmllciAzNzUKKysjZW5kaWYKKysKKyAjZW5k aWYgIC8vIFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNfWDg2XzMyX0xJTlVYX1NZU0NBTExT X0hfCisgCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zeXN0ZW1f aGVhZGVycy94ODZfNjRfbGludXhfc3lzY2FsbHMuaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMveDg2XzY0X2xpbnV4X3N5c2NhbGxzLmgK K0BAIC0xNDM4LDUgKzE0MzgsOSBAQAorICNkZWZpbmUgX19OUl9sYW5kbG9ja19yZXN0cmljdF9z ZWxmIDQ0NgorICNlbmRpZgorIAorKyNpZiAhZGVmaW5lZChfX05SX21lbWJhcnJpZXIpCisrI2Rl ZmluZSBfX05SX21lbWJhcnJpZXIgMzI0CisrI2VuZGlmCisrCisgI2VuZGlmICAvLyBTQU5EQk9Y X0xJTlVYX1NZU1RFTV9IRUFERVJTX1g4Nl82NF9MSU5VWF9TWVNDQUxMU19IXworIApkaWZmIC0t Z2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwMS1zaXplX3QucGF0Y2ggYi9z cmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTAxLXNpemVfdC5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmZjY2MwODVkYTMxMQotLS0gL2Rldi9udWxs CisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDEtc2l6ZV90LnBhdGNoCkBA IC0wLDAgKzEsMTYgQEAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9h bmdsZS9pbmNsdWRlL3BsYXRmb3JtL1BsYXRmb3JtTWV0aG9kcy5oCisrKysgYi9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYW5nbGUvaW5jbHVkZS9wbGF0Zm9ybS9QbGF0Zm9ybU1l dGhvZHMuaAorQEAgLTIzOSwxMSArMjM5LDExIEBAIGlubGluZSB2b2lkIERlZmF1bHRPdmVycmlk ZUZlYXR1cmVzTXRsKFAKKyB1c2luZyBQcm9ncmFtS2V5VHlwZSAgID0gc3RkOjphcnJheTx1aW50 OF90LCAyMD47CisgdXNpbmcgQ2FjaGVQcm9ncmFtRnVuYyA9IHZvaWQgKCopKFBsYXRmb3JtTWV0 aG9kcyAqcGxhdGZvcm0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IFByb2dyYW1LZXlUeXBlICZrZXksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNpemVfdCBwcm9ncmFtU2l6ZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c3RkOjpzaXplX3QgcHJvZ3JhbVNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IHVpbnQ4X3QgKnByb2dyYW1CeXRlcyk7CisgaW5saW5lIHZvaWQgRGVmYXVsdENh Y2hlUHJvZ3JhbShQbGF0Zm9ybU1ldGhvZHMgKnBsYXRmb3JtLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3QgUHJvZ3JhbUtleVR5cGUgJmtleSwKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNpemVfdCBwcm9ncmFtU2l6ZSwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0ZDo6c2l6ZV90IHByb2dyYW1TaXplLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqcHJvZ3JhbUJ5dGVzKQorIHt9CisgCmRp ZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTAyLWNocm9taXVtLTkw LXJ1eS1pbmNsdWRlLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwMi1j aHJvbWl1bS05MC1ydXktaW5jbHVkZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAuLmJiYmE1NzkwNzZkNgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2 LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDItY2hyb21pdW0tOTAtcnV5LWluY2x1ZGUucGF0Y2gKQEAg LTAsMCArMSwxOSBAQAorRnJvbSA3MTQwOTJmMzM2YmIxNGQyZmNjMjczOTZlYzMyM2IzZDg0M2Ji OTYyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogU3RlcGhhbiBIYXJ0bWFubiA8c3Ro YTA5QGdvb2dsZW1haWwuY29tPgorRGF0ZTogVGh1LCA0IE1hciAyMDIxIDE1OjA1OjQ2ICswMDAw CitTdWJqZWN0OiBbUEFUQ0hdIElXWVU6IGluY2x1ZGUgbGltaXRzIGZvciBzdGQ6Om51bWVyaWNf bGltaXRzCisKKy0tLQorIHRoaXJkX3BhcnR5L3J1eS9zcmMvcnV5L2Jsb2NrX21hcC5jYyB8IDEg KworIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQorCistLS0gYS9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdGhpcmRfcGFydHkvcnV5L3NyYy9ydXkvYmxvY2tfbWFwLmNjCisrKysgYi9zcmMv M3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvcnV5L3NyYy9ydXkvYmxvY2tfbWFwLmNjCitA QCAtMTcsNiArMTcsNyBAQCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAKKyAjaW5j bHVkZSA8YWxnb3JpdGhtPgorICNpbmNsdWRlIDxjc3RkaW50PgorKyNpbmNsdWRlIDxsaW1pdHM+ CisgCisgI2lmZGVmIFJVWV9NQUtFQkxPQ0tNQVBfREVCVUcKKyAjaW5jbHVkZSA8Y3N0ZGlvPgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwMy1jaHJvbWl1bS12 OC1tb25vdG9uaWMtcHRocmVhZC1jb250X3RpbWVkd2FpdC5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdl YmVuZ2luZS9wYXRjaGVzLzAxMDMtY2hyb21pdW0tdjgtbW9ub3RvbmljLXB0aHJlYWQtY29udF90 aW1lZHdhaXQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4x ZGM4YmM0ZDNkMTcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0 Y2hlcy8wMTAzLWNocm9taXVtLXY4LW1vbm90b25pYy1wdGhyZWFkLWNvbnRfdGltZWR3YWl0LnBh dGNoCkBAIC0wLDAgKzEsMjIgQEAKK1VzZSBtb25vdG9uaWMgY2xvY2sgZm9yIHB0aHJlYWRfY29u ZF90aW1lZHdhaXQgd2l0aCBtdXNsIHRvby4KKworLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3Y4L3NyYy9iYXNlL3BsYXRmb3JtL2NvbmRpdGlvbi12YXJpYWJsZS5jYworKysrIGIvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3Y4L3NyYy9iYXNlL3BsYXRmb3JtL2NvbmRpdGlvbi12YXJpYWJsZS5j YworQEAgLTIwLDcgKzIwLDcgQEAgbmFtZXNwYWNlIGJhc2UgeworIAorIENvbmRpdGlvblZhcmlh YmxlOjpDb25kaXRpb25WYXJpYWJsZSgpIHsKKyAjaWYgKFY4X09TX0ZSRUVCU0QgfHwgVjhfT1Nf TkVUQlNEIHx8IFY4X09TX09QRU5CU0QgfHwgXAorLSAgICAgKFY4X09TX0xJTlVYICYmIFY4X0xJ QkNfR0xJQkMpKQorKyAgICAgVjhfT1NfTElOVVgpCisgICAvLyBPbiBGcmVlL05ldC9PcGVuQlNE IGFuZCBMaW51eCB3aXRoIGdsaWJjIHdlIGNhbiBjaGFuZ2UgdGhlIHRpbWUKKyAgIC8vIHNvdXJj ZSBmb3IgcHRocmVhZF9jb25kX3RpbWVkd2FpdCgpIHRvIHVzZSB0aGUgbW9ub3RvbmljIGNsb2Nr LgorICAgcHRocmVhZF9jb25kYXR0cl90IGF0dHI7CitAQCAtOTYsNyArOTYsNyBAQCBib29sIENv bmRpdGlvblZhcmlhYmxlOjpXYWl0Rm9yKE11dGV4KiBtCisgICAgICAgJm5hdGl2ZV9oYW5kbGVf LCAmbXV0ZXgtPm5hdGl2ZV9oYW5kbGUoKSwgJnRzKTsKKyAjZWxzZQorICNpZiAoVjhfT1NfRlJF RUJTRCB8fCBWOF9PU19ORVRCU0QgfHwgVjhfT1NfT1BFTkJTRCB8fCBcCistICAgICAoVjhfT1Nf TElOVVggJiYgVjhfTElCQ19HTElCQykpCisrICAgICBWOF9PU19MSU5VWCkKKyAgIC8vIE9uIEZy ZWUvTmV0L09wZW5CU0QgYW5kIExpbnV4IHdpdGggZ2xpYmMgd2UgY2FuIGNoYW5nZSB0aGUgdGlt ZQorICAgLy8gc291cmNlIGZvciBwdGhyZWFkX2NvbmRfdGltZWR3YWl0KCkgdG8gdXNlIHRoZSBt b25vdG9uaWMgY2xvY2suCisgICByZXN1bHQgPSBjbG9ja19nZXR0aW1lKENMT0NLX01PTk9UT05J QywgJnRzKTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDQt Y2hyb21pdW0tcmV2ZXJ0LTlkMDgwYzAucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0 Y2hlcy8wMTA0LWNocm9taXVtLXJldmVydC05ZDA4MGMwLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNDJiMWVlOWVjMDYzCi0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwNC1jaHJvbWl1bS1yZXZlcnQtOWQwODBj MC5wYXRjaApAQCAtMCwwICsxLDE2MiBAQAorIE9yaWdpbmFsIGNoYW5nZSdzIGRlc2NyaXB0aW9u OgorID4gUmVwbGFjZSAnYmxhY2tsaXN0JyB3aXRoICdpZ25vcmVsaXN0JyBpbiAuL3Rvb2xzL21z YW4vLgorID4KKyA+IEJ1ZzogMTA5NzI3MiwgMTA5NzI2OAorID4gQ2hhbmdlLUlkOiBJZDVjODIy N2E1YmZiMWZmYWVjODJkMzE2OGI2MDkwODViMTBjODI5NworID4gUmV2aWV3ZWQtb246IGh0dHBz Oi8vY2hyb21pdW0tcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20vYy9jaHJvbWl1bS9zcmMvKy8yODY3 NzMwCisgPiBDb21taXQtUXVldWU6IER5bGFuIEN1dGxlciA8ZHlsYW5jdXRsZXJAZ29vZ2xlLmNv bT4KKyA+IFJldmlld2VkLWJ5OiBOaWNvIFdlYmVyIDx0aGFraXNAY2hyb21pdW0ub3JnPgorID4g UmV2aWV3ZWQtYnk6IEpvbmF0aGFuIE1ldHptYW4gPG1ldHptYW5AY2hyb21pdW0ub3JnPgorID4g Q3ItQ29tbWl0LVBvc2l0aW9uOiByZWZzL2hlYWRzL21hc3RlckB7Izg4MzAzNX0KKy0tLSBhL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS9idWlsZC9jb25maWcvc2FuaXRpemVycy9CVUlMRC5nbgorKysr IGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2J1aWxkL2NvbmZpZy9zYW5pdGl6ZXJzL0JVSUxELmdu CitAQCAtMjcyLDExICsyNzIsMTEgQEAgY29uZmlnKCJhc2FuX2ZsYWdzIikgeworICAgaWYgKGlz X2FzYW4pIHsKKyAgICAgY2ZsYWdzICs9IFsgIi1mc2FuaXRpemU9YWRkcmVzcyIgXQorICAgICBp ZiAoaXNfd2luKSB7CistICAgICAgaWYgKCFkZWZpbmVkKGFzYW5fd2luX2Jsb2NrbGlzdF9wYXRo KSkgeworLSAgICAgICAgYXNhbl93aW5fYmxvY2tsaXN0X3BhdGggPQorKyAgICAgIGlmICghZGVm aW5lZChhc2FuX3dpbl9ibGFja2xpc3RfcGF0aCkpIHsKKysgICAgICAgIGFzYW5fd2luX2JsYWNr bGlzdF9wYXRoID0KKyAgICAgICAgICAgICByZWJhc2VfcGF0aCgiLy90b29scy9tZW1vcnkvYXNh bi9ibG9ja2xpc3Rfd2luLnR4dCIsIHJvb3RfYnVpbGRfZGlyKQorICAgICAgIH0KKy0gICAgICBj ZmxhZ3MgKz0gWyAiLWZzYW5pdGl6ZS1pZ25vcmVsaXN0PSRhc2FuX3dpbl9ibG9ja2xpc3RfcGF0 aCIgXQorKyAgICAgIGNmbGFncyArPSBbICItZnNhbml0aXplLWJsYWNrbGlzdD0kYXNhbl93aW5f YmxhY2tsaXN0X3BhdGgiIF0KKyAgICAgfQorICAgfQorIH0KK0BAIC0zMDYsMTMgKzMwNiwxMyBA QCBjb25maWcoImxpbmtfc2hhcmVkX2xpYnJhcnkiKSB7CisgY29uZmlnKCJjZmlfZmxhZ3MiKSB7 CisgICBjZmxhZ3MgPSBbXQorICAgaWYgKGlzX2NmaSAmJiBjdXJyZW50X3Rvb2xjaGFpbiA9PSBk ZWZhdWx0X3Rvb2xjaGFpbikgeworLSAgICBpZiAoIWRlZmluZWQoY2ZpX2lnbm9yZWxpc3RfcGF0 aCkpIHsKKy0gICAgICBjZmlfaWdub3JlbGlzdF9wYXRoID0KKysgICAgaWYgKCFkZWZpbmVkKGNm aV9ibGFja2xpc3RfcGF0aCkpIHsKKysgICAgICBjZmlfYmxhY2tsaXN0X3BhdGggPQorICAgICAg ICAgICByZWJhc2VfcGF0aCgiLy90b29scy9jZmkvaWdub3Jlcy50eHQiLCByb290X2J1aWxkX2Rp cikKKyAgICAgfQorICAgICBjZmxhZ3MgKz0gWworICAgICAgICItZnNhbml0aXplPWNmaS12Y2Fs bCIsCistICAgICAgIi1mc2FuaXRpemUtaWdub3JlbGlzdD0kY2ZpX2lnbm9yZWxpc3RfcGF0aCIs CisrICAgICAgIi1mc2FuaXRpemUtYmxhY2tsaXN0PSRjZmlfYmxhY2tsaXN0X3BhdGgiLAorICAg ICBdCisgCisgICAgIGlmICh1c2VfY2ZpX2Nhc3QpIHsKK0BAIC00MDksMTQgKzQwOSwxNCBAQCBj b25maWcoIm1zYW5fZmxhZ3MiKSB7CisgICBpZiAoaXNfbXNhbikgeworICAgICBhc3NlcnQoaXNf bGludXggfHwgaXNfY2hyb21lb3MsCisgICAgICAgICAgICAibXNhbiBvbmx5IHN1cHBvcnRlZCBv biBsaW51eCB4ODZfNjQvQ2hyb21lT1MiKQorLSAgICBpZiAoIWRlZmluZWQobXNhbl9pZ25vcmVs aXN0X3BhdGgpKSB7CistICAgICAgbXNhbl9pZ25vcmVsaXN0X3BhdGggPQorLSAgICAgICAgICBy ZWJhc2VfcGF0aCgiLy90b29scy9tc2FuL2lnbm9yZWxpc3QudHh0Iiwgcm9vdF9idWlsZF9kaXIp CisrICAgIGlmICghZGVmaW5lZChtc2FuX2JsYWNrbGlzdF9wYXRoKSkgeworKyAgICAgIG1zYW5f YmxhY2tsaXN0X3BhdGggPQorKyAgICAgICAgICByZWJhc2VfcGF0aCgiLy90b29scy9tc2FuL2Js YWNrbGlzdC50eHQiLCByb290X2J1aWxkX2RpcikKKyAgICAgfQorICAgICBjZmxhZ3MgPSBbCisg ICAgICAgIi1mc2FuaXRpemU9bWVtb3J5IiwKKyAgICAgICAiLWZzYW5pdGl6ZS1tZW1vcnktdHJh Y2stb3JpZ2lucz0kbXNhbl90cmFja19vcmlnaW5zIiwKKy0gICAgICAiLWZzYW5pdGl6ZS1pZ25v cmVsaXN0PSRtc2FuX2lnbm9yZWxpc3RfcGF0aCIsCisrICAgICAgIi1mc2FuaXRpemUtYmxhY2ts aXN0PSRtc2FuX2JsYWNrbGlzdF9wYXRoIiwKKyAgICAgXQorICAgfQorIH0KK0BAIC00MjQsMTMg KzQyNCwxMyBAQCBjb25maWcoIm1zYW5fZmxhZ3MiKSB7CisgY29uZmlnKCJ0c2FuX2ZsYWdzIikg eworICAgaWYgKGlzX3RzYW4pIHsKKyAgICAgYXNzZXJ0KGlzX2xpbnV4IHx8IGlzX2Nocm9tZW9z LCAidHNhbiBvbmx5IHN1cHBvcnRlZCBvbiBsaW51eCB4ODZfNjQiKQorLSAgICBpZiAoIWRlZmlu ZWQodHNhbl9pZ25vcmVsaXN0X3BhdGgpKSB7CistICAgICAgdHNhbl9pZ25vcmVsaXN0X3BhdGgg PQorKyAgICBpZiAoIWRlZmluZWQodHNhbl9ibGFja2xpc3RfcGF0aCkpIHsKKysgICAgICB0c2Fu X2JsYWNrbGlzdF9wYXRoID0KKyAgICAgICAgICAgcmViYXNlX3BhdGgoIi8vdG9vbHMvbWVtb3J5 L3RzYW5fdjIvaWdub3Jlcy50eHQiLCByb290X2J1aWxkX2RpcikKKyAgICAgfQorICAgICBjZmxh Z3MgPSBbCisgICAgICAgIi1mc2FuaXRpemU9dGhyZWFkIiwKKy0gICAgICAiLWZzYW5pdGl6ZS1p Z25vcmVsaXN0PSR0c2FuX2lnbm9yZWxpc3RfcGF0aCIsCisrICAgICAgIi1mc2FuaXRpemUtYmxh Y2tsaXN0PSR0c2FuX2JsYWNrbGlzdF9wYXRoIiwKKyAgICAgXQorICAgfQorIH0KK0BAIC00Mzgs OCArNDM4LDggQEAgY29uZmlnKCJ0c2FuX2ZsYWdzIikgeworIGNvbmZpZygidWJzYW5fZmxhZ3Mi KSB7CisgICBjZmxhZ3MgPSBbXQorICAgaWYgKGlzX3Vic2FuKSB7CistICAgIGlmICghZGVmaW5l ZCh1YnNhbl9pZ25vcmVsaXN0X3BhdGgpKSB7CistICAgICAgdWJzYW5faWdub3JlbGlzdF9wYXRo ID0KKysgICAgaWYgKCFkZWZpbmVkKHVic2FuX2JsYWNrbGlzdF9wYXRoKSkgeworKyAgICAgIHVi c2FuX2JsYWNrbGlzdF9wYXRoID0KKyAgICAgICAgICAgcmViYXNlX3BhdGgoIi8vdG9vbHMvdWJz YW4vaWdub3JlbGlzdC50eHQiLCByb290X2J1aWxkX2RpcikKKyAgICAgfQorICAgICBjZmxhZ3Mg Kz0gWworQEAgLTQ1Niw3ICs0NTYsNyBAQCBjb25maWcoInVic2FuX2ZsYWdzIikgeworICAgICAg ICItZnNhbml0aXplPXNpZ25lZC1pbnRlZ2VyLW92ZXJmbG93IiwKKyAgICAgICAiLWZzYW5pdGl6 ZT11bnJlYWNoYWJsZSIsCisgICAgICAgIi1mc2FuaXRpemU9dmxhLWJvdW5kIiwKKy0gICAgICAi LWZzYW5pdGl6ZS1pZ25vcmVsaXN0PSR1YnNhbl9pZ25vcmVsaXN0X3BhdGgiLAorKyAgICAgICIt ZnNhbml0aXplLWJsYWNrbGlzdD0kdWJzYW5fYmxhY2tsaXN0X3BhdGgiLAorICAgICBdCisgICAg IGlmICghaXNfY2xhbmcpIHsKKyAgICAgICAjIFRoZXNlIGV4cG9zZXMgdG9vIG11Y2ggaWxsZWdh bCBDKysxNCBjb2RlIHRvIGNvbXBpbGUgb24gYW55dGhpbmcgc3RyaWN0ZXIgdGhhbiBjbGFuZzoK K0BAIC00OTcsOCArNDk3LDggQEAgY29uZmlnKCJ1YnNhbl9ub19yZWNvdmVyIikgeworIAorIGNv bmZpZygidWJzYW5fc2VjdXJpdHlfZmxhZ3MiKSB7CisgICBpZiAoaXNfdWJzYW5fc2VjdXJpdHkp IHsKKy0gICAgaWYgKCFkZWZpbmVkKHVic2FuX3NlY3VyaXR5X2lnbm9yZWxpc3RfcGF0aCkpIHsK Ky0gICAgICB1YnNhbl9zZWN1cml0eV9pZ25vcmVsaXN0X3BhdGggPQorKyAgICBpZiAoIWRlZmlu ZWQodWJzYW5fc2VjdXJpdHlfYmxhY2tsaXN0X3BhdGgpKSB7CisrICAgICAgdWJzYW5fc2VjdXJp dHlfYmxhY2tsaXN0X3BhdGggPQorICAgICAgICAgICByZWJhc2VfcGF0aCgiLy90b29scy91YnNh bi9zZWN1cml0eV9pZ25vcmVsaXN0LnR4dCIsIHJvb3RfYnVpbGRfZGlyKQorICAgICB9CisgICAg IGNmbGFncyA9IFsKK0BAIC01MDYsNyArNTA2LDcgQEAgY29uZmlnKCJ1YnNhbl9zZWN1cml0eV9m bGFncyIpIHsKKyAgICAgICAiLWZzYW5pdGl6ZT1zaGlmdCIsCisgICAgICAgIi1mc2FuaXRpemU9 c2lnbmVkLWludGVnZXItb3ZlcmZsb3ciLAorICAgICAgICItZnNhbml0aXplPXZsYS1ib3VuZCIs CistICAgICAgIi1mc2FuaXRpemUtaWdub3JlbGlzdD0kdWJzYW5fc2VjdXJpdHlfaWdub3JlbGlz dF9wYXRoIiwKKysgICAgICAiLWZzYW5pdGl6ZS1ibGFja2xpc3Q9JHVic2FuX3NlY3VyaXR5X2Js YWNrbGlzdF9wYXRoIiwKKyAgICAgXQorICAgfQorIH0KK0BAIC01MTksMTMgKzUxOSwxMyBAQCBj b25maWcoInVic2FuX251bGxfZmxhZ3MiKSB7CisgCisgY29uZmlnKCJ1YnNhbl92cHRyX2ZsYWdz IikgeworICAgaWYgKGlzX3Vic2FuX3ZwdHIpIHsKKy0gICAgaWYgKCFkZWZpbmVkKHVic2FuX3Zw dHJfaWdub3JlbGlzdF9wYXRoKSkgeworLSAgICAgIHVic2FuX3ZwdHJfaWdub3JlbGlzdF9wYXRo ID0KKysgICAgaWYgKCFkZWZpbmVkKHVic2FuX3ZwdHJfYmxhY2tsaXN0X3BhdGgpKSB7CisrICAg ICAgdWJzYW5fdnB0cl9ibGFja2xpc3RfcGF0aCA9CisgICAgICAgICAgIHJlYmFzZV9wYXRoKCIv L3Rvb2xzL3Vic2FuL3ZwdHJfaWdub3JlbGlzdC50eHQiLCByb290X2J1aWxkX2RpcikKKyAgICAg fQorICAgICBjZmxhZ3MgPSBbCisgICAgICAgIi1mc2FuaXRpemU9dnB0ciIsCistICAgICAgIi1m c2FuaXRpemUtaWdub3JlbGlzdD0kdWJzYW5fdnB0cl9pZ25vcmVsaXN0X3BhdGgiLAorKyAgICAg ICItZnNhbml0aXplLWJsYWNrbGlzdD0kdWJzYW5fdnB0cl9ibGFja2xpc3RfcGF0aCIsCisgICAg IF0KKyAgICAgaWYgKCFpc19jbGFuZykgeworICAgICAgICMgQ2xhbmcgc3BlY2lmaWMgZmxhZzoK Ky0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9idWlsZF9vdmVycmlkZXMvYnVpbGQuZ25pCisr KysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vYnVpbGRfb3ZlcnJpZGVzL2J1aWxkLmduaQorQEAg LTQzLDE1ICs0MywxNSBAQCBkZWNsYXJlX2FyZ3MoKSB7CisgIyBBbGxvd3MgZGlmZmVyZW50IHBy b2plY3RzIHRvIHNwZWNpZnkgdGhlaXIgb3duIHN1cHByZXNzaW9uL2lnbm9yZSBsaXN0cyBmb3IK KyAjIHNhbml0aXplciB0b29scy4KKyAjIGFzYW5fc3VwcHJlc3Npb25zX2ZpbGUgPSAicGF0aC90 by9hc2FuX3N1cHByZXNzaW9ucy5jYyIKKy0jIGFzYW5fd2luX2lnbm9yZWxpc3RfcGF0aCA9ICJw YXRoL3RvL2FzYW4vYmxvY2tsaXN0X3dpbi50eHQiCisrIyBhc2FuX3dpbl9ibGFja2xpc3RfcGF0 aCA9ICJwYXRoL3RvL2FzYW4vYmxvY2tsaXN0X3dpbi50eHQiCisgIyBsc2FuX3N1cHByZXNzaW9u c19maWxlID0gInBhdGgvdG8vbHNhbl9zdXBwcmVzc2lvbnMuY2MiCisgIyB0c2FuX3N1cHByZXNz aW9uc19maWxlID0gInBhdGgvdG8vdHNhbl9zdXBwcmVzc2lvbnMuY2MiCistIyB0c2FuX2lnbm9y ZWxpc3RfcGF0aCA9ICJwYXRoL3RvL3RzYW4vaWdub3Jlcy50eHQiCistIyBtc2FuX2lnbm9yZWxp c3RfcGF0aCA9ICJwYXRoL3RvL21zYW4vaWdub3JlbGlzdC50eHQiCistIyB1YnNhbl9pZ25vcmVs aXN0X3BhdGggPSAicGF0aC90by91YnNhbi9pZ25vcmVsaXN0LnR4dCIKKy0jIHVic2FuX3ZwdHJf aWdub3JlbGlzdF9wYXRoID0gInBhdGgvdG8vdWJzYW4vdnB0cl9pZ25vcmVsaXN0LnR4dCIKKy0j IHVic2FuX3NlY3VyaXR5X2lnbm9yZWxpc3RfcGF0aCA9ICJwYXRoL3RvL3Vic2FuL3NlY3VyaXR5 X2lnbm9yZWxpc3QudHh0IgorLSMgY2ZpX2lnbm9yZWxpc3RfcGF0aCA9ICJwYXRoL3RvL2NmaS9p Z25vcmVzLnR4dCIKKysjIHRzYW5fYmxhY2tsaXN0X3BhdGggPSAicGF0aC90by90c2FuL2lnbm9y ZXMudHh0IgorKyMgbXNhbl9ibGFja2xpc3RfcGF0aCA9ICJwYXRoL3RvL21zYW4vYmxhY2tsaXN0 LnR4dCIKKysjIHVic2FuX2JsYWNrbGlzdF9wYXRoID0gInBhdGgvdG8vdWJzYW4vYmxhY2tsaXN0 LnR4dCIKKysjIHVic2FuX3ZwdHJfYmxhY2tsaXN0X3BhdGggPSAicGF0aC90by91YnNhbi92cHRy X2JsYWNrbGlzdC50eHQiCisrIyB1YnNhbl9zZWN1cml0eV9ibGFja2xpc3RfcGF0aCA9ICJwYXRo L3RvL3Vic2FuL3NlY3VyaXR5X2JsYWNrbGlzdC50eHQiCisrIyBjZmlfYmxhY2tsaXN0X3BhdGgg PSAicGF0aC90by9jZmkvaWdub3Jlcy50eHQiCisgCisgZGVjbGFyZV9hcmdzKCkgeworICAgIyBB bmRyb2lkIDMyLWJpdCBub24tY29tcG9uZW50LCBub24tY2xhbmcgYnVpbGRzIGNhbm5vdCBoYXZl IHN5bWJvbF9sZXZlbD0yCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hl cy8wMTA1LWNocm9taXVtLXJldmVydC1kcm9wLW9mLXN5c3RlbS1qYXZhLnBhdGNoIGIvc3JjcGtn cy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwNS1jaHJvbWl1bS1yZXZlcnQtZHJvcC1vZi1zeXN0 ZW0tamF2YS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjQ0 ZjNhYThmYWU1ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRj aGVzLzAxMDUtY2hyb21pdW0tcmV2ZXJ0LWRyb3Atb2Ytc3lzdGVtLWphdmEucGF0Y2gKQEAgLTAs MCArMSwxNSBAQAorVGhpcyB3YXMgZHJvcHBlZCBmb3Igc29tZSByZWFzb24gaW4gNjk1MWMzN2Nl Y2QwNTk3OWIyMzJhMzllNWMxMGU2MzQ2YTBmNzRlZgorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3RoaXJkX3BhcnR5L2Nsb3N1cmVfY29tcGlsZXIvY29tcGlsZXIucHkKKysrKyBiL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jbG9zdXJlX2NvbXBpbGVyL2NvbXBpbGVyLnB5 CitAQCAtMTMsOCArMTMsOSBAQCBpbXBvcnQgc3VicHJvY2VzcworIAorIAorIF9DVVJSRU5UX0RJ UiA9IG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pKQorLV9KQVZBX1BBVEgg PSBvcy5wYXRoLmpvaW4oX0NVUlJFTlRfRElSLCAiLi4iLCAiamRrIiwgImN1cnJlbnQiLCAiYmlu IiwgImphdmEiKQorLWFzc2VydCBvcy5wYXRoLmlzZmlsZShfSkFWQV9QQVRIKSwgImphdmEgb25s eSBhbGxvd2VkIGluIGFuZHJvaWQgYnVpbGRzIgorK19KQVZBX0JJTiA9ICJqYXZhIgorK19KREtf UEFUSCA9IG9zLnBhdGguam9pbihfQ1VSUkVOVF9ESVIsICIuLiIsICJqZGsiLCAiY3VycmVudCIs ICJiaW4iLCAiamF2YSIpCisrX0pBVkFfUEFUSCA9IF9KREtfUEFUSCBpZiBvcy5wYXRoLmlzZmls ZShfSkRLX1BBVEgpIGVsc2UgX0pBVkFfQklOCisgCisgY2xhc3MgQ29tcGlsZXIob2JqZWN0KToK KyAgICIiIlJ1bnMgdGhlIENsb3N1cmUgY29tcGlsZXIgb24gZ2l2ZW4gc291cmNlIGZpbGVzIHRv IHR5cGVjaGVjayB0aGVtCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hl cy8wMTA2LWNocm9taXVtLXN5c3RlbS1ub2RlanMucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdp bmUvcGF0Y2hlcy8wMTA2LWNocm9taXVtLXN5c3RlbS1ub2RlanMucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4xZTA2N2NjNmVkYTAKLS0tIC9kZXYvbnVsbAor KysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA2LWNocm9taXVtLXN5c3RlbS1u b2RlanMucGF0Y2gKQEAgLTAsMCArMSwyMCBAQAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3RoaXJkX3BhcnR5L25vZGUvbm9kZS5weQorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Ro aXJkX3BhcnR5L25vZGUvbm9kZS5weQorQEAgLTM2LDExICszNiwxMiBAQCBkZWYgR2V0QmluYXJ5 UGF0aCgpOgorICAgaWYgcGxhdGZvcm0uc3lzdGVtKCkgPT0gJ0RhcndpbicgYW5kIHBsYXRmb3Jt Lm1hY2hpbmUoKSA9PSAnYXJtNjQnOgorICAgICAgIHJldHVybiBvcy5wYXRoLmpvaW4ob3NfcGF0 aC5qb2luKG9zX3BhdGguZGlybmFtZShfX2ZpbGVfXyksICdtYWMnLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgJ25vZGUtZGFyd2luLWFybTY0JywgJ2JpbicsICdub2RlJykpCistICByZXR1 cm4gb3NfcGF0aC5qb2luKG9zX3BhdGguZGlybmFtZShfX2ZpbGVfXyksICp7CistICAgICdEYXJ3 aW4nOiAoJ21hYycsICdub2RlLWRhcndpbi14NjQnLCAnYmluJywgJ25vZGUnKSwKKy0gICAgJ0xp bnV4JzogKCdsaW51eCcsICdub2RlLWxpbnV4LXg2NCcsICdiaW4nLCAnbm9kZScpLAorLSAgICAn V2luZG93cyc6ICgnd2luJywgJ25vZGUuZXhlJyksCistICB9W3BsYXRmb3JtLnN5c3RlbSgpXSkK KysgIHJldHVybiAiL3Vzci9iaW4vbm9kZSIKKysgICNyZXR1cm4gb3NfcGF0aC5qb2luKG9zX3Bh dGguZGlybmFtZShfX2ZpbGVfXyksICp7CisrICAjICAnRGFyd2luJzogKCdtYWMnLCAnbm9kZS1k YXJ3aW4teDY0JywgJ2JpbicsICdub2RlJyksCisrICAjICAnTGludXgnOiAoJ2xpbnV4JywgJ25v ZGUtbGludXgteDY0JywgJ2JpbicsICdub2RlJyksCisrICAjICAnV2luZG93cyc6ICgnd2luJywg J25vZGUuZXhlJyksCisrICAjfVtwbGF0Zm9ybS5zeXN0ZW0oKV0pCisgCisgCisgZGVmIFJ1bk5v ZGUoY21kX3BhcnRzLCBzdGRvdXQ9Tm9uZSk6CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJl bmdpbmUvcGF0Y2hlcy8wMTA3LWNocm9taXVtLWN1cnNlZF5Vc2NvcGVkX2ZpbGUucGF0Y2ggYi9z cmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA3LWNocm9taXVtLWN1cnNlZF5Vc2NvcGVk X2ZpbGUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5hOGY1 ZDk3MTg4M2QKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hl cy8wMTA3LWNocm9taXVtLWN1cnNlZF5Vc2NvcGVkX2ZpbGUucGF0Y2gKQEAgLTAsMCArMSwxOCBA QAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jhc2UvZmlsZXMvc2NvcGVkX2ZpbGVfbGlu dXguY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL2ZpbGVzL3Njb3BlZF9maWxl X2xpbnV4LmNjCitAQCAtNzcsMTUgKzc3LDMgQEAgYm9vbCBJc0ZET3duZWQoaW50IGZkKSB7Cisg fQorIAorIH0gIC8vIG5hbWVzcGFjZSBiYXNlCistCistZXh0ZXJuICJDIiB7CistCistaW50IF9f Y2xvc2UoaW50KTsKKy0KKy1fX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0IiksIG5v aW5saW5lKSkgaW50IGNsb3NlKGludCBmZCkgeworLSAgaWYgKGJhc2U6OklzRkRPd25lZChmZCkg JiYgZ19pc19vd25lcnNoaXBfZW5mb3JjZWQpCistICAgIENyYXNoT25GZE93bmVyc2hpcFZpb2xh dGlvbigpOworLSAgcmV0dXJuIF9fY2xvc2UoZmQpOworLX0KKy0KKy19ICAvLyBleHRlcm4gIkMi CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA4LWNocm9taXVt LWZpeC1uYXJyb3dpbmctY2FzdC5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVz LzAxMDgtY2hyb21pdW0tZml4LW5hcnJvd2luZy1jYXN0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZWQzMmNkOWI3NDE1Ci0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwOC1jaHJvbWl1bS1maXgtbmFycm93aW5n LWNhc3QucGF0Y2gKQEAgLTAsMCArMSw1MyBAQAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVt L2Jhc2UvZmlsZXMvZmlsZV91dGlsX2xpbnV4LmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21p dW0vYmFzZS9maWxlcy9maWxlX3V0aWxfbGludXguY2MKK0BAIC0yMywxNCArMjMsMTQgQEAgYm9v bCBHZXRGaWxlU3lzdGVtVHlwZShjb25zdCBGaWxlUGF0aCYgcAorIAorICAgLy8gTm90IGFsbCBw b3NzaWJsZSB8c3RhdGZzX2J1Zi5mX3R5cGV8IHZhbHVlcyBhcmUgaW4gbGludXgvbWFnaWMuaC4K KyAgIC8vIE1pc3NpbmcgdmFsdWVzIGFyZSBjb3BpZWQgZnJvbSB0aGUgc3RhdGZzIG1hbiBwYWdl LgorLSAgc3dpdGNoIChzdGF0ZnNfYnVmLmZfdHlwZSkgeworKyAgc3dpdGNoIChzdGF0aWNfY2Fz dDx1aW50bWF4X3Q+KHN0YXRmc19idWYuZl90eXBlKSkgeworICAgICBjYXNlIDA6CisgICAgICAg KnR5cGUgPSBGSUxFX1NZU1RFTV8wOworICAgICAgIGJyZWFrOworICAgICBjYXNlIEVYVDJfU1VQ RVJfTUFHSUM6ICAvLyBBbHNvIGV4dDMgYW5kIGV4dDQKKyAgICAgY2FzZSBNU0RPU19TVVBFUl9N QUdJQzoKKyAgICAgY2FzZSBSRUlTRVJGU19TVVBFUl9NQUdJQzoKKy0gICAgY2FzZSBzdGF0aWNf Y2FzdDxpbnQ+KEJUUkZTX1NVUEVSX01BR0lDKToKKysgICAgY2FzZSBCVFJGU19TVVBFUl9NQUdJ QzoKKyAgICAgY2FzZSAweDUzNDY1NDRFOiAgLy8gTlRGUworICAgICBjYXNlIDB4NTg0NjUzNDI6 ICAvLyBYRlMKKyAgICAgY2FzZSAweDMxNTM0NjRBOiAgLy8gSkZTCitAQCAtNDAsMTQgKzQwLDE0 IEBAIGJvb2wgR2V0RmlsZVN5c3RlbVR5cGUoY29uc3QgRmlsZVBhdGgmIHAKKyAgICAgICAqdHlw ZSA9IEZJTEVfU1lTVEVNX05GUzsKKyAgICAgICBicmVhazsKKyAgICAgY2FzZSBTTUJfU1VQRVJf TUFHSUM6CistICAgIGNhc2Ugc3RhdGljX2Nhc3Q8aW50PigweEZGNTM0RDQyKTogIC8vIENJRlMK KysgICAgY2FzZSAweEZGNTM0RDQyOiAgLy8gQ0lGUworICAgICAgICp0eXBlID0gRklMRV9TWVNU RU1fU01COworICAgICAgIGJyZWFrOworICAgICBjYXNlIENPREFfU1VQRVJfTUFHSUM6CisgICAg ICAgKnR5cGUgPSBGSUxFX1NZU1RFTV9DT0RBOworICAgICAgIGJyZWFrOworLSAgICBjYXNlIHN0 YXRpY19jYXN0PGludD4oSFVHRVRMQkZTX01BR0lDKToKKy0gICAgY2FzZSBzdGF0aWNfY2FzdDxp bnQ+KFJBTUZTX01BR0lDKToKKysgICAgY2FzZSBIVUdFVExCRlNfTUFHSUM6CisrICAgIGNhc2Ug UkFNRlNfTUFHSUM6CisgICAgIGNhc2UgVE1QRlNfTUFHSUM6CisgICAgICAgKnR5cGUgPSBGSUxF X1NZU1RFTV9NRU1PUlk7CisgICAgICAgYnJlYWs7CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21p dW0vYmFzZS9zeXN0ZW0vc3lzX2luZm9fcG9zaXguY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS9iYXNlL3N5c3RlbS9zeXNfaW5mb19wb3NpeC5jYworQEAgLTEwMCwxMCArMTAwLDEwIEBA IGJvb2wgSXNTdGF0c1plcm9JZlVubGltaXRlZChjb25zdCBiYXNlOjoKKyAgIGlmIChIQU5ETEVf RUlOVFIoc3RhdGZzKHBhdGgudmFsdWUoKS5jX3N0cigpLCAmc3RhdHMpKSAhPSAwKQorICAgICBy ZXR1cm4gZmFsc2U7CisgCistICBzd2l0Y2ggKHN0YXRzLmZfdHlwZSkgeworKyAgc3dpdGNoIChz dGF0aWNfY2FzdDx1aW50bWF4X3Q+KHN0YXRzLmZfdHlwZSkpIHsKKyAgICAgY2FzZSBUTVBGU19N QUdJQzoKKy0gICAgY2FzZSBzdGF0aWNfY2FzdDxpbnQ+KEhVR0VUTEJGU19NQUdJQyk6CistICAg IGNhc2Ugc3RhdGljX2Nhc3Q8aW50PihSQU1GU19NQUdJQyk6CisrICAgIGNhc2UgSFVHRVRMQkZT X01BR0lDOgorKyAgICBjYXNlIFJBTUZTX01BR0lDOgorICAgICAgIHJldHVybiB0cnVlOworICAg fQorICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvMDEwOS1jaHJvbWl1bS1yZW1vdmUtc3RyaXBfYmluYXJ5LnBhdGNoIGIvc3JjcGtncy9x dDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwOS1jaHJvbWl1bS1yZW1vdmUtc3RyaXBfYmluYXJ5LnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNWViZDE2ZTY1OWFm Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwOS1j aHJvbWl1bS1yZW1vdmUtc3RyaXBfYmluYXJ5LnBhdGNoCkBAIC0wLDAgKzEsMzIgQEAKKy0tLSBh L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9jaHJvbWUvdGVzdC9jaHJvbWVkcml2ZXIvQlVJTEQuZ24K KysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9jaHJvbWUvdGVzdC9jaHJvbWVkcml2ZXIvQlVJ TEQuZ24KK0BAIC0zMDgsMTEgKzMwOCw3IEBAIHNvdXJjZV9zZXQoImxpYiIpIHsKKyAgIH0KKyB9 CisgCistaWYgKGlzX2xpbnV4KSB7CistICBjaHJvbWVkcml2ZXJfb3V0cHV0ID0gImNocm9tZWRy aXZlci51bnN0cmlwcGVkIgorLX0gZWxzZSB7CistICBjaHJvbWVkcml2ZXJfb3V0cHV0ID0gImNo cm9tZWRyaXZlciIKKy19CisrY2hyb21lZHJpdmVyX291dHB1dCA9ICJjaHJvbWVkcml2ZXIiCisg CisgZXhlY3V0YWJsZSgiJGNocm9tZWRyaXZlcl9vdXRwdXQiKSB7CisgICB0ZXN0b25seSA9IHRy dWUKK0BAIC0zMzYsMTYgKzMzMiw2IEBAIGV4ZWN1dGFibGUoIiRjaHJvbWVkcml2ZXJfb3V0cHV0 IikgeworICAgfQorIH0KKyAKKy1pZiAoaXNfbGludXgpIHsKKy0gIHN0cmlwX2JpbmFyeSgiY2hy b21lZHJpdmVyIikgeworLSAgICB0ZXN0b25seSA9IHRydWUKKy0gICAgYmluYXJ5X2lucHV0ID0g IiRyb290X291dF9kaXIvJGNocm9tZWRyaXZlcl9vdXRwdXQiCistICAgIHN5bWJvbF9vdXRwdXQg PSAiJHJvb3Rfb3V0X2Rpci9jaHJvbWVkcml2ZXIuZGVidWciCistICAgIHN0cmlwcGVkX2JpbmFy eV9vdXRwdXQgPSAiJHJvb3Rfb3V0X2Rpci9jaHJvbWVkcml2ZXIiCistICAgIGRlcHMgPSBbICI6 JGNocm9tZWRyaXZlcl9vdXRwdXQiIF0KKy0gIH0KKy19CistCisgcHl0aG9uX2xpYnJhcnkoImNo cm9tZWRyaXZlcl9weV90ZXN0cyIpIHsKKyAgIHRlc3Rvbmx5ID0gdHJ1ZQorICAgZGVwcyA9IFsK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMTAtY2hyb21pdW0t cmV2ZXJ0LXVzZS1mZmlsZS1jb21waWxhdGlvbi1kaXIucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJl bmdpbmUvcGF0Y2hlcy8wMTEwLWNocm9taXVtLXJldmVydC11c2UtZmZpbGUtY29tcGlsYXRpb24t ZGlyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYTAwZjdl YTgwZjdhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMv MDExMC1jaHJvbWl1bS1yZXZlcnQtdXNlLWZmaWxlLWNvbXBpbGF0aW9uLWRpci5wYXRjaApAQCAt MCwwICsxLDU3IEBACitGcm9tIDM0YTk1NTgyMzYzMDA5NmY1YjAxYzJiMDFkNTFjMWVhNTlkMjI3 NjMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBaZXF1YW4gV3UgPHplcXVhbnd1QGdv b2dsZS5jb20+CitEYXRlOiBUdWUsIDIwIEp1bCAyMDIxIDE0OjEzOjUwICswMDAwCitTdWJqZWN0 OiBbUEFUQ0hdIFVzZSAtZmZpbGUtY29tcGlsYXRpb24tZGlyPSBpbnN0ZWFkIG9mCisgLWZkZWJ1 Zy1jb21waWxhdGlvbi1kaXI9CisKK0J1ZzogMTAxMDI2NworQ2hhbmdlLUlkOiBJZjJiNGVhZDg1 MzVhNzY0OTBlYjQ2NmEzOGUzZDhmZWQ2ZWE5MTA3OQorUmV2aWV3ZWQtb246IGh0dHBzOi8vY2hy b21pdW0tcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20vYy9jaHJvbWl1bS9zcmMvKy8yNzcwNzM4CitB dXRvLVN1Ym1pdDogWmVxdWFuIFd1IDx6ZXF1YW53dUBnb29nbGUuY29tPgorQ29tbWl0LVF1ZXVl OiBOaWNvIFdlYmVyIDx0aGFraXNAY2hyb21pdW0ub3JnPgorUmV2aWV3ZWQtYnk6IE5pY28gV2Vi ZXIgPHRoYWtpc0BjaHJvbWl1bS5vcmc+CitDci1Db21taXQtUG9zaXRpb246IHJlZnMvaGVhZHMv bWFzdGVyQHsjOTAzNDU2fQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2J1aWxkL2NvbmZp Zy9jb21waWxlci9CVUlMRC5nbgorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2J1aWxkL2Nv bmZpZy9jb21waWxlci9CVUlMRC5nbgorQEAgLTEyNjksMTkgKzEyNjksMTIgQEAgY29uZmlnKCJj b21waWxlcl9kZXRlcm1pbmlzdGljIikgeworICAgICAjIGRpZmZlcmVudCBidWlsZCBkaXJlY3Rv cnkgbGlrZSAib3V0L2ZlYXR1cmVfYSIgYW5kICJvdXQvZmVhdHVyZV9iIiBpZgorICAgICAjIHdl IGJ1aWxkIHNhbWUgZmlsZXMgd2l0aCBzYW1lIGNvbXBpbGUgZmxhZy4KKyAgICAgIyBPdGhlciBw YXRocyBhcmUgYWxyZWFkeSBnaXZlbiBpbiByZWxhdGl2ZSwgbm8gbmVlZCB0byBub3JtYWxpemUg dGhlbS4KKy0gICAgaWYgKGlzX25hY2wpIHsKKy0gICAgICAjIFRPRE8oaHR0cHM6Ly9jcmJ1Zy5j b20vMTIzMTIzNik6IFVzZSAtZmZpbGUtY29tcGlsYXRpb24tZGlyPSBoZXJlLgorLSAgICAgIGNm bGFncyArPSBbCistICAgICAgICAiLVhjbGFuZyIsCistICAgICAgICAiLWZkZWJ1Zy1jb21waWxh dGlvbi1kaXIiLAorLSAgICAgICAgIi1YY2xhbmciLAorLSAgICAgICAgIi4iLAorLSAgICAgIF0K Ky0gICAgfSBlbHNlIHsKKy0gICAgICAjIC1mZmlsZS1jb21waWxhdGlvbi1kaXIgaXMgYW4gYWxp YXMgZm9yIGJvdGggLWZkZWJ1Zy1jb21waWxhdGlvbi1kaXI9CistICAgICAgIyBhbmQgLWZjb3Zl cmFnZS1jb21waWxhdGlvbi1kaXI9LgorLSAgICAgIGNmbGFncyArPSBbICItZmZpbGUtY29tcGls YXRpb24tZGlyPS4iIF0KKy0gICAgfQorKyAgICBjZmxhZ3MgKz0gWworKyAgICAgICItWGNsYW5n IiwKKysgICAgICAiLWZkZWJ1Zy1jb21waWxhdGlvbi1kaXIiLAorKyAgICAgICItWGNsYW5nIiwK KysgICAgICAiLiIsCisrICAgIF0KKyAgICAgaWYgKCFpc193aW4pIHsKKyAgICAgICAjIFdlIGRv bid0IHVzZSBjbGFuZyAtY2MxYXMgb24gV2luZG93cyAoeWV0PyBodHRwczovL2NyYnVnLmNvbS83 NjIxNjcpCisgICAgICAgYXNtZmxhZ3MgPSBbICItV2EsLWZkZWJ1Zy1jb21waWxhdGlvbi1kaXIs LiIgXQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2J1aWxkL2NvbmZpZy9jb21waWxlci9j b21waWxlci5nbmkKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9idWlsZC9jb25maWcvY29t cGlsZXIvY29tcGlsZXIuZ25pCitAQCAtMjI4LDggKzIyOCwxMSBAQCBkZWNsYXJlX2FyZ3MoKSB7 CisgIyBkZXRlcm1pbmlzdGljIGJ1aWxkcyB0byByZWR1Y2UgY29tcGlsZSB0aW1lcywgc28gdGhp cyBpcyBsZXNzIHJlbGV2YW50IGZvcgorICMgb2ZmaWNpYWwgYnVpbGRlcnMuCisgc3RyaXBfYWJz b2x1dGVfcGF0aHNfZnJvbV9kZWJ1Z19zeW1ib2xzX2RlZmF1bHQgPQorLSAgICBpc19hbmRyb2lk IHx8IGlzX2Z1Y2hzaWEgfHwgaXNfbmFjbCB8fCAoaXNfd2luICYmIHVzZV9sbGQpIHx8IGlzX2xp bnV4IHx8CistICAgIGlzX2Nocm9tZW9zIHx8IChpc19hcHBsZSAmJiAhZW5hYmxlX2RzeW1zKQor KyAgICAjIFRPRE8oY3JidWcuY29tLzEwMTAyNjcpOiByZW1vdmUgJyF1c2VfY2xhbmdfY292ZXJh Z2UnLCBjb3ZlcmFnZSBidWlsZCBoYXMKKysgICAgIyBkZXBlbmRlbmN5IHRvIGFic29sdXRlIHBh dGggb2Ygc291cmNlIGZpbGVzLgorKyAgICAhdXNlX2NsYW5nX2NvdmVyYWdlICYmCisrICAgIChp c19hbmRyb2lkIHx8IGlzX2Z1Y2hzaWEgfHwgaXNfbmFjbCB8fCAoaXNfd2luICYmIHVzZV9sbGQp IHx8IGlzX2xpbnV4IHx8CisrICAgICBpc19jaHJvbWVvcyB8fCAoaXNfYXBwbGUgJiYgIWVuYWJs ZV9kc3ltcykpCisgCisgZGVjbGFyZV9hcmdzKCkgeworICAgc3RyaXBfYWJzb2x1dGVfcGF0aHNf ZnJvbV9kZWJ1Z19zeW1ib2xzID0gc3RyaXBfYWJzb2x1dGVfcGF0aHNfZnJvbV9kZWJ1Z19zeW1i b2xzX2RlZmF1bHQKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAx MTEtY2hyb21pdW0tbm8tV25vLXN0cmluZ29wLW92ZXJyZWFkLnBhdGNoIGIvc3JjcGtncy9xdDYt d2ViZW5naW5lL3BhdGNoZXMvMDExMS1jaHJvbWl1bS1uby1Xbm8tc3RyaW5nb3Atb3ZlcnJlYWQu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4wM2VhYzNmOGUw NjcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTEx LWNocm9taXVtLW5vLVduby1zdHJpbmdvcC1vdmVycmVhZC5wYXRjaApAQCAtMCwwICsxLDEwIEBA CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vYnVpbGQvY29uZmlnL2NvbXBpbGVyL0JVSUxE LmduCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vYnVpbGQvY29uZmlnL2NvbXBpbGVyL0JV SUxELmduCitAQCAtMzk0LDcgKzM5NCw2IEBAIGNvbmZpZygiY29tcGlsZXIiKSB7CisgICAgICAg ICAiLVduby1wYXJlbnRoZXNlcyIsCisgICAgICAgICAiLVduby1zaWduLWNvbXBhcmUiLCAjIGZp ZG8KKyAgICAgICAgICItV25vLXN0cmluZ29wLW92ZXJmbG93IiwgIyBza2lhLCBsaWJhb20sIHBy b3RvYnVmLCBpY3UKKy0gICAgICAgICItV25vLXN0cmluZ29wLW92ZXJyZWFkIiwgIyBsaWJhb20K KyAgICAgICAgICItV25vLXBzYWJpIiwgIyBza2lhCisgICAgICAgICAiLVduby1tdWx0aWNoYXIi LCAjIGNyYXNocGFkCisgICAgICAgICAiLVduby1mb3JtYXQtemVyby1sZW5ndGgiLCAjIHVzZXJf YWdlbnQuY2MKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxNTAt Y2hyb21pdW0tZ2xpYmMtbGliY19tYWxsb2MucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUv cGF0Y2hlcy8wMTUwLWNocm9taXVtLWdsaWJjLWxpYmNfbWFsbG9jLnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uN2UxYjY2ZTVjNzNkCi0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDE1MC1jaHJvbWl1bS1nbGliYy1s aWJjX21hbGxvYy5wYXRjaApAQCAtMCwwICsxLDI0IEBACistLS0gYS9zcmMvM3JkcGFydHkvY2hy b21pdW0vYmFzZS9wcm9jZXNzL21lbW9yeV9saW51eC5jYworKysrIGIvc3JjLzNyZHBhcnR5L2No cm9taXVtL2Jhc2UvcHJvY2Vzcy9tZW1vcnlfbGludXguY2MKK0BAIC0yMyw2ICsyMywxMiBAQAor ICNpbmNsdWRlICJ0aGlyZF9wYXJ0eS90Y21hbGxvYy9jaHJvbWl1bS9zcmMvZ3BlcmZ0b29scy90 Y21hbGxvYy5oIgorICNlbmRpZgorIAorKyNpZiBkZWZpbmVkKExJQkNfR0xJQkMpCisrZXh0ZXJu ICJDIiB7CisrZXh0ZXJuIHZvaWQgKl9fbGliY19tYWxsb2Moc2l6ZV90IHNpemUpOworK30KKysj ZW5kaWYKKysKKyBuYW1lc3BhY2UgYmFzZSB7CisgCisgbmFtZXNwYWNlIHsKK0BAIC0xMjAsNyAr MTI2LDcgQEAgYm9vbCBVbmNoZWNrZWRNYWxsb2Moc2l6ZV90IHNpemUsIHZvaWQqKgorICAgICAo IWRlZmluZWQoTElCQ19HTElCQykgJiYgIUJVSUxERkxBRyhVU0VfVENNQUxMT0MpKQorICAgKnJl c3VsdCA9IG1hbGxvYyhzaXplKTsKKyAjZWxpZiBkZWZpbmVkKExJQkNfR0xJQkMpICYmICFCVUlM REZMQUcoVVNFX1RDTUFMTE9DKQorLSAgKnJlc3VsdCA9IF9fbGliY19tYWxsb2Moc2l6ZSk7Cisr ICAqcmVzdWx0ID0gOjpfX2xpYmNfbWFsbG9jKHNpemUpOworICNlbGlmIEJVSUxERkxBRyhVU0Vf VENNQUxMT0MpCisgICAqcmVzdWx0ID0gdGNfbWFsbG9jX3NraXBfbmV3X2hhbmRsZXIoc2l6ZSk7 CisgI2VuZGlmCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjAw LWNocm9taXVtLW11c2wtaW5jbHVkZS1zeXMtcmVnLmgtdG8tZ2V0LV9fV09SRFNJWkUucGF0Y2gg Yi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjAwLWNocm9taXVtLW11c2wtaW5jbHVk ZS1zeXMtcmVnLmgtdG8tZ2V0LV9fV09SRFNJWkUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwLi40MWI5MDA3MWI1ZTQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNw a2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjAwLWNocm9taXVtLW11c2wtaW5jbHVkZS1zeXMt cmVnLmgtdG8tZ2V0LV9fV09SRFNJWkUucGF0Y2gKQEAgLTAsMCArMSwyMSBAQAorRnJvbSA5MDAx YzU0ZDZiOTc0NDQ5MTc0YThjZWU4ZjNmNWQ3OGE5YmQ2YzllIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQorRnJvbTogRmVsaXggSmFuZGEgPGZlbGl4LmphbmRhQHBvc3Rlby5kZT4KK0RhdGU6IFN1 biwgMSBGZWIgMjAxNSAxNDoyNjo1MiArMDEwMAorU3ViamVjdDogW1BBVENIIDMvNl0gaW5jbHVk ZSA8c3lzL3JlZy5oPiB0byBnZXQgX19XT1JEU0laRSBvbiBtdXNsIGxpYmMKKworLS0tCisgcXR3 ZWJlbmdpbmUvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFr cGFkL3NyYy9jb21tb24vbGludXgvZWxmX2NvcmVfZHVtcC5oIHwgMSArCisgMSBmaWxlIGNoYW5n ZWQsIDEgaW5zZXJ0aW9uKCspCisKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9w YXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2VsZl9jb3JlX2R1bXAuaAor KysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFk L3NyYy9jb21tb24vbGludXgvZWxmX2NvcmVfZHVtcC5oCitAQCAtMzcsNiArMzcsOSBAQAorICNp bmNsdWRlIDxsaW1pdHMuaD4KKyAjaW5jbHVkZSA8bGluay5oPgorICNpbmNsdWRlIDxzdGRkZWYu aD4KKysjaWZuZGVmIF9fR0xJQkNfXworKyNpbmNsdWRlIDxzeXMvcmVnLmg+CisrI2VuZGlmCisg CisgI2luY2x1ZGUgImNvbW1vbi9tZW1vcnlfcmFuZ2UuaCIKKyAKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDEtY2hyb21pdW0tbXVzbC1kaXNwYXRjaC10by1t dXNsLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIwMS1jaHJvbWl1bS1t dXNsLWRpc3BhdGNoLXRvLW11c2wucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwLi5hNThhNjg4YTRiNTUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13 ZWJlbmdpbmUvcGF0Y2hlcy8wMjAxLWNocm9taXVtLW11c2wtZGlzcGF0Y2gtdG8tbXVzbC5wYXRj aApAQCAtMCwwICsxLDEwMyBAQAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jhc2UvYWxs b2NhdG9yL2FsbG9jYXRvcl9zaGltX2RlZmF1bHRfZGlzcGF0Y2hfdG9fZ2xpYmMuY2MKKysrKyBi L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL2FsbG9jYXRvci9hbGxvY2F0b3Jfc2hpbV9kZWZh dWx0X2Rpc3BhdGNoX3RvX2dsaWJjLmNjCitAQCAtOCw2ICs4LDcgQEAKKyAjaW5jbHVkZSA8ZGxm Y24uaD4KKyAjaW5jbHVkZSA8bWFsbG9jLmg+CisgCisrI2lmIGRlZmluZWQoX19HTElCQ19fKQor IC8vIFRoaXMgdHJhbnNsYXRpb24gdW5pdCBkZWZpbmVzIGEgZGVmYXVsdCBkaXNwYXRjaCBmb3Ig dGhlIGFsbG9jYXRvciBzaGltIHdoaWNoCisgLy8gcm91dGVzIGFsbG9jYXRpb25zIHRvIGxpYmMg ZnVuY3Rpb25zLgorIC8vIFRoZSBjb2RlIGhlcmUgaXMgc3Ryb25nbHkgaW5zcGlyZWQgZnJvbSB0 Y21hbGxvYydzIGxpYmNfb3ZlcnJpZGVfZ2xpYmMuaC4KK0BAIC04NywzICs4OCw5MiBAQCBjb25z dCBBbGxvY2F0b3JEaXNwYXRjaCBBbGxvY2F0b3JEaXNwYXRjCisgICAgIG51bGxwdHIsICAgICAg ICAgICAgICAgLyogYWxpZ25lZF9mcmVlX2Z1bmN0aW9uICovCisgICAgIG51bGxwdHIsICAgICAg ICAgICAgICAgLyogbmV4dCAqLworIH07CisrCisrI2Vsc2UgLy8gZGVmaW5lZChfX0dMSUJDX18p CisrCisrI2luY2x1ZGUgPGRsZmNuLmg+CisrCisrZXh0ZXJuICJDIiB7CisrLy8gRGVjbGFyZSBm dW5jdGlvbiBwb2ludGVycyB0byB0aGUgbWVtb3J5IGZ1bmN0aW9ucworK3R5cGVkZWYgdm9pZCog KCp0X2xpYmNfbWFsbG9jKShzaXplX3Qgc2l6ZSk7CisrdHlwZWRlZiB2b2lkKiAoKnRfbGliY19j YWxsb2MpKHNpemVfdCBuLCBzaXplX3Qgc2l6ZSk7CisrdHlwZWRlZiB2b2lkKiAoKnRfbGliY19y ZWFsbG9jKSh2b2lkKiBhZGRyZXNzLCBzaXplX3Qgc2l6ZSk7CisrdHlwZWRlZiB2b2lkKiAoKnRf bGliY19tZW1hbGlnbikoc2l6ZV90IGFsaWdubWVudCwgc2l6ZV90IHNpemUpOworK3R5cGVkZWYg dm9pZCAoKnRfbGliY19mcmVlKSh2b2lkKiBwdHIpOworK3R5cGVkZWYgc2l6ZV90ICgqdF9saWJj X21hbGxvY191c2FibGVfc2l6ZSkodm9pZCogcHRyKTsKKysKKysvLyBTdGF0aWMgaW5zdGFuY2Vz IG9mIHBvaW50ZXJzIHRvIGxpYmMuc28gZGwgc3ltYm9scworK3N0YXRpYyB0X2xpYmNfbWFsbG9j IGxpYmNfbWFsbG9jID0gTlVMTDsKKytzdGF0aWMgdF9saWJjX2NhbGxvYyBsaWJjX2NhbGxvYyA9 IE5VTEw7Cisrc3RhdGljIHRfbGliY19yZWFsbG9jIGxpYmNfcmVhbGxvYyA9IE5VTEw7Cisrc3Rh dGljIHRfbGliY19tZW1hbGlnbiBsaWJjX21lbWFsaWduID0gTlVMTDsKKytzdGF0aWMgdF9saWJj X2ZyZWUgbGliY19mcmVlID0gTlVMTDsKKytzdGF0aWMgdF9saWJjX21hbGxvY191c2FibGVfc2l6 ZSBsaWJjX21hbGxvY191c2FibGVfc2l6ZSA9IE5VTEw7CisrCisrLy8gcmVzb2x2ZSB0aGUgc3lt Ym9scyBpbiBsaWJjLnNvCisrdm9pZCBtdXNsX2xpYmNfbWVtb3J5X2luaXQodm9pZCkKKyt7Cisr ICBsaWJjX21hbGxvYyA9ICh0X2xpYmNfbWFsbG9jKSBkbHN5bShSVExEX05FWFQsICJtYWxsb2Mi KTsKKysgIGxpYmNfY2FsbG9jID0gKHRfbGliY19jYWxsb2MpIGRsc3ltKFJUTERfTkVYVCwgImNh bGxvYyIpOworKyAgbGliY19yZWFsbG9jID0gKHRfbGliY19yZWFsbG9jKSBkbHN5bShSVExEX05F WFQsICJyZWFsbG9jIik7CisrICBsaWJjX21lbWFsaWduID0gKHRfbGliY19tZW1hbGlnbikgZGxz eW0oUlRMRF9ORVhULCAibWVtYWxpZ24iKTsKKysgIGxpYmNfZnJlZSA9ICh0X2xpYmNfZnJlZSkg ZGxzeW0oUlRMRF9ORVhULCAiZnJlZSIpOworKyAgbGliY19tYWxsb2NfdXNhYmxlX3NpemUgPSAo dF9saWJjX21hbGxvY191c2FibGVfc2l6ZSkgZGxzeW0oUlRMRF9ORVhULCAibWFsbG9jX3VzYWJs ZV9zaXplIik7CisrfQorK30gIC8vIGV4dGVybiAiQyIKKysKKytuYW1lc3BhY2UgeworKworK3Vz aW5nIGJhc2U6OmFsbG9jYXRvcjo6QWxsb2NhdG9yRGlzcGF0Y2g7CisrCisrdm9pZCogTXVzbE1h bGxvYyhjb25zdCBBbGxvY2F0b3JEaXNwYXRjaCosIHNpemVfdCBzaXplLCB2b2lkKiBjb250ZXh0 KSB7CisrICBpZiAoIWxpYmNfbWFsbG9jKQorKyAgICBtdXNsX2xpYmNfbWVtb3J5X2luaXQoKTsK KysgIHJldHVybiAoKmxpYmNfbWFsbG9jKShzaXplKTsKKyt9CisrCisrdm9pZCogTXVzbENhbGxv Yyhjb25zdCBBbGxvY2F0b3JEaXNwYXRjaCosIHNpemVfdCBuLCBzaXplX3Qgc2l6ZSwgdm9pZCog Y29udGV4dCkgeworKyAgaWYgKCFsaWJjX2NhbGxvYykKKysgICAgbXVzbF9saWJjX21lbW9yeV9p bml0KCk7CisrICByZXR1cm4gKCpsaWJjX2NhbGxvYykobiwgc2l6ZSk7CisrfQorKworK3ZvaWQq IE11c2xSZWFsbG9jKGNvbnN0IEFsbG9jYXRvckRpc3BhdGNoKiwgdm9pZCogYWRkcmVzcywgc2l6 ZV90IHNpemUsIHZvaWQqIGNvbnRleHQpIHsKKysgIGlmICghbGliY19yZWFsbG9jKQorKyAgICBt dXNsX2xpYmNfbWVtb3J5X2luaXQoKTsKKysgIHJldHVybiAoKmxpYmNfcmVhbGxvYykoYWRkcmVz cywgc2l6ZSk7CisrfQorKworK3ZvaWQqIE11c2xNZW1hbGlnbihjb25zdCBBbGxvY2F0b3JEaXNw YXRjaCosIHNpemVfdCBhbGlnbm1lbnQsIHNpemVfdCBzaXplLCB2b2lkKiBjb250ZXh0KSB7Cisr ICBpZiAoIWxpYmNfbWVtYWxpZ24pCisrICAgIG11c2xfbGliY19tZW1vcnlfaW5pdCgpOworKyAg cmV0dXJuICgqbGliY19tZW1hbGlnbikoYWxpZ25tZW50LCBzaXplKTsKKyt9CisrCisrdm9pZCBN dXNsRnJlZShjb25zdCBBbGxvY2F0b3JEaXNwYXRjaCosIHZvaWQqIGFkZHJlc3MsIHZvaWQqIGNv bnRleHQpIHsKKysgIGlmICghbGliY19mcmVlKQorKyAgICBtdXNsX2xpYmNfbWVtb3J5X2luaXQo KTsKKysgICgqbGliY19mcmVlKShhZGRyZXNzKTsKKyt9CisrCisrc2l6ZV90IE11c2xHZXRTaXpl RXN0aW1hdGUoY29uc3QgQWxsb2NhdG9yRGlzcGF0Y2gqLCB2b2lkKiBhZGRyZXNzLCB2b2lkKiBj b250ZXh0KSB7CisrICAvLyBUT0RPKHNpZ2dpLCBwcmltaWFubyk6IG1hbGxvY191c2FibGVfc2l6 ZSBtYXkgbmVlZCByZWRpcmVjdGlvbiBpbiB0aGUKKysgIC8vICAgICBwcmVzZW5jZSBvZiBpbnRl cnBvc2luZyBzaGltcyB0aGF0IGRpdmVydCBhbGxvY2F0aW9ucy4KKysgIGlmICghbGliY19tYWxs b2NfdXNhYmxlX3NpemUpCisrICAgIG11c2xfbGliY19tZW1vcnlfaW5pdCgpOworKyAgcmV0dXJu ICgqbGliY19tYWxsb2NfdXNhYmxlX3NpemUpKGFkZHJlc3MpOworK30KKysKKyt9ICAvLyBuYW1l c3BhY2UKKysKKytjb25zdCBBbGxvY2F0b3JEaXNwYXRjaCBBbGxvY2F0b3JEaXNwYXRjaDo6ZGVm YXVsdF9kaXNwYXRjaCA9IHsKKysgICAgJk11c2xNYWxsb2MsICAgICAgICAgICAvKiBhbGxvY19m dW5jdGlvbiAqLworKyAgICAmTXVzbENhbGxvYywgICAgICAgICAgIC8qIGFsbG9jX3plcm9faW5p dGlhbGl6ZWRfZnVuY3Rpb24gKi8KKysgICAgJk11c2xNZW1hbGlnbiwgICAgICAgICAvKiBhbGxv Y19hbGlnbmVkX2Z1bmN0aW9uICovCisrICAgICZNdXNsUmVhbGxvYywgICAgICAgICAgLyogcmVh bGxvY19mdW5jdGlvbiAqLworKyAgICAmTXVzbEZyZWUsICAgICAgICAgICAgIC8qIGZyZWVfZnVu Y3Rpb24gKi8KKysgICAgJk11c2xHZXRTaXplRXN0aW1hdGUsICAvKiBnZXRfc2l6ZV9lc3RpbWF0 ZV9mdW5jdGlvbiAqLworKyAgICBudWxscHRyLCAgICAgICAgICAgICAgIC8qIG5leHQgKi8KKyt9 OworKworKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMv MDIwMi1jaHJvbWl1bS1tdXNsLW5vLW1hbGxpbmZvLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5n aW5lL3BhdGNoZXMvMDIwMi1jaHJvbWl1bS1tdXNsLW5vLW1hbGxpbmZvLnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYTViZGI1YTQzYTVmCi0tLSAvZGV2L251 bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIwMi1jaHJvbWl1bS1tdXNs LW5vLW1hbGxpbmZvLnBhdGNoCkBAIC0wLDAgKzEsNjIgQEAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS9iYXNlL3Byb2Nlc3MvcHJvY2Vzc19tZXRyaWNzX3Bvc2l4LmNjCisrKysgYi9zcmMv M3JkcGFydHkvY2hyb21pdW0vYmFzZS9wcm9jZXNzL3Byb2Nlc3NfbWV0cmljc19wb3NpeC5jYwor QEAgLTEwNSw3ICsxMDUsNyBAQCB2b2lkIEluY3JlYXNlRmRMaW1pdFRvKHVuc2lnbmVkIGludCBt YXhfCisgCisgI2VuZGlmICAvLyAhZGVmaW5lZChPU19GVUNIU0lBKQorIAorLSNpZiBkZWZpbmVk KE9TX0xJTlVYKSB8fCBkZWZpbmVkKE9TX0NIUk9NRU9TKSB8fCBkZWZpbmVkKE9TX0FORFJPSUQp CisrI2lmIChkZWZpbmVkKE9TX0xJTlVYKSAmJiBkZWZpbmVkKF9fR0xJQkNfXykpIHx8IGRlZmlu ZWQoT1NfQ0hST01FT1MpIHx8IGRlZmluZWQoT1NfQU5EUk9JRCkKKyBuYW1lc3BhY2UgeworIAor IHNpemVfdCBHZXRNYWxsb2NVc2FnZU1hbGxpbmZvKCkgeworQEAgLTEyNywxNiArMTI3LDE2IEBA IHNpemVfdCBHZXRNYWxsb2NVc2FnZU1hbGxpbmZvKCkgeworIH0KKyAKKyB9ICAvLyBuYW1lc3Bh Y2UKKy0jZW5kaWYgIC8vIGRlZmluZWQoT1NfTElOVVgpIHx8IGRlZmluZWQoT1NfQ0hST01FT1Mp IHx8IGRlZmluZWQoT1NfQU5EUk9JRCkKKysjZW5kaWYgIC8vIChkZWZpbmVkKE9TX0xJTlVYKSAm JiBkZWZpbmVkKF9fR0xJQkNfXykpIHx8IGRlZmluZWQoT1NfQ0hST01FT1MpIHx8IGRlZmluZWQo T1NfQU5EUk9JRCkKKyAKKyBzaXplX3QgUHJvY2Vzc01ldHJpY3M6OkdldE1hbGxvY1VzYWdlKCkg eworICNpZiBkZWZpbmVkKE9TX0FQUExFKQorICAgbWFsbG9jX3N0YXRpc3RpY3NfdCBzdGF0cyA9 IHswfTsKKyAgIG1hbGxvY196b25lX3N0YXRpc3RpY3MobnVsbHB0ciwgJnN0YXRzKTsKKyAgIHJl dHVybiBzdGF0cy5zaXplX2luX3VzZTsKKy0jZWxpZiBkZWZpbmVkKE9TX0xJTlVYKSB8fCBkZWZp bmVkKE9TX0NIUk9NRU9TKSB8fCBkZWZpbmVkKE9TX0FORFJPSUQpCisrI2VsaWYgKGRlZmluZWQo T1NfTElOVVgpICYmIGRlZmluZWQoX19HTElCQ19fKSkgfHwgZGVmaW5lZChPU19DSFJPTUVPUykg fHwgZGVmaW5lZChPU19BTkRST0lEKQorICAgcmV0dXJuIEdldE1hbGxvY1VzYWdlTWFsbGluZm8o KTsKKy0jZWxpZiBkZWZpbmVkKE9TX0ZVQ0hTSUEpCisrI2Vsc2UKKyAgIC8vIFRPRE8oZnVjaHNp YSk6IE5vdCBjdXJyZW50bHkgZXhwb3NlZC4gaHR0cHM6Ly9jcmJ1Zy5jb20vNzM1MDg3LgorICAg cmV0dXJuIDA7CisgI2VuZGlmCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFy dHkvdGZsaXRlL3NyYy90ZW5zb3JmbG93L2xpdGUvcHJvZmlsaW5nL21lbW9yeV9pbmZvLmNjCisr KysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvdGZsaXRlL3NyYy90ZW5zb3Jm bG93L2xpdGUvcHJvZmlsaW5nL21lbW9yeV9pbmZvLmNjCitAQCAtMjcsNyArMjcsNyBAQCBuYW1l c3BhY2UgbWVtb3J5IHsKKyBjb25zdCBpbnQgTWVtb3J5VXNhZ2U6OmtWYWx1ZU5vdFNldCA9IDA7 CisgCisgYm9vbCBNZW1vcnlVc2FnZTo6SXNTdXBwb3J0ZWQoKSB7CistI2lmZGVmIF9fbGludXhf XworKyNpZmRlZiBfX0dMSUJDX18KKyAgIHJldHVybiB0cnVlOworICNlbmRpZgorICAgcmV0dXJu IGZhbHNlOworQEAgLTM1LDcgKzM1LDcgQEAgYm9vbCBNZW1vcnlVc2FnZTo6SXNTdXBwb3J0ZWQo KSB7CisgCisgTWVtb3J5VXNhZ2UgR2V0TWVtb3J5VXNhZ2UoKSB7CisgICBNZW1vcnlVc2FnZSBy ZXN1bHQ7CistI2lmZGVmIF9fbGludXhfXworKyNpZmRlZiBfX0dMSUJDX18KKyAgIHJ1c2FnZSBy ZXM7CisgICBpZiAoZ2V0cnVzYWdlKFJVU0FHRV9TRUxGLCAmcmVzKSA9PSAwKSB7CisgICAgIHJl c3VsdC5tYXhfcnNzX2tiID0gcmVzLnJ1X21heHJzczsKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS9iYXNlL3RyYWNlX2V2ZW50L21hbGxvY19kdW1wX3Byb3ZpZGVyLmNjCisrKysgYi9zcmMv M3JkcGFydHkvY2hyb21pdW0vYmFzZS90cmFjZV9ldmVudC9tYWxsb2NfZHVtcF9wcm92aWRlci5j YworQEAgLTIxMyw3ICsyMTMsNyBAQCBib29sIE1hbGxvY0R1bXBQcm92aWRlcjo6T25NZW1vcnlE dW1wKGNvCisgICAgICAgICAgICAgICAgICAgICAgJmFsbG9jYXRlZF9vYmplY3RzX2NvdW50KTsK KyAjZWxpZiBkZWZpbmVkKE9TX0ZVQ0hTSUEpCisgLy8gVE9ETyhmdWNoc2lhKTogUG9ydCwgc2Vl IGh0dHBzOi8vY3JidWcuY29tLzcwNjU5Mi4KKy0jZWxzZQorKyNlbGlmIGRlZmluZWQoX19HTElC Q19fKQorICNpZiBkZWZpbmVkKF9fR0xJQkNfXykgJiYgZGVmaW5lZChfX0dMSUJDX1BSRVJFUSkK KyAjaWYgX19HTElCQ19QUkVSRVEoMiwgMzMpCisgI2RlZmluZSBNQUxMSU5GTzJfRk9VTkRfSU5f TElCQwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIwMy1jaHJv bWl1bS1tdXNsLXNpZ2luZm9fdC5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVz LzAyMDMtY2hyb21pdW0tbXVzbC1zaWdpbmZvX3QucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwLi40M2VmN2ZkN2M1ZDIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNw a2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjAzLWNocm9taXVtLW11c2wtc2lnaW5mb190LnBh dGNoCkBAIC0wLDAgKzEsMTggQEAKK1RoZXJlJ3MgYSBzdWJ0bGUgZGlmZmVyZW5jZSBpbiB0aGUg aW50ZXJuYWwgbmFtZSBvZiBzaWdpbmZvX3QgZmllbGRzCitiZXR3ZWVuIGdsaWJjIGFuZCBtdXNs LiBUaGUgc3RydWN0dXJlIGl0c2VsZiBpcyBlcXVpdmFsZW50LCBzbyBpdAorc2hvdWxkIHN1ZmZp Y2UgdG8gYWRkIGEgbWFjcm8gdG8gcmVuYW1lIHRoZSBmaWVsZC4KKworLS0tIGEvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYvdHJhcC5jYworKysrIGIvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYvdHJhcC5jYworQEAg LTE3NCw3ICsxNzQsMTEgQEAgdm9pZCBUcmFwOjpTaWdTeXMoaW50IG5yLCBMaW51eFNpZ0luZm8q CisgICAvLyBJZiB0aGUgdmVyc2lvbiBvZiBnbGliYyBkb2Vzbid0IGluY2x1ZGUgdGhpcyBpbmZv cm1hdGlvbiBpbgorICAgLy8gc2lnaW5mb190IChvbGRlciB0aGFuIDIuMTcpLCB3ZSBuZWVkIHRv IGV4cGxpY2l0bHkgY29weSBpdAorICAgLy8gaW50byBhbiBhcmNoX3NpZ3N5cyBzdHJ1Y3R1cmUu CisrI2lmIGRlZmluZWQoX19HTElCQ19fKQorICAgbWVtY3B5KCZzaWdzeXMsICZpbmZvLT5fc2lm aWVsZHMsIHNpemVvZihzaWdzeXMpKTsKKysjZWxzZQorKyAgbWVtY3B5KCZzaWdzeXMsICZpbmZv LT5fX3NpX2ZpZWxkcywgc2l6ZW9mKHNpZ3N5cykpOworKyNlbmRpZgorICNlbmRpZgorIAorICNp ZiBkZWZpbmVkKF9fbWlwc19fKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvMDIwNC1jaHJvbWl1bS1tdXNsLXN0YWNrc3RhcnQucGF0Y2ggYi9zcmNwa2dzL3F0Ni13 ZWJlbmdpbmUvcGF0Y2hlcy8wMjA0LWNocm9taXVtLW11c2wtc3RhY2tzdGFydC5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmIwM2NmNDNiODZkYgotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDQtY2hyb21pdW0t bXVzbC1zdGFja3N0YXJ0LnBhdGNoCkBAIC0wLDAgKzEsMjAgQEAKKy0tLSBhL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS93dGYvc3RhY2tf dXRpbC5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JsaW5rL3Jl bmRlcmVyL3BsYXRmb3JtL3d0Zi9zdGFja191dGlsLmNjCitAQCAtMjksNyArMjksNyBAQCBzaXpl X3QgR2V0VW5kZXJlc3RpbWF0ZWRTdGFja1NpemUoKSB7CisgLy8gRklYTUU6IE9uIE1hYyBPU1gg YW5kIExpbnV4LCB0aGlzIG1ldGhvZCBjYW5ub3QgZXN0aW1hdGUgc3RhY2sgc2l6ZQorIC8vIGNv cnJlY3RseSBmb3IgdGhlIG1haW4gdGhyZWFkLgorIAorLSNlbGlmIGRlZmluZWQoX19HTElCQ19f KSB8fCBkZWZpbmVkKE9TX0FORFJPSUQpIHx8IGRlZmluZWQoT1NfRlJFRUJTRCkgfHwgXAorKyNl bGlmIGRlZmluZWQoT1NfTElOVVgpIHx8IGRlZmluZWQoT1NfQU5EUk9JRCkgfHwgZGVmaW5lZChP U19GUkVFQlNEKSB8fCBcCisgICAgIGRlZmluZWQoT1NfRlVDSFNJQSkKKyAgIC8vIHB0aHJlYWRf Z2V0YXR0cl9ucCgpIGNhbiBmYWlsIGlmIHRoZSB0aHJlYWQgaXMgbm90IGludm9rZWQgYnkKKyAg IC8vIHB0aHJlYWRfY3JlYXRlKCkgKGUuZy4sIHRoZSBtYWluIHRocmVhZCBvZiBibGlua191bml0 dGVzdHMpLgorQEAgLTk3LDcgKzk3LDcgQEAgcmV0dXJuIFRocmVhZGluZzo6VGhyZWFkU3RhY2tT aXplKCk7CisgfQorIAorIHZvaWQqIEdldFN0YWNrU3RhcnQoKSB7CistI2lmIGRlZmluZWQoX19H TElCQ19fKSB8fCBkZWZpbmVkKE9TX0FORFJPSUQpIHx8IGRlZmluZWQoT1NfRlJFRUJTRCkgfHwg XAorKyNpZiBkZWZpbmVkKE9TX0xJTlVYKSB8fCBkZWZpbmVkKE9TX0FORFJPSUQpIHx8IGRlZmlu ZWQoT1NfRlJFRUJTRCkgfHwgXAorICAgICBkZWZpbmVkKE9TX0ZVQ0hTSUEpCisgICBwdGhyZWFk X2F0dHJfdCBhdHRyOworICAgaW50IGVycm9yOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2Vi ZW5naW5lL3BhdGNoZXMvMDIwNS1jaHJvbWl1bS1tdXNsLXNhbmRib3gucGF0Y2ggYi9zcmNwa2dz L3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjA1LWNocm9taXVtLW11c2wtc2FuZGJveC5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjc3MmE1NzhmZDgyMwotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDUtY2hyb21p dW0tbXVzbC1zYW5kYm94LnBhdGNoCkBAIC0wLDAgKzEsOTIgQEAKKy0tLSBhL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9wYXJh bWV0ZXJzX3Jlc3RyaWN0aW9ucy5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRi b3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3BhcmFtZXRlcnNfcmVzdHJpY3Rp b25zLmNjCitAQCAtMTM4LDcgKzEzOCw3IEBAIG5hbWVzcGFjZSBzYW5kYm94IHsKKyAvLyBwcmVz ZW50IChhcyBpbiBuZXdlciB2ZXJzaW9ucyBvZiBwb3NpeF9zcGF3bikuCisgUmVzdWx0RXhwciBS ZXN0cmljdENsb25lVG9UaHJlYWRzQW5kRVBFUk1Gb3JrKCkgeworICAgY29uc3QgQXJnPHVuc2ln bmVkIGxvbmc+IGZsYWdzKDApOworLQorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykKKyAgIC8vIFRP RE8obWRlbXBza3kpOiBFeHRlbmQgRFNMIHRvIHN1cHBvcnQgKGZsYWdzICYgfm1hc2sxKSA9PSBt YXNrMi4KKyAgIGNvbnN0IHVpbnQ2NF90IGtBbmRyb2lkQ2xvbmVNYXNrID0gQ0xPTkVfVk0gfCBD TE9ORV9GUyB8IENMT05FX0ZJTEVTIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgQ0xPTkVfU0lHSEFORCB8IENMT05FX1RIUkVBRCB8CitAQCAtMTY1LDYgKzE2NSwxNyBA QCBSZXN1bHRFeHByIFJlc3RyaWN0Q2xvbmVUb1RocmVhZHNBbmRFUEVSCisgICByZXR1cm4gSWYo SXNBbmRyb2lkKCkgPyBhbmRyb2lkX3Rlc3QgOiBnbGliY190ZXN0LCBBbGxvdygpKQorICAgICAg IC5FbHNlSWYoaXNfZm9ya19vcl9jbG9uZV92Zm9yaywgRXJyb3IoRVBFUk0pKQorICAgICAgIC5F bHNlKENyYXNoU0lHU1lTQ2xvbmUoKSk7CisrI2Vsc2UKKysgIGNvbnN0IGludCByZXF1aXJlZCA9 IENMT05FX1ZNIHwgQ0xPTkVfRlMgfCBDTE9ORV9GSUxFUyB8IENMT05FX1NJR0hBTkQgfAorKyAg ICAgICAgICAgICAgICAgICAgICAgQ0xPTkVfVEhSRUFEIHwgQ0xPTkVfU1lTVlNFTTsKKysgIGNv bnN0IGludCBzYWZlID0gQ0xPTkVfU0VUVExTIHwgQ0xPTkVfUEFSRU5UX1NFVFRJRCB8IENMT05F X0NISUxEX0NMRUFSVElEIHwKKysgICAgICAgICAgICAgICAgICAgQ0xPTkVfREVUQUNIRUQ7Cisr ICBjb25zdCBCb29sRXhwciB0aHJlYWRfY2xvbmVfb2sgPSAoZmxhZ3MmfnNhZmUpPT1yZXF1aXJl ZDsKKysKKysgIHJldHVybiBJZih0aHJlYWRfY2xvbmVfb2ssIEFsbG93KCkpCisrICAgICAgLkVs c2VJZigoZmxhZ3MgJiAoQ0xPTkVfVk0gfCBDTE9ORV9USFJFQUQpKSA9PSAwLCBFcnJvcihFUEVS TSkpCisrICAgICAgLkVsc2UoQ3Jhc2hTSUdTWVNDbG9uZSgpKTsKKysjZW5kaWYKKyB9CisgCisg I2lmbmRlZiBQUl9QQUNfUkVTRVRfS0VZUworLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Nh bmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuY2MKKysrKyBiL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lz Y2FsbF9zZXRzLmNjCitAQCAtNDE5LDYgKzQxOSw5IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxs b3dlZFByb2Nlc3NTdGFydE8KKyAjaWYgZGVmaW5lZChfX2kzODZfXykKKyAgICAgY2FzZSBfX05S X3dhaXRwaWQ6CisgI2VuZGlmCisrI2lmICFkZWZpbmVkKF9fR0xJQkNfXykKKysgICAgY2FzZSBf X05SX3NldF90aWRfYWRkcmVzczoKKysjZW5kaWYKKyAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAg Y2FzZSBfX05SX2Nsb25lOiAgLy8gU2hvdWxkIGJlIHBhcmFtZXRlci1yZXN0cmljdGVkLgorICAg ICBjYXNlIF9fTlJfc2V0bnM6ICAvLyBQcml2aWxlZ2VkLgorQEAgLTQzMSw3ICs0MzQsOSBAQCBi b29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRQcm9jZXNzU3RhcnRPCisgI2lmIGRlZmluZWQoX19p Mzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykKKyAgICAg Y2FzZSBfX05SX3NldF90aHJlYWRfYXJlYToKKyAjZW5kaWYKKysjaWYgZGVmaW5lZChfX0dMSUJD X18pCisgICAgIGNhc2UgX19OUl9zZXRfdGlkX2FkZHJlc3M6CisrI2VuZGlmCisgICAgIGNhc2Ug X19OUl91bnNoYXJlOgorICNpZiAhZGVmaW5lZChfX21pcHNfXykgJiYgIWRlZmluZWQoX19hYXJj aDY0X18pCisgICAgIGNhc2UgX19OUl92Zm9yazoKK0BAIC01NDUsNiArNTUwLDkgQEAgYm9vbCBT eXNjYWxsU2V0czo6SXNBbGxvd2VkQWRkcmVzc1NwYWNlQQorICAgICBjYXNlIF9fTlJfbWxvY2s6 CisgICAgIGNhc2UgX19OUl9tdW5sb2NrOgorICAgICBjYXNlIF9fTlJfbXVubWFwOgorKyNpZiAh ZGVmaW5lZChfX0dMSUJDX18pCisrICAgIGNhc2UgX19OUl9tcmVtYXA6CisrI2VuZGlmCisgICAg ICAgcmV0dXJuIHRydWU7CisgICAgIGNhc2UgX19OUl9tYWR2aXNlOgorICAgICBjYXNlIF9fTlJf bWluY29yZToKK0BAIC01NjIsNyArNTcwLDkgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2Vk QWRkcmVzc1NwYWNlQQorICAgICBjYXNlIF9fTlJfbW9kaWZ5X2xkdDoKKyAjZW5kaWYKKyAgICAg Y2FzZSBfX05SX21wcm90ZWN0OgorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykKKyAgICAgY2FzZSBf X05SX21yZW1hcDoKKysjZW5kaWYKKyAgICAgY2FzZSBfX05SX21zeW5jOgorICAgICBjYXNlIF9f TlJfbXVubG9ja2FsbDoKKyAgICAgY2FzZSBfX05SX3JlYWRhaGVhZDoKKy0tLSBhL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS9zYW5kYm94L3BvbGljeS9saW51eC9icGZfcmVuZGVyZXJfcG9saWN5X2xp bnV4LmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9wb2xpY3kvbGludXgv YnBmX3JlbmRlcmVyX3BvbGljeV9saW51eC5jYworQEAgLTk3LDExICs5NywxOCBAQCBSZXN1bHRF eHByIFJlbmRlcmVyUHJvY2Vzc1BvbGljeTo6RXZhbHVhCisgICAgIGNhc2UgX19OUl9zeXNpbmZv OgorICAgICBjYXNlIF9fTlJfdGltZXM6CisgICAgIGNhc2UgX19OUl91bmFtZToKKysjaWYgIWRl ZmluZWQoX19HTElCQ19fKQorKyAgICBjYXNlIF9fTlJfc2NoZWRfZ2V0cGFyYW06CisrICAgIGNh c2UgX19OUl9zY2hlZF9nZXRzY2hlZHVsZXI6CisrICAgIGNhc2UgX19OUl9zY2hlZF9zZXRzY2hl ZHVsZXI6CisrI2VuZGlmCisgICAgICAgcmV0dXJuIEFsbG93KCk7CisgICAgIGNhc2UgX19OUl9z Y2hlZF9nZXRhZmZpbml0eToKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pCisgICAgIGNhc2UgX19O Ul9zY2hlZF9nZXRwYXJhbToKKyAgICAgY2FzZSBfX05SX3NjaGVkX2dldHNjaGVkdWxlcjoKKyAg ICAgY2FzZSBfX05SX3NjaGVkX3NldHNjaGVkdWxlcjoKKysjZW5kaWYKKyAgICAgICByZXR1cm4g UmVzdHJpY3RTY2hlZFRhcmdldChHZXRQb2xpY3lQaWQoKSwgc3lzbm8pOworICAgICBjYXNlIF9f TlJfcHJsaW1pdDY0OgorICAgICAgIC8vIFNlZSBjcmJ1Zy5jb20vNjYyNDUwIGFuZCBzZXRybGlt aXQgY29tbWVudCBhYm92ZS4KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRj aGVzLzAyMDYtY2hyb21pdW0tbXVzbC1kZWZhdWx0LXN0YWNrc2l6ZS5wYXRjaCBiL3NyY3BrZ3Mv cXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDYtY2hyb21pdW0tbXVzbC1kZWZhdWx0LXN0YWNrc2l6 ZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmJjMDc0OTVi ODE0NAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAy MDYtY2hyb21pdW0tbXVzbC1kZWZhdWx0LXN0YWNrc2l6ZS5wYXRjaApAQCAtMCwwICsxLDE1IEBA CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vYmFzZS90aHJlYWRpbmcvcGxhdGZvcm1fdGhy ZWFkX2xpbnV4LmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vYmFzZS90aHJlYWRpbmcv cGxhdGZvcm1fdGhyZWFkX2xpbnV4LmNjCitAQCAtNDM5LDcgKzQzOSwxMiBAQCB2b2lkIFRlcm1p bmF0ZU9uVGhyZWFkKCkge30KKyAKKyBzaXplX3QgR2V0RGVmYXVsdFRocmVhZFN0YWNrU2l6ZShj b25zdCBwdGhyZWFkX2F0dHJfdCYgYXR0cmlidXRlcykgeworICNpZiAhZGVmaW5lZChUSFJFQURf U0FOSVRJWkVSKQorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykKKyAgIHJldHVybiAwOworKyNlbHNl IC8vIGRlZmluZWQoX19HTElCQ19fKQorKyAgLy8gRm9yIE11c2wgbGliYyB0cnkgd2l0aCBhIGRl ZmF1bHQgc3RhY2sgc2l6ZSBvZiAyIE1pQgorKyAgcmV0dXJuIDIgKiAxMDI0ICogMTAyNDsKKysj ZW5kaWYgLy8gIWRlZmluZWQoX19HTElCQ19fKQorICNlbHNlCisgICAvLyBUaHJlYWRTYW5pdGl6 ZXIgYmxvYXRzIHRoZSBzdGFjayBoZWF2aWx5LiBFdmlkZW5jZSBoYXMgYmVlbiB0aGF0IHRoZQor ICAgLy8gZGVmYXVsdCBzdGFjayBzaXplIGlzbid0IGVub3VnaCBmb3Igc29tZSBicm93c2VyIHRl c3RzLgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIwNy1jaHJv bWl1bS1tdXNsLWNyb3NzLW5vLWFzbV9wdHJhY2VfaC5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVu Z2luZS9wYXRjaGVzLzAyMDctY2hyb21pdW0tbXVzbC1jcm9zcy1uby1hc21fcHRyYWNlX2gucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4zY2YxMzI5MDhhZjQK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjA3LWNo cm9taXVtLW11c2wtY3Jvc3Mtbm8tYXNtX3B0cmFjZV9oLnBhdGNoCkBAIC0wLDAgKzEsMzAgQEAK Ky0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3Bh ZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9wdHJhY2VfZHVtcGVyLmNj CisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfcHRyYWNlX2R1bXBlci5j YworQEAgLTM4LDcgKzM4LDEyIEBACisgCisgI2luY2x1ZGUgImNsaWVudC9saW51eC9taW5pZHVt cF93cml0ZXIvbGludXhfcHRyYWNlX2R1bXBlci5oIgorIAorKyNpZiBkZWZpbmVkKF9fR0xJQkNf XykKKyAjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorKyNlbHNlCisrLyogRm9yIGFybSotbXVzbCB0 aGlzIGRlZmluaXRpb24gaXMgbWlzc2luZyAqLworKyNkZWZpbmUgQVJNX3NwIHVyZWdzWzEzXQor KyNlbmRpZgorICNpbmNsdWRlIDxhc3NlcnQuaD4KKyAjaW5jbHVkZSA8ZXJybm8uaD4KKyAjaW5j bHVkZSA8ZmNudGwuaD4KKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9i cmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9j b3JlX2R1bXBlci5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Jy ZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2Nv cmVfZHVtcGVyLmNjCitAQCAtMzIsNyArMzIsMTIgQEAKKyAKKyAjaW5jbHVkZSAiY2xpZW50L2xp bnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9jb3JlX2R1bXBlci5oIgorIAorKyNpZiBkZWZpbmVk KF9fR0xJQkNfXykKKyAjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorKyNlbHNlCisrLyogRm9yIGFy bSotbXVzbCB0aGlzIGRlZmluaXRpb24gaXMgbWlzc2luZyAqLworKyNkZWZpbmUgQVJNX3NwIHVy ZWdzWzEzXQorKyNlbmRpZgorICNpbmNsdWRlIDxhc3NlcnQuaD4KKyAjaW5jbHVkZSA8ZWxmLmg+ CisgI2luY2x1ZGUgPHN0ZGlvLmg+CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUv cGF0Y2hlcy8wMjA4LWNocm9taXVtLW11c2wtZXhlY2luZm8ucGF0Y2ggYi9zcmNwa2dzL3F0Ni13 ZWJlbmdpbmUvcGF0Y2hlcy8wMjA4LWNocm9taXVtLW11c2wtZXhlY2luZm8ucGF0Y2gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi45ZjNiOTY0Njc2YjMKLS0tIC9kZXYv bnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjA4LWNocm9taXVtLW11 c2wtZXhlY2luZm8ucGF0Y2gKQEAgLTAsMCArMSwxMjUgQEAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS9iYXNlL2RlYnVnL3N0YWNrX3RyYWNlLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hy b21pdW0vYmFzZS9kZWJ1Zy9zdGFja190cmFjZS5jYworQEAgLTI1Miw3ICsyNTIsOSBAQCB2b2lk IFN0YWNrVHJhY2U6OlByaW50KCkgY29uc3QgeworIH0KKyAKKyB2b2lkIFN0YWNrVHJhY2U6Ok91 dHB1dFRvU3RyZWFtKHN0ZDo6b3N0cmVhbSogb3MpIGNvbnN0IHsKKysjaWYgZGVmaW5lZChfX0dM SUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisgICBPdXRwdXRUb1N0cmVhbVdpdGhQcmVmaXgob3Ms IG51bGxwdHIpOworKyNlbmRpZgorIH0KKyAKKyBzdGQ6OnN0cmluZyBTdGFja1RyYWNlOjpUb1N0 cmluZygpIGNvbnN0IHsKK0BAIC0yNjAsNyArMjYyLDcgQEAgc3RkOjpzdHJpbmcgU3RhY2tUcmFj ZTo6VG9TdHJpbmcoKSBjb25zdAorIH0KKyBzdGQ6OnN0cmluZyBTdGFja1RyYWNlOjpUb1N0cmlu Z1dpdGhQcmVmaXgoY29uc3QgY2hhciogcHJlZml4X3N0cmluZykgY29uc3QgeworICAgc3RkOjpz dHJpbmdzdHJlYW0gc3RyZWFtOworLSNpZiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5l ZChfQUlYKQorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKyAgIE91 dHB1dFRvU3RyZWFtV2l0aFByZWZpeCgmc3RyZWFtLCBwcmVmaXhfc3RyaW5nKTsKKyAjZW5kaWYK KyAgIHJldHVybiBzdHJlYW0uc3RyKCk7CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vYmFz ZS9kZWJ1Zy9zdGFja190cmFjZV9wb3NpeC5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVt L2Jhc2UvZGVidWcvc3RhY2tfdHJhY2VfcG9zaXguY2MKK0BAIC0yNyw3ICsyNyw3IEBACisgI2lm ICFkZWZpbmVkKFVTRV9TWU1CT0xJWkUpCisgI2luY2x1ZGUgPGN4eGFiaS5oPgorICNlbmRpZgor LSNpZiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorKyNpZiBkZWZpbmVk KF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKyAjaW5jbHVkZSA8ZXhlY2luZm8uaD4KKyAj ZW5kaWYKKyAKK0BAIC04OSw3ICs4OSw3IEBAIHZvaWQgRGVtYW5nbGVTeW1ib2xzKHN0ZDo6c3Ry aW5nKiB0ZXh0KQorICAgLy8gTm90ZTogY29kZSBpbiB0aGlzIGZ1bmN0aW9uIGlzIE5PVCBhc3lu Yy1zaWduYWwgc2FmZSAoc3RkOjpzdHJpbmcgdXNlcworICAgLy8gbWFsbG9jIGludGVybmFsbHkp LgorIAorLSNpZiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorKyNpZiBk ZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKyAgIHN0ZDo6c3RyaW5nOjpzaXpl X3R5cGUgc2VhcmNoX2Zyb20gPSAwOworICAgd2hpbGUgKHNlYXJjaF9mcm9tIDwgdGV4dC0+c2l6 ZSgpKSB7CisgICAgIC8vIExvb2sgZm9yIHRoZSBzdGFydCBvZiBhIG1hbmdsZWQgc3ltYm9sLCBm cm9tIHNlYXJjaF9mcm9tLgorQEAgLTEyNCw3ICsxMjQsNyBAQCB2b2lkIERlbWFuZ2xlU3ltYm9s cyhzdGQ6OnN0cmluZyogdGV4dCkKKyAgICAgICBzZWFyY2hfZnJvbSA9IG1hbmdsZWRfc3RhcnQg KyAyOworICAgICB9CisgICB9CistI2VuZGlmICAvLyAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAh ZGVmaW5lZChfQUlYKQorKyNlbmRpZiAgLy8gIWRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5l ZChfQUlYKQorIH0KKyAjZW5kaWYgIC8vICFkZWZpbmVkKFVTRV9TWU1CT0xJWkUpCisgCitAQCAt MTM2LDcgKzEzNiw3IEBAIGNsYXNzIEJhY2t0cmFjZU91dHB1dEhhbmRsZXIgeworICAgdmlydHVh bCB+QmFja3RyYWNlT3V0cHV0SGFuZGxlcigpID0gZGVmYXVsdDsKKyB9OworIAorLSNpZiAhZGVm aW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorKyNpZiBkZWZpbmVkKF9fR0xJQkNf XykgJiYgIWRlZmluZWQoX0FJWCkKKyB2b2lkIE91dHB1dFBvaW50ZXIodm9pZCogcG9pbnRlciwg QmFja3RyYWNlT3V0cHV0SGFuZGxlciogaGFuZGxlcikgeworICAgLy8gVGhpcyBzaG91bGQgYmUg bW9yZSB0aGFuIGVub3VnaCB0byBzdG9yZSBhIDY0LWJpdCBudW1iZXIgaW4gaGV4OgorICAgLy8g MTYgaGV4IGRpZ2l0cyArIDEgZm9yIG51bGwtdGVybWluYXRvci4KK0BAIC0yMTksNyArMjE5LDcg QEAgdm9pZCBQcm9jZXNzQmFja3RyYWNlKHZvaWQqIGNvbnN0KiB0cmFjZQorICAgfQorICNlbmRp ZiAgLy8gZGVmaW5lZChVU0VfU1lNQk9MSVpFKQorIH0KKy0jZW5kaWYgIC8vICFkZWZpbmVkKF9f VUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisrI2VuZGlmICAvLyAhZGVmaW5lZChfX0dMSUJD X18pICYmICFkZWZpbmVkKF9BSVgpCisgCisgdm9pZCBQcmludFRvU3RkZXJyKGNvbnN0IGNoYXIq IG91dHB1dCkgeworICAgLy8gTk9URTogVGhpcyBjb2RlIE1VU1QgYmUgYXN5bmMtc2lnbmFsIHNh ZmUgKGl0J3MgdXNlZCBieSBpbi1wcm9jZXNzCitAQCAtODM5LDcgKzgzOSw3IEBAIHNpemVfdCBD b2xsZWN0U3RhY2tUcmFjZSh2b2lkKiogdHJhY2UsIHMKKyAgIC8vIElmIHdlIGRvIG5vdCBoYXZl IHVud2luZCB0YWJsZXMsIHRoZW4gdHJ5IHRyYWNpbmcgdXNpbmcgZnJhbWUgcG9pbnRlcnMuCisg ICByZXR1cm4gYmFzZTo6ZGVidWc6OlRyYWNlU3RhY2tGcmFtZVBvaW50ZXJzKGNvbnN0X2Nhc3Q8 Y29uc3Qgdm9pZCoqPih0cmFjZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvdW50LCAwKTsKKy0jZWxpZiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAh ZGVmaW5lZChfQUlYKQorKyNlbGlmIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfQUlY KQorICAgLy8gVGhvdWdoIHRoZSBiYWNrdHJhY2UgQVBJIG1hbiBwYWdlIGRvZXMgbm90IGxpc3Qg YW55IHBvc3NpYmxlIG5lZ2F0aXZlCisgICAvLyByZXR1cm4gdmFsdWVzLCB3ZSB0YWtlIG5vIGNo YW5jZS4KKyAgIHJldHVybiBiYXNlOjpzYXR1cmF0ZWRfY2FzdDxzaXplX3Q+KGJhY2t0cmFjZSh0 cmFjZSwgY291bnQpKTsKK0BAIC04NTIsMTMgKzg1MiwxMyBAQCB2b2lkIFN0YWNrVHJhY2U6OlBy aW50V2l0aFByZWZpeChjb25zdCBjCisgLy8gTk9URTogVGhpcyBjb2RlIE1VU1QgYmUgYXN5bmMt c2lnbmFsIHNhZmUgKGl0J3MgdXNlZCBieSBpbi1wcm9jZXNzCisgLy8gc3RhY2sgZHVtcGluZyBz aWduYWwgaGFuZGxlcikuIE5PIG1hbGxvYyBvciBzdGRpbyBpcyBhbGxvd2VkIGhlcmUuCisgCist I2lmICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisrI2lmIGRlZmluZWQo X19HTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorICAgUHJpbnRCYWNrdHJhY2VPdXRwdXRIYW5k bGVyIGhhbmRsZXI7CisgICBQcm9jZXNzQmFja3RyYWNlKHRyYWNlXywgY291bnRfLCBwcmVmaXhf c3RyaW5nLCAmaGFuZGxlcik7CisgI2VuZGlmCisgfQorIAorLSNpZiAhZGVmaW5lZChfX1VDTElC Q19fKSAmJiAhZGVmaW5lZChfQUlYKQorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmlu ZWQoX0FJWCkKKyB2b2lkIFN0YWNrVHJhY2U6Ok91dHB1dFRvU3RyZWFtV2l0aFByZWZpeChzdGQ6 Om9zdHJlYW0qIG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IGNoYXIqIHByZWZpeF9zdHJpbmcpIGNvbnN0IHsKKyAgIFN0cmVhbUJhY2t0cmFjZU91 dHB1dEhhbmRsZXIgaGFuZGxlcihvcyk7CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vYmFz ZS9sb2dnaW5nLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vYmFzZS9sb2dnaW5nLmNj CitAQCAtNTgyLDcgKzU4Miw3IEBAIExvZ01lc3NhZ2U6OkxvZ01lc3NhZ2UoY29uc3QgY2hhciog ZmlsZSwKKyAKKyBMb2dNZXNzYWdlOjp+TG9nTWVzc2FnZSgpIHsKKyAgIHNpemVfdCBzdGFja19z dGFydCA9IHN0cmVhbV8udGVsbHAoKTsKKy0jaWYgIWRlZmluZWQoT0ZGSUNJQUxfQlVJTEQpICYm ICFkZWZpbmVkKE9TX05BQ0wpICYmICFkZWZpbmVkKF9fVUNMSUJDX18pICYmIFwKKysjaWYgIWRl ZmluZWQoT0ZGSUNJQUxfQlVJTEQpICYmICFkZWZpbmVkKE9TX05BQ0wpICYmIGRlZmluZWQoX19H TElCQ19fKSAmJiBcCisgICAgICFkZWZpbmVkKE9TX0FJWCkKKyAgIGlmIChzZXZlcml0eV8gPT0g TE9HR0lOR19GQVRBTCAmJiAhYmFzZTo6ZGVidWc6OkJlaW5nRGVidWdnZWQoKSkgeworICAgICAv LyBJbmNsdWRlIGEgc3RhY2sgdHJhY2Ugb24gYSBmYXRhbCwgdW5sZXNzIGEgZGVidWdnZXIgaXMg YXR0YWNoZWQuCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL2NvZGVnZW4vZXh0 ZXJuYWwtcmVmZXJlbmNlLXRhYmxlLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgv c3JjL2NvZGVnZW4vZXh0ZXJuYWwtcmVmZXJlbmNlLXRhYmxlLmNjCitAQCAtMTIsNyArMTIsOSBA QAorIAorICNpZiBkZWZpbmVkKERFQlVHKSAmJiBkZWZpbmVkKFY4X09TX0xJTlVYKSAmJiAhZGVm aW5lZChWOF9PU19BTkRST0lEKQorICNkZWZpbmUgU1lNQk9MSVpFX0ZVTkNUSU9OCisrI2lmIGRl ZmluZWQoX19HTElCQ19fKQorICNpbmNsdWRlIDxleGVjaW5mby5oPgorKyNlbmRpZgorIAorICNp bmNsdWRlIDx2ZWN0b3I+CisgCitAQCAtMTAzLDcgKzEwNSw3IEBAIHZvaWQgRXh0ZXJuYWxSZWZl cmVuY2VUYWJsZTo6SW5pdChJc29sYXQKKyB9CisgCisgY29uc3QgY2hhciogRXh0ZXJuYWxSZWZl cmVuY2VUYWJsZTo6UmVzb2x2ZVN5bWJvbCh2b2lkKiBhZGRyZXNzKSB7CistI2lmZGVmIFNZTUJP TElaRV9GVU5DVElPTgorKyNpZiBkZWZpbmVkKFNZTUJPTElaRV9GVU5DVElPTikgJiYgZGVmaW5l ZChfX0dMSUJDX18pCisgICBjaGFyKiogbmFtZXMgPSBiYWNrdHJhY2Vfc3ltYm9scygmYWRkcmVz cywgMSk7CisgICBjb25zdCBjaGFyKiBuYW1lID0gbmFtZXNbMF07CisgICAvLyBUaGUgYXJyYXkg b2YgbmFtZXMgaXMgbWFsbG9jJ2VkLiBIb3dldmVyLCBlYWNoIG5hbWUgc3RyaW5nIGlzIHN0YXRp YwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIwOS1jaHJvbWl1 bS1tdXNsLXRocmVhZC1zdGFja3NpemUucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0 Y2hlcy8wMjA5LWNocm9taXVtLW11c2wtdGhyZWFkLXN0YWNrc2l6ZS5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjRiNzYwYTQyOGIyNQotLS0gL2Rldi9udWxs CisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDktY2hyb21pdW0tbXVzbC10 aHJlYWQtc3RhY2tzaXplLnBhdGNoCkBAIC0wLDAgKzEsMjIgQEAKKy0tLSBhL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS9wcGFwaS91dGlsaXR5L3RocmVhZGluZy9zaW1wbGVfdGhyZWFkLmNjCisrKysg Yi9zcmMvM3JkcGFydHkvY2hyb21pdW0vcHBhcGkvdXRpbGl0eS90aHJlYWRpbmcvc2ltcGxlX3Ro cmVhZC5jYworQEAgLTEzLDcgKzEzLDcgQEAgbmFtZXNwYWNlIHBwIHsKKyBuYW1lc3BhY2Ugewor IAorIC8vIFVzZSAyTUIgZGVmYXVsdCBzdGFjayBzaXplIGZvciBOYXRpdmUgQ2xpZW50LCBvdGhl cndpc2UgdXNlIHN5c3RlbSBkZWZhdWx0LgorLSNpZiBkZWZpbmVkKF9fbmF0aXZlX2NsaWVudF9f KQorKyNpZiBkZWZpbmVkKF9fbmF0aXZlX2NsaWVudF9fKSB8fCAhZGVmaW5lZChfX0dMSUJDX18p CisgY29uc3Qgc2l6ZV90IGtEZWZhdWx0U3RhY2tTaXplID0gMiAqIDEwMjQgKiAxMDI0OworICNl bHNlCisgY29uc3Qgc2l6ZV90IGtEZWZhdWx0U3RhY2tTaXplID0gMDsKKy0tLSBhL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS92OC9zcmMvYmFzZS9wbGF0Zm9ybS9wbGF0Zm9ybS1wb3NpeC5jYworKysr IGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4L3NyYy9iYXNlL3BsYXRmb3JtL3BsYXRmb3JtLXBv c2l4LmNjCitAQCAtODgzLDcgKzg4Myw3IEBAIGJvb2wgVGhyZWFkOjpTdGFydCgpIHsKKyAjaWYg VjhfT1NfTUFDT1NYCisgICAgIC8vIERlZmF1bHQgb24gTWFjIE9TIFggaXMgNTEya0IgLS0gYnVt cCB1cCB0byAxTUIKKyAgICAgc3RhY2tfc2l6ZSA9IDEgKiAxMDI0ICogMTAyNDsKKy0jZWxpZiBW OF9PU19BSVgKKysjZWxpZiBWOF9PU19BSVggfHwgIWRlZmluZWQoX19HTElCQ19fKQorICAgICAv LyBEZWZhdWx0IG9uIEFJWCBpcyA5NmtCIC0tIGJ1bXAgdXAgdG8gMk1CCisgICAgIHN0YWNrX3Np emUgPSAyICogMTAyNCAqIDEwMjQ7CisgI2VuZGlmCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13 ZWJlbmdpbmUvcGF0Y2hlcy8wMjEwLWNocm9taXVtLW11c2wtbXNndmVjLXB1c2hfYmFjay5wYXRj aCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMTAtY2hyb21pdW0tbXVzbC1tc2d2 ZWMtcHVzaF9iYWNrLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MC4uOTA1ZGFhMjIzNzAwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5l L3BhdGNoZXMvMDIxMC1jaHJvbWl1bS1tdXNsLW1zZ3ZlYy1wdXNoX2JhY2sucGF0Y2gKQEAgLTAs MCArMSwxNCBAQAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL25ldC9zb2NrZXQvdWRwX3Nv Y2tldF9wb3NpeC5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL25ldC9zb2NrZXQvdWRw X3NvY2tldF9wb3NpeC5jYworQEAgLTExNjIsNyArMTE2MiwxMSBAQCBTZW5kUmVzdWx0IFVEUFNv Y2tldFBvc2l4U2VuZGVyOjpJbnRlcm5hCisgICAgIG1zZ19pb3YtPnB1c2hfYmFjayh7Y29uc3Rf Y2FzdDxjaGFyKj4oYnVmZmVyLT5kYXRhKCkpLCBidWZmZXItPmxlbmd0aCgpfSk7CisgICBtc2d2 ZWMtPnJlc2VydmUoYnVmZmVycy5zaXplKCkpOworICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCBi dWZmZXJzLnNpemUoKTsgaisrKQorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykKKyAgICAgbXNndmVj LT5wdXNoX2JhY2soe3tudWxscHRyLCAwLCAmbXNnX2lvdltqXSwgMSwgbnVsbHB0ciwgMCwgMH0s IDB9KTsKKysjZWxzZQorKyAgICBtc2d2ZWMtPnB1c2hfYmFjayh7e251bGxwdHIsIDAsICZtc2df aW92W2pdLCAxLCAwLCAwLCAwfSwgMH0pOworKyNlbmRpZgorICAgaW50IHJlc3VsdCA9IEhBTkRM RV9FSU5UUihTZW5kbW1zZyhmZCwgJm1zZ3ZlY1swXSwgYnVmZmVycy5zaXplKCksIDApKTsKKyAg IFNlbmRSZXN1bHQgc2VuZF9yZXN1bHQoMCwgMCwgc3RkOjptb3ZlKGJ1ZmZlcnMpKTsKKyAgIGlm IChyZXN1bHQgPCAwKSB7CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hl cy8wMjExLWNocm9taXVtLW11c2wtY2Fub25pY2FsaXplLWZpbGUtbmFtZS1tdXNsLnBhdGNoIGIv c3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIxMS1jaHJvbWl1bS1tdXNsLWNhbm9uaWNh bGl6ZS1maWxlLW5hbWUtbXVzbC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMDAuLmQ0M2U2YmQ0ODhiYwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdl YmVuZ2luZS9wYXRjaGVzLzAyMTEtY2hyb21pdW0tbXVzbC1jYW5vbmljYWxpemUtZmlsZS1uYW1l LW11c2wucGF0Y2gKQEAgLTAsMCArMSwxMSBAQAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3RoaXJkX3BhcnR5L25hc20vbmFzbWxpYi9yZWFscGF0aC5jCisrKysgYi9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdGhpcmRfcGFydHkvbmFzbS9uYXNtbGliL3JlYWxwYXRoLmMKK0BAIC01NSw3ICs1 NSw3IEBACisgICovCisgY2hhciAqbmFzbV9yZWFscGF0aChjb25zdCBjaGFyICpyZWxfcGF0aCkK KyB7CistICAgIGNoYXIgKnJwID0gY2Fub25pY2FsaXplX2ZpbGVfbmFtZShyZWxfcGF0aCk7Cisr ICAgIGNoYXIgKnJwID0gcmVhbHBhdGgocmVsX3BhdGgsIE5VTEwpOworICAgICByZXR1cm4gcnAg PyBycCA6IG5hc21fc3RyZHVwKHJlbF9wYXRoKTsKKyB9CisgCmRpZmYgLS1naXQgYS9zcmNwa2dz L3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjEyLWNocm9taXVtLW11c2wtbm8tZ2V0Y29udGV4dC5w YXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMTItY2hyb21pdW0tbXVzbC1u by1nZXRjb250ZXh0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MC4uNTc1NWYxYjQ1YTdkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5l L3BhdGNoZXMvMDIxMi1jaHJvbWl1bS1tdXNsLW5vLWdldGNvbnRleHQucGF0Y2gKQEAgLTAsMCAr MSwyOSBAQAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFk L2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5jYwor KysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFk L3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5jYworQEAgLTQ4OSw4 ICs0ODksMTAgQEAgYm9vbCBFeGNlcHRpb25IYW5kbGVyOjpTaW11bGF0ZVNpZ25hbERlbAorICAg Ly8gRXhjZXB0aW9uSGFuZGxlcjo6SGFuZGxlU2lnbmFsKCkuCisgICBzaWdpbmZvLnNpX2NvZGUg PSBTSV9VU0VSOworICAgc2lnaW5mby5zaV9waWQgPSBnZXRwaWQoKTsKKy0gIHVjb250ZXh0X3Qg Y29udGV4dDsKKysgIHVjb250ZXh0X3QgY29udGV4dCA9IHsgMCB9OworKyNpZiBkZWZpbmVkKF9f R0xJQkNfXykKKyAgIGdldGNvbnRleHQoJmNvbnRleHQpOworKyNlbmRpZgorICAgcmV0dXJuIEhh bmRsZVNpZ25hbChzaWcsICZzaWdpbmZvLCAmY29udGV4dCk7CisgfQorIAorQEAgLTY3NSw5ICs2 NzcsMTQgQEAgYm9vbCBFeGNlcHRpb25IYW5kbGVyOjpXcml0ZU1pbmlkdW1wKCkgeworICAgc3lz X3ByY3RsKFBSX1NFVF9EVU1QQUJMRSwgMSwgMCwgMCwgMCk7CisgCisgICBDcmFzaENvbnRleHQg Y29udGV4dDsKKysKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pCisgICBpbnQgZ2V0Y29udGV4dF9y ZXN1bHQgPSBnZXRjb250ZXh0KCZjb250ZXh0LmNvbnRleHQpOworICAgaWYgKGdldGNvbnRleHRf cmVzdWx0KQorICAgICByZXR1cm4gZmFsc2U7CisrI2Vsc2UKKysgIHJldHVybiBmYWxzZTsKKysj ZW5kaWYKKyAKKyAjaWYgZGVmaW5lZChfX2kzODZfXykKKyAgIC8vIEluIENQVUZpbGxGcm9tVUNv bnRleHQgaW4gbWluaWR1bXB3cml0ZXIuY2MgdGhlIHN0YWNrIHBvaW50ZXIgaXMgcmV0cmlldmVk CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjEzLWNocm9taXVt LW11c2wtY3Jhc2hwYWQucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjEz LWNocm9taXVtLW11c2wtY3Jhc2hwYWQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwLi40ZDQ5OTk3ZWQ0ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0 Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjEzLWNocm9taXVtLW11c2wtY3Jhc2hwYWQucGF0Y2gKQEAg LTAsMCArMSwyMiBAQAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Ny YXNocGFkL2NyYXNocGFkL2NvbXBhdC9saW51eC9zeXMvcHRyYWNlLmgKKysrKyBiL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9jb21wYXQvbGludXgv c3lzL3B0cmFjZS5oCitAQCAtMTcsNyArMTcsOSBAQAorIAorICNpbmNsdWRlX25leHQgPHN5cy9w dHJhY2UuaD4KKyAKKysjaWZkZWYgX19HTElCQ19fCisgI2luY2x1ZGUgPHN5cy9jZGVmcy5oPgor KyNlbmRpZgorIAorIC8vIGh0dHBzOi8vc291cmNld2FyZS5vcmcvYnVnemlsbGEvc2hvd19idWcu Y2dpP2lkPTIyNDMzCisgI2lmICFkZWZpbmVkKFBUUkFDRV9HRVRfVEhSRUFEX0FSRUEpICYmICFk ZWZpbmVkKFBUX0dFVF9USFJFQURfQVJFQSkgJiYgXAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvcHRyYWNlci5jYwor KysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L3V0aWwvbGludXgvcHRyYWNlci5jYworQEAgLTI2LDYgKzI2LDcgQEAKKyAKKyAjaWYgZGVmaW5l ZChBUkNIX0NQVV9YODZfRkFNSUxZKQorICNpbmNsdWRlIDxhc20vbGR0Lmg+CisrI2luY2x1ZGUg PGFzbS9wdHJhY2UtYWJpLmg+CisgI2VuZGlmCisgCisgbmFtZXNwYWNlIGNyYXNocGFkIHsKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMTQtY2hyb21pdW0tbXVz bC1maXhlcy5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMTQtY2hyb21p dW0tbXVzbC1maXhlcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MDAuLjU1YjI2N2VkMTcxNAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2lu ZS9wYXRjaGVzLzAyMTQtY2hyb21pdW0tbXVzbC1maXhlcy5wYXRjaApAQCAtMCwwICsxLDEwOCBA QAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc3VpZC9wcm9jZXNz X3V0aWwuaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc3VpZC9w cm9jZXNzX3V0aWwuaAorQEAgLTEyLDYgKzEyLDE1IEBACisgI2luY2x1ZGUgPHN0ZGludC5oPgor ICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyAKKysjaWYgIWRlZmluZWQoX19HTElCQ19fKSAmJiAh ZGVmaW5lZChURU1QX0ZBSUxVUkVfUkVUUlkpCisrIyBkZWZpbmUgVEVNUF9GQUlMVVJFX1JFVFJZ KGV4cHJlc3Npb24pIFwKKysJKF9fZXh0ZW5zaW9uX18JCQlcCisrCSAoeyBsb25nIGludCBfX3Jl c3VsdDsJCVwKKysJICBkbyBfX3Jlc3VsdCA9IChsb25nIGludCkgKGV4cHJlc3Npb24pOyBcCisr CSAgd2hpbGUgKF9fcmVzdWx0ID09IC0xTCAmJiBlcnJubyA9PSBFSU5UUik7IFwKKysJICBfX3Jl c3VsdDsgfSkpCisrI2VuZGlmCisrCisgLy8gVGhpcyBhZGp1c3RzIC9wcm9jL3Byb2Nlc3Mvb29t X3Njb3JlX2FkaiBzbyB0aGUgTGludXggT09NIGtpbGxlcgorIC8vIHdpbGwgcHJlZmVyIGNlcnRh aW4gcHJvY2VzcyB0eXBlcyBvdmVyIG90aGVycy4gVGhlIHJhbmdlIGZvciB0aGUKKyAvLyBhZGp1 c3RtZW50IGlzIFstMTAwMCwgMTAwMF0sIHdpdGggWzAsIDEwMDBdIGJlaW5nIHVzZXIgYWNjZXNz aWJsZS4KKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zZXJ2aWNlcy9kZXZpY2Uvc2VyaWFs L3NlcmlhbF9pb19oYW5kbGVyX3Bvc2l4LmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0v c2VydmljZXMvZGV2aWNlL3NlcmlhbC9zZXJpYWxfaW9faGFuZGxlcl9wb3NpeC5jYworQEAgLTYs NiArNiw3IEBACisgCisgI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgorICNpbmNsdWRlIDx0ZXJtaW9z Lmg+CisrI2luY2x1ZGUgPGFzbS1nZW5lcmljL2lvY3Rscy5oPgorIAorICNpbmNsdWRlIDxhbGdv cml0aG0+CisgI2luY2x1ZGUgPHV0aWxpdHk+CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0v dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRl cl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90 aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVy X2NvbW1vbi91Y29udGV4dF9yZWFkZXIuaAorQEAgLTM4LDYgKzM4LDEwIEBACisgI2luY2x1ZGUg ImNvbW1vbi9tZW1vcnlfYWxsb2NhdG9yLmgiCisgI2luY2x1ZGUgImdvb2dsZV9icmVha3BhZC9j b21tb24vbWluaWR1bXBfZm9ybWF0LmgiCisgCisrI2lmbmRlZiBfX0dMSUJDX18KKysjZGVmaW5l IF9saWJjX2Zwc3RhdGUgX2Zwc3RhdGUKKysjZW5kaWYKKysKKyBuYW1lc3BhY2UgZ29vZ2xlX2Jy ZWFrcGFkIHsKKyAKKyAvLyBXcmFwcyBwbGF0Zm9ybS1kZXBlbmRlbnQgaW1wbGVtZW50YXRpb25z IG9mIGFjY2Vzc29ycyB0byB1Y29udGV4dF90IHN0cnVjdHMuCistLS0gYS9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdGhpcmRfcGFydHkvZmZtcGVnL2xpYmF2dXRpbC9jcHUuYworKysrIGIvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2ZmbXBlZy9saWJhdnV0aWwvY3B1LmMKK0BAIC00 MSw4ICs0MSwxMCBAQAorICNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KKyAjZW5kaWYKKyAjaW5jbHVk ZSA8c3lzL3R5cGVzLmg+CisrI2lmZGVmIF9fR0xJQkNfXworICNpbmNsdWRlIDxzeXMvc3lzY3Rs Lmg+CisgI2VuZGlmCisrI2VuZGlmCisgI2lmIEhBVkVfVU5JU1REX0gKKyAjaW5jbHVkZSA8dW5p c3RkLmg+CisgI2VuZGlmCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkv cGVyZmV0dG8vaW5jbHVkZS9wZXJmZXR0by9leHQvYmFzZS90aHJlYWRfdXRpbHMuaAorKysrIGIv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3BlcmZldHRvL2luY2x1ZGUvcGVyZmV0 dG8vZXh0L2Jhc2UvdGhyZWFkX3V0aWxzLmgKK0BAIC0yOSw5ICsyOSw3IEBACisgI2luY2x1ZGUg PGFsZ29yaXRobT4KKyAjZW5kaWYKKyAKKy0jaWYgUEVSRkVUVE9fQlVJTERGTEFHKFBFUkZFVFRP X09TX0FORFJPSUQpCisgI2luY2x1ZGUgPHN5cy9wcmN0bC5oPgorLSNlbmRpZgorIAorIC8vIElu dGVybmFsIGltcGxlbWVudGF0aW9uIHV0aWxzIHRoYXQgYXJlbid0IGFzIHdpZGVseSB1c2VmdWwv c3VwcG9ydGVkIGFzCisgLy8gYmFzZS90aHJlYWRfdXRpbHMuaC4KK0BAIC01OCw3ICs1Niw3IEBA IGlubGluZSBib29sIE1heWJlU2V0VGhyZWFkTmFtZShjb25zdCBzdGQKKyAKKyBpbmxpbmUgYm9v bCBHZXRUaHJlYWROYW1lKHN0ZDo6c3RyaW5nJiBvdXRfcmVzdWx0KSB7CisgICBjaGFyIGJ1Zlsx Nl0gPSB7fTsKKy0jaWYgUEVSRkVUVE9fQlVJTERGTEFHKFBFUkZFVFRPX09TX0FORFJPSUQpCisr I2lmICFkZWZpbmVkKF9fR0xJQkNfXykKKyAgIGlmIChwcmN0bChQUl9HRVRfTkFNRSwgYnVmKSAh PSAwKQorICAgICByZXR1cm4gZmFsc2U7CisgI2Vsc2UKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS90aGlyZF9wYXJ0eS9sc3MvbGludXhfc3lzY2FsbF9zdXBwb3J0LmgKKysrKyBiL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9sc3MvbGludXhfc3lzY2FsbF9zdXBwb3J0LmgK K0BAIC0xMzAwLDYgKzEzMDAsMTggQEAgc3RydWN0IGtlcm5lbF9zdGF0ZnMgeworICNpZm5kZWYg X19OUl9mYWxsb2NhdGUKKyAjZGVmaW5lIF9fTlJfZmFsbG9jYXRlICAgICAgICAgIDI4NQorICNl bmRpZgorKworKyNpZiAhZGVmaW5lZChfX0dMSUJDX18pCisrI2lmZGVmIF9fTlJfcHJlYWQKKysj dW5kZWYgX19OUl9wcmVhZAorKyNlbmRpZgorKyNpZmRlZiBfX05SX3B3cml0ZQorKyN1bmRlZiBf X05SX3B3cml0ZQorKyNlbmRpZgorKyNkZWZpbmUgX19OUl9wcmVhZCBfX05SX3ByZWFkNjQKKysj ZGVmaW5lIF9fTlJfcHdyaXRlIF9fTlJfcHdyaXRlNjQKKysjZW5kaWYgLyogIWRlZmluZWQoX19H TElCQ19fKSAqLworKworICNpZm5kZWYgX19OUl9nZXRyYW5kb20KKyAjZGVmaW5lIF9fTlJfZ2V0 cmFuZG9tICAgICAgICAgIDMxOAorICNlbmRpZgorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVt L25ldC9kbnMvZG5zX2NvbmZpZ19zZXJ2aWNlX3Bvc2l4LmNjCisrKysgYi9zcmMvM3JkcGFydHkv Y2hyb21pdW0vbmV0L2Rucy9kbnNfY29uZmlnX3NlcnZpY2VfcG9zaXguY2MKK0BAIC05Myw3ICs5 Myw4IEBAIGFic2w6Om9wdGlvbmFsPERuc0NvbmZpZz4gUmVhZERuc0NvbmZpZygKKyAKKyAgIGFi c2w6Om9wdGlvbmFsPERuc0NvbmZpZz4gZG5zX2NvbmZpZzsKKyAvLyBUT0RPKGZ1Y2hzaWEpOiBV c2UgcmVzX25pbml0KCkgd2hlbiBpdCdzIGltcGxlbWVudGVkIG9uIEZ1Y2hzaWEuCistI2lmIGRl ZmluZWQoT1NfT1BFTkJTRCkgfHwgZGVmaW5lZChPU19GVUNIU0lBKQorKyNpZiBkZWZpbmVkKE9T X09QRU5CU0QpIHx8IGRlZmluZWQoT1NfRlVDSFNJQSkgfHwgXAorKyAgKGRlZmluZWQoT1NfTElO VVgpICYmICFkZWZpbmVkKF9fR0xJQkNfXykpCisgICAvLyBOb3RlOiByZXNfbmluaXQgaW4gZ2xp YmMgYWx3YXlzIHJldHVybnMgMCBhbmQgc2V0cyBSRVNfSU5JVC4KKyAgIC8vIHJlc19pbml0IGJl aGF2ZXMgdGhlIHNhbWUgd2F5LgorICAgbWVtc2V0KCZfcmVzLCAwLCBzaXplb2YoX3JlcykpOwpk aWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIxNS1jaHJvbWl1bS1t dXNsLWNkZWZzLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIxNS1jaHJv bWl1bS1tdXNsLWNkZWZzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwMC4uOWQxZGFlYzI5MTE4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5n aW5lL3BhdGNoZXMvMDIxNS1jaHJvbWl1bS1tdXNsLWNkZWZzLnBhdGNoCkBAIC0wLDAgKzEsMjkg QEAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9saWJzeW5jL3NyYy9p bmNsdWRlL3N5bmMvc3luYy5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFy dHkvbGlic3luYy9zcmMvaW5jbHVkZS9zeW5jL3N5bmMuaAorQEAgLTE5LDEyICsxOSwxMyBAQAor ICNpZm5kZWYgX19TWVNfQ09SRV9TWU5DX0gKKyAjZGVmaW5lIF9fU1lTX0NPUkVfU1lOQ19ICisg CistI2luY2x1ZGUgPHN5cy9jZGVmcy5oPgorICNpbmNsdWRlIDxzdGRpbnQuaD4KKyAKKyAjaW5j bHVkZSA8bGludXgvdHlwZXMuaD4KKyAKKy1fX0JFR0lOX0RFQ0xTCisrI2lmZGVmIF9fY3BsdXNw bHVzCisrZXh0ZXJuICJDIiB7CisrI2VuZGlmCisgCisgc3RydWN0IHN5bmNfbGVnYWN5X21lcmdl X2RhdGEgeworICBpbnQzMl90IGZkMjsKK0BAIC0xNTgsNiArMTU5LDkgQEAgc3RydWN0IHN5bmNf cHRfaW5mbyAqc3luY19wdF9pbmZvKHN0cnVjdAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3Qgc3luY19wdF9pbmZvICppdHIpOworIHZvaWQgc3luY19mZW5jZV9pbmZv X2ZyZWUoc3RydWN0IHN5bmNfZmVuY2VfaW5mb19kYXRhICppbmZvKTsKKyAKKy1fX0VORF9ERUNM UworKyNpZmRlZiBfX2NwbHVzcGx1cworK30KKysjZW5kaWYKKysKKyAKKyAjZW5kaWYgLyogX19T WVNfQ09SRV9TWU5DX0ggKi8KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRj aGVzLzAyMTYtY2hyb21pdW0tbXVzbC1zdGF0LnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5l L3BhdGNoZXMvMDIxNi1jaHJvbWl1bS1tdXNsLXN0YXQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwLi40NTA5YTY5NTdjZDcKLS0tIC9kZXYvbnVsbAorKysgYi9z cmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjE2LWNocm9taXVtLW11c2wtc3RhdC5wYXRj aApAQCAtMCwwICsxLDEyIEBACistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vYmFzZS9maWxl cy9maWxlLmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL2ZpbGVzL2ZpbGUuaAor QEAgLTE5LDcgKzE5LDggQEAKKyAjaW5jbHVkZSAiYnVpbGQvYnVpbGRfY29uZmlnLmgiCisgCisg I2lmIGRlZmluZWQoT1NfQlNEKSB8fCBkZWZpbmVkKE9TX0FQUExFKSB8fCBkZWZpbmVkKE9TX05B Q0wpIHx8IFwKKy0gICAgZGVmaW5lZChPU19GVUNIU0lBKSB8fCAoZGVmaW5lZChPU19BTkRST0lE KSAmJiBfX0FORFJPSURfQVBJX18gPCAyMSkKKysgICAgZGVmaW5lZChPU19GVUNIU0lBKSB8fCAo ZGVmaW5lZChPU19BTkRST0lEKSAmJiBfX0FORFJPSURfQVBJX18gPCAyMSkgfHwgXAorKyAgICAo ZGVmaW5lZChPU19MSU5VWCkgJiYgIWRlZmluZWQoX19HTElCQ19fKSkKKyBzdHJ1Y3Qgc3RhdDsK KyBuYW1lc3BhY2UgYmFzZSB7CisgdHlwZWRlZiBzdHJ1Y3Qgc3RhdCBzdGF0X3dyYXBwZXJfdDsK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMTctY2hyb21pdW0t bXVzbC1yZXNvbHZlci5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMTct Y2hyb21pdW0tbXVzbC1yZXNvbHZlci5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAuLmMzZDdhZmFkOWIxOQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2 LXdlYmVuZ2luZS9wYXRjaGVzLzAyMTctY2hyb21pdW0tbXVzbC1yZXNvbHZlci5wYXRjaApAQCAt MCwwICsxLDc3IEBACistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vbmV0L2Rucy9kbnNfY29u ZmlnX3NlcnZpY2VfbGludXguY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9uZXQvZG5z L2Ruc19jb25maWdfc2VydmljZV9saW51eC5jYworQEAgLTQzMiwxMSArNDMyLDEzIEBAIGNsYXNz IERuc0NvbmZpZ1NlcnZpY2VMaW51eDo6Q29uZmlnUmVhZGUKKyAgICAgYmFzZTo6U2NvcGVkQmxv Y2tpbmdDYWxsIHNjb3BlZF9ibG9ja2luZ19jYWxsKAorICAgICAgICAgRlJPTV9IRVJFLCBiYXNl OjpCbG9ja2luZ1R5cGU6Ok1BWV9CTE9DSyk7CisgCisrI2lmIGRlZmluZWQoX19HTElCQ19fKQor ICAgICBzdGQ6OnVuaXF1ZV9wdHI8c3RydWN0IF9fcmVzX3N0YXRlPiByZXMgPSByZXNvbHZfcmVh ZGVyXy0+R2V0UmVzU3RhdGUoKTsKKyAgICAgaWYgKHJlcykgeworICAgICAgIGRuc19jb25maWdf ID0gQ29udmVydFJlc1N0YXRlVG9EbnNDb25maWcoKnJlcy5nZXQoKSk7CisgICAgICAgcmVzb2x2 X3JlYWRlcl8tPkNsb3NlUmVzU3RhdGUocmVzLmdldCgpKTsKKyAgICAgfQorKyNlbmRpZgorIAor ICAgICBVTUFfSElTVE9HUkFNX0JPT0xFQU4oIk5ldC5ETlMuRG5zQ29uZmlnLlJlc29sdi5SZWFk IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGRuc19jb25maWdfLmhhc192YWx1ZSgpKTsK K0BAIC00ODYsNiArNDg4LDcgQEAgY2xhc3MgRG5zQ29uZmlnU2VydmljZUxpbnV4OjpDb25maWdS ZWFkZQorIAorIHN0ZDo6dW5pcXVlX3B0cjxzdHJ1Y3QgX19yZXNfc3RhdGU+CisgRG5zQ29uZmln U2VydmljZUxpbnV4OjpSZXNvbHZSZWFkZXI6OkdldFJlc1N0YXRlKCkgeworKyNpZiBkZWZpbmVk KF9fR0xJQkNfXykKKyAgIGF1dG8gcmVzID0gc3RkOjptYWtlX3VuaXF1ZTxzdHJ1Y3QgX19yZXNf c3RhdGU+KCk7CisgICBtZW1zZXQocmVzLmdldCgpLCAwLCBzaXplb2Yoc3RydWN0IF9fcmVzX3N0 YXRlKSk7CisgCitAQCAtNDk1LDExICs0OTgsMTYgQEAgRG5zQ29uZmlnU2VydmljZUxpbnV4OjpS ZXNvbHZSZWFkZXI6OkdldAorICAgfQorIAorICAgcmV0dXJuIHJlczsKKysjZWxzZQorKyAgcmV0 dXJuIG51bGxwdHI7CisrI2VuZGlmCisgfQorIAorIHZvaWQgRG5zQ29uZmlnU2VydmljZUxpbnV4 OjpSZXNvbHZSZWFkZXI6OkNsb3NlUmVzU3RhdGUoCisgICAgIHN0cnVjdCBfX3Jlc19zdGF0ZSog cmVzKSB7CisrI2lmIGRlZmluZWQoX19HTElCQ19fKQorICAgcmVzX25jbG9zZShyZXMpOworKyNl bmRpZgorIH0KKyAKKyBEbnNDb25maWdTZXJ2aWNlTGludXg6OkRuc0NvbmZpZ1NlcnZpY2VMaW51 eCgpCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vbmV0L2Rucy9kbnNfcmVsb2FkZXIuY2MK KysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9uZXQvZG5zL2Ruc19yZWxvYWRlci5jYworQEAg LTQsOCArNCw3IEBACisgCisgI2luY2x1ZGUgIm5ldC9kbnMvZG5zX3JlbG9hZGVyLmgiCisgCist I2lmIGRlZmluZWQoT1NfUE9TSVgpICYmICFkZWZpbmVkKE9TX0FQUExFKSAmJiAhZGVmaW5lZChP U19PUEVOQlNEKSAmJiBcCistICAgICFkZWZpbmVkKE9TX0FORFJPSUQpICYmICFkZWZpbmVkKE9T X0ZVQ0hTSUEpCisrI2lmZGVmIF9fR0xJQkNfXworIAorICNpbmNsdWRlIDxyZXNvbHYuaD4KKyAK Ky0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9uZXQvZG5zL2hvc3RfcmVzb2x2ZXJfbWFuYWdl ci5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL25ldC9kbnMvaG9zdF9yZXNvbHZlcl9t YW5hZ2VyLmNjCitAQCAtMjcyMCw4ICsyNzIwLDcgQEAgSG9zdFJlc29sdmVyTWFuYWdlcjo6SG9z dFJlc29sdmVyTWFuYWdlcgorICAgTmV0d29ya0NoYW5nZU5vdGlmaWVyOjpBZGRDb25uZWN0aW9u VHlwZU9ic2VydmVyKHRoaXMpOworICAgaWYgKHN5c3RlbV9kbnNfY29uZmlnX25vdGlmaWVyXykK KyAgICAgc3lzdGVtX2Ruc19jb25maWdfbm90aWZpZXJfLT5BZGRPYnNlcnZlcih0aGlzKTsKKy0j aWYgZGVmaW5lZChPU19QT1NJWCkgJiYgIWRlZmluZWQoT1NfQVBQTEUpICYmICFkZWZpbmVkKE9T X09QRU5CU0QpICYmIFwKKy0gICAgIWRlZmluZWQoT1NfQU5EUk9JRCkKKysjaWZkZWYgX19HTElC Q19fCisgICBFbnN1cmVEbnNSZWxvYWRlckluaXQoKTsKKyAjZW5kaWYKKyAKKy0tLSBhL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS9uZXQvZG5zL2hvc3RfcmVzb2x2ZXJfcHJvYy5jYworKysrIGIvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL25ldC9kbnMvaG9zdF9yZXNvbHZlcl9wcm9jLmNjCitAQCAtMTc2 LDggKzE3Niw3IEBAIGludCBTeXN0ZW1Ib3N0UmVzb2x2ZXJDYWxsKGNvbnN0IHN0ZDo6c3QKKyAg IGJhc2U6OlNjb3BlZEJsb2NraW5nQ2FsbCBzY29wZWRfYmxvY2tpbmdfY2FsbChGUk9NX0hFUkUs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZTo6 QmxvY2tpbmdUeXBlOjpXSUxMX0JMT0NLKTsKKyAKKy0jaWYgZGVmaW5lZChPU19QT1NJWCkgJiYg IWRlZmluZWQoT1NfQVBQTEUpICYmICFkZWZpbmVkKE9TX09QRU5CU0QpICYmIFwKKy0gICAgIWRl ZmluZWQoT1NfQU5EUk9JRCkgJiYgIWRlZmluZWQoT1NfRlVDSFNJQSkKKysjaWZkZWYgX19HTElC Q19fCisgICBEbnNSZWxvYWRlck1heWJlUmVsb2FkKCk7CisgI2VuZGlmCisgICBhYnNsOjpvcHRp b25hbDxBZGRyZXNzSW5mbz4gYWk7CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUv cGF0Y2hlcy8wNjAwLWNocm9taXVtLXNuZGlvLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5l L3BhdGNoZXMvMDYwMC1jaHJvbWl1bS1zbmRpby5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMDAuLjAzMDI4NzRmZmJhNAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3Br Z3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA2MDAtY2hyb21pdW0tc25kaW8ucGF0Y2gKQEAgLTAs MCArMSw4NzYgQEAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9tZWRpYS9CVUlMRC5nbgor KysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL21lZGlhL0JVSUxELmduCitAQCAtNzIsNiArNzIs OSBAQCBjb25maWcoIm1lZGlhX2NvbmZpZyIpIHsKKyAgICAgICBkZWZpbmVzICs9IFsgIkRMT1BF Tl9QVUxTRUFVRElPIiBdCisgICAgIH0KKyAgIH0KKysgIGlmICh1c2Vfc25kaW8pIHsKKysgICAg ZGVmaW5lcyArPSBbICJVU0VfU05ESU8iIF0KKysgIH0KKyAgIGlmICh1c2VfY3JhcykgeworICAg ICBkZWZpbmVzICs9IFsgIlVTRV9DUkFTIiBdCisgICB9CistLS0gYS9zcmMvM3JkcGFydHkvY2hy b21pdW0vbWVkaWEvYXVkaW8vQlVJTEQuZ24KKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9t ZWRpYS9hdWRpby9CVUlMRC5nbgorQEAgLTI0MCw2ICsyNDAsMTcgQEAgc291cmNlX3NldCgiYXVk aW8iKSB7CisgICAgIHNvdXJjZXMgKz0gWyAibGludXgvYXVkaW9fbWFuYWdlcl9saW51eC5jYyIg XQorICAgfQorIAorKyAgaWYgKHVzZV9zbmRpbykgeworKyAgICBsaWJzICs9IFsgInNuZGlvIiBd CisrICAgIHNvdXJjZXMgKz0gWworKyAgICAgICJzbmRpby9hdWRpb19tYW5hZ2VyX3NuZGlvLmNj IiwKKysgICAgICAic25kaW8vc25kaW9faW5wdXQuY2MiLAorKyAgICAgICJzbmRpby9zbmRpb19p bnB1dC5oIiwKKysgICAgICAic25kaW8vc25kaW9fb3V0cHV0LmNjIiwKKysgICAgICAic25kaW8v c25kaW9fb3V0cHV0LmgiCisrICAgIF0KKysgIH0KKysKKyAgIGlmICh1c2VfYWxzYSkgeworICAg ICBsaWJzICs9IFsgImFzb3VuZCIgXQorICAgICBzb3VyY2VzICs9IFsKKy0tLSBhL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS9tZWRpYS9hdWRpby9saW51eC9hdWRpb19tYW5hZ2VyX2xpbnV4LmNjCisr KysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vbWVkaWEvYXVkaW8vbGludXgvYXVkaW9fbWFuYWdl cl9saW51eC5jYworQEAgLTI1LDYgKzI1LDExIEBACisgI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL3B1 bHNlL2F1ZGlvX21hbmFnZXJfcHVsc2UuaCIKKyAjaW5jbHVkZSAibWVkaWEvYXVkaW8vcHVsc2Uv cHVsc2VfdXRpbC5oIgorICNlbmRpZgorKyNpZiBkZWZpbmVkKFVTRV9TTkRJTykKKysjaW5jbHVk ZSAibWVkaWEvYXVkaW8vc25kaW8vYXVkaW9fbWFuYWdlcl9zbmRpby5oIgorKyNpbmNsdWRlICJt ZWRpYS9hdWRpby9zbmRpby9zbmRpb19pbnB1dC5oIgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9z bmRpby9zbmRpb19vdXRwdXQuaCIKKysjZW5kaWYKKyAKKyBuYW1lc3BhY2UgbWVkaWEgeworIAor QEAgLTMyLDcgKzM3LDggQEAgZW51bSBMaW51eEF1ZGlvSU8geworICAga1B1bHNlLAorICAga0Fs c2EsCisgICBrQ3JhcywKKy0gIGtBdWRpb0lPTWF4ID0ga0NyYXMgIC8vIE11c3QgYWx3YXlzIGJl IGVxdWFsIHRvIGxhcmdlc3QgbG9nZ2VkIGVudHJ5LgorKyAga1NuZGlvLAorKyAga0F1ZGlvSU9N YXggPSBrU25kaW8gLy8gTXVzdCBhbHdheXMgYmUgZXF1YWwgdG8gbGFyZ2VzdCBsb2dnZWQgZW50 cnkuCisgfTsKKyAKKyBzdGQ6OnVuaXF1ZV9wdHI8bWVkaWE6OkF1ZGlvTWFuYWdlcj4gQ3JlYXRl QXVkaW9NYW5hZ2VyKAorQEAgLTQ1LDYgKzUxLDE2IEBAIHN0ZDo6dW5pcXVlX3B0cjxtZWRpYTo6 QXVkaW9NYW5hZ2VyPiBDcmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYXVkaW9fbG9nX2ZhY3RvcnkpOworICAgfQorIAorKyNpZiBkZWZpbmVkKFVTRV9T TkRJTykKKysgIHN0cnVjdCBzaW9faGRsICpoZGwgPSBzaW9fb3BlbihTSU9fREVWQU5ZLCBTSU9f UExBWSwgMCk7CisrICBpZiAoaGRsICE9IE5VTEwpIHsKKysgICAgc2lvX2Nsb3NlKGhkbCk7Cisr ICAgIFVNQV9ISVNUT0dSQU1fRU5VTUVSQVRJT04oIk1lZGlhLkxpbnV4QXVkaW9JTyIsIGtTbmRp bywga0F1ZGlvSU9NYXggKyAxKTsKKysgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8QXVkaW9N YW5hZ2VyU25kaW8+KHN0ZDo6bW92ZShhdWRpb190aHJlYWQpLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXVkaW9fbG9nX2ZhY3RvcnkpOworKyAg fQorKyNlbmRpZgorKworICNpZiBkZWZpbmVkKFVTRV9DUkFTKQorICAgaWYgKGJhc2U6OkNvbW1h bmRMaW5lOjpGb3JDdXJyZW50UHJvY2VzcygpLT5IYXNTd2l0Y2goc3dpdGNoZXM6OmtVc2VDcmFz KSkgeworICAgICBVTUFfSElTVE9HUkFNX0VOVU1FUkFUSU9OKCJNZWRpYS5MaW51eEF1ZGlvSU8i LCBrQ3Jhcywga0F1ZGlvSU9NYXggKyAxKTsKKy0tLSAvZGV2L251bGwKKysrKyBiL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS9tZWRpYS9hdWRpby9zbmRpby9hdWRpb19tYW5hZ2VyX3NuZGlvLmNjCitA QCAtMCwwICsxLDE0OCBAQAorKy8vIENvcHlyaWdodCAoYykgMjAxMiBUaGUgQ2hyb21pdW0gQXV0 aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKysvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBp cyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisrLy8gZm91bmQg aW4gdGhlIExJQ0VOU0UgZmlsZS4KKysKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8vc25kaW8vYXVk aW9fbWFuYWdlcl9zbmRpby5oIgorKworKyNpbmNsdWRlICJiYXNlL21ldHJpY3MvaGlzdG9ncmFt X21hY3Jvcy5oIgorKyNpbmNsdWRlICJiYXNlL21lbW9yeS9wdHJfdXRpbC5oIgorKyNpbmNsdWRl ICJtZWRpYS9hdWRpby9hdWRpb19kZXZpY2VfZGVzY3JpcHRpb24uaCIKKysjaW5jbHVkZSAibWVk aWEvYXVkaW8vYXVkaW9fb3V0cHV0X2Rpc3BhdGNoZXIuaCIKKysjaW5jbHVkZSAibWVkaWEvYXVk aW8vc25kaW8vc25kaW9faW5wdXQuaCIKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8vc25kaW8vc25k aW9fb3V0cHV0LmgiCisrI2luY2x1ZGUgIm1lZGlhL2Jhc2UvbGltaXRzLmgiCisrI2luY2x1ZGUg Im1lZGlhL2Jhc2UvbWVkaWFfc3dpdGNoZXMuaCIKKysKKytuYW1lc3BhY2UgbWVkaWEgeworKwor KworKy8vIE1heGltdW0gbnVtYmVyIG9mIG91dHB1dCBzdHJlYW1zIHRoYXQgY2FuIGJlIG9wZW4g c2ltdWx0YW5lb3VzbHkuCisrc3RhdGljIGNvbnN0IGludCBrTWF4T3V0cHV0U3RyZWFtcyA9IDQ7 CisrCisrLy8gRGVmYXVsdCBzYW1wbGUgcmF0ZSBmb3IgaW5wdXQgYW5kIG91dHB1dCBzdHJlYW1z LgorK3N0YXRpYyBjb25zdCBpbnQga0RlZmF1bHRTYW1wbGVSYXRlID0gNDgwMDA7CisrCisrdm9p ZCBBZGREZWZhdWx0RGV2aWNlKEF1ZGlvRGV2aWNlTmFtZXMqIGRldmljZV9uYW1lcykgeworKyAg RENIRUNLKGRldmljZV9uYW1lcy0+ZW1wdHkoKSk7CisrICBkZXZpY2VfbmFtZXMtPnB1c2hfZnJv bnQoQXVkaW9EZXZpY2VOYW1lOjpDcmVhdGVEZWZhdWx0KCkpOworK30KKysKKytib29sIEF1ZGlv TWFuYWdlclNuZGlvOjpIYXNBdWRpb091dHB1dERldmljZXMoKSB7CisrICByZXR1cm4gdHJ1ZTsK Kyt9CisrCisrYm9vbCBBdWRpb01hbmFnZXJTbmRpbzo6SGFzQXVkaW9JbnB1dERldmljZXMoKSB7 CisrICByZXR1cm4gdHJ1ZTsKKyt9CisrCisrdm9pZCBBdWRpb01hbmFnZXJTbmRpbzo6R2V0QXVk aW9JbnB1dERldmljZU5hbWVzKAorKyAgICBBdWRpb0RldmljZU5hbWVzKiBkZXZpY2VfbmFtZXMp IHsKKysgIERDSEVDSyhkZXZpY2VfbmFtZXMtPmVtcHR5KCkpOworKyAgQWRkRGVmYXVsdERldmlj ZShkZXZpY2VfbmFtZXMpOworK30KKysKKyt2b2lkIEF1ZGlvTWFuYWdlclNuZGlvOjpHZXRBdWRp b091dHB1dERldmljZU5hbWVzKAorKyAgICBBdWRpb0RldmljZU5hbWVzKiBkZXZpY2VfbmFtZXMp IHsKKysgIEFkZERlZmF1bHREZXZpY2UoZGV2aWNlX25hbWVzKTsKKyt9CisrCisrY29uc3QgY2hh ciogQXVkaW9NYW5hZ2VyU25kaW86OkdldE5hbWUoKSB7CisrICByZXR1cm4gIlNORElPIjsKKyt9 CisrCisrQXVkaW9QYXJhbWV0ZXJzIEF1ZGlvTWFuYWdlclNuZGlvOjpHZXRJbnB1dFN0cmVhbVBh cmFtZXRlcnMoCisrICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXZpY2VfaWQpIHsKKysgIHN0YXRp YyBjb25zdCBpbnQga0RlZmF1bHRJbnB1dEJ1ZmZlclNpemUgPSAxMDI0OworKworKyAgaW50IHVz ZXJfYnVmZmVyX3NpemUgPSBHZXRVc2VyQnVmZmVyU2l6ZSgpOworKyAgaW50IGJ1ZmZlcl9zaXpl ID0gdXNlcl9idWZmZXJfc2l6ZSA/CisrICAgICAgdXNlcl9idWZmZXJfc2l6ZSA6IGtEZWZhdWx0 SW5wdXRCdWZmZXJTaXplOworKworKyAgcmV0dXJuIEF1ZGlvUGFyYW1ldGVycygKKysgICAgICBB dWRpb1BhcmFtZXRlcnM6OkFVRElPX1BDTV9MT1dfTEFURU5DWSwgQ0hBTk5FTF9MQVlPVVRfU1RF UkVPLAorKyAgICAgIGtEZWZhdWx0U2FtcGxlUmF0ZSwgYnVmZmVyX3NpemUpOworK30KKysKKytB dWRpb01hbmFnZXJTbmRpbzo6QXVkaW9NYW5hZ2VyU25kaW8oc3RkOjp1bmlxdWVfcHRyPEF1ZGlv VGhyZWFkPiBhdWRpb190aHJlYWQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBBdWRpb0xvZ0ZhY3RvcnkqIGF1ZGlvX2xvZ19mYWN0b3J5KQorKyAgICA6IEF1ZGlv TWFuYWdlckJhc2Uoc3RkOjptb3ZlKGF1ZGlvX3RocmVhZCksCisrICAgICAgICAgICAgICAgICAg ICAgICBhdWRpb19sb2dfZmFjdG9yeSkgeworKyAgRExPRyhXQVJOSU5HKSA8PCAiQXVkaW9NYW5h Z2VyU25kaW8iOworKyAgU2V0TWF4T3V0cHV0U3RyZWFtc0FsbG93ZWQoa01heE91dHB1dFN0cmVh bXMpOworK30KKysKKytBdWRpb01hbmFnZXJTbmRpbzo6fkF1ZGlvTWFuYWdlclNuZGlvKCkgewor KyAgU2h1dGRvd24oKTsKKyt9CisrCisrQXVkaW9PdXRwdXRTdHJlYW0qIEF1ZGlvTWFuYWdlclNu ZGlvOjpNYWtlTGluZWFyT3V0cHV0U3RyZWFtKAorKyAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMm IHBhcmFtcywKKysgICAgY29uc3QgTG9nQ2FsbGJhY2smIGxvZ19jYWxsYmFjaykgeworKyAgRENI RUNLX0VRKEF1ZGlvUGFyYW1ldGVyczo6QVVESU9fUENNX0xJTkVBUiwgcGFyYW1zLmZvcm1hdCgp KTsKKysgIHJldHVybiBNYWtlT3V0cHV0U3RyZWFtKHBhcmFtcyk7CisrfQorKworK0F1ZGlvT3V0 cHV0U3RyZWFtKiBBdWRpb01hbmFnZXJTbmRpbzo6TWFrZUxvd0xhdGVuY3lPdXRwdXRTdHJlYW0o CisrICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAorKyAgICBjb25zdCBzdGQ6OnN0 cmluZyYgZGV2aWNlX2lkLAorKyAgICBjb25zdCBMb2dDYWxsYmFjayYgbG9nX2NhbGxiYWNrKSB7 CisrICBETE9HX0lGKEVSUk9SLCAhZGV2aWNlX2lkLmVtcHR5KCkpIDw8ICJOb3QgaW1wbGVtZW50 ZWQhIjsKKysgIERDSEVDS19FUShBdWRpb1BhcmFtZXRlcnM6OkFVRElPX1BDTV9MT1dfTEFURU5D WSwgcGFyYW1zLmZvcm1hdCgpKTsKKysgIHJldHVybiBNYWtlT3V0cHV0U3RyZWFtKHBhcmFtcyk7 CisrfQorKworK0F1ZGlvSW5wdXRTdHJlYW0qIEF1ZGlvTWFuYWdlclNuZGlvOjpNYWtlTGluZWFy SW5wdXRTdHJlYW0oCisrICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAorKyAgICBj b25zdCBzdGQ6OnN0cmluZyYgZGV2aWNlX2lkLAorKyAgICBjb25zdCBMb2dDYWxsYmFjayYgbG9n X2NhbGxiYWNrKSB7CisrICBEQ0hFQ0tfRVEoQXVkaW9QYXJhbWV0ZXJzOjpBVURJT19QQ01fTElO RUFSLCBwYXJhbXMuZm9ybWF0KCkpOworKyAgcmV0dXJuIE1ha2VJbnB1dFN0cmVhbShwYXJhbXMp OworK30KKysKKytBdWRpb0lucHV0U3RyZWFtKiBBdWRpb01hbmFnZXJTbmRpbzo6TWFrZUxvd0xh dGVuY3lJbnB1dFN0cmVhbSgKKysgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMsCisr ICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXZpY2VfaWQsCisrICAgIGNvbnN0IExvZ0NhbGxiYWNr JiBsb2dfY2FsbGJhY2spIHsKKysgIERDSEVDS19FUShBdWRpb1BhcmFtZXRlcnM6OkFVRElPX1BD TV9MT1dfTEFURU5DWSwgcGFyYW1zLmZvcm1hdCgpKTsKKysgIHJldHVybiBNYWtlSW5wdXRTdHJl YW0ocGFyYW1zKTsKKyt9CisrCisrQXVkaW9QYXJhbWV0ZXJzIEF1ZGlvTWFuYWdlclNuZGlvOjpH ZXRQcmVmZXJyZWRPdXRwdXRTdHJlYW1QYXJhbWV0ZXJzKAorKyAgICBjb25zdCBzdGQ6OnN0cmlu ZyYgb3V0cHV0X2RldmljZV9pZCwKKysgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBpbnB1dF9w YXJhbXMpIHsKKysgIC8vIFRPRE8odG9tbWkpOiBTdXBwb3J0IHxvdXRwdXRfZGV2aWNlX2lkfC4K KysgIERMT0dfSUYoRVJST1IsICFvdXRwdXRfZGV2aWNlX2lkLmVtcHR5KCkpIDw8ICJOb3QgaW1w bGVtZW50ZWQhIjsKKysgIHN0YXRpYyBjb25zdCBpbnQga0RlZmF1bHRPdXRwdXRCdWZmZXJTaXpl ID0gMjA0ODsKKysKKysgIENoYW5uZWxMYXlvdXQgY2hhbm5lbF9sYXlvdXQgPSBDSEFOTkVMX0xB WU9VVF9TVEVSRU87CisrICBpbnQgc2FtcGxlX3JhdGUgPSBrRGVmYXVsdFNhbXBsZVJhdGU7Cisr ICBpbnQgYnVmZmVyX3NpemUgPSBrRGVmYXVsdE91dHB1dEJ1ZmZlclNpemU7CisrICBpZiAoaW5w dXRfcGFyYW1zLklzVmFsaWQoKSkgeworKyAgICBzYW1wbGVfcmF0ZSA9IGlucHV0X3BhcmFtcy5z YW1wbGVfcmF0ZSgpOworKyAgICBjaGFubmVsX2xheW91dCA9IGlucHV0X3BhcmFtcy5jaGFubmVs X2xheW91dCgpOworKyAgICBidWZmZXJfc2l6ZSA9IHN0ZDo6bWluKGJ1ZmZlcl9zaXplLCBpbnB1 dF9wYXJhbXMuZnJhbWVzX3Blcl9idWZmZXIoKSk7CisrICB9CisrCisrICBpbnQgdXNlcl9idWZm ZXJfc2l6ZSA9IEdldFVzZXJCdWZmZXJTaXplKCk7CisrICBpZiAodXNlcl9idWZmZXJfc2l6ZSkK KysgICAgYnVmZmVyX3NpemUgPSB1c2VyX2J1ZmZlcl9zaXplOworKworKyAgcmV0dXJuIEF1ZGlv UGFyYW1ldGVycygKKysgICAgICBBdWRpb1BhcmFtZXRlcnM6OkFVRElPX1BDTV9MT1dfTEFURU5D WSwgY2hhbm5lbF9sYXlvdXQsCisrICAgICAgc2FtcGxlX3JhdGUsIGJ1ZmZlcl9zaXplKTsKKyt9 CisrCisrQXVkaW9JbnB1dFN0cmVhbSogQXVkaW9NYW5hZ2VyU25kaW86Ok1ha2VJbnB1dFN0cmVh bSgKKysgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMpIHsKKysgIERMT0coV0FSTklO RykgPDwgIk1ha2VJbnB1dFN0cmVhbSI7CisrICByZXR1cm4gbmV3IFNuZGlvQXVkaW9JbnB1dFN0 cmVhbSh0aGlzLAorKyAgICAgICAgICAgICBBdWRpb0RldmljZURlc2NyaXB0aW9uOjprRGVmYXVs dERldmljZUlkLCBwYXJhbXMpOworK30KKysKKytBdWRpb091dHB1dFN0cmVhbSogQXVkaW9NYW5h Z2VyU25kaW86Ok1ha2VPdXRwdXRTdHJlYW0oCisrICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYg cGFyYW1zKSB7CisrICBETE9HKFdBUk5JTkcpIDw8ICJNYWtlT3V0cHV0U3RyZWFtIjsKKysgIHJl dHVybiBuZXcgU25kaW9BdWRpb091dHB1dFN0cmVhbShwYXJhbXMsIHRoaXMpOworK30KKysKKyt9 ICAvLyBuYW1lc3BhY2UgbWVkaWEKKy0tLSAvZGV2L251bGwKKysrKyBiL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS9tZWRpYS9hdWRpby9zbmRpby9hdWRpb19tYW5hZ2VyX3NuZGlvLmgKK0BAIC0wLDAg KzEsNjUgQEAKKysvLyBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIENocm9taXVtIEF1dGhvcnMuIEFs bCByaWdodHMgcmVzZXJ2ZWQuCisrLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJu ZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorKy8vIGZvdW5kIGluIHRoZSBM SUNFTlNFIGZpbGUuCisrCisrI2lmbmRlZiBNRURJQV9BVURJT19TTkRJT19BVURJT19NQU5BR0VS X1NORElPX0hfCisrI2RlZmluZSBNRURJQV9BVURJT19TTkRJT19BVURJT19NQU5BR0VSX1NORElP X0hfCisrCisrI2luY2x1ZGUgPHNldD4KKysKKysjaW5jbHVkZSAiYmFzZS9jb21waWxlcl9zcGVj aWZpYy5oIgorKyNpbmNsdWRlICJiYXNlL21hY3Jvcy5oIgorKyNpbmNsdWRlICJiYXNlL21lbW9y eS9yZWZfY291bnRlZC5oIgorKyNpbmNsdWRlICJiYXNlL3RocmVhZGluZy90aHJlYWQuaCIKKysj aW5jbHVkZSAibWVkaWEvYXVkaW8vYXVkaW9fbWFuYWdlcl9iYXNlLmgiCisrCisrbmFtZXNwYWNl IG1lZGlhIHsKKysKKytjbGFzcyBNRURJQV9FWFBPUlQgQXVkaW9NYW5hZ2VyU25kaW8gOiBwdWJs aWMgQXVkaW9NYW5hZ2VyQmFzZSB7CisrIHB1YmxpYzoKKysgIEF1ZGlvTWFuYWdlclNuZGlvKHN0 ZDo6dW5pcXVlX3B0cjxBdWRpb1RocmVhZD4gYXVkaW9fdGhyZWFkLAorKyAgICAgICAgICAgICAg ICAgICBBdWRpb0xvZ0ZhY3RvcnkqIGF1ZGlvX2xvZ19mYWN0b3J5KTsKKysgIH5BdWRpb01hbmFn ZXJTbmRpbygpIG92ZXJyaWRlOworKworKyAgLy8gSW1wbGVtZW50YXRpb24gb2YgQXVkaW9NYW5h Z2VyLgorKyAgYm9vbCBIYXNBdWRpb091dHB1dERldmljZXMoKSBvdmVycmlkZTsKKysgIGJvb2wg SGFzQXVkaW9JbnB1dERldmljZXMoKSBvdmVycmlkZTsKKysgIHZvaWQgR2V0QXVkaW9JbnB1dERl dmljZU5hbWVzKEF1ZGlvRGV2aWNlTmFtZXMqIGRldmljZV9uYW1lcykgb3ZlcnJpZGU7CisrICB2 b2lkIEdldEF1ZGlvT3V0cHV0RGV2aWNlTmFtZXMoQXVkaW9EZXZpY2VOYW1lcyogZGV2aWNlX25h bWVzKSBvdmVycmlkZTsKKysgIEF1ZGlvUGFyYW1ldGVycyBHZXRJbnB1dFN0cmVhbVBhcmFtZXRl cnMoCisrICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGRldmljZV9pZCkgb3ZlcnJpZGU7CisrICBj b25zdCBjaGFyKiBHZXROYW1lKCkgb3ZlcnJpZGU7CisrCisrICAvLyBJbXBsZW1lbnRhdGlvbiBv ZiBBdWRpb01hbmFnZXJCYXNlLgorKyAgQXVkaW9PdXRwdXRTdHJlYW0qIE1ha2VMaW5lYXJPdXRw dXRTdHJlYW0oCisrICAgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMsCisrICAgICAg Y29uc3QgTG9nQ2FsbGJhY2smIGxvZ19jYWxsYmFjaykgb3ZlcnJpZGU7CisrICBBdWRpb091dHB1 dFN0cmVhbSogTWFrZUxvd0xhdGVuY3lPdXRwdXRTdHJlYW0oCisrICAgICAgY29uc3QgQXVkaW9Q YXJhbWV0ZXJzJiBwYXJhbXMsCisrICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGRldmljZV9pZCwK KysgICAgICBjb25zdCBMb2dDYWxsYmFjayYgbG9nX2NhbGxiYWNrKSBvdmVycmlkZTsKKysgIEF1 ZGlvSW5wdXRTdHJlYW0qIE1ha2VMaW5lYXJJbnB1dFN0cmVhbSgKKysgICAgICBjb25zdCBBdWRp b1BhcmFtZXRlcnMmIHBhcmFtcywKKysgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgZGV2aWNlX2lk LAorKyAgICAgIGNvbnN0IExvZ0NhbGxiYWNrJiBsb2dfY2FsbGJhY2spIG92ZXJyaWRlOworKyAg QXVkaW9JbnB1dFN0cmVhbSogTWFrZUxvd0xhdGVuY3lJbnB1dFN0cmVhbSgKKysgICAgICBjb25z dCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcywKKysgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgZGV2 aWNlX2lkLAorKyAgICAgIGNvbnN0IExvZ0NhbGxiYWNrJiBsb2dfY2FsbGJhY2spIG92ZXJyaWRl OworKworKyBwcm90ZWN0ZWQ6CisrICBBdWRpb1BhcmFtZXRlcnMgR2V0UHJlZmVycmVkT3V0cHV0 U3RyZWFtUGFyYW1ldGVycygKKysgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgb3V0cHV0X2Rldmlj ZV9pZCwKKysgICAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIGlucHV0X3BhcmFtcykgb3ZlcnJp ZGU7CisrCisrIHByaXZhdGU6CisrICAvLyBDYWxsZWQgYnkgTWFrZUxpbmVhck91dHB1dFN0cmVh bSBhbmQgTWFrZUxvd0xhdGVuY3lPdXRwdXRTdHJlYW0uCisrICBBdWRpb091dHB1dFN0cmVhbSog TWFrZU91dHB1dFN0cmVhbShjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcyk7CisrICBBdWRp b0lucHV0U3RyZWFtKiBNYWtlSW5wdXRTdHJlYW0oY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJh bXMpOworKworKyAgRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOKEF1ZGlvTWFuYWdlclNuZGlvKTsK Kyt9OworKworK30gIC8vIG5hbWVzcGFjZSBtZWRpYQorKworKyNlbmRpZiAgLy8gTUVESUFfQVVE SU9fU05ESU9fQVVESU9fTUFOQUdFUl9TTkRJT19IXworLS0tIC9kZXYvbnVsbAorKysrIGIvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL21lZGlhL2F1ZGlvL3NuZGlvL3NuZGlvX2lucHV0LmNjCitAQCAt MCwwICsxLDIwMCBAQAorKy8vIENvcHlyaWdodCAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBB bGwgcmlnaHRzIHJlc2VydmVkLgorKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVy bmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKysvLyBmb3VuZCBpbiB0aGUg TElDRU5TRSBmaWxlLgorKworKyNpbmNsdWRlICJiYXNlL2JpbmQuaCIKKysjaW5jbHVkZSAiYmFz ZS9sb2dnaW5nLmgiCisrI2luY2x1ZGUgImJhc2UvbWFjcm9zLmgiCisrI2luY2x1ZGUgIm1lZGlh L2Jhc2UvYXVkaW9fdGltZXN0YW1wX2hlbHBlci5oIgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9z bmRpby9hdWRpb19tYW5hZ2VyX3NuZGlvLmgiCisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL2F1ZGlv X21hbmFnZXIuaCIKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8vc25kaW8vc25kaW9faW5wdXQuaCIK KysKKytuYW1lc3BhY2UgbWVkaWEgeworKworK3N0YXRpYyBjb25zdCBTYW1wbGVGb3JtYXQga1Nh bXBsZUZvcm1hdCA9IGtTYW1wbGVGb3JtYXRTMTY7CisrCisrdm9pZCBTbmRpb0F1ZGlvSW5wdXRT dHJlYW06Ok9uTW92ZUNhbGxiYWNrKHZvaWQgKmFyZywgaW50IGRlbHRhKQorK3sKKysgIFNuZGlv QXVkaW9JbnB1dFN0cmVhbSogc2VsZiA9IHN0YXRpY19jYXN0PFNuZGlvQXVkaW9JbnB1dFN0cmVh bSo+KGFyZyk7CisrCisrICBzZWxmLT5od19kZWxheSArPSBkZWx0YTsKKyt9CisrCisrdm9pZCAq U25kaW9BdWRpb0lucHV0U3RyZWFtOjpUaHJlYWRFbnRyeSh2b2lkICphcmcpIHsKKysgIFNuZGlv QXVkaW9JbnB1dFN0cmVhbSogc2VsZiA9IHN0YXRpY19jYXN0PFNuZGlvQXVkaW9JbnB1dFN0cmVh bSo+KGFyZyk7CisrCisrICBzZWxmLT5UaHJlYWRMb29wKCk7CisrICByZXR1cm4gTlVMTDsKKyt9 CisrCisrU25kaW9BdWRpb0lucHV0U3RyZWFtOjpTbmRpb0F1ZGlvSW5wdXRTdHJlYW0oQXVkaW9N YW5hZ2VyQmFzZSogbWFuYWdlciwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgZGV2aWNlX25hbWUsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBw YXJhbXMpCisrICAgIDogbWFuYWdlcihtYW5hZ2VyKSwKKysgICAgICBwYXJhbXMocGFyYW1zKSwK KysgICAgICBhdWRpb19idXMoQXVkaW9CdXM6OkNyZWF0ZShwYXJhbXMpKSwKKysgICAgICBzdGF0 ZShrQ2xvc2VkKSB7CisrfQorKworK1NuZGlvQXVkaW9JbnB1dFN0cmVhbTo6flNuZGlvQXVkaW9J bnB1dFN0cmVhbSgpIHsKKysgIGlmIChzdGF0ZSAhPSBrQ2xvc2VkKQorKyAgICBDbG9zZSgpOwor K30KKysKKytib29sIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6T3BlbigpIHsKKysgIHN0cnVjdCBz aW9fcGFyIHBhcjsKKysgIGludCBzaWc7CisrCisrICBpZiAoc3RhdGUgIT0ga0Nsb3NlZCkKKysg ICAgcmV0dXJuIGZhbHNlOworKworKyAgaWYgKHBhcmFtcy5mb3JtYXQoKSAhPSBBdWRpb1BhcmFt ZXRlcnM6OkFVRElPX1BDTV9MSU5FQVIgJiYKKysgICAgICBwYXJhbXMuZm9ybWF0KCkgIT0gQXVk aW9QYXJhbWV0ZXJzOjpBVURJT19QQ01fTE9XX0xBVEVOQ1kpIHsKKysgICAgTE9HKFdBUk5JTkcp IDw8ICJVbnN1cHBvcnRlZCBhdWRpbyBmb3JtYXQuIjsKKysgICAgcmV0dXJuIGZhbHNlOworKyAg fQorKworKyAgc2lvX2luaXRwYXIoJnBhcik7CisrICBwYXIucmF0ZSA9IHBhcmFtcy5zYW1wbGVf cmF0ZSgpOworKyAgcGFyLnJjaGFuID0gcGFyYW1zLmNoYW5uZWxzKCk7CisrICBwYXIuYml0cyA9 IFNhbXBsZUZvcm1hdFRvQml0c1BlckNoYW5uZWwoa1NhbXBsZUZvcm1hdCk7CisrICBwYXIuYnBz ID0gcGFyLmJpdHMgLyA4OworKyAgcGFyLnNpZyA9IHNpZyA9IHBhci5iaXRzICE9IDggPyAxIDog MDsKKysgIHBhci5sZSA9IFNJT19MRV9OQVRJVkU7CisrICBwYXIuYXBwYnVmc3ogPSBwYXJhbXMu ZnJhbWVzX3Blcl9idWZmZXIoKTsKKysKKysgIGhkbCA9IHNpb19vcGVuKFNJT19ERVZBTlksIFNJ T19SRUMsIDApOworKworKyAgaWYgKGhkbCA9PSBOVUxMKSB7CisrICAgIExPRyhFUlJPUikgPDwg IkNvdWxkbid0IG9wZW4gYXVkaW8gZGV2aWNlLiI7CisrICAgIHJldHVybiBmYWxzZTsKKysgIH0K KysKKysgIGlmICghc2lvX3NldHBhcihoZGwsICZwYXIpIHx8ICFzaW9fZ2V0cGFyKGhkbCwgJnBh cikpIHsKKysgICAgTE9HKEVSUk9SKSA8PCAiQ291bGRuJ3Qgc2V0IGF1ZGlvIHBhcmFtZXRlcnMu IjsKKysgICAgZ290byBiYWRfY2xvc2U7CisrICB9CisrCisrICBpZiAocGFyLnJhdGUgICE9ICh1 bnNpZ25lZCBpbnQpcGFyYW1zLnNhbXBsZV9yYXRlKCkgfHwKKysgICAgICBwYXIucmNoYW4gIT0g KHVuc2lnbmVkIGludClwYXJhbXMuY2hhbm5lbHMoKSB8fAorKyAgICAgIHBhci5iaXRzICAhPSAo dW5zaWduZWQgaW50KVNhbXBsZUZvcm1hdFRvQml0c1BlckNoYW5uZWwoa1NhbXBsZUZvcm1hdCkg fHwKKysgICAgICBwYXIuc2lnICAgIT0gKHVuc2lnbmVkIGludClzaWcgfHwKKysgICAgICAocGFy LmJwcyA+IDEgJiYgcGFyLmxlICE9IFNJT19MRV9OQVRJVkUpIHx8CisrICAgICAgKHBhci5iaXRz ICE9IHBhci5icHMgKiA4KSkgeworKyAgICBMT0coRVJST1IpIDw8ICJVbnN1cHBvcnRlZCBhdWRp byBwYXJhbWV0ZXJzLiI7CisrICAgIGdvdG8gYmFkX2Nsb3NlOworKyAgfQorKyAgc3RhdGUgPSBr U3RvcHBlZDsKKysgIGJ1ZmZlciA9IG5ldyBjaGFyW2F1ZGlvX2J1cy0+ZnJhbWVzKCkgKiBwYXJh bXMuR2V0Qnl0ZXNQZXJGcmFtZShrU2FtcGxlRm9ybWF0KV07CisrICBzaW9fb25tb3ZlKGhkbCwg Jk9uTW92ZUNhbGxiYWNrLCB0aGlzKTsKKysgIHJldHVybiB0cnVlOworK2JhZF9jbG9zZToKKysg IHNpb19jbG9zZShoZGwpOworKyAgcmV0dXJuIGZhbHNlOworK30KKysKKyt2b2lkIFNuZGlvQXVk aW9JbnB1dFN0cmVhbTo6U3RhcnQoQXVkaW9JbnB1dENhbGxiYWNrKiBjYikgeworKworKyAgU3Rh cnRBZ2MoKTsKKysKKysgIHN0YXRlID0ga1J1bm5pbmc7CisrICBod19kZWxheSA9IDA7CisrICBj YWxsYmFjayA9IGNiOworKyAgc2lvX3N0YXJ0KGhkbCk7CisrICBpZiAocHRocmVhZF9jcmVhdGUo JnRocmVhZCwgTlVMTCwgJlRocmVhZEVudHJ5LCB0aGlzKSAhPSAwKSB7CisrICAgIExPRyhFUlJP UikgPDwgIkZhaWxlZCB0byBjcmVhdGUgcmVhbC10aW1lIHRocmVhZCBmb3IgcmVjb3JkaW5nLiI7 CisrICAgIHNpb19zdG9wKGhkbCk7CisrICAgIHN0YXRlID0ga1N0b3BwZWQ7CisrICB9CisrfQor KworK3ZvaWQgU25kaW9BdWRpb0lucHV0U3RyZWFtOjpTdG9wKCkgeworKworKyAgaWYgKHN0YXRl ID09IGtTdG9wcGVkKQorKyAgICByZXR1cm47CisrCisrICBzdGF0ZSA9IGtTdG9wV2FpdDsKKysg IHB0aHJlYWRfam9pbih0aHJlYWQsIE5VTEwpOworKyAgc2lvX3N0b3AoaGRsKTsKKysgIHN0YXRl ID0ga1N0b3BwZWQ7CisrCisrICBTdG9wQWdjKCk7CisrfQorKworK3ZvaWQgU25kaW9BdWRpb0lu cHV0U3RyZWFtOjpDbG9zZSgpIHsKKysKKysgIGlmIChzdGF0ZSA9PSBrQ2xvc2VkKQorKyAgICBy ZXR1cm47CisrCisrICBpZiAoc3RhdGUgPT0ga1J1bm5pbmcpCisrICAgIFN0b3AoKTsKKysKKysg IHN0YXRlID0ga0Nsb3NlZDsKKysgIGRlbGV0ZSBbXSBidWZmZXI7CisrICBzaW9fY2xvc2UoaGRs KTsKKysKKysgIG1hbmFnZXItPlJlbGVhc2VJbnB1dFN0cmVhbSh0aGlzKTsKKyt9CisrCisrZG91 YmxlIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6R2V0TWF4Vm9sdW1lKCkgeworKyAgLy8gTm90IHN1 cHBvcnRlZAorKyAgcmV0dXJuIDAuMDsKKyt9CisrCisrdm9pZCBTbmRpb0F1ZGlvSW5wdXRTdHJl YW06OlNldFZvbHVtZShkb3VibGUgdm9sdW1lKSB7CisrICAvLyBOb3Qgc3VwcG9ydGVkLiBEbyBu b3RoaW5nLgorK30KKysKKytkb3VibGUgU25kaW9BdWRpb0lucHV0U3RyZWFtOjpHZXRWb2x1bWUo KSB7CisrICAvLyBOb3Qgc3VwcG9ydGVkLgorKyAgcmV0dXJuIDAuMDsKKyt9CisrCisrYm9vbCBT bmRpb0F1ZGlvSW5wdXRTdHJlYW06OklzTXV0ZWQoKSB7CisrICAvLyBOb3Qgc3VwcG9ydGVkLgor KyAgcmV0dXJuIGZhbHNlOworK30KKysKKyt2b2lkIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6U2V0 T3V0cHV0RGV2aWNlRm9yQWVjKAorKyAgICBjb25zdCBzdGQ6OnN0cmluZyYgb3V0cHV0X2Rldmlj ZV9pZCkgeworKyAgLy8gTm90IHN1cHBvcnRlZC4KKyt9CisrCisrdm9pZCBTbmRpb0F1ZGlvSW5w dXRTdHJlYW06OlRocmVhZExvb3Aodm9pZCkgeworKyAgc2l6ZV90IHRvZG8sIG47CisrICBjaGFy ICpkYXRhOworKyAgdW5zaWduZWQgaW50IG5mcmFtZXM7CisrICBkb3VibGUgbm9ybWFsaXplZF92 b2x1bWUgPSAwLjA7CisrCisrICBuZnJhbWVzID0gYXVkaW9fYnVzLT5mcmFtZXMoKTsKKysKKysg IHdoaWxlIChzdGF0ZSA9PSBrUnVubmluZyAmJiAhc2lvX2VvZihoZGwpKSB7CisrCisrICAgIEdl dEFnY1ZvbHVtZSgmbm9ybWFsaXplZF92b2x1bWUpOworKworKyAgICAvLyByZWFkIG9uZSBibG9j aworKyAgICB0b2RvID0gbmZyYW1lcyAqIHBhcmFtcy5HZXRCeXRlc1BlckZyYW1lKGtTYW1wbGVG b3JtYXQpOworKyAgICBkYXRhID0gYnVmZmVyOworKyAgICB3aGlsZSAodG9kbyA+IDApIHsKKysg ICAgICBuID0gc2lvX3JlYWQoaGRsLCBkYXRhLCB0b2RvKTsKKysgICAgICBpZiAobiA9PSAwKQor KyAgICAgICAgcmV0dXJuOwkvLyB1bnJlY292ZXJhYmxlIEkvTyBlcnJvcgorKyAgICAgIHRvZG8g LT0gbjsKKysgICAgICBkYXRhICs9IG47CisrICAgIH0KKysgICAgaHdfZGVsYXkgLT0gbmZyYW1l czsKKysKKysgICAgLy8gY29udmVydCBmcmFtZXMgY291bnQgdG8gVGltZURlbHRhCisrICAgIGNv bnN0IGJhc2U6OlRpbWVEZWx0YSBkZWxheSA9IEF1ZGlvVGltZXN0YW1wSGVscGVyOjpGcmFtZXNU b1RpbWUoaHdfZGVsYXksCisrICAgICAgcGFyYW1zLnNhbXBsZV9yYXRlKCkpOworKworKyAgICAv LyBwdXNoIGludG8gYnVzCisrICAgIGF1ZGlvX2J1cy0+RnJvbUludGVybGVhdmVkPFNpZ25lZElu dDE2U2FtcGxlVHlwZVRyYWl0cz4ocmVpbnRlcnByZXRfY2FzdDxpbnQxNl90Kj4oYnVmZmVyKSwg bmZyYW1lcyk7CisrCisrICAgIC8vIGludm9rZSBjYWxsYmFjaworKyAgICBjYWxsYmFjay0+T25E YXRhKGF1ZGlvX2J1cy5nZXQoKSwgYmFzZTo6VGltZVRpY2tzOjpOb3coKSAtIGRlbGF5LCAxLik7 CisrICB9CisrfQorKworK30gIC8vIG5hbWVzcGFjZSBtZWRpYQorLS0tIC9kZXYvbnVsbAorKysr IGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL21lZGlhL2F1ZGlvL3NuZGlvL3NuZGlvX2lucHV0LmgK K0BAIC0wLDAgKzEsOTEgQEAKKysvLyBDb3B5cmlnaHQgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9y cy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKysvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBn b3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisrLy8gZm91bmQgaW4g dGhlIExJQ0VOU0UgZmlsZS4KKysKKysjaWZuZGVmIE1FRElBX0FVRElPX1NORElPX1NORElPX0lO UFVUX0hfCisrI2RlZmluZSBNRURJQV9BVURJT19TTkRJT19TTkRJT19JTlBVVF9IXworKworKyNp bmNsdWRlIDxzdGRpbnQuaD4KKysjaW5jbHVkZSA8c3RyaW5nPgorKyNpbmNsdWRlIDxzbmRpby5o PgorKworKyNpbmNsdWRlICJiYXNlL2NvbXBpbGVyX3NwZWNpZmljLmgiCisrI2luY2x1ZGUgImJh c2UvbWFjcm9zLmgiCisrI2luY2x1ZGUgImJhc2UvbWVtb3J5L3dlYWtfcHRyLmgiCisrI2luY2x1 ZGUgImJhc2UvdGltZS90aW1lLmgiCisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL2FnY19hdWRpb19z dHJlYW0uaCIKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8vYXVkaW9faW8uaCIKKysjaW5jbHVkZSAi bWVkaWEvYXVkaW8vYXVkaW9fZGV2aWNlX2Rlc2NyaXB0aW9uLmgiCisrI2luY2x1ZGUgIm1lZGlh L2Jhc2UvYXVkaW9fcGFyYW1ldGVycy5oIgorKworK25hbWVzcGFjZSBtZWRpYSB7CisrCisrY2xh c3MgQXVkaW9NYW5hZ2VyQmFzZTsKKysKKysvLyBJbXBsZW1lbnRhdGlvbiBvZiBBdWRpb091dHB1 dFN0cmVhbSB1c2luZyBzbmRpbyg3KQorK2NsYXNzIFNuZGlvQXVkaW9JbnB1dFN0cmVhbSA6IHB1 YmxpYyBBZ2NBdWRpb1N0cmVhbTxBdWRpb0lucHV0U3RyZWFtPiB7CisrIHB1YmxpYzoKKysgIC8v IFBhc3MgdGhpcyB0byB0aGUgY29uc3RydWN0b3IgaWYgeW91IHdhbnQgdG8gYXR0ZW1wdCBhdXRv LXNlbGVjdGlvbgorKyAgLy8gb2YgdGhlIGF1ZGlvIHJlY29yZGluZyBkZXZpY2UuCisrICBzdGF0 aWMgY29uc3QgY2hhciBrQXV0b1NlbGVjdERldmljZVtdOworKworKyAgLy8gQ3JlYXRlIGEgUENN IE91dHB1dCBzdHJlYW0gZm9yIHRoZSBTTkRJTyBkZXZpY2UgaWRlbnRpZmllZCBieQorKyAgLy8g fGRldmljZV9uYW1lfC4gSWYgdW5zdXJlIG9mIHdoYXQgdG8gdXNlIGZvciB8ZGV2aWNlX25hbWV8 LCB1c2UKKysgIC8vIHxrQXV0b1NlbGVjdERldmljZXwuCisrICBTbmRpb0F1ZGlvSW5wdXRTdHJl YW0oQXVkaW9NYW5hZ2VyQmFzZSogYXVkaW9fbWFuYWdlciwKKysgICAgICAgICAgICAgICAgICAg ICBjb25zdCBzdGQ6OnN0cmluZyYgZGV2aWNlX25hbWUsCisrICAgICAgICAgICAgICAgICAgICAg Y29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMpOworKworKyAgflNuZGlvQXVkaW9JbnB1dFN0 cmVhbSgpIG92ZXJyaWRlOworKworKyAgLy8gSW1wbGVtZW50YXRpb24gb2YgQXVkaW9JbnB1dFN0 cmVhbS4KKysgIGJvb2wgT3BlbigpIG92ZXJyaWRlOworKyAgdm9pZCBTdGFydChBdWRpb0lucHV0 Q2FsbGJhY2sqIGNhbGxiYWNrKSBvdmVycmlkZTsKKysgIHZvaWQgU3RvcCgpIG92ZXJyaWRlOwor KyAgdm9pZCBDbG9zZSgpIG92ZXJyaWRlOworKyAgZG91YmxlIEdldE1heFZvbHVtZSgpIG92ZXJy aWRlOworKyAgdm9pZCBTZXRWb2x1bWUoZG91YmxlIHZvbHVtZSkgb3ZlcnJpZGU7CisrICBkb3Vi bGUgR2V0Vm9sdW1lKCkgb3ZlcnJpZGU7CisrICBib29sIElzTXV0ZWQoKSBvdmVycmlkZTsKKysg IHZvaWQgU2V0T3V0cHV0RGV2aWNlRm9yQWVjKGNvbnN0IHN0ZDo6c3RyaW5nJiBvdXRwdXRfZGV2 aWNlX2lkKSBvdmVycmlkZTsKKysKKysgcHJpdmF0ZToKKysKKysgIGVudW0gU3RyZWFtU3RhdGUg eworKyAgICBrQ2xvc2VkLCAgICAgICAgICAgIC8vIE5vdCBvcGVuZWQgeWV0CisrICAgIGtTdG9w cGVkLCAgICAgICAgICAgLy8gRGV2aWNlIG9wZW5lZCwgYnV0IG5vdCBzdGFydGVkIHlldAorKyAg ICBrUnVubmluZywgICAgICAgICAgIC8vIFN0YXJ0ZWQsIGRldmljZSBwbGF5aW5nCisrICAgIGtT dG9wV2FpdCAgICAgICAgICAgLy8gU3RvcHBpbmcsIHdhaXRpbmcgZm9yIHRoZSByZWFsLXRpbWUg dGhyZWFkIHRvIGV4aXQKKysgIH07CisrCisrICAvLyBDLXN0eWxlIGNhbGwtYmFja3MKKysgIHN0 YXRpYyB2b2lkIE9uTW92ZUNhbGxiYWNrKHZvaWQgKmFyZywgaW50IGRlbHRhKTsKKysgIHN0YXRp YyB2b2lkKiBUaHJlYWRFbnRyeSh2b2lkICphcmcpOworKworKyAgLy8gQ29udGludW91c2x5IG1v dmVzIGRhdGEgZnJvbSB0aGUgZGV2aWNlIHRvIHRoZSBjb25zdW1lcgorKyAgdm9pZCBUaHJlYWRM b29wKCk7CisrICAvLyBPdXIgY3JlYXRvciwgdGhlIGF1ZGlvIG1hbmFnZXIgbmVlZHMgdG8gYmUg bm90aWZpZWQgd2hlbiB3ZSBjbG9zZS4KKysgIEF1ZGlvTWFuYWdlckJhc2UqIG1hbmFnZXI7Cisr ICAvLyBQYXJhbWV0ZXJzIG9mIHRoZSBzb3VyY2UKKysgIEF1ZGlvUGFyYW1ldGVycyBwYXJhbXM7 CisrICAvLyBXZSBzdG9yZSBkYXRhIGhlcmUgZm9yIGNvbnN1bWVyCisrICBzdGQ6OnVuaXF1ZV9w dHI8QXVkaW9CdXM+IGF1ZGlvX2J1czsKKysgIC8vIENhbGwtYmFjayB0aGF0IGNvbnN1bWVzIHJl Y29yZGVkIGRhdGEKKysgIEF1ZGlvSW5wdXRDYWxsYmFjayogY2FsbGJhY2s7ICAvLyBWYWxpZCBk dXJpbmcgYSByZWNvcmRpbmcgc2Vzc2lvbi4KKysgIC8vIEhhbmRsZSBvZiB0aGUgYXVkaW8gZGV2 aWNlCisrICBzdHJ1Y3Qgc2lvX2hkbCogaGRsOworKyAgLy8gQ3VycmVudCBzdGF0ZSBvZiB0aGUg c3RyZWFtCisrICBlbnVtIFN0cmVhbVN0YXRlIHN0YXRlOworKyAgLy8gSGlnaCBwcmlvcml0eSB0 aHJlYWQgcnVubmluZyBUaHJlYWRMb29wKCkKKysgIHB0aHJlYWRfdCB0aHJlYWQ7CisrICAvLyBO dW1iZXIgb2YgZnJhbWVzIGJ1ZmZlcmVkIGluIHRoZSBoYXJkd2FyZQorKyAgaW50IGh3X2RlbGF5 OworKyAgLy8gVGVtcG9yYXJ5IGJ1ZmZlciB3aGVyZSBkYXRhIGlzIHN0b3JlZCBzbmRpby1jb21w YXRpYmxlIGZvcm1hdAorKyAgY2hhciogYnVmZmVyOworKworKyAgRElTQUxMT1dfQ09QWV9BTkRf QVNTSUdOKFNuZGlvQXVkaW9JbnB1dFN0cmVhbSk7CisrfTsKKysKKyt9ICAvLyBuYW1lc3BhY2Ug bWVkaWEKKysKKysjZW5kaWYgIC8vIE1FRElBX0FVRElPX1NORElPX1NORElPX0lOUFVUX0hfCist LS0gL2Rldi9udWxsCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vbWVkaWEvYXVkaW8vc25k aW8vc25kaW9fb3V0cHV0LmNjCitAQCAtMCwwICsxLDE4MyBAQAorKy8vIENvcHlyaWdodCAoYykg MjAxMiBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKysvLyBVc2Ug b2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRo YXQgY2FuIGJlCisrLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKysKKysjaW5jbHVkZSAi YmFzZS9sb2dnaW5nLmgiCisrI2luY2x1ZGUgImJhc2UvdGltZS90aW1lLmgiCisrI2luY2x1ZGUg ImJhc2UvdGltZS9kZWZhdWx0X3RpY2tfY2xvY2suaCIKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8v YXVkaW9fbWFuYWdlcl9iYXNlLmgiCisrI2luY2x1ZGUgIm1lZGlhL2Jhc2UvYXVkaW9fdGltZXN0 YW1wX2hlbHBlci5oIgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9zbmRpby9zbmRpb19vdXRwdXQu aCIKKysKKytuYW1lc3BhY2UgbWVkaWEgeworKworK3N0YXRpYyBjb25zdCBTYW1wbGVGb3JtYXQg a1NhbXBsZUZvcm1hdCA9IGtTYW1wbGVGb3JtYXRTMTY7CisrCisrdm9pZCBTbmRpb0F1ZGlvT3V0 cHV0U3RyZWFtOjpPbk1vdmVDYWxsYmFjayh2b2lkICphcmcsIGludCBkZWx0YSkgeworKyAgU25k aW9BdWRpb091dHB1dFN0cmVhbSogc2VsZiA9IHN0YXRpY19jYXN0PFNuZGlvQXVkaW9PdXRwdXRT dHJlYW0qPihhcmcpOworKworKyAgc2VsZi0+aHdfZGVsYXkgLT0gZGVsdGE7CisrfQorKworK3Zv aWQgU25kaW9BdWRpb091dHB1dFN0cmVhbTo6T25Wb2xDYWxsYmFjayh2b2lkICphcmcsIHVuc2ln bmVkIGludCB2b2wpIHsKKysgIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW0qIHNlbGYgPSBzdGF0aWNf Y2FzdDxTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKj4oYXJnKTsKKysKKysgIHNlbGYtPnZvbCA9IHZv bDsKKyt9CisrCisrdm9pZCAqU25kaW9BdWRpb091dHB1dFN0cmVhbTo6VGhyZWFkRW50cnkodm9p ZCAqYXJnKSB7CisrICBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKiBzZWxmID0gc3RhdGljX2Nhc3Q8 U25kaW9BdWRpb091dHB1dFN0cmVhbSo+KGFyZyk7CisrCisrICBzZWxmLT5UaHJlYWRMb29wKCk7 CisrICByZXR1cm4gTlVMTDsKKyt9CisrCisrU25kaW9BdWRpb091dHB1dFN0cmVhbTo6U25kaW9B dWRpb091dHB1dFN0cmVhbShjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcywKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF1ZGlvTWFuYWdlckJhc2Uq IG1hbmFnZXIpCisrICAgIDogbWFuYWdlcihtYW5hZ2VyKSwKKysgICAgICBwYXJhbXMocGFyYW1z KSwKKysgICAgICBhdWRpb19idXMoQXVkaW9CdXM6OkNyZWF0ZShwYXJhbXMpKSwKKysgICAgICBz dGF0ZShrQ2xvc2VkKSwKKysgICAgICBtdXRleChQVEhSRUFEX01VVEVYX0lOSVRJQUxJWkVSKSB7 CisrfQorKworK1NuZGlvQXVkaW9PdXRwdXRTdHJlYW06On5TbmRpb0F1ZGlvT3V0cHV0U3RyZWFt KCkgeworKyAgaWYgKHN0YXRlICE9IGtDbG9zZWQpCisrICAgIENsb3NlKCk7CisrfQorKworK2Jv b2wgU25kaW9BdWRpb091dHB1dFN0cmVhbTo6T3BlbigpIHsKKysgIHN0cnVjdCBzaW9fcGFyIHBh cjsKKysgIGludCBzaWc7CisrCisrICBpZiAocGFyYW1zLmZvcm1hdCgpICE9IEF1ZGlvUGFyYW1l dGVyczo6QVVESU9fUENNX0xJTkVBUiAmJgorKyAgICAgIHBhcmFtcy5mb3JtYXQoKSAhPSBBdWRp b1BhcmFtZXRlcnM6OkFVRElPX1BDTV9MT1dfTEFURU5DWSkgeworKyAgICBMT0coV0FSTklORykg PDwgIlVuc3VwcG9ydGVkIGF1ZGlvIGZvcm1hdC4iOworKyAgICByZXR1cm4gZmFsc2U7CisrICB9 CisrICBzaW9faW5pdHBhcigmcGFyKTsKKysgIHBhci5yYXRlID0gcGFyYW1zLnNhbXBsZV9yYXRl KCk7CisrICBwYXIucGNoYW4gPSBwYXJhbXMuY2hhbm5lbHMoKTsKKysgIHBhci5iaXRzID0gU2Ft cGxlRm9ybWF0VG9CaXRzUGVyQ2hhbm5lbChrU2FtcGxlRm9ybWF0KTsKKysgIHBhci5icHMgPSBw YXIuYml0cyAvIDg7CisrICBwYXIuc2lnID0gc2lnID0gcGFyLmJpdHMgIT0gOCA/IDEgOiAwOwor KyAgcGFyLmxlID0gU0lPX0xFX05BVElWRTsKKysgIHBhci5hcHBidWZzeiA9IHBhcmFtcy5mcmFt ZXNfcGVyX2J1ZmZlcigpOworKworKyAgaGRsID0gc2lvX29wZW4oU0lPX0RFVkFOWSwgU0lPX1BM QVksIDApOworKyAgaWYgKGhkbCA9PSBOVUxMKSB7CisrICAgIExPRyhFUlJPUikgPDwgIkNvdWxk bid0IG9wZW4gYXVkaW8gZGV2aWNlLiI7CisrICAgIHJldHVybiBmYWxzZTsKKysgIH0KKysgIGlm ICghc2lvX3NldHBhcihoZGwsICZwYXIpIHx8ICFzaW9fZ2V0cGFyKGhkbCwgJnBhcikpIHsKKysg ICAgTE9HKEVSUk9SKSA8PCAiQ291bGRuJ3Qgc2V0IGF1ZGlvIHBhcmFtZXRlcnMuIjsKKysgICAg Z290byBiYWRfY2xvc2U7CisrICB9CisrICBpZiAocGFyLnJhdGUgICE9ICh1bnNpZ25lZCBpbnQp cGFyYW1zLnNhbXBsZV9yYXRlKCkgfHwKKysgICAgICBwYXIucGNoYW4gIT0gKHVuc2lnbmVkIGlu dClwYXJhbXMuY2hhbm5lbHMoKSB8fAorKyAgICAgIHBhci5iaXRzICAhPSAodW5zaWduZWQgaW50 KVNhbXBsZUZvcm1hdFRvQml0c1BlckNoYW5uZWwoa1NhbXBsZUZvcm1hdCkgfHwKKysgICAgICBw YXIuc2lnICAgIT0gKHVuc2lnbmVkIGludClzaWcgfHwKKysgICAgICAocGFyLmJwcyA+IDEgJiYg cGFyLmxlICE9IFNJT19MRV9OQVRJVkUpIHx8CisrICAgICAgKHBhci5iaXRzICE9IHBhci5icHMg KiA4KSkgeworKyAgICBMT0coRVJST1IpIDw8ICJVbnN1cHBvcnRlZCBhdWRpbyBwYXJhbWV0ZXJz LiI7CisrICAgIGdvdG8gYmFkX2Nsb3NlOworKyAgfQorKyAgc3RhdGUgPSBrU3RvcHBlZDsKKysg IHZvbHBlbmRpbmcgPSAwOworKyAgdm9sID0gMDsKKysgIGJ1ZmZlciA9IG5ldyBjaGFyW2F1ZGlv X2J1cy0+ZnJhbWVzKCkgKiBwYXJhbXMuR2V0Qnl0ZXNQZXJGcmFtZShrU2FtcGxlRm9ybWF0KV07 CisrICBzaW9fb25tb3ZlKGhkbCwgJk9uTW92ZUNhbGxiYWNrLCB0aGlzKTsKKysgIHNpb19vbnZv bChoZGwsICZPblZvbENhbGxiYWNrLCB0aGlzKTsKKysgIHJldHVybiB0cnVlOworKyBiYWRfY2xv c2U6CisrICBzaW9fY2xvc2UoaGRsKTsKKysgIHJldHVybiBmYWxzZTsKKyt9CisrCisrdm9pZCBT bmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjpDbG9zZSgpIHsKKysgIGlmIChzdGF0ZSA9PSBrQ2xvc2Vk KQorKyAgICByZXR1cm47CisrICBpZiAoc3RhdGUgPT0ga1J1bm5pbmcpCisrICAgIFN0b3AoKTsK KysgIHN0YXRlID0ga0Nsb3NlZDsKKysgIGRlbGV0ZSBbXSBidWZmZXI7CisrICBzaW9fY2xvc2Uo aGRsKTsKKysgIG1hbmFnZXItPlJlbGVhc2VPdXRwdXRTdHJlYW0odGhpcyk7ICAvLyBDYWxscyB0 aGUgZGVzdHJ1Y3RvcgorK30KKysKKyt2b2lkIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW06OlN0YXJ0 KEF1ZGlvU291cmNlQ2FsbGJhY2sqIGNhbGxiYWNrKSB7CisrICBzdGF0ZSA9IGtSdW5uaW5nOwor KyAgaHdfZGVsYXkgPSAwOworKyAgc291cmNlID0gY2FsbGJhY2s7CisrICBzaW9fc3RhcnQoaGRs KTsKKysgIGlmIChwdGhyZWFkX2NyZWF0ZSgmdGhyZWFkLCBOVUxMLCAmVGhyZWFkRW50cnksIHRo aXMpICE9IDApIHsKKysgICAgTE9HKEVSUk9SKSA8PCAiRmFpbGVkIHRvIGNyZWF0ZSByZWFsLXRp bWUgdGhyZWFkLiI7CisrICAgIHNpb19zdG9wKGhkbCk7CisrICAgIHN0YXRlID0ga1N0b3BwZWQ7 CisrICB9CisrfQorKworK3ZvaWQgU25kaW9BdWRpb091dHB1dFN0cmVhbTo6U3RvcCgpIHsKKysg IGlmIChzdGF0ZSA9PSBrU3RvcHBlZCkKKysgICAgcmV0dXJuOworKyAgc3RhdGUgPSBrU3RvcFdh aXQ7CisrICBwdGhyZWFkX2pvaW4odGhyZWFkLCBOVUxMKTsKKysgIHNpb19zdG9wKGhkbCk7Cisr ICBzdGF0ZSA9IGtTdG9wcGVkOworK30KKysKKyt2b2lkIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW06 OlNldFZvbHVtZShkb3VibGUgdikgeworKyAgcHRocmVhZF9tdXRleF9sb2NrKCZtdXRleCk7Cisr ICB2b2wgPSB2ICogU0lPX01BWFZPTDsKKysgIHZvbHBlbmRpbmcgPSAxOworKyAgcHRocmVhZF9t dXRleF91bmxvY2soJm11dGV4KTsKKyt9CisrCisrdm9pZCBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFt OjpHZXRWb2x1bWUoZG91YmxlKiB2KSB7CisrICBwdGhyZWFkX211dGV4X2xvY2soJm11dGV4KTsK KysgICp2ID0gdm9sICogKDEuIC8gU0lPX01BWFZPTCk7CisrICBwdGhyZWFkX211dGV4X3VubG9j aygmbXV0ZXgpOworK30KKysKKysvLyBUaGlzIHN0cmVhbSBpcyBhbHdheXMgdXNlZCB3aXRoIHN1 YiBzZWNvbmQgYnVmZmVyIHNpemVzLCB3aGVyZSBpdCdzCisrLy8gc3VmZmljaWVudCB0byBzaW1w bHkgYWx3YXlzIGZsdXNoIHVwb24gU3RhcnQoKS4KKyt2b2lkIFNuZGlvQXVkaW9PdXRwdXRTdHJl YW06OkZsdXNoKCkge30KKysKKyt2b2lkIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW06OlRocmVhZExv b3Aodm9pZCkgeworKyAgaW50IGF2YWlsLCBjb3VudCwgcmVzdWx0OworKworKyAgd2hpbGUgKHN0 YXRlID09IGtSdW5uaW5nKSB7CisrICAgIC8vIFVwZGF0ZSB2b2x1bWUgaWYgbmVlZGVkCisrICAg IHB0aHJlYWRfbXV0ZXhfbG9jaygmbXV0ZXgpOworKyAgICBpZiAodm9scGVuZGluZykgeworKyAg ICAgIHZvbHBlbmRpbmcgPSAwOworKyAgICAgIHNpb19zZXR2b2woaGRsLCB2b2wpOworKyAgICB9 CisrICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZtdXRleCk7CisrCisrICAgIC8vIEdldCBkYXRh IHRvIHBsYXkKKysgICAgY29uc3QgYmFzZTo6VGltZURlbHRhIGRlbGF5ID0gQXVkaW9UaW1lc3Rh bXBIZWxwZXI6OkZyYW1lc1RvVGltZShod19kZWxheSwKKysJcGFyYW1zLnNhbXBsZV9yYXRlKCkp OworKyAgICBjb3VudCA9IHNvdXJjZS0+T25Nb3JlRGF0YShkZWxheSwgYmFzZTo6VGltZVRpY2tz OjpOb3coKSwgMCwgYXVkaW9fYnVzLmdldCgpKTsKKysgICAgYXVkaW9fYnVzLT5Ub0ludGVybGVh dmVkPFNpZ25lZEludDE2U2FtcGxlVHlwZVRyYWl0cz4oY291bnQsIHJlaW50ZXJwcmV0X2Nhc3Q8 aW50MTZfdCo+KGJ1ZmZlcikpOworKyAgICBpZiAoY291bnQgPT0gMCkgeworKyAgICAgIC8vIFdl IGhhdmUgdG8gc3VibWl0IHNvbWV0aGluZyB0byB0aGUgZGV2aWNlCisrICAgICAgY291bnQgPSBh dWRpb19idXMtPmZyYW1lcygpOworKyAgICAgIG1lbXNldChidWZmZXIsIDAsIGNvdW50ICogcGFy YW1zLkdldEJ5dGVzUGVyRnJhbWUoa1NhbXBsZUZvcm1hdCkpOworKyAgICAgIExPRyhXQVJOSU5H KSA8PCAiTm8gZGF0YSB0byBwbGF5LCBydW5uaW5nIGVtcHR5IGN5Y2xlLiI7CisrICAgIH0KKysK KysgICAgLy8gU3VibWl0IGRhdGEgdG8gdGhlIGRldmljZQorKyAgICBhdmFpbCA9IGNvdW50ICog cGFyYW1zLkdldEJ5dGVzUGVyRnJhbWUoa1NhbXBsZUZvcm1hdCk7CisrICAgIHJlc3VsdCA9IHNp b193cml0ZShoZGwsIGJ1ZmZlciwgYXZhaWwpOworKyAgICBpZiAocmVzdWx0ID09IDApIHsKKysg ICAgICBMT0coV0FSTklORykgPDwgIkF1ZGlvIGRldmljZSBkaXNjb25uZWN0ZWQuIjsKKysgICAg ICBicmVhazsKKysgICAgfQorKworKyAgICAvLyBVcGRhdGUgaGFyZHdhcmUgcG9pbnRlcgorKyAg ICBod19kZWxheSArPSBjb3VudDsKKysgIH0KKyt9CisrCisrfSAgLy8gbmFtZXNwYWNlIG1lZGlh CistLS0gL2Rldi9udWxsCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vbWVkaWEvYXVkaW8v c25kaW8vc25kaW9fb3V0cHV0LmgKK0BAIC0wLDAgKzEsODYgQEAKKysvLyBDb3B5cmlnaHQgKGMp IDIwMTIgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisrLy8gVXNl IG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0 aGF0IGNhbiBiZQorKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisrCisrI2lmbmRlZiBN RURJQV9BVURJT19TTkRJT19TTkRJT19PVVRQVVRfSF8KKysjZGVmaW5lIE1FRElBX0FVRElPX1NO RElPX1NORElPX09VVFBVVF9IXworKworKyNpbmNsdWRlIDxwdGhyZWFkLmg+CisrI2luY2x1ZGUg PHNuZGlvLmg+CisrCisrI2luY2x1ZGUgImJhc2UvdGltZS90aWNrX2Nsb2NrLmgiCisrI2luY2x1 ZGUgImJhc2UvdGltZS90aW1lLmgiCisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL2F1ZGlvX2lvLmgi CisrCisrbmFtZXNwYWNlIG1lZGlhIHsKKysKKytjbGFzcyBBdWRpb01hbmFnZXJCYXNlOworKwor Ky8vIEltcGxlbWVudGF0aW9uIG9mIEF1ZGlvT3V0cHV0U3RyZWFtIHVzaW5nIHNuZGlvKDcpCisr Y2xhc3MgU25kaW9BdWRpb091dHB1dFN0cmVhbSA6IHB1YmxpYyBBdWRpb091dHB1dFN0cmVhbSB7 CisrIHB1YmxpYzoKKysgIC8vIFRoZSBtYW5hZ2VyIGlzIGNyZWF0aW5nIHRoaXMgb2JqZWN0Cisr ICBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAor KyAgICAgICAgICAgICAgICAgICAgICAgICBBdWRpb01hbmFnZXJCYXNlKiBtYW5hZ2VyKTsKKysg IHZpcnR1YWwgflNuZGlvQXVkaW9PdXRwdXRTdHJlYW0oKTsKKysKKysgIC8vIEltcGxlbWVudGF0 aW9uIG9mIEF1ZGlvT3V0cHV0U3RyZWFtLgorKyAgYm9vbCBPcGVuKCkgb3ZlcnJpZGU7CisrICB2 b2lkIENsb3NlKCkgb3ZlcnJpZGU7CisrICB2b2lkIFN0YXJ0KEF1ZGlvU291cmNlQ2FsbGJhY2sq IGNhbGxiYWNrKSBvdmVycmlkZTsKKysgIHZvaWQgU3RvcCgpIG92ZXJyaWRlOworKyAgdm9pZCBT ZXRWb2x1bWUoZG91YmxlIHZvbHVtZSkgb3ZlcnJpZGU7CisrICB2b2lkIEdldFZvbHVtZShkb3Vi bGUqIHZvbHVtZSkgb3ZlcnJpZGU7CisrICB2b2lkIEZsdXNoKCkgb3ZlcnJpZGU7CisrCisrICBm cmllbmQgdm9pZCBzbmRpb19vbm1vdmUodm9pZCAqYXJnLCBpbnQgZGVsdGEpOworKyAgZnJpZW5k IHZvaWQgc25kaW9fb252b2wodm9pZCAqYXJnLCB1bnNpZ25lZCBpbnQgdm9sKTsKKysgIGZyaWVu ZCB2b2lkICpzbmRpb190aHJlYWRzdGFydCh2b2lkICphcmcpOworKworKyBwcml2YXRlOgorKyAg ZW51bSBTdHJlYW1TdGF0ZSB7CisrICAgIGtDbG9zZWQsICAgICAgICAgICAgLy8gTm90IG9wZW5l ZCB5ZXQKKysgICAga1N0b3BwZWQsICAgICAgICAgICAvLyBEZXZpY2Ugb3BlbmVkLCBidXQgbm90 IHN0YXJ0ZWQgeWV0CisrICAgIGtSdW5uaW5nLCAgICAgICAgICAgLy8gU3RhcnRlZCwgZGV2aWNl IHBsYXlpbmcKKysgICAga1N0b3BXYWl0ICAgICAgICAgICAvLyBTdG9wcGluZywgd2FpdGluZyBm b3IgdGhlIHJlYWwtdGltZSB0aHJlYWQgdG8gZXhpdAorKyAgfTsKKysKKysgIC8vIEMtc3R5bGUg Y2FsbC1iYWNrcworKyAgc3RhdGljIHZvaWQgT25Nb3ZlQ2FsbGJhY2sodm9pZCAqYXJnLCBpbnQg ZGVsdGEpOworKyAgc3RhdGljIHZvaWQgT25Wb2xDYWxsYmFjayh2b2lkICphcmcsIHVuc2lnbmVk IGludCB2b2wpOworKyAgc3RhdGljIHZvaWQqIFRocmVhZEVudHJ5KHZvaWQgKmFyZyk7CisrCisr ICAvLyBDb250aW51b3VzbHkgbW92ZXMgZGF0YSBmcm9tIHRoZSBwcm9kdWNlciB0byB0aGUgZGV2 aWNlCisrICB2b2lkIFRocmVhZExvb3Aodm9pZCk7CisrCisrICAvLyBPdXIgY3JlYXRvciwgdGhl IGF1ZGlvIG1hbmFnZXIgbmVlZHMgdG8gYmUgbm90aWZpZWQgd2hlbiB3ZSBjbG9zZS4KKysgIEF1 ZGlvTWFuYWdlckJhc2UqIG1hbmFnZXI7CisrICAvLyBQYXJhbWV0ZXJzIG9mIHRoZSBzb3VyY2UK KysgIEF1ZGlvUGFyYW1ldGVycyBwYXJhbXM7CisrICAvLyBTb3VyY2Ugc3RvcmVzIGRhdGEgaGVy ZQorKyAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvQnVzPiBhdWRpb19idXM7CisrICAvLyBDYWxsLWJh Y2sgdGhhdCBwcm9kdWNlcyBkYXRhIHRvIHBsYXkKKysgIEF1ZGlvU291cmNlQ2FsbGJhY2sqIHNv dXJjZTsKKysgIC8vIEhhbmRsZSBvZiB0aGUgYXVkaW8gZGV2aWNlCisrICBzdHJ1Y3Qgc2lvX2hk bCogaGRsOworKyAgLy8gQ3VycmVudCBzdGF0ZSBvZiB0aGUgc3RyZWFtCisrICBlbnVtIFN0cmVh bVN0YXRlIHN0YXRlOworKyAgLy8gSGlnaCBwcmlvcml0eSB0aHJlYWQgcnVubmluZyBUaHJlYWRM b29wKCkKKysgIHB0aHJlYWRfdCB0aHJlYWQ7CisrICAvLyBQcm90ZWN0cyB2b2wsIHZvbHBlbmRp bmcgYW5kIGh3X2RlbGF5CisrICBwdGhyZWFkX211dGV4X3QgbXV0ZXg7CisrICAvLyBDdXJyZW50 IHZvbHVtZSBpbiB0aGUgMC4uU0lPX01BWFZPTCByYW5nZQorKyAgaW50IHZvbDsKKysgIC8vIFNl dCB0byAxIGlmIHZvbHVtZXMgbXVzdCBiZSByZWZyZXNoZWQgaW4gdGhlIHJlYWx0aW1lIHRocmVh ZAorKyAgaW50IHZvbHBlbmRpbmc7CisrICAvLyBOdW1iZXIgb2YgZnJhbWVzIGJ1ZmZlcmVkIGlu IHRoZSBoYXJkd2FyZQorKyAgaW50IGh3X2RlbGF5OworKyAgLy8gVGVtcG9yYXJ5IGJ1ZmZlciB3 aGVyZSBkYXRhIGlzIHN0b3JlZCBzbmRpby1jb21wYXRpYmxlIGZvcm1hdAorKyAgY2hhciogYnVm ZmVyOworKworKyAgRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOKFNuZGlvQXVkaW9PdXRwdXRTdHJl YW0pOworK307CisrCisrfSAgLy8gbmFtZXNwYWNlIG1lZGlhCisrCisrI2VuZGlmICAvLyBNRURJ QV9BVURJT19TTkRJT19TTkRJT19PVVRQVVRfSF8KKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS9tZWRpYS9tZWRpYV9vcHRpb25zLmduaQorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL21l ZGlhL21lZGlhX29wdGlvbnMuZ25pCitAQCAtMTIxLDYgKzEyMSw5IEBAIGRlY2xhcmVfYXJncygp IHsKKyAgICMgRW5hYmxlcyBydW50aW1lIHNlbGVjdGlvbiBvZiBBTFNBIGxpYnJhcnkgZm9yIGF1 ZGlvLgorICAgdXNlX2Fsc2EgPSBmYWxzZQorIAorKyAgIyBFbmFibGUgcnVudGltZSBzZWxlY3Rp b24gb2Ygc25kaW8oNykKKysgIHVzZV9zbmRpbyA9IGZhbHNlCisrCisgICAjIEFsc2Egc2hvdWxk IGJlIHVzZWQgb24gbm9uLUFuZHJvaWQsIG5vbi1NYWMgUE9TSVggc3lzdGVtcy4KKyAgICMgQWxz YSBzaG91bGQgYmUgdXNlZCBvbiBkZXNrdG9wIENocm9tZWNhc3QgYW5kIGF1ZGlvLW9ubHkgQ2hy b21lY2FzdCBidWlsZHMuCisgICBpZiAoaXNfcG9zaXggJiYgIWlzX2FuZHJvaWQgJiYgIWlzX21h YyAmJgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDcwMC1hcm12 N2wtbmVvbi5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA3MDAtYXJtdjds LW5lb24ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5kNDJm YTE5YTA3YTEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hl cy8wNzAwLWFybXY3bC1uZW9uLnBhdGNoCkBAIC0wLDAgKzEsMTAgQEAKKy0tLSBhL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS9za2lhL0JVSUxELmduCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0v c2tpYS9CVUlMRC5nbgorQEAgLTgwMCw3ICs4MDAsNiBAQCBza2lhX3NvdXJjZV9zZXQoInNraWFf b3B0cyIpIHsKKyAgICAgICAgICMgUm9vdCBidWlsZCBjb25maWcgc2V0cyAtbWZwdT0kYXJtX2Zw dSwgd2hpY2ggd2UgZXhwZWN0IHRvIGJlIG5lb24KKyAgICAgICAgICMgd2hlbiBydW5uaW5nIHRo aXMuCisgICAgICAgICBpZiAoIWFybV91c2VfbmVvbikgeworLSAgICAgICAgICBjb25maWdzIC09 IFsgIi8vYnVpbGQvY29uZmlnL2NvbXBpbGVyOmNvbXBpbGVyX2FybV9mcHUiIF0KKyAgICAgICAg ICAgY2ZsYWdzICs9IFsgIi1tZnB1PW5lb24iIF0KKyAgICAgICAgIH0KKyAgICAgICB9CmRpZmYg LS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wNzUwLWNocm9taXVtLW11c2wt YXJtLXVzZXJfdmZwLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDc1MC1j aHJvbWl1bS1tdXNsLWFybS11c2VyX3ZmcC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMDAuLjZlMmQ2MmYzNWVlNgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv cXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA3NTAtY2hyb21pdW0tbXVzbC1hcm0tdXNlcl92ZnAucGF0 Y2gKQEAgLTAsMCArMSwyMCBAQAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvdGhyZWFkX2luZm8uaAorKysrIGIvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGlu dXgvdGhyZWFkX2luZm8uaAorQEAgLTE3LDYgKzE3LDE3IEBACisgCisgI2luY2x1ZGUgPHN0ZGlu dC5oPgorICNpbmNsdWRlIDxzeXMvdXNlci5oPgorKyNpZiAhZGVmaW5lZChfX0dMSUJDX18pCisr c3RydWN0IHVzZXJfdmZwIHsKKysJdW5zaWduZWQgbG9uZyBsb25nIGZwcmVnc1szMl07CisrCXVu c2lnbmVkIGxvbmcgZnBzY3I7CisrfTsKKytzdHJ1Y3QgdXNlcl92ZnBfZXhjIHsKKysJdW5zaWdu ZWQgbG9uZyBmcGV4YzsKKysJdW5zaWduZWQgbG9uZyBmcGluc3Q7CisrCXVuc2lnbmVkIGxvbmcg ZnBpbnN0MjsKKyt9OworKyNlbmRpZiAvKiAhZGVmaW5lZChfX0dMSUJDX18pICovCisgCisgI2lu Y2x1ZGUgPHR5cGVfdHJhaXRzPgorIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5l L3BhdGNoZXMvMDc1MS1jaHJvbWl1bS1tdXNsLWFybS1lbGZfYXV4dl90LnBhdGNoIGIvc3JjcGtn cy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDc1MS1jaHJvbWl1bS1tdXNsLWFybS1lbGZfYXV4dl90 LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNzExMmM4Y2Zk M2ZhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDc1 MS1jaHJvbWl1bS1tdXNsLWFybS1lbGZfYXV4dl90LnBhdGNoCkBAIC0wLDAgKzEsMTggQEAKKy0t LSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvYmFzZS9jcHUuY2MKKysrKyBiL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvYmFzZS9jcHUuY2MKK0BAIC0xNjMsNiArMTYzLDE1IEBA IHN0YXRpYyBWOF9JTkxJTkUgdm9pZCBfX2NwdWlkKGludCBjcHVfaW4KKyAKKyAjaWYgVjhfSE9T VF9BUkNIX0FSTSB8fCBWOF9IT1NUX0FSQ0hfQVJNNjQKKyAKKysjaWZuZGVmIF9fR0xJQkNfXwor KyNpbmNsdWRlIDxlbGYuaD4KKysjaWZkZWYgX19MUDY0X18KKyt0eXBlZGVmIEVsZjY0X2F1eHZf dCBlbGZfYXV4dl90OworKyNlbHNlCisrdHlwZWRlZiBFbGYzMl9hdXh2X3QgZWxmX2F1eHZfdDsK KysjZW5kaWYKKysjZW5kaWYKKysKKyBzdGF0aWMgdWludDMyX3QgUmVhZEVMRkhXQ2FwcygpIHsK KyAgIHVpbnQzMl90IHJlc3VsdCA9IDA7CisgI2lmIFY4X0dMSUJDX1BSRVJFUSgyLCAxNikKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA4MDEtY2hyb21pdW0taTY4 Ni12YWFwaS1mcGVybWlzc2l2ZS5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVz LzA4MDEtY2hyb21pdW0taTY4Ni12YWFwaS1mcGVybWlzc2l2ZS5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjNkNDA0M2UwM2I4OQotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA4MDEtY2hyb21pdW0taTY4Ni12YWFw aS1mcGVybWlzc2l2ZS5wYXRjaApAQCAtMCwwICsxLDI0IEBACistLS0gYS9zcmMvM3JkcGFydHkv Y2hyb21pdW0vbWVkaWEvZ3B1L3ZhYXBpL0JVSUxELmduCisrKysgYi9zcmMvM3JkcGFydHkvY2hy b21pdW0vbWVkaWEvZ3B1L3ZhYXBpL0JVSUxELmduCitAQCAtMTQsNiArMTQsMTAgQEAgaW1wb3J0 KCIvL3VpL2dsL2ZlYXR1cmVzLmduaSIpCisgYXNzZXJ0KGlzX2xpbnV4IHx8IGlzX2Nocm9tZW9z KQorIGFzc2VydCh1c2VfdmFhcGkpCisgCisrY29uZmlnKCJ2YWFwaV9wZXJtaXNzaXZlIikgewor KyAgY2ZsYWdzID0gWyAiLWZwZXJtaXNzaXZlIiBdCisrfQorKworIGdlbmVyYXRlX3N0dWJzKCJs aWJ2YV9zdHVicyIpIHsKKyAgIGV4dHJhX2hlYWRlciA9ICJ2YV9zdHViX2hlYWRlci5mcmFnbWVu dCIKKyAgIHNpZ3MgPSBbICJ2YS5zaWdzIiBdCitAQCAtMTM2LDYgKzE0MCwxMCBAQCBzb3VyY2Vf c2V0KCJ2YWFwaSIpIHsKKyAgICAgXQorICAgfQorIAorKyAgaWYgKHRhcmdldF9jcHUgPT0gIng4 NiIpIHsKKysgICAgY29uZmlncyArPSBbICI6dmFhcGlfcGVybWlzc2l2ZSIgXQorKyAgfQorKwor ICAgaWYgKHVzZV94MTEpIHsKKyAgICAgZGVwcyArPSBbICIvL3VpL2dmeC94IiBdCisgICAgIHNv dXJjZXMgKz0gWwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDkw MC14eHgtcHBjNjRsZS1saWJ2cHgucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hl cy8wOTAwLXh4eC1wcGM2NGxlLWxpYnZweC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMDAuLjVjOTU2NmI1NmJkNAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv cXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA5MDAteHh4LXBwYzY0bGUtbGlidnB4LnBhdGNoCkBAIC0w LDAgKzEsNjUgQEAKK1VzZXMgZ2VuZXJpYyB0YXJnZXQgZm9yIG5vdy4gVG8gdXNlIHBwYzY0bGUs IGNoYW5nZSAtLXRhcmdldCB0byBwcGM2NGxlLWdudQorYW5kIGFkZCAtLWVuYWJsZS12c3gsIGFu ZCBjaGFuZ2UgZ2VuZXJpYyB0byBwcGMgZm9yIHRoZSBydGNkIGhlYWRlci4KKworRnJvbSAxOGU2 YzVjNTVjZmFlMGNmYjQ1OGQ4MjEwZDdiYzcwOTM2MGEwZTkwIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQorRnJvbTogcTY2IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KK0RhdGU6IFdlZCwgOSBTZXAg MjAyMCAxOTowODoyNSArMDIwMAorU3ViamVjdDogW1BBVENIXSBlbmFibGUgZ2VuZXJhdGlvbiBv ZiBwcGM2NCBsaWJ2cHggYml0cworCit0aGlzIGRvZXNuJ3QgdXBkYXRlIHRoZSBnbmkgZmlsZSwg dGhhdCdzIGRvbmUgZnJvbQordGhlIHRlbXBsYXRlIGJ5IHJ1bm5pbmcgdGhlIGFwcHJvcHJpYXRl IHNjcmlwdHMKKy0tLQorIHRoaXJkX3BhcnR5L2xpYnZweC9CVUlMRC5nbiAgICAgICAgfCA0ICsr KysKKyB0aGlyZF9wYXJ0eS9saWJ2cHgvZ2VuZXJhdGVfZ25pLnNoIHwgOSArKysrKysrKysKKyAy IGZpbGVzIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKykKKworLS0tIGEvc3JjLzNyZHBhcnR5L2No cm9taXVtL3RoaXJkX3BhcnR5L2xpYnZweC9CVUlMRC5nbgorKysrIGIvc3JjLzNyZHBhcnR5L2No cm9taXVtL3RoaXJkX3BhcnR5L2xpYnZweC9CVUlMRC5nbgorQEAgLTQyNCw2ICs0MjQsOCBAQCBz dGF0aWNfbGlicmFyeSgiYnVuZGxlZF9saWJ2cHgiKSB7CisgICAgICAgc291cmNlcyA9IGxpYnZw eF9zcmNzX2FybTY0CisgICAgICAgcHVibGljX2RlcHMgPSBbICI6bGlidnB4X2FybTY0X2hlYWRl cnMiIF0KKyAgICAgfQorKyAgfSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAicHBjNjQiKSB7Cisr ICAgIHNvdXJjZXMgPSBsaWJ2cHhfc3Jjc19wcGM2NAorICAgfQorIAorICAgY29uZmlncyAtPSBb ICIvL2J1aWxkL2NvbmZpZy9jb21waWxlcjpjaHJvbWl1bV9jb2RlIiBdCistLS0gYS9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvbGlidnB4L2dlbmVyYXRlX2duaS5zaAorKysrIGIv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2xpYnZweC9nZW5lcmF0ZV9nbmkuc2gK K0BAIC0zNzQsNiArMzc0LDcgQEAgZ2VuX2NvbmZpZ19maWxlcyBsaW51eC9hcm0tbmVvbi1oaWdo YmQgIgorIGdlbl9jb25maWdfZmlsZXMgbGludXgvYXJtNjQtaGlnaGJkICItLXRhcmdldD1hcm12 OC1saW51eC1nY2MgJHthbGxfcGxhdGZvcm1zfSAke0hJR0hCRH0iCisgZ2VuX2NvbmZpZ19maWxl cyBsaW51eC9taXBzZWwgIi0tdGFyZ2V0PW1pcHMzMi1saW51eC1nY2MgJHthbGxfcGxhdGZvcm1z fSIKKyBnZW5fY29uZmlnX2ZpbGVzIGxpbnV4L21pcHM2NGVsICItLXRhcmdldD1taXBzNjQtbGlu dXgtZ2NjICR7YWxsX3BsYXRmb3Jtc30iCisrZ2VuX2NvbmZpZ19maWxlcyBsaW51eC9wcGM2NCAi LS10YXJnZXQ9Z2VuZXJpYy1nbnUgJEhJR0hCRCAke2FsbF9wbGF0Zm9ybXN9IgorIGdlbl9jb25m aWdfZmlsZXMgbGludXgvZ2VuZXJpYyAiLS10YXJnZXQ9Z2VuZXJpYy1nbnUgJEhJR0hCRCAke2Fs bF9wbGF0Zm9ybXN9IgorIGdlbl9jb25maWdfZmlsZXMgd2luL2FybTY0ICItLXRhcmdldD1hcm02 NC13aW42NC12czE1ICR7YWxsX3BsYXRmb3Jtc30gJHtISUdIQkR9IgorIGdlbl9jb25maWdfZmls ZXMgd2luL2lhMzIgIi0tdGFyZ2V0PXg4Ni13aW4zMi12czE0ICR7YWxsX3BsYXRmb3Jtc30gJHt4 ODZfcGxhdGZvcm1zfSIKK0BAIC0zOTksNiArNDAwLDcgQEAgbGludF9jb25maWcgbGludXgvYXJt LW5lb24taGlnaGJkCisgbGludF9jb25maWcgbGludXgvYXJtNjQtaGlnaGJkCisgbGludF9jb25m aWcgbGludXgvbWlwc2VsCisgbGludF9jb25maWcgbGludXgvbWlwczY0ZWwKKytsaW50X2NvbmZp ZyBsaW51eC9wcGM2NAorIGxpbnRfY29uZmlnIGxpbnV4L2dlbmVyaWMKKyBsaW50X2NvbmZpZyB3 aW4vYXJtNjQKKyBsaW50X2NvbmZpZyB3aW4vaWEzMgorQEAgLTQyOCw2ICs0MzAsNyBAQCBnZW5f cnRjZF9oZWFkZXIgbGludXgvYXJtLW5lb24taGlnaGJkIGFyCisgZ2VuX3J0Y2RfaGVhZGVyIGxp bnV4L2FybTY0LWhpZ2hiZCBhcm12OAorIGdlbl9ydGNkX2hlYWRlciBsaW51eC9taXBzZWwgbWlw c2VsCisgZ2VuX3J0Y2RfaGVhZGVyIGxpbnV4L21pcHM2NGVsIG1pcHM2NGVsCisrZ2VuX3J0Y2Rf aGVhZGVyIGxpbnV4L3BwYzY0IGdlbmVyaWMKKyBnZW5fcnRjZF9oZWFkZXIgbGludXgvZ2VuZXJp YyBnZW5lcmljCisgZ2VuX3J0Y2RfaGVhZGVyIHdpbi9hcm02NCBhcm12OAorIGdlbl9ydGNkX2hl YWRlciB3aW4vaWEzMiB4ODYgIiR7cmVxdWlyZV9zc2UyfSIKK0BAIC01MTMsNiArNTE2LDEyIEBA IGlmIFsgLXogJE9OTFlfQ09ORklHUyBdOyB0aGVuCisgCisgICBlY2hvICJNSVBTNjQgc291cmNl IGxpc3QgaXMgaWRlbnRpY2FsIHRvIE1JUFMgc291cmNlIGxpc3QuIE5vIG5lZWQgdG8gZ2VuZXJh dGUgaXQuIgorIAorKyAgZWNobyAiR2VuZXJhdGUgcHBjNjQgc291cmNlIGxpc3QuIgorKyAgY29u ZmlnPSQocHJpbnRfY29uZmlnX2Jhc2ljIGxpbnV4L3BwYzY0KQorKyAgbWFrZV9jbGVhbgorKyAg bWFrZSBsaWJ2cHhfc3Jjcy50eHQgdGFyZ2V0PWxpYnMgJGNvbmZpZyA+IC9kZXYvbnVsbAorKyAg Y29udmVydF9zcmNzX3RvX3Byb2plY3RfZmlsZXMgbGlidnB4X3NyY3MudHh0IGxpYnZweF9zcmNz X3BwYzY0CisrCisgICBlY2hvICJHZW5lcmF0ZSBOYUNsIHNvdXJjZSBsaXN0LiIKKyAgIGNvbmZp Zz0kKHByaW50X2NvbmZpZ19iYXNpYyBuYWNsKQorICAgbWFrZV9jbGVhbgpkaWZmIC0tZ2l0IGEv c3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDkwMS14eHgtcHBjNjRsZS1zYW5kYm94LWxp bnV4LXN0YXQucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wOTAxLXh4eC1w cGM2NGxlLXNhbmRib3gtbGludXgtc3RhdC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMDAuLjRiOGU2MzIwNjAxYwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv cXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA5MDEteHh4LXBwYzY0bGUtc2FuZGJveC1saW51eC1zdGF0 LnBhdGNoCkBAIC0wLDAgKzEsMzEgQEAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5k Ym94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3N0YXQuaAorKysrIGIvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc3RhdC5oCitAQCAt MTU1LDYgKzE1NSwyOCBAQCBzdHJ1Y3Qga2VybmVsX3N0YXQgeworICAgdW5zaWduZWQgaW50IF9f dW51c2VkNDsKKyAgIHVuc2lnbmVkIGludCBfX3VudXNlZDU7CisgfTsKKysjZWxpZiBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCisrc3RydWN0IGtlcm5lbF9zdGF0IHsKKysgIHVuc2lnbmVkIGxvbmcJ c3RfZGV2OworKyAgdW5zaWduZWQgbG9uZwlzdF9pbm87CisrICB1bnNpZ25lZCBsb25nCXN0X25s aW5rOworKyAgdW5zaWduZWQgaW50CXN0X21vZGU7CisrICB1bnNpZ25lZCBpbnQJc3RfdWlkOwor KyAgdW5zaWduZWQgaW50CXN0X2dpZDsKKysgIHVuc2lnbmVkIGxvbmcJc3RfcmRldjsKKysgIGxv bmcJCXN0X3NpemU7CisrICB1bnNpZ25lZCBsb25nCXN0X2Jsa3NpemU7CisrICB1bnNpZ25lZCBs b25nCXN0X2Jsb2NrczsKKysgIHVuc2lnbmVkIGxvbmcJc3RfYXRpbWVfOworKyAgdW5zaWduZWQg bG9uZwlzdF9hdGltZV9uc2VjXzsKKysgIHVuc2lnbmVkIGxvbmcJc3RfbXRpbWVfOworKyAgdW5z aWduZWQgbG9uZwlzdF9tdGltZV9uc2VjXzsKKysgIHVuc2lnbmVkIGxvbmcJc3RfY3RpbWVfOwor KyAgdW5zaWduZWQgbG9uZwlzdF9jdGltZV9uc2VjXzsKKysgIHVuc2lnbmVkIGxvbmcJX191bnVz ZWQ0OworKyAgdW5zaWduZWQgbG9uZwlfX3VudXNlZDU7CisrICB1bnNpZ25lZCBsb25nCV9fdW51 c2VkNjsKKyt9OworICNlbmRpZgorIAorICNpZiAhZGVmaW5lZChBVF9FTVBUWV9QQVRIKQpkaWZm IC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDkwMi14eHgtcHBjNjRsZS1z dXBwb3J0LnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDkwMi14eHgtcHBj NjRsZS1zdXBwb3J0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MC4uNjA1MDNjMjJlMzZiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5l L3BhdGNoZXMvMDkwMi14eHgtcHBjNjRsZS1zdXBwb3J0LnBhdGNoCkBAIC0wLDAgKzEsMzU1OSBA QAorY29tbWl0IDJjMDEzYTMxN2IxMTE0ZWY2N2NkYmJjMzA4MjRiMjg5MDdiOWVhOTQKK0F1dGhv cjogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CitEYXRlOiAgIFdlZCBNYXIg MyAxOTowODoyOSAyMDIxICswMTAwCisKKyAgICBwcGM2NGxlIHN1cHBvcnQKKworLS0tIGEvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvZmVhdHVyZXMuZ25pCisrKysgYi9zcmMvM3JkcGFy dHkvY2hyb21pdW0vc2FuZGJveC9mZWF0dXJlcy5nbmkKK0BAIC0xMSw3ICsxMSw4IEBAIGltcG9y dCgiLy9idWlsZC9jb25maWcvbmFjbC9jb25maWcuZ25pIikKKyB1c2Vfc2VjY29tcF9icGYgPSAo aXNfbGludXggfHwgaXNfY2hyb21lb3MgfHwgaXNfYW5kcm9pZCkgJiYKKyAgICAgICAgICAgICAg ICAgICAoY3VycmVudF9jcHUgPT0gIng4NiIgfHwgY3VycmVudF9jcHUgPT0gIng2NCIgfHwKKyAg ICAgICAgICAgICAgICAgICAgY3VycmVudF9jcHUgPT0gImFybSIgfHwgY3VycmVudF9jcHUgPT0g ImFybTY0IiB8fAorLSAgICAgICAgICAgICAgICAgICBjdXJyZW50X2NwdSA9PSAibWlwc2VsIiB8 fCBjdXJyZW50X2NwdSA9PSAibWlwczY0ZWwiKQorKyAgICAgICAgICAgICAgICAgICBjdXJyZW50 X2NwdSA9PSAibWlwc2VsIiB8fCBjdXJyZW50X2NwdSA9PSAibWlwczY0ZWwiIHx8CisrICAgICAg ICAgICAgICAgICAgIGN1cnJlbnRfY3B1ID09ICJwcGM2NCIpCisgCisgdXNlX3NlY2NvbXBfYnBm ID0gdXNlX3NlY2NvbXBfYnBmIHx8IGlzX25hY2xfbm9uc2ZpCisgCistLS0gYS9zcmMvM3JkcGFy dHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9CVUlMRC5nbgorKysrIGIvc3JjLzNyZHBhcnR5L2No cm9taXVtL3NhbmRib3gvbGludXgvQlVJTEQuZ24KK0BAIC00MzMsNiArNDMzLDggQEAgY29tcG9u ZW50KCJzYW5kYm94X3NlcnZpY2VzIikgeworIAorIHNvdXJjZV9zZXQoInNhbmRib3hfc2Vydmlj ZXNfaGVhZGVycyIpIHsKKyAgIHNvdXJjZXMgPSBbCisrICAgICJzeXN0ZW1faGVhZGVycy9wcGM2 NF9saW51eF9zeXNjYWxscy5oIiwKKysgICAgInN5c3RlbV9oZWFkZXJzL3BwYzY0X2xpbnV4X3Vj b250ZXh0LmgiLAorICAgICAic3lzdGVtX2hlYWRlcnMvYXJtNjRfbGludXhfc3lzY2FsbHMuaCIs CisgICAgICJzeXN0ZW1faGVhZGVycy9hcm1fbGludXhfc3lzY2FsbHMuaCIsCisgICAgICJzeXN0 ZW1faGVhZGVycy9hcm1fbGludXhfdWNvbnRleHQuaCIsCistLS0gYS9zcmMvM3JkcGFydHkvY2hy b21pdW0vc2FuZGJveC9saW51eC9icGZfZHNsL2xpbnV4X3N5c2NhbGxfcmFuZ2VzLmgKKysrKyBi L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L2JwZl9kc2wvbGludXhfc3lzY2Fs bF9yYW5nZXMuaAorQEAgLTU2LDYgKzU2LDEzIEBACisgI2RlZmluZSBNQVhfUFVCTElDX1NZU0NB TEwgX19OUl9zeXNjYWxscworICNkZWZpbmUgTUFYX1NZU0NBTEwgTUFYX1BVQkxJQ19TWVNDQUxM CisgCisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKworKyNpbmNsdWRlIDxhc20vdW5p c3RkLmg+CisrI2RlZmluZSBNSU5fU1lTQ0FMTCAwdQorKyNkZWZpbmUgTUFYX1BVQkxJQ19TWVND QUxMIDM4NnUKKysjZGVmaW5lIE1BWF9TWVNDQUxMIE1BWF9QVUJMSUNfU1lTQ0FMTAorKworICNl bHNlCisgI2Vycm9yICJVbnN1cHBvcnRlZCBhcmNoaXRlY3R1cmUiCisgI2VuZGlmCistLS0gYS9z cmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9icGZfZHNsL3NlY2NvbXBfbWFjcm9z LmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L2JwZl9kc2wvc2Vj Y29tcF9tYWNyb3MuaAorQEAgLTE2LDYgKzE2LDkgQEAKKyAjaWYgZGVmaW5lZChfX21pcHNfXykK KyAvLyBzeXMvdXNlci5oIGluIGVnbGliYyBtaXNzZXMgc2l6ZV90IGRlZmluaXRpb24KKyAjaW5j bHVkZSA8c3RkZGVmLmg+CisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAmJiBkZWZpbmVk KF9fR0xJQkNfXykKKysvLyBNYW51YWxseSBkZWZpbmUgZ3JlZ190IG9uIHBwYzY0CisrdHlwZWRl ZiB1bnNpZ25lZCBsb25nIGxvbmcgZ3JlZ190OworICNlbmRpZgorICNlbmRpZgorIAorQEAgLTM0 Niw2ICszNDksNTkgQEAgc3RydWN0IHJlZ3Nfc3RydWN0IHsKKyAjZGVmaW5lIFNFQ0NPTVBfUFRf UEFSTTQoX3JlZ3MpIChfcmVncykucmVnc1szXQorICNkZWZpbmUgU0VDQ09NUF9QVF9QQVJNNShf cmVncykgKF9yZWdzKS5yZWdzWzRdCisgI2RlZmluZSBTRUNDT01QX1BUX1BBUk02KF9yZWdzKSAo X3JlZ3MpLnJlZ3NbNV0KKysKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrI2luY2x1 ZGUgPGFzbS9wdHJhY2UuaD4KKysKKyt0eXBlZGVmIHN0cnVjdCBwdF9yZWdzIHJlZ3Nfc3RydWN0 OworKworKyNpZmRlZiBBUkNIX0NQVV9MSVRUTEVfRU5ESUFOCisrI2RlZmluZSBTRUNDT01QX0FS Q0ggQVVESVRfQVJDSF9QUEM2NExFCisrI2Vsc2UKKysjZGVmaW5lIFNFQ0NPTVBfQVJDSCBBVURJ VF9BUkNIX1BQQzY0CisrI2VuZGlmCisrCisrI2lmZGVmIF9fR0xJQkNfXworKyNkZWZpbmUgU0VD Q09NUF9SRUcoX2N0eCwgX3JlZykgKChfY3R4KS0+dWNfbWNvbnRleHQucmVncy0+Z3ByW19yZWdd KQorKyNlbHNlCisrI2RlZmluZSBTRUNDT01QX1JFRyhfY3R4LCBfcmVnKSAoKChzdHJ1Y3QgcHRf cmVncyAqKShfY3R4KS0+dWNfbWNvbnRleHQucmVncyktPmdwcltfcmVnXSkKKysjZW5kaWYKKysK KysjZGVmaW5lIFNFQ0NPTVBfUkVTVUxUKF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgsIDMpCisrI2Rl ZmluZSBTRUNDT01QX1NZU0NBTEwoX2N0eCkgU0VDQ09NUF9SRUcoX2N0eCwgMCkKKysjaWZkZWYg X19HTElCQ19fCisrI2RlZmluZSBTRUNDT01QX0lQKF9jdHgpIChfY3R4KS0+dWNfbWNvbnRleHQu cmVncy0+bmlwCisrI2Vsc2UKKysjZGVmaW5lIFNFQ0NPTVBfSVAoX2N0eCkgKChzdHJ1Y3QgcHRf cmVncyAqKShfY3R4KS0+dWNfbWNvbnRleHQucmVncyktPm5pcAorKyNlbmRpZgorKyNkZWZpbmUg U0VDQ09NUF9QQVJNMShfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCAzKQorKyNkZWZpbmUgU0VDQ09N UF9QQVJNMihfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCA0KQorKyNkZWZpbmUgU0VDQ09NUF9QQVJN MyhfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCA1KQorKyNkZWZpbmUgU0VDQ09NUF9QQVJNNChfY3R4 KSBTRUNDT01QX1JFRyhfY3R4LCA2KQorKyNkZWZpbmUgU0VDQ09NUF9QQVJNNShfY3R4KSBTRUND T01QX1JFRyhfY3R4LCA3KQorKyNkZWZpbmUgU0VDQ09NUF9QQVJNNihfY3R4KSBTRUNDT01QX1JF RyhfY3R4LCA4KQorKworKyNkZWZpbmUgU0VDQ09NUF9OUl9JRFggKG9mZnNldG9mKHN0cnVjdCBh cmNoX3NlY2NvbXBfZGF0YSwgbnIpKQorKyNkZWZpbmUgU0VDQ09NUF9BUkNIX0lEWCAob2Zmc2V0 b2Yoc3RydWN0IGFyY2hfc2VjY29tcF9kYXRhLCBhcmNoKSkKKysjZGVmaW5lIFNFQ0NPTVBfSVBf TVNCX0lEWCBcCisrICAob2Zmc2V0b2Yoc3RydWN0IGFyY2hfc2VjY29tcF9kYXRhLCBpbnN0cnVj dGlvbl9wb2ludGVyKSArIDQpCisrI2RlZmluZSBTRUNDT01QX0lQX0xTQl9JRFggXAorKyAgKG9m ZnNldG9mKHN0cnVjdCBhcmNoX3NlY2NvbXBfZGF0YSwgaW5zdHJ1Y3Rpb25fcG9pbnRlcikgKyAw KQorKyNkZWZpbmUgU0VDQ09NUF9BUkdfTVNCX0lEWChucikgXAorKyAgKG9mZnNldG9mKHN0cnVj dCBhcmNoX3NlY2NvbXBfZGF0YSwgYXJncykgKyA4ICogKG5yKSArIDQpCisrI2RlZmluZSBTRUND T01QX0FSR19MU0JfSURYKG5yKSBcCisrICAob2Zmc2V0b2Yoc3RydWN0IGFyY2hfc2VjY29tcF9k YXRhLCBhcmdzKSArIDggKiAobnIpICsgMCkKKysKKysjZGVmaW5lIFNFQ0NPTVBfUFRfUkVTVUxU KF9yZWdzKSAoX3JlZ3MpLmdwclszXQorKyNkZWZpbmUgU0VDQ09NUF9QVF9TWVNDQUxMKF9yZWdz KSAoX3JlZ3MpLmdwclswXQorKyNkZWZpbmUgU0VDQ09NUF9QVF9JUChfcmVncykgKF9yZWdzKS5u aXAKKysjZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTEoX3JlZ3MpIChfcmVncykuZ3ByWzNdCisrI2Rl ZmluZSBTRUNDT01QX1BUX1BBUk0yKF9yZWdzKSAoX3JlZ3MpLmdwcls0XQorKyNkZWZpbmUgU0VD Q09NUF9QVF9QQVJNMyhfcmVncykgKF9yZWdzKS5ncHJbNV0KKysjZGVmaW5lIFNFQ0NPTVBfUFRf UEFSTTQoX3JlZ3MpIChfcmVncykuZ3ByWzZdCisrI2RlZmluZSBTRUNDT01QX1BUX1BBUk01KF9y ZWdzKSAoX3JlZ3MpLmdwcls3XQorKyNkZWZpbmUgU0VDQ09NUF9QVF9QQVJNNihfcmVncykgKF9y ZWdzKS5ncHJbOF0KKysKKyAjZWxzZQorICNlcnJvciBVbnN1cHBvcnRlZCB0YXJnZXQgcGxhdGZv cm0KKyAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAt YnBmLWhlbHBlcnMvYmFzZWxpbmVfcG9saWN5LmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21p dW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL2Jhc2VsaW5lX3BvbGljeS5jYwor QEAgLTkxLDcgKzkxLDggQEAgYm9vbCBJc0Jhc2VsaW5lUG9saWN5V2F0Y2hlZChpbnQgc3lzbm8p CisgICAgICAgICAgU3lzY2FsbFNldHM6OklzUHJjdGwoc3lzbm8pIHx8CisgICAgICAgICAgU3lz Y2FsbFNldHM6OklzUHJvY2Vzc0dyb3VwT3JTZXNzaW9uKHN5c25vKSB8fAorICNpZiBkZWZpbmVk KF9faTM4Nl9fKSB8fCBcCistICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBk ZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQorKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZB TUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAorKyAgICBkZWZpbmVkKF9f cG93ZXJwYzY0X18pCisgICAgICAgICAgU3lzY2FsbFNldHM6OklzU29ja2V0Q2FsbChzeXNubykg fHwKKyAjZW5kaWYKKyAjaWYgZGVmaW5lZChfX2FybV9fKQorQEAgLTI1OCw3ICsyNTksNyBAQCBS ZXN1bHRFeHByIEV2YWx1YXRlU3lzY2FsbEltcGwoaW50IGZzX2RlCisgICB9CisgCisgI2lmIGRl ZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNf XykgfHwgXAorLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQorKyAgICBkZWZpbmVkKF9fYWFyY2g2 NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICBpZiAoc3lzbm8gPT0gX19OUl9tbWFw KQorICAgICByZXR1cm4gUmVzdHJpY3RNbWFwRmxhZ3MoKTsKKyAjZW5kaWYKK0BAIC0yNzksNyAr MjgwLDcgQEAgUmVzdWx0RXhwciBFdmFsdWF0ZVN5c2NhbGxJbXBsKGludCBmc19kZQorICAgICBy ZXR1cm4gUmVzdHJpY3RQcmN0bCgpOworIAorICNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRl ZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAorLSAgICBkZWZpbmVkKF9f YWFyY2g2NF9fKQorKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCisgICBpZiAoc3lzbm8gPT0gX19OUl9zb2NrZXRwYWlyKSB7CisgICAgIC8vIE9ubHkg YWxsb3cgQUZfVU5JWCwgUEZfVU5JWC4gQ3Jhc2ggaWYgYW55dGhpbmcgZWxzZSBpcyBzZWVuLgor ICAgICBzdGF0aWNfYXNzZXJ0KEFGX1VOSVggPT0gUEZfVU5JWCwKK0BAIC0zNDMsNyArMzQ0LDgg QEAgUmVzdWx0RXhwciBFdmFsdWF0ZVN5c2NhbGxJbXBsKGludCBmc19kZQorICAgfQorIAorICNp ZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCistICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFN SUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQorKyAgICAoZGVmaW5lZChBUkNIX0NQ VV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAorKyAgICBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICBpZiAoU3lzY2FsbFNldHM6OklzU29ja2V0Q2FsbChz eXNubykpCisgICAgIHJldHVybiBSZXN0cmljdFNvY2tldGNhbGxDb21tYW5kKCk7CisgI2VuZGlm CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1o ZWxwZXJzL2Jhc2VsaW5lX3BvbGljeV91bml0dGVzdC5jYworKysrIGIvc3JjLzNyZHBhcnR5L2No cm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9iYXNlbGluZV9wb2xpY3lf dW5pdHRlc3QuY2MKK0BAIC0zMTcsNyArMzE3LDcgQEAgVEVTVF9CQVNFTElORV9TSUdTWVMoX19O Ul9zeXNpbmZvKQorIFRFU1RfQkFTRUxJTkVfU0lHU1lTKF9fTlJfc3lzbG9nKQorIFRFU1RfQkFT RUxJTkVfU0lHU1lTKF9fTlJfdGltZXJfY3JlYXRlKQorIAorLSNpZiAhZGVmaW5lZChfX2FhcmNo NjRfXykKKysjaWYgIWRlZmluZWQoX19hYXJjaDY0X18pICYmICFkZWZpbmVkKF9fcG93ZXJwYzY0 X18pCisgVEVTVF9CQVNFTElORV9TSUdTWVMoX19OUl9pbm90aWZ5X2luaXQpCisgVEVTVF9CQVNF TElORV9TSUdTWVMoX19OUl92c2VydmVyKQorICNlbmRpZgorLS0tIGEvc3JjLzNyZHBhcnR5L2No cm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3BhcmFtZXRl cnNfcmVzdHJpY3Rpb25zLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9s aW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVyc19yZXN0cmljdGlvbnMu Y2MKK0BAIC00MCw3ICs0MCw4IEBACisgI2luY2x1ZGUgPHN5cy9wdHJhY2UuaD4KKyAjaWYgKGRl ZmluZWQoT1NfTElOVVgpIHx8IEJVSUxERkxBRyhJU19DSFJPTUVPU19MQUNST1MpKSAmJiBcCisg ICAgICFkZWZpbmVkKF9fYXJtX18pICYmICFkZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiAgICAgICAg ICAgXAorLSAgICAhZGVmaW5lZChQVFJBQ0VfR0VUX1RIUkVBRF9BUkVBKQorKyAgICAhZGVmaW5l ZChQVFJBQ0VfR0VUX1RIUkVBRF9BUkVBKSAmJgkJCSAgICBcCisrICAgICFkZWZpbmVkKF9fcG93 ZXJwYzY0X18pCisgLy8gQWxzbyBpbmNsdWRlIGFzbS9wdHJhY2UtYWJpLmggc2luY2UgcHRyYWNl LmggaW4gb2xkZXIgbGliYyAoZm9yIGluc3RhbmNlCisgLy8gdGhlIG9uZSBpbiBVYnVudHUgMTYu MDQgTFRTKSBpcyBtaXNzaW5nIFBUUkFDRV9HRVRfVEhSRUFEX0FSRUEuCisgLy8gYXNtL3B0cmFj ZS1hYmkuaCBkb2Vzbid0IGV4aXN0IG9uIGFybTMyIGFuZCBQVFJBQ0VfR0VUX1RIUkVBRF9BUkVB IGlzbid0CitAQCAtNDksNiArNTAsMTEgQEAKKyAjZW5kaWYKKyAjZW5kaWYgIC8vICFPU19OQUNM X05PTlNGSQorIAorKy8vIE9uIFBQQzY0LCBUQ0dFVFMgaXMgZGVmaW5lZCBpbiB0ZXJtcyBvZiBz dHJ1Y3QgdGVybWlvcywgc28gd2UgbXVzdCBpbmNsdWRlIHRlcm1pb3MuaAorKyNpZmRlZiBfX3Bv d2VycGM2NF9fCisrI2luY2x1ZGUgPHRlcm1pb3MuaD4KKysjZW5kaWYKKysKKyAjaWYgZGVmaW5l ZChPU19BTkRST0lEKQorIAorICNpZiAhZGVmaW5lZChGX0RVUEZEX0NMT0VYRUMpCitAQCAtMTA2 LDYgKzExMiwxNCBAQCBpbmxpbmUgYm9vbCBJc0FyY2hpdGVjdHVyZU1pcHMoKSB7CisgI2VuZGlm CisgfQorIAorK2lubGluZSBib29sIElzQXJjaGl0ZWN0dXJlUFBDNjQoKSB7CisrI2lmIGRlZmlu ZWQoX19wb3dlcnBjNjRfXykKKysgIHJldHVybiB0cnVlOworKyNlbHNlCisrICByZXR1cm4gZmFs c2U7CisrI2VuZGlmCisrfQorKworIC8vIFVidW50dSdzIHZlcnNpb24gb2YgZ2xpYmMgaGFzIGEg cmFjZSBjb25kaXRpb24gaW4gc2VtX3Bvc3QgdGhhdCBjYW4gY2F1c2UKKyAvLyBpdCB0byBjYWxs IGZ1dGV4KDIpIHdpdGggYm9ndXMgb3AgYXJndW1lbnRzLiBUbyB3b3JrYXJvdW5kIHRoaXMsIHdl IG5lZWQKKyAvLyB0byBhbGxvdyB0aG9zZSBmdXRleCgyKSBjYWxscyB0byBmYWlsIHdpdGggRUlO VkFMLCBpbnN0ZWFkIG9mIGNyYXNoaW5nIHRoZQorQEAgLTI3MCw2ICsyODQsOCBAQCBSZXN1bHRF eHByIFJlc3RyaWN0RmNudGxDb21tYW5kcygpIHsKKyAgIHVpbnQ2NF90IGtPTGFyZ2VGaWxlRmxh ZyA9IE9fTEFSR0VGSUxFOworICAgaWYgKElzQXJjaGl0ZWN0dXJlWDg2XzY0KCkgfHwgSXNBcmNo aXRlY3R1cmVJMzg2KCkgfHwgSXNBcmNoaXRlY3R1cmVNaXBzKCkpCisgICAgIGtPTGFyZ2VGaWxl RmxhZyA9IDAxMDAwMDA7CisrICBlbHNlIGlmIChJc0FyY2hpdGVjdHVyZVBQQzY0KCkpCisrICAg IGtPTGFyZ2VGaWxlRmxhZyA9IDAyMDAwMDA7CisgCisgICBjb25zdCBBcmc8aW50PiBjbWQoMSk7 CisgICBjb25zdCBBcmc8bG9uZz4gbG9uZ19hcmcoMik7CitAQCAtMjg3LDcgKzMwMywxNiBAQCBS ZXN1bHRFeHByIFJlc3RyaWN0RmNudGxDb21tYW5kcygpIHsKKyAgICAgICAgICAgICAgIEZfU0VU TEtXLAorICAgICAgICAgICAgICAgRl9HRVRMSywKKyAgICAgICAgICAgICAgIEZfRFVQRkQsCist ICAgICAgICAgICAgICBGX0RVUEZEX0NMT0VYRUMpLAorKyAgICAgICAgICAgICAgRl9EVVBGRF9D TE9FWEVDCisrI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysvLyBPbiBQUEM2NCwgRl9TRVRM SywgRl9HRVRMSywgRl9TRVRMS1cgYXJlIGRlZmluZWQgYXMgdGhlIDY0LWJpdCB2YXJpYW50cwor Ky8vIGJ1dCBnbGliYyB3aWxsIHNvbWV0aW1lcyBzdGlsbCB1c2UgdGhlIDMyLWJpdCB2ZXJzaW9u cy4gQWxsb3cgYm90aC4KKysgICAgICAgICAgICAgICwKKysgICAgICAgICAgICAgIDUsIC8qIEZf R0VUTEsgKDMyKSAqLworKyAgICAgICAgICAgICAgNiwgLyogRl9TRVRMSyAoMzIpICovCisrICAg ICAgICAgICAgICA3ICAvKiBGX1NFVExLVyAoMzIpICovCisrI2VuZGlmCisrCSAgICAgKSwKKyAg ICAgICAgICAgICAgQWxsb3coKSkKKyAgICAgICAuQ2FzZShGX1NFVEZMLAorICAgICAgICAgICAg IElmKChsb25nX2FyZyAmIH5rQWxsb3dlZE1hc2spID09IDAsIEFsbG93KCkpLkVsc2UoQ3Jhc2hT SUdTWVMoKSkpCitAQCAtMjk3LDcgKzMyMiw3IEBAIFJlc3VsdEV4cHIgUmVzdHJpY3RGY250bENv bW1hbmRzKCkgeworICAgLy8gY2xhbmctZm9ybWF0IG9uCisgfQorIAorLSNpZiBkZWZpbmVkKF9f aTM4Nl9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBk ZWZpbmVkKF9fbWlwc19fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgUmVzdWx0RXhwciBS ZXN0cmljdFNvY2tldGNhbGxDb21tYW5kKCkgeworICAgLy8gVW5mb3J0dW5hdGVseSwgd2UgYXJl IHVuYWJsZSB0byByZXN0cmljdCB0aGUgZmlyc3QgcGFyYW1ldGVyIHRvCisgICAvLyBzb2NrZXRw YWlyKDIpLiBXaGlsc3QgaW5pdGlhbGx5IHNvdW5kaW5nIGJhZCwgaXQncyBub3Rld29ydGh5IHRo YXQgdmVyeQorQEAgLTQ1NCw3ICs0NzksNyBAQCBSZXN1bHRFeHByIFJlc3RyaWN0UHRyYWNlKCkg eworICNlbmRpZgorICAgcmV0dXJuIFN3aXRjaChyZXF1ZXN0KQorICAgICAgIC5DQVNFUygoCist I2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKQorKyNpZiAhZGVmaW5lZChfX2FhcmNoNjRfXykgJiYg IWRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgICAgICAgICAgICAgIFBUUkFDRV9HRVRSRUdT LCBQVFJBQ0VfR0VURlBSRUdTLAorICNpZiBkZWZpbmVkKFRSQUNFX0dFVF9USFJFQURfQVJFQSkK KyAgICAgICAgICAgICAgICAgIFBUUkFDRV9HRVRfVEhSRUFEX0FSRUEsCistLS0gYS9zcmMvM3Jk cGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxf cGFyYW1ldGVyc19yZXN0cmljdGlvbnMuaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Nh bmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3BhcmFtZXRlcnNfcmVzdHJp Y3Rpb25zLmgKK0BAIC00OSw3ICs0OSw3IEBAIFNBTkRCT1hfRVhQT1JUIGJwZl9kc2w6OlJlc3Vs dEV4cHIgUmVzdHIKKyAvLyBPX05PTkJMT0NLIHwgT19TWU5DIHwgT19MQVJHRUZJTEUgfCBPX0NM T0VYRUMgfCBPX05PQVRJTUUuCisgU0FOREJPWF9FWFBPUlQgYnBmX2RzbDo6UmVzdWx0RXhwciBS ZXN0cmljdEZjbnRsQ29tbWFuZHMoKTsKKyAKKy0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVm aW5lZChfX21pcHNfXykKKysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX21pcHNf XykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorIC8vIFJlc3RyaWN0IHNvY2tldGNhbGwoMikg dG8gb25seSBhbGxvdyBzb2NrZXRwYWlyKDIpLCBzZW5kKDIpLCByZWN2KDIpLAorIC8vIHNlbmR0 bygyKSwgcmVjdmZyb20oMiksIHNodXRkb3duKDIpLCBzZW5kbXNnKDIpIGFuZCByZWN2bXNnKDIp LgorIFNBTkRCT1hfRVhQT1JUIGJwZl9kc2w6OlJlc3VsdEV4cHIgUmVzdHJpY3RTb2NrZXRjYWxs Q29tbWFuZCgpOworLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2Vj Y29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmNjCitA QCAtMjgsNyArMjgsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0tpbGwoaW50IHN5c25vKSB7Cisg Ym9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkR2V0dGltZShpbnQgc3lzbm8pIHsKKyAgIHN3aXRj aCAoc3lzbm8pIHsKKyAgICAgY2FzZSBfX05SX2dldHRpbWVvZmRheToKKy0jaWYgZGVmaW5lZChf X2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBcCisrI2lmIGRlZmluZWQoX19pMzg2 X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSB8fCBc CisgICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BV XzMyX0JJVFMpKQorICAgICBjYXNlIF9fTlJfdGltZToKKyAjZW5kaWYKK0BAIC01MSwxMiArNTEs MTIgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkR2V0dGltZShpbnQgcworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZpbHRlcmVkIGJ5IFJlc3RyaWN0Q2xvY2tJ RCgpLgorICAgICBjYXNlIF9fTlJfY2xvY2tfbmFub3NsZWVwX3RpbWU2NDogIC8vIFBhcmFtZXRl cnMgZmlsdGVyZWQgYnkgUmVzdHJpY3RDbG9ja0lEKCkuCisgI2VuZGlmCistI2lmIGRlZmluZWQo X19pMzg2X18pIHx8IFwKKysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKSB8fCBcCisgICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZp bmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQorICAgICBjYXNlIF9fTlJfZnRpbWU6ICAvLyBPYnNvbGV0 ZS4KKyAjZW5kaWYKKyAgICAgY2FzZSBfX05SX3NldHRpbWVvZmRheTogIC8vIFByaXZpbGVnZWQu CistI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKKysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKSB8fCBcCisgICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNf RkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQorICAgICBjYXNlIF9fTlJfc3Rp bWU6CisgI2VuZGlmCitAQCAtMTM1LDcgKzEzNSw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzRmls ZVN5c3RlbShpbnQgc3lzbm8KKyAgICAgY2FzZSBfX05SX2ZhY2Nlc3NhdDogIC8vIEVQRVJNIG5v dCBhIHZhbGlkIGVycm5vLgorICAgICBjYXNlIF9fTlJfZmNobW9kYXQ6CisgICAgIGNhc2UgX19O Ul9mY2hvd25hdDogIC8vIFNob3VsZCBiZSBjYWxsZWQgY2hvd25hdCA/CistI2lmIGRlZmluZWQo X194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykKKysjaWYgZGVmaW5lZChfX3g4Nl82 NF9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisg ICAgIGNhc2UgX19OUl9uZXdmc3RhdGF0OiAgLy8gZnN0YXRhdCgpLiBFUEVSTSBub3QgYSB2YWxp ZCBlcnJuby4KKyAjZWxpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8 IFwKKyAgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9D UFVfMzJfQklUUykpCitAQCAtMTU0LDcgKzE1NCw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzRmls ZVN5c3RlbShpbnQgc3lzbm8KKyAgICAgY2FzZSBfX05SX21lbWZkX2NyZWF0ZToKKyAgICAgY2Fz ZSBfX05SX21rZGlyYXQ6CisgICAgIGNhc2UgX19OUl9ta25vZGF0OgorLSNpZiBkZWZpbmVkKF9f aTM4Nl9fKQorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18p CisgICAgIGNhc2UgX19OUl9vbGRsc3RhdDoKKyAgICAgY2FzZSBfX05SX29sZHN0YXQ6CisgI2Vu ZGlmCitAQCAtMTY3LDcgKzE2Nyw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzRmlsZVN5c3RlbShp bnQgc3lzbm8KKyAgICAgY2FzZSBfX05SX3N0YXQ2NDoKKyAjZW5kaWYKKyAgICAgY2FzZSBfX05S X3N0YXRmczogIC8vIEVQRVJNIG5vdCBhIHZhbGlkIGVycm5vLgorLSNpZiBkZWZpbmVkKF9faTM4 Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKKysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwg ZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pIHx8IFwKKyAgICAgKGRl ZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykp CisgICAgIGNhc2UgX19OUl9zdGF0ZnM2NDoKKyAjZW5kaWYKK0BAIC0xNzksNyArMTc5LDggQEAg Ym9vbCBTeXNjYWxsU2V0czo6SXNGaWxlU3lzdGVtKGludCBzeXNubworICAgICBjYXNlIF9fTlJf dHJ1bmNhdGU2NDoKKyAjZW5kaWYKKyAgICAgY2FzZSBfX05SX3VubGlua2F0OgorLSNpZiBkZWZp bmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18p CisrI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5l ZChfX21pcHNfXykgfHwgXAorKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2Ug X19OUl91dGltZToKKyAjZW5kaWYKKyAgICAgY2FzZSBfX05SX3V0aW1lbnNhdDogIC8vIE5ldy4K K0BAIC0yMDQsNyArMjA1LDggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkRmlsZVN5c3Rl bUFjYworICNlbmRpZgorICAgICAgIHJldHVybiB0cnVlOworIC8vIFRPRE8oamxuKTogdGhlc2Ug c2hvdWxkIGJlIGRlbmllZCBncmFjZWZ1bGx5IGFzIHdlbGwgKG1vdmVkIGJlbG93KS4KKy0jaWYg ZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlw c19fKQorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRl ZmluZWQoX19taXBzX18pIHx8IFwKKysgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBj YXNlIF9fTlJfZmFkdmlzZTY0OiAgLy8gRVBFUk0gbm90IGEgdmFsaWQgZXJybm8uCisgI2VuZGlm CisgI2lmIGRlZmluZWQoX19pMzg2X18pCitAQCAtMjE2LDEyICsyMTgsMTIgQEAgYm9vbCBTeXNj YWxsU2V0czo6SXNBbGxvd2VkRmlsZVN5c3RlbUFjYworICAgICBjYXNlIF9fTlJfZmRhdGFzeW5j OiAgLy8gRVBFUk0gbm90IGEgdmFsaWQgZXJybm8uCisgICAgIGNhc2UgX19OUl9mbG9jazogICAg ICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KKyAgICAgY2FzZSBfX05SX2ZzdGF0ZnM6ICAg IC8vIEdpdmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHdob2xlIGZpbGVzeXN0ZW0uCistI2lmIGRl ZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAorKyNpZiBkZWZpbmVkKF9f aTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykgfHwg XAorICAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQ VV8zMl9CSVRTKSkKKyAgICAgY2FzZSBfX05SX2ZzdGF0ZnM2NDoKKyAjZW5kaWYKKyAgICAgY2Fz ZSBfX05SX2ZzeW5jOiAgLy8gRVBFUk0gbm90IGEgdmFsaWQgZXJybm8uCistI2lmIGRlZmluZWQo X19pMzg2X18pCisrI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRf XykKKyAgICAgY2FzZSBfX05SX29sZGZzdGF0OgorICNlbmRpZgorICNpZiBkZWZpbmVkKF9faTM4 Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKK0BA IC0yMjksNiArMjMxLDggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkRmlsZVN5c3RlbUFj YworICAgICBjYXNlIF9fTlJfc3luY19maWxlX3JhbmdlOiAgLy8gRVBFUk0gbm90IGEgdmFsaWQg ZXJybm8uCisgI2VsaWYgZGVmaW5lZChfX2FybV9fKQorICAgICBjYXNlIF9fTlJfYXJtX3N5bmNf ZmlsZV9yYW5nZTogIC8vIEVQRVJNIG5vdCBhIHZhbGlkIGVycm5vLgorKyNlbGlmIGRlZmluZWQo X19wb3dlcnBjNjRfXykKKysgICAgY2FzZSBfX05SX3N5bmNfZmlsZV9yYW5nZTI6IC8vIEVQRVJN IG5vdCBhIHZhbGlkIGVycm5vLgorICNlbmRpZgorICAgICBkZWZhdWx0OgorICAgICAgIHJldHVy biBmYWxzZTsKK0BAIC0yNDgsNyArMjUyLDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNEZW5pZWRG aWxlU3lzdGVtQWNjZQorICAgICBjYXNlIF9fTlJfZ2V0ZGVudHM6ICAgIC8vIEVQRVJNIG5vdCBh IHZhbGlkIGVycm5vLgorICNlbmRpZgorICAgICBjYXNlIF9fTlJfZ2V0ZGVudHM2NDogIC8vIEVQ RVJNIG5vdCBhIHZhbGlkIGVycm5vLgorLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCisrI2lm IGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykgfHwgXAorICAgICAo ZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRT KSkKKyAgICAgY2FzZSBfX05SX3JlYWRkaXI6CisgI2VuZGlmCitAQCAtMjkwLDcgKzI5NCw3IEBA IGJvb2wgU3lzY2FsbFNldHM6OklzR2V0U2ltcGxlSWQoaW50IHN5c24KKyBib29sIFN5c2NhbGxT ZXRzOjpJc1Byb2Nlc3NQcml2aWxlZ2VDaGFuZ2UoaW50IHN5c25vKSB7CisgICBzd2l0Y2ggKHN5 c25vKSB7CisgICAgIGNhc2UgX19OUl9jYXBzZXQ6CistI2lmIGRlZmluZWQoX19pMzg2X18pIHx8 IGRlZmluZWQoX194ODZfNjRfXykKKysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChf X3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl9pb3Bl cm06ICAvLyBJbnRlbCBwcml2aWxlZ2UuCisgICAgIGNhc2UgX19OUl9pb3BsOiAgICAvLyBJbnRl bCBwcml2aWxlZ2UuCisgI2VuZGlmCitAQCAtMzQwLDcgKzM0NCw3IEBAIGJvb2wgU3lzY2FsbFNl dHM6OklzQWxsb3dlZFNpZ25hbEhhbmRsaW4KKyAgICAgY2FzZSBfX05SX3J0X3NpZ3Byb2NtYXNr OgorICAgICBjYXNlIF9fTlJfcnRfc2lncmV0dXJuOgorICAgICBjYXNlIF9fTlJfcnRfc2lndGlt ZWR3YWl0OgorLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwK KysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9f cG93ZXJwYzY0X18pIHx8IFwKKyAgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYm IGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCisgICAgIGNhc2UgX19OUl9ydF9zaWd0aW1lZHdh aXRfdGltZTY0OgorICAgICBjYXNlIF9fTlJfc2lnYWN0aW9uOgorQEAgLTM1Nyw3ICszNjEsNyBA QCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRTaWduYWxIYW5kbGluCisgICAgIGNhc2UgX19O Ul9zaWduYWxmZDoKKyAjZW5kaWYKKyAgICAgY2FzZSBfX05SX3NpZ25hbGZkNDoKKy0jaWYgZGVm aW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCisrI2lmIGRlZmluZWQoX19p Mzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSB8fCBc CisgICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BV XzMyX0JJVFMpKQorICAgICBjYXNlIF9fTlJfc2lncGVuZGluZzoKKyAgICAgY2FzZSBfX05SX3Np Z3N1c3BlbmQ6CitAQCAtMzgyLDcgKzM4Niw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dl ZE9wZXJhdGlvbk9uRmQKKyAjZW5kaWYKKyAgICAgY2FzZSBfX05SX2R1cDM6CisgI2lmIGRlZmlu ZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8 fCBcCistICAgIGRlZmluZWQoX19hYXJjaDY0X18pCisrICAgIGRlZmluZWQoX19hYXJjaDY0X18p IHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX3NodXRkb3duOgorICNl bmRpZgorICAgICAgIHJldHVybiB0cnVlOworQEAgLTQxNiw3ICs0MjAsNyBAQCBib29sIFN5c2Nh bGxTZXRzOjpJc0FsbG93ZWRQcm9jZXNzU3RhcnRPCisgICAgIGNhc2UgX19OUl9tZW1iYXJyaWVy OgorICAgICBjYXNlIF9fTlJfd2FpdDQ6CisgICAgIGNhc2UgX19OUl93YWl0aWQ6CistI2lmIGRl ZmluZWQoX19pMzg2X18pCisrI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19wb3dl cnBjNjRfXykKKyAgICAgY2FzZSBfX05SX3dhaXRwaWQ6CisgI2VuZGlmCisgI2lmICFkZWZpbmVk KF9fR0xJQkNfXykKK0BAIC00MzgsNyArNDQyLDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxv d2VkUHJvY2Vzc1N0YXJ0TworICAgICBjYXNlIF9fTlJfc2V0X3RpZF9hZGRyZXNzOgorICNlbmRp ZgorICAgICBjYXNlIF9fTlJfdW5zaGFyZToKKy0jaWYgIWRlZmluZWQoX19taXBzX18pICYmICFk ZWZpbmVkKF9fYWFyY2g2NF9fKQorKyNpZiAhZGVmaW5lZChfX21pcHNfXykgJiYgIWRlZmluZWQo X19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX3Zm b3JrOgorICNlbmRpZgorICAgICBkZWZhdWx0OgorQEAgLTQ5MSw3ICs0OTUsNyBAQCBib29sIFN5 c2NhbGxTZXRzOjpJc0FsbG93ZWRHZXRPck1vZGlmeVNvCisgICAgICAgcmV0dXJuIHRydWU7Cisg ICAgIGRlZmF1bHQ6CisgI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9f KSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCistICAgIGRlZmluZWQoX19hYXJjaDY0X18pCisr ICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAg Y2FzZSBfX05SX3NvY2tldHBhaXI6ICAvLyBXZSB3aWxsIHdhbnQgdG8gaW5zcGVjdCBpdHMgYXJn dW1lbnQuCisgI2VuZGlmCisgICAgICAgcmV0dXJuIGZhbHNlOworQEAgLTUwMSw3ICs1MDUsNyBA QCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRHZXRPck1vZGlmeVNvCisgYm9vbCBTeXNjYWxs U2V0czo6SXNEZW5pZWRHZXRPck1vZGlmeVNvY2tldChpbnQgc3lzbm8pIHsKKyAgIHN3aXRjaCAo c3lzbm8pIHsKKyAjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8 IGRlZmluZWQoX19taXBzX18pIHx8IFwKKy0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKKysgICAg ZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNl IF9fTlJfYWNjZXB0OgorICAgICBjYXNlIF9fTlJfYWNjZXB0NDoKKyAgICAgY2FzZSBfX05SX2Jp bmQ6CitAQCAtNTE1LDcgKzUxOSw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzRGVuaWVkR2V0T3JN b2RpZnlTb2MKKyAgIH0KKyB9CisgCistI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKKysjaWYg ZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSB8fCBcCisgICAgIChk ZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMp KQorIC8vIEJpZyBtdWx0aXBsZXhpbmcgc3lzdGVtIGNhbGwgZm9yIHNvY2tldHMuCisgYm9vbCBT eXNjYWxsU2V0czo6SXNTb2NrZXRDYWxsKGludCBzeXNubykgeworQEAgLTUzMCw3ICs1MzQsOCBA QCBib29sIFN5c2NhbGxTZXRzOjpJc1NvY2tldENhbGwoaW50IHN5c25vCisgfQorICNlbmRpZgor IAorLSNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5l ZChfX21pcHNfXykKKysjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18p IHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKKysgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQor IGJvb2wgU3lzY2FsbFNldHM6OklzTmV0d29ya1NvY2tldEluZm9ybWF0aW9uKGludCBzeXNubykg eworICAgc3dpdGNoIChzeXNubykgeworICAgICBjYXNlIF9fTlJfZ2V0cGVlcm5hbWU6CitAQCAt NTU4LDcgKzU2Myw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEFkZHJlc3NTcGFjZUEK KyAgICAgY2FzZSBfX05SX21pbmNvcmU6CisgICAgIGNhc2UgX19OUl9tbG9ja2FsbDoKKyAjaWYg ZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlw c19fKSB8fCBcCistICAgIGRlZmluZWQoX19hYXJjaDY0X18pCisrICAgIGRlZmluZWQoX19hYXJj aDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX21tYXA6Cisg I2VuZGlmCisgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAor QEAgLTU4OSw3ICs1OTQsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRBZGRyZXNzU3Bh Y2VBCisgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkR2VuZXJhbElvKGludCBzeXNubykgewor ICAgc3dpdGNoIChzeXNubykgeworICAgICBjYXNlIF9fTlJfbHNlZWs6CistI2lmIGRlZmluZWQo X19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAorKyNpZiBkZWZpbmVkKF9faTM4Nl9f KSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykgfHwgXAorICAg ICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9C SVRTKSkKKyAgICAgY2FzZSBfX05SX19sbHNlZWs6CisgI2VuZGlmCitAQCAtNjA5LDI3ICs2MTQs MjcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkR2VuZXJhbElvKGludAorICAgICBjYXNl IF9fTlJfcmVhZDoKKyAgICAgY2FzZSBfX05SX3JlYWR2OgorICAgICBjYXNlIF9fTlJfcHJlYWQ2 NDoKKy0jaWYgZGVmaW5lZChfX2FybV9fKSB8fCBcCisrI2lmIGRlZmluZWQoX19hcm1fXykgfHwg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKSB8fCBcCisgICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNf RkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQorICAgICBjYXNlIF9fTlJfcmVj djoKKyAjZW5kaWYKKyAjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18p IHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKKy0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKKysg ICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBj YXNlIF9fTlJfcmVjdmZyb206ICAvLyBDb3VsZCBzcGVjaWZ5IHNvdXJjZS4KKyAgICAgY2FzZSBf X05SX3JlY3Ztc2c6ICAgLy8gQ291bGQgc3BlY2lmeSBzb3VyY2UuCisgI2VuZGlmCistI2lmIGRl ZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykKKysjaWYgZGVmaW5lZChfX2kz ODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisg ICAgIGNhc2UgX19OUl9zZWxlY3Q6CisgI2VuZGlmCistI2lmIGRlZmluZWQoX19pMzg2X18pIHx8 IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX21pcHNfXykKKysjaWYgZGVmaW5lZChfX2kz ODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl9fbmV3c2VsZWN0OgorICNlbmRpZgorLSNp ZiBkZWZpbmVkKF9fYXJtX18pIHx8IFwKKysjaWYgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVk KF9fcG93ZXJwYzY0X18pIHx8IFwKKyAgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkp ICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCisgICAgIGNhc2UgX19OUl9zZW5kOgorICNl bmRpZgorICNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVm aW5lZChfX21pcHNfXykgfHwgXAorLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQorKyAgICBkZWZp bmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19O Ul9zZW5kbXNnOiAgLy8gQ291bGQgc3BlY2lmeSBkZXN0aW5hdGlvbi4KKyAgICAgY2FzZSBfX05S X3NlbmR0bzogICAvLyBDb3VsZCBzcGVjaWZ5IGRlc3RpbmF0aW9uLgorICNlbmRpZgorQEAgLTY4 NCw3ICs2ODksNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRCYXNpY1NjaGVkdWxlCisg ICAgIGNhc2UgX19OUl9uYW5vc2xlZXA6CisgICAgICAgcmV0dXJuIHRydWU7CisgICAgIGNhc2Ug X19OUl9nZXRwcmlvcml0eToKKy0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2Fy bV9fKSB8fCBcCisrI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKSB8fCBcCisgICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNf RkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQorICAgICBjYXNlIF9fTlJfbmlj ZToKKyAjZW5kaWYKK0BAIC02OTYsNyArNzAxLDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxv d2VkQmFzaWNTY2hlZHVsZQorIAorIGJvb2wgU3lzY2FsbFNldHM6OklzQWRtaW5PcGVyYXRpb24o aW50IHN5c25vKSB7CisgICBzd2l0Y2ggKHN5c25vKSB7CistI2lmIGRlZmluZWQoX19pMzg2X18p IHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZp bmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykgfHwgXAorICAgICAoZGVmaW5l ZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKKyAg ICAgY2FzZSBfX05SX2JkZmx1c2g6CisgI2VuZGlmCitAQCAtNzEzLDcgKzcxOCw4IEBAIGJvb2wg U3lzY2FsbFNldHM6OklzQWRtaW5PcGVyYXRpb24oaW50IHMKKyAKKyBib29sIFN5c2NhbGxTZXRz OjpJc0tlcm5lbE1vZHVsZShpbnQgc3lzbm8pIHsKKyAgIHN3aXRjaCAoc3lzbm8pIHsKKy0jaWYg ZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlw c19fKQorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRl ZmluZWQoX19taXBzX18pIHx8IFwKKysgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBj YXNlIF9fTlJfY3JlYXRlX21vZHVsZToKKyAgICAgY2FzZSBfX05SX2dldF9rZXJuZWxfc3ltczog IC8vIFNob3VsZCBFTk9TWVMuCisgICAgIGNhc2UgX19OUl9xdWVyeV9tb2R1bGU6CitAQCAtNzQ1 LDcgKzc1MSw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzRnNDb250cm9sKGludCBzeXNubykKKyAg ICAgY2FzZSBfX05SX3F1b3RhY3RsOgorICAgICBjYXNlIF9fTlJfc3dhcG9mZjoKKyAgICAgY2Fz ZSBfX05SX3N3YXBvbjoKKy0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAorKyNpZiBkZWZpbmVk KF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pIHx8IFwKKyAgICAgKGRlZmluZWQo QVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCisgICAg IGNhc2UgX19OUl91bW91bnQ6CisgI2VuZGlmCitAQCAtNzYyLDcgKzc2OCw3IEBAIGJvb2wgU3lz Y2FsbFNldHM6OklzTnVtYShpbnQgc3lzbm8pIHsKKyAgICAgY2FzZSBfX05SX2dldGNwdToKKyAg ICAgY2FzZSBfX05SX21iaW5kOgorICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9f eDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKKy0gICAgZGVmaW5lZChfX2FhcmNo NjRfXykKKysgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQorICAgICBjYXNlIF9fTlJfbWlncmF0ZV9wYWdlczoKKyAjZW5kaWYKKyAgICAgY2FzZSBfX05S X21vdmVfcGFnZXM6CitAQCAtNzk3LDEzICs4MDMsMTMgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNH bG9iYWxQcm9jZXNzRW52aXJvbgorICAgc3dpdGNoIChzeXNubykgeworICAgICBjYXNlIF9fTlJf YWNjdDogIC8vIFByaXZpbGVnZWQuCisgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQo X194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAorLSAgICBkZWZpbmVkKF9fYWFy Y2g2NF9fKQorKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0 X18pCisgICAgIGNhc2UgX19OUl9nZXRybGltaXQ6CisgI2VuZGlmCistI2lmIGRlZmluZWQoX19p Mzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykKKysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVm aW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl91 Z2V0cmxpbWl0OgorICNlbmRpZgorLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCisrI2lmIGRl ZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykgfHwgXAorICAgICAoZGVm aW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkK KyAgICAgY2FzZSBfX05SX3VsaW1pdDoKKyAjZW5kaWYKK0BAIC04MzgsNyArODQ0LDcgQEAgYm9v bCBTeXNjYWxsU2V0czo6SXNHbG9iYWxTeXN0ZW1TdGF0dXMoaQorICNlbmRpZgorICAgICBjYXNl IF9fTlJfc3lzaW5mbzoKKyAgICAgY2FzZSBfX05SX3VuYW1lOgorLSNpZiBkZWZpbmVkKF9faTM4 Nl9fKQorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisg ICAgIGNhc2UgX19OUl9vbGR1bmFtZToKKyAgICAgY2FzZSBfX05SX29sZG9sZHVuYW1lOgorICNl bmRpZgorQEAgLTkwNCw4ICs5MTAsMTYgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNTeXN0ZW1WU2Vt YXBob3JlcyhpbgorIH0KKyAjZW5kaWYKKyAKKysvKiBzaGl0dHkgaGFjayBhcm91bmQgVm9pZCdz IDQuMTkga2VybmVsIGhlYWRlcnMgbWlzc2luZyB0aG9zZSBudW1iZXJzICovCisrI2lmIGRlZmlu ZWQoX19wb3dlcnBjNjRfXykgJiYgIWRlZmluZWQoX19OUl9zaG1nZXQpCisrI2RlZmluZSBfX05S X3NobWdldCAzOTUKKysjZGVmaW5lIF9fTlJfc2htY3RsIDM5NgorKyNkZWZpbmUgX19OUl9zaG1h dCAzOTcKKysjZGVmaW5lIF9fTlJfc2htZHQgMzk4CisrI2VuZGlmCisrCisgI2lmIGRlZmluZWQo X19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBc CistICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCisrICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19w b3dlcnBjNjRfXykgfHwgXAorICAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYg ZGVmaW5lZChBUkNIX0NQVV82NF9CSVRTKSkKKyAvLyBUaGVzZSBnaXZlIGEgbG90IG9mIGFtYmll bnQgYXV0aG9yaXR5IGFuZCBieXBhc3MgdGhlIHNldHVpZCBzYW5kYm94LgorIGJvb2wgU3lzY2Fs bFNldHM6OklzU3lzdGVtVlNoYXJlZE1lbW9yeShpbnQgc3lzbm8pIHsKK0BAIC05MzYsNyArOTUw LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNTeXN0ZW1WTWVzc2FnZVF1ZXVlKAorIH0KKyAjZW5k aWYKKyAKKy0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAorKyNpZiBkZWZpbmVkKF9faTM4Nl9f KSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pIHx8IFwKKyAgICAgKGRlZmluZWQoQVJDSF9DUFVf TUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCisgLy8gQmlnIHN5c3Rl bSBWIG11bHRpcGxleGluZyBzeXN0ZW0gY2FsbC4KKyBib29sIFN5c2NhbGxTZXRzOjpJc1N5c3Rl bVZJcGMoaW50IHN5c25vKSB7CitAQCAtOTU2LDcgKzk3MCw3IEBAIGJvb2wgU3lzY2FsbFNldHM6 OklzQW55U3lzdGVtVihpbnQgc3lzbm8KKyAgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1J TFkpICYmIGRlZmluZWQoQVJDSF9DUFVfNjRfQklUUykpCisgICByZXR1cm4gSXNTeXN0ZW1WTWVz c2FnZVF1ZXVlKHN5c25vKSB8fCBJc1N5c3RlbVZTZW1hcGhvcmVzKHN5c25vKSB8fAorICAgICAg ICAgIElzU3lzdGVtVlNoYXJlZE1lbW9yeShzeXNubyk7CistI2VsaWYgZGVmaW5lZChfX2kzODZf XykgfHwgXAorKyNlbGlmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRf XykgfHwgXAorICAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChB UkNIX0NQVV8zMl9CSVRTKSkKKyAgIHJldHVybiBJc1N5c3RlbVZJcGMoc3lzbm8pOworICNlbmRp ZgorQEAgLTEwMTQsNyArMTAyOCw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzRmFOb3RpZnkoaW50 IHN5c25vKQorIGJvb2wgU3lzY2FsbFNldHM6OklzVGltZXIoaW50IHN5c25vKSB7CisgICBzd2l0 Y2ggKHN5c25vKSB7CisgICAgIGNhc2UgX19OUl9nZXRpdGltZXI6CistI2lmIGRlZmluZWQoX19p Mzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykKKysjaWYg ZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlw c19fKSB8fCBcCisrICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX2Fs YXJtOgorICNlbmRpZgorICAgICBjYXNlIF9fTlJfc2V0aXRpbWVyOgorQEAgLTEwOTYsMTcgKzEx MTEsMjAgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNNaXNjKGludCBzeXNubykgeworICAgICBjYXNl IF9fTlJfc3luY2ZzOgorICAgICBjYXNlIF9fTlJfdmhhbmd1cDoKKyAvLyBUaGUgc3lzdGVtIGNh bGxzIGJlbG93IGFyZSBub3QgaW1wbGVtZW50ZWQuCistI2lmIGRlZmluZWQoX19pMzg2X18pIHx8 IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykKKysjaWYgZGVmaW5lZChf X2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBc CisrICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX2Fmc19zeXNjYWxs OgorICNlbmRpZgorICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCistICAgIChkZWZpbmVkKEFS Q0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQorKyAgICAo ZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRT KSkgfHwgXAorKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl9icmVh azoKKyAjZW5kaWYKKy0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9f KSB8fCBkZWZpbmVkKF9fbWlwc19fKQorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVk KF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKKysgICAgZGVmaW5lZChfX3Bv d2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfZ2V0cG1zZzoKKyAjZW5kaWYKKy0jaWYgZGVmaW5l ZChfX2kzODZfXykgfHwgXAorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pIHx8IFwKKyAgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRl ZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCisgICAgIGNhc2UgX19OUl9ndHR5OgorICAgICBjYXNl IF9fTlJfaWRsZToKK0BAIC0xMTE1LDIwICsxMTMzLDIxIEBAIGJvb2wgU3lzY2FsbFNldHM6Oklz TWlzYyhpbnQgc3lzbm8pIHsKKyAgICAgY2FzZSBfX05SX3Byb2Y6CisgICAgIGNhc2UgX19OUl9w cm9maWw6CisgI2VuZGlmCistI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZf NjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykKKysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVm aW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCisrICAgIGRlZmluZWQo X19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX3B1dHBtc2c6CisgI2VuZGlmCisgI2lmIGRl ZmluZWQoX194ODZfNjRfXykKKyAgICAgY2FzZSBfX05SX3NlY3VyaXR5OgorICNlbmRpZgorLSNp ZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCisrI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmlu ZWQoX19wb3dlcnBjNjRfXykgfHwgXAorICAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlM WSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKKyAgICAgY2FzZSBfX05SX3N0dHk6Cisg I2VuZGlmCistI2lmIGRlZmluZWQoX194ODZfNjRfXykKKysjaWYgZGVmaW5lZChfX3g4Nl82NF9f KSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl90dXhjYWxsOgorICNl bmRpZgorLSNpZiAhZGVmaW5lZChfX2FhcmNoNjRfXykKKysjaWYgIWRlZmluZWQoX19hYXJjaDY0 X18pICYmICFkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl92c2VydmVyOgor ICNlbmRpZgorICAgICAgIHJldHVybiB0cnVlOworLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuaAorKysrIGIv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9z eXNjYWxsX3NldHMuaAorQEAgLTQzLDEzICs0MywxNCBAQCBjbGFzcyBTQU5EQk9YX0VYUE9SVCBT eXNjYWxsU2V0cyB7CisgICBzdGF0aWMgYm9vbCBJc0RlbmllZEdldE9yTW9kaWZ5U29ja2V0KGlu dCBzeXNubyk7CisgCisgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKKy0gICAgKGRlZmluZWQo QVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCisrICAg IChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJ VFMpKSB8fCBcCisrICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgIC8vIEJpZyBtdWx0aXBs ZXhpbmcgc3lzdGVtIGNhbGwgZm9yIHNvY2tldHMuCisgICBzdGF0aWMgYm9vbCBJc1NvY2tldENh bGwoaW50IHN5c25vKTsKKyAjZW5kaWYKKyAKKyAjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBk ZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKKy0gICAgZGVmaW5lZChf X2FhcmNoNjRfXykKKysgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQorICAgc3RhdGljIGJvb2wgSXNOZXR3b3JrU29ja2V0SW5mb3JtYXRpb24oaW50IHN5 c25vKTsKKyAjZW5kaWYKKyAKK0BAIC03Nyw3ICs3OCw3IEBAIGNsYXNzIFNBTkRCT1hfRVhQT1JU IFN5c2NhbGxTZXRzIHsKKyAgIHN0YXRpYyBib29sIElzU3lzdGVtVlNlbWFwaG9yZXMoaW50IHN5 c25vKTsKKyAjZW5kaWYKKyAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82 NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKKy0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykg fHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgZGVmaW5l ZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSB8fCBcCisgICAgIChkZWZp bmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzY0X0JJVFMpKQor ICAgLy8gVGhlc2UgZ2l2ZSBhIGxvdCBvZiBhbWJpZW50IGF1dGhvcml0eSBhbmQgYnlwYXNzIHRo ZSBzZXR1aWQgc2FuZGJveC4KKyAgIHN0YXRpYyBib29sIElzU3lzdGVtVlNoYXJlZE1lbW9yeShp bnQgc3lzbm8pOworQEAgLTg5LDcgKzkwLDggQEAgY2xhc3MgU0FOREJPWF9FWFBPUlQgU3lzY2Fs bFNldHMgeworICNlbmRpZgorIAorICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCistICAgIChk ZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMp KQorKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQ VV8zMl9CSVRTKSkgfHwgXAorKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAvLyBCaWcg c3lzdGVtIFYgbXVsdGlwbGV4aW5nIHN5c3RlbSBjYWxsLgorICAgc3RhdGljIGJvb2wgSXNTeXN0 ZW1WSXBjKGludCBzeXNubyk7CisgI2VuZGlmCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0v c2FuZGJveC9saW51eC9zZWNjb21wLWJwZi9zeXNjYWxsLmNjCisrKysgYi9zcmMvM3JkcGFydHkv Y2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi9zeXNjYWxsLmNjCitAQCAtMTgsNyAr MTgsNyBAQCBuYW1lc3BhY2Ugc2FuZGJveCB7CisgbmFtZXNwYWNlIHsKKyAKKyAjaWYgZGVmaW5l ZChBUkNIX0NQVV9YODZfRkFNSUxZKSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX0FSTV9GQU1JTFkpIHx8 IFwKKy0gICAgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKKysgICAgZGVmaW5lZChBUkNI X0NQVV9NSVBTX0ZBTUlMWSkgfHwgZGVmaW5lZCAoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorIC8v IE51bWJlciB0aGF0J3Mgbm90IGN1cnJlbnRseSB1c2VkIGJ5IGFueSBMaW51eCBrZXJuZWwgQUJJ cy4KKyBjb25zdCBpbnQga0ludmFsaWRTeXNjYWxsTnVtYmVyID0gMHgzNTFkMzsKKyAjZWxzZQor QEAgLTMxMiwxMCArMzEyLDU0IEBAIGFzbSgvLyBXZSBuZWVkIHRvIGJlIGFibGUgdG8gdGVsbCB0 aGUga2UKKyAgICAgIjI6cmV0XG4iCisgICAgICIuY2ZpX2VuZHByb2NcbiIKKyAgICAgIi5zaXpl IFN5c2NhbGxBc20sIC4tU3lzY2FsbEFzbVxuIgorKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRf XykKKysgICAgIi50ZXh0XG4iCisrICAgICIuYWxpZ24gNFxuIgorKyAgICAiLnR5cGUgU3lzY2Fs bEFzbSBAZnVuY3Rpb25cbiIKKysgICAgIlN5c2NhbGxBc206XG4iCisrICAgICIuY2ZpX3N0YXJ0 cHJvY1xuIgorKworKyAgICAvLyBDaGVjayBpZiByMyBpcyBuZWdhdGl2ZQorKyAgICAiY21wZGkg MywgMFxuIgorKyAgICAiYmd0IDJmXG4iCisrCisrICAgIC8vIExvYWQgYWRkcmVzcyBvZiAzZiBp bnRvIHIzIGFuZCByZXR1cm4KKysgICAgIm1mbHIgMTBcbiIKKysgICAgImJsIDFmXG4iCisrICAg ICIxOiBtZmxyIDNcbiIKKysgICAgIm10bHIgMTBcbiIKKysgICAgImFkZGkgMywgMywgNCoxM1xu IgorKyAgICAiYmxyXG4iCisrCisrICAgIC8vIExvYWQgYXJndW1lbnRzIGZyb20gYXJyYXkgaW50 byByMy04CisrICAgIC8vIHNhdmUgcGFyYW0gMyBpbiByMTAKKysgICAgIjI6XG4iCisrICAgICJt ciAwLCAzXG4iCisrICAgICJsZCAzLCAwKDQpXG4iCisrICAgICJsZCA1LCAxNig0KVxuIgorKyAg ICAibGQgNiwgMjQoNClcbiIKKysgICAgImxkIDcsIDMyKDQpXG4iCisrICAgICJsZCA4LCA0MCg0 KVxuIgorKyAgICAibGQgNCwgOCg0KVxuIgorKyAgICAibGkgOSwgMFxuIgorKworKyAgICAvLyBF bnRlciBrZXJuZWwKKysgICAgInNjXG4iCisrCisrICAgIC8vIE1hZ2ljIHJldHVybiBhZGRyZXNz CisrICAgICIzOlxuIgorKyAgICAvLyBMaWtlIE1JUFMsIHBwYzY0IHJldHVybiB2YWx1ZXMgYXJl IGFsd2F5cyBwb3NpdGl2ZS4KKysgICAgLy8gQ2hlY2sgZm9yIGVycm9yIGluIGNyMC5TTyBhbmQg bmVnYXRlIHVwb24gZXJyb3IKKysgICAgImJjIDQsIDMsIDRmXG4iCisrICAgICJuZWcgMywgM1xu IgorKyAgICAiNDogYmxyXG4iCisrCisrICAgICIuY2ZpX2VuZHByb2NcbiIKKysgICAgIi5zaXpl IFN5c2NhbGxBc20sIC4tU3lzY2FsbEFzbVxuIgorICNlbmRpZgorICAgICApOyAgLy8gYXNtCisg CistI2lmIGRlZmluZWQoX194ODZfNjRfXykKKysjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgZXh0ZXJuICJDIiB7CisgaW50cHRyX3QgU3lzY2FsbEFz bShpbnRwdHJfdCBuciwgY29uc3QgaW50cHRyX3QgYXJnc1s2XSk7CisgfQorQEAgLTQyOSw2ICs0 NzMsOCBAQCBpbnRwdHJfdCBTeXNjYWxsOjpDYWxsKGludCBuciwKKyAgICAgcmV0ID0gaW5vdXQ7 CisgICB9CisgCisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgaW50cHRyX3QgcmV0 ID0gU3lzY2FsbEFzbShuciwgYXJncyk7CisgI2Vsc2UKKyAjZXJyb3IgIlVuaW1wbGVtZW50ZWQg YXJjaGl0ZWN0dXJlIgorICNlbmRpZgorQEAgLTQ0NSw4ICs0OTEsMjYgQEAgdm9pZCBTeXNjYWxs OjpQdXRWYWx1ZUluVWNvbnRleHQoaW50cHRyXworICAgICAvLyBuZWVkcyB0byBiZSBjaGFuZ2Vk IGJhY2suCisgICAgIHJldF92YWwgPSAtcmV0X3ZhbDsKKyAgICAgU0VDQ09NUF9QQVJNNChjdHgp ID0gMTsKKy0gIH0gZWxzZQorKyAgfSBlbHNlIHsKKyAgICAgU0VDQ09NUF9QQVJNNChjdHgpID0g MDsKKysgIH0KKysjZW5kaWYKKysjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgLy8gU2Ft ZSBhcyBNSVBTLCBuZWVkIHRvIGludmVydCByZXQgYW5kIHNldCBlcnJvciByZWdpc3RlciAoY3Iw LlNPKQorKyAgaWYgKHJldF92YWwgPD0gLTEgJiYgcmV0X3ZhbCA+PSAtNDA5NSkgeworKyAgICBy ZXRfdmFsID0gLXJldF92YWw7CisrI2lmZGVmIF9fR0xJQkNfXworKyAgICBjdHgtPnVjX21jb250 ZXh0LnJlZ3MtPmNjciB8PSAoMSA8PCAyOCk7CisrI2Vsc2UKKysgICAgKChzdHJ1Y3QgcHRfcmVn cyAqKWN0eC0+dWNfbWNvbnRleHQucmVncyktPmNjciB8PSAoMSA8PCAyOCk7CisrI2VuZGlmCisr ICB9IGVsc2UgeworKyNpZmRlZiBfX0dMSUJDX18KKysgICAgY3R4LT51Y19tY29udGV4dC5yZWdz LT5jY3IgJj0gfigxIDw8IDI4KTsKKysjZWxzZQorKyAgICAoKHN0cnVjdCBwdF9yZWdzICopY3R4 LT51Y19tY29udGV4dC5yZWdzKS0+Y2NyICY9IH4oMSA8PCAyOCk7CisrI2VuZGlmCisrICB9Cisg I2VuZGlmCisgICBTRUNDT01QX1JFU1VMVChjdHgpID0gc3RhdGljX2Nhc3Q8Z3JlZ190PihyZXRf dmFsKTsKKyB9CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNj b21wLWJwZi90cmFwLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51 eC9zZWNjb21wLWJwZi90cmFwLmNjCitAQCAtMjM2LDYgKzIzNiwyMCBAQCB2b2lkIFRyYXA6OlNp Z1N5cyhpbnQgbnIsIExpbnV4U2lnSW5mbyoKKyAgICAgICBTZXRJc0luU2lnSGFuZGxlcigpOwor ICAgICB9CisgCisrI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysgICAgLy8gT24gcHBjNjQr Z2xpYmMsIHNvbWUgc3lzY2FsbHMgc2VlbSB0byBhY2NpZGVudGFsbHkgbmVnYXRlIHRoZSBmaXJz dAorKyAgICAvLyBwYXJhbWV0ZXIgd2hpY2ggY2F1c2VzIGNoZWNrcyBhZ2FpbnN0IGl0IHRvIGZh aWwuIEZvciBub3csIG1hbnVhbGx5CisrICAgIC8vIG5lZ2F0ZSB0aGVtIGJhY2suCisrICAgIC8v IFRPRE8oc2hhd25AYW5hc3Rhcy5pbyk6IGludmVzdGlnYXRlIHRoaXMgaXNzdWUgZnVydGhlcgor KyAgICBhdXRvIG5yID0gU0VDQ09NUF9TWVNDQUxMKGN0eCk7CisrICAgIGlmIChuciA9PSBfX05S X29wZW5hdCB8fCBuciA9PSBfX05SX21rZGlyYXQgfHwgbnIgPT0gX19OUl9mYWNjZXNzYXQgfHwg bnIgPT0gX19OUl9yZWFkbGlua2F0IHx8CisrICAgICAgICBuciA9PSBfX05SX3JlbmFtZWF0IHx8 IG5yID09IF9fTlJfcmVuYW1lYXQyIHx8IG5yID09IF9fTlJfbmV3ZnN0YXRhdCB8fCBuciA9PSBf X05SX3VubGlua2F0KSB7CisrICAgICAgICBpZiAoc3RhdGljX2Nhc3Q8aW50PihTRUNDT01QX1BB Uk0xKGN0eCkpID4gMCkgeworKyAgICAgICAgICAgIFNFQ0NPTVBfUEFSTTEoY3R4KSA9IC1TRUND T01QX1BBUk0xKGN0eCk7CisrICAgICAgICB9CisrICAgIH0KKysjZW5kaWYKKysKKyAgICAgLy8g Q29weSB0aGUgc2VjY29tcC1zcGVjaWZpYyBkYXRhIGludG8gYSBhcmNoX3NlY2NvbXBfZGF0YSBz dHJ1Y3R1cmUuIFRoaXMKKyAgICAgLy8gaXMgd2hhdCB3ZSBhcmUgc2hvd2luZyB0byBUcmFwRm5j IGNhbGxiYWNrcyB0aGF0IHRoZSBzeXN0ZW0gY2FsbAorICAgICAvLyBldmFsdWF0b3IgcmVnaXN0 ZXJlZCB3aXRoIHRoZSBzYW5kYm94LgorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRi b3gvbGludXgvc2VydmljZXMvY3JlZGVudGlhbHMuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS9zYW5kYm94L2xpbnV4L3NlcnZpY2VzL2NyZWRlbnRpYWxzLmNjCitAQCAtODEsNyArODEs NyBAQCBib29sIENocm9vdFRvU2FmZUVtcHR5RGlyKCkgeworICAgcGlkX3QgcGlkID0gLTE7Cisg ICBhbGlnbmFzKDE2KSBjaGFyIHN0YWNrX2J1ZltQVEhSRUFEX1NUQUNLX01JTl07CisgI2lmIGRl ZmluZWQoQVJDSF9DUFVfWDg2X0ZBTUlMWSkgfHwgZGVmaW5lZChBUkNIX0NQVV9BUk1fRkFNSUxZ KSB8fCBcCistICAgIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCisrICAgIGRlZmluZWQo QVJDSF9DUFVfTUlQU19GQU1JTFkpIHx8IGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQor ICAgLy8gVGhlIHN0YWNrIGdyb3dzIGRvd253YXJkLgorICAgdm9pZCogc3RhY2sgPSBzdGFja19i dWYgKyBzaXplb2Yoc3RhY2tfYnVmKTsKKyAjZWxzZQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3NhbmRib3gvbGludXgvc2VydmljZXMvc3lzY2FsbF93cmFwcGVycy5jYworKysrIGIvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VydmljZXMvc3lzY2FsbF93cmFwcGVy cy5jYworQEAgLTYxLDcgKzYxLDcgQEAgbG9uZyBzeXNfY2xvbmUodW5zaWduZWQgbG9uZyBmbGFn cywKKyAjaWYgZGVmaW5lZChBUkNIX0NQVV9YODZfNjQpCisgICByZXR1cm4gc3lzY2FsbChfX05S X2Nsb25lLCBmbGFncywgY2hpbGRfc3RhY2ssIHB0aWQsIGN0aWQsIHRscyk7CisgI2VsaWYgZGVm aW5lZChBUkNIX0NQVV9YODYpIHx8IGRlZmluZWQoQVJDSF9DUFVfQVJNX0ZBTUlMWSkgfHwgXAor LSAgICBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQorKyAgICBkZWZpbmVkKEFSQ0hfQ1BV X01JUFNfRkFNSUxZKSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKyAgIC8vIENP TkZJR19DTE9ORV9CQUNLV0FSRFMgZGVmaW5lZC4KKyAgIHJldHVybiBzeXNjYWxsKF9fTlJfY2xv bmUsIGZsYWdzLCBjaGlsZF9zdGFjaywgcHRpZCwgdGxzLCBjdGlkKTsKKyAjZW5kaWYKKy0tLSBh L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c2NhbGxfYnJva2VyL2Jyb2tl cl9wcm9jZXNzLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9z eXNjYWxsX2Jyb2tlci9icm9rZXJfcHJvY2Vzcy5jYworQEAgLTE2NSw3ICsxNjUsNyBAQCBib29s IEJyb2tlclByb2Nlc3M6OklzU3lzY2FsbEJyb2tlcmFibGUoCisgI2lmIGRlZmluZWQoX19OUl9m c3RhdGF0NjQpCisgICAgIGNhc2UgX19OUl9mc3RhdGF0NjQ6CisgI2VuZGlmCistI2lmIGRlZmlu ZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykKKysjaWYgZGVmaW5lZChfX3g4 Nl82NF9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18p CisgICAgIGNhc2UgX19OUl9uZXdmc3RhdGF0OgorICNlbmRpZgorICAgICAgIHJldHVybiAhZmFz dF9jaGVjayB8fCBhbGxvd2VkX2NvbW1hbmRfc2V0Xy50ZXN0KENPTU1BTkRfU1RBVCk7CistLS0g YS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51 eF9zZWNjb21wLmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5 c3RlbV9oZWFkZXJzL2xpbnV4X3NlY2NvbXAuaAorQEAgLTQxLDYgKzQxLDkgQEAKKyAjaWZuZGVm IEVNX0FBUkNINjQKKyAjZGVmaW5lIEVNX0FBUkNINjQgMTgzCisgI2VuZGlmCisrI2lmbmRlZiBF TV9QUEM2NAorKyNkZWZpbmUgRU1fUFBDNjQgMjEKKysjZW5kaWYKKyAKKyAjaWZuZGVmIF9fQVVE SVRfQVJDSF82NEJJVAorICNkZWZpbmUgX19BVURJVF9BUkNIXzY0QklUIDB4ODAwMDAwMDAKK0BA IC03NCw2ICs3NywxNCBAQAorICNkZWZpbmUgQVVESVRfQVJDSF9BQVJDSDY0IChFTV9BQVJDSDY0 IHwgX19BVURJVF9BUkNIXzY0QklUIHwgX19BVURJVF9BUkNIX0xFKQorICNlbmRpZgorIAorKyNp Zm5kZWYgQVVESVRfQVJDSF9QUEM2NAorKyNkZWZpbmUgQVVESVRfQVJDSF9QUEM2NCAoRU1fUFBD NjQgfCBfX0FVRElUX0FSQ0hfNjRCSVQpCisrI2VuZGlmCisrCisrI2lmbmRlZiBBVURJVF9BUkNI X1BQQzY0TEUKKysjZGVmaW5lIEFVRElUX0FSQ0hfUFBDNjRMRSAoRU1fUFBDNjQgfCBfX0FVRElU X0FSQ0hfNjRCSVQgfCBfX0FVRElUX0FSQ0hfTEUpCisrI2VuZGlmCisrCisgLy8gRm9yIHByY3Rs LmgKKyAjaWZuZGVmIFBSX1NFVF9TRUNDT01QCisgI2RlZmluZSBQUl9TRVRfU0VDQ09NUCAgICAg ICAgICAgICAgIDIyCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9z eXN0ZW1faGVhZGVycy9saW51eF9zaWduYWwuaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc2lnbmFsLmgKK0BAIC0xMyw3ICsx Myw3IEBACisgLy8gKG5vdCB1bmRlZmluZWQsIGJ1dCBkZWZpbmVkIGRpZmZlcmVudCB2YWx1ZXMg YW5kIGluIGRpZmZlcmVudCBtZW1vcnkKKyAvLyBsYXlvdXRzKS4gU28sIGZpbGwgdGhlIGdhcCBo ZXJlLgorICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRl ZmluZWQoX19hcm1fXykgfHwgXAorLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQorKyAgICBkZWZp bmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgCisgI2RlZmluZSBM SU5VWF9TSUdIVVAgMQorICNkZWZpbmUgTElOVVhfU0lHSU5UIDIKKy0tLSBhL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3N5c2NhbGxzLmgK KysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJz L2xpbnV4X3N5c2NhbGxzLmgKK0BAIC0zNSw1ICszNSw5IEBACisgI2luY2x1ZGUgInNhbmRib3gv bGludXgvc3lzdGVtX2hlYWRlcnMvYXJtNjRfbGludXhfc3lzY2FsbHMuaCIKKyAjZW5kaWYKKyAK KysjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyNpbmNsdWRlICJzYW5kYm94L2xpbnV4L3N5 c3RlbV9oZWFkZXJzL3BwYzY0X2xpbnV4X3N5c2NhbGxzLmgiCisrI2VuZGlmCisrCisgI2VuZGlm ICAvLyBTQU5EQk9YX0xJTlVYX1NZU1RFTV9IRUFERVJTX0xJTlVYX1NZU0NBTExTX0hfCisgCist LS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9s aW51eF91Y29udGV4dC5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51 eC9zeXN0ZW1faGVhZGVycy9saW51eF91Y29udGV4dC5oCitAQCAtMTEsNiArMTEsOCBAQAorICNp bmNsdWRlICJzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2FybV9saW51eF91Y29udGV4dC5o IgorICNlbGlmIGRlZmluZWQoX19pMzg2X18pCisgI2luY2x1ZGUgInNhbmRib3gvbGludXgvc3lz dGVtX2hlYWRlcnMvaTM4Nl9saW51eF91Y29udGV4dC5oIgorKyNlbGlmIGRlZmluZWQoX19wb3dl cnBjNjRfXykKKysjaW5jbHVkZSAic2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9wcGM2NF9s aW51eF91Y29udGV4dC5oIgorICNlbHNlCisgI2Vycm9yICJObyBzdXBwb3J0IGZvciB5b3VyIGFy Y2hpdGVjdHVyZSBpbiBQTmFDbCBoZWFkZXIiCisgI2VuZGlmCistLS0gYS9zcmMvM3JkcGFydHkv Y2hyb21pdW0vc2FuZGJveC9wb2xpY3kvbGludXgvYnBmX3JlbmRlcmVyX3BvbGljeV9saW51eC5j YworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvcG9saWN5L2xpbnV4L2JwZl9y ZW5kZXJlcl9wb2xpY3lfbGludXguY2MKK0BAIC0xNSw2ICsxNSwxMSBAQAorICNpbmNsdWRlICJz YW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3N5c2NhbGxzLmgiCisgI2luY2x1ZGUg InNhbmRib3gvcG9saWN5L2xpbnV4L3NhbmRib3hfbGludXguaCIKKyAKKysvLyBPbiBQUEM2NCwg VENHRVRTIGlzIGRlZmluZWQgaW4gdGVybXMgb2Ygc3RydWN0IHRlcm1pb3MsIHNvIHdlIG11c3Qg aW5jbHVkZSB0ZXJtaW9zLmgKKysjaWZkZWYgX19wb3dlcnBjNjRfXworKyNpbmNsdWRlIDx0ZXJt aW9zLmg+CisrI2VuZGlmCisrCisgLy8gVE9ETyh2aWduYXR0aSk6IHJlcGxhY2UgdGhlIGxvY2Fs IGRlZmluaXRpb25zIGJlbG93IHdpdGggI2luY2x1ZGUKKyAvLyA8bGludXgvZG1hLWJ1Zi5oPiBv bmNlIGtlcm5lbCB2ZXJzaW9uIDQuNiBiZWNvbWVzIHdpZGVseSB1c2VkLgorICNpbmNsdWRlIDxs aW51eC90eXBlcy5oPgorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Fu Z2xlL3NyYy9jb21waWxlci90cmFuc2xhdG9yL0luZm9TaW5rLmgKKysrKyBiL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9hbmdsZS9zcmMvY29tcGlsZXIvdHJhbnNsYXRvci9JbmZv U2luay5oCitAQCAtOTMsNyArOTMsMTYgQEAgY2xhc3MgVEluZm9TaW5rQmFzZQorICAgICAgICAg ICAgIHN0cmVhbS5wcmVjaXNpb24oOCk7CisgICAgICAgICAgICAgc3RyZWFtIDw8IGY7CisgICAg ICAgICB9CistICAgICAgICBzaW5rLmFwcGVuZChzdHJlYW0uc3RyKCkpOworKworKyAgICAgICAg Ly8gSGFjayB0byB3b3JrIGFyb3VuZCBhIGJ1ZyB3aGVyZSBuZWdhdGl2ZSBmbG9hdGluZyBwb2lu dCB2YWx1ZXMKKysgICAgICAgIC8vIGFyZSByZW5kZXJlZCBsaWtlICcuMC41JyBpbnN0ZWFkIG9m ICctMC41JworKyAgICAgICAgc3RkOjpzdHJpbmcgcmVzKHN0cmVhbS5zdHIoKSk7CisrCisrICAg ICAgICBpZiAoc2lnbmJpdChmKSkgeyAvLyB0ZXN0IGlmIGYgaXMgbmVnYXRpdmUKKysgICAgICAg ICAgICByZXNbMF0gPSAnLSc7CisrICAgICAgICB9CisrCisrICAgICAgICBzaW5rLmFwcGVuZChy ZXMpOworICAgICAgICAgcmV0dXJuICp0aGlzOworICAgICB9CisgICAgIC8vIFdyaXRlIGJvb2xl YW4gdmFsdWVzIGFzIHRoZWlyIG5hbWVzIGluc3RlYWQgb2YgaW50ZWdyYWwgdmFsdWUuCistLS0g YS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYW5nbGUvc3JjL2xpYkFOR0xFL0Nv bnN0YW50cy5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYW5nbGUv c3JjL2xpYkFOR0xFL0NvbnN0YW50cy5oCitAQCAtOSw2ICs5LDcgQEAKKyAjaWZuZGVmIExJQkFO R0xFX0NPTlNUQU5UU19IXworICNkZWZpbmUgTElCQU5HTEVfQ09OU1RBTlRTX0hfCisgCisrI2lu Y2x1ZGUgPGNzdGRkZWY+CisgI2luY2x1ZGUgImNvbW1vbi9wbGF0Zm9ybS5oIgorIAorICNpbmNs dWRlIDxzdGRpbnQuaD4KKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9i b3Jpbmdzc2wvQlVJTEQuZ24KKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0 eS9ib3Jpbmdzc2wvQlVJTEQuZ24KK0BAIC05OSw2ICs5OSwxMyBAQCBpZiAoaXNfd2luICYmICFp c19tc2FuICYmIGN1cnJlbnRfY3B1ICE9CisgICAgICAgfSBlbHNlIHsKKyAgICAgICAgIHB1Ymxp Y19jb25maWdzID0gWyAiOm5vX2FzbV9jb25maWciIF0KKyAgICAgICB9CisrICAgIH0gZWxzZSBp ZiAoY3VycmVudF9jcHUgPT0gInBwYzY0IikgeworKyAgICAgIGlmIChpc19saW51eCkgeworKyAg ICAgICAgIyBUT0RPOiBwcGM2NCAoYmUpIGNoZWNrCisrICAgICAgICBzb3VyY2VzICs9IGNyeXB0 b19zb3VyY2VzX2xpbnV4X3BwYzY0bGUKKysgICAgICB9IGVsc2UgeworKyAgICAgICAgcHVibGlj X2NvbmZpZ3MgPSBbICI6bm9fYXNtX2NvbmZpZyIgXQorKyAgICAgIH0KKyAgICAgfSBlbHNlIHsK KyAgICAgICBwdWJsaWNfY29uZmlncyA9IFsgIjpub19hc21fY29uZmlnIiBdCisgICAgIH0KKy0t LSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9CVUlMRC5nbgor KysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL0JVSUxELmdu CitAQCAtNjIzLDcgKzYyMyw2IEBAIGlmIChpc19saW51eCB8fCBpc19jaHJvbWVvcyB8fCBpc19h bmRyb2kKKyAgICAgICAiYnJlYWtwYWQvc3JjL2NsaWVudC9taW5pZHVtcF9maWxlX3dyaXRlci5o IiwKKyAgICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9jb252ZXJ0X1VURi5jYyIsCisgICAgICAg ImJyZWFrcGFkL3NyYy9jb21tb24vY29udmVydF9VVEYuaCIsCistICAgICAgImJyZWFrcGFkL3Ny Yy9jb21tb24vbGludXgvYnJlYWtwYWRfZ2V0Y29udGV4dC5TIiwKKyAgICAgICAiYnJlYWtwYWQv c3JjL2NvbW1vbi9saW51eC9lbGZfY29yZV9kdW1wLmNjIiwKKyAgICAgICAiYnJlYWtwYWQvc3Jj L2NvbW1vbi9saW51eC9lbGZfY29yZV9kdW1wLmgiLAorICAgICAgICJicmVha3BhZC9zcmMvY29t bW9uL2xpbnV4L2VsZnV0aWxzLmNjIiwKK0BAIC02NjMsNiArNjYyLDE1IEBAIGlmIChpc19saW51 eCB8fCBpc19jaHJvbWVvcyB8fCBpc19hbmRyb2kKKyAKKyAgICAgbGlicyA9IFsgImRsIiBdCisg CisrICAgIGlmIChjdXJyZW50X2NwdSA9PSAicHBjNjQiKSB7CisrICAgICAgICBkZWZpbmVzID0g WyAiSEFWRV9HRVRDT05URVhUIiBdCisrICAgICAgICBsaWJzICs9IFsgInVjb250ZXh0IiBdCisr ICAgIH0gZWxzZSB7CisrICAgICAgICBzb3VyY2VzICs9IFsKKysgICAgICAgICAgICAiYnJlYWtw YWQvc3JjL2NvbW1vbi9saW51eC9icmVha3BhZF9nZXRjb250ZXh0LlMiCisrICAgICAgICBdCisr ICAgIH0KKysKKyAgICAgaW5jbHVkZV9kaXJzID0gWworICAgICAgICIuIiwKKyAgICAgICAiYnJl YWtwYWQvc3JjIiwKK0BAIC03MTIsNyArNzIwLDYgQEAgaWYgKGlzX2xpbnV4IHx8IGlzX2Nocm9t ZW9zIHx8IGlzX2FuZHJvaQorICAgICAgICJicmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlk dW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXJfdW5pdHRlc3QuY2MiLAorICAgICAgICJicmVha3Bh ZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXJfdW5pdHRl c3RfdXRpbHMuY2MiLAorICAgICAgICJicmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1w X3dyaXRlci9wcm9jX2NwdWluZm9fcmVhZGVyX3VuaXR0ZXN0LmNjIiwKKy0gICAgICAiYnJlYWtw YWQvc3JjL2NvbW1vbi9saW51eC9icmVha3BhZF9nZXRjb250ZXh0X3VuaXR0ZXN0LmNjIiwKKyAg ICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9lbGZfY29yZV9kdW1wX3VuaXR0ZXN0LmNj IiwKKyAgICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9maWxlX2lkX3VuaXR0ZXN0LmNj IiwKKyAgICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9saW51eF9saWJjX3N1cHBvcnRf dW5pdHRlc3QuY2MiLAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Jy ZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Jhd19j b250ZXh0X2NwdS5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJl YWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vcmF3X2Nv bnRleHRfY3B1LmgKK0BAIC00NCw2ICs0NCw4IEBAIHR5cGVkZWYgTURSYXdDb250ZXh0QVJNIFJh d0NvbnRleHRDUFU7CisgdHlwZWRlZiBNRFJhd0NvbnRleHRBUk02NF9PbGQgUmF3Q29udGV4dENQ VTsKKyAjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQorIHR5cGVkZWYgTURSYXdDb250ZXh0TUlQUyBS YXdDb250ZXh0Q1BVOworKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyt0eXBlZGVmIE1E UmF3Q29udGV4dFBQQzY0IFJhd0NvbnRleHRDUFU7CisgI2Vsc2UKKyAjZXJyb3IgIlRoaXMgY29k ZSBoYXMgbm90IGJlZW4gcG9ydGVkIHRvIHlvdXIgcGxhdGZvcm0geWV0LiIKKyAjZW5kaWYKKy0t LSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9z cmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRfaW5mby5jYworKysrIGIv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9j bGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3RocmVhZF9pbmZvLmNjCitAQCAtMjcwLDcg KzI3MCw1NCBAQCB2b2lkIFRocmVhZEluZm86OkZpbGxDUFVDb250ZXh0KFJhd0NvbnRlCisgICBv dXQtPmZsb2F0X3NhdmUuZmlyID0gbWNvbnRleHQuZnBjX2VpcjsKKyAjZW5kaWYKKyB9CistI2Vu ZGlmICAvLyBfX21pcHNfXworKworKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysKKysj aWYgIWRlZmluZWQoX19HTElCQ19fKQorKyNpbmNsdWRlIDxhc20vZWxmLmg+CisrI2luY2x1ZGUg PGFzbS9wdHJhY2UuaD4KKysjZW5kaWYKKysKKyt1aW50cHRyX3QgVGhyZWFkSW5mbzo6R2V0SW5z dHJ1Y3Rpb25Qb2ludGVyKCkgY29uc3QgeworKyAgICByZXR1cm4gbWNvbnRleHQuZ3BfcmVnc1tQ VF9OSVBdOworK30KKysKKyt2b2lkIFRocmVhZEluZm86OkZpbGxDUFVDb250ZXh0KFJhd0NvbnRl eHRDUFUqIG91dCkgY29uc3QgeworKyAgICBvdXQtPmNvbnRleHRfZmxhZ3MgPSBNRF9DT05URVhU X1BQQzY0X0ZVTEw7CisrICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfQ09OVEVYVF9QUEM2NF9H UFJfQ09VTlQ7IGkrKykKKysgICAgICAgIG91dC0+Z3ByW2ldID0gbWNvbnRleHQuZ3BfcmVnc1tp XTsKKysKKysgICAgb3V0LT5sciA9IG1jb250ZXh0LmdwX3JlZ3NbUFRfTE5LXTsKKysgICAgb3V0 LT5zcnIwID0gbWNvbnRleHQuZ3BfcmVnc1tQVF9OSVBdOworKyAgICBvdXQtPnNycjEgPSBtY29u dGV4dC5ncF9yZWdzW1BUX01TUl07CisrICAgIG91dC0+Y3IgPSBtY29udGV4dC5ncF9yZWdzW1BU X0NDUl07CisrICAgIG91dC0+eGVyID0gbWNvbnRleHQuZ3BfcmVnc1tQVF9YRVJdOworKyAgICBv dXQtPmN0ciA9IG1jb250ZXh0LmdwX3JlZ3NbUFRfQ1RSXTsKKysKKysjaWZkZWYgX19HTElCQ19f CisrICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfRkxPQVRJTkdTQVZFQVJFQV9QUENfRlBSX0NP VU5UOyBpKyspCisrICAgICAgICBvdXQtPmZsb2F0X3NhdmUuZnByZWdzW2ldID0gbWNvbnRleHQu ZnBfcmVnc1tpXTsKKysKKysgICAgb3V0LT5mbG9hdF9zYXZlLmZwc2NyID0gbWNvbnRleHQuZnBf cmVnc1tORlBSRUctMV07CisrI2Vsc2UKKysgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9GTE9B VElOR1NBVkVBUkVBX1BQQ19GUFJfQ09VTlQ7IGkrKykKKysgICAgICAgIG91dC0+ZmxvYXRfc2F2 ZS5mcHJlZ3NbaV0gPSAoKHVpbnQ2NF90ICopJm1jb250ZXh0LmZwX3JlZ3MpW2ldOworKworKyAg ICAgb3V0LT5mbG9hdF9zYXZlLmZwc2NyID0gKCh1aW50NjRfdCAqKSZtY29udGV4dC5mcF9yZWdz KVtFTEZfTkZQUkVHLTFdOworKyNlbmRpZgorKworKyAgICBmb3IgKGludCBpID0gMDsgaSA8IE1E X1ZFQ1RPUlNBVkVBUkVBX1BQQ19WUl9DT1VOVDsgaSsrKQorKyAgICAgICAgb3V0LT52ZWN0b3Jf c2F2ZS5zYXZlX3ZyW2ldID0gXAorKyAgICAgICAgICAgIHsoKCh1aW50NjRfdCl2cmVncy52cnJl Z3NbaV1bMF0pIDw8IDMyKQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgfCB2cmVncy52cnJl Z3NbaV1bMV0sCisrICAgICAgICAgICAgKCgodWludDY0X3QpdnJlZ3MudnJyZWdzW2ldWzJdKSA8 PCAzMikKKysgICAgICAgICAgICAgICAgICAgICAgICAgfCB2cmVncy52cnJlZ3NbaV1bM119Owor KworKyAgICBvdXQtPnZyc2F2ZSA9IHZyZWdzLnZyc2F2ZTsKKysgICAgb3V0LT52ZWN0b3Jfc2F2 ZS5zYXZlX3ZzY3IgPSB7MCwgdnJlZ3MudnNjci52c2NyX3dvcmR9OworKyAgICBvdXQtPnZlY3Rv cl9zYXZlLnNhdmVfdnJ2YWxpZCA9IDB4RkZGRkZGRkY7CisrfQorKyNlbmRpZiAgLy8gX19wb3dl cnBjNjRfXworIAorIHZvaWQgVGhyZWFkSW5mbzo6R2V0R2VuZXJhbFB1cnBvc2VSZWdpc3RlcnMo dm9pZCoqIGdwX3JlZ3MsIHNpemVfdCogc2l6ZSkgeworICAgYXNzZXJ0KGdwX3JlZ3MgfHwgc2l6 ZSk7CitAQCAtMjc5LDYgKzMyNiwxMSBAQCB2b2lkIFRocmVhZEluZm86OkdldEdlbmVyYWxQdXJw b3NlUmVnaXN0CisgICAgICpncF9yZWdzID0gbWNvbnRleHQuZ3JlZ3M7CisgICBpZiAoc2l6ZSkK KyAgICAgKnNpemUgPSBzaXplb2YobWNvbnRleHQuZ3JlZ3MpOworKyNlbGlmIGRlZmluZWQoX19w b3dlcnBjNjRfXykKKysgIGlmIChncF9yZWdzKQorKyAgICAqZ3BfcmVncyA9IG1jb250ZXh0Lmdw X3JlZ3M7CisrICBpZiAoc2l6ZSkKKysgICAgKnNpemUgPSBzaXplb2YobWNvbnRleHQuZ3BfcmVn cyk7CisgI2Vsc2UKKyAgIGlmIChncF9yZWdzKQorICAgICAqZ3BfcmVncyA9ICZyZWdzOworQEAg LTI5NCw2ICszNDYsMTEgQEAgdm9pZCBUaHJlYWRJbmZvOjpHZXRGbG9hdGluZ1BvaW50UmVnaXN0 ZQorICAgICAqZnBfcmVncyA9ICZtY29udGV4dC5mcHJlZ3M7CisgICBpZiAoc2l6ZSkKKyAgICAg KnNpemUgPSBzaXplb2YobWNvbnRleHQuZnByZWdzKTsKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCisrICBpZiAoZnBfcmVncykKKysgICAgKmZwX3JlZ3MgPSAmbWNvbnRleHQuZnBfcmVn czsKKysgIGlmIChzaXplKQorKyAgICAqc2l6ZSA9IHNpemVvZihtY29udGV4dC5mcF9yZWdzKTsK KyAjZWxzZQorICAgaWYgKGZwX3JlZ3MpCisgICAgICpmcF9yZWdzID0gJmZwcmVnczsKK0BAIC0z MDIsNCArMzU5LDEzIEBAIHZvaWQgVGhyZWFkSW5mbzo6R2V0RmxvYXRpbmdQb2ludFJlZ2lzdGUK KyAjZW5kaWYKKyB9CisgCisrI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyt2b2lkIFRocmVh ZEluZm86OkdldFZlY3RvclJlZ2lzdGVycyh2b2lkKiogdl9yZWdzLCBzaXplX3QqIHNpemUpIHsK KysgICAgaWYgKHZfcmVncykKKysgICAgICAgICp2X3JlZ3MgPSAmdnJlZ3M7CisrICAgIGlmIChz aXplKQorKyAgICAgICAgKnNpemUgPSBzaXplb2YodnJlZ3MpOworK30KKysjZW5kaWYKKysKKyB9 ICAvLyBuYW1lc3BhY2UgZ29vZ2xlX2JyZWFrcGFkCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21p dW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dy aXRlcl9jb21tb24vdGhyZWFkX2luZm8uaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Ro aXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJf Y29tbW9uL3RocmVhZF9pbmZvLmgKK0BAIC02OCw2ICs2OCwxMCBAQCBzdHJ1Y3QgVGhyZWFkSW5m byB7CisgICAvLyBVc2UgdGhlIHN0cnVjdHVyZXMgZGVmaW5lZCBpbiA8c3lzL3VzZXIuaD4KKyAg IHN0cnVjdCB1c2VyX3JlZ3Nfc3RydWN0IHJlZ3M7CisgICBzdHJ1Y3QgdXNlcl9mcHNpbWRfc3Ry dWN0IGZwcmVnczsKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICAvLyBVc2UgdGhl IHN0cnVjdHVyZXMgZGVmaW5lZCBpbiA8c3lzL3Vjb250ZXh0Lmg+LgorKyAgbWNvbnRleHRfdCBt Y29udGV4dDsKKysgIHZycmVnc2V0X3QgdnJlZ3M7CisgI2VsaWYgZGVmaW5lZChfX21pcHNfXykK KyAgIC8vIFVzZSB0aGUgc3RydWN0dXJlIGRlZmluZWQgaW4gPHN5cy91Y29udGV4dC5oPi4KKyAg IG1jb250ZXh0X3QgbWNvbnRleHQ7CitAQCAtODQsNiArODgsMTEgQEAgc3RydWN0IFRocmVhZElu Zm8geworIAorICAgLy8gUmV0dXJucyB0aGUgcG9pbnRlciBhbmQgc2l6ZSBvZiBmbG9hdCBwb2lu dCByZWdpc3RlciBhcmVhLgorICAgdm9pZCBHZXRGbG9hdGluZ1BvaW50UmVnaXN0ZXJzKHZvaWQq KiBmcF9yZWdzLCBzaXplX3QqIHNpemUpOworKworKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18p CisrICAvLyBSZXR1cm5zIHRoZSBwb2ludGVyIGFuZCBzaXplIG9mIHRoZSB2ZWN0b3IgcmVnaXN0 ZXIgYXJlYS4gKFBQQzY0IG9ubHkpCisrICB2b2lkIEdldFZlY3RvclJlZ2lzdGVycyh2b2lkKiog dl9yZWdzLCBzaXplX3QqIHNpemUpOworKyNlbmRpZgorIH07CisgCisgfSAgLy8gbmFtZXNwYWNl IGdvb2dsZV9icmVha3BhZAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vj b250ZXh0X3JlYWRlci5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vj b250ZXh0X3JlYWRlci5jYworQEAgLTI1NCw2ICsyNTQsNjAgQEAgdm9pZCBVQ29udGV4dFJlYWRl cjo6RmlsbENQVUNvbnRleHQoUmF3QworICAgb3V0LT5mbG9hdF9zYXZlLmZpciA9IHVjLT51Y19t Y29udGV4dC5mcGNfZWlyOyAgLy8gVW51c2VkLgorICNlbmRpZgorIH0KKysKKysjZWxpZiBkZWZp bmVkKF9fcG93ZXJwYzY0X18pCisrCisrI2lmbmRlZiBfX0dMSUJDX18KKysjaW5jbHVkZSA8YXNt L2VsZi5oPgorKyNpbmNsdWRlIDxhc20vcHRyYWNlLmg+CisrI2VuZGlmCisrCisrdWludHB0cl90 IFVDb250ZXh0UmVhZGVyOjpHZXRTdGFja1BvaW50ZXIoY29uc3QgdWNvbnRleHRfdCogdWMpIHsK KysgICAgcmV0dXJuIHVjLT51Y19tY29udGV4dC5ncF9yZWdzW01EX0NPTlRFWFRfUFBDNjRfUkVH X1NQXTsKKyt9CisrCisrdWludHB0cl90IFVDb250ZXh0UmVhZGVyOjpHZXRJbnN0cnVjdGlvblBv aW50ZXIoY29uc3QgdWNvbnRleHRfdCogdWMpIHsKKysgICAgcmV0dXJuIHVjLT51Y19tY29udGV4 dC5ncF9yZWdzW1BUX05JUF07CisrfQorKworK3ZvaWQgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVD b250ZXh0KFJhd0NvbnRleHRDUFUqIG91dCwgY29uc3QgdWNvbnRleHRfdCogdWMsCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdnJyZWdzZXRfdCogdnJlZ3MpIHsK KysgICAgb3V0LT5jb250ZXh0X2ZsYWdzID0gTURfQ09OVEVYVF9QUEM2NF9GVUxMOworKworKyAg ICBmb3IgKGludCBpID0gMDsgaSA8IE1EX0NPTlRFWFRfUFBDNjRfR1BSX0NPVU5UOyBpKyspCisr ICAgICAgICBvdXQtPmdwcltpXSA9IHVjLT51Y19tY29udGV4dC5ncF9yZWdzW2ldOworKworKyAg ICBvdXQtPmxyID0gdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfTE5LXTsKKysgICAgb3V0LT5z cnIwID0gdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfTklQXTsKKysgICAgb3V0LT5zcnIxID0g dWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfTVNSXTsKKysgICAgb3V0LT5jciA9IHVjLT51Y19t Y29udGV4dC5ncF9yZWdzW1BUX0NDUl07CisrICAgIG91dC0+eGVyID0gdWMtPnVjX21jb250ZXh0 LmdwX3JlZ3NbUFRfWEVSXTsKKysgICAgb3V0LT5jdHIgPSB1Yy0+dWNfbWNvbnRleHQuZ3BfcmVn c1tQVF9DVFJdOworKworKyNpZmRlZiBfX0dMSUJDX18KKysgICAgZm9yIChpbnQgaSA9IDA7IGkg PCBNRF9GTE9BVElOR1NBVkVBUkVBX1BQQ19GUFJfQ09VTlQ7IGkrKykKKysgICAgICAgIG91dC0+ ZmxvYXRfc2F2ZS5mcHJlZ3NbaV0gPSB1Yy0+dWNfbWNvbnRleHQuZnBfcmVnc1tpXTsKKysKKysg ICAgb3V0LT5mbG9hdF9zYXZlLmZwc2NyID0gdWMtPnVjX21jb250ZXh0LmZwX3JlZ3NbTkZQUkVH LTFdOworKyNlbHNlCisrICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfRkxPQVRJTkdTQVZFQVJF QV9QUENfRlBSX0NPVU5UOyBpKyspCisrICAgICAgICBvdXQtPmZsb2F0X3NhdmUuZnByZWdzW2ld ID0gKCh1aW50NjRfdCAqKSZ1Yy0+dWNfbWNvbnRleHQuZnBfcmVncylbaV07CisrCisrICAgIG91 dC0+ZmxvYXRfc2F2ZS5mcHNjciA9ICgodWludDY0X3QgKikmdWMtPnVjX21jb250ZXh0LmZwX3Jl Z3MpW0VMRl9ORlBSRUctMV07CisrI2VuZGlmCisrCisrICAgIGZvciAoaW50IGkgPSAwOyBpIDwg TURfVkVDVE9SU0FWRUFSRUFfUFBDX1ZSX0NPVU5UOyBpKyspCisrICAgICAgICBvdXQtPnZlY3Rv cl9zYXZlLnNhdmVfdnJbaV0gPQorKyAgICAgICAgICAgIHsoKCh1aW50NjRfdCl2cmVncy0+dnJy ZWdzW2ldWzBdKSA8PCAzMikKKysgICAgICAgICAgICAgICAgICAgICAgICAgfCB2cmVncy0+dnJy ZWdzW2ldWzFdLAorKyAgICAgICAgICAgICAoKCh1aW50NjRfdCl2cmVncy0+dnJyZWdzW2ldWzJd KSA8PCAzMikKKysgICAgICAgICAgICAgICAgICAgICAgICAgfCB2cmVncy0+dnJyZWdzW2ldWzNd fTsKKysKKysgICAgb3V0LT52cnNhdmUgPSB2cmVncy0+dnJzYXZlOworKyAgICBvdXQtPnZlY3Rv cl9zYXZlLnNhdmVfdnNjciA9IHswLCB2cmVncy0+dnNjci52c2NyX3dvcmR9OworKyAgICBvdXQt PnZlY3Rvcl9zYXZlLnNhdmVfdnJ2YWxpZCA9IDB4RkZGRkZGRkY7CisrfQorKworICNlbmRpZgor IAorIH0gIC8vIG5hbWVzcGFjZSBnb29nbGVfYnJlYWtwYWQKKy0tLSBhL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1 bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIuaAorKysrIGIvc3JjLzNyZHBhcnR5L2No cm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVt cF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5oCitAQCAtNTksNiArNTksOSBAQCBzdHJ1 Y3QgVUNvbnRleHRSZWFkZXIgeworICNlbGlmIGRlZmluZWQoX19hYXJjaDY0X18pCisgICBzdGF0 aWMgdm9pZCBGaWxsQ1BVQ29udGV4dChSYXdDb250ZXh0Q1BVKiBvdXQsIGNvbnN0IHVjb250ZXh0 X3QqIHVjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGZwc2lt ZF9jb250ZXh0KiBmcHJlZ3MpOworKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysgIHN0 YXRpYyB2b2lkIEZpbGxDUFVDb250ZXh0KFJhd0NvbnRleHRDUFUgKm91dCwgY29uc3QgdWNvbnRl eHRfdCAqdWMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2cnJlZ3NldF90 KiB2cmVncyk7CisgI2Vsc2UKKyAgIHN0YXRpYyB2b2lkIEZpbGxDUFVDb250ZXh0KFJhd0NvbnRl eHRDUFUqIG91dCwgY29uc3QgdWNvbnRleHRfdCogdWMpOworICNlbmRpZgorLS0tIGEvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQv bGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5jYworKysrIGIvc3JjLzNyZHBhcnR5L2No cm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFu ZGxlci9leGNlcHRpb25faGFuZGxlci5jYworQEAgLTEwNSw2ICsxMDUsMTMgQEAKKyAjZGVmaW5l IFBSX1NFVF9QVFJBQ0VSIDB4NTk2MTZkNjEKKyAjZW5kaWYKKyAKKysvKiBtdXNsIGhhY2ssIGNh bid0IGluY2x1ZGUgYXNtL3B0cmFjZS5oIGFzIHRoYXQgY2F1c2VzIGNvbmZsaWN0cyAqLworKyNp Zm5kZWYgX19HTElCQ19fCisrI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykgJiYgIWRlZmluZWQo UFRfTklQKQorKyNkZWZpbmUgUFRfTklQIDMyCisrI2VuZGlmCisrI2VuZGlmCisrCisgbmFtZXNw YWNlIGdvb2dsZV9icmVha3BhZCB7CisgCisgbmFtZXNwYWNlIHsKK0BAIC00NjEsOSArNDY4LDE2 IEBAIGJvb2wgRXhjZXB0aW9uSGFuZGxlcjo6SGFuZGxlU2lnbmFsKGludAorICAgICBtZW1jcHko JmdfY3Jhc2hfY29udGV4dF8uZmxvYXRfc3RhdGUsIGZwX3B0ciwKKyAgICAgICAgICAgIHNpemVv ZihnX2NyYXNoX2NvbnRleHRfLmZsb2F0X3N0YXRlKSk7CisgICB9CisrI2VsaWYgZGVmaW5lZChf X3Bvd2VycGM2NF9fKQorKyAgLy8gT24gUFBDNjQsIHdlIG11c3QgY29weSBWUiBzdGF0ZQorKyAg dWNvbnRleHRfdCogdWNfcHRyID0gKHVjb250ZXh0X3QqKXVjOworKyAgaWYgKHVjX3B0ci0+dWNf bWNvbnRleHQudl9yZWdzKSB7CisrICAgIG1lbWNweSgmZ19jcmFzaF9jb250ZXh0Xy52ZWN0b3Jf c3RhdGUsIHVjX3B0ci0+dWNfbWNvbnRleHQudl9yZWdzLAorKyAgICAgICAgICAgc2l6ZW9mKGdf Y3Jhc2hfY29udGV4dF8udmVjdG9yX3N0YXRlKSk7CisrICB9CisgI2VsaWYgIWRlZmluZWQoX19B Uk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKKyAgIC8vIEZQIHN0YXRlIGlzIG5vdCBw YXJ0IG9mIHVzZXIgQUJJIG9uIEFSTSBMaW51eC4KKy0gIC8vIEluIGNhc2Ugb2YgTUlQUyBMaW51 eCBGUCBzdGF0ZSBpcyBhbHJlYWR5IHBhcnQgb2YgdWNvbnRleHRfdAorKyAgLy8gSW4gY2FzZSBv ZiBNSVBTLCBMaW51eCBGUCBzdGF0ZSBpcyBhbHJlYWR5IHBhcnQgb2YgdWNvbnRleHRfdAorICAg Ly8gYW5kICdmbG9hdF9zdGF0ZScgaXMgbm90IGEgbWVtYmVyIG9mIENyYXNoQ29udGV4dC4KKyAg IHVjb250ZXh0X3QqIHVjX3B0ciA9ICh1Y29udGV4dF90Kil1YzsKKyAgIGlmICh1Y19wdHItPnVj X21jb250ZXh0LmZwcmVncykgeworQEAgLTcwOCwxMSArNzIyLDE5IEBAIGJvb2wgRXhjZXB0aW9u SGFuZGxlcjo6V3JpdGVNaW5pZHVtcCgpIHsKKyAgIH0KKyAjZW5kaWYKKyAKKy0jaWYgIWRlZmlu ZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX2FhcmNoNjRfXykgJiYgIWRlZmluZWQoX19t aXBzX18pCisrI2lmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19hYXJjaDY0 X18pICYmICFkZWZpbmVkKF9fbWlwc19fKSBcCisrICAgICYmICFkZWZpbmVkKF9fcG93ZXJwYzY0 X18pCisgICAvLyBGUFUgc3RhdGUgaXMgbm90IHBhcnQgb2YgQVJNIEVBQkkgdWNvbnRleHRfdC4K KyAgIG1lbWNweSgmY29udGV4dC5mbG9hdF9zdGF0ZSwgY29udGV4dC5jb250ZXh0LnVjX21jb250 ZXh0LmZwcmVncywKKyAgICAgICAgICBzaXplb2YoY29udGV4dC5mbG9hdF9zdGF0ZSkpOworICNl bmRpZgorKworKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICAvLyBWZWN0b3IgcmVnaXN0 ZXJzIG11c3QgYmUgY29waWVkIG9uIFBQQzY0CisrICBtZW1jcHkoJmNvbnRleHQudmVjdG9yX3N0 YXRlLCBjb250ZXh0LmNvbnRleHQudWNfbWNvbnRleHQudl9yZWdzLAorKyAgICAgICAgIHNpemVv Zihjb250ZXh0LnZlY3Rvcl9zdGF0ZSkpOworKyNlbmRpZgorKworICAgY29udGV4dC50aWQgPSBz eXNfZ2V0dGlkKCk7CisgCisgICAvLyBBZGQgYW4gZXhjZXB0aW9uIHN0cmVhbSB0byB0aGUgbWlu aWR1bXAgZm9yIGJldHRlciByZXBvcnRpbmcuCitAQCAtNzMzLDYgKzc1NSw5IEBAIGJvb2wgRXhj ZXB0aW9uSGFuZGxlcjo6V3JpdGVNaW5pZHVtcCgpIHsKKyAjZWxpZiBkZWZpbmVkKF9fbWlwc19f KQorICAgY29udGV4dC5zaWdpbmZvLnNpX2FkZHIgPQorICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8 dm9pZCo+KGNvbnRleHQuY29udGV4dC51Y19tY29udGV4dC5wYyk7CisrI2VsaWYgZGVmaW5lZChf X3Bvd2VycGM2NF9fKQorKyAgY29udGV4dC5zaWdpbmZvLnNpX2FkZHIgPQorKyAgICAgIHJlaW50 ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNvbnRleHQuY29udGV4dC51Y19tY29udGV4dC5ncF9yZWdzW1BU X05JUF0pOworICNlbHNlCisgI2Vycm9yICJUaGlzIGNvZGUgaGFzIG5vdCBiZWVuIHBvcnRlZCB0 byB5b3VyIHBsYXRmb3JtIHlldC4iCisgI2VuZGlmCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21p dW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVy L2V4Y2VwdGlvbl9oYW5kbGVyLmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9w YXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9u X2hhbmRsZXIuaAorQEAgLTE5Miw3ICsxOTIsMTEgQEAgY2xhc3MgRXhjZXB0aW9uSGFuZGxlciB7 CisgICAgIHNpZ2luZm9fdCBzaWdpbmZvOworICAgICBwaWRfdCB0aWQ7ICAvLyB0aGUgY3Jhc2hp bmcgdGhyZWFkLgorICAgICB1Y29udGV4dF90IGNvbnRleHQ7CistI2lmICFkZWZpbmVkKF9fQVJN X0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCisrI2lmIGRlZmluZWQoX19wb3dlcnBjNjRf XykKKysgICAgLy8gUFBDNjQncyBGUCBzdGF0ZSBpcyBhIHBhcnQgb2YgdWNvbnRleHRfdCBsaWtl IE1JUFMgYnV0IHRoZSB2ZWN0b3IKKysgICAgLy8gc3RhdGUgaXMgbm90LCBzbyBhIHN0cnVjdCBp cyBuZWVkZWQuCisrICAgIHZzdGF0ZV90IHZlY3Rvcl9zdGF0ZTsKKysjZWxpZiAhZGVmaW5lZChf X0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQorICAgICAvLyAjaWZkZWYgdGhpcyBv dXQgYmVjYXVzZSBGUCBzdGF0ZSBpcyBub3QgcGFydCBvZiB1c2VyIEFCSSBmb3IgTGludXggQVJN LgorICAgICAvLyBJbiBjYXNlIG9mIE1JUFMgTGludXggRlAgc3RhdGUgaXMgYWxyZWFkeSBwYXJ0 IG9mIHVjb250ZXh0X3Qgc28KKyAgICAgLy8gJ2Zsb2F0X3N0YXRlJyBpcyBub3QgcmVxdWlyZWQu CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyX3VuaXR0ZXN0LmNj CisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyX3VuaXR0ZXN0LmNj CitAQCAtMzA3LDcgKzMwNyw3IEBAIFRFU1QoRXhjZXB0aW9uSGFuZGxlclRlc3QsIFBhcmFsbGVs Q2hpbGQKKyAgIH0KKyAKKyAgIC8vIFdhaXQgYSB3aGlsZSB1bnRpbCB0aGUgY2hpbGQgc2hvdWxk IGhhdmUgY3Jhc2hlZC4KKy0gIHVzbGVlcCgxMDAwMDAwKTsKKysgIHVzbGVlcCgyMDAwMDAwKTsK KyAgIC8vIEtpbGwgdGhlIGNoaWxkIGlmIGl0IGlzIHN0aWxsIHJ1bm5pbmcuCisgICBraWxsKGNo aWxkLCBTSUdLSUxMKTsKKyAKK0BAIC01NTksNiArNTU5LDggQEAgY29uc3QgdW5zaWduZWQgY2hh ciBrSWxsZWdhbEluc3RydWN0aW9uWworICNpZiBkZWZpbmVkKF9fbWlwc19fKQorICAgLy8gbWZj MiB6ZXJvLEltcGwgLSB1c3VhbGx5IGlsbGVnYWwgaW4gdXNlcnNwYWNlLgorICAgMHg0OCwgMHgw MCwgMHgwMCwgMHg0OAorKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysgIDB4MDEsIDB4 MDEsIDB4MDEsIDB4MDEgLy8gQ3Jhc2hlcyBvbiBhIHRlc3RlZCBQT1dFUjkgY3B1CisgI2Vsc2UK KyAgIC8vIFRoaXMgY3Jhc2hlcyB3aXRoIFNJR0lMTCBvbiB4ODYveDg2LTY0L2FybS4KKyAgIDB4 ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYKK0BAIC03NTQsMTAgKzc1NiwxMCBAQCBURVNUKEV4Y2VwdGlv bkhhbmRsZXJUZXN0LCBJbnN0cnVjdGlvblBvCisgCisgICAvLyBUaGVzZSBhcmUgZGVmaW5lZCBo ZXJlIHNvIHRoZSBwYXJlbnQgY2FuIHVzZSB0aGVtIHRvIGNoZWNrIHRoZQorICAgLy8gZGF0YSBm cm9tIHRoZSBtaW5pZHVtcCBhZnRlcndhcmRzLgorLSAgLy8gVXNlIDRrIGhlcmUgYmVjYXVzZSB0 aGUgT1Mgd2lsbCBoYW5kIG91dCBhIHNpbmdsZSBwYWdlIGV2ZW4KKysgIC8vIFVzZSB0aGUgcGFn ZSBzaXplIGhlcmUgYmVjYXVzZSB0aGUgT1Mgd2lsbCBoYW5kIG91dCBhIHNpbmdsZSBwYWdlIGV2 ZW4KKyAgIC8vIGlmIGEgc21hbGxlciBzaXplIGlzIHJlcXVlc3RlZCwgYW5kIHRoaXMgdGVzdCB3 YW50cyB0bworICAgLy8gdGVzdCB0aGUgdXBwZXIgYm91bmQgb2YgdGhlIG1lbW9yeSByYW5nZS4K Ky0gIGNvbnN0IHVpbnQzMl90IGtNZW1vcnlTaXplID0gNDA5NjsgIC8vIGJ5dGVzCisrICBjb25z dCB1aW50MzJfdCBrTWVtb3J5U2l6ZSA9IGdldHBhZ2VzaXplKCk7ICAvLyBieXRlcworICAgY29u c3QgaW50IGtPZmZzZXQgPSBrTWVtb3J5U2l6ZSAtIHNpemVvZihrSWxsZWdhbEluc3RydWN0aW9u KTsKKyAKKyAgIGNvbnN0IHBpZF90IGNoaWxkID0gZm9yaygpOworLS0tIGEvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgv bWljcm9kdW1wX3dyaXRlci9taWNyb2R1bXBfd3JpdGVyLmNjCisrKysgYi9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9t aWNyb2R1bXBfd3JpdGVyL21pY3JvZHVtcF93cml0ZXIuY2MKK0BAIC0xMzgsNyArMTM4LDkgQEAg Y2xhc3MgTWljcm9kdW1wV3JpdGVyIHsKKyAgICAgICAgICAgICAgICAgICBjb25zdCBNaWNyb2R1 bXBFeHRyYUluZm8mIG1pY3JvZHVtcF9leHRyYV9pbmZvLAorICAgICAgICAgICAgICAgICAgIExp bnV4RHVtcGVyKiBkdW1wZXIpCisgICAgICAgOiB1Y29udGV4dF8oY29udGV4dCA/ICZjb250ZXh0 LT5jb250ZXh0IDogTlVMTCksCistI2lmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmlu ZWQoX19taXBzX18pCisrI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysgICAgICAgIHZlY3Rv cl9zdGF0ZV8oY29udGV4dCA/ICZjb250ZXh0LT52ZWN0b3Jfc3RhdGUgOiBOVUxMKSwKKysjZWxp ZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQorICAgICAgICAg ZmxvYXRfc3RhdGVfKGNvbnRleHQgPyAmY29udGV4dC0+ZmxvYXRfc3RhdGUgOiBOVUxMKSwKKyAj ZW5kaWYKKyAgICAgICAgIGR1bXBlcl8oZHVtcGVyKSwKK0BAIC0zMzcsNiArMzM5LDggQEAgY2xh c3MgTWljcm9kdW1wV3JpdGVyIHsKKyAjIGVsc2UKKyAjICBlcnJvciAiVGhpcyBtaXBzIEFCSSBp cyBjdXJyZW50bHkgbm90IHN1cHBvcnRlZCAobjMyKSIKKyAjZW5kaWYKKysjZWxpZiBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCisrICAgIGNvbnN0IGNoYXIga0FyY2hbXSA9ICJwcGM2NCI7CisgI2Vs c2UKKyAjZXJyb3IgIlRoaXMgY29kZSBoYXMgbm90IGJlZW4gcG9ydGVkIHRvIHlvdXIgcGxhdGZv cm0geWV0IgorICNlbmRpZgorQEAgLTQwOSw3ICs0MTMsOSBAQCBjbGFzcyBNaWNyb2R1bXBXcml0 ZXIgeworICAgdm9pZCBEdW1wQ1BVU3RhdGUoKSB7CisgICAgIFJhd0NvbnRleHRDUFUgY3B1Owor ICAgICBteV9tZW1zZXQoJmNwdSwgMCwgc2l6ZW9mKFJhd0NvbnRleHRDUFUpKTsKKy0jaWYgIWRl ZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKKysjaWYgZGVmaW5lZChf X3Bvd2VycGM2NF9fKQorKyAgICBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNvbnRleHQoJmNwdSwg dWNvbnRleHRfLCB2ZWN0b3Jfc3RhdGVfKTsKKysjZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18p ICYmICFkZWZpbmVkKF9fbWlwc19fKQorICAgICBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNvbnRl eHQoJmNwdSwgdWNvbnRleHRfLCBmbG9hdF9zdGF0ZV8pOworICNlbHNlCisgICAgIFVDb250ZXh0 UmVhZGVyOjpGaWxsQ1BVQ29udGV4dCgmY3B1LCB1Y29udGV4dF8pOworQEAgLTYwNSw3ICs2MTEs OSBAQCBjbGFzcyBNaWNyb2R1bXBXcml0ZXIgeworICAgdm9pZCogQWxsb2ModW5zaWduZWQgYnl0 ZXMpIHsgcmV0dXJuIGR1bXBlcl8tPmFsbG9jYXRvcigpLT5BbGxvYyhieXRlcyk7IH0KKyAKKyAg IGNvbnN0IHVjb250ZXh0X3QqIGNvbnN0IHVjb250ZXh0XzsKKy0jaWYgIWRlZmluZWQoX19BUk1f RUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKKysjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQorKyAgY29uc3QgZ29vZ2xlX2JyZWFrcGFkOjp2c3RhdGVfdCogY29uc3QgdmVjdG9yX3N0YXRl XzsKKysjZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQor ICAgY29uc3QgZ29vZ2xlX2JyZWFrcGFkOjpmcHN0YXRlX3QqIGNvbnN0IGZsb2F0X3N0YXRlXzsK KyAjZW5kaWYKKyAgIExpbnV4RHVtcGVyKiBkdW1wZXJfOworLS0tIGEvc3JjLzNyZHBhcnR5L2No cm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWlj cm9kdW1wX3dyaXRlci9taWNyb2R1bXBfd3JpdGVyX3VuaXR0ZXN0LmNjCisrKysgYi9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9s aW51eC9taWNyb2R1bXBfd3JpdGVyL21pY3JvZHVtcF93cml0ZXJfdW5pdHRlc3QuY2MKK0BAIC0y NzksMTAgKzI3OSwxOSBAQCBURVNUKE1pY3JvZHVtcFdyaXRlclRlc3QsIEJhc2ljV2l0aE1hcHBp CisgICBDcmFzaEFuZEdldE1pY3JvZHVtcChtYXBwaW5ncywgTWljcm9kdW1wRXh0cmFJbmZvKCks ICZidWYpOworICAgQVNTRVJUX1RSVUUoQ29udGFpbnNNaWNyb2R1bXAoYnVmKSk7CisgCisrICBp bnQgcGFnZV9zaXplID0gZ2V0cGFnZXNpemUoKTsKKyAjaWZkZWYgX19MUDY0X18KKy0gIEFTU0VS VF9ORShzdGQ6OnN0cmluZzo6bnBvcywKKy0gICAgICAgICAgICBidWYuZmluZCgiTSAwMDAwMDAw MDAwMDAxMDAwIDAwMDAwMDAwMDAwMDAwMkEgMDAwMDAwMDAwMDAwMTAwMCAiCistICAgICAgICAg ICAgICAgICAgICAgIjMzMjIxMTAwNTU0NDc3NjY4ODk5QUFCQkNDRERFRUZGMCBsaWJmb28uc28i KSk7CisrICAvLyBUaGlzIHRlc3QgaXMgb25seSBhdmFpbGFibGUgZm9yIHRoZSBmb2xsb3dpbmcg cGFnZSBzaXplcworKyAgQVNTRVJUX1RSVUUoKHBhZ2Vfc2l6ZSA9PSA0MDk2KSB8fCAocGFnZV9z aXplID09IDY1NTM2KSk7CisrICBpZiAocGFnZV9zaXplID09IDQwOTYpIHsKKysgICAgQVNTRVJU X05FKHN0ZDo6c3RyaW5nOjpucG9zLAorKyAgICAgICAgICAgICAgYnVmLmZpbmQoIk0gMDAwMDAw MDAwMDAwMTAwMCAwMDAwMDAwMDAwMDAwMDJBIDAwMDAwMDAwMDAwMDEwMDAgIgorKyAgICAgICAg ICAgICAgICAgICAgICAgIjMzMjIxMTAwNTU0NDc3NjY4ODk5QUFCQkNDRERFRUZGMCBsaWJmb28u c28iKSk7CisrICB9IGVsc2UgeworKyAgICBBU1NFUlRfTkUoc3RkOjpzdHJpbmc6Om5wb3MsCisr ICAgICAgICAgICAgICBidWYuZmluZCgiTSAwMDAwMDAwMDAwMDEwMDAwIDAwMDAwMDAwMDAwMDAw MkEgMDAwMDAwMDAwMDAxMDAwMCAiCisrICAgICAgICAgICAgICAgICAgICAgICAiMzMyMjExMDA1 NTQ0Nzc2Njg4OTlBQUJCQ0NEREVFRkYwIGxpYmZvby5zbyIpKTsKKysgIH0KKyAjZWxzZQorICAg QVNTRVJUX05FKHN0ZDo6c3RyaW5nOjpucG9zLAorICAgICAgICAgICAgIGJ1Zi5maW5kKCJNIDAw MDAxMDAwIDAwMDAwMDJBIDAwMDAxMDAwICIKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90 aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dy aXRlci9saW51eF9jb3JlX2R1bXBlci5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Ro aXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3Jp dGVyL2xpbnV4X2NvcmVfZHVtcGVyLmNjCitAQCAtMTE3LDYgKzExNyw5IEBAIGJvb2wgTGludXhD b3JlRHVtcGVyOjpHZXRUaHJlYWRJbmZvQnlJbmQKKyAjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQor ICAgc3RhY2tfcG9pbnRlciA9CisgICAgICAgcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oaW5m by0+bWNvbnRleHQuZ3JlZ3NbTURfQ09OVEVYVF9NSVBTX1JFR19TUF0pOworKyNlbGlmIGRlZmlu ZWQoX19wb3dlcnBjNjRfXykKKysgIHN0YWNrX3BvaW50ZXIgPQorKyAgICAgIHJlaW50ZXJwcmV0 X2Nhc3Q8dWludDhfdCo+KGluZm8tPm1jb250ZXh0LmdwX3JlZ3NbTURfQ09OVEVYVF9QUEM2NF9S RUdfU1BdKTsKKyAjZWxzZQorICNlcnJvciAiVGhpcyBjb2RlIGhhc24ndCBiZWVuIHBvcnRlZCB0 byB5b3VyIHBsYXRmb3JtIHlldC4iCisgI2VuZGlmCitAQCAtMjEyLDcgKzIxNSwxMCBAQCBib29s IExpbnV4Q29yZUR1bXBlcjo6RW51bWVyYXRlVGhyZWFkcygpCisgICAgICAgICBtZW1zZXQoJmlu Zm8sIDAsIHNpemVvZihUaHJlYWRJbmZvKSk7CisgICAgICAgICBpbmZvLnRnaWQgPSBzdGF0dXMt PnByX3BncnA7CisgICAgICAgICBpbmZvLnBwaWQgPSBzdGF0dXMtPnByX3BwaWQ7CistI2lmIGRl ZmluZWQoX19taXBzX18pCisrI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysgICAgICAgIGZv ciAoaW50IGkgPSAwOyBpIDwgMzE7IGkrKykKKysgICAgICAgICAgICBpbmZvLm1jb250ZXh0Lmdw X3JlZ3NbaV0gPSBzdGF0dXMtPnByX3JlZ1tpXTsKKysjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQor ICNpZiBkZWZpbmVkKF9fQU5EUk9JRF9fKQorICAgICAgICAgZm9yIChpbnQgaSA9IEVGX1IwOyBp IDw9IEVGX1IzMTsgaSsrKQorICAgICAgICAgICBpbmZvLm1jb250ZXh0LmdyZWdzW2kgLSBFRl9S MF0gPSBzdGF0dXMtPnByX3JlZ1tpXTsKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGly ZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRl ci9saW51eF9kdW1wZXIuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0 eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51 eF9kdW1wZXIuY2MKK0BAIC03NjUsNyArNzY1LDkgQEAgYm9vbCBMaW51eER1bXBlcjo6R2V0U3Rh Y2tJbmZvKGNvbnN0IHZvaQorICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KGludF9z dGFja19wb2ludGVyICYgfihwYWdlX3NpemUgLSAxKSk7CisgCisgICAvLyBUaGUgbnVtYmVyIG9m IGJ5dGVzIG9mIHN0YWNrIHdoaWNoIHdlIHRyeSB0byBjYXB0dXJlLgorLSAgc3RhdGljIGNvbnN0 IHB0cmRpZmZfdCBrU3RhY2tUb0NhcHR1cmUgPSAzMiAqIDEwMjQ7CisrICAvLyBUaGlzIG5vdyBk ZXBlbmRzIG9uIHBhZ2Vfc2l6ZSB0byBhdm9pZCBtaXNzaW5nIGRhdGEKKysgIC8vIG9uIHN5c3Rl bXMgd2l0aCBsYXJnZXIgcGFnZSBzaXplcy4KKysgIHN0YXRpYyBjb25zdCBwdHJkaWZmX3Qga1N0 YWNrVG9DYXB0dXJlID0gOCAqIHBhZ2Vfc2l6ZTsKKyAKKyAgIGNvbnN0IE1hcHBpbmdJbmZvKiBt YXBwaW5nID0gRmluZE1hcHBpbmcoc3RhY2tfcG9pbnRlcik7CisgICBpZiAoIW1hcHBpbmcpCist LS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQv c3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfZHVtcGVyLmgKKysrKyBiL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xp ZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9kdW1wZXIuaAorQEAgLTYzLDcgKzYzLDgg QEAgbmFtZXNwYWNlIGdvb2dsZV9icmVha3BhZCB7CisgIChkZWZpbmVkKF9fbWlwc19fKSAmJiBf TUlQU19TSU0gPT0gX0FCSU8zMikKKyB0eXBlZGVmIEVsZjMyX2F1eHZfdCBlbGZfYXV4X2VudHJ5 OworICNlbGlmIGRlZmluZWQoX194ODZfNjQpIHx8IGRlZmluZWQoX19hYXJjaDY0X18pIHx8IFwK Ky0gICAgIChkZWZpbmVkKF9fbWlwc19fKSAmJiBfTUlQU19TSU0gIT0gX0FCSU8zMikKKysgICAg IChkZWZpbmVkKF9fbWlwc19fKSAmJiBfTUlQU19TSU0gIT0gX0FCSU8zMikgfHwgXAorKyAgICAg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorIHR5cGVkZWYgRWxmNjRfYXV4dl90IGVsZl9hdXhfZW50 cnk7CisgI2VuZGlmCisgCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkv YnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhf ZHVtcGVyX3VuaXR0ZXN0X2hlbHBlci5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Ro aXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3Jp dGVyL2xpbnV4X2R1bXBlcl91bml0dGVzdF9oZWxwZXIuY2MKK0BAIC01MSw2ICs1MSw4IEBACisg I2RlZmluZSBUSURfUFRSX1JFR0lTVEVSICJyY3giCisgI2VsaWYgZGVmaW5lZChfX21pcHNfXykK KyAjZGVmaW5lIFRJRF9QVFJfUkVHSVNURVIgIiQxIgorKyNlbGlmIGRlZmluZWQoX19wb3dlcnBj NjRfXykKKysjZGVmaW5lIFRJRF9QVFJfUkVHSVNURVIgInI4IgorICNlbHNlCisgI2Vycm9yIFRo aXMgdGVzdCBoYXMgbm90IGJlZW4gcG9ydGVkIHRvIHRoaXMgcGxhdGZvcm0uCisgI2VuZGlmCist LS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQv c3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfcHRyYWNlX2R1bXBlci5jYwor KysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFk L3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X3B0cmFjZV9kdW1wZXIuY2MK K0BAIC0xNTQsMTkgKzE1NCwyNyBAQCBib29sIExpbnV4UHRyYWNlRHVtcGVyOjpDb3B5RnJvbVBy b2Nlc3MoCisgICByZXR1cm4gdHJ1ZTsKKyB9CisgCistYm9vbCBMaW51eFB0cmFjZUR1bXBlcjo6 UmVhZFJlZ2lzdGVyU2V0KFRocmVhZEluZm8qIGluZm8sIHBpZF90IHRpZCkKKy17CisrYm9vbCBM aW51eFB0cmFjZUR1bXBlcjo6UmVhZFJlZ2lzdGVyU2V0KFRocmVhZEluZm8qIGluZm8sIHBpZF90 IHRpZCkgeworICNpZmRlZiBQVFJBQ0VfR0VUUkVHU0VUCisgICBzdHJ1Y3QgaW92ZWMgaW87Cisg ICBpbmZvLT5HZXRHZW5lcmFsUHVycG9zZVJlZ2lzdGVycygmaW8uaW92X2Jhc2UsICZpby5pb3Zf bGVuKTsKKy0gIGlmIChzeXNfcHRyYWNlKFBUUkFDRV9HRVRSRUdTRVQsIHRpZCwgKHZvaWQqKU5U X1BSU1RBVFVTLCAodm9pZCopJmlvKSA9PSAtMSkgeworKyAgaWYgKHB0cmFjZShQVFJBQ0VfR0VU UkVHU0VULCB0aWQsICh2b2lkKilOVF9QUlNUQVRVUywgKHZvaWQqKSZpbykgPT0gLTEpIHsKKyAg ICAgcmV0dXJuIGZhbHNlOworICAgfQorIAorICAgaW5mby0+R2V0RmxvYXRpbmdQb2ludFJlZ2lz dGVycygmaW8uaW92X2Jhc2UsICZpby5pb3ZfbGVuKTsKKy0gIGlmIChzeXNfcHRyYWNlKFBUUkFD RV9HRVRSRUdTRVQsIHRpZCwgKHZvaWQqKU5UX0ZQUkVHU0VULCAodm9pZCopJmlvKSA9PSAtMSkg eworKyAgaWYgKHB0cmFjZShQVFJBQ0VfR0VUUkVHU0VULCB0aWQsICh2b2lkKilOVF9GUFJFR1NF VCwgKHZvaWQqKSZpbykgPT0gLTEpIHsKKyAgICAgcmV0dXJuIGZhbHNlOworICAgfQorKworKyNp ZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICAvLyBHcmFiIHRoZSB2ZWN0b3IgcmVnaXN0ZXJz IG9uIFBQQzY0IHRvbworKyAgaW5mby0+R2V0VmVjdG9yUmVnaXN0ZXJzKCZpby5pb3ZfYmFzZSwg JmlvLmlvdl9sZW4pOworKyAgaWYgKHB0cmFjZShQVFJBQ0VfR0VUUkVHU0VULCB0aWQsICh2b2lk KilOVF9QUENfVk1YLCAodm9pZCopJmlvKSA9PSAtMSkgeworKyAgICByZXR1cm4gZmFsc2U7Cisr ICB9CisrI2VuZGlmIC8vIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysKKyAgIHJldHVybiB0cnVl OworICNlbHNlCisgICByZXR1cm4gZmFsc2U7CitAQCAtMzAzLDYgKzMxMSw5IEBAIGJvb2wgTGlu dXhQdHJhY2VEdW1wZXI6OkdldFRocmVhZEluZm9CeUkKKyAjZWxpZiBkZWZpbmVkKF9fbWlwc19f KQorICAgc3RhY2tfcG9pbnRlciA9CisgICAgICAgcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4o aW5mby0+bWNvbnRleHQuZ3JlZ3NbTURfQ09OVEVYVF9NSVBTX1JFR19TUF0pOworKyNlbGlmIGRl ZmluZWQoX19wb3dlcnBjNjRfXykKKysgIHN0YWNrX3BvaW50ZXIgPQorKyAgICAgIHJlaW50ZXJw cmV0X2Nhc3Q8dWludDhfdCo+KGluZm8tPm1jb250ZXh0LmdwX3JlZ3NbTURfQ09OVEVYVF9QUEM2 NF9SRUdfU1BdKTsKKyAjZWxzZQorICNlcnJvciAiVGhpcyBjb2RlIGhhc24ndCBiZWVuIHBvcnRl ZCB0byB5b3VyIHBsYXRmb3JtIHlldC4iCisgI2VuZGlmCistLS0gYS9zcmMvM3JkcGFydHkvY2hy b21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5p ZHVtcF93cml0ZXIvbGludXhfcHRyYWNlX2R1bXBlcl91bml0dGVzdC5jYworKysrIGIvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQv bGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X3B0cmFjZV9kdW1wZXJfdW5pdHRlc3QuY2MKK0BA IC00NjIsNiArNDYyLDkgQEAgVEVTVChMaW51eFB0cmFjZUR1bXBlclRlc3QsIFZlcmlmeVN0YWNr UgorICNlbGlmIGRlZmluZWQoX19taXBzX18pCisgICAgIHBpZF90KiBwcm9jZXNzX3RpZF9sb2Nh dGlvbiA9CisgICAgICAgICByZWludGVycHJldF9jYXN0PHBpZF90Kj4ob25lX3RocmVhZC5tY29u dGV4dC5ncmVnc1sxXSk7CisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgICBwaWRf dCogcHJvY2Vzc190aWRfbG9jYXRpb24gPQorKyAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxwaWRf dCo+KG9uZV90aHJlYWQubWNvbnRleHQuZ3BfcmVnc1s4XSk7CisgI2Vsc2UKKyAjZXJyb3IgVGhp cyB0ZXN0IGhhcyBub3QgYmVlbiBwb3J0ZWQgdG8gdGhpcyBwbGF0Zm9ybS4KKyAjZW5kaWYKK0BA IC01NTksNiArNTYyLDggQEAgVEVTVF9GKExpbnV4UHRyYWNlRHVtcGVyVGVzdCwgU2FuaXRpemVT dAorICAgdWludHB0cl90IGhlYXBfYWRkciA9IHRocmVhZF9pbmZvLnJlZ3MucmN4OworICNlbGlm IGRlZmluZWQoX19taXBzX18pCisgICB1aW50cHRyX3QgaGVhcF9hZGRyID0gdGhyZWFkX2luZm8u bWNvbnRleHQuZ3JlZ3NbMV07CisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgdWlu dHB0cl90IGhlYXBfYWRkciA9IHRocmVhZF9pbmZvLm1jb250ZXh0LmdwX3JlZ3NbOF07CisgI2Vs c2UKKyAjZXJyb3IgVGhpcyB0ZXN0IGhhcyBub3QgYmVlbiBwb3J0ZWQgdG8gdGhpcyBwbGF0Zm9y bS4KKyAjZW5kaWYKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVh a3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93 cml0ZXIuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3Bh ZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0 ZXIuY2MKK0BAIC0xMzYsNyArMTM2LDkgQEAgY2xhc3MgTWluaWR1bXBXcml0ZXIgeworICAgICAg IDogZmRfKG1pbmlkdW1wX2ZkKSwKKyAgICAgICAgIHBhdGhfKG1pbmlkdW1wX3BhdGgpLAorICAg ICAgICAgdWNvbnRleHRfKGNvbnRleHQgPyAmY29udGV4dC0+Y29udGV4dCA6IE5VTEwpLAorLSNp ZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQorKyNpZiBkZWZp bmVkKF9fcG93ZXJwYzY0X18pCisrICAgICAgICB2ZWN0b3Jfc3RhdGVfKGNvbnRleHQgPyAmY29u dGV4dC0+dmVjdG9yX3N0YXRlIDogTlVMTCksCisrI2VsaWYgIWRlZmluZWQoX19BUk1fRUFCSV9f KSAmJiAhZGVmaW5lZChfX21pcHNfXykKKyAgICAgICAgIGZsb2F0X3N0YXRlXyhjb250ZXh0ID8g JmNvbnRleHQtPmZsb2F0X3N0YXRlIDogTlVMTCksCisgI2VuZGlmCisgICAgICAgICBkdW1wZXJf KGR1bXBlciksCitAQCAtNDY4LDcgKzQ3MCw5IEBAIGNsYXNzIE1pbmlkdW1wV3JpdGVyIHsKKyAg ICAgICAgIGlmICghY3B1LkFsbG9jYXRlKCkpCisgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg ICAgICAgIG15X21lbXNldChjcHUuZ2V0KCksIDAsIHNpemVvZihSYXdDb250ZXh0Q1BVKSk7Cist I2lmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCisrI2lmIGRl ZmluZWQoX19wb3dlcnBjNjRfXykKKysgICAgICAgIFVDb250ZXh0UmVhZGVyOjpGaWxsQ1BVQ29u dGV4dChjcHUuZ2V0KCksIHVjb250ZXh0XywgdmVjdG9yX3N0YXRlXyk7CisrI2VsaWYgIWRlZmlu ZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKKyAgICAgICAgIFVDb250ZXh0 UmVhZGVyOjpGaWxsQ1BVQ29udGV4dChjcHUuZ2V0KCksIHVjb250ZXh0XywgZmxvYXRfc3RhdGVf KTsKKyAjZWxzZQorICAgICAgICAgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0KGNwdS5n ZXQoKSwgdWNvbnRleHRfKTsKK0BAIC04OTcsNyArOTAxLDcgQEAgY2xhc3MgTWluaWR1bXBXcml0 ZXIgeworICAgICBkaXJlbnQtPmxvY2F0aW9uLnJ2YSA9IDA7CisgICB9CisgCistI2lmIGRlZmlu ZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykK KysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVk KF9fbWlwc19fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICBib29sIFdyaXRlQ1BVSW5m b3JtYXRpb24oTURSYXdTeXN0ZW1JbmZvKiBzeXNfaW5mbykgeworICAgICBjaGFyIHZlbmRvcl9p ZFtzaXplb2Yoc3lzX2luZm8tPmNwdS54ODZfY3B1X2luZm8udmVuZG9yX2lkKSArIDFdID0gezB9 OworICAgICBzdGF0aWMgY29uc3QgY2hhciB2ZW5kb3JfaWRfbmFtZVtdID0gInZlbmRvcl9pZCI7 CitAQCAtOTE3LDcgKzkyMSw5IEBAIGNsYXNzIE1pbmlkdW1wV3JpdGVyIHsKKyAKKyAgICAgLy8g cHJvY2Vzc29yX2FyY2hpdGVjdHVyZSBzaG91bGQgYWx3YXlzIGJlIHNldCwgZG8gdGhpcyBmaXJz dAorICAgICBzeXNfaW5mby0+cHJvY2Vzc29yX2FyY2hpdGVjdHVyZSA9CistI2lmIGRlZmluZWQo X19taXBzX18pCisrI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysgICAgICAgIE1EX0NQVV9B UkNISVRFQ1RVUkVfUFBDNjQ7CisrI2VsaWYgZGVmaW5lZChfX21pcHNfXykKKyAjIGlmIF9NSVBT X1NJTSA9PSBfQUJJTzMyCisgICAgICAgICBNRF9DUFVfQVJDSElURUNUVVJFX01JUFM7CisgIyBl bGlmIF9NSVBTX1NJTSA9PSBfQUJJNjQKK0BAIC0xMzMzLDcgKzEzMzksOSBAQCBjbGFzcyBNaW5p ZHVtcFdyaXRlciB7CisgICBjb25zdCBjaGFyKiBwYXRoXzsgIC8vIFBhdGggdG8gdGhlIGZpbGUg d2hlcmUgdGhlIG1pbmlkdW0gc2hvdWxkIGJlIHdyaXR0ZW4uCisgCisgICBjb25zdCB1Y29udGV4 dF90KiBjb25zdCB1Y29udGV4dF87ICAvLyBhbHNvIGZyb20gdGhlIHNpZ25hbCBoYW5kbGVyCist I2lmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCisrI2lmIGRl ZmluZWQoX19wb3dlcnBjNjRfXykKKysgIGNvbnN0IGdvb2dsZV9icmVha3BhZDo6dnN0YXRlX3Qq IGNvbnN0IHZlY3Rvcl9zdGF0ZV87CisrI2VsaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAh ZGVmaW5lZChfX21pcHNfXykKKyAgIGNvbnN0IGdvb2dsZV9icmVha3BhZDo6ZnBzdGF0ZV90KiBj b25zdCBmbG9hdF9zdGF0ZV87ICAvLyBkaXR0bworICNlbmRpZgorICAgTGludXhEdW1wZXIqIGR1 bXBlcl87CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQv YnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVy LmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXIuaAor QEAgLTQ4LDYgKzQ4LDggQEAgY2xhc3MgRXhjZXB0aW9uSGFuZGxlcjsKKyAKKyAjaWYgZGVmaW5l ZChfX2FhcmNoNjRfXykKKyB0eXBlZGVmIHN0cnVjdCBmcHNpbWRfY29udGV4dCBmcHN0YXRlX3Q7 CisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorK3R5cGVkZWYgdnJyZWdzZXRfdCB2c3Rh dGVfdDsKKyAjZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19f KQorIHR5cGVkZWYgc3RkOjpyZW1vdmVfcG9pbnRlcjxmcHJlZ3NldF90Pjo6dHlwZSBmcHN0YXRl X3Q7CisgI2VuZGlmCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJl YWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBf d3JpdGVyX3VuaXR0ZXN0LmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFy dHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWlu aWR1bXBfd3JpdGVyX3VuaXR0ZXN0LmNjCitAQCAtNzE1LDYgKzcxNSwxMiBAQCBURVNUKE1pbmlk dW1wV3JpdGVyVGVzdCwgSW52YWxpZFN0YWNrUG9pCisgI2VsaWYgZGVmaW5lZChfX21pcHNfXykK KyAgIGNvbnRleHQuY29udGV4dC51Y19tY29udGV4dC5ncmVnc1tNRF9DT05URVhUX01JUFNfUkVH X1NQXSA9CisgICAgICAgaW52YWxpZF9zdGFja19wb2ludGVyOworKyNlbGlmIGRlZmluZWQoX19w b3dlcnBjNjRfXykKKysgIGNvbnRleHQuY29udGV4dC51Y19tY29udGV4dC5ncF9yZWdzW01EX0NP TlRFWFRfUFBDNjRfUkVHX1NQXSA9CisrICAgICAgaW52YWxpZF9zdGFja19wb2ludGVyOworKyNl bGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysgIGNvbnRleHQuY29udGV4dC51Y19tY29udGV4 dC5ncF9yZWdzW01EX0NPTlRFWFRfUFBDNjRfUkVHX1NQXSA9CisrICAgICAgaW52YWxpZF9zdGFj a19wb2ludGVyOworICNlbHNlCisgIyBlcnJvciAiVGhpcyBjb2RlIGhhcyBub3QgYmVlbiBwb3J0 ZWQgdG8geW91ciBwbGF0Zm9ybSB5ZXQuIgorICNlbmRpZgorLS0tIGEvc3JjLzNyZHBhcnR5L2No cm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbGludXgvbWVt b3J5X21hcHBlZF9maWxlLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFy dHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9tZW1vcnlfbWFwcGVkX2ZpbGUu Y2MKK0BAIC02NSw4ICs2NSw3IEBAIGJvb2wgTWVtb3J5TWFwcGVkRmlsZTo6TWFwKGNvbnN0IGNo YXIqIHAKKyAgIH0KKyAKKyAjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYWFy Y2g2NF9fKSB8fCBcCistICAgKGRlZmluZWQoX19taXBzX18pICYmIF9NSVBTX1NJTSA9PSBfQUJJ NjQpCistCisrICAgKGRlZmluZWQoX19taXBzX18pICYmIF9NSVBTX1NJTSA9PSBfQUJJNjQpIHx8 IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgIHN0cnVjdCBrZXJuZWxfc3RhdCBzdDsKKyAgIGlm IChzeXNfZnN0YXQoZmQsICZzdCkgPT0gLTEgfHwgc3Quc3Rfc2l6ZSA8IDApIHsKKyAjZWxzZQor LS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFk L3NyYy9jb21tb24vbGludXgvbWVtb3J5X21hcHBlZF9maWxlX3VuaXR0ZXN0LmNjCisrKysgYi9z cmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2Nv bW1vbi9saW51eC9tZW1vcnlfbWFwcGVkX2ZpbGVfdW5pdHRlc3QuY2MKK0BAIC0xNzYsOSArMTc2 LDEwIEBAIFRFU1RfRihNZW1vcnlNYXBwZWRGaWxlVGVzdCwgUmVtYXBBZnRlck0KKyBURVNUX0Yo TWVtb3J5TWFwcGVkRmlsZVRlc3QsIE1hcFdpdGhPZmZzZXQpIHsKKyAgIC8vIFB1dCBtb3JlIGRh dGEgaW4gdGhlIHRlc3QgZmlsZSB0aGlzIHRpbWUuIE9mZnNldHMgY2FuIG9ubHkgYmUKKyAgIC8v IGRvbmUgb24gcGFnZSBib3VuZGFyaWVzLCBzbyB3ZSBuZWVkIGEgdHdvIHBhZ2UgZmlsZSB0byB0 ZXN0IHRoaXMuCistICBjb25zdCBpbnQgcGFnZV9zaXplID0gNDA5NjsKKy0gIGNoYXIgZGF0YTFb MiAqIHBhZ2Vfc2l6ZV07CistICBzaXplX3QgZGF0YTFfc2l6ZSA9IHNpemVvZihkYXRhMSk7Cisr ICBjb25zdCBpbnQgcGFnZV9zaXplID0gZ2V0cGFnZXNpemUoKTsKKysgIGNoYXIgKmRhdGExID0g c3RhdGljX2Nhc3Q8Y2hhcio+KG1hbGxvYygyICogcGFnZV9zaXplKSk7CisrICBFWFBFQ1RfVFJV RShkYXRhMSAhPSBOVUxMKTsKKysgIHNpemVfdCBkYXRhMV9zaXplID0gKDIgKiBwYWdlX3NpemUp OworICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBkYXRhMV9zaXplOyArK2kpIHsKKyAgICAgZGF0 YTFbaV0gPSBpICYgMHg3ZjsKKyAgIH0KKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGly ZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY29tbW9uL21lbW9yeV9hbGxvY2F0b3JfdW5p dHRlc3QuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3Bh ZC9icmVha3BhZC9zcmMvY29tbW9uL21lbW9yeV9hbGxvY2F0b3JfdW5pdHRlc3QuY2MKK0BAIC01 Nyw4ICs1Nyw5IEBAIFRFU1QoUGFnZUFsbG9jYXRvclRlc3QsIExhcmdlT2JqZWN0KSB7CisgCisg ICBFWFBFQ1RfRVEoMFUsIGFsbG9jYXRvci5wYWdlc19hbGxvY2F0ZWQoKSk7CisgICB1aW50OF90 KiBwID0gcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oYWxsb2NhdG9yLkFsbG9jKDEwMDAwKSk7 CisrICB1aW50NjRfdCBleHBlY3RlZF9wYWdlcyA9IDEgKyAoKDEwMDAwIC0gMSkgLyBnZXRwYWdl c2l6ZSgpKTsKKyAgIEFTU0VSVF9GQUxTRShwID09IE5VTEwpOworLSAgRVhQRUNUX0VRKDNVLCBh bGxvY2F0b3IucGFnZXNfYWxsb2NhdGVkKCkpOworKyAgRVhQRUNUX0VRKGV4cGVjdGVkX3BhZ2Vz LCBhbGxvY2F0b3IucGFnZXNfYWxsb2NhdGVkKCkpOworICAgZm9yICh1bnNpZ25lZCBpID0gMTsg aSA8IDEwOyArK2kpIHsKKyAgICAgdWludDhfdCogcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhf dCo+KGFsbG9jYXRvci5BbGxvYyhpKSk7CisgICAgIEFTU0VSVF9GQUxTRShwID09IE5VTEwpOwor LS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFk L3NyYy9wcm9jZXNzb3IvZXhwbG9pdGFiaWxpdHlfbGludXguY2MKKysrKyBiL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvcHJvY2Vzc29yL2V4 cGxvaXRhYmlsaXR5X2xpbnV4LmNjCitAQCAtMjAyLDEyICsyMDIsMTQgQEAgYm9vbCBFeHBsb2l0 YWJpbGl0eUxpbnV4OjpFbmRlZE9uSWxsZWdhbAorICAgLy8gQ2hlY2sgYXJjaGl0ZWN0dXJlIGFu ZCBzZXQgYXJjaGl0ZWN0dXJlIHZhcmlhYmxlIHRvIGNvcnJlc3BvbmRpbmcgZmxhZworICAgLy8g aW4gb2JqZHVtcC4KKyAgIHN3aXRjaCAoY29udGV4dC0+R2V0Q29udGV4dENQVSgpKSB7CisrI2lm IGRlZmluZWQoX19pMzg2KSB8fCBkZWZpbmVkKF9feDg2XzY0KQorICAgICBjYXNlIE1EX0NPTlRF WFRfWDg2OgorICAgICAgIGFyY2hpdGVjdHVyZSA9ICJpMzg2IjsKKyAgICAgICBicmVhazsKKyAg ICAgY2FzZSBNRF9DT05URVhUX0FNRDY0OgorICAgICAgIGFyY2hpdGVjdHVyZSA9ICJpMzg2Ong4 Ni02NCI7CisgICAgICAgYnJlYWs7CisrI2VuZGlmCisgICAgIGRlZmF1bHQ6CisgICAgICAgLy8g VW5zdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlLiBOb3RlIHRoYXQgQVJNIGFyY2hpdGVjdHVyZXMgYXJl IG5vdAorICAgICAgIC8vIHN1cHBvcnRlZCBiZWNhdXNlIG9iamR1bXAgZG9lcyBub3Qgc3VwcG9y dCBBUk0uCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQv YnJlYWtwYWQvc3JjL3Byb2Nlc3Nvci9leHBsb2l0YWJpbGl0eV91bml0dGVzdC5jYworKysrIGIv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9w cm9jZXNzb3IvZXhwbG9pdGFiaWxpdHlfdW5pdHRlc3QuY2MKK0BAIC0xMDQsNiArMTA0LDggQEAg RXhwbG9pdGFiaWxpdHlGb3IoY29uc3Qgc3RyaW5nJiBmaWxlbmFtZQorIH0KKyAKKyBURVNUKEV4 cGxvaXRhYmlsaXR5VGVzdCwgVGVzdFdpbmRvd3NFbmdpbmUpIHsKKysvLyBUaGUgZm9sbG93aW5n IHRlc3RzIGFyZSBvbmx5IGV4ZWN1dGFibGUgb24gYW4geDg2LWNsYXNzIGxpbnV4IG1hY2hpbmUu CisrI2lmICFkZWZpbmVkKF9XSU4zMikgJiYgKGRlZmluZWQoX19pMzg2KSB8fCBkZWZpbmVkKF9f eDg2XzY0KSkKKyAgIEFTU0VSVF9FUShnb29nbGVfYnJlYWtwYWQ6OkVYUExPSVRBQklMSVRZX0hJ R0gsCisgICAgICAgICAgICAgRXhwbG9pdGFiaWxpdHlGb3IoImFzY2lpX3JlYWRfYXYuZG1wIikp OworICAgQVNTRVJUX0VRKGdvb2dsZV9icmVha3BhZDo6RVhQTE9JVEFCSUxJVFlfSElHSCwKK0BA IC0xMzYsOSArMTM4LDEyIEBAIFRFU1QoRXhwbG9pdGFiaWxpdHlUZXN0LCBUZXN0V2luZG93c0Vu Z2kKKyAgICAgICAgICAgICBFeHBsb2l0YWJpbGl0eUZvcigicmVhZF9hdl9jbG9iYmVyX3dyaXRl LmRtcCIpKTsKKyAgIEFTU0VSVF9FUShnb29nbGVfYnJlYWtwYWQ6OkVYUExPSVRBQklMSVRZX0xP VywKKyAgICAgICAgICAgICBFeHBsb2l0YWJpbGl0eUZvcigicmVhZF9hdl9jb25kaXRpb25hbC5k bXAiKSk7CisrI2VuZGlmCisgfQorIAorIFRFU1QoRXhwbG9pdGFiaWxpdHlUZXN0LCBUZXN0TGlu dXhFbmdpbmUpIHsKKysvLyBUaGUgZm9sbG93aW5nIHRlc3RzIGFyZSBvbmx5IGV4ZWN1dGFibGUg b24gYW4geDg2LWNsYXNzIGxpbnV4IG1hY2hpbmUuCisrI2lmIGRlZmluZWQoX19pMzg2KSB8fCBk ZWZpbmVkKF9feDg2XzY0KQorICAgQVNTRVJUX0VRKGdvb2dsZV9icmVha3BhZDo6RVhQTE9JVEFC SUxJVFlfSU5URVJFU1RJTkcsCisgICAgICAgICAgICAgRXhwbG9pdGFiaWxpdHlGb3IoImxpbnV4 X251bGxfcmVhZF9hdi5kbXAiKSk7CisgICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFrcGFkOjpFWFBM T0lUQUJJTElUWV9ISUdILAorQEAgLTE3MSw3ICsxNzYsOCBAQCBURVNUKEV4cGxvaXRhYmlsaXR5 VGVzdCwgVGVzdExpbnV4RW5naW5lCisgICAgICAgICAgICAgRXhwbG9pdGFiaWxpdHlGb3IoImxp bnV4X2V4ZWN1dGFibGVfaGVhcC5kbXAiKSk7CisgICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFrcGFk OjpFWFBMT0lUQUJJTElUWV9ISUdILAorICAgICAgICAgICAgIEV4cGxvaXRhYmlsaXR5Rm9yKCJs aW51eF9qbXBfdG9fbW9kdWxlX25vdF9leGVfcmVnaW9uLmRtcCIpKTsKKy0jaWZuZGVmIF9XSU4z MgorKyNlbmRpZgorKyNpZiAhZGVmaW5lZChfV0lOMzIpICYmIChkZWZpbmVkKF9faTM4NikgfHwg ZGVmaW5lZChfX3g4Nl82NCkpCisgICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFrcGFkOjpFWFBMT0lU QUJJTElUWV9ISUdILAorICAgICAgICAgICAgIEV4cGxvaXRhYmlsaXR5Rm9yKCJsaW51eF93cml0 ZV90b19ub253cml0YWJsZV9tb2R1bGUuZG1wIikpOworICAgQVNTRVJUX0VRKGdvb2dsZV9icmVh a3BhZDo6RVhQTE9JVEFCSUxJVFlfSElHSCwKK0BAIC0xODIsMTAgKzE4OCwxMCBAQCBURVNUKEV4 cGxvaXRhYmlsaXR5VGVzdCwgVGVzdExpbnV4RW5naW5lCisgICAgICAgICAgICAgRXhwbG9pdGFi aWxpdHlGb3IoImxpbnV4X3dyaXRlX3RvX291dHNpZGVfbW9kdWxlX3ZpYV9tYXRoLmRtcCIpKTsK KyAgIEFTU0VSVF9FUShnb29nbGVfYnJlYWtwYWQ6OkVYUExPSVRBQklMSVRZX0lOVEVSRVNUSU5H LAorICAgICAgICAgICAgIEV4cGxvaXRhYmlsaXR5Rm9yKCJsaW51eF93cml0ZV90b191bmRlcl80 ay5kbXAiKSk7CistI2VuZGlmICAvLyBfV0lOMzIKKysjZW5kaWYgIC8vICFkZWZpbmVkKF9XSU4z MikgJiYgKCFkZWZpbmVkKF9faTM4NikgJiYgIWRlZmluZWQoX194ODZfNjQpKQorIH0KKyAKKy0j aWZuZGVmIF9XSU4zMgorKyNpZiAhZGVmaW5lZChfV0lOMzIpICYmIChkZWZpbmVkKF9faTM4Nikg fHwgZGVmaW5lZChfX3g4Nl82NCkpCisgVEVTVChFeHBsb2l0YWJpbGl0eUxpbnV4VXRpbHNUZXN0 LCBEaXNhc3NlbWJsZUJ5dGVzVGVzdCkgeworICAgQVNTRVJUX0ZBTFNFKEV4cGxvaXRhYmlsaXR5 TGludXhUZXN0OjpEaXNhc3NlbWJsZUJ5dGVzKCIiLCBOVUxMLCA1LCBOVUxMKSk7CisgICB1aW50 OF90IGJ5dGVzWzZdID0gezB4YzcsIDB4MCwgMHg1LCAweDAsIDB4MCwgMHgwfTsKK0BAIC0zMDEs NiArMzA3LDcgQEAgVEVTVChFeHBsb2l0YWJpbGl0eUxpbnV4VXRpbHNUZXN0LCBDYWxjdQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJndyaXRlX2FkZHJlc3MpKTsKKyB9CistI2VuZGlmICAvLyBfV0lOMzIKKysjZW5k aWYgIC8vICFkZWZpbmVkKF9XSU4zMikgJiYgKGRlZmluZWQoX19pMzg2KSB8fCBkZWZpbmVkKF9f eDg2XzY0KSkKKysKKyAKKyB9ICAvLyBuYW1lc3BhY2UKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvdG9vbHMvbGludXgvbWQyY29y ZS9taW5pZHVtcC0yLWNvcmUuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9w YXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvdG9vbHMvbGludXgvbWQyY29yZS9taW5pZHVtcC0y LWNvcmUuY2MKK0BAIC03Nyw2ICs3Nyw4IEBACisgICAjZGVmaW5lIEVMRl9BUkNIICBFTV9NSVBT CisgI2VsaWYgZGVmaW5lZChfX2FhcmNoNjRfXykKKyAgICNkZWZpbmUgRUxGX0FSQ0ggIEVNX0FB UkNINjQKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICAjZGVmaW5lIEVMRl9BUkNI ICBFTV9QUEM2NAorICNlbmRpZgorIAorICNpZiBkZWZpbmVkKF9fYXJtX18pCitAQCAtODcsNiAr ODksOCBAQCB0eXBlZGVmIHVzZXJfcmVncyB1c2VyX3JlZ3Nfc3RydWN0OworICNlbGlmIGRlZmlu ZWQgKF9fbWlwc19fKQorIC8vIFRoaXMgZmlsZS1sb2NhbCB0eXBlZGVmIHNpbXBsaWZpZXMgdGhl IHNvdXJjZSBjb2RlLgorIHR5cGVkZWYgZ3JlZ3NldF90IHVzZXJfcmVnc19zdHJ1Y3Q7CisrI2Vs aWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorK3R5cGVkZWYgc3RydWN0IHB0X3JlZ3MgdXNlcl9y ZWdzX3N0cnVjdDsKKyAjZW5kaWYKKyAKKyB1c2luZyBnb29nbGVfYnJlYWtwYWQ6Ok1EVHlwZUhl bHBlcjsKK0BAIC0zMjIsNiArMzI2LDEyIEBAIHN0cnVjdCBDcmFzaGVkUHJvY2VzcyB7CisgI2lm IGRlZmluZWQoX19hYXJjaDY0X18pCisgICAgIHVzZXJfZnBzaW1kX3N0cnVjdCBmcHJlZ3M7Cisg I2VuZGlmCisrI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysgICAgbWNvbnRleHRfdCBtY29u dGV4dDsKKysjZW5kaWYKKysjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgICBtY29udGV4 dF90IG1jb250ZXh0OworKyNlbmRpZgorICAgICB1aW50cHRyX3Qgc3RhY2tfYWRkcjsKKyAgICAg Y29uc3QgdWludDhfdCogc3RhY2s7CisgICAgIHNpemVfdCBzdGFja19sZW5ndGg7CitAQCAtNTM1 LDYgKzU0NSwzOCBAQCBQYXJzZVRocmVhZFJlZ2lzdGVycyhDcmFzaGVkUHJvY2Vzczo6VGhyCisg ICB0aHJlYWQtPm1jb250ZXh0LmZwY19laXIgPSByYXdyZWdzLT5mbG9hdF9zYXZlLmZpcjsKKyAj ZW5kaWYKKyB9CisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorK3N0YXRpYyB2b2lkCisr UGFyc2VUaHJlYWRSZWdpc3RlcnMoQ3Jhc2hlZFByb2Nlc3M6OlRocmVhZCogdGhyZWFkLAorKyAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IE1pbmlkdW1wTWVtb3J5UmFuZ2UmIHJhbmdlKSB7Cisr ICBjb25zdCBNRFJhd0NvbnRleHRQUEM2NCogcmF3cmVncyA9IHJhbmdlLkdldERhdGE8TURSYXdD b250ZXh0UFBDNjQ+KDApOworKworKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9DT05URVhUX1BQ QzY0X0dQUl9DT1VOVDsgaSsrKQorKyAgICB0aHJlYWQtPm1jb250ZXh0LmdwX3JlZ3NbaV0gPSBy YXdyZWdzLT5ncHJbaV07CisrCisrICB0aHJlYWQtPm1jb250ZXh0LmdwX3JlZ3NbUFRfTE5LXSA9 IHJhd3JlZ3MtPmxyOworKyAgdGhyZWFkLT5tY29udGV4dC5ncF9yZWdzW1BUX05JUF0gPSByYXdy ZWdzLT5zcnIwOworKyAgdGhyZWFkLT5tY29udGV4dC5ncF9yZWdzW1BUX01TUl0gPSByYXdyZWdz LT5zcnIxOworKyAgdGhyZWFkLT5tY29udGV4dC5ncF9yZWdzW1BUX0NDUl0gPSByYXdyZWdzLT5j cjsKKysgIHRocmVhZC0+bWNvbnRleHQuZ3BfcmVnc1tQVF9YRVJdID0gcmF3cmVncy0+eGVyOwor KyAgdGhyZWFkLT5tY29udGV4dC5ncF9yZWdzW1BUX0NUUl0gPSByYXdyZWdzLT5jdHI7CisrICB0 aHJlYWQtPm1jb250ZXh0LnZfcmVncy0+dnJzYXZlID0gcmF3cmVncy0+dnJzYXZlOworKworKyAg Zm9yIChpbnQgaSA9IDA7IGkgPCBNRF9GTE9BVElOR1NBVkVBUkVBX1BQQ19GUFJfQ09VTlQ7IGkr KykKKysgICAgICB0aHJlYWQtPm1jb250ZXh0LmZwX3JlZ3NbaV0gPSByYXdyZWdzLT5mbG9hdF9z YXZlLmZwcmVnc1tpXTsKKysKKysgIHRocmVhZC0+bWNvbnRleHQuZnBfcmVnc1tORlBSRUctMV0g PSByYXdyZWdzLT5mbG9hdF9zYXZlLmZwc2NyOworKworKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBN RF9WRUNUT1JTQVZFQVJFQV9QUENfVlJfQ09VTlQ7IGkrKykgeworKyAgICAgIHRocmVhZC0+bWNv bnRleHQudl9yZWdzLT52cnJlZ3NbaV1bMF0gPSByYXdyZWdzLT52ZWN0b3Jfc2F2ZS5zYXZlX3Zy W2ldLmhpZ2ggPj4gMzI7CisrICAgICAgdGhyZWFkLT5tY29udGV4dC52X3JlZ3MtPnZycmVnc1tp XVsxXSA9IHJhd3JlZ3MtPnZlY3Rvcl9zYXZlLnNhdmVfdnJbaV0uaGlnaDsKKysgICAgICB0aHJl YWQtPm1jb250ZXh0LnZfcmVncy0+dnJyZWdzW2ldWzJdID0gcmF3cmVncy0+dmVjdG9yX3NhdmUu c2F2ZV92cltpXS5sb3cgPj4gMzI7CisrICAgICAgdGhyZWFkLT5tY29udGV4dC52X3JlZ3MtPnZy cmVnc1tpXVszXSA9IHJhd3JlZ3MtPnZlY3Rvcl9zYXZlLnNhdmVfdnJbaV0ubG93OworKyAgfQor KworKyAgdGhyZWFkLT5tY29udGV4dC52X3JlZ3MtPnZzY3IudnNjcl93b3JkID0gcmF3cmVncy0+ dmVjdG9yX3NhdmUuc2F2ZV92c2NyLmxvdyAmIDB4RkZGRkZGRkY7CisrfQorKworICNlbHNlCisg I2Vycm9yICJUaGlzIGNvZGUgaGFzIG5vdCBiZWVuIHBvcnRlZCB0byB5b3VyIHBsYXRmb3JtIHll dCIKKyAjZW5kaWYKK0BAIC02MjMsNiArNjY1LDEyIEBAIFBhcnNlU3lzdGVtSW5mbyhjb25zdCBP cHRpb25zJiBvcHRpb25zLAorICMgZWxzZQorICMgIGVycm9yICJUaGlzIG1pcHMgQUJJIGlzIGN1 cnJlbnRseSBub3Qgc3VwcG9ydGVkIChuMzIpIgorICMgZW5kaWYKKysjZWxpZiBkZWZpbmVkKF9f cG93ZXJwYzY0X18pCisrICBpZiAoc3lzaW5mby0+cHJvY2Vzc29yX2FyY2hpdGVjdHVyZSAhPSBN RF9DUFVfQVJDSElURUNUVVJFX1BQQzY0KSB7CisrICAgIGZwcmludGYoc3RkZXJyLAorKyAgICAg ICAgICAgICJUaGlzIHZlcnNpb24gb2YgbWluaWR1bXAtMi1jb3JlIG9ubHkgc3VwcG9ydHMgUFBD NjQuXG4iKTsKKysgICAgZXhpdCgxKTsKKysgIH0KKyAjZWxzZQorICNlcnJvciAiVGhpcyBjb2Rl IGhhcyBub3QgYmVlbiBwb3J0ZWQgdG8geW91ciBwbGF0Zm9ybSB5ZXQiCisgI2VuZGlmCistLS0g YS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvQ09O VFJJQlVUT1JTCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hw YWQvY3Jhc2hwYWQvQ09OVFJJQlVUT1JTCitAQCAtMTMsMyArMTMsNCBAQCBNYXJrIE1lbnRvdmFp IDxtYXJrQGNocm9taXVtLm9yZz4KKyBSb2JlcnQgU2VzZWsgPHJzZXNla0BjaHJvbWl1bS5vcmc+ CisgU2NvdHQgR3JhaGFtIDxzY290dG1nQGNocm9taXVtLm9yZz4KKyBKb3NodWEgUGVyYXphIDxq cGVyYXphQGNocm9taXVtLm9yZz4KKytTaGF3biBBbmFzdGFzaW8gPHNoYXduQGFuYXN0YXMuaW8+ CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvY29tcGF0L2xpbnV4L3N5cy91c2VyLmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90 aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9jb21wYXQvbGludXgvc3lzL3VzZXIuaAorQEAg LTE1LDYgKzE1LDcgQEAKKyAjaWZuZGVmIENSQVNIUEFEX0NPTVBBVF9MSU5VWF9TWVNfVVNFUl9I XworICNkZWZpbmUgQ1JBU0hQQURfQ09NUEFUX0xJTlVYX1NZU19VU0VSX0hfCisgCisrI2luY2x1 ZGUgPGNzdGRkZWY+CisgI2luY2x1ZGVfbmV4dCA8c3lzL3VzZXIuaD4KKyAKKyAjaW5jbHVkZSA8 ZmVhdHVyZXMuaD4KKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFz aHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0LmgKKysrKyBiL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5p ZHVtcF9jb250ZXh0LmgKK0BAIC01OTIsNiArNTkyLDcwIEBAIHN0cnVjdCBNaW5pZHVtcENvbnRl eHRNSVBTNjQgeworICAgdWludDY0X3QgZmlyOworIH07CisgCisrLy8hIFxicmllZiBwcGM2NC1z cGVjaWZpYyBmbGFncyBmb3IgTWluaWR1bXBQUEM2NDo6Y29udGV4dF9mbGFncworKy8vISBCYXNl ZCBvbiBtaW5pZHVtcF9jcHVfcHBjNjQuaCBmcm9tIGJyZWFrcGFkCisrZW51bSBNaW5pZHVtcENv bnRleHRQUEM2NEZsYWdzIDogdWludDMyX3QgeworKyAgLy8hIFxicmllZiBJZGVudGlmaWVzIHRo ZSBjb250ZXh0IGFzIFBQQzY0LgorKyAga01pbmlkdW1wQ29udGV4dFBQQzY0ID0gMHgwMTAwMDAw MCwKKysKKysgIC8vISBcYnJpZWYgSW5kaWNhdGVzIHRoZSB2YWxpZGl0eSBvZiBnZW5lcmFsIHB1 cnBvc2UgcmVnaXN0ZXJzLgorKyAgLy8hCisrICAvLyEgUmVnaXN0ZXJzIGByMGAtYHIzMWAsIGBu aXBgLCBgbXNyYCwgYGxyYCwgZXRjLiBhcmUgdmFsaWQuCisrICBrTWluaWR1bXBDb250ZXh0UFBD NjRCYXNlID0ga01pbmlkdW1wQ29udGV4dFBQQzY0IHwgMHgwMDAwMDAwMSwKKysKKysgIC8vISBc YnJpZWYgSW5kaWNhdGVzIHRoZSB2YWxpZGl0eSBvZiBmbG9hdGluZyBwb2ludCByZWdpc3RlcnMu CisrICAvLyEKKysgIC8vISBSZWdpc3RlcnMgYGZwMGAtYGZwMzFgLCBgZnBzY3JgIGFyZSB2YWxp ZC4KKysgIGtNaW5pZHVtcENvbnRleHRQUEM2NEZsb2F0aW5nID0ga01pbmlkdW1wQ29udGV4dFBQ QzY0IHwgMHgwMDAwMDAwOCwKKysKKysgIC8vISBcYnJpZWYgSW5kaWNhdGVzIHRoZSB2YWxpZGl0 eSBvZiBBbHRpdmVjL1ZNWCByZWdpc3RlcnMuCisrICAvLyEKKysgIC8vISBSZWdpc3RlcnMgYHYw YC1gdjMxYCwgYHZzY3JgLCBgdnJzYXZlYC4KKysgIGtNaW5pZHVtcENvbnRleHRQUEM2NFZlY3Rv ciA9IGtNaW5pZHVtcENvbnRleHRQUEM2NCB8IDB4MDAwMDAwMjAsCisrCisrICAvLyEgXGJyaWVm IEluZGljYXRlcyB0aGUgdmFsaWRpdHkgb2YgYWxsIHJlZ2lzdGVycworKyAga01pbmlkdW1wQ29u dGV4dFBQQzY0QWxsID0ga01pbmlkdW1wQ29udGV4dFBQQzY0QmFzZSAgICAgfAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAga01pbmlkdW1wQ29udGV4dFBQQzY0RmxvYXRpbmcgfAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAga01pbmlkdW1wQ29udGV4dFBQQzY0VmVjdG9yCisr fTsKKysKKysvLyEgXGJyaWVmIEEgUFBDNjQgQ1BVIGNvbnRleHQgY2FycmllZCBpbiBhIG1pbmlk dW1wIGZpbGUuCisrLy8hIEJhc2VkIG9uIG1pbmlkdW1wX2NwdV9wcGM2NC5oIGZyb20gYnJlYWtw YWQuCisrc3RydWN0IE1pbmlkdW1wQ29udGV4dFBQQzY0IHsKKysgIHVpbnQ2NF90IGNvbnRleHRf ZmxhZ3M7CisrCisrICAvLyEgXGJyaWVmIEdlbmVyYWwgcHVycG9zZSByZWdpc3RlcnMuCisrICB1 aW50NjRfdCBuaXA7CisrICB1aW50NjRfdCBtc3I7CisrICB1aW50NjRfdCByZWdzWzMyXTsKKysg IHVpbnQ2NF90IGNjcjsKKysgIHVpbnQ2NF90IHhlcjsKKysgIHVpbnQ2NF90IGxuazsKKysgIHVp bnQ2NF90IGN0cjsKKysKKysgIC8vISBcYnJpZWYgRmxvYXRpbmcgcG9pbnQgcmVnaXN0ZXJzLgor KyAgZG91YmxlIGZwcmVnc1szMl07CisrCisrICAvLyEgXGJyaWVmIEZQVSBzdGF0dXMgcmVnaXN0 ZXIuCisrICBkb3VibGUgZnBzY3I7CisrCisrICAvLyEgXGJyaWVmIEFsdGl2ZWMvVk1YIHZlY3Rv ciByZWdpc3RlcnMuCisrICBzdHJ1Y3QgeworKyAgICAgIC8vISBcYnJpZWYgVmVjdG9yIHJlZ2lz dGVycyBhcmUgMTI4Yml0cy4KKysgICAgICB1aW50MTI4X3N0cnVjdCBzYXZlX3ZyWzMyXTsKKysg ICAgICB1aW50MTI4X3N0cnVjdCBzYXZlX3ZzY3I7CisrCisrICAgICAgLy8hIFxicmllZiBQYWRk aW5nIGluY2x1ZGVkIGZvciBicmVha3BhZCBjb21wYXRpYmlsdGl5LgorKyAgICAgIHVpbnQzMl90 IHNhdmVfcGFkNVs0XTsKKysKKysgICAgICAvLyEgXGJyaWVmIFZSU0FWRSByZWdpc3Rlci4KKysg ICAgICB1aW50MzJfdCBzYXZlX3Zyc2F2ZTsKKysKKysgICAgICAvLyEgXGJyaWVmIFBhZGRpbmcg aW5jbHVkZWQgZm9yIGJyZWFrcGFkIGNvbXBhdGliaWx0aXkuCisrICAgICAgdWludDMyX3Qgc2F2 ZV9wYWQ2WzddOworKyAgfSB2cmVnczsKKyt9OworKworIH0gIC8vIG5hbWVzcGFjZSBjcmFzaHBh ZAorIAorICNlbmRpZiAgLy8gQ1JBU0hQQURfTUlOSURVTVBfTUlOSURVTVBfQ09OVEVYVF9IXwor LS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHRfd3JpdGVyLmNjCisrKysgYi9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBf Y29udGV4dF93cml0ZXIuY2MKK0BAIC0xMDEsNiArMTAxLDEzIEBAIE1pbmlkdW1wQ29udGV4dFdy aXRlcjo6Q3JlYXRlRnJvbVNuYXBzaG8KKyAgICAgICBicmVhazsKKyAgICAgfQorIAorKyAgICBj YXNlIGtDUFVBcmNoaXRlY3R1cmVQUEM2NDogeworKyAgICAgIGNvbnRleHQgPSBzdGQ6Om1ha2Vf dW5pcXVlPE1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyPigpOworKyAgICAgIHJlaW50ZXJwcmV0 X2Nhc3Q8TWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXIqPihjb250ZXh0LmdldCgpKQorKyAgICAg ICAgICAtPkluaXRhbGl6ZUZyb21TbmFwc2hvdChjb250ZXh0X3NuYXBzaG90LT5wcGM2NCk7Cisr ICAgICAgYnJlYWs7CisrICAgIH0KKysKKyAgICAgZGVmYXVsdDogeworICAgICAgIExPRyhFUlJP UikgPDwgInVua25vd24gY29udGV4dCBhcmNoaXRlY3R1cmUgIgorICAgICAgICAgICAgICAgICAg PDwgY29udGV4dF9zbmFwc2hvdC0+YXJjaGl0ZWN0dXJlOworLS0tIGEvc3JjLzNyZHBhcnR5L2No cm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2Nv bnRleHRfd3JpdGVyLmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0X3dyaXRlci5oCitAQCAt MzE1LDYgKzMxNSw0NSBAQCBjbGFzcyBNaW5pZHVtcENvbnRleHRNSVBTNjRXcml0ZXIgZmluYWwK KyAgIERJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTihNaW5pZHVtcENvbnRleHRNSVBTNjRXcml0ZXIp OworIH07CisgCisrY2xhc3MgTWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXIgZmluYWwgOiBwdWJs aWMgTWluaWR1bXBDb250ZXh0V3JpdGVyIHsKKysgcHVibGljOgorKyAgTWluaWR1bXBDb250ZXh0 UFBDNjRXcml0ZXIoKTsKKysgIH5NaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlcigpIG92ZXJyaWRl OworKworKyAgLy8hIFxicmllZiBJbml0YWxpemVzIHRoZSBNaW5pZHVtcENvbnRleHRQUEM2NCBi YXNlZCBvbiBcYSBjb250ZXh0X3NuYXBzaG90LgorKyAgLy8hCisrICAvLyEgXHBhcmFtW2luXSBj b250ZXh0X3NuYXBzaG90IFRoZSBjb250ZXh0IHNuYXBzaG90IHRvIHVzZSBhcyBzb3VyY2UgZGF0 YS4KKysgIC8vIQorKyAgLy8hIFxub3RlIFZhbGlkIGluICNrU3RhdGVNdXRhYmxlLiBObyBtdXRh dGlvbiBvZiBjb250ZXh0KCkgbWF5IGJlIGRvbmUgYmVmb3JlCisrICAvLyEgICAgIGNhbGxpbmcg dGhpcyBtZXRob2QsIGFuZCBpdCBpcyBub3Qgbm9ybWFsbHkgbmVjZXNzYXJ5IHRvIGFsdGVyCisr ICAvLyEgICAgIGNvbnRleHQoKSBhZnRlciBjYWxsaW5nIHRoaXMgbWV0aG9kLgorKyAgdm9pZCBJ bml0YWxpemVGcm9tU25hcHNob3QoY29uc3QgQ1BVQ29udGV4dFBQQzY0KiBjb250ZXh0X3NuYXBz aG90KTsKKysKKysgIC8vISBcYnJpZWYgUmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIGNvbnRleHQg c3RydWN0dXJlIHRoYXQgdGhpcyBvYmplY3Qgd2lsbAorKyAgLy8hICAgICB3cml0ZS4KKysgIC8v IQorKyAgLy8hIFxhdHRlbnRpb24gVGhpcyByZXR1cm5zIGEgbm9uLWBjb25zdGAgcG9pbnRlciB0 byB0aGlzIG9iamVjdOKAmXMgcHJpdmF0ZQorKyAgLy8hICAgICBkYXRhIHNvIHRoYXQgYSBjYWxs ZXIgY2FuIHBvcHVsYXRlIHRoZSBjb250ZXh0IHN0cnVjdHVyZSBkaXJlY3RseS4KKysgIC8vISAg ICAgVGhpcyBpcyBkb25lIGJlY2F1c2UgcHJvdmlkaW5nIHNldHRlciBpbnRlcmZhY2VzIHRvIGVh Y2ggZmllbGQgaW4gdGhlCisrICAvLyEgICAgIGNvbnRleHQgc3RydWN0dXJlIHdvdWxkIGJlIHVu d2llbGR5IGFuZCBjdW1iZXJzb21lLiBDYXJlIG11c3QgYmUgdGFrZW4KKysgIC8vISAgICAgdG8g cG9wdWxhdGUgdGhlIGNvbnRleHQgc3RydWN0dXJlIGNvcnJlY3RseS4gVGhlIGNvbnRleHQgc3Ry dWN0dXJlCisrICAvLyEgICAgIG11c3Qgb25seSBiZSBtb2RpZmllZCB3aGlsZSB0aGlzIG9iamVj dCBpcyBpbiB0aGUgI2tTdGF0ZU11dGFibGUKKysgIC8vISAgICAgc3RhdGUuCisrICBNaW5pZHVt cENvbnRleHRQUEM2NCogY29udGV4dCgpIHsgcmV0dXJuICZjb250ZXh0XzsgfQorKworKyBwcm90 ZWN0ZWQ6CisrICAvLyBNaW5pZHVtcFdyaXRhYmxlOgorKyAgYm9vbCBXcml0ZU9iamVjdChGaWxl V3JpdGVySW50ZXJmYWNlKiBmaWxlX3dyaXRlcikgb3ZlcnJpZGU7CisrCisrICAvLyBNaW5pZHVt cENvbnRleHRXcml0ZXI6CisrICBzaXplX3QgQ29udGV4dFNpemUoKSBjb25zdCBvdmVycmlkZTsK KysKKysgcHJpdmF0ZToKKysgIE1pbmlkdW1wQ29udGV4dFBQQzY0IGNvbnRleHRfOworKworKyAg RElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOKE1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyKTsKKyt9 OworKworIH0gIC8vIG5hbWVzcGFjZSBjcmFzaHBhZAorIAorICNlbmRpZiAgLy8gQ1JBU0hQQURf TUlOSURVTVBfTUlOSURVTVBfQ09OVEVYVF9XUklURVJfSF8KKy0tLSBhL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9j b250ZXh0X3dyaXRlcl90ZXN0LmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRf cGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29udGV4dF93cml0ZXJf dGVzdC5jYworQEAgLTIxMyw2ICsyMTMsMjEgQEAgVEVTVChNaW5pZHVtcENvbnRleHRXcml0ZXIs IE1JUFM2NF9Gcm9tUworICAgICAgIGNvbnRleHQsIEV4cGVjdE1pbmlkdW1wQ29udGV4dE1JUFM2 NCwga1NlZWQpOworIH0KKyAKKytURVNUKE1pbmlkdW1wQ29udGV4dFdyaXRlciwgUFBDNjRfWmVy b3MpIHsKKysgIEVtcHR5Q29udGV4dFRlc3Q8TWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXIsIE1p bmlkdW1wQ29udGV4dFBQQzY0PigKKysgICAgRXhwZWN0TWluaWR1bXBDb250ZXh0UFBDNjQpOwor K30KKysKKytURVNUKE1pbmlkdW1wQ29udGV4dFdyaXRlciwgUFBDNjRfRnJvbVNuYXBzaG90KSB7 CisrICBjb25zdGV4cHIgdWludDMyX3Qga1NlZWQgPSA2NDsKKysgIENQVUNvbnRleHRQUEM2NCBj b250ZXh0X3BwYzY0OworKyAgQ1BVQ29udGV4dCBjb250ZXh0OworKyAgY29udGV4dC5wcGM2NCA9 ICZjb250ZXh0X3BwYzY0OworKyAgSW5pdGlhbGl6ZUNQVUNvbnRleHRQUEM2NCgmY29udGV4dCwg a1NlZWQpOworKyAgRnJvbVNuYXBzaG90VGVzdDxNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlciwg TWluaWR1bXBDb250ZXh0UFBDNjQ+KAorKyAgICAgIGNvbnRleHQsIEV4cGVjdE1pbmlkdW1wQ29u dGV4dFBQQzY0LCBrU2VlZCk7CisrfQorKworIH0gIC8vIG5hbWVzcGFjZQorIH0gIC8vIG5hbWVz cGFjZSB0ZXN0CisgfSAgLy8gbmFtZXNwYWNlIGNyYXNocGFkCistLS0gYS9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBf bWlzY19pbmZvX3dyaXRlci5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX21pc2NfaW5mb193cml0ZXIu Y2MKK0BAIC0xMzUsNiArMTM1LDggQEAgc3RkOjpzdHJpbmcgTWluaWR1bXBNaXNjSW5mb0RlYnVn QnVpbGRTdAorICAgc3RhdGljIGNvbnN0ZXhwciBjaGFyIGtDUFVbXSA9ICJtaXBzIjsKKyAjZWxp ZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFM2NEVMKQorICAgc3RhdGljIGNvbnN0ZXhwciBjaGFyIGtD UFVbXSA9ICJtaXBzNjQiOworKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjQpCisrICBzdGF0 aWMgY29uc3RleHByIGNoYXIga0NQVVtdID0gInBwYzY0IjsKKyAjZWxzZQorICNlcnJvciBkZWZp bmUga0NQVSBmb3IgdGhpcyBDUFUKKyAjZW5kaWYKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jYXB0dXJlX21lbW9yeS5j YworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNo cGFkL3NuYXBzaG90L2NhcHR1cmVfbWVtb3J5LmNjCitAQCAtMTEyLDYgKzExMiwxMSBAQCB2b2lk IENhcHR1cmVNZW1vcnk6OlBvaW50ZWRUb0J5Q29udGV4dChjCisgICBmb3IgKHNpemVfdCBpID0g MDsgaSA8IGJhc2U6OnNpemUoY29udGV4dC5taXBzZWwtPnJlZ3MpOyArK2kpIHsKKyAgICAgTWF5 YmVDYXB0dXJlTWVtb3J5QXJvdW5kKGRlbGVnYXRlLCBjb250ZXh0Lm1pcHNlbC0+cmVnc1tpXSk7 CisgICB9CisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisrICBNYXliZUNh cHR1cmVNZW1vcnlBcm91bmQoZGVsZWdhdGUsIGNvbnRleHQucHBjNjQtPm5pcCk7CisrICBmb3Ig KHNpemVfdCBpID0gMDsgaSA8IGJhc2U6OnNpemUoY29udGV4dC5wcGM2NC0+cmVncyk7ICsraSkg eworKyAgICBNYXliZUNhcHR1cmVNZW1vcnlBcm91bmQoZGVsZWdhdGUsIGNvbnRleHQucHBjNjQt PnJlZ3NbaV0pOworKyAgfQorICNlbHNlCisgI2Vycm9yIFBvcnQuCisgI2VuZGlmCistLS0gYS9z cmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNo b3QvY3B1X2FyY2hpdGVjdHVyZS5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRf cGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY3B1X2FyY2hpdGVjdHVyZS5oCitAQCAt NDMsNyArNDMsMTAgQEAgZW51bSBDUFVBcmNoaXRlY3R1cmUgeworICAga0NQVUFyY2hpdGVjdHVy ZU1JUFNFTCwKKyAKKyAgIC8vISBcYnJpZWYgNjQtYml0IE1JUFNFTC4KKy0gIGtDUFVBcmNoaXRl Y3R1cmVNSVBTNjRFTAorKyAga0NQVUFyY2hpdGVjdHVyZU1JUFM2NEVMLAorKworKyAgLy8hIFxi cmllZiA2NC1iaXQgUFBDNjQuCisrICBrQ1BVQXJjaGl0ZWN0dXJlUFBDNjQKKyB9OworIAorIH0g IC8vIG5hbWVzcGFjZSBjcmFzaHBhZAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJk X3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2NwdV9jb250ZXh0LmNjCisrKysgYi9z cmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNo b3QvY3B1X2NvbnRleHQuY2MKK0BAIC0xNjksNiArMTY5LDggQEAgdWludDY0X3QgQ1BVQ29udGV4 dDo6SW5zdHJ1Y3Rpb25Qb2ludGVyKAorICAgICAgIHJldHVybiBhcm0tPnBjOworICAgICBjYXNl IGtDUFVBcmNoaXRlY3R1cmVBUk02NDoKKyAgICAgICByZXR1cm4gYXJtNjQtPnBjOworKyAgICBj YXNlIGtDUFVBcmNoaXRlY3R1cmVQUEM2NDoKKysgICAgICByZXR1cm4gcHBjNjQtPm5pcDsKKyAg ICAgZGVmYXVsdDoKKyAgICAgICBOT1RSRUFDSEVEKCk7CisgICAgICAgcmV0dXJuIH4wdWxsOwor QEAgLTE4NSw2ICsxODcsOCBAQCB1aW50NjRfdCBDUFVDb250ZXh0OjpTdGFja1BvaW50ZXIoKSBj b25zCisgICAgICAgcmV0dXJuIGFybS0+c3A7CisgICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVyZUFS TTY0OgorICAgICAgIHJldHVybiBhcm02NC0+c3A7CisrICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVy ZVBQQzY0OgorKyAgICAgIHJldHVybiBwcGM2NC0+cmVnc1sxXTsKKyAgICAgZGVmYXVsdDoKKyAg ICAgICBOT1RSRUFDSEVEKCk7CisgICAgICAgcmV0dXJuIH4wdWxsOworQEAgLTE5Niw2ICsyMDAs NyBAQCBib29sIENQVUNvbnRleHQ6OklzNjRCaXQoKSBjb25zdCB7CisgICAgIGNhc2Uga0NQVUFy Y2hpdGVjdHVyZVg4Nl82NDoKKyAgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlQVJNNjQ6CisgICAg IGNhc2Uga0NQVUFyY2hpdGVjdHVyZU1JUFM2NEVMOgorKyAgICBjYXNlIGtDUFVBcmNoaXRlY3R1 cmVQUEM2NDoKKyAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJl WDg2OgorICAgICBjYXNlIGtDUFVBcmNoaXRlY3R1cmVBUk06CistLS0gYS9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY3B1X2NvbnRl eHQuaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2Ny YXNocGFkL3NuYXBzaG90L2NwdV9jb250ZXh0LmgKK0BAIC0zNTIsNiArMzUyLDI0IEBAIHN0cnVj dCBDUFVDb250ZXh0TUlQUzY0IHsKKyAgIHVpbnQ2NF90IGZpcjsKKyB9OworIAorKy8vISBcYnJp ZWYgQSBjb250ZXh0IHN0cnVjdHVyZSBjYXJyeWluZyBQUEM2NCBDUFUgc3RhdGUuCisrc3RydWN0 IENQVUNvbnRleHRQUEM2NCB7CisrICB1aW50NjRfdCBuaXA7CisrICB1aW50NjRfdCBtc3I7Cisr ICB1aW50NjRfdCByZWdzWzMyXTsKKysgIHVpbnQ2NF90IGNjcjsKKysgIHVpbnQ2NF90IHhlcjsK KysgIHVpbnQ2NF90IGxuazsKKysgIHVpbnQ2NF90IGN0cjsKKysgIGRvdWJsZSBmcHJlZ3NbMzJd OworKyAgZG91YmxlIGZwc2NyOworKyAgc3RydWN0IHsKKysgICAgdWludDEyOF9zdHJ1Y3Qgc2F2 ZV92clszMl07CisrICAgIHVpbnQxMjhfc3RydWN0IHNhdmVfdnNjcjsKKysgICAgdWludDMyX3Qg c2F2ZV92cnNhdmU7CisrICB9IHZyZWdzOworK307CisrCisgLy8hIFxicmllZiBBIGNvbnRleHQg c3RydWN0dXJlIGNhcGFibGUgb2YgY2FycnlpbmcgdGhlIGNvbnRleHQgb2YgYW55IHN1cHBvcnRl ZAorIC8vISAgICAgQ1BVIGFyY2hpdGVjdHVyZS4KKyBzdHJ1Y3QgQ1BVQ29udGV4dCB7CitAQCAt MzgyLDYgKzQwMCw3IEBAIHN0cnVjdCBDUFVDb250ZXh0IHsKKyAgICAgQ1BVQ29udGV4dEFSTTY0 KiBhcm02NDsKKyAgICAgQ1BVQ29udGV4dE1JUFMqIG1pcHNlbDsKKyAgICAgQ1BVQ29udGV4dE1J UFM2NCogbWlwczY0OworKyAgICBDUFVDb250ZXh0UFBDNjQqIHBwYzY0OworICAgfTsKKyB9Owor IAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNo cGFkL3NuYXBzaG90L2xpbnV4L2NwdV9jb250ZXh0X2xpbnV4LmgKKysrKyBiL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9j cHVfY29udGV4dF9saW51eC5oCitAQCAtMTUsNiArMTUsNyBAQAorICNpZm5kZWYgQ1JBU0hQQURf U05BUFNIT1RfTElOVVhfQ1BVX0NPTlRFWFRfTElOVVhfSF8KKyAjZGVmaW5lIENSQVNIUEFEX1NO QVBTSE9UX0xJTlVYX0NQVV9DT05URVhUX0xJTlVYX0hfCisgCisrI2luY2x1ZGUgPGNzdHJpbmc+ CisgI2luY2x1ZGUgImJ1aWxkL2J1aWxkX2NvbmZpZy5oIgorICNpbmNsdWRlICJzbmFwc2hvdC9j cHVfY29udGV4dC5oIgorICNpbmNsdWRlICJzbmFwc2hvdC9saW51eC9zaWduYWxfY29udGV4dC5o IgorQEAgLTE3NCw2ICsxNzUsNzYgQEAgdm9pZCBJbml0aWFsaXplQ1BVQ29udGV4dE1JUFMoCisg CisgI2VuZGlmICAvLyBBUkNIX0NQVV9NSVBTX0ZBTUlMWSB8fCBET1hZR0VOCisgCisrI2lmIGRl ZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKSB8fCBET1hZR0VOCisrCisrLy8hIFxicmllZiBJ bml0YWxpemVzIGEgQ1BVQ29udGV4dFBQQzY0IHN0cnVjdHVyZSBmcm9tIG5hdGl2ZSBjb250ZXh0 CisrLy8hICAgICBzdHJ1Y3R1cmVzIG9uIExpbnV4LgorKy8vIQorKy8vISBccGFyYW1baW5dIHRo cmVhZF9jb250ZXh0IFRoZSBuYXRpdmUgdGhyZWFkIGNvbnRleHQuCisrLy8hIFxwYXJhbVtpbl0g ZmxvYXRfY29udGV4dCBUaGUgbmF0aXZlIGZsb2F0IGNvbnRleHQuCisrLy8hIFxwYXJhbVtpbl0g dmVjdG9yX2NvbnRleHQgVGhlIG5hdGl2ZSB2ZWN0b3IgY29udGV4dC4KKysvLyEgXHBhcmFtW291 dF0gY29udGV4dCBUaGUgQ1BVQ29udGV4dFBQQzY0IHN0cnVjdHVyZSB0byBpbml0YWxpemUuCisr dGVtcGxhdGUgPHR5cGVuYW1lIFRyYWl0cz4KKyt2b2lkIEluaXRpYWxpemVDUFVDb250ZXh0UFBD NjQoCisrICAgIGNvbnN0IFRocmVhZENvbnRleHQ6OnQ2NF90JiB0aHJlYWRfY29udGV4dCwKKysg ICAgY29uc3QgRmxvYXRDb250ZXh0OjpmNjRfdCYgZmxvYXRfY29udGV4dCwKKysgICAgY29uc3Qg VmVjdG9yQ29udGV4dDo6djY0X3QmIHZlY3Rvcl9jb250ZXh0LAorKyAgICB0eXBlbmFtZSBUcmFp dHM6OkNQVUNvbnRleHQqIGNvbnRleHQpIHsKKysKKysgIG1lbWNweShjb250ZXh0LT5yZWdzLCB0 aHJlYWRfY29udGV4dC5ncHIsIHNpemVvZihjb250ZXh0LT5yZWdzKSk7CisrICBjb250ZXh0LT5u aXAgPSB0aHJlYWRfY29udGV4dC5uaXA7CisrICBjb250ZXh0LT5tc3IgPSB0aHJlYWRfY29udGV4 dC5tc3I7CisrICBjb250ZXh0LT5jY3IgPSB0aHJlYWRfY29udGV4dC5jY3I7CisrICBjb250ZXh0 LT54ZXIgPSB0aHJlYWRfY29udGV4dC54ZXI7CisrICBjb250ZXh0LT5sbmsgPSB0aHJlYWRfY29u dGV4dC5sbms7CisrICBjb250ZXh0LT5jdHIgPSB0aHJlYWRfY29udGV4dC5jdHI7CisrCisrICBt ZW1jcHkoY29udGV4dC0+ZnByZWdzLCBmbG9hdF9jb250ZXh0LmZwcmVncywgc2l6ZW9mKGNvbnRl eHQtPmZwcmVncykpOworKyAgY29udGV4dC0+ZnBzY3IgPSBmbG9hdF9jb250ZXh0LmZwc2NyOwor KworKyAgZm9yICh1aW50OF90IGkgPSAwOyBpIDwgMzI7IGkrKykgeworKyAgICBjb250ZXh0LT52 cmVncy5zYXZlX3ZyW2ldID0geworKyAgICAgICgoKHVpbnQ2NF90KXZlY3Rvcl9jb250ZXh0LnZy cmVnc1tpXVswXSkgPDwgMzIpIHwKKysgICAgICAgIHZlY3Rvcl9jb250ZXh0LnZycmVnc1tpXVsx XSwKKysgICAgICAoKCh1aW50NjRfdCl2ZWN0b3JfY29udGV4dC52cnJlZ3NbaV1bMl0pIDw8IDMy KSB8CisrICAgICAgICB2ZWN0b3JfY29udGV4dC52cnJlZ3NbaV1bM10KKysgICAgfTsKKysgIH0K KysgIGNvbnRleHQtPnZyZWdzLnNhdmVfdnJzYXZlID0gdmVjdG9yX2NvbnRleHQudnJzYXZlOwor KyAgY29udGV4dC0+dnJlZ3Muc2F2ZV92c2NyID0gezAsICh1aW50NjRfdCl2ZWN0b3JfY29udGV4 dC52c2NyLnZzY3Jfd29yZH07CisrfQorKworK3RlbXBsYXRlIDx0eXBlbmFtZSBUcmFpdHM+Cisr dm9pZCBJbml0aWFsaXplQ1BVQ29udGV4dFBQQzY0KAorKyAgICBjb25zdCBTaWduYWxUaHJlYWRD b250ZXh0NjQgJnRocmVhZF9jb250ZXh0LAorKyAgICBjb25zdCBTaWduYWxGbG9hdENvbnRleHQ2 NCAmZmxvYXRfY29udGV4dCwKKysgICAgY29uc3QgU2lnbmFsVmVjdG9yQ29udGV4dDY0ICZ2ZWN0 b3JfY29udGV4dCwKKysgICAgdHlwZW5hbWUgVHJhaXRzOjpDUFVDb250ZXh0KiBjb250ZXh0KSB7 CisrCisrICBtZW1jcHkoY29udGV4dC0+cmVncywgdGhyZWFkX2NvbnRleHQucmVncywgc2l6ZW9m KGNvbnRleHQtPnJlZ3MpKTsKKysgIGNvbnRleHQtPm5pcCA9IHRocmVhZF9jb250ZXh0Lm5pcDsK KysgIGNvbnRleHQtPm1zciA9IHRocmVhZF9jb250ZXh0Lm1zcjsKKysgIGNvbnRleHQtPmNjciA9 IHRocmVhZF9jb250ZXh0LmNjcjsKKysgIGNvbnRleHQtPnhlciA9IHRocmVhZF9jb250ZXh0Lnhl cjsKKysgIGNvbnRleHQtPmxuayA9IHRocmVhZF9jb250ZXh0LmxuazsKKysgIGNvbnRleHQtPmN0 ciA9IHRocmVhZF9jb250ZXh0LmN0cjsKKysKKysgIG1lbWNweShjb250ZXh0LT5mcHJlZ3MsIGZs b2F0X2NvbnRleHQucmVncywgc2l6ZW9mKGNvbnRleHQtPmZwcmVncykpOworKyAgY29udGV4dC0+ ZnBzY3IgPSBmbG9hdF9jb250ZXh0LmZwc2NyOworKworKyAgZm9yICh1aW50OF90IGkgPSAwOyBp IDwgMzI7IGkrKykgeworKyAgICBjb250ZXh0LT52cmVncy5zYXZlX3ZyW2ldID0geworKyAgICAg ICgoKHVpbnQ2NF90KXZlY3Rvcl9jb250ZXh0LnZycmVnc1tpXVswXSkgPDwgMzIpIHwKKysgICAg ICAgIHZlY3Rvcl9jb250ZXh0LnZycmVnc1tpXVsxXSwKKysgICAgICAoKCh1aW50NjRfdCl2ZWN0 b3JfY29udGV4dC52cnJlZ3NbaV1bMl0pIDw8IDMyKSB8CisrICAgICAgICB2ZWN0b3JfY29udGV4 dC52cnJlZ3NbaV1bM10KKysgICAgfTsKKysgIH0KKysgIGNvbnRleHQtPnZyZWdzLnNhdmVfdnJz YXZlID0gdmVjdG9yX2NvbnRleHQudnJzYXZlOworKyAgY29udGV4dC0+dnJlZ3Muc2F2ZV92c2Ny ID0gezAsICh1aW50NjRfdCl2ZWN0b3JfY29udGV4dC52c2NyLnZzY3Jfd29yZH07CisrfQorKwor KyNlbmRpZgorIH0gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAorIH0gIC8vIG5hbWVzcGFjZSBjcmFz aHBhZAorIAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFk L2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2RlYnVnX3JlbmRlenZvdXNfdGVzdC5jYworKysrIGIv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBz aG90L2xpbnV4L2RlYnVnX3JlbmRlenZvdXNfdGVzdC5jYworQEAgLTE5Miw2ICsxOTIsOCBAQCB2 b2lkIFRlc3RBZ2FpbnN0VGFyZ2V0KFB0cmFjZUNvbm5lY3Rpb24qCisgICAgICAgICAgICAgICBk ZXZpY2UgPT0gMCAmJiBpbm9kZSA9PSAwICYmIG1hcHBpbmdfbmFtZSA9PSAiW3Zkc29dIjsKKyAj aWYgZGVmaW5lZChBUkNIX0NQVV9YODYpCisgICAgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgY2hh ciBrUHJlZml4W10gPSAibGludXgtZ2F0ZS5zby4iOworKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVf UFBDNjQpCisrICAgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgY2hhciBrUHJlZml4W10gPSAibGlu dXgtdmRzbzY0LnNvLiI7CisgI2Vsc2UKKyAgICAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBjaGFy IGtQcmVmaXhbXSA9ICJsaW51eC12ZHNvLnNvLiI7CisgI2VuZGlmCistLS0gYS9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgv ZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4LmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0v dGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvZXhjZXB0aW9uX3Nu YXBzaG90X2xpbnV4LmNjCitAQCAtMzIzLDYgKzMyMyw2OSBAQCBib29sIEV4Y2VwdGlvblNuYXBz aG90TGludXg6OlJlYWRDb250ZXh0CisgICAgICAgcmVhZGVyLCBjb250ZXh0X2FkZHJlc3MsIGNv bnRleHRfLm1pcHM2NCk7CisgfQorIAorKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFN SUxZKQorKworK3RlbXBsYXRlIDx0eXBlbmFtZSBUcmFpdHM+Cisrc3RhdGljIGJvb2wgUmVhZENv bnRleHQoUHJvY2Vzc1JlYWRlckxpbnV4KiByZWFkZXIsCisrICAgICAgICAgICAgICAgICAgICAg ICAgTGludXhWTUFkZHJlc3MgY29udGV4dF9hZGRyZXNzLAorKyAgICAgICAgICAgICAgICAgICAg ICAgIHR5cGVuYW1lIFRyYWl0czo6Q1BVQ29udGV4dCogZGVzdF9jb250ZXh0KSB7CisrICBjb25z dCBQcm9jZXNzTWVtb3J5KiBtZW1vcnkgPSByZWFkZXItPk1lbW9yeSgpOworKworKyAgTGludXhW TUFkZHJlc3MgZ3BfcmVnc19hZGRyZXNzID0gY29udGV4dF9hZGRyZXNzICsKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKFVDb250ZXh0LCBtY29udGV4dCkgKwor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0b2YodHlwZW5hbWUgVHJh aXRzOjpNQ29udGV4dCwgZ3BfcmVncyk7CisrCisrICB0eXBlbmFtZSBUcmFpdHM6OlNpZ25hbFRo cmVhZENvbnRleHQgdGhyZWFkX2NvbnRleHQ7CisrICBpZiAoIW1lbW9yeS0+UmVhZChncF9yZWdz X2FkZHJlc3MsIHNpemVvZih0aHJlYWRfY29udGV4dCksICZ0aHJlYWRfY29udGV4dCkpIHsKKysg ICAgTE9HKEVSUk9SKSA8PCAiQ291bGRuJ3QgcmVhZCBncF9yZWdzISI7CisrICAgIHJldHVybiBm YWxzZTsKKysgIH0KKysKKysgIExpbnV4Vk1BZGRyZXNzIGZwX3JlZ3NfYWRkcmVzcyA9IGNvbnRl eHRfYWRkcmVzcyArCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRv ZihVQ29udGV4dCwgbWNvbnRleHQpICsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG9mZnNldG9mKHR5cGVuYW1lIFRyYWl0czo6TUNvbnRleHQsIGZwX3JlZ3MpOworKworKyAg dHlwZW5hbWUgVHJhaXRzOjpTaWduYWxGbG9hdENvbnRleHQgZnBfY29udGV4dDsKKysgIGlmICgh bWVtb3J5LT5SZWFkKGZwX3JlZ3NfYWRkcmVzcywgc2l6ZW9mKGZwX2NvbnRleHQpLCAmZnBfY29u dGV4dCkpIHsKKysgICAgTE9HKEVSUk9SKSA8PCAiQ291bGRuJ3QgcmVhZCBmcF9yZWdzISI7Cisr ICAgIHJldHVybiBmYWxzZTsKKysgIH0KKysKKysgIExpbnV4Vk1BZGRyZXNzIHZfcmVnc19wdHJf YWRkcmVzcyA9IGNvbnRleHRfYWRkcmVzcyArCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG9mZnNldG9mKFVDb250ZXh0LCBtY29udGV4dCkgKworKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBvZmZzZXRvZih0eXBlbmFtZSBUcmFpdHM6Ok1Db250ZXh0LCB2bXhf cmVzZXJ2ZSkgKyA4OworKworKyAgdHlwZW5hbWUgVHJhaXRzOjpTaWduYWxWZWN0b3JDb250ZXh0 IHZfY29udGV4dDsKKysgIGlmICghbWVtb3J5LT5SZWFkKHZfcmVnc19wdHJfYWRkcmVzcywgc2l6 ZW9mKHZfY29udGV4dCksICZ2X2NvbnRleHQpKSB7CisrICAgIExPRyhFUlJPUikgPDwgIkNvdWxk bid0IHJlYWQgdl9yZWdzISI7CisrICAgIHJldHVybiBmYWxzZTsKKysgIH0KKysKKysgIEluaXRp YWxpemVDUFVDb250ZXh0UFBDNjQ8Q29udGV4dFRyYWl0czY0Pih0aHJlYWRfY29udGV4dCwgZnBf Y29udGV4dCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgdl9jb250ZXh0LCBkZXN0X2Nv bnRleHQpOworKworKyAgcmV0dXJuIHRydWU7CisrfQorKworK3RlbXBsYXRlPD4KKytib29sIEV4 Y2VwdGlvblNuYXBzaG90TGludXg6OlJlYWRDb250ZXh0PENvbnRleHRUcmFpdHM2ND4oCisrICAg IFByb2Nlc3NSZWFkZXJMaW51eCogcmVhZGVyLAorKyAgICBMaW51eFZNQWRkcmVzcyBjb250ZXh0 X2FkZHJlc3MpIHsKKysgIGNvbnRleHRfLmFyY2hpdGVjdHVyZSA9IGtDUFVBcmNoaXRlY3R1cmVQ UEM2NDsKKysgIGNvbnRleHRfLnBwYzY0ID0gJmNvbnRleHRfdW5pb25fLnBwYzY0OworKworKyAg cmV0dXJuIGludGVybmFsOjpSZWFkQ29udGV4dDxDb250ZXh0VHJhaXRzNjQ+KAorKyAgICAgIHJl YWRlciwgY29udGV4dF9hZGRyZXNzLCBjb250ZXh0Xy5wcGM2NCk7CisrfQorKworK3RlbXBsYXRl PD4KKytib29sIEV4Y2VwdGlvblNuYXBzaG90TGludXg6OlJlYWRDb250ZXh0PENvbnRleHRUcmFp dHMzMj4oCisrICAgIFByb2Nlc3NSZWFkZXJMaW51eCogcmVhZGVyLAorKyAgICBMaW51eFZNQWRk cmVzcyBjb250ZXh0X2FkZHJlc3MpIHsKKysgIC8vIFBQQzY0IGlzIDY0LWJpdAorKyAgcmV0dXJu IGZhbHNlOworK30KKysKKyAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4Nl9GQU1JTFkKKyAKKyBib29s IEV4Y2VwdGlvblNuYXBzaG90TGludXg6OkluaXRpYWxpemUoUHJvY2Vzc1JlYWRlckxpbnV4KiBw cm9jZXNzX3JlYWRlciwKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25fc25hcHNob3RfbGludXgu aAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNo cGFkL3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51eC5oCitAQCAtODQsNiAr ODQsOCBAQCBjbGFzcyBFeGNlcHRpb25TbmFwc2hvdExpbnV4IGZpbmFsIDogcHViCisgI2VsaWYg ZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKKyAgICAgQ1BVQ29udGV4dE1JUFMgbWlwc2Vs OworICAgICBDUFVDb250ZXh0TUlQUzY0IG1pcHM2NDsKKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BV X1BQQzY0X0ZBTUlMWSkKKysgICAgQ1BVQ29udGV4dFBQQzY0IHBwYzY0OworICNlbmRpZgorICAg fSBjb250ZXh0X3VuaW9uXzsKKyAgIENQVUNvbnRleHQgY29udGV4dF87CistLS0gYS9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGlu dXgvZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4X3Rlc3QuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNl cHRpb25fc25hcHNob3RfbGludXhfdGVzdC5jYworQEAgLTI5Niw3ICsyOTYsMjggQEAgdm9pZCBF eHBlY3RDb250ZXh0KGNvbnN0IENQVUNvbnRleHQmIGFjdAorICAgICAgICAgICAgIDApOworICN1 bmRlZiBDUFVfQVJDSF9OQU1FCisgfQorKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFN SUxZKQorK3VzaW5nIE5hdGl2ZUNQVUNvbnRleHQgPSB1Y29udGV4dF90OworIAorK3ZvaWQgSW5p dGlhbGl6ZUNvbnRleHQoTmF0aXZlQ1BVQ29udGV4dCogY29udGV4dCkgeworKyAgZm9yIChzaXpl X3QgcmVnID0gMDsgcmVnIDwgMzI7ICsrcmVnKSB7CisrICAgIGNvbnRleHQtPnVjX21jb250ZXh0 LmdwX3JlZ3NbcmVnXSA9IHJlZzsKKysgIH0KKysKKysgIG1lbXNldCgmY29udGV4dC0+dWNfbWNv bnRleHQuZnBfcmVncywgNDQsCisrICAgICAgc2l6ZW9mKGNvbnRleHQtPnVjX21jb250ZXh0LmZw X3JlZ3MpKTsKKyt9CisrCisrdm9pZCBFeHBlY3RDb250ZXh0KGNvbnN0IENQVUNvbnRleHQmIGFj dHVhbCwgY29uc3QgTmF0aXZlQ1BVQ29udGV4dCYgZXhwZWN0ZWQpIHsKKysgIEVYUEVDVF9FUShh Y3R1YWwuYXJjaGl0ZWN0dXJlLCBrQ1BVQXJjaGl0ZWN0dXJlUFBDNjQpOworKworKyAgZm9yIChz aXplX3QgcmVnID0gMDsgcmVnIDwgMzI7ICsrcmVnKSB7CisrICAgIEVYUEVDVF9FUShhY3R1YWwu cHBjNjQtPnJlZ3NbcmVnXSwgZXhwZWN0ZWQudWNfbWNvbnRleHQuZ3BfcmVnc1tyZWddKTsKKysg IH0KKysKKysgIEVYUEVDVF9FUShtZW1jbXAoYWN0dWFsLnBwYzY0LT5mcHJlZ3MsIGV4cGVjdGVk LnVjX21jb250ZXh0LmZwX3JlZ3MsCisrICAgICAgICAgICAgc2l6ZW9mKGFjdHVhbC5wcGM2NC0+ ZnByZWdzKSksIDApOworK30KKyAjZWxzZQorICNlcnJvciBQb3J0LgorICNlbmRpZgorLS0tIGEv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBz aG90L2xpbnV4L3Byb2Nlc3NfcmVhZGVyX2xpbnV4LmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hy b21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvcHJvY2Vz c19yZWFkZXJfbGludXguY2MKK0BAIC0xMDgsNiArMTA4LDggQEAgdm9pZCBQcm9jZXNzUmVhZGVy TGludXg6OlRocmVhZDo6SW5pdGlhbAorICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1J TFkpCisgICBzdGFja19wb2ludGVyID0gcmVhZGVyLT5JczY0Qml0KCkgPyB0aHJlYWRfaW5mby50 aHJlYWRfY29udGV4dC50NjQucmVnc1syOV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA6IHRocmVhZF9pbmZvLnRocmVhZF9jb250ZXh0LnQzMi5yZWdzWzI5XTsKKysjZWxp ZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKysgIHN0YWNrX3BvaW50ZXIgPSB0aHJl YWRfaW5mby50aHJlYWRfY29udGV4dC50NjQuZ3ByWzFdOworICNlbHNlCisgI2Vycm9yIFBvcnQu CisgI2VuZGlmCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hw YWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvc2lnbmFsX2NvbnRleHQuaAorKysrIGIvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xp bnV4L3NpZ25hbF9jb250ZXh0LmgKK0BAIC00MjIsNiArNDIyLDkzIEBAIHN0YXRpY19hc3NlcnQo b2Zmc2V0b2YoVUNvbnRleHQ8Q29udGV4dFQKKyAgICAgICAgICAgICAgICJjb250ZXh0IG9mZnNl dCBtaXNtYXRjaCIpOworICNlbmRpZgorIAorKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRf RkFNSUxZKQorKworK3N0cnVjdCBTaWduYWxUaHJlYWRDb250ZXh0NjQgeworKyAgdWludDY0X3Qg cmVnc1szMl07CisrICB1aW50NjRfdCBuaXA7CisrICB1aW50NjRfdCBtc3I7CisrICB1aW50NjRf dCBvcmlnX3IzOworKyAgdWludDY0X3QgY3RyOworKyAgdWludDY0X3QgbG5rOworKyAgdWludDY0 X3QgeGVyOworKyAgdWludDY0X3QgY2NyOworKyAgdWludDY0X3Qgc29mdGU7CisrICB1aW50NjRf dCB0cmFwOworKyAgdWludDY0X3QgZGFyOworKyAgdWludDY0X3QgZHNpc3I7CisrICB1aW50NjRf dCByZXN1bHQ7CisrICB1aW50NjRfdCBkc2NyOworKyAgdWludDY0X3QgZnByMFszXTsKKyt9Owor KworK3N0cnVjdCBTaWduYWxGbG9hdENvbnRleHQ2NCB7CisrICBkb3VibGUgcmVnc1szMl07Cisr ICBkb3VibGUgZnBzY3I7CisrfTsKKysKKytzdHJ1Y3QgU2lnbmFsVmVjdG9yQ29udGV4dDY0IHsK KysgIGludDMyX3QgdnJyZWdzWzMyXVs0XTsKKysgIHN0cnVjdCB7CisrICAgIGludDMyX3QgX19w YWRbM107CisrICAgIGludDMyX3QgdnNjcl93b3JkOworKyAgfSB2c2NyOworKyAgaW50MzJfdCB2 cnNhdmU7CisrICBpbnQzMl90IF9fcGFkWzNdOworK30gX19hdHRyaWJ1dGVfXygoX19hbGlnbmVk X18oMTYpKSk7CisrCisrCisrI3ByYWdtYSBwYWNrKHBvcCkKKytzdHJ1Y3QgTUNvbnRleHQ2NCB7 CisrICB1aW50NjRfdCByZXNlcnZlZFs0XTsKKysgIGludDMyX3Qgc2lnbmFsOworKyAgaW50MzJf dCBfX3BhZDA7CisrICB1aW50NjRfdCBoYW5kbGVyOworKyAgdWludDY0X3Qgb2xkbWFzazsKKysg IHVpbnQ2NF90IHB0X3JlZ3NfcHRyOworKyAgU2lnbmFsVGhyZWFkQ29udGV4dDY0IGdwX3JlZ3M7 CisrICBTaWduYWxGbG9hdENvbnRleHQ2NCAgZnBfcmVnczsKKysgIFNpZ25hbFZlY3RvckNvbnRl eHQ2NCAqdl9yZWdzOworKyNpZmRlZiBfX0dMSUJDX18KKysgIGludDY0X3Qgdm14X3Jlc2VydmVb NjldOworKyNlbHNlCisrICBpbnQ2NF90IHZteF9yZXNlcnZlWzEwMV07CisrI2VuZGlmCisrfTsK KysKKytzdHJ1Y3QgQ29udGV4dFRyYWl0czY0IDogcHVibGljIFRyYWl0czY0IHsKKysgIHVzaW5n IE1Db250ZXh0ID0gTUNvbnRleHQ2NDsKKysgIHVzaW5nIFNpZ25hbFRocmVhZENvbnRleHQgPSBT aWduYWxUaHJlYWRDb250ZXh0NjQ7CisrICB1c2luZyBTaWduYWxGbG9hdENvbnRleHQgPSBTaWdu YWxGbG9hdENvbnRleHQ2NDsKKysgIHVzaW5nIFNpZ25hbFZlY3RvckNvbnRleHQgPSBTaWduYWxW ZWN0b3JDb250ZXh0NjQ7CisrICB1c2luZyBDUFVDb250ZXh0ID0gQ1BVQ29udGV4dFBQQzY0Owor K307CisrCisrc3RydWN0IENvbnRleHRUcmFpdHMzMiA6IHB1YmxpYyBUcmFpdHMzMiB7fTsKKysK KytzdHJ1Y3QgVUNvbnRleHQgeworKyAgdWludDY0X3QgZmxhZ3M7CisrICB1aW50NjRfdCBsaW5r OworKyAgU2lnbmFsU3RhY2s8Q29udGV4dFRyYWl0czY0PiBzdGFjazsKKysgIFNpZ3NldDxDb250 ZXh0VHJhaXRzNjQ+IHNpZ21hc2s7CisrICBNQ29udGV4dDY0IG1jb250ZXh0OworK307CisrI3By YWdtYSBwYWNrKHB1c2gsIDEpCisrCisrc3RhdGljX2Fzc2VydChzaXplb2YoVUNvbnRleHQpID09 IHNpemVvZih1Y29udGV4dF90KSwKKysgICAgICAgICAgICAgICJ1Y29udGV4dF90IHNpemUgbWlz bWF0Y2giKTsKKytzdGF0aWNfYXNzZXJ0KHNpemVvZihNQ29udGV4dDY0KSA9PSBzaXplb2YobWNv bnRleHRfdCksCisrICAgICAgICAgICAgICAibWNvbnRleHRfdCBzaXplIG1pc21hdGNoIik7Cisr c3RhdGljX2Fzc2VydChzaXplb2YoU2lnbmFsVGhyZWFkQ29udGV4dDY0KSA9PSBzaXplb2YoZ3Jl Z3NldF90KSwKKysgICAgICAgICAgICAgICJncmVnc2V0X3Qgc2l6ZSBtaXNtYXRjaCIpOworK3N0 YXRpY19hc3NlcnQoc2l6ZW9mKFNpZ25hbEZsb2F0Q29udGV4dDY0KSA9PSBzaXplb2YoZnByZWdz ZXRfdCksCisrICAgICAgICAgICAgICAiZnByZWdzZXRfdCBzaXplIG1pc21hdGNoIik7Cisrc3Rh dGljX2Fzc2VydChzaXplb2YoU2lnbmFsVmVjdG9yQ29udGV4dDY0KSA9PSBzaXplb2YodnJyZWdz ZXRfdCksCisrICAgICAgICAgICAgICAidnJyZWdzZXRfdCBzaXplIG1pc21hdGNoIik7Cisrc3Rh dGljX2Fzc2VydChvZmZzZXRvZihVQ29udGV4dCwgbWNvbnRleHQpID09CisrICAgICAgICAgICAg ICBvZmZzZXRvZih1Y29udGV4dF90LCB1Y19tY29udGV4dCksICJtY29udGV4dCBvZmZzZXQgbWlz bWF0Y2giKTsKKytzdGF0aWNfYXNzZXJ0KG9mZnNldG9mKE1Db250ZXh0NjQsIGdwX3JlZ3MpID09 CisrICAgICAgICAgICAgICBvZmZzZXRvZihtY29udGV4dF90LCBncF9yZWdzKSwgImdwX3JlZ3Mg b2Zmc2V0IG1pc21hdGNoIik7CisgI2Vsc2UKKyAjZXJyb3IgUG9ydC4KKyAjZW5kaWYgIC8vIEFS Q0hfQ1BVX1g4Nl9GQU1JTFkKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9zeXN0ZW1fc25hcHNob3RfbGludXgu Y2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFz aHBhZC9zbmFwc2hvdC9saW51eC9zeXN0ZW1fc25hcHNob3RfbGludXguY2MKK0BAIC0yMDQsNiAr MjA0LDggQEAgQ1BVQXJjaGl0ZWN0dXJlIFN5c3RlbVNuYXBzaG90TGludXg6OkdldAorICNlbGlm IGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCisgICByZXR1cm4gcHJvY2Vzc19yZWFkZXJf LT5JczY0Qml0KCkgPyBrQ1BVQXJjaGl0ZWN0dXJlTUlQUzY0RUwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA6IGtDUFVBcmNoaXRlY3R1cmVNSVBTRUw7CisrI2VsaWYgZGVm aW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisrICByZXR1cm4ga0NQVUFyY2hpdGVjdHVyZVBQ QzY0OworICNlbHNlCisgI2Vycm9yIHBvcnQgdG8geW91ciBhcmNoaXRlY3R1cmUKKyAjZW5kaWYK K0BAIC0yMTksNiArMjIxLDkgQEAgdWludDMyX3QgU3lzdGVtU25hcHNob3RMaW51eDo6Q1BVUmV2 aXNpbworICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCisgICAvLyBOb3QgaW1w bGVtZW50YWJsZSBvbiBNSVBTCisgICByZXR1cm4gMDsKKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BV X1BQQzY0X0ZBTUlMWSkKKysgIC8vIE5vdCB5ZXQgaW1wbGVtZW50ZWQgb24gUFBDNjQKKysgIHJl dHVybiAwOworICNlbHNlCisgI2Vycm9yIHBvcnQgdG8geW91ciBhcmNoaXRlY3R1cmUKKyAjZW5k aWYKK0BAIC0yMzksNiArMjQ0LDkgQEAgc3RkOjpzdHJpbmcgU3lzdGVtU25hcHNob3RMaW51eDo6 Q1BVVmVuZAorICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCisgICAvLyBOb3Qg aW1wbGVtZW50YWJsZSBvbiBNSVBTCisgICByZXR1cm4gc3RkOjpzdHJpbmcoKTsKKysjZWxpZiBk ZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKysgIC8vIE5vdCB5ZXQgaW1wbGVtZW50ZWQg b24gUFBDNjQKKysgIHJldHVybiBzdGQ6OnN0cmluZygpOworICNlbHNlCisgI2Vycm9yIHBvcnQg dG8geW91ciBhcmNoaXRlY3R1cmUKKyAjZW5kaWYKK0BAIC0zNzIsNiArMzgwLDkgQEAgYm9vbCBT eXN0ZW1TbmFwc2hvdExpbnV4OjpOWEVuYWJsZWQoKSBjbworICNlbGlmIGRlZmluZWQoQVJDSF9D UFVfTUlQU19GQU1JTFkpCisgICAvLyBOb3QgaW1wbGVtZW50YWJsZSBvbiBNSVBTCisgICByZXR1 cm4gZmFsc2U7CisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisrICAvLyBO b3QgeWV0IGltcGxlbWVudGVkIG9uIFBQQzY0CisrICByZXR1cm4gZmFsc2U7CisgI2Vsc2UKKyAj ZXJyb3IgUG9ydC4KKyAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4Nl9GQU1JTFkKKy0tLSBhL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9s aW51eC90ZXN0X21vZHVsZXMuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC90ZXN0X21vZHVsZXMuY2MKK0BA IC0xMTAsNiArMTEwLDggQEAgYm9vbCBXcml0ZVRlc3RNb2R1bGUoY29uc3QgYmFzZTo6RmlsZVBh dAorICAgbW9kdWxlLmVoZHIuZV9tYWNoaW5lID0gRU1fQUFSQ0g2NDsKKyAjZWxpZiBkZWZpbmVk KEFSQ0hfQ1BVX01JUFNFTCkgfHwgZGVmaW5lZChBUkNIX0NQVV9NSVBTNjRFTCkKKyAgIG1vZHVs ZS5laGRyLmVfbWFjaGluZSA9IEVNX01JUFM7CisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2 NCkKKysgIG1vZHVsZS5laGRyLmVfbWFjaGluZSA9IEVNX1BQQzY0OworICNlbmRpZgorIAorICAg bW9kdWxlLmVoZHIuZV92ZXJzaW9uID0gRVZfQ1VSUkVOVDsKKy0tLSBhL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC90aHJl YWRfc25hcHNob3RfbGludXguY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC90aHJlYWRfc25hcHNob3RfbGlu dXguY2MKK0BAIC0xODYsNiArMTg2LDE0IEBAIGJvb2wgVGhyZWFkU25hcHNob3RMaW51eDo6SW5p dGlhbGl6ZShQcm8KKyAgICAgICAgIHRocmVhZC50aHJlYWRfaW5mby5mbG9hdF9jb250ZXh0LmYz MiwKKyAgICAgICAgIGNvbnRleHRfLm1pcHNlbCk7CisgICB9CisrI2VsaWYgZGVmaW5lZChBUkNI X0NQVV9QUEM2NF9GQU1JTFkpCisrICBjb250ZXh0Xy5hcmNoaXRlY3R1cmUgPSBrQ1BVQXJjaGl0 ZWN0dXJlUFBDNjQ7CisrICBjb250ZXh0Xy5wcGM2NCA9ICZjb250ZXh0X3VuaW9uXy5wcGM2NDsK KysgIEluaXRpYWxpemVDUFVDb250ZXh0UFBDNjQ8Q29udGV4dFRyYWl0czY0PigKKysgICAgICB0 aHJlYWQudGhyZWFkX2luZm8udGhyZWFkX2NvbnRleHQudDY0LAorKyAgICAgIHRocmVhZC50aHJl YWRfaW5mby5mbG9hdF9jb250ZXh0LmY2NCwKKysgICAgICB0aHJlYWQudGhyZWFkX2luZm8udmVj dG9yX2NvbnRleHQudjY0LAorKyAgICAgIGNvbnRleHRfLnBwYzY0KTsKKyAjZWxzZQorICNlcnJv ciBQb3J0LgorICNlbmRpZgorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3RocmVhZF9zbmFwc2hvdF9saW51eC5o CisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvc25hcHNob3QvbGludXgvdGhyZWFkX3NuYXBzaG90X2xpbnV4LmgKK0BAIC02OCw2ICs2OCw4 IEBAIGNsYXNzIFRocmVhZFNuYXBzaG90TGludXggZmluYWwgOiBwdWJsaWMKKyAjZWxpZiBkZWZp bmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQorICAgICBDUFVDb250ZXh0TUlQUyBtaXBzZWw7Cisg ICAgIENQVUNvbnRleHRNSVBTNjQgbWlwczY0OworKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBD NjRfRkFNSUxZKQorKyAgICBDUFVDb250ZXh0UFBDNjQgcHBjNjQ7CisgI2Vsc2UKKyAjZXJyb3Ig UG9ydC4KKyAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4Nl9GQU1JTFkKKy0tLSBhL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L2F1eGls aWFyeV92ZWN0b3IuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L2F1eGlsaWFyeV92ZWN0b3IuY2MKK0BAIC01Niw2 ICs1NiwxMSBAQCBib29sIEF1eGlsaWFyeVZlY3Rvcjo6UmVhZChQdHJhY2VDb25uZWN0CisgICAg IGlmICh0eXBlID09IEFUX0lHTk9SRSkgeworICAgICAgIGNvbnRpbnVlOworICAgICB9CisrI2lm IGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKyAgICBpZiAodHlwZSA9PSBBVF9JR05P UkVQUEMpIHsKKysgICAgICBjb250aW51ZTsKKysgICAgfQorKyNlbmRpZgorICAgICBpZiAoIU1h cEluc2VydE9yUmVwbGFjZSgmdmFsdWVzXywgdHlwZSwgdmFsdWUsIG51bGxwdHIpKSB7CisgICAg ICAgTE9HKEVSUk9SKSA8PCAiZHVwbGljYXRlIGF1eHYgZW50cnkiOworICAgICAgIHJldHVybiBm YWxzZTsKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9j cmFzaHBhZC91dGlsL2xpbnV4L3B0cmFjZXIuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3B0cmFjZXIuY2MKK0BA IC0zOTksNiArMzk5LDY0IEBAIGJvb2wgR2V0VGhyZWFkQXJlYTY0KHBpZF90IHRpZCwKKyAgIHJl dHVybiB0cnVlOworIH0KKyAKKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkK KysvLyBQUEM2NCBoYXMgaGFkIEhBVkVfQVJDSF9UUkFDRUhPT0sgc2V0IHNpbmNlIDIuNi4yNyAo ZXZlbiBiZWZvcmUgeDg2IGhhZCBpdCkuCisrLy8gVGhhdCBtZWFucyB3ZSBjYW4gc2ltcGx5IHVz ZSBQVFJBQ0VfR0VUUkVHRVNFVC4KKysKKyt0ZW1wbGF0ZSA8dHlwZW5hbWUgRGVzdGluYXRpb24+ CisrYm9vbCBHZXRSZWdpc3RlclNldChwaWRfdCB0aWQsIGludCBzZXQsIERlc3RpbmF0aW9uKiBk ZXN0LCBib29sIGNhbl9sb2cpIHsKKysgIGlvdmVjIGlvdjsKKysgIGlvdi5pb3ZfYmFzZSA9IHJl aW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGRlc3QpOworKyAgaW92Lmlvdl9sZW4gPSBzaXplb2YoKmRl c3QpOworKyAgaWYgKHB0cmFjZShQVFJBQ0VfR0VUUkVHU0VULCB0aWQsIHJlaW50ZXJwcmV0X2Nh c3Q8dm9pZCo+KHNldCksICZpb3YpICE9IDApIHsKKysgICAgUExPR19JRihFUlJPUiwgY2FuX2xv ZykgPDwgInB0cmFjZSI7CisrICAgIHJldHVybiBmYWxzZTsKKysgIH0KKysgIGlmIChpb3YuaW92 X2xlbiAhPSBzaXplb2YoKmRlc3QpKSB7CisrICAgIExPR19JRihFUlJPUiwgY2FuX2xvZykgPDwg IlVuZXhwZWN0ZWQgcmVnaXN0ZXJzIHNpemUiOworKyAgICByZXR1cm4gZmFsc2U7CisrICB9Cisr ICByZXR1cm4gdHJ1ZTsKKyt9CisrCisrYm9vbCBHZXRWZWN0b3JSZWdpc3RlcnM2NChwaWRfdCB0 aWQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICBWZWN0b3JDb250ZXh0KiBjb250ZXh0LAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBjYW5fbG9nKSB7CisrICByZXR1cm4gR2V0 UmVnaXN0ZXJTZXQodGlkLCBOVF9QUENfVk1YLCAmY29udGV4dC0+djY0LCBjYW5fbG9nKTsKKyt9 CisrCisrYm9vbCBHZXRGbG9hdGluZ1BvaW50UmVnaXN0ZXJzNjQocGlkX3QgdGlkLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZsb2F0Q29udGV4dCogY29udGV4dCwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGNhbl9sb2cpIHsKKysgIHJldHVybiBH ZXRSZWdpc3RlclNldCh0aWQsIE5UX1BSRlBSRUcsICZjb250ZXh0LT5mNjQsIGNhbl9sb2cpOwor K30KKysKKytib29sIEdldFRocmVhZEFyZWE2NChwaWRfdCB0aWQsCisrICAgICAgICAgICAgICAg ICAgICAgY29uc3QgVGhyZWFkQ29udGV4dCYgY29udGV4dCwKKysgICAgICAgICAgICAgICAgICAg ICBMaW51eFZNQWRkcmVzcyogYWRkcmVzcywKKysgICAgICAgICAgICAgICAgICAgICBib29sIGNh bl9sb2cpIHsKKysgIC8vIFBQQzY0IGRvZXNuJ3QgaGF2ZSBQVFJBQ0VfR0VUX1RIUkVBRF9BUkVB IHNpbmNlIHRoZSB0aHJlYWQgcG9pbnRlcgorKyAgLy8gaXMgc3RvcmVkIGluIEdQUiAxMy4KKysg IFRocmVhZENvbnRleHQ6OnQ2NF90IHRjOworKyAgaWYgKCFHZXRSZWdpc3RlclNldCh0aWQsIE5U X1BSU1RBVFVTLCAmdGMsIGNhbl9sb2cpKSB7CisrICAgIExPR19JRihFUlJPUiwgY2FuX2xvZykg PDwgIlVuYWJsZSB0byBnZXQgdGhyZWFkIHBvaW50ZXIhIjsKKysgICAgcmV0dXJuIGZhbHNlOwor KyAgfQorKworKyAgKmFkZHJlc3MgPSB0Yy5ncHJbMTNdOworKworKyAgcmV0dXJuIHRydWU7Cisr fQorKworKy8vIFN0dWJzIGZvciAzMi1iaXQgZnVuY3Rpb25zIG5vdCBhcHBsaWNhYmxlIG9uIFBQ QzY0CisrYm9vbCBHZXRGbG9hdGluZ1BvaW50UmVnaXN0ZXJzMzIocGlkX3QgdGlkLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZsb2F0Q29udGV4dCogY29udGV4dCwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGNhbl9sb2cpIHsgcmV0dXJuIGZhbHNl OyB9CisrYm9vbCBHZXRUaHJlYWRBcmVhMzIocGlkX3QgdGlkLAorKyAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IFRocmVhZENvbnRleHQgJmNvbnRleHQsCisrICAgICAgICAgICAgICAgICAgICAg TGludXhWTUFkZHJlc3MgKmFkZHJlc3MsCisrICAgICAgICAgICAgICAgICAgICAgYm9vbCBjYW5f bG9nKSB7IHJldHVybiBmYWxzZTsgfQorKworICNlbHNlCisgI2Vycm9yIFBvcnQuCisgI2VuZGlm ICAvLyBBUkNIX0NQVV9YODZfRkFNSUxZCitAQCAtNDk1LDYgKzU1Myw5IEBAIGJvb2wgUHRyYWNl cjo6R2V0VGhyZWFkSW5mbyhwaWRfdCB0aWQsIFQKKyAgIGlmIChpc182NF9iaXRfKSB7CisgICAg IHJldHVybiBHZXRHZW5lcmFsUHVycG9zZVJlZ2lzdGVyczY0KHRpZCwgJmluZm8tPnRocmVhZF9j b250ZXh0LCBjYW5fbG9nXykgJiYKKyAgICAgICAgICAgIEdldEZsb2F0aW5nUG9pbnRSZWdpc3Rl cnM2NCh0aWQsICZpbmZvLT5mbG9hdF9jb250ZXh0LCBjYW5fbG9nXykgJiYKKysjaWYgZGVmaW5l ZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisrICAgICAgICAgICBHZXRWZWN0b3JSZWdpc3RlcnM2 NCh0aWQsICZpbmZvLT52ZWN0b3JfY29udGV4dCwgY2FuX2xvZ18pICYmCisrI2VuZGlmCisgICAg ICAgICAgICBHZXRUaHJlYWRBcmVhNjQodGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg IGluZm8tPnRocmVhZF9jb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICZpbmZv LT50aHJlYWRfc3BlY2lmaWNfZGF0YV9hZGRyZXNzLAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvdGhyZWFkX2luZm8u aAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNo cGFkL3V0aWwvbGludXgvdGhyZWFkX2luZm8uaAorQEAgLTM5LDYgKzM5LDEzIEBAIHN0cnVjdCB1 c2VyX3ZmcF9leGMgeworICNpbmNsdWRlIDxhbmRyb2lkL2FwaS1sZXZlbC5oPgorICNlbmRpZgor IAorKyNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKysjaW5jbHVkZSA8c3lzL3Vj b250ZXh0Lmg+CisrI2lmICFkZWZpbmVkKF9fR0xJQkNfXykKKysjaW5jbHVkZSA8YXNtL3B0cmFj ZS5oPgorKyNlbmRpZgorKyNlbmRpZgorKworIG5hbWVzcGFjZSBjcmFzaHBhZCB7CisgCisgLy8h IFxicmllZiBUaGUgc2V0IG9mIGdlbmVyYWwgcHVycG9zZSByZWdpc3RlcnMgZm9yIGFuIGFyY2hp dGVjdHVyZSBmYW1pbHkuCitAQCAtOTAsNiArOTcsOCBAQCB1bmlvbiBUaHJlYWRDb250ZXh0IHsK KyAgICAgdWludDMyX3QgY3AwX3N0YXR1czsKKyAgICAgdWludDMyX3QgY3AwX2NhdXNlOworICAg ICB1aW50MzJfdCBwYWRkaW5nMV87CisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1J TFkpCisrICAgIC8vIFBQQzY0IGlzIDY0LWJpdAorICNlbHNlCisgI2Vycm9yIFBvcnQuCisgI2Vu ZGlmICAvLyBBUkNIX0NQVV9YODZfRkFNSUxZCitAQCAtMTQzLDYgKzE1MiwyMSBAQCB1bmlvbiBU aHJlYWRDb250ZXh0IHsKKyAgICAgdWludDY0X3QgY3AwX2JhZHZhZGRyOworICAgICB1aW50NjRf dCBjcDBfc3RhdHVzOworICAgICB1aW50NjRfdCBjcDBfY2F1c2U7CisrI2VsaWYgZGVmaW5lZChB UkNIX0NQVV9QUEM2NF9GQU1JTFkpCisrICAgIC8vIFJlZmxlY3RzIHN0cnVjdCBwdF9yZWdzIGlu IGFzbS9wdHJhY2UuaC4KKysgICAgdWludDY0X3QgZ3ByWzMyXTsKKysgICAgdWludDY0X3Qgbmlw OworKyAgICB1aW50NjRfdCBtc3I7CisrICAgIHVpbnQ2NF90IG9yaWdfZ3ByMzsKKysgICAgdWlu dDY0X3QgY3RyOworKyAgICB1aW50NjRfdCBsbms7CisrICAgIHVpbnQ2NF90IHhlcjsKKysgICAg dWludDY0X3QgY2NyOworKyAgICB1aW50NjRfdCBzb2Z0ZTsKKysgICAgdWludDY0X3QgdHJhcDsK KysgICAgdWludDY0X3QgZGFyOworKyAgICB1aW50NjRfdCBkc2lzcjsKKysgICAgdWludDY0X3Qg cmVzdWx0OworICNlbHNlCisgI2Vycm9yIFBvcnQuCisgI2VuZGlmICAvLyBBUkNIX0NQVV9YODZf RkFNSUxZCitAQCAtMTU0LDYgKzE3OCw4IEBAIHVuaW9uIFRocmVhZENvbnRleHQgeworICAgdXNp bmcgTmF0aXZlVGhyZWFkQ29udGV4dCA9IHVzZXJfcmVnczsKKyAjZWxpZiBkZWZpbmVkKEFSQ0hf Q1BVX01JUFNfRkFNSUxZKQorIC8vIE5vIGFwcHJvcHJpYXRlIE5hdGl2ZVRocmVhZHNDb250ZXh0 IHR5cGUgYXZhaWxhYmxlIGZvciBNSVBTCisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9G QU1JTFkpCisrICB1c2luZyBOYXRpdmVUaHJlYWRDb250ZXh0ID0gc3RydWN0IHB0X3JlZ3M7Cisg I2Vsc2UKKyAjZXJyb3IgUG9ydC4KKyAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4Nl9GQU1JTFkgfHwg QVJDSF9DUFVfQVJNNjQKK0BAIC0yMjksNiArMjU1LDkgQEAgdW5pb24gRmxvYXRDb250ZXh0IHsK KyAgICAgfSBmcHJlZ3NbMzJdOworICAgICB1aW50MzJfdCBmcGNzcjsKKyAgICAgdWludDMyX3Qg ZnB1X2lkOworKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKyAgICAvLyBD cmFzaHBhZCdzIFBQQyBzdXBwb3J0IGlzIDY0LWJpdCBvbmx5LCBzbyB0aGlzCisrICAgIC8vIDMy Yml0LW9ubHkgc3RydWN0IGlzIGRlY2xhcmVkIGFzIGVtcHR5LgorICNlbHNlCisgI2Vycm9yIFBv cnQuCisgI2VuZGlmICAvLyBBUkNIX0NQVV9YODZfRkFNSUxZCitAQCAtMjYzLDYgKzI5MiwxMCBA QCB1bmlvbiBGbG9hdENvbnRleHQgeworICAgICBkb3VibGUgZnByZWdzWzMyXTsKKyAgICAgdWlu dDMyX3QgZnBjc3I7CisgICAgIHVpbnQzMl90IGZwdV9pZDsKKysjZWxpZiBkZWZpbmVkKEFSQ0hf Q1BVX1BQQzY0X0ZBTUlMWSkKKysgICAgLy8gUmVmbGVjdHMgZnByZWdzZXRfdCBpbiBzeXMvdWNv bnRleHQuaAorKyAgICBkb3VibGUgZnByZWdzWzMyXTsKKysgICAgZG91YmxlIGZwc2NyOworICNl bHNlCisgI2Vycm9yIFBvcnQuCisgI2VuZGlmICAvLyBBUkNIX0NQVV9YODZfRkFNSUxZCitAQCAt MjkxLDYgKzMyNCw4IEBAIHVuaW9uIEZsb2F0Q29udGV4dCB7CisgICBzdGF0aWNfYXNzZXJ0KHNp emVvZihmNjQpID09IHNpemVvZih1c2VyX2Zwc2ltZF9zdHJ1Y3QpLCAiU2l6ZSBtaXNtYXRjaCIp OworICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCisgLy8gTm8gYXBwcm9wcmlh dGUgZmxvYXRpbmcgcG9pbnQgY29udGV4dCBuYXRpdmUgdHlwZSBmb3IgYXZhaWxhYmxlIE1JUFMu CisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisrICBzdGF0aWNfYXNzZXJ0 KHNpemVvZihmNjQpID09IHNpemVvZihmcHJlZ3NldF90KSwgIlNpemUgbWlzbWF0Y2giKTsKKyAj ZWxzZQorICNlcnJvciBQb3J0LgorICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2CitAQCAtMjk4LDYg KzMzMywyNiBAQCB1bmlvbiBGbG9hdENvbnRleHQgeworIHN0YXRpY19hc3NlcnQoc3RkOjppc19z dGFuZGFyZF9sYXlvdXQ8RmxvYXRDb250ZXh0Pjo6dmFsdWUsCisgICAgICAgICAgICAgICAiTm90 IHN0YW5kYXJkIGxheW91dCIpOworIAorKy8vISBcYnJpZWYgVGhlIHZlY3RvciByZWdpc3RlcnMg dXNlZCBmb3IgYW4gYXJjaGl0ZWN0dXJlIGZhbWlseQorK3VuaW9uIFZlY3RvckNvbnRleHQgewor KyAgc3RydWN0IHYzMl90IHt9IHYzMjsKKysjaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1J TFkpCisrICBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXygxNikpKSAvLyBWZWN0b3IgY29udGV4 dCBtdXN0IGJlIGRvdWJsZXdvcmQgYWxpZ25lZC4KKysjZW5kaWYKKysgIHN0cnVjdCB2NjRfdCB7 CisrI2lmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKyAgICAvLyBSZWZsZWN0cyB2 cnJlZ3NldF90IGluIHN5cy91Y29udGV4dC5oCisrICAgIHVpbnQzMl90IHZycmVnc1szMl1bNF07 CisrICAgIHN0cnVjdCB7CisrICAgICAgdWludDMyX3QgX19wYWRbM107CisrICAgICAgdWludDMy X3QgdnNjcl93b3JkOworKyAgICB9IHZzY3I7CisrICAgIHVpbnQzMl90IHZyc2F2ZTsKKysgICAg dWludDMyX3QgX19wYWRbM107CisrI2VuZGlmCisrICB9IHY2NDsKKyt9OworKworIC8vISBcYnJp ZWYgQSBjb2xsZWN0aW9uIG9mIGBwdHJhY2VgLWFibGUgaW5mb3JtYXRpb24gYWJvdXQgYSB0aHJl YWQuCisgc3RydWN0IFRocmVhZEluZm8geworICAgVGhyZWFkSW5mbygpOworQEAgLTMwOSw2ICsz NjQsOSBAQCBzdHJ1Y3QgVGhyZWFkSW5mbyB7CisgICAvLyEgXGJyaWVmIFRoZSBmbG9hdGluZyBw b2ludCByZWdpc3RlcnMgZm9yIHRoZSB0aHJlYWQuCisgICBGbG9hdENvbnRleHQgZmxvYXRfY29u dGV4dDsKKyAKKysgIC8vISBcYnJpZWYgKE9wdGlvbmFsKSBUaGUgdmVjdG9yIHJlZ2lzdGVycyB1 c2VkIGZvciB0aGUgdGhyZWFkLgorKyAgVmVjdG9yQ29udGV4dCB2ZWN0b3JfY29udGV4dDsKKysK KyAgIC8vISBcYnJpZWYgVGhlIHRocmVhZC1sb2NhbCBzdG9yYWdlIGFkZHJlc3MgZm9yIHRoZSB0 aHJlYWQuCisgICBMaW51eFZNQWRkcmVzcyB0aHJlYWRfc3BlY2lmaWNfZGF0YV9hZGRyZXNzOwor IH07CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jh c2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dC5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hy b21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29u dGV4dC5oCitAQCAtNjksNiArNjksNyBAQCB1c2luZyBOYXRpdmVDUFVDb250ZXh0ID0gdWNvbnRl eHRfdDsKKyAvLyEgICAgIG1hY09TL0xpbnV4L0Z1Y2hzaWEgfCB4ODZfNjQgICAgICAgfCBgJSVy ZGlgCisgLy8hICAgICBMaW51eCAgICAgICAgICAgICAgIHwgQVJNL0FSTTY0ICAgIHwgYHIwYC9g eDBgCisgLy8hICAgICBMaW51eCAgICAgICAgICAgICAgIHwgTUlQUy9NSVBTNjQgIHwgYCRhMGAK KysvLyEgICAgIExpbnV4ICAgICAgICAgICAgICAgfCBQUEM2NCAgICAgICAgfCBgcjNgCisgLy8h CisgLy8hICAgICBBZGRpdGlvbmFsbHksIHRoZSB2YWx1ZSBgTFJgIG9uIEFSTS9BUk02NCB3aWxs IGJlIHRoZSByZXR1cm4gYWRkcmVzcyBvZgorIC8vISAgICAgdGhpcyBmdW5jdGlvbi4KKy0tLSBh L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGls L21pc2MvY2FwdHVyZV9jb250ZXh0X2xpbnV4LlMKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0 X2xpbnV4LlMKK0BAIC0zMiw3ICszMiw3IEBACisgICAuYmFsaWduIDQsIDB4MAorICAgLnR5cGUg Q0FQVFVSRUNPTlRFWFRfU1lNQk9MLCAlZnVuY3Rpb24KKyAgIC50eXBlIENBUFRVUkVDT05URVhU X1NZTUJPTDIsICVmdW5jdGlvbgorLSNlbGlmIGRlZmluZWQoX19taXBzX18pCisrI2VsaWYgZGVm aW5lZChfX21pcHNfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgLmJhbGlnbiA0LCAw eDAKKyAjZW5kaWYKKyAKK0BAIC00MjMsNCArNDIzLDIxNCBAQCBDQVBUVVJFQ09OVEVYVF9TWU1C T0wyOgorICAganIgJHJhCisgCisgICAuc2V0IGF0CisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQorKyAgLy8gU3RvcmUgcjAtcjMxCisrICBzdGQgMCwgMHhlOCgzKSAgIC8vIGNvbnRleHQt PnVjX21jb250ZXh0LmdwX3JlZ3NbMF0KKysgIHN0ZCAxLCAweGYwKDMpICAgLy8gY29udGV4dC0+ dWNfbWNvbnRleHQuZ3BfcmVnc1sxXQorKyAgc3RkIDIsIDB4ZjgoMykgICAvLyBjb250ZXh0LT51 Y19tY29udGV4dC5ncF9yZWdzWzJdCisrICAvLyBub3RlIHRoYXQgcjMncyBvcmlnaW5hbCB2YWx1 ZSB3YXMgbG9zdAorKyAgc3RkIDMsIDB4MTAwKDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5n cF9yZWdzWzNdCisrICBzdGQgNCwgMHgxMDgoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0Lmdw X3JlZ3NbNF0KKysgIHN0ZCA1LCAweDExMCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3Bf cmVnc1s1XQorKyAgc3RkIDYsIDB4MTE4KDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9y ZWdzWzZdCisrICBzdGQgNywgMHgxMjAoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3Jl Z3NbN10KKysgIHN0ZCA4LCAweDEyOCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVn c1s4XQorKyAgc3RkIDksIDB4MTMwKDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdz WzldCisrICBzdGQgMTAsIDB4MTM4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3Nb MTBdCisrICBzdGQgMTEsIDB4MTQwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3Nb MTFdCisrICBzdGQgMTIsIDB4MTQ4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3Nb MTJdCisrICBzdGQgMTMsIDB4MTUwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3Nb MTNdCisrICBzdGQgMTQsIDB4MTU4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3Nb MTRdCisrICBzdGQgMTUsIDB4MTYwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3Nb MTVdCisrICBzdGQgMTYsIDB4MTY4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3Nb MTZdCisrICBzdGQgMTcsIDB4MTcwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3Nb MTddCisrICBzdGQgMTgsIDB4MTc4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3Nb MThdCisrICBzdGQgMTksIDB4MTgwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3Nb MTldCisrICBzdGQgMjAsIDB4MTg4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3Nb MjBdCisrICBzdGQgMjEsIDB4MTkwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3Nb MjFdCisrICBzdGQgMjIsIDB4MTk4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3Nb MjJdCisrICBzdGQgMjMsIDB4MWEwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3Nb MjNdCisrICBzdGQgMjQsIDB4MWE4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3Nb MjRdCisrICBzdGQgMjUsIDB4MWIwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3Nb MjVdCisrICBzdGQgMjYsIDB4MWI4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3Nb MjZdCisrICBzdGQgMjcsIDB4MWMwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3Nb MjddCisrICBzdGQgMjgsIDB4MWM4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3Nb MjhdCisrICBzdGQgMjksIDB4MWQwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3Nb MjldCisrICBzdGQgMzAsIDB4MWQ4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3Nb MzBdCisrICBzdGQgMzEsIDB4MWUwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3Nb MzFdCisrCisrICAvLyBGb3IgTklQLCB3ZSBjYW4gdXNlIHRoZSB2YWx1ZSBpbiB0aGUgbGluayBy ZWdpc3RlcgorKyAgbWZsciAwCisrICBzdGQgMCwgMHgxZTgoMykgLy8gY29udGV4dC0+dWNfbWNv bnRleHQuZ3BfcmVnc1tQVF9OSVBdCisrCisrICAvLyBDVFIKKysgIG1mY3RyIDAKKysgIHN0ZCAw LCAweDIwMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX0NUUl0KKysKKysg IC8vIEZvciBMTkssIHdlJ2xsIHVzZSB0aGUgY2FsbGVyJ3MgTFIgc2F2ZSBhcmVhICgyIHN0YWNr IGZyYW1lcyB1cCkuCisrICAvLyByNCBjYW4gYmUgdXNlZCBhcyBhIHNjcmF0Y2ggcmVnaXN0ZXIg c2luY2UgaXQgaGFzIGFscmVhZHkgYmVlbiBzYXZlZC4KKysgIGxkIDQsIDAoMSkKKysgIGxkIDQs IDE2KDQpCisrICBzdGQgNCwgMHgyMDgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVn c1tQVF9MTktdCisrCisrICAvLyBYRVIKKysgIG1meGVyIDAKKysgIHN0ZCAwLCAweDIxMCgzKSAv LyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX1hFUl0KKysKKysgIC8vIENDUgorKyAg bWZjciAwCisrICBzdGQgMCwgMHgyMTgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVn c1tQVF9DQ1JdCisrCisrICAvLyBNU1IsIG9yaWdfcjMsIE1RLCBUUkFQLCBEQVIsIERTSVNSLCBS RVNVTFQsIERTQ1IsCisrICAvLyBub3QgdXNlZCBvciBub3QgcmVsZXZhbnQsICB6ZXJvIHRoZW0g b3V0LgorKyAgbGkgNCwgMAorKyAgc3RkIDQsIDB4MWYwKDMpIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmdwX3JlZ3NbUFRfTVNSXQorKyAgc3RkIDQsIDB4MWY4KDMpIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LmdwX3JlZ3NbUFRfT1JJR19SM10KKysgIHN0ZCA0LCAweDIyMCgzKSAvLyBjb250ZXh0 LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX01RXQorKyAgc3RkIDQsIDB4MjI4KDMpIC8vIGNvbnRl eHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfVFJBUF0KKysgIHN0ZCA0LCAweDIzMCgzKSAvLyBj b250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX0RBUl0KKysgIHN0ZCA0LCAweDIzOCgzKSAv LyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX0RTSVNSXQorKyAgc3RkIDQsIDB4MjQw KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfUkVTVUxUXQorKyAgc3RkIDQs IDB4MjQ4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfRFNDUl0KKysKKysg IC8vIFVwZGF0ZSBjb250ZXh0LT51Y19tY29udGV4dC5yZWdzIHRvIHBvaW50IHRvIGdwX3JlZ3MK KysgIGFkZGkgMCwgMywgMHhlOAorKyAgc3RkIDAsIDB4ZTAoMykKKysKKysgIC8vIFNhdmUgZmxv YXRpbmcgcG9pbnQgcmVnaXN0ZXJzIDAtMzEKKysgIHN0ZmQgMCwgMHgyNjgoMykgIC8vIGNvbnRl eHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMF0KKysgIHN0ZmQgMSwgMHgyNzAoMykgIC8vIGNvbnRl eHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMV0KKysgIHN0ZmQgMiwgMHgyNzgoMykgIC8vIGNvbnRl eHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMl0KKysgIHN0ZmQgMywgMHgyODAoMykgIC8vIGNvbnRl eHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbM10KKysgIHN0ZmQgNCwgMHgyODgoMykgIC8vIGNvbnRl eHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbNF0KKysgIHN0ZmQgNSwgMHgyOTAoMykgIC8vIGNvbnRl eHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbNV0KKysgIHN0ZmQgNiwgMHgyOTgoMykgIC8vIGNvbnRl eHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbNl0KKysgIHN0ZmQgNywgMHgyYTAoMykgIC8vIGNvbnRl eHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbN10KKysgIHN0ZmQgOCwgMHgyYTgoMykgIC8vIGNvbnRl eHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbOF0KKysgIHN0ZmQgOSwgMHgyYjAoMykgIC8vIGNvbnRl eHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbOV0KKysgIHN0ZmQgMTAsIDB4MmI4KDMpIC8vIGNvbnRl eHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMTBdCisrICBzdGZkIDExLCAweDJjMCgzKSAvLyBjb250 ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzExXQorKyAgc3RmZCAxMiwgMHgyYzgoMykgLy8gY29u dGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sxMl0KKysgIHN0ZmQgMTMsIDB4MmQwKDMpIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMTNdCisrICBzdGZkIDE0LCAweDJkOCgzKSAvLyBj b250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzE0XQorKyAgc3RmZCAxNSwgMHgyZTAoMykgLy8g Y29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sxNV0KKysgIHN0ZmQgMTYsIDB4MmU4KDMpIC8v IGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMTZdCisrICBzdGZkIDE3LCAweDJmMCgzKSAv LyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzE3XQorKyAgc3RmZCAxOCwgMHgyZjgoMykg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sxOF0KKysgIHN0ZmQgMTksIDB4MzAwKDMp IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMTldCisrICBzdGZkIDIwLCAweDMwOCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzIwXQorKyAgc3RmZCAyMSwgMHgzMTAo MykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1syMV0KKysgIHN0ZmQgMjIsIDB4MzE4 KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMjJdCisrICBzdGZkIDIzLCAweDMy MCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzIzXQorKyAgc3RmZCAyNCwgMHgz MjgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1syNF0KKysgIHN0ZmQgMjUsIDB4 MzMwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMjVdCisrICBzdGZkIDI2LCAw eDMzOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzI2XQorKyAgc3RmZCAyNywg MHgzNDAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1syN10KKysgIHN0ZmQgMjgs IDB4MzQ4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMjhdCisrICBzdGZkIDI5 LCAweDM1MCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzI5XQorKyAgc3RmZCAz MCwgMHgzNTgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1szMF0KKysgIHN0ZmQg MzEsIDB4MzYwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMzFdCisrCisrICAv LyBGUFNDUgorKyAgbWZmcyAwCisrICBzdGZkIDAsIDB4MzY4KDMpIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LmZwX3JlZ3NbMzJdCisrCisrICAvLyBTYXZlIFZNWCBWZWN0b3IgcmVnaXN0ZXJzCisr ICAvLyBVcGRhdGUgcjQgdG8gY29udGFpbiB0aGUgYmFzZSBhZGRyZXNzIG9mIHZteF9yZXNlcnZl CisrICBhZGRpIDQsIDMsIDB4Mzc4CisrICAvLyBFbnN1cmUgdGhhdCBpdCBpcyBxdWFkd29yZCBh bGlnbmVkCisrICBhbmRpLiA1LCA0LCAweEYKKysgIGJlcSAxZiAvLyBObyBhbGlnbm1lbnQgaXMg bmVjZXNzYXJ5CisrICAvLyBBZGRyZXNzIGlzIGRvdWJsZXdvcmQgYWxpZ25lZCBhbmQgbm90IHF1 YWR3b3JkIGFsaWduZWQsIGFkZCA4CisrICBhZGRpIDQsIDQsIDgKKysKKysxOgorKyAgLy8gU3Rv cmUgVk1YIHJlZ2lzdGVycyAwLTMxCisrICAvLyByNCB3aWxsIGNvbnRhaW4gdGhlIGJhc2UgYWRk cmVzcworKyAgLy8gcjUgd2lsbCBjb250YWluIHRoZSBpbmRleAorKyAgbGkgNSwgMAorKyAgc3R2 eCAwLCA0LCA1ICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSAr IDBdCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDEsIDQsIDUgICAvLyBjb250ZXh0LT51Y19t Y29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMV0KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0 dnggMiwgNCwgNSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikg KyAyXQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCAzLCA0LCA1ICAgLy8gY29udGV4dC0+dWNf bWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDNdCisrICBhZGRpIDUsIDUsIDE2CisrICBz dHZ4IDQsIDQsIDUgICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24p ICsgNF0KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggNSwgNCwgNSAgIC8vIGNvbnRleHQtPnVj X21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyA1XQorKyAgYWRkaSA1LCA1LCAxNgorKyAg c3R2eCA2LCA0LCA1ICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWdu KSArIDZdCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDcsIDQsIDUgICAvLyBjb250ZXh0LT51 Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgN10KKysgIGFkZGkgNSwgNSwgMTYKKysg IHN0dnggOCwgNCwgNSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGln bikgKyA4XQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCA5LCA0LCA1ICAgLy8gY29udGV4dC0+ dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDldCisrICBhZGRpIDUsIDUsIDE2Cisr ICBzdHZ4IDEwLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxp Z24pICsgMTBdCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDExLCA0LCA1ICAvLyBjb250ZXh0 LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTFdCisrICBhZGRpIDUsIDUsIDE2 CisrICBzdHZ4IDEyLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVso YWxpZ24pICsgMTJdCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDEzLCA0LCA1ICAvLyBjb250 ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTNdCisrICBhZGRpIDUsIDUs IDE2CisrICBzdHZ4IDE0LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2 ZVsoYWxpZ24pICsgMTRdCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDE1LCA0LCA1ICAvLyBj b250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTVdCisrICBhZGRpIDUs IDUsIDE2CisrICBzdHZ4IDE2LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVz ZXJ2ZVsoYWxpZ24pICsgMTZdCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDE3LCA0LCA1ICAv LyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTddCisrICBhZGRp IDUsIDUsIDE2CisrICBzdHZ4IDE4LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhf cmVzZXJ2ZVsoYWxpZ24pICsgMThdCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDE5LCA0LCA1 ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTldCisrICBh ZGRpIDUsIDUsIDE2CisrICBzdHZ4IDIwLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52 bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjBdCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDIxLCA0 LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjFdCisr ICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDIyLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4 dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjJdCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDIz LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjNd CisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDI0LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29u dGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjRdCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4 IDI1LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsg MjVdCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDI2LCA0LCA1ICAvLyBjb250ZXh0LT51Y19t Y29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjZdCisrICBhZGRpIDUsIDUsIDE2CisrICBz dHZ4IDI3LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24p ICsgMjddCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDI4LCA0LCA1ICAvLyBjb250ZXh0LT51 Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjhdCisrICBhZGRpIDUsIDUsIDE2Cisr ICBzdHZ4IDI5LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxp Z24pICsgMjldCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDMwLCA0LCA1ICAvLyBjb250ZXh0 LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMzBdCisrICBhZGRpIDUsIDUsIDE2 CisrICBzdHZ4IDMxLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVso YWxpZ24pICsgMzFdCisrICBhZGRpIDUsIDUsIDE2CisrCisrICAvLyBWU0NSCisrICBtZnZzY3Ig MAorKyAgc3R2eCAwLCA0LCA1CisrICBhZGRpIDUsIDUsIDE2CisrCisrICAvLyBWUlNBVkUKKysg IG1mdnJzYXZlIDAKKysgIHN0d3ggMCwgNCwgNQorKworKyAgLy8gVXBkYXRlIGNvbnRleHQtPnVj X21jb250ZXh0LnZfcmVncyB0byBwb2ludCB0byB2bXhfcmVzZXJ2ZSArIGFsaWdubWVudC4KKysg IHN0ZCA0LCAweDM3MCgzKQorKworKyAgLy8gWmVybyBvdXQgYWxsIHVudXNlZCBmaWVsZHMKKysg IGxpIDQsIDAKKysgIHN0ZCA0LCAweGM4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnNpZ25h bAorKyAgc3RkIDQsIDB4ZDAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuaGFuZGxlcgorKyAg c3RkIDQsIDB4ZDgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQub2xkbWFzaworKworKyAgYmxy CisgI2VuZGlmICAvLyBfX2kzODZfXworLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJk X3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHRfdGVzdC5j YworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNo cGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHRfdGVzdC5jYworQEAgLTU3LDcgKzU3LDcgQEAg dm9pZCBUZXN0Q2FwdHVyZUNvbnRleHQoKSB7CisgICB1aW50cHRyX3QgcGMgPSBQcm9ncmFtQ291 bnRlckZyb21Db250ZXh0KGNvbnRleHRfMSk7CisgCisgI2lmICFkZWZpbmVkKEFERFJFU1NfU0FO SVRJWkVSKSAmJiAhZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgXAorLSAgICAhZGVm aW5lZChNRU1PUllfU0FOSVRJWkVSKQorKyAgICAhZGVmaW5lZChNRU1PUllfU0FOSVRJWkVSKSAm JiAhZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisgICAvLyBTYW5pdGl6ZXJzIGNhbiBj YXVzZSBlbm91Z2ggY29kZSBibG9hdCB0aGF0IHRoZSDigJxuZWFyYnnigJ0gY2hlY2sgd291bGQK KyAgIC8vIGxpa2VseSBmYWlsLgorICAgY29uc3QgdWludHB0cl90IGtSZWZlcmVuY2VQQyA9Cist LS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQv dXRpbC9taXNjL2NhcHR1cmVfY29udGV4dF90ZXN0X3V0aWxfbGludXguY2MKKysrKyBiL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2Mv Y2FwdHVyZV9jb250ZXh0X3Rlc3RfdXRpbF9saW51eC5jYworQEAgLTM1LDYgKzM1LDggQEAgdm9p ZCBTYW5pdHlDaGVja0NvbnRleHQoY29uc3QgTmF0aXZlQ1BVQworICAgRVhQRUNUX0VRKGNvbnRl eHQudWNfbWNvbnRleHQucmVnc1swXSwgRnJvbVBvaW50ZXJDYXN0PHVpbnRwdHJfdD4oJmNvbnRl eHQpKTsKKyAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQorICAgRVhQRUNUX0VR KGNvbnRleHQudWNfbWNvbnRleHQuZ3JlZ3NbNF0sIEZyb21Qb2ludGVyQ2FzdDx1aW50cHRyX3Q+ KCZjb250ZXh0KSk7CisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisrICBF WFBFQ1RfRVEoY29udGV4dC51Y19tY29udGV4dC5ncF9yZWdzWzNdLCBGcm9tUG9pbnRlckNhc3Q8 dWludHB0cl90PigmY29udGV4dCkpOworICNlbmRpZgorIH0KKyAKK0BAIC00OSw2ICs1MSw4IEBA IHVpbnRwdHJfdCBQcm9ncmFtQ291bnRlckZyb21Db250ZXh0KGNvbnMKKyAgIHJldHVybiBjb250 ZXh0LnVjX21jb250ZXh0LnBjOworICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkp CisgICByZXR1cm4gY29udGV4dC51Y19tY29udGV4dC5wYzsKKysjZWxpZiBkZWZpbmVkKEFSQ0hf Q1BVX1BQQzY0X0ZBTUlMWSkKKysgIHJldHVybiBjb250ZXh0LnVjX21jb250ZXh0LmdwX3JlZ3Nb UFRfTklQXTsKKyAjZW5kaWYKKyB9CisgCitAQCAtNjMsNiArNjcsOCBAQCB1aW50cHRyX3QgU3Rh Y2tQb2ludGVyRnJvbUNvbnRleHQoY29uc3QKKyAgIHJldHVybiBjb250ZXh0LnVjX21jb250ZXh0 LnNwOworICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCisgICByZXR1cm4gY29u dGV4dC51Y19tY29udGV4dC5ncmVnc1syOV07CisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2 NF9GQU1JTFkpCisrICByZXR1cm4gY29udGV4dC51Y19tY29udGV4dC5ncF9yZWdzWzFdOworICNl bmRpZgorIH0KKyAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFz aHBhZC9jcmFzaHBhZC91dGlsL3Bvc2l4L3NpZ25hbHNfdGVzdC5jYworKysrIGIvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvcG9zaXgvc2ln bmFsc190ZXN0LmNjCitAQCAtNDYsOSArNDYsOSBAQCBib29sIENhbkNhdXNlU2lnbmFsKGludCBz aWcpIHsKKyAgIHJldHVybiBzaWcgPT0gU0lHQUJSVCB8fAorICAgICAgICAgIHNpZyA9PSBTSUdB TFJNIHx8CisgICAgICAgICAgc2lnID09IFNJR0JVUyB8fAorLSNpZiAhZGVmaW5lZChBUkNIX0NQ VV9BUk02NCkKKysjaWYgIWRlZmluZWQoQVJDSF9DUFVfQVJNNjQpICYmICFkZWZpbmVkKEFSQ0hf Q1BVX1BQQzY0KQorICAgICAgICAgIHNpZyA9PSBTSUdGUEUgfHwKKy0jZW5kaWYgIC8vICFkZWZp bmVkKEFSQ0hfQ1BVX0FSTTY0KQorKyNlbmRpZiAgLy8gIWRlZmluZWQoQVJDSF9DUFVfQVJNNjQp ICYmICFkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0KQorICNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1g4Nl9G QU1JTFkpIHx8IGRlZmluZWQoQVJDSF9DUFVfQVJNRUwpCisgICAgICAgICAgc2lnID09IFNJR0lM TCB8fAorICNlbmRpZiAgLy8gZGVmaW5lZChBUkNIX0NQVV9YODZfRkFNSUxZKSB8fCBkZWZpbmVk KEFSQ0hfQ1BVX0FSTUVMKQorQEAgLTExNyw5ICsxMTcsMTEgQEAgdm9pZCBDYXVzZVNpZ25hbChp bnQgc2lnKSB7CisgICAgICAgYnJlYWs7CisgICAgIH0KKyAKKy0jaWYgIWRlZmluZWQoQVJDSF9D UFVfQVJNNjQpCisrI2lmICFkZWZpbmVkKEFSQ0hfQ1BVX0FSTTY0KSAmJiAhZGVmaW5lZChBUkNI X0NQVV9QUEM2NCkKKyAgICAgLy8gQVJNNjQgaGFzIGhhcmR3YXJlIGludGVnZXIgZGl2aXNpb24g aW5zdHJ1Y3Rpb25zIHRoYXQgZG9u4oCZdCBnZW5lcmF0ZSBhCisgICAgIC8vIHRyYXAgZm9yIGRp dmlkZS1ieS16ZXJvLCBzbyB0aGlzIGRvZXNu4oCZdCBwcm9kdWNlIFNJR0ZQRS4KKysgICAgLy8K KysgICAgLy8gUFBDNjQgZml4ZWQtcG9pbnQgZGl2aXNpb24gYnkgemVybyBhbHNvIGRvZXNuJ3Qg cHJvZHVjZSBhIFNJR0ZQRS4KKyAgICAgY2FzZSBTSUdGUEU6IHsKKyAgICAgICAvLyBPcHRpbWl6 YXRpb24gbWFrZXMgdGhpcyB0cmlja3ksIHNvIGdldCB6ZXJvIGZyb20gYSBzeXN0ZW0gY2FsbCBs aWtlbHkKKyAgICAgICAvLyB0byBzdWNjZWVkLCBhbmQgdHJ5IHRvIGRvIHNvbWV0aGluZyB3aXRo IHRoZSByZXN1bHQuCitAQCAtMTM3LDcgKzEzOSw3IEBAIHZvaWQgQ2F1c2VTaWduYWwoaW50IHNp ZykgeworICAgICAgIGZzdGF0KHF1b3RpZW50LCAmc3RhdF9idWYpOworICAgICAgIGJyZWFrOwor ICAgICB9CistI2VuZGlmICAvLyBBUkNIX0NQVV9BUk02NAorKyNlbmRpZiAgLy8gIWRlZmluZWQo QVJDSF9DUFVfQVJNNjQpICYmICFkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0KQorIAorICNpZiBkZWZp bmVkKEFSQ0hfQ1BVX1g4Nl9GQU1JTFkpIHx8IGRlZmluZWQoQVJDSF9DUFVfQVJNRUwpCisgICAg IGNhc2UgU0lHSUxMOiB7CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkv ZGF2MWQvQlVJTEQuZ24KKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9k YXYxZC9CVUlMRC5nbgorQEAgLTE5Niw2ICsxOTYsOCBAQCBzdGF0aWNfbGlicmFyeSgiZGF2MWRf OGJpdCIpIHsKKyAgICAgc291cmNlcyArPSBhcm1fdGVtcGxhdGVfc291cmNlcworICAgfSBlbHNl IGlmIChjdXJyZW50X2NwdSA9PSAiYXJtNjQiKSB7CisgICAgIHNvdXJjZXMgKz0gYXJtX3RlbXBs YXRlX3NvdXJjZXMKKysgIH0gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gInBwYzY0IikgeworKyAg ICBzb3VyY2VzICs9IHBwYzY0X3RlbXBsYXRlX3NvdXJjZXMKKyAgIH0KKyAKKyAgIGNmbGFncyA9 IGRhdjFkX2NvcHRzCitAQCAtMjI2LDYgKzIyOCw4IEBAIHN0YXRpY19saWJyYXJ5KCJkYXYxZF8x MGJpdCIpIHsKKyAgICAgc291cmNlcyArPSBhcm1fdGVtcGxhdGVfc291cmNlcworICAgfSBlbHNl IGlmIChjdXJyZW50X2NwdSA9PSAiYXJtNjQiKSB7CisgICAgIHNvdXJjZXMgKz0gYXJtX3RlbXBs YXRlX3NvdXJjZXMKKysgIH0gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gInBwYzY0IikgeworKyAg ICBzb3VyY2VzICs9IHBwYzY0X3RlbXBsYXRlX3NvdXJjZXMKKyAgIH0KKyAKKyAgIGNmbGFncyA9 IGRhdjFkX2NvcHRzCitAQCAtMjgzLDYgKzI4NywyMSBAQCBpZiAoY3VycmVudF9jcHUgPT0gIng4 NiIgfHwgY3VycmVudF9jcHUKKyAgICAgfQorIAorICAgICBjZmxhZ3MgPSBkYXYxZF9jb3B0cwor KyAgfQorK30gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gInBwYzY0IikgeworKyAgc3RhdGljX2xp YnJhcnkoImRhdjFkX3BwYyIpIHsKKysgICAgc291cmNlcyA9IFsKKysgICAgICAibGliZGF2MWQv c3JjL3BwYy9jcHUuYyIsCisrICAgICAgImxpYmRhdjFkL3NyYy9wcGMvY3B1LmgiLAorKyAgICBd CisrCisrICAgIGNvbmZpZ3MgLT0gWyAiLy9idWlsZC9jb25maWcvY29tcGlsZXI6Y2hyb21pdW1f Y29kZSIgXQorKyAgICBjb25maWdzICs9IFsKKysgICAgICAiLy9idWlsZC9jb25maWcvY29tcGls ZXI6bm9fY2hyb21pdW1fY29kZSIsCisrICAgICAgIjpkYXYxZF9jb25maWciLAorKyAgICBdCisr CisrICAgIGNmbGFncyA9IGRhdjFkX2NvcHRzCisgCisgICAgIGRlcHMgPSBbICI6ZGF2MWRfaGVh ZGVycyIgXQorICAgICBhbGxvd19jaXJjdWxhcl9pbmNsdWRlc19mcm9tID0gWyAiOmRhdjFkX2hl YWRlcnMiIF0KK0BAIC0zMTUsNSArMzM0LDcgQEAgc3RhdGljX2xpYnJhcnkoImRhdjFkIikgewor ICAgICB9CisgICB9IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09ICJhcm0iIHx8IGN1cnJlbnRfY3B1 ID09ICJhcm02NCIpIHsKKyAgICAgZGVwcyArPSBbICI6ZGF2MWRfYXJtIiBdCisrICB9IGVsc2Ug aWYgKGN1cnJlbnRfY3B1ID09ICJwcGM2NCIpIHsKKysgICAgZGVwcyArPSBbICI6ZGF2MWRfcHBj IiBdCisgICB9CisgfQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Rh djFkL2RhdjFkX2dlbmVyYXRlZC5nbmkKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGly ZF9wYXJ0eS9kYXYxZC9kYXYxZF9nZW5lcmF0ZWQuZ25pCitAQCAtMTAzLDYgKzEwMywxMSBAQCBh cm1fdGVtcGxhdGVfc291cmNlcyA9IFsKKyAgICJsaWJkYXYxZC9zcmMvYXJtL21jX2luaXRfdG1w bC5jIiwKKyBdCisgCisrcHBjNjRfdGVtcGxhdGVfc291cmNlcyA9IFsKKysgICJsaWJkYXYxZC9z cmMvcHBjL2NkZWZfaW5pdF90bXBsLmMiLAorKyAgImxpYmRhdjFkL3NyYy9wcGMvbG9vcHJlc3Rv cmF0aW9uX2luaXRfdG1wbC5jIiwKKytdCisrCisgdGVtcGxhdGVfc291cmNlcyA9IFsKKyAgICJs aWJkYXYxZC9zcmMvY2RlZl9hcHBseV90bXBsLmMiLAorICAgImxpYmRhdjFkL3NyYy9jZGVmX3Rt cGwuYyIsCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvZGF2MWQvZ2Vu ZXJhdGVfc291cmNlLnB5CisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkv ZGF2MWQvZ2VuZXJhdGVfc291cmNlLnB5CitAQCAtNTcsNiArNTcsOCBAQCBkZWYgX1dyaXRlR24o ZmQpOgorICAgX1dyaXRlQXJyYXkoZmQsICJhcm02NF9hc21fc291cmNlcyIsIF9HbG9iKCJsaWJk YXYxZC9zcmMvYXJtLzY0LyouUyIpKQorICAgX1dyaXRlQXJyYXkoZmQsICJhcm1fdGVtcGxhdGVf c291cmNlcyIsIF9HbG9iKCJsaWJkYXYxZC9zcmMvYXJtLypfdG1wbC5jIikpCisgCisrICBfV3Jp dGVBcnJheShmZCwgInBwYzY0X3RlbXBsYXRlX3NvdXJjZXMiLCBfR2xvYigibGliZGF2MWQvc3Jj L3BwYy8qX3RtcGwuYyIpKQorKworICAgdGVtcGxhdGVfc291cmNlcyA9IF9HbG9iKCJsaWJkYXYx ZC9zcmMvKl90bXBsLmMiKQorICAgX1dyaXRlQXJyYXkoZmQsICJ0ZW1wbGF0ZV9zb3VyY2VzIiwg dGVtcGxhdGVfc291cmNlcykKKyAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9w YXJ0eS9kYXYxZC9saWJkYXYxZC9zcmMvcHBjL3R5cGVzLmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS90aGlyZF9wYXJ0eS9kYXYxZC9saWJkYXYxZC9zcmMvcHBjL3R5cGVzLmgKK0BAIC01 MSw0ICs1MSwxOSBAQAorICNkZWZpbmUgdTE2bF90b19pMzIodikgKChpMzJ4NCkgdmVjX21lcmdl bCgodTE2eDgpIHYsIHZlY19zcGxhdF91MTYoMCkpKQorICNkZWZpbmUgaTE2bF90b19pMzIodikg KChpMzJ4NCkgdmVjX3VucGFja2woKGkxNng4KXYpKQorIAorKyNpZiBkZWZpbmVkKF9fY2xhbmdf XykKKysjdW5kZWYgdmVjX3NwbGF0cworKyNkZWZpbmUgdmVjX3NwbGF0cyhOKSAgICAgICAgICAg ICAgICAgICAgIFwKKysgICAgX0dlbmVyaWMoKE4pLCAgICAgICAgICAgICAgICAgICAgICAgICBc CisrICAgICAgICB1bnNpZ25lZCBjaGFyOiAgICAgICgodTh4MTYpKE4pKSwgXAorKyAgICAgICAg c2lnbmVkIGNoYXI6ICAgICAgICAoKGk4eDE2KShOKSksIFwKKysgICAgICAgIHVuc2lnbmVkIHNo b3J0OiAgICAgKCh1MTZ4OCkoTikpLCBcCisrICAgICAgICBzaWduZWQgc2hvcnQ6ICAgICAgICgo aTE2eDgpKE4pKSwgXAorKyAgICAgICAgdW5zaWduZWQgaW50OiAgICAgICAoKHUzMng0KShOKSks IFwKKysgICAgICAgIHNpZ25lZCBpbnQ6ICAgICAgICAgKChpMzJ4NCkoTikpLCBcCisrICAgICAg ICB1bnNpZ25lZCBsb25nIGxvbmc6ICgodTY0eDIpKE4pKSwgXAorKyAgICAgICAgc2lnbmVkIGxv bmcgbG9uZzogICAoKGk2NHgyKShOKSkgIFwKKysgICAgKQorKyNlbmRpZgorKworICNlbmRpZiAv KiBEQVYxRF9TUkNfUFBDX1RZUEVTX0ggKi8KKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90 aGlyZF9wYXJ0eS9laWdlbjMvQlVJTEQuZ24KKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90 aGlyZF9wYXJ0eS9laWdlbjMvQlVJTEQuZ24KK0BAIC0yMiw0ICsyMiw4IEBAIGNvbmZpZygiZWln ZW5faW5jbHVkZXMiKSB7CisgICAgICMgZm9yIHRoaXMgY29tcG9uZW50IG9uIFdpbmRvd3Mgb24g QXJtIGR1ZSB0byBjb21waWxhdGlvbiBlcnJvcnMuCisgICAgIGRlZmluZXMgKz0gWyAiRUlHRU5f RE9OVF9WRUNUT1JJWkUiIF0KKyAgIH0KKysKKysgIGlmICh0YXJnZXRfY3B1ID09ICJwcGM2NCIp IHsKKysgICAgZGVmaW5lcyArPSBbICJFSUdFTl9ET05UX1ZFQ1RPUklaRSIgXQorKyAgfQorIH0K Ky0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9saWJhb20vQlVJTEQuZ24K KysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9saWJhb20vQlVJTEQuZ24K K0BAIC0zNyw2ICszNyw4IEBAIGlmIChlbmFibGVfbGliYW9tKSB7CisgICAgIH0gZWxzZSB7Cisg ICAgICAgY3B1X2FyY2hfZnVsbCA9ICJhcm0iCisgICAgIH0KKysgIH0gZWxzZSBpZiAoY3VycmVu dF9jcHUgPT0gInBwYzY0IikgeworKyAgICBjcHVfYXJjaF9mdWxsID0gImdlbmVyaWMiCisgICB9 IGVsc2UgeworICAgICBjcHVfYXJjaF9mdWxsID0gY3VycmVudF9jcHUKKyAgIH0KKy0tLSBhL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9saWJnYXYxL29wdGlvbnMuZ25pCisrKysg Yi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvbGliZ2F2MS9vcHRpb25zLmduaQor QEAgLTEyLDUgKzEyLDUgQEAgZGVjbGFyZV9hcmdzKCkgeworICAgICAgIGlzX2Nocm9tZW9zX2Fz aCAmJiAodGFyZ2V0X2NwdSA9PSAiYXJtIiB8fCB0YXJnZXRfY3B1ID09ICJhcm02NCIpCisgICB1 c2VfbGliZ2F2MV9wYXJzZXIgPQorICAgICAgIChpc19jaHJvbWVvcyB8fCBpc19saW51eCB8fCBp c193aW4pICYmCistICAgICAgKHRhcmdldF9jcHUgPT0gIng4NiIgfHwgdGFyZ2V0X2NwdSA9PSAi eDY0IiB8fCB0YXJnZXRfY3B1ID09ICJhcm02NCIpCisrICAgICAgKHRhcmdldF9jcHUgPT0gIng4 NiIgfHwgdGFyZ2V0X2NwdSA9PSAieDY0IiB8fCB0YXJnZXRfY3B1ID09ICJhcm02NCIgfHwgdGFy Z2V0X2NwdSA9PSAicHBjNjQiKQorIH0KKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGly ZF9wYXJ0eS9sc3MvbGludXhfc3lzY2FsbF9zdXBwb3J0LmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS90aGlyZF9wYXJ0eS9sc3MvbGludXhfc3lzY2FsbF9zdXBwb3J0LmgKK0BAIC00MjYy LDcgKzQyNjIsNyBAQCBzdHJ1Y3Qga2VybmVsX3N0YXRmcyB7CisgICAgICAgTFNTX1JFRygyLCBi dWYpOworICAgICAgIExTU19CT0RZKHZvaWQqLCBtbWFwMiwgIjAiKF9fcjIpKTsKKyAgICAgfQor LSNlbHNlCisrI2VsaWYgIWRlZmluZWQoX19wb3dlcnBjNjRfXykgLyogcHBjNjQgZG9lc24ndCBo YXZlIG1tYXAyICovCisgICAgICNkZWZpbmUgX19OUl9fbW1hcDIgX19OUl9tbWFwMgorICAgICBM U1NfSU5MSU5FIF9zeXNjYWxsNih2b2lkKiwgX21tYXAyLCAgICAgICAgICAgIHZvaWQqLCBzLAor ICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QsICAgICAgICAgICAgICAgICAgIGwsIGlu dCwgICAgICAgICAgICAgICBwLAorQEAgLTQzNzMsNyArNDM3Myw3IEBAIHN0cnVjdCBrZXJuZWxf c3RhdGZzIHsKKyAgICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgZGVmaW5lZChfX0FSTV9B UkNIXzNfXykgfHwgZGVmaW5lZChfX0FSTV9FQUJJX18pIHx8ICAgICAgICAgICAgICAgICAgICAg XAorICAgICAgKGRlZmluZWQoX19taXBzX18pICYmIF9NSVBTX1NJTSA9PSBfTUlQU19TSU1fQUJJ MzIpIHx8ICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICBkZWZpbmVkKF9fUFBDX18pIHx8ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICAg ICAoZGVmaW5lZChfX1BQQ19fKSAmJiAhZGVmaW5lZChfX3Bvd2VycGM2NF9fKSkgfHwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIChk ZWZpbmVkKF9fczM5MF9fKSAmJiAhZGVmaW5lZChfX3MzOTB4X18pKQorICAgICAvKiBPbiB0aGVz ZSBhcmNoaXRlY3R1cmVzLCBpbXBsZW1lbnQgbW1hcCgpIHdpdGggbW1hcDIoKS4gKi8KKyAgICAg TFNTX0lOTElORSB2b2lkKiBMU1NfTkFNRShtbWFwKSh2b2lkICpzLCBzaXplX3QgbCwgaW50IHAs IGludCBmLCBpbnQgZCwKK0BAIC00NTU2LDkgKzQ1NTYsMTcgQEAgc3RydWN0IGtlcm5lbF9zdGF0 ZnMgeworICAgICB9CisgICAjZW5kaWYKKyAgICNpZiBkZWZpbmVkKF9fTlJfZnN0YXRhdDY0KQor KyAgICAjaWYgIWRlZmluZWQoX19HTElCQ19fKQorKyAgICAgICAgLy8gbXVzbCBkb2Vzbid0IGRl ZmluZSBmc3RhdGF0NjQgZnN0YXRhdAorKyAgICAgICAgI3VuZGVmIGZzdGF0YXQ2NAorKyAgICAj ZW5kaWYKKyAgICAgTFNTX0lOTElORSBfc3lzY2FsbDQoaW50LCAgIGZzdGF0YXQ2NCwgICAgICAg IGludCwgICBkLAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICosICAgICAg cCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGtlcm5lbF9zdGF0NjQgKiwgICBi LCAgICBpbnQsICAgZikKKysgICAgI2lmICFkZWZpbmVkKF9fR0xJQkNfXykKKysgICAgCS8vIHRo ZW4gcmVzdG9yZSBpdAorKyAgICAgICAgI2RlZmluZSBmc3RhdGF0NjQgZnN0YXRhdAorKyAgICAj ZW5kaWYKKyAgICNlbmRpZgorICAgI2lmIGRlZmluZWQoX19OUl93YWl0cGlkKQorICAgICAvLyB3 YWl0cGlkIGlzIHBvbHlmaWxsZWQgYmVsb3cgd2hlbiBub3QgYXZhaWxhYmxlLgorLS0tIGEvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3BkZml1bS90aGlyZF9wYXJ0eS9saWJwbmcx Ni9wbmdwcml2LmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9wZGZp dW0vdGhpcmRfcGFydHkvbGlicG5nMTYvcG5ncHJpdi5oCitAQCAtMTk2LDExICsxOTYsNyBAQAor ICNlbmRpZgorIAorICNpZm5kZWYgUE5HX1BPV0VSUENfVlNYX09QVAorLSMgIGlmIGRlZmluZWQo X19QUEM2NF9fKSAmJiBkZWZpbmVkKF9fQUxUSVZFQ19fKSAmJiBkZWZpbmVkKF9fVlNYX18pCist IyAgICAgZGVmaW5lIFBOR19QT1dFUlBDX1ZTWF9PUFQgMgorLSMgIGVsc2UKKy0jICAgICBkZWZp bmUgUE5HX1BPV0VSUENfVlNYX09QVCAwCistIyAgZW5kaWYKKysjICBkZWZpbmUgUE5HX1BPV0VS UENfVlNYX09QVCAwCisgI2VuZGlmCisgCisgI2lmbmRlZiBQTkdfSU5URUxfU1NFX09QVAorLS0t IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3BmZmZ0L3NyYy9wZmZmdC5jCisr KysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvcGZmZnQvc3JjL3BmZmZ0LmMK K0BAIC0xMDAsNiArMTAwLDcgQEAKKyAgICBBbHRpdmVjIHN1cHBvcnQgbWFjcm9zIAorICovCisg I2lmICFkZWZpbmVkKFBGRkZUX1NJTURfRElTQUJMRSkgJiYgKGRlZmluZWQoX19wcGNfXykgfHwg ZGVmaW5lZChfX3BwYzY0X18pKQorKyNpbmNsdWRlIDxhbHRpdmVjLmg+CisgdHlwZWRlZiB2ZWN0 b3IgZmxvYXQgdjRzZjsKKyAjICBkZWZpbmUgU0lNRF9TWiA0CisgIyAgZGVmaW5lIFZaRVJPKCkg KCh2ZWN0b3IgZmxvYXQpIHZlY19zcGxhdF91OCgwKSkKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS90aGlyZF9wYXJ0eS9za2lhL3NyYy9za3NsL1NrU0xTdHJpbmcuY3BwCisrKysgYi9zcmMv M3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvc2tpYS9zcmMvc2tzbC9Ta1NMU3RyaW5nLmNw cAorQEAgLTE0Miw3ICsxNDIsMTIgQEAgU3RyaW5nIHRvX3N0cmluZyhkb3VibGUgdmFsdWUpIHsK KyAgICAgaWYgKG5lZWRzRG90WmVybykgeworICAgICAgICAgYnVmZmVyIDw8ICIuMCI7CisgICAg IH0KKy0gICAgcmV0dXJuIFN0cmluZyhidWZmZXIuc3RyKCkuY19zdHIoKSk7CisrCisrICAgIHN0 ZDo6c3RyaW5nIHJldChidWZmZXIuc3RyKCkpOworKyAgICBpZiAoc2lnbmJpdCh2YWx1ZSkgJiYg cmV0WzBdID09ICcuJykgeworKyAgICAgICAgcmV0WzBdID0gJy0nOworKyAgICB9CisrICAgIHJl dHVybiBTdHJpbmcocmV0LmNfc3RyKCkpOworIH0KKyAKKyBib29sIHN0b2QoY29uc3Qgc2tzdGQ6 OnN0cmluZ192aWV3JiBzLCBTS1NMX0ZMT0FUKiB2YWx1ZSkgeworLS0tIGEvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3RoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvYW1hbGdhbWF0aW9uL3NxbGl0ZTMuYwor KysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvYW1hbGdh bWF0aW9uL3NxbGl0ZTMuYworQEAgLTE0NjI4LDcgKzE0NjI4LDggQEAgdHlwZWRlZiBJTlQxNl9U WVBFIExvZ0VzdDsKKyAjIGlmIGRlZmluZWQoaTM4NikgICAgICB8fCBkZWZpbmVkKF9faTM4Nl9f KSAgICAgIHx8IGRlZmluZWQoX01fSVg4NikgfHwgICAgXAorICAgICAgZGVmaW5lZChfX3g4Nl82 NCkgIHx8IGRlZmluZWQoX194ODZfNjRfXykgICAgfHwgZGVmaW5lZChfTV9YNjQpICB8fCAgICBc CisgICAgICBkZWZpbmVkKF9NX0FNRDY0KSAgfHwgZGVmaW5lZChfTV9BUk0pICAgICAgICB8fCBk ZWZpbmVkKF9feDg2KSAgIHx8ICAgIFwKKy0gICAgIGRlZmluZWQoX19BUk1FTF9fKSB8fCBkZWZp bmVkKF9fQUFSQ0g2NEVMX18pIHx8IGRlZmluZWQoX01fQVJNNjQpCisrICAgICBkZWZpbmVkKF9f QVJNRUxfXykgfHwgZGVmaW5lZChfX0FBUkNINjRFTF9fKSB8fCBkZWZpbmVkKF9NX0FSTTY0KSB8 fCAgIFwKKysgICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykgJiYgKF9fQllURV9PUkRFUl9fID09 IF9fT1JERVJfTElUVExFX0VORElBTl9fKQorICMgICBkZWZpbmUgU1FMSVRFX0JZVEVPUkRFUiAg ICAxMjM0CisgIyBlbGlmIGRlZmluZWQoc3BhcmMpICAgICB8fCBkZWZpbmVkKF9fcHBjX18pIHx8 IFwKKyAgICAgICAgZGVmaW5lZChfX0FSTUVCX18pIHx8IGRlZmluZWQoX19BQVJDSDY0RUJfXykK Ky0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL2FtYWxn YW1hdGlvbl9kZXYvc3FsaXRlMy5jCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRf cGFydHkvc3FsaXRlL3NyYy9hbWFsZ2FtYXRpb25fZGV2L3NxbGl0ZTMuYworQEAgLTE0NjQxLDcg KzE0NjQxLDggQEAgdHlwZWRlZiBJTlQxNl9UWVBFIExvZ0VzdDsKKyAjIGlmIGRlZmluZWQoaTM4 NikgICAgICB8fCBkZWZpbmVkKF9faTM4Nl9fKSAgICAgIHx8IGRlZmluZWQoX01fSVg4NikgfHwg ICAgXAorICAgICAgZGVmaW5lZChfX3g4Nl82NCkgIHx8IGRlZmluZWQoX194ODZfNjRfXykgICAg fHwgZGVmaW5lZChfTV9YNjQpICB8fCAgICBcCisgICAgICBkZWZpbmVkKF9NX0FNRDY0KSAgfHwg ZGVmaW5lZChfTV9BUk0pICAgICAgICB8fCBkZWZpbmVkKF9feDg2KSAgIHx8ICAgIFwKKy0gICAg IGRlZmluZWQoX19BUk1FTF9fKSB8fCBkZWZpbmVkKF9fQUFSQ0g2NEVMX18pIHx8IGRlZmluZWQo X01fQVJNNjQpCisrICAgICBkZWZpbmVkKF9fQVJNRUxfXykgfHwgZGVmaW5lZChfX0FBUkNINjRF TF9fKSB8fCBkZWZpbmVkKF9NX0FSTTY0KSB8fCAgIFwKKysgICAgIGRlZmluZWQoX19wb3dlcnBj NjRfXykgJiYgKF9fQllURV9PUkRFUl9fID09IF9fT1JERVJfTElUVExFX0VORElBTl9fKQorICMg ICBkZWZpbmUgU1FMSVRFX0JZVEVPUkRFUiAgICAxMjM0CisgIyBlbGlmIGRlZmluZWQoc3BhcmMp ICAgICB8fCBkZWZpbmVkKF9fcHBjX18pIHx8IFwKKyAgICAgICAgZGVmaW5lZChfX0FSTUVCX18p IHx8IGRlZmluZWQoX19BQVJDSDY0RUJfXykKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90 aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL2V4dC9ydHJlZS9ydHJlZS5jCisrKysgYi9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdGhpcmRfcGFydHkvc3FsaXRlL3NyYy9leHQvcnRyZWUvcnRyZWUuYworQEAg LTQ1MCw3ICs0NTAsNyBAQCBzdHJ1Y3QgUnRyZWVNYXRjaEFyZyB7CisgI2lmIGRlZmluZWQoaTM4 NikgICAgIHx8IGRlZmluZWQoX19pMzg2X18pICAgfHwgZGVmaW5lZChfTV9JWDg2KSB8fCAgICBc CisgICAgIGRlZmluZWQoX194ODZfNjQpIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5l ZChfTV9YNjQpICB8fCAgICBcCisgICAgIGRlZmluZWQoX01fQU1ENjQpIHx8IGRlZmluZWQoX01f QVJNKSAgICAgfHwgZGVmaW5lZChfX3g4NikgICB8fCAgICBcCistICAgIGRlZmluZWQoX19hcm1f XykKKysgICAgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pICYmIChf X0JZVEVfT1JERVJfXyA9PSBfX09SREVSX0xJVFRMRV9FTkRJQU5fXykKKyAjIGRlZmluZSBTUUxJ VEVfQllURU9SREVSICAgIDEyMzQKKyAjZWxpZiBkZWZpbmVkKHNwYXJjKSAgICB8fCBkZWZpbmVk KF9fcHBjX18pCisgIyBkZWZpbmUgU1FMSVRFX0JZVEVPUkRFUiAgICA0MzIxCistLS0gYS9zcmMv M3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvc3FsaXRlL3NyYy9zcmMvc3FsaXRlSW50LmgK KysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL3NyYy9z cWxpdGVJbnQuaAorQEAgLTg5MCw3ICs4OTAsOCBAQCB0eXBlZGVmIElOVDE2X1RZUEUgTG9nRXN0 OworICMgaWYgZGVmaW5lZChpMzg2KSAgICAgIHx8IGRlZmluZWQoX19pMzg2X18pICAgICAgfHwg ZGVmaW5lZChfTV9JWDg2KSB8fCAgICBcCisgICAgICBkZWZpbmVkKF9feDg2XzY0KSAgfHwgZGVm aW5lZChfX3g4Nl82NF9fKSAgICB8fCBkZWZpbmVkKF9NX1g2NCkgIHx8ICAgIFwKKyAgICAgIGRl ZmluZWQoX01fQU1ENjQpICB8fCBkZWZpbmVkKF9NX0FSTSkgICAgICAgIHx8IGRlZmluZWQoX194 ODYpICAgfHwgICAgXAorLSAgICAgZGVmaW5lZChfX0FSTUVMX18pIHx8IGRlZmluZWQoX19BQVJD SDY0RUxfXykgfHwgZGVmaW5lZChfTV9BUk02NCkKKysgICAgIGRlZmluZWQoX19BUk1FTF9fKSB8 fCBkZWZpbmVkKF9fQUFSQ0g2NEVMX18pIHx8IGRlZmluZWQoX01fQVJNNjQpIHx8IFwKKysgICAg IGRlZmluZWQoX19wb3dlcnBjNjRfXykgJiYgKF9fQllURV9PUkRFUl9fID09IF9fT1JERVJfTElU VExFX0VORElBTl9fKQorICMgICBkZWZpbmUgU1FMSVRFX0JZVEVPUkRFUiAgICAxMjM0CisgIyBl bGlmIGRlZmluZWQoc3BhcmMpICAgICB8fCBkZWZpbmVkKF9fcHBjX18pIHx8IFwKKyAgICAgICAg ZGVmaW5lZChfX0FSTUVCX18pIHx8IGRlZmluZWQoX19BQVJDSDY0RUJfXykKKy0tLSBhL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy9kZXNrdG9wX2NhcHR1 cmUvZGlmZmVyX2Jsb2NrLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFy dHkvd2VicnRjL21vZHVsZXMvZGVza3RvcF9jYXB0dXJlL2RpZmZlcl9ibG9jay5jYworQEAgLTMw LDExICszMCw3IEBAIGJvb2wgVmVjdG9yRGlmZmVyZW5jZShjb25zdCB1aW50OF90KiBpbWEKKyAg IHN0YXRpYyBib29sICgqZGlmZl9wcm9jKShjb25zdCB1aW50OF90KiwgY29uc3QgdWludDhfdCop ID0gbnVsbHB0cjsKKyAKKyAgIGlmICghZGlmZl9wcm9jKSB7CistI2lmIGRlZmluZWQoV0VCUlRD X0FSQ0hfQVJNX0ZBTUlMWSkgfHwgZGVmaW5lZChXRUJSVENfQVJDSF9NSVBTX0ZBTUlMWSkKKy0g ICAgLy8gRm9yIEFSTSBhbmQgTUlQUyBwcm9jZXNzb3JzLCBhbHdheXMgdXNlIEMgdmVyc2lvbi4K Ky0gICAgLy8gVE9ETyhoY2xhbSk6IEltcGxlbWVudCBhIE5FT04gdmVyc2lvbi4KKy0gICAgZGlm Zl9wcm9jID0gJlZlY3RvckRpZmZlcmVuY2VfQzsKKy0jZWxzZQorKyNpZiBkZWZpbmVkKFdFQlJU Q19BUkNIX1g4Nl9GQU1JTFkpCisgICAgIGJvb2wgaGF2ZV9zc2UyID0gR2V0Q1BVSW5mbyhrU1NF MikgIT0gMDsKKyAgICAgLy8gRm9yIHg4NiBwcm9jZXNzb3JzLCBjaGVjayBpZiBTU0UyIGlzIHN1 cHBvcnRlZC4KKyAgICAgaWYgKGhhdmVfc3NlMiAmJiBrQmxvY2tTaXplID09IDMyKSB7CitAQCAt NDQsNiArNDAsMTAgQEAgYm9vbCBWZWN0b3JEaWZmZXJlbmNlKGNvbnN0IHVpbnQ4X3QqIGltYQor ICAgICB9IGVsc2UgeworICAgICAgIGRpZmZfcHJvYyA9ICZWZWN0b3JEaWZmZXJlbmNlX0M7Cisg ICAgIH0KKysjZWxzZQorKyAgICAvLyBGb3Igb3RoZXIgcHJvY2Vzc29ycywgYWx3YXlzIHVzZSBD IHZlcnNpb24uCisrICAgIC8vIFRPRE8oaGNsYW0pOiBJbXBsZW1lbnQgYSBORU9OIHZlcnNpb24u CisrICAgIGRpZmZfcHJvYyA9ICZWZWN0b3JEaWZmZXJlbmNlX0M7CisgI2VuZGlmCisgICB9Cisg CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvQlVJTEQuZ24KKysrKyBiL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS92OC9CVUlMRC5nbgorQEAgLTEwODMsNiArMTA4MywxMiBAQCBjb25maWco InRvb2xjaGFpbiIpIHsKKyAgICAgfQorICAgICBpZiAoaG9zdF9ieXRlb3JkZXIgPT0gImxpdHRs ZSIpIHsKKyAgICAgICBkZWZpbmVzICs9IFsgIlY4X1RBUkdFVF9BUkNIX1BQQ19MRSIgXQorKyAg ICAgIGNmbGFncyArPSBbCisrICAgICAgICAjIEVuYWJsZSB1c2FnZSBvZiBBbHRpVmVjLCBWU1gs IGFuZCBvdGhlciBQT1dFUjggYW5kIGhpZ2hlciBmZWF0dXJlcworKyAgICAgICAgIi1tY3B1PXBv d2VyOCIsCisrICAgICAgICAiLW1hbHRpdmVjIiwKKysgICAgICAgICItbXZzeCIsCisrICAgICAg XQorICAgICB9IGVsc2UgaWYgKGhvc3RfYnl0ZW9yZGVyID09ICJiaWciKSB7CisgICAgICAgZGVm aW5lcyArPSBbICJWOF9UQVJHRVRfQVJDSF9QUENfQkUiIF0KKyAgICAgICBpZiAoY3VycmVudF9v cyA9PSAiYWl4IikgeworLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3VpL2dsL2ZlYXR1cmVz LmduaQorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3VpL2dsL2ZlYXR1cmVzLmduaQorQEAg LTM1LDcgKzM1LDggQEAgZGVjbGFyZV9hcmdzKCkgeworICAgICAgICAgICAgICAgICAgICAgICAg IChpc19tYWMgJiYgdXNlX2VnbCkgfHwgaXNfY2hyb21lb3NfYXNoIHx8IGlzX2Z1Y2hzaWEpICYm CisgICAgICAgICAgICAgICAgICAgICAgICAodGFyZ2V0X2NwdSA9PSAieDg2IiB8fCB0YXJnZXRf Y3B1ID09ICJ4NjQiIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2NwdSA9PSAi YXJtIiB8fCB0YXJnZXRfY3B1ID09ICJhcm02NCIgfHwKKy0gICAgICAgICAgICAgICAgICAgICAg ICB0YXJnZXRfY3B1ID09ICJtaXBzZWwiIHx8IHRhcmdldF9jcHUgPT0gIm1pcHM2NGVsIikKKysg ICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRfY3B1ID09ICJtaXBzZWwiIHx8IHRhcmdldF9j cHUgPT0gIm1pcHM2NGVsIiB8fAorKyAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9jcHUg PT0gInBwYzY0IikKKyB9CisgCisgdXNlX2dseCA9IHVzZV94MTEgfHwgb3pvbmVfcGxhdGZvcm1f eDExCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvdGVzdC9CVUlMRC5nbgorKysrIGIv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4L3Rlc3QvQlVJTEQuZ24KK0BAIC00Miw3ICs0Miw2IEBA IGdyb3VwKCJnbl9hbGwiKSB7CisgICAgICAgImJlbmNobWFya3MvY3BwOmduX2FsbCIsCisgICAg ICAgImNjdGVzdDpjY3Rlc3QiLAorICAgICAgICJjY3Rlc3Q6Z2VuZXJhdGUtYnl0ZWNvZGUtZXhw ZWN0YXRpb25zIiwKKy0gICAgICAidW5pdHRlc3RzOnVuaXR0ZXN0cyIsCisgICAgIF0KKyAgIH0K KyB9CitAQCAtODQsNyArODMsNiBAQCBncm91cCgidjhfYm90X2RlZmF1bHQiKSB7CisgICAgICJt ZXNzYWdlOnY4X21lc3NhZ2UiLAorICAgICAibWpzdW5pdDp2OF9tanN1bml0IiwKKyAgICAgIm1r Z3Jva2R1bXA6bWtncm9rZHVtcCIsCistICAgICJ1bml0dGVzdHM6dW5pdHRlc3RzIiwKKyAgICAg IndlYmtpdDp2OF93ZWJraXQiLAorICAgXQorIAorQEAgLTEwOSw3ICsxMDcsNiBAQCBncm91cCgi djhfZGVmYXVsdCIpIHsKKyAgICAgIm1lc3NhZ2U6djhfbWVzc2FnZSIsCisgICAgICJtanN1bml0 OnY4X21qc3VuaXQiLAorICAgICAibWtncm9rZHVtcDpta2dyb2tkdW1wIiwKKy0gICAgInVuaXR0 ZXN0czp1bml0dGVzdHMiLAorICAgXQorIAorICAgaWYgKHY4X2VuYWJsZV93ZWJhc3NlbWJseSkg eworLS0tIC9kZXYvbnVsbAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Rldi9udWxsCitA QCAtMCwwICsxLDM5IEBACisrLyoKKysgKiBBdXRvZ2VuZXJhdGVkIGJ5IHRoZSBNZXNvbiBidWls ZCBzeXN0ZW0uCisrICogRG8gbm90IGVkaXQsIHlvdXIgY2hhbmdlcyB3aWxsIGJlIGxvc3QuCisr ICovCisrCisrI3ByYWdtYSBvbmNlCisrCisrI2RlZmluZSBBUkNIX0FBUkNINjQgMAorKworKyNk ZWZpbmUgQVJDSF9BUk0gMAorKworKyNkZWZpbmUgQVJDSF9QUEM2NExFIDEKKysKKysjZGVmaW5l IEFSQ0hfWDg2IDAKKysKKysjZGVmaW5lIEFSQ0hfWDg2XzMyIDAKKysKKysjZGVmaW5lIEFSQ0hf WDg2XzY0IDAKKysKKysjZGVmaW5lIENPTkZJR18xNkJQQyAxCisrCisrI2RlZmluZSBDT05GSUdf OEJQQyAxCisrCisrLy8gI2RlZmluZSBDT05GSUdfTE9HIDEgLS0gTG9nZ2luZyBpcyBjb250cm9s bGVkIGJ5IENocm9taXVtCisrCisrI2RlZmluZSBFTkRJQU5ORVNTX0JJRyAwCisrCisrI2RlZmlu ZSBIQVZFX0FTTSAxCisrCisrI2RlZmluZSBIQVZFX0NMT0NLX0dFVFRJTUUgMQorKworKyNkZWZp bmUgSEFWRV9ETFNZTSAxCisrCisrI2RlZmluZSBIQVZFX0dFVEFVWFZBTCAxCisrCisrI2RlZmlu ZSBIQVZFX1BPU0lYX01FTUFMSUdOIDEKKysKKysjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQorKwor LS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Fic2VpbC1jcHAvYWJzbC9i YXNlL2ludGVybmFsL3Vuc2NhbGVkY3ljbGVjbG9jay5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hy b21pdW0vdGhpcmRfcGFydHkvYWJzZWlsLWNwcC9hYnNsL2Jhc2UvaW50ZXJuYWwvdW5zY2FsZWRj eWNsZWNsb2NrLmgKK0BAIC00Niw3ICs0Niw3IEBACisgCisgLy8gVGhlIGZvbGxvd2luZyBwbGF0 Zm9ybXMgaGF2ZSBhbiBpbXBsZW1lbnRhdGlvbiBvZiBhIGhhcmR3YXJlIGNvdW50ZXIuCisgI2lm IGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2Fh cmNoNjRfXykgfHwgXAorLSAgZGVmaW5lZChfX3Bvd2VycGNfXykgfHwgZGVmaW5lZChfX3BwY19f KSB8fCBcCisrICAoKGRlZmluZWQoX19wb3dlcnBjX18pIHx8IGRlZmluZWQoX19wcGNfXykpICYm IGRlZmluZWQoX19HTElCQ19fKSkgfHwgXAorICAgZGVmaW5lZChfTV9JWDg2KSB8fCBkZWZpbmVk KF9NX1g2NCkKKyAjZGVmaW5lIEFCU0xfSEFWRV9VTlNDQUxFRF9DWUNMRUNMT0NLX0lNUExFTUVO VEFUSU9OIDEKKyAjZWxzZQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5 L2Fic2VpbC1jcHAvYWJzbC9kZWJ1Z2dpbmcvaW50ZXJuYWwvc3RhY2t0cmFjZV9jb25maWcuaAor KysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Fic2VpbC1jcHAvYWJzbC9k ZWJ1Z2dpbmcvaW50ZXJuYWwvc3RhY2t0cmFjZV9jb25maWcuaAorQEAgLTU5LDcgKzU5LDcgQEAK KyAjZWxpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pCisgI2RlZmlu ZSBBQlNMX1NUQUNLVFJBQ0VfSU5MX0hFQURFUiBcCisgICAiYWJzbC9kZWJ1Z2dpbmcvaW50ZXJu YWwvc3RhY2t0cmFjZV94ODYtaW5sLmluYyIKKy0jZWxpZiBkZWZpbmVkKF9fcHBjX18pIHx8IGRl ZmluZWQoX19QUENfXykKKysjZWxpZiBkZWZpbmVkKF9fcHBjX18pIHx8IGRlZmluZWQoX19QUENf XykgJiYgZGVmaW5lZChfX0dMSUJDX18pCisgI2RlZmluZSBBQlNMX1NUQUNLVFJBQ0VfSU5MX0hF QURFUiBcCisgICAiYWJzbC9kZWJ1Z2dpbmcvaW50ZXJuYWwvc3RhY2t0cmFjZV9wb3dlcnBjLWlu bC5pbmMiCisgI2VsaWYgZGVmaW5lZChfX2FhcmNoNjRfXykKKy0tLSBhL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS9iYXNlL2FsbG9jYXRvci9wYXJ0aXRpb25fYWxsb2NhdG9yL3BhcnRpdGlvbl9hbGxv Y19jb25maWcuaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jhc2UvYWxsb2NhdG9yL3Bh cnRpdGlvbl9hbGxvY2F0b3IvcGFydGl0aW9uX2FsbG9jX2NvbmZpZy5oCitAQCAtMTAwLDcgKzEw MCw4IEBAIHN0YXRpY19hc3NlcnQoc2l6ZW9mKHZvaWQqKSAhPSA4LCAiIik7CisgLy8gUFVUX1JF Rl9DT1VOVF9JTl9QUkVWSU9VU19TTE9UIGRvZXMuIEluIHRoaXMgY2FzZSB0aGUgcmVmY291bnQg b3ZlcmxhcHMgd2l0aAorIC8vIHRoZSBuZXh0IHBvaW50ZXIgc2hhZG93IGZvciB0aGUgc21hbGxl c3QgYnVja2V0LgorICNpZiAhKGRlZmluZWQoT1NfTUFDKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVX0FS TTY0KSkgJiYgXAorLSAgICAhQlVJTERGTEFHKFBVVF9SRUZfQ09VTlRfSU5fUFJFVklPVVNfU0xP VCkKKysgICAgIUJVSUxERkxBRyhQVVRfUkVGX0NPVU5UX0lOX1BSRVZJT1VTX1NMT1QpICYmIFwK KysgICAgKCFkZWZpbmVkKF9fR0xJQkMpICYmICFkZWZpbmVkKF9fcG93ZXJwYzY0X18pKQorICNk ZWZpbmUgUEFfSEFTX0ZSRUVMSVNUX0hBUkRFTklORworICNlbmRpZgorIAorLS0tIGEvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL2J1aWxkL2Rvd25sb2FkX25hY2xfdG9vbGNoYWlucy5weQorKysrIGIv c3JjLzNyZHBhcnR5L2Nocm9taXVtL2J1aWxkL2Rvd25sb2FkX25hY2xfdG9vbGNoYWlucy5weQor QEAgLTEzLDYgKzEzLDggQEAgaW1wb3J0IHN5cworIAorIAorIGRlZiBNYWluKGFyZ3MpOgorKyAg aWYgJ2Rpc2FibGVfbmFjbD0xJyBpbiBvcy5lbnZpcm9uLmdldCgnR1lQX0RFRklORVMnLCAnJyk6 CisrICAgIHJldHVybiAwCisgICBzY3JpcHRfZGlyID0gb3MucGF0aC5kaXJuYW1lKG9zLnBhdGgu YWJzcGF0aChfX2ZpbGVfXykpCisgICBzcmNfZGlyID0gb3MucGF0aC5kaXJuYW1lKHNjcmlwdF9k aXIpCisgICBuYWNsX2RpciA9IG9zLnBhdGguam9pbihzcmNfZGlyLCAnbmF0aXZlX2NsaWVudCcp CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vY2hyb21lL2luc3RhbGxlci9saW51eC9CVUlM RC5nbgorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Nocm9tZS9pbnN0YWxsZXIvbGludXgv QlVJTEQuZ24KK0BAIC0xMDAsOCArMTAwLDYgQEAgcGFja2FnaW5nX2ZpbGVzID0gcGFja2FnaW5n X2ZpbGVzX2JpbmFyaQorICAgICAgICAgICAgICAgICAgICAgIiRyb290X291dF9kaXIveGRnLW1p bWUiLAorICAgICAgICAgICAgICAgICAgICAgIiRyb290X291dF9kaXIveGRnLXNldHRpbmdzIiwK KyAgICAgICAgICAgICAgICAgICAgICIkcm9vdF9vdXRfZGlyL2xvY2FsZXMvZW4tVVMucGFrIiwK Ky0gICAgICAgICAgICAgICAgICAgICIkcm9vdF9vdXRfZGlyL01FSVByZWxvYWQvbWFuaWZlc3Qu anNvbiIsCistICAgICAgICAgICAgICAgICAgICAiJHJvb3Rfb3V0X2Rpci9NRUlQcmVsb2FkL3By ZWxvYWRlZF9kYXRhLnBiIiwKKyAgICAgICAgICAgICAgICAgICBdCisgCisgYWN0aW9uX2ZvcmVh Y2goImNhbGN1bGF0ZV9kZWJfZGVwZW5kZW5jaWVzIikgeworQEAgLTMyMSw3ICszMTksNiBAQCBn cm91cCgiaW5zdGFsbGVyX2RlcHMiKSB7CisgICAgICI6dGhlbWVfZmlsZXMiLAorICAgICAiLy9j aHJvbWUiLAorICAgICAiLy9jaHJvbWU6cGFja2VkX3Jlc291cmNlcyIsCistICAgICIvL2Nocm9t ZS9icm93c2VyL3Jlc291cmNlcy9tZWRpYS9tZWlfcHJlbG9hZDpjb21wb25lbnQiLAorICAgICAi Ly9jb21wb25lbnRzL2NyYXNoL2NvcmUvYXBwOmNocm9tZV9jcmFzaHBhZF9oYW5kbGVyIiwKKyAg ICAgIi8vc2FuZGJveC9saW51eDpjaHJvbWVfc2FuZGJveCIsCisgICBdCistLS0gL2Rldi9udWxs CisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVy cy9wcGM2NF9saW51eF9zeXNjYWxscy5oCitAQCAtMCwwICsxLDEyIEBACisrLy8gQ29weXJpZ2h0 IDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisrLy8gVXNl IG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0 aGF0IGNhbiBiZQorKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisrCisrI2lmbmRlZiBT QU5EQk9YX0xJTlVYX1NZU1RFTV9IRUFERVJTX1BQQzY0X0xJTlVYX1NZU0NBTExTX0hfCisrI2Rl ZmluZSBTQU5EQk9YX0xJTlVYX1NZU1RFTV9IRUFERVJTX1BQQzY0X0xJTlVYX1NZU0NBTExTX0hf CisrCisrI2luY2x1ZGUgPGFzbS91bmlzdGQuaD4KKysKKysvL1RPRE86IGlzIGl0IG5lY2Vzc2Fy eSB0byByZWRlZmluZSBzeXNjYWxsIG51bWJlcnMgZm9yIFBQQzY0PworKworKyNlbmRpZiAgLy8g U0FOREJPWF9MSU5VWF9TWVNURU1fSEVBREVSU19QUEM2NF9MSU5VWF9TWVNDQUxMU19IXworLS0t IC9kZXYvbnVsbAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc3lz dGVtX2hlYWRlcnMvcHBjNjRfbGludXhfdWNvbnRleHQuaAorQEAgLTAsMCArMSwxMiBAQAorKy8v IENvcHlyaWdodCAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVk LgorKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxl IGxpY2Vuc2UgdGhhdCBjYW4gYmUKKysvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorKwor KyNpZm5kZWYgU0FOREJPWF9MSU5VWF9TWVNURU1fSEVBREVSU19QUEM2NF9MSU5VWF9VQ09OVEVY VF9IXworKyNkZWZpbmUgU0FOREJPWF9MSU5VWF9TWVNURU1fSEVBREVSU19QUEM2NF9MSU5VWF9V Q09OVEVYVF9IXworKworKyNpbmNsdWRlIDxzeXMvdWNvbnRleHQuaD4KKysKKysvL1RPRE86IGlz IGl0IG5lY2Vzc2FyeSB0byByZWRlZmluZSB1Y29udGV4dCBvbiBQUEM2ND8KKysKKysjZW5kaWYg IC8vIFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNfUFBDNjRfTElOVVhfVUNPTlRFWFRfSF8K Ky0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC91dGlsL25ldC9odHRwX3RyYW5zcG9ydF9saWJjdXJsLmNjCisrKysgYi9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9uZXQvaHR0cF90cmFu c3BvcnRfbGliY3VybC5jYworQEAgLTIzNiw2ICsyMzYsMTIgQEAgc3RkOjpzdHJpbmcgVXNlckFn ZW50KCkgeworICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfQklHX0VORElBTikKKyAgICAgc3RhdGlj IGNvbnN0ZXhwciBjaGFyIGFyY2hbXSA9ICJhYXJjaDY0X2JlIjsKKyAjZW5kaWYKKysjZWxpZiBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrI2lmIGRlZmluZWQoQVJDSF9DUFVfTElUVExFX0VORElB TikKKysgICAgc3RhdGljIGNvbnN0ZXhwciBjaGFyIGFyY2hbXSA9ICJwcGM2NGxlIjsKKysjZWxp ZiBkZWZpbmVkKEFSQ0hfQ1BVX0JJR19FTkRJQU4pCisrICAgIHN0YXRpYyBjb25zdGV4cHIgY2hh ciBhcmNoW10gPSAicHBjNjQiOworKyNlbmRpZgorICNlbHNlCisgI2Vycm9yIFBvcnQKKyAjZW5k aWYKKy0tLSAvZGV2L251bGwKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0 eS9kYXYxZC9jb25maWcvbGludXgvcHBjNjQvY29uZmlnLmgKK0BAIC0wLDAgKzEsMzkgQEAKKysv KgorKyAqIEF1dG9nZW5lcmF0ZWQgYnkgdGhlIE1lc29uIGJ1aWxkIHN5c3RlbS4KKysgKiBEbyBu b3QgZWRpdCwgeW91ciBjaGFuZ2VzIHdpbGwgYmUgbG9zdC4KKysgKi8KKysKKysjcHJhZ21hIG9u Y2UKKysKKysjZGVmaW5lIEFSQ0hfQUFSQ0g2NCAwCisrCisrI2RlZmluZSBBUkNIX0FSTSAwCisr CisrI2RlZmluZSBBUkNIX1BQQzY0TEUgMQorKworKyNkZWZpbmUgQVJDSF9YODYgMAorKworKyNk ZWZpbmUgQVJDSF9YODZfMzIgMAorKworKyNkZWZpbmUgQVJDSF9YODZfNjQgMAorKworKyNkZWZp bmUgQ09ORklHXzE2QlBDIDEKKysKKysjZGVmaW5lIENPTkZJR184QlBDIDEKKysKKysvLyAjZGVm aW5lIENPTkZJR19MT0cgMSAtLSBMb2dnaW5nIGlzIGNvbnRyb2xsZWQgYnkgQ2hyb21pdW0KKysK KysjZGVmaW5lIEVORElBTk5FU1NfQklHIDAKKysKKysjZGVmaW5lIEhBVkVfQVNNIDEKKysKKysj ZGVmaW5lIEhBVkVfQ0xPQ0tfR0VUVElNRSAxCisrCisrI2RlZmluZSBIQVZFX0RMU1lNIDEKKysK KysjZGVmaW5lIEhBVkVfR0VUQVVYVkFMIDEKKysKKysjZGVmaW5lIEhBVkVfUE9TSVhfTUVNQUxJ R04gMQorKworKyNkZWZpbmUgSEFWRV9VTklTVERfSCAxCisrCmRpZmYgLS1naXQgYS9zcmNwa2dz L3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wOTAzLXh4eC1wcGM2NGxlLXN3aWZ0c2hhZGVyLnBhdGNo IGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDkwMy14eHgtcHBjNjRsZS1zd2lmdHNo YWRlci5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjFhOGNk ODM2OGRhMQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVz LzA5MDMteHh4LXBwYzY0bGUtc3dpZnRzaGFkZXIucGF0Y2gKQEAgLTAsMCArMSwxOCBAQAorLS0t IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3RoaXJkX3Bh cnR5L2xsdm0tMTAuMC9CVUlMRC5nbgorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJk X3BhcnR5L3N3aWZ0c2hhZGVyL3RoaXJkX3BhcnR5L2xsdm0tMTAuMC9CVUlMRC5nbgorQEAgLTU3 Niw2ICs1NzYsNyBAQCBzd2lmdHNoYWRlcl9sbHZtX3NvdXJjZV9zZXQoInN3aWZ0c2hhZGVyCisg ICAgICJsbHZtL2xpYi9NQy9NQ0FzbUluZm9DT0ZGLmNwcCIsCisgICAgICJsbHZtL2xpYi9NQy9N Q0FzbUluZm9EYXJ3aW4uY3BwIiwKKyAgICAgImxsdm0vbGliL01DL01DQXNtSW5mb0VMRi5jcHAi LAorKyAgICAibGx2bS9saWIvTUMvTUNBc21JbmZvWENPRkYuY3BwIiwKKyAgICAgImxsdm0vbGli L01DL01DQXNtTWFjcm8uY3BwIiwKKyAgICAgImxsdm0vbGliL01DL01DQXNtU3RyZWFtZXIuY3Bw IiwKKyAgICAgImxsdm0vbGliL01DL01DQXNzZW1ibGVyLmNwcCIsCitAQCAtNjMxLDYgKzYzMiw3 IEBAIHN3aWZ0c2hhZGVyX2xsdm1fc291cmNlX3NldCgic3dpZnRzaGFkZXIKKyAgICAgImxsdm0v bGliL01DL01DV2luQ09GRlN0cmVhbWVyLmNwcCIsCisgICAgICJsbHZtL2xpYi9NQy9NQ1dpbkVI LmNwcCIsCisgICAgICJsbHZtL2xpYi9NQy9NQ1hDT0ZGU3RyZWFtZXIuY3BwIiwKKysgICAgImxs dm0vbGliL01DL01DWENPRkZPYmplY3RUYXJnZXRXcml0ZXIuY3BwIiwKKyAgICAgImxsdm0vbGli L01DL01hY2hPYmplY3RXcml0ZXIuY3BwIiwKKyAgICAgImxsdm0vbGliL01DL1N0cmluZ1RhYmxl QnVpbGRlci5jcHAiLAorICAgICAibGx2bS9saWIvTUMvU3VidGFyZ2V0RmVhdHVyZS5jcHAiLApk aWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3RlbXBsYXRlIGIvc3JjcGtncy9xdDYt d2ViZW5naW5lL3RlbXBsYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MC4uMmYwZGUyYzdhZGY2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5l L3RlbXBsYXRlCkBAIC0wLDAgKzEsMTc4IEBACisjIFRlbXBsYXRlIGZpbGUgZm9yICdxdDYtd2Vi ZW5naW5lJworcGtnbmFtZT1xdDYtd2ViZW5naW5lCit2ZXJzaW9uPTYuMy4xCityZXZpc2lvbj0x Cit3cmtzcmM9InF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0iCitidWlsZF9z dHlsZT1jbWFrZQorY29uZmlndXJlX2FyZ3M9Ii1EUVRfQlVJTERfVE9PTFNfV0hFTl9DUk9TU0NP TVBJTElORz10cnVlCisgLURRVF9GRUFUVVJFX3dlYmVuZ2luZV9zeXN0ZW1fZmZtcGVnPU9OCisg LURRVF9GRUFUVVJFX3dlYmVuZ2luZV9zeXN0ZW1fbGliZXZlbnQ9T04KKyAtRFFUX0ZFQVRVUkVf d2ViZW5naW5lX3N5c3RlbV9nbj1PTgorIC1EUVRfRkVBVFVSRV93ZWJlbmdpbmVfc3lzdGVtX2lj dT1PTgorIC1EUVRfRkVBVFVSRV93ZWJlbmdpbmVfd2VicnRjX3BpcGV3aXJlPU9OCisgLUROaW5q YV9FWEVDVVRBQkxFPSRYQlBTX1dSQVBQRVJESVIvbmluamEKKyAkKHZvcHRfYm9vbCBleGFtcGxl cyBRVF9CVUlMRF9FWEFNUExFUykKKyAtRFBLR19DT05GSUdfSE9TVF9FWEVDVVRBQkxFPSR7UEtH X0NPTkZJR19GT1JfQlVJTER9IgoraG9zdG1ha2VkZXBlbmRzPSJxdDYtYmFzZS1kZXZlbCBwZXJs IHBrZy1jb25maWcgbm9kZWpzIHB5dGhvbjMtaHRtbDVsaWIKKyBxdDYtZGVjbGFyYXRpdmUtZGV2 ZWwgcHJvdG9idWYgZ3BlcmYgZmxleCBuc3MtZGV2ZWwgbGlid2VicC1kZXZlbAorIGljdS1kZXZl bCBsaWJldmVudC1kZXZlbCIKK21ha2VkZXBlbmRzPSJxdDYtYmFzZS1kZXZlbCBxdDYtZGVjbGFy YXRpdmUtZGV2ZWwgcHVsc2VhdWRpby1kZXZlbAorIHF0Ni10b29scy1kZXZlbCBxdDYtd2Vic29j a2V0cy1kZXZlbCBsaWJmbGFjLWRldmVsCisgYWxzYS1saWItZGV2ZWwgbGlidnB4LWRldmVsIHBj aXV0aWxzLWRldmVsIG9wdXMtZGV2ZWwgbGlieHNsdC1kZXZlbAorIGxpYnhtbDItZGV2ZWwgZnJl ZXR5cGUtZGV2ZWwgbGNtczItZGV2ZWwgbGlid2VicC1kZXZlbCBpY3UtZGV2ZWwKKyByZTItZGV2 ZWwgemxpYi1kZXZlbCBsaWJwbmctZGV2ZWwgbWluaXppcC1kZXZlbCBoYXJmYnV6ei1kZXZlbAor IG5zcy1kZXZlbCBsaWJYY3Vyc29yLWRldmVsIGxpYlhjb21wb3NpdGUtZGV2ZWwgbGliWFNjcm5T YXZlci1kZXZlbAorIHByb3RvYnVmLWRldmVsIGZmbXBlZy1kZXZlbCBzbmFwcHktZGV2ZWwgbGli ZXZlbnQtZGV2ZWwgcGlwZXdpcmUtZGV2ZWwKKyBsaWJ4a2JmaWxlLWRldmVsIHF0Ni1sb2NhdGlv bi1kZXZlbCBxdDYtd2ViY2hhbm5lbC1kZXZlbCBsaWJ4c2htZmVuY2UtZGV2ZWwiCisjIE5vdCB3 b3JraW5nIHByb3Blcmx5IHdpdGggSFRUUFMgd2l0aG91dCB0aG9zZSBwYWNrYWdlcworIyBOb3Qg c3RyaWN0IGRlcGVuZGVuY2llcywgdGhvdWdoCitkZXBlbmRzPSJxdDYtcGx1Z2luLXRscy1vcGVu c3NsIHF0Ni1wbHVnaW4tdGxzLXFjZXJ0b25seSIKK3Nob3J0X2Rlc2M9IkNyb3NzLXBsYXRmb3Jt IGFwcGxpY2F0aW9uIGFuZCBVSSBmcmFtZXdvcmsgLSBXZWJlbmdpbmUiCittYWludGFpbmVyPSJK b2huIDxtZUBqb2hubnluYXRvci5kZXY+IgorbGljZW5zZT0iR1BMLTMuMC1vbmx5LCBHUEwtMi4w LW9ubHksIExHUEwtMy4wLW9ubHkgQlNELTMtQ2xhdXNlIgoraG9tZXBhZ2U9Imh0dHBzOi8vd3d3 LnF0LmlvIgorZGlzdGZpbGVzPSJodHRwczovL2Rvd25sb2FkLnF0LmlvL29mZmljaWFsX3JlbGVh c2VzL3F0LyR7dmVyc2lvbiUuKn0vJHt2ZXJzaW9ufS9zdWJtb2R1bGVzL3F0d2ViZW5naW5lLWV2 ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0udGFyLnh6IgorY2hlY2tzdW09YWQ3YTMzYjIxYTk1NmRl ZGEzN2M1ODdkNTBmODIxY2EzODE2NDAzYWUzMWJhOWI1ZDU5ZDAxNTYxYWQ2NmU0NworCitpZiBb IC16ICIkQ1JPU1NfQlVJTEQiIF07dGhlbgorCWNvbmZpZ3VyZV9hcmdzKz0iIC1EQ01BS0VfVE9P TENIQUlOX0ZJTEU9L3Vzci9saWIvY21ha2UvUXQ2L3F0LnRvb2xjaGFpbi5jbWFrZSIKK2ZpCisK K2lmIFsgIiRYQlBTX0xJQkMiID0gIm11c2wiIF07IHRoZW4KKwlob3N0bWFrZWRlcGVuZHMrPSIg bXVzbC1sZWdhY3ktY29tcGF0IgorZmkKKworaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMiID0gIm11 c2wiIF07IHRoZW4KKwltYWtlZGVwZW5kcys9IiBtdXNsLWxlZ2FjeS1jb21wYXQiCitmaQorCitp ZiBbICEgIiRYQlBTX1dPUkRTSVpFIiA9ICIkWEJQU19UQVJHRVRfV09SRFNJWkUiIF07IHRoZW4K Kwlicm9rZW49IndlYmVuZ2luZSBjYW4gYmUgYnVpbHQgb25seSBpZiB3b3JkIHNpemUgbWF0Y2hl cyIKK2ZpCisKK2lmIFsgIiRYQlBTX1dPUkRTSVpFIiAtZXEgMzIgXTsgdGhlbgorCW5vZGVidWc9 eWVzCisJTERGTEFHUz0iLVdsLC0tbm8ta2VlcC1tZW1vcnkiCitmaQorCitpZiBbICIkWEJQU19U QVJHRVRfRU5ESUFOIiAhPSAibGUiIF07IHRoZW4KKwlicm9rZW49IndlYmVuZ2luZSBvbmx5IHN1 cHBvcnRzIGxpdHRsZSBlbmRpYW4iCitmaQorCitidWlsZF9vcHRpb25zPSJzbmRpbyBleGFtcGxl cyIKK2J1aWxkX29wdGlvbnNfZGVmYXVsdD0iIgorZGVzY19vcHRpb25fZXhhbXBsZXM9IkJ1aWxk IGV4YW1wbGVzIgorZGVzY19vcHRpb25fc25kaW89IkVuYWJsZSBzdXBwb3J0IGZvciBzbmRpbyIK Kworc3VicGFja2FnZXM9InF0Ni13ZWJlbmdpbmUtZGV2ZWwiCisKK2lmIFsgIiRidWlsZF9vcHRp b25fZXhhbXBsZXMiIF07IHRoZW4KKwlzdWJwYWNrYWdlcys9IiBxdDYtd2ViZW5naW5lLWV4YW1w bGVzIgorZmkKKworX2Jvb3RzdHJhcF9nbigpIHsKKwkjIEJvb3RzdHJhcCBnbiAoZ2VuZXJhdGUg bmluamEpCisJZWNobyAiQm9vdHN0cmFwcGluZyAnZ24nIgorCWNkICR7d3Jrc3JjfS9zcmMvM3Jk cGFydHkvZ24KKwlDRkxBR1M9IiRDRkxBR1NfaG9zdCIgQ1hYRkxBR1M9IiRDWFhGTEFHU19ob3N0 IiBMREZMQUdTPSIkTERGTEFHU19ob3N0IiBcCisJUEtHQ09ORklHPS91c3IvYmluL3BrZ2NvbmZp ZyBQS0dfQ09ORklHX1BBVEg9Ii91c3IvbGliL3BrZ2NvbmZpZzovdXNyL3NoYXJlL3BrZ2NvbmZp ZyIgXAorCQlweXRob24zIGJ1aWxkL2dlbi5weSAtLW5vLWxhc3QtY29tbWl0LXBvc2l0aW9uIC0t b3V0LXBhdGggXAorCQkJJHt3cmtzcmN9L3NyYy8zcmRwYXJ0eS9nbi9vdXQvUmVsZWFzZSAtLWNj ICIke0NDX2hvc3Q6LSRDQ30iIFwKKwkJCS0tY3h4ICIke0NYWF9ob3N0Oi0kQ1hYfSIgLS1sZCAi JHtDWFhfaG9zdDotJENYWH0iIC0tYXIgIiR7QVJfaG9zdDotJEFSfSIgXAorCQkJLS1xdC12ZXJz aW9uICIke3ZlcnNpb259LnF0d2ViZW5naW5lLnF0LmlvIgorCW5pbmphIC1DIG91dC9SZWxlYXNl IGduCisJY2QgJHt3cmtzcmN9Cit9CisKK191bmJ1bmRsZV9saWJzKCkgeworCWNkICR7d3Jrc3Jj fS9zcmMvM3JkcGFydHkvY2hyb21pdW0KKwllY2hvIERyb3BwaW5nIGJ1bmRsZWQgbGlicyBmcm9t IGNocm9taXVtCisJIyBVc2Ugc3lzdGVtLXByb3ZpZGVkIGxpYnJhcmllcy4KKwkjIFRPRE86IHVz ZV9zeXN0ZW1faHVuc3BlbGwgKHVwc3RyZWFtIGNoYW5nZXMgbmVlZGVkKS4KKwkjIFRPRE86IHVz ZV9zeXN0ZW1fbGlic3J0cC4KKwkjIFRPRE86IHVzZV9zeXN0ZW1fbGlidXNiIChodHRwOi8vY3Ji dWcuY29tLzI2NjE0OSkuCisJIyBUT0RPOiB1c2Vfc3lzdGVtX3NzbCAoaHR0cDovL2NyYnVnLmNv bS81ODA4NykuCisJIyBUT0RPOiB1c2Vfc3lzdGVtX3NxbGl0ZSAoaHR0cDovL2NyYnVnLmNvbS8y MjIwOCkuCisJIyBUT0RPOiB1c2Vfc3lzdGVtX2ljdSAoc2VnZmF1bHRzKQorCSMgdXNlX3N5c3Rl bV9wcm90b2J1ZgorCSMgdXNlX3N5c3RlbV92OD0xCisJIyB1c2Vfc3lzdGVtX3psaWI9MQorCSMg YnppcDIganNvbmNwcCBtaW5pemlwIHhkZ191dGlscyBzcGVleAorCXN5c3RlbT0iCisJCWZmbXBl ZworCQlmbGFjCisJCWZvbnRjb25maWcKKwkJZnJlZXR5cGUKKwkJaGFyZmJ1enotbmcKKwkJaWN1 CisJCWxpYmRybQorCQlsaWJldmVudAorCQlsaWJqcGVnCisJCWxpYnBuZworCQlsaWJ3ZWJwCisJ CWxpYnhtbAorCQlsaWJ4c2x0CisJCW9wdXMKKwkJcmUyCisJCXNuYXBweQorCSIKKwlidWlsZC9s aW51eC91bmJ1bmRsZS9yZXBsYWNlX2duX2ZpbGVzLnB5IC0tc3lzdGVtLWxpYnJhcmllcyAke3N5 c3RlbX0KK30KKworIyBQcm92aWRlIGEgd3JhcHBlciB0byBydW4gLi94YnBzLXNyYyAtaiAxIGJ1 aWxkIGxhdGVyCitfd3JhcF9uaW5qYSgpIHsKKwljYXQgPDwtJ19FT0YnID4iJFhCUFNfV1JBUFBF UkRJUiIvbmluamEKKwkjIS9iaW4vc2gKKworCWV4ZWMgL3Vzci9iaW4vbmluamEgJE5JTkpBRkxB R1MgIiRAIgorCV9FT0YKKwljaG1vZCAreCAiJFhCUFNfV1JBUFBFUkRJUiIvbmluamEKK30KKwor cHJlX2NvbmZpZ3VyZSgpIHsKKwlfYm9vdHN0cmFwX2duCisJIyBfdW5idW5kbGVfbGlicworCV93 cmFwX25pbmphCisJZXhwb3J0IFBBVEg9IiRQQVRIOiR7d3Jrc3JjfS9zcmMvM3JkcGFydHkvZ24v b3V0L1JlbGVhc2UiCit9CisKK3ByZV9idWlsZCgpIHsKKwlleHBvcnQgUEFUSD0iJFBBVEg6JHt3 cmtzcmN9L3NyYy8zcmRwYXJ0eS9nbi9vdXQvUmVsZWFzZSIKKwlleHBvcnQgTklOSkFGTEFHUz0i JG1ha2Vqb2JzIgorCit9CisKK3ByZV9pbnN0YWxsKCkgeworCWV4cG9ydCBQQVRIPSIkUEFUSDok e3dya3NyY30vc3JjLzNyZHBhcnR5L2duL291dC9SZWxlYXNlIgorfQorCitwb3N0X2luc3RhbGwo KSB7CisJbG9jYWwgX2ZpbGUKKwlmaW5kICIke0RFU1RESVJ9Ii91c3IvbGliL3F0Ni9leGFtcGxl cyBcCisJCS1wYXRoICcqL2xpYi9xdDYvKiovbGliL3F0Ni8qJyAtdHlwZSBmIHwKKwl3aGlsZSBy ZWFkIF9maWxlOyBkbworCQltdiAiJF9maWxlIiAiJHtfZmlsZSUvbGliL3F0Ni8qfSIKKwlkb25l Cit9CisKK3F0Ni13ZWJlbmdpbmUtZGV2ZWxfcGFja2FnZSgpIHsKKwlkZXBlbmRzPSIke3NvdXJj ZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0gcXQ2LXdlYmNoYW5uZWwtZGV2ZWw+PSR7dmVy c2lvbn1fMQorCSBxdDYtZGVjbGFyYXRpdmUtZGV2ZWw+PSR7dmVyc2lvbn1fMSBxdDYtbG9jYXRp b24tZGV2ZWw+PSR7dmVyc2lvbn1fMSIKKwlzaG9ydF9kZXNjKz0iIC0gZGV2ZWxvcG1lbnQgZmls ZXMiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlIHVzci9pbmNsdWRlCisJCXZtb3ZlIHVzci9s aWIvY21ha2UKKwkJdm1vdmUgdXNyL2xpYi9wa2djb25maWcKKwkJdm1vdmUgdXNyL2xpYi9xdDYv bWtzcGVjcworCQl2bW92ZSAidXNyL2xpYi8qLnNvIgorCQl2bW92ZSAidXNyL2xpYi8qLnBybCIK KwkJdm1vdmUgdXNyL3NoYXJlL3F0Ni9tb2R1bGVzCisJfQorfQorCitxdDYtd2ViZW5naW5lLWV4 YW1wbGVzX3BhY2thZ2UoKSB7CisJc2hvcnRfZGVzYys9IiAtIHNhbXBsZSBicm93c2VycyIKKwlw a2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2xpYi9xdDYvZXhhbXBsZXMKKwl9Cit9CmRpZmYg LS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvdXBkYXRlIGIvc3JjcGtncy9xdDYtd2ViZW5n aW5lL3VwZGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjg0NDU1 MjQ2NTIyMgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS91cGRhdGUK QEAgLTAsMCArMSBAQAorcGtnbmFtZT0iJHtwa2duYW1lLzYtL30tZXZlcnl3aGVyZS1zcmMiCgpG cm9tIDU5NGQxNjg2ZjBiYTZhMWU3M2M1ZWM2NTUzM2RkYjdiZTAzNWQ2ODEgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT89QzQ9OTBvPUMzPUEwbj0yMFRyPUUxPUJBPUE3 bj0yMEM9QzM9QjRuZz0yMERhbmg/PQogPGNvbmdkYW5ocXhAZ21haWwuY29tPgpEYXRlOiBUdWUs IDkgQXVnIDIwMjIgMTk6NTY6MjggKzA3MDAKU3ViamVjdDogW1BBVENIIDI2LzI3XSBidWlsZC1z dHlsZS9jbWFrZTogc2V0IGNvbW1vbiBRdCBvcHRpb25zCgotLS0KIGNvbW1vbi9idWlsZC1zdHls ZS9jbWFrZS5zaCB8IDQgKysrKwogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKQoKZGlm ZiAtLWdpdCBhL2NvbW1vbi9idWlsZC1zdHlsZS9jbWFrZS5zaCBiL2NvbW1vbi9idWlsZC1zdHls ZS9jbWFrZS5zaAppbmRleCA3MTFmY2VhNjI3M2QuLmUxZWZkOWNjNjU4NiAxMDA2NDQKLS0tIGEv Y29tbW9uL2J1aWxkLXN0eWxlL2NtYWtlLnNoCisrKyBiL2NvbW1vbi9idWlsZC1zdHlsZS9jbWFr ZS5zaApAQCAtNTQsNiArNTQsMTAgQEAgX0VPRgogCWNtYWtlX2FyZ3MrPSIgLURDTUFLRV9JTlNU QUxMX1BSRUZJWD0vdXNyIgogCWNtYWtlX2FyZ3MrPSIgLURDTUFLRV9CVUlMRF9UWVBFPU5vbmUi CiAJY21ha2VfYXJncys9IiAtRENNQUtFX0lOU1RBTExfTElCRElSPWxpYiR7WEJQU19UQVJHRVRf V09SRFNJWkV9IgorCWNtYWtlX2FyZ3MrPSIgLURRVF9IT1NUX1BBVEg9L3VzciIKKwkjIFFUX0hP U1RfUEFUSCBpc24ndCBlbm91Z2ggaW4gbXkgc3lzdGVtLAorCSMgd2hpY2ggaGF2ZSBiaW5mbXRz IHN1cHBvcnQgb24gYW5kIG9mZgorCWNtYWtlX2FyZ3MrPSIgLURRVF9IT1NUX1BBVEhfQ01BS0Vf RElSPS91c3IvbGliL2NtYWtlIgogCiAJaWYgW1sgJGJ1aWxkX2hlbHBlciA9ICoicWVtdSIqIF1d OyB0aGVuCiAJCWVjaG8gIlNFVChDTUFLRV9DUk9TU0NPTVBJTElOR19FTVVMQVRPUiAvdXNyL2Jp bi9xZW11LSR7WEJQU19UQVJHRVRfUUVNVV9NQUNISU5FfS1zdGF0aWMpIiBcCgpGcm9tIGZkNjBm ZjBhOTE0OGI3ZTY5NjFhMDk1YWYyNDg3MTI3ZWQ5OTM0M2EgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206ID0/VVRGLTg/cT89QzQ9OTBvPUMzPUEwbj0yMFRyPUUxPUJBPUE3bj0yMEM9QzM9 QjRuZz0yMERhbmg/PQogPGNvbmdkYW5ocXhAZ21haWwuY29tPgpEYXRlOiBUdWUsIDkgQXVnIDIw MjIgMjA6MTY6NDcgKzA3MDAKU3ViamVjdDogW1BBVENIIDI3LzI3XSBxdDYtM2Q6IHVwZGF0ZSB0 byA2LjMuMS4KCi0tLQogc3JjcGtncy9xdDYtM2QvdGVtcGxhdGUgfCA1ICsrLS0tCiAxIGZpbGUg Y2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvcXQ2LTNkL3RlbXBsYXRlIGIvc3JjcGtncy9xdDYtM2QvdGVtcGxhdGUKaW5kZXggNjY2 ZjU3NTU5NTMyLi5jMDhjM2JkNGE0MWIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcXQ2LTNkL3RlbXBs YXRlCisrKyBiL3NyY3BrZ3MvcXQ2LTNkL3RlbXBsYXRlCkBAIC0xLDEwICsxLDkgQEAKICMgVGVt cGxhdGUgZmlsZSBmb3IgJ3F0Ni0zZCcKIHBrZ25hbWU9cXQ2LTNkCi12ZXJzaW9uPTYuMy4wCit2 ZXJzaW9uPTYuMy4xCiByZXZpc2lvbj0xCiB3cmtzcmM9InF0M2QtZXZlcnl3aGVyZS1zcmMtJHt2 ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPWNtYWtlCi1jb25maWd1cmVfYXJncz0iLURRVF9IT1NUX1BB VEg9L3VzciIKIGhvc3RtYWtlZGVwZW5kcz0icGVybCBxdDYtZGVjbGFyYXRpdmUtZGV2ZWwiCiBt YWtlZGVwZW5kcz0icXQ2LWRlY2xhcmF0aXZlLWRldmVsIHF0Ni1zaGFkZXJ0b29scy1kZXZlbCBs aWJhc3NpbXAtZGV2ZWwKICBsaWJhdG9taWMtZGV2ZWwiCkBAIC0xMyw3ICsxMiw3IEBAIG1haW50 YWluZXI9IkpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4iCiBsaWNlbnNlPSIoTEdQTC0zLjAtb25s eSBPUiBHUEwtMi4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5KSBBTkQgR1BMLTMuMC1vbmx5IHdpdGgg UXQtR1BMLWV4Y2VwdGlvbi0xLjAiCiBob21lcGFnZT0iaHR0cHM6Ly9xdC5pby8iCiBkaXN0Zmls ZXM9Imh0dHA6Ly9kb3dubG9hZC5xdC5pby9vZmZpY2lhbF9yZWxlYXNlcy9xdC8ke3ZlcnNpb24l Lip9LyR7dmVyc2lvbn0vc3VibW9kdWxlcy9xdDNkLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0u dGFyLnh6IgotY2hlY2tzdW09NzRlNzYyMzgwZGFkMzQ4ODc4NzhiOTEyNGRiZmI5ODFkNWNmNGI4 YjgwNzI4MWZmOGJmZjMxMTE0NWI1NGRlMQorY2hlY2tzdW09OTkxOWI2NmRmYjI1M2ZhMjZkYjFh N2Q2NjQzNThjYmMwN2Y0NmM4ODEwMDgyZWUzMTIwZDBhNTRiMTUzZWRmZQogCiBxdDYtM2QtZGV2 ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSIke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZp c2lvbn0iCg== --===============2447921660362331036==--