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 20589 invoked from network); 9 Nov 2020 19:52:17 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 9 Nov 2020 19:52:17 -0000 Content-Type: multipart/mixed; boundary="===============6469953670514146789==" MIME-Version: 1.0 Subject: =?utf8?b?UmU6IFtQUiBQQVRDSF0gW1VwZGF0ZWRdIFtXSVBdIGxsdm06IFVwZGF0ZSB0byAxMS4wLjA=?= To: ml@inbox.vuxu.org From: Snektron Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Mon, 09 Nov 2020 20:52:13 +0100 List-Id: Message-ID: <20201109195213.gwigP2fIQVifsNCw27QavzLTqt5N01rlIg-4ccVaKt4@z> GitHub notification mails are now in MIME to allow UTF8. --===============6469953670514146789== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgU25la3Ryb24gYWdhaW5zdCBtYXN0 ZXIgb24gdGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29tL1Nu ZWt0cm9uL3ZvaWQtcGFja2FnZXMgbWFzdGVyCmh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4 L3ZvaWQtcGFja2FnZXMvcHVsbC8yNjIzMQoKW1dJUF0gbGx2bTogVXBkYXRlIHRvIDExLjAuMApV cGRhdGUgbGx2bSBhbmQgaXRzIHN1YnByb2plY3RzIHRvIDExLjAuMC4NCg0KVGhlcmUgd2VyZSBh IGZldyBkZXRhaWxzIGkgc29sdmVkIGFzIGZvbGxvd3M6DQoqIEZvciBsbHZtMTEsIGZpbGVzL2xs dm0tQ29uZmlnLWNvbmZpZy5oIHdhcyBub3QgdXNlZCwgc28gaSByZW1vdmVkIGl0LiBTYW1lIGZv ciBsbHZtMTANCiogSSBqdXN0IGNvcGllZCBhbGwgcGF0Y2hlcyBmcm9tIGxsdm0xMCwgd2hpY2gg eWllbGRlZCBhIGZldyBwcm9ibGVtczoNCiAgLSBTb21lIGNvZGUgbmVhciBjbGFuZy0wMDQtcHBj NjQtbXVzbC1lbGZ2Mi5wYXRjaCBnb3QgY2hhbmdlZCBzbyBpIHJlLW1hZGUgdGhlIHBhdGNoDQog IC0gbGx2bS0wMDctcHBjLWQ4NTAwNy5wYXRjaCBbc2VlbXMgdG8gaGF2ZSBiZWVuIGltcGxlbWVu dGVkIHVwc3RyZWFtXShodHRwczovL2dpdGh1Yi5jb20vbGx2bS9sbHZtLXByb2plY3QvY29tbWl0 L2NiZWExNzU2OGY0MzAxNTgyYzFkNWQ0Mzk5MGYwODljYTZjZmY1MjIpDQoqIHN1YnBhY2thZ2Vz IChjbGFuZywgbGxkLCBsbGRiLCBldGMpIHdlcmUgcmVtb3ZlZCBmcm9tIGxsdm0xMCBhcyB0aGV5 IGFyZSBwcm92aWRlZCBieSBsbHZtMTEgbm93IA0KKiBsbHZtLXVud2luZCgtZGV2ZWwpIGFuZCBs aWJjeHgoLWRldmVsKSB3ZXJlIHVwZGF0ZWQgdG8gMTEuMC4wDQoqIFRoZXJlIHdhcyBhIFtzZWQg ZXhwcmVzc2lvbl0oaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9i bG9iLzQ3MTI1NTU1NTFiNTE0MDc2MGExNzk0OGE1YzM4ZWFjMWNmMTNkZGMvc3JjcGtncy9saWJj eHgvdGVtcGxhdGUjTDI3KSBpbiB0aGUgZXh0cmFjdCBzdGVwIGZvciBsaWJjeHgsIGl0IHNlZW1z IHRoYXQgdGhpcyBoYXMgYmVlbiBjaGFuZ2VkIHVwc3RyZWFtIHNvIGkgcmVtb3ZlZCBpdC4NCgoK QSBwYXRjaCBmaWxlIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNr YWdlcy9wdWxsLzI2MjMxLnBhdGNoIGlzIGF0dGFjaGVk --===============6469953670514146789== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-master-26231.patch" RnJvbSA1MmEyNjBmNGE5ZTk2MTQyNGE5MmZjYjMwYzFjNjA0YjQyMzI3MzBjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2JpbiBWb2V0dGVyIDxyb2JpbkB2b2V0dGVyLm5sPgpEYXRl OiBNb24sIDkgTm92IDIwMjAgMTg6MTM6MTAgKzAxMDAKU3ViamVjdDogW1BBVENIIDAxLzIyXSBu ZXcgcGFja2FnZTogbGx2bTExLTExLjAuMAoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgIDggKy0KIHNyY3BrZ3MvY2xhbmcgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9jbGFuZy1hbmFseXplciAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL2NsYW5nLXRvb2xzLWV4dHJhICAg ICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvbGliY2xhbmcgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9saWJjbGFuZy1jcHAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL2xpYmxsdm0xMSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjcGtncy9sbGQgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL2xsZC1kZXZlbCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvbGxkYiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9sbGRiLWRldmVsICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAyICstCiAuLi4vbGx2bTExL2ZpbGVzL2xsdm0tQ29uZmlnLWxsdm0tY29u ZmlnLmggICAgfCAgIDkgKwogLi4uY2xhbmctMDAxLWZpeC11bndpbmQtY2hhaW4taW5jbHVzaW9u LnBhdGNoIHwgIDQ0ICsrKwogLi4uL2NsYW5nL2NsYW5nLTAwMi1hZGQtbXVzbC10cmlwbGVzLnBh dGNoICAgIHwgIDkxICsrKysrCiAuLi4vY2xhbmctMDAzLXBwYzY0LWR5bmFtaWMtbGlua2VyLXBh dGgucGF0Y2ggfCAgMTggKwogLi4uL2NsYW5nL2NsYW5nLTAwNC1wcGM2NC1tdXNsLWVsZnYyLnBh dGNoICAgIHwgIDMwICsrCiAuLi4vY29tcGlsZXItcnQvY29tcGlsZXItcnQtYXJtdjUucGF0Y2gg ICAgICAgfCAgMTEgKwogc3JjcGtncy9sbHZtMTEvZmlsZXMvcGF0Y2hlcy9sbGRiL211c2wucGF0 Y2ggIHwgIDMxICsrCiAuLi4vZmlsZXMvcGF0Y2hlcy9sbHZtL2xsdm0tMDAxLW11c2wucGF0Y2gg ICAgfCAgNTggKysrKwogLi4uL2xsdm0vbGx2bS0wMDItbXVzbC1wcGM2NC1lbGZ2Mi5wYXRjaCAg ICAgIHwgIDI2ICsrCiAuLi4vcGF0Y2hlcy9sbHZtL2xsdm0tMDAzLXBwYy1zZWN1cmVwbHQucGF0 Y2ggfCAgMTEgKwogLi4uaH5iMjExMGUyNzAgKGNvZGVsaXRlOiByZWJ1aWxkIGZvciBsbHZtMTEp IHwgIDExICsKIC4uLi9wYXRjaGVzL2xsdm0vbGx2bS0wMDQtb3ZlcnJpZGUtb3B0LnBhdGNoICB8 ICAxOCArCiAuLi4vcGF0Y2hlcy9sbHZtL2xsdm0tMDA1LXBwYy1iaWdwaWMucGF0Y2ggICAgfCAg MzggKysrCiAuLi4vbGx2bS9sbHZtLTAwNi1hYXJjaDY0LW1mX2V4ZWMucGF0Y2ggICAgICAgfCAg MjUgKysKIHNyY3BrZ3MvbGx2bTExL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgICB8IDMx MCArKysrKysrKysrKysrKysrKysKIHNyY3BrZ3MvbGx2bTExL3VwZGF0ZSAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgMiArCiAyNyBmaWxlcyBjaGFuZ2VkLCA3NDcgaW5zZXJ0aW9ucygrKSwg MTMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMjAwMDAgc3JjcGtncy9saWJsbHZtMTEKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMS9maWxlcy9sbHZtLUNvbmZpZy1sbHZtLWNv bmZpZy5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTEvZmlsZXMvcGF0Y2hlcy9j bGFuZy9jbGFuZy0wMDEtZml4LXVud2luZC1jaGFpbi1pbmNsdXNpb24ucGF0Y2gKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMS9maWxlcy9wYXRjaGVzL2NsYW5nL2NsYW5nLTAwMi1h ZGQtbXVzbC10cmlwbGVzLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTEv ZmlsZXMvcGF0Y2hlcy9jbGFuZy9jbGFuZy0wMDMtcHBjNjQtZHluYW1pYy1saW5rZXItcGF0aC5w YXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTExL2ZpbGVzL3BhdGNoZXMvY2xh bmcvY2xhbmctMDA0LXBwYzY0LW11c2wtZWxmdjIucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL2xsdm0xMS9maWxlcy9wYXRjaGVzL2NvbXBpbGVyLXJ0L2NvbXBpbGVyLXJ0LWFybXY1 LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTEvZmlsZXMvcGF0Y2hlcy9s bGRiL211c2wucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMS9maWxlcy9w YXRjaGVzL2xsdm0vbGx2bS0wMDEtbXVzbC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvbGx2bTExL2ZpbGVzL3BhdGNoZXMvbGx2bS9sbHZtLTAwMi1tdXNsLXBwYzY0LWVsZnYyLnBh dGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTEvZmlsZXMvcGF0Y2hlcy9sbHZt L2xsdm0tMDAzLXBwYy1zZWN1cmVwbHQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L2xsdm0xMS9maWxlcy9wYXRjaGVzL2xsdm0vbGx2bS0wMDMtcHBjLXNlY3VyZXBsdC5wYXRjaH5i MjExMGUyNzAgKGNvZGVsaXRlOiByZWJ1aWxkIGZvciBsbHZtMTEpCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9sbHZtMTEvZmlsZXMvcGF0Y2hlcy9sbHZtL2xsdm0tMDA0LW92ZXJyaWRlLW9w dC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTExL2ZpbGVzL3BhdGNoZXMv bGx2bS9sbHZtLTAwNS1wcGMtYmlncGljLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9sbHZtMTEvZmlsZXMvcGF0Y2hlcy9sbHZtL2xsdm0tMDA2LWFhcmNoNjQtbWZfZXhlYy5wYXRj aAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTExL3RlbXBsYXRlCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9sbHZtMTEvdXBkYXRlCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3NobGli cyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggMTJhZGU3YTExYWMuLmVmMjQwMGRkMmVmIDEwMDY0NAot LS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTEwMjgsMTAgKzEwMjgs MTAgQEAgbGlidWNoYXJkZXQuc28uMCB1Y2hhcmRldC0wLjAuNl8xCiBsaWJndGtzb3VyY2V2aWV3 bW0tMy4wLnNvLjAgZ3Rrc291cmNldmlld21tLTMuMi4wXzEKIGxpYnlhamwuc28uMiB5YWpsLTIu MC4xXzEKIGxpYmNvbmZ1c2Uuc28uMiBjb25mdXNlLTMuMi4xXzEKLWxpYmxsZGIuc28uMTAgbGxk Yi0xMC4wLjBfMQotbGliY2xhbmcuc28uMTAgbGliY2xhbmctMTAuMC4wXzMKLWxpYmNsYW5nLWNw cC5zby4xMCBsaWJjbGFuZy1jcHAtMTAuMC4wXzMKLWxpYkxMVk0tMTAuc28gbGlibGx2bTEwLTEw LjAuMF8xCitsaWJsbGRiLnNvLjExIGxsZGItMTEuMC4wXzEKK2xpYmNsYW5nLnNvLjExIGxpYmNs YW5nLTExLjAuMF8xCitsaWJjbGFuZy1jcHAuc28uMTEgbGliY2xhbmctY3BwLTExLjAuMF8xCits aWJMTFZNLTExLnNvIGxpYmxsdm0xMS0xMS4wLjBfMQogbGliaXNvZnMuc28uNiBsaWJpc29mcy0w LjYuMjRfMQogbGlibXBhY2suc28uMCBsaWJtcGFjay0xLjAuNV8xCiBsaWJHZW9JUC5zby4xIGxp Ymdlb2lwLTEuNC44XzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2xhbmcgYi9zcmNwa2dzL2NsYW5n CmluZGV4IDU5ZjI2NTc1Y2IzLi5kZWNjMzgwNmM5NSAxMjAwMDAKLS0tIGEvc3JjcGtncy9jbGFu ZworKysgYi9zcmNwa2dzL2NsYW5nCkBAIC0xICsxIEBACi1sbHZtMTAKXCBObyBuZXdsaW5lIGF0 IGVuZCBvZiBmaWxlCitsbHZtMTEKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2NsYW5nLWFuYWx5emVyIGIvc3JjcGtncy9jbGFuZy1hbmFseXplcgppbmRl eCA1OWYyNjU3NWNiMy4uZGVjYzM4MDZjOTUgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvY2xhbmctYW5h bHl6ZXIKKysrIGIvc3JjcGtncy9jbGFuZy1hbmFseXplcgpAQCAtMSArMSBAQAotbGx2bTEwClwg Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorbGx2bTExClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg ZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jbGFuZy10b29scy1leHRyYSBiL3NyY3BrZ3MvY2xh bmctdG9vbHMtZXh0cmEKaW5kZXggNTlmMjY1NzVjYjMuLmRlY2MzODA2Yzk1IDEyMDAwMAotLS0g YS9zcmNwa2dzL2NsYW5nLXRvb2xzLWV4dHJhCisrKyBiL3NyY3BrZ3MvY2xhbmctdG9vbHMtZXh0 cmEKQEAgLTEgKzEgQEAKLWxsdm0xMApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xsdm0x MQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGliY2xh bmcgYi9zcmNwa2dzL2xpYmNsYW5nCmluZGV4IDU5ZjI2NTc1Y2IzLi5kZWNjMzgwNmM5NSAxMjAw MDAKLS0tIGEvc3JjcGtncy9saWJjbGFuZworKysgYi9zcmNwa2dzL2xpYmNsYW5nCkBAIC0xICsx IEBACi1sbHZtMTAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitsbHZtMTEKXCBObyBuZXds aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYmNsYW5nLWNwcCBiL3Ny Y3BrZ3MvbGliY2xhbmctY3BwCmluZGV4IDU5ZjI2NTc1Y2IzLi5kZWNjMzgwNmM5NSAxMjAwMDAK LS0tIGEvc3JjcGtncy9saWJjbGFuZy1jcHAKKysrIGIvc3JjcGtncy9saWJjbGFuZy1jcHAKQEAg LTEgKzEgQEAKLWxsdm0xMApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xsdm0xMQpcIE5v IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGlibGx2bTExIGIv c3JjcGtncy9saWJsbHZtMTEKbmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggMDAwMDAwMDAwMDAu LmRlY2MzODA2Yzk1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saWJsbHZtMTEKQEAgLTAs MCArMSBAQAorbGx2bTExClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv c3JjcGtncy9sbGQgYi9zcmNwa2dzL2xsZAppbmRleCA1OWYyNjU3NWNiMy4uZGVjYzM4MDZjOTUg MTIwMDAwCi0tLSBhL3NyY3BrZ3MvbGxkCisrKyBiL3NyY3BrZ3MvbGxkCkBAIC0xICsxIEBACi1s bHZtMTAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitsbHZtMTEKXCBObyBuZXdsaW5lIGF0 IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsZC1kZXZlbCBiL3NyY3BrZ3MvbGxk LWRldmVsCmluZGV4IDU5ZjI2NTc1Y2IzLi5kZWNjMzgwNmM5NSAxMjAwMDAKLS0tIGEvc3JjcGtn cy9sbGQtZGV2ZWwKKysrIGIvc3JjcGtncy9sbGQtZGV2ZWwKQEAgLTEgKzEgQEAKLWxsdm0xMApc IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xsdm0xMQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m IGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGxkYiBiL3NyY3BrZ3MvbGxkYgppbmRleCA1OWYy NjU3NWNiMy4uZGVjYzM4MDZjOTUgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvbGxkYgorKysgYi9zcmNw a2dzL2xsZGIKQEAgLTEgKzEgQEAKLWxsdm0xMApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK K2xsdm0xMQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv bGxkYi1kZXZlbCBiL3NyY3BrZ3MvbGxkYi1kZXZlbAppbmRleCA1OWYyNjU3NWNiMy4uZGVjYzM4 MDZjOTUgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvbGxkYi1kZXZlbAorKysgYi9zcmNwa2dzL2xsZGIt ZGV2ZWwKQEAgLTEgKzEgQEAKLWxsdm0xMApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xs dm0xMQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2 bTExL2ZpbGVzL2xsdm0tQ29uZmlnLWxsdm0tY29uZmlnLmggYi9zcmNwa2dzL2xsdm0xMS9maWxl cy9sbHZtLUNvbmZpZy1sbHZtLWNvbmZpZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwLi4yZmEwOGM5YmU2OQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTEx L2ZpbGVzL2xsdm0tQ29uZmlnLWxsdm0tY29uZmlnLmgKQEAgLTAsMCArMSw5IEBACisjaW5jbHVk ZSA8Yml0cy93b3Jkc2l6ZS5oPgorCisjaWYgX19XT1JEU0laRSA9PSAzMgorI2luY2x1ZGUgImxs dm0tY29uZmlnLTMyLmgiCisjZWxpZiBfX1dPUkRTSVpFID09IDY0CisjaW5jbHVkZSAibGx2bS1j b25maWctNjQuaCIKKyNlbHNlCisjZXJyb3IgIlVua25vd24gd29yZCBzaXplIgorI2VuZGlmCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMS9maWxlcy9wYXRjaGVzL2NsYW5nL2NsYW5nLTAwMS1m aXgtdW53aW5kLWNoYWluLWluY2x1c2lvbi5wYXRjaCBiL3NyY3BrZ3MvbGx2bTExL2ZpbGVzL3Bh dGNoZXMvY2xhbmcvY2xhbmctMDAxLWZpeC11bndpbmQtY2hhaW4taW5jbHVzaW9uLnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wNDI0NGJjYzI3NAotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTExL2ZpbGVzL3BhdGNoZXMvY2xhbmcvY2xhbmctMDAx LWZpeC11bndpbmQtY2hhaW4taW5jbHVzaW9uLnBhdGNoCkBAIC0wLDAgKzEsNDQgQEAKK0Zyb20g MzUyOTc0MTY5ZjBkMmI1ZGEzZDUzMjFmNTg4ZjVlM2I1OTQxMzMwZSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKK0Zyb206IEFuZHJlYSBCcmFuY2FsZW9uaSA8bWl3YXhlQGdtYWlsLmNvbT4KK0Rh dGU6IFR1ZSwgOCBTZXAgMjAxNSAyMjoxNDo1NyArMDIwMAorU3ViamVjdDogW1BBVENIIDIvN10g Zml4IHVud2luZCBjaGFpbiBpbmNsdXNpb24KKworLS0tCisgbGliL0hlYWRlcnMvdW53aW5kLmgg fCA5ICsrKysrLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDQgZGVsZXRp b25zKC0pCisKK2RpZmYgLS1naXQgYS9saWIvSGVhZGVycy91bndpbmQuaCBiL2xpYi9IZWFkZXJz L3Vud2luZC5oCitpbmRleCAzMDNkNzkyLi40NGUxMGNjIDEwMDY0NAorLS0tIGEvbGliL0hlYWRl cnMvdW53aW5kLmgKKysrKyBiL2xpYi9IZWFkZXJzL3Vud2luZC5oCitAQCAtOSw5ICs5LDYgQEAK KyAKKyAvKiBTZWUgIkRhdGEgRGVmaW5pdGlvbnMgZm9yIGxpYmdjY19zIiBpbiB0aGUgTGludXgg U3RhbmRhcmQgQmFzZS4qLworIAorLSNpZm5kZWYgX19DTEFOR19VTldJTkRfSAorLSNkZWZpbmUg X19DTEFOR19VTldJTkRfSAorLQorICNpZiBkZWZpbmVkKF9fQVBQTEVfXykgJiYgX19oYXNfaW5j bHVkZV9uZXh0KDx1bndpbmQuaD4pCisgLyogRGFyd2luIChmcm9tIDExLnggb24pIHByb3ZpZGUg YW4gdW53aW5kLmguIElmIHRoYXQncyBhdmFpbGFibGUsCisgICogdXNlIGl0LiBsaWJ1bndpbmQg d3JhcHMgc29tZSBvZiBpdHMgZGVmaW5pdGlvbnMgaW4gI2lmZGVmIF9HTlVfU09VUkNFLAorQEAg LTM5LDYgKzM2LDkgQEAKKyAjIGVuZGlmCisgI2Vsc2UKKyAKKysjaWZuZGVmIF9fQ0xBTkdfVU5X SU5EX0gKKysjZGVmaW5lIF9fQ0xBTkdfVU5XSU5EX0gKKysKKyAjaW5jbHVkZSA8c3RkaW50Lmg+ CisgCisgI2lmZGVmIF9fY3BsdXNwbHVzCitAQCAtMzIyLDYgKzMyMiw3IEBAIF9VbndpbmRfUHRy IF9VbndpbmRfR2V0VGV4dFJlbEJhc2Uoc3RydWN0IF9VbndpbmRfQ29udGV4dCAqKTsKKyB9Cisg I2VuZGlmCisgCisrI2VuZGlmIC8qIF9fQ0xBTkdfVU5XSU5EX0ggKi8KKysKKyAjZW5kaWYKKyAK Ky0jZW5kaWYgLyogX19DTEFOR19VTldJTkRfSCAqLworLS0gCisyLjUuMQpkaWZmIC0tZ2l0IGEv c3JjcGtncy9sbHZtMTEvZmlsZXMvcGF0Y2hlcy9jbGFuZy9jbGFuZy0wMDItYWRkLW11c2wtdHJp cGxlcy5wYXRjaCBiL3NyY3BrZ3MvbGx2bTExL2ZpbGVzL3BhdGNoZXMvY2xhbmcvY2xhbmctMDAy LWFkZC1tdXNsLXRyaXBsZXMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAuLmFlZmM4OGQ0OGY1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9sbHZtMTEvZmls ZXMvcGF0Y2hlcy9jbGFuZy9jbGFuZy0wMDItYWRkLW11c2wtdHJpcGxlcy5wYXRjaApAQCAtMCww ICsxLDkxIEBACistLS0gYS9saWIvRHJpdmVyL1Rvb2xDaGFpbnMvR251LmNwcAorKysrIGIvbGli L0RyaXZlci9Ub29sQ2hhaW5zL0dudS5jcHAKK0BAIC0xOTM4LDcgKzE5MzgsOCBAQCB2b2lkIEdl bmVyaWNfR0NDOjpHQ0NJbnN0YWxsYXRpb25EZXRlY3Rvcjo6QWRkRGVmYXVsdEdDQ1ByZWZpeGVz KAorICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IEFSTUhGVHJpcGxlc1tdID0geyJhcm0tbGlu dXgtZ251ZWFiaWhmIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiYXJtdjdobC1yZWRoYXQtbGludXgtZ251ZWFiaSIsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgImFybXY2aGwtc3VzZS1saW51eC1nbnVlYWJpIiwK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJtdjdobC1z dXNlLWxpbnV4LWdudWVhYmkifTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiYXJtdjdobC1zdXNlLWxpbnV4LWdudWVhYmkiLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcm12N2wtbGludXgtZ251ZWFiaWhmIn07 CisgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQVJNZWJMaWJEaXJzW10gPSB7Ii9saWIifTsK KyAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBBUk1lYlRyaXBsZXNbXSA9IHsiYXJtZWItbGlu dXgtZ251ZWFiaSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgImFybWViLWxpbnV4LWFuZHJvaWRlYWJpIn07CitAQCAtMjA3Nyw2ICsyMDc4LDc4IEBAIHZv aWQgR2VuZXJpY19HQ0M6OkdDQ0luc3RhbGxhdGlvbkRldGVjdG9yOjpBZGREZWZhdWx0R0NDUHJl Zml4ZXMoCisgICAgIHJldHVybjsKKyAgIH0KKyAKKysgIGlmIChUYXJnZXRUcmlwbGUuaXNNdXNs KCkpIHsKKysgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IEFBcmNoNjRNdXNsVHJpcGxlc1td ID0geyJhYXJjaDY0LWxpbnV4LW11c2wifTsKKysgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0 IEFSTUhGTXVzbFRyaXBsZXNbXSA9IHsKKysgICAgICAgICJhcm0tbGludXgtbXVzbGVhYmloZiIs ICJhcm12N2wtbGludXgtbXVzbGVhYmloZiIKKysgICAgfTsKKysgICAgc3RhdGljIGNvbnN0IGNo YXIgKmNvbnN0IEFSTU11c2xUcmlwbGVzW10gPSB7ImFybS1saW51eC1tdXNsZWFiaSJ9OworKyAg ICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgWDg2XzY0TXVzbFRyaXBsZXNbXSA9IHsieDg2XzY0 LWxpbnV4LW11c2wifTsKKysgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IFg4Nk11c2xUcmlw bGVzW10gPSB7Imk2ODYtbGludXgtbXVzbCJ9OworKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29u c3QgTUlQU011c2xUcmlwbGVzW10gPSB7CisrICAgICAgICAibWlwcy1saW51eC1tdXNsIiwgIm1p cHNlbC1saW51eC1tdXNsIiwKKysgICAgICAgICJtaXBzZWwtbGludXgtbXVzbGhmIiwgIm1pcHMt bGludXgtbXVzbGhmIgorKyAgICB9OworKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgUFBD TXVzbFRyaXBsZXNbXSA9IHsicG93ZXJwYy1saW51eC1tdXNsIn07CisrICAgIHN0YXRpYyBjb25z dCBjaGFyICpjb25zdCBQUEM2NE11c2xUcmlwbGVzW10gPSB7InBvd2VycGM2NC1saW51eC1tdXNs In07CisrICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBQUEM2NExFTXVzbFRyaXBsZXNbXSA9 IHsicG93ZXJwYzY0bGUtbGludXgtbXVzbCJ9OworKworKyAgICBzd2l0Y2ggKFRhcmdldFRyaXBs ZS5nZXRBcmNoKCkpIHsKKysgICAgY2FzZSBsbHZtOjpUcmlwbGU6OmFhcmNoNjQ6CisrICAgICAg TGliRGlycy5hcHBlbmQoYmVnaW4oQUFyY2g2NExpYkRpcnMpLCBlbmQoQUFyY2g2NExpYkRpcnMp KTsKKysgICAgICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihBQXJjaDY0TXVzbFRyaXBsZXMp LCBlbmQoQUFyY2g2NE11c2xUcmlwbGVzKSk7CisrICAgICAgQmlhcmNoTGliRGlycy5hcHBlbmQo YmVnaW4oQUFyY2g2NExpYkRpcnMpLCBlbmQoQUFyY2g2NExpYkRpcnMpKTsKKysgICAgICBCaWFy Y2hUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihBQXJjaDY0TXVzbFRyaXBsZXMpLCBlbmQoQUFy Y2g2NE11c2xUcmlwbGVzKSk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgbGx2bTo6VHJpcGxl Ojphcm06CisrICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oQVJNTGliRGlycyksIGVuZChBUk1M aWJEaXJzKSk7CisrICAgICAgaWYgKFRhcmdldFRyaXBsZS5nZXRFbnZpcm9ubWVudCgpID09IGxs dm06OlRyaXBsZTo6TXVzbEVBQklIRikgeworKyAgICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQo YmVnaW4oQVJNSEZNdXNsVHJpcGxlcyksIGVuZChBUk1IRk11c2xUcmlwbGVzKSk7CisrICAgICAg fSBlbHNlIHsKKysgICAgICAgIFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKEFSTU11c2xUcmlw bGVzKSwgZW5kKEFSTU11c2xUcmlwbGVzKSk7CisrICAgICAgfQorKyAgICAgIGJyZWFrOworKyAg ICBjYXNlIGxsdm06OlRyaXBsZTo6eDg2XzY0OgorKyAgICAgIExpYkRpcnMuYXBwZW5kKGJlZ2lu KFg4Nl82NExpYkRpcnMpLCBlbmQoWDg2XzY0TGliRGlycykpOworKyAgICAgIFRyaXBsZUFsaWFz ZXMuYXBwZW5kKGJlZ2luKFg4Nl82NE11c2xUcmlwbGVzKSwgZW5kKFg4Nl82NE11c2xUcmlwbGVz KSk7CisrICAgICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4oWDg2TGliRGlycyksIGVuZChY ODZMaWJEaXJzKSk7CisrICAgICAgQmlhcmNoVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oWDg2 TXVzbFRyaXBsZXMpLCBlbmQoWDg2TXVzbFRyaXBsZXMpKTsKKysgICAgICBicmVhazsKKysgICAg Y2FzZSBsbHZtOjpUcmlwbGU6Ong4NjoKKysgICAgICBMaWJEaXJzLmFwcGVuZChiZWdpbihYODZM aWJEaXJzKSwgZW5kKFg4NkxpYkRpcnMpKTsKKysgICAgICBUcmlwbGVBbGlhc2VzLmFwcGVuZChi ZWdpbihYODZNdXNsVHJpcGxlcyksIGVuZChYODZNdXNsVHJpcGxlcykpOworKyAgICAgIEJpYXJj aExpYkRpcnMuYXBwZW5kKGJlZ2luKFg4Nl82NExpYkRpcnMpLCBlbmQoWDg2XzY0TGliRGlycykp OworKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKFg4Nl82NE11c2xUcmlw bGVzKSwgZW5kKFg4Nl82NE11c2xUcmlwbGVzKSk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2Ug bGx2bTo6VHJpcGxlOjptaXBzOgorKyAgICAgIExpYkRpcnMuYXBwZW5kKGJlZ2luKE1JUFNMaWJE aXJzKSwgZW5kKE1JUFNMaWJEaXJzKSk7CisrICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVn aW4oTUlQU011c2xUcmlwbGVzKSwgZW5kKE1JUFNNdXNsVHJpcGxlcykpOworKyAgICAgIGJyZWFr OworKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6cHBjOgorKyAgICAgIExpYkRpcnMuYXBwZW5kKGJl Z2luKFBQQ0xpYkRpcnMpLCBlbmQoUFBDTGliRGlycykpOworKyAgICAgIFRyaXBsZUFsaWFzZXMu YXBwZW5kKGJlZ2luKFBQQ011c2xUcmlwbGVzKSwgZW5kKFBQQ011c2xUcmlwbGVzKSk7CisrICAg ICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDNjRMaWJEaXJzKSwgZW5kKFBQQzY0TGli RGlycykpOworKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKFBQQzY0TXVz bFRyaXBsZXMpLCBlbmQoUFBDNjRNdXNsVHJpcGxlcykpOworKyAgICAgIGJyZWFrOworKyAgICBj YXNlIGxsdm06OlRyaXBsZTo6cHBjNjQ6CisrICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oUFBD NjRMaWJEaXJzKSwgZW5kKFBQQzY0TGliRGlycykpOworKyAgICAgIFRyaXBsZUFsaWFzZXMuYXBw ZW5kKGJlZ2luKFBQQzY0TXVzbFRyaXBsZXMpLCBlbmQoUFBDNjRNdXNsVHJpcGxlcykpOworKyAg ICAgIEJpYXJjaExpYkRpcnMuYXBwZW5kKGJlZ2luKFBQQ0xpYkRpcnMpLCBlbmQoUFBDTGliRGly cykpOworKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKFBQQ011c2xUcmlw bGVzKSwgZW5kKFBQQ011c2xUcmlwbGVzKSk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgbGx2 bTo6VHJpcGxlOjpwcGM2NGxlOgorKyAgICAgIExpYkRpcnMuYXBwZW5kKGJlZ2luKFBQQzY0TEVM aWJEaXJzKSwgZW5kKFBQQzY0TEVMaWJEaXJzKSk7CisrICAgICAgVHJpcGxlQWxpYXNlcy5hcHBl bmQoYmVnaW4oUFBDNjRMRU11c2xUcmlwbGVzKSwgZW5kKFBQQzY0TEVNdXNsVHJpcGxlcykpOwor KyAgICAgIGJyZWFrOworKyAgICBkZWZhdWx0OgorKyAgICAgIGJyZWFrOworKyAgICB9CisrICAg IFRyaXBsZUFsaWFzZXMucHVzaF9iYWNrKFRhcmdldFRyaXBsZS5zdHIoKSk7CisrICAgIGlmIChU YXJnZXRUcmlwbGUuc3RyKCkgIT0gQmlhcmNoVHJpcGxlLnN0cigpKQorKyAgICAgIEJpYXJjaFRy aXBsZUFsaWFzZXMucHVzaF9iYWNrKEJpYXJjaFRyaXBsZS5zdHIoKSk7CisrICAgIHJldHVybjsK KysgIH0KKysKKyAgIC8vIEFuZHJvaWQgdGFyZ2V0cyBzaG91bGQgbm90IHVzZSBHTlUvTGludXgg dG9vbHMgb3IgbGlicmFyaWVzLgorICAgaWYgKFRhcmdldFRyaXBsZS5pc0FuZHJvaWQoKSkgewor ICAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQUFyY2g2NEFuZHJvaWRUcmlwbGVzW10gPSB7 CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMS9maWxlcy9wYXRjaGVzL2NsYW5nL2NsYW5nLTAw My1wcGM2NC1keW5hbWljLWxpbmtlci1wYXRoLnBhdGNoIGIvc3JjcGtncy9sbHZtMTEvZmlsZXMv cGF0Y2hlcy9jbGFuZy9jbGFuZy0wMDMtcHBjNjQtZHluYW1pYy1saW5rZXItcGF0aC5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNGI5YjBiODkxZDUKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xMS9maWxlcy9wYXRjaGVzL2NsYW5nL2NsYW5nLTAw My1wcGM2NC1keW5hbWljLWxpbmtlci1wYXRoLnBhdGNoCkBAIC0wLDAgKzEsMTggQEAKKy0tLSBh L2xpYi9Ecml2ZXIvVG9vbENoYWlucy9MaW51eC5jcHAKKysrKyBiL2xpYi9Ecml2ZXIvVG9vbENo YWlucy9MaW51eC5jcHAKK0BAIC01OTMsMTIgKzU5MywxMiBAQCBzdGQ6OnN0cmluZyBMaW51eDo6 Z2V0RHluYW1pY0xpbmtlcihjb25zdCBBcmdMaXN0ICZBcmdzKSBjb25zdCB7CisgICAgIExvYWRl ciA9ICJsZC5zby4xIjsKKyAgICAgYnJlYWs7CisgICBjYXNlIGxsdm06OlRyaXBsZTo6cHBjNjQ6 CistICAgIExpYkRpciA9ICJsaWI2NCI7CisrICAgIExpYkRpciA9ICJsaWIiOworICAgICBMb2Fk ZXIgPQorLSAgICAgICAgKHRvb2xzOjpwcGM6Omhhc1BQQ0FiaUFyZyhBcmdzLCAiZWxmdjIiKSkg PyAibGQ2NC5zby4yIiA6ICJsZDY0LnNvLjEiOworKyAgICAgICAgKHRvb2xzOjpwcGM6Omhhc1BQ Q0FiaUFyZyhBcmdzLCAiZWxmdjEiKSkgPyAibGQ2NC5zby4xIiA6ICJsZDY0LnNvLjIiOworICAg ICBicmVhazsKKyAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM2NGxlOgorLSAgICBMaWJEaXIgPSAi bGliNjQiOworKyAgICBMaWJEaXIgPSAibGliIjsKKyAgICAgTG9hZGVyID0KKyAgICAgICAgICh0 b29sczo6cHBjOjpoYXNQUENBYmlBcmcoQXJncywgImVsZnYxIikpID8gImxkNjQuc28uMSIgOiAi bGQ2NC5zby4yIjsKKyAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMS9maWxl cy9wYXRjaGVzL2NsYW5nL2NsYW5nLTAwNC1wcGM2NC1tdXNsLWVsZnYyLnBhdGNoIGIvc3JjcGtn cy9sbHZtMTEvZmlsZXMvcGF0Y2hlcy9jbGFuZy9jbGFuZy0wMDQtcHBjNjQtbXVzbC1lbGZ2Mi5w YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMmQ2NzMxZDNiNTMK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xMS9maWxlcy9wYXRjaGVzL2NsYW5nL2Ns YW5nLTAwNC1wcGM2NC1tdXNsLWVsZnYyLnBhdGNoCkBAIC0wLDAgKzEsMzAgQEAKKy0tLSBhL2xp Yi9CYXNpYy9UYXJnZXRzL1BQQy5oCisrKysgYi9saWIvQmFzaWMvVGFyZ2V0cy9QUEMuaAorQEAg LTQwOCwxMSArNDA4LDEwIEBACisgICAgICAgU3VpdGFibGVBbGlnbiA9IDY0OworICAgICB9IGVs c2UgaWYgKChUcmlwbGUuZ2V0QXJjaCgpID09IGxsdm06OlRyaXBsZTo6cHBjNjRsZSkpIHsKKyAg ICAgICByZXNldERhdGFMYXlvdXQoImUtbTplLWk2NDo2NC1uMzI6NjQiKTsKKy0gICAgICBBQkkg PSAiZWxmdjIiOworICAgICB9IGVsc2UgeworICAgICAgIHJlc2V0RGF0YUxheW91dCgiRS1tOmUt aTY0OjY0LW4zMjo2NCIpOworLSAgICAgIEFCSSA9ICJlbGZ2MSI7CisgICAgIH0KKysgICAgQUJJ ID0gImVsZnYyIjsKKworICAgICBpZiAoVHJpcGxlLmlzT1NGcmVlQlNEKCkgfHwgVHJpcGxlLmlz T1NPcGVuQlNEKCkgfHwKKyAgICAgICAgIFRyaXBsZS5nZXRPUygpID09IGxsdm06OlRyaXBsZTo6 QUlYIHx8IFRyaXBsZS5pc011c2woKSkgeworLS0tIGEvbGliL0RyaXZlci9Ub29sQ2hhaW5zL0Ns YW5nLmNwcAorKysrIGIvbGliL0RyaXZlci9Ub29sQ2hhaW5zL0NsYW5nLmNwcAorQEAgLTE4ODMs MTEgKzE4ODMsNyBAQAorICAgICAgICAgQUJJTmFtZSA9ICJlbGZ2MS1xcHgiOworICAgICAgICAg YnJlYWs7CisgICAgICAgfQorLSAgICAgIGlmICgoVC5pc09TRnJlZUJTRCgpICYmIFQuZ2V0T1NN YWpvclZlcnNpb24oKSA+PSAxMykgfHwKKy0gICAgICAgICAgVC5pc09TT3BlbkJTRCgpIHx8IFQu aXNNdXNsKCkpCistICAgICAgICBBQklOYW1lID0gImVsZnYyIjsKKy0gICAgICBlbHNlCistICAg ICAgICBBQklOYW1lID0gImVsZnYxIjsKKysgICAgICBBQklOYW1lID0gImVsZnYyIjsKKyAgICAg ICBicmVhazsKKyAgICAgfQorICAgICBjYXNlIGxsdm06OlRyaXBsZTo6cHBjNjRsZToKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvbGx2bTExL2ZpbGVzL3BhdGNoZXMvY29tcGlsZXItcnQvY29tcGlsZXIt cnQtYXJtdjUucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMS9maWxlcy9wYXRjaGVzL2NvbXBpbGVyLXJ0 L2NvbXBpbGVyLXJ0LWFybXY1LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi44OTNkZDI0NGM1YgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTExL2Zp bGVzL3BhdGNoZXMvY29tcGlsZXItcnQvY29tcGlsZXItcnQtYXJtdjUucGF0Y2gKQEAgLTAsMCAr MSwxMSBAQAorLS0tIGNvbXBpbGVyLXJ0LTEwLjAuMC5zcmMvbGliL2J1aWx0aW5zL0NNYWtlTGlz dHMudHh0CisrKysgY29tcGlsZXItcnQtMTAuMC4wLnNyYy9saWIvYnVpbHRpbnMvQ01ha2VMaXN0 cy50eHQKK0BAIC00MjgsOCArNDI4LDYgQEAKKyApCisgc2V0KGFybV9UaHVtYjFfU09VUkNFUwor ICAgJHthcm1fVGh1bWIxX0pUX1NPVVJDRVN9CistICAke2FybV9UaHVtYjFfU2pMal9FSF9TT1VS Q0VTfQorLSAgJHthcm1fVGh1bWIxX1ZGUHYyX1NPVVJDRVN9CisgICAke2FybV9UaHVtYjFfaWNh Y2hlX1NPVVJDRVN9CisgKQorIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTEvZmlsZXMvcGF0 Y2hlcy9sbGRiL211c2wucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMS9maWxlcy9wYXRjaGVzL2xsZGIv bXVzbC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMzc0MTZi YjQ3OGQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xMS9maWxlcy9wYXRjaGVzL2xs ZGIvbXVzbC5wYXRjaApAQCAtMCwwICsxLDMxIEBACistLS0gYS9zb3VyY2UvUGx1Z2lucy9Qcm9j ZXNzL0xpbnV4L1Byb2Nmcy5oCisrKysgYi9zb3VyY2UvUGx1Z2lucy9Qcm9jZXNzL0xpbnV4L1By b2Nmcy5oCitAQCAtMTAsMjEgKzEwLDEyIEBACisgLy8gc3lzL3Byb2Nmcy5oIG9uIEFuZHJvaWQv TGludXggZm9yIGFsbCBzdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlcy4KKyAKKyAjaW5jbHVkZSA8c3lz L3B0cmFjZS5oPgorKyNpbmNsdWRlIDxhc20vcHRyYWNlLmg+CisgCistI2lmZGVmIF9fQU5EUk9J RF9fCistI2lmIGRlZmluZWQoX19hcm02NF9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKQorLXR5 cGVkZWYgdW5zaWduZWQgbG9uZyBlbGZfZ3JlZ190OworLXR5cGVkZWYgZWxmX2dyZWdfdAorLSAg ICBlbGZfZ3JlZ3NldF90WyhzaXplb2Yoc3RydWN0IHVzZXJfcHRfcmVncykgLyBzaXplb2YoZWxm X2dyZWdfdCkpXTsKKy10eXBlZGVmIHN0cnVjdCB1c2VyX2Zwc2ltZF9zdGF0ZSBlbGZfZnByZWdz ZXRfdDsKKy0jaWZuZGVmIE5UX0ZQUkVHU0VUCistI2RlZmluZSBOVF9GUFJFR1NFVCBOVF9QUkZQ UkVHCistI2VuZGlmIC8vIE5UX0ZQUkVHU0VUCistI2VsaWYgZGVmaW5lZChfX21pcHNfXykKKy0j aWZuZGVmIE5UX0ZQUkVHU0VUCistI2RlZmluZSBOVF9GUFJFR1NFVCBOVF9QUkZQUkVHCistI2Vu ZGlmIC8vIE5UX0ZQUkVHU0VUCistI2VuZGlmCistI2Vsc2UgLy8gX19BTkRST0lEX18KKysjaWYg IWRlZmluZWQoX19HTElCQ19fKSAmJiBkZWZpbmVkKF9fcG93ZXJwY19fKQorKyNkZWZpbmUgcHRf cmVncyBtdXNsX3B0X3JlZ3MKKysjaW5jbHVkZSA8c3lzL3Byb2Nmcy5oPgorKyN1bmRlZiBwdF9y ZWdzCisrI2Vsc2UKKyAjaW5jbHVkZSA8c3lzL3Byb2Nmcy5oPgorLSNlbmRpZiAvLyBfX0FORFJP SURfXworKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTEvZmlsZXMvcGF0Y2hlcy9s bHZtL2xsdm0tMDAxLW11c2wucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMS9maWxlcy9wYXRjaGVzL2xs dm0vbGx2bS0wMDEtbXVzbC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uYTBlZGRiZjU4YmUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xMS9maWxl cy9wYXRjaGVzL2xsdm0vbGx2bS0wMDEtbXVzbC5wYXRjaApAQCAtMCwwICsxLDU4IEBACitGcm9t IGZhY2EzZmJkMTVkMGMzMTA4NDkzYzNjNTRjZDkzMTM4ZTA0OWFjNDMgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCitGcm9tOiBBbmRyZWEgQnJhbmNhbGVvbmkgPG1pd2F4ZUBnbWFpbC5jb20+CitE YXRlOiBUdWUsIDggU2VwIDIwMTUgMjI6MDM6MDIgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAzLzNd IG11c2wKKworLS0tCisgaW5jbHVkZS9sbHZtL0FuYWx5c2lzL1RhcmdldExpYnJhcnlJbmZvLmgg fCA5ICsrKysrKysrKworIGxpYi9TdXBwb3J0L0R5bmFtaWNMaWJyYXJ5LmNwcCAgICAgICAgICAg IHwgMiArLQorIGxpYi9TdXBwb3J0L1VuaXgvU2lnbmFscy5pbmMgICAgICAgICAgICAgIHwgNiAr KystLS0KKyB1dGlscy91bml0dGVzdC9nb29nbGV0ZXN0L3NyYy9ndGVzdC5jYyAgICB8IDEgKwor IDUgZmlsZXMgY2hhbmdlZCwgMTcgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKKworZGlm ZiAtLWdpdCBhL2luY2x1ZGUvbGx2bS9BbmFseXNpcy9UYXJnZXRMaWJyYXJ5SW5mby5oIGIvaW5j bHVkZS9sbHZtL0FuYWx5c2lzL1RhcmdldExpYnJhcnlJbmZvLmgKK2luZGV4IGUwYTFlZTMuLjQ2 NWI2NWEgMTAwNjQ0CistLS0gYS9pbmNsdWRlL2xsdm0vQW5hbHlzaXMvVGFyZ2V0TGlicmFyeUlu Zm8uaAorKysrIGIvaW5jbHVkZS9sbHZtL0FuYWx5c2lzL1RhcmdldExpYnJhcnlJbmZvLmgKK0BA IC0xOCw2ICsxOCwxNSBAQAorICNpbmNsdWRlICJsbHZtL0lSL1Bhc3NNYW5hZ2VyLmgiCisgI2lu Y2x1ZGUgImxsdm0vUGFzcy5oIgorIAorKyN1bmRlZiBmb3BlbjY0CisrI3VuZGVmIGZzZWVrbzY0 CisrI3VuZGVmIGZzdGF0NjQKKysjdW5kZWYgZnN0YXR2ZnM2NAorKyN1bmRlZiBmdGVsbG82NAor KyN1bmRlZiBsc3RhdDY0CisrI3VuZGVmIHN0YXQ2NAorKyN1bmRlZiB0bXBmaWxlNjQKKysKKyBu YW1lc3BhY2UgbGx2bSB7CisgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIEFycmF5UmVmOwor IAorZGlmZiAtLWdpdCBhL3V0aWxzL3VuaXR0ZXN0L2dvb2dsZXRlc3Qvc3JjL2d0ZXN0LmNjIGIv dXRpbHMvdW5pdHRlc3QvZ29vZ2xldGVzdC9zcmMvZ3Rlc3QuY2MKK2luZGV4IDU3ODA3NjQuLjFk NTQ4YzEgMTAwNjQ0CistLS0gYS91dGlscy91bml0dGVzdC9nb29nbGV0ZXN0L3NyYy9ndGVzdC5j YworKysrIGIvdXRpbHMvdW5pdHRlc3QvZ29vZ2xldGVzdC9zcmMvZ3Rlc3QuY2MKK0BAIC0xMjgs NiArMTI4LDcgQEAKKyAKKyAjaWYgR1RFU1RfQ0FOX1NUUkVBTV9SRVNVTFRTXworICMgaW5jbHVk ZSA8YXJwYS9pbmV0Lmg+ICAvLyBOT0xJTlQKKysjIGluY2x1ZGUgPHN5cy9zb2NrZXQuaD4gIC8v IE5PTElOVAorICMgaW5jbHVkZSA8bmV0ZGIuaD4gIC8vIE5PTElOVAorICMgaW5jbHVkZSA8c3lz L3NvY2tldC5oPiAgLy8gTk9MSU5UCisgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4gIC8vIE5PTElO VAorLS0gCisyLjUuMQorCistLS0gYS9saWIvU3VwcG9ydC9Vbml4L0R5bmFtaWNMaWJyYXJ5Lmlu YworKysrIGIvbGliL1N1cHBvcnQvVW5peC9EeW5hbWljTGlicmFyeS5pbmMKK0BAIC0xMDIsNyAr MTAyLDcgQEAgc3RhdGljIHZvaWQgKkRvU2VhcmNoKGNvbnN0IGNoYXIqIFN5bWJvbE5hbWUpIHsK KyAKKyAvLyBUaGlzIG1hY3JvIHJldHVybnMgdGhlIGFkZHJlc3Mgb2YgYSB3ZWxsLWtub3duLCBl eHBsaWNpdCBzeW1ib2wKKyAjZGVmaW5lIEVYUExJQ0lUX1NZTUJPTChTWU0pIFwKKy0gICBpZiAo IXN0cmNtcChTeW1ib2xOYW1lLCAjU1lNKSkgcmV0dXJuICZTWU0KKysgICBpZiAoIXN0cmNtcChT eW1ib2xOYW1lLCAjU1lNKSkgcmV0dXJuICh2b2lkICopJlNZTQorIAorIC8vIFVuZGVyIGdsaWJj IHdlIGhhdmUgYSB3ZWlyZCBzaXR1YXRpb24uIFRoZSBzdGRlcnIvb3V0L2luIHN5bWJvbHMgYXJl IGJvdGgKKyAvLyBtYWNyb3MgYW5kIGdsb2JhbCB2YXJpYWJsZXMgYmVjYXVzZSBvZiBzdGFuZGFy ZHMgcmVxdWlyZW1lbnRzLiBTbywgd2UKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTExL2ZpbGVz L3BhdGNoZXMvbGx2bS9sbHZtLTAwMi1tdXNsLXBwYzY0LWVsZnYyLnBhdGNoIGIvc3JjcGtncy9s bHZtMTEvZmlsZXMvcGF0Y2hlcy9sbHZtL2xsdm0tMDAyLW11c2wtcHBjNjQtZWxmdjIucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjkzY2NkZjhkZWM2Ci0tLSAv ZGV2L251bGwKKysrIGIvc3JjcGtncy9sbHZtMTEvZmlsZXMvcGF0Y2hlcy9sbHZtL2xsdm0tMDAy LW11c2wtcHBjNjQtZWxmdjIucGF0Y2gKQEAgLTAsMCArMSwyNiBAQAorVGhpcyBwYXRjaGVzIExM Vk0gdG8gdXNlIEVMRnYyIG9uIHBwYzY0IHVuY29uZGl0aW9uYWxseSB1bmxlc3Mgb3ZlcnJpZGRl bi4gV2UKK25lZWQgdGhpcyBiZWNhdXNlIHVubGlrZSBtb3N0IGRpc3Ryb3Mgd2UgdXNlIEVMRnYy IGZvciBib3RoIGdsaWJjIGFuZCBtdXNsCitvbiBiaWcgZW5kaWFuIHBwYzY0LgorCistLS0gYS9s aWIvVGFyZ2V0L1Bvd2VyUEMvUFBDVGFyZ2V0TWFjaGluZS5jcHAKKysrKyBiL2xpYi9UYXJnZXQv UG93ZXJQQy9QUENUYXJnZXRNYWNoaW5lLmNwcAorQEAgLTIxNCw5ICsyMTQsOCBAQAorCisgICBz d2l0Y2ggKFRULmdldEFyY2goKSkgeworICAgY2FzZSBUcmlwbGU6OnBwYzY0bGU6CistICAgIHJl dHVybiBQUENUYXJnZXRNYWNoaW5lOjpQUENfQUJJX0VMRnYyOworICAgY2FzZSBUcmlwbGU6OnBw YzY0OgorLSAgICByZXR1cm4gUFBDVGFyZ2V0TWFjaGluZTo6UFBDX0FCSV9FTEZ2MTsKKysgICAg cmV0dXJuIFBQQ1RhcmdldE1hY2hpbmU6OlBQQ19BQklfRUxGdjI7CisgICBkZWZhdWx0OgorICAg ICByZXR1cm4gUFBDVGFyZ2V0TWFjaGluZTo6UFBDX0FCSV9VTktOT1dOOworICAgfQorLS0tIGEv dGVzdC9Db2RlR2VuL1Bvd2VyUEMvcHBjNjQtZWxmLWFiaS5sbAorKysrIGIvdGVzdC9Db2RlR2Vu L1Bvd2VyUEMvcHBjNjQtZWxmLWFiaS5sbAorQEAgLTEsNCArMSw1IEBACistOyBSVU46IGxsYyAt dmVyaWZ5LW1hY2hpbmVpbnN0cnMgLW10cmlwbGU9cG93ZXJwYzY0LXVua25vd24tbGludXgtZ251 IDwgJXMgfCBGaWxlQ2hlY2sgJXMgLWNoZWNrLXByZWZpeD1DSEVDSy1FTEZ2MQorKzsgUlVOOiBs bGMgLXZlcmlmeS1tYWNoaW5laW5zdHJzIC1tdHJpcGxlPXBvd2VycGM2NC11bmtub3duLWxpbnV4 LWdudSA8ICVzIHwgRmlsZUNoZWNrICVzIC1jaGVjay1wcmVmaXg9Q0hFQ0stRUxGdjIKKys7IFJV TjogbGxjIC12ZXJpZnktbWFjaGluZWluc3RycyAtbXRyaXBsZT1wb3dlcnBjNjQtdW5rbm93bi1s aW51eC1tdXNsIDwgJXMgfCBGaWxlQ2hlY2sgJXMgLWNoZWNrLXByZWZpeD1DSEVDSy1FTEZ2Mgor IDsgUlVOOiBsbGMgLXZlcmlmeS1tYWNoaW5laW5zdHJzIC1tdHJpcGxlPXBvd2VycGM2NC11bmtu b3duLWxpbnV4LWdudSAtdGFyZ2V0LWFiaSBlbGZ2MSA8ICVzIHwgRmlsZUNoZWNrICVzIC1jaGVj ay1wcmVmaXg9Q0hFQ0stRUxGdjEKKyA7IFJVTjogbGxjIC12ZXJpZnktbWFjaGluZWluc3RycyAt bXRyaXBsZT1wb3dlcnBjNjQtdW5rbm93bi1saW51eC1nbnUgLXRhcmdldC1hYmkgZWxmdjIgPCAl cyB8IEZpbGVDaGVjayAlcyAtY2hlY2stcHJlZml4PUNIRUNLLUVMRnYyCisgOyBSVU46IGxsYyAt dmVyaWZ5LW1hY2hpbmVpbnN0cnMgLW10cmlwbGU9cG93ZXJwYzY0bGUtdW5rbm93bi1saW51eC1n bnUgPCAlcyB8IEZpbGVDaGVjayAlcyAtY2hlY2stcHJlZml4PUNIRUNLLUVMRnYyCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2xsdm0xMS9maWxlcy9wYXRjaGVzL2xsdm0vbGx2bS0wMDMtcHBjLXNlY3Vy ZXBsdC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTExL2ZpbGVzL3BhdGNoZXMvbGx2bS9sbHZtLTAwMy1w cGMtc2VjdXJlcGx0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw Li5mY2JhYmE4NjMzNQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTExL2ZpbGVzL3Bh dGNoZXMvbGx2bS9sbHZtLTAwMy1wcGMtc2VjdXJlcGx0LnBhdGNoCkBAIC0wLDAgKzEsMTEgQEAK Ky0tLSBsbHZtL2xpYi9UYXJnZXQvUG93ZXJQQy9QUENTdWJ0YXJnZXQuY3BwCisrKysgbGx2bS9s aWIvVGFyZ2V0L1Bvd2VyUEMvUFBDU3VidGFyZ2V0LmNwcAorQEAgLTE1MCw3ICsxNTAsNyBAQCB2 b2lkIFBQQ1N1YnRhcmdldDo6aW5pdFN1YnRhcmdldEZlYXR1cmVzKFN0cmluZ1JlZiBDUFUsIFN0 cmluZ1JlZiBGUykgeworIAorICAgaWYgKChUYXJnZXRUcmlwbGUuaXNPU0ZyZWVCU0QoKSAmJiBU YXJnZXRUcmlwbGUuZ2V0T1NNYWpvclZlcnNpb24oKSA+PSAxMykgfHwKKyAgICAgICBUYXJnZXRU cmlwbGUuaXNPU05ldEJTRCgpIHx8IFRhcmdldFRyaXBsZS5pc09TT3BlbkJTRCgpIHx8CistICAg ICAgVGFyZ2V0VHJpcGxlLmlzTXVzbCgpKQorKyAgICAgIGlzVGFyZ2V0TGludXgoKSkKKyAgICAg U2VjdXJlUGx0ID0gdHJ1ZTsKKyAKKyAgIGlmIChIYXNTUEUgJiYgSXNQUEM2NCkKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvbGx2bTExL2ZpbGVzL3BhdGNoZXMvbGx2bS9sbHZtLTAwMy1wcGMtc2VjdXJl cGx0LnBhdGNofmIyMTEwZTI3MCAoY29kZWxpdGU6IHJlYnVpbGQgZm9yIGxsdm0xMSkgYi9zcmNw a2dzL2xsdm0xMS9maWxlcy9wYXRjaGVzL2xsdm0vbGx2bS0wMDMtcHBjLXNlY3VyZXBsdC5wYXRj aH5iMjExMGUyNzAgKGNvZGVsaXRlOiByZWJ1aWxkIGZvciBsbHZtMTEpCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41YmU4ZGU0ZjA2OAotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3MvbGx2bTExL2ZpbGVzL3BhdGNoZXMvbGx2bS9sbHZtLTAwMy1wcGMtc2VjdXJlcGx0 LnBhdGNofmIyMTEwZTI3MCAoY29kZWxpdGU6IHJlYnVpbGQgZm9yIGxsdm0xMSkJCkBAIC0wLDAg KzEsMTEgQEAKKy0tLSBsbHZtL2xpYi9UYXJnZXQvUG93ZXJQQy9QUENTdWJ0YXJnZXQuY3BwCisr KysgbGx2bS9saWIvVGFyZ2V0L1Bvd2VyUEMvUFBDU3VidGFyZ2V0LmNwcAorQEAgLTE1Myw3ICsx NTMsNyBAQAorCisgICBpZiAoKFRhcmdldFRyaXBsZS5pc09TRnJlZUJTRCgpICYmIFRhcmdldFRy aXBsZS5nZXRPU01ham9yVmVyc2lvbigpID49IDEzKSB8fAorICAgICAgIFRhcmdldFRyaXBsZS5p c09TTmV0QlNEKCkgfHwgVGFyZ2V0VHJpcGxlLmlzT1NPcGVuQlNEKCkgfHwKKy0gICAgICBUYXJn ZXRUcmlwbGUuaXNNdXNsKCkpCisrICAgICAgaXNUYXJnZXRMaW51eCgpKQorICAgICBTZWN1cmVQ bHQgPSB0cnVlOworCisgICBpZiAoSGFzU1BFICYmIElzUFBDNjQpCmRpZmYgLS1naXQgYS9zcmNw a2dzL2xsdm0xMS9maWxlcy9wYXRjaGVzL2xsdm0vbGx2bS0wMDQtb3ZlcnJpZGUtb3B0LnBhdGNo IGIvc3JjcGtncy9sbHZtMTEvZmlsZXMvcGF0Y2hlcy9sbHZtL2xsdm0tMDA0LW92ZXJyaWRlLW9w dC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYWFhZWZjOTYz ZGUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xMS9maWxlcy9wYXRjaGVzL2xsdm0v bGx2bS0wMDQtb3ZlcnJpZGUtb3B0LnBhdGNoCkBAIC0wLDAgKzEsMTggQEAKK1RoaXMgYWxsb3dz IHVzIHRvIG92ZXJyaWRlIHRoZSBvcHRpbWl6YXRpb24gbGV2ZWwgYXMgbm90IGFsbCBwbGF0Zm9y bXMgY2FuCitkZWFsIHdpdGggLU8zLgorCistLS0gYS9DTWFrZUxpc3RzLnR4dAorKysrIGIvQ01h a2VMaXN0cy50eHQKK0BAIC05OTksNiArOTk5LDEyIEBACisgICAgICR7Q01BS0VfQVJDSElWRV9P VVRQVVRfRElSRUNUT1JZfS90Zl9ydW50aW1lKQorIGVuZGlmKCkKKworK3NldChWT0lEX0NYWF9P UFRfRkxBR1MgIiIgQ0FDSEUgU1RSSU5HICJPcHRpbWl6YXRpb24gbGV2ZWwgdG8gdXNlIikKKysK KytpZiAoTk9UIFZPSURfQ1hYX09QVF9GTEFHUyBTVFJFUVVBTCAiIikKKysgICAgbGx2bV9yZXBs YWNlX2NvbXBpbGVyX29wdGlvbihDTUFLRV9DWFhfRkxBR1NfUkVMRUFTRSAiLU8zIiAiJHtWT0lE X0NYWF9PUFRfRkxBR1N9IikKKytlbmRpZigpCisrCisgIyBQdXQgdGhpcyBiZWZvcmUgdGJsZ2Vu LiBFbHNlIHdlIGhhdmUgYSBjaXJjdWxhciBkZXBlbmRlbmNlLgorIGFkZF9zdWJkaXJlY3Rvcnko bGliL0RlbWFuZ2xlKQorIGFkZF9zdWJkaXJlY3RvcnkobGliL1N1cHBvcnQpCmRpZmYgLS1naXQg YS9zcmNwa2dzL2xsdm0xMS9maWxlcy9wYXRjaGVzL2xsdm0vbGx2bS0wMDUtcHBjLWJpZ3BpYy5w YXRjaCBiL3NyY3BrZ3MvbGx2bTExL2ZpbGVzL3BhdGNoZXMvbGx2bS9sbHZtLTAwNS1wcGMtYmln cGljLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40ZTAwNDVk OTdkMwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTExL2ZpbGVzL3BhdGNoZXMvbGx2 bS9sbHZtLTAwNS1wcGMtYmlncGljLnBhdGNoCkBAIC0wLDAgKzEsMzggQEAKK0Zyb20gZjNkYmRk NDljMDZiZmFmYzFkNjEzODA5NGNmNDI4ODljMTRkMzhiNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKK0Zyb206IFNhbXVlbCBIb2xsYW5kIDxzYW11ZWxAc2hvbGxhbmQub3JnPgorRGF0ZTogU3Vu LCAzIE5vdiAyMDE5IDEwOjU3OjI3IC0wNjAwCitTdWJqZWN0OiBbUEFUQ0hdIFtMTFZNXVtQb3dl clBDXSBBc3N1bWUgQmlnUElDIGlmIG5vIFBJQyBsZXZlbCBpcyBzcGVjaWZpZWQKKworLS0tCisg bGx2bS9saWIvVGFyZ2V0L1Bvd2VyUEMvUFBDQXNtUHJpbnRlci5jcHAgIHwgMiArLQorIGxsdm0v bGliL1RhcmdldC9Qb3dlclBDL1BQQ01DSW5zdExvd2VyLmNwcCB8IDIgKy0KKyAyIGZpbGVzIGNo YW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2xs dm0vbGliL1RhcmdldC9Qb3dlclBDL1BQQ0FzbVByaW50ZXIuY3BwIGIvbGx2bS9saWIvVGFyZ2V0 L1Bvd2VyUEMvUFBDQXNtUHJpbnRlci5jcHAKK2luZGV4IDI2OWI4NGI0ZThkLi4wMzI0NmE1MjQy YyAxMDA2NDQKKy0tLSBsbHZtL2xpYi9UYXJnZXQvUG93ZXJQQy9QUENBc21QcmludGVyLmNwcAor KysrIGxsdm0vbGliL1RhcmdldC9Qb3dlclBDL1BQQ0FzbVByaW50ZXIuY3BwCitAQCAtNDg4LDcg KzQ4OCw3IEBAIHZvaWQgUFBDQXNtUHJpbnRlcjo6RW1pdFRsc0NhbGwoY29uc3QgTWFjaGluZUlu c3RyICpNSSwKKyAKKyAgIC8vIEFkZCAzMjc2OCBvZmZzZXQgdG8gdGhlIHN5bWJvbCBzbyB3ZSBm b2xsb3cgdXAgdGhlIGxhdGVzdCBHT1QvUExUIEFCSS4KKyAgIGlmIChLaW5kID09IE1DU3ltYm9s UmVmRXhwcjo6VktfUExUICYmIFN1YnRhcmdldC0+aXNTZWN1cmVQbHQoKSAmJgorLSAgICAgIE0t PmdldFBJQ0xldmVsKCkgPT0gUElDTGV2ZWw6OkJpZ1BJQykKKysgICAgICBNLT5nZXRQSUNMZXZl bCgpICE9IFBJQ0xldmVsOjpTbWFsbFBJQykKKyAgICAgVGxzUmVmID0gTUNCaW5hcnlFeHByOjpj cmVhdGVBZGQoCisgICAgICAgICBUbHNSZWYsIE1DQ29uc3RhbnRFeHByOjpjcmVhdGUoMzI3Njgs IE91dENvbnRleHQpLCBPdXRDb250ZXh0KTsKKyAgIGNvbnN0IE1hY2hpbmVPcGVyYW5kICZNTyA9 IE1JLT5nZXRPcGVyYW5kKDIpOworZGlmZiAtLWdpdCBhL2xsdm0vbGliL1RhcmdldC9Qb3dlclBD L1BQQ01DSW5zdExvd2VyLmNwcCBiL2xsdm0vbGliL1RhcmdldC9Qb3dlclBDL1BQQ01DSW5zdExv d2VyLmNwcAoraW5kZXggMDI3ZTZiZDFiYTAuLmFlNDYxZjRlZWE5IDEwMDY0NAorLS0tIGxsdm0v bGliL1RhcmdldC9Qb3dlclBDL1BQQ01DSW5zdExvd2VyLmNwcAorKysrIGxsdm0vbGliL1Rhcmdl dC9Qb3dlclBDL1BQQ01DSW5zdExvd2VyLmNwcAorQEAgLTExNiw3ICsxMTYsNyBAQCBzdGF0aWMg TUNPcGVyYW5kIEdldFN5bWJvbFJlZihjb25zdCBNYWNoaW5lT3BlcmFuZCAmTU8sIGNvbnN0IE1D U3ltYm9sICpTeW1ib2wsCisgICBjb25zdCBNQ0V4cHIgKkV4cHIgPSBNQ1N5bWJvbFJlZkV4cHI6 OmNyZWF0ZShTeW1ib2wsIFJlZktpbmQsIEN0eCk7CisgICAvLyBJZiAtbXNlY3VyZS1wbHQgLWZQ SUMsIGFkZCAzMjc2OCB0byBzeW1ib2wuCisgICBpZiAoU3VidGFyZ2V0LT5pc1NlY3VyZVBsdCgp ICYmIFRNLmlzUG9zaXRpb25JbmRlcGVuZGVudCgpICYmCistICAgICAgTS0+Z2V0UElDTGV2ZWwo KSA9PSBQSUNMZXZlbDo6QmlnUElDICYmCisrICAgICAgTS0+Z2V0UElDTGV2ZWwoKSAhPSBQSUNM ZXZlbDo6U21hbGxQSUMgJiYKKyAgICAgICBNTy5nZXRUYXJnZXRGbGFncygpID09IFBQQ0lJOjpN T19QTFQpCisgICAgIEV4cHIgPQorICAgICAgICAgTUNCaW5hcnlFeHByOjpjcmVhdGVBZGQoRXhw ciwgTUNDb25zdGFudEV4cHI6OmNyZWF0ZSgzMjc2OCwgQ3R4KSwgQ3R4KTsKKy0tIAorMi4yMy4w CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMS9maWxlcy9wYXRjaGVzL2xsdm0vbGx2bS0wMDYt YWFyY2g2NC1tZl9leGVjLnBhdGNoIGIvc3JjcGtncy9sbHZtMTEvZmlsZXMvcGF0Y2hlcy9sbHZt L2xsdm0tMDA2LWFhcmNoNjQtbWZfZXhlYy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMC4uYTY0YTMxN2VlNmMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xs dm0xMS9maWxlcy9wYXRjaGVzL2xsdm0vbGx2bS0wMDYtYWFyY2g2NC1tZl9leGVjLnBhdGNoCkBA IC0wLDAgKzEsMjUgQEAKK0ZpeCBmYWlsdXJlcyBpbiBBbGxvY2F0aW9uVGVzdHMvTWFwcGVkTWVt b3J5VGVzdC4qIG9uIGFhcmNoNjQ6CisKKyAgICBGYWlsaW5nIFRlc3RzICg4KToKKyAgICAgICAg TExWTS1Vbml0IDo6IFN1cHBvcnQvLi9TdXBwb3J0VGVzdHMvQWxsb2NhdGlvblRlc3RzL01hcHBl ZE1lbW9yeVRlc3QuQWxsb2NBbmRSZWxlYXNlLzMKKyAgICAgICAgTExWTS1Vbml0IDo6IFN1cHBv cnQvLi9TdXBwb3J0VGVzdHMvQWxsb2NhdGlvblRlc3RzL01hcHBlZE1lbW9yeVRlc3QuRHVwbGlj YXRlTmVhci8zCisgICAgICAgIExMVk0tVW5pdCA6OiBTdXBwb3J0Ly4vU3VwcG9ydFRlc3RzL0Fs bG9jYXRpb25UZXN0cy9NYXBwZWRNZW1vcnlUZXN0LkVuYWJsZWRXcml0ZS8zCisgICAgICAgIExM Vk0tVW5pdCA6OiBTdXBwb3J0Ly4vU3VwcG9ydFRlc3RzL0FsbG9jYXRpb25UZXN0cy9NYXBwZWRN ZW1vcnlUZXN0Lk11bHRpcGxlQWxsb2NBbmRSZWxlYXNlLzMKKyAgICAgICAgTExWTS1Vbml0IDo6 IFN1cHBvcnQvLi9TdXBwb3J0VGVzdHMvQWxsb2NhdGlvblRlc3RzL01hcHBlZE1lbW9yeVRlc3Qu U3VjY2Vzc2l2ZU5lYXIvMworICAgICAgICBMTFZNLVVuaXQgOjogU3VwcG9ydC8uL1N1cHBvcnRU ZXN0cy9BbGxvY2F0aW9uVGVzdHMvTWFwcGVkTWVtb3J5VGVzdC5VbmFsaWduZWROZWFyLzMKKyAg ICAgICAgTExWTS1Vbml0IDo6IFN1cHBvcnQvLi9TdXBwb3J0VGVzdHMvQWxsb2NhdGlvblRlc3Rz L01hcHBlZE1lbW9yeVRlc3QuWmVyb05lYXIvMworICAgICAgICBMTFZNLVVuaXQgOjogU3VwcG9y dC8uL1N1cHBvcnRUZXN0cy9BbGxvY2F0aW9uVGVzdHMvTWFwcGVkTWVtb3J5VGVzdC5aZXJvU2l6 ZU5lYXIvMworCitVcHN0cmVhbS1Jc3N1ZTogaHR0cHM6Ly9idWdzLmxsdm0ub3JnL3Nob3dfYnVn LmNnaT9pZD0xNDI3OCNjMTAKKworLS0tIGEvbGliL1N1cHBvcnQvVW5peC9NZW1vcnkuaW5jCisr KysgYi9saWIvU3VwcG9ydC9Vbml4L01lbW9yeS5pbmMKK0BAIC01OSw3ICs1OSw3IEBACisgICAg IHJldHVybiBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFIHwgUFJPVF9FWEVDOworICAgY2FzZSBsbHZt OjpzeXM6Ok1lbW9yeTo6TUZfRVhFQzoKKyAjaWYgKGRlZmluZWQoX19GcmVlQlNEX18pIHx8IGRl ZmluZWQoX19QT1dFUlBDX18pIHx8IGRlZmluZWQgKF9fcHBjX18pIHx8IFwKKy0gICAgIGRlZmlu ZWQoX1BPV0VSKSB8fCBkZWZpbmVkKF9BUkNIX1BQQykpCisrICAgICBkZWZpbmVkKF9QT1dFUikg fHwgZGVmaW5lZChfQVJDSF9QUEMpIHx8IChkZWZpbmVkKF9fbGludXhfXykgJiYgZGVmaW5lZChf X2FhcmNoNjRfXykpKQorICAgICAvLyBPbiBQb3dlclBDLCBoYXZpbmcgYW4gZXhlY3V0YWJsZSBw YWdlIHRoYXQgaGFzIG5vIHJlYWQgcGVybWlzc2lvbgorICAgICAvLyBjYW4gaGF2ZSB1bmludGVu ZGVkIGNvbnNlcXVlbmNlcy4gIFRoZSBmdW5jdGlvbiBJbnZhbGlkYXRlSW5zdHJ1Y3Rpb24tCisg ICAgIC8vIENhY2hlIHVzZXMgaW5zdHJ1Y3Rpb25zIGRjYmYgYW5kIGljYmksIGJvdGggb2Ygd2hp Y2ggYXJlIHRyZWF0ZWQgYnkKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTExL3RlbXBsYXRlIGIv c3JjcGtncy9sbHZtMTEvdGVtcGxhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAuLjc4OTM3NjcyYTQ3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9sbHZtMTEvdGVt cGxhdGUKQEAgLTAsMCArMSwzMTAgQEAKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ2xsdm0xMScKK3Br Z25hbWU9bGx2bTExCit2ZXJzaW9uPTExLjAuMAorcmV2aXNpb249MQord3Jrc3JjPSJsbHZtLSR7 dmVyc2lvbn0uc3JjIgorYnVpbGRfc3R5bGU9Y21ha2UKK2NvbmZpZ3VyZV9hcmdzPSIKKyAtRENN QUtFX0JVSUxEX1RZUEU9UmVsZWFzZQorIC1ETExWTV9JTlNUQUxMX1VUSUxTPU9OCisgLURMTFZN X0JVSUxEX0xMVk1fRFlMSUI9T04KKyAtRExMVk1fTElOS19MTFZNX0RZTElCPU9OCisgLURMTFZN X0VOQUJMRV9SVFRJPU9OCisgLURMTFZNX0VOQUJMRV9GRkk9T04KKyAtRExMVk1fQklOVVRJTFNf SU5DRElSPS91c3IvaW5jbHVkZSIKK2hvc3RtYWtlZGVwZW5kcz0iZ3JvZmYgcGVybCBweXRob24z IHpsaWItZGV2ZWwgbGliZmZpLWRldmVsIHN3aWciCittYWtlZGVwZW5kcz0icHl0aG9uMy1kZXZl bCB6bGliLWRldmVsIGxpYmZmaS1kZXZlbCBsaWJlZGl0LWRldmVsCisgbGlieG1sMi1kZXZlbCBi aW51dGlscy1kZXZlbCBsaWJhdG9taWMtZGV2ZWwiCitkZXBlbmRzPSJsaWJsbHZtMTEiCitzaG9y dF9kZXNjPSJMb3cgTGV2ZWwgVmlydHVhbCBNYWNoaW5lIgorbWFpbnRhaW5lcj0icTY2IDxkYW5p ZWxAb2N0YWZvcmNlLm9yZz4iCitsaWNlbnNlPSJOQ1NBIgoraG9tZXBhZ2U9Imh0dHBzOi8vd3d3 Lmxsdm0ub3JnIgorZGlzdGZpbGVzPSIKKyBodHRwczovL2dpdGh1Yi5jb20vbGx2bS9sbHZtLXBy b2plY3QvcmVsZWFzZXMvZG93bmxvYWQvbGx2bW9yZy0ke3ZlcnNpb259L2xsdm0tJHt2ZXJzaW9u fS5zcmMudGFyLnh6CisgaHR0cHM6Ly9naXRodWIuY29tL2xsdm0vbGx2bS1wcm9qZWN0L3JlbGVh c2VzL2Rvd25sb2FkL2xsdm1vcmctJHt2ZXJzaW9ufS9sbGRiLSR7dmVyc2lvbn0uc3JjLnRhci54 egorIGh0dHBzOi8vZ2l0aHViLmNvbS9sbHZtL2xsdm0tcHJvamVjdC9yZWxlYXNlcy9kb3dubG9h ZC9sbHZtb3JnLSR7dmVyc2lvbn0vbGxkLSR7dmVyc2lvbn0uc3JjLnRhci54egorIGh0dHBzOi8v Z2l0aHViLmNvbS9sbHZtL2xsdm0tcHJvamVjdC9yZWxlYXNlcy9kb3dubG9hZC9sbHZtb3JnLSR7 dmVyc2lvbn0vY2xhbmctJHt2ZXJzaW9ufS5zcmMudGFyLnh6CisgaHR0cHM6Ly9naXRodWIuY29t L2xsdm0vbGx2bS1wcm9qZWN0L3JlbGVhc2VzL2Rvd25sb2FkL2xsdm1vcmctJHt2ZXJzaW9ufS9j bGFuZy10b29scy1leHRyYS0ke3ZlcnNpb259LnNyYy50YXIueHoKKyBodHRwczovL2dpdGh1Yi5j b20vbGx2bS9sbHZtLXByb2plY3QvcmVsZWFzZXMvZG93bmxvYWQvbGx2bW9yZy0ke3ZlcnNpb259 L2NvbXBpbGVyLXJ0LSR7dmVyc2lvbn0uc3JjLnRhci54eiIKK2NoZWNrc3VtPSIKKyA5MTNmNjhj ODk4ZGZiNGEwM2IzOTdjNWUxMWM2YTJmMzlkMGYyMmVkNzY2NWM5Y2VmYTg3YTM0NDIzYTcyNDY5 CisgODU3MGMwOWY1NzM5OWUyMWUwZWVhMGRjZDY2YWUwMjMxZDQ3ZWFmYzdhMDRkNmZlNWM0OTUx YjEzYzRkMmM3MgorIGVmZTdiZTRhN2I3Y2RjNmYzYmNmMjIyODI3YzZmODM3NDM5ZTZlNjU2ZDEy ZDZjODg1ZDVjOGE4MGZmNGZkMWMKKyAwZjk2YWNhY2UxZTgzMjZiMzlmMjIwYmExOWUwNTViYTk5 YjBhYjIxYzI0NzUwNDJkYmM2YTQ4MjY0OWM1MjA5CisgZmVkMzE4Zjc1ZDU2MGQwZTBhZTcyOGUy ZmI4YWJjZTcxZTlkMGM2MGRkMTIwYzliYWFjMTE4NTIyY2U3NmMwOQorIDM3NGFmZjgyZmY1NzNh NDQ5ZjlhYWJiZDMzMGE1ZDBhNDQxMTgxYzUzNWEzNTk5OTk2MTI3Mzc4MTEyZGIyMzQiCitsaWIz MmRpc2FibGVkPXllcworcHl0aG9uX3ZlcnNpb249MworCitfbGxkYl9lbmFibGU9eWVzCisKK2lm IFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgorCV9sbGRiX2VuYWJsZT1ubworZmkKKworY2FzZSAi JFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCisJcHBjNjRsZSopIDs7CisJcHBjKikgX2xsZGJfZW5h YmxlPW5vIDs7Citlc2FjCisKK3N1YnBhY2thZ2VzPSJjbGFuZy10b29scy1leHRyYSBjbGFuZyBj bGFuZy1hbmFseXplciBsaWJjbGFuZyBsaWJjbGFuZy1jcHAgbGlibGx2bTExIgoraWYgWyAiJF9s bGRiX2VuYWJsZSIgPSAieWVzIiBdOyB0aGVuCisJIyBYWFggZmFpbHMgdG8gY3Jvc3MgY29tcGls ZSBkdWUgdG8gcHl0aG9uCisJc3VicGFja2FnZXMrPSIgbGxkYiBsbGRiLWRldmVsIgorZmkKK3N1 YnBhY2thZ2VzKz0iIGxsZCBsbGQtZGV2ZWwiCisKK3Bvc3RfcGF0Y2goKSB7CisJIyBwYXRjaGVz CisJY2QgJHtYQlBTX0JVSUxERElSfS9sbHZtLSR7dmVyc2lvbn0uc3JjCisJZm9yIGkgaW4gJHtG SUxFU0RJUn0vcGF0Y2hlcy9sbHZtL2xsdm0tKi5wYXRjaDsgZG8KKwkJbXNnX25vcm1hbCAiQXBw bHlpbmcgJGkgdG8gbGx2bVxuIgorCQlwYXRjaCAtc05wMSAtaSAke2l9CisJZG9uZQorCisJY2Qg JHtYQlBTX0JVSUxERElSfS9jbGFuZy0ke3ZlcnNpb259LnNyYworCWZvciBpIGluICR7RklMRVNE SVJ9L3BhdGNoZXMvY2xhbmcvY2xhbmctKi5wYXRjaDsgZG8KKwkJbXNnX25vcm1hbCAiQXBwbHlp bmcgJGkgdG8gY2xhbmdcbiIKKwkJcGF0Y2ggLXNOcDEgLWkgJHtpfQorCWRvbmUKKworCWNhc2Ug IiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgorCWFybXY1KikKKwkJY2QgJHtYQlBTX0JVSUxERElS fS9jb21waWxlci1ydC0ke3ZlcnNpb259LnNyYworCQlmb3IgaSBpbiAke0ZJTEVTRElSfS9wYXRj aGVzL2NvbXBpbGVyLXJ0L2NvbXBpbGVyLXJ0LSoucGF0Y2g7IGRvCisJCQltc2dfbm9ybWFsICJB cHBseWluZyAkaSB0byBjb21waWxlci1ydFxuIgorCQkJcGF0Y2ggLXNOcDEgLWkgJHtpfQorCQlk b25lCisJCTs7CisJZXNhYworCisJaWYgWyAiJF9sbGRiX2VuYWJsZSIgPSAieWVzIiBdOyB0aGVu CisJCWNkICR7WEJQU19CVUlMRERJUn0vbGxkYi0ke3ZlcnNpb259LnNyYworCQlmb3IgaSBpbiAk e0ZJTEVTRElSfS9wYXRjaGVzL2xsZGIvKi5wYXRjaDsgZG8KKwkJCW1zZ19ub3JtYWwgIkFwcGx5 aW5nICRpIHRvIGxsZGJcbiIKKwkJCXBhdGNoIC1zTnAxIC1pICR7aX0KKwkJZG9uZQorCQljYXNl ICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwkJCSotbXVzbCkgc2VkIC1pICdzfF9fcHRyYWNl X3JlcXVlc3R8aW50fGcnIHNvdXJjZS9QbHVnaW5zL1Byb2Nlc3MvTGludXgvTmF0aXZlUHJvY2Vz c0xpbnV4LmNwcCA7OworCQllc2FjCisJZmkKKworCSMgTW92ZSBjbGFuZyBmaWxlcyBpbnRvIHRo ZSBsbHZtIHNvdXJjZS4KKwlpZiBbIC1kICR7WEJQU19CVUlMRERJUn0vY2xhbmctJHt2ZXJzaW9u fS5zcmMgXTsgdGhlbgorCQltdiAke1hCUFNfQlVJTERESVJ9L2NsYW5nLSR7dmVyc2lvbn0uc3Jj ICR7d3Jrc3JjfS90b29scy9jbGFuZworCWZpCisJIyBNb3ZlIGNsYW5nLXRvb2xzLWV4dHJhIGZp bGVzIGludG8gbGx2bSBzb3VyY2UuCisJaWYgWyAtZCAke1hCUFNfQlVJTERESVJ9L2NsYW5nLXRv b2xzLWV4dHJhLSR7dmVyc2lvbn0uc3JjIF07IHRoZW4KKwkJbXYgJHtYQlBTX0JVSUxERElSfS9j bGFuZy10b29scy1leHRyYS0ke3ZlcnNpb259LnNyYyAke3dya3NyY30vdG9vbHMvY2xhbmcvdG9v bHMvZXh0cmEKKwlmaQorCSMgTW92ZSBsbGQgZmlsZXMgaW50byB0aGUgbGx2bSBzb3VyY2UuCisJ aWYgWyAtZCAke1hCUFNfQlVJTERESVJ9L2xsZC0ke3ZlcnNpb259LnNyYyBdOyB0aGVuCisJCW12 ICR7WEJQU19CVUlMRERJUn0vbGxkLSR7dmVyc2lvbn0uc3JjICR7d3Jrc3JjfS90b29scy9sbGQK KwlmaQorCSMgTW92ZSBsbGRiIGZpbGVzIGludG8gdGhlIGxsdm0gc291cmNlLgorCWlmIFsgLWQg JHtYQlBTX0JVSUxERElSfS9sbGRiLSR7dmVyc2lvbn0uc3JjIF07IHRoZW4KKwkJaWYgWyAiJF9s bGRiX2VuYWJsZSIgPSAieWVzIiBdOyB0aGVuCisJCQltdiAke1hCUFNfQlVJTERESVJ9L2xsZGIt JHt2ZXJzaW9ufS5zcmMgJHt3cmtzcmN9L3Rvb2xzL2xsZGIKKwkJZWxzZQorCQkJcm0gLXJmICR7 WEJQU19CVUlMRERJUn0vbGxkYi0ke3ZlcnNpb259LnNyYworCQlmaQorCWZpCisJIyBNb3ZlIGNv bXBpbGVyLXJ0IGZpbGVzIGludG8gdGhlIGxsdm0gc291cmNlLgorCWlmIFsgLWQgJHtYQlBTX0JV SUxERElSfS9jb21waWxlci1ydC0ke3ZlcnNpb259LnNyYyBdOyB0aGVuCisJCW12ICR7WEJQU19C VUlMRERJUn0vY29tcGlsZXItcnQtJHt2ZXJzaW9ufS5zcmMgJHt3cmtzcmN9L3Byb2plY3RzL2Nv bXBpbGVyLXJ0CisJZmkKKwljYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwkJKi1tdXNs KQorCQkJIyBEaXNhYmxlIHNhbml0aXplcnMKKwkJCXNlZCAtaSAncy9zZXQoQ09NUElMRVJfUlRf SEFTX1NBTklUSVpFUl9DT01NT04gVFJVRSkvc2V0KENPTVBJTEVSX1JUX0hBU19TQU5JVElaRVJf Q09NTU9OIEZBTFNFKS8nICR7d3Jrc3JjfS9wcm9qZWN0cy9jb21waWxlci1ydC9jbWFrZS9jb25m aWctaXguY21ha2UKKwkJCTs7CisJZXNhYworCit9CisKK3ByZV9jb25maWd1cmUoKSB7CisJIyBW YXN0bHkgcmVkdWNlIHNpemUgb2YgZGVidWdnaW5nIHN5bWJvbHM6CisJQ0ZMQUdTPSR7Q0ZMQUdT LyAtZy8gLWcxfQorCUNYWEZMQUdTPSR7Q1hYRkxBR1MvIC1nLyAtZzF9CisKKwkjIHNpbmNlIGdj YzksIHRoZSBidWlsZCBsaWtlcyB0byBibG93IHVwIGZvciBwcGMzMiBhcHBhcmVudGx5IGJlY2F1 c2UKKwkjIG9mIGNsYW5nIGJlaW5nIHRvbyBsYXJnZSBmb3IgYSAyNC1iaXQgcmVsYXRpdmUgY2Fs bCB0byB0aGUgUExULCBzbworCSMgb3B0aW1pemUgZm9yIHNpemUgaW5zdGVhZAorCWNhc2UgIiRY QlBTX1RBUkdFVF9NQUNISU5FIiBpbgorCQltaXBzKi1tdXNsfHBwY3xwcGMtbXVzbCkgY29uZmln dXJlX2FyZ3MrPSIgLURWT0lEX0NYWF9PUFRfRkxBR1M9LU9zIiA7OworCWVzYWMKKworCWlmIFsg IiRDUk9TU19CVUlMRCIgXTsgdGhlbgorCQltc2dfbm9ybWFsICJCdWlsZGluZyBob3N0IHRibGdl blxuIgorCQlta2RpciAtcCBidWlsZC9IT1NUCisJCWNkIGJ1aWxkL0hPU1QKKwkJQ0M9IiRCVUlM RF9DQyIgQ1hYPSIkQlVJTERfQ1hYIiBDRkxBR1M9IiRCVUlMRF9DRkxBR1MiIFwKKwkJCUNYWEZM QUdTPSIkQlVJTERfQ1hYRkxBR1MiIExERkxBR1M9IiRCVUlMRF9MREZMQUdTIiBcCisJCQljbWFr ZSAuLi8uLiAtRENNQUtFX0JVSUxEX1RZUEU9UmVsZWFzZQorCQltYWtlICR7bWFrZWpvYnN9IC1D IHV0aWxzL1RhYmxlR2VuCisJCW1ha2UgJHttYWtlam9ic30gLUMgdG9vbHMvY2xhbmcvdXRpbHMv VGFibGVHZW4KKwkJY29uZmlndXJlX2FyZ3MrPSIgLURMTFZNX1RBQkxFR0VOPSR7d3Jrc3JjfS9i dWlsZC9IT1NUL2Jpbi9sbHZtLXRibGdlbiIKKwkJY29uZmlndXJlX2FyZ3MrPSIgLURDTEFOR19U QUJMRUdFTj0ke3dya3NyY30vYnVpbGQvSE9TVC9iaW4vY2xhbmctdGJsZ2VuIgorCQljZCAuLi8u LgorCWZpCisKKwljYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwkJaTY4NiopIF9hcmNo PSJYODYiOzsKKwkJeDg2XzY0KikgX2FyY2g9Ilg4NiI7OworCQlhcm12NSopIF9hcmNoPSJBcm12 NXRlIjs7CisJCWFybXY2KikgX2FyY2g9IkFybXY2Ijs7CisJCWFybXY3KikgX2FyY2g9IkFybXY3 Ijs7CisJCWFhcmNoNjQqKSBfYXJjaD0iQUFyY2g2NCI7OworCQltaXBzKikgX2FyY2g9Ik1pcHMi OzsKKwkJcHBjKikgX2FyY2g9IlBvd2VyUEMiOzsKKwllc2FjCisJY29uZmlndXJlX2FyZ3MrPSIg LURMTFZNX1RBUkdFVF9BUkNIPSR7X2FyY2h9IgorCWNvbmZpZ3VyZV9hcmdzKz0iIC1ETExWTV9I T1NUX1RSSVBMRT0ke1hCUFNfQ1JPU1NfVFJJUExFVDotJFhCUFNfVFJJUExFVH0iCisJY29uZmln dXJlX2FyZ3MrPSIgLURMTFZNX0RFRkFVTFRfVEFSR0VUX1RSSVBMRT0ke1hCUFNfQ1JPU1NfVFJJ UExFVDotJFhCUFNfVFJJUExFVH0iCit9CisKK2RvX2luc3RhbGwoKSB7CisJdmxpY2Vuc2UgTElD RU5TRS5UWFQKKworCWNkIGJ1aWxkCisJY21ha2UgLURDTUFLRV9JTlNUQUxMX1BSRUZJWD0ke0RF U1RESVJ9L3VzciAtUCBjbWFrZV9pbnN0YWxsLmNtYWtlCisKKwkjIEZpeCBwZXJtaXNzaW9ucyBv ZiBzdGF0aWMgbGlicworCWNobW9kIC14ICR7REVTVERJUn0vdXNyL2xpYi8qLmEKKworCSMgUmVx dWlyZWQgZm9yIG11bHRpbGliLgorCWlmIFsgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiA9ICJ4ODZf NjQiIF07IHRoZW4KKwkJZm9yIF9oZWFkZXIgaW4gbGx2bS1jb25maWc7IGRvCisJCQltdiAke0RF U1RESVJ9L3Vzci9pbmNsdWRlL2xsdm0vQ29uZmlnLyR7X2hlYWRlcn17LC02NH0uaAorCQkJdmlu c3RhbGwgJHtGSUxFU0RJUn0vbGx2bS1Db25maWctJHtfaGVhZGVyfS5oIDY0NCBcCisJCQkJdXNy L2luY2x1ZGUvbGx2bS9Db25maWcgJHtfaGVhZGVyfS5oCisJCWRvbmUKKwlmaQorCisJIyBSZW1v dmUgbGx2bS1jb25maWctaG9zdCBpbiBjcm9zcyBidWlsZHMuCisJaWYgWyAiJENST1NTX0JVSUxE IiBdOyB0aGVuCisJCXJtIC1mICR7REVTVERJUn0vdXNyL2Jpbi9sbHZtLWNvbmZpZy1ob3N0CisJ ZmkKK30KKworY2xhbmctYW5hbHl6ZXJfcGFja2FnZSgpIHsKKwlweWNvbXBpbGVfZGlycz0idXNy L3NoYXJlL3NjYW4tdmlldyIKKwlkZXBlbmRzPSJjbGFuZy0ke3ZlcnNpb259XyR7cmV2aXNpb259 IHB5dGhvbjMiCisJc2hvcnRfZGVzYys9IiAtIEEgc291cmNlIGNvZGUgYW5hbHlzaXMgZnJhbWV3 b3JrIgorCWhvbWVwYWdlPSJodHRwczovL2NsYW5nLWFuYWx5emVyLmxsdm0ub3JnLyIKKwlwa2df aW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL3NoYXJlL21hbi9tYW4xL3NjYW4tYnVpbGQuMQorCQl2 bW92ZSAiL3Vzci9iaW4vc2Nhbi0qIgorCQl2bW92ZSAiL3Vzci9zaGFyZS9zY2FuLSoiCisJCXZt b3ZlICIvdXNyL2xpYmV4ZWMvKmFuYWx5emVyIgorCX0KK30KKworY2xhbmctdG9vbHMtZXh0cmFf cGFja2FnZSgpIHsKKwlsaWIzMmRpc2FibGVkPXllcworCWRlcGVuZHM9ImNsYW5nLSR7dmVyc2lv bn1fJHtyZXZpc2lvbn0gcHl0aG9uMyIKKwlzaG9ydF9kZXNjKz0iIC0gRXh0cmEgQ2xhbmcgdG9v bHMiCisJaG9tZXBhZ2U9Imh0dHBzOi8vY2xhbmcubGx2bS5vcmcvZXh0cmEvIgorCXBrZ19pbnN0 YWxsKCkgeworCQl2bW92ZSB1c3IvYmluL2NsYW5nLWFwcGx5LXJlcGxhY2VtZW50cworCQl2bW92 ZSB1c3IvYmluL2NsYW5nLXF1ZXJ5CisJCXZtb3ZlIHVzci9iaW4vY2xhbmctcmVuYW1lCisJCXZt b3ZlIHVzci9iaW4vY2xhbmctdGlkeQorCQl2bW92ZSB1c3IvYmluL2RpYWd0b29sCisJCXZtb3Zl IHVzci9iaW4vZmluZC1hbGwtc3ltYm9scworCQl2bW92ZSB1c3IvYmluL2htYXB0b29sCisJCXZt b3ZlIHVzci9iaW4vbW9kdWxhcml6ZQorCQl2bW92ZSB1c3IvYmluL3BwLXRyYWNlCisJCXZtb3Zl IHVzci9iaW4vc2FuY292CisJCXZtb3ZlICJ1c3IvbGliL2xpYmNsYW5nQXBwbHlSZXBsYWNlbWVu dHMqIgorCQl2bW92ZSAidXNyL2xpYi9saWJjbGFuZ1F1ZXJ5KiIKKwkJdm1vdmUgInVzci9saWIv bGliY2xhbmdUaWR5KiIKKwkJdm1vdmUgInVzci9zaGFyZS9jbGFuZy8qdGlkeSoiCisJfQorfQor CitjbGFuZ19wYWNrYWdlKCkgeworCWxpYjMyZGlzYWJsZWQ9eWVzCisJZGVwZW5kcz0ibGlic3Rk YysrLWRldmVsIGxpYmdjYy1kZXZlbCAgYmludXRpbHMgJHtYQlBTX1RBUkdFVF9MSUJDfS1kZXZl bAorCSBsaWJjbGFuZy0ke3ZlcnNpb259XyR7cmV2aXNpb259IgorCXNob3J0X2Rlc2MrPSIgLSBD IGxhbmd1YWdlIGZhbWlseSBmcm9udGVuZCIKKwlob21lcGFnZT0iaHR0cHM6Ly9jbGFuZy5sbHZt Lm9yZy8iCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlIHVzci9pbmNsdWRlL2NsYW5nCisJCXZt b3ZlIHVzci9pbmNsdWRlL2NsYW5nLWMKKwkJdm1vdmUgInVzci9iaW4vKmNsYW5nKiIKKwkJdm1v dmUgdXNyL2Jpbi9jLWluZGV4LXRlc3QKKwkJdm1vdmUgdXNyL2xpYi9jbGFuZworCQl2bW92ZSB1 c3IvbGliL2NtYWtlL2NsYW5nCisJCXZtb3ZlICJ1c3IvbGliL2xpYmNsYW5nKi5hIgorCQl2bW92 ZSAidXNyL2xpYi9saWJjbGFuZyouc28iCisJCXZtb3ZlICJ1c3Ivc2hhcmUvY2xhbmciCisJfQor fQorCitsaWJjbGFuZ19wYWNrYWdlKCkgeworCXNob3J0X2Rlc2MrPSIgLSBDIGZyb250ZW5kIHJ1 bnRpbWUgbGlicmFyeSIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgInVzci9saWIvbGliY2xh bmcuc28uKiIKKwl9Cit9CisKK2xpYmNsYW5nLWNwcF9wYWNrYWdlKCkgeworCXNob3J0X2Rlc2Mr PSIgLSBDIGZyb250ZW5kIHJ1bnRpbWUgbGlicmFyeSAoQysrIGludGVyZmFjZSkiCisJcGtnX2lu c3RhbGwoKSB7CisJCXZtb3ZlICJ1c3IvbGliL2xpYmNsYW5nLWNwcC5zby4qIgorCX0KK30KKwor bGxkX3BhY2thZ2UoKSB7CisJbGliMzJkaXNhYmxlZD15ZXMKKwlzaG9ydF9kZXNjKz0iIC0gbGlu a2VyIgorCWhvbWVwYWdlPSJodHRwczovL2xsZC5sbHZtLm9yZyIKKwlwa2dfaW5zdGFsbCgpIHsK KwkJdm1vdmUgdXNyL2Jpbi9sbGQqCisJCXZtb3ZlIHVzci9iaW4vd2FzbS1sZAorCQl2bW92ZSB1 c3IvYmluL2xkLmxsZCoKKwl9Cit9CisKK2xsZC1kZXZlbF9wYWNrYWdlKCkgeworCWxpYjMyZGlz YWJsZWQ9eWVzCisJc2hvcnRfZGVzYys9IiAtIGxpbmtlciAtIGRldmVsb3BtZW50IGZpbGVzIgor CWhvbWVwYWdlPSJodHRwczovL2xsZC5sbHZtLm9yZyIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1v dmUgdXNyL2luY2x1ZGUvbGxkCisJCXZtb3ZlICJ1c3IvbGliL2xpYmxsZCphIgorCX0KK30KKwor bGxkYl9wYWNrYWdlKCkgeworCWxpYjMyZGlzYWJsZWQ9eWVzCisJZGVwZW5kcys9IiBweXRob24z LXNpeCIKKwlzaG9ydF9kZXNjKz0iIC0gTExEQiBkZWJ1Z2dlciIKKwlob21lcGFnZT0iaHR0cHM6 Ly9sbGRiLmxsdm0ub3JnLyIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2Jpbi8qbGxk YioKKwkJdm1vdmUgdXNyL2xpYi9saWJsbGRiKnNvLioKKwkJdm1vdmUgL3Vzci9saWIvcHl0aG9u KgorCQkjIERlcGVuZCBvbiBweXRob24zLXNpeCBpbnN0ZWFkIG9mIGNvbmZsaWN0aW5nCisJCXJt ICR7UEtHREVTVERJUn0vdXNyL2xpYi9weXRob24zKi9zaXRlLXBhY2thZ2VzL3NpeC5weQorCX0K K30KKworbGxkYi1kZXZlbF9wYWNrYWdlKCkgeworCWxpYjMyZGlzYWJsZWQ9eWVzCisJZGVwZW5k cz0ibGxkYj49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKKwlzaG9ydF9kZXNjKz0iIC0gTExEQiBk ZWJ1Z2dlciAtIGRldmVsb3BtZW50IGZpbGVzIgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSB1 c3IvaW5jbHVkZS9sbGRiCisJCXZtb3ZlICJ1c3IvbGliL2xpYmxsZGIqLnNvIgorCX0KK30KKwor bGlibGx2bTExX3BhY2thZ2UoKSB7CisJc2hvcnRfZGVzYys9IiAtIHJ1bnRpbWUgbGlicmFyeSIK Kwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgInVzci9saWIvbGliTExWTS0qLnNvKiIKKwl9Cit9 CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMS91cGRhdGUgYi9zcmNwa2dzL2xsdm0xMS91cGRh dGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjNkMDllYWZmMzczCi0t LSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9sbHZtMTEvdXBkYXRlCkBAIC0wLDAgKzEsMiBAQAor c2l0ZT1odHRwczovL3JlbGVhc2VzLmxsdm0ub3JnLworcGF0dGVybj0iJ1xLW1xkXC5dKig/PScp IgoKRnJvbSBhMGRhMmZiZjgyMzg2YjlkZDQ1OTAyODdlZGNjOTE5MGFkM2I2MjFiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBSb2JpbiBWb2V0dGVyIDxyb2JpbkB2b2V0dGVyLm5sPgpE YXRlOiBNb24sIDkgTm92IDIwMjAgMTg6MTM6MjMgKzAxMDAKU3ViamVjdDogW1BBVENIIDAyLzIy XSBsbHZtOiB1cGRhdGUgdG8gMTEuMC4wCgotLS0KIHNyY3BrZ3MvbGx2bS90ZW1wbGF0ZSB8IDgg KysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtL3RlbXBsYXRlIGIvc3JjcGtncy9sbHZtL3RlbXBs YXRlCmluZGV4IDg0YzhkM2E4ZTZlLi5lYjcxZTdkNjdmYSAxMDA2NDQKLS0tIGEvc3JjcGtncy9s bHZtL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvbGx2bS90ZW1wbGF0ZQpAQCAtMSwxMCArMSwxMCBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbGx2bScKIHBrZ25hbWU9bGx2bQotdmVyc2lvbj0xMC4w LjAKLXJldmlzaW9uPTIKK3ZlcnNpb249MTEuMC4wCityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1t ZXRhCi1kZXBlbmRzPSJsbHZtMTAiCi1yZXBsYWNlcz0ibGx2bTk+PTAgbGx2bTg+PTAgbGx2bTc+ PTAgbGx2bTYuMD49MCBsbHZtMy45Pj0wIgorZGVwZW5kcz0ibGx2bTExIgorcmVwbGFjZXM9Imxs dm0xMD49MCBsbHZtOT49MCBsbHZtOD49MCBsbHZtNz49MCBsbHZtNi4wPj0wIGxsdm0zLjk+PTAi CiBzaG9ydF9kZXNjPSJMTFZNIG1ldGEgcGFja2FnZSIKIG1haW50YWluZXI9IkVubm8gQm9sYW5k IDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJQdWJsaWMgRG9tYWluIgoKRnJvbSA2 ZDE2ZTk4Zjg5NWUzNDBlODI2YWUxNjA1MTk2MzlhZjczOWY5MmMzIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBSb2JpbiBWb2V0dGVyIDxyb2JpbkB2b2V0dGVyLm5sPgpEYXRlOiBTdW4s IDggTm92IDIwMjAgMTg6MjE6MTYgKzAxMDAKU3ViamVjdDogW1BBVENIIDAzLzIyXSBsbHZtMTA6 IHJlYnVpbGQgc3RhbmRhbG9uZQoKLS0tCiBzcmNwa2dzL2xsdm0xMC9maWxlcy9sbHZtLUNvbmZp Zy1jb25maWcuaCAgICAgfCAgIDkgLQogLi4uY2xhbmctMDAxLWZpeC11bndpbmQtY2hhaW4taW5j bHVzaW9uLnBhdGNoIHwgIDQ0IC0tLS0KIC4uLi9jbGFuZy9jbGFuZy0wMDItYWRkLW11c2wtdHJp cGxlcy5wYXRjaCAgICB8ICA5MSAtLS0tLS0tLQogLi4uL2NsYW5nLTAwMy1wcGM2NC1keW5hbWlj LWxpbmtlci1wYXRoLnBhdGNoIHwgIDE4IC0tCiAuLi4vY2xhbmcvY2xhbmctMDA0LXBwYzY0LW11 c2wtZWxmdjIucGF0Y2ggICAgfCAgMzAgLS0tCiAuLi4vY29tcGlsZXItcnQvY29tcGlsZXItcnQt YXJtdjUucGF0Y2ggICAgICAgfCAgMTEgLQogc3JjcGtncy9sbHZtMTAvZmlsZXMvcGF0Y2hlcy9s bGRiL211c2wucGF0Y2ggIHwgIDMxIC0tLQogc3JjcGtncy9sbHZtMTAvdGVtcGxhdGUgICAgICAg ICAgICAgICAgICAgICAgIHwgMjExICstLS0tLS0tLS0tLS0tLS0tLQogOCBmaWxlcyBjaGFuZ2Vk LCA1IGluc2VydGlvbnMoKyksIDQ0MCBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL2xsdm0xMC9maWxlcy9sbHZtLUNvbmZpZy1jb25maWcuaAogZGVsZXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvbGx2bTEwL2ZpbGVzL3BhdGNoZXMvY2xhbmcvY2xhbmctMDAxLWZpeC11bndp bmQtY2hhaW4taW5jbHVzaW9uLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZt MTAvZmlsZXMvcGF0Y2hlcy9jbGFuZy9jbGFuZy0wMDItYWRkLW11c2wtdHJpcGxlcy5wYXRjaAog ZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEwL2ZpbGVzL3BhdGNoZXMvY2xhbmcvY2xh bmctMDAzLXBwYzY0LWR5bmFtaWMtbGlua2VyLXBhdGgucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL2xsdm0xMC9maWxlcy9wYXRjaGVzL2NsYW5nL2NsYW5nLTAwNC1wcGM2NC1tdXNs LWVsZnYyLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTAvZmlsZXMvcGF0 Y2hlcy9jb21waWxlci1ydC9jb21waWxlci1ydC1hcm12NS5wYXRjaAogZGVsZXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvbGx2bTEwL2ZpbGVzL3BhdGNoZXMvbGxkYi9tdXNsLnBhdGNoCgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9sbHZtMTAvZmlsZXMvbGx2bS1Db25maWctY29uZmlnLmggYi9zcmNwa2dz L2xsdm0xMC9maWxlcy9sbHZtLUNvbmZpZy1jb25maWcuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggYzM2OWI0NTUxZjcuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbGx2bTEwL2Zp bGVzL2xsdm0tQ29uZmlnLWNvbmZpZy5oCisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi0j aW5jbHVkZSA8Yml0cy93b3Jkc2l6ZS5oPgotCi0jaWYgX19XT1JEU0laRSA9PSAzMgotI2luY2x1 ZGUgImNvbmZpZy0zMi5oIgotI2VsaWYgX19XT1JEU0laRSA9PSA2NAotI2luY2x1ZGUgImNvbmZp Zy02NC5oIgotI2Vsc2UKLSNlcnJvciAiVW5rbm93biB3b3JkIHNpemUiCi0jZW5kaWYKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvbGx2bTEwL2ZpbGVzL3BhdGNoZXMvY2xhbmcvY2xhbmctMDAxLWZpeC11 bndpbmQtY2hhaW4taW5jbHVzaW9uLnBhdGNoIGIvc3JjcGtncy9sbHZtMTAvZmlsZXMvcGF0Y2hl cy9jbGFuZy9jbGFuZy0wMDEtZml4LXVud2luZC1jaGFpbi1pbmNsdXNpb24ucGF0Y2gKZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA0MjQ0YmNjMjc0Li4wMDAwMDAwMDAwMAotLS0gYS9z cmNwa2dzL2xsdm0xMC9maWxlcy9wYXRjaGVzL2NsYW5nL2NsYW5nLTAwMS1maXgtdW53aW5kLWNo YWluLWluY2x1c2lvbi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQ0ICswLDAgQEAKLUZyb20g MzUyOTc0MTY5ZjBkMmI1ZGEzZDUzMjFmNTg4ZjVlM2I1OTQxMzMwZSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKLUZyb206IEFuZHJlYSBCcmFuY2FsZW9uaSA8bWl3YXhlQGdtYWlsLmNvbT4KLURh dGU6IFR1ZSwgOCBTZXAgMjAxNSAyMjoxNDo1NyArMDIwMAotU3ViamVjdDogW1BBVENIIDIvN10g Zml4IHVud2luZCBjaGFpbiBpbmNsdXNpb24KLQotLS0tCi0gbGliL0hlYWRlcnMvdW53aW5kLmgg fCA5ICsrKysrLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDQgZGVsZXRp b25zKC0pCi0KLWRpZmYgLS1naXQgYS9saWIvSGVhZGVycy91bndpbmQuaCBiL2xpYi9IZWFkZXJz L3Vud2luZC5oCi1pbmRleCAzMDNkNzkyLi40NGUxMGNjIDEwMDY0NAotLS0tIGEvbGliL0hlYWRl cnMvdW53aW5kLmgKLSsrKyBiL2xpYi9IZWFkZXJzL3Vud2luZC5oCi1AQCAtOSw5ICs5LDYgQEAK LSAKLSAvKiBTZWUgIkRhdGEgRGVmaW5pdGlvbnMgZm9yIGxpYmdjY19zIiBpbiB0aGUgTGludXgg U3RhbmRhcmQgQmFzZS4qLwotIAotLSNpZm5kZWYgX19DTEFOR19VTldJTkRfSAotLSNkZWZpbmUg X19DTEFOR19VTldJTkRfSAotLQotICNpZiBkZWZpbmVkKF9fQVBQTEVfXykgJiYgX19oYXNfaW5j bHVkZV9uZXh0KDx1bndpbmQuaD4pCi0gLyogRGFyd2luIChmcm9tIDExLnggb24pIHByb3ZpZGUg YW4gdW53aW5kLmguIElmIHRoYXQncyBhdmFpbGFibGUsCi0gICogdXNlIGl0LiBsaWJ1bndpbmQg d3JhcHMgc29tZSBvZiBpdHMgZGVmaW5pdGlvbnMgaW4gI2lmZGVmIF9HTlVfU09VUkNFLAotQEAg LTM5LDYgKzM2LDkgQEAKLSAjIGVuZGlmCi0gI2Vsc2UKLSAKLSsjaWZuZGVmIF9fQ0xBTkdfVU5X SU5EX0gKLSsjZGVmaW5lIF9fQ0xBTkdfVU5XSU5EX0gKLSsKLSAjaW5jbHVkZSA8c3RkaW50Lmg+ Ci0gCi0gI2lmZGVmIF9fY3BsdXNwbHVzCi1AQCAtMzIyLDYgKzMyMiw3IEBAIF9VbndpbmRfUHRy IF9VbndpbmRfR2V0VGV4dFJlbEJhc2Uoc3RydWN0IF9VbndpbmRfQ29udGV4dCAqKTsKLSB9Ci0g I2VuZGlmCi0gCi0rI2VuZGlmIC8qIF9fQ0xBTkdfVU5XSU5EX0ggKi8KLSsKLSAjZW5kaWYKLSAK LS0jZW5kaWYgLyogX19DTEFOR19VTldJTkRfSCAqLwotLS0gCi0yLjUuMQpkaWZmIC0tZ2l0IGEv c3JjcGtncy9sbHZtMTAvZmlsZXMvcGF0Y2hlcy9jbGFuZy9jbGFuZy0wMDItYWRkLW11c2wtdHJp cGxlcy5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEwL2ZpbGVzL3BhdGNoZXMvY2xhbmcvY2xhbmctMDAy LWFkZC1tdXNsLXRyaXBsZXMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFl ZmM4OGQ0OGY1Li4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xsdm0xMC9maWxlcy9wYXRjaGVz L2NsYW5nL2NsYW5nLTAwMi1hZGQtbXVzbC10cmlwbGVzLnBhdGNoCisrKyAvZGV2L251bGwKQEAg LTEsOTEgKzAsMCBAQAotLS0tIGEvbGliL0RyaXZlci9Ub29sQ2hhaW5zL0dudS5jcHAKLSsrKyBi L2xpYi9Ecml2ZXIvVG9vbENoYWlucy9HbnUuY3BwCi1AQCAtMTkzOCw3ICsxOTM4LDggQEAgdm9p ZCBHZW5lcmljX0dDQzo6R0NDSW5zdGFsbGF0aW9uRGV0ZWN0b3I6OkFkZERlZmF1bHRHQ0NQcmVm aXhlcygKLSAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBBUk1IRlRyaXBsZXNbXSA9IHsiYXJt LWxpbnV4LWdudWVhYmloZiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgImFybXY3aGwtcmVkaGF0LWxpbnV4LWdudWVhYmkiLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcm12NmhsLXN1c2UtbGludXgtZ251ZWFi aSIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFybXY3 aGwtc3VzZS1saW51eC1nbnVlYWJpIn07Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgImFybXY3aGwtc3VzZS1saW51eC1nbnVlYWJpIiwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJtdjdsLWxpbnV4LWdudWVhYmlo ZiJ9OwotICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IEFSTWViTGliRGlyc1tdID0geyIvbGli In07Ci0gICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQVJNZWJUcmlwbGVzW10gPSB7ImFybWVi LWxpbnV4LWdudWVhYmkiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJhcm1lYi1saW51eC1hbmRyb2lkZWFiaSJ9OwotQEAgLTIwNzcsNiArMjA3OCw3OCBA QCB2b2lkIEdlbmVyaWNfR0NDOjpHQ0NJbnN0YWxsYXRpb25EZXRlY3Rvcjo6QWRkRGVmYXVsdEdD Q1ByZWZpeGVzKAotICAgICByZXR1cm47Ci0gICB9Ci0gCi0rICBpZiAoVGFyZ2V0VHJpcGxlLmlz TXVzbCgpKSB7Ci0rICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBBQXJjaDY0TXVzbFRyaXBs ZXNbXSA9IHsiYWFyY2g2NC1saW51eC1tdXNsIn07Ci0rICAgIHN0YXRpYyBjb25zdCBjaGFyICpj b25zdCBBUk1IRk11c2xUcmlwbGVzW10gPSB7Ci0rICAgICAgICAiYXJtLWxpbnV4LW11c2xlYWJp aGYiLCAiYXJtdjdsLWxpbnV4LW11c2xlYWJpaGYiCi0rICAgIH07Ci0rICAgIHN0YXRpYyBjb25z dCBjaGFyICpjb25zdCBBUk1NdXNsVHJpcGxlc1tdID0geyJhcm0tbGludXgtbXVzbGVhYmkifTsK LSsgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IFg4Nl82NE11c2xUcmlwbGVzW10gPSB7Ing4 Nl82NC1saW51eC1tdXNsIn07Ci0rICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBYODZNdXNs VHJpcGxlc1tdID0geyJpNjg2LWxpbnV4LW11c2wifTsKLSsgICAgc3RhdGljIGNvbnN0IGNoYXIg KmNvbnN0IE1JUFNNdXNsVHJpcGxlc1tdID0gewotKyAgICAgICAgIm1pcHMtbGludXgtbXVzbCIs ICJtaXBzZWwtbGludXgtbXVzbCIsCi0rICAgICAgICAibWlwc2VsLWxpbnV4LW11c2xoZiIsICJt aXBzLWxpbnV4LW11c2xoZiIKLSsgICAgfTsKLSsgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0 IFBQQ011c2xUcmlwbGVzW10gPSB7InBvd2VycGMtbGludXgtbXVzbCJ9OwotKyAgICBzdGF0aWMg Y29uc3QgY2hhciAqY29uc3QgUFBDNjRNdXNsVHJpcGxlc1tdID0geyJwb3dlcnBjNjQtbGludXgt bXVzbCJ9OwotKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgUFBDNjRMRU11c2xUcmlwbGVz W10gPSB7InBvd2VycGM2NGxlLWxpbnV4LW11c2wifTsKLSsKLSsgICAgc3dpdGNoIChUYXJnZXRU cmlwbGUuZ2V0QXJjaCgpKSB7Ci0rICAgIGNhc2UgbGx2bTo6VHJpcGxlOjphYXJjaDY0OgotKyAg ICAgIExpYkRpcnMuYXBwZW5kKGJlZ2luKEFBcmNoNjRMaWJEaXJzKSwgZW5kKEFBcmNoNjRMaWJE aXJzKSk7Ci0rICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oQUFyY2g2NE11c2xUcmlw bGVzKSwgZW5kKEFBcmNoNjRNdXNsVHJpcGxlcykpOwotKyAgICAgIEJpYXJjaExpYkRpcnMuYXBw ZW5kKGJlZ2luKEFBcmNoNjRMaWJEaXJzKSwgZW5kKEFBcmNoNjRMaWJEaXJzKSk7Ci0rICAgICAg QmlhcmNoVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oQUFyY2g2NE11c2xUcmlwbGVzKSwgZW5k KEFBcmNoNjRNdXNsVHJpcGxlcykpOwotKyAgICAgIGJyZWFrOwotKyAgICBjYXNlIGxsdm06OlRy aXBsZTo6YXJtOgotKyAgICAgIExpYkRpcnMuYXBwZW5kKGJlZ2luKEFSTUxpYkRpcnMpLCBlbmQo QVJNTGliRGlycykpOwotKyAgICAgIGlmIChUYXJnZXRUcmlwbGUuZ2V0RW52aXJvbm1lbnQoKSA9 PSBsbHZtOjpUcmlwbGU6Ok11c2xFQUJJSEYpIHsKLSsgICAgICAgIFRyaXBsZUFsaWFzZXMuYXBw ZW5kKGJlZ2luKEFSTUhGTXVzbFRyaXBsZXMpLCBlbmQoQVJNSEZNdXNsVHJpcGxlcykpOwotKyAg ICAgIH0gZWxzZSB7Ci0rICAgICAgICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihBUk1NdXNs VHJpcGxlcyksIGVuZChBUk1NdXNsVHJpcGxlcykpOwotKyAgICAgIH0KLSsgICAgICBicmVhazsK LSsgICAgY2FzZSBsbHZtOjpUcmlwbGU6Ong4Nl82NDoKLSsgICAgICBMaWJEaXJzLmFwcGVuZChi ZWdpbihYODZfNjRMaWJEaXJzKSwgZW5kKFg4Nl82NExpYkRpcnMpKTsKLSsgICAgICBUcmlwbGVB bGlhc2VzLmFwcGVuZChiZWdpbihYODZfNjRNdXNsVHJpcGxlcyksIGVuZChYODZfNjRNdXNsVHJp cGxlcykpOwotKyAgICAgIEJpYXJjaExpYkRpcnMuYXBwZW5kKGJlZ2luKFg4NkxpYkRpcnMpLCBl bmQoWDg2TGliRGlycykpOwotKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2lu KFg4Nk11c2xUcmlwbGVzKSwgZW5kKFg4Nk11c2xUcmlwbGVzKSk7Ci0rICAgICAgYnJlYWs7Ci0r ICAgIGNhc2UgbGx2bTo6VHJpcGxlOjp4ODY6Ci0rICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4o WDg2TGliRGlycyksIGVuZChYODZMaWJEaXJzKSk7Ci0rICAgICAgVHJpcGxlQWxpYXNlcy5hcHBl bmQoYmVnaW4oWDg2TXVzbFRyaXBsZXMpLCBlbmQoWDg2TXVzbFRyaXBsZXMpKTsKLSsgICAgICBC aWFyY2hMaWJEaXJzLmFwcGVuZChiZWdpbihYODZfNjRMaWJEaXJzKSwgZW5kKFg4Nl82NExpYkRp cnMpKTsKLSsgICAgICBCaWFyY2hUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihYODZfNjRNdXNs VHJpcGxlcyksIGVuZChYODZfNjRNdXNsVHJpcGxlcykpOwotKyAgICAgIGJyZWFrOwotKyAgICBj YXNlIGxsdm06OlRyaXBsZTo6bWlwczoKLSsgICAgICBMaWJEaXJzLmFwcGVuZChiZWdpbihNSVBT TGliRGlycyksIGVuZChNSVBTTGliRGlycykpOwotKyAgICAgIFRyaXBsZUFsaWFzZXMuYXBwZW5k KGJlZ2luKE1JUFNNdXNsVHJpcGxlcyksIGVuZChNSVBTTXVzbFRyaXBsZXMpKTsKLSsgICAgICBi cmVhazsKLSsgICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzoKLSsgICAgICBMaWJEaXJzLmFwcGVu ZChiZWdpbihQUENMaWJEaXJzKSwgZW5kKFBQQ0xpYkRpcnMpKTsKLSsgICAgICBUcmlwbGVBbGlh c2VzLmFwcGVuZChiZWdpbihQUENNdXNsVHJpcGxlcyksIGVuZChQUENNdXNsVHJpcGxlcykpOwot KyAgICAgIEJpYXJjaExpYkRpcnMuYXBwZW5kKGJlZ2luKFBQQzY0TGliRGlycyksIGVuZChQUEM2 NExpYkRpcnMpKTsKLSsgICAgICBCaWFyY2hUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihQUEM2 NE11c2xUcmlwbGVzKSwgZW5kKFBQQzY0TXVzbFRyaXBsZXMpKTsKLSsgICAgICBicmVhazsKLSsg ICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0OgotKyAgICAgIExpYkRpcnMuYXBwZW5kKGJlZ2lu KFBQQzY0TGliRGlycyksIGVuZChQUEM2NExpYkRpcnMpKTsKLSsgICAgICBUcmlwbGVBbGlhc2Vz LmFwcGVuZChiZWdpbihQUEM2NE11c2xUcmlwbGVzKSwgZW5kKFBQQzY0TXVzbFRyaXBsZXMpKTsK LSsgICAgICBCaWFyY2hMaWJEaXJzLmFwcGVuZChiZWdpbihQUENMaWJEaXJzKSwgZW5kKFBQQ0xp YkRpcnMpKTsKLSsgICAgICBCaWFyY2hUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihQUENNdXNs VHJpcGxlcyksIGVuZChQUENNdXNsVHJpcGxlcykpOwotKyAgICAgIGJyZWFrOwotKyAgICBjYXNl IGxsdm06OlRyaXBsZTo6cHBjNjRsZToKLSsgICAgICBMaWJEaXJzLmFwcGVuZChiZWdpbihQUEM2 NExFTGliRGlycyksIGVuZChQUEM2NExFTGliRGlycykpOwotKyAgICAgIFRyaXBsZUFsaWFzZXMu YXBwZW5kKGJlZ2luKFBQQzY0TEVNdXNsVHJpcGxlcyksIGVuZChQUEM2NExFTXVzbFRyaXBsZXMp KTsKLSsgICAgICBicmVhazsKLSsgICAgZGVmYXVsdDoKLSsgICAgICBicmVhazsKLSsgICAgfQot KyAgICBUcmlwbGVBbGlhc2VzLnB1c2hfYmFjayhUYXJnZXRUcmlwbGUuc3RyKCkpOwotKyAgICBp ZiAoVGFyZ2V0VHJpcGxlLnN0cigpICE9IEJpYXJjaFRyaXBsZS5zdHIoKSkKLSsgICAgICBCaWFy Y2hUcmlwbGVBbGlhc2VzLnB1c2hfYmFjayhCaWFyY2hUcmlwbGUuc3RyKCkpOwotKyAgICByZXR1 cm47Ci0rICB9Ci0rCi0gICAvLyBBbmRyb2lkIHRhcmdldHMgc2hvdWxkIG5vdCB1c2UgR05VL0xp bnV4IHRvb2xzIG9yIGxpYnJhcmllcy4KLSAgIGlmIChUYXJnZXRUcmlwbGUuaXNBbmRyb2lkKCkp IHsKLSAgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IEFBcmNoNjRBbmRyb2lkVHJpcGxlc1td ID0gewpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTAvZmlsZXMvcGF0Y2hlcy9jbGFuZy9jbGFu Zy0wMDMtcHBjNjQtZHluYW1pYy1saW5rZXItcGF0aC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEwL2Zp bGVzL3BhdGNoZXMvY2xhbmcvY2xhbmctMDAzLXBwYzY0LWR5bmFtaWMtbGlua2VyLXBhdGgucGF0 Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRiOWIwYjg5MWQ1Li4wMDAwMDAwMDAw MAotLS0gYS9zcmNwa2dzL2xsdm0xMC9maWxlcy9wYXRjaGVzL2NsYW5nL2NsYW5nLTAwMy1wcGM2 NC1keW5hbWljLWxpbmtlci1wYXRoLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBA QAotLS0tIGEvbGliL0RyaXZlci9Ub29sQ2hhaW5zL0xpbnV4LmNwcAotKysrIGIvbGliL0RyaXZl ci9Ub29sQ2hhaW5zL0xpbnV4LmNwcAotQEAgLTU5MywxMiArNTkzLDEyIEBAIHN0ZDo6c3RyaW5n IExpbnV4OjpnZXREeW5hbWljTGlua2VyKGNvbnN0IEFyZ0xpc3QgJkFyZ3MpIGNvbnN0IHsKLSAg ICAgTG9hZGVyID0gImxkLnNvLjEiOwotICAgICBicmVhazsKLSAgIGNhc2UgbGx2bTo6VHJpcGxl OjpwcGM2NDoKLS0gICAgTGliRGlyID0gImxpYjY0IjsKLSsgICAgTGliRGlyID0gImxpYiI7Ci0g ICAgIExvYWRlciA9Ci0tICAgICAgICAodG9vbHM6OnBwYzo6aGFzUFBDQWJpQXJnKEFyZ3MsICJl bGZ2MiIpKSA/ICJsZDY0LnNvLjIiIDogImxkNjQuc28uMSI7Ci0rICAgICAgICAodG9vbHM6OnBw Yzo6aGFzUFBDQWJpQXJnKEFyZ3MsICJlbGZ2MSIpKSA/ICJsZDY0LnNvLjEiIDogImxkNjQuc28u MiI7Ci0gICAgIGJyZWFrOwotICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0bGU6Ci0tICAgIExp YkRpciA9ICJsaWI2NCI7Ci0rICAgIExpYkRpciA9ICJsaWIiOwotICAgICBMb2FkZXIgPQotICAg ICAgICAgKHRvb2xzOjpwcGM6Omhhc1BQQ0FiaUFyZyhBcmdzLCAiZWxmdjEiKSkgPyAibGQ2NC5z by4xIiA6ICJsZDY0LnNvLjIiOwotICAgICBicmVhazsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2 bTEwL2ZpbGVzL3BhdGNoZXMvY2xhbmcvY2xhbmctMDA0LXBwYzY0LW11c2wtZWxmdjIucGF0Y2gg Yi9zcmNwa2dzL2xsdm0xMC9maWxlcy9wYXRjaGVzL2NsYW5nL2NsYW5nLTAwNC1wcGM2NC1tdXNs LWVsZnYyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMWFmMWI3OWI1Zi4u MDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTAvZmlsZXMvcGF0Y2hlcy9jbGFuZy9jbGFu Zy0wMDQtcHBjNjQtbXVzbC1lbGZ2Mi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAg QEAKLS0tLSBhL2xpYi9CYXNpYy9UYXJnZXRzL1BQQy5oCi0rKysgYi9saWIvQmFzaWMvVGFyZ2V0 cy9QUEMuaAotQEAgLTM4NiwxMSArMzg2LDEwIEBAIHB1YmxpYzoKLSAKLSAgICAgaWYgKChUcmlw bGUuZ2V0QXJjaCgpID09IGxsdm06OlRyaXBsZTo6cHBjNjRsZSkpIHsKLSAgICAgICByZXNldERh dGFMYXlvdXQoImUtbTplLWk2NDo2NC1uMzI6NjQiKTsKLS0gICAgICBBQkkgPSAiZWxmdjIiOwot ICAgICB9IGVsc2UgewotICAgICAgIHJlc2V0RGF0YUxheW91dCgiRS1tOmUtaTY0OjY0LW4zMjo2 NCIpOwotLSAgICAgIEFCSSA9ICJlbGZ2MSI7Ci0gICAgIH0KLSsgICAgQUJJID0gImVsZnYyIjsK LSAKLSAgICAgaWYgKFRyaXBsZS5nZXRPUygpID09IGxsdm06OlRyaXBsZTo6QUlYKQotICAgICAg IFN1aXRhYmxlQWxpZ24gPSA2NDsKLS0tLSBhL2xpYi9Ecml2ZXIvVG9vbENoYWlucy9DbGFuZy5j cHAKLSsrKyBiL2xpYi9Ecml2ZXIvVG9vbENoYWlucy9DbGFuZy5jcHAKLUBAIC0xOTE4LDExICsx OTE4LDcgQEAgdm9pZCBDbGFuZzo6QWRkUFBDVGFyZ2V0QXJncyhjb25zdCBBcmdMaXN0ICZBcmdz LAotICAgICAgICAgQUJJTmFtZSA9ICJlbGZ2MS1xcHgiOwotICAgICAgICAgYnJlYWs7Ci0gICAg ICAgfQotLQotLSAgICAgIGlmIChULmlzTXVzbCgpIHx8IChULmlzT1NGcmVlQlNEKCkgJiYgVC5n ZXRPU01ham9yVmVyc2lvbigpID49IDEzKSkKLS0gICAgICAgIEFCSU5hbWUgPSAiZWxmdjIiOwot LSAgICAgIGVsc2UKLS0gICAgICAgIEFCSU5hbWUgPSAiZWxmdjEiOwotKyAgICAgIEFCSU5hbWUg PSAiZWxmdjIiOwotICAgICAgIGJyZWFrOwotICAgICB9Ci0gICAgIGNhc2UgbGx2bTo6VHJpcGxl OjpwcGM2NGxlOgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTAvZmlsZXMvcGF0Y2hlcy9jb21w aWxlci1ydC9jb21waWxlci1ydC1hcm12NS5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEwL2ZpbGVzL3Bh dGNoZXMvY29tcGlsZXItcnQvY29tcGlsZXItcnQtYXJtdjUucGF0Y2gKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDg5M2RkMjQ0YzViLi4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xs dm0xMC9maWxlcy9wYXRjaGVzL2NvbXBpbGVyLXJ0L2NvbXBpbGVyLXJ0LWFybXY1LnBhdGNoCisr KyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotLS0tIGNvbXBpbGVyLXJ0LTEwLjAuMC5zcmMv bGliL2J1aWx0aW5zL0NNYWtlTGlzdHMudHh0Ci0rKysgY29tcGlsZXItcnQtMTAuMC4wLnNyYy9s aWIvYnVpbHRpbnMvQ01ha2VMaXN0cy50eHQKLUBAIC00MjgsOCArNDI4LDYgQEAKLSApCi0gc2V0 KGFybV9UaHVtYjFfU09VUkNFUwotICAgJHthcm1fVGh1bWIxX0pUX1NPVVJDRVN9Ci0tICAke2Fy bV9UaHVtYjFfU2pMal9FSF9TT1VSQ0VTfQotLSAgJHthcm1fVGh1bWIxX1ZGUHYyX1NPVVJDRVN9 Ci0gICAke2FybV9UaHVtYjFfaWNhY2hlX1NPVVJDRVN9Ci0gKQotIApkaWZmIC0tZ2l0IGEvc3Jj cGtncy9sbHZtMTAvZmlsZXMvcGF0Y2hlcy9sbGRiL211c2wucGF0Y2ggYi9zcmNwa2dzL2xsdm0x MC9maWxlcy9wYXRjaGVzL2xsZGIvbXVzbC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMzc0MTZiYjQ3OGQuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbGx2bTEwL2ZpbGVz L3BhdGNoZXMvbGxkYi9tdXNsLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzEgKzAsMCBAQAot LS0tIGEvc291cmNlL1BsdWdpbnMvUHJvY2Vzcy9MaW51eC9Qcm9jZnMuaAotKysrIGIvc291cmNl L1BsdWdpbnMvUHJvY2Vzcy9MaW51eC9Qcm9jZnMuaAotQEAgLTEwLDIxICsxMCwxMiBAQAotIC8v IHN5cy9wcm9jZnMuaCBvbiBBbmRyb2lkL0xpbnV4IGZvciBhbGwgc3VwcG9ydGVkIGFyY2hpdGVj dHVyZXMuCi0gCi0gI2luY2x1ZGUgPHN5cy9wdHJhY2UuaD4KLSsjaW5jbHVkZSA8YXNtL3B0cmFj ZS5oPgotIAotLSNpZmRlZiBfX0FORFJPSURfXwotLSNpZiBkZWZpbmVkKF9fYXJtNjRfXykgfHwg ZGVmaW5lZChfX2FhcmNoNjRfXykKLS10eXBlZGVmIHVuc2lnbmVkIGxvbmcgZWxmX2dyZWdfdDsK LS10eXBlZGVmIGVsZl9ncmVnX3QKLS0gICAgZWxmX2dyZWdzZXRfdFsoc2l6ZW9mKHN0cnVjdCB1 c2VyX3B0X3JlZ3MpIC8gc2l6ZW9mKGVsZl9ncmVnX3QpKV07Ci0tdHlwZWRlZiBzdHJ1Y3QgdXNl cl9mcHNpbWRfc3RhdGUgZWxmX2ZwcmVnc2V0X3Q7Ci0tI2lmbmRlZiBOVF9GUFJFR1NFVAotLSNk ZWZpbmUgTlRfRlBSRUdTRVQgTlRfUFJGUFJFRwotLSNlbmRpZiAvLyBOVF9GUFJFR1NFVAotLSNl bGlmIGRlZmluZWQoX19taXBzX18pCi0tI2lmbmRlZiBOVF9GUFJFR1NFVAotLSNkZWZpbmUgTlRf RlBSRUdTRVQgTlRfUFJGUFJFRwotLSNlbmRpZiAvLyBOVF9GUFJFR1NFVAotLSNlbmRpZgotLSNl bHNlIC8vIF9fQU5EUk9JRF9fCi0rI2lmICFkZWZpbmVkKF9fR0xJQkNfXykgJiYgZGVmaW5lZChf X3Bvd2VycGNfXykKLSsjZGVmaW5lIHB0X3JlZ3MgbXVzbF9wdF9yZWdzCi0rI2luY2x1ZGUgPHN5 cy9wcm9jZnMuaD4KLSsjdW5kZWYgcHRfcmVncwotKyNlbHNlCi0gI2luY2x1ZGUgPHN5cy9wcm9j ZnMuaD4KLS0jZW5kaWYgLy8gX19BTkRST0lEX18KLSsjZW5kaWYKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvbGx2bTEwL3RlbXBsYXRlIGIvc3JjcGtncy9sbHZtMTAvdGVtcGxhdGUKaW5kZXggYmZiZGRi NDgxMjcuLmI4MDBkYTU4ZDFjIDEwMDY0NAotLS0gYS9zcmNwa2dzL2xsdm0xMC90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL2xsdm0xMC90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUg ZmlsZSBmb3IgJ2xsdm0xMCcKIHBrZ25hbWU9bGx2bTEwCiB2ZXJzaW9uPTEwLjAuMAotcmV2aXNp b249NgorcmV2aXNpb249Nwogd3Jrc3JjPSJsbHZtLSR7dmVyc2lvbn0uc3JjIgogYnVpbGRfc3R5 bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSIKQEAgLTIwLDQwICsyMCwxNCBAQCBzaG9ydF9kZXNj PSJMb3cgTGV2ZWwgVmlydHVhbCBNYWNoaW5lIgogbWFpbnRhaW5lcj0icTY2IDxkYW5pZWxAb2N0 YWZvcmdlLm9yZz4iCiBsaWNlbnNlPSJOQ1NBIgogaG9tZXBhZ2U9Imh0dHBzOi8vd3d3Lmxsdm0u b3JnIgotZGlzdGZpbGVzPSIKLSBodHRwczovL2dpdGh1Yi5jb20vbGx2bS9sbHZtLXByb2plY3Qv cmVsZWFzZXMvZG93bmxvYWQvbGx2bW9yZy0ke3ZlcnNpb259L2xsdm0tJHt2ZXJzaW9ufS5zcmMu dGFyLnh6Ci0gaHR0cHM6Ly9naXRodWIuY29tL2xsdm0vbGx2bS1wcm9qZWN0L3JlbGVhc2VzL2Rv d25sb2FkL2xsdm1vcmctJHt2ZXJzaW9ufS9sbGRiLSR7dmVyc2lvbn0uc3JjLnRhci54egotIGh0 dHBzOi8vZ2l0aHViLmNvbS9sbHZtL2xsdm0tcHJvamVjdC9yZWxlYXNlcy9kb3dubG9hZC9sbHZt b3JnLSR7dmVyc2lvbn0vbGxkLSR7dmVyc2lvbn0uc3JjLnRhci54egotIGh0dHBzOi8vZ2l0aHVi LmNvbS9sbHZtL2xsdm0tcHJvamVjdC9yZWxlYXNlcy9kb3dubG9hZC9sbHZtb3JnLSR7dmVyc2lv bn0vY2xhbmctJHt2ZXJzaW9ufS5zcmMudGFyLnh6Ci0gaHR0cHM6Ly9naXRodWIuY29tL2xsdm0v bGx2bS1wcm9qZWN0L3JlbGVhc2VzL2Rvd25sb2FkL2xsdm1vcmctJHt2ZXJzaW9ufS9jbGFuZy10 b29scy1leHRyYS0ke3ZlcnNpb259LnNyYy50YXIueHoKLSBodHRwczovL2dpdGh1Yi5jb20vbGx2 bS9sbHZtLXByb2plY3QvcmVsZWFzZXMvZG93bmxvYWQvbGx2bW9yZy0ke3ZlcnNpb259L2NvbXBp bGVyLXJ0LSR7dmVyc2lvbn0uc3JjLnRhci54eiIKLWNoZWNrc3VtPSIKLSBkZjgzYTQ0YjNhOWE3 MTAyOTA0OWVjMTAxZmIwMDc3ZWNiYmRmNWZlNDFlMzk1MjE1MDI1Nzc5MDk5YTk4ZmRmCi0gZGQx ZmZjYjQyZWQwMzNmNTE2NzA4OWVjNGM2ZWJlODRmYmNhMWRiNGE5ZWFlYmY1YzYxNGFmMDlkODll YjEzNQotIGI5YTBkN2M1NzZlZWVmMDViYzA2ZDZlOTU0OTM4YTAxYzUzOTZjZWUxZDFlOTg1ODkx ZTBiMWNmMTZlM2Q3MDgKLSA4ODViMDYyYjAwZTkwM2RmNzI2MzFjNWY5OGI5NTc5ZWQxZWQyNzkw Zjc0ZTU2NDZiNDIzNGZhMDg0ZWFjYjIxCi0gYWNkZjhjZjY1NzRiNDBlNmIxZGFiYzkzZTc2ZGVi Yjg0YTlmZWI2ZjIyOTcwMTI2YjA0ZDRiYTE4YjkyOTExYwotIDZhN2RhNjRkM2EwYTczMjA1Nzdi NjhiOWNhNDkzM2JkY2FiNjc2ZTg5OGI3NTk4NTBlODI3MzMzYzMyODJjNzUiCitkaXN0ZmlsZXM9 Imh0dHBzOi8vZ2l0aHViLmNvbS9sbHZtL2xsdm0tcHJvamVjdC9yZWxlYXNlcy9kb3dubG9hZC9s bHZtb3JnLSR7dmVyc2lvbn0vbGx2bS0ke3ZlcnNpb259LnNyYy50YXIueHoiCitjaGVja3N1bT0i ZGY4M2E0NGIzYTlhNzEwMjkwNDllYzEwMWZiMDA3N2VjYmJkZjVmZTQxZTM5NTIxNTAyNTc3OTA5 OWE5OGZkZiIKIGxpYjMyZGlzYWJsZWQ9eWVzCiBweXRob25fdmVyc2lvbj0zCiAKLV9sbGRiX2Vu YWJsZT15ZXMKK2NvbmZsaWN0cz0ibGx2bTExPj0wIgogCi1pZiBbICIkQ1JPU1NfQlVJTEQiIF07 IHRoZW4KLQlfbGxkYl9lbmFibGU9bm8KLWZpCi0KLWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5F IiBpbgotCXBwYzY0bGUqKSA7OwotCXBwYyopIF9sbGRiX2VuYWJsZT1ubyA7OwotZXNhYwotCi1z dWJwYWNrYWdlcz0iY2xhbmctdG9vbHMtZXh0cmEgY2xhbmcgY2xhbmctYW5hbHl6ZXIgbGliY2xh bmcgbGliY2xhbmctY3BwIGxpYmxsdm0xMCIKLWlmIFsgIiRfbGxkYl9lbmFibGUiID0gInllcyIg XTsgdGhlbgotCSMgWFhYIGZhaWxzIHRvIGNyb3NzIGNvbXBpbGUgZHVlIHRvIHB5dGhvbgotCXN1 YnBhY2thZ2VzKz0iIGxsZGIgbGxkYi1kZXZlbCIKLWZpCi1zdWJwYWNrYWdlcys9IiBsbGQgbGxk LWRldmVsIgorc3VicGFja2FnZXM9ImxpYmxsdm0xMCIKIAogcG9zdF9wYXRjaCgpIHsKIAkjIHBh dGNoZXMKQEAgLTYyLDY1ICszNiw2IEBAIHBvc3RfcGF0Y2goKSB7CiAJCW1zZ19ub3JtYWwgIkFw cGx5aW5nICRpIHRvIGxsdm1cbiIKIAkJcGF0Y2ggLXNOcDEgLWkgJHtpfQogCWRvbmUKLQotCWNk ICR7WEJQU19CVUlMRERJUn0vY2xhbmctJHt2ZXJzaW9ufS5zcmMKLQlmb3IgaSBpbiAke0ZJTEVT RElSfS9wYXRjaGVzL2NsYW5nL2NsYW5nLSoucGF0Y2g7IGRvCi0JCW1zZ19ub3JtYWwgIkFwcGx5 aW5nICRpIHRvIGNsYW5nXG4iCi0JCXBhdGNoIC1zTnAxIC1pICR7aX0KLQlkb25lCi0KLQljYXNl ICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KLQlhcm12NSopCi0JCWNkICR7WEJQU19CVUlMRERJ Un0vY29tcGlsZXItcnQtJHt2ZXJzaW9ufS5zcmMKLQkJZm9yIGkgaW4gJHtGSUxFU0RJUn0vcGF0 Y2hlcy9jb21waWxlci1ydC9jb21waWxlci1ydC0qLnBhdGNoOyBkbwotCQkJbXNnX25vcm1hbCAi QXBwbHlpbmcgJGkgdG8gY29tcGlsZXItcnRcbiIKLQkJCXBhdGNoIC1zTnAxIC1pICR7aX0KLQkJ ZG9uZQotCQk7OwotCWVzYWMKLQotCWlmIFsgIiRfbGxkYl9lbmFibGUiID0gInllcyIgXTsgdGhl bgotCQljZCAke1hCUFNfQlVJTERESVJ9L2xsZGItJHt2ZXJzaW9ufS5zcmMKLQkJZm9yIGkgaW4g JHtGSUxFU0RJUn0vcGF0Y2hlcy9sbGRiLyoucGF0Y2g7IGRvCi0JCQltc2dfbm9ybWFsICJBcHBs eWluZyAkaSB0byBsbGRiXG4iCi0JCQlwYXRjaCAtc05wMSAtaSAke2l9Ci0JCWRvbmUKLQkJY2Fz ZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCi0JCQkqLW11c2wpIHNlZCAtaSAnc3xfX3B0cmFj ZV9yZXF1ZXN0fGludHxnJyBzb3VyY2UvUGx1Z2lucy9Qcm9jZXNzL0xpbnV4L05hdGl2ZVByb2Nl c3NMaW51eC5jcHAgOzsKLQkJZXNhYwotCWZpCi0KLQkjIE1vdmUgY2xhbmcgZmlsZXMgaW50byB0 aGUgbGx2bSBzb3VyY2UuCi0JaWYgWyAtZCAke1hCUFNfQlVJTERESVJ9L2NsYW5nLSR7dmVyc2lv bn0uc3JjIF07IHRoZW4KLQkJbXYgJHtYQlBTX0JVSUxERElSfS9jbGFuZy0ke3ZlcnNpb259LnNy YyAke3dya3NyY30vdG9vbHMvY2xhbmcKLQlmaQotCSMgTW92ZSBjbGFuZy10b29scy1leHRyYSBm aWxlcyBpbnRvIGxsdm0gc291cmNlLgotCWlmIFsgLWQgJHtYQlBTX0JVSUxERElSfS9jbGFuZy10 b29scy1leHRyYS0ke3ZlcnNpb259LnNyYyBdOyB0aGVuCi0JCW12ICR7WEJQU19CVUlMRERJUn0v Y2xhbmctdG9vbHMtZXh0cmEtJHt2ZXJzaW9ufS5zcmMgJHt3cmtzcmN9L3Rvb2xzL2NsYW5nL3Rv b2xzL2V4dHJhCi0JZmkKLQkjIE1vdmUgbGxkIGZpbGVzIGludG8gdGhlIGxsdm0gc291cmNlLgot CWlmIFsgLWQgJHtYQlBTX0JVSUxERElSfS9sbGQtJHt2ZXJzaW9ufS5zcmMgXTsgdGhlbgotCQlt diAke1hCUFNfQlVJTERESVJ9L2xsZC0ke3ZlcnNpb259LnNyYyAke3dya3NyY30vdG9vbHMvbGxk Ci0JZmkKLQkjIE1vdmUgbGxkYiBmaWxlcyBpbnRvIHRoZSBsbHZtIHNvdXJjZS4KLQlpZiBbIC1k ICR7WEJQU19CVUlMRERJUn0vbGxkYi0ke3ZlcnNpb259LnNyYyBdOyB0aGVuCi0JCWlmIFsgIiRf bGxkYl9lbmFibGUiID0gInllcyIgXTsgdGhlbgotCQkJbXYgJHtYQlBTX0JVSUxERElSfS9sbGRi LSR7dmVyc2lvbn0uc3JjICR7d3Jrc3JjfS90b29scy9sbGRiCi0JCWVsc2UKLQkJCXJtIC1yZiAk e1hCUFNfQlVJTERESVJ9L2xsZGItJHt2ZXJzaW9ufS5zcmMKLQkJZmkKLQlmaQotCSMgTW92ZSBj b21waWxlci1ydCBmaWxlcyBpbnRvIHRoZSBsbHZtIHNvdXJjZS4KLQlpZiBbIC1kICR7WEJQU19C VUlMRERJUn0vY29tcGlsZXItcnQtJHt2ZXJzaW9ufS5zcmMgXTsgdGhlbgotCQltdiAke1hCUFNf QlVJTERESVJ9L2NvbXBpbGVyLXJ0LSR7dmVyc2lvbn0uc3JjICR7d3Jrc3JjfS9wcm9qZWN0cy9j b21waWxlci1ydAotCWZpCi0JY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCi0JCSotbXVz bCkKLQkJCSMgRGlzYWJsZSBzYW5pdGl6ZXJzCi0JCQlzZWQgLWkgJ3Mvc2V0KENPTVBJTEVSX1JU X0hBU19TQU5JVElaRVJfQ09NTU9OIFRSVUUpL3NldChDT01QSUxFUl9SVF9IQVNfU0FOSVRJWkVS X0NPTU1PTiBGQUxTRSkvJyAke3dya3NyY30vcHJvamVjdHMvY29tcGlsZXItcnQvY21ha2UvY29u ZmlnLWl4LmNtYWtlCi0JCQk7OwotCWVzYWMKLQogfQogCiBwcmVfY29uZmlndXJlKCkgewpAQCAt MTQzLDkgKzU4LDcgQEAgcHJlX2NvbmZpZ3VyZSgpIHsKIAkJCUNYWEZMQUdTPSIkQlVJTERfQ1hY RkxBR1MiIExERkxBR1M9IiRCVUlMRF9MREZMQUdTIiBcCiAJCQljbWFrZSAuLi8uLiAtRENNQUtF X0JVSUxEX1RZUEU9UmVsZWFzZQogCQltYWtlICR7bWFrZWpvYnN9IC1DIHV0aWxzL1RhYmxlR2Vu Ci0JCW1ha2UgJHttYWtlam9ic30gLUMgdG9vbHMvY2xhbmcvdXRpbHMvVGFibGVHZW4KIAkJY29u ZmlndXJlX2FyZ3MrPSIgLURMTFZNX1RBQkxFR0VOPSR7d3Jrc3JjfS9idWlsZC9IT1NUL2Jpbi9s bHZtLXRibGdlbiIKLQkJY29uZmlndXJlX2FyZ3MrPSIgLURDTEFOR19UQUJMRUdFTj0ke3dya3Ny Y30vYnVpbGQvSE9TVC9iaW4vY2xhbmctdGJsZ2VuIgogCQljZCAuLi8uLgogCWZpCiAKQEAgLTE4 OCwxMjAgKzEwMSw2IEBAIGRvX2luc3RhbGwoKSB7CiAJZmkKIH0KIAotY2xhbmctYW5hbHl6ZXJf cGFja2FnZSgpIHsKLQlweWNvbXBpbGVfZGlycz0idXNyL3NoYXJlL3NjYW4tdmlldyIKLQlkZXBl bmRzPSJjbGFuZy0ke3ZlcnNpb259XyR7cmV2aXNpb259IHB5dGhvbjMiCi0Jc2hvcnRfZGVzYys9 IiAtIEEgc291cmNlIGNvZGUgYW5hbHlzaXMgZnJhbWV3b3JrIgotCWhvbWVwYWdlPSJodHRwczov L2NsYW5nLWFuYWx5emVyLmxsdm0ub3JnLyIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgdXNy L3NoYXJlL21hbi9tYW4xL3NjYW4tYnVpbGQuMQotCQl2bW92ZSAiL3Vzci9iaW4vc2Nhbi0qIgot CQl2bW92ZSAiL3Vzci9zaGFyZS9zY2FuLSoiCi0JCXZtb3ZlICIvdXNyL2xpYmV4ZWMvKmFuYWx5 emVyIgotCX0KLX0KLQotY2xhbmctdG9vbHMtZXh0cmFfcGFja2FnZSgpIHsKLQlsaWIzMmRpc2Fi bGVkPXllcwotCWRlcGVuZHM9ImNsYW5nLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0gcHl0aG9uMyIK LQlzaG9ydF9kZXNjKz0iIC0gRXh0cmEgQ2xhbmcgdG9vbHMiCi0JaG9tZXBhZ2U9Imh0dHBzOi8v Y2xhbmcubGx2bS5vcmcvZXh0cmEvIgotCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSB1c3IvYmlu L2NsYW5nLWFwcGx5LXJlcGxhY2VtZW50cwotCQl2bW92ZSB1c3IvYmluL2NsYW5nLXF1ZXJ5Ci0J CXZtb3ZlIHVzci9iaW4vY2xhbmctcmVuYW1lCi0JCXZtb3ZlIHVzci9iaW4vY2xhbmctdGlkeQot CQl2bW92ZSB1c3IvYmluL2RpYWd0b29sCi0JCXZtb3ZlIHVzci9iaW4vZmluZC1hbGwtc3ltYm9s cwotCQl2bW92ZSB1c3IvYmluL2htYXB0b29sCi0JCXZtb3ZlIHVzci9iaW4vbW9kdWxhcml6ZQot CQl2bW92ZSB1c3IvYmluL3BwLXRyYWNlCi0JCXZtb3ZlIHVzci9iaW4vc2FuY292Ci0JCXZtb3Zl ICJ1c3IvbGliL2xpYmNsYW5nQXBwbHlSZXBsYWNlbWVudHMqIgotCQl2bW92ZSAidXNyL2xpYi9s aWJjbGFuZ1F1ZXJ5KiIKLQkJdm1vdmUgInVzci9saWIvbGliY2xhbmdUaWR5KiIKLQkJdm1vdmUg InVzci9zaGFyZS9jbGFuZy8qdGlkeSoiCi0JfQotfQotCi1jbGFuZ19wYWNrYWdlKCkgewotCWxp YjMyZGlzYWJsZWQ9eWVzCi0JZGVwZW5kcz0ibGlic3RkYysrLWRldmVsIGxpYmdjYy1kZXZlbCAg YmludXRpbHMgJHtYQlBTX1RBUkdFVF9MSUJDfS1kZXZlbAotCSBsaWJjbGFuZy0ke3ZlcnNpb259 XyR7cmV2aXNpb259IgotCXNob3J0X2Rlc2MrPSIgLSBDIGxhbmd1YWdlIGZhbWlseSBmcm9udGVu ZCIKLQlob21lcGFnZT0iaHR0cHM6Ly9jbGFuZy5sbHZtLm9yZy8iCi0JcGtnX2luc3RhbGwoKSB7 Ci0JCXZtb3ZlIHVzci9pbmNsdWRlL2NsYW5nCi0JCXZtb3ZlIHVzci9pbmNsdWRlL2NsYW5nLWMK LQkJdm1vdmUgInVzci9iaW4vKmNsYW5nKiIKLQkJdm1vdmUgdXNyL2Jpbi9jLWluZGV4LXRlc3QK LQkJdm1vdmUgdXNyL2xpYi9jbGFuZwotCQl2bW92ZSB1c3IvbGliL2NtYWtlL2NsYW5nCi0JCXZt b3ZlICJ1c3IvbGliL2xpYmNsYW5nKi5hIgotCQl2bW92ZSAidXNyL2xpYi9saWJjbGFuZyouc28i Ci0JCXZtb3ZlICJ1c3Ivc2hhcmUvY2xhbmciCi0JfQotfQotCi1saWJjbGFuZ19wYWNrYWdlKCkg ewotCXNob3J0X2Rlc2MrPSIgLSBDIGZyb250ZW5kIHJ1bnRpbWUgbGlicmFyeSIKLQlwa2dfaW5z dGFsbCgpIHsKLQkJdm1vdmUgInVzci9saWIvbGliY2xhbmcuc28uKiIKLQl9Ci19Ci0KLWxpYmNs YW5nLWNwcF9wYWNrYWdlKCkgewotCXNob3J0X2Rlc2MrPSIgLSBDIGZyb250ZW5kIHJ1bnRpbWUg bGlicmFyeSAoQysrIGludGVyZmFjZSkiCi0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlICJ1c3Iv bGliL2xpYmNsYW5nLWNwcC5zby4qIgotCX0KLX0KLQotbGxkX3BhY2thZ2UoKSB7Ci0JbGliMzJk aXNhYmxlZD15ZXMKLQlzaG9ydF9kZXNjKz0iIC0gbGlua2VyIgotCWhvbWVwYWdlPSJodHRwczov L2xsZC5sbHZtLm9yZyIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgdXNyL2Jpbi9sbGQqCi0J CXZtb3ZlIHVzci9iaW4vd2FzbS1sZAotCQl2bW92ZSB1c3IvYmluL2xkLmxsZCoKLQl9Ci19Ci0K LWxsZC1kZXZlbF9wYWNrYWdlKCkgewotCWxpYjMyZGlzYWJsZWQ9eWVzCi0Jc2hvcnRfZGVzYys9 IiAtIGxpbmtlciAtIGRldmVsb3BtZW50IGZpbGVzIgotCWhvbWVwYWdlPSJodHRwczovL2xsZC5s bHZtLm9yZyIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgdXNyL2luY2x1ZGUvbGxkCi0JCXZt b3ZlICJ1c3IvbGliL2xpYmxsZCphIgotCX0KLX0KLQotbGxkYl9wYWNrYWdlKCkgewotCWxpYjMy ZGlzYWJsZWQ9eWVzCi0JZGVwZW5kcys9IiBweXRob24zLXNpeCIKLQlzaG9ydF9kZXNjKz0iIC0g TExEQiBkZWJ1Z2dlciIKLQlob21lcGFnZT0iaHR0cHM6Ly9sbGRiLmxsdm0ub3JnLyIKLQlwa2df aW5zdGFsbCgpIHsKLQkJdm1vdmUgdXNyL2Jpbi8qbGxkYioKLQkJdm1vdmUgdXNyL2xpYi9saWJs bGRiKnNvLioKLQkJdm1vdmUgL3Vzci9saWIvcHl0aG9uKgotCQkjIERlcGVuZCBvbiBweXRob24z LXNpeCBpbnN0ZWFkIG9mIGNvbmZsaWN0aW5nCi0JCXJtICR7UEtHREVTVERJUn0vdXNyL2xpYi9w eXRob24zKi9zaXRlLXBhY2thZ2VzL3NpeC5weQotCX0KLX0KLQotbGxkYi1kZXZlbF9wYWNrYWdl KCkgewotCWxpYjMyZGlzYWJsZWQ9eWVzCi0JZGVwZW5kcz0ibGxkYj49JHt2ZXJzaW9ufV8ke3Jl dmlzaW9ufSIKLQlzaG9ydF9kZXNjKz0iIC0gTExEQiBkZWJ1Z2dlciAtIGRldmVsb3BtZW50IGZp bGVzIgotCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSB1c3IvaW5jbHVkZS9sbGRiCi0JCXZtb3Zl ICJ1c3IvbGliL2xpYmxsZGIqLnNvIgotCX0KLX0KLQogbGlibGx2bTEwX3BhY2thZ2UoKSB7CiAJ c2hvcnRfZGVzYys9IiAtIHJ1bnRpbWUgbGlicmFyeSIKIAlwa2dfaW5zdGFsbCgpIHsKCkZyb20g NWNlODYwZTQ3YWU2NDdkZWU2ZjEyYTg1ZDQ0NGJiMjhkMDZjNWIxNyBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogUm9iaW4gVm9ldHRlciA8cm9iaW5Adm9ldHRlci5ubD4KRGF0ZTogU3Vu LCA4IE5vdiAyMDIwIDE4OjI4OjUyICswMTAwClN1YmplY3Q6IFtQQVRDSCAwNC8yMl0gbGx2bS1s aWJ1bndpbmQ6IHVwZGF0ZSB0byAxMS4wLjAKCi0tLQogc3JjcGtncy9sbHZtLWxpYnVud2luZC90 ZW1wbGF0ZSB8IDggKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtLWxpYnVud2luZC90ZW1wbGF0 ZSBiL3NyY3BrZ3MvbGx2bS1saWJ1bndpbmQvdGVtcGxhdGUKaW5kZXggNmUyMGE3OTFlNjUuLjhm Y2U1NmVmZDcwIDEwMDY0NAotLS0gYS9zcmNwa2dzL2xsdm0tbGlidW53aW5kL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3MvbGx2bS1saWJ1bndpbmQvdGVtcGxhdGUKQEAgLTEsMTggKzEsMTggQEAKICMg VGVtcGxhdGUgZmlsZSBmb3IgJ2xsdm0tbGlidW53aW5kJwogcGtnbmFtZT1sbHZtLWxpYnVud2lu ZAotdmVyc2lvbj0xMC4wLjAKK3ZlcnNpb249MTEuMC4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHls ZT1jbWFrZQogd3Jrc3JjPSJsaWJ1bndpbmQtJHt2ZXJzaW9ufS5zcmMiCi1ob3N0bWFrZWRlcGVu ZHM9Imxsdm0xMCIKLW1ha2VkZXBlbmRzPSJsbHZtMTAiCitob3N0bWFrZWRlcGVuZHM9Imxsdm0x MSIKK21ha2VkZXBlbmRzPSJsbHZtMTEiCiBtYWtlX2J1aWxkX2FyZ3M9IlZFUkJPU0U9MSIKIHNo b3J0X2Rlc2M9IkxMVk0gdmVyc2lvbiBvZiBsaWJ1bndpbmQgbGlicmFyeSIKIG1haW50YWluZXI9 Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJOQ1NBLCBNSVQiCiBo b21lcGFnZT0iaHR0cHM6Ly9sbHZtLm9yZyIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29t L2xsdm0vbGx2bS1wcm9qZWN0L3JlbGVhc2VzL2Rvd25sb2FkL2xsdm1vcmctJHt2ZXJzaW9ufS9s aWJ1bndpbmQtJHt2ZXJzaW9ufS5zcmMudGFyLnh6IgotY2hlY2tzdW09MDlkYzVlY2M0NzE0ODA5 ZWNmNjI5MDhhZThmZTg2MzVhYjQ3Njg4MDQ1NTI4NzAzNmEyNzMwOTY2ODMzYzYyNgorY2hlY2tz dW09ODQ1NTAxMWMzM2IxNGFiZmU1N2IyZmQ5ODAzZmI2MTAzMTZiMTZkNGM5ODE4YmVjNTUyMjg3 ZTJiYTY4OTIyZgogCiBwb3N0X2luc3RhbGwoKSB7CiAJdm1rZGlyIHVzci9pbmNsdWRlCgpGcm9t IDg1NWIxZTc4YjA5NDAwM2NmMjA1MzRiYTUyMTg4MjgxMzExN2EzYzIgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IFJvYmluIFZvZXR0ZXIgPHJvYmluQHZvZXR0ZXIubmw+CkRhdGU6IE1v biwgOSBOb3YgMjAyMCAwMToxNzoyNiArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDUvMjJdIGxpYmN4 eGFiaTogdXBkYXRlIHRvIDExLjAuMAoKLS0tCiBzcmNwa2dzL2xpYmN4eGFiaS90ZW1wbGF0ZSB8 IDE5ICsrKysrKysrLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyks IDExIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGliY3h4YWJpL3RlbXBsYXRl IGIvc3JjcGtncy9saWJjeHhhYmkvdGVtcGxhdGUKaW5kZXggMzkzYWVmYzViMzEuLjIxY2JhNGRi YzVmIDEwMDY0NAotLS0gYS9zcmNwa2dzL2xpYmN4eGFiaS90ZW1wbGF0ZQorKysgYi9zcmNwa2dz L2xpYmN4eGFiaS90ZW1wbGF0ZQpAQCAtMSwyMyArMSwyMyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZv ciAnbGliY3h4YWJpJwogcGtnbmFtZT1saWJjeHhhYmkKLXZlcnNpb249MTAuMC4wCit2ZXJzaW9u PTExLjAuMAogcmV2aXNpb249MQogd3Jrc3JjPSIke3BrZ25hbWV9LSR7dmVyc2lvbn0uc3JjIgog YnVpbGRfc3R5bGU9Y21ha2UKLWNvbmZpZ3VyZV9hcmdzPSItRExJQkNYWEFCSV9MSUJDWFhfSU5D TFVERVM9Li4vbGliY3h4L2luY2x1ZGUKK2NvbmZpZ3VyZV9hcmdzPSItRExJQkNYWEFCSV9MSUJD WFhfSU5DTFVERVM9Li4vLi4vbGliY3h4L2luY2x1ZGUKICAtRExJQkNYWEFCSV9VU0VfTExWTV9V TldJTkRFUj0xCiAgLURMTFZNX0RFRkFVTFRfVEFSR0VUX1RSSVBMRT0ke1hCUFNfQ1JPU1NfVFJJ UExFVDotJFhCUFNfVFJJUExFVH0iCiBtYWtlX2J1aWxkX2FyZ3M9IlZFUkJPU0U9MSIKLWhvc3Rt YWtlZGVwZW5kcz0iY2xhbmctdG9vbHMtZXh0cmEgbGx2bTEwIgotbWFrZWRlcGVuZHM9Imxsdm0x MCBsbHZtLWxpYnVud2luZC1kZXZlbCIKK2hvc3RtYWtlZGVwZW5kcz0iY2xhbmctdG9vbHMtZXh0 cmEgbGx2bTExIgorbWFrZWRlcGVuZHM9Imxsdm0xMSBsbHZtLWxpYnVud2luZC1kZXZlbCIKIHNo b3J0X2Rlc2M9Ikxvdy1sZXZlbCBzdXBwb3J0IGZvciBsaWJjKysgc3RhbmRhcmQgbGlicmFyeSIK IG1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJO Q1NBLCBNSVQiCiBob21lcGFnZT0iaHR0cHM6Ly9saWJjeHhhYmkubGx2bS5vcmciCiBkaXN0Zmls ZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS9sbHZtL2xsdm0tcHJvamVjdC9yZWxlYXNlcy9kb3dubG9h ZC9sbHZtb3JnLSR7dmVyc2lvbn0vbGliY3h4YWJpLSR7dmVyc2lvbn0uc3JjLnRhci54egogIGh0 dHBzOi8vZ2l0aHViLmNvbS9sbHZtL2xsdm0tcHJvamVjdC9yZWxlYXNlcy9kb3dubG9hZC9sbHZt b3JnLSR7dmVyc2lvbn0vbGliY3h4LSR7dmVyc2lvbn0uc3JjLnRhci54eiIKLWNoZWNrc3VtPSJl NzFiYWM3NWE4OGM5ZGRlNDU1YWQzZjJhMmI0NDliZjc0NWVhZmQ0MWQyZDg0MzIyNTNiMjk2NGUw Y2ExNGUxCi0gMjcwZjhhM2YxNzZmMTk4MWIwZjZhYjhhYTU1NjcyMDk4ODg3MmVjMmI0OGVkM2I2 MDVkMGNlZDhkMDkxNTZjNyIKK2NoZWNrc3VtPSI1ODY5N2Q0NDI3YjdhODU0ZWM3NTI5MzM3NDc3 ZWI0ZmJhMTY0MDcyMjIzOTBhZDgxYTQwZDEyNTY3M2U0YzE1CisgNmMxZWU2NjkwMTIyZjI3MTFh NzdiYzE5MjQxODM0YTkyMTlkZGE1MDM2ZTE1OTdiZmEzOTdmMzQxYTliOGI3YSIKIAogY2FzZSAi JFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCiAJYXJtdls2N11sKQpAQCAtMjYsMTEgKzI2LDggQEAg Y2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCiBlc2FjCiAKIHBvc3RfZXh0cmFjdCgpIHsK LQkjIEJyZWFrIGRlcGVuZGVuY3kgY3ljbGUsIHdlIGp1c3QgbmVlZCB0aGUgaGVhZGVycyBoZXJl Ci0JbXYgLi4vbGliY3h4LSR7dmVyc2lvbn0uc3JjIGxpYmN4eAotCi0JIyBGb3IgbXVzbAotCXNl ZCAtaSAncy8hZGVmaW5lZChfR0NDX01BWF9BTElHTl9UKS8mIFwmXCYgIWRlZmluZWQoX19ERUZJ TkVEX21heF9hbGlnbl90KS8nIGxpYmN4eC9pbmNsdWRlL3N0ZGRlZi5oCisJIyBTaW5jZSBsbHZt IDExLCBsaWJjeHggbmVlZHMgdG8gYmUgcHJlc2VudCBuZXh0IHRvIHRoZSBsaWJjeHhhYmkgcm9v dAorCW12IC4uL2xpYmN4eC0ke3ZlcnNpb259LnNyYyAuLi9saWJjeHgKIH0KIAogcG9zdF9pbnN0 YWxsKCkgewoKRnJvbSBlY2MzN2JlMjEyN2RhNzUwZWUzZjg1ODQwNzAzMDE5MDNmYTJiNTZhIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBSb2JpbiBWb2V0dGVyIDxyb2JpbkB2b2V0dGVy Lm5sPgpEYXRlOiBNb24sIDkgTm92IDIwMjAgMDE6MTc6NTAgKzAxMDAKU3ViamVjdDogW1BBVENI IDA2LzIyXSBsaWJjeHg6IHVwZGF0ZSB0byAxMS4wLjAKCi0tLQogc3JjcGtncy9saWJjeHgvdGVt cGxhdGUgfCAyMyArKysrKysrKysrKysrKysrLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE2IGlu c2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJjeHgv dGVtcGxhdGUgYi9zcmNwa2dzL2xpYmN4eC90ZW1wbGF0ZQppbmRleCA5NWExNmJjY2Y1Ny4uM2Yx NWI2M2QzYTcgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbGliY3h4L3RlbXBsYXRlCisrKyBiL3NyY3Br Z3MvbGliY3h4L3RlbXBsYXRlCkBAIC0xLDIxICsxLDI3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9y ICdsaWJjeHgnCiBwa2duYW1lPWxpYmN4eAotdmVyc2lvbj0xMC4wLjAKK3ZlcnNpb249MTEuMC4w CiByZXZpc2lvbj0xCiB3cmtzcmM9IiR7cGtnbmFtZX0tJHt2ZXJzaW9ufS5zcmMiCiBidWlsZF9z dHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3MrPSIgLURMSUJDWFhfQ1hYX0FCST1saWJjeHhhYmkg LURMSUJDWFhfRU5BQkxFX1NUQVRJQ19BQklfTElCUkFSWT1PTgogIC1ETElCQ1hYX0NYWF9BQklf TElCUkFSWV9QQVRIPSR7WEJQU19DUk9TU19CQVNFfS91c3IvbGliCiAgLURMSUJDWFhBQklfVVNF X0xMVk1fVU5XSU5ERVI9MSIKLWhvc3RtYWtlZGVwZW5kcz0ibGx2bTEwIGNsYW5nLXRvb2xzLWV4 dHJhIHB5dGhvbjMiCi1tYWtlZGVwZW5kcz0ibGliY3h4YWJpLWRldmVsIGxsdm0xMCBsbHZtLWxp YnVud2luZC1kZXZlbCIKK2hvc3RtYWtlZGVwZW5kcz0ibGx2bTExIGNsYW5nLXRvb2xzLWV4dHJh IHB5dGhvbjMiCittYWtlZGVwZW5kcz0ibGliY3h4YWJpLWRldmVsIGxsdm0xMSBsbHZtLWxpYnVu d2luZC1kZXZlbCIKIG1ha2VfYnVpbGRfYXJncz0iVkVSQk9TRT0xIgogc2hvcnRfZGVzYz0iTmV3 IGltcGxlbWVudGF0aW9uIG9mIHRoZSBDKysgc3RhbmRhcmQgbGlicmFyeSwgdGFyZ2V0aW5nIEMr KzExLCBDKysxNCBhbmQgYWJvdmUiCiBtYWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRs aW51eC5vcmc+IgogbGljZW5zZT0iTkNTQSwgTUlUIgogaG9tZXBhZ2U9Imh0dHBzOi8vbGliY3h4 Lmxsdm0ub3JnIgotZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vbGx2bS9sbHZtLXByb2pl Y3QvcmVsZWFzZXMvZG93bmxvYWQvbGx2bW9yZy0ke3ZlcnNpb259L2xpYmN4eC0ke3ZlcnNpb259 LnNyYy50YXIueHoiCi1jaGVja3N1bT0yNzBmOGEzZjE3NmYxOTgxYjBmNmFiOGFhNTU2NzIwOTg4 ODcyZWMyYjQ4ZWQzYjYwNWQwY2VkOGQwOTE1NmM3CitkaXN0ZmlsZXM9IgorIGh0dHBzOi8vZ2l0 aHViLmNvbS9sbHZtL2xsdm0tcHJvamVjdC9yZWxlYXNlcy9kb3dubG9hZC9sbHZtb3JnLSR7dmVy c2lvbn0vbGliY3h4LSR7dmVyc2lvbn0uc3JjLnRhci54egorIGh0dHBzOi8vZ2l0aHViLmNvbS9s bHZtL2xsdm0tcHJvamVjdC9yZWxlYXNlcy9kb3dubG9hZC9sbHZtb3JnLSR7dmVyc2lvbn0vbGli Y3h4YWJpLSR7dmVyc2lvbn0uc3JjLnRhci54egorIGh0dHBzOi8vZ2l0aHViLmNvbS9sbHZtL2xs dm0tcHJvamVjdC9yZWxlYXNlcy9kb3dubG9hZC9sbHZtb3JnLSR7dmVyc2lvbn0vbGx2bS0ke3Zl cnNpb259LnNyYy50YXIueHoiCitjaGVja3N1bT0iCisgNmMxZWU2NjkwMTIyZjI3MTFhNzdiYzE5 MjQxODM0YTkyMTlkZGE1MDM2ZTE1OTdiZmEzOTdmMzQxYTliOGI3YQorIDU4Njk3ZDQ0MjdiN2E4 NTRlYzc1MjkzMzc0NzdlYjRmYmExNjQwNzIyMjM5MGFkODFhNDBkMTI1NjczZTRjMTUKKyA5MTNm NjhjODk4ZGZiNGEwM2IzOTdjNWUxMWM2YTJmMzlkMGYyMmVkNzY2NWM5Y2VmYTg3YTM0NDIzYTcy NDY5IgogCiBjYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KIAkqLW11c2wpIGNvbmZpZ3Vy ZV9hcmdzKz0iIC1ETElCQ1hYX0hBU19NVVNMX0xJQkM9WUVTIgpAQCAtMjMsOSArMjksMTIgQEAg ZXNhYwogCiBwb3N0X2V4dHJhY3QoKSB7CiAJY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGlu Ci0JKi1tdXNsKSBwYXRjaCAtTnAxIDwke0ZJTEVTRElSfS9saWJjeHgtMDAwMS1tdXNsLWhhY2tz LnBhdGNoCi0JCXNlZCAtaSAncy8hZGVmaW5lZChfR0NDX01BWF9BTElHTl9UKS8mIFwmXCYgIWRl ZmluZWQoX19ERUZJTkVEX21heF9hbGlnbl90KS8nIGluY2x1ZGUvc3RkZGVmLmggOzsKKwkqLW11 c2wpIHBhdGNoIC1OcDEgPCR7RklMRVNESVJ9L2xpYmN4eC0wMDAxLW11c2wtaGFja3MucGF0Y2gg OzsKIAllc2FjCisKKwkjIFNpbmNlIGxsdm0gMTEsIGxpYmN4eGFiaSBhbmQgbGx2bSBuZWVkIHRv IGJlIHByZXNlbnQgbmV4dCB0byB0aGUgbGliY3h4IHJvb3QKKwltdiAuLi9saWJjeHhhYmktJHt2 ZXJzaW9ufS5zcmMgLi4vbGliY3h4YWJpCisJbXYgLi4vbGx2bS0ke3ZlcnNpb259LnNyYyAuLi9s bHZtCiB9CiAKIHBvc3RfaW5zdGFsbCgpIHsKCkZyb20gYjc5MzY2YzVlNTZmMjVjZTNhZjUzNGZj NjM1ZWQyMjIzY2JhMjY3MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUm9iaW4gVm9l dHRlciA8cm9iaW5Adm9ldHRlci5ubD4KRGF0ZTogTW9uLCA5IE5vdiAyMDIwIDAyOjIyOjUyICsw MTAwClN1YmplY3Q6IFtQQVRDSCAwNy8yMl0gbWVzYTogcmVidWlsZCBmb3IgbGx2bTExCgotLS0K IHNyY3BrZ3MvbWVzYS90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlv bigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbWVzYS90ZW1wbGF0ZSBi L3NyY3BrZ3MvbWVzYS90ZW1wbGF0ZQppbmRleCAwZWM2MzYwZTBiMy4uN2MwODgyMDI3OWUgMTAw NjQ0Ci0tLSBhL3NyY3BrZ3MvbWVzYS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL21lc2EvdGVtcGxh dGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdtZXNhJwogcGtnbmFtZT1t ZXNhCiB2ZXJzaW9uPTIwLjIuMQotcmV2aXNpb249MQorcmV2aXNpb249Mgogd3Jrc3JjPSJtZXNh LSR7dmVyc2lvbn0iCiBidWlsZF9zdHlsZT1tZXNvbgogY29uZmlndXJlX2FyZ3M9Ii1EZ2x2bmQ9 dHJ1ZSAtRHNoYXJlZC1nbGFwaT10cnVlIC1EZ2JtPXRydWUgLURlZ2w9dHJ1ZQoKRnJvbSA1NWRm YmJlMzQ0YTZjMGZlNzRjYzFmNjNmMTY0MjY3NWVlZGUwOTMyIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBSb2JpbiBWb2V0dGVyIDxyb2JpbkB2b2V0dGVyLm5sPgpEYXRlOiBNb24sIDkg Tm92IDIwMjAgMDI6Mzc6MzggKzAxMDAKU3ViamVjdDogW1BBVENIIDA4LzIyXSBzaGlib2tlbjI6 IHJlYnVpbGQgZm9yIGxsdm0xMQoKLS0tCiBzcmNwa2dzL3NoaWJva2VuMi90ZW1wbGF0ZSB8IDIg Ky0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAt LWdpdCBhL3NyY3BrZ3Mvc2hpYm9rZW4yL3RlbXBsYXRlIGIvc3JjcGtncy9zaGlib2tlbjIvdGVt cGxhdGUKaW5kZXggMjBlYTVhYWU3ZTIuLmQwMDcyMjU0ODQyIDEwMDY0NAotLS0gYS9zcmNwa2dz L3NoaWJva2VuMi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3NoaWJva2VuMi90ZW1wbGF0ZQpAQCAt MSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3NoaWJva2VuMicKIHBrZ25hbWU9c2hp Ym9rZW4yCiB2ZXJzaW9uPTUuMTUuMAotcmV2aXNpb249MgorcmV2aXNpb249MwogX3BrZ25hbWU9 InB5c2lkZS1zZXR1cC1vcGVuc291cmNlLXNyYy0ke3ZlcnNpb259Igogd3Jrc3JjPSIke19wa2du YW1lLyU1LjE0LjIuMS81LjE0LjJ9IgogYnVpbGRfd3Jrc3JjPSJzb3VyY2VzL3NoaWJva2VuMiIK CkZyb20gNzJhMTcxNjI1OWQxNjQ0MGNlNWIyM2M4Y2NiYWE2YzczNzU2ZDZhNCBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogUm9iaW4gVm9ldHRlciA8cm9iaW5Adm9ldHRlci5ubD4KRGF0 ZTogTW9uLCA5IE5vdiAyMDIwIDAyOjQ4OjQxICswMTAwClN1YmplY3Q6IFtQQVRDSCAwOS8yMl0g Z25vbWUtYnVpbGRlcjogcmVidWlsZCBmb3IgbGx2bTExCgotLS0KIHNyY3BrZ3MvZ25vbWUtYnVp bGRlci90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBk ZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtYnVpbGRlci90ZW1wbGF0ZSBi L3NyY3BrZ3MvZ25vbWUtYnVpbGRlci90ZW1wbGF0ZQppbmRleCAyMjE0NGYzNTM2ZS4uM2Q1OTMy YTY3YTAgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtYnVpbGRlci90ZW1wbGF0ZQorKysgYi9z cmNwa2dzL2dub21lLWJ1aWxkZXIvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICdnbm9tZS1idWlsZGVyJwogcGtnbmFtZT1nbm9tZS1idWlsZGVyCiB2ZXJzaW9u PTMuMzguMAotcmV2aXNpb249MgorcmV2aXNpb249MwogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxk X2hlbHBlcj1xZW11CiBjb25maWd1cmVfYXJncz0iLUR3aXRoX3dlYmtpdD10cnVlIC1Ed2l0aF9z eXNwcm9mPXRydWUgLURoZWxwPXRydWUiCgpGcm9tIDI0N2FlMDNmY2FmYmU3MTQ1ZmNhNDE4MGUw NDIxNzc2YmU2NTRhOTYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFJvYmluIFZvZXR0 ZXIgPHJvYmluQHZvZXR0ZXIubmw+CkRhdGU6IE1vbiwgOSBOb3YgMjAyMCAwMjo0OTo0NiArMDEw MApTdWJqZWN0OiBbUEFUQ0ggMTAvMjJdIGp1Q2krKzogcmVidWlsZCBmb3IgbGx2bTExCgotLS0K IHNyY3BrZ3MvanVDaSsrL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0 aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9qdUNpKysvdGVtcGxh dGUgYi9zcmNwa2dzL2p1Q2krKy90ZW1wbGF0ZQppbmRleCA2OWJiYzA3YWIwMS4uY2E0NjUwZjhm MWYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvanVDaSsrL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvanVD aSsrL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnanVDaSsr JwogcGtnbmFtZT1qdUNpKysKIHZlcnNpb249MS42LjAKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIK IF9saWJjbGFuZ21tX2NvbW1pdD0iMDQzZDk2ZDBiZmJmZTRiYmIyMTZhMDk1NDk5MmQ3NDRhMzVj NjBhYiIKIF90aW55X2NvbW1pdD0iOTUzYjE5YzRjMDY5MmIxOGZiNzI5ZmZkMzBmMWNjMzQxMjc5 N2NkYSIKIHdya3NyYz0ianVjaXBwLXYke3ZlcnNpb259IgoKRnJvbSA5MDM5OTI5OTAyZDY5ZWFm NjYzNzU1ODkxM2FlNGY5NDAyZjZjN2E1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBS b2JpbiBWb2V0dGVyIDxyb2JpbkB2b2V0dGVyLm5sPgpEYXRlOiBNb24sIDkgTm92IDIwMjAgMDM6 MjU6MjggKzAxMDAKU3ViamVjdDogW1BBVENIIDExLzIyXSBxdDU6IHJlYnVpbGQgZm9yIGxsdm0x MQoKLS0tCiBzcmNwa2dzL3F0NS90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGlu c2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ1L3RlbXBs YXRlIGIvc3JjcGtncy9xdDUvdGVtcGxhdGUKaW5kZXggMTk1NDA0OGUyYjEuLmI3MTc0MzhkNGRk IDEwMDY0NAotLS0gYS9zcmNwa2dzL3F0NS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3F0NS90ZW1w bGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3F0NScKIHBrZ25hbWU9 cXQ1CiB2ZXJzaW9uPTUuMTUuMQotcmV2aXNpb249MgorcmV2aXNpb249Mwogd3Jrc3JjPSJxdC1l dmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9bWV0YQogaG9zdG1ha2VkZXBl bmRzPSJjbWFrZSBjbGFuZyBmbGV4IHBlcmwgZ2xpYi1kZXZlbCBwa2ctY29uZmlnCgpGcm9tIDhj ZDJlMjAyNmIwYzE0YzhiZGJmNjUzNGFkNjIwOGE4NjViNDQ0NGIgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IFJvYmluIFZvZXR0ZXIgPHJvYmluQHZvZXR0ZXIubmw+CkRhdGU6IE1vbiwg OSBOb3YgMjAyMCAwMzozODo1MiArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTIvMjJdIHF0Y3JlYXRv cjogcmVidWlsZCBmb3IgbGx2bTExCgotLS0KIHNyY3BrZ3MvcXRjcmVhdG9yL3RlbXBsYXRlIHwg MiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9xdGNyZWF0b3IvdGVtcGxhdGUgYi9zcmNwa2dzL3F0Y3JlYXRvci90 ZW1wbGF0ZQppbmRleCBkZGJkMDE2OGZhNS4uNjdiYjBlODExOTkgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3MvcXRjcmVhdG9yL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcXRjcmVhdG9yL3RlbXBsYXRlCkBA IC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncXRjcmVhdG9yJwogcGtnbmFtZT1x dGNyZWF0b3IKIHZlcnNpb249NC4xMy4yCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiB3cmtzcmM9 InF0LWNyZWF0b3Itb3BlbnNvdXJjZS1zcmMtJHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPXFtYWtl CiBtYWtlX2luc3RhbGxfYXJncz0iSU5TVEFMTF9ST09UPVwke0RFU1RESVJ9L3VzciIKCkZyb20g MmQyMWQ0Yjg0NzE3Y2I2NmIxNWU3ODJlNDk0YWZiYTdjMDRjY2Q1MiBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogUm9iaW4gVm9ldHRlciA8cm9iaW5Adm9ldHRlci5ubD4KRGF0ZTogTW9u LCA5IE5vdiAyMDIwIDEyOjQ4OjIzICswMTAwClN1YmplY3Q6IFtQQVRDSCAxMy8yMl0ga2RldmVs b3A6IHJlYnVpbGQgZm9yIGxsdm0xMQoKLS0tCiBzcmNwa2dzL2tkZXZlbG9wL3RlbXBsYXRlIHwg MiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9rZGV2ZWxvcC90ZW1wbGF0ZSBiL3NyY3BrZ3Mva2RldmVsb3AvdGVt cGxhdGUKaW5kZXggM2NlYTNlYjJlM2UuLmJkYWI2ZTE0OWNiIDEwMDY0NAotLS0gYS9zcmNwa2dz L2tkZXZlbG9wL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mva2RldmVsb3AvdGVtcGxhdGUKQEAgLTEs NyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdrZGV2ZWxvcCcKIHBrZ25hbWU9a2RldmVs b3AKIHZlcnNpb249NS42LjAKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPWNt YWtlCiBjb25maWd1cmVfYXJncz0iLURCVUlMRF9URVNUSU5HPU9GRiIKIGhvc3RtYWtlZGVwZW5k cz0iZXh0cmEtY21ha2UtbW9kdWxlcyBxdDUtcW1ha2UgcXQ1LWhvc3QtdG9vbHMgcXQ1LXRvb2xz CgpGcm9tIDAzYWFhNjMwNmRjMmMzMTg0YjQ3NjkzN2Q2NWMzN2VhYjhkODFkMDkgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IFJvYmluIFZvZXR0ZXIgPHJvYmluQHZvZXR0ZXIubmw+CkRh dGU6IE1vbiwgOSBOb3YgMjAyMCAxMzowNTowMiArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTQvMjJd IGNvZGVsaXRlOiByZWJ1aWxkIGZvciBsbHZtMTEKCi0tLQogc3JjcGtncy9jb2RlbGl0ZS90ZW1w bGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyICstCiAuLi4vbGx2bTEx L2ZpbGVzL3BhdGNoZXMvbGx2bS9sbHZtLTAwMy1wcGMtc2VjdXJlcGx0LnBhdGNoICB8IDYgKysr LS0tCiAyIGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2NvZGVsaXRlL3RlbXBsYXRlIGIvc3JjcGtncy9jb2RlbGl0ZS90 ZW1wbGF0ZQppbmRleCBhMmEwOWQ3OWZhMS4uMmNiNWQzNWJjY2IgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3MvY29kZWxpdGUvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9jb2RlbGl0ZS90ZW1wbGF0ZQpAQCAt MSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2NvZGVsaXRlJwogcGtnbmFtZT1jb2Rl bGl0ZQogdmVyc2lvbj0xMy4wCi1yZXZpc2lvbj0zCityZXZpc2lvbj00CiBhcmNocz0iaTY4Niog eDg2XzY0KiBwcGM2NGxlKiIKIGJ1aWxkX3N0eWxlPWNtYWtlCiBjb25maWd1cmVfYXJncz0iLURX SVRIX1BDSD0wCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMS9maWxlcy9wYXRjaGVzL2xsdm0v bGx2bS0wMDMtcHBjLXNlY3VyZXBsdC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTExL2ZpbGVzL3BhdGNo ZXMvbGx2bS9sbHZtLTAwMy1wcGMtc2VjdXJlcGx0LnBhdGNoCmluZGV4IGZjYmFiYTg2MzM1Li41 YmU4ZGU0ZjA2OCAxMDA2NDQKLS0tIGEvc3JjcGtncy9sbHZtMTEvZmlsZXMvcGF0Y2hlcy9sbHZt L2xsdm0tMDAzLXBwYy1zZWN1cmVwbHQucGF0Y2gKKysrIGIvc3JjcGtncy9sbHZtMTEvZmlsZXMv cGF0Y2hlcy9sbHZtL2xsdm0tMDAzLXBwYy1zZWN1cmVwbHQucGF0Y2gKQEAgLTEsMTEgKzEsMTEg QEAKIC0tLSBsbHZtL2xpYi9UYXJnZXQvUG93ZXJQQy9QUENTdWJ0YXJnZXQuY3BwCiArKysgbGx2 bS9saWIvVGFyZ2V0L1Bvd2VyUEMvUFBDU3VidGFyZ2V0LmNwcAotQEAgLTE1MCw3ICsxNTAsNyBA QCB2b2lkIFBQQ1N1YnRhcmdldDo6aW5pdFN1YnRhcmdldEZlYXR1cmVzKFN0cmluZ1JlZiBDUFUs IFN0cmluZ1JlZiBGUykgewotIAorQEAgLTE1Myw3ICsxNTMsNyBAQAorCiAgICBpZiAoKFRhcmdl dFRyaXBsZS5pc09TRnJlZUJTRCgpICYmIFRhcmdldFRyaXBsZS5nZXRPU01ham9yVmVyc2lvbigp ID49IDEzKSB8fAogICAgICAgIFRhcmdldFRyaXBsZS5pc09TTmV0QlNEKCkgfHwgVGFyZ2V0VHJp cGxlLmlzT1NPcGVuQlNEKCkgfHwKIC0gICAgICBUYXJnZXRUcmlwbGUuaXNNdXNsKCkpCiArICAg ICAgaXNUYXJnZXRMaW51eCgpKQogICAgICBTZWN1cmVQbHQgPSB0cnVlOwotIAorCiAgICBpZiAo SGFzU1BFICYmIElzUFBDNjQpCgpGcm9tIDkzNjVhNmYxNmYwNzliNjAwYjM5YzM0MTE0YWVlMTIw OWEzNGI2NzAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFJvYmluIFZvZXR0ZXIgPHJv YmluQHZvZXR0ZXIubmw+CkRhdGU6IE1vbiwgOSBOb3YgMjAyMCAxMzowNzo0NCArMDEwMApTdWJq ZWN0OiBbUEFUQ0ggMTUvMjJdIHJ0YWdzOiByZWJ1aWxkIGZvciBsbHZtMTEKCi0tLQogc3JjcGtn cy9ydGFncy90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwg MSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcnRhZ3MvdGVtcGxhdGUgYi9zcmNw a2dzL3J0YWdzL3RlbXBsYXRlCmluZGV4IDcxNWYyZTBjNzMxLi5kNzE4ZTZjMzA5MCAxMDA2NDQK LS0tIGEvc3JjcGtncy9ydGFncy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3J0YWdzL3RlbXBsYXRl CkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncnRhZ3MnCiBwa2duYW1lPXJ0 YWdzCiB2ZXJzaW9uPTIuMzgKLXJldmlzaW9uPTMKK3JldmlzaW9uPTQKIGJ1aWxkX3N0eWxlPWNt YWtlCiAjIERvbid0IHJ1biB0ZXN0cyBpbiBkb19pbnN0YWxsLCBwbGVhc2UuCiBjb25maWd1cmVf YXJncz0iLURTS0lQX0NURVNUPVRSVUUiCgpGcm9tIGI2NzQ1NzhjODkyZmQwMTE2ODEyNmQzZmUz ZDdkYTVkM2FkMjE3MWIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFJvYmluIFZvZXR0 ZXIgPHJvYmluQHZvZXR0ZXIubmw+CkRhdGU6IE1vbiwgOSBOb3YgMjAyMCAxMzowODo1NiArMDEw MApTdWJqZWN0OiBbUEFUQ0ggMTYvMjJdIGNjbHM6IHJlYnVpbGQgZm9yIGxsdm0xMQoKLS0tCiBz cmNwa2dzL2NjbHMvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24o KyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2NjbHMvdGVtcGxhdGUgYi9z cmNwa2dzL2NjbHMvdGVtcGxhdGUKaW5kZXggMWViNmQ5YmFmYzcuLjM1YTczOTU1ZTExIDEwMDY0 NAotLS0gYS9zcmNwa2dzL2NjbHMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9jY2xzL3RlbXBsYXRl CkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnY2NscycKIHBrZ25hbWU9Y2Ns cwogdmVyc2lvbj0wLjIwMjAxMDI1Ci1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHls ZT1jbWFrZQogaG9zdG1ha2VkZXBlbmRzPSJjbGFuZy10b29scy1leHRyYSIKIG1ha2VkZXBlbmRz PSJjbGFuZyBsbHZtIG5jdXJzZXMtZGV2ZWwgcmFwaWRqc29uIHpsaWItZGV2ZWwiCgpGcm9tIGQ4 NzE0MTBkNmY1MGNlZjAzMTk4MzY1N2NlYWFmNzU4NDZjOGUyMDggTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IFJvYmluIFZvZXR0ZXIgPHJvYmluQHZvZXR0ZXIubmw+CkRhdGU6IE1vbiwg OSBOb3YgMjAyMCAxMzozMjo0OCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTcvMjJdIGlzcGM6IHJl YnVpbGQgZm9yIGxsdm0xMQoKLS0tCiBzcmNwa2dzL2lzcGMvdGVtcGxhdGUgfCAyICstCiAxIGZp bGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9z cmNwa2dzL2lzcGMvdGVtcGxhdGUgYi9zcmNwa2dzL2lzcGMvdGVtcGxhdGUKaW5kZXggMmYzNmQ0 NTE1N2EuLjA1NGUzYTE1MjNkIDEwMDY0NAotLS0gYS9zcmNwa2dzL2lzcGMvdGVtcGxhdGUKKysr IGIvc3JjcGtncy9pc3BjL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxl IGZvciAnaXNwYycKIHBrZ25hbWU9aXNwYwogdmVyc2lvbj0xLjE0LjEKLXJldmlzaW9uPTEKK3Jl dmlzaW9uPTIKIGFyY2hzPSJ4ODZfNjQqIgogYnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9h cmdzPSItRElTUENfTk9fRFVNUFM9T04gLURBUk1fRU5BQkxFRD1PRkYiCgpGcm9tIDgwODA2ZmNj MjRjMGIzZmI5MTM0MjI1YWYzOTJjYTJiODg4Nzk2YmYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IFJvYmluIFZvZXR0ZXIgPHJvYmluQHZvZXR0ZXIubmw+CkRhdGU6IE1vbiwgOSBOb3Yg MjAyMCAxNDoyNDoyMCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTgvMjJdIHppZzogdXBkYXRlIHRv IDAuNy4wCgotLS0KIHNyY3BrZ3MvemlnL3RlbXBsYXRlIHwgOCArKysrLS0tLQogMSBmaWxlIGNo YW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNw a2dzL3ppZy90ZW1wbGF0ZSBiL3NyY3BrZ3MvemlnL3RlbXBsYXRlCmluZGV4IGUzNGQ2NDcxNzI4 Li43MjdhNjc1MzgzYSAxMDA2NDQKLS0tIGEvc3JjcGtncy96aWcvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy96aWcvdGVtcGxhdGUKQEAgLTEsMTYgKzEsMTYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3Ig J3ppZycKIHBrZ25hbWU9emlnCi12ZXJzaW9uPTAuNi4wCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTAu Ny4wCityZXZpc2lvbj0xCiBhcmNocz0ieDg2XzY0KiBhYXJjaDY0KiIKIGJ1aWxkX3N0eWxlPWNt YWtlCi1tYWtlZGVwZW5kcz0iY2xhbmcgbGx2bTEwIGxsZC1kZXZlbCIKK21ha2VkZXBlbmRzPSJj bGFuZyBsbHZtMTEgbGxkLWRldmVsIgogc2hvcnRfZGVzYz0iUHJvZ3JhbW1pbmcgbGFuZ3VhZ2Ug ZGVzaWduZWQgZm9yIHJvYnVzdG5lc3MsIG9wdGltYWxpdHksIGFuZCBjbGFyaXR5IgogbWFpbnRh aW5lcj0iRHVuY2FlbiA8ZHVuY2FlbkB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9Ik1JVCIKIGhv bWVwYWdlPSJodHRwczovL3ppZ2xhbmcub3JnLyIKIGRpc3RmaWxlcz0iaHR0cHM6Ly96aWdsYW5n Lm9yZy9kb3dubG9hZC8ke3ZlcnNpb259L3ppZy0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3Vt PTVkMTY3ZGMxOTM1NDI4MmRkMzVkZDE3YjM4ZTk5ZTE3NjM3MTNiOWJlOGE0YmE5ZTllNjkyODRl MDU5ZTcyMDQKK2NoZWNrc3VtPTBlZmQyY2Y2YzNiMDU3MjNkYjgwZTljZjE5M2JjNTUxNTBiYmE4 NGNhNDFmODU1YTkwZjUzZmM3NTY0NDVmODMKIG5vcGllPXllcwogbm9jcm9zcz15ZXMKIAoKRnJv bSAxZjBiNTE3NGU4NzNkMjA3Nzc4ZWViZTMzNjQxNGU3ZTkyMTJiODY2IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBSb2JpbiBWb2V0dGVyIDxyb2JpbkB2b2V0dGVyLm5sPgpEYXRlOiBN b24sIDkgTm92IDIwMjAgMTQ6NDE6NTMgKzAxMDAKU3ViamVjdDogW1BBVENIIDE5LzIyXSBjbGF6 eTogcmVidWlsZCBmb3IgbGx2bTExCgotLS0KIC4uLi9maWxlcy9jbGF6eS0wMDEtbGx2bTExLXN0 cmluZ3JlZi5wYXRjaCAgICB8IDM0MyArKysrKysrKysrKysrKysrKysKIC4uLi9maWxlcy9jbGF6 eS0wMDItbGx2bTExLXN0cmluZ3JlZi5wYXRjaCAgICB8ICAyOCArKwogc3JjcGtncy9jbGF6eS90 ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICAgIHwgICA4ICstCiAzIGZpbGVzIGNoYW5nZWQs IDM3OCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9jbGF6eS9maWxlcy9jbGF6eS0wMDEtbGx2bTExLXN0cmluZ3JlZi5wYXRjaAogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvY2xhenkvZmlsZXMvY2xhenktMDAyLWxsdm0xMS1zdHJpbmdy ZWYucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2NsYXp5L2ZpbGVzL2NsYXp5LTAwMS1sbHZt MTEtc3RyaW5ncmVmLnBhdGNoIGIvc3JjcGtncy9jbGF6eS9maWxlcy9jbGF6eS0wMDEtbGx2bTEx LXN0cmluZ3JlZi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u NDgwNDlmYTU5NGEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2NsYXp5L2ZpbGVzL2NsYXp5 LTAwMS1sbHZtMTEtc3RyaW5ncmVmLnBhdGNoCkBAIC0wLDAgKzEsMzQzIEBACitGcm9tIDMwZDZh MmI2NGY1YTA1NzIyZmRjNWQ4ZTM3NTRkYmYxMzQyNWNkNjIgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCitGcm9tOiBFZ29yIEdhYm92IDxlZ29yLmdhYm92QHdhdmVhY2Nlc3MucnU+CitEYXRlOiBU aHUsIDQgSnVuIDIwMjAgMTc6MTA6MjEgKzAzMDAKK1N1YmplY3Q6IFtQQVRDSF0gdXBkYXRlZCBm b3IgY29tcGF0aWJpbGl0eSB3aXRoIExMVk0gMTAKKworSW4gTExWTSAxMCBsbHZtOjpTdHJpbmdS ZWYgb3BlcmF0b3Igc3RkOjpzdHJpbmcoKSBpcyBtYXJrZWQgYXMgZXhwbGljaXQuCitJbiB0aGlz IGNvbW1pdCBhbGwgaW1wbGljaXQgY29udmVyc2lvbiBmcm9tIGxsdm06OlN0cmluZ1JlZiB0bwor c3RkOjpzdHJpbmcgYXJlIGNoYW5nZWQgYnkgZXhwbGljaXQuCitBbHNvIGluY2x1ZGVkIGhlYWRl ciBmaWxlIGNsYW5nL0Jhc2ljL0ZpbGVNYW5hZ2VyLmggaW4gc3JjL01pbmlEdW1wZXIKK2JlY2F1 c2Ugd2l0aG91dCB0aGlzIGhlYWRlciwgY2xhc3MgY2xhbmc6OkZpbGVFbnRyeSBpbiBpbmNvbXBs ZXRlIGNsYXNzCistLS0KKyBzcmMvRml4SXRFeHBvcnRlci5jcHAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8IDUgKysrLS0KKyBzcmMvTWluaUFzdER1bXBlci5jcHAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8IDEgKworIHNyYy9VdGlscy5jcHAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMiArLQorIHNyYy9jaGVja2Jhc2UuY3BwICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMiArLQorIHNyYy9jaGVja3MvZGV0 YWNoaW5nYmFzZS5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMiArLQorIHNyYy9jaGVj a3MvbGV2ZWwwL3FlbnVtcy5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMiArLQorIHNy Yy9jaGVja3MvbGV2ZWwwL3F0LW1hY3Jvcy5jcHAgICAgICAgICAgICAgICAgICAgICAgIHwgNCAr Ky0tCisgc3JjL2NoZWNrcy9sZXZlbDAvdW51c2VkLW5vbi10cml2aWFsLXZhcmlhYmxlLmNwcCAg ICAgfCAyICstCisgc3JjL2NoZWNrcy9sZXZlbDEvZGV0YWNoaW5nLXRlbXBvcmFyeS5jcHAgICAg ICAgICAgICAgfCAyICstCisgc3JjL2NoZWNrcy9sZXZlbDEvbm9uLXBvZC1nbG9iYWwtc3RhdGlj LmNwcCAgICAgICAgICAgfCAyICstCisgc3JjL2NoZWNrcy9sZXZlbDEvcXByb3BlcnR5LXdpdGhv dXQtbm90aWZ5LmNwcCAgICAgICAgfCAyICstCisgc3JjL2NoZWNrcy9sZXZlbDIvbWlzc2luZy10 eXBlaW5mby5jcHAgICAgICAgICAgICAgICAgfCAyICstCisgc3JjL2NoZWNrcy9sZXZlbDIvb2xk LXN0eWxlLWNvbm5lY3QuY3BwICAgICAgICAgICAgICAgfCA2ICsrKy0tLQorIHNyYy9jaGVja3Mv bGV2ZWwyL3J1bGUtb2YtdGhyZWUuY3BwICAgICAgICAgICAgICAgICAgIHwgMiArLQorIHNyYy9j aGVja3MvbWFudWFsbGV2ZWwvaWZuZGVmLWRlZmluZS10eXBvLmNwcCAgICAgICAgIHwgNiArKyst LS0KKyBzcmMvY2hlY2tzL21hbnVhbGxldmVsL3Fwcm9wZXJ0eS10eXBlLW1pc21hdGNoLmNwcCAg ICB8IDIgKy0KKyBzcmMvY2hlY2tzL21hbnVhbGxldmVsL3FyZXF1aXJlZHJlc3VsdC1jYW5kaWRh dGVzLmNwcCB8IDIgKy0KKyBzcmMvY2hlY2tzL21hbnVhbGxldmVsL3F0LWtleXdvcmRzLmNwcCAg ICAgICAgICAgICAgICB8IDQgKystLQorIHNyYy9jaGVja3MvbWFudWFsbGV2ZWwvcmVzZXJ2ZS1j YW5kaWRhdGVzLmNwcCAgICAgICAgIHwgMyArKy0KKyAxOSBmaWxlcyBjaGFuZ2VkLCAyOCBpbnNl cnRpb25zKCspLCAyNSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3NyYy9GaXhJdEV4cG9y dGVyLmNwcCBiL3NyYy9GaXhJdEV4cG9ydGVyLmNwcAoraW5kZXggZjNhZjJlNTQuLjQ0MjQwY2Y1 IDEwMDY0NAorLS0tIGEvc3JjL0ZpeEl0RXhwb3J0ZXIuY3BwCisrKysgYi9zcmMvRml4SXRFeHBv cnRlci5jcHAKK0BAIC02OCw3ICs2OCw3IEBAIHZvaWQgRml4SXRFeHBvcnRlcjo6QmVnaW5Tb3Vy Y2VGaWxlKGNvbnN0IExhbmdPcHRpb25zICZMYW5nT3B0cywgY29uc3QgUHJlcHJvY2VzCisgCisg ICAgIGNvbnN0IGF1dG8gaWQgPSBTb3VyY2VNZ3IuZ2V0TWFpbkZpbGVJRCgpOworICAgICBjb25z dCBhdXRvIGVudHJ5ID0gU291cmNlTWdyLmdldEZpbGVFbnRyeUZvcklEKGlkKTsKKy0gICAgZ2V0 VHVEaWFnKCkuTWFpblNvdXJjZUZpbGUgPSBlbnRyeS0+Z2V0TmFtZSgpOworKyAgICBnZXRUdURp YWcoKS5NYWluU291cmNlRmlsZSA9IHN0YXRpY19jYXN0PHN0ZDo6c3RyaW5nPihlbnRyeS0+Z2V0 TmFtZSgpKTsKKyB9CisgCisgYm9vbCBGaXhJdEV4cG9ydGVyOjpJbmNsdWRlSW5EaWFnbm9zdGlj Q291bnRzKCkgY29uc3QKK0BAIC04OSw3ICs4OSw4IEBAIHRvb2xpbmc6OkRpYWdub3N0aWMgRml4 SXRFeHBvcnRlcjo6Q29udmVydERpYWdub3N0aWMoY29uc3QgRGlhZ25vc3RpYyAmSW5mbykKKyAg ICAgLy8gVE9ETzogVGhpcyByZXR1cm5zIGFuIGVtcHR5IHN0cmluZzogRGlhZ0VuZ2luZS0+Z2V0 RGlhZ25vc3RpY0lEcygpLT5nZXRXYXJuaW5nT3B0aW9uRm9yRGlhZyhJbmZvLmdldElEKCkpOwor ICAgICAvLyBIQUNLOiBjYXB0dXJlIGl0IGF0IHRoZSBlbmQgb2YgdGhlIG1lc3NhZ2U6IE1lc3Nh Z2UgdGV4dCBbY2hlY2stbmFtZV0KKyAKKy0gICAgc3RkOjpzdHJpbmcgY2hlY2tOYW1lID0gRGlh Z0VuZ2luZS5nZXREaWFnbm9zdGljSURzKCktPmdldFdhcm5pbmdPcHRpb25Gb3JEaWFnKEluZm8u Z2V0SUQoKSk7CisrICAgIHN0ZDo6c3RyaW5nIGNoZWNrTmFtZSA9CisrICAgICAgICBzdGF0aWNf Y2FzdDxzdGQ6OnN0cmluZz4oRGlhZ0VuZ2luZS5nZXREaWFnbm9zdGljSURzKCktPmdldFdhcm5p bmdPcHRpb25Gb3JEaWFnKEluZm8uZ2V0SUQoKSkpOworICAgICBzdGQ6OnN0cmluZyBtZXNzYWdl VGV4dDsKKyAKKyAgICAgaWYgKGNoZWNrTmFtZS5lbXB0eSgpKSB7CitkaWZmIC0tZ2l0IGEvc3Jj L01pbmlBc3REdW1wZXIuY3BwIGIvc3JjL01pbmlBc3REdW1wZXIuY3BwCitpbmRleCA0NzY2MTc0 OS4uNjEyNGU2ZTggMTAwNjQ0CistLS0gYS9zcmMvTWluaUFzdER1bXBlci5jcHAKKysrKyBiL3Ny Yy9NaW5pQXN0RHVtcGVyLmNwcAorQEAgLTI0LDYgKzI0LDcgQEAKKyAKKyAjaW5jbHVkZSA8Y2xh bmcvRnJvbnRlbmQvQ29tcGlsZXJJbnN0YW5jZS5oPgorICNpbmNsdWRlIDxjbGFuZy9Gcm9udGVu ZC9Gcm9udGVuZFBsdWdpblJlZ2lzdHJ5Lmg+CisrI2luY2x1ZGUgPGNsYW5nL0Jhc2ljL0ZpbGVN YW5hZ2VyLmg+CisgCisgdXNpbmcgbmFtZXNwYWNlIGNsYW5nOworIHVzaW5nIG5hbWVzcGFjZSBz dGQ7CitkaWZmIC0tZ2l0IGEvc3JjL1V0aWxzLmNwcCBiL3NyYy9VdGlscy5jcHAKK2luZGV4IDAw MWNlZDk4Li5iMDgxMmZlMyAxMDA2NDQKKy0tLSBhL3NyYy9VdGlscy5jcHAKKysrKyBiL3NyYy9V dGlscy5jcHAKK0BAIC04NzgsNyArODc4LDcgQEAgc3RyaW5nIFV0aWxzOjpmaWxlbmFtZUZvckxv YyhTb3VyY2VMb2NhdGlvbiBsb2MsIGNvbnN0IGNsYW5nOjpTb3VyY2VNYW5hZ2VyICZzbSkKKyAg ICAgaWYgKGxvYy5pc01hY3JvSUQoKSkKKyAgICAgICAgIGxvYyA9IHNtLmdldEV4cGFuc2lvbkxv Yyhsb2MpOworIAorLSAgICBjb25zdCBzdHJpbmcgZmlsZW5hbWUgPSBzbS5nZXRGaWxlbmFtZShs b2MpOworKyAgICBjb25zdCBzdHJpbmcgZmlsZW5hbWUgPSBzdGF0aWNfY2FzdDxzdGQ6OnN0cmlu Zz4oc20uZ2V0RmlsZW5hbWUobG9jKSk7CisgICAgIGF1dG8gc3BsaXR0ZWQgPSBjbGF6eTo6c3Bs aXRTdHJpbmcoZmlsZW5hbWUsICcvJyk7CisgICAgIGlmIChzcGxpdHRlZC5lbXB0eSgpKQorICAg ICAgICAgcmV0dXJuIHt9OworZGlmZiAtLWdpdCBhL3NyYy9jaGVja2Jhc2UuY3BwIGIvc3JjL2No ZWNrYmFzZS5jcHAKK2luZGV4IDhiNDBlMTlkLi4yMmE0MjZjZiAxMDA2NDQKKy0tLSBhL3NyYy9j aGVja2Jhc2UuY3BwCisrKysgYi9zcmMvY2hlY2tiYXNlLmNwcAorQEAgLTE4OCw3ICsxODgsNyBA QCBib29sIENoZWNrQmFzZTo6c2hvdWxkSWdub3JlRmlsZShTb3VyY2VMb2NhdGlvbiBsb2MpIGNv bnN0CisgICAgIGlmICghbG9jLmlzVmFsaWQoKSkKKyAgICAgICAgIHJldHVybiB0cnVlOworIAor LSAgICBzdHJpbmcgZmlsZW5hbWUgPSBzbSgpLmdldEZpbGVuYW1lKGxvYyk7CisrICAgIHN0cmlu ZyBmaWxlbmFtZSA9IHN0YXRpY19jYXN0PHN0ZDo6c3RyaW5nPihzbSgpLmdldEZpbGVuYW1lKGxv YykpOworIAorICAgICByZXR1cm4gY2xhenk6OmFueV9vZihtX2ZpbGVzVG9JZ25vcmUsIFtmaWxl bmFtZV0oY29uc3Qgc3RkOjpzdHJpbmcgJmlnbm9yZWQpIHsKKyAgICAgICAgIHJldHVybiBjbGF6 eTo6Y29udGFpbnMoZmlsZW5hbWUsIGlnbm9yZWQpOworZGlmZiAtLWdpdCBhL3NyYy9jaGVja3Mv ZGV0YWNoaW5nYmFzZS5jcHAgYi9zcmMvY2hlY2tzL2RldGFjaGluZ2Jhc2UuY3BwCitpbmRleCA3 MDMxMWY0Mi4uMWIwOTRlZTcgMTAwNjQ0CistLS0gYS9zcmMvY2hlY2tzL2RldGFjaGluZ2Jhc2Uu Y3BwCisrKysgYi9zcmMvY2hlY2tzL2RldGFjaGluZ2Jhc2UuY3BwCitAQCAtNTcsNyArNTcsNyBA QCBib29sIERldGFjaGluZ0Jhc2U6OmlzRGV0YWNoaW5nTWV0aG9kKENYWE1ldGhvZERlY2wgKm1l dGhvZCwgRGV0YWNoaW5nTWV0aG9kVHlwZQorIAorICAgICBjb25zdCBzdGQ6OnVub3JkZXJlZF9t YXA8c3RyaW5nLCBzdGQ6OnZlY3RvcjxTdHJpbmdSZWY+PiAmbWV0aG9kc0J5VHlwZSA9IGRldGFj aGluZ01ldGhvZFR5cGUgPT0gRGV0YWNoaW5nTWV0aG9kID8gY2xhenk6OmRldGFjaGluZ01ldGhv ZHMoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDogY2xhenk6OmRldGFjaGluZ01ldGhvZHNXaXRoQ29uc3RDb3VudGVyUGFydHMo KTsKKy0gICAgYXV0byBpdCA9IG1ldGhvZHNCeVR5cGUuZmluZChjbGFzc05hbWUpOworKyAgICBh dXRvIGl0ID0gbWV0aG9kc0J5VHlwZS5maW5kKHN0YXRpY19jYXN0PHN0ZDo6c3RyaW5nPihjbGFz c05hbWUpKTsKKyAgICAgaWYgKGl0ICE9IG1ldGhvZHNCeVR5cGUuY2VuZCgpKSB7CisgICAgICAg ICBjb25zdCBhdXRvICZtZXRob2RzID0gaXQtPnNlY29uZDsKKyAgICAgICAgIGlmIChjbGF6eTo6 Y29udGFpbnMobWV0aG9kcywgY2xhenk6Om5hbWUobWV0aG9kKSkpCitkaWZmIC0tZ2l0IGEvc3Jj L2NoZWNrcy9sZXZlbDAvcWVudW1zLmNwcCBiL3NyYy9jaGVja3MvbGV2ZWwwL3FlbnVtcy5jcHAK K2luZGV4IDAwMDc1YjVjLi5kYjg5MTBmMiAxMDA2NDQKKy0tLSBhL3NyYy9jaGVja3MvbGV2ZWww L3FlbnVtcy5jcHAKKysrKyBiL3NyYy9jaGVja3MvbGV2ZWwwL3FlbnVtcy5jcHAKK0BAIC01OSw3 ICs1OSw3IEBAIHZvaWQgUUVudW1zOjpWaXNpdE1hY3JvRXhwYW5kcyhjb25zdCBUb2tlbiAmTWFj cm9OYW1lVG9rLCBjb25zdCBTb3VyY2VSYW5nZSAmcmFuCisgICAgICAgICAvLyBXZSBzaW1wbHkg Y2hlY2sgaWYgOjogaXMgcHJlc2VudCBiZWNhdXNlIGl0J3MgdmVyeSBjdW1iZXJzb21lIHRvIHRv IGNoZWNrIGZvciBkaWZmZXJlbnQgY2xhc3NlcyB3aGVuIGRlYWxpbmcgd2l0aCB0aGUgcHJlLXBy b2Nlc3NvcgorIAorICAgICAgICAgQ2hhclNvdXJjZVJhbmdlIGNyYW5nZSA9IExleGVyOjpnZXRB c0NoYXJSYW5nZShyYW5nZSwgc20oKSwgbG8oKSk7CistICAgICAgICBzdHJpbmcgdGV4dCA9IExl eGVyOjpnZXRTb3VyY2VUZXh0KGNyYW5nZSwgc20oKSwgbG8oKSk7CisrICAgICAgICBzdHJpbmcg dGV4dCA9IHN0YXRpY19jYXN0PHN0ZDo6c3RyaW5nPihMZXhlcjo6Z2V0U291cmNlVGV4dChjcmFu Z2UsIHNtKCksIGxvKCkpKTsKKyAgICAgICAgIGlmIChjbGF6eTo6Y29udGFpbnModGV4dCwgIjo6 IikpCisgICAgICAgICAgICAgcmV0dXJuOworICAgICB9CitkaWZmIC0tZ2l0IGEvc3JjL2NoZWNr cy9sZXZlbDAvcXQtbWFjcm9zLmNwcCBiL3NyYy9jaGVja3MvbGV2ZWwwL3F0LW1hY3Jvcy5jcHAK K2luZGV4IGQzYTU4N2NiLi5hYjhlOWY1MiAxMDA2NDQKKy0tLSBhL3NyYy9jaGVja3MvbGV2ZWww L3F0LW1hY3Jvcy5jcHAKKysrKyBiL3NyYy9jaGVja3MvbGV2ZWwwL3F0LW1hY3Jvcy5jcHAKK0BA IC00NCw3ICs0NCw3IEBAIHZvaWQgUXRNYWNyb3M6OlZpc2l0TWFjcm9EZWZpbmVkKGNvbnN0IFRv a2VuICZNYWNyb05hbWVUb2spCisgICAgICAgICByZXR1cm47CisgCisgICAgIElkZW50aWZpZXJJ bmZvICppaSA9IE1hY3JvTmFtZVRvay5nZXRJZGVudGlmaWVySW5mbygpOworLSAgICBpZiAoaWkg JiYgY2xhenk6OnN0YXJ0c1dpdGgoaWktPmdldE5hbWUoKSwgIlFfT1NfIikpCisrICAgIGlmIChp aSAmJiBjbGF6eTo6c3RhcnRzV2l0aChzdGF0aWNfY2FzdDxzdGQ6OnN0cmluZz4oaWktPmdldE5h bWUoKSksICJRX09TXyIpKQorICAgICAgICAgbV9PU01hY3JvRXhpc3RzID0gdHJ1ZTsKKyB9Cisg CitAQCAtNTgsNyArNTgsNyBAQCB2b2lkIFF0TWFjcm9zOjpjaGVja0lmRGVmKGNvbnN0IFRva2Vu ICZtYWNyb05hbWVUb2ssIFNvdXJjZUxvY2F0aW9uIExvYykKKyAgICAgaWYgKHByZVByb2Nlc3Nv clZpc2l0b3IgJiYgcHJlUHJvY2Vzc29yVmlzaXRvci0+cXRWZXJzaW9uKCkgPCA1MTIwNCAmJiBp aS0+Z2V0TmFtZSgpID09ICJRX09TX1dJTkRPV1MiKSB7CisgICAgICAgICAvLyBRX09TX1dJTkRP V1Mgd2FzIGludHJvZHVjZWQgaW4gNS4xMi40CisgICAgICAgICBlbWl0V2FybmluZyhMb2MsICJR X09TX1dJTkRPV1Mgd2FzIG9ubHkgaW50cm9kdWNlZCBpbiBRdCA1LjEyLjQsIHVzZSBRX09TX1dJ TiBpbnN0ZWFkIik7CistICAgIH0gZWxzZSBpZiAoIW1fT1NNYWNyb0V4aXN0cyAmJiBjbGF6eTo6 c3RhcnRzV2l0aChpaS0+Z2V0TmFtZSgpLCAiUV9PU18iKSkgeworKyAgICB9IGVsc2UgaWYgKCFt X09TTWFjcm9FeGlzdHMgJiYgY2xhenk6OnN0YXJ0c1dpdGgoc3RhdGljX2Nhc3Q8c3RkOjpzdHJp bmc+KGlpLT5nZXROYW1lKCkpLCAiUV9PU18iKSkgeworICAgICAgICAgZW1pdFdhcm5pbmcoTG9j LCAiSW5jbHVkZSBxZ2xvYmFsLmggYmVmb3JlIHRlc3RpbmcgUV9PU18gbWFjcm9zIik7CisgICAg IH0KKyB9CitkaWZmIC0tZ2l0IGEvc3JjL2NoZWNrcy9sZXZlbDAvdW51c2VkLW5vbi10cml2aWFs LXZhcmlhYmxlLmNwcCBiL3NyYy9jaGVja3MvbGV2ZWwwL3VudXNlZC1ub24tdHJpdmlhbC12YXJp YWJsZS5jcHAKK2luZGV4IDRlNGI4MzAzLi45MzgxNWYyNyAxMDA2NDQKKy0tLSBhL3NyYy9jaGVj a3MvbGV2ZWwwL3VudXNlZC1ub24tdHJpdmlhbC12YXJpYWJsZS5jcHAKKysrKyBiL3NyYy9jaGVj a3MvbGV2ZWwwL3VudXNlZC1ub24tdHJpdmlhbC12YXJpYWJsZS5jcHAKK0BAIC05MSw3ICs5MSw3 IEBAIGJvb2wgVW51c2VkTm9uVHJpdmlhbFZhcmlhYmxlOjppc1VuaW50ZXJlc3RpbmdUeXBlKGNv bnN0IENYWFJlY29yZERlY2wgKnJlY29yZCkKKyAgICAgc3RhdGljIGNvbnN0IHZlY3RvcjxTdHJp bmdSZWY+IGJsYWNrbGlzdGVkVGVtcGxhdGVzID0geyAiUVNjb3BlZFBvaW50ZXIiLCAiUVNldFZh bHVlT25EZXN0cm95IiwgIlFTY29wZWRWYWx1ZVJvbGxiYWNrIiB9OworICAgICBTdHJpbmdSZWYg Y2xhc3NOYW1lID0gY2xhenk6Om5hbWUocmVjb3JkKTsKKyAgICAgZm9yIChTdHJpbmdSZWYgdGVt cGxhdGVOYW1lIDogYmxhY2tsaXN0ZWRUZW1wbGF0ZXMpIHsKKy0gICAgICAgIGlmIChjbGF6eTo6 c3RhcnRzV2l0aChjbGFzc05hbWUsIHRlbXBsYXRlTmFtZSkpCisrICAgICAgICBpZiAoY2xhenk6 OnN0YXJ0c1dpdGgoc3RhdGljX2Nhc3Q8c3RkOjpzdHJpbmc+KGNsYXNzTmFtZSksIHN0YXRpY19j YXN0PHN0ZDo6c3RyaW5nPih0ZW1wbGF0ZU5hbWUpKSkKKyAgICAgICAgICAgICByZXR1cm4gdHJ1 ZTsKKyAgICAgfQorIAorZGlmZiAtLWdpdCBhL3NyYy9jaGVja3MvbGV2ZWwxL2RldGFjaGluZy10 ZW1wb3JhcnkuY3BwIGIvc3JjL2NoZWNrcy9sZXZlbDEvZGV0YWNoaW5nLXRlbXBvcmFyeS5jcHAK K2luZGV4IGZlZGZjODFjLi42MGM3NTUzMiAxMDA2NDQKKy0tLSBhL3NyYy9jaGVja3MvbGV2ZWwx L2RldGFjaGluZy10ZW1wb3JhcnkuY3BwCisrKysgYi9zcmMvY2hlY2tzL2xldmVsMS9kZXRhY2hp bmctdGVtcG9yYXJ5LmNwcAorQEAgLTE0MCw3ICsxNDAsNyBAQCB2b2lkIERldGFjaGluZ1RlbXBv cmFyeTo6VmlzaXRTdG10KGNsYW5nOjpTdG10ICpzdG0pCisgICAgIFN0cmluZ1JlZiBjbGFzc05h bWUgPSBjbGF6eTo6bmFtZShjbGFzc0RlY2wpOworIAorICAgICBjb25zdCBzdGQ6OnVub3JkZXJl ZF9tYXA8c3RyaW5nLCBzdGQ6OnZlY3RvcjxTdHJpbmdSZWY+PiAmbWV0aG9kc0J5VHlwZSA9IGNs YXp5OjpkZXRhY2hpbmdNZXRob2RzKCk7CistICAgIGF1dG8gaXQgPSBtZXRob2RzQnlUeXBlLmZp bmQoY2xhc3NOYW1lKTsKKysgICAgYXV0byBpdCA9IG1ldGhvZHNCeVR5cGUuZmluZChzdGF0aWNf Y2FzdDxzdGQ6OnN0cmluZz4oY2xhc3NOYW1lKSk7CisgICAgIGF1dG8gaXQyID0gbV93cml0ZU1l dGhvZHNCeVR5cGUuZmluZChjbGFzc05hbWUpOworIAorICAgICBzdGQ6OnZlY3RvcjxTdHJpbmdS ZWY+IGFsbG93ZWRGdW5jdGlvbnM7CitkaWZmIC0tZ2l0IGEvc3JjL2NoZWNrcy9sZXZlbDEvbm9u LXBvZC1nbG9iYWwtc3RhdGljLmNwcCBiL3NyYy9jaGVja3MvbGV2ZWwxL25vbi1wb2QtZ2xvYmFs LXN0YXRpYy5jcHAKK2luZGV4IDU4NzliZmY4Li40MzNiNWM1ZiAxMDA2NDQKKy0tLSBhL3NyYy9j aGVja3MvbGV2ZWwxL25vbi1wb2QtZ2xvYmFsLXN0YXRpYy5jcHAKKysrKyBiL3NyYy9jaGVja3Mv bGV2ZWwxL25vbi1wb2QtZ2xvYmFsLXN0YXRpYy5jcHAKK0BAIC03NCw3ICs3NCw3IEBAIHZvaWQg Tm9uUG9kR2xvYmFsU3RhdGljOjpWaXNpdFN0bXQoY2xhbmc6OlN0bXQgKnN0bSkKKyAgICAgY29u c3QgU291cmNlTG9jYXRpb24gZGVjbFN0YXJ0ID0gY2xhenk6OmdldExvY1N0YXJ0KHZhckRlY2wp OworIAorICAgICBpZiAoZGVjbFN0YXJ0LmlzTWFjcm9JRCgpKSB7CistICAgICAgICBhdXRvIG1h Y3JvTmFtZSA9IExleGVyOjpnZXRJbW1lZGlhdGVNYWNyb05hbWUoZGVjbFN0YXJ0LCBzbSgpLCBs bygpKTsKKysgICAgICAgIGF1dG8gbWFjcm9OYW1lID0gc3RhdGljX2Nhc3Q8c3RkOjpzdHJpbmc+ KExleGVyOjpnZXRJbW1lZGlhdGVNYWNyb05hbWUoZGVjbFN0YXJ0LCBzbSgpLCBsbygpKSk7Cisg ICAgICAgICBpZiAoY2xhenk6OnN0YXJ0c1dpdGhBbnkobWFjcm9OYW1lLCB7ICJRX0lNUE9SVF9Q TFVHSU4iLCAiUV9DT05TVFJVQ1RPUl9GVU5DVElPTiIsICJRX0RFU1RSVUNUT1JfRlVOQ1RJT04i fSkpIC8vIERvbid0IHdhcm4gb24gdGhlc2UKKyAgICAgICAgICAgICByZXR1cm47CisgICAgIH0K K2RpZmYgLS1naXQgYS9zcmMvY2hlY2tzL2xldmVsMS9xcHJvcGVydHktd2l0aG91dC1ub3RpZnku Y3BwIGIvc3JjL2NoZWNrcy9sZXZlbDEvcXByb3BlcnR5LXdpdGhvdXQtbm90aWZ5LmNwcAoraW5k ZXggZTFkNmRiNGEuLjNhZjlmZWUyIDEwMDY0NAorLS0tIGEvc3JjL2NoZWNrcy9sZXZlbDEvcXBy b3BlcnR5LXdpdGhvdXQtbm90aWZ5LmNwcAorKysrIGIvc3JjL2NoZWNrcy9sZXZlbDEvcXByb3Bl cnR5LXdpdGhvdXQtbm90aWZ5LmNwcAorQEAgLTY5LDcgKzY5LDcgQEAgdm9pZCBRUHJvcGVydHlX aXRob3V0Tm90aWZ5OjpWaXNpdE1hY3JvRXhwYW5kcyhjb25zdCBjbGFuZzo6VG9rZW4gJk1hY3Jv TmFtZVRvaywKKyAgICAgICAgIHJldHVybjsKKyAgICAgQ2hhclNvdXJjZVJhbmdlIGNyYW5nZSA9 IExleGVyOjpnZXRBc0NoYXJSYW5nZShyYW5nZSwgc20oKSwgbG8oKSk7CisgCistICAgIHN0cmlu ZyB0ZXh0ID0gTGV4ZXI6OmdldFNvdXJjZVRleHQoY3JhbmdlLCBzbSgpLCBsbygpKTsKKysgICAg c3RyaW5nIHRleHQgPSBzdGF0aWNfY2FzdDxzdGQ6OnN0cmluZz4oTGV4ZXI6OmdldFNvdXJjZVRl eHQoY3JhbmdlLCBzbSgpLCBsbygpKSk7CisgICAgIGlmICh0ZXh0LmJhY2soKSA9PSAnKScpCisg ICAgICAgICB0ZXh0LnBvcF9iYWNrKCk7CisgCitkaWZmIC0tZ2l0IGEvc3JjL2NoZWNrcy9sZXZl bDIvbWlzc2luZy10eXBlaW5mby5jcHAgYi9zcmMvY2hlY2tzL2xldmVsMi9taXNzaW5nLXR5cGVp bmZvLmNwcAoraW5kZXggOThkZjJjZDQuLjAzYjQ0ZTA2IDEwMDY0NAorLS0tIGEvc3JjL2NoZWNr cy9sZXZlbDIvbWlzc2luZy10eXBlaW5mby5jcHAKKysrKyBiL3NyYy9jaGVja3MvbGV2ZWwyL21p c3NpbmctdHlwZWluZm8uY3BwCitAQCAtNzQsNyArNzQsNyBAQCB2b2lkIE1pc3NpbmdUeXBlSW5m bzo6VmlzaXREZWNsKGNsYW5nOjpEZWNsICpkZWNsKQorICAgICAgICAgaWYgKHNtKCkuaXNJblN5 c3RlbUhlYWRlcihjbGF6eTo6Z2V0TG9jU3RhcnQocmVjb3JkKSkpCisgICAgICAgICAgICAgcmV0 dXJuOworIAorLSAgICAgICAgc3RkOjpzdHJpbmcgdHlwZU5hbWUgPSBjbGF6eTo6bmFtZShyZWNv cmQpOworKyAgICAgICAgc3RkOjpzdHJpbmcgdHlwZU5hbWUgPSBzdGF0aWNfY2FzdDxzdGQ6OnN0 cmluZz4oY2xhenk6Om5hbWUocmVjb3JkKSk7CisgICAgICAgICBpZiAodHlwZU5hbWUgPT0gIlFQ YWlyIikgLy8gUVBhaXIgZG9lc24ndCB1c2UgUV9ERUNMQVJFX1RZUEVJTkZPLCBidXQgcmF0aGVy IGEgZXhwbGljaXQgUVR5cGVJbmZvLgorICAgICAgICAgICAgIHJldHVybjsKKyAKK2RpZmYgLS1n aXQgYS9zcmMvY2hlY2tzL2xldmVsMi9vbGQtc3R5bGUtY29ubmVjdC5jcHAgYi9zcmMvY2hlY2tz L2xldmVsMi9vbGQtc3R5bGUtY29ubmVjdC5jcHAKK2luZGV4IDBmZTY4YzEzLi4zOTZjYjcwMyAx MDA2NDQKKy0tLSBhL3NyYy9jaGVja3MvbGV2ZWwyL29sZC1zdHlsZS1jb25uZWN0LmNwcAorKysr IGIvc3JjL2NoZWNrcy9sZXZlbDIvb2xkLXN0eWxlLWNvbm5lY3QuY3BwCitAQCAtMjc0LDcgKzI3 NCw3IEBAIHZvaWQgT2xkU3R5bGVDb25uZWN0OjpWaXNpdE1hY3JvRXhwYW5kcyhjb25zdCBUb2tl biAmbWFjcm9OYW1lVG9rLCBjb25zdCBTb3VyY2VSCisgICAgICAgICByZXR1cm47CisgCisgICAg IGF1dG8gY2hhclJhbmdlID0gTGV4ZXI6OmdldEFzQ2hhclJhbmdlKHJhbmdlLCBzbSgpLCBsbygp KTsKKy0gICAgY29uc3Qgc3RyaW5nIHRleHQgPSBMZXhlcjo6Z2V0U291cmNlVGV4dChjaGFyUmFu Z2UsIHNtKCksIGxvKCkpOworKyAgICBjb25zdCBzdHJpbmcgdGV4dCA9IHN0YXRpY19jYXN0PHN0 ZDo6c3RyaW5nPihMZXhlcjo6Z2V0U291cmNlVGV4dChjaGFyUmFuZ2UsIHNtKCksIGxvKCkpKTsK KyAKKyAgICAgc3RhdGljIHJlZ2V4IHJ4KFIiKFFfUFJJVkFURV9TTE9UXHMqXCgoLiopXHMqLFxz Ki4qXHMrKC4qKVwoLiopIik7CisgICAgIHNtYXRjaCBtYXRjaDsKK0BAIC0yOTMsNyArMjkzLDcg QEAgc3RyaW5nIE9sZFN0eWxlQ29ubmVjdDo6c2lnbmFsT3JTbG90TmFtZUZyb21NYWNybyhTb3Vy Y2VMb2NhdGlvbiBtYWNyb0xvYykKKyAgICAgQ2hhclNvdXJjZVJhbmdlIGV4cGFuc2lvblJhbmdl ID0gY2xhenk6OmdldEltbWVkaWF0ZUV4cGFuc2lvblJhbmdlKG1hY3JvTG9jLCBzbSgpKTsKKyAg ICAgU291cmNlUmFuZ2UgcmFuZ2UgPSBTb3VyY2VSYW5nZShleHBhbnNpb25SYW5nZS5nZXRCZWdp bigpLCBleHBhbnNpb25SYW5nZS5nZXRFbmQoKSk7CisgICAgIGF1dG8gY2hhclJhbmdlID0gTGV4 ZXI6OmdldEFzQ2hhclJhbmdlKHJhbmdlLCBzbSgpLCBsbygpKTsKKy0gICAgY29uc3Qgc3RyaW5n IHRleHQgPSBMZXhlcjo6Z2V0U291cmNlVGV4dChjaGFyUmFuZ2UsIHNtKCksIGxvKCkpOworKyAg ICBjb25zdCBzdHJpbmcgdGV4dCA9IHN0YXRpY19jYXN0PHN0ZDo6c3RyaW5nPihMZXhlcjo6Z2V0 U291cmNlVGV4dChjaGFyUmFuZ2UsIHNtKCksIGxvKCkpKTsKKyAKKyAgICAgc3RhdGljIHJlZ2V4 IHJ4KFIiKFxzKihTSUdOQUx8U0xPVClccypcKFxzKiguKylccypcKC4qKSIpOworIAorQEAgLTMx NSw3ICszMTUsNyBAQCBib29sIE9sZFN0eWxlQ29ubmVjdDo6aXNTaWduYWxPclNsb3QoU291cmNl TG9jYXRpb24gbG9jLCBzdHJpbmcgJm1hY3JvTmFtZSkgY29ucworICAgICBpZiAoIWxvYy5pc01h Y3JvSUQoKSB8fCBsb2MuaXNJbnZhbGlkKCkpCisgICAgICAgICByZXR1cm4gZmFsc2U7CisgCist ICAgIG1hY3JvTmFtZSA9IExleGVyOjpnZXRJbW1lZGlhdGVNYWNyb05hbWUobG9jLCBzbSgpLCBs bygpKTsKKysgICAgbWFjcm9OYW1lID0gc3RhdGljX2Nhc3Q8c3RkOjpzdHJpbmc+KExleGVyOjpn ZXRJbW1lZGlhdGVNYWNyb05hbWUobG9jLCBzbSgpLCBsbygpKSk7CisgICAgIHJldHVybiBtYWNy b05hbWUgPT0gIlNJR05BTCIgfHwgbWFjcm9OYW1lID09ICJTTE9UIjsKKyB9CisgCitkaWZmIC0t Z2l0IGEvc3JjL2NoZWNrcy9sZXZlbDIvcnVsZS1vZi10aHJlZS5jcHAgYi9zcmMvY2hlY2tzL2xl dmVsMi9ydWxlLW9mLXRocmVlLmNwcAoraW5kZXggOGRiNTVkNTMuLjc1ODNmY2M1IDEwMDY0NAor LS0tIGEvc3JjL2NoZWNrcy9sZXZlbDIvcnVsZS1vZi10aHJlZS5jcHAKKysrKyBiL3NyYy9jaGVj a3MvbGV2ZWwyL3J1bGUtb2YtdGhyZWUuY3BwCitAQCAtMTQwLDcgKzE0MCw3IEBAIHZvaWQgUnVs ZU9mVGhyZWU6OlZpc2l0RGVjbChjbGFuZzo6RGVjbCAqZGVjbCkKKyAKKyAgICAgY29uc3Qgc3Ry aW5nIGNsYXNzTmFtZSA9IHJlY29yZC0+Z2V0TmFtZUFzU3RyaW5nKCk7CisgICAgIGNvbnN0IHN0 cmluZyBjbGFzc1F1YWxpZmllZE5hbWUgPSByZWNvcmQtPmdldFF1YWxpZmllZE5hbWVBc1N0cmlu ZygpOworLSAgICBjb25zdCBzdHJpbmcgZmlsZW5hbWUgPSBzbSgpLmdldEZpbGVuYW1lKHJlY29y ZFN0YXJ0KTsKKysgICAgY29uc3Qgc3RyaW5nIGZpbGVuYW1lID0gc3RhdGljX2Nhc3Q8c3RkOjpz dHJpbmc+KHNtKCkuZ2V0RmlsZW5hbWUocmVjb3JkU3RhcnQpKTsKKyAgICAgaWYgKGNsYXp5Ojpl bmRzV2l0aChjbGFzc05hbWUsICJQcml2YXRlIikgJiYgY2xhenk6OmVuZHNXaXRoQW55KGZpbGVu YW1lLCB7ICIuY3BwIiwgIi5jeHgiLCAiX3AuaCIgfSkpCisgICAgICAgICByZXR1cm47IC8vIExv dHMgb2YgUkFJSSBjbGFzc2VzIGZhbGwgaW50byB0aGlzIGNhdGVnb3J5LiBBbmQgZXZlbiBQcml2 YXRlIChkLXBvaW50ZXIpIGNsYXNzZXMsIHdhcm5pbmcgaW4gdGhhdCBjYXNlIHdvdWxkIGp1c3Qg YmUgbm9pc2UKKyAKK2RpZmYgLS1naXQgYS9zcmMvY2hlY2tzL21hbnVhbGxldmVsL2lmbmRlZi1k ZWZpbmUtdHlwby5jcHAgYi9zcmMvY2hlY2tzL21hbnVhbGxldmVsL2lmbmRlZi1kZWZpbmUtdHlw by5jcHAKK2luZGV4IGVkYjZjZGY0Li5lOWM1MGE0NSAxMDA2NDQKKy0tLSBhL3NyYy9jaGVja3Mv bWFudWFsbGV2ZWwvaWZuZGVmLWRlZmluZS10eXBvLmNwcAorKysrIGIvc3JjL2NoZWNrcy9tYW51 YWxsZXZlbC9pZm5kZWYtZGVmaW5lLXR5cG8uY3BwCitAQCAtNDQsNyArNDQsNyBAQCB2b2lkIElm bmRlZkRlZmluZVR5cG86OlZpc2l0TWFjcm9EZWZpbmVkKGNvbnN0IFRva2VuICZtYWNyb05hbWVU b2spCisgeworICAgICBpZiAoIW1fbGFzdElmbmRlZi5lbXB0eSgpKSB7CisgICAgICAgICBpZiAo SWRlbnRpZmllckluZm8gKmlpID0gbWFjcm9OYW1lVG9rLmdldElkZW50aWZpZXJJbmZvKCkpIHsK Ky0gICAgICAgICAgICBtYXliZVdhcm4oaWktPmdldE5hbWUoKSwgbWFjcm9OYW1lVG9rLmdldExv Y2F0aW9uKCkpOworKyAgICAgICAgICAgIG1heWJlV2FybihzdGF0aWNfY2FzdDxzdGQ6OnN0cmlu Zz4oaWktPmdldE5hbWUoKSksIG1hY3JvTmFtZVRvay5nZXRMb2NhdGlvbigpKTsKKyAgICAgICAg IH0KKyAgICAgfQorIH0KK0BAIC01Myw3ICs1Myw3IEBAIHZvaWQgSWZuZGVmRGVmaW5lVHlwbzo6 VmlzaXREZWZpbmVkKGNvbnN0IFRva2VuICZtYWNyb05hbWVUb2ssIGNvbnN0IFNvdXJjZVJhbmdl CisgeworICAgICBpZiAoIW1fbGFzdElmbmRlZi5lbXB0eSgpKSB7CisgICAgICAgICBpZiAoSWRl bnRpZmllckluZm8gKmlpID0gbWFjcm9OYW1lVG9rLmdldElkZW50aWZpZXJJbmZvKCkpIHsKKy0g ICAgICAgICAgICBtYXliZVdhcm4oaWktPmdldE5hbWUoKSwgbWFjcm9OYW1lVG9rLmdldExvY2F0 aW9uKCkpOworKyAgICAgICAgICAgIG1heWJlV2FybihzdGF0aWNfY2FzdDxzdGQ6OnN0cmluZz4o aWktPmdldE5hbWUoKSksIG1hY3JvTmFtZVRvay5nZXRMb2NhdGlvbigpKTsKKyAgICAgICAgIH0K KyAgICAgfQorIH0KK0BAIC02Niw3ICs2Niw3IEBAIHZvaWQgSWZuZGVmRGVmaW5lVHlwbzo6Vmlz aXRJZmRlZihTb3VyY2VMb2NhdGlvbiwgY29uc3QgVG9rZW4gJikKKyB2b2lkIElmbmRlZkRlZmlu ZVR5cG86OlZpc2l0SWZuZGVmKFNvdXJjZUxvY2F0aW9uLCBjb25zdCBUb2tlbiAmbWFjcm9OYW1l VG9rKQorIHsKKyAgICAgaWYgKElkZW50aWZpZXJJbmZvICppaSA9IG1hY3JvTmFtZVRvay5nZXRJ ZGVudGlmaWVySW5mbygpKQorLSAgICAgICAgbV9sYXN0SWZuZGVmID0gaWktPmdldE5hbWUoKTsK KysgICAgICAgIG1fbGFzdElmbmRlZiA9IHN0YXRpY19jYXN0PHN0ZDo6c3RyaW5nPihpaS0+Z2V0 TmFtZSgpKTsKKyB9CisgCisgdm9pZCBJZm5kZWZEZWZpbmVUeXBvOjpWaXNpdElmKFNvdXJjZUxv Y2F0aW9uLCBTb3VyY2VSYW5nZSwgUFBDYWxsYmFja3M6OkNvbmRpdGlvblZhbHVlS2luZCkKK2Rp ZmYgLS1naXQgYS9zcmMvY2hlY2tzL21hbnVhbGxldmVsL3Fwcm9wZXJ0eS10eXBlLW1pc21hdGNo LmNwcCBiL3NyYy9jaGVja3MvbWFudWFsbGV2ZWwvcXByb3BlcnR5LXR5cGUtbWlzbWF0Y2guY3Bw CitpbmRleCBmOTExNTljYi4uOTUyZDlmMWQgMTAwNjQ0CistLS0gYS9zcmMvY2hlY2tzL21hbnVh bGxldmVsL3Fwcm9wZXJ0eS10eXBlLW1pc21hdGNoLmNwcAorKysrIGIvc3JjL2NoZWNrcy9tYW51 YWxsZXZlbC9xcHJvcGVydHktdHlwZS1taXNtYXRjaC5jcHAKK0BAIC0yMzcsNyArMjM3LDcgQEAg dm9pZCBRUHJvcGVydHlUeXBlTWlzbWF0Y2g6OlZpc2l0TWFjcm9FeHBhbmRzKGNvbnN0IGNsYW5n OjpUb2tlbiAmTWFjcm9OYW1lVG9rLAorIAorICAgICBDaGFyU291cmNlUmFuZ2UgY3JhbmdlID0g TGV4ZXI6OmdldEFzQ2hhclJhbmdlKHJhbmdlLCBzbSgpLCBsbygpKTsKKyAKKy0gICAgc3RyaW5n IHRleHQgPSBMZXhlcjo6Z2V0U291cmNlVGV4dChjcmFuZ2UsIHNtKCksIGxvKCkpOworKyAgICBz dHJpbmcgdGV4dCA9IHN0YXRpY19jYXN0PHN0ZDo6c3RyaW5nPihMZXhlcjo6Z2V0U291cmNlVGV4 dChjcmFuZ2UsIHNtKCksIGxvKCkpKTsKKyAgICAgaWYgKCF0ZXh0LmVtcHR5KCkgJiYgdGV4dC5i YWNrKCkgPT0gJyknKQorICAgICAgICAgdGV4dC5wb3BfYmFjaygpOworIAorZGlmZiAtLWdpdCBh L3NyYy9jaGVja3MvbWFudWFsbGV2ZWwvcXJlcXVpcmVkcmVzdWx0LWNhbmRpZGF0ZXMuY3BwIGIv c3JjL2NoZWNrcy9tYW51YWxsZXZlbC9xcmVxdWlyZWRyZXN1bHQtY2FuZGlkYXRlcy5jcHAKK2lu ZGV4IDkxMmRiYWEwLi42Mzc1YmQ3YiAxMDA2NDQKKy0tLSBhL3NyYy9jaGVja3MvbWFudWFsbGV2 ZWwvcXJlcXVpcmVkcmVzdWx0LWNhbmRpZGF0ZXMuY3BwCisrKysgYi9zcmMvY2hlY2tzL21hbnVh bGxldmVsL3FyZXF1aXJlZHJlc3VsdC1jYW5kaWRhdGVzLmNwcAorQEAgLTY1LDcgKzY1LDcgQEAg dm9pZCBRUmVxdWlyZWRSZXN1bHRDYW5kaWRhdGVzOjpWaXNpdERlY2woY2xhbmc6OkRlY2wgKmRl Y2wpCisgCisgCisgICAgIGlmIChyZXR1cm5DbGFzcyA9PSBjbGFzc0RlY2wpIHsKKy0gICAgICAg IGNvbnN0IHN0ZDo6c3RyaW5nIG1ldGhvZE5hbWUgPSBjbGF6eTo6bmFtZShtZXRob2QpOworKyAg ICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgbWV0aG9kTmFtZSA9IHN0YXRpY19jYXN0PHN0ZDo6c3Ry aW5nPihjbGF6eTo6bmFtZShtZXRob2QpKTsKKyAgICAgICAgIGlmIChtZXRob2ROYW1lLmVtcHR5 KCkpIC8vIGZpeGVzIGFzc2VydAorICAgICAgICAgICAgIHJldHVybjsKKyAKK2RpZmYgLS1naXQg YS9zcmMvY2hlY2tzL21hbnVhbGxldmVsL3F0LWtleXdvcmRzLmNwcCBiL3NyYy9jaGVja3MvbWFu dWFsbGV2ZWwvcXQta2V5d29yZHMuY3BwCitpbmRleCBlNzkyZTk1YS4uYjYwNzUyYzkgMTAwNjQ0 CistLS0gYS9zcmMvY2hlY2tzL21hbnVhbGxldmVsL3F0LWtleXdvcmRzLmNwcAorKysrIGIvc3Jj L2NoZWNrcy9tYW51YWxsZXZlbC9xdC1rZXl3b3Jkcy5jcHAKK0BAIC01OSwxMiArNTksMTIgQEAg dm9pZCBRdEtleXdvcmRzOjpWaXNpdE1hY3JvRXhwYW5kcyhjb25zdCBUb2tlbiAmbWFjcm9OYW1l VG9rLCBjb25zdCBTb3VyY2VSYW5nZQorICAgICB9CisgCisgICAgIHN0YXRpYyBjb25zdCB2ZWN0 b3I8U3RyaW5nUmVmPiBrZXl3b3JkcyA9IHsgImZvcmVhY2giLCAic2lnbmFscyIsICJzbG90cyIs ICJlbWl0IiB9OworLSAgICBzdGQ6OnN0cmluZyBuYW1lID0gaWktPmdldE5hbWUoKTsKKysgICAg c3RkOjpzdHJpbmcgbmFtZSA9IHN0YXRpY19jYXN0PHN0ZDo6c3RyaW5nPihpaS0+Z2V0TmFtZSgp KTsKKyAgICAgaWYgKCFjbGF6eTo6Y29udGFpbnMoa2V5d29yZHMsIG5hbWUpKQorICAgICAgICAg cmV0dXJuOworIAorICAgICAvLyBNYWtlIHN1cmUgdGhlIG1hY3JvIGlzIFF0J3MuIEl0IG11c3Qg YmUgZGVmaW5lZCBpbiBRdCdzIGhlYWRlcnMsIG5vdCAzcmRwYXJ0eQorLSAgICBzdGQ6OnN0cmlu ZyBxdGhlYWRlciA9IHNtKCkuZ2V0RmlsZW5hbWUoc20oKS5nZXRTcGVsbGluZ0xvYyhtaW5mby0+ Z2V0RGVmaW5pdGlvbkxvYygpKSk7CisrICAgIHN0ZDo6c3RyaW5nIHF0aGVhZGVyID0gc3RhdGlj X2Nhc3Q8c3RkOjpzdHJpbmc+KHNtKCkuZ2V0RmlsZW5hbWUoc20oKS5nZXRTcGVsbGluZ0xvYyht aW5mby0+Z2V0RGVmaW5pdGlvbkxvYygpKSkpOworICAgICBpZiAoIWNsYXp5OjplbmRzV2l0aChx dGhlYWRlciwgInFnbG9iYWwuaCIpICYmICFjbGF6eTo6ZW5kc1dpdGgocXRoZWFkZXIsICJxb2Jq ZWN0ZGVmcy5oIikpCisgICAgICAgICByZXR1cm47CisgCitkaWZmIC0tZ2l0IGEvc3JjL2NoZWNr cy9tYW51YWxsZXZlbC9yZXNlcnZlLWNhbmRpZGF0ZXMuY3BwIGIvc3JjL2NoZWNrcy9tYW51YWxs ZXZlbC9yZXNlcnZlLWNhbmRpZGF0ZXMuY3BwCitpbmRleCAzODljYWM1YS4uOTJlNDQ5MWMgMTAw NjQ0CistLS0gYS9zcmMvY2hlY2tzL21hbnVhbGxldmVsL3Jlc2VydmUtY2FuZGlkYXRlcy5jcHAK KysrKyBiL3NyYy9jaGVja3MvbWFudWFsbGV2ZWwvcmVzZXJ2ZS1jYW5kaWRhdGVzLmNwcAorQEAg LTc4LDcgKzc4LDggQEAgc3RhdGljIGJvb2wgaXNDYW5kaWRhdGVNZXRob2QoQ1hYTWV0aG9kRGVj bCAqbWV0aG9kRGVjbCkKKyAgICAgaWYgKCFjbGFzc0RlY2wpCisgICAgICAgICByZXR1cm4gZmFs c2U7CisgCistICAgIGlmICghY2xhenk6OmVxdWFsc0FueShjbGF6eTo6bmFtZShtZXRob2REZWNs KSwgeyAiYXBwZW5kIiwgInB1c2hfYmFjayIsICJwdXNoIiwgIm9wZXJhdG9yPDwiLCAib3BlcmF0 b3IrPSIgfSkpCisrICAgIGlmICghY2xhenk6OmVxdWFsc0FueShzdGF0aWNfY2FzdDxzdGQ6OnN0 cmluZz4oY2xhenk6Om5hbWUobWV0aG9kRGVjbCkpLAorKyAgICAgICAgICAgICAgICAgeyAiYXBw ZW5kIiwgInB1c2hfYmFjayIsICJwdXNoIiwgIm9wZXJhdG9yPDwiLCAib3BlcmF0b3IrPSIgfSkp CisgICAgICAgICByZXR1cm4gZmFsc2U7CisgCisgICAgIGlmICghY2xhenk6OmlzQVJlc2VydmVD bGFzcyhjbGFzc0RlY2wpKQorLS0gCitHaXRMYWIKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jbGF6 eS9maWxlcy9jbGF6eS0wMDItbGx2bTExLXN0cmluZ3JlZi5wYXRjaCBiL3NyY3BrZ3MvY2xhenkv ZmlsZXMvY2xhenktMDAyLWxsdm0xMS1zdHJpbmdyZWYucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAuLjI4Y2JiNjBiMDkxCi0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9jbGF6eS9maWxlcy9jbGF6eS0wMDItbGx2bTExLXN0cmluZ3JlZi5wYXRjaApAQCAtMCww ICsxLDI4IEBACitGcm9tIDI1YWExMDJjYzQ5ZGVmOTU3M2ZmYmVkODgxNTU1ODljZDYwYTJlOGYg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBFZ29yIEdhYm92IDxlZ29yLmdhYm92QHdh dmVhY2Nlc3MucnU+CitEYXRlOiBGcmksIDUgSnVuIDIwMjAgMTY6NTI6NTMgKzAzMDAKK1N1Ympl Y3Q6IFtQQVRDSF0gdXBkYXRlZCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIExMVk0gMTAgKGNsYXp5 LXN0YW5kYWxvbmUpCisKK0luIExMVk0gMTAgbGx2bTo6U3RyaW5nUmVmIG9wZXJhdG9yIHN0ZDo6 c3RyaW5nKCkgaXMgbWFya2VkIGFzIGV4cGxpY2l0LgorSW4gdGhpcyBjb21taXQgYWxsIGltcGxp Y2l0IGNvbnZlcnNpb24gZnJvbSBsbHZtOjpTdHJpbmdSZWYgdG8KK3N0ZDo6c3RyaW5nIGFyZSBj aGFuZ2VkIGJ5IGV4cGxpY2l0LgorLS0tCisgc3JjL2NoZWNrcy9tYW51YWxsZXZlbC9qbmlzaWdu YXR1cmVzLmNwcCB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVs ZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL3NyYy9jaGVja3MvbWFudWFsbGV2ZWwvam5pc2lnbmF0 dXJlcy5jcHAgYi9zcmMvY2hlY2tzL21hbnVhbGxldmVsL2puaXNpZ25hdHVyZXMuY3BwCitpbmRl eCA4MWU2MWQ0OC4uNWQ0ZmUyMDMgMTAwNjQ0CistLS0gYS9zcmMvY2hlY2tzL21hbnVhbGxldmVs L2puaXNpZ25hdHVyZXMuY3BwCisrKysgYi9zcmMvY2hlY2tzL21hbnVhbGxldmVsL2puaXNpZ25h dHVyZXMuY3BwCitAQCAtMTAzLDcgKzEwMyw3IEBAIHZvaWQgSm5pU2lnbmF0dXJlczo6Y2hlY2tG dW5jdGlvbkNhbGwoU3RtdCAqc3RtKQorICAgICAgICAgcmV0dXJuOworICAgICB9CisgCistICAg IGNvbnN0IHN0ZDo6c3RyaW5nIG5hbWUgPSBjbGF6eTo6bmFtZShmdW5EZWNsKTsKKysgICAgY29u c3Qgc3RkOjpzdHJpbmcgbmFtZSA9IHN0YXRpY19jYXN0PHN0ZDo6c3RyaW5nPihjbGF6eTo6bmFt ZShmdW5EZWNsKSk7CisgCisgICAgIGlmIChuYW1lID09ICJjYWxsT2JqZWN0TWV0aG9kIiB8fCBu YW1lID09ICJjYWxsTWV0aG9kIikgeworICAgICAgICAgY2hlY2tBcmdBdChjYWxsRXhwciwgMCwg bWV0aG9kTmFtZVJlZ2V4LCAiSW52YWxpZCBtZXRob2QgbmFtZSIpOworLS0gCitHaXRMYWIKKwpk aWZmIC0tZ2l0IGEvc3JjcGtncy9jbGF6eS90ZW1wbGF0ZSBiL3NyY3BrZ3MvY2xhenkvdGVtcGxh dGUKaW5kZXggNGQ4NTU3YmU2NjkuLjVhZjJiOTE4ZTE0IDEwMDY0NAotLS0gYS9zcmNwa2dzL2Ns YXp5L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY2xhenkvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBA CiAjIFRlbXBsYXRlIGZpbGUgZm9yICdjbGF6eScKIHBrZ25hbWU9Y2xhenkKIHZlcnNpb249MS43 Ci1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1jbWFrZQogaG9zdG1ha2VkZXBl bmRzPSJweXRob24iCiBtYWtlZGVwZW5kcz0iY2xhbmcgbGx2bSIKQEAgLTEyLDMgKzEyLDkgQEAg aG9tZXBhZ2U9Imh0dHBzOi8vY2dpdC5rZGUub3JnL2NsYXp5LmdpdC9hYm91dC8iCiBkaXN0Zmls ZXM9IiR7S0RFX1NJVEV9L2NsYXp5LyR7dmVyc2lvbn0vc3JjLyR7cGtnbmFtZX0tJHt2ZXJzaW9u fS50YXIueHoiCiBjaGVja3N1bT03NTRkYTU4MTVmNzY5ZGQ2YjcyYTA0MGEyNDMwNTI1YzkzZjI5 NGViNzc2OWM3ODI3MTYwM2RmOTYxNGYxYjIxCiBub2Nyb3NzPSJDbGFuZyBjYW5ub3QgYmUgaW5z dGFsbGVkIGFzIG1ha2VkZXAiCisKK3Bvc3RfZXh0cmFjdCgpIHsKKwlmb3IgaSBpbiAke0ZJTEVT RElSfS9jbGF6eS0qLnBhdGNoOyBkbworCQlwYXRjaCAtc05wMSAtaSAke2l9CisJZG9uZQorfQoK RnJvbSA3MDdmNjUxMmQ0ODdmZWU4NjAzMWViN2UxODlkZjFlY2NjMjdlMTc1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2JpbiBWb2V0dGVyIDxyb2JpbkB2b2V0dGVyLm5sPgpEYXRl OiBNb24sIDkgTm92IDIwMjAgMTU6MTk6MzcgKzAxMDAKU3ViamVjdDogW1BBVENIIDIwLzIyXSBp bmNsdWRlLXdoYXQteW91LXVzZTogcmVidWlsZCBmb3IgbGx2bTExCgotLS0KIC4uLmRlLXdoYXQt eW91LXVzZS0wMDEtbGx2bTExLXN0cmluZ3JlZi5wYXRjaCB8IDE0NiArKysrKysrKysrKysrKysr KysKIC4uLnVkZS13aGF0LXlvdS11c2UtMDAyLWNsYW5nLWFzdGR1bXBlci5wYXRjaCB8ICA1NCAr KysrKysrCiBzcmNwa2dzL2luY2x1ZGUtd2hhdC15b3UtdXNlL3RlbXBsYXRlICAgICAgICAgfCAg IDggKy0KIDMgZmlsZXMgY2hhbmdlZCwgMjA3IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2luY2x1ZGUtd2hhdC15b3UtdXNlL2ZpbGVzL2lu Y2x1ZGUtd2hhdC15b3UtdXNlLTAwMS1sbHZtMTEtc3RyaW5ncmVmLnBhdGNoCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9pbmNsdWRlLXdoYXQteW91LXVzZS9maWxlcy9pbmNsdWRlLXdoYXQt eW91LXVzZS0wMDItY2xhbmctYXN0ZHVtcGVyLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9p bmNsdWRlLXdoYXQteW91LXVzZS9maWxlcy9pbmNsdWRlLXdoYXQteW91LXVzZS0wMDEtbGx2bTEx LXN0cmluZ3JlZi5wYXRjaCBiL3NyY3BrZ3MvaW5jbHVkZS13aGF0LXlvdS11c2UvZmlsZXMvaW5j bHVkZS13aGF0LXlvdS11c2UtMDAxLWxsdm0xMS1zdHJpbmdyZWYucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjE3MWRjYTI4ZTM0Ci0tLSAvZGV2L251bGwKKysr IGIvc3JjcGtncy9pbmNsdWRlLXdoYXQteW91LXVzZS9maWxlcy9pbmNsdWRlLXdoYXQteW91LXVz ZS0wMDEtbGx2bTExLXN0cmluZ3JlZi5wYXRjaApAQCAtMCwwICsxLDE0NiBAQAorRnJvbSA1MzQ4 N2QyMDk3MjlkNTc4MTAwN2RjMGZkNjA3NmRjNTg1Y2IzNzI3IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQorRnJvbTogQW5kcmVhIEJvY2NpIDxhbmRyZWEuYm9jY2lAY2Vybi5jaD4KK0RhdGU6IEZy aSwgMjggRmViIDIwMjAgMTc6NDU6MDMgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gQWRkIGV4cGxp Y2l0IGNvbnZlcnNpb24gZnJvbSBsbHZtOjpTdHJpbmdSZWYgdG8gc3RkOjpzdHJpbmcKKworbGx2 bS9sbHZtLXByb2plY3RANzc3MTgwYSBtYWtlcyB0aGUgbGx2bTo6U3RyaW5nUmVmIGNvbnZlcnNp b24gb3BlcmF0b3IKK3RvIHN0ZDo6c3RyaW5nIGV4cGxpY2l0LgorVGhlc2UgY2hhbmdlcyBhZGQg YSBjYWxsIHRvIHRoZSBzdHIoKSBtZXRob2QgdG8gcGVyZm9ybSB0aGUgY29udmVyc2lvbi4KKwor U2lnbmVkLW9mZi1ieTogQW5kcmVhIEJvY2NpIDxhbmRyZWEuYm9jY2lAY2Vybi5jaD4KKy0tLQor IGl3eXVfZHJpdmVyLmNjICAgICAgIHwgMiArLQorIGl3eXVfZ2xvYmFscy5jYyAgICAgIHwgNCAr Ky0tCisgaXd5dV9sZXhlcl91dGlscy5jYyAgfCAyICstCisgaXd5dV9sb2NhdGlvbl91dGlsLmgg fCAyICstCisgaXd5dV9vdXRwdXQuY2MgICAgICAgfCAyICstCisgaXd5dV9wYXRoX3V0aWwuY2Mg ICAgfCA2ICsrKy0tLQorIGl3eXVfcHJlcHJvY2Vzc29yLmNjIHwgNCArKy0tCisgNyBmaWxlcyBj aGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBh L2l3eXVfZHJpdmVyLmNjIGIvaXd5dV9kcml2ZXIuY2MKK2luZGV4IGJkMTYzMTQ0Li40MmZlYTM1 YiAxMDA2NDQKKy0tLSBhL2l3eXVfZHJpdmVyLmNjCisrKysgYi9pd3l1X2RyaXZlci5jYworQEAg LTc5LDcgKzc5LDcgQEAgc3RkOjpzdHJpbmcgR2V0RXhlY3V0YWJsZVBhdGgoY29uc3QgY2hhciAq QXJndjApIHsKKyB9CisgCisgY29uc3QgY2hhciAqU2F2ZVN0cmluZ0luU2V0KHN0ZDo6c2V0PHN0 ZDo6c3RyaW5nPiAmU2F2ZWRTdHJpbmdzLCBTdHJpbmdSZWYgUykgeworLSAgcmV0dXJuIFNhdmVk U3RyaW5ncy5pbnNlcnQoUykuZmlyc3QtPmNfc3RyKCk7CisrICByZXR1cm4gU2F2ZWRTdHJpbmdz Lmluc2VydChTLnN0cigpKS5maXJzdC0+Y19zdHIoKTsKKyB9CisgCisgdm9pZCBFeHBhbmRBcmdz RnJvbUJ1Zihjb25zdCBjaGFyICpBcmcsCitkaWZmIC0tZ2l0IGEvaXd5dV9nbG9iYWxzLmNjIGIv aXd5dV9nbG9iYWxzLmNjCitpbmRleCAwZjU4YjRkYy4uMjY5OTg5NjYgMTAwNjQ0CistLS0gYS9p d3l1X2dsb2JhbHMuY2MKKysrKyBiL2l3eXVfZ2xvYmFscy5jYworQEAgLTI5Myw3ICsyOTMsNyBA QCBzdGF0aWMgdmVjdG9yPEhlYWRlclNlYXJjaFBhdGg+IENvbXB1dGVIZWFkZXJTZWFyY2hQYXRo cygKKyAgIGZvciAoYXV0byBpdCA9IGhlYWRlcl9zZWFyY2gtPnN5c3RlbV9kaXJfYmVnaW4oKTsK KyAgICAgICAgaXQgIT0gaGVhZGVyX3NlYXJjaC0+c3lzdGVtX2Rpcl9lbmQoKTsgKytpdCkgewor ICAgICBpZiAoY29uc3QgRGlyZWN0b3J5RW50cnkqIGVudHJ5ID0gaXQtPmdldERpcigpKSB7Cist ICAgICAgY29uc3Qgc3RyaW5nIHBhdGggPSBOb3JtYWxpemVEaXJQYXRoKE1ha2VBYnNvbHV0ZVBh dGgoZW50cnktPmdldE5hbWUoKSkpOworKyAgICAgIGNvbnN0IHN0cmluZyBwYXRoID0gTm9ybWFs aXplRGlyUGF0aChNYWtlQWJzb2x1dGVQYXRoKGVudHJ5LT5nZXROYW1lKCkuc3RyKCkpKTsKKyAg ICAgICBzZWFyY2hfcGF0aF9tYXBbcGF0aF0gPSBIZWFkZXJTZWFyY2hQYXRoOjprU3lzdGVtUGF0 aDsKKyAgICAgfQorICAgfQorQEAgLTMwMyw3ICszMDMsNyBAQCBzdGF0aWMgdmVjdG9yPEhlYWRl clNlYXJjaFBhdGg+IENvbXB1dGVIZWFkZXJTZWFyY2hQYXRocygKKyAgICAgICAvLyBzZWFyY2hf ZGlyX2JlZ2luKCkvZW5kKCkgaW5jbHVkZXMgYm90aCBzeXN0ZW0gYW5kIHVzZXIgcGF0aHMuCisg ICAgICAgLy8gSWYgaXQncyBhIHN5c3RlbSBwYXRoLCBpdCdzIGFscmVhZHkgaW4gdGhlIG1hcCwg c28gZXZlcnl0aGluZworICAgICAgIC8vIG5ldyBpcyBhIHVzZXIgcGF0aC4gIFRoZSBpbnNlcnQg b25seSAndGFrZXMnIGZvciBuZXcgZW50cmllcy4KKy0gICAgICBjb25zdCBzdHJpbmcgcGF0aCA9 IE5vcm1hbGl6ZURpclBhdGgoTWFrZUFic29sdXRlUGF0aChlbnRyeS0+Z2V0TmFtZSgpKSk7Cisr ICAgICAgY29uc3Qgc3RyaW5nIHBhdGggPSBOb3JtYWxpemVEaXJQYXRoKE1ha2VBYnNvbHV0ZVBh dGgoZW50cnktPmdldE5hbWUoKS5zdHIoKSkpOworICAgICAgIHNlYXJjaF9wYXRoX21hcC5pbnNl cnQobWFrZV9wYWlyKHBhdGgsIEhlYWRlclNlYXJjaFBhdGg6OmtVc2VyUGF0aCkpOworICAgICB9 CisgICB9CitkaWZmIC0tZ2l0IGEvaXd5dV9sZXhlcl91dGlscy5jYyBiL2l3eXVfbGV4ZXJfdXRp bHMuY2MKK2luZGV4IGZjZWEyZDI4Li42NDhjOWRhOCAxMDA2NDQKKy0tLSBhL2l3eXVfbGV4ZXJf dXRpbHMuY2MKKysrKyBiL2l3eXVfbGV4ZXJfdXRpbHMuY2MKK0BAIC03MCw3ICs3MCw3IEBAIFNv dXJjZUxvY2F0aW9uIEdldExvY2F0aW9uQWZ0ZXIoCisgc3RyaW5nIEdldEluY2x1ZGVOYW1lQXNX cml0dGVuKAorICAgICBTb3VyY2VMb2NhdGlvbiBpbmNsdWRlX2xvYywKKyAgICAgY29uc3QgQ2hh cmFjdGVyRGF0YUdldHRlckludGVyZmFjZSYgZGF0YV9nZXR0ZXIpIHsKKy0gIGNvbnN0IHN0cmlu ZyBkYXRhID0gR2V0U291cmNlVGV4dFVudGlsRW5kT2ZMaW5lKGluY2x1ZGVfbG9jLCBkYXRhX2dl dHRlcik7CisrICBjb25zdCBzdHJpbmcgZGF0YSA9IEdldFNvdXJjZVRleHRVbnRpbEVuZE9mTGlu ZShpbmNsdWRlX2xvYywgZGF0YV9nZXR0ZXIpLnN0cigpOworICAgaWYgKGRhdGEuZW1wdHkoKSkK KyAgICAgcmV0dXJuIGRhdGE7CisgICBzdHJpbmc6OnNpemVfdHlwZSBlbmRwb3MgPSBzdHJpbmc6 Om5wb3M7CitkaWZmIC0tZ2l0IGEvaXd5dV9sb2NhdGlvbl91dGlsLmggYi9pd3l1X2xvY2F0aW9u X3V0aWwuaAoraW5kZXggMzg5MmE0MjQuLjZmOGNmODFjIDEwMDY0NAorLS0tIGEvaXd5dV9sb2Nh dGlvbl91dGlsLmgKKysrKyBiL2l3eXVfbG9jYXRpb25fdXRpbC5oCitAQCAtODksNyArODksNyBA QCBib29sIElzSW5TY3JhdGNoU3BhY2UoY2xhbmc6OlNvdXJjZUxvY2F0aW9uIGxvYyk7CisgCisg aW5saW5lIHN0cmluZyBHZXRGaWxlUGF0aChjb25zdCBjbGFuZzo6RmlsZUVudHJ5KiBmaWxlKSB7 CisgICByZXR1cm4gKElzQnVpbHRpbkZpbGUoZmlsZSkgPyAiPGJ1aWx0LWluPiIgOgorLSAgICAg ICAgICBOb3JtYWxpemVGaWxlUGF0aChmaWxlLT5nZXROYW1lKCkpKTsKKysgICAgICAgICAgTm9y bWFsaXplRmlsZVBhdGgoZmlsZS0+Z2V0TmFtZSgpLnN0cigpKSk7CisgfQorIAorIC8vLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitk aWZmIC0tZ2l0IGEvaXd5dV9vdXRwdXQuY2MgYi9pd3l1X291dHB1dC5jYworaW5kZXggY2ExNDU3 MTAuLjg2NjZjMjZjIDEwMDY0NAorLS0tIGEvaXd5dV9vdXRwdXQuY2MKKysrKyBiL2l3eXVfb3V0 cHV0LmNjCitAQCAtMTY4LDcgKzE2OCw3IEBAIHN0cmluZyBHZXRLaW5kTmFtZShjb25zdCBjbGFu Zzo6VGFnRGVjbCogdGFnX2RlY2wpIHsKKyAgIGlmIChjb25zdCBGYWtlTmFtZWREZWNsKiBmYWtl ID0gRmFrZU5hbWVkRGVjbElmSXRJc09uZShuYW1lZF9kZWNsKSkgeworICAgICByZXR1cm4gZmFr ZS0+a2luZF9uYW1lKCk7CisgICB9CistICByZXR1cm4gdGFnX2RlY2wtPmdldEtpbmROYW1lKCk7 CisrICByZXR1cm4gdGFnX2RlY2wtPmdldEtpbmROYW1lKCkuc3RyKCk7CisgfQorIAorIHN0cmlu ZyBHZXRRdWFsaWZpZWROYW1lQXNTdHJpbmcoY29uc3QgY2xhbmc6Ok5hbWVkRGVjbCogbmFtZWRf ZGVjbCkgeworZGlmZiAtLWdpdCBhL2l3eXVfcGF0aF91dGlsLmNjIGIvaXd5dV9wYXRoX3V0aWwu Y2MKK2luZGV4IGFiNGZjODAwLi45OTg3ZWE0NyAxMDA2NDQKKy0tLSBhL2l3eXVfcGF0aF91dGls LmNjCisrKysgYi9pd3l1X3BhdGhfdXRpbC5jYworQEAgLTEzNCw3ICsxMzQsNyBAQCBzdHJpbmcg Tm9ybWFsaXplRmlsZVBhdGgoY29uc3Qgc3RyaW5nJiBwYXRoKSB7CisgICBzdGQ6OnJlcGxhY2Uo bm9ybWFsaXplZC5iZWdpbigpLCBub3JtYWxpemVkLmVuZCgpLCAnXFwnLCAnLycpOworICNlbmRp ZgorIAorLSAgcmV0dXJuIG5vcm1hbGl6ZWQuc3RyKCk7CisrICByZXR1cm4gbm9ybWFsaXplZC5z dHIoKS5zdHIoKTsKKyB9CisgCisgc3RyaW5nIE5vcm1hbGl6ZURpclBhdGgoY29uc3Qgc3RyaW5n JiBwYXRoKSB7CitAQCAtMTU0LDE0ICsxNTQsMTQgQEAgc3RyaW5nIE1ha2VBYnNvbHV0ZVBhdGgo Y29uc3Qgc3RyaW5nJiBwYXRoKSB7CisgICBzdGQ6OmVycm9yX2NvZGUgZXJyb3IgPSBsbHZtOjpz eXM6OmZzOjptYWtlX2Fic29sdXRlKGFic29sdXRlX3BhdGgpOworICAgQ0hFQ0tfKCFlcnJvcik7 CisgCistICByZXR1cm4gYWJzb2x1dGVfcGF0aC5zdHIoKTsKKysgIHJldHVybiBhYnNvbHV0ZV9w YXRoLnN0cigpLnN0cigpOworIH0KKyAKKyBzdHJpbmcgTWFrZUFic29sdXRlUGF0aChjb25zdCBz dHJpbmcmIGJhc2VfcGF0aCwgY29uc3Qgc3RyaW5nJiByZWxhdGl2ZV9wYXRoKSB7CisgICBsbHZt OjpTbWFsbFN0cmluZzwxMjg+IGFic29sdXRlX3BhdGgoYmFzZV9wYXRoKTsKKyAgIGxsdm06OnN5 czo6cGF0aDo6YXBwZW5kKGFic29sdXRlX3BhdGgsIHJlbGF0aXZlX3BhdGgpOworIAorLSAgcmV0 dXJuIGFic29sdXRlX3BhdGguc3RyKCk7CisrICByZXR1cm4gYWJzb2x1dGVfcGF0aC5zdHIoKS5z dHIoKTsKKyB9CisgCisgc3RyaW5nIEdldFBhcmVudFBhdGgoY29uc3Qgc3RyaW5nJiBwYXRoKSB7 CitkaWZmIC0tZ2l0IGEvaXd5dV9wcmVwcm9jZXNzb3IuY2MgYi9pd3l1X3ByZXByb2Nlc3Nvci5j YworaW5kZXggNThlNzg1OTUuLjg4YjkzMTQ0IDEwMDY0NAorLS0tIGEvaXd5dV9wcmVwcm9jZXNz b3IuY2MKKysrKyBiL2l3eXVfcHJlcHJvY2Vzc29yLmNjCitAQCAtMzEzLDcgKzMxMyw3IEBAIHZv aWQgSXd5dVByZXByb2Nlc3NvckluZm86OlByb2Nlc3NIZWFkZXJuYW1lRGlyZWN0aXZlc0luRmls ZSgKKyAgICAgICBicmVhazsKKyAgICAgfQorICAgICBjb25zdCBzdHJpbmcgZmlsZW5hbWUgPSBH ZXRTb3VyY2VUZXh0VW50aWxFbmRPZkxpbmUoY3VycmVudF9sb2MsCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0RGF0YUdldHRl cigpKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIERlZmF1bHREYXRhR2V0dGVyKCkpLnN0cigpOworICAgICAvLyBVc2UgIiIgb3IgPD4g YmFzZWQgb24gd2hlcmUgdGhlIGZpbGUgbGl2ZXMuCisgICAgIHN0cmluZyBxdW90ZWRfcHJpdmF0 ZV9pbmNsdWRlOworICAgICBpZiAoSXNTeXN0ZW1JbmNsdWRlRmlsZShHZXRGaWxlUGF0aChjdXJy ZW50X2xvYykpKQorQEAgLTMzMiw3ICszMzIsNyBAQCB2b2lkIEl3eXVQcmVwcm9jZXNzb3JJbmZv OjpQcm9jZXNzSGVhZGVybmFtZURpcmVjdGl2ZXNJbkZpbGUoCisgICAgIH0KKyAKKyAgICAgc3Ry aW5nIGFmdGVyX3RleHQgPSBHZXRTb3VyY2VUZXh0VW50aWxFbmRPZkxpbmUoY3VycmVudF9sb2Ms CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERl ZmF1bHREYXRhR2V0dGVyKCkpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBEZWZhdWx0RGF0YUdldHRlcigpKS5zdHIoKTsKKyAgICAgY29uc3Qg c3RyaW5nOjpzaXplX3R5cGUgY2xvc2VfYnJhY2VfcG9zID0gYWZ0ZXJfdGV4dC5maW5kKCd9Jyk7 CisgICAgIGlmIChjbG9zZV9icmFjZV9wb3MgPT0gc3RyaW5nOjpucG9zKSB7CisgICAgICAgV2Fy bihjdXJyZW50X2xvYywgIkBoZWFkZXJuYW1lIGRpcmVjdGl2ZSBtaXNzaW5nIGEgY2xvc2luZyBi cmFjZSIpOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9pbmNsdWRlLXdoYXQteW91LXVzZS9maWxlcy9p bmNsdWRlLXdoYXQteW91LXVzZS0wMDItY2xhbmctYXN0ZHVtcGVyLnBhdGNoIGIvc3JjcGtncy9p bmNsdWRlLXdoYXQteW91LXVzZS9maWxlcy9pbmNsdWRlLXdoYXQteW91LXVzZS0wMDItY2xhbmct YXN0ZHVtcGVyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42 NjNhODgzZmE5MQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvaW5jbHVkZS13aGF0LXlvdS11 c2UvZmlsZXMvaW5jbHVkZS13aGF0LXlvdS11c2UtMDAyLWNsYW5nLWFzdGR1bXBlci5wYXRjaApA QCAtMCwwICsxLDU0IEBACitGcm9tIDMwNTQ5YzY5MzE5NzI0NTZkMWUwOWZmNWRiZWVjZDI1OGE4 ZGY3MmIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBLaW0gR3Jhc21hbiA8a2ltLmdy YXNtYW5AZ21haWwuY29tPgorRGF0ZTogVGh1LCA5IEp1bCAyMDIwIDE4OjQ3OjU2ICswMjAwCitT dWJqZWN0OiBbUEFUQ0hdIEltcGxlbWVudCBTdG10IHByaW50aW5nIHdpdGggQVNURHVtcGVyCisK K1RoZSBDbGFuZyBBUEkgY2hhbmdlZCBpbiBjb21taXQgNDczZmJjOTBkMWZiZjE3ZSBzbyB0aGF0 IFN0bXQ6OmR1bXAKK3Rha2VzIGFuIEFTVENvbnRleHQgaW5zdGVhZCBvZiBhIFNvdXJjZU1hbmFn ZXIuCisKK1JhdGhlciB0aGFuIHdpcmUgYSBnbG9iYWwgQVNUQ29udGV4dCwgcmVpbXBsZW1lbnQg UHJpbnRhYmxlU3RtdCBhbmQKK1ByaW50U3RtdCB0byBkdXBsaWNhdGUgdGhlIG1vc3QgdHJpdmlh bCBpbXBsZW1lbnRhdGlvbnMgbm90IHJlcXVpcmluZworQVNUQ29udGV4dC4KKworTm8gZnVuY3Rp b25hbCBjaGFuZ2UuCistLS0KKyBpd3l1X2FzdF91dGlsLmNjIHwgOCArKysrKystLQorIDEgZmls ZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQg YS9pd3l1X2FzdF91dGlsLmNjIGIvaXd5dV9hc3RfdXRpbC5jYworaW5kZXggZDNkNGRkMWYuLmIx OWExMWZiIDEwMDY0NAorLS0tIGEvaXd5dV9hc3RfdXRpbC5jYworKysrIGIvaXd5dV9hc3RfdXRp bC5jYworQEAgLTI1LDYgKzI1LDcgQEAKKyAjaW5jbHVkZSAibGx2bS9TdXBwb3J0L0Nhc3Rpbmcu aCIKKyAjaW5jbHVkZSAibGx2bS9TdXBwb3J0L3Jhd19vc3RyZWFtLmgiCisgI2luY2x1ZGUgImNs YW5nL0FTVC9BU1RDb250ZXh0LmgiCisrI2luY2x1ZGUgImNsYW5nL0FTVC9BU1REdW1wZXIuaCIK KyAjaW5jbHVkZSAiY2xhbmcvQVNUL0Nhbm9uaWNhbFR5cGUuaCIKKyAjaW5jbHVkZSAiY2xhbmcv QVNUL0RlY2wuaCIKKyAjaW5jbHVkZSAiY2xhbmcvQVNUL0RlY2xCYXNlLmgiCitAQCAtNDYsNiAr NDcsNyBAQCBuYW1lc3BhY2UgY2xhbmcgeworIGNsYXNzIEZpbGVFbnRyeTsKKyB9ICAvLyBuYW1l c3BhY2UgY2xhbmcKKyAKKyt1c2luZyBjbGFuZzo6QVNURHVtcGVyOworIHVzaW5nIGNsYW5nOjpC bG9ja1BvaW50ZXJUeXBlOworIHVzaW5nIGNsYW5nOjpDWFhDb25zdHJ1Y3RFeHByOworIHVzaW5n IGNsYW5nOjpDWFhDb25zdHJ1Y3RvckRlY2w7CitAQCAtNDUwLDEyICs0NTIsMTQgQEAgc3RyaW5n IFByaW50YWJsZURlY2woY29uc3QgRGVjbCogZGVjbCwgYm9vbCB0ZXJzZS8qPXRydWUqLykgewor IHN0cmluZyBQcmludGFibGVTdG10KGNvbnN0IFN0bXQqIHN0bXQpIHsKKyAgIHN0ZDo6c3RyaW5n IGJ1ZmZlcjsKKyAgIHJhd19zdHJpbmdfb3N0cmVhbSBvc3RyZWFtKGJ1ZmZlcik7CistICBzdG10 LT5kdW1wKG9zdHJlYW0sICpHbG9iYWxTb3VyY2VNYW5hZ2VyKCkpOworKyAgQVNURHVtcGVyIGR1 bXBlcihvc3RyZWFtLCAvKlNob3dDb2xvcnM9Ki9mYWxzZSk7CisrICBkdW1wZXIuVmlzaXQoc3Rt dCk7CisgICByZXR1cm4gb3N0cmVhbS5zdHIoKTsKKyB9CisgCisgdm9pZCBQcmludFN0bXQoY29u c3QgU3RtdCogc3RtdCkgeworLSAgc3RtdC0+ZHVtcCgqR2xvYmFsU291cmNlTWFuYWdlcigpKTsg IC8vIFRoaXMgcHJpbnRzIHRvIGVycnMoKS4KKysgIEFTVER1bXBlciBkdW1wZXIobGx2bTo6ZXJy cygpLCAvKlNob3dDb2xvcnM9Ki9mYWxzZSk7CisrICBkdW1wZXIuVmlzaXQoc3RtdCk7CisgfQor IAorIHN0cmluZyBQcmludGFibGVUeXBlKGNvbnN0IFR5cGUqIHR5cGUpIHsKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvaW5jbHVkZS13aGF0LXlvdS11c2UvdGVtcGxhdGUgYi9zcmNwa2dzL2luY2x1ZGUt d2hhdC15b3UtdXNlL3RlbXBsYXRlCmluZGV4IDIyYzlkMDlkMDkxLi4zODExMzA5YmRkZSAxMDA2 NDQKLS0tIGEvc3JjcGtncy9pbmNsdWRlLXdoYXQteW91LXVzZS90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL2luY2x1ZGUtd2hhdC15b3UtdXNlL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1w bGF0ZSBmaWxlIGZvciAnaW5jbHVkZS13aGF0LXlvdS11c2UnCiBwa2duYW1lPWluY2x1ZGUtd2hh dC15b3UtdXNlCiB2ZXJzaW9uPTAuMTQKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIHdya3NyYz0i JHtwa2duYW1lfSIKIGJ1aWxkX3N0eWxlPWNtYWtlCiBjb25maWd1cmVfYXJncz0iLURJV1lVX0xM Vk1fUk9PVF9QQVRIPSR7WEJQU19DUk9TU19CQVNFfS91c3IgIgpAQCAtMTUsNiArMTUsMTIgQEAg ZGlzdGZpbGVzPSJodHRwczovL2luY2x1ZGUtd2hhdC15b3UtdXNlLm9yZy9kb3dubG9hZHMvJHtw a2duYW1lfS0ke3ZlcnNpb259LnNyYy4KIGNoZWNrc3VtPTQzMTg0Mzk3ZGI1NzY2MGMzMmUzMjk4 YTZiMWZkNWFiODJlODA4YTFmNWFiMDU5MWQ2NzQ1ZjhkMjU2MjAwZWYKIHB5dGhvbl92ZXJzaW9u PTMKIAorcG9zdF9leHRyYWN0KCkgeworCWZvciBpIGluICR7RklMRVNESVJ9L2luY2x1ZGUtd2hh dC15b3UtdXNlLSoucGF0Y2g7IGRvCisJCXBhdGNoIC1zTnAxIC1pICR7aX0KKwlkb25lCit9CisK IHBvc3RfaW5zdGFsbCgpIHsKIAl2bGljZW5zZSBMSUNFTlNFLlRYVAogfQoKRnJvbSBmOTMyYjUy MTY5ZjZhMTgyYjJlMzY0NTAxN2U3MGJmZjllMDAwMTZjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBSb2JpbiBWb2V0dGVyIDxyb2JpbkB2b2V0dGVyLm5sPgpEYXRlOiBNb24sIDkgTm92 IDIwMjAgMTY6MTc6NTQgKzAxMDAKU3ViamVjdDogW1BBVENIIDIxLzIyXSBicGZ0cmFjZTogdXBk YXRlIHRvIDAuMTEuMgoKLS0tCiAuLi50cmFjZS0wMDEtc2l4LWFyZ3MtYnBmX2F0dGFjaF91cHJv YmUucGF0Y2ggfCAxMjYgKysrKysrKysrKysrKysrCiAuLi5hY2UtMDAyLXNldmVuLWFyZ3MtYnBm X2F0dGFjaF91cHJvYmUucGF0Y2ggfCAxNDggKysrKysrKysrKysrKysrKysrCiBzcmNwa2dzL2Jw ZnRyYWNlL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgfCAgMTAgKy0KIDMgZmlsZXMgY2hh bmdlZCwgMjgyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9icGZ0cmFjZS9maWxlcy9icGZ0cmFjZS0wMDEtc2l4LWFyZ3MtYnBmX2F0dGFj aF91cHJvYmUucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2JwZnRyYWNlL2ZpbGVz L2JwZnRyYWNlLTAwMi1zZXZlbi1hcmdzLWJwZl9hdHRhY2hfdXByb2JlLnBhdGNoCgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9icGZ0cmFjZS9maWxlcy9icGZ0cmFjZS0wMDEtc2l4LWFyZ3MtYnBmX2F0 dGFjaF91cHJvYmUucGF0Y2ggYi9zcmNwa2dzL2JwZnRyYWNlL2ZpbGVzL2JwZnRyYWNlLTAwMS1z aXgtYXJncy1icGZfYXR0YWNoX3Vwcm9iZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMC4uZTJiMWFkMTM1MWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2Jw ZnRyYWNlL2ZpbGVzL2JwZnRyYWNlLTAwMS1zaXgtYXJncy1icGZfYXR0YWNoX3Vwcm9iZS5wYXRj aApAQCAtMCwwICsxLDEyNiBAQAorRnJvbSA1MmZiNzkzYzY0MjNjMTk2OTZlMDdjYzE0YWQ1Zjkx ODJmN2VjYTBlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogVmlrdG9yIE1hbGlrIDx2 aWt0b3IubWFsaWtAZ21haWwuY29tPgorRGF0ZTogV2VkLCAxMiBBdWcgMjAyMCAwOTo0NToyOSAr MDIwMAorU3ViamVjdDogW1BBVENIXSBGZWF0dXJlLWRldGVjdCBicGZfYXR0YWNoX2twcm9iZSBz aWduYXR1cmUKKworVGhlIGZ1bmN0aW9uIGhhcyA2IHBhcmFtZXRlcnMgaW4gY3VycmVudCB2ZXJz aW9ucyBvZiBCQ0MgYW5kIDUKK3BhcmFtZXRlcnMgaW4gb2xkZXIgdmVyc2lvbnMuCisKK1RoaXMg aXMgZGV0ZWN0ZWQgaW4gQ01ha2UgdXNpbmcgQ0hFQ0tfQ1hYX1NPVVJDRV9DT01QSUxFUy4gRm9y IHN0YXRpYworY29tcGlsYXRpb24sIHdlIGFsc28gbmVlZCB0byByZXRyaWV2ZSBhbmQgbGluayBz dGF0aWMgbGliYnBmLCBsaWJlbGYsCithbmQgbGliei4gVGhpcyBtYXkgY2F1c2UgbGliYnBmLCBs aWJlbGYgYW5kIGxpYnogdG8gYmUgc2VhcmNoZWQgZm9yCit0d2ljZSwgYnV0IGl0IHNob3VsZCBi ZSBmaW5lIHNpbmNlIENNYWtlIGNhY2hlcyByZXN1bHRzLgorCitGaXhlcyBpb3Zpc29yIzEwMjcu CistLS0KKyBjbWFrZS9GaW5kTGliQmNjLmNtYWtlIHwgMjQgKysrKysrKysrKysrKysrKysrKysr KysrCisgc3JjL0NNYWtlTGlzdHMudHh0ICAgICB8ICAzICsrKworIHNyYy9hdHRhY2hlZF9wcm9i ZS5jcHAgfCAzMSArKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tCisgdGVzdHMvQ01ha2VM aXN0cy50eHQgICB8ICAzICsrKworIDQgZmlsZXMgY2hhbmdlZCwgNDQgaW5zZXJ0aW9ucygrKSwg MTcgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9jbWFrZS9GaW5kTGliQmNjLmNtYWtlIGIv Y21ha2UvRmluZExpYkJjYy5jbWFrZQoraW5kZXggOWQzMGIwNGJjLi5lYzIxNjI3MWQgMTAwNjQ0 CistLS0gYS9jbWFrZS9GaW5kTGliQmNjLmNtYWtlCisrKysgYi9jbWFrZS9GaW5kTGliQmNjLmNt YWtlCitAQCAtNzAsMyArNzAsMjcgQEAgaW5jbHVkZSAoRmluZFBhY2thZ2VIYW5kbGVTdGFuZGFy ZEFyZ3MpCisgRklORF9QQUNLQUdFX0hBTkRMRV9TVEFOREFSRF9BUkdTKExpYkJjYyAiUGxlYXNl IGluc3RhbGwgdGhlIGJjYyBsaWJyYXJ5IHBhY2thZ2UsIHdoaWNoIGlzIHJlcXVpcmVkLiBEZXBl bmRpbmcgb24geW91ciBkaXN0cm8sIGl0IG1heSBiZSBjYWxsZWQgYnBmY2NsaWIgb3IgYmNjbGli IChVYnVudHUpLCBiY2MtZGV2ZWwgKEZlZG9yYSksIG9yIHNvbWV0aGluZyBlbHNlLiBJZiB1bmF2 YWlsYWJsZSwgaW5zdGFsbCBiY2MgZnJvbSBzb3VyY2UgKGdpdGh1Yi5jb20vaW92aXNvci9iY2Mp LiIKKyAgIExJQkJDQ19MSUJSQVJJRVMKKyAgIExJQkJDQ19JTkNMVURFX0RJUlMpCisrCisrIyBD aGVjayBicGZfYXR0YWNoX2twcm9iZSBzaWduYXR1cmUKKytpZigke0xJQkJDQ19GT1VORH0pCisr aWYoU1RBVElDX0xJTktJTkcpCisrICAjIGxpYmJjYy5hIGlzIG5vdCBzdGF0aWNhbGx5IGxpbmtl ZCB3aXRoIGxpYmJwZi5hLCBsaWJlbGYuYSwgYW5kIGxpYnouYS4KKysgICMgSWYgd2UgZG8gYSBz dGF0aWMgYnBmdHJhY2UgYnVpbGQsIHdlIG11c3QgbGluayB0aGVtIGluLgorKyAgZmluZF9wYWNr YWdlKExpYkJwZikKKysgIGZpbmRfcGFja2FnZShMaWJFbGYpCisrICBmaW5kX3BhY2thZ2UoTGli WikKKysgIFNFVChDTUFLRV9SRVFVSVJFRF9MSUJSQVJJRVMgJHtMSUJCQ0NfQlBGX0xJQlJBUllf U1RBVElDfSAke0xJQkJQRl9MSUJSQVJJRVN9ICR7TElCRUxGX0xJQlJBUklFU30gJHtMSUJaX0xJ QlJBUklFU30pCisrZWxzZSgpCisrICBTRVQoQ01BS0VfUkVRVUlSRURfTElCUkFSSUVTICR7TElC QkNDX0xJQlJBUklFU30pCisrZW5kaWYoKQorK0lOQ0xVREUoQ2hlY2tDWFhTb3VyY2VDb21waWxl cykKKytDSEVDS19DWFhfU09VUkNFX0NPTVBJTEVTKCIKKysjaW5jbHVkZSA8YmNjL2xpYmJwZi5o PgorKworK2ludCBtYWluKHZvaWQpIHsKKysgIGJwZl9hdHRhY2hfa3Byb2JlKDAsIEJQRl9QUk9C RV9FTlRSWSwgXCJcIiwgXCJcIiwgMCwgMCk7CisrICByZXR1cm4gMDsKKyt9CisrIiBMSUJCQ0Nf QVRUQUNIX0tQUk9CRV9TSVhfQVJHU19TSUdOQVRVUkUpCisrU0VUKENNQUtFX1JFUVVJUkVEX0xJ QlJBUklFUykKKytlbmRpZigpCitkaWZmIC0tZ2l0IGEvc3JjL0NNYWtlTGlzdHMudHh0IGIvc3Jj L0NNYWtlTGlzdHMudHh0CitpbmRleCA2NDdhMjNmMWMuLjQ0OGEwNDVmYyAxMDA2NDQKKy0tLSBh L3NyYy9DTWFrZUxpc3RzLnR4dAorKysrIGIvc3JjL0NNYWtlTGlzdHMudHh0CitAQCAtODAsNiAr ODAsOSBAQCBpZihIQVZFX0JGRF9ESVNBU00pCisgICAgIHRhcmdldF9saW5rX2xpYnJhcmllcyhi cGZ0cmFjZSAke0xJQk9QQ09ERVNfTElCUkFSSUVTfSkKKyAgIGVuZGlmKFNUQVRJQ19MSU5LSU5H KQorIGVuZGlmKEhBVkVfQkZEX0RJU0FTTSkKKytpZihMSUJCQ0NfQVRUQUNIX0tQUk9CRV9TSVhf QVJHU19TSUdOQVRVUkUpCisrICB0YXJnZXRfY29tcGlsZV9kZWZpbml0aW9ucyhicGZ0cmFjZSBQ UklWQVRFIExJQkJDQ19BVFRBQ0hfS1BST0JFX1NJWF9BUkdTX1NJR05BVFVSRSkKKytlbmRpZihM SUJCQ0NfQVRUQUNIX0tQUk9CRV9TSVhfQVJHU19TSUdOQVRVUkUpCisgCisgaWYgKEFMTE9XX1VO U0FGRV9QUk9CRSkKKyAgIHRhcmdldF9jb21waWxlX2RlZmluaXRpb25zKGJwZnRyYWNlIFBSSVZB VEUgSEFWRV9VTlNBRkVfUFJPQkUpCitkaWZmIC0tZ2l0IGEvc3JjL2F0dGFjaGVkX3Byb2JlLmNw cCBiL3NyYy9hdHRhY2hlZF9wcm9iZS5jcHAKK2luZGV4IDU4N2ExMTU3Ni4uYWZhZDllZDE4IDEw MDY0NAorLS0tIGEvc3JjL2F0dGFjaGVkX3Byb2JlLmNwcAorKysrIGIvc3JjL2F0dGFjaGVkX3By b2JlLmNwcAorQEAgLTc1NCwyNiArNzU0LDIzIEBAIHZvaWQgQXR0YWNoZWRQcm9iZTo6bG9hZF9w cm9nKCkKKyAgIH0KKyB9CisgCistLy8gWFhYKG1tYXJjaGluaSk6IGJjYyBjaGFuZ2VkIHRoZSBz aWduYXR1cmUgb2YgYnBmX2F0dGFjaF9rcHJvYmUsIGFkZGluZyBhIG5ldworLS8vIGludCBwYXJh bWV0ZXIgYXQgdGhlIGVuZC4gU2luY2UgdGhlcmUncyBubyByZWxpYWJsZSB3YXkgdG8gZmVhdHVy ZS1kZXRlY3QKKy0vLyB0aGlzLCB3ZSBjcmVhdGUgYSBmdW5jdGlvbiBwb2ludGVyIHdpdGggdGhl IGxvbmcgc2lnbmF0dXJlIGFuZCBjYXN0CistLy8gYnBmX2F0dGFjaF9rcHJvYmUgdG8gdGhpcyBm dW5jdGlvbiBwb2ludGVyLiBJZiB3ZSdyZSBvbiBhbiBvbGRlciBiY2MKKy0vLyB2ZXJzaW9uLCBi cGZfYXR0YWNoX2twcm9iZSBjYWxsIHdpbGwgYmUgYXVnbWVudGVkIHdpdGggYW4gZXh0cmEgcmVn aXN0ZXIKKy0vLyBiZWluZyB1c2VkIGZvciB0aGUgbGFzdCBwYXJhbWV0ZXIsIGV2ZW4gdGhvdWdo IHRoaXMgcmVnaXN0ZXIgd29uJ3QgYmUgdXNlZAorLS8vIGluc2lkZSB0aGUgZnVuY3Rpb24uIFNp bmNlIHRoZSByZWdpc3RlciB3b24ndCBiZSB1c2VkIHRoaXMgaXMga2luZGEgc2FmZSwKKy0vLyBh bHRob3VnaCBub3QgaWRlYWwuCistdHlwZWRlZiBpbnQgKCphdHRhY2hfcHJvYmVfd3JhcHBlcl9z aWduYXR1cmUpKGludCwgZW51bSBicGZfcHJvYmVfYXR0YWNoX3R5cGUsIGNvbnN0IGNoYXIqLCBj b25zdCBjaGFyKiwgdWludDY0X3QsIGludCk7CistCisgdm9pZCBBdHRhY2hlZFByb2JlOjphdHRh Y2hfa3Byb2JlKGJvb2wgc2FmZV9tb2RlKQorIHsKKyAgIHJlc29sdmVfb2Zmc2V0X2twcm9iZShz YWZlX21vZGUpOworLSAgaW50IHBlcmZfZXZlbnRfZmQgPSBjYXN0X3NpZ25hdHVyZTxhdHRhY2hf cHJvYmVfd3JhcHBlcl9zaWduYXR1cmU+KAorLSAgICAgICZicGZfYXR0YWNoX2twcm9iZSkocHJv Z2ZkXywKKy0gICAgICAgICAgICAgICAgICAgICAgICAgIGF0dGFjaHR5cGUocHJvYmVfLnR5cGUp LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRuYW1lKCkuY19zdHIoKSwKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgIHByb2JlXy5hdHRhY2hfcG9pbnQuY19zdHIoKSwKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgIG9mZnNldF8sCistICAgICAgICAgICAgICAgICAgICAgICAg ICAwKTsKKysjaWZkZWYgTElCQkNDX0FUVEFDSF9LUFJPQkVfU0lYX0FSR1NfU0lHTkFUVVJFCisr ICBpbnQgcGVyZl9ldmVudF9mZCA9IGJwZl9hdHRhY2hfa3Byb2JlKHByb2dmZF8sCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dGFjaHR5cGUocHJvYmVfLnR5cGUp LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudG5hbWUoKS5j X3N0cigpLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9iZV8u YXR0YWNoX3BvaW50LmNfc3RyKCksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG9mZnNldF8sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDApOworKyNlbHNlCisrICBpbnQgcGVyZl9ldmVudF9mZCA9IGJwZl9hdHRhY2hfa3Byb2JlKHBy b2dmZF8sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dGFjaHR5 cGUocHJvYmVfLnR5cGUpLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBldmVudG5hbWUoKS5jX3N0cigpLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwcm9iZV8uYXR0YWNoX3BvaW50LmNfc3RyKCksCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG9mZnNldF8pOworKyNlbmRpZgorIAorICAgaWYgKHBlcmZf ZXZlbnRfZmQgPCAwKSB7CisgICAgIGlmIChwcm9iZV8ub3JpZ19uYW1lICE9IHByb2JlXy5uYW1l KSB7CitkaWZmIC0tZ2l0IGEvdGVzdHMvQ01ha2VMaXN0cy50eHQgYi90ZXN0cy9DTWFrZUxpc3Rz LnR4dAoraW5kZXggMzY4OGI4NDg3Li44NGRhZWIyYWEgMTAwNjQ0CistLS0gYS90ZXN0cy9DTWFr ZUxpc3RzLnR4dAorKysrIGIvdGVzdHMvQ01ha2VMaXN0cy50eHQKK0BAIC0xMDIsNiArMTAyLDkg QEAgaWYoSEFWRV9CRkRfRElTQVNNKQorICAgICB0YXJnZXRfbGlua19saWJyYXJpZXMoYnBmdHJh Y2VfdGVzdCAke0xJQk9QQ09ERVNfTElCUkFSSUVTfSkKKyAgIGVuZGlmKFNUQVRJQ19MSU5LSU5H KQorIGVuZGlmKEhBVkVfQkZEX0RJU0FTTSkKKytpZihMSUJCQ0NfQVRUQUNIX0tQUk9CRV9TSVhf QVJHU19TSUdOQVRVUkUpCisrICB0YXJnZXRfY29tcGlsZV9kZWZpbml0aW9ucyhicGZ0cmFjZV90 ZXN0IFBSSVZBVEUgTElCQkNDX0FUVEFDSF9LUFJPQkVfU0lYX0FSR1NfU0lHTkFUVVJFKQorK2Vu ZGlmKExJQkJDQ19BVFRBQ0hfS1BST0JFX1NJWF9BUkdTX1NJR05BVFVSRSkKKyAKKyB0YXJnZXRf bGlua19saWJyYXJpZXMoYnBmdHJhY2VfdGVzdCBhcmNoIGFzdCBwYXJzZXIgcmVzb3VyY2VzKQor IApkaWZmIC0tZ2l0IGEvc3JjcGtncy9icGZ0cmFjZS9maWxlcy9icGZ0cmFjZS0wMDItc2V2ZW4t YXJncy1icGZfYXR0YWNoX3Vwcm9iZS5wYXRjaCBiL3NyY3BrZ3MvYnBmdHJhY2UvZmlsZXMvYnBm dHJhY2UtMDAyLXNldmVuLWFyZ3MtYnBmX2F0dGFjaF91cHJvYmUucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjJjYzU1Yzg2NTU1Ci0tLSAvZGV2L251bGwKKysr IGIvc3JjcGtncy9icGZ0cmFjZS9maWxlcy9icGZ0cmFjZS0wMDItc2V2ZW4tYXJncy1icGZfYXR0 YWNoX3Vwcm9iZS5wYXRjaApAQCAtMCwwICsxLDE0OCBAQAorRnJvbSBjN2RiYWI0NTE0ODRiOTYx NzhkYTFhOGM0MzMzMDE1NGNlNGM5ZDdhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTog RGFuaWVsIFh1IDxkeHVAZHh1dXUueHl6PgorRGF0ZTogV2VkLCAxNCBPY3QgMjAyMCAxNzowOTo0 NiAtMDcwMAorU3ViamVjdDogW1BBVENIXSBEZXRlY3QgNyBhcmcgYnBmX2F0dGFjaF91cHJvYmUo KSBBUEkKKworVGhlIDd0aCBhcmcgYWxsb3dzIHVzIHRvIHNwZWNpZnkgdGhlIHVzZHQgc2VtYXBo b3JlIGxvY2F0aW9uLgorLS0tCisgY21ha2UvRmluZExpYkJjYy5jbWFrZSB8IDExICsrKysrKysr KysrCisgc3JjL0NNYWtlTGlzdHMudHh0ICAgICB8ICAzICsrKworIHNyYy9hdHRhY2hlZF9wcm9i ZS5jcHAgfCA0MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0KKyBz cmMvbWFpbi5jcHAgICAgICAgICAgIHwgIDYgKysrKysrCisgdGVzdHMvQ01ha2VMaXN0cy50eHQg ICB8ICAzICsrKworIDUgZmlsZXMgY2hhbmdlZCwgNTcgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlv bnMoLSkKKworZGlmZiAtLWdpdCBhL2NtYWtlL0ZpbmRMaWJCY2MuY21ha2UgYi9jbWFrZS9GaW5k TGliQmNjLmNtYWtlCitpbmRleCA0YzA5YThjYTIuLjkyY2VkYWI1ZSAxMDA2NDQKKy0tLSBhL2Nt YWtlL0ZpbmRMaWJCY2MuY21ha2UKKysrKyBiL2NtYWtlL0ZpbmRMaWJCY2MuY21ha2UKK0BAIC03 LDYgKzcsOCBAQAorICMgIExJQkJDQ19ERUZJTklUSU9OUyAtIENvbXBpbGVyIHN3aXRjaGVzIHJl cXVpcmVkIGZvciB1c2luZyBsaWJiY2MKKyAjICBMSUJCQ0NfQlBGX0xJQlJBUllfU1RBVElDIC0g bGliYnBmIHN0YXRpYyBsaWJyYXJ5IChmb3Igc3RhdGljIGNvbXBpbGF0aW9uKQorICMgIExJQkJD Q19MT0FERVJfTElCUkFSWV9TVEFUSUMgLSBsaWJiY2MgaGVscGVyIHN0YXRpYyBsaWJyYXJ5IChm b3Igc3RhdGljIGNvbXBpbGF0aW9uKQorKyMgIExJQkJDQ19BVFRBQ0hfS1BST0JFX1NJWF9BUkdT X1NJR05BVFVSRQorKyMgIExJQkJDQ19BVFRBQ0hfVVBST0JFX1NFVkVOX0FSR1NfU0lHTkFUVVJF CisgIworICMgTm90ZSB0aGF0IHRoZSBzaGFyZWQgbGliYmNjIGJpbmFyeSBoYXMgbGliYnBmIGFu ZCBiY2NfbG9hZGVyIGFscmVhZHkgY29tcGlsZWQgaW4gYnV0CisgIyB0aGUgc3RhdGljIGRvZXNu J3QuIFNvIHdoZW4gY3JlYXRpbmcgYSBzdGF0aWMgYnVpbGQgdGhvc2UgaGF2ZSB0byBiZSBpbmNs dWRlZCB0b28uCitAQCAtOTQsNiArOTYsMTUgQEAgaW50IG1haW4odm9pZCkgeworICAgcmV0dXJu IDA7CisgfQorICIgTElCQkNDX0FUVEFDSF9LUFJPQkVfU0lYX0FSR1NfU0lHTkFUVVJFKQorKwor K0NIRUNLX0NYWF9TT1VSQ0VfQ09NUElMRVMoIgorKyNpbmNsdWRlIDxiY2MvbGliYnBmLmg+Cisr CisraW50IG1haW4odm9pZCkgeworKyAgYnBmX2F0dGFjaF91cHJvYmUoMCwgQlBGX1BST0JFX0VO VFJZLCBcIlwiLCBcIlwiLCAwLCAwLCAwKTsKKysgIHJldHVybiAwOworK30KKysiIExJQkJDQ19B VFRBQ0hfVVBST0JFX1NFVkVOX0FSR1NfU0lHTkFUVVJFKQorIFNFVChDTUFLRV9SRVFVSVJFRF9M SUJSQVJJRVMpCisgU0VUKENNQUtFX1JFUVVJUkVEX0lOQ0xVREVTKQorIGVuZGlmKCkKK2RpZmYg LS1naXQgYS9zcmMvQ01ha2VMaXN0cy50eHQgYi9zcmMvQ01ha2VMaXN0cy50eHQKK2luZGV4IDkx NjIzNTZlMy4uY2VmOTRkMTQ0IDEwMDY0NAorLS0tIGEvc3JjL0NNYWtlTGlzdHMudHh0CisrKysg Yi9zcmMvQ01ha2VMaXN0cy50eHQKK0BAIC04OCw2ICs4OCw5IEBAIGVuZGlmKEhBVkVfQkZEX0RJ U0FTTSkKKyBpZihMSUJCQ0NfQVRUQUNIX0tQUk9CRV9TSVhfQVJHU19TSUdOQVRVUkUpCisgICB0 YXJnZXRfY29tcGlsZV9kZWZpbml0aW9ucyhicGZ0cmFjZSBQUklWQVRFIExJQkJDQ19BVFRBQ0hf S1BST0JFX1NJWF9BUkdTX1NJR05BVFVSRSkKKyBlbmRpZihMSUJCQ0NfQVRUQUNIX0tQUk9CRV9T SVhfQVJHU19TSUdOQVRVUkUpCisraWYoTElCQkNDX0FUVEFDSF9VUFJPQkVfU0VWRU5fQVJHU19T SUdOQVRVUkUpCisrICB0YXJnZXRfY29tcGlsZV9kZWZpbml0aW9ucyhicGZ0cmFjZSBQUklWQVRF IExJQkJDQ19BVFRBQ0hfVVBST0JFX1NFVkVOX0FSR1NfU0lHTkFUVVJFKQorK2VuZGlmKExJQkJD Q19BVFRBQ0hfVVBST0JFX1NFVkVOX0FSR1NfU0lHTkFUVVJFKQorIAorIGlmIChBTExPV19VTlNB RkVfUFJPQkUpCisgICB0YXJnZXRfY29tcGlsZV9kZWZpbml0aW9ucyhicGZ0cmFjZSBQUklWQVRF IEhBVkVfVU5TQUZFX1BST0JFKQorZGlmZiAtLWdpdCBhL3NyYy9hdHRhY2hlZF9wcm9iZS5jcHAg Yi9zcmMvYXR0YWNoZWRfcHJvYmUuY3BwCitpbmRleCA5M2ZiZmE4NzYuLmE1ZDhiYzU2ZCAxMDA2 NDQKKy0tLSBhL3NyYy9hdHRhY2hlZF9wcm9iZS5jcHAKKysrKyBiL3NyYy9hdHRhY2hlZF9wcm9i ZS5jcHAKK0BAIC02OTgsMTIgKzY5OCwyMyBAQCB2b2lkIEF0dGFjaGVkUHJvYmU6OmF0dGFjaF91 cHJvYmUoYm9vbCBzYWZlX21vZGUpCisgeworICAgcmVzb2x2ZV9vZmZzZXRfdXByb2JlKHNhZmVf bW9kZSk7CisgCistICBpbnQgcGVyZl9ldmVudF9mZCA9IGJwZl9hdHRhY2hfdXByb2JlKHByb2dm ZF8sCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dGFjaHR5cGUo cHJvYmVfLnR5cGUpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl dmVudG5hbWUoKS5jX3N0cigpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwcm9iZV8ucGF0aC5jX3N0cigpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBvZmZzZXRfLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwcm9iZV8ucGlkKTsKKysgIGludCBwZXJmX2V2ZW50X2ZkID0KKysjaWZkZWYgTElCQkND X0FUVEFDSF9VUFJPQkVfU0VWRU5fQVJHU19TSUdOQVRVUkUKKysgICAgICBicGZfYXR0YWNoX3Vw cm9iZShwcm9nZmRfLAorKyAgICAgICAgICAgICAgICAgICAgICAgIGF0dGFjaHR5cGUocHJvYmVf LnR5cGUpLAorKyAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50bmFtZSgpLmNfc3RyKCksCisr ICAgICAgICAgICAgICAgICAgICAgICAgcHJvYmVfLnBhdGguY19zdHIoKSwKKysgICAgICAgICAg ICAgICAgICAgICAgICBvZmZzZXRfLAorKyAgICAgICAgICAgICAgICAgICAgICAgIHByb2JlXy5w aWQsCisrICAgICAgICAgICAgICAgICAgICAgICAgMCk7CisrI2Vsc2UKKysgICAgICBicGZfYXR0 YWNoX3Vwcm9iZShwcm9nZmRfLAorKyAgICAgICAgICAgICAgICAgICAgICAgIGF0dGFjaHR5cGUo cHJvYmVfLnR5cGUpLAorKyAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50bmFtZSgpLmNfc3Ry KCksCisrICAgICAgICAgICAgICAgICAgICAgICAgcHJvYmVfLnBhdGguY19zdHIoKSwKKysgICAg ICAgICAgICAgICAgICAgICAgICBvZmZzZXRfLAorKyAgICAgICAgICAgICAgICAgICAgICAgIHBy b2JlXy5waWQpOworKyNlbmRpZiAvLyBMSUJCQ0NfQVRUQUNIX1VQUk9CRV9TRVZFTl9BUkdTX1NJ R05BVFVSRQorIAorICAgaWYgKHBlcmZfZXZlbnRfZmQgPCAwKQorICAgICB0aHJvdyBzdGQ6OnJ1 bnRpbWVfZXJyb3IoIkVycm9yIGF0dGFjaGluZyBwcm9iZTogIiArIHByb2JlXy5uYW1lKTsKK0BA IC04MTIsOCArODIzLDIzIEBAIHZvaWQgQXR0YWNoZWRQcm9iZTo6YXR0YWNoX3VzZHQoaW50IHBp ZCkKKyAKKyAgIG9mZnNldF8gPSByZXNvbHZlX29mZnNldChwcm9iZV8ucGF0aCwgcHJvYmVfLmF0 dGFjaF9wb2ludCwgcHJvYmVfLmxvYyk7CisgCistICBpbnQgcGVyZl9ldmVudF9mZCA9IGJwZl9h dHRhY2hfdXByb2JlKHByb2dmZF8sIGF0dGFjaHR5cGUocHJvYmVfLnR5cGUpLAorLSAgICAgIGV2 ZW50bmFtZSgpLmNfc3RyKCksIHByb2JlXy5wYXRoLmNfc3RyKCksIG9mZnNldF8sIHBpZCA9PSAw ID8gLTEgOiBwaWQpOworKyAgaW50IHBlcmZfZXZlbnRfZmQgPQorKyNpZmRlZiBMSUJCQ0NfQVRU QUNIX1VQUk9CRV9TRVZFTl9BUkdTX1NJR05BVFVSRQorKyAgICAgIGJwZl9hdHRhY2hfdXByb2Jl KHByb2dmZF8sCisrICAgICAgICAgICAgICAgICAgICAgICAgYXR0YWNodHlwZShwcm9iZV8udHlw ZSksCisrICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRuYW1lKCkuY19zdHIoKSwKKysgICAg ICAgICAgICAgICAgICAgICAgICBwcm9iZV8ucGF0aC5jX3N0cigpLAorKyAgICAgICAgICAgICAg ICAgICAgICAgIG9mZnNldF8sCisrICAgICAgICAgICAgICAgICAgICAgICAgcGlkID09IDAgPyAt MSA6IHBpZCwKKysgICAgICAgICAgICAgICAgICAgICAgICAwKTsKKysjZWxzZQorKyAgICAgIGJw Zl9hdHRhY2hfdXByb2JlKHByb2dmZF8sCisrICAgICAgICAgICAgICAgICAgICAgICAgYXR0YWNo dHlwZShwcm9iZV8udHlwZSksCisrICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRuYW1lKCku Y19zdHIoKSwKKysgICAgICAgICAgICAgICAgICAgICAgICBwcm9iZV8ucGF0aC5jX3N0cigpLAor KyAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldF8sCisrICAgICAgICAgICAgICAgICAgICAg ICAgcGlkID09IDAgPyAtMSA6IHBpZCk7CisrI2VuZGlmIC8vIExJQkJDQ19BVFRBQ0hfVVBST0JF X1NFVkVOX0FSR1NfU0lHTkFUVVJFCisgCisgICBpZiAocGVyZl9ldmVudF9mZCA8IDApCisgICB7 CitkaWZmIC0tZ2l0IGEvc3JjL21haW4uY3BwIGIvc3JjL21haW4uY3BwCitpbmRleCA0OGZjZjVh YTAuLjA5ZjRkOTY3NyAxMDA2NDQKKy0tLSBhL3NyYy9tYWluLmNwcAorKysrIGIvc3JjL21haW4u Y3BwCitAQCAtMTYyLDYgKzE2MiwxMiBAQCBzdGF0aWMgaW50IGluZm8oKQorICAgICAgICAgICAg IDw8ICJ5ZXMiIDw8IHN0ZDo6ZW5kbDsKKyAjZWxzZQorICAgICAgICAgICAgIDw8ICJubyIgPDwg c3RkOjplbmRsOworKyNlbmRpZgorKyAgc3RkOjpjZXJyIDw8ICIgIGJjYyBicGZfYXR0YWNoX3Vw cm9iZSByZWZjb3VudDogIgorKyNpZmRlZiBMSUJCQ0NfQVRUQUNIX1VQUk9CRV9TRVZFTl9BUkdT X1NJR05BVFVSRQorKyAgICAgICAgICAgIDw8ICJ5ZXMiIDw8IHN0ZDo6ZW5kbDsKKysjZWxzZQor KyAgICAgICAgICAgIDw8ICJubyIgPDwgc3RkOjplbmRsOworICNlbmRpZgorICAgc3RkOjpjZXJy IDw8ICIgIGxpYmJwZjogIgorICNpZmRlZiBIQVZFX0xJQkJQRgorZGlmZiAtLWdpdCBhL3Rlc3Rz L0NNYWtlTGlzdHMudHh0IGIvdGVzdHMvQ01ha2VMaXN0cy50eHQKK2luZGV4IGFjZTVmZjEwNi4u MzMyZWJhMmI1IDEwMDY0NAorLS0tIGEvdGVzdHMvQ01ha2VMaXN0cy50eHQKKysrKyBiL3Rlc3Rz L0NNYWtlTGlzdHMudHh0CitAQCAtMTE2LDYgKzExNiw5IEBAIGVuZGlmKEhBVkVfQkZEX0RJU0FT TSkKKyBpZihMSUJCQ0NfQVRUQUNIX0tQUk9CRV9TSVhfQVJHU19TSUdOQVRVUkUpCisgICB0YXJn ZXRfY29tcGlsZV9kZWZpbml0aW9ucyhicGZ0cmFjZV90ZXN0IFBSSVZBVEUgTElCQkNDX0FUVEFD SF9LUFJPQkVfU0lYX0FSR1NfU0lHTkFUVVJFKQorIGVuZGlmKExJQkJDQ19BVFRBQ0hfS1BST0JF X1NJWF9BUkdTX1NJR05BVFVSRSkKKytpZihMSUJCQ0NfQVRUQUNIX1VQUk9CRV9TRVZFTl9BUkdT X1NJR05BVFVSRSkKKysgIHRhcmdldF9jb21waWxlX2RlZmluaXRpb25zKGJwZnRyYWNlX3Rlc3Qg UFJJVkFURSBMSUJCQ0NfQVRUQUNIX1VQUk9CRV9TRVZFTl9BUkdTX1NJR05BVFVSRSkKKytlbmRp ZihMSUJCQ0NfQVRUQUNIX1VQUk9CRV9TRVZFTl9BUkdTX1NJR05BVFVSRSkKKyAKKyB0YXJnZXRf bGlua19saWJyYXJpZXMoYnBmdHJhY2VfdGVzdCBhcmNoIGFzdCBwYXJzZXIgcmVzb3VyY2VzKQor IApkaWZmIC0tZ2l0IGEvc3JjcGtncy9icGZ0cmFjZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvYnBmdHJh Y2UvdGVtcGxhdGUKaW5kZXggZDgzNjdmYTVjMDMuLjQ0ZTZjMTc0MTA3IDEwMDY0NAotLS0gYS9z cmNwa2dzL2JwZnRyYWNlL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvYnBmdHJhY2UvdGVtcGxhdGUK QEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdicGZ0cmFjZScKIHBrZ25hbWU9 YnBmdHJhY2UKLXZlcnNpb249MC4xMS4xCit2ZXJzaW9uPTAuMTEuMgogcmV2aXNpb249MQogYXJj aHM9Ing4Nl82NCogYWFyY2g2NCogcHBjNjQqIgogYnVpbGRfc3R5bGU9Y21ha2UKQEAgLTEyLDcg KzEyLDEzIEBAIG1haW50YWluZXI9IkxlYWggTmV1a2lyY2hlbiA8bGVhaEB2dXh1Lm9yZz4iCiBs aWNlbnNlPSJBcGFjaGUtMi4wIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0aHViLmNvbS9pb3Zpc29y L2JwZnRyYWNlLyIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL2lvdmlzb3IvYnBmdHJh Y2UvYXJjaGl2ZS92JHt2ZXJzaW9ufS50YXIuZ3oiCi1jaGVja3N1bT05OGVmYzkzOTY0NTFiYzFh NGY3MzM3OGNlYzQ3NTVlMDdlNzcxOGNiNWQ2OTg0NzI2MDZmNWZmYzJiOWU0OGU4CitjaGVja3N1 bT0xZjBmYzMwMDczNTQ3ZTNiMjg1ZTFhMzczYWE0NjliYjE4ZDNiYTI3ZjhjMDVmOTEwMTZkZjBj YTg0Zjc3ZjkwCisKK3Bvc3RfZXh0cmFjdCgpIHsKKwlmb3IgaSBpbiAke0ZJTEVTRElSfS9icGZ0 cmFjZS0qLnBhdGNoOyBkbworCQlwYXRjaCAtc05wMSAtaSAke2l9CisJZG9uZQorfQogCiBwb3N0 X2luc3RhbGwoKSB7CiAJIyBjbGFzaGVzIHdpdGggYmNjLXRvb2xzCgpGcm9tIDMzYzliYzA0Y2Nm M2QxYWYwZTU4ZGI4OTBkYzhkNmM5NDQzZDAzMjQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IFJvYmluIFZvZXR0ZXIgPHJvYmluQHZvZXR0ZXIubmw+CkRhdGU6IE1vbiwgOSBOb3YgMjAy MCAxOToyOToxNSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMjIvMjJdIGJlaWduZXQ6IHJlYnVpbGQg Zm9yIGxsdm0xMQoKLS0tCiBzcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMTEucGF0Y2ggfCA5 NDUgKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBzcmNwa2dzL2JlaWduZXQvdGVtcGxhdGUg ICAgICAgICAgICAgfCAgIDIgKy0KIDIgZmlsZXMgY2hhbmdlZCwgOTQ2IGluc2VydGlvbnMoKyks IDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2JlaWduZXQvcGF0Y2hl cy9sbHZtMTEucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZt MTEucGF0Y2ggYi9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMTEucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjlmMzI4MjY3Njk4Ci0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTExLnBhdGNoCkBAIC0wLDAgKzEsOTQ1 IEBACitTb3VyY2U6IFNuZWt0cm9uCisKK1RoZXJlIHdlcmUgYSBmZXcgY2hhbmdlcyByZXF1aXJl ZCBmb3IgTExWTSAxMToKKyogbGx2bTo6U3RyaW5nUmVmIHJlcXVpcmVzIC5zdHIoKSwgaW1wbGlj aXQgY29udmVyc2lvbiB3YXMgcmVtb3ZlZAorKiBsbHZtOjpDYWxsU2l0ZSB3YXMgcmVtb3ZlZCwg YnV0IHRoZSByZXF1aXJlZCBtZXRob2RzIGFyZSBhdmFpbGFibGUgb24gbGx2bTo6Q2FsbEluc3QK KyogVmVjdG9yVHlJRCB3YXMgc3BsaXQgaW50byBGaXhlZFZlY3RvclR5SUQgYW5kIFNjYWxhYmxl VmVjdG9yVHlJRCwgRml4ZWRWZWN0b3JUeUlEIHdhcyB1c2VkCisqIENhbGxJbnN0OjpnZXRDYWxs ZWRWYWx1ZSgpIHdhcyByZW5hbWVkIHRvIENhbGxJbnN0OjpnZXRDYWxsZWRPcGVyYW5kKCkKKyog SW1wbGljaXQgY29udmVyc2lvbiBmcm9tIE1heWJlQWxpZ24gdG8gQWxpZ24gd2FzIHJlbW92ZWQs IHNvIE1heWJlQWxpZ246OnZhbHVlT3JPbmUgd2FzIHVzZWQgaW5zdGVhZC4KKworLS0tIGJhY2tl bmQvc3JjL2xsdm0vU3RyaXBBdHRyaWJ1dGVzLmNwcAkyMDIwLTExLTA5IDE2OjQ4OjIwLjgyMzg2 NjExMiArMDEwMAorKysrIGJhY2tlbmQvc3JjL2xsdm0vU3RyaXBBdHRyaWJ1dGVzLmNwcAkyMDIw LTExLTA5IDE5OjA0OjE5LjY0MTg5NzE0MSArMDEwMAorQEAgLTEwNyw5ICsxMDcsOCBAQAorICAg ICAgICBCQiAhPSBFOyArK0JCKSB7CisgICAgIGZvciAoQmFzaWNCbG9jazo6aXRlcmF0b3IgSW5z dCA9IEJCLT5iZWdpbigpLCBFID0gQkItPmVuZCgpOworICAgICAgICAgIEluc3QgIT0gRTsgKytJ bnN0KSB7CistICAgICAgQ2FsbFNpdGUgQ2FsbCgmKkluc3QpOworLSAgICAgIGlmIChDYWxsKQor LSAgICAgICAgQ2FsbC5zZXRDYWxsaW5nQ29udihDYWxsaW5nQ29udjo6Qyk7CisrICAgICAgaWYg KENhbGxJbnN0KiBjYWxsSW5zdCA9IGR5bl9jYXN0PENhbGxJbnN0PigmKkluc3QpKQorKyAgICAg ICAgY2FsbEluc3QtPnNldENhbGxpbmdDb252KENhbGxpbmdDb252OjpDKTsKKyAgICAgfQorICAg fQorCistLS0gYmFja2VuZC9zcmMvbGx2bS9sbHZtX2JpdGNvZGVfbGluay5jcHAJMjAyMC0xMS0w OSAxNjo0ODoyMC44MjM4NjYxMTIgKzAxMDAKKysrKyBiYWNrZW5kL3NyYy9sbHZtL2xsdm1fYml0 Y29kZV9saW5rLmNwcAkyMDIwLTExLTA5IDE3OjA0OjA5LjYzMzc1MzQyOCArMDEwMAorQEAgLTk4 LDcgKzk4LDcgQEAKKyAgICAgICAgIGlmIChjYWxsRnVuYyAmJiBjYWxsRnVuYy0+Z2V0SW50cmlu c2ljSUQoKSAhPSAwKQorICAgICAgICAgICBjb250aW51ZTsKKworLSAgICAgICAgc3RkOjpzdHJp bmcgZm5OYW1lID0gY2FsbC0+Z2V0Q2FsbGVkVmFsdWUoKS0+c3RyaXBQb2ludGVyQ2FzdHMoKS0+ Z2V0TmFtZSgpOworKyAgICAgICAgc3RkOjpzdHJpbmcgZm5OYW1lID0gY2FsbC0+Z2V0Q2FsbGVk T3BlcmFuZCgpLT5zdHJpcFBvaW50ZXJDYXN0cygpLT5nZXROYW1lKCkuc3RyKCk7CisKKyAgICAg ICAgIGlmICghTUZTLmluc2VydChmbk5hbWUpLnNlY29uZCkgeworICAgICAgICAgICBjb250aW51 ZTsKKy0tLSBiYWNrZW5kL3NyYy9sbHZtL2xsdm1fZGV2aWNlX2VucXVldWUuY3BwCTIwMjAtMTEt MDkgMTY6NDg6MjAuODIzODY2MTEyICswMTAwCisrKysgYmFja2VuZC9zcmMvbGx2bS9sbHZtX2Rl dmljZV9lbnF1ZXVlLmNwcAkyMDIwLTExLTA5IDE5OjAxOjQ5LjIwMTkxNTAwOCArMDEwMAorQEAg LTQ1LDcgKzQ1LDcgQEAKKyAgICAgICByZXR1cm4gTlVMTDsKKworICAgICAvKiBUaGlzIGlzIGEg ZmFrZSwgdG8gY2hlY2sgdGhlIGZ1bmN0aW9uIGJpdGNhc3QgaXMgZm9yIGJsb2NrIG9yIG5vdCAq LworLSAgICBzdGQ6OnN0cmluZyBmbk5hbWUgPSBGbi0+Z2V0TmFtZSgpOworKyAgICBzdGQ6OnN0 cmluZyBmbk5hbWUgPSBGbi0+Z2V0TmFtZSgpLnN0cigpOworICAgICBpZihmbk5hbWUuZmluZCgi X2ludm9rZSIpID09IHN0ZDo6c3RyaW5nOjpucG9zKQorICAgICAgIHJldHVybiBOVUxMOworCitA QCAtMTE5LDE4ICsxMTksMTggQEAKKyAgICAgICBQYXJhbVR5cy5wdXNoX2JhY2sodHkpOworICAg ICB9CisgICAgIEZ1bmN0aW9uVHlwZSogTmV3RlQgPSBGdW5jdGlvblR5cGU6OmdldChGbi0+Z2V0 UmV0dXJuVHlwZSgpLCBQYXJhbVR5cywgZmFsc2UpOworLSAgICBGdW5jdGlvbiogTmV3Rm4gPSBG dW5jdGlvbjo6Q3JlYXRlKE5ld0ZULCBGdW5jdGlvbjo6RXh0ZXJuYWxMaW5rYWdlLCBGbi0+Z2V0 TmFtZSgpKTsKKysgICAgRnVuY3Rpb24qIE5ld0ZuID0gRnVuY3Rpb246OkNyZWF0ZShOZXdGVCwg RnVuY3Rpb246OkV4dGVybmFsTGlua2FnZSwgRm4tPmdldE5hbWUoKS5zdHIoKSk7CisgICAgIFNt YWxsVmVjdG9yPFJldHVybkluc3QqLCA4PiBSZXR1cm5zOworCisgICAgIEZ1bmN0aW9uOjphcmdf aXRlcmF0b3IgTmV3Rm5BcmdJdCA9IE5ld0ZuLT5hcmdfYmVnaW4oKTsKKyAgICAgZm9yIChGdW5j dGlvbjo6YXJnX2l0ZXJhdG9yIEkgPSBGbi0+YXJnX2JlZ2luKCksIEUgPSBGbi0+YXJnX2VuZCgp OyBJICE9IEU7ICsrSSkgeworLSAgICAgIHN0ZDo6c3RyaW5nIEFyZ05hbWUgPSBJLT5nZXROYW1l KCk7CisrICAgICAgc3RkOjpzdHJpbmcgQXJnTmFtZSA9IEktPmdldE5hbWUoKS5zdHIoKTsKKyAg ICAgICBOZXdGbkFyZ0l0LT5zZXROYW1lKEFyZ05hbWUpOworICAgICAgIFZNYXBbJipJXSA9ICYo Kk5ld0ZuQXJnSXQrKyk7CisgICAgIH0KKyAgICAgQ2xvbmVGdW5jdGlvbkludG8oTmV3Rm4sIEZu LCBWTWFwLCAvKk1vZHVsZUxldmVsQ2hhbmdlcz0qL3RydWUsIFJldHVybnMpOworCistICAgIEZu LT5zZXROYW1lKCJfX2QiICsgRm4tPmdldE5hbWUoKSk7CisrICAgIEZuLT5zZXROYW1lKCJfX2Qi ICsgRm4tPmdldE5hbWUoKS5zdHIoKSk7CisgICAgIG1vZC0+Z2V0RnVuY3Rpb25MaXN0KCkucHVz aF9iYWNrKE5ld0ZuKTsKKyAgICAgLy9tb2QtPmdldE9ySW5zZXJ0RnVuY3Rpb24oTmV3Rm4tPmdl dE5hbWUoKSwgTmV3Rm4tPmdldEZ1bmN0aW9uVHlwZSgpLAorICAgICAvLyAgICAgICAgICAgICAg ICAgICAgICAgICBOZXdGbi0+Z2V0QXR0cmlidXRlcygpKTsKK0BAIC0xNDcsNyArMTQ3LDcgQEAK KyAgICAgICBhcmdUeXBlTmFtZXMucHVzaF9iYWNrKGxsdm06Ok1EU3RyaW5nOjpnZXQoQ29udGV4 dCwgImNoYXIqIikpOworICAgICAgIGFyZ0Jhc2VUeXBlTmFtZXMucHVzaF9iYWNrKGxsdm06Ok1E U3RyaW5nOjpnZXQoQ29udGV4dCwgImNoYXIqIikpOworICAgICAgIGFyZ1R5cGVRdWFscy5wdXNo X2JhY2sobGx2bTo6TURTdHJpbmc6OmdldChDb250ZXh0LCAiIikpOworLSAgICAgIGFyZ05hbWVz LnB1c2hfYmFjayhsbHZtOjpNRFN0cmluZzo6Z2V0KENvbnRleHQsIEktPmdldE5hbWUoKSkpOwor KyAgICAgIGFyZ05hbWVzLnB1c2hfYmFjayhsbHZtOjpNRFN0cmluZzo6Z2V0KENvbnRleHQsIEkt PmdldE5hbWUoKS5zdHIoKSkpOworICAgICB9CisKKyAgICAgLy9JZiBydW4gdG8gaGVyZSwgbGx2 bSB2ZXJzaW9uIGFsd2F5cyA+IDMuOSwgYWRkIHRoZSB2ZXJzaW9uIGNoZWNrIGp1c3QgZm9yIGJ1 aWxkLgorQEAgLTE5OCw3ICsxOTgsNyBAQAorICAgICAgICAgICAgKiBpbnZva2UgcG9pbnRlciB0 byBzdG9yZSB0aGUgaW5kZXggaW4gdGhlIHVuaXQncyBibG9jayBmdW5jdGlvbnMgaW5kZXguKi8K KyAgICAgICAgICAgRnVuY3Rpb24gKkZuID0gZHluX2Nhc3Q8RnVuY3Rpb24+KGJ0LT5nZXRPcGVy YW5kKDApKTsKKworLSAgICAgICAgICBzdGQ6OnN0cmluZyBmbk5hbWUgPSBGbi0+Z2V0TmFtZSgp OworKyAgICAgICAgICBzdGQ6OnN0cmluZyBmbk5hbWUgPSBGbi0+Z2V0TmFtZSgpLnN0cigpOwor ICAgICAgICAgICBpbnQgaW5kZXggPSAtMTsKKyAgICAgICAgICAgZm9yKHNpemVfdCBpPTA7IGk8 dW5pdC5ibG9ja0Z1bmNzLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAgaWYodW5pdC5ibG9j a0Z1bmNzW2ldID09IGZuTmFtZSkgeworQEAgLTI0MSw3ICsyNDEsNyBAQAorICAgICAgICAgICAg IC8vdW5uYW1lZCBjYWxsIGZ1bmN0aW9uLCBwYXJzZSB0aGUgdXNlIHRvIGZpbmQgdGhlIGRlZmlu ZSBvZiBjYWxsZWQgZnVuY3Rpb24KKyAgICAgICAgICAgICBTbWFsbFZlY3RvcjxWYWx1ZSosIDE2 PiBhcmdzKENJLT5vcF9iZWdpbigpLCBDSS0+b3BfZW5kKCktMSk7CisKKy0gICAgICAgICAgICBW YWx1ZSAqdiA9IENJLT5nZXRDYWxsZWRWYWx1ZSgpOworKyAgICAgICAgICAgIFZhbHVlICp2ID0g Q0ktPmdldENhbGxlZE9wZXJhbmQoKTsKKyAgICAgICAgICAgICBCaXRDYXN0SW5zdCogYnQgPSBk eW5fY2FzdDxCaXRDYXN0SW5zdD4odik7CisgICAgICAgICAgICAgaWYoYnQgPT0gTlVMTCkKKyAg ICAgICAgICAgICAgIGNvbnRpbnVlOworQEAgLTMxNiw3ICszMTYsNyBAQAorICAgICAgICAgICAg ICAgICAgIENvbnN0YW50RXhwciAqZXhwciA9IGR5bl9jYXN0PENvbnN0YW50RXhwcj4oYy0+Z2V0 T3BlcmFuZCgzKSk7CisgICAgICAgICAgICAgICAgICAgQml0Q2FzdEluc3QgKmJ0ID0gZHluX2Nh c3Q8Qml0Q2FzdEluc3Q+KGV4cHItPmdldEFzSW5zdHJ1Y3Rpb24oKSk7CisgICAgICAgICAgICAg ICAgICAgRnVuY3Rpb24qIGYgPSBkeW5fY2FzdDxGdW5jdGlvbj4oYnQtPmdldE9wZXJhbmQoMCkp OworLSAgICAgICAgICAgICAgICAgIGJsb2Nrc1t2XSA9IGYtPmdldE5hbWUoKTsKKysgICAgICAg ICAgICAgICAgICBibG9ja3Nbdl0gPSBmLT5nZXROYW1lKCkuc3RyKCk7CisgICAgICAgICAgICAg ICAgIH0KKyAgICAgICAgICAgICAgIH0KKworQEAgLTMzMiw3ICszMzIsNyBAQAorICAgICAgICAg ICB9IGVsc2UgeworICAgICAgICAgICAgIC8vaGFuZGxlIGVucXVldWVfa2VybmVsIGZ1bmN0aW9u IGNhbGwKKyAgICAgICAgICAgICBGdW5jdGlvbiAqZm4gPSBDSS0+Z2V0Q2FsbGVkRnVuY3Rpb24o KTsKKy0gICAgICAgICAgICBpZiAoZm4tPmdldE5hbWUoKS5maW5kKCJlbnF1ZXVlX2tlcm5lbCIp ID09IHN0ZDo6c3RyaW5nOjpucG9zKQorKyAgICAgICAgICAgIGlmIChmbi0+Z2V0TmFtZSgpLnN0 cigpLmZpbmQoImVucXVldWVfa2VybmVsIikgPT0gc3RkOjpzdHJpbmc6Om5wb3MpCisgICAgICAg ICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgIC8vYmxvY2sgcGFyYW1ldGVyJ3MgaW5k ZXgsIDMgb3IgNgorQEAgLTM2MSw3ICszNjEsNyBAQAorICAgICAgICAgICAgICAgICAgIENvbnN0 YW50RXhwciAqZXhwciA9IGR5bl9jYXN0PENvbnN0YW50RXhwcj4oYy0+Z2V0T3BlcmFuZCgzKSk7 CisgICAgICAgICAgICAgICAgICAgQml0Q2FzdEluc3QgKmJ0ID0gZHluX2Nhc3Q8Qml0Q2FzdElu c3Q+KGV4cHItPmdldEFzSW5zdHJ1Y3Rpb24oKSk7CisgICAgICAgICAgICAgICAgICAgRnVuY3Rp b24qIGYgPSBkeW5fY2FzdDxGdW5jdGlvbj4oYnQtPmdldE9wZXJhbmQoMCkpOworLSAgICAgICAg ICAgICAgICAgIGJsb2Nrc1t2XSA9IGYtPmdldE5hbWUoKTsKKysgICAgICAgICAgICAgICAgICBi bG9ja3Nbdl0gPSBmLT5nZXROYW1lKCkuc3RyKCk7CisgICAgICAgICAgICAgICAgIH0KKyAgICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICB9IGVsc2UgaWYoaXNhPEFsbG9jYUluc3Q+KGJsb2Nr KSkgeworLS0tIGJhY2tlbmQvc3JjL2xsdm0vbGx2bV9nZW5fYmFja2VuZC5jcHAJMjAyMC0xMS0w OSAxNjo0ODoyMC44MjM4NjYxMTIgKzAxMDAKKysrKyBiYWNrZW5kL3NyYy9sbHZtL2xsdm1fZ2Vu X2JhY2tlbmQuY3BwCTIwMjAtMTEtMDkgMTg6MzM6NTAuOTE5MTE0MzI3ICswMTAwCitAQCAtMzc2 LDcgKzM3Niw3IEBACisgICAgICAgICAgIEdCRV9BU1NFUlQoaW5kZXggPT0gMCk7CisgICAgICAg ICAgIHJldHVybiB0aGlzLT5fbmV3U2NhbGFyKHZhbHVlLCBrZXksIHR5cGUsIGluZGV4LCB1bmlm b3JtKTsKKyAgICAgICAgICAgYnJlYWs7CistICAgICAgICBjYXNlIFR5cGU6OlZlY3RvclR5SUQ6 CisrICAgICAgICBjYXNlIFR5cGU6OkZpeGVkVmVjdG9yVHlJRDoKKyAgICAgICAgIHsKKyAgICAg ICAgICAgYXV0byB2ZWN0b3JUeXBlID0gY2FzdDxWZWN0b3JUeXBlPih0eXBlKTsKKyAgICAgICAg ICAgYXV0byBlbGVtZW50VHlwZSA9IHZlY3RvclR5cGUtPmdldEVsZW1lbnRUeXBlKCk7CitAQCAt NzQzLDIwICs3NDMsMjAgQEAKKyAjdW5kZWYgREVDTF9WSVNJVF9GTgorCisgICAgIC8vIEVtaXQg cm91bmRpbmcgaW5zdHJ1Y3Rpb25zIGZyb20gZ2VuIG5hdGl2ZSBmdW5jdGlvbgorLSAgICB2b2lk IGVtaXRSb3VuZGluZ0NhbGxJbnN0KENhbGxJbnN0ICZJLCBDYWxsU2l0ZSAmQ1MsIGlyOjpPcGNv ZGUgb3Bjb2RlKTsKKysgICAgdm9pZCBlbWl0Um91bmRpbmdDYWxsSW5zdChDYWxsSW5zdCAmSSwg aXI6Ok9wY29kZSBvcGNvZGUpOworICAgICAvLyBFbWl0IHVuYXJ5IGluc3RydWN0aW9ucyBmcm9t IGdlbiBuYXRpdmUgZnVuY3Rpb24KKy0gICAgdm9pZCBlbWl0VW5hcnlDYWxsSW5zdChDYWxsSW5z dCAmSSwgQ2FsbFNpdGUgJkNTLCBpcjo6T3Bjb2RlIG9wY29kZSwgaXI6OlR5cGUgPSBpcjo6VFlQ RV9GTE9BVCk7CisrICAgIHZvaWQgZW1pdFVuYXJ5Q2FsbEluc3QoQ2FsbEluc3QgJkksIGlyOjpP cGNvZGUgb3Bjb2RlLCBpcjo6VHlwZSA9IGlyOjpUWVBFX0ZMT0FUKTsKKyAgICAgLy8gRW1pdCB1 bmFyeSBpbnN0cnVjdGlvbnMgZnJvbSBnZW4gbmF0aXZlIGZ1bmN0aW9uCistICAgIHZvaWQgZW1p dEF0b21pY0luc3QoQ2FsbEluc3QgJkksIENhbGxTaXRlICZDUywgaXI6OkF0b21pY09wcyBvcGNv ZGUpOworKyAgICB2b2lkIGVtaXRBdG9taWNJbnN0KENhbGxJbnN0ICZJLCBpcjo6QXRvbWljT3Bz IG9wY29kZSk7CisgICAgIC8vIEVtaXQgd29ya2dyb3VwIGluc3RydWN0aW9ucworLSAgICB2b2lk IGVtaXRXb3JrR3JvdXBJbnN0KENhbGxJbnN0ICZJLCBDYWxsU2l0ZSAmQ1MsIGlyOjpXb3JrR3Jv dXBPcHMgb3Bjb2RlKTsKKysgICAgdm9pZCBlbWl0V29ya0dyb3VwSW5zdChDYWxsSW5zdCAmSSwg aXI6OldvcmtHcm91cE9wcyBvcGNvZGUpOworICAgICAvLyBFbWl0IHN1Ymdyb3VwIGluc3RydWN0 aW9ucworLSAgICB2b2lkIGVtaXRTdWJHcm91cEluc3QoQ2FsbEluc3QgJkksIENhbGxTaXRlICZD UywgaXI6OldvcmtHcm91cE9wcyBvcGNvZGUpOworKyAgICB2b2lkIGVtaXRTdWJHcm91cEluc3Qo Q2FsbEluc3QgJkksIGlyOjpXb3JrR3JvdXBPcHMgb3Bjb2RlKTsKKyAgICAgLy8gRW1pdCBzdWJn cm91cCBpbnN0cnVjdGlvbnMKKy0gICAgdm9pZCBlbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KENh bGxJbnN0ICZJLCBDYWxsU2l0ZSAmQ1MsIGJvb2wgaXNXcml0ZSwgdWludDhfdCB2ZWNfc2l6ZSwg aXI6OlR5cGUgPSBpcjo6VFlQRV9VMzIpOworLSAgICB2b2lkIGVtaXRCbG9ja1JlYWRXcml0ZUlt YWdlSW5zdChDYWxsSW5zdCAmSSwgQ2FsbFNpdGUgJkNTLCBib29sIGlzV3JpdGUsIHVpbnQ4X3Qg dmVjX3NpemUsIGlyOjpUeXBlID0gaXI6OlRZUEVfVTMyKTsKKysgICAgdm9pZCBlbWl0QmxvY2tS ZWFkV3JpdGVNZW1JbnN0KENhbGxJbnN0ICZJLCBib29sIGlzV3JpdGUsIHVpbnQ4X3QgdmVjX3Np emUsIGlyOjpUeXBlID0gaXI6OlRZUEVfVTMyKTsKKysgICAgdm9pZCBlbWl0QmxvY2tSZWFkV3Jp dGVJbWFnZUluc3QoQ2FsbEluc3QgJkksIGJvb2wgaXNXcml0ZSwgdWludDhfdCB2ZWNfc2l6ZSwg aXI6OlR5cGUgPSBpcjo6VFlQRV9VMzIpOworCistICAgIHVpbnQ4X3QgYXBwZW5kU2FtcGxlcihD YWxsU2l0ZTo6YXJnX2l0ZXJhdG9yIEFJKTsKKysgICAgdWludDhfdCBhcHBlbmRTYW1wbGVyKFVz ZXI6Om9wX2l0ZXJhdG9yIEFJKTsKKyAgICAgdWludDhfdCBnZXRJbWFnZUlEKENhbGxJbnN0ICZJ KTsKKworICAgICAvLyBUaGVzZSBpbnN0cnVjdGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQgYXQgYWxs CitAQCAtMTMyMCwxMyArMTMyMCwxMyBAQAorICNlbmRpZgorCisgICAgICAgaWYodHlwZU5hbWVO b2RlKSB7CistICAgICAgICBsbHZtSW5mby50eXBlTmFtZT0gKGNhc3Q8TURTdHJpbmc+KHR5cGVO YW1lTm9kZS0+Z2V0T3BlcmFuZChvcElEKSkpLT5nZXRTdHJpbmcoKTsKKysgICAgICAgIGxsdm1J bmZvLnR5cGVOYW1lPSAoY2FzdDxNRFN0cmluZz4odHlwZU5hbWVOb2RlLT5nZXRPcGVyYW5kKG9w SUQpKSktPmdldFN0cmluZygpLnN0cigpOworICAgICAgIH0KKyAgICAgICBpZih0eXBlQmFzZU5h bWVOb2RlKSB7CistICAgICAgICBsbHZtSW5mby50eXBlQmFzZU5hbWU9IChjYXN0PE1EU3RyaW5n Pih0eXBlQmFzZU5hbWVOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0cmluZygpOworKyAg ICAgICAgbGx2bUluZm8udHlwZUJhc2VOYW1lPSAoY2FzdDxNRFN0cmluZz4odHlwZUJhc2VOYW1l Tm9kZS0+Z2V0T3BlcmFuZChvcElEKSkpLT5nZXRTdHJpbmcoKS5zdHIoKTsKKyAgICAgICB9Cist ICAgICAgbGx2bUluZm8udHlwZU5hbWU9IChjYXN0PE1EU3RyaW5nPih0eXBlTmFtZU5vZGUtPmdl dE9wZXJhbmQob3BJRCkpKS0+Z2V0U3RyaW5nKCk7CistICAgICAgbGx2bUluZm8udHlwZVF1YWwg PSAoY2FzdDxNRFN0cmluZz4odHlwZVF1YWxOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0 cmluZygpOworKyAgICAgIGxsdm1JbmZvLnR5cGVOYW1lPSAoY2FzdDxNRFN0cmluZz4odHlwZU5h bWVOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0cmluZygpLnN0cigpOworKyAgICAgIGxs dm1JbmZvLnR5cGVRdWFsID0gKGNhc3Q8TURTdHJpbmc+KHR5cGVRdWFsTm9kZS0+Z2V0T3BlcmFu ZChvcElEKSkpLT5nZXRTdHJpbmcoKS5zdHIoKTsKKyAgICAgICBib29sIGlzSW1hZ2UgPSBsbHZt SW5mby5pc0ltYWdlVHlwZSgpOworICAgICAgIGJvb2wgaXNQaXBlID0gbGx2bUluZm8uaXNQaXBl VHlwZSgpOworICAgICAgIGlmIChJLT5nZXRUeXBlKCktPmlzUG9pbnRlclR5KCkgfHwgaXNJbWFn ZSB8fCBpc1BpcGUpIHsKK0BAIC0xNTMxLDcgKzE1MzEsNyBAQAorICAgICAgICAgICAgIEVsdFR5 ID0gZ2V0RWx0VHlwZShFbHRUeSwgVHlwZUluZGV4KTsKKyAgICAgICAgIH0KKworLSAgICAgICAg aXI6OkNvbnN0YW50IGNjID0gdW5pdC5nZXRDb25zdGFudFNldCgpLmdldENvbnN0YW50KHBvaW50 ZXItPmdldE5hbWUoKSk7CisrICAgICAgICBpcjo6Q29uc3RhbnQgY2MgPSB1bml0LmdldENvbnN0 YW50U2V0KCkuZ2V0Q29uc3RhbnQocG9pbnRlci0+Z2V0TmFtZSgpLnN0cigpKTsKKyAgICAgICAg IHVuc2lnbmVkIGludCBkZWZPZmZzZXQgPSBjYy5nZXRPZmZzZXQoKTsKKyAgICAgICAgIHJlbG9j cy5wdXNoX2JhY2soaXI6OlJlbG9jRW50cnkob2Zmc2V0LCBkZWZPZmZzZXQgKyBjb25zdGFudE9m ZnNldCkpOworCitAQCAtMTU0Niw3ICsxNTQ2LDcgQEAKKyAgICAgICByZXR1cm47CisgICAgIH0K KyAgICAgaWYgKGlzYTxHbG9iYWxWYXJpYWJsZT4oYykpIHsKKy0gICAgICBpcjo6Q29uc3RhbnQg Y2MgPSB1bml0LmdldENvbnN0YW50U2V0KCkuZ2V0Q29uc3RhbnQoYy0+Z2V0TmFtZSgpKTsKKysg ICAgICBpcjo6Q29uc3RhbnQgY2MgPSB1bml0LmdldENvbnN0YW50U2V0KCkuZ2V0Q29uc3RhbnQo Yy0+Z2V0TmFtZSgpLnN0cigpKTsKKyAgICAgICB1bnNpZ25lZCBpbnQgZGVmT2Zmc2V0ID0gY2Mu Z2V0T2Zmc2V0KCk7CisKKyAgICAgICByZWxvY3MucHVzaF9iYWNrKGlyOjpSZWxvY0VudHJ5KG9m ZnNldCwgZGVmT2Zmc2V0KSk7CitAQCAtMTYwOSw3ICsxNjA5LDcgQEAKKyAgICAgICAgICAgfQor ICAgICAgICAgICBicmVhazsKKyAgICAgICAgIH0KKy0gICAgICBjYXNlIFR5cGU6OlR5cGVJRDo6 VmVjdG9yVHlJRDoKKysgICAgICBjYXNlIFR5cGU6OlR5cGVJRDo6Rml4ZWRWZWN0b3JUeUlEOgor ICAgICAgICAgeworICAgICAgICAgICBjb25zdCBDb25zdGFudERhdGFTZXF1ZW50aWFsICpjZHMg PSBkeW5fY2FzdDxDb25zdGFudERhdGFTZXF1ZW50aWFsPihjKTsKKyAgICAgICAgICAgY29uc3Qg VmVjdG9yVHlwZSAqdmVjVHkgPSBjYXN0PFZlY3RvclR5cGU+KHR5cGUpOworQEAgLTE5MzYsNyAr MTkzNiw3IEBACisgICAgICAgY2FzZSBUeXBlOjpQb2ludGVyVHlJRDoKKyAgICAgICAgIHJlZ1Ry YW5zbGF0b3IubmV3U2NhbGFyKHZhbHVlLCBrZXksIDAsIHVuaWZvcm0pOworICAgICAgICAgYnJl YWs7CistICAgICAgY2FzZSBUeXBlOjpWZWN0b3JUeUlEOgorKyAgICAgIGNhc2UgVHlwZTo6Rml4 ZWRWZWN0b3JUeUlEOgorICAgICAgIHsKKyAgICAgICAgIGF1dG8gdmVjdG9yVHlwZSA9IGNhc3Q8 VmVjdG9yVHlwZT4odHlwZSk7CisgICAgICAgICBjb25zdCB1aW50MzJfdCBlbGVtTnVtID0gdmVj dG9yVHlwZS0+Z2V0TnVtRWxlbWVudHMoKTsKK0BAIC0yMzk1LDcgKzIzOTUsNyBAQAorICNlbmRp ZgorICAgICAgICAgfQorICAgICAgICAgaWYodHlwZU5hbWVOb2RlKSB7CistICAgICAgICAgIGxs dm1JbmZvLnR5cGVOYW1lID0gKGNhc3Q8TURTdHJpbmc+KHR5cGVOYW1lTm9kZS0+Z2V0T3BlcmFu ZChvcElEKSkpLT5nZXRTdHJpbmcoKTsKKysgICAgICAgICAgbGx2bUluZm8udHlwZU5hbWUgPSAo Y2FzdDxNRFN0cmluZz4odHlwZU5hbWVOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0cmlu ZygpLnN0cigpOworICAgICAgICAgICAvL0xMVk0gMy45IGltYWdlJ3MgdHlwZSBuYW1lIGluY2x1 ZGUgYWNjZXNzIHF1YWwsIGRvbid0IG1hdGNoIE9wZW5DTCBzcGVjLCBlcmFzZSB0aGVtLgorICAg ICAgICAgICBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gZmlsdGVycyA9IHsiX19yZWFkX29ubHkg IiwgIl9fd3JpdGVfb25seSAifTsKKyAgICAgICAgICAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8 IGZpbHRlcnMuc2l6ZSgpOyBpKyspIHsKK0BAIC0yNDA2LDE2ICsyNDA2LDE2IEBACisgICAgICAg ICAgIH0KKyAgICAgICAgIH0KKyAgICAgICAgIGlmKHR5cGVCYXNlTmFtZU5vZGUpeworLSAgICAg ICAgICBsbHZtSW5mby50eXBlQmFzZU5hbWUgPSAoY2FzdDxNRFN0cmluZz4odHlwZUJhc2VOYW1l Tm9kZS0+Z2V0T3BlcmFuZChvcElEKSkpLT5nZXRTdHJpbmcoKTsKKysgICAgICAgICAgbGx2bUlu Zm8udHlwZUJhc2VOYW1lID0gKGNhc3Q8TURTdHJpbmc+KHR5cGVCYXNlTmFtZU5vZGUtPmdldE9w ZXJhbmQob3BJRCkpKS0+Z2V0U3RyaW5nKCkuc3RyKCk7CisgICAgICAgICB9CisgICAgICAgICBp ZihhY2Nlc3NRdWFsTm9kZSkgeworLSAgICAgICAgICBsbHZtSW5mby5hY2Nlc3NRdWFsID0gKGNh c3Q8TURTdHJpbmc+KGFjY2Vzc1F1YWxOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0cmlu ZygpOworKyAgICAgICAgICBsbHZtSW5mby5hY2Nlc3NRdWFsID0gKGNhc3Q8TURTdHJpbmc+KGFj Y2Vzc1F1YWxOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0cmluZygpLnN0cigpOworICAg ICAgICAgfQorICAgICAgICAgaWYodHlwZVF1YWxOb2RlKSB7CistICAgICAgICAgIGxsdm1JbmZv LnR5cGVRdWFsID0gKGNhc3Q8TURTdHJpbmc+KHR5cGVRdWFsTm9kZS0+Z2V0T3BlcmFuZChvcElE KSkpLT5nZXRTdHJpbmcoKTsKKysgICAgICAgICAgbGx2bUluZm8udHlwZVF1YWwgPSAoY2FzdDxN RFN0cmluZz4odHlwZVF1YWxOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0cmluZygpLnN0 cigpOworICAgICAgICAgfQorICAgICAgICAgaWYoYXJnTmFtZU5vZGUpeworLSAgICAgICAgICBs bHZtSW5mby5hcmdOYW1lID0gKGNhc3Q8TURTdHJpbmc+KGFyZ05hbWVOb2RlLT5nZXRPcGVyYW5k KG9wSUQpKSktPmdldFN0cmluZygpOworKyAgICAgICAgICBsbHZtSW5mby5hcmdOYW1lID0gKGNh c3Q8TURTdHJpbmc+KGFyZ05hbWVOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0cmluZygp LnN0cigpOworICAgICAgICAgfQorCisgICAgICAgICAvLyBmdW5jdGlvbiBhcmd1bWVudHMgYXJl IHVuaWZvcm0gdmFsdWVzLgorQEAgLTMwMTAsNyArMzAxMCw3IEBACisgICAgICAgICB9IGVsc2Ug eworICAgICAgICAgICB0aGlzLT5uZXdSZWdpc3Rlcihjb25zdF9jYXN0PEdsb2JhbFZhcmlhYmxl Kj4oJnYpKTsKKyAgICAgICAgICAgaXI6OlJlZ2lzdGVyIHJlZyA9IHJlZ1RyYW5zbGF0b3IuZ2V0 U2NhbGFyKGNvbnN0X2Nhc3Q8R2xvYmFsVmFyaWFibGUqPigmdiksIDApOworLSAgICAgICAgICBp cjo6Q29uc3RhbnQgJmNvbiA9IHVuaXQuZ2V0Q29uc3RhbnRTZXQoKS5nZXRDb25zdGFudCh2Lmdl dE5hbWUoKSk7CisrICAgICAgICAgIGlyOjpDb25zdGFudCAmY29uID0gdW5pdC5nZXRDb25zdGFu dFNldCgpLmdldENvbnN0YW50KHYuZ2V0TmFtZSgpLnN0cigpKTsKKyAgICAgICAgICAgaWYgKCFs ZWdhY3lNb2RlKSB7CisgICAgICAgICAgICAgaXI6OlJlZ2lzdGVyIHJlZ2xvYWQgPSBjdHgucmVn KGdldEZhbWlseShnZXRUeXBlKGN0eCwgdi5nZXRUeXBlKCkpKSk7CisgICAgICAgICAgICAgY3R4 LkxPQURJKGdldFR5cGUoY3R4LCB2LmdldFR5cGUoKSksIHJlZ2xvYWQsIGN0eC5uZXdJbnRlZ2Vy SW1tZWRpYXRlKGNvbi5nZXRPZmZzZXQoKSwgZ2V0VHlwZShjdHgsIHYuZ2V0VHlwZSgpKSkpOwor QEAgLTMyMTIsNyArMzIxMiw3IEBACisgICAgICAgICBHQkVfQVNTRVJUTShmYWxzZSwgIlVuc3Vw cG9ydGVkIGNhbGxpbmcgY29udmVudGlvbiIpOworICAgICB9CisKKy0gICAgY3R4LnN0YXJ0RnVu Y3Rpb24oRi5nZXROYW1lKCkpOworKyAgICBjdHguc3RhcnRGdW5jdGlvbihGLmdldE5hbWUoKS5z dHIoKSk7CisKKyAgICAgaXI6OkZ1bmN0aW9uICZmbiA9IGN0eC5nZXRGdW5jdGlvbigpOworICAg ICB0aGlzLT5yZWdUcmFuc2xhdG9yLmNsZWFyKCk7CitAQCAtMzgxMCw5ICszODEwLDkgQEAKKwor ICAgdm9pZCBHZW5Xcml0ZXI6OnJlZ0FsbG9jYXRlQ2FsbEluc3QoQ2FsbEluc3QgJkkpIHsKKyAg ICAgVmFsdWUgKmRzdCA9ICZJOworLSAgICBWYWx1ZSAqQ2FsbGVlID0gSS5nZXRDYWxsZWRWYWx1 ZSgpOworKyAgICBWYWx1ZSAqQ2FsbGVlID0gSS5nZXRDYWxsZWRPcGVyYW5kKCk7CisgICAgIEdC RV9BU1NFUlQoY3R4LmdldEZ1bmN0aW9uKCkuZ2V0UHJvZmlsZSgpID09IGlyOjpQUk9GSUxFX09D TCk7CistICAgIEdCRV9BU1NFUlQoaXNhPElubGluZUFzbT4oSS5nZXRDYWxsZWRWYWx1ZSgpKSA9 PSBmYWxzZSk7CisrICAgIEdCRV9BU1NFUlQoaXNhPElubGluZUFzbT4oSS5nZXRDYWxsZWRPcGVy YW5kKCkpID09IGZhbHNlKTsKKyAgICAgaWYoSS5nZXROdW1BcmdPcGVyYW5kcygpKSBHQkVfQVNT RVJUKEkuaGFzU3RydWN0UmV0QXR0cigpID09IGZhbHNlKTsKKworICAgICAvLyBXZSBvbmx5IHN1 cHBvcnQgYSBzbWFsbCBudW1iZXIgb2YgaW50cmluc2ljcyByaWdodCBub3cKK0BAIC0zODcwLDcg KzM4NzAsNyBAQAorICAgICAgIH0KKyAgICAgfQorICAgICAvLyBHZXQgdGhlIG5hbWUgb2YgdGhl IGNhbGxlZCBmdW5jdGlvbiBhbmQgaGFuZGxlIGl0CistICAgIGNvbnN0IHN0ZDo6c3RyaW5nIGZu TmFtZSA9IENhbGxlZS0+c3RyaXBQb2ludGVyQ2FzdHMoKS0+Z2V0TmFtZSgpOworKyAgICBjb25z dCBzdGQ6OnN0cmluZyBmbk5hbWUgPSBDYWxsZWUtPnN0cmlwUG9pbnRlckNhc3RzKCktPmdldE5h bWUoKS5zdHIoKTsKKyAgICAgYXV0byBnZW5JbnRyaW5zaWNJRCA9IGludHJpbnNpY01hcC5maW5k KGZuTmFtZSk7CisgICAgIHN3aXRjaCAoZ2VuSW50cmluc2ljSUQpIHsKKyAgICAgICBjYXNlIEdF Tl9PQ0xfR0VUX0dST1VQX0lEMDoKK0BAIC00MTY2LDcgKzQxNjYsNyBAQAorICAgICB9OworICAg fQorCistICB2b2lkIEdlbldyaXRlcjo6ZW1pdFJvdW5kaW5nQ2FsbEluc3QoQ2FsbEluc3QgJkks IENhbGxTaXRlICZDUywgaXI6Ok9wY29kZSBvcGNvZGUpIHsKKysgIHZvaWQgR2VuV3JpdGVyOjpl bWl0Um91bmRpbmdDYWxsSW5zdChDYWxsSW5zdCAmSSwgaXI6Ok9wY29kZSBvcGNvZGUpIHsKKyAg ICAgaWYgKEkuZ2V0VHlwZSgpLT5pc0hhbGZUeSgpKSB7CisgICAgICAgY29uc3QgaXI6OlJlZ2lz dGVyIHNyYyA9IHRoaXMtPmdldFJlZ2lzdGVyKEkuZ2V0T3BlcmFuZCgwKSk7CisgICAgICAgY29u c3QgaXI6OlJlZ2lzdGVyIHNyY0Zsb2F0ID0gY3R4LnJlZyhpcjo6RkFNSUxZX0RXT1JEKTsKK0BA IC00MTc3LDE0ICs0MTc3LDE0IEBACisgICAgICAgY3R4LkYzMlRPMTYoaXI6OlRZUEVfVTE2LCBp cjo6VFlQRV9GTE9BVCwgZHN0LCBkc3RGbG9hdCk7CisgICAgIH0gZWxzZSB7CisgICAgICAgR0JF X0FTU0VSVChJLmdldFR5cGUoKS0+aXNGbG9hdFR5KCkpOworLSAgICAgIHRoaXMtPmVtaXRVbmFy eUNhbGxJbnN0KEksQ1Msb3Bjb2RlKTsKKysgICAgICB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJ LG9wY29kZSk7CisgICAgIH0KKyAgIH0KKworLSAgdm9pZCBHZW5Xcml0ZXI6OmVtaXRVbmFyeUNh bGxJbnN0KENhbGxJbnN0ICZJLCBDYWxsU2l0ZSAmQ1MsIGlyOjpPcGNvZGUgb3Bjb2RlLCBpcjo6 VHlwZSB0eXBlKSB7CistICAgIENhbGxTaXRlOjphcmdfaXRlcmF0b3IgQUkgPSBDUy5hcmdfYmVn aW4oKTsKKysgIHZvaWQgR2VuV3JpdGVyOjplbWl0VW5hcnlDYWxsSW5zdChDYWxsSW5zdCAmSSwg aXI6Ok9wY29kZSBvcGNvZGUsIGlyOjpUeXBlIHR5cGUpIHsKKysgICAgVXNlcjo6b3BfaXRlcmF0 b3IgQUkgPSBJLmFyZ19iZWdpbigpOworICNpZiBHQkVfREVCVUcKKy0gICAgQ2FsbFNpdGU6OmFy Z19pdGVyYXRvciBBRSA9IENTLmFyZ19lbmQoKTsKKysgICAgVXNlcjo6b3BfaXRlcmF0b3IgQUUg PSBJLmFyZ19lbmQoKTsKKyAjZW5kaWYgLyogR0JFX0RFQlVHICovCisgICAgIEdCRV9BU1NFUlQo QUkgIT0gQUUpOworICAgICBjb25zdCBpcjo6UmVnaXN0ZXIgc3JjID0gdGhpcy0+Z2V0UmVnaXN0 ZXIoKkFJKTsKK0BAIC00MjkzLDkgKzQyOTMsOSBAQAorICAgICB0aGlzLT5lbWl0QXRvbWljSW5z dEhlbHBlcihvcGNvZGUsIHR5cGUsIGRzdCwgbGx2bVB0ciwgcGF5bG9hZFR1cGxlKTsKKyAgIH0K KworLSAgdm9pZCBHZW5Xcml0ZXI6OmVtaXRBdG9taWNJbnN0KENhbGxJbnN0ICZJLCBDYWxsU2l0 ZSAmQ1MsIGlyOjpBdG9taWNPcHMgb3Bjb2RlKSB7CistICAgIENhbGxTaXRlOjphcmdfaXRlcmF0 b3IgQUkgPSBDUy5hcmdfYmVnaW4oKTsKKy0gICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBBRSA9 IENTLmFyZ19lbmQoKTsKKysgIHZvaWQgR2VuV3JpdGVyOjplbWl0QXRvbWljSW5zdChDYWxsSW5z dCAmSSwgaXI6OkF0b21pY09wcyBvcGNvZGUpIHsKKysgICAgVXNlcjo6b3BfaXRlcmF0b3IgQUkg PSBJLmFyZ19iZWdpbigpOworKyAgICBVc2VyOjpvcF9pdGVyYXRvciBBRSA9IEkuYXJnX2VuZCgp OworICAgICBHQkVfQVNTRVJUKEFJICE9IEFFKTsKKyAgICAgVmFsdWUgKmxsdm1QdHIgPSAqQUk7 CisgICAgIGlyOjpBZGRyZXNzU3BhY2UgYWRkclNwYWNlID0gYWRkcmVzc1NwYWNlTExWTVRvR2Vu KGxsdm1QdHItPmdldFR5cGUoKS0+Z2V0UG9pbnRlckFkZHJlc3NTcGFjZSgpKTsKK0BAIC00MzQ4 LDcgKzQzNDgsNyBAQAorICAgICB9CisgICB9CisKKy0gIHZvaWQgR2VuV3JpdGVyOjplbWl0V29y a0dyb3VwSW5zdChDYWxsSW5zdCAmSSwgQ2FsbFNpdGUgJkNTLCBpcjo6V29ya0dyb3VwT3BzIG9w Y29kZSkgeworKyAgdm9pZCBHZW5Xcml0ZXI6OmVtaXRXb3JrR3JvdXBJbnN0KENhbGxJbnN0ICZJ LCBpcjo6V29ya0dyb3VwT3BzIG9wY29kZSkgeworICAgICBpcjo6RnVuY3Rpb24gJmYgPSBjdHgu Z2V0RnVuY3Rpb24oKTsKKworICAgICBpZiAoZi5nZXR3Z0Jyb2FkY2FzdFNMTSgpIDwgMCAmJiBv cGNvZGUgPT0gaXI6OldPUktHUk9VUF9PUF9CUk9BRENBU1QpIHsKK0BAIC00Mzc4LDggKzQzNzgs OCBAQAorICAgICAgIEdCRV9BU1NFUlQoZi5nZXR0aWRNYXBTTE0oKSA+PSAwKTsKKyAgICAgfQor CistICAgIENhbGxTaXRlOjphcmdfaXRlcmF0b3IgQUkgPSBDUy5hcmdfYmVnaW4oKTsKKy0gICAg Q2FsbFNpdGU6OmFyZ19pdGVyYXRvciBBRSA9IENTLmFyZ19lbmQoKTsKKysgICAgVXNlcjo6b3Bf aXRlcmF0b3IgQUkgPSBJLmFyZ19iZWdpbigpOworKyAgICBVc2VyOjpvcF9pdGVyYXRvciBBRSA9 IEkuYXJnX2VuZCgpOworICAgICBHQkVfQVNTRVJUKEFJICE9IEFFKTsKKworICAgICBpZiAob3Bj b2RlID09IGlyOjpXT1JLR1JPVVBfT1BfQUxMIHx8IG9wY29kZSA9PSBpcjo6V09SS0dST1VQX09Q X0FOWSkgeworQEAgLTQzOTEsMTQgKzQzOTEsMTQgQEAKKyAgICAgICBjb25zdCBpcjo6VHVwbGUg c3JjVHVwbGUgPSBjdHguYXJyYXlUdXBsZSgmc3JjWzBdLCAzKTsKKyAgICAgICBjdHguV09SS0dS T1VQKG9wY29kZSwgKHVpbnQzMl90KWYuZ2V0dGlkTWFwU0xNKCksIGdldFJlZ2lzdGVyKCZJKSwg c3JjVHVwbGUsIDMsIGlyOjpUWVBFX1MzMik7CisgICAgIH0gZWxzZSBpZiAob3Bjb2RlID09IGly OjpXT1JLR1JPVVBfT1BfQlJPQURDQVNUKSB7CistICAgICAgaW50IGFyZ051bSA9IENTLmFyZ19z aXplKCk7CisrICAgICAgaW50IGFyZ051bSA9IEkuYXJnX3NpemUoKTsKKyAgICAgICBzdGQ6OnZl Y3Rvcjxpcjo6UmVnaXN0ZXI+IHNyYyhhcmdOdW0pOworICAgICAgIGZvciAoaW50IGkgPSAwOyBp IDwgYXJnTnVtOyBpKyspIHsKKyAgICAgICAgIHNyY1tpXSA9IHRoaXMtPmdldFJlZ2lzdGVyKCoo QUkrKykpOworICAgICAgIH0KKyAgICAgICBjb25zdCBpcjo6VHVwbGUgc3JjVHVwbGUgPSBjdHgu YXJyYXlUdXBsZSgmc3JjWzBdLCBhcmdOdW0pOworICAgICAgIGN0eC5XT1JLR1JPVVAoaXI6OldP UktHUk9VUF9PUF9CUk9BRENBU1QsICh1aW50MzJfdClmLmdldHdnQnJvYWRjYXN0U0xNKCksIGdl dFJlZ2lzdGVyKCZJKSwgc3JjVHVwbGUsIGFyZ051bSwKKy0gICAgICAgICAgZ2V0VHlwZShjdHgs ICgqQ1MuYXJnX2JlZ2luKCkpLT5nZXRUeXBlKCkpKTsKKysgICAgICAgICAgZ2V0VHlwZShjdHgs ICgqSS5hcmdfYmVnaW4oKSktPmdldFR5cGUoKSkpOworICAgICB9IGVsc2UgeworICAgICAgIENv bnN0YW50SW50ICpzaWduID0gZHluX2Nhc3Q8Q29uc3RhbnRJbnQ+KEFJKTsKKyAgICAgICBHQkVf QVNTRVJUKHNpZ24pOworQEAgLTQ0MjMsOSArNDQyMyw5IEBACisgICAgIEdCRV9BU1NFUlQoQUkg PT0gQUUpOworICAgfQorCistICB2b2lkIEdlbldyaXRlcjo6ZW1pdFN1Ykdyb3VwSW5zdChDYWxs SW5zdCAmSSwgQ2FsbFNpdGUgJkNTLCBpcjo6V29ya0dyb3VwT3BzIG9wY29kZSkgeworLSAgICBD YWxsU2l0ZTo6YXJnX2l0ZXJhdG9yIEFJID0gQ1MuYXJnX2JlZ2luKCk7CistICAgIENhbGxTaXRl OjphcmdfaXRlcmF0b3IgQUUgPSBDUy5hcmdfZW5kKCk7CisrICB2b2lkIEdlbldyaXRlcjo6ZW1p dFN1Ykdyb3VwSW5zdChDYWxsSW5zdCAmSSwgaXI6OldvcmtHcm91cE9wcyBvcGNvZGUpIHsKKysg ICAgVXNlcjo6b3BfaXRlcmF0b3IgQUkgPSBJLmFyZ19iZWdpbigpOworKyAgICBVc2VyOjpvcF9p dGVyYXRvciBBRSA9IEkuYXJnX2VuZCgpOworICAgICBHQkVfQVNTRVJUKEFJICE9IEFFKTsKKwor ICAgICBpZiAob3Bjb2RlID09IGlyOjpXT1JLR1JPVVBfT1BfQUxMIHx8IG9wY29kZSA9PSBpcjo6 V09SS0dST1VQX09QX0FOWSkgeworQEAgLTQ0MzUsNyArNDQzNSw3IEBACisgICAgICAgY29uc3Qg aXI6OlR1cGxlIHNyY1R1cGxlID0gY3R4LmFycmF5VHVwbGUoJnNyY1swXSwgMSk7CisgICAgICAg Y3R4LlNVQkdST1VQKG9wY29kZSwgZ2V0UmVnaXN0ZXIoJkkpLCBzcmNUdXBsZSwgMSwgaXI6OlRZ UEVfUzMyKTsKKyAgICAgfSBlbHNlIGlmIChvcGNvZGUgPT0gaXI6OldPUktHUk9VUF9PUF9CUk9B RENBU1QpIHsKKy0gICAgICBpbnQgYXJnTnVtID0gQ1MuYXJnX3NpemUoKTsKKysgICAgICBpbnQg YXJnTnVtID0gSS5hcmdfc2l6ZSgpOworICAgICAgIEdCRV9BU1NFUlQoYXJnTnVtID09IDIpOwor ICAgICAgIHN0ZDo6dmVjdG9yPGlyOjpSZWdpc3Rlcj4gc3JjKGFyZ051bSk7CisgICAgICAgZm9y IChpbnQgaSA9IDA7IGkgPCBhcmdOdW07IGkrKykgeworQEAgLTQ0NDMsNyArNDQ0Myw3IEBACisg ICAgICAgfQorICAgICAgIGNvbnN0IGlyOjpUdXBsZSBzcmNUdXBsZSA9IGN0eC5hcnJheVR1cGxl KCZzcmNbMF0sIGFyZ051bSk7CisgICAgICAgY3R4LlNVQkdST1VQKGlyOjpXT1JLR1JPVVBfT1Bf QlJPQURDQVNULCBnZXRSZWdpc3RlcigmSSksIHNyY1R1cGxlLCBhcmdOdW0sCistICAgICAgICAg IGdldFR5cGUoY3R4LCAoKkNTLmFyZ19iZWdpbigpKS0+Z2V0VHlwZSgpKSk7CisrICAgICAgICAg IGdldFR5cGUoY3R4LCAoKkkuYXJnX2JlZ2luKCkpLT5nZXRUeXBlKCkpKTsKKyAgICAgfSBlbHNl IHsKKyAgICAgICBDb25zdGFudEludCAqc2lnbiA9IGR5bl9jYXN0PENvbnN0YW50SW50PihBSSk7 CisgICAgICAgR0JFX0FTU0VSVChzaWduKTsKK0BAIC00NDY2LDkgKzQ0NjYsOSBAQAorICAgICBH QkVfQVNTRVJUKEFJID09IEFFKTsKKyAgIH0KKworLSAgdm9pZCBHZW5Xcml0ZXI6OmVtaXRCbG9j a1JlYWRXcml0ZU1lbUluc3QoQ2FsbEluc3QgJkksIENhbGxTaXRlICZDUywgYm9vbCBpc1dyaXRl LCB1aW50OF90IHZlY19zaXplLCBpcjo6VHlwZSB0eXBlKSB7CistICAgIENhbGxTaXRlOjphcmdf aXRlcmF0b3IgQUkgPSBDUy5hcmdfYmVnaW4oKTsKKy0gICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRv ciBBRSA9IENTLmFyZ19lbmQoKTsKKysgIHZvaWQgR2VuV3JpdGVyOjplbWl0QmxvY2tSZWFkV3Jp dGVNZW1JbnN0KENhbGxJbnN0ICZJLCBib29sIGlzV3JpdGUsIHVpbnQ4X3QgdmVjX3NpemUsIGly OjpUeXBlIHR5cGUpIHsKKysgICAgVXNlcjo6b3BfaXRlcmF0b3IgQUkgPSBJLmFyZ19iZWdpbigp OworKyAgICBVc2VyOjpvcF9pdGVyYXRvciBBRSA9IEkuYXJnX2VuZCgpOworICAgICBHQkVfQVNT RVJUKEFJICE9IEFFKTsKKworICAgICBWYWx1ZSAqbGx2bVB0ciA9ICooQUkrKyk7CitAQCAtNDUy Miw5ICs0NTIyLDkgQEAKKyAgICAgR0JFX0FTU0VSVChBSSA9PSBBRSk7CisgICB9CisKKy0gIHZv aWQgR2VuV3JpdGVyOjplbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoQ2FsbEluc3QgJkksIENh bGxTaXRlICZDUywgYm9vbCBpc1dyaXRlLCB1aW50OF90IHZlY19zaXplLCBpcjo6VHlwZSB0eXBl KSB7CistICAgIENhbGxTaXRlOjphcmdfaXRlcmF0b3IgQUkgPSBDUy5hcmdfYmVnaW4oKTsKKy0g ICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBBRSA9IENTLmFyZ19lbmQoKTsKKysgIHZvaWQgR2Vu V3JpdGVyOjplbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoQ2FsbEluc3QgJkksIGJvb2wgaXNX cml0ZSwgdWludDhfdCB2ZWNfc2l6ZSwgaXI6OlR5cGUgdHlwZSkgeworKyAgICBVc2VyOjpvcF9p dGVyYXRvciBBSSA9IEkuYXJnX2JlZ2luKCk7CisrICAgIFVzZXI6Om9wX2l0ZXJhdG9yIEFFID0g SS5hcmdfZW5kKCk7CisgICAgIEdCRV9BU1NFUlQoQUkgIT0gQUUpOworCisgICAgIGNvbnN0IHVp bnQ4X3QgaW1hZ2VJRCA9IGdldEltYWdlSUQoSSk7CitAQCAtNDU1Nyw3ICs0NTU3LDcgQEAKKwor ICAgLyogYXBwZW5kIGEgbmV3IHNhbXBsZXIuIHNob3VsZCBiZSBjYWxsZWQgYmVmb3JlIGFueSBy ZWZlcmVuY2UgdG8KKyAgICAqIGEgc2FtcGxlcl90IHZhbHVlLiAqLworLSAgdWludDhfdCBHZW5X cml0ZXI6OmFwcGVuZFNhbXBsZXIoQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBBSSkgeworKyAgdWlu dDhfdCBHZW5Xcml0ZXI6OmFwcGVuZFNhbXBsZXIoVXNlcjo6b3BfaXRlcmF0b3IgQUkpIHsKKyAj aWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gNDAKKyAg ICAgQ2FsbEluc3QgKlRDID0gZHluX2Nhc3Q8Q2FsbEluc3Q+KCpBSSk7CisgICAgIENvbnN0YW50 ICpDUFYgPSBUQyA/IGR5bl9jYXN0PENvbnN0YW50PihUQy0+Z2V0T3BlcmFuZCgwKSkgOiBOVUxM OworQEAgLTQ1OTUsMTAgKzQ1OTUsOSBAQAorICAgICAgICAgY29uc3QgaXI6OkZ1bmN0aW9uICZm biA9IGN0eC5nZXRGdW5jdGlvbigpOworCisgICAgICAgICAvLyBHZXQgdGhlIGZ1bmN0aW9uIGFy Z3VtZW50cworLSAgICAgICAgQ2FsbFNpdGUgQ1MoJkkpOworLSAgICAgICAgQ2FsbFNpdGU6OmFy Z19pdGVyYXRvciBBSSA9IENTLmFyZ19iZWdpbigpOworKyAgICAgICAgVXNlcjo6b3BfaXRlcmF0 b3IgQUkgPSBJLmFyZ19iZWdpbigpOworICNpZiBHQkVfREVCVUcKKy0gICAgICAgIENhbGxTaXRl OjphcmdfaXRlcmF0b3IgQUUgPSBDUy5hcmdfZW5kKCk7CisrICAgICAgICBVc2VyOjpvcF9pdGVy YXRvciBBRSA9IEkuYXJnX2VuZCgpOworICNlbmRpZiAvKiBHQkVfREVCVUcgKi8KKyAgICAgICAg IHN3aXRjaCAoRi0+Z2V0SW50cmluc2ljSUQoKSkgeworICAgICAgICAgICBjYXNlIEludHJpbnNp Yzo6c3RhY2tzYXZlOgorQEAgLTQ3NjQsMTcgKzQ3NjMsMTcgQEAKKyAgICAgICAgICAgICBjdHgu TUFEKHNyY1R5cGUsIGRzdCwgc3JjMCwgc3JjMSwgc3JjMik7CisgICAgICAgICAgIH0KKyAgICAg ICAgICAgYnJlYWs7CistICAgICAgICAgIGNhc2UgSW50cmluc2ljOjpzcXJ0OiB0aGlzLT5lbWl0 VW5hcnlDYWxsSW5zdChJLENTLGlyOjpPUF9TUVIpOyBicmVhazsKKy0gICAgICAgICAgY2FzZSBJ bnRyaW5zaWM6OmNlaWw6IHRoaXMtPmVtaXRSb3VuZGluZ0NhbGxJbnN0KEksQ1MsaXI6Ok9QX1JO RFUpOyBicmVhazsKKy0gICAgICAgICAgY2FzZSBJbnRyaW5zaWM6OnRydW5jOiB0aGlzLT5lbWl0 Um91bmRpbmdDYWxsSW5zdChJLENTLGlyOjpPUF9STkRaKTsgYnJlYWs7CistICAgICAgICAgIGNh c2UgSW50cmluc2ljOjpyaW50OiB0aGlzLT5lbWl0Um91bmRpbmdDYWxsSW5zdChJLENTLGlyOjpP UF9STkRFKTsgYnJlYWs7CistICAgICAgICAgIGNhc2UgSW50cmluc2ljOjpmbG9vcjogdGhpcy0+ ZW1pdFJvdW5kaW5nQ2FsbEluc3QoSSxDUyxpcjo6T1BfUk5ERCk7IGJyZWFrOworLSAgICAgICAg ICBjYXNlIEludHJpbnNpYzo6c2luOiB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJLENTLGlyOjpP UF9TSU4pOyBicmVhazsKKy0gICAgICAgICAgY2FzZSBJbnRyaW5zaWM6OmNvczogdGhpcy0+ZW1p dFVuYXJ5Q2FsbEluc3QoSSxDUyxpcjo6T1BfQ09TKTsgYnJlYWs7CistICAgICAgICAgIGNhc2Ug SW50cmluc2ljOjpsb2cyOiB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJLENTLGlyOjpPUF9MT0cp OyBicmVhazsKKy0gICAgICAgICAgY2FzZSBJbnRyaW5zaWM6OmV4cDI6IHRoaXMtPmVtaXRVbmFy eUNhbGxJbnN0KEksQ1MsaXI6Ok9QX0VYUCk7IGJyZWFrOworKyAgICAgICAgICBjYXNlIEludHJp bnNpYzo6c3FydDogdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxpcjo6T1BfU1FSKTsgYnJlYWs7 CisrICAgICAgICAgIGNhc2UgSW50cmluc2ljOjpjZWlsOiB0aGlzLT5lbWl0Um91bmRpbmdDYWxs SW5zdChJLGlyOjpPUF9STkRVKTsgYnJlYWs7CisrICAgICAgICAgIGNhc2UgSW50cmluc2ljOjp0 cnVuYzogdGhpcy0+ZW1pdFJvdW5kaW5nQ2FsbEluc3QoSSxpcjo6T1BfUk5EWik7IGJyZWFrOwor KyAgICAgICAgICBjYXNlIEludHJpbnNpYzo6cmludDogdGhpcy0+ZW1pdFJvdW5kaW5nQ2FsbElu c3QoSSxpcjo6T1BfUk5ERSk7IGJyZWFrOworKyAgICAgICAgICBjYXNlIEludHJpbnNpYzo6Zmxv b3I6IHRoaXMtPmVtaXRSb3VuZGluZ0NhbGxJbnN0KEksaXI6Ok9QX1JOREQpOyBicmVhazsKKysg ICAgICAgICAgY2FzZSBJbnRyaW5zaWM6OnNpbjogdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxp cjo6T1BfU0lOKTsgYnJlYWs7CisrICAgICAgICAgIGNhc2UgSW50cmluc2ljOjpjb3M6IHRoaXMt PmVtaXRVbmFyeUNhbGxJbnN0KEksaXI6Ok9QX0NPUyk7IGJyZWFrOworKyAgICAgICAgICBjYXNl IEludHJpbnNpYzo6bG9nMjogdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxpcjo6T1BfTE9HKTsg YnJlYWs7CisrICAgICAgICAgIGNhc2UgSW50cmluc2ljOjpleHAyOiB0aGlzLT5lbWl0VW5hcnlD YWxsSW5zdChJLGlyOjpPUF9FWFApOyBicmVhazsKKyAgICAgICAgICAgY2FzZSBJbnRyaW5zaWM6 OmJzd2FwOgorLSAgICAgICAgICAgIHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksQ1MsaXI6Ok9Q X0JTV0FQLCBnZXRVbnNpZ25lZFR5cGUoY3R4LCBJLmdldFR5cGUoKSkpOyBicmVhazsKKysgICAg ICAgICAgICB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJLGlyOjpPUF9CU1dBUCwgZ2V0VW5zaWdu ZWRUeXBlKGN0eCwgSS5nZXRUeXBlKCkpKTsgYnJlYWs7CisgICAgICAgICAgIGNhc2UgSW50cmlu c2ljOjpwb3c6CisgICAgICAgICAgIHsKKyAgICAgICAgICAgICBjb25zdCBpcjo6UmVnaXN0ZXIg c3JjMCA9IHRoaXMtPmdldFJlZ2lzdGVyKCpBSSk7ICsrQUk7CitAQCAtNDc5NCwyMSArNDc5Mywy MCBAQAorICAgICAgICAgfQorICAgICAgIH0gZWxzZSB7CisgICAgICAgICAvLyBHZXQgdGhlIG5h bWUgb2YgdGhlIGNhbGxlZCBmdW5jdGlvbiBhbmQgaGFuZGxlIGl0CistICAgICAgICBWYWx1ZSAq Q2FsbGVlID0gSS5nZXRDYWxsZWRWYWx1ZSgpOworLSAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcg Zm5OYW1lID0gQ2FsbGVlLT5zdHJpcFBvaW50ZXJDYXN0cygpLT5nZXROYW1lKCk7CisrICAgICAg ICBWYWx1ZSAqQ2FsbGVlID0gSS5nZXRDYWxsZWRPcGVyYW5kKCk7CisrICAgICAgICBjb25zdCBz dGQ6OnN0cmluZyBmbk5hbWUgPSBDYWxsZWUtPnN0cmlwUG9pbnRlckNhc3RzKCktPmdldE5hbWUo KS5zdHIoKTsKKyAgICAgICAgIGF1dG8gZ2VuSW50cmluc2ljSUQgPSBpbnRyaW5zaWNNYXAuZmlu ZChmbk5hbWUpOworCisgICAgICAgICAvLyBHZXQgdGhlIGZ1bmN0aW9uIGFyZ3VtZW50cworLSAg ICAgICAgQ2FsbFNpdGUgQ1MoJkkpOworLSAgICAgICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBB SSA9IENTLmFyZ19iZWdpbigpOworKyAgICAgICAgVXNlcjo6b3BfaXRlcmF0b3IgQUkgPSBJLmFy Z19iZWdpbigpOworICNpZiBHQkVfREVCVUcKKy0gICAgICAgIENhbGxTaXRlOjphcmdfaXRlcmF0 b3IgQUUgPSBDUy5hcmdfZW5kKCk7CisrICAgICAgICBVc2VyOjpvcF9pdGVyYXRvciBBRSA9IEku YXJnX2VuZCgpOworICNlbmRpZiAvKiBHQkVfREVCVUcgKi8KKworICAgICAgICAgc3dpdGNoIChn ZW5JbnRyaW5zaWNJRCkgeworLSAgICAgICAgICBjYXNlIEdFTl9PQ0xfRkJIOiB0aGlzLT5lbWl0 VW5hcnlDYWxsSW5zdChJLENTLGlyOjpPUF9GQkgsIGlyOjpUWVBFX1UzMik7IGJyZWFrOworLSAg ICAgICAgICBjYXNlIEdFTl9PQ0xfRkJMOiB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJLENTLGly OjpPUF9GQkwsIGlyOjpUWVBFX1UzMik7IGJyZWFrOworLSAgICAgICAgICBjYXNlIEdFTl9PQ0xf Q0JJVDogdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxDUyxpcjo6T1BfQ0JJVCwgZ2V0VW5zaWdu ZWRUeXBlKGN0eCwgKCpBSSktPmdldFR5cGUoKSkpOyBicmVhazsKKysgICAgICAgICAgY2FzZSBH RU5fT0NMX0ZCSDogdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxpcjo6T1BfRkJILCBpcjo6VFlQ RV9VMzIpOyBicmVhazsKKysgICAgICAgICAgY2FzZSBHRU5fT0NMX0ZCTDogdGhpcy0+ZW1pdFVu YXJ5Q2FsbEluc3QoSSxpcjo6T1BfRkJMLCBpcjo6VFlQRV9VMzIpOyBicmVhazsKKysgICAgICAg ICAgY2FzZSBHRU5fT0NMX0NCSVQ6IHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksaXI6Ok9QX0NC SVQsIGdldFVuc2lnbmVkVHlwZShjdHgsICgqQUkpLT5nZXRUeXBlKCkpKTsgYnJlYWs7CisgICAg ICAgICAgIGNhc2UgR0VOX09DTF9BQlM6CisgICAgICAgICAgIHsKKyAgICAgICAgICAgICBjb25z dCBpcjo6UmVnaXN0ZXIgc3JjID0gdGhpcy0+Z2V0UmVnaXN0ZXIoKkFJKTsKK0BAIC00OTE1LDgg KzQ5MTMsOCBAQAorICAgICAgICAgICAgIGN0eC5SRUdJT04oZHN0LCBzcmMsIHguZ2V0SW50ZWdl clZhbHVlKCkpOworICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICB9CistICAgICAgICAg IGNhc2UgR0VOX09DTF9SU1E6IHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksQ1MsaXI6Ok9QX1JT USk7IGJyZWFrOworLSAgICAgICAgICBjYXNlIEdFTl9PQ0xfUkNQOiB0aGlzLT5lbWl0VW5hcnlD YWxsSW5zdChJLENTLGlyOjpPUF9SQ1ApOyBicmVhazsKKysgICAgICAgICAgY2FzZSBHRU5fT0NM X1JTUTogdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxpcjo6T1BfUlNRKTsgYnJlYWs7CisrICAg ICAgICAgIGNhc2UgR0VOX09DTF9SQ1A6IHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksaXI6Ok9Q X1JDUCk7IGJyZWFrOworICAgICAgICAgICBjYXNlIEdFTl9PQ0xfRk9SQ0VfU0lNRDg6IGN0eC5z ZXRTaW1kV2lkdGgoOCk7IGJyZWFrOworICAgICAgICAgICBjYXNlIEdFTl9PQ0xfRk9SQ0VfU0lN RDE2OiBjdHguc2V0U2ltZFdpZHRoKDE2KTsgYnJlYWs7CisgICAgICAgICAgIGNhc2UgR0VOX09D TF9MQkFSUklFUjogY3R4LlNZTkMoaXI6OnN5bmNMb2NhbEJhcnJpZXIpOyBicmVhazsKK0BAIC00 OTQ3LDMxICs0OTQ1LDMxIEBACisgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgIH0KKyAg ICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19BREQwOgorLSAgICAgICAgICBjYXNlIEdFTl9P Q0xfQVRPTUlDX0FERDE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksQ1MsaXI6OkFUT01JQ19PUF9B REQpOyBicmVhazsKKysgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19BREQxOiB0aGlzLT5l bWl0QXRvbWljSW5zdChJLGlyOjpBVE9NSUNfT1BfQUREKTsgYnJlYWs7CisgICAgICAgICAgIGNh c2UgR0VOX09DTF9BVE9NSUNfU1VCMDoKKy0gICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19T VUIxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLENTLGlyOjpBVE9NSUNfT1BfU1VCKTsgYnJlYWs7 CisrICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfU1VCMTogdGhpcy0+ZW1pdEF0b21pY0lu c3QoSSxpcjo6QVRPTUlDX09QX1NVQik7IGJyZWFrOworICAgICAgICAgICBjYXNlIEdFTl9PQ0xf QVRPTUlDX0FORDA6CistICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfQU5EMTogdGhpcy0+ ZW1pdEF0b21pY0luc3QoSSxDUyxpcjo6QVRPTUlDX09QX0FORCk7IGJyZWFrOworKyAgICAgICAg ICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0FORDE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksaXI6OkFU T01JQ19PUF9BTkQpOyBicmVhazsKKyAgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19PUjA6 CistICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfT1IxOiB0aGlzLT5lbWl0QXRvbWljSW5z dChJLENTLGlyOjpBVE9NSUNfT1BfT1IpOyBicmVhazsKKysgICAgICAgICAgY2FzZSBHRU5fT0NM X0FUT01JQ19PUjE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksaXI6OkFUT01JQ19PUF9PUik7IGJy ZWFrOworICAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX1hPUjA6CistICAgICAgICAgIGNh c2UgR0VOX09DTF9BVE9NSUNfWE9SMTogdGhpcy0+ZW1pdEF0b21pY0luc3QoSSxDUyxpcjo6QVRP TUlDX09QX1hPUik7IGJyZWFrOworKyAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX1hPUjE6 IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksaXI6OkFUT01JQ19PUF9YT1IpOyBicmVhazsKKyAgICAg ICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19YQ0hHMDoKKy0gICAgICAgICAgY2FzZSBHRU5fT0NM X0FUT01JQ19YQ0hHMTogdGhpcy0+ZW1pdEF0b21pY0luc3QoSSxDUyxpcjo6QVRPTUlDX09QX1hD SEcpOyBicmVhazsKKysgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19YQ0hHMTogdGhpcy0+ ZW1pdEF0b21pY0luc3QoSSxpcjo6QVRPTUlDX09QX1hDSEcpOyBicmVhazsKKyAgICAgICAgICAg Y2FzZSBHRU5fT0NMX0FUT01JQ19JTkMwOgorLSAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlD X0lOQzE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksQ1MsaXI6OkFUT01JQ19PUF9JTkMpOyBicmVh azsKKysgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19JTkMxOiB0aGlzLT5lbWl0QXRvbWlj SW5zdChJLGlyOjpBVE9NSUNfT1BfSU5DKTsgYnJlYWs7CisgICAgICAgICAgIGNhc2UgR0VOX09D TF9BVE9NSUNfREVDMDoKKy0gICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19ERUMxOiB0aGlz LT5lbWl0QXRvbWljSW5zdChJLENTLGlyOjpBVE9NSUNfT1BfREVDKTsgYnJlYWs7CisrICAgICAg ICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfREVDMTogdGhpcy0+ZW1pdEF0b21pY0luc3QoSSxpcjo6 QVRPTUlDX09QX0RFQyk7IGJyZWFrOworICAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX1VN SU4wOgorLSAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX1VNSU4xOiB0aGlzLT5lbWl0QXRv bWljSW5zdChJLENTLGlyOjpBVE9NSUNfT1BfVU1JTik7IGJyZWFrOworKyAgICAgICAgICBjYXNl IEdFTl9PQ0xfQVRPTUlDX1VNSU4xOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLGlyOjpBVE9NSUNf T1BfVU1JTik7IGJyZWFrOworICAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX1VNQVgwOgor LSAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX1VNQVgxOiB0aGlzLT5lbWl0QXRvbWljSW5z dChJLENTLGlyOjpBVE9NSUNfT1BfVU1BWCk7IGJyZWFrOworKyAgICAgICAgICBjYXNlIEdFTl9P Q0xfQVRPTUlDX1VNQVgxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLGlyOjpBVE9NSUNfT1BfVU1B WCk7IGJyZWFrOworICAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0lNSU4wOgorLSAgICAg ICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0lNSU4xOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLENT LGlyOjpBVE9NSUNfT1BfSU1JTik7IGJyZWFrOworKyAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRP TUlDX0lNSU4xOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLGlyOjpBVE9NSUNfT1BfSU1JTik7IGJy ZWFrOworICAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0lNQVgwOgorLSAgICAgICAgICBj YXNlIEdFTl9PQ0xfQVRPTUlDX0lNQVgxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLENTLGlyOjpB VE9NSUNfT1BfSU1BWCk7IGJyZWFrOworKyAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0lN QVgxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLGlyOjpBVE9NSUNfT1BfSU1BWCk7IGJyZWFrOwor ICAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0NNUFhDSEcwOgorLSAgICAgICAgICBjYXNl IEdFTl9PQ0xfQVRPTUlDX0NNUFhDSEcxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLENTLGlyOjpB VE9NSUNfT1BfQ01QWENIRyk7IGJyZWFrOworKyAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlD X0NNUFhDSEcxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLGlyOjpBVE9NSUNfT1BfQ01QWENIRyk7 IGJyZWFrOworICAgICAgICAgICBjYXNlIEdFTl9PQ0xfR0VUX0lNQUdFX1dJRFRIOgorICAgICAg ICAgICBjYXNlIEdFTl9PQ0xfR0VUX0lNQUdFX0hFSUdIVDoKKyAgICAgICAgICAgY2FzZSBHRU5f T0NMX0dFVF9JTUFHRV9ERVBUSDoKK0BAIC01NDI5LDQ4ICs1NDI3LDQ4IEBACisgICAgICAgICAg ICAgY3R4LldBSVQoKTsKKyAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgfQorLSAgICAg ICAgICBjYXNlIEdFTl9PQ0xfV09SS19HUk9VUF9BTEw6IHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0 KEksIENTLCBpcjo6V09SS0dST1VQX09QX0FMTCk7IGJyZWFrOworLSAgICAgICAgICBjYXNlIEdF Tl9PQ0xfV09SS19HUk9VUF9BTlk6IHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIENTLCBpcjo6 V09SS0dST1VQX09QX0FOWSk7IGJyZWFrOworKyAgICAgICAgICBjYXNlIEdFTl9PQ0xfV09SS19H Uk9VUF9BTEw6IHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfQUxM KTsgYnJlYWs7CisrICAgICAgICAgIGNhc2UgR0VOX09DTF9XT1JLX0dST1VQX0FOWTogdGhpcy0+ ZW1pdFdvcmtHcm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9BTlkpOyBicmVhazsKKyAgICAg ICAgICAgY2FzZSBHRU5fT0NMX1dPUktfR1JPVVBfQlJPQURDQVNUOgorLSAgICAgICAgICAgIHRo aXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX0JST0FEQ0FTVCk7 IGJyZWFrOworKyAgICAgICAgICAgIHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIGlyOjpXT1JL R1JPVVBfT1BfQlJPQURDQVNUKTsgYnJlYWs7CisgICAgICAgICAgIGNhc2UgR0VOX09DTF9XT1JL X0dST1VQX1JFRFVDRV9BREQ6CistICAgICAgICAgICAgdGhpcy0+ZW1pdFdvcmtHcm91cEluc3Qo SSwgQ1MsIGlyOjpXT1JLR1JPVVBfT1BfUkVEVUNFX0FERCk7IGJyZWFrOworKyAgICAgICAgICAg IHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfUkVEVUNFX0FERCk7 IGJyZWFrOworICAgICAgICAgICBjYXNlIEdFTl9PQ0xfV09SS19HUk9VUF9SRURVQ0VfTUFYOgor LSAgICAgICAgICAgIHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQ X09QX1JFRFVDRV9NQVgpOyBicmVhazsKKysgICAgICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3Vw SW5zdChJLCBpcjo6V09SS0dST1VQX09QX1JFRFVDRV9NQVgpOyBicmVhazsKKyAgICAgICAgICAg Y2FzZSBHRU5fT0NMX1dPUktfR1JPVVBfUkVEVUNFX01JTjoKKy0gICAgICAgICAgICB0aGlzLT5l bWl0V29ya0dyb3VwSW5zdChJLCBDUywgaXI6OldPUktHUk9VUF9PUF9SRURVQ0VfTUlOKTsgYnJl YWs7CisrICAgICAgICAgICAgdGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgaXI6OldPUktHUk9V UF9PUF9SRURVQ0VfTUlOKTsgYnJlYWs7CisgICAgICAgICAgIGNhc2UgR0VOX09DTF9XT1JLX0dS T1VQX1NDQU5fRVhDTFVTSVZFX0FERDoKKy0gICAgICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3Vw SW5zdChJLCBDUywgaXI6OldPUktHUk9VUF9PUF9FWENMVVNJVkVfQUREKTsgYnJlYWs7CisrICAg ICAgICAgICAgdGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9FWENM VVNJVkVfQUREKTsgYnJlYWs7CisgICAgICAgICAgIGNhc2UgR0VOX09DTF9XT1JLX0dST1VQX1ND QU5fRVhDTFVTSVZFX01BWDoKKy0gICAgICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJ LCBDUywgaXI6OldPUktHUk9VUF9PUF9FWENMVVNJVkVfTUFYKTsgYnJlYWs7CisrICAgICAgICAg ICAgdGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9FWENMVVNJVkVf TUFYKTsgYnJlYWs7CisgICAgICAgICAgIGNhc2UgR0VOX09DTF9XT1JLX0dST1VQX1NDQU5fRVhD TFVTSVZFX01JTjoKKy0gICAgICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBDUywg aXI6OldPUktHUk9VUF9PUF9FWENMVVNJVkVfTUlOKTsgYnJlYWs7CisrICAgICAgICAgICAgdGhp cy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9FWENMVVNJVkVfTUlOKTsg YnJlYWs7CisgICAgICAgICAgIGNhc2UgR0VOX09DTF9XT1JLX0dST1VQX1NDQU5fSU5DTFVTSVZF X0FERDoKKy0gICAgICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBDUywgaXI6OldP UktHUk9VUF9PUF9JTkNMVVNJVkVfQUREKTsgYnJlYWs7CisrICAgICAgICAgICAgdGhpcy0+ZW1p dFdvcmtHcm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9JTkNMVVNJVkVfQUREKTsgYnJlYWs7 CisgICAgICAgICAgIGNhc2UgR0VOX09DTF9XT1JLX0dST1VQX1NDQU5fSU5DTFVTSVZFX01BWDoK Ky0gICAgICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBDUywgaXI6OldPUktHUk9V UF9PUF9JTkNMVVNJVkVfTUFYKTsgYnJlYWs7CisrICAgICAgICAgICAgdGhpcy0+ZW1pdFdvcmtH cm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9JTkNMVVNJVkVfTUFYKTsgYnJlYWs7CisgICAg ICAgICAgIGNhc2UgR0VOX09DTF9XT1JLX0dST1VQX1NDQU5fSU5DTFVTSVZFX01JTjoKKy0gICAg ICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBDUywgaXI6OldPUktHUk9VUF9PUF9J TkNMVVNJVkVfTUlOKTsgYnJlYWs7CisrICAgICAgICAgICAgdGhpcy0+ZW1pdFdvcmtHcm91cElu c3QoSSwgaXI6OldPUktHUk9VUF9PUF9JTkNMVVNJVkVfTUlOKTsgYnJlYWs7CisgICAgICAgICAg IGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQlJPQURDQVNUOgorLSAgICAgICAgICAgIHRoaXMtPmVt aXRTdWJHcm91cEluc3QoSSwgQ1MsIGlyOjpXT1JLR1JPVVBfT1BfQlJPQURDQVNUKTsgYnJlYWs7 CisrICAgICAgICAgICAgdGhpcy0+ZW1pdFN1Ykdyb3VwSW5zdChJLCBpcjo6V09SS0dST1VQX09Q X0JST0FEQ0FTVCk7IGJyZWFrOworICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX1JF RFVDRV9BREQ6CistICAgICAgICAgICAgdGhpcy0+ZW1pdFN1Ykdyb3VwSW5zdChJLCBDUywgaXI6 OldPUktHUk9VUF9PUF9SRURVQ0VfQUREKTsgYnJlYWs7CisrICAgICAgICAgICAgdGhpcy0+ZW1p dFN1Ykdyb3VwSW5zdChJLCBpcjo6V09SS0dST1VQX09QX1JFRFVDRV9BREQpOyBicmVhazsKKyAg ICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9SRURVQ0VfTUFYOgorLSAgICAgICAgICAg IHRoaXMtPmVtaXRTdWJHcm91cEluc3QoSSwgQ1MsIGlyOjpXT1JLR1JPVVBfT1BfUkVEVUNFX01B WCk7IGJyZWFrOworKyAgICAgICAgICAgIHRoaXMtPmVtaXRTdWJHcm91cEluc3QoSSwgaXI6OldP UktHUk9VUF9PUF9SRURVQ0VfTUFYKTsgYnJlYWs7CisgICAgICAgICAgIGNhc2UgR0VOX09DTF9T VUJfR1JPVVBfUkVEVUNFX01JTjoKKy0gICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0 KEksIENTLCBpcjo6V09SS0dST1VQX09QX1JFRFVDRV9NSU4pOyBicmVhazsKKysgICAgICAgICAg ICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfUkVEVUNFX01JTik7 IGJyZWFrOworICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX1NDQU5fRVhDTFVTSVZF X0FERDoKKy0gICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIENTLCBpcjo6V09S S0dST1VQX09QX0VYQ0xVU0lWRV9BREQpOyBicmVhazsKKysgICAgICAgICAgICB0aGlzLT5lbWl0 U3ViR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfRVhDTFVTSVZFX0FERCk7IGJyZWFrOwor ICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX1NDQU5fRVhDTFVTSVZFX01BWDoKKy0g ICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09Q X0VYQ0xVU0lWRV9NQVgpOyBicmVhazsKKysgICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJ bnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfRVhDTFVTSVZFX01BWCk7IGJyZWFrOworICAgICAgICAg ICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX1NDQU5fRVhDTFVTSVZFX01JTjoKKy0gICAgICAgICAg ICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX0VYQ0xVU0lW RV9NSU4pOyBicmVhazsKKysgICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIGly OjpXT1JLR1JPVVBfT1BfRVhDTFVTSVZFX01JTik7IGJyZWFrOworICAgICAgICAgICBjYXNlIEdF Tl9PQ0xfU1VCX0dST1VQX1NDQU5fSU5DTFVTSVZFX0FERDoKKy0gICAgICAgICAgICB0aGlzLT5l bWl0U3ViR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX0lOQ0xVU0lWRV9BREQpOyBi cmVhazsKKysgICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JP VVBfT1BfSU5DTFVTSVZFX0FERCk7IGJyZWFrOworICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VC X0dST1VQX1NDQU5fSU5DTFVTSVZFX01BWDoKKy0gICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3Jv dXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX0lOQ0xVU0lWRV9NQVgpOyBicmVhazsKKysg ICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfSU5D TFVTSVZFX01BWCk7IGJyZWFrOworICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX1ND QU5fSU5DTFVTSVZFX01JTjoKKy0gICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEks IENTLCBpcjo6V09SS0dST1VQX09QX0lOQ0xVU0lWRV9NSU4pOyBicmVhazsKKysgICAgICAgICAg ICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfSU5DTFVTSVZFX01J Tik7IGJyZWFrOworICAgICAgICAgICBjYXNlIEdFTl9PQ0xfTFJQOgorICAgICAgICAgICB7Cisg ICAgICAgICAgICAgY29uc3QgaXI6OlJlZ2lzdGVyIGRzdCAgPSB0aGlzLT5nZXRSZWdpc3Rlcigm SSk7CitAQCAtNTQ4NCw2OSArNTQ4Miw2OSBAQAorICAgICAgICAgICAgIGJyZWFrOworICAgICAg ICAgICB9CisgICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfUkVBRF9VSV9N RU06CistICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBDUywg ZmFsc2UsIDEpOyBicmVhazsKKysgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVN ZW1JbnN0KEksIGZhbHNlLCAxKTsgYnJlYWs7CisgICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJf R1JPVVBfQkxPQ0tfUkVBRF9VSV9NRU0yOgorLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1Jl YWRXcml0ZU1lbUluc3QoSSwgQ1MsIGZhbHNlLCAyKTsgYnJlYWs7CisrICAgICAgICAgICAgdGhp cy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBmYWxzZSwgMik7IGJyZWFrOworICAgICAg ICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1JFQURfVUlfTUVNNDoKKy0gICAgICAg ICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIENTLCBmYWxzZSwgNCk7IGJy ZWFrOworKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgZmFs c2UsIDQpOyBicmVhazsKKyAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19S RUFEX1VJX01FTTg6CistICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5z dChJLCBDUywgZmFsc2UsIDgpOyBicmVhazsKKysgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tS ZWFkV3JpdGVNZW1JbnN0KEksIGZhbHNlLCA4KTsgYnJlYWs7CisgICAgICAgICAgIGNhc2UgR0VO X09DTF9TVUJfR1JPVVBfQkxPQ0tfV1JJVEVfVUlfTUVNOgorLSAgICAgICAgICAgIHRoaXMtPmVt aXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgQ1MsIHRydWUsIDEpOyBicmVhazsKKysgICAgICAg ICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIHRydWUsIDEpOyBicmVhazsK KyAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19XUklURV9VSV9NRU0yOgor LSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgQ1MsIHRydWUs IDIpOyBicmVhazsKKysgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0 KEksIHRydWUsIDIpOyBicmVhazsKKyAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9C TE9DS19XUklURV9VSV9NRU00OgorLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0 ZU1lbUluc3QoSSwgQ1MsIHRydWUsIDQpOyBicmVhazsKKysgICAgICAgICAgICB0aGlzLT5lbWl0 QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIHRydWUsIDQpOyBicmVhazsKKyAgICAgICAgICAgY2Fz ZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19XUklURV9VSV9NRU04OgorLSAgICAgICAgICAgIHRo aXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgQ1MsIHRydWUsIDgpOyBicmVhazsKKysg ICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIHRydWUsIDgpOyBi cmVhazsKKyAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19SRUFEX1VJX0lN QUdFOgorLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCBD UywgZmFsc2UsIDEpOyBicmVhazsKKysgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3Jp dGVJbWFnZUluc3QoSSwgZmFsc2UsIDEpOyBicmVhazsKKyAgICAgICAgICAgY2FzZSBHRU5fT0NM X1NVQl9HUk9VUF9CTE9DS19SRUFEX1VJX0lNQUdFMjoKKy0gICAgICAgICAgICB0aGlzLT5lbWl0 QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgQ1MsIGZhbHNlLCAyKTsgYnJlYWs7CisrICAgICAg ICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIGZhbHNlLCAyKTsgYnJl YWs7CisgICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfUkVBRF9VSV9JTUFH RTQ6CistICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIENT LCBmYWxzZSwgNCk7IGJyZWFrOworKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0 ZUltYWdlSW5zdChJLCBmYWxzZSwgNCk7IGJyZWFrOworICAgICAgICAgICBjYXNlIEdFTl9PQ0xf U1VCX0dST1VQX0JMT0NLX1JFQURfVUlfSU1BR0U4OgorLSAgICAgICAgICAgIHRoaXMtPmVtaXRC bG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCBDUywgZmFsc2UsIDgpOyBicmVhazsKKysgICAgICAg ICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgZmFsc2UsIDgpOyBicmVh azsKKyAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19XUklURV9VSV9JTUFH RToKKy0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgQ1Ms IHRydWUsIDEpOyBicmVhazsKKysgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJ bWFnZUluc3QoSSwgdHJ1ZSwgMSk7IGJyZWFrOworICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VC X0dST1VQX0JMT0NLX1dSSVRFX1VJX0lNQUdFMjoKKy0gICAgICAgICAgICB0aGlzLT5lbWl0Qmxv Y2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgQ1MsIHRydWUsIDIpOyBicmVhazsKKysgICAgICAgICAg ICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgdHJ1ZSwgMik7IGJyZWFrOwor ICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1dSSVRFX1VJX0lNQUdFNDoK Ky0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgQ1MsIHRy dWUsIDQpOyBicmVhazsKKysgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFn ZUluc3QoSSwgdHJ1ZSwgNCk7IGJyZWFrOworICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dS T1VQX0JMT0NLX1dSSVRFX1VJX0lNQUdFODoKKy0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tS ZWFkV3JpdGVJbWFnZUluc3QoSSwgQ1MsIHRydWUsIDgpOyBicmVhazsKKysgICAgICAgICAgICB0 aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgdHJ1ZSwgOCk7IGJyZWFrOworICAg ICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1JFQURfVVNfTUVNOgorLSAgICAg ICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgQ1MsIGZhbHNlLCAxLCBp cjo6VFlQRV9VMTYpOyBicmVhazsKKysgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3Jp dGVNZW1JbnN0KEksIGZhbHNlLCAxLCBpcjo6VFlQRV9VMTYpOyBicmVhazsKKyAgICAgICAgICAg Y2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19SRUFEX1VTX01FTTI6CistICAgICAgICAgICAg dGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBDUywgZmFsc2UsIDIsIGlyOjpUWVBF X1UxNik7IGJyZWFrOworKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUlu c3QoSSwgZmFsc2UsIDIsIGlyOjpUWVBFX1UxNik7IGJyZWFrOworICAgICAgICAgICBjYXNlIEdF Tl9PQ0xfU1VCX0dST1VQX0JMT0NLX1JFQURfVVNfTUVNNDoKKy0gICAgICAgICAgICB0aGlzLT5l bWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIENTLCBmYWxzZSwgNCwgaXI6OlRZUEVfVTE2KTsg YnJlYWs7CisrICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBm YWxzZSwgNCwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7CisgICAgICAgICAgIGNhc2UgR0VOX09DTF9T VUJfR1JPVVBfQkxPQ0tfUkVBRF9VU19NRU04OgorLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9j a1JlYWRXcml0ZU1lbUluc3QoSSwgQ1MsIGZhbHNlLCA4LCBpcjo6VFlQRV9VMTYpOyBicmVhazsK KysgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIGZhbHNlLCA4 LCBpcjo6VFlQRV9VMTYpOyBicmVhazsKKyAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9V UF9CTE9DS19XUklURV9VU19NRU06CistICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdy aXRlTWVtSW5zdChJLCBDUywgdHJ1ZSwgMSwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7CisrICAgICAg ICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCB0cnVlLCAxLCBpcjo6VFlQ RV9VMTYpOyBicmVhazsKKyAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19X UklURV9VU19NRU0yOgorLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUlu c3QoSSwgQ1MsIHRydWUsIDIsIGlyOjpUWVBFX1UxNik7IGJyZWFrOworKyAgICAgICAgICAgIHRo aXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgdHJ1ZSwgMiwgaXI6OlRZUEVfVTE2KTsg YnJlYWs7CisgICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfV1JJVEVfVVNf TUVNNDoKKy0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIENT LCB0cnVlLCA0LCBpcjo6VFlQRV9VMTYpOyBicmVhazsKKysgICAgICAgICAgICB0aGlzLT5lbWl0 QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIHRydWUsIDQsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwor ICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1dSSVRFX1VTX01FTTg6Cist ICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBDUywgdHJ1ZSwg OCwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7CisrICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVh ZFdyaXRlTWVtSW5zdChJLCB0cnVlLCA4LCBpcjo6VFlQRV9VMTYpOyBicmVhazsKKyAgICAgICAg ICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19SRUFEX1VTX0lNQUdFOgorLSAgICAgICAg ICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCBDUywgZmFsc2UsIDEsIGly OjpUWVBFX1UxNik7IGJyZWFrOworKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0 ZUltYWdlSW5zdChJLCBmYWxzZSwgMSwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7CisgICAgICAgICAg IGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfUkVBRF9VU19JTUFHRTI6CistICAgICAgICAg ICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIENTLCBmYWxzZSwgMiwgaXI6 OlRZUEVfVTE2KTsgYnJlYWs7CisrICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRl SW1hZ2VJbnN0KEksIGZhbHNlLCAyLCBpcjo6VFlQRV9VMTYpOyBicmVhazsKKyAgICAgICAgICAg Y2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19SRUFEX1VTX0lNQUdFNDoKKy0gICAgICAgICAg ICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgQ1MsIGZhbHNlLCA0LCBpcjo6 VFlQRV9VMTYpOyBicmVhazsKKysgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJ bWFnZUluc3QoSSwgZmFsc2UsIDQsIGlyOjpUWVBFX1UxNik7IGJyZWFrOworICAgICAgICAgICBj YXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1JFQURfVVNfSU1BR0U4OgorLSAgICAgICAgICAg IHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCBDUywgZmFsc2UsIDgsIGlyOjpU WVBFX1UxNik7IGJyZWFrOworKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUlt YWdlSW5zdChJLCBmYWxzZSwgOCwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7CisgICAgICAgICAgIGNh c2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfV1JJVEVfVVNfSU1BR0U6CistICAgICAgICAgICAg dGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIENTLCB0cnVlLCAxLCBpcjo6VFlQ RV9VMTYpOyBicmVhazsKKysgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFn ZUluc3QoSSwgdHJ1ZSwgMSwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7CisgICAgICAgICAgIGNhc2Ug R0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfV1JJVEVfVVNfSU1BR0UyOgorLSAgICAgICAgICAgIHRo aXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCBDUywgdHJ1ZSwgMiwgaXI6OlRZUEVf VTE2KTsgYnJlYWs7CisrICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJ bnN0KEksIHRydWUsIDIsIGlyOjpUWVBFX1UxNik7IGJyZWFrOworICAgICAgICAgICBjYXNlIEdF Tl9PQ0xfU1VCX0dST1VQX0JMT0NLX1dSSVRFX1VTX0lNQUdFNDoKKy0gICAgICAgICAgICB0aGlz LT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgQ1MsIHRydWUsIDQsIGlyOjpUWVBFX1Ux Nik7IGJyZWFrOworKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5z dChJLCB0cnVlLCA0LCBpcjo6VFlQRV9VMTYpOyBicmVhazsKKyAgICAgICAgICAgY2FzZSBHRU5f T0NMX1NVQl9HUk9VUF9CTE9DS19XUklURV9VU19JTUFHRTg6CistICAgICAgICAgICAgdGhpcy0+ ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIENTLCB0cnVlLCA4LCBpcjo6VFlQRV9VMTYp OyBicmVhazsKKysgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3Qo SSwgdHJ1ZSwgOCwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7CisgICAgICAgICAgIGNhc2UgR0VOX09D TF9HRVRfUElQRToKKyAgICAgICAgICAgY2FzZSBHRU5fT0NMX01BS0VfUklEOgorICAgICAgICAg ICBjYXNlIEdFTl9PQ0xfR0VUX1JJRDoKKy0tLSBiYWNrZW5kL3NyYy9sbHZtL2xsdm1faW5jbHVk ZXMuaHBwCTIwMjAtMTEtMDkgMTY6NDg6MjAuODIzODY2MTEyICswMTAwCisrKysgYmFja2VuZC9z cmMvbGx2bS9sbHZtX2luY2x1ZGVzLmhwcAkyMDIwLTExLTA5IDE5OjAwOjA5Ljk1NTkyNjc5NSAr MDEwMAorQEAgLTEwMyw3ICsxMDMsNiBAQAorCisgI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEw ICsgTExWTV9WRVJTSU9OX01JTk9SID49IDM1CisgI2luY2x1ZGUgImxsdm0vSVIvTWFuZ2xlci5o IgorLSNpbmNsdWRlICJsbHZtL0lSL0NhbGxTaXRlLmgiCisgI2luY2x1ZGUgImxsdm0vSVIvQ0ZH LmgiCisgI2luY2x1ZGUgImxsdm0vSVIvSW5zdFZpc2l0b3IuaCIKKyAjaW5jbHVkZSAibGx2bS9J Ui9JUlByaW50aW5nUGFzc2VzLmgiCistLS0gYmFja2VuZC9zcmMvbGx2bS9sbHZtX2xvYWRzdG9y ZV9vcHRpbWl6YXRpb24uY3BwCTIwMjAtMTEtMDkgMTY6NDg6MjAuODIzODY2MTEyICswMTAwCisr KysgYmFja2VuZC9zcmMvbGx2bS9sbHZtX2xvYWRzdG9yZV9vcHRpbWl6YXRpb24uY3BwCTIwMjAt MTEtMDkgMTk6MTA6MzcuMTQxODUyMzA4ICswMTAwCitAQCAtMTYwLDcgKzE2MCw3IEBACisgICAg IFZhbHVlICp2ZWNQdHIgPSBCdWlsZGVyLkNyZWF0ZUJpdENhc3QobGQtPmdldFBvaW50ZXJPcGVy YW5kKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvaW50ZXJU eXBlOjpnZXQodmVjVHksIGFkZHJTcGFjZSkpOworICAgICBMb2FkSW5zdCAqdmVjVmFsdWUgPSBC dWlsZGVyLkNyZWF0ZUxvYWQodmVjUHRyKTsKKy0gICAgdmVjVmFsdWUtPnNldEFsaWdubWVudChh bGlnbik7CisrICAgIHZlY1ZhbHVlLT5zZXRBbGlnbm1lbnQoYWxpZ24udmFsdWVPck9uZSgpKTsK KworICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgVmFs dWUgKlMgPSBCdWlsZGVyLkNyZWF0ZUV4dHJhY3RFbGVtZW50KHZlY1ZhbHVlLCBCdWlsZGVyLmdl dEludDMyKGkpKTsKK0BAIC0yNTEsNyArMjUxLDcgQEAKKyAgICAgICByZXR1cm47CisgICAgIFZh bHVlICpuZXdQdHIgPSBCdWlsZGVyLkNyZWF0ZUJpdENhc3Qoc3RQb2ludGVyLCBQb2ludGVyVHlw ZTo6Z2V0KHZlY1R5LCBhZGRyU3BhY2UpKTsKKyAgICAgU3RvcmVJbnN0ICpuZXdTVCA9IEJ1aWxk ZXIuQ3JlYXRlU3RvcmUocGFyZW50LCBuZXdQdHIpOworLSAgICBuZXdTVC0+c2V0QWxpZ25tZW50 KGFsaWduKTsKKysgICAgbmV3U1QtPnNldEFsaWdubWVudChhbGlnbi52YWx1ZU9yT25lKCkpOwor ICAgfQorCisgICAvLyBGaW5kIHRoZSBzYWZlIGl0ZXJhdG9yIHdlIGNhbiBwb2ludCB0by4gSWYg cmVvcmRlciBoYXBwZW5zLCB3ZSBuZWVkIHRvCistLS0gYmFja2VuZC9zcmMvbGx2bS9sbHZtX3Bh c3Nlcy5jcHAJMjAyMC0xMS0wOSAxNjo0ODoyMC44MjM4NjYxMTIgKzAxMDAKKysrKyBiYWNrZW5k L3NyYy9sbHZtL2xsdm1fcGFzc2VzLmNwcAkyMDIwLTExLTA5IDE4OjQ4OjU1Ljk5NzAwNjgzNyAr MDEwMAorQEAgLTg3LDE0ICs4NywxNCBAQAorICAgfQorCisgICBpbnQzMl90IGdldFBhZGRpbmco aW50MzJfdCBvZmZzZXQsIGludDMyX3QgYWxpZ24pIHsKKy0gICAgcmV0dXJuIChhbGlnbiAtIChv ZmZzZXQgJSBhbGlnbikpICUgYWxpZ247CisrICAgIHJldHVybiAoYWxpZ24gLSAob2Zmc2V0ICUg YWxpZ24pKSAlIGFsaWduOworICAgfQorCisgICB1aW50MzJfdCBnZXRBbGlnbm1lbnRCeXRlKGNv bnN0IGlyOjpVbml0ICZ1bml0LCBUeXBlKiBUeSkKKyAgIHsKKyAgICAgc3dpdGNoIChUeS0+Z2V0 VHlwZUlEKCkpIHsKKyAgICAgICBjYXNlIFR5cGU6OlZvaWRUeUlEOiBOT1RfU1VQUE9SVEVEOwor LSAgICAgIGNhc2UgVHlwZTo6VmVjdG9yVHlJRDoKKysgICAgICBjYXNlIFR5cGU6OkZpeGVkVmVj dG9yVHlJRDoKKyAgICAgICB7CisgICAgICAgICBjb25zdCBWZWN0b3JUeXBlKiBWZWNUeSA9IGNh c3Q8VmVjdG9yVHlwZT4oVHkpOworICAgICAgICAgdWludDMyX3QgZWxlbU51bSA9IFZlY1R5LT5n ZXROdW1FbGVtZW50cygpOworQEAgLTEzOCw3ICsxMzgsNyBAQAorICAgICAgIGNhc2UgVHlwZTo6 SGFsZlR5SUQ6ICAgIHJldHVybiAxNjsKKyAgICAgICBjYXNlIFR5cGU6OkZsb2F0VHlJRDogICBy ZXR1cm4gMzI7CisgICAgICAgY2FzZSBUeXBlOjpEb3VibGVUeUlEOiAgcmV0dXJuIDY0OworLSAg ICAgIGNhc2UgVHlwZTo6VmVjdG9yVHlJRDoKKysgICAgICBjYXNlIFR5cGU6OkZpeGVkVmVjdG9y VHlJRDoKKyAgICAgICB7CisgICAgICAgICBjb25zdCBWZWN0b3JUeXBlKiBWZWNUeSA9IGNhc3Q8 VmVjdG9yVHlwZT4oVHkpOworICAgICAgICAgdWludDMyX3QgbnVtRWxlbSA9IFZlY1R5LT5nZXRO dW1FbGVtZW50cygpOworQEAgLTE4NCwxMCArMTg0LDEyIEBACisgICAgIFR5cGUgKmVsZW1lbnRU eXBlID0gTlVMTDsKKyAgICAgaWYgKFBvaW50ZXJUeXBlKiBwdHJUeXBlID0gZHluX2Nhc3Q8UG9p bnRlclR5cGU+KGVsdFR5KSkKKyAgICAgICBlbGVtZW50VHlwZSA9IHB0clR5cGUtPmdldEVsZW1l bnRUeXBlKCk7CistICAgIGVsc2UgaWYoU2VxdWVudGlhbFR5cGUgKiBzZXFUeXBlID0gZHluX2Nh c3Q8U2VxdWVudGlhbFR5cGU+KGVsdFR5KSkKKy0gICAgICBlbGVtZW50VHlwZSA9IHNlcVR5cGUt PmdldEVsZW1lbnRUeXBlKCk7CistICAgIGVsc2UgaWYoQ29tcG9zaXRlVHlwZSAqIGNvbXBUeT0g ZHluX2Nhc3Q8Q29tcG9zaXRlVHlwZT4oZWx0VHkpKQorLSAgICAgIGVsZW1lbnRUeXBlID0gY29t cFR5LT5nZXRUeXBlQXRJbmRleChpbmRleCk7CisrICAgIGVsc2UgaWYgKEFycmF5VHlwZSAqIGFy clR5cGUgPSBkeW5fY2FzdDxBcnJheVR5cGU+KGVsdFR5KSkKKysgICAgICBlbGVtZW50VHlwZSA9 IGFyclR5cGUtPmdldEVsZW1lbnRUeXBlKCk7CisrICAgIGVsc2UgaWYoVmVjdG9yVHlwZSAqIHZl Y1R5cGUgPSBkeW5fY2FzdDxWZWN0b3JUeXBlPihlbHRUeSkpCisrICAgICAgZWxlbWVudFR5cGUg PSB2ZWNUeXBlLT5nZXRFbGVtZW50VHlwZSgpOworKyAgICBlbHNlIGlmKFN0cnVjdFR5cGUgKiBz dHJ1Y3RUeXBlID0gZHluX2Nhc3Q8U3RydWN0VHlwZT4oZWx0VHkpKQorKyAgICAgIGVsZW1lbnRU eXBlID0gc3RydWN0VHlwZS0+Z2V0VHlwZUF0SW5kZXgoaW5kZXgpOworICAgICBHQkVfQVNTRVJU KGVsZW1lbnRUeXBlKTsKKyAgICAgcmV0dXJuIGVsZW1lbnRUeXBlOworICAgfQorLS0tIGJhY2tl bmQvc3JjL2xsdm0vbGx2bV9wcmludGZfcGFyc2VyLmNwcAkyMDIwLTExLTA5IDE2OjQ4OjIwLjgy Mzg2NjExMiArMDEwMAorKysrIGJhY2tlbmQvc3JjL2xsdm0vbGx2bV9wcmludGZfcGFyc2VyLmNw cAkyMDIwLTExLTA5IDE4OjU3OjUyLjYxODk0MzEwNSArMDEwMAorQEAgLTMyMyw4ICszMjMsNyBA QAorCisgICBib29sIFByaW50ZlBhcnNlcjo6cGFyc2VPbmVQcmludGZJbnN0cnVjdGlvbihDYWxs SW5zdCAqIGNhbGwpCisgICB7CistICAgIENhbGxTaXRlIENTKGNhbGwpOworLSAgICBDYWxsU2l0 ZTo6YXJnX2l0ZXJhdG9yIENJX0ZNVCA9IENTLmFyZ19iZWdpbigpOworKyAgICBVc2VyOjpvcF9p dGVyYXRvciBDSV9GTVQgPSBjYWxsLT5hcmdfYmVnaW4oKTsKKyAgICAgaW50IHBhcmFtX251bSA9 IDA7CisKKyAgICAgbGx2bTo6Q29uc3RhbnQqIGFyZzAgPSBkeW5fY2FzdDxsbHZtOjpDb25zdGFu dEV4cHI+KCpDSV9GTVQpOworQEAgLTM0MSw3ICszNDAsNyBAQAorICAgICAgIHJldHVybiBmYWxz ZTsKKyAgICAgfQorCistICAgIHN0ZDo6c3RyaW5nIGZtdCA9IGZtdF9hcmctPmdldEFzQ1N0cmlu ZygpOworKyAgICBzdGQ6OnN0cmluZyBmbXQgPSBmbXRfYXJnLT5nZXRBc0NTdHJpbmcoKS5zdHIo KTsKKyAgICAgaWYgKGZtdC5zaXplKCkgPT0gMCkKKyAgICAgICByZXR1cm4gZmFsc2U7CisKK0BA IC00MzcsOCArNDM2LDggQEAKKyAgICAgICAgIGlmICggY2FsbEZ1bmMtPmdldEludHJpbnNpY0lE KCkgIT0gMCkKKyAgICAgICAgICAgY29udGludWU7CisKKy0gICAgICAgIFZhbHVlICpDYWxsZWUg PSBjYWxsLT5nZXRDYWxsZWRWYWx1ZSgpOworLSAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgZm5O YW1lID0gQ2FsbGVlLT5nZXROYW1lKCk7CisrICAgICAgICBWYWx1ZSAqQ2FsbGVlID0gY2FsbC0+ Z2V0Q2FsbGVkT3BlcmFuZCgpOworKyAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgZm5OYW1lID0g Q2FsbGVlLT5nZXROYW1lKCkuc3RyKCk7CisKKyAgICAgICAgIGlmIChmbk5hbWUgIT0gIl9fZ2Vu X29jbF9wcmludGZfc3R1YiIgJiYgZm5OYW1lICE9ICJfX2dlbl9vY2xfcHV0c19zdHViIikKKyAg ICAgICAgICAgY29udGludWU7CitAQCAtNTgyLDcgKzU4MSw3IEBACisgICAgICAgICAgICAgaWYg KCFmbXRfYXJnIHx8ICFmbXRfYXJnLT5pc0NTdHJpbmcoKSkgeworICAgICAgICAgICAgICAgcmV0 dXJuIGZhbHNlOworICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICBzbG90LnN0YXRlLnN0ciA9 IGZtdF9hcmctPmdldEFzQ1N0cmluZygpOworKyAgICAgICAgICAgIHNsb3Quc3RhdGUuc3RyID0g Zm10X2FyZy0+Z2V0QXNDU3RyaW5nKCkuc3RyKCk7CisgICAgICAgICAgICAgcmV0dXJuIHRydWU7 CisgICAgICAgICAgIH0KKyAgICAgICAgICAgY2FzZSBQUklOVEZfQ09OVkVSU0lPTl9QOiB7CitA QCAtNTk1LDEwICs1OTQsMTAgQEAKKworICAgICAgICAgYnJlYWs7CisKKy0gICAgICBjYXNlIFR5 cGU6OlZlY3RvclR5SUQ6IHsKKy0gICAgICAgIFR5cGUqIHZlY3RfdHlwZSA9IGFyZy0+Z2V0VHlw ZSgpOworLSAgICAgICAgVHlwZSogZWx0X3R5cGUgPSB2ZWN0X3R5cGUtPmdldFZlY3RvckVsZW1l bnRUeXBlKCk7CistICAgICAgICBpbnQgdmVjX251bSA9IHZlY3RfdHlwZS0+Z2V0VmVjdG9yTnVt RWxlbWVudHMoKTsKKysgICAgICBjYXNlIFR5cGU6OkZpeGVkVmVjdG9yVHlJRDogeworKyAgICAg ICAgVmVjdG9yVHlwZSogdmVjdF90eXBlID0gZHluX2Nhc3Q8VmVjdG9yVHlwZT4oYXJnLT5nZXRU eXBlKCkpOworKyAgICAgICAgVHlwZSogZWx0X3R5cGUgPSB2ZWN0X3R5cGUtPmdldEVsZW1lbnRU eXBlKCk7CisrICAgICAgICBpbnQgdmVjX251bSA9IHZlY3RfdHlwZS0+Z2V0TnVtRWxlbWVudHMo KTsKKyAgICAgICAgIGJvb2wgc2lnbiA9IGZhbHNlOworCisgICAgICAgICBpZiAodmVjX251bSAh PSBzbG90LnN0YXRlLnZlY3Rvcl9uKSB7CistLS0gYmFja2VuZC9zcmMvbGx2bS9sbHZtX3Byb2Zp bGluZy5jcHAJMjAyMC0xMS0wOSAxNjo0ODoyMC44MjM4NjYxMTIgKzAxMDAKKysrKyBiYWNrZW5k L3NyYy9sbHZtL2xsdm1fcHJvZmlsaW5nLmNwcAkyMDIwLTExLTA5IDE4OjU5OjUwLjEyMDkyOTE1 MCArMDEwMAorQEAgLTM1LDcgKzM1LDYgQEAKKyAjaW5jbHVkZSAibGx2bS9JUi9JUkJ1aWxkZXIu aCIKKworICNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+ PSAzNQorLSNpbmNsdWRlICJsbHZtL0lSL0NhbGxTaXRlLmgiCisgI2luY2x1ZGUgImxsdm0vSVIv Q0ZHLmgiCisgI2Vsc2UKKyAjaW5jbHVkZSAibGx2bS9TdXBwb3J0L0NhbGxTaXRlLmgiCistLS0g YmFja2VuZC9zcmMvbGx2bS9sbHZtX3NhbXBsZXJfZml4LmNwcAkyMDIwLTExLTA5IDE2OjQ4OjIw LjgyMzg2NjExMiArMDEwMAorKysrIGJhY2tlbmQvc3JjL2xsdm0vbGx2bV9zYW1wbGVyX2ZpeC5j cHAJMjAyMC0xMS0wOSAxNzowMTowOS40MDc3NzQ4MzIgKzAxMDAKK0BAIC00NSw4ICs0NSw4IEBA CisgICAgIGJvb2wgdmlzaXRDYWxsSW5zdChDYWxsSW5zdCAqSSkgeworICAgICAgIGlmKCFJKQor ICAgICAgICAgcmV0dXJuIGZhbHNlOworLSAgICAgIFZhbHVlICpDYWxsZWUgPSBJLT5nZXRDYWxs ZWRWYWx1ZSgpOworLSAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nIGZuTmFtZSA9IENhbGxlZS0+Z2V0 TmFtZSgpOworKyAgICAgIFZhbHVlICpDYWxsZWUgPSBJLT5nZXRDYWxsZWRPcGVyYW5kKCk7Cisr ICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgZm5OYW1lID0gQ2FsbGVlLT5nZXROYW1lKCkuc3RyKCk7 CisgICAgICAgYm9vbCBjaGFuZ2VkID0gZmFsc2U7CisgICAgICAgVHlwZSAqYm9vbFR5ID0gSW50 ZWdlclR5cGU6OmdldChJLT5nZXRDb250ZXh0KCksIDEpOworICAgICAgIFR5cGUgKmkzMlR5ID0g SW50ZWdlclR5cGU6OmdldChJLT5nZXRDb250ZXh0KCksIDMyKTsKK0BAIC01OSw3ICs1OSw3IEBA CisgICAgICAgICBWYWx1ZSAqbmVlZEZpeFZhbDsKKyAjaWYgTExWTV9WRVJTSU9OX01BSk9SICog MTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gNDAKKyAgICAgICAgIENhbGxJbnN0ICppbml0ID0g ZHluX2Nhc3Q8Q2FsbEluc3Q+KEktPmdldE9wZXJhbmQoMCkpOworLSAgICAgICAgaWYgKGluaXQg JiYgaW5pdC0+Z2V0Q2FsbGVkVmFsdWUoKS0+Z2V0TmFtZSgpLmNvbXBhcmUoIl9fdHJhbnNsYXRl X3NhbXBsZXJfaW5pdGlhbGl6ZXIiKSkKKysgICAgICAgIGlmIChpbml0ICYmIGluaXQtPmdldENh bGxlZE9wZXJhbmQoKS0+Z2V0TmFtZSgpLmNvbXBhcmUoIl9fdHJhbnNsYXRlX3NhbXBsZXJfaW5p dGlhbGl6ZXIiKSkKKyAgICAgICAgIHsKKyAgICAgICAgICAgY29uc3QgQ29uc3RhbnRJbnQgKmNp ID0gZHluX2Nhc3Q8Q29uc3RhbnRJbnQ+KGluaXQtPmdldE9wZXJhbmQoMCkpOworICAgICAgICAg ICB1aW50MzJfdCBzYW1wbGVySW50ID0gY2ktPmdldFpFeHRWYWx1ZSgpOworQEAgLTExMyw3ICsx MTMsNyBAQAorICAgICAgICAgVmFsdWUgKm5lZWRGaXhWYWw7CisgICNpZiBMTFZNX1ZFUlNJT05f TUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSA0MAorICAgICAgICAgQ2FsbEluc3Qg KmluaXQgPSBkeW5fY2FzdDxDYWxsSW5zdD4oSS0+Z2V0T3BlcmFuZCgwKSk7CistICAgICAgICBp ZiAoaW5pdCAmJiBpbml0LT5nZXRDYWxsZWRWYWx1ZSgpLT5nZXROYW1lKCkuY29tcGFyZSgiX190 cmFuc2xhdGVfc2FtcGxlcl9pbml0aWFsaXplciIpKQorKyAgICAgICAgaWYgKGluaXQgJiYgaW5p dC0+Z2V0Q2FsbGVkT3BlcmFuZCgpLT5nZXROYW1lKCkuY29tcGFyZSgiX190cmFuc2xhdGVfc2Ft cGxlcl9pbml0aWFsaXplciIpKQorICAgICAgICAgeworICAgICAgICAgICBjb25zdCBDb25zdGFu dEludCAqY2kgPSBkeW5fY2FzdDxDb25zdGFudEludD4oaW5pdC0+Z2V0T3BlcmFuZCgwKSk7Cisg ICAgICAgICAgIHVpbnQzMl90IHNhbXBsZXJJbnQgPSBjaS0+Z2V0WkV4dFZhbHVlKCk7CistLS0g YmFja2VuZC9zcmMvbGx2bS9sbHZtX3NjYWxhcml6ZS5jcHAJMjAyMC0xMS0wOSAxNjo0ODoyMC44 MjM4NjYxMTIgKzAxMDAKKysrKyBiYWNrZW5kL3NyYy9sbHZtL2xsdm1fc2NhbGFyaXplLmNwcAky MDIwLTExLTA5IDE4OjUxOjE2Ljg4ODk5MDEwNCArMDEwMAorQEAgLTE3OCw3ICsxNzgsNyBAQAor ICAgICAgIGlmKCF0eXBlKQorICAgICAgICAgcmV0dXJuIHR5cGU7CisgICAgICAgc3dpdGNoKHR5 cGUtPmdldFR5cGVJRCgpKSB7CistICAgICAgY2FzZSBUeXBlOjpWZWN0b3JUeUlEOgorKyAgICAg IGNhc2UgVHlwZTo6Rml4ZWRWZWN0b3JUeUlEOgorICAgICAgIGNhc2UgVHlwZTo6QXJyYXlUeUlE OgorICAgICAgICAgcmV0dXJuIEdldEJhc2ljVHlwZSh0eXBlLT5nZXRDb250YWluZWRUeXBlKDAp KTsKKyAgICAgICBkZWZhdWx0OgorQEAgLTE4OCw3ICsxODgsNyBAQAorICAgICB9CisKKyAgICAg aW50IEdldENvbXBvbmVudENvdW50KGNvbnN0IFR5cGUqIHR5cGUpICB7CistICAgICAgaWYgKHR5 cGUgJiYgdHlwZS0+Z2V0VHlwZUlEKCkgPT0gVHlwZTo6VmVjdG9yVHlJRCkKKysgICAgICBpZiAo dHlwZSAmJiB0eXBlLT5nZXRUeXBlSUQoKSA9PSBUeXBlOjpGaXhlZFZlY3RvclR5SUQpCisgICAg ICAgICByZXR1cm4gbGx2bTo6ZHluX2Nhc3Q8VmVjdG9yVHlwZT4odHlwZSktPmdldE51bUVsZW1l bnRzKCk7CisgICAgICAgZWxzZQorICAgICAgICAgcmV0dXJuIDE7CitAQCAtNjUyLDEzICs2NTIs MTIgQEAKKyAgICAgICAgICAgYnJlYWs7CisgICAgICAgICB9CisgICAgICAgfSBlbHNlIHsKKy0g ICAgICAgIFZhbHVlICpDYWxsZWUgPSBjYWxsLT5nZXRDYWxsZWRWYWx1ZSgpOworLSAgICAgICAg Y29uc3Qgc3RkOjpzdHJpbmcgZm5OYW1lID0gQ2FsbGVlLT5nZXROYW1lKCk7CisrICAgICAgICBW YWx1ZSAqQ2FsbGVlID0gY2FsbC0+Z2V0Q2FsbGVkT3BlcmFuZCgpOworKyAgICAgICAgY29uc3Qg c3RkOjpzdHJpbmcgZm5OYW1lID0gQ2FsbGVlLT5nZXROYW1lKCkuc3RyKCk7CisgICAgICAgICBh dXRvIGdlbkludHJpbnNpY0lEID0gaW50cmluc2ljTWFwLmZpbmQoZm5OYW1lKTsKKworICAgICAg ICAgLy8gR2V0IHRoZSBmdW5jdGlvbiBhcmd1bWVudHMKKy0gICAgICAgIENhbGxTaXRlIENTKGNh bGwpOworLSAgICAgICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBDSSA9IENTLmFyZ19iZWdpbigp ICsgMTsKKysgICAgICAgIFVzZXI6Om9wX2l0ZXJhdG9yIENJID0gY2FsbC0+YXJnX2JlZ2luKCkg KyAxOworCisgICAgICAgICBzd2l0Y2ggKGdlbkludHJpbnNpY0lEKSB7CisgICAgICAgICAgIGNh c2UgR0VOX09DTF9OT1RfRk9VTkQ6CitAQCAtNzI5LDcgKzcyOCw3IEBACisgICAgICAgICAgICAg ZXh0cmFjdEZyb21WZWN0b3IoY2FsbCk7CisgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg IGNhc2UgR0VOX09DTF9QUklOVEY6CistICAgICAgICAgICAgZm9yICg7IENJICE9IENTLmFyZ19l bmQoKTsgKytDSSkKKysgICAgICAgICAgICBmb3IgKDsgQ0kgIT0gY2FsbC0+YXJnX2VuZCgpOyAr K0NJKQorICAgICAgICAgICAgICAgaWYgKCgqQ0kpLT5nZXRUeXBlKCktPmlzVmVjdG9yVHkoKSkK KyAgICAgICAgICAgICAgICAgKkNJID0gSW5zZXJ0VG9WZWN0b3IoY2FsbCwgKkNJKTsKKyAgICAg ICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYmVpZ25ldC90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvYmVpZ25ldC90ZW1wbGF0ZQppbmRleCBhN2I2ZGZmMTA3Zi4uZTM3MTAyY2UxNGYgMTAw NjQ0Ci0tLSBhL3NyY3BrZ3MvYmVpZ25ldC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2JlaWduZXQv dGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdiZWlnbmV0Jwog cGtnbmFtZT1iZWlnbmV0CiB2ZXJzaW9uPTEuMy4yCi1yZXZpc2lvbj04CityZXZpc2lvbj05CiBh cmNocz0iaTY4NiogeDg2XzY0KiIKIHdya3NyYz0iQmVpZ25ldC0ke3ZlcnNpb259LVNvdXJjZSIK IGJ1aWxkX3N0eWxlPWNtYWtlCg== --===============6469953670514146789==--