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 autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 22209 invoked from network); 27 Aug 2020 17:38:18 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 27 Aug 2020 17:38:18 -0000 Content-Type: multipart/mixed; boundary="===============3350138545555300974==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_New_package=3A_electron9-9=2E2=2E1?= To: ml@inbox.vuxu.org From: Johnnynator Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Thu, 27 Aug 2020 19:38:13 +0200 List-Id: Message-ID: <20200827173813.PLU_3GBY3kFgPDZr8YmNcukg5FEs7ITxm-vo-cmZDX4@z> GitHub notification mails are now in MIME to allow UTF8. --===============3350138545555300974== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgSm9obm55bmF0b3IgYWdhaW5zdCBt YXN0ZXIgb24gdGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29t L0pvaG5ueW5hdG9yL3ZvaWQtcGFja2FnZXMgZWxlY3Ryb245Cmh0dHBzOi8vZ2l0aHViLmNvbS92 b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8yNDQzNQoKTmV3IHBhY2thZ2U6IGVsZWN0cm9u OS05LjIuMQoKCkEgcGF0Y2ggZmlsZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4 L3ZvaWQtcGFja2FnZXMvcHVsbC8yNDQzNS5wYXRjaCBpcyBhdHRhY2hlZA== --===============3350138545555300974== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-electron9-24435.patch" RnJvbSA2Njc1M2NlZjk5ODhkNmFiNjlkMGRmZDMwNjQ5ZDI4ZmYxYjRlMzMzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFN1biwg MTAgTWF5IDIwMjAgMTU6MDU6MTUgKzAyMDAKU3ViamVjdDogW1BBVENIIDEvMl0gTmV3IHBhY2th Z2U6IGVsZWN0cm9uOS05LjIuMQoKW2NpIHNraXBdCi0tLQogLi4uL211c2wtcGF0Y2hlcy9jaHJv bWl1bS1tdXNsLWNyYXNocGFkLnBhdGNoIHwgIDIzICsKIC4uLm9taXVtLW11c2wtZGVmYXVsdC1w dGhyZWFkLXN0YWNrc2l6ZS5wYXRjaCB8ICAzMSArKwogLi4uL211c2wtcGF0Y2hlcy9jaHJvbWl1 bS1tdXNsLXNhbmRib3gucGF0Y2ggIHwgMTc2ICsrKysrKysKIC4uLmNocm9taXVtLW11c2xfY2Fu b25pY2FsaXplX2ZpbGVfbmFtZS5wYXRjaCB8ICAxMyArCiAuLi4vbXVzbC1wYXRjaGVzL2Nocm9t aXVtLW11c2xfY2RlZnMucGF0Y2ggICAgfCAgNDUgKysKIC4uLm9taXVtLW11c2xfZGVmaW5lX3Rl bXBfZmFpbHVyZV9yZXRyeS5wYXRjaCB8ICAxOCArCiAuLi4vbXVzbC1wYXRjaGVzL2Nocm9taXVt LW11c2xfZG5zLnBhdGNoICAgICAgfCAgNjEgKysrCiAuLi4vbXVzbC1wYXRjaGVzL2Nocm9taXVt LW11c2xfZXhlaW5mby5wYXRjaCAgfCAgOTYgKysrKwogLi4uL2Nocm9taXVtLW11c2xfZnBzdGF0 ZV90LnBhdGNoICAgICAgICAgICAgIHwgIDQ4ICsrCiAuLi4vY2hyb21pdW0tbXVzbF9nZXRjb250 ZXh0LnBhdGNoICAgICAgICAgICAgfCAgMjUgKwogLi4uL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1t dXNsX21hbGxpbmZvLnBhdGNoIHwgIDYxICsrKwogLi4uL2Nocm9taXVtLW11c2xfcHJlYWRfcHdy aXRlNjQucGF0Y2ggICAgICAgIHwgIDE4ICsKIC4uLi9jaHJvbWl1bS1tdXNsX3B1c2hfYmFjay5w YXRjaCAgICAgICAgICAgICB8ICAxMyArCiAuLi4vY2hyb21pdW0tbXVzbF9zdGFja19zaXplLnBh dGNoICAgICAgICAgICAgfCAgNDEgKysKIC4uLi9jaHJvbWl1bS1tdXNsX3N0YWNrX3RyYWNlLnBh dGNoICAgICAgICAgICB8ICA0NCArKwogLi4uL2Nocm9taXVtLW11c2xfdGNwX2xpc3Rlbi5wYXRj aCAgICAgICAgICAgIHwgIDE0ICsKIC4uLi9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF93b3Jk c2l6ZS5wYXRjaCB8ICAyNCArCiAuLi4vZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS04My1nY2MtMTAu cGF0Y2ggICAgfCAgNjQgKysrCiAuLi5yaXRobS1oZWFkZXItaW4tY3J4X2luc3RhbGxfZXJyb3Iu Y2MucGF0Y2ggfCAgMjkgKysKIC4uLnN0cnVjdGlvbi1vZi1TZXJ2aWNlV29ya2VyT2JqZWN0SG9z dC5wYXRjaCB8IDEzOCArKysrKysKIC4uLmNocm9taXVtLWNocm9taXVtX2F0a19vcHRpb25hbC5w YXRjaC5wYXRjaCB8ICAxNSArCiAuLi5jaHJvbWl1bS1jbGVhbi11cC1hLWNhbGwtdG8tc2V0X3V0 ZjgucGF0Y2ggfCAgMzQgKysKIC4uLi9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWZmbXBlZy00LjMu cGF0Y2ggICB8ICAyMSArCiAuLi5vbWl1bS1maXgtdGVtcGxhdGUtc3BlY2lhbGl6YXRpb24tMDEu cGF0Y2ggfCAgNjQgKysrCiAuLi5jLUNyb3NzVmFyaWFudE1vam9Bc3NvY2lhdGVkUmVjZWl2ZXIu cGF0Y2ggfCAgNTYgKysrCiAuLi4vY2hyb21pdW0tZ2NjLWFhcmNoNjQtemxpYi1jcmMtMDEucGF0 Y2ggICAgfCAxMzEgKysrKysrCiAuLi4vY2hyb21pdW0tZ2NjLWFhcmNoNjQtemxpYi1jcmMtMDIu cGF0Y2ggICAgfCAgMzUgKysKIC4uLi1tb3ZlLWFzc2lnbmVtZW50LW9wZXJhdG9ycy1ub2V4Y2Vw dC5wYXRjaCB8ICA2NiArKysKIC4uLi9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWdjYy1zaGFyZWQu cGF0Y2ggICB8ICAyMCArCiAuLi4vcGF0Y2hlcy9jaHJvbWl1bS1nY2Mtd2VidWktdGVtcGxhdGUu cGF0Y2ggfCAgNjcgKysrCiAuLi5lYWRlci10by1nZXQtdGhlLWRlZmluaXRpb24tb2Ytc3RkLXUu cGF0Y2ggfCAgMzIgKysKIC4uLi1udW1lcmljX2xpbWl0cy1pcy1kZWZpbmVkLWluLWxpbWl0cy5w YXRjaCB8ICAyOSArKwogLi4uL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tbGliY19tYWxsb2MucGF0 Y2ggIHwgIDI2ICsrCiAuLi5tcGxldGUtdHlwZS1pbi1BWFRyZWUtZm9yLU5vZGVTZXRTaXoucGF0 Y2ggfCAgNjIgKysrCiAuLi5saW5rLWN1c3RvbS1pdGVyYXRvcnMtU1RMLWNvbXBhdGlibGUucGF0 Y2ggfCAgOTUgKysrKwogLi4uL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tc2tpYS1oYXJtb255LnBh dGNoIHwgIDE0ICsKIC4uLi9wYXRjaGVzL2Nocm9taXVtLXRvb2xjaGFpbi1ob3N0LnBhdGNoICAg ICB8ICAxMSArCiAuLi5sLWluLVNEUi1IRFItRGlzcGxheUNvbG9yU3BhY2VzLUNyT1MucGF0Y2gg fCA0MzYgKysrKysrKysrKysrKysrKysrCiAuLi5ybW9udC1BRkRPLXByb2ZpbGUtZnJvbS04My00 MTAzLjk3LTEucGF0Y2ggfCAgNDEgKysKIC4uLmx2ZXJtb250LUFGRE8tcHJvZmlsZS1mcm9tLTgz LTQxMDMuOS5wYXRjaCB8ICA0MSArKwogLi4ub2Fkd2VsbC1BRkRPLXByb2ZpbGUtZnJvbS04My00 MTAzLjk3LnBhdGNoIHwgIDQxICsrCiAuLi5uY3JlbWVudGluZy1WRVJTSU9OLXRvLTgzLjAuNDEw My4xMjAucGF0Y2ggfCAgMjkgKysKIC4uLlBXLWJvb2trZWVwaW5nLW91dC1vZi1mb3JrZWQtcHJv Y2Vzcy5wYXRjaCB8IDE1MCArKysrKysKIC4uLm9ydC1HQ1BXLWxvZ2luLXRvLXBlcm1pdHRlZC1h Y2NvdW50cy5wYXRjaCB8IDE5NyArKysrKysrKwogLi4uZGxlLWxzYV9hY2NvdW50X3JpZ2h0cy1z aXplLXByb3Blcmx5LnBhdGNoIHwgIDU1ICsrKwogLi4ubmNyZW1lbnRpbmctVkVSU0lPTi10by04 My4wLjQxMDMuMTIxLnBhdGNoIHwgIDI5ICsrCiAuLi5jZU1hbmFnZUFjY291bnRCcm93c2VyVGVz dC5DbGVhck1hbmEucGF0Y2ggfCAgNDMgKysKIC4uLm5jcmVtZW50aW5nLVZFUlNJT04tdG8tODMu MC40MTAzLjEyMi5wYXRjaCB8ICAyOSArKwogLi4ubi10by1iZS1yZW1vdmVkLWdldEFsbEZpZWxk UG9zaXRpb25zLnBhdGNoIHwgMTcyICsrKysrKysKIC4uLmEtc2NyaXB0LXRvLWxpc3QtcGF0Y2gt dGFyZ2V0cy5wYXRjaC5wYXRjaCB8ICA0MiArKwogLi4uL3BhdGNoZXMvZWxlY3Ryb24tQnVpbGQt Zml4ZXMucGF0Y2gucGF0Y2ggIHwgIDQ3ICsrCiAuLi5lY3Ryb24tZG9udC1hc3N1bWUtcHl0aG9u LWlzLXB5dGhvbjIucGF0Y2ggfCAgMTcgKwogLi4uZWxlY3Ryb24tZXhsdWNlLWNvbnRlbnQtdGVz dC1wYXRjaGVzLnBhdGNoIHwgIDEwICsKIC4uLi9zbmRpby1maWxlcy9hdWRpb19tYW5hZ2VyX29w ZW5ic2QuY2MgICAgICB8IDE0OCArKysrKysKIC4uLi9maWxlcy9zbmRpby1maWxlcy9hdWRpb19t YW5hZ2VyX29wZW5ic2QuaCB8ICA2NSArKysKIC4uLi9maWxlcy9zbmRpby1maWxlcy9zbmRpb19p bnB1dC5jYyAgICAgICAgICB8IDIwMSArKysrKysrKwogLi4uL2VsZWN0cm9uOS9maWxlcy9zbmRp by1maWxlcy9zbmRpb19pbnB1dC5oIHwgIDkxICsrKysKIC4uLi9maWxlcy9zbmRpby1maWxlcy9z bmRpb19vdXRwdXQuY2MgICAgICAgICB8IDE4MyArKysrKysrKwogLi4uL2ZpbGVzL3NuZGlvLWZp bGVzL3NuZGlvX291dHB1dC5oICAgICAgICAgIHwgIDg2ICsrKysKIC4uLmFfYXVkaW9fbGludXhf YXVkaW9fbWFuYWdlcl9saW51eC5jYy5wYXRjaCB8ICA0MyArKwogLi4uc3JjXzNyZHBhcnR5X2No cm9taXVtX21lZGlhX0JVSUxELmduLnBhdGNoIHwgIDEyICsKIC4uLmRwYXJ0eV9jaHJvbWl1bV9t ZWRpYV9hdWRpb19CVUlMRC5nbi5wYXRjaCB8ICAyMyArCiAuLi50eV9jaHJvbWl1bV9tZWRpYV9t ZWRpYV9fb3B0aW9ucy5nbmkucGF0Y2ggfCAgMTIgKwogc3JjcGtncy9lbGVjdHJvbjkvdGVtcGxh dGUgICAgICAgICAgICAgICAgICAgIHwgMzU0ICsrKysrKysrKysrKysrCiBzcmNwa2dzL2VsZWN0 cm9uOS91cGRhdGUgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKwogNjUgZmlsZXMgY2hhbmdl ZCwgNDM1OSBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJv bjkvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2wtY3Jhc2hwYWQucGF0Y2gKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21p dW0tbXVzbC1kZWZhdWx0LXB0aHJlYWQtc3RhY2tzaXplLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2wtc2Fu ZGJveC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL211 c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2Nhbm9uaWNhbGl6ZV9maWxlX25hbWUucGF0Y2gKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9tdXNsLXBhdGNoZXMvY2hy b21pdW0tbXVzbF9jZGVmcy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ry b245L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2RlZmluZV90ZW1wX2ZhaWx1cmVf cmV0cnkucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9t dXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9kbnMucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL2VsZWN0cm9uOS9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9leGVpbmZv LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvbXVzbC1w YXRjaGVzL2Nocm9taXVtLW11c2xfZnBzdGF0ZV90LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfZ2V0Y29u dGV4dC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL211 c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX21hbGxpbmZvLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfcHJl YWRfcHdyaXRlNjQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uOS9m aWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9wdXNoX2JhY2sucGF0Y2gKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0t bXVzbF9zdGFja19zaXplLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJv bjkvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfc3RhY2tfdHJhY2UucGF0Y2gKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9tdXNsLXBhdGNoZXMvY2hy b21pdW0tbXVzbF90Y3BfbGlzdGVuLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9l bGVjdHJvbjkvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfd29yZHNpemUucGF0Y2gK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9t aXVtLTgzLWdjYy0xMC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb245 L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tYWRkLW1pc3NpbmctYWxnb3JpdGhtLWhlYWRlci1pbi1j cnhfaW5zdGFsbF9lcnJvci5jYy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxl Y3Ryb245L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tYXZvaWQtZG91YmxlLWRlc3RydWN0aW9uLW9m LVNlcnZpY2VXb3JrZXJPYmplY3RIb3N0LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1jaHJvbWl1bV9hdGtfb3B0aW9uYWwu cGF0Y2gucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9w YXRjaGVzL2Nocm9taXVtLWNsZWFuLXVwLWEtY2FsbC10by1zZXRfdXRmOC5wYXRjaAogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tZmZt cGVnLTQuMy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb245L2ZpbGVz L3BhdGNoZXMvY2hyb21pdW0tZml4LXRlbXBsYXRlLXNwZWNpYWxpemF0aW9uLTAxLnBhdGNoCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1 bS1nY2MtQ3Jvc3NWYXJpYW50TW9qb0Fzc29jaWF0ZWRSZWNlaXZlci5wYXRjaAogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tZ2NjLWFh cmNoNjQtemxpYi1jcmMtMDEucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0 cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWdjYy1hYXJjaDY0LXpsaWItY3JjLTAyLnBhdGNo CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9jaHJv bWl1bS1nY2MtbW92ZS1hc3NpZ25lbWVudC1vcGVyYXRvcnMtbm9leGNlcHQucGF0Y2gKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWdj Yy1zaGFyZWQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uOS9maWxl cy9wYXRjaGVzL2Nocm9taXVtLWdjYy13ZWJ1aS10ZW1wbGF0ZS5wYXRjaAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0taW5jbHVkZS1t ZW1vcnktaGVhZGVyLXRvLWdldC10aGUtZGVmaW5pdGlvbi1vZi1zdGQtdS5wYXRjaAogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0taXd5 dS1zdGQtbnVtZXJpY19saW1pdHMtaXMtZGVmaW5lZC1pbi1saW1pdHMucGF0Y2gKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWxpYmNf bWFsbG9jLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMv cGF0Y2hlcy9jaHJvbWl1bS1saWJzdGRjLWZpeC1pbmNvbXBsZXRlLXR5cGUtaW4tQVhUcmVlLWZv ci1Ob2RlU2V0U2l6LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjkv ZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1tYWtlLXNvbWUtb2YtYmxpbmstY3VzdG9tLWl0ZXJhdG9y cy1TVEwtY29tcGF0aWJsZS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ry b245L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tc2tpYS1oYXJtb255LnBhdGNoCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS10b29sY2hh aW4taG9zdC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb245L2ZpbGVz L3BhdGNoZXMvY2hyb21pdW0tdXBzdHJlYW0tMDAwMS1SZXZlcnQtdWktZmlsbC1pbi1TRFItSERS LURpc3BsYXlDb2xvclNwYWNlcy1Dck9TLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS11cHN0cmVhbS0wMDAyLVJvbGwtQ2hy b21lT1MtQWlybW9udC1BRkRPLXByb2ZpbGUtZnJvbS04My00MTAzLjk3LTEucGF0Y2gKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXVw c3RyZWFtLTAwMDMtUm9sbC1DaHJvbWVPUy1TaWx2ZXJtb250LUFGRE8tcHJvZmlsZS1mcm9tLTgz LTQxMDMuOS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb245L2ZpbGVz L3BhdGNoZXMvY2hyb21pdW0tdXBzdHJlYW0tMDAwNC1Sb2xsLUNocm9tZU9TLUJyb2Fkd2VsbC1B RkRPLXByb2ZpbGUtZnJvbS04My00MTAzLjk3LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS11cHN0cmVhbS0wMDA1LUluY3Jl bWVudGluZy1WRVJTSU9OLXRvLTgzLjAuNDEwMy4xMjAucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXVwc3RyZWFtLTAwMDYt TW92ZS1HQ1BXLWJvb2trZWVwaW5nLW91dC1vZi1mb3JrZWQtcHJvY2Vzcy5wYXRjaAogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tdXBz dHJlYW0tMDAwNy1TdXBwb3J0LUdDUFctbG9naW4tdG8tcGVybWl0dGVkLWFjY291bnRzLnBhdGNo CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9jaHJv bWl1bS11cHN0cmVhbS0wMDA4LUhhbmRsZS1sc2FfYWNjb3VudF9yaWdodHMtc2l6ZS1wcm9wZXJs eS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNo ZXMvY2hyb21pdW0tdXBzdHJlYW0tMDAwOS1JbmNyZW1lbnRpbmctVkVSU0lPTi10by04My4wLjQx MDMuMTIxLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMv cGF0Y2hlcy9jaHJvbWl1bS11cHN0cmVhbS0wMDEwLURpc2FibGUtZmxha3ktRGljZU1hbmFnZUFj Y291bnRCcm93c2VyVGVzdC5DbGVhck1hbmEucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXVwc3RyZWFtLTAwMTEtSW5jcmVt ZW50aW5nLVZFUlNJT04tdG8tODMuMC40MTAzLjEyMi5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tdjgtcmVtb3ZlLXNvb24t dG8tYmUtcmVtb3ZlZC1nZXRBbGxGaWVsZFBvc2l0aW9ucy5wYXRjaAogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMvZWxlY3Ryb24tQWRkLWEtc2NyaXB0 LXRvLWxpc3QtcGF0Y2gtdGFyZ2V0cy5wYXRjaC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMvZWxlY3Ryb24tQnVpbGQtZml4ZXMucGF0Y2gu cGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVz L2VsZWN0cm9uLWRvbnQtYXNzdW1lLXB5dGhvbi1pcy1weXRob24yLnBhdGNoCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9lbGVjdHJvbi1leGx1Y2Ut Y29udGVudC10ZXN0LXBhdGNoZXMucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Vs ZWN0cm9uOS9maWxlcy9zbmRpby1maWxlcy9hdWRpb19tYW5hZ2VyX29wZW5ic2QuY2MKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9zbmRpby1maWxlcy9hdWRpb19t YW5hZ2VyX29wZW5ic2QuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb245L2Zp bGVzL3NuZGlvLWZpbGVzL3NuZGlvX2lucHV0LmNjCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9lbGVjdHJvbjkvZmlsZXMvc25kaW8tZmlsZXMvc25kaW9faW5wdXQuaAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3NuZGlvLWZpbGVzL3NuZGlvX291dHB1dC5j YwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3NuZGlvLWZpbGVz L3NuZGlvX291dHB1dC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjkvZmls ZXMvc25kaW8tcGF0Y2hlcy9tZWRpYV9hdWRpb19saW51eF9hdWRpb19tYW5hZ2VyX2xpbnV4LmNj LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvc25kaW8t cGF0Y2hlcy9zcmNfM3JkcGFydHlfY2hyb21pdW1fbWVkaWFfQlVJTEQuZ24ucGF0Y2gKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9zbmRpby1wYXRjaGVzL3NyY18z cmRwYXJ0eV9jaHJvbWl1bV9tZWRpYV9hdWRpb19CVUlMRC5nbi5wYXRjaAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3NuZGlvLXBhdGNoZXMvc3JjXzNyZHBhcnR5 X2Nocm9taXVtX21lZGlhX21lZGlhX19vcHRpb25zLmduaS5wYXRjaAogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvZWxlY3Ryb245L3RlbXBsYXRlCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9lbGVjdHJvbjkvdXBkYXRlCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMv bXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2wtY3Jhc2hwYWQucGF0Y2ggYi9zcmNwa2dzL2VsZWN0 cm9uOS9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbC1jcmFzaHBhZC5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNzBjZmZhMzAwMmIKLS0tIC9kZXYv bnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0t bXVzbC1jcmFzaHBhZC5wYXRjaApAQCAtMCwwICsxLDIzIEBACistLS0gYS90aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3B0cmFjZXIuY2MKKysrKyBiL3RoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvcHRyYWNlci5jYworQEAgLTI2LDYgKzI2LDcg QEAKKyAKKyAjaWYgZGVmaW5lZChBUkNIX0NQVV9YODZfRkFNSUxZKQorICNpbmNsdWRlIDxhc20v bGR0Lmg+CisrI2luY2x1ZGUgPGFzbS9wdHJhY2UtYWJpLmg+CisgI2VuZGlmCisgCisgbmFtZXNw YWNlIGNyYXNocGFkIHsKKworLS0tIGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvY29t cGF0L2xpbnV4L3N5cy9wdHJhY2UuaAorKysrIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvY29tcGF0L2xpbnV4L3N5cy9wdHJhY2UuaAorQEAgLTE3LDcgKzE3LDkgQEAKKyAKKyAjaW5j bHVkZV9uZXh0IDxzeXMvcHRyYWNlLmg+CisgCisrI2lmIGRlZmluZWQoX19HTElCQ19fKQorICNp bmNsdWRlIDxzeXMvY2RlZnMuaD4KKysjZW5kaWYKKyAKKyAvLyBodHRwczovL3NvdXJjZXdhcmUu b3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0yMjQzMworICNpZiAhZGVmaW5lZChQVFJBQ0Vf R0VUX1RIUkVBRF9BUkVBKSAmJiAhZGVmaW5lZChQVF9HRVRfVEhSRUFEX0FSRUEpICYmIFwKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1t dXNsLWRlZmF1bHQtcHRocmVhZC1zdGFja3NpemUucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uOS9m aWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbC1kZWZhdWx0LXB0aHJlYWQtc3RhY2tzaXpl LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kMGMxMzYxYjhl ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL211c2wtcGF0Y2hl cy9jaHJvbWl1bS1tdXNsLWRlZmF1bHQtcHRocmVhZC1zdGFja3NpemUucGF0Y2gKQEAgLTAsMCAr MSwzMSBAQAorZGlmZiAtLWdpdCBhL2Jhc2UvdGhyZWFkaW5nL3BsYXRmb3JtX3RocmVhZF9saW51 eC5jYyBiL2Jhc2UvdGhyZWFkaW5nL3BsYXRmb3JtX3RocmVhZF9saW51eC5jYworaW5kZXggMDk1 YzQ5Yi4uNTA0NGJiOCAxMDA2NDQKKy0tLSBhL2Jhc2UvdGhyZWFkaW5nL3BsYXRmb3JtX3RocmVh ZF9saW51eC5jYworKysrIGIvYmFzZS90aHJlYWRpbmcvcGxhdGZvcm1fdGhyZWFkX2xpbnV4LmNj CitAQCAtMTg2LDcgKzE4Niw3IEBAIHZvaWQgVGVybWluYXRlT25UaHJlYWQoKSB7fQorIAorIHNp emVfdCBHZXREZWZhdWx0VGhyZWFkU3RhY2tTaXplKGNvbnN0IHB0aHJlYWRfYXR0cl90JiBhdHRy aWJ1dGVzKSB7CisgI2lmICFkZWZpbmVkKFRIUkVBRF9TQU5JVElaRVIpCistICByZXR1cm4gMDsK KysgIHJldHVybiAoMSA8PCAyMyk7CisgI2Vsc2UKKyAgIC8vIFRocmVhZFNhbml0aXplciBibG9h dHMgdGhlIHN0YWNrIGhlYXZpbHkuIEV2aWRlbmNlIGhhcyBiZWVuIHRoYXQgdGhlCisgICAvLyBk ZWZhdWx0IHN0YWNrIHNpemUgaXNuJ3QgZW5vdWdoIGZvciBzb21lIGJyb3dzZXIgdGVzdHMuCitk aWZmIC0tZ2l0IGEvY2hyb21lL2FwcC9zaHV0ZG93bl9zaWduYWxfaGFuZGxlcnNfcG9zaXguY2Mg Yi9jaHJvbWUvYXBwL3NodXRkb3duX3NpZ25hbF9oYW5kbGVyc19wb3NpeC5jYworaW5kZXggNjIx ZDQ0MS4uYmUyMTEwNiAxMDA2NDQKKy0tLSBhL2Nocm9tZS9hcHAvc2h1dGRvd25fc2lnbmFsX2hh bmRsZXJzX3Bvc2l4LmNjCisrKysgYi9jaHJvbWUvYXBwL3NodXRkb3duX3NpZ25hbF9oYW5kbGVy c19wb3NpeC5jYworQEAgLTE4NywxMSArMTg3LDExIEBAIHZvaWQgSW5zdGFsbFNodXRkb3duU2ln bmFsSGFuZGxlcnMoCisgICBnX3NodXRkb3duX3BpcGVfcmVhZF9mZCA9IHBpcGVmZFswXTsKKyAg IGdfc2h1dGRvd25fcGlwZV93cml0ZV9mZCA9IHBpcGVmZFsxXTsKKyAjaWYgIWRlZmluZWQoQURE UkVTU19TQU5JVElaRVIpCistICBjb25zdCBzaXplX3Qga1NodXRkb3duRGV0ZWN0b3JUaHJlYWRT dGFja1NpemUgPSBQVEhSRUFEX1NUQUNLX01JTiAqIDI7CisrICBjb25zdCBzaXplX3Qga1NodXRk b3duRGV0ZWN0b3JUaHJlYWRTdGFja1NpemUgPSBQVEhSRUFEX1NUQUNLX01JTiAqIDIgKjg7Cisg I2Vsc2UKKyAgIC8vIEFTYW4gaW5zdHJ1bWVudGF0aW9uIGJsb2F0cyB0aGUgc3RhY2sgZnJhbWVz LCBzbyB3ZSBuZWVkIHRvIGluY3JlYXNlIHRoZQorICAgLy8gc3RhY2sgc2l6ZSB0byBhdm9pZCBo aXR0aW5nIHRoZSBndWFyZCBwYWdlLgorLSAgY29uc3Qgc2l6ZV90IGtTaHV0ZG93bkRldGVjdG9y VGhyZWFkU3RhY2tTaXplID0gUFRIUkVBRF9TVEFDS19NSU4gKiA0OworKyAgY29uc3Qgc2l6ZV90 IGtTaHV0ZG93bkRldGVjdG9yVGhyZWFkU3RhY2tTaXplID0gUFRIUkVBRF9TVEFDS19NSU4gKiA0 ICo4OworICNlbmRpZgorICAgU2h1dGRvd25EZXRlY3RvciogZGV0ZWN0b3IgPSBuZXcgU2h1dGRv d25EZXRlY3RvcigKKyAgICAgICBnX3NodXRkb3duX3BpcGVfcmVhZF9mZCwgc3RkOjptb3ZlKHNo dXRkb3duX2NhbGxiYWNrKSwgdGFza19ydW5uZXIpOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVj dHJvbjkvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2wtc2FuZGJveC5wYXRjaCBiL3Ny Y3BrZ3MvZWxlY3Ryb245L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsLXNhbmRib3gu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmY0ODVmNmNjNzVh Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvbXVzbC1wYXRjaGVz L2Nocm9taXVtLW11c2wtc2FuZGJveC5wYXRjaApAQCAtMCwwICsxLDE3NiBAQAorZGlmZiAtLWdp dCBhL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3BhcmFtZXRlcnNf cmVzdHJpY3Rpb25zLmNjIGIvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2Nh bGxfcGFyYW1ldGVyc19yZXN0cmljdGlvbnMuY2MKK2luZGV4IDM0OGFiNmUuLjQ1NTBmOWUgMTAw NjQ0CistLS0gLi9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9wYXJh bWV0ZXJzX3Jlc3RyaWN0aW9ucy5jYworKysrIC4vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1o ZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVyc19yZXN0cmljdGlvbnMuY2MKK0BAIC0xMzksMjEgKzEz OSwxMSBAQCBuYW1lc3BhY2Ugc2FuZGJveCB7CisgLy8gcHJlc2VudCAoYXMgaW4gbmV3ZXIgdmVy c2lvbnMgb2YgcG9zaXhfc3Bhd24pLgorIFJlc3VsdEV4cHIgUmVzdHJpY3RDbG9uZVRvVGhyZWFk c0FuZEVQRVJNRm9yaygpIHsKKyAgIGNvbnN0IEFyZzx1bnNpZ25lZCBsb25nPiBmbGFncygwKTsK Ky0KKy0gIC8vIFRPRE8obWRlbXBza3kpOiBFeHRlbmQgRFNMIHRvIHN1cHBvcnQgKGZsYWdzICYg fm1hc2sxKSA9PSBtYXNrMi4KKy0gIGNvbnN0IHVpbnQ2NF90IGtBbmRyb2lkQ2xvbmVNYXNrID0g Q0xPTkVfVk0gfCBDTE9ORV9GUyB8IENMT05FX0ZJTEVTIHwKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgQ0xPTkVfU0lHSEFORCB8IENMT05FX1RIUkVBRCB8CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENMT05FX1NZU1ZTRU07CistICBjb25zdCB1 aW50NjRfdCBrT2Jzb2xldGVBbmRyb2lkQ2xvbmVNYXNrID0ga0FuZHJvaWRDbG9uZU1hc2sgfCBD TE9ORV9ERVRBQ0hFRDsKKy0KKy0gIGNvbnN0IHVpbnQ2NF90IGtHbGliY1B0aHJlYWRGbGFncyA9 CistICAgICAgQ0xPTkVfVk0gfCBDTE9ORV9GUyB8IENMT05FX0ZJTEVTIHwgQ0xPTkVfU0lHSEFO RCB8IENMT05FX1RIUkVBRCB8CistICAgICAgQ0xPTkVfU1lTVlNFTSB8IENMT05FX1NFVFRMUyB8 IENMT05FX1BBUkVOVF9TRVRUSUQgfCBDTE9ORV9DSElMRF9DTEVBUlRJRDsKKy0gIGNvbnN0IEJv b2xFeHByIGdsaWJjX3Rlc3QgPSBmbGFncyA9PSBrR2xpYmNQdGhyZWFkRmxhZ3M7CistCistICBj b25zdCBCb29sRXhwciBhbmRyb2lkX3Rlc3QgPQorLSAgICAgIEFueU9mKGZsYWdzID09IGtBbmRy b2lkQ2xvbmVNYXNrLCBmbGFncyA9PSBrT2Jzb2xldGVBbmRyb2lkQ2xvbmVNYXNrLAorLSAgICAg ICAgICAgIGZsYWdzID09IGtHbGliY1B0aHJlYWRGbGFncyk7CisrICBjb25zdCBpbnQgcmVxdWly ZWQgPSBDTE9ORV9WTSB8IENMT05FX0ZTIHwgQ0xPTkVfRklMRVMgfCBDTE9ORV9TSUdIQU5EIHwK KysgICAgICAgICAgICAgICAgICAgICAgIENMT05FX1RIUkVBRCB8IENMT05FX1NZU1ZTRU07Cisr ICBjb25zdCBpbnQgc2FmZSA9IENMT05FX1NFVFRMUyB8IENMT05FX1BBUkVOVF9TRVRUSUQgfCBD TE9ORV9DSElMRF9DTEVBUlRJRCB8CisrICAgICAgICAgICAgICAgICAgIENMT05FX0RFVEFDSEVE OworKyAgY29uc3QgQm9vbEV4cHIgdGhyZWFkX2Nsb25lX29rID0gKGZsYWdzJn5zYWZlKT09cmVx dWlyZWQ7CisgCisgICAvLyBUaGUgZm9sbG93aW5nIHR3byBmbGFncyBhcmUgdGhlIHR3byBpbXBv cnRhbnQgZmxhZ3MgaW4gYW55IHZmb3JrLWVtdWxhdGluZworICAgLy8gY2xvbmUgY2FsbC4gRVBF Uk0gYW55IGNsb25lIGNhbGwgdGhhdCBjb250YWlucyBib3RoIG9mIHRoZW0uCitAQCAtMTYzLDcg KzE1Myw3IEBAIFJlc3VsdEV4cHIgUmVzdHJpY3RDbG9uZVRvVGhyZWFkc0FuZEVQRVJNRm9yaygp IHsKKyAgICAgICBBbnlPZigoZmxhZ3MgJiAoQ0xPTkVfVk0gfCBDTE9ORV9USFJFQUQpKSA9PSAw LAorICAgICAgICAgICAgIChmbGFncyAmIGtJbXBvcnRhbnRDbG9uZVZmb3JrRmxhZ3MpID09IGtJ bXBvcnRhbnRDbG9uZVZmb3JrRmxhZ3MpOworIAorLSAgcmV0dXJuIElmKElzQW5kcm9pZCgpID8g YW5kcm9pZF90ZXN0IDogZ2xpYmNfdGVzdCwgQWxsb3coKSkKKysgIHJldHVybiBJZih0aHJlYWRf Y2xvbmVfb2ssIEFsbG93KCkpCisgICAgICAgLkVsc2VJZihpc19mb3JrX29yX2Nsb25lX3Zmb3Jr LCBFcnJvcihFUEVSTSkpCisgICAgICAgLkVsc2UoQ3Jhc2hTSUdTWVNDbG9uZSgpKTsKKyB9Citk aWZmIC0tZ2l0IGEvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0 cy5jYyBiL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuY2MK K2luZGV4IDdkYmNjODcuLjU4OTI2MmYgMTAwNjQ0CistLS0gLi9zYW5kYm94L2xpbnV4L3NlY2Nv bXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmNjCisrKysgLi9zYW5kYm94L2xpbnV4L3NlY2Nv bXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmNjCitAQCAtMzkxLDYgKzM5MSw3IEBAIGJvb2wg U3lzY2FsbFNldHM6OklzQWxsb3dlZFByb2Nlc3NTdGFydE9yRGVhdGgoaW50IHN5c25vKSB7Cisg I2lmIGRlZmluZWQoX19pMzg2X18pCisgICAgIGNhc2UgX19OUl93YWl0cGlkOgorICNlbmRpZgor KyAgICBjYXNlIF9fTlJfc2V0X3RpZF9hZGRyZXNzOgorICAgICAgIHJldHVybiB0cnVlOworICAg ICBjYXNlIF9fTlJfY2xvbmU6ICAvLyBTaG91bGQgYmUgcGFyYW1ldGVyLXJlc3RyaWN0ZWQuCisg ICAgIGNhc2UgX19OUl9zZXRuczogIC8vIFByaXZpbGVnZWQuCitAQCAtNDAzLDcgKzQwNCw2IEBA IGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZFByb2Nlc3NTdGFydE9yRGVhdGgoaW50IHN5c25v KSB7CisgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVm aW5lZChfX21pcHNfXykKKyAgICAgY2FzZSBfX05SX3NldF90aHJlYWRfYXJlYToKKyAjZW5kaWYK Ky0gICAgY2FzZSBfX05SX3NldF90aWRfYWRkcmVzczoKKyAgICAgY2FzZSBfX05SX3Vuc2hhcmU6 CisgI2lmICFkZWZpbmVkKF9fbWlwc19fKSAmJiAhZGVmaW5lZChfX2FhcmNoNjRfXykKKyAgICAg Y2FzZSBfX05SX3Zmb3JrOgorQEAgLTUxMyw2ICs1MTMsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJ c0FsbG93ZWRBZGRyZXNzU3BhY2VBY2Nlc3MoaW50IHN5c25vKSB7CisgICAgIGNhc2UgX19OUl9t bG9jazoKKyAgICAgY2FzZSBfX05SX211bmxvY2s6CisgICAgIGNhc2UgX19OUl9tdW5tYXA6Cisr ICAgIGNhc2UgX19OUl9tcmVtYXA6CisrICAgIGNhc2UgX19OUl9tZW1iYXJyaWVyOgorICAgICAg IHJldHVybiB0cnVlOworICAgICBjYXNlIF9fTlJfbWFkdmlzZToKKyAgICAgY2FzZSBfX05SX21p bmNvcmU6CitAQCAtNTMwLDcgKzUzMiw2IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEFk ZHJlc3NTcGFjZUFjY2VzcyhpbnQgc3lzbm8pIHsKKyAgICAgY2FzZSBfX05SX21vZGlmeV9sZHQ6 CisgI2VuZGlmCisgICAgIGNhc2UgX19OUl9tcHJvdGVjdDoKKy0gICAgY2FzZSBfX05SX21yZW1h cDoKKyAgICAgY2FzZSBfX05SX21zeW5jOgorICAgICBjYXNlIF9fTlJfbXVubG9ja2FsbDoKKyAg ICAgY2FzZSBfX05SX3JlYWRhaGVhZDoKK2RpZmYgLS1naXQgYS9zYW5kYm94L2xpbnV4L3N5c3Rl bV9oZWFkZXJzL2FybTY0X2xpbnV4X3N5c2NhbGxzLmggYi9zYW5kYm94L2xpbnV4L3N5c3RlbV9o ZWFkZXJzL2FybTY0X2xpbnV4X3N5c2NhbGxzLmgKK2luZGV4IDU5ZDBlYWIuLjdhZTcwMDIgMTAw NjQ0CistLS0gLi9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2FybTY0X2xpbnV4X3N5c2Nh bGxzLmgKKysrKyAuL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvYXJtNjRfbGludXhfc3lz Y2FsbHMuaAorQEAgLTEwNjMsNCArMTA2Myw4IEBACisgI2RlZmluZSBfX05SX21lbWZkX2NyZWF0 ZSAyNzkKKyAjZW5kaWYKKyAKKysjaWYgIWRlZmluZWQoX19OUl9tZW1iYXJyaWVyKQorKyNkZWZp bmUgX19OUl9tZW1iYXJyaWVyIDI4MworKyNlbmRpZgorKworICNlbmRpZiAgLy8gU0FOREJPWF9M SU5VWF9TWVNURU1fSEVBREVSU19BUk02NF9MSU5VWF9TWVNDQUxMU19IXworZGlmZiAtLWdpdCBh L3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvYXJtX2xpbnV4X3N5c2NhbGxzLmggYi9zYW5k Ym94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2FybV9saW51eF9zeXNjYWxscy5oCitpbmRleCAxYWRk ZDUzLi43ODQzYjVlIDEwMDY0NAorLS0tIC4vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9h cm1fbGludXhfc3lzY2FsbHMuaAorKysrIC4vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9h cm1fbGludXhfc3lzY2FsbHMuaAorQEAgLTEzODUsNiArMTM4NSwxMCBAQAorICNkZWZpbmUgX19O Ul9tZW1mZF9jcmVhdGUgKF9fTlJfU1lTQ0FMTF9CQVNFKzM4NSkKKyAjZW5kaWYKKyAKKysjaWYg IWRlZmluZWQoX19OUl9tZW1iYXJyaWVyKQorKyNkZWZpbmUgX19OUl9tZW1iYXJyaWVyIChfX05S X1NZU0NBTExfQkFTRSszODkpCisrI2VuZGlmCisrCisgLy8gQVJNIHByaXZhdGUgc3lzY2FsbHMu CisgI2lmICFkZWZpbmVkKF9fQVJNX05SX0JBU0UpCisgI2RlZmluZSBfX0FSTV9OUl9CQVNFIChf X05SX1NZU0NBTExfQkFTRSArIDB4RjAwMDApCitkaWZmIC0tZ2l0IGEvc2FuZGJveC9saW51eC9z eXN0ZW1faGVhZGVycy9taXBzNjRfbGludXhfc3lzY2FsbHMuaCBiL3NhbmRib3gvbGludXgvc3lz dGVtX2hlYWRlcnMvbWlwczY0X2xpbnV4X3N5c2NhbGxzLmgKK2luZGV4IGVjNzU4MTUuLjYxMmZj ZmEgMTAwNjQ0CistLS0gLi9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL21pcHM2NF9saW51 eF9zeXNjYWxscy5oCisrKysgLi9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL21pcHM2NF9s aW51eF9zeXNjYWxscy5oCitAQCAtMTI3MSw0ICsxMjcxLDggQEAKKyAjZGVmaW5lIF9fTlJfbWVt ZmRfY3JlYXRlIChfX05SX0xpbnV4ICsgMzE0KQorICNlbmRpZgorIAorKyNpZiAhZGVmaW5lZChf X05SX21lbWJhcnJpZXIpCisrI2RlZmluZSBfX05SX21lbWJhcnJpZXIgKF9fTlJfTGludXggKyAz MTgpCisrI2VuZGlmCisrCisgI2VuZGlmICAvLyBTQU5EQk9YX0xJTlVYX1NZU1RFTV9IRUFERVJT X01JUFM2NF9MSU5VWF9TWVNDQUxMU19IXworZGlmZiAtLWdpdCBhL3NhbmRib3gvbGludXgvc3lz dGVtX2hlYWRlcnMvbWlwc19saW51eF9zeXNjYWxscy5oIGIvc2FuZGJveC9saW51eC9zeXN0ZW1f aGVhZGVycy9taXBzX2xpbnV4X3N5c2NhbGxzLmgKK2luZGV4IGRkYmY5N2YuLjE3NDJhY2QgMTAw NjQ0CistLS0gLi9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL21pcHNfbGludXhfc3lzY2Fs bHMuaAorKysrIC4vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9taXBzX2xpbnV4X3N5c2Nh bGxzLmgKK0BAIC0xNDMzLDQgKzE0MzMsOCBAQAorICNkZWZpbmUgX19OUl9tZW1mZF9jcmVhdGUg KF9fTlJfTGludXggKyAzNTQpCisgI2VuZGlmCisgCisrI2lmICFkZWZpbmVkKF9fTlJfbWVtYmFy cmllcikKKysjZGVmaW5lIF9fTlJfbWVtYmFycmllciAoX19OUl9MaW51eCArIDM1OCkKKysjZW5k aWYKKysKKyAjZW5kaWYgIC8vIFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNfTUlQU19MSU5V WF9TWVNDQUxMU19IXworZGlmZiAtLWdpdCBhL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMv eDg2XzMyX2xpbnV4X3N5c2NhbGxzLmggYi9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3g4 Nl8zMl9saW51eF9zeXNjYWxscy5oCitpbmRleCBhNmFmYzYyLi43ZWQwYTNiIDEwMDY0NAorLS0t IC4vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy94ODZfMzJfbGludXhfc3lzY2FsbHMuaAor KysrIC4vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy94ODZfMzJfbGludXhfc3lzY2FsbHMu aAorQEAgLTE0MjIsNSArMTQyMiw5IEBACisgI2RlZmluZSBfX05SX21lbWZkX2NyZWF0ZSAzNTYK KyAjZW5kaWYKKyAKKysjaWYgIWRlZmluZWQoX19OUl9tZW1iYXJyaWVyKQorKyNkZWZpbmUgX19O Ul9tZW1iYXJyaWVyIDM3NQorKyNlbmRpZgorKworICNlbmRpZiAgLy8gU0FOREJPWF9MSU5VWF9T WVNURU1fSEVBREVSU19YODZfMzJfTElOVVhfU1lTQ0FMTFNfSF8KKyAKK2RpZmYgLS1naXQgYS9z YW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3g4Nl82NF9saW51eF9zeXNjYWxscy5oIGIvc2Fu ZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy94ODZfNjRfbGludXhfc3lzY2FsbHMuaAoraW5kZXgg MzQ5NTA0YS4uZWEzYzdjOSAxMDA2NDQKKy0tLSAuL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRl cnMveDg2XzY0X2xpbnV4X3N5c2NhbGxzLmgKKysrKyAuL3NhbmRib3gvbGludXgvc3lzdGVtX2hl YWRlcnMveDg2XzY0X2xpbnV4X3N5c2NhbGxzLmgKK0BAIC0xMjkwLDUgKzEyOTAsOSBAQAorICNk ZWZpbmUgX19OUl9tZW1mZF9jcmVhdGUgMzE5CisgI2VuZGlmCisgCisrI2lmICFkZWZpbmVkKF9f TlJfbWVtYmFycmllcikKKysjZGVmaW5lIF9fTlJfbWVtYmFycmllciAzMjQKKysjZW5kaWYKKysK KyAjZW5kaWYgIC8vIFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNfWDg2XzY0X0xJTlVYX1NZ U0NBTExTX0hfCisgCitkaWZmIC0tZ2l0IGEvc2VydmljZXMvc2VydmljZV9tYW5hZ2VyL3NhbmRi b3gvbGludXgvYnBmX3JlbmRlcmVyX3BvbGljeV9saW51eC5jYyBiL3NlcnZpY2VzL3NlcnZpY2Vf bWFuYWdlci9zYW5kYm94L2xpbnV4L2JwZl9yZW5kZXJlcl9wb2xpY3lfbGludXguY2MKK2luZGV4 IDAxN2YxM2MuLjUwYWVlYzMgMTAwNjQ0CistLS0gLi9zZXJ2aWNlcy9zZXJ2aWNlX21hbmFnZXIv c2FuZGJveC9saW51eC9icGZfcmVuZGVyZXJfcG9saWN5X2xpbnV4LmNjCisrKysgLi9zZXJ2aWNl cy9zZXJ2aWNlX21hbmFnZXIvc2FuZGJveC9saW51eC9icGZfcmVuZGVyZXJfcG9saWN5X2xpbnV4 LmNjCitAQCAtODgsMTAgKzg4LDEwIEBAIFJlc3VsdEV4cHIgUmVuZGVyZXJQcm9jZXNzUG9saWN5 OjpFdmFsdWF0ZVN5c2NhbGwoaW50IHN5c25vKSBjb25zdCB7CisgICAgIGNhc2UgX19OUl9zeXNp bmZvOgorICAgICBjYXNlIF9fTlJfdGltZXM6CisgICAgIGNhc2UgX19OUl91bmFtZToKKy0gICAg ICByZXR1cm4gQWxsb3coKTsKKy0gICAgY2FzZSBfX05SX3NjaGVkX2dldGFmZmluaXR5OgorICAg ICBjYXNlIF9fTlJfc2NoZWRfZ2V0cGFyYW06CisgICAgIGNhc2UgX19OUl9zY2hlZF9nZXRzY2hl ZHVsZXI6CisrICAgICAgcmV0dXJuIEFsbG93KCk7CisrICAgIGNhc2UgX19OUl9zY2hlZF9nZXRh ZmZpbml0eToKKyAgICAgY2FzZSBfX05SX3NjaGVkX3NldHNjaGVkdWxlcjoKKyAgICAgICByZXR1 cm4gc2FuZGJveDo6UmVzdHJpY3RTY2hlZFRhcmdldChHZXRQb2xpY3lQaWQoKSwgc3lzbm8pOwor ICAgICBjYXNlIF9fTlJfcHJsaW1pdDY0OgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjkv ZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfY2Fub25pY2FsaXplX2ZpbGVfbmFtZS5w YXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNs X2Nhbm9uaWNhbGl6ZV9maWxlX25hbWUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLjA1NjE0ZGFhNzU3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVj dHJvbjkvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfY2Fub25pY2FsaXplX2ZpbGVf bmFtZS5wYXRjaApAQCAtMCwwICsxLDEzIEBACitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvbmFz bS9jb25maWcvY29uZmlnLWxpbnV4LmggYi90aGlyZF9wYXJ0eS9uYXNtL2NvbmZpZy9jb25maWct bGludXguaAoraW5kZXggN2ViN2MyMC4uODgyYjczNiAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5 L25hc20vY29uZmlnL2NvbmZpZy1saW51eC5oCisrKysgYi90aGlyZF9wYXJ0eS9uYXNtL2NvbmZp Zy9jb25maWctbGludXguaAorQEAgLTExNyw3ICsxMTcsNyBAQAorICNkZWZpbmUgSEFWRV9BQ0NF U1MgMQorIAorIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgY2Fub25pY2FsaXplX2Zp bGVfbmFtZScgZnVuY3Rpb24uICovCistI2RlZmluZSBIQVZFX0NBTk9OSUNBTElaRV9GSUxFX05B TUUgMQorKy8qICN1bmRlZiBIQVZFX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgKi8KKyAKKyAvKiBE ZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGNwdV90b19sZTE2JyBpbnRyaW5zaWMgZnVuY3Rp b24uICovCisgLyogI3VuZGVmIEhBVkVfQ1BVX1RPX0xFMTYgKi8KZGlmZiAtLWdpdCBhL3NyY3Br Z3MvZWxlY3Ryb245L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2NkZWZzLnBhdGNo IGIvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfY2Rl ZnMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmZjN2RjMDZm ZjIxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvbXVzbC1wYXRj aGVzL2Nocm9taXVtLW11c2xfY2RlZnMucGF0Y2gKQEAgLTAsMCArMSw0NSBAQAorZGlmZiAtLWdp dCBhL2Jhc2UvYWxsb2NhdG9yL2FsbG9jYXRvcl9zaGltX2ludGVybmFscy5oIGIvYmFzZS9hbGxv Y2F0b3IvYWxsb2NhdG9yX3NoaW1faW50ZXJuYWwKK3MuaAoraW5kZXggMDE5NmY4OS4uYmI0MmI1 ZCAxMDA2NDQKKy0tLSBhL2Jhc2UvYWxsb2NhdG9yL2FsbG9jYXRvcl9zaGltX2ludGVybmFscy5o CisrKysgYi9iYXNlL2FsbG9jYXRvci9hbGxvY2F0b3Jfc2hpbV9pbnRlcm5hbHMuaAorQEAgLTcs NyArNyw5IEBACisKKyAjaWYgZGVmaW5lZChfX0dOVUNfXykKKworKyNpZiBkZWZpbmVkKF9fR0xJ QkNfXykKKyAjaW5jbHVkZSA8c3lzL2NkZWZzLmg+ICAvLyBmb3IgX19USFJPVworKyNlbmRpZgor CisgI2lmbmRlZiBfX1RIUk9XICAvLyBOb3QgYSBnbGliYyBzeXN0ZW0KKyAjaWZkZWYgX05PRVhD RVBUICAvLyBMTFZNIGxpYmMrKyB1c2VzIG5vZXhjZXB0IGluc3RlYWQKK2RpZmYgLS1naXQgYS90 aGlyZF9wYXJ0eS9saWJzeW5jL3NyYy9pbmNsdWRlL3N5bmMvc3luYy5oIGIvdGhpcmRfcGFydHkv bGlic3luYy9zcmMvaW5jbHVkZS9zeW5jL3N5bmMuaAoraW5kZXggNTBlZDBhYy4uNzU1MmE0OSAx MDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2xpYnN5bmMvc3JjL2luY2x1ZGUvc3luYy9zeW5jLmgK KysrKyBiL3RoaXJkX3BhcnR5L2xpYnN5bmMvc3JjL2luY2x1ZGUvc3luYy9zeW5jLmgKK0BAIC0x OSwxMiArMTksMTMgQEAKKyAjaWZuZGVmIF9fU1lTX0NPUkVfU1lOQ19ICisgI2RlZmluZSBfX1NZ U19DT1JFX1NZTkNfSAorIAorLSNpbmNsdWRlIDxzeXMvY2RlZnMuaD4KKyAjaW5jbHVkZSA8c3Rk aW50Lmg+CisgCisgI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisgCistX19CRUdJTl9ERUNMUwor KyNpZmRlZiBfX2NwbHVzcGx1cworK2V4dGVybiAiQyIgeworKyNlbmRpZiAvKiBfX2NwbHVzcGx1 cyAqLworIAorIHN0cnVjdCBzeW5jX2xlZ2FjeV9tZXJnZV9kYXRhIHsKKyAgaW50MzJfdCBmZDI7 CitAQCAtMTU4LDYgKzE1OSw4IEBAIHN0cnVjdCBzeW5jX3B0X2luZm8gKnN5bmNfcHRfaW5mbyhz dHJ1Y3Qgc3luY19mZW5jZV9pbmZvX2RhdGEgKmluZm8sCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0cnVjdCBzeW5jX3B0X2luZm8gKml0cik7Cisgdm9pZCBzeW5jX2ZlbmNl X2luZm9fZnJlZShzdHJ1Y3Qgc3luY19mZW5jZV9pbmZvX2RhdGEgKmluZm8pOworIAorLV9fRU5E X0RFQ0xTCisrI2lmZGVmIF9fY3BsdXNwbHVzCisrfQorKyNlbmRpZiAvKiBfX2NwbHVzcGx1cyAq LworIAorICNlbmRpZiAvKiBfX1NZU19DT1JFX1NZTkNfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9lbGVjdHJvbjkvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfZGVmaW5lX3RlbXBf ZmFpbHVyZV9yZXRyeS5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL211c2wtcGF0Y2hl cy9jaHJvbWl1bS1tdXNsX2RlZmluZV90ZW1wX2ZhaWx1cmVfcmV0cnkucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjYxZGI2NThmODQ5Ci0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xf ZGVmaW5lX3RlbXBfZmFpbHVyZV9yZXRyeS5wYXRjaApAQCAtMCwwICsxLDE4IEBACistLS0gYS9z YW5kYm94L2xpbnV4L3N1aWQvc2FuZGJveC5jCTIwMTktMTEtMTkgMDk6Mjg6MDUuMDAwMDAwMDAw ICswODAwCisrKysgYi9zYW5kYm94L2xpbnV4L3N1aWQvc2FuZGJveC5jCTIwMjAtMDQtMjQgMTE6 NTA6MTIuNzE5ODgwNzI4ICswODAwCitAQCAtNDIsNiArNDIsMTUgQEAKKyAjZGVmaW5lIENMT05F X05FV05FVCAweDQwMDAwMDAwCisgI2VuZGlmCisgCisrI2lmbmRlZiBURU1QX0ZBSUxVUkVfUkVU UlkKKysjZGVmaW5lIFRFTVBfRkFJTFVSRV9SRVRSWShleHByZXNzaW9uKSBcCisrICAoX19leHRl bnNpb25fXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCisrICAgICh7IGxvbmcgaW50IF9fcmVzdWx0OyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgICAgIGRvIF9fcmVzdWx0 ID0gKGxvbmcgaW50KSAoZXhwcmVzc2lvbik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCisrICAgICAgIHdoaWxlIChfX3Jlc3VsdCA9PSAtMUwgJiYgZXJybm8gPT0gRUlOVFIpOyAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgICAgIF9fcmVzdWx0OyB9KSkKKysjZW5k aWYKKysKKyBzdGF0aWMgYm9vbCBEcm9wUm9vdCgpOworIAorICNkZWZpbmUgSEFORExFX0VJTlRS KHgpIFRFTVBfRkFJTFVSRV9SRVRSWSh4KQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjkv ZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfZG5zLnBhdGNoIGIvc3JjcGtncy9lbGVj dHJvbjkvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfZG5zLnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mNDlkOGJkMGFmYQotLS0gL2Rldi9udWxs CisrKyBiL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNs X2Rucy5wYXRjaApAQCAtMCwwICsxLDYxIEBACitkaWZmIC0tZ2l0IGEvbmV0L2Rucy9kbnNfY29u ZmlnX3NlcnZpY2VfcG9zaXguY2MgYi9uZXQvZG5zL2Ruc19jb25maWdfc2VydmljZV9wb3NpeC5j YworaW5kZXggMmY5NDgzMi4uMmRkMWE5OCAxMDA2NDQKKy0tLSBhL25ldC9kbnMvZG5zX2NvbmZp Z19zZXJ2aWNlX3Bvc2l4LmNjCisrKysgYi9uZXQvZG5zL2Ruc19jb25maWdfc2VydmljZV9wb3Np eC5jYworQEAgLTE1MCw3ICsxNTAsNyBAQCBDb25maWdQYXJzZVBvc2l4UmVzdWx0IFJlYWREbnND b25maWcoRG5zQ29uZmlnKiBkbnNfY29uZmlnKSB7CisgI2lmICFkZWZpbmVkKE9TX0FORFJPSUQp CisgICBDb25maWdQYXJzZVBvc2l4UmVzdWx0IHJlc3VsdDsKKyAvLyBUT0RPKGZ1Y2hzaWEpOiBV c2UgcmVzX25pbml0KCkgd2hlbiBpdCdzIGltcGxlbWVudGVkIG9uIEZ1Y2hzaWEuCistI2lmIGRl ZmluZWQoT1NfT1BFTkJTRCkgfHwgZGVmaW5lZChPU19GVUNIU0lBKQorKyNpZiBkZWZpbmVkKE9T X09QRU5CU0QpIHx8IGRlZmluZWQoT1NfRlVDSFNJQSkgfHwgKGRlZmluZWQoT1NfTElOVVgpICYm ICFkZWZpbmVkKF9fR0xJQkNfXykpCisgICAvLyBOb3RlOiByZXNfbmluaXQgaW4gZ2xpYmMgYWx3 YXlzIHJldHVybnMgMCBhbmQgc2V0cyBSRVNfSU5JVC4KKyAgIC8vIHJlc19pbml0IGJlaGF2ZXMg dGhlIHNhbWUgd2F5LgorICAgbWVtc2V0KCZfcmVzLCAwLCBzaXplb2YoX3JlcykpOworQEAgLTE3 Myw3ICsxNzMsNyBAQCBDb25maWdQYXJzZVBvc2l4UmVzdWx0IFJlYWREbnNDb25maWcoRG5zQ29u ZmlnKiBkbnNfY29uZmlnKSB7CisgI2Vsc2UKKyAgIHJlc19uY2xvc2UoJnJlcyk7CisgI2VuZGlm ICAvLyBkZWZpbmVkKE9TX01BQ09TWCkgfHwgZGVmaW5lZChPU19GUkVFQlNEKQorLSNlbmRpZiAg Ly8gZGVmaW5lZChPU19PUEVOQlNEKQorKyNlbmRpZiAgLy8gZGVmaW5lZChPU19PUEVOQlNEKSB8 fCBkZWZpbmVkKE9TX0ZVQ0hTSUEpIHx8IChkZWZpbmVkKE9TX0xJTlVYKSAmJiAhZGVmaW5lZChf X0dMSUJDX18pKQorIAorICNpZiBkZWZpbmVkKE9TX01BQ09TWCkgJiYgIWRlZmluZWQoT1NfSU9T KQorICAgQ29uZmlnUGFyc2VQb3NpeFJlc3VsdCBlcnJvciA9IERuc0NvbmZpZ1dhdGNoZXI6OkNo ZWNrRG5zQ29uZmlnKCk7CitkaWZmIC0tZ2l0IGEvbmV0L2Rucy9kbnNfcmVsb2FkZXIuY2MgYi9u ZXQvZG5zL2Ruc19yZWxvYWRlci5jYworaW5kZXggOTUyY2ZmNC4uNGIzNjZmNCAxMDA2NDQKKy0t LSBhL25ldC9kbnMvZG5zX3JlbG9hZGVyLmNjCisrKysgYi9uZXQvZG5zL2Ruc19yZWxvYWRlci5j YworQEAgLTQsNyArNCw3IEBACisgCisgI2luY2x1ZGUgIm5ldC9kbnMvZG5zX3JlbG9hZGVyLmgi CisgCistI2lmIGRlZmluZWQoT1NfUE9TSVgpICYmICFkZWZpbmVkKE9TX01BQ09TWCkgJiYgIWRl ZmluZWQoT1NfT1BFTkJTRCkgJiYgXAorKyNpZiBkZWZpbmVkKE9TX1BPU0lYKSAmJiBkZWZpbmVk KF9fR0xJQkNfXykgJiYgIWRlZmluZWQoT1NfTUFDT1NYKSAmJiAhZGVmaW5lZChPU19PUEVOQlNE KSAmJiBcCisgICAgICFkZWZpbmVkKE9TX0FORFJPSUQpICYmICFkZWZpbmVkKE9TX0ZVQ0hTSUEp CisgCisgI2luY2x1ZGUgPHJlc29sdi5oPgorZGlmZiAtLWdpdCBhL25ldC9kbnMvaG9zdF9yZXNv bHZlcl9tYW5hZ2VyLmNjIGIvbmV0L2Rucy9ob3N0X3Jlc29sdmVyX21hbmFnZXIuY2MKK2luZGV4 IGU4ZGVhNDYuLmM4NmE4MzAgMTAwNjQ0CistLS0gYS9uZXQvZG5zL2hvc3RfcmVzb2x2ZXJfbWFu YWdlci5jYworKysrIGIvbmV0L2Rucy9ob3N0X3Jlc29sdmVyX21hbmFnZXIuY2MKK0BAIC0yMzg2 LDcgKzIzODYsNyBAQCBIb3N0UmVzb2x2ZXJNYW5hZ2VyOjpIb3N0UmVzb2x2ZXJNYW5hZ2VyKAor ICAgTmV0d29ya0NoYW5nZU5vdGlmaWVyOjpBZGRDb25uZWN0aW9uVHlwZU9ic2VydmVyKHRoaXMp OworICAgaWYgKHN5c3RlbV9kbnNfY29uZmlnX25vdGlmaWVyXykKKyAgICAgc3lzdGVtX2Ruc19j b25maWdfbm90aWZpZXJfLT5BZGRPYnNlcnZlcih0aGlzKTsKKy0jaWYgZGVmaW5lZChPU19QT1NJ WCkgJiYgIWRlZmluZWQoT1NfTUFDT1NYKSAmJiAhZGVmaW5lZChPU19PUEVOQlNEKSAmJiBcCisr I2lmIGRlZmluZWQoT1NfUE9TSVgpICYmIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChP U19NQUNPU1gpICYmICFkZWZpbmVkKE9TX09QRU5CU0QpICYmIFwKKyAgICAgIWRlZmluZWQoT1Nf QU5EUk9JRCkKKyAgIEVuc3VyZURuc1JlbG9hZGVySW5pdCgpOworICNlbmRpZgorZGlmZiAtLWdp dCBhL25ldC9kbnMvaG9zdF9yZXNvbHZlcl9wcm9jLmNjIGIvbmV0L2Rucy9ob3N0X3Jlc29sdmVy X3Byb2MuY2MKK2luZGV4IDA4MjQ1NDAuLjMzODQ5NzggMTAwNjQ0CistLS0gYS9uZXQvZG5zL2hv c3RfcmVzb2x2ZXJfcHJvYy5jYworKysrIGIvbmV0L2Rucy9ob3N0X3Jlc29sdmVyX3Byb2MuY2MK K0BAIC0xOTcsNyArMTk3LDcgQEAgaW50IFN5c3RlbUhvc3RSZXNvbHZlckNhbGwoY29uc3Qgc3Rk OjpzdHJpbmcmIGhvc3QsCisgICBiYXNlOjpTY29wZWRCbG9ja2luZ0NhbGwgc2NvcGVkX2Jsb2Nr aW5nX2NhbGwoRlJPTV9IRVJFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGJhc2U6OkJsb2NraW5nVHlwZTo6V0lMTF9CTE9DSyk7CisgCistI2lmIGRl ZmluZWQoT1NfUE9TSVgpICYmICFkZWZpbmVkKE9TX01BQ09TWCkgJiYgIWRlZmluZWQoT1NfT1BF TkJTRCkgJiYgXAorKyNpZiBkZWZpbmVkKE9TX1BPU0lYKSAmJiBkZWZpbmVkKF9fR0xJQkNfXykg JiYgIWRlZmluZWQoT1NfTUFDT1NYKSAmJiAhZGVmaW5lZChPU19PUEVOQlNEKSAmJiBcCisgICAg ICFkZWZpbmVkKE9TX0FORFJPSUQpICYmICFkZWZpbmVkKE9TX0ZVQ0hTSUEpCisgICBEbnNSZWxv YWRlck1heWJlUmVsb2FkKCk7CisgI2VuZGlmCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9u OS9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9leGVpbmZvLnBhdGNoIGIvc3JjcGtn cy9lbGVjdHJvbjkvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfZXhlaW5mby5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZjFhZmM3YzFiMTcKLS0t IC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9tdXNsLXBhdGNoZXMvY2hy b21pdW0tbXVzbF9leGVpbmZvLnBhdGNoCkBAIC0wLDAgKzEsOTYgQEAKK2RpZmYgLS1naXQgYS9i YXNlL2RlYnVnL3N0YWNrX3RyYWNlX3Bvc2l4LmNjIGIvYmFzZS9kZWJ1Zy9zdGFja190cmFjZV9w b3NpeC5jYworaW5kZXggZGUyZjM1Ni4uZjY5N2M2NiAxMDA2NDQKKy0tLSBhL2Jhc2UvZGVidWcv c3RhY2tfdHJhY2VfcG9zaXguY2MKKysrKyBiL2Jhc2UvZGVidWcvc3RhY2tfdHJhY2VfcG9zaXgu Y2MKK0BAIC0yNyw3ICsyNyw3IEBACisgI2lmICFkZWZpbmVkKFVTRV9TWU1CT0xJWkUpCisgI2lu Y2x1ZGUgPGN4eGFiaS5oPgorICNlbmRpZgorLSNpZiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAh ZGVmaW5lZChfQUlYKQorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX19VQ0xJ QkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKyAjaW5jbHVkZSA8ZXhlY2luZm8uaD4KKyAjZW5kaWYK KyAKK0BAIC04Niw3ICs4Niw3IEBAIHZvaWQgRGVtYW5nbGVTeW1ib2xzKHN0ZDo6c3RyaW5nKiB0 ZXh0KSB7CisgICAvLyBOb3RlOiBjb2RlIGluIHRoaXMgZnVuY3Rpb24gaXMgTk9UIGFzeW5jLXNp Z25hbCBzYWZlIChzdGQ6OnN0cmluZyB1c2VzCisgICAvLyBtYWxsb2MgaW50ZXJuYWxseSkuCisg CistI2lmICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisrI2lmIGRlZmlu ZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQor ICAgc3RkOjpzdHJpbmc6OnNpemVfdHlwZSBzZWFyY2hfZnJvbSA9IDA7CisgICB3aGlsZSAoc2Vh cmNoX2Zyb20gPCB0ZXh0LT5zaXplKCkpIHsKKyAgICAgLy8gTG9vayBmb3IgdGhlIHN0YXJ0IG9m IGEgbWFuZ2xlZCBzeW1ib2wsIGZyb20gc2VhcmNoX2Zyb20uCitAQCAtMTIxLDcgKzEyMSw3IEBA IHZvaWQgRGVtYW5nbGVTeW1ib2xzKHN0ZDo6c3RyaW5nKiB0ZXh0KSB7CisgICAgICAgc2VhcmNo X2Zyb20gPSBtYW5nbGVkX3N0YXJ0ICsgMjsKKyAgICAgfQorICAgfQorLSNlbmRpZiAgLy8gIWRl ZmluZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKysjZW5kaWYgIC8vIGRlZmluZWQo X19HTElCQ19fKSAmJiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorIH0K KyAjZW5kaWYgIC8vICFkZWZpbmVkKFVTRV9TWU1CT0xJWkUpCisgCitAQCAtMTMzLDcgKzEzMyw3 IEBAIGNsYXNzIEJhY2t0cmFjZU91dHB1dEhhbmRsZXIgeworICAgdmlydHVhbCB+QmFja3RyYWNl T3V0cHV0SGFuZGxlcigpID0gZGVmYXVsdDsKKyB9OworIAorLSNpZiAhZGVmaW5lZChfX1VDTElC Q19fKSAmJiAhZGVmaW5lZChfQUlYKQorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmlu ZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKyB2b2lkIE91dHB1dFBvaW50ZXIodm9p ZCogcG9pbnRlciwgQmFja3RyYWNlT3V0cHV0SGFuZGxlciogaGFuZGxlcikgeworICAgLy8gVGhp cyBzaG91bGQgYmUgbW9yZSB0aGFuIGVub3VnaCB0byBzdG9yZSBhIDY0LWJpdCBudW1iZXIgaW4g aGV4OgorICAgLy8gMTYgaGV4IGRpZ2l0cyArIDEgZm9yIG51bGwtdGVybWluYXRvci4KK0BAIC0y MTYsNyArMjE2LDcgQEAgdm9pZCBQcm9jZXNzQmFja3RyYWNlKHZvaWQqIGNvbnN0KiB0cmFjZSwK KyAgIH0KKyAjZW5kaWYgIC8vIGRlZmluZWQoVVNFX1NZTUJPTElaRSkKKyB9CistI2VuZGlmICAv LyAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorKyNlbmRpZiAgLy8gZGVm aW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgp CisgCisgdm9pZCBQcmludFRvU3RkZXJyKGNvbnN0IGNoYXIqIG91dHB1dCkgeworICAgLy8gTk9U RTogVGhpcyBjb2RlIE1VU1QgYmUgYXN5bmMtc2lnbmFsIHNhZmUgKGl0J3MgdXNlZCBieSBpbi1w cm9jZXNzCitAQCAtODI4LDcgKzgyOCw3IEBAIHNpemVfdCBDb2xsZWN0U3RhY2tUcmFjZSh2b2lk KiogdHJhY2UsIHNpemVfdCBjb3VudCkgeworICAgLy8gTk9URTogVGhpcyBjb2RlIE1VU1QgYmUg YXN5bmMtc2lnbmFsIHNhZmUgKGl0J3MgdXNlZCBieSBpbi1wcm9jZXNzCisgICAvLyBzdGFjayBk dW1waW5nIHNpZ25hbCBoYW5kbGVyKS4gTk8gbWFsbG9jIG9yIHN0ZGlvIGlzIGFsbG93ZWQgaGVy ZS4KKyAKKy0jaWYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKysjaWYg ZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9B SVgpCisgICAvLyBUaG91Z2ggdGhlIGJhY2t0cmFjZSBBUEkgbWFuIHBhZ2UgZG9lcyBub3QgbGlz dCBhbnkgcG9zc2libGUgbmVnYXRpdmUKKyAgIC8vIHJldHVybiB2YWx1ZXMsIHdlIHRha2Ugbm8g Y2hhbmNlLgorICAgcmV0dXJuIGJhc2U6OnNhdHVyYXRlZF9jYXN0PHNpemVfdD4oYmFja3RyYWNl KHRyYWNlLCBjb3VudCkpOworQEAgLTg0MSwxMyArODQxLDEzIEBAIHZvaWQgU3RhY2tUcmFjZTo6 UHJpbnRXaXRoUHJlZml4KGNvbnN0IGNoYXIqIHByZWZpeF9zdHJpbmcpIGNvbnN0IHsKKyAvLyBO T1RFOiBUaGlzIGNvZGUgTVVTVCBiZSBhc3luYy1zaWduYWwgc2FmZSAoaXQncyB1c2VkIGJ5IGlu LXByb2Nlc3MKKyAvLyBzdGFjayBkdW1waW5nIHNpZ25hbCBoYW5kbGVyKS4gTk8gbWFsbG9jIG9y IHN0ZGlvIGlzIGFsbG93ZWQgaGVyZS4KKyAKKy0jaWYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYg IWRlZmluZWQoX0FJWCkKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9fVUNM SUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisgICBQcmludEJhY2t0cmFjZU91dHB1dEhhbmRsZXIg aGFuZGxlcjsKKyAgIFByb2Nlc3NCYWNrdHJhY2UodHJhY2VfLCBjb3VudF8sIHByZWZpeF9zdHJp bmcsICZoYW5kbGVyKTsKKyAjZW5kaWYKKyB9CisgCistI2lmICFkZWZpbmVkKF9fVUNMSUJDX18p ICYmICFkZWZpbmVkKF9BSVgpCisrI2lmIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChf X1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorIHZvaWQgU3RhY2tUcmFjZTo6T3V0cHV0VG9T dHJlYW1XaXRoUHJlZml4KHN0ZDo6b3N0cmVhbSogb3MsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogcHJlZml4X3N0cmluZykgY29uc3Qgewor ICAgU3RyZWFtQmFja3RyYWNlT3V0cHV0SGFuZGxlciBoYW5kbGVyKG9zKTsKK2RpZmYgLS1naXQg YS90aGlyZF9wYXJ0eS9zd2lmdHNoYWRlci90aGlyZF9wYXJ0eS9sbHZtLXN1Ynplcm8vYnVpbGQv TGludXgvaW5jbHVkZS9sbHZtL0NvbmZpZy9jb25maWcuaCBiL3RoaXJkX3BhcnR5L3N3aWZ0c2hh ZGVyL3RoaXJkX3BhcnR5L2xsdm0tc3ViemVyby9idWlsZC9MaW51eC9pbmNsdWRlL2xsdm0vQ29u ZmlnL2NvbmZpZy5oCitpbmRleCA3OThmMTUwLi45N2FjYzdjIDEwMDY0NAorLS0tIGEvdGhpcmRf cGFydHkvc3dpZnRzaGFkZXIvdGhpcmRfcGFydHkvbGx2bS1zdWJ6ZXJvL2J1aWxkL0xpbnV4L2lu Y2x1ZGUvbGx2bS9Db25maWcvY29uZmlnLmgKKysrKyBiL3RoaXJkX3BhcnR5L3N3aWZ0c2hhZGVy L3RoaXJkX3BhcnR5L2xsdm0tc3ViemVyby9idWlsZC9MaW51eC9pbmNsdWRlL2xsdm0vQ29uZmln L2NvbmZpZy5oCitAQCAtMTQsNyArMTQsNyBAQAorICNkZWZpbmUgRU5BQkxFX0NSQVNIX09WRVJS SURFUyAxCisgCisgLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBiYWNrdHJhY2UnIGZ1 bmN0aW9uLiAqLworLSNkZWZpbmUgSEFWRV9CQUNLVFJBQ0UgMQorKy8qICN1bmRlZiBIQVZFX0JB Q0tUUkFDRSAqLworIAorIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8Q3Jhc2hSZXBv cnRlckNsaWVudC5oPiBoZWFkZXIgZmlsZS4gKi8KKyAvKiAjdW5kZWYgSEFWRV9DUkFTSFJFUE9S VEVSQ0xJRU5UX0ggKi8KK0BAIC01NSw3ICs1NSw3IEBACisgI2RlZmluZSBIQVZFX0VSUk5PX0gg MQorIAorIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8ZXhlY2luZm8uaD4gaGVhZGVy IGZpbGUuICovCistI2RlZmluZSBIQVZFX0VYRUNJTkZPX0ggMQorKy8qICN1bmRlZiBIQVZFX0VY RUNJTkZPX0ggKi8KKyAKKyAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGZjbnRsLmg+ IGhlYWRlciBmaWxlLiAqLworICNkZWZpbmUgSEFWRV9GQ05UTF9IIDEKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvZWxlY3Ryb245L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2Zwc3RhdGVf dC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1t dXNsX2Zwc3RhdGVfdC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MC4uZDhjNDFjY2Q5YTAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxl cy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9mcHN0YXRlX3QucGF0Y2gKQEAgLTAsMCArMSw0 OCBAQAorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGll bnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5jYyBiL3RoaXJkX3Bh cnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9u L3Vjb250ZXh0X3JlYWRlci5jYworaW5kZXggNmVlNmNjMS4uYThmOWNjYyAxMDA2NDQKKy0tLSBh L3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0 ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5jYworKysrIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQv YnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVh ZGVyLmNjCitAQCAtNDksNyArNDksNyBAQCB1aW50cHRyX3QgVUNvbnRleHRSZWFkZXI6OkdldElu c3RydWN0aW9uUG9pbnRlcihjb25zdCB1Y29udGV4dF90KiB1YykgeworIH0KKyAKKyB2b2lkIFVD b250ZXh0UmVhZGVyOjpGaWxsQ1BVQ29udGV4dChSYXdDb250ZXh0Q1BVICpvdXQsIGNvbnN0IHVj b250ZXh0X3QgKnVjLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IHN0cnVjdCBfbGliY19mcHN0YXRlKiBmcCkgeworKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IHN0cnVjdCBfZnBzdGF0ZSogZnApIHsKKyAgIGNvbnN0IGdyZWdfdCog cmVncyA9IHVjLT51Y19tY29udGV4dC5ncmVnczsKKyAKKyAgIG91dC0+Y29udGV4dF9mbGFncyA9 IE1EX0NPTlRFWFRfWDg2X0ZVTEwgfAorQEAgLTk3LDcgKzk3LDcgQEAgdWludHB0cl90IFVDb250 ZXh0UmVhZGVyOjpHZXRJbnN0cnVjdGlvblBvaW50ZXIoY29uc3QgdWNvbnRleHRfdCogdWMpIHsK KyB9CisgCisgdm9pZCBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNvbnRleHQoUmF3Q29udGV4dENQ VSAqb3V0LCBjb25zdCB1Y29udGV4dF90ICp1YywKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBzdHJ1Y3QgX2xpYmNfZnBzdGF0ZSogZnByZWdzKSB7CisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IF9mcHN0YXRlKiBmcHJl Z3MpIHsKKyAgIGNvbnN0IGdyZWdfdCogcmVncyA9IHVjLT51Y19tY29udGV4dC5ncmVnczsKKyAK KyAgIG91dC0+Y29udGV4dF9mbGFncyA9IE1EX0NPTlRFWFRfQU1ENjRfRlVMTDsKK2RpZmYgLS1n aXQgYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBf d3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIuaCBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2Jy ZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRl ci5oCitpbmRleCBmODMwNjE4Li5mM2RkZTFmIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvYnJl YWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRl eHRfcmVhZGVyLmgKKysrKyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGll bnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5oCitAQCAtNTAsNyAr NTAsNyBAQCBzdHJ1Y3QgVUNvbnRleHRSZWFkZXIgeworICAgLy8gICBpbmZvOiB0aGUgY29sbGVj dGlvbiBvZiByZWdpc3RlciBzdHJ1Y3R1cmVzLgorICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBk ZWZpbmVkKF9feDg2XzY0KQorICAgc3RhdGljIHZvaWQgRmlsbENQVUNvbnRleHQoUmF3Q29udGV4 dENQVSAqb3V0LCBjb25zdCB1Y29udGV4dF90ICp1YywKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IHN0cnVjdCBfbGliY19mcHN0YXRlKiBmcCk7CisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgX2Zwc3RhdGUqIGZwKTsKKyAjZWxpZiBkZWZpbmVk KF9fYWFyY2g2NF9fKQorICAgc3RhdGljIHZvaWQgRmlsbENQVUNvbnRleHQoUmF3Q29udGV4dENQ VSAqb3V0LCBjb25zdCB1Y29udGV4dF90ICp1YywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IHN0cnVjdCBmcHNpbWRfY29udGV4dCogZnByZWdzKTsKK2RpZmYgLS1naXQgYS90 aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dy aXRlci9taW5pZHVtcF93cml0ZXIuaCBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3Ny Yy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlci5oCitpbmRleCBk MWRjMzMxLi5kMWNjNTYyIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyLmgKKysr KyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1 bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlci5oCitAQCAtNDgsNyArNDgsNyBAQCBjbGFzcyBFeGNl cHRpb25IYW5kbGVyOworICNpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQorIHR5cGVkZWYgc3RydWN0 IGZwc2ltZF9jb250ZXh0IGZwc3RhdGVfdDsKKyAjZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18p ICYmICFkZWZpbmVkKF9fbWlwc19fKQorLXR5cGVkZWYgc3RydWN0IF9saWJjX2Zwc3RhdGUgZnBz dGF0ZV90OworK3R5cGVkZWYgc3RydWN0IF9mcHN0YXRlIGZwc3RhdGVfdDsKKyAjZW5kaWYKKyAK KyAvLyBUaGVzZSBlbnRyaWVzIHN0b3JlIGEgbGlzdCBvZiBtZW1vcnkgcmVnaW9ucyB0aGF0IHRo ZSBjbGllbnQgd2FudHMgaW5jbHVkZWQKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb245L2Zp bGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2dldGNvbnRleHQucGF0Y2ggYi9zcmNwa2dz L2VsZWN0cm9uOS9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9nZXRjb250ZXh0LnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43Njk3MjQzYTkxMAot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL211c2wtcGF0Y2hlcy9j aHJvbWl1bS1tdXNsX2dldGNvbnRleHQucGF0Y2gKQEAgLTAsMCArMSwyNSBAQAorZGlmZiAtLWdp dCBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxl ci9leGNlcHRpb25faGFuZGxlci5jYyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3Ny Yy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5jYworaW5kZXggYjg5NWY2 ZC4uNGYxMzM1MiAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3Ny Yy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5jYworKysrIGIvdGhpcmRf cGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlv bl9oYW5kbGVyLmNjCitAQCAtNDkwLDcgKzQ5MCw5IEBAIGJvb2wgRXhjZXB0aW9uSGFuZGxlcjo6 U2ltdWxhdGVTaWduYWxEZWxpdmVyeShpbnQgc2lnKSB7CisgICBzaWdpbmZvLnNpX2NvZGUgPSBT SV9VU0VSOworICAgc2lnaW5mby5zaV9waWQgPSBnZXRwaWQoKTsKKyAgIHVjb250ZXh0X3QgY29u dGV4dDsKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pCisgICBnZXRjb250ZXh0KCZjb250ZXh0KTsK KysjZW5kaWYKKyAgIHJldHVybiBIYW5kbGVTaWduYWwoc2lnLCAmc2lnaW5mbywgJmNvbnRleHQp OworIH0KKyAKK0BAIC02NzUsOCArNjc3LDEwIEBAIGJvb2wgRXhjZXB0aW9uSGFuZGxlcjo6V3Jp dGVNaW5pZHVtcCgpIHsKKyAgIHN5c19wcmN0bChQUl9TRVRfRFVNUEFCTEUsIDEsIDAsIDAsIDAp OworIAorICAgQ3Jhc2hDb250ZXh0IGNvbnRleHQ7CisrI2lmIGRlZmluZWQoX19HTElCQ19fKQor ICAgaW50IGdldGNvbnRleHRfcmVzdWx0ID0gZ2V0Y29udGV4dCgmY29udGV4dC5jb250ZXh0KTsK KyAgIGlmIChnZXRjb250ZXh0X3Jlc3VsdCkKKysjZW5kaWYKKyAgICAgcmV0dXJuIGZhbHNlOwor IAorICNpZiBkZWZpbmVkKF9faTM4Nl9fKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjkv ZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfbWFsbGluZm8ucGF0Y2ggYi9zcmNwa2dz L2VsZWN0cm9uOS9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9tYWxsaW5mby5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOTQxMzEzZTQ5MzkKLS0t IC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9tdXNsLXBhdGNoZXMvY2hy b21pdW0tbXVzbF9tYWxsaW5mby5wYXRjaApAQCAtMCwwICsxLDYxIEBACitkaWZmIC0tZ2l0IGEv YmFzZS9wcm9jZXNzL3Byb2Nlc3NfbWV0cmljc19wb3NpeC5jYyBiL2Jhc2UvcHJvY2Vzcy9wcm9j ZXNzX21ldHJpY3NfcG9zaXguY2MKK2luZGV4IDA0NGJkOGQuLjA1MjEzMjEgMTAwNjQ0CistLS0g YS9iYXNlL3Byb2Nlc3MvcHJvY2Vzc19tZXRyaWNzX3Bvc2l4LmNjCisrKysgYi9iYXNlL3Byb2Nl c3MvcHJvY2Vzc19tZXRyaWNzX3Bvc2l4LmNjCitAQCAtMTEwLDE0ICsxMTAsMTQgQEAgc2l6ZV90 IFByb2Nlc3NNZXRyaWNzOjpHZXRNYWxsb2NVc2FnZSgpIHsKKyAgIG1hbGxvY19zdGF0aXN0aWNz X3Qgc3RhdHMgPSB7MH07CisgICBtYWxsb2Nfem9uZV9zdGF0aXN0aWNzKG51bGxwdHIsICZzdGF0 cyk7CisgICByZXR1cm4gc3RhdHMuc2l6ZV9pbl91c2U7CistI2VsaWYgZGVmaW5lZChPU19MSU5V WCkgfHwgZGVmaW5lZChPU19BTkRST0lEKQorKyNlbGlmIChkZWZpbmVkKE9TX0xJTlVYKSAmJiBk ZWZpbmVkKF9fR0xJQkNfXykpIHx8IGRlZmluZWQoT1NfQU5EUk9JRCkKKyAgIHN0cnVjdCBtYWxs aW5mbyBtaW5mbyA9IG1hbGxpbmZvKCk7CisgI2lmIEJVSUxERkxBRyhVU0VfVENNQUxMT0MpCisg ICByZXR1cm4gbWluZm8udW9yZGJsa3M7CisgI2Vsc2UKKyAgIHJldHVybiBtaW5mby5oYmxraGQg KyBtaW5mby5hcmVuYTsKKyAjZW5kaWYKKy0jZWxpZiBkZWZpbmVkKE9TX0ZVQ0hTSUEpCisrI2Vs c2UKKyAgIC8vIFRPRE8oZnVjaHNpYSk6IE5vdCBjdXJyZW50bHkgZXhwb3NlZC4gaHR0cHM6Ly9j cmJ1Zy5jb20vNzM1MDg3LgorICAgcmV0dXJuIDA7CisgI2VuZGlmCitkaWZmIC0tZ2l0IGEvYmFz ZS90cmFjZV9ldmVudC9tYWxsb2NfZHVtcF9wcm92aWRlci5jYyBiL2Jhc2UvdHJhY2VfZXZlbnQv bWFsbG9jX2R1bXBfcHJvdmlkZXIuY2MKK2luZGV4IGU4OTU5N2MuLmVjYTI1OGMgMTAwNjQ0Cist LS0gYS9iYXNlL3RyYWNlX2V2ZW50L21hbGxvY19kdW1wX3Byb3ZpZGVyLmNjCisrKysgYi9iYXNl L3RyYWNlX2V2ZW50L21hbGxvY19kdW1wX3Byb3ZpZGVyLmNjCitAQCAtMTMyLDcgKzEzMiw3IEBA IGJvb2wgTWFsbG9jRHVtcFByb3ZpZGVyOjpPbk1lbW9yeUR1bXAoY29uc3QgTWVtb3J5RHVtcEFy Z3MmIGFyZ3MsCisgICB9CisgI2VsaWYgZGVmaW5lZChPU19GVUNIU0lBKQorIC8vIFRPRE8oZnVj aHNpYSk6IFBvcnQsIHNlZSBodHRwczovL2NyYnVnLmNvbS83MDY1OTIuCistI2Vsc2UKKysjZWxp ZiBkZWZpbmVkKE9TX0xJTlVYKSAmJiBkZWZpbmVkKF9fR0xJQkNfXykKKyAgIHN0cnVjdCBtYWxs aW5mbyBpbmZvID0gbWFsbGluZm8oKTsKKyAgIERDSEVDS19HRShpbmZvLmFyZW5hICsgaW5mby5o YmxraGQsIGluZm8udW9yZGJsa3MpOworIAorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3N3aWZ0 c2hhZGVyL3RoaXJkX3BhcnR5L2xsdm0tc3ViemVyby9idWlsZC9MaW51eC9pbmNsdWRlL2xsdm0v Q29uZmlnL2NvbmZpZy5oIGIvdGhpcmRfcGFydHkvc3dpZnRzaGFkZXIvdGhpcmRfcGFydHkvbGx2 bS1zdWJ6ZXJvL2J1aWxkL0xpbnV4L2luY2x1ZGUvbGx2bS9Db25maWcvY29uZmlnLmgKK2luZGV4 IGFhOTgyNDIuLjk3YWNjN2MgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9zd2lmdHNoYWRlci90 aGlyZF9wYXJ0eS9sbHZtLXN1Ynplcm8vYnVpbGQvTGludXgvaW5jbHVkZS9sbHZtL0NvbmZpZy9j b25maWcuaAorKysrIGIvdGhpcmRfcGFydHkvc3dpZnRzaGFkZXIvdGhpcmRfcGFydHkvbGx2bS1z dWJ6ZXJvL2J1aWxkL0xpbnV4L2luY2x1ZGUvbGx2bS9Db25maWcvY29uZmlnLmgKK0BAIC0xMzAs NyArMTMwLDcgQEAKKyAvKiAjdW5kZWYgSEFWRV9NQUxMQ1RMICovCisgCisgLyogRGVmaW5lIHRv IDEgaWYgeW91IGhhdmUgdGhlIGBtYWxsaW5mbycgZnVuY3Rpb24uICovCistI2RlZmluZSBIQVZF X01BTExJTkZPIDEKKysvKiAjdW5kZWYgSEFWRV9NQUxMSU5GTyAqLworIAorIC8qIERlZmluZSB0 byAxIGlmIHlvdSBoYXZlIHRoZSA8bWFsbG9jLmg+IGhlYWRlciBmaWxlLiAqLworICNkZWZpbmUg SEFWRV9NQUxMT0NfSCAxCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvc3dpZnRzaGFkZXIvdGhp cmRfcGFydHkvbGx2bS03LjAvY29uZmlncy9saW51eC9pbmNsdWRlL2xsdm0vQ29uZmlnL2NvbmZp Zy5oIGIvdGhpcmRfcGFydHkvc3dpZnRzaGFkZXIvdGhpcmRfcGFydHkvbGx2bS03LjAvY29uZmln cy9saW51eC9pbmNsdWRlL2xsdm0vQ29uZmlnL2NvbmZpZy5oCitpbmRleCA2ZTE3MDIwLi5kNGE5 ZWQwIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvc3dpZnRzaGFkZXIvdGhpcmRfcGFydHkvbGx2 bS03LjAvY29uZmlncy9saW51eC9pbmNsdWRlL2xsdm0vQ29uZmlnL2NvbmZpZy5oCisrKysgYi90 aGlyZF9wYXJ0eS9zd2lmdHNoYWRlci90aGlyZF9wYXJ0eS9sbHZtLTcuMC9jb25maWdzL2xpbnV4 L2luY2x1ZGUvbGx2bS9Db25maWcvY29uZmlnLmgKK0BAIC0xMjIsNyArMTIyLDcgQEAKKyAvKiAj dW5kZWYgSEFWRV9NQUxMQ1RMICovCisKKyAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUg YG1hbGxpbmZvJyBmdW5jdGlvbi4gKi8KKy0jZGVmaW5lIEhBVkVfTUFMTElORk8gMQorKy8qICN1 bmRlZiBIQVZFX01BTExJTkZPICovCisKKyAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUg PG1hbGxvYy5oPiBoZWFkZXIgZmlsZS4gKi8KKyAjZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQorCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0t bXVzbF9wcmVhZF9wd3JpdGU2NC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL211c2wt cGF0Y2hlcy9jaHJvbWl1bS1tdXNsX3ByZWFkX3B3cml0ZTY0LnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yYWVhYWViNzU5MwotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX3ByZWFk X3B3cml0ZTY0LnBhdGNoCkBAIC0wLDAgKzEsMTggQEAKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0 eS9sc3MvbGludXhfc3lzY2FsbF9zdXBwb3J0LmggYi90aGlyZF9wYXJ0eS9sc3MvbGludXhfc3lz Y2FsbF9zdXBwb3J0LmgKK2luZGV4IDVkOWMyZTguLjI2ODIzNDkgMTAwNjQ0CistLS0gYS90aGly ZF9wYXJ0eS9sc3MvbGludXhfc3lzY2FsbF9zdXBwb3J0LmgKKysrKyBiL3RoaXJkX3BhcnR5L2xz cy9saW51eF9zeXNjYWxsX3N1cHBvcnQuaAorQEAgLTE2Niw2ICsxNjYsMTMgQEAgZXh0ZXJuICJD IiB7CisgIyB1bmRlZiBfX05SX3dhaXRwaWQKKyAjZW5kaWYKKyAKKysjaWZkZWYgcHJlYWQ2NAor KyN1bmRlZiBwcmVhZDY0CisrI2VuZGlmCisrI2lmZGVmIHB3cml0ZTY0CisrI3VuZGVmIHB3cml0 ZTY0CisrI2VuZGlmCisrCisgLyogQXMgZ2xpYmMgb2Z0ZW4gcHJvdmlkZXMgc3VidGx5IGluY29t cGF0aWJsZSBkYXRhIHN0cnVjdHVyZXMgKGFuZCBpbXBsaWNpdAorICAqIHdyYXBwZXIgZnVuY3Rp b25zIHRoYXQgY29udmVydCB0aGVtKSwgd2UgcHJvdmlkZSBvdXIgb3duIGtlcm5lbCBkYXRhCisg ICogc3RydWN0dXJlcyBmb3IgdXNlIGJ5IHRoZSBzeXN0ZW0gY2FsbHMuCmRpZmYgLS1naXQgYS9z cmNwa2dzL2VsZWN0cm9uOS9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9wdXNoX2Jh Y2sucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0t bXVzbF9wdXNoX2JhY2sucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAuLmNmZjM0MDI4N2RhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjkvZmls ZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfcHVzaF9iYWNrLnBhdGNoCkBAIC0wLDAgKzEs MTMgQEAKK2RpZmYgLS1naXQgYS9uZXQvc29ja2V0L3VkcF9zb2NrZXRfcG9zaXguY2MgYi9uZXQv c29ja2V0L3VkcF9zb2NrZXRfcG9zaXguY2MKK2luZGV4IDA4YmY3OWMuLjNlZTUzNTMgMTAwNjQ0 CistLS0gYS9uZXQvc29ja2V0L3VkcF9zb2NrZXRfcG9zaXguY2MKKysrKyBiL25ldC9zb2NrZXQv dWRwX3NvY2tldF9wb3NpeC5jYworQEAgLTExOTQsNyArMTE5NCw3IEBAIFNlbmRSZXN1bHQgVURQ U29ja2V0UG9zaXhTZW5kZXI6OkludGVybmFsU2VuZG1tc2dCdWZmZXJzKAorICAgICBtc2dfaW92 LT5wdXNoX2JhY2soe2NvbnN0X2Nhc3Q8Y2hhcio+KGJ1ZmZlci0+ZGF0YSgpKSwgYnVmZmVyLT5s ZW5ndGgoKX0pOworICAgbXNndmVjLT5yZXNlcnZlKGJ1ZmZlcnMuc2l6ZSgpKTsKKyAgIGZvciAo c2l6ZV90IGogPSAwOyBqIDwgYnVmZmVycy5zaXplKCk7IGorKykKKy0gICAgbXNndmVjLT5wdXNo X2JhY2soe3tudWxscHRyLCAwLCAmbXNnX2lvdltqXSwgMSwgbnVsbHB0ciwgMCwgMH0sIDB9KTsK KysgICAgbXNndmVjLT5wdXNoX2JhY2soe3tudWxscHRyLCAwLCAmbXNnX2lvdltqXSwgMSwgMCwg bnVsbHB0ciwgMCwgMCwgMH0sIDB9KTsKKyAgIGludCByZXN1bHQgPSBIQU5ETEVfRUlOVFIoU2Vu ZG1tc2coZmQsICZtc2d2ZWNbMF0sIGJ1ZmZlcnMuc2l6ZSgpLCAwKSk7CisgICBTZW5kUmVzdWx0 IHNlbmRfcmVzdWx0KDAsIDAsIHN0ZDo6bW92ZShidWZmZXJzKSk7CisgICBpZiAocmVzdWx0IDwg MCkgewpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvbXVzbC1wYXRjaGVzL2No cm9taXVtLW11c2xfc3RhY2tfc2l6ZS5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL211 c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX3N0YWNrX3NpemUucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmNmNDFkMjdhZGU2Ci0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfc3RhY2tf c2l6ZS5wYXRjaApAQCAtMCwwICsxLDQxIEBACitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYmxp bmsvcmVuZGVyZXIvcGxhdGZvcm0vd3RmL3N0YWNrX3V0aWwuY2MgYi90aGlyZF9wYXJ0eS9ibGlu ay9yZW5kZXJlci9wbGF0Zm9ybS93dGYvc3RhY2tfdXRpbC5jYworaW5kZXggYjI0MjE2NC4uMWEw YjUxOSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL3d0 Zi9zdGFja191dGlsLmNjCisrKysgYi90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9y bS93dGYvc3RhY2tfdXRpbC5jYworQEAgLTI4LDcgKzI4LDcgQEAKKyAvLyBGSVhNRTogT24gTWFj IE9TWCBhbmQgTGludXgsIHRoaXMgbWV0aG9kIGNhbm5vdCBlc3RpbWF0ZSBzdGFjayBzaXplCisg Ly8gY29ycmVjdGx5IGZvciB0aGUgbWFpbiB0aHJlYWQuCisgCistI2VsaWYgZGVmaW5lZChfX0dM SUJDX18pIHx8IGRlZmluZWQoT1NfQU5EUk9JRCkgfHwgZGVmaW5lZChPU19GUkVFQlNEKSB8fCBc CisrI2VsaWYgZGVmaW5lZChPU19MSU5VWCkgfHwgZGVmaW5lZChPU19BTkRST0lEKSB8fCBkZWZp bmVkKE9TX0ZSRUVCU0QpIHx8IFwKKyAgICAgZGVmaW5lZChPU19GVUNIU0lBKQorICAgLy8gcHRo cmVhZF9nZXRhdHRyX25wKCkgY2FuIGZhaWwgaWYgdGhlIHRocmVhZCBpcyBub3QgaW52b2tlZCBi eQorICAgLy8gcHRocmVhZF9jcmVhdGUoKSAoZS5nLiwgdGhlIG1haW4gdGhyZWFkIG9mIGJsaW5r X3VuaXR0ZXN0cykuCitAQCAtNTUsNiArNTUsOSBAQCBzaXplX3QgR2V0VW5kZXJlc3RpbWF0ZWRT dGFja1NpemUoKSB7CisgICBwdGhyZWFkX2F0dHJfZGVzdHJveSgmYXR0cik7CisgI2VuZGlmCisg CisrI2lmIGRlZmluZWQoT1NfTElOVVgpICYmICFkZWZpbmVkKF9fR0xJQkNfXykKKysgIHJldHVy biAwOworKyNlbHNlCisgICAvLyBSZXR1cm4gYSA1MTJrIHN0YWNrIHNpemUsIChjb25zZXJ2YXRp dmVseSkgYXNzdW1pbmcgdGhlIGZvbGxvd2luZzoKKyAgIC8vICAtIHRoYXQgc2l6ZSBpcyBtdWNo IGxvd2VyIHRoYW4gdGhlIHB0aHJlYWRzIGRlZmF1bHQgKHg4NiBwdGhyZWFkcyBoYXMgYSAyTQor ICAgLy8gICAgZGVmYXVsdC4pCitAQCAtNjIsNiArNjUsOCBAQCBzaXplX3QgR2V0VW5kZXJlc3Rp bWF0ZWRTdGFja1NpemUoKSB7CisgICAvLyAgICBsb3cgYXMgNTEyay4KKyAgIC8vCisgICByZXR1 cm4gNTEyICogMTAyNDsKKysjZW5kaWYKKysKKyAjZWxpZiBkZWZpbmVkKE9TX01BQ09TWCkKKyAg IC8vIHB0aHJlYWRfZ2V0X3N0YWNrc2l6ZV9ucCgpIHJldHVybnMgdG9vIGxvdyBhIHZhbHVlIGZv ciB0aGUgbWFpbiB0aHJlYWQgb24KKyAgIC8vIE9TWCAxMC45LAorQEAgLTk3LDcgKzEwMiw3IEBA IHJldHVybiBUaHJlYWRpbmc6OlRocmVhZFN0YWNrU2l6ZSgpOworIH0KKyAKKyB2b2lkKiBHZXRT dGFja1N0YXJ0KCkgeworLSNpZiBkZWZpbmVkKF9fR0xJQkNfXykgfHwgZGVmaW5lZChPU19BTkRS T0lEKSB8fCBkZWZpbmVkKE9TX0ZSRUVCU0QpIHx8IFwKKysjaWYgZGVmaW5lZChPU19MSU5VWCkg fHwgZGVmaW5lZChPU19BTkRST0lEKSB8fCBkZWZpbmVkKE9TX0ZSRUVCU0QpIHx8IFwKKyAgICAg ZGVmaW5lZChPU19GVUNIU0lBKQorICAgcHRocmVhZF9hdHRyX3QgYXR0cjsKKyAgIGludCBlcnJv cjsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJv bWl1bS1tdXNsX3N0YWNrX3RyYWNlLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvbXVz bC1wYXRjaGVzL2Nocm9taXVtLW11c2xfc3RhY2tfdHJhY2UucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjlhMWYyYjA0NDU4Ci0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfc3RhY2tf dHJhY2UucGF0Y2gKQEAgLTAsMCArMSw0NCBAQAorZGlmZiAtLWdpdCBhL2Jhc2UvZGVidWcvc3Rh Y2tfdHJhY2UuY2MgYi9iYXNlL2RlYnVnL3N0YWNrX3RyYWNlLmNjCitpbmRleCBkOGNhODIyLi5m ZmUxZjA4IDEwMDY0NAorLS0tIGEvYmFzZS9kZWJ1Zy9zdGFja190cmFjZS5jYworKysrIGIvYmFz ZS9kZWJ1Zy9zdGFja190cmFjZS5jYworQEAgLTIyNSw3ICsyMjUsOSBAQCB2b2lkIFN0YWNrVHJh Y2U6OlByaW50KCkgY29uc3QgeworIH0KKworIHZvaWQgU3RhY2tUcmFjZTo6T3V0cHV0VG9TdHJl YW0oc3RkOjpvc3RyZWFtKiBvcykgY29uc3QgeworKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgJiYg IWRlZmluZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKyAgIE91dHB1dFRvU3RyZWFt V2l0aFByZWZpeChvcywgbnVsbHB0cik7CisrI2VuZGlmCisgfQorCisgc3RkOjpzdHJpbmcgU3Rh Y2tUcmFjZTo6VG9TdHJpbmcoKSBjb25zdCB7CitAQCAtMjMzLDE0ICsyMzMsMTQgQEAgc3RkOjpz dHJpbmcgU3RhY2tUcmFjZTo6VG9TdHJpbmcoKSBjb25zdCB7CisgfQorIHN0ZDo6c3RyaW5nIFN0 YWNrVHJhY2U6OlRvU3RyaW5nV2l0aFByZWZpeChjb25zdCBjaGFyKiBwcmVmaXhfc3RyaW5nKSBj b25zdCB7CisgICBzdGQ6OnN0cmluZ3N0cmVhbSBzdHJlYW07CistI2lmICFkZWZpbmVkKF9fVUNM SUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisrI2lmIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVm aW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorICAgT3V0cHV0VG9TdHJlYW1XaXRo UHJlZml4KCZzdHJlYW0sIHByZWZpeF9zdHJpbmcpOworICNlbmRpZgorICAgcmV0dXJuIHN0cmVh bS5zdHIoKTsKKyB9CisgCisgc3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSYg b3MsIGNvbnN0IFN0YWNrVHJhY2UmIHMpIHsKKy0jaWYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiAh ZGVmaW5lZChfQUlYKQorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX19VQ0xJ QkNfXykgJiAhZGVmaW5lZChfQUlYKQorICAgcy5PdXRwdXRUb1N0cmVhbSgmb3MpOworICNlbHNl CisgICBvcyA8PCAiU3RhY2tUcmFjZTo6T3V0cHV0VG9TdHJlYW0gbm90IGltcGxlbWVudGVkLiI7 CitkaWZmIC0tZ2l0IGEvYmFzZS9sb2dnaW5nLmNjIGIvYmFzZS9sb2dnaW5nLmNjCitpbmRleCAz NmI4YmZjLi5kZDgzMGZlIDEwMDY0NAorLS0tIGEvYmFzZS9sb2dnaW5nLmNjCisrKysgYi9iYXNl L2xvZ2dpbmcuY2MKK0BAIC02MDcsNyArNjA3LDcgQEAgTG9nTWVzc2FnZTo6TG9nTWVzc2FnZShj b25zdCBjaGFyKiBmaWxlLCBpbnQgbGluZSwgTG9nU2V2ZXJpdHkgc2V2ZXJpdHksCisgTG9nTWVz c2FnZTo6fkxvZ01lc3NhZ2UoKSB7CisgICBzaXplX3Qgc3RhY2tfc3RhcnQgPSBzdHJlYW1fLnRl bGxwKCk7CisgI2lmICFkZWZpbmVkKE9GRklDSUFMX0JVSUxEKSAmJiAhZGVmaW5lZChPU19OQUNM KSAmJiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiBcCistICAgICFkZWZpbmVkKE9TX0FJWCkKKysg ICAgIWRlZmluZWQoT1NfQUlYKSAmJiBkZWZpbmVkKF9fR0xJQkNfXykKKyAgIGlmIChzZXZlcml0 eV8gPT0gTE9HX0ZBVEFMICYmICFiYXNlOjpkZWJ1Zzo6QmVpbmdEZWJ1Z2dlZCgpKSB7CisgICAg IC8vIEluY2x1ZGUgYSBzdGFjayB0cmFjZSBvbiBhIGZhdGFsLCB1bmxlc3MgYSBkZWJ1Z2dlciBp cyBhdHRhY2hlZC4KKyAgICAgYmFzZTo6ZGVidWc6OlN0YWNrVHJhY2Ugc3RhY2tfdHJhY2U7CmRp ZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0t bXVzbF90Y3BfbGlzdGVuLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvbXVzbC1wYXRj aGVzL2Nocm9taXVtLW11c2xfdGNwX2xpc3Rlbi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uZmE2MjMxN2IxMWEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dz L2VsZWN0cm9uOS9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF90Y3BfbGlzdGVuLnBh dGNoCkBAIC0wLDAgKzEsMTQgQEAKK2RpZmYgLS1naXQgYS9jb250ZW50L3B1YmxpYy9jb21tb24v c29ja2V0X3Blcm1pc3Npb25fcmVxdWVzdC5oIGIvY29udGVudC9wdWJsaWMvY29tbW9uL3NvY2tl dF9wZXJtaXNzaW9uX3JlcXVlc3QuaAoraW5kZXggNzMxNjYyMS4uNjE3MTIxOSAxMDA2NDQKKy0t LSBhL2NvbnRlbnQvcHVibGljL2NvbW1vbi9zb2NrZXRfcGVybWlzc2lvbl9yZXF1ZXN0LmgKKysr KyBiL2NvbnRlbnQvcHVibGljL2NvbW1vbi9zb2NrZXRfcGVybWlzc2lvbl9yZXF1ZXN0LmgKK0BA IC05LDYgKzksOSBAQAorIAorICNpbmNsdWRlIDxzdHJpbmc+CisgCisrI2lmZGVmIFRDUF9MSVNU RU4KKysjdW5kZWYgVENQX0xJU1RFTgorKyNlbmRpZgorIAorIG5hbWVzcGFjZSBjb250ZW50IHsK KyAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJv bWl1bS1tdXNsX3dvcmRzaXplLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvbXVzbC1w YXRjaGVzL2Nocm9taXVtLW11c2xfd29yZHNpemUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAuLjYyMDhjZmZhZmJlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy9lbGVjdHJvbjkvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfd29yZHNpemUucGF0 Y2gKQEAgLTAsMCArMSwyNCBAQAorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2Jy ZWFrcGFkL3NyYy9jb21tb24vbGludXgvZWxmX2NvcmVfZHVtcC5oIGIvdGhpcmRfcGFydHkvYnJl YWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9lbGZfY29yZV9kdW1wLmgKK2luZGV4IGQw M2M3YTguLjc4Y2E5ZGQgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3Bh ZC9zcmMvY29tbW9uL2xpbnV4L2VsZl9jb3JlX2R1bXAuaAorKysrIGIvdGhpcmRfcGFydHkvYnJl YWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9lbGZfY29yZV9kdW1wLmgKK0BAIC0zNiw2 ICszNiw3IEBACisgI2luY2x1ZGUgPGVsZi5oPgorICNpbmNsdWRlIDxsaW5rLmg+CisgI2luY2x1 ZGUgPHN0ZGRlZi5oPgorKyNpbmNsdWRlIDxsaW1pdHMuaD4KKyAKKyAjaW5jbHVkZSAiY29tbW9u L21lbW9yeV9yYW5nZS5oIgorIAorQEAgLTUxLDkgKzUyLDkgQEAgY2xhc3MgRWxmQ29yZUR1bXAg eworICAgdHlwZWRlZiBFbGZXKFBoZHIpIFBoZHI7CisgICB0eXBlZGVmIEVsZlcoV29yZCkgV29y ZDsKKyAgIHR5cGVkZWYgRWxmVyhBZGRyKSBBZGRyOworLSNpZiBfX1dPUkRTSVpFID09IDMyCisr I2lmIFVMT05HX01BWCA9PSAweGZmZmZmZmZmCisgICBzdGF0aWMgY29uc3QgaW50IGtDbGFzcyA9 IEVMRkNMQVNTMzI7CistI2VsaWYgX19XT1JEU0laRSA9PSA2NAorKyNlbGlmIFVMT05HX01BWCA9 PSAweGZmZmZmZmZmZmZmZmZmZmYKKyAgIHN0YXRpYyBjb25zdCBpbnQga0NsYXNzID0gRUxGQ0xB U1M2NDsKKyAjZWxzZQorICNlcnJvciAiVW5zdXBwb3J0ZWQgX19XT1JEU0laRSBmb3IgRWxmQ29y ZUR1bXAuIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9jaHJv bWl1bS04My1nY2MtMTAucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2No cm9taXVtLTgzLWdjYy0xMC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uOTc0YjQ5Y2RlNzAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uOS9m aWxlcy9wYXRjaGVzL2Nocm9taXVtLTgzLWdjYy0xMC5wYXRjaApAQCAtMCwwICsxLDY0IEBACitG cm9tIGU0NzNmNDEyODRjY2M4ZmE0YmM0NjIyZDA4NzE5NGIxOGExZWMyM2EgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCitGcm9tOiBTdGVwaGFuIEhhcnRtYW5uIDxzdGhhMDlAZ29vZ2xlbWFpbC5j b20+CitEYXRlOiBUdWUsIDcgQXByIDIwMjAgMTY6Mzc6MTAgKzAwMDAKK1N1YmplY3Q6IFtQQVRD SF0gR0NDOiBmaXggaW5jbHVkZXMgZm9yIGdjYy0xMAorCistLS0KKyBjaHJvbWUvYnJvd3Nlci9z ZWFyY2gvYmFja2dyb3VuZC9udHBfYmFja2dyb3VuZHMuaCAgICAgICAgICAgICAgfCAxICsKKyB0 aGlyZF9wYXJ0eS93ZWJydGMvY2FsbC9ydHhfcmVjZWl2ZV9zdHJlYW0uaCAgICAgICAgICAgICAg ICAgICAgfCAxICsKKyAuLi4vd2VicnRjL21vZHVsZXMvYXVkaW9fcHJvY2Vzc2luZy9hZWMzL2Ns b2NrZHJpZnRfZGV0ZWN0b3IuaCAgfCAxICsKKyB1aS9nZngvbGludXgvZHJtX3V0aWxfbGludXgu aCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyICsrCisgNSBmaWxlcyBjaGFu Z2VkLCA2IGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL2Nocm9tZS9icm93c2VyL3NlYXJj aC9iYWNrZ3JvdW5kL250cF9iYWNrZ3JvdW5kcy5oIGIvY2hyb21lL2Jyb3dzZXIvc2VhcmNoL2Jh Y2tncm91bmQvbnRwX2JhY2tncm91bmRzLmgKK2luZGV4IDdhZmMwYTIuLmVhNTgxOGUgMTAwNjQ0 CistLS0gYS9jaHJvbWUvYnJvd3Nlci9zZWFyY2gvYmFja2dyb3VuZC9udHBfYmFja2dyb3VuZHMu aAorKysrIGIvY2hyb21lL2Jyb3dzZXIvc2VhcmNoL2JhY2tncm91bmQvbnRwX2JhY2tncm91bmRz LmgKK0BAIC02LDYgKzYsNyBAQAorICNkZWZpbmUgQ0hST01FX0JST1dTRVJfU0VBUkNIX0JBQ0tH Uk9VTkRfTlRQX0JBQ0tHUk9VTkRTX0hfCisgCisgI2luY2x1ZGUgPGFycmF5PgorKyNpbmNsdWRl IDxjc3RkZGVmPgorIAorIGNsYXNzIEdVUkw7CisgCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkv d2VicnRjL2NhbGwvcnR4X3JlY2VpdmVfc3RyZWFtLmggYi90aGlyZF9wYXJ0eS93ZWJydGMvY2Fs bC9ydHhfcmVjZWl2ZV9zdHJlYW0uaAoraW5kZXggOGZmYTQ0MC4uMTEzYTgxNiAxMDA2NDQKKy0t LSBhL3RoaXJkX3BhcnR5L3dlYnJ0Yy9jYWxsL3J0eF9yZWNlaXZlX3N0cmVhbS5oCisrKysgYi90 aGlyZF9wYXJ0eS93ZWJydGMvY2FsbC9ydHhfcmVjZWl2ZV9zdHJlYW0uaAorQEAgLTEyLDYgKzEy LDcgQEAKKyAjZGVmaW5lIENBTExfUlRYX1JFQ0VJVkVfU1RSRUFNX0hfCisgCisgI2luY2x1ZGUg PG1hcD4KKysjaW5jbHVkZSA8Y3N0ZGludD4KKyAKKyAjaW5jbHVkZSAiY2FsbC9ydHBfcGFja2V0 X3NpbmtfaW50ZXJmYWNlLmgiCisgCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvd2VicnRjL21v ZHVsZXMvYXVkaW9fcHJvY2Vzc2luZy9hZWMzL2Nsb2NrZHJpZnRfZGV0ZWN0b3IuaCBiL3RoaXJk X3BhcnR5L3dlYnJ0Yy9tb2R1bGVzL2F1ZGlvX3Byb2Nlc3NpbmcvYWVjMy9jbG9ja2RyaWZ0X2Rl dGVjdG9yLmgKK2luZGV4IDIyNTI4YzkuLjY5ZTYyNGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0 eS93ZWJydGMvbW9kdWxlcy9hdWRpb19wcm9jZXNzaW5nL2FlYzMvY2xvY2tkcmlmdF9kZXRlY3Rv ci5oCisrKysgYi90aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy9hdWRpb19wcm9jZXNzaW5nL2Fl YzMvY2xvY2tkcmlmdF9kZXRlY3Rvci5oCitAQCAtMTIsNiArMTIsNyBAQAorICNkZWZpbmUgTU9E VUxFU19BVURJT19QUk9DRVNTSU5HX0FFQzNfQ0xPQ0tEUklGVF9ERVRFQ1RPUl9IXworIAorICNp bmNsdWRlIDxhcnJheT4KKysjaW5jbHVkZSA8Y3N0ZGRlZj4KKyAKKyBuYW1lc3BhY2Ugd2VicnRj IHsKKyAKK2RpZmYgLS1naXQgYS91aS9nZngvbGludXgvZHJtX3V0aWxfbGludXguaCBiL3VpL2dm eC9saW51eC9kcm1fdXRpbF9saW51eC5oCitpbmRleCA4NmZmMmViLi45OTBmMTJjIDEwMDY0NAor LS0tIGEvdWkvZ2Z4L2xpbnV4L2RybV91dGlsX2xpbnV4LmgKKysrKyBiL3VpL2dmeC9saW51eC9k cm1fdXRpbF9saW51eC5oCitAQCAtNyw2ICs3LDggQEAKKyAKKyAjaW5jbHVkZSAidWkvZ2Z4L2J1 ZmZlcl90eXBlcy5oIgorIAorKyNpbmNsdWRlIDxjc3RkaW50PgorKworIG5hbWVzcGFjZSB1aSB7 CisgCisgaW50IEdldEZvdXJDQ0Zvcm1hdEZyb21CdWZmZXJGb3JtYXQoZ2Z4OjpCdWZmZXJGb3Jt YXQgZm9ybWF0KTsKKy0tIAorMi4yNC4xCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb245 L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tYWRkLW1pc3NpbmctYWxnb3JpdGhtLWhlYWRlci1pbi1j cnhfaW5zdGFsbF9lcnJvci5jYy5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNo ZXMvY2hyb21pdW0tYWRkLW1pc3NpbmctYWxnb3JpdGhtLWhlYWRlci1pbi1jcnhfaW5zdGFsbF9l cnJvci5jYy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNTcw ZjdiMzE5NTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRj aGVzL2Nocm9taXVtLWFkZC1taXNzaW5nLWFsZ29yaXRobS1oZWFkZXItaW4tY3J4X2luc3RhbGxf ZXJyb3IuY2MucGF0Y2gKQEAgLTAsMCArMSwyOSBAQAorRnJvbSAyYjlkNmRhYTBhYjVjZTQ1ZWM1 NTU1NDY2ZDVhNWE1ODNhMDIwZWE4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRGFu aWVsIFBsYXlmYWlyIENhbCA8ZGFuaWVsLnBsYXlmYWlyLmNhbEBnbWFpbC5jb20+CitEYXRlOiBT YXQsIDE4IEFwciAyMDIwIDAwOjI3OjM4ICswMDAwCitTdWJqZWN0OiBbUEFUQ0hdIEFkZCBtaXNz aW5nIGFsZ29yaXRobSBoZWFkZXIgaW4gY3J4X2luc3RhbGxfZXJyb3IuY2MKKworVGhpcyBpcyBu ZWVkZWQgZm9yIHRoZSB1c2Ugb2Ygc3RkOjpmaW5kLgorCitDaGFuZ2UtSWQ6IEkyZGM0M2IzODg3 YzQ2Nzk4NmM1MzQ2YmU1YTllMjdhOTg3ZTFlNWIzCitSZXZpZXdlZC1vbjogaHR0cHM6Ly9jaHJv bWl1bS1yZXZpZXcuZ29vZ2xlc291cmNlLmNvbS9jL2Nocm9taXVtL3NyYy8rLzIxNTIzMzMKK1Jl dmlld2VkLWJ5OiBLZW4gUm9ja290IDxyb2Nrb3RAZ29vZ2xlLmNvbT4KK0NvbW1pdC1RdWV1ZTog S2VuIFJvY2tvdCA8cm9ja290QGdvb2dsZS5jb20+CitDci1Db21taXQtUG9zaXRpb246IHJlZnMv aGVhZHMvbWFzdGVyQHsjNzYwMjcyfQorLS0tCisgZXh0ZW5zaW9ucy9icm93c2VyL2luc3RhbGwv Y3J4X2luc3RhbGxfZXJyb3IuY2MgfCAyICsrCisgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9u cygrKQorCitkaWZmIC0tZ2l0IGEvZXh0ZW5zaW9ucy9icm93c2VyL2luc3RhbGwvY3J4X2luc3Rh bGxfZXJyb3IuY2MgYi9leHRlbnNpb25zL2Jyb3dzZXIvaW5zdGFsbC9jcnhfaW5zdGFsbF9lcnJv ci5jYworaW5kZXggYTk3NjViYjBhNWEuLmJkMGQzZTM1YTE2IDEwMDY0NAorLS0tIGEvZXh0ZW5z aW9ucy9icm93c2VyL2luc3RhbGwvY3J4X2luc3RhbGxfZXJyb3IuY2MKKysrKyBiL2V4dGVuc2lv bnMvYnJvd3Nlci9pbnN0YWxsL2NyeF9pbnN0YWxsX2Vycm9yLmNjCitAQCAtNCw2ICs0LDggQEAK KyAKKyAjaW5jbHVkZSAiZXh0ZW5zaW9ucy9icm93c2VyL2luc3RhbGwvY3J4X2luc3RhbGxfZXJy b3IuaCIKKyAKKysjaW5jbHVkZSA8YWxnb3JpdGhtPgorKworICNpbmNsdWRlICJiYXNlL2xvZ2dp bmcuaCIKKyAjaW5jbHVkZSAiZXh0ZW5zaW9ucy9icm93c2VyL2luc3RhbGwvc2FuZGJveGVkX3Vu cGFja2VyX2ZhaWx1cmVfcmVhc29uLmgiCisgCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9u OS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWF2b2lkLWRvdWJsZS1kZXN0cnVjdGlvbi1vZi1TZXJ2 aWNlV29ya2VyT2JqZWN0SG9zdC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNo ZXMvY2hyb21pdW0tYXZvaWQtZG91YmxlLWRlc3RydWN0aW9uLW9mLVNlcnZpY2VXb3JrZXJPYmpl Y3RIb3N0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41ZTFk ZjAwNWM5NgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNo ZXMvY2hyb21pdW0tYXZvaWQtZG91YmxlLWRlc3RydWN0aW9uLW9mLVNlcnZpY2VXb3JrZXJPYmpl Y3RIb3N0LnBhdGNoCkBAIC0wLDAgKzEsMTM4IEBACitGcm9tIGJkNTljZTMyNjI5ZWY2ODQ2MjQ4 MjE0MTljNDM5NjdiNzNkMjk4OWUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBIaXJv a2kgTmFrYWdhd2EgPG5oaXJva2lAY2hyb21pdW0ub3JnPgorRGF0ZTogRnJpLCA4IE1heSAyMDIw IDA4OjI1OjMxICswMDAwCitTdWJqZWN0OiBbUEFUQ0hdIFNlcnZpY2VXb3JrZXI6IEF2b2lkIGRv dWJsZSBkZXN0cnVjdGlvbiBvZgorIFNlcnZpY2VXb3JrZXJPYmplY3RIb3N0IG9uIGNvbm5lY3Rp b24gZXJyb3IKKworVGhpcyBDTCBhdm9pZHMgdGhlIGNhc2Ugd2hlcmUgU2VydmljZVdvcmtlck9i amVjdEhvc3QgaXMgZGVzdHJveWVkIHR3aWNlCitvbiBTZXJ2aWNlV29ya2VyT2JqZWN0SG9zdDo6 T25Db25uZWN0aW9uRXJyb3IoKSB3aGVuIENocm9taXVtIGlzIGJ1aWx0Cit3aXRoIHRoZSBHQ0Mg YnVpbGQgdG9vbGNoYWluLgorCis+IEhvdyBkb2VzIHRoZSBpc3N1ZSBoYXBwZW4/CisKK1NlcnZp Y2VXb3JrZXJPYmplY3RIb3N0IGhhcyBhIGN5Y2xpYyByZWZlcmVuY2UgbGlrZSB0aGlzOgorCitT ZXJ2aWNlV29ya2VyT2JqZWN0SG9zdAorICAtLShbMV0gc2NvcGVkX3JlZnB0ciktLT4gU2Vydmlj ZVdvcmtlclZlcnNpb24KKyAgICAtLShbMl0gc3RkOjp1bmlxdWVfcHRyKS0tPiBTZXJ2aWNlV29y a2VyUHJvdmlkZXJIb3N0CisgICAgICAtLShbM10gc3RkOjp1bmlxdWVfcHRyKS0tPiBTZXJ2aWNl V29ya2VyQ29udGFpbmVySG9zdAorICAgICAgICAtLShbNF0gc3RkOjp1bmlxdWVfcHRyKS0tPiBT ZXJ2aWNlV29ya2VyT2JqZWN0SG9zdAorCitOb3RlIHRoYXQgU2VydmljZVdvcmtlckNvbnRhaW5l ckhvc3QgbWFuYWdlcyBTZXJ2aWNlV29ya2VyT2JqZWN0SG9zdCBpbgorbWFwPGludDY0X3QgdmVy c2lvbl9pZCwgc3RkOjp1bmlxdWVfcHRyPFNlcnZpY2VXb3JrZXJPYmplY3RIb3N0Pj4uCisKK1do ZW4gU2VydmljZVdvcmtlck9iamVjdEhvc3Q6Ok9uQ29ubmVjdGlvbkVycm9yKCkgaXMgY2FsbGVk LCB0aGUKK2Z1bmN0aW9uIHJlbW92ZXMgdGhlIHJlZmVyZW5jZSBbNF0gZnJvbSB0aGUgbWFwLCBh bmQgZGVzdHJveXMKK1NlcnZpY2VXb3JrZXJPYmplY3RIb3N0LiBJZiB0aGUgb2JqZWN0IGhvc3Qg aGFzIHRoZSBsYXN0IHJlZmVyZW5jZSBbMV0KK3RvIFNlcnZpY2VXb3JrZXJWZXJzaW9uLCB0aGUg ZGVzdHJ1Y3Rpb24gYWxzbyBjdXRzIG9mZiB0aGUgcmVmZXJlbmNlcworWzJdIGFuZCBbM10sIGFu ZCBkZXN0cm95cyBTZXJ2aWNlV29ya2VyUHJvdmlkZXJIb3N0IGFuZAorU2VydmljZVdvcmtlckNv bnRhaW5lckhvc3QuCisKK1RoaXMgc2VlbXMgdG8gd29yayB3ZWxsIG9uIHRoZSBDaHJvbWl1bSdz IGRlZmF1bHQgdG9vbGNoYWluLCBidXQgbm90Cit3b3JrIG9uIHRoZSBHQ0MgdG9vbGNoYWluLiBB Y2NvcmRpbmcgdG8gdGhlIHJlcG9ydCwgZGVzdHJ1Y3Rpb24gb2YKK1NlcnZpY2VXb3JrZXJDb250 YWluZXJIb3N0IGhhcHBlbnMgd2hpbGUgdGhlIG1hcCBvd25lZCBieSB0aGUgY29udGFpbmVyCito b3N0IGlzIGVyYXNpbmcgdGhlIFNlcnZpY2VXb3JrZXJPYmplY3RIb3N0LCBhbmQgdGhpcyByZXN1 bHRzIGluIGNyYXNoCitkdWUgdG8gZG91YmxlIGRlc3RydWN0aW9uIG9mIHRoZSBvYmplY3QgaG9z dC4KKworSSBkb24ndCBrbm93IHRoZSByZWFzb24gd2h5IHRoaXMgaGFwcGVucyBvbmx5IG9uIHRo ZSBHQ0MgdG9vbGNoYWluLCBidXQKK0kgc3VzcGVjdCB0aGUgb3JkZXIgb2Ygb2JqZWN0IGRlc3Ry dWN0aW9uIG9uIHN0ZDo6bWFwOjplcmFzZSgpIGNvdWxkIGJlCitkaWZmZXJlbnQgZGVwZW5kaW5n IG9uIHRoZSB0b29sY2hhaW5zLgorCis+IEhvdyBkb2VzIHRoaXMgQ0wgZml4IHRoaXM/CisKK1Ro ZSBpZGVhbCBmaXggaXMgdG8gcmVkZXNpZ24gdGhlIG93bmVyc2hpcCBtb2RlbCBvZgorU2Vydmlj ZVdvcmtlclZlcnNpb24sIGJ1dCBpdCdzIG5vdCBmZWFzaWJsZSBpbiB0aGUgc2hvcnQgdGVybS4K KworSW5zdGVhZCwgdGhpcyBDTCBhdm9pZHMgZGVzdHJ1Y3Rpb24gb2YgU2VydmljZVdvcmtlck9i amVjdEhvc3Qgb24KK3N0ZDo6bWFwOjplcmFzZSgpLiBUaGUgbmV3IGNvZGUgdGFrZXMgdGhlIG93 bmVyc2hpcCBvZiB0aGUgb2JqZWN0IGhvc3QKK2Zyb20gdGhlIG1hcCBmaXJzdCwgYW5kIHRoZW4g ZXJhc2VzIHRoZSBlbnRyeSBmcm9tIHRoZSBtYXAuIFRoaXMKK3NlcGFyYXRlcyB0aW1pbmdzIHRv IGVyYXNlIHRoZSBtYXAgZW50cnkgYW5kIHRvIGRlc3Ryb3kgdGhlIG9iamVjdCBob3N0LAorc28g dGhlIGNyYXNoIHNob3VsZCBubyBsb25nZXIgaGFwcGVuLgorCitCdWc6IDEwNTY1OTgKK0NoYW5n ZS1JZDogSWQzMDY1NGNiNTc1YmM1NTdjNDIwNDRkNmYwYzZmMWY5YmZhZWQ2MTMKK1Jldmlld2Vk LW9uOiBodHRwczovL2Nocm9taXVtLXJldmlldy5nb29nbGVzb3VyY2UuY29tL2MvY2hyb21pdW0v c3JjLysvMjA5NDQ5NgorUmV2aWV3ZWQtYnk6IE1ha290byBTaGltYXp1IDxzaGltYXp1QGNocm9t aXVtLm9yZz4KK0NvbW1pdC1RdWV1ZTogSGlyb2tpIE5ha2FnYXdhIDxuaGlyb2tpQGNocm9taXVt Lm9yZz4KK0NyLUNvbW1pdC1Qb3NpdGlvbjogcmVmcy9oZWFkcy9tYXN0ZXJAeyM3NjY3NzB9Cist LS0KKyAuLi4vc2VydmljZV93b3JrZXJfY29udGFpbmVyX2hvc3QuY2MgICAgICAgICAgfCAxMCAr KysrKworIC4uLi9zZXJ2aWNlX3dvcmtlcl9vYmplY3RfaG9zdF91bml0dGVzdC5jYyAgICB8IDM4 ICsrKysrKysrKysrKysrKysrKysKKyAyIGZpbGVzIGNoYW5nZWQsIDQ4IGluc2VydGlvbnMoKykK KworZGlmZiAtLWdpdCBhL2NvbnRlbnQvYnJvd3Nlci9zZXJ2aWNlX3dvcmtlci9zZXJ2aWNlX3dv cmtlcl9jb250YWluZXJfaG9zdC5jYyBiL2NvbnRlbnQvYnJvd3Nlci9zZXJ2aWNlX3dvcmtlci9z ZXJ2aWNlX3dvcmtlcl9jb250YWluZXJfaG9zdC5jYworaW5kZXggZWM3ZmIxNDQ5YWYuLjk4YzYy MDkzYjBlIDEwMDY0NAorLS0tIGEvY29udGVudC9icm93c2VyL3NlcnZpY2Vfd29ya2VyL3NlcnZp Y2Vfd29ya2VyX2NvbnRhaW5lcl9ob3N0LmNjCisrKysgYi9jb250ZW50L2Jyb3dzZXIvc2Vydmlj ZV93b3JrZXIvc2VydmljZV93b3JrZXJfY29udGFpbmVyX2hvc3QuY2MKK0BAIC02NjksNiArNjY5 LDE2IEBAIHZvaWQgU2VydmljZVdvcmtlckNvbnRhaW5lckhvc3Q6OlJlbW92ZVNlcnZpY2VXb3Jr ZXJPYmplY3RIb3N0KAorICAgICBpbnQ2NF90IHZlcnNpb25faWQpIHsKKyAgIERDSEVDS19DVVJS RU5UTFlfT04oU2VydmljZVdvcmtlckNvbnRleHQ6OkdldENvcmVUaHJlYWRJZCgpKTsKKyAgIERD SEVDSyhiYXNlOjpDb250YWlucyhzZXJ2aWNlX3dvcmtlcl9vYmplY3RfaG9zdHNfLCB2ZXJzaW9u X2lkKSk7CisrCisrICAvLyBTZXJ2aWNlV29ya2VyT2JqZWN0SG9zdCB0byBiZSBkZWxldGVkIG1h eSBoYXZlIHRoZSBsYXN0IHJlZmVyZW5jZSB0bworKyAgLy8gU2VydmljZVdvcmtlclZlcnNpb24g dGhhdCBpbmRpcmVjdGx5IG93bnMgdGhpcyBTZXJ2aWNlV29ya2VyQ29udGFpbmVySG9zdC4KKysg IC8vIElmIHdlIGVyYXNlIHRoZSBvYmplY3QgaG9zdCBkaXJlY3RseSBmcm9tIHRoZSBtYXAsIHx0 aGlzfCBjb3VsZCBiZSBkZWxldGVkCisrICAvLyBkdXJpbmcgdGhlIG1hcCBvcGVyYXRpb24gYW5k IG1heSBjcmFzaC4gVG8gYXZvaWQgdGhlIGNhc2UsIHdlIHRha2UgdGhlCisrICAvLyBvd25lcnNo aXAgb2YgdGhlIG9iamVjdCBob3N0IGZyb20gdGhlIG1hcCBmaXJzdCwgYW5kIHRoZW4gZXJhc2Ug dGhlIGVudHJ5CisrICAvLyBmcm9tIHRoZSBtYXAuIFNlZSBodHRwczovL2NyYnVnLmNvbS8xMDU2 NTk4IGZvciBkZXRhaWxzLgorKyAgc3RkOjp1bmlxdWVfcHRyPFNlcnZpY2VXb3JrZXJPYmplY3RI b3N0PiB0b19iZV9kZWxldGVkID0KKysgICAgICBzdGQ6Om1vdmUoc2VydmljZV93b3JrZXJfb2Jq ZWN0X2hvc3RzX1t2ZXJzaW9uX2lkXSk7CisrICBEQ0hFQ0sodG9fYmVfZGVsZXRlZCk7CisgICBz ZXJ2aWNlX3dvcmtlcl9vYmplY3RfaG9zdHNfLmVyYXNlKHZlcnNpb25faWQpOworIH0KKyAKK2Rp ZmYgLS1naXQgYS9jb250ZW50L2Jyb3dzZXIvc2VydmljZV93b3JrZXIvc2VydmljZV93b3JrZXJf b2JqZWN0X2hvc3RfdW5pdHRlc3QuY2MgYi9jb250ZW50L2Jyb3dzZXIvc2VydmljZV93b3JrZXIv c2VydmljZV93b3JrZXJfb2JqZWN0X2hvc3RfdW5pdHRlc3QuY2MKK2luZGV4IDQwOGQ3YzFmOWQx Li42ZWFiNTkwNDBhYiAxMDA2NDQKKy0tLSBhL2NvbnRlbnQvYnJvd3Nlci9zZXJ2aWNlX3dvcmtl ci9zZXJ2aWNlX3dvcmtlcl9vYmplY3RfaG9zdF91bml0dGVzdC5jYworKysrIGIvY29udGVudC9i cm93c2VyL3NlcnZpY2Vfd29ya2VyL3NlcnZpY2Vfd29ya2VyX29iamVjdF9ob3N0X3VuaXR0ZXN0 LmNjCitAQCAtMjAwLDYgKzIwMCwxOSBAQCBjbGFzcyBTZXJ2aWNlV29ya2VyT2JqZWN0SG9zdFRl c3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CisgICAgIHJldHVybiByZWdpc3RyYXRpb25faW5m bzsKKyAgIH0KKyAKKysgIHZvaWQgQ2FsbE9uQ29ubmVjdGlvbkVycm9yKFNlcnZpY2VXb3JrZXJD b250YWluZXJIb3N0KiBjb250YWluZXJfaG9zdCwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGludDY0X3QgdmVyc2lvbl9pZCkgeworKyAgICAvLyBTZXJ2aWNlV29ya2VyT2JqZWN0SG9z dCBoYXMgdGhlIGxhc3QgcmVmZXJlbmNlIHRvIHRoZSB2ZXJzaW9uLgorKyAgICBTZXJ2aWNlV29y a2VyT2JqZWN0SG9zdCogb2JqZWN0X2hvc3QgPQorKyAgICAgICAgR2V0U2VydmljZVdvcmtlck9i amVjdEhvc3QoY29udGFpbmVyX2hvc3QsIHZlcnNpb25faWQpOworKyAgICBFWFBFQ1RfVFJVRShv YmplY3RfaG9zdC0+dmVyc2lvbl8tPkhhc09uZVJlZigpKTsKKysKKysgICAgLy8gTWFrZSBzdXJl IHRoYXQgT25Db25uZWN0aW9uRXJyb3IgaW5kdWNlcyBkZXN0cnVjdGlvbiBvZiB0aGUgdmVyc2lv biBhbmQKKysgICAgLy8gdGhlIG9iamVjdCBob3N0LgorKyAgICBvYmplY3RfaG9zdC0+cmVjZWl2 ZXJzXy5DbGVhcigpOworKyAgICBvYmplY3RfaG9zdC0+T25Db25uZWN0aW9uRXJyb3IoKTsKKysg IH0KKysKKyAgIEJyb3dzZXJUYXNrRW52aXJvbm1lbnQgdGFza19lbnZpcm9ubWVudF87CisgICBz dGQ6OnVuaXF1ZV9wdHI8RW1iZWRkZWRXb3JrZXJUZXN0SGVscGVyPiBoZWxwZXJfOworICAgc2Nv cGVkX3JlZnB0cjxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uPiByZWdpc3RyYXRpb25fOworQEAg LTQwOSw1ICs0MjIsMzAgQEAgVEVTVF9GKFNlcnZpY2VXb3JrZXJPYmplY3RIb3N0VGVzdCwgRGlz cGF0Y2hFeHRlbmRhYmxlTWVzc2FnZUV2ZW50X0Zyb21DbGllbnQpIHsKKyAgICAgICAgICAgICBl dmVudHNbMF0tPnNvdXJjZV9pbmZvX2Zvcl9jbGllbnQtPmNsaWVudF90eXBlKTsKKyB9CisgCisr Ly8gVGhpcyBpcyBhIHJlZ3Jlc3Npb24gdGVzdCBmb3IgaHR0cHM6Ly9jcmJ1Zy5jb20vMTA1NjU5 OC4KKytURVNUX0YoU2VydmljZVdvcmtlck9iamVjdEhvc3RUZXN0LCBPbkNvbm5lY3Rpb25FcnJv cikgeworKyAgY29uc3QgR1VSTCBzY29wZSgiaHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vIik7Cisr ICBjb25zdCBHVVJMIHNjcmlwdF91cmwoImh0dHBzOi8vd3d3LmV4YW1wbGUuY29tL3NlcnZpY2Vf d29ya2VyLmpzIik7CisrICBJbml0aWFsaXplKHN0ZDo6bWFrZV91bmlxdWU8RW1iZWRkZWRXb3Jr ZXJUZXN0SGVscGVyPihiYXNlOjpGaWxlUGF0aCgpKSk7CisrICBTZXRVcFJlZ2lzdHJhdGlvbihz Y29wZSwgc2NyaXB0X3VybCk7CisrCisrICAvLyBDcmVhdGUgdGhlIHByb3ZpZGVyIGhvc3QuCisr ICBBU1NFUlRfRVEoYmxpbms6OlNlcnZpY2VXb3JrZXJTdGF0dXNDb2RlOjprT2ssCisrICAgICAg ICAgICAgU3RhcnRTZXJ2aWNlV29ya2VyKHZlcnNpb25fLmdldCgpKSk7CisrCisrICAvLyBTZXQg dXAgdGhlIGNhc2Ugd2hlcmUgdGhlIGxhc3QgcmVmZXJlbmNlIHRvIHRoZSB2ZXJzaW9uIGlzIG93 bmVkIGJ5IHRoZQorKyAgLy8gc2VydmljZSB3b3JrZXIgb2JqZWN0IGhvc3QuCisrICBTZXJ2aWNl V29ya2VyQ29udGFpbmVySG9zdCogY29udGFpbmVyX2hvc3QgPQorKyAgICAgIHZlcnNpb25fLT5w cm92aWRlcl9ob3N0KCktPmNvbnRhaW5lcl9ob3N0KCk7CisrICBTZXJ2aWNlV29ya2VyVmVyc2lv biogdmVyc2lvbl9yYXdwdHIgPSB2ZXJzaW9uXy5nZXQoKTsKKysgIHZlcnNpb25fID0gbnVsbHB0 cjsKKysgIEFTU0VSVF9UUlVFKHZlcnNpb25fcmF3cHRyLT5IYXNPbmVSZWYoKSk7CisrCisrICAv LyBTaW11bGF0ZSB0aGUgY29ubmVjdGlvbiBlcnJvciB0aGF0IGluZHVjZXMgdGhlIG9iamVjdCBo b3N0IGRlc3RydWN0aW9uLgorKyAgLy8gVGhpcyBzaG91bGRuJ3QgY3Jhc2guCisrICBDYWxsT25D b25uZWN0aW9uRXJyb3IoY29udGFpbmVyX2hvc3QsIHZlcnNpb25fcmF3cHRyLT52ZXJzaW9uX2lk KCkpOworKyAgYmFzZTo6UnVuTG9vcCgpLlJ1blVudGlsSWRsZSgpOworK30KKysKKyB9ICAvLyBu YW1lc3BhY2Ugc2VydmljZV93b3JrZXJfb2JqZWN0X2hvc3RfdW5pdHRlc3QKKyB9ICAvLyBuYW1l c3BhY2UgY29udGVudApkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hl cy9jaHJvbWl1bS1jaHJvbWl1bV9hdGtfb3B0aW9uYWwucGF0Y2gucGF0Y2ggYi9zcmNwa2dzL2Vs ZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWNocm9taXVtX2F0a19vcHRpb25hbC5wYXRj aC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNjY3YjRhN2Ew MGMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2No cm9taXVtLWNocm9taXVtX2F0a19vcHRpb25hbC5wYXRjaC5wYXRjaApAQCAtMCwwICsxLDE1IEBA CistLS0gYS9idWlsZC9jb25maWcvdWkuZ25pCTIwMjAtMDYtMjUgMDA6Mzk6MjguMDAwMDAwMDAw ICswMjAwCisrKysgLQkyMDIwLTA4LTIyIDE4OjAxOjAxLjE4Mjc0OTcyNiArMDIwMAorQEAgLTQ3 LDggKzQ3LDEwIEBACisgIyBNYWtlIHN1cmUgZ2xpYiBpcyBub3QgdXNlZCBpZiBidWlsZGluZyBm b3IgQ2hyb21lT1MvQ2hyb21lY2FzdAorIGFzc2VydCghdXNlX2dsaWIgfHwgKGlzX2xpbnV4ICYm ICFpc19jaHJvbWVvcyAmJiAhaXNfY2hyb21lY2FzdCkpCisgCistIyBXaGV0aGVyIHRvIHVzZSBh dGssIHRoZSBBY2Nlc3NpYmlsaXR5IFRvb2xLaXQgbGlicmFyeQorLXVzZV9hdGsgPSBpc19kZXNr dG9wX2xpbnV4ICYmICFpc19jaHJvbWVjYXN0ICYmIHVzZV9nbGliCisrZGVjbGFyZV9hcmdzKCkg eworKyAgIyBXaGV0aGVyIHRvIHVzZSBhdGssIHRoZSBBY2Nlc3NpYmlsaXR5IFRvb2xLaXQgbGli cmFyeQorKyAgdXNlX2F0ayA9IGlzX2Rlc2t0b3BfbGludXggJiYgIWlzX2Nocm9tZWNhc3QgJiYg dXNlX2dsaWIKKyt9CisgIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KKyAjICAgUExFQVNFIERPIE5PVCBBREQgTU9SRSBGTEFHUyBUTyBUSElTIEZJTEUKKyAj ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1jbGVhbi11cC1hLWNh bGwtdG8tc2V0X3V0ZjgucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2No cm9taXVtLWNsZWFuLXVwLWEtY2FsbC10by1zZXRfdXRmOC5wYXRjaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMDEzODRjMDM5NDEKLS0tIC9kZXYvbnVsbAorKysgYi9z cmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWNsZWFuLXVwLWEtY2FsbC10 by1zZXRfdXRmOC5wYXRjaApAQCAtMCwwICsxLDM0IEBACitGcm9tIGVkZTM5MGEwYjE4ZTQ1NjVh YmY4YWMxZTFmZjcxN2UxZDQzZmMzMjAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBQ YXVsIFdhbmthZGlhIDxqdW55ZXJAY2hyb21pdW0ub3JnPgorRGF0ZTogVHVlLCAxNCBBcHIgMjAy MCAxNjo1NDo1MSArMDAwMAorU3ViamVjdDogW1BBVENIXSBDbGVhbiB1cCBhIGNhbGwgdG8gc2V0 X3V0ZjgoKS4KKworVGhpcyBpcyBwYXJ0IG9mIGFuIGVmZm9ydCB0byByZXdyaXRlIGNhbGxzIHRv IHV0ZjgoKSBhbmQgc2V0X3V0ZjgoKQorKGluIFJFMjo6T3B0aW9ucykgYXMgY2FsbHMgdG8gZW5j b2RpbmcoKSBhbmQgc2V0X2VuY29kaW5nKCksCityZXNwZWN0aXZlbHkuIHV0ZjgoKSBhbmQgc2V0 X3V0ZjgoKSBoYXZlIGJlZW4gbWFya2VkIGFzIHRoZSAibGVnYWN5IgoraW50ZXJmYWNlIHNpbmNl IDIwMDgsIHNvIGl0IGlzIGxvbmcgcGFzdCB0aW1lIHRoYXQgd2UgZ2V0IHJpZCBvZiB0aGVtLgor CitSPXBhcmFzdG9vZ0Bnb29nbGUuY29tCisKK0NoYW5nZS1JZDogSTYyYzQ4Y2Q1NzVhNTViNTE5 ZDUyNjRlZDg1N2Y5MjdjMTYzMDY4YjIKK1Jldmlld2VkLW9uOiBodHRwczovL2Nocm9taXVtLXJl dmlldy5nb29nbGVzb3VyY2UuY29tL2MvY2hyb21pdW0vc3JjLysvMjE0NTI2MQorUmV2aWV3ZWQt Ynk6IFBhcmFzdG9vIEdlcmFubWF5ZWggPHBhcmFzdG9vZ0Bnb29nbGUuY29tPgorQ29tbWl0LVF1 ZXVlOiBQYXVsIFdhbmthZGlhIDxqdW55ZXJAY2hyb21pdW0ub3JnPgorQ3ItQ29tbWl0LVBvc2l0 aW9uOiByZWZzL2hlYWRzL21hc3RlckB7Izc1ODg4Nn0KKy0tLQorIGNvbXBvbmVudHMvYXV0b2Zp bGwvY29yZS9icm93c2VyL2FkZHJlc3NfcmV3cml0ZXIuY2MgfCAyICstCisgMSBmaWxlIGNoYW5n ZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9jb21wb25l bnRzL2F1dG9maWxsL2NvcmUvYnJvd3Nlci9hZGRyZXNzX3Jld3JpdGVyLmNjIGIvY29tcG9uZW50 cy9hdXRvZmlsbC9jb3JlL2Jyb3dzZXIvYWRkcmVzc19yZXdyaXRlci5jYworaW5kZXggMWI4NWE1 MDk3NGMuLjAzMGE1YWJhMTQ2IDEwMDY0NAorLS0tIGEvY29tcG9uZW50cy9hdXRvZmlsbC9jb3Jl L2Jyb3dzZXIvYWRkcmVzc19yZXdyaXRlci5jYworKysrIGIvY29tcG9uZW50cy9hdXRvZmlsbC9j b3JlL2Jyb3dzZXIvYWRkcmVzc19yZXdyaXRlci5jYworQEAgLTU3LDcgKzU3LDcgQEAgdm9pZCBD b21waWxlUnVsZXNGcm9tRGF0YShjb25zdCBzdGQ6OnN0cmluZyYgZGF0YV9zdHJpbmcsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICBDb21waWxlZFJ1bGVWZWN0b3IqIGNvbXBpbGVkX3J1bGVz KSB7CisgICBiYXNlOjpTdHJpbmdQaWVjZSBkYXRhID0gZGF0YV9zdHJpbmc7CisgICByZTI6OlJF Mjo6T3B0aW9ucyBvcHRpb25zOworLSAgb3B0aW9ucy5zZXRfdXRmOCh0cnVlKTsKKysgIG9wdGlv bnMuc2V0X2VuY29kaW5nKFJFMjo6T3B0aW9uczo6RW5jb2RpbmdVVEY4KTsKKyAgIG9wdGlvbnMu c2V0X3dvcmRfYm91bmRhcnkodHJ1ZSk7CisgCisgICBzaXplX3QgdG9rZW5fZW5kID0gMDsKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tZmZtcGVn LTQuMy5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tZmZt cGVnLTQuMy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNmFi Yjg4NmFiOTkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRj aGVzL2Nocm9taXVtLWZmbXBlZy00LjMucGF0Y2gKQEAgLTAsMCArMSwyMSBAQAorZGlmZiAtLWdp dCBhL21lZGlhL2Jhc2UvbWVkaWEuY2MgYi9tZWRpYS9iYXNlL21lZGlhLmNjCitpbmRleCBjMjgy ZWU0OWEwMy4uYTI5OGI0MGM3OWIgMTAwNjQ0CistLS0gYS9tZWRpYS9iYXNlL21lZGlhLmNjCisr KysgYi9tZWRpYS9iYXNlL21lZGlhLmNjCitAQCAtMTQsNiArMTQsNyBAQAorICNpbmNsdWRlICJ0 aGlyZF9wYXJ0eS9saWJ5dXYvaW5jbHVkZS9saWJ5dXYuaCIKKyAKKyAjaWYgQlVJTERGTEFHKEVO QUJMRV9GRk1QRUcpCisrI2luY2x1ZGUgPGxpbWl0cz4KKyAjaW5jbHVkZSAidGhpcmRfcGFydHkv ZmZtcGVnL2ZmbXBlZ19mZWF0dXJlcy5oIiAgLy8gbm9nbmNoZWNrCisgZXh0ZXJuICJDIiB7Cisg I2luY2x1ZGUgPGxpYmF2dXRpbC9jcHUuaD4KK0BAIC00MSw3ICs0Miw3IEBAIGNsYXNzIE1lZGlh SW5pdGlhbGl6ZXIgeworIAorICNpZiBCVUlMREZMQUcoVVNFX0FMTE9DQVRPUl9TSElNKQorICAg ICAvLyBSZW1vdmUgYWxsb2NhdGlvbiBsaW1pdCBmcm9tIGZmbXBlZywgc28gY2FsbHMgZ28gZG93 biB0byBzaGltIGxheWVyLgorLSAgICBhdl9tYXhfYWxsb2MoMCk7CisrICAgIGF2X21heF9hbGxv YyhzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKTsKKyAjZW5kaWYgIC8vIEJVSUxE RkxBRyhVU0VfQUxMT0NBVE9SX1NISU0pCisgCisgI2VuZGlmICAvLyBCVUlMREZMQUcoRU5BQkxF X0ZGTVBFRykKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMvY2hy b21pdW0tZml4LXRlbXBsYXRlLXNwZWNpYWxpemF0aW9uLTAxLnBhdGNoIGIvc3JjcGtncy9lbGVj dHJvbjkvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1maXgtdGVtcGxhdGUtc3BlY2lhbGl6YXRpb24t MDEucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjg1NjJmN2Rh ODJjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9j aHJvbWl1bS1maXgtdGVtcGxhdGUtc3BlY2lhbGl6YXRpb24tMDEucGF0Y2gKQEAgLTAsMCArMSw2 NCBAQAorR0NDOiBmaXggdGVtcGxhdGUgc3BlY2lhbGl6YXRpb24gaW4gV1RGOjpWZWN0b3JNb3Zl cgorCitHQ0MgY29tcGxhaW5zIHRoYXQgZXhwbGljaXQgc3BlY2lhbGl6YXRpb24gaW4gbm9uLW5h bWVzcGFjZSBzY29wZQoraXMgaGFwcGVuaW5nIGZvciBNb3ZlT3ZlcmxhcHBpbmdJbXBsLiBIb3dl dmVyLCBzZWNpYWxpemF0aW9uIGlzCitub3QgcmVhbGx5IG5lY2Vzc2FyeSBoZXJlIHdpdGggdGVt cGxhdGVzIGFuZCBjYW4gYmUgbW92ZWQKK2ludG8gTW92ZU92ZXJsYXBwaW5nSW1wbCBtZXRob2Qg d2l0aG91dCBjaGFuZ2luZyBnZW5lcmF0ZWQgY29kZS4KKworQnVnOiA4MTkyOTQKK0NoYW5nZS1J ZDogSTkwYjg5M2I5NzAxNzQ4MzAyZjdiOTAwZmJjYzJjMzQxNjg1ZmUwZDMKK1Jldmlld2VkLW9u OiBodHRwczovL2Nocm9taXVtLXJldmlldy5nb29nbGVzb3VyY2UuY29tL2MvY2hyb21pdW0vc3Jj LysvMjEyNjI5MAorUmV2aWV3ZWQtYnk6IEtlbnQgVGFtdXJhIDx0a2VudEBjaHJvbWl1bS5vcmc+ CitDb21taXQtUXVldWU6IEtlbnQgVGFtdXJhIDx0a2VudEBjaHJvbWl1bS5vcmc+CitDci1Db21t aXQtUG9zaXRpb246IHJlZnMvaGVhZHMvbWFzdGVyQHsjNzU2ODgwfQorCitkaWZmIC0tZ2l0IGEv dGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vd3RmL3ZlY3Rvci5oIGIvdGhpcmRf cGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vd3RmL3ZlY3Rvci5oCitpbmRleCA2MzJkMzA4 Li44MmFhZjk2IDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZv cm0vd3RmL3ZlY3Rvci5oCisrKysgYi90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9y bS93dGYvdmVjdG9yLmgKK0BAIC0yMDUsMzAgKzIwNSwyMyBAQAorICAgICB9CisgICB9CisgCist ICB0ZW1wbGF0ZSA8Ym9vbCA9IEFsbG9jYXRvcjo6a0lzR2FyYmFnZUNvbGxlY3RlZD4KKy0gIHN0 YXRpYyB2b2lkIE1vdmVPdmVybGFwcGluZ0ltcGwoY29uc3QgVCogc3JjLCBjb25zdCBUKiBzcmNf ZW5kLCBUKiBkc3QpOworLSAgdGVtcGxhdGUgPD4KKy0gIHN0YXRpYyB2b2lkIE1vdmVPdmVybGFw cGluZ0ltcGw8ZmFsc2U+KGNvbnN0IFQqIHNyYywKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IFQqIHNyY19lbmQsCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBUKiBkc3QpIHsKKy0gICAgbWVtbW92ZShkc3QsIHNyYywKKy0g ICAgICAgICAgICByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihzcmNfZW5kKSAtCistICAg ICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KHNyYykpOworLSAgfQor LSAgdGVtcGxhdGUgPD4KKy0gIHN0YXRpYyB2b2lkIE1vdmVPdmVybGFwcGluZ0ltcGw8dHJ1ZT4o Y29uc3QgVCogc3JjLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBUKiBzcmNfZW5kLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBUKiBkc3QpIHsKKy0gICAgaWYgKHNyYyA9PSBkc3QpCistICAgICAgcmV0dXJuOworLSAgICBp ZiAoZHN0IDwgc3JjKSB7CistICAgICAgZm9yICg7IHNyYyA8IHNyY19lbmQ7ICsrc3JjLCArK2Rz dCkKKy0gICAgICAgIEF0b21pY1dyaXRlTWVtY3B5PHNpemVvZihUKT4oZHN0LCBzcmMpOworKyAg c3RhdGljIHZvaWQgTW92ZU92ZXJsYXBwaW5nSW1wbChjb25zdCBUKiBzcmMsIGNvbnN0IFQqIHNy Y19lbmQsIFQqIGRzdCkgeworKyAgICBpZiAoQWxsb2NhdG9yOjprSXNHYXJiYWdlQ29sbGVjdGVk KSB7CisrICAgICAgaWYgKHNyYyA9PSBkc3QpCisrICAgICAgICByZXR1cm47CisrICAgICAgaWYg KGRzdCA8IHNyYykgeworKyAgICAgICAgZm9yICg7IHNyYyA8IHNyY19lbmQ7ICsrc3JjLCArK2Rz dCkKKysgICAgICAgICAgQXRvbWljV3JpdGVNZW1jcHk8c2l6ZW9mKFQpPihkc3QsIHNyYyk7Cisr ICAgICAgfSBlbHNlIHsKKysgICAgICAgIC0tc3JjX2VuZDsKKysgICAgICAgIFQqIGRzdF9lbmQg PSBkc3QgKyAoc3JjX2VuZCAtIHNyYyk7CisrICAgICAgICBmb3IgKDsgc3JjX2VuZCA+PSBzcmM7 IC0tc3JjX2VuZCwgLS1kc3RfZW5kKQorKyAgICAgICAgICBBdG9taWNXcml0ZU1lbWNweTxzaXpl b2YoVCk+KGRzdF9lbmQsIHNyY19lbmQpOworKyAgICAgIH0KKyAgICAgfSBlbHNlIHsKKy0gICAg ICAtLXNyY19lbmQ7CistICAgICAgVCogZHN0X2VuZCA9IGRzdCArIChzcmNfZW5kIC0gc3JjKTsK Ky0gICAgICBmb3IgKDsgc3JjX2VuZCA+PSBzcmM7IC0tc3JjX2VuZCwgLS1kc3RfZW5kKQorLSAg ICAgICAgQXRvbWljV3JpdGVNZW1jcHk8c2l6ZW9mKFQpPihkc3RfZW5kLCBzcmNfZW5kKTsKKysg ICAgICBtZW1tb3ZlKGRzdCwgc3JjLAorKyAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxj b25zdCBjaGFyKj4oc3JjX2VuZCkgLQorKyAgICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nh c3Q8Y29uc3QgY2hhcio+KHNyYykpOworICAgICB9CisgICB9CmRpZmYgLS1naXQgYS9zcmNwa2dz L2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWdjYy1Dcm9zc1ZhcmlhbnRNb2pvQXNz b2NpYXRlZFJlY2VpdmVyLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9j aHJvbWl1bS1nY2MtQ3Jvc3NWYXJpYW50TW9qb0Fzc29jaWF0ZWRSZWNlaXZlci5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uODZlYjk1MTMwMGMKLS0tIC9kZXYv bnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWdjYy1D cm9zc1ZhcmlhbnRNb2pvQXNzb2NpYXRlZFJlY2VpdmVyLnBhdGNoCkBAIC0wLDAgKzEsNTYgQEAK K0Zyb20gZjkyZGE2OTkzZTQ1YjI4YTdlMGM4MmIxYWVkODlhYWU5NWY3MjkzMSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKK0Zyb206IEpvc2UgRGFwZW5hIFBheiA8amRhcGVuYUBpZ2FsaWEuY29t PgorRGF0ZTogV2VkLCAxNyBKdW4gMjAyMCAyMjo1NzozNSArMDAwMAorU3ViamVjdDogW1BBVENI XSBHQ0M6IHJlbW92ZSBub2V4Y2VwdCBkZWNsYXJhdGlvbiBpbiBDcm9zc1ZhcmlhbnRNb2pvQXNz b2NpYXRlZFJlY2VpdmUvUmVtb3RlCisKK0l0IGJyZWFrcyBjb21waWxhdGlvbiBvZiBibGluazo6 V2ViU2VydmljZVJlZ2lzdHJhdGlvbk9iamVjdEluZm8gdGhhdCBpbmNsdWRlcworV2ViU2Vydmlj ZVdvcmtlck9iamVjdEluZm8gaW5zdGFuY2UuIFRoaXMgb25lIHVzZXMgZGVmYXVsdCBtb3ZlIGNv bnN0cnVjdG9yCit3aXRob3V0IG5vZXhjZXB0IGRlY2xhcmF0aW9uLCBidXQgaGFzIGFzIG1lbWJl cnMgQ3Jvc3NWYXJpYW50TW9qb0Fzc29jaWF0ZWRSZWNlaXZlCithbmQgQ3Jvc3NWYXJpYW50TW9q b0Fzc29jaWF0ZWRSZW1vdGUgd2l0aCBub2V4Y2VwdCBkZWNsYXJhdGlvbiBpbiBtb3ZlIGNvbnN0 cnVjdG9yLgorZGVjbGFyZWQgbm9leGNlcHQuCisKK0FzIHJlc29sdmVkIGluIG90aGVyIHBsYWNl cywgbm9leGNlcHQgaXMgbm90IHJlYWxseSBtdWNoIHVzZWZ1bCB3aXRoIC1mbm8tZXhjZXB0aW9u CithbmQgb3VyIGNvZGViYXNlIGlzIG5vdCBwcmVwYXJlIHRvIGFkZCBpdCBjb25zaXN0ZW50bHku IENsYW5nIHdpbGwgbm90IHJlcG9ydAorZXhjZXB0aW9uIGRlY2xhcmF0aW9uIGluY29tcGF0aWJp bGl0aWVzIGluIGNhc2UgLWZuby1leGNlcHRpb24gaXMgdXNlZCwgYnV0IEdDQworZmFpbHMuCisK K0J1ZzogODE5Mjk0CitDaGFuZ2UtSWQ6IElkNWM0NmMyNzFhOGE5MjM1MmQ3NjlkZTljM2MyNjNk M2RjZTRjOWM3CitSZXZpZXdlZC1vbjogaHR0cHM6Ly9jaHJvbWl1bS1yZXZpZXcuZ29vZ2xlc291 cmNlLmNvbS9jL2Nocm9taXVtL3NyYy8rLzIyNDc3OTEKK0NvbW1pdC1RdWV1ZTogRGF2ZSBUYXB1 c2thIDxkdGFwdXNrYUBjaHJvbWl1bS5vcmc+CitSZXZpZXdlZC1ieTogRGF2ZSBUYXB1c2thIDxk dGFwdXNrYUBjaHJvbWl1bS5vcmc+CitDci1Db21taXQtUG9zaXRpb246IHJlZnMvaGVhZHMvbWFz dGVyQHsjNzc5NTI2fQorLS0tCisKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ibGluay9wdWJs aWMvcGxhdGZvcm0vY3Jvc3NfdmFyaWFudF9tb2pvX3V0aWwuaCBiL3RoaXJkX3BhcnR5L2JsaW5r L3B1YmxpYy9wbGF0Zm9ybS9jcm9zc192YXJpYW50X21vam9fdXRpbC5oCitpbmRleCA5MmM2OWNl Li45OTQ1ZTAwIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvYmxpbmsvcHVibGljL3BsYXRmb3Jt L2Nyb3NzX3ZhcmlhbnRfbW9qb191dGlsLmgKKysrKyBiL3RoaXJkX3BhcnR5L2JsaW5rL3B1Ymxp Yy9wbGF0Zm9ybS9jcm9zc192YXJpYW50X21vam9fdXRpbC5oCitAQCAtMTMxLDEwICsxMzEsMTAg QEAKKyAgIENyb3NzVmFyaWFudE1vam9Bc3NvY2lhdGVkUmVjZWl2ZXIoKSA9IGRlZmF1bHQ7Cisg ICB+Q3Jvc3NWYXJpYW50TW9qb0Fzc29jaWF0ZWRSZWNlaXZlcigpID0gZGVmYXVsdDsKKyAKKy0g IENyb3NzVmFyaWFudE1vam9Bc3NvY2lhdGVkUmVjZWl2ZXIoCistICAgICAgQ3Jvc3NWYXJpYW50 TW9qb0Fzc29jaWF0ZWRSZWNlaXZlciYmKSBub2V4Y2VwdCA9IGRlZmF1bHQ7CisrICBDcm9zc1Zh cmlhbnRNb2pvQXNzb2NpYXRlZFJlY2VpdmVyKENyb3NzVmFyaWFudE1vam9Bc3NvY2lhdGVkUmVj ZWl2ZXImJikgPQorKyAgICAgIGRlZmF1bHQ7CisgICBDcm9zc1ZhcmlhbnRNb2pvQXNzb2NpYXRl ZFJlY2VpdmVyJiBvcGVyYXRvcj0oCistICAgICAgQ3Jvc3NWYXJpYW50TW9qb0Fzc29jaWF0ZWRS ZWNlaXZlciYmKSBub2V4Y2VwdCA9IGRlZmF1bHQ7CisrICAgICAgQ3Jvc3NWYXJpYW50TW9qb0Fz c29jaWF0ZWRSZWNlaXZlciYmKSA9IGRlZmF1bHQ7CisgCisgICBDcm9zc1ZhcmlhbnRNb2pvQXNz b2NpYXRlZFJlY2VpdmVyKAorICAgICAgIGNvbnN0IENyb3NzVmFyaWFudE1vam9Bc3NvY2lhdGVk UmVjZWl2ZXImKSA9IGRlbGV0ZTsKK0BAIC0xNjYsMTAgKzE2NiwxMCBAQAorICAgQ3Jvc3NWYXJp YW50TW9qb0Fzc29jaWF0ZWRSZW1vdGUoKSA9IGRlZmF1bHQ7CisgICB+Q3Jvc3NWYXJpYW50TW9q b0Fzc29jaWF0ZWRSZW1vdGUoKSA9IGRlZmF1bHQ7CisgCistICBDcm9zc1ZhcmlhbnRNb2pvQXNz b2NpYXRlZFJlbW90ZSgKKy0gICAgICBDcm9zc1ZhcmlhbnRNb2pvQXNzb2NpYXRlZFJlbW90ZSYm KSBub2V4Y2VwdCA9IGRlZmF1bHQ7CisrICBDcm9zc1ZhcmlhbnRNb2pvQXNzb2NpYXRlZFJlbW90 ZShDcm9zc1ZhcmlhbnRNb2pvQXNzb2NpYXRlZFJlbW90ZSYmKSA9CisrICAgICAgZGVmYXVsdDsK KyAgIENyb3NzVmFyaWFudE1vam9Bc3NvY2lhdGVkUmVtb3RlJiBvcGVyYXRvcj0oCistICAgICAg Q3Jvc3NWYXJpYW50TW9qb0Fzc29jaWF0ZWRSZW1vdGUmJikgbm9leGNlcHQgPSBkZWZhdWx0Owor KyAgICAgIENyb3NzVmFyaWFudE1vam9Bc3NvY2lhdGVkUmVtb3RlJiYpID0gZGVmYXVsdDsKKyAK KyAgIENyb3NzVmFyaWFudE1vam9Bc3NvY2lhdGVkUmVtb3RlKGNvbnN0IENyb3NzVmFyaWFudE1v am9Bc3NvY2lhdGVkUmVtb3RlJikgPQorICAgICAgIGRlbGV0ZTsKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tZ2NjLWFhcmNoNjQtemxpYi1jcmMt MDEucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWdjYy1h YXJjaDY0LXpsaWItY3JjLTAxLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi4yZDY1ODdkMzdiNwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb245 L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tZ2NjLWFhcmNoNjQtemxpYi1jcmMtMDEucGF0Y2gKQEAg LTAsMCArMSwxMzEgQEAKK1t6bGliXSBNYWtlIGluc2VydCBzdHJpbmcgYSBsaXR0bGUgbGVzcyAj aWZkZWYtaWUKKworUmVtb3ZlIG9uZSBsZXZlbCBvZiAjaWZkZWYgaW5kZW50IHRvIG1ha2UgdGhh dCBwYXJ0IG9mIHRoZSBjb2RlIGVhc2llcgordG8gcmVhZC4gQ2hhbmdlIHRoZSBhY2NlbGVyYXRl ZCByb3V0aW5lIG5hbWUgdG8gZW5kIGluIF9zaW1kIGFzIGlzIG91cgord2F5IGVsc2V3aGVyZSBp biBjaHJvbWl1bSB6bGliLgorCitNaW5vcjogYWRqdXN0IHRoZSBjb21tZW50cyBhcm91bmQgdGhl IHBlcmZvcm1hbmNlIGNsYWltcywgYW5kIG1vdmUgdGhlCitpbXBvcnRhbnQgY29tbWVudHMgcmUg Q0hST01JVU1fWkxJQl9OT19DQVNUQUdOT0xJIGludG8gdGhhdCBibG9jay4KKworQnVnOiAxMDMy NzIxCitDaGFuZ2UtSWQ6IEljYjQwNDRmM2I4NzI3N2Q2N2YwZmYwMDRhYzcwODEzYWYwYTkxZjVi CitSZXZpZXdlZC1vbjogaHR0cHM6Ly9jaHJvbWl1bS1yZXZpZXcuZ29vZ2xlc291cmNlLmNvbS9j L2Nocm9taXVtL3NyYy8rLzIxNDg4OTMKK1Jldmlld2VkLWJ5OiBDaHJpcyBCbHVtZSA8Y2JsdW1l QGNocm9taXVtLm9yZz4KK1Jldmlld2VkLWJ5OiBBZGVuaWxzb24gQ2F2YWxjYW50aSA8Y2F2YWxj YW50aWlAY2hyb21pdW0ub3JnPgorQ29tbWl0LVF1ZXVlOiBOb2VsIEdvcmRvbiA8bm9lbEBjaHJv bWl1bS5vcmc+CitDci1Db21taXQtUG9zaXRpb246IHJlZnMvaGVhZHMvbWFzdGVyQHsjNzYwNDA4 fQorCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvemxpYi9jb250cmliL29wdGltaXphdGlvbnMv aW5zZXJ0X3N0cmluZy5oIGIvdGhpcmRfcGFydHkvemxpYi9jb250cmliL29wdGltaXphdGlvbnMv aW5zZXJ0X3N0cmluZy5oCitpbmRleCAxODI2NjAxLi5kM2JjMzNjIDEwMDY0NAorLS0tIGEvdGhp cmRfcGFydHkvemxpYi9jb250cmliL29wdGltaXphdGlvbnMvaW5zZXJ0X3N0cmluZy5oCisrKysg Yi90aGlyZF9wYXJ0eS96bGliL2NvbnRyaWIvb3B0aW1pemF0aW9ucy9pbnNlcnRfc3RyaW5nLmgK KworQEAgLTQsNDUgKzQsNDcgQEAKKyAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zl cm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisgICogZm91bmQgaW4gdGhl IENocm9taXVtIHNvdXJjZSByZXBvc2l0b3J5IExJQ0VOU0UgZmlsZS4KKyAgKi8KKy0jaWZkZWYg X01TQ19WRVIKKysKKysjaWYgZGVmaW5lZChfTVNDX1ZFUikKKyAjZGVmaW5lIElOTElORSBfX2lu bGluZQorICNlbHNlCisgI2RlZmluZSBJTkxJTkUgaW5saW5lCisgI2VuZGlmCisgCisgI2luY2x1 ZGUgImNwdV9mZWF0dXJlcy5oIgorLS8qIE9wdGltaXplZCBpbnNlcnRfc3RyaW5nIGJsb2NrICov CistI2lmIGRlZmluZWQoQ1JDMzJfU0lNRF9TU0U0Ml9QQ0xNVUwpIHx8IGRlZmluZWQoQ1JDMzJf QVJNVjhfQ1JDMzIpCistI2RlZmluZSBUQVJHRVRfQ1BVX1dJVEhfQ1JDCisrCisgLy8gY2xhbmct Zm9ybWF0IG9mZgorICNpZiBkZWZpbmVkKENSQzMyX1NJTURfU1NFNDJfUENMTVVMKQorLSAgLyog UmVxdWlyZWQgdG8gbWFrZSBNU1ZDIGJvdCBidWlsZCBwYXNzLiAqLworLSAgI2luY2x1ZGUgPHNt bWludHJpbi5oPgorLSAgI2lmIGRlZmluZWQoX19HTlVDX18pIHx8IGRlZmluZWQoX19jbGFuZ19f KQorLSAgICAjdW5kZWYgVEFSR0VUX0NQVV9XSVRIX0NSQworKyAgI2luY2x1ZGUgPHNtbWludHJp bi5oPiAgLyogUmVxdWlyZWQgdG8gbWFrZSBNU1ZDIGJvdCBidWlsZCBwYXNzLiAqLworKworKyAg I2lmIGRlZmluZWQoX19jbGFuZ19fKSB8fCBkZWZpbmVkKF9fR05VQ19fKQorICAgICAjZGVmaW5l IFRBUkdFVF9DUFVfV0lUSF9DUkMgX19hdHRyaWJ1dGVfXygodGFyZ2V0KCJzc2U0LjIiKSkpCisr ICAjZWxzZQorKyAgICAjZGVmaW5lIFRBUkdFVF9DUFVfV0lUSF9DUkMKKyAgICNlbmRpZgorIAor ICAgI2RlZmluZSBfY3B1X2NyYzMyX3UzMiBfbW1fY3JjMzJfdTMyCisgCisgI2VsaWYgZGVmaW5l ZChDUkMzMl9BUk1WOF9DUkMzMikKKyAgICNpZiBkZWZpbmVkKF9fY2xhbmdfXykKKy0gICAgI3Vu ZGVmIFRBUkdFVF9DUFVfV0lUSF9DUkMKKyAgICAgI2RlZmluZSBfX2NyYzMyY3cgX19idWlsdGlu X2FybV9jcmMzMmN3CisgICAjZW5kaWYKKyAKKy0gICNkZWZpbmUgX2NwdV9jcmMzMl91MzIgX19j cmMzMmN3CistCisgICAjaWYgZGVmaW5lZChfX2FhcmNoNjRfXykKKyAgICAgI2RlZmluZSBUQVJH RVRfQ1BVX1dJVEhfQ1JDIF9fYXR0cmlidXRlX18oKHRhcmdldCgiY3JjIikpKQorICAgI2Vsc2Ug IC8vICFkZWZpbmVkKF9fYWFyY2g2NF9fKQorICAgICAjZGVmaW5lIFRBUkdFVF9DUFVfV0lUSF9D UkMgX19hdHRyaWJ1dGVfXygodGFyZ2V0KCJhcm12OC1hLGNyYyIpKSkKKyAgICNlbmRpZiAgLy8g ZGVmaW5lZChfX2FhcmNoNjRfXykKKysKKysgICNkZWZpbmUgX2NwdV9jcmMzMl91MzIgX19jcmMz MmN3CisrCisgI2VuZGlmCisgLy8gY2xhbmctZm9ybWF0IG9uCisrCisrI2lmIGRlZmluZWQoVEFS R0VUX0NQVV9XSVRIX0NSQykKKysKKyBUQVJHRVRfQ1BVX1dJVEhfQ1JDCistbG9jYWwgSU5MSU5F IFBvcyBpbnNlcnRfc3RyaW5nX29wdGltaXplZChkZWZsYXRlX3N0YXRlKiBjb25zdCBzLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUG9zIHN0cikgewor K2xvY2FsIElOTElORSBQb3MgaW5zZXJ0X3N0cmluZ19zaW1kKGRlZmxhdGVfc3RhdGUqIGNvbnN0 IHMsIGNvbnN0IFBvcyBzdHIpIHsKKyAgIFBvcyByZXQ7CisgICB1bnNpZ25lZCAqaXAsIHZhbCwg aCA9IDA7CisgCitAQCAtNjQsNyArNjYsOCBAQAorICAgcy0+cHJldltzdHIgJiBzLT53X21hc2td ID0gcmV0OworICAgcmV0dXJuIHJldDsKKyB9CistI2VuZGlmIC8qIE9wdGltaXplZCBpbnNlcnRf c3RyaW5nIGJsb2NrICovCisrCisrI2VuZGlmIC8vIFRBUkdFVF9DUFVfV0lUSF9DUkMKKyAKKyAv KiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKyAgKiBVcGRhdGUgYSBoYXNoIHZhbHVlIHdpdGggdGhlIGdp dmVuIGlucHV0IGJ5dGUKK0BAIC05OSwyNCArMTAyLDIyIEBACisgfQorIAorIGxvY2FsIElOTElO RSBQb3MgaW5zZXJ0X3N0cmluZyhkZWZsYXRlX3N0YXRlKiBjb25zdCBzLCBjb25zdCBQb3Mgc3Ry KSB7CistLyogU3RyaW5nIGRpY3Rpb25hcnkgaW5zZXJ0aW9uOiBmYXN0ZXIgc3ltYm9sIGhhc2hp bmcgaGFzIGEgcG9zaXRpdmUgaW1wYWN0CistICogb24gZGF0YSBjb21wcmVzc2lvbiBzcGVlZHMg KGFyb3VuZCAyMCUgb24gSW50ZWwgYW5kIDM2JSBvbiBBcm0gQ29ydGV4IGJpZworLSAqIGNvcmVz KS4KKy0gKiBBIG1pc2ZlYXR1cmUgaXMgdGhhdCB0aGUgZ2VuZXJhdGVkIGNvbXByZXNzZWQgb3V0 cHV0IHdpbGwgZGlmZmVyIGZyb20KKy0gKiB2YW5pbGxhIHpsaWIgKGV2ZW4gdGhvdWdoIGl0IGlz IHN0aWxsIHZhbGlkICdERUZMQVRFLWQnIGNvbnRlbnQpLgorKy8qIGluc2VydF9zdHJpbmdfc2lt ZCBzdHJpbmcgZGljdGlvbmFyeSBpbnNlcnRpb246IHRoaXMgU0lNRCBzeW1ib2wgaGFzaGluZwor KyAqIHNpZ25pZmljYW50bHkgaW1wcm92ZXMgZGF0YSBjb21wcmVzc2lvbiBzcGVlZC4KKyAgKgor LSAqIFdlIG9mZmVyIGhlcmUgYSB3YXkgdG8gZGlzYWJsZSB0aGUgb3B0aW1pemF0aW9uIGlmIHRo ZXJlIGlzIHRoZSBleHBlY3RhdGlvbgorLSAqIHRoYXQgY29tcHJlc3NlZCBjb250ZW50IHNob3Vs ZCBtYXRjaCB3aGVuIGNvbXBhcmVkIHRvIHZhbmlsbGEgemxpYi4KKysgKiBOb3RlOiB0aGUgZ2Vu ZXJhdGVkIGNvbXByZXNzZWQgb3V0cHV0IGlzIGEgdmFsaWQgREVGTEFURSBzdHJlYW0gYnV0IHdp bGwKKysgKiBkaWZmZXIgZnJvbSB2YW5pbGxhIHpsaWIgb3V0cHV0IC4uLgorICAqLworLSNpZiAh ZGVmaW5lZChDSFJPTUlVTV9aTElCX05PX0NBU1RBR05PTEkpCistICAvKiBUT0RPKGNhdmFsY2Fu dGlpKTogdW5pZnkgQ1BVIGZlYXR1cmVzIGNvZGUuICovCistI2lmIGRlZmluZWQoQ1JDMzJfQVJN VjhfQ1JDMzIpCistICBpZiAoYXJtX2NwdV9lbmFibGVfY3JjMzIpCistICAgIHJldHVybiBpbnNl cnRfc3RyaW5nX29wdGltaXplZChzLCBzdHIpOworLSNlbGlmIGRlZmluZWQoQ1JDMzJfU0lNRF9T U0U0Ml9QQ0xNVUwpCisrI2lmIGRlZmluZWQoQ0hST01JVU1fWkxJQl9OT19DQVNUQUdOT0xJKQor Ky8qIC4uLiBzbyB0aGlzIGJ1aWxkLXRpbWUgb3B0aW9uIGNhbiB1c2VkIHRvIGRpc2FibGUgdGhl IFNJTUQgc3ltYm9sIGhhc2hlcgorKyAqIGlmIG1hdGNoaW5nIHZhbmlsbGEgemxpYiBERUZMQVRF IG91dHB1dCBpcyByZXF1aXJlZC4KKysgKi8gKDspIC8qIEZBTExUSE9VR0ggKi8KKysjZWxpZiBk ZWZpbmVkKFRBUkdFVF9DUFVfV0lUSF9DUkMpICYmIGRlZmluZWQoQ1JDMzJfU0lNRF9TU0U0Ml9Q Q0xNVUwpCisgICBpZiAoeDg2X2NwdV9lbmFibGVfc2ltZCkKKy0gICAgcmV0dXJuIGluc2VydF9z dHJpbmdfb3B0aW1pemVkKHMsIHN0cik7CistI2VuZGlmCisrICAgIHJldHVybiBpbnNlcnRfc3Ry aW5nX3NpbWQocywgc3RyKTsKKysjZWxpZiBkZWZpbmVkKFRBUkdFVF9DUFVfV0lUSF9DUkMpICYm IGRlZmluZWQoQ1JDMzJfQVJNVjhfQ1JDMzIpCisrICBpZiAoYXJtX2NwdV9lbmFibGVfY3JjMzIp CisrICAgIHJldHVybiBpbnNlcnRfc3RyaW5nX3NpbWQocywgc3RyKTsKKyAjZW5kaWYKKyAgIHJl dHVybiBpbnNlcnRfc3RyaW5nX2Mocywgc3RyKTsKKyB9CmRpZmYgLS1naXQgYS9zcmNwa2dzL2Vs ZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWdjYy1hYXJjaDY0LXpsaWItY3JjLTAyLnBh dGNoIGIvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1nY2MtYWFyY2g2 NC16bGliLWNyYy0wMi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MC4uNjI5NjhkYzdjZDYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxl cy9wYXRjaGVzL2Nocm9taXVtLWdjYy1hYXJjaDY0LXpsaWItY3JjLTAyLnBhdGNoCkBAIC0wLDAg KzEsMzUgQEAKK0RlZmluZSBjcmMzMiBpbnRyaW5zaWMgYnVpbHRpbiBmb3IgZ2NjCisKK1RoaXMg d2lsbCBmaXggdGhlIGJ1aWxkIGZvciBnY2NAYWFyY2g2NCwgZW5hYmxpbmcgYnVpbGRpbmcgVjgK K3dpdGggZ2NjIGZvciBhYXJjaDY0LgorCitCdWc6IDEwNjYzMDIKK0NoYW5nZS1JZDogSTQ4MThk NjM4NDU1M2E4NzdmNmMxYzI0MGI3ZjBjNjZjOGRiNjliMWUKK1Jldmlld2VkLW9uOiBodHRwczov L2Nocm9taXVtLXJldmlldy5nb29nbGVzb3VyY2UuY29tL2MvY2hyb21pdW0vc3JjLysvMjMxNTQ0 MAorUmV2aWV3ZWQtYnk6IE1pa2UgS2xlaW4gPG10a2xlaW5AZ29vZ2xlLmNvbT4KK1Jldmlld2Vk LWJ5OiBBZGVuaWxzb24gQ2F2YWxjYW50aSA8Y2F2YWxjYW50aWlAY2hyb21pdW0ub3JnPgorQ29t bWl0LVF1ZXVlOiBBZGVuaWxzb24gQ2F2YWxjYW50aSA8Y2F2YWxjYW50aWlAY2hyb21pdW0ub3Jn PgorQ3ItQ29tbWl0LVBvc2l0aW9uOiByZWZzL2hlYWRzL21hc3RlckB7Izc5MjUwNH0KKworZGlm ZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3psaWIvY29udHJpYi9vcHRpbWl6YXRpb25zL2luc2VydF9z dHJpbmcuaCBiL3RoaXJkX3BhcnR5L3psaWIvY29udHJpYi9vcHRpbWl6YXRpb25zL2luc2VydF9z dHJpbmcuaAoraW5kZXggZDNiYzMzYy4uOWY2MzRhZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5 L3psaWIvY29udHJpYi9vcHRpbWl6YXRpb25zL2luc2VydF9zdHJpbmcuaAorKysrIGIvdGhpcmRf cGFydHkvemxpYi9jb250cmliL29wdGltaXphdGlvbnMvaW5zZXJ0X3N0cmluZy5oCisKK0BAIC0y OCwxMSArMjgsMTUgQEAKKyAjZWxpZiBkZWZpbmVkKENSQzMyX0FSTVY4X0NSQzMyKQorICAgI2lm IGRlZmluZWQoX19jbGFuZ19fKQorICAgICAjZGVmaW5lIF9fY3JjMzJjdyBfX2J1aWx0aW5fYXJt X2NyYzMyY3cKKysgICNlbGlmIGRlZmluZWQoX19HTlVDX18pCisrICAgICNkZWZpbmUgX19jcmMz MmN3IF9fYnVpbHRpbl9hYXJjaDY0X2NyYzMyY3cKKyAgICNlbmRpZgorIAorLSAgI2lmIGRlZmlu ZWQoX19hYXJjaDY0X18pCisrICAjaWYgZGVmaW5lZChfX2FhcmNoNjRfXykgJiYgZGVmaW5lZChf X2NsYW5nX18pCisgICAgICNkZWZpbmUgVEFSR0VUX0NQVV9XSVRIX0NSQyBfX2F0dHJpYnV0ZV9f KCh0YXJnZXQoImNyYyIpKSkKKy0gICNlbHNlICAvLyAhZGVmaW5lZChfX2FhcmNoNjRfXykKKysg ICNlbGlmIGRlZmluZWQoX19hYXJjaDY0X18pICYmIGRlZmluZWQoX19HTlVDX18pCisrICAgICNk ZWZpbmUgVEFSR0VUX0NQVV9XSVRIX0NSQyBfX2F0dHJpYnV0ZV9fKCh0YXJnZXQoIitjcmMiKSkp CisrICAjZWxpZiBkZWZpbmVkKF9fY2xhbmdfXykgLy8gIWRlZmluZWQoX19hYXJjaDY0X18pCisg ICAgICNkZWZpbmUgVEFSR0VUX0NQVV9XSVRIX0NSQyBfX2F0dHJpYnV0ZV9fKCh0YXJnZXQoImFy bXY4LWEsY3JjIikpKQorICAgI2VuZGlmICAvLyBkZWZpbmVkKF9fYWFyY2g2NF9fKQpkaWZmIC0t Z2l0IGEvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1nY2MtbW92ZS1h c3NpZ25lbWVudC1vcGVyYXRvcnMtbm9leGNlcHQucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uOS9m aWxlcy9wYXRjaGVzL2Nocm9taXVtLWdjYy1tb3ZlLWFzc2lnbmVtZW50LW9wZXJhdG9ycy1ub2V4 Y2VwdC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNTY5MThj ZGYzNzgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVz L2Nocm9taXVtLWdjYy1tb3ZlLWFzc2lnbmVtZW50LW9wZXJhdG9ycy1ub2V4Y2VwdC5wYXRjaApA QCAtMCwwICsxLDY2IEBACitGcm9tIDkxMWJkY2Q4Y2M1NDc1YmU0ZWM0MjI4Y2ZiYzg1ZmMzOGY1 Mjg1N2UgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBTdGVwaGFuIEhhcnRtYW5uIDxz dGhhMDlAZ29vZ2xlbWFpbC5jb20+CitEYXRlOiBXZWQsIDI3IE1heSAyMDIwIDEwOjAwOjQxICsw MDAwCitTdWJqZWN0OiBbUEFUQ0hdIEdDQzogbWFrZSBiYXNlOjp7ZmxhdF9tYXAsZmxhdF90cmVl fSBtb3ZlIGFzc2lnbmVtZW50IG9wZXJhdG9ycyBub2V4Y2VwdAorCitNb3ZlIGFzc2lnbWVudCBv cGVyYXRvciBpbiB1aTo6Q29sb3JTZXQgaXMgbm9leGNlcHQuIEJlY2F1c2UgdGhpcworY2xhc3Mg aGFzIGEgbWVtYmVyIG9mIHR5cGUgYmFzZTo6ZmxhdF9tYXAsIG1vdmUgYXNzaWdubWVudCBvcGVy YXRvcnMKK29mIGJhc2U6OmZsYXRfbWFwIGFuZCBiYXNlOjpmbGF0X3RyZWUgbXVzdCBiZSBub2V4 Y2VwdCB0b28uCitiYXNlOjpmbGF0X3RyZWUgbm9leGNlcHQgaXMgY29uZGl0aW9uYWwgdG8gYXZv aWQgYnVpbGQgZmFpbHVyZSB3aXRoCitOYUNsLgorCitPdGhlcndpc2UgR0NDIGZhaWxzIGxpa2Ug dGhpczoKKworLi4vLi4vdWkvY29sb3IvY29sb3Jfc2V0LmNjOjE0OjExOiBlcnJvcjogZnVuY3Rp b24KKyd1aTo6Q29sb3JTZXQmIHVpOjpDb2xvclNldDo6b3BlcmF0b3I9KHVpOjpDb2xvclNldCYm KScgZGVmYXVsdGVkIG9uIGl0cworcmVkZWNsYXJhdGlvbiB3aXRoIGFuIGV4Y2VwdGlvbi1zcGVj aWZpY2F0aW9uIHRoYXQgZGlmZmVycyBmcm9tIHRoZQoraW1wbGljaXQgZXhjZXB0aW9uLXNwZWNp ZmljYXRpb24gJycKKyAgIDE0IHwgQ29sb3JTZXQmIENvbG9yU2V0OjpvcGVyYXRvcj0oQ29sb3JT ZXQmJikgbm9leGNlcHQgPSBkZWZhdWx0OworICAgICAgfCAgICAgICAgICAgXn5+fn5+fn4KKwor QnVnOiA4MTkyOTQKK0NoYW5nZS1JZDogSTEwY2UzMTg1MWVmZmM5Y2U3OGYyYjVjYmJiNzE0OGMz MzlmMDY1YTcKK1Jldmlld2VkLW9uOiBodHRwczovL2Nocm9taXVtLXJldmlldy5nb29nbGVzb3Vy Y2UuY29tL2MvY2hyb21pdW0vc3JjLysvMjE3OTI0NQorQ29tbWl0LVF1ZXVlOiBKYW4gV2lsa2Vu IETDtnJyaWUgPGpkb2VycmllQGNocm9taXVtLm9yZz4KK1Jldmlld2VkLWJ5OiBEYW5pZWwgQ2hl bmcgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CitDci1Db21taXQtUG9zaXRpb246IHJlZnMvaGVhZHMv bWFzdGVyQHsjNzcyMTc1fQorLS0tCisKK2RpZmYgLS1naXQgYS9iYXNlL2NvbnRhaW5lcnMvZmxh dF9tYXAuaCBiL2Jhc2UvY29udGFpbmVycy9mbGF0X21hcC5oCitpbmRleCBlZDgyYzVkLi4xYWY2 YjQwIDEwMDY0NAorLS0tIGEvYmFzZS9jb250YWluZXJzL2ZsYXRfbWFwLmgKKysrKyBiL2Jhc2Uv Y29udGFpbmVycy9mbGF0X21hcC5oCitAQCAtMjAyLDcgKzIwMiw3IEBACisgICB+ZmxhdF9tYXAo KSA9IGRlZmF1bHQ7CisgCisgICBmbGF0X21hcCYgb3BlcmF0b3I9KGNvbnN0IGZsYXRfbWFwJikg PSBkZWZhdWx0OworLSAgZmxhdF9tYXAmIG9wZXJhdG9yPShmbGF0X21hcCYmKSA9IGRlZmF1bHQ7 CisrICBmbGF0X21hcCYgb3BlcmF0b3I9KGZsYXRfbWFwJiYpIG5vZXhjZXB0ID0gZGVmYXVsdDsK KyAgIC8vIFRha2VzIHRoZSBmaXJzdCBpZiB0aGVyZSBhcmUgZHVwbGljYXRlcyBpbiB0aGUgaW5p dGlhbGl6ZXIgbGlzdC4KKyAgIGZsYXRfbWFwJiBvcGVyYXRvcj0oc3RkOjppbml0aWFsaXplcl9s aXN0PHZhbHVlX3R5cGU+IGlsaXN0KTsKKyAKK2RpZmYgLS1naXQgYS9iYXNlL2NvbnRhaW5lcnMv ZmxhdF90cmVlLmggYi9iYXNlL2NvbnRhaW5lcnMvZmxhdF90cmVlLmgKK2luZGV4IDk0MTJmZjYu LmNlNmU5MmIgMTAwNjQ0CistLS0gYS9iYXNlL2NvbnRhaW5lcnMvZmxhdF90cmVlLmgKKysrKyBi L2Jhc2UvY29udGFpbmVycy9mbGF0X3RyZWUuaAorQEAgLTEyNSw3ICsxMjUsOCBAQAorICAgLy8g QXNzdW1lIHRoYXQgbW92ZSBhc3NpZ25tZW50IGludmFsaWRhdGVzIGl0ZXJhdG9ycyBhbmQgcmVm ZXJlbmNlcy4KKyAKKyAgIGZsYXRfdHJlZSYgb3BlcmF0b3I9KGNvbnN0IGZsYXRfdHJlZSYpOwor LSAgZmxhdF90cmVlJiBvcGVyYXRvcj0oZmxhdF90cmVlJiYpOworKyAgZmxhdF90cmVlJiBvcGVy YXRvcj0oZmxhdF90cmVlJiYpIG5vZXhjZXB0KAorKyAgICAgIHN0ZDo6aXNfbm90aHJvd19tb3Zl X2Fzc2lnbmFibGU8dW5kZXJseWluZ190eXBlPjo6dmFsdWUpOworICAgLy8gVGFrZXMgdGhlIGZp cnN0IGlmIHRoZXJlIGFyZSBkdXBsaWNhdGVzIGluIHRoZSBpbml0aWFsaXplciBsaXN0LgorICAg ZmxhdF90cmVlJiBvcGVyYXRvcj0oc3RkOjppbml0aWFsaXplcl9saXN0PHZhbHVlX3R5cGU+IGls aXN0KTsKKyAKK0BAIC01MTgsNyArNTE5LDkgQEAKKyAgICAgY29uc3QgZmxhdF90cmVlJikgLT4g ZmxhdF90cmVlJiA9IGRlZmF1bHQ7CisgCisgdGVtcGxhdGUgPGNsYXNzIEtleSwgY2xhc3MgVmFs dWUsIGNsYXNzIEdldEtleUZyb21WYWx1ZSwgY2xhc3MgS2V5Q29tcGFyZT4KKy1hdXRvIGZsYXRf dHJlZTxLZXksIFZhbHVlLCBHZXRLZXlGcm9tVmFsdWUsIEtleUNvbXBhcmU+OjpvcGVyYXRvcj0o ZmxhdF90cmVlICYmKQorK2F1dG8gZmxhdF90cmVlPEtleSwgVmFsdWUsIEdldEtleUZyb21WYWx1 ZSwgS2V5Q29tcGFyZT46OgorK29wZXJhdG9yPShmbGF0X3RyZWUmJikgbm9leGNlcHQoCisrICAg IHN0ZDo6aXNfbm90aHJvd19tb3ZlX2Fzc2lnbmFibGU8dW5kZXJseWluZ190eXBlPjo6dmFsdWUp CisgICAgIC0+IGZsYXRfdHJlZSYgPSBkZWZhdWx0OworIAorIHRlbXBsYXRlIDxjbGFzcyBLZXks IGNsYXNzIFZhbHVlLCBjbGFzcyBHZXRLZXlGcm9tVmFsdWUsIGNsYXNzIEtleUNvbXBhcmU+CmRp ZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWdjYy1z aGFyZWQucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWdj Yy1zaGFyZWQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjA5 OGI2ODMyMjQyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0 Y2hlcy9jaHJvbWl1bS1nY2Mtc2hhcmVkLnBhdGNoCkBAIC0wLDAgKzEsMjAgQEAKKy0tLSBhL2J1 aWxkL3Rvb2xjaGFpbi9nY2NfdG9vbGNoYWluLmduaQkyMDE5LTExLTE5IDAyOjI3OjQzLjAwMDAw MDAwMCArMDEwMAorKysrIC0JMjAyMC0wNy0yMSAwMDo1OTowOS4yMDE0MjE0NjkgKzAyMDAKK0BA IC0zNzEsNyArMzcxLDcgQEAKKyAgICAgICAjIC5UT0MgZmlsZSwgb3ZlcndyaXRlIGl0LCBvdGhl cndpc2UsIGRvbid0IGNoYW5nZSBpdC4KKyAgICAgICB0b2NmaWxlID0gc29maWxlICsgIi5UT0Mi CisgCistICAgICAgbGlua19jb21tYW5kID0gIiRsZCAtc2hhcmVkIC1XbCwtc29uYW1lPVwiJHNv bmFtZVwiIHt7bGRmbGFnc319JHtleHRyYV9sZGZsYWdzfSAtbyBcIiR1bnN0cmlwcGVkX3NvZmls ZVwiIEBcIiRyc3BmaWxlXCIiCisrICAgICAgbGlua19jb21tYW5kID0gIiRsZCAtc2hhcmVkIC1X bCwtc29uYW1lPVwiJHNvbmFtZVwiIHt7bGRmbGFnc319JHtleHRyYV9sZGZsYWdzfSAtbyBcIiR1 bnN0cmlwcGVkX3NvZmlsZVwiIC1zaGFyZWQgQFwiJHJzcGZpbGVcIiIKKyAKKyAgICAgICAjIEdl bmVyYXRlIGEgbWFwIGZpbGUgdG8gYmUgdXNlZCBmb3IgYmluYXJ5IHNpemUgYW5hbHlzaXMuCisg ICAgICAgIyBNYXAgZmlsZSBhZGRzIH4xMCUgdG8gdGhlIGxpbmsgdGltZSBvbiBhIHo2MjAuCitA QCAtNDUwLDcgKzQ1MCw3IEBACisgICAgICAgICB1bnN0cmlwcGVkX3NvZmlsZSA9IHNvZmlsZQor ICAgICAgIH0KKyAKKy0gICAgICBjb21tYW5kID0gIiRsZCAtc2hhcmVkIHt7bGRmbGFnc319JHtl eHRyYV9sZGZsYWdzfSAtbyBcIiR1bnN0cmlwcGVkX3NvZmlsZVwiIC1XbCwtc29uYW1lPVwiJHNv bmFtZVwiIEBcIiRyc3BmaWxlXCIiCisrICAgICAgY29tbWFuZCA9ICIkbGQgLXNoYXJlZCB7e2xk ZmxhZ3N9fSR7ZXh0cmFfbGRmbGFnc30gLW8gXCIkdW5zdHJpcHBlZF9zb2ZpbGVcIiAtV2wsLXNv bmFtZT1cIiRzb25hbWVcIiAtc2hhcmVkIEBcIiRyc3BmaWxlXCIiCisgCisgICAgICAgaWYgKGRl ZmluZWQoaW52b2tlci5zdHJpcCkpIHsKKyAgICAgICAgIHN0cmlwX2NvbW1hbmQgPSAiJHtpbnZv a2VyLnN0cmlwfSAtbyBcIiRzb2ZpbGVcIiBcIiR1bnN0cmlwcGVkX3NvZmlsZVwiIgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1nY2Mtd2VidWkt dGVtcGxhdGUucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVt LWdjYy13ZWJ1aS10ZW1wbGF0ZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMC4uODg0ZTQ1YjJkODMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9u OS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWdjYy13ZWJ1aS10ZW1wbGF0ZS5wYXRjaApAQCAtMCww ICsxLDY3IEBACitGcm9tIGFhNGJhMTkwNDNkYjFmNDFiYjA5ODJkNGI1MGY0ZjAwMTUxOTMwZjQg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBTdGVwaGFuIEhhcnRtYW5uIDxzdGhhMDlA Z29vZ2xlbWFpbC5jb20+CitEYXRlOiBUdWUsIDI2IE1heSAyMDIwIDE1OjI5OjQ5ICswMDAwCitT dWJqZWN0OiBbUEFUQ0hdIEdDQzogZml4IHRlbXBsYXRlIHNwZWNpYWxpemF0aW9uIGluIGNvbnRl bnQ6OldlYlVJCisKK0dDQyBjb21wbGFpbnMgdGhhdCBleHBsaWNpdCBzcGVjaWFsaXphdGlvbiBp biBub24tbmFtZXNwYWNlIHNjb3BlCitpcyBoYXBwZW5pbmcgZm9yIEdldFZhbHVlLiBNb3ZlIHRo ZSBtZXRob2RzIG91dHNpZGUKK3RoZSBjbGFzcyBkZWZpbml0aW9uLgorCitCdWc6IDgxOTI5NAor Q2hhbmdlLUlkOiBJMTA5NDcyYTBiNmZhN2RkYWIzNTI5YmM5MmJiYTY4MDI1MmI0MGY2NworUmV2 aWV3ZWQtb246IGh0dHBzOi8vY2hyb21pdW0tcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20vYy9jaHJv bWl1bS9zcmMvKy8yMTI4MzA3CitSZXZpZXdlZC1ieTogQ2FtaWxsZSBMYW15IDxjbGFteUBjaHJv bWl1bS5vcmc+CitDb21taXQtUXVldWU6IENhbWlsbGUgTGFteSA8Y2xhbXlAY2hyb21pdW0ub3Jn PgorQ3ItQ29tbWl0LVBvc2l0aW9uOiByZWZzL2hlYWRzL21hc3RlckB7Izc3MTgxOH0KKy0tLQor CitkaWZmIC0tZ2l0IGEvY29udGVudC9wdWJsaWMvYnJvd3Nlci93ZWJfdWkuaCBiL2NvbnRlbnQv cHVibGljL2Jyb3dzZXIvd2ViX3VpLmgKK2luZGV4IDRlNmFhMGUuLmZhNmYxMGMgMTAwNjQ0Cist LS0gYS9jb250ZW50L3B1YmxpYy9icm93c2VyL3dlYl91aS5oCisrKysgYi9jb250ZW50L3B1Ymxp Yy9icm93c2VyL3dlYl91aS5oCitAQCAtMTM4LDIyICsxMzgsNiBAQAorICAgdGVtcGxhdGUgPHR5 cGVuYW1lIFQ+CisgICBzdGF0aWMgVCBHZXRWYWx1ZShjb25zdCBiYXNlOjpWYWx1ZSYgdmFsdWUp OworIAorLSAgdGVtcGxhdGUgPD4KKy0gIGlubGluZSBib29sIEdldFZhbHVlPGJvb2w+KGNvbnN0 IGJhc2U6OlZhbHVlJiB2YWx1ZSkgeworLSAgICByZXR1cm4gdmFsdWUuR2V0Qm9vbCgpOworLSAg fQorLQorLSAgdGVtcGxhdGUgPD4KKy0gIGlubGluZSBpbnQgR2V0VmFsdWU8aW50Pihjb25zdCBi YXNlOjpWYWx1ZSYgdmFsdWUpIHsKKy0gICAgcmV0dXJuIHZhbHVlLkdldEludCgpOworLSAgfQor LQorLSAgdGVtcGxhdGUgPD4KKy0gIGlubGluZSBjb25zdCBzdGQ6OnN0cmluZyYgR2V0VmFsdWU8 Y29uc3Qgc3RkOjpzdHJpbmcmPigKKy0gICAgICBjb25zdCBiYXNlOjpWYWx1ZSYgdmFsdWUpIHsK Ky0gICAgcmV0dXJuIHZhbHVlLkdldFN0cmluZygpOworLSAgfQorLQorICAgdGVtcGxhdGUgPHR5 cGVuYW1lIElzLCB0eXBlbmFtZS4uLiBBcmdzPgorICAgc3RydWN0IENhbGw7CisgCitAQCAtMTY5 LDYgKzE1MywyMiBAQAorICAgfTsKKyB9OworIAorK3RlbXBsYXRlIDw+CisraW5saW5lIGJvb2wg V2ViVUk6OkdldFZhbHVlPGJvb2w+KGNvbnN0IGJhc2U6OlZhbHVlJiB2YWx1ZSkgeworKyAgcmV0 dXJuIHZhbHVlLkdldEJvb2woKTsKKyt9CisrCisrdGVtcGxhdGUgPD4KKytpbmxpbmUgaW50IFdl YlVJOjpHZXRWYWx1ZTxpbnQ+KGNvbnN0IGJhc2U6OlZhbHVlJiB2YWx1ZSkgeworKyAgcmV0dXJu IHZhbHVlLkdldEludCgpOworK30KKysKKyt0ZW1wbGF0ZSA8PgorK2lubGluZSBjb25zdCBzdGQ6 OnN0cmluZyYgV2ViVUk6OkdldFZhbHVlPGNvbnN0IHN0ZDo6c3RyaW5nJj4oCisrICAgIGNvbnN0 IGJhc2U6OlZhbHVlJiB2YWx1ZSkgeworKyAgcmV0dXJuIHZhbHVlLkdldFN0cmluZygpOworK30K KysKKyB9ICAvLyBuYW1lc3BhY2UgY29udGVudAorIAorICNlbmRpZiAgLy8gQ09OVEVOVF9QVUJM SUNfQlJPV1NFUl9XRUJfVUlfSF8KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVz L3BhdGNoZXMvY2hyb21pdW0taW5jbHVkZS1tZW1vcnktaGVhZGVyLXRvLWdldC10aGUtZGVmaW5p dGlvbi1vZi1zdGQtdS5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMvY2hy b21pdW0taW5jbHVkZS1tZW1vcnktaGVhZGVyLXRvLWdldC10aGUtZGVmaW5pdGlvbi1vZi1zdGQt dS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZWIzMGFkMjQz N2YKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2No cm9taXVtLWluY2x1ZGUtbWVtb3J5LWhlYWRlci10by1nZXQtdGhlLWRlZmluaXRpb24tb2Ytc3Rk LXUucGF0Y2gKQEAgLTAsMCArMSwzMiBAQAorRnJvbSA0MGQ5OTRlNGFhMmU0ZDUwNzdjMTgxMGU0 NjIzNTQ5NjE4YTE5YzA1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogUGlvdHIgVHdv cmVrIDxwdHdvcmVrQHZld2QuY29tPgorRGF0ZTogTW9uLCAyNyBBcHIgMjAyMCAxNjozMTo0NiAr MDAwMAorU3ViamVjdDogW1BBVENIXSBJbmNsdWRlICJtZW1vcnkiIGhlYWRlciB0byBnZXQgdGhl IGRlZmluaXRpb24gb2YKKyBzdGQ6OnVuaXF1ZV9wdHIuCisKK1JpZ2h0IG5vdyB0aGUgY29kZSBp bSB0aGUgYWZmZWN0ZWQgZmFpbHMgdG8gYnVpbGQgd2hlbiB1c2luZyBsaWJzdGRjKysKK2luc3Rl YWQgb2YgYnVuZGxlZCBsaWJjeHguIEFwcGFyZW50bHkgbGliY3h4IHB1bGxzIHRoZSBuZWNlc3Nh cnkgaGVhZGVyCitpbmRpcmVjdGx5LgorCitDaGFuZ2UtSWQ6IEllNWU4NmYyMjg0MzRhYjE2ZDYy MmFlN2E5MTJkOWNlNjA3MjU4OTMxCitSZXZpZXdlZC1vbjogaHR0cHM6Ly9jaHJvbWl1bS1yZXZp ZXcuZ29vZ2xlc291cmNlLmNvbS9jL2Nocm9taXVtL3NyYy8rLzIxNjQ2NDUKK1Jldmlld2VkLWJ5 OiBKb2NoZW4gRWlzaW5nZXIgPGpvY2hlbkBjaHJvbWl1bS5vcmc+CitDb21taXQtUXVldWU6IEpv Y2hlbiBFaXNpbmdlciA8am9jaGVuQGNocm9taXVtLm9yZz4KK0NyLUNvbW1pdC1Qb3NpdGlvbjog cmVmcy9oZWFkcy9tYXN0ZXJAeyM3NjI4ODF9CistLS0KKyAuLi4vYmxpbmsvcmVuZGVyZXIvY29y ZS9odG1sL3RydXN0X3Rva2VuX2F0dHJpYnV0ZV9wYXJzaW5nLmggICAgfCAyICsrCisgMSBmaWxl IGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYmxp bmsvcmVuZGVyZXIvY29yZS9odG1sL3RydXN0X3Rva2VuX2F0dHJpYnV0ZV9wYXJzaW5nLmggYi90 aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9jb3JlL2h0bWwvdHJ1c3RfdG9rZW5fYXR0cmlidXRl X3BhcnNpbmcuaAoraW5kZXggZjVhN2FiMDM4OTIuLmVmMTljZmFmNjgwIDEwMDY0NAorLS0tIGEv dGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvY29yZS9odG1sL3RydXN0X3Rva2VuX2F0dHJpYnV0 ZV9wYXJzaW5nLmgKKysrKyBiL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL2NvcmUvaHRtbC90 cnVzdF90b2tlbl9hdHRyaWJ1dGVfcGFyc2luZy5oCitAQCAtNSw2ICs1LDggQEAKKyAjaWZuZGVm IFRISVJEX1BBUlRZX0JMSU5LX1JFTkRFUkVSX0NPUkVfSFRNTF9UUlVTVF9UT0tFTl9BVFRSSUJV VEVfUEFSU0lOR19IXworICNkZWZpbmUgVEhJUkRfUEFSVFlfQkxJTktfUkVOREVSRVJfQ09SRV9I VE1MX1RSVVNUX1RPS0VOX0FUVFJJQlVURV9QQVJTSU5HX0hfCisgCisrI2luY2x1ZGUgPG1lbW9y eT4KKysKKyAjaW5jbHVkZSAiYmFzZS9vcHRpb25hbC5oIgorICNpbmNsdWRlICJzZXJ2aWNlcy9u ZXR3b3JrL3B1YmxpYy9tb2pvbS90cnVzdF90b2tlbnMubW9qb20tYmxpbmstZm9yd2FyZC5oIgor ICNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9jb3JlL2NvcmVfZXhwb3J0Lmgi CmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWl3 eXUtc3RkLW51bWVyaWNfbGltaXRzLWlzLWRlZmluZWQtaW4tbGltaXRzLnBhdGNoIGIvc3JjcGtn cy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1pd3l1LXN0ZC1udW1lcmljX2xpbWl0 cy1pcy1kZWZpbmVkLWluLWxpbWl0cy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uMzliZTQxMDAyYTQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0 cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWl3eXUtc3RkLW51bWVyaWNfbGltaXRzLWlzLWRl ZmluZWQtaW4tbGltaXRzLnBhdGNoCkBAIC0wLDAgKzEsMjkgQEAKK0Zyb20gNzRmNzZhNmJlMzg1 ZWYwNTZiMGJlMjM2MmMzMmM3MjgxNDFjY2ExNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zy b206IFN0ZXBoYW4gSGFydG1hbm4gPHN0aGEwOUBnb29nbGVtYWlsLmNvbT4KK0RhdGU6IEZyaSwg MTcgQXByIDIwMjAgMTY6MDQ6MTIgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSF0gSVdZVTogc3RkOjpu dW1lcmljX2xpbWl0cyBpcyBkZWZpbmVkIGluIGxpbWl0cworTUlNRS1WZXJzaW9uOiAxLjAKK0Nv bnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29udGVudC1UcmFuc2Zlci1F bmNvZGluZzogOGJpdAorCitDaGFuZ2UtSWQ6IElmYmMzNzlhZGM1YmI3MjQyYzIxZTdkYTBiY2Zj MjhmNDllNGRkMDZmCitSZXZpZXdlZC1vbjogaHR0cHM6Ly9jaHJvbWl1bS1yZXZpZXcuZ29vZ2xl c291cmNlLmNvbS9jL2Nocm9taXVtL3NyYy8rLzIxNTMxMTEKK1Jldmlld2VkLWJ5OiBGcmFuw6dv aXMgRG9yYXkgPGZkb3JheUBjaHJvbWl1bS5vcmc+CitDb21taXQtUXVldWU6IEZyYW7Dp29pcyBE b3JheSA8ZmRvcmF5QGNocm9taXVtLm9yZz4KK0NyLUNvbW1pdC1Qb3NpdGlvbjogcmVmcy9oZWFk cy9tYXN0ZXJAeyM3NjAwNzV9CistLS0KKyAuLi4vZ3JhcGgvcG9saWNpZXMvYmFja2dyb3VuZF90 YWJfbG9hZGluZ19wb2xpY3lfaGVscGVycy5jYyAgICAgIHwgMSArCisgMSBmaWxlIGNoYW5nZWQs IDEgaW5zZXJ0aW9uKCspCisKK2RpZmYgLS1naXQgYS9jaHJvbWUvYnJvd3Nlci9wZXJmb3JtYW5j ZV9tYW5hZ2VyL2dyYXBoL3BvbGljaWVzL2JhY2tncm91bmRfdGFiX2xvYWRpbmdfcG9saWN5X2hl bHBlcnMuY2MgYi9jaHJvbWUvYnJvd3Nlci9wZXJmb3JtYW5jZV9tYW5hZ2VyL2dyYXBoL3BvbGlj aWVzL2JhY2tncm91bmRfdGFiX2xvYWRpbmdfcG9saWN5X2hlbHBlcnMuY2MKK2luZGV4IDQ4ODFj MDEwYmI5Li41OTM1MDFkMTZhNyAxMDA2NDQKKy0tLSBhL2Nocm9tZS9icm93c2VyL3BlcmZvcm1h bmNlX21hbmFnZXIvZ3JhcGgvcG9saWNpZXMvYmFja2dyb3VuZF90YWJfbG9hZGluZ19wb2xpY3lf aGVscGVycy5jYwkyMDIwLTA2LTI1IDAwOjM5OjMxLjAwMDAwMDAwMCArMDIwMAorKysrIC0JMjAy MC0wOC0yMiAxODozMzo1NS44Nzk0NjQ4MjAgKzAyMDAKK0BAIC0zLDYgKzMsNyBAQAorIC8vIGZv dW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisgCisgI2luY2x1ZGUgImNocm9tZS9icm93c2VyL3Bl cmZvcm1hbmNlX21hbmFnZXIvZ3JhcGgvcG9saWNpZXMvYmFja2dyb3VuZF90YWJfbG9hZGluZ19w b2xpY3lfaGVscGVycy5oIgorKyNpbmNsdWRlIDxsaW1pdHM+CisgI2luY2x1ZGUgImJhc2UvbG9n Z2luZy5oIgorIAorIG5hbWVzcGFjZSBwZXJmb3JtYW5jZV9tYW5hZ2VyIHsKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tbGliY19tYWxsb2MucGF0 Y2ggYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWxpYmNfbWFsbG9j LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yN2NkMmNlZmM0 NgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMvY2hy b21pdW0tbGliY19tYWxsb2MucGF0Y2gKQEAgLTAsMCArMSwyNiBAQAorLS0tIGEvYmFzZS9wcm9j ZXNzL21lbW9yeV9saW51eC5jYy5vcmlnCTIwMTctMDktMTUgMDg6NDE6NDMuMDAwMDAwMDAwICsw MDAwCisrKysgYi9iYXNlL3Byb2Nlc3MvbWVtb3J5X2xpbnV4LmNjCTIwMTctMDktMTUgMDg6NDQ6 MzkuODA0OTk1NDY5ICswMDAwCitAQCAtMjEsNiArMjEsMTIgQEAKKyAjaW5jbHVkZSAidGhpcmRf cGFydHkvdGNtYWxsb2MvY2hyb21pdW0vc3JjL2dwZXJmdG9vbHMvdGNtYWxsb2MuaCIKKyAjZW5k aWYKKyAKKysjaWYgZGVmaW5lZChMSUJDX0dMSUJDKQorK2V4dGVybiAiQyIgeworK2V4dGVybiB2 b2lkICpfX2xpYmNfbWFsbG9jKHNpemVfdCBzaXplKTsKKyt9CisrI2VuZGlmCisrCisgbmFtZXNw YWNlIGJhc2UgeworIAorIHNpemVfdCBnX29vbV9zaXplID0gMFU7CistLS0gYS9iYXNlL3Byb2Nl c3MvbWVtb3J5X2xpbnV4LmNjLm9yaWcJMjAxNy0wOS0xNSAwODo0Njo1NS4wMDAwMDAwMDAgKzAw MDAKKysrKyBiL2Jhc2UvcHJvY2Vzcy9tZW1vcnlfbGludXguY2MJMjAxNy0wOS0xNSAwODo1MToz NC40MjIwMTY4NTggKzAwMDAKK0BAIC0xMDcsNyArMTA3LDcgQEAKKyAgICAgKCFkZWZpbmVkKExJ QkNfR0xJQkMpICYmICFkZWZpbmVkKFVTRV9UQ01BTExPQykpCisgICAqcmVzdWx0ID0gbWFsbG9j KHNpemUpOworICNlbGlmIGRlZmluZWQoTElCQ19HTElCQykgJiYgIWRlZmluZWQoVVNFX1RDTUFM TE9DKQorLSAgKnJlc3VsdCA9IF9fbGliY19tYWxsb2Moc2l6ZSk7CisrICAqcmVzdWx0ID0gOjpf X2xpYmNfbWFsbG9jKHNpemUpOworICNlbGlmIGRlZmluZWQoVVNFX1RDTUFMTE9DKQorICAgKnJl c3VsdCA9IHRjX21hbGxvY19za2lwX25ld19oYW5kbGVyKHNpemUpOworICNlbmRpZgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1saWJzdGRjLWZp eC1pbmNvbXBsZXRlLXR5cGUtaW4tQVhUcmVlLWZvci1Ob2RlU2V0U2l6LnBhdGNoIGIvc3JjcGtn cy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1saWJzdGRjLWZpeC1pbmNvbXBsZXRl LXR5cGUtaW4tQVhUcmVlLWZvci1Ob2RlU2V0U2l6LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwLi41ZTlkMzdhYWU1NAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3Br Z3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tbGlic3RkYy1maXgtaW5jb21wbGV0 ZS10eXBlLWluLUFYVHJlZS1mb3ItTm9kZVNldFNpei5wYXRjaApAQCAtMCwwICsxLDYyIEBACitG cm9tIGFlZWY2ODg4OGQ0YzAwYjY5ZmFjZWFkMmI5MzQwOTVhOGNkMTczMjkgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCitGcm9tOiBTdGVwaGFuIEhhcnRtYW5uIDxzdGhhMDlAZ29vZ2xlbWFpbC5j b20+CitEYXRlOiBNb24sIDIwIEFwciAyMDIwIDE4OjIxOjQzICswMDAwCitTdWJqZWN0OiBbUEFU Q0hdIGxpYnN0ZGMrKzogZml4IGluY29tcGxldGUtdHlwZSBpbiBBWFRyZWUgZm9yCisgTm9kZVNl dFNpemVQb3NJblNldEluZm8KKworaGFzIG9ubHkgZm9yd2FyZCBkZWNsYXJhdGlvbiBvZiBOb2Rl U2V0U2l6ZVBvc0luU2V0SW5mby4gVGhlcmVmb3JlLAorbW92ZSBkZWNsYXJhdGlvbiBmcm9tIGF4 X3RyZWUuY2MuCisKK3N0ZDogOnVub3JkZXJlZF9tYXA8VCwgVT4gcmVxdWlyZXMgVSB0byBiZSBm dWxseSBkZWNsYXJlZC4gYXhfdHJlZS5oCitCdWc6IDk1NzUxOQorQ2hhbmdlLUlkOiBJYzFmNGJm M2ViZmVhMjI5ZWNlODQyNTFlNDZkNDQ2MWIzMTg3Mzg2OAorUmV2aWV3ZWQtb246IGh0dHBzOi8v Y2hyb21pdW0tcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20vYy9jaHJvbWl1bS9zcmMvKy8yMTMyNDAz CitSZXZpZXdlZC1ieTogRGF2aWQgVHNlbmcgPGR0c2VuZ0BjaHJvbWl1bS5vcmc+CitDb21taXQt UXVldWU6IERhdmlkIFRzZW5nIDxkdHNlbmdAY2hyb21pdW0ub3JnPgorQ3ItQ29tbWl0LVBvc2l0 aW9uOiByZWZzL2hlYWRzL21hc3RlckB7Izc2MDU4OH0KKy0tLQorIHVpL2FjY2Vzc2liaWxpdHkv YXhfdHJlZS5jYyB8IDEwICsrLS0tLS0tLS0KKyB1aS9hY2Nlc3NpYmlsaXR5L2F4X3RyZWUuaCAg fCAgOSArKysrKysrKy0KKyAyIGZpbGVzIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDkgZGVs ZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS91aS9hY2Nlc3NpYmlsaXR5L2F4X3RyZWUuY2MgYi91 aS9hY2Nlc3NpYmlsaXR5L2F4X3RyZWUuY2MKK2luZGV4IDdiOGQ5YjFiMTYxLi5lOTE1NDAyOGQ2 NiAxMDA2NDQKKy0tLSBhL3VpL2FjY2Vzc2liaWxpdHkvYXhfdHJlZS5jYworKysrIGIvdWkvYWNj ZXNzaWJpbGl0eS9heF90cmVlLmNjCitAQCAtNTY3LDE0ICs1NjcsOCBAQCBzdHJ1Y3QgQVhUcmVl VXBkYXRlU3RhdGUgeworICAgY29uc3QgQVhUcmVlJiB0cmVlOworIH07CisgCistc3RydWN0IEFY VHJlZTo6Tm9kZVNldFNpemVQb3NJblNldEluZm8geworLSAgTm9kZVNldFNpemVQb3NJblNldElu Zm8oKSA9IGRlZmF1bHQ7CistICB+Tm9kZVNldFNpemVQb3NJblNldEluZm8oKSA9IGRlZmF1bHQ7 CistCistICBpbnQzMl90IHBvc19pbl9zZXQgPSAwOworLSAgaW50MzJfdCBzZXRfc2l6ZSA9IDA7 CistICBiYXNlOjpPcHRpb25hbDxpbnQ+IGxvd2VzdF9oaWVyYXJjaGljYWxfbGV2ZWw7CistfTsK KytBWFRyZWU6Ok5vZGVTZXRTaXplUG9zSW5TZXRJbmZvOjpOb2RlU2V0U2l6ZVBvc0luU2V0SW5m bygpID0gZGVmYXVsdDsKKytBWFRyZWU6Ok5vZGVTZXRTaXplUG9zSW5TZXRJbmZvOjp+Tm9kZVNl dFNpemVQb3NJblNldEluZm8oKSA9IGRlZmF1bHQ7CisgCisgc3RydWN0IEFYVHJlZTo6T3JkZXJl ZFNldENvbnRlbnQgeworICAgZXhwbGljaXQgT3JkZXJlZFNldENvbnRlbnQoY29uc3QgQVhOb2Rl KiBvcmRlcmVkX3NldCA9IG51bGxwdHIpCitkaWZmIC0tZ2l0IGEvdWkvYWNjZXNzaWJpbGl0eS9h eF90cmVlLmggYi91aS9hY2Nlc3NpYmlsaXR5L2F4X3RyZWUuaAoraW5kZXggYTUxY2E4ZGU0Yzgu LjhjMWM1NzUxN2FjIDEwMDY0NAorLS0tIGEvdWkvYWNjZXNzaWJpbGl0eS9heF90cmVlLmgKKysr KyBiL3VpL2FjY2Vzc2liaWxpdHkvYXhfdHJlZS5oCitAQCAtMzI4LDcgKzMyOCwxNCBAQCBjbGFz cyBBWF9FWFBPUlQgQVhUcmVlIDogcHVibGljIEFYTm9kZTo6T3duZXJUcmVlIHsKKyAgIGJvb2wg ZW5hYmxlX2V4dHJhX21hY19ub2Rlc18gPSBmYWxzZTsKKyAKKyAgIC8vIENvbnRhaW5zIHBvc19p bl9zZXQgYW5kIHNldF9zaXplIGRhdGEgZm9yIGFuIEFYTm9kZS4KKy0gIHN0cnVjdCBOb2RlU2V0 U2l6ZVBvc0luU2V0SW5mbzsKKysgIHN0cnVjdCBOb2RlU2V0U2l6ZVBvc0luU2V0SW5mbyB7Cisr ICAgIE5vZGVTZXRTaXplUG9zSW5TZXRJbmZvKCk7CisrICAgIH5Ob2RlU2V0U2l6ZVBvc0luU2V0 SW5mbygpOworKworKyAgICBpbnQzMl90IHBvc19pbl9zZXQgPSAwOworKyAgICBpbnQzMl90IHNl dF9zaXplID0gMDsKKysgICAgYmFzZTo6T3B0aW9uYWw8aW50PiBsb3dlc3RfaGllcmFyY2hpY2Fs X2xldmVsOworKyAgfTsKKyAKKyAgIC8vIFJlcHJlc2VudHMgdGhlIGNvbnRlbnQgb2YgYW4gb3Jk ZXJlZCBzZXQgd2hpY2ggaW5jbHVkZXMgdGhlIG9yZGVyZWQgc2V0CisgICAvLyBpdGVtcyBhbmQg dGhlIG9yZGVyZWQgc2V0IGNvbnRhaW5lciBpZiBpdCBleGlzdHMuCmRpZmYgLS1naXQgYS9zcmNw a2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLW1ha2Utc29tZS1vZi1ibGluay1j dXN0b20taXRlcmF0b3JzLVNUTC1jb21wYXRpYmxlLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjkv ZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1tYWtlLXNvbWUtb2YtYmxpbmstY3VzdG9tLWl0ZXJhdG9y cy1TVEwtY29tcGF0aWJsZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uMzBjYmRlZmNjNjUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uOS9m aWxlcy9wYXRjaGVzL2Nocm9taXVtLW1ha2Utc29tZS1vZi1ibGluay1jdXN0b20taXRlcmF0b3Jz LVNUTC1jb21wYXRpYmxlLnBhdGNoCkBAIC0wLDAgKzEsOTUgQEAKK0Zyb20gZDNjYWJiYzczMjFk MzQ5YTliZmZkYTQ4MmRmNWFmYzBkNGRmMWFjMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zy b206IFBpb3RyIFR3b3JlayA8cHR3b3Jla0B2ZXdkLmNvbT4KK0RhdGU6IFRodSwgMzAgQXByIDIw MjAgMjE6MzM6NDcgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSF0gTWFrZSBzb21lIG9mIGJsaW5rIGN1 c3RvbSBpdGVyYXRvcnMgU1RMIGNvbXBhdGlibGUuCisKK0JsaW5rIGhhcyByZWNlbnRseSBzdGFy dGVkIHVzaW5nIGZ1bmN0aW9ucyBsaWtlIHN0ZDo6YW55X29mIHdpdGggc29tZSBvZgordGhlIGN1 c3RvbSBpdGVyYXRvcnMgaXQgcHJvdmlkZXMuIE9uIExpbnV4IHRoaXMgd29ya3MgaW4gdGhlIGRl ZmF1bHQKK3NldHVwIHVzaW5nIGxpYmN4eCwgYnV0IGZhaWxzIHdpdGggZXZlbiB0aGUgbW9zdCBy ZWNlbnQgdmVyc2lvbnMgb2YKK2xpYnN0ZGMrKy4gSW4gYWxsIGNhc2VzIHRoZSBlcnJvciBtZXNz YWdlICh0ZXh0IGluIGJ1ZyByZXBvcnQpIGNvbXBsYWlucworYWJvdXQgbGFjayBvZiBtYXRjaGlu ZyBzdGQ6Ol9faXRlcmF0b3JfY2F0ZWdvcnkgZGVmaW5pdGlvbi4KKworRnJvbSB3aGF0IEkgdW5k ZXJzdGFuZCB0aGUgZXJyb3IgbWVzc2FnZSBpcyBiYXNpY2FsbHkgc2F5aW5nIHRob3NlCitpdGVy YXRvcnMgYXJlIG5vdCBTVEwgY29tcGF0aWJsZSBkdWUgdG8gbWlzc2luZyB0cmFpdHMgYXMgZGVz Y3JpYmVkCitpbiBodHRwczovL2VuLmNwcHJlZmVyZW5jZS5jb20vdy9jcHAvaXRlcmF0b3IvaXRl cmF0b3JfdHJhaXRzLiBTdWNoCit0cmFpdHMgYXJlIHByb3ZpZGVkIGJ5IGN1c3RvbSBpdGVyYXRv cnMgZGVmaW5lZCBpbiAvL2Jhc2UsIG9yIC8vY2MuCisKK1RoaXMgcGF0Y2ggYWRkcyB0aGUgbmVj ZXNzYXJ5IHRyYWl0cyB0byBpdGVyYXRvcnMgdGhhdCBhcmUgY3VycmVudGx5CithZmZlY3RlZCBi eSB0aGlzIHByb2JsZW0uCisKK0J1ZzogMTA3Njg2OQorQ2hhbmdlLUlkOiBJOTk1MGE3MTAwYzMy NDk5YmE5NjY0NzMxN2ZhNzBiODdkYzIyZWFmOQorUmV2aWV3ZWQtb246IGh0dHBzOi8vY2hyb21p dW0tcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20vYy9jaHJvbWl1bS9zcmMvKy8yMTc0MTk5CitSZXZp ZXdlZC1ieTogS2VudGFybyBIYXJhIDxoYXJha2VuQGNocm9taXVtLm9yZz4KK0NvbW1pdC1RdWV1 ZTogUGlvdHIgVHdvcmVrIDxwdHdvcmVrQHZld2QuY29tPgorQ3ItQ29tbWl0LVBvc2l0aW9uOiBy ZWZzL2hlYWRzL21hc3RlckB7Izc2NDQyNn0KKy0tLQorIC4uLi9jb3JlL2xheW91dC9uZy9uZ19w aHlzaWNhbF9jb250YWluZXJfZnJhZ21lbnQuaCAgfCAgNiArKysrKysKKyAuLi4vYmxpbmsvcmVu ZGVyZXIvcGxhdGZvcm0vd3RmL2hhc2hfaXRlcmF0b3JzLmggICAgIHwgMTIgKysrKysrKysrKysr CisgdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vd3RmL2hhc2hfdGFibGUuaCB8 ICA2ICsrKysrKworIDMgZmlsZXMgY2hhbmdlZCwgMjQgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0t Z2l0IGEvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvY29yZS9sYXlvdXQvbmcvbmdfcGh5c2lj YWxfY29udGFpbmVyX2ZyYWdtZW50LmggYi90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9jb3Jl L2xheW91dC9uZy9uZ19waHlzaWNhbF9jb250YWluZXJfZnJhZ21lbnQuaAoraW5kZXggMTI1NmU3 N2MxNDYuLjhiOTMxMDdmMmZjIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVy ZXIvY29yZS9sYXlvdXQvbmcvbmdfcGh5c2ljYWxfY29udGFpbmVyX2ZyYWdtZW50LmgKKysrKyBi L3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL2NvcmUvbGF5b3V0L25nL25nX3BoeXNpY2FsX2Nv bnRhaW5lcl9mcmFnbWVudC5oCitAQCAtMzgsNiArMzgsMTIgQEAgY2xhc3MgQ09SRV9FWFBPUlQg TkdQaHlzaWNhbENvbnRhaW5lckZyYWdtZW50IDogcHVibGljIE5HUGh5c2ljYWxGcmFnbWVudCB7 CisgICAgICAgU1RBQ0tfQUxMT0NBVEVEKCk7CisgCisgICAgICBwdWJsaWM6CisrICAgICAgdXNp bmcgaXRlcmF0b3JfY2F0ZWdvcnkgPSBzdGQ6OmJpZGlyZWN0aW9uYWxfaXRlcmF0b3JfdGFnOwor KyAgICAgIHVzaW5nIHZhbHVlX3R5cGUgPSBOR0xpbms7CisrICAgICAgdXNpbmcgZGlmZmVyZW5j ZV90eXBlID0gcHRyZGlmZl90OworKyAgICAgIHVzaW5nIHBvaW50ZXIgPSB2YWx1ZV90eXBlKjsK KysgICAgICB1c2luZyByZWZlcmVuY2UgPSB2YWx1ZV90eXBlJjsKKysKKyAgICAgICBDb25zdEl0 ZXJhdG9yKGNvbnN0IE5HTGluayogY3VycmVudCkgOiBjdXJyZW50XyhjdXJyZW50KSB7fQorIAor ICAgICAgIGNvbnN0IE5HTGluayYgb3BlcmF0b3IqKCkgY29uc3QgeyByZXR1cm4gKlBvc3RMYXlv dXRPckN1cnJlbnQoKTsgfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVy L3BsYXRmb3JtL3d0Zi9oYXNoX2l0ZXJhdG9ycy5oIGIvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVy ZXIvcGxhdGZvcm0vd3RmL2hhc2hfaXRlcmF0b3JzLmgKK2luZGV4IGY4ZTY2ZTZiZTg1Li42MDAz ZDAyYzUwOSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3Jt L3d0Zi9oYXNoX2l0ZXJhdG9ycy5oCisrKysgYi90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9w bGF0Zm9ybS93dGYvaGFzaF9pdGVyYXRvcnMuaAorQEAgLTUzLDYgKzUzLDEyIEBAIHN0cnVjdCBI YXNoVGFibGVDb25zdEl0ZXJhdG9yQWRhcHRlcjxIYXNoVGFibGVUeXBlLAorICAgdHlwZWRlZiBI YXNoVGFibGVDb25zdFZhbHVlc0l0ZXJhdG9yPEhhc2hUYWJsZVR5cGUsIEtleVR5cGUsIE1hcHBl ZFR5cGU+CisgICAgICAgVmFsdWVzSXRlcmF0b3I7CisgCisrICB1c2luZyBpdGVyYXRvcl9jYXRl Z29yeSA9IHN0ZDo6YmlkaXJlY3Rpb25hbF9pdGVyYXRvcl90YWc7CisrICB1c2luZyB2YWx1ZV90 eXBlID0gSGFzaFRhYmxlVHlwZTsKKysgIHVzaW5nIGRpZmZlcmVuY2VfdHlwZSA9IHB0cmRpZmZf dDsKKysgIHVzaW5nIHBvaW50ZXIgPSB2YWx1ZV90eXBlKjsKKysgIHVzaW5nIHJlZmVyZW5jZSA9 IHZhbHVlX3R5cGUmOworKworICAgSGFzaFRhYmxlQ29uc3RJdGVyYXRvckFkYXB0ZXIoKSA9IGRl ZmF1bHQ7CisgICBIYXNoVGFibGVDb25zdEl0ZXJhdG9yQWRhcHRlcigKKyAgICAgICBjb25zdCB0 eXBlbmFtZSBIYXNoVGFibGVUeXBlOjpjb25zdF9pdGVyYXRvciYgaW1wbCkKK0BAIC05NCw2ICsx MDAsMTIgQEAgc3RydWN0IEhhc2hUYWJsZUl0ZXJhdG9yQWRhcHRlcjxIYXNoVGFibGVUeXBlLAor ICAgdHlwZWRlZiBIYXNoVGFibGVWYWx1ZXNJdGVyYXRvcjxIYXNoVGFibGVUeXBlLCBLZXlUeXBl LCBNYXBwZWRUeXBlPgorICAgICAgIFZhbHVlc0l0ZXJhdG9yOworIAorKyAgdXNpbmcgaXRlcmF0 b3JfY2F0ZWdvcnkgPSBzdGQ6OmJpZGlyZWN0aW9uYWxfaXRlcmF0b3JfdGFnOworKyAgdXNpbmcg dmFsdWVfdHlwZSA9IEhhc2hUYWJsZVR5cGU7CisrICB1c2luZyBkaWZmZXJlbmNlX3R5cGUgPSBw dHJkaWZmX3Q7CisrICB1c2luZyBwb2ludGVyID0gdmFsdWVfdHlwZSo7CisrICB1c2luZyByZWZl cmVuY2UgPSB2YWx1ZV90eXBlJjsKKysKKyAgIEhhc2hUYWJsZUl0ZXJhdG9yQWRhcHRlcigpID0g ZGVmYXVsdDsKKyAgIEhhc2hUYWJsZUl0ZXJhdG9yQWRhcHRlcihjb25zdCB0eXBlbmFtZSBIYXNo VGFibGVUeXBlOjppdGVyYXRvciYgaW1wbCkKKyAgICAgICA6IGltcGxfKGltcGwpIHt9CitkaWZm IC0tZ2l0IGEvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vd3RmL2hhc2hfdGFi bGUuaCBiL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL3d0Zi9oYXNoX3RhYmxl LmgKK2luZGV4IGY1OTZmYjVkNDFlLi41YTQ0NjhkNmJkMSAxMDA2NDQKKy0tLSBhL3RoaXJkX3Bh cnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL3d0Zi9oYXNoX3RhYmxlLmgKKysrKyBiL3RoaXJk X3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL3d0Zi9oYXNoX3RhYmxlLmgKK0BAIC0yMjA0 LDYgKzIyMDQsMTIgQEAgc3RydWN0IEhhc2hUYWJsZUNvbnN0SXRlcmF0b3JBZGFwdGVyIHsKKyAg IFNUQUNLX0FMTE9DQVRFRCgpOworIAorICBwdWJsaWM6CisrICB1c2luZyBpdGVyYXRvcl9jYXRl Z29yeSA9IHN0ZDo6YmlkaXJlY3Rpb25hbF9pdGVyYXRvcl90YWc7CisrICB1c2luZyB2YWx1ZV90 eXBlID0gSGFzaFRhYmxlVHlwZTsKKysgIHVzaW5nIGRpZmZlcmVuY2VfdHlwZSA9IHB0cmRpZmZf dDsKKysgIHVzaW5nIHBvaW50ZXIgPSB2YWx1ZV90eXBlKjsKKysgIHVzaW5nIHJlZmVyZW5jZSA9 IHZhbHVlX3R5cGUmOworKworICAgSGFzaFRhYmxlQ29uc3RJdGVyYXRvckFkYXB0ZXIoKSA9IGRl ZmF1bHQ7CisgICBIYXNoVGFibGVDb25zdEl0ZXJhdG9yQWRhcHRlcigKKyAgICAgICBjb25zdCB0 eXBlbmFtZSBIYXNoVGFibGVUeXBlOjpjb25zdF9pdGVyYXRvciYgaW1wbCkKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tc2tpYS1oYXJtb255LnBh dGNoIGIvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1za2lhLWhhcm1v bnkucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjFjYjhhZWJm MjQwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9j aHJvbWl1bS1za2lhLWhhcm1vbnkucGF0Y2gKQEAgLTAsMCArMSwxNCBAQAorLS0tIGEvdGhpcmRf cGFydHkvc2tpYS9zcmMvcG9ydHMvU2tGb250SG9zdF9GcmVlVHlwZS5jcHAub3JpZwkyMDE5LTA3 LTE5IDExOjA4OjM0Ljc3MDk3MjY2NSArMDAwMAorKysrIGIvdGhpcmRfcGFydHkvc2tpYS9zcmMv cG9ydHMvU2tGb250SG9zdF9GcmVlVHlwZS5jcHAJMjAxOS0wNy0xOSAxMTowODo0NC4yNzQ0NDIw NjUgKzAwMDAKK0BAIC0xMjgsOSArMTI4LDkgQEAgcHVibGljOgorICAgICAgICAgOiBmR2V0VmFy RGVzaWduQ29vcmRpbmF0ZXMobnVsbHB0cikKKyAgICAgICAgICwgZkdldFZhckF4aXNGbGFncyhu dWxscHRyKQorICAgICAgICAgLCBmTGlicmFyeShudWxscHRyKQorLSAgICAgICAgLCBmSXNMQ0RT dXBwb3J0ZWQoZmFsc2UpCisrICAgICAgICAsIGZJc0xDRFN1cHBvcnRlZCh0cnVlKQorICAgICAg ICAgLCBmTGlnaHRIaW50aW5nSXNZT25seShmYWxzZSkKKy0gICAgICAgICwgZkxDREV4dHJhKDAp CisrICAgICAgICAsIGZMQ0RFeHRyYSgyKQorICAgICB7CisgICAgICAgICBpZiAoRlRfTmV3X0xp YnJhcnkoJmdGVE1lbW9yeSwgJmZMaWJyYXJ5KSkgeworICAgICAgICAgICAgIHJldHVybjsKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tdG9vbGNo YWluLWhvc3QucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVt LXRvb2xjaGFpbi1ob3N0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwLi4wZGFjZTI2MWEwOAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb245L2Zp bGVzL3BhdGNoZXMvY2hyb21pdW0tdG9vbGNoYWluLWhvc3QucGF0Y2gKQEAgLTAsMCArMSwxMSBA QAorLS0tIHNyYy9idWlsZC90b29sY2hhaW4vbGludXgvdW5idW5kbGUvQlVJTEQuZ24JMjAyMC0w Ny0yMSAxNzozNjozNC4wNjQ3NDgyNjEgKzAyMDAKKysrKyAtCTIwMjAtMDctMjEgMTc6Mzk6MDMu MTE1NzQwNTIyICswMjAwCitAQCAtMzUsNyArMzUsNyBAQAorICAgZXh0cmFfbGRmbGFncyA9IGdl dGVudigiQlVJTERfTERGTEFHUyIpCisgCisgICB0b29sY2hhaW5fYXJncyA9IHsKKy0gICAgY3Vy cmVudF9jcHUgPSBjdXJyZW50X2NwdQorKyAgICBjdXJyZW50X2NwdSA9IGhvc3RfY3B1CisgICAg IGN1cnJlbnRfb3MgPSBjdXJyZW50X29zCisgICB9CisgfQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9l bGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS11cHN0cmVhbS0wMDAxLVJldmVydC11aS1m aWxsLWluLVNEUi1IRFItRGlzcGxheUNvbG9yU3BhY2VzLUNyT1MucGF0Y2ggYi9zcmNwa2dzL2Vs ZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXVwc3RyZWFtLTAwMDEtUmV2ZXJ0LXVpLWZp bGwtaW4tU0RSLUhEUi1EaXNwbGF5Q29sb3JTcGFjZXMtQ3JPUy5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNjYxNjM1N2Y4OTkKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXVwc3RyZWFtLTAwMDEt UmV2ZXJ0LXVpLWZpbGwtaW4tU0RSLUhEUi1EaXNwbGF5Q29sb3JTcGFjZXMtQ3JPUy5wYXRjaApA QCAtMCwwICsxLDQzNiBAQAorRnJvbSA0NGY1ZDI1NTI0NTE1M2FjM2Y1YWE0YjY1MzA4MTBjYTkz ZmY0NmU2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTWlndWVsIENhc2FzIDxtY2Fz YXNAY2hyb21pdW0ub3JnPgorRGF0ZTogTW9uLCAyMiBKdW4gMjAyMCAyMDoyNDo1NyArMDAwMAor U3ViamVjdDogW1BBVENIIDAxLzEyXSBSZXZlcnQgInVpOiBmaWxsIGluIFNEUi9IRFIgRGlzcGxh eUNvbG9yU3BhY2VzLCBDck9TIgorCitUaGlzIHJldmVydHMgY29tbWl0IDA3MTk5ZmYxMTFjYjNi MzFkYTA3NTJhZGM2MmZmYmUwNTEwMWRmZGUuCisKK1NhaWQgY29tbWl0IGluYWR2ZXJ0ZW50bHkg aW5zdHJ1Y3RlZCB0aGUgY29tcG9zaXRvciB0byB1c2UgdGhlCitFRElELXByb3ZpZGVkIENvbG9y U3BhY2UgYXMgdGFyZ2V0IGZvciByYXN0ZXJpbmcsIGNhdXNpbmcgY29sb3VycwordG8gYmUgYWNj dXJhdGUsIGJ1dCB3YXNoZWQgb3V0LgorCitPcmlnaW5hbCBDb21taXQgZGVzY3JpcHRpb24gLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorVGhpcyBDTCBhZGRzIGNvZGUg Zm9yIHBvcHVsYXRpbmcgdGhlIG5lY2Vzc2FyeSBnZng6OkRpc3BsYXlDb2xvclNwYWNlcworaW4g Q3JlYXRlTWFuYWdlZERpc3BsYXlJbmZvIGZvciBzdXBwb3J0aW5nIFNEUiBhbmQgSERSIHRhcmdl dCBjb2xvcgorc3BhY2VzIChkZXBlbmRpbmcgb24gdGhlIG1vbml0b3IgY2FwYWJpbGl0aWVzIGFu ZCB0aGUgYmlnIGhkciBmbGFnKS4KKworSXQgbmVlZHMgYSBzaWJsaW5nIENMIHRvIGFsbG93IEFS L0IzMCBGQnMgb24gQ3JPcyBjcnJldi5jb20vYy8yMDc4NjU1LAorVGVzdGVkIHdpdGggdGhhdCBD TCBhbmQgYnkgcGxheWluZyBhbiBIRFIgdmlkZW86IHRoZSBwcmltYXJ5CitmcmFtZWJ1ZmZlciBm b3JtYXQgaW4gL3N5cy9rZXJuZWwvZGVidWcvZHJpLzAvL3N0YXRlIGNvcnJlY3RseSBjaGFuZ2Vz Cit0byBYQjMwLCB3aGVyZWFzIHdoZW4gdGhlcmUgYXJlIG5vdCBIRFIgcXVhZHMgaW4gdGhlIEJ1 ZmZlclF1ZXVlLCBpdCdzCitYUjI0LgorCitCdWc6IDk1ODE2NgorUmV2aWV3ZWQtb246IGh0dHBz Oi8vY2hyb21pdW0tcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20vYy9jaHJvbWl1bS9zcmMvKy8yMDcy NjIxCitSZXZpZXdlZC1ieTogY2NhbWVyb24gPGNjYW1lcm9uQGNocm9taXVtLm9yZz4KK0NvbW1p dC1RdWV1ZTogTWlndWVsIENhc2FzIDxtY2FzYXNAY2hyb21pdW0ub3JnPgorQ3ItQ29tbWl0LVBv c2l0aW9uOiByZWZzL2hlYWRzL21hc3RlckB7Izc0NTQ2MX0KKworCisoY2hlcnJ5IHBpY2tlZCBm cm9tIGNvbW1pdCBmODA3YTU3NzRiYzFhZjZlZjQzYzQwOGJkMGExYTBiMGQ1NWUyYzRhKQorCitC dWc6IGI6MTU4MTI2OTMxLCA5NTgxNjYKK0NoYW5nZS1JZDogSWVlNWM5YTQzMWE5YzBmOWY2YTVi NGQyMjlhYjcwMTgzYzI2NGFkOWIKK1Jldmlld2VkLW9uOiBodHRwczovL2Nocm9taXVtLXJldmll dy5nb29nbGVzb3VyY2UuY29tL2MvY2hyb21pdW0vc3JjLysvMjIzMjc2MQorQXV0by1TdWJtaXQ6 IE1pZ3VlbCBDYXNhcyA8bWNhc2FzQGNocm9taXVtLm9yZz4KK1Jldmlld2VkLWJ5OiBjY2FtZXJv biA8Y2NhbWVyb25AY2hyb21pdW0ub3JnPgorQ29tbWl0LVF1ZXVlOiBjY2FtZXJvbiA8Y2NhbWVy b25AY2hyb21pdW0ub3JnPgorQ29tbWl0LVF1ZXVlOiBNaWd1ZWwgQ2FzYXMgPG1jYXNhc0BjaHJv bWl1bS5vcmc+CitDci1PcmlnaW5hbC1Db21taXQtUG9zaXRpb246IHJlZnMvaGVhZHMvbWFzdGVy QHsjNzc1Nzc1fQorUmV2aWV3ZWQtb246IGh0dHBzOi8vY2hyb21pdW0tcmV2aWV3Lmdvb2dsZXNv dXJjZS5jb20vYy9jaHJvbWl1bS9zcmMvKy8yMjU4MjkzCitSZXZpZXdlZC1ieTogTWlndWVsIENh c2FzIDxtY2FzYXNAY2hyb21pdW0ub3JnPgorQ3ItQ29tbWl0LVBvc2l0aW9uOiByZWZzL2JyYW5j aC1oZWFkcy80MTAzQHsjNzI0fQorQ3ItQnJhbmNoZWQtRnJvbTogOGFkNDdlOGQyMWY2ODY2ZTRh MzdmNDdkODNhODYwZDQxZGViZjUxNC1yZWZzL2hlYWRzL21hc3RlckB7Izc1NjA2Nn0KKy0tLQor IHVpL2NvbXBvc2l0b3IvY29tcG9zaXRvci5jYyAgICAgICAgICAgICAgICAgICB8ICAxMCArKwor IHVpL2Rpc3BsYXkvZmFrZS9mYWtlX2Rpc3BsYXlfc25hcHNob3QuY2MgICAgICB8ICAyMSArLS0K KyB1aS9kaXNwbGF5L2Zha2UvZmFrZV9kaXNwbGF5X3NuYXBzaG90LmggICAgICAgfCAgIDggKy0K KyB1aS9kaXNwbGF5L21hbmFnZXIvZGlzcGxheV9jaGFuZ2Vfb2JzZXJ2ZXIuY2MgfCAgNjkgKyst LS0tLS0tCisgdWkvZGlzcGxheS9tYW5hZ2VyL2Rpc3BsYXlfY2hhbmdlX29ic2VydmVyLmggIHwg ICAyIC0KKyAuLi4vZGlzcGxheV9jaGFuZ2Vfb2JzZXJ2ZXJfdW5pdHRlc3QuY2MgICAgICAgfCAx MzQgKy0tLS0tLS0tLS0tLS0tLS0tCisgNiBmaWxlcyBjaGFuZ2VkLCAyNSBpbnNlcnRpb25zKCsp LCAyMTkgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS91aS9jb21wb3NpdG9yL2NvbXBvc2l0 b3IuY2MgYi91aS9jb21wb3NpdG9yL2NvbXBvc2l0b3IuY2MKK2luZGV4IGU5NGQwMjJhZmNjLi5k ZDRmODlkNzY3NiAxMDA2NDQKKy0tLSBhL3VpL2NvbXBvc2l0b3IvY29tcG9zaXRvci5jYworKysr IGIvdWkvY29tcG9zaXRvci9jb21wb3NpdG9yLmNjCitAQCAtNDQ0LDYgKzQ0NCwxNiBAQCB2b2lk IENvbXBvc2l0b3I6OlNldERpc3BsYXlDb2xvclNwYWNlcygKKyAgIGlmIChkaXNwbGF5X2NvbG9y X3NwYWNlc18gPT0gZGlzcGxheV9jb2xvcl9zcGFjZXMpCisgICAgIHJldHVybjsKKyAgIGRpc3Bs YXlfY29sb3Jfc3BhY2VzXyA9IGRpc3BsYXlfY29sb3Jfc3BhY2VzOworKyAgLy8gVE9ETyhjcmJ1 Zy5jb20vMTAxMjg0Nik6IFJlbW92ZSB0aGlzIGZsYWcgYW5kIHByb3Zpc2lvbiB3aGVuIEhEUiBp cyBmdWxseQorKyAgLy8gc3VwcG9ydGVkIG9uIENocm9tZU9TLgorKyNpZiBkZWZpbmVkKE9TX0NI Uk9NRU9TKQorKyAgaWYgKGRpc3BsYXlfY29sb3Jfc3BhY2VzXy5TdXBwb3J0c0hEUigpICYmCisr ICAgICAgIWJhc2U6OkNvbW1hbmRMaW5lOjpGb3JDdXJyZW50UHJvY2VzcygpLT5IYXNTd2l0Y2go CisrICAgICAgICAgIHN3aXRjaGVzOjprRW5hYmxlVXNlSERSVHJhbnNmZXJGdW5jdGlvbikpIHsK KysgICAgZGlzcGxheV9jb2xvcl9zcGFjZXNfID0KKysgICAgICAgIGdmeDo6RGlzcGxheUNvbG9y U3BhY2VzKGdmeDo6Q29sb3JTcGFjZTo6Q3JlYXRlU1JHQigpKTsKKysgIH0KKysjZW5kaWYKKyAK KyAgIGhvc3RfLT5TZXRSYXN0ZXJDb2xvclNwYWNlKGRpc3BsYXlfY29sb3Jfc3BhY2VzXy5HZXRS YXN0ZXJDb2xvclNwYWNlKCkpOworICAgLy8gQWx3YXlzIGZvcmNlIHRoZSB1aTo6Q29tcG9zaXRv ciB0byByZS1kcmF3IGFsbCBsYXllcnMsIGJlY2F1c2UgZGFtYWdlCitkaWZmIC0tZ2l0IGEvdWkv ZGlzcGxheS9mYWtlL2Zha2VfZGlzcGxheV9zbmFwc2hvdC5jYyBiL3VpL2Rpc3BsYXkvZmFrZS9m YWtlX2Rpc3BsYXlfc25hcHNob3QuY2MKK2luZGV4IDM1NjhjMjk2MzI3Li45NGRhMmM0ZTM5OCAx MDA2NDQKKy0tLSBhL3VpL2Rpc3BsYXkvZmFrZS9mYWtlX2Rpc3BsYXlfc25hcHNob3QuY2MKKysr KyBiL3VpL2Rpc3BsYXkvZmFrZS9mYWtlX2Rpc3BsYXlfc25hcHNob3QuY2MKK0BAIC0xNjMsOCAr MTYzLDcgQEAgc3RkOjp1bmlxdWVfcHRyPEZha2VEaXNwbGF5U25hcHNob3Q+IEJ1aWxkZXI6OkJ1 aWxkKCkgeworICAgICAgIGlkXywgb3JpZ2luXywgcGh5c2ljYWxfc2l6ZSwgdHlwZV8sIGlzX2Fz cGVjdF9wcmVzZXJ2aW5nX3NjYWxpbmdfLAorICAgICAgIGhhc19vdmVyc2Nhbl8sIHByaXZhY3lf c2NyZWVuX3N0YXRlXywgaGFzX2NvbG9yX2NvcnJlY3Rpb25fbWF0cml4XywKKyAgICAgICBjb2xv cl9jb3JyZWN0aW9uX2luX2xpbmVhcl9zcGFjZV8sIG5hbWVfLCBzdGQ6Om1vdmUobW9kZXNfKSwK Ky0gICAgICBjdXJyZW50X21vZGVfLCBuYXRpdmVfbW9kZV8sIHByb2R1Y3RfY29kZV8sIG1heGlt dW1fY3Vyc29yX3NpemVfLAorLSAgICAgIGNvbG9yX3NwYWNlXywgYml0c19wZXJfY2hhbm5lbF8p OworKyAgICAgIGN1cnJlbnRfbW9kZV8sIG5hdGl2ZV9tb2RlXywgcHJvZHVjdF9jb2RlXywgbWF4 aW11bV9jdXJzb3Jfc2l6ZV8pOworIH0KKyAKKyBCdWlsZGVyJiBCdWlsZGVyOjpTZXRJZChpbnQ2 NF90IGlkKSB7CitAQCAtMjY1LDE2ICsyNjQsNiBAQCBCdWlsZGVyJiBCdWlsZGVyOjpTZXRQcml2 YWN5U2NyZWVuKFByaXZhY3lTY3JlZW5TdGF0ZSBzdGF0ZSkgeworICAgcmV0dXJuICp0aGlzOwor IH0KKyAKKy1CdWlsZGVyJiBCdWlsZGVyOjpTZXRDb2xvclNwYWNlKGNvbnN0IGdmeDo6Q29sb3JT cGFjZSYgY29sb3Jfc3BhY2UpIHsKKy0gIGNvbG9yX3NwYWNlXyA9IGNvbG9yX3NwYWNlOworLSAg cmV0dXJuICp0aGlzOworLX0KKy0KKy1CdWlsZGVyJiBCdWlsZGVyOjpTZXRCaXRzUGVyQ2hhbm5l bCh1aW50MzJfdCBiaXRzX3Blcl9jaGFubmVsKSB7CistICBiaXRzX3Blcl9jaGFubmVsXyA9IGJp dHNfcGVyX2NoYW5uZWw7CistICByZXR1cm4gKnRoaXM7CistfQorLQorIGNvbnN0IERpc3BsYXlN b2RlKiBCdWlsZGVyOjpBZGRPckZpbmREaXNwbGF5TW9kZShjb25zdCBnZng6OlNpemUmIHNpemUp IHsKKyAgIGZvciAoYXV0byYgbW9kZSA6IG1vZGVzXykgeworICAgICBpZiAobW9kZS0+c2l6ZSgp ID09IHNpemUpCitAQCAtMzE2LDkgKzMwNSw3IEBAIEZha2VEaXNwbGF5U25hcHNob3Q6OkZha2VE aXNwbGF5U25hcHNob3QoCisgICAgIGNvbnN0IERpc3BsYXlNb2RlKiBjdXJyZW50X21vZGUsCisg ICAgIGNvbnN0IERpc3BsYXlNb2RlKiBuYXRpdmVfbW9kZSwKKyAgICAgaW50NjRfdCBwcm9kdWN0 X2NvZGUsCistICAgIGNvbnN0IGdmeDo6U2l6ZSYgbWF4aW11bV9jdXJzb3Jfc2l6ZSwKKy0gICAg Y29uc3QgZ2Z4OjpDb2xvclNwYWNlJiBjb2xvcl9zcGFjZSwKKy0gICAgdWludDMyX3QgYml0c19w ZXJfY2hhbm5lbCkKKysgICAgY29uc3QgZ2Z4OjpTaXplJiBtYXhpbXVtX2N1cnNvcl9zaXplKQor ICAgICA6IERpc3BsYXlTbmFwc2hvdChkaXNwbGF5X2lkLAorICAgICAgICAgICAgICAgICAgICAg ICBvcmlnaW4sCisgICAgICAgICAgICAgICAgICAgICAgIHBoeXNpY2FsX3NpemUsCitAQCAtMzI4 LDggKzMxNSw4IEBAIEZha2VEaXNwbGF5U25hcHNob3Q6OkZha2VEaXNwbGF5U25hcHNob3QoCisg ICAgICAgICAgICAgICAgICAgICAgIHByaXZhY3lfc2NyZWVuX3N0YXRlLAorICAgICAgICAgICAg ICAgICAgICAgICBoYXNfY29sb3JfY29ycmVjdGlvbl9tYXRyaXgsCisgICAgICAgICAgICAgICAg ICAgICAgIGNvbG9yX2NvcnJlY3Rpb25faW5fbGluZWFyX3NwYWNlLAorLSAgICAgICAgICAgICAg ICAgICAgICBjb2xvcl9zcGFjZSwKKy0gICAgICAgICAgICAgICAgICAgICAgYml0c19wZXJfY2hh bm5lbCwKKysgICAgICAgICAgICAgICAgICAgICAgZ2Z4OjpDb2xvclNwYWNlKCksCisrICAgICAg ICAgICAgICAgICAgICAgIDh1IC8qIGJpdHNfcGVyX2NoYW5uZWwgKi8sCisgICAgICAgICAgICAg ICAgICAgICAgIGRpc3BsYXlfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgYmFzZTo6Rmls ZVBhdGgoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgc3RkOjptb3ZlKG1vZGVzKSwKK2RpZmYg LS1naXQgYS91aS9kaXNwbGF5L2Zha2UvZmFrZV9kaXNwbGF5X3NuYXBzaG90LmggYi91aS9kaXNw bGF5L2Zha2UvZmFrZV9kaXNwbGF5X3NuYXBzaG90LmgKK2luZGV4IGQ1MjFmYjM0MDc4Li44MzNh Yzc0NGQwOCAxMDA2NDQKKy0tLSBhL3VpL2Rpc3BsYXkvZmFrZS9mYWtlX2Rpc3BsYXlfc25hcHNo b3QuaAorKysrIGIvdWkvZGlzcGxheS9mYWtlL2Zha2VfZGlzcGxheV9zbmFwc2hvdC5oCitAQCAt NzAsOCArNzAsNiBAQCBjbGFzcyBGQUtFX0RJU1BMQVlfRVhQT1JUIEZha2VEaXNwbGF5U25hcHNo b3QgOiBwdWJsaWMgRGlzcGxheVNuYXBzaG90IHsKKyAgICAgLy8gU2V0cyBwaHlzaWNhbF9zaXpl IGZvciBoaWdoIERQSSBkaXNwbGF5LgorICAgICBCdWlsZGVyJiBTZXRIaWdoRFBJKCk7CisgICAg IEJ1aWxkZXImIFNldFByaXZhY3lTY3JlZW4oUHJpdmFjeVNjcmVlblN0YXRlIHN0YXRlKTsKKy0g ICAgQnVpbGRlciYgU2V0Q29sb3JTcGFjZShjb25zdCBnZng6OkNvbG9yU3BhY2UmIGNvbG9yX3Nw YWNlKTsKKy0gICAgQnVpbGRlciYgU2V0Qml0c1BlckNoYW5uZWwodWludDMyX3QgYml0c19wZXJf Y2hhbm5lbCk7CisgCisgICAgcHJpdmF0ZToKKyAgICAgLy8gUmV0dXJucyBhIGRpc3BsYXkgbW9k ZSB3aXRoIHxzaXplfC4gSWYgdGhlcmUgaXMgbm8gZXhpc3RpbmcgbW9kZSwgaW5zZXJ0CitAQCAt OTYsOCArOTQsNiBAQCBjbGFzcyBGQUtFX0RJU1BMQVlfRVhQT1JUIEZha2VEaXNwbGF5U25hcHNo b3QgOiBwdWJsaWMgRGlzcGxheVNuYXBzaG90IHsKKyAgICAgRGlzcGxheU1vZGVMaXN0IG1vZGVz XzsKKyAgICAgY29uc3QgRGlzcGxheU1vZGUqIGN1cnJlbnRfbW9kZV8gPSBudWxscHRyOworICAg ICBjb25zdCBEaXNwbGF5TW9kZSogbmF0aXZlX21vZGVfID0gbnVsbHB0cjsKKy0gICAgZ2Z4OjpD b2xvclNwYWNlIGNvbG9yX3NwYWNlXzsKKy0gICAgdWludDMyX3QgYml0c19wZXJfY2hhbm5lbF8g PSA4dTsKKyAKKyAgICAgRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOKEJ1aWxkZXIpOworICAgfTsK K0BAIC0xMTYsOSArMTEyLDcgQEAgY2xhc3MgRkFLRV9ESVNQTEFZX0VYUE9SVCBGYWtlRGlzcGxh eVNuYXBzaG90IDogcHVibGljIERpc3BsYXlTbmFwc2hvdCB7CisgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IERpc3BsYXlNb2RlKiBjdXJyZW50X21vZGUsCisgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IERpc3BsYXlNb2RlKiBuYXRpdmVfbW9kZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgaW50NjRfdCBwcm9kdWN0X2NvZGUsCistICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdm eDo6U2l6ZSYgbWF4aW11bV9jdXJzb3Jfc2l6ZSwKKy0gICAgICAgICAgICAgICAgICAgICAgY29u c3QgZ2Z4OjpDb2xvclNwYWNlJiBjb2xvcl9zcGFjZSwKKy0gICAgICAgICAgICAgICAgICAgICAg dWludDMyX3QgYml0c19wZXJfY2hhbm5lbCk7CisrICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IGdmeDo6U2l6ZSYgbWF4aW11bV9jdXJzb3Jfc2l6ZSk7CisgICB+RmFrZURpc3BsYXlTbmFwc2hv dCgpIG92ZXJyaWRlOworIAorICAgLy8gQ3JlYXRlcyBhIGRpc3BsYXkgc25hcHNob3QgZnJvbSB0 aGUgcHJvdmlkZWQgfHNwZWN8IHN0cmluZy4gUmV0dXJucyBudWxsIGlmCitkaWZmIC0tZ2l0IGEv dWkvZGlzcGxheS9tYW5hZ2VyL2Rpc3BsYXlfY2hhbmdlX29ic2VydmVyLmNjIGIvdWkvZGlzcGxh eS9tYW5hZ2VyL2Rpc3BsYXlfY2hhbmdlX29ic2VydmVyLmNjCitpbmRleCAyOGRiZDEwZWMxOS4u Nzk5ZDg5NmQ4ZTcgMTAwNjQ0CistLS0gYS91aS9kaXNwbGF5L21hbmFnZXIvZGlzcGxheV9jaGFu Z2Vfb2JzZXJ2ZXIuY2MKKysrKyBiL3VpL2Rpc3BsYXkvbWFuYWdlci9kaXNwbGF5X2NoYW5nZV9v YnNlcnZlci5jYworQEAgLTc3LDU1ICs3Nyw2IEBAIE1hbmFnZWREaXNwbGF5SW5mbzo6TWFuYWdl ZERpc3BsYXlNb2RlTGlzdCBHZXRNb2RlTGlzdFdpdGhBbGxSZWZyZXNoUmF0ZXMoCisgICByZXR1 cm4gZGlzcGxheV9tb2RlX2xpc3Q7CisgfQorIAorLS8vIENvbnN0cnVjdHMgdGhlIHJhc3RlciBE aXNwbGF5Q29sb3JTcGFjZXMgb3V0IG9mIHxzbmFwc2hvdF9jb2xvcl9zcGFjZXwsCistLy8gaW5j bHVkaW5nIHRoZSBIRFIgb25lcyBpZiBwcmVzZW50IGFuZCB8YWxsb3dfaGlnaF9iaXRfZGVwdGh8 IGlzIHNldC4KKy1nZng6OkRpc3BsYXlDb2xvclNwYWNlcyBGaWxsRGlzcGxheUNvbG9yU3BhY2Vz KAorLSAgICBjb25zdCBnZng6OkNvbG9yU3BhY2UmIHNuYXBzaG90X2NvbG9yX3NwYWNlLAorLSAg ICBib29sIGFsbG93X2hpZ2hfYml0X2RlcHRoKSB7CistICAvLyBDaHJvbWVPUyBWTXMgKGUuZy4g YW1kNjQtZ2VuZXJpYyBvciBiZXR0eSkgaGF2ZSBJTlZBTElEIFByaW1hcmllczsganVzdAorLSAg Ly8gcGFzcyB0aGUgY29sb3Igc3BhY2UgYWxvbmcuCistICBpZiAoIXNuYXBzaG90X2NvbG9yX3Nw YWNlLklzVmFsaWQoKSkgeworLSAgICByZXR1cm4gZ2Z4OjpEaXNwbGF5Q29sb3JTcGFjZXMoc25h cHNob3RfY29sb3Jfc3BhY2UsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBE aXNwbGF5U25hcHNob3Q6OlByaW1hcnlGb3JtYXQoKSk7CistICB9CistCistICBjb25zdGV4cHIg YXV0byBrU0RSVHJhbnNmZXJJZCA9IGdmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6SUVDNjE5 NjZfMl8xOworLSAgY29uc3QgYXV0byBwcmltYXJ5X2lkID0gc25hcHNob3RfY29sb3Jfc3BhY2Uu R2V0UHJpbWFyeUlEKCk7CistCistICBnZng6OkNvbG9yU3BhY2Ugc2RyX2NvbG9yX3NwYWNlOwor LSAgaWYgKHByaW1hcnlfaWQgPT0gZ2Z4OjpDb2xvclNwYWNlOjpQcmltYXJ5SUQ6OkNVU1RPTSkg eworLSAgICBza2Ntc19NYXRyaXgzeDMgcHJpbWFyeV9tYXRyaXh7fTsKKy0gICAgc25hcHNob3Rf Y29sb3Jfc3BhY2UuR2V0UHJpbWFyeU1hdHJpeCgmcHJpbWFyeV9tYXRyaXgpOworLSAgICBzZHJf Y29sb3Jfc3BhY2UgPQorLSAgICAgICAgZ2Z4OjpDb2xvclNwYWNlOjpDcmVhdGVDdXN0b20ocHJp bWFyeV9tYXRyaXgsIGtTRFJUcmFuc2ZlcklkKTsKKy0gIH0gZWxzZSB7CistICAgIHNkcl9jb2xv cl9zcGFjZSA9IGdmeDo6Q29sb3JTcGFjZShwcmltYXJ5X2lkLCBrU0RSVHJhbnNmZXJJZCk7Cist ICB9CistICBnZng6OkRpc3BsYXlDb2xvclNwYWNlcyBkaXNwbGF5X2NvbG9yX3NwYWNlcygKKy0g ICAgICBzZHJfY29sb3Jfc3BhY2UsIERpc3BsYXlTbmFwc2hvdDo6UHJpbWFyeUZvcm1hdCgpKTsK Ky0KKy0gIGlmIChhbGxvd19oaWdoX2JpdF9kZXB0aCkgeworLSAgICBnZng6OkNvbG9yU3BhY2Ug aGRyX2NvbG9yX3NwYWNlOworLSAgICBpZiAocHJpbWFyeV9pZCA9PSBnZng6OkNvbG9yU3BhY2U6 OlByaW1hcnlJRDo6Q1VTVE9NKSB7CistICAgICAgc2tjbXNfTWF0cml4M3gzIHByaW1hcnlfbWF0 cml4e307CistICAgICAgc25hcHNob3RfY29sb3Jfc3BhY2UuR2V0UHJpbWFyeU1hdHJpeCgmcHJp bWFyeV9tYXRyaXgpOworLSAgICAgIGhkcl9jb2xvcl9zcGFjZSA9IGdmeDo6Q29sb3JTcGFjZTo6 Q3JlYXRlUGllY2V3aXNlSERSKAorLSAgICAgICAgICBwcmltYXJ5X2lkLCAwLjk5LCAyLjAsICZw cmltYXJ5X21hdHJpeCk7CistICAgIH0gZWxzZSB7CistICAgICAgaGRyX2NvbG9yX3NwYWNlID0K Ky0gICAgICAgICAgZ2Z4OjpDb2xvclNwYWNlOjpDcmVhdGVQaWVjZXdpc2VIRFIocHJpbWFyeV9p ZCwgMC45OSwgMi4wKTsKKy0gICAgfQorLQorLSAgICBkaXNwbGF5X2NvbG9yX3NwYWNlcy5TZXRP dXRwdXRDb2xvclNwYWNlQW5kQnVmZmVyRm9ybWF0KAorLSAgICAgICAgZ2Z4OjpDb250ZW50Q29s b3JVc2FnZTo6a0hEUiwgZmFsc2UgLyogbmVlZHNfYWxwaGEgKi8sIGhkcl9jb2xvcl9zcGFjZSwK Ky0gICAgICAgIGdmeDo6QnVmZmVyRm9ybWF0OjpSR0JBXzEwMTAxMDIpOworLSAgICBkaXNwbGF5 X2NvbG9yX3NwYWNlcy5TZXRPdXRwdXRDb2xvclNwYWNlQW5kQnVmZmVyRm9ybWF0KAorLSAgICAg ICAgZ2Z4OjpDb250ZW50Q29sb3JVc2FnZTo6a0hEUiwgdHJ1ZSAvKiBuZWVkc19hbHBoYSAqLywg aGRyX2NvbG9yX3NwYWNlLAorLSAgICAgICAgZ2Z4OjpCdWZmZXJGb3JtYXQ6OlJHQkFfMTAxMDEw Mik7CistICB9CistICByZXR1cm4gZGlzcGxheV9jb2xvcl9zcGFjZXM7CistfQorLQorIH0gIC8v IG5hbWVzcGFjZQorIAorIC8vIHN0YXRpYworQEAgLTM4NiwyMyArMzM3LDIxIEBAIE1hbmFnZWRE aXNwbGF5SW5mbyBEaXNwbGF5Q2hhbmdlT2JzZXJ2ZXI6OkNyZWF0ZU1hbmFnZWREaXNwbGF5SW5m bygKKyAgIGlmIChkcGkpCisgICAgIG5ld19pbmZvLnNldF9kZXZpY2VfZHBpKGRwaSk7CisgCist I2lmICFkZWZpbmVkKE9TX0NIUk9NRU9TKQorICAgLy8gVE9ETyhjcmJ1Zy5jb20vMTAxMjg0Nik6 IFRoaXMgc2hvdWxkIGNvbmZpZ3VyZSB0aGUgSERSIGNvbG9yIHNwYWNlcy4KKyAgIGdmeDo6RGlz cGxheUNvbG9yU3BhY2VzIGRpc3BsYXlfY29sb3Jfc3BhY2VzKAorICAgICAgIHNuYXBzaG90LT5j b2xvcl9zcGFjZSgpLCBEaXNwbGF5U25hcHNob3Q6OlByaW1hcnlGb3JtYXQoKSk7CisgICBuZXdf aW5mby5zZXRfZGlzcGxheV9jb2xvcl9zcGFjZXMoZGlzcGxheV9jb2xvcl9zcGFjZXMpOworICAg bmV3X2luZm8uc2V0X2JpdHNfcGVyX2NoYW5uZWwoc25hcHNob3QtPmJpdHNfcGVyX2NoYW5uZWwo KSk7CistI2Vsc2UKKy0gIC8vIFRPRE8oY3JidWcuY29tLzEwMTI4NDYpOiBSZW1vdmUga0VuYWJs ZVVzZUhEUlRyYW5zZmVyRnVuY3Rpb24gdXNhZ2Ugd2hlbgorLSAgLy8gSERSIGlzIGZ1bGx5IHN1 cHBvcnRlZCBvbiBDaHJvbWVPUy4KKy0gIGNvbnN0IGJvb2wgYWxsb3dfaGlnaF9iaXRfZGVwdGgg PQorLSAgICAgIGJhc2U6OkNvbW1hbmRMaW5lOjpGb3JDdXJyZW50UHJvY2VzcygpLT5IYXNTd2l0 Y2goCistICAgICAgICAgIHN3aXRjaGVzOjprRW5hYmxlVXNlSERSVHJhbnNmZXJGdW5jdGlvbik7 CistICBuZXdfaW5mby5zZXRfZGlzcGxheV9jb2xvcl9zcGFjZXMoCistICAgICAgRmlsbERpc3Bs YXlDb2xvclNwYWNlcyhzbmFwc2hvdC0+Y29sb3Jfc3BhY2UoKSwgYWxsb3dfaGlnaF9iaXRfZGVw dGgpKTsKKysKKysgIC8vIFRPRE8oY3JidWcuY29tLzEwMTI4NDYpOiBSZW1vdmUgdGhpcyBmbGFn IGFuZCBwcm92aXNpb24gd2hlbiBIRFIgaXMgZnVsbHkKKysgIC8vIHN1cHBvcnRlZCBvbiBDaHJv bWVPUy4KKysjaWYgZGVmaW5lZChPU19DSFJPTUVPUykKKyAgIGNvbnN0ZXhwciBpbnQzMl90IGtO b3JtYWxCaXREZXB0aCA9IDg7CistICBuZXdfaW5mby5zZXRfYml0c19wZXJfY2hhbm5lbCgKKy0g ICAgICBhbGxvd19oaWdoX2JpdF9kZXB0aCA/IHNuYXBzaG90LT5iaXRzX3Blcl9jaGFubmVsKCkg OiBrTm9ybWFsQml0RGVwdGgpOworKyAgaWYgKG5ld19pbmZvLmJpdHNfcGVyX2NoYW5uZWwoKSA+ IGtOb3JtYWxCaXREZXB0aCAmJgorKyAgICAgICFiYXNlOjpDb21tYW5kTGluZTo6Rm9yQ3VycmVu dFByb2Nlc3MoKS0+SGFzU3dpdGNoKAorKyAgICAgICAgICBzd2l0Y2hlczo6a0VuYWJsZVVzZUhE UlRyYW5zZmVyRnVuY3Rpb24pKSB7CisrICAgIG5ld19pbmZvLnNldF9iaXRzX3Blcl9jaGFubmVs KGtOb3JtYWxCaXREZXB0aCk7CisrICB9CisgI2VuZGlmCisgCisgICBuZXdfaW5mby5zZXRfcmVm cmVzaF9yYXRlKG1vZGVfaW5mby0+cmVmcmVzaF9yYXRlKCkpOworZGlmZiAtLWdpdCBhL3VpL2Rp c3BsYXkvbWFuYWdlci9kaXNwbGF5X2NoYW5nZV9vYnNlcnZlci5oIGIvdWkvZGlzcGxheS9tYW5h Z2VyL2Rpc3BsYXlfY2hhbmdlX29ic2VydmVyLmgKK2luZGV4IDVjMTdjZTYwOTc3Li4wZTg5NmUy NGU1ZSAxMDA2NDQKKy0tLSBhL3VpL2Rpc3BsYXkvbWFuYWdlci9kaXNwbGF5X2NoYW5nZV9vYnNl cnZlci5oCisrKysgYi91aS9kaXNwbGF5L21hbmFnZXIvZGlzcGxheV9jaGFuZ2Vfb2JzZXJ2ZXIu aAorQEAgLTYwLDggKzYwLDYgQEAgY2xhc3MgRElTUExBWV9NQU5BR0VSX0VYUE9SVCBEaXNwbGF5 Q2hhbmdlT2JzZXJ2ZXIKKyAgIERJU1BMQVlfRVhQT1JUIHN0YXRpYyBmbG9hdCBGaW5kRGV2aWNl U2NhbGVGYWN0b3IoZmxvYXQgZHBpKTsKKyAKKyAgcHJpdmF0ZToKKy0gIGZyaWVuZCBjbGFzcyBE aXNwbGF5Q2hhbmdlT2JzZXJ2ZXJUZXN0OworLQorICAgdm9pZCBVcGRhdGVJbnRlcm5hbERpc3Bs YXkoCisgICAgICAgY29uc3QgRGlzcGxheUNvbmZpZ3VyYXRvcjo6RGlzcGxheVN0YXRlTGlzdCYg ZGlzcGxheV9zdGF0ZXMpOworIAorZGlmZiAtLWdpdCBhL3VpL2Rpc3BsYXkvbWFuYWdlci9kaXNw bGF5X2NoYW5nZV9vYnNlcnZlcl91bml0dGVzdC5jYyBiL3VpL2Rpc3BsYXkvbWFuYWdlci9kaXNw bGF5X2NoYW5nZV9vYnNlcnZlcl91bml0dGVzdC5jYworaW5kZXggMWIyOTA3MTM3ZjkuLmJiOTAw MjA5YmFjIDEwMDY0NAorLS0tIGEvdWkvZGlzcGxheS9tYW5hZ2VyL2Rpc3BsYXlfY2hhbmdlX29i c2VydmVyX3VuaXR0ZXN0LmNjCisrKysgYi91aS9kaXNwbGF5L21hbmFnZXIvZGlzcGxheV9jaGFu Z2Vfb2JzZXJ2ZXJfdW5pdHRlc3QuY2MKK0BAIC0xNCwxMSArMTQsOCBAQAorICNpbmNsdWRlICJ1 aS9kaXNwbGF5L2Rpc3BsYXlfc3dpdGNoZXMuaCIKKyAjaW5jbHVkZSAidWkvZGlzcGxheS9mYWtl L2Zha2VfZGlzcGxheV9zbmFwc2hvdC5oIgorICNpbmNsdWRlICJ1aS9kaXNwbGF5L21hbmFnZXIv ZGlzcGxheV9jb25maWd1cmF0b3IuaCIKKy0jaW5jbHVkZSAidWkvZGlzcGxheS9tYW5hZ2VyL2Rp c3BsYXlfbWFuYWdlci5oIgorICNpbmNsdWRlICJ1aS9kaXNwbGF5L21hbmFnZXIvbWFuYWdlZF9k aXNwbGF5X2luZm8uaCIKKy0jaW5jbHVkZSAidWkvZGlzcGxheS9zY3JlZW4uaCIKKyAjaW5jbHVk ZSAidWkvZGlzcGxheS90eXBlcy9kaXNwbGF5X21vZGUuaCIKKy0jaW5jbHVkZSAidWkvZXZlbnRz L2RldmljZXMvZGV2aWNlX2RhdGFfbWFuYWdlci5oIgorICNpbmNsdWRlICJ1aS9nZngvZ2VvbWV0 cnkvcmVjdC5oIgorICNpbmNsdWRlICJ1aS9nZngvZ2VvbWV0cnkvc2l6ZS5oIgorIAorQEAgLTYz LDEzICs2MCw2IEBAIGNsYXNzIERpc3BsYXlDaGFuZ2VPYnNlcnZlclRlc3QgOiBwdWJsaWMgdGVz dGluZzo6VGVzdCwKKyAgICAgVGVzdDo6U2V0VXAoKTsKKyAgIH0KKyAKKy0gIC8vIFBhc3MgdGhy b3VnaCBtZXRob2QgdG8gYmUgY2FsbGVkIGJ5IGluZGl2aWR1YWwgdGVzdCBjYXNlcy4KKy0gIE1h bmFnZWREaXNwbGF5SW5mbyBDcmVhdGVNYW5hZ2VkRGlzcGxheUluZm8oRGlzcGxheUNoYW5nZU9i c2VydmVyKiBvYnNlcnZlciwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgRGlzcGxheVNuYXBzaG90KiBzbmFwc2hvdCwKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgRGlzcGxheU1vZGUqIG1vZGVf aW5mbykgeworLSAgICByZXR1cm4gb2JzZXJ2ZXItPkNyZWF0ZU1hbmFnZWREaXNwbGF5SW5mbyhz bmFwc2hvdCwgbW9kZV9pbmZvKTsKKy0gIH0KKy0KKyAgcHJpdmF0ZToKKyAgIGJhc2U6OnRlc3Q6 OlNjb3BlZEZlYXR1cmVMaXN0IHNjb3BlZF9mZWF0dXJlX2xpc3RfOworIAorQEAgLTE4NSw4ICsx NzUsNyBAQCBURVNUX1AoRGlzcGxheUNoYW5nZU9ic2VydmVyVGVzdCwgR2V0RW1wdHlFeHRlcm5h bE1hbmFnZWREaXNwbGF5TW9kZUxpc3QpIHsKKyAgIEZha2VEaXNwbGF5U25hcHNob3QgZGlzcGxh eV9zbmFwc2hvdCgKKyAgICAgICAxMjMsIGdmeDo6UG9pbnQoKSwgZ2Z4OjpTaXplKCksIERJU1BM QVlfQ09OTkVDVElPTl9UWVBFX1VOS05PV04sIGZhbHNlLAorICAgICAgIGZhbHNlLCBQcml2YWN5 U2NyZWVuU3RhdGU6OmtOb3RTdXBwb3J0ZWQsIGZhbHNlLCBmYWxzZSwgc3RkOjpzdHJpbmcoKSwg e30sCistICAgICAgbnVsbHB0ciwgbnVsbHB0ciwgMCwgZ2Z4OjpTaXplKCksIGdmeDo6Q29sb3JT cGFjZSgpLAorLSAgICAgIC8qYml0c19wZXJfY2hhbm5lbD0qLzh1KTsKKysgICAgICBudWxscHRy LCBudWxscHRyLCAwLCBnZng6OlNpemUoKSk7CisgCisgICBNYW5hZ2VkRGlzcGxheUluZm86Ok1h bmFnZWREaXNwbGF5TW9kZUxpc3QgZGlzcGxheV9tb2RlcyA9CisgICAgICAgRGlzcGxheUNoYW5n ZU9ic2VydmVyOjpHZXRFeHRlcm5hbE1hbmFnZWREaXNwbGF5TW9kZUxpc3QoCitAQCAtMzA1LDEy NyArMjk0LDYgQEAgVEVTVF9QKERpc3BsYXlDaGFuZ2VPYnNlcnZlclRlc3QsCisgICB9CisgfQor IAorLVRFU1RfUChEaXNwbGF5Q2hhbmdlT2JzZXJ2ZXJUZXN0LCBJbnZhbGlkRGlzcGxheUNvbG9y U3BhY2VzKSB7CistICBjb25zdCBzdGQ6OnVuaXF1ZV9wdHI8RGlzcGxheVNuYXBzaG90PiBkaXNw bGF5X3NuYXBzaG90ID0KKy0gICAgICBGYWtlRGlzcGxheVNuYXBzaG90OjpCdWlsZGVyKCkKKy0g ICAgICAgICAgLlNldElkKDEyMykKKy0gICAgICAgICAgLlNldE5hbWUoIkFtYXppbmdGYWtlRGlz cGxheSIpCistICAgICAgICAgIC5TZXROYXRpdmVNb2RlKE1ha2VEaXNwbGF5TW9kZSgxOTIwLCAx MDgwLCB0cnVlLCA2MCkpCistICAgICAgICAgIC5TZXRDb2xvclNwYWNlKGdmeDo6Q29sb3JTcGFj ZSgpKQorLSAgICAgICAgICAuQnVpbGQoKTsKKy0KKy0gIHVpOjpEZXZpY2VEYXRhTWFuYWdlcjo6 Q3JlYXRlSW5zdGFuY2UoKTsKKy0gIERpc3BsYXlNYW5hZ2VyIG1hbmFnZXIobnVsbHB0cik7Cist ICBjb25zdCBhdXRvIGRpc3BsYXlfbW9kZSA9IE1ha2VEaXNwbGF5TW9kZSgxOTIwLCAxMDgwLCB0 cnVlLCA2MCk7CistICBEaXNwbGF5Q2hhbmdlT2JzZXJ2ZXIgb2JzZXJ2ZXIoJm1hbmFnZXIpOwor LSAgY29uc3QgTWFuYWdlZERpc3BsYXlJbmZvIGRpc3BsYXlfaW5mbyA9IENyZWF0ZU1hbmFnZWRE aXNwbGF5SW5mbygKKy0gICAgICAmb2JzZXJ2ZXIsIGRpc3BsYXlfc25hcHNob3QuZ2V0KCksIGRp c3BsYXlfbW9kZS5nZXQoKSk7CistCistICBFWFBFQ1RfRVEoZGlzcGxheV9pbmZvLmJpdHNfcGVy X2NoYW5uZWwoKSwgOHUpOworLSAgY29uc3QgYXV0byBkaXNwbGF5X2NvbG9yX3NwYWNlcyA9IGRp c3BsYXlfaW5mby5kaXNwbGF5X2NvbG9yX3NwYWNlcygpOworLSAgRVhQRUNUX0ZBTFNFKGRpc3Bs YXlfY29sb3Jfc3BhY2VzLlN1cHBvcnRzSERSKCkpOworLQorLSAgRVhQRUNUX0VRKAorLSAgICAg IERpc3BsYXlTbmFwc2hvdDo6UHJpbWFyeUZvcm1hdCgpLAorLSAgICAgIGRpc3BsYXlfY29sb3Jf c3BhY2VzLkdldE91dHB1dEJ1ZmZlckZvcm1hdChnZng6OkNvbnRlbnRDb2xvclVzYWdlOjprU1JH QiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypu ZWVkc19hbHBoYT0qL3RydWUpKTsKKy0KKy0gIGNvbnN0IGF1dG8gY29sb3Jfc3BhY2UgPSBkaXNw bGF5X2NvbG9yX3NwYWNlcy5HZXRSYXN0ZXJDb2xvclNwYWNlKCk7CistICAvLyBEaXNwbGF5Q29s b3JTcGFjZXMgd2lsbCBmaXggYW4gaW52YWxpZCBDb2xvclNwYWNlIHRvIHJldHVybiBzUkdCLgor LSAgRVhQRUNUX1RSVUUoY29sb3Jfc3BhY2UuSXNWYWxpZCgpKTsKKy0gIEVYUEVDVF9FUShjb2xv cl9zcGFjZSwgZ2Z4OjpDb2xvclNwYWNlOjpDcmVhdGVTUkdCKCkpOworLX0KKy0KKy1URVNUX1Ao RGlzcGxheUNoYW5nZU9ic2VydmVyVGVzdCwgU0RSRGlzcGxheUNvbG9yU3BhY2VzKSB7CistICBj b25zdCBzdGQ6OnVuaXF1ZV9wdHI8RGlzcGxheVNuYXBzaG90PiBkaXNwbGF5X3NuYXBzaG90ID0K Ky0gICAgICBGYWtlRGlzcGxheVNuYXBzaG90OjpCdWlsZGVyKCkKKy0gICAgICAgICAgLlNldElk KDEyMykKKy0gICAgICAgICAgLlNldE5hbWUoIkFtYXppbmdGYWtlRGlzcGxheSIpCistICAgICAg ICAgIC5TZXROYXRpdmVNb2RlKE1ha2VEaXNwbGF5TW9kZSgxOTIwLCAxMDgwLCB0cnVlLCA2MCkp CistICAgICAgICAgIC5TZXRDb2xvclNwYWNlKGdmeDo6Q29sb3JTcGFjZTo6Q3JlYXRlU1JHQigp KQorLSAgICAgICAgICAuQnVpbGQoKTsKKy0KKy0gIHVpOjpEZXZpY2VEYXRhTWFuYWdlcjo6Q3Jl YXRlSW5zdGFuY2UoKTsKKy0gIERpc3BsYXlNYW5hZ2VyIG1hbmFnZXIobnVsbHB0cik7CistICBj b25zdCBhdXRvIGRpc3BsYXlfbW9kZSA9IE1ha2VEaXNwbGF5TW9kZSgxOTIwLCAxMDgwLCB0cnVl LCA2MCk7CistICBEaXNwbGF5Q2hhbmdlT2JzZXJ2ZXIgb2JzZXJ2ZXIoJm1hbmFnZXIpOworLSAg Y29uc3QgTWFuYWdlZERpc3BsYXlJbmZvIGRpc3BsYXlfaW5mbyA9IENyZWF0ZU1hbmFnZWREaXNw bGF5SW5mbygKKy0gICAgICAmb2JzZXJ2ZXIsIGRpc3BsYXlfc25hcHNob3QuZ2V0KCksIGRpc3Bs YXlfbW9kZS5nZXQoKSk7CistCistICBFWFBFQ1RfRVEoZGlzcGxheV9pbmZvLmJpdHNfcGVyX2No YW5uZWwoKSwgOHUpOworLQorLSAgY29uc3QgYXV0byBkaXNwbGF5X2NvbG9yX3NwYWNlcyA9IGRp c3BsYXlfaW5mby5kaXNwbGF5X2NvbG9yX3NwYWNlcygpOworLSAgRVhQRUNUX0ZBTFNFKGRpc3Bs YXlfY29sb3Jfc3BhY2VzLlN1cHBvcnRzSERSKCkpOworLQorLSAgRVhQRUNUX0VRKAorLSAgICAg IERpc3BsYXlTbmFwc2hvdDo6UHJpbWFyeUZvcm1hdCgpLAorLSAgICAgIGRpc3BsYXlfY29sb3Jf c3BhY2VzLkdldE91dHB1dEJ1ZmZlckZvcm1hdChnZng6OkNvbnRlbnRDb2xvclVzYWdlOjprU1JH QiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypu ZWVkc19hbHBoYT0qL3RydWUpKTsKKy0KKy0gIGNvbnN0IGF1dG8gY29sb3Jfc3BhY2UgPSBkaXNw bGF5X2NvbG9yX3NwYWNlcy5HZXRSYXN0ZXJDb2xvclNwYWNlKCk7CistICBFWFBFQ1RfVFJVRShj b2xvcl9zcGFjZS5Jc1ZhbGlkKCkpOworLSAgRVhQRUNUX0VRKGNvbG9yX3NwYWNlLkdldFByaW1h cnlJRCgpLCBnZng6OkNvbG9yU3BhY2U6OlByaW1hcnlJRDo6QlQ3MDkpOworLSAgRVhQRUNUX0VR KGNvbG9yX3NwYWNlLkdldFRyYW5zZmVySUQoKSwKKy0gICAgICAgICAgICBnZng6OkNvbG9yU3Bh Y2U6OlRyYW5zZmVySUQ6OklFQzYxOTY2XzJfMSk7CistfQorLQorLSNpZiBkZWZpbmVkKE9TX0NI Uk9NRU9TKQorLVRFU1RfUChEaXNwbGF5Q2hhbmdlT2JzZXJ2ZXJUZXN0LCBIRFJEaXNwbGF5Q29s b3JTcGFjZXMpIHsKKy0gIC8vIFRPRE8oY3JidWcuY29tLzEwMTI4NDYpOiBSZW1vdmUgdGhpcyBm bGFnIGFuZCBwcm92aXNpb24gd2hlbiBIRFIgaXMgZnVsbHkKKy0gIC8vIHN1cHBvcnRlZCBvbiBD aHJvbWVPUy4KKy0gIGJhc2U6OkNvbW1hbmRMaW5lOjpGb3JDdXJyZW50UHJvY2VzcygpLT5BcHBl bmRTd2l0Y2goCistICAgICAgc3dpdGNoZXM6OmtFbmFibGVVc2VIRFJUcmFuc2ZlckZ1bmN0aW9u KTsKKy0KKy0gIGNvbnN0IHN0ZDo6dW5pcXVlX3B0cjxEaXNwbGF5U25hcHNob3Q+IGRpc3BsYXlf c25hcHNob3QgPQorLSAgICAgIEZha2VEaXNwbGF5U25hcHNob3Q6OkJ1aWxkZXIoKQorLSAgICAg ICAgICAuU2V0SWQoMTIzKQorLSAgICAgICAgICAuU2V0TmFtZSgiQW1hemluZ0Zha2VEaXNwbGF5 IikKKy0gICAgICAgICAgLlNldE5hdGl2ZU1vZGUoTWFrZURpc3BsYXlNb2RlKDE5MjAsIDEwODAs IHRydWUsIDYwKSkKKy0gICAgICAgICAgLlNldENvbG9yU3BhY2UoZ2Z4OjpDb2xvclNwYWNlOjpD cmVhdGVIRFIxMCgxMDAuMGYpKQorLSAgICAgICAgICAuU2V0Qml0c1BlckNoYW5uZWwoMTB1KQor LSAgICAgICAgICAuQnVpbGQoKTsKKy0KKy0gIHVpOjpEZXZpY2VEYXRhTWFuYWdlcjo6Q3JlYXRl SW5zdGFuY2UoKTsKKy0gIERpc3BsYXlNYW5hZ2VyIG1hbmFnZXIobnVsbHB0cik7CistICBjb25z dCBhdXRvIGRpc3BsYXlfbW9kZSA9IE1ha2VEaXNwbGF5TW9kZSgxOTIwLCAxMDgwLCB0cnVlLCA2 MCk7CistICBEaXNwbGF5Q2hhbmdlT2JzZXJ2ZXIgb2JzZXJ2ZXIoJm1hbmFnZXIpOworLSAgY29u c3QgTWFuYWdlZERpc3BsYXlJbmZvIGRpc3BsYXlfaW5mbyA9IENyZWF0ZU1hbmFnZWREaXNwbGF5 SW5mbygKKy0gICAgICAmb2JzZXJ2ZXIsIGRpc3BsYXlfc25hcHNob3QuZ2V0KCksIGRpc3BsYXlf bW9kZS5nZXQoKSk7CistCistICBFWFBFQ1RfRVEoZGlzcGxheV9pbmZvLmJpdHNfcGVyX2NoYW5u ZWwoKSwgMTB1KTsKKy0KKy0gIGNvbnN0IGF1dG8gZGlzcGxheV9jb2xvcl9zcGFjZXMgPSBkaXNw bGF5X2luZm8uZGlzcGxheV9jb2xvcl9zcGFjZXMoKTsKKy0gIEVYUEVDVF9UUlVFKGRpc3BsYXlf Y29sb3Jfc3BhY2VzLlN1cHBvcnRzSERSKCkpOworLQorLSAgLy8gfGRpc3BsYXlfY29sb3Jfc3Bh Y2VzfCBzdGlsbCBzdXBwb3J0cyBTRFIgcmVuZGVyaW5nLgorLSAgRVhQRUNUX0VRKAorLSAgICAg IERpc3BsYXlTbmFwc2hvdDo6UHJpbWFyeUZvcm1hdCgpLAorLSAgICAgIGRpc3BsYXlfY29sb3Jf c3BhY2VzLkdldE91dHB1dEJ1ZmZlckZvcm1hdChnZng6OkNvbnRlbnRDb2xvclVzYWdlOjprU1JH QiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypu ZWVkc19hbHBoYT0qL3RydWUpKTsKKy0KKy0gIGNvbnN0IGF1dG8gc2RyX2NvbG9yX3NwYWNlID0K Ky0gICAgICBkaXNwbGF5X2NvbG9yX3NwYWNlcy5HZXRPdXRwdXRDb2xvclNwYWNlKGdmeDo6Q29u dGVudENvbG9yVXNhZ2U6OmtTUkdCLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLypuZWVkc19hbHBoYT0qL3RydWUpOworLSAgRVhQRUNUX1RSVUUoc2Ry X2NvbG9yX3NwYWNlLklzVmFsaWQoKSk7CistICBFWFBFQ1RfRVEoc2RyX2NvbG9yX3NwYWNlLkdl dFByaW1hcnlJRCgpLCBnZng6OkNvbG9yU3BhY2U6OlByaW1hcnlJRDo6QlQyMDIwKTsKKy0gIEVY UEVDVF9FUShzZHJfY29sb3Jfc3BhY2UuR2V0VHJhbnNmZXJJRCgpLAorLSAgICAgICAgICAgIGdm eDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6SUVDNjE5NjZfMl8xKTsKKy0KKy0gIEVYUEVDVF9F USgKKy0gICAgICBkaXNwbGF5X2NvbG9yX3NwYWNlcy5HZXRPdXRwdXRCdWZmZXJGb3JtYXQoZ2Z4 OjpDb250ZW50Q29sb3JVc2FnZTo6a0hEUiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLypuZWVkc19hbHBoYT0qL3RydWUpLAorLSAgICAgIGdmeDo6 QnVmZmVyRm9ybWF0OjpSR0JBXzEwMTAxMDIpOworLQorLSAgY29uc3QgYXV0byBoZHJfY29sb3Jf c3BhY2UgPQorLSAgICAgIGRpc3BsYXlfY29sb3Jfc3BhY2VzLkdldE91dHB1dENvbG9yU3BhY2Uo Z2Z4OjpDb250ZW50Q29sb3JVc2FnZTo6a0hEUiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8qbmVlZHNfYWxwaGE9Ki90cnVlKTsKKy0gIEVYUEVDVF9U UlVFKGhkcl9jb2xvcl9zcGFjZS5Jc1ZhbGlkKCkpOworLSAgRVhQRUNUX0VRKGhkcl9jb2xvcl9z cGFjZS5HZXRQcmltYXJ5SUQoKSwgZ2Z4OjpDb2xvclNwYWNlOjpQcmltYXJ5SUQ6OkJUMjAyMCk7 CistICBFWFBFQ1RfRVEoaGRyX2NvbG9yX3NwYWNlLkdldFRyYW5zZmVySUQoKSwKKy0gICAgICAg ICAgICBnZng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OlBJRUNFV0lTRV9IRFIpOworLX0KKy0j ZW5kaWYKKy0KKyBJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoQWxsLAorICAgICAgICAgICAgICAg ICAgICAgICAgICBEaXNwbGF5Q2hhbmdlT2JzZXJ2ZXJUZXN0LAorICAgICAgICAgICAgICAgICAg ICAgICAgICA6OnRlc3Rpbmc6OlZhbHVlcyhmYWxzZSwgdHJ1ZSkpOworLS0gCisyLjI4LjAKKwpk aWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS11cHN0 cmVhbS0wMDAyLVJvbGwtQ2hyb21lT1MtQWlybW9udC1BRkRPLXByb2ZpbGUtZnJvbS04My00MTAz Ljk3LTEucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXVw c3RyZWFtLTAwMDItUm9sbC1DaHJvbWVPUy1BaXJtb250LUFGRE8tcHJvZmlsZS1mcm9tLTgzLTQx MDMuOTctMS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNGY0 NWVmODk4MGYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRj aGVzL2Nocm9taXVtLXVwc3RyZWFtLTAwMDItUm9sbC1DaHJvbWVPUy1BaXJtb250LUFGRE8tcHJv ZmlsZS1mcm9tLTgzLTQxMDMuOTctMS5wYXRjaApAQCAtMCwwICsxLDQxIEBACitGcm9tIGQ4Y2I0 NTRlNzlkYzE2MzUxMzNlMzc3NjQ1ZTU1OTFhZWJhYWM2MWQgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCitGcm9tOiBDaHJvbWUgUmVsZWFzZSBBdXRvcm9sbAorIDxjaHJvbWl1bS1yZWxlYXNlLWF1 dG9yb2xsQHNraWEtcHVibGljLmlhbS5nc2VydmljZWFjY291bnQuY29tPgorRGF0ZTogVGh1LCAy NSBKdW4gMjAyMCAwODo1MTo1OSArMDAwMAorU3ViamVjdDogW1BBVENIIDAyLzEyXSBSb2xsIENo cm9tZU9TIEFpcm1vbnQgQUZETyBwcm9maWxlIGZyb20KKyA4My00MTAzLjk3LTE1OTIyMTQ2MTgt YmVuY2htYXJrLTgzLjAuNDEwMy4xMTctcjEgdG8KKyA4My00MTAzLjExMi0xNTkyODIzNjU4LWJl bmNobWFyay04My4wLjQxMDMuMTE5LXIxCisKK0lmIHRoaXMgcm9sbCBoYXMgY2F1c2VkIGEgYnJl YWthZ2UsIHJldmVydCB0aGlzIENMIGFuZCBzdG9wIHRoZSByb2xsZXIKK3VzaW5nIHRoZSBjb250 cm9scyBoZXJlOgoraHR0cHM6Ly9hdXRvcm9sbC5za2lhLm9yZy9yL2Nyb3MtYWZkby1haXJtb250 LWNocm9taXVtLXN0YWJsZQorUGxlYXNlIENDIGMtY29tcGlsZXItY2hyb21lQGdvb2dsZS5jb20g b24gdGhlIHJldmVydCB0byBlbnN1cmUgdGhhdCBhIGh1bWFuCitpcyBhd2FyZSBvZiB0aGUgcHJv YmxlbS4KKworVG8gcmVwb3J0IGEgcHJvYmxlbSB3aXRoIHRoZSBBdXRvUm9sbGVyIGl0c2VsZiwg cGxlYXNlIGZpbGUgYSBidWc6CitodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3Avc2tpYS9pc3N1 ZXMvZW50cnk/dGVtcGxhdGU9QXV0b3JvbGxlcitCdWcKKworRG9jdW1lbnRhdGlvbiBmb3IgdGhl IEF1dG9Sb2xsZXIgaXMgaGVyZToKK2h0dHBzOi8vc2tpYS5nb29nbGVzb3VyY2UuY29tL2J1aWxk Ym90Lytkb2MvbWFzdGVyL2F1dG9yb2xsL1JFQURNRS5tZAorCitUYnI6IGMtY29tcGlsZXItY2hy b21lQGdvb2dsZS5jb20KK0NoYW5nZS1JZDogSTliNWZmYmM5NmIwNWVkNWZkMWNlNjQxMzYzOTg3 ODQxNzFmMzRhZjcKK1Jldmlld2VkLW9uOiBodHRwczovL2Nocm9taXVtLXJldmlldy5nb29nbGVz b3VyY2UuY29tL2MvY2hyb21pdW0vc3JjLysvMjI2NjAxMworUmV2aWV3ZWQtYnk6IENocm9tZSBS ZWxlYXNlIEF1dG9yb2xsIDxjaHJvbWl1bS1yZWxlYXNlLWF1dG9yb2xsQHNraWEtcHVibGljLmlh bS5nc2VydmljZWFjY291bnQuY29tPgorQ29tbWl0LVF1ZXVlOiBDaHJvbWUgUmVsZWFzZSBBdXRv cm9sbCA8Y2hyb21pdW0tcmVsZWFzZS1hdXRvcm9sbEBza2lhLXB1YmxpYy5pYW0uZ3NlcnZpY2Vh Y2NvdW50LmNvbT4KK0NyLUNvbW1pdC1Qb3NpdGlvbjogcmVmcy9icmFuY2gtaGVhZHMvNDEwM0B7 IzcyNX0KK0NyLUJyYW5jaGVkLUZyb206IDhhZDQ3ZThkMjFmNjg2NmU0YTM3ZjQ3ZDgzYTg2MGQ0 MWRlYmY1MTQtcmVmcy9oZWFkcy9tYXN0ZXJAeyM3NTYwNjZ9CistLS0KKyBjaHJvbWVvcy9wcm9m aWxlcy9haXJtb250LmFmZG8ubmV3ZXN0LnR4dCB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBp bnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL2Nocm9tZW9zL3Byb2Zp bGVzL2Fpcm1vbnQuYWZkby5uZXdlc3QudHh0IGIvY2hyb21lb3MvcHJvZmlsZXMvYWlybW9udC5h ZmRvLm5ld2VzdC50eHQKK2luZGV4IDcyOThlYWJiY2FkLi4xMzBiOGZlODYyZCAxMDA2NDQKKy0t LSBhL2Nocm9tZW9zL3Byb2ZpbGVzL2Fpcm1vbnQuYWZkby5uZXdlc3QudHh0CisrKysgYi9jaHJv bWVvcy9wcm9maWxlcy9haXJtb250LmFmZG8ubmV3ZXN0LnR4dAorQEAgLTEgKzEgQEAKKy1jaHJv bWVvcy1jaHJvbWUtYW1kNjQtYWlybW9udC04My00MTAzLjk3LTE1OTIyMTQ2MTgtYmVuY2htYXJr LTgzLjAuNDEwMy4xMTctcjEtcmVkYWN0ZWQuYWZkby54egorK2Nocm9tZW9zLWNocm9tZS1hbWQ2 NC1haXJtb250LTgzLTQxMDMuMTEyLTE1OTI4MjM2NTgtYmVuY2htYXJrLTgzLjAuNDEwMy4xMTkt cjEtcmVkYWN0ZWQuYWZkby54egorLS0gCisyLjI4LjAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9l bGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS11cHN0cmVhbS0wMDAzLVJvbGwtQ2hyb21l T1MtU2lsdmVybW9udC1BRkRPLXByb2ZpbGUtZnJvbS04My00MTAzLjkucGF0Y2ggYi9zcmNwa2dz L2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXVwc3RyZWFtLTAwMDMtUm9sbC1DaHJv bWVPUy1TaWx2ZXJtb250LUFGRE8tcHJvZmlsZS1mcm9tLTgzLTQxMDMuOS5wYXRjaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNzcyOWVjZTc3Y2YKLS0tIC9kZXYvbnVs bAorKysgYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXVwc3RyZWFt LTAwMDMtUm9sbC1DaHJvbWVPUy1TaWx2ZXJtb250LUFGRE8tcHJvZmlsZS1mcm9tLTgzLTQxMDMu OS5wYXRjaApAQCAtMCwwICsxLDQxIEBACitGcm9tIGU3ZmIzOGQ4OTI3YTdkMTRiZWJhMGZlZDRk MTRkMDExMGFmM2VkMWYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBDaHJvbWUgUmVs ZWFzZSBBdXRvcm9sbAorIDxjaHJvbWl1bS1yZWxlYXNlLWF1dG9yb2xsQHNraWEtcHVibGljLmlh bS5nc2VydmljZWFjY291bnQuY29tPgorRGF0ZTogVGh1LCAyNSBKdW4gMjAyMCAwODo1NTo0MCAr MDAwMAorU3ViamVjdDogW1BBVENIIDAzLzEyXSBSb2xsIENocm9tZU9TIFNpbHZlcm1vbnQgQUZE TyBwcm9maWxlIGZyb20KKyA4My00MTAzLjk3LTE1OTIyMTY1NTctYmVuY2htYXJrLTgzLjAuNDEw My4xMTctcjEgdG8KKyA4My00MTAzLjExMi0xNTkyODE5ODg0LWJlbmNobWFyay04My4wLjQxMDMu MTE5LXIxCisKK0lmIHRoaXMgcm9sbCBoYXMgY2F1c2VkIGEgYnJlYWthZ2UsIHJldmVydCB0aGlz IENMIGFuZCBzdG9wIHRoZSByb2xsZXIKK3VzaW5nIHRoZSBjb250cm9scyBoZXJlOgoraHR0cHM6 Ly9hdXRvcm9sbC5za2lhLm9yZy9yL2Nyb3MtYWZkby1zaWx2ZXJtb250LWNocm9taXVtLXN0YWJs ZQorUGxlYXNlIENDIGMtY29tcGlsZXItY2hyb21lQGdvb2dsZS5jb20gb24gdGhlIHJldmVydCB0 byBlbnN1cmUgdGhhdCBhIGh1bWFuCitpcyBhd2FyZSBvZiB0aGUgcHJvYmxlbS4KKworVG8gcmVw b3J0IGEgcHJvYmxlbSB3aXRoIHRoZSBBdXRvUm9sbGVyIGl0c2VsZiwgcGxlYXNlIGZpbGUgYSBi dWc6CitodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3Avc2tpYS9pc3N1ZXMvZW50cnk/dGVtcGxh dGU9QXV0b3JvbGxlcitCdWcKKworRG9jdW1lbnRhdGlvbiBmb3IgdGhlIEF1dG9Sb2xsZXIgaXMg aGVyZToKK2h0dHBzOi8vc2tpYS5nb29nbGVzb3VyY2UuY29tL2J1aWxkYm90Lytkb2MvbWFzdGVy L2F1dG9yb2xsL1JFQURNRS5tZAorCitUYnI6IGMtY29tcGlsZXItY2hyb21lQGdvb2dsZS5jb20K K0NoYW5nZS1JZDogSTdhMmMwOTFjOTYyNjZkZjUzOThiNGQ1MjY1NjhlNTc5YjQyYmE3NzIKK1Jl dmlld2VkLW9uOiBodHRwczovL2Nocm9taXVtLXJldmlldy5nb29nbGVzb3VyY2UuY29tL2MvY2hy b21pdW0vc3JjLysvMjI2NjAxNAorUmV2aWV3ZWQtYnk6IENocm9tZSBSZWxlYXNlIEF1dG9yb2xs IDxjaHJvbWl1bS1yZWxlYXNlLWF1dG9yb2xsQHNraWEtcHVibGljLmlhbS5nc2VydmljZWFjY291 bnQuY29tPgorQ29tbWl0LVF1ZXVlOiBDaHJvbWUgUmVsZWFzZSBBdXRvcm9sbCA8Y2hyb21pdW0t cmVsZWFzZS1hdXRvcm9sbEBza2lhLXB1YmxpYy5pYW0uZ3NlcnZpY2VhY2NvdW50LmNvbT4KK0Ny LUNvbW1pdC1Qb3NpdGlvbjogcmVmcy9icmFuY2gtaGVhZHMvNDEwM0B7IzcyNn0KK0NyLUJyYW5j aGVkLUZyb206IDhhZDQ3ZThkMjFmNjg2NmU0YTM3ZjQ3ZDgzYTg2MGQ0MWRlYmY1MTQtcmVmcy9o ZWFkcy9tYXN0ZXJAeyM3NTYwNjZ9CistLS0KKyBjaHJvbWVvcy9wcm9maWxlcy9zaWx2ZXJtb250 LmFmZG8ubmV3ZXN0LnR4dCB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyks IDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL2Nocm9tZW9zL3Byb2ZpbGVzL3NpbHZlcm1v bnQuYWZkby5uZXdlc3QudHh0IGIvY2hyb21lb3MvcHJvZmlsZXMvc2lsdmVybW9udC5hZmRvLm5l d2VzdC50eHQKK2luZGV4IDY4Nzg2NjAwYTQ5Li5kZjQ4ZTM1YzJlOSAxMDA2NDQKKy0tLSBhL2No cm9tZW9zL3Byb2ZpbGVzL3NpbHZlcm1vbnQuYWZkby5uZXdlc3QudHh0CisrKysgYi9jaHJvbWVv cy9wcm9maWxlcy9zaWx2ZXJtb250LmFmZG8ubmV3ZXN0LnR4dAorQEAgLTEgKzEgQEAKKy1jaHJv bWVvcy1jaHJvbWUtYW1kNjQtc2lsdmVybW9udC04My00MTAzLjk3LTE1OTIyMTY1NTctYmVuY2ht YXJrLTgzLjAuNDEwMy4xMTctcjEtcmVkYWN0ZWQuYWZkby54egorK2Nocm9tZW9zLWNocm9tZS1h bWQ2NC1zaWx2ZXJtb250LTgzLTQxMDMuMTEyLTE1OTI4MTk4ODQtYmVuY2htYXJrLTgzLjAuNDEw My4xMTktcjEtcmVkYWN0ZWQuYWZkby54egorLS0gCisyLjI4LjAKKwpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS11cHN0cmVhbS0wMDA0LVJvbGwt Q2hyb21lT1MtQnJvYWR3ZWxsLUFGRE8tcHJvZmlsZS1mcm9tLTgzLTQxMDMuOTcucGF0Y2ggYi9z cmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXVwc3RyZWFtLTAwMDQtUm9s bC1DaHJvbWVPUy1Ccm9hZHdlbGwtQUZETy1wcm9maWxlLWZyb20tODMtNDEwMy45Ny5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNTczZjJlNzA1OGUKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXVw c3RyZWFtLTAwMDQtUm9sbC1DaHJvbWVPUy1Ccm9hZHdlbGwtQUZETy1wcm9maWxlLWZyb20tODMt NDEwMy45Ny5wYXRjaApAQCAtMCwwICsxLDQxIEBACitGcm9tIGM5MDA3MWUyY2FhZjI4ZGExNDUz NmU0YjNmNmM3NGNiYTcxYzkyNGMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBDaHJv bWUgUmVsZWFzZSBBdXRvcm9sbAorIDxjaHJvbWl1bS1yZWxlYXNlLWF1dG9yb2xsQHNraWEtcHVi bGljLmlhbS5nc2VydmljZWFjY291bnQuY29tPgorRGF0ZTogVGh1LCAyNSBKdW4gMjAyMCAwOTo1 Mjo0OCArMDAwMAorU3ViamVjdDogW1BBVENIIDA0LzEyXSBSb2xsIENocm9tZU9TIEJyb2Fkd2Vs bCBBRkRPIHByb2ZpbGUgZnJvbQorIDgzLTQxMDMuOTctMTU5MjIxODY4Ny1iZW5jaG1hcmstODMu MC40MTAzLjExNy1yMSB0bworIDgzLTQxMDMuOTctMTU5MjgxOTE5Ny1iZW5jaG1hcmstODMuMC40 MTAzLjExOS1yMQorCitJZiB0aGlzIHJvbGwgaGFzIGNhdXNlZCBhIGJyZWFrYWdlLCByZXZlcnQg dGhpcyBDTCBhbmQgc3RvcCB0aGUgcm9sbGVyCit1c2luZyB0aGUgY29udHJvbHMgaGVyZToKK2h0 dHBzOi8vYXV0b3JvbGwuc2tpYS5vcmcvci9jcm9zLWFmZG8tYnJvYWR3ZWxsLWNocm9taXVtLXN0 YWJsZQorUGxlYXNlIENDIGMtY29tcGlsZXItY2hyb21lQGdvb2dsZS5jb20gb24gdGhlIHJldmVy dCB0byBlbnN1cmUgdGhhdCBhIGh1bWFuCitpcyBhd2FyZSBvZiB0aGUgcHJvYmxlbS4KKworVG8g cmVwb3J0IGEgcHJvYmxlbSB3aXRoIHRoZSBBdXRvUm9sbGVyIGl0c2VsZiwgcGxlYXNlIGZpbGUg YSBidWc6CitodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3Avc2tpYS9pc3N1ZXMvZW50cnk/dGVt cGxhdGU9QXV0b3JvbGxlcitCdWcKKworRG9jdW1lbnRhdGlvbiBmb3IgdGhlIEF1dG9Sb2xsZXIg aXMgaGVyZToKK2h0dHBzOi8vc2tpYS5nb29nbGVzb3VyY2UuY29tL2J1aWxkYm90Lytkb2MvbWFz dGVyL2F1dG9yb2xsL1JFQURNRS5tZAorCitUYnI6IGMtY29tcGlsZXItY2hyb21lQGdvb2dsZS5j b20KK0NoYW5nZS1JZDogSTNkZTFiZDY4ZWRhMjZhOTI1MDJjMmUzODA0NGIyYmQ0ZGQ4NTVkNzEK K1Jldmlld2VkLW9uOiBodHRwczovL2Nocm9taXVtLXJldmlldy5nb29nbGVzb3VyY2UuY29tL2Mv Y2hyb21pdW0vc3JjLysvMjI2NjAxOQorUmV2aWV3ZWQtYnk6IENocm9tZSBSZWxlYXNlIEF1dG9y b2xsIDxjaHJvbWl1bS1yZWxlYXNlLWF1dG9yb2xsQHNraWEtcHVibGljLmlhbS5nc2VydmljZWFj Y291bnQuY29tPgorQ29tbWl0LVF1ZXVlOiBDaHJvbWUgUmVsZWFzZSBBdXRvcm9sbCA8Y2hyb21p dW0tcmVsZWFzZS1hdXRvcm9sbEBza2lhLXB1YmxpYy5pYW0uZ3NlcnZpY2VhY2NvdW50LmNvbT4K K0NyLUNvbW1pdC1Qb3NpdGlvbjogcmVmcy9icmFuY2gtaGVhZHMvNDEwM0B7IzcyN30KK0NyLUJy YW5jaGVkLUZyb206IDhhZDQ3ZThkMjFmNjg2NmU0YTM3ZjQ3ZDgzYTg2MGQ0MWRlYmY1MTQtcmVm cy9oZWFkcy9tYXN0ZXJAeyM3NTYwNjZ9CistLS0KKyBjaHJvbWVvcy9wcm9maWxlcy9icm9hZHdl bGwuYWZkby5uZXdlc3QudHh0IHwgMiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigr KSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvY2hyb21lb3MvcHJvZmlsZXMvYnJvYWR3 ZWxsLmFmZG8ubmV3ZXN0LnR4dCBiL2Nocm9tZW9zL3Byb2ZpbGVzL2Jyb2Fkd2VsbC5hZmRvLm5l d2VzdC50eHQKK2luZGV4IDdjYTY0MTA3Y2E5Li45NTNhYmE1OGE2NCAxMDA2NDQKKy0tLSBhL2No cm9tZW9zL3Byb2ZpbGVzL2Jyb2Fkd2VsbC5hZmRvLm5ld2VzdC50eHQKKysrKyBiL2Nocm9tZW9z L3Byb2ZpbGVzL2Jyb2Fkd2VsbC5hZmRvLm5ld2VzdC50eHQKK0BAIC0xICsxIEBACistY2hyb21l b3MtY2hyb21lLWFtZDY0LWJyb2Fkd2VsbC04My00MTAzLjk3LTE1OTIyMTg2ODctYmVuY2htYXJr LTgzLjAuNDEwMy4xMTctcjEtcmVkYWN0ZWQuYWZkby54egorK2Nocm9tZW9zLWNocm9tZS1hbWQ2 NC1icm9hZHdlbGwtODMtNDEwMy45Ny0xNTkyODE5MTk3LWJlbmNobWFyay04My4wLjQxMDMuMTE5 LXIxLXJlZGFjdGVkLmFmZG8ueHoKKy0tIAorMi4yOC4wCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv ZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tdXBzdHJlYW0tMDAwNS1JbmNyZW1lbnRp bmctVkVSU0lPTi10by04My4wLjQxMDMuMTIwLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjkvZmls ZXMvcGF0Y2hlcy9jaHJvbWl1bS11cHN0cmVhbS0wMDA1LUluY3JlbWVudGluZy1WRVJTSU9OLXRv LTgzLjAuNDEwMy4xMjAucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAuLmVhZTQ1ZDEwMzI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjkvZmls ZXMvcGF0Y2hlcy9jaHJvbWl1bS11cHN0cmVhbS0wMDA1LUluY3JlbWVudGluZy1WRVJTSU9OLXRv LTgzLjAuNDEwMy4xMjAucGF0Y2gKQEAgLTAsMCArMSwyOSBAQAorRnJvbSBkZDY4ZDhlZmUyYzRh NWMzZjA0MzE3ZDcxZTM1OWIyZDU3OWZjZjU5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJv bTogY2hyb21lLXJlbGVhc2UtYm90IDxjaHJvbWUtcmVsZWFzZS1ib3RAY2hyb21pdW0ub3JnPgor RGF0ZTogRnJpLCAyNiBKdW4gMjAyMCAxNTowNToyMSArMDAwMAorU3ViamVjdDogW1BBVENIIDA1 LzEyXSBJbmNyZW1lbnRpbmcgVkVSU0lPTiB0byA4My4wLjQxMDMuMTIwCisKK1RCUj1iZW5tYXNv bkBjaHJvbWl1bS5vcmcKKworQ2hhbmdlLUlkOiBJMmRlNmZiZWY2YjFkNWJhNmQ5YmJkNTI5NmU5 NzA2ZDdjYTMxOTRlMgorUmV2aWV3ZWQtb246IGh0dHBzOi8vY2hyb21pdW0tcmV2aWV3Lmdvb2ds ZXNvdXJjZS5jb20vYy9jaHJvbWl1bS9zcmMvKy8yMjY5NTA1CitSZXZpZXdlZC1ieTogQ2hyb21l IFJlbGVhc2UgQm90IChMVUNJKSA8Y2hyb21lLW9mZmljaWFsLWJyYW5jaGVyQGNob3BzLXNlcnZp Y2UtYWNjb3VudHMuaWFtLmdzZXJ2aWNlYWNjb3VudC5jb20+CitDci1Db21taXQtUG9zaXRpb246 IHJlZnMvYnJhbmNoLWhlYWRzLzQxMDNAeyM3Mjh9CitDci1CcmFuY2hlZC1Gcm9tOiA4YWQ0N2U4 ZDIxZjY4NjZlNGEzN2Y0N2Q4M2E4NjBkNDFkZWJmNTE0LXJlZnMvaGVhZHMvbWFzdGVyQHsjNzU2 MDY2fQorLS0tCisgY2hyb21lL1ZFUlNJT04gfCAyICstCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5z ZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9jaHJvbWUvVkVSU0lPTiBi L2Nocm9tZS9WRVJTSU9OCitpbmRleCA3YzA0OTljYWZhYy4uZjczMTBhOTJjZjMgMTAwNjQ0Cist LS0gYS9jaHJvbWUvVkVSU0lPTgorKysrIGIvY2hyb21lL1ZFUlNJT04KK0BAIC0xLDQgKzEsNCBA QAorIE1BSk9SPTgzCisgTUlOT1I9MAorIEJVSUxEPTQxMDMKKy1QQVRDSD0xMTkKKytQQVRDSD0x MjAKKy0tIAorMi4yOC4wCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3Bh dGNoZXMvY2hyb21pdW0tdXBzdHJlYW0tMDAwNi1Nb3ZlLUdDUFctYm9va2tlZXBpbmctb3V0LW9m LWZvcmtlZC1wcm9jZXNzLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9j aHJvbWl1bS11cHN0cmVhbS0wMDA2LU1vdmUtR0NQVy1ib29ra2VlcGluZy1vdXQtb2YtZm9ya2Vk LXByb2Nlc3MucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjBh NWUwMDI3NjVkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0 Y2hlcy9jaHJvbWl1bS11cHN0cmVhbS0wMDA2LU1vdmUtR0NQVy1ib29ra2VlcGluZy1vdXQtb2Yt Zm9ya2VkLXByb2Nlc3MucGF0Y2gKQEAgLTAsMCArMSwxNTAgQEAKK0Zyb20gOGI3ODIwM2Q4ZDE5 OTFlNGVkOGI1MGI1ZDQ0ZTFjOGU3NmM2MDAwMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zy b206IFl1c3VmIFNlbmd1bCA8eXVzdWZzbkBnb29nbGUuY29tPgorRGF0ZTogRnJpLCAyNiBKdW4g MjAyMCAxOTo1NDozOCArMDAwMAorU3ViamVjdDogW1BBVENIIDA2LzEyXSBNb3ZlIEdDUFcgYm9v a2tlZXBpbmcgb3V0IG9mIGZvcmtlZCBwcm9jZXNzCisKKyhjaGVycnkgcGlja2VkIGZyb20gY29t bWl0IGYyZTM1NjU1NjJlMzhlNzYwMjIwYTRjNmQyZWE4OTU0NzcwODEwOTUpCisKK0J1ZzogMTA5 NzQwNworQ2hhbmdlLUlkOiBJODBiMGZhNTdjYzE5MTk2YjA2YjNjYmVjNWFmYzdjNDQ4OGZmNzMy NQorUmV2aWV3ZWQtb246IGh0dHBzOi8vY2hyb21pdW0tcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20v Yy9jaHJvbWl1bS9zcmMvKy8yMjU1MTEzCitDb21taXQtUXVldWU6IFl1c3VmIFNlbmd1bCA8eXVz dWZzbkBnb29nbGUuY29tPgorUmV2aWV3ZWQtYnk6IFJha2VzaCBTb21hIDxyYWtlc2hzb21hQGdv b2dsZS5jb20+CitDci1PcmlnaW5hbC1Db21taXQtUG9zaXRpb246IHJlZnMvaGVhZHMvbWFzdGVy QHsjNzgxNzIxfQorUmV2aWV3ZWQtb246IGh0dHBzOi8vY2hyb21pdW0tcmV2aWV3Lmdvb2dsZXNv dXJjZS5jb20vYy9jaHJvbWl1bS9zcmMvKy8yMjY4MTE3CitDci1Db21taXQtUG9zaXRpb246IHJl ZnMvYnJhbmNoLWhlYWRzLzQxMDNAeyM3Mjl9CitDci1CcmFuY2hlZC1Gcm9tOiA4YWQ0N2U4ZDIx ZjY4NjZlNGEzN2Y0N2Q4M2E4NjBkNDFkZWJmNTE0LXJlZnMvaGVhZHMvbWFzdGVyQHsjNzU2MDY2 fQorLS0tCisgLi4uL2dhaWFjcC9nYWlhX2NyZWRlbnRpYWxfYmFzZS5jYyAgICAgICAgICAgIHwg NjcgKysrKysrKysrKy0tLS0tLS0tLQorIC4uLi9nYWlhY3AvZ2FpYV9jcmVkZW50aWFsX2Jhc2Uu aCAgICAgICAgICAgICB8ICA1ICstCisgMiBmaWxlcyBjaGFuZ2VkLCAzNyBpbnNlcnRpb25zKCsp LCAzNSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2Nocm9tZS9jcmVkZW50aWFsX3Byb3Zp ZGVyL2dhaWFjcC9nYWlhX2NyZWRlbnRpYWxfYmFzZS5jYyBiL2Nocm9tZS9jcmVkZW50aWFsX3By b3ZpZGVyL2dhaWFjcC9nYWlhX2NyZWRlbnRpYWxfYmFzZS5jYworaW5kZXggNjcwNGE5ZGI5Yzgu LjMwZTgwMTFiNzNkIDEwMDY0NAorLS0tIGEvY2hyb21lL2NyZWRlbnRpYWxfcHJvdmlkZXIvZ2Fp YWNwL2dhaWFfY3JlZGVudGlhbF9iYXNlLmNjCisrKysgYi9jaHJvbWUvY3JlZGVudGlhbF9wcm92 aWRlci9nYWlhY3AvZ2FpYV9jcmVkZW50aWFsX2Jhc2UuY2MKK0BAIC0xOTg2LDcgKzE5ODYsNyBA QCB1bnNpZ25lZCBfX3N0ZGNhbGwgQ0dhaWFDcmVkZW50aWFsQmFzZTo6V2FpdEZvckxvZ2luVUko dm9pZCogcGFyYW0pIHsKKyB9CisgCisgLy8gc3RhdGljCistSFJFU1VMVCBDR2FpYUNyZWRlbnRp YWxCYXNlOjpTYXZlQWNjb3VudEluZm8oY29uc3QgYmFzZTo6VmFsdWUmIHByb3BlcnRpZXMpIHsK KytIUkVTVUxUIENHYWlhQ3JlZGVudGlhbEJhc2U6OlBlcmZvcm1BY3Rpb25zKGNvbnN0IGJhc2U6 OlZhbHVlJiBwcm9wZXJ0aWVzKSB7CisgICBMT0dGTihWRVJCT1NFKTsKKyAKKyAgIGJhc2U6OnN0 cmluZzE2IHNpZCA9IEdldERpY3RTdHJpbmcocHJvcGVydGllcywga0tleVNJRCk7CitAQCAtMjAw OSwzNSArMjAwOSw5IEBAIEhSRVNVTFQgQ0dhaWFDcmVkZW50aWFsQmFzZTo6U2F2ZUFjY291bnRJ bmZvKGNvbnN0IGJhc2U6OlZhbHVlJiBwcm9wZXJ0aWVzKSB7CisgCisgICBiYXNlOjpzdHJpbmcx NiBkb21haW4gPSBHZXREaWN0U3RyaW5nKHByb3BlcnRpZXMsIGtLZXlEb21haW4pOworIAorLSAg Ly8gVE9ETyhjcmJ1Zy5jb20vOTc2NzQ0KTogVXNlIHRoZSBkb3duIHNjb3BlZCBrS2V5TWRtQWNj ZXNzVG9rZW4gaW5zdGVhZAorLSAgLy8gb2YgbG9naW4gc2NvcGVkIHRva2VuLgorLSAgc3RkOjpz dHJpbmcgYWNjZXNzX3Rva2VuID0gR2V0RGljdFN0cmluZ1VURjgocHJvcGVydGllcywga0tleUFj Y2Vzc1Rva2VuKTsKKy0gIGlmICghYWNjZXNzX3Rva2VuLmVtcHR5KCkpIHsKKy0gICAgLy8gVXBk YXRlIHRoZSBwYXNzd29yZCByZWNvdmVyeSBpbmZvcm1hdGlvbiBpZiBwb3NzaWJsZS4KKy0gICAg SFJFU1VMVCBociA9IFBhc3N3b3JkUmVjb3ZlcnlNYW5hZ2VyOjpHZXQoKS0+U3RvcmVXaW5kb3dz UGFzc3dvcmRJZk5lZWRlZCgKKy0gICAgICAgIHNpZCwgYWNjZXNzX3Rva2VuLCBwYXNzd29yZCk7 CistICAgIGlmIChGQUlMRUQoaHIpICYmIGhyICE9IEVfTk9USU1QTCkKKy0gICAgICBMT0dGTihF UlJPUikgPDwgIlN0b3JlV2luZG93c1Bhc3N3b3JkSWZOZWVkZWQgaHI9IiA8PCBwdXRIUihocik7 CistCistICAgIC8vIFVwbG9hZCBkZXZpY2UgZGV0YWlscyB0byBnZW0gZGF0YWJhc2UuCistICAg IGhyID0gR2VtRGV2aWNlRGV0YWlsc01hbmFnZXI6OkdldCgpLT5VcGxvYWREZXZpY2VEZXRhaWxz KGFjY2Vzc190b2tlbiwgc2lkLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VybmFtZSwgZG9tYWluKTsKKy0gICAgaWYgKEZB SUxFRChocikgJiYgaHIgIT0gRV9OT1RJTVBMKQorLSAgICAgIExPR0ZOKEVSUk9SKSA8PCAiVXBs b2FkRGV2aWNlRGV0YWlscyBocj0iIDw8IHB1dEhSKGhyKTsKKy0KKy0gICAgU2V0VXNlclByb3Bl cnR5KHNpZCwga1JlZ0RldmljZURldGFpbHNVcGxvYWRTdGF0dXMsIFNVQ0NFRURFRChocikgPyAx IDogMCk7CistCistICAgIC8vIEJlbG93IHNldHRlciBpcyBvbmx5IHVzZWQgZm9yIHVuaXQgdGVz dGluZy4KKy0gICAgR2VtRGV2aWNlRGV0YWlsc01hbmFnZXI6OkdldCgpLT5TZXRVcGxvYWRTdGF0 dXNGb3JUZXN0aW5nKGhyKTsKKy0gIH0gZWxzZSB7CistICAgIExPR0ZOKEVSUk9SKSA8PCAiQWNj ZXNzIHRva2VuIGlzIGVtcHR5LiBDYW5ub3Qgc2F2ZSBXaW5kb3dzIHBhc3N3b3JkLiI7CistICB9 CistCisgICAvLyBMb2FkIHRoZSB1c2VyJ3MgcHJvZmlsZSBzbyB0aGF0IHRoZWlyIHJlZ2lzdHJ5 IGhpdmUgaXMgYXZhaWxhYmxlLgorICAgYXV0byBwcm9maWxlID0gU2NvcGVkVXNlclByb2ZpbGU6 OkNyZWF0ZShzaWQsIGRvbWFpbiwgdXNlcm5hbWUsIHBhc3N3b3JkKTsKKyAKKy0gIFNlY3VyZWx5 Q2xlYXJTdHJpbmcocGFzc3dvcmQpOworLQorICAgaWYgKCFwcm9maWxlKSB7CisgICAgIExPR0ZO KEVSUk9SKSA8PCAiQ291bGQgbm90IGxvYWQgdXNlciBwcm9maWxlIjsKKyAgICAgcmV0dXJuIEVf VU5FWFBFQ1RFRDsKK0BAIC0yMDQ3LDYgKzIwMjEsMzIgQEAgSFJFU1VMVCBDR2FpYUNyZWRlbnRp YWxCYXNlOjpTYXZlQWNjb3VudEluZm8oY29uc3QgYmFzZTo6VmFsdWUmIHByb3BlcnRpZXMpIHsK KyAgIGlmIChGQUlMRUQoaHIpKQorICAgICBMT0dGTihFUlJPUikgPDwgInByb2ZpbGUuU2F2ZUFj Y291bnRJbmZvIGZhaWxlZCAoY29udCkgaHI9IiA8PCBwdXRIUihocik7CisgCisrICAvLyBUT0RP KGNyYnVnLmNvbS85NzY3NDQpOiBVc2UgdGhlIGRvd24gc2NvcGVkIGtLZXlNZG1BY2Nlc3NUb2tl biBpbnN0ZWFkCisrICAvLyBvZiBsb2dpbiBzY29wZWQgdG9rZW4uCisrICBzdGQ6OnN0cmluZyBh Y2Nlc3NfdG9rZW4gPSBHZXREaWN0U3RyaW5nVVRGOChwcm9wZXJ0aWVzLCBrS2V5QWNjZXNzVG9r ZW4pOworKyAgaWYgKGFjY2Vzc190b2tlbi5lbXB0eSgpKSB7CisrICAgIExPR0ZOKEVSUk9SKSA8 PCAiQWNjZXNzIHRva2VuIGlzIGVtcHR5LiI7CisrICAgIHJldHVybiBFX0ZBSUw7CisrICB9Cisr CisrICAvLyBVcGRhdGUgdGhlIHBhc3N3b3JkIHJlY292ZXJ5IGluZm9ybWF0aW9uIGlmIHBvc3Np YmxlLgorKyAgaHIgPSBQYXNzd29yZFJlY292ZXJ5TWFuYWdlcjo6R2V0KCktPlN0b3JlV2luZG93 c1Bhc3N3b3JkSWZOZWVkZWQoCisrICAgIHNpZCwgYWNjZXNzX3Rva2VuLCBwYXNzd29yZCk7Cisr ICBTZWN1cmVseUNsZWFyU3RyaW5nKHBhc3N3b3JkKTsKKysgIGlmIChGQUlMRUQoaHIpICYmIGhy ICE9IEVfTk9USU1QTCkKKysgICAgTE9HRk4oRVJST1IpIDw8ICJTdG9yZVdpbmRvd3NQYXNzd29y ZElmTmVlZGVkIGhyPSIgPDwgcHV0SFIoaHIpOworKworKyAgLy8gVXBsb2FkIGRldmljZSBkZXRh aWxzIHRvIGdlbSBkYXRhYmFzZS4KKysgIGhyID0gR2VtRGV2aWNlRGV0YWlsc01hbmFnZXI6Okdl dCgpLT5VcGxvYWREZXZpY2VEZXRhaWxzKGFjY2Vzc190b2tlbiwgc2lkLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcm5hbWUs IGRvbWFpbik7CisrICBpZiAoRkFJTEVEKGhyKSAmJiBociAhPSBFX05PVElNUEwpCisrICAgIExP R0ZOKEVSUk9SKSA8PCAiVXBsb2FkRGV2aWNlRGV0YWlscyBocj0iIDw8IHB1dEhSKGhyKTsKKysK KysgIFNldFVzZXJQcm9wZXJ0eShzaWQsIGtSZWdEZXZpY2VEZXRhaWxzVXBsb2FkU3RhdHVzLCBT VUNDRUVERUQoaHIpID8gMSA6IDApOworKworKyAgLy8gQmVsb3cgc2V0dGVyIGlzIG9ubHkgdXNl ZCBmb3IgdW5pdCB0ZXN0aW5nLgorKyAgR2VtRGV2aWNlRGV0YWlsc01hbmFnZXI6OkdldCgpLT5T ZXRVcGxvYWRTdGF0dXNGb3JUZXN0aW5nKGhyKTsKKysKKyAgIHJldHVybiBocjsKKyB9CisgCitA QCAtMjA1OCw5ICsyMDU4LDkgQEAgSFJFU1VMVCBDR2FpYUNyZWRlbnRpYWxCYXNlOjpQZXJmb3Jt UG9zdFNpZ25pbkFjdGlvbnMoCisgICBIUkVTVUxUIGhyID0gU19PSzsKKyAKKyAgIGlmIChjb21f aW5pdGlhbGl6ZWQpIHsKKy0gICAgaHIgPSBjcmVkZW50aWFsX3Byb3ZpZGVyOjpDR2FpYUNyZWRl bnRpYWxCYXNlOjpTYXZlQWNjb3VudEluZm8ocHJvcGVydGllcyk7CisrICAgIGhyID0gY3JlZGVu dGlhbF9wcm92aWRlcjo6Q0dhaWFDcmVkZW50aWFsQmFzZTo6UGVyZm9ybUFjdGlvbnMocHJvcGVy dGllcyk7CisgICAgIGlmIChGQUlMRUQoaHIpKQorLSAgICAgIExPR0ZOKEVSUk9SKSA8PCAiU2F2 ZUFjY291bnRJbmZvIGhyPSIgPDwgcHV0SFIoaHIpOworKyAgICAgIExPR0ZOKEVSUk9SKSA8PCAi UGVyZm9ybUFjdGlvbnMgaHI9IiA8PCBwdXRIUihocik7CisgCisgICAgIC8vIFRyeSB0byBlbnJv bGwgdGhlIG1hY2hpbmUgdG8gTURNIGhlcmUuIE1ETSByZXF1aXJlcyBhIHVzZXIgdG8gYmUgc2ln bmVkCisgICAgIC8vIG9uIHRvIGFuIGludGVyYWN0aXZlIHNlc3Npb24gdG8gc3VjY2VlZCBhbmQg d2hlbiB3ZSBjYWxsIHRoaXMgZnVuY3Rpb24KK0BAIC0yMDg5LDEwICsyMDg5LDExIEBAIEhSRVNV TFQgQ0dhaWFDcmVkZW50aWFsQmFzZTo6UGVyZm9ybVBvc3RTaWduaW5BY3Rpb25zKAorIAorIC8v IFJlZ2lzdGVycyBPUyB1c2VyIC0gZ2FpYSB1c2VyIGFzc29jaWF0aW9uIGluIEhLRVlfTE9DQUxf TUFDSElORSByZWdpc3RyeQorIC8vIGhpdmUuCistSFJFU1VMVCBSZWdpc3RlckFzc29jaWF0aW9u KGNvbnN0IGJhc2U6OnN0cmluZzE2JiBzaWQsCistICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IGJhc2U6OnN0cmluZzE2JiBpZCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgYmFzZTo6c3RyaW5nMTYmIGVtYWlsLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBiYXNlOjpzdHJpbmcxNiYgdG9rZW5faGFuZGxlKSB7CisrSFJFU1VMVAorK1JlZ2lz dGVyQXNzb2NpYXRpb24oY29uc3QgYmFzZTo6c3RyaW5nMTYmIHNpZCwKKysgICAgICAgICAgICAg ICAgICAgIGNvbnN0IGJhc2U6OnN0cmluZzE2JiBpZCwKKysgICAgICAgICAgICAgICAgICAgIGNv bnN0IGJhc2U6OnN0cmluZzE2JiBlbWFpbCwKKysgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJh c2U6OnN0cmluZzE2JiB0b2tlbl9oYW5kbGUpIHsKKyAgIC8vIFNhdmUgdG9rZW4gaGFuZGxlLiAg VGhpcyBoYW5kbGUgd2lsbCBiZSB1c2VkIGxhdGVyIHRvIGRldGVybWluZSBpZiB0aGUKKyAgIC8v IHRoZSB1c2VyIGhhcyBjaGFuZ2VkIHRoZWlyIHBhc3N3b3JkIHNpbmNlIHRoZSBhY2NvdW50IHdh cyBjcmVhdGVkLgorICAgSFJFU1VMVCBociA9IFNldFVzZXJQcm9wZXJ0eShzaWQsIGtVc2VyVG9r ZW5IYW5kbGUsIHRva2VuX2hhbmRsZSk7CitkaWZmIC0tZ2l0IGEvY2hyb21lL2NyZWRlbnRpYWxf cHJvdmlkZXIvZ2FpYWNwL2dhaWFfY3JlZGVudGlhbF9iYXNlLmggYi9jaHJvbWUvY3JlZGVudGlh bF9wcm92aWRlci9nYWlhY3AvZ2FpYV9jcmVkZW50aWFsX2Jhc2UuaAoraW5kZXggNmFhYWY0NDI0 NGIuLjZiZjMzZmY0ZDNiIDEwMDY0NAorLS0tIGEvY2hyb21lL2NyZWRlbnRpYWxfcHJvdmlkZXIv Z2FpYWNwL2dhaWFfY3JlZGVudGlhbF9iYXNlLmgKKysrKyBiL2Nocm9tZS9jcmVkZW50aWFsX3By b3ZpZGVyL2dhaWFjcC9nYWlhX2NyZWRlbnRpYWxfYmFzZS5oCitAQCAtOTcsOCArOTcsOSBAQCBj bGFzcyBBVExfTk9fVlRBQkxFIENHYWlhQ3JlZGVudGlhbEJhc2UKKyAgICAgcmV0dXJuIGF1dGhl bnRpY2F0aW9uX3Jlc3VsdHNfOworICAgfQorIAorLSAgLy8gU2F2ZXMgZ2FpYSBpbmZvcm1hdGlv biBpbiB0aGUgT1MgYWNjb3VudCB0aGF0IHdhcyBqdXN0IGNyZWF0ZWQuCistICBzdGF0aWMgSFJF U1VMVCBTYXZlQWNjb3VudEluZm8oY29uc3QgYmFzZTo6VmFsdWUmIHByb3BlcnRpZXMpOworKyAg Ly8gU2F2ZXMgYWNjb3VudCBhc3NvY2lhdGlvbiBhbmQgdXNlciBwcm9maWxlIGluZm9ybWF0aW9u LiBNYWtlcyB2YXJpb3VzIEhUVFAKKysgIC8vIGNhbGxzIHJlZ2FyZGluZyBkZXZpY2UgcHJvdmlz aW9uaW5nIGFuZCBwYXNzd29yZCBtYW5hZ2VtZW50LgorKyAgc3RhdGljIEhSRVNVTFQgUGVyZm9y bUFjdGlvbnMoY29uc3QgYmFzZTo6VmFsdWUmIHByb3BlcnRpZXMpOworIAorICAgLy8gUmV0dXJu cyB0cnVlIGlmIHRoZSBjdXJyZW50IGNyZWRlbnRpYWxzIHN0b3JlZCBpbiB8dXNlcm5hbWVffCBh bmQKKyAgIC8vIHxwYXNzd29yZF98IGFyZSB2YWxpZCBhbmQgc2hvdWxkIHN1Y2NlZWQgYSBsb2Nh bCBXaW5kb3dzIGxvZ29uLiBUaGlzCistLSAKKzIuMjguMAorCmRpZmYgLS1naXQgYS9zcmNwa2dz L2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXVwc3RyZWFtLTAwMDctU3VwcG9ydC1H Q1BXLWxvZ2luLXRvLXBlcm1pdHRlZC1hY2NvdW50cy5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb245 L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tdXBzdHJlYW0tMDAwNy1TdXBwb3J0LUdDUFctbG9naW4t dG8tcGVybWl0dGVkLWFjY291bnRzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwLi5mZmNjNGQxZmM5NQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ry b245L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tdXBzdHJlYW0tMDAwNy1TdXBwb3J0LUdDUFctbG9n aW4tdG8tcGVybWl0dGVkLWFjY291bnRzLnBhdGNoCkBAIC0wLDAgKzEsMTk3IEBACitGcm9tIGQx MzgzMjE2Y2JjZWIxMGFhYTgwZjM1NzY4OWU4NTM1NGFmNmFmM2MgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCitGcm9tOiBZdXN1ZiBTZW5ndWwgPHl1c3Vmc25AZ29vZ2xlLmNvbT4KK0RhdGU6IEZy aSwgMjYgSnVuIDIwMjAgMjA6Mzg6MzMgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSCAwNy8xMl0gU3Vw cG9ydCBHQ1BXIGxvZ2luIHRvIHBlcm1pdHRlZCBhY2NvdW50cworCisoY2hlcnJ5IHBpY2tlZCBm cm9tIGNvbW1pdCBmNDE0MTUyZmE5YTY2NGNhNWU5OWQ0YzBkMGEyZTI2MWY5ODQ2ZWFlKQorCitC dWc6IDEwOTczODYKK0NoYW5nZS1JZDogSTJhOWU2MzQ4NjhmY2RhNmM4YWNjNDZlNDgyYzJmNmRj MTRiZGMwNjQKK1Jldmlld2VkLW9uOiBodHRwczovL2Nocm9taXVtLXJldmlldy5nb29nbGVzb3Vy Y2UuY29tL2MvY2hyb21pdW0vc3JjLysvMjI1NTAyOAorQ29tbWl0LVF1ZXVlOiBSYWtlc2ggU29t YSA8cmFrZXNoc29tYUBnb29nbGUuY29tPgorUmV2aWV3ZWQtYnk6IFJha2VzaCBTb21hIDxyYWtl c2hzb21hQGdvb2dsZS5jb20+CitDci1PcmlnaW5hbC1Db21taXQtUG9zaXRpb246IHJlZnMvaGVh ZHMvbWFzdGVyQHsjNzgxOTk3fQorUmV2aWV3ZWQtb246IGh0dHBzOi8vY2hyb21pdW0tcmV2aWV3 Lmdvb2dsZXNvdXJjZS5jb20vYy9jaHJvbWl1bS9zcmMvKy8yMjY4MDgzCitDb21taXQtUXVldWU6 IFl1c3VmIFNlbmd1bCA8eXVzdWZzbkBnb29nbGUuY29tPgorQ3ItQ29tbWl0LVBvc2l0aW9uOiBy ZWZzL2JyYW5jaC1oZWFkcy80MTAzQHsjNzMwfQorQ3ItQnJhbmNoZWQtRnJvbTogOGFkNDdlOGQy MWY2ODY2ZTRhMzdmNDdkODNhODYwZDQxZGViZjUxNC1yZWZzL2hlYWRzL21hc3RlckB7Izc1NjA2 Nn0KKy0tLQorIC4uLi9nYWlhY3AvZ2FpYV9jcmVkZW50aWFsX2Jhc2UuY2MgICAgICAgICAgICB8 IDMwICsrKystLQorIC4uLi9nYWlhY3AvZ2FpYV9jcmVkZW50aWFsX2Jhc2VfdW5pdHRlc3RzLmNj ICB8IDkyICsrKysrKysrKysrKysrKysrKysKKyAyIGZpbGVzIGNoYW5nZWQsIDExNiBpbnNlcnRp b25zKCspLCA2IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvY2hyb21lL2NyZWRlbnRpYWxf cHJvdmlkZXIvZ2FpYWNwL2dhaWFfY3JlZGVudGlhbF9iYXNlLmNjIGIvY2hyb21lL2NyZWRlbnRp YWxfcHJvdmlkZXIvZ2FpYWNwL2dhaWFfY3JlZGVudGlhbF9iYXNlLmNjCitpbmRleCAzMGU4MDEx YjczZC4uY2M1NzM4NjM5OTEgMTAwNjQ0CistLS0gYS9jaHJvbWUvY3JlZGVudGlhbF9wcm92aWRl ci9nYWlhY3AvZ2FpYV9jcmVkZW50aWFsX2Jhc2UuY2MKKysrKyBiL2Nocm9tZS9jcmVkZW50aWFs X3Byb3ZpZGVyL2dhaWFjcC9nYWlhX2NyZWRlbnRpYWxfYmFzZS5jYworQEAgLTcwLDYgKzcwLDgg QEAgbmFtZXNwYWNlIHsKKyAKKyBjb25zdGV4cHIgd2NoYXJfdCBrRW1haWxEb21haW5zS2V5W10g PSBMImVkIjsgIC8vIGRlcHJlY2F0ZWQuCisgY29uc3RleHByIHdjaGFyX3Qga0VtYWlsRG9tYWlu c0tleU5ld1tdID0gTCJkb21haW5zX2FsbG93ZWRfdG9fbG9naW4iOworK2NvbnN0ZXhwciB3Y2hh cl90IGtQZXJtaXR0ZWRBY2NvdW50c1tdID0gTCJwZXJtaXR0ZWRfYWNjb3VudHMiOworK2NvbnN0 ZXhwciB3Y2hhcl90IGtQZXJtaXR0ZWRBY2NvdW50c1NlcGFyYXRvcltdID0gTCIsIjsKKyBjb25z dGV4cHIgY2hhciBrR2V0QWNjZXNzVG9rZW5Cb2R5V2l0aFNjb3BlRm9ybWF0W10gPQorICAgICAi Y2xpZW50X2lkPSVzJiIKKyAgICAgImNsaWVudF9zZWNyZXQ9JXMmIgorQEAgLTk1LDYgKzk3LDE2 IEBAIGNvbnN0ZXhwciBVSU5UIGtQYXNzd29yZEVycm9yc1tdID0ge0lEU19QQVNTV09SRF9DT01Q TEVYSVRZX0VSUk9SX0JBU0UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg SURTX1VTRVJfTk9UX0ZPVU5EX1BBU1NXT1JEX0VSUk9SX0JBU0UsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgSURTX0FEX1BBU1NXT1JEX0NIQU5HRV9ERU5JRURfQkFTRX07 CisgCisrc3RkOjp2ZWN0b3I8YmFzZTo6c3RyaW5nMTY+IEdldFBlcm1pdHRlZEFjY291bnRzKCkg eworKyAgYmFzZTo6c3RyaW5nMTYgcGVybWl0dGVkX2FjY291bnRzX3JlZyA9CisrICAgICAgR2V0 R2xvYmFsRmxhZ09yRGVmYXVsdChrUGVybWl0dGVkQWNjb3VudHMsIEwiIik7CisrCisrICByZXR1 cm4gYmFzZTo6U3BsaXRTdHJpbmcoYmFzZTo6VG9Mb3dlckFTQ0lJKHBlcm1pdHRlZF9hY2NvdW50 c19yZWcpLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQZXJtaXR0ZWRBY2NvdW50c1Nl cGFyYXRvciwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlOjpXaGl0ZXNwYWNlSGFu ZGxpbmc6OlRSSU1fV0hJVEVTUEFDRSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNl OjpTcGxpdFJlc3VsdDo6U1BMSVRfV0FOVF9OT05FTVBUWSk7CisrfQorKworIGJhc2U6OnN0cmlu ZzE2IEdldEVtYWlsRG9tYWlucygKKyAgICAgY29uc3QgYmFzZTo6c3RyaW5nMTYgcmVzdHJpY3Rl ZF9kb21haW5zX3JlZ19rZXkpIHsKKyAgIHJldHVybiBHZXRHbG9iYWxGbGFnT3JEZWZhdWx0KHJl c3RyaWN0ZWRfZG9tYWluc19yZWdfa2V5LCBMIiIpOworQEAgLTExOCwxMiArMTMwLDkgQEAgYmFz ZTo6c3RyaW5nMTYgR2V0RW1haWxEb21haW5zUHJpbnRhYmxlU3RyaW5nKCkgeworICAgICAgICAg ICAgICAgICAgICAgICAgIGJhc2U6OkFTQ0lJVG9VVEYxNihrRW1haWxEb21haW5zU2VwYXJhdG9y KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlOjpXaGl0ZXNwYWNlSGFuZGxpbmc6OlRS SU1fV0hJVEVTUEFDRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlOjpTcGxpdFJlc3Vs dDo6U1BMSVRfV0FOVF9OT05FTVBUWSk7CistICBiYXNlOjpzdHJpbmcxNiBlbWFpbF9kb21haW5z X3N0cjsKKy0gIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZG9tYWlucy5zaXplKCk7ICsraSkgewor LSAgICBlbWFpbF9kb21haW5zX3N0ciArPSBkb21haW5zW2ldOworLSAgICBpZiAoaSA8IGRvbWFp bnMuc2l6ZSgpIC0gMSkKKy0gICAgICBlbWFpbF9kb21haW5zX3N0ciArPSBMIiwgIjsKKy0gIH0K KysgIGJhc2U6OnN0cmluZzE2IGVtYWlsX2RvbWFpbnNfc3RyID0KKysgICAgICBiYXNlOjpKb2lu U3RyaW5nKGRvbWFpbnMsIGJhc2U6OnN0cmluZzE2KEwiLCAiKSk7CisrCisgICByZXR1cm4gZW1h aWxfZG9tYWluc19zdHI7CisgfQorIAorQEAgLTI0MDMsNiArMjQxMiwxNSBAQCBIUkVTVUxUIENH YWlhQ3JlZGVudGlhbEJhc2U6Ok9uVXNlckF1dGhlbnRpY2F0ZWQoQlNUUiBhdXRoZW50aWNhdGlv bl9pbmZvLAorICAgICAgIHJldHVybiBocjsKKyAgICAgfQorIAorKyAgICBiYXNlOjpzdHJpbmcx NiBlbWFpbCA9IEdldERpY3RTdHJpbmcoKnByb3BlcnRpZXMsIGtLZXlFbWFpbCk7CisrICAgIHN0 ZDo6dmVjdG9yPGJhc2U6OnN0cmluZzE2PiBwZXJtaXR0ZWRfYWNjb3VudHMgPSBHZXRQZXJtaXR0 ZWRBY2NvdW50cygpOworKyAgICBpZiAoIXBlcm1pdHRlZF9hY2NvdW50cy5lbXB0eSgpICYmCisr ICAgICAgICBzdGQ6OmZpbmQocGVybWl0dGVkX2FjY291bnRzLmJlZ2luKCksIHBlcm1pdHRlZF9h Y2NvdW50cy5lbmQoKSwKKysgICAgICAgICAgICAgICAgICBlbWFpbCkgPT0gcGVybWl0dGVkX2Fj Y291bnRzLmVuZCgpKSB7CisrICAgICAgKnN0YXR1c190ZXh0ID0gQWxsb2NFcnJvclN0cmluZyhJ RFNfRU1BSUxfTUlTTUFUQ0hfQkFTRSk7CisrICAgICAgcmV0dXJuIEVfRkFJTDsKKysgICAgfQor KworICAgICAvLyBUaGUgdmFsdWUgaW4gfGRpY3R8IGlzIG5vdyBrbm93biB0byBjb250YWluIGV2 ZXJ5dGhpbmcgdGhhdCBpcyBuZWVkZWQKKyAgICAgLy8gZnJvbSB0aGUgR0xTLiBUcnkgdG8gdmFs aWRhdGUgdGhlIHVzZXIgdGhhdCB3YW50cyB0byBzaWduIGluIGFuZCB0aGVuCisgICAgIC8vIGFk ZCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGludG8gfGRpY3R8IGFzIG5lZWRlZC4KK2RpZmYgLS1n aXQgYS9jaHJvbWUvY3JlZGVudGlhbF9wcm92aWRlci9nYWlhY3AvZ2FpYV9jcmVkZW50aWFsX2Jh c2VfdW5pdHRlc3RzLmNjIGIvY2hyb21lL2NyZWRlbnRpYWxfcHJvdmlkZXIvZ2FpYWNwL2dhaWFf Y3JlZGVudGlhbF9iYXNlX3VuaXR0ZXN0cy5jYworaW5kZXggM2NjNDhmYTViMjYuLjMxOWYyMzll NGNkIDEwMDY0NAorLS0tIGEvY2hyb21lL2NyZWRlbnRpYWxfcHJvdmlkZXIvZ2FpYWNwL2dhaWFf Y3JlZGVudGlhbF9iYXNlX3VuaXR0ZXN0cy5jYworKysrIGIvY2hyb21lL2NyZWRlbnRpYWxfcHJv dmlkZXIvZ2FpYWNwL2dhaWFfY3JlZGVudGlhbF9iYXNlX3VuaXR0ZXN0cy5jYworQEAgLTYsNiAr Niw4IEBACisgCisgI2luY2x1ZGUgPHNkZGwuaD4gIC8vIEZvciBDb252ZXJ0U2lkVG9TdHJpbmdT aWQoKQorICNpbmNsdWRlIDx3cmwvY2xpZW50Lmg+CisrI2luY2x1ZGUgPGFsZ29yaXRobT4KKysj aW5jbHVkZSA8dmVjdG9yPgorIAorICNpbmNsdWRlICJiYXNlL2ZpbGVzL3Njb3BlZF90ZW1wX2Rp ci5oIgorICNpbmNsdWRlICJiYXNlL3N0cmluZ3Mvc3RyaW5nX251bWJlcl9jb252ZXJzaW9ucy5o IgorQEAgLTczOCw2ICs3NDAsOTYgQEAgSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKAorICAgICAg ICAgICAgICAgICAgICAgICAgOjp0ZXN0aW5nOjpWYWx1ZXMoTCJhY21lLmNvbSxhY21lMi5jb20s YWNtZTMuY29tIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEwi IikpKTsKKyAKKytjbGFzcyBHY3BHYWlhQ3JlZGVudGlhbEJhc2VQZXJtaXR0ZWRBY2NvdW50VGVz dAorKyAgICA6IHB1YmxpYyBHY3BHYWlhQ3JlZGVudGlhbEJhc2VUZXN0LAorKyAgICAgIHB1Ymxp YyA6OnRlc3Rpbmc6OldpdGhQYXJhbUludGVyZmFjZTwKKysgICAgICAgICAgc3RkOjp0dXBsZTxj b25zdCB3Y2hhcl90KiwgY29uc3Qgd2NoYXJfdCo+PiB7CisrIHB1YmxpYzoKKysgIC8vIEdldCBh IHByZXR0eS1wcmludGVkIHN0cmluZyBvZiB0aGUgbGlzdCBvZiBlbWFpbCBkb21haW5zIHRoYXQg d2UgY2FuCisrICAvLyBkaXNwbGF5IHRvIHRoZSBlbmQtdXNlci4KKysgIGJhc2U6OnN0cmluZzE2 IEdldEVtYWlsRG9tYWluc1ByaW50YWJsZVN0cmluZygpIHsKKysgICAgYmFzZTo6c3RyaW5nMTYg ZW1haWxfZG9tYWluc19yZWdfb2xkID0gR2V0R2xvYmFsRmxhZ09yRGVmYXVsdChMImVkIiwgTCIi KTsKKysgICAgYmFzZTo6c3RyaW5nMTYgZW1haWxfZG9tYWluc19yZWdfbmV3ID0KKysgICAgICAg IEdldEdsb2JhbEZsYWdPckRlZmF1bHQoTCJkb21haW5zX2FsbG93ZWRfdG9fbG9naW4iLCBMIiIp OworKworKyAgICBiYXNlOjpzdHJpbmcxNiBlbWFpbF9kb21haW5zX3JlZyA9IGVtYWlsX2RvbWFp bnNfcmVnX29sZC5lbXB0eSgpCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgID8gZW1haWxfZG9tYWluc19yZWdfbmV3CisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDogZW1haWxfZG9tYWluc19yZWdfb2xkOworKyAgICBpZiAoZW1h aWxfZG9tYWluc19yZWcuZW1wdHkoKSkKKysgICAgICByZXR1cm4gZW1haWxfZG9tYWluc19yZWc7 CisrCisrICAgIHN0ZDo6dmVjdG9yPGJhc2U6OnN0cmluZzE2PiBkb21haW5zID0KKysgICAgICAg IGJhc2U6OlNwbGl0U3RyaW5nKGJhc2U6OlRvTG93ZXJBU0NJSShlbWFpbF9kb21haW5zX3JlZyks CisrICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlOjpBU0NJSVRvVVRGMTYoa0VtYWlsRG9t YWluc1NlcGFyYXRvciksCisrICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlOjpXaGl0ZXNw YWNlSGFuZGxpbmc6OlRSSU1fV0hJVEVTUEFDRSwKKysgICAgICAgICAgICAgICAgICAgICAgICAg IGJhc2U6OlNwbGl0UmVzdWx0OjpTUExJVF9XQU5UX05PTkVNUFRZKTsKKysgICAgYmFzZTo6c3Ry aW5nMTYgZW1haWxfZG9tYWluc19zdHI7CisrICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZG9t YWlucy5zaXplKCk7ICsraSkgeworKyAgICAgIGVtYWlsX2RvbWFpbnNfc3RyICs9IGRvbWFpbnNb aV07CisrICAgICAgaWYgKGkgPCBkb21haW5zLnNpemUoKSAtIDEpCisrICAgICAgICBlbWFpbF9k b21haW5zX3N0ciArPSBMIiwgIjsKKysgICAgfQorKyAgICByZXR1cm4gZW1haWxfZG9tYWluc19z dHI7CisrICB9CisrfTsKKysKKytURVNUX1AoR2NwR2FpYUNyZWRlbnRpYWxCYXNlUGVybWl0dGVk QWNjb3VudFRlc3QsIFBlcm1pdHRlZEFjY291bnRzKSB7CisrICBjb25zdCBiYXNlOjpzdHJpbmcx NiBwZXJtaXR0ZWRfYWNvdW50cyA9IHN0ZDo6Z2V0PDA+KEdldFBhcmFtKCkpOworKyAgY29uc3Qg YmFzZTo6c3RyaW5nMTYgcmVzdHJpY3RlZF9kb21haW5zID0gc3RkOjpnZXQ8MT4oR2V0UGFyYW0o KSk7CisrCisrICBBU1NFUlRfRVEoU19PSywKKysgICAgICAgICAgICBTZXRHbG9iYWxGbGFnRm9y VGVzdGluZyhMInBlcm1pdHRlZF9hY2NvdW50cyIsIHBlcm1pdHRlZF9hY291bnRzKSk7CisrICBB U1NFUlRfRVEoU19PSywgU2V0R2xvYmFsRmxhZ0ZvclRlc3RpbmcoTCJkb21haW5zX2FsbG93ZWRf dG9fbG9naW4iLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl c3RyaWN0ZWRfZG9tYWlucykpOworKworKyAgLy8gQ3JlYXRlIHByb3ZpZGVyIGFuZCBzdGFydCBs b2dvbi4KKysgIE1pY3Jvc29mdDo6V1JMOjpDb21QdHI8SUNyZWRlbnRpYWxQcm92aWRlckNyZWRl bnRpYWw+IGNyZWQ7CisrCisrICBBU1NFUlRfRVEoU19PSywgSW5pdGlhbGl6ZVByb3ZpZGVyQW5k R2V0Q3JlZGVudGlhbCgwLCAmY3JlZCkpOworKyAgTWljcm9zb2Z0OjpXUkw6OkNvbVB0cjxJVGVz dENyZWRlbnRpYWw+IHRlc3Q7CisrICBBU1NFUlRfRVEoU19PSywgY3JlZC5BcygmdGVzdCkpOwor KworKyAgYmFzZTo6c3RyaW5nMTYgZW1haWwgPSBMInVzZXJAdGVzdC5jb20iOworKyAgYmFzZTo6 c3RyaW5nMTYgZW1haWxfZG9tYWluID0gZW1haWwuc3Vic3RyKGVtYWlsLmZpbmQoTCJAIikgKyAx KTsKKysKKysgIEFTU0VSVF9FUShTX09LLCB0ZXN0LT5TZXRHbHNFbWFpbEFkZHJlc3MoYmFzZTo6 VVRGMTZUb1VURjgoZW1haWwpKSk7CisrCisrICBib29sIGFsbG93ZWRfZW1haWwgPSBwZXJtaXR0 ZWRfYWNvdW50cy5lbXB0eSgpIHx8CisrICAgICAgICAgICAgICAgICAgICAgICBwZXJtaXR0ZWRf YWNvdW50cy5maW5kKGVtYWlsKSAhPSBiYXNlOjpzdHJpbmcxNjo6bnBvczsKKysgIGJvb2wgZm91 bmRfZG9tYWluID0KKysgICAgICByZXN0cmljdGVkX2RvbWFpbnMuZmluZChlbWFpbF9kb21haW4p ICE9IGJhc2U6OnN0cmluZzE2OjpucG9zOworKworKyAgaWYgKCFmb3VuZF9kb21haW4pCisrICAg IEFTU0VSVF9FUShTX09LLCB0ZXN0LT5TZXREZWZhdWx0RXhpdENvZGUoa1VpZWNJbnZhbGlkRW1h aWxEb21haW4pKTsKKysKKysgIEFTU0VSVF9FUShTX09LLCBTdGFydExvZ29uUHJvY2Vzc0FuZFdh aXQoKSk7CisrCisrICBpZiAoYWxsb3dlZF9lbWFpbCAmJiBmb3VuZF9kb21haW4pIHsKKysgICAg QVNTRVJUX0VRKFNfT0ssIEZpbmlzaExvZ29uUHJvY2Vzcyh0cnVlLCB0cnVlLCAwKSk7CisrICB9 IGVsc2UgeworKyAgICBiYXNlOjpzdHJpbmcxNiBleHBlY3RlZF9lcnJvcl9tc2c7CisrICAgIGlm ICghZm91bmRfZG9tYWluKSB7CisrICAgICAgZXhwZWN0ZWRfZXJyb3JfbXNnID0gYmFzZTo6UmVw bGFjZVN0cmluZ1BsYWNlaG9sZGVycygKKysgICAgICAgICAgR2V0U3RyaW5nUmVzb3VyY2UoSURT X0lOVkFMSURfRU1BSUxfRE9NQUlOX0JBU0UpLAorKyAgICAgICAgICB7R2V0RW1haWxEb21haW5z UHJpbnRhYmxlU3RyaW5nKCl9LCBudWxscHRyKTsKKysgICAgfSBlbHNlIHsKKysgICAgICBleHBl Y3RlZF9lcnJvcl9tc2cgPSBHZXRTdHJpbmdSZXNvdXJjZShJRFNfRU1BSUxfTUlTTUFUQ0hfQkFT RSk7CisrICAgIH0KKysgICAgLy8gTG9nb24gcHJvY2VzcyBzaG91bGQgZmFpbCB3aXRoIHRoZSBz cGVjaWZpZWQgZXJyb3IgbWVzc2FnZS4KKysgICAgQVNTRVJUX0VRKFNfT0ssIEZpbmlzaExvZ29u UHJvY2VzcyhmYWxzZSwgZmFsc2UsIGV4cGVjdGVkX2Vycm9yX21zZykpOworKyAgfQorK30KKysK KytJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoCisrICAgIEFsbCwKKysgICAgR2NwR2FpYUNyZWRl bnRpYWxCYXNlUGVybWl0dGVkQWNjb3VudFRlc3QsCisrICAgIDo6dGVzdGluZzo6Q29tYmluZSgK KysgICAgICAgIDo6dGVzdGluZzo6VmFsdWVzKEwiIiwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgIEwidXNlckB0ZXN0LmNvbSIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICBMIm90aGVy QHRlc3QuY29tIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgIEwib3RoZXJAdGVzdC5jb20s dXNlckB0ZXN0LmNvbSIpLAorKyAgICAgICAgOjp0ZXN0aW5nOjpWYWx1ZXMoTCJ0ZXN0LmNvbSIs IEwiYmVzdC5jb20iLCBMInRlc3QuY29tLGJlc3QuY29tIikpKTsKKysKKyBURVNUX0YoR2NwR2Fp YUNyZWRlbnRpYWxCYXNlVGVzdCwgU3RyaXBFbWFpbFRMRCkgeworICAgVVNFU19DT05WRVJTSU9O OworICAgLy8gQ3JlYXRlIHByb3ZpZGVyIGFuZCBzdGFydCBsb2dvbi4KKy0tIAorMi4yOC4wCisK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tdXBz dHJlYW0tMDAwOC1IYW5kbGUtbHNhX2FjY291bnRfcmlnaHRzLXNpemUtcHJvcGVybHkucGF0Y2gg Yi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXVwc3RyZWFtLTAwMDgt SGFuZGxlLWxzYV9hY2NvdW50X3JpZ2h0cy1zaXplLXByb3Blcmx5LnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41ZmQxM2Q3ZGRmNAotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tdXBzdHJlYW0tMDAw OC1IYW5kbGUtbHNhX2FjY291bnRfcmlnaHRzLXNpemUtcHJvcGVybHkucGF0Y2gKQEAgLTAsMCAr MSw1NSBAQAorRnJvbSBiZmY4NDU4NDhmYTMzOWZjOWJhZTcwZWVmODk0M2M0OTU2YjlhNmRiIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogUmFrZXNoIFNvbWEgPHJha2VzaHNvbWFAZ29v Z2xlLmNvbT4KK0RhdGU6IEZyaSwgMjYgSnVuIDIwMjAgMjM6NTU6NDYgKzAwMDAKK1N1YmplY3Q6 IFtQQVRDSCAwOC8xMl0gSGFuZGxlIGxzYV9hY2NvdW50X3JpZ2h0cyBzaXplIHByb3Blcmx5Lgor CitCdWc6IDEwOTk4OTAKK0NoYW5nZS1JZDogSWIyN2Q1MmJlNTFiMDA2N2VmNzZjMjEyYWFhNWUw NjdlYzIwYWY2ZGUKK1Jldmlld2VkLW9uOiBodHRwczovL2Nocm9taXVtLXJldmlldy5nb29nbGVz b3VyY2UuY29tL2MvY2hyb21pdW0vc3JjLysvMjI2OTg4MgorQ29tbWl0LVF1ZXVlOiBSYWtlc2gg U29tYSA8cmFrZXNoc29tYUBnb29nbGUuY29tPgorQ29tbWl0LVF1ZXVlOiBZdXN1ZiBTZW5ndWwg PHl1c3Vmc25AZ29vZ2xlLmNvbT4KK1Jldmlld2VkLWJ5OiBZdXN1ZiBTZW5ndWwgPHl1c3Vmc25A Z29vZ2xlLmNvbT4KK0NyLUNvbW1pdC1Qb3NpdGlvbjogcmVmcy9oZWFkcy9tYXN0ZXJAeyM3ODMy MDB9CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCAwMDcwZmU4YmZhNTEyNmNlYmM3OGUxYzIy MDgxZjgzYjdmOWM0MjFjKQorCitOT1RSWT10cnVlCisKK0NoYW5nZS1JZDogSWIyN2Q1MmJlNTFi MDA2N2VmNzZjMjEyYWFhNWUwNjdlYzIwYWY2ZGUKK1Jldmlld2VkLW9uOiBodHRwczovL2Nocm9t aXVtLXJldmlldy5nb29nbGVzb3VyY2UuY29tL2MvY2hyb21pdW0vc3JjLysvMjI3MDYzMAorQ29t bWl0LVF1ZXVlOiBSYWtlc2ggU29tYSA8cmFrZXNoc29tYUBnb29nbGUuY29tPgorUmV2aWV3ZWQt Ynk6IFJha2VzaCBTb21hIDxyYWtlc2hzb21hQGdvb2dsZS5jb20+CitSZXZpZXdlZC1ieTogWXVz dWYgU2VuZ3VsIDx5dXN1ZnNuQGdvb2dsZS5jb20+CitDci1Db21taXQtUG9zaXRpb246IHJlZnMv YnJhbmNoLWhlYWRzLzQxMDNAeyM3MzF9CitDci1CcmFuY2hlZC1Gcm9tOiA4YWQ0N2U4ZDIxZjY4 NjZlNGEzN2Y0N2Q4M2E4NjBkNDFkZWJmNTE0LXJlZnMvaGVhZHMvbWFzdGVyQHsjNzU2MDY2fQor LS0tCisgY2hyb21lL2NyZWRlbnRpYWxfcHJvdmlkZXIvZ2FpYWNwL3Njb3BlZF9sc2FfcG9saWN5 LmNjIHwgNyArKysrLS0tCisgMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMyBkZWxl dGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2Nocm9tZS9jcmVkZW50aWFsX3Byb3ZpZGVyL2dhaWFj cC9zY29wZWRfbHNhX3BvbGljeS5jYyBiL2Nocm9tZS9jcmVkZW50aWFsX3Byb3ZpZGVyL2dhaWFj cC9zY29wZWRfbHNhX3BvbGljeS5jYworaW5kZXggNDI1ZjMwNTcxNmQuLjVjMDVkMDhlODFmIDEw MDY0NAorLS0tIGEvY2hyb21lL2NyZWRlbnRpYWxfcHJvdmlkZXIvZ2FpYWNwL3Njb3BlZF9sc2Ff cG9saWN5LmNjCisrKysgYi9jaHJvbWUvY3JlZGVudGlhbF9wcm92aWRlci9nYWlhY3Avc2NvcGVk X2xzYV9wb2xpY3kuY2MKK0BAIC0xMzMsNyArMTMzLDggQEAgSFJFU1VMVCBTY29wZWRMc2FQb2xp Y3k6OkFkZEFjY291bnRSaWdodHMoCisgICAgIEluaXRMc2FTdHJpbmcocmlnaHQuY19zdHIoKSwg JmxzYV9yaWdodCk7CisgICAgIGxzYV9yaWdodHMucHVzaF9iYWNrKGxzYV9yaWdodCk7CisgICB9 CistICBOVFNUQVRVUyBzdHMgPSA6OkxzYUFkZEFjY291bnRSaWdodHMoaGFuZGxlXywgc2lkLCBs c2FfcmlnaHRzLmRhdGEoKSwgMSk7CisrICBOVFNUQVRVUyBzdHMgPQorKyAgICAgIDo6THNhQWRk QWNjb3VudFJpZ2h0cyhoYW5kbGVfLCBzaWQsIGxzYV9yaWdodHMuZGF0YSgpLCBsc2FfcmlnaHRz LnNpemUoKSk7CisgICBpZiAoc3RzICE9IFNUQVRVU19TVUNDRVNTKSB7CisgICAgIEhSRVNVTFQg aHIgPSBIUkVTVUxUX0ZST01fTlQoc3RzKTsKKyAgICAgTE9HRk4oRVJST1IpIDw8ICJMc2FBZGRB Y2NvdW50UmlnaHRzIHN0cz0iIDw8IHB1dEhSKHN0cykKK0BAIC0xNTIsOCArMTUzLDggQEAgSFJF U1VMVCBTY29wZWRMc2FQb2xpY3k6OlJlbW92ZUFjY291bnRSaWdodHMoCisgICAgIEluaXRMc2FT dHJpbmcocmlnaHQuY19zdHIoKSwgJmxzYV9yaWdodCk7CisgICAgIGxzYV9yaWdodHMucHVzaF9i YWNrKGxzYV9yaWdodCk7CisgICB9CistICBOVFNUQVRVUyBzdHMgPQorLSAgICAgIDo6THNhUmVt b3ZlQWNjb3VudFJpZ2h0cyhoYW5kbGVfLCBzaWQsIEZBTFNFLCBsc2FfcmlnaHRzLmRhdGEoKSwg MSk7CisrICBOVFNUQVRVUyBzdHMgPSA6OkxzYVJlbW92ZUFjY291bnRSaWdodHMoaGFuZGxlXywg c2lkLCBGQUxTRSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs c2FfcmlnaHRzLmRhdGEoKSwgbHNhX3JpZ2h0cy5zaXplKCkpOworICAgaWYgKHN0cyAhPSBTVEFU VVNfU1VDQ0VTUykgeworICAgICBIUkVTVUxUIGhyID0gSFJFU1VMVF9GUk9NX05UKHN0cyk7Cisg ICAgIExPR0ZOKEVSUk9SKSA8PCAiTHNhUmVtb3ZlQWNjb3VudFJpZ2h0cyBzdHM9IiA8PCBwdXRI UihzdHMpCistLSAKKzIuMjguMAorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uOS9maWxl cy9wYXRjaGVzL2Nocm9taXVtLXVwc3RyZWFtLTAwMDktSW5jcmVtZW50aW5nLVZFUlNJT04tdG8t ODMuMC40MTAzLjEyMS5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMvY2hy b21pdW0tdXBzdHJlYW0tMDAwOS1JbmNyZW1lbnRpbmctVkVSU0lPTi10by04My4wLjQxMDMuMTIx LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41NDgyMjkyNTM0 NAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMvY2hy b21pdW0tdXBzdHJlYW0tMDAwOS1JbmNyZW1lbnRpbmctVkVSU0lPTi10by04My4wLjQxMDMuMTIx LnBhdGNoCkBAIC0wLDAgKzEsMjkgQEAKK0Zyb20gOTA2ODA2N2UzZmMxM2NjN2M4OWMwNGVjMDUy NzFkMjdjYjMwMzgxMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IGNocm9tZS1yZWxl YXNlLWJvdCA8Y2hyb21lLXJlbGVhc2UtYm90QGNocm9taXVtLm9yZz4KK0RhdGU6IFNhdCwgMjcg SnVuIDIwMjAgMDA6MjI6MDQgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSCAwOS8xMl0gSW5jcmVtZW50 aW5nIFZFUlNJT04gdG8gODMuMC40MTAzLjEyMQorCitUQlI9a2FyaWFoQGNocm9taXVtLm9yZwor CitDaGFuZ2UtSWQ6IElhOTFkMTQwYTU5MzI4NDgwZjM4OWM5NGFiODU3MTUzMDhiZmVlMmVhCitS ZXZpZXdlZC1vbjogaHR0cHM6Ly9jaHJvbWl1bS1yZXZpZXcuZ29vZ2xlc291cmNlLmNvbS9jL2No cm9taXVtL3NyYy8rLzIyNzEyNjAKK1Jldmlld2VkLWJ5OiBDaHJvbWUgUmVsZWFzZSBCb3QgKExV Q0kpIDxjaHJvbWUtb2ZmaWNpYWwtYnJhbmNoZXJAY2hvcHMtc2VydmljZS1hY2NvdW50cy5pYW0u Z3NlcnZpY2VhY2NvdW50LmNvbT4KK0NyLUNvbW1pdC1Qb3NpdGlvbjogcmVmcy9icmFuY2gtaGVh ZHMvNDEwM0B7IzczMn0KK0NyLUJyYW5jaGVkLUZyb206IDhhZDQ3ZThkMjFmNjg2NmU0YTM3ZjQ3 ZDgzYTg2MGQ0MWRlYmY1MTQtcmVmcy9oZWFkcy9tYXN0ZXJAeyM3NTYwNjZ9CistLS0KKyBjaHJv bWUvVkVSU0lPTiB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVs ZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL2Nocm9tZS9WRVJTSU9OIGIvY2hyb21lL1ZFUlNJT04K K2luZGV4IGY3MzEwYTkyY2YzLi5mZjIyZmYwOGE4MyAxMDA2NDQKKy0tLSBhL2Nocm9tZS9WRVJT SU9OCisrKysgYi9jaHJvbWUvVkVSU0lPTgorQEAgLTEsNCArMSw0IEBACisgTUFKT1I9ODMKKyBN SU5PUj0wCisgQlVJTEQ9NDEwMworLVBBVENIPTEyMAorK1BBVENIPTEyMQorLS0gCisyLjI4LjAK KwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS11 cHN0cmVhbS0wMDEwLURpc2FibGUtZmxha3ktRGljZU1hbmFnZUFjY291bnRCcm93c2VyVGVzdC5D bGVhck1hbmEucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVt LXVwc3RyZWFtLTAwMTAtRGlzYWJsZS1mbGFreS1EaWNlTWFuYWdlQWNjb3VudEJyb3dzZXJUZXN0 LkNsZWFyTWFuYS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u YjdjM2RjNWQ5MTIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9w YXRjaGVzL2Nocm9taXVtLXVwc3RyZWFtLTAwMTAtRGlzYWJsZS1mbGFreS1EaWNlTWFuYWdlQWNj b3VudEJyb3dzZXJUZXN0LkNsZWFyTWFuYS5wYXRjaApAQCAtMCwwICsxLDQzIEBACitGcm9tIDRm M2QyZGVlODdkNDA0OTFlZjRhMjY2NGUyMTE2ODQ2MmYzYmI2ODEgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCitGcm9tOiBBbGV4YW5kZXIgSGVuZHJpY2ggPGhlbmRyaWNoQGNocm9taXVtLm9yZz4K K0RhdGU6IFNhdCwgMjcgSnVuIDIwMjAgMDE6MzM6MDAgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSCAx MC8xMl0gRGlzYWJsZSBmbGFreQorIERpY2VNYW5hZ2VBY2NvdW50QnJvd3NlclRlc3QuQ2xlYXJN YW5hZ2VkUHJvZmlsZU9uU3RhcnR1cCBbTTgzIG1lcmdlXQorCitUQlI9bXNhcmRhQGNocm9taXVt Lm9yZyxoZW5kcmljaEBjaHJvbWl1bS5vcmcKKworKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQg OWVlYjcyZmY4MTEwMzY2YjI1MDEzMjFkNGI3ZjZlM2U0NzA3OTZlNikKKworQnVnOiAxMDc1ODk2 CitDaGFuZ2UtSWQ6IEk2YzVlOWM2MGZmZmFlNWJiOWZjYmI3YjI5ZmIzZWQxZDZmNzFmYmZkCitS ZXZpZXdlZC1vbjogaHR0cHM6Ly9jaHJvbWl1bS1yZXZpZXcuZ29vZ2xlc291cmNlLmNvbS9jL2No cm9taXVtL3NyYy8rLzIxNzAwMjYKK1Jldmlld2VkLWJ5OiBBbGV4YW5kZXIgSGVuZHJpY2ggPGhl bmRyaWNoQGNocm9taXVtLm9yZz4KK0NvbW1pdC1RdWV1ZTogQWxleGFuZGVyIEhlbmRyaWNoIDxo ZW5kcmljaEBjaHJvbWl1bS5vcmc+CitDci1PcmlnaW5hbC1Db21taXQtUG9zaXRpb246IHJlZnMv aGVhZHMvbWFzdGVyQHsjNzYzMjU4fQorUmV2aWV3ZWQtb246IGh0dHBzOi8vY2hyb21pdW0tcmV2 aWV3Lmdvb2dsZXNvdXJjZS5jb20vYy9jaHJvbWl1bS9zcmMvKy8yMjY4Mzg2CitSZXZpZXdlZC1i eTogQ2FybG9zIEtuaXBwc2NoaWxkIDxjYXJsb3NrQGNocm9taXVtLm9yZz4KK0NvbW1pdC1RdWV1 ZTogQ2FybG9zIEtuaXBwc2NoaWxkIDxjYXJsb3NrQGNocm9taXVtLm9yZz4KK0NyLUNvbW1pdC1Q b3NpdGlvbjogcmVmcy9icmFuY2gtaGVhZHMvNDEwM0B7IzczM30KK0NyLUJyYW5jaGVkLUZyb206 IDhhZDQ3ZThkMjFmNjg2NmU0YTM3ZjQ3ZDgzYTg2MGQ0MWRlYmY1MTQtcmVmcy9oZWFkcy9tYXN0 ZXJAeyM3NTYwNjZ9CistLS0KKyBjaHJvbWUvYnJvd3Nlci9zaWduaW4vZGljZV9icm93c2VydGVz dC5jYyB8IDMgKystCisgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlv bigtKQorCitkaWZmIC0tZ2l0IGEvY2hyb21lL2Jyb3dzZXIvc2lnbmluL2RpY2VfYnJvd3NlcnRl c3QuY2MgYi9jaHJvbWUvYnJvd3Nlci9zaWduaW4vZGljZV9icm93c2VydGVzdC5jYworaW5kZXgg ZTA3MzNjY2I5ZWIuLmIzNjJmNTc4ODgyIDEwMDY0NAorLS0tIGEvY2hyb21lL2Jyb3dzZXIvc2ln bmluL2RpY2VfYnJvd3NlcnRlc3QuY2MKKysrKyBiL2Nocm9tZS9icm93c2VyL3NpZ25pbi9kaWNl X2Jyb3dzZXJ0ZXN0LmNjCitAQCAtMTAxNSw4ICsxMDE1LDkgQEAgSU5fUFJPQ19CUk9XU0VSX1RF U1RfRihEaWNlTWFuYWdlQWNjb3VudEJyb3dzZXJUZXN0LAorICAgICAgIHByZWZzOjprU2lnbmlu QWxsb3dlZE9uTmV4dFN0YXJ0dXAsIGZhbHNlKTsKKyB9CisgCisrLy8gVE9ETyhodHRwczovL2Ny YnVnLmNvbS8xMDc1ODk2KSBkaXNhYmxpbmcgdGVzdCBkdWUgdG8gZmxha2luZXNzCisgSU5fUFJP Q19CUk9XU0VSX1RFU1RfRihEaWNlTWFuYWdlQWNjb3VudEJyb3dzZXJUZXN0LAorLSAgICAgICAg ICAgICAgICAgICAgICAgQ2xlYXJNYW5hZ2VkUHJvZmlsZU9uU3RhcnR1cCkgeworKyAgICAgICAg ICAgICAgICAgICAgICAgRElTQUJMRURfQ2xlYXJNYW5hZ2VkUHJvZmlsZU9uU3RhcnR1cCkgewor ICAgLy8gSW5pdGlhbCBwcm9maWxlIHNob3VsZCBoYXZlIGJlZW4gZGVsZXRlZCBhcyBzaWduLWlu IGFuZCBzaWduIG91dCB3ZXJlIG5vCisgICAvLyBsb25nZXIgYWxsb3dlZC4KKyAgIFByZWZTZXJ2 aWNlKiBsb2NhbF9zdGF0ZSA9IGdfYnJvd3Nlcl9wcm9jZXNzLT5sb2NhbF9zdGF0ZSgpOworLS0g CisyLjI4LjAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9j aHJvbWl1bS11cHN0cmVhbS0wMDExLUluY3JlbWVudGluZy1WRVJTSU9OLXRvLTgzLjAuNDEwMy4x MjIucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXVwc3Ry ZWFtLTAwMTEtSW5jcmVtZW50aW5nLVZFUlNJT04tdG8tODMuMC40MTAzLjEyMi5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYTMyYjM5MDg3NTUKLS0tIC9kZXYv bnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXVwc3Ry ZWFtLTAwMTEtSW5jcmVtZW50aW5nLVZFUlNJT04tdG8tODMuMC40MTAzLjEyMi5wYXRjaApAQCAt MCwwICsxLDI5IEBACitGcm9tIDUyNzcxNjhkMTY5MWNlNDBmYzA0ZmI0YWRlZmQ4OWQ4ZWIzOWM4 MWUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBjaHJvbWUtcmVsZWFzZS1ib3QgPGNo cm9tZS1yZWxlYXNlLWJvdEBjaHJvbWl1bS5vcmc+CitEYXRlOiBTYXQsIDI3IEp1biAyMDIwIDE4 OjA3OjQ1ICswMDAwCitTdWJqZWN0OiBbUEFUQ0ggMTEvMTJdIEluY3JlbWVudGluZyBWRVJTSU9O IHRvIDgzLjAuNDEwMy4xMjIKKworVEJSPWxha3BhbWFydGh5QGNocm9taXVtLm9yZworCitDaGFu Z2UtSWQ6IEk1YjkwYzIzNGJhZmY2MjA0ZmIxNjg0YTRkOTk4Nzg3NzFhMTEyZTM4CitSZXZpZXdl ZC1vbjogaHR0cHM6Ly9jaHJvbWl1bS1yZXZpZXcuZ29vZ2xlc291cmNlLmNvbS9jL2Nocm9taXVt L3NyYy8rLzIyNzE2MTgKK1Jldmlld2VkLWJ5OiBDaHJvbWUgUmVsZWFzZSBCb3QgKExVQ0kpIDxj aHJvbWUtb2ZmaWNpYWwtYnJhbmNoZXJAY2hvcHMtc2VydmljZS1hY2NvdW50cy5pYW0uZ3NlcnZp Y2VhY2NvdW50LmNvbT4KK0NyLUNvbW1pdC1Qb3NpdGlvbjogcmVmcy9icmFuY2gtaGVhZHMvNDEw M0B7IzczNH0KK0NyLUJyYW5jaGVkLUZyb206IDhhZDQ3ZThkMjFmNjg2NmU0YTM3ZjQ3ZDgzYTg2 MGQ0MWRlYmY1MTQtcmVmcy9oZWFkcy9tYXN0ZXJAeyM3NTYwNjZ9CistLS0KKyBjaHJvbWUvVkVS U0lPTiB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24o LSkKKworZGlmZiAtLWdpdCBhL2Nocm9tZS9WRVJTSU9OIGIvY2hyb21lL1ZFUlNJT04KK2luZGV4 IGZmMjJmZjA4YTgzLi5lYTlmZjM0NDQxMyAxMDA2NDQKKy0tLSBhL2Nocm9tZS9WRVJTSU9OCisr KysgYi9jaHJvbWUvVkVSU0lPTgorQEAgLTEsNCArMSw0IEBACisgTUFKT1I9ODMKKyBNSU5PUj0w CisgQlVJTEQ9NDEwMworLVBBVENIPTEyMQorK1BBVENIPTEyMgorLS0gCisyLjI4LjAKKwpkaWZm IC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS12OC1yZW1v dmUtc29vbi10by1iZS1yZW1vdmVkLWdldEFsbEZpZWxkUG9zaXRpb25zLnBhdGNoIGIvc3JjcGtn cy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS12OC1yZW1vdmUtc29vbi10by1iZS1y ZW1vdmVkLWdldEFsbEZpZWxkUG9zaXRpb25zLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi5kMjUxY2ViNmFjOAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv ZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tdjgtcmVtb3ZlLXNvb24tdG8tYmUtcmVt b3ZlZC1nZXRBbGxGaWVsZFBvc2l0aW9ucy5wYXRjaApAQCAtMCwwICsxLDE3MiBAQAorRnJvbSAz ZjhkYzRiMmU1YmFmNzdiNDYzMzM0Yzc2OWFmODViNzlkOGMxNDYzIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQorRnJvbTogRnJhbmsgVGFuZyA8ZnRhbmdAY2hyb21pdW0ub3JnPgorRGF0ZTogRnJp LCAzIEFwciAyMDIwIDIzOjEzOjU0IC0wNzAwCitTdWJqZWN0OiBbUEFUQ0hdIFtpbnRsXSBSZW1v dmUgc29vbi10by1iZSByZW1vdmVkIGdldEFsbEZpZWxkUG9zaXRpb25zCisKK05lZWRlZCB0byBs YW5kIElDVTY3LjEgc29vbi4KKworQnVnOiB2ODoxMDM5MworQ2hhbmdlLUlkOiBJM2M3NzM3Y2E2 MDBkNmNjZmRjNDZmZmFkZGZiMzE4Y2U2MGJjNzYxOAorUmV2aWV3ZWQtb246IGh0dHBzOi8vY2hy b21pdW0tcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20vYy92OC92OC8rLzIxMzY0ODkKK1Jldmlld2Vk LWJ5OiBKYWtvYiBLdW1tZXJvdyA8amt1bW1lcm93QGNocm9taXVtLm9yZz4KK0NvbW1pdC1RdWV1 ZTogRnJhbmsgVGFuZyA8ZnRhbmdAY2hyb21pdW0ub3JnPgorQ3ItQ29tbWl0LVBvc2l0aW9uOiBy ZWZzL2hlYWRzL21hc3RlckB7IzY3MDI3fQorLS0tCisgc3JjL29iamVjdHMvanMtbnVtYmVyLWZv cm1hdC5jYyB8IDc3ICsrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQorIDEgZmlsZSBj aGFuZ2VkLCAzOSBpbnNlcnRpb25zKCspLCAzOCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBh L3Y4L3NyYy9vYmplY3RzL2pzLW51bWJlci1mb3JtYXQuY2MgYi92OC9zcmMvb2JqZWN0cy9qcy1u dW1iZXItZm9ybWF0LmNjCitpbmRleCBhZDgzMWM1YzM2Li5iY2Q0NDAzMWQ1IDEwMDY0NAorLS0t IGEvdjgvc3JjL29iamVjdHMvanMtbnVtYmVyLWZvcm1hdC5jYworKysrIGIvdjgvc3JjL29iamVj dHMvanMtbnVtYmVyLWZvcm1hdC5jYworQEAgLTEyNDEsNDQgKzEyNDEsMzMgQEAgTWF5YmVIYW5k bGU8SlNOdW1iZXJGb3JtYXQ+IEpTTnVtYmVyRm9ybWF0OjpOZXcoSXNvbGF0ZSogaXNvbGF0ZSwK KyB9CisgCisgbmFtZXNwYWNlIHsKKy1NYXliZTxpY3U6OlVuaWNvZGVTdHJpbmc+IEljdUZvcm1h dE51bWJlcigKKytNYXliZTxib29sPiBJY3VGb3JtYXROdW1iZXIoCisgICAgIElzb2xhdGUqIGlz b2xhdGUsCisgICAgIGNvbnN0IGljdTo6bnVtYmVyOjpMb2NhbGl6ZWROdW1iZXJGb3JtYXR0ZXIm IG51bWJlcl9mb3JtYXQsCistICAgIEhhbmRsZTxPYmplY3Q+IG51bWVyaWNfb2JqLCBpY3U6OkZp ZWxkUG9zaXRpb25JdGVyYXRvciogZnBfaXRlcikgeworKyAgICBIYW5kbGU8T2JqZWN0PiBudW1l cmljX29iaiwgaWN1OjpudW1iZXI6OkZvcm1hdHRlZE51bWJlciogZm9ybWF0dGVkKSB7CisgICAv LyBJZiBpdCBpcyBCaWdJbnQsIGhhbmRsZSBpdCBkaWZmZXJlbnRseS4KKyAgIFVFcnJvckNvZGUg c3RhdHVzID0gVV9aRVJPX0VSUk9SOworLSAgaWN1OjpudW1iZXI6OkZvcm1hdHRlZE51bWJlciBm b3JtYXR0ZWQ7CisgICBpZiAobnVtZXJpY19vYmotPklzQmlnSW50KCkpIHsKKyAgICAgSGFuZGxl PEJpZ0ludD4gYmlnX2ludCA9IEhhbmRsZTxCaWdJbnQ+OjpjYXN0KG51bWVyaWNfb2JqKTsKKyAg ICAgSGFuZGxlPFN0cmluZz4gYmlnX2ludF9zdHJpbmc7CisgICAgIEFTU0lHTl9SRVRVUk5fT05f RVhDRVBUSU9OX1ZBTFVFKGlzb2xhdGUsIGJpZ19pbnRfc3RyaW5nLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBCaWdJbnQ6OlRvU3RyaW5nKGlzb2xhdGUsIGJpZ19pbnQp LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3RoaW5nPGljdTo6VW5p Y29kZVN0cmluZz4oKSk7CistICAgIGZvcm1hdHRlZCA9IG51bWJlcl9mb3JtYXQuZm9ybWF0RGVj aW1hbCgKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm90aGluZzxib29s PigpKTsKKysgICAgKmZvcm1hdHRlZCA9IG51bWJlcl9mb3JtYXQuZm9ybWF0RGVjaW1hbCgKKyAg ICAgICAgIHtiaWdfaW50X3N0cmluZy0+VG9DU3RyaW5nKCkuZ2V0KCksIGJpZ19pbnRfc3RyaW5n LT5sZW5ndGgoKX0sIHN0YXR1cyk7CisgICB9IGVsc2UgeworICAgICBkb3VibGUgbnVtYmVyID0g bnVtZXJpY19vYmotPklzTmFOKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICA/IHN0ZDo6bnVt ZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCkKKyAgICAgICAgICAgICAgICAgICAgICAg ICA6IG51bWVyaWNfb2JqLT5OdW1iZXIoKTsKKy0gICAgZm9ybWF0dGVkID0gbnVtYmVyX2Zvcm1h dC5mb3JtYXREb3VibGUobnVtYmVyLCBzdGF0dXMpOworKyAgICAqZm9ybWF0dGVkID0gbnVtYmVy X2Zvcm1hdC5mb3JtYXREb3VibGUobnVtYmVyLCBzdGF0dXMpOworICAgfQorICAgaWYgKFVfRkFJ TFVSRShzdGF0dXMpKSB7CisgICAgIC8vIFRoaXMgaGFwcGVuIGJlY2F1c2Ugb2YgaWN1IGRhdGEg dHJpbW1pbmcgdHJpbSBvdXQgInVuaXQiLgorICAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLmNocm9t aXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9ODY0MQorLSAgICBUSFJPV19ORVdfRVJST1Jf UkVUVVJOX1ZBTFVFKGlzb2xhdGUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TmV3VHlwZUVycm9yKE1lc3NhZ2VUZW1wbGF0ZTo6a0ljdUVycm9yKSwKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBOb3RoaW5nPGljdTo6VW5pY29kZVN0cmluZz4oKSk7CistICB9 CistICBpZiAoZnBfaXRlcikgeworLSAgICBmb3JtYXR0ZWQuZ2V0QWxsRmllbGRQb3NpdGlvbnMo KmZwX2l0ZXIsIHN0YXR1cyk7CistICB9CistICBpY3U6OlVuaWNvZGVTdHJpbmcgcmVzdWx0ID0g Zm9ybWF0dGVkLnRvU3RyaW5nKHN0YXR1cyk7CistICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsK Ky0gICAgVEhST1dfTkVXX0VSUk9SX1JFVFVSTl9WQUxVRShpc29sYXRlLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE5ld1R5cGVFcnJvcihNZXNzYWdlVGVtcGxhdGU6OmtJY3VF cnJvciksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm90aGluZzxpY3U6OlVu aWNvZGVTdHJpbmc+KCkpOworKyAgICBUSFJPV19ORVdfRVJST1JfUkVUVVJOX1ZBTFVFKAorKyAg ICAgICAgaXNvbGF0ZSwgTmV3VHlwZUVycm9yKE1lc3NhZ2VUZW1wbGF0ZTo6a0ljdUVycm9yKSwg Tm90aGluZzxib29sPigpKTsKKyAgIH0KKy0gIHJldHVybiBKdXN0KHJlc3VsdCk7CisrICByZXR1 cm4gSnVzdCh0cnVlKTsKKyB9CisgCisgfSAgLy8gbmFtZXNwYWNlCitAQCAtMTI4OSwxMCArMTI3 OCwxNiBAQCBNYXliZUhhbmRsZTxTdHJpbmc+IEpTTnVtYmVyRm9ybWF0OjpGb3JtYXROdW1lcmlj KAorICAgICBIYW5kbGU8T2JqZWN0PiBudW1lcmljX29iaikgeworICAgRENIRUNLKG51bWVyaWNf b2JqLT5Jc051bWVyaWMoKSk7CisgCistICBNYXliZTxpY3U6OlVuaWNvZGVTdHJpbmc+IG1heWJl X2Zvcm1hdCA9CistICAgICAgSWN1Rm9ybWF0TnVtYmVyKGlzb2xhdGUsIG51bWJlcl9mb3JtYXQs IG51bWVyaWNfb2JqLCBudWxscHRyKTsKKysgIGljdTo6bnVtYmVyOjpGb3JtYXR0ZWROdW1iZXIg Zm9ybWF0dGVkOworKyAgTWF5YmU8Ym9vbD4gbWF5YmVfZm9ybWF0ID0KKysgICAgICBJY3VGb3Jt YXROdW1iZXIoaXNvbGF0ZSwgbnVtYmVyX2Zvcm1hdCwgbnVtZXJpY19vYmosICZmb3JtYXR0ZWQp OworICAgTUFZQkVfUkVUVVJOKG1heWJlX2Zvcm1hdCwgSGFuZGxlPFN0cmluZz4oKSk7CistICBy ZXR1cm4gSW50bDo6VG9TdHJpbmcoaXNvbGF0ZSwgbWF5YmVfZm9ybWF0LkZyb21KdXN0KCkpOwor KyAgVUVycm9yQ29kZSBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CisrICBpY3U6OlVuaWNvZGVTdHJp bmcgcmVzdWx0ID0gZm9ybWF0dGVkLnRvU3RyaW5nKHN0YXR1cyk7CisrICBpZiAoVV9GQUlMVVJF KHN0YXR1cykpIHsKKysgICAgVEhST1dfTkVXX0VSUk9SKGlzb2xhdGUsIE5ld1R5cGVFcnJvcihN ZXNzYWdlVGVtcGxhdGU6OmtJY3VFcnJvciksIFN0cmluZyk7CisrICB9CisrICByZXR1cm4gSW50 bDo6VG9TdHJpbmcoaXNvbGF0ZSwgcmVzdWx0KTsKKyB9CisgCisgbmFtZXNwYWNlIHsKK0BAIC0x NDA1LDEyICsxNDAwLDE4IEBAIHN0ZDo6dmVjdG9yPE51bWJlckZvcm1hdFNwYW4+IEZsYXR0ZW5S ZWdpb25zVG9QYXJ0cygKKyB9CisgCisgbmFtZXNwYWNlIHsKKy1NYXliZTxpbnQ+IENvbnN0cnVj dFBhcnRzKElzb2xhdGUqIGlzb2xhdGUsIGNvbnN0IGljdTo6VW5pY29kZVN0cmluZyYgZm9ybWF0 dGVkLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgaWN1OjpGaWVsZFBvc2l0aW9uSXRlcmF0 b3IqIGZwX2l0ZXIsCisrTWF5YmU8aW50PiBDb25zdHJ1Y3RQYXJ0cyhJc29sYXRlKiBpc29sYXRl LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgaWN1OjpudW1iZXI6OkZvcm1hdHRlZE51bWJl ciogZm9ybWF0dGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgSGFuZGxlPEpTQXJyYXk+ IHJlc3VsdCwgaW50IHN0YXJ0X2luZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgSGFu ZGxlPE9iamVjdD4gbnVtZXJpY19vYmosIGJvb2wgc3R5bGVfaXNfdW5pdCkgeworKyAgVUVycm9y Q29kZSBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CisrICBpY3U6OlVuaWNvZGVTdHJpbmcgZm9ybWF0 dGVkX3RleHQgPSBmb3JtYXR0ZWQtPnRvU3RyaW5nKHN0YXR1cyk7CisrICBpZiAoVV9GQUlMVVJF KHN0YXR1cykpIHsKKysgICAgVEhST1dfTkVXX0VSUk9SX1JFVFVSTl9WQUxVRSgKKysgICAgICAg IGlzb2xhdGUsIE5ld1R5cGVFcnJvcihNZXNzYWdlVGVtcGxhdGU6OmtJY3VFcnJvciksIE5vdGhp bmc8aW50PigpKTsKKysgIH0KKyAgIERDSEVDSyhudW1lcmljX29iai0+SXNOdW1lcmljKCkpOwor LSAgaW50MzJfdCBsZW5ndGggPSBmb3JtYXR0ZWQubGVuZ3RoKCk7CisrICBpbnQzMl90IGxlbmd0 aCA9IGZvcm1hdHRlZF90ZXh0Lmxlbmd0aCgpOworICAgaW50IGluZGV4ID0gc3RhcnRfaW5kZXg7 CisgICBpZiAobGVuZ3RoID09IDApIHJldHVybiBKdXN0KGluZGV4KTsKKyAKK0BAIC0xNDE5LDEz ICsxNDIwLDE0IEBAIE1heWJlPGludD4gQ29uc3RydWN0UGFydHMoSXNvbGF0ZSogaXNvbGF0ZSwg Y29uc3QgaWN1OjpVbmljb2RlU3RyaW5nJiBmb3JtYXR0ZWQsCisgICAvLyBvdGhlciByZWdpb24g Y292ZXJzIHNvbWUgcGFydCBvZiB0aGUgZm9ybWF0dGVkIHN0cmluZy4gSXQncyBwb3NzaWJsZQor ICAgLy8gdGhlcmUncyBhbm90aGVyIGZpZWxkIHdpdGggZXhhY3RseSB0aGUgc2FtZSBiZWdpbiBh bmQgZW5kIGFzIHRoaXMgYmFja2Ryb3AsCisgICAvLyBpbiB3aGljaCBjYXNlIHRoZSBiYWNrZHJv cCdzIGZpZWxkX2lkIG9mIC0xIHdpbGwgZ2l2ZSBpdCBsb3dlciBwcmlvcml0eS4KKy0gIHJlZ2lv bnMucHVzaF9iYWNrKE51bWJlckZvcm1hdFNwYW4oLTEsIDAsIGZvcm1hdHRlZC5sZW5ndGgoKSkp OworKyAgcmVnaW9ucy5wdXNoX2JhY2soTnVtYmVyRm9ybWF0U3BhbigtMSwgMCwgZm9ybWF0dGVk X3RleHQubGVuZ3RoKCkpKTsKKyAKKyAgIHsKKy0gICAgaWN1OjpGaWVsZFBvc2l0aW9uIGZwOwor LSAgICB3aGlsZSAoZnBfaXRlci0+bmV4dChmcCkpIHsKKy0gICAgICByZWdpb25zLnB1c2hfYmFj ayhOdW1iZXJGb3JtYXRTcGFuKGZwLmdldEZpZWxkKCksIGZwLmdldEJlZ2luSW5kZXgoKSwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZwLmdldEVuZEluZGV4KCkp KTsKKysgICAgaWN1OjpDb25zdHJhaW5lZEZpZWxkUG9zaXRpb24gY2ZwOworKyAgICBjZnAuY29u c3RyYWluQ2F0ZWdvcnkoVUZJRUxEX0NBVEVHT1JZX05VTUJFUik7CisrICAgIHdoaWxlIChmb3Jt YXR0ZWQtPm5leHRQb3NpdGlvbihjZnAsIHN0YXR1cykpIHsKKysgICAgICByZWdpb25zLnB1c2hf YmFjaygKKysgICAgICAgICAgTnVtYmVyRm9ybWF0U3BhbihjZnAuZ2V0RmllbGQoKSwgY2ZwLmdl dFN0YXJ0KCksIGNmcC5nZXRMaW1pdCgpKSk7CisgICAgIH0KKyAgIH0KKyAKK0BAIC0xNDQ3LDcg KzE0NDksNyBAQCBNYXliZTxpbnQ+IENvbnN0cnVjdFBhcnRzKElzb2xhdGUqIGlzb2xhdGUsIGNv bnN0IGljdTo6VW5pY29kZVN0cmluZyYgZm9ybWF0dGVkLAorICAgICBIYW5kbGU8U3RyaW5nPiBz dWJzdHJpbmc7CisgICAgIEFTU0lHTl9SRVRVUk5fT05fRVhDRVBUSU9OX1ZBTFVFKAorICAgICAg ICAgaXNvbGF0ZSwgc3Vic3RyaW5nLAorLSAgICAgICAgSW50bDo6VG9TdHJpbmcoaXNvbGF0ZSwg Zm9ybWF0dGVkLCBwYXJ0LmJlZ2luX3BvcywgcGFydC5lbmRfcG9zKSwKKysgICAgICAgIEludGw6 OlRvU3RyaW5nKGlzb2xhdGUsIGZvcm1hdHRlZF90ZXh0LCBwYXJ0LmJlZ2luX3BvcywgcGFydC5l bmRfcG9zKSwKKyAgICAgICAgIE5vdGhpbmc8aW50PigpKTsKKyAgICAgSW50bDo6QWRkRWxlbWVu dChpc29sYXRlLCByZXN1bHQsIGluZGV4LCBmaWVsZF90eXBlX3N0cmluZywgc3Vic3RyaW5nKTsK KyAgICAgKytpbmRleDsKK0BAIC0xNDY3LDIwICsxNDY5LDE5IEBAIE1heWJlSGFuZGxlPEpTQXJy YXk+IEpTTnVtYmVyRm9ybWF0OjpGb3JtYXRUb1BhcnRzKAorICAgICAgIG51bWJlcl9mb3JtYXQt PmljdV9udW1iZXJfZm9ybWF0dGVyKCkucmF3KCk7CisgICBDSEVDS19OT1RfTlVMTChmbXQpOwor IAorLSAgaWN1OjpGaWVsZFBvc2l0aW9uSXRlcmF0b3IgZnBfaXRlcjsKKy0gIE1heWJlPGljdTo6 VW5pY29kZVN0cmluZz4gbWF5YmVfZm9ybWF0ID0KKy0gICAgICBJY3VGb3JtYXROdW1iZXIoaXNv bGF0ZSwgKmZtdCwgbnVtZXJpY19vYmosICZmcF9pdGVyKTsKKysgIGljdTo6bnVtYmVyOjpGb3Jt YXR0ZWROdW1iZXIgZm9ybWF0dGVkOworKyAgTWF5YmU8Ym9vbD4gbWF5YmVfZm9ybWF0ID0KKysg ICAgICBJY3VGb3JtYXROdW1iZXIoaXNvbGF0ZSwgKmZtdCwgbnVtZXJpY19vYmosICZmb3JtYXR0 ZWQpOworICAgTUFZQkVfUkVUVVJOKG1heWJlX2Zvcm1hdCwgSGFuZGxlPEpTQXJyYXk+KCkpOwor LQorICAgVUVycm9yQ29kZSBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CisrCisgICBib29sIHN0eWxl X2lzX3VuaXQgPQorICAgICAgIFN0eWxlOjpVTklUID09IFN0eWxlRnJvbVNrZWxldG9uKGZtdC0+ dG9Ta2VsZXRvbihzdGF0dXMpKTsKKyAgIENIRUNLKFVfU1VDQ0VTUyhzdGF0dXMpKTsKKyAKKyAg IEhhbmRsZTxKU0FycmF5PiByZXN1bHQgPSBmYWN0b3J5LT5OZXdKU0FycmF5KDApOworLSAgTWF5 YmU8aW50PiBtYXliZV9mb3JtYXRfdG9fcGFydHMgPQorLSAgICAgIENvbnN0cnVjdFBhcnRzKGlz b2xhdGUsIG1heWJlX2Zvcm1hdC5Gcm9tSnVzdCgpLCAmZnBfaXRlciwgcmVzdWx0LCAwLAorLSAg ICAgICAgICAgICAgICAgICAgIG51bWVyaWNfb2JqLCBzdHlsZV9pc191bml0KTsKKysgIE1heWJl PGludD4gbWF5YmVfZm9ybWF0X3RvX3BhcnRzID0gQ29uc3RydWN0UGFydHMoCisrICAgICAgaXNv bGF0ZSwgJmZvcm1hdHRlZCwgcmVzdWx0LCAwLCBudW1lcmljX29iaiwgc3R5bGVfaXNfdW5pdCk7 CisgICBNQVlCRV9SRVRVUk4obWF5YmVfZm9ybWF0X3RvX3BhcnRzLCBIYW5kbGU8SlNBcnJheT4o KSk7CisgCisgICByZXR1cm4gcmVzdWx0OwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjkv ZmlsZXMvcGF0Y2hlcy9lbGVjdHJvbi1BZGQtYS1zY3JpcHQtdG8tbGlzdC1wYXRjaC10YXJnZXRz LnBhdGNoLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9lbGVjdHJvbi1B ZGQtYS1zY3JpcHQtdG8tbGlzdC1wYXRjaC10YXJnZXRzLnBhdGNoLnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45MTZkYmE5ZGMzYgotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMvZWxlY3Ryb24tQWRkLWEtc2NyaXB0 LXRvLWxpc3QtcGF0Y2gtdGFyZ2V0cy5wYXRjaC5wYXRjaApAQCAtMCwwICsxLDQyIEBACitGcm9t IGZmNDEyMmYyMzZiNzBjMjcyYzc0NmQwYzMzNmNkYmQ1ODhkNzhjZDEgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCitGcm9tOiBFbHZpcyBQcmFuc2tldmljaHVzIDxlbHZpc0BtYWdpYy5pbz4KK0Rh dGU6IFRodSwgMTIgRGVjIDIwMTkgMTY6MTI6MTggLTA1MDAKK1N1YmplY3Q6IFtQQVRDSF0gQWRk IGEgc2NyaXB0IHRvIGxpc3QgcGF0Y2ggdGFyZ2V0cworCistLS0KKyBzY3JpcHQvbGlzdF9wYXRj aF90YXJnZXRzLnB5IHwgMjMgKysrKysrKysrKysrKysrKysrKysrKysKKyAxIGZpbGUgY2hhbmdl ZCwgMjMgaW5zZXJ0aW9ucygrKQorIGNyZWF0ZSBtb2RlIDEwMDc1NSBzY3JpcHQvbGlzdF9wYXRj aF90YXJnZXRzLnB5CisKK2RpZmYgLS1naXQgYS9zY3JpcHQvbGlzdF9wYXRjaF90YXJnZXRzLnB5 IGIvc2NyaXB0L2xpc3RfcGF0Y2hfdGFyZ2V0cy5weQorbmV3IGZpbGUgbW9kZSAxMDA3NTUKK2lu ZGV4IDAwMDAwMDAwMC4uNTUxNzNiYWM5CistLS0gL2Rldi9udWxsCisrKysgYi9zY3JpcHQvbGlz dF9wYXRjaF90YXJnZXRzLnB5CitAQCAtMCwwICsxLDIzIEBACisrIyEvdXNyL2Jpbi9lbnYgcHl0 aG9uCisrCisraW1wb3J0IGFyZ3BhcnNlCisraW1wb3J0IGpzb24KKysKKysKKytkZWYgcGFyc2Vf YXJncygpOgorKyAgcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoZGVzY3JpcHRpb249 J0FwcGx5IEVsZWN0cm9uIHBhdGNoZXMnKQorKyAgcGFyc2VyLmFkZF9hcmd1bWVudCgnY29uZmln JywgbmFyZ3M9JysnLAorKyAgICAgICAgICAgICAgICAgICAgICB0eXBlPWFyZ3BhcnNlLkZpbGVU eXBlKCdyJyksCisrICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J3BhdGNoZXNcJyBjb25maWco cykgaW4gdGhlIEpTT04gZm9ybWF0JykKKysgIHJldHVybiBwYXJzZXIucGFyc2VfYXJncygpCisr CisrCisrZGVmIG1haW4oKToKKysgIGNvbmZpZ3MgPSBwYXJzZV9hcmdzKCkuY29uZmlnCisrICBm b3IgY29uZmlnX2pzb24gaW4gY29uZmlnczoKKysgICAgZm9yIHBhdGNoX2RpciwgcmVwbyBpbiBq c29uLmxvYWQoY29uZmlnX2pzb24pLml0ZXJpdGVtcygpOgorKyAgICAgIHByaW50KHJlcG8pCisr CisrCisraWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKysgIG1haW4oKQorLS0gCisyLjIzLjAK KwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9lbGVjdHJvbi1C dWlsZC1maXhlcy5wYXRjaC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMv ZWxlY3Ryb24tQnVpbGQtZml4ZXMucGF0Y2gucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAuLjI5OGJmYTliY2IyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9l bGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9lbGVjdHJvbi1CdWlsZC1maXhlcy5wYXRjaC5wYXRjaApA QCAtMCwwICsxLDQ3IEBACitkaWZmIC0tZ2l0IGEvYnVpbGQvYXJncy9yZWxlYXNlLmduIGIvYnVp bGQvYXJncy9yZWxlYXNlLmduCitpbmRleCBlNTAxN2Y2ZTEuLjU5MjA3YjM4OSAxMDA2NDQKKy0t LSBhL2J1aWxkL2FyZ3MvcmVsZWFzZS5nbgorKysrIGIvYnVpbGQvYXJncy9yZWxlYXNlLmduCitA QCAtMSw2ICsxLDQgQEAKKyBpbXBvcnQoImFsbC5nbiIpCistaXNfY29tcG9uZW50X2J1aWxkID0g ZmFsc2UKKy1pc19vZmZpY2lhbF9idWlsZCA9IHRydWUKKyAKKyAjIFRoaXMgbWF5IGJlIGd1YXJk ZWQgYmVoaW5kIGlzX2Nocm9tZV9icmFuZGVkIGFsb25nc2lkZQorICMgcHJvcHJpZXRhcnlfY29k ZWNzIGh0dHBzOi8vd2VicnRjLXJldmlldy5nb29nbGVzb3VyY2UuY29tL2Mvc3JjLysvMzYzMjEs CitAQCAtOCw5ICs2LDMgQEAgaXNfb2ZmaWNpYWxfYnVpbGQgPSB0cnVlCisgIyBUaGUgaW5pdGlh bGl6YXRpb24gb2YgdGhlIGRlY29kZXIgZGVwZW5kcyBvbiB3aGV0aGVyIGZmbXBlZyBoYXMKKyAj IGJlZW4gYnVpbHQgd2l0aCBILjI2NCBzdXBwb3J0LgorIHJ0Y191c2VfaDI2NCA9IHByb3ByaWV0 YXJ5X2NvZGVjcworLQorLSMgQnkgZGVmYXVsdCwgRWxlY3Ryb24gYnVpbGRzIGZmbXBlZyB3aXRo IHByb3ByaWV0YXJ5IGNvZGVjcyBlbmFibGVkLiBJbiBvcmRlcgorLSMgdG8gZmFjaWxpdGF0ZSB1 c2VycyB3aG8gZG9uJ3Qgd2FudCB0byBzaGlwIHByb3ByaWV0YXJ5IGNvZGVjcyBpbiBmZm1wZWcs IG9yCistIyB3aG8gaGF2ZSBhbiBMR1BMIHJlcXVpcmVtZW50IHRvIHNoaXAgZmZtcGVnIGFzIGEg ZHluYW1pY2FsbHkgbGlua2VkIGxpYnJhcnksCistIyB3ZSBidWlsZCBmZm1wZWcgYXMgYSBzaGFy ZWQgbGlicmFyeS4KKy1pc19jb21wb25lbnRfZmZtcGVnID0gdHJ1ZQorZGlmZiAtLWdpdCBhL2J1 aWxkL25wbS5nbmkgYi9idWlsZC9ucG0uZ25pCitpbmRleCBhMTk4N2QwOTUuLmZiMzNhMTRjMyAx MDA2NDQKKy0tLSBhL2J1aWxkL25wbS5nbmkKKysrKyBiL2J1aWxkL25wbS5nbmkKK0BAIC0zNSw3 ICszNSw2IEBAIHRlbXBsYXRlKCJucG1fYWN0aW9uIikgeworICAgICBpZiAoIWRlZmluZWQoZGVw cykpIHsKKyAgICAgICBkZXBzID0gW10KKyAgICAgfQorLSAgICBkZXBzICs9IFsgIjpucG1fcHJl X2ZsaWdodF8iICsgdGFyZ2V0X25hbWUgXQorIAorICAgICBzY3JpcHQgPSAiLy9lbGVjdHJvbi9i dWlsZC9ucG0tcnVuLnB5IgorICAgICBhcmdzID0gWworZGlmZiAtLWdpdCBhL3BhdGNoZXMvbm9k ZS9maXhfYWRkX2RlZmF1bHRfdmFsdWVzX2Zvcl9lbmFibGVfbHRvX2FuZF9idWlsZF92OF93aXRo X2duX2luLnBhdGNoIGIvcGF0Y2hlcy9ub2RlL2ZpeF9hZGRfZGVmYXVsdF92YWx1ZXNfZm9yX2Vu YWJsZV9sdG9fYW5kX2J1aWxkX3Y4X3dpdGhfZ25faW4ucGF0Y2gKK2luZGV4IDBkYzk5MTZiZS4u N2VhYTQ2YmY1IDEwMDY0NAorLS0tIGEvcGF0Y2hlcy9ub2RlL2ZpeF9hZGRfZGVmYXVsdF92YWx1 ZXNfZm9yX2VuYWJsZV9sdG9fYW5kX2J1aWxkX3Y4X3dpdGhfZ25faW4ucGF0Y2gKKysrKyBiL3Bh dGNoZXMvbm9kZS9maXhfYWRkX2RlZmF1bHRfdmFsdWVzX2Zvcl9lbmFibGVfbHRvX2FuZF9idWls ZF92OF93aXRoX2duX2luLnBhdGNoCitAQCAtMzAsNyArMzAsNyBAQAorICsgICAgIyB0aGVzZSB2 YWx1ZXMgYmVpbmcgYWNjdXJhdGUuCisgKyAgICAnYnVpbGRfdjhfd2l0aF9nbic6ICdmYWxzZScs CisgKyAgICAnZW5hYmxlX2x0byUnOiAnZmFsc2UnLAorLSsKKysrICAgICdvcGVuc3NsX2ZpcHMn OiAnJywKKyAgICAgICdjb25kaXRpb25zJzogWworICAgICAgICBbJ3RhcmdldF9hcmNoPT0iYXJt NjQiJywgeworICAgICAgICAgICMgRGlzYWJsZWQgcGVuZGluZyBodHRwczovL2dpdGh1Yi5jb20v bm9kZWpzL25vZGUvaXNzdWVzLzIzOTEzLgorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9u OS9maWxlcy9wYXRjaGVzL2VsZWN0cm9uLWRvbnQtYXNzdW1lLXB5dGhvbi1pcy1weXRob24yLnBh dGNoIGIvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvcGF0Y2hlcy9lbGVjdHJvbi1kb250LWFzc3Vt ZS1weXRob24taXMtcHl0aG9uMi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMC4uZmIxMzQ3NDgwMjUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9u OS9maWxlcy9wYXRjaGVzL2VsZWN0cm9uLWRvbnQtYXNzdW1lLXB5dGhvbi1pcy1weXRob24yLnBh dGNoCkBAIC0wLDAgKzEsMTcgQEAKKy0tLSBhL2J1aWxkL3ppcC5weS5vcmlnCTIwMjAtMDQtMjcg MTc6NTk6NTMuNDk5MjgxNjY3ICswMjAwCisrKysgYi9idWlsZC96aXAucHkJMjAyMC0wNC0yNyAx Nzo1OTo1Ny42NTU4MzkxNDMgKzAyMDAKK0BAIC0xLDQgKzEsNCBAQAorLSMhL3Vzci9iaW4vZW52 IHB5dGhvbgorKyMhL3Vzci9iaW4vZW52IHB5dGhvbjIKKyBmcm9tIF9fZnV0dXJlX18gaW1wb3J0 IHByaW50X2Z1bmN0aW9uCisgaW1wb3J0IG9zCisgaW1wb3J0IHN1YnByb2Nlc3MKKworLS0tIGEv YnVpbGQvbnBtLXJ1bi5weS5vcmlnCTIwMjAtMDQtMjcgMTc6NTk6NTAuODI5MzUxODA3ICswMjAw CisrKysgYi9idWlsZC9ucG0tcnVuLnB5CTIwMjAtMDQtMjcgMTg6MDA6MDIuNzAyMzczMjU2ICsw MjAwCitAQCAtMSw0ICsxLDQgQEAKKy0jIS91c3IvYmluL2VudiBweXRob24KKysjIS91c3IvYmlu L2VudiBweXRob24yCisgZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgorIGlt cG9ydCBvcworIGltcG9ydCBzdWJwcm9jZXNzCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9u OS9maWxlcy9wYXRjaGVzL2VsZWN0cm9uLWV4bHVjZS1jb250ZW50LXRlc3QtcGF0Y2hlcy5wYXRj aCBiL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3BhdGNoZXMvZWxlY3Ryb24tZXhsdWNlLWNvbnRl bnQtdGVzdC1wYXRjaGVzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwLi42ZTFiYjkxODRhNQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb245L2Zp bGVzL3BhdGNoZXMvZWxlY3Ryb24tZXhsdWNlLWNvbnRlbnQtdGVzdC1wYXRjaGVzLnBhdGNoCkBA IC0wLDAgKzEsMTAgQEAKKy0tLSBhL3NjcmlwdC9hcHBseV9hbGxfcGF0Y2hlcy5weQkyMDIwLTA4 LTIyIDE3OjQ2OjQxLjc5NjcwNzUwNiArMDIwMAorKysrIC0JMjAyMC0wOC0yMiAxNzo0NzowNS44 ODc4MTM1MTIgKzAyMDAKK0BAIC0xNCw2ICsxNCw3IEBACisgICBmb3IgcGF0Y2hfZGlyLCByZXBv IGluIGRpcnMuaXRlbXMoKToKKyAgICAgZ2l0LmltcG9ydF9wYXRjaGVzKHJlcG89cmVwbywgcGF0 Y2hfZGF0YT1wYXRjaF9mcm9tX2RpcihwYXRjaF9kaXIpLAorICAgICAgIHRocmVld2F5PXRocmVl d2F5IGlzIG5vdCBOb25lLAorKyAgICAgIGV4Y2x1ZGU9Wydjb250ZW50L3Rlc3QvKionXSwKKyAg ICAgICBjb21taXR0ZXJfbmFtZT0iRWxlY3Ryb24gU2NyaXB0cyIsIGNvbW1pdHRlcl9lbWFpbD0i c2NyaXB0c0BlbGVjdHJvbiIpCisgCisgCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uOS9m aWxlcy9zbmRpby1maWxlcy9hdWRpb19tYW5hZ2VyX29wZW5ic2QuY2MgYi9zcmNwa2dzL2VsZWN0 cm9uOS9maWxlcy9zbmRpby1maWxlcy9hdWRpb19tYW5hZ2VyX29wZW5ic2QuY2MKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjJjN2FhOGVmYTY2Ci0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvc25kaW8tZmlsZXMvYXVkaW9fbWFuYWdlcl9v cGVuYnNkLmNjCkBAIC0wLDAgKzEsMTQ4IEBACisvLyBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIENo cm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBVc2Ugb2YgdGhpcyBzb3Vy Y2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisv LyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisjaW5jbHVkZSAiYmFzZS9tZXRyaWNzL2hp c3RvZ3JhbV9tYWNyb3MuaCIKKyNpbmNsdWRlICJiYXNlL21lbW9yeS9wdHJfdXRpbC5oIgorCisj aW5jbHVkZSAibWVkaWEvYXVkaW8vb3BlbmJzZC9hdWRpb19tYW5hZ2VyX29wZW5ic2QuaCIKKwor I2luY2x1ZGUgIm1lZGlhL2F1ZGlvL2F1ZGlvX2RldmljZV9kZXNjcmlwdGlvbi5oIgorI2luY2x1 ZGUgIm1lZGlhL2F1ZGlvL2F1ZGlvX291dHB1dF9kaXNwYXRjaGVyLmgiCisjaW5jbHVkZSAibWVk aWEvYXVkaW8vc25kaW8vc25kaW9faW5wdXQuaCIKKyNpbmNsdWRlICJtZWRpYS9hdWRpby9zbmRp by9zbmRpb19vdXRwdXQuaCIKKyNpbmNsdWRlICJtZWRpYS9iYXNlL2xpbWl0cy5oIgorI2luY2x1 ZGUgIm1lZGlhL2Jhc2UvbWVkaWFfc3dpdGNoZXMuaCIKKworbmFtZXNwYWNlIG1lZGlhIHsKKwor Ly8gTWF4aW11bSBudW1iZXIgb2Ygb3V0cHV0IHN0cmVhbXMgdGhhdCBjYW4gYmUgb3BlbiBzaW11 bHRhbmVvdXNseS4KK3N0YXRpYyBjb25zdCBpbnQga01heE91dHB1dFN0cmVhbXMgPSA0OworCisv LyBEZWZhdWx0IHNhbXBsZSByYXRlIGZvciBpbnB1dCBhbmQgb3V0cHV0IHN0cmVhbXMuCitzdGF0 aWMgY29uc3QgaW50IGtEZWZhdWx0U2FtcGxlUmF0ZSA9IDQ4MDAwOworCit2b2lkIEFkZERlZmF1 bHREZXZpY2UoQXVkaW9EZXZpY2VOYW1lcyogZGV2aWNlX25hbWVzKSB7CisgIERDSEVDSyhkZXZp Y2VfbmFtZXMtPmVtcHR5KCkpOworICBkZXZpY2VfbmFtZXMtPnB1c2hfZnJvbnQoQXVkaW9EZXZp Y2VOYW1lOjpDcmVhdGVEZWZhdWx0KCkpOworfQorCitib29sIEF1ZGlvTWFuYWdlck9wZW5CU0Q6 Okhhc0F1ZGlvT3V0cHV0RGV2aWNlcygpIHsKKyAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQXVk aW9NYW5hZ2VyT3BlbkJTRDo6SGFzQXVkaW9JbnB1dERldmljZXMoKSB7CisgIHJldHVybiB0cnVl OworfQorCit2b2lkIEF1ZGlvTWFuYWdlck9wZW5CU0Q6OkdldEF1ZGlvSW5wdXREZXZpY2VOYW1l cygKKyAgICBBdWRpb0RldmljZU5hbWVzKiBkZXZpY2VfbmFtZXMpIHsKKyAgRENIRUNLKGRldmlj ZV9uYW1lcy0+ZW1wdHkoKSk7CisgIEFkZERlZmF1bHREZXZpY2UoZGV2aWNlX25hbWVzKTsKK30K Kwordm9pZCBBdWRpb01hbmFnZXJPcGVuQlNEOjpHZXRBdWRpb091dHB1dERldmljZU5hbWVzKAor ICAgIEF1ZGlvRGV2aWNlTmFtZXMqIGRldmljZV9uYW1lcykgeworICBBZGREZWZhdWx0RGV2aWNl KGRldmljZV9uYW1lcyk7Cit9CisKK2NvbnN0IGNoYXIqIEF1ZGlvTWFuYWdlck9wZW5CU0Q6Okdl dE5hbWUoKSB7CisgIHJldHVybiAiU05ESU8iOworfQorCitBdWRpb1BhcmFtZXRlcnMgQXVkaW9N YW5hZ2VyT3BlbkJTRDo6R2V0SW5wdXRTdHJlYW1QYXJhbWV0ZXJzKAorICAgIGNvbnN0IHN0ZDo6 c3RyaW5nJiBkZXZpY2VfaWQpIHsKKyAgc3RhdGljIGNvbnN0IGludCBrRGVmYXVsdElucHV0QnVm ZmVyU2l6ZSA9IDEwMjQ7CisKKyAgaW50IHVzZXJfYnVmZmVyX3NpemUgPSBHZXRVc2VyQnVmZmVy U2l6ZSgpOworICBpbnQgYnVmZmVyX3NpemUgPSB1c2VyX2J1ZmZlcl9zaXplID8KKyAgICAgIHVz ZXJfYnVmZmVyX3NpemUgOiBrRGVmYXVsdElucHV0QnVmZmVyU2l6ZTsKKworICByZXR1cm4gQXVk aW9QYXJhbWV0ZXJzKAorICAgICAgQXVkaW9QYXJhbWV0ZXJzOjpBVURJT19QQ01fTE9XX0xBVEVO Q1ksIENIQU5ORUxfTEFZT1VUX1NURVJFTywKKyAgICAgIGtEZWZhdWx0U2FtcGxlUmF0ZSwgYnVm ZmVyX3NpemUpOworfQorCitBdWRpb01hbmFnZXJPcGVuQlNEOjpBdWRpb01hbmFnZXJPcGVuQlNE KHN0ZDo6dW5pcXVlX3B0cjxBdWRpb1RocmVhZD4gYXVkaW9fdGhyZWFkLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdWRpb0xvZ0ZhY3RvcnkqIGF1ZGlvX2xvZ19m YWN0b3J5KQorICAgIDogQXVkaW9NYW5hZ2VyQmFzZShzdGQ6Om1vdmUoYXVkaW9fdGhyZWFkKSwK KyAgICAgICAgICAgICAgICAgICAgICAgYXVkaW9fbG9nX2ZhY3RvcnkpIHsKKyAgRExPRyhXQVJO SU5HKSA8PCAiQXVkaW9NYW5hZ2VyT3BlbkJTRCI7CisgIFNldE1heE91dHB1dFN0cmVhbXNBbGxv d2VkKGtNYXhPdXRwdXRTdHJlYW1zKTsKK30KKworQXVkaW9NYW5hZ2VyT3BlbkJTRDo6fkF1ZGlv TWFuYWdlck9wZW5CU0QoKSB7CisgIFNodXRkb3duKCk7Cit9CisKK0F1ZGlvT3V0cHV0U3RyZWFt KiBBdWRpb01hbmFnZXJPcGVuQlNEOjpNYWtlTGluZWFyT3V0cHV0U3RyZWFtKAorICAgIGNvbnN0 IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAorICAgIGNvbnN0IExvZ0NhbGxiYWNrJiBsb2dfY2Fs bGJhY2spIHsKKyAgRENIRUNLX0VRKEF1ZGlvUGFyYW1ldGVyczo6QVVESU9fUENNX0xJTkVBUiwg cGFyYW1zLmZvcm1hdCgpKTsKKyAgcmV0dXJuIE1ha2VPdXRwdXRTdHJlYW0ocGFyYW1zKTsKK30K KworQXVkaW9PdXRwdXRTdHJlYW0qIEF1ZGlvTWFuYWdlck9wZW5CU0Q6Ok1ha2VMb3dMYXRlbmN5 T3V0cHV0U3RyZWFtKAorICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAorICAgIGNv bnN0IHN0ZDo6c3RyaW5nJiBkZXZpY2VfaWQsCisgICAgY29uc3QgTG9nQ2FsbGJhY2smIGxvZ19j YWxsYmFjaykgeworICBETE9HX0lGKEVSUk9SLCAhZGV2aWNlX2lkLmVtcHR5KCkpIDw8ICJOb3Qg aW1wbGVtZW50ZWQhIjsKKyAgRENIRUNLX0VRKEF1ZGlvUGFyYW1ldGVyczo6QVVESU9fUENNX0xP V19MQVRFTkNZLCBwYXJhbXMuZm9ybWF0KCkpOworICByZXR1cm4gTWFrZU91dHB1dFN0cmVhbShw YXJhbXMpOworfQorCitBdWRpb0lucHV0U3RyZWFtKiBBdWRpb01hbmFnZXJPcGVuQlNEOjpNYWtl TGluZWFySW5wdXRTdHJlYW0oCisgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMsCisg ICAgY29uc3Qgc3RkOjpzdHJpbmcmIGRldmljZV9pZCwKKyAgICBjb25zdCBMb2dDYWxsYmFjayYg bG9nX2NhbGxiYWNrKSB7CisgIERDSEVDS19FUShBdWRpb1BhcmFtZXRlcnM6OkFVRElPX1BDTV9M SU5FQVIsIHBhcmFtcy5mb3JtYXQoKSk7CisgIHJldHVybiBNYWtlSW5wdXRTdHJlYW0ocGFyYW1z KTsKK30KKworQXVkaW9JbnB1dFN0cmVhbSogQXVkaW9NYW5hZ2VyT3BlbkJTRDo6TWFrZUxvd0xh dGVuY3lJbnB1dFN0cmVhbSgKKyAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcywKKyAg ICBjb25zdCBzdGQ6OnN0cmluZyYgZGV2aWNlX2lkLAorICAgIGNvbnN0IExvZ0NhbGxiYWNrJiBs b2dfY2FsbGJhY2spIHsKKyAgRENIRUNLX0VRKEF1ZGlvUGFyYW1ldGVyczo6QVVESU9fUENNX0xP V19MQVRFTkNZLCBwYXJhbXMuZm9ybWF0KCkpOworICByZXR1cm4gTWFrZUlucHV0U3RyZWFtKHBh cmFtcyk7Cit9CisKK0F1ZGlvUGFyYW1ldGVycyBBdWRpb01hbmFnZXJPcGVuQlNEOjpHZXRQcmVm ZXJyZWRPdXRwdXRTdHJlYW1QYXJhbWV0ZXJzKAorICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBvdXRw dXRfZGV2aWNlX2lkLAorICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgaW5wdXRfcGFyYW1zKSB7 CisgIC8vIFRPRE8odG9tbWkpOiBTdXBwb3J0IHxvdXRwdXRfZGV2aWNlX2lkfC4KKyAgRExPR19J RihFUlJPUiwgIW91dHB1dF9kZXZpY2VfaWQuZW1wdHkoKSkgPDwgIk5vdCBpbXBsZW1lbnRlZCEi OworICBzdGF0aWMgY29uc3QgaW50IGtEZWZhdWx0T3V0cHV0QnVmZmVyU2l6ZSA9IDIwNDg7CisK KyAgQ2hhbm5lbExheW91dCBjaGFubmVsX2xheW91dCA9IENIQU5ORUxfTEFZT1VUX1NURVJFTzsK KyAgaW50IHNhbXBsZV9yYXRlID0ga0RlZmF1bHRTYW1wbGVSYXRlOworICBpbnQgYnVmZmVyX3Np emUgPSBrRGVmYXVsdE91dHB1dEJ1ZmZlclNpemU7CisgIGlmIChpbnB1dF9wYXJhbXMuSXNWYWxp ZCgpKSB7CisgICAgc2FtcGxlX3JhdGUgPSBpbnB1dF9wYXJhbXMuc2FtcGxlX3JhdGUoKTsKKyAg ICBjaGFubmVsX2xheW91dCA9IGlucHV0X3BhcmFtcy5jaGFubmVsX2xheW91dCgpOworICAgIGJ1 ZmZlcl9zaXplID0gc3RkOjptaW4oYnVmZmVyX3NpemUsIGlucHV0X3BhcmFtcy5mcmFtZXNfcGVy X2J1ZmZlcigpKTsKKyAgfQorCisgIGludCB1c2VyX2J1ZmZlcl9zaXplID0gR2V0VXNlckJ1ZmZl clNpemUoKTsKKyAgaWYgKHVzZXJfYnVmZmVyX3NpemUpCisgICAgYnVmZmVyX3NpemUgPSB1c2Vy X2J1ZmZlcl9zaXplOworCisgIHJldHVybiBBdWRpb1BhcmFtZXRlcnMoCisgICAgICBBdWRpb1Bh cmFtZXRlcnM6OkFVRElPX1BDTV9MT1dfTEFURU5DWSwgY2hhbm5lbF9sYXlvdXQsCisgICAgICBz YW1wbGVfcmF0ZSwgYnVmZmVyX3NpemUpOworfQorCitBdWRpb0lucHV0U3RyZWFtKiBBdWRpb01h bmFnZXJPcGVuQlNEOjpNYWtlSW5wdXRTdHJlYW0oCisgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJz JiBwYXJhbXMpIHsKKyAgRExPRyhXQVJOSU5HKSA8PCAiTWFrZUlucHV0U3RyZWFtIjsKKyAgcmV0 dXJuIG5ldyBTbmRpb0F1ZGlvSW5wdXRTdHJlYW0odGhpcywKKyAgICAgICAgICAgICBBdWRpb0Rl dmljZURlc2NyaXB0aW9uOjprRGVmYXVsdERldmljZUlkLCBwYXJhbXMpOworfQorCitBdWRpb091 dHB1dFN0cmVhbSogQXVkaW9NYW5hZ2VyT3BlbkJTRDo6TWFrZU91dHB1dFN0cmVhbSgKKyAgICBj b25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcykgeworICBETE9HKFdBUk5JTkcpIDw8ICJNYWtl T3V0cHV0U3RyZWFtIjsKKyAgcmV0dXJuIG5ldyBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKHBhcmFt cywgdGhpcyk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBtZWRpYQpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9lbGVjdHJvbjkvZmlsZXMvc25kaW8tZmlsZXMvYXVkaW9fbWFuYWdlcl9vcGVuYnNkLmggYi9z cmNwa2dzL2VsZWN0cm9uOS9maWxlcy9zbmRpby1maWxlcy9hdWRpb19tYW5hZ2VyX29wZW5ic2Qu aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOGM5OWRiOTY2ZDYKLS0t IC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9zbmRpby1maWxlcy9hdWRp b19tYW5hZ2VyX29wZW5ic2QuaApAQCAtMCwwICsxLDY1IEBACisvLyBDb3B5cmlnaHQgKGMpIDIw MTIgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBVc2Ugb2Yg dGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQg Y2FuIGJlCisvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisjaWZuZGVmIE1FRElBX0FV RElPX09QRU5CU0RfQVVESU9fTUFOQUdFUl9PUEVOQlNEX0hfCisjZGVmaW5lIE1FRElBX0FVRElP X09QRU5CU0RfQVVESU9fTUFOQUdFUl9PUEVOQlNEX0hfCisKKyNpbmNsdWRlIDxzZXQ+CisKKyNp bmNsdWRlICJiYXNlL2NvbXBpbGVyX3NwZWNpZmljLmgiCisjaW5jbHVkZSAiYmFzZS9tYWNyb3Mu aCIKKyNpbmNsdWRlICJiYXNlL21lbW9yeS9yZWZfY291bnRlZC5oIgorI2luY2x1ZGUgImJhc2Uv dGhyZWFkaW5nL3RocmVhZC5oIgorI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL2F1ZGlvX21hbmFnZXJf YmFzZS5oIgorCituYW1lc3BhY2UgbWVkaWEgeworCitjbGFzcyBNRURJQV9FWFBPUlQgQXVkaW9N YW5hZ2VyT3BlbkJTRCA6IHB1YmxpYyBBdWRpb01hbmFnZXJCYXNlIHsKKyBwdWJsaWM6CisgIEF1 ZGlvTWFuYWdlck9wZW5CU0Qoc3RkOjp1bmlxdWVfcHRyPEF1ZGlvVGhyZWFkPiBhdWRpb190aHJl YWQsCisgICAgICAgICAgICAgICAgICAgQXVkaW9Mb2dGYWN0b3J5KiBhdWRpb19sb2dfZmFjdG9y eSk7CisgIH5BdWRpb01hbmFnZXJPcGVuQlNEKCkgb3ZlcnJpZGU7CisKKyAgLy8gSW1wbGVtZW50 YXRpb24gb2YgQXVkaW9NYW5hZ2VyLgorICBib29sIEhhc0F1ZGlvT3V0cHV0RGV2aWNlcygpIG92 ZXJyaWRlOworICBib29sIEhhc0F1ZGlvSW5wdXREZXZpY2VzKCkgb3ZlcnJpZGU7CisgIHZvaWQg R2V0QXVkaW9JbnB1dERldmljZU5hbWVzKEF1ZGlvRGV2aWNlTmFtZXMqIGRldmljZV9uYW1lcykg b3ZlcnJpZGU7CisgIHZvaWQgR2V0QXVkaW9PdXRwdXREZXZpY2VOYW1lcyhBdWRpb0RldmljZU5h bWVzKiBkZXZpY2VfbmFtZXMpIG92ZXJyaWRlOworICBBdWRpb1BhcmFtZXRlcnMgR2V0SW5wdXRT dHJlYW1QYXJhbWV0ZXJzKAorICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGRldmljZV9pZCkgb3Zl cnJpZGU7CisgIGNvbnN0IGNoYXIqIEdldE5hbWUoKSBvdmVycmlkZTsKKworICAvLyBJbXBsZW1l bnRhdGlvbiBvZiBBdWRpb01hbmFnZXJCYXNlLgorICBBdWRpb091dHB1dFN0cmVhbSogTWFrZUxp bmVhck91dHB1dFN0cmVhbSgKKyAgICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAor ICAgICAgY29uc3QgTG9nQ2FsbGJhY2smIGxvZ19jYWxsYmFjaykgb3ZlcnJpZGU7CisgIEF1ZGlv T3V0cHV0U3RyZWFtKiBNYWtlTG93TGF0ZW5jeU91dHB1dFN0cmVhbSgKKyAgICAgIGNvbnN0IEF1 ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAorICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGRldmljZV9p ZCwKKyAgICAgIGNvbnN0IExvZ0NhbGxiYWNrJiBsb2dfY2FsbGJhY2spIG92ZXJyaWRlOworICBB dWRpb0lucHV0U3RyZWFtKiBNYWtlTGluZWFySW5wdXRTdHJlYW0oCisgICAgICBjb25zdCBBdWRp b1BhcmFtZXRlcnMmIHBhcmFtcywKKyAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXZpY2VfaWQs CisgICAgICBjb25zdCBMb2dDYWxsYmFjayYgbG9nX2NhbGxiYWNrKSBvdmVycmlkZTsKKyAgQXVk aW9JbnB1dFN0cmVhbSogTWFrZUxvd0xhdGVuY3lJbnB1dFN0cmVhbSgKKyAgICAgIGNvbnN0IEF1 ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAorICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGRldmljZV9p ZCwKKyAgICAgIGNvbnN0IExvZ0NhbGxiYWNrJiBsb2dfY2FsbGJhY2spIG92ZXJyaWRlOworCisg cHJvdGVjdGVkOgorICBBdWRpb1BhcmFtZXRlcnMgR2V0UHJlZmVycmVkT3V0cHV0U3RyZWFtUGFy YW1ldGVycygKKyAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBvdXRwdXRfZGV2aWNlX2lkLAorICAg ICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBpbnB1dF9wYXJhbXMpIG92ZXJyaWRlOworCisgcHJp dmF0ZToKKyAgLy8gQ2FsbGVkIGJ5IE1ha2VMaW5lYXJPdXRwdXRTdHJlYW0gYW5kIE1ha2VMb3dM YXRlbmN5T3V0cHV0U3RyZWFtLgorICBBdWRpb091dHB1dFN0cmVhbSogTWFrZU91dHB1dFN0cmVh bShjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcyk7CisgIEF1ZGlvSW5wdXRTdHJlYW0qIE1h a2VJbnB1dFN0cmVhbShjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcyk7CisKKyAgRElTQUxM T1dfQ09QWV9BTkRfQVNTSUdOKEF1ZGlvTWFuYWdlck9wZW5CU0QpOworfTsKKworfSAgLy8gbmFt ZXNwYWNlIG1lZGlhCisKKyNlbmRpZiAgLy8gTUVESUFfQVVESU9fT1BFTkJTRF9BVURJT19NQU5B R0VSX09QRU5CU0RfSF8KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3NuZGlv LWZpbGVzL3NuZGlvX2lucHV0LmNjIGIvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvc25kaW8tZmls ZXMvc25kaW9faW5wdXQuY2MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu LjZjN2JjOGI4MDI1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMv c25kaW8tZmlsZXMvc25kaW9faW5wdXQuY2MKQEAgLTAsMCArMSwyMDEgQEAKKy8vIENvcHlyaWdo dCAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVXNl IG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0 aGF0IGNhbiBiZQorLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworI2luY2x1ZGUgImJh c2UvYmluZC5oIgorI2luY2x1ZGUgImJhc2UvbG9nZ2luZy5oIgorI2luY2x1ZGUgImJhc2UvbWFj cm9zLmgiCisjaW5jbHVkZSAiYmFzZS9tZXNzYWdlX2xvb3AvbWVzc2FnZV9sb29wLmgiCisjaW5j bHVkZSAibWVkaWEvYmFzZS9hdWRpb190aW1lc3RhbXBfaGVscGVyLmgiCisjaW5jbHVkZSAibWVk aWEvYXVkaW8vb3BlbmJzZC9hdWRpb19tYW5hZ2VyX29wZW5ic2QuaCIKKyNpbmNsdWRlICJtZWRp YS9hdWRpby9hdWRpb19tYW5hZ2VyLmgiCisjaW5jbHVkZSAibWVkaWEvYXVkaW8vc25kaW8vc25k aW9faW5wdXQuaCIKKworbmFtZXNwYWNlIG1lZGlhIHsKKworc3RhdGljIGNvbnN0IFNhbXBsZUZv cm1hdCBrU2FtcGxlRm9ybWF0ID0ga1NhbXBsZUZvcm1hdFMxNjsKKwordm9pZCBTbmRpb0F1ZGlv SW5wdXRTdHJlYW06Ok9uTW92ZUNhbGxiYWNrKHZvaWQgKmFyZywgaW50IGRlbHRhKQoreworICBT bmRpb0F1ZGlvSW5wdXRTdHJlYW0qIHNlbGYgPSBzdGF0aWNfY2FzdDxTbmRpb0F1ZGlvSW5wdXRT dHJlYW0qPihhcmcpOworCisgIHNlbGYtPmh3X2RlbGF5ICs9IGRlbHRhOworfQorCit2b2lkICpT bmRpb0F1ZGlvSW5wdXRTdHJlYW06OlRocmVhZEVudHJ5KHZvaWQgKmFyZykgeworICBTbmRpb0F1 ZGlvSW5wdXRTdHJlYW0qIHNlbGYgPSBzdGF0aWNfY2FzdDxTbmRpb0F1ZGlvSW5wdXRTdHJlYW0q PihhcmcpOworCisgIHNlbGYtPlRocmVhZExvb3AoKTsKKyAgcmV0dXJuIE5VTEw7Cit9CisKK1Nu ZGlvQXVkaW9JbnB1dFN0cmVhbTo6U25kaW9BdWRpb0lucHV0U3RyZWFtKEF1ZGlvTWFuYWdlckJh c2UqIG1hbmFnZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBzdGQ6OnN0cmluZyYgZGV2aWNlX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcykKKyAg ICA6IG1hbmFnZXIobWFuYWdlciksCisgICAgICBwYXJhbXMocGFyYW1zKSwKKyAgICAgIGF1ZGlv X2J1cyhBdWRpb0J1czo6Q3JlYXRlKHBhcmFtcykpLAorICAgICAgc3RhdGUoa0Nsb3NlZCkgewor fQorCitTbmRpb0F1ZGlvSW5wdXRTdHJlYW06On5TbmRpb0F1ZGlvSW5wdXRTdHJlYW0oKSB7Cisg IGlmIChzdGF0ZSAhPSBrQ2xvc2VkKQorICAgIENsb3NlKCk7Cit9CisKK2Jvb2wgU25kaW9BdWRp b0lucHV0U3RyZWFtOjpPcGVuKCkgeworICBzdHJ1Y3Qgc2lvX3BhciBwYXI7CisgIGludCBzaWc7 CisKKyAgaWYgKHN0YXRlICE9IGtDbG9zZWQpCisgICAgcmV0dXJuIGZhbHNlOworCisgIGlmIChw YXJhbXMuZm9ybWF0KCkgIT0gQXVkaW9QYXJhbWV0ZXJzOjpBVURJT19QQ01fTElORUFSICYmCisg ICAgICBwYXJhbXMuZm9ybWF0KCkgIT0gQXVkaW9QYXJhbWV0ZXJzOjpBVURJT19QQ01fTE9XX0xB VEVOQ1kpIHsKKyAgICBMT0coV0FSTklORykgPDwgIlVuc3VwcG9ydGVkIGF1ZGlvIGZvcm1hdC4i OworICAgIHJldHVybiBmYWxzZTsKKyAgfQorCisgIHNpb19pbml0cGFyKCZwYXIpOworICBwYXIu cmF0ZSA9IHBhcmFtcy5zYW1wbGVfcmF0ZSgpOworICBwYXIucmNoYW4gPSBwYXJhbXMuY2hhbm5l bHMoKTsKKyAgcGFyLmJpdHMgPSBTYW1wbGVGb3JtYXRUb0JpdHNQZXJDaGFubmVsKGtTYW1wbGVG b3JtYXQpOworICBwYXIuYnBzID0gcGFyLmJpdHMgLyA4OworICBwYXIuc2lnID0gc2lnID0gcGFy LmJpdHMgIT0gOCA/IDEgOiAwOworICBwYXIubGUgPSBTSU9fTEVfTkFUSVZFOworICBwYXIuYXBw YnVmc3ogPSBwYXJhbXMuZnJhbWVzX3Blcl9idWZmZXIoKTsKKworICBoZGwgPSBzaW9fb3BlbihT SU9fREVWQU5ZLCBTSU9fUkVDLCAwKTsKKworICBpZiAoaGRsID09IE5VTEwpIHsKKyAgICBMT0co RVJST1IpIDw8ICJDb3VsZG4ndCBvcGVuIGF1ZGlvIGRldmljZS4iOworICAgIHJldHVybiBmYWxz ZTsKKyAgfQorCisgIGlmICghc2lvX3NldHBhcihoZGwsICZwYXIpIHx8ICFzaW9fZ2V0cGFyKGhk bCwgJnBhcikpIHsKKyAgICBMT0coRVJST1IpIDw8ICJDb3VsZG4ndCBzZXQgYXVkaW8gcGFyYW1l dGVycy4iOworICAgIGdvdG8gYmFkX2Nsb3NlOworICB9CisKKyAgaWYgKHBhci5yYXRlICAhPSAo dW5zaWduZWQgaW50KXBhcmFtcy5zYW1wbGVfcmF0ZSgpIHx8CisgICAgICBwYXIucmNoYW4gIT0g KHVuc2lnbmVkIGludClwYXJhbXMuY2hhbm5lbHMoKSB8fAorICAgICAgcGFyLmJpdHMgICE9ICh1 bnNpZ25lZCBpbnQpU2FtcGxlRm9ybWF0VG9CaXRzUGVyQ2hhbm5lbChrU2FtcGxlRm9ybWF0KSB8 fAorICAgICAgcGFyLnNpZyAgICE9ICh1bnNpZ25lZCBpbnQpc2lnIHx8CisgICAgICAocGFyLmJw cyA+IDEgJiYgcGFyLmxlICE9IFNJT19MRV9OQVRJVkUpIHx8CisgICAgICAocGFyLmJpdHMgIT0g cGFyLmJwcyAqIDgpKSB7CisgICAgTE9HKEVSUk9SKSA8PCAiVW5zdXBwb3J0ZWQgYXVkaW8gcGFy YW1ldGVycy4iOworICAgIGdvdG8gYmFkX2Nsb3NlOworICB9CisgIHN0YXRlID0ga1N0b3BwZWQ7 CisgIGJ1ZmZlciA9IG5ldyBjaGFyW2F1ZGlvX2J1cy0+ZnJhbWVzKCkgKiBwYXJhbXMuR2V0Qnl0 ZXNQZXJGcmFtZShrU2FtcGxlRm9ybWF0KV07CisgIHNpb19vbm1vdmUoaGRsLCAmT25Nb3ZlQ2Fs bGJhY2ssIHRoaXMpOworICByZXR1cm4gdHJ1ZTsKK2JhZF9jbG9zZToKKyAgc2lvX2Nsb3NlKGhk bCk7CisgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06OlN0 YXJ0KEF1ZGlvSW5wdXRDYWxsYmFjayogY2IpIHsKKworICBTdGFydEFnYygpOworCisgIHN0YXRl ID0ga1J1bm5pbmc7CisgIGh3X2RlbGF5ID0gMDsKKyAgY2FsbGJhY2sgPSBjYjsKKyAgc2lvX3N0 YXJ0KGhkbCk7CisgIGlmIChwdGhyZWFkX2NyZWF0ZSgmdGhyZWFkLCBOVUxMLCAmVGhyZWFkRW50 cnksIHRoaXMpICE9IDApIHsKKyAgICBMT0coRVJST1IpIDw8ICJGYWlsZWQgdG8gY3JlYXRlIHJl YWwtdGltZSB0aHJlYWQgZm9yIHJlY29yZGluZy4iOworICAgIHNpb19zdG9wKGhkbCk7CisgICAg c3RhdGUgPSBrU3RvcHBlZDsKKyAgfQorfQorCit2b2lkIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6 U3RvcCgpIHsKKworICBpZiAoc3RhdGUgPT0ga1N0b3BwZWQpCisgICAgcmV0dXJuOworCisgIHN0 YXRlID0ga1N0b3BXYWl0OworICBwdGhyZWFkX2pvaW4odGhyZWFkLCBOVUxMKTsKKyAgc2lvX3N0 b3AoaGRsKTsKKyAgc3RhdGUgPSBrU3RvcHBlZDsKKworICBTdG9wQWdjKCk7Cit9CisKK3ZvaWQg U25kaW9BdWRpb0lucHV0U3RyZWFtOjpDbG9zZSgpIHsKKworICBpZiAoc3RhdGUgPT0ga0Nsb3Nl ZCkKKyAgICByZXR1cm47CisKKyAgaWYgKHN0YXRlID09IGtSdW5uaW5nKQorICAgIFN0b3AoKTsK KworICBzdGF0ZSA9IGtDbG9zZWQ7CisgIGRlbGV0ZSBbXSBidWZmZXI7CisgIHNpb19jbG9zZSho ZGwpOworCisgIG1hbmFnZXItPlJlbGVhc2VJbnB1dFN0cmVhbSh0aGlzKTsKK30KKworZG91Ymxl IFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6R2V0TWF4Vm9sdW1lKCkgeworICAvLyBOb3Qgc3VwcG9y dGVkCisgIHJldHVybiAwLjA7Cit9CisKK3ZvaWQgU25kaW9BdWRpb0lucHV0U3RyZWFtOjpTZXRW b2x1bWUoZG91YmxlIHZvbHVtZSkgeworICAvLyBOb3Qgc3VwcG9ydGVkLiBEbyBub3RoaW5nLgor fQorCitkb3VibGUgU25kaW9BdWRpb0lucHV0U3RyZWFtOjpHZXRWb2x1bWUoKSB7CisgIC8vIE5v dCBzdXBwb3J0ZWQuCisgIHJldHVybiAwLjA7Cit9CisKK2Jvb2wgU25kaW9BdWRpb0lucHV0U3Ry ZWFtOjpJc011dGVkKCkgeworICAvLyBOb3Qgc3VwcG9ydGVkLgorICByZXR1cm4gZmFsc2U7Cit9 CisKK3ZvaWQgU25kaW9BdWRpb0lucHV0U3RyZWFtOjpTZXRPdXRwdXREZXZpY2VGb3JBZWMoCisg ICAgY29uc3Qgc3RkOjpzdHJpbmcmIG91dHB1dF9kZXZpY2VfaWQpIHsKKyAgLy8gTm90IHN1cHBv cnRlZC4KK30KKwordm9pZCBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06OlRocmVhZExvb3Aodm9pZCkg eworICBzaXplX3QgdG9kbywgbjsKKyAgY2hhciAqZGF0YTsKKyAgdW5zaWduZWQgaW50IG5mcmFt ZXM7CisgIGRvdWJsZSBub3JtYWxpemVkX3ZvbHVtZSA9IDAuMDsKKworICBuZnJhbWVzID0gYXVk aW9fYnVzLT5mcmFtZXMoKTsKKworICB3aGlsZSAoc3RhdGUgPT0ga1J1bm5pbmcgJiYgIXNpb19l b2YoaGRsKSkgeworCisgICAgR2V0QWdjVm9sdW1lKCZub3JtYWxpemVkX3ZvbHVtZSk7CisKKyAg ICAvLyByZWFkIG9uZSBibG9jaworICAgIHRvZG8gPSBuZnJhbWVzICogcGFyYW1zLkdldEJ5dGVz UGVyRnJhbWUoa1NhbXBsZUZvcm1hdCk7CisgICAgZGF0YSA9IGJ1ZmZlcjsKKyAgICB3aGlsZSAo dG9kbyA+IDApIHsKKyAgICAgIG4gPSBzaW9fcmVhZChoZGwsIGRhdGEsIHRvZG8pOworICAgICAg aWYgKG4gPT0gMCkKKyAgICAgICAgcmV0dXJuOwkvLyB1bnJlY292ZXJhYmxlIEkvTyBlcnJvcgor ICAgICAgdG9kbyAtPSBuOworICAgICAgZGF0YSArPSBuOworICAgIH0KKyAgICBod19kZWxheSAt PSBuZnJhbWVzOworCisgICAgLy8gY29udmVydCBmcmFtZXMgY291bnQgdG8gVGltZURlbHRhCisg ICAgY29uc3QgYmFzZTo6VGltZURlbHRhIGRlbGF5ID0gQXVkaW9UaW1lc3RhbXBIZWxwZXI6OkZy YW1lc1RvVGltZShod19kZWxheSwKKyAgICAgIHBhcmFtcy5zYW1wbGVfcmF0ZSgpKTsKKworICAg IC8vIHB1c2ggaW50byBidXMKKyAgICBhdWRpb19idXMtPkZyb21JbnRlcmxlYXZlZChidWZmZXIs IG5mcmFtZXMsIFNhbXBsZUZvcm1hdFRvQnl0ZXNQZXJDaGFubmVsKGtTYW1wbGVGb3JtYXQpKTsK KworICAgIC8vIGludm9rZSBjYWxsYmFjaworICAgIGNhbGxiYWNrLT5PbkRhdGEoYXVkaW9fYnVz LmdldCgpLCBiYXNlOjpUaW1lVGlja3M6Ok5vdygpIC0gZGVsYXksIDEuKTsKKyAgfQorfQorCit9 ICAvLyBuYW1lc3BhY2UgbWVkaWEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVz L3NuZGlvLWZpbGVzL3NuZGlvX2lucHV0LmggYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9zbmRp by1maWxlcy9zbmRpb19pbnB1dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwLi5kODY4ZTA0NjlkYgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb245L2Zp bGVzL3NuZGlvLWZpbGVzL3NuZGlvX2lucHV0LmgKQEAgLTAsMCArMSw5MSBAQAorLy8gQ29weXJp Z2h0IDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBV c2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNl IHRoYXQgY2FuIGJlCisvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisjaWZuZGVmIE1F RElBX0FVRElPX1NORElPX1NORElPX0lOUFVUX0hfCisjZGVmaW5lIE1FRElBX0FVRElPX1NORElP X1NORElPX0lOUFVUX0hfCisKKyNpbmNsdWRlIDxzdGRpbnQuaD4KKyNpbmNsdWRlIDxzdHJpbmc+ CisjaW5jbHVkZSA8c25kaW8uaD4KKworI2luY2x1ZGUgImJhc2UvY29tcGlsZXJfc3BlY2lmaWMu aCIKKyNpbmNsdWRlICJiYXNlL21hY3Jvcy5oIgorI2luY2x1ZGUgImJhc2UvbWVtb3J5L3dlYWtf cHRyLmgiCisjaW5jbHVkZSAiYmFzZS90aW1lL3RpbWUuaCIKKyNpbmNsdWRlICJtZWRpYS9hdWRp by9hZ2NfYXVkaW9fc3RyZWFtLmgiCisjaW5jbHVkZSAibWVkaWEvYXVkaW8vYXVkaW9faW8uaCIK KyNpbmNsdWRlICJtZWRpYS9hdWRpby9hdWRpb19kZXZpY2VfZGVzY3JpcHRpb24uaCIKKyNpbmNs dWRlICJtZWRpYS9iYXNlL2F1ZGlvX3BhcmFtZXRlcnMuaCIKKworbmFtZXNwYWNlIG1lZGlhIHsK KworY2xhc3MgQXVkaW9NYW5hZ2VyQmFzZTsKKworLy8gSW1wbGVtZW50YXRpb24gb2YgQXVkaW9P dXRwdXRTdHJlYW0gdXNpbmcgc25kaW8oNykKK2NsYXNzIFNuZGlvQXVkaW9JbnB1dFN0cmVhbSA6 IHB1YmxpYyBBZ2NBdWRpb1N0cmVhbTxBdWRpb0lucHV0U3RyZWFtPiB7CisgcHVibGljOgorICAv LyBQYXNzIHRoaXMgdG8gdGhlIGNvbnN0cnVjdG9yIGlmIHlvdSB3YW50IHRvIGF0dGVtcHQgYXV0 by1zZWxlY3Rpb24KKyAgLy8gb2YgdGhlIGF1ZGlvIHJlY29yZGluZyBkZXZpY2UuCisgIHN0YXRp YyBjb25zdCBjaGFyIGtBdXRvU2VsZWN0RGV2aWNlW107CisKKyAgLy8gQ3JlYXRlIGEgUENNIE91 dHB1dCBzdHJlYW0gZm9yIHRoZSBTTkRJTyBkZXZpY2UgaWRlbnRpZmllZCBieQorICAvLyB8ZGV2 aWNlX25hbWV8LiBJZiB1bnN1cmUgb2Ygd2hhdCB0byB1c2UgZm9yIHxkZXZpY2VfbmFtZXwsIHVz ZQorICAvLyB8a0F1dG9TZWxlY3REZXZpY2V8LgorICBTbmRpb0F1ZGlvSW5wdXRTdHJlYW0oQXVk aW9NYW5hZ2VyQmFzZSogYXVkaW9fbWFuYWdlciwKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IHN0ZDo6c3RyaW5nJiBkZXZpY2VfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEF1 ZGlvUGFyYW1ldGVycyYgcGFyYW1zKTsKKworICB+U25kaW9BdWRpb0lucHV0U3RyZWFtKCkgb3Zl cnJpZGU7CisKKyAgLy8gSW1wbGVtZW50YXRpb24gb2YgQXVkaW9JbnB1dFN0cmVhbS4KKyAgYm9v bCBPcGVuKCkgb3ZlcnJpZGU7CisgIHZvaWQgU3RhcnQoQXVkaW9JbnB1dENhbGxiYWNrKiBjYWxs YmFjaykgb3ZlcnJpZGU7CisgIHZvaWQgU3RvcCgpIG92ZXJyaWRlOworICB2b2lkIENsb3NlKCkg b3ZlcnJpZGU7CisgIGRvdWJsZSBHZXRNYXhWb2x1bWUoKSBvdmVycmlkZTsKKyAgdm9pZCBTZXRW b2x1bWUoZG91YmxlIHZvbHVtZSkgb3ZlcnJpZGU7CisgIGRvdWJsZSBHZXRWb2x1bWUoKSBvdmVy cmlkZTsKKyAgYm9vbCBJc011dGVkKCkgb3ZlcnJpZGU7CisgIHZvaWQgU2V0T3V0cHV0RGV2aWNl Rm9yQWVjKGNvbnN0IHN0ZDo6c3RyaW5nJiBvdXRwdXRfZGV2aWNlX2lkKSBvdmVycmlkZTsKKwor IHByaXZhdGU6CisKKyAgZW51bSBTdHJlYW1TdGF0ZSB7CisgICAga0Nsb3NlZCwgICAgICAgICAg ICAvLyBOb3Qgb3BlbmVkIHlldAorICAgIGtTdG9wcGVkLCAgICAgICAgICAgLy8gRGV2aWNlIG9w ZW5lZCwgYnV0IG5vdCBzdGFydGVkIHlldAorICAgIGtSdW5uaW5nLCAgICAgICAgICAgLy8gU3Rh cnRlZCwgZGV2aWNlIHBsYXlpbmcKKyAgICBrU3RvcFdhaXQgICAgICAgICAgIC8vIFN0b3BwaW5n LCB3YWl0aW5nIGZvciB0aGUgcmVhbC10aW1lIHRocmVhZCB0byBleGl0CisgIH07CisKKyAgLy8g Qy1zdHlsZSBjYWxsLWJhY2tzCisgIHN0YXRpYyB2b2lkIE9uTW92ZUNhbGxiYWNrKHZvaWQgKmFy ZywgaW50IGRlbHRhKTsKKyAgc3RhdGljIHZvaWQqIFRocmVhZEVudHJ5KHZvaWQgKmFyZyk7CisK KyAgLy8gQ29udGludW91c2x5IG1vdmVzIGRhdGEgZnJvbSB0aGUgZGV2aWNlIHRvIHRoZSBjb25z dW1lcgorICB2b2lkIFRocmVhZExvb3AoKTsKKyAgLy8gT3VyIGNyZWF0b3IsIHRoZSBhdWRpbyBt YW5hZ2VyIG5lZWRzIHRvIGJlIG5vdGlmaWVkIHdoZW4gd2UgY2xvc2UuCisgIEF1ZGlvTWFuYWdl ckJhc2UqIG1hbmFnZXI7CisgIC8vIFBhcmFtZXRlcnMgb2YgdGhlIHNvdXJjZQorICBBdWRpb1Bh cmFtZXRlcnMgcGFyYW1zOworICAvLyBXZSBzdG9yZSBkYXRhIGhlcmUgZm9yIGNvbnN1bWVyCisg IHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0J1cz4gYXVkaW9fYnVzOworICAvLyBDYWxsLWJhY2sgdGhh dCBjb25zdW1lcyByZWNvcmRlZCBkYXRhCisgIEF1ZGlvSW5wdXRDYWxsYmFjayogY2FsbGJhY2s7 ICAvLyBWYWxpZCBkdXJpbmcgYSByZWNvcmRpbmcgc2Vzc2lvbi4KKyAgLy8gSGFuZGxlIG9mIHRo ZSBhdWRpbyBkZXZpY2UKKyAgc3RydWN0IHNpb19oZGwqIGhkbDsKKyAgLy8gQ3VycmVudCBzdGF0 ZSBvZiB0aGUgc3RyZWFtCisgIGVudW0gU3RyZWFtU3RhdGUgc3RhdGU7CisgIC8vIEhpZ2ggcHJp b3JpdHkgdGhyZWFkIHJ1bm5pbmcgVGhyZWFkTG9vcCgpCisgIHB0aHJlYWRfdCB0aHJlYWQ7Cisg IC8vIE51bWJlciBvZiBmcmFtZXMgYnVmZmVyZWQgaW4gdGhlIGhhcmR3YXJlCisgIGludCBod19k ZWxheTsKKyAgLy8gVGVtcG9yYXJ5IGJ1ZmZlciB3aGVyZSBkYXRhIGlzIHN0b3JlZCBzbmRpby1j b21wYXRpYmxlIGZvcm1hdAorICBjaGFyKiBidWZmZXI7CisKKyAgRElTQUxMT1dfQ09QWV9BTkRf QVNTSUdOKFNuZGlvQXVkaW9JbnB1dFN0cmVhbSk7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgbWVk aWEKKworI2VuZGlmICAvLyBNRURJQV9BVURJT19TTkRJT19TTkRJT19JTlBVVF9IXwpkaWZmIC0t Z2l0IGEvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvc25kaW8tZmlsZXMvc25kaW9fb3V0cHV0LmNj IGIvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvc25kaW8tZmlsZXMvc25kaW9fb3V0cHV0LmNjCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hNjcxOWY5YWFjOAotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3NuZGlvLWZpbGVzL3NuZGlvX291 dHB1dC5jYwpAQCAtMCwwICsxLDE4MyBAQAorLy8gQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBDaHJv bWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVXNlIG9mIHRoaXMgc291cmNl IGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorLy8g Zm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworI2luY2x1ZGUgImJhc2UvbG9nZ2luZy5oIgor I2luY2x1ZGUgImJhc2UvdGltZS90aW1lLmgiCisjaW5jbHVkZSAiYmFzZS90aW1lL2RlZmF1bHRf dGlja19jbG9jay5oIgorI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL2F1ZGlvX21hbmFnZXJfYmFzZS5o IgorI2luY2x1ZGUgIm1lZGlhL2Jhc2UvYXVkaW9fdGltZXN0YW1wX2hlbHBlci5oIgorI2luY2x1 ZGUgIm1lZGlhL2F1ZGlvL3NuZGlvL3NuZGlvX291dHB1dC5oIgorCituYW1lc3BhY2UgbWVkaWEg eworCitzdGF0aWMgY29uc3QgU2FtcGxlRm9ybWF0IGtTYW1wbGVGb3JtYXQgPSBrU2FtcGxlRm9y bWF0UzE2OworCit2b2lkIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW06Ok9uTW92ZUNhbGxiYWNrKHZv aWQgKmFyZywgaW50IGRlbHRhKSB7CisgIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW0qIHNlbGYgPSBz dGF0aWNfY2FzdDxTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKj4oYXJnKTsKKworICBzZWxmLT5od19k ZWxheSAtPSBkZWx0YTsKK30KKwordm9pZCBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjpPblZvbENh bGxiYWNrKHZvaWQgKmFyZywgdW5zaWduZWQgaW50IHZvbCkgeworICBTbmRpb0F1ZGlvT3V0cHV0 U3RyZWFtKiBzZWxmID0gc3RhdGljX2Nhc3Q8U25kaW9BdWRpb091dHB1dFN0cmVhbSo+KGFyZyk7 CisKKyAgc2VsZi0+dm9sID0gdm9sOworfQorCit2b2lkICpTbmRpb0F1ZGlvT3V0cHV0U3RyZWFt OjpUaHJlYWRFbnRyeSh2b2lkICphcmcpIHsKKyAgU25kaW9BdWRpb091dHB1dFN0cmVhbSogc2Vs ZiA9IHN0YXRpY19jYXN0PFNuZGlvQXVkaW9PdXRwdXRTdHJlYW0qPihhcmcpOworCisgIHNlbGYt PlRocmVhZExvb3AoKTsKKyAgcmV0dXJuIE5VTEw7Cit9CisKK1NuZGlvQXVkaW9PdXRwdXRTdHJl YW06OlNuZGlvQXVkaW9PdXRwdXRTdHJlYW0oY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF1ZGlvTWFu YWdlckJhc2UqIG1hbmFnZXIpCisgICAgOiBtYW5hZ2VyKG1hbmFnZXIpLAorICAgICAgcGFyYW1z KHBhcmFtcyksCisgICAgICBhdWRpb19idXMoQXVkaW9CdXM6OkNyZWF0ZShwYXJhbXMpKSwKKyAg ICAgIHN0YXRlKGtDbG9zZWQpLAorICAgICAgbXV0ZXgoUFRIUkVBRF9NVVRFWF9JTklUSUFMSVpF UikgeworfQorCitTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjp+U25kaW9BdWRpb091dHB1dFN0cmVh bSgpIHsKKyAgaWYgKHN0YXRlICE9IGtDbG9zZWQpCisgICAgQ2xvc2UoKTsKK30KKworYm9vbCBT bmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjpPcGVuKCkgeworICBzdHJ1Y3Qgc2lvX3BhciBwYXI7Cisg IGludCBzaWc7CisKKyAgaWYgKHBhcmFtcy5mb3JtYXQoKSAhPSBBdWRpb1BhcmFtZXRlcnM6OkFV RElPX1BDTV9MSU5FQVIgJiYKKyAgICAgIHBhcmFtcy5mb3JtYXQoKSAhPSBBdWRpb1BhcmFtZXRl cnM6OkFVRElPX1BDTV9MT1dfTEFURU5DWSkgeworICAgIExPRyhXQVJOSU5HKSA8PCAiVW5zdXBw b3J0ZWQgYXVkaW8gZm9ybWF0LiI7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisgIHNpb19pbml0 cGFyKCZwYXIpOworICBwYXIucmF0ZSA9IHBhcmFtcy5zYW1wbGVfcmF0ZSgpOworICBwYXIucGNo YW4gPSBwYXJhbXMuY2hhbm5lbHMoKTsKKyAgcGFyLmJpdHMgPSBTYW1wbGVGb3JtYXRUb0JpdHNQ ZXJDaGFubmVsKGtTYW1wbGVGb3JtYXQpOworICBwYXIuYnBzID0gcGFyLmJpdHMgLyA4OworICBw YXIuc2lnID0gc2lnID0gcGFyLmJpdHMgIT0gOCA/IDEgOiAwOworICBwYXIubGUgPSBTSU9fTEVf TkFUSVZFOworICBwYXIuYXBwYnVmc3ogPSBwYXJhbXMuZnJhbWVzX3Blcl9idWZmZXIoKTsKKwor ICBoZGwgPSBzaW9fb3BlbihTSU9fREVWQU5ZLCBTSU9fUExBWSwgMCk7CisgIGlmIChoZGwgPT0g TlVMTCkgeworICAgIExPRyhFUlJPUikgPDwgIkNvdWxkbid0IG9wZW4gYXVkaW8gZGV2aWNlLiI7 CisgICAgcmV0dXJuIGZhbHNlOworICB9CisgIGlmICghc2lvX3NldHBhcihoZGwsICZwYXIpIHx8 ICFzaW9fZ2V0cGFyKGhkbCwgJnBhcikpIHsKKyAgICBMT0coRVJST1IpIDw8ICJDb3VsZG4ndCBz ZXQgYXVkaW8gcGFyYW1ldGVycy4iOworICAgIGdvdG8gYmFkX2Nsb3NlOworICB9CisgIGlmIChw YXIucmF0ZSAgIT0gKHVuc2lnbmVkIGludClwYXJhbXMuc2FtcGxlX3JhdGUoKSB8fAorICAgICAg cGFyLnBjaGFuICE9ICh1bnNpZ25lZCBpbnQpcGFyYW1zLmNoYW5uZWxzKCkgfHwKKyAgICAgIHBh ci5iaXRzICAhPSAodW5zaWduZWQgaW50KVNhbXBsZUZvcm1hdFRvQml0c1BlckNoYW5uZWwoa1Nh bXBsZUZvcm1hdCkgfHwKKyAgICAgIHBhci5zaWcgICAhPSAodW5zaWduZWQgaW50KXNpZyB8fAor ICAgICAgKHBhci5icHMgPiAxICYmIHBhci5sZSAhPSBTSU9fTEVfTkFUSVZFKSB8fAorICAgICAg KHBhci5iaXRzICE9IHBhci5icHMgKiA4KSkgeworICAgIExPRyhFUlJPUikgPDwgIlVuc3VwcG9y dGVkIGF1ZGlvIHBhcmFtZXRlcnMuIjsKKyAgICBnb3RvIGJhZF9jbG9zZTsKKyAgfQorICBzdGF0 ZSA9IGtTdG9wcGVkOworICB2b2xwZW5kaW5nID0gMDsKKyAgdm9sID0gMDsKKyAgYnVmZmVyID0g bmV3IGNoYXJbYXVkaW9fYnVzLT5mcmFtZXMoKSAqIHBhcmFtcy5HZXRCeXRlc1BlckZyYW1lKGtT YW1wbGVGb3JtYXQpXTsKKyAgc2lvX29ubW92ZShoZGwsICZPbk1vdmVDYWxsYmFjaywgdGhpcyk7 CisgIHNpb19vbnZvbChoZGwsICZPblZvbENhbGxiYWNrLCB0aGlzKTsKKyAgcmV0dXJuIHRydWU7 CisgYmFkX2Nsb3NlOgorICBzaW9fY2xvc2UoaGRsKTsKKyAgcmV0dXJuIGZhbHNlOworfQorCit2 b2lkIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW06OkNsb3NlKCkgeworICBpZiAoc3RhdGUgPT0ga0Ns b3NlZCkKKyAgICByZXR1cm47CisgIGlmIChzdGF0ZSA9PSBrUnVubmluZykKKyAgICBTdG9wKCk7 CisgIHN0YXRlID0ga0Nsb3NlZDsKKyAgZGVsZXRlIFtdIGJ1ZmZlcjsKKyAgc2lvX2Nsb3NlKGhk bCk7CisgIG1hbmFnZXItPlJlbGVhc2VPdXRwdXRTdHJlYW0odGhpcyk7ICAvLyBDYWxscyB0aGUg ZGVzdHJ1Y3RvcgorfQorCit2b2lkIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW06OlN0YXJ0KEF1ZGlv U291cmNlQ2FsbGJhY2sqIGNhbGxiYWNrKSB7CisgIHN0YXRlID0ga1J1bm5pbmc7CisgIGh3X2Rl bGF5ID0gMDsKKyAgc291cmNlID0gY2FsbGJhY2s7CisgIHNpb19zdGFydChoZGwpOworICBpZiAo cHRocmVhZF9jcmVhdGUoJnRocmVhZCwgTlVMTCwgJlRocmVhZEVudHJ5LCB0aGlzKSAhPSAwKSB7 CisgICAgTE9HKEVSUk9SKSA8PCAiRmFpbGVkIHRvIGNyZWF0ZSByZWFsLXRpbWUgdGhyZWFkLiI7 CisgICAgc2lvX3N0b3AoaGRsKTsKKyAgICBzdGF0ZSA9IGtTdG9wcGVkOworICB9Cit9CisKK3Zv aWQgU25kaW9BdWRpb091dHB1dFN0cmVhbTo6U3RvcCgpIHsKKyAgaWYgKHN0YXRlID09IGtTdG9w cGVkKQorICAgIHJldHVybjsKKyAgc3RhdGUgPSBrU3RvcFdhaXQ7CisgIHB0aHJlYWRfam9pbih0 aHJlYWQsIE5VTEwpOworICBzaW9fc3RvcChoZGwpOworICBzdGF0ZSA9IGtTdG9wcGVkOworfQor Cit2b2lkIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW06OlNldFZvbHVtZShkb3VibGUgdikgeworICBw dGhyZWFkX211dGV4X2xvY2soJm11dGV4KTsKKyAgdm9sID0gdiAqIFNJT19NQVhWT0w7CisgIHZv bHBlbmRpbmcgPSAxOworICBwdGhyZWFkX211dGV4X3VubG9jaygmbXV0ZXgpOworfQorCit2b2lk IFNuZGlvQXVkaW9PdXRwdXRTdHJlYW06OkdldFZvbHVtZShkb3VibGUqIHYpIHsKKyAgcHRocmVh ZF9tdXRleF9sb2NrKCZtdXRleCk7CisgICp2ID0gdm9sICogKDEuIC8gU0lPX01BWFZPTCk7Cisg IHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZtdXRleCk7Cit9CisKKy8vIFRoaXMgc3RyZWFtIGlzIGFs d2F5cyB1c2VkIHdpdGggc3ViIHNlY29uZCBidWZmZXIgc2l6ZXMsIHdoZXJlIGl0J3MKKy8vIHN1 ZmZpY2llbnQgdG8gc2ltcGx5IGFsd2F5cyBmbHVzaCB1cG9uIFN0YXJ0KCkuCit2b2lkIFNuZGlv QXVkaW9PdXRwdXRTdHJlYW06OkZsdXNoKCkge30KKwordm9pZCBTbmRpb0F1ZGlvT3V0cHV0U3Ry ZWFtOjpUaHJlYWRMb29wKHZvaWQpIHsKKyAgaW50IGF2YWlsLCBjb3VudCwgcmVzdWx0OworCisg IHdoaWxlIChzdGF0ZSA9PSBrUnVubmluZykgeworICAgIC8vIFVwZGF0ZSB2b2x1bWUgaWYgbmVl ZGVkCisgICAgcHRocmVhZF9tdXRleF9sb2NrKCZtdXRleCk7CisgICAgaWYgKHZvbHBlbmRpbmcp IHsKKyAgICAgIHZvbHBlbmRpbmcgPSAwOworICAgICAgc2lvX3NldHZvbChoZGwsIHZvbCk7Cisg ICAgfQorICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZtdXRleCk7CisKKyAgICAvLyBHZXQgZGF0 YSB0byBwbGF5CisgICAgY29uc3QgYmFzZTo6VGltZURlbHRhIGRlbGF5ID0gQXVkaW9UaW1lc3Rh bXBIZWxwZXI6OkZyYW1lc1RvVGltZShod19kZWxheSwKKwlwYXJhbXMuc2FtcGxlX3JhdGUoKSk7 CisgICAgY291bnQgPSBzb3VyY2UtPk9uTW9yZURhdGEoZGVsYXksIGJhc2U6OlRpbWVUaWNrczo6 Tm93KCksIDAsIGF1ZGlvX2J1cy5nZXQoKSk7CisgICAgYXVkaW9fYnVzLT5Ub0ludGVybGVhdmVk KGNvdW50LCBTYW1wbGVGb3JtYXRUb0J5dGVzUGVyQ2hhbm5lbChrU2FtcGxlRm9ybWF0KSwgYnVm ZmVyKTsKKyAgICBpZiAoY291bnQgPT0gMCkgeworICAgICAgLy8gV2UgaGF2ZSB0byBzdWJtaXQg c29tZXRoaW5nIHRvIHRoZSBkZXZpY2UKKyAgICAgIGNvdW50ID0gYXVkaW9fYnVzLT5mcmFtZXMo KTsKKyAgICAgIG1lbXNldChidWZmZXIsIDAsIGNvdW50ICogcGFyYW1zLkdldEJ5dGVzUGVyRnJh bWUoa1NhbXBsZUZvcm1hdCkpOworICAgICAgTE9HKFdBUk5JTkcpIDw8ICJObyBkYXRhIHRvIHBs YXksIHJ1bm5pbmcgZW1wdHkgY3ljbGUuIjsKKyAgICB9CisKKyAgICAvLyBTdWJtaXQgZGF0YSB0 byB0aGUgZGV2aWNlCisgICAgYXZhaWwgPSBjb3VudCAqIHBhcmFtcy5HZXRCeXRlc1BlckZyYW1l KGtTYW1wbGVGb3JtYXQpOworICAgIHJlc3VsdCA9IHNpb193cml0ZShoZGwsIGJ1ZmZlciwgYXZh aWwpOworICAgIGlmIChyZXN1bHQgPT0gMCkgeworICAgICAgTE9HKFdBUk5JTkcpIDw8ICJBdWRp byBkZXZpY2UgZGlzY29ubmVjdGVkLiI7CisgICAgICBicmVhazsKKyAgICB9CisKKyAgICAvLyBV cGRhdGUgaGFyZHdhcmUgcG9pbnRlcgorICAgIGh3X2RlbGF5ICs9IGNvdW50OworICB9Cit9CisK K30gIC8vIG5hbWVzcGFjZSBtZWRpYQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjkvZmls ZXMvc25kaW8tZmlsZXMvc25kaW9fb3V0cHV0LmggYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9z bmRpby1maWxlcy9zbmRpb19vdXRwdXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMC4uZWFkMjIwY2E5NmUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9u OS9maWxlcy9zbmRpby1maWxlcy9zbmRpb19vdXRwdXQuaApAQCAtMCwwICsxLDg2IEBACisvLyBD b3B5cmlnaHQgKGMpIDIwMTIgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2 ZWQuCisvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHls ZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisj aWZuZGVmIE1FRElBX0FVRElPX1NORElPX1NORElPX09VVFBVVF9IXworI2RlZmluZSBNRURJQV9B VURJT19TTkRJT19TTkRJT19PVVRQVVRfSF8KKworI2luY2x1ZGUgPHB0aHJlYWQuaD4KKyNpbmNs dWRlIDxzbmRpby5oPgorCisjaW5jbHVkZSAiYmFzZS90aW1lL3RpY2tfY2xvY2suaCIKKyNpbmNs dWRlICJiYXNlL3RpbWUvdGltZS5oIgorI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL2F1ZGlvX2lvLmgi CisKK25hbWVzcGFjZSBtZWRpYSB7CisKK2NsYXNzIEF1ZGlvTWFuYWdlckJhc2U7CisKKy8vIElt cGxlbWVudGF0aW9uIG9mIEF1ZGlvT3V0cHV0U3RyZWFtIHVzaW5nIHNuZGlvKDcpCitjbGFzcyBT bmRpb0F1ZGlvT3V0cHV0U3RyZWFtIDogcHVibGljIEF1ZGlvT3V0cHV0U3RyZWFtIHsKKyBwdWJs aWM6CisgIC8vIFRoZSBtYW5hZ2VyIGlzIGNyZWF0aW5nIHRoaXMgb2JqZWN0CisgIFNuZGlvQXVk aW9PdXRwdXRTdHJlYW0oY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMsCisgICAgICAgICAg ICAgICAgICAgICAgICAgQXVkaW9NYW5hZ2VyQmFzZSogbWFuYWdlcik7CisgIHZpcnR1YWwgflNu ZGlvQXVkaW9PdXRwdXRTdHJlYW0oKTsKKworICAvLyBJbXBsZW1lbnRhdGlvbiBvZiBBdWRpb091 dHB1dFN0cmVhbS4KKyAgYm9vbCBPcGVuKCkgb3ZlcnJpZGU7CisgIHZvaWQgQ2xvc2UoKSBvdmVy cmlkZTsKKyAgdm9pZCBTdGFydChBdWRpb1NvdXJjZUNhbGxiYWNrKiBjYWxsYmFjaykgb3ZlcnJp ZGU7CisgIHZvaWQgU3RvcCgpIG92ZXJyaWRlOworICB2b2lkIFNldFZvbHVtZShkb3VibGUgdm9s dW1lKSBvdmVycmlkZTsKKyAgdm9pZCBHZXRWb2x1bWUoZG91YmxlKiB2b2x1bWUpIG92ZXJyaWRl OworICB2b2lkIEZsdXNoKCkgb3ZlcnJpZGU7CisKKyAgZnJpZW5kIHZvaWQgc25kaW9fb25tb3Zl KHZvaWQgKmFyZywgaW50IGRlbHRhKTsKKyAgZnJpZW5kIHZvaWQgc25kaW9fb252b2wodm9pZCAq YXJnLCB1bnNpZ25lZCBpbnQgdm9sKTsKKyAgZnJpZW5kIHZvaWQgKnNuZGlvX3RocmVhZHN0YXJ0 KHZvaWQgKmFyZyk7CisKKyBwcml2YXRlOgorICBlbnVtIFN0cmVhbVN0YXRlIHsKKyAgICBrQ2xv c2VkLCAgICAgICAgICAgIC8vIE5vdCBvcGVuZWQgeWV0CisgICAga1N0b3BwZWQsICAgICAgICAg ICAvLyBEZXZpY2Ugb3BlbmVkLCBidXQgbm90IHN0YXJ0ZWQgeWV0CisgICAga1J1bm5pbmcsICAg ICAgICAgICAvLyBTdGFydGVkLCBkZXZpY2UgcGxheWluZworICAgIGtTdG9wV2FpdCAgICAgICAg ICAgLy8gU3RvcHBpbmcsIHdhaXRpbmcgZm9yIHRoZSByZWFsLXRpbWUgdGhyZWFkIHRvIGV4aXQK KyAgfTsKKworICAvLyBDLXN0eWxlIGNhbGwtYmFja3MKKyAgc3RhdGljIHZvaWQgT25Nb3ZlQ2Fs bGJhY2sodm9pZCAqYXJnLCBpbnQgZGVsdGEpOworICBzdGF0aWMgdm9pZCBPblZvbENhbGxiYWNr KHZvaWQgKmFyZywgdW5zaWduZWQgaW50IHZvbCk7CisgIHN0YXRpYyB2b2lkKiBUaHJlYWRFbnRy eSh2b2lkICphcmcpOworCisgIC8vIENvbnRpbnVvdXNseSBtb3ZlcyBkYXRhIGZyb20gdGhlIHBy b2R1Y2VyIHRvIHRoZSBkZXZpY2UKKyAgdm9pZCBUaHJlYWRMb29wKHZvaWQpOworCisgIC8vIE91 ciBjcmVhdG9yLCB0aGUgYXVkaW8gbWFuYWdlciBuZWVkcyB0byBiZSBub3RpZmllZCB3aGVuIHdl IGNsb3NlLgorICBBdWRpb01hbmFnZXJCYXNlKiBtYW5hZ2VyOworICAvLyBQYXJhbWV0ZXJzIG9m IHRoZSBzb3VyY2UKKyAgQXVkaW9QYXJhbWV0ZXJzIHBhcmFtczsKKyAgLy8gU291cmNlIHN0b3Jl cyBkYXRhIGhlcmUKKyAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvQnVzPiBhdWRpb19idXM7CisgIC8v IENhbGwtYmFjayB0aGF0IHByb2R1Y2VzIGRhdGEgdG8gcGxheQorICBBdWRpb1NvdXJjZUNhbGxi YWNrKiBzb3VyY2U7CisgIC8vIEhhbmRsZSBvZiB0aGUgYXVkaW8gZGV2aWNlCisgIHN0cnVjdCBz aW9faGRsKiBoZGw7CisgIC8vIEN1cnJlbnQgc3RhdGUgb2YgdGhlIHN0cmVhbQorICBlbnVtIFN0 cmVhbVN0YXRlIHN0YXRlOworICAvLyBIaWdoIHByaW9yaXR5IHRocmVhZCBydW5uaW5nIFRocmVh ZExvb3AoKQorICBwdGhyZWFkX3QgdGhyZWFkOworICAvLyBQcm90ZWN0cyB2b2wsIHZvbHBlbmRp bmcgYW5kIGh3X2RlbGF5CisgIHB0aHJlYWRfbXV0ZXhfdCBtdXRleDsKKyAgLy8gQ3VycmVudCB2 b2x1bWUgaW4gdGhlIDAuLlNJT19NQVhWT0wgcmFuZ2UKKyAgaW50IHZvbDsKKyAgLy8gU2V0IHRv IDEgaWYgdm9sdW1lcyBtdXN0IGJlIHJlZnJlc2hlZCBpbiB0aGUgcmVhbHRpbWUgdGhyZWFkCisg IGludCB2b2xwZW5kaW5nOworICAvLyBOdW1iZXIgb2YgZnJhbWVzIGJ1ZmZlcmVkIGluIHRoZSBo YXJkd2FyZQorICBpbnQgaHdfZGVsYXk7CisgIC8vIFRlbXBvcmFyeSBidWZmZXIgd2hlcmUgZGF0 YSBpcyBzdG9yZWQgc25kaW8tY29tcGF0aWJsZSBmb3JtYXQKKyAgY2hhciogYnVmZmVyOworCisg IERJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTihTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKTsKK307CisK K30gIC8vIG5hbWVzcGFjZSBtZWRpYQorCisjZW5kaWYgIC8vIE1FRElBX0FVRElPX1NORElPX1NO RElPX09VVFBVVF9IXwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvc25kaW8t cGF0Y2hlcy9tZWRpYV9hdWRpb19saW51eF9hdWRpb19tYW5hZ2VyX2xpbnV4LmNjLnBhdGNoIGIv c3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvc25kaW8tcGF0Y2hlcy9tZWRpYV9hdWRpb19saW51eF9h dWRpb19tYW5hZ2VyX2xpbnV4LmNjLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwLi5jZjhlODFiMTFkNgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ry b245L2ZpbGVzL3NuZGlvLXBhdGNoZXMvbWVkaWFfYXVkaW9fbGludXhfYXVkaW9fbWFuYWdlcl9s aW51eC5jYy5wYXRjaApAQCAtMCwwICsxLDQzIEBACitkaWZmIC0tZ2l0IGEvY2hyb21pdW0vbWVk aWEvYXVkaW8vbGludXgvYXVkaW9fbWFuYWdlcl9saW51eC5jYyBiL2Nocm9taXVtL21lZGlhL2F1 ZGlvL2xpbnV4L2F1ZGlvX21hbmFnZXJfbGludXguY2MKK2luZGV4IDVkNzAzNTQ5MzcyLi45ZTYw YjQwYzc0OSAxMDA2NDQKKy0tLSBtZWRpYS9hdWRpby9saW51eC9hdWRpb19tYW5hZ2VyX2xpbnV4 LmNjCisrKysgbWVkaWEvYXVkaW8vbGludXgvYXVkaW9fbWFuYWdlcl9saW51eC5jYworQEAgLTIw LDYgKzIwLDEwIEBACisgI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL3B1bHNlL2F1ZGlvX21hbmFnZXJf cHVsc2UuaCIKKyAjaW5jbHVkZSAibWVkaWEvYXVkaW8vcHVsc2UvcHVsc2VfdXRpbC5oIgorICNl bmRpZgorKyNpZiBkZWZpbmVkKFVTRV9TTkRJTykKKysjaW5jbHVkZSA8c25kaW8uaD4KKysjaW5j bHVkZSAibWVkaWEvYXVkaW8vb3BlbmJzZC9hdWRpb19tYW5hZ2VyX29wZW5ic2QuaCIKKysjZW5k aWYKKyAKKyBuYW1lc3BhY2UgbWVkaWEgeworIAorQEAgLTI3LDcgKzMxLDggQEAgZW51bSBMaW51 eEF1ZGlvSU8geworICAga1B1bHNlLAorICAga0Fsc2EsCisgICBrQ3JhcywKKy0gIGtBdWRpb0lP TWF4ID0ga0NyYXMgIC8vIE11c3QgYWx3YXlzIGJlIGVxdWFsIHRvIGxhcmdlc3QgbG9nZ2VkIGVu dHJ5LgorKyAga1NuZGlvLAorKyAga0F1ZGlvSU9NYXggPSBrU25kaW8gIC8vIE11c3QgYWx3YXlz IGJlIGVxdWFsIHRvIGxhcmdlc3QgbG9nZ2VkIGVudHJ5LgorIH07CisgCisgc3RkOjp1bmlxdWVf cHRyPG1lZGlhOjpBdWRpb01hbmFnZXI+IENyZWF0ZUF1ZGlvTWFuYWdlcigKK0BAIC00MSw2ICs0 NiwxNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8bWVkaWE6OkF1ZGlvTWFuYWdlcj4gQ3JlYXRlQXVkaW9N YW5hZ2VyKAorICAgfQorICNlbmRpZgorIAorKyNpZiBkZWZpbmVkKFVTRV9TTkRJTykKKysgIHN0 cnVjdCBzaW9faGRsICogaGRsID0gTlVMTDsKKysgIGlmICgoaGRsPXNpb19vcGVuKFNJT19ERVZB TlksIFNJT19QTEFZLCAxKSkgIT0gTlVMTCkgeworKyAgICBzaW9fY2xvc2UoaGRsKTsKKysgICAg VU1BX0hJU1RPR1JBTV9FTlVNRVJBVElPTigiTWVkaWEuTGludXhBdWRpb0lPIiwga1NuZGlvLCBr QXVkaW9JT01heCArMSk7CisrICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEF1ZGlvTWFuYWdl ck9wZW5CU0Q+KHN0ZDo6bW92ZShhdWRpb190aHJlYWQpLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXVkaW9fbG9nX2ZhY3RvcnkpOworKyAgfQorKyAg RFZMT0coMSkgPDwgIlNuZGlvIGlzIG5vdCBhdmFpbGFibGUgb24gdGhlIE9TIjsKKysjZW5kaWYK KysKKyAjaWYgZGVmaW5lZChVU0VfUFVMU0VBVURJTykKKyAgIHBhX3RocmVhZGVkX21haW5sb29w KiBwYV9tYWlubG9vcCA9IG51bGxwdHI7CisgICBwYV9jb250ZXh0KiBwYV9jb250ZXh0ID0gbnVs bHB0cjsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3NuZGlvLXBhdGNoZXMv c3JjXzNyZHBhcnR5X2Nocm9taXVtX21lZGlhX0JVSUxELmduLnBhdGNoIGIvc3JjcGtncy9lbGVj dHJvbjkvZmlsZXMvc25kaW8tcGF0Y2hlcy9zcmNfM3JkcGFydHlfY2hyb21pdW1fbWVkaWFfQlVJ TEQuZ24ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmVjNjA0 MDAyNjY4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvc25kaW8t cGF0Y2hlcy9zcmNfM3JkcGFydHlfY2hyb21pdW1fbWVkaWFfQlVJTEQuZ24ucGF0Y2gKQEAgLTAs MCArMSwxMiBAQAorLS0tIG1lZGlhL0JVSUxELmduCTIwMjAtMDMtMjQgMTA6MTY6MzAuMDAwMDAw MDAwICswMTAwCisrKysgLQkyMDIwLTA0LTA2IDE0OjMyOjI3Ljk2MDgxNzUxMyArMDIwMAorQEAg LTY1LDYgKzY1LDkgQEAKKyAgIGlmICh1c2VfY3JhcykgeworICAgICBkZWZpbmVzICs9IFsgIlVT RV9DUkFTIiBdCisgICB9CisrICBpZiAodXNlX3NuZGlvKSB7CisrICAgIGRlZmluZXMgKz0gWyAi VVNFX1NORElPIiBdCisrICB9CisgfQorIAorICMgSW50ZXJuYWwgZ3JvdXBpbmcgb2YgdGhlIGNv bmZpZ3MgbmVjZXNzYXJ5IHRvIHN1cHBvcnQgc3ViLWZvbGRlcnMgaGF2aW5nIHRoZWlyCmRpZmYg LS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9zbmRpby1wYXRjaGVzL3NyY18zcmRwYXJ0 eV9jaHJvbWl1bV9tZWRpYV9hdWRpb19CVUlMRC5nbi5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb245 L2ZpbGVzL3NuZGlvLXBhdGNoZXMvc3JjXzNyZHBhcnR5X2Nocm9taXVtX21lZGlhX2F1ZGlvX0JV SUxELmduLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jODU2 ZGUwYmYyZQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb245L2ZpbGVzL3NuZGlv LXBhdGNoZXMvc3JjXzNyZHBhcnR5X2Nocm9taXVtX21lZGlhX2F1ZGlvX0JVSUxELmduLnBhdGNo CkBAIC0wLDAgKzEsMjMgQEAKKy0tLSBtZWRpYS9hdWRpby9CVUlMRC5nbgkyMDIwLTAzLTI0IDEw OjE2OjMwLjAwMDAwMDAwMCArMDEwMAorKysrIC0JMjAyMC0wNC0wNiAxNDozMToyOC44NzE0NTAy MTcgKzAyMDAKK0BAIC0yMzIsOSArMjMyLDE5IEBACisgICAgIGRlcHMgKz0gWyAiLy9tZWRpYS9i YXNlL2FuZHJvaWQ6bWVkaWFfam5pX2hlYWRlcnMiIF0KKyAgIH0KKyAKKy0gIGlmIChpc19saW51 eCkgeworKyAgaWYgKGlzX2xpbnV4KSB7CisgICAgIHNvdXJjZXMgKz0gWyAibGludXgvYXVkaW9f bWFuYWdlcl9saW51eC5jYyIgXQorICAgfQorKyAgaWYgKHVzZV9zbmRpbykgeworKyAgICBsaWJz ICs9IFsgInNuZGlvIiBdCisrICAgIHNvdXJjZXMgKz0gWworKyAgICAgICJvcGVuYnNkL2F1ZGlv X21hbmFnZXJfb3BlbmJzZC5jYyIsCisrICAgICAgInNuZGlvL3NuZGlvX2lucHV0LmNjIiwKKysg ICAgICAic25kaW8vc25kaW9faW5wdXQuaCIsCisrICAgICAgInNuZGlvL3NuZGlvX291dHB1dC5j YyIsCisrICAgICAgInNuZGlvL3NuZGlvX291dHB1dC5oIgorKyAgIF0KKysgfQorIAorICAgaWYg KHVzZV9hbHNhKSB7CisgICAgIGxpYnMgKz0gWyAiYXNvdW5kIiBdCmRpZmYgLS1naXQgYS9zcmNw a2dzL2VsZWN0cm9uOS9maWxlcy9zbmRpby1wYXRjaGVzL3NyY18zcmRwYXJ0eV9jaHJvbWl1bV9t ZWRpYV9tZWRpYV9fb3B0aW9ucy5nbmkucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uOS9maWxlcy9z bmRpby1wYXRjaGVzL3NyY18zcmRwYXJ0eV9jaHJvbWl1bV9tZWRpYV9tZWRpYV9fb3B0aW9ucy5n bmkucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjE0ODA3ZDhl MWQzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjkvZmlsZXMvc25kaW8tcGF0 Y2hlcy9zcmNfM3JkcGFydHlfY2hyb21pdW1fbWVkaWFfbWVkaWFfX29wdGlvbnMuZ25pLnBhdGNo CkBAIC0wLDAgKzEsMTIgQEAKKy0tLSBtZWRpYS9tZWRpYV9vcHRpb25zLmduaQkyMDIwLTAzLTI0 IDEwOjE2OjMwLjAwMDAwMDAwMCArMDEwMAorKysrIC0JMjAyMC0wNC0wNiAxNDoyOToyMi45NTg2 MzA3ODMgKzAyMDAKK0BAIC0xMTQsNiArMTE0LDkgQEAKKyAgICMgRW5hYmxlcyBydW50aW1lIHNl bGVjdGlvbiBvZiBBTFNBIGxpYnJhcnkgZm9yIGF1ZGlvLgorICAgdXNlX2Fsc2EgPSBmYWxzZQor IAorKyAgIyBFbmFibGVzIHJ1bnRpbWUgc2VsZWN0aW9uIG9mIHNuZGlvIGxpYnJhcnkgZm9yIGF1 ZGlvLgorKyAgdXNlX3NuZGlvID0gZmFsc2UKKysKKyAgICMgQWxzYSBzaG91bGQgYmUgdXNlZCBv biBub24tQW5kcm9pZCwgbm9uLU1hYyBQT1NJWCBzeXN0ZW1zLgorICAgIyBBbHNhIHNob3VsZCBi ZSB1c2VkIG9uIGRlc2t0b3AgQ2hyb21lY2FzdCBhbmQgYXVkaW8tb25seSBDaHJvbWVjYXN0IGJ1 aWxkcy4KKyAgIGlmIChpc19wb3NpeCAmJiAhaXNfYW5kcm9pZCAmJiAhaXNfbWFjICYmCmRpZmYg LS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uOS90ZW1wbGF0ZSBiL3NyY3BrZ3MvZWxlY3Ryb245L3Rl bXBsYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wNTM5MzRiZThm NAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb245L3RlbXBsYXRlCkBAIC0wLDAg KzEsMzU0IEBACisjIFRlbXBsYXRlIGZpbGUgZm9yICdlbGVjdHJvbjknCitwa2duYW1lPWVsZWN0 cm9uOQordmVyc2lvbj05LjIuMQorX25vZGV2ZXI9MTIuMTQuMQorX2Nocm9taXVtdmVyPTgzLjAu NDEwMy4xMTkKK3JldmlzaW9uPTEKK2FyY2hzPSJ4ODZfNjQqIGk2ODYqIGFhcmNoNjQqIgorYnVp bGRfd3Jrc3JjPSJzcmMiCitjcmVhdGVfd3Jrc3JjPXllcworaG9zdG1ha2VkZXBlbmRzPSIkKHZv cHRfaWYgY2xhbmcgY2xhbmcpIHlhc20gcHl0aG9uIHBrZ2NvbmYgcGVybCBncGVyZiBiaXNvbiBu aW5qYSBub2RlanMgaHdpZHMKKyBsaWJ3ZWJwLWRldmVsIGZyZWV0eXBlLWRldmVsIGhhcmZidXp6 LWRldmVsIGxpYnBuZy1kZXZlbCBuc3MtZGV2ZWwgd2hpY2ggZ2l0IGxpYmV2ZW50LWRldmVsCisg cGNpdXRpbHMtZGV2ZWwgbGliYXRvbWljLWRldmVsIGZmbXBlZy1kZXZlbCBsaWJ4bWwyLWRldmVs IGxpYmdsaWItZGV2ZWwgeWFybiBvcGVuamRrIGxpYnhzbHQtZGV2ZWwKKyBvcHVzLWRldmVsIGxp YlhjdXJzb3ItZGV2ZWwgbGliWGNvbXBvc2l0ZS1kZXZlbCBsaWJYdHN0LWRldmVsIGxpYlhyYW5k ci1kZXZlbCBsaWJYU2NyblNhdmVyLWRldmVsCisgYWxzYS1saWItZGV2ZWwgcmUyLWRldmVsIHNu YXBweS1kZXZlbCBtaXQta3JiNS1kZXZlbCAkKHZvcHRfaWYgcHVsc2VhdWRpbyBwdWxzZWF1ZGlv LWRldmVsKQorICQodm9wdF9pZiBzbmRpbyBzbmRpby1kZXZlbCkiCittYWtlZGVwZW5kcz0ibGli cG5nLWRldmVsIGd0aystZGV2ZWwgZ3RrKzMtZGV2ZWwgbnNzLWRldmVsIHBjaXV0aWxzLWRldmVs CisgbGliWGktZGV2ZWwgbGliZ2NyeXB0LWRldmVsIGxpYmdub21lLWtleXJpbmctZGV2ZWwgY3Vw cy1kZXZlbCBlbGZ1dGlscy1kZXZlbAorIGxpYlhjb21wb3NpdGUtZGV2ZWwgc3BlZWNoLWRpc3Bh dGNoZXItZGV2ZWwgbGliWHJhbmRyLWRldmVsIG1pdC1rcmI1LWRldmVsCisgbGliWFNjcm5TYXZl ci1kZXZlbCBhbHNhLWxpYi1kZXZlbCBzbmFwcHktZGV2ZWwgbGliZHJtLWRldmVsCisgbGlieG1s Mi1kZXZlbCBsaWJ4c2x0LWRldmVsICQodm9wdF9pZiBwdWxzZWF1ZGlvIHB1bHNlYXVkaW8tZGV2 ZWwpIGxpYmV4aWYtZGV2ZWwKKyBsaWJYY3Vyc29yLWRldmVsIGxpYmZsYWMtZGV2ZWwgc3BlZXgt ZGV2ZWwgbGlibXRwLWRldmVsIGxpYndlYnAtZGV2ZWwKKyBsaWJqcGVnLXR1cmJvLWRldmVsIGxp YmV2ZW50LWRldmVsIGpzb24tYy1kZXZlbCBoYXJmYnV6ei1kZXZlbAorIG1pbml6aXAtZGV2ZWwg anNvbmNwcC1kZXZlbCB6bGliLWRldmVsIGxpYmNhcC1kZXZlbCBsaWJYZGFtYWdlLWRldmVsCisg cmUyLWRldmVsIGZvbnRjb25maWctZGV2ZWwgZnJlZXR5cGUtZGV2ZWwgb3B1cy1kZXZlbCBsaWJh dG9taWMtZGV2ZWwKKyAkKHZvcHRfaWYgc25kaW8gc25kaW8tZGV2ZWwpIGZmbXBlZy1kZXZlbCBs aWJ2YS1kZXZlbCBsaWJ1di1kZXZlbCBjLWFyZXMtZGV2ZWwgbGlibm90aWZ5LWRldmVsIgorc2hv cnRfZGVzYz0iQ3Jvc3MgcGxhdGZvcm0gYXBwbGljYXRpb24gZGV2ZWxvcG1lbnQgZnJhbWV3b3Jr IGJhc2VkIG9uIHdlYiB0ZWNobm9sb2dpZXMiCittYWludGFpbmVyPSJKb2huIDxtZUBqb2hubnlu YXRvci5kZXY+IgorbGljZW5zZT0iQlNELTMtQ2xhdXNlIgoraG9tZXBhZ2U9Imh0dHBzOi8vZWxl Y3Ryb25qcy5vcmciCitkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS9lbGVjdHJvbi9lbGVj dHJvbi9hcmNoaXZlL3YkdmVyc2lvbi50YXIuZ3o+ZWxlY3Ryb24tJHt2ZXJzaW9ufS50YXIuZ3oK KyBodHRwczovL2NvbW1vbmRhdGFzdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Nocm9taXVtLWJyb3dz ZXItb2ZmaWNpYWwvY2hyb21pdW0tJF9jaHJvbWl1bXZlci50YXIueHoKKyBodHRwczovL2dpdGh1 Yi5jb20vbm9kZWpzL25vZGUvYXJjaGl2ZS92JF9ub2RldmVyLnRhci5nej5ub2RlLSRfbm9kZXZl ci50YXIuZ3oiCitjaGVja3N1bT0iOTFmYWU0Yzk4ZDM1MWNhYzUzZjllM2M0OTc0YzYwMmZhOTNk MGE3MzY1ZmRjZTMxY2Y4MzJkODA5NWUzN2IxMQorIDQ1MmNiYzU4ODk1YTQ2YjJiODdiYTQ1MGEz Zjg2ODk3ZGU5MmFkMDhjZTI4ZmZkYmVkNmIzZjEyMTAxZDM3ODgKKyAwMWU0YTk2MGJlM2UyNmI4 N2M1NTUwOWVlMWNiNDRhMTQ5NDZhNDE2OWQ1Y2RlYzA0NmRkMDUwNThkOTk1YjI2IgorCitub19n ZW5lcmljX3BrZ2NvbmZpZ19saW5rPXllcworbGliMzJkaXNhYmxlZD15ZXMKK25vZGVidWc9eWVz Citub3BpZT15ZXMgICMgY29udGFpbnMgdG9vbHMgdGhhdCBhcmUgbm90IFBJRSwgZW5hYmxlcyBQ SUUgaXRzZWxmCisKK2J1aWxkX29wdGlvbnM9InB1bHNlYXVkaW8gc25kaW8gY2xhbmciCitidWls ZF9vcHRpb25zX2RlZmF1bHQ9InB1bHNlYXVkaW8gc25kaW8gY2xhbmciCisKK2lmIFsgIiRidWls ZF9vcHRpb25fY2xhbmciIF07IHRoZW4KKwlub2Nyb3NzPSJObyBwcm9wZXIgc2V0dXAgZm9yIHVz aW5nIGNsYW5nIGFzIGNyb3NzIGNvbXBpbGVyIGluIHZvaWQgeWV0IgorZWxpZiBbICIke1hCUFNf VEFSR0VUX01BQ0hJTkUlJS1tdXNsfSIgPSAiYWFyY2g2NCIgXTsgdGhlbgorCWJyb2tlbj0iRmFs bHMgYXBhcnQgYXQgcnVudGltZSB3aGVuIGNvbXBpbGVkIHdpdGggZ2NjIgorZmkKKworX2J1aWxk dHlwZT1SZWxlYXNlCitfaXNfZGVidWc9ZmFsc2UKKworQ0ZMQUdTPSItV25vLXVua25vd24td2Fy bmluZy1vcHRpb24gLWZQSUMiCitDWFhGTEFHUz0iLVduby11bmtub3duLXdhcm5pbmctb3B0aW9u IC1mUElDIgorCitfYXBwbHlfcGF0Y2goKSB7CisJbG9jYWwgYXJncz0iJDEiIHBuYW1lPSIkKGJh c2VuYW1lICQyKSIKKworCWlmIFsgISAtZiAiLiR7cG5hbWV9X2RvbmUiIF07IHRoZW4KKwkJbXNn X25vcm1hbCAiJHBrZ3ZlcjogcGF0Y2hpbmc6ICR7cG5hbWV9LlxuIgorCQlwYXRjaCAtTiAkYXJn cyAtaSAkMgorCQl0b3VjaCAuJHtwbmFtZX1fZG9uZQorCWZpCit9CisKK19nZXRfY2hyb21pdW1f YXJjaCgpIHsKKwljYXNlICIkMSIgaW4KKwkJeDg2XzY0KikgZWNobyB4NjQgOzsKKwkJaTY4Niop IGVjaG8geDg2IDs7CisJCWFybSopIGVjaG8gYXJtIDs7CisJCWFhcmNoNjQqKSBlY2hvIGFybTY0 IDs7CisJCXBwYzY0KikgZWNobyBwcGM2NCA7OworCQlwcGMqKSBlY2hvIHBwYyA7OworCQltaXBz ZWwqKSBlY2hvIG1pcHNlbCA7OworCQltaXBzKikgZWNobyBtaXBzIDs7CisJCSopIG1zZ19lcnJv ciAiJHBrZ3ZlcjogY2Fubm90IGJlIGNvbXBpbGVkIGZvciAke1hCUFNfVEFSR0VUX01BQ0hJTkV9 LlxuIiA7OworCWVzYWMKK30KKworcG9zdF9leHRyYWN0KCkgeworCWxuIC1zIGNocm9taXVtLSRf Y2hyb21pdW12ZXIgc3JjCisJbWtkaXIgLXAgc3JjL3RoaXJkX3BhcnR5LworCWxuIC1zIC4uLy4u L25vZGUtJF9ub2RldmVyIHNyYy90aGlyZF9wYXJ0eS9lbGVjdHJvbl9ub2RlCisJbG4gLXMgLi4v ZWxlY3Ryb24tJHt2ZXJzaW9ufSBzcmMvZWxlY3Ryb24KKworfQorcG9zdF9wYXRjaCgpIHsKKwlj ZCAkd3Jrc3JjCisJZm9yIHggaW4gJEZJTEVTRElSL3BhdGNoZXMvKjsgZG8KKwkJY2FzZSAiJHt4 IyMqL30iIGluCisJCQllbGVjdHJvbioucGF0Y2gpCisJCQkJY2Qgc3JjL2VsZWN0cm9uCisJCQkJ X2FwcGx5X3BhdGNoIC1wMSAiJHgiCisJCQkJY2QgIiR3cmtzcmMiOzsKKwkJZXNhYworCWRvbmUK KworCSMgU2lnaCwgZWxlY3Ryb24gdXNlcyBnaXQgYW0uLi4KKwlpZiBbICEgLWYgIi5lbGVjdHJv bl9wYXRjaGVzX2RvbmUiIF07IHRoZW4KKwlweXRob24yIHNyYy9lbGVjdHJvbi9zY3JpcHQvbGlz dF9wYXRjaF90YXJnZXRzLnB5IHNyYy9lbGVjdHJvbi9wYXRjaGVzL2NvbmZpZy5qc29uIHwgd2hp bGUgcmVhZCAtciByZXBvcGF0aDsgZG8KKwkJY2QgIiR3cmtzcmMiLyIkcmVwb3BhdGgiCisJCWdp dCBpbml0IC1xCisJCWdpdCBjb25maWcgImdjLmF1dG8iIDAKKwkJaWYgWyAiJHJlcG9wYXRoIiAh PSAic3JjIiBdOyB0aGVuCisJCQllY2hvICIvJHtyZXBvcGF0aCNzcmMvfSIgPj4gIiR3cmtzcmMv JGJ1aWxkX3dya3NyYy8uZ2l0aWdub3JlIgorCQlmaQorCQlnaXQgYWRkIC4KKwkJZ2l0IC1jICd1 c2VyLm5hbWU9RWxlY3Ryb24gYnVpbGQnIC1jICd1c2VyLmVtYWlsPWVsZWN0cm9uQGVidWlsZCcg XAorCQkJY29tbWl0IC1xIC1tICIuIiB8fCB0cnVlCisJZG9uZQorCWNkICR3cmtzcmMKKwlweXRo b24yIHNyYy9lbGVjdHJvbi9zY3JpcHQvYXBwbHlfYWxsX3BhdGNoZXMucHkgc3JjL2VsZWN0cm9u L3BhdGNoZXMvY29uZmlnLmpzb24KKwl0b3VjaCAuZWxlY3Ryb25fcGF0Y2hlc19kb25lCisJZmkK KworCWZvciB4IGluICRGSUxFU0RJUi9wYXRjaGVzLyo7IGRvCisJCWNhc2UgIiR7eCMjKi99IiBp bgorCQkJY2hyb21pdW0qLnBhdGNoKQorCQkJCWNkIHNyYworCQkJCV9hcHBseV9wYXRjaCAtcDEg IiR4IgorCQkJCWNkICIkd3Jrc3JjIjs7CisJCWVzYWMKKwlkb25lCisKKwlpZiBbICIkWEJQU19U QVJHRVRfTElCQyIgPSAibXVzbCIgXTsgdGhlbgorCWZvciB4IGluICRGSUxFU0RJUi9tdXNsLXBh dGNoZXMvKjsgZG8KKwkJY2FzZSAiJHt4IyMqL30iIGluCisJCQljaHJvbWl1bSoucGF0Y2gpCisJ CQkJY2Qgc3JjCisJCQkJX2FwcGx5X3BhdGNoIC1wMSAiJHgiCisJCQkJY2QgIiR3cmtzcmMiOzsK KwkJCWVsZWN0cm9uKi5wYXRjaCkKKwkJCQljZCBzcmMvZWxlY3Ryb24KKwkJCQlfYXBwbHlfcGF0 Y2ggLXAxICIkeCIKKwkJCQljZCAiJHdya3NyYyI7OworCQllc2FjCisJZG9uZQorCWZpCisJaWYg WyAiJGJ1aWxkX29wdGlvbl9zbmRpbyIgXTsgdGhlbgorCQlta2RpciAtcCAke3dya3NyY30vJHti dWlsZF93cmtzcmN9L21lZGlhL2F1ZGlvL3tzbmRpbyxvcGVuYnNkfQorCQljcCAke0ZJTEVTRElS fS9zbmRpby1maWxlcy9zbmRpb18qcHV0LiogXAorCQkJJHt3cmtzcmN9LyR7YnVpbGRfd3Jrc3Jj fS9tZWRpYS9hdWRpby9zbmRpbworCQljcCAke0ZJTEVTRElSfS9zbmRpby1maWxlcy9hdWRpb19t YW5hZ2VyX29wZW5ic2QuKiBcCisJCQkke3dya3NyY30vJHtidWlsZF93cmtzcmN9L21lZGlhL2F1 ZGlvL29wZW5ic2QKKwkJZm9yIGYgaW4gIiR7RklMRVNESVJ9Ii9zbmRpby1wYXRjaGVzLyoucGF0 Y2g7IGRvCisJCQljZCBzcmMKKwkJCV9hcHBseV9wYXRjaCAtcDAgIiRmIgorCQkJY2QgIiR3cmtz cmMiCisJCWRvbmUKKwlmaQorfQorCitwcmVfY29uZmlndXJlKCkgeworCWNkICIkd3Jrc3JjLyRi dWlsZF93cmtzcmMiCisKKwkjIGh0dHBzOi8vZ3JvdXBzLmdvb2dsZS5jb20vYS9jaHJvbWl1bS5v cmcvZC90b3BpYy9jaHJvbWl1bS1wYWNrYWdlcnMvOUpYMU4ybmY0UFUvZGlzY3Vzc2lvbgorCXRv dWNoIGNocm9tZS90ZXN0L2RhdGEvd2VidWkvaTE4bl9wcm9jZXNzX2Nzc190ZXN0Lmh0bWwKKwkj IFVzZSB0aGUgZmlsZSBhdCBydW4gdGltZSBpbnN0ZWFkIG9mIGVmZmVjdGl2ZWx5IGNvbXBpbGlu ZyBpdCBpbgorCXNlZCAnc3wvL3RoaXJkX3BhcnR5L3VzYl9pZHMvdXNiLmlkc3wvdXNyL3NoYXJl L2h3ZGF0YS91c2IuaWRzfGcnIFwKKwkJLWkgc2VydmljZXMvZGV2aWNlL3B1YmxpYy9jcHAvdXNi L0JVSUxELmduCisKKwlta2RpciAtcCB0aGlyZF9wYXJ0eS9ub2RlL2xpbnV4L25vZGUtbGludXgt eDY0L2JpbgorCWxuIC1zIC91c3IvYmluL25vZGUgdGhpcmRfcGFydHkvbm9kZS9saW51eC9ub2Rl LWxpbnV4LXg2NC9iaW4vCisKKwkjIHJldXNhYmxlIHN5c3RlbSBsaWJyYXJ5IHNldHRpbmdzCisJ bG9jYWwgdXNlX3N5c3RlbT0iCisJCWZmbXBlZworCQlmbGFjCisJCWZvbnRjb25maWcKKwkJZnJl ZXR5cGUKKwkJaGFyZmJ1enotbmcKKwkJbGliZHJtCisJCWxpYmV2ZW50CisJCWxpYmpwZWcKKwkJ bGlicG5nCisJCWxpYndlYnAKKwkJbGlieG1sCisJCWxpYnhzbHQKKwkJb3B1cworCQlyZTIKKwkJ c25hcHB5CisJCXlhc20KKwkJIgorCWZvciBfbGliIGluICR1c2Vfc3lzdGVtIGxpYmpwZWdfdHVy Ym87IGRvCisJCW1zZ19ub3JtYWwgIlJlbW92aW5nIGJ1aWxkc2NyaXB0cyBmb3Igc3lzdGVtIHBy b3ZpZGVkICRfbGliXG4iCisJCWZpbmQgLXR5cGUgZiAtcGF0aCAiKnRoaXJkX3BhcnR5LyRfbGli LyoiIFwKKwkJCVwhIC1wYXRoICIqdGhpcmRfcGFydHkvJF9saWIvY2hyb21pdW0vKiIgXAorCQkJ XCEgLXBhdGggIip0aGlyZF9wYXJ0eS8kX2xpYi9nb29nbGUvKiIgXAorCQkJXCEgLXBhdGggJy4v YmFzZS90aGlyZF9wYXJ0eS9pY3UvKicgXAorCQkJXCEgLXBhdGggJy4vdGhpcmRfcGFydHkvcGRm aXVtL3RoaXJkX3BhcnR5L2ZyZWV0eXBlL2luY2x1ZGUvcHN0YWJsZXMuaCcgXAorCQkJXCEgLXBh dGggJy4vdGhpcmRfcGFydHkvaGFyZmJ1enotbmcvdXRpbHMvaGJfc2NvcGVkLmgnIFwKKwkJCVwh IC1wYXRoICcuL3RoaXJkX3BhcnR5L3lhc20vcnVuX3lhc20ucHknIFwKKwkJCVwhIC1yZWdleCAn LipcLlwoZ25cfGduaVx8aXNvbGF0ZVx8cHlcKScgXAorCQkJLWRlbGV0ZQorCWRvbmUKKworCisJ bXNnX25vcm1hbCAiUmVwbGFjaW5nIGduIGZpbGVzXG4iCisJcHl0aG9uMiBidWlsZC9saW51eC91 bmJ1bmRsZS9yZXBsYWNlX2duX2ZpbGVzLnB5IC0tc3lzdGVtLWxpYnJhcmllcyBcCisJCSR1c2Vf c3lzdGVtCisJdGhpcmRfcGFydHkvbGliYWRkcmVzc2lucHV0L2Nocm9taXVtL3Rvb2xzL3VwZGF0 ZS1zdHJpbmdzLnB5Cit9CisKK2RvX2NvbmZpZ3VyZSgpIHsKKwlsb2NhbCB0YXJnZXRfYXJjaD0i JChfZ2V0X2Nocm9taXVtX2FyY2ggJHtYQlBTX1RBUkdFVF9NQUNISU5FfSkiCisJbG9jYWwgaG9z dF9hcmNoPSIkKF9nZXRfY2hyb21pdW1fYXJjaCAke1hCUFNfTUFDSElORX0pIgorCSMgdGhlIGJ1 aWxkIHN5c3RlbSB3aWxsIHNldCBtYXJjaCBmb3IgdXNlLCBhZGRpbmcgaXQgdG8gY2ZsYWdzIHdp bGwgYnJlYWsgYnVpbGRzCisJZXhwb3J0IENYWEZMQUdTPSQoIHNob3B0IC1zIGV4dGdsb2I7IGVj aG8gJHtDWFhGTEFHUy8tbWFyY2g9KihbXiBdKX0gKQorCWV4cG9ydCBDRkxBR1M9JCggc2hvcHQg LXMgZXh0Z2xvYjsgZWNobyAke0NGTEFHUy8tbWFyY2g9KihbXiBdKX0gKQorCWxvY2FsIGNvbmY9 KCkKKwljZCB0aGlyZF9wYXJ0eS9lbGVjdHJvbl9ub2RlCisJaWYgWyAiJENST1NTX0JVSUxEIiBd OyB0aGVuCisJCWNvbmZfYXJncz0iIC0tZGVzdC1jcHU9JHt0YXJnZXRfYXJjaH0gLS1jcm9zcy1j b21waWxpbmciCisJZmkKKwkuL2NvbmZpZ3VyZSAtLXByZWZpeD0vdXNyIFwKKwkJLS1zaGFyZWQt emxpYiBcCisJCS0tc2hhcmVkLWxpYnV2IFwKKwkJLS1zaGFyZWQtb3BlbnNzbCBcCisJCS0tc2hh cmVkLWNhcmVzIFwKKwkJLS1vcGVuc3NsLXVzZS1kZWYtY2Etc3RvcmUgXAorCQktLXdpdGhvdXQt bnBtIFwKKwkJLS13aXRob3V0LWR0cmFjZSBcCisJCS0td2l0aG91dC1idW5kbGVkLXY4IFwKKwkJ JHtjb25mX2FyZ3N9CisKKwljZCAiJHdya3NyYy8kYnVpbGRfd3Jrc3JjIi9lbGVjdHJvbgorCXlh cm4gaW5zdGFsbAorCWNkICIkd3Jrc3JjLyRidWlsZF93cmtzcmMiCisKKwlpZiBbICIkYnVpbGRf b3B0aW9uX2NsYW5nIiBdOyB0aGVuCisJCWV4cG9ydCBDQz1jbGFuZworCQlleHBvcnQgQ1hYPWNs YW5nKysKKwkJZXhwb3J0IEhPU1RfQ0M9Y2xhbmcKKwkJZXhwb3J0IEhPU1RfQ1hYPWNsYW5nKysK KwllbHNlCisJCWV4cG9ydCBDWFhGTEFHUz0iJENYWEZMQUdTIC1mcGVybWlzc2l2ZSIKKwkJZXhw b3J0IEJVSUxEX0NYWEZMQUdTPSIkQlVJTERfQ1hYRkxBR1MgLWZwZXJtaXNzaXZlIgorCQlleHBv cnQgQlVJTERfQVI9IiRBUl9ob3N0IgorCQlleHBvcnQgQlVJTERfTk09IiROTV9ob3N0IgorCWZp CisKKwkjIEdvb2dsZSBBUEkga2V5cyAoc2VlIGh0dHA6Ly93d3cuY2hyb21pdW0ub3JnL2RldmVs b3BlcnMvaG93LXRvcy9hcGkta2V5cykKKwkjIE5vdGU6IFRoZXNlIGFyZSBmb3IgVm9pZCBMaW51 eCB1c2UgT05MWS4KKwljb25mKz0oCisJCSdnb29nbGVfYXBpX2tleT0iQUl6YVN5QTlnV2F6S2FI YU5JUFBnMmhyTWo2X1pTRzhBRm1xNzM4IicKKwkJJ2dvb2dsZV9kZWZhdWx0X2NsaWVudF9pZD0i MTI2NjU5MTQ5NDIzLWhvbzZpY2tiazNwMXUycWpzZHNwMGRkY2l1cmZ2YjR0LmFwcHMuZ29vZ2xl dXNlcmNvbnRlbnQuY29tIicKKwkJJ2dvb2dsZV9kZWZhdWx0X2NsaWVudF9zZWNyZXQ9Il9vekl4 MkQtREttX3NlXzJOUHdWNGw1YiInCisJKQorCisJY29uZis9KAorCQknYmxpbmtfc3ltYm9sX2xl dmVsPTAnCisJCSdjbGFuZ191c2VfY2hyb21lX3BsdWdpbnM9ZmFsc2UnCisJCSdjbG9zdXJlX2Nv bXBpbGU9dHJ1ZScKKwkJJ2N1c3RvbV90b29sY2hhaW49Ii8vYnVpbGQvdG9vbGNoYWluL2xpbnV4 L3VuYnVuZGxlOmRlZmF1bHQiJworCSkKKwlpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KKwkJ Y29uZis9KAorCQkJJ2hvc3RfdG9vbGNoYWluPSIvL2J1aWxkL3Rvb2xjaGFpbi9saW51eC91bmJ1 bmRsZTpob3N0IicKKwkJCSd2OF9zbmFwc2hvdF90b29sY2hhaW49Ii8vYnVpbGQvdG9vbGNoYWlu L2xpbnV4L3VuYnVuZGxlOmhvc3QiJworCQkJImhvc3RfcGtnX2NvbmZpZz1cIiRQS0dfQ09ORklH X0ZPUl9CVUlMRFwiIgorCQkJInBrZ19jb25maWc9XCIkUEtHX0NPTkZJR1wiIgorCQkpCisJZWxz ZQorCQljb25mKz0oCisJCQknaG9zdF90b29sY2hhaW49Ii8vYnVpbGQvdG9vbGNoYWluL2xpbnV4 L3VuYnVuZGxlOmRlZmF1bHQiJworCQkJJ3Y4X3NuYXBzaG90X3Rvb2xjaGFpbj0iLy9idWlsZC90 b29sY2hhaW4vbGludXgvdW5idW5kbGU6ZGVmYXVsdCInCisJCSkKKwlmaQorCWlmIFsgIiRidWls ZF9vcHRpb25fc25kaW8iIF07IHRoZW4KKwkJY29uZis9KAorCQkJJ3VzZV9zbmRpbz10cnVlJwor CQkpCisJZmkKKwljb25mKz0oCisJCSdlbmFibGVfaGFuZ291dF9zZXJ2aWNlc19leHRlbnNpb249 dHJ1ZScKKwkJJ2VuYWJsZV9uYWNsX25vbnNmaT1mYWxzZScKKwkJJ2VuYWJsZV9uYWNsPWZhbHNl JworCQknZW5hYmxlX3ByZWNvbXBpbGVkX2hlYWRlcnM9ZmFsc2UnCisJCSdmYXRhbF9saW5rZXJf d2FybmluZ3M9ZmFsc2UnCisJCSdmZm1wZWdfYnJhbmRpbmc9IkNocm9tZSInCisJCSdmaWVsZHRy aWFsX3Rlc3RpbmdfbGlrZV9vZmZpY2lhbF9idWlsZD10cnVlJworCQknZ29sZF9wYXRoPSIvdXNy L2Jpbi9sZC5nb2xkIicKKwkJJ2ljdV91c2VfZGF0YV9maWxlPXRydWUnCisJCSJpc19jbGFuZz0k KHZvcHRfaWYgY2xhbmcgdHJ1ZSBmYWxzZSkiCisJCSdpc19jb21wb25lbnRfYnVpbGQ9ZmFsc2Un CisJCSJpc19kZWJ1Zz0kX2lzX2RlYnVnIgorCQknaXNfZGVza3RvcF9saW51eD10cnVlJworCQkn bGludXhfdXNlX2J1bmRsZWRfYmludXRpbHM9ZmFsc2UnCisJCSdwcm9wcmlldGFyeV9jb2RlY3M9 dHJ1ZScKKwkJJ3N5bWJvbF9sZXZlbD0wJworCQkndHJlYXRfd2FybmluZ3NfYXNfZXJyb3JzPWZh bHNlJworCQkndXNlX2FsbG9jYXRvcl9zaGltPWZhbHNlJworCQkndXNlX2FsbG9jYXRvcj0ibm9u ZSInCisJCSd1c2VfY3Vwcz10cnVlJworCQkndXNlX2N1c3RvbV9saWJjeHg9ZmFsc2UnCisJCSd1 c2VfZ25vbWVfa2V5cmluZz1mYWxzZScKKwkJJ3VzZV9nb2xkPWZhbHNlJworCQkndXNlX2xsZD1m YWxzZScKKwkJInVzZV9wdWxzZWF1ZGlvPSQodm9wdF9pZiBwdWxzZWF1ZGlvICd0cnVlJyAnZmFs c2UnKSIKKwkJJ3VzZV9zeXNyb290PWZhbHNlJworCQkndXNlX3N5c3RlbV9oYXJmYnV6ej10cnVl JworCQkidGFyZ2V0X2NwdT1cIiR0YXJnZXRfYXJjaFwiIgorCQkiaG9zdF9jcHU9XCIkaG9zdF9h cmNoXCIiCisJCSdpbXBvcnQoIi8vZWxlY3Ryb24vYnVpbGQvYXJncy9yZWxlYXNlLmduIiknCisJ KQorCisJbXNnX25vcm1hbCAiQm9vdHN0cmFwcGluZyBHTlxuIgorCUNDPSIke0NDX0ZPUl9CVUlM RDotJENDfSIgQ1hYPSIke0NYWF9GT1JfQlVJTEQ6LSRDWFh9IiBMRD0iJHtMRF9GT1JfQlVJTEQ6 LSRMRH0iIFwKKwlDRkxBR1M9IiR7Q0ZMQUdTX0ZPUl9CVUlMRDotJENGTEFHU30iIENYWEZMQUdT PSIke0NYWEZMQUdTX0ZPUl9CVUlMRDotJENYWEZMQUdTfSIgXAorCUxERkxBR1M9IiR7WEJQU19M REZMQUdTfSIgXAorCQlweXRob24yIHRvb2xzL2duL2Jvb3RzdHJhcC9ib290c3RyYXAucHkgLXMg LXYgLS1za2lwLWdlbmVyYXRlLWJ1aWxkZmlsZXMKKworCW1zZ19ub3JtYWwgIkNvbmZpZ3VyaW5n IGJ1aWxkXG4iCisJb3V0L1JlbGVhc2UvZ24gZ2VuIG91dC8kX2J1aWxkdHlwZSAtLWFyZ3M9IiR7 Y29uZlsqXX0iCit9CisKK2RvX2J1aWxkKCkgeworCWV4cG9ydCBDWFhGTEFHUz0kKCBzaG9wdCAt cyBleHRnbG9iOyBlY2hvICR7Q1hYRkxBR1MvLW1hcmNoPSooW14gXSl9ICkKKwlleHBvcnQgQ0ZM QUdTPSQoIHNob3B0IC1zIGV4dGdsb2I7IGVjaG8gJHtDRkxBR1MvLW1hcmNoPSooW14gXSl9ICkK KwlpZiBbICIkYnVpbGRfb3B0aW9uX2NsYW5nIiBdOyB0aGVuCisJCWV4cG9ydCBDQz1jbGFuZwor CQlleHBvcnQgQ1hYPWNsYW5nKysKKwkJZXhwb3J0IEhPU1RfQ0M9Y2xhbmcKKwkJZXhwb3J0IEhP U1RfQ1hYPWNsYW5nKysKKwllbHNlCisJCWV4cG9ydCBCVUlMRF9DWFhGTEFHUz0iJEJVSUxEX0NY WEZMQUdTIC1mcGVybWlzc2l2ZSIKKwkJZXhwb3J0IENYWEZMQUdTPSIkQ1hYRkxBR1MgLWZwZXJt aXNzaXZlIgorCQlleHBvcnQgQlVJTERfQVI9IiRBUl9ob3N0IgorCQlleHBvcnQgQlVJTERfTk09 IiROTV9ob3N0IgorCWZpCisJbXNnX25vcm1hbCAiTmluamEgdHVydGxlcyBHTyFcbiIKKwluaW5q YSAke21ha2Vqb2JzfSAtQyBvdXQvJF9idWlsZHR5cGUgZWxlY3Ryb24gdGhpcmRfcGFydHkvZWxl Y3Ryb25fbm9kZTpoZWFkZXJzCisJIyBmaW5pc2ggcmVzdCBvZiB0aGUgYnVpbGQKKwlzdHJpcCAt cyBvdXQvJF9idWlsZHR5cGUvZWxlY3Ryb24KKwluaW5qYSAke21ha2Vqb2JzfSAtQyBvdXQvJF9i dWlsZHR5cGUgZWxlY3Ryb25fZGlzdF96aXAKK30KKworZG9faW5zdGFsbCgpIHsKKwl2bWtkaXIg L3Vzci9saWIvJHBrZ25hbWUKKwl2bWtkaXIgL3Vzci9pbmNsdWRlLyRwa2duYW1lCisJYnNkdGFy IC14ZiBvdXQvJF9idWlsZHR5cGUvZGlzdC56aXAgLUMgIiRERVNURElSL3Vzci9saWIvJHBrZ25h bWUiCisKKwljaG1vZCB1K3MgIiRERVNURElSL3Vzci9saWIvJHBrZ25hbWUvY2hyb21lLXNhbmRi b3giCisKKwljcCBvdXQvJF9idWlsZHR5cGUvZ2VuL25vZGVfaGVhZGVycy50YXIuZ3ogIiRERVNU RElSIi91c3IvaW5jbHVkZS8kcGtnbmFtZQorCisJdmxpY2Vuc2UgJHt3cmtzcmN9L3NyYy9MSUNF TlNFIGNocm9taXVtLkxJQ0VOU0UKKwl2bGljZW5zZSAke3dya3NyY30vc3JjL2VsZWN0cm9uL0xJ Q0VOU0UgZWxlY3Ryb24uTElDRU5TRQorCXZsaWNlbnNlICR7d3Jrc3JjfS9zcmMvdGhpcmRfcGFy dHkvZWxlY3Ryb25fbm9kZS9MSUNFTlNFIG5vZGUuTElDRU5TRQorCisJdm1rZGlyIC91c3IvYmlu CisJbG4gLXMgLi4vbGliLyRwa2duYW1lL2VsZWN0cm9uICIkREVTVERJUiIvdXNyL2Jpbi8kcGtn bmFtZQorfQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjkvdXBkYXRlIGIvc3JjcGtncy9l bGVjdHJvbjkvdXBkYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4z YWY4ZTU4YjUzNQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb245L3VwZGF0ZQpA QCAtMCwwICsxLDIgQEAKK3NpdGU9aHR0cHM6Ly93d3cuZWxlY3Ryb25qcy5vcmcvcmVsZWFzZXMv c3RhYmxlP3ZlcnNpb249JHt2ZXJzaW9uJSUuKn0KK3BhdHRlcm49J3RhZy92XEtbXGRcLl0rKD89 IiknCgpGcm9tIDE4MmY4NzJkNjAwN2ZhMmE1ZGJmODdjNTI3ZDUwZWJhNjBiYTQzODIgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4KRGF0ZTog U3VuLCAyMyBBdWcgMjAyMCAxNzoxODo1MCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMi8yXSBlbGVt ZW50LWRlc2t0b3A6IHVzZSBzeXN0ZW0gZWxlY3Ryb245CgpbY2kgc2tpcF0KLS0tCiBjb21tb24v c2hsaWJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMSAtCiBzcmNwa2dzL2Vs ZW1lbnQtZGVza3RvcC9maWxlcy9lbGVtZW50LWRlc2t0b3AgfCAgMiArKwogc3JjcGtncy9lbGVt ZW50LWRlc2t0b3AvdGVtcGxhdGUgICAgICAgICAgICAgIHwgMTYgKysrKysrKystLS0tLS0tLQog MyBmaWxlcyBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlbWVudC1kZXNrdG9wL2ZpbGVzL2VsZW1lbnQtZGVza3Rv cAoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4IGIyOGQx NThkZjgzLi43YmVhMTAwYTY2MCAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21t b24vc2hsaWJzCkBAIC0xMjMsNyArMTIzLDYgQEAgbGliR0xFU3YyLnNvIGF0b20tMS40MS4wXzEK IGxpYkdMRVN2Mi5zbyBvcGVyYS01NS4wLjI5OTQuMzdfMgogbGliR0xFU3YyLnNvIGRpc2NvcmQt MC4wLjdfMQogbGliR0xFU3YyLnNvIGtleWJhc2UtZGVza3RvcC0zLjEuMl8xCi1saWJHTEVTdjIu c28gcmlvdC1kZXNrdG9wLTAuMTcuOV8yCiBsaWJHTEVTdjIuc28gd2lyZS1kZXNrdG9wLTMuNi4y ODg1XzEKIGxpYkdMRVN2Mi5zbyBTaWduYWwtRGVza3RvcC0xLjIzLjJfMQogbGliR0xFU3YyLnNv IHNsYWNrLWRlc2t0b3AtMy40LjJfMQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVtZW50LWRlc2t0 b3AvZmlsZXMvZWxlbWVudC1kZXNrdG9wIGIvc3JjcGtncy9lbGVtZW50LWRlc2t0b3AvZmlsZXMv ZWxlbWVudC1kZXNrdG9wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5k MTZlODI1MDQ2YwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlbWVudC1kZXNrdG9wL2Zp bGVzL2VsZW1lbnQtZGVza3RvcApAQCAtMCwwICsxLDIgQEAKKyMhL2Jpbi9zaAorZXhlYyBlbGVj dHJvbjkgL3Vzci9saWIvZWxlbWVudC1kZXNrdG9wL3Jlc291cmNlcy9hcHAuYXNhciAiJEAiCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2VsZW1lbnQtZGVza3RvcC90ZW1wbGF0ZSBiL3NyY3BrZ3MvZWxl bWVudC1kZXNrdG9wL3RlbXBsYXRlCmluZGV4IDk3OTg5OTAxODg1Li43MTgxNmQ1MTMyMSAxMDA2 NDQKLS0tIGEvc3JjcGtncy9lbGVtZW50LWRlc2t0b3AvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9l bGVtZW50LWRlc2t0b3AvdGVtcGxhdGUKQEAgLTEsMTMgKzEsMTIgQEAKICMgVGVtcGxhdGUgZmls ZSBmb3IgJ2VsZW1lbnQtZGVza3RvcCcKIHBrZ25hbWU9ZWxlbWVudC1kZXNrdG9wCiB2ZXJzaW9u PTEuNy40Ci1yZXZpc2lvbj0xCi1hcmNocz0ieDg2XzY0IgorcmV2aXNpb249Mgogd3Jrc3JjPSJl bGVtZW50LXdlYi0ke3ZlcnNpb259IgogY29uZl9maWxlcz0iL2V0Yy8ke3BrZ25hbWV9L2NvbmZp Zy5qc29uIgogaG9zdG1ha2VkZXBlbmRzPSJnaXQgeWFybiBub2RlanMgcnVzdCBjYXJnbyBweXRo b24gc3FsY2lwaGVyLWRldmVsIGN1cmwgbGliYXBwaW5kaWNhdG9yLWRldmVsIGxpYm5vdGlmeS1k ZXZlbCBwa2ctY29uZmlnIgogbWFrZWRlcGVuZHM9ImxpYnNlY3JldC1kZXZlbCIKLWRlcGVuZHM9 ImMtYXJlcyBmZm1wZWcgZ3RrKzMgaHR0cC1wYXJzZXIgbGliZXZlbnQgbGlieHNsdCBtaW5pemlw IG5zcyByZTIgc25hcHB5IHNxbGNpcGhlciIKK2RlcGVuZHM9ImMtYXJlcyBmZm1wZWcgZ3RrKzMg aHR0cC1wYXJzZXIgbGliZXZlbnQgbGlieHNsdCBtaW5pemlwIG5zcyByZTIgc25hcHB5IHNxbGNp cGhlciBlbGVjdHJvbjkiCiBzaG9ydF9kZXNjPSJHbG9zc3kgTWF0cml4IGNvbGxhYm9yYXRpb24g Y2xpZW50LCBkZXNrdG9wIHZlcnNpb24iCiBtYWludGFpbmVyPSJwcm9qZWN0bW9vbiA8cHJvamVj dG1vb25AYWdub3MuaXM+IgogbGljZW5zZT0iQXBhY2hlLTIuMCIKQEAgLTE2LDcgKzE1LDYgQEAg ZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vdmVjdG9yLWltL2VsZW1lbnQtZGVza3RvcC9h cmNoaXZlL3Yke3ZlcnNpb259LnRhci4KIGNoZWNrc3VtPSJlOWY1ODU1ZTQzMjg0MWFhNTAzZjNh MmU4NTA3M2M0NjY5OTJlMWEyOGI2OTdiMjFjYjM3MDQ4NWM2YzRhYTM1CiAgOTZiMzhhMzQ4YmM3 YmExNTMwMTcxYWE3MzBmOGEwMmE0NjlmYjVlNTdlNTI0MDM0ZWJkMjc2OGVkMjFmMWM5NyIKIG5v Y3Jvc3M9eWVzCi1ub3N0cmlwPXllcwogCiBwcmVfYnVpbGQoKSB7CiAJIyBCdWlsZCBkZXBlbmRl bmNpZXMgZm9yIHJpb3Qtd2ViCkBAIC00MCwxNCArMzgsMTYgQEAgZG9fYnVpbGQoKSB7CiBkb19p bnN0YWxsKCkgewogCXZta2RpciB1c3IvbGliL2VsZW1lbnQtZGVza3RvcAogCXZta2RpciBldGMv ZWxlbWVudC1kZXNrdG9wCi0JdmNvcHkgLi4vZWxlbWVudC1kZXNrdG9wLSR7dmVyc2lvbn0vZGlz dC9saW51eC11bnBhY2tlZC8qIC91c3IvbGliL2VsZW1lbnQtZGVza3RvcAorCWNhc2UgIiRYQlBT X1RBUkdFVF9NQUNISU5FIiBpbgorCQlpNjg2KikgdmNvcHkgLi4vZWxlbWVudC1kZXNrdG9wLSR7 dmVyc2lvbn0vZGlzdC9saW51eC1pYTMyLXVucGFja2VkL3Jlc291cmNlcyAvdXNyL2xpYi9lbGVt ZW50LWRlc2t0b3AvcmVzb3VyY2VzOzsKKwkJKikgdmNvcHkgLi4vZWxlbWVudC1kZXNrdG9wLSR7 dmVyc2lvbn0vZGlzdC9saW51eC11bnBhY2tlZC9yZXNvdXJjZXMgL3Vzci9saWIvZWxlbWVudC1k ZXNrdG9wL3Jlc291cmNlcworCWVzYWMKIAl2aW5zdGFsbCBjb25maWcuc2FtcGxlLmpzb24gNjQ0 IC9ldGMvZWxlbWVudC1kZXNrdG9wLyBjb25maWcuanNvbgogCXZjb3B5IHdlYmFwcCAvdXNyL2xp Yi9lbGVtZW50LWRlc2t0b3AvcmVzb3VyY2VzCiAJbG4gLXMgL2V0Yy9lbGVtZW50LWRlc2t0b3Av Y29uZmlnLmpzb24gJERFU1RESVIvdXNyL2xpYi9lbGVtZW50LWRlc2t0b3AvcmVzb3VyY2VzL3dl YmFwcC9jb25maWcuanNvbgogCi0Jdm1rZGlyIHVzci9iaW4KLQlsbiAtcyAvdXNyL2xpYi9lbGVt ZW50LWRlc2t0b3AvZWxlbWVudC1kZXNrdG9wICRERVNURElSL3Vzci9iaW4vZWxlbWVudC1kZXNr dG9wCi0JbG4gLXMgL3Vzci9saWIvZWxlbWVudC1kZXNrdG9wL2VsZW1lbnQtZGVza3RvcCAkREVT VERJUi91c3IvYmluL3Jpb3QtZGVza3RvcAorCXZiaW4gJHtGSUxFU0RJUn0vZWxlbWVudC1kZXNr dG9wCisJbG4gLXMgZWxlbWVudC1kZXNrdG9wICRERVNURElSL3Vzci9iaW4vcmlvdC1kZXNrdG9w CiAJdmluc3RhbGwgJHtGSUxFU0RJUn0vZWxlbWVudC1kZXNrdG9wLmRlc2t0b3AgNjQ0IC91c3Iv c2hhcmUvYXBwbGljYXRpb25zLyBlbGVtZW50LWRlc2t0b3AuZGVza3RvcAogCXZpbnN0YWxsIHdl YmFwcC90aGVtZXMvZWxlbWVudC9pbWcvbG9nb3MvZWxlbWVudC1sb2dvLnN2ZyA2NDQgL3Vzci9z aGFyZS9pY29ucy9oaWNvbG9yL3NjYWxhYmxlL2FwcHMvIGVsZW1lbnQuc3ZnCiAK --===============3350138545555300974==--