From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Ankur Sinha (Ankur Sinha Gmail) To: git-commits@fedoraproject.org Subject: [rpms/arbor] f45: feat: update to 0.12.2 Date: Wed, 19 Aug 2026 09:16:27 GMT Message-ID: <178713098766.1.13649775436809952120.rpms-arbor-bc6c0bc72d33@fedoraproject.org> List-ID: X-Git-Repo: rpms/arbor X-Git-Branch: f45 X-Git-Rev: bc6c0bc72d33e577707fd780fdbb6392f0677566 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvYXJib3IKICAgICAgICAgICAgQnJhbmNoIDogZjQ1CiAgICAgICAgICAgIENv bW1pdCA6IGJjNmMwYmM3MmQzM2U1Nzc3MDdmZDc4MGZkYmI2MzkyZjA2Nzc1NjYKICAgICAgICAg ICAgQXV0aG9yIDogQW5rdXIgU2luaGEgKEFua3VyIFNpbmhhIEdtYWlsKSA8c2FuamF5LmFua3Vy QGdtYWlsLmNvbT4KICAgICAgICAgICAgRGF0ZSAgIDogMjAyNi0wOC0xOFQxNjowNTozMiswMTow MAogICAgICAgICAgICBTdGF0cyAgOiArMTM4Ni8tMTgyIGluIDEzIGZpbGUocykKICAgICAgICAg ICAgVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9hcmJvci9jL2Jj NmMwYmM3MmQzM2U1Nzc3MDdmZDc4MGZkYmI2MzkyZjA2Nzc1NjY/YnJhbmNoPWY0NQoKICAgICAg ICAgICAgTG9nOgogICAgICAgICAgICBmZWF0OiB1cGRhdGUgdG8gMC4xMi4yCgotIEZpeGVzIHJo YnojMjQ4NTY4OQotIEZpeGVzIHJoYnojMjUwMzc3NQotIEZpeGVzIHJoYnojMjQzMzg2OQotIEZp eGVzIHJoYnojMjM4MzIyMwotIEZpeGVzIHJoYnojMjMwMzg2OAoKQXNzaXN0ZWQtYnk6IG9wZW5j b2RlIChEZWVwU2VlayBWNCBGbGFzaCkKCi0tLQpkaWZmIC0tZ2l0IGEvLmdpdGlnbm9yZSBiLy5n aXRpZ25vcmUKaW5kZXggOTFhNzA5My4uYzRhNDdjZiAxMDA2NDQKLS0tIGEvLmdpdGlnbm9yZQor KysgYi8uZ2l0aWdub3JlCkBAIC02LDMgKzYsNiBAQAogL2FyYm9yLTAuNi50YXIuZ3oKIC9hcmJv ci0wLjcudGFyLmd6CiAvYXJib3ItMC45LjAudGFyLmd6CisvYXJib3ItMC4xMi4yLnRhci5negor L3RpbnlvcHQtN2U2ZDcwNy50YXIuZ3oKKy91bm9yZGVyZWRfZGVuc2UtNC41LjAudGFyLmd6Cgpk aWZmIC0tZ2l0IGEvMDAwMS1GaXgtYS1mZXctdHlwb3MtdGhhdC1jYXVzZS1mYWlsdXJlLXRvLWNv bXBpbGUtd2l0aC1HLnBhdGNoIGIvMDAwMS1GaXgtYS1mZXctdHlwb3MtdGhhdC1jYXVzZS1mYWls dXJlLXRvLWNvbXBpbGUtd2l0aC1HLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCBkMzM3YTI5Li4wMDAwMDAwCi0tLSBhLzAwMDEtRml4LWEtZmV3LXR5cG9zLXRoYXQtY2F1c2Ut ZmFpbHVyZS10by1jb21waWxlLXdpdGgtRy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQxICsw LDAgQEAKLUZyb20gODg4MGZmNDM1ZjY5YjUxNWE1N2U2MGU4Yjc0MzRkYWQ5ZTQ3ODQ3ZSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206ICJCZW5qYW1pbiBBLiBCZWFzbGV5IiA8Y29kZUBt dXNpY2lubXlicmFpbi5uZXQ+Ci1EYXRlOiBUaHUsIDE2IEphbiAyMDI1IDA5OjQ5OjIwIC0wNTAw Ci1TdWJqZWN0OiBbUEFUQ0hdIEZpeCBhIGZldyB0eXBvcyB0aGF0IGNhdXNlIGZhaWx1cmUgdG8g Y29tcGlsZSB3aXRoIEdDQyAxNQotCi1UaGVzZSB3ZXJlIGV2ZW50dWFsbHkgaW5jbHVkZWQgaW4K LTc2MTIwZDE2YzAwYWU2NzEyOGMzYzY5NDIxYWI3MTJmOTg1ZjM0NDUsIGFsb25nIHdpdGggbWFu eSBvdGhlciBjaGFuZ2VzLgotLS0tCi0gYXJib3IvaW5jbHVkZS9hcmJvci91dGlsL2V4cGVjdGVk LmhwcCB8IDIgKy0KLSBweXRob24vc3RycHJpbnRmLmhwcCAgICAgICAgICAgICAgICAgIHwgMiAr LQotIDIgZmlsZXMgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQotCi1k aWZmIC0tZ2l0IGEvYXJib3IvaW5jbHVkZS9hcmJvci91dGlsL2V4cGVjdGVkLmhwcCBiL2FyYm9y L2luY2x1ZGUvYXJib3IvdXRpbC9leHBlY3RlZC5ocHAKLWluZGV4IDlkODYwZjY1Li4xYWY4OGVi NCAxMDA2NDQKLS0tLSBhL2FyYm9yL2luY2x1ZGUvYXJib3IvdXRpbC9leHBlY3RlZC5ocHAKLSsr KyBiL2FyYm9yL2luY2x1ZGUvYXJib3IvdXRpbC9leHBlY3RlZC5ocHAKLUBAIC00ODYsNyArNDg2 LDcgQEAgc3RydWN0IGV4cGVjdGVkPHZvaWQsIEU+IHsKLSAgICAgLy8gU3dhcCBvcHMuCi0gCi0g ICAgIHZvaWQgc3dhcChleHBlY3RlZCYgb3RoZXIpIHsKLS0gICAgICAgIGRhdGFfLnN3YXAob3Ro ZXIuZGF0YSk7Ci0rICAgICAgICBkYXRhXy5zd2FwKG90aGVyLmRhdGFfKTsKLSAgICAgfQotIAot ICAgICAvLyBBY2Nlc3NvcnMuCi1kaWZmIC0tZ2l0IGEvcHl0aG9uL3N0cnByaW50Zi5ocHAgYi9w eXRob24vc3RycHJpbnRmLmhwcAotaW5kZXggNjM4MDE2NzcuLjJjY2YxMmMxIDEwMDY0NAotLS0t IGEvcHl0aG9uL3N0cnByaW50Zi5ocHAKLSsrKyBiL3B5dGhvbi9zdHJwcmludGYuaHBwCi1AQCAt MTY4LDcgKzE2OCw3IEBAIG5hbWVzcGFjZSBpbXBsIHsKLSAgICAgICAgICAgICBmb3IgKGF1dG8m IHg6IHMuc2VxXykgewotICAgICAgICAgICAgICAgICBpZiAoIWZpcnN0KSBvIDw8IHMuc2VwXzsK LSAgICAgICAgICAgICAgICAgZmlyc3QgPSBmYWxzZTsKLS0gICAgICAgICAgICAgICAgbyA8PCBz LmYoeCk7Ci0rICAgICAgICAgICAgICAgIG8gPDwgcy5mXyh4KTsKLSAgICAgICAgICAgICB9Ci0g ICAgICAgICAgICAgcmV0dXJuIG87Ci0gICAgICAgICB9Ci0tLSAKLTIuNDcuMQotCgpkaWZmIC0t Z2l0IGEvMDAwMS1Vc2UtdmVuZG9yZWQtdGlueW9wdC1hbmQtdW5vcmRlcmVkX2RlbnNlLnBhdGNo IGIvMDAwMS1Vc2UtdmVuZG9yZWQtdGlueW9wdC1hbmQtdW5vcmRlcmVkX2RlbnNlLnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA0Y2Q4MWIKLS0tIC9kZXYvbnVsbAor KysgYi8wMDAxLVVzZS12ZW5kb3JlZC10aW55b3B0LWFuZC11bm9yZGVyZWRfZGVuc2UucGF0Y2gK QEAgLTAsMCArMSw0NyBAQAorRnJvbSBhYWM4MzkzZDlhYTlkMjU1ZDE5MjQyYzE3OTJkOGJlOTQz M2Y0MjQ3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogIkFua3VyIFNpbmhhIChBbmt1 ciBTaW5oYSBHbWFpbCkiIDxzYW5qYXkuYW5rdXJAZ21haWwuY29tPgorRGF0ZTogVHVlLCAxOCBB dWcgMjAyNiAxMTo0MjowMiArMDEwMAorU3ViamVjdDogW1BBVENIXSBVc2UgdmVuZG9yZWQgdGlu eW9wdCBhbmQgdW5vcmRlcmVkX2RlbnNlIGluc3RlYWQgb2YgQ1BNCisgZG93bmxvYWRzCisKK3Rp bnlvcHQgYW5kIHVub3JkZXJlZF9kZW5zZSBhcmUgaGVhZGVyLW9ubHkgbGlicmFyaWVzIHRoYXQg YXJlIG5vdAorcGFja2FnZWQgaW4gRmVkb3JhLiBDUE0gd291bGQgZG93bmxvYWQgdGhlbSBmcm9t IEdpdEh1YiBhdCBjb25maWd1cmUKK3RpbWUsIHdoaWNoIGZhaWxzIGluIHRoZSBvZmZsaW5lIGJ1 aWxkcm9vdC4gVXNlIHRoZSBjb3BpZXMgdmVuZG9yZWQKK3VuZGVyIGV4dC8gaW5zdGVhZC4KKy0t LQorIENNYWtlTGlzdHMudHh0IHwgMTcgKystLS0tLS0tLS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdl ZCwgMiBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL0NNYWtl TGlzdHMudHh0IGIvQ01ha2VMaXN0cy50eHQKK2luZGV4IGYwZDIyOWNhLi41ZGE4MjNlNyAxMDA2 NDQKKy0tLSBhL0NNYWtlTGlzdHMudHh0CisrKysgYi9DTWFrZUxpc3RzLnR4dAorQEAgLTM5OSwy MyArMzk5LDEwIEBAIGlmKHVuaXRzX0FEREVEKQorIGVuZGlmKCkKKyBsaXN0KEFQUEVORCBhcmJv cl9leHBvcnRfZGVwZW5kZW5jaWVzIHVuaXRzKQorIAorLUNQTUZpbmRQYWNrYWdlKE5BTUUgdW5v cmRlcmVkX2RlbnNlCistICAgICAgICAgICAgICAgR0lUSFVCX1JFUE9TSVRPUlkgbWFydGludXMv dW5vcmRlcmVkX2RlbnNlCistICAgICAgICAgICAgICAgVkVSU0lPTiA0LjUuMAorLSAgICAgICAg ICAgICAgIFNZU1RFTSBZRVMKKy0gICAgICAgICAgICAgICBFWENMVURFX0ZST01fQUxMIFlFUykK Ky0KKy1DUE1GaW5kUGFja2FnZShOQU1FIHRpbnlvcHQKKy0gICAgICAgICAgICAgICBHSVRIVUJf UkVQT1NJVE9SWSBoYWxmZmxhdC90aW55b3B0CistICAgICAgICAgICAgICAgR0lUX1RBRyA3ZTZk NzA3ZDQ5YzZjYjRiZTI3ZWJkMjUzODU2YmU2NTI5MzI4OGRmCistICAgICAgICAgICAgICAgRE9X TkxPQURfT05MWSBZRVMpCisrc2V0KHVub3JkZXJlZF9kZW5zZV9TT1VSQ0VfRElSICR7Q01BS0Vf Q1VSUkVOVF9TT1VSQ0VfRElSfS9leHQvdW5vcmRlcmVkX2RlbnNlKQorIAorIGFkZF9saWJyYXJ5 KGV4dC10aW55b3B0IElOVEVSRkFDRSkKKy1pZih0aW55b3B0X0FEREVEKQorLSAgdGFyZ2V0X2lu Y2x1ZGVfZGlyZWN0b3JpZXMoZXh0LXRpbnlvcHQgSU5URVJGQUNFICQ8QlVJTERfSU5URVJGQUNF OiR7dGlueW9wdF9TT1VSQ0VfRElSfS9pbmNsdWRlPikKKy1lbHNlKCkKKy0gICAgbWVzc2FnZShG QVRBTF9FUlJPUiAiQ291bGQgbm90IG9idGFpbiB0aW55b3B0LiIpCistZW5kaWYoKQorK3Rhcmdl dF9pbmNsdWRlX2RpcmVjdG9yaWVzKGV4dC10aW55b3B0IElOVEVSRkFDRSAkPEJVSUxEX0lOVEVS RkFDRToke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vZXh0L3RpbnlvcHQvaW5jbHVkZT4pCisg CisgIyBoaWRlIGFsbCBpbnRlcm5hbCB2YXJzCisgbWFya19hc19hZHZhbmNlZChGT1JDRSBiZW5j aG1hcmtfRElSIEJFTkNITUFSS19CVUlMRF8zMl9CSVRTIEJFTkNITUFSS19ET1dOTE9BRF9ERVBF TkRFTkNJRVMgQkVOQ0hNQVJLX0VOQUJMRV9BU1NFTUJMWV9URVNUUyBCRU5DSE1BUktfRU5BQkxF X0RPWFlHRU4gQkVOQ0hNQVJLX0VOQUJMRV9FWENFUFRJT05TIEJFTkNITUFSS19FTkFCTEVfR1RF U1RfVEVTVFMgQkVOQ0hNQVJLX0VOQUJMRV9JTlNUQUxMIEJFTkNITUFSS19FTkFCTEVfTElCUEZN IEJFTkNITUFSS19FTkFCTEVfTFRPIEJFTkNITUFSS19FTkFCTEVfV0VSUk9SIEJFTkNITUFSS19G T1JDRV9XRVJST1IgQkVOQ0hNQVJLX0lOU1RBTExfRE9DUyBCRU5DSE1BUktfVVNFX0JVTkRMRURf R1RFU1QgQkVOQ0hNQVJLX1VTRV9MSUJDWFgpCistLSAKKzIuNTUuMAorCgpkaWZmIC0tZ2l0IGEv MDAwMi1Vc2Utc3lzdGVtLVJhbmRvbTEyMy5wYXRjaCBiLzAwMDItVXNlLXN5c3RlbS1SYW5kb20x MjMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGViODMxOAotLS0g L2Rldi9udWxsCisrKyBiLzAwMDItVXNlLXN5c3RlbS1SYW5kb20xMjMucGF0Y2gKQEAgLTAsMCAr MSwzOSBAQAorRnJvbSA2OWY4OTcwY2I5NzQ4YTlmNGY3OTEyOGEyYzRiZWY1NGNhMjlkMWZjIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogIkFua3VyIFNpbmhhIChBbmt1ciBTaW5oYSBH bWFpbCkiIDxzYW5qYXkuYW5rdXJAZ21haWwuY29tPgorRGF0ZTogVHVlLCAxOCBBdWcgMjAyNiAx Mjo0NzowMSArMDEwMAorU3ViamVjdDogW1BBVENIXSBVc2Ugc3lzdGVtIFJhbmRvbTEyMyBpbnN0 ZWFkIG9mIENQTSBkb3dubG9hZAorCitmaW5kX3BhY2thZ2UocmFuZG9tMTIzKSBpbiBDUE0gZmFp bHMgYmVjYXVzZSB0aGUgc2hpcHBlZCBGaW5kUmFuZG9tMTIzLmNtYWtlCittb2R1bGUgaXMgb25s eSBmb3VuZCBmb3IgdGhlIGNhcGl0YWxpc2VkIG5hbWUsIHNvIENQTSB0cmllcyB0byBkb3dubG9h ZCB0aGUKK2xpYnJhcnkgZnJvbSBHaXRIdWIgYXQgY29uZmlndXJlIHRpbWUsIHdoaWNoIGZhaWxz IGluIHRoZSBvZmZsaW5lIGJ1aWxkcm9vdC4KK1VzZSBmaW5kX3BhY2thZ2UoUmFuZG9tMTIzKSBk aXJlY3RseSBpbnN0ZWFkLgorLS0tCisgQ01ha2VMaXN0cy50eHQgfCAxMSArKy0tLS0tLS0tLQor IDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCisKK2RpZmYg LS1naXQgYS9DTWFrZUxpc3RzLnR4dCBiL0NNYWtlTGlzdHMudHh0CitpbmRleCA1ZGE4MjNlNy4u ZGVlODg4YmUgMTAwNjQ0CistLS0gYS9DTWFrZUxpc3RzLnR4dAorKysrIGIvQ01ha2VMaXN0cy50 eHQKK0BAIC0zMTcsMTYgKzMxNyw5IEBAIGlmKG5sb2htYW5uX2pzb25fQURERUQpCisgZW5kaWYo KQorIAorIAorK2ZpbmRfcGFja2FnZShSYW5kb20xMjMgUkVRVUlSRUQpCisgYWRkX2xpYnJhcnko ZXh0LXJhbmRvbTEyMyBJTlRFUkZBQ0UpCistQ1BNRmluZFBhY2thZ2UoTkFNRSByYW5kb20xMjMK Ky0gICAgICAgICAgICAgICBET1dOTE9BRF9PTkxZIFlFUworLSAgICAgICAgICAgICAgIEdJVEhV Ql9SRVBPU0lUT1JZIERFU2hhd1Jlc2VhcmNoL3JhbmRvbTEyMworLSAgICAgICAgICAgICAgIFZF UlNJT04gMS4xNC4wKQorLWlmKHJhbmRvbTEyM19BRERFRCkKKy0gICAgdGFyZ2V0X2luY2x1ZGVf ZGlyZWN0b3JpZXMoZXh0LXJhbmRvbTEyMyBJTlRFUkZBQ0UgJDxCVUlMRF9JTlRFUkZBQ0U6JHty YW5kb20xMjNfU09VUkNFX0RJUn0vaW5jbHVkZT4pCistZWxzZSgpCistICAgIHRhcmdldF9pbmNs dWRlX2RpcmVjdG9yaWVzKGV4dC1yYW5kb20xMjMgSU5URVJGQUNFICR7UkFORE9NMTIzX0lOQ0xV REVfRElSfSkKKy1lbmRpZigpCisrdGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3JpZXMoZXh0LXJhbmRv bTEyMyBJTlRFUkZBQ0UgJHtSQU5ET00xMjNfSU5DTFVERV9ESVJ9KQorIGluc3RhbGwoVEFSR0VU UyBleHQtcmFuZG9tMTIzIEVYUE9SVCBhcmJvci10YXJnZXRzKQorIAorIGlmIChBUkJfV0lUSF9Q WVRIT04pCistLSAKKzIuNTUuMAorCgpkaWZmIC0tZ2l0IGEvMDAwMy1Vc2Utc3lzdGVtLUdUZXN0 LnBhdGNoIGIvMDAwMy1Vc2Utc3lzdGVtLUdUZXN0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLmNiYmM0ZmQKLS0tIC9kZXYvbnVsbAorKysgYi8wMDAzLVVzZS1zeXN0 ZW0tR1Rlc3QucGF0Y2gKQEAgLTAsMCArMSw0NCBAQAorRnJvbSBkOTdhMWJkOTg3NzUxMjlmMDk4 MmZlNDA5MDVmNjUwMmU0NTBiZmQ1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogIkFu a3VyIFNpbmhhIChBbmt1ciBTaW5oYSBHbWFpbCkiIDxzYW5qYXkuYW5rdXJAZ21haWwuY29tPgor RGF0ZTogVHVlLCAxOCBBdWcgMjAyNiAxMjo0NzowOSArMDEwMAorU3ViamVjdDogW1BBVENIXSBV c2Ugc3lzdGVtIEdUZXN0IGluc3RlYWQgb2YgQ1BNIGRvd25sb2FkCisKK1RoZSBndGVzdC1kZXZl bCBwYWNrYWdlIG9ubHkgcHJvdmlkZXMgYSBHVGVzdENvbmZpZy5jbWFrZSwgc28KK2ZpbmRfcGFj a2FnZShnb29nbGV0ZXN0KSBpbiBDUE0gZmFpbHMgYW5kIGl0IHRyaWVzIHRvIGRvd25sb2FkIGdv b2dsZXRlc3QgZnJvbQorR2l0SHViIGF0IGNvbmZpZ3VyZSB0aW1lLCB3aGljaCBmYWlscyBpbiB0 aGUgb2ZmbGluZSBidWlsZHJvb3QuIFVzZQorZmluZF9wYWNrYWdlKEdUZXN0KSBkaXJlY3RseSBh bmQgbGluayBhZ2FpbnN0IHRoZSBHVGVzdDo6Z3Rlc3QgaW1wb3J0ZWQKK3RhcmdldHMgaW5zdGVh ZC4KKy0tLQorIENNYWtlTGlzdHMudHh0IHwgMTEgKystLS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdl ZCwgMiBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvQ01ha2VM aXN0cy50eHQgYi9DTWFrZUxpc3RzLnR4dAoraW5kZXggZGVlODg4YmUuLmNlZjRmNGEyIDEwMDY0 NAorLS0tIGEvQ01ha2VMaXN0cy50eHQKKysrKyBiL0NNYWtlTGlzdHMudHh0CitAQCAtMzU3LDIw ICszNTcsMTMgQEAgaWYgKEJVSUxEX1RFU1RJTkcpCisgICAgICAgICAgICAgICAgICAgR0lUSFVC X1JFUE9TSVRPUlkgZ29vZ2xlL2JlbmNobWFyaworICAgICAgICAgICAgICAgICAgIFZFUlNJT04g MS44LjMKKyAgICAgICAgICAgICAgICAgICBPUFRJT05TICJCRU5DSE1BUktfRU5BQkxFX1RFU1RJ TkcgT0ZGIiAiQ01BS0VfQlVJTERfVFlQRSByZWxlYXNlIiAiQlVJTERfU0hBUkVEX0xJQlMgT0ZG IikKKy0gICAgQ1BNRmluZFBhY2thZ2UoTkFNRSBnb29nbGV0ZXN0CistICAgICAgICAgICAgICAg ICAgR0lUSFVCX1JFUE9TSVRPUlkgZ29vZ2xlL2dvb2dsZXRlc3QKKy0gICAgICAgICAgICAgICAg ICBWRVJTSU9OIDEuMTcuMAorLSAgICAgICAgICAgICAgICAgIE9QVElPTlMgIklOU1RBTExfR1RF U1QgT0ZGIiAiQlVJTERfR01PQ0sgT0ZGIikKKysgICAgZmluZF9wYWNrYWdlKEdUZXN0IFJFUVVJ UkVEKQorICAgICBpZihiZW5jaG1hcmtfQURERUQpCisgICAgICAgICB0YXJnZXRfbGlua19saWJy YXJpZXMoZXh0LWJlbmNoIElOVEVSRkFDRSBiZW5jaG1hcmspCisgICAgIGVsc2UoKQorICAgICAg ICAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKGV4dC1iZW5jaCBJTlRFUkZBQ0UgYmVuY2htYXJrOjpi ZW5jaG1hcmspCisgICAgIGVuZGlmKCkKKy0gICAgaWYoZ29vZ2xldGVzdF9BRERFRCkKKy0gICAg ICAgIHRhcmdldF9saW5rX2xpYnJhcmllcyhleHQtZ3Rlc3QgSU5URVJGQUNFICkKKy0gICAgZWxz ZSgpCistICAgICAgICB0YXJnZXRfbGlua19saWJyYXJpZXMoZXh0LWd0ZXN0IElOVEVSRkFDRSBn dGVzdCBndGVzdF9tYWluKQorLSAgICBlbmRpZigpCisrICAgIHRhcmdldF9saW5rX2xpYnJhcmll cyhleHQtZ3Rlc3QgSU5URVJGQUNFIEdUZXN0OjpndGVzdCBHVGVzdDo6Z3Rlc3RfbWFpbikKKyBl bmRpZigpCisgCisgQ1BNRmluZFBhY2thZ2UoTkFNRSB1bml0cworLS0gCisyLjU1LjAKKwoKZGlm ZiAtLWdpdCBhLzAwMDQtQWRkLW1pc3Npbmctc3RhbmRhcmQtaW5jbHVkZXMtdG8tcHJvZmlsZXIu cGF0Y2ggYi8wMDA0LUFkZC1taXNzaW5nLXN0YW5kYXJkLWluY2x1ZGVzLXRvLXByb2ZpbGVyLnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQzOGI1ODMKLS0tIC9kZXYv bnVsbAorKysgYi8wMDA0LUFkZC1taXNzaW5nLXN0YW5kYXJkLWluY2x1ZGVzLXRvLXByb2ZpbGVy LnBhdGNoCkBAIC0wLDAgKzEsMzAgQEAKK0Zyb20gZjVkOTYyOTg3MDk2NjM3NTkxYmRhMGY3OGQ2 Y2I1NjIzOTZlMjE3ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ICJBbmt1ciBTaW5o YSAoQW5rdXIgU2luaGEgR21haWwpIiA8c2FuamF5LmFua3VyQGdtYWlsLmNvbT4KK0RhdGU6IFR1 ZSwgMTggQXVnIDIwMjYgMTM6MDI6NDcgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gQWRkIG1pc3Np bmcgc3RhbmRhcmQgaW5jbHVkZXMgdG8gcHJvZmlsZXIuaHBwCisKK1RoZSBoZWFkZXIgdXNlcyBz dGQ6OnNpemVfdCwgc3RkOjp1aW50MzJfdCBhbmQgc3RkOjpzdHJpbmcgYnV0IGRpZCBub3QKK2lu Y2x1ZGUgPGNzdGRkZWY+LCA8Y3N0ZGludD4gYW5kIDxzdHJpbmc+LiBUaGlzIGZhaWxzIHRvIGNv bXBpbGUgd2l0aCBHQ0MgMTYKK3doZW4gdGhlIHR5cGVzIGFyZSBub3QgcHVsbGVkIGluIHRyYW5z aXRpdmVseSwgZS5nLiBmb3IgdGhlIE9wZW5NUEkgYnVpbGQgb2YKK2FyYm9yL2NvbW11bmljYXRp b24vbXBpLmNwcC4KKy0tLQorIGFyYm9yL2luY2x1ZGUvYXJib3IvcHJvZmlsZS9wcm9maWxlci5o cHAgfCAzICsrKworIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKykKKworZGlmZiAtLWdp dCBhL2FyYm9yL2luY2x1ZGUvYXJib3IvcHJvZmlsZS9wcm9maWxlci5ocHAgYi9hcmJvci9pbmNs dWRlL2FyYm9yL3Byb2ZpbGUvcHJvZmlsZXIuaHBwCitpbmRleCAxNWUwYTE3Ni4uNGU0ZjkwOTcg MTAwNjQ0CistLS0gYS9hcmJvci9pbmNsdWRlL2FyYm9yL3Byb2ZpbGUvcHJvZmlsZXIuaHBwCisr KysgYi9hcmJvci9pbmNsdWRlL2FyYm9yL3Byb2ZpbGUvcHJvZmlsZXIuaHBwCitAQCAtMSw2ICsx LDkgQEAKKyAjcHJhZ21hIG9uY2UKKyAKKysjaW5jbHVkZSA8Y3N0ZGRlZj4KKysjaW5jbHVkZSA8 Y3N0ZGludD4KKyAjaW5jbHVkZSA8b3N0cmVhbT4KKysjaW5jbHVkZSA8c3RyaW5nPgorICNpbmNs dWRlIDx2ZWN0b3I+CisgCisgI2luY2x1ZGUgPGFyYm9yL2V4cG9ydC5ocHA+CistLSAKKzIuNTUu MAorCgpkaWZmIC0tZ2l0IGEvQ1BNXzAuMzkuMC5jbWFrZSBiL0NQTV8wLjM5LjAuY21ha2UKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTAxZmMyNQotLS0gL2Rldi9udWxsCisr KyBiL0NQTV8wLjM5LjAuY21ha2UKQEAgLTAsMCArMSwxMTU5IEBACisjIENQTS5jbWFrZSAtIENN YWtlJ3MgbWlzc2luZyBwYWNrYWdlIG1hbmFnZXIKKyMgPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorIyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NwbS1jbWFrZS9D UE0uY21ha2UgZm9yIHVzYWdlIGFuZCB1cGRhdGUgaW5zdHJ1Y3Rpb25zLgorIworIyBNSVQgTGlj ZW5zZQorIyAtLS0tLS0tLS0tLQorI1tbCisgIENvcHlyaWdodCAoYykgMjAxOS0yMDIzIExhcnMg TWVsY2hpb3IgYW5kIGNvbnRyaWJ1dG9ycworCisgIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50 ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKKyAgb2Yg dGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNv ZnR3YXJlIiksIHRvIGRlYWwKKyAgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24s IGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cworICB0byB1c2UsIGNvcHks IG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBz ZWxsCisgIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3 aG9tIHRoZSBTb2Z0d2FyZSBpcworICBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhl IGZvbGxvd2luZyBjb25kaXRpb25zOgorCisgIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFu ZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbAorICBjb3Bp ZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorCisgIFRIRSBTT0ZU V0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBF WFBSRVNTIE9SCisgIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdB UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAgQVVU SE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdF UyBPUiBPVEhFUgorICBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNU LCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLAorICBPVVQgT0YgT1IgSU4gQ09OTkVD VElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRI RQorICBTT0ZUV0FSRS4KK11dCisKK2NtYWtlX21pbmltdW1fcmVxdWlyZWQoVkVSU0lPTiAzLjE0 IEZBVEFMX0VSUk9SKQorCisjIEluaXRpYWxpemUgbG9nZ2luZyBwcmVmaXgKK2lmKE5PVCBDUE1f SU5ERU5UKQorICBzZXQoQ1BNX0lOREVOVAorICAgICAgIkNQTToiCisgICAgICBDQUNIRSBJTlRF Uk5BTCAiIgorICApCitlbmRpZigpCisKK2lmKE5PVCBDT01NQU5EIGNwbV9tZXNzYWdlKQorICBm dW5jdGlvbihjcG1fbWVzc2FnZSkKKyAgICBtZXNzYWdlKCR7QVJHVn0pCisgIGVuZGZ1bmN0aW9u KCkKK2VuZGlmKCkKKworc2V0KENVUlJFTlRfQ1BNX1ZFUlNJT04gMS4wLjAtZGV2ZWxvcG1lbnQt dmVyc2lvbikKKworZ2V0X2ZpbGVuYW1lX2NvbXBvbmVudChDUE1fQ1VSUkVOVF9ESVJFQ1RPUlkg IiR7Q01BS0VfQ1VSUkVOVF9MSVNUX0RJUn0iIFJFQUxQQVRIKQoraWYoQ1BNX0RJUkVDVE9SWSkK KyAgaWYoTk9UIENQTV9ESVJFQ1RPUlkgU1RSRVFVQUwgQ1BNX0NVUlJFTlRfRElSRUNUT1JZKQor ICAgIGlmKENQTV9WRVJTSU9OIFZFUlNJT05fTEVTUyBDVVJSRU5UX0NQTV9WRVJTSU9OKQorICAg ICAgbWVzc2FnZSgKKyAgICAgICAgQVVUSE9SX1dBUk5JTkcKKyAgICAgICAgICAiJHtDUE1fSU5E RU5UfSBcCitBIGRlcGVuZGVuY3kgaXMgdXNpbmcgYSBtb3JlIHJlY2VudCBDUE0gdmVyc2lvbiAo JHtDVVJSRU5UX0NQTV9WRVJTSU9OfSkgdGhhbiB0aGUgY3VycmVudCBwcm9qZWN0ICgke0NQTV9W RVJTSU9OfSkuIFwKK0l0IGlzIHJlY29tbWVuZGVkIHRvIHVwZ3JhZGUgQ1BNIHRvIHRoZSBtb3N0 IHJlY2VudCB2ZXJzaW9uLiBcCitTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NwbS1jbWFrZS9DUE0u Y21ha2UgZm9yIG1vcmUgaW5mb3JtYXRpb24uIgorICAgICAgKQorICAgIGVuZGlmKCkKKyAgICBp Zigke0NNQUtFX1ZFUlNJT059IFZFUlNJT05fTEVTUyAiMy4xNy4wIikKKyAgICAgIGluY2x1ZGUo RmV0Y2hDb250ZW50KQorICAgIGVuZGlmKCkKKyAgICByZXR1cm4oKQorICBlbmRpZigpCisKKyAg Z2V0X3Byb3BlcnR5KAorICAgIENQTV9JTklUSUFMSVpFRCBHTE9CQUwgIiIKKyAgICBQUk9QRVJU WSBDUE1fSU5JVElBTElaRUQKKyAgICBTRVQKKyAgKQorICBpZihDUE1fSU5JVElBTElaRUQpCisg ICAgcmV0dXJuKCkKKyAgZW5kaWYoKQorZW5kaWYoKQorCitpZihDVVJSRU5UX0NQTV9WRVJTSU9O IE1BVENIRVMgImRldmVsb3BtZW50LXZlcnNpb24iKQorICBtZXNzYWdlKAorICAgIFdBUk5JTkcg IiR7Q1BNX0lOREVOVH0gWW91ciBwcm9qZWN0IGlzIHVzaW5nIGFuIHVuc3RhYmxlIGRldmVsb3Bt ZW50IHZlcnNpb24gb2YgQ1BNLmNtYWtlLiBcCitQbGVhc2UgdXBkYXRlIHRvIGEgcmVjZW50IHJl bGVhc2UgaWYgcG9zc2libGUuIFwKK1NlZSBodHRwczovL2dpdGh1Yi5jb20vY3BtLWNtYWtlL0NQ TS5jbWFrZSBmb3IgZGV0YWlscy4iCisgICkKK2VuZGlmKCkKKworc2V0X3Byb3BlcnR5KEdMT0JB TCBQUk9QRVJUWSBDUE1fSU5JVElBTElaRUQgdHJ1ZSkKKworbWFjcm8oY3BtX3NldF9wb2xpY2ll cykKKyAgIyB0aGUgcG9saWN5IGFsbG93cyB1cyB0byBjaGFuZ2Ugb3B0aW9ucyB3aXRob3V0IGNh Y2hpbmcKKyAgY21ha2VfcG9saWN5KFNFVCBDTVAwMDc3IE5FVykKKyAgc2V0KENNQUtFX1BPTElD WV9ERUZBVUxUX0NNUDAwNzcgTkVXKQorCisgICMgdGhlIHBvbGljeSBhbGxvd3MgdXMgdG8gY2hh bmdlIHNldChDQUNIRSkgd2l0aG91dCBjYWNoaW5nCisgIGlmKFBPTElDWSBDTVAwMTI2KQorICAg IGNtYWtlX3BvbGljeShTRVQgQ01QMDEyNiBORVcpCisgICAgc2V0KENNQUtFX1BPTElDWV9ERUZB VUxUX0NNUDAxMjYgTkVXKQorICBlbmRpZigpCisKKyAgIyBUaGUgcG9saWN5IHVzZXMgdGhlIGRv d25sb2FkIHRpbWUgZm9yIHRpbWVzdGFtcCwgaW5zdGVhZCBvZiB0aGUgdGltZXN0YW1wIGluIHRo ZSBhcmNoaXZlLiBUaGlzCisgICMgYWxsb3dzIGZvciBwcm9wZXIgcmVidWlsZHMgd2hlbiBhIHBy b2plY3RzIHVybCBjaGFuZ2VzCisgIGlmKFBPTElDWSBDTVAwMTM1KQorICAgIGNtYWtlX3BvbGlj eShTRVQgQ01QMDEzNSBORVcpCisgICAgc2V0KENNQUtFX1BPTElDWV9ERUZBVUxUX0NNUDAxMzUg TkVXKQorICBlbmRpZigpCisKKyAgIyB0cmVhdCByZWxhdGl2ZSBnaXQgcmVwb3NpdG9yeSBwYXRo cyBhcyBiZWluZyByZWxhdGl2ZSB0byB0aGUgcGFyZW50IHByb2plY3QncyByZW1vdGUKKyAgaWYo UE9MSUNZIENNUDAxNTApCisgICAgY21ha2VfcG9saWN5KFNFVCBDTVAwMTUwIE5FVykKKyAgICBz ZXQoQ01BS0VfUE9MSUNZX0RFRkFVTFRfQ01QMDE1MCBORVcpCisgIGVuZGlmKCkKK2VuZG1hY3Jv KCkKK2NwbV9zZXRfcG9saWNpZXMoKQorCitvcHRpb24oQ1BNX1VTRV9MT0NBTF9QQUNLQUdFUyAi QWx3YXlzIHRyeSB0byB1c2UgYGZpbmRfcGFja2FnZWAgdG8gZ2V0IGRlcGVuZGVuY2llcyIKKyAg ICAgICAkRU5We0NQTV9VU0VfTE9DQUxfUEFDS0FHRVN9CispCitvcHRpb24oQ1BNX0xPQ0FMX1BB Q0tBR0VTX09OTFkgIk9ubHkgdXNlIGBmaW5kX3BhY2thZ2VgIHRvIGdldCBkZXBlbmRlbmNpZXMi CisgICAgICAgJEVOVntDUE1fTE9DQUxfUEFDS0FHRVNfT05MWX0KKykKK29wdGlvbihDUE1fRE9X TkxPQURfQUxMICJBbHdheXMgZG93bmxvYWQgZGVwZW5kZW5jaWVzIGZyb20gc291cmNlIiAkRU5W e0NQTV9ET1dOTE9BRF9BTEx9KQorb3B0aW9uKENQTV9ET05UX1VQREFURV9NT0RVTEVfUEFUSCAi RG9uJ3QgdXBkYXRlIHRoZSBtb2R1bGUgcGF0aCB0byBhbGxvdyB1c2luZyBmaW5kX3BhY2thZ2Ui CisgICAgICAgJEVOVntDUE1fRE9OVF9VUERBVEVfTU9EVUxFX1BBVEh9CispCitvcHRpb24oQ1BN X0RPTlRfQ1JFQVRFX1BBQ0tBR0VfTE9DSyAiRG9uJ3QgY3JlYXRlIGEgcGFja2FnZSBsb2NrIGZp bGUgaW4gdGhlIGJpbmFyeSBwYXRoIgorICAgICAgICRFTlZ7Q1BNX0RPTlRfQ1JFQVRFX1BBQ0tB R0VfTE9DS30KKykKK29wdGlvbihDUE1fSU5DTFVERV9BTExfSU5fUEFDS0FHRV9MT0NLCisgICAg ICAgIkFkZCBhbGwgcGFja2FnZXMgYWRkZWQgdGhyb3VnaCBDUE0uY21ha2UgdG8gdGhlIHBhY2th Z2UgbG9jayIKKyAgICAgICAkRU5We0NQTV9JTkNMVURFX0FMTF9JTl9QQUNLQUdFX0xPQ0t9Cisp CitvcHRpb24oQ1BNX1VTRV9OQU1FRF9DQUNIRV9ESVJFQ1RPUklFUworICAgICAgICJVc2UgYWRk aXRpb25hbCBkaXJlY3Rvcnkgb2YgcGFja2FnZSBuYW1lIGluIGNhY2hlIG9uIHRoZSBtb3N0IG5l c3RlZCBsZXZlbC4iCisgICAgICAgJEVOVntDUE1fVVNFX05BTUVEX0NBQ0hFX0RJUkVDVE9SSUVT fQorKQorCitzZXQoQ1BNX1ZFUlNJT04KKyAgICAke0NVUlJFTlRfQ1BNX1ZFUlNJT059CisgICAg Q0FDSEUgSU5URVJOQUwgIiIKKykKK3NldChDUE1fRElSRUNUT1JZCisgICAgJHtDUE1fQ1VSUkVO VF9ESVJFQ1RPUll9CisgICAgQ0FDSEUgSU5URVJOQUwgIiIKKykKK3NldChDUE1fRklMRQorICAg ICR7Q01BS0VfQ1VSUkVOVF9MSVNUX0ZJTEV9CisgICAgQ0FDSEUgSU5URVJOQUwgIiIKKykKK3Nl dChDUE1fUEFDS0FHRVMKKyAgICAiIgorICAgIENBQ0hFIElOVEVSTkFMICIiCispCitzZXQoQ1BN X0RSWV9SVU4KKyAgICBPRkYKKyAgICBDQUNIRSBJTlRFUk5BTCAiRG9uJ3QgZG93bmxvYWQgb3Ig Y29uZmlndXJlIGRlcGVuZGVuY2llcyAoZm9yIHRlc3RpbmcpIgorKQorCitpZihERUZJTkVEIEVO VntDUE1fU09VUkNFX0NBQ0hFfSkKKyAgc2V0KENQTV9TT1VSQ0VfQ0FDSEVfREVGQVVMVCAkRU5W e0NQTV9TT1VSQ0VfQ0FDSEV9KQorZWxzZSgpCisgIHNldChDUE1fU09VUkNFX0NBQ0hFX0RFRkFV TFQgT0ZGKQorZW5kaWYoKQorCitzZXQoQ1BNX1NPVVJDRV9DQUNIRQorICAgICR7Q1BNX1NPVVJD RV9DQUNIRV9ERUZBVUxUfQorICAgIENBQ0hFIFBBVEggIkRpcmVjdG9yeSB0byBkb3dubG9hZCBD UE0gZGVwZW5kZW5jaWVzIgorKQorCitpZihOT1QgQ1BNX0RPTlRfVVBEQVRFX01PRFVMRV9QQVRI KQorICBzZXQoQ1BNX01PRFVMRV9QQVRICisgICAgICAiJHtDTUFLRV9CSU5BUllfRElSfS9DUE1f bW9kdWxlcyIKKyAgICAgIENBQ0hFIElOVEVSTkFMICIiCisgICkKKyAgIyByZW1vdmUgb2xkIG1v ZHVsZXMKKyAgZmlsZShSRU1PVkVfUkVDVVJTRSAke0NQTV9NT0RVTEVfUEFUSH0pCisgIGZpbGUo TUFLRV9ESVJFQ1RPUlkgJHtDUE1fTU9EVUxFX1BBVEh9KQorICAjIGxvY2FsbHkgYWRkZWQgQ1BN IG1vZHVsZXMgc2hvdWxkIG92ZXJyaWRlIGdsb2JhbCBwYWNrYWdlcworICBzZXQoQ01BS0VfTU9E VUxFX1BBVEggIiR7Q1BNX01PRFVMRV9QQVRIfTske0NNQUtFX01PRFVMRV9QQVRIfSIpCitlbmRp ZigpCisKK2lmKE5PVCBDUE1fRE9OVF9DUkVBVEVfUEFDS0FHRV9MT0NLKQorICBzZXQoQ1BNX1BB Q0tBR0VfTE9DS19GSUxFCisgICAgICAiJHtDTUFLRV9CSU5BUllfRElSfS9jcG0tcGFja2FnZS1s b2NrLmNtYWtlIgorICAgICAgQ0FDSEUgSU5URVJOQUwgIiIKKyAgKQorICBmaWxlKFdSSVRFICR7 Q1BNX1BBQ0tBR0VfTE9DS19GSUxFfQorICAgICAgICIjIENQTSBQYWNrYWdlIExvY2tcbiMgVGhp cyBmaWxlIHNob3VsZCBiZSBjb21taXR0ZWQgdG8gdmVyc2lvbiBjb250cm9sXG5cbiIKKyAgKQor ZW5kaWYoKQorCitpbmNsdWRlKEZldGNoQ29udGVudCkKKworIyBUcnkgdG8gaW5mZXIgcGFja2Fn ZSBuYW1lIGZyb20gZ2l0IHJlcG9zaXRvcnkgdXJpIChwYXRoIG9yIHVybCkKK2Z1bmN0aW9uKGNw bV9wYWNrYWdlX25hbWVfZnJvbV9naXRfdXJpIFVSSSBSRVNVTFQpCisgIGlmKCIke1VSSX0iIE1B VENIRVMgIihbXi86XSspLz8uZ2l0Lz8kIikKKyAgICBzZXQoJHtSRVNVTFR9CisgICAgICAgICR7 Q01BS0VfTUFUQ0hfMX0KKyAgICAgICAgUEFSRU5UX1NDT1BFCisgICAgKQorICBlbHNlKCkKKyAg ICB1bnNldCgke1JFU1VMVH0gUEFSRU5UX1NDT1BFKQorICBlbmRpZigpCitlbmRmdW5jdGlvbigp CisKKyMgVHJ5IHRvIGluZmVyIHBhY2thZ2UgbmFtZSBhbmQgdmVyc2lvbiBmcm9tIGEgdXJsCitm dW5jdGlvbihjcG1fcGFja2FnZV9uYW1lX2FuZF92ZXJfZnJvbV91cmwgdXJsIG91dE5hbWUgb3V0 VmVyKQorICBpZih1cmwgTUFUQ0hFUyAiWy9cXD9dKFthLXpBLVowLTlfXFwuLV0rKVxcLih0YXJ8 dGFyXFwuZ3p8dGFyXFwuYnoyfHppcHxaSVApKFxcP3wvfCQpIikKKyAgICAjIFdlIG1hdGNoZWQg YW4gYXJjaGl2ZQorICAgIHNldChmaWxlbmFtZSAiJHtDTUFLRV9NQVRDSF8xfSIpCisKKyAgICBp ZihmaWxlbmFtZSBNQVRDSEVTICIoW2EtekEtWjAtOV9cXC4tXSspW18tXXY/KChbMC05XStcXC4p KlswLTldK1thLXpBLVowLTldKikiKQorICAgICAgIyBXZSBtYXRjaGVkIDxuYW1lPi08dmVyc2lv bj4gKGllIGZvby0xLjIuMykKKyAgICAgIHNldCgke291dE5hbWV9CisgICAgICAgICAgIiR7Q01B S0VfTUFUQ0hfMX0iCisgICAgICAgICAgUEFSRU5UX1NDT1BFCisgICAgICApCisgICAgICBzZXQo JHtvdXRWZXJ9CisgICAgICAgICAgIiR7Q01BS0VfTUFUQ0hfMn0iCisgICAgICAgICAgUEFSRU5U X1NDT1BFCisgICAgICApCisgICAgZWxzZWlmKGZpbGVuYW1lIE1BVENIRVMgIigoWzAtOV0rXFwu KStbMC05XStbYS16QS1aMC05XSopIikKKyAgICAgICMgV2UgY291bGRuJ3QgZmluZCBhIG5hbWUs IGJ1dCB3ZSBmb3VuZCBhIHZlcnNpb24KKyAgICAgICMKKyAgICAgICMgSW4gbWFueSBjYXNlcyAo d2hpY2ggd2UgZG9uJ3QgaGFuZGxlIGhlcmUpIHRoZSB1cmwgd291bGQgbG9vayBzb21ldGhpbmcg bGlrZQorICAgICAgIyBgaXJyZWxldmFudC9BQ1RVQUxfUEFDS0FHRV9OQU1FL2lycmVsZXZhbnQv MS4yLjMuemlwYC4gSW4gc3VjaCBhIGNhc2Ugd2UgY2FuJ3QgcG9zc2libHkKKyAgICAgICMgZGlz dGluZ3Vpc2ggdGhlIHBhY2thZ2UgbmFtZSBmcm9tIHRoZSBpcnJlbGV2YW50IGJpdHMuIE1vcmVv dmVyIGlmIHdlIHRyeSB0byBtYXRjaCB0aGUKKyAgICAgICMgcGFja2FnZSBuYW1lIGZyb20gdGhl IGZpbGVuYW1lLCB3ZSdkIGdldCBib2d1cyBhdCBiZXN0LgorICAgICAgdW5zZXQoJHtvdXROYW1l fSBQQVJFTlRfU0NPUEUpCisgICAgICBzZXQoJHtvdXRWZXJ9CisgICAgICAgICAgIiR7Q01BS0Vf TUFUQ0hfMX0iCisgICAgICAgICAgUEFSRU5UX1NDT1BFCisgICAgICApCisgICAgZWxzZSgpCisg ICAgICAjIEJvbGRseSBhc3N1bWUgdGhhdCB0aGUgZmlsZSBuYW1lIGlzIHRoZSBwYWNrYWdlIG5h bWUuCisgICAgICAjCisgICAgICAjIFllcywgc29tZXRoaW5nIGxpa2UgYGlycmVsZXZhbnQvQUNU VUFMX05BTUUvaXJyZWxldmFudC9kb3dubG9hZC56aXBgIHdpbGwgcnVpbiBvdXIgZGF5LCBidXQK KyAgICAgICMgc3VjaCBjYXNlcyBzaG91bGQgYmUgcXVpdGUgcmFyZS4gTm8gcG9wdWxhciBzZXJ2 aWNlIGRvZXMgdGhpcy4uLiB3ZSB0aGluay4KKyAgICAgIHNldCgke291dE5hbWV9CisgICAgICAg ICAgIiR7ZmlsZW5hbWV9IgorICAgICAgICAgIFBBUkVOVF9TQ09QRQorICAgICAgKQorICAgICAg dW5zZXQoJHtvdXRWZXJ9IFBBUkVOVF9TQ09QRSkKKyAgICBlbmRpZigpCisgIGVsc2UoKQorICAg ICMgTm8gaWRlYXMgeWV0IHdoYXQgdG8gZG8gd2l0aCBub24tYXJjaGl2ZXMKKyAgICB1bnNldCgk e291dE5hbWV9IFBBUkVOVF9TQ09QRSkKKyAgICB1bnNldCgke291dFZlcn0gUEFSRU5UX1NDT1BF KQorICBlbmRpZigpCitlbmRmdW5jdGlvbigpCisKK2Z1bmN0aW9uKGNwbV9maW5kX3BhY2thZ2Ug TkFNRSBWRVJTSU9OKQorICBzdHJpbmcoUkVQTEFDRSAiICIgIjsiIEVYVFJBX0FSR1MgIiR7QVJH Tn0iKQorICBmaW5kX3BhY2thZ2UoJHtOQU1FfSAke1ZFUlNJT059ICR7RVhUUkFfQVJHU30gUVVJ RVQpCisgIGlmKCR7Q1BNX0FSR1NfTkFNRX1fRk9VTkQpCisgICAgaWYoREVGSU5FRCAke0NQTV9B UkdTX05BTUV9X1ZFUlNJT04pCisgICAgICBzZXQoVkVSU0lPTiAkeyR7Q1BNX0FSR1NfTkFNRX1f VkVSU0lPTn0pCisgICAgZW5kaWYoKQorICAgIGNwbV9tZXNzYWdlKFNUQVRVUyAiJHtDUE1fSU5E RU5UfSBVc2luZyBsb2NhbCBwYWNrYWdlICR7Q1BNX0FSR1NfTkFNRX1AJHtWRVJTSU9OfSIpCisg ICAgQ1BNUmVnaXN0ZXJQYWNrYWdlKCR7Q1BNX0FSR1NfTkFNRX0gIiR7VkVSU0lPTn0iKQorICAg IHNldChDUE1fUEFDS0FHRV9GT1VORAorICAgICAgICBZRVMKKyAgICAgICAgUEFSRU5UX1NDT1BF CisgICAgKQorICBlbHNlKCkKKyAgICBzZXQoQ1BNX1BBQ0tBR0VfRk9VTkQKKyAgICAgICAgTk8K KyAgICAgICAgUEFSRU5UX1NDT1BFCisgICAgKQorICBlbmRpZigpCitlbmRmdW5jdGlvbigpCisK KyMgQ3JlYXRlIGEgY3VzdG9tIEZpbmRYWFguY21ha2UgbW9kdWxlIGZvciBhIENQTSBwYWNrYWdl IFRoaXMgcHJldmVudHMgYGZpbmRfcGFja2FnZShOQU1FKWAgZnJvbQorIyBmaW5kaW5nIHRoZSBz eXN0ZW0gbGlicmFyeQorZnVuY3Rpb24oY3BtX2NyZWF0ZV9tb2R1bGVfZmlsZSBOYW1lKQorICBp ZihOT1QgQ1BNX0RPTlRfVVBEQVRFX01PRFVMRV9QQVRIKQorICAgICMgZXJhc2UgYW55IHByZXZp b3VzIG1vZHVsZXMKKyAgICBmaWxlKFdSSVRFICR7Q1BNX01PRFVMRV9QQVRIfS9GaW5kJHtOYW1l fS5jbWFrZQorICAgICAgICAgImluY2x1ZGUoXCIke0NQTV9GSUxFfVwiKVxuJHtBUkdOfVxuc2V0 KCR7TmFtZX1fRk9VTkQgVFJVRSkiCisgICAgKQorICBlbmRpZigpCitlbmRmdW5jdGlvbigpCisK KyMgRmluZCBhIHBhY2thZ2UgbG9jYWxseSBvciBmYWxsYmFjayB0byBDUE1BZGRQYWNrYWdlCitm dW5jdGlvbihDUE1GaW5kUGFja2FnZSkKKyAgc2V0KG9uZVZhbHVlQXJncyBOQU1FIFZFUlNJT04g R0lUX1RBRyBGSU5EX1BBQ0tBR0VfQVJHVU1FTlRTKQorCisgIGNtYWtlX3BhcnNlX2FyZ3VtZW50 cyhDUE1fQVJHUyAiIiAiJHtvbmVWYWx1ZUFyZ3N9IiAiIiAke0FSR059KQorCisgIGlmKE5PVCBE RUZJTkVEIENQTV9BUkdTX1ZFUlNJT04pCisgICAgaWYoREVGSU5FRCBDUE1fQVJHU19HSVRfVEFH KQorICAgICAgY3BtX2dldF92ZXJzaW9uX2Zyb21fZ2l0X3RhZygiJHtDUE1fQVJHU19HSVRfVEFH fSIgQ1BNX0FSR1NfVkVSU0lPTikKKyAgICBlbmRpZigpCisgIGVuZGlmKCkKKworICBzZXQoZG93 bmxvYWRQYWNrYWdlICR7Q1BNX0RPV05MT0FEX0FMTH0pCisgIGlmKERFRklORUQgQ1BNX0RPV05M T0FEXyR7Q1BNX0FSR1NfTkFNRX0pCisgICAgc2V0KGRvd25sb2FkUGFja2FnZSAke0NQTV9ET1dO TE9BRF8ke0NQTV9BUkdTX05BTUV9fSkKKyAgZWxzZWlmKERFRklORUQgRU5We0NQTV9ET1dOTE9B RF8ke0NQTV9BUkdTX05BTUV9fSkKKyAgICBzZXQoZG93bmxvYWRQYWNrYWdlICRFTlZ7Q1BNX0RP V05MT0FEXyR7Q1BNX0FSR1NfTkFNRX19KQorICBlbmRpZigpCisgIGlmKGRvd25sb2FkUGFja2Fn ZSkKKyAgICBDUE1BZGRQYWNrYWdlKCR7QVJHTn0pCisgICAgY3BtX2V4cG9ydF92YXJpYWJsZXMo JHtDUE1fQVJHU19OQU1FfSkKKyAgICByZXR1cm4oKQorICBlbmRpZigpCisKKyAgY3BtX2ZpbmRf cGFja2FnZSgke0NQTV9BUkdTX05BTUV9ICIke0NQTV9BUkdTX1ZFUlNJT059IiAke0NQTV9BUkdT X0ZJTkRfUEFDS0FHRV9BUkdVTUVOVFN9KQorCisgIGlmKE5PVCBDUE1fUEFDS0FHRV9GT1VORCkK KyAgICBDUE1BZGRQYWNrYWdlKCR7QVJHTn0pCisgICAgY3BtX2V4cG9ydF92YXJpYWJsZXMoJHtD UE1fQVJHU19OQU1FfSkKKyAgZW5kaWYoKQorCitlbmRmdW5jdGlvbigpCisKKyMgY2hlY2tzIGlm IGEgcGFja2FnZSBoYXMgYmVlbiBhZGRlZCBiZWZvcmUKK2Z1bmN0aW9uKGNwbV9jaGVja19pZl9w YWNrYWdlX2FscmVhZHlfYWRkZWQgQ1BNX0FSR1NfTkFNRSBDUE1fQVJHU19WRVJTSU9OKQorICBp ZigiJHtDUE1fQVJHU19OQU1FfSIgSU5fTElTVCBDUE1fUEFDS0FHRVMpCisgICAgQ1BNR2V0UGFj a2FnZVZlcnNpb24oJHtDUE1fQVJHU19OQU1FfSBDUE1fUEFDS0FHRV9WRVJTSU9OKQorICAgIGlm KCIke0NQTV9QQUNLQUdFX1ZFUlNJT059IiBWRVJTSU9OX0xFU1MgIiR7Q1BNX0FSR1NfVkVSU0lP Tn0iKQorICAgICAgbWVzc2FnZSgKKyAgICAgICAgV0FSTklORworICAgICAgICAgICIke0NQTV9J TkRFTlR9IFJlcXVpcmVzIGEgbmV3ZXIgdmVyc2lvbiBvZiAke0NQTV9BUkdTX05BTUV9ICgke0NQ TV9BUkdTX1ZFUlNJT059KSB0aGFuIGN1cnJlbnRseSBpbmNsdWRlZCAoJHtDUE1fUEFDS0FHRV9W RVJTSU9OfSkuIgorICAgICAgKQorICAgIGVuZGlmKCkKKyAgICBjcG1fZ2V0X2ZldGNoX3Byb3Bl cnRpZXMoJHtDUE1fQVJHU19OQU1FfSkKKyAgICBzZXQoJHtDUE1fQVJHU19OQU1FfV9BRERFRCBO TykKKyAgICBzZXQoQ1BNX1BBQ0tBR0VfQUxSRUFEWV9BRERFRAorICAgICAgICBZRVMKKyAgICAg ICAgUEFSRU5UX1NDT1BFCisgICAgKQorICAgIGNwbV9leHBvcnRfdmFyaWFibGVzKCR7Q1BNX0FS R1NfTkFNRX0pCisgIGVsc2UoKQorICAgIHNldChDUE1fUEFDS0FHRV9BTFJFQURZX0FEREVECisg ICAgICAgIE5PCisgICAgICAgIFBBUkVOVF9TQ09QRQorICAgICkKKyAgZW5kaWYoKQorZW5kZnVu Y3Rpb24oKQorCisjIFBhcnNlIHRoZSBhcmd1bWVudCBvZiBDUE1BZGRQYWNrYWdlIGluIGNhc2Ug YSBzaW5nbGUgb25lIHdhcyBwcm92aWRlZCBhbmQgY29udmVydCBpdCB0byBhIGxpc3Qgb2YKKyMg YXJndW1lbnRzIHdoaWNoIGNhbiB0aGVuIGJlIHBhcnNlZCBpZGlvbWF0aWNhbGx5LiBGb3IgZXhh bXBsZSBnaDpmb28vYmFyQDEuMi4zIHdpbGwgYmUgY29udmVydGVkCisjIHRvOiBHSVRIVUJfUkVQ T1NJVE9SWTtmb28vYmFyO1ZFUlNJT047MS4yLjMKK2Z1bmN0aW9uKGNwbV9wYXJzZV9hZGRfcGFj a2FnZV9zaW5nbGVfYXJnIGFyZyBvdXRBcmdzKQorICAjIExvb2sgZm9yIGEgc2NoZW1lCisgIGlm KCIke2FyZ30iIE1BVENIRVMgIl4oW2EtekEtWl0rKTooLispJCIpCisgICAgc3RyaW5nKFRPTE9X RVIgIiR7Q01BS0VfTUFUQ0hfMX0iIHNjaGVtZSkKKyAgICBzZXQodXJpICIke0NNQUtFX01BVENI XzJ9IikKKworICAgICMgQ2hlY2sgZm9yIENQTS1zcGVjaWZpYyBzY2hlbWVzCisgICAgaWYoc2No ZW1lIFNUUkVRVUFMICJnaCIpCisgICAgICBzZXQob3V0ICJHSVRIVUJfUkVQT1NJVE9SWTske3Vy aX0iKQorICAgICAgc2V0KHBhY2thZ2VUeXBlICJnaXQiKQorICAgIGVsc2VpZihzY2hlbWUgU1RS RVFVQUwgImdsIikKKyAgICAgIHNldChvdXQgIkdJVExBQl9SRVBPU0lUT1JZOyR7dXJpfSIpCisg ICAgICBzZXQocGFja2FnZVR5cGUgImdpdCIpCisgICAgZWxzZWlmKHNjaGVtZSBTVFJFUVVBTCAi YmIiKQorICAgICAgc2V0KG91dCAiQklUQlVDS0VUX1JFUE9TSVRPUlk7JHt1cml9IikKKyAgICAg IHNldChwYWNrYWdlVHlwZSAiZ2l0IikKKyAgICAgICMgQSBDUE0tc3BlY2lmaWMgc2NoZW1lIHdh cyBub3QgZm91bmQuIExvb2tzIGxpa2UgdGhpcyBpcyBhIGdlbmVyaWMgVVJMIHNvIHRyeSB0byBk ZXRlcm1pbmUKKyAgICAgICMgdHlwZQorICAgIGVsc2VpZihhcmcgTUFUQ0hFUyAiLmdpdC8/KEB8 I3wkKSIpCisgICAgICBzZXQob3V0ICJHSVRfUkVQT1NJVE9SWTske2FyZ30iKQorICAgICAgc2V0 KHBhY2thZ2VUeXBlICJnaXQiKQorICAgIGVsc2UoKQorICAgICAgIyBGYWxsIGJhY2sgdG8gYSBV UkwKKyAgICAgIHNldChvdXQgIlVSTDske2FyZ30iKQorICAgICAgc2V0KHBhY2thZ2VUeXBlICJh cmNoaXZlIikKKworICAgICAgIyBXZSBjb3VsZCBhbHNvIGNoZWNrIGZvciBTVk4gc2luY2UgRmV0 Y2hDb250ZW50IHN1cHBvcnRzIGl0LCBidXQgU1ZOIGlzIHNvIHJhcmUgdGhlc2UgZGF5cy4KKyAg ICAgICMgV2UganVzdCB3b24ndCBib3RoZXIgd2l0aCB0aGUgYWRkaXRpb25hbCBjb21wbGV4aXR5 IGl0IHdpbGwgaW5kdWNlIGluIHRoaXMgZnVuY3Rpb24uIFNWTiBpcworICAgICAgIyBkb25lIGJ5 IG11bHRpLWFyZworICAgIGVuZGlmKCkKKyAgZWxzZSgpCisgICAgaWYoYXJnIE1BVENIRVMgIi5n aXQvPyhAfCN8JCkiKQorICAgICAgc2V0KG91dCAiR0lUX1JFUE9TSVRPUlk7JHthcmd9IikKKyAg ICAgIHNldChwYWNrYWdlVHlwZSAiZ2l0IikKKyAgICBlbHNlKCkKKyAgICAgICMgR2l2ZSB1cAor ICAgICAgbWVzc2FnZShGQVRBTF9FUlJPUiAiJHtDUE1fSU5ERU5UfSBDYW4ndCBkZXRlcm1pbmUg cGFja2FnZSB0eXBlIG9mICcke2FyZ30nIikKKyAgICBlbmRpZigpCisgIGVuZGlmKCkKKworICAj IEZvciBhbGwgcGFja2FnZXMgd2UgaW50ZXJwcmV0IEAuLi4gYXMgdmVyc2lvbi4gT25seSByZXBs YWNlIHRoZSBsYXN0IG9jY3VycmVuY2UuIFRodXMgVVJJcworICAjIGNvbnRhaW5pbmcgJ0AnIGNh biBiZSB1c2VkCisgIHN0cmluZyhSRUdFWCBSRVBMQUNFICJAKFteQF0rKSQiICI7VkVSU0lPTjtc XDEiIG91dCAiJHtvdXR9IikKKworICAjIFBhcnNlIHRoZSByZXN0IGFjY29yZGluZyB0byBwYWNr YWdlIHR5cGUKKyAgaWYocGFja2FnZVR5cGUgU1RSRVFVQUwgImdpdCIpCisgICAgIyBGb3IgZ2l0 IHJlcG9zIHdlIGludGVycHJldCAjLi4uIGFzIGEgdGFnIG9yIGJyYW5jaCBvciBjb21taXQgaGFz aAorICAgIHN0cmluZyhSRUdFWCBSRVBMQUNFICIjKFteI10rKSQiICI7R0lUX1RBRztcXDEiIG91 dCAiJHtvdXR9IikKKyAgZWxzZWlmKHBhY2thZ2VUeXBlIFNUUkVRVUFMICJhcmNoaXZlIikKKyAg ICAjIEZvciBhcmNoaXZlcyB3ZSBpbnRlcnByZXQgIy4uLiBhcyBhIFVSTCBoYXNoLgorICAgIHN0 cmluZyhSRUdFWCBSRVBMQUNFICIjKFteI10rKSQiICI7VVJMX0hBU0g7XFwxIiBvdXQgIiR7b3V0 fSIpCisgICAgIyBXZSBkb24ndCB0cnkgdG8gcGFyc2UgdGhlIHZlcnNpb24gaWYgaXQncyBub3Qg cHJvdmlkZWQgZXhwbGljaXRseS4gY3BtX2dldF92ZXJzaW9uX2Zyb21fdXJsCisgICAgIyBzaG91 bGQgZG8gdGhpcyBhdCBhIGxhdGVyIHBvaW50CisgIGVsc2UoKQorICAgICMgV2Ugc2hvdWxkIG5l dmVyIGdldCBoZXJlLiBUaGlzIGlzIGFuIGFzc2VydGlvbiBhbmQgaGl0dGluZyBpdCBtZWFucyB0 aGVyZSdzIGEgYnVnIGluIHRoZSBjb2RlCisgICAgIyBhYm92ZS4gQSBwYWNrYWdlVHlwZSB3YXMg c2V0LCBidXQgbm90IGhhbmRsZWQgYnkgdGhpcyBpZi1lbHNlLgorICAgIG1lc3NhZ2UoRkFUQUxf RVJST1IgIiR7Q1BNX0lOREVOVH0gVW5zdXBwb3J0ZWQgcGFja2FnZSB0eXBlICcke3BhY2thZ2VU eXBlfScgb2YgJyR7YXJnfSciKQorICBlbmRpZigpCisKKyAgc2V0KCR7b3V0QXJnc30KKyAgICAg ICR7b3V0fQorICAgICAgUEFSRU5UX1NDT1BFCisgICkKK2VuZGZ1bmN0aW9uKCkKKworIyBDaGVj ayB0aGF0IHRoZSB3b3JraW5nIGRpcmVjdG9yeSBmb3IgYSBnaXQgcmVwbyBpcyBjbGVhbgorZnVu Y3Rpb24oY3BtX2NoZWNrX2dpdF93b3JraW5nX2Rpcl9pc19jbGVhbiByZXBvUGF0aCBnaXRUYWcg aXNDbGVhbikKKworICBmaW5kX3BhY2thZ2UoR2l0IFJFUVVJUkVEKQorCisgIGlmKE5PVCBHSVRf RVhFQ1VUQUJMRSkKKyAgICAjIE5vIGdpdCBleGVjdXRhYmxlLCBhc3N1bWUgZGlyZWN0b3J5IGlz IGNsZWFuCisgICAgc2V0KCR7aXNDbGVhbn0KKyAgICAgICAgVFJVRQorICAgICAgICBQQVJFTlRf U0NPUEUKKyAgICApCisgICAgcmV0dXJuKCkKKyAgZW5kaWYoKQorCisgICMgY2hlY2sgZm9yIHVu Y29tbWl0dGVkIGNoYW5nZXMKKyAgZXhlY3V0ZV9wcm9jZXNzKAorICAgIENPTU1BTkQgJHtHSVRf RVhFQ1VUQUJMRX0gc3RhdHVzIC0tcG9yY2VsYWluCisgICAgUkVTVUxUX1ZBUklBQkxFIHJlc3Vs dEdpdFN0YXR1cworICAgIE9VVFBVVF9WQVJJQUJMRSByZXBvU3RhdHVzCisgICAgT1VUUFVUX1NU UklQX1RSQUlMSU5HX1dISVRFU1BBQ0UgRVJST1JfUVVJRVQKKyAgICBXT1JLSU5HX0RJUkVDVE9S WSAke3JlcG9QYXRofQorICApCisgIGlmKHJlc3VsdEdpdFN0YXR1cykKKyAgICAjIG5vdCBzdXBw b3NlZCB0byBoYXBwZW4sIGFzc3VtZSBjbGVhbiBhbnl3YXkKKyAgICBtZXNzYWdlKFdBUk5JTkcg IiR7Q1BNX0lOREVOVH0gQ2FsbGluZyBnaXQgc3RhdHVzIG9uIGZvbGRlciAke3JlcG9QYXRofSBm YWlsZWQiKQorICAgIHNldCgke2lzQ2xlYW59CisgICAgICAgIFRSVUUKKyAgICAgICAgUEFSRU5U X1NDT1BFCisgICAgKQorICAgIHJldHVybigpCisgIGVuZGlmKCkKKworICBpZihOT1QgIiR7cmVw b1N0YXR1c30iIFNUUkVRVUFMICIiKQorICAgIHNldCgke2lzQ2xlYW59CisgICAgICAgIEZBTFNF CisgICAgICAgIFBBUkVOVF9TQ09QRQorICAgICkKKyAgICByZXR1cm4oKQorICBlbmRpZigpCisK KyAgIyBjaGVjayBmb3IgY29tbWl0dGVkIGNoYW5nZXMKKyAgZXhlY3V0ZV9wcm9jZXNzKAorICAg IENPTU1BTkQgJHtHSVRfRVhFQ1VUQUJMRX0gZGlmZiAtcyAtLWV4aXQtY29kZSAke2dpdFRhZ30K KyAgICBSRVNVTFRfVkFSSUFCTEUgcmVzdWx0R2l0RGlmZgorICAgIE9VVFBVVF9TVFJJUF9UUkFJ TElOR19XSElURVNQQUNFIE9VVFBVVF9RVUlFVAorICAgIFdPUktJTkdfRElSRUNUT1JZICR7cmVw b1BhdGh9CisgICkKKworICBpZigke3Jlc3VsdEdpdERpZmZ9IEVRVUFMIDApCisgICAgc2V0KCR7 aXNDbGVhbn0KKyAgICAgICAgVFJVRQorICAgICAgICBQQVJFTlRfU0NPUEUKKyAgICApCisgIGVs c2UoKQorICAgIHNldCgke2lzQ2xlYW59CisgICAgICAgIEZBTFNFCisgICAgICAgIFBBUkVOVF9T Q09QRQorICAgICkKKyAgZW5kaWYoKQorCitlbmRmdW5jdGlvbigpCisKKyMgbWV0aG9kIHRvIG92 ZXJ3cml0ZSBpbnRlcm5hbCBGZXRjaENvbnRlbnQgcHJvcGVydGllcywgdG8gYWxsb3cgdXNpbmcg Q1BNLmNtYWtlIHRvIG92ZXJsb2FkCisjIEZldGNoQ29udGVudCBjYWxscy4gQXMgdGhlc2UgYXJl IGludGVybmFsIGNtYWtlIHByb3BlcnRpZXMsIHRoaXMgbWV0aG9kIHNob3VsZCBiZSB1c2VkIGNh cmVmdWxseQorIyBhbmQgbWF5IG5lZWQgbW9kaWZpY2F0aW9uIGluIGZ1dHVyZSBDTWFrZSB2ZXJz aW9ucy4gU291cmNlOgorIyBodHRwczovL2dpdGh1Yi5jb20vS2l0d2FyZS9DTWFrZS9ibG9iL2Rj M2QwYjVhMGE3ZDI2ZDQzZDZjZmViNTExZTIyNDUzM2I1ZDE4OGYvTW9kdWxlcy9GZXRjaENvbnRl bnQuY21ha2UjTDExNTIKK2Z1bmN0aW9uKGNwbV9vdmVycmlkZV9mZXRjaGNvbnRlbnQgY29udGVu dE5hbWUpCisgIGNtYWtlX3BhcnNlX2FyZ3VtZW50cyhQQVJTRV9BUkdWIDEgYXJnICIiICJTT1VS Q0VfRElSO0JJTkFSWV9ESVIiICIiKQorICBpZihOT1QgIiR7YXJnX1VOUEFSU0VEX0FSR1VNRU5U U30iIFNUUkVRVUFMICIiKQorICAgIG1lc3NhZ2UoRkFUQUxfRVJST1IgIiR7Q1BNX0lOREVOVH0g VW5zdXBwb3J0ZWQgYXJndW1lbnRzOiAke2FyZ19VTlBBUlNFRF9BUkdVTUVOVFN9IikKKyAgZW5k aWYoKQorCisgIHN0cmluZyhUT0xPV0VSICR7Y29udGVudE5hbWV9IGNvbnRlbnROYW1lTG93ZXIp CisgIHNldChwcmVmaXggIl9GZXRjaENvbnRlbnRfJHtjb250ZW50TmFtZUxvd2VyfSIpCisKKyAg c2V0KHByb3BlcnR5TmFtZSAiJHtwcmVmaXh9X3NvdXJjZURpciIpCisgIGRlZmluZV9wcm9wZXJ0 eSgKKyAgICBHTE9CQUwKKyAgICBQUk9QRVJUWSAke3Byb3BlcnR5TmFtZX0KKyAgICBCUklFRl9E T0NTICJJbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiBkZXRhaWwgb2YgRmV0Y2hDb250ZW50X1BvcHVs YXRlKCkiCisgICAgRlVMTF9ET0NTICJEZXRhaWxzIHVzZWQgYnkgRmV0Y2hDb250ZW50X1BvcHVs YXRlKCkgZm9yICR7Y29udGVudE5hbWV9IgorICApCisgIHNldF9wcm9wZXJ0eShHTE9CQUwgUFJP UEVSVFkgJHtwcm9wZXJ0eU5hbWV9ICIke2FyZ19TT1VSQ0VfRElSfSIpCisKKyAgc2V0KHByb3Bl cnR5TmFtZSAiJHtwcmVmaXh9X2JpbmFyeURpciIpCisgIGRlZmluZV9wcm9wZXJ0eSgKKyAgICBH TE9CQUwKKyAgICBQUk9QRVJUWSAke3Byb3BlcnR5TmFtZX0KKyAgICBCUklFRl9ET0NTICJJbnRl cm5hbCBpbXBsZW1lbnRhdGlvbiBkZXRhaWwgb2YgRmV0Y2hDb250ZW50X1BvcHVsYXRlKCkiCisg ICAgRlVMTF9ET0NTICJEZXRhaWxzIHVzZWQgYnkgRmV0Y2hDb250ZW50X1BvcHVsYXRlKCkgZm9y ICR7Y29udGVudE5hbWV9IgorICApCisgIHNldF9wcm9wZXJ0eShHTE9CQUwgUFJPUEVSVFkgJHtw cm9wZXJ0eU5hbWV9ICIke2FyZ19CSU5BUllfRElSfSIpCisKKyAgc2V0KHByb3BlcnR5TmFtZSAi JHtwcmVmaXh9X3BvcHVsYXRlZCIpCisgIGRlZmluZV9wcm9wZXJ0eSgKKyAgICBHTE9CQUwKKyAg ICBQUk9QRVJUWSAke3Byb3BlcnR5TmFtZX0KKyAgICBCUklFRl9ET0NTICJJbnRlcm5hbCBpbXBs ZW1lbnRhdGlvbiBkZXRhaWwgb2YgRmV0Y2hDb250ZW50X1BvcHVsYXRlKCkiCisgICAgRlVMTF9E T0NTICJEZXRhaWxzIHVzZWQgYnkgRmV0Y2hDb250ZW50X1BvcHVsYXRlKCkgZm9yICR7Y29udGVu dE5hbWV9IgorICApCisgIHNldF9wcm9wZXJ0eShHTE9CQUwgUFJPUEVSVFkgJHtwcm9wZXJ0eU5h bWV9IFRSVUUpCitlbmRmdW5jdGlvbigpCisKKyMgRG93bmxvYWQgYW5kIGFkZCBhIHBhY2thZ2Ug ZnJvbSBzb3VyY2UKK2Z1bmN0aW9uKENQTUFkZFBhY2thZ2UpCisgIGNwbV9zZXRfcG9saWNpZXMo KQorCisgIGxpc3QoTEVOR1RIIEFSR04gYXJnbkxlbmd0aCkKKyAgaWYoYXJnbkxlbmd0aCBFUVVB TCAxKQorICAgIGNwbV9wYXJzZV9hZGRfcGFja2FnZV9zaW5nbGVfYXJnKCIke0FSR059IiBBUkdO KQorCisgICAgIyBUaGUgc2hvcnRoYW5kIHN5bnRheCBpbXBsaWVzIEVYQ0xVREVfRlJPTV9BTEwg YW5kIFNZU1RFTQorICAgIHNldChBUkdOICIke0FSR059O0VYQ0xVREVfRlJPTV9BTEw7WUVTO1NZ U1RFTTtZRVM7IikKKyAgZW5kaWYoKQorCisgIHNldChvbmVWYWx1ZUFyZ3MKKyAgICAgIE5BTUUK KyAgICAgIEZPUkNFCisgICAgICBWRVJTSU9OCisgICAgICBHSVRfVEFHCisgICAgICBET1dOTE9B RF9PTkxZCisgICAgICBHSVRIVUJfUkVQT1NJVE9SWQorICAgICAgR0lUTEFCX1JFUE9TSVRPUlkK KyAgICAgIEJJVEJVQ0tFVF9SRVBPU0lUT1JZCisgICAgICBHSVRfUkVQT1NJVE9SWQorICAgICAg U09VUkNFX0RJUgorICAgICAgRklORF9QQUNLQUdFX0FSR1VNRU5UUworICAgICAgTk9fQ0FDSEUK KyAgICAgIFNZU1RFTQorICAgICAgR0lUX1NIQUxMT1cKKyAgICAgIEVYQ0xVREVfRlJPTV9BTEwK KyAgICAgIFNPVVJDRV9TVUJESVIKKyAgICAgIENVU1RPTV9DQUNIRV9LRVkKKyAgKQorCisgIHNl dChtdWx0aVZhbHVlQXJncyBVUkwgT1BUSU9OUyBET1dOTE9BRF9DT01NQU5EKQorCisgIGNtYWtl X3BhcnNlX2FyZ3VtZW50cyhDUE1fQVJHUyAiIiAiJHtvbmVWYWx1ZUFyZ3N9IiAiJHttdWx0aVZh bHVlQXJnc30iICIke0FSR059IikKKworICAjIFNldCBkZWZhdWx0IHZhbHVlcyBmb3IgYXJndW1l bnRzCisKKyAgaWYoTk9UIERFRklORUQgQ1BNX0FSR1NfVkVSU0lPTikKKyAgICBpZihERUZJTkVE IENQTV9BUkdTX0dJVF9UQUcpCisgICAgICBjcG1fZ2V0X3ZlcnNpb25fZnJvbV9naXRfdGFnKCIk e0NQTV9BUkdTX0dJVF9UQUd9IiBDUE1fQVJHU19WRVJTSU9OKQorICAgIGVuZGlmKCkKKyAgZW5k aWYoKQorCisgIGlmKENQTV9BUkdTX0RPV05MT0FEX09OTFkpCisgICAgc2V0KERPV05MT0FEX09O TFkgJHtDUE1fQVJHU19ET1dOTE9BRF9PTkxZfSkKKyAgZWxzZSgpCisgICAgc2V0KERPV05MT0FE X09OTFkgTk8pCisgIGVuZGlmKCkKKworICBpZihERUZJTkVEIENQTV9BUkdTX0dJVEhVQl9SRVBP U0lUT1JZKQorICAgIHNldChDUE1fQVJHU19HSVRfUkVQT1NJVE9SWSAiaHR0cHM6Ly9naXRodWIu Y29tLyR7Q1BNX0FSR1NfR0lUSFVCX1JFUE9TSVRPUll9LmdpdCIpCisgIGVsc2VpZihERUZJTkVE IENQTV9BUkdTX0dJVExBQl9SRVBPU0lUT1JZKQorICAgIHNldChDUE1fQVJHU19HSVRfUkVQT1NJ VE9SWSAiaHR0cHM6Ly9naXRsYWIuY29tLyR7Q1BNX0FSR1NfR0lUTEFCX1JFUE9TSVRPUll9Lmdp dCIpCisgIGVsc2VpZihERUZJTkVEIENQTV9BUkdTX0JJVEJVQ0tFVF9SRVBPU0lUT1JZKQorICAg IHNldChDUE1fQVJHU19HSVRfUkVQT1NJVE9SWSAiaHR0cHM6Ly9iaXRidWNrZXQub3JnLyR7Q1BN X0FSR1NfQklUQlVDS0VUX1JFUE9TSVRPUll9LmdpdCIpCisgIGVuZGlmKCkKKworICBpZihERUZJ TkVEIENQTV9BUkdTX0dJVF9SRVBPU0lUT1JZKQorICAgIGxpc3QoQVBQRU5EIENQTV9BUkdTX1VO UEFSU0VEX0FSR1VNRU5UUyBHSVRfUkVQT1NJVE9SWSAke0NQTV9BUkdTX0dJVF9SRVBPU0lUT1JZ fSkKKyAgICBpZihOT1QgREVGSU5FRCBDUE1fQVJHU19HSVRfVEFHKQorICAgICAgc2V0KENQTV9B UkdTX0dJVF9UQUcgdiR7Q1BNX0FSR1NfVkVSU0lPTn0pCisgICAgZW5kaWYoKQorCisgICAgIyBJ ZiBhIG5hbWUgd2Fzbid0IHByb3ZpZGVkLCB0cnkgdG8gaW5mZXIgaXQgZnJvbSB0aGUgZ2l0IHJl cG8KKyAgICBpZihOT1QgREVGSU5FRCBDUE1fQVJHU19OQU1FKQorICAgICAgY3BtX3BhY2thZ2Vf bmFtZV9mcm9tX2dpdF91cmkoJHtDUE1fQVJHU19HSVRfUkVQT1NJVE9SWX0gQ1BNX0FSR1NfTkFN RSkKKyAgICBlbmRpZigpCisgIGVuZGlmKCkKKworICBzZXQoQ1BNX1NLSVBfRkVUQ0ggRkFMU0Up CisKKyAgaWYoREVGSU5FRCBDUE1fQVJHU19HSVRfVEFHKQorICAgIGxpc3QoQVBQRU5EIENQTV9B UkdTX1VOUEFSU0VEX0FSR1VNRU5UUyBHSVRfVEFHICR7Q1BNX0FSR1NfR0lUX1RBR30pCisgICAg IyBJZiBHSVRfU0hBTExPVyBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCwgaG9ub3IgdGhlIHZhbHVl LgorICAgIGlmKERFRklORUQgQ1BNX0FSR1NfR0lUX1NIQUxMT1cpCisgICAgICBsaXN0KEFQUEVO RCBDUE1fQVJHU19VTlBBUlNFRF9BUkdVTUVOVFMgR0lUX1NIQUxMT1cgJHtDUE1fQVJHU19HSVRf U0hBTExPV30pCisgICAgZW5kaWYoKQorICBlbmRpZigpCisKKyAgaWYoREVGSU5FRCBDUE1fQVJH U19VUkwpCisgICAgIyBJZiBhIG5hbWUgb3IgdmVyc2lvbiBhcmVuJ3QgcHJvdmlkZWQsIHRyeSB0 byBpbmZlciB0aGVtIGZyb20gdGhlIFVSTAorICAgIGxpc3QoR0VUIENQTV9BUkdTX1VSTCAwIGZp cnN0VXJsKQorICAgIGNwbV9wYWNrYWdlX25hbWVfYW5kX3Zlcl9mcm9tX3VybCgke2ZpcnN0VXJs fSBuYW1lRnJvbVVybCB2ZXJGcm9tVXJsKQorICAgICMgSWYgd2UgZmFpbCB0byBvYnRhaW4gbmFt ZSBhbmQgdmVyc2lvbiBmcm9tIHRoZSBmaXJzdCBVUkwsIHdlIGNvdWxkIHRyeSBvdGhlciBVUkxz IGlmIGFueS4KKyAgICAjIEhvd2V2ZXIgbXVsdGlwbGUgVVJMcyBhcmUgZXhwZWN0ZWQgdG8gYmUg cXVpdGUgcmFyZSwgc28gZm9yIG5vdyB3ZSB3b24ndCBib3RoZXIuCisKKyAgICAjIElmIHRoZSBj YWxsZXIgcHJvdmlkZWQgdGhlaXIgb3duIG5hbWUgYW5kIHZlcnNpb24sIHRoZXkgdHJ1bXAgdGhl IGluZmVycmVkIG9uZXMuCisgICAgaWYoTk9UIERFRklORUQgQ1BNX0FSR1NfTkFNRSkKKyAgICAg IHNldChDUE1fQVJHU19OQU1FICR7bmFtZUZyb21Vcmx9KQorICAgIGVuZGlmKCkKKyAgICBpZihO T1QgREVGSU5FRCBDUE1fQVJHU19WRVJTSU9OKQorICAgICAgc2V0KENQTV9BUkdTX1ZFUlNJT04g JHt2ZXJGcm9tVXJsfSkKKyAgICBlbmRpZigpCisKKyAgICBsaXN0KEFQUEVORCBDUE1fQVJHU19V TlBBUlNFRF9BUkdVTUVOVFMgVVJMICIke0NQTV9BUkdTX1VSTH0iKQorICBlbmRpZigpCisKKyAg IyBDaGVjayBmb3IgcmVxdWlyZWQgYXJndW1lbnRzCisKKyAgaWYoTk9UIERFRklORUQgQ1BNX0FS R1NfTkFNRSkKKyAgICBtZXNzYWdlKAorICAgICAgRkFUQUxfRVJST1IKKyAgICAgICAgIiR7Q1BN X0lOREVOVH0gJ05BTUUnIHdhcyBub3QgcHJvdmlkZWQgYW5kIGNvdWxkbid0IGJlIGF1dG9tYXRp Y2FsbHkgaW5mZXJyZWQgZm9yIHBhY2thZ2UgYWRkZWQgd2l0aCBhcmd1bWVudHM6ICcke0FSR059 JyIKKyAgICApCisgIGVuZGlmKCkKKworICAjIENoZWNrIGlmIHBhY2thZ2UgaGFzIGJlZW4gYWRk ZWQgYmVmb3JlCisgIGNwbV9jaGVja19pZl9wYWNrYWdlX2FscmVhZHlfYWRkZWQoJHtDUE1fQVJH U19OQU1FfSAiJHtDUE1fQVJHU19WRVJTSU9OfSIpCisgIGlmKENQTV9QQUNLQUdFX0FMUkVBRFlf QURERUQpCisgICAgY3BtX2V4cG9ydF92YXJpYWJsZXMoJHtDUE1fQVJHU19OQU1FfSkKKyAgICBy ZXR1cm4oKQorICBlbmRpZigpCisKKyAgIyBDaGVjayBmb3IgbWFudWFsIG92ZXJyaWRlcworICBp ZihOT1QgQ1BNX0FSR1NfRk9SQ0UgQU5EIE5PVCAiJHtDUE1fJHtDUE1fQVJHU19OQU1FfV9TT1VS Q0V9IiBTVFJFUVVBTCAiIikKKyAgICBzZXQoUEFDS0FHRV9TT1VSQ0UgJHtDUE1fJHtDUE1fQVJH U19OQU1FfV9TT1VSQ0V9KQorICAgIHNldChDUE1fJHtDUE1fQVJHU19OQU1FfV9TT1VSQ0UgIiIp CisgICAgQ1BNQWRkUGFja2FnZSgKKyAgICAgIE5BTUUgIiR7Q1BNX0FSR1NfTkFNRX0iCisgICAg ICBTT1VSQ0VfRElSICIke1BBQ0tBR0VfU09VUkNFfSIKKyAgICAgIEVYQ0xVREVfRlJPTV9BTEwg IiR7Q1BNX0FSR1NfRVhDTFVERV9GUk9NX0FMTH0iCisgICAgICBTWVNURU0gIiR7Q1BNX0FSR1Nf U1lTVEVNfSIKKyAgICAgIE9QVElPTlMgIiR7Q1BNX0FSR1NfT1BUSU9OU30iCisgICAgICBTT1VS Q0VfU1VCRElSICIke0NQTV9BUkdTX1NPVVJDRV9TVUJESVJ9IgorICAgICAgRE9XTkxPQURfT05M WSAiJHtET1dOTE9BRF9PTkxZfSIKKyAgICAgIEZPUkNFIFRydWUKKyAgICApCisgICAgY3BtX2V4 cG9ydF92YXJpYWJsZXMoJHtDUE1fQVJHU19OQU1FfSkKKyAgICByZXR1cm4oKQorICBlbmRpZigp CisKKyAgIyBDaGVjayBmb3IgYXZhaWxhYmxlIGRlY2xhcmF0aW9uCisgIGlmKE5PVCBDUE1fQVJH U19GT1JDRSBBTkQgTk9UICIke0NQTV9ERUNMQVJBVElPTl8ke0NQTV9BUkdTX05BTUV9fSIgU1RS RVFVQUwgIiIpCisgICAgc2V0KGRlY2xhcmF0aW9uICR7Q1BNX0RFQ0xBUkFUSU9OXyR7Q1BNX0FS R1NfTkFNRX19KQorICAgIHNldChDUE1fREVDTEFSQVRJT05fJHtDUE1fQVJHU19OQU1FfSAiIikK KyAgICBDUE1BZGRQYWNrYWdlKCR7ZGVjbGFyYXRpb259KQorICAgIGNwbV9leHBvcnRfdmFyaWFi bGVzKCR7Q1BNX0FSR1NfTkFNRX0pCisgICAgIyBjaGVja2luZyBhZ2FpbiB0byBlbnN1cmUgdmVy c2lvbiBhbmQgb3B0aW9uIGNvbXBhdGliaWxpdHkKKyAgICBjcG1fY2hlY2tfaWZfcGFja2FnZV9h bHJlYWR5X2FkZGVkKCR7Q1BNX0FSR1NfTkFNRX0gIiR7Q1BNX0FSR1NfVkVSU0lPTn0iKQorICAg IHJldHVybigpCisgIGVuZGlmKCkKKworICBpZihOT1QgQ1BNX0FSR1NfRk9SQ0UpCisgICAgaWYo Q1BNX1VTRV9MT0NBTF9QQUNLQUdFUyBPUiBDUE1fTE9DQUxfUEFDS0FHRVNfT05MWSkKKyAgICAg IGNwbV9maW5kX3BhY2thZ2UoJHtDUE1fQVJHU19OQU1FfSAiJHtDUE1fQVJHU19WRVJTSU9OfSIg JHtDUE1fQVJHU19GSU5EX1BBQ0tBR0VfQVJHVU1FTlRTfSkKKworICAgICAgaWYoQ1BNX1BBQ0tB R0VfRk9VTkQpCisgICAgICAgIGNwbV9leHBvcnRfdmFyaWFibGVzKCR7Q1BNX0FSR1NfTkFNRX0p CisgICAgICAgIHJldHVybigpCisgICAgICBlbmRpZigpCisKKyAgICAgIGlmKENQTV9MT0NBTF9Q QUNLQUdFU19PTkxZKQorICAgICAgICBtZXNzYWdlKAorICAgICAgICAgIFNFTkRfRVJST1IKKyAg ICAgICAgICAgICIke0NQTV9JTkRFTlR9ICR7Q1BNX0FSR1NfTkFNRX0gbm90IGZvdW5kIHZpYSBm aW5kX3BhY2thZ2UoJHtDUE1fQVJHU19OQU1FfSAke0NQTV9BUkdTX1ZFUlNJT059KSIKKyAgICAg ICAgKQorICAgICAgZW5kaWYoKQorICAgIGVuZGlmKCkKKyAgZW5kaWYoKQorCisgIENQTVJlZ2lz dGVyUGFja2FnZSgiJHtDUE1fQVJHU19OQU1FfSIgIiR7Q1BNX0FSR1NfVkVSU0lPTn0iKQorCisg IGlmKERFRklORUQgQ1BNX0FSR1NfR0lUX1RBRykKKyAgICBzZXQoUEFDS0FHRV9JTkZPICIke0NQ TV9BUkdTX0dJVF9UQUd9IikKKyAgZWxzZWlmKERFRklORUQgQ1BNX0FSR1NfU09VUkNFX0RJUikK KyAgICBzZXQoUEFDS0FHRV9JTkZPICIke0NQTV9BUkdTX1NPVVJDRV9ESVJ9IikKKyAgZWxzZSgp CisgICAgc2V0KFBBQ0tBR0VfSU5GTyAiJHtDUE1fQVJHU19WRVJTSU9OfSIpCisgIGVuZGlmKCkK KworICBpZihERUZJTkVEIEZFVENIQ09OVEVOVF9CQVNFX0RJUikKKyAgICAjIHJlc3BlY3QgdXNl cidzIEZFVENIQ09OVEVOVF9CQVNFX0RJUiBpZiBzZXQKKyAgICBzZXQoQ1BNX0ZFVENIQ09OVEVO VF9CQVNFX0RJUiAke0ZFVENIQ09OVEVOVF9CQVNFX0RJUn0pCisgIGVsc2UoKQorICAgIHNldChD UE1fRkVUQ0hDT05URU5UX0JBU0VfRElSICR7Q01BS0VfQklOQVJZX0RJUn0vX2RlcHMpCisgIGVu ZGlmKCkKKworICBpZihERUZJTkVEIENQTV9BUkdTX0RPV05MT0FEX0NPTU1BTkQpCisgICAgbGlz dChBUFBFTkQgQ1BNX0FSR1NfVU5QQVJTRURfQVJHVU1FTlRTIERPV05MT0FEX0NPTU1BTkQgJHtD UE1fQVJHU19ET1dOTE9BRF9DT01NQU5EfSkKKyAgZWxzZWlmKERFRklORUQgQ1BNX0FSR1NfU09V UkNFX0RJUikKKyAgICBsaXN0KEFQUEVORCBDUE1fQVJHU19VTlBBUlNFRF9BUkdVTUVOVFMgU09V UkNFX0RJUiAke0NQTV9BUkdTX1NPVVJDRV9ESVJ9KQorICAgIGlmKE5PVCBJU19BQlNPTFVURSAk e0NQTV9BUkdTX1NPVVJDRV9ESVJ9KQorICAgICAgIyBFeHBhbmQgYENQTV9BUkdTX1NPVVJDRV9E SVJgIHJlbGF0aXZlIHBhdGguIFRoaXMgaXMgaW1wb3J0YW50IGJlY2F1c2UgRVhJU1RTIGRvZXNu J3Qgd29yaworICAgICAgIyBmb3IgcmVsYXRpdmUgcGF0aHMuCisgICAgICBnZXRfZmlsZW5hbWVf Y29tcG9uZW50KAorICAgICAgICBzb3VyY2VfZGlyZWN0b3J5ICR7Q1BNX0FSR1NfU09VUkNFX0RJ Un0gUkVBTFBBVEggQkFTRV9ESVIgJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9CisgICAgICAp CisgICAgZWxzZSgpCisgICAgICBzZXQoc291cmNlX2RpcmVjdG9yeSAke0NQTV9BUkdTX1NPVVJD RV9ESVJ9KQorICAgIGVuZGlmKCkKKyAgICBpZihOT1QgRVhJU1RTICR7c291cmNlX2RpcmVjdG9y eX0pCisgICAgICBzdHJpbmcoVE9MT1dFUiAke0NQTV9BUkdTX05BTUV9IGxvd2VyX2Nhc2VfbmFt ZSkKKyAgICAgICMgcmVtb3ZlIHRpbWVzdGFtcHMgc28gQ01ha2Ugd2lsbCByZS1kb3dubG9hZCB0 aGUgZGVwZW5kZW5jeQorICAgICAgZmlsZShSRU1PVkVfUkVDVVJTRSAiJHtDUE1fRkVUQ0hDT05U RU5UX0JBU0VfRElSfS8ke2xvd2VyX2Nhc2VfbmFtZX0tc3ViYnVpbGQiKQorICAgIGVuZGlmKCkK KyAgZWxzZWlmKENQTV9TT1VSQ0VfQ0FDSEUgQU5EIE5PVCBDUE1fQVJHU19OT19DQUNIRSkKKyAg ICBzdHJpbmcoVE9MT1dFUiAke0NQTV9BUkdTX05BTUV9IGxvd2VyX2Nhc2VfbmFtZSkKKyAgICBz ZXQob3JpZ2luX3BhcmFtZXRlcnMgJHtDUE1fQVJHU19VTlBBUlNFRF9BUkdVTUVOVFN9KQorICAg IGxpc3QoU09SVCBvcmlnaW5fcGFyYW1ldGVycykKKyAgICBpZihDUE1fQVJHU19DVVNUT01fQ0FD SEVfS0VZKQorICAgICAgIyBBcHBsaWNhdGlvbiBzZXQgYSBjdXN0b20gdW5pcXVlIGRpcmVjdG9y eSBuYW1lCisgICAgICBzZXQoZG93bmxvYWRfZGlyZWN0b3J5ICR7Q1BNX1NPVVJDRV9DQUNIRX0v JHtsb3dlcl9jYXNlX25hbWV9LyR7Q1BNX0FSR1NfQ1VTVE9NX0NBQ0hFX0tFWX0pCisgICAgZWxz ZWlmKENQTV9VU0VfTkFNRURfQ0FDSEVfRElSRUNUT1JJRVMpCisgICAgICBzdHJpbmcoU0hBMSBv cmlnaW5faGFzaCAiJHtvcmlnaW5fcGFyYW1ldGVyc307TkVXX0NBQ0hFX1NUUlVDVFVSRV9UQUci KQorICAgICAgc2V0KGRvd25sb2FkX2RpcmVjdG9yeSAke0NQTV9TT1VSQ0VfQ0FDSEV9LyR7bG93 ZXJfY2FzZV9uYW1lfS8ke29yaWdpbl9oYXNofS8ke0NQTV9BUkdTX05BTUV9KQorICAgIGVsc2Uo KQorICAgICAgc3RyaW5nKFNIQTEgb3JpZ2luX2hhc2ggIiR7b3JpZ2luX3BhcmFtZXRlcnN9IikK KyAgICAgIHNldChkb3dubG9hZF9kaXJlY3RvcnkgJHtDUE1fU09VUkNFX0NBQ0hFfS8ke2xvd2Vy X2Nhc2VfbmFtZX0vJHtvcmlnaW5faGFzaH0pCisgICAgZW5kaWYoKQorICAgICMgRXhwYW5kIGBk b3dubG9hZF9kaXJlY3RvcnlgIHJlbGF0aXZlIHBhdGguIFRoaXMgaXMgaW1wb3J0YW50IGJlY2F1 c2UgRVhJU1RTIGRvZXNuJ3Qgd29yayBmb3IKKyAgICAjIHJlbGF0aXZlIHBhdGhzLgorICAgIGdl dF9maWxlbmFtZV9jb21wb25lbnQoZG93bmxvYWRfZGlyZWN0b3J5ICR7ZG93bmxvYWRfZGlyZWN0 b3J5fSBBQlNPTFVURSkKKyAgICBsaXN0KEFQUEVORCBDUE1fQVJHU19VTlBBUlNFRF9BUkdVTUVO VFMgU09VUkNFX0RJUiAke2Rvd25sb2FkX2RpcmVjdG9yeX0pCisKKyAgICBpZihDUE1fU09VUkNF X0NBQ0hFKQorICAgICAgZmlsZShMT0NLICR7ZG93bmxvYWRfZGlyZWN0b3J5fS8uLi9jbWFrZS5s b2NrKQorICAgIGVuZGlmKCkKKworICAgIGlmKEVYSVNUUyAke2Rvd25sb2FkX2RpcmVjdG9yeX0p CisgICAgICBpZihDUE1fU09VUkNFX0NBQ0hFKQorICAgICAgICBmaWxlKExPQ0sgJHtkb3dubG9h ZF9kaXJlY3Rvcnl9Ly4uL2NtYWtlLmxvY2sgUkVMRUFTRSkKKyAgICAgIGVuZGlmKCkKKworICAg ICAgY3BtX3N0b3JlX2ZldGNoX3Byb3BlcnRpZXMoCisgICAgICAgICR7Q1BNX0FSR1NfTkFNRX0g IiR7ZG93bmxvYWRfZGlyZWN0b3J5fSIKKyAgICAgICAgIiR7Q1BNX0ZFVENIQ09OVEVOVF9CQVNF X0RJUn0vJHtsb3dlcl9jYXNlX25hbWV9LWJ1aWxkIgorICAgICAgKQorICAgICAgY3BtX2dldF9m ZXRjaF9wcm9wZXJ0aWVzKCIke0NQTV9BUkdTX05BTUV9IikKKworICAgICAgaWYoREVGSU5FRCBD UE1fQVJHU19HSVRfVEFHIEFORCBOT1QgKFBBVENIX0NPTU1BTkQgSU5fTElTVCBDUE1fQVJHU19V TlBBUlNFRF9BUkdVTUVOVFMpKQorICAgICAgICAjIHdhcm4gaWYgY2FjaGUgaGFzIGJlZW4gY2hh bmdlZCBzaW5jZSBjaGVja291dAorICAgICAgICBjcG1fY2hlY2tfZ2l0X3dvcmtpbmdfZGlyX2lz X2NsZWFuKCR7ZG93bmxvYWRfZGlyZWN0b3J5fSAke0NQTV9BUkdTX0dJVF9UQUd9IElTX0NMRUFO KQorICAgICAgICBpZihOT1QgJHtJU19DTEVBTn0pCisgICAgICAgICAgbWVzc2FnZSgKKyAgICAg ICAgICAgIFdBUk5JTkcgIiR7Q1BNX0lOREVOVH0gQ2FjaGUgZm9yICR7Q1BNX0FSR1NfTkFNRX0g KCR7ZG93bmxvYWRfZGlyZWN0b3J5fSkgaXMgZGlydHkiCisgICAgICAgICAgKQorICAgICAgICBl bmRpZigpCisgICAgICBlbmRpZigpCisKKyAgICAgIGNwbV9hZGRfc3ViZGlyZWN0b3J5KAorICAg ICAgICAiJHtDUE1fQVJHU19OQU1FfSIKKyAgICAgICAgIiR7RE9XTkxPQURfT05MWX0iCisgICAg ICAgICIkeyR7Q1BNX0FSR1NfTkFNRX1fU09VUkNFX0RJUn0vJHtDUE1fQVJHU19TT1VSQ0VfU1VC RElSfSIKKyAgICAgICAgIiR7JHtDUE1fQVJHU19OQU1FfV9CSU5BUllfRElSfSIKKyAgICAgICAg IiR7Q1BNX0FSR1NfRVhDTFVERV9GUk9NX0FMTH0iCisgICAgICAgICIke0NQTV9BUkdTX1NZU1RF TX0iCisgICAgICAgICIke0NQTV9BUkdTX09QVElPTlN9IgorICAgICAgKQorICAgICAgc2V0KFBB Q0tBR0VfSU5GTyAiJHtQQUNLQUdFX0lORk99IGF0ICR7ZG93bmxvYWRfZGlyZWN0b3J5fSIpCisK KyAgICAgICMgQXMgdGhlIHNvdXJjZSBkaXIgaXMgYWxyZWFkeSBjYWNoZWQvcG9wdWxhdGVkLCB3 ZSBvdmVycmlkZSB0aGUgY2FsbCB0byBGZXRjaENvbnRlbnQuCisgICAgICBzZXQoQ1BNX1NLSVBf RkVUQ0ggVFJVRSkKKyAgICAgIGNwbV9vdmVycmlkZV9mZXRjaGNvbnRlbnQoCisgICAgICAgICIk e2xvd2VyX2Nhc2VfbmFtZX0iIFNPVVJDRV9ESVIgIiR7JHtDUE1fQVJHU19OQU1FfV9TT1VSQ0Vf RElSfS8ke0NQTV9BUkdTX1NPVVJDRV9TVUJESVJ9IgorICAgICAgICBCSU5BUllfRElSICIkeyR7 Q1BNX0FSR1NfTkFNRX1fQklOQVJZX0RJUn0iCisgICAgICApCisKKyAgICBlbHNlKCkKKyAgICAg ICMgRW5hYmxlIHNoYWxsb3cgY2xvbmUgd2hlbiBHSVRfVEFHIGlzIG5vdCBhIGNvbW1pdCBoYXNo LiBPdXIgZ3Vlc3MgbWF5IG5vdCBiZSBhY2N1cmF0ZSwgYnV0CisgICAgICAjIGl0IHNob3VsZCBn dWFyYW50ZWUgbm8gY29tbWl0IGhhc2ggZ2V0IG1pcy1kZXRlY3RlZC4KKyAgICAgIGlmKE5PVCBE RUZJTkVEIENQTV9BUkdTX0dJVF9TSEFMTE9XKQorICAgICAgICBjcG1faXNfZ2l0X3RhZ19jb21t aXRfaGFzaCgiJHtDUE1fQVJHU19HSVRfVEFHfSIgSVNfSEFTSCkKKyAgICAgICAgaWYoTk9UICR7 SVNfSEFTSH0pCisgICAgICAgICAgbGlzdChBUFBFTkQgQ1BNX0FSR1NfVU5QQVJTRURfQVJHVU1F TlRTIEdJVF9TSEFMTE9XIFRSVUUpCisgICAgICAgIGVuZGlmKCkKKyAgICAgIGVuZGlmKCkKKwor ICAgICAgIyByZW1vdmUgdGltZXN0YW1wcyBzbyBDTWFrZSB3aWxsIHJlLWRvd25sb2FkIHRoZSBk ZXBlbmRlbmN5CisgICAgICBmaWxlKFJFTU9WRV9SRUNVUlNFICR7Q1BNX0ZFVENIQ09OVEVOVF9C QVNFX0RJUn0vJHtsb3dlcl9jYXNlX25hbWV9LXN1YmJ1aWxkKQorICAgICAgc2V0KFBBQ0tBR0Vf SU5GTyAiJHtQQUNLQUdFX0lORk99IHRvICR7ZG93bmxvYWRfZGlyZWN0b3J5fSIpCisgICAgZW5k aWYoKQorICBlbmRpZigpCisKKyAgY3BtX2NyZWF0ZV9tb2R1bGVfZmlsZSgke0NQTV9BUkdTX05B TUV9ICJDUE1BZGRQYWNrYWdlKFwiJHtBUkdOfVwiKSIpCisKKyAgaWYoQ1BNX1BBQ0tBR0VfTE9D S19FTkFCTEVEKQorICAgIGlmKChDUE1fQVJHU19WRVJTSU9OIEFORCBOT1QgQ1BNX0FSR1NfU09V UkNFX0RJUikgT1IgQ1BNX0lOQ0xVREVfQUxMX0lOX1BBQ0tBR0VfTE9DSykKKyAgICAgIGNwbV9h ZGRfdG9fcGFja2FnZV9sb2NrKCR7Q1BNX0FSR1NfTkFNRX0gIiR7QVJHTn0iKQorICAgIGVsc2Vp ZihDUE1fQVJHU19TT1VSQ0VfRElSKQorICAgICAgY3BtX2FkZF9jb21tZW50X3RvX3BhY2thZ2Vf bG9jaygke0NQTV9BUkdTX05BTUV9ICJsb2NhbCBkaXJlY3RvcnkiKQorICAgIGVsc2UoKQorICAg ICAgY3BtX2FkZF9jb21tZW50X3RvX3BhY2thZ2VfbG9jaygke0NQTV9BUkdTX05BTUV9ICIke0FS R059IikKKyAgICBlbmRpZigpCisgIGVuZGlmKCkKKworICBjcG1fbWVzc2FnZSgKKyAgICBTVEFU VVMgIiR7Q1BNX0lOREVOVH0gQWRkaW5nIHBhY2thZ2UgJHtDUE1fQVJHU19OQU1FfUAke0NQTV9B UkdTX1ZFUlNJT059ICgke1BBQ0tBR0VfSU5GT30pIgorICApCisKKyAgaWYoTk9UIENQTV9TS0lQ X0ZFVENIKQorICAgIGNwbV9kZWNsYXJlX2ZldGNoKAorICAgICAgIiR7Q1BNX0FSR1NfTkFNRX0i ICIke0NQTV9BUkdTX1ZFUlNJT059IiAiJHtQQUNLQUdFX0lORk99IiAiJHtDUE1fQVJHU19VTlBB UlNFRF9BUkdVTUVOVFN9IgorICAgICkKKyAgICBjcG1fZmV0Y2hfcGFja2FnZSgiJHtDUE1fQVJH U19OQU1FfSIgcG9wdWxhdGVkKQorICAgIGlmKENQTV9TT1VSQ0VfQ0FDSEUgQU5EIGRvd25sb2Fk X2RpcmVjdG9yeSkKKyAgICAgIGZpbGUoTE9DSyAke2Rvd25sb2FkX2RpcmVjdG9yeX0vLi4vY21h a2UubG9jayBSRUxFQVNFKQorICAgIGVuZGlmKCkKKyAgICBpZigke3BvcHVsYXRlZH0pCisgICAg ICBjcG1fYWRkX3N1YmRpcmVjdG9yeSgKKyAgICAgICAgIiR7Q1BNX0FSR1NfTkFNRX0iCisgICAg ICAgICIke0RPV05MT0FEX09OTFl9IgorICAgICAgICAiJHske0NQTV9BUkdTX05BTUV9X1NPVVJD RV9ESVJ9LyR7Q1BNX0FSR1NfU09VUkNFX1NVQkRJUn0iCisgICAgICAgICIkeyR7Q1BNX0FSR1Nf TkFNRX1fQklOQVJZX0RJUn0iCisgICAgICAgICIke0NQTV9BUkdTX0VYQ0xVREVfRlJPTV9BTEx9 IgorICAgICAgICAiJHtDUE1fQVJHU19TWVNURU19IgorICAgICAgICAiJHtDUE1fQVJHU19PUFRJ T05TfSIKKyAgICAgICkKKyAgICBlbmRpZigpCisgICAgY3BtX2dldF9mZXRjaF9wcm9wZXJ0aWVz KCIke0NQTV9BUkdTX05BTUV9IikKKyAgZW5kaWYoKQorCisgIHNldCgke0NQTV9BUkdTX05BTUV9 X0FEREVEIFlFUykKKyAgY3BtX2V4cG9ydF92YXJpYWJsZXMoIiR7Q1BNX0FSR1NfTkFNRX0iKQor ZW5kZnVuY3Rpb24oKQorCisjIEZldGNoIGEgcHJldmlvdXNseSBkZWNsYXJlZCBwYWNrYWdlCitt YWNybyhDUE1HZXRQYWNrYWdlIE5hbWUpCisgIGlmKERFRklORUQgIkNQTV9ERUNMQVJBVElPTl8k e05hbWV9IikKKyAgICBDUE1BZGRQYWNrYWdlKE5BTUUgJHtOYW1lfSkKKyAgZWxzZSgpCisgICAg bWVzc2FnZShTRU5EX0VSUk9SICIke0NQTV9JTkRFTlR9IENhbm5vdCByZXRyaWV2ZSBwYWNrYWdl ICR7TmFtZX06IG5vIGRlY2xhcmF0aW9uIGF2YWlsYWJsZSIpCisgIGVuZGlmKCkKK2VuZG1hY3Jv KCkKKworIyBleHBvcnQgdmFyaWFibGVzIGF2YWlsYWJsZSB0byB0aGUgY2FsbGVyIHRvIHRoZSBw YXJlbnQgc2NvcGUgZXhwZWN0cyAke0NQTV9BUkdTX05BTUV9IHRvIGJlIHNldAorbWFjcm8oY3Bt X2V4cG9ydF92YXJpYWJsZXMgbmFtZSkKKyAgc2V0KCR7bmFtZX1fU09VUkNFX0RJUgorICAgICAg IiR7JHtuYW1lfV9TT1VSQ0VfRElSfSIKKyAgICAgIFBBUkVOVF9TQ09QRQorICApCisgIHNldCgk e25hbWV9X0JJTkFSWV9ESVIKKyAgICAgICIkeyR7bmFtZX1fQklOQVJZX0RJUn0iCisgICAgICBQ QVJFTlRfU0NPUEUKKyAgKQorICBzZXQoJHtuYW1lfV9BRERFRAorICAgICAgIiR7JHtuYW1lfV9B RERFRH0iCisgICAgICBQQVJFTlRfU0NPUEUKKyAgKQorICBzZXQoQ1BNX0xBU1RfUEFDS0FHRV9O QU1FCisgICAgICAiJHtuYW1lfSIKKyAgICAgIFBBUkVOVF9TQ09QRQorICApCitlbmRtYWNybygp CisKKyMgZGVjbGFyZXMgYSBwYWNrYWdlLCBzbyB0aGF0IGFueSBjYWxsIHRvIENQTUFkZFBhY2th Z2UgZm9yIHRoZSBwYWNrYWdlIG5hbWUgd2lsbCB1c2UgdGhlc2UKKyMgYXJndW1lbnRzIGluc3Rl YWQuIFByZXZpb3VzIGRlY2xhcmF0aW9ucyB3aWxsIG5vdCBiZSBvdmVycmlkZGVuLgorbWFjcm8o Q1BNRGVjbGFyZVBhY2thZ2UgTmFtZSkKKyAgaWYoTk9UIERFRklORUQgIkNQTV9ERUNMQVJBVElP Tl8ke05hbWV9IikKKyAgICBzZXQoIkNQTV9ERUNMQVJBVElPTl8ke05hbWV9IiAiJHtBUkdOfSIp CisgIGVuZGlmKCkKK2VuZG1hY3JvKCkKKworZnVuY3Rpb24oY3BtX2FkZF90b19wYWNrYWdlX2xv Y2sgTmFtZSkKKyAgaWYoTk9UIENQTV9ET05UX0NSRUFURV9QQUNLQUdFX0xPQ0spCisgICAgY3Bt X3ByZXR0aWZ5X3BhY2thZ2VfYXJndW1lbnRzKFBSRVRUWV9BUkdOIGZhbHNlICR7QVJHTn0pCisg ICAgZmlsZShBUFBFTkQgJHtDUE1fUEFDS0FHRV9MT0NLX0ZJTEV9ICIjICR7TmFtZX1cbkNQTURl Y2xhcmVQYWNrYWdlKCR7TmFtZX1cbiR7UFJFVFRZX0FSR059KVxuIikKKyAgZW5kaWYoKQorZW5k ZnVuY3Rpb24oKQorCitmdW5jdGlvbihjcG1fYWRkX2NvbW1lbnRfdG9fcGFja2FnZV9sb2NrIE5h bWUpCisgIGlmKE5PVCBDUE1fRE9OVF9DUkVBVEVfUEFDS0FHRV9MT0NLKQorICAgIGNwbV9wcmV0 dGlmeV9wYWNrYWdlX2FyZ3VtZW50cyhQUkVUVFlfQVJHTiB0cnVlICR7QVJHTn0pCisgICAgZmls ZShBUFBFTkQgJHtDUE1fUEFDS0FHRV9MT0NLX0ZJTEV9CisgICAgICAgICAiIyAke05hbWV9ICh1 bnZlcnNpb25lZClcbiMgQ1BNRGVjbGFyZVBhY2thZ2UoJHtOYW1lfVxuJHtQUkVUVFlfQVJHTn0j KVxuIgorICAgICkKKyAgZW5kaWYoKQorZW5kZnVuY3Rpb24oKQorCisjIGluY2x1ZGVzIHRoZSBw YWNrYWdlIGxvY2sgZmlsZSBpZiBpdCBleGlzdHMgYW5kIGNyZWF0ZXMgYSB0YXJnZXQgYGNwbS11 cGRhdGUtcGFja2FnZS1sb2NrYCB0bworIyB1cGRhdGUgaXQKK21hY3JvKENQTVVzZVBhY2thZ2VM b2NrIGZpbGUpCisgIGlmKE5PVCBDUE1fRE9OVF9DUkVBVEVfUEFDS0FHRV9MT0NLKQorICAgIGdl dF9maWxlbmFtZV9jb21wb25lbnQoQ1BNX0FCU09MVVRFX1BBQ0tBR0VfTE9DS19QQVRIICR7Zmls ZX0gQUJTT0xVVEUpCisgICAgaWYoRVhJU1RTICR7Q1BNX0FCU09MVVRFX1BBQ0tBR0VfTE9DS19Q QVRIfSkKKyAgICAgIGluY2x1ZGUoJHtDUE1fQUJTT0xVVEVfUEFDS0FHRV9MT0NLX1BBVEh9KQor ICAgIGVuZGlmKCkKKyAgICBpZihOT1QgVEFSR0VUIGNwbS11cGRhdGUtcGFja2FnZS1sb2NrKQor ICAgICAgYWRkX2N1c3RvbV90YXJnZXQoCisgICAgICAgIGNwbS11cGRhdGUtcGFja2FnZS1sb2Nr IENPTU1BTkQgJHtDTUFLRV9DT01NQU5EfSAtRSBjb3B5ICR7Q1BNX1BBQ0tBR0VfTE9DS19GSUxF fQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7Q1BNX0FCU09MVVRF X1BBQ0tBR0VfTE9DS19QQVRIfQorICAgICAgKQorICAgIGVuZGlmKCkKKyAgICBzZXQoQ1BNX1BB Q0tBR0VfTE9DS19FTkFCTEVEIHRydWUpCisgIGVuZGlmKCkKK2VuZG1hY3JvKCkKKworIyByZWdp c3RlcnMgYSBwYWNrYWdlIHRoYXQgaGFzIGJlZW4gYWRkZWQgdG8gQ1BNCitmdW5jdGlvbihDUE1S ZWdpc3RlclBhY2thZ2UgUEFDS0FHRSBWRVJTSU9OKQorICBsaXN0KEFQUEVORCBDUE1fUEFDS0FH RVMgJHtQQUNLQUdFfSkKKyAgc2V0KENQTV9QQUNLQUdFUworICAgICAgJHtDUE1fUEFDS0FHRVN9 CisgICAgICBDQUNIRSBJTlRFUk5BTCAiIgorICApCisgIHNldCgiQ1BNX1BBQ0tBR0VfJHtQQUNL QUdFfV9WRVJTSU9OIgorICAgICAgJHtWRVJTSU9OfQorICAgICAgQ0FDSEUgSU5URVJOQUwgIiIK KyAgKQorZW5kZnVuY3Rpb24oKQorCisjIHJldHJpZXZlIHRoZSBjdXJyZW50IHZlcnNpb24gb2Yg dGhlIHBhY2thZ2UgdG8gJHtPVVRQVVR9CitmdW5jdGlvbihDUE1HZXRQYWNrYWdlVmVyc2lvbiBQ QUNLQUdFIE9VVFBVVCkKKyAgc2V0KCR7T1VUUFVUfQorICAgICAgIiR7Q1BNX1BBQ0tBR0VfJHtQ QUNLQUdFfV9WRVJTSU9OfSIKKyAgICAgIFBBUkVOVF9TQ09QRQorICApCitlbmRmdW5jdGlvbigp CisKKyMgZGVjbGFyZXMgYSBwYWNrYWdlIGluIEZldGNoQ29udGVudF9EZWNsYXJlCitmdW5jdGlv bihjcG1fZGVjbGFyZV9mZXRjaCBQQUNLQUdFIFZFUlNJT04gSU5GTykKKyAgaWYoJHtDUE1fRFJZ X1JVTn0pCisgICAgY3BtX21lc3NhZ2UoU1RBVFVTICIke0NQTV9JTkRFTlR9IFBhY2thZ2Ugbm90 IGRlY2xhcmVkIChkcnkgcnVuKSIpCisgICAgcmV0dXJuKCkKKyAgZW5kaWYoKQorCisgIEZldGNo Q29udGVudF9EZWNsYXJlKCR7UEFDS0FHRX0gJHtBUkdOfSkKK2VuZGZ1bmN0aW9uKCkKKworIyBy ZXR1cm5zIHByb3BlcnRpZXMgZm9yIGEgcGFja2FnZSBwcmV2aW91c2x5IGRlZmluZWQgYnkgY3Bt X2RlY2xhcmVfZmV0Y2gKK2Z1bmN0aW9uKGNwbV9nZXRfZmV0Y2hfcHJvcGVydGllcyBQQUNLQUdF KQorICBpZigke0NQTV9EUllfUlVOfSkKKyAgICByZXR1cm4oKQorICBlbmRpZigpCisKKyAgc2V0 KCR7UEFDS0FHRX1fU09VUkNFX0RJUgorICAgICAgIiR7Q1BNX1BBQ0tBR0VfJHtQQUNLQUdFfV9T T1VSQ0VfRElSfSIKKyAgICAgIFBBUkVOVF9TQ09QRQorICApCisgIHNldCgke1BBQ0tBR0V9X0JJ TkFSWV9ESVIKKyAgICAgICIke0NQTV9QQUNLQUdFXyR7UEFDS0FHRX1fQklOQVJZX0RJUn0iCisg ICAgICBQQVJFTlRfU0NPUEUKKyAgKQorZW5kZnVuY3Rpb24oKQorCitmdW5jdGlvbihjcG1fc3Rv cmVfZmV0Y2hfcHJvcGVydGllcyBQQUNLQUdFIHNvdXJjZV9kaXIgYmluYXJ5X2RpcikKKyAgaWYo JHtDUE1fRFJZX1JVTn0pCisgICAgcmV0dXJuKCkKKyAgZW5kaWYoKQorCisgIHNldChDUE1fUEFD S0FHRV8ke1BBQ0tBR0V9X1NPVVJDRV9ESVIKKyAgICAgICIke3NvdXJjZV9kaXJ9IgorICAgICAg Q0FDSEUgSU5URVJOQUwgIiIKKyAgKQorICBzZXQoQ1BNX1BBQ0tBR0VfJHtQQUNLQUdFfV9CSU5B UllfRElSCisgICAgICAiJHtiaW5hcnlfZGlyfSIKKyAgICAgIENBQ0hFIElOVEVSTkFMICIiCisg ICkKK2VuZGZ1bmN0aW9uKCkKKworIyBhZGRzIGEgcGFja2FnZSBhcyBhIHN1YmRpcmVjdG9yeSBp ZiB2aWFibGUsIGFjY29yZGluZyB0byBwcm92aWRlZCBvcHRpb25zCitmdW5jdGlvbigKKyAgY3Bt X2FkZF9zdWJkaXJlY3RvcnkKKyAgUEFDS0FHRQorICBET1dOTE9BRF9PTkxZCisgIFNPVVJDRV9E SVIKKyAgQklOQVJZX0RJUgorICBFWENMVURFCisgIFNZU1RFTQorICBPUFRJT05TCispCisKKyAg aWYoTk9UIERPV05MT0FEX09OTFkgQU5EIEVYSVNUUyAke1NPVVJDRV9ESVJ9L0NNYWtlTGlzdHMu dHh0KQorICAgIHNldChhZGRTdWJkaXJlY3RvcnlFeHRyYUFyZ3MgIiIpCisgICAgaWYoRVhDTFVE RSkKKyAgICAgIGxpc3QoQVBQRU5EIGFkZFN1YmRpcmVjdG9yeUV4dHJhQXJncyBFWENMVURFX0ZS T01fQUxMKQorICAgIGVuZGlmKCkKKyAgICBpZigiJHtTWVNURU19IiBBTkQgIiR7Q01BS0VfVkVS U0lPTn0iIFZFUlNJT05fR1JFQVRFUl9FUVVBTCAiMy4yNSIpCisgICAgICAjIGh0dHBzOi8vY21h a2Uub3JnL2NtYWtlL2hlbHAvbGF0ZXN0L3Byb3BfZGlyL1NZU1RFTS5odG1sI3Byb3BfZGlyOlNZ U1RFTQorICAgICAgbGlzdChBUFBFTkQgYWRkU3ViZGlyZWN0b3J5RXh0cmFBcmdzIFNZU1RFTSkK KyAgICBlbmRpZigpCisgICAgaWYoT1BUSU9OUykKKyAgICAgIGZvcmVhY2goT1BUSU9OICR7T1BU SU9OU30pCisgICAgICAgIGNwbV9wYXJzZV9vcHRpb24oIiR7T1BUSU9OfSIpCisgICAgICAgIHNl dCgke09QVElPTl9LRVl9ICIke09QVElPTl9WQUxVRX0iKQorICAgICAgZW5kZm9yZWFjaCgpCisg ICAgZW5kaWYoKQorICAgIHNldChDUE1fT0xEX0lOREVOVCAiJHtDUE1fSU5ERU5UfSIpCisgICAg c2V0KENQTV9JTkRFTlQgIiR7Q1BNX0lOREVOVH0gJHtQQUNLQUdFfToiKQorICAgIGFkZF9zdWJk aXJlY3RvcnkoJHtTT1VSQ0VfRElSfSAke0JJTkFSWV9ESVJ9ICR7YWRkU3ViZGlyZWN0b3J5RXh0 cmFBcmdzfSkKKyAgICBzZXQoQ1BNX0lOREVOVCAiJHtDUE1fT0xEX0lOREVOVH0iKQorICBlbmRp ZigpCitlbmRmdW5jdGlvbigpCisKKyMgZG93bmxvYWRzIGEgcHJldmlvdXNseSBkZWNsYXJlZCBw YWNrYWdlIHZpYSBGZXRjaENvbnRlbnQgYW5kIGV4cG9ydHMgdGhlIHZhcmlhYmxlcworIyBgJHtQ QUNLQUdFfV9TT1VSQ0VfRElSYCBhbmQgYCR7UEFDS0FHRX1fQklOQVJZX0RJUmAgdG8gdGhlIHBh cmVudCBzY29wZQorZnVuY3Rpb24oY3BtX2ZldGNoX3BhY2thZ2UgUEFDS0FHRSBwb3B1bGF0ZWQp CisgIHNldCgke3BvcHVsYXRlZH0KKyAgICAgIEZBTFNFCisgICAgICBQQVJFTlRfU0NPUEUKKyAg KQorICBpZigke0NQTV9EUllfUlVOfSkKKyAgICBjcG1fbWVzc2FnZShTVEFUVVMgIiR7Q1BNX0lO REVOVH0gUGFja2FnZSAke1BBQ0tBR0V9IG5vdCBmZXRjaGVkIChkcnkgcnVuKSIpCisgICAgcmV0 dXJuKCkKKyAgZW5kaWYoKQorCisgIEZldGNoQ29udGVudF9HZXRQcm9wZXJ0aWVzKCR7UEFDS0FH RX0pCisKKyAgc3RyaW5nKFRPTE9XRVIgIiR7UEFDS0FHRX0iIGxvd2VyX2Nhc2VfbmFtZSkKKwor ICBpZihOT1QgJHtsb3dlcl9jYXNlX25hbWV9X1BPUFVMQVRFRCkKKyAgICBGZXRjaENvbnRlbnRf UG9wdWxhdGUoJHtQQUNLQUdFfSkKKyAgICBzZXQoJHtwb3B1bGF0ZWR9CisgICAgICAgIFRSVUUK KyAgICAgICAgUEFSRU5UX1NDT1BFCisgICAgKQorICBlbmRpZigpCisKKyAgY3BtX3N0b3JlX2Zl dGNoX3Byb3BlcnRpZXMoCisgICAgJHtDUE1fQVJHU19OQU1FfSAkeyR7bG93ZXJfY2FzZV9uYW1l fV9TT1VSQ0VfRElSfSAkeyR7bG93ZXJfY2FzZV9uYW1lfV9CSU5BUllfRElSfQorICApCisKKyAg c2V0KCR7UEFDS0FHRX1fU09VUkNFX0RJUgorICAgICAgJHske2xvd2VyX2Nhc2VfbmFtZX1fU09V UkNFX0RJUn0KKyAgICAgIFBBUkVOVF9TQ09QRQorICApCisgIHNldCgke1BBQ0tBR0V9X0JJTkFS WV9ESVIKKyAgICAgICR7JHtsb3dlcl9jYXNlX25hbWV9X0JJTkFSWV9ESVJ9CisgICAgICBQQVJF TlRfU0NPUEUKKyAgKQorZW5kZnVuY3Rpb24oKQorCisjIHNwbGl0cyBhIHBhY2thZ2Ugb3B0aW9u CitmdW5jdGlvbihjcG1fcGFyc2Vfb3B0aW9uIE9QVElPTikKKyAgc3RyaW5nKFJFR0VYIE1BVENI ICJeW14gXSsiIE9QVElPTl9LRVkgIiR7T1BUSU9OfSIpCisgIHN0cmluZyhMRU5HVEggIiR7T1BU SU9OfSIgT1BUSU9OX0xFTkdUSCkKKyAgc3RyaW5nKExFTkdUSCAiJHtPUFRJT05fS0VZfSIgT1BU SU9OX0tFWV9MRU5HVEgpCisgIGlmKE9QVElPTl9LRVlfTEVOR1RIIFNUUkVRVUFMIE9QVElPTl9M RU5HVEgpCisgICAgIyBubyB2YWx1ZSBmb3Iga2V5IHByb3ZpZGVkLCBhc3N1bWUgdXNlciB3YW50 cyB0byBzZXQgb3B0aW9uIHRvICJPTiIKKyAgICBzZXQoT1BUSU9OX1ZBTFVFICJPTiIpCisgIGVs c2UoKQorICAgIG1hdGgoRVhQUiBPUFRJT05fS0VZX0xFTkdUSCAiJHtPUFRJT05fS0VZX0xFTkdU SH0rMSIpCisgICAgc3RyaW5nKFNVQlNUUklORyAiJHtPUFRJT059IiAiJHtPUFRJT05fS0VZX0xF TkdUSH0iICItMSIgT1BUSU9OX1ZBTFVFKQorICBlbmRpZigpCisgIHNldChPUFRJT05fS0VZCisg ICAgICAiJHtPUFRJT05fS0VZfSIKKyAgICAgIFBBUkVOVF9TQ09QRQorICApCisgIHNldChPUFRJ T05fVkFMVUUKKyAgICAgICIke09QVElPTl9WQUxVRX0iCisgICAgICBQQVJFTlRfU0NPUEUKKyAg KQorZW5kZnVuY3Rpb24oKQorCisjIGd1ZXNzZXMgdGhlIHBhY2thZ2UgdmVyc2lvbiBmcm9tIGEg Z2l0IHRhZworZnVuY3Rpb24oY3BtX2dldF92ZXJzaW9uX2Zyb21fZ2l0X3RhZyBHSVRfVEFHIFJF U1VMVCkKKyAgc3RyaW5nKExFTkdUSCAke0dJVF9UQUd9IGxlbmd0aCkKKyAgaWYobGVuZ3RoIEVR VUFMIDQwKQorICAgICMgR0lUX1RBRyBpcyBwcm9iYWJseSBhIGdpdCBoYXNoCisgICAgc2V0KCR7 UkVTVUxUfQorICAgICAgICAwCisgICAgICAgIFBBUkVOVF9TQ09QRQorICAgICkKKyAgZWxzZSgp CisgICAgc3RyaW5nKFJFR0VYIE1BVENIICJ2PyhbMDEyMzQ1Njc4OS5dKikuKiIgXyAke0dJVF9U QUd9KQorICAgIHNldCgke1JFU1VMVH0KKyAgICAgICAgJHtDTUFLRV9NQVRDSF8xfQorICAgICAg ICBQQVJFTlRfU0NPUEUKKyAgICApCisgIGVuZGlmKCkKK2VuZGZ1bmN0aW9uKCkKKworIyBndWVz c2VzIGlmIHRoZSBnaXQgdGFnIGlzIGEgY29tbWl0IGhhc2ggb3IgYW4gYWN0dWFsIHRhZyBvciBh IGJyYW5jaCBuYW1lLgorZnVuY3Rpb24oY3BtX2lzX2dpdF90YWdfY29tbWl0X2hhc2ggR0lUX1RB RyBSRVNVTFQpCisgIHN0cmluZyhMRU5HVEggIiR7R0lUX1RBR30iIGxlbmd0aCkKKyAgIyBmdWxs IGhhc2ggaGFzIDQwIGNoYXJhY3RlcnMsIGFuZCBzaG9ydCBoYXNoIGhhcyBhdCBsZWFzdCA3IGNo YXJhY3RlcnMuCisgIGlmKGxlbmd0aCBMRVNTIDcgT1IgbGVuZ3RoIEdSRUFURVIgNDApCisgICAg c2V0KCR7UkVTVUxUfQorICAgICAgICAwCisgICAgICAgIFBBUkVOVF9TQ09QRQorICAgICkKKyAg ZWxzZSgpCisgICAgaWYoJHtHSVRfVEFHfSBNQVRDSEVTICJeW2EtZkEtRjAtOV0rJCIpCisgICAg ICBzZXQoJHtSRVNVTFR9CisgICAgICAgICAgMQorICAgICAgICAgIFBBUkVOVF9TQ09QRQorICAg ICAgKQorICAgIGVsc2UoKQorICAgICAgc2V0KCR7UkVTVUxUfQorICAgICAgICAgIDAKKyAgICAg ICAgICBQQVJFTlRfU0NPUEUKKyAgICAgICkKKyAgICBlbmRpZigpCisgIGVuZGlmKCkKK2VuZGZ1 bmN0aW9uKCkKKworZnVuY3Rpb24oY3BtX3ByZXR0aWZ5X3BhY2thZ2VfYXJndW1lbnRzIE9VVF9W QVIgSVNfSU5fQ09NTUVOVCkKKyAgc2V0KG9uZVZhbHVlQXJncworICAgICAgTkFNRQorICAgICAg Rk9SQ0UKKyAgICAgIFZFUlNJT04KKyAgICAgIEdJVF9UQUcKKyAgICAgIERPV05MT0FEX09OTFkK KyAgICAgIEdJVEhVQl9SRVBPU0lUT1JZCisgICAgICBHSVRMQUJfUkVQT1NJVE9SWQorICAgICAg QklUQlVDS0VUX1JFUE9TSVRPUlkKKyAgICAgIEdJVF9SRVBPU0lUT1JZCisgICAgICBTT1VSQ0Vf RElSCisgICAgICBGSU5EX1BBQ0tBR0VfQVJHVU1FTlRTCisgICAgICBOT19DQUNIRQorICAgICAg U1lTVEVNCisgICAgICBHSVRfU0hBTExPVworICAgICAgRVhDTFVERV9GUk9NX0FMTAorICAgICAg U09VUkNFX1NVQkRJUgorICApCisgIHNldChtdWx0aVZhbHVlQXJncyBVUkwgT1BUSU9OUyBET1dO TE9BRF9DT01NQU5EKQorICBjbWFrZV9wYXJzZV9hcmd1bWVudHMoQ1BNX0FSR1MgIiIgIiR7b25l VmFsdWVBcmdzfSIgIiR7bXVsdGlWYWx1ZUFyZ3N9IiAke0FSR059KQorCisgIGZvcmVhY2gob25l QXJnTmFtZSAke29uZVZhbHVlQXJnc30pCisgICAgaWYoREVGSU5FRCBDUE1fQVJHU18ke29uZUFy Z05hbWV9KQorICAgICAgaWYoJHtJU19JTl9DT01NRU5UfSkKKyAgICAgICAgc3RyaW5nKEFQUEVO RCBQUkVUVFlfT1VUX1ZBUiAiIyIpCisgICAgICBlbmRpZigpCisgICAgICBpZigke29uZUFyZ05h bWV9IFNUUkVRVUFMICJTT1VSQ0VfRElSIikKKyAgICAgICAgc3RyaW5nKFJFUExBQ0UgJHtDTUFL RV9TT1VSQ0VfRElSfSAiXCR7Q01BS0VfU09VUkNFX0RJUn0iIENQTV9BUkdTXyR7b25lQXJnTmFt ZX0KKyAgICAgICAgICAgICAgICAgICAgICAgJHtDUE1fQVJHU18ke29uZUFyZ05hbWV9fQorICAg ICAgICApCisgICAgICBlbmRpZigpCisgICAgICBzdHJpbmcoQVBQRU5EIFBSRVRUWV9PVVRfVkFS ICIgICR7b25lQXJnTmFtZX0gJHtDUE1fQVJHU18ke29uZUFyZ05hbWV9fVxuIikKKyAgICBlbmRp ZigpCisgIGVuZGZvcmVhY2goKQorICBmb3JlYWNoKG11bHRpQXJnTmFtZSAke211bHRpVmFsdWVB cmdzfSkKKyAgICBpZihERUZJTkVEIENQTV9BUkdTXyR7bXVsdGlBcmdOYW1lfSkKKyAgICAgIGlm KCR7SVNfSU5fQ09NTUVOVH0pCisgICAgICAgIHN0cmluZyhBUFBFTkQgUFJFVFRZX09VVF9WQVIg IiMiKQorICAgICAgZW5kaWYoKQorICAgICAgc3RyaW5nKEFQUEVORCBQUkVUVFlfT1VUX1ZBUiAi ICAke211bHRpQXJnTmFtZX1cbiIpCisgICAgICBmb3JlYWNoKHNpbmdsZU9wdGlvbiAke0NQTV9B UkdTXyR7bXVsdGlBcmdOYW1lfX0pCisgICAgICAgIGlmKCR7SVNfSU5fQ09NTUVOVH0pCisgICAg ICAgICAgc3RyaW5nKEFQUEVORCBQUkVUVFlfT1VUX1ZBUiAiIyIpCisgICAgICAgIGVuZGlmKCkK KyAgICAgICAgc3RyaW5nKEFQUEVORCBQUkVUVFlfT1VUX1ZBUiAiICAgIFwiJHtzaW5nbGVPcHRp b259XCJcbiIpCisgICAgICBlbmRmb3JlYWNoKCkKKyAgICBlbmRpZigpCisgIGVuZGZvcmVhY2go KQorCisgIGlmKE5PVCAiJHtDUE1fQVJHU19VTlBBUlNFRF9BUkdVTUVOVFN9IiBTVFJFUVVBTCAi IikKKyAgICBpZigke0lTX0lOX0NPTU1FTlR9KQorICAgICAgc3RyaW5nKEFQUEVORCBQUkVUVFlf T1VUX1ZBUiAiIyIpCisgICAgZW5kaWYoKQorICAgIHN0cmluZyhBUFBFTkQgUFJFVFRZX09VVF9W QVIgIiAiKQorICAgIGZvcmVhY2goQ1BNX0FSR1NfVU5QQVJTRURfQVJHVU1FTlQgJHtDUE1fQVJH U19VTlBBUlNFRF9BUkdVTUVOVFN9KQorICAgICAgc3RyaW5nKEFQUEVORCBQUkVUVFlfT1VUX1ZB UiAiICR7Q1BNX0FSR1NfVU5QQVJTRURfQVJHVU1FTlR9IikKKyAgICBlbmRmb3JlYWNoKCkKKyAg ICBzdHJpbmcoQVBQRU5EIFBSRVRUWV9PVVRfVkFSICJcbiIpCisgIGVuZGlmKCkKKworICBzZXQo JHtPVVRfVkFSfQorICAgICAgJHtQUkVUVFlfT1VUX1ZBUn0KKyAgICAgIFBBUkVOVF9TQ09QRQor ICApCisKK2VuZGZ1bmN0aW9uKCkKCmRpZmYgLS1naXQgYS9hcmJvci0wLjkuMC1weWJpbmQxMS0z LjAucGF0Y2ggYi9hcmJvci0wLjkuMC1weWJpbmQxMS0zLjAucGF0Y2gKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDZmYzU4ZGIuLjAwMDAwMDAKLS0tIGEvYXJib3ItMC45LjAtcHliaW5k MTEtMy4wLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotZGlmZiAtTmF1ciBh cmJvci0wLjkuMC1vcmlnaW5hbC9weXRob24vcHlhcmIuaHBwIGFyYm9yLTAuOS4wL3B5dGhvbi9w eWFyYi5ocHAKLS0tLSBhcmJvci0wLjkuMC1vcmlnaW5hbC9weXRob24vcHlhcmIuaHBwCTIwMjMt MDgtMTAgMTA6NDc6MzguMDAwMDAwMDAwICswMTAwCi0rKysgYXJib3ItMC45LjAvcHl0aG9uL3B5 YXJiLmhwcAkyMDI1LTExLTAzIDA4OjI0OjAwLjA5MzI1NjMxMSArMDAwMAotQEAgLTEzLDE4ICsx Myw2IEBACi0gCi0gI2luY2x1ZGUgPHB5YmluZDExL3B5YmluZDExLmg+Ci0gCi0tLy8gVmVyc2lv biBjaGVjawotLSNkZWZpbmUgbWtfdG9rKHgpICN4Ci0tI2RlZmluZSBta192ZXIoTSwgbSwgcCkg bWtfdG9rKE0pICIuIiBta190b2sobSkgIi4iIG1rX3RvayhwKQotLSNkZWZpbmUgUEIxMV9FUlIo TSwgbSwgcCkgIlJlcXVpcmVkIHZlcnNpb24gb2YgcHliaW5kMTEgaXMgMi44LjEgPD0gdmVyc2lv biA8IDMuMC4wIEZvdW5kICIgbWtfdmVyKE0sIG0sIHApCi0tc3RhdGljX2Fzc2VydCgoUFlCSU5E MTFfVkVSU0lPTl9IRVggPj0gMHgwMjA4MDEwMCkKLS0gICAgICAgICAgICAgICYmCi0tICAgICAg ICAgICAgICAoUFlCSU5EMTFfVkVSU0lPTl9IRVggIDwgMHgwMzAwMDAwMCksCi0tICAgICAgICAg ICAgICBQQjExX0VSUihQWUJJTkQxMV9WRVJTSU9OX01BSk9SLCBQWUJJTkQxMV9WRVJTSU9OX01J Tk9SLCBQWUJJTkQxMV9WRVJTSU9OX1BBVENIKSk7Ci0tI3VuZGVmIFBCMTFfRVJSCi0tI3VuZGVm IG1rX3ZlcgotLSN1bmRlZiBta190b2sKLS0KLSBuYW1lc3BhY2UgcHlhcmIgewotIAotIC8vIFNh bXBsZSByZWNvcmRlciBvYmplY3QgaW50ZXJmYWNlLgoKZGlmZiAtLWdpdCBhL2FyYm9yLnNwZWMg Yi9hcmJvci5zcGVjCmluZGV4IDhlNzZkZTQuLmFjZDk2MWMgMTAwNjQ0Ci0tLSBhL2FyYm9yLnNw ZWMKKysrIGIvYXJib3Iuc3BlYwpAQCAtMjgsNyArMjgsNyBAQCBEb2N1bWVudGF0aW9uIGlzIGF2 YWlsYWJsZSBhdCBodHRwczovL2FyYm9yLnJlYWR0aGVkb2NzLmlvL2VuL2xhdGVzdC8KICVnbG9i YWwgZm9yZ2V1cmwgICAgICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vYXJib3Itc2ltL2FyYm9y CiAKIE5hbWU6ICAgICAgICAgICBhcmJvcgotVmVyc2lvbjogICAgICAgIDAuOS4wCitWZXJzaW9u OiAgICAgICAgMC4xMi4yCiBSZWxlYXNlOiAgICAgICAgJWF1dG9yZWxlYXNlCiBTdW1tYXJ5OiAg ICAgICAgTXVsdGktY29tcGFydG1lbnQgbmV1cmFsIG5ldHdvcmsgc2ltdWxhdGlvbiBsaWJyYXJ5 CiAKQEAgLTM2LDIyICszNiwzOCBAQCBTdW1tYXJ5OiAgICAgICAgTXVsdGktY29tcGFydG1lbnQg bmV1cmFsIG5ldHdvcmsgc2ltdWxhdGlvbiBsaWJyYXJ5CiAKIFVSTDogICAgICAgICAgICAlZm9y Z2V1cmwKIFNvdXJjZTA6ICAgICAgICAlZm9yZ2Vzb3VyY2UKLSMgc2NyaXB0IHRvIHJ1biBleGFt cGxlcwotU291cmNlMTogICAgICAgIGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9h cmJvci1zaW0vYXJib3IvbWFzdGVyL3NjcmlwdHMvcnVuX3B5dGhvbl9leGFtcGxlcy5zaAotU291 cmNlMjogICAgICAgIGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9hcmJvci1zaW0v YXJib3IvbWFzdGVyL3NjcmlwdHMvcnVuX2NwcF9leGFtcGxlcy5zaAotTGljZW5zZTogICAgICAg IEJTRC0zLUNsYXVzZQorCisjIFRoZSBDUE0uY21ha2Ugc2hpcHBlZCBpbiB0aGUgdXBzdHJlYW0g dGFyYmFsbCBpcyBvbmx5IGEgYm9vdHN0cmFwIHRoYXQKKyMgZG93bmxvYWRzIHRoZSBmdWxsIENQ TS5jbWFrZSBmcm9tIEdpdEh1YiBhdCBjb25maWd1cmUgdGltZSwgd2hpY2ggZmFpbHMgaW4KKyMg dGhlIG9mZmxpbmUgYnVpbGRyb290LiBWZW5kb3IgdGhlIGZ1bGwgQ1BNLmNtYWtlIHYwLjM5LjAg aW5zdGVhZC4KKyMgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2NwbS1jbWFrZS9D UE0uY21ha2UvcmVmcy90YWdzL3YwLjM5LjAvY21ha2UvQ1BNLmNtYWtlCitTb3VyY2UzOiAgICAg ICAgQ1BNXzAuMzkuMC5jbWFrZQorIyB0aW55b3B0IGFuZCB1bm9yZGVyZWRfZGVuc2UgYXJlIGhl YWRlci1vbmx5IGRlcGVuZGVuY2llcyB1c2VkIGJ5IGFyYm9yIHRoYXQKKyMgYXJlIG5vdCBwYWNr YWdlZCBpbiBGZWRvcmEuIENQTSB3b3VsZCBkb3dubG9hZCB0aGVtIGZyb20gR2l0SHViIGF0IGNv bmZpZ3VyZQorIyB0aW1lLCBzbyB2ZW5kb3IgdGhlIHBpbm5lZCB2ZXJzaW9ucyBpbnN0ZWFkLgor IyBodHRwczovL2dpdGh1Yi5jb20vaGFsZmZsYXQvdGlueW9wdAorJWdsb2JhbCB0aW55b3B0X2Nv bW1pdCA3ZTZkNzA3ZDQ5YzZjYjRiZTI3ZWJkMjUzODU2YmU2NTI5MzI4OGRmCislZ2xvYmFsIHRp bnlvcHRfc2hvcnRjb21taXQgJShjPSV7dGlueW9wdF9jb21taXR9OyBlY2hvICR7YzowOjd9KQor IyBodHRwczovL2dpdGh1Yi5jb20vbWFydGludXMvdW5vcmRlcmVkX2RlbnNlCislZ2xvYmFsIHVu b3JkZXJlZF9kZW5zZV90YWcgNC41LjAKK1NvdXJjZTQ6ICAgICAgICBodHRwczovL2dpdGh1Yi5j b20vaGFsZmZsYXQvdGlueW9wdC9hcmNoaXZlLyV7dGlueW9wdF9jb21taXR9L3RpbnlvcHQtJXt0 aW55b3B0X3Nob3J0Y29tbWl0fS50YXIuZ3oKK1NvdXJjZTU6ICAgICAgICBodHRwczovL2dpdGh1 Yi5jb20vbWFydGludXMvdW5vcmRlcmVkX2RlbnNlL2FyY2hpdmUvdiV7dW5vcmRlcmVkX2RlbnNl X3RhZ30vdW5vcmRlcmVkX2RlbnNlLSV7dW5vcmRlcmVkX2RlbnNlX3RhZ30udGFyLmd6CisKKyMg TGljZW5zZSBicmVha2Rvd246CisjICAgTElDRU5TRSAgICAgICAgICAgICAgICAgICAgICAgIC0g QlNELTMtQ2xhdXNlIChhcmJvciBjb2RlKQorIyAgIGV4dC90aW55b3B0IChidW5kbGVkKSAgICAg ICAgICAtIEJTRC0zLUNsYXVzZQorIyAgIGV4dC91bm9yZGVyZWRfZGVuc2UgKGJ1bmRsZWQpICAt IE1JVAorIyAgIGFyYm9yL3V0aWwvc2thc29ydC5ocHAgICAgICAgICAtIEJTTC0xLjAKK0xpY2Vu c2U6ICAgICAgICBCU0QtMy1DbGF1c2UgQU5EIE1JVCBBTkQgQlNMLTEuMAogCiBQYXRjaDogICAg ICAgICAgMDAwMS1RdW90ZS12YXJpb3VzLWNtYWtlLXZhci12YWx1ZXMucGF0Y2gKLSMgVGVzdHMg YXJlIGZhaWxpbmcgdG8gY29tcGlsZSBkdWUgdG8gc29tZSBtaXNzaW5nIGluY2x1ZGVzCi1QYXRj aDogICAgICAgICAgZml4LW1pc3NpbmctaW5jbHVkZXMucGF0Y2gKLSMgRml4IGEgZmV3IHR5cG9z IHRoYXQgY2F1c2UgZmFpbHVyZSB0byBjb21waWxlIHdpdGggR0NDIDE1Ci0jCi0jIFRoZXNlIHdl cmUgZXZlbnR1YWxseSBpbmNsdWRlZCBpbgotIyA3NjEyMGQxNmMwMGFlNjcxMjhjM2M2OTQyMWFi NzEyZjk4NWYzNDQ1LCBhbG9uZyB3aXRoIG1hbnkgb3RoZXIgY2hhbmdlcy4KLVBhdGNoOiAgICAg ICAgICAwMDAxLUZpeC1hLWZldy10eXBvcy10aGF0LWNhdXNlLWZhaWx1cmUtdG8tY29tcGlsZS13 aXRoLUcucGF0Y2gKLSMgUmVtb3ZlIHRoZSBoYXJkLWNvZGVkIHB5YmluZDExIHZlcnNpb24gY2hl Y2sgc28gdGhhdCB3ZSBjYW4gYnVpbGQgd2l0aAotIyBweWJpbmQxMSAzLjA7IHRoaXMgaXMgcGFy dCBvZiBodHRwczovL2dpdGh1Yi5jb20vYXJib3Itc2ltL2FyYm9yL3B1bGwvMjQ4MS4KLVBhdGNo OiAgICAgICAgICBhcmJvci0wLjkuMC1weWJpbmQxMS0zLjAucGF0Y2gKKyMgVXNlIHRoZSB2ZW5k b3JlZCB0aW55b3B0L3Vub3JkZXJlZF9kZW5zZSBpbnN0ZWFkIG9mIGxldHRpbmcgQ1BNIGRvd25s b2FkIHRoZW0KK1BhdGNoOiAgICAgICAgICAwMDAxLVVzZS12ZW5kb3JlZC10aW55b3B0LWFuZC11 bm9yZGVyZWRfZGVuc2UucGF0Y2gKKyMgVXNlIHN5c3RlbSBSYW5kb20xMjMvR1Rlc3QgaW5zdGVh ZCBvZiBsZXR0aW5nIENQTSBkb3dubG9hZCB0aGVtCitQYXRjaDogICAgICAgICAgMDAwMi1Vc2Ut c3lzdGVtLVJhbmRvbTEyMy5wYXRjaAorUGF0Y2g6ICAgICAgICAgIDAwMDMtVXNlLXN5c3RlbS1H VGVzdC5wYXRjaAorIyBBZGQgbWlzc2luZyBzdGFuZGFyZCBpbmNsdWRlcyBmb3IgR0NDIDE2CitQ YXRjaDogICAgICAgICAgMDAwNC1BZGQtbWlzc2luZy1zdGFuZGFyZC1pbmNsdWRlcy10by1wcm9m aWxlci5wYXRjaAogCiAjIFJhbmRvbTEyMyBkb2VzIG5vdCBzdXBwb3J0OgogIyAgIG1pcHM2NHIy IG1pcHMzMnIyIHMzOTAKQEAgLTcxLDggKzg3LDggQEAgQnVpbGRSZXF1aXJlczogIHB5YmluZDEx LWRldmVsCiBCdWlsZFJlcXVpcmVzOiAgcHl0aG9uMy1kZXZlbAogQnVpbGRSZXF1aXJlczogIHB5 dGhvbjMtc2V0dXB0b29scwogQnVpbGRSZXF1aXJlczogIFJhbmRvbTEyMy1kZXZlbAotQnVpbGRS ZXF1aXJlczogIHRjbGFwLWRldmVsCiBCdWlsZFJlcXVpcmVzOiAgcHVnaXhtbC1kZXZlbAorQnVp bGRSZXF1aXJlczogIHVuaXRzLWxsbmwtZGV2ZWwKIAogIyBGb3IgdmFsaWRhdGlvbiwgYnV0IHdl IGRvbid0IGhhdmUgdGhlc2UgQlJzCiAjIEJ1aWxkUmVxdWlyZXM6ICBqdWxpYSBqdWxpYS1zdW5k aWFscyBqdWxpYS11bml0ZnVsIGp1bGlhLUpTT04KQEAgLTg5LDYgKzEwNSwxMiBAQCBSZXF1aXJl czogICAgICAgJXtweTNfZGlzdCBudW1weX0KICMgUHJvdmlkZSBQeXRob24gbWV0YSBkYXRhIGZv ciBwYWNrYWdlcyByZXF1aXJpbmcgYXJib3IKICVweV9wcm92aWRlcyBweXRob24zLWFyYm9yCiAK KyMgQnVuZGxlZCBoZWFkZXItb25seSBsaWJyYXJpZXMgKG5vdCBwYWNrYWdlZCBpbiBGZWRvcmEp OgorIyB0aW55b3B0LCBodHRwczovL2dpdGh1Yi5jb20vaGFsZmZsYXQvdGlueW9wdAorUHJvdmlk ZXM6ICAgICAgIGJ1bmRsZWQodGlueW9wdCkgPSAxLjAKKyMgdW5vcmRlcmVkX2RlbnNlLCBodHRw czovL2dpdGh1Yi5jb20vbWFydGludXMvdW5vcmRlcmVkX2RlbnNlCitQcm92aWRlczogICAgICAg YnVuZGxlZCh1bm9yZGVyZWRfZGVuc2UpID0gNC41LjAKKwogJWRlc2NyaXB0aW9uICV7X2Rlc2Ny aXB0aW9ufQogCiAlcGFja2FnZSBkZXZlbApAQCAtMTU3LDcgKzE3OSw3IEBAIFByb3ZpZGVzOiAg IGFyYm9yLW9wZW5tcGktc3RhdGljID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9CiAlZW5kaWYKIAog JXByZXAKLSVmb3JnZWF1dG9zZXR1cCAtcDEKKyVmb3JnZWF1dG9zZXR1cCAtcDEgLVMgZ2l0CiAK ICMgY29ycmVjdCBjYXRhbG9ndWUgbG9jYXRpb24KIHNlZCAtaSAnc3xkdW1teS1jYXRhbG9ndWUu c298bGliL2R1bW15LWNhdGFsb2d1ZS5zb3wnIHB5dGhvbi90ZXN0L3VuaXQvdGVzdF9jYXRhbG9n dWVzLnB5CkBAIC0xNjksMTggKzE5MSwyMyBAQCBzZWQgLWkgJy90ZXN0X3BhZGRlZC5jcHAvIGQn IHRlc3QvdW5pdC9DTWFrZUxpc3RzLnR4dAogIyBpcyB1c2VkCiBzZWQgLWkgJy9hZGRfc3ViZGly ZWN0b3J5KHB5dGhvbikvaSBcCiBpbmNsdWRlKEZpbmRQeXRob25Nb2R1bGUpJyBDTWFrZUxpc3Rz LnR4dAotIyBEbyBub3QgYnVpbGQgZXh0ZXJuYWwgbGlicmFyaWVzCi1zZWQgLWkgLWUgJ3MvIGV4 dC1yYW5kb20xMjMvLycgQ01ha2VMaXN0cy50eHQKKworIyBSZXBsYWNlIHRoZSBDUE0uY21ha2Ug Ym9vdHN0cmFwICh3aGljaCBkb3dubG9hZHMgQ1BNIGZyb20gR2l0SHViIGF0IGNvbmZpZ3VyZQor IyB0aW1lKSB3aXRoIHRoZSB2ZW5kb3JlZCBjb3B5LCBzbyB0aGF0IHRoZSBidWlsZCB3b3JrcyBp biB0aGUgb2ZmbGluZSBidWlsZHJvb3QKK2NwICV7U09VUkNFM30gY21ha2UvQ1BNLmNtYWtlCiAK ICMgRGlzYWJsZSBkb2MgYnVpbGQ6IHdlIGJ1aWx0IGl0IG91cnNlbHZlcwogc2VkIC1pICcvYWRk X3N1YmRpcmVjdG9yeShkb2MpLyBkJyBDTWFrZUxpc3RzLnR4dAogCi0jIFJlbW92ZSBleHQgZm9s ZGVycywgdW5idW5kbGUgbGlicmFyaWVzCi1ybSAtdnJmIGV4dC9nb29nbGUtYmVuY2htYXJrIGV4 dC9qc29uIGV4dC9yYW5kb20xMjMKKyMgVmVuZG9yIHRpbnlvcHQgYW5kIHVub3JkZXJlZF9kZW5z ZSAoaGVhZGVyLW9ubHkgZGVwZW5kZW5jaWVzIG5vdCBwYWNrYWdlZCBpbgorIyBGZWRvcmEpLCB1 c2luZyB0aGUgcGF0aHMgZXhwZWN0ZWQgYnkKKyMgMDAwMS1Vc2UtdmVuZG9yZWQtdGlueW9wdC1h bmQtdW5vcmRlcmVkX2RlbnNlLnBhdGNoCitta2RpciAtcCBleHQvdGlueW9wdAordGFyIC14emYg JXtTT1VSQ0U0fSAtQyBleHQvdGlueW9wdCAtLXN0cmlwLWNvbXBvbmVudHM9MSAndGlueW9wdC0q L2luY2x1ZGUnICd0aW55b3B0LSovTElDRU5TRScKIG12IGV4dC90aW55b3B0L0xJQ0VOU0UgZXh0 L3RpbnlvcHQvTElDRU5TRS10aW55b3B0Ci0KLSMgdGNsYXAgYW5kIGpzb24gYXJlIGJvdGggaGVh ZGVyIG9ubHkKLWZpbmQgLiAtdHlwZSBmIC1uYW1lICJDTWFrZUxpc3RzLnR4dCIgLWV4ZWMgc2Vk IC1pIC1lICdzL2V4dC10Y2xhcC8vJyAtZSAncy9leHQtanNvbi8vJyB7fSAyPi9kZXYvbnVsbCAn OycKK21rZGlyIC1wIGV4dC91bm9yZGVyZWRfZGVuc2UKK3RhciAteHpmICV7U09VUkNFNX0gLUMg ZXh0L3Vub3JkZXJlZF9kZW5zZSAtLXN0cmlwLWNvbXBvbmVudHM9MSAndW5vcmRlcmVkX2RlbnNl LSovaW5jbHVkZScgJ3Vub3JkZXJlZF9kZW5zZS0qL0xJQ0VOU0UnCittdiBleHQvdW5vcmRlcmVk X2RlbnNlL0xJQ0VOU0UgZXh0L3Vub3JkZXJlZF9kZW5zZS9MSUNFTlNFLXVub3JkZXJlZF9kZW5z ZQogCiAjIENvcnJlY3QgUHl0aG9uIHNoZWJhbmdzIGluIGFsbCBmaWxlcwogZmluZCAuIC10eXBl IGYgLW5hbWUgIioiIC1leGVjIHNlZCAtaSAnc3xeIyFbICBdKi91c3IvYmluL2Vudi4qcHl0aG9u LiokfCMhL3Vzci9iaW4vcHl0aG9uM3wnIHt9IDI+L2Rldi9udWxsICc7JwpAQCAtMTg4LDEyICsy MTUsMTQgQEAgZmluZCAuIC10eXBlIGYgLW5hbWUgIioiIC1leGVjIHNlZCAtaSAnc3xeIyFbICBd Ki91c3IvYmluL2Vudi4qcHl0aG9uLiokfCMhL3Vzci8KICMgRml4IHNoZWJhbmcgKHNwZWNpYWwg Y2FzZSkKIHNlZCAtaSAnc3xeIyFbICBdKi91c3IvZW52L2Jpbi4qcHl0aG9uLiokfCMhL3Vzci9i aW4vcHl0aG9uM3wnIGV4YW1wbGUvbGZwL25ldXJvbl9sZnBfZXhhbXBsZS5weQogCi0jIHRlc3Qg c2NyaXB0cwotY3AgJXtTT1VSQ0UxfSBzY3JpcHRzLwotY3AgJXtTT1VSQ0UyfSBzY3JpcHRzLwor IyBVc2UgdGhlIGV4YW1wbGUgc2NyaXB0cyBzaGlwcGVkIGluIHRoZSB0YXJiYWxsCiBjaG1vZCAr eCBzY3JpcHRzLyouc2gKLXNlZCAtaSAncy8gcHl0aG9uIC8gcHl0aG9uMyAvJyBzY3JpcHRzL3J1 bl9weXRob25fZXhhbXBsZXMuc2gKIHNlZCAtaSAnc3xidWlsZC98Li98JyBzY3JpcHRzL3J1bl9j cHBfZXhhbXBsZXMuc2gKKyMgVGhlIHB5dGhvbiBleGFtcGxlIHJ1bm5lciB3b3VsZCBwaXAgaW5z dGFsbCBleGFtcGxlIHJlcXVpcmVtZW50cywgd2hpY2ggaXMKKyMgbm90IHBvc3NpYmxlIGluIHRo ZSBvZmZsaW5lIGJ1aWxkcm9vdC4gTEZQeWtpdCAodXNlZCBieSBwcm9iZV9sZnB5a2l0LnB5KSBp cworIyBub3QgcGFja2FnZWQgaW4gRmVkb3JhIGVpdGhlci4KK3NlZCAtaSAnL3B5dGhvbjMgLW0g cGlwIGluc3RhbGwgLXIgcHl0aG9uXC9leGFtcGxlXC9leGFtcGxlX3JlcXVpcmVtZW50cy50eHQv ZCcgc2NyaXB0cy9ydW5fcHl0aG9uX2V4YW1wbGVzLnNoCitzZWQgLWkgJy9ydW5weWV4IHByb2Jl X2xmcHlraXQucHkvZCcgc2NyaXB0cy9ydW5fcHl0aG9uX2V4YW1wbGVzLnNoCiAKICMgYnVpbGRk aXIgZm9yIHNlcmlhbAogbWtkaXIgYnVpbGQtc2VyaWFsCkBAIC0yMjYsOCArMjU1LDYgQEAgcHVz aGQgYnVpbGQkTVBJX0NPTVBJTEVfVFlQRSAgJiYKICAgICAgICAgLURTSEFSRV9JTlNUQUxMX1BS RUZJWDpQQVRIPSV7X2RhdGFkaXJ9IFxcXAogICAgICAgICAtRENNQUtFX1NLSVBfUlBBVEg6Qk9P TD1PTiBcXFwKICAgICAgICAgLURDTUFLRV9CVUlMRF9UWVBFOlNUUklORz0icmVsZWFzZSIgXFxc Ci0gICAgICAgIC1EQVJCX1VTRV9CVU5ETEVEX0xJQlM6Qk9PTD1PRkYgXFxcCi0gICAgICAgIC1E QVJCX1VTRV9CVU5ETEVEX1BZQklORDExOkJPT0w9T0ZGIFxcXAogICAgICAgICAtREFSQl9WRUNU T1JJWkU6Qk9PTD1PRkYgXFxcCiAgICAgICAgIC1EQVJCX1dJVEhfTVBJOkJPT0w9JE1QSV9ZRVMg XFxcCiAgICAgICAgIC1EQVJCX1dJVEhfR1BVOkJPT0w9T0ZGIFxcXApAQCAtMjM2LDYgKzI2Myw3 IEBAIHB1c2hkIGJ1aWxkJE1QSV9DT01QSUxFX1RZUEUgICYmCiAgICAgICAgIC1EQ01BS0VfSU5T VEFMTF9MSUJESVI9JXtfbGlifSBcXFwKICAgICAgICAgLURBUkJfV0lUSF9QWVRIT046Qk9PTD1P TiBcXFwKICAgICAgICAgLURBUkJfUFlUSE9OX0xJQl9QQVRIOlNUUklORz0kTVBJX1BZVEhPTjNf U0lURUFSQ0ggXFxcCisgICAgICAgIC1EQVJCX0JVSUxEX1BZVEhPTl9TVFVCUzpCT09MPU9GRiBc XFwKICVpZiAiJXtfbGlifSIgPT0gImxpYjY0IgogICAgICAgICAtRExJQl9TVUZGSVg9NjQgLi4g JiYKICVlbHNlCkBAIC00MTYsNyArNDQ0LDcgQEAgcG9wZAogCiAKICVmaWxlcwotJWxpY2Vuc2Ug TElDRU5TRSBleHQvdGlueW9wdC9MSUNFTlNFLXRpbnlvcHQKKyVsaWNlbnNlIExJQ0VOU0UgZXh0 L3RpbnlvcHQvTElDRU5TRS10aW55b3B0IGV4dC91bm9yZGVyZWRfZGVuc2UvTElDRU5TRS11bm9y ZGVyZWRfZGVuc2UKICVkb2MgUkVBRE1FLm1kCiAle19iaW5kaXJ9L21vZGNjCiAle19iaW5kaXJ9 L2FyYm9yLWJ1aWxkLWNhdGFsb2d1ZQpAQCAtNDQyLDcgKzQ3MCw3IEBAIHBvcGQKICVpZiAle3dp dGggbXBpY2h9CiAlZmlsZXMgbXBpY2gKICVkb2MgUkVBRE1FLm1kCi0lbGljZW5zZSBMSUNFTlNF IGV4dC90aW55b3B0L0xJQ0VOU0UtdGlueW9wdAorJWxpY2Vuc2UgTElDRU5TRSBleHQvdGlueW9w dC9MSUNFTlNFLXRpbnlvcHQgZXh0L3Vub3JkZXJlZF9kZW5zZS9MSUNFTlNFLXVub3JkZXJlZF9k ZW5zZQogJXtfbGliZGlyfS9tcGljaC9iaW4vbW9kY2NfbXBpY2gKICV7X2xpYmRpcn0vbXBpY2gv YmluL2FyYm9yLWJ1aWxkLWNhdGFsb2d1ZV9tcGljaAogJXtfbGliZGlyfS9tcGljaC9iaW4vbG1v cnBob19tcGljaApAQCAtNDYyLDcgKzQ5MCw3IEBAIHBvcGQKICVpZiAle3dpdGggb3Blbm1waX0K ICVmaWxlcyBvcGVubXBpCiAlZG9jIFJFQURNRS5tZAotJWxpY2Vuc2UgTElDRU5TRSBleHQvdGlu eW9wdC9MSUNFTlNFLXRpbnlvcHQKKyVsaWNlbnNlIExJQ0VOU0UgZXh0L3RpbnlvcHQvTElDRU5T RS10aW55b3B0IGV4dC91bm9yZGVyZWRfZGVuc2UvTElDRU5TRS11bm9yZGVyZWRfZGVuc2UKICV7 X2xpYmRpcn0vb3Blbm1waS9iaW4vbW9kY2Nfb3Blbm1waQogJXtfbGliZGlyfS9vcGVubXBpL2Jp bi9hcmJvci1idWlsZC1jYXRhbG9ndWVfb3Blbm1waQogJXtfbGliZGlyfS9vcGVubXBpL2Jpbi9s bW9ycGhvX29wZW5tcGkKCmRpZmYgLS1naXQgYS9maXgtbWlzc2luZy1pbmNsdWRlcy5wYXRjaCBi L2ZpeC1taXNzaW5nLWluY2x1ZGVzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCBlZGZkYTMwLi4wMDAwMDAwCi0tLSBhL2ZpeC1taXNzaW5nLWluY2x1ZGVzLnBhdGNoCisrKyAv ZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotRnJvbSBmYTE1OTM4YzE5NmJmMzE3ZTAyOTJkNDFl YzdkMzQxOTc4ZTllZDA4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU2FuZHJvIDxk ZXZlbEBwZW5ndWlucGVlLm5sPgotRGF0ZTogTW9uLCAyOSBBcHIgMjAyNCAxNDozNTowMSArMDIw MAotU3ViamVjdDogW1BBVENIXSBGaXggbWlzc2luZyBpbmNsdWRlcwotCi1UZXN0cyBhcmUgZmFp bGluZyB0byBjb21waWxlIHdpdGhvdXQgdGhvc2UuCi0KLWRpZmYgLS1naXQgYS90ZXN0L3VuaXQv Y29tbW9uLmhwcCBiL3Rlc3QvdW5pdC9jb21tb24uaHBwCi1pbmRleCBkYjc1ZTRkMS4uZTAyYjlk ZjIgMTAwNjQ0Ci0tLS0gYS90ZXN0L3VuaXQvY29tbW9uLmhwcAotKysrIGIvdGVzdC91bml0L2Nv bW1vbi5ocHAKLUBAIC0xMSw2ICsxMSw3IEBACi0gI2luY2x1ZGUgPHVub3JkZXJlZF9tYXA+Ci0g I2luY2x1ZGUgPHV0aWxpdHk+Ci0gI2luY2x1ZGUgPHZlY3Rvcj4KLSsjaW5jbHVkZSA8YWxnb3Jp dGhtPgotIAotICNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgotIAotZGlmZiAtLWdpdCBhL3Rlc3Qv dW5pdC90ZXN0X2V2ZW50X3F1ZXVlLmNwcCBiL3Rlc3QvdW5pdC90ZXN0X2V2ZW50X3F1ZXVlLmNw cAotaW5kZXggZGFhMGNjYjkuLjE3YzEwMzc4IDEwMDY0NAotLS0tIGEvdGVzdC91bml0L3Rlc3Rf ZXZlbnRfcXVldWUuY3BwCi0rKysgYi90ZXN0L3VuaXQvdGVzdF9ldmVudF9xdWV1ZS5jcHAKLUBA IC02LDYgKzYsNyBAQAotICNpbmNsdWRlIDxhcmJvci9zcGlrZV9ldmVudC5ocHA+Ci0gCi0gI2lu Y2x1ZGUgImV2ZW50X3F1ZXVlLmhwcCIKLSsjaW5jbHVkZSAiY29tbW9uLmhwcCIKLSAKLSB1c2lu ZyBuYW1lc3BhY2UgYXJiOwotIAotZGlmZiAtLWdpdCBhL3Rlc3QvdW5pdC90ZXN0X29yZGVyZWRf Zm9yZXN0LmNwcCBiL3Rlc3QvdW5pdC90ZXN0X29yZGVyZWRfZm9yZXN0LmNwcAotaW5kZXggYzU4 Yzc2YTQuLjEyZjdiZDMxIDEwMDY0NAotLS0tIGEvdGVzdC91bml0L3Rlc3Rfb3JkZXJlZF9mb3Jl c3QuY3BwCi0rKysgYi90ZXN0L3VuaXQvdGVzdF9vcmRlcmVkX2ZvcmVzdC5jcHAKLUBAIC01LDYg KzUsNyBAQAotIAotICNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgotICNpbmNsdWRlICJ1dGlsL29y ZGVyZWRfZm9yZXN0LmhwcCIKLSsjaW5jbHVkZSAiY29tbW9uLmhwcCIKLSAKLSB1c2luZyBhcmI6 OnV0aWw6Om9yZGVyZWRfZm9yZXN0OwotIAoKZGlmZiAtLWdpdCBhL3J1bl9jcHBfZXhhbXBsZXMu c2ggYi9ydW5fY3BwX2V4YW1wbGVzLnNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBk NDYzYjI5Li4wMDAwMDAwCi0tLSBhL3J1bl9jcHBfZXhhbXBsZXMuc2gKKysrIC9kZXYvbnVsbApA QCAtMSwyMSArMCwwIEBACi0jIS91c3IvYmluL2VudiBiYXNoCi0jIFJ1bnMgYWxsIEMrKyBleGFt cGxlcwotCi1zZXQgLUVldW8gcGlwZWZhaWwKLQotaWYgW1sgIiQjIiAtZ3QgMSBdXTsgdGhlbgot ICAgIGVjaG8gInVzYWdlOiBydW5fY3BwX2V4YW1wbGVzLnNoIDxwcmVmaXgsIGUuZy4sIG1waXJ1 biAtbiA0IC1vdmVyc3Vic2NyaWJlPiIKLQlleGl0IDEKLWZpCi0KLVBSRUZJWD0kezE6LX0KLQot JFBSRUZJWCBidWlsZC9iaW4vYmVuY2gKLSRQUkVGSVggYnVpbGQvYmluL2JydW5lbAotJFBSRUZJ WCBidWlsZC9iaW4vZHJ5cnVuCi0kUFJFRklYIGJ1aWxkL2Jpbi9nYXBfanVuY3Rpb25zCi0kUFJF RklYIGJ1aWxkL2Jpbi9nZW5lcmF0b3JzCi0kUFJFRklYIGJ1aWxkL2Jpbi9sZnAKLSRQUkVGSVgg YnVpbGQvYmluL3Byb2JlLWRlbW8gdgotJFBSRUZJWCBidWlsZC9iaW4vcmluZwotJFBSRUZJWCBi dWlsZC9iaW4vc2luZ2xlLWNlbGwKCmRpZmYgLS1naXQgYS9ydW5fcHl0aG9uX2V4YW1wbGVzLnNo IGIvcnVuX3B5dGhvbl9leGFtcGxlcy5zaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg NWVjYTIxZC4uMDAwMDAwMAotLS0gYS9ydW5fcHl0aG9uX2V4YW1wbGVzLnNoCisrKyAvZGV2L251 bGwKQEAgLTEsMjEgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgYmFzaAotIyBSdW5zIGFsbCBQeXRo b24gZXhhbXBsZXMKLQotc2V0IC1FZXVvIHBpcGVmYWlsCi0KLWlmIFtbICIkIyIgLWd0IDEgXV07 IHRoZW4KLSAgICBlY2hvICJ1c2FnZTogcnVuX3B5dGhvbl9leGFtcGxlcy5zaCA8cHJlZml4PiIK LQlleGl0IDEKLWZpCi0KLVBSRUZJWD0kezE6LX0KLQotJFBSRUZJWCBweXRob24gcHl0aG9uL2V4 YW1wbGUvbmV0d29ya19yaW5nLnB5Ci0kUFJFRklYIHB5dGhvbiBweXRob24vZXhhbXBsZS9zaW5n bGVfY2VsbF9tb2RlbC5weQotJFBSRUZJWCBweXRob24gcHl0aG9uL2V4YW1wbGUvc2luZ2xlX2Nl bGxfcmVjaXBlLnB5Ci0kUFJFRklYIHB5dGhvbiBweXRob24vZXhhbXBsZS9zaW5nbGVfY2VsbF9z dGRwLnB5Ci0kUFJFRklYIHB5dGhvbiBweXRob24vZXhhbXBsZS9icnVuZWwucHkgLW4gNDAwIC1t IDEwMCAtZSAyMCAtcCAwLjEgLXcgMS4yIC1kIDEgLWcgMC41IC1sIDUgLXQgMTAwIC1zIDEgLUcg NTAgLVMgMTIzCi0kUFJFRklYIHB5dGhvbiBweXRob24vZXhhbXBsZS9zaW5nbGVfY2VsbF9zd2Mu cHkgcHl0aG9uL2V4YW1wbGUvc2luZ2xlX2NlbGxfZGV0YWlsZWQuc3djCi0kUFJFRklYIHB5dGhv biBweXRob24vZXhhbXBsZS9zaW5nbGVfY2VsbF9kZXRhaWxlZC5weSBweXRob24vZXhhbXBsZS9z aW5nbGVfY2VsbF9kZXRhaWxlZC5zd2MKLSRQUkVGSVggcHl0aG9uIHB5dGhvbi9leGFtcGxlL3Np bmdsZV9jZWxsX2RldGFpbGVkX3JlY2lwZS5weSBweXRob24vZXhhbXBsZS9zaW5nbGVfY2VsbF9k ZXRhaWxlZC5zd2MKLSRQUkVGSVggcHl0aG9uIHB5dGhvbi9leGFtcGxlL3NpbmdsZV9jZWxsX2Nh YmxlLnB5CgpkaWZmIC0tZ2l0IGEvc291cmNlcyBiL3NvdXJjZXMKaW5kZXggMmY4MGZlZS4uMmQw NmY5NCAxMDA2NDQKLS0tIGEvc291cmNlcworKysgYi9zb3VyY2VzCkBAIC0xICsxLDMgQEAKLVNI QTUxMiAoYXJib3ItMC45LjAudGFyLmd6KSA9IGZhMDI4MGNhZTg3MGMxNTBjOGY4OTE5NDlkYTlk NjI3NmY2NzJiYjcxOTFiN2I5ODJjZGE0Njk1ZGQzOGUzYmZmZGQwZGZhNWYzYWNjMmNmOTQwOTA5 ZjY0ZWI5ZGEwNGNkMTFhZWI3YTRiYWEyNjJmZGJjZDk5YmU2MThhYTE1CitTSEE1MTIgKGFyYm9y LTAuMTIuMi50YXIuZ3opID0gYzIzZGU0OWEzNmFmNWY3MjBiOThiNTU3NDEzZTQ2Yjc0NThjY2U1 MmJlZjA1NDEzODYxNjQ3MjhmNGFjYTkwOTAyOWZiZTQ3YmQ0M2NmMDdkYTdkMDgzODhlOTE1OWQ4 ZGQ5YmVlM2VjZGU2Zjc1MDU3N2ZlMDJjZWJjMDUxN2QKK1NIQTUxMiAodGlueW9wdC03ZTZkNzA3 LnRhci5neikgPSA3YjhmNjM0NDZhYzY1NzJjMmRlMjA5MWM3MDM0NTU5N2QzMjdiZjY2NmJiMTFh MWVjZDQ5OTVlY2ZmNjIxMjI4NzhmZDJiOTk5ODRkN2E1M2ZiNDE5YmFmMGVmNDUyZGM5NjA4YTcw MWUxYzU2Yjg4ZTAzMzI4NzBhMWFkYjJlOAorU0hBNTEyICh1bm9yZGVyZWRfZGVuc2UtNC41LjAu dGFyLmd6KSA9IGY5YzgxOWUyOGUxYzFhMzg3YWNmZWUwOTI3N2Q2YWY1ZTM2NjU5N2EwZDM5YWNm MWM2ODdhY2YwNjA4YTk0MWJhOTY2YWY4YWFlYmRiOGZiYTAxMjZjNzM2MDI2OWM0YTUxNzU0ZWY0 Y2FiMTdjMzVjMDFhMzAyMTVmOTUzMzY4Cg==