From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 5607 invoked from network); 23 Aug 2022 13:26:30 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 23 Aug 2022 13:26:30 -0000 Content-Type: multipart/mixed; boundary="===============1121462856655807315==" MIME-Version: 1.0 Subject: =?utf8?q?=5BPR_PATCH=5D_=5Bci_skip=5D_freecad=3A_update_to_0=2E20=2E1=2C_update_pyside_to_5=2E15=2E5_and_others_related?= To: ml@inbox.vuxu.org From: yopito Reply-to: ml@inbox.vuxu.org Message-ID: Date: Tue, 23 Aug 2022 15:26:30 +0200 List-Id: GitHub notification mails are now in MIME to allow UTF8. --===============1121462856655807315== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYSBuZXcgcHVsbCByZXF1ZXN0IGJ5IHlvcGl0byBhZ2FpbnN0IG1hc3RlciBvbiB0 aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20veW9waXRvL3Zv aWQtcGFja2FnZXMgcHlzaWRlNS4xNS41X2FuZF9mcmVlY2FkMC4yMApodHRwczovL2dpdGh1Yi5j b20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMzg4NTYKCltjaSBza2lwXSBmcmVlY2Fk OiB1cGRhdGUgdG8gMC4yMC4xLCB1cGRhdGUgcHlzaWRlIHRvIDUuMTUuNSBhbmQgb3RoZXJzIHJl bGF0ZWQKPCEtLSBVbmNvbW1lbnQgcmVsZXZhbnQgc2VjdGlvbnMgYW5kIGRlbGV0ZSBvcHRpb25z IHdoaWNoIGFyZSBub3QgYXBwbGljYWJsZSAtLT4NCg0KIyMjIyBUZXN0aW5nIHRoZSBjaGFuZ2Vz DQotIEkgdGVzdGVkIHRoZSBjaGFuZ2VzIGluIHRoaXMgUFI6ICoqWUVTKioNCg0KPCEtLQ0KIyMj IyBOZXcgcGFja2FnZQ0KLSBUaGlzIG5ldyBwYWNrYWdlIGNvbmZvcm1zIHRvIHRoZSBbcGFja2Fn ZSByZXF1aXJlbWVudHNdKGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2Fn ZXMvYmxvYi9tYXN0ZXIvQ09OVFJJQlVUSU5HLm1kI3BhY2thZ2UtcmVxdWlyZW1lbnRzKTogKipZ RVMqKnwqKk5PKioNCi0tPg0KDQo8IS0tIE5vdGU6IElmIHRoZSBidWlsZCBpcyBsaWtlbHkgdG8g dGFrZSBtb3JlIHRoYW4gMiBob3VycywgcGxlYXNlIGFkZCBjaSBza2lwIHRhZyBhcyBkZXNjcmli ZWQgaW4NCmh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvYmxvYi9t YXN0ZXIvQ09OVFJJQlVUSU5HLm1kI2NvbnRpbnVvdXMtaW50ZWdyYXRpb24NCmFuZCB0ZXN0IGF0 IGxlYXN0IG9uZSBuYXRpdmUgYnVpbGQgYW5kLCBpZiBzdXBwb3J0ZWQsIGF0IGxlYXN0IG9uZSBj cm9zcyBidWlsZC4NCklnbm9yZSB0aGlzIHNlY3Rpb24gaWYgdGhpcyBQUiBpcyBub3Qgc2tpcHBp bmcgQ0kuDQotLT4NCg0KIyMjIyBMb2NhbCBidWlsZCB0ZXN0aW5nDQotIEkgYnVpbHQgdGhpcyBQ UiBsb2NhbGx5IGZvciBteSBuYXRpdmUgYXJjaGl0ZWN0dXJlICh4ODZfNjQtbXVzbCkgOiAqKllF UyoqDQotIEkgYnVpbHQgdGhpcyBQUiBsb2NhbGx5IGZvciB0aGVzZSBhcmNoaXRlY3R1cmVzIChp ZiBzdXBwb3J0ZWQuIG1hcmsgY3Jvc3NidWlsZHMpOg0KICAtIGFhcmNoNjQgKGdsaWJjKTogcGFy dGlhbCwgc2luY2Ugc29tZSBwYWNrYWdlcyBjYW4ndCBiZSBjcm9zc2J1aWxkZWQNCg0KIyMjIyBB ZGRpdGlvbmFsIGNvbW1lbnRzDQoNCiogcnVudGltZSB0ZXN0IGFyZSBPSywgYXBhcnQgdGhlc2Ug cmVsYXRlZCB0byBwaXZ5LCBzZWUgYmVsb3cNCiogc3VwZXJzZWVkcyBQUiAjMzYzNTYgcmVnYXJk aW5nIEZyZWVDQUQgdXBkYXRlDQoqIGFib3V0IHBpdnk6IHNvbWUgIFNJR1NFR1Ygb24gcnVubmlu ZyBGcmVlQ0FEIHdoZW4gaXQncyB1c2luZyBDb2luL3BpdnkuICANCiAgU2VlIGh0dHBzOi8vZ2l0 aHViLmNvbS9jb2luM2QvcGl2eS9pc3N1ZXMvOTggIA0KICBIb3dldmVyLCB0aGlzIGlzIGFmZmVj dGluZyBjdXJyZW50IEZyZWVDQUQgYmluYXJ5IHBhY2thZ2luZyB0b28uDQoNCnBpbmcgQGx1enBh eiBAa2FybC1uaWxzc29uIEBQaXJhdHkNCgoKQSBwYXRjaCBmaWxlIGZyb20gaHR0cHM6Ly9naXRo dWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzM4ODU2LnBhdGNoIGlzIGF0dGFj aGVk --===============1121462856655807315== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-pyside5.15.5_and_freecad0.20-38856.patch" RnJvbSAyYzA4YmZlYTdkYTliYWFiMGNlMTE2ZGE0YzcyYTU3ZmEyZmU0N2Q4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiB5b3BpdG8gPHBpZXJyZS5ib3VyZ2luQGZyZWUuZnI+CkRhdGU6 IE1vbiwgMjIgQXVnIDIwMjIgMTM6NDI6MzIgKzAyMDAKU3ViamVjdDogW1BBVENIIDEvNl0gc2hp Ym9rZW4yOiB1cGRhdGUgdG8gNS4xNS41CgotLS0KIC4uLi9wYXRjaGVzL2ZpeC1mb3ItbnVtcHkt MS4yMy4wLnBhdGNoICAgICAgICB8ICAxOCArKysKIC4uLi9wYXRjaGVzL25vLXB5dGhvbi1hcmNo LXN1ZmZpeC5wYXRjaCAgICAgICB8ICAgMiArLQogc3JjcGtncy9zaGlib2tlbjIvcGF0Y2hlcy9w eXRob24zMTAucGF0Y2ggICAgIHwgMTE0IC0tLS0tLS0tLS0tLS0tLS0tLQogLi4uL3BhdGNoZXMv dGVzdHMtcHl0aG9uLXN5bnRheC5wYXRjaCAgICAgICAgIHwgIDkxIC0tLS0tLS0tLS0tLS0tCiBz cmNwa2dzL3NoaWJva2VuMi90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgfCAgIDYgKy0KIDUg ZmlsZXMgY2hhbmdlZCwgMjIgaW5zZXJ0aW9ucygrKSwgMjA5IGRlbGV0aW9ucygtKQogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvc2hpYm9rZW4yL3BhdGNoZXMvZml4LWZvci1udW1weS0xLjIz LjAucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3NoaWJva2VuMi9wYXRjaGVzL3B5 dGhvbjMxMC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvc2hpYm9rZW4yL3BhdGNo ZXMvdGVzdHMtcHl0aG9uLXN5bnRheC5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvc2hpYm9r ZW4yL3BhdGNoZXMvZml4LWZvci1udW1weS0xLjIzLjAucGF0Y2ggYi9zcmNwa2dzL3NoaWJva2Vu Mi9wYXRjaGVzL2ZpeC1mb3ItbnVtcHktMS4yMy4wLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMC4uNzA4Y2ViZTNmOWZjCi0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9zaGlib2tlbjIvcGF0Y2hlcy9maXgtZm9yLW51bXB5LTEuMjMuMC5wYXRjaApAQCAtMCww ICsxLDE4IEBACityZXdvcmsgb2YgY29tbWl0IDE0MjJjZjRhN2YyNzdmYjEzZmQyMDlmMjRhOTBk NmMwMjY0MTQ5N2QgKHNoaWJva2VuNikKKworLS0tIGEvc291cmNlcy9zaGlib2tlbjIvbGlic2hp Ym9rZW4vc2JrbnVtcHlhcnJheWNvbnZlcnRlci5jcHAKKysrKyBiL3NvdXJjZXMvc2hpYm9rZW4y L2xpYnNoaWJva2VuL3Nia251bXB5YXJyYXljb252ZXJ0ZXIuY3BwCitAQCAtMTE2LDggKzExNiwx MyBAQAorICAgICAgICAgICAgIHN0ciA8PCAiIE5QWV9BUlJBWV9OT1RTV0FQUEVEIjsKKyAgICAg ICAgIGlmICgoZmxhZ3MgJiBOUFlfQVJSQVlfV1JJVEVBQkxFKSAhPSAwKQorICAgICAgICAgICAg IHN0ciA8PCAiIE5QWV9BUlJBWV9XUklURUFCTEUiOworKyNpZiBOUFlfVkVSU0lPTiA+PSAweDAw MDAwMDEwIC8vIE5QWV8xXzIzX0FQSV9WRVJTSU9OCisrICAgICAgICBpZiAoKGZsYWdzICYgTlBZ X0FSUkFZX1dSSVRFQkFDS0lGQ09QWSkgIT0gMCkKKysgICAgICAgICAgICBzdHIgPDwgIiBOUFlf QVJSQVlfV1JJVEVCQUNLSUZDT1BZIjsKKysjZWxzZQorICAgICAgICAgaWYgKChmbGFncyAmIE5Q WV9BUlJBWV9VUERBVEVJRkNPUFkpICE9IDApCisgICAgICAgICAgICAgc3RyIDw8ICIgTlBZX0FS UkFZX1VQREFURUlGQ09QWSI7CisrI2VuZGlmCisgICAgIH0gZWxzZSB7CisgICAgICAgICBzdHIg PDwgJzAnOworICAgICB9CmRpZmYgLS1naXQgYS9zcmNwa2dzL3NoaWJva2VuMi9wYXRjaGVzL25v LXB5dGhvbi1hcmNoLXN1ZmZpeC5wYXRjaCBiL3NyY3BrZ3Mvc2hpYm9rZW4yL3BhdGNoZXMvbm8t cHl0aG9uLWFyY2gtc3VmZml4LnBhdGNoCmluZGV4IDAyYmFhNjg5NmY3Yi4uMzFlOWM1NWRiNmYy IDEwMDY0NAotLS0gYS9zcmNwa2dzL3NoaWJva2VuMi9wYXRjaGVzL25vLXB5dGhvbi1hcmNoLXN1 ZmZpeC5wYXRjaAorKysgYi9zcmNwa2dzL3NoaWJva2VuMi9wYXRjaGVzL25vLXB5dGhvbi1hcmNo LXN1ZmZpeC5wYXRjaApAQCAtMSw1ICsxLDUgQEAKIENvbnNpc3RlbnQgZmlsZSBuYW1pbmcgYWNy b3NzIGFyY2hpdGVjdHVyZXMgZm9yIHNvIGxpYnMgYW5kIGNtYWtlIGZpbGVzOgotcmVtb3ZlIGlu dGVybWVkaWF0ZSBzdWZmaXggbGlrZSAiLmNweXRob24tMzZtLXg4Nl82NC1saW51eC1nbnUiLgor cmVtb3ZlIHB5dGhvbiBzdWZmaXggbGlrZSAiLmNweXRob24tMzZtLXg4Nl82NC1saW51eC1nbnUi LgogQXZvaWQgb3ZlcndyaXRpbmcgdGhlICJyZWFsIiBjbWFrZSBmaWxlIHdpdGggdGhlIGdlbmVy aWMgd3JhcHBlcidzIG9uZSAoc2FtZQogbmFtZSBpbiBzdWNoIGEgY2FzZSkKIApkaWZmIC0tZ2l0 IGEvc3JjcGtncy9zaGlib2tlbjIvcGF0Y2hlcy9weXRob24zMTAucGF0Y2ggYi9zcmNwa2dzL3No aWJva2VuMi9wYXRjaGVzL3B5dGhvbjMxMC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMTYwMGRlZGE0NmYyLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9zaGlib2tlbjIv cGF0Y2hlcy9weXRob24zMTAucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMTQgKzAsMCBAQAot VGhlIGZpcnN0IHBhdGNoIGlzIHRha2VuIGZyb20gdGhlIGlzc3VlIGFuZCByZXNvbHV0aW9uIGRv Y3VtZW50ZWQgYXQKLQotICAgIGh0dHBzOi8vYnVncmVwb3J0cy5xdC5pby9icm93c2UvUFlTSURF LTE0MzYKLQotTm90ZSB0aGF0IHN0cmluZ3MgY3JlYXRlZCBhcyBwYXJ0IG9mIHRoZSBgc3RhdGlj U3RyaW5ncygpYCBzZXQgdXNlZCBpbiB0aGUKLWBmaW5hbGl6ZVN0YXRpY1N0cmluZ3MoKWAgZnVu Y3Rpb24gYXJlIGNyZWF0ZWQgYnkgYGNyZWF0ZVN0YXRpY1N0cmluZygpYCwgd2hpY2gKLXVzZXMg YFB5VW5pY29kZV9JbnRlcm5Gcm9tU3RyaW5nYCB0byBjcmVhdGUgYW4gb3duZWQgcmVmZXJlbmNl IHRvIGFuIGludGVybmVkCi1QeXRob24gc3RyaW5nICoqYW5kKiogY2FsbHMgUHlfSU5DUkVGIHRv IGZ1cnRoZXIgZ3VhcmQgYWdhaW5zdCB0aGUgc3RyaW5ncwotZGlzYXBwZWFyaW5nLiBUaHVzLCBp biBgZmluYWxpemVTdGF0aWNTdHJpbmdzKClgLCB3ZSBuZWVkICp0d28qIGNhbGxzIHRvCi1QeV9E RUNSRUY6IG9uZSB0byBjbGVhciB0aGUgImd1YXJkIiBpbmNyZW1lbnQgYWZ0ZXIgY3JlYXRpb24g YW5kIG9uZSB0byByZWxlYXNlCi1vd25lcnNoaXAgZnJvbSB0aGUgY3JlYXRpb24gaXRzZWxmLgot Ci1UaGUgc2Vjb25kIGFuZCB0aGlyZCBwYXRjaGVzIGFyZSBhZGFwdGVkIGZyb20KLQotICAgIGh0 dHBzOi8vY29kZXJldmlldy5xdC1wcm9qZWN0Lm9yZy9jL3B5c2lkZS9weXNpZGUtc2V0dXAvKy8z NDgzOTAKLQotVGhlIHNlY29uZCBhZGRyZXNzZXMgdGhlIGRpc2FwcGVhcmFuY2Ugb2YgX1B5X01h bmdsZSBmcm9tIFB5dGhvbiAzLjEwIGJ5Ci1wcm92aWRpbmcgYW4gYWx0ZXJuYXRpdmUgaW1wbGVt ZW50YXRpb24gdGhhdCB3YXMgcHJldmlvdXNseSByZXNlcnZlZCBmb3IKLVB5X0xJTUlURURfQVBJ LgotCi1UaGUgZm91cnRoIHBhdGNoIHdhcyBhZGFwdGVkIGZyb20KLQotICAgIGh0dHBzOi8vY29k ZXJldmlldy5xdC1wcm9qZWN0Lm9yZy9jL3B5c2lkZS9weXNpZGUtc2V0dXAvKy8zNjU0MDMvNAot Ci1Ub2dldGhlciB3aXRoIHRoZSB0aGlyZCBwYXRjaCx0IGhpcyBhZGRyZXNzZXMgY2hhbmdlcyB0 byB0aGUgdHlwaW5nIG1vZHVsZSB0aGF0Ci1jYXVzZWQgdGhlIHB5aSBiaW5kaW5nIGdlbmVyYXRv ciB0byBmYWlsIGluIHNvbWUgY2FzZXMuCi0KLWRpZmYgLXVyIGEvc291cmNlcy9zaGlib2tlbjIv bGlic2hpYm9rZW4vcGVwMzg0aW1wbC5jcHAgYi9zb3VyY2VzL3NoaWJva2VuMi9saWJzaGlib2tl bi9wZXAzODRpbXBsLmNwcAotLS0tIGEvc291cmNlcy9zaGlib2tlbjIvbGlic2hpYm9rZW4vcGVw Mzg0aW1wbC5jcHAJMjAyMC0xMS0xMSAwNzo1MTozMC4wMDAwMDAwMDAgLTA1MDAKLSsrKyBiL3Nv dXJjZXMvc2hpYm9rZW4yL2xpYnNoaWJva2VuL3BlcDM4NGltcGwuY3BwCTIwMjEtMDktMjYgMDg6 NDc6MDAuNjE0MTg0OTI2IC0wNDAwCi1AQCAtNzUxLDE0ICs3NTEsMTQgQEAKLSAjZW5kaWYgLy8g SVNfUFkyCi0gICAgIFNoaWJva2VuOjpBdXRvRGVjUmVmIHByaXZhdGVvYmooUHlPYmplY3RfR2V0 QXR0cigKLSAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8UHlPYmplY3QgKj4oUHlfVFlQRShzZWxm KSksIFNoaWJva2VuOjpQeU1hZ2ljTmFtZTo6bmFtZSgpKSk7Ci0tI2lmbmRlZiBQeV9MSU1JVEVE X0FQSQotLSAgICByZXR1cm4gX1B5X01hbmdsZShwcml2YXRlb2JqLCBuYW1lKTsKLS0jZWxzZQot LSAgICAvLyBGb3Igc29tZSByZWFzb24sIF9QeV9NYW5nbGUgaXMgbm90IGluIHRoZSBMaW1pdGVk IEFQSS4gV2h5PwotLSAgICBzaXplX3QgcGxlbiA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHByaXZh dGVvYmopOwotKwotKyAgICAvLyBQWVNJREUtMTQzNjogX1B5X01hbmdsZSBpcyBubyBsb25nZXIg ZXhwb3NlZDsgaW1wbGVtZW50IGl0IGFsd2F5cy4KLSsgICAgLy8gVGhlIHJlc3Qgb2YgdGhpcyBm dW5jdGlvbiBpcyBvdXIgb3duIGltcGxlbWVudGF0aW9uIG9mIF9QeV9NYW5nbGUuCi0rICAgIC8v IFBsZWFzZSBjb21wYXJlIHRoZSBvcmlnaW5hbCBmdW5jdGlvbiBpbiBjb21waWxlLmMgLgotKyAg ICBzaXplX3QgcGxlbiA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHByaXZhdGVvYmoub2JqZWN0KCkp OwotICAgICAvKiBTdHJpcCBsZWFkaW5nIHVuZGVyc2NvcmVzIGZyb20gY2xhc3MgbmFtZSAqLwot ICAgICBzaXplX3QgaXByaXYgPSAwOwotLSAgICB3aGlsZSAoUHlVbmljb2RlX1JFQURfQ0hBUihw cml2YXRlb2JqLCBpcHJpdikgPT0gJ18nKQotKyAgICB3aGlsZSAoUHlVbmljb2RlX1JFQURfQ0hB Uihwcml2YXRlb2JqLm9iamVjdCgpLCBpcHJpdikgPT0gJ18nKQotICAgICAgICAgaXByaXYrKzsK LSAgICAgaWYgKGlwcml2ID09IHBsZW4pIHsKLSAgICAgICAgIFB5X0lOQ1JFRihuYW1lKTsKLUBA IC03ODcsNyArNzg3LDYgQEAKLSAgICAgaWYgKGFtb3VudCA+IGJpZ19zdGFjaykKLSAgICAgICAg IGZyZWUocmVzYnVmKTsKLSAgICAgcmV0dXJuIHJlc3VsdDsKLS0jZW5kaWYgLy8gZWxzZSBQeV9M SU1JVEVEX0FQSQotIH0KLSAKLSAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLWRpZmYgLXVyIGEvc291 cmNlcy9zaGlib2tlbjIvbGlic2hpYm9rZW4vc2Jrc3RyaW5nLmNwcCBiL3NvdXJjZXMvc2hpYm9r ZW4yL2xpYnNoaWJva2VuL3Nia3N0cmluZy5jcHAKLS0tLSBhL3NvdXJjZXMvc2hpYm9rZW4yL2xp YnNoaWJva2VuL3Nia3N0cmluZy5jcHAJMjAyMC0xMS0xMSAwNzo1MTozMC4wMDAwMDAwMDAgLTA1 MDAKLSsrKyBiL3NvdXJjZXMvc2hpYm9rZW4yL2xpYnNoaWJva2VuL3Nia3N0cmluZy5jcHAJMjAy MS0wOS0yNiAwODo0NzowMC42MTQxODQ5MjYgLTA0MDAKLUBAIC0yNDcsOCArMjQ3LDE1IEBACi0g ewotICAgICBhdXRvICZzZXQgPSBzdGF0aWNTdHJpbmdzKCk7Ci0gICAgIGZvciAoUHlPYmplY3Qg Km9iIDogc2V0KSB7Ci0rICAgICAgICAvLyBTaW5jZSBQeXRob24gMy4xMCwgaW50ZXJuZWQgc3Ry aW5ncyBhdCBkZWxldGVkIGF0IFB5dGhvbiBleGl0LgotKyNpZiBQWV9WRVJTSU9OX0hFWCA+PSAw eDAzMGEwMDAwCi0rICAgICAgICBQeV9ERUNSRUYob2IpOwotKyAgICAgICAgLy8gY3JlYXRlU3Rh dGljU3RyaW5nKCkgY2FsbHMgUHlfSU5DUkVGKCkKLSsgICAgICAgIFB5X0RFQ1JFRihvYik7Ci0r I2Vsc2UKLSAgICAgICAgIFB5X1JFRkNOVChvYikgPSAxOwotICAgICAgICAgUHlfREVDUkVGKG9i KTsKLSsjZW5kaWYKLSAgICAgfQotICAgICBzZXQuY2xlYXIoKTsKLSB9Ci1kaWZmIC11ciBhL3Nv dXJjZXMvc2hpYm9rZW4yL3NoaWJva2VubW9kdWxlL2ZpbGVzLmRpci9zaGlib2tlbnN1cHBvcnQv c2lnbmF0dXJlL21hcHBpbmcucHkgYi9zb3VyY2VzL3NoaWJva2VuMi9zaGlib2tlbm1vZHVsZS9m aWxlcy5kaXIvc2hpYm9rZW5zdXBwb3J0L3NpZ25hdHVyZS9tYXBwaW5nLnB5Ci0tLS0gYS9zb3Vy Y2VzL3NoaWJva2VuMi9zaGlib2tlbm1vZHVsZS9maWxlcy5kaXIvc2hpYm9rZW5zdXBwb3J0L3Np Z25hdHVyZS9tYXBwaW5nLnB5CTIwMjAtMTEtMTEgMDc6NTE6MzAuMDAwMDAwMDAwIC0wNTAwCi0r KysgYi9zb3VyY2VzL3NoaWJva2VuMi9zaGlib2tlbm1vZHVsZS9maWxlcy5kaXIvc2hpYm9rZW5z dXBwb3J0L3NpZ25hdHVyZS9tYXBwaW5nLnB5CTIwMjEtMDktMjYgMDg6NDc6MDAuNjE0MTg0OTI2 IC0wNDAwCi1AQCAtMzAwLDYgKzMwMCw3IEBACi0gICAgICJ6ZXJvKG9iamVjdCkiOiBOb25lLAot ICAgICAiemVybyhzdHIpIjogIiIsCi0gICAgICJ6ZXJvKHR5cGluZy5BbnkpIjogTm9uZSwKLSsg ICAgInplcm8oQW55KSI6IE5vbmUsCi0gICAgIH0pCi0gCi0gdHlwZV9tYXAudXBkYXRlKHsKLWRp ZmYgLXVyIGEvc291cmNlcy9zaGlib2tlbjIvc2hpYm9rZW5tb2R1bGUvZmlsZXMuZGlyL3NoaWJv a2Vuc3VwcG9ydC9zaWduYXR1cmUvcGFyc2VyLnB5IGIvc291cmNlcy9zaGlib2tlbjIvc2hpYm9r ZW5tb2R1bGUvZmlsZXMuZGlyL3NoaWJva2Vuc3VwcG9ydC9zaWduYXR1cmUvcGFyc2VyLnB5Ci0t LS0gYS9zb3VyY2VzL3NoaWJva2VuMi9zaGlib2tlbm1vZHVsZS9maWxlcy5kaXIvc2hpYm9rZW5z dXBwb3J0L3NpZ25hdHVyZS9wYXJzZXIucHkJMjAyMC0xMS0xMSAwNzo1MTozMC4wMDAwMDAwMDAg LTA1MDAKLSsrKyBiL3NvdXJjZXMvc2hpYm9rZW4yL3NoaWJva2VubW9kdWxlL2ZpbGVzLmRpci9z aGlib2tlbnN1cHBvcnQvc2lnbmF0dXJlL3BhcnNlci5weQkyMDIxLTA5LTI2IDA4OjQ4OjI3Ljc0 MzE3MTU4NyAtMDQwMAotQEAgLTQzLDEwICs0MywxMSBAQAotIGltcG9ydCByZQotIGltcG9ydCB3 YXJuaW5ncwotIGltcG9ydCB0eXBlcwotK2ltcG9ydCB0eXBpbmcKLSBpbXBvcnQga2V5d29yZAot IGltcG9ydCBmdW5jdG9vbHMKLSBmcm9tIHNoaWJva2Vuc3VwcG9ydC5zaWduYXR1cmUubWFwcGlu ZyBpbXBvcnQgKHR5cGVfbWFwLCB1cGRhdGVfbWFwcGluZywKLS0gICAgbmFtZXNwYWNlLCB0eXBp bmcsIF9Ob3RDYWxsZWQsIFJlc3VsdFZhcmlhYmxlLCBBcnJheUxpa2VWYXJpYWJsZSkKLSsgICAg bmFtZXNwYWNlLCBfTm90Q2FsbGVkLCBSZXN1bHRWYXJpYWJsZSwgQXJyYXlMaWtlVmFyaWFibGUp Ci0gZnJvbSBzaGlib2tlbnN1cHBvcnQuc2lnbmF0dXJlLmxpYi50b29sIGltcG9ydCAoU2ltcGxl TmFtZXNwYWNlLAotICAgICBidWlsZF9icmFjZV9wYXR0ZXJuKQotIAotQEAgLTIyMiw3ICsyMjMs NyBAQAotIGRlZiB0b19zdHJpbmcodGhpbmcpOgotICAgICBpZiBpc2luc3RhbmNlKHRoaW5nLCBz dHIpOgotICAgICAgICAgcmV0dXJuIHRoaW5nCi0tICAgIGlmIGhhc2F0dHIodGhpbmcsICJfX25h bWVfXyIpOgotKyAgICBpZiBoYXNhdHRyKHRoaW5nLCAiX19uYW1lX18iKSBhbmQgdGhpbmcuX19t b2R1bGVfXyAhPSAidHlwaW5nIjoKLSAgICAgICAgIGRvdCA9ICIuIiBpbiBzdHIodGhpbmcpCi0g ICAgICAgICBuYW1lID0gZ2V0X25hbWUodGhpbmcpCi0gICAgICAgICByZXR1cm4gdGhpbmcuX19t b2R1bGVfXyArICIuIiArIG5hbWUgaWYgZG90IGVsc2UgbmFtZQpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9zaGlib2tlbjIvcGF0Y2hlcy90ZXN0cy1weXRob24tc3ludGF4LnBhdGNoIGIvc3JjcGtncy9z aGlib2tlbjIvcGF0Y2hlcy90ZXN0cy1weXRob24tc3ludGF4LnBhdGNoCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAzMjc0M2E2Mjk1Y2UuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dz L3NoaWJva2VuMi9wYXRjaGVzL3Rlc3RzLXB5dGhvbi1zeW50YXgucGF0Y2gKKysrIC9kZXYvbnVs bApAQCAtMSw5MSArMCwwIEBACi1UaGlzIGNoYW5nZXNldCBpcyBhYm91dCBib3RoIHNoaWJva2Vu MiBhbmQgcHl0aG9uMy1weXNpZGUyCi0odGhhdCBhcmUgc2VwYXJhdGVkIHBhY2thZ2VzKQotdXBz dHJlYW06IHllcwotCi1Gcm9tIGM2MTg0ZTAxZTk5M2RjY2E5Nzk4ZjMwNmZiOGU5Y2IzMjJmZGQw ZGMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBDaHJpc3RpYW4gVGlzbWVyIDx0aXNt ZXJAc3RhY2tsZXNzLmNvbT4KLURhdGU6IFRodSwgMyBEZWMgMjAyMCAxMzozODo1OCArMDEwMAot U3ViamVjdDogW1BBVENIXSBmaXggYm90aCBxZmxhZ3NfdGVzdCBhbmQgdGhlIHFmbGFncyBjcHBn ZW5lcmF0b3IgY29kZQotCi1UaGVyZSB3YXMgYSB5ZWFycy1vbGQgcWZsYWdzIHRlc3QgZmFpbGlu ZyBvbiBQeXRob24gMy4KLUl0IHdhcyBibGFja2xpc3RlZCB3aXRoIHRoZSBjb21tZW50Ci0KLSAg ICAiIyAgTmVzdGVkIGV4Y2VwdGlvbiBpbiBQeXRob24gMyIKLQotVGhpcyB3YXMgbm9uc2Vuc2U6 IFRoZSB0ZXN0IHdhcyB3cm9uZyBhbHNvIGZvciBQeXRob24gMi4KLUl0IGp1c3QgaGFwcGVuZWQg dG8gd29yaywgYmVjYXVzZSBQeXRob24gMiBoYWQgc29tZSB3ZWlyZAotZXJyb3JzIGxlYWtpbmcu IFRoZSByZWFsIGJ1ZyB3YXMgaW4gbWlzc2luZyBlcnJvciBoYW5kbGluZwotaW4gY3BwZ2VuZXJh dG9yLmNwcCAuCi0KLVNlZSB0aGUgbWFpbiBkZXNjcmlwdGlvbiBpbiB0aGUgaXNzdWUuCi0KLUNo YW5nZS1JZDogSWEwZjk0NjY2NDBlMGViMzNmMWI4YjI2MTc4ZDMzZjJiZTBiY2IzMmYKLVRhc2st bnVtYmVyOiBQWVNJREUtMTQ0MgotUmV2aWV3ZWQtYnk6IEZyaWVkZW1hbm4gS2xlaW50IDxGcmll ZGVtYW5uLktsZWludEBxdC5pbz4KLShjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDI4OGZhZGI3 OTZlYzRlMTFlOTllMzc1MmQ1MzFhZGE3ZWRmMTVkNzUpCi0tLS0KLSBidWlsZF9oaXN0b3J5L2Js YWNrbGlzdC50eHQgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMgLS0tCi0gc291cmNlcy9w eXNpZGUyL3Rlc3RzL1F0Q29yZS9xZmxhZ3NfdGVzdC5weSAgICAgICAgICB8IDEyICsrKysrKyst LS0tLQotIC4uLi9zaGlib2tlbjIvZ2VuZXJhdG9yL3NoaWJva2VuMi9jcHBnZW5lcmF0b3IuY3Bw ICAgfCAgMiArKwotIDMgZmlsZXMgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9u cygtKQotCi1kaWZmIC0tZ2l0IGJ1aWxkX2hpc3RvcnkvYmxhY2tsaXN0LnR4dCBidWlsZF9oaXN0 b3J5L2JsYWNrbGlzdC50eHQKLWluZGV4IDliNjNmOTc4NC4uMmEyYTVkNGM0IDEwMDY0NAotLS0t IGEvYnVpbGRfaGlzdG9yeS9ibGFja2xpc3QudHh0Ci0rKysgYi9idWlsZF9oaXN0b3J5L2JsYWNr bGlzdC50eHQKLUBAIC0xOCw5ICsxOCw2IEBACi0gICAgIGRhcndpbiBweTMKLSBbUXRDb3JlOjpx ZmlsZXJlYWRfdGVzdF0KLSAgICAgZGFyd2luCi0tIyAgTmVzdGVkIGV4Y2VwdGlvbiBpbiBQeXRo b24gMwotLVtRdENvcmU6OnFmbGFnc190ZXN0XQotLSAgICBweTMKLSBbUXRDb3JlOjpxb2JqZWN0 X2Nvbm5lY3Rfbm90aWZ5X3Rlc3RdCi0gICAgIGxpbnV4Ci0gICAgIGRhcndpbgotZGlmZiAtLWdp dCBzb3VyY2VzL3B5c2lkZTIvdGVzdHMvUXRDb3JlL3FmbGFnc190ZXN0LnB5IHNvdXJjZXMvcHlz aWRlMi90ZXN0cy9RdENvcmUvcWZsYWdzX3Rlc3QucHkKLWluZGV4IDA4YTdjNTViMS4uZTFlOTg5 YzFlIDEwMDY0NAotLS0tIGEvc291cmNlcy9weXNpZGUyL3Rlc3RzL1F0Q29yZS9xZmxhZ3NfdGVz dC5weQotKysrIGIvc291cmNlcy9weXNpZGUyL3Rlc3RzL1F0Q29yZS9xZmxhZ3NfdGVzdC5weQot QEAgLTMwLDYgKzMwLDcgQEAKLSAKLSAnJydUZXN0IGNhc2VzIGZvciBRRmxhZ3MnJycKLSAKLStp bXBvcnQgb3BlcmF0b3IKLSBpbXBvcnQgb3MKLSBpbXBvcnQgc3lzCi0gaW1wb3J0IHVuaXR0ZXN0 Ci1AQCAtMTE3LDEyICsxMTgsMTMgQEAgY2xhc3MgUUZsYWdzT25RVmFyaWFudCh1bml0dGVzdC5U ZXN0Q2FzZSk6Ci0gY2xhc3MgUUZsYWdzV3JvbmdUeXBlKHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAg ICAgZGVmIHRlc3RXcm9uZ1R5cGUoc2VsZik6Ci0gICAgICAgICAnJydXcm9uZyB0eXBlIHBhc3Nl ZCB0byBRRmxhZ3MgYmluYXJ5IG9wZXJhdG9ycycnJwotKyAgICAgICAgZm9yIG9wIGluIG9wZXJh dG9yLm9yXywgb3BlcmF0b3IuYW5kXywgb3BlcmF0b3IueG9yOgotKyAgICAgICAgICAgIGZvciB4 IGluICc0MycsICdqYWJiYScsIFFPYmplY3QsIG9iamVjdDoKLSsgICAgICAgICAgICAgICAgc2Vs Zi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBvcCwgUXQuTm9JdGVtRmxhZ3MsIHgpCi0rICAgICAg ICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgb3AsIHgsIFF0Lk5vSXRlbUZs YWdzKQotKyAgICAgICAgIyBtYWtpbmcgc3VyZSB0aGlzIGFjdHVhbGx5IGRvZXMgbm90IGZhaWwg YWxsIHRoZSB0aW1lCi0rICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9wZXJhdG9yLm9yXyhRdC5O b0l0ZW1GbGFncywgNDMpLCA0MykKLSAKLS0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVF cnJvciwgUXQuTm9JdGVtRmxhZ3MgfCAnNDMnKQotLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMo VHlwZUVycm9yLCBRdC5Ob0l0ZW1GbGFncyAmICc0MycpCi0tICAgICAgICBzZWxmLmFzc2VydFJh aXNlcyhUeXBlRXJyb3IsICdqYWJiYScgJiBRdC5Ob0l0ZW1GbGFncykKLS0gICAgICAgIHNlbGYu YXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgJ2h1dCcgJiBRdC5Ob0l0ZW1GbGFncykKLS0gICAgICAg IHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgUXQuTm9JdGVtRmxhZ3MgJiBRT2JqZWN0KCkp Ci0gCi0gaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICAgdW5pdHRlc3QubWFpbigpCi1k aWZmIC0tZ2l0IHNvdXJjZXMvc2hpYm9rZW4yL2dlbmVyYXRvci9zaGlib2tlbjIvY3BwZ2VuZXJh dG9yLmNwcCBzb3VyY2VzL3NoaWJva2VuMi9nZW5lcmF0b3Ivc2hpYm9rZW4yL2NwcGdlbmVyYXRv ci5jcHAKLWluZGV4IGZmNDRkYjk1NS4uODdkZGQ3M2E1IDEwMDY0NAotLS0tIGEvc291cmNlcy9z aGlib2tlbjIvZ2VuZXJhdG9yL3NoaWJva2VuMi9jcHBnZW5lcmF0b3IuY3BwCi0rKysgYi9zb3Vy Y2VzL3NoaWJva2VuMi9nZW5lcmF0b3Ivc2hpYm9rZW4yL2NwcGdlbmVyYXRvci5jcHAKLUBAIC01 MjMwLDYgKzUyMzAsOCBAQCB2b2lkIENwcEdlbmVyYXRvcjo6d3JpdGVGbGFnc0JpbmFyeU9wZXJh dG9yKFFUZXh0U3RyZWFtICZzLCBjb25zdCBBYnN0cmFjdE1ldGFFbgotICAgICBzIDw8IElOREVO VCA8PCAiY3BwQXJnID0gc3RhdGljX2Nhc3Q8IiA8PCBmbGFnc0VudHJ5LT5vcmlnaW5hbE5hbWUo KQotICAgICAgICAgPDwgIj4oaW50KFB5SW50X0FzTG9uZygiIDw8IFBZVEhPTl9BUkcgPDwgIikp KTtcbiI7Ci0gICAgIHMgPDwgIiNlbmRpZlxuXG4iOwotKyAgICBzIDw8IElOREVOVCA8PCAiaWYg KFB5RXJyX09jY3VycmVkKCkpXG4iIDw8IGluZGVudChJTkRFTlQpCi0rICAgICAgICA8PCBJTkRF TlQgPDwgInJldHVybiBudWxscHRyO1xuIiA8PCBvdXRkZW50KElOREVOVCk7Ci0gICAgIHMgPDwg SU5ERU5UIDw8ICJjcHBSZXN1bHQgPSAiIDw8IENQUF9TRUxGX1ZBUiA8PCAiICIgPDwgY3BwT3BO YW1lIDw8ICIgY3BwQXJnO1xuIjsKLSAgICAgcyA8PCBJTkRFTlQgPDwgInJldHVybiAiOwotICAg ICB3cml0ZVRvUHl0aG9uQ29udmVyc2lvbihzLCBmbGFnc1R5cGUsIG51bGxwdHIsIFFMYXRpbjFT dHJpbmcoImNwcFJlc3VsdCIpKTsKLS0tIAotMi4yOS4yCmRpZmYgLS1naXQgYS9zcmNwa2dzL3No aWJva2VuMi90ZW1wbGF0ZSBiL3NyY3BrZ3Mvc2hpYm9rZW4yL3RlbXBsYXRlCmluZGV4IGI1NjYx MzIyOWMxMy4uZDAzMzViMjJiZjUxIDEwMDY0NAotLS0gYS9zcmNwa2dzL3NoaWJva2VuMi90ZW1w bGF0ZQorKysgYi9zcmNwa2dzL3NoaWJva2VuMi90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMg VGVtcGxhdGUgZmlsZSBmb3IgJ3NoaWJva2VuMicKIHBrZ25hbWU9c2hpYm9rZW4yCi12ZXJzaW9u PTUuMTUuMgotcmV2aXNpb249NAordmVyc2lvbj01LjE1LjUKK3JldmlzaW9uPTEKIF9wa2duYW1l PSJweXNpZGUtc2V0dXAtb3BlbnNvdXJjZS1zcmMtJHt2ZXJzaW9ufSIKIHdya3NyYz0iJHtfcGtn bmFtZS8lNS4xNC4yLjEvNS4xNC4yfSIKIGJ1aWxkX3dya3NyYz0ic291cmNlcy9zaGlib2tlbjIi CkBAIC0xNSw3ICsxNSw3IEBAIG1haW50YWluZXI9InlvcGl0byA8cGllcnJlLmJvdXJnaW5AZnJl ZS5mcj4iCiBsaWNlbnNlPSJHUEwtMy4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lr aS5xdC5pby9RdF9mb3JfUHl0aG9uL1NoaWJva2VuIgogZGlzdGZpbGVzPSJodHRwczovL2Rvd25s b2FkLnF0LmlvL29mZmljaWFsX3JlbGVhc2VzL1F0Rm9yUHl0aG9uL3B5c2lkZTIvUHlTaWRlMi0k e3ZlcnNpb259LXNyYy8ke19wa2duYW1lfS50YXIueHoiCi1jaGVja3N1bT1iMzA2NTA0YjBiODAz NzA3OWE4ZWFiNzcyZWU3NzRiOWU4NzdhMmQ4NGJhYjJkYmVmYmU0ZmE2ZjgzOTQxNDE4CitjaGVj a3N1bT0zOTIwYTRmYjM1MzMwMDI2MGM5YmM0NmZmNzBmMWZiOTc1YzVlN2VmYTIyZTlkNTEyMjI1 ODg5MjhjZTE5YjMzCiAKIHB5dGhvbl92ZXJzaW9uPTMKIGV4cG9ydCBDTEFOR19JTlNUQUxMX0RJ Uj0ke1hCUFNfQ1JPU1NfQkFTRX0vdXNyCgpGcm9tIDVjNDZjNTExOTE0NmFlMjNjOWUwMGI5ZjNh OWI2Mjc2MGZmNzUzYmYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IHlvcGl0byA8cGll cnJlLmJvdXJnaW5AZnJlZS5mcj4KRGF0ZTogTW9uLCAyMiBBdWcgMjAyMiAxMzo0MjozNSArMDIw MApTdWJqZWN0OiBbUEFUQ0ggMi82XSBweXRob24zLXB5c2lkZTI6IHVwZGF0ZSB0byA1LjE1LjUK Ci0tLQogLi4uL3BhdGNoZXMvdGVzdHMtcHl0aG9uLXN5bnRheC5wYXRjaCAgICAgICAgIHwgMTA2 IC0tLS0tLS0tLS0tLS0tLS0tLQogc3JjcGtncy9weXRob24zLXB5c2lkZTIvdGVtcGxhdGUgICAg ICAgICAgICAgIHwgICA2ICstCiAyIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMTA5 IGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcHl0aG9uMy1weXNpZGUy L3BhdGNoZXMvdGVzdHMtcHl0aG9uLXN5bnRheC5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv cHl0aG9uMy1weXNpZGUyL3BhdGNoZXMvdGVzdHMtcHl0aG9uLXN5bnRheC5wYXRjaCBiL3NyY3Br Z3MvcHl0aG9uMy1weXNpZGUyL3BhdGNoZXMvdGVzdHMtcHl0aG9uLXN5bnRheC5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2YzYWIxMTcyZjlmLi4wMDAwMDAwMDAwMDAKLS0t IGEvc3JjcGtncy9weXRob24zLXB5c2lkZTIvcGF0Y2hlcy90ZXN0cy1weXRob24tc3ludGF4LnBh dGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTA2ICswLDAgQEAKLVRoaXMgY2hhbmdlc2V0IGlzIGFi b3V0IGJvdGggc2hpYm9rZW4yIGFuZCBweXRob24zLXB5c2lkZTIKLSh0aGF0IGFyZSBzZXBhcmF0 ZWQgcGFja2FnZXMpCi11cHN0cmVhbTogeWVzCi0KLUZyb20gYzYxODRlMDFlOTkzZGNjYTk3OThm MzA2ZmI4ZTljYjMyMmZkZDBkYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IENocmlz dGlhbiBUaXNtZXIgPHRpc21lckBzdGFja2xlc3MuY29tPgotRGF0ZTogVGh1LCAzIERlYyAyMDIw IDEzOjM4OjU4ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIGZpeCBib3RoIHFmbGFnc190ZXN0IGFu ZCB0aGUgcWZsYWdzIGNwcGdlbmVyYXRvciBjb2RlCi0KLVRoZXJlIHdhcyBhIHllYXJzLW9sZCBx ZmxhZ3MgdGVzdCBmYWlsaW5nIG9uIFB5dGhvbiAzLgotSXQgd2FzIGJsYWNrbGlzdGVkIHdpdGgg dGhlIGNvbW1lbnQKLQotICAgICIjICBOZXN0ZWQgZXhjZXB0aW9uIGluIFB5dGhvbiAzIgotCi1U aGlzIHdhcyBub25zZW5zZTogVGhlIHRlc3Qgd2FzIHdyb25nIGFsc28gZm9yIFB5dGhvbiAyLgot SXQganVzdCBoYXBwZW5lZCB0byB3b3JrLCBiZWNhdXNlIFB5dGhvbiAyIGhhZCBzb21lIHdlaXJk Ci1lcnJvcnMgbGVha2luZy4gVGhlIHJlYWwgYnVnIHdhcyBpbiBtaXNzaW5nIGVycm9yIGhhbmRs aW5nCi1pbiBjcHBnZW5lcmF0b3IuY3BwIC4KLQotU2VlIHRoZSBtYWluIGRlc2NyaXB0aW9uIGlu IHRoZSBpc3N1ZS4KLQotQ2hhbmdlLUlkOiBJYTBmOTQ2NjY0MGUwZWIzM2YxYjhiMjYxNzhkMzNm MmJlMGJjYjMyZgotVGFzay1udW1iZXI6IFBZU0lERS0xNDQyCi1SZXZpZXdlZC1ieTogRnJpZWRl bWFubiBLbGVpbnQgPEZyaWVkZW1hbm4uS2xlaW50QHF0LmlvPgotKGNoZXJyeSBwaWNrZWQgZnJv bSBjb21taXQgMjg4ZmFkYjc5NmVjNGUxMWU5OWUzNzUyZDUzMWFkYTdlZGYxNWQ3NSkKLS0tLQot IGJ1aWxkX2hpc3RvcnkvYmxhY2tsaXN0LnR4dCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg MyAtLS0KLSBzb3VyY2VzL3B5c2lkZTIvdGVzdHMvUXRDb3JlL3FmbGFnc190ZXN0LnB5ICAgICAg ICAgIHwgMTIgKysrKysrKy0tLS0tCi0gLi4uL3NoaWJva2VuMi9nZW5lcmF0b3Ivc2hpYm9rZW4y L2NwcGdlbmVyYXRvci5jcHAgICB8ICAyICsrCi0gMyBmaWxlcyBjaGFuZ2VkLCA5IGluc2VydGlv bnMoKyksIDggZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYnVpbGRfaGlzdG9yeS9ibGFja2xp c3QudHh0IGJ1aWxkX2hpc3RvcnkvYmxhY2tsaXN0LnR4dAotaW5kZXggOWI2M2Y5Nzg0Li4yYTJh NWQ0YzQgMTAwNjQ0Ci0tLS0gYS9idWlsZF9oaXN0b3J5L2JsYWNrbGlzdC50eHQKLSsrKyBiL2J1 aWxkX2hpc3RvcnkvYmxhY2tsaXN0LnR4dAotQEAgLTE4LDkgKzE4LDYgQEAKLSAgICAgZGFyd2lu IHB5MwotIFtRdENvcmU6OnFmaWxlcmVhZF90ZXN0XQotICAgICBkYXJ3aW4KLS0jICBOZXN0ZWQg ZXhjZXB0aW9uIGluIFB5dGhvbiAzCi0tW1F0Q29yZTo6cWZsYWdzX3Rlc3RdCi0tICAgIHB5Mwot IFtRdENvcmU6OnFvYmplY3RfY29ubmVjdF9ub3RpZnlfdGVzdF0KLSAgICAgbGludXgKLSAgICAg ZGFyd2luCi1kaWZmIC0tZ2l0IHNvdXJjZXMvcHlzaWRlMi90ZXN0cy9RdENvcmUvcWZsYWdzX3Rl c3QucHkgc291cmNlcy9weXNpZGUyL3Rlc3RzL1F0Q29yZS9xZmxhZ3NfdGVzdC5weQotaW5kZXgg MDhhN2M1NWIxLi5lMWU5ODljMWUgMTAwNjQ0Ci0tLS0gYS9zb3VyY2VzL3B5c2lkZTIvdGVzdHMv UXRDb3JlL3FmbGFnc190ZXN0LnB5Ci0rKysgYi9zb3VyY2VzL3B5c2lkZTIvdGVzdHMvUXRDb3Jl L3FmbGFnc190ZXN0LnB5Ci1AQCAtMzAsNiArMzAsNyBAQAotIAotICcnJ1Rlc3QgY2FzZXMgZm9y IFFGbGFncycnJwotIAotK2ltcG9ydCBvcGVyYXRvcgotIGltcG9ydCBvcwotIGltcG9ydCBzeXMK LSBpbXBvcnQgdW5pdHRlc3QKLUBAIC0xMTcsMTIgKzExOCwxMyBAQCBjbGFzcyBRRmxhZ3NPblFW YXJpYW50KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSBjbGFzcyBRRmxhZ3NXcm9uZ1R5cGUodW5pdHRl c3QuVGVzdENhc2UpOgotICAgICBkZWYgdGVzdFdyb25nVHlwZShzZWxmKToKLSAgICAgICAgICcn J1dyb25nIHR5cGUgcGFzc2VkIHRvIFFGbGFncyBiaW5hcnkgb3BlcmF0b3JzJycnCi0rICAgICAg ICBmb3Igb3AgaW4gb3BlcmF0b3Iub3JfLCBvcGVyYXRvci5hbmRfLCBvcGVyYXRvci54b3I6Ci0r ICAgICAgICAgICAgZm9yIHggaW4gJzQzJywgJ2phYmJhJywgUU9iamVjdCwgb2JqZWN0OgotKyAg ICAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG9wLCBRdC5Ob0l0ZW1G bGFncywgeCkKLSsgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBv cCwgeCwgUXQuTm9JdGVtRmxhZ3MpCi0rICAgICAgICAjIG1ha2luZyBzdXJlIHRoaXMgYWN0dWFs bHkgZG9lcyBub3QgZmFpbCBhbGwgdGhlIHRpbWUKLSsgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo b3BlcmF0b3Iub3JfKFF0Lk5vSXRlbUZsYWdzLCA0MyksIDQzKQotIAotLSAgICAgICAgc2VsZi5h c3NlcnRSYWlzZXMoVHlwZUVycm9yLCBRdC5Ob0l0ZW1GbGFncyB8ICc0MycpCi0tICAgICAgICBz ZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIFF0Lk5vSXRlbUZsYWdzICYgJzQzJykKLS0gICAg ICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgJ2phYmJhJyAmIFF0Lk5vSXRlbUZsYWdz KQotLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCAnaHV0JyAmIFF0Lk5vSXRl bUZsYWdzKQotLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBRdC5Ob0l0ZW1G bGFncyAmIFFPYmplY3QoKSkKLSAKLSBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgICB1 bml0dGVzdC5tYWluKCkKLWRpZmYgLS1naXQgc291cmNlcy9zaGlib2tlbjIvZ2VuZXJhdG9yL3No aWJva2VuMi9jcHBnZW5lcmF0b3IuY3BwIHNvdXJjZXMvc2hpYm9rZW4yL2dlbmVyYXRvci9zaGli b2tlbjIvY3BwZ2VuZXJhdG9yLmNwcAotaW5kZXggZmY0NGRiOTU1Li44N2RkZDczYTUgMTAwNjQ0 Ci0tLS0gYS9zb3VyY2VzL3NoaWJva2VuMi9nZW5lcmF0b3Ivc2hpYm9rZW4yL2NwcGdlbmVyYXRv ci5jcHAKLSsrKyBiL3NvdXJjZXMvc2hpYm9rZW4yL2dlbmVyYXRvci9zaGlib2tlbjIvY3BwZ2Vu ZXJhdG9yLmNwcAotQEAgLTUyMzAsNiArNTIzMCw4IEBAIHZvaWQgQ3BwR2VuZXJhdG9yOjp3cml0 ZUZsYWdzQmluYXJ5T3BlcmF0b3IoUVRleHRTdHJlYW0gJnMsIGNvbnN0IEFic3RyYWN0TWV0YUVu Ci0gICAgIHMgPDwgSU5ERU5UIDw8ICJjcHBBcmcgPSBzdGF0aWNfY2FzdDwiIDw8IGZsYWdzRW50 cnktPm9yaWdpbmFsTmFtZSgpCi0gICAgICAgICA8PCAiPihpbnQoUHlJbnRfQXNMb25nKCIgPDwg UFlUSE9OX0FSRyA8PCAiKSkpO1xuIjsKLSAgICAgcyA8PCAiI2VuZGlmXG5cbiI7Ci0rICAgIHMg PDwgSU5ERU5UIDw8ICJpZiAoUHlFcnJfT2NjdXJyZWQoKSlcbiIgPDwgaW5kZW50KElOREVOVCkK LSsgICAgICAgIDw8IElOREVOVCA8PCAicmV0dXJuIG51bGxwdHI7XG4iIDw8IG91dGRlbnQoSU5E RU5UKTsKLSAgICAgcyA8PCBJTkRFTlQgPDwgImNwcFJlc3VsdCA9ICIgPDwgQ1BQX1NFTEZfVkFS IDw8ICIgIiA8PCBjcHBPcE5hbWUgPDwgIiBjcHBBcmc7XG4iOwotICAgICBzIDw8IElOREVOVCA8 PCAicmV0dXJuICI7Ci0gICAgIHdyaXRlVG9QeXRob25Db252ZXJzaW9uKHMsIGZsYWdzVHlwZSwg bnVsbHB0ciwgUUxhdGluMVN0cmluZygiY3BwUmVzdWx0IikpOwotLS0gCi0yLjI5LjIKLQotRml4 IHB5dGhvbiB3YXJuaW5nIGFib3V0ICdpcyBub3QnIHVzYWdlLgotVGhpcyBkaWZmIGlzIERJU1RJ TkNUIGZyb20gdGhlIHByZXZpb3VzIHBhdGNoCi0KLS0tLSBhL3NvdXJjZXMvcHlzaWRlMi90ZXN0 cy9RdFdpZGdldHMvcXdpZGdldF90ZXN0LnB5CTIwMjAtMTEtMTEgMTM6NTE6MzAuMDAwMDAwMDAw ICswMTAwCi0rKysgYi9zb3VyY2VzL3B5c2lkZTIvdGVzdHMvUXRXaWRnZXRzL3F3aWRnZXRfdGVz dC5weQkyMDIwLTExLTI0IDE0OjI4OjA2LjEwMzA5MzY0OSArMDEwMAotQEAgLTczLDcgKzczLDcg QEAKLSAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShub3Qgd2lkZ2V0LmlzVmlzaWJsZSgpKQotICAg ICAgICAgd2lkZ2V0LnNldFZpc2libGUoVHJ1ZSkKLSAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh3 aWRnZXQuaXNWaXNpYmxlKCkpCi0tICAgICAgICBzZWxmLmFzc2VydFRydWUod2lkZ2V0Lndpbklk KCkgaXMgbm90IDApCi0rICAgICAgICBzZWxmLmFzc2VydFRydWUod2lkZ2V0LndpbklkKCkgIT0g MCkKLSAgICAgICAgICMgc2tpcCB0aGlzIHRlc3Qgb24gbWFjT1Mgc2luY2Ugbm8gbmF0aXZlIGV2 ZW50cyBhcmUgcmVjZWl2ZWQKLSAgICAgICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAnZGFyd2luJzoK LSAgICAgICAgICAgICByZXR1cm4KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcHl0aG9uMy1weXNpZGUy L3RlbXBsYXRlIGIvc3JjcGtncy9weXRob24zLXB5c2lkZTIvdGVtcGxhdGUKaW5kZXggZWRhZDg1 YTUxMTJmLi45NzFiNzdmZTFlZjggMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcHl0aG9uMy1weXNpZGUy L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcHl0aG9uMy1weXNpZGUyL3RlbXBsYXRlCkBAIC0xLDcg KzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncHl0aG9uMy1weXNpZGUyJwogcGtnbmFtZT1w eXRob24zLXB5c2lkZTIKLXZlcnNpb249NS4xNS4yCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTUuMTUu NQorcmV2aXNpb249MQogX3BrZ25hbWU9InB5c2lkZS1zZXR1cC1vcGVuc291cmNlLXNyYy0ke3Zl cnNpb259Igogd3Jrc3JjPSIke19wa2duYW1lLyU1LjE0LjIuMS81LjE0LjJ9IgogYnVpbGRfd3Jr c3JjPSJzb3VyY2VzL3B5c2lkZTIiCkBAIC0yNCw3ICsyNCw3IEBAIG1haW50YWluZXI9InlvcGl0 byA8cGllcnJlLmJvdXJnaW5AZnJlZS5mcj4iCiBsaWNlbnNlPSJMR1BMLTMuMC1vci1sYXRlciIK IGhvbWVwYWdlPSJodHRwczovL3dpa2kucXQuaW8vUXRfZm9yX1B5dGhvbiIKIGRpc3RmaWxlcz0i aHR0cHM6Ly9kb3dubG9hZC5xdC5pby9vZmZpY2lhbF9yZWxlYXNlcy9RdEZvclB5dGhvbi9weXNp ZGUyL1B5U2lkZTItJHt2ZXJzaW9ufS1zcmMvJHtfcGtnbmFtZX0udGFyLnh6IgotY2hlY2tzdW09 YjMwNjUwNGIwYjgwMzcwNzlhOGVhYjc3MmVlNzc0YjllODc3YTJkODRiYWIyZGJlZmJlNGZhNmY4 Mzk0MTQxOAorY2hlY2tzdW09MzkyMGE0ZmIzNTMzMDAyNjBjOWJjNDZmZjcwZjFmYjk3NWM1ZTdl ZmEyMmU5ZDUxMjIyNTg4OTI4Y2UxOWIzMwogCiBidWlsZF9vcHRpb25zPSJ3ZWJlbmdpbmUiCiBk ZXNjX29wdGlvbl93ZWJlbmdpbmU9IkJ1aWxkIFF0NSBXZWJFbmdpbmUgYmluZGluZ3MiCgpGcm9t IGY5ZjE4MzkxZjViOTFkOTEwODE2NDMzM2Y1ODJiMWM5ZjUwZDFjOTQgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IHlvcGl0byA8cGllcnJlLmJvdXJnaW5AZnJlZS5mcj4KRGF0ZTogTW9u LCAyMiBBdWcgMjAyMiAxMzo0MjozNiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMy82XSBweXNpZGUy LXRvb2xzOiB1cGRhdGUgdG8gNS4xNS41CgotLS0KIHNyY3BrZ3MvcHlzaWRlMi10b29scy90ZW1w bGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3B5c2lkZTItdG9vbHMvdGVtcGxhdGUgYi9zcmNw a2dzL3B5c2lkZTItdG9vbHMvdGVtcGxhdGUKaW5kZXggMzVkMzUzYWJhOTVkLi4wYWEyZDhlYTll ODMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcHlzaWRlMi10b29scy90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL3B5c2lkZTItdG9vbHMvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZp bGUgZm9yICdweXNpZGUyLXRvb2xzJwogcGtnbmFtZT1weXNpZGUyLXRvb2xzCi12ZXJzaW9uPTUu MTUuMgordmVyc2lvbj01LjE1LjUKIHJldmlzaW9uPTEKIF9wa2duYW1lPSJweXNpZGUtc2V0dXAt b3BlbnNvdXJjZS1zcmMtJHt2ZXJzaW9ufSIKIHdya3NyYz0iJHtfcGtnbmFtZS8lNS4xNC4yLjEv NS4xNC4yfSIKQEAgLTE1LDcgKzE1LDcgQEAgbWFpbnRhaW5lcj0ieW9waXRvIDxwaWVycmUuYm91 cmdpbkBmcmVlLmZyPiIKIGxpY2Vuc2U9IkxHUEwtMy4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0 dHBzOi8vd2lraS5xdC5pby9RdF9mb3JfUHl0aG9uL1NoaWJva2VuIgogZGlzdGZpbGVzPSJodHRw czovL2Rvd25sb2FkLnF0LmlvL29mZmljaWFsX3JlbGVhc2VzL1F0Rm9yUHl0aG9uL3B5c2lkZTIv UHlTaWRlMi0ke3ZlcnNpb259LXNyYy8ke19wa2duYW1lfS50YXIueHoiCi1jaGVja3N1bT1iMzA2 NTA0YjBiODAzNzA3OWE4ZWFiNzcyZWU3NzRiOWU4NzdhMmQ4NGJhYjJkYmVmYmU0ZmE2ZjgzOTQx NDE4CitjaGVja3N1bT0zOTIwYTRmYjM1MzMwMDI2MGM5YmM0NmZmNzBmMWZiOTc1YzVlN2VmYTIy ZTlkNTEyMjI1ODg5MjhjZTE5YjMzCiBweXRob25fdmVyc2lvbj0zCiAKIGlmIFsgJHtDUk9TU19C VUlMRH0gXTsgdGhlbgoKRnJvbSBmZDI5MDAxN2M1ZWVkNjY3YjBlZmRkNGYwMzkyY2I4MDBiNDZk ZTZjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiB5b3BpdG8gPHBpZXJyZS5ib3VyZ2lu QGZyZWUuZnI+CkRhdGU6IE1vbiwgMjIgQXVnIDIwMjIgMTM6NDI6MzcgKzAyMDAKU3ViamVjdDog W1BBVENIIDQvNl0gcHl0aG9uMy1RdFB5OiByZWJ1aWxkIHdpdGggcHl0aG9uMy1weXNpZGUyIDUu MTUuNQoKLS0tCiBzcmNwa2dzL3B5dGhvbjMtUXRQeS90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBj aGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvcHl0aG9uMy1RdFB5L3RlbXBsYXRlIGIvc3JjcGtncy9weXRob24zLVF0UHkvdGVtcGxhdGUK aW5kZXggYjlkZGVmMWFmMTkyLi45MmMwYjUwOWRlYzYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcHl0 aG9uMy1RdFB5L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcHl0aG9uMy1RdFB5L3RlbXBsYXRlCkBA IC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncHl0aG9uMy1RdFB5JwogcGtnbmFt ZT1weXRob24zLVF0UHkKIHZlcnNpb249MS45LjAKLXJldmlzaW9uPTMKK3JldmlzaW9uPTQKIHdy a3NyYz1RdFB5LSR7dmVyc2lvbn0KIGJ1aWxkX3N0eWxlPXB5dGhvbjMtbW9kdWxlCiBob3N0bWFr ZWRlcGVuZHM9InB5dGhvbjMtc2V0dXB0b29scyIKCkZyb20gNTBjMDE4MzZkZmYxOTU0ZmZkYTJl Njc2MTRiZGNlMzdkMmQ0NjI2NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogeW9waXRv IDxwaWVycmUuYm91cmdpbkBmcmVlLmZyPgpEYXRlOiBNb24sIDIyIEF1ZyAyMDIyIDEzOjQyOjM4 ICswMjAwClN1YmplY3Q6IFtQQVRDSCA1LzZdIGxpYnNwbmF2OiB1cGRhdGUgdG8gMS4wCgotLS0K IC4uLi9wYXRjaGVzL09PLk1ha2VmaWxlLmZpeC1saWJsaW5rcy5wYXRjaCAgICAgICB8IDE2IC0t LS0tLS0tLS0tLS0tLS0KIHNyY3BrZ3MvbGlic3BuYXYvdGVtcGxhdGUgICAgICAgICAgICAgICAg ICAgICAgICB8ICA1ICsrKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMTgg ZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saWJzcG5hdi9wYXRjaGVz L09PLk1ha2VmaWxlLmZpeC1saWJsaW5rcy5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGli c3BuYXYvcGF0Y2hlcy9PTy5NYWtlZmlsZS5maXgtbGlibGlua3MucGF0Y2ggYi9zcmNwa2dzL2xp YnNwbmF2L3BhdGNoZXMvT08uTWFrZWZpbGUuZml4LWxpYmxpbmtzLnBhdGNoCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAppbmRleCA4NTBhYWU1MWZlMDIuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNw a2dzL2xpYnNwbmF2L3BhdGNoZXMvT08uTWFrZWZpbGUuZml4LWxpYmxpbmtzLnBhdGNoCisrKyAv ZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotRml4IGxpbmsgZ2VuZXJhdGlvbiBvZiAuc28gZmls ZXMKLVNvdXJjZTogaHR0cHM6Ly9naXQuYXJjaGxpbnV4Lm9yZy9zdm50b2dpdC9wYWNrYWdlcy5n aXQvcGxhaW4vdHJ1bmsvTWFrZWZpbGUucGF0Y2g/aD1wYWNrYWdlcy9saWJzcG5hdgotCi0tLS0g YS9NYWtlZmlsZS5pbn4JMjAxNS0wMS0xMCAwOTowODozNS4wNDM0MTc5NTUgKzAwMDAKLSsrKyBi L01ha2VmaWxlLmluCTIwMTUtMDEtMTAgMDk6MDk6MDAuODMzMzE1MjY5ICswMDAwCi1AQCAtNTQs OCArNTQsOCBAQAotIAljcCAkKGxpYl9zbykgJChERVNURElSKSQoUFJFRklYKS8kKGxpYmRpcikv JChsaWJfc28pCi0gCVsgLW4gIiQoc29uYW1lKSIgXSAmJiBcCi0gCQlybSAtZiAkKERFU1RESVIp JChQUkVGSVgpLyQobGliZGlyKS8kKHNvbmFtZSkgJChERVNURElSKSQoUFJFRklYKS8kKGxpYmRp cikvJChkZXZsaW5rKSAmJiBcCi0tCQlsbiAtcyAkKERFU1RESVIpJChQUkVGSVgpLyQobGliZGly KS8kKGxpYl9zbykgJChERVNURElSKSQoUFJFRklYKS8kKGxpYmRpcikvJChzb25hbWUpICYmIFwK LS0JCWxuIC1zICQoREVTVERJUikkKFBSRUZJWCkvJChsaWJkaXIpLyQoc29uYW1lKSAkKERFU1RE SVIpJChQUkVGSVgpLyQobGliZGlyKS8kKGRldmxpbmspIHx8IFwKLSsJCWxuIC1zICQobGliX3Nv KSAkKERFU1RESVIpJChQUkVGSVgpLyQobGliZGlyKS8kKHNvbmFtZSkgJiYgXAotKwkJbG4gLXMg JChzb25hbWUpICQoREVTVERJUikkKFBSRUZJWCkvJChsaWJkaXIpLyQoZGV2bGluaykgfHwgXAot IAkJdHJ1ZQotIAlmb3IgaCBpbiAkKGhkcik7IGRvIGNwIC1wICQoc3JjZGlyKS8kJGggJChERVNU RElSKSQoUFJFRklYKS9pbmNsdWRlLzsgZG9uZQotIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJz cG5hdi90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGlic3BuYXYvdGVtcGxhdGUKaW5kZXggZGYzNTA3MmIy NDA0Li4yZjBhZjdmY2UzN2QgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbGlic3BuYXYvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9saWJzcG5hdi90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxh dGUgZmlsZSBmb3IgJ2xpYnNwbmF2JwogcGtnbmFtZT1saWJzcG5hdgotdmVyc2lvbj0wLjIuMwor dmVyc2lvbj0xLjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGNvbmZp Z3VyZV9hcmdzPSItLWRpc2FibGUtb3B0IgpAQCAtMTAsNyArMTAsNyBAQCBtYWludGFpbmVyPSJ5 b3BpdG8gPHBpZXJyZS5ib3VyZ2luQGZyZWUuZnI+IgogbGljZW5zZT0iR1BMLTMiCiBob21lcGFn ZT0iaHR0cDovL3NwYWNlbmF2LnNvdXJjZWZvcmdlLm5ldC8iCiBkaXN0ZmlsZXM9IiR7U09VUkNF Rk9SR0VfU0lURX0vc3BhY2VuYXYvJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci5neiIKLWNoZWNr c3VtPTdhZTRkN2JiN2Y2YTVkZGEyOGI0ODc4OTFlMDFhY2NjODU2MzExNDQwZjU4MjI5OTc2MGRh Y2U2ZWU1ZjFmOTMKK2NoZWNrc3VtPTg4NDliN2Y3ODI2ZDc1MGY2OTU2Y2Y4ZjRmNTM5MzdmMjM1 OWFiNmRhOTdkNmM4MzRjNzFkNWY3NzEyMTJlN2MKIAogZG9fYnVpbGQoKSB7CiAJbWFrZSBDQz0i JHtDQ30iIEFSPSIke0FSfSIKQEAgLTIzLDUgKzIzLDYgQEAgbGlic3BuYXYtZGV2ZWxfcGFja2Fn ZSgpIHsKIAkJdm1vdmUgdXNyL2luY2x1ZGUKIAkJdm1vdmUgInVzci9saWIvKi5hIgogCQl2bW92 ZSAidXNyL2xpYi8qLnNvIgorCQl2bW92ZSB1c3Ivc2hhcmUvcGtnY29uZmlnCiAJfQogfQoKRnJv bSA1MzIxNTY4ZWJlYWQ2NDE3OGQ4ZjkwNzZlMTg4Y2I1NTRkNzk1NTkwIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiB5b3BpdG8gPHBpZXJyZS5ib3VyZ2luQGZyZWUuZnI+CkRhdGU6IE1v biwgMjIgQXVnIDIwMjIgMTM6NDI6MzkgKzAyMDAKU3ViamVjdDogW1BBVENIIDYvNl0gZnJlZWNh ZDogdXBkYXRlIHRvIDAuMjAuMQoKLS0tCiBzcmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8wMDItZXhl Y2luZm8ucGF0Y2ggICAgfCAgMzAgLQogLi4uL3BhdGNoZXMvMDEwLXNhbG9tZXNtZXNoLWV4ZWNp bmZvLnBhdGNoICAgIHwgIDMwIC0KIHNyY3BrZ3MvZnJlZWNhZC9wYXRjaGVzLzE1MC12dGs5LnBh dGNoICAgICAgICB8IDc5NiAtLS0tLS0tLS0tLS0tLS0tLS0KIHNyY3BrZ3MvZnJlZWNhZC9wYXRj aGVzLzE1Mi1jbWFrZS12dGs5LnBhdGNoICB8ICA1MyAtLQogLi4uL3BhdGNoZXMvMTUzLWxpbWl0 cy5oLWZvci1tdXNsLnBhdGNoICAgICAgIHwgIDEzICsKIC4uLi8xNTQtcmV2ZXJ0LWd1aS10bXAt cmVkaXJlY3Qtc3RkZXJyLnBhdGNoICB8ICA3MyArKwogc3JjcGtncy9mcmVlY2FkL3RlbXBsYXRl ICAgICAgICAgICAgICAgICAgICAgIHwgICA5ICstCiA3IGZpbGVzIGNoYW5nZWQsIDkwIGluc2Vy dGlvbnMoKyksIDkxNCBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Zy ZWVjYWQvcGF0Y2hlcy8wMDItZXhlY2luZm8ucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2ZyZWVjYWQvcGF0Y2hlcy8wMTAtc2Fsb21lc21lc2gtZXhlY2luZm8ucGF0Y2gKIGRlbGV0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8xNTAtdnRrOS5wYXRjaAogZGVs ZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZnJlZWNhZC9wYXRjaGVzLzE1Mi1jbWFrZS12dGs5LnBh dGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9mcmVlY2FkL3BhdGNoZXMvMTUzLWxpbWl0 cy5oLWZvci1tdXNsLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9mcmVlY2FkL3Bh dGNoZXMvMTU0LXJldmVydC1ndWktdG1wLXJlZGlyZWN0LXN0ZGVyci5wYXRjaAoKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvZnJlZWNhZC9wYXRjaGVzLzAwMi1leGVjaW5mby5wYXRjaCBiL3NyY3BrZ3Mv ZnJlZWNhZC9wYXRjaGVzLzAwMi1leGVjaW5mby5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggYmNkY2E3N2E3MmE0Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9mcmVlY2Fk L3BhdGNoZXMvMDAyLWV4ZWNpbmZvLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzAgKzAsMCBA QAotLS0tIGEvc3JjL0FwcC9BcHBsaWNhdGlvbi5jcHAJMjAyMC0wMS0yMiAyMzoyNzo0Mi43MDky NzMwODcgKzAxMDAKLSsrKyBiL3NyYy9BcHAvQXBwbGljYXRpb24uY3BwCTIwMjAtMDEtMjIgMjM6 NTA6NTMuOTE1MDc1OTU1ICswMTAwCi1AQCAtMTQ4NSw3ICsxNDg1LDkgQEAKLSAjZW5kaWYNCi0g DQotICNpZiBkZWZpbmVkKEZDX09TX0xJTlVYKQ0KLSsjaWZkZWYgX19HTElCQ19fDQotICNpbmNs dWRlIDxleGVjaW5mby5oPg0KLSsjZW5kaWYNCi0gI2luY2x1ZGUgPGRsZmNuLmg+DQotICNpbmNs dWRlIDxjeHhhYmkuaD4NCi0gDQotQEAgLTE0OTcsNiArMTQ5OSw3IEBACi0gLy8gVGhpcyBmdW5j dGlvbiBwcm9kdWNlcyBhIHN0YWNrIGJhY2t0cmFjZSB3aXRoIGRlbWFuZ2xlZCBmdW5jdGlvbiAm IG1ldGhvZCBuYW1lcy4NCi0gdm9pZCBwcmludEJhY2t0cmFjZShzaXplX3Qgc2tpcD0wKQ0KLSB7 DQotKyNpZmRlZiBfX0dMSUJDX18NCi0gICAgIHZvaWQgKmNhbGxzdGFja1sxMjhdOw0KLSAgICAg c2l6ZV90IG5NYXhGcmFtZXMgPSBzaXplb2YoY2FsbHN0YWNrKSAvIHNpemVvZihjYWxsc3RhY2tb MF0pOw0KLSAgICAgc2l6ZV90IG5GcmFtZXMgPSBiYWNrdHJhY2UoY2FsbHN0YWNrLCBuTWF4RnJh bWVzKTsNCi1AQCAtMTUyNyw2ICsxNTMwLDkgQEAKLSAgICAgfQ0KLSANCi0gICAgIGZyZWUoc3lt Ym9scyk7DQotKyNlbHNlDQotKyAgICBzdGQ6OmNlcnIgPDwgInNvcnJ5LCBubyBiYWNrdHJhY2Ug b24gbXVzbCBsaWJjIjsNCi0rI2VuZGlmDQotIH0NCi0gI2VuZGlmDQotIA0KZGlmZiAtLWdpdCBh L3NyY3BrZ3MvZnJlZWNhZC9wYXRjaGVzLzAxMC1zYWxvbWVzbWVzaC1leGVjaW5mby5wYXRjaCBi L3NyY3BrZ3MvZnJlZWNhZC9wYXRjaGVzLzAxMC1zYWxvbWVzbWVzaC1leGVjaW5mby5wYXRjaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2M2YmRjOWZmNDg1Li4wMDAwMDAwMDAwMDAK LS0tIGEvc3JjcGtncy9mcmVlY2FkL3BhdGNoZXMvMDEwLXNhbG9tZXNtZXNoLWV4ZWNpbmZvLnBh dGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzAgKzAsMCBAQAotLS0tIGEvc3JjLzNyZFBhcnR5L3Nh bG9tZXNtZXNoL3NyYy9Ecml2ZXJTVEwvQmFzaWNzX1V0aWxzLmNwcAotKysrIGIvc3JjLzNyZFBh cnR5L3NhbG9tZXNtZXNoL3NyYy9Ecml2ZXJTVEwvQmFzaWNzX1V0aWxzLmNwcAotQEAgLTI5LDcg KzI5LDkgQEAKLSAjaWZuZGVmIFdJTjMyCi0gI2luY2x1ZGUgPHVuaXN0ZC5oPgotICNpbmNsdWRl IDxzeXMvc3RhdC5oPgotKyNpZmRlZiBfX0dMSUJDX18KLSAjaW5jbHVkZSA8ZXhlY2luZm8uaD4K LSsjZW5kaWYKLSAjZW5kaWYKLSAKLSAKLUBAIC0xMDksNiArMTExLDcgQEAKLSAjaWZuZGVmIFdJ TjMyCi0gICB2b2lkIHByaW50X3RyYWNlYmFjaygpCi0gICB7Ci0rI2lmZGVmIF9fR0xJQkNfXwot ICAgICB2b2lkICphcnJheVs1MF07Ci0gICAgIHNpemVfdCBzaXplOwotICAgICBjaGFyICoqc3Ry aW5nczsKLUBAIC0xMjMsNiArMTI2LDkgQEAKLSAgICAgICB9Ci0gCi0gICAgIGZyZWUgKHN0cmlu Z3MpOwotKyNlbHNlICAgICAKLSsgICBzdGQ6OmNlcnIgPDwgInNvcnJ5LCBubyBiYWNrdHJhY2Ug b24gbXVzbCBsaWJjIjsKLSsjZW5kaWYKLSAgIH0KLSAjZWxzZQotICAgI2lmIChfTVNDX1ZFUiA+ PSAxNDAwKSAvLyBWaXN1YWwgU3R1ZGlvIDIwMDUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZnJlZWNh ZC9wYXRjaGVzLzE1MC12dGs5LnBhdGNoIGIvc3JjcGtncy9mcmVlY2FkL3BhdGNoZXMvMTUwLXZ0 azkucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkyNjczZTdjOWI5Zi4uMDAw MDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZnJlZWNhZC9wYXRjaGVzLzE1MC12dGs5LnBhdGNoCisr KyAvZGV2L251bGwKQEAgLTEsNzk2ICswLDAgQEAKLVRha2VuIGZyb20gaHR0cHM6Ly9naXRodWIu Y29tL3d3bWF5ZXIvRnJlZUNBRC9jb21taXQvYmI5YmNiZDUxZGY3YzNjYjc2YzU4MjMwMzhlNGVh MGY3ZTI1YTlmZgotYnV0IHJlbW92ZWQgcGF0Y2ggb24gZmlsZSBzcmMvTW9kL0ZlbS9HdWkvVmll d1Byb3ZpZGVyRmVtUG9zdE9iamVjdC5jcHAgOiBhbHJlYWR5IGFwcGxpZWQgKDIwMjEtMDEtMjAp Ci0KLWRpZmYgLS1naXQgc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL2luYy9TTURTX01lc2hFbGVt ZW50Lmh4eCBiL3NyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9pbmMvU01EU19NZXNoRWxlbWVudC5o eHgKLWluZGV4IDE0YTZkOWE3NjNmLi4wZTliOWU2YzkwNSAxMDA2NDQKLS0tLSBhL3NyYy8zcmRQ YXJ0eS9zYWxvbWVzbWVzaC9pbmMvU01EU19NZXNoRWxlbWVudC5oeHgKLSsrKyBiL3NyYy8zcmRQ YXJ0eS9zYWxvbWVzbWVzaC9pbmMvU01EU19NZXNoRWxlbWVudC5oeHgKLUBAIC00MCwxMSArNDAs MTYgQEAKLSAKLSAjaW5jbHVkZSA8dnRrVHlwZS5oPgotICNpbmNsdWRlIDx2dGtDZWxsVHlwZS5o PgotKyNpbmNsdWRlIDx2dGtDZWxsQXJyYXkuaD4KLSAKLSAvL3R5cGVkZWYgdW5zaWduZWQgc2hv cnQgVVNob3J0VHlwZTsKLSB0eXBlZGVmIHNob3J0IFNob3J0VHlwZTsKLSB0eXBlZGVmIGludCAg IExvbmdUeXBlOwotLQotKyNpZmRlZiBWVEtfQ0VMTF9BUlJBWV9WMgotK3R5cGVkZWYgY29uc3Qg dnRrSWRUeXBlKiB2dGtJZFR5cGVQdHI7Ci0rI2Vsc2UKLSt0eXBlZGVmIHZ0a0lkVHlwZSogdnRr SWRUeXBlUHRyOwotKyNlbmRpZgotIGNsYXNzIFNNRFNfTWVzaE5vZGU7Ci0gY2xhc3MgU01EU19N ZXNoRWRnZTsKLSBjbGFzcyBTTURTX01lc2hGYWNlOwotQEAgLTE5Miw3ICsxOTcsNyBAQCBwcm90 ZWN0ZWQ6Ci0gICAvLyEgRWxlbWVudCBpbmRleCBpbiB2ZWN0b3IgU01EU19NZXNoOjpteU5vZGVz IG9yIFNNRFNfTWVzaDo6bXlDZWxscwotICAgaW50IG15SUQ7Ci0gICAvLyEgaW5kZXggaW4gdnRr VW5zdHJ1Y3R1cmVkR3JpZAotLSAgaW50IG15VnRrSUQ7Ci0rICB2dGtJZFR5cGUgbXlWdGtJRDsK LSAgIC8vISBTTURTX01lc2ggaWRlbnRpZmljYXRpb24gaW4gU01FU0gKLSAgIFNob3J0VHlwZSBt eU1lc2hJZDsKLSAgIC8vISBTdWJTaGFwZSBhbmQgU3ViTWVzaCBpZGVudGlmaWNhdGlvbiBpbiBT TUVTSERTCi1kaWZmIC0tZ2l0IHNyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9pbmMvU01EU19VbnN0 cnVjdHVyZWRHcmlkLmh4eCBiL3NyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9pbmMvU01EU19VbnN0 cnVjdHVyZWRHcmlkLmh4eAotaW5kZXggOWU0YTIzZWRkZmIuLjc3NDY1ODE0NTQxIDEwMDY0NAot LS0tIGEvc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL2luYy9TTURTX1Vuc3RydWN0dXJlZEdyaWQu aHh4Ci0rKysgYi9zcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvaW5jL1NNRFNfVW5zdHJ1Y3R1cmVk R3JpZC5oeHgKLUBAIC05NSw3ICs5NSwxMSBAQCBwdWJsaWM6Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RkOjptYXA8aW50LCBzdGQ6Om1hcDxsb25nLGludD4gPiYg bm9kZVF1YWREb21haW5zKTsKLSAgIHZ0a0NlbGxMaW5rcyogR2V0TGlua3MoKQotICAgewotKyNp ZmRlZiBWVEtfQ0VMTF9BUlJBWV9WMgotKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dnRrQ2VsbExp bmtzKj4oR2V0Q2VsbExpbmtzKCkpOwotKyNlbHNlCi0gICAgIHJldHVybiBMaW5rczsKLSsjZW5k aWYKLSAgIH0KLSAgIFNNRFNfRG93bndhcmQqIGdldERvd25BcnJheSh1bnNpZ25lZCBjaGFyIHZ0 a1R5cGUpCi0gICB7Ci1kaWZmIC0tZ2l0IHNyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01E Uy9TTURTX0JhbGxFbGVtZW50LmNwcCBiL3NyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01E Uy9TTURTX0JhbGxFbGVtZW50LmNwcAotaW5kZXggMjk5MDkzYzk0ZjYuLjI2ODBjMjE3MzA1IDEw MDY0NAotLS0tIGEvc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfQmFsbEVs ZW1lbnQuY3BwCi0rKysgYi9zcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19C YWxsRWxlbWVudC5jcHAKLUBAIC02NywxMCArNjcsMTYgQEAgdm9pZCBTTURTX0JhbGxFbGVtZW50 OjpTZXREaWFtZXRlcihkb3VibGUgZGlhbWV0ZXIpCi0gYm9vbCBTTURTX0JhbGxFbGVtZW50OjpD aGFuZ2VOb2RlIChjb25zdCBTTURTX01lc2hOb2RlICogbm9kZSkKLSB7Ci0gICB2dGtVbnN0cnVj dHVyZWRHcmlkKiBncmlkID0gU01EU19NZXNoOjpfbWVzaExpc3RbbXlNZXNoSWRdLT5nZXRHcmlk KCk7Ci0rI2lmZGVmIFZUS19DRUxMX0FSUkFZX1YyCi0rICB2dGtOZXc8dnRrSWRMaXN0PiBjZWxs UG9pbnRzOwotKyAgZ3JpZC0+R2V0Q2VsbFBvaW50cyhteVZ0a0lELCBjZWxsUG9pbnRzLkdldFBv aW50ZXIoKSk7Ci0rICBjZWxsUG9pbnRzLT5TZXRJZCgwLCBub2RlLT5nZXRWdGtJZCgpKTsKLSsj ZWxzZQotICAgdnRrSWRUeXBlIG5wdHMgPSAwOwotICAgdnRrSWRUeXBlKiBwdHMgPSAwOwotICAg Z3JpZC0+R2V0Q2VsbFBvaW50cyhteVZ0a0lELCBucHRzLCBwdHMpOwotICAgcHRzWzBdID0gbm9k ZS0+Z2V0VnRrSWQoKTsKLSsjZW5kaWYKLSAgIFNNRFNfTWVzaDo6X21lc2hMaXN0W215TWVzaElk XS0+c2V0TXlNb2RpZmllZCgpOwotICAgcmV0dXJuIHRydWU7Ci0gfQotQEAgLTgzLDcgKzg5LDgg QEAgdm9pZCBTTURTX0JhbGxFbGVtZW50OjpQcmludCAoc3RkOjpvc3RyZWFtICYgT1MpIGNvbnN0 Ci0gY29uc3QgU01EU19NZXNoTm9kZSogU01EU19CYWxsRWxlbWVudDo6R2V0Tm9kZSAoY29uc3Qg aW50IGluZCkgY29uc3QKLSB7Ci0gICB2dGtVbnN0cnVjdHVyZWRHcmlkKiBncmlkID0gU01EU19N ZXNoOjpfbWVzaExpc3RbbXlNZXNoSWRdLT5nZXRHcmlkKCk7Ci0tICB2dGtJZFR5cGUgbnB0cywg KnB0czsKLSsgIHZ0a0lkVHlwZSBucHRzOwotKyAgdnRrSWRUeXBlUHRyIHB0czsKLSAgIGdyaWQt PkdldENlbGxQb2ludHMoIG15VnRrSUQsIG5wdHMsIHB0cyApOwotICAgcmV0dXJuIFNNRFNfTWVz aDo6X21lc2hMaXN0W215TWVzaElkXS0+RmluZE5vZGVWdGsoIHB0c1sgMCBdKTsKLSB9Ci1kaWZm IC0tZ2l0IHNyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX0Rvd253YXJkLmNw cCBiL3NyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX0Rvd253YXJkLmNwcAot aW5kZXggZDYwNDljMGJkMTkuLmE0MWY1YzE4ZTc4IDEwMDY0NAotLS0tIGEvc3JjLzNyZFBhcnR5 L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfRG93bndhcmQuY3BwCi0rKysgYi9zcmMvM3JkUGFy dHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19Eb3dud2FyZC5jcHAKLUBAIC0zMDMsNyArMzAz LDcgQEAgaW50IFNNRFNfRG93bjFEOjpnZXROb2RlU2V0KGludCBjZWxsSWQsIGludCogbm9kZVNl dCkKLSB2b2lkIFNNRFNfRG93bjFEOjpzZXROb2RlcyhpbnQgY2VsbElkLCBpbnQgdnRrSWQpCi0g ewotICAgdnRrSWRUeXBlIG5wdHMgPSAwOwotLSAgdnRrSWRUeXBlICpwdHM7IC8vIHdpbGwgcmVm ZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2YgdGhlIGZhY2UKLSsgIHZ0a0lkVHlwZVB0ciBwdHM7IC8v IHdpbGwgcmVmZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2YgdGhlIGZhY2UKLSAgIF9ncmlkLT5HZXRD ZWxsUG9pbnRzKHZ0a0lkLCBucHRzLCBwdHMpOwotICAgLy8gTUVTU0FHRSh2dGtJZCA8PCAiICIg PDwgbnB0cyA8PCAiICAiIDw8IF9uYkRvd25DZWxscyk7Ci0gICAvL0FTU0VSVChucHRzID09IF9u YkRvd25DZWxscyk7Ci1AQCAtMzU3LDcgKzM1Nyw3IEBAIGludCBTTURTX0Rvd24xRDo6Y29tcHV0 ZVZ0a0NlbGxzKGludCAqcHRzLCBzdGQ6OnZlY3RvcjxpbnQ+JiB2dGtJZHMpCi0gICAgIHsKLSAg ICAgICB2dGtJZFR5cGUgcG9pbnQgPSBwdHNbaV07Ci0gICAgICAgaW50IG51bUNlbGxzID0gX2dy aWQtPkdldExpbmtzKCktPkdldE5jZWxscyhwb2ludCk7Ci0tICAgICAgdnRrSWRUeXBlICpjZWxs cyA9IF9ncmlkLT5HZXRMaW5rcygpLT5HZXRDZWxscyhwb2ludCk7Ci0rICAgICAgdnRrSWRUeXBl UHRyIGNlbGxzID0gX2dyaWQtPkdldExpbmtzKCktPkdldENlbGxzKHBvaW50KTsKLSAgICAgICBm b3IgKGludCBqID0gMDsgaiA8IG51bUNlbGxzOyBqKyspCi0gICAgICAgICB7Ci0gICAgICAgICAg IGludCB2dGtDZWxsSWQgPSBjZWxsc1tqXTsKLUBAIC01MzIsNyArNTMyLDcgQEAgaW50IFNNRFNf RG93bjJEOjpjb21wdXRlVm9sdW1lSWRzKGludCBjZWxsSWQsIGludCogaWRzKQotICAgLy8gLS0t IGZpbmQgcG9pbnQgaWQncyBvZiB0aGUgZmFjZQotIAotICAgdnRrSWRUeXBlIG5wdHMgPSAwOwot LSAgdnRrSWRUeXBlICpwdHM7IC8vIHdpbGwgcmVmZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2YgdGhl IGZhY2UKLSsgIHZ0a0lkVHlwZVB0ciBwdHM7IC8vIHdpbGwgcmVmZXIgdG8gdGhlIHBvaW50IGlk J3Mgb2YgdGhlIGZhY2UKLSAgIF9ncmlkLT5HZXRDZWxsUG9pbnRzKGNlbGxJZCwgbnB0cywgcHRz KTsKLSAgIHZlY3RvcjxpbnQ+IG5vZGVzOwotICAgZm9yIChpbnQgaSA9IDA7IGkgPCBucHRzOyBp KyspCi1AQCAtNTc3LDcgKzU3Nyw3IEBAIGludCBTTURTX0Rvd24yRDo6Y29tcHV0ZVZvbHVtZUlk c0Zyb21Ob2Rlc0ZhY2UoaW50KiBwdHMsIGludCBucHRzLCBpbnQqIGlkcykKLSAgICAgICB2dGtJ ZFR5cGUgcG9pbnQgPSBwdHNbaV07Ci0gICAgICAgaW50IG51bUNlbGxzID0gX2dyaWQtPkdldExp bmtzKCktPkdldE5jZWxscyhwb2ludCk7Ci0gICAgICAgLy9NRVNTQUdFKCJjZWxscyBwb3VyICIg PDwgaSA8PCAiICIgPDwgbnVtQ2VsbHMpOwotLSAgICAgIHZ0a0lkVHlwZSAqY2VsbHMgPSBfZ3Jp ZC0+R2V0TGlua3MoKS0+R2V0Q2VsbHMocG9pbnQpOwotKyAgICAgIHZ0a0lkVHlwZVB0ciBjZWxs cyA9IF9ncmlkLT5HZXRMaW5rcygpLT5HZXRDZWxscyhwb2ludCk7Ci0gICAgICAgZm9yIChpbnQg aiA9IDA7IGogPCBudW1DZWxsczsgaisrKQotICAgICAgICAgewotICAgICAgICAgICBpbnQgdnRr Q2VsbElkID0gY2VsbHNbal07Ci1AQCAtNjI3LDcgKzYyNyw3IEBAIGludCBTTURTX0Rvd24yRDo6 Y29tcHV0ZVZvbHVtZUlkc0Zyb21Ob2Rlc0ZhY2UoaW50KiBwdHMsIGludCBucHRzLCBpbnQqIGlk cykKLSB2b2lkIFNNRFNfRG93bjJEOjpzZXRUZW1wTm9kZXMoaW50IGNlbGxJZCwgaW50IHZ0a0lk KQotIHsKLSAgIHZ0a0lkVHlwZSBucHRzID0gMDsKLS0gIHZ0a0lkVHlwZSAqcHRzOyAvLyB3aWxs IHJlZmVyIHRvIHRoZSBwb2ludCBpZCdzIG9mIHRoZSBmYWNlCi0rICB2dGtJZFR5cGVQdHIgcHRz OyAvLyB3aWxsIHJlZmVyIHRvIHRoZSBwb2ludCBpZCdzIG9mIHRoZSBmYWNlCi0gICBfZ3JpZC0+ R2V0Q2VsbFBvaW50cyh2dGtJZCwgbnB0cywgcHRzKTsKLSAgIC8vIE1FU1NBR0UodnRrSWQgPDwg IiAiIDw8IG5wdHMgPDwgIiAgIiA8PCBfbmJOb2Rlcyk7Ci0gICAvL0FTU0VSVChucHRzID09IF9u Yk5vZGVzKTsKLUBAIC03OTUsNyArNzk1LDcgQEAgdm9pZCBTTURTX0Rvd24zRDo6Z2V0Tm9kZUlk cyhpbnQgY2VsbElkLCBzdGQ6OnNldDxpbnQ+JiBub2RlU2V0KQotIHsKLSAgIGludCB2dGtJZCA9 IHRoaXMtPl92dGtDZWxsSWRzW2NlbGxJZF07Ci0gICB2dGtJZFR5cGUgbnB0cyA9IDA7Ci0tICB2 dGtJZFR5cGUgKm5vZGVzOyAvLyB3aWxsIHJlZmVyIHRvIHRoZSBwb2ludCBpZCdzIG9mIHRoZSB2 b2x1bWUKLSsgIHZ0a0lkVHlwZVB0ciBub2RlczsgLy8gd2lsbCByZWZlciB0byB0aGUgcG9pbnQg aWQncyBvZiB0aGUgdm9sdW1lCi0gICBfZ3JpZC0+R2V0Q2VsbFBvaW50cyh2dGtJZCwgbnB0cywg bm9kZXMpOwotICAgZm9yIChpbnQgaSA9IDA7IGkgPCBucHRzOyBpKyspCi0gICAgIG5vZGVTZXQu aW5zZXJ0KG5vZGVzW2ldKTsKLUBAIC0xMTI2LDcgKzExMjYsNyBAQCB2b2lkIFNNRFNfRG93blRl dHJhOjpnZXRPcmRlcmVkTm9kZXNPZkZhY2UoaW50IGNlbGxJZCwgc3RkOjp2ZWN0b3I8dnRrSWRU eXBlPiYgbwotICAgLy9NRVNTQUdFKCJjZWxsSWQgPSAiIDw8IGNlbGxJZCk7Ci0gCi0gICB2dGtJ ZFR5cGUgbnB0cyA9IDA7Ci0tICB2dGtJZFR5cGUgKm5vZGVzOyAvLyB3aWxsIHJlZmVyIHRvIHRo ZSBwb2ludCBpZCdzIG9mIHRoZSB2b2x1bWUKLSsgIHZ0a0lkVHlwZVB0ciBub2RlczsgLy8gd2ls bCByZWZlciB0byB0aGUgcG9pbnQgaWQncyBvZiB0aGUgdm9sdW1lCi0gICBfZ3JpZC0+R2V0Q2Vs bFBvaW50cyh0aGlzLT5fdnRrQ2VsbElkc1tjZWxsSWRdLCBucHRzLCBub2Rlcyk7Ci0gCi0gICBz ZXQ8aW50PiB0b2ZpbmQ7Ci1AQCAtMTE3OCw3ICsxMTc4LDcgQEAgdm9pZCBTTURTX0Rvd25UZXRy YTo6Y29tcHV0ZUZhY2VzV2l0aE5vZGVzKGludCBjZWxsSWQsIExpc3RFbGVtQnlOb2Rlc1R5cGUm IGZhY2UKLSAgIC8vIC0tLSBmaW5kIHBvaW50IGlkJ3Mgb2YgdGhlIHZvbHVtZQotIAotICAgdnRr SWRUeXBlIG5wdHMgPSAwOwotLSAgdnRrSWRUeXBlICpub2RlczsgLy8gd2lsbCByZWZlciB0byB0 aGUgcG9pbnQgaWQncyBvZiB0aGUgdm9sdW1lCi0rICB2dGtJZFR5cGVQdHIgbm9kZXM7IC8vIHdp bGwgcmVmZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2YgdGhlIHZvbHVtZQotICAgX2dyaWQtPkdldENl bGxQb2ludHMoY2VsbElkLCBucHRzLCBub2Rlcyk7Ci0gCi0gICAvLyAtLS0gY3JlYXRlIGFsbCB0 aGUgb3JkZXJlZCBsaXN0IG9mIG5vZGUgaWQncyBmb3IgZWFjaCBmYWNlCi1AQCAtMTIzNCw3ICsx MjM0LDcgQEAgdm9pZCBTTURTX0Rvd25RdWFkVGV0cmE6OmdldE9yZGVyZWROb2Rlc09mRmFjZShp bnQgY2VsbElkLCBzdGQ6OnZlY3Rvcjx2dGtJZFR5cGUKLSAgIC8vTUVTU0FHRSgiY2VsbElkID0g IiA8PCBjZWxsSWQpOwotIAotICAgdnRrSWRUeXBlIG5wdHMgPSAwOwotLSAgdnRrSWRUeXBlICpu b2RlczsgLy8gd2lsbCByZWZlciB0byB0aGUgcG9pbnQgaWQncyBvZiB0aGUgdm9sdW1lCi0rICB2 dGtJZFR5cGVQdHIgbm9kZXM7IC8vIHdpbGwgcmVmZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2YgdGhl IHZvbHVtZQotICAgX2dyaWQtPkdldENlbGxQb2ludHModGhpcy0+X3Z0a0NlbGxJZHNbY2VsbElk XSwgbnB0cywgbm9kZXMpOwotIAotICAgc2V0PGludD4gdG9maW5kOwotQEAgLTEyODgsNyArMTI4 OCw3IEBAIHZvaWQgU01EU19Eb3duUXVhZFRldHJhOjpjb21wdXRlRmFjZXNXaXRoTm9kZXMoaW50 IGNlbGxJZCwgTGlzdEVsZW1CeU5vZGVzVHlwZSYKLSAgIC8vIC0tLSBmaW5kIHBvaW50IGlkJ3Mg b2YgdGhlIHZvbHVtZQotIAotICAgdnRrSWRUeXBlIG5wdHMgPSAwOwotLSAgdnRrSWRUeXBlICpu b2RlczsgLy8gd2lsbCByZWZlciB0byB0aGUgcG9pbnQgaWQncyBvZiB0aGUgdm9sdW1lCi0rICB2 dGtJZFR5cGVQdHIgbm9kZXM7IC8vIHdpbGwgcmVmZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2YgdGhl IHZvbHVtZQotICAgX2dyaWQtPkdldENlbGxQb2ludHMoY2VsbElkLCBucHRzLCBub2Rlcyk7Ci0g Ci0gICAvLyAtLS0gY3JlYXRlIGFsbCB0aGUgb3JkZXJlZCBsaXN0IG9mIG5vZGUgaWQncyBmb3Ig ZWFjaCBmYWNlCi1AQCAtMTM1Nyw3ICsxMzU3LDcgQEAgdm9pZCBTTURTX0Rvd25QeXJhbWlkOjpn ZXRPcmRlcmVkTm9kZXNPZkZhY2UoaW50IGNlbGxJZCwgc3RkOjp2ZWN0b3I8dnRrSWRUeXBlPiYK LSAgIC8vTUVTU0FHRSgiY2VsbElkID0gIiA8PCBjZWxsSWQpOwotIAotICAgdnRrSWRUeXBlIG5w dHMgPSAwOwotLSAgdnRrSWRUeXBlICpub2RlczsgLy8gd2lsbCByZWZlciB0byB0aGUgcG9pbnQg aWQncyBvZiB0aGUgdm9sdW1lCi0rICB2dGtJZFR5cGVQdHIgbm9kZXM7IC8vIHdpbGwgcmVmZXIg dG8gdGhlIHBvaW50IGlkJ3Mgb2YgdGhlIHZvbHVtZQotICAgX2dyaWQtPkdldENlbGxQb2ludHMo dGhpcy0+X3Z0a0NlbGxJZHNbY2VsbElkXSwgbnB0cywgbm9kZXMpOwotIAotICAgc2V0PGludD4g dG9maW5kOwotQEAgLTE0MzUsNyArMTQzNSw3IEBAIHZvaWQgU01EU19Eb3duUHlyYW1pZDo6Y29t cHV0ZUZhY2VzV2l0aE5vZGVzKGludCBjZWxsSWQsIExpc3RFbGVtQnlOb2Rlc1R5cGUmIGZhCi0g ICAvLyAtLS0gZmluZCBwb2ludCBpZCdzIG9mIHRoZSB2b2x1bWUKLSAKLSAgIHZ0a0lkVHlwZSBu cHRzID0gMDsKLS0gIHZ0a0lkVHlwZSAqbm9kZXM7IC8vIHdpbGwgcmVmZXIgdG8gdGhlIHBvaW50 IGlkJ3Mgb2YgdGhlIHZvbHVtZQotKyAgdnRrSWRUeXBlUHRyIG5vZGVzOyAvLyB3aWxsIHJlZmVy IHRvIHRoZSBwb2ludCBpZCdzIG9mIHRoZSB2b2x1bWUKLSAgIF9ncmlkLT5HZXRDZWxsUG9pbnRz KGNlbGxJZCwgbnB0cywgbm9kZXMpOwotIAotICAgLy8gLS0tIGNyZWF0ZSBhbGwgdGhlIG9yZGVy ZWQgbGlzdCBvZiBub2RlIGlkJ3MgZm9yIGVhY2ggZmFjZQotQEAgLTE1MDAsNyArMTUwMCw3IEBA IHZvaWQgU01EU19Eb3duUXVhZFB5cmFtaWQ6OmdldE9yZGVyZWROb2Rlc09mRmFjZShpbnQgY2Vs bElkLCBzdGQ6OnZlY3Rvcjx2dGtJZFR5Ci0gICAvL01FU1NBR0UoImNlbGxJZCA9ICIgPDwgY2Vs bElkKTsKLSAKLSAgIHZ0a0lkVHlwZSBucHRzID0gMDsKLS0gIHZ0a0lkVHlwZSAqbm9kZXM7IC8v IHdpbGwgcmVmZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2YgdGhlIHZvbHVtZQotKyAgdnRrSWRUeXBl UHRyIG5vZGVzOyAvLyB3aWxsIHJlZmVyIHRvIHRoZSBwb2ludCBpZCdzIG9mIHRoZSB2b2x1bWUK LSAgIF9ncmlkLT5HZXRDZWxsUG9pbnRzKHRoaXMtPl92dGtDZWxsSWRzW2NlbGxJZF0sIG5wdHMs IG5vZGVzKTsKLSAKLSAgIHNldDxpbnQ+IHRvZmluZDsKLUBAIC0xNTgwLDcgKzE1ODAsNyBAQCB2 b2lkIFNNRFNfRG93blF1YWRQeXJhbWlkOjpjb21wdXRlRmFjZXNXaXRoTm9kZXMoaW50IGNlbGxJ ZCwgTGlzdEVsZW1CeU5vZGVzVHlwZQotICAgLy8gLS0tIGZpbmQgcG9pbnQgaWQncyBvZiB0aGUg dm9sdW1lCi0gCi0gICB2dGtJZFR5cGUgbnB0cyA9IDA7Ci0tICB2dGtJZFR5cGUgKm5vZGVzOyAv LyB3aWxsIHJlZmVyIHRvIHRoZSBwb2ludCBpZCdzIG9mIHRoZSB2b2x1bWUKLSsgIHZ0a0lkVHlw ZVB0ciBub2RlczsgLy8gd2lsbCByZWZlciB0byB0aGUgcG9pbnQgaWQncyBvZiB0aGUgdm9sdW1l Ci0gICBfZ3JpZC0+R2V0Q2VsbFBvaW50cyhjZWxsSWQsIG5wdHMsIG5vZGVzKTsKLSAKLSAgIC8v IC0tLSBjcmVhdGUgYWxsIHRoZSBvcmRlcmVkIGxpc3Qgb2Ygbm9kZSBpZCdzIGZvciBlYWNoIGZh Y2UKLUBAIC0xNjYwLDcgKzE2NjAsNyBAQCB2b2lkIFNNRFNfRG93blBlbnRhOjpnZXRPcmRlcmVk Tm9kZXNPZkZhY2UoaW50IGNlbGxJZCwgc3RkOjp2ZWN0b3I8dnRrSWRUeXBlPiYgbwotICAgLy9N RVNTQUdFKCJjZWxsSWQgPSAiIDw8IGNlbGxJZCk7Ci0gCi0gICB2dGtJZFR5cGUgbnB0cyA9IDA7 Ci0tICB2dGtJZFR5cGUgKm5vZGVzOyAvLyB3aWxsIHJlZmVyIHRvIHRoZSBwb2ludCBpZCdzIG9m IHRoZSB2b2x1bWUKLSsgIHZ0a0lkVHlwZVB0ciBub2RlczsgLy8gd2lsbCByZWZlciB0byB0aGUg cG9pbnQgaWQncyBvZiB0aGUgdm9sdW1lCi0gICBfZ3JpZC0+R2V0Q2VsbFBvaW50cyh0aGlzLT5f dnRrQ2VsbElkc1tjZWxsSWRdLCBucHRzLCBub2Rlcyk7Ci0gCi0gICBzZXQ8aW50PiB0b2ZpbmQ7 Ci1AQCAtMTc0NCw3ICsxNzQ0LDcgQEAgdm9pZCBTTURTX0Rvd25QZW50YTo6Y29tcHV0ZUZhY2Vz V2l0aE5vZGVzKGludCBjZWxsSWQsIExpc3RFbGVtQnlOb2Rlc1R5cGUmIGZhY2UKLSAgIC8vIC0t LSBmaW5kIHBvaW50IGlkJ3Mgb2YgdGhlIHZvbHVtZQotIAotICAgdnRrSWRUeXBlIG5wdHMgPSAw OwotLSAgdnRrSWRUeXBlICpub2RlczsgLy8gd2lsbCByZWZlciB0byB0aGUgcG9pbnQgaWQncyBv ZiB0aGUgdm9sdW1lCi0rICB2dGtJZFR5cGVQdHIgbm9kZXM7IC8vIHdpbGwgcmVmZXIgdG8gdGhl IHBvaW50IGlkJ3Mgb2YgdGhlIHZvbHVtZQotICAgX2dyaWQtPkdldENlbGxQb2ludHMoY2VsbElk LCBucHRzLCBub2Rlcyk7Ci0gCi0gICAvLyAtLS0gY3JlYXRlIGFsbCB0aGUgb3JkZXJlZCBsaXN0 IG9mIG5vZGUgaWQncyBmb3IgZWFjaCBmYWNlCi1AQCAtMTgxMCw3ICsxODEwLDcgQEAgdm9pZCBT TURTX0Rvd25RdWFkUGVudGE6OmdldE9yZGVyZWROb2Rlc09mRmFjZShpbnQgY2VsbElkLCBzdGQ6 OnZlY3Rvcjx2dGtJZFR5cGUKLSAgIC8vTUVTU0FHRSgiY2VsbElkID0gIiA8PCBjZWxsSWQpOwot IAotICAgdnRrSWRUeXBlIG5wdHMgPSAwOwotLSAgdnRrSWRUeXBlICpub2RlczsgLy8gd2lsbCBy ZWZlciB0byB0aGUgcG9pbnQgaWQncyBvZiB0aGUgdm9sdW1lCi0rICB2dGtJZFR5cGVQdHIgbm9k ZXM7IC8vIHdpbGwgcmVmZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2YgdGhlIHZvbHVtZQotICAgX2dy aWQtPkdldENlbGxQb2ludHModGhpcy0+X3Z0a0NlbGxJZHNbY2VsbElkXSwgbnB0cywgbm9kZXMp OwotIAotICAgc2V0PGludD4gdG9maW5kOwotQEAgLTE4OTYsNyArMTg5Niw3IEBAIHZvaWQgU01E U19Eb3duUXVhZFBlbnRhOjpjb21wdXRlRmFjZXNXaXRoTm9kZXMoaW50IGNlbGxJZCwgTGlzdEVs ZW1CeU5vZGVzVHlwZSYKLSAgIC8vIC0tLSBmaW5kIHBvaW50IGlkJ3Mgb2YgdGhlIHZvbHVtZQot IAotICAgdnRrSWRUeXBlIG5wdHMgPSAwOwotLSAgdnRrSWRUeXBlICpub2RlczsgLy8gd2lsbCBy ZWZlciB0byB0aGUgcG9pbnQgaWQncyBvZiB0aGUgdm9sdW1lCi0rICB2dGtJZFR5cGVQdHIgbm9k ZXM7IC8vIHdpbGwgcmVmZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2YgdGhlIHZvbHVtZQotICAgX2dy aWQtPkdldENlbGxQb2ludHMoY2VsbElkLCBucHRzLCBub2Rlcyk7Ci0gCi0gICAvLyAtLS0gY3Jl YXRlIGFsbCB0aGUgb3JkZXJlZCBsaXN0IG9mIG5vZGUgaWQncyBmb3IgZWFjaCBmYWNlCi1AQCAt MTk4MSw3ICsxOTgxLDcgQEAgdm9pZCBTTURTX0Rvd25IZXhhOjpnZXRPcmRlcmVkTm9kZXNPZkZh Y2UoaW50IGNlbGxJZCwgc3RkOjp2ZWN0b3I8dnRrSWRUeXBlPiYgb3IKLSAgIC8vTUVTU0FHRSgi Y2VsbElkID0gIiA8PCBjZWxsSWQpOwotIAotICAgdnRrSWRUeXBlIG5wdHMgPSAwOwotLSAgdnRr SWRUeXBlICpub2RlczsgLy8gd2lsbCByZWZlciB0byB0aGUgcG9pbnQgaWQncyBvZiB0aGUgdm9s dW1lCi0rICB2dGtJZFR5cGVQdHIgbm9kZXM7IC8vIHdpbGwgcmVmZXIgdG8gdGhlIHBvaW50IGlk J3Mgb2YgdGhlIHZvbHVtZQotICAgX2dyaWQtPkdldENlbGxQb2ludHModGhpcy0+X3Z0a0NlbGxJ ZHNbY2VsbElkXSwgbnB0cywgbm9kZXMpOwotIAotICAgc2V0PGludD4gdG9maW5kOwotQEAgLTIw MzYsNyArMjAzNiw3IEBAIHZvaWQgU01EU19Eb3duSGV4YTo6Y29tcHV0ZUZhY2VzV2l0aE5vZGVz KGludCBjZWxsSWQsIExpc3RFbGVtQnlOb2Rlc1R5cGUmIGZhY2VzCi0gICAvLyAtLS0gZmluZCBw b2ludCBpZCdzIG9mIHRoZSB2b2x1bWUKLSAKLSAgIHZ0a0lkVHlwZSBucHRzID0gMDsKLS0gIHZ0 a0lkVHlwZSAqbm9kZXM7IC8vIHdpbGwgcmVmZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2YgdGhlIHZv bHVtZQotKyAgdnRrSWRUeXBlUHRyIG5vZGVzOyAvLyB3aWxsIHJlZmVyIHRvIHRoZSBwb2ludCBp ZCdzIG9mIHRoZSB2b2x1bWUKLSAgIF9ncmlkLT5HZXRDZWxsUG9pbnRzKGNlbGxJZCwgbnB0cywg bm9kZXMpOwotIAotICAgLy8gLS0tIGNyZWF0ZSBhbGwgdGhlIG9yZGVyZWQgbGlzdCBvZiBub2Rl IGlkJ3MgZm9yIGVhY2ggZmFjZQotQEAgLTIxMTIsNyArMjExMiw3IEBAIHZvaWQgU01EU19Eb3du UXVhZEhleGE6OmdldE9yZGVyZWROb2Rlc09mRmFjZShpbnQgY2VsbElkLCBzdGQ6OnZlY3Rvcjx2 dGtJZFR5cGU+Ci0gICAvL01FU1NBR0UoImNlbGxJZCA9ICIgPDwgY2VsbElkKTsKLSAKLSAgIHZ0 a0lkVHlwZSBucHRzID0gMDsKLS0gIHZ0a0lkVHlwZSAqbm9kZXM7IC8vIHdpbGwgcmVmZXIgdG8g dGhlIHBvaW50IGlkJ3Mgb2YgdGhlIHZvbHVtZQotKyAgdnRrSWRUeXBlUHRyIG5vZGVzOyAvLyB3 aWxsIHJlZmVyIHRvIHRoZSBwb2ludCBpZCdzIG9mIHRoZSB2b2x1bWUKLSAgIF9ncmlkLT5HZXRD ZWxsUG9pbnRzKHRoaXMtPl92dGtDZWxsSWRzW2NlbGxJZF0sIG5wdHMsIG5vZGVzKTsKLSAKLSAg IHNldDxpbnQ+IHRvZmluZDsKLUBAIC0yMTY3LDcgKzIxNjcsNyBAQCB2b2lkIFNNRFNfRG93blF1 YWRIZXhhOjpjb21wdXRlRmFjZXNXaXRoTm9kZXMoaW50IGNlbGxJZCwgTGlzdEVsZW1CeU5vZGVz VHlwZSYgZgotICAgLy8gLS0tIGZpbmQgcG9pbnQgaWQncyBvZiB0aGUgdm9sdW1lCi0gCi0gICB2 dGtJZFR5cGUgbnB0cyA9IDA7Ci0tICB2dGtJZFR5cGUgKm5vZGVzOyAvLyB3aWxsIHJlZmVyIHRv IHRoZSBwb2ludCBpZCdzIG9mIHRoZSB2b2x1bWUKLSsgIHZ0a0lkVHlwZVB0ciBub2RlczsgLy8g d2lsbCByZWZlciB0byB0aGUgcG9pbnQgaWQncyBvZiB0aGUgdm9sdW1lCi0gICBfZ3JpZC0+R2V0 Q2VsbFBvaW50cyhjZWxsSWQsIG5wdHMsIG5vZGVzKTsKLSAKLSAgIC8vIC0tLSBjcmVhdGUgYWxs IHRoZSBvcmRlcmVkIGxpc3Qgb2Ygbm9kZSBpZCdzIGZvciBlYWNoIGZhY2UKLWRpZmYgLS1naXQg c3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfTWVzaC5jcHAgYi9zcmMvM3Jk UGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19NZXNoLmNwcAotaW5kZXggNjFjOGU3NTFk OTQuLjFlYWMyOTA3ZDNkIDEwMDY0NAotLS0tIGEvc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3Ny Yy9TTURTL1NNRFNfTWVzaC5jcHAKLSsrKyBiL3NyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMv U01EUy9TTURTX01lc2guY3BwCi1AQCAtNDc2OCw3ICs0NzY4LDExIEBAIHZvaWQgU01EU19NZXNo OjpkdW1wR3JpZChzdHJpbmcgZmljZHVtcCkKLSAgICAgICAgIGZpY2NvbiA8PCBlbmRsOwotICAg fQotICAgZmljY29uIDw8ICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBjb25uZWN0 aXZpdHkgIiA8PCAgbmJQb2ludHMgPDwgZW5kbDsKLS0gICAgICAgIHZ0a0NlbGxMaW5rcyAqbGlu a3MgPSBteUdyaWQtPkdldENlbGxMaW5rcygpOwotKyNpZmRlZiBWVEtfQ0VMTF9BUlJBWV9WMgot KyAgdnRrQ2VsbExpbmtzICpsaW5rcyA9IHN0YXRpY19jYXN0PHZ0a0NlbGxMaW5rcyo+KG15R3Jp ZC0+R2V0Q2VsbExpbmtzKCkpOwotKyNlbHNlCi0rICB2dGtDZWxsTGlua3MgKmxpbmtzID0gbXlH cmlkLT5HZXRDZWxsTGlua3MoKTsKLSsjZW5kaWYKLSAgIGZvciAoaW50IGk9MDsgaTxuYlBvaW50 czsgaSsrKQotICAgewotICAgICAgICAgaW50IG5jZWxscyA9IGxpbmtzLT5HZXROY2VsbHMoaSk7 Ci1kaWZmIC0tZ2l0IHNyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX01lc2gw REVsZW1lbnQuY3BwIGIvc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfTWVz aDBERWxlbWVudC5jcHAKLWluZGV4IDk1NDM4ZWFiMDY0Li4wZGYzMmUzYjk3YyAxMDA2NDQKLS0t LSBhL3NyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX01lc2gwREVsZW1lbnQu Y3BwCi0rKysgYi9zcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19NZXNoMERF bGVtZW50LmNwcAotQEAgLTE0Niw2ICsxNDYsMTcgQEAgYm9vbCBTTURTX01lc2gwREVsZW1lbnQ6 OkNoYW5nZU5vZGVzKGNvbnN0IFNNRFNfTWVzaE5vZGUqIG5vZGVzW10sIGNvbnN0IGludCBuYk4K LSAgIGlmICggbmJOb2RlcyA9PSAxICkKLSAgIHsKLSAgICAgdnRrVW5zdHJ1Y3R1cmVkR3JpZCog Z3JpZCA9IFNNRFNfTWVzaDo6X21lc2hMaXN0W215TWVzaElkXS0+Z2V0R3JpZCgpOwotKyNpZmRl ZiBWVEtfQ0VMTF9BUlJBWV9WMgotKyAgICB2dGtOZXc8dnRrSWRMaXN0PiBjZWxsUG9pbnRzOwot KyAgICBncmlkLT5HZXRDZWxsUG9pbnRzKG15VnRrSUQsIGNlbGxQb2ludHMuR2V0UG9pbnRlcigp KTsKLSsgICAgaWYgKG5iTm9kZXMgIT0gY2VsbFBvaW50cy0+R2V0TnVtYmVyT2ZJZHMoKSkKLSsg ICAgewotKyAgICAgIE1FU1NBR0UoIkNoYW5nZU5vZGVzIHByb2JsZW06IG5vdCB0aGUgc2FtZSBu dW1iZXIgb2Ygbm9kZXMgIiA8PCBjZWxsUG9pbnRzLT5HZXROdW1iZXJPZklkcygpIDw8ICIgLT4g IiA8PCBuYk5vZGVzKTsKLSsgICAgICByZXR1cm4gZmFsc2U7Ci0rICAgIH0KLSsgICAgbXlOb2Rl ID0gbm9kZXNbMF07Ci0rICAgIGNlbGxQb2ludHMtPlNldElkKDAsIG15Tm9kZS0+Z2V0VnRrSWQo KSk7Ci0rI2Vsc2UKLSAgICAgdnRrSWRUeXBlIG5wdHMgPSAwOwotICAgICB2dGtJZFR5cGUqIHB0 cyA9IDA7Ci0gICAgIGdyaWQtPkdldENlbGxQb2ludHMobXlWdGtJRCwgbnB0cywgcHRzKTsKLUBA IC0xNTYsNiArMTY3LDcgQEAgYm9vbCBTTURTX01lc2gwREVsZW1lbnQ6OkNoYW5nZU5vZGVzKGNv bnN0IFNNRFNfTWVzaE5vZGUqIG5vZGVzW10sIGNvbnN0IGludCBuYk4KLSAgICAgfQotICAgICBt eU5vZGUgPSBub2Rlc1swXTsKLSAgICAgcHRzWzBdID0gbXlOb2RlLT5nZXRWdGtJZCgpOwotKyNl bmRpZgotIAotICAgICBTTURTX01lc2g6Ol9tZXNoTGlzdFtteU1lc2hJZF0tPnNldE15TW9kaWZp ZWQoKTsKLSAgICAgcmV0dXJuIHRydWU7Ci1kaWZmIC0tZ2l0IHNyYy8zcmRQYXJ0eS9zYWxvbWVz bWVzaC9zcmMvU01EUy9TTURTX01lc2hOb2RlLmNwcCBiL3NyYy8zcmRQYXJ0eS9zYWxvbWVzbWVz aC9zcmMvU01EUy9TTURTX01lc2hOb2RlLmNwcAotaW5kZXggZjY0N2E1ZjFiOGYuLjViOTAzYzhm YjU1IDEwMDY0NAotLS0tIGEvc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNf TWVzaE5vZGUuY3BwCi0rKysgYi9zcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01E U19NZXNoTm9kZS5jcHAKLUBAIC0xOTEsNyArMTkxLDcgQEAgY2xhc3MgU01EU19NZXNoTm9kZV9N eUludkl0ZXJhdG9yOiBwdWJsaWMgU01EU19FbGVtSXRlcmF0b3IKLSBTTURTX0VsZW1JdGVyYXRv clB0ciBTTURTX01lc2hOb2RlOjoKLSBHZXRJbnZlcnNlRWxlbWVudEl0ZXJhdG9yKFNNRFNBYnNf RWxlbWVudFR5cGUgdHlwZSkgY29uc3QKLSB7Ci0tICB2dGtDZWxsTGlua3M6OkxpbmsgbCA9IFNN RFNfTWVzaDo6X21lc2hMaXN0W215TWVzaElkXS0+Z2V0R3JpZCgpLT5HZXRDZWxsTGlua3MoKS0+ R2V0TGluayhteVZ0a0lEKTsKLSsgIHZ0a0NlbGxMaW5rczo6TGluayBsID0gc3RhdGljX2Nhc3Q8 dnRrQ2VsbExpbmtzKj4oU01EU19NZXNoOjpfbWVzaExpc3RbbXlNZXNoSWRdLT5nZXRHcmlkKCkt PkdldENlbGxMaW5rcygpKS0+R2V0TGluayhteVZ0a0lEKTsKLSAgIC8vTUVTU0FHRSgibXlJRCAi IDw8IG15SUQgPDwgIiBuY2VsbHMgIiA8PCBsLm5jZWxscyk7Ci0gICByZXR1cm4gU01EU19FbGVt SXRlcmF0b3JQdHIobmV3IFNNRFNfTWVzaE5vZGVfTXlJbnZJdGVyYXRvcihTTURTX01lc2g6Ol9t ZXNoTGlzdFtteU1lc2hJZF0sIGwuY2VsbHMsIGwubmNlbGxzLCB0eXBlKSk7Ci0gfQotQEAgLTI1 MSw3ICsyNTEsNyBAQCBlbGVtZW50c0l0ZXJhdG9yKFNNRFNBYnNfRWxlbWVudFR5cGUgdHlwZSkg Y29uc3QKLSAgICAgcmV0dXJuIFNNRFNfTWVzaEVsZW1lbnQ6OmVsZW1lbnRzSXRlcmF0b3IoU01E U0Fic19Ob2RlKTsKLSAgIGVsc2UKLSAgIHsKLS0gICAgdnRrQ2VsbExpbmtzOjpMaW5rIGwgPSBT TURTX01lc2g6Ol9tZXNoTGlzdFtteU1lc2hJZF0tPmdldEdyaWQoKS0+R2V0Q2VsbExpbmtzKCkt PkdldExpbmsobXlWdGtJRCk7Ci0rICAgIHZ0a0NlbGxMaW5rczo6TGluayBsID0gc3RhdGljX2Nh c3Q8dnRrQ2VsbExpbmtzKj4oU01EU19NZXNoOjpfbWVzaExpc3RbbXlNZXNoSWRdLT5nZXRHcmlk KCktPkdldENlbGxMaW5rcygpKS0+R2V0TGluayhteVZ0a0lEKTsKLSAgICAgcmV0dXJuIFNNRFNf RWxlbUl0ZXJhdG9yUHRyKG5ldyBTTURTX01lc2hOb2RlX015SXRlcmF0b3IoU01EU19NZXNoOjpf bWVzaExpc3RbbXlNZXNoSWRdLCBsLmNlbGxzLCBsLm5jZWxscywgdHlwZSkpOwotICAgfQotIH0K LUBAIC0zNTAsNyArMzUwLDcgQEAgdm9pZCBTTURTX01lc2hOb2RlOjpBZGRJbnZlcnNlRWxlbWVu dChjb25zdCBTTURTX01lc2hFbGVtZW50KiBNRSkKLSAgIGNvbnN0IFNNRFNfTWVzaENlbGwgKmNl bGwgPSBkeW5hbWljX2Nhc3Q8Y29uc3QgU01EU19NZXNoQ2VsbCo+IChNRSk7Ci0gICBhc3NlcnQo Y2VsbCk7Ci0gICBTTURTX1Vuc3RydWN0dXJlZEdyaWQqIGdyaWQgPSBTTURTX01lc2g6Ol9tZXNo TGlzdFtteU1lc2hJZF0tPmdldEdyaWQoKTsKLS0gIHZ0a0NlbGxMaW5rcyAqTGlua3MgPSBncmlk LT5HZXRDZWxsTGlua3MoKTsKLSsgIHZ0a0NlbGxMaW5rcyAqTGlua3MgPSBzdGF0aWNfY2FzdDx2 dGtDZWxsTGlua3MqPihncmlkLT5HZXRDZWxsTGlua3MoKSk7Ci0gICBMaW5rcy0+UmVzaXplQ2Vs bExpc3QobXlWdGtJRCwgMSk7Ci0gICBMaW5rcy0+QWRkQ2VsbFJlZmVyZW5jZShjZWxsLT5nZXRW dGtJZCgpLCBteVZ0a0lEKTsKLSB9Ci1AQCAtMzY2LDcgKzM2Niw3IEBAIHZvaWQgU01EU19NZXNo Tm9kZTo6Q2xlYXJJbnZlcnNlRWxlbWVudHMoKQotIAotIGJvb2wgU01EU19NZXNoTm9kZTo6ZW1w dHlJbnZlcnNlRWxlbWVudHMoKQotIHsKLS0gIHZ0a0NlbGxMaW5rczo6TGluayBsID0gU01EU19N ZXNoOjpfbWVzaExpc3RbbXlNZXNoSWRdLT5nZXRHcmlkKCktPkdldENlbGxMaW5rcygpLT5HZXRM aW5rKG15VnRrSUQpOwotKyAgdnRrQ2VsbExpbmtzOjpMaW5rIGwgPSBzdGF0aWNfY2FzdDx2dGtD ZWxsTGlua3MqPihTTURTX01lc2g6Ol9tZXNoTGlzdFtteU1lc2hJZF0tPmdldEdyaWQoKS0+R2V0 Q2VsbExpbmtzKCkpLT5HZXRMaW5rKG15VnRrSUQpOwotICAgcmV0dXJuIChsLm5jZWxscyA9PSAw KTsKLSB9Ci0gCi1AQCAtMzc4LDcgKzM3OCw3IEBAIGJvb2wgU01EU19NZXNoTm9kZTo6ZW1wdHlJ bnZlcnNlRWxlbWVudHMoKQotIAotIGludCBTTURTX01lc2hOb2RlOjpOYkludmVyc2VFbGVtZW50 cyhTTURTQWJzX0VsZW1lbnRUeXBlIHR5cGUpIGNvbnN0Ci0gewotLSAgdnRrQ2VsbExpbmtzOjpM aW5rIGwgPSBTTURTX01lc2g6Ol9tZXNoTGlzdFtteU1lc2hJZF0tPmdldEdyaWQoKS0+R2V0Q2Vs bExpbmtzKCktPkdldExpbmsobXlWdGtJRCk7Ci0rICB2dGtDZWxsTGlua3M6OkxpbmsgbCA9IHN0 YXRpY19jYXN0PHZ0a0NlbGxMaW5rcyo+KFNNRFNfTWVzaDo6X21lc2hMaXN0W215TWVzaElkXS0+ Z2V0R3JpZCgpLT5HZXRDZWxsTGlua3MoKSktPkdldExpbmsobXlWdGtJRCk7Ci0gCi0gICBpZiAo IHR5cGUgPT0gU01EU0Fic19BbGwgKQotICAgICByZXR1cm4gbC5uY2VsbHM7Ci1kaWZmIC0tZ2l0 IHNyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX1Vuc3RydWN0dXJlZEdyaWQu Y3BwIGIvc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfVW5zdHJ1Y3R1cmVk R3JpZC5jcHAKLWluZGV4IGZiZDkwM2IxZTc0Li5mZjJiODFlOTY5NCAxMDA2NDQKLS0tLSBhL3Ny Yy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX1Vuc3RydWN0dXJlZEdyaWQuY3Bw Ci0rKysgYi9zcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19VbnN0cnVjdHVy ZWRHcmlkLmNwcAotQEAgLTEzOSw4ICsxMzksOCBAQCBpbnQgU01EU19VbnN0cnVjdHVyZWRHcmlk OjpJbnNlcnROZXh0TGlua2VkQ2VsbChpbnQgdHlwZSwgaW50IG5wdHMsIHZ0a0lkVHlwZSAqcAot ICAgZm9yICg7IGl0ICE9IHNldE9mTm9kZXMuZW5kKCk7ICsraXQpCi0gICAgIHsKLSAgICAgICAv L01FU1NBR0UoInJldmVyc2UgbGluayBmb3Igbm9kZSAiIDw8ICppdCA8PCAiIGNlbGwgIiA8PCBj ZWxsaWQpOwotLSAgICAgIHRoaXMtPkxpbmtzLT5SZXNpemVDZWxsTGlzdCgqaXQsIDEpOwotLSAg ICAgIHRoaXMtPkxpbmtzLT5BZGRDZWxsUmVmZXJlbmNlKGNlbGxpZCwgKml0KTsKLSsgICAgICB0 aGlzLT5HZXRMaW5rcygpLT5SZXNpemVDZWxsTGlzdCgqaXQsIDEpOwotKyAgICAgIHRoaXMtPkdl dExpbmtzKCktPkFkZENlbGxSZWZlcmVuY2UoY2VsbGlkLCAqaXQpOwotICAgICB9Ci0gCi0gICBy ZXR1cm4gY2VsbGlkOwotQEAgLTMzMiw5ICszMzIsMTMgQEAgdm9pZCBTTURTX1Vuc3RydWN0dXJl ZEdyaWQ6OmNvcHlCbG9jKHZ0a1Vuc2lnbmVkQ2hhckFycmF5ICpuZXdUeXBlcywKLSAgICAgewot ICAgICAgIG5ld1R5cGVzLT5TZXRWYWx1ZShhbHJlYWR5Q29waWVkLCB0aGlzLT5UeXBlcy0+R2V0 VmFsdWUoaikpOwotICAgICAgIGlkQ2VsbHNPbGRUb05ld1tqXSA9IGFscmVhZHlDb3BpZWQ7IC8v IG9sZCB2dGtJZCAtLT4gbmV3IHZ0a0lkCi0rI2lmZGVmIFZUS19DRUxMX0FSUkFZX1YyCi0rICAg ICAgdnRrSWRUeXBlIG9sZExvYyA9IHRoaXMtPkdldENlbGxMb2NhdGlvbnNBcnJheSgpLT5HZXRW YWx1ZShqKTsKLSsjZWxzZQotICAgICAgIHZ0a0lkVHlwZSBvbGRMb2MgPSB0aGlzLT5Mb2NhdGlv bnMtPkdldFZhbHVlKGopOwotKyNlbmRpZgotICAgICAgIHZ0a0lkVHlwZSBuYnB0czsKLS0gICAg ICB2dGtJZFR5cGUgKm9sZFB0c0NlbGwgPSAwOwotKyAgICAgIHZ0a0lkVHlwZVB0ciBvbGRQdHND ZWxsID0gMDsKLSAgICAgICB0aGlzLT5Db25uZWN0aXZpdHktPkdldENlbGwob2xkTG9jLCBuYnB0 cywgb2xkUHRzQ2VsbCk7Ci0gICAgICAgYXNzZXJ0KG5icHRzIDwgTkJNQVhOT0RFU0lOQ0VMTCk7 Ci0gICAgICAgLy9NRVNTQUdFKGogPDwgIiAiIDw8IGFscmVhZHlDb3BpZWQgPDwgIiAiIDw8IChp bnQpdGhpcy0+VHlwZXMtPkdldFZhbHVlKGopIDw8ICIgIiA8PCBvbGRMb2MgPDwgIiAiIDw8IG5i cHRzICk7Ci1AQCAtOTUyLDYgKzk1NiwyMSBAQCB2b2lkIFNNRFNfVW5zdHJ1Y3R1cmVkR3JpZDo6 R2V0Tm9kZUlkcyhzdGQ6OnNldDxpbnQ+JiBub2RlU2V0LCBpbnQgZG93bklkLCB1bnNpZwotICAq LwotIHZvaWQgU01EU19VbnN0cnVjdHVyZWRHcmlkOjpNb2RpZnlDZWxsTm9kZXMoaW50IHZ0a1Zv bElkLCBzdGQ6Om1hcDxpbnQsIGludD4gbG9jYWxDbG9uZWROb2RlSWRzKQotIHsKLSsjaWZkZWYg VlRLX0NFTExfQVJSQVlfVjIKLSsgIHZ0a05ldzx2dGtJZExpc3Q+IGNlbGxQb2ludHM7Ci0rICB0 aGlzLT5HZXRDZWxsUG9pbnRzKHZ0a1ZvbElkLCBjZWxsUG9pbnRzLkdldFBvaW50ZXIoKSk7Ci0r ICBmb3IgKHZ0a0lkVHlwZSBpID0gMDsgaSA8IGNlbGxQb2ludHMtPkdldE51bWJlck9mSWRzKCk7 IGkrKykKLSsgICAgewotKyAgICAgIGlmIChsb2NhbENsb25lZE5vZGVJZHMuY291bnQoY2VsbFBv aW50cy0+R2V0SWQoaSkpKQotKyAgICAgICAgewotKyAgICAgICAgICB2dGtJZFR5cGUgb2xkcHQg PSBjZWxsUG9pbnRzLT5HZXRJZChpKTsKLSsgICAgICAgICAgY2VsbFBvaW50cy0+U2V0SWQoaSwg bG9jYWxDbG9uZWROb2RlSWRzW29sZHB0XSk7Ci0rICAgICAgICAgIC8vTUVTU0FHRShvbGRwdCA8 PCAiIC0tPiAiIDw8IHB0c1tpXSk7Ci0rICAgICAgICAgIC8vdGhpcy0+UmVtb3ZlUmVmZXJlbmNl VG9DZWxsKG9sZHB0LCB2dGtWb2xJZCk7Ci0rICAgICAgICAgIC8vdGhpcy0+QWRkUmVmZXJlbmNl VG9DZWxsKHB0c1tpXSwgdnRrVm9sSWQpOwotKyAgICAgICAgfQotKyAgICB9Ci0rI2Vsc2UKLSAg IHZ0a0lkVHlwZSBucHRzID0gMDsKLSAgIHZ0a0lkVHlwZSAqcHRzOyAvLyB3aWxsIHJlZmVyIHRv IHRoZSBwb2ludCBpZCdzIG9mIHRoZSBmYWNlCi0gICB0aGlzLT5HZXRDZWxsUG9pbnRzKHZ0a1Zv bElkLCBucHRzLCBwdHMpOwotQEAgLTk2Niw2ICs5ODUsNyBAQCB2b2lkIFNNRFNfVW5zdHJ1Y3R1 cmVkR3JpZDo6TW9kaWZ5Q2VsbE5vZGVzKGludCB2dGtWb2xJZCwgc3RkOjptYXA8aW50LCBpbnQ+ IGxvYwotICAgICAgICAgICAvL3RoaXMtPkFkZFJlZmVyZW5jZVRvQ2VsbChwdHNbaV0sIHZ0a1Zv bElkKTsKLSAgICAgICAgIH0KLSAgICAgfQotKyNlbmRpZgotIH0KLSAKLSAvKiEgcmVvcmRlciB0 aGUgbm9kZXMgb2YgYSBmYWNlCi1AQCAtOTk1LDExICsxMDE1LDIwIEBAIHZvaWQgU01EU19VbnN0 cnVjdHVyZWRHcmlkOjpCdWlsZExpbmtzKCkKLSAgICAgdGhpcy0+TGlua3MtPlVuUmVnaXN0ZXIo dGhpcyk7Ci0gICAgIH0KLSAKLSsjaWZkZWYgVlRLX0NFTExfQVJSQVlfVjIKLSsgIHRoaXMtPkxp bmtzID0gU01EU19DZWxsTGlua3M6Ok5ldygpOwotKyAgR2V0TGlua3MoKS0+QWxsb2NhdGUodGhp cy0+R2V0TnVtYmVyT2ZQb2ludHMoKSk7Ci0rICBHZXRMaW5rcygpLT5SZWdpc3Rlcih0aGlzKTsK LSsvL0ZJWE1FOiB2dGs5Ci0rICBHZXRMaW5rcygpLT5CdWlsZExpbmtzKHRoaXMpOwotKyAgR2V0 TGlua3MoKS0+RGVsZXRlKCk7Ci0rI2Vsc2UKLSAgIHRoaXMtPkxpbmtzID0gU01EU19DZWxsTGlu a3M6Ok5ldygpOwotICAgdGhpcy0+TGlua3MtPkFsbG9jYXRlKHRoaXMtPkdldE51bWJlck9mUG9p bnRzKCkpOwotICAgdGhpcy0+TGlua3MtPlJlZ2lzdGVyKHRoaXMpOwotICAgdGhpcy0+TGlua3Mt PkJ1aWxkTGlua3ModGhpcywgdGhpcy0+Q29ubmVjdGl2aXR5KTsKLSAgIHRoaXMtPkxpbmtzLT5E ZWxldGUoKTsKLSsjZW5kaWYKLSB9Ci0gCi0gLyohIENyZWF0ZSBhIHZvbHVtZSAocHJpc20gb3Ig aGV4YWhlZHJvbikgYnkgZHVwbGljYXRpb24gb2YgYSBmYWNlLgotZGlmZiAtLWdpdCBzcmMvM3Jk UGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19WdGtDZWxsSXRlcmF0b3IuY3BwIGIvc3Jj LzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfVnRrQ2VsbEl0ZXJhdG9yLmNwcAot aW5kZXggZGViMDU5ODVmMDAuLjYzYjZlYWJiNzA0IDEwMDY0NAotLS0tIGEvc3JjLzNyZFBhcnR5 L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfVnRrQ2VsbEl0ZXJhdG9yLmNwcAotKysrIGIvc3Jj LzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfVnRrQ2VsbEl0ZXJhdG9yLmNwcAot QEAgLTMzLDcgKzMzLDggQEAgU01EU19WdGtDZWxsSXRlcmF0b3I6OlNNRFNfVnRrQ2VsbEl0ZXJh dG9yKFNNRFNfTWVzaCogbWVzaCwgaW50IHZ0a0NlbGxJZCwgU01EU0EKLSAgIH0KLSAgIGVsc2UK LSAgIHsKLS0gICAgdnRrSWRUeXBlIG5wdHMsICpwdHM7Ci0rICAgIHZ0a0lkVHlwZSBucHRzOwot KyAgICB2dGtJZFR5cGVQdHIgcHRzOwotICAgICBncmlkLT5HZXRDZWxsUG9pbnRzKCBfY2VsbElk LCBucHRzLCBwdHMgKTsKLSAgICAgX3Z0a0lkTGlzdC0+U2V0TnVtYmVyT2ZJZHMoIF9uYk5vZGVz ID0gbnB0cyApOwotICAgICBmb3IgKGludCBpID0gMDsgaSA8IF9uYk5vZGVzOyBpKyspCi1AQCAt NjcsNyArNjgsNyBAQCBTTURTX1Z0a0NlbGxJdGVyYXRvclRvVU5WOjpTTURTX1Z0a0NlbGxJdGVy YXRvclRvVU5WKFNNRFNfTWVzaCogbWVzaCwgaW50IHZ0a0NlbAotICAgLy9NRVNTQUdFKCJTTURT X1Z0a0NlbGxJbnRlcmxhY2VkSXRlcmF0b3IgKFVOVikiIDw8IF90eXBlKTsKLSAKLSAgIF92dGtJ ZExpc3QgPSB2dGtJZExpc3Q6Ok5ldygpOwotLSAgdnRrSWRUeXBlKiBwdHM7Ci0rICB2dGtJZFR5 cGVQdHIgcHRzOwotICAgdnRrSWRUeXBlIG5wdHM7Ci0gICB2dGtVbnN0cnVjdHVyZWRHcmlkKiBn cmlkID0gX21lc2gtPmdldEdyaWQoKTsKLSAgIGdyaWQtPkdldENlbGxQb2ludHMoKHZ0a0lkVHlw ZSlfY2VsbElkLCBucHRzLCBwdHMpOwotQEAgLTE4Miw3ICsxODMsNyBAQCBTTURTX1Z0a0NlbGxJ dGVyYXRvclBvbHlIOjpTTURTX1Z0a0NlbGxJdGVyYXRvclBvbHlIKFNNRFNfTWVzaCogbWVzaCwg aW50IHZ0a0NlbAotICAgewotICAgICAvL01FU1NBR0UoIlNNRFNfVnRrQ2VsbEl0ZXJhdG9yIFBv bHloZWRyYSIpOwotICAgICB2dGtJZFR5cGUgbkZhY2VzID0gMDsKLS0gICAgdnRrSWRUeXBlKiBw dElkcyA9IDA7Ci0rICAgIHZ0a0lkVHlwZVB0ciBwdElkcyA9IDA7Ci0gICAgIGdyaWQtPkdldEZh Y2VTdHJlYW0oX2NlbGxJZCwgbkZhY2VzLCBwdElkcyk7Ci0gICAgIGludCBpZCA9IDA7Ci0gICAg IF9uYk5vZGVzSW5GYWNlcyA9IDA7Ci1kaWZmIC0tZ2l0IHNyYy8zcmRQYXJ0eS9zYWxvbWVzbWVz aC9zcmMvU01EUy9TTURTX1Z0a0VkZ2UuY3BwIGIvc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3Ny Yy9TTURTL1NNRFNfVnRrRWRnZS5jcHAKLWluZGV4IDk3ODZhYmY5YWFlLi42ZDc3MmEzY2Q0YSAx MDA2NDQKLS0tLSBhL3NyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX1Z0a0Vk Z2UuY3BwCi0rKysgYi9zcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19WdGtF ZGdlLmNwcAotQEAgLTY3LDYgKzY3LDE5IEBAIGJvb2wgU01EU19WdGtFZGdlOjpDaGFuZ2VOb2Rl cyhjb25zdCBTTURTX01lc2hOb2RlICogbm9kZTEsIGNvbnN0IFNNRFNfTWVzaE5vZGUKLSBib29s IFNNRFNfVnRrRWRnZTo6Q2hhbmdlTm9kZXMoY29uc3QgU01EU19NZXNoTm9kZSogbm9kZXNbXSwg Y29uc3QgaW50IG5iTm9kZXMpCi0gewotICAgdnRrVW5zdHJ1Y3R1cmVkR3JpZCogZ3JpZCA9IFNN RFNfTWVzaDo6X21lc2hMaXN0W215TWVzaElkXS0+Z2V0R3JpZCgpOwotKyNpZmRlZiBWVEtfQ0VM TF9BUlJBWV9WMgotKyAgdnRrTmV3PHZ0a0lkTGlzdD4gY2VsbFBvaW50czsKLSsgIGdyaWQtPkdl dENlbGxQb2ludHMobXlWdGtJRCwgY2VsbFBvaW50cy5HZXRQb2ludGVyKCkpOwotKyAgaWYgKG5i Tm9kZXMgIT0gY2VsbFBvaW50cy0+R2V0TnVtYmVyT2ZJZHMoKSkKLSsgICAgewotKyAgICAgIE1F U1NBR0UoIkNoYW5nZU5vZGVzIHByb2JsZW06IG5vdCB0aGUgc2FtZSBudW1iZXIgb2Ygbm9kZXMg IiA8PCBjZWxsUG9pbnRzLT5HZXROdW1iZXJPZklkcygpIDw8ICIgLT4gIiA8PCBuYk5vZGVzKTsK LSsgICAgICByZXR1cm4gZmFsc2U7Ci0rICAgIH0KLSsgIGZvciAoaW50IGkgPSAwOyBpIDwgbmJO b2RlczsgaSsrKQotKyAgICB7Ci0rICAgICAgY2VsbFBvaW50cy0+U2V0SWQoaSwgbm9kZXNbaV0t PmdldFZ0a0lkKCkpOwotKyAgICB9Ci0rI2Vsc2UKLSAgIHZ0a0lkVHlwZSBucHRzID0gMDsKLSAg IHZ0a0lkVHlwZSogcHRzID0gMDsKLSAgIGdyaWQtPkdldENlbGxQb2ludHMobXlWdGtJRCwgbnB0 cywgcHRzKTsKLUBAIC03OSw2ICs5Miw3IEBAIGJvb2wgU01EU19WdGtFZGdlOjpDaGFuZ2VOb2Rl cyhjb25zdCBTTURTX01lc2hOb2RlKiBub2Rlc1tdLCBjb25zdCBpbnQgbmJOb2RlcykKLSAgICAg ewotICAgICAgIHB0c1tpXSA9IG5vZGVzW2ldLT5nZXRWdGtJZCgpOwotICAgICB9Ci0rI2VuZGlm Ci0gICBTTURTX01lc2g6Ol9tZXNoTGlzdFtteU1lc2hJZF0tPnNldE15TW9kaWZpZWQoKTsKLSAg IHJldHVybiB0cnVlOwotIH0KLUBAIC04Nyw3ICsxMDEsNyBAQCBib29sIFNNRFNfVnRrRWRnZTo6 SXNNZWRpdW1Ob2RlKGNvbnN0IFNNRFNfTWVzaE5vZGUqIG5vZGUpIGNvbnN0Ci0gewotICAgdnRr VW5zdHJ1Y3R1cmVkR3JpZCogZ3JpZCA9IFNNRFNfTWVzaDo6X21lc2hMaXN0W215TWVzaElkXS0+ Z2V0R3JpZCgpOwotICAgdnRrSWRUeXBlIG5wdHMgPSAwOwotLSAgdnRrSWRUeXBlKiBwdHMgPSAw OwotKyAgdnRrSWRUeXBlUHRyIHB0cyA9IDA7Ci0gICBncmlkLT5HZXRDZWxsUG9pbnRzKG15VnRr SUQsIG5wdHMsIHB0cyk7Ci0gICAvL01FU1NBR0UoIklzTWVkaXVtTm9kZSAiIDw8IG5wdHMgIDw8 ICIgIiA8PCAobm9kZS0+Z2V0VnRrSWQoKSA9PSBwdHNbbnB0cy0xXSkpOwotICAgcmV0dXJuICgo bnB0cyA9PSAzKSAmJiAobm9kZS0+Z2V0VnRrSWQoKSA9PSBwdHNbMl0pKTsKLUBAIC0xMzcsNyAr MTUxLDggQEAgY29uc3QgU01EU19NZXNoTm9kZSoKLSBTTURTX1Z0a0VkZ2U6OkdldE5vZGUoY29u c3QgaW50IGluZCkgY29uc3QKLSB7Ci0gICB2dGtVbnN0cnVjdHVyZWRHcmlkKiBncmlkID0gU01E U19NZXNoOjpfbWVzaExpc3RbbXlNZXNoSWRdLT5nZXRHcmlkKCk7Ci0tICB2dGtJZFR5cGUgbnB0 cywgKnB0czsKLSsgIHZ0a0lkVHlwZSBucHRzOwotKyAgdnRrSWRUeXBlUHRyIHB0czsKLSAgIGdy aWQtPkdldENlbGxQb2ludHMoIHRoaXMtPm15VnRrSUQsIG5wdHMsIHB0cyApOwotICAgcmV0dXJu IFNNRFNfTWVzaDo6X21lc2hMaXN0W215TWVzaElkXS0+RmluZE5vZGVWdGsoIHB0c1sgaW5kIF0p OwotIH0KLWRpZmYgLS1naXQgc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNf VnRrRmFjZS5jcHAgYi9zcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19WdGtG YWNlLmNwcAotaW5kZXggMTM4OWUwZDM1ODUuLmNiOTgxYmZiMThlIDEwMDY0NAotLS0tIGEvc3Jj LzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfVnRrRmFjZS5jcHAKLSsrKyBiL3Ny Yy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX1Z0a0ZhY2UuY3BwCi1AQCAtMTAx LDYgKzEwMSwxOSBAQCB2b2lkIFNNRFNfVnRrRmFjZTo6aW5pdFF1YWRQb2x5KGNvbnN0IHN0ZDo6 dmVjdG9yPHZ0a0lkVHlwZT4mIG5vZGVJZHMsIFNNRFNfTWVzaAotIGJvb2wgU01EU19WdGtGYWNl OjpDaGFuZ2VOb2Rlcyhjb25zdCBTTURTX01lc2hOb2RlKiBub2Rlc1tdLCBjb25zdCBpbnQgbmJO b2RlcykKLSB7Ci0gICB2dGtVbnN0cnVjdHVyZWRHcmlkKiBncmlkID0gU01EU19NZXNoOjpfbWVz aExpc3RbbXlNZXNoSWRdLT5nZXRHcmlkKCk7Ci0rI2lmZGVmIFZUS19DRUxMX0FSUkFZX1YyCi0r ICB2dGtOZXc8dnRrSWRMaXN0PiBjZWxsUG9pbnRzOwotKyAgZ3JpZC0+R2V0Q2VsbFBvaW50cyht eVZ0a0lELCBjZWxsUG9pbnRzLkdldFBvaW50ZXIoKSk7Ci0rICBpZiAobmJOb2RlcyAhPSBjZWxs UG9pbnRzLT5HZXROdW1iZXJPZklkcygpKQotKyAgICB7Ci0rICAgICAgTUVTU0FHRSgiQ2hhbmdl Tm9kZXMgcHJvYmxlbTogbm90IHRoZSBzYW1lIG51bWJlciBvZiBub2RlcyAiIDw8IGNlbGxQb2lu dHMtPkdldE51bWJlck9mSWRzKCkgPDwgIiAtPiAiIDw8IG5iTm9kZXMpOwotKyAgICAgIHJldHVy biBmYWxzZTsKLSsgICAgfQotKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBuYk5vZGVzOyBpKyspCi0r ICAgIHsKLSsgICAgICBjZWxsUG9pbnRzLT5TZXRJZChpLCBub2Rlc1tpXS0+Z2V0VnRrSWQoKSk7 Ci0rICAgIH0KLSsjZWxzZQotICAgdnRrSWRUeXBlIG5wdHMgPSAwOwotICAgdnRrSWRUeXBlKiBw dHMgPSAwOwotICAgZ3JpZC0+R2V0Q2VsbFBvaW50cyhteVZ0a0lELCBucHRzLCBwdHMpOwotQEAg LTExMyw2ICsxMjYsNyBAQCBib29sIFNNRFNfVnRrRmFjZTo6Q2hhbmdlTm9kZXMoY29uc3QgU01E U19NZXNoTm9kZSogbm9kZXNbXSwgY29uc3QgaW50IG5iTm9kZXMpCi0gICAgIHsKLSAgICAgICBw dHNbaV0gPSBub2Rlc1tpXS0+Z2V0VnRrSWQoKTsKLSAgICAgfQotKyNlbmRpZgotICAgU01EU19N ZXNoOjpfbWVzaExpc3RbbXlNZXNoSWRdLT5zZXRNeU1vZGlmaWVkKCk7Ci0gICByZXR1cm4gdHJ1 ZTsKLSB9Ci1AQCAtMTczLDcgKzE4Nyw4IEBAIGNvbnN0IFNNRFNfTWVzaE5vZGUqCi0gU01EU19W dGtGYWNlOjpHZXROb2RlKGNvbnN0IGludCBpbmQpIGNvbnN0Ci0gewotICAgdnRrVW5zdHJ1Y3R1 cmVkR3JpZCogZ3JpZCA9IFNNRFNfTWVzaDo6X21lc2hMaXN0W215TWVzaElkXS0+Z2V0R3JpZCgp OwotLSAgdnRrSWRUeXBlIG5wdHMsICpwdHM7Ci0rICB2dGtJZFR5cGUgbnB0czsKLSsgIHZ0a0lk VHlwZVB0ciBwdHM7Ci0gICBncmlkLT5HZXRDZWxsUG9pbnRzKCB0aGlzLT5teVZ0a0lELCBucHRz LCBwdHMgKTsKLSAgIHJldHVybiBTTURTX01lc2g6Ol9tZXNoTGlzdFtteU1lc2hJZF0tPkZpbmRO b2RlVnRrKCBwdHNbIGluZCBdKTsKLSB9Ci1AQCAtMTg2LDcgKzIwMSw4IEBAIFNNRFNfVnRrRmFj ZTo6R2V0Tm9kZShjb25zdCBpbnQgaW5kKSBjb25zdAotIGludCBTTURTX1Z0a0ZhY2U6OkdldE5v ZGVJbmRleCggY29uc3QgU01EU19NZXNoTm9kZSogbm9kZSApIGNvbnN0Ci0gewotICAgdnRrVW5z dHJ1Y3R1cmVkR3JpZCogZ3JpZCA9IFNNRFNfTWVzaDo6X21lc2hMaXN0W215TWVzaElkXS0+Z2V0 R3JpZCgpOwotLSAgdnRrSWRUeXBlIG5wdHMsICpwdHM7Ci0rICB2dGtJZFR5cGUgbnB0czsKLSsg IHZ0a0lkVHlwZVB0ciBwdHM7Ci0gICBncmlkLT5HZXRDZWxsUG9pbnRzKCB0aGlzLT5teVZ0a0lE LCBucHRzLCBwdHMgKTsKLSAgIGZvciAoIHZ0a0lkVHlwZSBpID0gMDsgaSA8IG5wdHM7ICsraSAp Ci0gICAgIGlmICggcHRzW2ldID09IG5vZGUtPmdldFZ0a0lkKCkgKQotQEAgLTI1MSw3ICsyNjcs NyBAQCBib29sIFNNRFNfVnRrRmFjZTo6SXNNZWRpdW1Ob2RlKGNvbnN0IFNNRFNfTWVzaE5vZGUq IG5vZGUpIGNvbnN0Ci0gICAgIHJldHVybiBmYWxzZTsKLSAgIH0KLSAgIHZ0a0lkVHlwZSBucHRz ID0gMDsKLS0gIHZ0a0lkVHlwZSogcHRzID0gMDsKLSsgIHZ0a0lkVHlwZVB0ciBwdHMgPSAwOwot ICAgZ3JpZC0+R2V0Q2VsbFBvaW50cyhteVZ0a0lELCBucHRzLCBwdHMpOwotICAgdnRrSWRUeXBl IG5vZGVJZCA9IG5vZGUtPmdldFZ0a0lkKCk7Ci0gICBmb3IgKGludCByYW5rID0gMDsgcmFuayA8 IG5wdHM7IHJhbmsrKykKLUBAIC0zNTYsMTEgKzM3MiwxOCBAQCBTTURTX05vZGVJdGVyYXRvclB0 ciBTTURTX1Z0a0ZhY2U6OmludGVybGFjZWROb2Rlc0l0ZXJhdG9yKCkgY29uc3QKLSB2b2lkIFNN RFNfVnRrRmFjZTo6Q2hhbmdlQXBleChTTURTX01lc2hOb2RlKiBub2RlKQotIHsKLSAgIHZ0a1Vu c3RydWN0dXJlZEdyaWQqIGdyaWQgPSBTTURTX01lc2g6Ol9tZXNoTGlzdFtteU1lc2hJZF0tPmdl dEdyaWQoKTsKLSsjaWZkZWYgVlRLX0NFTExfQVJSQVlfVjIKLSsgIHZ0a05ldzx2dGtJZExpc3Q+ IGNlbGxQb2ludHM7Ci0rICBncmlkLT5HZXRDZWxsUG9pbnRzKG15VnRrSUQsIGNlbGxQb2ludHMu R2V0UG9pbnRlcigpKTsKLSsgIGdyaWQtPlJlbW92ZVJlZmVyZW5jZVRvQ2VsbChjZWxsUG9pbnRz LT5HZXRJZCgwKSwgbXlWdGtJRCk7Ci0rICBjZWxsUG9pbnRzLT5TZXRJZCgwLCBub2RlLT5nZXRW dGtJZCgpKTsKLSsjZWxzZQotICAgdnRrSWRUeXBlIG5wdHMgPSAwOwotICAgdnRrSWRUeXBlKiBw dHMgPSAwOwotICAgZ3JpZC0+R2V0Q2VsbFBvaW50cyhteVZ0a0lELCBucHRzLCBwdHMpOwotICAg Z3JpZC0+UmVtb3ZlUmVmZXJlbmNlVG9DZWxsKHB0c1swXSwgbXlWdGtJRCk7Ci0gICBwdHNbMF0g PSBub2RlLT5nZXRWdGtJZCgpOwotKyNlbmRpZgotICAgbm9kZS0+QWRkSW52ZXJzZUVsZW1lbnQo dGhpcyksCi0gICBTTURTX01lc2g6Ol9tZXNoTGlzdFtteU1lc2hJZF0tPnNldE15TW9kaWZpZWQo KTsKLSB9Ci1kaWZmIC0tZ2l0IHNyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURT X1Z0a1ZvbHVtZS5jcHAgYi9zcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19W dGtWb2x1bWUuY3BwCi1pbmRleCAwMTVlZGY3NWZkMi4uMTllYmQwNzQ2YzggMTAwNjQ0Ci0tLS0g YS9zcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19WdGtWb2x1bWUuY3BwCi0r KysgYi9zcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19WdGtWb2x1bWUuY3Bw Ci1AQCAtMTMzLDYgKzEzMywxOSBAQCB2b2lkIFNNRFNfVnRrVm9sdW1lOjppbml0UG9seShjb25z dCBzdGQ6OnZlY3Rvcjx2dGtJZFR5cGU+JiBub2RlSWRzLAotIGJvb2wgU01EU19WdGtWb2x1bWU6 OkNoYW5nZU5vZGVzKGNvbnN0IFNNRFNfTWVzaE5vZGUqIG5vZGVzW10sIGNvbnN0IGludCBuYk5v ZGVzKQotIHsKLSAgIHZ0a1Vuc3RydWN0dXJlZEdyaWQqIGdyaWQgPSBTTURTX01lc2g6Ol9tZXNo TGlzdFtteU1lc2hJZF0tPmdldEdyaWQoKTsKLSsjaWZkZWYgVlRLX0NFTExfQVJSQVlfVjIKLSsg IHZ0a05ldzx2dGtJZExpc3Q+IGNlbGxQb2ludHM7Ci0rICBncmlkLT5HZXRDZWxsUG9pbnRzKG15 VnRrSUQsIGNlbGxQb2ludHMuR2V0UG9pbnRlcigpKTsKLSsgIGlmIChuYk5vZGVzICE9IGNlbGxQ b2ludHMtPkdldE51bWJlck9mSWRzKCkpCi0rICAgIHsKLSsgICAgICBNRVNTQUdFKCJDaGFuZ2VO b2RlcyBwcm9ibGVtOiBub3QgdGhlIHNhbWUgbnVtYmVyIG9mIG5vZGVzICIgPDwgY2VsbFBvaW50 cy0+R2V0TnVtYmVyT2ZJZHMoKSA8PCAiIC0+ICIgPDwgbmJOb2Rlcyk7Ci0rICAgICAgcmV0dXJu IGZhbHNlOwotKyAgICB9Ci0rICBmb3IgKGludCBpID0gMDsgaSA8IG5iTm9kZXM7IGkrKykKLSsg ICAgewotKyAgICAgIGNlbGxQb2ludHMtPlNldElkKGksIG5vZGVzW2ldLT5nZXRWdGtJZCgpKTsK LSsgICAgfQotKyNlbHNlCi0gICB2dGtJZFR5cGUgbnB0cyA9IDA7Ci0gICB2dGtJZFR5cGUqIHB0 cyA9IDA7Ci0gICBncmlkLT5HZXRDZWxsUG9pbnRzKG15VnRrSUQsIG5wdHMsIHB0cyk7Ci1AQCAt MTQ1LDYgKzE1OCw3IEBAIGJvb2wgU01EU19WdGtWb2x1bWU6OkNoYW5nZU5vZGVzKGNvbnN0IFNN RFNfTWVzaE5vZGUqIG5vZGVzW10sIGNvbnN0IGludCBuYk5vZGVzCi0gICAgIHsKLSAgICAgICBw dHNbaV0gPSBub2Rlc1tpXS0+Z2V0VnRrSWQoKTsKLSAgICAgfQotKyNlbmRpZgotICAgU01EU19N ZXNoOjpfbWVzaExpc3RbbXlNZXNoSWRdLT5zZXRNeU1vZGlmaWVkKCk7Ci0gICByZXR1cm4gdHJ1 ZTsKLSB9Ci1AQCAtMjA3LDcgKzIyMSw3IEBAIGludCBTTURTX1Z0a1ZvbHVtZTo6TmJGYWNlcygp IGNvbnN0Ci0gICAgIGNhc2UgVlRLX1BPTFlIRURST046Ci0gICAgICAgewotICAgICAgICAgdnRr SWRUeXBlIG5GYWNlcyA9IDA7Ci0tICAgICAgICB2dGtJZFR5cGUqIHB0SWRzID0gMDsKLSsgICAg ICAgIHZ0a0lkVHlwZVB0ciBwdElkcyA9IDA7Ci0gICAgICAgICBncmlkLT5HZXRGYWNlU3RyZWFt KHRoaXMtPm15VnRrSUQsIG5GYWNlcywgcHRJZHMpOwotICAgICAgICAgbmJGYWNlcyA9IG5GYWNl czsKLSAgICAgICAgIGJyZWFrOwotQEAgLTIzNiw3ICsyNTAsNyBAQCBpbnQgU01EU19WdGtWb2x1 bWU6Ok5iTm9kZXMoKSBjb25zdAotICAgZWxzZQotICAgICB7Ci0gICAgICAgdnRrSWRUeXBlIG5G YWNlcyA9IDA7Ci0tICAgICAgdnRrSWRUeXBlKiBwdElkcyA9IDA7Ci0rICAgICAgdnRrSWRUeXBl UHRyIHB0SWRzID0gMDsKLSAgICAgICBncmlkLT5HZXRGYWNlU3RyZWFtKHRoaXMtPm15VnRrSUQs IG5GYWNlcywgcHRJZHMpOwotICAgICAgIGludCBpZCA9IDA7Ci0gICAgICAgZm9yIChpbnQgaSA9 IDA7IGkgPCBuRmFjZXM7IGkrKykKLUBAIC0yNzYsNyArMjkwLDcgQEAgaW50IFNNRFNfVnRrVm9s dW1lOjpOYkVkZ2VzKCkgY29uc3QKLSAgICAgY2FzZSBWVEtfUE9MWUhFRFJPTjoKLSAgICAgICB7 Ci0gICAgICAgICB2dGtJZFR5cGUgbkZhY2VzID0gMDsKLS0gICAgICAgIHZ0a0lkVHlwZSogcHRJ ZHMgPSAwOwotKyAgICAgICAgdnRrSWRUeXBlUHRyIHB0SWRzID0gMDsKLSAgICAgICAgIGdyaWQt PkdldEZhY2VTdHJlYW0odGhpcy0+bXlWdGtJRCwgbkZhY2VzLCBwdElkcyk7Ci0gICAgICAgICBu YkVkZ2VzID0gMDsKLSAgICAgICAgIGludCBpZCA9IDA7Ci1AQCAtMzEyLDcgKzMyNiw3IEBAIGlu dCBTTURTX1Z0a1ZvbHVtZTo6TmJGYWNlTm9kZXMoY29uc3QgaW50IGZhY2VfaW5kKSBjb25zdAot ICAgaWYgKGFWdGtUeXBlID09IFZUS19QT0xZSEVEUk9OKQotICAgICB7Ci0gICAgICAgdnRrSWRU eXBlIG5GYWNlcyA9IDA7Ci0tICAgICAgdnRrSWRUeXBlKiBwdElkcyA9IDA7Ci0rICAgICAgdnRr SWRUeXBlUHRyIHB0SWRzID0gMDsKLSAgICAgICBncmlkLT5HZXRGYWNlU3RyZWFtKHRoaXMtPm15 VnRrSUQsIG5GYWNlcywgcHRJZHMpOwotICAgICAgIGludCBpZCA9IDA7Ci0gICAgICAgZm9yIChp bnQgaSA9IDA7IGkgPCBuRmFjZXM7IGkrKykKLUBAIC0zNDIsNyArMzU2LDcgQEAgY29uc3QgU01E U19NZXNoTm9kZSogU01EU19WdGtWb2x1bWU6OkdldEZhY2VOb2RlKGNvbnN0IGludCBmYWNlX2lu ZCwgY29uc3QgaW50IG4KLSAgIGlmIChhVnRrVHlwZSA9PSBWVEtfUE9MWUhFRFJPTikKLSAgICAg ewotICAgICAgIHZ0a0lkVHlwZSBuRmFjZXMgPSAwOwotLSAgICAgIHZ0a0lkVHlwZSogcHRJZHMg PSAwOwotKyAgICAgIHZ0a0lkVHlwZVB0ciBwdElkcyA9IDA7Ci0gICAgICAgZ3JpZC0+R2V0RmFj ZVN0cmVhbSh0aGlzLT5teVZ0a0lELCBuRmFjZXMsIHB0SWRzKTsKLSAgICAgICBpbnQgaWQgPSAw OwotICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbkZhY2VzOyBpKyspCi1AQCAtMzcyLDcgKzM4 Niw3IEBAIHN0ZDo6dmVjdG9yPGludD4gU01EU19WdGtWb2x1bWU6OkdldFF1YW50aXRpZXMoKSBj b25zdAotICAgaWYgKGFWdGtUeXBlID09IFZUS19QT0xZSEVEUk9OKQotICAgICB7Ci0gICAgICAg dnRrSWRUeXBlIG5GYWNlcyA9IDA7Ci0tICAgICAgdnRrSWRUeXBlKiBwdElkcyA9IDA7Ci0rICAg ICAgdnRrSWRUeXBlUHRyIHB0SWRzID0gMDsKLSAgICAgICBncmlkLT5HZXRGYWNlU3RyZWFtKHRo aXMtPm15VnRrSUQsIG5GYWNlcywgcHRJZHMpOwotICAgICAgIGludCBpZCA9IDA7Ci0gICAgICAg Zm9yIChpbnQgaSA9IDA7IGkgPCBuRmFjZXM7IGkrKykKLUBAIC00MzAsNyArNDQ0LDcgQEAgY29u c3QgU01EU19NZXNoTm9kZSogU01EU19WdGtWb2x1bWU6OkdldE5vZGUoY29uc3QgaW50IGluZCkg Y29uc3QKLSAgIGlmICggYVZ0a1R5cGUgPT0gVlRLX1BPTFlIRURST04pCi0gICB7Ci0gICAgIHZ0 a0lkVHlwZSBuRmFjZXMgPSAwOwotLSAgICB2dGtJZFR5cGUqIHB0SWRzID0gMDsKLSsgICAgdnRr SWRUeXBlUHRyIHB0SWRzID0gMDsKLSAgICAgZ3JpZC0+R2V0RmFjZVN0cmVhbSh0aGlzLT5teVZ0 a0lELCBuRmFjZXMsIHB0SWRzKTsKLSAgICAgaW50IGlkID0gMCwgbmJQb2ludHMgPSAwOwotICAg ICBmb3IgKGludCBpID0gMDsgaSA8IG5GYWNlczsgaSsrKQotQEAgLTQ0Myw3ICs0NTcsOCBAQCBj b25zdCBTTURTX01lc2hOb2RlKiBTTURTX1Z0a1ZvbHVtZTo6R2V0Tm9kZShjb25zdCBpbnQgaW5k KSBjb25zdAotICAgICB9Ci0gICAgIHJldHVybiAwOwotICAgfQotLSAgdnRrSWRUeXBlIG5wdHMs ICpwdHM7Ci0rICB2dGtJZFR5cGUgbnB0czsKLSsgIHZ0a0lkVHlwZVB0ciBwdHM7Ci0gICBncmlk LT5HZXRDZWxsUG9pbnRzKCB0aGlzLT5teVZ0a0lELCBucHRzLCBwdHMgKTsKLSAgIGNvbnN0IHN0 ZDo6dmVjdG9yPGludD4mIGludGVybGFjZSA9IFNNRFNfTWVzaENlbGw6OmZyb21WdGtPcmRlcigg VlRLQ2VsbFR5cGUoIGFWdGtUeXBlICkpOwotICAgcmV0dXJuIFNNRFNfTWVzaDo6X21lc2hMaXN0 W215TWVzaElkXS0+RmluZE5vZGVWdGsoIHB0c1sgaW50ZXJsYWNlLmVtcHR5KCkgPyBpbmQgOiBp bnRlcmxhY2VbaW5kXV0gKTsKLUBAIC00NjAsNyArNDc1LDcgQEAgaW50IFNNRFNfVnRrVm9sdW1l OjpHZXROb2RlSW5kZXgoIGNvbnN0IFNNRFNfTWVzaE5vZGUqIG5vZGUgKSBjb25zdAotICAgaWYg KCBhVnRrVHlwZSA9PSBWVEtfUE9MWUhFRFJPTikKLSAgIHsKLSAgICAgdnRrSWRUeXBlIG5GYWNl cyA9IDA7Ci0tICAgIHZ0a0lkVHlwZSogcHRJZHMgPSAwOwotKyAgICB2dGtJZFR5cGVQdHIgcHRJ ZHMgPSAwOwotICAgICBncmlkLT5HZXRGYWNlU3RyZWFtKHRoaXMtPm15VnRrSUQsIG5GYWNlcywg cHRJZHMpOwotICAgICBpbnQgaWQgPSAwOwotICAgICBmb3IgKGludCBpRiA9IDA7IGlGIDwgbkZh Y2VzOyBpRisrKQotQEAgLTQ3Myw3ICs0ODgsOCBAQCBpbnQgU01EU19WdGtWb2x1bWU6OkdldE5v ZGVJbmRleCggY29uc3QgU01EU19NZXNoTm9kZSogbm9kZSApIGNvbnN0Ci0gICAgIH0KLSAgICAg cmV0dXJuIC0xOwotICAgfQotLSAgdnRrSWRUeXBlIG5wdHMsICpwdHM7Ci0rICB2dGtJZFR5cGUg bnB0czsKLSsgIHZ0a0lkVHlwZVB0ciBwdHM7Ci0gICBncmlkLT5HZXRDZWxsUG9pbnRzKCB0aGlz LT5teVZ0a0lELCBucHRzLCBwdHMgKTsKLSAgIGZvciAoIHZ0a0lkVHlwZSBpID0gMDsgaSA8IG5w dHM7ICsraSApCi0gICAgIGlmICggcHRzW2ldID09IG5vZGUtPmdldFZ0a0lkKCkgKQotQEAgLTUz NCw3ICs1NTAsNyBAQCBib29sIFNNRFNfVnRrVm9sdW1lOjpJc01lZGl1bU5vZGUoY29uc3QgU01E U19NZXNoTm9kZSogbm9kZSkgY29uc3QKLSAgICAgICByZXR1cm4gZmFsc2U7Ci0gICB9Ci0gICB2 dGtJZFR5cGUgbnB0cyA9IDA7Ci0tICB2dGtJZFR5cGUqIHB0cyA9IDA7Ci0rICB2dGtJZFR5cGVQ dHIgcHRzID0gMDsKLSAgIGdyaWQtPkdldENlbGxQb2ludHMobXlWdGtJRCwgbnB0cywgcHRzKTsK LSAgIHZ0a0lkVHlwZSBub2RlSWQgPSBub2RlLT5nZXRWdGtJZCgpOwotICAgZm9yIChpbnQgcmFu ayA9IDA7IHJhbmsgPCBucHRzOyByYW5rKyspCi1kaWZmIC0tZ2l0IHNyYy8zcmRQYXJ0eS9zYWxv bWVzbWVzaC9zcmMvU01FU0gvU01FU0hfTWVzaEVkaXRvci5jcHAgYi9zcmMvM3JkUGFydHkvc2Fs b21lc21lc2gvc3JjL1NNRVNIL1NNRVNIX01lc2hFZGl0b3IuY3BwCi1pbmRleCBmY2QwNDRiMDBm Mi4uZjU0YzI0Zjg2MTggMTAwNjQ0Ci0tLS0gYS9zcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3Jj L1NNRVNIL1NNRVNIX01lc2hFZGl0b3IuY3BwCi0rKysgYi9zcmMvM3JkUGFydHkvc2Fsb21lc21l c2gvc3JjL1NNRVNIL1NNRVNIX01lc2hFZGl0b3IuY3BwCi1AQCAtMTEzNDgsNyArMTEzNDgsNyBA QCBib29sIFNNRVNIX01lc2hFZGl0b3I6OkRvdWJsZU5vZGVzT25Hcm91cEJvdW5kYXJpZXMoIGNv bnN0IHN0ZDo6dmVjdG9yPFRJRFNvcnRlZAotICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg IGludCBvbGRJZCA9ICppdG47Ci0gICAgICAgICAgICAgICAvL01FU1NBR0UoIiAgICAgbm9kZSAi IDw8IG9sZElkKTsKLS0gICAgICAgICAgICAgIHZ0a0NlbGxMaW5rczo6TGluayBsID0gZ3JpZC0+ R2V0Q2VsbExpbmtzKCktPkdldExpbmsob2xkSWQpOwotKyAgICAgICAgICAgICAgdnRrQ2VsbExp bmtzOjpMaW5rIGwgPSBzdGF0aWNfY2FzdDx2dGtDZWxsTGlua3MqPihncmlkLT5HZXRDZWxsTGlu a3MoKSktPkdldExpbmsob2xkSWQpOwotICAgICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPGwu bmNlbGxzOyBpKyspCi0gICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICBpbnQg dnRrSWQgPSBsLmNlbGxzW2ldOwotQEAgLTExNTI3LDcgKzExNTI3LDcgQEAgYm9vbCBTTUVTSF9N ZXNoRWRpdG9yOjpEb3VibGVOb2Rlc09uR3JvdXBCb3VuZGFyaWVzKCBjb25zdCBzdGQ6OnZlY3Rv cjxUSURTb3J0ZWQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv L01FU1NBR0UoIiAgZG9tYWluICIgPDwgaWRvbSA8PCAiIHZvbHVtZSAiIDw8IGVsZW0tPkdldElE KCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSB2 YWx1ZXNbM107Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdnRr SWRUeXBlIG5wdHMgPSAwOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHZ0a0lkVHlwZSogcHRzID0gMDsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB2dGtJZFR5cGVQdHIgcHRzID0gMDsKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBncmlkLT5HZXRDZWxsUG9pbnRzKHZ0a1ZvbElkc1tpdm9sXSwg bnB0cywgcHRzKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBT TURTX1Z0a1ZvbHVtZTo6Z3Jhdml0eUNlbnRlcihncmlkLCBwdHMsIG5wdHMsIHZhbHVlcyk7Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlkID09MCkKLUBA IC0xMTcwOCw3ICsxMTcwOCw3IEBAIGJvb2wgU01FU0hfTWVzaEVkaXRvcjo6RG91YmxlTm9kZXNP bkdyb3VwQm91bmRhcmllcyggY29uc3Qgc3RkOjp2ZWN0b3I8VElEU29ydGVkCi0gICAgICAgICB7 Ci0gICAgICAgICAgIGludCBvbGRJZCA9IGl0bm9kLT5maXJzdDsKLSAgICAgICAgICAgLy9NRVNT QUdFKCIgICAgIG5vZGUgIiA8PCBvbGRJZCk7Ci0tICAgICAgICAgIHZ0a0NlbGxMaW5rczo6TGlu ayBsID0gZ3JpZC0+R2V0Q2VsbExpbmtzKCktPkdldExpbmsob2xkSWQpOwotKyAgICAgICAgICB2 dGtDZWxsTGlua3M6OkxpbmsgbCA9IHN0YXRpY19jYXN0PHZ0a0NlbGxMaW5rcyo+KGdyaWQtPkdl dENlbGxMaW5rcygpKS0+R2V0TGluayhvbGRJZCk7Ci0gICAgICAgICAgIGZvciAoaW50IGkgPSAw OyBpIDwgbC5uY2VsbHM7IGkrKykKLSAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICBpbnQg dnRrSWQgPSBsLmNlbGxzW2ldOwotQEAgLTEyMTY1LDcgKzEyMTY1LDcgQEAgdm9pZCBTTUVTSF9N ZXNoRWRpdG9yOjpDcmVhdGVIb2xlU2tpbihkb3VibGUgcmFkaXVzLAotICAgICAgICAgICBNRVNT QUdFKCJ2b2x1bWUgdG8gY2hlY2ssICB2dGtJZCAiIDw8IHZ0a0lkIDw8ICIgc21kc0lkICIgPDwg bWVzaERTLT5mcm9tVnRrVG9TbWRzKHZ0a0lkKSk7Ci0gICAgICAgICAgIGJvb2wgdm9sSW5zaWRl ID0gZmFsc2U7Ci0gICAgICAgICAgIHZ0a0lkVHlwZSBucHRzID0gMDsKLS0gICAgICAgICAgdnRr SWRUeXBlKiBwdHMgPSAwOwotKyAgICAgICAgICB2dGtJZFR5cGVQdHIgcHRzID0gMDsKLSAgICAg ICAgICAgZ3JpZC0+R2V0Q2VsbFBvaW50cyh2dGtJZCwgbnB0cywgcHRzKTsKLSAgICAgICAgICAg Zm9yIChpbnQgaT0wOyBpPG5wdHM7IGkrKykKLSAgICAgICAgICAgICB7CmRpZmYgLS1naXQgYS9z cmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8xNTItY21ha2UtdnRrOS5wYXRjaCBiL3NyY3BrZ3MvZnJl ZWNhZC9wYXRjaGVzLzE1Mi1jbWFrZS12dGs5LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCA3YWJmZmNmNTdlODQuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2ZyZWVjYWQv cGF0Y2hlcy8xNTItY21ha2UtdnRrOS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDUzICswLDAg QEAKLS0tLSBhL2NNYWtlL0ZyZWVDQURfSGVscGVycy9TZXR1cFNhbG9tZVNNRVNILmNtYWtlCTIw MjAtMTEtMjYgMTU6NTk6MjcuMDAwMDAwMDAwICswMTAwCi0rKysgYi9jTWFrZS9GcmVlQ0FEX0hl bHBlcnMvU2V0dXBTYWxvbWVTTUVTSC5jbWFrZQkyMDIwLTExLTI2IDIzOjA5OjEyLjc3ODI2MjYz NiArMDEwMAotQEAgLTExLDYgKzExLDggQEAKLSAgICAgICAgIHNldChTTUVTSF9WRVJTSU9OX1RX RUFLIDApCi0gCi0gICAgICAgICAjaWYgd2UgdXNlIHNtZXNoIHdlIGRlZmluaXRlbHkgYWxzbyBu ZWVkIHZ0aywgbm8gbWF0dGVyIG9mIGV4dGVybmFsIG9yIGludGVybmFsIHNtZXNoCi0rICAgICAg ICBmaW5kX3BhY2thZ2UoVlRLIFJFUVVJUkVEIE5PX01PRFVMRSkKLSsgICAgICAgIGlmKCR7VlRL X01BSk9SX1ZFUlNJT059IExFU1MgOSkKLSAgICAgICAgIHNldCAoVlRLX0NPTVBPTkVOVFMKLSAg ICAgICAgICAgICB2dGtDb21tb25Db3JlCi0gICAgICAgICAgICAgdnRrQ29tbW9uRGF0YU1vZGVs Ci1AQCAtMjMsMTggKzI1LDM3IEBACi0gICAgICAgICAgICAgdnRrRmlsdGVyc1NvdXJjZXMKLSAg ICAgICAgICAgICB2dGtGaWx0ZXJzR2VvbWV0cnkKLSAgICAgICAgICkKLS0KLS0gICAgICAgICMg Y2hlY2sgd2hpY2ggbW9kdWxlcyBhcmUgYXZhaWxhYmxlCi0tICAgICAgICBpZihVTklYIE9SIFdJ TjMyKQotICAgICAgICAgICAgIGZpbmRfcGFja2FnZShWVEsgQ09NUE9ORU5UUyB2dGtDb21tb25D b3JlIFJFUVVJUkVEIE5PX01PRFVMRSkKLSAgICAgICAgICAgICBsaXN0KEFQUEVORCBWVEtfQ09N UE9ORU5UUyB2dGtJT01QSVBhcmFsbGVsIHZ0a1BhcmFsbGVsTVBJIHZ0a2hkZjUgdnRrRmlsdGVy c1BhcmFsbGVsRElZMiB2dGtSZW5kZXJpbmdDb3JlIHZ0a0ludGVyYWN0aW9uU3R5bGUgdnRrUmVu ZGVyaW5nRnJlZVR5cGUgdnRrUmVuZGVyaW5nT3BlbkdMMikKLSsgICAgICAgIGVsc2UoKQotKyAg ICAgICAgICAgICMgVlRLIDkgY2hhbmdlZCBpdHMgY29tcG9uZW50IG5hbWVzCi0rICAgICAgICAg ICAgc2V0IChWVEtfQ09NUE9ORU5UUwotKyAgICAgICAgICAgICAgICBDb21tb25Db3JlCi0rICAg ICAgICAgICAgICAgIENvbW1vbkRhdGFNb2RlbAotKyAgICAgICAgICAgICAgICBGaWx0ZXJzVmVy ZGljdAotKyAgICAgICAgICAgICAgICBJT1hNTAotKyAgICAgICAgICAgICAgICBGaWx0ZXJzQ29y ZQotKyAgICAgICAgICAgICAgICBGaWx0ZXJzR2VuZXJhbAotKyAgICAgICAgICAgICAgICBJT0xl Z2FjeQotKyAgICAgICAgICAgICAgICBGaWx0ZXJzRXh0cmFjdGlvbgotKyAgICAgICAgICAgICAg ICBGaWx0ZXJzU291cmNlcwotKyAgICAgICAgICAgICAgICBGaWx0ZXJzR2VvbWV0cnkKLSsgICAg ICAgICAgICApCi0rICAgICAgICAgICAgZmluZF9wYWNrYWdlKFZUSyBDT01QT05FTlRTIENvbW1v bkNvcmUgUkVRVUlSRUQgTk9fTU9EVUxFKQotKyAgICAgICAgICAgIGxpc3QoQVBQRU5EIFZUS19D T01QT05FTlRTIElPTVBJUGFyYWxsZWwgUGFyYWxsZWxNUEkgaGRmNSBGaWx0ZXJzUGFyYWxsZWxE SVkyIFJlbmRlcmluZ0NvcmUgSW50ZXJhY3Rpb25TdHlsZSBSZW5kZXJpbmdGcmVlVHlwZSBSZW5k ZXJpbmdPcGVuR0wyKQotKyAgICAgICAgZW5kaWYoKQotKwotKyAgICAgICAgIyBjaGVjayB3aGlj aCBtb2R1bGVzIGFyZSBhdmFpbGFibGUKLSAgICAgICAgICAgICBmb3JlYWNoKF9tb2R1bGUgJHtW VEtfQ09NUE9ORU5UU30pCi0rICAgICAgICAgICAgaWYoJHtWVEtfTUFKT1JfVkVSU0lPTn0gTEVT UyA5KQotICAgICAgICAgICAgICAgICBsaXN0IChGSU5EIFZUS19NT0RVTEVTX0VOQUJMRUQgJHtf bW9kdWxlfSBfaW5kZXgpCi0rICAgICAgICAgICAgZWxzZSgpCi0rICAgICAgICAgICAgICAgIGxp c3QgKEZJTkQgVlRLX0FWQUlMQUJMRV9DT01QT05FTlRTICR7X21vZHVsZX0gX2luZGV4KQotKyAg ICAgICAgICAgIGVuZGlmKCkKLSAgICAgICAgICAgICAgICAgaWYgKCR7X2luZGV4fSBHUkVBVEVS IC0xKQotICAgICAgICAgICAgICAgICAgICAgbGlzdChBUFBFTkQgQVZBSUxBQkxFX1ZUS19DT01Q T05FTlRTICR7X21vZHVsZX0pCi0gICAgICAgICAgICAgICAgIGVuZGlmKCkKLSAgICAgICAgICAg ICBlbmRmb3JlYWNoKCkKLS0gICAgICAgIGVuZGlmKCkKLSAKLSAgICAgICAgICMgZG9uJ3QgY2hl Y2sgVkVSU0lPTiA2IGFzIHRoaXMgd291bGQgZXhjbHVkZSBWRVJTSU9OIDcKLSAgICAgICAgIGlm KEFWQUlMQUJMRV9WVEtfQ09NUE9ORU5UUykKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZnJlZWNhZC9w YXRjaGVzLzE1My1saW1pdHMuaC1mb3ItbXVzbC5wYXRjaCBiL3NyY3BrZ3MvZnJlZWNhZC9wYXRj aGVzLzE1My1saW1pdHMuaC1mb3ItbXVzbC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMDAuLjU5YjBmZjE3OGVmOAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv ZnJlZWNhZC9wYXRjaGVzLzE1My1saW1pdHMuaC1mb3ItbXVzbC5wYXRjaApAQCAtMCwwICsxLDEz IEBACistLS0gYS9zcmMvRkNDb25maWcuaC5PUklHCisrKysgYi9zcmMvRkNDb25maWcuaAorQEAg LTMyMSw0ICszMjEsMTAgQEAKKyAvLyMJZGVmaW5lIF9QcmVDb21wXyAgICAgICAgICAgICAgICAg IC8vIHVzZSBwcmVjb21waWxlZCBoZWFkZXINCisgI2VuZGlmDQorIA0KKysjaWYgZGVmaW5lZChG Q19PU19MSU5VWCkgfHwgZGVmaW5lZChGQ19PU19NQUNPU1gpIHx8IGRlZmluZWQoRkNfT1NfQlNE KQ0KKysjaWYgKCFkZWZpbmVkKFBBVEhfTUFYKSkNCisrI2luY2x1ZGUgPGxpbWl0cy5oPg0KKysj ZW5kaWYNCisrI2VuZGlmDQorKw0KKyAjZW5kaWYgLy9GQ19DT05GSUdfSA0KZGlmZiAtLWdpdCBh L3NyY3BrZ3MvZnJlZWNhZC9wYXRjaGVzLzE1NC1yZXZlcnQtZ3VpLXRtcC1yZWRpcmVjdC1zdGRl cnIucGF0Y2ggYi9zcmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8xNTQtcmV2ZXJ0LWd1aS10bXAtcmVk aXJlY3Qtc3RkZXJyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MC4uMjg3MTc5YTIzYzNjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9mcmVlY2FkL3BhdGNo ZXMvMTU0LXJldmVydC1ndWktdG1wLXJlZGlyZWN0LXN0ZGVyci5wYXRjaApAQCAtMCwwICsxLDcz IEBACitzZWUgaHR0cHM6Ly9naXRodWIuY29tL0ZyZWVDQUQvRnJlZUNBRC9jb21taXQvY2ZlOTRi MDBkMzQzNGYzZTJjOGI1MTE0ZDI5MDlmNjI4YzMzMGZhOCNjb21taXRjb21tZW50LTcxNDEzNDA3 CisKK3Vwc3RyZWFtOiB5ZXMKKworRnJvbSA3YjM3N2EyMTZiOTE4NTk2MGU0Y2VlOTgwYTY1MDRk YzFhNzU1ZjUwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogd21heWVyIDx3bWF5ZXJA dXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogV2VkLCAyOSBKdW4gMjAyMiAxNToxOToxOCAr MDIwMAorU3ViamVjdDogW1BBVENIXSBHdWk6IHJlbW92ZSB3b3JrYXJvdW5kIGZvciBzcG5hdiAw LjIzIGR1ZSB0byBidWlsZCBmYWlsdXJlCisgd2l0aCBtdXNsIGxpYmMKKworLS0tCisgc3JjL0d1 aS8zRGNvbm5leGlvbi9HdWlOYXRpdmVFdmVudExpbnV4LmNwcCB8IDI3IC0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCAyNyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBh L3NyYy9HdWkvM0Rjb25uZXhpb24vR3VpTmF0aXZlRXZlbnRMaW51eC5jcHAgYi9zcmMvR3VpLzNE Y29ubmV4aW9uL0d1aU5hdGl2ZUV2ZW50TGludXguY3BwCitpbmRleCA3ZjBkZGQ3NWQuLjQ1NWVj ZTBiMyAxMDA2NDQKKy0tLSBhL3NyYy9HdWkvM0Rjb25uZXhpb24vR3VpTmF0aXZlRXZlbnRMaW51 eC5jcHAKKysrKyBiL3NyYy9HdWkvM0Rjb25uZXhpb24vR3VpTmF0aXZlRXZlbnRMaW51eC5jcHAK K0BAIC0yMSw0MiArMjEsMTcgQEAKKyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworIAorICNpbmNsdWRl IDxGQ0NvbmZpZy5oPgorLSNpbmNsdWRlIDxjc3RkaW8+CisgCisgI2luY2x1ZGUgIkd1aU5hdGl2 ZUV2ZW50TGludXguaCIKKyAKKyAjaW5jbHVkZSAiR3VpQXBwbGljYXRpb25OYXRpdmVFdmVudEF3 YXJlLmgiCisgI2luY2x1ZGUgPEJhc2UvQ29uc29sZS5oPgorLSNpbmNsdWRlIDxCYXNlL0ZpbGVJ bmZvLmg+CisgI2luY2x1ZGUgPFFNYWluV2luZG93PgorIAorICNpbmNsdWRlIDxRU29ja2V0Tm90 aWZpZXI+CisgCisgI2luY2x1ZGUgPHNwbmF2Lmg+CisgCistbmFtZXNwYWNlIHsKKy1jbGFzcyBS ZWRpcmVjdFN0ZEVycgorLXsKKy1wdWJsaWM6CistICAgIFJlZGlyZWN0U3RkRXJyKCkKKy0gICAg ICAgIDogZmkoQmFzZTo6RmlsZUluZm86OmdldFRlbXBGaWxlTmFtZSgpKQorLSAgICAgICAgLCBm aWxlKHN0ZGVycikKKy0gICAgeworLSAgICAgICAgc3RkZXJyID0gZm9wZW4oZmkuZmlsZVBhdGgo KS5jX3N0cigpLCAidyIpOworLSAgICB9CistICAgIH5SZWRpcmVjdFN0ZEVycigpCistICAgIHsK Ky0gICAgICAgIGZjbG9zZShzdGRlcnIpOworLSAgICAgICAgZmkuZGVsZXRlRmlsZSgpOworLSAg ICAgICAgc3RkZXJyID0gZmlsZTsKKy0gICAgfQorLQorLXByaXZhdGU6CistICAgIEJhc2U6OkZp bGVJbmZvIGZpOworLSAgICBGSUxFKiBmaWxlOworLX07CistfQorLQorIEd1aTo6R3VpTmF0aXZl RXZlbnQ6Okd1aU5hdGl2ZUV2ZW50KEd1aTo6R1VJQXBwbGljYXRpb25OYXRpdmVFdmVudEF3YXJl ICphcHApCisgOiBHdWlBYnN0cmFjdE5hdGl2ZUV2ZW50KGFwcCkKKyB7CitAQCAtNzIsOCArNDcs NiBAQCBHdWk6Okd1aU5hdGl2ZUV2ZW50Ojp+R3VpTmF0aXZlRXZlbnQoKQorIAorIHZvaWQgR3Vp OjpHdWlOYXRpdmVFdmVudDo6aW5pdFNwYWNlYmFsbChRTWFpbldpbmRvdyAqd2luZG93KQorIHsK Ky0gICAgLy8gdG1wLiByZWRpcmVjdCBzdGRlcnIgdG8gYSBmaWxlIHRvIHN1cHByZXNzIGFuIGVy cm9yIG1lc3NhZ2UgZnJvbSBzcG5hdl9vcGVuKCkKKy0gICAgUmVkaXJlY3RTdGRFcnIgZXJyOwor ICAgICBRX1VOVVNFRCh3aW5kb3cpCisgICAgIGlmIChzcG5hdl9vcGVuKCkgPT0gLTEpIHsKKyAg ICAgICAgIEJhc2U6OkNvbnNvbGUoKS5Mb2coIkNvdWxkbid0IGNvbm5lY3QgdG8gc3BhY2VuYXYg ZGFlbW9uLiBQbGVhc2UgaWdub3JlIGlmIHlvdSBkb24ndCBoYXZlIGEgc3BhY2Vtb3VzZS5cbiIp OworLS0gCisyLjM3LjEKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9mcmVlY2FkL3RlbXBsYXRlIGIv c3JjcGtncy9mcmVlY2FkL3RlbXBsYXRlCmluZGV4IDFlMmFlYzAyNGZkNy4uZTljNjk3YWRiZTFh IDEwMDY0NAotLS0gYS9zcmNwa2dzL2ZyZWVjYWQvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9mcmVl Y2FkL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZnJlZWNh ZCcKIHBrZ25hbWU9ZnJlZWNhZAotdmVyc2lvbj0wLjE5LjQKK3ZlcnNpb249MC4yMC4xCiByZXZp c2lvbj0xCiB3cmtzcmM9IkZyZWVDQUQtJHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPWNtYWtlCkBA IC0yMywxMCArMjMsOSBAQCBtYWtlZGVwZW5kcz0icHl0aG9uMy1kZXZlbCBib29zdC1kZXZlbCBs aWJ4ZXJjZXMtYy1kZXZlbCB6bGliLWRldmVsIG9jY3QtZGV2ZWwKICBjb2luMy1kZXZlbCBsaWJz aGlib2tlbjItZGV2ZWwgbGlic3BuYXYtZGV2ZWwgcHlzaWRlMi10b29scwogIGxpYmx6NC1kZXZl bCBsaWJweXNpZGUyLXB5dGhvbjMtZGV2ZWwgcHl0aG9uMy1tYXRwbG90bGliIG5ldGNkZi1kZXZl bAogIGpzb25jcHAtZGV2ZWwgcXQ1LWRldmVsIHF0NS1zdmctZGV2ZWwgcXQ1LXRvb2xzLWRldmVs IHF0NS13ZWJraXQtZGV2ZWwKLSBxdDUteG1scGF0dGVybnMtZGV2ZWwgY29pbjMtZG9jIGdsZXct ZGV2ZWwiCisgcXQ1LXhtbHBhdHRlcm5zLWRldmVsIGNvaW4zLWRvYyBnbGV3LWRldmVsIHB5dGhv bjMtcGl2eSIKIAotIyBGcmVlQ0FEIGhlbHA6IHF0NS9hc3Npc3RhbnQgd2l0aCBTUUxpdGUgc3Rv cmFnZQotZGVwZW5kcz0icHl0aG9uMy1tYXRwbG90bGliIHB5dGhvbjMtcHlzaWRlMiBxdDUtcGx1 Z2luLXNxbGl0ZSBweXRob24zLXBpdnkiCitkZXBlbmRzPSJweXRob24zLW1hdHBsb3RsaWIgcHl0 aG9uMy1weXNpZGUyLXdlYmVuZ2luZSBweXRob24zLXBpdnkiCiAKIHB5dGhvbl92ZXJzaW9uPTMK IHB5Y29tcGlsZV9kaXJzPSJ1c3IvbGliLyR7cGtnbmFtZX0vTW9kIgpAQCAtMzYsNyArMzUsNyBA QCBtYWludGFpbmVyPSJ5b3BpdG8gPHBpZXJyZS5ib3VyZ2luQGZyZWUuZnI+IgogbGljZW5zZT0i TEdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9mcmVlY2Fkd2ViLm9yZy8iCiBk aXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS9GcmVlQ0FEL0ZyZWVDQUQvYXJjaGl2ZS8ke3Zl cnNpb259LnRhci5neiIKLWNoZWNrc3VtPWU0MGExYzM0Mzk1NmUxM2M1NmNjODU3OGQwMjVhZTgz ZDY4ZDlkMjBhY2RhMTczMjk1M2JjOGEzODgzZTk3MjIKK2NoZWNrc3VtPTcwYzE1ZjdjMWM2NzZl MzM3NmNkYzJhNjZjMTM2MDMwYzU1MDJmOTgwMjkzNWU1YjYyNmNhOGNlM2Y4ODEyZWQKIAogaWYg WyAiJFhCUFNfVEFSR0VUX0xJQkMiID0gbXVzbCBdOyB0aGVuCiAJbWFrZWRlcGVuZHMrPSIgbGli ZXhlY2luZm8tZGV2ZWwiCg== --===============1121462856655807315==--