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 1768 invoked from network); 15 Aug 2022 13:51:48 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 15 Aug 2022 13:51:48 -0000 Content-Type: multipart/mixed; boundary="===============1738762667297355413==" 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: Mon, 15 Aug 2022 15:51:48 +0200 List-Id: Message-ID: <20220815135148.kqGSVQUO-tKeFcgyjwJ79hZ1K92hq0EZIv5Wcjxtdqs@z> GitHub notification mails are now in MIME to allow UTF8. --===============1738762667297355413== 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 --===============1738762667297355413== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-qt6-webengine-38509.patch" RnJvbSA2MGU5YjFhM2QwY2FlZTVkNTM5MjJjMGQzZTk5NTRiOTEyZDg0NGZkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1B N249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogTW9u LCA4IEF1ZyAyMDIyIDE3OjEzOjA3ICswNzAwClN1YmplY3Q6IFtQQVRDSCAwMS8yNl0gcXQ2LWJh c2U6IHVwZGF0ZSB0byA2LjMuMS4KCi0tLQogc3JjcGtncy9xdDYtYmFzZS9wYXRjaGVzL2FybS15 aWVsZC5wYXRjaCAgICAgIHwgMzcgKysrKysrKysrKysrKysKIHNyY3BrZ3MvcXQ2LWJhc2UvcGF0 Y2hlcy9jb21wbGV4LXRleHQucGF0Y2ggICB8ICAwCiBzcmNwa2dzL3F0Ni1iYXNlL3BhdGNoZXMv ZmVlbmFibGVleGNlcHQucGF0Y2ggfCAxMyArKysrKwogc3JjcGtncy9xdDYtYmFzZS9wYXRjaGVz L2xpYmF0b21pYy5wYXRjaCAgICAgIHwgMTQgLS0tLS0tCiBzcmNwa2dzL3F0Ni1iYXNlL3BhdGNo ZXMvbWFya2Rvd24tbXVzbC5wYXRjaCAgfCAzMSArKysrKysrKysrKysKIHNyY3BrZ3MvcXQ2LWJh c2UvcGF0Y2hlcy9wdGhyZWFkX3lpZWxkLnBhdGNoICB8IDIwICsrKysrKysrCiAuLi51cmNlLXJv b3QtZGlyLWxhc3QtbW9kaWZpZWQtaXMtdmFsaWQucGF0Y2ggfCAxMyArKysrKwogLi4uL3F0Ni1i YXNlL3BhdGNoZXMveDg2LXFyb3VuZC1wYXNzZWQucGF0Y2ggIHwgNDggKysrKysrKysrKysrKysr KysrKwogc3JjcGtncy9xdDYtYmFzZS9wYXRjaGVzL3pmcy1zdG9yYWdlLnBhdGNoICAgIHwgMjAg KysrKysrKysKIHNyY3BrZ3MvcXQ2LWJhc2UvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICB8 IDI0ICsrKysrKystLS0KIDEwIGZpbGVzIGNoYW5nZWQsIDIwMCBpbnNlcnRpb25zKCspLCAyMCBk ZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni1iYXNlL3BhdGNoZXMv YXJtLXlpZWxkLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtYmFzZS9wYXRj aGVzL2NvbXBsZXgtdGV4dC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LWJh c2UvcGF0Y2hlcy9mZWVuYWJsZWV4Y2VwdC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvcXQ2LWJhc2UvcGF0Y2hlcy9saWJhdG9taWMucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL3F0Ni1iYXNlL3BhdGNoZXMvbWFya2Rvd24tbXVzbC5wYXRjaAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvcXQ2LWJhc2UvcGF0Y2hlcy9wdGhyZWFkX3lpZWxkLnBhdGNoCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtYmFzZS9wYXRjaGVzL3Jlc291cmNlLXJvb3QtZGly LWxhc3QtbW9kaWZpZWQtaXMtdmFsaWQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L3F0Ni1iYXNlL3BhdGNoZXMveDg2LXFyb3VuZC1wYXNzZWQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL3F0Ni1iYXNlL3BhdGNoZXMvemZzLXN0b3JhZ2UucGF0Y2gKCmRpZmYgLS1n aXQgYS9zcmNwa2dzL3F0Ni1iYXNlL3BhdGNoZXMvYXJtLXlpZWxkLnBhdGNoIGIvc3JjcGtncy9x dDYtYmFzZS9wYXRjaGVzL2FybS15aWVsZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMDAuLjJiZWY4NTg0Yjg4ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv cXQ2LWJhc2UvcGF0Y2hlcy9hcm0teWllbGQucGF0Y2gKQEAgLTAsMCArMSwzNyBAQAorRnJvbSA4 MTI4YWJlYWVjZTViMDU0NzZmNzlmZjQ5MzU5N2I4MzhiMjIzNTEyIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQorRnJvbTogTWFyYyBNdXR6IDxtYXJjLm11dHpAcXQuaW8+CitEYXRlOiBXZWQsIDMg QXVnIDIwMjIgMTc6MjM6MjAgKzAyMDAKK1N1YmplY3Q6IEZpeCBxWWllbGRDcHUoKSBmb3IgQVJN IDwgQVJNdjcKKworQXBwYXJlbnRseSwgd2Ugc3RpbGwgc3VwcG9ydCB0aGVzZSBhcmNoaXRlY3R1 cmUgdmVyc2lvbnMsIGFuZCB0aGVyZSdzCitubyB3YXkgdG8gZGV0ZWN0IEFSTXY2ay1vci1ncmVh dGVyIHNwZWNpZmljYWxseSwgc28gZXhjbHVkZSB5aWVsZCBmb3IKK0FSTSA8IEFSTXY3LgorCitB bWVuZHMgODc3YzE1OGM1OTc2YmViZmZkMGZmMDJjMzliNmI2NmE4NDJjNjM0NC4KKworRml4ZXM6 IFFUQlVHLTEwNDMxNgorUGljay10bzogNi40IDYuMworQ2hhbmdlLUlkOiBJNTFhMmYwZjhlMDk5 M2RiYTQxZTQ3YmI2MTEwNDczYWM4ZTdjZDMyYQorUmV2aWV3ZWQtYnk6IFRoaWFnbyBNYWNpZWly YSA8dGhpYWdvLm1hY2llaXJhQGludGVsLmNvbT4KKy0tLQorIHNyYy9jb3JlbGliL2dsb2JhbC9x c2ltZF9wLmggfCAyICstCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0 aW9uKC0pCisKKyhsaW1pdGVkIHRvICdzcmMvY29yZWxpYi9nbG9iYWwvcXNpbWRfcC5oJykKKwor ZGlmZiAtLWdpdCBhL3NyYy9jb3JlbGliL2dsb2JhbC9xc2ltZF9wLmggYi9zcmMvY29yZWxpYi9n bG9iYWwvcXNpbWRfcC5oCitpbmRleCBhZDc4YzM5MzRmLi4wOTNmYzNhZWRjIDEwMDY0NAorLS0t IGEvc3JjL2NvcmVsaWIvZ2xvYmFsL3FzaW1kX3AuaAorKysrIGIvc3JjL2NvcmVsaWIvZ2xvYmFs L3FzaW1kX3AuaAorQEAgLTM5Nyw3ICszOTcsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcVlpZWxk Q3B1KCkKKyB7CisgI2lmIGRlZmluZWQoUV9QUk9DRVNTT1JfWDg2KQorICAgICBfbW1fcGF1c2Uo KTsKKy0jZWxpZiBkZWZpbmVkKFFfUFJPQ0VTU09SX0FSTSkKKysjZWxpZiBkZWZpbmVkKFFfUFJP Q0VTU09SX0FSTSkgJiYgUV9QUk9DRVNTT1JfQVJNID49IDcgLyogeWllbGQgd2FzIGFkZGVkIGlu IEFSTXY3ICovCisgIyAgaWYgX19oYXNfYnVpbHRpbihfX2J1aWx0aW5fYXJtX3lpZWxkKSAvKiBl LmcuIENsYW5nICovCisgICAgIF9fYnVpbHRpbl9hcm1feWllbGQoKTsKKyAjICBlbGlmIGRlZmlu ZWQoUV9PU19JTlRFR1JJVFkpIHx8IFwKKy0tIAorY2dpdCB2MS4yLjEKKwpkaWZmIC0tZ2l0IGEv c3JjcGtncy9xdDYtYmFzZS9wYXRjaGVzL2NvbXBsZXgtdGV4dC5wYXRjaCBiL3NyY3BrZ3MvcXQ2 LWJhc2UvcGF0Y2hlcy9jb21wbGV4LXRleHQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAwLi5lNjlkZTI5YmIyZDEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LWJh c2UvcGF0Y2hlcy9mZWVuYWJsZWV4Y2VwdC5wYXRjaCBiL3NyY3BrZ3MvcXQ2LWJhc2UvcGF0Y2hl cy9mZWVuYWJsZWV4Y2VwdC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAuLjFiNTYxNzMxYjYzNAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LWJhc2Uv cGF0Y2hlcy9mZWVuYWJsZWV4Y2VwdC5wYXRjaApAQCAtMCwwICsxLDEzIEBACistLS0gYS90ZXN0 cy9hdXRvL2NvcmVsaWIvdGV4dC9xbG9jYWxlL3RzdF9xbG9jYWxlLmNwcAorKysrIGIvdGVzdHMv YXV0by9jb3JlbGliL3RleHQvcWxvY2FsZS90c3RfcWxvY2FsZS5jcHAKK0BAIC0xNDUzLDggKzE0 NTMsMTAgQEAgdm9pZCB0c3RfUUxvY2FsZTo6ZnBFeGNlcHRpb25zKCkKKyAgICAgZmVudl90IGVu dnA7CisgICAgIGZlZ2V0ZW52KCZlbnZwKTsKKyAgICAgZmVjbGVhcmV4Y2VwdChGRV9BTExfRVhD RVBUKTsKKysjaWZkZWYgX19HTElCQ19fCisgICAgIGZlZW5hYmxlZXhjZXB0KEZFX0RJVkJZWkVS TyB8IEZFX09WRVJGTE9XIHwgRkVfVU5ERVJGTE9XIHwgRkVfSU5WQUxJRCk7CisgI2VuZGlmCisr I2VuZGlmCisgCisgICAgIFFTdHJpbmc6Om51bWJlcigxMDAwLjEyNDUpOworICAgICBRU3RyaW5n OjpudW1iZXIoMS4xKTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LWJhc2UvcGF0Y2hlcy9saWJh dG9taWMucGF0Y2ggYi9zcmNwa2dzL3F0Ni1iYXNlL3BhdGNoZXMvbGliYXRvbWljLnBhdGNoCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZjdhODA3NTE4ZTQuLjAwMDAwMDAwMDAwMAot LS0gYS9zcmNwa2dzL3F0Ni1iYXNlL3BhdGNoZXMvbGliYXRvbWljLnBhdGNoCisrKyAvZGV2L251 bGwKQEAgLTEsMTQgKzAsMCBAQAotSW5kZXg6IGNtYWtlL0ZpbmRXcmFwQXRvbWljLmNtYWtlCi09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gYS9jbWFrZS9GaW5kV3JhcEF0b21pYy5jbWFrZQotKysrIGIvY21ha2Uv RmluZFdyYXBBdG9taWMuY21ha2UKLUBAIC0zOCw3ICszOCw4IEBAIGVuZGlmKCkKLSAKLSBhZGRf bGlicmFyeShXcmFwQXRvbWljOjpXcmFwQXRvbWljIElOVEVSRkFDRSBJTVBPUlRFRCkKLSBpZihI QVZFX1NUREFUT01JQ19XSVRIX0xJQikKLS0gICAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKFdyYXBB dG9taWM6OldyYXBBdG9taWMgSU5URVJGQUNFIGF0b21pYykKLSsgICAgZmluZF9saWJyYXJ5KExJ QkFUT01JQyBhdG9taWMgUkVRVUlSRUQpCi0rICAgIHRhcmdldF9saW5rX2xpYnJhcmllcyhXcmFw QXRvbWljOjpXcmFwQXRvbWljIElOVEVSRkFDRSAke0xJQkFUT01JQ30pCi0gZW5kaWYoKQotIAot IHNldChXcmFwQXRvbWljX0ZPVU5EIDEpCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni1iYXNlL3Bh dGNoZXMvbWFya2Rvd24tbXVzbC5wYXRjaCBiL3NyY3BrZ3MvcXQ2LWJhc2UvcGF0Y2hlcy9tYXJr ZG93bi1tdXNsLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u ZDI5OTc3YjdkMzNhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtYmFzZS9wYXRjaGVz L21hcmtkb3duLW11c2wucGF0Y2gKQEAgLTAsMCArMSwzMSBAQAorLS0tIGEvdGVzdHMvYXV0by9n dWkvdGV4dC9xdGV4dG1hcmtkb3duaW1wb3J0ZXIvdHN0X3F0ZXh0bWFya2Rvd25pbXBvcnRlci5j cHAKKysrKyBiL3Rlc3RzL2F1dG8vZ3VpL3RleHQvcXRleHRtYXJrZG93bmltcG9ydGVyL3RzdF9x dGV4dG1hcmtkb3duaW1wb3J0ZXIuY3BwCitAQCAtMjI5LDkgKzIyOSwxMSBAQCB2b2lkIHRzdF9R VGV4dE1hcmtkb3duSW1wb3J0ZXI6Omxpc3RzX2RhCisgICAgIFFUZXN0OjpuZXdSb3coIm51bWVy aWMgbGlzdHMgbmVzdGVkIGluIGVtcHR5IGxpc3RzIikKKyAgICAgICAgICAgICA8PCAiLSBcbiAg ICAxLiAgYVxuICAgIDIuICBiXG4tIGNcbiAgMS5cbiAgICAgICArIGRcbiIgPDwgNCA8PCBmYWxz ZQorICAgICAgICAgICAgIDw8ICItIFxuICAgIDEuICBhXG4gICAgMi4gIGJcbi0gYyAxLiArIGRc biI7CisrI2lmIDAKKyAgICAgUVRlc3Q6Om5ld1Jvdygic3R5bGVkIHNwYW5zIGluIGxpc3QgaXRl bXMiKQorICAgICAgICAgICAgIDw8ICIxLiAgbm9ybWFsIHRleHRcbjIuICAqKmJvbGQqKiB0ZXh0 XG4zLiAgYGNvZGVgIGluIHRoZSBpdGVtXG40LiAgKml0YWxpYyogdGV4dFxuNS4gIF91bmRlcmxp bmVkXyB0ZXh0XG4iIDw8IDUgPDwgZmFsc2UKKyAgICAgICAgICAgICA8PCAiMS4gIG5vcm1hbCB0 ZXh0XG4yLiAgKipib2xkKiogdGV4dFxuMy4gIGBjb2RlYCBpbiB0aGUgaXRlbVxuNC4gICppdGFs aWMqIHRleHRcbjUuICBfdW5kZXJsaW5lZF8gdGV4dFxuIjsKKysjZW5kaWYKKyB9CisgCisgdm9p ZCB0c3RfUVRleHRNYXJrZG93bkltcG9ydGVyOjpsaXN0cygpCistLS0gYS90ZXN0cy9hdXRvL3dp ZGdldHMvZ3JhcGhpY3N2aWV3L3FncmFwaGljc3dpZGdldC90c3RfcWdyYXBoaWNzd2lkZ2V0LmNw cAorKysrIGIvdGVzdHMvYXV0by93aWRnZXRzL2dyYXBoaWNzdmlldy9xZ3JhcGhpY3N3aWRnZXQv dHN0X3FncmFwaGljc3dpZGdldC5jcHAKK0BAIC0xNzc2LDExICsxNzc2LDE0IEBAIHZvaWQgdHN0 X1FHcmFwaGljc1dpZGdldDo6dXBkYXRlRm9jdXNDaGEKKyAgICAgY29uc3QgUVBvaW50IGNlbnRl cih2aWV3LnZpZXdwb3J0KCktPndpZHRoKCkgLyAyLCB2aWV3LnZpZXdwb3J0KCktPmhlaWdodCgp IC8gMik7CisgICAgIFFUZXN0Ojptb3VzZU1vdmUodmlldy52aWV3cG9ydCgpLCBjZW50ZXIpOwor ICAgICBRVGVzdDo6bW91c2VDbGljayh2aWV3LnZpZXdwb3J0KCksIFF0OjpMZWZ0QnV0dG9uLCB7 fSwgY2VudGVyKTsKKysjaWYgMAorKyAgICAvLyBTYW1lIHN5bXB0b24gd2l0aCBRVEJVRy0yMzY5 OQorICNpZmRlZiBRX09TX01BQworICAgICBRRVhQRUNUX0ZBSUwoIiIsICJRVEJVRy0yMzY5OSIs IENvbnRpbnVlKTsKKyAjZW5kaWYKKyAgICAgUVRSWV9DT01QQVJFKHFBcHAtPmFjdGl2ZVdpbmRv dygpLCBzdGF0aWNfY2FzdDxRV2lkZ2V0ICo+KCZ2aWV3KSk7CisgICAgIFFUUllfQ09NUEFSRShz Y2VuZS5mb2N1c0l0ZW0oKSwgc3RhdGljX2Nhc3Q8UUdyYXBoaWNzSXRlbSAqPih3KSk7CisrI2Vu ZGlmCisgfQorIAorIHZvaWQgdHN0X1FHcmFwaGljc1dpZGdldDo6c2l6ZUhpbnRfZGF0YSgpCmRp ZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni1iYXNlL3BhdGNoZXMvcHRocmVhZF95aWVsZC5wYXRjaCBi L3NyY3BrZ3MvcXQ2LWJhc2UvcGF0Y2hlcy9wdGhyZWFkX3lpZWxkLnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMmVjZjY5M2U3MmQzCi0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9xdDYtYmFzZS9wYXRjaGVzL3B0aHJlYWRfeWllbGQucGF0Y2gKQEAgLTAs MCArMSwyMCBAQAorLS0tIGEvdGVzdHMvYXV0by9jb3JlbGliL2tlcm5lbC9xbWV0YXR5cGUvdHN0 X3FtZXRhdHlwZS5jcHAKKysrKyBiL3Rlc3RzL2F1dG8vY29yZWxpYi9rZXJuZWwvcW1ldGF0eXBl L3RzdF9xbWV0YXR5cGUuY3BwCitAQCAtMzEsNyArMzEsNyBAQAorICNpbmNsdWRlIDxRdENvcmUv cHJpdmF0ZS9xbWV0YW9iamVjdGJ1aWxkZXJfcC5oPgorIAorICNpZmRlZiBRX09TX0xJTlVYCist IyBpbmNsdWRlIDxwdGhyZWFkLmg+CisrIyBpbmNsdWRlIDxzY2hlZC5oPgorICNlbmRpZgorIAor ICNpbmNsdWRlIDxhbGdvcml0aG0+CitAQCAtNDE4LDcgKzQxOCw3IEBAIHByb3RlY3RlZDoKKyAg ICAgICAgICAgICBjb25zdCBjaGFyICpubSA9IG5hbWUuY29uc3REYXRhKCk7CisgICAgICAgICAg ICAgaW50IHRwID0gcVJlZ2lzdGVyTWV0YVR5cGU8QmFyPihubSk7CisgI2lmIGRlZmluZWQoUV9P U19MSU5VWCkgJiYgIWRlZmluZWQoUV9PU19BTkRST0lEKQorLSAgICAgICAgICAgIHB0aHJlYWRf eWllbGQoKTsKKysgICAgICAgICAgICBzY2hlZF95aWVsZCgpOworICNlbmRpZgorICAgICAgICAg ICAgIFFNZXRhVHlwZSBpbmZvKHRwKTsKKyAgICAgICAgICAgICBpZiAoIWluZm8uaXNWYWxpZCgp KSB7CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni1iYXNlL3BhdGNoZXMvcmVzb3VyY2Utcm9vdC1k aXItbGFzdC1tb2RpZmllZC1pcy12YWxpZC5wYXRjaCBiL3NyY3BrZ3MvcXQ2LWJhc2UvcGF0Y2hl cy9yZXNvdXJjZS1yb290LWRpci1sYXN0LW1vZGlmaWVkLWlzLXZhbGlkLnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZjE0MzZkZjQyZDhlCi0tLSAvZGV2L251 bGwKKysrIGIvc3JjcGtncy9xdDYtYmFzZS9wYXRjaGVzL3Jlc291cmNlLXJvb3QtZGlyLWxhc3Qt bW9kaWZpZWQtaXMtdmFsaWQucGF0Y2gKQEAgLTAsMCArMSwxMyBAQAorLS0tIGEvdGVzdHMvYXV0 by9jb3JlbGliL2lvL3FyZXNvdXJjZWVuZ2luZS90c3RfcXJlc291cmNlZW5naW5lLmNwcAorKysr IGIvdGVzdHMvYXV0by9jb3JlbGliL2lvL3FyZXNvdXJjZWVuZ2luZS90c3RfcXJlc291cmNlZW5n aW5lLmNwcAorQEAgLTYwNyw3ICs2MDcsMTAgQEAgdm9pZCB0c3RfUVJlc291cmNlRW5naW5lOjps YXN0TW9kaWZpZWQoKQorICAgICB7CisgICAgICAgICBRRmlsZUluZm8gZmkoIjovIik7CisgICAg ICAgICBRVkVSSUZZKGZpLmV4aXN0cygpKTsKKysjaWYgMAorKwkvLyBJIGRvbid0IGtub3cgd2hh dCB3cm9uZyB3aXRoIHRoaXMhIQorICAgICAgICAgUVZFUklGWTIoIWZpLmxhc3RNb2RpZmllZCgp LmlzVmFsaWQoKSwgcVByaW50YWJsZShmaS5sYXN0TW9kaWZpZWQoKS50b1N0cmluZygpKSk7Cisr I2VuZGlmCisgICAgIH0KKyAgICAgeworICAgICAgICAgUUZpbGVJbmZvIGZpKCI6L3NlYXJjaF9m aWxlLnR4dCIpOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtYmFzZS9wYXRjaGVzL3g4Ni1xcm91 bmQtcGFzc2VkLnBhdGNoIGIvc3JjcGtncy9xdDYtYmFzZS9wYXRjaGVzL3g4Ni1xcm91bmQtcGFz c2VkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uOWZmOTBk MTAzZWIzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtYmFzZS9wYXRjaGVzL3g4Ni1x cm91bmQtcGFzc2VkLnBhdGNoCkBAIC0wLDAgKzEsNDggQEAKKy0tLSBhL3Rlc3RzL2F1dG8vY29y ZWxpYi9nbG9iYWwvcWdsb2JhbC90c3RfcWdsb2JhbC5jcHAKKysrKyBiL3Rlc3RzL2F1dG8vY29y ZWxpYi9nbG9iYWwvcWdsb2JhbC90c3RfcWdsb2JhbC5jcHAKK0BAIC02MjQsMTggKzYyNCwxNCBA QCB2b2lkIHRzdF9RR2xvYmFsOjpxUm91bmRGbG9hdHMoKSB7CisgICAgIFFGRVRDSChmbG9hdCwg ZXhwZWN0ZWQpOworIAorICNpZiAhKGRlZmluZWQoUV9QUk9DRVNTT1JfQVJNXzY0KSAmJiAoX19o YXNfYnVpbHRpbihfX2J1aWx0aW5fcm91bmQpIHx8IGRlZmluZWQoUV9DQ19HTlUpKSAmJiAhZGVm aW5lZChRX0NDX0NMQU5HKSkKKy0gICAgUUVYUEVDVF9GQUlMKCJyb3VuZCBsYXJnZXN0IHJlcHJl c2VudGFibGUgZmxvYXQgbGVzcyB0aGFuIDAuNSIsCistICAgICAgICAgICAgICAgICAiV2Uga25v dyBxUm91bmQgZmFpbHMgaW4gdGhpcyBjYXNlLCBidXQgZGVjaWRlZCB0aGF0IHdlIHZhbHVlIHNp bXBsaWNpdHkgb3ZlciBjb3JyZWN0bmVzcyIsCistICAgICAgICAgICAgICAgICBDb250aW51ZSk7 CistI2VuZGlmCisrI2Vsc2UKKyAgICAgUUNPTVBBUkUocVJvdW5kKGFjdHVhbCksIGV4cGVjdGVk KTsKKysjZW5kaWYKKyAKKyAjaWYgIShkZWZpbmVkKFFfUFJPQ0VTU09SX0FSTV82NCkgJiYgKF9f aGFzX2J1aWx0aW4oX19idWlsdGluX3JvdW5kKSB8fCBkZWZpbmVkKFFfQ0NfR05VKSkgJiYgIWRl ZmluZWQoUV9DQ19DTEFORykpCistICAgIFFFWFBFQ1RfRkFJTCgicm91bmQgbGFyZ2VzdCByZXBy ZXNlbnRhYmxlIGZsb2F0IGxlc3MgdGhhbiAwLjUiLAorLSAgICAgICAgICAgICAgICAgIldlIGtu b3cgcVJvdW5kIGZhaWxzIGluIHRoaXMgY2FzZSwgYnV0IGRlY2lkZWQgdGhhdCB3ZSB2YWx1ZSBz aW1wbGljaXR5IG92ZXIgY29ycmVjdG5lc3MiLAorLSAgICAgICAgICAgICAgICAgQ29udGludWUp OworLSNlbmRpZgorKyNlbHNlCisgICAgIFFDT01QQVJFKHFSb3VuZDY0KGFjdHVhbCksIGV4cGVj dGVkKTsKKysjZW5kaWYKKyB9CisgCisgdm9pZCB0c3RfUUdsb2JhbDo6cVJvdW5kRG91Ymxlc19k YXRhKCkgeworQEAgLTY1MywxOCArNjQ5LDE0IEBAIHZvaWQgdHN0X1FHbG9iYWw6OnFSb3VuZERv dWJsZXMoKSB7CisgICAgIFFGRVRDSChkb3VibGUsIGV4cGVjdGVkKTsKKyAKKyAjaWYgIShkZWZp bmVkKFFfUFJPQ0VTU09SX0FSTV82NCkgJiYgKF9faGFzX2J1aWx0aW4oX19idWlsdGluX3JvdW5k KSB8fCBkZWZpbmVkKFFfQ0NfR05VKSkgJiYgIWRlZmluZWQoUV9DQ19DTEFORykpCistICAgIFFF WFBFQ1RfRkFJTCgicm91bmQgbGFyZ2VzdCByZXByZXNlbnRhYmxlIGRvdWJsZSBsZXNzIHRoYW4g MC41IiwKKy0gICAgICAgICAgICAgICAgICJXZSBrbm93IHFSb3VuZCBmYWlscyBpbiB0aGlzIGNh c2UsIGJ1dCBkZWNpZGVkIHRoYXQgd2UgdmFsdWUgc2ltcGxpY2l0eSBvdmVyIGNvcnJlY3RuZXNz IiwKKy0gICAgICAgICAgICAgICAgIENvbnRpbnVlKTsKKy0jZW5kaWYKKysjZWxzZQorICAgICBR Q09NUEFSRShxUm91bmQoYWN0dWFsKSwgZXhwZWN0ZWQpOworKyNlbmRpZgorIAorICNpZiAhKGRl ZmluZWQoUV9QUk9DRVNTT1JfQVJNXzY0KSAmJiAoX19oYXNfYnVpbHRpbihfX2J1aWx0aW5fcm91 bmQpIHx8IGRlZmluZWQoUV9DQ19HTlUpKSAmJiAhZGVmaW5lZChRX0NDX0NMQU5HKSkKKy0gICAg UUVYUEVDVF9GQUlMKCJyb3VuZCBsYXJnZXN0IHJlcHJlc2VudGFibGUgZG91YmxlIGxlc3MgdGhh biAwLjUiLAorLSAgICAgICAgICAgICAgICAgIldlIGtub3cgcVJvdW5kIGZhaWxzIGluIHRoaXMg Y2FzZSwgYnV0IGRlY2lkZWQgdGhhdCB3ZSB2YWx1ZSBzaW1wbGljaXR5IG92ZXIgY29ycmVjdG5l c3MiLAorLSAgICAgICAgICAgICAgICAgQ29udGludWUpOworLSNlbmRpZgorKyNlbHNlCisgICAg IFFDT01QQVJFKHFSb3VuZDY0KGFjdHVhbCksIGV4cGVjdGVkKTsKKysjZW5kaWYKKyB9CisgCisg dm9pZCB0c3RfUUdsb2JhbDo6UFJJbWFjcm9zKCkKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LWJh c2UvcGF0Y2hlcy96ZnMtc3RvcmFnZS5wYXRjaCBiL3NyY3BrZ3MvcXQ2LWJhc2UvcGF0Y2hlcy96 ZnMtc3RvcmFnZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAu LmJkYmUzODFhNDQyZgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LWJhc2UvcGF0Y2hl cy96ZnMtc3RvcmFnZS5wYXRjaApAQCAtMCwwICsxLDIwIEBACistLS0gYS90ZXN0cy9hdXRvL2Nv cmVsaWIvaW8vcXN0b3JhZ2VpbmZvL3RzdF9xc3RvcmFnZWluZm8uY3BwCisrKysgYi90ZXN0cy9h dXRvL2NvcmVsaWIvaW8vcXN0b3JhZ2VpbmZvL3RzdF9xc3RvcmFnZWluZm8uY3BwCitAQCAtMTkw LDYgKzE5MCw4IEBAIHZvaWQgdHN0X1FTdG9yYWdlSW5mbzo6dGVtcEZpbGUoKQorICNpZmRlZiBR X09TX0xJTlVYCisgICAgIGlmIChzdG9yYWdlMS5maWxlU3lzdGVtVHlwZSgpID09ICJidHJmcyIp CisgICAgICAgICBRU0tJUCgiVGhpcyB0ZXN0IGRvZXNuJ3Qgd29yayBvbiBidHJmcywgcHJvYmFi bHkgZHVlIHRvIGEgYnRyZnMgYnVnIik7CisrICAgIGlmIChzdG9yYWdlMS5maWxlU3lzdGVtVHlw ZSgpID09ICJ6ZnMiKQorKyAgICAgICAgUVNLSVAoIlRoaXMgdGVzdCBkb2Vzbid0IHdvcmsgb24g emZzIik7CisgI2VuZGlmCisgCisgICAgIHFpbnQ2NCBmcmVlID0gc3RvcmFnZTEuYnl0ZXNGcmVl KCk7CitAQCAtMjE2LDYgKzIxOCw4IEBAIHZvaWQgdHN0X1FTdG9yYWdlSW5mbzo6Y2FjaGluZygp CisgI2lmZGVmIFFfT1NfTElOVVgKKyAgICAgaWYgKHN0b3JhZ2UxLmZpbGVTeXN0ZW1UeXBlKCkg PT0gImJ0cmZzIikKKyAgICAgICAgIFFTS0lQKCJUaGlzIHRlc3QgZG9lc24ndCB3b3JrIG9uIGJ0 cmZzLCBwcm9iYWJseSBkdWUgdG8gYSBidHJmcyBidWciKTsKKysgICAgaWYgKHN0b3JhZ2UxLmZp bGVTeXN0ZW1UeXBlKCkgPT0gInpmcyIpCisrICAgICAgICBRU0tJUCgiVGhpcyB0ZXN0IGRvZXNu J3Qgd29yayBvbiB6ZnMiKTsKKyAjZW5kaWYKKyAKKyAgICAgcWludDY0IGZyZWUgPSBzdG9yYWdl MS5ieXRlc0ZyZWUoKTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LWJhc2UvdGVtcGxhdGUgYi9z cmNwa2dzL3F0Ni1iYXNlL3RlbXBsYXRlCmluZGV4IGNjNDdlMThhNzBmZi4uYWM0ZDAyZDcyZDI0 IDEwMDY0NAotLS0gYS9zcmNwa2dzL3F0Ni1iYXNlL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcXQ2 LWJhc2UvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdxdDYt YmFzZScKIHBrZ25hbWU9cXQ2LWJhc2UKLXZlcnNpb249Ni4zLjAKLXJldmlzaW9uPTIKK3ZlcnNp b249Ni4zLjEKK3JldmlzaW9uPTEKIHdya3NyYz0icXRiYXNlLWV2ZXJ5d2hlcmUtc3JjLSR7dmVy c2lvbn0iCiBidWlsZF9zdHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9Ii1ESU5TVEFMTF9EQVRB RElSPXNoYXJlL3F0NgpAQCAtOSw2ICs5LDggQEAgY29uZmlndXJlX2FyZ3M9Ii1ESU5TVEFMTF9E QVRBRElSPXNoYXJlL3F0NgogIC1ESU5TVEFMTF9CSU5ESVI9bGliL3F0Ni9iaW4KICAtRElOU1RB TExfTUtTUEVDU0RJUj1saWIvcXQ2L21rc3BlY3MKICAtRElOU1RBTExfSU5DTFVERURJUj1pbmNs dWRlL3F0NgorIC1ESU5TVEFMTF9FWEFNUExFU0RJUj1saWIvcXQ2L2V4YW1wbGVzCisgLURJTlNU QUxMX1RFU1RTRElSPWxpYi9xdDYvdGVzdHMKICAtRElOU1RBTExfU1lTQ09ORkRJUj0vZXRjL3hk ZwogIC1EUVRfRkVBVFVSRV9vcGVuc3NsX2xpbmtlZD1PTgogIC1EUVRfRkVBVFVSRV9zeXN0ZW1f c3FsaXRlPU9OCkBAIC0yOSwxNCArMzEsMTMgQEAgbWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55 bmF0b3IuZGV2PiIKIGxpY2Vuc2U9IkdQTC0zLjAtb25seSBXSVRIIFF0LUdQTC1leGNlcHRpb24t MS4wLCBMR1BMLTMuMC1vbmx5LCBHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8v d3d3LnF0LmlvIgogZGlzdGZpbGVzPSJodHRwczovL2Rvd25sb2FkLnF0LmlvL29mZmljaWFsX3Jl bGVhc2VzL3F0LyR7dmVyc2lvbiUuKn0vJHt2ZXJzaW9ufS9zdWJtb2R1bGVzL3F0YmFzZS1ldmVy eXdoZXJlLXNyYy0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWI4NjVhYWU0MzM1N2Y3OTJi M2IwYTE2Mjg5OWQ5YmY2YTEzOTNhNTVjNGU1ZTRlZGU1MzE2YjE1N2IxYTBmOTkKK2NoZWNrc3Vt PTBhNjQ0MjFkOWMyNDY5YzJjNDg0OTBhMDMyYWI5MWQ1NDcwMTdjOWNjMTcxZjNmODA3MGJjMzE4 ODhmMjRlMDMKIHB5dGhvbl92ZXJzaW9uPTMKIAogaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVu CiAJaG9zdG1ha2VkZXBlbmRzKz0iIHF0Ni1iYXNlLWRldmVsIgogCSMgUXRTZXR1cCBmYWlscyBu YXRpdmUgYnVpbGRzIGlmIHRoaXMgaXMgc2V0Ci0JY29uZmlndXJlX2FyZ3MrPSIgLURRVF9IT1NU X1BBVEg9L3VzcgotCSAtRFFUX0JVSUxEX1RPT0xTX1dIRU5fQ1JPU1NDT01QSUxJTkc9dHJ1ZSIK Kwljb25maWd1cmVfYXJncys9Ii1EUVRfQlVJTERfVE9PTFNfV0hFTl9DUk9TU0NPTVBJTElORz10 cnVlIgogZmkKIAogIyBJdCBpcyBjdXJyZW50bHkgZXhwZWN0ZWQgdGhhdCBxdWl0ZSBhIGZldyBw YXRjaGVzIGRvIGZhaWwKQEAgLTQ2LDYgKzQ3LDcgQEAgZmkKIAogZG9fY2hlY2soKSB7CiAJY2Qg YnVpbGQKKwlleHBvcnQgUVRfUVBBX1BMQVRGT1JNPW9mZnNjcmVlbgogCWxvY2FsIGZhaWxpbmdf dGVzdHM9InRzdF9zZWxmdGVzdHMgdHN0X3FtYWtlIHRzdF9tb2MKIAkJdHN0X3JjYyB0c3RfcWZp bGUgdHN0X3FzdGFuZGFyZHBhdGhzCiAJCXRzdF9xdGVtcG9yYXJ5ZGlyIHRzdF9xdGVtcG9yYXJ5 ZmlsZSB0c3RfcWRpcgpAQCAtNzMsNyArNzUsMTQgQEAgZG9fY2hlY2soKSB7CiAJCXRzdF9xb3Bl bmdsIHRzdF9xZG5zbG9va3VwIHRzdF9xZmlsZWRpYWxvZwogCQl0c3RfcWdyYXBoaWNzdmlldyB0 c3RfcWFwcGxpY2F0aW9uIHRzdF9xZm9udGNvbWJvYm94CiAJCXRzdF9xbGluZWVkaXQgdHN0X3Ft ZW51YmFyIHRzdF9xb3Blbmdsd2lkZ2V0CisJCXRzdF9xeDExaW5mbyB0c3RfcWNvbXBsZXh0ZXh0 CiAJCXRlc3RfUUZJTkRURVNUREFUQSBydW5fdGVzdF9RRklORFRFU1REQVRBIgorCSMgVW5rbm93 biBwbGF0Zm9ybSBsaW51eC1nKysgOi8KKwlmYWlsaW5nX3Rlc3RzKz0iIG1vY2twbHVnaW5zIHRl c3RfaW1wb3J0X3BsdWdpbnMKKwkJdGVzdF9zdGF0aWNfcmVzb3VyY2VzIHRlc3RfZ2VuZXJhdGlu Z19jcHBfZXhwb3J0cyIKKwlmYWlsaW5nX3Rlc3RzKz0iIHRzdF9xc3RvcmFnZWluZm8iCisJIyBi cm9rZW4gd2l0aCAtTywgcGFzc2VkIHdpdGggLU8wLCBwcm9iYWJseSBicm9rZW4gZmxvYXRpbmcg cG9pbnQgY29kZS4KKwlmYWlsaW5nX3Rlc3RzKz0iIHRzdF9xdmVjdG9ybmQiCiAJbG9jYWwgY3Rl c3RfZXhjbHVkZT0iKCIKIAlmb3IgZmFpbHVyZSBpbiAkZmFpbGluZ190ZXN0czsgZG8KIAkJY3Rl c3RfZXhjbHVkZSs9IiRmYWlsdXJlfCIKQEAgLTIyNSw3ICsyMzQsNyBAQCBxdDYtcGx1Z2luLXRs cy1xY2VydG9ubHlfcGFja2FnZSgpIHsKIHF0Ni1wbHVnaW4tbmV0d29ya2luZm9ybWF0aW9uX3Bh Y2thZ2UoKSB7CiAJc2hvcnRfZGVzYys9IiAtIE5ldHdvcmtpbmZvcm1hdGlvbiBwbHVnaW4iCiAJ cGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlIHVzci9saWIvcXQ2L3BsdWdpbnMvbmV0d29ya2luZm9y bWF0aW9uL2xpYnFuZXR3b3JrbWFuYWdlci5zbworCQl2bW92ZSB1c3IvbGliL3F0Ni9wbHVnaW5z L25ldHdvcmtpbmZvcm1hdGlvbi8KIAl9CiB9CiAKQEAgLTI0Niw5ICsyNTUsMTIgQEAgcXQ2LWJh c2UtZGV2ZWxfcGFja2FnZSgpIHsKIAlwa2dfaW5zdGFsbCgpIHsKIAkJdm1vdmUgdXNyL2luY2x1 ZGUKIAkJdm1vdmUgdXNyL2xpYi9jbWFrZQorCQl2bW92ZSB1c3IvbGliL21ldGF0eXBlcworCQl2 bW92ZSB1c3IvbGliL3BrZ2NvbmZpZwogCQl2bW92ZSB1c3IvbGliL3F0Ni9ta3NwZWNzCiAJCXZt b3ZlICJ1c3IvbGliLyouYSIKIAkJdm1vdmUgInVzci9saWIvKi5zbyIKIAkJdm1vdmUgInVzci9s aWIvKi5wcmwiCisJCXZtb3ZlIHVzci9zaGFyZS9xdDYvbW9kdWxlcwogCX0KIH0KCkZyb20gMDhl ODk4YTcxZjg0NmIzNWM1NTA2ZDE5YTNjYmFhNTQ4MzE3MDk2MyBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogPT9VVEYtOD9xPz1DND05MG89QzM9QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1D Mz1CNG5nPTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+CkRhdGU6IE1vbiwgOCBBdWcg MjAyMiAxNzoxMzowNyArMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDIvMjZdIHF0Ni1jaGFydHM6IHVw ZGF0ZSB0byA2LjMuMS4KCi0tLQogc3JjcGtncy9xdDYtY2hhcnRzL3BhdGNoZXMvbm8tY21ha2Ut dGVzdC5wYXRjaCB8IDEwICsrKysrKysrKysKIHNyY3BrZ3MvcXQ2LWNoYXJ0cy90ZW1wbGF0ZSAg ICAgICAgICAgICAgICAgICAgfCAxMiArKysrKysrKystLS0KIDIgZmlsZXMgY2hhbmdlZCwgMTkg aW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L3F0Ni1jaGFydHMvcGF0Y2hlcy9uby1jbWFrZS10ZXN0LnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9xdDYtY2hhcnRzL3BhdGNoZXMvbm8tY21ha2UtdGVzdC5wYXRjaCBiL3NyY3BrZ3MvcXQ2 LWNoYXJ0cy9wYXRjaGVzL25vLWNtYWtlLXRlc3QucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwLi42ODg2MjgyOTcyY2UKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNw a2dzL3F0Ni1jaGFydHMvcGF0Y2hlcy9uby1jbWFrZS10ZXN0LnBhdGNoCkBAIC0wLDAgKzEsMTAg QEAKKy0tLSBhL3Rlc3RzL2F1dG8vQ01ha2VMaXN0cy50eHQKKysrKyBiL3Rlc3RzL2F1dG8vQ01h a2VMaXN0cy50eHQKK0BAIC0yMyw3ICsyMyw2IEBAIGFkZF9zdWJkaXJlY3RvcnkocWNhdGVnb3J5 YXhpcykKKyBhZGRfc3ViZGlyZWN0b3J5KHFiYXJjYXRlZ29yeWF4aXMpCisgYWRkX3N1YmRpcmVj dG9yeShxbGVnZW5kKQorIGFkZF9zdWJkaXJlY3RvcnkocWFyZWFzZXJpZXMpCistYWRkX3N1YmRp cmVjdG9yeShjbWFrZSkKKyBhZGRfc3ViZGlyZWN0b3J5KHFjYW5kbGVzdGlja21vZGVsbWFwcGVy KQorIGFkZF9zdWJkaXJlY3RvcnkocWNhbmRsZXN0aWNrc2VyaWVzKQorIGFkZF9zdWJkaXJlY3Rv cnkocWNhbmRsZXN0aWNrc2V0KQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtY2hhcnRzL3RlbXBs YXRlIGIvc3JjcGtncy9xdDYtY2hhcnRzL3RlbXBsYXRlCmluZGV4IDc5Y2I4YTIyMDQwMS4uZWQw YTcxNGE1ZGZiIDEwMDY0NAotLS0gYS9zcmNwa2dzL3F0Ni1jaGFydHMvdGVtcGxhdGUKKysrIGIv c3JjcGtncy9xdDYtY2hhcnRzL3RlbXBsYXRlCkBAIC0xLDEwICsxLDkgQEAKICMgVGVtcGxhdGUg ZmlsZSBmb3IgJ3F0Ni1jaGFydHMnCiBwa2duYW1lPXF0Ni1jaGFydHMKLXZlcnNpb249Ni4zLjAK K3ZlcnNpb249Ni4zLjEKIHJldmlzaW9uPTEKIHdya3NyYz0icXRjaGFydHMtZXZlcnl3aGVyZS1z cmMtJHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPWNtYWtlCi1jb25maWd1cmVfYXJncz0iLURRVF9I T1NUX1BBVEg9L3VzciIKIGhvc3RtYWtlZGVwZW5kcz0icGVybCBxdDYtZGVjbGFyYXRpdmUtZGV2 ZWwiCiBtYWtlZGVwZW5kcz0icXQ2LWRlY2xhcmF0aXZlLWRldmVsIgogc2hvcnRfZGVzYz0iQ3Jv c3MtcGxhdGZvcm0gYXBwbGljYXRpb24gYW5kIFVJIGZyYW1ld29yayAtIGNoYXJ0cyIKQEAgLTEy LDcgKzExLDExIEBAIG1haW50YWluZXI9IkpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4iCiBsaWNl bnNlPSJHUEwtMy4wLW9ubHkiCiBob21lcGFnZT0iaHR0cHM6Ly9xdC5pby8iCiBkaXN0ZmlsZXM9 Imh0dHA6Ly9kb3dubG9hZC5xdC5pby9vZmZpY2lhbF9yZWxlYXNlcy9xdC8ke3ZlcnNpb24lLip9 LyR7dmVyc2lvbn0vc3VibW9kdWxlcy9xdGNoYXJ0cy1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259 LnRhci54eiIKLWNoZWNrc3VtPTY3Mjc2MmM1ZjY0MWNjYzg4YTMwYWVlZGVmYjYzZjAzYzBmODM3 NjQ5YjMzNGY0NmVlYTU3NTkyZTg3ZTM2Y2QKK2NoZWNrc3VtPWYzMzBjYzIzMjg3MjkxMDRkNzli MjA4ODk5MGNlMDg0MGYyZGE4OWQ5ZDk4OTM2MGQ0YzM1MmU3OTdkMjdjZjcKKworcHJlX2NoZWNr KCkgeworCWV4cG9ydCBRTUwyX0lNUE9SVF9QQVRIPSIkd3Jrc3JjL2J1aWxkL2xpYi9xdDYvcW1s IgorfQogCiBxdDYtY2hhcnRzLWRldmVsX3BhY2thZ2UoKSB7CiAJZGVwZW5kcz0iJHtzb3VyY2Vw a2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgpAQCAtMjAsOCArMjMsMTEgQEAgcXQ2LWNoYXJ0 cy1kZXZlbF9wYWNrYWdlKCkgewogCXBrZ19pbnN0YWxsKCkgewogCQl2bW92ZSB1c3IvaW5jbHVk ZQogCQl2bW92ZSB1c3IvbGliL2NtYWtlCisJCXZtb3ZlIHVzci9saWIvbWV0YXR5cGVzCisJCXZt b3ZlIHVzci9saWIvcGtnY29uZmlnCiAJCXZtb3ZlIHVzci9saWIvcXQ2L21rc3BlY3MKIAkJdm1v dmUgInVzci9saWIvKi5zbyIKIAkJdm1vdmUgInVzci9saWIvKi5wcmwiCisJCXZtb3ZlIHVzci9z aGFyZS9xdDYvbW9kdWxlcwogCX0KIH0KCkZyb20gMGYyNTk4MTNjZmE5OTU0NGYzYWMwMmEzN2Jk ZDA1ODE0NWRhMTUwNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1D ND05MG89QzM9QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2Rh bmhxeEBnbWFpbC5jb20+CkRhdGU6IE1vbiwgOCBBdWcgMjAyMiAxNzoxMzowNyArMDcwMApTdWJq ZWN0OiBbUEFUQ0ggMDMvMjZdIHF0Ni1kZWNsYXJhdGl2ZTogdXBkYXRlIHRvIDYuMy4xLgoKLS0t CiAuLi4vcGF0Y2hlcy9iaW4tcW1sLWxvY2F0aW9uLnBhdGNoICAgICAgICAgICAgfCAxOTMgKysr KysrKysrKysrKysrKysrCiAuLi4vcGF0Y2hlcy9xbWwtYmxhY2tsaXN0LW1vcmUucGF0Y2ggICAg ICAgICAgfCAgNDggKysrKysKIC4uLi9wYXRjaGVzL3FtbC1icm9rZW4tdGVzdC5wYXRjaCAgICAg ICAgICAgICB8ICA2NCArKysrKysKIHNyY3BrZ3MvcXQ2LWRlY2xhcmF0aXZlL3RlbXBsYXRlICAg ICAgICAgICAgICB8ICAzMiArKy0KIDQgZmlsZXMgY2hhbmdlZCwgMzMxIGluc2VydGlvbnMoKyks IDYgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtZGVjbGFyYXRp dmUvcGF0Y2hlcy9iaW4tcW1sLWxvY2F0aW9uLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9xdDYtZGVjbGFyYXRpdmUvcGF0Y2hlcy9xbWwtYmxhY2tsaXN0LW1vcmUucGF0Y2gKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni1kZWNsYXJhdGl2ZS9wYXRjaGVzL3FtbC1icm9r ZW4tdGVzdC5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LWRlY2xhcmF0aXZlL3BhdGNo ZXMvYmluLXFtbC1sb2NhdGlvbi5wYXRjaCBiL3NyY3BrZ3MvcXQ2LWRlY2xhcmF0aXZlL3BhdGNo ZXMvYmluLXFtbC1sb2NhdGlvbi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMDAuLmY5MmUzNDYzMjUwMgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LWRl Y2xhcmF0aXZlL3BhdGNoZXMvYmluLXFtbC1sb2NhdGlvbi5wYXRjaApAQCAtMCwwICsxLDE5MyBA QAorLS0tIGEvdGVzdHMvYXV0by9xbWwvZGVidWdnZXIvcXFtbGRlYnVndHJhbnNsYXRpb25jbGll bnQvdHN0X3FxbWxkZWJ1Z3RyYW5zbGF0aW9uY2xpZW50LmNwcAorKysrIGIvdGVzdHMvYXV0by9x bWwvZGVidWdnZXIvcXFtbGRlYnVndHJhbnNsYXRpb25jbGllbnQvdHN0X3FxbWxkZWJ1Z3RyYW5z bGF0aW9uY2xpZW50LmNwcAorQEAgLTk0LDcgKzk0LDExIEBAIHByaXZhdGU6CisgICAgIHsKKyAg ICAgICAgIG1fY3VycmVudE91dHB1dExpbmUgPSAwOworIAorKyNpZmRlZiBRVF9ERUNMQVJBVElW RV9CSU5fUEFUSAorKyAgICAgICAgYXV0byBleGVjdXRhYmxlID0gUVRfREVDTEFSQVRJVkVfQklO X1BBVEggIi9xbWwiOworKyNlbHNlCisgICAgICAgICBhdXRvIGV4ZWN1dGFibGUgPSBRTGlicmFy eUluZm86OnBhdGgoUUxpYnJhcnlJbmZvOjpCaW5hcmllc1BhdGgpICsgIi9xbWwiOworKyNlbmRp ZgorICAgICAgICAgYXV0byBzZXJ2aWNlcyA9IFFRbWxEZWJ1Z1RyYW5zbGF0aW9uU2VydmljZUlt cGw6OnNfa2V5OworICAgICAgICAgYXV0byBleHRyYUFyZ3MgPSB0ZXN0RmlsZShRTUxGSUxFKTsK KyAgICAgICAgIGF1dG8gYmxvY2sgPSB0cnVlOworLS0tIGEvdGVzdHMvYXV0by9xbWwvZGVidWdn ZXIvcXFtbGluc3BlY3Rvci90c3RfcXFtbGluc3BlY3Rvci5jcHAKKysrKyBiL3Rlc3RzL2F1dG8v cW1sL2RlYnVnZ2VyL3FxbWxpbnNwZWN0b3IvdHN0X3FxbWxpbnNwZWN0b3IuY3BwCitAQCAtNzIs NyArNzIsMTIgQEAgdHN0X1FRbWxJbnNwZWN0b3I6OnRzdF9RUW1sSW5zcGVjdG9yKCkKKyBRUW1s RGVidWdUZXN0OjpDb25uZWN0UmVzdWx0IHRzdF9RUW1sSW5zcGVjdG9yOjpzdGFydFFtbFByb2Nl c3MoY29uc3QgUVN0cmluZyAmcW1sRmlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCByZXN0cmljdFNlcnZpY2Vz KQorIHsKKy0gICAgcmV0dXJuIFFRbWxEZWJ1Z1Rlc3Q6OmNvbm5lY3RUbyhRTGlicmFyeUluZm86 OnBhdGgoUUxpYnJhcnlJbmZvOjpCaW5hcmllc1BhdGgpICsgIi9xbWwiLAorKyNpZmRlZiBRVF9E RUNMQVJBVElWRV9CSU5fUEFUSAorKyAgICBhdXRvIGV4ZWN1dGFibGUgPSBRVF9ERUNMQVJBVElW RV9CSU5fUEFUSCAiL3FtbCI7CisrI2Vsc2UKKysgICAgYXV0byBleGVjdXRhYmxlID0gUUxpYnJh cnlJbmZvOjpwYXRoKFFMaWJyYXJ5SW5mbzo6QmluYXJpZXNQYXRoKSArICIvcW1sIjsKKysjZW5k aWYKKysgICAgcmV0dXJuIFFRbWxEZWJ1Z1Rlc3Q6OmNvbm5lY3RUbyhleGVjdXRhYmxlLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN0cmljdFNlcnZpY2VzID8gUVN0cmlu Z0xpdGVyYWwoIlFtbEluc3BlY3RvciIpIDogUVN0cmluZygpLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB0ZXN0RmlsZShxbWxGaWxlKSwgdHJ1ZSk7CisgfQorLS0tIGEvdGVz dHMvYXV0by9xbWwvZGVidWdnZXIvcXFtbHByb2ZpbGVyc2VydmljZS90c3RfcXFtbHByb2ZpbGVy c2VydmljZS5jcHAKKysrKyBiL3Rlc3RzL2F1dG8vcW1sL2RlYnVnZ2VyL3FxbWxwcm9maWxlcnNl cnZpY2UvdHN0X3FxbWxwcm9maWxlcnNlcnZpY2UuY3BwCitAQCAtMjA0LDEwICsyMDQsMTYgQEAg cHJpdmF0ZToKKyAgICAgICAgIENoZWNrVHlwZSA9IENoZWNrTWVzc2FnZVR5cGUgfCBDaGVja0Rl dGFpbFR5cGUgfCBDaGVja0xpbmUgfCBDaGVja0NvbHVtbiB8IENoZWNrRmlsZUVuZHNXaXRoCisg ICAgIH07CisgCisrI2lmZGVmIFFUX0RFQ0xBUkFUSVZFX0JJTl9QQVRICisrI2RlZmluZSBRTUxT Q0VORV9QQVRIIFFUX0RFQ0xBUkFUSVZFX0JJTl9QQVRIICIvcW1sIgorKyNlbHNlCisrI2RlZmlu ZSBRTUxTQ0VORV9QQVRIIFFMaWJyYXJ5SW5mbzo6cGF0aChRTGlicmFyeUluZm86OkJpbmFyaWVz UGF0aCkgKyAiL3FtbHNjZW5lIgorKyNlbmRpZgorKworICAgICBDb25uZWN0UmVzdWx0IGNvbm5l Y3RUbyhib29sIGJsb2NrLCBjb25zdCBRU3RyaW5nICZmaWxlLCBib29sIHJlY29yZEZyb21TdGFy dCA9IHRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50IGZsdXNoSW50ZXJ2YWwg PSAwLCBib29sIHJlc3RyaWN0U2VydmljZXMgPSB0cnVlLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgUVN0cmluZyAmZXhlY3V0YWJsZQorLSAgICAgICAgICAgID0gUUxpYnJhcnlJ bmZvOjpwYXRoKFFMaWJyYXJ5SW5mbzo6QmluYXJpZXNQYXRoKSArICIvcW1sc2NlbmUiKTsKKysg ICAgICAgICAgICA9IFFNTFNDRU5FX1BBVEgpOworICAgICB2b2lkIGNoZWNrUHJvY2Vzc1Rlcm1p bmF0ZWQoKTsKKyAgICAgdm9pZCBjaGVja1RyYWNlUmVjZWl2ZWQoKTsKKyAgICAgdm9pZCBjaGVj a0pzSGVhcCgpOworLS0tIGEvdGVzdHMvYXV0by9xbWwvZGVidWdnZXIvcXFtbGRlYnVnZ2luZ2Vu YWJsZXIvcXFtbGRlYnVnZ2luZ2VuYWJsZXIvdHN0X3FxbWxkZWJ1Z2dpbmdlbmFibGVyLmNwcAor KysrIGIvdGVzdHMvYXV0by9xbWwvZGVidWdnZXIvcXFtbGRlYnVnZ2luZ2VuYWJsZXIvcXFtbGRl YnVnZ2luZ2VuYWJsZXIvdHN0X3FxbWxkZWJ1Z2dpbmdlbmFibGVyLmNwcAorQEAgLTExMCw4ICsx MTAsMTMgQEAgdm9pZCB0c3RfUVFtbERlYnVnZ2luZ0VuYWJsZXI6OnFtbHNjZW5lKAorICAgICBR RkVUQ0goYm9vbCwgYmxvY2tNb2RlKTsKKyAgICAgUUZFVENIKFFTdHJpbmdMaXN0LCBzZXJ2aWNl cyk7CisgCistICAgIG1fcHJvY2VzcyA9IG5ldyBRUW1sRGVidWdQcm9jZXNzKAorLSAgICAgICAg ICAgICAgICBRTGlicmFyeUluZm86OnBhdGgoUUxpYnJhcnlJbmZvOjpCaW5hcmllc1BhdGgpICsg Ii9xbWxzY2VuZSIsIHRoaXMpOworKyNpZmRlZiBRVF9ERUNMQVJBVElWRV9CSU5fUEFUSAorKyAg ICBhdXRvIGV4ZWN1dGFibGUgPSBRVF9ERUNMQVJBVElWRV9CSU5fUEFUSCAiL3FtbHNjZW5lIjsK KysjZWxzZQorKyAgICBhdXRvIGV4ZWN1dGFibGUgPSBRTGlicmFyeUluZm86OnBhdGgoUUxpYnJh cnlJbmZvOjpCaW5hcmllc1BhdGgpICsgIi9xbWxzY2VuZSI7CisrI2VuZGlmCisrCisrICAgIG1f cHJvY2VzcyA9IG5ldyBRUW1sRGVidWdQcm9jZXNzKGV4ZWN1dGFibGUsIHRoaXMpOworICAgICBt X3Byb2Nlc3MtPnNldE1heGltdW1CaW5kRXJyb3JzKDEpOworICAgICBtX3Byb2Nlc3MtPnN0YXJ0 KFFTdHJpbmdMaXN0KCkKKyAgICAgICAgICAgICAgICAgICAgICA8PCBRU3RyaW5nOjpmcm9tTGF0 aW4xKCItcW1sanNkZWJ1Z2dlcj1jb25uZWN0b3I6JTElMiUzJTQiKQorLS0tIGEvdGVzdHMvYXV0 by9xbWwvZGVidWdnZXIvcXFtbGVuZ2luZWNvbnRyb2wvdHN0X3FxbWxlbmdpbmVjb250cm9sLmNw cAorKysrIGIvdGVzdHMvYXV0by9xbWwvZGVidWdnZXIvcXFtbGVuZ2luZWNvbnRyb2wvdHN0X3Fx bWxlbmdpbmVjb250cm9sLmNwcAorQEAgLTkxLDcgKzkxLDEyIEBAIHRzdF9RUW1sRW5naW5lQ29u dHJvbDo6dHN0X1FRbWxFbmdpbmVDb24KKyBRUW1sRGVidWdUZXN0OjpDb25uZWN0UmVzdWx0IHRz dF9RUW1sRW5naW5lQ29udHJvbDo6Y29ubmVjdFRvKGNvbnN0IFFTdHJpbmcgJmZpbGUsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ym9vbCByZXN0cmljdFNlcnZpY2VzKQorIHsKKy0gICAgcmV0dXJuIFFRbWxEZWJ1Z1Rlc3Q6OmNv bm5lY3RUbyhRTGlicmFyeUluZm86OnBhdGgoUUxpYnJhcnlJbmZvOjpCaW5hcmllc1BhdGgpICsg Ii9xbWxzY2VuZSIsCisrI2lmZGVmIFFUX0RFQ0xBUkFUSVZFX0JJTl9QQVRICisrICAgIGF1dG8g ZXhlY3V0YWJsZSA9IFFUX0RFQ0xBUkFUSVZFX0JJTl9QQVRIICIvcW1sc2NlbmUiOworKyNlbHNl CisrICAgIGF1dG8gZXhlY3V0YWJsZSA9IFFMaWJyYXJ5SW5mbzo6cGF0aChRTGlicmFyeUluZm86 OkJpbmFyaWVzUGF0aCkgKyAiL3FtbHNjZW5lIjsKKysjZW5kaWYKKysgICAgcmV0dXJuIFFRbWxE ZWJ1Z1Rlc3Q6OmNvbm5lY3RUbyhleGVjdXRhYmxlLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICByZXN0cmljdFNlcnZpY2VzID8gUVN0cmluZ0xpdGVyYWwoIkVuZ2luZUNvbnRy b2wiKSA6IFFTdHJpbmcoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVz dEZpbGUoZmlsZSksIHRydWUpOworIH0KKy0tLSBhL3Rlc3RzL2F1dG8vcW1sL2RlYnVnZ2VyL3Fx bWxlbmdpbmVkZWJ1Z2luc3BlY3RvcmludGVncmF0aW9udGVzdC90c3RfcXFtbGVuZ2luZWRlYnVn aW5zcGVjdG9yaW50ZWdyYXRpb24uY3BwCisrKysgYi90ZXN0cy9hdXRvL3FtbC9kZWJ1Z2dlci9x cW1sZW5naW5lZGVidWdpbnNwZWN0b3JpbnRlZ3JhdGlvbnRlc3QvdHN0X3FxbWxlbmdpbmVkZWJ1 Z2luc3BlY3RvcmludGVncmF0aW9uLmNwcAorQEAgLTk2LDcgKzk2LDExIEBAIHRzdF9RUW1sRW5n aW5lRGVidWdJbnNwZWN0b3JJbnRlZ3JhdGlvbjoKKyBRUW1sRGVidWdUZXN0OjpDb25uZWN0UmVz dWx0IHRzdF9RUW1sRW5naW5lRGVidWdJbnNwZWN0b3JJbnRlZ3JhdGlvbjo6aW5pdChib29sIHJl c3RyaWN0U2VydmljZXMpCisgeworICAgICByZXR1cm4gUVFtbERlYnVnVGVzdDo6Y29ubmVjdFRv KAorKyNpZmRlZiBRVF9ERUNMQVJBVElWRV9CSU5fUEFUSAorKyAgICAgICAgICAgICAgICBRVF9E RUNMQVJBVElWRV9CSU5fUEFUSCAiL3FtbCIsCisrI2Vsc2UKKyAgICAgICAgICAgICAgICAgUUxp YnJhcnlJbmZvOjpwYXRoKFFMaWJyYXJ5SW5mbzo6QmluYXJpZXNQYXRoKSArICIvcW1sIiwKKysj ZW5kaWYKKyAgICAgICAgICAgICAgICAgcmVzdHJpY3RTZXJ2aWNlcyA/IFFTdHJpbmdMaXRlcmFs KCJRbWxEZWJ1Z2dlcixRbWxJbnNwZWN0b3IiKSA6IFFTdHJpbmcoKSwKKyAgICAgICAgICAgICAg ICAgdGVzdEZpbGUoInF0cXVpY2syLnFtbCIpLCB0cnVlKTsKKyB9CistLS0gYS90ZXN0cy9hdXRv L3FtbC9kZWJ1Z2dlci9xcW1scHJldmlldy90c3RfcXFtbHByZXZpZXcuY3BwCisrKysgYi90ZXN0 cy9hdXRvL3FtbC9kZWJ1Z2dlci9xcW1scHJldmlldy90c3RfcXFtbHByZXZpZXcuY3BwCitAQCAt ODEsNyArODEsMTIgQEAgdHN0X1FRbWxQcmV2aWV3Ojp0c3RfUVFtbFByZXZpZXcoKQorIAorIFFR bWxEZWJ1Z1Rlc3Q6OkNvbm5lY3RSZXN1bHQgdHN0X1FRbWxQcmV2aWV3OjpzdGFydFFtbFByb2Nl c3MoY29uc3QgUVN0cmluZyAmcW1sRmlsZSkKKyB7CistICAgIHJldHVybiBRUW1sRGVidWdUZXN0 Ojpjb25uZWN0VG8oUUxpYnJhcnlJbmZvOjpwYXRoKFFMaWJyYXJ5SW5mbzo6QmluYXJpZXNQYXRo KSArICIvcW1sIiwKKysjaWZkZWYgUVRfREVDTEFSQVRJVkVfQklOX1BBVEgKKysgICAgYXV0byBl eGVjdXRhYmxlID0gUVRfREVDTEFSQVRJVkVfQklOX1BBVEggIi9xbWwiOworKyNlbHNlCisrICAg IGF1dG8gZXhlY3V0YWJsZSA9IFFMaWJyYXJ5SW5mbzo6cGF0aChRTGlicmFyeUluZm86OkJpbmFy aWVzUGF0aCkgKyAiL3FtbCI7CisrI2VuZGlmCisrICAgIHJldHVybiBRUW1sRGVidWdUZXN0Ojpj b25uZWN0VG8oZXhlY3V0YWJsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UVN0cmluZ0xpdGVyYWwoIlFtbFByZXZpZXciKSwgdGVzdEZpbGUocW1sRmlsZSksIHRydWUpOwor IH0KKyAKKy0tLSBhL3Rlc3RzL2F1dG8vcW1sL3FtbGZvcm1hdC90c3RfcW1sZm9ybWF0LmNwcAor KysrIGIvdGVzdHMvYXV0by9xbWwvcW1sZm9ybWF0L3RzdF9xbWxmb3JtYXQuY3BwCitAQCAtODgs NyArODgsMTEgQEAgVGVzdFFtbGZvcm1hdDo6VGVzdFFtbGZvcm1hdCgpCisgdm9pZCBUZXN0UW1s Zm9ybWF0Ojppbml0VGVzdENhc2UoKQorIHsKKyAgICAgUVFtbERhdGFUZXN0Ojppbml0VGVzdENh c2UoKTsKKysjaWZkZWYgUVRfREVDTEFSQVRJVkVfQklOX1BBVEgKKysgICAgbV9xbWxmb3JtYXRQ YXRoID0gUUxhdGluMVN0cmluZyhRVF9ERUNMQVJBVElWRV9CSU5fUEFUSCAiL3FtbGZvcm1hdCIp OworKyNlbHNlCisgICAgIG1fcW1sZm9ybWF0UGF0aCA9IFFMaWJyYXJ5SW5mbzo6cGF0aChRTGli cmFyeUluZm86OkJpbmFyaWVzUGF0aCkgKyBRTGF0aW4xU3RyaW5nKCIvcW1sZm9ybWF0Iik7Cisr I2VuZGlmCisgI2lmZGVmIFFfT1NfV0lOCisgICAgIG1fcW1sZm9ybWF0UGF0aCArPSBRTGF0aW4x U3RyaW5nKCIuZXhlIik7CisgI2VuZGlmCistLS0gYS90ZXN0cy9hdXRvL3FtbC9xbWxpbXBvcnRz Y2FubmVyL3RzdF9xbWxpbXBvcnRzY2FubmVyLmNwcAorKysrIGIvdGVzdHMvYXV0by9xbWwvcW1s aW1wb3J0c2Nhbm5lci90c3RfcW1saW1wb3J0c2Nhbm5lci5jcHAKK0BAIC02Myw4ICs2MywxMiBA QCBUZXN0UW1saW1wb3J0c2Nhbm5lcjo6VGVzdFFtbGltcG9ydHNjYW5uCisgdm9pZCBUZXN0UW1s aW1wb3J0c2Nhbm5lcjo6aW5pdFRlc3RDYXNlKCkKKyB7CisgICAgIFFRbWxEYXRhVGVzdDo6aW5p dFRlc3RDYXNlKCk7CisrI2lmZGVmIFFUX0RFQ0xBUkFUSVZFX0xJQkVYRUNfUEFUSAorKyAgICBt X3FtbGltcG9ydHNjYW5uZXJQYXRoID0gUUxhdGluMVN0cmluZyhRVF9ERUNMQVJBVElWRV9MSUJF WEVDX1BBVEggIi9xbWxpbXBvcnRzY2FubmVyIik7CisrI2Vsc2UKKyAgICAgbV9xbWxpbXBvcnRz Y2FubmVyUGF0aCA9IFFMaWJyYXJ5SW5mbzo6cGF0aChRTGlicmFyeUluZm86OkxpYnJhcnlFeGVj dXRhYmxlc1BhdGgpCisgICAgICAgICAgICAgKyBRTGF0aW4xU3RyaW5nKCIvcW1saW1wb3J0c2Nh bm5lciIpOworKyNlbmRpZgorICNpZmRlZiBRX09TX1dJTgorICAgICBtX3FtbGltcG9ydHNjYW5u ZXJQYXRoICs9IFFMYXRpbjFTdHJpbmcoIi5leGUiKTsKKyAjZW5kaWYKKy0tLSBhL3Rlc3RzL2F1 dG8vcW1sL3FtbGxpbnQvdHN0X3FtbGxpbnQuY3BwCisrKysgYi90ZXN0cy9hdXRvL3FtbC9xbWxs aW50L3RzdF9xbWxsaW50LmNwcAorQEAgLTEzNiwxMSArMTM2LDE3IEBAIFRlc3RRbWxsaW50OjpU ZXN0UW1sbGludCgpCisgdm9pZCBUZXN0UW1sbGludDo6aW5pdFRlc3RDYXNlKCkKKyB7CisgICAg IFFRbWxEYXRhVGVzdDo6aW5pdFRlc3RDYXNlKCk7CisrI2lmZGVmIFFUX0RFQ0xBUkFUSVZFX0JJ Tl9QQVRICisrICAgIG1fcW1sbGludFBhdGggPSBRTGF0aW4xU3RyaW5nKFFUX0RFQ0xBUkFUSVZF X0JJTl9QQVRIICIvcW1sbGludCIpOworKyAgICBtX3FtbGpzcm9vdGdlblBhdGggPSBRTGF0aW4x U3RyaW5nKFFUX0RFQ0xBUkFUSVZFX0JJTl9QQVRIICIvcW1sanNyb290Z2VuIik7CisrICAgIG1f cW1sdHlwZXJlZ2lzdHJhclBhdGggPSBRTGF0aW4xU3RyaW5nKFFUX0RFQ0xBUkFUSVZFX0JJTl9Q QVRIICIvcW1sdHlwZXJlZ2lzdHJhciIpOworKyNlbHNlCisgICAgIG1fcW1sbGludFBhdGggPSBR TGlicmFyeUluZm86OnBhdGgoUUxpYnJhcnlJbmZvOjpCaW5hcmllc1BhdGgpICsgUUxhdGluMVN0 cmluZygiL3FtbGxpbnQiKTsKKyAgICAgbV9xbWxqc3Jvb3RnZW5QYXRoID0gUUxpYnJhcnlJbmZv OjpwYXRoKFFMaWJyYXJ5SW5mbzo6TGlicmFyeUV4ZWN1dGFibGVzUGF0aCkKKyAgICAgICAgICAg ICArIFFMYXRpbjFTdHJpbmcoIi9xbWxqc3Jvb3RnZW4iKTsKKyAgICAgbV9xbWx0eXBlcmVnaXN0 cmFyUGF0aCA9IFFMaWJyYXJ5SW5mbzo6cGF0aChRTGlicmFyeUluZm86OkxpYnJhcnlFeGVjdXRh Ymxlc1BhdGgpCisgICAgICAgICAgICAgKyBRTGF0aW4xU3RyaW5nKCIvcW1sdHlwZXJlZ2lzdHJh ciIpOworKyNlbmRpZgorICNpZmRlZiBRX09TX1dJTgorICAgICBtX3FtbGxpbnRQYXRoICs9IFFM YXRpbjFTdHJpbmcoIi5leGUiKTsKKyAgICAgbV9xbWxqc3Jvb3RnZW5QYXRoICs9IFFMYXRpbjFT dHJpbmcoIi5leGUiKTsKKy0tLSBhL3Rlc3RzL2F1dG8vcW1sL2RlYnVnZ2VyL3FkZWJ1Z21lc3Nh Z2VzZXJ2aWNlL3RzdF9xZGVidWdtZXNzYWdlc2VydmljZS5jcHAKKysrKyBiL3Rlc3RzL2F1dG8v cW1sL2RlYnVnZ2VyL3FkZWJ1Z21lc3NhZ2VzZXJ2aWNlL3RzdF9xZGVidWdtZXNzYWdlc2Vydmlj ZS5jcHAKK0BAIC0xNDMsNyArMTQzLDEyIEBAIHRzdF9RRGVidWdNZXNzYWdlU2VydmljZTo6dHN0 X1FEZWJ1Z01lc3MKKyAKKyB2b2lkIHRzdF9RRGVidWdNZXNzYWdlU2VydmljZTo6cmV0cmlldmVE ZWJ1Z091dHB1dCgpCisgeworLSAgICBRQ09NUEFSRShRUW1sRGVidWdUZXN0Ojpjb25uZWN0VG8o UUxpYnJhcnlJbmZvOjpwYXRoKFFMaWJyYXJ5SW5mbzo6QmluYXJpZXNQYXRoKSArICIvcW1sIiwK KysjaWZkZWYgUVRfREVDTEFSQVRJVkVfQklOX1BBVEgKKysgICAgYXV0byBleGVjdXRhYmxlID0g UVRfREVDTEFSQVRJVkVfQklOX1BBVEggIi9xbWwiOworKyNlbHNlCisrICAgIGF1dG8gZXhlY3V0 YWJsZSA9IFFMaWJyYXJ5SW5mbzo6cGF0aChRTGlicmFyeUluZm86OkJpbmFyaWVzUGF0aCkgKyAi L3FtbCI7CisrI2VuZGlmCisrICAgIFFDT01QQVJFKFFRbWxEZWJ1Z1Rlc3Q6OmNvbm5lY3RUbyhl eGVjdXRhYmxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFTdHJpbmco KSwgdGVzdEZpbGUoUU1MRklMRSksIHRydWUpLCBDb25uZWN0U3VjY2Vzcyk7CisgCisgICAgIFFU UllfVkVSSUZZKG1fY2xpZW50LT5sb2dCdWZmZXIuc2l6ZSgpID49IDIpOworLS0tIGEvdGVzdHMv YXV0by9xbWwvcW1scGx1Z2luZHVtcC90c3RfcW1scGx1Z2luZHVtcC5jcHAKKysrKyBiL3Rlc3Rz L2F1dG8vcW1sL3FtbHBsdWdpbmR1bXAvdHN0X3FtbHBsdWdpbmR1bXAuY3BwCitAQCAtNjIsNyAr NjIsMTEgQEAgdHN0X3FtbHBsdWdpbmR1bXA6OnRzdF9xbWxwbHVnaW5kdW1wKCkKKyB2b2lkIHRz dF9xbWxwbHVnaW5kdW1wOjppbml0VGVzdENhc2UoKQorIHsKKyAgICAgUVFtbERhdGFUZXN0Ojpp bml0VGVzdENhc2UoKTsKKysjaWZkZWYgUVRfREVDTEFSQVRJVkVfQklOX1BBVEgKKysgICAgcW1s cGx1Z2luZHVtcFBhdGggPSBRVF9ERUNMQVJBVElWRV9CSU5fUEFUSDsKKysjZWxzZQorICAgICBx bWxwbHVnaW5kdW1wUGF0aCA9IFFMaWJyYXJ5SW5mbzo6cGF0aChRTGlicmFyeUluZm86OkJpbmFy aWVzUGF0aCk7CisrI2VuZGlmCisgCisgI2lmIGRlZmluZWQoUV9PU19XSU4pCisgICAgIHFtbHBs dWdpbmR1bXBQYXRoICs9IFFMYXRpbjFTdHJpbmcoIi9xbWxwbHVnaW5kdW1wLmV4ZSIpOwpkaWZm IC0tZ2l0IGEvc3JjcGtncy9xdDYtZGVjbGFyYXRpdmUvcGF0Y2hlcy9xbWwtYmxhY2tsaXN0LW1v cmUucGF0Y2ggYi9zcmNwa2dzL3F0Ni1kZWNsYXJhdGl2ZS9wYXRjaGVzL3FtbC1ibGFja2xpc3Qt bW9yZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjJkMjYy OWJmOWRmOQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LWRlY2xhcmF0aXZlL3BhdGNo ZXMvcW1sLWJsYWNrbGlzdC1tb3JlLnBhdGNoCkBAIC0wLDAgKzEsNDggQEAKKy0tLSBhL3Rlc3Rz L2F1dG8vcXVpY2tjb250cm9sczIvY29udHJvbHMvdW5pdmVyc2FsL0JMQUNLTElTVAorKysrIGIv dGVzdHMvYXV0by9xdWlja2NvbnRyb2xzMi9jb250cm9scy91bml2ZXJzYWwvQkxBQ0tMSVNUCitA QCAtNiw1ICs2LDYgQEAKKyAKKyAjIFFUQlVHLTk1NzUwCisgW1JhbmdlU2xpZGVyOjp0ZXN0X292 ZXJsYXBwaW5nSGFuZGxlc10KKyBiMnF0CisgcW54CisrbGludXgKKy0tLSBhL3Rlc3RzL2F1dG8v cXVpY2tjb250cm9sczIvY29udHJvbHMvYmFzaWMvQkxBQ0tMSVNUCisrKysgYi90ZXN0cy9hdXRv L3F1aWNrY29udHJvbHMyL2NvbnRyb2xzL2Jhc2ljL0JMQUNLTElTVAorQEAgLTYsNSArNiw2IEBA CisgCisgIyBRVEJVRy05NTc1MAorIFtSYW5nZVNsaWRlcjo6dGVzdF9vdmVybGFwcGluZ0hhbmRs ZXNdCisgYjJxdAorIHFueAorK2xpbnV4CistLS0gYS90ZXN0cy9hdXRvL3F1aWNrY29udHJvbHMy L2NvbnRyb2xzL2Z1c2lvbi9CTEFDS0xJU1QKKysrKyBiL3Rlc3RzL2F1dG8vcXVpY2tjb250cm9s czIvY29udHJvbHMvZnVzaW9uL0JMQUNLTElTVAorQEAgLTYsNSArNiw2IEBACisgCisgIyBRVEJV Ry05NTc1MAorIFtSYW5nZVNsaWRlcjo6dGVzdF9vdmVybGFwcGluZ0hhbmRsZXNdCisgYjJxdAor IHFueAorK2xpbnV4CistLS0gYS90ZXN0cy9hdXRvL3F1aWNrY29udHJvbHMyL2NvbnRyb2xzL2lt YWdpbmUvQkxBQ0tMSVNUCisrKysgYi90ZXN0cy9hdXRvL3F1aWNrY29udHJvbHMyL2NvbnRyb2xz L2ltYWdpbmUvQkxBQ0tMSVNUCitAQCAtNiw4ICs2LDkgQEAKKyAKKyAjIFFUQlVHLTk1NzUwCisg W1JhbmdlU2xpZGVyOjp0ZXN0X292ZXJsYXBwaW5nSGFuZGxlc10KKyBiMnF0CisgcW54CisrbGlu dXgKKyAKKyAjIFFUQlVHLTEwMTcwNAorIFtUb29sVGlwOjp0ZXN0X2F0dGFjaGVkU2l6ZUJ1Z10K Ky0tLSBhL3Rlc3RzL2F1dG8vcXVpY2tjb250cm9sczIvY29udHJvbHMvbWF0ZXJpYWwvQkxBQ0tM SVNUCisrKysgYi90ZXN0cy9hdXRvL3F1aWNrY29udHJvbHMyL2NvbnRyb2xzL21hdGVyaWFsL0JM QUNLTElTVAorQEAgLTYsNSArNiw2IEBACisgCisgIyBRVEJVRy05NTc1MAorIFtSYW5nZVNsaWRl cjo6dGVzdF9vdmVybGFwcGluZ0hhbmRsZXNdCisgYjJxdAorIHFueAorK2xpbnV4CmRpZmYgLS1n aXQgYS9zcmNwa2dzL3F0Ni1kZWNsYXJhdGl2ZS9wYXRjaGVzL3FtbC1icm9rZW4tdGVzdC5wYXRj aCBiL3NyY3BrZ3MvcXQ2LWRlY2xhcmF0aXZlL3BhdGNoZXMvcW1sLWJyb2tlbi10ZXN0LnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNGQ0NGU5MGI2NzhjCi0t LSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtZGVjbGFyYXRpdmUvcGF0Y2hlcy9xbWwtYnJv a2VuLXRlc3QucGF0Y2gKQEAgLTAsMCArMSw2NCBAQAorLS0tIGEvdGVzdHMvYXV0by9xdWlja2Nv bnRyb2xzMi9jb250cm9scy9kYXRhL3RzdF9yYW5nZXNsaWRlci5xbWwKKysrKyBiL3Rlc3RzL2F1 dG8vcXVpY2tjb250cm9sczIvY29udHJvbHMvZGF0YS90c3RfcmFuZ2VzbGlkZXIucW1sCitAQCAt NjQ5LDYxICs2NDksNiBAQCBUZXN0Q2FzZSB7CisgICAgIH0KKyAKKyAgICAgZnVuY3Rpb24gdGVz dF9vdmVybGFwcGluZ0hhbmRsZXMoKSB7CistICAgICAgICB2YXIgY29udHJvbCA9IGNyZWF0ZVRl bXBvcmFyeU9iamVjdChzbGlkZXJDb21wb25lbnQsIHRlc3RDYXNlKQorLSAgICAgICAgdmVyaWZ5 KGNvbnRyb2wpCistCistICAgICAgICAvLyBCeSBkZWZhdWx0LCB3ZSBmb3JjZSB0aGUgc2Vjb25k IGhhbmRsZSB0byBiZSBhZnRlciB0aGUgZmlyc3QgaW4KKy0gICAgICAgIC8vIHRlcm1zIG9mIHN0 YWNraW5nIG9yZGVyICphbmQqIHogdmFsdWUuCistICAgICAgICBjb21wYXJlKGNvbnRyb2wuc2Vj b25kLmhhbmRsZS56LCAxKQorLSAgICAgICAgY29tcGFyZShjb250cm9sLmZpcnN0LmhhbmRsZS56 LCAwKQorLSAgICAgICAgY29udHJvbC5maXJzdC52YWx1ZSA9IDAKKy0gICAgICAgIGNvbnRyb2wu c2Vjb25kLnZhbHVlID0gMAorLQorLSAgICAgICAgLy8gV2hlbiBib3RoIGhhbmRsZXMgb3Zlcmxh cCwgb25seSB0aGUgaGFuZGxlIHdpdGggdGhlIGhpZ2hlciBaIHZhbHVlCistICAgICAgICAvLyBz aG91bGQgYmUgaG92ZXJlZC4KKy0gICAgICAgIG1vdXNlTW92ZShjb250cm9sLCBjb250cm9sLnNl Y29uZC5oYW5kbGUueCwgY29udHJvbC5zZWNvbmQuaGFuZGxlLnkpCistICAgICAgICBjb21wYXJl KGNvbnRyb2wuc2Vjb25kLmhvdmVyZWQsIHRydWUpCistICAgICAgICBjb21wYXJlKGNvbnRyb2wu Zmlyc3QuaG92ZXJlZCwgZmFsc2UpCistCistICAgICAgICAvLyBCb3RoIGFyZSBhdCB0aGUgc2Ft ZSBwb3NpdGlvbiwgc28gaXQgZG9lc24ndCBtYXR0ZXIgd2hvc2UgY29vcmRpbmF0ZXMgd2UgdXNl LgorLSAgICAgICAgbW91c2VQcmVzcyhjb250cm9sLCBjb250cm9sLmZpcnN0LmhhbmRsZS54LCBj b250cm9sLmZpcnN0LmhhbmRsZS55LCBRdC5MZWZ0QnV0dG9uKQorLSAgICAgICAgdmVyaWZ5KGNv bnRyb2wuc2Vjb25kLnByZXNzZWQpCistICAgICAgICBjb21wYXJlKGNvbnRyb2wuc2Vjb25kLmhh bmRsZS56LCAxKQorLSAgICAgICAgY29tcGFyZShjb250cm9sLmZpcnN0LmhhbmRsZS56LCAwKQor LQorLSAgICAgICAgLy8gTW92ZSB0aGUgc2Vjb25kIGhhbmRsZSBvdXQgb2YgdGhlIHdheS4KKy0g ICAgICAgIG1vdXNlTW92ZShjb250cm9sLCBjb250cm9sLndpZHRoLCBjb250cm9sLmZpcnN0Lmhh bmRsZS55KQorLSAgICAgICAgbW91c2VSZWxlYXNlKGNvbnRyb2wsIGNvbnRyb2wud2lkdGgsIGNv bnRyb2wuZmlyc3QuaGFuZGxlLnksIFF0LkxlZnRCdXR0b24pCistICAgICAgICB2ZXJpZnkoIWNv bnRyb2wuc2Vjb25kLnByZXNzZWQpCistICAgICAgICBjb21wYXJlKGNvbnRyb2wuc2Vjb25kLnZh bHVlLCAxLjApCistICAgICAgICBjb21wYXJlKGNvbnRyb2wuc2Vjb25kLmhhbmRsZS56LCAxKQor LSAgICAgICAgY29tcGFyZShjb250cm9sLmZpcnN0LmhhbmRsZS56LCAwKQorLQorLSAgICAgICAg Ly8gVGhlIGZpcnN0IGhhbmRsZSBzaG91bGQgbm90IGJlIGhvdmVyZWQuCistICAgICAgICBjb21w YXJlKGNvbnRyb2wuZmlyc3QuaG92ZXJlZCwgZmFsc2UpCistCistICAgICAgICAvLyBNb3ZlIHRo ZSBmaXJzdCBoYW5kbGUgb24gdG9wIG9mIHRoZSBzZWNvbmQuCistICAgICAgICBtb3VzZVByZXNz KGNvbnRyb2wsIGNvbnRyb2wuZmlyc3QuaGFuZGxlLngsIGNvbnRyb2wuZmlyc3QuaGFuZGxlLnks IFF0LkxlZnRCdXR0b24pCistICAgICAgICB2ZXJpZnkoY29udHJvbC5maXJzdC5wcmVzc2VkKQor LSAgICAgICAgY29tcGFyZShjb250cm9sLmZpcnN0LmhhbmRsZS56LCAxKQorLSAgICAgICAgY29t cGFyZShjb250cm9sLnNlY29uZC5oYW5kbGUueiwgMCkKKy0KKy0gICAgICAgIG1vdXNlTW92ZShj b250cm9sLCBjb250cm9sLndpZHRoLCBjb250cm9sLmZpcnN0LmhhbmRsZS55KQorLSAgICAgICAg bW91c2VSZWxlYXNlKGNvbnRyb2wsIGNvbnRyb2wud2lkdGgsIGNvbnRyb2wuZmlyc3QuaGFuZGxl LnksIFF0LkxlZnRCdXR0b24pCistICAgICAgICB2ZXJpZnkoIWNvbnRyb2wuZmlyc3QucHJlc3Nl ZCkKKy0gICAgICAgIGNvbXBhcmUoY29udHJvbC5maXJzdC5oYW5kbGUueiwgMSkKKy0gICAgICAg IGNvbXBhcmUoY29udHJvbC5zZWNvbmQuaGFuZGxlLnosIDApCistCistICAgICAgICAvLyBUaGUg bW9zdCByZWNlbnRseSBwcmVzc2VkIGhhbmRsZSAodGhlIGZpcnN0KSBzaG91bGQgaGF2ZSB0aGUg aGlnaGVyIHogdmFsdWUuCistICAgICAgICBtb3VzZVByZXNzKGNvbnRyb2wsIGNvbnRyb2wuZmly c3QuaGFuZGxlLngsIGNvbnRyb2wuZmlyc3QuaGFuZGxlLnksIFF0LkxlZnRCdXR0b24pCistICAg ICAgICB2ZXJpZnkoY29udHJvbC5maXJzdC5wcmVzc2VkKQorLSAgICAgICAgY29tcGFyZShjb250 cm9sLmZpcnN0LmhhbmRsZS56LCAxKQorLSAgICAgICAgY29tcGFyZShjb250cm9sLnNlY29uZC5o YW5kbGUueiwgMCkKKy0KKy0gICAgICAgIG1vdXNlUmVsZWFzZShjb250cm9sLCBjb250cm9sLmZp cnN0LmhhbmRsZS54LCBjb250cm9sLmZpcnN0LmhhbmRsZS55LCBRdC5MZWZ0QnV0dG9uKQorLSAg ICAgICAgdmVyaWZ5KCFjb250cm9sLmZpcnN0LnByZXNzZWQpCistICAgICAgICBjb21wYXJlKGNv bnRyb2wuZmlyc3QuaGFuZGxlLnosIDEpCistICAgICAgICBjb21wYXJlKGNvbnRyb2wuc2Vjb25k LmhhbmRsZS56LCAwKQorICAgICB9CisgCisgICAgIGZ1bmN0aW9uIHRlc3Rfa2V5c19kYXRhKCkg ewpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtZGVjbGFyYXRpdmUvdGVtcGxhdGUgYi9zcmNwa2dz L3F0Ni1kZWNsYXJhdGl2ZS90ZW1wbGF0ZQppbmRleCBlMGJkMjhkOWUzODMuLjhhMTkwZGZjMzVi YyAxMDA2NDQKLS0tIGEvc3JjcGtncy9xdDYtZGVjbGFyYXRpdmUvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9xdDYtZGVjbGFyYXRpdmUvdGVtcGxhdGUKQEAgLTEsMjMgKzEsMjIgQEAKICMgVGVtcGxh dGUgZmlsZSBmb3IgJ3F0Ni1kZWNsYXJhdGl2ZScKIHBrZ25hbWU9cXQ2LWRlY2xhcmF0aXZlCi12 ZXJzaW9uPTYuMy4wCit2ZXJzaW9uPTYuMy4xCiByZXZpc2lvbj0xCiB3cmtzcmM9InF0ZGVjbGFy YXRpdmUtZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPWNtYWtlCi1jb25m aWd1cmVfYXJncz0iIC1EUVRfSE9TVF9QQVRIPS91c3IiCiBob3N0bWFrZWRlcGVuZHM9InF0Ni1i YXNlLWRldmVsIHBlcmwgcGtnLWNvbmZpZyB3YXlsYW5kLWRldmVsCiAgcXQ2LXNoYWRlcnRvb2xz LWRldmVsIgotbWFrZWRlcGVuZHM9InF0Ni1iYXNlLWRldmVsIFZ1bGthbi1IZWFkZXJzIgorbWFr ZWRlcGVuZHM9InF0Ni1iYXNlLWRldmVsIFZ1bGthbi1IZWFkZXJzIHF0Ni1zaGFkZXJ0b29scy1k ZXZlbCIKIHNob3J0X2Rlc2M9IkNyb3NzLXBsYXRmb3JtIGFwcGxpY2F0aW9uIGFuZCBVSSBmcmFt ZXdvcmsgLSBEZWNsYXJhdGl2ZSIKIG1haW50YWluZXI9IkpvaG4gPG1lQGpvaG5ueW5hdG9yLmRl dj4iCiBsaWNlbnNlPSJHUEwtMy4wLW9ubHkgd2l0aCBRdC1HUEwtZXhjZXB0aW9uLTEuMCwgTEdQ TC0zLjAtb25seSwgR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3d3dy5xdC5p byIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9kb3dubG9hZC5xdC5pby9vZmZpY2lhbF9yZWxlYXNlcy9x dC8ke3ZlcnNpb24lLip9LyR7dmVyc2lvbn0vc3VibW9kdWxlcy9xdGRlY2xhcmF0aXZlLWV2ZXJ5 d2hlcmUtc3JjLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZDI5NGIwMjlkYzJiMmQ0ZjY1 ZGE1MTZmZGMzYjgwODhkMzI2NDNlYjdmZjc3ZGIxMzVhOGI5Y2U5MDRjYWEzNworY2hlY2tzdW09 MDNlNzY5NDEyMzgyMGZjY2EzOTdmOTVjZTMxMmUwYjdmMzAzOTQ5M2M4NzU0YzgzNmRhMDk4YTFh MDQzNDZlOAogcmVwbGFjZXM9InF0Ni1xdWlja2NvbnRyb2xzMj49MCIKIAogaWYgWyAiJENST1NT X0JVSUxEIiBdOyB0aGVuCi0JY29uZmlndXJlX2FyZ3MrPSIgLURRVF9CVUlMRF9UT09MU19XSEVO X0NST1NTQ09NUElMSU5HPXRydWUiCisJY29uZmlndXJlX2FyZ3M9Ii1EUVRfQlVJTERfVE9PTFNf V0hFTl9DUk9TU0NPTVBJTElORz10cnVlIgogCWhvc3RtYWtlZGVwZW5kcys9IiBxdDYtZGVjbGFy YXRpdmUtZGV2ZWwiCiBmaQogCkBAIC0yOSwxMyArMjgsMzEgQEAgaWYgWyAiJFhCUFNfVEFSR0VU X0VORElBTiIgPSAiYmUiIF07IHRoZW4KIAlicm9rZW49InNoYWRlciBjb21waWxhdGlvbiBmYWls cyIKIGZpCiAKK3ByZV9jb25maWd1cmUoKSB7CisJQ1hYRkxBR1MrPSIgJy1EUVRfREVDTEFSQVRJ VkVfQklOX1BBVEg9XCIke3dya3NyY30vYnVpbGQvbGliL3F0Ni9iaW5cIiciCisJQ1hYRkxBR1Mr PSIgJy1EUVRfREVDTEFSQVRJVkVfTElCRVhFQ19QQVRIPVwiJHt3cmtzcmN9L2J1aWxkL2xpYi9x dDYvbGliZXhlY1wiJyIKK30KKwogcHJlX2NoZWNrKCkgewogCWV4cG9ydCBRTUwyX0lNUE9SVF9Q QVRIPSIkd3Jrc3JjL2J1aWxkL2xpYi9xdDYvcW1sIgogfQogCiBkb19jaGVjaygpIHsKIAljZCBi dWlsZAotCWN0ZXN0IC1FICcodHN0X3FxbWxsb2NhbGV8dGV4dHx0c3RfcXF1aWNrd2lkZ2V0KScK Kwlsb2NhbCBicm9rZW49InRzdF9xcW1sbG9jYWxlfHRleHR8dHN0X3FxdWlja3dpZGdldCIKKwkj IHJlcXVpcmVzIHF0Ni1kZWNsYXJhdGl2ZSBpbnN0YWxsZWQKKwlicm9rZW4rPSJ8bW9kdWxlX2lu Y2x1ZGVzfGNtYWtlX3Rvb2xpbmdfaW1wb3J0c3xlbXB0eV9xbWxkaXIiCisJYnJva2VuKz0ifHF0 cXVpY2tjb21waWxlcnxxbWxxdWVyeSIKKwkjIENvdWxkIHdvcmsgaWYgUXQ2UXVpY2suc28uNiBj b3VsZCBiZSBmb3VuZCBieSBxbWwKKwlicm9rZW4rPSJ8dHN0X3FxbWxkZWJ1Z2pzfHRzdF9xcW1s aW5zcGVjdG9yIgorCWJyb2tlbis9Inx0c3RfcXFtbHByb2ZpbGVyc2VydmljZXx0c3RfcXFtbGpz c2NvcGUiCisJYnJva2VuKz0ifHRzdF9xcW1scHJldmlld3x0c3RfcW1sbGludHx0c3RfcW1sZm9y bWF0IgorCSMgY2FuJ3QgZmluZCB0aGUgc291cmNlCisJYnJva2VuKz0ifHRzdF9xbWx0Y19xcHJv Y2VzcyIKKwlicm9rZW4rPSJ8dHN0X3FxdWlja2ZpbGVkaWFsb2dpbXBsIgorCWJyb2tlbis9Inx0 c3RfcXF1aWNrZm9sZGVyZGlhbG9naW1wbCIKKwlicm9rZW4rPSJ8dHN0X3FtbGltcG9ydHNjYW5u ZXJ8dHN0X3FxbWxleHRlbnNpb25wbHVnaW4iCisJY3Rlc3QgLUUgIigkYnJva2VuKSIKIH0KIAog cXQ2LWRlY2xhcmF0aXZlLXRvb2xzX3BhY2thZ2UoKSB7CkBAIC02MCwxMSArNzcsMTQgQEAgcXQ2 LWRlY2xhcmF0aXZlLWRldmVsX3BhY2thZ2UoKSB7CiAJcGtnX2luc3RhbGwoKSB7CiAJCXZtb3Zl IHVzci9pbmNsdWRlCiAJCXZtb3ZlIHVzci9saWIvY21ha2UKKwkJdm1vdmUgdXNyL2xpYi9tZXRh dHlwZXMKKwkJdm1vdmUgdXNyL2xpYi9wa2djb25maWcKIAkJdm1vdmUgdXNyL2xpYi9xdDYvbWtz cGVjcwogCQl2bW92ZSAidXNyL2xpYi9saWJRdDZRdWlja1Rlc3Quc28uKiIKIAkJdm1vdmUgdXNy L2xpYi9xdDYvcW1sL1F0VGVzdAogCQl2bW92ZSB1c3IvbGliL3F0Ni9iaW4vcW1sdGVzdHJ1bm5l cgogCQl2bW92ZSAidXNyL2xpYi8qLnNvIgogCQl2bW92ZSAidXNyL2xpYi8qLnBybCIKKwkJdm1v dmUgdXNyL3NoYXJlL3F0Ni9tb2R1bGVzCiAJfQogfQoKRnJvbSA2MmZmOTRhYWNiNjM0YzRjMThk MDg5MjkwOGE4ZjUxYzY4ZTFhNjZmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VU Ri04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249MjBDPUMzPUI0bmc9MjBEYW5oPz0K IDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCA4IEF1ZyAyMDIyIDE3OjEzOjA3ICsw NzAwClN1YmplY3Q6IFtQQVRDSCAwNC8yNl0gcXQ2LWltYWdlZm9ybWF0czogdXBkYXRlIHRvIDYu My4xLgoKLS0tCiBzcmNwa2dzL3F0Ni1pbWFnZWZvcm1hdHMvdGVtcGxhdGUgfCA1ICsrLS0tCiAx IGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvcXQ2LWltYWdlZm9ybWF0cy90ZW1wbGF0ZSBiL3NyY3BrZ3MvcXQ2LWltYWdl Zm9ybWF0cy90ZW1wbGF0ZQppbmRleCBlYWNhOTUyNDNjNDguLjlmNmQyZmI2Njc3NiAxMDA2NDQK LS0tIGEvc3JjcGtncy9xdDYtaW1hZ2Vmb3JtYXRzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcXQ2 LWltYWdlZm9ybWF0cy90ZW1wbGF0ZQpAQCAtMSwxMCArMSw5IEBACiAjIFRlbXBsYXRlIGZpbGUg Zm9yICdxdDYtaW1hZ2Vmb3JtYXRzJwogcGtnbmFtZT1xdDYtaW1hZ2Vmb3JtYXRzCi12ZXJzaW9u PTYuMy4wCit2ZXJzaW9uPTYuMy4xCiByZXZpc2lvbj0xCiB3cmtzcmM9InF0aW1hZ2Vmb3JtYXRz LWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0iCiBidWlsZF9zdHlsZT1jbWFrZQotY29uZmlndXJl X2FyZ3M9Ii1EUVRfSE9TVF9QQVRIPS91c3IiCiBob3N0bWFrZWRlcGVuZHM9InBlcmwgcXQ2LWJh c2UtZGV2ZWwiCiBtYWtlZGVwZW5kcz0icXQ2LWJhc2UtZGV2ZWwiCiBzaG9ydF9kZXNjPSJDcm9z cy1wbGF0Zm9ybSBhcHBsaWNhdGlvbiBhbmQgVUkgZnJhbWV3b3JrIC0gaW1hZ2Vmb3JtYXRzIgpA QCAtMTIsNCArMTEsNCBAQCBtYWludGFpbmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+Igog bGljZW5zZT0iTEdQTC0zLjAtb25seSBPUiBHUEwtMi4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5Igog aG9tZXBhZ2U9Imh0dHBzOi8vcXQuaW8vIgogZGlzdGZpbGVzPSJodHRwOi8vZG93bmxvYWQucXQu aW8vb2ZmaWNpYWxfcmVsZWFzZXMvcXQvJHt2ZXJzaW9uJS4qfS8ke3ZlcnNpb259L3N1Ym1vZHVs ZXMvcXRpbWFnZWZvcm1hdHMtZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVj a3N1bT0wMjVkMGQxN2VkNzViNDJhN2ViNmI1MjM3MzFhYjhmMTcwMjU0MjFhODgxMGNhZGUyNWNh ZmZlMDVkOTNhYmVmCitjaGVja3N1bT1hZDAzMTJiOGRmYmJiNjdmNzI5YmZhZGJmY2Q0NzI0NmVl NGExMjhiNzE3NzMxYmExNThjNDFkMDFmZGUyMTJmCgpGcm9tIDIwYzRjZDBhMjk0M2Q0ZDg1MmY4 YzYyMDM4ZWEwMDVhMjhiMjg2NDcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRG LTg/cT89QzQ9OTBvPUMzPUEwbj0yMFRyPUUxPUJBPUE3bj0yMEM9QzM9QjRuZz0yMERhbmg/PQog PGNvbmdkYW5ocXhAZ21haWwuY29tPgpEYXRlOiBNb24sIDggQXVnIDIwMjIgMTc6MTM6MDcgKzA3 MDAKU3ViamVjdDogW1BBVENIIDA1LzI2XSBxdDYtbG9jYXRpb246IHVwZGF0ZSB0byA2LjMuMS4K Ci0tLQogc3JjcGtncy9xdDYtbG9jYXRpb24vcGF0Y2hlcy9uby1jbWFrZS10ZXN0LnBhdGNoIHwg MTAgKysrKysrKysrKwogc3JjcGtncy9xdDYtbG9jYXRpb24vdGVtcGxhdGUgICAgICAgICAgICAg ICAgICAgIHwgMTIgKysrKysrKysrLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDE5IGluc2VydGlvbnMo KyksIDMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtbG9jYXRp b24vcGF0Y2hlcy9uby1jbWFrZS10ZXN0LnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYt bG9jYXRpb24vcGF0Y2hlcy9uby1jbWFrZS10ZXN0LnBhdGNoIGIvc3JjcGtncy9xdDYtbG9jYXRp b24vcGF0Y2hlcy9uby1jbWFrZS10ZXN0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwMC4uYzY3NzBmYjE0ZDNhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9x dDYtbG9jYXRpb24vcGF0Y2hlcy9uby1jbWFrZS10ZXN0LnBhdGNoCkBAIC0wLDAgKzEsMTAgQEAK Ky0tLSBhL3Rlc3RzL2F1dG8vQ01ha2VMaXN0cy50eHQKKysrKyBiL3Rlc3RzL2F1dG8vQ01ha2VM aXN0cy50eHQKK0BAIC0xOSw3ICsxOSw2IEBAIGFkZF9zdWJkaXJlY3RvcnkocWdlb3Bvc2l0aW9u aW5mb3NvdXJjZSkKKyBhZGRfc3ViZGlyZWN0b3J5KHFnZW9zYXRlbGxpdGVpbmZvc291cmNlKQor IGFkZF9zdWJkaXJlY3RvcnkocW5tZWFwb3NpdGlvbmluZm9zb3VyY2UpCisgYWRkX3N1YmRpcmVj dG9yeShxbm1lYXNhdGVsbGl0ZWluZm9zb3VyY2UpCistYWRkX3N1YmRpcmVjdG9yeShjbWFrZSkK KyBpZihUQVJHRVQgUXQ6OlF1aWNrKQorICAgICBhZGRfc3ViZGlyZWN0b3J5KGR1bW15cG9zaXRp b25wbHVnaW4pCisgICAgIGFkZF9zdWJkaXJlY3RvcnkoZGVjbGFyYXRpdmVfcG9zaXRpb25pbmdf Y29yZSkKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LWxvY2F0aW9uL3RlbXBsYXRlIGIvc3JjcGtn cy9xdDYtbG9jYXRpb24vdGVtcGxhdGUKaW5kZXggYjczOTdmNWY4OTQyLi5mMGZkMzg1YjdhYzcg MTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcXQ2LWxvY2F0aW9uL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mv cXQ2LWxvY2F0aW9uL3RlbXBsYXRlCkBAIC0xLDEwICsxLDkgQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ3F0Ni1sb2NhdGlvbicKIHBrZ25hbWU9cXQ2LWxvY2F0aW9uCi12ZXJzaW9uPTYuMy4wCit2 ZXJzaW9uPTYuMy4xCiByZXZpc2lvbj0xCiB3cmtzcmM9InF0cG9zaXRpb25pbmctZXZlcnl3aGVy ZS1zcmMtJHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPWNtYWtlCi1jb25maWd1cmVfYXJncz0iLURR VF9IT1NUX1BBVEg9L3VzciIKIGhvc3RtYWtlZGVwZW5kcz0icGVybCBxdDYtYmFzZS1kZXZlbCBx dDYtZGVjbGFyYXRpdmUtZGV2ZWwiCiBtYWtlZGVwZW5kcz0icXQ2LXNlcmlhbHBvcnQtZGV2ZWwg cXQ2LWRlY2xhcmF0aXZlLWRldmVsIEdDb25mLWRldmVsIgogc2hvcnRfZGVzYz0iQ3Jvc3MtcGxh dGZvcm0gYXBwbGljYXRpb24gYW5kIFVJIGZyYW1ld29yayAtIGxvY2F0aW9uIgpAQCAtMTIsNyAr MTEsMTEgQEAgbWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKIGxpY2Vuc2U9 IihMR1BMLTMuMC1vbmx5IE9SIEdQTC0yLjAtb25seSBPUiBHUEwtMy4wLW9ubHkpIEFORCBHUEwt My4wLW9ubHkgd2l0aCBRdC1HUEwtZXhjZXB0aW9uLTEuMCIKIGhvbWVwYWdlPSJodHRwczovL3F0 LmlvLyIKIGRpc3RmaWxlcz0iaHR0cDovL2Rvd25sb2FkLnF0LmlvL29mZmljaWFsX3JlbGVhc2Vz L3F0LyR7dmVyc2lvbiUuKn0vJHt2ZXJzaW9ufS9zdWJtb2R1bGVzL3F0cG9zaXRpb25pbmctZXZl cnl3aGVyZS1zcmMtJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1lOWVkNTBmNmIyNDVhMzQ2 ZGIzNGQ2MjVkMDAxMjc3NGVmMGVjOGU3ZmQ2NTAzNzEyN2VjMjY3NTg3MDgyMzZlCitjaGVja3N1 bT0wNjc4OGU0ZWNhZTE5MjAwOTRiMzBlNDA0NmYwYWJkMjNjODE4OWQ4YTUxZTljOTM5YjAyZjBi NmFiZTJlODZjCisKK3ByZV9jaGVjaygpIHsKKwlleHBvcnQgUU1MMl9JTVBPUlRfUEFUSD0iJHdy a3NyYy9idWlsZC9saWIvcXQ2L3FtbCIKK30KIAogcXQ2LWxvY2F0aW9uLWRldmVsX3BhY2thZ2Uo KSB7CiAJZGVwZW5kcz0iJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IHF0Ni1i YXNlLWRldmVsPj0ke3ZlcnNpb259XzEiCkBAIC0yMCw4ICsyMywxMSBAQCBxdDYtbG9jYXRpb24t ZGV2ZWxfcGFja2FnZSgpIHsKIAlwa2dfaW5zdGFsbCgpIHsKIAkJdm1vdmUgdXNyL2luY2x1ZGUK IAkJdm1vdmUgdXNyL2xpYi9jbWFrZQorCQl2bW92ZSB1c3IvbGliL21ldGF0eXBlcworCQl2bW92 ZSB1c3IvbGliL3BrZ2NvbmZpZwogCQl2bW92ZSB1c3IvbGliL3F0Ni9ta3NwZWNzCiAJCXZtb3Zl ICJ1c3IvbGliLyouc28iCiAJCXZtb3ZlICJ1c3IvbGliLyoucHJsIgorCQl2bW92ZSB1c3Ivc2hh cmUvcXQ2L21vZHVsZXMKIAl9CiB9CgpGcm9tIGU5YjQ4Y2M1YjRjZTg2YjQ1ZDM0ZjkyYzFmMGU0 NGYzMmU0MmI3M2MgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT89QzQ9 OTBvPUMzPUEwbj0yMFRyPUUxPUJBPUE3bj0yMEM9QzM9QjRuZz0yMERhbmg/PQogPGNvbmdkYW5o cXhAZ21haWwuY29tPgpEYXRlOiBNb24sIDggQXVnIDIwMjIgMTc6MTM6MDggKzA3MDAKU3ViamVj dDogW1BBVENIIDA2LzI2XSBxdDYtbG90dGllOiB1cGRhdGUgdG8gNi4zLjEuCgotLS0KIHNyY3Br Z3MvcXQ2LWxvdHRpZS90ZW1wbGF0ZSB8IDkgKysrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgNSBp bnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LWxv dHRpZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvcXQ2LWxvdHRpZS90ZW1wbGF0ZQppbmRleCAxYzk3Y2Q1 ZjRmMzIuLmE3YmViNjJlYzM2OCAxMDA2NDQKLS0tIGEvc3JjcGtncy9xdDYtbG90dGllL3RlbXBs YXRlCisrKyBiL3NyY3BrZ3MvcXQ2LWxvdHRpZS90ZW1wbGF0ZQpAQCAtMSwxMCArMSw5IEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICdxdDYtbG90dGllJwogcGtnbmFtZT1xdDYtbG90dGllCi12ZXJz aW9uPTYuMy4wCit2ZXJzaW9uPTYuMy4xCiByZXZpc2lvbj0xCiB3cmtzcmM9InF0bG90dGllLWV2 ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0iCiBidWlsZF9zdHlsZT1jbWFrZQotY29uZmlndXJlX2Fy Z3M9Ii1EUVRfSE9TVF9QQVRIPS91c3IiCiBob3N0bWFrZWRlcGVuZHM9InBlcmwgcXQ2LWJhc2Ut ZGV2ZWwiCiBtYWtlZGVwZW5kcz0icXQ2LWRlY2xhcmF0aXZlLWRldmVsIgogc2hvcnRfZGVzYz0i Q3Jvc3MtcGxhdGZvcm0gYXBwbGljYXRpb24gYW5kIFVJIGZyYW1ld29yayAtIGxvdHRpZSIKQEAg LTEyLDEwICsxMSwxMCBAQCBtYWludGFpbmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+Igog bGljZW5zZT0iR1BMLTMuMC1vbmx5IgogaG9tZXBhZ2U9Imh0dHBzOi8vcXQuaW8vIgogZGlzdGZp bGVzPSJodHRwOi8vZG93bmxvYWQucXQuaW8vb2ZmaWNpYWxfcmVsZWFzZXMvcXQvJHt2ZXJzaW9u JS4qfS8ke3ZlcnNpb259L3N1Ym1vZHVsZXMvcXRsb3R0aWUtZXZlcnl3aGVyZS1zcmMtJHt2ZXJz aW9ufS50YXIueHoiCi1jaGVja3N1bT0zOWRiNTcwYmJiYTViNTI3YTFlYjZhNTc3NGJlZDQ3Mzk4 YWNlMmY3MjE3YmJmNDViMTE5NGFkYTZjZjk3ZGViCitjaGVja3N1bT03NDBiYTc2OTk5MTI0ZDVl MWE4NWVmM2QwMWM2OTk3NmJiODU1Nzg2MmI2YjI2YmY0OGIzNTdmZTBjYWIxY2Y1CiAKIGlmIFsg IiRYQlBTX0NIRUNLX1BLR1MiIF07IHRoZW4KLQljb25maWd1cmVfYXJncys9IiAtRFFUX0JVSUxE X1RFU1RTPU9OIgorCWNvbmZpZ3VyZV9hcmdzPSItRFFUX0JVSUxEX1RFU1RTPU9OIgogZmkKIAog cHJlX2NoZWNrKCkgewpAQCAtMjgsOCArMjcsMTAgQEAgcXQ2LWxvdHRpZS1kZXZlbF9wYWNrYWdl KCkgewogCXBrZ19pbnN0YWxsKCkgewogCQl2bW92ZSB1c3IvaW5jbHVkZQogCQl2bW92ZSB1c3Iv bGliL2NtYWtlCisJCXZtb3ZlIHVzci9saWIvbWV0YXR5cGVzCiAJCXZtb3ZlIHVzci9saWIvcXQ2 L21rc3BlY3MKIAkJdm1vdmUgInVzci9saWIvKi5zbyIKIAkJdm1vdmUgInVzci9saWIvKi5wcmwi CisJCXZtb3ZlIHVzci9zaGFyZS9xdDYvbW9kdWxlcwogCX0KIH0KCkZyb20gNTAxMzFiNzQ4ZDQz MTljNGUwZDg5YTg3OGIwMDUxNjY1NDFmYTVkNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogPT9VVEYtOD9xPz1DND05MG89QzM9QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIw RGFuaD89CiA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+CkRhdGU6IE1vbiwgOCBBdWcgMjAyMiAxNzox MzowOCArMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDcvMjZdIHF0Ni1uZXR3b3JrYXV0aDogdXBkYXRl IHRvIDYuMy4xLgoKLS0tCiBzcmNwa2dzL3F0Ni1uZXR3b3JrYXV0aC90ZW1wbGF0ZSB8IDEwICsr KysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtbmV0d29ya2F1dGgvdGVtcGxhdGUgYi9zcmNwa2dz L3F0Ni1uZXR3b3JrYXV0aC90ZW1wbGF0ZQppbmRleCBlOTM0YmVhZGE5YjAuLjE0NTRjZWI0YTUy NSAxMDA2NDQKLS0tIGEvc3JjcGtncy9xdDYtbmV0d29ya2F1dGgvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9xdDYtbmV0d29ya2F1dGgvdGVtcGxhdGUKQEAgLTEsMTAgKzEsOSBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAncXQ2LW5ldHdvcmthdXRoJwogcGtnbmFtZT1xdDYtbmV0d29ya2F1dGgKLXZl cnNpb249Ni4zLjAKK3ZlcnNpb249Ni4zLjEKIHJldmlzaW9uPTEKIHdya3NyYz0icXRuZXR3b3Jr YXV0aC1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9Y21ha2UKLWNvbmZp Z3VyZV9hcmdzPSItRFFUX0hPU1RfUEFUSD0vdXNyIgogaG9zdG1ha2VkZXBlbmRzPSJwZXJsIHF0 Ni1iYXNlLWRldmVsIgogbWFrZWRlcGVuZHM9InF0Ni1iYXNlLWRldmVsIgogc2hvcnRfZGVzYz0i Q3Jvc3MtcGxhdGZvcm0gYXBwbGljYXRpb24gYW5kIFVJIGZyYW1ld29yayAtIG5ldHdvcmthdXRo IgpAQCAtMTIsMTAgKzExLDEwIEBAIG1haW50YWluZXI9IkpvaG4gPG1lQGpvaG5ueW5hdG9yLmRl dj4iCiBsaWNlbnNlPSJHUEwtMy4wLW9ubHkiCiBob21lcGFnZT0iaHR0cHM6Ly9xdC5pby8iCiBk aXN0ZmlsZXM9Imh0dHA6Ly9kb3dubG9hZC5xdC5pby9vZmZpY2lhbF9yZWxlYXNlcy9xdC8ke3Zl cnNpb24lLip9LyR7dmVyc2lvbn0vc3VibW9kdWxlcy9xdG5ldHdvcmthdXRoLWV2ZXJ5d2hlcmUt c3JjLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09MjAzYTk4OTQyOTE5MDI4NTIwMDM4Zjkw YTIwY2Q3ZWUzMmI1MzcyMzM1NDVkMTFlNDI5YzNlMmMxYWQ5MDY5ZgorY2hlY2tzdW09ZDYwZjU0 YjlkNDUwOWZhOGJkYmYxOTkwYmM5MWY2ZTI2MGUzOGNkYjU3YTdiODExOWZhMzg2MWJjNWQyZmIy YQogCiBpZiBbICIkWEJQU19DSEVDS19QS0dTIiBdOyB0aGVuCi0JY29uZmlndXJlX2FyZ3MrPSIg LURRVF9CVUlMRF9URVNUUz1PTiIKKwljb25maWd1cmVfYXJncz0iLURRVF9CVUlMRF9URVNUUz1P TiIKIGZpCiAKIHF0Ni1uZXR3b3JrYXV0aC1kZXZlbF9wYWNrYWdlKCkgewpAQCAtMjQsOCArMjMs MTEgQEAgcXQ2LW5ldHdvcmthdXRoLWRldmVsX3BhY2thZ2UoKSB7CiAJcGtnX2luc3RhbGwoKSB7 CiAJCXZtb3ZlIHVzci9pbmNsdWRlCiAJCXZtb3ZlIHVzci9saWIvY21ha2UKKwkJdm1vdmUgdXNy L2xpYi9tZXRhdHlwZXMKKwkJdm1vdmUgdXNyL2xpYi9wa2djb25maWcKIAkJdm1vdmUgdXNyL2xp Yi9xdDYvbWtzcGVjcwogCQl2bW92ZSAidXNyL2xpYi8qLnNvIgogCQl2bW92ZSAidXNyL2xpYi8q LnBybCIKKwkJdm1vdmUgdXNyL3NoYXJlL3F0Ni9tb2R1bGVzCiAJfQogfQoKRnJvbSA3MzI1NmZi ZmQ2NzM5YjUwN2E4NWUxMTc3ZGJlMTM2ZTM4NTcyNzFjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249MjBDPUMzPUI0 bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCA4IEF1ZyAyMDIy IDE3OjEzOjA4ICswNzAwClN1YmplY3Q6IFtQQVRDSCAwOC8yNl0gcXQ2LXF0NWNvbXBhdDogdXBk YXRlIHRvIDYuMy4xLgoKLS0tCiBzcmNwa2dzL3F0Ni1xdDVjb21wYXQvdGVtcGxhdGUgfCAxMiAr KysrKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtcXQ1Y29tcGF0L3RlbXBsYXRlIGIvc3JjcGtn cy9xdDYtcXQ1Y29tcGF0L3RlbXBsYXRlCmluZGV4IDdmY2Q1YWQ1MDgwZS4uYTYyNTczY2ZhYmZh IDEwMDY0NAotLS0gYS9zcmNwa2dzL3F0Ni1xdDVjb21wYXQvdGVtcGxhdGUKKysrIGIvc3JjcGtn cy9xdDYtcXQ1Y29tcGF0L3RlbXBsYXRlCkBAIC0xLDEwICsxLDkgQEAKICMgVGVtcGxhdGUgZmls ZSBmb3IgJ3F0Ni1xdDVjb21wYXQnCiBwa2duYW1lPXF0Ni1xdDVjb21wYXQKLXZlcnNpb249Ni4z LjAKLXJldmlzaW9uPTIKK3ZlcnNpb249Ni4zLjEKK3JldmlzaW9uPTEKIHdya3NyYz0icXQ1Y29t cGF0LWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0iCiBidWlsZF9zdHlsZT1jbWFrZQotY29uZmln dXJlX2FyZ3M9Ii1EUVRfSE9TVF9QQVRIPS91c3IiCiBob3N0bWFrZWRlcGVuZHM9InF0Ni1iYXNl LWRldmVsIHF0Ni1kZWNsYXJhdGl2ZS1kZXZlbCBwZXJsIHBrZy1jb25maWciCiBtYWtlZGVwZW5k cz0icXQ2LWJhc2UtZGV2ZWwgcXQ2LWRlY2xhcmF0aXZlLWRldmVsIgogc2hvcnRfZGVzYz0iQ3Jv c3MtcGxhdGZvcm0gYXBwbGljYXRpb24gYW5kIFVJIGZyYW1ld29yayAtIFF0NSBDb21wYXRpYmls dHkgQ29tcG9uZW50IgpAQCAtMTIsMTAgKzExLDEwIEBAIG1haW50YWluZXI9IkpvaG4gPG1lQGpv aG5ueW5hdG9yLmRldj4iCiBsaWNlbnNlPSJHUEwtMy4wLW9ubHkgd2l0aCBRdC1HUEwtZXhjZXB0 aW9uLTEuMCwgTEdQTC0zLjAtb25seSwgR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRw czovL3F0LmlvLyIKIGRpc3RmaWxlcz0iaHR0cDovL2Rvd25sb2FkLnF0LmlvL29mZmljaWFsX3Jl bGVhc2VzL3F0LyR7dmVyc2lvbiUuKn0vJHt2ZXJzaW9ufS9zdWJtb2R1bGVzL3F0NWNvbXBhdC1l dmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTJiMTk5YmU3ODBjNTBk OTIxNDUxMmI5MjJkOTRjYjI0MGIwNDEyZmQ2M2Y0NTllMzU2Yjc2MTAyY2FkMTcxM2UKK2NoZWNr c3VtPWE0M2VjNjJiZDc3OGVhZWNmODhhZDc4NDcxMThkMWMyYTQ3MWIwZmNiODIwZjkzYmViMzEx ZDdhYjk1NjZjZmQKIAogaWYgWyAiJFhCUFNfQ0hFQ0tfUEtHUyIgXTsgdGhlbgotCWNvbmZpZ3Vy ZV9hcmdzKz0iIC1EUVRfQlVJTERfVEVTVFM9T04iCisJY29uZmlndXJlX2FyZ3M9Ii1EUVRfQlVJ TERfVEVTVFM9T04iCiBmaQogCiBxdDYtcXQ1Y29tcGF0LWRldmVsX3BhY2thZ2UoKSB7CkBAIC0y NCw4ICsyMywxMSBAQCBxdDYtcXQ1Y29tcGF0LWRldmVsX3BhY2thZ2UoKSB7CiAJcGtnX2luc3Rh bGwoKSB7CiAJCXZtb3ZlIHVzci9pbmNsdWRlCiAJCXZtb3ZlIHVzci9saWIvY21ha2UKKwkJdm1v dmUgdXNyL2xpYi9tZXRhdHlwZXMKKwkJdm1vdmUgdXNyL2xpYi9wa2djb25maWcKIAkJdm1vdmUg dXNyL2xpYi9xdDYvbWtzcGVjcwogCQl2bW92ZSAidXNyL2xpYi8qLnNvIgogCQl2bW92ZSAidXNy L2xpYi8qLnBybCIKKwkJdm1vdmUgdXNyL3NoYXJlL3F0Ni9tb2R1bGVzCiAJfQogfQoKRnJvbSBi OGQwY2RmNzQ4YmM5NGUwZTEwMWE2YWYxM2VlNmYzY2VhYWExNDg0IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249MjBD PUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCA4IEF1 ZyAyMDIyIDE3OjEzOjA4ICswNzAwClN1YmplY3Q6IFtQQVRDSCAwOS8yNl0gcXQ2LXF1aWNrM2Q6 IHVwZGF0ZSB0byA2LjMuMS4KCi0tLQogc3JjcGtncy9xdDYtcXVpY2szZC90ZW1wbGF0ZSB8IDE3 ICsrKysrKysrKysrKy0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKSwgNSBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni1xdWljazNkL3RlbXBsYXRlIGIv c3JjcGtncy9xdDYtcXVpY2szZC90ZW1wbGF0ZQppbmRleCAwZjdlZjMzNmEzZmYuLjY4NWNlOWJj MGU5MCAxMDA2NDQKLS0tIGEvc3JjcGtncy9xdDYtcXVpY2szZC90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL3F0Ni1xdWljazNkL3RlbXBsYXRlCkBAIC0xLDE5ICsxLDIzIEBACiAjIFRlbXBsYXRlIGZp bGUgZm9yICdxdDYtcXVpY2szZCcKIHBrZ25hbWU9cXQ2LXF1aWNrM2QKLXZlcnNpb249Ni4zLjAK K3ZlcnNpb249Ni4zLjEKIHJldmlzaW9uPTEKIHdya3NyYz0icXRxdWljazNkLWV2ZXJ5d2hlcmUt c3JjLSR7dmVyc2lvbn0iCiBidWlsZF9zdHlsZT1jbWFrZQotY29uZmlndXJlX2FyZ3M9Ii1EUVRf SE9TVF9QQVRIPS91c3IgIgogaG9zdG1ha2VkZXBlbmRzPSJwZXJsIHF0Ni1iYXNlLWRldmVsIHF0 Ni1kZWNsYXJhdGl2ZS1kZXZlbCBxdDYtc2hhZGVydG9vbHMtZGV2ZWwiCiBtYWtlZGVwZW5kcz0i cXQ2LWJhc2UtZGV2ZWwgcXQ2LWRlY2xhcmF0aXZlLWRldmVsIHF0Ni1zaGFkZXJ0b29scy1kZXZl bAotIGxpYmFzc2ltcC1kZXZlbCIKKyBxdDYtcXVpY2t0aW1lbGluZSBsaWJhc3NpbXAtZGV2ZWwi CiBzaG9ydF9kZXNjPSJDcm9zcy1wbGF0Zm9ybSBhcHBsaWNhdGlvbiBhbmQgVUkgZnJhbWV3b3Jr IC0gUXVpY2szZCIKIG1haW50YWluZXI9IkpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4iCiBsaWNl bnNlPSJHUEwtMy4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vcXQuaW8vIgogZGlzdGZp bGVzPSJodHRwOi8vZG93bmxvYWQucXQuaW8vb2ZmaWNpYWxfcmVsZWFzZXMvcXQvJHt2ZXJzaW9u JS4qfS8ke3ZlcnNpb259L3N1Ym1vZHVsZXMvcXRxdWljazNkLWV2ZXJ5d2hlcmUtc3JjLSR7dmVy c2lvbn0udGFyLnh6IgotY2hlY2tzdW09MGFkMDViZDFlZTFmNzg0YjE4MjIwYTJkMjYyNWVlOGRl OTE2NjJjODhmZGM3Yjc5ODY2Mjk1M2Q4NmViMzI3ZQorY2hlY2tzdW09MmZhNzY2ZWU0N2I4YzA3 NDEyYjNiNzU1MjA2YWRhMDcxNWZiMDc4MTNiNjRlZDA2OWU3MjA1MDQ0YzA2MTI1NgorCitpZiBb ICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KKwlob3N0bWFrZWRlcGVuZHMrPSIgcXQ2LXF1aWNrM2Qt ZGV2ZWwiCisJY29uZmlndXJlX2FyZ3M9Ii1EUVRfQlVJTERfVE9PTFNfV0hFTl9DUk9TU0NPTVBJ TElORz10cnVlIgorZmkKIAogaWYgWyAiJFhCUFNfVEFSR0VUX0VORElBTiIgPSAiYmUiIF07IHRo ZW4KIAkjIHBvc3NpYmx5IGEgcXQ2LXNoYWRlcnRvb2xzIGJ1ZywgYWN0dWFsbHkKQEAgLTI2LDkg KzMwLDEyIEBAIHF0Ni1xdWljazNkLWRldmVsX3BhY2thZ2UoKSB7CiAJcGtnX2luc3RhbGwoKSB7 CiAJCXZtb3ZlIHVzci9pbmNsdWRlCiAJCXZtb3ZlIHVzci9saWIvY21ha2UKLQkJdm1vdmUgdXNy L2xpYi9xdDYvbWtzcGVjcworCQl2bW92ZSB1c3IvbGliL21ldGF0eXBlcworCQl2bW92ZSB1c3Iv bGliL3BrZ2NvbmZpZwogCQl2bW92ZSB1c3IvbGliL3F0Ni9iaW4KKwkJdm1vdmUgdXNyL2xpYi9x dDYvbWtzcGVjcwogCQl2bW92ZSAidXNyL2xpYi8qLnNvIgogCQl2bW92ZSAidXNyL2xpYi8qLnBy bCIKKwkJdm1vdmUgdXNyL3NoYXJlL3F0Ni9tb2R1bGVzCiAJfQogfQoKRnJvbSBlMjViOTAyM2E5 ZTI3NmY3NTkyZTBmYTYxZTUyNTA1ZmU3MTE4NjBkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249MjBDPUMzPUI0bmc9 MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCA4IEF1ZyAyMDIyIDE3 OjEzOjA5ICswNzAwClN1YmplY3Q6IFtQQVRDSCAxMC8yNl0gcXQ2LXF1aWNrdGltZWxpbmU6IHVw ZGF0ZSB0byA2LjMuMS4KCi0tLQogY29tbW9uL3NobGlicyAgICAgICAgICAgICAgICAgICAgICB8 IDEgKwogc3JjcGtncy9xdDYtcXVpY2t0aW1lbGluZS90ZW1wbGF0ZSB8IDcgKysrLS0tLQogMiBm aWxlcyBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggNjE5MjQ2MTBjYzUyLi4yNmYx MGQ2MDRiZTkgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpA QCAtMjA0NSw2ICsyMDQ1LDcgQEAgbGliUXQ2UXVpY2szRElibEJha2VyLnNvLjYgcXQ2LXF1aWNr M2QtNi4wLjNfMQogbGliUXQ2UXVpY2szRFBhcnRpY2xlcy5zby42IHF0Ni1xdWljazNkLTYuMS4w XzEKIGxpYlF0NlF1aWNrM0RHbHNsUGFyc2VyLnNvLjYgcXQ2LXF1aWNrM2QtNi4zLjBfMQogbGli UXQ2UXVpY2szREFzc2V0VXRpbHMuc28uNiBxdDYtcXVpY2szZC02LjEuMF8xCitsaWJRdDZRdWlj a1RpbWVsaW5lLnNvLjYgcXQ2LXF1aWNrdGltZWxpbmUtNi4zLjBfMQogbGliUXQ2UXVpY2tDb250 cm9sczJJbXBsLnNvLjYgcXQ2LWRlY2xhcmF0aXZlLTYuMC4wXzEKIGxpYlF0NlF1aWNrQ29udHJv bHMyLnNvLjYgcXQ2LWRlY2xhcmF0aXZlLTYuMC4wXzEKIGxpYlF0NlF1aWNrVGVtcGxhdGVzMi5z by42IHF0Ni1kZWNsYXJhdGl2ZS02LjAuMF8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni1xdWlj a3RpbWVsaW5lL3RlbXBsYXRlIGIvc3JjcGtncy9xdDYtcXVpY2t0aW1lbGluZS90ZW1wbGF0ZQpp bmRleCAxNWFhN2E4ZTU4MTkuLmJmMDJlMDQzYzRhNSAxMDA2NDQKLS0tIGEvc3JjcGtncy9xdDYt cXVpY2t0aW1lbGluZS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3F0Ni1xdWlja3RpbWVsaW5lL3Rl bXBsYXRlCkBAIC0xLDEwICsxLDkgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3F0Ni1xdWlja3Rp bWVsaW5lJwogcGtnbmFtZT1xdDYtcXVpY2t0aW1lbGluZQotdmVyc2lvbj02LjMuMAordmVyc2lv bj02LjMuMQogcmV2aXNpb249MQogd3Jrc3JjPSJxdHF1aWNrdGltZWxpbmUtZXZlcnl3aGVyZS1z cmMtJHt2ZXJzaW9uL3JjLy1yY30iCiBidWlsZF9zdHlsZT1jbWFrZQotY29uZmlndXJlX2FyZ3M9 Ii1EUVRfSE9TVF9QQVRIPS91c3IgIgogaG9zdG1ha2VkZXBlbmRzPSJwZXJsIHF0Ni1iYXNlLWRl dmVsIHF0Ni1kZWNsYXJhdGl2ZS1kZXZlbCIKIG1ha2VkZXBlbmRzPSJxdDYtYmFzZS1kZXZlbCBx dDYtZGVjbGFyYXRpdmUtZGV2ZWwiCiBzaG9ydF9kZXNjPSJDcm9zcy1wbGF0Zm9ybSBhcHBsaWNh dGlvbiBhbmQgVUkgZnJhbWV3b3JrIC0gcXVpY2t0aW1lbGluZSIKQEAgLTEyLDEwICsxMSwxMCBA QCBtYWludGFpbmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+IgogbGljZW5zZT0iR1BMLTMu MC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3F0LmlvLyIKIGRpc3RmaWxlcz0iaHR0cDov L2Rvd25sb2FkLnF0LmlvL29mZmljaWFsX3JlbGVhc2VzL3F0LyR7dmVyc2lvbiUuKn0vJHt2ZXJz aW9uL3JjLy1yY30vc3VibW9kdWxlcy9xdHF1aWNrdGltZWxpbmUtZXZlcnl3aGVyZS1zcmMtJHt2 ZXJzaW9uL3JjLy1yY30udGFyLnh6IgotY2hlY2tzdW09OWZmMGE5MzExNTllZmM2YmU1YmQ5Zjhh MWU0YTE2YTcwZTJkYWIzN2NmMjJhZDg1YzZkMzMwY2NmZGYzMWMxYQorY2hlY2tzdW09NThhMTNj ZjBjZThlNzc1NTYzOWYyMDY4NDA3ODczM2FmMjRmNWEzMTdmNmRkYjQwZDYwNzljOGM1YTI4ZWJi ZQogCiBpZiBbICIkWEJQU19DSEVDS19QS0dTIiBdOyB0aGVuCi0JY29uZmlndXJlX2FyZ3MrPSIg LURRVF9CVUlMRF9URVNUUz1PTiIKKwljb25maWd1cmVfYXJncz0iLURRVF9CVUlMRF9URVNUUz1P TiIKIGZpCiAKIHByZV9jaGVjaygpIHsKCkZyb20gZDlkY2Q1NGE4YjUxMmM4NDQ5ZjQ0ZTYyY2E3 MmMxYTMxNzYyMjc3YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1D ND05MG89QzM9QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2Rh bmhxeEBnbWFpbC5jb20+CkRhdGU6IE1vbiwgOCBBdWcgMjAyMiAxNzoxMzowOSArMDcwMApTdWJq ZWN0OiBbUEFUQ0ggMTEvMjZdIHF0Ni1zY3htbDogdXBkYXRlIHRvIDYuMy4xLgoKLS0tCiBzcmNw a2dzL3F0Ni1zY3htbC9wYXRjaGVzL25vLWNtYWtlLXRlc3QucGF0Y2ggfCAxMCArKysrKysrKysr CiBzcmNwa2dzL3F0Ni1zY3htbC90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgfCAxNyArKysr KysrKysrKystLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAyMiBpbnNlcnRpb25zKCspLCA1IGRlbGV0 aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXNjeG1sL3BhdGNoZXMvbm8t Y21ha2UtdGVzdC5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXNjeG1sL3BhdGNoZXMv bm8tY21ha2UtdGVzdC5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXNjeG1sL3BhdGNoZXMvbm8tY21ha2Ut dGVzdC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjQ2NmM0 NTkzMmY1OAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXNjeG1sL3BhdGNoZXMvbm8t Y21ha2UtdGVzdC5wYXRjaApAQCAtMCwwICsxLDEwIEBACistLS0gYS90ZXN0cy9hdXRvL0NNYWtl TGlzdHMudHh0CisrKysgYi90ZXN0cy9hdXRvL0NNYWtlTGlzdHMudHh0CitAQCAtOCw3ICs4LDYg QEAgaWYoVEFSR0VUIFF0OjpHdWkgQU5EIFRBUkdFVCBRdDo6UW1sKQorICAgICAgICAgYWRkX3N1 YmRpcmVjdG9yeShzY2lvbikKKyAgICAgICAgIGFkZF9zdWJkaXJlY3Rvcnkoc3RhdGVtYWNoaW5l KQorICAgICAgICAgYWRkX3N1YmRpcmVjdG9yeShzdGF0ZW1hY2hpbmVpbmZvKQorLSAgICAgICAg YWRkX3N1YmRpcmVjdG9yeShjbWFrZSkKKyAgICAgZW5kaWYoKQorICAgICAjIE1vcmUgY2hlY2tz IGluc2lkZQorICAgICBhZGRfc3ViZGlyZWN0b3J5KHFtbCkKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv cXQ2LXNjeG1sL3RlbXBsYXRlIGIvc3JjcGtncy9xdDYtc2N4bWwvdGVtcGxhdGUKaW5kZXggMTEy YmFjYTBhYjgzLi41Mjg2YzQyMWJhMjEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcXQ2LXNjeG1sL3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3MvcXQ2LXNjeG1sL3RlbXBsYXRlCkBAIC0xLDEwICsxLDkgQEAK ICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3F0Ni1zY3htbCcKIHBrZ25hbWU9cXQ2LXNjeG1sCi12ZXJz aW9uPTYuMy4wCit2ZXJzaW9uPTYuMy4xCiByZXZpc2lvbj0xCiB3cmtzcmM9InF0c2N4bWwtZXZl cnl3aGVyZS1zcmMtJHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPWNtYWtlCi1jb25maWd1cmVfYXJn cz0iLURRVF9IT1NUX1BBVEg9L3VzciIKIGhvc3RtYWtlZGVwZW5kcz0icGVybCBxdDYtZGVjbGFy YXRpdmUtZGV2ZWwiCiBtYWtlZGVwZW5kcz0icXQ2LWRlY2xhcmF0aXZlLWRldmVsIgogc2hvcnRf ZGVzYz0iQ3Jvc3MtcGxhdGZvcm0gYXBwbGljYXRpb24gYW5kIFVJIGZyYW1ld29yayAtIHNjeG1s IgpAQCAtMTIsMjAgKzExLDI4IEBAIG1haW50YWluZXI9IkpvaG4gPG1lQGpvaG5ueW5hdG9yLmRl dj4iCiBsaWNlbnNlPSJMR1BMLTMuMC1vbmx5IE9SIEdQTC0yLjAtb25seSBPUiBHUEwtMy4wLW9u bHkiCiBob21lcGFnZT0iaHR0cHM6Ly9xdC5pby8iCiBkaXN0ZmlsZXM9Imh0dHA6Ly9kb3dubG9h ZC5xdC5pby9vZmZpY2lhbF9yZWxlYXNlcy9xdC8ke3ZlcnNpb24lLip9LyR7dmVyc2lvbn0vc3Vi bW9kdWxlcy9xdHNjeG1sLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tz dW09MDliMGRiZDZhYzM2NzkyMGZiMWJhOTZhMzlkY2Q0YzlkMzNlYjA4MjBkY2M3OTUzODk5Mjgy NWQ1ODhhNzBmMAorY2hlY2tzdW09MDFiYzE1NGQ2MTYzZDFmMDQ5ZjRlMWU3NjY1OGEwNDQ3MzBh Y2U3YjBhNWJlMzVjOWE0NmZjZDEzOTZmODYxOQogCi1pZiBbICIkWEJQU19DSEVDS19QS0dTIiBd OyB0aGVuCi0JY29uZmlndXJlX2FyZ3MrPSIgLURRVF9CVUlMRF9URVNUUz1PTiIKK2lmIFsgIiRD Uk9TU19CVUlMRCIgXTsgdGhlbgorCWNvbmZpZ3VyZV9hcmdzPSItRFFUX0JVSUxEX1RPT0xTX1dI RU5fQ1JPU1NDT01QSUxJTkc9dHJ1ZSIKKwlob3N0bWFrZWRlcGVuZHMrPSIgcXQ2LXJlbW90ZW9i amVjdHMiCiBmaQogCitwcmVfY2hlY2soKSB7CisJZXhwb3J0IFFNTDJfSU1QT1JUX1BBVEg9IiR3 cmtzcmMvYnVpbGQvbGliL3F0Ni9xbWwiCit9CisKIHF0Ni1zY3htbC1kZXZlbF9wYWNrYWdlKCkg ewogCWRlcGVuZHM9IiR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKIAlzaG9y dF9kZXNjKz0iIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCiAJcGtnX2luc3RhbGwoKSB7CiAJCXZtb3Zl IHVzci9pbmNsdWRlCiAJCXZtb3ZlIHVzci9saWIvY21ha2UKKwkJdm1vdmUgdXNyL2xpYi9tZXRh dHlwZXMKKwkJdm1vdmUgdXNyL2xpYi9wa2djb25maWcKIAkJdm1vdmUgdXNyL2xpYi9xdDYvbWtz cGVjcwogCQl2bW92ZSAidXNyL2xpYi8qLnNvIgogCQl2bW92ZSAidXNyL2xpYi8qLnBybCIKKwkJ dm1vdmUgdXNyL3NoYXJlL3F0Ni9tb2R1bGVzCiAJfQogfQoKRnJvbSBhOGMwYjMwMjgxZGNmNzQw NWZkZjFkZGM0NWQ5ODhlOGU1ZGE5NTY1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9 P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249MjBDPUMzPUI0bmc9MjBEYW5o Pz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCA4IEF1ZyAyMDIyIDE3OjEzOjA5 ICswNzAwClN1YmplY3Q6IFtQQVRDSCAxMi8yNl0gcXQ2LXNlcmlhbHBvcnQ6IHVwZGF0ZSB0byA2 LjMuMS4KCi0tLQogc3JjcGtncy9xdDYtc2VyaWFscG9ydC9wYXRjaGVzL25vLWNtYWtlLXRlc3Qu cGF0Y2ggfCA5ICsrKysrKysrKwogc3JjcGtncy9xdDYtc2VyaWFscG9ydC90ZW1wbGF0ZSAgICAg ICAgICAgICAgICAgICAgfCA4ICsrKysrLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDE0IGluc2VydGlv bnMoKyksIDMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtc2Vy aWFscG9ydC9wYXRjaGVzL25vLWNtYWtlLXRlc3QucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dz L3F0Ni1zZXJpYWxwb3J0L3BhdGNoZXMvbm8tY21ha2UtdGVzdC5wYXRjaCBiL3NyY3BrZ3MvcXQ2 LXNlcmlhbHBvcnQvcGF0Y2hlcy9uby1jbWFrZS10ZXN0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNDM0NDcxYzRhNGY3Ci0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9xdDYtc2VyaWFscG9ydC9wYXRjaGVzL25vLWNtYWtlLXRlc3QucGF0Y2gKQEAgLTAs MCArMSw5IEBACistLS0gYS90ZXN0cy9hdXRvL0NNYWtlTGlzdHMudHh0CisrKysgYi90ZXN0cy9h dXRvL0NNYWtlTGlzdHMudHh0CitAQCAtMSw2ICsxLDUgQEAKKyBhZGRfc3ViZGlyZWN0b3J5KHFz ZXJpYWxwb3J0KQorIGFkZF9zdWJkaXJlY3RvcnkocXNlcmlhbHBvcnRpbmZvKQorLWFkZF9zdWJk aXJlY3RvcnkoY21ha2UpCisgaWYoUVRfRkVBVFVSRV9wcml2YXRlX3Rlc3RzKQorICAgICBhZGRf c3ViZGlyZWN0b3J5KHFzZXJpYWxwb3J0aW5mb3ByaXZhdGUpCisgZW5kaWYoKQpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9xdDYtc2VyaWFscG9ydC90ZW1wbGF0ZSBiL3NyY3BrZ3MvcXQ2LXNlcmlhbHBv cnQvdGVtcGxhdGUKaW5kZXggMDgwNDY3MWNhNTdiLi4yZGU5ZDYzNjRhNWMgMTAwNjQ0Ci0tLSBh L3NyY3BrZ3MvcXQ2LXNlcmlhbHBvcnQvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9xdDYtc2VyaWFs cG9ydC90ZW1wbGF0ZQpAQCAtMSwxMCArMSw5IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdxdDYt c2VyaWFscG9ydCcKIHBrZ25hbWU9cXQ2LXNlcmlhbHBvcnQKLXZlcnNpb249Ni4zLjAKK3ZlcnNp b249Ni4zLjEKIHJldmlzaW9uPTEKIHdya3NyYz0icXRzZXJpYWxwb3J0LWV2ZXJ5d2hlcmUtc3Jj LSR7dmVyc2lvbn0iCiBidWlsZF9zdHlsZT1jbWFrZQotY29uZmlndXJlX2FyZ3M9Ii1EUVRfSE9T VF9QQVRIPS91c3IiCiBob3N0bWFrZWRlcGVuZHM9InBlcmwgcXQ2LWJhc2UtZGV2ZWwgcGtnLWNv bmZpZyIKIG1ha2VkZXBlbmRzPSJxdDYtYmFzZS1kZXZlbCIKIHNob3J0X2Rlc2M9IkNyb3NzLXBs YXRmb3JtIGFwcGxpY2F0aW9uIGFuZCBVSSBmcmFtZXdvcmsgLSBzZXJpYWxwb3J0IgpAQCAtMTIs NyArMTEsNyBAQCBtYWludGFpbmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+IgogbGljZW5z ZT0iKExHUEwtMy4wLW9ubHkgT1IgR1BMLTIuMC1vbmx5IE9SIEdQTC0zLjAtb25seSkgQU5EIEdQ TC0zLjAtb25seSB3aXRoIFF0LUdQTC1leGNlcHRpb24tMS4wIgogaG9tZXBhZ2U9Imh0dHBzOi8v cXQuaW8vIgogZGlzdGZpbGVzPSJodHRwOi8vZG93bmxvYWQucXQuaW8vb2ZmaWNpYWxfcmVsZWFz ZXMvcXQvJHt2ZXJzaW9uJS4qfS8ke3ZlcnNpb259L3N1Ym1vZHVsZXMvcXRzZXJpYWxwb3J0LWV2 ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZWViZDY5MzRkNDhjYzA0 NGI4Yzg3Nzk1YTRmZDkxYmI4MWY3MTk1ZDRiNWEyZGRiMTI4MDJmMzQzZDVkYjY0ZgorY2hlY2tz dW09NGViNmQ4MGU2NTc5OWRkMmUwMzE4ZGY0ZGZiYTE0MTczYzE5MjllODYxNzE4Y2RhOWJlZGNh MjQyNTNiNjE2ZQogCiBxdDYtc2VyaWFscG9ydC1kZXZlbF9wYWNrYWdlKCkgewogCWRlcGVuZHM9 IiR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSBxdDYtYmFzZS1kZXZlbD49JHt2 ZXJzaW9ufV8xIgpAQCAtMjAsOCArMTksMTEgQEAgcXQ2LXNlcmlhbHBvcnQtZGV2ZWxfcGFja2Fn ZSgpIHsKIAlwa2dfaW5zdGFsbCgpIHsKIAkJdm1vdmUgdXNyL2luY2x1ZGUKIAkJdm1vdmUgdXNy L2xpYi9jbWFrZQorCQl2bW92ZSB1c3IvbGliL21ldGF0eXBlcworCQl2bW92ZSB1c3IvbGliL3Br Z2NvbmZpZwogCQl2bW92ZSB1c3IvbGliL3F0Ni9ta3NwZWNzCiAJCXZtb3ZlICJ1c3IvbGliLyou c28iCiAJCXZtb3ZlICJ1c3IvbGliLyoucHJsIgorCQl2bW92ZSB1c3Ivc2hhcmUvcXQ2L21vZHVs ZXMKIAl9CiB9CgpGcm9tIDNiM2IyMjgzOThjOTAxZmIwZDA4OGNkM2MyNTljZmQ2M2VjZDA0ZGIg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT89QzQ9OTBvPUMzPUEwbj0y MFRyPUUxPUJBPUE3bj0yMEM9QzM9QjRuZz0yMERhbmg/PQogPGNvbmdkYW5ocXhAZ21haWwuY29t PgpEYXRlOiBNb24sIDggQXVnIDIwMjIgMTc6MTM6MDkgKzA3MDAKU3ViamVjdDogW1BBVENIIDEz LzI2XSBxdDYtc2hhZGVydG9vbHM6IHVwZGF0ZSB0byA2LjMuMS4KCi0tLQogc3JjcGtncy9xdDYt c2hhZGVydG9vbHMvdGVtcGxhdGUgfCAxNCArKysrKysrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQs IDExIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9x dDYtc2hhZGVydG9vbHMvdGVtcGxhdGUgYi9zcmNwa2dzL3F0Ni1zaGFkZXJ0b29scy90ZW1wbGF0 ZQppbmRleCA5YzFlYzIxMGE5NmEuLjM3MTYzMzNjNDU5YiAxMDA2NDQKLS0tIGEvc3JjcGtncy9x dDYtc2hhZGVydG9vbHMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9xdDYtc2hhZGVydG9vbHMvdGVt cGxhdGUKQEAgLTEsMTAgKzEsOSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncXQ2LXNoYWRlcnRv b2xzJwogcGtnbmFtZT1xdDYtc2hhZGVydG9vbHMKLXZlcnNpb249Ni4zLjAKK3ZlcnNpb249Ni4z LjEKIHJldmlzaW9uPTEKIHdya3NyYz0icXRzaGFkZXJ0b29scy1ldmVyeXdoZXJlLXNyYy0ke3Zl cnNpb259IgogYnVpbGRfc3R5bGU9Y21ha2UKLWNvbmZpZ3VyZV9hcmdzPSItRFFUX0hPU1RfUEFU SD0vdXNyICIKIGhvc3RtYWtlZGVwZW5kcz0icGVybCBxdDYtYmFzZS1kZXZlbCIKIG1ha2VkZXBl bmRzPSJxdDYtYmFzZS1kZXZlbCIKIHNob3J0X2Rlc2M9IkNyb3NzLXBsYXRmb3JtIGFwcGxpY2F0 aW9uIGFuZCBVSSBmcmFtZXdvcmsgLSBzaGFkZXJ0b29scyIKQEAgLTEyLDcgKzExLDEzIEBAIG1h aW50YWluZXI9IkpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4iCiBsaWNlbnNlPSJHUEwtMy4wLW9y LWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vcXQuaW8vIgogZGlzdGZpbGVzPSJodHRwOi8vZG93 bmxvYWQucXQuaW8vb2ZmaWNpYWxfcmVsZWFzZXMvcXQvJHt2ZXJzaW9uJS4qfS8ke3ZlcnNpb259 L3N1Ym1vZHVsZXMvcXRzaGFkZXJ0b29scy1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259LnRhci54 eiIKLWNoZWNrc3VtPTU0OTg5NTliOWQzN2MyNTRiZDEyNmFiMTMyMGNmODZhZWI4YTMxYjNlYTdl NTFkYjY2NmE4Zjk2OThhZmJkNmMKK2NoZWNrc3VtPTU5Yjc3MTc2OTYxNTI4Y2M3YjBjOTMyNTEz NDY1NWUyNzNhYTg3YjRjYjM4NmMwZjQ2ODNkOGYyODUyZTQzNWEKKworaWYgWyAiJENST1NTX0JV SUxEIiBdOyB0aGVuCisJY29uZmlndXJlX2FyZ3M9Ii1EUVRfQlVJTERfVE9PTFNfV0hFTl9DUk9T U0NPTVBJTElORz10cnVlIgorCWhvc3RtYWtlZGVwZW5kcys9IiBxdDYtc2hhZGVydG9vbHMtZGV2 ZWwiCitmaQorCiAKIHF0Ni1zaGFkZXJ0b29scy1kZXZlbF9wYWNrYWdlKCkgewogCWRlcGVuZHM9 IiR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSBxdDYtYmFzZS1kZXZlbD49JHt2 ZXJzaW9ufV8xIgpAQCAtMjAsOCArMjUsMTEgQEAgcXQ2LXNoYWRlcnRvb2xzLWRldmVsX3BhY2th Z2UoKSB7CiAJcGtnX2luc3RhbGwoKSB7CiAJCXZtb3ZlIHVzci9pbmNsdWRlCiAJCXZtb3ZlIHVz ci9saWIvY21ha2UKKwkJdm1vdmUgdXNyL2xpYi9tZXRhdHlwZXMKKwkJdm1vdmUgdXNyL2xpYi9w a2djb25maWcKIAkJdm1vdmUgdXNyL2xpYi9xdDYvbWtzcGVjcwogCQl2bW92ZSAidXNyL2xpYi8q LnNvIgogCQl2bW92ZSAidXNyL2xpYi8qLnBybCIKKwkJdm1vdmUgdXNyL3NoYXJlL3F0Ni9tb2R1 bGVzCiAJfQogfQoKRnJvbSA5ZDgyYjQxZjFjNmVmNGQ3YzlkNDk5YTZhMjAzYWQyOGE1NmE5Zjgw IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49 MjBUcj1FMT1CQT1BN249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNv bT4KRGF0ZTogTW9uLCA4IEF1ZyAyMDIyIDE3OjEzOjA5ICswNzAwClN1YmplY3Q6IFtQQVRDSCAx NC8yNl0gcXQ2LXN2ZzogdXBkYXRlIHRvIDYuMy4xLgoKLS0tCiBzcmNwa2dzL3F0Ni1zdmcvdGVt cGxhdGUgfCAxMCArKysrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA0 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXN2Zy90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvcXQ2LXN2Zy90ZW1wbGF0ZQppbmRleCBhYThlNmI3NDUxMDkuLjMwOWIwOTg4ZTQzNSAx MDA2NDQKLS0tIGEvc3JjcGtncy9xdDYtc3ZnL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcXQ2LXN2 Zy90ZW1wbGF0ZQpAQCAtMSwxMCArMSw5IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdxdDYtc3Zn JwogcGtnbmFtZT1xdDYtc3ZnCi12ZXJzaW9uPTYuMy4wCit2ZXJzaW9uPTYuMy4xCiByZXZpc2lv bj0xCiB3cmtzcmM9InF0c3ZnLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0iCiBidWlsZF9zdHls ZT1jbWFrZQotY29uZmlndXJlX2FyZ3M9Ii1EUVRfSE9TVF9QQVRIPS91c3IgIgogaG9zdG1ha2Vk ZXBlbmRzPSJxdDYtYmFzZS1kZXZlbCBwZXJsIgogbWFrZWRlcGVuZHM9InF0Ni1iYXNlLWRldmVs Igogc2hvcnRfZGVzYz0iQ3Jvc3MtcGxhdGZvcm0gYXBwbGljYXRpb24gYW5kIFVJIGZyYW1ld29y ayAoUVQ2KSAtIHF0Ni1zdmcgY29tcG9uZW50IgpAQCAtMTIsMTAgKzExLDEwIEBAIG1haW50YWlu ZXI9IkpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4iCiBsaWNlbnNlPSJHUEwtMy4wLW9ubHkgd2l0 aCBRdC1HUEwtZXhjZXB0aW9uLTEuMCwgR1BMLTIuMC1vci1sYXRlciwgTEdQTC0zLjAtb25seSIK IGhvbWVwYWdlPSJodHRwczovL3F0LmlvLyIKIGRpc3RmaWxlcz0iaHR0cDovL2Rvd25sb2FkLnF0 LmlvL29mZmljaWFsX3JlbGVhc2VzL3F0LyR7dmVyc2lvbiUuKn0vJHt2ZXJzaW9ufS9zdWJtb2R1 bGVzL3F0c3ZnLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09MzE2 NDUwNGQ3ZTNmNjQwNDM5MzA4MjM1NzM5YjExMjYwNWFiNWZjOWNjNTE3Y2EwYjI4ZjlmYjkzYThk YjBlMworY2hlY2tzdW09N2IxOWY0MThlNmY3YjhlMjMzNDQwODJkZDA0NDQwYWFjZjVkYTIzYzVh NzM5ODBiYTIyYWU0ZWJhNGY4N2RmNwogCiBpZiBbICIkWEJQU19DSEVDS19QS0dTIiBdOyB0aGVu Ci0JY29uZmlndXJlX2FyZ3MrPSIgLURRVF9CVUlMRF9URVNUUz1PTiIKKwljb25maWd1cmVfYXJn cz0iLURRVF9CVUlMRF9URVNUUz1PTiIKIGZpCiAKIGRvX2NoZWNrKCkgewpAQCAtMjksOCArMjgs MTEgQEAgcXQ2LXN2Zy1kZXZlbF9wYWNrYWdlKCkgewogCXBrZ19pbnN0YWxsKCkgewogCQl2bW92 ZSB1c3IvaW5jbHVkZQogCQl2bW92ZSB1c3IvbGliL2NtYWtlCisJCXZtb3ZlIHVzci9saWIvbWV0 YXR5cGVzCisJCXZtb3ZlIHVzci9saWIvcGtnY29uZmlnCiAJCXZtb3ZlIHVzci9saWIvcXQ2L21r c3BlY3MKIAkJdm1vdmUgInVzci9saWIvKi5zbyIKIAkJdm1vdmUgInVzci9saWIvKi5wcmwiCisJ CXZtb3ZlIHVzci9zaGFyZS9xdDYvbW9kdWxlcwogCX0KIH0KCkZyb20gMjZmYjE2Y2Y0MzQzYzA2 ODFjY2I2MTk4ODljOWU2NTU1ZjBmYzdhNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog PT9VVEYtOD9xPz1DND05MG89QzM9QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFu aD89CiA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+CkRhdGU6IE1vbiwgOCBBdWcgMjAyMiAxNzoxMzox MCArMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTUvMjZdIHF0Ni10b29sczogdXBkYXRlIHRvIDYuMy4x LgoKLS0tCiBzcmNwa2dzL3F0Ni10b29scy9wYXRjaGVzL3FsaXRlaHRtbC5wYXRjaCB8IDY4ICsr KysrKysrKysrKysrKysrKysrKysrCiBzcmNwa2dzL3F0Ni10b29scy90ZW1wbGF0ZSAgICAgICAg ICAgICAgICB8IDI1ICsrKysrKystLQogMiBmaWxlcyBjaGFuZ2VkLCA4OCBpbnNlcnRpb25zKCsp LCA1IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXRvb2xzL3Bh dGNoZXMvcWxpdGVodG1sLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtdG9vbHMvcGF0 Y2hlcy9xbGl0ZWh0bWwucGF0Y2ggYi9zcmNwa2dzL3F0Ni10b29scy9wYXRjaGVzL3FsaXRlaHRt bC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjZiZWMyNzli Y2E2OQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXRvb2xzL3BhdGNoZXMvcWxpdGVo dG1sLnBhdGNoCkBAIC0wLDAgKzEsNjggQEAKKy0tLSBhL3NyYy9hc3Npc3RhbnQvQ01ha2VMaXN0 cy50eHQKKysrKyBiL3NyYy9hc3Npc3RhbnQvQ01ha2VMaXN0cy50eHQKK0BAIC0zNCw3ICszNCw5 IEBAIGlmKFRBUkdFVCBxbGl0ZWh0bWwpCisgICAgIHF0X2ludGVybmFsX3NldF9leGNlcHRpb25z X2ZsYWdzKGxpdGVodG1sIE9GRikKKyAgICAgcXRfZGlzYWJsZV93YXJuaW5ncyhsaXRlaHRtbCkK KyAgICAgcXRfZGlzYWJsZV93YXJuaW5ncyhxbGl0ZWh0bWwpCistICAgIHF0X2Rpc2FibGVfd2Fy bmluZ3MoZ3VtYm8pCisrICAgIGlmIChUQVJHRVQgZ3VtYm8pCisrICAgICAgICBxdF9kaXNhYmxl X3dhcm5pbmdzKGd1bWJvKQorKyAgICBlbmRpZigpCisgICAgIHF0X2hhbmRsZV9tdWx0aV9jb25m aWdfb3V0cHV0X2RpcnMocWxpdGVodG1sKQorICAgICBzZXRfdGFyZ2V0X3Byb3BlcnRpZXMocWxp dGVodG1sIFBST1BFUlRJRVMKKyAgICAgICAgIFJVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWSAiJHtR VF9CVUlMRF9ESVJ9LyR7SU5TVEFMTF9CSU5ESVJ9IgorLS0tIGEvc3JjL2Fzc2lzdGFudC9xbGl0 ZWh0bWwvc3JjLzNyZHBhcnR5L2xpdGVodG1sL0NNYWtlTGlzdHMudHh0CisrKysgYi9zcmMvYXNz aXN0YW50L3FsaXRlaHRtbC9zcmMvM3JkcGFydHkvbGl0ZWh0bWwvQ01ha2VMaXN0cy50eHQKK0BA IC0xOTYsNTIgKzE5Niw2IEBAIGVuZGlmKCkKKyBzZXRfc291cmNlX2ZpbGVzX3Byb3BlcnRpZXMo JHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L3NyYy9tYXN0ZXIuY3NzLmluYyBQUk9QRVJUSUVT IEdFTkVSQVRFRCBUUlVFKQorIAorICMgVGVzdHMKKy0KKy1pZiAoQlVJTERfVEVTVElORykKKy0g ICAgaW5jbHVkZShGZXRjaENvbnRlbnQpCistICAgIEZldGNoQ29udGVudF9EZWNsYXJlKAorLSAg ICAgIGdvb2dsZXRlc3QKKy0gICAgICBVUkwgaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9nb29n bGV0ZXN0L2FyY2hpdmUvNjA5MjgxMDg4Y2ZlZmM3NmY5ZDBjZTgyZTFmZjZjMzBjYzM1OTFlNS56 aXAKKy0gICAgKQorLSAgICAjIEZvciBXaW5kb3dzOiBQcmV2ZW50IG92ZXJyaWRpbmcgdGhlIHBh cmVudCBwcm9qZWN0J3MgY29tcGlsZXIvbGlua2VyIHNldHRpbmdzCistICAgIHNldChndGVzdF9m b3JjZV9zaGFyZWRfY3J0IE9OIENBQ0hFIEJPT0wgIiIgRk9SQ0UpCistICAgIEZldGNoQ29udGVu dF9HZXRQcm9wZXJ0aWVzKGdvb2dsZXRlc3QpCistICAgIGlmKE5PVCBnb29nbGV0ZXN0X1BPUFVM QVRFRCkKKy0gICAgICBGZXRjaENvbnRlbnRfUG9wdWxhdGUoZ29vZ2xldGVzdCkKKy0gICAgICBh ZGRfc3ViZGlyZWN0b3J5KCR7Z29vZ2xldGVzdF9TT1VSQ0VfRElSfSAke2dvb2dsZXRlc3RfQklO QVJZX0RJUn0pCistICAgIGVuZGlmKCkKKy0KKy0gICAgZW5hYmxlX3Rlc3RpbmcoKQorLQorLSAg ICBzZXQoVEVTVF9OQU1FICR7UFJPSkVDVF9OQU1FfV90ZXN0cykKKy0KKy0gICAgYWRkX2V4ZWN1 dGFibGUoCistICAgICAgICAke1RFU1RfTkFNRX0KKy0gICAgICAgICR7VEVTVF9MSVRFSFRNTH0K Ky0gICAgICAgICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9zcmMvbWFzdGVyLmNzcy5pbmMK Ky0gICAgKQorLQorLSAgICBzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoJHtURVNUX05BTUV9IFBST1BF UlRJRVMKKy0gICAgICAgIENYWF9TVEFOREFSRCAxMQorLSAgICAgICAgQ19TVEFOREFSRCA5OQor LSAgICAgICAgUFVCTElDX0hFQURFUiAiJHtIRUFERVJfTElURUhUTUx9IgorLSAgICApCistCist ICAgIHRhcmdldF9pbmNsdWRlX2RpcmVjdG9yaWVzKAorLSAgICAgICAgJHtURVNUX05BTUV9Cist ICAgICAgICBQVUJMSUMgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L2NvbnRhaW5lcnMKKy0g ICAgKQorLQorLSAgICB0YXJnZXRfbGlua19saWJyYXJpZXMoCistICAgICAgICAke1RFU1RfTkFN RX0KKy0gICAgICAgICR7UFJPSkVDVF9OQU1FfQorLSAgICAgICAgZ3Rlc3RfbWFpbgorLSAgICAp CistCistICAgIGluY2x1ZGUoR29vZ2xlVGVzdCkKKy0gICAgZ3Rlc3RfZGlzY292ZXJfdGVzdHMo JHtURVNUX05BTUV9KQorLWVuZGlmKCkKKy0KKyAjICAgICBzZXQoVEVTVF9OQU1FICR7UFJPSkVD VF9OQU1FfV90ZXN0cykKKyAjICAgICBhZGRfZXhlY3V0YWJsZSgke1RFU1RfTkFNRX0gJHtURVNU X0xJVEVIVE1MfSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vc3JjL21hc3Rlci5jc3MuaW5j KQorICMgICAgIHNldF90YXJnZXRfcHJvcGVydGllcygke1RFU1RfTkFNRX0gUFJPUEVSVElFUwpk aWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtdG9vbHMvdGVtcGxhdGUgYi9zcmNwa2dzL3F0Ni10b29s cy90ZW1wbGF0ZQppbmRleCBmODc1ZGZmNWMwNDYuLmE4NDRiNjdkZWU5ZSAxMDA2NDQKLS0tIGEv c3JjcGtncy9xdDYtdG9vbHMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9xdDYtdG9vbHMvdGVtcGxh dGUKQEAgLTEsMjMgKzEsMzUgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3F0Ni10b29scycKIHBr Z25hbWU9cXQ2LXRvb2xzCi12ZXJzaW9uPTYuMy4wCit2ZXJzaW9uPTYuMy4xCiByZXZpc2lvbj0x CiB3cmtzcmM9InF0dG9vbHMtZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxl PWNtYWtlCi1jb25maWd1cmVfYXJncz0iLURRVF9IT1NUX1BBVEg9L3VzciAiCi1ob3N0bWFrZWRl cGVuZHM9InF0Ni1iYXNlLWRldmVsIHBlcmwiCi1tYWtlZGVwZW5kcz0icXQ2LWJhc2UtZGV2ZWwg bGliYXRvbWljLWRldmVsIgorY29uZmlndXJlX2FyZ3M9Ii1ERVhURVJOQUxfR1VNQk89T04gLURM SVRFSFRNTF9VVEY4PU9OIC1EVVNFX0lDVT1PTgorIC1EUVRfQlVJTERfU0hBUkVEX0xJQlM9T04g LURRVF9GRUFUVVJFX2Fzc2lzdGFudD1PTiIKK2hvc3RtYWtlZGVwZW5kcz0icXQ2LWJhc2UtZGV2 ZWwgcGVybCBxdDYtcGx1Z2luLXNxbGl0ZSIKK21ha2VkZXBlbmRzPSJxdDYtYmFzZS1kZXZlbCBs aWJhdG9taWMtZGV2ZWwgcXQ2LXBsdWdpbi1zcWxpdGUKKyBndW1iby1wYXJzZXItZGV2ZWwgaWN1 LWRldmVsIgogc2hvcnRfZGVzYz0iQ3Jvc3MtcGxhdGZvcm0gYXBwbGljYXRpb24gYW5kIFVJIGZy YW1ld29yayAoUVQ2KSAtIHF0Ni10b29scyBjb21wb25lbnQiCiBtYWludGFpbmVyPSJKb2huIDxt ZUBqb2hubnluYXRvci5kZXY+IgogbGljZW5zZT0iR1BMLTMuMC1vbmx5IHdpdGggUXQtR1BMLWV4 Y2VwdGlvbi0xLjAsIExHUEwtMy4wLW9ubHksIEdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0i aHR0cHM6Ly9xdC5pby8iCiBkaXN0ZmlsZXM9Imh0dHA6Ly9kb3dubG9hZC5xdC5pby9vZmZpY2lh bF9yZWxlYXNlcy9xdC8ke3ZlcnNpb24lLip9LyR7dmVyc2lvbn0vc3VibW9kdWxlcy9xdHRvb2xz LWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZmNlOTQ2ODhlYTky NTc4MmEyODc5MzQ3NTg0OTkxZjg1NDYzMGRhYWRiYTZjNTJhZWQ2ZDkzZTMzY2QwYjE5YworY2hl Y2tzdW09YzQxMjc1MGYyYWEzYmViOTNmY2U1ZjMwNTE3YzYwN2Y1NWRhYWViN2QwNDA3YWYyMDZh OGFkZjkxN2UxMjZjMQorCitpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KKwljb25maWd1cmVf YXJncys9IiAtRFFUX0JVSUxEX1RPT0xTX1dIRU5fQ1JPU1NDT01QSUxJTkc9VFJVRSIKKwlob3N0 bWFrZWRlcGVuZHMrPSIgcXQ2LXRvb2xzLWRldmVsIgorZmkKKwogCiBpZiBbICIkWEJQU19DSEVD S19QS0dTIiBdOyB0aGVuCiAJY29uZmlndXJlX2FyZ3MrPSIgLURRVF9CVUlMRF9URVNUUz1PTiIK IGZpCiAKK3Bvc3RfYnVpbGQoKSB7CisJbmluamEgLUMgYnVpbGQgJHttYWtlam9ic30gbGliL3F0 Ni9saWJleGVjL3FoZWxwZ2VuZXJhdG9yCit9CisKIGRvX2NoZWNrKCkgewogCWNkIGJ1aWxkCiAJ IyBTb21lIG9mIHRoZXNlIHRlc3RzIGV4cGVjdCB0aGF0IHF0Ni10b29scyBpcyBhbHJlYWR5CkBA IC0zMSw4ICs0MywxMSBAQCBxdDYtdG9vbHMtZGV2ZWxfcGFja2FnZSgpIHsKIAlwa2dfaW5zdGFs bCgpIHsKIAkJdm1vdmUgdXNyL2luY2x1ZGUKIAkJdm1vdmUgdXNyL2xpYi9jbWFrZQorCQl2bW92 ZSB1c3IvbGliL21ldGF0eXBlcworCQl2bW92ZSB1c3IvbGliL3BrZ2NvbmZpZwogCQl2bW92ZSB1 c3IvbGliL3F0Ni9ta3NwZWNzCiAJCXZtb3ZlICJ1c3IvbGliLyouc28iCiAJCXZtb3ZlICJ1c3Iv bGliLyoucHJsIgorCQl2bW92ZSB1c3Ivc2hhcmUvcXQ2L21vZHVsZXMKIAl9CiB9CgpGcm9tIDU4 ZWUwYTg1MmY1NTcxMWM1ZGEzMDAwY2ZmMTBmZTQ2MTI2ZTI0MDUgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206ID0/VVRGLTg/cT89QzQ9OTBvPUMzPUEwbj0yMFRyPUUxPUJBPUE3bj0yMEM9 QzM9QjRuZz0yMERhbmg/PQogPGNvbmdkYW5ocXhAZ21haWwuY29tPgpEYXRlOiBNb24sIDggQXVn IDIwMjIgMTc6MTM6MTAgKzA3MDAKU3ViamVjdDogW1BBVENIIDE2LzI2XSBxdDYtdHJhbnNsYXRp b25zOiB1cGRhdGUgdG8gNi4zLjEuCgotLS0KIHNyY3BrZ3MvcXQ2LXRyYW5zbGF0aW9ucy90ZW1w bGF0ZSB8IDUgKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDMgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtdHJhbnNsYXRpb25zL3RlbXBsYXRlIGIv c3JjcGtncy9xdDYtdHJhbnNsYXRpb25zL3RlbXBsYXRlCmluZGV4IGJlMGE3NGNhNzRlMi4uMWI5 MTdjY2IzNjIwIDEwMDY0NAotLS0gYS9zcmNwa2dzL3F0Ni10cmFuc2xhdGlvbnMvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9xdDYtdHJhbnNsYXRpb25zL3RlbXBsYXRlCkBAIC0xLDEwICsxLDkgQEAK ICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3F0Ni10cmFuc2xhdGlvbnMnCiBwa2duYW1lPXF0Ni10cmFu c2xhdGlvbnMKLXZlcnNpb249Ni4zLjAKK3ZlcnNpb249Ni4zLjEKIHJldmlzaW9uPTEKIHdya3Ny Yz0icXR0cmFuc2xhdGlvbnMtZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxl PWNtYWtlCi1jb25maWd1cmVfYXJncz0iLURRVF9IT1NUX1BBVEg9L3VzciAiCiBob3N0bWFrZWRl cGVuZHM9InF0Ni1iYXNlLWRldmVsIHF0Ni10b29scy1kZXZlbCBwZXJsIgogbWFrZWRlcGVuZHM9 InF0Ni1iYXNlLWRldmVsIHF0Ni10b29scy1kZXZlbCIKIHNob3J0X2Rlc2M9IkNyb3NzLXBsYXRm b3JtIGFwcGxpY2F0aW9uIGFuZCBVSSBmcmFtZXdvcmsgLSB0cmFuc2xhdGlvbnMiCkBAIC0xMiw0 ICsxMSw0IEBAIG1haW50YWluZXI9IkpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4iCiBsaWNlbnNl PSJHUEwtMy4wLW9ubHkgd2l0aCBRdC1HUEwtZXhjZXB0aW9uLTEuMCIKIGhvbWVwYWdlPSJodHRw czovL3F0LmlvLyIKIGRpc3RmaWxlcz0iaHR0cDovL2Rvd25sb2FkLnF0LmlvL29mZmljaWFsX3Jl bGVhc2VzL3F0LyR7dmVyc2lvbiUuKn0vJHt2ZXJzaW9ufS9zdWJtb2R1bGVzL3F0dHJhbnNsYXRp b25zLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZTRkZDRlZjg5 MmEzNGE5NTE0YTE5MjM4ZjE4OWEzM2VkODVjNzZmMzFkY2FkNjU5OWNlZDkzYjFlMzM0NDBiMwor Y2hlY2tzdW09ZDdiZGQ1NWUyOTA4ZGVkOTAxZGNjMjYyMTU3MTAwYWYyYTQ5MGJmMDRkMzFlMzI5 OTVmNmQ5MWQ3OGRmZGI5NwoKRnJvbSBlZjhjMmZkNDIxYzY0YTY5YjhjYjEzZDM2Zjk0MWZkNjAz YWUxODM1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1D Mz1BMG49MjBUcj1FMT1CQT1BN249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdt YWlsLmNvbT4KRGF0ZTogTW9uLCA4IEF1ZyAyMDIyIDE3OjEzOjEwICswNzAwClN1YmplY3Q6IFtQ QVRDSCAxNy8yNl0gcXQ2LXZpcnR1YWxrZXlib2FyZDogdXBkYXRlIHRvIDYuMy4xLgoKLS0tCiBz cmNwa2dzL3F0Ni12aXJ0dWFsa2V5Ym9hcmQvdGVtcGxhdGUgfCAxMCArKysrKystLS0tCiAxIGZp bGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvcXQ2LXZpcnR1YWxrZXlib2FyZC90ZW1wbGF0ZSBiL3NyY3BrZ3MvcXQ2LXZpcnR1 YWxrZXlib2FyZC90ZW1wbGF0ZQppbmRleCA2N2VjZWYxNDVlYTEuLjc3YTI0NzQwMGI5NyAxMDA2 NDQKLS0tIGEvc3JjcGtncy9xdDYtdmlydHVhbGtleWJvYXJkL3RlbXBsYXRlCisrKyBiL3NyY3Br Z3MvcXQ2LXZpcnR1YWxrZXlib2FyZC90ZW1wbGF0ZQpAQCAtMSwxMCArMSw5IEBACiAjIFRlbXBs YXRlIGZpbGUgZm9yICdxdDYtdmlydHVhbGtleWJvYXJkJwogcGtnbmFtZT1xdDYtdmlydHVhbGtl eWJvYXJkCi12ZXJzaW9uPTYuMy4wCit2ZXJzaW9uPTYuMy4xCiByZXZpc2lvbj0xCiB3cmtzcmM9 InF0dmlydHVhbGtleWJvYXJkLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0iCiBidWlsZF9zdHls ZT1jbWFrZQotY29uZmlndXJlX2FyZ3M9Ii1EUVRfSE9TVF9QQVRIPS91c3IiCiBob3N0bWFrZWRl cGVuZHM9InBlcmwgcGtnLWNvbmZpZyBxdDYtZGVjbGFyYXRpdmUtZGV2ZWwiCiBtYWtlZGVwZW5k cz0icXQ2LWRlY2xhcmF0aXZlLWRldmVsIHF0Ni1zdmctZGV2ZWwgaHVuc3BlbGwtZGV2ZWwiCiBz aG9ydF9kZXNjPSJDcm9zcy1wbGF0Zm9ybSBhcHBsaWNhdGlvbiBhbmQgVUkgZnJhbWV3b3JrIC0g dmlydHVhbGtleWJvYXJkIgpAQCAtMTIsMTAgKzExLDEwIEBAIG1haW50YWluZXI9IkpvaG4gPG1l QGpvaG5ueW5hdG9yLmRldj4iCiBsaWNlbnNlPSJHUEwtMy4wLW9ubHkiCiBob21lcGFnZT0iaHR0 cHM6Ly9xdC5pby8iCiBkaXN0ZmlsZXM9Imh0dHA6Ly9kb3dubG9hZC5xdC5pby9vZmZpY2lhbF9y ZWxlYXNlcy9xdC8ke3ZlcnNpb24lLip9LyR7dmVyc2lvbn0vc3VibW9kdWxlcy9xdHZpcnR1YWxr ZXlib2FyZC1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTg5YWFm MTVhY2Y1NDMyYWY4ZjVjZjRlYzQ1Y2IzMmQ4N2EzMzQ4OTA2MjE1ZGQ1NmU4MWNiMjk0ZWIyNzY1 NzMKK2NoZWNrc3VtPTVmZTA4OWIyMDRkODU5YWIwZGQwMTY5ZjgxMWYyZTMwY2FlN2M1Y2IzNmY4 YWI5NWNhMzY4ODNmMWZjMGMyYjgKIAogaWYgWyAiJFhCUFNfQ0hFQ0tfUEtHUyIgXTsgdGhlbgot CWNvbmZpZ3VyZV9hcmdzKz0iIC1EUVRfQlVJTERfVEVTVFM9T04iCisJY29uZmlndXJlX2FyZ3M9 Ii1EUVRfQlVJTERfVEVTVFM9T04iCiBmaQogCiBkb19jaGVjaygpIHsKQEAgLTMyLDggKzMxLDEx IEBAIHF0Ni12aXJ0dWFsa2V5Ym9hcmQtZGV2ZWxfcGFja2FnZSgpIHsKIAlwa2dfaW5zdGFsbCgp IHsKIAkJdm1vdmUgdXNyL2luY2x1ZGUKIAkJdm1vdmUgdXNyL2xpYi9jbWFrZQorCQl2bW92ZSB1 c3IvbGliL21ldGF0eXBlcworCQl2bW92ZSB1c3IvbGliL3BrZ2NvbmZpZwogCQl2bW92ZSB1c3Iv bGliL3F0Ni9ta3NwZWNzCiAJCXZtb3ZlICJ1c3IvbGliLyouc28iCiAJCXZtb3ZlICJ1c3IvbGli LyoucHJsIgorCQl2bW92ZSB1c3Ivc2hhcmUvcXQ2L21vZHVsZXMKIAl9CiB9CgpGcm9tIGE5NmU1 MGM3ODVmNzIyYmZmMGJkZmMyYzU1MmRkMzM1NzcxZDU5MmEgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206ID0/VVRGLTg/cT89QzQ9OTBvPUMzPUEwbj0yMFRyPUUxPUJBPUE3bj0yMEM9QzM9 QjRuZz0yMERhbmg/PQogPGNvbmdkYW5ocXhAZ21haWwuY29tPgpEYXRlOiBNb24sIDggQXVnIDIw MjIgMTc6MTM6MTAgKzA3MDAKU3ViamVjdDogW1BBVENIIDE4LzI2XSBxdDYtd2F5bGFuZDogdXBk YXRlIHRvIDYuMy4xLgoKLS0tCiBzcmNwa2dzL3F0Ni13YXlsYW5kL3RlbXBsYXRlIHwgMTggKysr KysrKysrKystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwgNyBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13YXlsYW5kL3RlbXBsYXRlIGIvc3Jj cGtncy9xdDYtd2F5bGFuZC90ZW1wbGF0ZQppbmRleCBiNzFhMjczMDA5YjkuLjI0OTI3MWJkM2E3 ZCAxMDA2NDQKLS0tIGEvc3JjcGtncy9xdDYtd2F5bGFuZC90ZW1wbGF0ZQorKysgYi9zcmNwa2dz L3F0Ni13YXlsYW5kL3RlbXBsYXRlCkBAIC0xLDEzICsxLDE0IEBACiAjIFRlbXBsYXRlIGZpbGUg Zm9yICdxdDYtd2F5bGFuZCcKIHBrZ25hbWU9cXQ2LXdheWxhbmQKLXZlcnNpb249Ni4zLjAKK3Zl cnNpb249Ni4zLjEKIHJldmlzaW9uPTEKIHdya3NyYz0icXR3YXlsYW5kLWV2ZXJ5d2hlcmUtc3Jj LSR7dmVyc2lvbn0iCiBidWlsZF9zdHlsZT1jbWFrZQotY29uZmlndXJlX2FyZ3M9Ii1EUVRfSE9T VF9QQVRIPS91c3IgLURRVF9CVUlMRF9UT09MU19XSEVOX0NST1NTQ09NUElMSU5HPXRydWUiCi1o b3N0bWFrZWRlcGVuZHM9InF0Ni1iYXNlLWRldmVsIHBlcmwgcGtnLWNvbmZpZyB3YXlsYW5kLWRl dmVsIHF0Ni13YXlsYW5kLWRldmVsIgoraG9zdG1ha2VkZXBlbmRzPSJxdDYtYmFzZS1kZXZlbCBw ZXJsIHBrZy1jb25maWcgd2F5bGFuZC1kZXZlbAorIHF0Ni1kZWNsYXJhdGl2ZS1kZXZlbCIKICMg WFhYOiBRbWwgYXMgb3B0aW9uYWwgZGVwCiBtYWtlZGVwZW5kcz0icXQ2LWJhc2UtZGV2ZWwgd2F5 bGFuZC1kZXZlbCBsaWJ4a2Jjb21tb24tZGV2ZWwKKyBxdDYtZGVjbGFyYXRpdmUtZGV2ZWwKICBs aWJYY29tcG9zaXRlLWRldmVsIE1lc2FMaWItZGV2ZWwgVnVsa2FuLUhlYWRlcnMgbGliZHJtLWRl dmVsIgogY2hlY2tkZXBlbmRzPSJkYnVzIG1lc2EtZHJpIgogc2hvcnRfZGVzYz0iQ3Jvc3MtcGxh dGZvcm0gYXBwbGljYXRpb24gYW5kIFVJIGZyYW1ld29yayAtIFdheWxhbmQiCkBAIC0xNSwxMCAr MTYsMTEgQEAgbWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKIGxpY2Vuc2U9 IkdQTC0zLjAtb25seSB3aXRoIFF0LUdQTC1leGNlcHRpb24tMS4wLCBMR1BMLTMuMC1vbmx5LCBH UEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnF0LmlvIgogZGlzdGZpbGVz PSJodHRwczovL2Rvd25sb2FkLnF0LmlvL29mZmljaWFsX3JlbGVhc2VzL3F0LyR7dmVyc2lvbiUu Kn0vJHt2ZXJzaW9ufS9zdWJtb2R1bGVzL3F0d2F5bGFuZC1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNp b259LnRhci54eiIKLWNoZWNrc3VtPWU3YjU2N2Y2ZTQzZmZjNTkxOGQ0YWE4MjVjZTFlY2VkNjZh MDBjYjBhODcxMzNiMjkxMmJhNWMxYjJhMDIxOTAKK2NoZWNrc3VtPTZmMTRmZWEyZDE3MmE1YjQx NzBiZTNlZmNiMGU1ODUzNWY2NjA1YjYxYmNkODIzZjZkNWM5ZDE2NWJiOGMwZjAKIAotaWYgWyAi JFhCUFNfQ0hFQ0tfUEtHUyIgXTsgdGhlbgotCWNvbmZpZ3VyZV9hcmdzKz0iIC1EUVRfQlVJTERf VEVTVFM9T04iCitpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KKwljb25maWd1cmVfYXJncz0i LURRVF9CVUlMRF9UT09MU19XSEVOX0NST1NTQ09NUElMSU5HPXRydWUiCisJaG9zdG1ha2VkZXBl bmRzKz0iIHF0Ni13YXlsYW5kLWRldmVsIgogZmkKIAogZG9fY2hlY2soKSB7CkBAIC0zMiw5ICsz NCwxMSBAQCBxdDYtd2F5bGFuZC1kZXZlbF9wYWNrYWdlKCkgewogCXBrZ19pbnN0YWxsKCkgewog CQl2bW92ZSB1c3IvaW5jbHVkZQogCQl2bW92ZSB1c3IvbGliL2NtYWtlCisJCXZtb3ZlIHVzci9s aWIvbWV0YXR5cGVzCisJCXZtb3ZlIHVzci9saWIvcGtnY29uZmlnCiAJCXZtb3ZlIHVzci9saWIv cXQ2L21rc3BlY3MKLQkJdm1vdmUgdXNyL2xpYi9xdDYvbGliZXhlYy9xdHdheWxhbmRzY2FubmVy CiAJCXZtb3ZlICJ1c3IvbGliLyouc28iCiAJCXZtb3ZlICJ1c3IvbGliLyoucHJsIgorCQl2bW92 ZSB1c3Ivc2hhcmUvcXQ2L21vZHVsZXMKIAl9CiB9CgpGcm9tIDI4ZTJjZTAwYzhjZDYzMTM5ZGNh Yzg0ZTRmN2QzMjNmZjkyMjY3YzYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRG LTg/cT89QzQ9OTBvPUMzPUEwbj0yMFRyPUUxPUJBPUE3bj0yMEM9QzM9QjRuZz0yMERhbmg/PQog PGNvbmdkYW5ocXhAZ21haWwuY29tPgpEYXRlOiBNb24sIDggQXVnIDIwMjIgMTc6MTM6MTAgKzA3 MDAKU3ViamVjdDogW1BBVENIIDE5LzI2XSBxdDYtd2Vic29ja2V0czogdXBkYXRlIHRvIDYuMy4x LgoKLS0tCiBzcmNwa2dzL3F0Ni13ZWJzb2NrZXRzL3BhdGNoZXMvbm8tY21ha2UtdGVzdC5wYXRj aCB8ICA3ICsrKysrKysKIHNyY3BrZ3MvcXQ2LXdlYnNvY2tldHMvdGVtcGxhdGUgICAgICAgICAg ICAgICAgICAgIHwgMTQgKysrKysrKysrKystLS0KIDIgZmlsZXMgY2hhbmdlZCwgMTggaW5zZXJ0 aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13 ZWJzb2NrZXRzL3BhdGNoZXMvbm8tY21ha2UtdGVzdC5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvcXQ2LXdlYnNvY2tldHMvcGF0Y2hlcy9uby1jbWFrZS10ZXN0LnBhdGNoIGIvc3JjcGtncy9x dDYtd2Vic29ja2V0cy9wYXRjaGVzL25vLWNtYWtlLXRlc3QucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi44ODI5ZjlmYWIxZGYKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmNwa2dzL3F0Ni13ZWJzb2NrZXRzL3BhdGNoZXMvbm8tY21ha2UtdGVzdC5wYXRjaApAQCAt MCwwICsxLDcgQEAKKy0tLSBhL3Rlc3RzL2F1dG8vQ01ha2VMaXN0cy50eHQKKysrKyBiL3Rlc3Rz L2F1dG8vQ01ha2VMaXN0cy50eHQKK0BAIC0xLDQgKzEsMyBAQAorLWFkZF9zdWJkaXJlY3Rvcnko Y21ha2UpCisgYWRkX3N1YmRpcmVjdG9yeSh3ZWJzb2NrZXRzKQorIGlmKFRBUkdFVCBRdDo6UXVp Y2spCisgICAgIGFkZF9zdWJkaXJlY3RvcnkocW1sKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYt d2Vic29ja2V0cy90ZW1wbGF0ZSBiL3NyY3BrZ3MvcXQ2LXdlYnNvY2tldHMvdGVtcGxhdGUKaW5k ZXggYzJlNjc0YWFjYjMxLi5lNTc1M2NhODhkMDIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcXQ2LXdl YnNvY2tldHMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9xdDYtd2Vic29ja2V0cy90ZW1wbGF0ZQpA QCAtMSwxOCArMSwyMyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncXQ2LXdlYnNvY2tldHMnCiBw a2duYW1lPXF0Ni13ZWJzb2NrZXRzCi12ZXJzaW9uPTYuMy4wCit2ZXJzaW9uPTYuMy4xCiByZXZp c2lvbj0xCiB3cmtzcmM9InF0d2Vic29ja2V0cy1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259Igog YnVpbGRfc3R5bGU9Y21ha2UKLWNvbmZpZ3VyZV9hcmdzPSItRFFUX0hPU1RfUEFUSD0vdXNyIgog aG9zdG1ha2VkZXBlbmRzPSJwZXJsIHF0Ni1iYXNlLWRldmVsIHF0Ni1kZWNsYXJhdGl2ZS1kZXZl bCIKIG1ha2VkZXBlbmRzPSJxdDYtYmFzZS1kZXZlbCBxdDYtZGVjbGFyYXRpdmUtZGV2ZWwiCitk ZXBlbmRzPSJxdDYtcGx1Z2luLXRscy1vcGVuc3NsIgorY2hlY2tkZXBlbmRzPSIkZGVwZW5kcyIK IHNob3J0X2Rlc2M9IkNyb3NzLXBsYXRmb3JtIGFwcGxpY2F0aW9uIGFuZCBVSSBmcmFtZXdvcmsg LSB3ZWJzb2NrZXRzIgogbWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKIGxp Y2Vuc2U9IihMR1BMLTMuMC1vbmx5IE9SIEdQTC0yLjAtb25seSBPUiBHUEwtMy4wLW9ubHkpIEFO RCBHUEwtMy4wLW9ubHkgd2l0aCBRdC1HUEwtZXhjZXB0aW9uLTEuMCIKIGhvbWVwYWdlPSJodHRw czovL3F0LmlvLyIKIGRpc3RmaWxlcz0iaHR0cDovL2Rvd25sb2FkLnF0LmlvL29mZmljaWFsX3Jl bGVhc2VzL3F0LyR7dmVyc2lvbiUuKn0vJHt2ZXJzaW9ufS9zdWJtb2R1bGVzL3F0d2Vic29ja2V0 cy1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWUwMThhMDlmZTk2 MGI3ZDk1NjBkNmJiYzlkM2NhMDIyZmVkNjU2NmU2YmE2ZmM2ZDg2OWE5NzQ4MmQ0ZTYzNjEKK2No ZWNrc3VtPTlmOTgwZDkwYzk3ZmNiZGUxYjUwYzc3M2Y2ZGM1ODBjZmRmOGMzNmNlMTRhMWJlM2Fh MmNjYWRmZTYwNTEyMWEKKworcHJlX2NoZWNrKCkgeworCWV4cG9ydCBRTUwyX0lNUE9SVF9QQVRI PSIkd3Jrc3JjL2J1aWxkL2xpYi9xdDYvcW1sIgorfQogCiBxdDYtd2Vic29ja2V0cy1kZXZlbF9w YWNrYWdlKCkgewogCWRlcGVuZHM9IiR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9u fSBxdDYtYmFzZS1kZXZlbD49JHt2ZXJzaW9ufV8xIgpAQCAtMjAsOCArMjUsMTEgQEAgcXQ2LXdl YnNvY2tldHMtZGV2ZWxfcGFja2FnZSgpIHsKIAlwa2dfaW5zdGFsbCgpIHsKIAkJdm1vdmUgdXNy L2luY2x1ZGUKIAkJdm1vdmUgdXNyL2xpYi9jbWFrZQorCQl2bW92ZSB1c3IvbGliL21ldGF0eXBl cworCQl2bW92ZSB1c3IvbGliL3BrZ2NvbmZpZwogCQl2bW92ZSB1c3IvbGliL3F0Ni9ta3NwZWNz CiAJCXZtb3ZlICJ1c3IvbGliLyouc28iCiAJCXZtb3ZlICJ1c3IvbGliLyoucHJsIgorCQl2bW92 ZSB1c3Ivc2hhcmUvcXQ2L21vZHVsZXMKIAl9CiB9CgpGcm9tIDhlMGE2NDhlYzI3ZGJjNzI4MmM0 MzBmNmQ5NGZkMTViYWQwOGM3YmUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRG LTg/cT89QzQ9OTBvPUMzPUEwbj0yMFRyPUUxPUJBPUE3bj0yMEM9QzM9QjRuZz0yMERhbmg/PQog PGNvbmdkYW5ocXhAZ21haWwuY29tPgpEYXRlOiBUdWUsIDkgQXVnIDIwMjIgMjA6MTY6NDcgKzA3 MDAKU3ViamVjdDogW1BBVENIIDIwLzI2XSBxdDYtM2Q6IHVwZGF0ZSB0byA2LjMuMS4KCi0tLQog c3JjcGtncy9xdDYtM2QvdGVtcGxhdGUgfCA1ICsrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNl cnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LTNkL3Rl bXBsYXRlIGIvc3JjcGtncy9xdDYtM2QvdGVtcGxhdGUKaW5kZXggNjY2ZjU3NTU5NTMyLi5jMDhj M2JkNGE0MWIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcXQ2LTNkL3RlbXBsYXRlCisrKyBiL3NyY3Br Z3MvcXQ2LTNkL3RlbXBsYXRlCkBAIC0xLDEwICsxLDkgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3Ig J3F0Ni0zZCcKIHBrZ25hbWU9cXQ2LTNkCi12ZXJzaW9uPTYuMy4wCit2ZXJzaW9uPTYuMy4xCiBy ZXZpc2lvbj0xCiB3cmtzcmM9InF0M2QtZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9ufSIKIGJ1aWxk X3N0eWxlPWNtYWtlCi1jb25maWd1cmVfYXJncz0iLURRVF9IT1NUX1BBVEg9L3VzciIKIGhvc3Rt YWtlZGVwZW5kcz0icGVybCBxdDYtZGVjbGFyYXRpdmUtZGV2ZWwiCiBtYWtlZGVwZW5kcz0icXQ2 LWRlY2xhcmF0aXZlLWRldmVsIHF0Ni1zaGFkZXJ0b29scy1kZXZlbCBsaWJhc3NpbXAtZGV2ZWwK ICBsaWJhdG9taWMtZGV2ZWwiCkBAIC0xMyw3ICsxMiw3IEBAIG1haW50YWluZXI9IkpvaG4gPG1l QGpvaG5ueW5hdG9yLmRldj4iCiBsaWNlbnNlPSIoTEdQTC0zLjAtb25seSBPUiBHUEwtMi4wLW9u bHkgT1IgR1BMLTMuMC1vbmx5KSBBTkQgR1BMLTMuMC1vbmx5IHdpdGggUXQtR1BMLWV4Y2VwdGlv bi0xLjAiCiBob21lcGFnZT0iaHR0cHM6Ly9xdC5pby8iCiBkaXN0ZmlsZXM9Imh0dHA6Ly9kb3du bG9hZC5xdC5pby9vZmZpY2lhbF9yZWxlYXNlcy9xdC8ke3ZlcnNpb24lLip9LyR7dmVyc2lvbn0v c3VibW9kdWxlcy9xdDNkLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tz dW09NzRlNzYyMzgwZGFkMzQ4ODc4NzhiOTEyNGRiZmI5ODFkNWNmNGI4YjgwNzI4MWZmOGJmZjMx MTE0NWI1NGRlMQorY2hlY2tzdW09OTkxOWI2NmRmYjI1M2ZhMjZkYjFhN2Q2NjQzNThjYmMwN2Y0 NmM4ODEwMDgyZWUzMTIwZDBhNTRiMTUzZWRmZQogCiBxdDYtM2QtZGV2ZWxfcGFja2FnZSgpIHsK IAlkZXBlbmRzPSIke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCgpGcm9tIDYz M2NlNWMyMTRmZjFkMjMyMjhiNjA0NWJmNTNjZmJiNWUzOWIxYjYgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206ID0/VVRGLTg/cT89QzQ9OTBvPUMzPUEwbj0yMFRyPUUxPUJBPUE3bj0yMEM9 QzM9QjRuZz0yMERhbmg/PQogPGNvbmdkYW5ocXhAZ21haWwuY29tPgpEYXRlOiBNb24sIDggQXVn IDIwMjIgMTc6MTM6MTEgKzA3MDAKU3ViamVjdDogW1BBVENIIDIxLzI2XSBOZXcgcGFja2FnZTog cXQ2LXdlYmNoYW5uZWwtNi4zLjEKCi0tLQogc3JjcGtncy9xdDYtd2ViY2hhbm5lbC1kZXZlbCAg ICAgICAgICAgICAgICAgIHwgIDEgKwogLi4uL3BhdGNoZXMvbm8tY21ha2UtdGVzdC5wYXRjaCAg ICAgICAgICAgICAgIHwgIDcgKysrKwogc3JjcGtncy9xdDYtd2ViY2hhbm5lbC90ZW1wbGF0ZSAg ICAgICAgICAgICAgIHwgMzYgKysrKysrKysrKysrKysrKysrKwogc3JjcGtncy9xdDYtd2ViY2hh bm5lbC91cGRhdGUgICAgICAgICAgICAgICAgIHwgIDEgKwogNCBmaWxlcyBjaGFuZ2VkLCA0NSBp bnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMjAwMDAgc3JjcGtncy9xdDYtd2ViY2hhbm5lbC1k ZXZlbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmNoYW5uZWwvcGF0Y2hlcy9u by1jbWFrZS10ZXN0LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViY2hh bm5lbC90ZW1wbGF0ZQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmNoYW5uZWwv dXBkYXRlCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViY2hhbm5lbC1kZXZlbCBiL3NyY3Br Z3MvcXQ2LXdlYmNoYW5uZWwtZGV2ZWwKbmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggMDAwMDAw MDAwMDAwLi4wM2U4YjIzZDc4NWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJj aGFubmVsLWRldmVsCkBAIC0wLDAgKzEgQEAKK3F0Ni13ZWJjaGFubmVsClwgTm8gbmV3bGluZSBh dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViY2hhbm5lbC9wYXRjaGVz L25vLWNtYWtlLXRlc3QucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJjaGFubmVsL3BhdGNoZXMvbm8t Y21ha2UtdGVzdC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAu LmMwMjAyODc3MmEyZAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmNoYW5uZWwv cGF0Y2hlcy9uby1jbWFrZS10ZXN0LnBhdGNoCkBAIC0wLDAgKzEsNyBAQAorLS0tIGEvdGVzdHMv YXV0by9DTWFrZUxpc3RzLnR4dAorKysrIGIvdGVzdHMvYXV0by9DTWFrZUxpc3RzLnR4dAorQEAg LTEsNCArMSwzIEBACistYWRkX3N1YmRpcmVjdG9yeShjbWFrZSkKKyBhZGRfc3ViZGlyZWN0b3J5 KHdlYmNoYW5uZWwpCisgaWYoVEFSR0VUIFF0OjpRdWljaykKKyAgICAgYWRkX3N1YmRpcmVjdG9y eShxbWwpCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJjaGFubmVsL3RlbXBsYXRlIGIvc3Jj cGtncy9xdDYtd2ViY2hhbm5lbC90ZW1wbGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAuLmI4M2U4MDFlZmZkNAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2 LXdlYmNoYW5uZWwvdGVtcGxhdGUKQEAgLTAsMCArMSwzNiBAQAorIyBUZW1wbGF0ZSBmaWxlIGZv ciAncXQ2LXdlYmNoYW5uZWwnCitwa2duYW1lPXF0Ni13ZWJjaGFubmVsCit2ZXJzaW9uPTYuMy4x CityZXZpc2lvbj0xCit3cmtzcmM9InF0d2ViY2hhbm5lbC1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNp b259IgorYnVpbGRfc3R5bGU9Y21ha2UKK2hvc3RtYWtlZGVwZW5kcz0icGVybCBxdDYtYmFzZS1k ZXZlbCBxdDYtZGVjbGFyYXRpdmUtZGV2ZWwiCittYWtlZGVwZW5kcz0icXQ2LWJhc2UtZGV2ZWwg cXQ2LWRlY2xhcmF0aXZlLWRldmVsIHF0Ni13ZWJzb2NrZXRzLWRldmVsIgorc2hvcnRfZGVzYz0i Q3Jvc3MtcGxhdGZvcm0gYXBwbGljYXRpb24gYW5kIFVJIGZyYW1ld29yayAtIHdlYmNoYW5uZWwi CittYWludGFpbmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+IgorbGljZW5zZT0iKExHUEwt My4wLW9ubHkgT1IgR1BMLTIuMC1vbmx5IE9SIEdQTC0zLjAtb25seSkgQU5EIEdQTC0zLjAtb25s eSB3aXRoIFF0LUdQTC1leGNlcHRpb24tMS4wIgoraG9tZXBhZ2U9Imh0dHBzOi8vcXQuaW8vIgor ZGlzdGZpbGVzPSJodHRwOi8vZG93bmxvYWQucXQuaW8vb2ZmaWNpYWxfcmVsZWFzZXMvcXQvJHt2 ZXJzaW9uJS4qfS8ke3ZlcnNpb259L3N1Ym1vZHVsZXMvcXR3ZWJjaGFubmVsLWV2ZXJ5d2hlcmUt c3JjLSR7dmVyc2lvbn0udGFyLnh6IgorY2hlY2tzdW09YWFhMjBhYzIzZjg2OTkyNzIxYjdlZTQ4 N2MzNzlhM2ZkNjhjYWE4Y2RjZWEwYTc3YTM3ZTBkOGI0N2ZmMjY2OAorCitwcmVfY2hlY2soKSB7 CisJZXhwb3J0IFFNTDJfSU1QT1JUX1BBVEg9IiR3cmtzcmMvYnVpbGQvbGliL3F0Ni9xbWwiCit9 CisKK3F0Ni13ZWJjaGFubmVsLWRldmVsX3BhY2thZ2UoKSB7CisJZGVwZW5kcz0iJHtzb3VyY2Vw a2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IHF0Ni1iYXNlLWRldmVsPj0ke3ZlcnNpb259XzEK KwkgcXQ2LXdlYnNvY2tldHMtZGV2ZWw+PSR7dmVyc2lvbn1fMSIKKwlzaG9ydF9kZXNjKz0iIC0g ZGV2ZWxvcG1lbnQgZmlsZXMiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlIHVzci9pbmNsdWRl CisJCXZtb3ZlIHVzci9saWIvY21ha2UKKwkJdm1vdmUgdXNyL2xpYi9tZXRhdHlwZXMKKwkJdm1v dmUgdXNyL2xpYi9wa2djb25maWcKKwkJdm1vdmUgdXNyL2xpYi9xdDYvbWtzcGVjcworCQl2bW92 ZSB1c3IvbGliL3F0Ni9xbWwvUXRXZWJDaGFubmVsL3BsdWdpbnMucW1sdHlwZXMKKwkJdm1vdmUg dXNyL2xpYi9xdDYvcW1sL1F0V2ViQ2hhbm5lbC9xbWxkaXIKKwkJdm1vdmUgInVzci9saWIvKi5z byIKKwkJdm1vdmUgInVzci9saWIvKi5wcmwiCisJCXZtb3ZlIHVzci9zaGFyZS9xdDYvbW9kdWxl cworCX0KK30KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmNoYW5uZWwvdXBkYXRlIGIvc3Jj cGtncy9xdDYtd2ViY2hhbm5lbC91cGRhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwLi44NDQ1NTI0NjUyMjIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13 ZWJjaGFubmVsL3VwZGF0ZQpAQCAtMCwwICsxIEBACitwa2duYW1lPSIke3BrZ25hbWUvNi0vfS1l dmVyeXdoZXJlLXNyYyIKCkZyb20gODZkMGU4OTQxODgzODJiNmJkMmRjZmRlYzc5MzNhMWYwZDZj MTMxOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1DND05MG89QzM9 QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBnbWFp bC5jb20+CkRhdGU6IE1vbiwgOCBBdWcgMjAyMiAxNzoxMzoxMSArMDcwMApTdWJqZWN0OiBbUEFU Q0ggMjIvMjZdIE5ldyBwYWNrYWdlOiBxdDYtbXVsdGltZWRpYS02LjMuMQoKLS0tCiBjb21tb24v c2hsaWJzICAgICAgICAgICAgICAgICAgIHwgIDMgKysrCiBzcmNwa2dzL3F0Ni1tdWx0aW1lZGlh LWRldmVsICAgIHwgIDEgKwogc3JjcGtncy9xdDYtbXVsdGltZWRpYS90ZW1wbGF0ZSB8IDQzICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjcGtncy9xdDYtbXVsdGltZWRpYS91 cGRhdGUgICB8ICAxICsKIDQgZmlsZXMgY2hhbmdlZCwgNDggaW5zZXJ0aW9ucygrKQogY3JlYXRl IG1vZGUgMTIwMDAwIHNyY3BrZ3MvcXQ2LW11bHRpbWVkaWEtZGV2ZWwKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL3F0Ni1tdWx0aW1lZGlhL3RlbXBsYXRlCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjcGtncy9xdDYtbXVsdGltZWRpYS91cGRhdGUKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJz IGIvY29tbW9uL3NobGlicwppbmRleCAyNmYxMGQ2MDRiZTkuLmNlMDRjYzFhZDJjZiAxMDA2NDQK LS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC0yMDc4LDYgKzIwNzgs OSBAQCBsaWJRdDZTZXJpYWxQb3J0LnNvLjYgcXQ2LXNlcmlhbHBvcnQtNi4yLjBhbHBoYV8xCiBs aWJRdDZXZWJTb2NrZXRzLnNvLjYgcXQ2LXdlYnNvY2tldHMtNi4yLjBhbHBoYV8xCiBsaWJRdDZX ZWJDaGFubmVsLnNvLjYgcXQ2LXdlYmNoYW5uZWwtNi4yLjBhbHBoYV8xCiBsaWJRdDZQb3NpdGlv bmluZy5zby42IHF0Ni1sb2NhdGlvbi02LjIuMGFscGhhXzEKK2xpYlF0Nk11bHRpbWVkaWFXaWRn ZXRzLnNvLjYgcXQ2LW11bHRpbWVkaWEtNi4zLjFfMQorbGliUXQ2TXVsdGltZWRpYVF1aWNrLnNv LjYgcXQ2LW11bHRpbWVkaWEtNi4zLjFfMQorbGliUXQ2TXVsdGltZWRpYS5zby42IHF0Ni1tdWx0 aW1lZGlhLTYuMy4xXzEKIGxpYm5wdGguc28uMCBucHRoLTEuMV8xCiBsaWJucHVwbnAuc28uNCBs aWJucHVwbnAtNC4wLjJfMQogbGliZ2xmdy5zby4zIGdsZnctMy4wLjRfMQpkaWZmIC0tZ2l0IGEv c3JjcGtncy9xdDYtbXVsdGltZWRpYS1kZXZlbCBiL3NyY3BrZ3MvcXQ2LW11bHRpbWVkaWEtZGV2 ZWwKbmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggMDAwMDAwMDAwMDAwLi45MzQzNDQ2NTAyZDAK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni1tdWx0aW1lZGlhLWRldmVsCkBAIC0wLDAg KzEgQEAKK3F0Ni1tdWx0aW1lZGlhClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t Z2l0IGEvc3JjcGtncy9xdDYtbXVsdGltZWRpYS90ZW1wbGF0ZSBiL3NyY3BrZ3MvcXQ2LW11bHRp bWVkaWEvdGVtcGxhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi44 NGZmMzMxNDk4NzUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni1tdWx0aW1lZGlhL3Rl bXBsYXRlCkBAIC0wLDAgKzEsNDMgQEAKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ3F0Ni1tdWx0aW1l ZGlhJworcGtnbmFtZT1xdDYtbXVsdGltZWRpYQordmVyc2lvbj02LjMuMQorcmV2aXNpb249MQor d3Jrc3JjPSJxdG11bHRpbWVkaWEtZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9ufSIKK2J1aWxkX3N0 eWxlPWNtYWtlCitjb25maWd1cmVfYXJncz0iLURRVF9GRUFUVVJFX2dzdHJlYW1lcj1PTiIKK2hv c3RtYWtlZGVwZW5kcz0icGVybCBxdDYtZGVjbGFyYXRpdmUtZGV2ZWwgcGtnLWNvbmZpZworIHF0 Ni1zaGFkZXJ0b29scy1kZXZlbCIKK21ha2VkZXBlbmRzPSJxdDYtZGVjbGFyYXRpdmUtZGV2ZWwK KyBxdDYtc2hhZGVydG9vbHMtZGV2ZWwgbGliZ2xpYi1kZXZlbCBnc3QtcGx1Z2lucy1iYXNlMS1k ZXZlbCIKK3Nob3J0X2Rlc2M9IkNyb3NzLXBsYXRmb3JtIGFwcGxpY2F0aW9uIGFuZCBVSSBmcmFt ZXdvcmsgLSBtdWx0aW1lZGlhIgorbWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2 PiIKK2xpY2Vuc2U9IihMR1BMLTMuMC1vbmx5IE9SIEdQTC0yLjAtb25seSBPUiBHUEwtMy4wLW9u bHkpIEFORCBHUEwtMy4wLW9ubHkgd2l0aCBRdC1HUEwtZXhjZXB0aW9uLTEuMCIKK2hvbWVwYWdl PSJodHRwczovL3F0LmlvLyIKK2Rpc3RmaWxlcz0iaHR0cDovL2Rvd25sb2FkLnF0LmlvL29mZmlj aWFsX3JlbGVhc2VzL3F0LyR7dmVyc2lvbiUuKn0vJHt2ZXJzaW9ufS9zdWJtb2R1bGVzL3F0bXVs dGltZWRpYS1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259LnRhci54eiIKK2NoZWNrc3VtPTdlMDMy NDJhYWRkNjM0ZmYyZDlmY2YwODk0ODI5MGYwM2RhM2Q5YTUwMTIzNjlkOTA4ZGE4OWY4MmIxZDcz MzYKKworZG9fY2hlY2soKSB7CisJY2QgYnVpbGQKKwlsb2NhbCBicm9rZW49InRzdF9xbWVkaWFm b3JtYXR8dHN0X3FhdWRpb2RlY29kZXJiYWNrZW5kIgorCWJyb2tlbis9Inx0c3RfcWF1ZGlvZGV2 aWNlfHRzdF9xYXVkaW9zb3VyY2V8dHN0X3FhdWRpb3NpbmsiCisJYnJva2VuKz0ifHRzdF9xbWVk aWFwbGF5ZXJiYWNrZW5kfHRzdF9xbWVkaWFjYXB0dXJlc2Vzc2lvbiIKKwlicm9rZW4rPSJ8dHN0 X3FjYW1lcmFiYWNrZW5kfHRzdF9xcXVpY2t2aWRlb291dHB1dCIKKwlicm9rZW4rPSJ8dHN0X3Fx dWlja3ZpZGVvb3V0cHV0X3dpbmRvdyIKKwljdGVzdCAtRSAiKCRicm9rZW4pIgorfQorCitxdDYt bXVsdGltZWRpYS1kZXZlbF9wYWNrYWdlKCkgeworCWRlcGVuZHM9IiR7c291cmNlcGtnfT49JHt2 ZXJzaW9ufV8ke3JldmlzaW9ufSBxdDYtYmFzZS1kZXZlbD49JHt2ZXJzaW9ufV8xIgorCXNob3J0 X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUg dXNyL2luY2x1ZGUKKwkJdm1vdmUgdXNyL2xpYi9jbWFrZQorCQl2bW92ZSB1c3IvbGliL21ldGF0 eXBlcworCQl2bW92ZSB1c3IvbGliL3BrZ2NvbmZpZworCQl2bW92ZSB1c3IvbGliL3F0Ni9ta3Nw ZWNzCisJCXZtb3ZlIHVzci9saWIvcXQ2L3FtbC9RdE11bHRpbWVkaWEvcGx1Z2lucy5xbWx0eXBl cworCQl2bW92ZSB1c3IvbGliL3F0Ni9xbWwvUXRNdWx0aW1lZGlhL3FtbGRpcgorCQl2bW92ZSAi dXNyL2xpYi8qLnNvIgorCQl2bW92ZSAidXNyL2xpYi8qLnBybCIKKwl9Cit9CmRpZmYgLS1naXQg YS9zcmNwa2dzL3F0Ni1tdWx0aW1lZGlhL3VwZGF0ZSBiL3NyY3BrZ3MvcXQ2LW11bHRpbWVkaWEv dXBkYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uODQ0NTUyNDY1 MjIyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtbXVsdGltZWRpYS91cGRhdGUKQEAg LTAsMCArMSBAQAorcGtnbmFtZT0iJHtwa2duYW1lLzYtL30tZXZlcnl3aGVyZS1zcmMiCgpGcm9t IDY2OGRmZWQxNjJhZmYzNjgzZjQ5ODBiMWNhOWRlOWVlOTVhNTExN2YgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT89QzQ9OTBvPUMzPUEwbj0yMFRyPUUxPUJBPUE3bj0y MEM9QzM9QjRuZz0yMERhbmg/PQogPGNvbmdkYW5ocXhAZ21haWwuY29tPgpEYXRlOiBNb24sIDgg QXVnIDIwMjIgMTg6MjI6NDggKzA3MDAKU3ViamVjdDogW1BBVENIIDIzLzI2XSBOZXcgcGFja2Fn ZTogcXQ2LWNvbm5lY3Rpdml0eS02LjMuMQoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgMiArKwogc3JjcGtncy9xdDYtY29ubmVjdGl2aXR5LWRl dmVsICAgICAgICAgICAgICAgIHwgIDEgKwogLi4uL3BhdGNoZXMvbm8tY21ha2UtdGVzdC5wYXRj aCAgICAgICAgICAgICAgIHwgIDkgKysrKysrCiBzcmNwa2dzL3F0Ni1jb25uZWN0aXZpdHkvdGVt cGxhdGUgICAgICAgICAgICAgfCAzMCArKysrKysrKysrKysrKysrKysrCiA0IGZpbGVzIGNoYW5n ZWQsIDQyIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEyMDAwMCBzcmNwa2dzL3F0Ni1jb25u ZWN0aXZpdHktZGV2ZWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni1jb25uZWN0aXZp dHkvcGF0Y2hlcy9uby1jbWFrZS10ZXN0LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9xdDYtY29ubmVjdGl2aXR5L3RlbXBsYXRlCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3NobGlicyBi L2NvbW1vbi9zaGxpYnMKaW5kZXggY2UwNGNjMWFkMmNmLi4yZTk1YTIyMTE5YWIgMTAwNjQ0Ci0t LSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAtMjA3Miw2ICsyMDcyLDgg QEAgbGliUXQ2RGVzaWduZXIuc28uNiBxdDYtdG9vbHMtNi4xLjBfMQogbGliUXQ2RGVzaWduZXJD b21wb25lbnRzLnNvLjYgcXQ2LXRvb2xzLTYuMS4wXzEKIGxpYlF0NkhlbHAuc28uNiBxdDYtdG9v bHMtNi4xLjBfMQogbGliUXQ2VWlUb29scy5zby42IHF0Ni10b29scy02LjEuMF8xCitsaWJRdDZO ZmMuc28uNiBxdDYtY29ubmVjdGl2aXR5LTYuMy4xXzEKK2xpYlF0NkJsdWV0b290aC5zby42IHF0 Ni1jb25uZWN0aXZpdHktNi4zLjFfMQogbGliUXQ2SHVuc3BlbGxJbnB1dE1ldGhvZC5zby42IHF0 Ni12aXJ0dWFsa2V5Ym9hcmQtNi4xLjBfMQogbGliUXQ2VmlydHVhbEtleWJvYXJkLnNvLjYgcXQ2 LXZpcnR1YWxrZXlib2FyZC02LjEuMF8xCiBsaWJRdDZTZXJpYWxQb3J0LnNvLjYgcXQ2LXNlcmlh bHBvcnQtNi4yLjBhbHBoYV8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni1jb25uZWN0aXZpdHkt ZGV2ZWwgYi9zcmNwa2dzL3F0Ni1jb25uZWN0aXZpdHktZGV2ZWwKbmV3IGZpbGUgbW9kZSAxMjAw MDAKaW5kZXggMDAwMDAwMDAwMDAwLi40NzhjYzlkOGFhMzkKLS0tIC9kZXYvbnVsbAorKysgYi9z cmNwa2dzL3F0Ni1jb25uZWN0aXZpdHktZGV2ZWwKQEAgLTAsMCArMSBAQAorcXQ2LWNvbm5lY3Rp dml0eQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2 LWNvbm5lY3Rpdml0eS9wYXRjaGVzL25vLWNtYWtlLXRlc3QucGF0Y2ggYi9zcmNwa2dzL3F0Ni1j b25uZWN0aXZpdHkvcGF0Y2hlcy9uby1jbWFrZS10ZXN0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZGViODAwNjJhYzcxCi0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9xdDYtY29ubmVjdGl2aXR5L3BhdGNoZXMvbm8tY21ha2UtdGVzdC5wYXRjaApAQCAt MCwwICsxLDkgQEAKKy0tLSBhL3Rlc3RzL2F1dG8vQ01ha2VMaXN0cy50eHQKKysrKyBiL3Rlc3Rz L2F1dG8vQ01ha2VMaXN0cy50eHQKK0BAIC0yNCw2ICsyNCwzIEBAIGlmKFRBUkdFVCBRdDo6TmZj KQorICAgICBhZGRfc3ViZGlyZWN0b3J5KHFuZGVmbmZjc21hcnRwb3N0ZXJyZWNvcmQpCisgICAg IGFkZF9zdWJkaXJlY3RvcnkocW5kZWZmaWx0ZXIpCisgZW5kaWYoKQorLWlmKFRBUkdFVCBRdDo6 Qmx1ZXRvb3RoIEFORCBUQVJHRVQgUXQ6Ok5mYykKKy0gICAgYWRkX3N1YmRpcmVjdG9yeShjbWFr ZSkKKy1lbmRpZigpCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni1jb25uZWN0aXZpdHkvdGVtcGxh dGUgYi9zcmNwa2dzL3F0Ni1jb25uZWN0aXZpdHkvdGVtcGxhdGUKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwLi42Y2I2MTc0NGQwY2IKLS0tIC9kZXYvbnVsbAorKysgYi9z cmNwa2dzL3F0Ni1jb25uZWN0aXZpdHkvdGVtcGxhdGUKQEAgLTAsMCArMSwzMCBAQAorIyBUZW1w bGF0ZSBmaWxlIGZvciAncXQ2LWNvbm5lY3Rpdml0eScKK3BrZ25hbWU9cXQ2LWNvbm5lY3Rpdml0 eQordmVyc2lvbj02LjMuMQorcmV2aXNpb249MQord3Jrc3JjPSJxdGNvbm5lY3Rpdml0eS1ldmVy eXdoZXJlLXNyYy0ke3ZlcnNpb259IgorYnVpbGRfc3R5bGU9Y21ha2UKK2hvc3RtYWtlZGVwZW5k cz0icGVybCBxdDYtZGVjbGFyYXRpdmUtZGV2ZWwiCittYWtlZGVwZW5kcz0icXQ2LWRlY2xhcmF0 aXZlLWRldmVsIgorc2hvcnRfZGVzYz0iQ3Jvc3MtcGxhdGZvcm0gYXBwbGljYXRpb24gYW5kIFVJ IGZyYW1ld29yayAtIENvbm5lY3Rpdml0eSIKK21haW50YWluZXI9IsSQb8OgbiBUcuG6p24gQ8O0 bmcgRGFuaCA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+IgorbGljZW5zZT0iR1BMLTMuMC1vbmx5Igor aG9tZXBhZ2U9Imh0dHBzOi8vcXQuaW8vIgorZGlzdGZpbGVzPSJodHRwOi8vZG93bmxvYWQucXQu aW8vb2ZmaWNpYWxfcmVsZWFzZXMvcXQvJHt2ZXJzaW9uJS4qfS8ke3ZlcnNpb259L3N1Ym1vZHVs ZXMvcXRjb25uZWN0aXZpdHktZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9ufS50YXIueHoiCitjaGVj a3N1bT1iMjVjZTQ3MTBhOWM2MWJjNmE1ZGJhZWViM2UyZWQ5MDdhOGJjODU0NzhmZGIyYWI0MzEy Mjk3NzY4YjY5NWIwCisKK3F0Ni1jb25uZWN0aXZpdHktZGV2ZWxfcGFja2FnZSgpIHsKKwlkZXBl bmRzPSIke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0KKwkgcXQ2LWRlY2xhcmF0 aXZlPj0ke3ZlcnNpb259IgorCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKKwlw a2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2luY2x1ZGUKKwkJdm1vdmUgdXNyL2xpYi9jbWFr ZQorCQl2bW92ZSB1c3IvbGliL21ldGF0eXBlcworCQl2bW92ZSB1c3IvbGliL3BrZ2NvbmZpZwor CQl2bW92ZSB1c3IvbGliL3F0Ni9ta3NwZWNzCisJCXZtb3ZlICJ1c3IvbGliLyouc28iCisJCXZt b3ZlICJ1c3IvbGliLyoucHJsIgorCQl2bW92ZSB1c3Ivc2hhcmUvcXQ2L21vZHVsZXMKKwl9Cit9 CgpGcm9tIDcxNmYzMzJmZDc3YmJkNTAwZDYzOGI1MDUzODUyYjlhZTQ1ZDQyYjIgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT89QzQ9OTBvPUMzPUEwbj0yMFRyPUUxPUJB PUE3bj0yMEM9QzM9QjRuZz0yMERhbmg/PQogPGNvbmdkYW5ocXhAZ21haWwuY29tPgpEYXRlOiBN b24sIDggQXVnIDIwMjIgMTg6MjI6NTcgKzA3MDAKU3ViamVjdDogW1BBVENIIDI0LzI2XSBOZXcg cGFja2FnZTogcXQ2LXNlbnNvcnMtNi4zLjEKCi0tLQogY29tbW9uL3NobGlicyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKysKIHNyY3BrZ3MvcXQ2LXNlbnNvcnMtZGV2ZWwg ICAgICAgICAgICAgICAgICAgICB8ICAxICsKIC4uLi9xdDYtc2Vuc29ycy9wYXRjaGVzL25vLWNt YWtlLXRlc3QucGF0Y2ggICB8ICA4ICsrKysrCiBzcmNwa2dzL3F0Ni1zZW5zb3JzL3RlbXBsYXRl ICAgICAgICAgICAgICAgICAgfCAzMSArKysrKysrKysrKysrKysrKysrCiA0IGZpbGVzIGNoYW5n ZWQsIDQyIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEyMDAwMCBzcmNwa2dzL3F0Ni1zZW5z b3JzLWRldmVsCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtc2Vuc29ycy9wYXRjaGVz L25vLWNtYWtlLXRlc3QucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni1zZW5z b3JzL3RlbXBsYXRlCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMK aW5kZXggMmU5NWEyMjExOWFiLi4xNTdiNTFmM2Y5ODEgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxp YnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAtMjA3NCw2ICsyMDc0LDggQEAgbGliUXQ2SGVscC5z by42IHF0Ni10b29scy02LjEuMF8xCiBsaWJRdDZVaVRvb2xzLnNvLjYgcXQ2LXRvb2xzLTYuMS4w XzEKIGxpYlF0Nk5mYy5zby42IHF0Ni1jb25uZWN0aXZpdHktNi4zLjFfMQogbGliUXQ2Qmx1ZXRv b3RoLnNvLjYgcXQ2LWNvbm5lY3Rpdml0eS02LjMuMV8xCitsaWJRdDZTZW5zb3JzLnNvLjYgcXQ2 LXNlbnNvcnMtNi4zLjFfMQorbGliUXQ2U2Vuc29yc1F1aWNrLnNvLjYgcXQ2LXNlbnNvcnMtNi4z LjFfMQogbGliUXQ2SHVuc3BlbGxJbnB1dE1ldGhvZC5zby42IHF0Ni12aXJ0dWFsa2V5Ym9hcmQt Ni4xLjBfMQogbGliUXQ2VmlydHVhbEtleWJvYXJkLnNvLjYgcXQ2LXZpcnR1YWxrZXlib2FyZC02 LjEuMF8xCiBsaWJRdDZTZXJpYWxQb3J0LnNvLjYgcXQ2LXNlcmlhbHBvcnQtNi4yLjBhbHBoYV8x CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni1zZW5zb3JzLWRldmVsIGIvc3JjcGtncy9xdDYtc2Vu c29ycy1kZXZlbApuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRleCAwMDAwMDAwMDAwMDAuLmViOTQ1 N2YwNDA1NQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXNlbnNvcnMtZGV2ZWwKQEAg LTAsMCArMSBAQAorcXQ2LXNlbnNvcnMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg LS1naXQgYS9zcmNwa2dzL3F0Ni1zZW5zb3JzL3BhdGNoZXMvbm8tY21ha2UtdGVzdC5wYXRjaCBi L3NyY3BrZ3MvcXQ2LXNlbnNvcnMvcGF0Y2hlcy9uby1jbWFrZS10ZXN0LnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNjRmODE1NjNjYjEzCi0tLSAvZGV2L251 bGwKKysrIGIvc3JjcGtncy9xdDYtc2Vuc29ycy9wYXRjaGVzL25vLWNtYWtlLXRlc3QucGF0Y2gK QEAgLTAsMCArMSw4IEBACistLS0gYS90ZXN0cy9hdXRvL0NNYWtlTGlzdHMudHh0CisrKysgYi90 ZXN0cy9hdXRvL0NNYWtlTGlzdHMudHh0CitAQCAtMSw1ICsxLDQgQEAKKyBhZGRfc3ViZGlyZWN0 b3J5KHFzZW5zb3IpCistYWRkX3N1YmRpcmVjdG9yeShjbWFrZSkKKyBpZihUQVJHRVQgUXQ6OlF1 aWNrKQorICAgICBhZGRfc3ViZGlyZWN0b3J5KHFtbCkKKyBlbmRpZigpCmRpZmYgLS1naXQgYS9z cmNwa2dzL3F0Ni1zZW5zb3JzL3RlbXBsYXRlIGIvc3JjcGtncy9xdDYtc2Vuc29ycy90ZW1wbGF0 ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjVhODFmNDNiNjBlYgot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXNlbnNvcnMvdGVtcGxhdGUKQEAgLTAsMCAr MSwzMSBAQAorIyBUZW1wbGF0ZSBmaWxlIGZvciAncXQ2LXNlbnNvcnMnCitwa2duYW1lPXF0Ni1z ZW5zb3JzCit2ZXJzaW9uPTYuMy4xCityZXZpc2lvbj0xCit3cmtzcmM9InF0c2Vuc29ycy1ldmVy eXdoZXJlLXNyYy0ke3ZlcnNpb259IgorYnVpbGRfc3R5bGU9Y21ha2UKK2hvc3RtYWtlZGVwZW5k cz0icGVybCBxdDYtZGVjbGFyYXRpdmUtZGV2ZWwgcXQ2LXN2Zy1kZXZlbCBwa2ctY29uZmlnIgor bWFrZWRlcGVuZHM9InF0Ni1kZWNsYXJhdGl2ZS1kZXZlbCBxdDYtc3ZnLWRldmVsIgorc2hvcnRf ZGVzYz0iQ3Jvc3MtcGxhdGZvcm0gYXBwbGljYXRpb24gYW5kIFVJIGZyYW1ld29yayAtIFNlbnNv cnMiCittYWludGFpbmVyPSLEkG/DoG4gVHLhuqduIEPDtG5nIERhbmggPGNvbmdkYW5ocXhAZ21h aWwuY29tPiIKK2xpY2Vuc2U9IihMR1BMLTMuMC1vbmx5IE9SIEdQTC0yLjAtb25seSBPUiBHUEwt My4wLW9ubHkpIEFORCBHUEwtMy4wLW9ubHkgd2l0aCBRdC1HUEwtZXhjZXB0aW9uLTEuMCIKK2hv bWVwYWdlPSJodHRwczovL3F0LmlvLyIKK2Rpc3RmaWxlcz0iaHR0cDovL2Rvd25sb2FkLnF0Lmlv L29mZmljaWFsX3JlbGVhc2VzL3F0LyR7dmVyc2lvbiUuKn0vJHt2ZXJzaW9ufS9zdWJtb2R1bGVz L3F0c2Vuc29ycy1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259LnRhci54eiIKK2NoZWNrc3VtPTRi MjQwYjU5ZWRiYTlhNDJiNDczNTc1OGEyNWYyNzlhMjY4NDFiOTgyODY0ZTdiMzhmNmVmMGI4MWUw ZDYwY2MKKworcXQ2LXNlbnNvcnMtZGV2ZWxfcGFja2FnZSgpIHsKKwlkZXBlbmRzPSIke3NvdXJj ZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0KKwkgcXQ2LWRlY2xhcmF0aXZlLWRldmVsPj0k e3ZlcnNpb259XzEiCisJc2hvcnRfZGVzYys9IiAtIGRldmVsb3BtZW50IGZpbGVzIgorCXBrZ19p bnN0YWxsKCkgeworCQl2bW92ZSB1c3IvaW5jbHVkZQorCQl2bW92ZSB1c3IvbGliL2NtYWtlCisJ CXZtb3ZlIHVzci9saWIvbWV0YXR5cGVzCisJCXZtb3ZlIHVzci9saWIvcGtnY29uZmlnCisJCXZt b3ZlIHVzci9saWIvcXQ2L21rc3BlY3MKKwkJdm1vdmUgdXNyL2xpYi9xdDYvcW1sL1F0U2Vuc29y cy9wbHVnaW5zLnFtbHR5cGVzCisJCXZtb3ZlIHVzci9saWIvcXQ2L3FtbC9RdFNlbnNvcnMvcW1s ZGlyCisJCXZtb3ZlICJ1c3IvbGliLyouc28iCisJCXZtb3ZlICJ1c3IvbGliLyoucHJsIgorCX0K K30KCkZyb20gMTkzMjc4ZDExZDQ2NDVlN2ZmZmQ1OWY0MWQzNzA3YTYwN2Y1YzBmOSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1DND05MG89QzM9QTBuPTIwVHI9RTE9 QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+CkRhdGU6 IE1vbiwgOCBBdWcgMjAyMiAxODoyMzowOCArMDcwMApTdWJqZWN0OiBbUEFUQ0ggMjUvMjZdIE5l dyBwYWNrYWdlOiBxdDYtcmVtb3Rlb2JqZWN0cy02LjMuMQoKLS0tCiBjb21tb24vc2hsaWJzICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArCiBzcmNwa2dzL3F0Ni1yZW1vdGVv YmplY3RzLWRldmVsICAgICAgICAgICAgICAgfCAgMSArCiAuLi4vcGF0Y2hlcy9uby1jbWFrZS10 ZXN0LnBhdGNoICAgICAgICAgICAgICAgfCAgOSArKysrCiBzcmNwa2dzL3F0Ni1yZW1vdGVvYmpl Y3RzL3RlbXBsYXRlICAgICAgICAgICAgfCA0MyArKysrKysrKysrKysrKysrKysrCiA0IGZpbGVz IGNoYW5nZWQsIDU1IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEyMDAwMCBzcmNwa2dzL3F0 Ni1yZW1vdGVvYmplY3RzLWRldmVsCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtcmVt b3Rlb2JqZWN0cy9wYXRjaGVzL25vLWNtYWtlLXRlc3QucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL3F0Ni1yZW1vdGVvYmplY3RzL3RlbXBsYXRlCgpkaWZmIC0tZ2l0IGEvY29tbW9u L3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggMTU3YjUxZjNmOTgxLi45MWYxOTdlNTRjOTMg MTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAtMjA3NCw2 ICsyMDc0LDggQEAgbGliUXQ2SGVscC5zby42IHF0Ni10b29scy02LjEuMF8xCiBsaWJRdDZVaVRv b2xzLnNvLjYgcXQ2LXRvb2xzLTYuMS4wXzEKIGxpYlF0Nk5mYy5zby42IHF0Ni1jb25uZWN0aXZp dHktNi4zLjFfMQogbGliUXQ2Qmx1ZXRvb3RoLnNvLjYgcXQ2LWNvbm5lY3Rpdml0eS02LjMuMV8x CitsaWJRdDZSZW1vdGVPYmplY3RzLnNvLjYgcXQ2LXJlbW90ZW9iamVjdHMtNi4zLjFfMQorbGli UXQ2UmVtb3RlT2JqZWN0c1FtbC5zby42IHF0Ni1yZW1vdGVvYmplY3RzLTYuMy4xXzEKIGxpYlF0 NlNlbnNvcnMuc28uNiBxdDYtc2Vuc29ycy02LjMuMV8xCiBsaWJRdDZTZW5zb3JzUXVpY2suc28u NiBxdDYtc2Vuc29ycy02LjMuMV8xCiBsaWJRdDZIdW5zcGVsbElucHV0TWV0aG9kLnNvLjYgcXQ2 LXZpcnR1YWxrZXlib2FyZC02LjEuMF8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni1yZW1vdGVv YmplY3RzLWRldmVsIGIvc3JjcGtncy9xdDYtcmVtb3Rlb2JqZWN0cy1kZXZlbApuZXcgZmlsZSBt b2RlIDEyMDAwMAppbmRleCAwMDAwMDAwMDAwMDAuLjJhMDI3Zjk1MjY2ZgotLS0gL2Rldi9udWxs CisrKyBiL3NyY3BrZ3MvcXQ2LXJlbW90ZW9iamVjdHMtZGV2ZWwKQEAgLTAsMCArMSBAQAorcXQ2 LXJlbW90ZW9iamVjdHMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9z cmNwa2dzL3F0Ni1yZW1vdGVvYmplY3RzL3BhdGNoZXMvbm8tY21ha2UtdGVzdC5wYXRjaCBiL3Ny Y3BrZ3MvcXQ2LXJlbW90ZW9iamVjdHMvcGF0Y2hlcy9uby1jbWFrZS10ZXN0LnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMmQ5YmE5NDYzZWJmCi0tLSAvZGV2 L251bGwKKysrIGIvc3JjcGtncy9xdDYtcmVtb3Rlb2JqZWN0cy9wYXRjaGVzL25vLWNtYWtlLXRl c3QucGF0Y2gKQEAgLTAsMCArMSw5IEBACistLS0gYS90ZXN0cy9hdXRvL0NNYWtlTGlzdHMudHh0 CisrKysgYi90ZXN0cy9hdXRvL0NNYWtlTGlzdHMudHh0CitAQCAtMSw2ICsxLDUgQEAKKyAKKyBh ZGRfc3ViZGlyZWN0b3J5KGJlbmNobWFya3MpCistYWRkX3N1YmRpcmVjdG9yeShjbWFrZSkKKyBh ZGRfc3ViZGlyZWN0b3J5KG1vZGVscmVwbGljYSkKKyBhZGRfc3ViZGlyZWN0b3J5KG1vZGVsdmll dykKKyBhZGRfc3ViZGlyZWN0b3J5KHBvZHMpCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni1yZW1v dGVvYmplY3RzL3RlbXBsYXRlIGIvc3JjcGtncy9xdDYtcmVtb3Rlb2JqZWN0cy90ZW1wbGF0ZQpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmNkYzNiMjNmNTJkZQotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXJlbW90ZW9iamVjdHMvdGVtcGxhdGUKQEAgLTAs MCArMSw0MyBAQAorIyBUZW1wbGF0ZSBmaWxlIGZvciAncXQ2LXJlbW90ZW9iamVjdHMnCitwa2du YW1lPXF0Ni1yZW1vdGVvYmplY3RzCit2ZXJzaW9uPTYuMy4xCityZXZpc2lvbj0xCit3cmtzcmM9 InF0cmVtb3Rlb2JqZWN0cy1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259IgorYnVpbGRfc3R5bGU9 Y21ha2UKK2hvc3RtYWtlZGVwZW5kcz0icGVybCBxdDYtZGVjbGFyYXRpdmUtZGV2ZWwgcGtnLWNv bmZpZyIKK21ha2VkZXBlbmRzPSJxdDYtZGVjbGFyYXRpdmUtZGV2ZWwiCisjIE5vdCBhIHN0cmlj dCBkZXBlbmRlbmN5LCBidXQgaXQncyAyMDIyLCBldmVyeW9uZSBzaG91bGQgdXNlIFRMUworZGVw ZW5kcz0icXQ2LXBsdWdpbi10bHMtb3BlbnNzbCIKK2NoZWNrZGVwZW5kcz0iJGRlcGVuZHMiCitz aG9ydF9kZXNjPSJDcm9zcy1wbGF0Zm9ybSBhcHBsaWNhdGlvbiBhbmQgVUkgZnJhbWV3b3JrIC0g UmVtb3RlIE9iamVjdHMiCittYWludGFpbmVyPSLEkG/DoG4gVHLhuqduIEPDtG5nIERhbmggPGNv bmdkYW5ocXhAZ21haWwuY29tPiIKK2xpY2Vuc2U9IihMR1BMLTMuMC1vbmx5IE9SIEdQTC0yLjAt b25seSBPUiBHUEwtMy4wLW9ubHkpIEFORCBHUEwtMy4wLW9ubHkgd2l0aCBRdC1HUEwtZXhjZXB0 aW9uLTEuMCIKK2hvbWVwYWdlPSJodHRwczovL3F0LmlvLyIKK2Rpc3RmaWxlcz0iaHR0cDovL2Rv d25sb2FkLnF0LmlvL29mZmljaWFsX3JlbGVhc2VzL3F0LyR7dmVyc2lvbiUuKn0vJHt2ZXJzaW9u fS9zdWJtb2R1bGVzL3F0cmVtb3Rlb2JqZWN0cy1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259LnRh ci54eiIKK2NoZWNrc3VtPWVhNmQwMzhiMTFjNjA5ODFkZTBiZDM5YTYwOTFhNTlhYmY3ZDAzMWUz N2JmYzU5MmIzMWJlMTIxN2JlZjRjYTYKKworaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCisJ aG9zdG1ha2VkZXBlbmRzKz0iIHF0Ni1yZW1vdGVvYmplY3RzIgorCWNvbmZpZ3VyZV9hcmdzPSIt RFFUX0JVSUxEX1RPT0xTX1dIRU5fQ1JPU1NDT01QSUxJTkc9dHJ1ZSIKK2ZpCisKK3ByZV9jaGVj aygpIHsKKwlleHBvcnQgUU1MMl9JTVBPUlRfUEFUSD0iJHdya3NyYy9idWlsZC9saWIvcXQ2L3Ft bCIKK30KKworcXQ2LXJlbW90ZW9iamVjdHMtZGV2ZWxfcGFja2FnZSgpIHsKKwlkZXBlbmRzPSIk e3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0KKwkgcXQ2LWRlY2xhcmF0aXZlLWRl dmVsPj0ke3ZlcnNpb259XzEiCisJc2hvcnRfZGVzYys9IiAtIGRldmVsb3BtZW50IGZpbGVzIgor CXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSB1c3IvaW5jbHVkZQorCQl2bW92ZSB1c3IvbGliL2Nt YWtlCisJCXZtb3ZlIHVzci9saWIvbWV0YXR5cGVzCisJCXZtb3ZlIHVzci9saWIvcGtnY29uZmln CisJCXZtb3ZlIHVzci9saWIvcXQ2L21rc3BlY3MKKwkJdm1vdmUgdXNyL2xpYi9xdDYvcW1sL1F0 UmVtb3RlT2JqZWN0cy9wbHVnaW5zLnFtbHR5cGVzCisJCXZtb3ZlIHVzci9saWIvcXQ2L3FtbC9R dFJlbW90ZU9iamVjdHMvcW1sZGlyCisJCXZtb3ZlICJ1c3IvbGliLyouc28iCisJCXZtb3ZlICJ1 c3IvbGliLyoucHJsIgorCX0KK30KCkZyb20gZThkMmM0ZTgzMjEwNWExY2VmMzFlNjVhZTliOWQ3 ODBiNmYyY2RiYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1DND05 MG89QzM9QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2Rhbmhx eEBnbWFpbC5jb20+CkRhdGU6IE1vbiwgOCBBdWcgMjAyMiAxNzoxMzoxMSArMDcwMApTdWJqZWN0 OiBbUEFUQ0ggMjYvMjZdIE5ldyBwYWNrYWdlOiBxdDYtd2ViZW5naW5lLTYuMy4xLgoKLS0tCiBj b21tb24vc2hsaWJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA3ICsKIHNy Y3BrZ3MvcXQ2LXdlYmVuZ2luZS1kZXZlbCAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogc3Jj cGtncy9xdDYtd2ViZW5naW5lLWV4YW1wbGVzICAgICAgICAgICAgICAgIHwgICAgMSArCiAuLi4v cGF0Y2hlcy8wMDAxLU5vbmUtbm8tZGVidWcucGF0Y2ggICAgICAgICAgfCAgIDExICsKIC4uLi9w YXRjaGVzLzAwMDItZW5hYmxlLXBwYzY0LnBhdGNoICAgICAgICAgICB8ICAgMjAgKwogLi4uL3Bh dGNoZXMvMDAwMy1jcm9zcy1oYWNrLnBhdGNoICAgICAgICAgICAgIHwgICAxMCArCiAuLi4vMDAw NC1wcGMtZGlzYWJsZS1qeGwtZGVjb2Rlci5wYXRjaCAgICAgICAgfCAgIDEzICsKIC4uLi9wYXRj aGVzLzAwNTAtbm8tZ2xpYmMtY21ha2UtY2hlY2sucGF0Y2ggICB8ICAgMTQgKwogLi4uLzAxMDAt Y2hyb21pdW0tc2FuZGJveC1tZW1iYXJyaWVyLnBhdGNoICAgIHwgICA1OCArCiAuLi4vcXQ2LXdl YmVuZ2luZS9wYXRjaGVzLzAxMDEtc2l6ZV90LnBhdGNoICAgfCAgIDE2ICsKIC4uLi8wMTAyLWNo cm9taXVtLTkwLXJ1eS1pbmNsdWRlLnBhdGNoICAgICAgICB8ICAgMTkgKwogLi4uLXY4LW1vbm90 b25pYy1wdGhyZWFkLWNvbnRfdGltZWR3YWl0LnBhdGNoIHwgICAyMiArCiAuLi4vMDEwNC1jaHJv bWl1bS1yZXZlcnQtOWQwODBjMC5wYXRjaCAgICAgICAgfCAgMTYyICsKIC4uLi1jaHJvbWl1bS1y ZXZlcnQtZHJvcC1vZi1zeXN0ZW0tamF2YS5wYXRjaCB8ICAgMTUgKwogLi4uL3BhdGNoZXMvMDEw Ni1jaHJvbWl1bS1zeXN0ZW0tbm9kZWpzLnBhdGNoIHwgICAyMCArCiAuLi4vMDEwNy1jaHJvbWl1 bS1jdXJzZWReVXNjb3BlZF9maWxlLnBhdGNoICAgfCAgIDE4ICsKIC4uLi8wMTA4LWNocm9taXVt LWZpeC1uYXJyb3dpbmctY2FzdC5wYXRjaCAgICB8ICAgNTMgKwogLi4uLzAxMDktY2hyb21pdW0t cmVtb3ZlLXN0cmlwX2JpbmFyeS5wYXRjaCAgIHwgICAzMiArCiAuLi5pdW0tcmV2ZXJ0LXVzZS1m ZmlsZS1jb21waWxhdGlvbi1kaXIucGF0Y2ggfCAgIDU3ICsKIC4uLjExLWNocm9taXVtLW5vLVdu by1zdHJpbmdvcC1vdmVycmVhZC5wYXRjaCB8ICAgMTAgKwogLi4uLzAxNTAtY2hyb21pdW0tZ2xp YmMtbGliY19tYWxsb2MucGF0Y2ggICAgIHwgICAyNCArCiAuLi4taW5jbHVkZS1zeXMtcmVnLmgt dG8tZ2V0LV9fV09SRFNJWkUucGF0Y2ggfCAgIDIxICsKIC4uLi8wMjAxLWNocm9taXVtLW11c2wt ZGlzcGF0Y2gtdG8tbXVzbC5wYXRjaCB8ICAxMDMgKwogLi4uLzAyMDItY2hyb21pdW0tbXVzbC1u by1tYWxsaW5mby5wYXRjaCAgICAgIHwgICA2MiArCiAuLi4vMDIwMy1jaHJvbWl1bS1tdXNsLXNp Z2luZm9fdC5wYXRjaCAgICAgICAgfCAgIDE4ICsKIC4uLi8wMjA0LWNocm9taXVtLW11c2wtc3Rh Y2tzdGFydC5wYXRjaCAgICAgICB8ICAgMjAgKwogLi4uL3BhdGNoZXMvMDIwNS1jaHJvbWl1bS1t dXNsLXNhbmRib3gucGF0Y2ggIHwgICA5MiArCiAuLi4wMjA2LWNocm9taXVtLW11c2wtZGVmYXVs dC1zdGFja3NpemUucGF0Y2ggfCAgIDE1ICsKIC4uLi9wYXRjaGVzLzAyMDgtY2hyb21pdW0tbXVz bC1leGVjaW5mby5wYXRjaCB8ICAxMjUgKwogLi4uLzAyMDktY2hyb21pdW0tbXVzbC10aHJlYWQt c3RhY2tzaXplLnBhdGNoIHwgICAyMiArCiAuLi4vMDIxMC1jaHJvbWl1bS1tdXNsLW1zZ3ZlYy1w dXNoX2JhY2sucGF0Y2ggfCAgIDE0ICsKIC4uLml1bS1tdXNsLWNhbm9uaWNhbGl6ZS1maWxlLW5h bWUtbXVzbC5wYXRjaCB8ICAgMTEgKwogLi4uLzAyMTItY2hyb21pdW0tbXVzbC1uby1nZXRjb250 ZXh0LnBhdGNoICAgIHwgICAyOSArCiAuLi4vcGF0Y2hlcy8wMjEzLWNocm9taXVtLW11c2wtY3Jh c2hwYWQucGF0Y2ggfCAgIDI0ICsKIC4uLi9wYXRjaGVzLzAyMTQtY2hyb21pdW0tbXVzbC1maXhl cy5wYXRjaCAgICB8ICAxMDggKwogLi4uL3BhdGNoZXMvMDIxNS1jaHJvbWl1bS1tdXNsLWNkZWZz LnBhdGNoICAgIHwgICAyOSArCiAuLi4vcGF0Y2hlcy8wMjE2LWNocm9taXVtLW11c2wtc3RhdC5w YXRjaCAgICAgfCAgIDEyICsKIC4uLi9wYXRjaGVzLzAyMTctY2hyb21pdW0tbXVzbC1yZXNvbHZl ci5wYXRjaCB8ICAgNzcgKwogLi4uL3BhdGNoZXMvMDYwMC1jaHJvbWl1bS1zbmRpby5wYXRjaCAg ICAgICAgIHwgIDg3NiArKysrCiAuLi4vcGF0Y2hlcy8wNzAwLWFybXY3bC1uZW9uLnBhdGNoICAg ICAgICAgICAgfCAgIDEwICsKIC4uLi1jaHJvbWl1bS1tdXNsLWNyb3NzLW5vLWFzbV9wdHJhY2Vf aC5wYXRjaCB8ICAgMzAgKwogLi4uLzA3NTEtY2hyb21pdW0tbXVzbC1hcm0tdXNlcl92ZnAucGF0 Y2ggICAgIHwgICAyMCArCiAuLi4vMDc1Mi1jaHJvbWl1bS1tdXNsLWFybS1lbGZfYXV4dl90LnBh dGNoICAgfCAgIDE4ICsKIC4uLjA4MDEtY2hyb21pdW0taTY4Ni12YWFwaS1mcGVybWlzc2l2ZS5w YXRjaCB8ICAgMjQgKwogLi4uL3BhdGNoZXMvMDkwMC14eHgtcHBjNjRsZS1saWJ2cHgucGF0Y2gg ICAgIHwgICA2NSArCiAuLi4vMDkwMS14eHgtcHBjNjRsZS1zYW5kYm94LWxpbnV4LXN0YXQucGF0 Y2ggfCAgIDMxICsKIC4uLi9wYXRjaGVzLzA5MDIteHh4LXBwYzY0bGUtc3VwcG9ydC5wYXRjaCAg ICB8IDM1NTYgKysrKysrKysrKysrKysrKysKIC4uLi8wOTAzLXh4eC1wcGM2NGxlLXN3aWZ0c2hh ZGVyLnBhdGNoICAgICAgICB8ICAgMTggKwogLi4uL3BhdGNoZXMvY3Jvc3MtYnVpbGQtZXhhbXBs ZXMucGF0Y2ggICAgICAgIHwgICAxNiArCiBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvdGVtcGxhdGUg ICAgICAgICAgICAgICAgfCAgMTc5ICsKIHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS91cGRhdGUgICAg ICAgICAgICAgICAgICB8ICAgIDEgKwogNTEgZmlsZXMgY2hhbmdlZCwgNjIwOSBpbnNlcnRpb25z KCspCiBjcmVhdGUgbW9kZSAxMjAwMDAgc3JjcGtncy9xdDYtd2ViZW5naW5lLWRldmVsCiBjcmVh dGUgbW9kZSAxMjAwMDAgc3JjcGtncy9xdDYtd2ViZW5naW5lLWV4YW1wbGVzCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDAwMS1Ob25lLW5vLWRlYnVn LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMv MDAwMi1lbmFibGUtcHBjNjQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13 ZWJlbmdpbmUvcGF0Y2hlcy8wMDAzLWNyb3NzLWhhY2sucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDA0LXBwYy1kaXNhYmxlLWp4bC1kZWNv ZGVyLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNo ZXMvMDA1MC1uby1nbGliYy1jbWFrZS1jaGVjay5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDAtY2hyb21pdW0tc2FuZGJveC1tZW1iYXJy aWVyLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNo ZXMvMDEwMS1zaXplX3QucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJl bmdpbmUvcGF0Y2hlcy8wMTAyLWNocm9taXVtLTkwLXJ1eS1pbmNsdWRlLnBhdGNoCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwMy1jaHJvbWl1bS12 OC1tb25vdG9uaWMtcHRocmVhZC1jb250X3RpbWVkd2FpdC5wYXRjaAogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDQtY2hyb21pdW0tcmV2ZXJ0LTlk MDgwYzAucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0 Y2hlcy8wMTA1LWNocm9taXVtLXJldmVydC1kcm9wLW9mLXN5c3RlbS1qYXZhLnBhdGNoCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwNi1jaHJvbWl1 bS1zeXN0ZW0tbm9kZWpzLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2Vi ZW5naW5lL3BhdGNoZXMvMDEwNy1jaHJvbWl1bS1jdXJzZWReVXNjb3BlZF9maWxlLnBhdGNoCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwOC1jaHJv bWl1bS1maXgtbmFycm93aW5nLWNhc3QucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA5LWNocm9taXVtLXJlbW92ZS1zdHJpcF9iaW5hcnku cGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8w MTEwLWNocm9taXVtLXJldmVydC11c2UtZmZpbGUtY29tcGlsYXRpb24tZGlyLnBhdGNoCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDExMS1jaHJvbWl1 bS1uby1Xbm8tc3RyaW5nb3Atb3ZlcnJlYWQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTUwLWNocm9taXVtLWdsaWJjLWxpYmNfbWFsbG9j LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMv MDIwMC1jaHJvbWl1bS1tdXNsLWluY2x1ZGUtc3lzLXJlZy5oLXRvLWdldC1fX1dPUkRTSVpFLnBh dGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIw MS1jaHJvbWl1bS1tdXNsLWRpc3BhdGNoLXRvLW11c2wucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjAyLWNocm9taXVtLW11c2wtbm8tbWFs bGluZm8ucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0 Y2hlcy8wMjAzLWNocm9taXVtLW11c2wtc2lnaW5mb190LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIwNC1jaHJvbWl1bS1tdXNsLXN0YWNr c3RhcnQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0 Y2hlcy8wMjA1LWNocm9taXVtLW11c2wtc2FuZGJveC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDYtY2hyb21pdW0tbXVzbC1kZWZhdWx0 LXN0YWNrc2l6ZS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2lu ZS9wYXRjaGVzLzAyMDgtY2hyb21pdW0tbXVzbC1leGVjaW5mby5wYXRjaAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDktY2hyb21pdW0tbXVzbC10 aHJlYWQtc3RhY2tzaXplLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2Vi ZW5naW5lL3BhdGNoZXMvMDIxMC1jaHJvbWl1bS1tdXNsLW1zZ3ZlYy1wdXNoX2JhY2sucGF0Y2gK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjExLWNo cm9taXVtLW11c2wtY2Fub25pY2FsaXplLWZpbGUtbmFtZS1tdXNsLnBhdGNoCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIxMi1jaHJvbWl1bS1tdXNs LW5vLWdldGNvbnRleHQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJl bmdpbmUvcGF0Y2hlcy8wMjEzLWNocm9taXVtLW11c2wtY3Jhc2hwYWQucGF0Y2gKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjE0LWNocm9taXVtLW11 c2wtZml4ZXMucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUv cGF0Y2hlcy8wMjE1LWNocm9taXVtLW11c2wtY2RlZnMucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjE2LWNocm9taXVtLW11c2wtc3RhdC5w YXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAy MTctY2hyb21pdW0tbXVzbC1yZXNvbHZlci5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA2MDAtY2hyb21pdW0tc25kaW8ucGF0Y2gKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wNzAwLWFybXY3bC1u ZW9uLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNo ZXMvMDc1MC1jaHJvbWl1bS1tdXNsLWNyb3NzLW5vLWFzbV9wdHJhY2VfaC5wYXRjaAogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA3NTEtY2hyb21pdW0t bXVzbC1hcm0tdXNlcl92ZnAucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13 ZWJlbmdpbmUvcGF0Y2hlcy8wNzUyLWNocm9taXVtLW11c2wtYXJtLWVsZl9hdXh2X3QucGF0Y2gK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wODAxLWNo cm9taXVtLWk2ODYtdmFhcGktZnBlcm1pc3NpdmUucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wOTAwLXh4eC1wcGM2NGxlLWxpYnZweC5wYXRj aAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA5MDEt eHh4LXBwYzY0bGUtc2FuZGJveC1saW51eC1zdGF0LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDkwMi14eHgtcHBjNjRsZS1zdXBwb3J0LnBh dGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDkw My14eHgtcHBjNjRsZS1zd2lmdHNoYWRlci5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzL2Nyb3NzLWJ1aWxkLWV4YW1wbGVzLnBhdGNoCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3RlbXBsYXRlCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3VwZGF0ZQoKZGlmZiAtLWdpdCBhL2NvbW1v bi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4IDkxZjE5N2U1NGM5My4uMWY4YWNjNDNjMzZl IDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTIwODcs NiArMjA4NywxMyBAQCBsaWJRdDZQb3NpdGlvbmluZy5zby42IHF0Ni1sb2NhdGlvbi02LjIuMGFs cGhhXzEKIGxpYlF0Nk11bHRpbWVkaWFXaWRnZXRzLnNvLjYgcXQ2LW11bHRpbWVkaWEtNi4zLjFf MQogbGliUXQ2TXVsdGltZWRpYVF1aWNrLnNvLjYgcXQ2LW11bHRpbWVkaWEtNi4zLjFfMQogbGli UXQ2TXVsdGltZWRpYS5zby42IHF0Ni1tdWx0aW1lZGlhLTYuMy4xXzEKK2xpYlF0NldlYkVuZ2lu ZVF1aWNrLnNvLjYgcXQ2LXdlYmVuZ2luZS02LjMuMV8xCitsaWJRdDZQZGZXaWRnZXRzLnNvLjYg cXQ2LXdlYmVuZ2luZS02LjMuMV8xCitsaWJRdDZQZGZRdWljay5zby42IHF0Ni13ZWJlbmdpbmUt Ni4zLjFfMQorbGliUXQ2V2ViRW5naW5lQ29yZS5zby42IHF0Ni13ZWJlbmdpbmUtNi4zLjFfMQor bGliUXQ2UGRmLnNvLjYgcXQ2LXdlYmVuZ2luZS02LjMuMV8xCitsaWJRdDZXZWJFbmdpbmVRdWlj a0RlbGVnYXRlc1FtbC5zby42IHF0Ni13ZWJlbmdpbmUtNi4zLjFfMQorbGliUXQ2V2ViRW5naW5l V2lkZ2V0cy5zby42IHF0Ni13ZWJlbmdpbmUtNi4zLjFfMQogbGlibnB0aC5zby4wIG5wdGgtMS4x XzEKIGxpYm5wdXBucC5zby40IGxpYm5wdXBucC00LjAuMl8xCiBsaWJnbGZ3LnNvLjMgZ2xmdy0z LjAuNF8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUtZGV2ZWwgYi9zcmNwa2dz L3F0Ni13ZWJlbmdpbmUtZGV2ZWwKbmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggMDAwMDAwMDAw MDAwLi44ZTRkMWI5OWM1ODcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdp bmUtZGV2ZWwKQEAgLTAsMCArMSBAQAorcXQ2LXdlYmVuZ2luZQpcIE5vIG5ld2xpbmUgYXQgZW5k IG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS1leGFtcGxlcyBiL3Ny Y3BrZ3MvcXQ2LXdlYmVuZ2luZS1leGFtcGxlcwpuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRleCAw MDAwMDAwMDAwMDAuLjhlNGQxYjk5YzU4NwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2 LXdlYmVuZ2luZS1leGFtcGxlcwpAQCAtMCwwICsxIEBACitxdDYtd2ViZW5naW5lClwgTm8gbmV3 bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvMDAwMS1Ob25lLW5vLWRlYnVnLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvMDAwMS1Ob25lLW5vLWRlYnVnLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwMC4uMWJhMzNmOGU2ZmQ5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9x dDYtd2ViZW5naW5lL3BhdGNoZXMvMDAwMS1Ob25lLW5vLWRlYnVnLnBhdGNoCkBAIC0wLDAgKzEs MTEgQEAKKy0tLSBhL2NtYWtlL0Z1bmN0aW9ucy5jbWFrZQorKysrIGIvY21ha2UvRnVuY3Rpb25z LmNtYWtlCitAQCAtODEzLDYgKzgxMyw4IEBAIG1hY3JvKGFwcGVuZF9idWlsZF90eXBlX3NldHVw KQorICAgICAgICAgZW5kaWYoKQorICAgICBlbHNlaWYoJHtjb25maWd9IFNUUkVRVUFMICJNaW5T aXplUmVsIikKKyAgICAgICAgIGxpc3QoQVBQRU5EIGduQXJnQXJnIGlzX2RlYnVnPWZhbHNlIHN5 bWJvbF9sZXZlbD0wIG9wdGltaXplX2Zvcl9zaXplPXRydWUpCisrICAgIGVsc2VpZigke2NvbmZp Z30gU1RSRVFVQUwgIk5vbmUiKQorKyAgICAgICAgbGlzdChBUFBFTkQgZ25BcmdBcmcgaXNfZGVi dWc9ZmFsc2Ugc3ltYm9sX2xldmVsPTApCisgICAgIGVuZGlmKCkKKyAgICAgaWYoRkVBVFVSRV9k ZXZlbG9wZXJfYnVpbGQgT1IgKCR7Y29uZmlnfSBTVFJFUVVBTCAiRGVidWciKSBPUiBRVF9GRUFU VVJFX3dlYmVuZ2luZV9zYW5pdGl6ZXIpCisgICAgICAgICBsaXN0KEFQUEVORCBnbkFyZ0FyZwpk aWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDAwMi1lbmFibGUtcHBj NjQucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDAyLWVuYWJsZS1wcGM2 NC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmQ3MmVmMWFk MWExMAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAw MDItZW5hYmxlLXBwYzY0LnBhdGNoCkBAIC0wLDAgKzEsMjAgQEAKKy0tLSBhL2NtYWtlL0Z1bmN0 aW9ucy5jbWFrZQorKysrIGIvY21ha2UvRnVuY3Rpb25zLmNtYWtlCitAQCAtNjIyLDYgKzYyMiw4 IEBAIGZ1bmN0aW9uKGdldF9nbl9hcmNoIHJlc3VsdCBhcmNoKQorICAgICAgICAgc2V0KCR7cmVz dWx0fSAibWlwc2VsIiBQQVJFTlRfU0NPUEUpCisgICAgIGVsc2VpZihhcmNoIFNUUkVRVUFMICJt aXBzZWw2NCIpCisgICAgICAgICBzZXQoJHtyZXN1bHR9ICJtaXBzNjRlbCIgUEFSRU5UX1NDT1BF KQorKyAgICBlbHNlaWYoYXJjaCBTVFJFUVVBTCAicG93ZXI2NCIpCisrICAgICAgICBzZXQoJHty ZXN1bHR9ICJwb3dlcjY0IiBQQVJFTlRfU0NPUEUpCisgICAgIGVsc2UoKQorICAgICAgICAgbWVz c2FnZShERUJVRyAiVW5zdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlOiAke2FyY2h9IikKKyAgICAgZW5k aWYoKQorQEAgLTY0MSw2ICs2NDMsOCBAQCBmdW5jdGlvbihnZXRfdjhfYXJjaCByZXN1bHQgdGFy Z2V0QXJjaCBoCisgICAgICAgICAgICAgc2V0KCR7cmVzdWx0fSAibWlwc2VsIiBQQVJFTlRfU0NP UEUpCisgICAgICAgICBlbHNlaWYoaG9zdEFyY2ggU1RSRVFVQUwgIm1pcHNlbDY0IikKKyAgICAg ICAgICAgICBzZXQoJHtyZXN1bHR9ICJtaXBzZWwiIFBBUkVOVF9TQ09QRSkKKysgICAgICAgIGVs c2VpZihob3N0QXJjaCBTVFJFUVVBTCAicG93ZXI2NCIpCisrICAgICAgICAgICAgc2V0KCR7cmVz dWx0fSAicG93ZXI2NCIgUEFSRU5UX1NDT1BFKQorICAgICAgICAgZWxzZSgpCisgICAgICAgICAg ICAgbWVzc2FnZShERUJVRyAiVW5zdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlOiAke2hvc3RBcmNofSIp CisgICAgICAgICBlbmRpZigpCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0 Y2hlcy8wMDAzLWNyb3NzLWhhY2sucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hl cy8wMDAzLWNyb3NzLWhhY2sucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwLi5lYTlmOTAwOTRhNjMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJl bmdpbmUvcGF0Y2hlcy8wMDAzLWNyb3NzLWhhY2sucGF0Y2gKQEAgLTAsMCArMSwxMCBAQAorLS0t IGEvc3JjL2NvcmUvYXBpL0NNYWtlTGlzdHMudHh0CisrKysgYi9zcmMvY29yZS9hcGkvQ01ha2VM aXN0cy50eHQKK0BAIC01MCw2ICs1MCw3IEBAIHF0X2ludGVybmFsX2FkZF9tb2R1bGUoV2ViRW5n aW5lQ29yZQorICAgICAgICAgUXQ6Okd1aQorICAgICAgICAgUXQ6Ok5ldHdvcmsKKyAgICAgICAg IFF0OjpRdWljaworKyAgICAgICAgWDExCisgKQorIAorIHNldF90YXJnZXRfcHJvcGVydGllcyhX ZWJFbmdpbmVDb3JlIFBST1BFUlRJRVMgUVRXRUJFTkdJTkVQUk9DRVNTX05BTUUgJHtxdFdlYkVu Z2luZVByb2Nlc3NOYW1lfSkKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRj aGVzLzAwMDQtcHBjLWRpc2FibGUtanhsLWRlY29kZXIucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJl bmdpbmUvcGF0Y2hlcy8wMDA0LXBwYy1kaXNhYmxlLWp4bC1kZWNvZGVyLnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNzNjMTE1MTk2OGY0Ci0tLSAvZGV2L251 bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDAwNC1wcGMtZGlzYWJsZS1q eGwtZGVjb2Rlci5wYXRjaApAQCAtMCwwICsxLDEzIEBACistLS0gYS9zcmMvY29yZS9DTWFrZUxp c3RzLnR4dAorKysrIGIvc3JjL2NvcmUvQ01ha2VMaXN0cy50eHQKK0BAIC00MTQsNiArNDE0LDEw IEBAIGZvcmVhY2goYXJjaCAke2FyY2hzfSkKKyAgICAgICAgICAgICAgICAgQ09ORElUSU9OIFFU X0ZFQVRVUkVfd2ViZW5naW5lX296b25lX3gxMSBBTkQgWFNDUk5TQVZFUl9GT1VORAorICAgICAg ICAgICAgICkKKyAKKysgICAgICAgICAgICBpZiAoY3B1IFNUUkVRVUFMICJwcGM2NCIpCisrICAg ICAgICAgICAgICAgIGxpc3QoQVBQRU5EIGduQXJnQXJnIGVuYWJsZV9qeGxfZGVjb2Rlcj1mYWxz ZSkKKysgICAgICAgICAgICBlbmRpZigpCisrCisgICAgICAgICAgICAgaWYoUVRfRkVBVFVSRV93 ZWJlbmdpbmVfa2VyYmVyb3MpCisgICAgICAgICAgICAgICAgIGxpc3QoQVBQRU5EIGduQXJnQXJn CisgICAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWxfZ3NzYXBpX2luY2x1ZGVfZGlyPSIke0dT U0FQSV9JTkNMVURFX0RJUlN9L2dzc2FwaSIKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVu Z2luZS9wYXRjaGVzLzAwNTAtbm8tZ2xpYmMtY21ha2UtY2hlY2sucGF0Y2ggYi9zcmNwa2dzL3F0 Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDUwLW5vLWdsaWJjLWNtYWtlLWNoZWNrLnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZjc1NmJmMDI4NmJiCi0tLSAvZGV2 L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDA1MC1uby1nbGliYy1j bWFrZS1jaGVjay5wYXRjaApAQCAtMCwwICsxLDE0IEBACistLS0gYS9jb25maWd1cmUuY21ha2UK KysrKyBiL2NvbmZpZ3VyZS5jbWFrZQorQEAgLTQ5OSwxMSArNDk5LDYgQEAgYWRkX2NoZWNrX2Zv cl9zdXBwb3J0KAorICkKKyBhZGRfY2hlY2tfZm9yX3N1cHBvcnQoCisgICAgTU9EVUxFUyBRdFdl YkVuZ2luZSBRdFBkZgorLSAgIENPTkRJVElPTiBOT1QgTElOVVggT1IgVEVTVF9nbGliYworLSAg IE1FU1NBR0UgIkEgc3VpdGFibGUgdmVyc2lvbiA+PSAyLjE3IG9mIGdsaWJjIGlzIHJlcXVpcmVk LiIKKy0pCistYWRkX2NoZWNrX2Zvcl9zdXBwb3J0KAorLSAgIE1PRFVMRVMgUXRXZWJFbmdpbmUg UXRQZGYKKyAgICBDT05ESVRJT04gTk9UIExJTlVYIE9SIFRFU1Rfa2hyCisgICAgTUVTU0FHRSAi QnVpbGQgcmVxdWlyZXMgS2hyb25vcyBkZXZlbG9wbWVudCBoZWFkZXJzIGZvciBidWlsZCAtIHNl ZSBtZXNhL2xpYmVnbDEtbWVzYS1kZXYiCisgKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2Vi ZW5naW5lL3BhdGNoZXMvMDEwMC1jaHJvbWl1bS1zYW5kYm94LW1lbWJhcnJpZXIucGF0Y2ggYi9z cmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTAwLWNocm9taXVtLXNhbmRib3gtbWVtYmFy cmllci5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjJkZDdi NGFhOTQ4ZgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVz LzAxMDAtY2hyb21pdW0tc2FuZGJveC1tZW1iYXJyaWVyLnBhdGNoCkBAIC0wLDAgKzEsNTggQEAK Ky0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhl bHBlcnMvc3lzY2FsbF9zZXRzLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJv eC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5jYworQEAgLTQxMyw2ICs0 MTMsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRQcm9jZXNzU3RhcnRPCisgICBzd2l0 Y2ggKHN5c25vKSB7CisgICAgIGNhc2UgX19OUl9leGl0OgorICAgICBjYXNlIF9fTlJfZXhpdF9n cm91cDoKKysgICAgY2FzZSBfX05SX21lbWJhcnJpZXI6CisgICAgIGNhc2UgX19OUl93YWl0NDoK KyAgICAgY2FzZSBfX05SX3dhaXRpZDoKKyAjaWYgZGVmaW5lZChfX2kzODZfXykKKy0tLSBhL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2FybTY0X2xp bnV4X3N5c2NhbGxzLmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4 L3N5c3RlbV9oZWFkZXJzL2FybTY0X2xpbnV4X3N5c2NhbGxzLmgKK0BAIC0xMjE1LDQgKzEyMTUs OCBAQAorICNkZWZpbmUgX19OUl9sYW5kbG9ja19yZXN0cmljdF9zZWxmIDQ0NgorICNlbmRpZgor IAorKyNpZiAhZGVmaW5lZChfX05SX21lbWJhcnJpZXIpCisrI2RlZmluZSBfX05SX21lbWJhcnJp ZXIgMjgzCisrI2VuZGlmCisrCisgI2VuZGlmICAvLyBTQU5EQk9YX0xJTlVYX1NZU1RFTV9IRUFE RVJTX0FSTTY0X0xJTlVYX1NZU0NBTExTX0hfCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0v c2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9hcm1fbGludXhfc3lzY2FsbHMuaAorKysrIGIv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvYXJtX2xp bnV4X3N5c2NhbGxzLmgKK0BAIC0xNjE3LDYgKzE2MTcsMTAgQEAKKyAjZGVmaW5lIF9fTlJfbGFu ZGxvY2tfcmVzdHJpY3Rfc2VsZiAoX19OUl9TWVNDQUxMX0JBU0UgKyA0NDYpCisgI2VuZGlmCisg CisrI2lmICFkZWZpbmVkKF9fTlJfbWVtYmFycmllcikKKysjZGVmaW5lIF9fTlJfbWVtYmFycmll ciAoX19OUl9TWVNDQUxMX0JBU0UrMzg5KQorKyNlbmRpZgorKworIC8vIEFSTSBwcml2YXRlIHN5 c2NhbGxzLgorICNpZiAhZGVmaW5lZChfX0FSTV9OUl9CQVNFKQorICNkZWZpbmUgX19BUk1fTlJf QkFTRSAoX19OUl9TWVNDQUxMX0JBU0UgKyAweEYwMDAwKQorLS0tIGEvc3JjLzNyZHBhcnR5L2No cm9taXVtL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMveDg2XzMyX2xpbnV4X3N5c2NhbGxz LmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFk ZXJzL3g4Nl8zMl9saW51eF9zeXNjYWxscy5oCitAQCAtMTc1MCw1ICsxNzUwLDkgQEAKKyAjZGVm aW5lIF9fTlJfbGFuZGxvY2tfcmVzdHJpY3Rfc2VsZiA0NDYKKyAjZW5kaWYKKyAKKysjaWYgIWRl ZmluZWQoX19OUl9tZW1iYXJyaWVyKQorKyNkZWZpbmUgX19OUl9tZW1iYXJyaWVyIDM3NQorKyNl bmRpZgorKworICNlbmRpZiAgLy8gU0FOREJPWF9MSU5VWF9TWVNURU1fSEVBREVSU19YODZfMzJf TElOVVhfU1lTQ0FMTFNfSF8KKyAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94 L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3g4Nl82NF9saW51eF9zeXNjYWxscy5oCisrKysgYi9zcmMv M3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy94ODZfNjRfbGlu dXhfc3lzY2FsbHMuaAorQEAgLTE0MzgsNSArMTQzOCw5IEBACisgI2RlZmluZSBfX05SX2xhbmRs b2NrX3Jlc3RyaWN0X3NlbGYgNDQ2CisgI2VuZGlmCisgCisrI2lmICFkZWZpbmVkKF9fTlJfbWVt YmFycmllcikKKysjZGVmaW5lIF9fTlJfbWVtYmFycmllciAzMjQKKysjZW5kaWYKKysKKyAjZW5k aWYgIC8vIFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNfWDg2XzY0X0xJTlVYX1NZU0NBTExT X0hfCisgCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTAxLXNp emVfdC5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDEtc2l6ZV90LnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZmNjYzA4NWRhMzEx Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwMS1z aXplX3QucGF0Y2gKQEAgLTAsMCArMSwxNiBAQAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3RoaXJkX3BhcnR5L2FuZ2xlL2luY2x1ZGUvcGxhdGZvcm0vUGxhdGZvcm1NZXRob2RzLmgKKysr KyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9hbmdsZS9pbmNsdWRlL3BsYXRm b3JtL1BsYXRmb3JtTWV0aG9kcy5oCitAQCAtMjM5LDExICsyMzksMTEgQEAgaW5saW5lIHZvaWQg RGVmYXVsdE92ZXJyaWRlRmVhdHVyZXNNdGwoUAorIHVzaW5nIFByb2dyYW1LZXlUeXBlICAgPSBz dGQ6OmFycmF5PHVpbnQ4X3QsIDIwPjsKKyB1c2luZyBDYWNoZVByb2dyYW1GdW5jID0gdm9pZCAo KikoUGxhdGZvcm1NZXRob2RzICpwbGF0Zm9ybSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgUHJvZ3JhbUtleVR5cGUgJmtleSwKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2l6ZV90IHByb2dyYW1TaXplLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzdGQ6OnNpemVfdCBwcm9ncmFtU2l6ZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqcHJvZ3JhbUJ5dGVzKTsKKyBpbmxpbmUg dm9pZCBEZWZhdWx0Q2FjaGVQcm9ncmFtKFBsYXRmb3JtTWV0aG9kcyAqcGxhdGZvcm0sCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBQcm9ncmFtS2V5VHlwZSAma2V5LAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHByb2dyYW1TaXplLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpzaXplX3QgcHJvZ3JhbVNpemUsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICpwcm9ncmFtQnl0 ZXMpCisge30KKyAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAx MDItY2hyb21pdW0tOTAtcnV5LWluY2x1ZGUucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUv cGF0Y2hlcy8wMTAyLWNocm9taXVtLTkwLXJ1eS1pbmNsdWRlLnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYmJiYTU3OTA3NmQ2Ci0tLSAvZGV2L251bGwKKysr IGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwMi1jaHJvbWl1bS05MC1ydXktaW5j bHVkZS5wYXRjaApAQCAtMCwwICsxLDE5IEBACitGcm9tIDcxNDA5MmYzMzZiYjE0ZDJmY2MyNzM5 NmVjMzIzYjNkODQzYmI5NjIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBTdGVwaGFu IEhhcnRtYW5uIDxzdGhhMDlAZ29vZ2xlbWFpbC5jb20+CitEYXRlOiBUaHUsIDQgTWFyIDIwMjEg MTU6MDU6NDYgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSF0gSVdZVTogaW5jbHVkZSBsaW1pdHMgZm9y IHN0ZDo6bnVtZXJpY19saW1pdHMKKworLS0tCisgdGhpcmRfcGFydHkvcnV5L3NyYy9ydXkvYmxv Y2tfbWFwLmNjIHwgMSArCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCisKKy0tLSBh L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9ydXkvc3JjL3J1eS9ibG9ja19tYXAu Y2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9ydXkvc3JjL3J1eS9i bG9ja19tYXAuY2MKK0BAIC0xNyw2ICsxNyw3IEBAIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNl bnNlLgorIAorICNpbmNsdWRlIDxhbGdvcml0aG0+CisgI2luY2x1ZGUgPGNzdGRpbnQ+CisrI2lu Y2x1ZGUgPGxpbWl0cz4KKyAKKyAjaWZkZWYgUlVZX01BS0VCTE9DS01BUF9ERUJVRworICNpbmNs dWRlIDxjc3RkaW8+CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8w MTAzLWNocm9taXVtLXY4LW1vbm90b25pYy1wdGhyZWFkLWNvbnRfdGltZWR3YWl0LnBhdGNoIGIv c3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwMy1jaHJvbWl1bS12OC1tb25vdG9uaWMt cHRocmVhZC1jb250X3RpbWVkd2FpdC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAuLjFkYzhiYzRkM2QxNwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2 LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDMtY2hyb21pdW0tdjgtbW9ub3RvbmljLXB0aHJlYWQtY29u dF90aW1lZHdhaXQucGF0Y2gKQEAgLTAsMCArMSwyMiBAQAorVXNlIG1vbm90b25pYyBjbG9jayBm b3IgcHRocmVhZF9jb25kX3RpbWVkd2FpdCB3aXRoIG11c2wgdG9vLgorCistLS0gYS9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdjgvc3JjL2Jhc2UvcGxhdGZvcm0vY29uZGl0aW9uLXZhcmlhYmxlLmNj CisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL2Jhc2UvcGxhdGZvcm0vY29uZGl0 aW9uLXZhcmlhYmxlLmNjCitAQCAtMjAsNyArMjAsNyBAQCBuYW1lc3BhY2UgYmFzZSB7CisgCisg Q29uZGl0aW9uVmFyaWFibGU6OkNvbmRpdGlvblZhcmlhYmxlKCkgeworICNpZiAoVjhfT1NfRlJF RUJTRCB8fCBWOF9PU19ORVRCU0QgfHwgVjhfT1NfT1BFTkJTRCB8fCBcCistICAgICAoVjhfT1Nf TElOVVggJiYgVjhfTElCQ19HTElCQykpCisrICAgICBWOF9PU19MSU5VWCkKKyAgIC8vIE9uIEZy ZWUvTmV0L09wZW5CU0QgYW5kIExpbnV4IHdpdGggZ2xpYmMgd2UgY2FuIGNoYW5nZSB0aGUgdGlt ZQorICAgLy8gc291cmNlIGZvciBwdGhyZWFkX2NvbmRfdGltZWR3YWl0KCkgdG8gdXNlIHRoZSBt b25vdG9uaWMgY2xvY2suCisgICBwdGhyZWFkX2NvbmRhdHRyX3QgYXR0cjsKK0BAIC05Niw3ICs5 Niw3IEBAIGJvb2wgQ29uZGl0aW9uVmFyaWFibGU6OldhaXRGb3IoTXV0ZXgqIG0KKyAgICAgICAm bmF0aXZlX2hhbmRsZV8sICZtdXRleC0+bmF0aXZlX2hhbmRsZSgpLCAmdHMpOworICNlbHNlCisg I2lmIChWOF9PU19GUkVFQlNEIHx8IFY4X09TX05FVEJTRCB8fCBWOF9PU19PUEVOQlNEIHx8IFwK Ky0gICAgIChWOF9PU19MSU5VWCAmJiBWOF9MSUJDX0dMSUJDKSkKKysgICAgIFY4X09TX0xJTlVY KQorICAgLy8gT24gRnJlZS9OZXQvT3BlbkJTRCBhbmQgTGludXggd2l0aCBnbGliYyB3ZSBjYW4g Y2hhbmdlIHRoZSB0aW1lCisgICAvLyBzb3VyY2UgZm9yIHB0aHJlYWRfY29uZF90aW1lZHdhaXQo KSB0byB1c2UgdGhlIG1vbm90b25pYyBjbG9jay4KKyAgIHJlc3VsdCA9IGNsb2NrX2dldHRpbWUo Q0xPQ0tfTU9OT1RPTklDLCAmdHMpOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5l L3BhdGNoZXMvMDEwNC1jaHJvbWl1bS1yZXZlcnQtOWQwODBjMC5wYXRjaCBiL3NyY3BrZ3MvcXQ2 LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDQtY2hyb21pdW0tcmV2ZXJ0LTlkMDgwYzAucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi40MmIxZWU5ZWMwNjMKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA0LWNocm9taXVt LXJldmVydC05ZDA4MGMwLnBhdGNoCkBAIC0wLDAgKzEsMTYyIEBACisgT3JpZ2luYWwgY2hhbmdl J3MgZGVzY3JpcHRpb246CisgPiBSZXBsYWNlICdibGFja2xpc3QnIHdpdGggJ2lnbm9yZWxpc3Qn IGluIC4vdG9vbHMvbXNhbi8uCisgPgorID4gQnVnOiAxMDk3MjcyLCAxMDk3MjY4CisgPiBDaGFu Z2UtSWQ6IElkNWM4MjI3YTViZmIxZmZhZWM4MmQzMTY4YjYwOTA4NWIxMGM4Mjk3CisgPiBSZXZp ZXdlZC1vbjogaHR0cHM6Ly9jaHJvbWl1bS1yZXZpZXcuZ29vZ2xlc291cmNlLmNvbS9jL2Nocm9t aXVtL3NyYy8rLzI4Njc3MzAKKyA+IENvbW1pdC1RdWV1ZTogRHlsYW4gQ3V0bGVyIDxkeWxhbmN1 dGxlckBnb29nbGUuY29tPgorID4gUmV2aWV3ZWQtYnk6IE5pY28gV2ViZXIgPHRoYWtpc0BjaHJv bWl1bS5vcmc+CisgPiBSZXZpZXdlZC1ieTogSm9uYXRoYW4gTWV0em1hbiA8bWV0em1hbkBjaHJv bWl1bS5vcmc+CisgPiBDci1Db21taXQtUG9zaXRpb246IHJlZnMvaGVhZHMvbWFzdGVyQHsjODgz MDM1fQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2J1aWxkL2NvbmZpZy9zYW5pdGl6ZXJz L0JVSUxELmduCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vYnVpbGQvY29uZmlnL3Nhbml0 aXplcnMvQlVJTEQuZ24KK0BAIC0yNzIsMTEgKzI3MiwxMSBAQCBjb25maWcoImFzYW5fZmxhZ3Mi KSB7CisgICBpZiAoaXNfYXNhbikgeworICAgICBjZmxhZ3MgKz0gWyAiLWZzYW5pdGl6ZT1hZGRy ZXNzIiBdCisgICAgIGlmIChpc193aW4pIHsKKy0gICAgICBpZiAoIWRlZmluZWQoYXNhbl93aW5f YmxvY2tsaXN0X3BhdGgpKSB7CistICAgICAgICBhc2FuX3dpbl9ibG9ja2xpc3RfcGF0aCA9Cisr ICAgICAgaWYgKCFkZWZpbmVkKGFzYW5fd2luX2JsYWNrbGlzdF9wYXRoKSkgeworKyAgICAgICAg YXNhbl93aW5fYmxhY2tsaXN0X3BhdGggPQorICAgICAgICAgICAgIHJlYmFzZV9wYXRoKCIvL3Rv b2xzL21lbW9yeS9hc2FuL2Jsb2NrbGlzdF93aW4udHh0Iiwgcm9vdF9idWlsZF9kaXIpCisgICAg ICAgfQorLSAgICAgIGNmbGFncyArPSBbICItZnNhbml0aXplLWlnbm9yZWxpc3Q9JGFzYW5fd2lu X2Jsb2NrbGlzdF9wYXRoIiBdCisrICAgICAgY2ZsYWdzICs9IFsgIi1mc2FuaXRpemUtYmxhY2ts aXN0PSRhc2FuX3dpbl9ibGFja2xpc3RfcGF0aCIgXQorICAgICB9CisgICB9CisgfQorQEAgLTMw NiwxMyArMzA2LDEzIEBAIGNvbmZpZygibGlua19zaGFyZWRfbGlicmFyeSIpIHsKKyBjb25maWco ImNmaV9mbGFncyIpIHsKKyAgIGNmbGFncyA9IFtdCisgICBpZiAoaXNfY2ZpICYmIGN1cnJlbnRf dG9vbGNoYWluID09IGRlZmF1bHRfdG9vbGNoYWluKSB7CistICAgIGlmICghZGVmaW5lZChjZmlf aWdub3JlbGlzdF9wYXRoKSkgeworLSAgICAgIGNmaV9pZ25vcmVsaXN0X3BhdGggPQorKyAgICBp ZiAoIWRlZmluZWQoY2ZpX2JsYWNrbGlzdF9wYXRoKSkgeworKyAgICAgIGNmaV9ibGFja2xpc3Rf cGF0aCA9CisgICAgICAgICAgIHJlYmFzZV9wYXRoKCIvL3Rvb2xzL2NmaS9pZ25vcmVzLnR4dCIs IHJvb3RfYnVpbGRfZGlyKQorICAgICB9CisgICAgIGNmbGFncyArPSBbCisgICAgICAgIi1mc2Fu aXRpemU9Y2ZpLXZjYWxsIiwKKy0gICAgICAiLWZzYW5pdGl6ZS1pZ25vcmVsaXN0PSRjZmlfaWdu b3JlbGlzdF9wYXRoIiwKKysgICAgICAiLWZzYW5pdGl6ZS1ibGFja2xpc3Q9JGNmaV9ibGFja2xp c3RfcGF0aCIsCisgICAgIF0KKyAKKyAgICAgaWYgKHVzZV9jZmlfY2FzdCkgeworQEAgLTQwOSwx NCArNDA5LDE0IEBAIGNvbmZpZygibXNhbl9mbGFncyIpIHsKKyAgIGlmIChpc19tc2FuKSB7Cisg ICAgIGFzc2VydChpc19saW51eCB8fCBpc19jaHJvbWVvcywKKyAgICAgICAgICAgICJtc2FuIG9u bHkgc3VwcG9ydGVkIG9uIGxpbnV4IHg4Nl82NC9DaHJvbWVPUyIpCistICAgIGlmICghZGVmaW5l ZChtc2FuX2lnbm9yZWxpc3RfcGF0aCkpIHsKKy0gICAgICBtc2FuX2lnbm9yZWxpc3RfcGF0aCA9 CistICAgICAgICAgIHJlYmFzZV9wYXRoKCIvL3Rvb2xzL21zYW4vaWdub3JlbGlzdC50eHQiLCBy b290X2J1aWxkX2RpcikKKysgICAgaWYgKCFkZWZpbmVkKG1zYW5fYmxhY2tsaXN0X3BhdGgpKSB7 CisrICAgICAgbXNhbl9ibGFja2xpc3RfcGF0aCA9CisrICAgICAgICAgIHJlYmFzZV9wYXRoKCIv L3Rvb2xzL21zYW4vYmxhY2tsaXN0LnR4dCIsIHJvb3RfYnVpbGRfZGlyKQorICAgICB9CisgICAg IGNmbGFncyA9IFsKKyAgICAgICAiLWZzYW5pdGl6ZT1tZW1vcnkiLAorICAgICAgICItZnNhbml0 aXplLW1lbW9yeS10cmFjay1vcmlnaW5zPSRtc2FuX3RyYWNrX29yaWdpbnMiLAorLSAgICAgICIt ZnNhbml0aXplLWlnbm9yZWxpc3Q9JG1zYW5faWdub3JlbGlzdF9wYXRoIiwKKysgICAgICAiLWZz YW5pdGl6ZS1ibGFja2xpc3Q9JG1zYW5fYmxhY2tsaXN0X3BhdGgiLAorICAgICBdCisgICB9Cisg fQorQEAgLTQyNCwxMyArNDI0LDEzIEBAIGNvbmZpZygibXNhbl9mbGFncyIpIHsKKyBjb25maWco InRzYW5fZmxhZ3MiKSB7CisgICBpZiAoaXNfdHNhbikgeworICAgICBhc3NlcnQoaXNfbGludXgg fHwgaXNfY2hyb21lb3MsICJ0c2FuIG9ubHkgc3VwcG9ydGVkIG9uIGxpbnV4IHg4Nl82NCIpCist ICAgIGlmICghZGVmaW5lZCh0c2FuX2lnbm9yZWxpc3RfcGF0aCkpIHsKKy0gICAgICB0c2FuX2ln bm9yZWxpc3RfcGF0aCA9CisrICAgIGlmICghZGVmaW5lZCh0c2FuX2JsYWNrbGlzdF9wYXRoKSkg eworKyAgICAgIHRzYW5fYmxhY2tsaXN0X3BhdGggPQorICAgICAgICAgICByZWJhc2VfcGF0aCgi Ly90b29scy9tZW1vcnkvdHNhbl92Mi9pZ25vcmVzLnR4dCIsIHJvb3RfYnVpbGRfZGlyKQorICAg ICB9CisgICAgIGNmbGFncyA9IFsKKyAgICAgICAiLWZzYW5pdGl6ZT10aHJlYWQiLAorLSAgICAg ICItZnNhbml0aXplLWlnbm9yZWxpc3Q9JHRzYW5faWdub3JlbGlzdF9wYXRoIiwKKysgICAgICAi LWZzYW5pdGl6ZS1ibGFja2xpc3Q9JHRzYW5fYmxhY2tsaXN0X3BhdGgiLAorICAgICBdCisgICB9 CisgfQorQEAgLTQzOCw4ICs0MzgsOCBAQCBjb25maWcoInRzYW5fZmxhZ3MiKSB7CisgY29uZmln KCJ1YnNhbl9mbGFncyIpIHsKKyAgIGNmbGFncyA9IFtdCisgICBpZiAoaXNfdWJzYW4pIHsKKy0g ICAgaWYgKCFkZWZpbmVkKHVic2FuX2lnbm9yZWxpc3RfcGF0aCkpIHsKKy0gICAgICB1YnNhbl9p Z25vcmVsaXN0X3BhdGggPQorKyAgICBpZiAoIWRlZmluZWQodWJzYW5fYmxhY2tsaXN0X3BhdGgp KSB7CisrICAgICAgdWJzYW5fYmxhY2tsaXN0X3BhdGggPQorICAgICAgICAgICByZWJhc2VfcGF0 aCgiLy90b29scy91YnNhbi9pZ25vcmVsaXN0LnR4dCIsIHJvb3RfYnVpbGRfZGlyKQorICAgICB9 CisgICAgIGNmbGFncyArPSBbCitAQCAtNDU2LDcgKzQ1Niw3IEBAIGNvbmZpZygidWJzYW5fZmxh Z3MiKSB7CisgICAgICAgIi1mc2FuaXRpemU9c2lnbmVkLWludGVnZXItb3ZlcmZsb3ciLAorICAg ICAgICItZnNhbml0aXplPXVucmVhY2hhYmxlIiwKKyAgICAgICAiLWZzYW5pdGl6ZT12bGEtYm91 bmQiLAorLSAgICAgICItZnNhbml0aXplLWlnbm9yZWxpc3Q9JHVic2FuX2lnbm9yZWxpc3RfcGF0 aCIsCisrICAgICAgIi1mc2FuaXRpemUtYmxhY2tsaXN0PSR1YnNhbl9ibGFja2xpc3RfcGF0aCIs CisgICAgIF0KKyAgICAgaWYgKCFpc19jbGFuZykgeworICAgICAgICMgVGhlc2UgZXhwb3NlcyB0 b28gbXVjaCBpbGxlZ2FsIEMrKzE0IGNvZGUgdG8gY29tcGlsZSBvbiBhbnl0aGluZyBzdHJpY3Rl ciB0aGFuIGNsYW5nOgorQEAgLTQ5Nyw4ICs0OTcsOCBAQCBjb25maWcoInVic2FuX25vX3JlY292 ZXIiKSB7CisgCisgY29uZmlnKCJ1YnNhbl9zZWN1cml0eV9mbGFncyIpIHsKKyAgIGlmIChpc191 YnNhbl9zZWN1cml0eSkgeworLSAgICBpZiAoIWRlZmluZWQodWJzYW5fc2VjdXJpdHlfaWdub3Jl bGlzdF9wYXRoKSkgeworLSAgICAgIHVic2FuX3NlY3VyaXR5X2lnbm9yZWxpc3RfcGF0aCA9Cisr ICAgIGlmICghZGVmaW5lZCh1YnNhbl9zZWN1cml0eV9ibGFja2xpc3RfcGF0aCkpIHsKKysgICAg ICB1YnNhbl9zZWN1cml0eV9ibGFja2xpc3RfcGF0aCA9CisgICAgICAgICAgIHJlYmFzZV9wYXRo KCIvL3Rvb2xzL3Vic2FuL3NlY3VyaXR5X2lnbm9yZWxpc3QudHh0Iiwgcm9vdF9idWlsZF9kaXIp CisgICAgIH0KKyAgICAgY2ZsYWdzID0gWworQEAgLTUwNiw3ICs1MDYsNyBAQCBjb25maWcoInVi c2FuX3NlY3VyaXR5X2ZsYWdzIikgeworICAgICAgICItZnNhbml0aXplPXNoaWZ0IiwKKyAgICAg ICAiLWZzYW5pdGl6ZT1zaWduZWQtaW50ZWdlci1vdmVyZmxvdyIsCisgICAgICAgIi1mc2FuaXRp emU9dmxhLWJvdW5kIiwKKy0gICAgICAiLWZzYW5pdGl6ZS1pZ25vcmVsaXN0PSR1YnNhbl9zZWN1 cml0eV9pZ25vcmVsaXN0X3BhdGgiLAorKyAgICAgICItZnNhbml0aXplLWJsYWNrbGlzdD0kdWJz YW5fc2VjdXJpdHlfYmxhY2tsaXN0X3BhdGgiLAorICAgICBdCisgICB9CisgfQorQEAgLTUxOSwx MyArNTE5LDEzIEBAIGNvbmZpZygidWJzYW5fbnVsbF9mbGFncyIpIHsKKyAKKyBjb25maWcoInVi c2FuX3ZwdHJfZmxhZ3MiKSB7CisgICBpZiAoaXNfdWJzYW5fdnB0cikgeworLSAgICBpZiAoIWRl ZmluZWQodWJzYW5fdnB0cl9pZ25vcmVsaXN0X3BhdGgpKSB7CistICAgICAgdWJzYW5fdnB0cl9p Z25vcmVsaXN0X3BhdGggPQorKyAgICBpZiAoIWRlZmluZWQodWJzYW5fdnB0cl9ibGFja2xpc3Rf cGF0aCkpIHsKKysgICAgICB1YnNhbl92cHRyX2JsYWNrbGlzdF9wYXRoID0KKyAgICAgICAgICAg cmViYXNlX3BhdGgoIi8vdG9vbHMvdWJzYW4vdnB0cl9pZ25vcmVsaXN0LnR4dCIsIHJvb3RfYnVp bGRfZGlyKQorICAgICB9CisgICAgIGNmbGFncyA9IFsKKyAgICAgICAiLWZzYW5pdGl6ZT12cHRy IiwKKy0gICAgICAiLWZzYW5pdGl6ZS1pZ25vcmVsaXN0PSR1YnNhbl92cHRyX2lnbm9yZWxpc3Rf cGF0aCIsCisrICAgICAgIi1mc2FuaXRpemUtYmxhY2tsaXN0PSR1YnNhbl92cHRyX2JsYWNrbGlz dF9wYXRoIiwKKyAgICAgXQorICAgICBpZiAoIWlzX2NsYW5nKSB7CisgICAgICAgIyBDbGFuZyBz cGVjaWZpYyBmbGFnOgorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2J1aWxkX292ZXJyaWRl cy9idWlsZC5nbmkKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9idWlsZF9vdmVycmlkZXMv YnVpbGQuZ25pCitAQCAtNDMsMTUgKzQzLDE1IEBAIGRlY2xhcmVfYXJncygpIHsKKyAjIEFsbG93 cyBkaWZmZXJlbnQgcHJvamVjdHMgdG8gc3BlY2lmeSB0aGVpciBvd24gc3VwcHJlc3Npb24vaWdu b3JlIGxpc3RzIGZvcgorICMgc2FuaXRpemVyIHRvb2xzLgorICMgYXNhbl9zdXBwcmVzc2lvbnNf ZmlsZSA9ICJwYXRoL3RvL2FzYW5fc3VwcHJlc3Npb25zLmNjIgorLSMgYXNhbl93aW5faWdub3Jl bGlzdF9wYXRoID0gInBhdGgvdG8vYXNhbi9ibG9ja2xpc3Rfd2luLnR4dCIKKysjIGFzYW5fd2lu X2JsYWNrbGlzdF9wYXRoID0gInBhdGgvdG8vYXNhbi9ibG9ja2xpc3Rfd2luLnR4dCIKKyAjIGxz YW5fc3VwcHJlc3Npb25zX2ZpbGUgPSAicGF0aC90by9sc2FuX3N1cHByZXNzaW9ucy5jYyIKKyAj IHRzYW5fc3VwcHJlc3Npb25zX2ZpbGUgPSAicGF0aC90by90c2FuX3N1cHByZXNzaW9ucy5jYyIK Ky0jIHRzYW5faWdub3JlbGlzdF9wYXRoID0gInBhdGgvdG8vdHNhbi9pZ25vcmVzLnR4dCIKKy0j IG1zYW5faWdub3JlbGlzdF9wYXRoID0gInBhdGgvdG8vbXNhbi9pZ25vcmVsaXN0LnR4dCIKKy0j IHVic2FuX2lnbm9yZWxpc3RfcGF0aCA9ICJwYXRoL3RvL3Vic2FuL2lnbm9yZWxpc3QudHh0Igor LSMgdWJzYW5fdnB0cl9pZ25vcmVsaXN0X3BhdGggPSAicGF0aC90by91YnNhbi92cHRyX2lnbm9y ZWxpc3QudHh0IgorLSMgdWJzYW5fc2VjdXJpdHlfaWdub3JlbGlzdF9wYXRoID0gInBhdGgvdG8v dWJzYW4vc2VjdXJpdHlfaWdub3JlbGlzdC50eHQiCistIyBjZmlfaWdub3JlbGlzdF9wYXRoID0g InBhdGgvdG8vY2ZpL2lnbm9yZXMudHh0IgorKyMgdHNhbl9ibGFja2xpc3RfcGF0aCA9ICJwYXRo L3RvL3RzYW4vaWdub3Jlcy50eHQiCisrIyBtc2FuX2JsYWNrbGlzdF9wYXRoID0gInBhdGgvdG8v bXNhbi9ibGFja2xpc3QudHh0IgorKyMgdWJzYW5fYmxhY2tsaXN0X3BhdGggPSAicGF0aC90by91 YnNhbi9ibGFja2xpc3QudHh0IgorKyMgdWJzYW5fdnB0cl9ibGFja2xpc3RfcGF0aCA9ICJwYXRo L3RvL3Vic2FuL3ZwdHJfYmxhY2tsaXN0LnR4dCIKKysjIHVic2FuX3NlY3VyaXR5X2JsYWNrbGlz dF9wYXRoID0gInBhdGgvdG8vdWJzYW4vc2VjdXJpdHlfYmxhY2tsaXN0LnR4dCIKKysjIGNmaV9i bGFja2xpc3RfcGF0aCA9ICJwYXRoL3RvL2NmaS9pZ25vcmVzLnR4dCIKKyAKKyBkZWNsYXJlX2Fy Z3MoKSB7CisgICAjIEFuZHJvaWQgMzItYml0IG5vbi1jb21wb25lbnQsIG5vbi1jbGFuZyBidWls ZHMgY2Fubm90IGhhdmUgc3ltYm9sX2xldmVsPTIKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdl YmVuZ2luZS9wYXRjaGVzLzAxMDUtY2hyb21pdW0tcmV2ZXJ0LWRyb3Atb2Ytc3lzdGVtLWphdmEu cGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA1LWNocm9taXVtLXJldmVy dC1kcm9wLW9mLXN5c3RlbS1qYXZhLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMC4uNDRmM2FhOGZhZTVlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYt d2ViZW5naW5lL3BhdGNoZXMvMDEwNS1jaHJvbWl1bS1yZXZlcnQtZHJvcC1vZi1zeXN0ZW0tamF2 YS5wYXRjaApAQCAtMCwwICsxLDE1IEBACitUaGlzIHdhcyBkcm9wcGVkIGZvciBzb21lIHJlYXNv biBpbiA2OTUxYzM3Y2VjZDA1OTc5YjIzMmEzOWU1YzEwZTYzNDZhMGY3NGVmCistLS0gYS9zcmMv M3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY2xvc3VyZV9jb21waWxlci9jb21waWxlci5w eQorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Nsb3N1cmVfY29tcGls ZXIvY29tcGlsZXIucHkKK0BAIC0xMyw4ICsxMyw5IEBAIGltcG9ydCBzdWJwcm9jZXNzCisgCisg CisgX0NVUlJFTlRfRElSID0gb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykp CistX0pBVkFfUEFUSCA9IG9zLnBhdGguam9pbihfQ1VSUkVOVF9ESVIsICIuLiIsICJqZGsiLCAi Y3VycmVudCIsICJiaW4iLCAiamF2YSIpCistYXNzZXJ0IG9zLnBhdGguaXNmaWxlKF9KQVZBX1BB VEgpLCAiamF2YSBvbmx5IGFsbG93ZWQgaW4gYW5kcm9pZCBidWlsZHMiCisrX0pBVkFfQklOID0g ImphdmEiCisrX0pES19QQVRIID0gb3MucGF0aC5qb2luKF9DVVJSRU5UX0RJUiwgIi4uIiwgImpk ayIsICJjdXJyZW50IiwgImJpbiIsICJqYXZhIikKKytfSkFWQV9QQVRIID0gX0pES19QQVRIIGlm IG9zLnBhdGguaXNmaWxlKF9KREtfUEFUSCkgZWxzZSBfSkFWQV9CSU4KKyAKKyBjbGFzcyBDb21w aWxlcihvYmplY3QpOgorICAgIiIiUnVucyB0aGUgQ2xvc3VyZSBjb21waWxlciBvbiBnaXZlbiBz b3VyY2UgZmlsZXMgdG8gdHlwZWNoZWNrIHRoZW0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdl YmVuZ2luZS9wYXRjaGVzLzAxMDYtY2hyb21pdW0tc3lzdGVtLW5vZGVqcy5wYXRjaCBiL3NyY3Br Z3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDYtY2hyb21pdW0tc3lzdGVtLW5vZGVqcy5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjFlMDY3Y2M2ZWRhMAot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDYtY2hy b21pdW0tc3lzdGVtLW5vZGVqcy5wYXRjaApAQCAtMCwwICsxLDIwIEBACistLS0gYS9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvbm9kZS9ub2RlLnB5CisrKysgYi9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdGhpcmRfcGFydHkvbm9kZS9ub2RlLnB5CitAQCAtMzYsMTEgKzM2LDEyIEBA IGRlZiBHZXRCaW5hcnlQYXRoKCk6CisgICBpZiBwbGF0Zm9ybS5zeXN0ZW0oKSA9PSAnRGFyd2lu JyBhbmQgcGxhdGZvcm0ubWFjaGluZSgpID09ICdhcm02NCc6CisgICAgICAgcmV0dXJuIG9zLnBh dGguam9pbihvc19wYXRoLmpvaW4ob3NfcGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgJ21hYycsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAnbm9kZS1kYXJ3aW4tYXJtNjQnLCAnYmluJywgJ25v ZGUnKSkKKy0gIHJldHVybiBvc19wYXRoLmpvaW4ob3NfcGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwg KnsKKy0gICAgJ0Rhcndpbic6ICgnbWFjJywgJ25vZGUtZGFyd2luLXg2NCcsICdiaW4nLCAnbm9k ZScpLAorLSAgICAnTGludXgnOiAoJ2xpbnV4JywgJ25vZGUtbGludXgteDY0JywgJ2JpbicsICdu b2RlJyksCistICAgICdXaW5kb3dzJzogKCd3aW4nLCAnbm9kZS5leGUnKSwKKy0gIH1bcGxhdGZv cm0uc3lzdGVtKCldKQorKyAgcmV0dXJuICIvdXNyL2Jpbi9ub2RlIgorKyAgI3JldHVybiBvc19w YXRoLmpvaW4ob3NfcGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgKnsKKysgICMgICdEYXJ3aW4nOiAo J21hYycsICdub2RlLWRhcndpbi14NjQnLCAnYmluJywgJ25vZGUnKSwKKysgICMgICdMaW51eCc6 ICgnbGludXgnLCAnbm9kZS1saW51eC14NjQnLCAnYmluJywgJ25vZGUnKSwKKysgICMgICdXaW5k b3dzJzogKCd3aW4nLCAnbm9kZS5leGUnKSwKKysgICN9W3BsYXRmb3JtLnN5c3RlbSgpXSkKKyAK KyAKKyBkZWYgUnVuTm9kZShjbWRfcGFydHMsIHN0ZG91dD1Ob25lKToKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDctY2hyb21pdW0tY3Vyc2VkXlVzY29wZWRf ZmlsZS5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDctY2hyb21pdW0t Y3Vyc2VkXlVzY29wZWRfZmlsZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMDAuLmE4ZjVkOTcxODgzZAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdl YmVuZ2luZS9wYXRjaGVzLzAxMDctY2hyb21pdW0tY3Vyc2VkXlVzY29wZWRfZmlsZS5wYXRjaApA QCAtMCwwICsxLDE4IEBACistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vYmFzZS9maWxlcy9z Y29wZWRfZmlsZV9saW51eC5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jhc2UvZmls ZXMvc2NvcGVkX2ZpbGVfbGludXguY2MKK0BAIC03NywxNSArNzcsMyBAQCBib29sIElzRkRPd25l ZChpbnQgZmQpIHsKKyB9CisgCisgfSAgLy8gbmFtZXNwYWNlIGJhc2UKKy0KKy1leHRlcm4gIkMi IHsKKy0KKy1pbnQgX19jbG9zZShpbnQpOworLQorLV9fYXR0cmlidXRlX18oKHZpc2liaWxpdHko ImRlZmF1bHQiKSwgbm9pbmxpbmUpKSBpbnQgY2xvc2UoaW50IGZkKSB7CistICBpZiAoYmFzZTo6 SXNGRE93bmVkKGZkKSAmJiBnX2lzX293bmVyc2hpcF9lbmZvcmNlZCkKKy0gICAgQ3Jhc2hPbkZk T3duZXJzaGlwVmlvbGF0aW9uKCk7CistICByZXR1cm4gX19jbG9zZShmZCk7CistfQorLQorLX0g IC8vIGV4dGVybiAiQyIKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVz LzAxMDgtY2hyb21pdW0tZml4LW5hcnJvd2luZy1jYXN0LnBhdGNoIGIvc3JjcGtncy9xdDYtd2Vi ZW5naW5lL3BhdGNoZXMvMDEwOC1jaHJvbWl1bS1maXgtbmFycm93aW5nLWNhc3QucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5lZDMyY2Q5Yjc0MTUKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA4LWNocm9taXVt LWZpeC1uYXJyb3dpbmctY2FzdC5wYXRjaApAQCAtMCwwICsxLDUzIEBACistLS0gYS9zcmMvM3Jk cGFydHkvY2hyb21pdW0vYmFzZS9maWxlcy9maWxlX3V0aWxfbGludXguY2MKKysrKyBiL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS9iYXNlL2ZpbGVzL2ZpbGVfdXRpbF9saW51eC5jYworQEAgLTIzLDE0 ICsyMywxNCBAQCBib29sIEdldEZpbGVTeXN0ZW1UeXBlKGNvbnN0IEZpbGVQYXRoJiBwCisgCisg ICAvLyBOb3QgYWxsIHBvc3NpYmxlIHxzdGF0ZnNfYnVmLmZfdHlwZXwgdmFsdWVzIGFyZSBpbiBs aW51eC9tYWdpYy5oLgorICAgLy8gTWlzc2luZyB2YWx1ZXMgYXJlIGNvcGllZCBmcm9tIHRoZSBz dGF0ZnMgbWFuIHBhZ2UuCistICBzd2l0Y2ggKHN0YXRmc19idWYuZl90eXBlKSB7CisrICBzd2l0 Y2ggKHN0YXRpY19jYXN0PHVpbnRtYXhfdD4oc3RhdGZzX2J1Zi5mX3R5cGUpKSB7CisgICAgIGNh c2UgMDoKKyAgICAgICAqdHlwZSA9IEZJTEVfU1lTVEVNXzA7CisgICAgICAgYnJlYWs7CisgICAg IGNhc2UgRVhUMl9TVVBFUl9NQUdJQzogIC8vIEFsc28gZXh0MyBhbmQgZXh0NAorICAgICBjYXNl IE1TRE9TX1NVUEVSX01BR0lDOgorICAgICBjYXNlIFJFSVNFUkZTX1NVUEVSX01BR0lDOgorLSAg ICBjYXNlIHN0YXRpY19jYXN0PGludD4oQlRSRlNfU1VQRVJfTUFHSUMpOgorKyAgICBjYXNlIEJU UkZTX1NVUEVSX01BR0lDOgorICAgICBjYXNlIDB4NTM0NjU0NEU6ICAvLyBOVEZTCisgICAgIGNh c2UgMHg1ODQ2NTM0MjogIC8vIFhGUworICAgICBjYXNlIDB4MzE1MzQ2NEE6ICAvLyBKRlMKK0BA IC00MCwxNCArNDAsMTQgQEAgYm9vbCBHZXRGaWxlU3lzdGVtVHlwZShjb25zdCBGaWxlUGF0aCYg cAorICAgICAgICp0eXBlID0gRklMRV9TWVNURU1fTkZTOworICAgICAgIGJyZWFrOworICAgICBj YXNlIFNNQl9TVVBFUl9NQUdJQzoKKy0gICAgY2FzZSBzdGF0aWNfY2FzdDxpbnQ+KDB4RkY1MzRE NDIpOiAgLy8gQ0lGUworKyAgICBjYXNlIDB4RkY1MzRENDI6ICAvLyBDSUZTCisgICAgICAgKnR5 cGUgPSBGSUxFX1NZU1RFTV9TTUI7CisgICAgICAgYnJlYWs7CisgICAgIGNhc2UgQ09EQV9TVVBF Ul9NQUdJQzoKKyAgICAgICAqdHlwZSA9IEZJTEVfU1lTVEVNX0NPREE7CisgICAgICAgYnJlYWs7 CistICAgIGNhc2Ugc3RhdGljX2Nhc3Q8aW50PihIVUdFVExCRlNfTUFHSUMpOgorLSAgICBjYXNl IHN0YXRpY19jYXN0PGludD4oUkFNRlNfTUFHSUMpOgorKyAgICBjYXNlIEhVR0VUTEJGU19NQUdJ QzoKKysgICAgY2FzZSBSQU1GU19NQUdJQzoKKyAgICAgY2FzZSBUTVBGU19NQUdJQzoKKyAgICAg ICAqdHlwZSA9IEZJTEVfU1lTVEVNX01FTU9SWTsKKyAgICAgICBicmVhazsKKy0tLSBhL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS9iYXNlL3N5c3RlbS9zeXNfaW5mb19wb3NpeC5jYworKysrIGIvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL2Jhc2Uvc3lzdGVtL3N5c19pbmZvX3Bvc2l4LmNjCitAQCAtMTAw LDEwICsxMDAsMTAgQEAgYm9vbCBJc1N0YXRzWmVyb0lmVW5saW1pdGVkKGNvbnN0IGJhc2U6Ogor ICAgaWYgKEhBTkRMRV9FSU5UUihzdGF0ZnMocGF0aC52YWx1ZSgpLmNfc3RyKCksICZzdGF0cykp ICE9IDApCisgICAgIHJldHVybiBmYWxzZTsKKyAKKy0gIHN3aXRjaCAoc3RhdHMuZl90eXBlKSB7 CisrICBzd2l0Y2ggKHN0YXRpY19jYXN0PHVpbnRtYXhfdD4oc3RhdHMuZl90eXBlKSkgeworICAg ICBjYXNlIFRNUEZTX01BR0lDOgorLSAgICBjYXNlIHN0YXRpY19jYXN0PGludD4oSFVHRVRMQkZT X01BR0lDKToKKy0gICAgY2FzZSBzdGF0aWNfY2FzdDxpbnQ+KFJBTUZTX01BR0lDKToKKysgICAg Y2FzZSBIVUdFVExCRlNfTUFHSUM6CisrICAgIGNhc2UgUkFNRlNfTUFHSUM6CisgICAgICAgcmV0 dXJuIHRydWU7CisgICB9CisgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0 Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA5LWNocm9taXVtLXJlbW92ZS1zdHJpcF9iaW5hcnkucGF0 Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA5LWNocm9taXVtLXJlbW92ZS1z dHJpcF9iaW5hcnkucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw Li41ZWJkMTZlNjU5YWYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUv cGF0Y2hlcy8wMTA5LWNocm9taXVtLXJlbW92ZS1zdHJpcF9iaW5hcnkucGF0Y2gKQEAgLTAsMCAr MSwzMiBAQAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Nocm9tZS90ZXN0L2Nocm9tZWRy aXZlci9CVUlMRC5nbgorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Nocm9tZS90ZXN0L2No cm9tZWRyaXZlci9CVUlMRC5nbgorQEAgLTMwOCwxMSArMzA4LDcgQEAgc291cmNlX3NldCgibGli IikgeworICAgfQorIH0KKyAKKy1pZiAoaXNfbGludXgpIHsKKy0gIGNocm9tZWRyaXZlcl9vdXRw dXQgPSAiY2hyb21lZHJpdmVyLnVuc3RyaXBwZWQiCistfSBlbHNlIHsKKy0gIGNocm9tZWRyaXZl cl9vdXRwdXQgPSAiY2hyb21lZHJpdmVyIgorLX0KKytjaHJvbWVkcml2ZXJfb3V0cHV0ID0gImNo cm9tZWRyaXZlciIKKyAKKyBleGVjdXRhYmxlKCIkY2hyb21lZHJpdmVyX291dHB1dCIpIHsKKyAg IHRlc3Rvbmx5ID0gdHJ1ZQorQEAgLTMzNiwxNiArMzMyLDYgQEAgZXhlY3V0YWJsZSgiJGNocm9t ZWRyaXZlcl9vdXRwdXQiKSB7CisgICB9CisgfQorIAorLWlmIChpc19saW51eCkgeworLSAgc3Ry aXBfYmluYXJ5KCJjaHJvbWVkcml2ZXIiKSB7CistICAgIHRlc3Rvbmx5ID0gdHJ1ZQorLSAgICBi aW5hcnlfaW5wdXQgPSAiJHJvb3Rfb3V0X2Rpci8kY2hyb21lZHJpdmVyX291dHB1dCIKKy0gICAg c3ltYm9sX291dHB1dCA9ICIkcm9vdF9vdXRfZGlyL2Nocm9tZWRyaXZlci5kZWJ1ZyIKKy0gICAg c3RyaXBwZWRfYmluYXJ5X291dHB1dCA9ICIkcm9vdF9vdXRfZGlyL2Nocm9tZWRyaXZlciIKKy0g ICAgZGVwcyA9IFsgIjokY2hyb21lZHJpdmVyX291dHB1dCIgXQorLSAgfQorLX0KKy0KKyBweXRo b25fbGlicmFyeSgiY2hyb21lZHJpdmVyX3B5X3Rlc3RzIikgeworICAgdGVzdG9ubHkgPSB0cnVl CisgICBkZXBzID0gWwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMv MDExMC1jaHJvbWl1bS1yZXZlcnQtdXNlLWZmaWxlLWNvbXBpbGF0aW9uLWRpci5wYXRjaCBiL3Ny Y3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMTAtY2hyb21pdW0tcmV2ZXJ0LXVzZS1mZmls ZS1jb21waWxhdGlvbi1kaXIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwLi5hMDBmN2VhODBmN2EKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJl bmdpbmUvcGF0Y2hlcy8wMTEwLWNocm9taXVtLXJldmVydC11c2UtZmZpbGUtY29tcGlsYXRpb24t ZGlyLnBhdGNoCkBAIC0wLDAgKzEsNTcgQEAKK0Zyb20gMzRhOTU1ODIzNjMwMDk2ZjViMDFjMmIw MWQ1MWMxZWE1OWQyMjc2MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFplcXVhbiBX dSA8emVxdWFud3VAZ29vZ2xlLmNvbT4KK0RhdGU6IFR1ZSwgMjAgSnVsIDIwMjEgMTQ6MTM6NTAg KzAwMDAKK1N1YmplY3Q6IFtQQVRDSF0gVXNlIC1mZmlsZS1jb21waWxhdGlvbi1kaXI9IGluc3Rl YWQgb2YKKyAtZmRlYnVnLWNvbXBpbGF0aW9uLWRpcj0KKworQnVnOiAxMDEwMjY3CitDaGFuZ2Ut SWQ6IElmMmI0ZWFkODUzNWE3NjQ5MGViNDY2YTM4ZTNkOGZlZDZlYTkxMDc5CitSZXZpZXdlZC1v bjogaHR0cHM6Ly9jaHJvbWl1bS1yZXZpZXcuZ29vZ2xlc291cmNlLmNvbS9jL2Nocm9taXVtL3Ny Yy8rLzI3NzA3MzgKK0F1dG8tU3VibWl0OiBaZXF1YW4gV3UgPHplcXVhbnd1QGdvb2dsZS5jb20+ CitDb21taXQtUXVldWU6IE5pY28gV2ViZXIgPHRoYWtpc0BjaHJvbWl1bS5vcmc+CitSZXZpZXdl ZC1ieTogTmljbyBXZWJlciA8dGhha2lzQGNocm9taXVtLm9yZz4KK0NyLUNvbW1pdC1Qb3NpdGlv bjogcmVmcy9oZWFkcy9tYXN0ZXJAeyM5MDM0NTZ9CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21p dW0vYnVpbGQvY29uZmlnL2NvbXBpbGVyL0JVSUxELmduCisrKysgYi9zcmMvM3JkcGFydHkvY2hy b21pdW0vYnVpbGQvY29uZmlnL2NvbXBpbGVyL0JVSUxELmduCitAQCAtMTI2OSwxOSArMTI2OSwx MiBAQCBjb25maWcoImNvbXBpbGVyX2RldGVybWluaXN0aWMiKSB7CisgICAgICMgZGlmZmVyZW50 IGJ1aWxkIGRpcmVjdG9yeSBsaWtlICJvdXQvZmVhdHVyZV9hIiBhbmQgIm91dC9mZWF0dXJlX2Ii IGlmCisgICAgICMgd2UgYnVpbGQgc2FtZSBmaWxlcyB3aXRoIHNhbWUgY29tcGlsZSBmbGFnLgor ICAgICAjIE90aGVyIHBhdGhzIGFyZSBhbHJlYWR5IGdpdmVuIGluIHJlbGF0aXZlLCBubyBuZWVk IHRvIG5vcm1hbGl6ZSB0aGVtLgorLSAgICBpZiAoaXNfbmFjbCkgeworLSAgICAgICMgVE9ETyho dHRwczovL2NyYnVnLmNvbS8xMjMxMjM2KTogVXNlIC1mZmlsZS1jb21waWxhdGlvbi1kaXI9IGhl cmUuCistICAgICAgY2ZsYWdzICs9IFsKKy0gICAgICAgICItWGNsYW5nIiwKKy0gICAgICAgICIt ZmRlYnVnLWNvbXBpbGF0aW9uLWRpciIsCistICAgICAgICAiLVhjbGFuZyIsCistICAgICAgICAi LiIsCistICAgICAgXQorLSAgICB9IGVsc2UgeworLSAgICAgICMgLWZmaWxlLWNvbXBpbGF0aW9u LWRpciBpcyBhbiBhbGlhcyBmb3IgYm90aCAtZmRlYnVnLWNvbXBpbGF0aW9uLWRpcj0KKy0gICAg ICAjIGFuZCAtZmNvdmVyYWdlLWNvbXBpbGF0aW9uLWRpcj0uCistICAgICAgY2ZsYWdzICs9IFsg Ii1mZmlsZS1jb21waWxhdGlvbi1kaXI9LiIgXQorLSAgICB9CisrICAgIGNmbGFncyArPSBbCisr ICAgICAgIi1YY2xhbmciLAorKyAgICAgICItZmRlYnVnLWNvbXBpbGF0aW9uLWRpciIsCisrICAg ICAgIi1YY2xhbmciLAorKyAgICAgICIuIiwKKysgICAgXQorICAgICBpZiAoIWlzX3dpbikgewor ICAgICAgICMgV2UgZG9uJ3QgdXNlIGNsYW5nIC1jYzFhcyBvbiBXaW5kb3dzICh5ZXQ/IGh0dHBz Oi8vY3JidWcuY29tLzc2MjE2NykKKyAgICAgICBhc21mbGFncyA9IFsgIi1XYSwtZmRlYnVnLWNv bXBpbGF0aW9uLWRpciwuIiBdCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vYnVpbGQvY29u ZmlnL2NvbXBpbGVyL2NvbXBpbGVyLmduaQorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2J1 aWxkL2NvbmZpZy9jb21waWxlci9jb21waWxlci5nbmkKK0BAIC0yMjgsOCArMjI4LDExIEBAIGRl Y2xhcmVfYXJncygpIHsKKyAjIGRldGVybWluaXN0aWMgYnVpbGRzIHRvIHJlZHVjZSBjb21waWxl IHRpbWVzLCBzbyB0aGlzIGlzIGxlc3MgcmVsZXZhbnQgZm9yCisgIyBvZmZpY2lhbCBidWlsZGVy cy4KKyBzdHJpcF9hYnNvbHV0ZV9wYXRoc19mcm9tX2RlYnVnX3N5bWJvbHNfZGVmYXVsdCA9Cist ICAgIGlzX2FuZHJvaWQgfHwgaXNfZnVjaHNpYSB8fCBpc19uYWNsIHx8IChpc193aW4gJiYgdXNl X2xsZCkgfHwgaXNfbGludXggfHwKKy0gICAgaXNfY2hyb21lb3MgfHwgKGlzX2FwcGxlICYmICFl bmFibGVfZHN5bXMpCisrICAgICMgVE9ETyhjcmJ1Zy5jb20vMTAxMDI2Nyk6IHJlbW92ZSAnIXVz ZV9jbGFuZ19jb3ZlcmFnZScsIGNvdmVyYWdlIGJ1aWxkIGhhcworKyAgICAjIGRlcGVuZGVuY3kg dG8gYWJzb2x1dGUgcGF0aCBvZiBzb3VyY2UgZmlsZXMuCisrICAgICF1c2VfY2xhbmdfY292ZXJh Z2UgJiYKKysgICAgKGlzX2FuZHJvaWQgfHwgaXNfZnVjaHNpYSB8fCBpc19uYWNsIHx8IChpc193 aW4gJiYgdXNlX2xsZCkgfHwgaXNfbGludXggfHwKKysgICAgIGlzX2Nocm9tZW9zIHx8IChpc19h cHBsZSAmJiAhZW5hYmxlX2RzeW1zKSkKKyAKKyBkZWNsYXJlX2FyZ3MoKSB7CisgICBzdHJpcF9h YnNvbHV0ZV9wYXRoc19mcm9tX2RlYnVnX3N5bWJvbHMgPSBzdHJpcF9hYnNvbHV0ZV9wYXRoc19m cm9tX2RlYnVnX3N5bWJvbHNfZGVmYXVsdApkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5n aW5lL3BhdGNoZXMvMDExMS1jaHJvbWl1bS1uby1Xbm8tc3RyaW5nb3Atb3ZlcnJlYWQucGF0Y2gg Yi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTExLWNocm9taXVtLW5vLVduby1zdHJp bmdvcC1vdmVycmVhZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MDAuLjAzZWFjM2Y4ZTA2NwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2lu ZS9wYXRjaGVzLzAxMTEtY2hyb21pdW0tbm8tV25vLXN0cmluZ29wLW92ZXJyZWFkLnBhdGNoCkBA IC0wLDAgKzEsMTAgQEAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9idWlsZC9jb25maWcv Y29tcGlsZXIvQlVJTEQuZ24KKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9idWlsZC9jb25m aWcvY29tcGlsZXIvQlVJTEQuZ24KK0BAIC0zOTQsNyArMzk0LDYgQEAgY29uZmlnKCJjb21waWxl ciIpIHsKKyAgICAgICAgICItV25vLXBhcmVudGhlc2VzIiwKKyAgICAgICAgICItV25vLXNpZ24t Y29tcGFyZSIsICMgZmlkbworICAgICAgICAgIi1Xbm8tc3RyaW5nb3Atb3ZlcmZsb3ciLCAjIHNr aWEsIGxpYmFvbSwgcHJvdG9idWYsIGljdQorLSAgICAgICAgIi1Xbm8tc3RyaW5nb3Atb3ZlcnJl YWQiLCAjIGxpYmFvbQorICAgICAgICAgIi1Xbm8tcHNhYmkiLCAjIHNraWEKKyAgICAgICAgICIt V25vLW11bHRpY2hhciIsICMgY3Jhc2hwYWQKKyAgICAgICAgICItV25vLWZvcm1hdC16ZXJvLWxl bmd0aCIsICMgdXNlcl9hZ2VudC5jYwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5l L3BhdGNoZXMvMDE1MC1jaHJvbWl1bS1nbGliYy1saWJjX21hbGxvYy5wYXRjaCBiL3NyY3BrZ3Mv cXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxNTAtY2hyb21pdW0tZ2xpYmMtbGliY19tYWxsb2MucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi43ZTFiNjZlNWM3M2QK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTUwLWNo cm9taXVtLWdsaWJjLWxpYmNfbWFsbG9jLnBhdGNoCkBAIC0wLDAgKzEsMjQgQEAKKy0tLSBhL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL3Byb2Nlc3MvbWVtb3J5X2xpbnV4LmNjCisrKysgYi9z cmMvM3JkcGFydHkvY2hyb21pdW0vYmFzZS9wcm9jZXNzL21lbW9yeV9saW51eC5jYworQEAgLTIz LDYgKzIzLDEyIEBACisgI2luY2x1ZGUgInRoaXJkX3BhcnR5L3RjbWFsbG9jL2Nocm9taXVtL3Ny Yy9ncGVyZnRvb2xzL3RjbWFsbG9jLmgiCisgI2VuZGlmCisgCisrI2lmIGRlZmluZWQoTElCQ19H TElCQykKKytleHRlcm4gIkMiIHsKKytleHRlcm4gdm9pZCAqX19saWJjX21hbGxvYyhzaXplX3Qg c2l6ZSk7CisrfQorKyNlbmRpZgorKworIG5hbWVzcGFjZSBiYXNlIHsKKyAKKyBuYW1lc3BhY2Ug eworQEAgLTEyMCw3ICsxMjYsNyBAQCBib29sIFVuY2hlY2tlZE1hbGxvYyhzaXplX3Qgc2l6ZSwg dm9pZCoqCisgICAgICghZGVmaW5lZChMSUJDX0dMSUJDKSAmJiAhQlVJTERGTEFHKFVTRV9UQ01B TExPQykpCisgICAqcmVzdWx0ID0gbWFsbG9jKHNpemUpOworICNlbGlmIGRlZmluZWQoTElCQ19H TElCQykgJiYgIUJVSUxERkxBRyhVU0VfVENNQUxMT0MpCistICAqcmVzdWx0ID0gX19saWJjX21h bGxvYyhzaXplKTsKKysgICpyZXN1bHQgPSA6Ol9fbGliY19tYWxsb2Moc2l6ZSk7CisgI2VsaWYg QlVJTERGTEFHKFVTRV9UQ01BTExPQykKKyAgICpyZXN1bHQgPSB0Y19tYWxsb2Nfc2tpcF9uZXdf aGFuZGxlcihzaXplKTsKKyAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2lu ZS9wYXRjaGVzLzAyMDAtY2hyb21pdW0tbXVzbC1pbmNsdWRlLXN5cy1yZWcuaC10by1nZXQtX19X T1JEU0laRS5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDAtY2hyb21p dW0tbXVzbC1pbmNsdWRlLXN5cy1yZWcuaC10by1nZXQtX19XT1JEU0laRS5wYXRjaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjQxYjkwMDcxYjVlNAotLS0gL2Rldi9u dWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDAtY2hyb21pdW0tbXVz bC1pbmNsdWRlLXN5cy1yZWcuaC10by1nZXQtX19XT1JEU0laRS5wYXRjaApAQCAtMCwwICsxLDIx IEBACitGcm9tIDkwMDFjNTRkNmI5NzQ0NDkxNzRhOGNlZThmM2Y1ZDc4YTliZDZjOWUgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBGZWxpeCBKYW5kYSA8ZmVsaXguamFuZGFAcG9zdGVv LmRlPgorRGF0ZTogU3VuLCAxIEZlYiAyMDE1IDE0OjI2OjUyICswMTAwCitTdWJqZWN0OiBbUEFU Q0ggMy82XSBpbmNsdWRlIDxzeXMvcmVnLmg+IHRvIGdldCBfX1dPUkRTSVpFIG9uIG11c2wgbGli YworCistLS0KKyBxdHdlYmVuZ2luZS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkv YnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9lbGZfY29yZV9kdW1wLmggfCAxICsK KyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKKworLS0tIGEvc3JjLzNyZHBhcnR5L2No cm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbGludXgvZWxm X2NvcmVfZHVtcC5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJl YWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9lbGZfY29yZV9kdW1wLmgKK0BAIC0zNyw2 ICszNyw5IEBACisgI2luY2x1ZGUgPGxpbWl0cy5oPgorICNpbmNsdWRlIDxsaW5rLmg+CisgI2lu Y2x1ZGUgPHN0ZGRlZi5oPgorKyNpZm5kZWYgX19HTElCQ19fCisrI2luY2x1ZGUgPHN5cy9yZWcu aD4KKysjZW5kaWYKKyAKKyAjaW5jbHVkZSAiY29tbW9uL21lbW9yeV9yYW5nZS5oIgorIApkaWZm IC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIwMS1jaHJvbWl1bS1tdXNs LWRpc3BhdGNoLXRvLW11c2wucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8w MjAxLWNocm9taXVtLW11c2wtZGlzcGF0Y2gtdG8tbXVzbC5wYXRjaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmE1OGE2ODhhNGI1NQotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDEtY2hyb21pdW0tbXVzbC1kaXNwYXRj aC10by1tdXNsLnBhdGNoCkBAIC0wLDAgKzEsMTAzIEBACistLS0gYS9zcmMvM3JkcGFydHkvY2hy b21pdW0vYmFzZS9hbGxvY2F0b3IvYWxsb2NhdG9yX3NoaW1fZGVmYXVsdF9kaXNwYXRjaF90b19n bGliYy5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jhc2UvYWxsb2NhdG9yL2FsbG9j YXRvcl9zaGltX2RlZmF1bHRfZGlzcGF0Y2hfdG9fZ2xpYmMuY2MKK0BAIC04LDYgKzgsNyBAQAor ICNpbmNsdWRlIDxkbGZjbi5oPgorICNpbmNsdWRlIDxtYWxsb2MuaD4KKyAKKysjaWYgZGVmaW5l ZChfX0dMSUJDX18pCisgLy8gVGhpcyB0cmFuc2xhdGlvbiB1bml0IGRlZmluZXMgYSBkZWZhdWx0 IGRpc3BhdGNoIGZvciB0aGUgYWxsb2NhdG9yIHNoaW0gd2hpY2gKKyAvLyByb3V0ZXMgYWxsb2Nh dGlvbnMgdG8gbGliYyBmdW5jdGlvbnMuCisgLy8gVGhlIGNvZGUgaGVyZSBpcyBzdHJvbmdseSBp bnNwaXJlZCBmcm9tIHRjbWFsbG9jJ3MgbGliY19vdmVycmlkZV9nbGliYy5oLgorQEAgLTg3LDMg Kzg4LDkyIEBAIGNvbnN0IEFsbG9jYXRvckRpc3BhdGNoIEFsbG9jYXRvckRpc3BhdGMKKyAgICAg bnVsbHB0ciwgICAgICAgICAgICAgICAvKiBhbGlnbmVkX2ZyZWVfZnVuY3Rpb24gKi8KKyAgICAg bnVsbHB0ciwgICAgICAgICAgICAgICAvKiBuZXh0ICovCisgfTsKKysKKysjZWxzZSAvLyBkZWZp bmVkKF9fR0xJQkNfXykKKysKKysjaW5jbHVkZSA8ZGxmY24uaD4KKysKKytleHRlcm4gIkMiIHsK KysvLyBEZWNsYXJlIGZ1bmN0aW9uIHBvaW50ZXJzIHRvIHRoZSBtZW1vcnkgZnVuY3Rpb25zCisr dHlwZWRlZiB2b2lkKiAoKnRfbGliY19tYWxsb2MpKHNpemVfdCBzaXplKTsKKyt0eXBlZGVmIHZv aWQqICgqdF9saWJjX2NhbGxvYykoc2l6ZV90IG4sIHNpemVfdCBzaXplKTsKKyt0eXBlZGVmIHZv aWQqICgqdF9saWJjX3JlYWxsb2MpKHZvaWQqIGFkZHJlc3MsIHNpemVfdCBzaXplKTsKKyt0eXBl ZGVmIHZvaWQqICgqdF9saWJjX21lbWFsaWduKShzaXplX3QgYWxpZ25tZW50LCBzaXplX3Qgc2l6 ZSk7CisrdHlwZWRlZiB2b2lkICgqdF9saWJjX2ZyZWUpKHZvaWQqIHB0cik7CisrdHlwZWRlZiBz aXplX3QgKCp0X2xpYmNfbWFsbG9jX3VzYWJsZV9zaXplKSh2b2lkKiBwdHIpOworKworKy8vIFN0 YXRpYyBpbnN0YW5jZXMgb2YgcG9pbnRlcnMgdG8gbGliYy5zbyBkbCBzeW1ib2xzCisrc3RhdGlj IHRfbGliY19tYWxsb2MgbGliY19tYWxsb2MgPSBOVUxMOworK3N0YXRpYyB0X2xpYmNfY2FsbG9j IGxpYmNfY2FsbG9jID0gTlVMTDsKKytzdGF0aWMgdF9saWJjX3JlYWxsb2MgbGliY19yZWFsbG9j ID0gTlVMTDsKKytzdGF0aWMgdF9saWJjX21lbWFsaWduIGxpYmNfbWVtYWxpZ24gPSBOVUxMOwor K3N0YXRpYyB0X2xpYmNfZnJlZSBsaWJjX2ZyZWUgPSBOVUxMOworK3N0YXRpYyB0X2xpYmNfbWFs bG9jX3VzYWJsZV9zaXplIGxpYmNfbWFsbG9jX3VzYWJsZV9zaXplID0gTlVMTDsKKysKKysvLyBy ZXNvbHZlIHRoZSBzeW1ib2xzIGluIGxpYmMuc28KKyt2b2lkIG11c2xfbGliY19tZW1vcnlfaW5p dCh2b2lkKQorK3sKKysgIGxpYmNfbWFsbG9jID0gKHRfbGliY19tYWxsb2MpIGRsc3ltKFJUTERf TkVYVCwgIm1hbGxvYyIpOworKyAgbGliY19jYWxsb2MgPSAodF9saWJjX2NhbGxvYykgZGxzeW0o UlRMRF9ORVhULCAiY2FsbG9jIik7CisrICBsaWJjX3JlYWxsb2MgPSAodF9saWJjX3JlYWxsb2Mp IGRsc3ltKFJUTERfTkVYVCwgInJlYWxsb2MiKTsKKysgIGxpYmNfbWVtYWxpZ24gPSAodF9saWJj X21lbWFsaWduKSBkbHN5bShSVExEX05FWFQsICJtZW1hbGlnbiIpOworKyAgbGliY19mcmVlID0g KHRfbGliY19mcmVlKSBkbHN5bShSVExEX05FWFQsICJmcmVlIik7CisrICBsaWJjX21hbGxvY191 c2FibGVfc2l6ZSA9ICh0X2xpYmNfbWFsbG9jX3VzYWJsZV9zaXplKSBkbHN5bShSVExEX05FWFQs ICJtYWxsb2NfdXNhYmxlX3NpemUiKTsKKyt9CisrfSAgLy8gZXh0ZXJuICJDIgorKworK25hbWVz cGFjZSB7CisrCisrdXNpbmcgYmFzZTo6YWxsb2NhdG9yOjpBbGxvY2F0b3JEaXNwYXRjaDsKKysK Kyt2b2lkKiBNdXNsTWFsbG9jKGNvbnN0IEFsbG9jYXRvckRpc3BhdGNoKiwgc2l6ZV90IHNpemUs IHZvaWQqIGNvbnRleHQpIHsKKysgIGlmICghbGliY19tYWxsb2MpCisrICAgIG11c2xfbGliY19t ZW1vcnlfaW5pdCgpOworKyAgcmV0dXJuICgqbGliY19tYWxsb2MpKHNpemUpOworK30KKysKKyt2 b2lkKiBNdXNsQ2FsbG9jKGNvbnN0IEFsbG9jYXRvckRpc3BhdGNoKiwgc2l6ZV90IG4sIHNpemVf dCBzaXplLCB2b2lkKiBjb250ZXh0KSB7CisrICBpZiAoIWxpYmNfY2FsbG9jKQorKyAgICBtdXNs X2xpYmNfbWVtb3J5X2luaXQoKTsKKysgIHJldHVybiAoKmxpYmNfY2FsbG9jKShuLCBzaXplKTsK Kyt9CisrCisrdm9pZCogTXVzbFJlYWxsb2MoY29uc3QgQWxsb2NhdG9yRGlzcGF0Y2gqLCB2b2lk KiBhZGRyZXNzLCBzaXplX3Qgc2l6ZSwgdm9pZCogY29udGV4dCkgeworKyAgaWYgKCFsaWJjX3Jl YWxsb2MpCisrICAgIG11c2xfbGliY19tZW1vcnlfaW5pdCgpOworKyAgcmV0dXJuICgqbGliY19y ZWFsbG9jKShhZGRyZXNzLCBzaXplKTsKKyt9CisrCisrdm9pZCogTXVzbE1lbWFsaWduKGNvbnN0 IEFsbG9jYXRvckRpc3BhdGNoKiwgc2l6ZV90IGFsaWdubWVudCwgc2l6ZV90IHNpemUsIHZvaWQq IGNvbnRleHQpIHsKKysgIGlmICghbGliY19tZW1hbGlnbikKKysgICAgbXVzbF9saWJjX21lbW9y eV9pbml0KCk7CisrICByZXR1cm4gKCpsaWJjX21lbWFsaWduKShhbGlnbm1lbnQsIHNpemUpOwor K30KKysKKyt2b2lkIE11c2xGcmVlKGNvbnN0IEFsbG9jYXRvckRpc3BhdGNoKiwgdm9pZCogYWRk cmVzcywgdm9pZCogY29udGV4dCkgeworKyAgaWYgKCFsaWJjX2ZyZWUpCisrICAgIG11c2xfbGli Y19tZW1vcnlfaW5pdCgpOworKyAgKCpsaWJjX2ZyZWUpKGFkZHJlc3MpOworK30KKysKKytzaXpl X3QgTXVzbEdldFNpemVFc3RpbWF0ZShjb25zdCBBbGxvY2F0b3JEaXNwYXRjaCosIHZvaWQqIGFk ZHJlc3MsIHZvaWQqIGNvbnRleHQpIHsKKysgIC8vIFRPRE8oc2lnZ2ksIHByaW1pYW5vKTogbWFs bG9jX3VzYWJsZV9zaXplIG1heSBuZWVkIHJlZGlyZWN0aW9uIGluIHRoZQorKyAgLy8gICAgIHBy ZXNlbmNlIG9mIGludGVycG9zaW5nIHNoaW1zIHRoYXQgZGl2ZXJ0IGFsbG9jYXRpb25zLgorKyAg aWYgKCFsaWJjX21hbGxvY191c2FibGVfc2l6ZSkKKysgICAgbXVzbF9saWJjX21lbW9yeV9pbml0 KCk7CisrICByZXR1cm4gKCpsaWJjX21hbGxvY191c2FibGVfc2l6ZSkoYWRkcmVzcyk7CisrfQor KworK30gIC8vIG5hbWVzcGFjZQorKworK2NvbnN0IEFsbG9jYXRvckRpc3BhdGNoIEFsbG9jYXRv ckRpc3BhdGNoOjpkZWZhdWx0X2Rpc3BhdGNoID0geworKyAgICAmTXVzbE1hbGxvYywgICAgICAg ICAgIC8qIGFsbG9jX2Z1bmN0aW9uICovCisrICAgICZNdXNsQ2FsbG9jLCAgICAgICAgICAgLyog YWxsb2NfemVyb19pbml0aWFsaXplZF9mdW5jdGlvbiAqLworKyAgICAmTXVzbE1lbWFsaWduLCAg ICAgICAgIC8qIGFsbG9jX2FsaWduZWRfZnVuY3Rpb24gKi8KKysgICAgJk11c2xSZWFsbG9jLCAg ICAgICAgICAvKiByZWFsbG9jX2Z1bmN0aW9uICovCisrICAgICZNdXNsRnJlZSwgICAgICAgICAg ICAgLyogZnJlZV9mdW5jdGlvbiAqLworKyAgICAmTXVzbEdldFNpemVFc3RpbWF0ZSwgIC8qIGdl dF9zaXplX2VzdGltYXRlX2Z1bmN0aW9uICovCisrICAgIG51bGxwdHIsICAgICAgICAgICAgICAg LyogbmV4dCAqLworK307CisrCisrI2VuZGlmCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJl bmdpbmUvcGF0Y2hlcy8wMjAyLWNocm9taXVtLW11c2wtbm8tbWFsbGluZm8ucGF0Y2ggYi9zcmNw a2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjAyLWNocm9taXVtLW11c2wtbm8tbWFsbGluZm8u cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5hNWJkYjVhNDNh NWYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjAy LWNocm9taXVtLW11c2wtbm8tbWFsbGluZm8ucGF0Y2gKQEAgLTAsMCArMSw2MiBAQAorLS0tIGEv c3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jhc2UvcHJvY2Vzcy9wcm9jZXNzX21ldHJpY3NfcG9zaXgu Y2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL3Byb2Nlc3MvcHJvY2Vzc19tZXRy aWNzX3Bvc2l4LmNjCitAQCAtMTA1LDcgKzEwNSw3IEBAIHZvaWQgSW5jcmVhc2VGZExpbWl0VG8o dW5zaWduZWQgaW50IG1heF8KKyAKKyAjZW5kaWYgIC8vICFkZWZpbmVkKE9TX0ZVQ0hTSUEpCisg CistI2lmIGRlZmluZWQoT1NfTElOVVgpIHx8IGRlZmluZWQoT1NfQ0hST01FT1MpIHx8IGRlZmlu ZWQoT1NfQU5EUk9JRCkKKysjaWYgKGRlZmluZWQoT1NfTElOVVgpICYmIGRlZmluZWQoX19HTElC Q19fKSkgfHwgZGVmaW5lZChPU19DSFJPTUVPUykgfHwgZGVmaW5lZChPU19BTkRST0lEKQorIG5h bWVzcGFjZSB7CisgCisgc2l6ZV90IEdldE1hbGxvY1VzYWdlTWFsbGluZm8oKSB7CitAQCAtMTI3 LDE2ICsxMjcsMTYgQEAgc2l6ZV90IEdldE1hbGxvY1VzYWdlTWFsbGluZm8oKSB7CisgfQorIAor IH0gIC8vIG5hbWVzcGFjZQorLSNlbmRpZiAgLy8gZGVmaW5lZChPU19MSU5VWCkgfHwgZGVmaW5l ZChPU19DSFJPTUVPUykgfHwgZGVmaW5lZChPU19BTkRST0lEKQorKyNlbmRpZiAgLy8gKGRlZmlu ZWQoT1NfTElOVVgpICYmIGRlZmluZWQoX19HTElCQ19fKSkgfHwgZGVmaW5lZChPU19DSFJPTUVP UykgfHwgZGVmaW5lZChPU19BTkRST0lEKQorIAorIHNpemVfdCBQcm9jZXNzTWV0cmljczo6R2V0 TWFsbG9jVXNhZ2UoKSB7CisgI2lmIGRlZmluZWQoT1NfQVBQTEUpCisgICBtYWxsb2Nfc3RhdGlz dGljc190IHN0YXRzID0gezB9OworICAgbWFsbG9jX3pvbmVfc3RhdGlzdGljcyhudWxscHRyLCAm c3RhdHMpOworICAgcmV0dXJuIHN0YXRzLnNpemVfaW5fdXNlOworLSNlbGlmIGRlZmluZWQoT1Nf TElOVVgpIHx8IGRlZmluZWQoT1NfQ0hST01FT1MpIHx8IGRlZmluZWQoT1NfQU5EUk9JRCkKKysj ZWxpZiAoZGVmaW5lZChPU19MSU5VWCkgJiYgZGVmaW5lZChfX0dMSUJDX18pKSB8fCBkZWZpbmVk KE9TX0NIUk9NRU9TKSB8fCBkZWZpbmVkKE9TX0FORFJPSUQpCisgICByZXR1cm4gR2V0TWFsbG9j VXNhZ2VNYWxsaW5mbygpOworLSNlbGlmIGRlZmluZWQoT1NfRlVDSFNJQSkKKysjZWxzZQorICAg Ly8gVE9ETyhmdWNoc2lhKTogTm90IGN1cnJlbnRseSBleHBvc2VkLiBodHRwczovL2NyYnVnLmNv bS83MzUwODcuCisgICByZXR1cm4gMDsKKyAjZW5kaWYKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS90aGlyZF9wYXJ0eS90ZmxpdGUvc3JjL3RlbnNvcmZsb3cvbGl0ZS9wcm9maWxpbmcvbWVt b3J5X2luZm8uY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS90Zmxp dGUvc3JjL3RlbnNvcmZsb3cvbGl0ZS9wcm9maWxpbmcvbWVtb3J5X2luZm8uY2MKK0BAIC0yNyw3 ICsyNyw3IEBAIG5hbWVzcGFjZSBtZW1vcnkgeworIGNvbnN0IGludCBNZW1vcnlVc2FnZTo6a1Zh bHVlTm90U2V0ID0gMDsKKyAKKyBib29sIE1lbW9yeVVzYWdlOjpJc1N1cHBvcnRlZCgpIHsKKy0j aWZkZWYgX19saW51eF9fCisrI2lmZGVmIF9fR0xJQkNfXworICAgcmV0dXJuIHRydWU7CisgI2Vu ZGlmCisgICByZXR1cm4gZmFsc2U7CitAQCAtMzUsNyArMzUsNyBAQCBib29sIE1lbW9yeVVzYWdl OjpJc1N1cHBvcnRlZCgpIHsKKyAKKyBNZW1vcnlVc2FnZSBHZXRNZW1vcnlVc2FnZSgpIHsKKyAg IE1lbW9yeVVzYWdlIHJlc3VsdDsKKy0jaWZkZWYgX19saW51eF9fCisrI2lmZGVmIF9fR0xJQkNf XworICAgcnVzYWdlIHJlczsKKyAgIGlmIChnZXRydXNhZ2UoUlVTQUdFX1NFTEYsICZyZXMpID09 IDApIHsKKyAgICAgcmVzdWx0Lm1heF9yc3Nfa2IgPSByZXMucnVfbWF4cnNzOworLS0tIGEvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL2Jhc2UvdHJhY2VfZXZlbnQvbWFsbG9jX2R1bXBfcHJvdmlkZXIu Y2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL3RyYWNlX2V2ZW50L21hbGxvY19k dW1wX3Byb3ZpZGVyLmNjCitAQCAtMjEzLDcgKzIxMyw3IEBAIGJvb2wgTWFsbG9jRHVtcFByb3Zp ZGVyOjpPbk1lbW9yeUR1bXAoY28KKyAgICAgICAgICAgICAgICAgICAgICAmYWxsb2NhdGVkX29i amVjdHNfY291bnQpOworICNlbGlmIGRlZmluZWQoT1NfRlVDSFNJQSkKKyAvLyBUT0RPKGZ1Y2hz aWEpOiBQb3J0LCBzZWUgaHR0cHM6Ly9jcmJ1Zy5jb20vNzA2NTkyLgorLSNlbHNlCisrI2VsaWYg ZGVmaW5lZChfX0dMSUJDX18pCisgI2lmIGRlZmluZWQoX19HTElCQ19fKSAmJiBkZWZpbmVkKF9f R0xJQkNfUFJFUkVRKQorICNpZiBfX0dMSUJDX1BSRVJFUSgyLCAzMykKKyAjZGVmaW5lIE1BTExJ TkZPMl9GT1VORF9JTl9MSUJDCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0 Y2hlcy8wMjAzLWNocm9taXVtLW11c2wtc2lnaW5mb190LnBhdGNoIGIvc3JjcGtncy9xdDYtd2Vi ZW5naW5lL3BhdGNoZXMvMDIwMy1jaHJvbWl1bS1tdXNsLXNpZ2luZm9fdC5wYXRjaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjQzZWY3ZmQ3YzVkMgotLS0gL2Rldi9u dWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDMtY2hyb21pdW0tbXVz bC1zaWdpbmZvX3QucGF0Y2gKQEAgLTAsMCArMSwxOCBAQAorVGhlcmUncyBhIHN1YnRsZSBkaWZm ZXJlbmNlIGluIHRoZSBpbnRlcm5hbCBuYW1lIG9mIHNpZ2luZm9fdCBmaWVsZHMKK2JldHdlZW4g Z2xpYmMgYW5kIG11c2wuIFRoZSBzdHJ1Y3R1cmUgaXRzZWxmIGlzIGVxdWl2YWxlbnQsIHNvIGl0 CitzaG91bGQgc3VmZmljZSB0byBhZGQgYSBtYWNybyB0byByZW5hbWUgdGhlIGZpZWxkLgorCist LS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi90cmFw LmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJw Zi90cmFwLmNjCitAQCAtMTc0LDcgKzE3NCwxMSBAQCB2b2lkIFRyYXA6OlNpZ1N5cyhpbnQgbnIs IExpbnV4U2lnSW5mbyoKKyAgIC8vIElmIHRoZSB2ZXJzaW9uIG9mIGdsaWJjIGRvZXNuJ3QgaW5j bHVkZSB0aGlzIGluZm9ybWF0aW9uIGluCisgICAvLyBzaWdpbmZvX3QgKG9sZGVyIHRoYW4gMi4x NyksIHdlIG5lZWQgdG8gZXhwbGljaXRseSBjb3B5IGl0CisgICAvLyBpbnRvIGFuIGFyY2hfc2ln c3lzIHN0cnVjdHVyZS4KKysjaWYgZGVmaW5lZChfX0dMSUJDX18pCisgICBtZW1jcHkoJnNpZ3N5 cywgJmluZm8tPl9zaWZpZWxkcywgc2l6ZW9mKHNpZ3N5cykpOworKyNlbHNlCisrICBtZW1jcHko JnNpZ3N5cywgJmluZm8tPl9fc2lfZmllbGRzLCBzaXplb2Yoc2lnc3lzKSk7CisrI2VuZGlmCisg I2VuZGlmCisgCisgI2lmIGRlZmluZWQoX19taXBzX18pCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0 Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjA0LWNocm9taXVtLW11c2wtc3RhY2tzdGFydC5wYXRjaCBi L3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDQtY2hyb21pdW0tbXVzbC1zdGFja3N0 YXJ0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYjAzY2Y0 M2I4NmRiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMv MDIwNC1jaHJvbWl1bS1tdXNsLXN0YWNrc3RhcnQucGF0Y2gKQEAgLTAsMCArMSwyMCBAQAorLS0t IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRm b3JtL3d0Zi9zdGFja191dGlsLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRf cGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vd3RmL3N0YWNrX3V0aWwuY2MKK0BAIC0yOSw3 ICsyOSw3IEBAIHNpemVfdCBHZXRVbmRlcmVzdGltYXRlZFN0YWNrU2l6ZSgpIHsKKyAvLyBGSVhN RTogT24gTWFjIE9TWCBhbmQgTGludXgsIHRoaXMgbWV0aG9kIGNhbm5vdCBlc3RpbWF0ZSBzdGFj ayBzaXplCisgLy8gY29ycmVjdGx5IGZvciB0aGUgbWFpbiB0aHJlYWQuCisgCistI2VsaWYgZGVm aW5lZChfX0dMSUJDX18pIHx8IGRlZmluZWQoT1NfQU5EUk9JRCkgfHwgZGVmaW5lZChPU19GUkVF QlNEKSB8fCBcCisrI2VsaWYgZGVmaW5lZChPU19MSU5VWCkgfHwgZGVmaW5lZChPU19BTkRST0lE KSB8fCBkZWZpbmVkKE9TX0ZSRUVCU0QpIHx8IFwKKyAgICAgZGVmaW5lZChPU19GVUNIU0lBKQor ICAgLy8gcHRocmVhZF9nZXRhdHRyX25wKCkgY2FuIGZhaWwgaWYgdGhlIHRocmVhZCBpcyBub3Qg aW52b2tlZCBieQorICAgLy8gcHRocmVhZF9jcmVhdGUoKSAoZS5nLiwgdGhlIG1haW4gdGhyZWFk IG9mIGJsaW5rX3VuaXR0ZXN0cykuCitAQCAtOTcsNyArOTcsNyBAQCByZXR1cm4gVGhyZWFkaW5n OjpUaHJlYWRTdGFja1NpemUoKTsKKyB9CisgCisgdm9pZCogR2V0U3RhY2tTdGFydCgpIHsKKy0j aWYgZGVmaW5lZChfX0dMSUJDX18pIHx8IGRlZmluZWQoT1NfQU5EUk9JRCkgfHwgZGVmaW5lZChP U19GUkVFQlNEKSB8fCBcCisrI2lmIGRlZmluZWQoT1NfTElOVVgpIHx8IGRlZmluZWQoT1NfQU5E Uk9JRCkgfHwgZGVmaW5lZChPU19GUkVFQlNEKSB8fCBcCisgICAgIGRlZmluZWQoT1NfRlVDSFNJ QSkKKyAgIHB0aHJlYWRfYXR0cl90IGF0dHI7CisgICBpbnQgZXJyb3I7CmRpZmYgLS1naXQgYS9z cmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjA1LWNocm9taXVtLW11c2wtc2FuZGJveC5w YXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDUtY2hyb21pdW0tbXVzbC1z YW5kYm94LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNzcy YTU3OGZkODIzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNo ZXMvMDIwNS1jaHJvbWl1bS1tdXNsLXNhbmRib3gucGF0Y2gKQEAgLTAsMCArMSw5MiBAQAorLS0t IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVy cy9zeXNjYWxsX3BhcmFtZXRlcnNfcmVzdHJpY3Rpb25zLmNjCisrKysgYi9zcmMvM3JkcGFydHkv Y2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1l dGVyc19yZXN0cmljdGlvbnMuY2MKK0BAIC0xMzgsNyArMTM4LDcgQEAgbmFtZXNwYWNlIHNhbmRi b3ggeworIC8vIHByZXNlbnQgKGFzIGluIG5ld2VyIHZlcnNpb25zIG9mIHBvc2l4X3NwYXduKS4K KyBSZXN1bHRFeHByIFJlc3RyaWN0Q2xvbmVUb1RocmVhZHNBbmRFUEVSTUZvcmsoKSB7CisgICBj b25zdCBBcmc8dW5zaWduZWQgbG9uZz4gZmxhZ3MoMCk7CistCisrI2lmIGRlZmluZWQoX19HTElC Q19fKQorICAgLy8gVE9ETyhtZGVtcHNreSk6IEV4dGVuZCBEU0wgdG8gc3VwcG9ydCAoZmxhZ3Mg JiB+bWFzazEpID09IG1hc2syLgorICAgY29uc3QgdWludDY0X3Qga0FuZHJvaWRDbG9uZU1hc2sg PSBDTE9ORV9WTSB8IENMT05FX0ZTIHwgQ0xPTkVfRklMRVMgfAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBDTE9ORV9TSUdIQU5EIHwgQ0xPTkVfVEhSRUFEIHwKK0BAIC0x NjUsNiArMTY1LDE3IEBAIFJlc3VsdEV4cHIgUmVzdHJpY3RDbG9uZVRvVGhyZWFkc0FuZEVQRVIK KyAgIHJldHVybiBJZihJc0FuZHJvaWQoKSA/IGFuZHJvaWRfdGVzdCA6IGdsaWJjX3Rlc3QsIEFs bG93KCkpCisgICAgICAgLkVsc2VJZihpc19mb3JrX29yX2Nsb25lX3Zmb3JrLCBFcnJvcihFUEVS TSkpCisgICAgICAgLkVsc2UoQ3Jhc2hTSUdTWVNDbG9uZSgpKTsKKysjZWxzZQorKyAgY29uc3Qg aW50IHJlcXVpcmVkID0gQ0xPTkVfVk0gfCBDTE9ORV9GUyB8IENMT05FX0ZJTEVTIHwgQ0xPTkVf U0lHSEFORCB8CisrICAgICAgICAgICAgICAgICAgICAgICBDTE9ORV9USFJFQUQgfCBDTE9ORV9T WVNWU0VNOworKyAgY29uc3QgaW50IHNhZmUgPSBDTE9ORV9TRVRUTFMgfCBDTE9ORV9QQVJFTlRf U0VUVElEIHwgQ0xPTkVfQ0hJTERfQ0xFQVJUSUQgfAorKyAgICAgICAgICAgICAgICAgICBDTE9O RV9ERVRBQ0hFRDsKKysgIGNvbnN0IEJvb2xFeHByIHRocmVhZF9jbG9uZV9vayA9IChmbGFncyZ+ c2FmZSk9PXJlcXVpcmVkOworKworKyAgcmV0dXJuIElmKHRocmVhZF9jbG9uZV9vaywgQWxsb3co KSkKKysgICAgICAuRWxzZUlmKChmbGFncyAmIChDTE9ORV9WTSB8IENMT05FX1RIUkVBRCkpID09 IDAsIEVycm9yKEVQRVJNKSkKKysgICAgICAuRWxzZShDcmFzaFNJR1NZU0Nsb25lKCkpOworKyNl bmRpZgorIH0KKyAKKyAjaWZuZGVmIFBSX1BBQ19SRVNFVF9LRVlTCistLS0gYS9zcmMvM3JkcGFy dHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0 cy5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1i cGYtaGVscGVycy9zeXNjYWxsX3NldHMuY2MKK0BAIC00MTksNiArNDE5LDkgQEAgYm9vbCBTeXNj YWxsU2V0czo6SXNBbGxvd2VkUHJvY2Vzc1N0YXJ0TworICNpZiBkZWZpbmVkKF9faTM4Nl9fKQor ICAgICBjYXNlIF9fTlJfd2FpdHBpZDoKKyAjZW5kaWYKKysjaWYgIWRlZmluZWQoX19HTElCQ19f KQorKyAgICBjYXNlIF9fTlJfc2V0X3RpZF9hZGRyZXNzOgorKyNlbmRpZgorICAgICAgIHJldHVy biB0cnVlOworICAgICBjYXNlIF9fTlJfY2xvbmU6ICAvLyBTaG91bGQgYmUgcGFyYW1ldGVyLXJl c3RyaWN0ZWQuCisgICAgIGNhc2UgX19OUl9zZXRuczogIC8vIFByaXZpbGVnZWQuCitAQCAtNDMx LDcgKzQzNCw5IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZFByb2Nlc3NTdGFydE8KKyAj aWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9f bWlwc19fKQorICAgICBjYXNlIF9fTlJfc2V0X3RocmVhZF9hcmVhOgorICNlbmRpZgorKyNpZiBk ZWZpbmVkKF9fR0xJQkNfXykKKyAgICAgY2FzZSBfX05SX3NldF90aWRfYWRkcmVzczoKKysjZW5k aWYKKyAgICAgY2FzZSBfX05SX3Vuc2hhcmU6CisgI2lmICFkZWZpbmVkKF9fbWlwc19fKSAmJiAh ZGVmaW5lZChfX2FhcmNoNjRfXykKKyAgICAgY2FzZSBfX05SX3Zmb3JrOgorQEAgLTU0NSw2ICs1 NTAsOSBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRBZGRyZXNzU3BhY2VBCisgICAgIGNh c2UgX19OUl9tbG9jazoKKyAgICAgY2FzZSBfX05SX211bmxvY2s6CisgICAgIGNhc2UgX19OUl9t dW5tYXA6CisrI2lmICFkZWZpbmVkKF9fR0xJQkNfXykKKysgICAgY2FzZSBfX05SX21yZW1hcDoK KysjZW5kaWYKKyAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgY2FzZSBfX05SX21hZHZpc2U6Cisg ICAgIGNhc2UgX19OUl9taW5jb3JlOgorQEAgLTU2Miw3ICs1NzAsOSBAQCBib29sIFN5c2NhbGxT ZXRzOjpJc0FsbG93ZWRBZGRyZXNzU3BhY2VBCisgICAgIGNhc2UgX19OUl9tb2RpZnlfbGR0Ogor ICNlbmRpZgorICAgICBjYXNlIF9fTlJfbXByb3RlY3Q6CisrI2lmIGRlZmluZWQoX19HTElCQ19f KQorICAgICBjYXNlIF9fTlJfbXJlbWFwOgorKyNlbmRpZgorICAgICBjYXNlIF9fTlJfbXN5bmM6 CisgICAgIGNhc2UgX19OUl9tdW5sb2NrYWxsOgorICAgICBjYXNlIF9fTlJfcmVhZGFoZWFkOgor LS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvcG9saWN5L2xpbnV4L2JwZl9yZW5k ZXJlcl9wb2xpY3lfbGludXguY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94 L3BvbGljeS9saW51eC9icGZfcmVuZGVyZXJfcG9saWN5X2xpbnV4LmNjCitAQCAtOTcsMTEgKzk3 LDE4IEBAIFJlc3VsdEV4cHIgUmVuZGVyZXJQcm9jZXNzUG9saWN5OjpFdmFsdWEKKyAgICAgY2Fz ZSBfX05SX3N5c2luZm86CisgICAgIGNhc2UgX19OUl90aW1lczoKKyAgICAgY2FzZSBfX05SX3Vu YW1lOgorKyNpZiAhZGVmaW5lZChfX0dMSUJDX18pCisrICAgIGNhc2UgX19OUl9zY2hlZF9nZXRw YXJhbToKKysgICAgY2FzZSBfX05SX3NjaGVkX2dldHNjaGVkdWxlcjoKKysgICAgY2FzZSBfX05S X3NjaGVkX3NldHNjaGVkdWxlcjoKKysjZW5kaWYKKyAgICAgICByZXR1cm4gQWxsb3coKTsKKyAg ICAgY2FzZSBfX05SX3NjaGVkX2dldGFmZmluaXR5OgorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykK KyAgICAgY2FzZSBfX05SX3NjaGVkX2dldHBhcmFtOgorICAgICBjYXNlIF9fTlJfc2NoZWRfZ2V0 c2NoZWR1bGVyOgorICAgICBjYXNlIF9fTlJfc2NoZWRfc2V0c2NoZWR1bGVyOgorKyNlbmRpZgor ICAgICAgIHJldHVybiBSZXN0cmljdFNjaGVkVGFyZ2V0KEdldFBvbGljeVBpZCgpLCBzeXNubyk7 CisgICAgIGNhc2UgX19OUl9wcmxpbWl0NjQ6CisgICAgICAgLy8gU2VlIGNyYnVnLmNvbS82NjI0 NTAgYW5kIHNldHJsaW1pdCBjb21tZW50IGFib3ZlLgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYt d2ViZW5naW5lL3BhdGNoZXMvMDIwNi1jaHJvbWl1bS1tdXNsLWRlZmF1bHQtc3RhY2tzaXplLnBh dGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIwNi1jaHJvbWl1bS1tdXNsLWRl ZmF1bHQtc3RhY2tzaXplLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwMC4uYmMwNzQ5NWI4MTQ0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5n aW5lL3BhdGNoZXMvMDIwNi1jaHJvbWl1bS1tdXNsLWRlZmF1bHQtc3RhY2tzaXplLnBhdGNoCkBA IC0wLDAgKzEsMTUgQEAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL3RocmVhZGlu Zy9wbGF0Zm9ybV90aHJlYWRfbGludXguY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9i YXNlL3RocmVhZGluZy9wbGF0Zm9ybV90aHJlYWRfbGludXguY2MKK0BAIC00MzksNyArNDM5LDEy IEBAIHZvaWQgVGVybWluYXRlT25UaHJlYWQoKSB7fQorIAorIHNpemVfdCBHZXREZWZhdWx0VGhy ZWFkU3RhY2tTaXplKGNvbnN0IHB0aHJlYWRfYXR0cl90JiBhdHRyaWJ1dGVzKSB7CisgI2lmICFk ZWZpbmVkKFRIUkVBRF9TQU5JVElaRVIpCisrI2lmIGRlZmluZWQoX19HTElCQ19fKQorICAgcmV0 dXJuIDA7CisrI2Vsc2UgLy8gZGVmaW5lZChfX0dMSUJDX18pCisrICAvLyBGb3IgTXVzbCBsaWJj IHRyeSB3aXRoIGEgZGVmYXVsdCBzdGFjayBzaXplIG9mIDIgTWlCCisrICByZXR1cm4gMiAqIDEw MjQgKiAxMDI0OworKyNlbmRpZiAvLyAhZGVmaW5lZChfX0dMSUJDX18pCisgI2Vsc2UKKyAgIC8v IFRocmVhZFNhbml0aXplciBibG9hdHMgdGhlIHN0YWNrIGhlYXZpbHkuIEV2aWRlbmNlIGhhcyBi ZWVuIHRoYXQgdGhlCisgICAvLyBkZWZhdWx0IHN0YWNrIHNpemUgaXNuJ3QgZW5vdWdoIGZvciBz b21lIGJyb3dzZXIgdGVzdHMuCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0 Y2hlcy8wMjA4LWNocm9taXVtLW11c2wtZXhlY2luZm8ucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJl bmdpbmUvcGF0Y2hlcy8wMjA4LWNocm9taXVtLW11c2wtZXhlY2luZm8ucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi45ZjNiOTY0Njc2YjMKLS0tIC9kZXYvbnVs bAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjA4LWNocm9taXVtLW11c2wt ZXhlY2luZm8ucGF0Y2gKQEAgLTAsMCArMSwxMjUgQEAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS9iYXNlL2RlYnVnL3N0YWNrX3RyYWNlLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21p dW0vYmFzZS9kZWJ1Zy9zdGFja190cmFjZS5jYworQEAgLTI1Miw3ICsyNTIsOSBAQCB2b2lkIFN0 YWNrVHJhY2U6OlByaW50KCkgY29uc3QgeworIH0KKyAKKyB2b2lkIFN0YWNrVHJhY2U6Ok91dHB1 dFRvU3RyZWFtKHN0ZDo6b3N0cmVhbSogb3MpIGNvbnN0IHsKKysjaWYgZGVmaW5lZChfX0dMSUJD X18pICYmICFkZWZpbmVkKF9BSVgpCisgICBPdXRwdXRUb1N0cmVhbVdpdGhQcmVmaXgob3MsIG51 bGxwdHIpOworKyNlbmRpZgorIH0KKyAKKyBzdGQ6OnN0cmluZyBTdGFja1RyYWNlOjpUb1N0cmlu ZygpIGNvbnN0IHsKK0BAIC0yNjAsNyArMjYyLDcgQEAgc3RkOjpzdHJpbmcgU3RhY2tUcmFjZTo6 VG9TdHJpbmcoKSBjb25zdAorIH0KKyBzdGQ6OnN0cmluZyBTdGFja1RyYWNlOjpUb1N0cmluZ1dp dGhQcmVmaXgoY29uc3QgY2hhciogcHJlZml4X3N0cmluZykgY29uc3QgeworICAgc3RkOjpzdHJp bmdzdHJlYW0gc3RyZWFtOworLSNpZiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChf QUlYKQorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKyAgIE91dHB1 dFRvU3RyZWFtV2l0aFByZWZpeCgmc3RyZWFtLCBwcmVmaXhfc3RyaW5nKTsKKyAjZW5kaWYKKyAg IHJldHVybiBzdHJlYW0uc3RyKCk7CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vYmFzZS9k ZWJ1Zy9zdGFja190cmFjZV9wb3NpeC5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jh c2UvZGVidWcvc3RhY2tfdHJhY2VfcG9zaXguY2MKK0BAIC0yNyw3ICsyNyw3IEBACisgI2lmICFk ZWZpbmVkKFVTRV9TWU1CT0xJWkUpCisgI2luY2x1ZGUgPGN4eGFiaS5oPgorICNlbmRpZgorLSNp ZiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorKyNpZiBkZWZpbmVkKF9f R0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKyAjaW5jbHVkZSA8ZXhlY2luZm8uaD4KKyAjZW5k aWYKKyAKK0BAIC04OSw3ICs4OSw3IEBAIHZvaWQgRGVtYW5nbGVTeW1ib2xzKHN0ZDo6c3RyaW5n KiB0ZXh0KQorICAgLy8gTm90ZTogY29kZSBpbiB0aGlzIGZ1bmN0aW9uIGlzIE5PVCBhc3luYy1z aWduYWwgc2FmZSAoc3RkOjpzdHJpbmcgdXNlcworICAgLy8gbWFsbG9jIGludGVybmFsbHkpLgor IAorLSNpZiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorKyNpZiBkZWZp bmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKyAgIHN0ZDo6c3RyaW5nOjpzaXplX3R5 cGUgc2VhcmNoX2Zyb20gPSAwOworICAgd2hpbGUgKHNlYXJjaF9mcm9tIDwgdGV4dC0+c2l6ZSgp KSB7CisgICAgIC8vIExvb2sgZm9yIHRoZSBzdGFydCBvZiBhIG1hbmdsZWQgc3ltYm9sLCBmcm9t IHNlYXJjaF9mcm9tLgorQEAgLTEyNCw3ICsxMjQsNyBAQCB2b2lkIERlbWFuZ2xlU3ltYm9scyhz dGQ6OnN0cmluZyogdGV4dCkKKyAgICAgICBzZWFyY2hfZnJvbSA9IG1hbmdsZWRfc3RhcnQgKyAy OworICAgICB9CisgICB9CistI2VuZGlmICAvLyAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVm aW5lZChfQUlYKQorKyNlbmRpZiAgLy8gIWRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChf QUlYKQorIH0KKyAjZW5kaWYgIC8vICFkZWZpbmVkKFVTRV9TWU1CT0xJWkUpCisgCitAQCAtMTM2 LDcgKzEzNiw3IEBAIGNsYXNzIEJhY2t0cmFjZU91dHB1dEhhbmRsZXIgeworICAgdmlydHVhbCB+ QmFja3RyYWNlT3V0cHV0SGFuZGxlcigpID0gZGVmYXVsdDsKKyB9OworIAorLSNpZiAhZGVmaW5l ZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykg JiYgIWRlZmluZWQoX0FJWCkKKyB2b2lkIE91dHB1dFBvaW50ZXIodm9pZCogcG9pbnRlciwgQmFj a3RyYWNlT3V0cHV0SGFuZGxlciogaGFuZGxlcikgeworICAgLy8gVGhpcyBzaG91bGQgYmUgbW9y ZSB0aGFuIGVub3VnaCB0byBzdG9yZSBhIDY0LWJpdCBudW1iZXIgaW4gaGV4OgorICAgLy8gMTYg aGV4IGRpZ2l0cyArIDEgZm9yIG51bGwtdGVybWluYXRvci4KK0BAIC0yMTksNyArMjE5LDcgQEAg dm9pZCBQcm9jZXNzQmFja3RyYWNlKHZvaWQqIGNvbnN0KiB0cmFjZQorICAgfQorICNlbmRpZiAg Ly8gZGVmaW5lZChVU0VfU1lNQk9MSVpFKQorIH0KKy0jZW5kaWYgIC8vICFkZWZpbmVkKF9fVUNM SUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisrI2VuZGlmICAvLyAhZGVmaW5lZChfX0dMSUJDX18p ICYmICFkZWZpbmVkKF9BSVgpCisgCisgdm9pZCBQcmludFRvU3RkZXJyKGNvbnN0IGNoYXIqIG91 dHB1dCkgeworICAgLy8gTk9URTogVGhpcyBjb2RlIE1VU1QgYmUgYXN5bmMtc2lnbmFsIHNhZmUg KGl0J3MgdXNlZCBieSBpbi1wcm9jZXNzCitAQCAtODM5LDcgKzgzOSw3IEBAIHNpemVfdCBDb2xs ZWN0U3RhY2tUcmFjZSh2b2lkKiogdHJhY2UsIHMKKyAgIC8vIElmIHdlIGRvIG5vdCBoYXZlIHVu d2luZCB0YWJsZXMsIHRoZW4gdHJ5IHRyYWNpbmcgdXNpbmcgZnJhbWUgcG9pbnRlcnMuCisgICBy ZXR1cm4gYmFzZTo6ZGVidWc6OlRyYWNlU3RhY2tGcmFtZVBvaW50ZXJzKGNvbnN0X2Nhc3Q8Y29u c3Qgdm9pZCoqPih0cmFjZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvdW50LCAwKTsKKy0jZWxpZiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVm aW5lZChfQUlYKQorKyNlbGlmIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQor ICAgLy8gVGhvdWdoIHRoZSBiYWNrdHJhY2UgQVBJIG1hbiBwYWdlIGRvZXMgbm90IGxpc3QgYW55 IHBvc3NpYmxlIG5lZ2F0aXZlCisgICAvLyByZXR1cm4gdmFsdWVzLCB3ZSB0YWtlIG5vIGNoYW5j ZS4KKyAgIHJldHVybiBiYXNlOjpzYXR1cmF0ZWRfY2FzdDxzaXplX3Q+KGJhY2t0cmFjZSh0cmFj ZSwgY291bnQpKTsKK0BAIC04NTIsMTMgKzg1MiwxMyBAQCB2b2lkIFN0YWNrVHJhY2U6OlByaW50 V2l0aFByZWZpeChjb25zdCBjCisgLy8gTk9URTogVGhpcyBjb2RlIE1VU1QgYmUgYXN5bmMtc2ln bmFsIHNhZmUgKGl0J3MgdXNlZCBieSBpbi1wcm9jZXNzCisgLy8gc3RhY2sgZHVtcGluZyBzaWdu YWwgaGFuZGxlcikuIE5PIG1hbGxvYyBvciBzdGRpbyBpcyBhbGxvd2VkIGhlcmUuCisgCistI2lm ICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisrI2lmIGRlZmluZWQoX19H TElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorICAgUHJpbnRCYWNrdHJhY2VPdXRwdXRIYW5kbGVy IGhhbmRsZXI7CisgICBQcm9jZXNzQmFja3RyYWNlKHRyYWNlXywgY291bnRfLCBwcmVmaXhfc3Ry aW5nLCAmaGFuZGxlcik7CisgI2VuZGlmCisgfQorIAorLSNpZiAhZGVmaW5lZChfX1VDTElCQ19f KSAmJiAhZGVmaW5lZChfQUlYKQorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQo X0FJWCkKKyB2b2lkIFN0YWNrVHJhY2U6Ok91dHB1dFRvU3RyZWFtV2l0aFByZWZpeChzdGQ6Om9z dHJlYW0qIG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IGNoYXIqIHByZWZpeF9zdHJpbmcpIGNvbnN0IHsKKyAgIFN0cmVhbUJhY2t0cmFjZU91dHB1 dEhhbmRsZXIgaGFuZGxlcihvcyk7CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vYmFzZS9s b2dnaW5nLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vYmFzZS9sb2dnaW5nLmNjCitA QCAtNTgyLDcgKzU4Miw3IEBAIExvZ01lc3NhZ2U6OkxvZ01lc3NhZ2UoY29uc3QgY2hhciogZmls ZSwKKyAKKyBMb2dNZXNzYWdlOjp+TG9nTWVzc2FnZSgpIHsKKyAgIHNpemVfdCBzdGFja19zdGFy dCA9IHN0cmVhbV8udGVsbHAoKTsKKy0jaWYgIWRlZmluZWQoT0ZGSUNJQUxfQlVJTEQpICYmICFk ZWZpbmVkKE9TX05BQ0wpICYmICFkZWZpbmVkKF9fVUNMSUJDX18pICYmIFwKKysjaWYgIWRlZmlu ZWQoT0ZGSUNJQUxfQlVJTEQpICYmICFkZWZpbmVkKE9TX05BQ0wpICYmIGRlZmluZWQoX19HTElC Q19fKSAmJiBcCisgICAgICFkZWZpbmVkKE9TX0FJWCkKKyAgIGlmIChzZXZlcml0eV8gPT0gTE9H R0lOR19GQVRBTCAmJiAhYmFzZTo6ZGVidWc6OkJlaW5nRGVidWdnZWQoKSkgeworICAgICAvLyBJ bmNsdWRlIGEgc3RhY2sgdHJhY2Ugb24gYSBmYXRhbCwgdW5sZXNzIGEgZGVidWdnZXIgaXMgYXR0 YWNoZWQuCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL2NvZGVnZW4vZXh0ZXJu YWwtcmVmZXJlbmNlLXRhYmxlLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3Jj L2NvZGVnZW4vZXh0ZXJuYWwtcmVmZXJlbmNlLXRhYmxlLmNjCitAQCAtMTIsNyArMTIsOSBAQAor IAorICNpZiBkZWZpbmVkKERFQlVHKSAmJiBkZWZpbmVkKFY4X09TX0xJTlVYKSAmJiAhZGVmaW5l ZChWOF9PU19BTkRST0lEKQorICNkZWZpbmUgU1lNQk9MSVpFX0ZVTkNUSU9OCisrI2lmIGRlZmlu ZWQoX19HTElCQ19fKQorICNpbmNsdWRlIDxleGVjaW5mby5oPgorKyNlbmRpZgorIAorICNpbmNs dWRlIDx2ZWN0b3I+CisgCitAQCAtMTAzLDcgKzEwNSw3IEBAIHZvaWQgRXh0ZXJuYWxSZWZlcmVu Y2VUYWJsZTo6SW5pdChJc29sYXQKKyB9CisgCisgY29uc3QgY2hhciogRXh0ZXJuYWxSZWZlcmVu Y2VUYWJsZTo6UmVzb2x2ZVN5bWJvbCh2b2lkKiBhZGRyZXNzKSB7CistI2lmZGVmIFNZTUJPTEla RV9GVU5DVElPTgorKyNpZiBkZWZpbmVkKFNZTUJPTElaRV9GVU5DVElPTikgJiYgZGVmaW5lZChf X0dMSUJDX18pCisgICBjaGFyKiogbmFtZXMgPSBiYWNrdHJhY2Vfc3ltYm9scygmYWRkcmVzcywg MSk7CisgICBjb25zdCBjaGFyKiBuYW1lID0gbmFtZXNbMF07CisgICAvLyBUaGUgYXJyYXkgb2Yg bmFtZXMgaXMgbWFsbG9jJ2VkLiBIb3dldmVyLCBlYWNoIG5hbWUgc3RyaW5nIGlzIHN0YXRpYwpk aWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIwOS1jaHJvbWl1bS1t dXNsLXRocmVhZC1zdGFja3NpemUucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hl cy8wMjA5LWNocm9taXVtLW11c2wtdGhyZWFkLXN0YWNrc2l6ZS5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjRiNzYwYTQyOGIyNQotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDktY2hyb21pdW0tbXVzbC10aHJl YWQtc3RhY2tzaXplLnBhdGNoCkBAIC0wLDAgKzEsMjIgQEAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS9wcGFwaS91dGlsaXR5L3RocmVhZGluZy9zaW1wbGVfdGhyZWFkLmNjCisrKysgYi9z cmMvM3JkcGFydHkvY2hyb21pdW0vcHBhcGkvdXRpbGl0eS90aHJlYWRpbmcvc2ltcGxlX3RocmVh ZC5jYworQEAgLTEzLDcgKzEzLDcgQEAgbmFtZXNwYWNlIHBwIHsKKyBuYW1lc3BhY2UgeworIAor IC8vIFVzZSAyTUIgZGVmYXVsdCBzdGFjayBzaXplIGZvciBOYXRpdmUgQ2xpZW50LCBvdGhlcndp c2UgdXNlIHN5c3RlbSBkZWZhdWx0LgorLSNpZiBkZWZpbmVkKF9fbmF0aXZlX2NsaWVudF9fKQor KyNpZiBkZWZpbmVkKF9fbmF0aXZlX2NsaWVudF9fKSB8fCAhZGVmaW5lZChfX0dMSUJDX18pCisg Y29uc3Qgc2l6ZV90IGtEZWZhdWx0U3RhY2tTaXplID0gMiAqIDEwMjQgKiAxMDI0OworICNlbHNl CisgY29uc3Qgc2l6ZV90IGtEZWZhdWx0U3RhY2tTaXplID0gMDsKKy0tLSBhL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS92OC9zcmMvYmFzZS9wbGF0Zm9ybS9wbGF0Zm9ybS1wb3NpeC5jYworKysrIGIv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4L3NyYy9iYXNlL3BsYXRmb3JtL3BsYXRmb3JtLXBvc2l4 LmNjCitAQCAtODgzLDcgKzg4Myw3IEBAIGJvb2wgVGhyZWFkOjpTdGFydCgpIHsKKyAjaWYgVjhf T1NfTUFDT1NYCisgICAgIC8vIERlZmF1bHQgb24gTWFjIE9TIFggaXMgNTEya0IgLS0gYnVtcCB1 cCB0byAxTUIKKyAgICAgc3RhY2tfc2l6ZSA9IDEgKiAxMDI0ICogMTAyNDsKKy0jZWxpZiBWOF9P U19BSVgKKysjZWxpZiBWOF9PU19BSVggfHwgIWRlZmluZWQoX19HTElCQ19fKQorICAgICAvLyBE ZWZhdWx0IG9uIEFJWCBpcyA5NmtCIC0tIGJ1bXAgdXAgdG8gMk1CCisgICAgIHN0YWNrX3NpemUg PSAyICogMTAyNCAqIDEwMjQ7CisgI2VuZGlmCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJl bmdpbmUvcGF0Y2hlcy8wMjEwLWNocm9taXVtLW11c2wtbXNndmVjLXB1c2hfYmFjay5wYXRjaCBi L3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMTAtY2hyb21pdW0tbXVzbC1tc2d2ZWMt cHVzaF9iYWNrLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u OTA1ZGFhMjIzNzAwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvMDIxMC1jaHJvbWl1bS1tdXNsLW1zZ3ZlYy1wdXNoX2JhY2sucGF0Y2gKQEAgLTAsMCAr MSwxNCBAQAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL25ldC9zb2NrZXQvdWRwX3NvY2tl dF9wb3NpeC5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL25ldC9zb2NrZXQvdWRwX3Nv Y2tldF9wb3NpeC5jYworQEAgLTExNjIsNyArMTE2MiwxMSBAQCBTZW5kUmVzdWx0IFVEUFNvY2tl dFBvc2l4U2VuZGVyOjpJbnRlcm5hCisgICAgIG1zZ19pb3YtPnB1c2hfYmFjayh7Y29uc3RfY2Fz dDxjaGFyKj4oYnVmZmVyLT5kYXRhKCkpLCBidWZmZXItPmxlbmd0aCgpfSk7CisgICBtc2d2ZWMt PnJlc2VydmUoYnVmZmVycy5zaXplKCkpOworICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCBidWZm ZXJzLnNpemUoKTsgaisrKQorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykKKyAgICAgbXNndmVjLT5w dXNoX2JhY2soe3tudWxscHRyLCAwLCAmbXNnX2lvdltqXSwgMSwgbnVsbHB0ciwgMCwgMH0sIDB9 KTsKKysjZWxzZQorKyAgICBtc2d2ZWMtPnB1c2hfYmFjayh7e251bGxwdHIsIDAsICZtc2dfaW92 W2pdLCAxLCAwLCAwLCAwfSwgMH0pOworKyNlbmRpZgorICAgaW50IHJlc3VsdCA9IEhBTkRMRV9F SU5UUihTZW5kbW1zZyhmZCwgJm1zZ3ZlY1swXSwgYnVmZmVycy5zaXplKCksIDApKTsKKyAgIFNl bmRSZXN1bHQgc2VuZF9yZXN1bHQoMCwgMCwgc3RkOjptb3ZlKGJ1ZmZlcnMpKTsKKyAgIGlmIChy ZXN1bHQgPCAwKSB7CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8w MjExLWNocm9taXVtLW11c2wtY2Fub25pY2FsaXplLWZpbGUtbmFtZS1tdXNsLnBhdGNoIGIvc3Jj cGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIxMS1jaHJvbWl1bS1tdXNsLWNhbm9uaWNhbGl6 ZS1maWxlLW5hbWUtbXVzbC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAuLmQ0M2U2YmQ0ODhiYwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVu Z2luZS9wYXRjaGVzLzAyMTEtY2hyb21pdW0tbXVzbC1jYW5vbmljYWxpemUtZmlsZS1uYW1lLW11 c2wucGF0Y2gKQEAgLTAsMCArMSwxMSBAQAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Ro aXJkX3BhcnR5L25hc20vbmFzbWxpYi9yZWFscGF0aC5jCisrKysgYi9zcmMvM3JkcGFydHkvY2hy b21pdW0vdGhpcmRfcGFydHkvbmFzbS9uYXNtbGliL3JlYWxwYXRoLmMKK0BAIC01NSw3ICs1NSw3 IEBACisgICovCisgY2hhciAqbmFzbV9yZWFscGF0aChjb25zdCBjaGFyICpyZWxfcGF0aCkKKyB7 CistICAgIGNoYXIgKnJwID0gY2Fub25pY2FsaXplX2ZpbGVfbmFtZShyZWxfcGF0aCk7CisrICAg IGNoYXIgKnJwID0gcmVhbHBhdGgocmVsX3BhdGgsIE5VTEwpOworICAgICByZXR1cm4gcnAgPyBy cCA6IG5hc21fc3RyZHVwKHJlbF9wYXRoKTsKKyB9CisgCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0 Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjEyLWNocm9taXVtLW11c2wtbm8tZ2V0Y29udGV4dC5wYXRj aCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMTItY2hyb21pdW0tbXVzbC1uby1n ZXRjb250ZXh0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u NTc1NWYxYjQ1YTdkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvMDIxMi1jaHJvbWl1bS1tdXNsLW5vLWdldGNvbnRleHQucGF0Y2gKQEAgLTAsMCArMSwy OSBAQAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2Jy ZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5jYworKysr IGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3Ny Yy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5jYworQEAgLTQ4OSw4ICs0 ODksMTAgQEAgYm9vbCBFeGNlcHRpb25IYW5kbGVyOjpTaW11bGF0ZVNpZ25hbERlbAorICAgLy8g RXhjZXB0aW9uSGFuZGxlcjo6SGFuZGxlU2lnbmFsKCkuCisgICBzaWdpbmZvLnNpX2NvZGUgPSBT SV9VU0VSOworICAgc2lnaW5mby5zaV9waWQgPSBnZXRwaWQoKTsKKy0gIHVjb250ZXh0X3QgY29u dGV4dDsKKysgIHVjb250ZXh0X3QgY29udGV4dCA9IHsgMCB9OworKyNpZiBkZWZpbmVkKF9fR0xJ QkNfXykKKyAgIGdldGNvbnRleHQoJmNvbnRleHQpOworKyNlbmRpZgorICAgcmV0dXJuIEhhbmRs ZVNpZ25hbChzaWcsICZzaWdpbmZvLCAmY29udGV4dCk7CisgfQorIAorQEAgLTY3NSw5ICs2Nzcs MTQgQEAgYm9vbCBFeGNlcHRpb25IYW5kbGVyOjpXcml0ZU1pbmlkdW1wKCkgeworICAgc3lzX3By Y3RsKFBSX1NFVF9EVU1QQUJMRSwgMSwgMCwgMCwgMCk7CisgCisgICBDcmFzaENvbnRleHQgY29u dGV4dDsKKysKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pCisgICBpbnQgZ2V0Y29udGV4dF9yZXN1 bHQgPSBnZXRjb250ZXh0KCZjb250ZXh0LmNvbnRleHQpOworICAgaWYgKGdldGNvbnRleHRfcmVz dWx0KQorICAgICByZXR1cm4gZmFsc2U7CisrI2Vsc2UKKysgIHJldHVybiBmYWxzZTsKKysjZW5k aWYKKyAKKyAjaWYgZGVmaW5lZChfX2kzODZfXykKKyAgIC8vIEluIENQVUZpbGxGcm9tVUNvbnRl eHQgaW4gbWluaWR1bXB3cml0ZXIuY2MgdGhlIHN0YWNrIHBvaW50ZXIgaXMgcmV0cmlldmVkCmRp ZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjEzLWNocm9taXVtLW11 c2wtY3Jhc2hwYWQucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjEzLWNo cm9taXVtLW11c2wtY3Jhc2hwYWQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwLi43MWJiYWQyYWYxN2UKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13 ZWJlbmdpbmUvcGF0Y2hlcy8wMjEzLWNocm9taXVtLW11c2wtY3Jhc2hwYWQucGF0Y2gKQEAgLTAs MCArMSwyNCBAQAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL2NvbXBhdC9saW51eC9zeXMvcHRyYWNlLmgKKysrKyBiL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9jb21wYXQvbGludXgvc3lz L3B0cmFjZS5oCitAQCAtMTcsNyArMTcsOSBAQAorIAorICNpbmNsdWRlX25leHQgPHN5cy9wdHJh Y2UuaD4KKyAKKysjaWZkZWYgX19HTElCQ19fCisgI2luY2x1ZGUgPHN5cy9jZGVmcy5oPgorKyNl bmRpZgorIAorIC8vIGh0dHBzOi8vc291cmNld2FyZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dp P2lkPTIyNDMzCisgI2lmICFkZWZpbmVkKFBUUkFDRV9HRVRfVEhSRUFEX0FSRUEpICYmICFkZWZp bmVkKFBUX0dFVF9USFJFQURfQVJFQSkgJiYgXAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvcHRyYWNlci5jYworKysr IGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0 aWwvbGludXgvcHRyYWNlci5jYworQEAgLTI2LDYgKzI2LDkgQEAKKyAKKyAjaWYgZGVmaW5lZChB UkNIX0NQVV9YODZfRkFNSUxZKQorICNpbmNsdWRlIDxhc20vbGR0Lmg+CisrI2lmICFkZWZpbmVk KF9fR0xJQkNfXykKKysjaW5jbHVkZSA8YXNtL3B0cmFjZS1hYmkuaD4KKysjZW5kaWYKKyAjZW5k aWYKKyAKKyBuYW1lc3BhY2UgY3Jhc2hwYWQgewpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2Vi ZW5naW5lL3BhdGNoZXMvMDIxNC1jaHJvbWl1bS1tdXNsLWZpeGVzLnBhdGNoIGIvc3JjcGtncy9x dDYtd2ViZW5naW5lL3BhdGNoZXMvMDIxNC1jaHJvbWl1bS1tdXNsLWZpeGVzLnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNTViMjY3ZWQxNzE0Ci0tLSAvZGV2 L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIxNC1jaHJvbWl1bS1t dXNsLWZpeGVzLnBhdGNoCkBAIC0wLDAgKzEsMTA4IEBACistLS0gYS9zcmMvM3JkcGFydHkvY2hy b21pdW0vc2FuZGJveC9saW51eC9zdWlkL3Byb2Nlc3NfdXRpbC5oCisrKysgYi9zcmMvM3JkcGFy dHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zdWlkL3Byb2Nlc3NfdXRpbC5oCitAQCAtMTIsNiAr MTIsMTUgQEAKKyAjaW5jbHVkZSA8c3RkaW50Lmg+CisgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgor IAorKyNpZiAhZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKFRFTVBfRkFJTFVSRV9SRVRS WSkKKysjIGRlZmluZSBURU1QX0ZBSUxVUkVfUkVUUlkoZXhwcmVzc2lvbikgXAorKwkoX19leHRl bnNpb25fXwkJCVwKKysJICh7IGxvbmcgaW50IF9fcmVzdWx0OwkJXAorKwkgIGRvIF9fcmVzdWx0 ID0gKGxvbmcgaW50KSAoZXhwcmVzc2lvbik7IFwKKysJICB3aGlsZSAoX19yZXN1bHQgPT0gLTFM ICYmIGVycm5vID09IEVJTlRSKTsgXAorKwkgIF9fcmVzdWx0OyB9KSkKKysjZW5kaWYKKysKKyAv LyBUaGlzIGFkanVzdHMgL3Byb2MvcHJvY2Vzcy9vb21fc2NvcmVfYWRqIHNvIHRoZSBMaW51eCBP T00ga2lsbGVyCisgLy8gd2lsbCBwcmVmZXIgY2VydGFpbiBwcm9jZXNzIHR5cGVzIG92ZXIgb3Ro ZXJzLiBUaGUgcmFuZ2UgZm9yIHRoZQorIC8vIGFkanVzdG1lbnQgaXMgWy0xMDAwLCAxMDAwXSwg d2l0aCBbMCwgMTAwMF0gYmVpbmcgdXNlciBhY2Nlc3NpYmxlLgorLS0tIGEvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3NlcnZpY2VzL2RldmljZS9zZXJpYWwvc2VyaWFsX2lvX2hhbmRsZXJfcG9zaXgu Y2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zZXJ2aWNlcy9kZXZpY2Uvc2VyaWFsL3Nl cmlhbF9pb19oYW5kbGVyX3Bvc2l4LmNjCitAQCAtNiw2ICs2LDcgQEAKKyAKKyAjaW5jbHVkZSA8 c3lzL2lvY3RsLmg+CisgI2luY2x1ZGUgPHRlcm1pb3MuaD4KKysjaW5jbHVkZSA8YXNtLWdlbmVy aWMvaW9jdGxzLmg+CisgCisgI2luY2x1ZGUgPGFsZ29yaXRobT4KKyAjaW5jbHVkZSA8dXRpbGl0 eT4KKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIu aAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFr cGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5o CitAQCAtMzgsNiArMzgsMTAgQEAKKyAjaW5jbHVkZSAiY29tbW9uL21lbW9yeV9hbGxvY2F0b3Iu aCIKKyAjaW5jbHVkZSAiZ29vZ2xlX2JyZWFrcGFkL2NvbW1vbi9taW5pZHVtcF9mb3JtYXQuaCIK KyAKKysjaWZuZGVmIF9fR0xJQkNfXworKyNkZWZpbmUgX2xpYmNfZnBzdGF0ZSBfZnBzdGF0ZQor KyNlbmRpZgorKworIG5hbWVzcGFjZSBnb29nbGVfYnJlYWtwYWQgeworIAorIC8vIFdyYXBzIHBs YXRmb3JtLWRlcGVuZGVudCBpbXBsZW1lbnRhdGlvbnMgb2YgYWNjZXNzb3JzIHRvIHVjb250ZXh0 X3Qgc3RydWN0cy4KKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9mZm1w ZWcvbGliYXZ1dGlsL2NwdS5jCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFy dHkvZmZtcGVnL2xpYmF2dXRpbC9jcHUuYworQEAgLTQxLDggKzQxLDEwIEBACisgI2luY2x1ZGUg PHN5cy9wYXJhbS5oPgorICNlbmRpZgorICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKysjaWZkZWYg X19HTElCQ19fCisgI2luY2x1ZGUgPHN5cy9zeXNjdGwuaD4KKyAjZW5kaWYKKysjZW5kaWYKKyAj aWYgSEFWRV9VTklTVERfSAorICNpbmNsdWRlIDx1bmlzdGQuaD4KKyAjZW5kaWYKKy0tLSBhL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9wZXJmZXR0by9pbmNsdWRlL3BlcmZldHRv L2V4dC9iYXNlL3RocmVhZF91dGlscy5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhp cmRfcGFydHkvcGVyZmV0dG8vaW5jbHVkZS9wZXJmZXR0by9leHQvYmFzZS90aHJlYWRfdXRpbHMu aAorQEAgLTI5LDkgKzI5LDcgQEAKKyAjaW5jbHVkZSA8YWxnb3JpdGhtPgorICNlbmRpZgorIAor LSNpZiBQRVJGRVRUT19CVUlMREZMQUcoUEVSRkVUVE9fT1NfQU5EUk9JRCkKKyAjaW5jbHVkZSA8 c3lzL3ByY3RsLmg+CistI2VuZGlmCisgCisgLy8gSW50ZXJuYWwgaW1wbGVtZW50YXRpb24gdXRp bHMgdGhhdCBhcmVuJ3QgYXMgd2lkZWx5IHVzZWZ1bC9zdXBwb3J0ZWQgYXMKKyAvLyBiYXNlL3Ro cmVhZF91dGlscy5oLgorQEAgLTU4LDcgKzU2LDcgQEAgaW5saW5lIGJvb2wgTWF5YmVTZXRUaHJl YWROYW1lKGNvbnN0IHN0ZAorIAorIGlubGluZSBib29sIEdldFRocmVhZE5hbWUoc3RkOjpzdHJp bmcmIG91dF9yZXN1bHQpIHsKKyAgIGNoYXIgYnVmWzE2XSA9IHt9OworLSNpZiBQRVJGRVRUT19C VUlMREZMQUcoUEVSRkVUVE9fT1NfQU5EUk9JRCkKKysjaWYgIWRlZmluZWQoX19HTElCQ19fKQor ICAgaWYgKHByY3RsKFBSX0dFVF9OQU1FLCBidWYpICE9IDApCisgICAgIHJldHVybiBmYWxzZTsK KyAjZWxzZQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2xzcy9saW51 eF9zeXNjYWxsX3N1cHBvcnQuaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3Bh cnR5L2xzcy9saW51eF9zeXNjYWxsX3N1cHBvcnQuaAorQEAgLTEzMDAsNiArMTMwMCwxOCBAQCBz dHJ1Y3Qga2VybmVsX3N0YXRmcyB7CisgI2lmbmRlZiBfX05SX2ZhbGxvY2F0ZQorICNkZWZpbmUg X19OUl9mYWxsb2NhdGUgICAgICAgICAgMjg1CisgI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9f R0xJQkNfXykKKysjaWZkZWYgX19OUl9wcmVhZAorKyN1bmRlZiBfX05SX3ByZWFkCisrI2VuZGlm CisrI2lmZGVmIF9fTlJfcHdyaXRlCisrI3VuZGVmIF9fTlJfcHdyaXRlCisrI2VuZGlmCisrI2Rl ZmluZSBfX05SX3ByZWFkIF9fTlJfcHJlYWQ2NAorKyNkZWZpbmUgX19OUl9wd3JpdGUgX19OUl9w d3JpdGU2NAorKyNlbmRpZiAvKiAhZGVmaW5lZChfX0dMSUJDX18pICovCisrCisgI2lmbmRlZiBf X05SX2dldHJhbmRvbQorICNkZWZpbmUgX19OUl9nZXRyYW5kb20gICAgICAgICAgMzE4CisgI2Vu ZGlmCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vbmV0L2Rucy9kbnNfY29uZmlnX3NlcnZp Y2VfcG9zaXguY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9uZXQvZG5zL2Ruc19jb25m aWdfc2VydmljZV9wb3NpeC5jYworQEAgLTkzLDcgKzkzLDggQEAgYWJzbDo6b3B0aW9uYWw8RG5z Q29uZmlnPiBSZWFkRG5zQ29uZmlnKAorIAorICAgYWJzbDo6b3B0aW9uYWw8RG5zQ29uZmlnPiBk bnNfY29uZmlnOworIC8vIFRPRE8oZnVjaHNpYSk6IFVzZSByZXNfbmluaXQoKSB3aGVuIGl0J3Mg aW1wbGVtZW50ZWQgb24gRnVjaHNpYS4KKy0jaWYgZGVmaW5lZChPU19PUEVOQlNEKSB8fCBkZWZp bmVkKE9TX0ZVQ0hTSUEpCisrI2lmIGRlZmluZWQoT1NfT1BFTkJTRCkgfHwgZGVmaW5lZChPU19G VUNIU0lBKSB8fCBcCisrICAoZGVmaW5lZChPU19MSU5VWCkgJiYgIWRlZmluZWQoX19HTElCQ19f KSkKKyAgIC8vIE5vdGU6IHJlc19uaW5pdCBpbiBnbGliYyBhbHdheXMgcmV0dXJucyAwIGFuZCBz ZXRzIFJFU19JTklULgorICAgLy8gcmVzX2luaXQgYmVoYXZlcyB0aGUgc2FtZSB3YXkuCisgICBt ZW1zZXQoJl9yZXMsIDAsIHNpemVvZihfcmVzKSk7CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13 ZWJlbmdpbmUvcGF0Y2hlcy8wMjE1LWNocm9taXVtLW11c2wtY2RlZnMucGF0Y2ggYi9zcmNwa2dz L3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjE1LWNocm9taXVtLW11c2wtY2RlZnMucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi45ZDFkYWVjMjkxMTgKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjE1LWNocm9taXVt LW11c2wtY2RlZnMucGF0Y2gKQEAgLTAsMCArMSwyOSBAQAorLS0tIGEvc3JjLzNyZHBhcnR5L2No cm9taXVtL3RoaXJkX3BhcnR5L2xpYnN5bmMvc3JjL2luY2x1ZGUvc3luYy9zeW5jLmgKKysrKyBi L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9saWJzeW5jL3NyYy9pbmNsdWRlL3N5 bmMvc3luYy5oCitAQCAtMTksMTIgKzE5LDEzIEBACisgI2lmbmRlZiBfX1NZU19DT1JFX1NZTkNf SAorICNkZWZpbmUgX19TWVNfQ09SRV9TWU5DX0gKKyAKKy0jaW5jbHVkZSA8c3lzL2NkZWZzLmg+ CisgI2luY2x1ZGUgPHN0ZGludC5oPgorIAorICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorIAor LV9fQkVHSU5fREVDTFMKKysjaWZkZWYgX19jcGx1c3BsdXMKKytleHRlcm4gIkMiIHsKKysjZW5k aWYKKyAKKyBzdHJ1Y3Qgc3luY19sZWdhY3lfbWVyZ2VfZGF0YSB7CisgIGludDMyX3QgZmQyOwor QEAgLTE1OCw2ICsxNTksOSBAQCBzdHJ1Y3Qgc3luY19wdF9pbmZvICpzeW5jX3B0X2luZm8oc3Ry dWN0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzeW5jX3B0X2lu Zm8gKml0cik7Cisgdm9pZCBzeW5jX2ZlbmNlX2luZm9fZnJlZShzdHJ1Y3Qgc3luY19mZW5jZV9p bmZvX2RhdGEgKmluZm8pOworIAorLV9fRU5EX0RFQ0xTCisrI2lmZGVmIF9fY3BsdXNwbHVzCisr fQorKyNlbmRpZgorKworIAorICNlbmRpZiAvKiBfX1NZU19DT1JFX1NZTkNfSCAqLwpkaWZmIC0t Z2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIxNi1jaHJvbWl1bS1tdXNsLXN0 YXQucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjE2LWNocm9taXVtLW11 c2wtc3RhdC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjQ1 MDlhNjk1N2NkNwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRj aGVzLzAyMTYtY2hyb21pdW0tbXVzbC1zdGF0LnBhdGNoCkBAIC0wLDAgKzEsMTIgQEAKKy0tLSBh L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL2ZpbGVzL2ZpbGUuaAorKysrIGIvc3JjLzNyZHBh cnR5L2Nocm9taXVtL2Jhc2UvZmlsZXMvZmlsZS5oCitAQCAtMTksNyArMTksOCBAQAorICNpbmNs dWRlICJidWlsZC9idWlsZF9jb25maWcuaCIKKyAKKyAjaWYgZGVmaW5lZChPU19CU0QpIHx8IGRl ZmluZWQoT1NfQVBQTEUpIHx8IGRlZmluZWQoT1NfTkFDTCkgfHwgXAorLSAgICBkZWZpbmVkKE9T X0ZVQ0hTSUEpIHx8IChkZWZpbmVkKE9TX0FORFJPSUQpICYmIF9fQU5EUk9JRF9BUElfXyA8IDIx KQorKyAgICBkZWZpbmVkKE9TX0ZVQ0hTSUEpIHx8IChkZWZpbmVkKE9TX0FORFJPSUQpICYmIF9f QU5EUk9JRF9BUElfXyA8IDIxKSB8fCBcCisrICAgIChkZWZpbmVkKE9TX0xJTlVYKSAmJiAhZGVm aW5lZChfX0dMSUJDX18pKQorIHN0cnVjdCBzdGF0OworIG5hbWVzcGFjZSBiYXNlIHsKKyB0eXBl ZGVmIHN0cnVjdCBzdGF0IHN0YXRfd3JhcHBlcl90OwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYt d2ViZW5naW5lL3BhdGNoZXMvMDIxNy1jaHJvbWl1bS1tdXNsLXJlc29sdmVyLnBhdGNoIGIvc3Jj cGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIxNy1jaHJvbWl1bS1tdXNsLXJlc29sdmVyLnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYzNkN2FmYWQ5YjE5 Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIxNy1j aHJvbWl1bS1tdXNsLXJlc29sdmVyLnBhdGNoCkBAIC0wLDAgKzEsNzcgQEAKKy0tLSBhL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS9uZXQvZG5zL2Ruc19jb25maWdfc2VydmljZV9saW51eC5jYworKysr IGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL25ldC9kbnMvZG5zX2NvbmZpZ19zZXJ2aWNlX2xpbnV4 LmNjCitAQCAtNDMyLDExICs0MzIsMTMgQEAgY2xhc3MgRG5zQ29uZmlnU2VydmljZUxpbnV4OjpD b25maWdSZWFkZQorICAgICBiYXNlOjpTY29wZWRCbG9ja2luZ0NhbGwgc2NvcGVkX2Jsb2NraW5n X2NhbGwoCisgICAgICAgICBGUk9NX0hFUkUsIGJhc2U6OkJsb2NraW5nVHlwZTo6TUFZX0JMT0NL KTsKKyAKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pCisgICAgIHN0ZDo6dW5pcXVlX3B0cjxzdHJ1 Y3QgX19yZXNfc3RhdGU+IHJlcyA9IHJlc29sdl9yZWFkZXJfLT5HZXRSZXNTdGF0ZSgpOworICAg ICBpZiAocmVzKSB7CisgICAgICAgZG5zX2NvbmZpZ18gPSBDb252ZXJ0UmVzU3RhdGVUb0Ruc0Nv bmZpZygqcmVzLmdldCgpKTsKKyAgICAgICByZXNvbHZfcmVhZGVyXy0+Q2xvc2VSZXNTdGF0ZShy ZXMuZ2V0KCkpOworICAgICB9CisrI2VuZGlmCisgCisgICAgIFVNQV9ISVNUT0dSQU1fQk9PTEVB TigiTmV0LkROUy5EbnNDb25maWcuUmVzb2x2LlJlYWQiLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgZG5zX2NvbmZpZ18uaGFzX3ZhbHVlKCkpOworQEAgLTQ4Niw2ICs0ODgsNyBAQCBjbGFz cyBEbnNDb25maWdTZXJ2aWNlTGludXg6OkNvbmZpZ1JlYWRlCisgCisgc3RkOjp1bmlxdWVfcHRy PHN0cnVjdCBfX3Jlc19zdGF0ZT4KKyBEbnNDb25maWdTZXJ2aWNlTGludXg6OlJlc29sdlJlYWRl cjo6R2V0UmVzU3RhdGUoKSB7CisrI2lmIGRlZmluZWQoX19HTElCQ19fKQorICAgYXV0byByZXMg PSBzdGQ6Om1ha2VfdW5pcXVlPHN0cnVjdCBfX3Jlc19zdGF0ZT4oKTsKKyAgIG1lbXNldChyZXMu Z2V0KCksIDAsIHNpemVvZihzdHJ1Y3QgX19yZXNfc3RhdGUpKTsKKyAKK0BAIC00OTUsMTEgKzQ5 OCwxNiBAQCBEbnNDb25maWdTZXJ2aWNlTGludXg6OlJlc29sdlJlYWRlcjo6R2V0CisgICB9Cisg CisgICByZXR1cm4gcmVzOworKyNlbHNlCisrICByZXR1cm4gbnVsbHB0cjsKKysjZW5kaWYKKyB9 CisgCisgdm9pZCBEbnNDb25maWdTZXJ2aWNlTGludXg6OlJlc29sdlJlYWRlcjo6Q2xvc2VSZXNT dGF0ZSgKKyAgICAgc3RydWN0IF9fcmVzX3N0YXRlKiByZXMpIHsKKysjaWYgZGVmaW5lZChfX0dM SUJDX18pCisgICByZXNfbmNsb3NlKHJlcyk7CisrI2VuZGlmCisgfQorIAorIERuc0NvbmZpZ1Nl cnZpY2VMaW51eDo6RG5zQ29uZmlnU2VydmljZUxpbnV4KCkKKy0tLSBhL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS9uZXQvZG5zL2Ruc19yZWxvYWRlci5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL25ldC9kbnMvZG5zX3JlbG9hZGVyLmNjCitAQCAtNCw4ICs0LDcgQEAKKyAKKyAjaW5jbHVk ZSAibmV0L2Rucy9kbnNfcmVsb2FkZXIuaCIKKyAKKy0jaWYgZGVmaW5lZChPU19QT1NJWCkgJiYg IWRlZmluZWQoT1NfQVBQTEUpICYmICFkZWZpbmVkKE9TX09QRU5CU0QpICYmIFwKKy0gICAgIWRl ZmluZWQoT1NfQU5EUk9JRCkgJiYgIWRlZmluZWQoT1NfRlVDSFNJQSkKKysjaWZkZWYgX19HTElC Q19fCisgCisgI2luY2x1ZGUgPHJlc29sdi5oPgorIAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL25ldC9kbnMvaG9zdF9yZXNvbHZlcl9tYW5hZ2VyLmNjCisrKysgYi9zcmMvM3JkcGFydHkv Y2hyb21pdW0vbmV0L2Rucy9ob3N0X3Jlc29sdmVyX21hbmFnZXIuY2MKK0BAIC0yNzIwLDggKzI3 MjAsNyBAQCBIb3N0UmVzb2x2ZXJNYW5hZ2VyOjpIb3N0UmVzb2x2ZXJNYW5hZ2VyCisgICBOZXR3 b3JrQ2hhbmdlTm90aWZpZXI6OkFkZENvbm5lY3Rpb25UeXBlT2JzZXJ2ZXIodGhpcyk7CisgICBp ZiAoc3lzdGVtX2Ruc19jb25maWdfbm90aWZpZXJfKQorICAgICBzeXN0ZW1fZG5zX2NvbmZpZ19u b3RpZmllcl8tPkFkZE9ic2VydmVyKHRoaXMpOworLSNpZiBkZWZpbmVkKE9TX1BPU0lYKSAmJiAh ZGVmaW5lZChPU19BUFBMRSkgJiYgIWRlZmluZWQoT1NfT1BFTkJTRCkgJiYgXAorLSAgICAhZGVm aW5lZChPU19BTkRST0lEKQorKyNpZmRlZiBfX0dMSUJDX18KKyAgIEVuc3VyZURuc1JlbG9hZGVy SW5pdCgpOworICNlbmRpZgorIAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL25ldC9kbnMv aG9zdF9yZXNvbHZlcl9wcm9jLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vbmV0L2Ru cy9ob3N0X3Jlc29sdmVyX3Byb2MuY2MKK0BAIC0xNzYsOCArMTc2LDcgQEAgaW50IFN5c3RlbUhv c3RSZXNvbHZlckNhbGwoY29uc3Qgc3RkOjpzdAorICAgYmFzZTo6U2NvcGVkQmxvY2tpbmdDYWxs IHNjb3BlZF9ibG9ja2luZ19jYWxsKEZST01fSEVSRSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlOjpCbG9ja2luZ1R5cGU6OldJTExfQkxPQ0sp OworIAorLSNpZiBkZWZpbmVkKE9TX1BPU0lYKSAmJiAhZGVmaW5lZChPU19BUFBMRSkgJiYgIWRl ZmluZWQoT1NfT1BFTkJTRCkgJiYgXAorLSAgICAhZGVmaW5lZChPU19BTkRST0lEKSAmJiAhZGVm aW5lZChPU19GVUNIU0lBKQorKyNpZmRlZiBfX0dMSUJDX18KKyAgIERuc1JlbG9hZGVyTWF5YmVS ZWxvYWQoKTsKKyAjZW5kaWYKKyAgIGFic2w6Om9wdGlvbmFsPEFkZHJlc3NJbmZvPiBhaTsKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA2MDAtY2hyb21pdW0tc25k aW8ucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wNjAwLWNocm9taXVtLXNu ZGlvLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMDMwMjg3 NGZmYmE0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMv MDYwMC1jaHJvbWl1bS1zbmRpby5wYXRjaApAQCAtMCwwICsxLDg3NiBAQAorLS0tIGEvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL21lZGlhL0JVSUxELmduCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21p dW0vbWVkaWEvQlVJTEQuZ24KK0BAIC03Miw2ICs3Miw5IEBAIGNvbmZpZygibWVkaWFfY29uZmln IikgeworICAgICAgIGRlZmluZXMgKz0gWyAiRExPUEVOX1BVTFNFQVVESU8iIF0KKyAgICAgfQor ICAgfQorKyAgaWYgKHVzZV9zbmRpbykgeworKyAgICBkZWZpbmVzICs9IFsgIlVTRV9TTkRJTyIg XQorKyAgfQorICAgaWYgKHVzZV9jcmFzKSB7CisgICAgIGRlZmluZXMgKz0gWyAiVVNFX0NSQVMi IF0KKyAgIH0KKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9tZWRpYS9hdWRpby9CVUlMRC5n bgorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL21lZGlhL2F1ZGlvL0JVSUxELmduCitAQCAt MjQwLDYgKzI0MCwxNyBAQCBzb3VyY2Vfc2V0KCJhdWRpbyIpIHsKKyAgICAgc291cmNlcyArPSBb ICJsaW51eC9hdWRpb19tYW5hZ2VyX2xpbnV4LmNjIiBdCisgICB9CisgCisrICBpZiAodXNlX3Nu ZGlvKSB7CisrICAgIGxpYnMgKz0gWyAic25kaW8iIF0KKysgICAgc291cmNlcyArPSBbCisrICAg ICAgInNuZGlvL2F1ZGlvX21hbmFnZXJfc25kaW8uY2MiLAorKyAgICAgICJzbmRpby9zbmRpb19p bnB1dC5jYyIsCisrICAgICAgInNuZGlvL3NuZGlvX2lucHV0LmgiLAorKyAgICAgICJzbmRpby9z bmRpb19vdXRwdXQuY2MiLAorKyAgICAgICJzbmRpby9zbmRpb19vdXRwdXQuaCIKKysgICAgXQor KyAgfQorKworICAgaWYgKHVzZV9hbHNhKSB7CisgICAgIGxpYnMgKz0gWyAiYXNvdW5kIiBdCisg ICAgIHNvdXJjZXMgKz0gWworLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL21lZGlhL2F1ZGlv L2xpbnV4L2F1ZGlvX21hbmFnZXJfbGludXguY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS9tZWRpYS9hdWRpby9saW51eC9hdWRpb19tYW5hZ2VyX2xpbnV4LmNjCitAQCAtMjUsNiArMjUs MTEgQEAKKyAjaW5jbHVkZSAibWVkaWEvYXVkaW8vcHVsc2UvYXVkaW9fbWFuYWdlcl9wdWxzZS5o IgorICNpbmNsdWRlICJtZWRpYS9hdWRpby9wdWxzZS9wdWxzZV91dGlsLmgiCisgI2VuZGlmCisr I2lmIGRlZmluZWQoVVNFX1NORElPKQorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9zbmRpby9hdWRp b19tYW5hZ2VyX3NuZGlvLmgiCisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL3NuZGlvL3NuZGlvX2lu cHV0LmgiCisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL3NuZGlvL3NuZGlvX291dHB1dC5oIgorKyNl bmRpZgorIAorIG5hbWVzcGFjZSBtZWRpYSB7CisgCitAQCAtMzIsNyArMzcsOCBAQCBlbnVtIExp bnV4QXVkaW9JTyB7CisgICBrUHVsc2UsCisgICBrQWxzYSwKKyAgIGtDcmFzLAorLSAga0F1ZGlv SU9NYXggPSBrQ3JhcyAgLy8gTXVzdCBhbHdheXMgYmUgZXF1YWwgdG8gbGFyZ2VzdCBsb2dnZWQg ZW50cnkuCisrICBrU25kaW8sCisrICBrQXVkaW9JT01heCA9IGtTbmRpbyAvLyBNdXN0IGFsd2F5 cyBiZSBlcXVhbCB0byBsYXJnZXN0IGxvZ2dlZCBlbnRyeS4KKyB9OworIAorIHN0ZDo6dW5pcXVl X3B0cjxtZWRpYTo6QXVkaW9NYW5hZ2VyPiBDcmVhdGVBdWRpb01hbmFnZXIoCitAQCAtNDUsNiAr NTEsMTYgQEAgc3RkOjp1bmlxdWVfcHRyPG1lZGlhOjpBdWRpb01hbmFnZXI+IENyZQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdWRpb19sb2dfZmFjdG9y eSk7CisgICB9CisgCisrI2lmIGRlZmluZWQoVVNFX1NORElPKQorKyAgc3RydWN0IHNpb19oZGwg KmhkbCA9IHNpb19vcGVuKFNJT19ERVZBTlksIFNJT19QTEFZLCAwKTsKKysgIGlmIChoZGwgIT0g TlVMTCkgeworKyAgICBzaW9fY2xvc2UoaGRsKTsKKysgICAgVU1BX0hJU1RPR1JBTV9FTlVNRVJB VElPTigiTWVkaWEuTGludXhBdWRpb0lPIiwga1NuZGlvLCBrQXVkaW9JT01heCArIDEpOworKyAg ICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxBdWRpb01hbmFnZXJTbmRpbz4oc3RkOjptb3ZlKGF1 ZGlvX3RocmVhZCksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhdWRpb19sb2dfZmFjdG9yeSk7CisrICB9CisrI2VuZGlmCisrCisgI2lmIGRlZmlu ZWQoVVNFX0NSQVMpCisgICBpZiAoYmFzZTo6Q29tbWFuZExpbmU6OkZvckN1cnJlbnRQcm9jZXNz KCktPkhhc1N3aXRjaChzd2l0Y2hlczo6a1VzZUNyYXMpKSB7CisgICAgIFVNQV9ISVNUT0dSQU1f RU5VTUVSQVRJT04oIk1lZGlhLkxpbnV4QXVkaW9JTyIsIGtDcmFzLCBrQXVkaW9JT01heCArIDEp OworLS0tIC9kZXYvbnVsbAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL21lZGlhL2F1ZGlv L3NuZGlvL2F1ZGlvX21hbmFnZXJfc25kaW8uY2MKK0BAIC0wLDAgKzEsMTQ4IEBACisrLy8gQ29w eXJpZ2h0IChjKSAyMDEyIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVk LgorKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxl IGxpY2Vuc2UgdGhhdCBjYW4gYmUKKysvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorKwor KyNpbmNsdWRlICJtZWRpYS9hdWRpby9zbmRpby9hdWRpb19tYW5hZ2VyX3NuZGlvLmgiCisrCisr I2luY2x1ZGUgImJhc2UvbWV0cmljcy9oaXN0b2dyYW1fbWFjcm9zLmgiCisrI2luY2x1ZGUgImJh c2UvbWVtb3J5L3B0cl91dGlsLmgiCisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL2F1ZGlvX2Rldmlj ZV9kZXNjcmlwdGlvbi5oIgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9hdWRpb19vdXRwdXRfZGlz cGF0Y2hlci5oIgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9zbmRpby9zbmRpb19pbnB1dC5oIgor KyNpbmNsdWRlICJtZWRpYS9hdWRpby9zbmRpby9zbmRpb19vdXRwdXQuaCIKKysjaW5jbHVkZSAi bWVkaWEvYmFzZS9saW1pdHMuaCIKKysjaW5jbHVkZSAibWVkaWEvYmFzZS9tZWRpYV9zd2l0Y2hl cy5oIgorKworK25hbWVzcGFjZSBtZWRpYSB7CisrCisrCisrLy8gTWF4aW11bSBudW1iZXIgb2Yg b3V0cHV0IHN0cmVhbXMgdGhhdCBjYW4gYmUgb3BlbiBzaW11bHRhbmVvdXNseS4KKytzdGF0aWMg Y29uc3QgaW50IGtNYXhPdXRwdXRTdHJlYW1zID0gNDsKKysKKysvLyBEZWZhdWx0IHNhbXBsZSBy YXRlIGZvciBpbnB1dCBhbmQgb3V0cHV0IHN0cmVhbXMuCisrc3RhdGljIGNvbnN0IGludCBrRGVm YXVsdFNhbXBsZVJhdGUgPSA0ODAwMDsKKysKKyt2b2lkIEFkZERlZmF1bHREZXZpY2UoQXVkaW9E ZXZpY2VOYW1lcyogZGV2aWNlX25hbWVzKSB7CisrICBEQ0hFQ0soZGV2aWNlX25hbWVzLT5lbXB0 eSgpKTsKKysgIGRldmljZV9uYW1lcy0+cHVzaF9mcm9udChBdWRpb0RldmljZU5hbWU6OkNyZWF0 ZURlZmF1bHQoKSk7CisrfQorKworK2Jvb2wgQXVkaW9NYW5hZ2VyU25kaW86Okhhc0F1ZGlvT3V0 cHV0RGV2aWNlcygpIHsKKysgIHJldHVybiB0cnVlOworK30KKysKKytib29sIEF1ZGlvTWFuYWdl clNuZGlvOjpIYXNBdWRpb0lucHV0RGV2aWNlcygpIHsKKysgIHJldHVybiB0cnVlOworK30KKysK Kyt2b2lkIEF1ZGlvTWFuYWdlclNuZGlvOjpHZXRBdWRpb0lucHV0RGV2aWNlTmFtZXMoCisrICAg IEF1ZGlvRGV2aWNlTmFtZXMqIGRldmljZV9uYW1lcykgeworKyAgRENIRUNLKGRldmljZV9uYW1l cy0+ZW1wdHkoKSk7CisrICBBZGREZWZhdWx0RGV2aWNlKGRldmljZV9uYW1lcyk7CisrfQorKwor K3ZvaWQgQXVkaW9NYW5hZ2VyU25kaW86OkdldEF1ZGlvT3V0cHV0RGV2aWNlTmFtZXMoCisrICAg IEF1ZGlvRGV2aWNlTmFtZXMqIGRldmljZV9uYW1lcykgeworKyAgQWRkRGVmYXVsdERldmljZShk ZXZpY2VfbmFtZXMpOworK30KKysKKytjb25zdCBjaGFyKiBBdWRpb01hbmFnZXJTbmRpbzo6R2V0 TmFtZSgpIHsKKysgIHJldHVybiAiU05ESU8iOworK30KKysKKytBdWRpb1BhcmFtZXRlcnMgQXVk aW9NYW5hZ2VyU25kaW86OkdldElucHV0U3RyZWFtUGFyYW1ldGVycygKKysgICAgY29uc3Qgc3Rk OjpzdHJpbmcmIGRldmljZV9pZCkgeworKyAgc3RhdGljIGNvbnN0IGludCBrRGVmYXVsdElucHV0 QnVmZmVyU2l6ZSA9IDEwMjQ7CisrCisrICBpbnQgdXNlcl9idWZmZXJfc2l6ZSA9IEdldFVzZXJC dWZmZXJTaXplKCk7CisrICBpbnQgYnVmZmVyX3NpemUgPSB1c2VyX2J1ZmZlcl9zaXplID8KKysg ICAgICB1c2VyX2J1ZmZlcl9zaXplIDoga0RlZmF1bHRJbnB1dEJ1ZmZlclNpemU7CisrCisrICBy ZXR1cm4gQXVkaW9QYXJhbWV0ZXJzKAorKyAgICAgIEF1ZGlvUGFyYW1ldGVyczo6QVVESU9fUENN X0xPV19MQVRFTkNZLCBDSEFOTkVMX0xBWU9VVF9TVEVSRU8sCisrICAgICAga0RlZmF1bHRTYW1w bGVSYXRlLCBidWZmZXJfc2l6ZSk7CisrfQorKworK0F1ZGlvTWFuYWdlclNuZGlvOjpBdWRpb01h bmFnZXJTbmRpbyhzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9UaHJlYWQ+IGF1ZGlvX3RocmVhZCwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF1ZGlvTG9nRmFjdG9yeSog YXVkaW9fbG9nX2ZhY3RvcnkpCisrICAgIDogQXVkaW9NYW5hZ2VyQmFzZShzdGQ6Om1vdmUoYXVk aW9fdGhyZWFkKSwKKysgICAgICAgICAgICAgICAgICAgICAgIGF1ZGlvX2xvZ19mYWN0b3J5KSB7 CisrICBETE9HKFdBUk5JTkcpIDw8ICJBdWRpb01hbmFnZXJTbmRpbyI7CisrICBTZXRNYXhPdXRw dXRTdHJlYW1zQWxsb3dlZChrTWF4T3V0cHV0U3RyZWFtcyk7CisrfQorKworK0F1ZGlvTWFuYWdl clNuZGlvOjp+QXVkaW9NYW5hZ2VyU25kaW8oKSB7CisrICBTaHV0ZG93bigpOworK30KKysKKytB dWRpb091dHB1dFN0cmVhbSogQXVkaW9NYW5hZ2VyU25kaW86Ok1ha2VMaW5lYXJPdXRwdXRTdHJl YW0oCisrICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAorKyAgICBjb25zdCBMb2dD YWxsYmFjayYgbG9nX2NhbGxiYWNrKSB7CisrICBEQ0hFQ0tfRVEoQXVkaW9QYXJhbWV0ZXJzOjpB VURJT19QQ01fTElORUFSLCBwYXJhbXMuZm9ybWF0KCkpOworKyAgcmV0dXJuIE1ha2VPdXRwdXRT dHJlYW0ocGFyYW1zKTsKKyt9CisrCisrQXVkaW9PdXRwdXRTdHJlYW0qIEF1ZGlvTWFuYWdlclNu ZGlvOjpNYWtlTG93TGF0ZW5jeU91dHB1dFN0cmVhbSgKKysgICAgY29uc3QgQXVkaW9QYXJhbWV0 ZXJzJiBwYXJhbXMsCisrICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXZpY2VfaWQsCisrICAgIGNv bnN0IExvZ0NhbGxiYWNrJiBsb2dfY2FsbGJhY2spIHsKKysgIERMT0dfSUYoRVJST1IsICFkZXZp Y2VfaWQuZW1wdHkoKSkgPDwgIk5vdCBpbXBsZW1lbnRlZCEiOworKyAgRENIRUNLX0VRKEF1ZGlv UGFyYW1ldGVyczo6QVVESU9fUENNX0xPV19MQVRFTkNZLCBwYXJhbXMuZm9ybWF0KCkpOworKyAg cmV0dXJuIE1ha2VPdXRwdXRTdHJlYW0ocGFyYW1zKTsKKyt9CisrCisrQXVkaW9JbnB1dFN0cmVh bSogQXVkaW9NYW5hZ2VyU25kaW86Ok1ha2VMaW5lYXJJbnB1dFN0cmVhbSgKKysgICAgY29uc3Qg QXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMsCisrICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXZpY2Vf aWQsCisrICAgIGNvbnN0IExvZ0NhbGxiYWNrJiBsb2dfY2FsbGJhY2spIHsKKysgIERDSEVDS19F UShBdWRpb1BhcmFtZXRlcnM6OkFVRElPX1BDTV9MSU5FQVIsIHBhcmFtcy5mb3JtYXQoKSk7Cisr ICByZXR1cm4gTWFrZUlucHV0U3RyZWFtKHBhcmFtcyk7CisrfQorKworK0F1ZGlvSW5wdXRTdHJl YW0qIEF1ZGlvTWFuYWdlclNuZGlvOjpNYWtlTG93TGF0ZW5jeUlucHV0U3RyZWFtKAorKyAgICBj b25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcywKKysgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGRl dmljZV9pZCwKKysgICAgY29uc3QgTG9nQ2FsbGJhY2smIGxvZ19jYWxsYmFjaykgeworKyAgRENI RUNLX0VRKEF1ZGlvUGFyYW1ldGVyczo6QVVESU9fUENNX0xPV19MQVRFTkNZLCBwYXJhbXMuZm9y bWF0KCkpOworKyAgcmV0dXJuIE1ha2VJbnB1dFN0cmVhbShwYXJhbXMpOworK30KKysKKytBdWRp b1BhcmFtZXRlcnMgQXVkaW9NYW5hZ2VyU25kaW86OkdldFByZWZlcnJlZE91dHB1dFN0cmVhbVBh cmFtZXRlcnMoCisrICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBvdXRwdXRfZGV2aWNlX2lkLAorKyAg ICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIGlucHV0X3BhcmFtcykgeworKyAgLy8gVE9ETyh0b21t aSk6IFN1cHBvcnQgfG91dHB1dF9kZXZpY2VfaWR8LgorKyAgRExPR19JRihFUlJPUiwgIW91dHB1 dF9kZXZpY2VfaWQuZW1wdHkoKSkgPDwgIk5vdCBpbXBsZW1lbnRlZCEiOworKyAgc3RhdGljIGNv bnN0IGludCBrRGVmYXVsdE91dHB1dEJ1ZmZlclNpemUgPSAyMDQ4OworKworKyAgQ2hhbm5lbExh eW91dCBjaGFubmVsX2xheW91dCA9IENIQU5ORUxfTEFZT1VUX1NURVJFTzsKKysgIGludCBzYW1w bGVfcmF0ZSA9IGtEZWZhdWx0U2FtcGxlUmF0ZTsKKysgIGludCBidWZmZXJfc2l6ZSA9IGtEZWZh dWx0T3V0cHV0QnVmZmVyU2l6ZTsKKysgIGlmIChpbnB1dF9wYXJhbXMuSXNWYWxpZCgpKSB7Cisr ICAgIHNhbXBsZV9yYXRlID0gaW5wdXRfcGFyYW1zLnNhbXBsZV9yYXRlKCk7CisrICAgIGNoYW5u ZWxfbGF5b3V0ID0gaW5wdXRfcGFyYW1zLmNoYW5uZWxfbGF5b3V0KCk7CisrICAgIGJ1ZmZlcl9z aXplID0gc3RkOjptaW4oYnVmZmVyX3NpemUsIGlucHV0X3BhcmFtcy5mcmFtZXNfcGVyX2J1ZmZl cigpKTsKKysgIH0KKysKKysgIGludCB1c2VyX2J1ZmZlcl9zaXplID0gR2V0VXNlckJ1ZmZlclNp emUoKTsKKysgIGlmICh1c2VyX2J1ZmZlcl9zaXplKQorKyAgICBidWZmZXJfc2l6ZSA9IHVzZXJf YnVmZmVyX3NpemU7CisrCisrICByZXR1cm4gQXVkaW9QYXJhbWV0ZXJzKAorKyAgICAgIEF1ZGlv UGFyYW1ldGVyczo6QVVESU9fUENNX0xPV19MQVRFTkNZLCBjaGFubmVsX2xheW91dCwKKysgICAg ICBzYW1wbGVfcmF0ZSwgYnVmZmVyX3NpemUpOworK30KKysKKytBdWRpb0lucHV0U3RyZWFtKiBB dWRpb01hbmFnZXJTbmRpbzo6TWFrZUlucHV0U3RyZWFtKAorKyAgICBjb25zdCBBdWRpb1BhcmFt ZXRlcnMmIHBhcmFtcykgeworKyAgRExPRyhXQVJOSU5HKSA8PCAiTWFrZUlucHV0U3RyZWFtIjsK KysgIHJldHVybiBuZXcgU25kaW9BdWRpb0lucHV0U3RyZWFtKHRoaXMsCisrICAgICAgICAgICAg IEF1ZGlvRGV2aWNlRGVzY3JpcHRpb246OmtEZWZhdWx0RGV2aWNlSWQsIHBhcmFtcyk7CisrfQor KworK0F1ZGlvT3V0cHV0U3RyZWFtKiBBdWRpb01hbmFnZXJTbmRpbzo6TWFrZU91dHB1dFN0cmVh bSgKKysgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMpIHsKKysgIERMT0coV0FSTklO RykgPDwgIk1ha2VPdXRwdXRTdHJlYW0iOworKyAgcmV0dXJuIG5ldyBTbmRpb0F1ZGlvT3V0cHV0 U3RyZWFtKHBhcmFtcywgdGhpcyk7CisrfQorKworK30gIC8vIG5hbWVzcGFjZSBtZWRpYQorLS0t IC9kZXYvbnVsbAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL21lZGlhL2F1ZGlvL3NuZGlv L2F1ZGlvX21hbmFnZXJfc25kaW8uaAorQEAgLTAsMCArMSw2NSBAQAorKy8vIENvcHlyaWdodCAo YykgMjAxMiBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKysvLyBV c2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNl IHRoYXQgY2FuIGJlCisrLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKysKKysjaWZuZGVm IE1FRElBX0FVRElPX1NORElPX0FVRElPX01BTkFHRVJfU05ESU9fSF8KKysjZGVmaW5lIE1FRElB X0FVRElPX1NORElPX0FVRElPX01BTkFHRVJfU05ESU9fSF8KKysKKysjaW5jbHVkZSA8c2V0Pgor KworKyNpbmNsdWRlICJiYXNlL2NvbXBpbGVyX3NwZWNpZmljLmgiCisrI2luY2x1ZGUgImJhc2Uv bWFjcm9zLmgiCisrI2luY2x1ZGUgImJhc2UvbWVtb3J5L3JlZl9jb3VudGVkLmgiCisrI2luY2x1 ZGUgImJhc2UvdGhyZWFkaW5nL3RocmVhZC5oIgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9hdWRp b19tYW5hZ2VyX2Jhc2UuaCIKKysKKytuYW1lc3BhY2UgbWVkaWEgeworKworK2NsYXNzIE1FRElB X0VYUE9SVCBBdWRpb01hbmFnZXJTbmRpbyA6IHB1YmxpYyBBdWRpb01hbmFnZXJCYXNlIHsKKysg cHVibGljOgorKyAgQXVkaW9NYW5hZ2VyU25kaW8oc3RkOjp1bmlxdWVfcHRyPEF1ZGlvVGhyZWFk PiBhdWRpb190aHJlYWQsCisrICAgICAgICAgICAgICAgICAgIEF1ZGlvTG9nRmFjdG9yeSogYXVk aW9fbG9nX2ZhY3RvcnkpOworKyAgfkF1ZGlvTWFuYWdlclNuZGlvKCkgb3ZlcnJpZGU7CisrCisr ICAvLyBJbXBsZW1lbnRhdGlvbiBvZiBBdWRpb01hbmFnZXIuCisrICBib29sIEhhc0F1ZGlvT3V0 cHV0RGV2aWNlcygpIG92ZXJyaWRlOworKyAgYm9vbCBIYXNBdWRpb0lucHV0RGV2aWNlcygpIG92 ZXJyaWRlOworKyAgdm9pZCBHZXRBdWRpb0lucHV0RGV2aWNlTmFtZXMoQXVkaW9EZXZpY2VOYW1l cyogZGV2aWNlX25hbWVzKSBvdmVycmlkZTsKKysgIHZvaWQgR2V0QXVkaW9PdXRwdXREZXZpY2VO YW1lcyhBdWRpb0RldmljZU5hbWVzKiBkZXZpY2VfbmFtZXMpIG92ZXJyaWRlOworKyAgQXVkaW9Q YXJhbWV0ZXJzIEdldElucHV0U3RyZWFtUGFyYW1ldGVycygKKysgICAgICBjb25zdCBzdGQ6OnN0 cmluZyYgZGV2aWNlX2lkKSBvdmVycmlkZTsKKysgIGNvbnN0IGNoYXIqIEdldE5hbWUoKSBvdmVy cmlkZTsKKysKKysgIC8vIEltcGxlbWVudGF0aW9uIG9mIEF1ZGlvTWFuYWdlckJhc2UuCisrICBB dWRpb091dHB1dFN0cmVhbSogTWFrZUxpbmVhck91dHB1dFN0cmVhbSgKKysgICAgICBjb25zdCBB dWRpb1BhcmFtZXRlcnMmIHBhcmFtcywKKysgICAgICBjb25zdCBMb2dDYWxsYmFjayYgbG9nX2Nh bGxiYWNrKSBvdmVycmlkZTsKKysgIEF1ZGlvT3V0cHV0U3RyZWFtKiBNYWtlTG93TGF0ZW5jeU91 dHB1dFN0cmVhbSgKKysgICAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcywKKysgICAg ICBjb25zdCBzdGQ6OnN0cmluZyYgZGV2aWNlX2lkLAorKyAgICAgIGNvbnN0IExvZ0NhbGxiYWNr JiBsb2dfY2FsbGJhY2spIG92ZXJyaWRlOworKyAgQXVkaW9JbnB1dFN0cmVhbSogTWFrZUxpbmVh cklucHV0U3RyZWFtKAorKyAgICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAorKyAg ICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXZpY2VfaWQsCisrICAgICAgY29uc3QgTG9nQ2FsbGJh Y2smIGxvZ19jYWxsYmFjaykgb3ZlcnJpZGU7CisrICBBdWRpb0lucHV0U3RyZWFtKiBNYWtlTG93 TGF0ZW5jeUlucHV0U3RyZWFtKAorKyAgICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1z LAorKyAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXZpY2VfaWQsCisrICAgICAgY29uc3QgTG9n Q2FsbGJhY2smIGxvZ19jYWxsYmFjaykgb3ZlcnJpZGU7CisrCisrIHByb3RlY3RlZDoKKysgIEF1 ZGlvUGFyYW1ldGVycyBHZXRQcmVmZXJyZWRPdXRwdXRTdHJlYW1QYXJhbWV0ZXJzKAorKyAgICAg IGNvbnN0IHN0ZDo6c3RyaW5nJiBvdXRwdXRfZGV2aWNlX2lkLAorKyAgICAgIGNvbnN0IEF1ZGlv UGFyYW1ldGVycyYgaW5wdXRfcGFyYW1zKSBvdmVycmlkZTsKKysKKysgcHJpdmF0ZToKKysgIC8v IENhbGxlZCBieSBNYWtlTGluZWFyT3V0cHV0U3RyZWFtIGFuZCBNYWtlTG93TGF0ZW5jeU91dHB1 dFN0cmVhbS4KKysgIEF1ZGlvT3V0cHV0U3RyZWFtKiBNYWtlT3V0cHV0U3RyZWFtKGNvbnN0IEF1 ZGlvUGFyYW1ldGVycyYgcGFyYW1zKTsKKysgIEF1ZGlvSW5wdXRTdHJlYW0qIE1ha2VJbnB1dFN0 cmVhbShjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcyk7CisrCisrICBESVNBTExPV19DT1BZ X0FORF9BU1NJR04oQXVkaW9NYW5hZ2VyU25kaW8pOworK307CisrCisrfSAgLy8gbmFtZXNwYWNl IG1lZGlhCisrCisrI2VuZGlmICAvLyBNRURJQV9BVURJT19TTkRJT19BVURJT19NQU5BR0VSX1NO RElPX0hfCistLS0gL2Rldi9udWxsCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vbWVkaWEv YXVkaW8vc25kaW8vc25kaW9faW5wdXQuY2MKK0BAIC0wLDAgKzEsMjAwIEBACisrLy8gQ29weXJp Z2h0IDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisrLy8g VXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5z ZSB0aGF0IGNhbiBiZQorKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisrCisrI2luY2x1 ZGUgImJhc2UvYmluZC5oIgorKyNpbmNsdWRlICJiYXNlL2xvZ2dpbmcuaCIKKysjaW5jbHVkZSAi YmFzZS9tYWNyb3MuaCIKKysjaW5jbHVkZSAibWVkaWEvYmFzZS9hdWRpb190aW1lc3RhbXBfaGVs cGVyLmgiCisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL3NuZGlvL2F1ZGlvX21hbmFnZXJfc25kaW8u aCIKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8vYXVkaW9fbWFuYWdlci5oIgorKyNpbmNsdWRlICJt ZWRpYS9hdWRpby9zbmRpby9zbmRpb19pbnB1dC5oIgorKworK25hbWVzcGFjZSBtZWRpYSB7Cisr Cisrc3RhdGljIGNvbnN0IFNhbXBsZUZvcm1hdCBrU2FtcGxlRm9ybWF0ID0ga1NhbXBsZUZvcm1h dFMxNjsKKysKKyt2b2lkIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6T25Nb3ZlQ2FsbGJhY2sodm9p ZCAqYXJnLCBpbnQgZGVsdGEpCisreworKyAgU25kaW9BdWRpb0lucHV0U3RyZWFtKiBzZWxmID0g c3RhdGljX2Nhc3Q8U25kaW9BdWRpb0lucHV0U3RyZWFtKj4oYXJnKTsKKysKKysgIHNlbGYtPmh3 X2RlbGF5ICs9IGRlbHRhOworK30KKysKKyt2b2lkICpTbmRpb0F1ZGlvSW5wdXRTdHJlYW06OlRo cmVhZEVudHJ5KHZvaWQgKmFyZykgeworKyAgU25kaW9BdWRpb0lucHV0U3RyZWFtKiBzZWxmID0g c3RhdGljX2Nhc3Q8U25kaW9BdWRpb0lucHV0U3RyZWFtKj4oYXJnKTsKKysKKysgIHNlbGYtPlRo cmVhZExvb3AoKTsKKysgIHJldHVybiBOVUxMOworK30KKysKKytTbmRpb0F1ZGlvSW5wdXRTdHJl YW06OlNuZGlvQXVkaW9JbnB1dFN0cmVhbShBdWRpb01hbmFnZXJCYXNlKiBtYW5hZ2VyLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3Ry aW5nJiBkZXZpY2VfbmFtZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcykKKysgICAgOiBtYW5hZ2VyKG1h bmFnZXIpLAorKyAgICAgIHBhcmFtcyhwYXJhbXMpLAorKyAgICAgIGF1ZGlvX2J1cyhBdWRpb0J1 czo6Q3JlYXRlKHBhcmFtcykpLAorKyAgICAgIHN0YXRlKGtDbG9zZWQpIHsKKyt9CisrCisrU25k aW9BdWRpb0lucHV0U3RyZWFtOjp+U25kaW9BdWRpb0lucHV0U3RyZWFtKCkgeworKyAgaWYgKHN0 YXRlICE9IGtDbG9zZWQpCisrICAgIENsb3NlKCk7CisrfQorKworK2Jvb2wgU25kaW9BdWRpb0lu cHV0U3RyZWFtOjpPcGVuKCkgeworKyAgc3RydWN0IHNpb19wYXIgcGFyOworKyAgaW50IHNpZzsK KysKKysgIGlmIChzdGF0ZSAhPSBrQ2xvc2VkKQorKyAgICByZXR1cm4gZmFsc2U7CisrCisrICBp ZiAocGFyYW1zLmZvcm1hdCgpICE9IEF1ZGlvUGFyYW1ldGVyczo6QVVESU9fUENNX0xJTkVBUiAm JgorKyAgICAgIHBhcmFtcy5mb3JtYXQoKSAhPSBBdWRpb1BhcmFtZXRlcnM6OkFVRElPX1BDTV9M T1dfTEFURU5DWSkgeworKyAgICBMT0coV0FSTklORykgPDwgIlVuc3VwcG9ydGVkIGF1ZGlvIGZv cm1hdC4iOworKyAgICByZXR1cm4gZmFsc2U7CisrICB9CisrCisrICBzaW9faW5pdHBhcigmcGFy KTsKKysgIHBhci5yYXRlID0gcGFyYW1zLnNhbXBsZV9yYXRlKCk7CisrICBwYXIucmNoYW4gPSBw YXJhbXMuY2hhbm5lbHMoKTsKKysgIHBhci5iaXRzID0gU2FtcGxlRm9ybWF0VG9CaXRzUGVyQ2hh bm5lbChrU2FtcGxlRm9ybWF0KTsKKysgIHBhci5icHMgPSBwYXIuYml0cyAvIDg7CisrICBwYXIu c2lnID0gc2lnID0gcGFyLmJpdHMgIT0gOCA/IDEgOiAwOworKyAgcGFyLmxlID0gU0lPX0xFX05B VElWRTsKKysgIHBhci5hcHBidWZzeiA9IHBhcmFtcy5mcmFtZXNfcGVyX2J1ZmZlcigpOworKwor KyAgaGRsID0gc2lvX29wZW4oU0lPX0RFVkFOWSwgU0lPX1JFQywgMCk7CisrCisrICBpZiAoaGRs ID09IE5VTEwpIHsKKysgICAgTE9HKEVSUk9SKSA8PCAiQ291bGRuJ3Qgb3BlbiBhdWRpbyBkZXZp Y2UuIjsKKysgICAgcmV0dXJuIGZhbHNlOworKyAgfQorKworKyAgaWYgKCFzaW9fc2V0cGFyKGhk bCwgJnBhcikgfHwgIXNpb19nZXRwYXIoaGRsLCAmcGFyKSkgeworKyAgICBMT0coRVJST1IpIDw8 ICJDb3VsZG4ndCBzZXQgYXVkaW8gcGFyYW1ldGVycy4iOworKyAgICBnb3RvIGJhZF9jbG9zZTsK KysgIH0KKysKKysgIGlmIChwYXIucmF0ZSAgIT0gKHVuc2lnbmVkIGludClwYXJhbXMuc2FtcGxl X3JhdGUoKSB8fAorKyAgICAgIHBhci5yY2hhbiAhPSAodW5zaWduZWQgaW50KXBhcmFtcy5jaGFu bmVscygpIHx8CisrICAgICAgcGFyLmJpdHMgICE9ICh1bnNpZ25lZCBpbnQpU2FtcGxlRm9ybWF0 VG9CaXRzUGVyQ2hhbm5lbChrU2FtcGxlRm9ybWF0KSB8fAorKyAgICAgIHBhci5zaWcgICAhPSAo dW5zaWduZWQgaW50KXNpZyB8fAorKyAgICAgIChwYXIuYnBzID4gMSAmJiBwYXIubGUgIT0gU0lP X0xFX05BVElWRSkgfHwKKysgICAgICAocGFyLmJpdHMgIT0gcGFyLmJwcyAqIDgpKSB7CisrICAg IExPRyhFUlJPUikgPDwgIlVuc3VwcG9ydGVkIGF1ZGlvIHBhcmFtZXRlcnMuIjsKKysgICAgZ290 byBiYWRfY2xvc2U7CisrICB9CisrICBzdGF0ZSA9IGtTdG9wcGVkOworKyAgYnVmZmVyID0gbmV3 IGNoYXJbYXVkaW9fYnVzLT5mcmFtZXMoKSAqIHBhcmFtcy5HZXRCeXRlc1BlckZyYW1lKGtTYW1w bGVGb3JtYXQpXTsKKysgIHNpb19vbm1vdmUoaGRsLCAmT25Nb3ZlQ2FsbGJhY2ssIHRoaXMpOwor KyAgcmV0dXJuIHRydWU7CisrYmFkX2Nsb3NlOgorKyAgc2lvX2Nsb3NlKGhkbCk7CisrICByZXR1 cm4gZmFsc2U7CisrfQorKworK3ZvaWQgU25kaW9BdWRpb0lucHV0U3RyZWFtOjpTdGFydChBdWRp b0lucHV0Q2FsbGJhY2sqIGNiKSB7CisrCisrICBTdGFydEFnYygpOworKworKyAgc3RhdGUgPSBr UnVubmluZzsKKysgIGh3X2RlbGF5ID0gMDsKKysgIGNhbGxiYWNrID0gY2I7CisrICBzaW9fc3Rh cnQoaGRsKTsKKysgIGlmIChwdGhyZWFkX2NyZWF0ZSgmdGhyZWFkLCBOVUxMLCAmVGhyZWFkRW50 cnksIHRoaXMpICE9IDApIHsKKysgICAgTE9HKEVSUk9SKSA8PCAiRmFpbGVkIHRvIGNyZWF0ZSBy ZWFsLXRpbWUgdGhyZWFkIGZvciByZWNvcmRpbmcuIjsKKysgICAgc2lvX3N0b3AoaGRsKTsKKysg ICAgc3RhdGUgPSBrU3RvcHBlZDsKKysgIH0KKyt9CisrCisrdm9pZCBTbmRpb0F1ZGlvSW5wdXRT dHJlYW06OlN0b3AoKSB7CisrCisrICBpZiAoc3RhdGUgPT0ga1N0b3BwZWQpCisrICAgIHJldHVy bjsKKysKKysgIHN0YXRlID0ga1N0b3BXYWl0OworKyAgcHRocmVhZF9qb2luKHRocmVhZCwgTlVM TCk7CisrICBzaW9fc3RvcChoZGwpOworKyAgc3RhdGUgPSBrU3RvcHBlZDsKKysKKysgIFN0b3BB Z2MoKTsKKyt9CisrCisrdm9pZCBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06OkNsb3NlKCkgeworKwor KyAgaWYgKHN0YXRlID09IGtDbG9zZWQpCisrICAgIHJldHVybjsKKysKKysgIGlmIChzdGF0ZSA9 PSBrUnVubmluZykKKysgICAgU3RvcCgpOworKworKyAgc3RhdGUgPSBrQ2xvc2VkOworKyAgZGVs ZXRlIFtdIGJ1ZmZlcjsKKysgIHNpb19jbG9zZShoZGwpOworKworKyAgbWFuYWdlci0+UmVsZWFz ZUlucHV0U3RyZWFtKHRoaXMpOworK30KKysKKytkb3VibGUgU25kaW9BdWRpb0lucHV0U3RyZWFt OjpHZXRNYXhWb2x1bWUoKSB7CisrICAvLyBOb3Qgc3VwcG9ydGVkCisrICByZXR1cm4gMC4wOwor K30KKysKKyt2b2lkIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6U2V0Vm9sdW1lKGRvdWJsZSB2b2x1 bWUpIHsKKysgIC8vIE5vdCBzdXBwb3J0ZWQuIERvIG5vdGhpbmcuCisrfQorKworK2RvdWJsZSBT bmRpb0F1ZGlvSW5wdXRTdHJlYW06OkdldFZvbHVtZSgpIHsKKysgIC8vIE5vdCBzdXBwb3J0ZWQu CisrICByZXR1cm4gMC4wOworK30KKysKKytib29sIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6SXNN dXRlZCgpIHsKKysgIC8vIE5vdCBzdXBwb3J0ZWQuCisrICByZXR1cm4gZmFsc2U7CisrfQorKwor K3ZvaWQgU25kaW9BdWRpb0lucHV0U3RyZWFtOjpTZXRPdXRwdXREZXZpY2VGb3JBZWMoCisrICAg IGNvbnN0IHN0ZDo6c3RyaW5nJiBvdXRwdXRfZGV2aWNlX2lkKSB7CisrICAvLyBOb3Qgc3VwcG9y dGVkLgorK30KKysKKyt2b2lkIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6VGhyZWFkTG9vcCh2b2lk KSB7CisrICBzaXplX3QgdG9kbywgbjsKKysgIGNoYXIgKmRhdGE7CisrICB1bnNpZ25lZCBpbnQg bmZyYW1lczsKKysgIGRvdWJsZSBub3JtYWxpemVkX3ZvbHVtZSA9IDAuMDsKKysKKysgIG5mcmFt ZXMgPSBhdWRpb19idXMtPmZyYW1lcygpOworKworKyAgd2hpbGUgKHN0YXRlID09IGtSdW5uaW5n ICYmICFzaW9fZW9mKGhkbCkpIHsKKysKKysgICAgR2V0QWdjVm9sdW1lKCZub3JtYWxpemVkX3Zv bHVtZSk7CisrCisrICAgIC8vIHJlYWQgb25lIGJsb2NrCisrICAgIHRvZG8gPSBuZnJhbWVzICog cGFyYW1zLkdldEJ5dGVzUGVyRnJhbWUoa1NhbXBsZUZvcm1hdCk7CisrICAgIGRhdGEgPSBidWZm ZXI7CisrICAgIHdoaWxlICh0b2RvID4gMCkgeworKyAgICAgIG4gPSBzaW9fcmVhZChoZGwsIGRh dGEsIHRvZG8pOworKyAgICAgIGlmIChuID09IDApCisrICAgICAgICByZXR1cm47CS8vIHVucmVj b3ZlcmFibGUgSS9PIGVycm9yCisrICAgICAgdG9kbyAtPSBuOworKyAgICAgIGRhdGEgKz0gbjsK KysgICAgfQorKyAgICBod19kZWxheSAtPSBuZnJhbWVzOworKworKyAgICAvLyBjb252ZXJ0IGZy YW1lcyBjb3VudCB0byBUaW1lRGVsdGEKKysgICAgY29uc3QgYmFzZTo6VGltZURlbHRhIGRlbGF5 ID0gQXVkaW9UaW1lc3RhbXBIZWxwZXI6OkZyYW1lc1RvVGltZShod19kZWxheSwKKysgICAgICBw YXJhbXMuc2FtcGxlX3JhdGUoKSk7CisrCisrICAgIC8vIHB1c2ggaW50byBidXMKKysgICAgYXVk aW9fYnVzLT5Gcm9tSW50ZXJsZWF2ZWQ8U2lnbmVkSW50MTZTYW1wbGVUeXBlVHJhaXRzPihyZWlu dGVycHJldF9jYXN0PGludDE2X3QqPihidWZmZXIpLCBuZnJhbWVzKTsKKysKKysgICAgLy8gaW52 b2tlIGNhbGxiYWNrCisrICAgIGNhbGxiYWNrLT5PbkRhdGEoYXVkaW9fYnVzLmdldCgpLCBiYXNl OjpUaW1lVGlja3M6Ok5vdygpIC0gZGVsYXksIDEuKTsKKysgIH0KKyt9CisrCisrfSAgLy8gbmFt ZXNwYWNlIG1lZGlhCistLS0gL2Rldi9udWxsCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0v bWVkaWEvYXVkaW8vc25kaW8vc25kaW9faW5wdXQuaAorQEAgLTAsMCArMSw5MSBAQAorKy8vIENv cHlyaWdodCAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor Ky8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxp Y2Vuc2UgdGhhdCBjYW4gYmUKKysvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorKworKyNp Zm5kZWYgTUVESUFfQVVESU9fU05ESU9fU05ESU9fSU5QVVRfSF8KKysjZGVmaW5lIE1FRElBX0FV RElPX1NORElPX1NORElPX0lOUFVUX0hfCisrCisrI2luY2x1ZGUgPHN0ZGludC5oPgorKyNpbmNs dWRlIDxzdHJpbmc+CisrI2luY2x1ZGUgPHNuZGlvLmg+CisrCisrI2luY2x1ZGUgImJhc2UvY29t cGlsZXJfc3BlY2lmaWMuaCIKKysjaW5jbHVkZSAiYmFzZS9tYWNyb3MuaCIKKysjaW5jbHVkZSAi YmFzZS9tZW1vcnkvd2Vha19wdHIuaCIKKysjaW5jbHVkZSAiYmFzZS90aW1lL3RpbWUuaCIKKysj aW5jbHVkZSAibWVkaWEvYXVkaW8vYWdjX2F1ZGlvX3N0cmVhbS5oIgorKyNpbmNsdWRlICJtZWRp YS9hdWRpby9hdWRpb19pby5oIgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9hdWRpb19kZXZpY2Vf ZGVzY3JpcHRpb24uaCIKKysjaW5jbHVkZSAibWVkaWEvYmFzZS9hdWRpb19wYXJhbWV0ZXJzLmgi CisrCisrbmFtZXNwYWNlIG1lZGlhIHsKKysKKytjbGFzcyBBdWRpb01hbmFnZXJCYXNlOworKwor Ky8vIEltcGxlbWVudGF0aW9uIG9mIEF1ZGlvT3V0cHV0U3RyZWFtIHVzaW5nIHNuZGlvKDcpCisr Y2xhc3MgU25kaW9BdWRpb0lucHV0U3RyZWFtIDogcHVibGljIEFnY0F1ZGlvU3RyZWFtPEF1ZGlv SW5wdXRTdHJlYW0+IHsKKysgcHVibGljOgorKyAgLy8gUGFzcyB0aGlzIHRvIHRoZSBjb25zdHJ1 Y3RvciBpZiB5b3Ugd2FudCB0byBhdHRlbXB0IGF1dG8tc2VsZWN0aW9uCisrICAvLyBvZiB0aGUg YXVkaW8gcmVjb3JkaW5nIGRldmljZS4KKysgIHN0YXRpYyBjb25zdCBjaGFyIGtBdXRvU2VsZWN0 RGV2aWNlW107CisrCisrICAvLyBDcmVhdGUgYSBQQ00gT3V0cHV0IHN0cmVhbSBmb3IgdGhlIFNO RElPIGRldmljZSBpZGVudGlmaWVkIGJ5CisrICAvLyB8ZGV2aWNlX25hbWV8LiBJZiB1bnN1cmUg b2Ygd2hhdCB0byB1c2UgZm9yIHxkZXZpY2VfbmFtZXwsIHVzZQorKyAgLy8gfGtBdXRvU2VsZWN0 RGV2aWNlfC4KKysgIFNuZGlvQXVkaW9JbnB1dFN0cmVhbShBdWRpb01hbmFnZXJCYXNlKiBhdWRp b19tYW5hZ2VyLAorKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXZp Y2VfbmFtZSwKKysgICAgICAgICAgICAgICAgICAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBh cmFtcyk7CisrCisrICB+U25kaW9BdWRpb0lucHV0U3RyZWFtKCkgb3ZlcnJpZGU7CisrCisrICAv LyBJbXBsZW1lbnRhdGlvbiBvZiBBdWRpb0lucHV0U3RyZWFtLgorKyAgYm9vbCBPcGVuKCkgb3Zl cnJpZGU7CisrICB2b2lkIFN0YXJ0KEF1ZGlvSW5wdXRDYWxsYmFjayogY2FsbGJhY2spIG92ZXJy aWRlOworKyAgdm9pZCBTdG9wKCkgb3ZlcnJpZGU7CisrICB2b2lkIENsb3NlKCkgb3ZlcnJpZGU7 CisrICBkb3VibGUgR2V0TWF4Vm9sdW1lKCkgb3ZlcnJpZGU7CisrICB2b2lkIFNldFZvbHVtZShk b3VibGUgdm9sdW1lKSBvdmVycmlkZTsKKysgIGRvdWJsZSBHZXRWb2x1bWUoKSBvdmVycmlkZTsK KysgIGJvb2wgSXNNdXRlZCgpIG92ZXJyaWRlOworKyAgdm9pZCBTZXRPdXRwdXREZXZpY2VGb3JB ZWMoY29uc3Qgc3RkOjpzdHJpbmcmIG91dHB1dF9kZXZpY2VfaWQpIG92ZXJyaWRlOworKworKyBw cml2YXRlOgorKworKyAgZW51bSBTdHJlYW1TdGF0ZSB7CisrICAgIGtDbG9zZWQsICAgICAgICAg ICAgLy8gTm90IG9wZW5lZCB5ZXQKKysgICAga1N0b3BwZWQsICAgICAgICAgICAvLyBEZXZpY2Ug b3BlbmVkLCBidXQgbm90IHN0YXJ0ZWQgeWV0CisrICAgIGtSdW5uaW5nLCAgICAgICAgICAgLy8g U3RhcnRlZCwgZGV2aWNlIHBsYXlpbmcKKysgICAga1N0b3BXYWl0ICAgICAgICAgICAvLyBTdG9w cGluZywgd2FpdGluZyBmb3IgdGhlIHJlYWwtdGltZSB0aHJlYWQgdG8gZXhpdAorKyAgfTsKKysK KysgIC8vIEMtc3R5bGUgY2FsbC1iYWNrcworKyAgc3RhdGljIHZvaWQgT25Nb3ZlQ2FsbGJhY2so dm9pZCAqYXJnLCBpbnQgZGVsdGEpOworKyAgc3RhdGljIHZvaWQqIFRocmVhZEVudHJ5KHZvaWQg KmFyZyk7CisrCisrICAvLyBDb250aW51b3VzbHkgbW92ZXMgZGF0YSBmcm9tIHRoZSBkZXZpY2Ug dG8gdGhlIGNvbnN1bWVyCisrICB2b2lkIFRocmVhZExvb3AoKTsKKysgIC8vIE91ciBjcmVhdG9y LCB0aGUgYXVkaW8gbWFuYWdlciBuZWVkcyB0byBiZSBub3RpZmllZCB3aGVuIHdlIGNsb3NlLgor KyAgQXVkaW9NYW5hZ2VyQmFzZSogbWFuYWdlcjsKKysgIC8vIFBhcmFtZXRlcnMgb2YgdGhlIHNv dXJjZQorKyAgQXVkaW9QYXJhbWV0ZXJzIHBhcmFtczsKKysgIC8vIFdlIHN0b3JlIGRhdGEgaGVy ZSBmb3IgY29uc3VtZXIKKysgIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0J1cz4gYXVkaW9fYnVzOwor KyAgLy8gQ2FsbC1iYWNrIHRoYXQgY29uc3VtZXMgcmVjb3JkZWQgZGF0YQorKyAgQXVkaW9JbnB1 dENhbGxiYWNrKiBjYWxsYmFjazsgIC8vIFZhbGlkIGR1cmluZyBhIHJlY29yZGluZyBzZXNzaW9u LgorKyAgLy8gSGFuZGxlIG9mIHRoZSBhdWRpbyBkZXZpY2UKKysgIHN0cnVjdCBzaW9faGRsKiBo ZGw7CisrICAvLyBDdXJyZW50IHN0YXRlIG9mIHRoZSBzdHJlYW0KKysgIGVudW0gU3RyZWFtU3Rh dGUgc3RhdGU7CisrICAvLyBIaWdoIHByaW9yaXR5IHRocmVhZCBydW5uaW5nIFRocmVhZExvb3Ao KQorKyAgcHRocmVhZF90IHRocmVhZDsKKysgIC8vIE51bWJlciBvZiBmcmFtZXMgYnVmZmVyZWQg aW4gdGhlIGhhcmR3YXJlCisrICBpbnQgaHdfZGVsYXk7CisrICAvLyBUZW1wb3JhcnkgYnVmZmVy IHdoZXJlIGRhdGEgaXMgc3RvcmVkIHNuZGlvLWNvbXBhdGlibGUgZm9ybWF0CisrICBjaGFyKiBi dWZmZXI7CisrCisrICBESVNBTExPV19DT1BZX0FORF9BU1NJR04oU25kaW9BdWRpb0lucHV0U3Ry ZWFtKTsKKyt9OworKworK30gIC8vIG5hbWVzcGFjZSBtZWRpYQorKworKyNlbmRpZiAgLy8gTUVE SUFfQVVESU9fU05ESU9fU05ESU9fSU5QVVRfSF8KKy0tLSAvZGV2L251bGwKKysrKyBiL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS9tZWRpYS9hdWRpby9zbmRpby9zbmRpb19vdXRwdXQuY2MKK0BAIC0w LDAgKzEsMTgzIEBACisrLy8gQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBDaHJvbWl1bSBBdXRob3Jz LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdv dmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKysvLyBmb3VuZCBpbiB0 aGUgTElDRU5TRSBmaWxlLgorKworKyNpbmNsdWRlICJiYXNlL2xvZ2dpbmcuaCIKKysjaW5jbHVk ZSAiYmFzZS90aW1lL3RpbWUuaCIKKysjaW5jbHVkZSAiYmFzZS90aW1lL2RlZmF1bHRfdGlja19j bG9jay5oIgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9hdWRpb19tYW5hZ2VyX2Jhc2UuaCIKKysj aW5jbHVkZSAibWVkaWEvYmFzZS9hdWRpb190aW1lc3RhbXBfaGVscGVyLmgiCisrI2luY2x1ZGUg Im1lZGlhL2F1ZGlvL3NuZGlvL3NuZGlvX291dHB1dC5oIgorKworK25hbWVzcGFjZSBtZWRpYSB7 CisrCisrc3RhdGljIGNvbnN0IFNhbXBsZUZvcm1hdCBrU2FtcGxlRm9ybWF0ID0ga1NhbXBsZUZv cm1hdFMxNjsKKysKKyt2b2lkIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW06Ok9uTW92ZUNhbGxiYWNr KHZvaWQgKmFyZywgaW50IGRlbHRhKSB7CisrICBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKiBzZWxm ID0gc3RhdGljX2Nhc3Q8U25kaW9BdWRpb091dHB1dFN0cmVhbSo+KGFyZyk7CisrCisrICBzZWxm LT5od19kZWxheSAtPSBkZWx0YTsKKyt9CisrCisrdm9pZCBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFt OjpPblZvbENhbGxiYWNrKHZvaWQgKmFyZywgdW5zaWduZWQgaW50IHZvbCkgeworKyAgU25kaW9B dWRpb091dHB1dFN0cmVhbSogc2VsZiA9IHN0YXRpY19jYXN0PFNuZGlvQXVkaW9PdXRwdXRTdHJl YW0qPihhcmcpOworKworKyAgc2VsZi0+dm9sID0gdm9sOworK30KKysKKyt2b2lkICpTbmRpb0F1 ZGlvT3V0cHV0U3RyZWFtOjpUaHJlYWRFbnRyeSh2b2lkICphcmcpIHsKKysgIFNuZGlvQXVkaW9P dXRwdXRTdHJlYW0qIHNlbGYgPSBzdGF0aWNfY2FzdDxTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKj4o YXJnKTsKKysKKysgIHNlbGYtPlRocmVhZExvb3AoKTsKKysgIHJldHVybiBOVUxMOworK30KKysK KytTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjpTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKGNvbnN0IEF1 ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQXVkaW9NYW5hZ2VyQmFzZSogbWFuYWdlcikKKysgICAgOiBtYW5hZ2Vy KG1hbmFnZXIpLAorKyAgICAgIHBhcmFtcyhwYXJhbXMpLAorKyAgICAgIGF1ZGlvX2J1cyhBdWRp b0J1czo6Q3JlYXRlKHBhcmFtcykpLAorKyAgICAgIHN0YXRlKGtDbG9zZWQpLAorKyAgICAgIG11 dGV4KFBUSFJFQURfTVVURVhfSU5JVElBTElaRVIpIHsKKyt9CisrCisrU25kaW9BdWRpb091dHB1 dFN0cmVhbTo6flNuZGlvQXVkaW9PdXRwdXRTdHJlYW0oKSB7CisrICBpZiAoc3RhdGUgIT0ga0Ns b3NlZCkKKysgICAgQ2xvc2UoKTsKKyt9CisrCisrYm9vbCBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFt OjpPcGVuKCkgeworKyAgc3RydWN0IHNpb19wYXIgcGFyOworKyAgaW50IHNpZzsKKysKKysgIGlm IChwYXJhbXMuZm9ybWF0KCkgIT0gQXVkaW9QYXJhbWV0ZXJzOjpBVURJT19QQ01fTElORUFSICYm CisrICAgICAgcGFyYW1zLmZvcm1hdCgpICE9IEF1ZGlvUGFyYW1ldGVyczo6QVVESU9fUENNX0xP V19MQVRFTkNZKSB7CisrICAgIExPRyhXQVJOSU5HKSA8PCAiVW5zdXBwb3J0ZWQgYXVkaW8gZm9y bWF0LiI7CisrICAgIHJldHVybiBmYWxzZTsKKysgIH0KKysgIHNpb19pbml0cGFyKCZwYXIpOwor KyAgcGFyLnJhdGUgPSBwYXJhbXMuc2FtcGxlX3JhdGUoKTsKKysgIHBhci5wY2hhbiA9IHBhcmFt cy5jaGFubmVscygpOworKyAgcGFyLmJpdHMgPSBTYW1wbGVGb3JtYXRUb0JpdHNQZXJDaGFubmVs KGtTYW1wbGVGb3JtYXQpOworKyAgcGFyLmJwcyA9IHBhci5iaXRzIC8gODsKKysgIHBhci5zaWcg PSBzaWcgPSBwYXIuYml0cyAhPSA4ID8gMSA6IDA7CisrICBwYXIubGUgPSBTSU9fTEVfTkFUSVZF OworKyAgcGFyLmFwcGJ1ZnN6ID0gcGFyYW1zLmZyYW1lc19wZXJfYnVmZmVyKCk7CisrCisrICBo ZGwgPSBzaW9fb3BlbihTSU9fREVWQU5ZLCBTSU9fUExBWSwgMCk7CisrICBpZiAoaGRsID09IE5V TEwpIHsKKysgICAgTE9HKEVSUk9SKSA8PCAiQ291bGRuJ3Qgb3BlbiBhdWRpbyBkZXZpY2UuIjsK KysgICAgcmV0dXJuIGZhbHNlOworKyAgfQorKyAgaWYgKCFzaW9fc2V0cGFyKGhkbCwgJnBhcikg fHwgIXNpb19nZXRwYXIoaGRsLCAmcGFyKSkgeworKyAgICBMT0coRVJST1IpIDw8ICJDb3VsZG4n dCBzZXQgYXVkaW8gcGFyYW1ldGVycy4iOworKyAgICBnb3RvIGJhZF9jbG9zZTsKKysgIH0KKysg IGlmIChwYXIucmF0ZSAgIT0gKHVuc2lnbmVkIGludClwYXJhbXMuc2FtcGxlX3JhdGUoKSB8fAor KyAgICAgIHBhci5wY2hhbiAhPSAodW5zaWduZWQgaW50KXBhcmFtcy5jaGFubmVscygpIHx8Cisr ICAgICAgcGFyLmJpdHMgICE9ICh1bnNpZ25lZCBpbnQpU2FtcGxlRm9ybWF0VG9CaXRzUGVyQ2hh bm5lbChrU2FtcGxlRm9ybWF0KSB8fAorKyAgICAgIHBhci5zaWcgICAhPSAodW5zaWduZWQgaW50 KXNpZyB8fAorKyAgICAgIChwYXIuYnBzID4gMSAmJiBwYXIubGUgIT0gU0lPX0xFX05BVElWRSkg fHwKKysgICAgICAocGFyLmJpdHMgIT0gcGFyLmJwcyAqIDgpKSB7CisrICAgIExPRyhFUlJPUikg PDwgIlVuc3VwcG9ydGVkIGF1ZGlvIHBhcmFtZXRlcnMuIjsKKysgICAgZ290byBiYWRfY2xvc2U7 CisrICB9CisrICBzdGF0ZSA9IGtTdG9wcGVkOworKyAgdm9scGVuZGluZyA9IDA7CisrICB2b2wg PSAwOworKyAgYnVmZmVyID0gbmV3IGNoYXJbYXVkaW9fYnVzLT5mcmFtZXMoKSAqIHBhcmFtcy5H ZXRCeXRlc1BlckZyYW1lKGtTYW1wbGVGb3JtYXQpXTsKKysgIHNpb19vbm1vdmUoaGRsLCAmT25N b3ZlQ2FsbGJhY2ssIHRoaXMpOworKyAgc2lvX29udm9sKGhkbCwgJk9uVm9sQ2FsbGJhY2ssIHRo aXMpOworKyAgcmV0dXJuIHRydWU7CisrIGJhZF9jbG9zZToKKysgIHNpb19jbG9zZShoZGwpOwor KyAgcmV0dXJuIGZhbHNlOworK30KKysKKyt2b2lkIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW06OkNs b3NlKCkgeworKyAgaWYgKHN0YXRlID09IGtDbG9zZWQpCisrICAgIHJldHVybjsKKysgIGlmIChz dGF0ZSA9PSBrUnVubmluZykKKysgICAgU3RvcCgpOworKyAgc3RhdGUgPSBrQ2xvc2VkOworKyAg ZGVsZXRlIFtdIGJ1ZmZlcjsKKysgIHNpb19jbG9zZShoZGwpOworKyAgbWFuYWdlci0+UmVsZWFz ZU91dHB1dFN0cmVhbSh0aGlzKTsgIC8vIENhbGxzIHRoZSBkZXN0cnVjdG9yCisrfQorKworK3Zv aWQgU25kaW9BdWRpb091dHB1dFN0cmVhbTo6U3RhcnQoQXVkaW9Tb3VyY2VDYWxsYmFjayogY2Fs bGJhY2spIHsKKysgIHN0YXRlID0ga1J1bm5pbmc7CisrICBod19kZWxheSA9IDA7CisrICBzb3Vy Y2UgPSBjYWxsYmFjazsKKysgIHNpb19zdGFydChoZGwpOworKyAgaWYgKHB0aHJlYWRfY3JlYXRl KCZ0aHJlYWQsIE5VTEwsICZUaHJlYWRFbnRyeSwgdGhpcykgIT0gMCkgeworKyAgICBMT0coRVJS T1IpIDw8ICJGYWlsZWQgdG8gY3JlYXRlIHJlYWwtdGltZSB0aHJlYWQuIjsKKysgICAgc2lvX3N0 b3AoaGRsKTsKKysgICAgc3RhdGUgPSBrU3RvcHBlZDsKKysgIH0KKyt9CisrCisrdm9pZCBTbmRp b0F1ZGlvT3V0cHV0U3RyZWFtOjpTdG9wKCkgeworKyAgaWYgKHN0YXRlID09IGtTdG9wcGVkKQor KyAgICByZXR1cm47CisrICBzdGF0ZSA9IGtTdG9wV2FpdDsKKysgIHB0aHJlYWRfam9pbih0aHJl YWQsIE5VTEwpOworKyAgc2lvX3N0b3AoaGRsKTsKKysgIHN0YXRlID0ga1N0b3BwZWQ7CisrfQor KworK3ZvaWQgU25kaW9BdWRpb091dHB1dFN0cmVhbTo6U2V0Vm9sdW1lKGRvdWJsZSB2KSB7Cisr ICBwdGhyZWFkX211dGV4X2xvY2soJm11dGV4KTsKKysgIHZvbCA9IHYgKiBTSU9fTUFYVk9MOwor KyAgdm9scGVuZGluZyA9IDE7CisrICBwdGhyZWFkX211dGV4X3VubG9jaygmbXV0ZXgpOworK30K KysKKyt2b2lkIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW06OkdldFZvbHVtZShkb3VibGUqIHYpIHsK KysgIHB0aHJlYWRfbXV0ZXhfbG9jaygmbXV0ZXgpOworKyAgKnYgPSB2b2wgKiAoMS4gLyBTSU9f TUFYVk9MKTsKKysgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZtdXRleCk7CisrfQorKworKy8vIFRo aXMgc3RyZWFtIGlzIGFsd2F5cyB1c2VkIHdpdGggc3ViIHNlY29uZCBidWZmZXIgc2l6ZXMsIHdo ZXJlIGl0J3MKKysvLyBzdWZmaWNpZW50IHRvIHNpbXBseSBhbHdheXMgZmx1c2ggdXBvbiBTdGFy dCgpLgorK3ZvaWQgU25kaW9BdWRpb091dHB1dFN0cmVhbTo6Rmx1c2goKSB7fQorKworK3ZvaWQg U25kaW9BdWRpb091dHB1dFN0cmVhbTo6VGhyZWFkTG9vcCh2b2lkKSB7CisrICBpbnQgYXZhaWws IGNvdW50LCByZXN1bHQ7CisrCisrICB3aGlsZSAoc3RhdGUgPT0ga1J1bm5pbmcpIHsKKysgICAg Ly8gVXBkYXRlIHZvbHVtZSBpZiBuZWVkZWQKKysgICAgcHRocmVhZF9tdXRleF9sb2NrKCZtdXRl eCk7CisrICAgIGlmICh2b2xwZW5kaW5nKSB7CisrICAgICAgdm9scGVuZGluZyA9IDA7CisrICAg ICAgc2lvX3NldHZvbChoZGwsIHZvbCk7CisrICAgIH0KKysgICAgcHRocmVhZF9tdXRleF91bmxv Y2soJm11dGV4KTsKKysKKysgICAgLy8gR2V0IGRhdGEgdG8gcGxheQorKyAgICBjb25zdCBiYXNl OjpUaW1lRGVsdGEgZGVsYXkgPSBBdWRpb1RpbWVzdGFtcEhlbHBlcjo6RnJhbWVzVG9UaW1lKGh3 X2RlbGF5LAorKwlwYXJhbXMuc2FtcGxlX3JhdGUoKSk7CisrICAgIGNvdW50ID0gc291cmNlLT5P bk1vcmVEYXRhKGRlbGF5LCBiYXNlOjpUaW1lVGlja3M6Ok5vdygpLCAwLCBhdWRpb19idXMuZ2V0 KCkpOworKyAgICBhdWRpb19idXMtPlRvSW50ZXJsZWF2ZWQ8U2lnbmVkSW50MTZTYW1wbGVUeXBl VHJhaXRzPihjb3VudCwgcmVpbnRlcnByZXRfY2FzdDxpbnQxNl90Kj4oYnVmZmVyKSk7CisrICAg IGlmIChjb3VudCA9PSAwKSB7CisrICAgICAgLy8gV2UgaGF2ZSB0byBzdWJtaXQgc29tZXRoaW5n IHRvIHRoZSBkZXZpY2UKKysgICAgICBjb3VudCA9IGF1ZGlvX2J1cy0+ZnJhbWVzKCk7CisrICAg ICAgbWVtc2V0KGJ1ZmZlciwgMCwgY291bnQgKiBwYXJhbXMuR2V0Qnl0ZXNQZXJGcmFtZShrU2Ft cGxlRm9ybWF0KSk7CisrICAgICAgTE9HKFdBUk5JTkcpIDw8ICJObyBkYXRhIHRvIHBsYXksIHJ1 bm5pbmcgZW1wdHkgY3ljbGUuIjsKKysgICAgfQorKworKyAgICAvLyBTdWJtaXQgZGF0YSB0byB0 aGUgZGV2aWNlCisrICAgIGF2YWlsID0gY291bnQgKiBwYXJhbXMuR2V0Qnl0ZXNQZXJGcmFtZShr U2FtcGxlRm9ybWF0KTsKKysgICAgcmVzdWx0ID0gc2lvX3dyaXRlKGhkbCwgYnVmZmVyLCBhdmFp bCk7CisrICAgIGlmIChyZXN1bHQgPT0gMCkgeworKyAgICAgIExPRyhXQVJOSU5HKSA8PCAiQXVk aW8gZGV2aWNlIGRpc2Nvbm5lY3RlZC4iOworKyAgICAgIGJyZWFrOworKyAgICB9CisrCisrICAg IC8vIFVwZGF0ZSBoYXJkd2FyZSBwb2ludGVyCisrICAgIGh3X2RlbGF5ICs9IGNvdW50OworKyAg fQorK30KKysKKyt9ICAvLyBuYW1lc3BhY2UgbWVkaWEKKy0tLSAvZGV2L251bGwKKysrKyBiL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS9tZWRpYS9hdWRpby9zbmRpby9zbmRpb19vdXRwdXQuaAorQEAg LTAsMCArMSw4NiBAQAorKy8vIENvcHlyaWdodCAoYykgMjAxMiBUaGUgQ2hyb21pdW0gQXV0aG9y cy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKysvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBn b3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisrLy8gZm91bmQgaW4g dGhlIExJQ0VOU0UgZmlsZS4KKysKKysjaWZuZGVmIE1FRElBX0FVRElPX1NORElPX1NORElPX09V VFBVVF9IXworKyNkZWZpbmUgTUVESUFfQVVESU9fU05ESU9fU05ESU9fT1VUUFVUX0hfCisrCisr I2luY2x1ZGUgPHB0aHJlYWQuaD4KKysjaW5jbHVkZSA8c25kaW8uaD4KKysKKysjaW5jbHVkZSAi YmFzZS90aW1lL3RpY2tfY2xvY2suaCIKKysjaW5jbHVkZSAiYmFzZS90aW1lL3RpbWUuaCIKKysj aW5jbHVkZSAibWVkaWEvYXVkaW8vYXVkaW9faW8uaCIKKysKKytuYW1lc3BhY2UgbWVkaWEgewor KworK2NsYXNzIEF1ZGlvTWFuYWdlckJhc2U7CisrCisrLy8gSW1wbGVtZW50YXRpb24gb2YgQXVk aW9PdXRwdXRTdHJlYW0gdXNpbmcgc25kaW8oNykKKytjbGFzcyBTbmRpb0F1ZGlvT3V0cHV0U3Ry ZWFtIDogcHVibGljIEF1ZGlvT3V0cHV0U3RyZWFtIHsKKysgcHVibGljOgorKyAgLy8gVGhlIG1h bmFnZXIgaXMgY3JlYXRpbmcgdGhpcyBvYmplY3QKKysgIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW0o Y29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMsCisrICAgICAgICAgICAgICAgICAgICAgICAg IEF1ZGlvTWFuYWdlckJhc2UqIG1hbmFnZXIpOworKyAgdmlydHVhbCB+U25kaW9BdWRpb091dHB1 dFN0cmVhbSgpOworKworKyAgLy8gSW1wbGVtZW50YXRpb24gb2YgQXVkaW9PdXRwdXRTdHJlYW0u CisrICBib29sIE9wZW4oKSBvdmVycmlkZTsKKysgIHZvaWQgQ2xvc2UoKSBvdmVycmlkZTsKKysg IHZvaWQgU3RhcnQoQXVkaW9Tb3VyY2VDYWxsYmFjayogY2FsbGJhY2spIG92ZXJyaWRlOworKyAg dm9pZCBTdG9wKCkgb3ZlcnJpZGU7CisrICB2b2lkIFNldFZvbHVtZShkb3VibGUgdm9sdW1lKSBv dmVycmlkZTsKKysgIHZvaWQgR2V0Vm9sdW1lKGRvdWJsZSogdm9sdW1lKSBvdmVycmlkZTsKKysg IHZvaWQgRmx1c2goKSBvdmVycmlkZTsKKysKKysgIGZyaWVuZCB2b2lkIHNuZGlvX29ubW92ZSh2 b2lkICphcmcsIGludCBkZWx0YSk7CisrICBmcmllbmQgdm9pZCBzbmRpb19vbnZvbCh2b2lkICph cmcsIHVuc2lnbmVkIGludCB2b2wpOworKyAgZnJpZW5kIHZvaWQgKnNuZGlvX3RocmVhZHN0YXJ0 KHZvaWQgKmFyZyk7CisrCisrIHByaXZhdGU6CisrICBlbnVtIFN0cmVhbVN0YXRlIHsKKysgICAg a0Nsb3NlZCwgICAgICAgICAgICAvLyBOb3Qgb3BlbmVkIHlldAorKyAgICBrU3RvcHBlZCwgICAg ICAgICAgIC8vIERldmljZSBvcGVuZWQsIGJ1dCBub3Qgc3RhcnRlZCB5ZXQKKysgICAga1J1bm5p bmcsICAgICAgICAgICAvLyBTdGFydGVkLCBkZXZpY2UgcGxheWluZworKyAgICBrU3RvcFdhaXQg ICAgICAgICAgIC8vIFN0b3BwaW5nLCB3YWl0aW5nIGZvciB0aGUgcmVhbC10aW1lIHRocmVhZCB0 byBleGl0CisrICB9OworKworKyAgLy8gQy1zdHlsZSBjYWxsLWJhY2tzCisrICBzdGF0aWMgdm9p ZCBPbk1vdmVDYWxsYmFjayh2b2lkICphcmcsIGludCBkZWx0YSk7CisrICBzdGF0aWMgdm9pZCBP blZvbENhbGxiYWNrKHZvaWQgKmFyZywgdW5zaWduZWQgaW50IHZvbCk7CisrICBzdGF0aWMgdm9p ZCogVGhyZWFkRW50cnkodm9pZCAqYXJnKTsKKysKKysgIC8vIENvbnRpbnVvdXNseSBtb3ZlcyBk YXRhIGZyb20gdGhlIHByb2R1Y2VyIHRvIHRoZSBkZXZpY2UKKysgIHZvaWQgVGhyZWFkTG9vcCh2 b2lkKTsKKysKKysgIC8vIE91ciBjcmVhdG9yLCB0aGUgYXVkaW8gbWFuYWdlciBuZWVkcyB0byBi ZSBub3RpZmllZCB3aGVuIHdlIGNsb3NlLgorKyAgQXVkaW9NYW5hZ2VyQmFzZSogbWFuYWdlcjsK KysgIC8vIFBhcmFtZXRlcnMgb2YgdGhlIHNvdXJjZQorKyAgQXVkaW9QYXJhbWV0ZXJzIHBhcmFt czsKKysgIC8vIFNvdXJjZSBzdG9yZXMgZGF0YSBoZXJlCisrICBzdGQ6OnVuaXF1ZV9wdHI8QXVk aW9CdXM+IGF1ZGlvX2J1czsKKysgIC8vIENhbGwtYmFjayB0aGF0IHByb2R1Y2VzIGRhdGEgdG8g cGxheQorKyAgQXVkaW9Tb3VyY2VDYWxsYmFjayogc291cmNlOworKyAgLy8gSGFuZGxlIG9mIHRo ZSBhdWRpbyBkZXZpY2UKKysgIHN0cnVjdCBzaW9faGRsKiBoZGw7CisrICAvLyBDdXJyZW50IHN0 YXRlIG9mIHRoZSBzdHJlYW0KKysgIGVudW0gU3RyZWFtU3RhdGUgc3RhdGU7CisrICAvLyBIaWdo IHByaW9yaXR5IHRocmVhZCBydW5uaW5nIFRocmVhZExvb3AoKQorKyAgcHRocmVhZF90IHRocmVh ZDsKKysgIC8vIFByb3RlY3RzIHZvbCwgdm9scGVuZGluZyBhbmQgaHdfZGVsYXkKKysgIHB0aHJl YWRfbXV0ZXhfdCBtdXRleDsKKysgIC8vIEN1cnJlbnQgdm9sdW1lIGluIHRoZSAwLi5TSU9fTUFY Vk9MIHJhbmdlCisrICBpbnQgdm9sOworKyAgLy8gU2V0IHRvIDEgaWYgdm9sdW1lcyBtdXN0IGJl IHJlZnJlc2hlZCBpbiB0aGUgcmVhbHRpbWUgdGhyZWFkCisrICBpbnQgdm9scGVuZGluZzsKKysg IC8vIE51bWJlciBvZiBmcmFtZXMgYnVmZmVyZWQgaW4gdGhlIGhhcmR3YXJlCisrICBpbnQgaHdf ZGVsYXk7CisrICAvLyBUZW1wb3JhcnkgYnVmZmVyIHdoZXJlIGRhdGEgaXMgc3RvcmVkIHNuZGlv LWNvbXBhdGlibGUgZm9ybWF0CisrICBjaGFyKiBidWZmZXI7CisrCisrICBESVNBTExPV19DT1BZ X0FORF9BU1NJR04oU25kaW9BdWRpb091dHB1dFN0cmVhbSk7CisrfTsKKysKKyt9ICAvLyBuYW1l c3BhY2UgbWVkaWEKKysKKysjZW5kaWYgIC8vIE1FRElBX0FVRElPX1NORElPX1NORElPX09VVFBV VF9IXworLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL21lZGlhL21lZGlhX29wdGlvbnMuZ25p CisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vbWVkaWEvbWVkaWFfb3B0aW9ucy5nbmkKK0BA IC0xMjEsNiArMTIxLDkgQEAgZGVjbGFyZV9hcmdzKCkgeworICAgIyBFbmFibGVzIHJ1bnRpbWUg c2VsZWN0aW9uIG9mIEFMU0EgbGlicmFyeSBmb3IgYXVkaW8uCisgICB1c2VfYWxzYSA9IGZhbHNl CisgCisrICAjIEVuYWJsZSBydW50aW1lIHNlbGVjdGlvbiBvZiBzbmRpbyg3KQorKyAgdXNlX3Nu ZGlvID0gZmFsc2UKKysKKyAgICMgQWxzYSBzaG91bGQgYmUgdXNlZCBvbiBub24tQW5kcm9pZCwg bm9uLU1hYyBQT1NJWCBzeXN0ZW1zLgorICAgIyBBbHNhIHNob3VsZCBiZSB1c2VkIG9uIGRlc2t0 b3AgQ2hyb21lY2FzdCBhbmQgYXVkaW8tb25seSBDaHJvbWVjYXN0IGJ1aWxkcy4KKyAgIGlmIChp c19wb3NpeCAmJiAhaXNfYW5kcm9pZCAmJiAhaXNfbWFjICYmCmRpZmYgLS1naXQgYS9zcmNwa2dz L3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wNzAwLWFybXY3bC1uZW9uLnBhdGNoIGIvc3JjcGtncy9x dDYtd2ViZW5naW5lL3BhdGNoZXMvMDcwMC1hcm12N2wtbmVvbi5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmQ0MmZhMTlhMDdhMQotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA3MDAtYXJtdjdsLW5lb24ucGF0Y2gK QEAgLTAsMCArMSwxMCBAQAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NraWEvQlVJTEQu Z24KKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9za2lhL0JVSUxELmduCitAQCAtODAwLDcg KzgwMCw2IEBAIHNraWFfc291cmNlX3NldCgic2tpYV9vcHRzIikgeworICAgICAgICAgIyBSb290 IGJ1aWxkIGNvbmZpZyBzZXRzIC1tZnB1PSRhcm1fZnB1LCB3aGljaCB3ZSBleHBlY3QgdG8gYmUg bmVvbgorICAgICAgICAgIyB3aGVuIHJ1bm5pbmcgdGhpcy4KKyAgICAgICAgIGlmICghYXJtX3Vz ZV9uZW9uKSB7CistICAgICAgICAgIGNvbmZpZ3MgLT0gWyAiLy9idWlsZC9jb25maWcvY29tcGls ZXI6Y29tcGlsZXJfYXJtX2ZwdSIgXQorICAgICAgICAgICBjZmxhZ3MgKz0gWyAiLW1mcHU9bmVv biIgXQorICAgICAgICAgfQorICAgICAgIH0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVu Z2luZS9wYXRjaGVzLzA3NTAtY2hyb21pdW0tbXVzbC1jcm9zcy1uby1hc21fcHRyYWNlX2gucGF0 Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wNzUwLWNocm9taXVtLW11c2wtY3Jv c3Mtbm8tYXNtX3B0cmFjZV9oLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwMC4uM2NmMTMyOTA4YWY0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2Vi ZW5naW5lL3BhdGNoZXMvMDc1MC1jaHJvbWl1bS1tdXNsLWNyb3NzLW5vLWFzbV9wdHJhY2VfaC5w YXRjaApAQCAtMCwwICsxLDMwIEBACistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRf cGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIv bGludXhfcHRyYWNlX2R1bXBlci5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJk X3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVy L2xpbnV4X3B0cmFjZV9kdW1wZXIuY2MKK0BAIC0zOCw3ICszOCwxMiBAQAorIAorICNpbmNsdWRl ICJjbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X3B0cmFjZV9kdW1wZXIuaCIKKyAK KysjaWYgZGVmaW5lZChfX0dMSUJDX18pCisgI2luY2x1ZGUgPGFzbS9wdHJhY2UuaD4KKysjZWxz ZQorKy8qIEZvciBhcm0qLW11c2wgdGhpcyBkZWZpbml0aW9uIGlzIG1pc3NpbmcgKi8KKysjZGVm aW5lIEFSTV9zcCB1cmVnc1sxM10KKysjZW5kaWYKKyAjaW5jbHVkZSA8YXNzZXJ0Lmg+CisgI2lu Y2x1ZGUgPGVycm5vLmg+CisgI2luY2x1ZGUgPGZjbnRsLmg+CistLS0gYS9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9t aW5pZHVtcF93cml0ZXIvbGludXhfY29yZV9kdW1wZXIuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21p bmlkdW1wX3dyaXRlci9saW51eF9jb3JlX2R1bXBlci5jYworQEAgLTMyLDcgKzMyLDEyIEBACisg CisgI2luY2x1ZGUgImNsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfY29yZV9kdW1w ZXIuaCIKKyAKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pCisgI2luY2x1ZGUgPGFzbS9wdHJhY2Uu aD4KKysjZWxzZQorKy8qIEZvciBhcm0qLW11c2wgdGhpcyBkZWZpbml0aW9uIGlzIG1pc3Npbmcg Ki8KKysjZGVmaW5lIEFSTV9zcCB1cmVnc1sxM10KKysjZW5kaWYKKyAjaW5jbHVkZSA8YXNzZXJ0 Lmg+CisgI2luY2x1ZGUgPGVsZi5oPgorICNpbmNsdWRlIDxzdGRpby5oPgpkaWZmIC0tZ2l0IGEv c3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDc1MS1jaHJvbWl1bS1tdXNsLWFybS11c2Vy X3ZmcC5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA3NTEtY2hyb21pdW0t bXVzbC1hcm0tdXNlcl92ZnAucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwLi42ZTJkNjJmMzVlZTYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJl bmdpbmUvcGF0Y2hlcy8wNzUxLWNocm9taXVtLW11c2wtYXJtLXVzZXJfdmZwLnBhdGNoCkBAIC0w LDAgKzEsMjAgQEAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFz aHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3RocmVhZF9pbmZvLmgKKysrKyBiL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3RocmVh ZF9pbmZvLmgKK0BAIC0xNyw2ICsxNywxNyBAQAorIAorICNpbmNsdWRlIDxzdGRpbnQuaD4KKyAj aW5jbHVkZSA8c3lzL3VzZXIuaD4KKysjaWYgIWRlZmluZWQoX19HTElCQ19fKQorK3N0cnVjdCB1 c2VyX3ZmcCB7CisrCXVuc2lnbmVkIGxvbmcgbG9uZyBmcHJlZ3NbMzJdOworKwl1bnNpZ25lZCBs b25nIGZwc2NyOworK307Cisrc3RydWN0IHVzZXJfdmZwX2V4YyB7CisrCXVuc2lnbmVkIGxvbmcg ZnBleGM7CisrCXVuc2lnbmVkIGxvbmcgZnBpbnN0OworKwl1bnNpZ25lZCBsb25nIGZwaW5zdDI7 CisrfTsKKysjZW5kaWYgLyogIWRlZmluZWQoX19HTElCQ19fKSAqLworIAorICNpbmNsdWRlIDx0 eXBlX3RyYWl0cz4KKyAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVz LzA3NTItY2hyb21pdW0tbXVzbC1hcm0tZWxmX2F1eHZfdC5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdl YmVuZ2luZS9wYXRjaGVzLzA3NTItY2hyb21pdW0tbXVzbC1hcm0tZWxmX2F1eHZfdC5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjcxMTJjOGNmZDNmYQotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA3NTItY2hyb21p dW0tbXVzbC1hcm0tZWxmX2F1eHZfdC5wYXRjaApAQCAtMCwwICsxLDE4IEBACistLS0gYS9zcmMv M3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL2Jhc2UvY3B1LmNjCisrKysgYi9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdjgvc3JjL2Jhc2UvY3B1LmNjCitAQCAtMTYzLDYgKzE2MywxNSBAQCBzdGF0aWMg VjhfSU5MSU5FIHZvaWQgX19jcHVpZChpbnQgY3B1X2luCisgCisgI2lmIFY4X0hPU1RfQVJDSF9B Uk0gfHwgVjhfSE9TVF9BUkNIX0FSTTY0CisgCisrI2lmbmRlZiBfX0dMSUJDX18KKysjaW5jbHVk ZSA8ZWxmLmg+CisrI2lmZGVmIF9fTFA2NF9fCisrdHlwZWRlZiBFbGY2NF9hdXh2X3QgZWxmX2F1 eHZfdDsKKysjZWxzZQorK3R5cGVkZWYgRWxmMzJfYXV4dl90IGVsZl9hdXh2X3Q7CisrI2VuZGlm CisrI2VuZGlmCisrCisgc3RhdGljIHVpbnQzMl90IFJlYWRFTEZIV0NhcHMoKSB7CisgICB1aW50 MzJfdCByZXN1bHQgPSAwOworICNpZiBWOF9HTElCQ19QUkVSRVEoMiwgMTYpCmRpZmYgLS1naXQg YS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wODAxLWNocm9taXVtLWk2ODYtdmFhcGkt ZnBlcm1pc3NpdmUucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wODAxLWNo cm9taXVtLWk2ODYtdmFhcGktZnBlcm1pc3NpdmUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwLi4zZDQwNDNlMDNiODkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNw a2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wODAxLWNocm9taXVtLWk2ODYtdmFhcGktZnBlcm1p c3NpdmUucGF0Y2gKQEAgLTAsMCArMSwyNCBAQAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVt L21lZGlhL2dwdS92YWFwaS9CVUlMRC5nbgorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL21l ZGlhL2dwdS92YWFwaS9CVUlMRC5nbgorQEAgLTE0LDYgKzE0LDEwIEBAIGltcG9ydCgiLy91aS9n bC9mZWF0dXJlcy5nbmkiKQorIGFzc2VydChpc19saW51eCB8fCBpc19jaHJvbWVvcykKKyBhc3Nl cnQodXNlX3ZhYXBpKQorIAorK2NvbmZpZygidmFhcGlfcGVybWlzc2l2ZSIpIHsKKysgIGNmbGFn cyA9IFsgIi1mcGVybWlzc2l2ZSIgXQorK30KKysKKyBnZW5lcmF0ZV9zdHVicygibGlidmFfc3R1 YnMiKSB7CisgICBleHRyYV9oZWFkZXIgPSAidmFfc3R1Yl9oZWFkZXIuZnJhZ21lbnQiCisgICBz aWdzID0gWyAidmEuc2lncyIgXQorQEAgLTEzNiw2ICsxNDAsMTAgQEAgc291cmNlX3NldCgidmFh cGkiKSB7CisgICAgIF0KKyAgIH0KKyAKKysgIGlmICh0YXJnZXRfY3B1ID09ICJ4ODYiKSB7Cisr ICAgIGNvbmZpZ3MgKz0gWyAiOnZhYXBpX3Blcm1pc3NpdmUiIF0KKysgIH0KKysKKyAgIGlmICh1 c2VfeDExKSB7CisgICAgIGRlcHMgKz0gWyAiLy91aS9nZngveCIgXQorICAgICBzb3VyY2VzICs9 IFsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA5MDAteHh4LXBw YzY0bGUtbGlidnB4LnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDkwMC14 eHgtcHBjNjRsZS1saWJ2cHgucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwLi41Yzk1NjZiNTZiZDQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJl bmdpbmUvcGF0Y2hlcy8wOTAwLXh4eC1wcGM2NGxlLWxpYnZweC5wYXRjaApAQCAtMCwwICsxLDY1 IEBACitVc2VzIGdlbmVyaWMgdGFyZ2V0IGZvciBub3cuIFRvIHVzZSBwcGM2NGxlLCBjaGFuZ2Ug LS10YXJnZXQgdG8gcHBjNjRsZS1nbnUKK2FuZCBhZGQgLS1lbmFibGUtdnN4LCBhbmQgY2hhbmdl IGdlbmVyaWMgdG8gcHBjIGZvciB0aGUgcnRjZCBoZWFkZXIuCisKK0Zyb20gMThlNmM1YzU1Y2Zh ZTBjZmI0NThkODIxMGQ3YmM3MDkzNjBhMGU5MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zy b206IHE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CitEYXRlOiBXZWQsIDkgU2VwIDIwMjAgMTk6 MDg6MjUgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gZW5hYmxlIGdlbmVyYXRpb24gb2YgcHBjNjQg bGlidnB4IGJpdHMKKwordGhpcyBkb2Vzbid0IHVwZGF0ZSB0aGUgZ25pIGZpbGUsIHRoYXQncyBk b25lIGZyb20KK3RoZSB0ZW1wbGF0ZSBieSBydW5uaW5nIHRoZSBhcHByb3ByaWF0ZSBzY3JpcHRz CistLS0KKyB0aGlyZF9wYXJ0eS9saWJ2cHgvQlVJTEQuZ24gICAgICAgIHwgNCArKysrCisgdGhp cmRfcGFydHkvbGlidnB4L2dlbmVyYXRlX2duaS5zaCB8IDkgKysrKysrKysrCisgMiBmaWxlcyBj aGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspCisKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90 aGlyZF9wYXJ0eS9saWJ2cHgvQlVJTEQuZ24KKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90 aGlyZF9wYXJ0eS9saWJ2cHgvQlVJTEQuZ24KK0BAIC00MjQsNiArNDI0LDggQEAgc3RhdGljX2xp YnJhcnkoImJ1bmRsZWRfbGlidnB4IikgeworICAgICAgIHNvdXJjZXMgPSBsaWJ2cHhfc3Jjc19h cm02NAorICAgICAgIHB1YmxpY19kZXBzID0gWyAiOmxpYnZweF9hcm02NF9oZWFkZXJzIiBdCisg ICAgIH0KKysgIH0gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gInBwYzY0IikgeworKyAgICBzb3Vy Y2VzID0gbGlidnB4X3NyY3NfcHBjNjQKKyAgIH0KKyAKKyAgIGNvbmZpZ3MgLT0gWyAiLy9idWls ZC9jb25maWcvY29tcGlsZXI6Y2hyb21pdW1fY29kZSIgXQorLS0tIGEvc3JjLzNyZHBhcnR5L2No cm9taXVtL3RoaXJkX3BhcnR5L2xpYnZweC9nZW5lcmF0ZV9nbmkuc2gKKysrKyBiL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9saWJ2cHgvZ2VuZXJhdGVfZ25pLnNoCitAQCAtMzc0 LDYgKzM3NCw3IEBAIGdlbl9jb25maWdfZmlsZXMgbGludXgvYXJtLW5lb24taGlnaGJkICIKKyBn ZW5fY29uZmlnX2ZpbGVzIGxpbnV4L2FybTY0LWhpZ2hiZCAiLS10YXJnZXQ9YXJtdjgtbGludXgt Z2NjICR7YWxsX3BsYXRmb3Jtc30gJHtISUdIQkR9IgorIGdlbl9jb25maWdfZmlsZXMgbGludXgv bWlwc2VsICItLXRhcmdldD1taXBzMzItbGludXgtZ2NjICR7YWxsX3BsYXRmb3Jtc30iCisgZ2Vu X2NvbmZpZ19maWxlcyBsaW51eC9taXBzNjRlbCAiLS10YXJnZXQ9bWlwczY0LWxpbnV4LWdjYyAk e2FsbF9wbGF0Zm9ybXN9IgorK2dlbl9jb25maWdfZmlsZXMgbGludXgvcHBjNjQgIi0tdGFyZ2V0 PWdlbmVyaWMtZ251ICRISUdIQkQgJHthbGxfcGxhdGZvcm1zfSIKKyBnZW5fY29uZmlnX2ZpbGVz IGxpbnV4L2dlbmVyaWMgIi0tdGFyZ2V0PWdlbmVyaWMtZ251ICRISUdIQkQgJHthbGxfcGxhdGZv cm1zfSIKKyBnZW5fY29uZmlnX2ZpbGVzIHdpbi9hcm02NCAiLS10YXJnZXQ9YXJtNjQtd2luNjQt dnMxNSAke2FsbF9wbGF0Zm9ybXN9ICR7SElHSEJEfSIKKyBnZW5fY29uZmlnX2ZpbGVzIHdpbi9p YTMyICItLXRhcmdldD14ODYtd2luMzItdnMxNCAke2FsbF9wbGF0Zm9ybXN9ICR7eDg2X3BsYXRm b3Jtc30iCitAQCAtMzk5LDYgKzQwMCw3IEBAIGxpbnRfY29uZmlnIGxpbnV4L2FybS1uZW9uLWhp Z2hiZAorIGxpbnRfY29uZmlnIGxpbnV4L2FybTY0LWhpZ2hiZAorIGxpbnRfY29uZmlnIGxpbnV4 L21pcHNlbAorIGxpbnRfY29uZmlnIGxpbnV4L21pcHM2NGVsCisrbGludF9jb25maWcgbGludXgv cHBjNjQKKyBsaW50X2NvbmZpZyBsaW51eC9nZW5lcmljCisgbGludF9jb25maWcgd2luL2FybTY0 CisgbGludF9jb25maWcgd2luL2lhMzIKK0BAIC00MjgsNiArNDMwLDcgQEAgZ2VuX3J0Y2RfaGVh ZGVyIGxpbnV4L2FybS1uZW9uLWhpZ2hiZCBhcgorIGdlbl9ydGNkX2hlYWRlciBsaW51eC9hcm02 NC1oaWdoYmQgYXJtdjgKKyBnZW5fcnRjZF9oZWFkZXIgbGludXgvbWlwc2VsIG1pcHNlbAorIGdl bl9ydGNkX2hlYWRlciBsaW51eC9taXBzNjRlbCBtaXBzNjRlbAorK2dlbl9ydGNkX2hlYWRlciBs aW51eC9wcGM2NCBnZW5lcmljCisgZ2VuX3J0Y2RfaGVhZGVyIGxpbnV4L2dlbmVyaWMgZ2VuZXJp YworIGdlbl9ydGNkX2hlYWRlciB3aW4vYXJtNjQgYXJtdjgKKyBnZW5fcnRjZF9oZWFkZXIgd2lu L2lhMzIgeDg2ICIke3JlcXVpcmVfc3NlMn0iCitAQCAtNTEzLDYgKzUxNiwxMiBAQCBpZiBbIC16 ICRPTkxZX0NPTkZJR1MgXTsgdGhlbgorIAorICAgZWNobyAiTUlQUzY0IHNvdXJjZSBsaXN0IGlz IGlkZW50aWNhbCB0byBNSVBTIHNvdXJjZSBsaXN0LiBObyBuZWVkIHRvIGdlbmVyYXRlIGl0LiIK KyAKKysgIGVjaG8gIkdlbmVyYXRlIHBwYzY0IHNvdXJjZSBsaXN0LiIKKysgIGNvbmZpZz0kKHBy aW50X2NvbmZpZ19iYXNpYyBsaW51eC9wcGM2NCkKKysgIG1ha2VfY2xlYW4KKysgIG1ha2UgbGli dnB4X3NyY3MudHh0IHRhcmdldD1saWJzICRjb25maWcgPiAvZGV2L251bGwKKysgIGNvbnZlcnRf c3Jjc190b19wcm9qZWN0X2ZpbGVzIGxpYnZweF9zcmNzLnR4dCBsaWJ2cHhfc3Jjc19wcGM2NAor KworICAgZWNobyAiR2VuZXJhdGUgTmFDbCBzb3VyY2UgbGlzdC4iCisgICBjb25maWc9JChwcmlu dF9jb25maWdfYmFzaWMgbmFjbCkKKyAgIG1ha2VfY2xlYW4KZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv cXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA5MDEteHh4LXBwYzY0bGUtc2FuZGJveC1saW51eC1zdGF0 LnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDkwMS14eHgtcHBjNjRsZS1z YW5kYm94LWxpbnV4LXN0YXQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwLi40YjhlNjMyMDYwMWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJl bmdpbmUvcGF0Y2hlcy8wOTAxLXh4eC1wcGM2NGxlLXNhbmRib3gtbGludXgtc3RhdC5wYXRjaApA QCAtMCwwICsxLDMxIEBACistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51 eC9zeXN0ZW1faGVhZGVycy9saW51eF9zdGF0LmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3N0YXQuaAorQEAgLTE1NSw2ICsx NTUsMjggQEAgc3RydWN0IGtlcm5lbF9zdGF0IHsKKyAgIHVuc2lnbmVkIGludCBfX3VudXNlZDQ7 CisgICB1bnNpZ25lZCBpbnQgX191bnVzZWQ1OworIH07CisrI2VsaWYgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQorK3N0cnVjdCBrZXJuZWxfc3RhdCB7CisrICB1bnNpZ25lZCBsb25nCXN0X2RldjsK KysgIHVuc2lnbmVkIGxvbmcJc3RfaW5vOworKyAgdW5zaWduZWQgbG9uZwlzdF9ubGluazsKKysg IHVuc2lnbmVkIGludAlzdF9tb2RlOworKyAgdW5zaWduZWQgaW50CXN0X3VpZDsKKysgIHVuc2ln bmVkIGludAlzdF9naWQ7CisrICB1bnNpZ25lZCBsb25nCXN0X3JkZXY7CisrICBsb25nCQlzdF9z aXplOworKyAgdW5zaWduZWQgbG9uZwlzdF9ibGtzaXplOworKyAgdW5zaWduZWQgbG9uZwlzdF9i bG9ja3M7CisrICB1bnNpZ25lZCBsb25nCXN0X2F0aW1lXzsKKysgIHVuc2lnbmVkIGxvbmcJc3Rf YXRpbWVfbnNlY187CisrICB1bnNpZ25lZCBsb25nCXN0X210aW1lXzsKKysgIHVuc2lnbmVkIGxv bmcJc3RfbXRpbWVfbnNlY187CisrICB1bnNpZ25lZCBsb25nCXN0X2N0aW1lXzsKKysgIHVuc2ln bmVkIGxvbmcJc3RfY3RpbWVfbnNlY187CisrICB1bnNpZ25lZCBsb25nCV9fdW51c2VkNDsKKysg IHVuc2lnbmVkIGxvbmcJX191bnVzZWQ1OworKyAgdW5zaWduZWQgbG9uZwlfX3VudXNlZDY7Cisr fTsKKyAjZW5kaWYKKyAKKyAjaWYgIWRlZmluZWQoQVRfRU1QVFlfUEFUSCkKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA5MDIteHh4LXBwYzY0bGUtc3VwcG9ydC5w YXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA5MDIteHh4LXBwYzY0bGUtc3Vw cG9ydC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjMzZDQx NWU1NWY2OQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVz LzA5MDIteHh4LXBwYzY0bGUtc3VwcG9ydC5wYXRjaApAQCAtMCwwICsxLDM1NTYgQEAKK2NvbW1p dCAyYzAxM2EzMTdiMTExNGVmNjdjZGJiYzMwODI0YjI4OTA3YjllYTk0CitBdXRob3I6IERhbmll bCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgorRGF0ZTogICBXZWQgTWFyIDMgMTk6MDg6 MjkgMjAyMSArMDEwMAorCisgICAgcHBjNjRsZSBzdXBwb3J0CisKKy0tLSBhL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS9zYW5kYm94L2ZlYXR1cmVzLmduaQorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3NhbmRib3gvZmVhdHVyZXMuZ25pCitAQCAtMTEsNyArMTEsOCBAQCBpbXBvcnQoIi8vYnVp bGQvY29uZmlnL25hY2wvY29uZmlnLmduaSIpCisgdXNlX3NlY2NvbXBfYnBmID0gKGlzX2xpbnV4 IHx8IGlzX2Nocm9tZW9zIHx8IGlzX2FuZHJvaWQpICYmCisgICAgICAgICAgICAgICAgICAgKGN1 cnJlbnRfY3B1ID09ICJ4ODYiIHx8IGN1cnJlbnRfY3B1ID09ICJ4NjQiIHx8CisgICAgICAgICAg ICAgICAgICAgIGN1cnJlbnRfY3B1ID09ICJhcm0iIHx8IGN1cnJlbnRfY3B1ID09ICJhcm02NCIg fHwKKy0gICAgICAgICAgICAgICAgICAgY3VycmVudF9jcHUgPT0gIm1pcHNlbCIgfHwgY3VycmVu dF9jcHUgPT0gIm1pcHM2NGVsIikKKysgICAgICAgICAgICAgICAgICAgY3VycmVudF9jcHUgPT0g Im1pcHNlbCIgfHwgY3VycmVudF9jcHUgPT0gIm1pcHM2NGVsIiB8fAorKyAgICAgICAgICAgICAg ICAgICBjdXJyZW50X2NwdSA9PSAicHBjNjQiKQorIAorIHVzZV9zZWNjb21wX2JwZiA9IHVzZV9z ZWNjb21wX2JwZiB8fCBpc19uYWNsX25vbnNmaQorIAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3NhbmRib3gvbGludXgvQlVJTEQuZ24KKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9z YW5kYm94L2xpbnV4L0JVSUxELmduCitAQCAtNDMzLDYgKzQzMyw4IEBAIGNvbXBvbmVudCgic2Fu ZGJveF9zZXJ2aWNlcyIpIHsKKyAKKyBzb3VyY2Vfc2V0KCJzYW5kYm94X3NlcnZpY2VzX2hlYWRl cnMiKSB7CisgICBzb3VyY2VzID0gWworKyAgICAic3lzdGVtX2hlYWRlcnMvcHBjNjRfbGludXhf c3lzY2FsbHMuaCIsCisrICAgICJzeXN0ZW1faGVhZGVycy9wcGM2NF9saW51eF91Y29udGV4dC5o IiwKKyAgICAgInN5c3RlbV9oZWFkZXJzL2FybTY0X2xpbnV4X3N5c2NhbGxzLmgiLAorICAgICAi c3lzdGVtX2hlYWRlcnMvYXJtX2xpbnV4X3N5c2NhbGxzLmgiLAorICAgICAic3lzdGVtX2hlYWRl cnMvYXJtX2xpbnV4X3Vjb250ZXh0LmgiLAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Nh bmRib3gvbGludXgvYnBmX2RzbC9saW51eF9zeXNjYWxsX3Jhbmdlcy5oCisrKysgYi9zcmMvM3Jk cGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9icGZfZHNsL2xpbnV4X3N5c2NhbGxfcmFuZ2Vz LmgKK0BAIC01Niw2ICs1NiwxMyBAQAorICNkZWZpbmUgTUFYX1BVQkxJQ19TWVNDQUxMIF9fTlJf c3lzY2FsbHMKKyAjZGVmaW5lIE1BWF9TWVNDQUxMIE1BWF9QVUJMSUNfU1lTQ0FMTAorIAorKyNl bGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysKKysjaW5jbHVkZSA8YXNtL3VuaXN0ZC5oPgor KyNkZWZpbmUgTUlOX1NZU0NBTEwgMHUKKysjZGVmaW5lIE1BWF9QVUJMSUNfU1lTQ0FMTCAzODZ1 CisrI2RlZmluZSBNQVhfU1lTQ0FMTCBNQVhfUFVCTElDX1NZU0NBTEwKKysKKyAjZWxzZQorICNl cnJvciAiVW5zdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlIgorICNlbmRpZgorLS0tIGEvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvYnBmX2RzbC9zZWNjb21wX21hY3Jvcy5oCisrKysg Yi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9icGZfZHNsL3NlY2NvbXBfbWFj cm9zLmgKK0BAIC0xNiw2ICsxNiw5IEBACisgI2lmIGRlZmluZWQoX19taXBzX18pCisgLy8gc3lz L3VzZXIuaCBpbiBlZ2xpYmMgbWlzc2VzIHNpemVfdCBkZWZpbml0aW9uCisgI2luY2x1ZGUgPHN0 ZGRlZi5oPgorKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykgJiYgZGVmaW5lZChfX0dMSUJD X18pCisrLy8gTWFudWFsbHkgZGVmaW5lIGdyZWdfdCBvbiBwcGM2NAorK3R5cGVkZWYgdW5zaWdu ZWQgbG9uZyBsb25nIGdyZWdfdDsKKyAjZW5kaWYKKyAjZW5kaWYKKyAKK0BAIC0zNDYsNiArMzQ5 LDU5IEBAIHN0cnVjdCByZWdzX3N0cnVjdCB7CisgI2RlZmluZSBTRUNDT01QX1BUX1BBUk00KF9y ZWdzKSAoX3JlZ3MpLnJlZ3NbM10KKyAjZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTUoX3JlZ3MpIChf cmVncykucmVnc1s0XQorICNkZWZpbmUgU0VDQ09NUF9QVF9QQVJNNihfcmVncykgKF9yZWdzKS5y ZWdzWzVdCisrCisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyNpbmNsdWRlIDxhc20v cHRyYWNlLmg+CisrCisrdHlwZWRlZiBzdHJ1Y3QgcHRfcmVncyByZWdzX3N0cnVjdDsKKysKKysj aWZkZWYgQVJDSF9DUFVfTElUVExFX0VORElBTgorKyNkZWZpbmUgU0VDQ09NUF9BUkNIIEFVRElU X0FSQ0hfUFBDNjRMRQorKyNlbHNlCisrI2RlZmluZSBTRUNDT01QX0FSQ0ggQVVESVRfQVJDSF9Q UEM2NAorKyNlbmRpZgorKworKyNpZmRlZiBfX0dMSUJDX18KKysjZGVmaW5lIFNFQ0NPTVBfUkVH KF9jdHgsIF9yZWcpICgoX2N0eCktPnVjX21jb250ZXh0LnJlZ3MtPmdwcltfcmVnXSkKKysjZWxz ZQorKyNkZWZpbmUgU0VDQ09NUF9SRUcoX2N0eCwgX3JlZykgKCgoc3RydWN0IHB0X3JlZ3MgKiko X2N0eCktPnVjX21jb250ZXh0LnJlZ3MpLT5ncHJbX3JlZ10pCisrI2VuZGlmCisrCisrI2RlZmlu ZSBTRUNDT01QX1JFU1VMVChfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCAzKQorKyNkZWZpbmUgU0VD Q09NUF9TWVNDQUxMKF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgsIDApCisrI2lmZGVmIF9fR0xJQkNf XworKyNkZWZpbmUgU0VDQ09NUF9JUChfY3R4KSAoX2N0eCktPnVjX21jb250ZXh0LnJlZ3MtPm5p cAorKyNlbHNlCisrI2RlZmluZSBTRUNDT01QX0lQKF9jdHgpICgoc3RydWN0IHB0X3JlZ3MgKiko X2N0eCktPnVjX21jb250ZXh0LnJlZ3MpLT5uaXAKKysjZW5kaWYKKysjZGVmaW5lIFNFQ0NPTVBf UEFSTTEoX2N0eCkgU0VDQ09NUF9SRUcoX2N0eCwgMykKKysjZGVmaW5lIFNFQ0NPTVBfUEFSTTIo X2N0eCkgU0VDQ09NUF9SRUcoX2N0eCwgNCkKKysjZGVmaW5lIFNFQ0NPTVBfUEFSTTMoX2N0eCkg U0VDQ09NUF9SRUcoX2N0eCwgNSkKKysjZGVmaW5lIFNFQ0NPTVBfUEFSTTQoX2N0eCkgU0VDQ09N UF9SRUcoX2N0eCwgNikKKysjZGVmaW5lIFNFQ0NPTVBfUEFSTTUoX2N0eCkgU0VDQ09NUF9SRUco X2N0eCwgNykKKysjZGVmaW5lIFNFQ0NPTVBfUEFSTTYoX2N0eCkgU0VDQ09NUF9SRUcoX2N0eCwg OCkKKysKKysjZGVmaW5lIFNFQ0NPTVBfTlJfSURYIChvZmZzZXRvZihzdHJ1Y3QgYXJjaF9zZWNj b21wX2RhdGEsIG5yKSkKKysjZGVmaW5lIFNFQ0NPTVBfQVJDSF9JRFggKG9mZnNldG9mKHN0cnVj dCBhcmNoX3NlY2NvbXBfZGF0YSwgYXJjaCkpCisrI2RlZmluZSBTRUNDT01QX0lQX01TQl9JRFgg XAorKyAgKG9mZnNldG9mKHN0cnVjdCBhcmNoX3NlY2NvbXBfZGF0YSwgaW5zdHJ1Y3Rpb25fcG9p bnRlcikgKyA0KQorKyNkZWZpbmUgU0VDQ09NUF9JUF9MU0JfSURYIFwKKysgIChvZmZzZXRvZihz dHJ1Y3QgYXJjaF9zZWNjb21wX2RhdGEsIGluc3RydWN0aW9uX3BvaW50ZXIpICsgMCkKKysjZGVm aW5lIFNFQ0NPTVBfQVJHX01TQl9JRFgobnIpIFwKKysgIChvZmZzZXRvZihzdHJ1Y3QgYXJjaF9z ZWNjb21wX2RhdGEsIGFyZ3MpICsgOCAqIChucikgKyA0KQorKyNkZWZpbmUgU0VDQ09NUF9BUkdf TFNCX0lEWChucikgXAorKyAgKG9mZnNldG9mKHN0cnVjdCBhcmNoX3NlY2NvbXBfZGF0YSwgYXJn cykgKyA4ICogKG5yKSArIDApCisrCisrI2RlZmluZSBTRUNDT01QX1BUX1JFU1VMVChfcmVncykg KF9yZWdzKS5ncHJbM10KKysjZGVmaW5lIFNFQ0NPTVBfUFRfU1lTQ0FMTChfcmVncykgKF9yZWdz KS5ncHJbMF0KKysjZGVmaW5lIFNFQ0NPTVBfUFRfSVAoX3JlZ3MpIChfcmVncykubmlwCisrI2Rl ZmluZSBTRUNDT01QX1BUX1BBUk0xKF9yZWdzKSAoX3JlZ3MpLmdwclszXQorKyNkZWZpbmUgU0VD Q09NUF9QVF9QQVJNMihfcmVncykgKF9yZWdzKS5ncHJbNF0KKysjZGVmaW5lIFNFQ0NPTVBfUFRf UEFSTTMoX3JlZ3MpIChfcmVncykuZ3ByWzVdCisrI2RlZmluZSBTRUNDT01QX1BUX1BBUk00KF9y ZWdzKSAoX3JlZ3MpLmdwcls2XQorKyNkZWZpbmUgU0VDQ09NUF9QVF9QQVJNNShfcmVncykgKF9y ZWdzKS5ncHJbN10KKysjZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTYoX3JlZ3MpIChfcmVncykuZ3By WzhdCisrCisgI2Vsc2UKKyAjZXJyb3IgVW5zdXBwb3J0ZWQgdGFyZ2V0IHBsYXRmb3JtCisgCist LS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxw ZXJzL2Jhc2VsaW5lX3BvbGljeS5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRi b3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9iYXNlbGluZV9wb2xpY3kuY2MKK0BAIC05MCw3 ICs5MCw3IEBAIGJvb2wgSXNCYXNlbGluZVBvbGljeVdhdGNoZWQoaW50IHN5c25vKQorICAgICAg ICAgIFN5c2NhbGxTZXRzOjpJc051bWEoc3lzbm8pIHx8CisgICAgICAgICAgU3lzY2FsbFNldHM6 OklzUHJjdGwoc3lzbm8pIHx8CisgICAgICAgICAgU3lzY2FsbFNldHM6OklzUHJvY2Vzc0dyb3Vw T3JTZXNzaW9uKHN5c25vKSB8fAorLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCisrI2lmIGRl ZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykgfHwgXAorICAgICAoZGVm aW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkK KyAgICAgICAgICBTeXNjYWxsU2V0czo6SXNTb2NrZXRDYWxsKHN5c25vKSB8fAorICNlbmRpZgor QEAgLTI1OCw3ICsyNTgsNyBAQCBSZXN1bHRFeHByIEV2YWx1YXRlU3lzY2FsbEltcGwoaW50IGZz X2RlCisgICB9CisgCisgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRf XykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAorLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQor KyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICBp ZiAoc3lzbm8gPT0gX19OUl9tbWFwKQorICAgICByZXR1cm4gUmVzdHJpY3RNbWFwRmxhZ3MoKTsK KyAjZW5kaWYKK0BAIC0yNzksNyArMjc5LDcgQEAgUmVzdWx0RXhwciBFdmFsdWF0ZVN5c2NhbGxJ bXBsKGludCBmc19kZQorICAgICByZXR1cm4gUmVzdHJpY3RQcmN0bCgpOworIAorICNpZiBkZWZp bmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX21pcHNfXykg fHwgXAorLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQorKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9f KSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICBpZiAoc3lzbm8gPT0gX19OUl9zb2NrZXRw YWlyKSB7CisgICAgIC8vIE9ubHkgYWxsb3cgQUZfVU5JWCwgUEZfVU5JWC4gQ3Jhc2ggaWYgYW55 dGhpbmcgZWxzZSBpcyBzZWVuLgorICAgICBzdGF0aWNfYXNzZXJ0KEFGX1VOSVggPT0gUEZfVU5J WCwKK0BAIC0zNDMsNyArMzQzLDggQEAgUmVzdWx0RXhwciBFdmFsdWF0ZVN5c2NhbGxJbXBsKGlu dCBmc19kZQorICAgfQorIAorICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCistICAgIChkZWZp bmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQor KyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8z Ml9CSVRTKSkgfHwgXAorKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICBpZiAoU3lzY2Fs bFNldHM6OklzU29ja2V0Q2FsbChzeXNubykpCisgICAgIHJldHVybiBSZXN0cmljdFNvY2tldGNh bGxDb21tYW5kKCk7CisgI2VuZGlmCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJv eC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL2Jhc2VsaW5lX3BvbGljeV91bml0dGVzdC5jYwor KysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVs cGVycy9iYXNlbGluZV9wb2xpY3lfdW5pdHRlc3QuY2MKK0BAIC0zMTcsNyArMzE3LDcgQEAgVEVT VF9CQVNFTElORV9TSUdTWVMoX19OUl9zeXNpbmZvKQorIFRFU1RfQkFTRUxJTkVfU0lHU1lTKF9f TlJfc3lzbG9nKQorIFRFU1RfQkFTRUxJTkVfU0lHU1lTKF9fTlJfdGltZXJfY3JlYXRlKQorIAor LSNpZiAhZGVmaW5lZChfX2FhcmNoNjRfXykKKysjaWYgIWRlZmluZWQoX19hYXJjaDY0X18pICYm ICFkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgVEVTVF9CQVNFTElORV9TSUdTWVMoX19OUl9pbm90 aWZ5X2luaXQpCisgVEVTVF9CQVNFTElORV9TSUdTWVMoX19OUl92c2VydmVyKQorICNlbmRpZgor LS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVs cGVycy9zeXNjYWxsX3BhcmFtZXRlcnNfcmVzdHJpY3Rpb25zLmNjCisrKysgYi9zcmMvM3JkcGFy dHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFy YW1ldGVyc19yZXN0cmljdGlvbnMuY2MKK0BAIC00MCw2ICs0MCw3IEBACisgI2luY2x1ZGUgPHN5 cy9wdHJhY2UuaD4KKyAjaWYgKGRlZmluZWQoT1NfTElOVVgpIHx8IEJVSUxERkxBRyhJU19DSFJP TUVPU19MQUNST1MpKSAmJiBcCisgICAgICFkZWZpbmVkKF9fYXJtX18pICYmICFkZWZpbmVkKF9f YWFyY2g2NF9fKSAmJiAgICAgICAgICAgXAorKyAgICAhZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAm JiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIWRlZmluZWQoUFRSQUNFX0dF VF9USFJFQURfQVJFQSkKKyAvLyBBbHNvIGluY2x1ZGUgYXNtL3B0cmFjZS1hYmkuaCBzaW5jZSBw dHJhY2UuaCBpbiBvbGRlciBsaWJjIChmb3IgaW5zdGFuY2UKKyAvLyB0aGUgb25lIGluIFVidW50 dSAxNi4wNCBMVFMpIGlzIG1pc3NpbmcgUFRSQUNFX0dFVF9USFJFQURfQVJFQS4KK0BAIC00OSw2 ICs1MCwxMSBAQAorICNlbmRpZgorICNlbmRpZiAgLy8gIU9TX05BQ0xfTk9OU0ZJCisgCisrLy8g T24gUFBDNjQsIFRDR0VUUyBpcyBkZWZpbmVkIGluIHRlcm1zIG9mIHN0cnVjdCB0ZXJtaW9zLCBz byB3ZSBtdXN0IGluY2x1ZGUgdGVybWlvcy5oCisrI2lmZGVmIF9fcG93ZXJwYzY0X18KKysjaW5j bHVkZSA8dGVybWlvcy5oPgorKyNlbmRpZgorKworICNpZiBkZWZpbmVkKE9TX0FORFJPSUQpCisg CisgI2lmICFkZWZpbmVkKEZfRFVQRkRfQ0xPRVhFQykKK0BAIC0xMDYsNiArMTEyLDE0IEBAIGlu bGluZSBib29sIElzQXJjaGl0ZWN0dXJlTWlwcygpIHsKKyAjZW5kaWYKKyB9CisgCisraW5saW5l IGJvb2wgSXNBcmNoaXRlY3R1cmVQUEM2NCgpIHsKKysjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQorKyAgcmV0dXJuIHRydWU7CisrI2Vsc2UKKysgIHJldHVybiBmYWxzZTsKKysjZW5kaWYKKyt9 CisrCisgLy8gVWJ1bnR1J3MgdmVyc2lvbiBvZiBnbGliYyBoYXMgYSByYWNlIGNvbmRpdGlvbiBp biBzZW1fcG9zdCB0aGF0IGNhbiBjYXVzZQorIC8vIGl0IHRvIGNhbGwgZnV0ZXgoMikgd2l0aCBi b2d1cyBvcCBhcmd1bWVudHMuIFRvIHdvcmthcm91bmQgdGhpcywgd2UgbmVlZAorIC8vIHRvIGFs bG93IHRob3NlIGZ1dGV4KDIpIGNhbGxzIHRvIGZhaWwgd2l0aCBFSU5WQUwsIGluc3RlYWQgb2Yg Y3Jhc2hpbmcgdGhlCitAQCAtMjcwLDYgKzI4NCw4IEBAIFJlc3VsdEV4cHIgUmVzdHJpY3RGY250 bENvbW1hbmRzKCkgeworICAgdWludDY0X3Qga09MYXJnZUZpbGVGbGFnID0gT19MQVJHRUZJTEU7 CisgICBpZiAoSXNBcmNoaXRlY3R1cmVYODZfNjQoKSB8fCBJc0FyY2hpdGVjdHVyZUkzODYoKSB8 fCBJc0FyY2hpdGVjdHVyZU1pcHMoKSkKKyAgICAga09MYXJnZUZpbGVGbGFnID0gMDEwMDAwMDsK KysgIGVsc2UgaWYgKElzQXJjaGl0ZWN0dXJlUFBDNjQoKSkKKysgICAga09MYXJnZUZpbGVGbGFn ID0gMDIwMDAwMDsKKyAKKyAgIGNvbnN0IEFyZzxpbnQ+IGNtZCgxKTsKKyAgIGNvbnN0IEFyZzxs b25nPiBsb25nX2FyZygyKTsKK0BAIC0yODcsNyArMzAzLDE2IEBAIFJlc3VsdEV4cHIgUmVzdHJp Y3RGY250bENvbW1hbmRzKCkgeworICAgICAgICAgICAgICAgRl9TRVRMS1csCisgICAgICAgICAg ICAgICBGX0dFVExLLAorICAgICAgICAgICAgICAgRl9EVVBGRCwKKy0gICAgICAgICAgICAgIEZf RFVQRkRfQ0xPRVhFQyksCisrICAgICAgICAgICAgICBGX0RVUEZEX0NMT0VYRUMKKysjaWYgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQorKy8vIE9uIFBQQzY0LCBGX1NFVExLLCBGX0dFVExLLCBGX1NF VExLVyBhcmUgZGVmaW5lZCBhcyB0aGUgNjQtYml0IHZhcmlhbnRzCisrLy8gYnV0IGdsaWJjIHdp bGwgc29tZXRpbWVzIHN0aWxsIHVzZSB0aGUgMzItYml0IHZlcnNpb25zLiBBbGxvdyBib3RoLgor KyAgICAgICAgICAgICAgLAorKyAgICAgICAgICAgICAgNSwgLyogRl9HRVRMSyAoMzIpICovCisr ICAgICAgICAgICAgICA2LCAvKiBGX1NFVExLICgzMikgKi8KKysgICAgICAgICAgICAgIDcgIC8q IEZfU0VUTEtXICgzMikgKi8KKysjZW5kaWYKKysJICAgICApLAorICAgICAgICAgICAgICBBbGxv dygpKQorICAgICAgIC5DYXNlKEZfU0VURkwsCisgICAgICAgICAgICAgSWYoKGxvbmdfYXJnICYg fmtBbGxvd2VkTWFzaykgPT0gMCwgQWxsb3coKSkuRWxzZShDcmFzaFNJR1NZUygpKSkKK0BAIC0y OTcsNyArMzIyLDcgQEAgUmVzdWx0RXhwciBSZXN0cmljdEZjbnRsQ29tbWFuZHMoKSB7CisgICAv LyBjbGFuZy1mb3JtYXQgb24KKyB9CisgCistI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmlu ZWQoX19taXBzX18pCisrI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19taXBzX18p IHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyBSZXN1bHRFeHByIFJlc3RyaWN0U29ja2V0Y2Fs bENvbW1hbmQoKSB7CisgICAvLyBVbmZvcnR1bmF0ZWx5LCB3ZSBhcmUgdW5hYmxlIHRvIHJlc3Ry aWN0IHRoZSBmaXJzdCBwYXJhbWV0ZXIgdG8KKyAgIC8vIHNvY2tldHBhaXIoMikuIFdoaWxzdCBp bml0aWFsbHkgc291bmRpbmcgYmFkLCBpdCdzIG5vdGV3b3J0aHkgdGhhdCB2ZXJ5CitAQCAtNDU0 LDcgKzQ3OSw3IEBAIFJlc3VsdEV4cHIgUmVzdHJpY3RQdHJhY2UoKSB7CisgI2VuZGlmCisgICBy ZXR1cm4gU3dpdGNoKHJlcXVlc3QpCisgICAgICAgLkNBU0VTKCgKKy0jaWYgIWRlZmluZWQoX19h YXJjaDY0X18pCisrI2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiAhZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQorICAgICAgICAgICAgICAgICAgUFRSQUNFX0dFVFJFR1MsIFBUUkFDRV9HRVRGUFJF R1MsCisgI2lmIGRlZmluZWQoVFJBQ0VfR0VUX1RIUkVBRF9BUkVBKQorICAgICAgICAgICAgICAg ICAgUFRSQUNFX0dFVF9USFJFQURfQVJFQSwKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9z YW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9wYXJhbWV0ZXJzX3Jlc3Ry aWN0aW9ucy5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNj b21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVyc19yZXN0cmljdGlvbnMuaAorQEAgLTQ5 LDcgKzQ5LDcgQEAgU0FOREJPWF9FWFBPUlQgYnBmX2RzbDo6UmVzdWx0RXhwciBSZXN0cgorIC8v IE9fTk9OQkxPQ0sgfCBPX1NZTkMgfCBPX0xBUkdFRklMRSB8IE9fQ0xPRVhFQyB8IE9fTk9BVElN RS4KKyBTQU5EQk9YX0VYUE9SVCBicGZfZHNsOjpSZXN1bHRFeHByIFJlc3RyaWN0RmNudGxDb21t YW5kcygpOworIAorLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQor KyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBkZWZpbmVkKF9f cG93ZXJwYzY0X18pCisgLy8gUmVzdHJpY3Qgc29ja2V0Y2FsbCgyKSB0byBvbmx5IGFsbG93IHNv Y2tldHBhaXIoMiksIHNlbmQoMiksIHJlY3YoMiksCisgLy8gc2VuZHRvKDIpLCByZWN2ZnJvbSgy KSwgc2h1dGRvd24oMiksIHNlbmRtc2coMikgYW5kIHJlY3Ztc2coMikuCisgU0FOREJPWF9FWFBP UlQgYnBmX2RzbDo6UmVzdWx0RXhwciBSZXN0cmljdFNvY2tldGNhbGxDb21tYW5kKCk7CistLS0g YS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJz L3N5c2NhbGxfc2V0cy5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGlu dXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuY2MKK0BAIC0yOCw3ICsyOCw3IEBA IGJvb2wgU3lzY2FsbFNldHM6OklzS2lsbChpbnQgc3lzbm8pIHsKKyBib29sIFN5c2NhbGxTZXRz OjpJc0FsbG93ZWRHZXR0aW1lKGludCBzeXNubykgeworICAgc3dpdGNoIChzeXNubykgeworICAg ICBjYXNlIF9fTlJfZ2V0dGltZW9mZGF5OgorLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZp bmVkKF9feDg2XzY0X18pIHx8IFwKKysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChf X3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pIHx8IFwKKyAgICAgKGRlZmluZWQo QVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCisgICAg IGNhc2UgX19OUl90aW1lOgorICNlbmRpZgorQEAgLTUxLDEyICs1MSwxMiBAQCBib29sIFN5c2Nh bGxTZXRzOjpJc0FsbG93ZWRHZXR0aW1lKGludCBzCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gZmlsdGVyZWQgYnkgUmVzdHJpY3RDbG9ja0lEKCkuCisgICAgIGNhc2Ug X19OUl9jbG9ja19uYW5vc2xlZXBfdGltZTY0OiAgLy8gUGFyYW1ldGVycyBmaWx0ZXJlZCBieSBS ZXN0cmljdENsb2NrSUQoKS4KKyAjZW5kaWYKKy0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAor KyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pIHx8IFwKKyAg ICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJf QklUUykpCisgICAgIGNhc2UgX19OUl9mdGltZTogIC8vIE9ic29sZXRlLgorICNlbmRpZgorICAg ICBjYXNlIF9fTlJfc2V0dGltZW9mZGF5OiAgLy8gUHJpdmlsZWdlZC4KKy0jaWYgZGVmaW5lZChf X2kzODZfXykgfHwgXAorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fcG93ZXJw YzY0X18pIHx8IFwKKyAgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmlu ZWQoQVJDSF9DUFVfMzJfQklUUykpCisgICAgIGNhc2UgX19OUl9zdGltZToKKyAjZW5kaWYKK0BA IC0xMzUsNyArMTM1LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNGaWxlU3lzdGVtKGludCBzeXNu bworICAgICBjYXNlIF9fTlJfZmFjY2Vzc2F0OiAgLy8gRVBFUk0gbm90IGEgdmFsaWQgZXJybm8u CisgICAgIGNhc2UgX19OUl9mY2htb2RhdDoKKyAgICAgY2FzZSBfX05SX2ZjaG93bmF0OiAgLy8g U2hvdWxkIGJlIGNhbGxlZCBjaG93bmF0ID8KKy0jaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBk ZWZpbmVkKF9fYWFyY2g2NF9fKQorKyNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQo X19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX25l d2ZzdGF0YXQ6ICAvLyBmc3RhdGF0KCkuIEVQRVJNIG5vdCBhIHZhbGlkIGVycm5vLgorICNlbGlm IGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAorICAgICAoZGVmaW5l ZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKK0BA IC0xNTQsNyArMTU0LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNGaWxlU3lzdGVtKGludCBzeXNu bworICAgICBjYXNlIF9fTlJfbWVtZmRfY3JlYXRlOgorICAgICBjYXNlIF9fTlJfbWtkaXJhdDoK KyAgICAgY2FzZSBfX05SX21rbm9kYXQ6CistI2lmIGRlZmluZWQoX19pMzg2X18pCisrI2lmIGRl ZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05S X29sZGxzdGF0OgorICAgICBjYXNlIF9fTlJfb2xkc3RhdDoKKyAjZW5kaWYKK0BAIC0xNjcsNyAr MTY3LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNGaWxlU3lzdGVtKGludCBzeXNubworICAgICBj YXNlIF9fTlJfc3RhdDY0OgorICNlbmRpZgorICAgICBjYXNlIF9fTlJfc3RhdGZzOiAgLy8gRVBF Uk0gbm90IGEgdmFsaWQgZXJybm8uCistI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQo X19hcm1fXykgfHwgXAorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18p IHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykgfHwgXAorICAgICAoZGVmaW5lZChBUkNIX0NQVV9N SVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKKyAgICAgY2FzZSBfX05S X3N0YXRmczY0OgorICNlbmRpZgorQEAgLTE3OSw3ICsxNzksOCBAQCBib29sIFN5c2NhbGxTZXRz OjpJc0ZpbGVTeXN0ZW0oaW50IHN5c25vCisgICAgIGNhc2UgX19OUl90cnVuY2F0ZTY0OgorICNl bmRpZgorICAgICBjYXNlIF9fTlJfdW5saW5rYXQ6CistI2lmIGRlZmluZWQoX19pMzg2X18pIHx8 IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykKKysjaWYgZGVmaW5lZChf X2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBc CisrICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX3V0aW1lOgorICNl bmRpZgorICAgICBjYXNlIF9fTlJfdXRpbWVuc2F0OiAgLy8gTmV3LgorQEAgLTIwNCw3ICsyMDUs OCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRGaWxlU3lzdGVtQWNjCisgI2VuZGlmCisg ICAgICAgcmV0dXJuIHRydWU7CisgLy8gVE9ETyhqbG4pOiB0aGVzZSBzaG91bGQgYmUgZGVuaWVk IGdyYWNlZnVsbHkgYXMgd2VsbCAobW92ZWQgYmVsb3cpLgorLSNpZiBkZWZpbmVkKF9faTM4Nl9f KSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pCisrI2lmIGRlZmlu ZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykg fHwgXAorKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl9mYWR2aXNl NjQ6ICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KKyAjZW5kaWYKKyAjaWYgZGVmaW5lZChf X2kzODZfXykKK0BAIC0yMTYsMTIgKzIxOCwxMiBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93 ZWRGaWxlU3lzdGVtQWNjCisgICAgIGNhc2UgX19OUl9mZGF0YXN5bmM6ICAvLyBFUEVSTSBub3Qg YSB2YWxpZCBlcnJuby4KKyAgICAgY2FzZSBfX05SX2Zsb2NrOiAgICAgIC8vIEVQRVJNIG5vdCBh IHZhbGlkIGVycm5vLgorICAgICBjYXNlIF9fTlJfZnN0YXRmczogICAgLy8gR2l2ZSBpbmZvcm1h dGlvbiBhYm91dCB0aGUgd2hvbGUgZmlsZXN5c3RlbS4KKy0jaWYgZGVmaW5lZChfX2kzODZfXykg fHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCisrI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmlu ZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSB8fCBcCisgICAgIChkZWZpbmVk KEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQorICAg ICBjYXNlIF9fTlJfZnN0YXRmczY0OgorICNlbmRpZgorICAgICBjYXNlIF9fTlJfZnN5bmM6ICAv LyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KKy0jaWYgZGVmaW5lZChfX2kzODZfXykKKysjaWYg ZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9f TlJfb2xkZnN0YXQ6CisgI2VuZGlmCisgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQo X194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAorQEAgLTIyOSw2ICsyMzEsOCBA QCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRGaWxlU3lzdGVtQWNjCisgICAgIGNhc2UgX19O Ul9zeW5jX2ZpbGVfcmFuZ2U6ICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KKyAjZWxpZiBk ZWZpbmVkKF9fYXJtX18pCisgICAgIGNhc2UgX19OUl9hcm1fc3luY19maWxlX3JhbmdlOiAgLy8g RVBFUk0gbm90IGEgdmFsaWQgZXJybm8uCisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQor KyAgICBjYXNlIF9fTlJfc3luY19maWxlX3JhbmdlMjogLy8gRVBFUk0gbm90IGEgdmFsaWQgZXJy bm8uCisgI2VuZGlmCisgICAgIGRlZmF1bHQ6CisgICAgICAgcmV0dXJuIGZhbHNlOworQEAgLTI0 OCw3ICsyNTIsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0RlbmllZEZpbGVTeXN0ZW1BY2NlCisg ICAgIGNhc2UgX19OUl9nZXRkZW50czogICAgLy8gRVBFUk0gbm90IGEgdmFsaWQgZXJybm8uCisg I2VuZGlmCisgICAgIGNhc2UgX19OUl9nZXRkZW50czY0OiAgLy8gRVBFUk0gbm90IGEgdmFsaWQg ZXJybm8uCistI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKKysjaWYgZGVmaW5lZChfX2kzODZf XykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSB8fCBcCisgICAgIChkZWZpbmVkKEFSQ0hfQ1BV X01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQorICAgICBjYXNlIF9f TlJfcmVhZGRpcjoKKyAjZW5kaWYKK0BAIC0yOTAsNyArMjk0LDcgQEAgYm9vbCBTeXNjYWxsU2V0 czo6SXNHZXRTaW1wbGVJZChpbnQgc3lzbgorIGJvb2wgU3lzY2FsbFNldHM6OklzUHJvY2Vzc1By aXZpbGVnZUNoYW5nZShpbnQgc3lzbm8pIHsKKyAgIHN3aXRjaCAoc3lzbm8pIHsKKyAgICAgY2Fz ZSBfX05SX2NhcHNldDoKKy0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82 NF9fKQorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRl ZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX2lvcGVybTogIC8vIEludGVsIHBy aXZpbGVnZS4KKyAgICAgY2FzZSBfX05SX2lvcGw6ICAgIC8vIEludGVsIHByaXZpbGVnZS4KKyAj ZW5kaWYKK0BAIC0zNDAsNyArMzQ0LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkU2ln bmFsSGFuZGxpbgorICAgICBjYXNlIF9fTlJfcnRfc2lncHJvY21hc2s6CisgICAgIGNhc2UgX19O Ul9ydF9zaWdyZXR1cm46CisgICAgIGNhc2UgX19OUl9ydF9zaWd0aW1lZHdhaXQ6CistI2lmIGRl ZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAorKyNpZiBkZWZpbmVkKF9f aTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykgfHwg XAorICAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQ VV8zMl9CSVRTKSkKKyAgICAgY2FzZSBfX05SX3J0X3NpZ3RpbWVkd2FpdF90aW1lNjQ6CisgICAg IGNhc2UgX19OUl9zaWdhY3Rpb246CitAQCAtMzU3LDcgKzM2MSw3IEBAIGJvb2wgU3lzY2FsbFNl dHM6OklzQWxsb3dlZFNpZ25hbEhhbmRsaW4KKyAgICAgY2FzZSBfX05SX3NpZ25hbGZkOgorICNl bmRpZgorICAgICBjYXNlIF9fTlJfc2lnbmFsZmQ0OgorLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8 fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKKysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5l ZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pIHx8IFwKKyAgICAgKGRlZmluZWQo QVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCisgICAg IGNhc2UgX19OUl9zaWdwZW5kaW5nOgorICAgICBjYXNlIF9fTlJfc2lnc3VzcGVuZDoKK0BAIC0z ODIsNyArMzg2LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkT3BlcmF0aW9uT25GZAor ICNlbmRpZgorICAgICBjYXNlIF9fTlJfZHVwMzoKKyAjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8 fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKKy0gICAgZGVmaW5l ZChfX2FhcmNoNjRfXykKKysgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bv d2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfc2h1dGRvd246CisgI2VuZGlmCisgICAgICAgcmV0 dXJuIHRydWU7CitAQCAtNDE2LDcgKzQyMCw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dl ZFByb2Nlc3NTdGFydE8KKyAgICAgY2FzZSBfX05SX21lbWJhcnJpZXI6CisgICAgIGNhc2UgX19O Ul93YWl0NDoKKyAgICAgY2FzZSBfX05SX3dhaXRpZDoKKy0jaWYgZGVmaW5lZChfX2kzODZfXykK KysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBj YXNlIF9fTlJfd2FpdHBpZDoKKyAjZW5kaWYKKyAjaWYgIWRlZmluZWQoX19HTElCQ19fKQorQEAg LTQzOCw3ICs0NDIsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRQcm9jZXNzU3RhcnRP CisgICAgIGNhc2UgX19OUl9zZXRfdGlkX2FkZHJlc3M6CisgI2VuZGlmCisgICAgIGNhc2UgX19O Ul91bnNoYXJlOgorLSNpZiAhZGVmaW5lZChfX21pcHNfXykgJiYgIWRlZmluZWQoX19hYXJjaDY0 X18pCisrI2lmICFkZWZpbmVkKF9fbWlwc19fKSAmJiAhZGVmaW5lZChfX2FhcmNoNjRfXykgfHwg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfdmZvcms6CisgI2VuZGlmCisg ICAgIGRlZmF1bHQ6CitAQCAtNDkxLDcgKzQ5NSw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxs b3dlZEdldE9yTW9kaWZ5U28KKyAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgZGVmYXVsdDoKKyAj aWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19t aXBzX18pIHx8IFwKKy0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKKysgICAgZGVmaW5lZChfX2Fh cmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfc29ja2V0 cGFpcjogIC8vIFdlIHdpbGwgd2FudCB0byBpbnNwZWN0IGl0cyBhcmd1bWVudC4KKyAjZW5kaWYK KyAgICAgICByZXR1cm4gZmFsc2U7CitAQCAtNTAxLDcgKzUwNSw3IEBAIGJvb2wgU3lzY2FsbFNl dHM6OklzQWxsb3dlZEdldE9yTW9kaWZ5U28KKyBib29sIFN5c2NhbGxTZXRzOjpJc0RlbmllZEdl dE9yTW9kaWZ5U29ja2V0KGludCBzeXNubykgeworICAgc3dpdGNoIChzeXNubykgeworICNpZiBk ZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX21pcHNf XykgfHwgXAorLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQorKyAgICBkZWZpbmVkKF9fYWFyY2g2 NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl9hY2NlcHQ6Cisg ICAgIGNhc2UgX19OUl9hY2NlcHQ0OgorICAgICBjYXNlIF9fTlJfYmluZDoKK0BAIC01MTUsNyAr NTE5LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNEZW5pZWRHZXRPck1vZGlmeVNvYworICAgfQor IH0KKyAKKy0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAorKyNpZiBkZWZpbmVkKF9faTM4Nl9f KSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pIHx8IFwKKyAgICAgKGRlZmluZWQoQVJDSF9DUFVf TUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCisgLy8gQmlnIG11bHRp cGxleGluZyBzeXN0ZW0gY2FsbCBmb3Igc29ja2V0cy4KKyBib29sIFN5c2NhbGxTZXRzOjpJc1Nv Y2tldENhbGwoaW50IHN5c25vKSB7CitAQCAtNTMwLDcgKzUzNCw4IEBAIGJvb2wgU3lzY2FsbFNl dHM6OklzU29ja2V0Q2FsbChpbnQgc3lzbm8KKyB9CisgI2VuZGlmCisgCistI2lmIGRlZmluZWQo X194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQorKyNp ZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX21p cHNfXykgfHwgXAorKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgYm9vbCBTeXNjYWxsU2V0 czo6SXNOZXR3b3JrU29ja2V0SW5mb3JtYXRpb24oaW50IHN5c25vKSB7CisgICBzd2l0Y2ggKHN5 c25vKSB7CisgICAgIGNhc2UgX19OUl9nZXRwZWVybmFtZToKK0BAIC01NTgsNyArNTYzLDcgQEAg Ym9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkQWRkcmVzc1NwYWNlQQorICAgICBjYXNlIF9fTlJf bWluY29yZToKKyAgICAgY2FzZSBfX05SX21sb2NrYWxsOgorICNpZiBkZWZpbmVkKF9faTM4Nl9f KSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKKy0gICAg ZGVmaW5lZChfX2FhcmNoNjRfXykKKysgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfbW1hcDoKKyAjZW5kaWYKKyAjaWYgZGVm aW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCitAQCAtNTg5LDcgKzU5NCw3 IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEFkZHJlc3NTcGFjZUEKKyBib29sIFN5c2Nh bGxTZXRzOjpJc0FsbG93ZWRHZW5lcmFsSW8oaW50IHN5c25vKSB7CisgICBzd2l0Y2ggKHN5c25v KSB7CisgICAgIGNhc2UgX19OUl9sc2VlazoKKy0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVm aW5lZChfX2FybV9fKSB8fCBcCisrI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19h cm1fXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSB8fCBcCisgICAgIChkZWZpbmVkKEFSQ0hf Q1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQorICAgICBjYXNl IF9fTlJfX2xsc2VlazoKKyAjZW5kaWYKK0BAIC02MDksMjcgKzYxNCwyNyBAQCBib29sIFN5c2Nh bGxTZXRzOjpJc0FsbG93ZWRHZW5lcmFsSW8oaW50CisgICAgIGNhc2UgX19OUl9yZWFkOgorICAg ICBjYXNlIF9fTlJfcmVhZHY6CisgICAgIGNhc2UgX19OUl9wcmVhZDY0OgorLSNpZiBkZWZpbmVk KF9fYXJtX18pIHx8IFwKKysjaWYgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fcG93ZXJw YzY0X18pIHx8IFwKKyAgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmlu ZWQoQVJDSF9DUFVfMzJfQklUUykpCisgICAgIGNhc2UgX19OUl9yZWN2OgorICNlbmRpZgorICNp ZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX21p cHNfXykgfHwgXAorLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQorKyAgICBkZWZpbmVkKF9fYWFy Y2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl9yZWN2ZnJv bTogIC8vIENvdWxkIHNwZWNpZnkgc291cmNlLgorICAgICBjYXNlIF9fTlJfcmVjdm1zZzogICAv LyBDb3VsZCBzcGVjaWZ5IHNvdXJjZS4KKyAjZW5kaWYKKy0jaWYgZGVmaW5lZChfX2kzODZfXykg fHwgZGVmaW5lZChfX3g4Nl82NF9fKQorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVk KF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX3Nl bGVjdDoKKyAjZW5kaWYKKy0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9f KSB8fCBkZWZpbmVkKF9fbWlwc19fKQorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVk KF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykK KyAgICAgY2FzZSBfX05SX19uZXdzZWxlY3Q6CisgI2VuZGlmCistI2lmIGRlZmluZWQoX19hcm1f XykgfHwgXAorKyNpZiBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykg fHwgXAorICAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNI X0NQVV8zMl9CSVRTKSkKKyAgICAgY2FzZSBfX05SX3NlbmQ6CisgI2VuZGlmCisgI2lmIGRlZmlu ZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8 fCBcCistICAgIGRlZmluZWQoX19hYXJjaDY0X18pCisrICAgIGRlZmluZWQoX19hYXJjaDY0X18p IHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX3NlbmRtc2c6ICAvLyBD b3VsZCBzcGVjaWZ5IGRlc3RpbmF0aW9uLgorICAgICBjYXNlIF9fTlJfc2VuZHRvOiAgIC8vIENv dWxkIHNwZWNpZnkgZGVzdGluYXRpb24uCisgI2VuZGlmCitAQCAtNjg0LDcgKzY4OSw3IEBAIGJv b2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEJhc2ljU2NoZWR1bGUKKyAgICAgY2FzZSBfX05SX25h bm9zbGVlcDoKKyAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgY2FzZSBfX05SX2dldHByaW9yaXR5 OgorLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKKysjaWYg ZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fcG93ZXJw YzY0X18pIHx8IFwKKyAgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmlu ZWQoQVJDSF9DUFVfMzJfQklUUykpCisgICAgIGNhc2UgX19OUl9uaWNlOgorICNlbmRpZgorQEAg LTY5Niw3ICs3MDEsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRCYXNpY1NjaGVkdWxl CisgCisgYm9vbCBTeXNjYWxsU2V0czo6SXNBZG1pbk9wZXJhdGlvbihpbnQgc3lzbm8pIHsKKyAg IHN3aXRjaCAoc3lzbm8pIHsKKy0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2Fy bV9fKSB8fCBcCisrI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKSB8fCBcCisgICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNf RkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQorICAgICBjYXNlIF9fTlJfYmRm bHVzaDoKKyAjZW5kaWYKK0BAIC03MTMsNyArNzE4LDggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNB ZG1pbk9wZXJhdGlvbihpbnQgcworIAorIGJvb2wgU3lzY2FsbFNldHM6OklzS2VybmVsTW9kdWxl KGludCBzeXNubykgeworICAgc3dpdGNoIChzeXNubykgeworLSNpZiBkZWZpbmVkKF9faTM4Nl9f KSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pCisrI2lmIGRlZmlu ZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykg fHwgXAorKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl9jcmVhdGVf bW9kdWxlOgorICAgICBjYXNlIF9fTlJfZ2V0X2tlcm5lbF9zeW1zOiAgLy8gU2hvdWxkIEVOT1NZ Uy4KKyAgICAgY2FzZSBfX05SX3F1ZXJ5X21vZHVsZToKK0BAIC03NDUsNyArNzUxLDcgQEAgYm9v bCBTeXNjYWxsU2V0czo6SXNGc0NvbnRyb2woaW50IHN5c25vKQorICAgICBjYXNlIF9fTlJfcXVv dGFjdGw6CisgICAgIGNhc2UgX19OUl9zd2Fwb2ZmOgorICAgICBjYXNlIF9fTlJfc3dhcG9uOgor LSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCisrI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRl ZmluZWQoX19wb3dlcnBjNjRfXykgfHwgXAorICAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZB TUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKKyAgICAgY2FzZSBfX05SX3Vtb3Vu dDoKKyAjZW5kaWYKK0BAIC03NjIsNyArNzY4LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNOdW1h KGludCBzeXNubykgeworICAgICBjYXNlIF9fTlJfZ2V0Y3B1OgorICAgICBjYXNlIF9fTlJfbWJp bmQ6CisgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVm aW5lZChfX21pcHNfXykgfHwgXAorLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQorKyAgICBkZWZp bmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19O Ul9taWdyYXRlX3BhZ2VzOgorICNlbmRpZgorICAgICBjYXNlIF9fTlJfbW92ZV9wYWdlczoKK0BA IC03OTcsMTMgKzgwMywxMyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0dsb2JhbFByb2Nlc3NFbnZp cm9uCisgICBzd2l0Y2ggKHN5c25vKSB7CisgICAgIGNhc2UgX19OUl9hY2N0OiAgLy8gUHJpdmls ZWdlZC4KKyAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBk ZWZpbmVkKF9fbWlwc19fKSB8fCBcCistICAgIGRlZmluZWQoX19hYXJjaDY0X18pCisrICAgIGRl ZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBf X05SX2dldHJsaW1pdDoKKyAjZW5kaWYKKy0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5l ZChfX2FybV9fKQorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8 IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX3VnZXRybGltaXQ6CisgI2Vu ZGlmCistI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKKysjaWYgZGVmaW5lZChfX2kzODZfXykg fHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSB8fCBcCisgICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01J UFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQorICAgICBjYXNlIF9fTlJf dWxpbWl0OgorICNlbmRpZgorQEAgLTgzOCw3ICs4NDQsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJ c0dsb2JhbFN5c3RlbVN0YXR1cyhpCisgI2VuZGlmCisgICAgIGNhc2UgX19OUl9zeXNpbmZvOgor ICAgICBjYXNlIF9fTlJfdW5hbWU6CistI2lmIGRlZmluZWQoX19pMzg2X18pCisrI2lmIGRlZmlu ZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX29s ZHVuYW1lOgorICAgICBjYXNlIF9fTlJfb2xkb2xkdW5hbWU6CisgI2VuZGlmCitAQCAtOTA0LDgg KzkxMCwxNiBAQCBib29sIFN5c2NhbGxTZXRzOjpJc1N5c3RlbVZTZW1hcGhvcmVzKGluCisgfQor ICNlbmRpZgorIAorKy8qIHNoaXR0eSBoYWNrIGFyb3VuZCBWb2lkJ3MgNC4xOSBrZXJuZWwgaGVh ZGVycyBtaXNzaW5nIHRob3NlIG51bWJlcnMgKi8KKysjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9f KSAmJiAhZGVmaW5lZChfX05SX3NobWdldCkKKysjZGVmaW5lIF9fTlJfc2htZ2V0IDM5NQorKyNk ZWZpbmUgX19OUl9zaG1jdGwgMzk2CisrI2RlZmluZSBfX05SX3NobWF0IDM5NworKyNkZWZpbmUg X19OUl9zaG1kdCAzOTgKKysjZW5kaWYKKysKKyAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVm aW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKKy0gICAgZGVmaW5lZChf X2FhcmNoNjRfXykgfHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK KysgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSB8fCBc CisgICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BV XzY0X0JJVFMpKQorIC8vIFRoZXNlIGdpdmUgYSBsb3Qgb2YgYW1iaWVudCBhdXRob3JpdHkgYW5k IGJ5cGFzcyB0aGUgc2V0dWlkIHNhbmRib3guCisgYm9vbCBTeXNjYWxsU2V0czo6SXNTeXN0ZW1W U2hhcmVkTWVtb3J5KGludCBzeXNubykgeworQEAgLTkzNiw3ICs5NTAsNyBAQCBib29sIFN5c2Nh bGxTZXRzOjpJc1N5c3RlbVZNZXNzYWdlUXVldWUoCisgfQorICNlbmRpZgorIAorLSNpZiBkZWZp bmVkKF9faTM4Nl9fKSB8fCBcCisrI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19w b3dlcnBjNjRfXykgfHwgXAorICAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYg ZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKKyAvLyBCaWcgc3lzdGVtIFYgbXVsdGlwbGV4aW5n IHN5c3RlbSBjYWxsLgorIGJvb2wgU3lzY2FsbFNldHM6OklzU3lzdGVtVklwYyhpbnQgc3lzbm8p IHsKK0BAIC05NTYsNyArOTcwLDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbnlTeXN0ZW1WKGlu dCBzeXNubworICAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChB UkNIX0NQVV82NF9CSVRTKSkKKyAgIHJldHVybiBJc1N5c3RlbVZNZXNzYWdlUXVldWUoc3lzbm8p IHx8IElzU3lzdGVtVlNlbWFwaG9yZXMoc3lzbm8pIHx8CisgICAgICAgICAgSXNTeXN0ZW1WU2hh cmVkTWVtb3J5KHN5c25vKTsKKy0jZWxpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCisrI2VsaWYg ZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSB8fCBcCisgICAgIChk ZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMp KQorICAgcmV0dXJuIElzU3lzdGVtVklwYyhzeXNubyk7CisgI2VuZGlmCitAQCAtMTAxNCw3ICsx MDI4LDggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNGYU5vdGlmeShpbnQgc3lzbm8pCisgYm9vbCBT eXNjYWxsU2V0czo6SXNUaW1lcihpbnQgc3lzbm8pIHsKKyAgIHN3aXRjaCAoc3lzbm8pIHsKKyAg ICAgY2FzZSBfX05SX2dldGl0aW1lcjoKKy0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5l ZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQorKyNpZiBkZWZpbmVkKF9faTM4Nl9f KSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKKysgICAg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfYWxhcm06CisgI2VuZGlmCisg ICAgIGNhc2UgX19OUl9zZXRpdGltZXI6CitAQCAtMTA5NiwxNyArMTExMSwyMCBAQCBib29sIFN5 c2NhbGxTZXRzOjpJc01pc2MoaW50IHN5c25vKSB7CisgICAgIGNhc2UgX19OUl9zeW5jZnM6Cisg ICAgIGNhc2UgX19OUl92aGFuZ3VwOgorIC8vIFRoZSBzeXN0ZW0gY2FsbHMgYmVsb3cgYXJlIG5v dCBpbXBsZW1lbnRlZC4KKy0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82 NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZp bmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKKysgICAgZGVmaW5lZChf X3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfYWZzX3N5c2NhbGw6CisgI2VuZGlmCisgI2lm IGRlZmluZWQoX19pMzg2X18pIHx8IFwKKy0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1J TFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCisrICAgIChkZWZpbmVkKEFSQ0hfQ1BV X01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCisrICAgIGRl ZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX2JyZWFrOgorICNlbmRpZgorLSNp ZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19t aXBzX18pCisrI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwg ZGVmaW5lZChfX21pcHNfXykgfHwgXAorKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAg IGNhc2UgX19OUl9nZXRwbXNnOgorICNlbmRpZgorLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBc CisrI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykgfHwgXAor ICAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8z Ml9CSVRTKSkKKyAgICAgY2FzZSBfX05SX2d0dHk6CisgICAgIGNhc2UgX19OUl9pZGxlOgorQEAg LTExMTUsMjAgKzExMzMsMjEgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNNaXNjKGludCBzeXNubykg eworICAgICBjYXNlIF9fTlJfcHJvZjoKKyAgICAgY2FzZSBfX05SX3Byb2ZpbDoKKyAjZW5kaWYK Ky0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVk KF9fbWlwc19fKQorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18p IHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKKysgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQor ICAgICBjYXNlIF9fTlJfcHV0cG1zZzoKKyAjZW5kaWYKKyAjaWYgZGVmaW5lZChfX3g4Nl82NF9f KQorICAgICBjYXNlIF9fTlJfc2VjdXJpdHk6CisgI2VuZGlmCistI2lmIGRlZmluZWQoX19pMzg2 X18pIHx8IFwKKysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9f KSB8fCBcCisgICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFS Q0hfQ1BVXzMyX0JJVFMpKQorICAgICBjYXNlIF9fTlJfc3R0eToKKyAjZW5kaWYKKy0jaWYgZGVm aW5lZChfX3g4Nl82NF9fKQorKyNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19w b3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX3R1eGNhbGw6CisgI2VuZGlmCistI2lmICFkZWZp bmVkKF9fYWFyY2g2NF9fKQorKyNpZiAhZGVmaW5lZChfX2FhcmNoNjRfXykgJiYgIWRlZmluZWQo X19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX3ZzZXJ2ZXI6CisgI2VuZGlmCisgICAgICAg cmV0dXJuIHRydWU7CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9z ZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hy b21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5oCitA QCAtNDMsMTMgKzQzLDE0IEBAIGNsYXNzIFNBTkRCT1hfRVhQT1JUIFN5c2NhbGxTZXRzIHsKKyAg IHN0YXRpYyBib29sIElzRGVuaWVkR2V0T3JNb2RpZnlTb2NrZXQoaW50IHN5c25vKTsKKyAKKyAj aWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAorLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZB TUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKKysgICAgKGRlZmluZWQoQVJDSF9D UFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKKysgICAg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgLy8gQmlnIG11bHRpcGxleGluZyBzeXN0ZW0gY2Fs bCBmb3Igc29ja2V0cy4KKyAgIHN0YXRpYyBib29sIElzU29ja2V0Q2FsbChpbnQgc3lzbm8pOwor ICNlbmRpZgorIAorICNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykg fHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAorLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQorKyAg ICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICBzdGF0 aWMgYm9vbCBJc05ldHdvcmtTb2NrZXRJbmZvcm1hdGlvbihpbnQgc3lzbm8pOworICNlbmRpZgor IAorQEAgLTc3LDcgKzc4LDcgQEAgY2xhc3MgU0FOREJPWF9FWFBPUlQgU3lzY2FsbFNldHMgewor ICAgc3RhdGljIGJvb2wgSXNTeXN0ZW1WU2VtYXBob3JlcyhpbnQgc3lzbm8pOworICNlbmRpZgor ICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQo X19hcm1fXykgfHwgXAorLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8 fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pIHx8IFwKKyAgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQ U19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfNjRfQklUUykpCisgICAvLyBUaGVzZSBnaXZl IGEgbG90IG9mIGFtYmllbnQgYXV0aG9yaXR5IGFuZCBieXBhc3MgdGhlIHNldHVpZCBzYW5kYm94 LgorICAgc3RhdGljIGJvb2wgSXNTeXN0ZW1WU2hhcmVkTWVtb3J5KGludCBzeXNubyk7CitAQCAt ODksNyArOTAsOCBAQCBjbGFzcyBTQU5EQk9YX0VYUE9SVCBTeXNjYWxsU2V0cyB7CisgI2VuZGlm CisgCisgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKKy0gICAgKGRlZmluZWQoQVJDSF9DUFVf TUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCisrICAgIChkZWZpbmVk KEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBc CisrICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgIC8vIEJpZyBzeXN0ZW0gViBtdWx0aXBs ZXhpbmcgc3lzdGVtIGNhbGwuCisgICBzdGF0aWMgYm9vbCBJc1N5c3RlbVZJcGMoaW50IHN5c25v KTsKKyAjZW5kaWYKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3Nl Y2NvbXAtYnBmL3N5c2NhbGwuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94 L2xpbnV4L3NlY2NvbXAtYnBmL3N5c2NhbGwuY2MKK0BAIC0xOCw3ICsxOCw3IEBAIG5hbWVzcGFj ZSBzYW5kYm94IHsKKyBuYW1lc3BhY2UgeworIAorICNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1g4Nl9G QU1JTFkpIHx8IGRlZmluZWQoQVJDSF9DUFVfQVJNX0ZBTUlMWSkgfHwgXAorLSAgICBkZWZpbmVk KEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQorKyAgICBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZ KSB8fCBkZWZpbmVkIChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisgLy8gTnVtYmVyIHRoYXQncyBu b3QgY3VycmVudGx5IHVzZWQgYnkgYW55IExpbnV4IGtlcm5lbCBBQklzLgorIGNvbnN0IGludCBr SW52YWxpZFN5c2NhbGxOdW1iZXIgPSAweDM1MWQzOworICNlbHNlCitAQCAtMzEyLDEwICszMTIs NTQgQEAgYXNtKC8vIFdlIG5lZWQgdG8gYmUgYWJsZSB0byB0ZWxsIHRoZSBrZQorICAgICAiMjpy ZXRcbiIKKyAgICAgIi5jZmlfZW5kcHJvY1xuIgorICAgICAiLnNpemUgU3lzY2FsbEFzbSwgLi1T eXNjYWxsQXNtXG4iCisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgICAiLnRleHRc biIKKysgICAgIi5hbGlnbiA0XG4iCisrICAgICIudHlwZSBTeXNjYWxsQXNtIEBmdW5jdGlvblxu IgorKyAgICAiU3lzY2FsbEFzbTpcbiIKKysgICAgIi5jZmlfc3RhcnRwcm9jXG4iCisrCisrICAg IC8vIENoZWNrIGlmIHIzIGlzIG5lZ2F0aXZlCisrICAgICJjbXBkaSAzLCAwXG4iCisrICAgICJi Z3QgMmZcbiIKKysKKysgICAgLy8gTG9hZCBhZGRyZXNzIG9mIDNmIGludG8gcjMgYW5kIHJldHVy bgorKyAgICAibWZsciAxMFxuIgorKyAgICAiYmwgMWZcbiIKKysgICAgIjE6IG1mbHIgM1xuIgor KyAgICAibXRsciAxMFxuIgorKyAgICAiYWRkaSAzLCAzLCA0KjEzXG4iCisrICAgICJibHJcbiIK KysKKysgICAgLy8gTG9hZCBhcmd1bWVudHMgZnJvbSBhcnJheSBpbnRvIHIzLTgKKysgICAgLy8g c2F2ZSBwYXJhbSAzIGluIHIxMAorKyAgICAiMjpcbiIKKysgICAgIm1yIDAsIDNcbiIKKysgICAg ImxkIDMsIDAoNClcbiIKKysgICAgImxkIDUsIDE2KDQpXG4iCisrICAgICJsZCA2LCAyNCg0KVxu IgorKyAgICAibGQgNywgMzIoNClcbiIKKysgICAgImxkIDgsIDQwKDQpXG4iCisrICAgICJsZCA0 LCA4KDQpXG4iCisrICAgICJsaSA5LCAwXG4iCisrCisrICAgIC8vIEVudGVyIGtlcm5lbAorKyAg ICAic2NcbiIKKysKKysgICAgLy8gTWFnaWMgcmV0dXJuIGFkZHJlc3MKKysgICAgIjM6XG4iCisr ICAgIC8vIExpa2UgTUlQUywgcHBjNjQgcmV0dXJuIHZhbHVlcyBhcmUgYWx3YXlzIHBvc2l0aXZl LgorKyAgICAvLyBDaGVjayBmb3IgZXJyb3IgaW4gY3IwLlNPIGFuZCBuZWdhdGUgdXBvbiBlcnJv cgorKyAgICAiYmMgNCwgMywgNGZcbiIKKysgICAgIm5lZyAzLCAzXG4iCisrICAgICI0OiBibHJc biIKKysKKysgICAgIi5jZmlfZW5kcHJvY1xuIgorKyAgICAiLnNpemUgU3lzY2FsbEFzbSwgLi1T eXNjYWxsQXNtXG4iCisgI2VuZGlmCisgICAgICk7ICAvLyBhc20KKyAKKy0jaWYgZGVmaW5lZChf X3g4Nl82NF9fKQorKyNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBj NjRfXykKKyBleHRlcm4gIkMiIHsKKyBpbnRwdHJfdCBTeXNjYWxsQXNtKGludHB0cl90IG5yLCBj b25zdCBpbnRwdHJfdCBhcmdzWzZdKTsKKyB9CitAQCAtNDI5LDYgKzQ3Myw4IEBAIGludHB0cl90 IFN5c2NhbGw6OkNhbGwoaW50IG5yLAorICAgICByZXQgPSBpbm91dDsKKyAgIH0KKyAKKysjZWxp ZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICBpbnRwdHJfdCByZXQgPSBTeXNjYWxsQXNtKG5y LCBhcmdzKTsKKyAjZWxzZQorICNlcnJvciAiVW5pbXBsZW1lbnRlZCBhcmNoaXRlY3R1cmUiCisg I2VuZGlmCitAQCAtNDQ1LDggKzQ5MSwyNiBAQCB2b2lkIFN5c2NhbGw6OlB1dFZhbHVlSW5VY29u dGV4dChpbnRwdHJfCisgICAgIC8vIG5lZWRzIHRvIGJlIGNoYW5nZWQgYmFjay4KKyAgICAgcmV0 X3ZhbCA9IC1yZXRfdmFsOworICAgICBTRUNDT01QX1BBUk00KGN0eCkgPSAxOworLSAgfSBlbHNl CisrICB9IGVsc2UgeworICAgICBTRUNDT01QX1BBUk00KGN0eCkgPSAwOworKyAgfQorKyNlbmRp ZgorKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICAvLyBTYW1lIGFzIE1JUFMsIG5lZWQg dG8gaW52ZXJ0IHJldCBhbmQgc2V0IGVycm9yIHJlZ2lzdGVyIChjcjAuU08pCisrICBpZiAocmV0 X3ZhbCA8PSAtMSAmJiByZXRfdmFsID49IC00MDk1KSB7CisrICAgIHJldF92YWwgPSAtcmV0X3Zh bDsKKysjaWZkZWYgX19HTElCQ19fCisrICAgIGN0eC0+dWNfbWNvbnRleHQucmVncy0+Y2NyIHw9 ICgxIDw8IDI4KTsKKysjZWxzZQorKyAgICAoKHN0cnVjdCBwdF9yZWdzICopY3R4LT51Y19tY29u dGV4dC5yZWdzKS0+Y2NyIHw9ICgxIDw8IDI4KTsKKysjZW5kaWYKKysgIH0gZWxzZSB7CisrI2lm ZGVmIF9fR0xJQkNfXworKyAgICBjdHgtPnVjX21jb250ZXh0LnJlZ3MtPmNjciAmPSB+KDEgPDwg MjgpOworKyNlbHNlCisrICAgICgoc3RydWN0IHB0X3JlZ3MgKiljdHgtPnVjX21jb250ZXh0LnJl Z3MpLT5jY3IgJj0gfigxIDw8IDI4KTsKKysjZW5kaWYKKysgIH0KKyAjZW5kaWYKKyAgIFNFQ0NP TVBfUkVTVUxUKGN0eCkgPSBzdGF0aWNfY2FzdDxncmVnX3Q+KHJldF92YWwpOworIH0KKy0tLSBh L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmL3RyYXAuY2MK KysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmL3Ry YXAuY2MKK0BAIC0yMzYsNiArMjM2LDIwIEBAIHZvaWQgVHJhcDo6U2lnU3lzKGludCBuciwgTGlu dXhTaWdJbmZvKgorICAgICAgIFNldElzSW5TaWdIYW5kbGVyKCk7CisgICAgIH0KKyAKKysjaWYg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgICAvLyBPbiBwcGM2NCtnbGliYywgc29tZSBzeXNj YWxscyBzZWVtIHRvIGFjY2lkZW50YWxseSBuZWdhdGUgdGhlIGZpcnN0CisrICAgIC8vIHBhcmFt ZXRlciB3aGljaCBjYXVzZXMgY2hlY2tzIGFnYWluc3QgaXQgdG8gZmFpbC4gRm9yIG5vdywgbWFu dWFsbHkKKysgICAgLy8gbmVnYXRlIHRoZW0gYmFjay4KKysgICAgLy8gVE9ETyhzaGF3bkBhbmFz dGFzLmlvKTogaW52ZXN0aWdhdGUgdGhpcyBpc3N1ZSBmdXJ0aGVyCisrICAgIGF1dG8gbnIgPSBT RUNDT01QX1NZU0NBTEwoY3R4KTsKKysgICAgaWYgKG5yID09IF9fTlJfb3BlbmF0IHx8IG5yID09 IF9fTlJfbWtkaXJhdCB8fCBuciA9PSBfX05SX2ZhY2Nlc3NhdCB8fCBuciA9PSBfX05SX3JlYWRs aW5rYXQgfHwKKysgICAgICAgIG5yID09IF9fTlJfcmVuYW1lYXQgfHwgbnIgPT0gX19OUl9yZW5h bWVhdDIgfHwgbnIgPT0gX19OUl9uZXdmc3RhdGF0IHx8IG5yID09IF9fTlJfdW5saW5rYXQpIHsK KysgICAgICAgIGlmIChzdGF0aWNfY2FzdDxpbnQ+KFNFQ0NPTVBfUEFSTTEoY3R4KSkgPiAwKSB7 CisrICAgICAgICAgICAgU0VDQ09NUF9QQVJNMShjdHgpID0gLVNFQ0NPTVBfUEFSTTEoY3R4KTsK KysgICAgICAgIH0KKysgICAgfQorKyNlbmRpZgorKworICAgICAvLyBDb3B5IHRoZSBzZWNjb21w LXNwZWNpZmljIGRhdGEgaW50byBhIGFyY2hfc2VjY29tcF9kYXRhIHN0cnVjdHVyZS4gVGhpcwor ICAgICAvLyBpcyB3aGF0IHdlIGFyZSBzaG93aW5nIHRvIFRyYXBGbmMgY2FsbGJhY2tzIHRoYXQg dGhlIHN5c3RlbSBjYWxsCisgICAgIC8vIGV2YWx1YXRvciByZWdpc3RlcmVkIHdpdGggdGhlIHNh bmRib3guCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZXJ2aWNl cy9jcmVkZW50aWFscy5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGlu dXgvc2VydmljZXMvY3JlZGVudGlhbHMuY2MKK0BAIC04MSw3ICs4MSw3IEBAIGJvb2wgQ2hyb290 VG9TYWZlRW1wdHlEaXIoKSB7CisgICBwaWRfdCBwaWQgPSAtMTsKKyAgIGFsaWduYXMoMTYpIGNo YXIgc3RhY2tfYnVmW1BUSFJFQURfU1RBQ0tfTUlOXTsKKyAjaWYgZGVmaW5lZChBUkNIX0NQVV9Y ODZfRkFNSUxZKSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX0FSTV9GQU1JTFkpIHx8IFwKKy0gICAgZGVm aW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKKysgICAgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZB TUlMWSkgfHwgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisgICAvLyBUaGUgc3RhY2sg Z3Jvd3MgZG93bndhcmQuCisgICB2b2lkKiBzdGFjayA9IHN0YWNrX2J1ZiArIHNpemVvZihzdGFj a19idWYpOworICNlbHNlCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51 eC9zZXJ2aWNlcy9zeXNjYWxsX3dyYXBwZXJzLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21p dW0vc2FuZGJveC9saW51eC9zZXJ2aWNlcy9zeXNjYWxsX3dyYXBwZXJzLmNjCitAQCAtNjEsNyAr NjEsNyBAQCBsb25nIHN5c19jbG9uZSh1bnNpZ25lZCBsb25nIGZsYWdzLAorICNpZiBkZWZpbmVk KEFSQ0hfQ1BVX1g4Nl82NCkKKyAgIHJldHVybiBzeXNjYWxsKF9fTlJfY2xvbmUsIGZsYWdzLCBj aGlsZF9zdGFjaywgcHRpZCwgY3RpZCwgdGxzKTsKKyAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1g4 NikgfHwgZGVmaW5lZChBUkNIX0NQVV9BUk1fRkFNSUxZKSB8fCBcCistICAgIGRlZmluZWQoQVJD SF9DUFVfTUlQU19GQU1JTFkpCisrICAgIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpIHx8 IGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorICAgLy8gQ09ORklHX0NMT05FX0JBQ0tX QVJEUyBkZWZpbmVkLgorICAgcmV0dXJuIHN5c2NhbGwoX19OUl9jbG9uZSwgZmxhZ3MsIGNoaWxk X3N0YWNrLCBwdGlkLCB0bHMsIGN0aWQpOworICNlbmRpZgorLS0tIGEvc3JjLzNyZHBhcnR5L2No cm9taXVtL3NhbmRib3gvbGludXgvc3lzY2FsbF9icm9rZXIvYnJva2VyX3Byb2Nlc3MuY2MKKysr KyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c2NhbGxfYnJva2VyL2Jy b2tlcl9wcm9jZXNzLmNjCitAQCAtMTY1LDcgKzE2NSw3IEBAIGJvb2wgQnJva2VyUHJvY2Vzczo6 SXNTeXNjYWxsQnJva2VyYWJsZSgKKyAjaWYgZGVmaW5lZChfX05SX2ZzdGF0YXQ2NCkKKyAgICAg Y2FzZSBfX05SX2ZzdGF0YXQ2NDoKKyAjZW5kaWYKKy0jaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8 fCBkZWZpbmVkKF9fYWFyY2g2NF9fKQorKyNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmlu ZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05S X25ld2ZzdGF0YXQ6CisgI2VuZGlmCisgICAgICAgcmV0dXJuICFmYXN0X2NoZWNrIHx8IGFsbG93 ZWRfY29tbWFuZF9zZXRfLnRlc3QoQ09NTUFORF9TVEFUKTsKKy0tLSBhL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3NlY2NvbXAuaAorKysr IGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGlu dXhfc2VjY29tcC5oCitAQCAtNDEsNiArNDEsOSBAQAorICNpZm5kZWYgRU1fQUFSQ0g2NAorICNk ZWZpbmUgRU1fQUFSQ0g2NCAxODMKKyAjZW5kaWYKKysjaWZuZGVmIEVNX1BQQzY0CisrI2RlZmlu ZSBFTV9QUEM2NCAyMQorKyNlbmRpZgorIAorICNpZm5kZWYgX19BVURJVF9BUkNIXzY0QklUCisg I2RlZmluZSBfX0FVRElUX0FSQ0hfNjRCSVQgMHg4MDAwMDAwMAorQEAgLTc0LDYgKzc3LDE0IEBA CisgI2RlZmluZSBBVURJVF9BUkNIX0FBUkNINjQgKEVNX0FBUkNINjQgfCBfX0FVRElUX0FSQ0hf NjRCSVQgfCBfX0FVRElUX0FSQ0hfTEUpCisgI2VuZGlmCisgCisrI2lmbmRlZiBBVURJVF9BUkNI X1BQQzY0CisrI2RlZmluZSBBVURJVF9BUkNIX1BQQzY0IChFTV9QUEM2NCB8IF9fQVVESVRfQVJD SF82NEJJVCkKKysjZW5kaWYKKysKKysjaWZuZGVmIEFVRElUX0FSQ0hfUFBDNjRMRQorKyNkZWZp bmUgQVVESVRfQVJDSF9QUEM2NExFIChFTV9QUEM2NCB8IF9fQVVESVRfQVJDSF82NEJJVCB8IF9f QVVESVRfQVJDSF9MRSkKKysjZW5kaWYKKysKKyAvLyBGb3IgcHJjdGwuaAorICNpZm5kZWYgUFJf U0VUX1NFQ0NPTVAKKyAjZGVmaW5lIFBSX1NFVF9TRUNDT01QICAgICAgICAgICAgICAgMjIKKy0t LSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xp bnV4X3NpZ25hbC5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9z eXN0ZW1faGVhZGVycy9saW51eF9zaWduYWwuaAorQEAgLTEzLDcgKzEzLDcgQEAKKyAvLyAobm90 IHVuZGVmaW5lZCwgYnV0IGRlZmluZWQgZGlmZmVyZW50IHZhbHVlcyBhbmQgaW4gZGlmZmVyZW50 IG1lbW9yeQorIC8vIGxheW91dHMpLiBTbywgZmlsbCB0aGUgZ2FwIGhlcmUuCisgI2lmIGRlZmlu ZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8 fCBcCistICAgIGRlZmluZWQoX19hYXJjaDY0X18pCisrICAgIGRlZmluZWQoX19hYXJjaDY0X18p IHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAKKyAjZGVmaW5lIExJTlVYX1NJR0hVUCAxCisg I2RlZmluZSBMSU5VWF9TSUdJTlQgMgorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRi b3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc3lzY2FsbHMuaAorKysrIGIvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc3lzY2FsbHMu aAorQEAgLTM1LDUgKzM1LDkgQEAKKyAjaW5jbHVkZSAic2FuZGJveC9saW51eC9zeXN0ZW1faGVh ZGVycy9hcm02NF9saW51eF9zeXNjYWxscy5oIgorICNlbmRpZgorIAorKyNpZiBkZWZpbmVkKF9f cG93ZXJwYzY0X18pCisrI2luY2x1ZGUgInNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvcHBj NjRfbGludXhfc3lzY2FsbHMuaCIKKysjZW5kaWYKKysKKyAjZW5kaWYgIC8vIFNBTkRCT1hfTElO VVhfU1lTVEVNX0hFQURFUlNfTElOVVhfU1lTQ0FMTFNfSF8KKyAKKy0tLSBhL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3Vjb250ZXh0LmgK KysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJz L2xpbnV4X3Vjb250ZXh0LmgKK0BAIC0xMSw2ICsxMSw4IEBACisgI2luY2x1ZGUgInNhbmRib3gv bGludXgvc3lzdGVtX2hlYWRlcnMvYXJtX2xpbnV4X3Vjb250ZXh0LmgiCisgI2VsaWYgZGVmaW5l ZChfX2kzODZfXykKKyAjaW5jbHVkZSAic2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9pMzg2 X2xpbnV4X3Vjb250ZXh0LmgiCisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyNpbmNs dWRlICJzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3BwYzY0X2xpbnV4X3Vjb250ZXh0Lmgi CisgI2Vsc2UKKyAjZXJyb3IgIk5vIHN1cHBvcnQgZm9yIHlvdXIgYXJjaGl0ZWN0dXJlIGluIFBO YUNsIGhlYWRlciIKKyAjZW5kaWYKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94 L3BvbGljeS9saW51eC9icGZfcmVuZGVyZXJfcG9saWN5X2xpbnV4LmNjCisrKysgYi9zcmMvM3Jk cGFydHkvY2hyb21pdW0vc2FuZGJveC9wb2xpY3kvbGludXgvYnBmX3JlbmRlcmVyX3BvbGljeV9s aW51eC5jYworQEAgLTE1LDYgKzE1LDExIEBACisgI2luY2x1ZGUgInNhbmRib3gvbGludXgvc3lz dGVtX2hlYWRlcnMvbGludXhfc3lzY2FsbHMuaCIKKyAjaW5jbHVkZSAic2FuZGJveC9wb2xpY3kv bGludXgvc2FuZGJveF9saW51eC5oIgorIAorKy8vIE9uIFBQQzY0LCBUQ0dFVFMgaXMgZGVmaW5l ZCBpbiB0ZXJtcyBvZiBzdHJ1Y3QgdGVybWlvcywgc28gd2UgbXVzdCBpbmNsdWRlIHRlcm1pb3Mu aAorKyNpZmRlZiBfX3Bvd2VycGM2NF9fCisrI2luY2x1ZGUgPHRlcm1pb3MuaD4KKysjZW5kaWYK KysKKyAvLyBUT0RPKHZpZ25hdHRpKTogcmVwbGFjZSB0aGUgbG9jYWwgZGVmaW5pdGlvbnMgYmVs b3cgd2l0aCAjaW5jbHVkZQorIC8vIDxsaW51eC9kbWEtYnVmLmg+IG9uY2Uga2VybmVsIHZlcnNp b24gNC42IGJlY29tZXMgd2lkZWx5IHVzZWQuCisgI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+Cist LS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYW5nbGUvc3JjL2NvbXBpbGVy L3RyYW5zbGF0b3IvSW5mb1NpbmsuaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJk X3BhcnR5L2FuZ2xlL3NyYy9jb21waWxlci90cmFuc2xhdG9yL0luZm9TaW5rLmgKK0BAIC05Myw3 ICs5MywxNiBAQCBjbGFzcyBUSW5mb1NpbmtCYXNlCisgICAgICAgICAgICAgc3RyZWFtLnByZWNp c2lvbig4KTsKKyAgICAgICAgICAgICBzdHJlYW0gPDwgZjsKKyAgICAgICAgIH0KKy0gICAgICAg IHNpbmsuYXBwZW5kKHN0cmVhbS5zdHIoKSk7CisrCisrICAgICAgICAvLyBIYWNrIHRvIHdvcmsg YXJvdW5kIGEgYnVnIHdoZXJlIG5lZ2F0aXZlIGZsb2F0aW5nIHBvaW50IHZhbHVlcworKyAgICAg ICAgLy8gYXJlIHJlbmRlcmVkIGxpa2UgJy4wLjUnIGluc3RlYWQgb2YgJy0wLjUnCisrICAgICAg ICBzdGQ6OnN0cmluZyByZXMoc3RyZWFtLnN0cigpKTsKKysKKysgICAgICAgIGlmIChzaWduYml0 KGYpKSB7IC8vIHRlc3QgaWYgZiBpcyBuZWdhdGl2ZQorKyAgICAgICAgICAgIHJlc1swXSA9ICct JzsKKysgICAgICAgIH0KKysKKysgICAgICAgIHNpbmsuYXBwZW5kKHJlcyk7CisgICAgICAgICBy ZXR1cm4gKnRoaXM7CisgICAgIH0KKyAgICAgLy8gV3JpdGUgYm9vbGVhbiB2YWx1ZXMgYXMgdGhl aXIgbmFtZXMgaW5zdGVhZCBvZiBpbnRlZ3JhbCB2YWx1ZS4KKy0tLSBhL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS90aGlyZF9wYXJ0eS9hbmdsZS9zcmMvbGliQU5HTEUvQ29uc3RhbnRzLmgKKysrKyBi L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9hbmdsZS9zcmMvbGliQU5HTEUvQ29u c3RhbnRzLmgKK0BAIC05LDYgKzksNyBAQAorICNpZm5kZWYgTElCQU5HTEVfQ09OU1RBTlRTX0hf CisgI2RlZmluZSBMSUJBTkdMRV9DT05TVEFOVFNfSF8KKyAKKysjaW5jbHVkZSA8Y3N0ZGRlZj4K KyAjaW5jbHVkZSAiY29tbW9uL3BsYXRmb3JtLmgiCisgCisgI2luY2x1ZGUgPHN0ZGludC5oPgor LS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9CVUlMRC5n bgorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9CVUlM RC5nbgorQEAgLTk5LDYgKzk5LDEzIEBAIGlmIChpc193aW4gJiYgIWlzX21zYW4gJiYgY3VycmVu dF9jcHUgIT0KKyAgICAgICB9IGVsc2UgeworICAgICAgICAgcHVibGljX2NvbmZpZ3MgPSBbICI6 bm9fYXNtX2NvbmZpZyIgXQorICAgICAgIH0KKysgICAgfSBlbHNlIGlmIChjdXJyZW50X2NwdSA9 PSAicHBjNjQiKSB7CisrICAgICAgaWYgKGlzX2xpbnV4KSB7CisrICAgICAgICAjIFRPRE86IHBw YzY0IChiZSkgY2hlY2sKKysgICAgICAgIHNvdXJjZXMgKz0gY3J5cHRvX3NvdXJjZXNfbGludXhf cHBjNjRsZQorKyAgICAgIH0gZWxzZSB7CisrICAgICAgICBwdWJsaWNfY29uZmlncyA9IFsgIjpu b19hc21fY29uZmlnIiBdCisrICAgICAgfQorICAgICB9IGVsc2UgeworICAgICAgIHB1YmxpY19j b25maWdzID0gWyAiOm5vX2FzbV9jb25maWciIF0KKyAgICAgfQorLS0tIGEvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL0JVSUxELmduCisrKysgYi9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvQlVJTEQuZ24KK0BAIC02MjMsNyArNjIz LDYgQEAgaWYgKGlzX2xpbnV4IHx8IGlzX2Nocm9tZW9zIHx8IGlzX2FuZHJvaQorICAgICAgICJi cmVha3BhZC9zcmMvY2xpZW50L21pbmlkdW1wX2ZpbGVfd3JpdGVyLmgiLAorICAgICAgICJicmVh a3BhZC9zcmMvY29tbW9uL2NvbnZlcnRfVVRGLmNjIiwKKyAgICAgICAiYnJlYWtwYWQvc3JjL2Nv bW1vbi9jb252ZXJ0X1VURi5oIiwKKy0gICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9i cmVha3BhZF9nZXRjb250ZXh0LlMiLAorICAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2xpbnV4 L2VsZl9jb3JlX2R1bXAuY2MiLAorICAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2Vs Zl9jb3JlX2R1bXAuaCIsCisgICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vbGludXgvZWxmdXRp bHMuY2MiLAorQEAgLTY2Myw2ICs2NjIsMTUgQEAgaWYgKGlzX2xpbnV4IHx8IGlzX2Nocm9tZW9z IHx8IGlzX2FuZHJvaQorIAorICAgICBsaWJzID0gWyAiZGwiIF0KKyAKKysgICAgaWYgKGN1cnJl bnRfY3B1ID09ICJwcGM2NCIpIHsKKysgICAgICAgIGRlZmluZXMgPSBbICJIQVZFX0dFVENPTlRF WFQiIF0KKysgICAgICAgIGxpYnMgKz0gWyAidWNvbnRleHQiIF0KKysgICAgfSBlbHNlIHsKKysg ICAgICAgIHNvdXJjZXMgKz0gWworKyAgICAgICAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2xp bnV4L2JyZWFrcGFkX2dldGNvbnRleHQuUyIKKysgICAgICAgIF0KKysgICAgfQorKworICAgICBp bmNsdWRlX2RpcnMgPSBbCisgICAgICAgIi4iLAorICAgICAgICJicmVha3BhZC9zcmMiLAorQEAg LTcxMiw3ICs3MjAsNiBAQCBpZiAoaXNfbGludXggfHwgaXNfY2hyb21lb3MgfHwgaXNfYW5kcm9p CisgICAgICAgImJyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlk dW1wX3dyaXRlcl91bml0dGVzdC5jYyIsCisgICAgICAgImJyZWFrcGFkL3NyYy9jbGllbnQvbGlu dXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlcl91bml0dGVzdF91dGlscy5jYyIsCisg ICAgICAgImJyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL3Byb2NfY3B1 aW5mb19yZWFkZXJfdW5pdHRlc3QuY2MiLAorLSAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2xp bnV4L2JyZWFrcGFkX2dldGNvbnRleHRfdW5pdHRlc3QuY2MiLAorICAgICAgICJicmVha3BhZC9z cmMvY29tbW9uL2xpbnV4L2VsZl9jb3JlX2R1bXBfdW5pdHRlc3QuY2MiLAorICAgICAgICJicmVh a3BhZC9zcmMvY29tbW9uL2xpbnV4L2ZpbGVfaWRfdW5pdHRlc3QuY2MiLAorICAgICAgICJicmVh a3BhZC9zcmMvY29tbW9uL2xpbnV4L2xpbnV4X2xpYmNfc3VwcG9ydF91bml0dGVzdC5jYyIsCist LS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQv c3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vcmF3X2NvbnRleHRfY3B1LmgKKysr KyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9z cmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi9yYXdfY29udGV4dF9jcHUuaAorQEAg LTQ0LDYgKzQ0LDggQEAgdHlwZWRlZiBNRFJhd0NvbnRleHRBUk0gUmF3Q29udGV4dENQVTsKKyB0 eXBlZGVmIE1EUmF3Q29udGV4dEFSTTY0X09sZCBSYXdDb250ZXh0Q1BVOworICNlbGlmIGRlZmlu ZWQoX19taXBzX18pCisgdHlwZWRlZiBNRFJhd0NvbnRleHRNSVBTIFJhd0NvbnRleHRDUFU7Cisr I2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorK3R5cGVkZWYgTURSYXdDb250ZXh0UFBDNjQg UmF3Q29udGV4dENQVTsKKyAjZWxzZQorICNlcnJvciAiVGhpcyBjb2RlIGhhcyBub3QgYmVlbiBw b3J0ZWQgdG8geW91ciBwbGF0Zm9ybSB5ZXQuIgorICNlbmRpZgorLS0tIGEvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgv ZHVtcF93cml0ZXJfY29tbW9uL3RocmVhZF9pbmZvLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hy b21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1w X3dyaXRlcl9jb21tb24vdGhyZWFkX2luZm8uY2MKK0BAIC0yNzAsNyArMjcwLDU0IEBAIHZvaWQg VGhyZWFkSW5mbzo6RmlsbENQVUNvbnRleHQoUmF3Q29udGUKKyAgIG91dC0+ZmxvYXRfc2F2ZS5m aXIgPSBtY29udGV4dC5mcGNfZWlyOworICNlbmRpZgorIH0KKy0jZW5kaWYgIC8vIF9fbWlwc19f CisrCisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKworKyNpZiAhZGVmaW5lZChfX0dM SUJDX18pCisrI2luY2x1ZGUgPGFzbS9lbGYuaD4KKysjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgor KyNlbmRpZgorKworK3VpbnRwdHJfdCBUaHJlYWRJbmZvOjpHZXRJbnN0cnVjdGlvblBvaW50ZXIo KSBjb25zdCB7CisrICAgIHJldHVybiBtY29udGV4dC5ncF9yZWdzW1BUX05JUF07CisrfQorKwor K3ZvaWQgVGhyZWFkSW5mbzo6RmlsbENQVUNvbnRleHQoUmF3Q29udGV4dENQVSogb3V0KSBjb25z dCB7CisrICAgIG91dC0+Y29udGV4dF9mbGFncyA9IE1EX0NPTlRFWFRfUFBDNjRfRlVMTDsKKysg ICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9DT05URVhUX1BQQzY0X0dQUl9DT1VOVDsgaSsrKQor KyAgICAgICAgb3V0LT5ncHJbaV0gPSBtY29udGV4dC5ncF9yZWdzW2ldOworKworKyAgICBvdXQt PmxyID0gbWNvbnRleHQuZ3BfcmVnc1tQVF9MTktdOworKyAgICBvdXQtPnNycjAgPSBtY29udGV4 dC5ncF9yZWdzW1BUX05JUF07CisrICAgIG91dC0+c3JyMSA9IG1jb250ZXh0LmdwX3JlZ3NbUFRf TVNSXTsKKysgICAgb3V0LT5jciA9IG1jb250ZXh0LmdwX3JlZ3NbUFRfQ0NSXTsKKysgICAgb3V0 LT54ZXIgPSBtY29udGV4dC5ncF9yZWdzW1BUX1hFUl07CisrICAgIG91dC0+Y3RyID0gbWNvbnRl eHQuZ3BfcmVnc1tQVF9DVFJdOworKworKyNpZmRlZiBfX0dMSUJDX18KKysgICAgZm9yIChpbnQg aSA9IDA7IGkgPCBNRF9GTE9BVElOR1NBVkVBUkVBX1BQQ19GUFJfQ09VTlQ7IGkrKykKKysgICAg ICAgIG91dC0+ZmxvYXRfc2F2ZS5mcHJlZ3NbaV0gPSBtY29udGV4dC5mcF9yZWdzW2ldOworKwor KyAgICBvdXQtPmZsb2F0X3NhdmUuZnBzY3IgPSBtY29udGV4dC5mcF9yZWdzW05GUFJFRy0xXTsK KysjZWxzZQorKyAgICBmb3IgKGludCBpID0gMDsgaSA8IE1EX0ZMT0FUSU5HU0FWRUFSRUFfUFBD X0ZQUl9DT1VOVDsgaSsrKQorKyAgICAgICAgb3V0LT5mbG9hdF9zYXZlLmZwcmVnc1tpXSA9ICgo dWludDY0X3QgKikmbWNvbnRleHQuZnBfcmVncylbaV07CisrCisrICAgICBvdXQtPmZsb2F0X3Nh dmUuZnBzY3IgPSAoKHVpbnQ2NF90ICopJm1jb250ZXh0LmZwX3JlZ3MpW0VMRl9ORlBSRUctMV07 CisrI2VuZGlmCisrCisrICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfVkVDVE9SU0FWRUFSRUFf UFBDX1ZSX0NPVU5UOyBpKyspCisrICAgICAgICBvdXQtPnZlY3Rvcl9zYXZlLnNhdmVfdnJbaV0g PSBcCisrICAgICAgICAgICAgeygoKHVpbnQ2NF90KXZyZWdzLnZycmVnc1tpXVswXSkgPDwgMzIp CisrICAgICAgICAgICAgICAgICAgICAgICAgICB8IHZyZWdzLnZycmVnc1tpXVsxXSwKKysgICAg ICAgICAgICAoKCh1aW50NjRfdCl2cmVncy52cnJlZ3NbaV1bMl0pIDw8IDMyKQorKyAgICAgICAg ICAgICAgICAgICAgICAgICB8IHZyZWdzLnZycmVnc1tpXVszXX07CisrCisrICAgIG91dC0+dnJz YXZlID0gdnJlZ3MudnJzYXZlOworKyAgICBvdXQtPnZlY3Rvcl9zYXZlLnNhdmVfdnNjciA9IHsw LCB2cmVncy52c2NyLnZzY3Jfd29yZH07CisrICAgIG91dC0+dmVjdG9yX3NhdmUuc2F2ZV92cnZh bGlkID0gMHhGRkZGRkZGRjsKKyt9CisrI2VuZGlmICAvLyBfX3Bvd2VycGM2NF9fCisgCisgdm9p ZCBUaHJlYWRJbmZvOjpHZXRHZW5lcmFsUHVycG9zZVJlZ2lzdGVycyh2b2lkKiogZ3BfcmVncywg c2l6ZV90KiBzaXplKSB7CisgICBhc3NlcnQoZ3BfcmVncyB8fCBzaXplKTsKK0BAIC0yNzksNiAr MzI2LDExIEBAIHZvaWQgVGhyZWFkSW5mbzo6R2V0R2VuZXJhbFB1cnBvc2VSZWdpc3QKKyAgICAg KmdwX3JlZ3MgPSBtY29udGV4dC5ncmVnczsKKyAgIGlmIChzaXplKQorICAgICAqc2l6ZSA9IHNp emVvZihtY29udGV4dC5ncmVncyk7CisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAg aWYgKGdwX3JlZ3MpCisrICAgICpncF9yZWdzID0gbWNvbnRleHQuZ3BfcmVnczsKKysgIGlmIChz aXplKQorKyAgICAqc2l6ZSA9IHNpemVvZihtY29udGV4dC5ncF9yZWdzKTsKKyAjZWxzZQorICAg aWYgKGdwX3JlZ3MpCisgICAgICpncF9yZWdzID0gJnJlZ3M7CitAQCAtMjk0LDYgKzM0NiwxMSBA QCB2b2lkIFRocmVhZEluZm86OkdldEZsb2F0aW5nUG9pbnRSZWdpc3RlCisgICAgICpmcF9yZWdz ID0gJm1jb250ZXh0LmZwcmVnczsKKyAgIGlmIChzaXplKQorICAgICAqc2l6ZSA9IHNpemVvZiht Y29udGV4dC5mcHJlZ3MpOworKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysgIGlmIChm cF9yZWdzKQorKyAgICAqZnBfcmVncyA9ICZtY29udGV4dC5mcF9yZWdzOworKyAgaWYgKHNpemUp CisrICAgICpzaXplID0gc2l6ZW9mKG1jb250ZXh0LmZwX3JlZ3MpOworICNlbHNlCisgICBpZiAo ZnBfcmVncykKKyAgICAgKmZwX3JlZ3MgPSAmZnByZWdzOworQEAgLTMwMiw0ICszNTksMTMgQEAg dm9pZCBUaHJlYWRJbmZvOjpHZXRGbG9hdGluZ1BvaW50UmVnaXN0ZQorICNlbmRpZgorIH0KKyAK KysjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorK3ZvaWQgVGhyZWFkSW5mbzo6R2V0VmVjdG9y UmVnaXN0ZXJzKHZvaWQqKiB2X3JlZ3MsIHNpemVfdCogc2l6ZSkgeworKyAgICBpZiAodl9yZWdz KQorKyAgICAgICAgKnZfcmVncyA9ICZ2cmVnczsKKysgICAgaWYgKHNpemUpCisrICAgICAgICAq c2l6ZSA9IHNpemVvZih2cmVncyk7CisrfQorKyNlbmRpZgorKworIH0gIC8vIG5hbWVzcGFjZSBn b29nbGVfYnJlYWtwYWQKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9i cmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJl YWRfaW5mby5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdGhyZWFkX2lu Zm8uaAorQEAgLTY4LDYgKzY4LDEwIEBAIHN0cnVjdCBUaHJlYWRJbmZvIHsKKyAgIC8vIFVzZSB0 aGUgc3RydWN0dXJlcyBkZWZpbmVkIGluIDxzeXMvdXNlci5oPgorICAgc3RydWN0IHVzZXJfcmVn c19zdHJ1Y3QgcmVnczsKKyAgIHN0cnVjdCB1c2VyX2Zwc2ltZF9zdHJ1Y3QgZnByZWdzOworKyNl bGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysgIC8vIFVzZSB0aGUgc3RydWN0dXJlcyBkZWZp bmVkIGluIDxzeXMvdWNvbnRleHQuaD4uCisrICBtY29udGV4dF90IG1jb250ZXh0OworKyAgdnJy ZWdzZXRfdCB2cmVnczsKKyAjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQorICAgLy8gVXNlIHRoZSBz dHJ1Y3R1cmUgZGVmaW5lZCBpbiA8c3lzL3Vjb250ZXh0Lmg+LgorICAgbWNvbnRleHRfdCBtY29u dGV4dDsKK0BAIC04NCw2ICs4OCwxMSBAQCBzdHJ1Y3QgVGhyZWFkSW5mbyB7CisgCisgICAvLyBS ZXR1cm5zIHRoZSBwb2ludGVyIGFuZCBzaXplIG9mIGZsb2F0IHBvaW50IHJlZ2lzdGVyIGFyZWEu CisgICB2b2lkIEdldEZsb2F0aW5nUG9pbnRSZWdpc3RlcnModm9pZCoqIGZwX3JlZ3MsIHNpemVf dCogc2l6ZSk7CisrCisrI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysgIC8vIFJldHVybnMg dGhlIHBvaW50ZXIgYW5kIHNpemUgb2YgdGhlIHZlY3RvciByZWdpc3RlciBhcmVhLiAoUFBDNjQg b25seSkKKysgIHZvaWQgR2V0VmVjdG9yUmVnaXN0ZXJzKHZvaWQqKiB2X3JlZ3MsIHNpemVfdCog c2l6ZSk7CisrI2VuZGlmCisgfTsKKyAKKyB9ICAvLyBuYW1lc3BhY2UgZ29vZ2xlX2JyZWFrcGFk CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmNj CisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmNj CitAQCAtMjU0LDYgKzI1NCw2MCBAQCB2b2lkIFVDb250ZXh0UmVhZGVyOjpGaWxsQ1BVQ29udGV4 dChSYXdDCisgICBvdXQtPmZsb2F0X3NhdmUuZmlyID0gdWMtPnVjX21jb250ZXh0LmZwY19laXI7 ICAvLyBVbnVzZWQuCisgI2VuZGlmCisgfQorKworKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRf XykKKysKKysjaWZuZGVmIF9fR0xJQkNfXworKyNpbmNsdWRlIDxhc20vZWxmLmg+CisrI2luY2x1 ZGUgPGFzbS9wdHJhY2UuaD4KKysjZW5kaWYKKysKKyt1aW50cHRyX3QgVUNvbnRleHRSZWFkZXI6 OkdldFN0YWNrUG9pbnRlcihjb25zdCB1Y29udGV4dF90KiB1YykgeworKyAgICByZXR1cm4gdWMt PnVjX21jb250ZXh0LmdwX3JlZ3NbTURfQ09OVEVYVF9QUEM2NF9SRUdfU1BdOworK30KKysKKyt1 aW50cHRyX3QgVUNvbnRleHRSZWFkZXI6OkdldEluc3RydWN0aW9uUG9pbnRlcihjb25zdCB1Y29u dGV4dF90KiB1YykgeworKyAgICByZXR1cm4gdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfTklQ XTsKKyt9CisrCisrdm9pZCBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNvbnRleHQoUmF3Q29udGV4 dENQVSogb3V0LCBjb25zdCB1Y29udGV4dF90KiB1YywKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCB2cnJlZ3NldF90KiB2cmVncykgeworKyAgICBvdXQtPmNvbnRl eHRfZmxhZ3MgPSBNRF9DT05URVhUX1BQQzY0X0ZVTEw7CisrCisrICAgIGZvciAoaW50IGkgPSAw OyBpIDwgTURfQ09OVEVYVF9QUEM2NF9HUFJfQ09VTlQ7IGkrKykKKysgICAgICAgIG91dC0+Z3By W2ldID0gdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbaV07CisrCisrICAgIG91dC0+bHIgPSB1Yy0+ dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9MTktdOworKyAgICBvdXQtPnNycjAgPSB1Yy0+dWNfbWNv bnRleHQuZ3BfcmVnc1tQVF9OSVBdOworKyAgICBvdXQtPnNycjEgPSB1Yy0+dWNfbWNvbnRleHQu Z3BfcmVnc1tQVF9NU1JdOworKyAgICBvdXQtPmNyID0gdWMtPnVjX21jb250ZXh0LmdwX3JlZ3Nb UFRfQ0NSXTsKKysgICAgb3V0LT54ZXIgPSB1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9YRVJd OworKyAgICBvdXQtPmN0ciA9IHVjLT51Y19tY29udGV4dC5ncF9yZWdzW1BUX0NUUl07CisrCisr I2lmZGVmIF9fR0xJQkNfXworKyAgICBmb3IgKGludCBpID0gMDsgaSA8IE1EX0ZMT0FUSU5HU0FW RUFSRUFfUFBDX0ZQUl9DT1VOVDsgaSsrKQorKyAgICAgICAgb3V0LT5mbG9hdF9zYXZlLmZwcmVn c1tpXSA9IHVjLT51Y19tY29udGV4dC5mcF9yZWdzW2ldOworKworKyAgICBvdXQtPmZsb2F0X3Nh dmUuZnBzY3IgPSB1Yy0+dWNfbWNvbnRleHQuZnBfcmVnc1tORlBSRUctMV07CisrI2Vsc2UKKysg ICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9GTE9BVElOR1NBVkVBUkVBX1BQQ19GUFJfQ09VTlQ7 IGkrKykKKysgICAgICAgIG91dC0+ZmxvYXRfc2F2ZS5mcHJlZ3NbaV0gPSAoKHVpbnQ2NF90ICop JnVjLT51Y19tY29udGV4dC5mcF9yZWdzKVtpXTsKKysKKysgICAgb3V0LT5mbG9hdF9zYXZlLmZw c2NyID0gKCh1aW50NjRfdCAqKSZ1Yy0+dWNfbWNvbnRleHQuZnBfcmVncylbRUxGX05GUFJFRy0x XTsKKysjZW5kaWYKKysKKysgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9WRUNUT1JTQVZFQVJF QV9QUENfVlJfQ09VTlQ7IGkrKykKKysgICAgICAgIG91dC0+dmVjdG9yX3NhdmUuc2F2ZV92cltp XSA9CisrICAgICAgICAgICAgeygoKHVpbnQ2NF90KXZyZWdzLT52cnJlZ3NbaV1bMF0pIDw8IDMy KQorKyAgICAgICAgICAgICAgICAgICAgICAgICB8IHZyZWdzLT52cnJlZ3NbaV1bMV0sCisrICAg ICAgICAgICAgICgoKHVpbnQ2NF90KXZyZWdzLT52cnJlZ3NbaV1bMl0pIDw8IDMyKQorKyAgICAg ICAgICAgICAgICAgICAgICAgICB8IHZyZWdzLT52cnJlZ3NbaV1bM119OworKworKyAgICBvdXQt PnZyc2F2ZSA9IHZyZWdzLT52cnNhdmU7CisrICAgIG91dC0+dmVjdG9yX3NhdmUuc2F2ZV92c2Ny ID0gezAsIHZyZWdzLT52c2NyLnZzY3Jfd29yZH07CisrICAgIG91dC0+dmVjdG9yX3NhdmUuc2F2 ZV92cnZhbGlkID0gMHhGRkZGRkZGRjsKKyt9CisrCisgI2VuZGlmCisgCisgfSAgLy8gbmFtZXNw YWNlIGdvb2dsZV9icmVha3BhZAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3Bh cnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9u L3Vjb250ZXh0X3JlYWRlci5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFy dHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24v dWNvbnRleHRfcmVhZGVyLmgKK0BAIC01OSw2ICs1OSw5IEBAIHN0cnVjdCBVQ29udGV4dFJlYWRl ciB7CisgI2VsaWYgZGVmaW5lZChfX2FhcmNoNjRfXykKKyAgIHN0YXRpYyB2b2lkIEZpbGxDUFVD b250ZXh0KFJhd0NvbnRleHRDUFUqIG91dCwgY29uc3QgdWNvbnRleHRfdCogdWMsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgZnBzaW1kX2NvbnRleHQqIGZwcmVn cyk7CisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgc3RhdGljIHZvaWQgRmlsbENQ VUNvbnRleHQoUmF3Q29udGV4dENQVSAqb3V0LCBjb25zdCB1Y29udGV4dF90ICp1YywKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZycmVnc2V0X3QqIHZyZWdzKTsKKyAjZWxz ZQorICAgc3RhdGljIHZvaWQgRmlsbENQVUNvbnRleHQoUmF3Q29udGV4dENQVSogb3V0LCBjb25z dCB1Y29udGV4dF90KiB1Yyk7CisgI2VuZGlmCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0v dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4 Y2VwdGlvbl9oYW5kbGVyLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFy dHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9o YW5kbGVyLmNjCitAQCAtMTA1LDYgKzEwNSwxMyBAQAorICNkZWZpbmUgUFJfU0VUX1BUUkFDRVIg MHg1OTYxNmQ2MQorICNlbmRpZgorIAorKy8qIG11c2wgaGFjaywgY2FuJ3QgaW5jbHVkZSBhc20v cHRyYWNlLmggYXMgdGhhdCBjYXVzZXMgY29uZmxpY3RzICovCisrI2lmbmRlZiBfX0dMSUJDX18K KysjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAmJiAhZGVmaW5lZChQVF9OSVApCisrI2RlZmlu ZSBQVF9OSVAgMzIKKysjZW5kaWYKKysjZW5kaWYKKysKKyBuYW1lc3BhY2UgZ29vZ2xlX2JyZWFr cGFkIHsKKyAKKyBuYW1lc3BhY2UgeworQEAgLTQ2MSw5ICs0NjgsMTYgQEAgYm9vbCBFeGNlcHRp b25IYW5kbGVyOjpIYW5kbGVTaWduYWwoaW50CisgICAgIG1lbWNweSgmZ19jcmFzaF9jb250ZXh0 Xy5mbG9hdF9zdGF0ZSwgZnBfcHRyLAorICAgICAgICAgICAgc2l6ZW9mKGdfY3Jhc2hfY29udGV4 dF8uZmxvYXRfc3RhdGUpKTsKKyAgIH0KKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisr ICAvLyBPbiBQUEM2NCwgd2UgbXVzdCBjb3B5IFZSIHN0YXRlCisrICB1Y29udGV4dF90KiB1Y19w dHIgPSAodWNvbnRleHRfdCopdWM7CisrICBpZiAodWNfcHRyLT51Y19tY29udGV4dC52X3JlZ3Mp IHsKKysgICAgbWVtY3B5KCZnX2NyYXNoX2NvbnRleHRfLnZlY3Rvcl9zdGF0ZSwgdWNfcHRyLT51 Y19tY29udGV4dC52X3JlZ3MsCisrICAgICAgICAgICBzaXplb2YoZ19jcmFzaF9jb250ZXh0Xy52 ZWN0b3Jfc3RhdGUpKTsKKysgIH0KKyAjZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFk ZWZpbmVkKF9fbWlwc19fKQorICAgLy8gRlAgc3RhdGUgaXMgbm90IHBhcnQgb2YgdXNlciBBQkkg b24gQVJNIExpbnV4LgorLSAgLy8gSW4gY2FzZSBvZiBNSVBTIExpbnV4IEZQIHN0YXRlIGlzIGFs cmVhZHkgcGFydCBvZiB1Y29udGV4dF90CisrICAvLyBJbiBjYXNlIG9mIE1JUFMsIExpbnV4IEZQ IHN0YXRlIGlzIGFscmVhZHkgcGFydCBvZiB1Y29udGV4dF90CisgICAvLyBhbmQgJ2Zsb2F0X3N0 YXRlJyBpcyBub3QgYSBtZW1iZXIgb2YgQ3Jhc2hDb250ZXh0LgorICAgdWNvbnRleHRfdCogdWNf cHRyID0gKHVjb250ZXh0X3QqKXVjOworICAgaWYgKHVjX3B0ci0+dWNfbWNvbnRleHQuZnByZWdz KSB7CitAQCAtNzA4LDExICs3MjIsMTkgQEAgYm9vbCBFeGNlcHRpb25IYW5kbGVyOjpXcml0ZU1p bmlkdW1wKCkgeworICAgfQorICNlbmRpZgorIAorLSNpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18p ICYmICFkZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKKysjaWYgIWRl ZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX2FhcmNoNjRfXykgJiYgIWRlZmluZWQo X19taXBzX18pIFwKKysgICAgJiYgIWRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgIC8vIEZQVSBz dGF0ZSBpcyBub3QgcGFydCBvZiBBUk0gRUFCSSB1Y29udGV4dF90LgorICAgbWVtY3B5KCZjb250 ZXh0LmZsb2F0X3N0YXRlLCBjb250ZXh0LmNvbnRleHQudWNfbWNvbnRleHQuZnByZWdzLAorICAg ICAgICAgIHNpemVvZihjb250ZXh0LmZsb2F0X3N0YXRlKSk7CisgI2VuZGlmCisrCisrI2lmIGRl ZmluZWQoX19wb3dlcnBjNjRfXykKKysgIC8vIFZlY3RvciByZWdpc3RlcnMgbXVzdCBiZSBjb3Bp ZWQgb24gUFBDNjQKKysgIG1lbWNweSgmY29udGV4dC52ZWN0b3Jfc3RhdGUsIGNvbnRleHQuY29u dGV4dC51Y19tY29udGV4dC52X3JlZ3MsCisrICAgICAgICAgc2l6ZW9mKGNvbnRleHQudmVjdG9y X3N0YXRlKSk7CisrI2VuZGlmCisrCisgICBjb250ZXh0LnRpZCA9IHN5c19nZXR0aWQoKTsKKyAK KyAgIC8vIEFkZCBhbiBleGNlcHRpb24gc3RyZWFtIHRvIHRoZSBtaW5pZHVtcCBmb3IgYmV0dGVy IHJlcG9ydGluZy4KK0BAIC03MzMsNiArNzU1LDkgQEAgYm9vbCBFeGNlcHRpb25IYW5kbGVyOjpX cml0ZU1pbmlkdW1wKCkgeworICNlbGlmIGRlZmluZWQoX19taXBzX18pCisgICBjb250ZXh0LnNp Z2luZm8uc2lfYWRkciA9CisgICAgICAgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oY29udGV4dC5j b250ZXh0LnVjX21jb250ZXh0LnBjKTsKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisr ICBjb250ZXh0LnNpZ2luZm8uc2lfYWRkciA9CisrICAgICAgcmVpbnRlcnByZXRfY2FzdDx2b2lk Kj4oY29udGV4dC5jb250ZXh0LnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfTklQXSk7CisgI2Vsc2UK KyAjZXJyb3IgIlRoaXMgY29kZSBoYXMgbm90IGJlZW4gcG9ydGVkIHRvIHlvdXIgcGxhdGZvcm0g eWV0LiIKKyAjZW5kaWYKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9i cmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRs ZXIuaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2Jy ZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5oCitAQCAt MTkyLDcgKzE5MiwxMSBAQCBjbGFzcyBFeGNlcHRpb25IYW5kbGVyIHsKKyAgICAgc2lnaW5mb190 IHNpZ2luZm87CisgICAgIHBpZF90IHRpZDsgIC8vIHRoZSBjcmFzaGluZyB0aHJlYWQuCisgICAg IHVjb250ZXh0X3QgY29udGV4dDsKKy0jaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVm aW5lZChfX21pcHNfXykKKysjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgICAvLyBQUEM2 NCdzIEZQIHN0YXRlIGlzIGEgcGFydCBvZiB1Y29udGV4dF90IGxpa2UgTUlQUyBidXQgdGhlIHZl Y3RvcgorKyAgICAvLyBzdGF0ZSBpcyBub3QsIHNvIGEgc3RydWN0IGlzIG5lZWRlZC4KKysgICAg dnN0YXRlX3QgdmVjdG9yX3N0YXRlOworKyNlbGlmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYg IWRlZmluZWQoX19taXBzX18pCisgICAgIC8vICNpZmRlZiB0aGlzIG91dCBiZWNhdXNlIEZQIHN0 YXRlIGlzIG5vdCBwYXJ0IG9mIHVzZXIgQUJJIGZvciBMaW51eCBBUk0uCisgICAgIC8vIEluIGNh c2Ugb2YgTUlQUyBMaW51eCBGUCBzdGF0ZSBpcyBhbHJlYWR5IHBhcnQgb2YgdWNvbnRleHRfdCBz bworICAgICAvLyAnZmxvYXRfc3RhdGUnIGlzIG5vdCByZXF1aXJlZC4KKy0tLSBhL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xp bnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXJfdW5pdHRlc3QuY2MKKysrKyBiL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xp bnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXJfdW5pdHRlc3QuY2MKK0BAIC0zMDcsNyArMzA3 LDcgQEAgVEVTVChFeGNlcHRpb25IYW5kbGVyVGVzdCwgUGFyYWxsZWxDaGlsZAorICAgfQorIAor ICAgLy8gV2FpdCBhIHdoaWxlIHVudGlsIHRoZSBjaGlsZCBzaG91bGQgaGF2ZSBjcmFzaGVkLgor LSAgdXNsZWVwKDEwMDAwMDApOworKyAgdXNsZWVwKDIwMDAwMDApOworICAgLy8gS2lsbCB0aGUg Y2hpbGQgaWYgaXQgaXMgc3RpbGwgcnVubmluZy4KKyAgIGtpbGwoY2hpbGQsIFNJR0tJTEwpOwor IAorQEAgLTU1OSw2ICs1NTksOCBAQCBjb25zdCB1bnNpZ25lZCBjaGFyIGtJbGxlZ2FsSW5zdHJ1 Y3Rpb25bCisgI2lmIGRlZmluZWQoX19taXBzX18pCisgICAvLyBtZmMyIHplcm8sSW1wbCAtIHVz dWFsbHkgaWxsZWdhbCBpbiB1c2Vyc3BhY2UuCisgICAweDQ4LCAweDAwLCAweDAwLCAweDQ4Cisr I2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgMHgwMSwgMHgwMSwgMHgwMSwgMHgwMSAv LyBDcmFzaGVzIG9uIGEgdGVzdGVkIFBPV0VSOSBjcHUKKyAjZWxzZQorICAgLy8gVGhpcyBjcmFz aGVzIHdpdGggU0lHSUxMIG9uIHg4Ni94ODYtNjQvYXJtLgorICAgMHhmZiwgMHhmZiwgMHhmZiwg MHhmZgorQEAgLTc1NCwxMCArNzU2LDEwIEBAIFRFU1QoRXhjZXB0aW9uSGFuZGxlclRlc3QsIElu c3RydWN0aW9uUG8KKyAKKyAgIC8vIFRoZXNlIGFyZSBkZWZpbmVkIGhlcmUgc28gdGhlIHBhcmVu dCBjYW4gdXNlIHRoZW0gdG8gY2hlY2sgdGhlCisgICAvLyBkYXRhIGZyb20gdGhlIG1pbmlkdW1w IGFmdGVyd2FyZHMuCistICAvLyBVc2UgNGsgaGVyZSBiZWNhdXNlIHRoZSBPUyB3aWxsIGhhbmQg b3V0IGEgc2luZ2xlIHBhZ2UgZXZlbgorKyAgLy8gVXNlIHRoZSBwYWdlIHNpemUgaGVyZSBiZWNh dXNlIHRoZSBPUyB3aWxsIGhhbmQgb3V0IGEgc2luZ2xlIHBhZ2UgZXZlbgorICAgLy8gaWYgYSBz bWFsbGVyIHNpemUgaXMgcmVxdWVzdGVkLCBhbmQgdGhpcyB0ZXN0IHdhbnRzIHRvCisgICAvLyB0 ZXN0IHRoZSB1cHBlciBib3VuZCBvZiB0aGUgbWVtb3J5IHJhbmdlLgorLSAgY29uc3QgdWludDMy X3Qga01lbW9yeVNpemUgPSA0MDk2OyAgLy8gYnl0ZXMKKysgIGNvbnN0IHVpbnQzMl90IGtNZW1v cnlTaXplID0gZ2V0cGFnZXNpemUoKTsgIC8vIGJ5dGVzCisgICBjb25zdCBpbnQga09mZnNldCA9 IGtNZW1vcnlTaXplIC0gc2l6ZW9mKGtJbGxlZ2FsSW5zdHJ1Y3Rpb24pOworIAorICAgY29uc3Qg cGlkX3QgY2hpbGQgPSBmb3JrKCk7CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRf cGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taWNyb2R1bXBfd3JpdGVy L21pY3JvZHVtcF93cml0ZXIuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9w YXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pY3JvZHVtcF93cml0ZXIv bWljcm9kdW1wX3dyaXRlci5jYworQEAgLTEzOCw3ICsxMzgsOSBAQCBjbGFzcyBNaWNyb2R1bXBX cml0ZXIgeworICAgICAgICAgICAgICAgICAgIGNvbnN0IE1pY3JvZHVtcEV4dHJhSW5mbyYgbWlj cm9kdW1wX2V4dHJhX2luZm8sCisgICAgICAgICAgICAgICAgICAgTGludXhEdW1wZXIqIGR1bXBl cikKKyAgICAgICA6IHVjb250ZXh0Xyhjb250ZXh0ID8gJmNvbnRleHQtPmNvbnRleHQgOiBOVUxM KSwKKy0jaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKKysj aWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgICAgICAgdmVjdG9yX3N0YXRlXyhjb250ZXh0 ID8gJmNvbnRleHQtPnZlY3Rvcl9zdGF0ZSA6IE5VTEwpLAorKyNlbGlmICFkZWZpbmVkKF9fQVJN X0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCisgICAgICAgICBmbG9hdF9zdGF0ZV8oY29u dGV4dCA/ICZjb250ZXh0LT5mbG9hdF9zdGF0ZSA6IE5VTEwpLAorICNlbmRpZgorICAgICAgICAg ZHVtcGVyXyhkdW1wZXIpLAorQEAgLTMzNyw2ICszMzksOCBAQCBjbGFzcyBNaWNyb2R1bXBXcml0 ZXIgeworICMgZWxzZQorICMgIGVycm9yICJUaGlzIG1pcHMgQUJJIGlzIGN1cnJlbnRseSBub3Qg c3VwcG9ydGVkIChuMzIpIgorICNlbmRpZgorKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykK KysgICAgY29uc3QgY2hhciBrQXJjaFtdID0gInBwYzY0IjsKKyAjZWxzZQorICNlcnJvciAiVGhp cyBjb2RlIGhhcyBub3QgYmVlbiBwb3J0ZWQgdG8geW91ciBwbGF0Zm9ybSB5ZXQiCisgI2VuZGlm CitAQCAtNDA5LDcgKzQxMyw5IEBAIGNsYXNzIE1pY3JvZHVtcFdyaXRlciB7CisgICB2b2lkIER1 bXBDUFVTdGF0ZSgpIHsKKyAgICAgUmF3Q29udGV4dENQVSBjcHU7CisgICAgIG15X21lbXNldCgm Y3B1LCAwLCBzaXplb2YoUmF3Q29udGV4dENQVSkpOworLSNpZiAhZGVmaW5lZChfX0FSTV9FQUJJ X18pICYmICFkZWZpbmVkKF9fbWlwc19fKQorKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisr ICAgIFVDb250ZXh0UmVhZGVyOjpGaWxsQ1BVQ29udGV4dCgmY3B1LCB1Y29udGV4dF8sIHZlY3Rv cl9zdGF0ZV8pOworKyNlbGlmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19t aXBzX18pCisgICAgIFVDb250ZXh0UmVhZGVyOjpGaWxsQ1BVQ29udGV4dCgmY3B1LCB1Y29udGV4 dF8sIGZsb2F0X3N0YXRlXyk7CisgI2Vsc2UKKyAgICAgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVD b250ZXh0KCZjcHUsIHVjb250ZXh0Xyk7CitAQCAtNjA1LDcgKzYxMSw5IEBAIGNsYXNzIE1pY3Jv ZHVtcFdyaXRlciB7CisgICB2b2lkKiBBbGxvYyh1bnNpZ25lZCBieXRlcykgeyByZXR1cm4gZHVt cGVyXy0+YWxsb2NhdG9yKCktPkFsbG9jKGJ5dGVzKTsgfQorIAorICAgY29uc3QgdWNvbnRleHRf dCogY29uc3QgdWNvbnRleHRfOworLSNpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZp bmVkKF9fbWlwc19fKQorKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICBjb25zdCBnb29n bGVfYnJlYWtwYWQ6OnZzdGF0ZV90KiBjb25zdCB2ZWN0b3Jfc3RhdGVfOworKyNlbGlmICFkZWZp bmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCisgICBjb25zdCBnb29nbGVf YnJlYWtwYWQ6OmZwc3RhdGVfdCogY29uc3QgZmxvYXRfc3RhdGVfOworICNlbmRpZgorICAgTGlu dXhEdW1wZXIqIGR1bXBlcl87CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFy dHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taWNyb2R1bXBfd3JpdGVyL21p Y3JvZHVtcF93cml0ZXJfdW5pdHRlc3QuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90 aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pY3JvZHVtcF93 cml0ZXIvbWljcm9kdW1wX3dyaXRlcl91bml0dGVzdC5jYworQEAgLTI3OSwxMCArMjc5LDE5IEBA IFRFU1QoTWljcm9kdW1wV3JpdGVyVGVzdCwgQmFzaWNXaXRoTWFwcGkKKyAgIENyYXNoQW5kR2V0 TWljcm9kdW1wKG1hcHBpbmdzLCBNaWNyb2R1bXBFeHRyYUluZm8oKSwgJmJ1Zik7CisgICBBU1NF UlRfVFJVRShDb250YWluc01pY3JvZHVtcChidWYpKTsKKyAKKysgIGludCBwYWdlX3NpemUgPSBn ZXRwYWdlc2l6ZSgpOworICNpZmRlZiBfX0xQNjRfXworLSAgQVNTRVJUX05FKHN0ZDo6c3RyaW5n OjpucG9zLAorLSAgICAgICAgICAgIGJ1Zi5maW5kKCJNIDAwMDAwMDAwMDAwMDEwMDAgMDAwMDAw MDAwMDAwMDAyQSAwMDAwMDAwMDAwMDAxMDAwICIKKy0gICAgICAgICAgICAgICAgICAgICAiMzMy MjExMDA1NTQ0Nzc2Njg4OTlBQUJCQ0NEREVFRkYwIGxpYmZvby5zbyIpKTsKKysgIC8vIFRoaXMg dGVzdCBpcyBvbmx5IGF2YWlsYWJsZSBmb3IgdGhlIGZvbGxvd2luZyBwYWdlIHNpemVzCisrICBB U1NFUlRfVFJVRSgocGFnZV9zaXplID09IDQwOTYpIHx8IChwYWdlX3NpemUgPT0gNjU1MzYpKTsK KysgIGlmIChwYWdlX3NpemUgPT0gNDA5NikgeworKyAgICBBU1NFUlRfTkUoc3RkOjpzdHJpbmc6 Om5wb3MsCisrICAgICAgICAgICAgICBidWYuZmluZCgiTSAwMDAwMDAwMDAwMDAxMDAwIDAwMDAw MDAwMDAwMDAwMkEgMDAwMDAwMDAwMDAwMTAwMCAiCisrICAgICAgICAgICAgICAgICAgICAgICAi MzMyMjExMDA1NTQ0Nzc2Njg4OTlBQUJCQ0NEREVFRkYwIGxpYmZvby5zbyIpKTsKKysgIH0gZWxz ZSB7CisrICAgIEFTU0VSVF9ORShzdGQ6OnN0cmluZzo6bnBvcywKKysgICAgICAgICAgICAgIGJ1 Zi5maW5kKCJNIDAwMDAwMDAwMDAwMTAwMDAgMDAwMDAwMDAwMDAwMDAyQSAwMDAwMDAwMDAwMDEw MDAwICIKKysgICAgICAgICAgICAgICAgICAgICAgICIzMzIyMTEwMDU1NDQ3NzY2ODg5OUFBQkJD Q0RERUVGRjAgbGliZm9vLnNvIikpOworKyAgfQorICNlbHNlCisgICBBU1NFUlRfTkUoc3RkOjpz dHJpbmc6Om5wb3MsCisgICAgICAgICAgICAgYnVmLmZpbmQoIk0gMDAwMDEwMDAgMDAwMDAwMkEg MDAwMDEwMDAgIgorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFr cGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2NvcmVf ZHVtcGVyLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfY29yZV9k dW1wZXIuY2MKK0BAIC0xMTcsNiArMTE3LDkgQEAgYm9vbCBMaW51eENvcmVEdW1wZXI6OkdldFRo cmVhZEluZm9CeUluZAorICNlbGlmIGRlZmluZWQoX19taXBzX18pCisgICBzdGFja19wb2ludGVy ID0KKyAgICAgICByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihpbmZvLT5tY29udGV4dC5ncmVn c1tNRF9DT05URVhUX01JUFNfUkVHX1NQXSk7CisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQorKyAgc3RhY2tfcG9pbnRlciA9CisrICAgICAgcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4o aW5mby0+bWNvbnRleHQuZ3BfcmVnc1tNRF9DT05URVhUX1BQQzY0X1JFR19TUF0pOworICNlbHNl CisgI2Vycm9yICJUaGlzIGNvZGUgaGFzbid0IGJlZW4gcG9ydGVkIHRvIHlvdXIgcGxhdGZvcm0g eWV0LiIKKyAjZW5kaWYKK0BAIC0yMTIsNyArMjE1LDEwIEBAIGJvb2wgTGludXhDb3JlRHVtcGVy OjpFbnVtZXJhdGVUaHJlYWRzKCkKKyAgICAgICAgIG1lbXNldCgmaW5mbywgMCwgc2l6ZW9mKFRo cmVhZEluZm8pKTsKKyAgICAgICAgIGluZm8udGdpZCA9IHN0YXR1cy0+cHJfcGdycDsKKyAgICAg ICAgIGluZm8ucHBpZCA9IHN0YXR1cy0+cHJfcHBpZDsKKy0jaWYgZGVmaW5lZChfX21pcHNfXykK KysjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkg PCAzMTsgaSsrKQorKyAgICAgICAgICAgIGluZm8ubWNvbnRleHQuZ3BfcmVnc1tpXSA9IHN0YXR1 cy0+cHJfcmVnW2ldOworKyNlbGlmIGRlZmluZWQoX19taXBzX18pCisgI2lmIGRlZmluZWQoX19B TkRST0lEX18pCisgICAgICAgICBmb3IgKGludCBpID0gRUZfUjA7IGkgPD0gRUZfUjMxOyBpKysp CisgICAgICAgICAgIGluZm8ubWNvbnRleHQuZ3JlZ3NbaSAtIEVGX1IwXSA9IHN0YXR1cy0+cHJf cmVnW2ldOworLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFk L2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2R1bXBlci5j YworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFr cGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2R1bXBlci5jYworQEAg LTc2NSw3ICs3NjUsOSBAQCBib29sIExpbnV4RHVtcGVyOjpHZXRTdGFja0luZm8oY29uc3Qgdm9p CisgICAgICAgcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oaW50X3N0YWNrX3BvaW50ZXIgJiB+ KHBhZ2Vfc2l6ZSAtIDEpKTsKKyAKKyAgIC8vIFRoZSBudW1iZXIgb2YgYnl0ZXMgb2Ygc3RhY2sg d2hpY2ggd2UgdHJ5IHRvIGNhcHR1cmUuCistICBzdGF0aWMgY29uc3QgcHRyZGlmZl90IGtTdGFj a1RvQ2FwdHVyZSA9IDMyICogMTAyNDsKKysgIC8vIFRoaXMgbm93IGRlcGVuZHMgb24gcGFnZV9z aXplIHRvIGF2b2lkIG1pc3NpbmcgZGF0YQorKyAgLy8gb24gc3lzdGVtcyB3aXRoIGxhcmdlciBw YWdlIHNpemVzLgorKyAgc3RhdGljIGNvbnN0IHB0cmRpZmZfdCBrU3RhY2tUb0NhcHR1cmUgPSA4 ICogcGFnZV9zaXplOworIAorICAgY29uc3QgTWFwcGluZ0luZm8qIG1hcHBpbmcgPSBGaW5kTWFw cGluZyhzdGFja19wb2ludGVyKTsKKyAgIGlmICghbWFwcGluZykKKy0tLSBhL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4 L21pbmlkdW1wX3dyaXRlci9saW51eF9kdW1wZXIuaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1 bXBfd3JpdGVyL2xpbnV4X2R1bXBlci5oCitAQCAtNjMsNyArNjMsOCBAQCBuYW1lc3BhY2UgZ29v Z2xlX2JyZWFrcGFkIHsKKyAgKGRlZmluZWQoX19taXBzX18pICYmIF9NSVBTX1NJTSA9PSBfQUJJ TzMyKQorIHR5cGVkZWYgRWxmMzJfYXV4dl90IGVsZl9hdXhfZW50cnk7CisgI2VsaWYgZGVmaW5l ZChfX3g4Nl82NCkgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgXAorLSAgICAgKGRlZmluZWQo X19taXBzX18pICYmIF9NSVBTX1NJTSAhPSBfQUJJTzMyKQorKyAgICAgKGRlZmluZWQoX19taXBz X18pICYmIF9NSVBTX1NJTSAhPSBfQUJJTzMyKSB8fCBcCisrICAgICBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCisgdHlwZWRlZiBFbGY2NF9hdXh2X3QgZWxmX2F1eF9lbnRyeTsKKyAjZW5kaWYKKyAK Ky0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3Bh ZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9kdW1wZXJfdW5pdHRlc3Rf aGVscGVyLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfZHVtcGVy X3VuaXR0ZXN0X2hlbHBlci5jYworQEAgLTUxLDYgKzUxLDggQEAKKyAjZGVmaW5lIFRJRF9QVFJf UkVHSVNURVIgInJjeCIKKyAjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQorICNkZWZpbmUgVElEX1BU Ul9SRUdJU1RFUiAiJDEiCisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyNkZWZpbmUg VElEX1BUUl9SRUdJU1RFUiAicjgiCisgI2Vsc2UKKyAjZXJyb3IgVGhpcyB0ZXN0IGhhcyBub3Qg YmVlbiBwb3J0ZWQgdG8gdGhpcyBwbGF0Zm9ybS4KKyAjZW5kaWYKKy0tLSBhL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4 L21pbmlkdW1wX3dyaXRlci9saW51eF9wdHJhY2VfZHVtcGVyLmNjCisrKysgYi9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51 eC9taW5pZHVtcF93cml0ZXIvbGludXhfcHRyYWNlX2R1bXBlci5jYworQEAgLTE1NCwxOSArMTU0 LDI3IEBAIGJvb2wgTGludXhQdHJhY2VEdW1wZXI6OkNvcHlGcm9tUHJvY2VzcygKKyAgIHJldHVy biB0cnVlOworIH0KKyAKKy1ib29sIExpbnV4UHRyYWNlRHVtcGVyOjpSZWFkUmVnaXN0ZXJTZXQo VGhyZWFkSW5mbyogaW5mbywgcGlkX3QgdGlkKQorLXsKKytib29sIExpbnV4UHRyYWNlRHVtcGVy OjpSZWFkUmVnaXN0ZXJTZXQoVGhyZWFkSW5mbyogaW5mbywgcGlkX3QgdGlkKSB7CisgI2lmZGVm IFBUUkFDRV9HRVRSRUdTRVQKKyAgIHN0cnVjdCBpb3ZlYyBpbzsKKyAgIGluZm8tPkdldEdlbmVy YWxQdXJwb3NlUmVnaXN0ZXJzKCZpby5pb3ZfYmFzZSwgJmlvLmlvdl9sZW4pOworLSAgaWYgKHN5 c19wdHJhY2UoUFRSQUNFX0dFVFJFR1NFVCwgdGlkLCAodm9pZCopTlRfUFJTVEFUVVMsICh2b2lk KikmaW8pID09IC0xKSB7CisrICBpZiAocHRyYWNlKFBUUkFDRV9HRVRSRUdTRVQsIHRpZCwgKHZv aWQqKU5UX1BSU1RBVFVTLCAodm9pZCopJmlvKSA9PSAtMSkgeworICAgICByZXR1cm4gZmFsc2U7 CisgICB9CisgCisgICBpbmZvLT5HZXRGbG9hdGluZ1BvaW50UmVnaXN0ZXJzKCZpby5pb3ZfYmFz ZSwgJmlvLmlvdl9sZW4pOworLSAgaWYgKHN5c19wdHJhY2UoUFRSQUNFX0dFVFJFR1NFVCwgdGlk LCAodm9pZCopTlRfRlBSRUdTRVQsICh2b2lkKikmaW8pID09IC0xKSB7CisrICBpZiAocHRyYWNl KFBUUkFDRV9HRVRSRUdTRVQsIHRpZCwgKHZvaWQqKU5UX0ZQUkVHU0VULCAodm9pZCopJmlvKSA9 PSAtMSkgeworICAgICByZXR1cm4gZmFsc2U7CisgICB9CisrCisrI2lmIGRlZmluZWQoX19wb3dl cnBjNjRfXykKKysgIC8vIEdyYWIgdGhlIHZlY3RvciByZWdpc3RlcnMgb24gUFBDNjQgdG9vCisr ICBpbmZvLT5HZXRWZWN0b3JSZWdpc3RlcnMoJmlvLmlvdl9iYXNlLCAmaW8uaW92X2xlbik7Cisr ICBpZiAocHRyYWNlKFBUUkFDRV9HRVRSRUdTRVQsIHRpZCwgKHZvaWQqKU5UX1BQQ19WTVgsICh2 b2lkKikmaW8pID09IC0xKSB7CisrICAgIHJldHVybiBmYWxzZTsKKysgIH0KKysjZW5kaWYgLy8g ZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKworICAgcmV0dXJuIHRydWU7CisgI2Vsc2UKKyAgIHJl dHVybiBmYWxzZTsKK0BAIC0zMDMsNiArMzExLDkgQEAgYm9vbCBMaW51eFB0cmFjZUR1bXBlcjo6 R2V0VGhyZWFkSW5mb0J5SQorICNlbGlmIGRlZmluZWQoX19taXBzX18pCisgICBzdGFja19wb2lu dGVyID0KKyAgICAgICByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihpbmZvLT5tY29udGV4dC5n cmVnc1tNRF9DT05URVhUX01JUFNfUkVHX1NQXSk7CisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQorKyAgc3RhY2tfcG9pbnRlciA9CisrICAgICAgcmVpbnRlcnByZXRfY2FzdDx1aW50OF90 Kj4oaW5mby0+bWNvbnRleHQuZ3BfcmVnc1tNRF9DT05URVhUX1BQQzY0X1JFR19TUF0pOworICNl bHNlCisgI2Vycm9yICJUaGlzIGNvZGUgaGFzbid0IGJlZW4gcG9ydGVkIHRvIHlvdXIgcGxhdGZv cm0geWV0LiIKKyAjZW5kaWYKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0 eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51 eF9wdHJhY2VfZHVtcGVyX3VuaXR0ZXN0LmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0v dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93 cml0ZXIvbGludXhfcHRyYWNlX2R1bXBlcl91bml0dGVzdC5jYworQEAgLTQ2Miw2ICs0NjIsOSBA QCBURVNUKExpbnV4UHRyYWNlRHVtcGVyVGVzdCwgVmVyaWZ5U3RhY2tSCisgI2VsaWYgZGVmaW5l ZChfX21pcHNfXykKKyAgICAgcGlkX3QqIHByb2Nlc3NfdGlkX2xvY2F0aW9uID0KKyAgICAgICAg IHJlaW50ZXJwcmV0X2Nhc3Q8cGlkX3QqPihvbmVfdGhyZWFkLm1jb250ZXh0LmdyZWdzWzFdKTsK KysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICAgIHBpZF90KiBwcm9jZXNzX3RpZF9s b2NhdGlvbiA9CisrICAgICAgICByZWludGVycHJldF9jYXN0PHBpZF90Kj4ob25lX3RocmVhZC5t Y29udGV4dC5ncF9yZWdzWzhdKTsKKyAjZWxzZQorICNlcnJvciBUaGlzIHRlc3QgaGFzIG5vdCBi ZWVuIHBvcnRlZCB0byB0aGlzIHBsYXRmb3JtLgorICNlbmRpZgorQEAgLTU1OSw2ICs1NjIsOCBA QCBURVNUX0YoTGludXhQdHJhY2VEdW1wZXJUZXN0LCBTYW5pdGl6ZVN0CisgICB1aW50cHRyX3Qg aGVhcF9hZGRyID0gdGhyZWFkX2luZm8ucmVncy5yY3g7CisgI2VsaWYgZGVmaW5lZChfX21pcHNf XykKKyAgIHVpbnRwdHJfdCBoZWFwX2FkZHIgPSB0aHJlYWRfaW5mby5tY29udGV4dC5ncmVnc1sx XTsKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICB1aW50cHRyX3QgaGVhcF9hZGRy ID0gdGhyZWFkX2luZm8ubWNvbnRleHQuZ3BfcmVnc1s4XTsKKyAjZWxzZQorICNlcnJvciBUaGlz IHRlc3QgaGFzIG5vdCBiZWVuIHBvcnRlZCB0byB0aGlzIHBsYXRmb3JtLgorICNlbmRpZgorLS0t IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3Ny Yy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlci5jYworKysrIGIv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9j bGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlci5jYworQEAgLTEzNiw3 ICsxMzYsOSBAQCBjbGFzcyBNaW5pZHVtcFdyaXRlciB7CisgICAgICAgOiBmZF8obWluaWR1bXBf ZmQpLAorICAgICAgICAgcGF0aF8obWluaWR1bXBfcGF0aCksCisgICAgICAgICB1Y29udGV4dF8o Y29udGV4dCA/ICZjb250ZXh0LT5jb250ZXh0IDogTlVMTCksCistI2lmICFkZWZpbmVkKF9fQVJN X0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCisrI2lmIGRlZmluZWQoX19wb3dlcnBjNjRf XykKKysgICAgICAgIHZlY3Rvcl9zdGF0ZV8oY29udGV4dCA/ICZjb250ZXh0LT52ZWN0b3Jfc3Rh dGUgOiBOVUxMKSwKKysjZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9f bWlwc19fKQorICAgICAgICAgZmxvYXRfc3RhdGVfKGNvbnRleHQgPyAmY29udGV4dC0+ZmxvYXRf c3RhdGUgOiBOVUxMKSwKKyAjZW5kaWYKKyAgICAgICAgIGR1bXBlcl8oZHVtcGVyKSwKK0BAIC00 NjgsNyArNDcwLDkgQEAgY2xhc3MgTWluaWR1bXBXcml0ZXIgeworICAgICAgICAgaWYgKCFjcHUu QWxsb2NhdGUoKSkKKyAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgbXlfbWVtc2V0 KGNwdS5nZXQoKSwgMCwgc2l6ZW9mKFJhd0NvbnRleHRDUFUpKTsKKy0jaWYgIWRlZmluZWQoX19B Uk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKKysjaWYgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQorKyAgICAgICAgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0KGNwdS5nZXQoKSwg dWNvbnRleHRfLCB2ZWN0b3Jfc3RhdGVfKTsKKysjZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18p ICYmICFkZWZpbmVkKF9fbWlwc19fKQorICAgICAgICAgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVD b250ZXh0KGNwdS5nZXQoKSwgdWNvbnRleHRfLCBmbG9hdF9zdGF0ZV8pOworICNlbHNlCisgICAg ICAgICBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNvbnRleHQoY3B1LmdldCgpLCB1Y29udGV4dF8p OworQEAgLTg5Nyw3ICs5MDEsNyBAQCBjbGFzcyBNaW5pZHVtcFdyaXRlciB7CisgICAgIGRpcmVu dC0+bG9jYXRpb24ucnZhID0gMDsKKyAgIH0KKyAKKy0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwg ZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQorKyNpZiBkZWZpbmVkKF9f aTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IGRl ZmluZWQoX19wb3dlcnBjNjRfXykKKyAgIGJvb2wgV3JpdGVDUFVJbmZvcm1hdGlvbihNRFJhd1N5 c3RlbUluZm8qIHN5c19pbmZvKSB7CisgICAgIGNoYXIgdmVuZG9yX2lkW3NpemVvZihzeXNfaW5m by0+Y3B1Lng4Nl9jcHVfaW5mby52ZW5kb3JfaWQpICsgMV0gPSB7MH07CisgICAgIHN0YXRpYyBj b25zdCBjaGFyIHZlbmRvcl9pZF9uYW1lW10gPSAidmVuZG9yX2lkIjsKK0BAIC05MTcsNyArOTIx LDkgQEAgY2xhc3MgTWluaWR1bXBXcml0ZXIgeworIAorICAgICAvLyBwcm9jZXNzb3JfYXJjaGl0 ZWN0dXJlIHNob3VsZCBhbHdheXMgYmUgc2V0LCBkbyB0aGlzIGZpcnN0CisgICAgIHN5c19pbmZv LT5wcm9jZXNzb3JfYXJjaGl0ZWN0dXJlID0KKy0jaWYgZGVmaW5lZChfX21pcHNfXykKKysjaWYg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgICAgICAgTURfQ1BVX0FSQ0hJVEVDVFVSRV9QUEM2 NDsKKysjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQorICMgaWYgX01JUFNfU0lNID09IF9BQklPMzIK KyAgICAgICAgIE1EX0NQVV9BUkNISVRFQ1RVUkVfTUlQUzsKKyAjIGVsaWYgX01JUFNfU0lNID09 IF9BQkk2NAorQEAgLTEzMzMsNyArMTMzOSw5IEBAIGNsYXNzIE1pbmlkdW1wV3JpdGVyIHsKKyAg IGNvbnN0IGNoYXIqIHBhdGhfOyAgLy8gUGF0aCB0byB0aGUgZmlsZSB3aGVyZSB0aGUgbWluaWR1 bSBzaG91bGQgYmUgd3JpdHRlbi4KKyAKKyAgIGNvbnN0IHVjb250ZXh0X3QqIGNvbnN0IHVjb250 ZXh0XzsgIC8vIGFsc28gZnJvbSB0aGUgc2lnbmFsIGhhbmRsZXIKKy0jaWYgIWRlZmluZWQoX19B Uk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKKysjaWYgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQorKyAgY29uc3QgZ29vZ2xlX2JyZWFrcGFkOjp2c3RhdGVfdCogY29uc3QgdmVjdG9yX3N0 YXRlXzsKKysjZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19f KQorICAgY29uc3QgZ29vZ2xlX2JyZWFrcGFkOjpmcHN0YXRlX3QqIGNvbnN0IGZsb2F0X3N0YXRl XzsgIC8vIGRpdHRvCisgI2VuZGlmCisgICBMaW51eER1bXBlciogZHVtcGVyXzsKKy0tLSBhL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xp ZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXIuaAorKysrIGIvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQv bGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlci5oCitAQCAtNDgsNiArNDgsOCBA QCBjbGFzcyBFeGNlcHRpb25IYW5kbGVyOworIAorICNpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQor IHR5cGVkZWYgc3RydWN0IGZwc2ltZF9jb250ZXh0IGZwc3RhdGVfdDsKKysjZWxpZiBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCisrdHlwZWRlZiB2cnJlZ3NldF90IHZzdGF0ZV90OworICNlbGlmICFk ZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCisgdHlwZWRlZiBzdGQ6 OnJlbW92ZV9wb2ludGVyPGZwcmVnc2V0X3Q+Ojp0eXBlIGZwc3RhdGVfdDsKKyAjZW5kaWYKKy0t LSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9z cmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXJfdW5pdHRlc3Qu Y2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXJfdW5p dHRlc3QuY2MKK0BAIC03MTUsNiArNzE1LDEyIEBAIFRFU1QoTWluaWR1bXBXcml0ZXJUZXN0LCBJ bnZhbGlkU3RhY2tQb2kKKyAjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQorICAgY29udGV4dC5jb250 ZXh0LnVjX21jb250ZXh0LmdyZWdzW01EX0NPTlRFWFRfTUlQU19SRUdfU1BdID0KKyAgICAgICBp bnZhbGlkX3N0YWNrX3BvaW50ZXI7CisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAg Y29udGV4dC5jb250ZXh0LnVjX21jb250ZXh0LmdwX3JlZ3NbTURfQ09OVEVYVF9QUEM2NF9SRUdf U1BdID0KKysgICAgICBpbnZhbGlkX3N0YWNrX3BvaW50ZXI7CisrI2VsaWYgZGVmaW5lZChfX3Bv d2VycGM2NF9fKQorKyAgY29udGV4dC5jb250ZXh0LnVjX21jb250ZXh0LmdwX3JlZ3NbTURfQ09O VEVYVF9QUEM2NF9SRUdfU1BdID0KKysgICAgICBpbnZhbGlkX3N0YWNrX3BvaW50ZXI7CisgI2Vs c2UKKyAjIGVycm9yICJUaGlzIGNvZGUgaGFzIG5vdCBiZWVuIHBvcnRlZCB0byB5b3VyIHBsYXRm b3JtIHlldC4iCisgI2VuZGlmCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFy dHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9tZW1vcnlfbWFwcGVkX2ZpbGUu Y2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvY29tbW9uL2xpbnV4L21lbW9yeV9tYXBwZWRfZmlsZS5jYworQEAgLTY1LDggKzY1 LDcgQEAgYm9vbCBNZW1vcnlNYXBwZWRGaWxlOjpNYXAoY29uc3QgY2hhciogcAorICAgfQorIAor ICNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hYXJjaDY0X18pIHx8IFwKKy0g ICAoZGVmaW5lZChfX21pcHNfXykgJiYgX01JUFNfU0lNID09IF9BQkk2NCkKKy0KKysgICAoZGVm aW5lZChfX21pcHNfXykgJiYgX01JUFNfU0lNID09IF9BQkk2NCkgfHwgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQorICAgc3RydWN0IGtlcm5lbF9zdGF0IHN0OworICAgaWYgKHN5c19mc3RhdChmZCwg JnN0KSA9PSAtMSB8fCBzdC5zdF9zaXplIDwgMCkgeworICNlbHNlCistLS0gYS9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51 eC9tZW1vcnlfbWFwcGVkX2ZpbGVfdW5pdHRlc3QuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L21lbW9y eV9tYXBwZWRfZmlsZV91bml0dGVzdC5jYworQEAgLTE3Niw5ICsxNzYsMTAgQEAgVEVTVF9GKE1l bW9yeU1hcHBlZEZpbGVUZXN0LCBSZW1hcEFmdGVyTQorIFRFU1RfRihNZW1vcnlNYXBwZWRGaWxl VGVzdCwgTWFwV2l0aE9mZnNldCkgeworICAgLy8gUHV0IG1vcmUgZGF0YSBpbiB0aGUgdGVzdCBm aWxlIHRoaXMgdGltZS4gT2Zmc2V0cyBjYW4gb25seSBiZQorICAgLy8gZG9uZSBvbiBwYWdlIGJv dW5kYXJpZXMsIHNvIHdlIG5lZWQgYSB0d28gcGFnZSBmaWxlIHRvIHRlc3QgdGhpcy4KKy0gIGNv bnN0IGludCBwYWdlX3NpemUgPSA0MDk2OworLSAgY2hhciBkYXRhMVsyICogcGFnZV9zaXplXTsK Ky0gIHNpemVfdCBkYXRhMV9zaXplID0gc2l6ZW9mKGRhdGExKTsKKysgIGNvbnN0IGludCBwYWdl X3NpemUgPSBnZXRwYWdlc2l6ZSgpOworKyAgY2hhciAqZGF0YTEgPSBzdGF0aWNfY2FzdDxjaGFy Kj4obWFsbG9jKDIgKiBwYWdlX3NpemUpKTsKKysgIEVYUEVDVF9UUlVFKGRhdGExICE9IE5VTEwp OworKyAgc2l6ZV90IGRhdGExX3NpemUgPSAoMiAqIHBhZ2Vfc2l6ZSk7CisgICBmb3IgKHNpemVf dCBpID0gMDsgaSA8IGRhdGExX3NpemU7ICsraSkgeworICAgICBkYXRhMVtpXSA9IGkgJiAweDdm OworICAgfQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFk L2JyZWFrcGFkL3NyYy9jb21tb24vbWVtb3J5X2FsbG9jYXRvcl91bml0dGVzdC5jYworKysrIGIv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9j b21tb24vbWVtb3J5X2FsbG9jYXRvcl91bml0dGVzdC5jYworQEAgLTU3LDggKzU3LDkgQEAgVEVT VChQYWdlQWxsb2NhdG9yVGVzdCwgTGFyZ2VPYmplY3QpIHsKKyAKKyAgIEVYUEVDVF9FUSgwVSwg YWxsb2NhdG9yLnBhZ2VzX2FsbG9jYXRlZCgpKTsKKyAgIHVpbnQ4X3QqIHAgPSByZWludGVycHJl dF9jYXN0PHVpbnQ4X3QqPihhbGxvY2F0b3IuQWxsb2MoMTAwMDApKTsKKysgIHVpbnQ2NF90IGV4 cGVjdGVkX3BhZ2VzID0gMSArICgoMTAwMDAgLSAxKSAvIGdldHBhZ2VzaXplKCkpOworICAgQVNT RVJUX0ZBTFNFKHAgPT0gTlVMTCk7CistICBFWFBFQ1RfRVEoM1UsIGFsbG9jYXRvci5wYWdlc19h bGxvY2F0ZWQoKSk7CisrICBFWFBFQ1RfRVEoZXhwZWN0ZWRfcGFnZXMsIGFsbG9jYXRvci5wYWdl c19hbGxvY2F0ZWQoKSk7CisgICBmb3IgKHVuc2lnbmVkIGkgPSAxOyBpIDwgMTA7ICsraSkgewor ICAgICB1aW50OF90KiBwID0gcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oYWxsb2NhdG9yLkFs bG9jKGkpKTsKKyAgICAgQVNTRVJUX0ZBTFNFKHAgPT0gTlVMTCk7CistLS0gYS9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL3Byb2Nlc3Nvci9l eHBsb2l0YWJpbGl0eV9saW51eC5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJk X3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9wcm9jZXNzb3IvZXhwbG9pdGFiaWxpdHlfbGlu dXguY2MKK0BAIC0yMDIsMTIgKzIwMiwxNCBAQCBib29sIEV4cGxvaXRhYmlsaXR5TGludXg6OkVu ZGVkT25JbGxlZ2FsCisgICAvLyBDaGVjayBhcmNoaXRlY3R1cmUgYW5kIHNldCBhcmNoaXRlY3R1 cmUgdmFyaWFibGUgdG8gY29ycmVzcG9uZGluZyBmbGFnCisgICAvLyBpbiBvYmpkdW1wLgorICAg c3dpdGNoIChjb250ZXh0LT5HZXRDb250ZXh0Q1BVKCkpIHsKKysjaWYgZGVmaW5lZChfX2kzODYp IHx8IGRlZmluZWQoX194ODZfNjQpCisgICAgIGNhc2UgTURfQ09OVEVYVF9YODY6CisgICAgICAg YXJjaGl0ZWN0dXJlID0gImkzODYiOworICAgICAgIGJyZWFrOworICAgICBjYXNlIE1EX0NPTlRF WFRfQU1ENjQ6CisgICAgICAgYXJjaGl0ZWN0dXJlID0gImkzODY6eDg2LTY0IjsKKyAgICAgICBi cmVhazsKKysjZW5kaWYKKyAgICAgZGVmYXVsdDoKKyAgICAgICAvLyBVbnN1cHBvcnRlZCBhcmNo aXRlY3R1cmUuIE5vdGUgdGhhdCBBUk0gYXJjaGl0ZWN0dXJlcyBhcmUgbm90CisgICAgICAgLy8g c3VwcG9ydGVkIGJlY2F1c2Ugb2JqZHVtcCBkb2VzIG5vdCBzdXBwb3J0IEFSTS4KKy0tLSBhL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvcHJv Y2Vzc29yL2V4cGxvaXRhYmlsaXR5X3VuaXR0ZXN0LmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hy b21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL3Byb2Nlc3Nvci9leHBsb2l0 YWJpbGl0eV91bml0dGVzdC5jYworQEAgLTEwNCw2ICsxMDQsOCBAQCBFeHBsb2l0YWJpbGl0eUZv cihjb25zdCBzdHJpbmcmIGZpbGVuYW1lCisgfQorIAorIFRFU1QoRXhwbG9pdGFiaWxpdHlUZXN0 LCBUZXN0V2luZG93c0VuZ2luZSkgeworKy8vIFRoZSBmb2xsb3dpbmcgdGVzdHMgYXJlIG9ubHkg ZXhlY3V0YWJsZSBvbiBhbiB4ODYtY2xhc3MgbGludXggbWFjaGluZS4KKysjaWYgIWRlZmluZWQo X1dJTjMyKSAmJiAoZGVmaW5lZChfX2kzODYpIHx8IGRlZmluZWQoX194ODZfNjQpKQorICAgQVNT RVJUX0VRKGdvb2dsZV9icmVha3BhZDo6RVhQTE9JVEFCSUxJVFlfSElHSCwKKyAgICAgICAgICAg ICBFeHBsb2l0YWJpbGl0eUZvcigiYXNjaWlfcmVhZF9hdi5kbXAiKSk7CisgICBBU1NFUlRfRVEo Z29vZ2xlX2JyZWFrcGFkOjpFWFBMT0lUQUJJTElUWV9ISUdILAorQEAgLTEzNiw5ICsxMzgsMTIg QEAgVEVTVChFeHBsb2l0YWJpbGl0eVRlc3QsIFRlc3RXaW5kb3dzRW5naQorICAgICAgICAgICAg IEV4cGxvaXRhYmlsaXR5Rm9yKCJyZWFkX2F2X2Nsb2JiZXJfd3JpdGUuZG1wIikpOworICAgQVNT RVJUX0VRKGdvb2dsZV9icmVha3BhZDo6RVhQTE9JVEFCSUxJVFlfTE9XLAorICAgICAgICAgICAg IEV4cGxvaXRhYmlsaXR5Rm9yKCJyZWFkX2F2X2NvbmRpdGlvbmFsLmRtcCIpKTsKKysjZW5kaWYK KyB9CisgCisgVEVTVChFeHBsb2l0YWJpbGl0eVRlc3QsIFRlc3RMaW51eEVuZ2luZSkgeworKy8v IFRoZSBmb2xsb3dpbmcgdGVzdHMgYXJlIG9ubHkgZXhlY3V0YWJsZSBvbiBhbiB4ODYtY2xhc3Mg bGludXggbWFjaGluZS4KKysjaWYgZGVmaW5lZChfX2kzODYpIHx8IGRlZmluZWQoX194ODZfNjQp CisgICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFrcGFkOjpFWFBMT0lUQUJJTElUWV9JTlRFUkVTVElO RywKKyAgICAgICAgICAgICBFeHBsb2l0YWJpbGl0eUZvcigibGludXhfbnVsbF9yZWFkX2F2LmRt cCIpKTsKKyAgIEFTU0VSVF9FUShnb29nbGVfYnJlYWtwYWQ6OkVYUExPSVRBQklMSVRZX0hJR0gs CitAQCAtMTcxLDcgKzE3Niw4IEBAIFRFU1QoRXhwbG9pdGFiaWxpdHlUZXN0LCBUZXN0TGludXhF bmdpbmUKKyAgICAgICAgICAgICBFeHBsb2l0YWJpbGl0eUZvcigibGludXhfZXhlY3V0YWJsZV9o ZWFwLmRtcCIpKTsKKyAgIEFTU0VSVF9FUShnb29nbGVfYnJlYWtwYWQ6OkVYUExPSVRBQklMSVRZ X0hJR0gsCisgICAgICAgICAgICAgRXhwbG9pdGFiaWxpdHlGb3IoImxpbnV4X2ptcF90b19tb2R1 bGVfbm90X2V4ZV9yZWdpb24uZG1wIikpOworLSNpZm5kZWYgX1dJTjMyCisrI2VuZGlmCisrI2lm ICFkZWZpbmVkKF9XSU4zMikgJiYgKGRlZmluZWQoX19pMzg2KSB8fCBkZWZpbmVkKF9feDg2XzY0 KSkKKyAgIEFTU0VSVF9FUShnb29nbGVfYnJlYWtwYWQ6OkVYUExPSVRBQklMSVRZX0hJR0gsCisg ICAgICAgICAgICAgRXhwbG9pdGFiaWxpdHlGb3IoImxpbnV4X3dyaXRlX3RvX25vbndyaXRhYmxl X21vZHVsZS5kbXAiKSk7CisgICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFrcGFkOjpFWFBMT0lUQUJJ TElUWV9ISUdILAorQEAgLTE4MiwxMCArMTg4LDEwIEBAIFRFU1QoRXhwbG9pdGFiaWxpdHlUZXN0 LCBUZXN0TGludXhFbmdpbmUKKyAgICAgICAgICAgICBFeHBsb2l0YWJpbGl0eUZvcigibGludXhf d3JpdGVfdG9fb3V0c2lkZV9tb2R1bGVfdmlhX21hdGguZG1wIikpOworICAgQVNTRVJUX0VRKGdv b2dsZV9icmVha3BhZDo6RVhQTE9JVEFCSUxJVFlfSU5URVJFU1RJTkcsCisgICAgICAgICAgICAg RXhwbG9pdGFiaWxpdHlGb3IoImxpbnV4X3dyaXRlX3RvX3VuZGVyXzRrLmRtcCIpKTsKKy0jZW5k aWYgIC8vIF9XSU4zMgorKyNlbmRpZiAgLy8gIWRlZmluZWQoX1dJTjMyKSAmJiAoIWRlZmluZWQo X19pMzg2KSAmJiAhZGVmaW5lZChfX3g4Nl82NCkpCisgfQorIAorLSNpZm5kZWYgX1dJTjMyCisr I2lmICFkZWZpbmVkKF9XSU4zMikgJiYgKGRlZmluZWQoX19pMzg2KSB8fCBkZWZpbmVkKF9feDg2 XzY0KSkKKyBURVNUKEV4cGxvaXRhYmlsaXR5TGludXhVdGlsc1Rlc3QsIERpc2Fzc2VtYmxlQnl0 ZXNUZXN0KSB7CisgICBBU1NFUlRfRkFMU0UoRXhwbG9pdGFiaWxpdHlMaW51eFRlc3Q6OkRpc2Fz c2VtYmxlQnl0ZXMoIiIsIE5VTEwsIDUsIE5VTEwpKTsKKyAgIHVpbnQ4X3QgYnl0ZXNbNl0gPSB7 MHhjNywgMHgwLCAweDUsIDB4MCwgMHgwLCAweDB9OworQEAgLTMwMSw2ICszMDcsNyBAQCBURVNU KEV4cGxvaXRhYmlsaXR5TGludXhVdGlsc1Rlc3QsIENhbGN1CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmd3JpdGVf YWRkcmVzcykpOworIH0KKy0jZW5kaWYgIC8vIF9XSU4zMgorKyNlbmRpZiAgLy8gIWRlZmluZWQo X1dJTjMyKSAmJiAoZGVmaW5lZChfX2kzODYpIHx8IGRlZmluZWQoX194ODZfNjQpKQorKworIAor IH0gIC8vIG5hbWVzcGFjZQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy90b29scy9saW51eC9tZDJjb3JlL21pbmlkdW1wLTItY29y ZS5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2Jy ZWFrcGFkL3NyYy90b29scy9saW51eC9tZDJjb3JlL21pbmlkdW1wLTItY29yZS5jYworQEAgLTc3 LDYgKzc3LDggQEAKKyAgICNkZWZpbmUgRUxGX0FSQ0ggIEVNX01JUFMKKyAjZWxpZiBkZWZpbmVk KF9fYWFyY2g2NF9fKQorICAgI2RlZmluZSBFTEZfQVJDSCAgRU1fQUFSQ0g2NAorKyNlbGlmIGRl ZmluZWQoX19wb3dlcnBjNjRfXykKKysgICNkZWZpbmUgRUxGX0FSQ0ggIEVNX1BQQzY0CisgI2Vu ZGlmCisgCisgI2lmIGRlZmluZWQoX19hcm1fXykKK0BAIC04Nyw2ICs4OSw4IEBAIHR5cGVkZWYg dXNlcl9yZWdzIHVzZXJfcmVnc19zdHJ1Y3Q7CisgI2VsaWYgZGVmaW5lZCAoX19taXBzX18pCisg Ly8gVGhpcyBmaWxlLWxvY2FsIHR5cGVkZWYgc2ltcGxpZmllcyB0aGUgc291cmNlIGNvZGUuCisg dHlwZWRlZiBncmVnc2V0X3QgdXNlcl9yZWdzX3N0cnVjdDsKKysjZWxpZiBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pCisrdHlwZWRlZiBzdHJ1Y3QgcHRfcmVncyB1c2VyX3JlZ3Nfc3RydWN0OworICNl bmRpZgorIAorIHVzaW5nIGdvb2dsZV9icmVha3BhZDo6TURUeXBlSGVscGVyOworQEAgLTMyMiw2 ICszMjYsMTIgQEAgc3RydWN0IENyYXNoZWRQcm9jZXNzIHsKKyAjaWYgZGVmaW5lZChfX2FhcmNo NjRfXykKKyAgICAgdXNlcl9mcHNpbWRfc3RydWN0IGZwcmVnczsKKyAjZW5kaWYKKysjaWYgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQorKyAgICBtY29udGV4dF90IG1jb250ZXh0OworKyNlbmRpZgor KyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICAgIG1jb250ZXh0X3QgbWNvbnRleHQ7Cisr I2VuZGlmCisgICAgIHVpbnRwdHJfdCBzdGFja19hZGRyOworICAgICBjb25zdCB1aW50OF90KiBz dGFjazsKKyAgICAgc2l6ZV90IHN0YWNrX2xlbmd0aDsKK0BAIC01MzUsNiArNTQ1LDM4IEBAIFBh cnNlVGhyZWFkUmVnaXN0ZXJzKENyYXNoZWRQcm9jZXNzOjpUaHIKKyAgIHRocmVhZC0+bWNvbnRl eHQuZnBjX2VpciA9IHJhd3JlZ3MtPmZsb2F0X3NhdmUuZmlyOworICNlbmRpZgorIH0KKysjZWxp ZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrc3RhdGljIHZvaWQKKytQYXJzZVRocmVhZFJlZ2lz dGVycyhDcmFzaGVkUHJvY2Vzczo6VGhyZWFkKiB0aHJlYWQsCisrICAgICAgICAgICAgICAgICAg ICAgY29uc3QgTWluaWR1bXBNZW1vcnlSYW5nZSYgcmFuZ2UpIHsKKysgIGNvbnN0IE1EUmF3Q29u dGV4dFBQQzY0KiByYXdyZWdzID0gcmFuZ2UuR2V0RGF0YTxNRFJhd0NvbnRleHRQUEM2ND4oMCk7 CisrCisrICBmb3IgKGludCBpID0gMDsgaSA8IE1EX0NPTlRFWFRfUFBDNjRfR1BSX0NPVU5UOyBp KyspCisrICAgIHRocmVhZC0+bWNvbnRleHQuZ3BfcmVnc1tpXSA9IHJhd3JlZ3MtPmdwcltpXTsK KysKKysgIHRocmVhZC0+bWNvbnRleHQuZ3BfcmVnc1tQVF9MTktdID0gcmF3cmVncy0+bHI7Cisr ICB0aHJlYWQtPm1jb250ZXh0LmdwX3JlZ3NbUFRfTklQXSA9IHJhd3JlZ3MtPnNycjA7CisrICB0 aHJlYWQtPm1jb250ZXh0LmdwX3JlZ3NbUFRfTVNSXSA9IHJhd3JlZ3MtPnNycjE7CisrICB0aHJl YWQtPm1jb250ZXh0LmdwX3JlZ3NbUFRfQ0NSXSA9IHJhd3JlZ3MtPmNyOworKyAgdGhyZWFkLT5t Y29udGV4dC5ncF9yZWdzW1BUX1hFUl0gPSByYXdyZWdzLT54ZXI7CisrICB0aHJlYWQtPm1jb250 ZXh0LmdwX3JlZ3NbUFRfQ1RSXSA9IHJhd3JlZ3MtPmN0cjsKKysgIHRocmVhZC0+bWNvbnRleHQu dl9yZWdzLT52cnNhdmUgPSByYXdyZWdzLT52cnNhdmU7CisrCisrICBmb3IgKGludCBpID0gMDsg aSA8IE1EX0ZMT0FUSU5HU0FWRUFSRUFfUFBDX0ZQUl9DT1VOVDsgaSsrKQorKyAgICAgIHRocmVh ZC0+bWNvbnRleHQuZnBfcmVnc1tpXSA9IHJhd3JlZ3MtPmZsb2F0X3NhdmUuZnByZWdzW2ldOwor KworKyAgdGhyZWFkLT5tY29udGV4dC5mcF9yZWdzW05GUFJFRy0xXSA9IHJhd3JlZ3MtPmZsb2F0 X3NhdmUuZnBzY3I7CisrCisrICBmb3IgKGludCBpID0gMDsgaSA8IE1EX1ZFQ1RPUlNBVkVBUkVB X1BQQ19WUl9DT1VOVDsgaSsrKSB7CisrICAgICAgdGhyZWFkLT5tY29udGV4dC52X3JlZ3MtPnZy cmVnc1tpXVswXSA9IHJhd3JlZ3MtPnZlY3Rvcl9zYXZlLnNhdmVfdnJbaV0uaGlnaCA+PiAzMjsK KysgICAgICB0aHJlYWQtPm1jb250ZXh0LnZfcmVncy0+dnJyZWdzW2ldWzFdID0gcmF3cmVncy0+ dmVjdG9yX3NhdmUuc2F2ZV92cltpXS5oaWdoOworKyAgICAgIHRocmVhZC0+bWNvbnRleHQudl9y ZWdzLT52cnJlZ3NbaV1bMl0gPSByYXdyZWdzLT52ZWN0b3Jfc2F2ZS5zYXZlX3ZyW2ldLmxvdyA+ PiAzMjsKKysgICAgICB0aHJlYWQtPm1jb250ZXh0LnZfcmVncy0+dnJyZWdzW2ldWzNdID0gcmF3 cmVncy0+dmVjdG9yX3NhdmUuc2F2ZV92cltpXS5sb3c7CisrICB9CisrCisrICB0aHJlYWQtPm1j b250ZXh0LnZfcmVncy0+dnNjci52c2NyX3dvcmQgPSByYXdyZWdzLT52ZWN0b3Jfc2F2ZS5zYXZl X3ZzY3IubG93ICYgMHhGRkZGRkZGRjsKKyt9CisrCisgI2Vsc2UKKyAjZXJyb3IgIlRoaXMgY29k ZSBoYXMgbm90IGJlZW4gcG9ydGVkIHRvIHlvdXIgcGxhdGZvcm0geWV0IgorICNlbmRpZgorQEAg LTYyMyw2ICs2NjUsMTIgQEAgUGFyc2VTeXN0ZW1JbmZvKGNvbnN0IE9wdGlvbnMmIG9wdGlvbnMs CisgIyBlbHNlCisgIyAgZXJyb3IgIlRoaXMgbWlwcyBBQkkgaXMgY3VycmVudGx5IG5vdCBzdXBw b3J0ZWQgKG4zMikiCisgIyBlbmRpZgorKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysg IGlmIChzeXNpbmZvLT5wcm9jZXNzb3JfYXJjaGl0ZWN0dXJlICE9IE1EX0NQVV9BUkNISVRFQ1RV UkVfUFBDNjQpIHsKKysgICAgZnByaW50ZihzdGRlcnIsCisrICAgICAgICAgICAgIlRoaXMgdmVy c2lvbiBvZiBtaW5pZHVtcC0yLWNvcmUgb25seSBzdXBwb3J0cyBQUEM2NC5cbiIpOworKyAgICBl eGl0KDEpOworKyAgfQorICNlbHNlCisgI2Vycm9yICJUaGlzIGNvZGUgaGFzIG5vdCBiZWVuIHBv cnRlZCB0byB5b3VyIHBsYXRmb3JtIHlldCIKKyAjZW5kaWYKKy0tLSBhL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9DT05UUklCVVRPUlMKKysrKyBi L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9DT05U UklCVVRPUlMKK0BAIC0xMywzICsxMyw0IEBAIE1hcmsgTWVudG92YWkgPG1hcmtAY2hyb21pdW0u b3JnPgorIFJvYmVydCBTZXNlayA8cnNlc2VrQGNocm9taXVtLm9yZz4KKyBTY290dCBHcmFoYW0g PHNjb3R0bWdAY2hyb21pdW0ub3JnPgorIEpvc2h1YSBQZXJhemEgPGpwZXJhemFAY2hyb21pdW0u b3JnPgorK1NoYXduIEFuYXN0YXNpbyA8c2hhd25AYW5hc3Rhcy5pbz4KKy0tLSBhL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9jb21wYXQvbGludXgv c3lzL3VzZXIuaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL2NvbXBhdC9saW51eC9zeXMvdXNlci5oCitAQCAtMTUsNiArMTUsNyBAQAor ICNpZm5kZWYgQ1JBU0hQQURfQ09NUEFUX0xJTlVYX1NZU19VU0VSX0hfCisgI2RlZmluZSBDUkFT SFBBRF9DT01QQVRfTElOVVhfU1lTX1VTRVJfSF8KKyAKKysjaW5jbHVkZSA8Y3N0ZGRlZj4KKyAj aW5jbHVkZV9uZXh0IDxzeXMvdXNlci5oPgorIAorICNpbmNsdWRlIDxmZWF0dXJlcy5oPgorLS0t IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21p bmlkdW1wL21pbmlkdW1wX2NvbnRleHQuaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Ro aXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHQuaAor QEAgLTU5Miw2ICs1OTIsNzAgQEAgc3RydWN0IE1pbmlkdW1wQ29udGV4dE1JUFM2NCB7CisgICB1 aW50NjRfdCBmaXI7CisgfTsKKyAKKysvLyEgXGJyaWVmIHBwYzY0LXNwZWNpZmljIGZsYWdzIGZv ciBNaW5pZHVtcFBQQzY0Ojpjb250ZXh0X2ZsYWdzCisrLy8hIEJhc2VkIG9uIG1pbmlkdW1wX2Nw dV9wcGM2NC5oIGZyb20gYnJlYWtwYWQKKytlbnVtIE1pbmlkdW1wQ29udGV4dFBQQzY0RmxhZ3Mg OiB1aW50MzJfdCB7CisrICAvLyEgXGJyaWVmIElkZW50aWZpZXMgdGhlIGNvbnRleHQgYXMgUFBD NjQuCisrICBrTWluaWR1bXBDb250ZXh0UFBDNjQgPSAweDAxMDAwMDAwLAorKworKyAgLy8hIFxi cmllZiBJbmRpY2F0ZXMgdGhlIHZhbGlkaXR5IG9mIGdlbmVyYWwgcHVycG9zZSByZWdpc3RlcnMu CisrICAvLyEKKysgIC8vISBSZWdpc3RlcnMgYHIwYC1gcjMxYCwgYG5pcGAsIGBtc3JgLCBgbHJg LCBldGMuIGFyZSB2YWxpZC4KKysgIGtNaW5pZHVtcENvbnRleHRQUEM2NEJhc2UgPSBrTWluaWR1 bXBDb250ZXh0UFBDNjQgfCAweDAwMDAwMDAxLAorKworKyAgLy8hIFxicmllZiBJbmRpY2F0ZXMg dGhlIHZhbGlkaXR5IG9mIGZsb2F0aW5nIHBvaW50IHJlZ2lzdGVycy4KKysgIC8vIQorKyAgLy8h IFJlZ2lzdGVycyBgZnAwYC1gZnAzMWAsIGBmcHNjcmAgYXJlIHZhbGlkLgorKyAga01pbmlkdW1w Q29udGV4dFBQQzY0RmxvYXRpbmcgPSBrTWluaWR1bXBDb250ZXh0UFBDNjQgfCAweDAwMDAwMDA4 LAorKworKyAgLy8hIFxicmllZiBJbmRpY2F0ZXMgdGhlIHZhbGlkaXR5IG9mIEFsdGl2ZWMvVk1Y IHJlZ2lzdGVycy4KKysgIC8vIQorKyAgLy8hIFJlZ2lzdGVycyBgdjBgLWB2MzFgLCBgdnNjcmAs IGB2cnNhdmVgLgorKyAga01pbmlkdW1wQ29udGV4dFBQQzY0VmVjdG9yID0ga01pbmlkdW1wQ29u dGV4dFBQQzY0IHwgMHgwMDAwMDAyMCwKKysKKysgIC8vISBcYnJpZWYgSW5kaWNhdGVzIHRoZSB2 YWxpZGl0eSBvZiBhbGwgcmVnaXN0ZXJzCisrICBrTWluaWR1bXBDb250ZXh0UFBDNjRBbGwgPSBr TWluaWR1bXBDb250ZXh0UFBDNjRCYXNlICAgICB8CisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBrTWluaWR1bXBDb250ZXh0UFBDNjRGbG9hdGluZyB8CisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBrTWluaWR1bXBDb250ZXh0UFBDNjRWZWN0b3IKKyt9OworKworKy8vISBcYnJp ZWYgQSBQUEM2NCBDUFUgY29udGV4dCBjYXJyaWVkIGluIGEgbWluaWR1bXAgZmlsZS4KKysvLyEg QmFzZWQgb24gbWluaWR1bXBfY3B1X3BwYzY0LmggZnJvbSBicmVha3BhZC4KKytzdHJ1Y3QgTWlu aWR1bXBDb250ZXh0UFBDNjQgeworKyAgdWludDY0X3QgY29udGV4dF9mbGFnczsKKysKKysgIC8v ISBcYnJpZWYgR2VuZXJhbCBwdXJwb3NlIHJlZ2lzdGVycy4KKysgIHVpbnQ2NF90IG5pcDsKKysg IHVpbnQ2NF90IG1zcjsKKysgIHVpbnQ2NF90IHJlZ3NbMzJdOworKyAgdWludDY0X3QgY2NyOwor KyAgdWludDY0X3QgeGVyOworKyAgdWludDY0X3QgbG5rOworKyAgdWludDY0X3QgY3RyOworKwor KyAgLy8hIFxicmllZiBGbG9hdGluZyBwb2ludCByZWdpc3RlcnMuCisrICBkb3VibGUgZnByZWdz WzMyXTsKKysKKysgIC8vISBcYnJpZWYgRlBVIHN0YXR1cyByZWdpc3Rlci4KKysgIGRvdWJsZSBm cHNjcjsKKysKKysgIC8vISBcYnJpZWYgQWx0aXZlYy9WTVggdmVjdG9yIHJlZ2lzdGVycy4KKysg IHN0cnVjdCB7CisrICAgICAgLy8hIFxicmllZiBWZWN0b3IgcmVnaXN0ZXJzIGFyZSAxMjhiaXRz LgorKyAgICAgIHVpbnQxMjhfc3RydWN0IHNhdmVfdnJbMzJdOworKyAgICAgIHVpbnQxMjhfc3Ry dWN0IHNhdmVfdnNjcjsKKysKKysgICAgICAvLyEgXGJyaWVmIFBhZGRpbmcgaW5jbHVkZWQgZm9y IGJyZWFrcGFkIGNvbXBhdGliaWx0aXkuCisrICAgICAgdWludDMyX3Qgc2F2ZV9wYWQ1WzRdOwor KworKyAgICAgIC8vISBcYnJpZWYgVlJTQVZFIHJlZ2lzdGVyLgorKyAgICAgIHVpbnQzMl90IHNh dmVfdnJzYXZlOworKworKyAgICAgIC8vISBcYnJpZWYgUGFkZGluZyBpbmNsdWRlZCBmb3IgYnJl YWtwYWQgY29tcGF0aWJpbHRpeS4KKysgICAgICB1aW50MzJfdCBzYXZlX3BhZDZbN107CisrICB9 IHZyZWdzOworK307CisrCisgfSAgLy8gbmFtZXNwYWNlIGNyYXNocGFkCisgCisgI2VuZGlmICAv LyBDUkFTSFBBRF9NSU5JRFVNUF9NSU5JRFVNUF9DT05URVhUX0hfCistLS0gYS9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1 bXBfY29udGV4dF93cml0ZXIuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0X3dyaXRlci5j YworQEAgLTEwMSw2ICsxMDEsMTMgQEAgTWluaWR1bXBDb250ZXh0V3JpdGVyOjpDcmVhdGVGcm9t U25hcHNobworICAgICAgIGJyZWFrOworICAgICB9CisgCisrICAgIGNhc2Uga0NQVUFyY2hpdGVj dHVyZVBQQzY0OiB7CisrICAgICAgY29udGV4dCA9IHN0ZDo6bWFrZV91bmlxdWU8TWluaWR1bXBD b250ZXh0UFBDNjRXcml0ZXI+KCk7CisrICAgICAgcmVpbnRlcnByZXRfY2FzdDxNaW5pZHVtcENv bnRleHRQUEM2NFdyaXRlcio+KGNvbnRleHQuZ2V0KCkpCisrICAgICAgICAgIC0+SW5pdGFsaXpl RnJvbVNuYXBzaG90KGNvbnRleHRfc25hcHNob3QtPnBwYzY0KTsKKysgICAgICBicmVhazsKKysg ICAgfQorKworICAgICBkZWZhdWx0OiB7CisgICAgICAgTE9HKEVSUk9SKSA8PCAidW5rbm93biBj b250ZXh0IGFyY2hpdGVjdHVyZSAiCisgICAgICAgICAgICAgICAgICA8PCBjb250ZXh0X3NuYXBz aG90LT5hcmNoaXRlY3R1cmU7CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFy dHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29udGV4dF93cml0ZXIuaAor KysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHRfd3JpdGVyLmgKK0BAIC0zMTUsNiArMzE1LDQ1IEBA IGNsYXNzIE1pbmlkdW1wQ29udGV4dE1JUFM2NFdyaXRlciBmaW5hbAorICAgRElTQUxMT1dfQ09Q WV9BTkRfQVNTSUdOKE1pbmlkdW1wQ29udGV4dE1JUFM2NFdyaXRlcik7CisgfTsKKyAKKytjbGFz cyBNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlciBmaW5hbCA6IHB1YmxpYyBNaW5pZHVtcENvbnRl eHRXcml0ZXIgeworKyBwdWJsaWM6CisrICBNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlcigpOwor KyAgfk1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyKCkgb3ZlcnJpZGU7CisrCisrICAvLyEgXGJy aWVmIEluaXRhbGl6ZXMgdGhlIE1pbmlkdW1wQ29udGV4dFBQQzY0IGJhc2VkIG9uIFxhIGNvbnRl eHRfc25hcHNob3QuCisrICAvLyEKKysgIC8vISBccGFyYW1baW5dIGNvbnRleHRfc25hcHNob3Qg VGhlIGNvbnRleHQgc25hcHNob3QgdG8gdXNlIGFzIHNvdXJjZSBkYXRhLgorKyAgLy8hCisrICAv LyEgXG5vdGUgVmFsaWQgaW4gI2tTdGF0ZU11dGFibGUuIE5vIG11dGF0aW9uIG9mIGNvbnRleHQo KSBtYXkgYmUgZG9uZSBiZWZvcmUKKysgIC8vISAgICAgY2FsbGluZyB0aGlzIG1ldGhvZCwgYW5k IGl0IGlzIG5vdCBub3JtYWxseSBuZWNlc3NhcnkgdG8gYWx0ZXIKKysgIC8vISAgICAgY29udGV4 dCgpIGFmdGVyIGNhbGxpbmcgdGhpcyBtZXRob2QuCisrICB2b2lkIEluaXRhbGl6ZUZyb21TbmFw c2hvdChjb25zdCBDUFVDb250ZXh0UFBDNjQqIGNvbnRleHRfc25hcHNob3QpOworKworKyAgLy8h IFxicmllZiBSZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgY29udGV4dCBzdHJ1Y3R1cmUgdGhhdCB0 aGlzIG9iamVjdCB3aWxsCisrICAvLyEgICAgIHdyaXRlLgorKyAgLy8hCisrICAvLyEgXGF0dGVu dGlvbiBUaGlzIHJldHVybnMgYSBub24tYGNvbnN0YCBwb2ludGVyIHRvIHRoaXMgb2JqZWN04oCZ cyBwcml2YXRlCisrICAvLyEgICAgIGRhdGEgc28gdGhhdCBhIGNhbGxlciBjYW4gcG9wdWxhdGUg dGhlIGNvbnRleHQgc3RydWN0dXJlIGRpcmVjdGx5LgorKyAgLy8hICAgICBUaGlzIGlzIGRvbmUg YmVjYXVzZSBwcm92aWRpbmcgc2V0dGVyIGludGVyZmFjZXMgdG8gZWFjaCBmaWVsZCBpbiB0aGUK KysgIC8vISAgICAgY29udGV4dCBzdHJ1Y3R1cmUgd291bGQgYmUgdW53aWVsZHkgYW5kIGN1bWJl cnNvbWUuIENhcmUgbXVzdCBiZSB0YWtlbgorKyAgLy8hICAgICB0byBwb3B1bGF0ZSB0aGUgY29u dGV4dCBzdHJ1Y3R1cmUgY29ycmVjdGx5LiBUaGUgY29udGV4dCBzdHJ1Y3R1cmUKKysgIC8vISAg ICAgbXVzdCBvbmx5IGJlIG1vZGlmaWVkIHdoaWxlIHRoaXMgb2JqZWN0IGlzIGluIHRoZSAja1N0 YXRlTXV0YWJsZQorKyAgLy8hICAgICBzdGF0ZS4KKysgIE1pbmlkdW1wQ29udGV4dFBQQzY0KiBj b250ZXh0KCkgeyByZXR1cm4gJmNvbnRleHRfOyB9CisrCisrIHByb3RlY3RlZDoKKysgIC8vIE1p bmlkdW1wV3JpdGFibGU6CisrICBib29sIFdyaXRlT2JqZWN0KEZpbGVXcml0ZXJJbnRlcmZhY2Uq IGZpbGVfd3JpdGVyKSBvdmVycmlkZTsKKysKKysgIC8vIE1pbmlkdW1wQ29udGV4dFdyaXRlcjoK KysgIHNpemVfdCBDb250ZXh0U2l6ZSgpIGNvbnN0IG92ZXJyaWRlOworKworKyBwcml2YXRlOgor KyAgTWluaWR1bXBDb250ZXh0UFBDNjQgY29udGV4dF87CisrCisrICBESVNBTExPV19DT1BZX0FO RF9BU1NJR04oTWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXIpOworK307CisrCisgfSAgLy8gbmFt ZXNwYWNlIGNyYXNocGFkCisgCisgI2VuZGlmICAvLyBDUkFTSFBBRF9NSU5JRFVNUF9NSU5JRFVN UF9DT05URVhUX1dSSVRFUl9IXworLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHRfd3JpdGVyX3Rl c3QuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9j cmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0X3dyaXRlcl90ZXN0LmNjCitAQCAtMjEz LDYgKzIxMywyMSBAQCBURVNUKE1pbmlkdW1wQ29udGV4dFdyaXRlciwgTUlQUzY0X0Zyb21TCisg ICAgICAgY29udGV4dCwgRXhwZWN0TWluaWR1bXBDb250ZXh0TUlQUzY0LCBrU2VlZCk7CisgfQor IAorK1RFU1QoTWluaWR1bXBDb250ZXh0V3JpdGVyLCBQUEM2NF9aZXJvcykgeworKyAgRW1wdHlD b250ZXh0VGVzdDxNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlciwgTWluaWR1bXBDb250ZXh0UFBD NjQ+KAorKyAgICBFeHBlY3RNaW5pZHVtcENvbnRleHRQUEM2NCk7CisrfQorKworK1RFU1QoTWlu aWR1bXBDb250ZXh0V3JpdGVyLCBQUEM2NF9Gcm9tU25hcHNob3QpIHsKKysgIGNvbnN0ZXhwciB1 aW50MzJfdCBrU2VlZCA9IDY0OworKyAgQ1BVQ29udGV4dFBQQzY0IGNvbnRleHRfcHBjNjQ7Cisr ICBDUFVDb250ZXh0IGNvbnRleHQ7CisrICBjb250ZXh0LnBwYzY0ID0gJmNvbnRleHRfcHBjNjQ7 CisrICBJbml0aWFsaXplQ1BVQ29udGV4dFBQQzY0KCZjb250ZXh0LCBrU2VlZCk7CisrICBGcm9t U25hcHNob3RUZXN0PE1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyLCBNaW5pZHVtcENvbnRleHRQ UEM2ND4oCisrICAgICAgY29udGV4dCwgRXhwZWN0TWluaWR1bXBDb250ZXh0UFBDNjQsIGtTZWVk KTsKKyt9CisrCisgfSAgLy8gbmFtZXNwYWNlCisgfSAgLy8gbmFtZXNwYWNlIHRlc3QKKyB9ICAv LyBuYW1lc3BhY2UgY3Jhc2hwYWQKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9taXNjX2luZm9fd3JpdGVy LmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jh c2hwYWQvbWluaWR1bXAvbWluaWR1bXBfbWlzY19pbmZvX3dyaXRlci5jYworQEAgLTEzNSw2ICsx MzUsOCBAQCBzdGQ6OnN0cmluZyBNaW5pZHVtcE1pc2NJbmZvRGVidWdCdWlsZFN0CisgICBzdGF0 aWMgY29uc3RleHByIGNoYXIga0NQVVtdID0gIm1pcHMiOworICNlbGlmIGRlZmluZWQoQVJDSF9D UFVfTUlQUzY0RUwpCisgICBzdGF0aWMgY29uc3RleHByIGNoYXIga0NQVVtdID0gIm1pcHM2NCI7 CisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NCkKKysgIHN0YXRpYyBjb25zdGV4cHIgY2hh ciBrQ1BVW10gPSAicHBjNjQiOworICNlbHNlCisgI2Vycm9yIGRlZmluZSBrQ1BVIGZvciB0aGlz IENQVQorICNlbmRpZgorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Ny YXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2NhcHR1cmVfbWVtb3J5LmNjCisrKysgYi9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY2Fw dHVyZV9tZW1vcnkuY2MKK0BAIC0xMTIsNiArMTEyLDExIEBAIHZvaWQgQ2FwdHVyZU1lbW9yeTo6 UG9pbnRlZFRvQnlDb250ZXh0KGMKKyAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYmFzZTo6c2l6 ZShjb250ZXh0Lm1pcHNlbC0+cmVncyk7ICsraSkgeworICAgICBNYXliZUNhcHR1cmVNZW1vcnlB cm91bmQoZGVsZWdhdGUsIGNvbnRleHQubWlwc2VsLT5yZWdzW2ldKTsKKyAgIH0KKysjZWxpZiBk ZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKysgIE1heWJlQ2FwdHVyZU1lbW9yeUFyb3Vu ZChkZWxlZ2F0ZSwgY29udGV4dC5wcGM2NC0+bmlwKTsKKysgIGZvciAoc2l6ZV90IGkgPSAwOyBp IDwgYmFzZTo6c2l6ZShjb250ZXh0LnBwYzY0LT5yZWdzKTsgKytpKSB7CisrICAgIE1heWJlQ2Fw dHVyZU1lbW9yeUFyb3VuZChkZWxlZ2F0ZSwgY29udGV4dC5wcGM2NC0+cmVnc1tpXSk7CisrICB9 CisgI2Vsc2UKKyAjZXJyb3IgUG9ydC4KKyAjZW5kaWYKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfYXJjaGl0ZWN0 dXJlLmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9j cmFzaHBhZC9zbmFwc2hvdC9jcHVfYXJjaGl0ZWN0dXJlLmgKK0BAIC00Myw3ICs0MywxMCBAQCBl bnVtIENQVUFyY2hpdGVjdHVyZSB7CisgICBrQ1BVQXJjaGl0ZWN0dXJlTUlQU0VMLAorIAorICAg Ly8hIFxicmllZiA2NC1iaXQgTUlQU0VMLgorLSAga0NQVUFyY2hpdGVjdHVyZU1JUFM2NEVMCisr ICBrQ1BVQXJjaGl0ZWN0dXJlTUlQUzY0RUwsCisrCisrICAvLyEgXGJyaWVmIDY0LWJpdCBQUEM2 NC4KKysgIGtDUFVBcmNoaXRlY3R1cmVQUEM2NAorIH07CisgCisgfSAgLy8gbmFtZXNwYWNlIGNy YXNocGFkCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQv Y3Jhc2hwYWQvc25hcHNob3QvY3B1X2NvbnRleHQuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfY29udGV4dC5j YworQEAgLTE2OSw2ICsxNjksOCBAQCB1aW50NjRfdCBDUFVDb250ZXh0OjpJbnN0cnVjdGlvblBv aW50ZXIoCisgICAgICAgcmV0dXJuIGFybS0+cGM7CisgICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVy ZUFSTTY0OgorICAgICAgIHJldHVybiBhcm02NC0+cGM7CisrICAgIGNhc2Uga0NQVUFyY2hpdGVj dHVyZVBQQzY0OgorKyAgICAgIHJldHVybiBwcGM2NC0+bmlwOworICAgICBkZWZhdWx0OgorICAg ICAgIE5PVFJFQUNIRUQoKTsKKyAgICAgICByZXR1cm4gfjB1bGw7CitAQCAtMTg1LDYgKzE4Nyw4 IEBAIHVpbnQ2NF90IENQVUNvbnRleHQ6OlN0YWNrUG9pbnRlcigpIGNvbnMKKyAgICAgICByZXR1 cm4gYXJtLT5zcDsKKyAgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlQVJNNjQ6CisgICAgICAgcmV0 dXJuIGFybTY0LT5zcDsKKysgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlUFBDNjQ6CisrICAgICAg cmV0dXJuIHBwYzY0LT5yZWdzWzFdOworICAgICBkZWZhdWx0OgorICAgICAgIE5PVFJFQUNIRUQo KTsKKyAgICAgICByZXR1cm4gfjB1bGw7CitAQCAtMTk2LDYgKzIwMCw3IEBAIGJvb2wgQ1BVQ29u dGV4dDo6SXM2NEJpdCgpIGNvbnN0IHsKKyAgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlWDg2XzY0 OgorICAgICBjYXNlIGtDUFVBcmNoaXRlY3R1cmVBUk02NDoKKyAgICAgY2FzZSBrQ1BVQXJjaGl0 ZWN0dXJlTUlQUzY0RUw6CisrICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVyZVBQQzY0OgorICAgICAg IHJldHVybiB0cnVlOworICAgICBjYXNlIGtDUFVBcmNoaXRlY3R1cmVYODY6CisgICAgIGNhc2Ug a0NQVUFyY2hpdGVjdHVyZUFSTToKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfY29udGV4dC5oCisrKysgYi9zcmMv M3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3Qv Y3B1X2NvbnRleHQuaAorQEAgLTM1Miw2ICszNTIsMjQgQEAgc3RydWN0IENQVUNvbnRleHRNSVBT NjQgeworICAgdWludDY0X3QgZmlyOworIH07CisgCisrLy8hIFxicmllZiBBIGNvbnRleHQgc3Ry dWN0dXJlIGNhcnJ5aW5nIFBQQzY0IENQVSBzdGF0ZS4KKytzdHJ1Y3QgQ1BVQ29udGV4dFBQQzY0 IHsKKysgIHVpbnQ2NF90IG5pcDsKKysgIHVpbnQ2NF90IG1zcjsKKysgIHVpbnQ2NF90IHJlZ3Nb MzJdOworKyAgdWludDY0X3QgY2NyOworKyAgdWludDY0X3QgeGVyOworKyAgdWludDY0X3QgbG5r OworKyAgdWludDY0X3QgY3RyOworKyAgZG91YmxlIGZwcmVnc1szMl07CisrICBkb3VibGUgZnBz Y3I7CisrICBzdHJ1Y3QgeworKyAgICB1aW50MTI4X3N0cnVjdCBzYXZlX3ZyWzMyXTsKKysgICAg dWludDEyOF9zdHJ1Y3Qgc2F2ZV92c2NyOworKyAgICB1aW50MzJfdCBzYXZlX3Zyc2F2ZTsKKysg IH0gdnJlZ3M7CisrfTsKKysKKyAvLyEgXGJyaWVmIEEgY29udGV4dCBzdHJ1Y3R1cmUgY2FwYWJs ZSBvZiBjYXJyeWluZyB0aGUgY29udGV4dCBvZiBhbnkgc3VwcG9ydGVkCisgLy8hICAgICBDUFUg YXJjaGl0ZWN0dXJlLgorIHN0cnVjdCBDUFVDb250ZXh0IHsKK0BAIC0zODIsNiArNDAwLDcgQEAg c3RydWN0IENQVUNvbnRleHQgeworICAgICBDUFVDb250ZXh0QVJNNjQqIGFybTY0OworICAgICBD UFVDb250ZXh0TUlQUyogbWlwc2VsOworICAgICBDUFVDb250ZXh0TUlQUzY0KiBtaXBzNjQ7Cisr ICAgIENQVUNvbnRleHRQUEM2NCogcHBjNjQ7CisgICB9OworIH07CisgCistLS0gYS9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGlu dXgvY3B1X2NvbnRleHRfbGludXguaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJk X3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2NwdV9jb250ZXh0X2xpbnV4 LmgKK0BAIC0xNSw2ICsxNSw3IEBACisgI2lmbmRlZiBDUkFTSFBBRF9TTkFQU0hPVF9MSU5VWF9D UFVfQ09OVEVYVF9MSU5VWF9IXworICNkZWZpbmUgQ1JBU0hQQURfU05BUFNIT1RfTElOVVhfQ1BV X0NPTlRFWFRfTElOVVhfSF8KKyAKKysjaW5jbHVkZSA8Y3N0cmluZz4KKyAjaW5jbHVkZSAiYnVp bGQvYnVpbGRfY29uZmlnLmgiCisgI2luY2x1ZGUgInNuYXBzaG90L2NwdV9jb250ZXh0LmgiCisg I2luY2x1ZGUgInNuYXBzaG90L2xpbnV4L3NpZ25hbF9jb250ZXh0LmgiCitAQCAtMTc0LDYgKzE3 NSw3NiBAQCB2b2lkIEluaXRpYWxpemVDUFVDb250ZXh0TUlQUygKKyAKKyAjZW5kaWYgIC8vIEFS Q0hfQ1BVX01JUFNfRkFNSUxZIHx8IERPWFlHRU4KKyAKKysjaWYgZGVmaW5lZChBUkNIX0NQVV9Q UEM2NF9GQU1JTFkpIHx8IERPWFlHRU4KKysKKysvLyEgXGJyaWVmIEluaXRhbGl6ZXMgYSBDUFVD b250ZXh0UFBDNjQgc3RydWN0dXJlIGZyb20gbmF0aXZlIGNvbnRleHQKKysvLyEgICAgIHN0cnVj dHVyZXMgb24gTGludXguCisrLy8hCisrLy8hIFxwYXJhbVtpbl0gdGhyZWFkX2NvbnRleHQgVGhl IG5hdGl2ZSB0aHJlYWQgY29udGV4dC4KKysvLyEgXHBhcmFtW2luXSBmbG9hdF9jb250ZXh0IFRo ZSBuYXRpdmUgZmxvYXQgY29udGV4dC4KKysvLyEgXHBhcmFtW2luXSB2ZWN0b3JfY29udGV4dCBU aGUgbmF0aXZlIHZlY3RvciBjb250ZXh0LgorKy8vISBccGFyYW1bb3V0XSBjb250ZXh0IFRoZSBD UFVDb250ZXh0UFBDNjQgc3RydWN0dXJlIHRvIGluaXRhbGl6ZS4KKyt0ZW1wbGF0ZSA8dHlwZW5h bWUgVHJhaXRzPgorK3ZvaWQgSW5pdGlhbGl6ZUNQVUNvbnRleHRQUEM2NCgKKysgICAgY29uc3Qg VGhyZWFkQ29udGV4dDo6dDY0X3QmIHRocmVhZF9jb250ZXh0LAorKyAgICBjb25zdCBGbG9hdENv bnRleHQ6OmY2NF90JiBmbG9hdF9jb250ZXh0LAorKyAgICBjb25zdCBWZWN0b3JDb250ZXh0Ojp2 NjRfdCYgdmVjdG9yX2NvbnRleHQsCisrICAgIHR5cGVuYW1lIFRyYWl0czo6Q1BVQ29udGV4dCog Y29udGV4dCkgeworKworKyAgbWVtY3B5KGNvbnRleHQtPnJlZ3MsIHRocmVhZF9jb250ZXh0Lmdw ciwgc2l6ZW9mKGNvbnRleHQtPnJlZ3MpKTsKKysgIGNvbnRleHQtPm5pcCA9IHRocmVhZF9jb250 ZXh0Lm5pcDsKKysgIGNvbnRleHQtPm1zciA9IHRocmVhZF9jb250ZXh0Lm1zcjsKKysgIGNvbnRl eHQtPmNjciA9IHRocmVhZF9jb250ZXh0LmNjcjsKKysgIGNvbnRleHQtPnhlciA9IHRocmVhZF9j b250ZXh0LnhlcjsKKysgIGNvbnRleHQtPmxuayA9IHRocmVhZF9jb250ZXh0LmxuazsKKysgIGNv bnRleHQtPmN0ciA9IHRocmVhZF9jb250ZXh0LmN0cjsKKysKKysgIG1lbWNweShjb250ZXh0LT5m cHJlZ3MsIGZsb2F0X2NvbnRleHQuZnByZWdzLCBzaXplb2YoY29udGV4dC0+ZnByZWdzKSk7Cisr ICBjb250ZXh0LT5mcHNjciA9IGZsb2F0X2NvbnRleHQuZnBzY3I7CisrCisrICBmb3IgKHVpbnQ4 X3QgaSA9IDA7IGkgPCAzMjsgaSsrKSB7CisrICAgIGNvbnRleHQtPnZyZWdzLnNhdmVfdnJbaV0g PSB7CisrICAgICAgKCgodWludDY0X3QpdmVjdG9yX2NvbnRleHQudnJyZWdzW2ldWzBdKSA8PCAz MikgfAorKyAgICAgICAgdmVjdG9yX2NvbnRleHQudnJyZWdzW2ldWzFdLAorKyAgICAgICgoKHVp bnQ2NF90KXZlY3Rvcl9jb250ZXh0LnZycmVnc1tpXVsyXSkgPDwgMzIpIHwKKysgICAgICAgIHZl Y3Rvcl9jb250ZXh0LnZycmVnc1tpXVszXQorKyAgICB9OworKyAgfQorKyAgY29udGV4dC0+dnJl Z3Muc2F2ZV92cnNhdmUgPSB2ZWN0b3JfY29udGV4dC52cnNhdmU7CisrICBjb250ZXh0LT52cmVn cy5zYXZlX3ZzY3IgPSB7MCwgKHVpbnQ2NF90KXZlY3Rvcl9jb250ZXh0LnZzY3IudnNjcl93b3Jk fTsKKyt9CisrCisrdGVtcGxhdGUgPHR5cGVuYW1lIFRyYWl0cz4KKyt2b2lkIEluaXRpYWxpemVD UFVDb250ZXh0UFBDNjQoCisrICAgIGNvbnN0IFNpZ25hbFRocmVhZENvbnRleHQ2NCAmdGhyZWFk X2NvbnRleHQsCisrICAgIGNvbnN0IFNpZ25hbEZsb2F0Q29udGV4dDY0ICZmbG9hdF9jb250ZXh0 LAorKyAgICBjb25zdCBTaWduYWxWZWN0b3JDb250ZXh0NjQgJnZlY3Rvcl9jb250ZXh0LAorKyAg ICB0eXBlbmFtZSBUcmFpdHM6OkNQVUNvbnRleHQqIGNvbnRleHQpIHsKKysKKysgIG1lbWNweShj b250ZXh0LT5yZWdzLCB0aHJlYWRfY29udGV4dC5yZWdzLCBzaXplb2YoY29udGV4dC0+cmVncykp OworKyAgY29udGV4dC0+bmlwID0gdGhyZWFkX2NvbnRleHQubmlwOworKyAgY29udGV4dC0+bXNy ID0gdGhyZWFkX2NvbnRleHQubXNyOworKyAgY29udGV4dC0+Y2NyID0gdGhyZWFkX2NvbnRleHQu Y2NyOworKyAgY29udGV4dC0+eGVyID0gdGhyZWFkX2NvbnRleHQueGVyOworKyAgY29udGV4dC0+ bG5rID0gdGhyZWFkX2NvbnRleHQubG5rOworKyAgY29udGV4dC0+Y3RyID0gdGhyZWFkX2NvbnRl eHQuY3RyOworKworKyAgbWVtY3B5KGNvbnRleHQtPmZwcmVncywgZmxvYXRfY29udGV4dC5yZWdz LCBzaXplb2YoY29udGV4dC0+ZnByZWdzKSk7CisrICBjb250ZXh0LT5mcHNjciA9IGZsb2F0X2Nv bnRleHQuZnBzY3I7CisrCisrICBmb3IgKHVpbnQ4X3QgaSA9IDA7IGkgPCAzMjsgaSsrKSB7Cisr ICAgIGNvbnRleHQtPnZyZWdzLnNhdmVfdnJbaV0gPSB7CisrICAgICAgKCgodWludDY0X3QpdmVj dG9yX2NvbnRleHQudnJyZWdzW2ldWzBdKSA8PCAzMikgfAorKyAgICAgICAgdmVjdG9yX2NvbnRl eHQudnJyZWdzW2ldWzFdLAorKyAgICAgICgoKHVpbnQ2NF90KXZlY3Rvcl9jb250ZXh0LnZycmVn c1tpXVsyXSkgPDwgMzIpIHwKKysgICAgICAgIHZlY3Rvcl9jb250ZXh0LnZycmVnc1tpXVszXQor KyAgICB9OworKyAgfQorKyAgY29udGV4dC0+dnJlZ3Muc2F2ZV92cnNhdmUgPSB2ZWN0b3JfY29u dGV4dC52cnNhdmU7CisrICBjb250ZXh0LT52cmVncy5zYXZlX3ZzY3IgPSB7MCwgKHVpbnQ2NF90 KXZlY3Rvcl9jb250ZXh0LnZzY3IudnNjcl93b3JkfTsKKyt9CisrCisrI2VuZGlmCisgfSAgLy8g bmFtZXNwYWNlIGludGVybmFsCisgfSAgLy8gbmFtZXNwYWNlIGNyYXNocGFkCisgCistLS0gYS9z cmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNo b3QvbGludXgvZGVidWdfcmVuZGV6dm91c190ZXN0LmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hy b21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvZGVidWdf cmVuZGV6dm91c190ZXN0LmNjCitAQCAtMTkyLDYgKzE5Miw4IEBAIHZvaWQgVGVzdEFnYWluc3RU YXJnZXQoUHRyYWNlQ29ubmVjdGlvbioKKyAgICAgICAgICAgICAgIGRldmljZSA9PSAwICYmIGlu b2RlID09IDAgJiYgbWFwcGluZ19uYW1lID09ICJbdmRzb10iOworICNpZiBkZWZpbmVkKEFSQ0hf Q1BVX1g4NikKKyAgICAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBjaGFyIGtQcmVmaXhbXSA9ICJs aW51eC1nYXRlLnNvLiI7CisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NCkKKysgICAgICAg ICAgc3RhdGljIGNvbnN0ZXhwciBjaGFyIGtQcmVmaXhbXSA9ICJsaW51eC12ZHNvNjQuc28uIjsK KyAjZWxzZQorICAgICAgICAgICBzdGF0aWMgY29uc3RleHByIGNoYXIga1ByZWZpeFtdID0gImxp bnV4LXZkc28uc28uIjsKKyAjZW5kaWYKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25fc25hcHNo b3RfbGludXguY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFz aHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25fc25hcHNob3RfbGludXguY2MK K0BAIC0zMjMsNiArMzIzLDY5IEBAIGJvb2wgRXhjZXB0aW9uU25hcHNob3RMaW51eDo6UmVhZENv bnRleHQKKyAgICAgICByZWFkZXIsIGNvbnRleHRfYWRkcmVzcywgY29udGV4dF8ubWlwczY0KTsK KyB9CisgCisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisrCisrdGVtcGxh dGUgPHR5cGVuYW1lIFRyYWl0cz4KKytzdGF0aWMgYm9vbCBSZWFkQ29udGV4dChQcm9jZXNzUmVh ZGVyTGludXgqIHJlYWRlciwKKysgICAgICAgICAgICAgICAgICAgICAgICBMaW51eFZNQWRkcmVz cyBjb250ZXh0X2FkZHJlc3MsCisrICAgICAgICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgVHJh aXRzOjpDUFVDb250ZXh0KiBkZXN0X2NvbnRleHQpIHsKKysgIGNvbnN0IFByb2Nlc3NNZW1vcnkq IG1lbW9yeSA9IHJlYWRlci0+TWVtb3J5KCk7CisrCisrICBMaW51eFZNQWRkcmVzcyBncF9yZWdz X2FkZHJlc3MgPSBjb250ZXh0X2FkZHJlc3MgKworKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgb2Zmc2V0b2YoVUNvbnRleHQsIG1jb250ZXh0KSArCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBvZmZzZXRvZih0eXBlbmFtZSBUcmFpdHM6Ok1Db250ZXh0LCBn cF9yZWdzKTsKKysKKysgIHR5cGVuYW1lIFRyYWl0czo6U2lnbmFsVGhyZWFkQ29udGV4dCB0aHJl YWRfY29udGV4dDsKKysgIGlmICghbWVtb3J5LT5SZWFkKGdwX3JlZ3NfYWRkcmVzcywgc2l6ZW9m KHRocmVhZF9jb250ZXh0KSwgJnRocmVhZF9jb250ZXh0KSkgeworKyAgICBMT0coRVJST1IpIDw8 ICJDb3VsZG4ndCByZWFkIGdwX3JlZ3MhIjsKKysgICAgcmV0dXJuIGZhbHNlOworKyAgfQorKwor KyAgTGludXhWTUFkZHJlc3MgZnBfcmVnc19hZGRyZXNzID0gY29udGV4dF9hZGRyZXNzICsKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKFVDb250ZXh0LCBtY29u dGV4dCkgKworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0b2YodHlw ZW5hbWUgVHJhaXRzOjpNQ29udGV4dCwgZnBfcmVncyk7CisrCisrICB0eXBlbmFtZSBUcmFpdHM6 OlNpZ25hbEZsb2F0Q29udGV4dCBmcF9jb250ZXh0OworKyAgaWYgKCFtZW1vcnktPlJlYWQoZnBf cmVnc19hZGRyZXNzLCBzaXplb2YoZnBfY29udGV4dCksICZmcF9jb250ZXh0KSkgeworKyAgICBM T0coRVJST1IpIDw8ICJDb3VsZG4ndCByZWFkIGZwX3JlZ3MhIjsKKysgICAgcmV0dXJuIGZhbHNl OworKyAgfQorKworKyAgTGludXhWTUFkZHJlc3Mgdl9yZWdzX3B0cl9hZGRyZXNzID0gY29udGV4 dF9hZGRyZXNzICsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0b2Yo VUNvbnRleHQsIG1jb250ZXh0KSArCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG9mZnNldG9mKHR5cGVuYW1lIFRyYWl0czo6TUNvbnRleHQsIHZteF9yZXNlcnZlKSArIDg7Cisr CisrICB0eXBlbmFtZSBUcmFpdHM6OlNpZ25hbFZlY3RvckNvbnRleHQgdl9jb250ZXh0OworKyAg aWYgKCFtZW1vcnktPlJlYWQodl9yZWdzX3B0cl9hZGRyZXNzLCBzaXplb2Yodl9jb250ZXh0KSwg JnZfY29udGV4dCkpIHsKKysgICAgTE9HKEVSUk9SKSA8PCAiQ291bGRuJ3QgcmVhZCB2X3JlZ3Mh IjsKKysgICAgcmV0dXJuIGZhbHNlOworKyAgfQorKworKyAgSW5pdGlhbGl6ZUNQVUNvbnRleHRQ UEM2NDxDb250ZXh0VHJhaXRzNjQ+KHRocmVhZF9jb250ZXh0LCBmcF9jb250ZXh0LAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICB2X2NvbnRleHQsIGRlc3RfY29udGV4dCk7CisrCisrICBy ZXR1cm4gdHJ1ZTsKKyt9CisrCisrdGVtcGxhdGU8PgorK2Jvb2wgRXhjZXB0aW9uU25hcHNob3RM aW51eDo6UmVhZENvbnRleHQ8Q29udGV4dFRyYWl0czY0PigKKysgICAgUHJvY2Vzc1JlYWRlckxp bnV4KiByZWFkZXIsCisrICAgIExpbnV4Vk1BZGRyZXNzIGNvbnRleHRfYWRkcmVzcykgeworKyAg Y29udGV4dF8uYXJjaGl0ZWN0dXJlID0ga0NQVUFyY2hpdGVjdHVyZVBQQzY0OworKyAgY29udGV4 dF8ucHBjNjQgPSAmY29udGV4dF91bmlvbl8ucHBjNjQ7CisrCisrICByZXR1cm4gaW50ZXJuYWw6 OlJlYWRDb250ZXh0PENvbnRleHRUcmFpdHM2ND4oCisrICAgICAgcmVhZGVyLCBjb250ZXh0X2Fk ZHJlc3MsIGNvbnRleHRfLnBwYzY0KTsKKyt9CisrCisrdGVtcGxhdGU8PgorK2Jvb2wgRXhjZXB0 aW9uU25hcHNob3RMaW51eDo6UmVhZENvbnRleHQ8Q29udGV4dFRyYWl0czMyPigKKysgICAgUHJv Y2Vzc1JlYWRlckxpbnV4KiByZWFkZXIsCisrICAgIExpbnV4Vk1BZGRyZXNzIGNvbnRleHRfYWRk cmVzcykgeworKyAgLy8gUFBDNjQgaXMgNjQtYml0CisrICByZXR1cm4gZmFsc2U7CisrfQorKwor ICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWQorIAorIGJvb2wgRXhjZXB0aW9uU25hcHNo b3RMaW51eDo6SW5pdGlhbGl6ZShQcm9jZXNzUmVhZGVyTGludXgqIHByb2Nlc3NfcmVhZGVyLAor LS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51eC5oCisrKysgYi9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGlu dXgvZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4LmgKK0BAIC04NCw2ICs4NCw4IEBAIGNsYXNzIEV4 Y2VwdGlvblNuYXBzaG90TGludXggZmluYWwgOiBwdWIKKyAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BV X01JUFNfRkFNSUxZKQorICAgICBDUFVDb250ZXh0TUlQUyBtaXBzZWw7CisgICAgIENQVUNvbnRl eHRNSVBTNjQgbWlwczY0OworKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQor KyAgICBDUFVDb250ZXh0UFBDNjQgcHBjNjQ7CisgI2VuZGlmCisgICB9IGNvbnRleHRfdW5pb25f OworICAgQ1BVQ29udGV4dCBjb250ZXh0XzsKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90 aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25fc25h cHNob3RfbGludXhfdGVzdC5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9s aW51eF90ZXN0LmNjCitAQCAtMjk2LDcgKzI5NiwyOCBAQCB2b2lkIEV4cGVjdENvbnRleHQoY29u c3QgQ1BVQ29udGV4dCYgYWN0CisgICAgICAgICAgICAgMCk7CisgI3VuZGVmIENQVV9BUkNIX05B TUUKKyB9CisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisrdXNpbmcgTmF0 aXZlQ1BVQ29udGV4dCA9IHVjb250ZXh0X3Q7CisgCisrdm9pZCBJbml0aWFsaXplQ29udGV4dChO YXRpdmVDUFVDb250ZXh0KiBjb250ZXh0KSB7CisrICBmb3IgKHNpemVfdCByZWcgPSAwOyByZWcg PCAzMjsgKytyZWcpIHsKKysgICAgY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tyZWddID0g cmVnOworKyAgfQorKworKyAgbWVtc2V0KCZjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzLCA0 NCwKKysgICAgICBzaXplb2YoY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVncykpOworK30KKysK Kyt2b2lkIEV4cGVjdENvbnRleHQoY29uc3QgQ1BVQ29udGV4dCYgYWN0dWFsLCBjb25zdCBOYXRp dmVDUFVDb250ZXh0JiBleHBlY3RlZCkgeworKyAgRVhQRUNUX0VRKGFjdHVhbC5hcmNoaXRlY3R1 cmUsIGtDUFVBcmNoaXRlY3R1cmVQUEM2NCk7CisrCisrICBmb3IgKHNpemVfdCByZWcgPSAwOyBy ZWcgPCAzMjsgKytyZWcpIHsKKysgICAgRVhQRUNUX0VRKGFjdHVhbC5wcGM2NC0+cmVnc1tyZWdd LCBleHBlY3RlZC51Y19tY29udGV4dC5ncF9yZWdzW3JlZ10pOworKyAgfQorKworKyAgRVhQRUNU X0VRKG1lbWNtcChhY3R1YWwucHBjNjQtPmZwcmVncywgZXhwZWN0ZWQudWNfbWNvbnRleHQuZnBf cmVncywKKysgICAgICAgICAgICBzaXplb2YoYWN0dWFsLnBwYzY0LT5mcHJlZ3MpKSwgMCk7Cisr fQorICNlbHNlCisgI2Vycm9yIFBvcnQuCisgI2VuZGlmCistLS0gYS9zcmMvM3JkcGFydHkvY2hy b21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvcHJvY2Vz c19yZWFkZXJfbGludXguY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9wcm9jZXNzX3JlYWRlcl9saW51eC5j YworQEAgLTEwOCw2ICsxMDgsOCBAQCB2b2lkIFByb2Nlc3NSZWFkZXJMaW51eDo6VGhyZWFkOjpJ bml0aWFsCisgI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKKyAgIHN0YWNrX3Bv aW50ZXIgPSByZWFkZXItPklzNjRCaXQoKSA/IHRocmVhZF9pbmZvLnRocmVhZF9jb250ZXh0LnQ2 NC5yZWdzWzI5XQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdGhyZWFk X2luZm8udGhyZWFkX2NvbnRleHQudDMyLnJlZ3NbMjldOworKyNlbGlmIGRlZmluZWQoQVJDSF9D UFVfUFBDNjRfRkFNSUxZKQorKyAgc3RhY2tfcG9pbnRlciA9IHRocmVhZF9pbmZvLnRocmVhZF9j b250ZXh0LnQ2NC5ncHJbMV07CisgI2Vsc2UKKyAjZXJyb3IgUG9ydC4KKyAjZW5kaWYKKy0tLSBh L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFw c2hvdC9saW51eC9zaWduYWxfY29udGV4dC5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0v dGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvc2lnbmFsX2NvbnRl eHQuaAorQEAgLTQyMiw2ICs0MjIsOTMgQEAgc3RhdGljX2Fzc2VydChvZmZzZXRvZihVQ29udGV4 dDxDb250ZXh0VAorICAgICAgICAgICAgICAgImNvbnRleHQgb2Zmc2V0IG1pc21hdGNoIik7Cisg I2VuZGlmCisgCisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisrCisrc3Ry dWN0IFNpZ25hbFRocmVhZENvbnRleHQ2NCB7CisrICB1aW50NjRfdCByZWdzWzMyXTsKKysgIHVp bnQ2NF90IG5pcDsKKysgIHVpbnQ2NF90IG1zcjsKKysgIHVpbnQ2NF90IG9yaWdfcjM7CisrICB1 aW50NjRfdCBjdHI7CisrICB1aW50NjRfdCBsbms7CisrICB1aW50NjRfdCB4ZXI7CisrICB1aW50 NjRfdCBjY3I7CisrICB1aW50NjRfdCBzb2Z0ZTsKKysgIHVpbnQ2NF90IHRyYXA7CisrICB1aW50 NjRfdCBkYXI7CisrICB1aW50NjRfdCBkc2lzcjsKKysgIHVpbnQ2NF90IHJlc3VsdDsKKysgIHVp bnQ2NF90IGRzY3I7CisrICB1aW50NjRfdCBmcHIwWzNdOworK307CisrCisrc3RydWN0IFNpZ25h bEZsb2F0Q29udGV4dDY0IHsKKysgIGRvdWJsZSByZWdzWzMyXTsKKysgIGRvdWJsZSBmcHNjcjsK Kyt9OworKworK3N0cnVjdCBTaWduYWxWZWN0b3JDb250ZXh0NjQgeworKyAgaW50MzJfdCB2cnJl Z3NbMzJdWzRdOworKyAgc3RydWN0IHsKKysgICAgaW50MzJfdCBfX3BhZFszXTsKKysgICAgaW50 MzJfdCB2c2NyX3dvcmQ7CisrICB9IHZzY3I7CisrICBpbnQzMl90IHZyc2F2ZTsKKysgIGludDMy X3QgX19wYWRbM107CisrfSBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXygxNikpKTsKKysKKysK KysjcHJhZ21hIHBhY2socG9wKQorK3N0cnVjdCBNQ29udGV4dDY0IHsKKysgIHVpbnQ2NF90IHJl c2VydmVkWzRdOworKyAgaW50MzJfdCBzaWduYWw7CisrICBpbnQzMl90IF9fcGFkMDsKKysgIHVp bnQ2NF90IGhhbmRsZXI7CisrICB1aW50NjRfdCBvbGRtYXNrOworKyAgdWludDY0X3QgcHRfcmVn c19wdHI7CisrICBTaWduYWxUaHJlYWRDb250ZXh0NjQgZ3BfcmVnczsKKysgIFNpZ25hbEZsb2F0 Q29udGV4dDY0ICBmcF9yZWdzOworKyAgU2lnbmFsVmVjdG9yQ29udGV4dDY0ICp2X3JlZ3M7Cisr I2lmZGVmIF9fR0xJQkNfXworKyAgaW50NjRfdCB2bXhfcmVzZXJ2ZVs2OV07CisrI2Vsc2UKKysg IGludDY0X3Qgdm14X3Jlc2VydmVbMTAxXTsKKysjZW5kaWYKKyt9OworKworK3N0cnVjdCBDb250 ZXh0VHJhaXRzNjQgOiBwdWJsaWMgVHJhaXRzNjQgeworKyAgdXNpbmcgTUNvbnRleHQgPSBNQ29u dGV4dDY0OworKyAgdXNpbmcgU2lnbmFsVGhyZWFkQ29udGV4dCA9IFNpZ25hbFRocmVhZENvbnRl eHQ2NDsKKysgIHVzaW5nIFNpZ25hbEZsb2F0Q29udGV4dCA9IFNpZ25hbEZsb2F0Q29udGV4dDY0 OworKyAgdXNpbmcgU2lnbmFsVmVjdG9yQ29udGV4dCA9IFNpZ25hbFZlY3RvckNvbnRleHQ2NDsK KysgIHVzaW5nIENQVUNvbnRleHQgPSBDUFVDb250ZXh0UFBDNjQ7CisrfTsKKysKKytzdHJ1Y3Qg Q29udGV4dFRyYWl0czMyIDogcHVibGljIFRyYWl0czMyIHt9OworKworK3N0cnVjdCBVQ29udGV4 dCB7CisrICB1aW50NjRfdCBmbGFnczsKKysgIHVpbnQ2NF90IGxpbms7CisrICBTaWduYWxTdGFj azxDb250ZXh0VHJhaXRzNjQ+IHN0YWNrOworKyAgU2lnc2V0PENvbnRleHRUcmFpdHM2ND4gc2ln bWFzazsKKysgIE1Db250ZXh0NjQgbWNvbnRleHQ7CisrfTsKKysjcHJhZ21hIHBhY2socHVzaCwg MSkKKysKKytzdGF0aWNfYXNzZXJ0KHNpemVvZihVQ29udGV4dCkgPT0gc2l6ZW9mKHVjb250ZXh0 X3QpLAorKyAgICAgICAgICAgICAgInVjb250ZXh0X3Qgc2l6ZSBtaXNtYXRjaCIpOworK3N0YXRp Y19hc3NlcnQoc2l6ZW9mKE1Db250ZXh0NjQpID09IHNpemVvZihtY29udGV4dF90KSwKKysgICAg ICAgICAgICAgICJtY29udGV4dF90IHNpemUgbWlzbWF0Y2giKTsKKytzdGF0aWNfYXNzZXJ0KHNp emVvZihTaWduYWxUaHJlYWRDb250ZXh0NjQpID09IHNpemVvZihncmVnc2V0X3QpLAorKyAgICAg ICAgICAgICAgImdyZWdzZXRfdCBzaXplIG1pc21hdGNoIik7Cisrc3RhdGljX2Fzc2VydChzaXpl b2YoU2lnbmFsRmxvYXRDb250ZXh0NjQpID09IHNpemVvZihmcHJlZ3NldF90KSwKKysgICAgICAg ICAgICAgICJmcHJlZ3NldF90IHNpemUgbWlzbWF0Y2giKTsKKytzdGF0aWNfYXNzZXJ0KHNpemVv ZihTaWduYWxWZWN0b3JDb250ZXh0NjQpID09IHNpemVvZih2cnJlZ3NldF90KSwKKysgICAgICAg ICAgICAgICJ2cnJlZ3NldF90IHNpemUgbWlzbWF0Y2giKTsKKytzdGF0aWNfYXNzZXJ0KG9mZnNl dG9mKFVDb250ZXh0LCBtY29udGV4dCkgPT0KKysgICAgICAgICAgICAgIG9mZnNldG9mKHVjb250 ZXh0X3QsIHVjX21jb250ZXh0KSwgIm1jb250ZXh0IG9mZnNldCBtaXNtYXRjaCIpOworK3N0YXRp Y19hc3NlcnQob2Zmc2V0b2YoTUNvbnRleHQ2NCwgZ3BfcmVncykgPT0KKysgICAgICAgICAgICAg IG9mZnNldG9mKG1jb250ZXh0X3QsIGdwX3JlZ3MpLCAiZ3BfcmVncyBvZmZzZXQgbWlzbWF0Y2gi KTsKKyAjZWxzZQorICNlcnJvciBQb3J0LgorICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlM WQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNo cGFkL3NuYXBzaG90L2xpbnV4L3N5c3RlbV9zbmFwc2hvdF9saW51eC5jYworKysrIGIvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xp bnV4L3N5c3RlbV9zbmFwc2hvdF9saW51eC5jYworQEAgLTIwNCw2ICsyMDQsOCBAQCBDUFVBcmNo aXRlY3R1cmUgU3lzdGVtU25hcHNob3RMaW51eDo6R2V0CisgI2VsaWYgZGVmaW5lZChBUkNIX0NQ VV9NSVBTX0ZBTUlMWSkKKyAgIHJldHVybiBwcm9jZXNzX3JlYWRlcl8tPklzNjRCaXQoKSA/IGtD UFVBcmNoaXRlY3R1cmVNSVBTNjRFTAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDoga0NQVUFyY2hpdGVjdHVyZU1JUFNFTDsKKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQ QzY0X0ZBTUlMWSkKKysgIHJldHVybiBrQ1BVQXJjaGl0ZWN0dXJlUFBDNjQ7CisgI2Vsc2UKKyAj ZXJyb3IgcG9ydCB0byB5b3VyIGFyY2hpdGVjdHVyZQorICNlbmRpZgorQEAgLTIxOSw2ICsyMjEs OSBAQCB1aW50MzJfdCBTeXN0ZW1TbmFwc2hvdExpbnV4OjpDUFVSZXZpc2lvCisgI2VsaWYgZGVm aW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKKyAgIC8vIE5vdCBpbXBsZW1lbnRhYmxlIG9uIE1J UFMKKyAgIHJldHVybiAwOworKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQor KyAgLy8gTm90IHlldCBpbXBsZW1lbnRlZCBvbiBQUEM2NAorKyAgcmV0dXJuIDA7CisgI2Vsc2UK KyAjZXJyb3IgcG9ydCB0byB5b3VyIGFyY2hpdGVjdHVyZQorICNlbmRpZgorQEAgLTIzOSw2ICsy NDQsOSBAQCBzdGQ6OnN0cmluZyBTeXN0ZW1TbmFwc2hvdExpbnV4OjpDUFVWZW5kCisgI2VsaWYg ZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKKyAgIC8vIE5vdCBpbXBsZW1lbnRhYmxlIG9u IE1JUFMKKyAgIHJldHVybiBzdGQ6OnN0cmluZygpOworKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVf UFBDNjRfRkFNSUxZKQorKyAgLy8gTm90IHlldCBpbXBsZW1lbnRlZCBvbiBQUEM2NAorKyAgcmV0 dXJuIHN0ZDo6c3RyaW5nKCk7CisgI2Vsc2UKKyAjZXJyb3IgcG9ydCB0byB5b3VyIGFyY2hpdGVj dHVyZQorICNlbmRpZgorQEAgLTM3Miw2ICszODAsOSBAQCBib29sIFN5c3RlbVNuYXBzaG90TGlu dXg6Ok5YRW5hYmxlZCgpIGNvCisgI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkK KyAgIC8vIE5vdCBpbXBsZW1lbnRhYmxlIG9uIE1JUFMKKyAgIHJldHVybiBmYWxzZTsKKysjZWxp ZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKysgIC8vIE5vdCB5ZXQgaW1wbGVtZW50 ZWQgb24gUFBDNjQKKysgIHJldHVybiBmYWxzZTsKKyAjZWxzZQorICNlcnJvciBQb3J0LgorICNl bmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3Rlc3RfbW9kdWxl cy5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2Ny YXNocGFkL3NuYXBzaG90L2xpbnV4L3Rlc3RfbW9kdWxlcy5jYworQEAgLTExMCw2ICsxMTAsOCBA QCBib29sIFdyaXRlVGVzdE1vZHVsZShjb25zdCBiYXNlOjpGaWxlUGF0CisgICBtb2R1bGUuZWhk ci5lX21hY2hpbmUgPSBFTV9BQVJDSDY0OworICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU0VM KSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX01JUFM2NEVMKQorICAgbW9kdWxlLmVoZHIuZV9tYWNoaW5l ID0gRU1fTUlQUzsKKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0KQorKyAgbW9kdWxlLmVo ZHIuZV9tYWNoaW5lID0gRU1fUFBDNjQ7CisgI2VuZGlmCisgCisgICBtb2R1bGUuZWhkci5lX3Zl cnNpb24gPSBFVl9DVVJSRU5UOworLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3RocmVhZF9zbmFwc2hvdF9saW51 eC5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2Ny YXNocGFkL3NuYXBzaG90L2xpbnV4L3RocmVhZF9zbmFwc2hvdF9saW51eC5jYworQEAgLTE4Niw2 ICsxODYsMTQgQEAgYm9vbCBUaHJlYWRTbmFwc2hvdExpbnV4OjpJbml0aWFsaXplKFBybworICAg ICAgICAgdGhyZWFkLnRocmVhZF9pbmZvLmZsb2F0X2NvbnRleHQuZjMyLAorICAgICAgICAgY29u dGV4dF8ubWlwc2VsKTsKKyAgIH0KKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlM WSkKKysgIGNvbnRleHRfLmFyY2hpdGVjdHVyZSA9IGtDUFVBcmNoaXRlY3R1cmVQUEM2NDsKKysg IGNvbnRleHRfLnBwYzY0ID0gJmNvbnRleHRfdW5pb25fLnBwYzY0OworKyAgSW5pdGlhbGl6ZUNQ VUNvbnRleHRQUEM2NDxDb250ZXh0VHJhaXRzNjQ+KAorKyAgICAgIHRocmVhZC50aHJlYWRfaW5m by50aHJlYWRfY29udGV4dC50NjQsCisrICAgICAgdGhyZWFkLnRocmVhZF9pbmZvLmZsb2F0X2Nv bnRleHQuZjY0LAorKyAgICAgIHRocmVhZC50aHJlYWRfaW5mby52ZWN0b3JfY29udGV4dC52NjQs CisrICAgICAgY29udGV4dF8ucHBjNjQpOworICNlbHNlCisgI2Vycm9yIFBvcnQuCisgI2VuZGlm CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvc25hcHNob3QvbGludXgvdGhyZWFkX3NuYXBzaG90X2xpbnV4LmgKKysrKyBiL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51 eC90aHJlYWRfc25hcHNob3RfbGludXguaAorQEAgLTY4LDYgKzY4LDggQEAgY2xhc3MgVGhyZWFk U25hcHNob3RMaW51eCBmaW5hbCA6IHB1YmxpYworICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQ U19GQU1JTFkpCisgICAgIENQVUNvbnRleHRNSVBTIG1pcHNlbDsKKyAgICAgQ1BVQ29udGV4dE1J UFM2NCBtaXBzNjQ7CisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisrICAg IENQVUNvbnRleHRQUEM2NCBwcGM2NDsKKyAjZWxzZQorICNlcnJvciBQb3J0LgorICNlbmRpZiAg Ly8gQVJDSF9DUFVfWDg2X0ZBTUlMWQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJk X3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvYXV4aWxpYXJ5X3ZlY3Rvci5jYwor KysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L3V0aWwvbGludXgvYXV4aWxpYXJ5X3ZlY3Rvci5jYworQEAgLTU2LDYgKzU2LDExIEBAIGJvb2wg QXV4aWxpYXJ5VmVjdG9yOjpSZWFkKFB0cmFjZUNvbm5lY3QKKyAgICAgaWYgKHR5cGUgPT0gQVRf SUdOT1JFKSB7CisgICAgICAgY29udGludWU7CisgICAgIH0KKysjaWYgZGVmaW5lZChBUkNIX0NQ VV9QUEM2NF9GQU1JTFkpCisrICAgIGlmICh0eXBlID09IEFUX0lHTk9SRVBQQykgeworKyAgICAg IGNvbnRpbnVlOworKyAgICB9CisrI2VuZGlmCisgICAgIGlmICghTWFwSW5zZXJ0T3JSZXBsYWNl KCZ2YWx1ZXNfLCB0eXBlLCB2YWx1ZSwgbnVsbHB0cikpIHsKKyAgICAgICBMT0coRVJST1IpIDw8 ICJkdXBsaWNhdGUgYXV4diBlbnRyeSI7CisgICAgICAgcmV0dXJuIGZhbHNlOworLS0tIGEvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGlu dXgvcHRyYWNlci5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Ny YXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvcHRyYWNlci5jYworQEAgLTQwMSw2ICs0MDEsNjQg QEAgYm9vbCBHZXRUaHJlYWRBcmVhNjQocGlkX3QgdGlkLAorICAgcmV0dXJuIHRydWU7CisgfQor IAorKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKy8vIFBQQzY0IGhhcyBo YWQgSEFWRV9BUkNIX1RSQUNFSE9PSyBzZXQgc2luY2UgMi42LjI3IChldmVuIGJlZm9yZSB4ODYg aGFkIGl0KS4KKysvLyBUaGF0IG1lYW5zIHdlIGNhbiBzaW1wbHkgdXNlIFBUUkFDRV9HRVRSRUdF U0VULgorKworK3RlbXBsYXRlIDx0eXBlbmFtZSBEZXN0aW5hdGlvbj4KKytib29sIEdldFJlZ2lz dGVyU2V0KHBpZF90IHRpZCwgaW50IHNldCwgRGVzdGluYXRpb24qIGRlc3QsIGJvb2wgY2FuX2xv ZykgeworKyAgaW92ZWMgaW92OworKyAgaW92Lmlvdl9iYXNlID0gcmVpbnRlcnByZXRfY2FzdDx2 b2lkKj4oZGVzdCk7CisrICBpb3YuaW92X2xlbiA9IHNpemVvZigqZGVzdCk7CisrICBpZiAocHRy YWNlKFBUUkFDRV9HRVRSRUdTRVQsIHRpZCwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oc2V0KSwg JmlvdikgIT0gMCkgeworKyAgICBQTE9HX0lGKEVSUk9SLCBjYW5fbG9nKSA8PCAicHRyYWNlIjsK KysgICAgcmV0dXJuIGZhbHNlOworKyAgfQorKyAgaWYgKGlvdi5pb3ZfbGVuICE9IHNpemVvZigq ZGVzdCkpIHsKKysgICAgTE9HX0lGKEVSUk9SLCBjYW5fbG9nKSA8PCAiVW5leHBlY3RlZCByZWdp c3RlcnMgc2l6ZSI7CisrICAgIHJldHVybiBmYWxzZTsKKysgIH0KKysgIHJldHVybiB0cnVlOwor K30KKysKKytib29sIEdldFZlY3RvclJlZ2lzdGVyczY0KHBpZF90IHRpZCwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgIFZlY3RvckNvbnRleHQqIGNvbnRleHQsCisrICAgICAgICAgICAgICAg ICAgICAgICAgICBib29sIGNhbl9sb2cpIHsKKysgIHJldHVybiBHZXRSZWdpc3RlclNldCh0aWQs IE5UX1BQQ19WTVgsICZjb250ZXh0LT52NjQsIGNhbl9sb2cpOworK30KKysKKytib29sIEdldEZs b2F0aW5nUG9pbnRSZWdpc3RlcnM2NChwaWRfdCB0aWQsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgRmxvYXRDb250ZXh0KiBjb250ZXh0LAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGJvb2wgY2FuX2xvZykgeworKyAgcmV0dXJuIEdldFJlZ2lzdGVyU2V0KHRp ZCwgTlRfUFJGUFJFRywgJmNvbnRleHQtPmY2NCwgY2FuX2xvZyk7CisrfQorKworK2Jvb2wgR2V0 VGhyZWFkQXJlYTY0KHBpZF90IHRpZCwKKysgICAgICAgICAgICAgICAgICAgICBjb25zdCBUaHJl YWRDb250ZXh0JiBjb250ZXh0LAorKyAgICAgICAgICAgICAgICAgICAgIExpbnV4Vk1BZGRyZXNz KiBhZGRyZXNzLAorKyAgICAgICAgICAgICAgICAgICAgIGJvb2wgY2FuX2xvZykgeworKyAgLy8g UFBDNjQgZG9lc24ndCBoYXZlIFBUUkFDRV9HRVRfVEhSRUFEX0FSRUEgc2luY2UgdGhlIHRocmVh ZCBwb2ludGVyCisrICAvLyBpcyBzdG9yZWQgaW4gR1BSIDEzLgorKyAgVGhyZWFkQ29udGV4dDo6 dDY0X3QgdGM7CisrICBpZiAoIUdldFJlZ2lzdGVyU2V0KHRpZCwgTlRfUFJTVEFUVVMsICZ0Yywg Y2FuX2xvZykpIHsKKysgICAgTE9HX0lGKEVSUk9SLCBjYW5fbG9nKSA8PCAiVW5hYmxlIHRvIGdl dCB0aHJlYWQgcG9pbnRlciEiOworKyAgICByZXR1cm4gZmFsc2U7CisrICB9CisrCisrICAqYWRk cmVzcyA9IHRjLmdwclsxM107CisrCisrICByZXR1cm4gdHJ1ZTsKKyt9CisrCisrLy8gU3R1YnMg Zm9yIDMyLWJpdCBmdW5jdGlvbnMgbm90IGFwcGxpY2FibGUgb24gUFBDNjQKKytib29sIEdldEZs b2F0aW5nUG9pbnRSZWdpc3RlcnMzMihwaWRfdCB0aWQsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgRmxvYXRDb250ZXh0KiBjb250ZXh0LAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGJvb2wgY2FuX2xvZykgeyByZXR1cm4gZmFsc2U7IH0KKytib29sIEdldFRo cmVhZEFyZWEzMihwaWRfdCB0aWQsCisrICAgICAgICAgICAgICAgICAgICAgY29uc3QgVGhyZWFk Q29udGV4dCAmY29udGV4dCwKKysgICAgICAgICAgICAgICAgICAgICBMaW51eFZNQWRkcmVzcyAq YWRkcmVzcywKKysgICAgICAgICAgICAgICAgICAgICBib29sIGNhbl9sb2cpIHsgcmV0dXJuIGZh bHNlOyB9CisrCisgI2Vsc2UKKyAjZXJyb3IgUG9ydC4KKyAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4 Nl9GQU1JTFkKK0BAIC00OTcsNiArNTU1LDkgQEAgYm9vbCBQdHJhY2VyOjpHZXRUaHJlYWRJbmZv KHBpZF90IHRpZCwgVAorICAgaWYgKGlzXzY0X2JpdF8pIHsKKyAgICAgcmV0dXJuIEdldEdlbmVy YWxQdXJwb3NlUmVnaXN0ZXJzNjQodGlkLCAmaW5mby0+dGhyZWFkX2NvbnRleHQsIGNhbl9sb2df KSAmJgorICAgICAgICAgICAgR2V0RmxvYXRpbmdQb2ludFJlZ2lzdGVyczY0KHRpZCwgJmluZm8t PmZsb2F0X2NvbnRleHQsIGNhbl9sb2dfKSAmJgorKyNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0 X0ZBTUlMWSkKKysgICAgICAgICAgIEdldFZlY3RvclJlZ2lzdGVyczY0KHRpZCwgJmluZm8tPnZl Y3Rvcl9jb250ZXh0LCBjYW5fbG9nXykgJiYKKysjZW5kaWYKKyAgICAgICAgICAgIEdldFRocmVh ZEFyZWE2NCh0aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5mby0+dGhyZWFkX2Nv bnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmluZm8tPnRocmVhZF9zcGVjaWZp Y19kYXRhX2FkZHJlc3MsCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkv Y3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC90aHJlYWRfaW5mby5oCisrKysgYi9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC90 aHJlYWRfaW5mby5oCitAQCAtMzksNiArMzksMTMgQEAgc3RydWN0IHVzZXJfdmZwX2V4YyB7Cisg I2luY2x1ZGUgPGFuZHJvaWQvYXBpLWxldmVsLmg+CisgI2VuZGlmCisgCisrI2lmIGRlZmluZWQo QVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKyNpbmNsdWRlIDxzeXMvdWNvbnRleHQuaD4KKysjaWYg IWRlZmluZWQoX19HTElCQ19fKQorKyNpbmNsdWRlIDxhc20vcHRyYWNlLmg+CisrI2VuZGlmCisr I2VuZGlmCisrCisgbmFtZXNwYWNlIGNyYXNocGFkIHsKKyAKKyAvLyEgXGJyaWVmIFRoZSBzZXQg b2YgZ2VuZXJhbCBwdXJwb3NlIHJlZ2lzdGVycyBmb3IgYW4gYXJjaGl0ZWN0dXJlIGZhbWlseS4K K0BAIC05MCw2ICs5Nyw4IEBAIHVuaW9uIFRocmVhZENvbnRleHQgeworICAgICB1aW50MzJfdCBj cDBfc3RhdHVzOworICAgICB1aW50MzJfdCBjcDBfY2F1c2U7CisgICAgIHVpbnQzMl90IHBhZGRp bmcxXzsKKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKysgICAgLy8gUFBD NjQgaXMgNjQtYml0CisgI2Vsc2UKKyAjZXJyb3IgUG9ydC4KKyAjZW5kaWYgIC8vIEFSQ0hfQ1BV X1g4Nl9GQU1JTFkKK0BAIC0xNDMsNiArMTUyLDIxIEBAIHVuaW9uIFRocmVhZENvbnRleHQgewor ICAgICB1aW50NjRfdCBjcDBfYmFkdmFkZHI7CisgICAgIHVpbnQ2NF90IGNwMF9zdGF0dXM7Cisg ICAgIHVpbnQ2NF90IGNwMF9jYXVzZTsKKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZB TUlMWSkKKysgICAgLy8gUmVmbGVjdHMgc3RydWN0IHB0X3JlZ3MgaW4gYXNtL3B0cmFjZS5oLgor KyAgICB1aW50NjRfdCBncHJbMzJdOworKyAgICB1aW50NjRfdCBuaXA7CisrICAgIHVpbnQ2NF90 IG1zcjsKKysgICAgdWludDY0X3Qgb3JpZ19ncHIzOworKyAgICB1aW50NjRfdCBjdHI7CisrICAg IHVpbnQ2NF90IGxuazsKKysgICAgdWludDY0X3QgeGVyOworKyAgICB1aW50NjRfdCBjY3I7Cisr ICAgIHVpbnQ2NF90IHNvZnRlOworKyAgICB1aW50NjRfdCB0cmFwOworKyAgICB1aW50NjRfdCBk YXI7CisrICAgIHVpbnQ2NF90IGRzaXNyOworKyAgICB1aW50NjRfdCByZXN1bHQ7CisgI2Vsc2UK KyAjZXJyb3IgUG9ydC4KKyAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4Nl9GQU1JTFkKK0BAIC0xNTQs NiArMTc4LDggQEAgdW5pb24gVGhyZWFkQ29udGV4dCB7CisgICB1c2luZyBOYXRpdmVUaHJlYWRD b250ZXh0ID0gdXNlcl9yZWdzOworICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkp CisgLy8gTm8gYXBwcm9wcmlhdGUgTmF0aXZlVGhyZWFkc0NvbnRleHQgdHlwZSBhdmFpbGFibGUg Zm9yIE1JUFMKKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKysgIHVzaW5n IE5hdGl2ZVRocmVhZENvbnRleHQgPSBzdHJ1Y3QgcHRfcmVnczsKKyAjZWxzZQorICNlcnJvciBQ b3J0LgorICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWSB8fCBBUkNIX0NQVV9BUk02NAor QEAgLTIyOSw2ICsyNTUsOSBAQCB1bmlvbiBGbG9hdENvbnRleHQgeworICAgICB9IGZwcmVnc1sz Ml07CisgICAgIHVpbnQzMl90IGZwY3NyOworICAgICB1aW50MzJfdCBmcHVfaWQ7CisrI2VsaWYg ZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisrICAgIC8vIENyYXNocGFkJ3MgUFBDIHN1 cHBvcnQgaXMgNjQtYml0IG9ubHksIHNvIHRoaXMKKysgICAgLy8gMzJiaXQtb25seSBzdHJ1Y3Qg aXMgZGVjbGFyZWQgYXMgZW1wdHkuCisgI2Vsc2UKKyAjZXJyb3IgUG9ydC4KKyAjZW5kaWYgIC8v IEFSQ0hfQ1BVX1g4Nl9GQU1JTFkKK0BAIC0yNjMsNiArMjkyLDEwIEBAIHVuaW9uIEZsb2F0Q29u dGV4dCB7CisgICAgIGRvdWJsZSBmcHJlZ3NbMzJdOworICAgICB1aW50MzJfdCBmcGNzcjsKKyAg ICAgdWludDMyX3QgZnB1X2lkOworKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZ KQorKyAgICAvLyBSZWZsZWN0cyBmcHJlZ3NldF90IGluIHN5cy91Y29udGV4dC5oCisrICAgIGRv dWJsZSBmcHJlZ3NbMzJdOworKyAgICBkb3VibGUgZnBzY3I7CisgI2Vsc2UKKyAjZXJyb3IgUG9y dC4KKyAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4Nl9GQU1JTFkKK0BAIC0yOTEsNiArMzI0LDggQEAg dW5pb24gRmxvYXRDb250ZXh0IHsKKyAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKGY2NCkgPT0gc2l6 ZW9mKHVzZXJfZnBzaW1kX3N0cnVjdCksICJTaXplIG1pc21hdGNoIik7CisgI2VsaWYgZGVmaW5l ZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKKyAvLyBObyBhcHByb3ByaWF0ZSBmbG9hdGluZyBwb2lu dCBjb250ZXh0IG5hdGl2ZSB0eXBlIGZvciBhdmFpbGFibGUgTUlQUy4KKysjZWxpZiBkZWZpbmVk KEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKysgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKGY2NCkgPT0g c2l6ZW9mKGZwcmVnc2V0X3QpLCAiU2l6ZSBtaXNtYXRjaCIpOworICNlbHNlCisgI2Vycm9yIFBv cnQuCisgI2VuZGlmICAvLyBBUkNIX0NQVV9YODYKK0BAIC0yOTgsNiArMzMzLDI2IEBAIHVuaW9u IEZsb2F0Q29udGV4dCB7Cisgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3N0YW5kYXJkX2xheW91dDxG bG9hdENvbnRleHQ+Ojp2YWx1ZSwKKyAgICAgICAgICAgICAgICJOb3Qgc3RhbmRhcmQgbGF5b3V0 Iik7CisgCisrLy8hIFxicmllZiBUaGUgdmVjdG9yIHJlZ2lzdGVycyB1c2VkIGZvciBhbiBhcmNo aXRlY3R1cmUgZmFtaWx5CisrdW5pb24gVmVjdG9yQ29udGV4dCB7CisrICBzdHJ1Y3QgdjMyX3Qg e30gdjMyOworKyNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKysgIF9fYXR0cmli dXRlX18oKF9fYWxpZ25lZF9fKDE2KSkpIC8vIFZlY3RvciBjb250ZXh0IG11c3QgYmUgZG91Ymxl d29yZCBhbGlnbmVkLgorKyNlbmRpZgorKyAgc3RydWN0IHY2NF90IHsKKysjaWYgZGVmaW5lZChB UkNIX0NQVV9QUEM2NF9GQU1JTFkpCisrICAgIC8vIFJlZmxlY3RzIHZycmVnc2V0X3QgaW4gc3lz L3Vjb250ZXh0LmgKKysgICAgdWludDMyX3QgdnJyZWdzWzMyXVs0XTsKKysgICAgc3RydWN0IHsK KysgICAgICB1aW50MzJfdCBfX3BhZFszXTsKKysgICAgICB1aW50MzJfdCB2c2NyX3dvcmQ7Cisr ICAgIH0gdnNjcjsKKysgICAgdWludDMyX3QgdnJzYXZlOworKyAgICB1aW50MzJfdCBfX3BhZFsz XTsKKysjZW5kaWYKKysgIH0gdjY0OworK307CisrCisgLy8hIFxicmllZiBBIGNvbGxlY3Rpb24g b2YgYHB0cmFjZWAtYWJsZSBpbmZvcm1hdGlvbiBhYm91dCBhIHRocmVhZC4KKyBzdHJ1Y3QgVGhy ZWFkSW5mbyB7CisgICBUaHJlYWRJbmZvKCk7CitAQCAtMzA5LDYgKzM2NCw5IEBAIHN0cnVjdCBU aHJlYWRJbmZvIHsKKyAgIC8vISBcYnJpZWYgVGhlIGZsb2F0aW5nIHBvaW50IHJlZ2lzdGVycyBm b3IgdGhlIHRocmVhZC4KKyAgIEZsb2F0Q29udGV4dCBmbG9hdF9jb250ZXh0OworIAorKyAgLy8h IFxicmllZiAoT3B0aW9uYWwpIFRoZSB2ZWN0b3IgcmVnaXN0ZXJzIHVzZWQgZm9yIHRoZSB0aHJl YWQuCisrICBWZWN0b3JDb250ZXh0IHZlY3Rvcl9jb250ZXh0OworKworICAgLy8hIFxicmllZiBU aGUgdGhyZWFkLWxvY2FsIHN0b3JhZ2UgYWRkcmVzcyBmb3IgdGhlIHRocmVhZC4KKyAgIExpbnV4 Vk1BZGRyZXNzIHRocmVhZF9zcGVjaWZpY19kYXRhX2FkZHJlc3M7CisgfTsKKy0tLSBhL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2Mv Y2FwdHVyZV9jb250ZXh0LmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0LmgKK0BAIC02OSw2 ICs2OSw3IEBAIHVzaW5nIE5hdGl2ZUNQVUNvbnRleHQgPSB1Y29udGV4dF90OworIC8vISAgICAg bWFjT1MvTGludXgvRnVjaHNpYSB8IHg4Nl82NCAgICAgICB8IGAlJXJkaWAKKyAvLyEgICAgIExp bnV4ICAgICAgICAgICAgICAgfCBBUk0vQVJNNjQgICAgfCBgcjBgL2B4MGAKKyAvLyEgICAgIExp bnV4ICAgICAgICAgICAgICAgfCBNSVBTL01JUFM2NCAgfCBgJGEwYAorKy8vISAgICAgTGludXgg ICAgICAgICAgICAgICB8IFBQQzY0ICAgICAgICB8IGByM2AKKyAvLyEKKyAvLyEgICAgIEFkZGl0 aW9uYWxseSwgdGhlIHZhbHVlIGBMUmAgb24gQVJNL0FSTTY0IHdpbGwgYmUgdGhlIHJldHVybiBh ZGRyZXNzIG9mCisgLy8hICAgICB0aGlzIGZ1bmN0aW9uLgorLS0tIGEvc3JjLzNyZHBhcnR5L2No cm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2Nv bnRleHRfbGludXguUworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Ny YXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHRfbGludXguUworQEAgLTMy LDcgKzMyLDcgQEAKKyAgIC5iYWxpZ24gNCwgMHgwCisgICAudHlwZSBDQVBUVVJFQ09OVEVYVF9T WU1CT0wsICVmdW5jdGlvbgorICAgLnR5cGUgQ0FQVFVSRUNPTlRFWFRfU1lNQk9MMiwgJWZ1bmN0 aW9uCistI2VsaWYgZGVmaW5lZChfX21pcHNfXykKKysjZWxpZiBkZWZpbmVkKF9fbWlwc19fKSB8 fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAuYmFsaWduIDQsIDB4MAorICNlbmRpZgorIAor QEAgLTQyMyw0ICs0MjMsMjE0IEBAIENBUFRVUkVDT05URVhUX1NZTUJPTDI6CisgICBqciAkcmEK KyAKKyAgIC5zZXQgYXQKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICAvLyBTdG9y ZSByMC1yMzEKKysgIHN0ZCAwLCAweGU4KDMpICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3Bf cmVnc1swXQorKyAgc3RkIDEsIDB4ZjAoMykgICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9y ZWdzWzFdCisrICBzdGQgMiwgMHhmOCgzKSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3Jl Z3NbMl0KKysgIC8vIG5vdGUgdGhhdCByMydzIG9yaWdpbmFsIHZhbHVlIHdhcyBsb3N0CisrICBz dGQgMywgMHgxMDAoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbM10KKysgIHN0 ZCA0LCAweDEwOCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1s0XQorKyAgc3Rk IDUsIDB4MTEwKDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzVdCisrICBzdGQg NiwgMHgxMTgoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbNl0KKysgIHN0ZCA3 LCAweDEyMCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1s3XQorKyAgc3RkIDgs IDB4MTI4KDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzhdCisrICBzdGQgOSwg MHgxMzAoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbOV0KKysgIHN0ZCAxMCwg MHgxMzgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxMF0KKysgIHN0ZCAxMSwg MHgxNDAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxMV0KKysgIHN0ZCAxMiwg MHgxNDgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxMl0KKysgIHN0ZCAxMywg MHgxNTAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxM10KKysgIHN0ZCAxNCwg MHgxNTgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxNF0KKysgIHN0ZCAxNSwg MHgxNjAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxNV0KKysgIHN0ZCAxNiwg MHgxNjgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxNl0KKysgIHN0ZCAxNywg MHgxNzAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxN10KKysgIHN0ZCAxOCwg MHgxNzgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxOF0KKysgIHN0ZCAxOSwg MHgxODAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxOV0KKysgIHN0ZCAyMCwg MHgxODgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syMF0KKysgIHN0ZCAyMSwg MHgxOTAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syMV0KKysgIHN0ZCAyMiwg MHgxOTgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syMl0KKysgIHN0ZCAyMywg MHgxYTAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syM10KKysgIHN0ZCAyNCwg MHgxYTgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syNF0KKysgIHN0ZCAyNSwg MHgxYjAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syNV0KKysgIHN0ZCAyNiwg MHgxYjgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syNl0KKysgIHN0ZCAyNywg MHgxYzAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syN10KKysgIHN0ZCAyOCwg MHgxYzgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syOF0KKysgIHN0ZCAyOSwg MHgxZDAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syOV0KKysgIHN0ZCAzMCwg MHgxZDgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1szMF0KKysgIHN0ZCAzMSwg MHgxZTAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1szMV0KKysKKysgIC8vIEZv ciBOSVAsIHdlIGNhbiB1c2UgdGhlIHZhbHVlIGluIHRoZSBsaW5rIHJlZ2lzdGVyCisrICBtZmxy IDAKKysgIHN0ZCAwLCAweDFlOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BU X05JUF0KKysKKysgIC8vIENUUgorKyAgbWZjdHIgMAorKyAgc3RkIDAsIDB4MjAwKDMpIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfQ1RSXQorKworKyAgLy8gRm9yIExOSywgd2Un bGwgdXNlIHRoZSBjYWxsZXIncyBMUiBzYXZlIGFyZWEgKDIgc3RhY2sgZnJhbWVzIHVwKS4KKysg IC8vIHI0IGNhbiBiZSB1c2VkIGFzIGEgc2NyYXRjaCByZWdpc3RlciBzaW5jZSBpdCBoYXMgYWxy ZWFkeSBiZWVuIHNhdmVkLgorKyAgbGQgNCwgMCgxKQorKyAgbGQgNCwgMTYoNCkKKysgIHN0ZCA0 LCAweDIwOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX0xOS10KKysKKysg IC8vIFhFUgorKyAgbWZ4ZXIgMAorKyAgc3RkIDAsIDB4MjEwKDMpIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LmdwX3JlZ3NbUFRfWEVSXQorKworKyAgLy8gQ0NSCisrICBtZmNyIDAKKysgIHN0ZCAw LCAweDIxOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX0NDUl0KKysKKysg IC8vIE1TUiwgb3JpZ19yMywgTVEsIFRSQVAsIERBUiwgRFNJU1IsIFJFU1VMVCwgRFNDUiwKKysg IC8vIG5vdCB1c2VkIG9yIG5vdCByZWxldmFudCwgIHplcm8gdGhlbSBvdXQuCisrICBsaSA0LCAw CisrICBzdGQgNCwgMHgxZjAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9N U1JdCisrICBzdGQgNCwgMHgxZjgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQ VF9PUklHX1IzXQorKyAgc3RkIDQsIDB4MjIwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0Lmdw X3JlZ3NbUFRfTVFdCisrICBzdGQgNCwgMHgyMjgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu Z3BfcmVnc1tQVF9UUkFQXQorKyAgc3RkIDQsIDB4MjMwKDMpIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmdwX3JlZ3NbUFRfREFSXQorKyAgc3RkIDQsIDB4MjM4KDMpIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LmdwX3JlZ3NbUFRfRFNJU1JdCisrICBzdGQgNCwgMHgyNDAoMykgLy8gY29udGV4dC0+ dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9SRVNVTFRdCisrICBzdGQgNCwgMHgyNDgoMykgLy8gY29u dGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9EU0NSXQorKworKyAgLy8gVXBkYXRlIGNvbnRl eHQtPnVjX21jb250ZXh0LnJlZ3MgdG8gcG9pbnQgdG8gZ3BfcmVncworKyAgYWRkaSAwLCAzLCAw eGU4CisrICBzdGQgMCwgMHhlMCgzKQorKworKyAgLy8gU2F2ZSBmbG9hdGluZyBwb2ludCByZWdp c3RlcnMgMC0zMQorKyAgc3RmZCAwLCAweDI2OCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu ZnBfcmVnc1swXQorKyAgc3RmZCAxLCAweDI3MCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu ZnBfcmVnc1sxXQorKyAgc3RmZCAyLCAweDI3OCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu ZnBfcmVnc1syXQorKyAgc3RmZCAzLCAweDI4MCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu ZnBfcmVnc1szXQorKyAgc3RmZCA0LCAweDI4OCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu ZnBfcmVnc1s0XQorKyAgc3RmZCA1LCAweDI5MCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu ZnBfcmVnc1s1XQorKyAgc3RmZCA2LCAweDI5OCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu ZnBfcmVnc1s2XQorKyAgc3RmZCA3LCAweDJhMCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu ZnBfcmVnc1s3XQorKyAgc3RmZCA4LCAweDJhOCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu ZnBfcmVnc1s4XQorKyAgc3RmZCA5LCAweDJiMCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu ZnBfcmVnc1s5XQorKyAgc3RmZCAxMCwgMHgyYjgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu ZnBfcmVnc1sxMF0KKysgIHN0ZmQgMTEsIDB4MmMwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmZwX3JlZ3NbMTFdCisrICBzdGZkIDEyLCAweDJjOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4 dC5mcF9yZWdzWzEyXQorKyAgc3RmZCAxMywgMHgyZDAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQuZnBfcmVnc1sxM10KKysgIHN0ZmQgMTQsIDB4MmQ4KDMpIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmZwX3JlZ3NbMTRdCisrICBzdGZkIDE1LCAweDJlMCgzKSAvLyBjb250ZXh0LT51Y19tY29u dGV4dC5mcF9yZWdzWzE1XQorKyAgc3RmZCAxNiwgMHgyZTgoMykgLy8gY29udGV4dC0+dWNfbWNv bnRleHQuZnBfcmVnc1sxNl0KKysgIHN0ZmQgMTcsIDB4MmYwKDMpIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LmZwX3JlZ3NbMTddCisrICBzdGZkIDE4LCAweDJmOCgzKSAvLyBjb250ZXh0LT51Y19t Y29udGV4dC5mcF9yZWdzWzE4XQorKyAgc3RmZCAxOSwgMHgzMDAoMykgLy8gY29udGV4dC0+dWNf bWNvbnRleHQuZnBfcmVnc1sxOV0KKysgIHN0ZmQgMjAsIDB4MzA4KDMpIC8vIGNvbnRleHQtPnVj X21jb250ZXh0LmZwX3JlZ3NbMjBdCisrICBzdGZkIDIxLCAweDMxMCgzKSAvLyBjb250ZXh0LT51 Y19tY29udGV4dC5mcF9yZWdzWzIxXQorKyAgc3RmZCAyMiwgMHgzMTgoMykgLy8gY29udGV4dC0+ dWNfbWNvbnRleHQuZnBfcmVnc1syMl0KKysgIHN0ZmQgMjMsIDB4MzIwKDMpIC8vIGNvbnRleHQt PnVjX21jb250ZXh0LmZwX3JlZ3NbMjNdCisrICBzdGZkIDI0LCAweDMyOCgzKSAvLyBjb250ZXh0 LT51Y19tY29udGV4dC5mcF9yZWdzWzI0XQorKyAgc3RmZCAyNSwgMHgzMzAoMykgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQuZnBfcmVnc1syNV0KKysgIHN0ZmQgMjYsIDB4MzM4KDMpIC8vIGNvbnRl eHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMjZdCisrICBzdGZkIDI3LCAweDM0MCgzKSAvLyBjb250 ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzI3XQorKyAgc3RmZCAyOCwgMHgzNDgoMykgLy8gY29u dGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1syOF0KKysgIHN0ZmQgMjksIDB4MzUwKDMpIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMjldCisrICBzdGZkIDMwLCAweDM1OCgzKSAvLyBj b250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzMwXQorKyAgc3RmZCAzMSwgMHgzNjAoMykgLy8g Y29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1szMV0KKysKKysgIC8vIEZQU0NSCisrICBtZmZz IDAKKysgIHN0ZmQgMCwgMHgzNjgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sz Ml0KKysKKysgIC8vIFNhdmUgVk1YIFZlY3RvciByZWdpc3RlcnMKKysgIC8vIFVwZGF0ZSByNCB0 byBjb250YWluIHRoZSBiYXNlIGFkZHJlc3Mgb2Ygdm14X3Jlc2VydmUKKysgIGFkZGkgNCwgMywg MHgzNzgKKysgIC8vIEVuc3VyZSB0aGF0IGl0IGlzIHF1YWR3b3JkIGFsaWduZWQKKysgIGFuZGku IDUsIDQsIDB4RgorKyAgYmVxIDFmIC8vIE5vIGFsaWdubWVudCBpcyBuZWNlc3NhcnkKKysgIC8v IEFkZHJlc3MgaXMgZG91Ymxld29yZCBhbGlnbmVkIGFuZCBub3QgcXVhZHdvcmQgYWxpZ25lZCwg YWRkIDgKKysgIGFkZGkgNCwgNCwgOAorKworKzE6CisrICAvLyBTdG9yZSBWTVggcmVnaXN0ZXJz IDAtMzEKKysgIC8vIHI0IHdpbGwgY29udGFpbiB0aGUgYmFzZSBhZGRyZXNzCisrICAvLyByNSB3 aWxsIGNvbnRhaW4gdGhlIGluZGV4CisrICBsaSA1LCAwCisrICBzdHZ4IDAsIDQsIDUgICAvLyBj b250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMF0KKysgIGFkZGkgNSwg NSwgMTYKKysgIHN0dnggMSwgNCwgNSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNl cnZlWyhhbGlnbikgKyAxXQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCAyLCA0LCA1ICAgLy8g Y29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDJdCisrICBhZGRpIDUs IDUsIDE2CisrICBzdHZ4IDMsIDQsIDUgICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVz ZXJ2ZVsoYWxpZ24pICsgM10KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggNCwgNCwgNSAgIC8v IGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyA0XQorKyAgYWRkaSA1 LCA1LCAxNgorKyAgc3R2eCA1LCA0LCA1ICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jl c2VydmVbKGFsaWduKSArIDVdCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDYsIDQsIDUgICAv LyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgNl0KKysgIGFkZGkg NSwgNSwgMTYKKysgIHN0dnggNywgNCwgNSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9y ZXNlcnZlWyhhbGlnbikgKyA3XQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCA4LCA0LCA1ICAg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDhdCisrICBhZGRp IDUsIDUsIDE2CisrICBzdHZ4IDksIDQsIDUgICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhf cmVzZXJ2ZVsoYWxpZ24pICsgOV0KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggMTAsIDQsIDUg IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAxMF0KKysgIGFk ZGkgNSwgNSwgMTYKKysgIHN0dnggMTEsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZt eF9yZXNlcnZlWyhhbGlnbikgKyAxMV0KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggMTIsIDQs IDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAxMl0KKysg IGFkZGkgNSwgNSwgMTYKKysgIHN0dnggMTMsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LnZteF9yZXNlcnZlWyhhbGlnbikgKyAxM10KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggMTQs IDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAxNF0K KysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggMTUsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAxNV0KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dngg MTYsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAx Nl0KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggMTcsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAxN10KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0 dnggMTgsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikg KyAxOF0KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggMTksIDQsIDUgIC8vIGNvbnRleHQtPnVj X21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAxOV0KKysgIGFkZGkgNSwgNSwgMTYKKysg IHN0dnggMjAsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGln bikgKyAyMF0KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggMjEsIDQsIDUgIC8vIGNvbnRleHQt PnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAyMV0KKysgIGFkZGkgNSwgNSwgMTYK KysgIHN0dnggMjIsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhh bGlnbikgKyAyMl0KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggMjMsIDQsIDUgIC8vIGNvbnRl eHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAyM10KKysgIGFkZGkgNSwgNSwg MTYKKysgIHN0dnggMjQsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZl WyhhbGlnbikgKyAyNF0KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggMjUsIDQsIDUgIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAyNV0KKysgIGFkZGkgNSwg NSwgMTYKKysgIHN0dnggMjYsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNl cnZlWyhhbGlnbikgKyAyNl0KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggMjcsIDQsIDUgIC8v IGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAyN10KKysgIGFkZGkg NSwgNSwgMTYKKysgIHN0dnggMjgsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9y ZXNlcnZlWyhhbGlnbikgKyAyOF0KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggMjksIDQsIDUg IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAyOV0KKysgIGFk ZGkgNSwgNSwgMTYKKysgIHN0dnggMzAsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZt eF9yZXNlcnZlWyhhbGlnbikgKyAzMF0KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggMzEsIDQs IDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAzMV0KKysg IGFkZGkgNSwgNSwgMTYKKysKKysgIC8vIFZTQ1IKKysgIG1mdnNjciAwCisrICBzdHZ4IDAsIDQs IDUKKysgIGFkZGkgNSwgNSwgMTYKKysKKysgIC8vIFZSU0FWRQorKyAgbWZ2cnNhdmUgMAorKyAg c3R3eCAwLCA0LCA1CisrCisrICAvLyBVcGRhdGUgY29udGV4dC0+dWNfbWNvbnRleHQudl9yZWdz IHRvIHBvaW50IHRvIHZteF9yZXNlcnZlICsgYWxpZ25tZW50LgorKyAgc3RkIDQsIDB4MzcwKDMp CisrCisrICAvLyBaZXJvIG91dCBhbGwgdW51c2VkIGZpZWxkcworKyAgbGkgNCwgMAorKyAgc3Rk IDQsIDB4YzgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuc2lnbmFsCisrICBzdGQgNCwgMHhk MCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5oYW5kbGVyCisrICBzdGQgNCwgMHhkOCgzKSAv LyBjb250ZXh0LT51Y19tY29udGV4dC5vbGRtYXNrCisrCisrICBibHIKKyAjZW5kaWYgIC8vIF9f aTM4Nl9fCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQv Y3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dF90ZXN0LmNjCisrKysgYi9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2Nh cHR1cmVfY29udGV4dF90ZXN0LmNjCitAQCAtNTcsNyArNTcsNyBAQCB2b2lkIFRlc3RDYXB0dXJl Q29udGV4dCgpIHsKKyAgIHVpbnRwdHJfdCBwYyA9IFByb2dyYW1Db3VudGVyRnJvbUNvbnRleHQo Y29udGV4dF8xKTsKKyAKKyAjaWYgIWRlZmluZWQoQUREUkVTU19TQU5JVElaRVIpICYmICFkZWZp bmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBcCistICAgICFkZWZpbmVkKE1FTU9SWV9TQU5J VElaRVIpCisrICAgICFkZWZpbmVkKE1FTU9SWV9TQU5JVElaRVIpICYmICFkZWZpbmVkKEFSQ0hf Q1BVX1BQQzY0X0ZBTUlMWSkKKyAgIC8vIFNhbml0aXplcnMgY2FuIGNhdXNlIGVub3VnaCBjb2Rl IGJsb2F0IHRoYXQgdGhlIOKAnG5lYXJieeKAnSBjaGVjayB3b3VsZAorICAgLy8gbGlrZWx5IGZh aWwuCisgICBjb25zdCB1aW50cHRyX3Qga1JlZmVyZW5jZVBDID0KKy0tLSBhL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVy ZV9jb250ZXh0X3Rlc3RfdXRpbF9saW51eC5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHRf dGVzdF91dGlsX2xpbnV4LmNjCitAQCAtMzUsNiArMzUsOCBAQCB2b2lkIFNhbml0eUNoZWNrQ29u dGV4dChjb25zdCBOYXRpdmVDUFVDCisgICBFWFBFQ1RfRVEoY29udGV4dC51Y19tY29udGV4dC5y ZWdzWzBdLCBGcm9tUG9pbnRlckNhc3Q8dWludHB0cl90PigmY29udGV4dCkpOworICNlbGlmIGRl ZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCisgICBFWFBFQ1RfRVEoY29udGV4dC51Y19tY29u dGV4dC5ncmVnc1s0XSwgRnJvbVBvaW50ZXJDYXN0PHVpbnRwdHJfdD4oJmNvbnRleHQpKTsKKysj ZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKysgIEVYUEVDVF9FUShjb250ZXh0 LnVjX21jb250ZXh0LmdwX3JlZ3NbM10sIEZyb21Qb2ludGVyQ2FzdDx1aW50cHRyX3Q+KCZjb250 ZXh0KSk7CisgI2VuZGlmCisgfQorIAorQEAgLTQ5LDYgKzUxLDggQEAgdWludHB0cl90IFByb2dy YW1Db3VudGVyRnJvbUNvbnRleHQoY29ucworICAgcmV0dXJuIGNvbnRleHQudWNfbWNvbnRleHQu cGM7CisgI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKKyAgIHJldHVybiBjb250 ZXh0LnVjX21jb250ZXh0LnBjOworKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZ KQorKyAgcmV0dXJuIGNvbnRleHQudWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9OSVBdOworICNlbmRp ZgorIH0KKyAKK0BAIC02Myw2ICs2Nyw4IEBAIHVpbnRwdHJfdCBTdGFja1BvaW50ZXJGcm9tQ29u dGV4dChjb25zdAorICAgcmV0dXJuIGNvbnRleHQudWNfbWNvbnRleHQuc3A7CisgI2VsaWYgZGVm aW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKKyAgIHJldHVybiBjb250ZXh0LnVjX21jb250ZXh0 LmdyZWdzWzI5XTsKKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKysgIHJl dHVybiBjb250ZXh0LnVjX21jb250ZXh0LmdwX3JlZ3NbMV07CisgI2VuZGlmCisgfQorIAorLS0t IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0 aWwvcG9zaXgvc2lnbmFsc190ZXN0LmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhp cmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9wb3NpeC9zaWduYWxzX3Rlc3QuY2MKK0BA IC00Niw5ICs0Niw5IEBAIGJvb2wgQ2FuQ2F1c2VTaWduYWwoaW50IHNpZykgeworICAgcmV0dXJu IHNpZyA9PSBTSUdBQlJUIHx8CisgICAgICAgICAgc2lnID09IFNJR0FMUk0gfHwKKyAgICAgICAg ICBzaWcgPT0gU0lHQlVTIHx8CistI2lmICFkZWZpbmVkKEFSQ0hfQ1BVX0FSTTY0KQorKyNpZiAh ZGVmaW5lZChBUkNIX0NQVV9BUk02NCkgJiYgIWRlZmluZWQoQVJDSF9DUFVfUFBDNjQpCisgICAg ICAgICAgc2lnID09IFNJR0ZQRSB8fAorLSNlbmRpZiAgLy8gIWRlZmluZWQoQVJDSF9DUFVfQVJN NjQpCisrI2VuZGlmICAvLyAhZGVmaW5lZChBUkNIX0NQVV9BUk02NCkgJiYgIWRlZmluZWQoQVJD SF9DUFVfUFBDNjQpCisgI2lmIGRlZmluZWQoQVJDSF9DUFVfWDg2X0ZBTUlMWSkgfHwgZGVmaW5l ZChBUkNIX0NQVV9BUk1FTCkKKyAgICAgICAgICBzaWcgPT0gU0lHSUxMIHx8CisgI2VuZGlmICAv LyBkZWZpbmVkKEFSQ0hfQ1BVX1g4Nl9GQU1JTFkpIHx8IGRlZmluZWQoQVJDSF9DUFVfQVJNRUwp CitAQCAtMTE3LDkgKzExNywxMSBAQCB2b2lkIENhdXNlU2lnbmFsKGludCBzaWcpIHsKKyAgICAg ICBicmVhazsKKyAgICAgfQorIAorLSNpZiAhZGVmaW5lZChBUkNIX0NQVV9BUk02NCkKKysjaWYg IWRlZmluZWQoQVJDSF9DUFVfQVJNNjQpICYmICFkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0KQorICAg ICAvLyBBUk02NCBoYXMgaGFyZHdhcmUgaW50ZWdlciBkaXZpc2lvbiBpbnN0cnVjdGlvbnMgdGhh dCBkb27igJl0IGdlbmVyYXRlIGEKKyAgICAgLy8gdHJhcCBmb3IgZGl2aWRlLWJ5LXplcm8sIHNv IHRoaXMgZG9lc27igJl0IHByb2R1Y2UgU0lHRlBFLgorKyAgICAvLworKyAgICAvLyBQUEM2NCBm aXhlZC1wb2ludCBkaXZpc2lvbiBieSB6ZXJvIGFsc28gZG9lc24ndCBwcm9kdWNlIGEgU0lHRlBF LgorICAgICBjYXNlIFNJR0ZQRTogeworICAgICAgIC8vIE9wdGltaXphdGlvbiBtYWtlcyB0aGlz IHRyaWNreSwgc28gZ2V0IHplcm8gZnJvbSBhIHN5c3RlbSBjYWxsIGxpa2VseQorICAgICAgIC8v IHRvIHN1Y2NlZWQsIGFuZCB0cnkgdG8gZG8gc29tZXRoaW5nIHdpdGggdGhlIHJlc3VsdC4KK0BA IC0xMzcsNyArMTM5LDcgQEAgdm9pZCBDYXVzZVNpZ25hbChpbnQgc2lnKSB7CisgICAgICAgZnN0 YXQocXVvdGllbnQsICZzdGF0X2J1Zik7CisgICAgICAgYnJlYWs7CisgICAgIH0KKy0jZW5kaWYg IC8vIEFSQ0hfQ1BVX0FSTTY0CisrI2VuZGlmICAvLyAhZGVmaW5lZChBUkNIX0NQVV9BUk02NCkg JiYgIWRlZmluZWQoQVJDSF9DUFVfUFBDNjQpCisgCisgI2lmIGRlZmluZWQoQVJDSF9DUFVfWDg2 X0ZBTUlMWSkgfHwgZGVmaW5lZChBUkNIX0NQVV9BUk1FTCkKKyAgICAgY2FzZSBTSUdJTEw6IHsK Ky0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9kYXYxZC9CVUlMRC5nbgor KysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2RhdjFkL0JVSUxELmduCitA QCAtMTk2LDYgKzE5Niw4IEBAIHN0YXRpY19saWJyYXJ5KCJkYXYxZF84Yml0IikgeworICAgICBz b3VyY2VzICs9IGFybV90ZW1wbGF0ZV9zb3VyY2VzCisgICB9IGVsc2UgaWYgKGN1cnJlbnRfY3B1 ID09ICJhcm02NCIpIHsKKyAgICAgc291cmNlcyArPSBhcm1fdGVtcGxhdGVfc291cmNlcworKyAg fSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAicHBjNjQiKSB7CisrICAgIHNvdXJjZXMgKz0gcHBj NjRfdGVtcGxhdGVfc291cmNlcworICAgfQorIAorICAgY2ZsYWdzID0gZGF2MWRfY29wdHMKK0BA IC0yMjYsNiArMjI4LDggQEAgc3RhdGljX2xpYnJhcnkoImRhdjFkXzEwYml0IikgeworICAgICBz b3VyY2VzICs9IGFybV90ZW1wbGF0ZV9zb3VyY2VzCisgICB9IGVsc2UgaWYgKGN1cnJlbnRfY3B1 ID09ICJhcm02NCIpIHsKKyAgICAgc291cmNlcyArPSBhcm1fdGVtcGxhdGVfc291cmNlcworKyAg fSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAicHBjNjQiKSB7CisrICAgIHNvdXJjZXMgKz0gcHBj NjRfdGVtcGxhdGVfc291cmNlcworICAgfQorIAorICAgY2ZsYWdzID0gZGF2MWRfY29wdHMKK0BA IC0yODMsNiArMjg3LDIxIEBAIGlmIChjdXJyZW50X2NwdSA9PSAieDg2IiB8fCBjdXJyZW50X2Nw dQorICAgICB9CisgCisgICAgIGNmbGFncyA9IGRhdjFkX2NvcHRzCisrICB9CisrfSBlbHNlIGlm IChjdXJyZW50X2NwdSA9PSAicHBjNjQiKSB7CisrICBzdGF0aWNfbGlicmFyeSgiZGF2MWRfcHBj IikgeworKyAgICBzb3VyY2VzID0gWworKyAgICAgICJsaWJkYXYxZC9zcmMvcHBjL2NwdS5jIiwK KysgICAgICAibGliZGF2MWQvc3JjL3BwYy9jcHUuaCIsCisrICAgIF0KKysKKysgICAgY29uZmln cyAtPSBbICIvL2J1aWxkL2NvbmZpZy9jb21waWxlcjpjaHJvbWl1bV9jb2RlIiBdCisrICAgIGNv bmZpZ3MgKz0gWworKyAgICAgICIvL2J1aWxkL2NvbmZpZy9jb21waWxlcjpub19jaHJvbWl1bV9j b2RlIiwKKysgICAgICAiOmRhdjFkX2NvbmZpZyIsCisrICAgIF0KKysKKysgICAgY2ZsYWdzID0g ZGF2MWRfY29wdHMKKyAKKyAgICAgZGVwcyA9IFsgIjpkYXYxZF9oZWFkZXJzIiBdCisgICAgIGFs bG93X2NpcmN1bGFyX2luY2x1ZGVzX2Zyb20gPSBbICI6ZGF2MWRfaGVhZGVycyIgXQorQEAgLTMx NSw1ICszMzQsNyBAQCBzdGF0aWNfbGlicmFyeSgiZGF2MWQiKSB7CisgICAgIH0KKyAgIH0gZWxz ZSBpZiAoY3VycmVudF9jcHUgPT0gImFybSIgfHwgY3VycmVudF9jcHUgPT0gImFybTY0Iikgewor ICAgICBkZXBzICs9IFsgIjpkYXYxZF9hcm0iIF0KKysgIH0gZWxzZSBpZiAoY3VycmVudF9jcHUg PT0gInBwYzY0IikgeworKyAgICBkZXBzICs9IFsgIjpkYXYxZF9wcGMiIF0KKyAgIH0KKyB9Cist LS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvZGF2MWQvZGF2MWRfZ2VuZXJh dGVkLmduaQorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2RhdjFkL2Rh djFkX2dlbmVyYXRlZC5nbmkKK0BAIC0xMDMsNiArMTAzLDExIEBAIGFybV90ZW1wbGF0ZV9zb3Vy Y2VzID0gWworICAgImxpYmRhdjFkL3NyYy9hcm0vbWNfaW5pdF90bXBsLmMiLAorIF0KKyAKKytw cGM2NF90ZW1wbGF0ZV9zb3VyY2VzID0gWworKyAgImxpYmRhdjFkL3NyYy9wcGMvY2RlZl9pbml0 X3RtcGwuYyIsCisrICAibGliZGF2MWQvc3JjL3BwYy9sb29wcmVzdG9yYXRpb25faW5pdF90bXBs LmMiLAorK10KKysKKyB0ZW1wbGF0ZV9zb3VyY2VzID0gWworICAgImxpYmRhdjFkL3NyYy9jZGVm X2FwcGx5X3RtcGwuYyIsCisgICAibGliZGF2MWQvc3JjL2NkZWZfdG1wbC5jIiwKKy0tLSBhL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9kYXYxZC9nZW5lcmF0ZV9zb3VyY2UucHkK KysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9kYXYxZC9nZW5lcmF0ZV9z b3VyY2UucHkKK0BAIC01Nyw2ICs1Nyw4IEBAIGRlZiBfV3JpdGVHbihmZCk6CisgICBfV3JpdGVB cnJheShmZCwgImFybTY0X2FzbV9zb3VyY2VzIiwgX0dsb2IoImxpYmRhdjFkL3NyYy9hcm0vNjQv Ki5TIikpCisgICBfV3JpdGVBcnJheShmZCwgImFybV90ZW1wbGF0ZV9zb3VyY2VzIiwgX0dsb2Io ImxpYmRhdjFkL3NyYy9hcm0vKl90bXBsLmMiKSkKKyAKKysgIF9Xcml0ZUFycmF5KGZkLCAicHBj NjRfdGVtcGxhdGVfc291cmNlcyIsIF9HbG9iKCJsaWJkYXYxZC9zcmMvcHBjLypfdG1wbC5jIikp CisrCisgICB0ZW1wbGF0ZV9zb3VyY2VzID0gX0dsb2IoImxpYmRhdjFkL3NyYy8qX3RtcGwuYyIp CisgICBfV3JpdGVBcnJheShmZCwgInRlbXBsYXRlX3NvdXJjZXMiLCB0ZW1wbGF0ZV9zb3VyY2Vz KQorIAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2RhdjFkL2xpYmRh djFkL3NyYy9wcGMvdHlwZXMuaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3Bh cnR5L2RhdjFkL2xpYmRhdjFkL3NyYy9wcGMvdHlwZXMuaAorQEAgLTUxLDQgKzUxLDE5IEBACisg I2RlZmluZSB1MTZsX3RvX2kzMih2KSAoKGkzMng0KSB2ZWNfbWVyZ2VsKCh1MTZ4OCkgdiwgdmVj X3NwbGF0X3UxNigwKSkpCisgI2RlZmluZSBpMTZsX3RvX2kzMih2KSAoKGkzMng0KSB2ZWNfdW5w YWNrbCgoaTE2eDgpdikpCisgCisrI2lmIGRlZmluZWQoX19jbGFuZ19fKQorKyN1bmRlZiB2ZWNf c3BsYXRzCisrI2RlZmluZSB2ZWNfc3BsYXRzKE4pICAgICAgICAgICAgICAgICAgICAgXAorKyAg ICBfR2VuZXJpYygoTiksICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgICAgIHVuc2ln bmVkIGNoYXI6ICAgICAgKCh1OHgxNikoTikpLCBcCisrICAgICAgICBzaWduZWQgY2hhcjogICAg ICAgICgoaTh4MTYpKE4pKSwgXAorKyAgICAgICAgdW5zaWduZWQgc2hvcnQ6ICAgICAoKHUxNng4 KShOKSksIFwKKysgICAgICAgIHNpZ25lZCBzaG9ydDogICAgICAgKChpMTZ4OCkoTikpLCBcCisr ICAgICAgICB1bnNpZ25lZCBpbnQ6ICAgICAgICgodTMyeDQpKE4pKSwgXAorKyAgICAgICAgc2ln bmVkIGludDogICAgICAgICAoKGkzMng0KShOKSksIFwKKysgICAgICAgIHVuc2lnbmVkIGxvbmcg bG9uZzogKCh1NjR4MikoTikpLCBcCisrICAgICAgICBzaWduZWQgbG9uZyBsb25nOiAgICgoaTY0 eDIpKE4pKSAgXAorKyAgICApCisrI2VuZGlmCisrCisgI2VuZGlmIC8qIERBVjFEX1NSQ19QUENf VFlQRVNfSCAqLworLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2VpZ2Vu My9CVUlMRC5nbgorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2VpZ2Vu My9CVUlMRC5nbgorQEAgLTIyLDQgKzIyLDggQEAgY29uZmlnKCJlaWdlbl9pbmNsdWRlcyIpIHsK KyAgICAgIyBmb3IgdGhpcyBjb21wb25lbnQgb24gV2luZG93cyBvbiBBcm0gZHVlIHRvIGNvbXBp bGF0aW9uIGVycm9ycy4KKyAgICAgZGVmaW5lcyArPSBbICJFSUdFTl9ET05UX1ZFQ1RPUklaRSIg XQorICAgfQorKworKyAgaWYgKHRhcmdldF9jcHUgPT0gInBwYzY0IikgeworKyAgICBkZWZpbmVz ICs9IFsgIkVJR0VOX0RPTlRfVkVDVE9SSVpFIiBdCisrICB9CisgfQorLS0tIGEvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2xpYmFvbS9CVUlMRC5nbgorKysrIGIvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2xpYmFvbS9CVUlMRC5nbgorQEAgLTM3LDYgKzM3LDgg QEAgaWYgKGVuYWJsZV9saWJhb20pIHsKKyAgICAgfSBlbHNlIHsKKyAgICAgICBjcHVfYXJjaF9m dWxsID0gImFybSIKKyAgICAgfQorKyAgfSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAicHBjNjQi KSB7CisrICAgIGNwdV9hcmNoX2Z1bGwgPSAiZ2VuZXJpYyIKKyAgIH0gZWxzZSB7CisgICAgIGNw dV9hcmNoX2Z1bGwgPSBjdXJyZW50X2NwdQorICAgfQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3RoaXJkX3BhcnR5L2xpYmdhdjEvb3B0aW9ucy5nbmkKKysrKyBiL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS90aGlyZF9wYXJ0eS9saWJnYXYxL29wdGlvbnMuZ25pCitAQCAtMTIsNSArMTIsNSBA QCBkZWNsYXJlX2FyZ3MoKSB7CisgICAgICAgaXNfY2hyb21lb3NfYXNoICYmICh0YXJnZXRfY3B1 ID09ICJhcm0iIHx8IHRhcmdldF9jcHUgPT0gImFybTY0IikKKyAgIHVzZV9saWJnYXYxX3BhcnNl ciA9CisgICAgICAgKGlzX2Nocm9tZW9zIHx8IGlzX2xpbnV4IHx8IGlzX3dpbikgJiYKKy0gICAg ICAodGFyZ2V0X2NwdSA9PSAieDg2IiB8fCB0YXJnZXRfY3B1ID09ICJ4NjQiIHx8IHRhcmdldF9j cHUgPT0gImFybTY0IikKKysgICAgICAodGFyZ2V0X2NwdSA9PSAieDg2IiB8fCB0YXJnZXRfY3B1 ID09ICJ4NjQiIHx8IHRhcmdldF9jcHUgPT0gImFybTY0IiB8fCB0YXJnZXRfY3B1ID09ICJwcGM2 NCIpCisgfQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2xzcy9saW51 eF9zeXNjYWxsX3N1cHBvcnQuaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3Bh cnR5L2xzcy9saW51eF9zeXNjYWxsX3N1cHBvcnQuaAorQEAgLTQyNjIsNyArNDI2Miw3IEBAIHN0 cnVjdCBrZXJuZWxfc3RhdGZzIHsKKyAgICAgICBMU1NfUkVHKDIsIGJ1Zik7CisgICAgICAgTFNT X0JPRFkodm9pZCosIG1tYXAyLCAiMCIoX19yMikpOworICAgICB9CistI2Vsc2UKKysjZWxpZiAh ZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAvKiBwcGM2NCBkb2Vzbid0IGhhdmUgbW1hcDIgKi8KKyAg ICAgI2RlZmluZSBfX05SX19tbWFwMiBfX05SX21tYXAyCisgICAgIExTU19JTkxJTkUgX3N5c2Nh bGw2KHZvaWQqLCBfbW1hcDIsICAgICAgICAgICAgdm9pZCosIHMsCisgICAgICAgICAgICAgICAg ICAgICAgICAgIHNpemVfdCwgICAgICAgICAgICAgICAgICAgbCwgaW50LCAgICAgICAgICAgICAg IHAsCitAQCAtNDM3Myw3ICs0MzczLDcgQEAgc3RydWN0IGtlcm5lbF9zdGF0ZnMgeworICAgI2lm IGRlZmluZWQoX19pMzg2X18pIHx8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKKyAgICAgICBkZWZpbmVkKF9fQVJNX0FSQ0hfM19fKSB8fCBkZWZp bmVkKF9fQVJNX0VBQklfXykgfHwgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAoZGVmaW5l ZChfX21pcHNfXykgJiYgX01JUFNfU0lNID09IF9NSVBTX1NJTV9BQkkzMikgfHwgICAgICAgICAg ICAgICAgICAgXAorLSAgICAgIGRlZmluZWQoX19QUENfXykgfHwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgIChkZWZpbmVkKF9fUFBD X18pICYmICFkZWZpbmVkKF9fcG93ZXJwYzY0X18pKSB8fCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgKGRlZmluZWQoX19zMzkwX18p ICYmICFkZWZpbmVkKF9fczM5MHhfXykpCisgICAgIC8qIE9uIHRoZXNlIGFyY2hpdGVjdHVyZXMs IGltcGxlbWVudCBtbWFwKCkgd2l0aCBtbWFwMigpLiAqLworICAgICBMU1NfSU5MSU5FIHZvaWQq IExTU19OQU1FKG1tYXApKHZvaWQgKnMsIHNpemVfdCBsLCBpbnQgcCwgaW50IGYsIGludCBkLAor QEAgLTQ1NTYsOSArNDU1NiwxNyBAQCBzdHJ1Y3Qga2VybmVsX3N0YXRmcyB7CisgICAgIH0KKyAg ICNlbmRpZgorICAgI2lmIGRlZmluZWQoX19OUl9mc3RhdGF0NjQpCisrICAgICNpZiAhZGVmaW5l ZChfX0dMSUJDX18pCisrICAgICAgICAvLyBtdXNsIGRvZXNuJ3QgZGVmaW5lIGZzdGF0YXQ2NCBm c3RhdGF0CisrICAgICAgICAjdW5kZWYgZnN0YXRhdDY0CisrICAgICNlbmRpZgorICAgICBMU1Nf SU5MSU5FIF9zeXNjYWxsNChpbnQsICAgZnN0YXRhdDY0LCAgICAgICAgaW50LCAgIGQsCisgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKiwgICAgICBwLAorICAgICAgICAgICAg ICAgICAgICAgICAgICBzdHJ1Y3Qga2VybmVsX3N0YXQ2NCAqLCAgIGIsICAgIGludCwgICBmKQor KyAgICAjaWYgIWRlZmluZWQoX19HTElCQ19fKQorKyAgICAJLy8gdGhlbiByZXN0b3JlIGl0Cisr ICAgICAgICAjZGVmaW5lIGZzdGF0YXQ2NCBmc3RhdGF0CisrICAgICNlbmRpZgorICAgI2VuZGlm CisgICAjaWYgZGVmaW5lZChfX05SX3dhaXRwaWQpCisgICAgIC8vIHdhaXRwaWQgaXMgcG9seWZp bGxlZCBiZWxvdyB3aGVuIG5vdCBhdmFpbGFibGUuCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21p dW0vdGhpcmRfcGFydHkvcGRmaXVtL3RoaXJkX3BhcnR5L2xpYnBuZzE2L3BuZ3ByaXYuaAorKysr IGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3BkZml1bS90aGlyZF9wYXJ0eS9s aWJwbmcxNi9wbmdwcml2LmgKK0BAIC0xOTYsMTEgKzE5Niw3IEBACisgI2VuZGlmCisgCisgI2lm bmRlZiBQTkdfUE9XRVJQQ19WU1hfT1BUCistIyAgaWYgZGVmaW5lZChfX1BQQzY0X18pICYmIGRl ZmluZWQoX19BTFRJVkVDX18pICYmIGRlZmluZWQoX19WU1hfXykKKy0jICAgICBkZWZpbmUgUE5H X1BPV0VSUENfVlNYX09QVCAyCistIyAgZWxzZQorLSMgICAgIGRlZmluZSBQTkdfUE9XRVJQQ19W U1hfT1BUIDAKKy0jICBlbmRpZgorKyMgIGRlZmluZSBQTkdfUE9XRVJQQ19WU1hfT1BUIDAKKyAj ZW5kaWYKKyAKKyAjaWZuZGVmIFBOR19JTlRFTF9TU0VfT1BUCistLS0gYS9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdGhpcmRfcGFydHkvcGZmZnQvc3JjL3BmZmZ0LmMKKysrKyBiL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9wZmZmdC9zcmMvcGZmZnQuYworQEAgLTEwMCw2ICsxMDAs NyBAQAorICAgIEFsdGl2ZWMgc3VwcG9ydCBtYWNyb3MgCisgKi8KKyAjaWYgIWRlZmluZWQoUEZG RlRfU0lNRF9ESVNBQkxFKSAmJiAoZGVmaW5lZChfX3BwY19fKSB8fCBkZWZpbmVkKF9fcHBjNjRf XykpCisrI2luY2x1ZGUgPGFsdGl2ZWMuaD4KKyB0eXBlZGVmIHZlY3RvciBmbG9hdCB2NHNmOwor ICMgIGRlZmluZSBTSU1EX1NaIDQKKyAjICBkZWZpbmUgVlpFUk8oKSAoKHZlY3RvciBmbG9hdCkg dmVjX3NwbGF0X3U4KDApKQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5 L3NraWEvc3JjL3Nrc2wvU2tTTFN0cmluZy5jcHAKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS90aGlyZF9wYXJ0eS9za2lhL3NyYy9za3NsL1NrU0xTdHJpbmcuY3BwCitAQCAtMTQyLDcgKzE0 MiwxMiBAQCBTdHJpbmcgdG9fc3RyaW5nKGRvdWJsZSB2YWx1ZSkgeworICAgICBpZiAobmVlZHNE b3RaZXJvKSB7CisgICAgICAgICBidWZmZXIgPDwgIi4wIjsKKyAgICAgfQorLSAgICByZXR1cm4g U3RyaW5nKGJ1ZmZlci5zdHIoKS5jX3N0cigpKTsKKysKKysgICAgc3RkOjpzdHJpbmcgcmV0KGJ1 ZmZlci5zdHIoKSk7CisrICAgIGlmIChzaWduYml0KHZhbHVlKSAmJiByZXRbMF0gPT0gJy4nKSB7 CisrICAgICAgICByZXRbMF0gPSAnLSc7CisrICAgIH0KKysgICAgcmV0dXJuIFN0cmluZyhyZXQu Y19zdHIoKSk7CisgfQorIAorIGJvb2wgc3RvZChjb25zdCBza3N0ZDo6c3RyaW5nX3ZpZXcmIHMs IFNLU0xfRkxPQVQqIHZhbHVlKSB7CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRf cGFydHkvc3FsaXRlL3NyYy9hbWFsZ2FtYXRpb24vc3FsaXRlMy5jCisrKysgYi9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdGhpcmRfcGFydHkvc3FsaXRlL3NyYy9hbWFsZ2FtYXRpb24vc3FsaXRlMy5j CitAQCAtMTQ2MjgsNyArMTQ2MjgsOCBAQCB0eXBlZGVmIElOVDE2X1RZUEUgTG9nRXN0OworICMg aWYgZGVmaW5lZChpMzg2KSAgICAgIHx8IGRlZmluZWQoX19pMzg2X18pICAgICAgfHwgZGVmaW5l ZChfTV9JWDg2KSB8fCAgICBcCisgICAgICBkZWZpbmVkKF9feDg2XzY0KSAgfHwgZGVmaW5lZChf X3g4Nl82NF9fKSAgICB8fCBkZWZpbmVkKF9NX1g2NCkgIHx8ICAgIFwKKyAgICAgIGRlZmluZWQo X01fQU1ENjQpICB8fCBkZWZpbmVkKF9NX0FSTSkgICAgICAgIHx8IGRlZmluZWQoX194ODYpICAg fHwgICAgXAorLSAgICAgZGVmaW5lZChfX0FSTUVMX18pIHx8IGRlZmluZWQoX19BQVJDSDY0RUxf XykgfHwgZGVmaW5lZChfTV9BUk02NCkKKysgICAgIGRlZmluZWQoX19BUk1FTF9fKSB8fCBkZWZp bmVkKF9fQUFSQ0g2NEVMX18pIHx8IGRlZmluZWQoX01fQVJNNjQpIHx8ICAgXAorKyAgICAgZGVm aW5lZChfX3Bvd2VycGM2NF9fKSAmJiAoX19CWVRFX09SREVSX18gPT0gX19PUkRFUl9MSVRUTEVf RU5ESUFOX18pCisgIyAgIGRlZmluZSBTUUxJVEVfQllURU9SREVSICAgIDEyMzQKKyAjIGVsaWYg ZGVmaW5lZChzcGFyYykgICAgIHx8IGRlZmluZWQoX19wcGNfXykgfHwgXAorICAgICAgICBkZWZp bmVkKF9fQVJNRUJfXykgfHwgZGVmaW5lZChfX0FBUkNINjRFQl9fKQorLS0tIGEvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvYW1hbGdhbWF0aW9uX2Rldi9zcWxp dGUzLmMKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9zcWxpdGUvc3Jj L2FtYWxnYW1hdGlvbl9kZXYvc3FsaXRlMy5jCitAQCAtMTQ2NDEsNyArMTQ2NDEsOCBAQCB0eXBl ZGVmIElOVDE2X1RZUEUgTG9nRXN0OworICMgaWYgZGVmaW5lZChpMzg2KSAgICAgIHx8IGRlZmlu ZWQoX19pMzg2X18pICAgICAgfHwgZGVmaW5lZChfTV9JWDg2KSB8fCAgICBcCisgICAgICBkZWZp bmVkKF9feDg2XzY0KSAgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSAgICB8fCBkZWZpbmVkKF9NX1g2 NCkgIHx8ICAgIFwKKyAgICAgIGRlZmluZWQoX01fQU1ENjQpICB8fCBkZWZpbmVkKF9NX0FSTSkg ICAgICAgIHx8IGRlZmluZWQoX194ODYpICAgfHwgICAgXAorLSAgICAgZGVmaW5lZChfX0FSTUVM X18pIHx8IGRlZmluZWQoX19BQVJDSDY0RUxfXykgfHwgZGVmaW5lZChfTV9BUk02NCkKKysgICAg IGRlZmluZWQoX19BUk1FTF9fKSB8fCBkZWZpbmVkKF9fQUFSQ0g2NEVMX18pIHx8IGRlZmluZWQo X01fQVJNNjQpIHx8ICAgXAorKyAgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAmJiAoX19CWVRF X09SREVSX18gPT0gX19PUkRFUl9MSVRUTEVfRU5ESUFOX18pCisgIyAgIGRlZmluZSBTUUxJVEVf QllURU9SREVSICAgIDEyMzQKKyAjIGVsaWYgZGVmaW5lZChzcGFyYykgICAgIHx8IGRlZmluZWQo X19wcGNfXykgfHwgXAorICAgICAgICBkZWZpbmVkKF9fQVJNRUJfXykgfHwgZGVmaW5lZChfX0FB UkNINjRFQl9fKQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3NxbGl0 ZS9zcmMvZXh0L3J0cmVlL3J0cmVlLmMKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGly ZF9wYXJ0eS9zcWxpdGUvc3JjL2V4dC9ydHJlZS9ydHJlZS5jCitAQCAtNDUwLDcgKzQ1MCw3IEBA IHN0cnVjdCBSdHJlZU1hdGNoQXJnIHsKKyAjaWYgZGVmaW5lZChpMzg2KSAgICAgfHwgZGVmaW5l ZChfX2kzODZfXykgICB8fCBkZWZpbmVkKF9NX0lYODYpIHx8ICAgIFwKKyAgICAgZGVmaW5lZChf X3g4Nl82NCkgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9NX1g2NCkgIHx8ICAg IFwKKyAgICAgZGVmaW5lZChfTV9BTUQ2NCkgfHwgZGVmaW5lZChfTV9BUk0pICAgICB8fCBkZWZp bmVkKF9feDg2KSAgIHx8ICAgIFwKKy0gICAgZGVmaW5lZChfX2FybV9fKQorKyAgICBkZWZpbmVk KF9fYXJtX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykgJiYgKF9fQllURV9PUkRFUl9fID09 IF9fT1JERVJfTElUVExFX0VORElBTl9fKQorICMgZGVmaW5lIFNRTElURV9CWVRFT1JERVIgICAg MTIzNAorICNlbGlmIGRlZmluZWQoc3BhcmMpICAgIHx8IGRlZmluZWQoX19wcGNfXykKKyAjIGRl ZmluZSBTUUxJVEVfQllURU9SREVSICAgIDQzMjEKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS90aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL3NyYy9zcWxpdGVJbnQuaAorKysrIGIvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvc3JjL3NxbGl0ZUludC5oCitAQCAt ODkwLDcgKzg5MCw4IEBAIHR5cGVkZWYgSU5UMTZfVFlQRSBMb2dFc3Q7CisgIyBpZiBkZWZpbmVk KGkzODYpICAgICAgfHwgZGVmaW5lZChfX2kzODZfXykgICAgICB8fCBkZWZpbmVkKF9NX0lYODYp IHx8ICAgIFwKKyAgICAgIGRlZmluZWQoX194ODZfNjQpICB8fCBkZWZpbmVkKF9feDg2XzY0X18p ICAgIHx8IGRlZmluZWQoX01fWDY0KSAgfHwgICAgXAorICAgICAgZGVmaW5lZChfTV9BTUQ2NCkg IHx8IGRlZmluZWQoX01fQVJNKSAgICAgICAgfHwgZGVmaW5lZChfX3g4NikgICB8fCAgICBcCist ICAgICBkZWZpbmVkKF9fQVJNRUxfXykgfHwgZGVmaW5lZChfX0FBUkNINjRFTF9fKSB8fCBkZWZp bmVkKF9NX0FSTTY0KQorKyAgICAgZGVmaW5lZChfX0FSTUVMX18pIHx8IGRlZmluZWQoX19BQVJD SDY0RUxfXykgfHwgZGVmaW5lZChfTV9BUk02NCkgfHwgXAorKyAgICAgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKSAmJiAoX19CWVRFX09SREVSX18gPT0gX19PUkRFUl9MSVRUTEVfRU5ESUFOX18pCisg IyAgIGRlZmluZSBTUUxJVEVfQllURU9SREVSICAgIDEyMzQKKyAjIGVsaWYgZGVmaW5lZChzcGFy YykgICAgIHx8IGRlZmluZWQoX19wcGNfXykgfHwgXAorICAgICAgICBkZWZpbmVkKF9fQVJNRUJf XykgfHwgZGVmaW5lZChfX0FBUkNINjRFQl9fKQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3RoaXJkX3BhcnR5L3dlYnJ0Yy9tb2R1bGVzL2Rlc2t0b3BfY2FwdHVyZS9kaWZmZXJfYmxvY2su Y2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxl cy9kZXNrdG9wX2NhcHR1cmUvZGlmZmVyX2Jsb2NrLmNjCitAQCAtMzAsMTEgKzMwLDcgQEAgYm9v bCBWZWN0b3JEaWZmZXJlbmNlKGNvbnN0IHVpbnQ4X3QqIGltYQorICAgc3RhdGljIGJvb2wgKCpk aWZmX3Byb2MpKGNvbnN0IHVpbnQ4X3QqLCBjb25zdCB1aW50OF90KikgPSBudWxscHRyOworIAor ICAgaWYgKCFkaWZmX3Byb2MpIHsKKy0jaWYgZGVmaW5lZChXRUJSVENfQVJDSF9BUk1fRkFNSUxZ KSB8fCBkZWZpbmVkKFdFQlJUQ19BUkNIX01JUFNfRkFNSUxZKQorLSAgICAvLyBGb3IgQVJNIGFu ZCBNSVBTIHByb2Nlc3NvcnMsIGFsd2F5cyB1c2UgQyB2ZXJzaW9uLgorLSAgICAvLyBUT0RPKGhj bGFtKTogSW1wbGVtZW50IGEgTkVPTiB2ZXJzaW9uLgorLSAgICBkaWZmX3Byb2MgPSAmVmVjdG9y RGlmZmVyZW5jZV9DOworLSNlbHNlCisrI2lmIGRlZmluZWQoV0VCUlRDX0FSQ0hfWDg2X0ZBTUlM WSkKKyAgICAgYm9vbCBoYXZlX3NzZTIgPSBHZXRDUFVJbmZvKGtTU0UyKSAhPSAwOworICAgICAv LyBGb3IgeDg2IHByb2Nlc3NvcnMsIGNoZWNrIGlmIFNTRTIgaXMgc3VwcG9ydGVkLgorICAgICBp ZiAoaGF2ZV9zc2UyICYmIGtCbG9ja1NpemUgPT0gMzIpIHsKK0BAIC00NCw2ICs0MCwxMCBAQCBi b29sIFZlY3RvckRpZmZlcmVuY2UoY29uc3QgdWludDhfdCogaW1hCisgICAgIH0gZWxzZSB7Cisg ICAgICAgZGlmZl9wcm9jID0gJlZlY3RvckRpZmZlcmVuY2VfQzsKKyAgICAgfQorKyNlbHNlCisr ICAgIC8vIEZvciBvdGhlciBwcm9jZXNzb3JzLCBhbHdheXMgdXNlIEMgdmVyc2lvbi4KKysgICAg Ly8gVE9ETyhoY2xhbSk6IEltcGxlbWVudCBhIE5FT04gdmVyc2lvbi4KKysgICAgZGlmZl9wcm9j ID0gJlZlY3RvckRpZmZlcmVuY2VfQzsKKyAjZW5kaWYKKyAgIH0KKyAKKy0tLSBhL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS92OC9CVUlMRC5nbgorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4 L0JVSUxELmduCitAQCAtMTA4Myw2ICsxMDgzLDEyIEBAIGNvbmZpZygidG9vbGNoYWluIikgewor ICAgICB9CisgICAgIGlmIChob3N0X2J5dGVvcmRlciA9PSAibGl0dGxlIikgeworICAgICAgIGRl ZmluZXMgKz0gWyAiVjhfVEFSR0VUX0FSQ0hfUFBDX0xFIiBdCisrICAgICAgY2ZsYWdzICs9IFsK KysgICAgICAgICMgRW5hYmxlIHVzYWdlIG9mIEFsdGlWZWMsIFZTWCwgYW5kIG90aGVyIFBPV0VS OCBhbmQgaGlnaGVyIGZlYXR1cmVzCisrICAgICAgICAiLW1jcHU9cG93ZXI4IiwKKysgICAgICAg ICItbWFsdGl2ZWMiLAorKyAgICAgICAgIi1tdnN4IiwKKysgICAgICBdCisgICAgIH0gZWxzZSBp ZiAoaG9zdF9ieXRlb3JkZXIgPT0gImJpZyIpIHsKKyAgICAgICBkZWZpbmVzICs9IFsgIlY4X1RB UkdFVF9BUkNIX1BQQ19CRSIgXQorICAgICAgIGlmIChjdXJyZW50X29zID09ICJhaXgiKSB7Cist LS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdWkvZ2wvZmVhdHVyZXMuZ25pCisrKysgYi9zcmMv M3JkcGFydHkvY2hyb21pdW0vdWkvZ2wvZmVhdHVyZXMuZ25pCitAQCAtMzUsNyArMzUsOCBAQCBk ZWNsYXJlX2FyZ3MoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgKGlzX21hYyAmJiB1c2Vf ZWdsKSB8fCBpc19jaHJvbWVvc19hc2ggfHwgaXNfZnVjaHNpYSkgJiYKKyAgICAgICAgICAgICAg ICAgICAgICAgICh0YXJnZXRfY3B1ID09ICJ4ODYiIHx8IHRhcmdldF9jcHUgPT0gIng2NCIgfHwK KyAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRfY3B1ID09ICJhcm0iIHx8IHRhcmdldF9j cHUgPT0gImFybTY0IiB8fAorLSAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9jcHUgPT0g Im1pcHNlbCIgfHwgdGFyZ2V0X2NwdSA9PSAibWlwczY0ZWwiKQorKyAgICAgICAgICAgICAgICAg ICAgICAgIHRhcmdldF9jcHUgPT0gIm1pcHNlbCIgfHwgdGFyZ2V0X2NwdSA9PSAibWlwczY0ZWwi IHx8CisrICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2NwdSA9PSAicHBjNjQiKQorIH0K KyAKKyB1c2VfZ2x4ID0gdXNlX3gxMSB8fCBvem9uZV9wbGF0Zm9ybV94MTEKKy0tLSBhL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS92OC90ZXN0L0JVSUxELmduCisrKysgYi9zcmMvM3JkcGFydHkvY2hy b21pdW0vdjgvdGVzdC9CVUlMRC5nbgorQEAgLTQyLDcgKzQyLDYgQEAgZ3JvdXAoImduX2FsbCIp IHsKKyAgICAgICAiYmVuY2htYXJrcy9jcHA6Z25fYWxsIiwKKyAgICAgICAiY2N0ZXN0OmNjdGVz dCIsCisgICAgICAgImNjdGVzdDpnZW5lcmF0ZS1ieXRlY29kZS1leHBlY3RhdGlvbnMiLAorLSAg ICAgICJ1bml0dGVzdHM6dW5pdHRlc3RzIiwKKyAgICAgXQorICAgfQorIH0KK0BAIC04NCw3ICs4 Myw2IEBAIGdyb3VwKCJ2OF9ib3RfZGVmYXVsdCIpIHsKKyAgICAgIm1lc3NhZ2U6djhfbWVzc2Fn ZSIsCisgICAgICJtanN1bml0OnY4X21qc3VuaXQiLAorICAgICAibWtncm9rZHVtcDpta2dyb2tk dW1wIiwKKy0gICAgInVuaXR0ZXN0czp1bml0dGVzdHMiLAorICAgICAid2Via2l0OnY4X3dlYmtp dCIsCisgICBdCisgCitAQCAtMTA5LDcgKzEwNyw2IEBAIGdyb3VwKCJ2OF9kZWZhdWx0Iikgewor ICAgICAibWVzc2FnZTp2OF9tZXNzYWdlIiwKKyAgICAgIm1qc3VuaXQ6djhfbWpzdW5pdCIsCisg ICAgICJta2dyb2tkdW1wOm1rZ3Jva2R1bXAiLAorLSAgICAidW5pdHRlc3RzOnVuaXR0ZXN0cyIs CisgICBdCisgCisgICBpZiAodjhfZW5hYmxlX3dlYmFzc2VtYmx5KSB7CistLS0gL2Rldi9udWxs CisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vZGV2L251bGwKK0BAIC0wLDAgKzEsMzkgQEAK KysvKgorKyAqIEF1dG9nZW5lcmF0ZWQgYnkgdGhlIE1lc29uIGJ1aWxkIHN5c3RlbS4KKysgKiBE byBub3QgZWRpdCwgeW91ciBjaGFuZ2VzIHdpbGwgYmUgbG9zdC4KKysgKi8KKysKKysjcHJhZ21h IG9uY2UKKysKKysjZGVmaW5lIEFSQ0hfQUFSQ0g2NCAwCisrCisrI2RlZmluZSBBUkNIX0FSTSAw CisrCisrI2RlZmluZSBBUkNIX1BQQzY0TEUgMQorKworKyNkZWZpbmUgQVJDSF9YODYgMAorKwor KyNkZWZpbmUgQVJDSF9YODZfMzIgMAorKworKyNkZWZpbmUgQVJDSF9YODZfNjQgMAorKworKyNk ZWZpbmUgQ09ORklHXzE2QlBDIDEKKysKKysjZGVmaW5lIENPTkZJR184QlBDIDEKKysKKysvLyAj ZGVmaW5lIENPTkZJR19MT0cgMSAtLSBMb2dnaW5nIGlzIGNvbnRyb2xsZWQgYnkgQ2hyb21pdW0K KysKKysjZGVmaW5lIEVORElBTk5FU1NfQklHIDAKKysKKysjZGVmaW5lIEhBVkVfQVNNIDEKKysK KysjZGVmaW5lIEhBVkVfQ0xPQ0tfR0VUVElNRSAxCisrCisrI2RlZmluZSBIQVZFX0RMU1lNIDEK KysKKysjZGVmaW5lIEhBVkVfR0VUQVVYVkFMIDEKKysKKysjZGVmaW5lIEhBVkVfUE9TSVhfTUVN QUxJR04gMQorKworKyNkZWZpbmUgSEFWRV9VTklTVERfSCAxCisrCistLS0gYS9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYWJzZWlsLWNwcC9hYnNsL2Jhc2UvaW50ZXJuYWwvdW5z Y2FsZWRjeWNsZWNsb2NrLmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0 eS9hYnNlaWwtY3BwL2Fic2wvYmFzZS9pbnRlcm5hbC91bnNjYWxlZGN5Y2xlY2xvY2suaAorQEAg LTQ2LDcgKzQ2LDcgQEAKKyAKKyAvLyBUaGUgZm9sbG93aW5nIHBsYXRmb3JtcyBoYXZlIGFuIGlt cGxlbWVudGF0aW9uIG9mIGEgaGFyZHdhcmUgY291bnRlci4KKyAjaWYgZGVmaW5lZChfX2kzODZf XykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBcCist ICBkZWZpbmVkKF9fcG93ZXJwY19fKSB8fCBkZWZpbmVkKF9fcHBjX18pIHx8IFwKKysgICgoZGVm aW5lZChfX3Bvd2VycGNfXykgfHwgZGVmaW5lZChfX3BwY19fKSkgJiYgZGVmaW5lZChfX0dMSUJD X18pKSB8fCBcCisgICBkZWZpbmVkKF9NX0lYODYpIHx8IGRlZmluZWQoX01fWDY0KQorICNkZWZp bmUgQUJTTF9IQVZFX1VOU0NBTEVEX0NZQ0xFQ0xPQ0tfSU1QTEVNRU5UQVRJT04gMQorICNlbHNl CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYWJzZWlsLWNwcC9hYnNs L2RlYnVnZ2luZy9pbnRlcm5hbC9zdGFja3RyYWNlX2NvbmZpZy5oCisrKysgYi9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYWJzZWlsLWNwcC9hYnNsL2RlYnVnZ2luZy9pbnRlcm5h bC9zdGFja3RyYWNlX2NvbmZpZy5oCitAQCAtNTksNyArNTksNyBAQAorICNlbGlmIGRlZmluZWQo X19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykKKyAjZGVmaW5lIEFCU0xfU1RBQ0tUUkFD RV9JTkxfSEVBREVSIFwKKyAgICJhYnNsL2RlYnVnZ2luZy9pbnRlcm5hbC9zdGFja3RyYWNlX3g4 Ni1pbmwuaW5jIgorLSNlbGlmIGRlZmluZWQoX19wcGNfXykgfHwgZGVmaW5lZChfX1BQQ19fKQor KyNlbGlmIGRlZmluZWQoX19wcGNfXykgfHwgZGVmaW5lZChfX1BQQ19fKSAmJiBkZWZpbmVkKF9f R0xJQkNfXykKKyAjZGVmaW5lIEFCU0xfU1RBQ0tUUkFDRV9JTkxfSEVBREVSIFwKKyAgICJhYnNs L2RlYnVnZ2luZy9pbnRlcm5hbC9zdGFja3RyYWNlX3Bvd2VycGMtaW5sLmluYyIKKyAjZWxpZiBk ZWZpbmVkKF9fYWFyY2g2NF9fKQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jhc2UvYWxs b2NhdG9yL3BhcnRpdGlvbl9hbGxvY2F0b3IvcGFydGl0aW9uX2FsbG9jX2NvbmZpZy5oCisrKysg Yi9zcmMvM3JkcGFydHkvY2hyb21pdW0vYmFzZS9hbGxvY2F0b3IvcGFydGl0aW9uX2FsbG9jYXRv ci9wYXJ0aXRpb25fYWxsb2NfY29uZmlnLmgKK0BAIC0xMDAsNyArMTAwLDggQEAgc3RhdGljX2Fz c2VydChzaXplb2Yodm9pZCopICE9IDgsICIiKTsKKyAvLyBQVVRfUkVGX0NPVU5UX0lOX1BSRVZJ T1VTX1NMT1QgZG9lcy4gSW4gdGhpcyBjYXNlIHRoZSByZWZjb3VudCBvdmVybGFwcyB3aXRoCisg Ly8gdGhlIG5leHQgcG9pbnRlciBzaGFkb3cgZm9yIHRoZSBzbWFsbGVzdCBidWNrZXQuCisgI2lm ICEoZGVmaW5lZChPU19NQUMpICYmIGRlZmluZWQoQVJDSF9DUFVfQVJNNjQpKSAmJiBcCistICAg ICFCVUlMREZMQUcoUFVUX1JFRl9DT1VOVF9JTl9QUkVWSU9VU19TTE9UKQorKyAgICAhQlVJTERG TEFHKFBVVF9SRUZfQ09VTlRfSU5fUFJFVklPVVNfU0xPVCkgJiYgXAorKyAgICAoIWRlZmluZWQo X19HTElCQykgJiYgIWRlZmluZWQoX19wb3dlcnBjNjRfXykpCisgI2RlZmluZSBQQV9IQVNfRlJF RUxJU1RfSEFSREVOSU5HCisgI2VuZGlmCisgCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0v YnVpbGQvZG93bmxvYWRfbmFjbF90b29sY2hhaW5zLnB5CisrKysgYi9zcmMvM3JkcGFydHkvY2hy b21pdW0vYnVpbGQvZG93bmxvYWRfbmFjbF90b29sY2hhaW5zLnB5CitAQCAtMTMsNiArMTMsOCBA QCBpbXBvcnQgc3lzCisgCisgCisgZGVmIE1haW4oYXJncyk6CisrICBpZiAnZGlzYWJsZV9uYWNs PTEnIGluIG9zLmVudmlyb24uZ2V0KCdHWVBfREVGSU5FUycsICcnKToKKysgICAgcmV0dXJuIDAK KyAgIHNjcmlwdF9kaXIgPSBvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5hYnNwYXRoKF9fZmlsZV9f KSkKKyAgIHNyY19kaXIgPSBvcy5wYXRoLmRpcm5hbWUoc2NyaXB0X2RpcikKKyAgIG5hY2xfZGly ID0gb3MucGF0aC5qb2luKHNyY19kaXIsICduYXRpdmVfY2xpZW50JykKKy0tLSBhL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS9jaHJvbWUvaW5zdGFsbGVyL2xpbnV4L0JVSUxELmduCisrKysgYi9zcmMv M3JkcGFydHkvY2hyb21pdW0vY2hyb21lL2luc3RhbGxlci9saW51eC9CVUlMRC5nbgorQEAgLTEw MCw4ICsxMDAsNiBAQCBwYWNrYWdpbmdfZmlsZXMgPSBwYWNrYWdpbmdfZmlsZXNfYmluYXJpCisg ICAgICAgICAgICAgICAgICAgICAiJHJvb3Rfb3V0X2Rpci94ZGctbWltZSIsCisgICAgICAgICAg ICAgICAgICAgICAiJHJvb3Rfb3V0X2Rpci94ZGctc2V0dGluZ3MiLAorICAgICAgICAgICAgICAg ICAgICAgIiRyb290X291dF9kaXIvbG9jYWxlcy9lbi1VUy5wYWsiLAorLSAgICAgICAgICAgICAg ICAgICAgIiRyb290X291dF9kaXIvTUVJUHJlbG9hZC9tYW5pZmVzdC5qc29uIiwKKy0gICAgICAg ICAgICAgICAgICAgICIkcm9vdF9vdXRfZGlyL01FSVByZWxvYWQvcHJlbG9hZGVkX2RhdGEucGIi LAorICAgICAgICAgICAgICAgICAgIF0KKyAKKyBhY3Rpb25fZm9yZWFjaCgiY2FsY3VsYXRlX2Rl Yl9kZXBlbmRlbmNpZXMiKSB7CitAQCAtMzIxLDcgKzMxOSw2IEBAIGdyb3VwKCJpbnN0YWxsZXJf ZGVwcyIpIHsKKyAgICAgIjp0aGVtZV9maWxlcyIsCisgICAgICIvL2Nocm9tZSIsCisgICAgICIv L2Nocm9tZTpwYWNrZWRfcmVzb3VyY2VzIiwKKy0gICAgIi8vY2hyb21lL2Jyb3dzZXIvcmVzb3Vy Y2VzL21lZGlhL21laV9wcmVsb2FkOmNvbXBvbmVudCIsCisgICAgICIvL2NvbXBvbmVudHMvY3Jh c2gvY29yZS9hcHA6Y2hyb21lX2NyYXNocGFkX2hhbmRsZXIiLAorICAgICAiLy9zYW5kYm94L2xp bnV4OmNocm9tZV9zYW5kYm94IiwKKyAgIF0KKy0tLSAvZGV2L251bGwKKysrKyBiL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3BwYzY0X2xpbnV4X3N5 c2NhbGxzLmgKK0BAIC0wLDAgKzEsMTIgQEAKKysvLyBDb3B5cmlnaHQgMjAxNCBUaGUgQ2hyb21p dW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKysvLyBVc2Ugb2YgdGhpcyBzb3VyY2Ug Y29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisrLy8g Zm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKysKKysjaWZuZGVmIFNBTkRCT1hfTElOVVhfU1lT VEVNX0hFQURFUlNfUFBDNjRfTElOVVhfU1lTQ0FMTFNfSF8KKysjZGVmaW5lIFNBTkRCT1hfTElO VVhfU1lTVEVNX0hFQURFUlNfUFBDNjRfTElOVVhfU1lTQ0FMTFNfSF8KKysKKysjaW5jbHVkZSA8 YXNtL3VuaXN0ZC5oPgorKworKy8vVE9ETzogaXMgaXQgbmVjZXNzYXJ5IHRvIHJlZGVmaW5lIHN5 c2NhbGwgbnVtYmVycyBmb3IgUFBDNjQ/CisrCisrI2VuZGlmICAvLyBTQU5EQk9YX0xJTlVYX1NZ U1RFTV9IRUFERVJTX1BQQzY0X0xJTlVYX1NZU0NBTExTX0hfCistLS0gL2Rldi9udWxsCisrKysg Yi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9wcGM2 NF9saW51eF91Y29udGV4dC5oCitAQCAtMCwwICsxLDEyIEBACisrLy8gQ29weXJpZ2h0IDIwMTQg VGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisrLy8gVXNlIG9mIHRo aXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNh biBiZQorKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisrCisrI2lmbmRlZiBTQU5EQk9Y X0xJTlVYX1NZU1RFTV9IRUFERVJTX1BQQzY0X0xJTlVYX1VDT05URVhUX0hfCisrI2RlZmluZSBT QU5EQk9YX0xJTlVYX1NZU1RFTV9IRUFERVJTX1BQQzY0X0xJTlVYX1VDT05URVhUX0hfCisrCisr I2luY2x1ZGUgPHN5cy91Y29udGV4dC5oPgorKworKy8vVE9ETzogaXMgaXQgbmVjZXNzYXJ5IHRv IHJlZGVmaW5lIHVjb250ZXh0IG9uIFBQQzY0PworKworKyNlbmRpZiAgLy8gU0FOREJPWF9MSU5V WF9TWVNURU1fSEVBREVSU19QUEM2NF9MSU5VWF9VQ09OVEVYVF9IXworLS0tIGEvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbmV0L2h0dHBf dHJhbnNwb3J0X2xpYmN1cmwuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL25ldC9odHRwX3RyYW5zcG9ydF9saWJjdXJsLmNj CitAQCAtMjM2LDYgKzIzNiwxMiBAQCBzdGQ6OnN0cmluZyBVc2VyQWdlbnQoKSB7CisgI2VsaWYg ZGVmaW5lZChBUkNIX0NQVV9CSUdfRU5ESUFOKQorICAgICBzdGF0aWMgY29uc3RleHByIGNoYXIg YXJjaFtdID0gImFhcmNoNjRfYmUiOworICNlbmRpZgorKyNlbGlmIGRlZmluZWQoX19wb3dlcnBj NjRfXykKKysjaWYgZGVmaW5lZChBUkNIX0NQVV9MSVRUTEVfRU5ESUFOKQorKyAgICBzdGF0aWMg Y29uc3RleHByIGNoYXIgYXJjaFtdID0gInBwYzY0bGUiOworKyNlbGlmIGRlZmluZWQoQVJDSF9D UFVfQklHX0VORElBTikKKysgICAgc3RhdGljIGNvbnN0ZXhwciBjaGFyIGFyY2hbXSA9ICJwcGM2 NCI7CisrI2VuZGlmCisgI2Vsc2UKKyAjZXJyb3IgUG9ydAorICNlbmRpZgorLS0tIC9kZXYvbnVs bAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2RhdjFkL2NvbmZpZy9s aW51eC9wcGM2NC9jb25maWcuaAorQEAgLTAsMCArMSwzOSBAQAorKy8qCisrICogQXV0b2dlbmVy YXRlZCBieSB0aGUgTWVzb24gYnVpbGQgc3lzdGVtLgorKyAqIERvIG5vdCBlZGl0LCB5b3VyIGNo YW5nZXMgd2lsbCBiZSBsb3N0LgorKyAqLworKworKyNwcmFnbWEgb25jZQorKworKyNkZWZpbmUg QVJDSF9BQVJDSDY0IDAKKysKKysjZGVmaW5lIEFSQ0hfQVJNIDAKKysKKysjZGVmaW5lIEFSQ0hf UFBDNjRMRSAxCisrCisrI2RlZmluZSBBUkNIX1g4NiAwCisrCisrI2RlZmluZSBBUkNIX1g4Nl8z MiAwCisrCisrI2RlZmluZSBBUkNIX1g4Nl82NCAwCisrCisrI2RlZmluZSBDT05GSUdfMTZCUEMg MQorKworKyNkZWZpbmUgQ09ORklHXzhCUEMgMQorKworKy8vICNkZWZpbmUgQ09ORklHX0xPRyAx IC0tIExvZ2dpbmcgaXMgY29udHJvbGxlZCBieSBDaHJvbWl1bQorKworKyNkZWZpbmUgRU5ESUFO TkVTU19CSUcgMAorKworKyNkZWZpbmUgSEFWRV9BU00gMQorKworKyNkZWZpbmUgSEFWRV9DTE9D S19HRVRUSU1FIDEKKysKKysjZGVmaW5lIEhBVkVfRExTWU0gMQorKworKyNkZWZpbmUgSEFWRV9H RVRBVVhWQUwgMQorKworKyNkZWZpbmUgSEFWRV9QT1NJWF9NRU1BTElHTiAxCisrCisrI2RlZmlu ZSBIQVZFX1VOSVNURF9IIDEKKysKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9w YXRjaGVzLzA5MDMteHh4LXBwYzY0bGUtc3dpZnRzaGFkZXIucGF0Y2ggYi9zcmNwa2dzL3F0Ni13 ZWJlbmdpbmUvcGF0Y2hlcy8wOTAzLXh4eC1wcGM2NGxlLXN3aWZ0c2hhZGVyLnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMWE4Y2Q4MzY4ZGExCi0tLSAvZGV2 L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDkwMy14eHgtcHBjNjRs ZS1zd2lmdHNoYWRlci5wYXRjaApAQCAtMCwwICsxLDE4IEBACistLS0gYS9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdGhpcmRfcGFydHkvc3dpZnRzaGFkZXIvdGhpcmRfcGFydHkvbGx2bS0xMC4wL0JV SUxELmduCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvc3dpZnRzaGFk ZXIvdGhpcmRfcGFydHkvbGx2bS0xMC4wL0JVSUxELmduCitAQCAtNTc2LDYgKzU3Niw3IEBAIHN3 aWZ0c2hhZGVyX2xsdm1fc291cmNlX3NldCgic3dpZnRzaGFkZXIKKyAgICAgImxsdm0vbGliL01D L01DQXNtSW5mb0NPRkYuY3BwIiwKKyAgICAgImxsdm0vbGliL01DL01DQXNtSW5mb0Rhcndpbi5j cHAiLAorICAgICAibGx2bS9saWIvTUMvTUNBc21JbmZvRUxGLmNwcCIsCisrICAgICJsbHZtL2xp Yi9NQy9NQ0FzbUluZm9YQ09GRi5jcHAiLAorICAgICAibGx2bS9saWIvTUMvTUNBc21NYWNyby5j cHAiLAorICAgICAibGx2bS9saWIvTUMvTUNBc21TdHJlYW1lci5jcHAiLAorICAgICAibGx2bS9s aWIvTUMvTUNBc3NlbWJsZXIuY3BwIiwKK0BAIC02MzEsNiArNjMyLDcgQEAgc3dpZnRzaGFkZXJf bGx2bV9zb3VyY2Vfc2V0KCJzd2lmdHNoYWRlcgorICAgICAibGx2bS9saWIvTUMvTUNXaW5DT0ZG U3RyZWFtZXIuY3BwIiwKKyAgICAgImxsdm0vbGliL01DL01DV2luRUguY3BwIiwKKyAgICAgImxs dm0vbGliL01DL01DWENPRkZTdHJlYW1lci5jcHAiLAorKyAgICAibGx2bS9saWIvTUMvTUNYQ09G Rk9iamVjdFRhcmdldFdyaXRlci5jcHAiLAorICAgICAibGx2bS9saWIvTUMvTWFjaE9iamVjdFdy aXRlci5jcHAiLAorICAgICAibGx2bS9saWIvTUMvU3RyaW5nVGFibGVCdWlsZGVyLmNwcCIsCisg ICAgICJsbHZtL2xpYi9NQy9TdWJ0YXJnZXRGZWF0dXJlLmNwcCIsCmRpZmYgLS1naXQgYS9zcmNw a2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy9jcm9zcy1idWlsZC1leGFtcGxlcy5wYXRjaCBiL3Ny Y3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzL2Nyb3NzLWJ1aWxkLWV4YW1wbGVzLnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNDU5ODY0M2NjMGRjCi0tLSAv ZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvY3Jvc3MtYnVpbGQt ZXhhbXBsZXMucGF0Y2gKQEAgLTAsMCArMSwxNiBAQAorLS0tIGEvZXhhbXBsZXMvQ01ha2VMaXN0 cy50eHQKKysrKyBiL2V4YW1wbGVzL0NNYWtlTGlzdHMudHh0CitAQCAtMSw3ICsxLDYgQEAKKyBj bWFrZV9taW5pbXVtX3JlcXVpcmVkKFZFUlNJT04gMy4xNikKKyAKKyBxdF9leGFtcGxlc19idWls ZF9iZWdpbihFWFRFUk5BTF9CVUlMRCkKKy1pZihOT1QgQ01BS0VfQ1JPU1NDT01QSUxJTkcpICNR VEJVRy04NjUzMworICAgICBpZihUQVJHRVQgUXQ6OldlYkVuZ2luZUNvcmUpCisgICAgICAgICBh ZGRfc3ViZGlyZWN0b3J5KHdlYmVuZ2luZXF1aWNrKQorICAgICBlbmRpZigpCitAQCAtMTQsNSAr MTMsNCBAQCBpZihOT1QgQ01BS0VfQ1JPU1NDT01QSUxJTkcpICNRVEJVRy04NjUzCisgICAgIGlm KFRBUkdFVCBRdDo6UGRmV2lkZ2V0cykKKyAgICAgICAgIGFkZF9zdWJkaXJlY3RvcnkocGRmd2lk Z2V0cykKKyAgICAgZW5kaWYoKQorLWVuZGlmKCkKKyBxdF9leGFtcGxlc19idWlsZF9lbmQoKQpk aWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3RlbXBsYXRlIGIvc3JjcGtncy9xdDYt d2ViZW5naW5lL3RlbXBsYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MC4uZDI4NDcwZDMxN2EzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5l L3RlbXBsYXRlCkBAIC0wLDAgKzEsMTc5IEBACisjIFRlbXBsYXRlIGZpbGUgZm9yICdxdDYtd2Vi ZW5naW5lJworcGtnbmFtZT1xdDYtd2ViZW5naW5lCit2ZXJzaW9uPTYuMy4xCityZXZpc2lvbj0x Cit3cmtzcmM9InF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0iCitidWlsZF9z dHlsZT1jbWFrZQorY29uZmlndXJlX2FyZ3M9IgorIC1EUVRfRkVBVFVSRV93ZWJlbmdpbmVfc3lz dGVtX2ZmbXBlZz1PTgorIC1EUVRfRkVBVFVSRV93ZWJlbmdpbmVfc3lzdGVtX2xpYmV2ZW50PU9O CisgLURRVF9GRUFUVVJFX3dlYmVuZ2luZV9zeXN0ZW1fZ249T04KKyAtRFFUX0ZFQVRVUkVfd2Vi ZW5naW5lX3N5c3RlbV9pY3U9T04KKyAtRFFUX0ZFQVRVUkVfd2ViZW5naW5lX3dlYnJ0Y19waXBl d2lyZT1PTgorIC1ETmluamFfRVhFQ1VUQUJMRT0kWEJQU19XUkFQUEVSRElSL25pbmphCisgJCh2 b3B0X2Jvb2wgZXhhbXBsZXMgUVRfQlVJTERfRVhBTVBMRVMpCisgLURQS0dfQ09ORklHX0hPU1Rf RVhFQ1VUQUJMRT0ke1BLR19DT05GSUdfRk9SX0JVSUxEfSIKK2hvc3RtYWtlZGVwZW5kcz0icXQ2 LWJhc2UtZGV2ZWwgcGVybCBwa2ctY29uZmlnIG5vZGVqcyBweXRob24zLWh0bWw1bGliCisgcXQ2 LWRlY2xhcmF0aXZlLWRldmVsIHByb3RvYnVmIGdwZXJmIGZsZXggbnNzLWRldmVsIGxpYndlYnAt ZGV2ZWwKKyBpY3UtZGV2ZWwgbGliZXZlbnQtZGV2ZWwiCittYWtlZGVwZW5kcz0icXQ2LWJhc2Ut ZGV2ZWwgcXQ2LWRlY2xhcmF0aXZlLWRldmVsIHB1bHNlYXVkaW8tZGV2ZWwKKyBxdDYtdG9vbHMt ZGV2ZWwgcXQ2LXdlYnNvY2tldHMtZGV2ZWwgbGliZmxhYy1kZXZlbAorIGFsc2EtbGliLWRldmVs IGxpYnZweC1kZXZlbCBwY2l1dGlscy1kZXZlbCBvcHVzLWRldmVsIGxpYnhzbHQtZGV2ZWwKKyBs aWJ4bWwyLWRldmVsIGZyZWV0eXBlLWRldmVsIGxjbXMyLWRldmVsIGxpYndlYnAtZGV2ZWwgaWN1 LWRldmVsCisgcmUyLWRldmVsIHpsaWItZGV2ZWwgbGlicG5nLWRldmVsIG1pbml6aXAtZGV2ZWwg aGFyZmJ1enotZGV2ZWwKKyBuc3MtZGV2ZWwgbGliWGN1cnNvci1kZXZlbCBsaWJYY29tcG9zaXRl LWRldmVsIGxpYlhTY3JuU2F2ZXItZGV2ZWwKKyBwcm90b2J1Zi1kZXZlbCBmZm1wZWctZGV2ZWwg c25hcHB5LWRldmVsIGxpYmV2ZW50LWRldmVsIHBpcGV3aXJlLWRldmVsCisgbGlieGtiZmlsZS1k ZXZlbCBxdDYtbG9jYXRpb24tZGV2ZWwgcXQ2LXdlYmNoYW5uZWwtZGV2ZWwgbGlieHNobWZlbmNl LWRldmVsIgorIyBOb3Qgd29ya2luZyBwcm9wZXJseSB3aXRoIEhUVFBTIHdpdGhvdXQgdGhvc2Ug cGFja2FnZXMKKyMgTm90IHN0cmljdCBkZXBlbmRlbmNpZXMsIHRob3VnaAorZGVwZW5kcz0icXQ2 LXBsdWdpbi10bHMtb3BlbnNzbCBxdDYtcGx1Z2luLXRscy1xY2VydG9ubHkiCitzaG9ydF9kZXNj PSJDcm9zcy1wbGF0Zm9ybSBhcHBsaWNhdGlvbiBhbmQgVUkgZnJhbWV3b3JrIC0gV2ViZW5naW5l IgorbWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKK2xpY2Vuc2U9IkdQTC0z LjAtb25seSwgR1BMLTIuMC1vbmx5LCBMR1BMLTMuMC1vbmx5IEJTRC0zLUNsYXVzZSIKK2hvbWVw YWdlPSJodHRwczovL3d3dy5xdC5pbyIKK2Rpc3RmaWxlcz0iaHR0cHM6Ly9kb3dubG9hZC5xdC5p by9vZmZpY2lhbF9yZWxlYXNlcy9xdC8ke3ZlcnNpb24lLip9LyR7dmVyc2lvbn0vc3VibW9kdWxl cy9xdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259LnRhci54eiIKK2NoZWNrc3Vt PWFkN2EzM2IyMWE5NTZkZWRhMzdjNTg3ZDUwZjgyMWNhMzgxNjQwM2FlMzFiYTliNWQ1OWQwMTU2 MWFkNjZlNDcKKworaWYgWyAteiAiJENST1NTX0JVSUxEIiBdO3RoZW4KKwljb25maWd1cmVfYXJn cys9IiAtRFFUX0JVSUxEX1RPT0xTX1dIRU5fQ1JPU1NDT01QSUxJTkc9VFJVRSIKKwljb25maWd1 cmVfYXJncys9IiAtRENNQUtFX1RPT0xDSEFJTl9GSUxFPS91c3IvbGliL2NtYWtlL1F0Ni9xdC50 b29sY2hhaW4uY21ha2UiCitmaQorCitpZiBbICIkWEJQU19MSUJDIiA9ICJtdXNsIiBdOyB0aGVu CisJaG9zdG1ha2VkZXBlbmRzKz0iIG11c2wtbGVnYWN5LWNvbXBhdCIKK2ZpCisKK2lmIFsgIiRY QlBTX1RBUkdFVF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCisJbWFrZWRlcGVuZHMrPSIgbXVzbC1s ZWdhY3ktY29tcGF0IgorZmkKKworaWYgWyAhICIkWEJQU19XT1JEU0laRSIgPSAiJFhCUFNfVEFS R0VUX1dPUkRTSVpFIiBdOyB0aGVuCisJYnJva2VuPSJ3ZWJlbmdpbmUgY2FuIGJlIGJ1aWx0IG9u bHkgaWYgd29yZCBzaXplIG1hdGNoZXMiCitmaQorCitpZiBbICIkWEJQU19XT1JEU0laRSIgLWVx IDMyIF07IHRoZW4KKwlub2RlYnVnPXllcworCUxERkxBR1M9Ii1XbCwtLW5vLWtlZXAtbWVtb3J5 IgorZmkKKworaWYgWyAiJFhCUFNfVEFSR0VUX0VORElBTiIgIT0gImxlIiBdOyB0aGVuCisJYnJv a2VuPSJ3ZWJlbmdpbmUgb25seSBzdXBwb3J0cyBsaXR0bGUgZW5kaWFuIgorZmkKKworYnVpbGRf b3B0aW9ucz0ic25kaW8gZXhhbXBsZXMiCitidWlsZF9vcHRpb25zX2RlZmF1bHQ9IiIKK2Rlc2Nf b3B0aW9uX2V4YW1wbGVzPSJCdWlsZCBleGFtcGxlcyIKK2Rlc2Nfb3B0aW9uX3NuZGlvPSJFbmFi bGUgc3VwcG9ydCBmb3Igc25kaW8iCisKK3N1YnBhY2thZ2VzPSJxdDYtd2ViZW5naW5lLWRldmVs IgorCitpZiBbICIkYnVpbGRfb3B0aW9uX2V4YW1wbGVzIiBdOyB0aGVuCisJc3VicGFja2FnZXMr PSIgcXQ2LXdlYmVuZ2luZS1leGFtcGxlcyIKK2ZpCisKK19ib290c3RyYXBfZ24oKSB7CisJIyBC b290c3RyYXAgZ24gKGdlbmVyYXRlIG5pbmphKQorCWVjaG8gIkJvb3RzdHJhcHBpbmcgJ2duJyIK KwljZCAke3dya3NyY30vc3JjLzNyZHBhcnR5L2duCisJQ0ZMQUdTPSIkQ0ZMQUdTX2hvc3QiIENY WEZMQUdTPSIkQ1hYRkxBR1NfaG9zdCIgTERGTEFHUz0iJExERkxBR1NfaG9zdCIgXAorCVBLR0NP TkZJRz0vdXNyL2Jpbi9wa2djb25maWcgUEtHX0NPTkZJR19QQVRIPSIvdXNyL2xpYi9wa2djb25m aWc6L3Vzci9zaGFyZS9wa2djb25maWciIFwKKwkJcHl0aG9uMyBidWlsZC9nZW4ucHkgLS1uby1s YXN0LWNvbW1pdC1wb3NpdGlvbiAtLW91dC1wYXRoIFwKKwkJCSR7d3Jrc3JjfS9zcmMvM3JkcGFy dHkvZ24vb3V0L1JlbGVhc2UgLS1jYyAiJHtDQ19ob3N0Oi0kQ0N9IiBcCisJCQktLWN4eCAiJHtD WFhfaG9zdDotJENYWH0iIC0tbGQgIiR7Q1hYX2hvc3Q6LSRDWFh9IiAtLWFyICIke0FSX2hvc3Q6 LSRBUn0iIFwKKwkJCS0tcXQtdmVyc2lvbiAiJHt2ZXJzaW9ufS5xdHdlYmVuZ2luZS5xdC5pbyIK KwluaW5qYSAtQyBvdXQvUmVsZWFzZSBnbgorCWNkICR7d3Jrc3JjfQorfQorCitfdW5idW5kbGVf bGlicygpIHsKKwljZCAke3dya3NyY30vc3JjLzNyZHBhcnR5L2Nocm9taXVtCisJZWNobyBEcm9w cGluZyBidW5kbGVkIGxpYnMgZnJvbSBjaHJvbWl1bQorCSMgVXNlIHN5c3RlbS1wcm92aWRlZCBs aWJyYXJpZXMuCisJIyBUT0RPOiB1c2Vfc3lzdGVtX2h1bnNwZWxsICh1cHN0cmVhbSBjaGFuZ2Vz IG5lZWRlZCkuCisJIyBUT0RPOiB1c2Vfc3lzdGVtX2xpYnNydHAuCisJIyBUT0RPOiB1c2Vfc3lz dGVtX2xpYnVzYiAoaHR0cDovL2NyYnVnLmNvbS8yNjYxNDkpLgorCSMgVE9ETzogdXNlX3N5c3Rl bV9zc2wgKGh0dHA6Ly9jcmJ1Zy5jb20vNTgwODcpLgorCSMgVE9ETzogdXNlX3N5c3RlbV9zcWxp dGUgKGh0dHA6Ly9jcmJ1Zy5jb20vMjIyMDgpLgorCSMgVE9ETzogdXNlX3N5c3RlbV9pY3UgKHNl Z2ZhdWx0cykKKwkjIHVzZV9zeXN0ZW1fcHJvdG9idWYKKwkjIHVzZV9zeXN0ZW1fdjg9MQorCSMg dXNlX3N5c3RlbV96bGliPTEKKwkjIGJ6aXAyIGpzb25jcHAgbWluaXppcCB4ZGdfdXRpbHMgc3Bl ZXgKKwlzeXN0ZW09IgorCQlmZm1wZWcKKwkJZmxhYworCQlmb250Y29uZmlnCisJCWZyZWV0eXBl CisJCWhhcmZidXp6LW5nCisJCWljdQorCQlsaWJkcm0KKwkJbGliZXZlbnQKKwkJbGlianBlZwor CQlsaWJwbmcKKwkJbGlid2VicAorCQlsaWJ4bWwKKwkJbGlieHNsdAorCQlvcHVzCisJCXJlMgor CQlzbmFwcHkKKwkiCisJYnVpbGQvbGludXgvdW5idW5kbGUvcmVwbGFjZV9nbl9maWxlcy5weSAt LXN5c3RlbS1saWJyYXJpZXMgJHtzeXN0ZW19Cit9CisKKyMgUHJvdmlkZSBhIHdyYXBwZXIgdG8g cnVuIC4veGJwcy1zcmMgLWogMSBidWlsZCBsYXRlcgorX3dyYXBfbmluamEoKSB7CisJY2F0IDw8 LSdfRU9GJyA+IiRYQlBTX1dSQVBQRVJESVIiL25pbmphCisJIyEvYmluL3NoCisKKwlleGVjIC91 c3IvYmluL25pbmphICROSU5KQUZMQUdTICIkQCIKKwlfRU9GCisJY2htb2QgK3ggIiRYQlBTX1dS QVBQRVJESVIiL25pbmphCit9CisKK3ByZV9jb25maWd1cmUoKSB7CisJX2Jvb3RzdHJhcF9nbgor CSMgX3VuYnVuZGxlX2xpYnMKKwlfd3JhcF9uaW5qYQorCWV4cG9ydCBQQVRIPSIkUEFUSDoke3dy a3NyY30vc3JjLzNyZHBhcnR5L2duL291dC9SZWxlYXNlIgorfQorCitwcmVfYnVpbGQoKSB7CisJ ZXhwb3J0IFBBVEg9IiRQQVRIOiR7d3Jrc3JjfS9zcmMvM3JkcGFydHkvZ24vb3V0L1JlbGVhc2Ui CisJZXhwb3J0IE5JTkpBRkxBR1M9IiRtYWtlam9icyIKKworfQorCitwcmVfaW5zdGFsbCgpIHsK KwlleHBvcnQgUEFUSD0iJFBBVEg6JHt3cmtzcmN9L3NyYy8zcmRwYXJ0eS9nbi9vdXQvUmVsZWFz ZSIKK30KKworcG9zdF9pbnN0YWxsKCkgeworCWxvY2FsIF9maWxlCisJZmluZCAiJHtERVNURElS fSIvdXNyL2xpYi9xdDYvZXhhbXBsZXMgXAorCQktcGF0aCAnKi9saWIvcXQ2LyoqL2xpYi9xdDYv KicgLXR5cGUgZiB8CisJd2hpbGUgcmVhZCBfZmlsZTsgZG8KKwkJbXYgIiRfZmlsZSIgIiR7X2Zp bGUlL2xpYi9xdDYvKn0iCisJZG9uZQorfQorCitxdDYtd2ViZW5naW5lLWRldmVsX3BhY2thZ2Uo KSB7CisJZGVwZW5kcz0iJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IHF0Ni13 ZWJjaGFubmVsLWRldmVsPj0ke3ZlcnNpb259XzEKKwkgcXQ2LWRlY2xhcmF0aXZlLWRldmVsPj0k e3ZlcnNpb259XzEgcXQ2LWxvY2F0aW9uLWRldmVsPj0ke3ZlcnNpb259XzEiCisJc2hvcnRfZGVz Yys9IiAtIGRldmVsb3BtZW50IGZpbGVzIgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSB1c3Iv aW5jbHVkZQorCQl2bW92ZSB1c3IvbGliL2NtYWtlCisJCXZtb3ZlIHVzci9saWIvcGtnY29uZmln CisJCXZtb3ZlIHVzci9saWIvcXQ2L21rc3BlY3MKKwkJdm1vdmUgInVzci9saWIvKi5zbyIKKwkJ dm1vdmUgInVzci9saWIvKi5wcmwiCisJCXZtb3ZlIHVzci9zaGFyZS9xdDYvbW9kdWxlcworCX0K K30KKworcXQ2LXdlYmVuZ2luZS1leGFtcGxlc19wYWNrYWdlKCkgeworCXNob3J0X2Rlc2MrPSIg LSBzYW1wbGUgYnJvd3NlcnMiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlIHVzci9saWIvcXQ2 L2V4YW1wbGVzCisJfQorfQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3VwZGF0 ZSBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS91cGRhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAwLi44NDQ1NTI0NjUyMjIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dz L3F0Ni13ZWJlbmdpbmUvdXBkYXRlCkBAIC0wLDAgKzEgQEAKK3BrZ25hbWU9IiR7cGtnbmFtZS82 LS99LWV2ZXJ5d2hlcmUtc3JjIgo= --===============1738762667297355413==--