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=0.7 required=5.0 tests=ALL_TRUSTED,URIBL_BLACK autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 29911 invoked from network); 25 Dec 2020 23:14:32 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 25 Dec 2020 23:14:32 -0000 Content-Type: multipart/mixed; boundary="===============8365319398166155990==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_=5BRFC_WIP=5D_crosstoolchain_build-style?= To: ml@inbox.vuxu.org From: q66 Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Sat, 26 Dec 2020 00:14:30 +0100 List-Id: Message-ID: <20201225231430.vC-_MbmSC3N2xhCOTi3RefHWW94IGHowM1GiFQLDblE@z> GitHub notification mails are now in MIME to allow UTF8. --===============8365319398166155990== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgcTY2IGFnYWluc3QgbWFzdGVyIG9u IHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNvbS9xNjYvdm9p ZC1wYWNrYWdlcyBjcm9zcy1zdHlsZQpodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lk LXBhY2thZ2VzL3B1bGwvMjc0MTIKCltSRkMgV0lQXSBjcm9zc3Rvb2xjaGFpbiBidWlsZC1zdHls ZQpUaGlzIGludHJvZHVjZXMgYSBidWlsZC1zdHlsZSBmb3Igc3lzdGVtIGNyb3NzdG9vbGNoYWlu cy4gSXQgb25seSB3b3JrcywgYW5kIHdpbGwgb25seSB3b3JrLCBmb3IgdG9vbGNoYWlucyB0YXJn ZXRpbmcgVm9pZCBhbmQgb25lIG9mIGl0cyBzdGFuZGFyZCBsaWJyYXJpZXMuIFRoZSBub25lIHRh cmdldHMgYW5kIHN0dWZmIGxpa2UgbWluZ3cgYXJlIGV4cGxpY2l0bHkgYSBub24tZ29hbCwgdG8g cmVkdWNlIHRoZSBhbW91bnQgb2YgbWFnaWMgd2UgaGF2ZSB0byBkby4NCg0KVGhpcyBoYXMgYSBi dW5jaCBvZiBhZHZhbnRhZ2VzOg0KDQotIGNyb3NzdG9vbGNoYWluIHRlbXBsYXRlcyBjYW4gbm93 IGJlIHNtYWxsIGFuZCBzaW1wbGUNCi0gY3Jvc3N0b29sY2hhaW5zIHdyaXRlbiB3aXRoIHRoaXMg YnVpbGQtc3R5bGUgd2lsbCBubyBsb25nZXIgbWVzcyB1cCBtYXN0ZXJkaXJzIGxpa2UgdGhlIGV4 aXN0aW5nIG9uZXMgZG87IHlvdSBjYW4gc2FmZWx5IGJ1aWxkIHlvdXIgc3R1ZmYgd2l0aG91dCBg LXRgIGFuZCB5b3VyIGBtYXN0ZXJkaXJgIHdpbGwgYmUgcHJpc3RpbmUNCi0gdW5pZmljYXRpb24g b2Ygb3B0aW9ucyBwYXNzZWQgdG8gYGdjY2AvbGliYy9gYmludXRpbHNgIGNvbmZpZ3VyZSwgYXMg bXVjaCBhcyBwb3NzaWJsZQ0KLSByZWR1Y2VkIHJlcGVhdGVkIGJvaWxlcnBsYXRlIGNvZGUgYmV0 d2VlbiBpbmRpdmlkdWFsIGNyb3NzdG9vbGNoYWlucw0KLSBgY2NhY2hlYCBmcmllbmRseQ0KLSBl YXNpZXIgdXBncmFkZXMsIGVhc2llciBtYWludGVuYW5jZSwgZXRjDQoNClRoaXMgaXMgY3VycmVu dGx5IGluY29tcGxldGUuIFRoZXNlIHRoaW5ncyBhcmUgbGVmdCB0byBkbzoNCg0KLSBbeF0gQWRk IG11c2wgc3VwcG9ydA0KLSBbeF0gQ2xlYW4gdXAgdGhlIGNvbmZpZ3VyZSBwYXJhbXMsIG9ubHkg a2VlcCB0aGUgZ2VuZXJpYyBvbmVzIGluIHRoZSBidWlsZC1zdHlsZSwgc3BlY2lmaWMgb25lcyB3 aWxsIGdvIGludG8gaW5kaXZpZHVhbCBjcm9zc3Rvb2xjaGFpbnMgKHRoaXMgb25lIGlzIGxhcmdl bHkgYmFzZWQgb24gd2hhdCB0aGUgYWFyY2g2NCBvbmUgd2FzIGRvaW5nKQ0KLSBbeF0gNjQtYml0 IGNyb3NzIG9uIDMyLWJpdCBob3N0cyBpcyBwcm9iYWJseSBhY3R1YWxseSBmaW5lIGluIGdlbmVy YWwsIHdlIGp1c3QgbmVlZCB0byBlbmFibGUgaXQNCi0gfn5BbGxvdyBnbGliYyBjcm9zc3Rvb2xj aGFpbnMgb24gbXVzbH5+ICh0aGlzIG5lZWRzIGBnbGliY2AgMi4zMiBzbyBpdCB3aWxsIGJlIGRv bmUgbGF0ZXIpDQoNClRvb2xjaGFpbiByZXdyaXRlIFRPRE86DQoNCi0gW3hdIGBjcm9zcy1hYXJj aDY0LWxpbnV4LWdudWANCi0gW3hdIGBjcm9zcy1hYXJjaDY0LWxpbnV4LW11c2xgDQotIFt4XSBg Y3Jvc3MtYXJtLWxpbnV4LWdudWVhYmlgDQotIFt4XSBgY3Jvc3MtYXJtLWxpbnV4LW11c2xlYWJp YA0KLSBbeF0gYGNyb3NzLWFybS1saW51eC1nbnVlYWJpaGZgDQotIFt4XSBgY3Jvc3MtYXJtLWxp bnV4LW11c2xlYWJpaGZgDQotIFt4XSBgY3Jvc3MtYXJtdjdsLWxpbnV4LWdudWVhYmloZmANCi0g W3hdIGBjcm9zcy1hcm12N2wtbGludXgtbXVzbGVhYmloZmANCi0gWyBdIGBjcm9zcy1pNjg2LXBj LWxpbnV4LWdudWANCi0gWyBdIGBjcm9zcy1pNjg2LWxpbnV4LW11c2xgDQotIFsgXSBgY3Jvc3Mt bWlwcy1saW51eC1tdXNsYA0KLSBbIF0gYGNyb3NzLW1pcHMtbGludXgtbXVzbGhmYA0KLSBbIF0g YGNyb3NzLW1pcHNlbC1saW51eC1tdXNsYA0KLSBbIF0gYGNyb3NzLW1pcHNlbC1saW51eC1tdXNs aGZgDQotIFsgXSBgY3Jvc3MtcG93ZXJwYy1saW51eC1nbnVgDQotIFsgXSBgY3Jvc3MtcG93ZXJw Yy1saW51eC1tdXNsYA0KLSBbIF0gYGNyb3NzLXBvd2VycGNsZS1saW51eC1nbnVgDQotIFsgXSBg Y3Jvc3MtcG93ZXJwY2xlLWxpbnV4LW11c2xgDQotIFsgXSBgY3Jvc3MtcG93ZXJwYzY0LWxpbnV4 LWdudWANCi0gWyBdIGBjcm9zcy1wb3dlcnBjNjQtbGludXgtbXVzbGANCi0gWyBdIGBjcm9zcy1w b3dlcnBjNjRsZS1saW51eC1nbnVgDQotIFsgXSBgY3Jvc3MtcG93ZXJwYzY0bGUtbGludXgtbXVz bGANCi0gWyBdIGBjcm9zcy14ODZfNjQtbGludXgtZ251YA0KLSBbIF0gYGNyb3NzLXg4Nl82NC1s aW51eC1tdXNsYA0KDQpGb3Igbm93LCBwb3N0aW5nIGZvciBpbnB1dC4NCg0KQER1bmNhZW4gQGxl YWhuZXVraXJjaGVuIEBwdWxsbW9sbCBAZXJpY29uciBAdm9pZC1saW51eC9wa2ctY29tbWl0dGVy cyANCg0KW2NpIHNraXBdCgpBIHBhdGNoIGZpbGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdm9p ZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMjc0MTIucGF0Y2ggaXMgYXR0YWNoZWQ= --===============8365319398166155990== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-cross-style-27412.patch" RnJvbSBkODUwOTY3ZDViMzJjYTU3OTk0NGFjYzQ1ZTFmYjllZWJhMTA0NDVlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBxNjYgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBGcmks IDI1IERlYyAyMDIwIDE0OjU4OjM4ICswMTAwClN1YmplY3Q6IFtQQVRDSCAwMS8xNl0gZ2NjOiB1 c2UgY29uc2lzdGVudCBwYXRjaCBsZXZlbCBmb3IgbXVzbCBwYXRjaGVzCgpuZWVkZWQgZm9yIGNy b3NzIGJ1aWxkIHN0eWxlCi0tLQogc3JjcGtncy9nY2MvZmlsZXMvbGliZ25hcmwtbXVzbC5wYXRj aCB8ICA4ICsrKystLS0tCiBzcmNwa2dzL2djYy9maWxlcy9saWJzc3AtbXVzbC5wYXRjaCAgIHwg MTIgKysrKysrLS0tLS0tCiBzcmNwa2dzL2djYy90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgIHwg IDQgKystLQogMyBmaWxlcyBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2djYy9maWxlcy9saWJnbmFybC1tdXNsLnBhdGNoIGIv c3JjcGtncy9nY2MvZmlsZXMvbGliZ25hcmwtbXVzbC5wYXRjaAppbmRleCAzMWQzOTYwN2VhNC4u NWVkOWYxNmY1NTggMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ2NjL2ZpbGVzL2xpYmduYXJsLW11c2wu cGF0Y2gKKysrIGIvc3JjcGtncy9nY2MvZmlsZXMvbGliZ25hcmwtbXVzbC5wYXRjaApAQCAtMyw4 ICszLDggQEAgVXBzdHJlYW06IFVua25vd24KIFJlYXNvbjogUGF0Y2ggbGliZ25hcmwgdG8gbm90 IHVzZSBmdW5jdGlvbiBtaXNzaW5nIGZyb20gbXVzbC4KIAogZGlmZiAtcnVwIGdjYy04LjIuMC9n Y2MvYWRhL2xpYmduYXJsL3Mtb3NpbnRlX19saW51eC5hZHMgZ2NjLTguMi4wLW5ldy9nY2MvYWRh L2xpYmduYXJsL3Mtb3NpbnRlX19saW51eC5hZHMKLS0tLSBnY2MtOC4yLjAvZ2NjL2FkYS9saWJn bmFybC9zLW9zaW50ZV9fbGludXguYWRzCTIwMTgtMDEtMTEgMDA6NTU6MjUuMDAwMDAwMDAwIC0w ODAwCi0rKysgZ2NjLTguMi4wLW5ldy9nY2MvYWRhL2xpYmduYXJsL3Mtb3NpbnRlX19saW51eC5h ZHMJMjAxOC0xMS0wMSAxNjoxNjoyMy4zNzI0NTI5NTEgLTA3MDAKKy0tLSBnY2MvYWRhL2xpYmdu YXJsL3Mtb3NpbnRlX19saW51eC5hZHMJMjAxOC0wMS0xMSAwMDo1NToyNS4wMDAwMDAwMDAgLTA4 MDAKKysrKyBnY2MvYWRhL2xpYmduYXJsL3Mtb3NpbnRlX19saW51eC5hZHMJMjAxOC0xMS0wMSAx NjoxNjoyMy4zNzI0NTI5NTEgLTA3MDAKIEBAIC0zOTQsMTIgKzM5NCw2IEBAIHBhY2thZ2UgU3lz dGVtLk9TX0ludGVyZmFjZSBpcwogICAgIFBUSFJFQURfUldMT0NLX1BSRUZFUl9XUklURVJfTlAg ICAgICAgICAgICAgIDogY29uc3RhbnQgOj0gMTsKICAgICBQVEhSRUFEX1JXTE9DS19QUkVGRVJf V1JJVEVSX05PTlJFQ1VSU0lWRV9OUCA6IGNvbnN0YW50IDo9IDI7CkBAIC0zMSw4ICszMSw4IEBA IGRpZmYgLXJ1cCBnY2MtOC4yLjAvZ2NjL2FkYS9saWJnbmFybC9zLW9zaW50ZV9fbGludXguYWRz IGdjYy04LjIuMC1uZXcvZ2NjL2FkYS9sCiAgICAgICAgc2NoZWRfcHJpb3JpdHkgOiBpbnQ7ICAt LSAgc2NoZWR1bGluZyBwcmlvcml0eQogICAgIGVuZCByZWNvcmQ7CiBkaWZmIC1ydXAgZ2NjLTgu Mi4wL2djYy9hZGEvbGliZ25hcmwvcy10YXByb3BfX2xpbnV4LmFkYiBnY2MtOC4yLjAtbmV3L2dj Yy9hZGEvbGliZ25hcmwvcy10YXByb3BfX2xpbnV4LmFkYgotLS0tIGdjYy04LjIuMC9nY2MvYWRh L2xpYmduYXJsL3MtdGFwcm9wX19saW51eC5hZGIJMjAxOC0wMS0xMSAwMDo1NToyNS4wMDAwMDAw MDAgLTA4MDAKLSsrKyBnY2MtOC4yLjAtbmV3L2djYy9hZGEvbGliZ25hcmwvcy10YXByb3BfX2xp bnV4LmFkYgkyMDE4LTExLTEzIDExOjI4OjM2LjQzMzk2NDQ0OSAtMDgwMAorLS0tIGdjYy9hZGEv bGliZ25hcmwvcy10YXByb3BfX2xpbnV4LmFkYgkyMDE4LTAxLTExIDAwOjU1OjI1LjAwMDAwMDAw MCAtMDgwMAorKysrIGdjYy9hZGEvbGliZ25hcmwvcy10YXByb3BfX2xpbnV4LmFkYgkyMDE4LTEx LTEzIDExOjI4OjM2LjQzMzk2NDQ0OSAtMDgwMAogQEAgLTIwMiw5ICsyMDIsNiBAQCBwYWNrYWdl IGJvZHkgU3lzdGVtLlRhc2tfUHJpbWl0aXZlcy5PcGVyCiAgICAgcHJhZ21hIEltcG9ydAogICAg ICAgKEMsIEdOQVRfcHRocmVhZF9jb25kYXR0cl9zZXR1cCwgIl9fZ25hdF9wdGhyZWFkX2NvbmRh dHRyX3NldHVwIik7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2djYy9maWxlcy9saWJzc3AtbXVzbC5w YXRjaCBiL3NyY3BrZ3MvZ2NjL2ZpbGVzL2xpYnNzcC1tdXNsLnBhdGNoCmluZGV4IDhhNjkyYzBk NjY0Li44ZDQ3YjQ0MmFhMSAxMDA2NDQKLS0tIGEvc3JjcGtncy9nY2MvZmlsZXMvbGlic3NwLW11 c2wucGF0Y2gKKysrIGIvc3JjcGtncy9nY2MvZmlsZXMvbGlic3NwLW11c2wucGF0Y2gKQEAgLTIs OCArMiw4IEBAIEZpcnN0IHBhcnQgdGFrZW4gZnJvbSBBbHBpbmUuCiAKIFNlY29uZCBwYXJ0IGFk ZGVkIHRvIHByZXZlbnQgZ2NjZ28gZnJvbSB0aGlua2luZyBpdCBjYW4gLWZzcGxpdC1zdGFjayBv biBtdXNsLgogCi0tLS0gYS9nY2MvZ2NjLmMKLSsrKyBiL2djYy9nY2MuYworLS0tIGdjYy9nY2Mu YworKysrIGdjYy9nY2MuYwogQEAgLTg3Niw5ICs4NzYsOCBAQAogICNlbmRpZgogIApAQCAtMTUs OCArMTUsOCBAQCBTZWNvbmQgcGFydCBhZGRlZCB0byBwcmV2ZW50IGdjY2dvIGZyb20gdGhpbmtp bmcgaXQgY2FuIC1mc3BsaXQtc3RhY2sgb24gbXVzbC4KICAjZWxzZQogICNkZWZpbmUgTElOS19T U1BfU1BFQyAiJXtmc3RhY2stcHJvdGVjdG9yfGZzdGFjay1wcm90ZWN0b3ItYWxsIiBcCiAgCQkg ICAgICAgInxmc3RhY2stcHJvdGVjdG9yLXN0cm9uZ3xmc3RhY2stcHJvdGVjdG9yLWV4cGxpY2l0 IiBcCi0tLS0gYS9nY2MvY29uZmlnL2kzODYvZ251LXVzZXItY29tbW9uLmgKLSsrKyBiL2djYy9j b25maWcvaTM4Ni9nbnUtdXNlci1jb21tb24uaAorLS0tIGdjYy9jb25maWcvaTM4Ni9nbnUtdXNl ci1jb21tb24uaAorKysrIGdjYy9jb25maWcvaTM4Ni9nbnUtdXNlci1jb21tb24uaAogQEAgLTY0 LDkgKzY0LDMgQEAgYWxvbmcgd2l0aCBHQ0M7IHNlZSB0aGUgZmlsZSBDT1BZSU5HMy4gIElmIG5v dCBzZWUKICAKICAvKiBTdGF0aWMgc3RhY2sgY2hlY2tpbmcgaXMgc3VwcG9ydGVkIGJ5IG1lYW5z IG9mIHByb2Jlcy4gICovCkBAIC0yNyw4ICsyNyw4IEBAIFNlY29uZCBwYXJ0IGFkZGVkIHRvIHBy ZXZlbnQgZ2NjZ28gZnJvbSB0aGlua2luZyBpdCBjYW4gLWZzcGxpdC1zdGFjayBvbiBtdXNsLgog LSNpZiBIQVZFX0dBU19DRklfUEVSU09OQUxJVFlfRElSRUNUSVZFCiAtI2RlZmluZSBUQVJHRVRf Q0FOX1NQTElUX1NUQUNLCiAtI2VuZGlmCi0tLS0gYS9nY2MvY29uZmlnL2kzODYvZ251LmgKLSsr KyBiL2djYy9jb25maWcvaTM4Ni9nbnUuaAorLS0tIGdjYy9jb25maWcvaTM4Ni9nbnUuaAorKysr IGdjYy9jb25maWcvaTM4Ni9nbnUuaAogQEAgLTQwLDExICs0MCw2IEBAIGFsb25nIHdpdGggR0ND LiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgogIC8qIGkzODYg Z2xpYmMgcHJvdmlkZXMgX19zdGFja19jaGtfZ3VhcmQgaW4gJWdzOjB4MTQuICAqLwogICNkZWZp bmUgVEFSR0VUX1RIUkVBRF9TU1BfT0ZGU0VUICAgICAgICAweDE0CmRpZmYgLS1naXQgYS9zcmNw a2dzL2djYy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ2NjL3RlbXBsYXRlCmluZGV4IDQ3MmI5NTJlYWUz Li4wMmE3NTE2MDAyZCAxMDA2NDQKLS0tIGEvc3JjcGtncy9nY2MvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9nY2MvdGVtcGxhdGUKQEAgLTE3Myw4ICsxNzMsOCBAQCBwcmVfY29uZmlndXJlKCkgewog CXNlZCAtaSAiL2FjX2NwcD0vcy9cJENQUEZMQUdTL1wkQ1BQRkxBR1MgLU8yLyIge2djYyxsaWJp YmVydHl9L2NvbmZpZ3VyZQogCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgogCQkqLW11 c2wpCi0JCQlwYXRjaCAtcDEgLWkgJHtGSUxFU0RJUn0vbGliZ25hcmwtbXVzbC5wYXRjaAotCQkJ cGF0Y2ggLXAxIC1pICR7RklMRVNESVJ9L2xpYnNzcC1tdXNsLnBhdGNoCisJCQlwYXRjaCAtcDAg LWkgJHtGSUxFU0RJUn0vbGliZ25hcmwtbXVzbC5wYXRjaAorCQkJcGF0Y2ggLXAwIC1pICR7RklM RVNESVJ9L2xpYnNzcC1tdXNsLnBhdGNoCiAJCQlwYXRjaCAtcDAgLWkgJHtGSUxFU0RJUn0vZ2Nj Z28tbXVzbC5wYXRjaAogCQkJOzsKIAllc2FjCgpGcm9tIDQ4MDE4NDY1ZDA0Mjc1YTI4YTU4NGEy NzkwNzE1N2M4NGJmZjkxNmQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IHE2NiA8ZGFu aWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IEZyaSwgMjUgRGVjIDIwMjAgMDA6NDI6MjYgKzAxMDAK U3ViamVjdDogW1BBVENIIDAyLzE2XSBjb21tb24vYnVpbGQtc3R5bGU6IGFkZCB2b2lkLWNyb3Nz Cgp0aGlzIGludHJvZHVjZXMgYSBuZXcgYnVpbGQtc3R5bGUgdm9pZC1jcm9zcywgd2hpY2ggY2Fu IGJlIHVzZWQKdG8gd3JpdGUgc3lzdGVtIGNyb3NzdG9vbGNoYWluIHRlbXBsYXRlczsgdGhpcyBp cyB0byByZWR1Y2UgdGhlCmFtb3VudCBvZiBtYWludGVuYW5jZSwgcmVzb2x2ZSBleGlzdGluZyBw cm9ibGVtcyB3aXRoIHRoZSBjcm9zcwp0b29sY2hhaW4gdGVtcGxhdGVzIGFuZCByZW1vdmUgcmVw ZWF0ZWQgY29kZQotLS0KIGNvbW1vbi9idWlsZC1zdHlsZS92b2lkLWNyb3NzLnNoICAgICAgICAg ICAgIHwgNTM5ICsrKysrKysrKysrKysrKysrKysKIGNvbW1vbi9lbnZpcm9ubWVudC9idWlsZC1z dHlsZS92b2lkLWNyb3NzLnNoIHwgIDExICsKIDIgZmlsZXMgY2hhbmdlZCwgNTUwIGluc2VydGlv bnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBjb21tb24vYnVpbGQtc3R5bGUvdm9pZC1jcm9zcy5z aAogY3JlYXRlIG1vZGUgMTAwNjQ0IGNvbW1vbi9lbnZpcm9ubWVudC9idWlsZC1zdHlsZS92b2lk LWNyb3NzLnNoCgpkaWZmIC0tZ2l0IGEvY29tbW9uL2J1aWxkLXN0eWxlL3ZvaWQtY3Jvc3Muc2gg Yi9jb21tb24vYnVpbGQtc3R5bGUvdm9pZC1jcm9zcy5zaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uY2E5NjcxZjMyNjQKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24v YnVpbGQtc3R5bGUvdm9pZC1jcm9zcy5zaApAQCAtMCwwICsxLDUzOSBAQAorIworIyBUaGlzIGhl bHBlciBpcyBmb3Igdm9pZCBzeXN0ZW0gY3Jvc3N0b29sY2hhaW4gdGVtcGxhdGVzLgorIworIyBN YW5kYXRvcnkgdmFyaWFibGVzOgorIworIyAtIGNyb3NzX3RyaXBsZXQgLSB0aGUgdGFyZ2V0IHRy aXBsZXQgKGUuZy4gYWFyY2g2NC1saW51eC1nbnUpCisjIC0gY3Jvc3Nfd29yZHNpemUgLSAzMiBv ciA2NAorIyAtIGNyb3NzX2xpYmMgLSBnbGliYyBvciBtdXNsCisjIC0gY3Jvc3NfYmludXRpbHNf dmVyc2lvbgorIyAtIGNyb3NzX2djY192ZXJzaW9uCisjIC0gY3Jvc3NfbGludXhfdmVyc2lvbgor IyAtIGNyb3NzX2xpbnV4X2FyY2ggLSB0aGUgc291cmNlIEFSQ0ggb2YgdGhlIGtlcm5lbCAoZS5n LiBhcm02NCkKKyMgLSBjcm9zc19nbGliY192ZXJzaW9uCisjIC0gY3Jvc3NfbXVzbF92ZXJzaW9u CisjIC0gY3Jvc3NfbGlidWNvbnRleHRfdmVyc2lvbiAtIG9ubHkgb24gbXVzbCB3aXRob3V0IGNy b3NzX2djY19za2lwX2dvCisjIC0gY3Jvc3NfbGlidWNvbnRleHRfYXJjaCAtIGRpdHRvLCB0aGUg bGlidWNvbnRleHQgYXJjaAorIworIyBPcHRpb25hbCB2YXJpYWJsZXM6CisjCisjIC0gY3Jvc3Nf Z2NjX3NraXBfZ28gLSBkbyBub3QgYnVpbGQgZ2NjZ28gc3VwcG9ydAorIyAtIGNyb3NzX2JpbnV0 aWxzX2NvbmZpZ3VyZV9hcmdzCisjIC0gY3Jvc3NfZ2NjX2Jvb3RzdHJhcF9jb25maWd1cmVfYXJn cworIyAtIGNyb3NzX2djY19jb25maWd1cmVfYXJncworIyAtIGNyb3NzX2dsaWJjX2NmbGFncwor IyAtIGNyb3NzX2dsaWJjX2xkZmxhZ3MKKyMgLSBjcm9zc19nbGliY19jb25maWd1cmVfYXJncwor IyAtIGNyb3NzX211c2xfY2ZsYWdzCisjIC0gY3Jvc3NfbXVzbF9sZGZsYWdzCisjIC0gY3Jvc3Nf bXVzbF9jb25maWd1cmVfYXJncworIworIyBjb25maWd1cmVfYXJncyBpcyBwYXNzZWQgdG8gYm90 aCBib290c3RyYXAgZ2NjIGFuZCBmaW5hbCBnY2MKKyMgaWYgeW91IG5lZWQgdG8gcGFzcyBzb21l IHRvIG9uZSBhbmQgbm90IHRoZSBvdGhlciwgdXNlIHRoZQorIyByZXNwZWN0aXZlIGNyb3NzXyB2 YXJpYWJsZXMgZm9yIGZpbmFsIGdjYyBhbmQgYm9vdHN0cmFwIGdjYworIworCitfYXBwbHlfcGF0 Y2goKSB7CisJbG9jYWwgYXJncz0iJDEiIHBuYW1lPSIkKGJhc2VuYW1lICQyKSIKKwlpZiBbICEg LWYgIi4ke3BuYW1lfV9kb25lIiBdOyB0aGVuCisJCXBhdGNoIC1OICRhcmdzIC1pICQyCisJCXRv dWNoIC4ke3BuYW1lfV9kb25lCisJZmkKK30KKworX2NoZWNrX2Nyb3NzX2RpcigpIHsKKwlsb2Nh bCBkbmFtZT0kMQorCWxvY2FsIHNuYW1lPSQyCisJbG9jYWwgdmFyPSJjcm9zc18ke2RuYW1lfV92 ZXJzaW9uIgorCWNkICR7d3Jrc3JjfQorCWlmIFsgLWYgIi4ke3NuYW1lOj1kbmFtZX1fZG9uZSIg XTsgdGhlbgorCQlyZXR1cm4gMAorCWZpCisJaWYgWyAhIC1kICIkezF9LSR7IXZhcn0iIF07IHRo ZW4KKwkJbXNnX2Vycm9yICIkezF9LSR7IXZhcn0gZG9lcyBub3QgZXhpc3QiCisJZmkKK30KKwor X2J1aWxkX2JpbnV0aWxzKCkgeworCV9jaGVja19jcm9zc19kaXIgYmludXRpbHMKKworCW1zZ19u b3JtYWwgIkJ1aWxkaW5nIGJpbnV0aWxzIGZvciAke2Nyb3NzX3RyaXBsZXR9XG4iCisKKwlta2Rp ciAtcCBiaW51dGlsc19idWlsZAorCWNkIGJpbnV0aWxzX2J1aWxkCisKKwkuLi9iaW51dGlscy0k e2Nyb3NzX2JpbnV0aWxzX3ZlcnNpb259L2NvbmZpZ3VyZSBcCisJCS0tcHJlZml4PS91c3IgXAor CQktLXNiaW5kaXI9L3Vzci9iaW4gXAorCQktLWxpYmRpcj0vdXNyL2xpYiBcCisJCS0tbGliZXhl Y2Rpcj0vdXNyL2xpYiBcCisJCS0tdGFyZ2V0PSR7Y3Jvc3NfdHJpcGxldH0gXAorCQktLXdpdGgt c3lzcm9vdD0vdXNyLyR7Y3Jvc3NfdHJpcGxldH0gXAorCQktLWRpc2FibGUtbmxzIFwKKwkJLS1k aXNhYmxlLXNoYXJlZCBcCisJCS0tZGlzYWJsZS1tdWx0aWxpYiBcCisJCS0tZGlzYWJsZS13ZXJy b3IgXAorCQktLWRpc2FibGUtZ29sZCBcCisJCS0td2l0aC1zeXN0ZW0temxpYiBcCisJCSR7Y3Jv c3NfYmludXRpbHNfY29uZmlndXJlX2FyZ3N9CisKKwltYWtlIGNvbmZpZ3VyZS1ob3N0CisJbWFr ZSAke21ha2Vqb2JzfQorCisJbWFrZSBpbnN0YWxsIERFU1RESVI9JHt3cmtzcmN9L2J1aWxkX3Jv b3QKKworCXRvdWNoICR7d3Jrc3JjfS8uYmludXRpbHNfZG9uZQorfQorCitfYnVpbGRfYm9vdHN0 cmFwX2djYygpIHsKKwlfY2hlY2tfY3Jvc3NfZGlyIGdjYyBnY2NfYm9vdHN0cmFwCisKKwltc2df bm9ybWFsICJQYXRjaGluZyBHQ0MgZm9yICR7Y3Jvc3NfdHJpcGxldH1cbiIKKworCWNkIGdjYy0k e2Nyb3NzX2djY192ZXJzaW9ufQorCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L2djYy9wYXRj aGVzLyoucGF0Y2g7IGRvCisJCV9hcHBseV9wYXRjaCAtcDAgIiRmIgorCWRvbmUKKwlpZiBbICIk Y3Jvc3NfbGliYyIgPSAibXVzbCIgXTsgdGhlbgorCQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElS fS9nY2MvZmlsZXMvKi1tdXNsLnBhdGNoOyBkbworCQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCisJ CWRvbmUKKwlmaQorCWNkIC4uCisKKwltc2dfbm9ybWFsICJCdWlsZGluZyBib290c3RyYXAgR0ND IGZvciAke2Nyb3NzX3RyaXBsZXR9XG4iCisKKwlta2RpciAtcCBnY2NfYm9vdHN0cmFwCisJY2Qg Z2NjX2Jvb3RzdHJhcAorCisJbG9jYWwgZXh0cmFfYXJncworCWlmIFsgIiRjcm9zc19saWJjIiA9 ICJtdXNsIiBdOyB0aGVuCisJCWV4dHJhX2FyZ3MrPSIgLS13aXRoLW5ld2xpYiIKKwkJZXh0cmFf YXJncys9IiAtLWRpc2FibGUtc3ltdmVycyIKKwkJZXh0cmFfYXJncys9IiBsaWJhdF9jdl9oYXZl X2lmdW5jPW5vIgorCWVsc2UKKwkJZXh0cmFfYXJncys9IiAtLXdpdGhvdXQtaGVhZGVycyIKKwlm aQorCisJLi4vZ2NjLSR7Y3Jvc3NfZ2NjX3ZlcnNpb259L2NvbmZpZ3VyZSBcCisJCS0tcHJlZml4 PS91c3IgXAorCQktLXNiaW5kaXI9L3Vzci9iaW4gXAorCQktLWxpYmRpcj0vdXNyL2xpYiBcCisJ CS0tbGliZXhlY2Rpcj0vdXNyL2xpYiBcCisJCS0tdGFyZ2V0PSR7Y3Jvc3NfdHJpcGxldH0gXAor CQktLWRpc2FibGUtbmxzIFwKKwkJLS1kaXNhYmxlLW11bHRpbGliIFwKKwkJLS1kaXNhYmxlLXNo YXJlZCBcCisJCS0tZGlzYWJsZS1saWJxdWFkbWF0aCBcCisJCS0tZGlzYWJsZS1kZWNpbWFsLWZs b2F0IFwKKwkJLS1kaXNhYmxlLWxpYmdvbXAgXAorCQktLWRpc2FibGUtbGlibXB4IFwKKwkJLS1k aXNhYmxlLWxpYm11ZGZsYXAgXAorCQktLWRpc2FibGUtbGlic3NwIFwKKwkJLS1kaXNhYmxlLWxp Yml0bSBcCisJCS0tZGlzYWJsZS1saWJhdG9taWMgXAorCQktLWRpc2FibGUtdGhyZWFkcyBcCisJ CS0tZGlzYWJsZS1zamxqLWV4Y2VwdGlvbnMgXAorCQktLWVuYWJsZS1sYW5ndWFnZXM9YyBcCisJ CS0td2l0aC1nbnUtbGQgXAorCQktLXdpdGgtZ251LWFzIFwKKwkJJHtleHRyYV9hcmdzfSBcCisJ CSR7Y29uZmlndXJlX2FyZ3N9IFwKKwkJJHtjcm9zc19nY2NfYm9vdHN0cmFwX2NvbmZpZ3VyZV9h cmdzfQorCisJbWFrZSAke21ha2Vqb2JzfQorCW1ha2UgaW5zdGFsbCBERVNURElSPSR7d3Jrc3Jj fS9idWlsZF9yb290CisKKwl0b3VjaCAke3dya3NyY30vLmdjY19ib290c3RyYXBfZG9uZQorfQor CitfYnVpbGRfa2VybmVsX2hlYWRlcnMoKSB7CisJX2NoZWNrX2Nyb3NzX2RpciBsaW51eAorCisJ bXNnX25vcm1hbCAiUGF0Y2hpbmcgTGludXggaGVhZGVycyBmb3IgJHtjcm9zc190cmlwbGV0fVxu IgorCisJY2QgbGludXgtJHtjcm9zc19saW51eF92ZXJzaW9ufQorCWZvciBmIGluICR7WEJQU19T UkNQS0dESVJ9L2tlcm5lbC1saWJjLWhlYWRlcnMvcGF0Y2hlcy8qLnBhdGNoOyBkbworCQlfYXBw bHlfcGF0Y2ggLXAwICRmCisJZG9uZQorCWNkIC4uCisKKwltc2dfbm9ybWFsICJCdWlsZGluZyBM aW51eCBoZWFkZXJzIGZvciAke2Nyb3NzX3RyaXBsZXR9XG4iCisKKwljZCBsaW51eC0ke2Nyb3Nz X2xpbnV4X3ZlcnNpb259CisKKwltYWtlIEFSQ0g9JGNyb3NzX2xpbnV4X2FyY2ggaGVhZGVyc19j aGVjaworCW1ha2UgQVJDSD0kY3Jvc3NfbGludXhfYXJjaCBcCisJCUlOU1RBTExfSERSX1BBVEg9 JHt3cmtzcmN9L2J1aWxkX3Jvb3QvdXNyLyR7Y3Jvc3NfdHJpcGxldH0vdXNyIFwKKwkJaGVhZGVy c19pbnN0YWxsCisKKwl0b3VjaCAke3dya3NyY30vLmxpbnV4X2hlYWRlcnNfZG9uZQorfQorCitf YnVpbGRfZ2xpYmNfaGVhZGVycygpIHsKKwlfY2hlY2tfY3Jvc3NfZGlyIGdsaWJjIGdsaWJjX2hl YWRlcnMKKworCWxvY2FsIHRndD0kY3Jvc3NfdHJpcGxldAorCisJbXNnX25vcm1hbCAiUGF0Y2hp bmcgZ2xpYmMgZm9yICR7Y3Jvc3NfdHJpcGxldH1cbiIKKworCWNkIGdsaWJjLSR7Y3Jvc3NfZ2xp YmNfdmVyc2lvbn0KKwlpZiBbIC1kICIke1hCUFNfU1JDUEtHRElSfS9nbGliYy9wYXRjaGVzIiBd OyB0aGVuCisJCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L2dsaWJjL3BhdGNoZXMvKi5wYXRj aDsgZG8KKwkJCV9hcHBseV9wYXRjaCAtcDEgIiRmIgorCQlkb25lCisJZmkKKwljZCAuLgorCisJ bXNnX25vcm1hbCAiQnVpbGRpbmcgZ2xpYmMgaGVhZGVycyBmb3IgJHtjcm9zc190cmlwbGV0fVxu IgorCisJbWtkaXIgLXAgZ2xpYmNfaGVhZGVycworCWNkIGdsaWJjX2hlYWRlcnMKKworCWVjaG8g ImxpYmNfY3ZfZm9yY2VkX3Vud2luZD15ZXMiID4gY29uZmlnLmNhY2hlCisJZWNobyAibGliY19j dl9jX2NsZWFudXA9eWVzIiA+PiBjb25maWcuY2FjaGUKKworCSMgd2UgZG9uJ3QgbmVlZCBhbnkg Y3VzdG9tIGFyZ3MgaGVyZSwgaXQncyBqdXN0IGhlYWRlcnMKKwlDQz0iJHt0Z3R9LWdjYyIgQ1hY PSIke3RndH0tZysrIiBDUFA9IiR7dGd0fS1jcHAiIExEPSIke3RndH0tbGQiIFwKKwlBUz0iJHt0 Z3R9LWFzIiBOTT0iJHt0Z3R9LW5tIiBDRkxBR1M9Ii1waXBlIiBDWFhGTEFHUz0iIiBDUFBGTEFH Uz0iIiBcCisJTERGTEFHUz0iIiBcCisJLi4vZ2xpYmMtJHtjcm9zc19nbGliY192ZXJzaW9ufS9j b25maWd1cmUgXAorCQktLXByZWZpeD0vdXNyIFwKKwkJLS1ob3N0PSR7dGd0fSBcCisJCS0td2l0 aC1oZWFkZXJzPSR7d3Jrc3JjfS9idWlsZF9yb290L3Vzci8ke3RndH0vdXNyL2luY2x1ZGUgXAor CQktLWNvbmZpZy1jYWNoZSBcCisJCS0tZW5hYmxlLW9ic29sZXRlLXJwYyBcCisJCS0tZW5hYmxl LW9ic29sZXRlLW5zbCBcCisJCS0tZW5hYmxlLWtlcm5lbD0yLjYuMjcgXAorCQkke2Nyb3NzX2ds aWJjX2NvbmZpZ3VyZV9hcmdzfQorCisJbWFrZSAtayBpbnN0YWxsLWhlYWRlcnMgY3Jvc3NfY29t cGlsaW5nPXllcyBcCisJCWluc3RhbGxfcm9vdD0ke3dya3NyY30vYnVpbGRfcm9vdC91c3IvJHt0 Z3R9CisKKwl0b3VjaCAke3dya3NyY30vLmdsaWJjX2hlYWRlcnNfZG9uZQorfQorCitfYnVpbGRf Z2xpYmMoKSB7CisJX2NoZWNrX2Nyb3NzX2RpciBnbGliYworCisJbG9jYWwgdGd0PSRjcm9zc190 cmlwbGV0CisKKwltc2dfbm9ybWFsICJCdWlsZGluZyBnbGliYyBmb3IgJHt0Z3R9XG4iCisKKwlt a2RpciAtcCBnbGliY19idWlsZAorCWNkIGdsaWJjX2J1aWxkCisKKwllY2hvICJzbGliZGlyPS91 c3IvbGliJHtjcm9zc193b3Jkc2l6ZX0iID4gY29uZmlncGFybXMKKworCWVjaG8gImxpYmNfY3Zf Zm9yY2VkX3Vud2luZD15ZXMiID4gY29uZmlnLmNhY2hlCisJZWNobyAibGliY19jdl9jX2NsZWFu dXA9eWVzIiA+PiBjb25maWcuY2FjaGUKKworCUNDPSIke3RndH0tZ2NjIiBDWFg9IiR7dGd0fS1n KysiIENQUD0iJHt0Z3R9LWNwcCIgTEQ9IiR7dGd0fS1sZCIgXAorCUFSPSIke3RndH0tYXIiIEFT PSIke3RndH0tYXMiIE5NPSIke3RndH0tbm0iIFwKKwlDRkxBR1M9Ii1waXBlICR7Y3Jvc3NfZ2xp YmNfY2ZsYWdzfSIgXAorCUNYWEZMQUdTPSItcGlwZSAke2Nyb3NzX2dsaWJjX2NmbGFnc30iIFwK KwlDUFBGTEFHUz0iJHtjcm9zc19nbGliY19jZmxhZ3N9IiBcCisJTERGTEFHUz0iJHtjcm9zc19n bGliY19sZGZsYWdzfSIgXAorCS4uL2dsaWJjLSR7Y3Jvc3NfZ2xpYmNfdmVyc2lvbn0vY29uZmln dXJlIFwKKwkJLS1wcmVmaXg9L3VzciBcCisJCS0tbGliZGlyPS91c3IvbGliJHtjcm9zc193b3Jk c2l6ZX0gXAorCQktLWxpYmV4ZWNkaXI9L3Vzci9saWJleGVjIFwKKwkJLS1ob3N0PSR7dGd0fSBc CisJCS0td2l0aC1oZWFkZXJzPSR7d3Jrc3JjfS9idWlsZF9yb290L3Vzci8ke3RndH0vdXNyL2lu Y2x1ZGUgXAorCQktLWNvbmZpZy1jYWNoZSBcCisJCS0tZW5hYmxlLW9ic29sZXRlLXJwYyBcCisJ CS0tZW5hYmxlLW9ic29sZXRlLW5zbCBcCisJCS0tZGlzYWJsZS1wcm9maWxlIFwKKwkJLS1kaXNh YmxlLXdlcnJvciBcCisJCS0tZW5hYmxlLWtlcm5lbD0yLjYuMjcgXAorCQkke2Nyb3NzX2dsaWJj X2NvbmZpZ3VyZV9hcmdzfQorCisJbWFrZSAke21ha2Vqb2JzfQorCW1ha2UgaW5zdGFsbF9yb290 PSR7d3Jrc3JjfS9idWlsZF9yb290L3Vzci8ke3RndH0gaW5zdGFsbAorCisJdG91Y2ggJHt3cmtz cmN9Ly5nbGliY19idWlsZF9kb25lCit9CisKK19idWlsZF9tdXNsKCkgeworCV9jaGVja19jcm9z c19kaXIgbXVzbAorCisJbG9jYWwgdGd0PSRjcm9zc190cmlwbGV0CisKKwltc2dfbm9ybWFsICJQ YXRjaGluZyBtdXNsIGZvciAke3RndH1cbiIKKworCWNkIG11c2wtJHtjcm9zc19tdXNsX3ZlcnNp b259CisJaWYgWyAtZCAiJHtYQlBTX1NSQ1BLR0RJUn0vbXVzbC9wYXRjaGVzIiBdOyB0aGVuCisJ CWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L211c2wvcGF0Y2hlcy8qLnBhdGNoOyBkbworCQkJ X2FwcGx5X3BhdGNoIC1wMCAiJGYiCisJCWRvbmUKKwlmaQorCWNkIC4uCisKKwltc2dfbm9ybWFs ICJCdWlsZGluZyBtdXNsIGZvciAke3RndH1cbiIKKworCW1rZGlyIC1wIG11c2xfYnVpbGQKKwlj ZCBtdXNsX2J1aWxkCisKKwlDQz0iJHt0Z3R9LWdjYyIgQ1hYPSIke3RndH0tZysrIiBDUFA9IiR7 dGd0fS1jcHAiIExEPSIke3RndH0tbGQiIFwKKwlBUj0iJHt0Z3R9LWFyIiBBUz0iJHt0Z3R9LWFz IiBOTT0iJHt0Z3R9LW5tIiBcCisJQ0ZMQUdTPSItcGlwZSAtZlBJQyAke2Nyb3NzX211c2xfY2Zs YWdzfSIgXAorCUNQUEZMQUdTPSIke2Nyb3NzX211c2xfY2ZsYWdzfSIgTERGTEFHUz0iJHtjcm9z c19tdXNsX2xkZmxhZ3N9IiBcCisJLi4vbXVzbC0ke2Nyb3NzX211c2xfdmVyc2lvbn0vY29uZmln dXJlIFwKKwkJLS1wcmVmaXg9L3VzciBcCisJCS0taG9zdD0ke3RndH0gXAorCQkke2Nyb3NzX211 c2xfY29uZmlndXJlX2FyZ3N9CisKKwltYWtlICR7bWFrZWpvYnN9CisJbWFrZSBERVNURElSPSR7 d3Jrc3JjfS9idWlsZF9yb290L3Vzci8ke3RndH0gaW5zdGFsbAorCisJdG91Y2ggJHt3cmtzcmN9 Ly5tdXNsX2J1aWxkX2RvbmUKK30KKworX2J1aWxkX2xpYnVjb250ZXh0KCkgeworCVsgLW4gIiRj cm9zc19nY2Nfc2tpcF9nbyIgXSAmJiByZXR1cm4gMAorCV9jaGVja19jcm9zc19kaXIgbGlidWNv bnRleHQKKworCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGxpYnVjb250ZXh0IGZvciAke2Nyb3NzX3Ry aXBsZXR9XG4iCisKKwljZCBsaWJ1Y29udGV4dC0ke2Nyb3NzX2xpYnVjb250ZXh0X3ZlcnNpb259 CisJIyBhIHRlcnJpYmxlIGhhY2sgYnV0IHNlZW1zIHRvIHdvcmsgZm9yIG5vdworCUNDPSIke2Ny b3NzX3RyaXBsZXR9LWdjYyIgQVM9IiR7Y3Jvc3NfdHJpcGxldH0tYXMiIEFSPSIke2Nyb3NzX3Ry aXBsZXR9LWFyIiBcCisJQ1BQRkxBR1M9Ii1waXBlICR7Y3Jvc3NfbXVzbF9jZmxhZ3N9IC1nMCAt T3MgLW5vc3RkaW5jIC1pc3lzdGVtICR7d3Jrc3JjfS9idWlsZF9yb290L3Vzci8ke2Nyb3NzX3Ry aXBsZXR9L3Vzci9pbmNsdWRlIiBcCisJbWFrZSBBUkNIPSR7Y3Jvc3NfbGlidWNvbnRleHRfYXJj aH0gbGlidWNvbnRleHQuYQorCisJY3AgbGlidWNvbnRleHQuYSAke3dya3NyY30vYnVpbGRfcm9v dC91c3IvJHtjcm9zc190cmlwbGV0fS91c3IvbGliCisKKwl0b3VjaCAke3dya3NyY30vLmxpYnVj b250ZXh0X2J1aWxkX2RvbmUKK30KKworX2J1aWxkX2djYygpIHsKKwlfY2hlY2tfY3Jvc3NfZGly IGdjYworCisJbXNnX25vcm1hbCAiQnVpbGRpbmcgZ2NjIGZvciAke2Nyb3NzX3RyaXBsZXR9XG4i CisKKwlta2RpciAtcCBnY2NfYnVpbGQKKwljZCBnY2NfYnVpbGQKKworCWxvY2FsIGxhbmdzPSJj LGMrKyxmb3J0cmFuLG9iamMsb2JqLWMrKyxhZGEsbHRvIgorCWlmIFsgLXogIiRjcm9zc19nY2Nf c2tpcF9nbyIgXTsgdGhlbgorCQlsYW5ncys9IixnbyIKKwlmaQorCisJbG9jYWwgZXh0cmFfYXJn cworCWlmIFsgIiRjcm9zc19saWJjIiA9ICJtdXNsIiBdOyB0aGVuCisJCWV4dHJhX2FyZ3MrPSIg LS1lbmFibGUtbGlic3NwIgorCQkjIG90aGVyd2lzZSBnbGliYyBob3N0cyBnZXQgY29uZnVzZWQg YW5kIHVzZSB0aGUgZ251IGltcGwKKwkJZXh0cmFfYXJncys9IiAtLWVuYWJsZS1jbG9jYWxlPWdl bmVyaWMiCisJCWV4dHJhX2FyZ3MrPSIgLS1kaXNhYmxlLXN5bXZlcnMiCisJCWV4dHJhX2FyZ3Mr PSIgLS1kaXNhYmxlLWdudS11bmlxdWUtb2JqZWN0IgorCQlleHRyYV9hcmdzKz0iIGxpYmF0X2N2 X2hhdmVfaWZ1bmM9bm8iCisJZWxzZQorCQlleHRyYV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzc3Ai CisJCWV4dHJhX2FyZ3MrPSIgLS1lbmFibGUtZ251LXVuaXF1ZS1vYmplY3QiCisJZmkKKworCS4u L2djYy0ke2Nyb3NzX2djY192ZXJzaW9ufS9jb25maWd1cmUgXAorCQktLXByZWZpeD0vdXNyIFwK KwkJLS1zYmluZGlyPS91c3IvYmluIFwKKwkJLS1saWJkaXI9L3Vzci9saWIgXAorCQktLWxpYmV4 ZWNkaXI9L3Vzci9saWIgXAorCQktLXRhcmdldD0ke2Nyb3NzX3RyaXBsZXR9IFwKKwkJLS13aXRo LXN5c3Jvb3Q9L3Vzci8ke2Nyb3NzX3RyaXBsZXR9IFwKKwkJLS13aXRoLWJ1aWxkLXN5c3Jvb3Q9 JHt3cmtzcmN9L2J1aWxkX3Jvb3QvdXNyLyR7Y3Jvc3NfdHJpcGxldH0gXAorCQktLWVuYWJsZS1s YW5ndWFnZXM9JHtsYW5nc30gXAorCQktLWRpc2FibGUtbmxzIFwKKwkJLS1kaXNhYmxlLW11bHRp bGliIFwKKwkJLS1kaXNhYmxlLXNqbGotZXhjZXB0aW9ucyBcCisJCS0tZGlzYWJsZS1saWJxdWFk bWF0aCBcCisJCS0tZGlzYWJsZS1saWJtdWRmbGFwIFwKKwkJLS1kaXNhYmxlLWxpYml0bSBcCisJ CS0tZGlzYWJsZS1saWJ2dHYgXAorCQktLWRpc2FibGUtbGlic2FuaXRpemVyIFwKKwkJLS1kaXNh YmxlLWxpYnN0ZGN4eC1wY2ggXAorCQktLWVuYWJsZS1zaGFyZWQgXAorCQktLWVuYWJsZS10aHJl YWRzPXBvc2l4IFwKKwkJLS1lbmFibGUtX19jeGFfYXRleGl0IFwKKwkJLS1lbmFibGUtbGlua2Vy LWJ1aWxkLWlkIFwKKwkJLS1lbmFibGUtbGliYWRhIFwKKwkJLS1lbmFibGUtbHRvIFwKKwkJLS1l bmFibGUtZGVmYXVsdC1waWUgXAorCQktLWVuYWJsZS1kZWZhdWx0LXNzcCBcCisJCS0td2l0aC1n bnUtbGQgXAorCQktLXdpdGgtZ251LWFzIFwKKwkJLS13aXRoLWxpbmtlci1oYXNoLXN0eWxlPWdu dSBcCisJCSR7ZXh0cmFfYXJnc30gXAorCQkke2NvbmZpZ3VyZV9hcmdzfSBcCisJCSR7Y3Jvc3Nf Z2NjX2NvbmZpZ3VyZV9hcmdzfQorCisJbWFrZSAke21ha2Vqb2JzfQorCisJdG91Y2ggJHt3cmtz cmN9Ly5nY2NfYnVpbGRfZG9uZQorfQorCitfY2hlY2tfY3Jvc3NfdmFyKCkgeworCWxvY2FsIHZh cj0iY3Jvc3NfJHsxfSIKKwlpZiBbIC16ICIkeyF2YXJ9IiBdOyB0aGVuCisJCW1zZ19lcnJvciAi Y3Jvc3NfJHsxfSBub3QgZGVmaW5lZCBpbiB0ZW1wbGF0ZSIKKwlmaQorfQorCitkb19idWlsZCgp IHsKKwkjIFZlcmlmeSB0b29sY2hhaW4gdmVyc2lvbnMKKworCV9jaGVja19jcm9zc192YXIgYmlu dXRpbHNfdmVyc2lvbgorCV9jaGVja19jcm9zc192YXIgZ2NjX3ZlcnNpb24KKwlfY2hlY2tfY3Jv c3NfdmFyIGxpbnV4X3ZlcnNpb24KKworCWNhc2UgIiR7Y3Jvc3NfbGliY30iIGluCisJCW11c2wp CisJCQlfY2hlY2tfY3Jvc3NfdmFyIG11c2xfdmVyc2lvbgorCQkJaWYgWyAteiAiJGNyb3NzX2dj Y19za2lwX2dvIiBdOyB0aGVuCisJCQkJX2NoZWNrX2Nyb3NzX3ZhciBsaWJ1Y29udGV4dF92ZXJz aW9uCisJCQkJX2NoZWNrX2Nyb3NzX3ZhciBsaWJ1Y29udGV4dF9hcmNoCisJCQlmaQorCQkJOzsK KwkJZ2xpYmMpCisJCQlfY2hlY2tfY3Jvc3NfdmFyIGdsaWJjX3ZlcnNpb24KKwkJCTs7CisJCSop IG1zZ19lcnJvciAiYWxsb3dlZCBjcm9zc19saWJjIHZhbHVlcyBhcmUgJ2dsaWJjJywgJ211c2wn XG4iIDs7CisJZXNhYworCisJIyBWZXJpZnkgdHJpcGxldAorCV9jaGVja19jcm9zc192YXIgdHJp cGxldAorCV9jaGVja19jcm9zc192YXIgd29yZHNpemUKKwlfY2hlY2tfY3Jvc3NfdmFyIGxpbnV4 X2FyY2gKKworCWxvY2FsIHN5c3Jvb3Q9Ii91c3IvJHtjcm9zc190cmlwbGV0fSIKKworCSMgUHJl cGFyZSBlbnZpcm9ubWVudAorCWNkICR7d3Jrc3JjfQorCisJIyBDb3JlIGRpcmVjdG9yaWVzIGZv ciB0aGUgYnVpbGQgcm9vdAorCW1rZGlyIC1wIGJ1aWxkX3Jvb3QvdXNyL3tiaW4sbGliLGluY2x1 ZGUsc2hhcmV9CisJbWtkaXIgLXAgYnVpbGRfcm9vdC91c3IvJHtjcm9zc190cmlwbGV0fS91c3Iv e2JpbixsaWIsaW5jbHVkZSxzaGFyZX0KKworCSMgSG9zdCByb290IHVzZXMgaG9zdCB3b3Jkc2l6 ZQorCWxuIC1zZiB1c3IvbGliIGJ1aWxkX3Jvb3QvbGliCisJbG4gLXNmIHVzci9saWIgYnVpbGRf cm9vdC9saWIke1hCUFNfVEFSR0VUX1dPUkRTSVpFfQorCWxuIC1zZiBsaWIgYnVpbGRfcm9vdC91 c3IvbGliJHtYQlBTX1RBUkdFVF9XT1JEU0laRX0KKworCSMgVGFyZ2V0IHN5c3Jvb3QgdXNlcyB0 YXJnZXQgd29yZHNpemUKKwlsbiAtc2YgdXNyL2xpYiBidWlsZF9yb290LyR7c3lzcm9vdH0vbGli CisJbG4gLXNmIHVzci9saWIgYnVpbGRfcm9vdC8ke3N5c3Jvb3R9L2xpYiR7Y3Jvc3Nfd29yZHNp emV9CisJbG4gLXNmIGxpYiBidWlsZF9yb290LyR7c3lzcm9vdH0vdXNyL2xpYiR7Y3Jvc3Nfd29y ZHNpemV9CisJbG4gLXNmIGxpYiBidWlsZF9yb290LyR7c3lzcm9vdH0vdXNyL2xpYmV4ZWMKKwor CV9idWlsZF9iaW51dGlscworCisJIyBQcmVwYXJlIGVudmlyb25tZW50IHNvIHdlIGNhbiB1c2Ug dGVtcG9yYXJ5IHByZWZpeAorCWxvY2FsIG9sZHBhdGg9IiRQQVRIIgorCWxvY2FsIG9sZGxkbGli PSIkTERfTElCUkFSWV9QQVRIIgorCisJZXhwb3J0IFBBVEg9IiR7d3Jrc3JjfS9idWlsZF9yb290 L3Vzci9iaW46JFBBVEgiCisJZXhwb3J0IExEX0xJQlJBUllfUEFUSD0iJHt3cmtzcmN9L2J1aWxk X3Jvb3QvdXNyL2xpYjokUEFUSCIKKworCV9idWlsZF9ib290c3RyYXBfZ2NjCisJX2J1aWxkX2tl cm5lbF9oZWFkZXJzCisKKwlpZiBbICIkY3Jvc3NfbGliYyIgPSAibXVzbCIgXTsgdGhlbgorCQlf YnVpbGRfbXVzbAorCQlfYnVpbGRfbGlidWNvbnRleHQKKwllbHNlCisJCV9idWlsZF9nbGliY19o ZWFkZXJzCisJCV9idWlsZF9nbGliYworCWZpCisKKwlfYnVpbGRfZ2NjCisKKwkjIHJlc3RvcmUg dGhpcyBzdHVmZiBpbiBjYXNlIGxhdGVyIGhvb2tzIGRlcGVuZCBvbiBpdAorCWV4cG9ydCBQQVRI PSIkb2xkcGF0aCIKKwlleHBvcnQgTERfTElCUkFSWV9QQVRIPSIkb2xkbGRsaWIiCit9CisKK2Rv X2luc3RhbGwoKSB7CisJIyBXZSBuZWVkIHRvIGJlIGFibGUgdG8gYWNjZXNzIGJpbnV0aWxzIGlu IHRoZSByb290CisJbG9jYWwgb2xkcGF0aD0iJFBBVEgiCisJbG9jYWwgb2xkbGRsaWI9IiRMRF9M SUJSQVJZX1BBVEgiCisJZXhwb3J0IFBBVEg9IiR7d3Jrc3JjfS9idWlsZF9yb290L3Vzci9iaW46 JFBBVEgiCisJZXhwb3J0IExEX0xJQlJBUllfUEFUSD0iJHt3cmtzcmN9L2J1aWxkX3Jvb3QvdXNy L2xpYjokUEFUSCIKKworCWxvY2FsIHN5c3Jvb3Q9Ii91c3IvJHtjcm9zc190cmlwbGV0fSIKKwor CSMgQ29yZSBkaXJlY3RvcmllcyBmb3IgdGhlIHN5c3Jvb3QKKwkjCisJIyBsaWJleGVjIGlzIGNy ZWF0ZWQgZm9yIHN5c3Jvb3QgYnV0IG5vdCBmb3IgZGVzdCwgc2luY2UgaW4gc3lzcm9vdAorCSMg d2UgY29uZmlndXJlIGdsaWJjIHdpdGggc2VwYXJhdGUgbGliZXhlYywgZWxzZXdoZXJlIGl0J3Mg anVzdCBsaWIKKwkjIGFuZCB3ZSB3YW50IHRvIGRlbGV0ZSB0aGUgbGliZXhlYyBmcm9tIGdsaWJj IGFmdGVyd2FyZHMgdG8gc2F2ZSBzcGFjZQorCW1rZGlyIC1wICR7REVTVERJUn0vJHtzeXNyb290 fS91c3Ive2JpbixsaWIsbGliZXhlYyxpbmNsdWRlLHNoYXJlfQorCSMgU3lzcm9vdCBiYXNlIHN5 bWxpbmtzCisJbG4gLXNmIHVzci9saWIgJHtERVNURElSfS8ke3N5c3Jvb3R9L2xpYgorCWxuIC1z ZiB1c3IvbGliICR7REVTVERJUn0vJHtzeXNyb290fS9saWIke2Nyb3NzX3dvcmRzaXplfQorCWxu IC1zZiBsaWIgJHtERVNURElSfS8ke3N5c3Jvb3R9L3Vzci9saWIke2Nyb3NzX3dvcmRzaXplfQor CisJIyBJbnN0YWxsIExpbnV4IGhlYWRlcnMKKwljZCAke3dya3NyY30vbGludXgtJHtjcm9zc19s aW51eF92ZXJzaW9ufQorCW1ha2UgQVJDSD0ke2Nyb3NzX2xpbnV4X2FyY2h9IFwKKwkJSU5TVEFM TF9IRFJfUEFUSD0ke0RFU1RESVJ9LyR7c3lzcm9vdH0vdXNyIGhlYWRlcnNfaW5zdGFsbAorCXJt IC1mICQoZmluZCAke0RFU1RESVJ9LyR7c3lzcm9vdH0vdXNyL2luY2x1ZGUgXAorCQktbmFtZSAu aW5zdGFsbCAtb3IgLW5hbWUgLi5pbnN0YWxsLmNtZCkKKwlybSAtcmYgJHtERVNURElSfS8ke3N5 c3Jvb3R9L3Vzci9pbmNsdWRlL2RybQorCisJIyBJbnN0YWxsIGJpbnV0aWxzCisJY2QgJHt3cmtz cmN9L2JpbnV0aWxzX2J1aWxkCisJbWFrZSBpbnN0YWxsIERFU1RESVI9JHtERVNURElSfQorCisJ IyBJbnN0YWxsIGZpbmFsIGdjYworCWNkICR7d3Jrc3JjfS9nY2NfYnVpbGQKKwltYWtlIGluc3Rh bGwgREVTVERJUj0ke0RFU1RESVJ9CisKKwkjIE1vdmUgbGliY2MxLnNvKiB0byB0aGUgc3lzcm9v dAorCW12ICR7REVTVERJUn0vdXNyL2xpYi9saWJjYzEuc28qICR7REVTVERJUn0vJHtzeXNyb290 fS91c3IvbGliCisKKwlpZiBbICIkY3Jvc3NfbGliYyIgPSAibXVzbCIgXTsgdGhlbgorCQkjIElu c3RhbGwgbXVzbAorCQljZCAke3dya3NyY30vbXVzbF9idWlsZAorCQltYWtlIERFU1RESVI9JHtE RVNURElSfS8ke3N5c3Jvb3R9IGluc3RhbGwKKworCQkjIFJlbW92ZSB1c2VsZXNzIGhlYWRlcnMK KwkJcm0gLXJmICR7REVTVERJUn0vdXNyL2xpYi9nY2MvJHtjcm9zc190cmlwbGV0fS8qL2luY2x1 ZGUtZml4ZWQKKworCQkjIE1ha2UgbGQtbXVzbC5zbyBzeW1saW5rcyByZWxhdGl2ZQorCQlmb3Ig ZiBpbiAke0RFU1RESVJ9LyR7c3lzcm9vdH0vdXNyL2xpYi9sZC1tdXNsLSouc28uKjsgZG8KKwkJ CWxuIC1zZiBsaWJjLnNvICR7Zn0KKwkJZG9uZQorCWVsc2UKKwkJIyBJbnN0YWxsIGdsaWJjCisJ CWNkICR7d3Jrc3JjfS9nbGliY19idWlsZAorCQltYWtlIGluc3RhbGxfcm9vdD0ke0RFU1RESVJ9 LyR7c3lzcm9vdH0gaW5zdGFsbCBpbnN0YWxsLWhlYWRlcnMKKworCQkjIFJlbW92ZSBiYWQgaGVh ZGVyCisJCXJtIC1mICR7REVTVERJUn0vdXNyL2xpYi9nY2MvJHtjcm9zc19fdHJpcGxldH0vKi9p bmNsdWRlLWZpeGVkL2JpdHMvc3RhdHguaAorCWZpCisKKwkjIFN5bWxpbmtzIGZvciBnbmFybCBh bmQgZ25hdCBzaGFyZWQgbGlicmFyaWVzCisJbG9jYWwgbWFqb3J2ZXI9JHtjcm9zc19nY2NfdmVy c2lvbiUuKi4qfQorCWxvY2FsIGFkYWxpYj11c3IvbGliL2djYy8ke190cmlwbGV0fS8ke19nY2Nf dmVyc2lvbn0vYWRhbGliCisJbXYgJHtERVNURElSfS8ke2FkYWxpYn0vbGliZ25hcmwtJHttYWpv cnZlcn0uc28gXAorCQkke0RFU1RESVJ9LyR7c3lzcm9vdH0vdXNyL2xpYgorCW12ICR7REVTVERJ Un0vJHthZGFsaWJ9L2xpYmduYXQtJHttYWpvcnZlcn0uc28gXAorCQkke0RFU1RESVJ9LyR7c3lz cm9vdH0vdXNyL2xpYgorCWxuIC1zZiBsaWJnbmFybC0ke21ham9ydmVyfS5zbyAke0RFU1RESVJ9 LyR7c3lzcm9vdH0vdXNyL2xpYi9saWJnbmFybC5zbworCWxuIC1zZiBsaWJnbmF0LSR7bWFqb3J2 ZXJ9LnNvICR7REVTVERJUn0vJHtzeXNyb290fS91c3IvbGliL2xpYmduYXQuc28KKwlybSAtdmYg JHtERVNURElSfS8ke2FkYWxpYn0vbGliZ25he3JsLHR9LnNvCisKKwkjIFJlbW92ZSB1bm5lY2Vz c2FyeSBsaWJhdG9taWMgd2hpY2ggaXMgb25seSBidWlsdCBmb3IgZ2NjZ28KKwlybSAtcmYgJHtE RVNURElSfS8ke3N5c3Jvb3R9L3Vzci9saWIvbGliYXRvbWljLioKKworCSMgUmVtb3ZlIGxlZnRv dmVyIHN5bWxpbmtzCisJcm0gLWYgJHtERVNURElSfS91c3IvbGliJHtYQlBTX1RBUkdFVF9XT1JE U0laRX0KKwlybSAtZiAke0RFU1RESVJ9L2xpYioKKwlybSAtZiAke0RFU1RESVJ9LypiaW4KKwkj IFJlbW92ZSB1bm5lY2Vzc2FyeSBzdHVmZgorCXJtIC1yZiAke0RFU1RESVJ9LyR7c3lzcm9vdH0v e3NiaW4sZXRjLHZhcixsaWJleGVjfQorCXJtIC1yZiAke0RFU1RESVJ9LyR7c3lzcm9vdH0vdXNy L3tzYmluLHNoYXJlLGxpYmV4ZWN9CisJcm0gLXJmICR7REVTVERJUn0vdXNyL3NoYXJlCisJcm0g LWYgJHtERVNURElSfS91c3IvbGliKi9saWJpYmVydHkuYQorCisJZXhwb3J0IFBBVEg9IiRvbGRw YXRoIgorCWV4cG9ydCBMRF9MSUJSQVJZX1BBVEg9IiRvbGRsZGxpYiIKK30KZGlmZiAtLWdpdCBh L2NvbW1vbi9lbnZpcm9ubWVudC9idWlsZC1zdHlsZS92b2lkLWNyb3NzLnNoIGIvY29tbW9uL2Vu dmlyb25tZW50L2J1aWxkLXN0eWxlL3ZvaWQtY3Jvc3Muc2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAuLjgwYWFhYjQ3ZmQyCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9u L2Vudmlyb25tZW50L2J1aWxkLXN0eWxlL3ZvaWQtY3Jvc3Muc2gKQEAgLTAsMCArMSwxMSBAQAor bGliMzJkaXNhYmxlZD15ZXMKK25vY3Jvc3M9eWVzCitub3BpZT15ZXMKK2NyZWF0ZV93cmtzcmM9 eWVzCisKK25vc3RyaXBfZmlsZXMrPSJsaWJjYWZfc2luZ2xlLmEgbGliZ2NjLmEgbGliZ2Nvdi5h IGxpYmdjY19laC5hCisgbGliZ25hcmxfcGljLmEgbGliZ25hcmwuYSBsaWJnbmF0X3BpYy5hIGxp YmduYXQuYSBsaWJnbWVtLmEiCisKK2lmIFsgIiRjcm9zc19saWJjIiA9ICJnbGliYyIgLWEgIiRY QlBTX1RBUkdFVF9MSUJDIiAhPSAiZ2xpYmMiIF07IHRoZW4KKyAgICBicm9rZW49ImdsaWJjIGNy b3NzdG9vbGNoYWlucyBhcmUgb25seSBhdmFpbGFibGUgb24gZ2xpYmMgaG9zdHMgZm9yIG5vdyIK K2ZpCgpGcm9tIDNkYjM5ZjI5NGE1ZmE2NDBkMGI3YjI1MjI3ZTQ0NGM2Nzc1ODQzNjggTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IHE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6 IEZyaSwgMjUgRGVjIDIwMjAgMDA6NDM6NDggKzAxMDAKU3ViamVjdDogW1BBVENIIDAzLzE2XSBj cm9zcy1hYXJjaDY0LWxpbnV4LWdudTogcmVkbyB3aXRoIHZvaWQtY3Jvc3MKCi0tLQogc3JjcGtn cy9jcm9zcy1hYXJjaDY0LWxpbnV4LWdudS90ZW1wbGF0ZSB8IDM2NyArKy0tLS0tLS0tLS0tLS0t LS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE5IGluc2VydGlvbnMoKyksIDM0OCBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nyb3NzLWFhcmNoNjQtbGludXgtZ251L3RlbXBsYXRl IGIvc3JjcGtncy9jcm9zcy1hYXJjaDY0LWxpbnV4LWdudS90ZW1wbGF0ZQppbmRleCBiMDEyMmM4 ZWM0YS4uZjUwZDE3YjhiODAgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY3Jvc3MtYWFyY2g2NC1saW51 eC1nbnUvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9jcm9zcy1hYXJjaDY0LWxpbnV4LWdudS90ZW1w bGF0ZQpAQCAtMSwyMSArMSwyMSBAQAotIyBUZW1wbGF0ZSBidWlsZCBmaWxlIGZvciAnY3Jvc3Mt YWFyY2g2NC1saW51eC1nbnUnCi0jCisjIFRlbXBsYXRlIGZpbGUgZm9yICdjcm9zcy1hYXJjaDY0 LWxpbnV4LWdudScKK190cmlwbGV0PWFhcmNoNjQtbGludXgtZ251CiBfYmludXRpbHNfdmVyc2lv bj0yLjMyCiBfZ2NjX3ZlcnNpb249OS4zLjAKIF9nbGliY192ZXJzaW9uPTIuMzAKIF9saW51eF92 ZXJzaW9uPTQuMTkKLQotX3RyaXBsZXQ9YWFyY2g2NC1saW51eC1nbnUKLV9hcmNoZmxhZ3M9Ii1t YXJjaD1hcm12OC1hIgotX3N5c3Jvb3Q9Ii91c3IvJHtfdHJpcGxldH0iCi0KIHBrZ25hbWU9Y3Jv c3MtJHtfdHJpcGxldH0KIHZlcnNpb249MC4zMwogcmV2aXNpb249Mwotc2hvcnRfZGVzYz0iR05V IENyb3NzIHRvb2xjaGFpbiBmb3IgdGhlICR7X3RyaXBsZXR9IExFIHRhcmdldCAoYmludXRpbHMv Z2NjL2dsaWJjKSIKK2J1aWxkX3N0eWxlPXZvaWQtY3Jvc3MKK2NvbmZpZ3VyZV9hcmdzPSItLXdp dGgtYXJjaD1hcm12OC1hIgoraG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZ2NjLWdvIGZs ZXggcGVybCBweXRob24zIgorbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCB6 bGliLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIgorZGVwZW5kcz0iJHtwa2duYW1lfS1saWJj LSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCitzaG9ydF9kZXNjPSJWb2lkIGNyb3NzIHRvb2xjaGFp biBmb3IgJHtfdHJpcGxldH0iCiBtYWludGFpbmVyPSJMZWFoIE5ldWtpcmNoZW4gPGxlYWhAdnV4 dS5vcmc+IgotaG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51eC5vcmcvIgogbGljZW5zZT0i R1BMLTIuMC1vci1sYXRlciwgR1BMLTMuMC1vci1sYXRlciwgTEdQTC0yLjEtb3ItbGF0ZXIiCito b21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBkaXN0ZmlsZXM9IgogICR7R05V X1NJVEV9L2JpbnV0aWxzL2JpbnV0aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259LnRhci54egogICR7 R05VX1NJVEV9L2djYy9nY2MtJHtfZ2NjX3ZlcnNpb259L2djYy0ke19nY2NfdmVyc2lvbn0udGFy Lnh6CkBAIC0yNiwzNDkgKzI2LDIwIEBAIGNoZWNrc3VtPSIwYWI2YzU1ZGQ4NmE5MmVkNTYxOTcy YmExNWI5YjcwYThiOWY3NTU1N2Y4OTY0NDZjODJlOGIzNmU0NzNlZTA0CiAgZTJjNDExNGU1Njlh ZmJlN2VkYmMyOTEzMWE0M2JlODMzODUwYWI5YTQ1OWQ4MWJlYjI1ODgwMTZkMmJiYjhhZgogIDBj NjhmNTY1NTUyOGFlZDRmOTlkYWU3MWE1YjI1OWVkYzkzMjM5ZmE4OTllMmRmNzljMDU1Mjc1YzIx NzQ5YTEiCiAKLWxpYjMyZGlzYWJsZWQ9eWVzCi1ub2Nyb3NzPXllcwotbm9waWU9eWVzCi1jcmVh dGVfd3Jrc3JjPXllcwotaG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZ2NjLWdvIGZsZXgg cGVybCBweXRob24zIgotbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCB6bGli LWRldmVsIgotZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0i Ci1ub3N0cmlwX2ZpbGVzPSJsaWJjYWZfc2luZ2xlLmEgbGliZ2NjLmEgbGliZ2Nvdi5hIGxpYmdj Y19laC5hCi0gbGliZ25hcmxfcGljLmEgbGliZ25hcmwuYSBsaWJnbmF0X3BpYy5hIGxpYmduYXQu YSBsaWJnbWVtLmEiCi0KLWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiAhPSAiZ2xpYmMiIF07IHRo ZW4KLQlicm9rZW49ImdsaWJjIGNyb3NzdG9vbGNoYWluIG9ubHkgYXZhaWxhYmxlIG9uIGdsaWJj IgotZmkKLQotaWYgWyAiJFhCUFNfVEFSR0VUX1dPUkRTSVpFIiAhPSAiNjQiIF07IHRoZW4KLQli cm9rZW49IjY0LWJpdCBjcm9zc3Rvb2xjaGFpbiBvbmx5IGF2YWlsYWJsZSBvbiA2NC1iaXQgaG9z dCIKLWZpCitjcm9zc190cmlwbGV0PSR7X3RyaXBsZXR9Citjcm9zc193b3Jkc2l6ZT02NAorY3Jv c3NfbGliYz1nbGliYworY3Jvc3NfYmludXRpbHNfdmVyc2lvbj0ke19iaW51dGlsc192ZXJzaW9u fQorY3Jvc3NfZ2NjX3ZlcnNpb249JHtfZ2NjX3ZlcnNpb259Citjcm9zc19nbGliY192ZXJzaW9u PSR7X2dsaWJjX3ZlcnNpb259Citjcm9zc19saW51eF92ZXJzaW9uPSR7X2xpbnV4X3ZlcnNpb259 Citjcm9zc19saW51eF9hcmNoPWFybTY0Citjcm9zc19nbGliY19jZmxhZ3M9Ii1PMiAtbWFyY2g9 YXJtdjgtYSIKIAogaWYgWyAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiID0gImFhcmNoNjQiIF07IHRo ZW4KIAlicm9rZW49IkNhbid0IGJ1aWxkIGNyb3NzdG9vbGNoYWluIHRvIGl0c2VsZiIKIGZpCiAK LV9hcHBseV9wYXRjaCgpIHsKLQlsb2NhbCBhcmdzPSIkMSIgcG5hbWU9IiQoYmFzZW5hbWUgJDIp IgotCi0JaWYgWyAhIC1mICIuJHtwbmFtZX1fZG9uZSIgXTsgdGhlbgotCQlwYXRjaCAtTiAkYXJn cyAtaSAkMgotCQl0b3VjaCAuJHtwbmFtZX1fZG9uZQotCWZpCi19Ci0KLV9saW51eF9oZWFkZXJz KCkgewotCVsgLWYgJHt3cmtzcmN9Ly5saW51eF9idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQot CWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIExpbnV4IEFQSSBoZWFkZXJzIGZv ciBBUk1cbiIKLQotCWNkIGxpbnV4LSR7X2xpbnV4X3ZlcnNpb259Ci0KLQltYWtlIEFSQ0g9YXJt NjQgaGVhZGVyc19jaGVjawotCW1ha2UgQVJDSD1hcm02NCBJTlNUQUxMX0hEUl9QQVRIPSR7X3N5 c3Jvb3R9L3VzciBoZWFkZXJzX2luc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8ubGludXhfYnVp bGRfZG9uZQotfQotCi1fYmludXRpbHNfYnVpbGQoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYg JHt3cmtzcmN9Ly5iaW51dGlsc19idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jr c3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGJpbnV0aWxzXG4iCi0JWyAhIC1kIGJp bnV0aWxzLWJ1aWxkIF0gJiYgbWtkaXIgYmludXRpbHMtYnVpbGQKLQljZCBiaW51dGlscy1idWls ZAotCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxl dH0iCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1k aXNhYmxlLW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZGlz YWJsZS1tdWx0aWxpYiIKLQlfYXJncys9IiAtLWRpc2FibGUtd2Vycm9yIgotCV9hcmdzKz0iIC0t ZGlzYWJsZS1nb2xkIgotCV9hcmdzKz0iIC0td2l0aC1zeXN0ZW0temxpYiIKLQkuLi9iaW51dGls cy0ke19iaW51dGlsc192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgY29uZmln dXJlLWhvc3QgJiYgbWFrZSAke21ha2Vqb2JzfQotCW1ha2UgaW5zdGFsbAotCi0JdG91Y2ggJHt3 cmtzcmN9Ly5iaW51dGlsc19idWlsZF9kb25lCi19Ci0KLV9nY2NfYm9vdHN0cmFwKCkgewotCWxv Y2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJhcF9kb25lIF0gJiYgcmV0 dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9nY2MtJHtfZ2NjX3ZlcnNpb259Ci0JZm9yIGYgaW4gJHtY QlBTX1NSQ1BLR0RJUn0vZ2NjL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1w MCAiJGYiCi0JZG9uZQotCi0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2NjIGJvb3RzdHJh cFxuIgotCi0JWyAhIC1kIC4uL2djYy1ib290c3RyYXAgXSAmJiBta2RpciAuLi9nY2MtYm9vdHN0 cmFwCi0JY2QgLi4vZ2NjLWJvb3RzdHJhcAotCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2Fy Z3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRob3V0LWhlYWRlcnMi Ci0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtc2hhcmVkIgot CV9hcmdzKz0iIC0tZGlzYWJsZS1saWJxdWFkbWF0aCIKLQlfYXJncys9IiAtLWRpc2FibGUtZGVj aW1hbC1mbG9hdCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliZ29tcCIKLQlfYXJncys9IiAtLWRp c2FibGUtbGlibXB4IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtdWRmbGFwIgotCV9hcmdzKz0i IC0tZGlzYWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYml0bSIKLQlfYXJncys9 IiAtLWRpc2FibGUtbGliYXRvbWljIgotCV9hcmdzKz0iIC0tZGlzYWJsZS10aHJlYWRzIgotCV9h cmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zamxqLWV4 Y2VwdGlvbnMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9hcmdzKz0iIC0td2l0 aC1nbnUtbGQiCi0JX2FyZ3MrPSIgLS13aXRoLWdudS1hcyIKLQotCS4uL2djYy0ke19nY2NfdmVy c2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0 YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmdjY19ib290c3RyYXBfZG9uZQotfQotCi1fZ2xpYmNf aGVhZGVycygpIHsKLQlsb2NhbCBfYXJncyBmCi0KLQlbIC1mICR7d3Jrc3JjfS8uZ2xpYmNfaGVh ZGVyc19kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9nbGliYy0ke19nbGliY192 ZXJzaW9ufQotCWlmIFsgLWQgIiR7WEJQU19TUkNQS0dESVJ9L2dsaWJjL3BhdGNoZXMiIF07IHRo ZW4KLQkJZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2xpYmMvcGF0Y2hlcy8qLnBhdGNoOyBk bwotCQkJX2FwcGx5X3BhdGNoIC1wMSAiJGYiCi0JCWRvbmUKLQlmaQotCi0JY2QgJHt3cmtzcmN9 Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2xpYmMgaGVhZGVyc1xuIgotCi0JWyAhIC1k IGdsaWJjLWhlYWRlcnMgXSAmJiBta2RpciBnbGliYy1oZWFkZXJzCi0JY2QgZ2xpYmMtaGVhZGVy cwotCi0JZWNobyAibGliY19jdl9mb3JjZWRfdW53aW5kPXllcyIgPiBjb25maWcuY2FjaGUKLQll Y2hvICJsaWJjX2N2X2NfY2xlYW51cD15ZXMiID4+IGNvbmZpZy5jYWNoZQotCi0JZXhwb3J0IEND PSIke190cmlwbGV0fS1nY2MiIExEPSIke190cmlwbGV0fS1sZCIgXAotCQlBUz0iJHtfdHJpcGxl dH0tYXMiIENQUD0iJHtfdHJpcGxldH0tY3BwIiBcCi0JCU5NPSIke190cmlwbGV0fS1ubSIKLQot CV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0taG9zdD0ke190cmlwbGV0fSIKLQlf YXJncys9IiAtLXdpdGgtaGVhZGVycz0ke19zeXNyb290fS91c3IvaW5jbHVkZSIKLQlfYXJncys9 IiAtLWNvbmZpZy1jYWNoZSIKLQlfYXJncys9IiAtLWVuYWJsZS1vYnNvbGV0ZS1ycGMiCi0JX2Fy Z3MrPSIgLS1lbmFibGUtb2Jzb2xldGUtbnNsIgotCV9hcmdzKz0iIC0tZW5hYmxlLWtlcm5lbD0y LjYuMjciCi0KLQkuLi9nbGliYy0ke19nbGliY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30K LQotCW1ha2UgLWsgaW5zdGFsbC1oZWFkZXJzIGNyb3NzX2NvbXBpbGluZz15ZXMgXAotCQlpbnN0 YWxsX3Jvb3Q9JHtfc3lzcm9vdH0KLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2xpYmNfaGVhZGVyc19k b25lCi19Ci0KLV9nbGliY19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3Ny Y30vLmdsaWJjX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNn X25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2xpYmNcbiIKLQotCVsgISAtZCBnbGliYy1idWlsZCBd ICYmIG1rZGlyIGdsaWJjLWJ1aWxkCi0JY2QgZ2xpYmMtYnVpbGQKLQotCWVjaG8gInNsaWJkaXI9 L3Vzci9saWI2NCIgPiBjb25maWdwYXJtcwotCi0JZWNobyAibGliY19jdl9mb3JjZWRfdW53aW5k PXllcyIgPiBjb25maWcuY2FjaGUKLQllY2hvICJsaWJjX2N2X2NfY2xlYW51cD15ZXMiID4+IGNv bmZpZy5jYWNoZQotCi0JZXhwb3J0IENDPSIke190cmlwbGV0fS1nY2MiIENYWD0iJHtfdHJpcGxl dH0tZysrIiBMRD0iJHtfdHJpcGxldH0tbGQiIFwKLQkJQVM9IiR7X3RyaXBsZXR9LWFzIiBDUFA9 IiR7X3RyaXBsZXR9LWNwcCIgXAotCQlOTT0iJHtfdHJpcGxldH0tbm0iCi0JZXhwb3J0IENGTEFH Uz0iLU8xIC1waXBlICR7X2FyY2hmbGFnc30iCi0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlf YXJncys9IiAtLWxpYmRpcj0vdXNyL2xpYjY0IgotCV9hcmdzKz0iIC0taG9zdD0ke190cmlwbGV0 fSIKLQlfYXJncys9IiAtLXdpdGgtaGVhZGVycz0ke19zeXNyb290fS91c3IvaW5jbHVkZSIKLQlf YXJncys9IiAtLWNvbmZpZy1jYWNoZSIKLQlfYXJncys9IiAtLWVuYWJsZS1vYnNvbGV0ZS1ycGMi Ci0JX2FyZ3MrPSIgLS1lbmFibGUtb2Jzb2xldGUtbnNsIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1w cm9maWxlIgotCV9hcmdzKz0iIC0tZW5hYmxlLWtlcm5lbD0yLjYuMjciCi0JX2FyZ3MrPSIgLS1k aXNhYmxlLXdlcnJvciIKLQotCS4uL2dsaWJjLSR7X2dsaWJjX3ZlcnNpb259L2NvbmZpZ3VyZSAk e19hcmdzfQotCi0JbWFrZSAke21ha2Vqb2JzfQotCW1ha2UgaW5zdGFsbF9yb290PSR7X3N5c3Jv b3R9IGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2xpYmNfYnVpbGRfZG9uZQotfQotCi1f Z2NjX2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uZ2NjX2J1aWxk X2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRp bmcgY3Jvc3MgZ2NjIGZpbmFsXG4iCi0KLQlbICEgLWQgZ2NjLWJ1aWxkIF0gJiYgbWtkaXIgZ2Nj LWJ1aWxkCi0JY2QgZ2NjLWJ1aWxkCi0KLQlleHBvcnQgQ0M9ImdjYyIgQ1hYPSJnKysiIENGTEFH Uz0iLU9zIC1waXBlIgotCXVuc2V0IExEIEFTCi0KLQkjIE1ha2UgdGhpcyBsaW5rIHRvIHRhcmdl dCBsaWJzLgotCWlmIFsgISAtZiAuc2VkX3N1YnN0X2RvbmUgXTsgdGhlbgotCQlzZWQgLWUgInMs IC9saWIvLCAke19zeXNyb290fS9saWIvLGc7cywgL3Vzci9saWIvLCAke19zeXNyb290fS91c3Iv bGliLyxnIiBcCi0JCQktaSAke19zeXNyb290fS9saWIvbGliYy5zbwotCQlzZWQgLWUgInMsIC9s aWI2NC8sICR7X3N5c3Jvb3R9L2xpYjY0LyxnO3MsIC91c3IvbGliNjQvLCAke19zeXNyb290fS91 c3IvbGliNjQvLGciIFwKLQkJCS1pICR7X3N5c3Jvb3R9L2xpYi9saWJjLnNvCi0JCXRvdWNoIC5z ZWRfc3Vic3RfZG9uZQotCWZpCi0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAt LWxpYmV4ZWNkaXI9L3Vzci9saWIiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0J X2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1lbmFibGUt bGFuZ3VhZ2VzPWMsYWRhLGMrKyxvYmpjLG9iai1jKyssZ28sZm9ydHJhbixsdG8iCi0JX2FyZ3Mr PSIgLS13aXRoLWdudS1hcyIKLQlfYXJncys9IiAtLXdpdGgtZ251LWxkIgotCV9hcmdzKz0iIC0t ZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0t ZGlzYWJsZS1zamxqLWV4Y2VwdGlvbnMiCi0JX2FyZ3MrPSIgLS1lbmFibGUtdGhyZWFkcz1wb3Np eCIKLQlfYXJncys9IiAtLWVuYWJsZS1sb25nLWxvbmd4IgotCV9hcmdzKz0iIC0tZW5hYmxlLXNo YXJlZCIKLQlfYXJncys9IiAtLWVuYWJsZS1saW5rZXItYnVpbGQtaWQiCi0JX2FyZ3MrPSIgLS1l bmFibGUtZ251LXVuaXF1ZS1vYmplY3QiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGliYWRhIgotCV9h cmdzKz0iIC0tZW5hYmxlLWx0byIKLQlfYXJncys9IiAtLWVuYWJsZS1kZWZhdWx0LXBpZSIKLQlf YXJncys9IiAtLWVuYWJsZS1kZWZhdWx0LXNzcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlicXVh ZG1hdGgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNzcCIKLQlfYXJncys9IiAtLWRpc2FibGUt bGlibXVkZmxhcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlic2FuaXRpemVyIgotCV9hcmdzKz0i IC0tZGlzYWJsZS1saWJjaWxrcnRzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJpdG0iCi0JX2Fy Z3MrPSIgLS1kaXNhYmxlLWxpYnZ0diIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlic3RkY3h4LXBj aCIKLQlfYXJncys9IiAtLWVuYWJsZS1saWJzdGRjeHgtdGltZSIKLQlfYXJncys9IiAtLXdpdGgt bGlua2VyLWhhc2gtc3R5bGU9Z251IgotCi0JLi4vZ2NjLSR7X2djY192ZXJzaW9ufS9jb25maWd1 cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2Nj X2J1aWxkX2RvbmUKLX0KLQotZG9fYnVpbGQoKSB7Ci0JdW5zZXQgTERGTEFHUwotCWV4cG9ydCBD RkxBR1M9Ii1PcyIgQ1hYRkxBR1M9Ii1PcyIKLQotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4 ZWMgYmluIHNiaW47IGRvCi0JCWlmIFsgISAtZCAke19zeXNyb290fS91c3IvJHtmfSBdOyB0aGVu Ci0JCQlta2RpciAtcCAke19zeXNyb290fS91c3IvJHtmfQotCQlmaQotCQlpZiBbICEgLWggJHtf c3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7X3N5c3Jvb3R9L3Vzci8ke2Z9ICR7 X3N5c3Jvb3R9LyR7Zn0KLQkJZmkKLQlkb25lCi0JbG4gLXNmIGxpYiAke19zeXNyb290fS91c3Iv bGliNjQKLQlsbiAtc2YgdXNyL2xpYiAke19zeXNyb290fS9saWI2NAotCi0JX2JpbnV0aWxzX2J1 aWxkCi0JX2djY19ib290c3RyYXAKLQlfbGludXhfaGVhZGVycwotCV9nbGliY19oZWFkZXJzCi0J X2dsaWJjX2J1aWxkCi0JX2djY19idWlsZAotfQotCi1kb19pbnN0YWxsKCkgewotCWZvciBmIGlu IGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47IGRvCi0JCWlmIFsgISAtZCAke0RFU1RESVJ9 LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4KLQkJCW1rZGlyIC1wICR7REVTVERJUn0vJHtf c3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkKLQkJaWYgWyAhIC1oICR7REVTVERJUn0vJHtfc3lzcm9v dH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7 Zn0gXAotCQkJCSR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtmfQotCQlmaQotCWRvbmUKLQlsbiAt c2YgbGliICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYjY0Ci0JbG4gLXNmIHVzci9saWIg JHtERVNURElSfS8ke19zeXNyb290fS9saWI2NAotCi0JIyBpbnN0YWxsIGNyb3NzIGJpbnV0aWxz Ci0JY2QgJHt3cmtzcmN9L2JpbnV0aWxzLWJ1aWxkCi0JbWFrZSBERVNURElSPSR7REVTVERJUn0g aW5zdGFsbAotCi0JIyBpbnN0YWxsIGNyb3NzIGdjYwotCWNkICR7d3Jrc3JjfS9nY2MtYnVpbGQK LQltYWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0KLQkjIG1vdmUgbGliY2MxLnNvKiB0 byB0aGUgc3lzcm9vdAotCW12ICR7REVTVERJUn0vdXNyL2xpYi9saWJjYzEuc28qICR7REVTVERJ Un0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCi0JIyBpbnN0YWxsIGxpbnV4IEFQSSBoZWFkZXJzIGZv ciBBUk02NAotCWNkICR7d3Jrc3JjfS9saW51eC0ke19saW51eF92ZXJzaW9ufQotCW1ha2UgQVJD SD1hcm02NCBJTlNUQUxMX0hEUl9QQVRIPSR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyIGhlYWRl cnNfaW5zdGFsbAotCXJtIC1mICQoZmluZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9pbmNs dWRlIC1uYW1lIC5pbnN0YWxsIC1vciAtbmFtZSAuLmluc3RhbGwuY21kKQotCXJtIC1yZiAke0RF U1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlL2RybQotCi0JIyBpbnN0YWxsIGdsaWJjIGZv ciB0YXJnZXQKLQljZCAke3dya3NyY30vZ2xpYmMtYnVpbGQKLQltYWtlIGluc3RhbGxfcm9vdD0k e0RFU1RESVJ9LyR7X3N5c3Jvb3R9IGluc3RhbGwgaW5zdGFsbC1oZWFkZXJzCi0KLQkjIHN5bWxp bmtzIGZvciBnbmFybCBhbmQgZ25hdCBzaGFyZWQgbGlicmFyaWVzCi0JX21ham9ydmVyPSR7X2dj Y192ZXJzaW9uJS4qLip9Ci0JX2FkYWxpYj11c3IvbGliL2djYy8ke190cmlwbGV0fS8ke19nY2Nf dmVyc2lvbn0vYWRhbGliCi0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXJsLSR7 X21ham9ydmVyfS5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQltdiAtdiAke0RF U1RESVJ9LyR7X2FkYWxpYn0vbGliZ25hdC0ke19tYWpvcnZlcn0uc28gJHtERVNURElSfS8ke19z eXNyb290fS91c3IvbGliCi0JbG4gLXN2ZiBsaWJnbmFybC0ke19tYWpvcnZlcn0uc28gbGliZ25h cmwuc28KLQlsbiAtc3ZmIGxpYmduYXQtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXQuc28KLQlybSAt dmYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXtybCx0fS5zbwotCi0JIyBXZSBuZWVkIHRv IGJ1aWxkIGxpYmF0b21pYyBpbiB0YXJnZXQgZ2NjIGFzIGdjY2dvIG5lZWRzIGl0IHRvCi0JIyBi dWlsZC4uLiBidXQgaXQncyBub3QgbmVlZGVkIGF0IHJ1bnRpbWUsIHNvIHJlbW92ZSBpdCBmcm9t IHRoZQotCSMgZGVzdGRpciBzbyBpdCBkb2Vzbid0IGNvbmZsaWN0IHdpdGggdGhlIGxpYmF0b21p YyBwYWNrYWdlCi0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliL2xpYmF0b21p Yy4qCi0KLQkjIFJlbW92ZSB1bm5lY2Vzc2FyeSBzdHVmZgotCXJtIC1mICR7REVTVERJUn0vdXNy L2xpYiovbGliaWJlcnR5LmEKLQlybSAtcmYgJHtERVNURElSfS91c3Ivc2hhcmUKLQlybSAtcmYg JHtERVNURElSfS8ke19zeXNyb290fS97c2JpbixldGMsdmFyfQotCXJtIC1yZiAke0RFU1RESVJ9 LyR7X3N5c3Jvb3R9L3Vzci97c2JpbixzaGFyZSxsaWJleGVjfQotCXJtIC1mICR7REVTVERJUn0v JHtfc3lzcm9vdH0vbGliZXhlYwotfQotCi1kb19jbGVhbigpIHsKLQkjIFJlbW92ZSB0ZW1wb3Jh cnkgc3R1ZmYgZnJvbSBtYXN0ZXJkaXIKLQlybSAtcmYgJHtfc3lzcm9vdH0KLQlybSAtZiAvdXNy L2Jpbi8ke190cmlwbGV0fSoKLQlybSAtcmYgL3Vzci9saWIvZ2NjLyR7X3RyaXBsZXR9Ci0Jcm0g LXJmIC91c3IvbGliZXhlYy9nY2MvJHtfdHJpcGxldH0KLX0KLQogY3Jvc3MtYWFyY2g2NC1saW51 eC1nbnUtbGliY19wYWNrYWdlKCkgewogCXNob3J0X2Rlc2MrPSIgLSBnbGliYyBmaWxlcyIKIAlu b3N0cmlwPXllcwpAQCAtMzc2LDYgKzQ3LDYgQEAgY3Jvc3MtYWFyY2g2NC1saW51eC1nbnUtbGli Y19wYWNrYWdlKCkgewogCW5vdmVyaWZ5cmRlcHM9eWVzCiAKIAlwa2dfaW5zdGFsbCgpIHsKLQkJ dm1vdmUgJHtfc3lzcm9vdH0KKwkJdm1vdmUgdXNyLyR7Y3Jvc3NfdHJpcGxldH0KIAl9CiB9CgpG cm9tIGVlMmY5ODExNzZlNjhhYzZlMDE1NGZmMTQzYTA0MGZkYjBmMjVmZTIgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IHE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IEZyaSwg MjUgRGVjIDIwMjAgMTQ6NTI6MzYgKzAxMDAKU3ViamVjdDogW1BBVENIIDA0LzE2XSBjcm9zcy1h YXJjaDY0LWxpbnV4LW11c2w6IHJlZG8gd2l0aCB2b2lkLWNyb3NzCgotLS0KIHNyY3BrZ3MvY3Jv c3MtYWFyY2g2NC1saW51eC1tdXNsL3RlbXBsYXRlIHwgMzA5ICsrLS0tLS0tLS0tLS0tLS0tLS0t LS0KIDEgZmlsZSBjaGFuZ2VkLCAyMSBpbnNlcnRpb25zKCspLCAyODggZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9jcm9zcy1hYXJjaDY0LWxpbnV4LW11c2wvdGVtcGxhdGUgYi9z cmNwa2dzL2Nyb3NzLWFhcmNoNjQtbGludXgtbXVzbC90ZW1wbGF0ZQppbmRleCA4ZDQ1ODdjZmU0 OC4uNzZiMzZiNjYwYjYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY3Jvc3MtYWFyY2g2NC1saW51eC1t dXNsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY3Jvc3MtYWFyY2g2NC1saW51eC1tdXNsL3RlbXBs YXRlCkBAIC0xLDE5ICsxLDE5IEBACi0jIFRlbXBsYXRlIGJ1aWxkIGZpbGUgZm9yICdjcm9zcy1h YXJjaDY0LWxpbnV4LW11c2wnCi0jCisjIFRlbXBsYXRlIGZpbGUgZm9yICdjcm9zcy1hYXJjaDY0 LWxpbnV4LW11c2wnCitfdHJpcGxldD1hYXJjaDY0LWxpbnV4LW11c2wKIF9iaW51dGlsc192ZXJz aW9uPTIuMzIKIF9nY2NfdmVyc2lvbj05LjMuMAogX211c2xfdmVyc2lvbj0xLjEuMjQKIF9saW51 eF92ZXJzaW9uPTQuMTkKIF9saWJ1Y29udGV4dF92ZXJzaW9uPTAuOS4wCi0KLV90cmlwbGV0PWFh cmNoNjQtbGludXgtbXVzbAotX2FyY2hmbGFncz0iLW1hcmNoPWFybXY4LWEiCi1fc3lzcm9vdD0i L3Vzci8ke190cmlwbGV0fSIKLQogcGtnbmFtZT1jcm9zcy0ke190cmlwbGV0fQogdmVyc2lvbj0w LjMzCiByZXZpc2lvbj00Ci1zaG9ydF9kZXNjPSJDcm9zcyB0b29sY2hhaW4gZm9yIEFSTTY0IExF IHRhcmdldCAobXVzbCkiCitidWlsZF9zdHlsZT12b2lkLWNyb3NzCitjb25maWd1cmVfYXJncz0i LS13aXRoLWFyY2g9YXJtdjgtYSIKK2hvc3RtYWtlZGVwZW5kcz0idGFyIGdjYy1vYmpjIGdjYy1n byBmbGV4IHBlcmwgcHl0aG9uMyIKK21ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2 ZWwgemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbCIKK2RlcGVuZHM9IiR7cGtnbmFtZX0t bGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259Igorc2hvcnRfZGVzYz0iVm9pZCBjcm9zcyB0b29s Y2hhaW4gZm9yICR7X3RyaXBsZXR9IgogbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lk bGludXgub3JnPiIKIGhvbWVwYWdlPSJodHRwczovL3d3dy52b2lkbGludXgub3JnLyIKIGxpY2Vu c2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdQTC0zLjAtb3ItbGF0ZXIsIE1JVCIKQEAgLTI5LDI5NiAr MjksMjkgQEAgY2hlY2tzdW09IjBhYjZjNTVkZDg2YTkyZWQ1NjE5NzJiYTE1YjliNzBhOGI5Zjc1 NTU3Zjg5NjQ0NmM4MmU4YjM2ZTQ3M2VlMDQKICAwYzY4ZjU2NTU1MjhhZWQ0Zjk5ZGFlNzFhNWIy NTllZGM5MzIzOWZhODk5ZTJkZjc5YzA1NTI3NWMyMTc0OWExCiAgMGQ1M2E0MTVhMzA3ZWYxNzUx NTNiYmU2MGE1NzJjOTQwYTkyMmNiNzM2Y2UxMzUzMGI2NjZlN2VjMjc5NWQ2OCIKIAotbGliMzJk aXNhYmxlZD15ZXMKLW5vY3Jvc3M9eWVzCi1ub3BpZT15ZXMKLW5vZGVidWc9eWVzCi1jcmVhdGVf d3Jrc3JjPXllcwotCi1ob3N0bWFrZWRlcGVuZHM9InRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBw ZXJsIHB5dGhvbjMiCi1tYWtlZGVwZW5kcz0iemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZl bCBsaWJtcGMtZGV2ZWwgaXNsMTUtZGV2ZWwiCi1ub3N0cmlwX2ZpbGVzPSJsaWJjYWZfc2luZ2xl LmEgbGliZ2NjLmEgbGliZ2Nvdi5hIGxpYmdjY19laC5hCi0gbGliZ25hcmxfcGljLmEgbGliZ25h cmwuYSBsaWJnbmF0X3BpYy5hIGxpYmduYXQuYSBsaWJnbWVtLmEiCi1kZXBlbmRzPSIke3BrZ25h bWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKLQotaWYgWyAiJFhCUFNfVEFSR0VUX1dP UkRTSVpFIiAhPSAiNjQiIF07IHRoZW4KLQlicm9rZW49IjY0LWJpdCBjcm9zc3Rvb2xjaGFpbiBv bmx5IGF2YWlsYWJsZSBvbiA2NC1iaXQgaG9zdCIKLWZpCitjcm9zc190cmlwbGV0PSR7X3RyaXBs ZXR9Citjcm9zc193b3Jkc2l6ZT02NAorY3Jvc3NfbGliYz1tdXNsCitjcm9zc19iaW51dGlsc192 ZXJzaW9uPSR7X2JpbnV0aWxzX3ZlcnNpb259Citjcm9zc19nY2NfdmVyc2lvbj0ke19nY2NfdmVy c2lvbn0KK2Nyb3NzX211c2xfdmVyc2lvbj0ke19tdXNsX3ZlcnNpb259Citjcm9zc19saW51eF92 ZXJzaW9uPSR7X2xpbnV4X3ZlcnNpb259Citjcm9zc19saWJ1Y29udGV4dF92ZXJzaW9uPSR7X2xp YnVjb250ZXh0X3ZlcnNpb259Citjcm9zc19saWJ1Y29udGV4dF9hcmNoPWFhcmNoNjQKK2Nyb3Nz X2xpbnV4X2FyY2g9YXJtNjQKK2Nyb3NzX211c2xfY2ZsYWdzPSItTzIgLW1hcmNoPWFybXY4LWEi CiAKIGlmIFsgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiA9ICJhYXJjaDY0LW11c2wiIF07IHRoZW4K IAlicm9rZW49IkNhbid0IGJ1aWxkIGNyb3NzdG9vbGNoYWluIHRvIGl0c2VsZiIKIGZpCiAKLV9h cHBseV9wYXRjaCgpIHsKLQlsb2NhbCBhcmdzPSIkMSIgcG5hbWU9IiQoYmFzZW5hbWUgJDIpIgot Ci0JaWYgWyAhIC1mICIuJHtwbmFtZX1fZG9uZSIgXTsgdGhlbgotCQlwYXRjaCAtTiAkYXJncyAt aSAkMgotCQl0b3VjaCAuJHtwbmFtZX1fZG9uZQotCWZpCi19Ci0KLV9iaW51dGlsc19idWlsZCgp IHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmJpbnV0aWxzX2J1aWxkX2RvbmUg XSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jv c3MgYmludXRpbHMgYm9vdHN0cmFwXG4iCi0KLQlbICEgLWQgYmludXRpbHMtYnVpbGQgXSAmJiBt a2RpciBiaW51dGlscy1idWlsZAotCWNkIGJpbnV0aWxzLWJ1aWxkCi0JX2FyZ3M9Ii0tcHJlZml4 PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRo LXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlfYXJncys9 IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXdlcnJvciIKLQlfYXJn cys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0td2l0aC1zeXN0ZW0temxpYiIKLQot CS4uL2JpbnV0aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0J bWFrZSBjb25maWd1cmUtaG9zdCAmJiBtYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsCi0K LQl0b3VjaCAke3dya3NyY30vLmJpbnV0aWxzX2J1aWxkX2RvbmUKLX0KLQotX2djY19ib290c3Ry YXAoKSB7Ci0JbG9jYWwgX2FyZ3MKLQlbIC1mICR7d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJhcF9kb25l IF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9nY2MtJHtfZ2NjX3ZlcnNpb259Ci0JZm9y IGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2NjL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJX2FwcGx5 X3BhdGNoIC1wMCAiJGYiCi0JZG9uZQotCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L2djYy9m aWxlcy8qLW11c2wucGF0Y2g7IGRvCi0JCV9hcHBseV9wYXRjaCAtcDEgIiRmIgotCWRvbmUKLQot CW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdjYyBib290c3RyYXBcbiIKLQotCVsgISAtZCAu Li9nY2MtYm9vdHN0cmFwIF0gJiYgbWtkaXIgLi4vZ2NjLWJvb3RzdHJhcAotCWNkIC4uL2djYy1i b290c3RyYXAKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7 X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdz Kz0iIC0td2l0aC1uZXdsaWIiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGFuZ3VhZ2VzPWMiCi0JX2Fy Z3MrPSIgLS13aXRoLW5ld2xpYiIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlic3NwIgotCV9hcmdz Kz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnF1YWRtYXRoIgotCV9h cmdzKz0iIC0tZGlzYWJsZS10aHJlYWRzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1kZWNpbWFsLWZs b2F0IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxp Ym11ZGZsYXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmdvbXAiCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLWxpYmF0b21pYyIKLQlfYXJncys9IiAtLWRpc2FibGUtc3ltdmVycyIKLQlfYXJncys9IiBs aWJhdF9jdl9oYXZlX2lmdW5jPW5vIgotCi0JQ0ZMQUdTPSItTzAgLWcwIiBDWFhGTEFHUz0iLU8w IC1nMCIgXAotCQkuLi9nY2MtJHtfZ2NjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0J bWFrZSAke21ha2Vqb2JzfQotCW1ha2UgaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nY2Nf Ym9vdHN0cmFwX2RvbmUKLX0KLQotX2xpbnV4X2hlYWRlcnMoKSB7Ci0JWyAtZiAke3dya3NyY30v LmxpbnV4X2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25v cm1hbCAiQnVpbGRpbmcgTGludXggQVBJIGhlYWRlcnNcbiIKLQotCWNkIGxpbnV4LSR7X2xpbnV4 X3ZlcnNpb259Ci0KLQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9rZXJuZWwtbGliYy1oZWFk ZXJzL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMCAkZgotCWRvbmUKLQot CW1ha2UgQVJDSD1hcm02NCBoZWFkZXJzX2NoZWNrCi0JbWFrZSBBUkNIPWFybTY0IElOU1RBTExf SERSX1BBVEg9JHtfc3lzcm9vdH0vdXNyIGhlYWRlcnNfaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtz cmN9Ly5saW51eF9idWlsZF9kb25lCi19Ci0KLV9tdXNsX2J1aWxkKCkgewotCVsgLWYgJHt3cmtz cmN9Ly5tdXNsX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L211c2wt JHtfbXVzbF92ZXJzaW9ufQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIG11c2wgbGliY1xu IgotCi0JIyBBcHBseSBtdXNsIHBhdGNoZXMgaWYgdGhlcmUgYXJlIGFueQotCWlmIFsgLWQgIiR7 WEJQU19TUkNQS0dESVJ9L211c2wvcGF0Y2hlcyIgXTsgdGhlbgotCQlmb3IgZiBpbiAke1hCUFNf U1JDUEtHRElSfS9tdXNsL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJCV9hcHBseV9wYXRjaCAtcDAg IiRmIgotCQlkb25lCi0JZmkKLQotCUNDPSIke190cmlwbGV0fS1nY2MiIExEPSIke190cmlwbGV0 fS1sZCIgQVI9IiR7X3RyaXBsZXR9LWFyIiBcCi0JCUFTPSIke190cmlwbGV0fS1hcyIgUkFOTElC PSIke190cmlwbGV0fS1yYW5saWIiIFwKLQkJQ0ZMQUdTPSItT3MgLXBpcGUgLWZQSUMgJHtfYXJj aGZsYWdzfSIgXAotCQkuL2NvbmZpZ3VyZSAtLXByZWZpeD0vdXNyCi0KLQltYWtlICR7bWFrZWpv YnN9Ci0JbWFrZSBERVNURElSPSR7X3N5c3Jvb3R9IGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3Jj fS8ubXVzbF9idWlsZF9kb25lCi19Ci0KLV9saWJ1Y29udGV4dF9idWlsZCgpIHsKLQlbIC1mICR7 d3Jrc3JjfS8ubGlidWNvbnRleHRfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dy a3NyY30vbGlidWNvbnRleHQtJHtfbGlidWNvbnRleHRfdmVyc2lvbn0KLQltc2dfbm9ybWFsICJC dWlsZGluZyBjcm9zcyBsaWJ1Y29udGV4dFxuIgotCi0JIyBpdCdzIG9rIGlmIHdlJ3JlIHN0YXRp YyBvbmx5IGhlcmUKLQlDQz0iJHtfdHJpcGxldH0tZ2NjIiBBUj0iJHtfdHJpcGxldH0tYXIiIEFT PSIke190cmlwbGV0fS1hcyIgXAotCQlDRkxBR1M9Ii1PcyAtcGlwZSAke19hcmNoZmxhZ3N9IiBc Ci0JCW1ha2UgQVJDSD1hYXJjaDY0IGxpYnVjb250ZXh0LmEKLQotCWNwIGxpYnVjb250ZXh0LmEg JHtfc3lzcm9vdH0vdXNyL2xpYgotCi0JdG91Y2ggJHt3cmtzcmN9Ly5saWJ1Y29udGV4dF9idWls ZF9kb25lCi19Ci0KLV9nY2NfYnVpbGQoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtz cmN9Ly5nY2NfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2df bm9ybWFsICJCdWlsZGluZyBjcm9zcyBnY2MgZmluYWxcbiIKLQotCVsgISAtZCBnY2MtYnVpbGQg XSAmJiBta2RpciBnY2MtYnVpbGQKLQljZCBnY2MtYnVpbGQKLQotCV9hcmdzPSItLXByZWZpeD0v dXNyIgotCV9hcmdzKz0iIC0tbGliZXhlY2Rpcj0vdXNyL2xpYiIKLQlfYXJncys9IiAtLXRhcmdl dD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlf YXJncys9IiAtLWVuYWJsZS1sYW5ndWFnZXM9YyxhZGEsYysrLG9iamMsb2JqLWMrKyxnbyxmb3J0 cmFuLGx0byIKLQlfYXJncys9IiAtLWVuYWJsZS1saWJhZGEiCi0JX2FyZ3MrPSIgLS1lbmFibGUt bHRvIgotCV9hcmdzKz0iIC0tZW5hYmxlLWRlZmF1bHQtcGllIgotCV9hcmdzKz0iIC0tZW5hYmxl LWRlZmF1bHQtc3NwIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpYnNzcCIKLQlfYXJncys9IiAtLWRp c2FibGUtbGlic2FuaXRpemVyIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJn cys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJxdWFkbWF0aCIKLQlf YXJncys9IiAtLWRpc2FibGUtbGlibXVkZmxhcCIKLQlfYXJncys9IiAtLWVuYWJsZS1zaGFyZWQi Ci0JX2FyZ3MrPSIgLS1kaXNhYmxlLXN5bXZlcnMiCi0JX2FyZ3MrPSIgbGliYXRfY3ZfaGF2ZV9p ZnVuYz1ubyIKLQotCS4uL2djYy0ke19nY2NfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0K LQltYWtlICR7bWFrZWpvYnN9Ci0KLQl0b3VjaCAke3dya3NyY30vLmdjY19idWlsZF9kb25lCi19 Ci0KLWRvX2J1aWxkKCkgewotCSMgRW5zdXJlIHdlIHVzZSBzYW5lIGVudmlyb25tZW50Ci0JdW5z ZXQgQ0MgQ1hYIENQUCBMRCBBUyBBUiBSQU5MSUIgT0JKRFVNUCBSRUFERUxGIE5NCi0JdW5zZXQg Q0ZMQUdTIENYWEZMQUdTIENQUEZMQUdTIExERkxBR1MKLQlleHBvcnQgQ0ZMQUdTPSItT3MgLXBp cGUiIENYWEZMQUdTPSItT3MgLXBpcGUiCi0KLQlmb3IgZiBpbiBpbmNsdWRlIGxpYiBsaWJleGVj IGJpbiBzYmluOyBkbwotCQlpZiBbICEgLWQgJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXTsgdGhlbgot CQkJbWtkaXIgLXAgJHtfc3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkKLQkJaWYgWyAhIC1oICR7X3N5 c3Jvb3R9LyR7Zn0gXTsgdGhlbgotCQkJbG4gLXNmciAke19zeXNyb290fS91c3IvJHtmfSAke19z eXNyb290fS8ke2Z9Ci0JCWZpCi0JZG9uZQotCWxuIC1zZiBsaWIgJHtfc3lzcm9vdH0vdXNyL2xp YjY0Ci0JbG4gLXNmIHVzci9saWIgJHtfc3lzcm9vdH0vbGliNjQKLQotCV9iaW51dGlsc19idWls ZAotCV9nY2NfYm9vdHN0cmFwCi0JX2xpbnV4X2hlYWRlcnMKLQlfbXVzbF9idWlsZAotCV9saWJ1 Y29udGV4dF9idWlsZAotCV9nY2NfYnVpbGQKLX0KLQotZG9faW5zdGFsbCgpIHsKLQlmb3IgZiBp biBpbmNsdWRlIGxpYiBsaWJleGVjIGJpbiBzYmluOyBkbwotCQlpZiBbICEgLWQgJHtERVNURElS fS8ke19zeXNyb290fS91c3IvJHtmfSBdOyB0aGVuCi0JCQlta2RpciAtcCAke0RFU1RESVJ9LyR7 X3N5c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZpCi0JCWlmIFsgISAtaCAke0RFU1RESVJ9LyR7X3N5c3Jv b3R9LyR7Zn0gXTsgdGhlbgotCQkJbG4gLXNmciAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8k e2Z9IFwKLQkJCQkke0RFU1RESVJ9LyR7X3N5c3Jvb3R9LyR7Zn0KLQkJZmkKLQlkb25lCi0JbG4g LXNmIGxpYiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWI2NAotCWxuIC1zZiB1c3IvbGli ICR7REVTVERJUn0vJHtfc3lzcm9vdH0vbGliNjQKLQotCSMgaW5zdGFsbCBsaW51eCBBUEkgaGVh ZGVycwotCWNkICR7d3Jrc3JjfS9saW51eC0ke19saW51eF92ZXJzaW9ufQotCW1ha2UgQVJDSD1h cm02NCBJTlNUQUxMX0hEUl9QQVRIPSR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyIGhlYWRlcnNf aW5zdGFsbAotCXJtIC1mICQoZmluZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRl IC1uYW1lIC5pbnN0YWxsIC1vciAtbmFtZSAuLmluc3RhbGwuY21kKQotCXJtIC1yZiAke0RFU1RE SVJ9LyR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlL2RybQotCi0JIyBpbnN0YWxsIGNyb3NzIGJpbnV0 aWxzCi0JY2QgJHt3cmtzcmN9L2JpbnV0aWxzLWJ1aWxkCi0JbWFrZSBERVNURElSPSR7REVTVERJ Un0gaW5zdGFsbAotCi0JIyBpbnN0YWxsIGNyb3NzIGdjYwotCWNkICR7d3Jrc3JjfS9nY2MtYnVp bGQKLQltYWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0KLQkjIG1vdmUgbGliY2MxLnNv KiB0byB0aGUgc3lzcm9vdAotCW12ICR7REVTVERJUn0vdXNyL2xpYi9saWJjYzEuc28qICR7REVT VERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCi0JIyBpbnN0YWxsIG11c2wgbGliYyBmb3IgdGFy Z2V0Ci0JY2QgJHt3cmtzcmN9L211c2wtJHtfbXVzbF92ZXJzaW9ufQotCW1ha2UgREVTVERJUj0k e0RFU1RESVJ9LyR7X3N5c3Jvb3R9IGluc3RhbGwKLQotCSMgUmVtb3ZlIHVzZWxlc3MgaGVhZGVy cy4KLQlybSAtcmYgJHtERVNURElSfS91c3IvbGliL2djYy8ke190cmlwbGV0fS8qL2luY2x1ZGUt Zml4ZWQKLQotCSMgTWFrZSBsZC1tdXNsLnNvIHN5bWxpbmtzIHJlbGF0aXZlLgotCWxuIC1zZiBs aWJjLnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYi9sZC1tdXNsLWFhcmNoNjQuc28u MQotCi0JIyBzeW1saW5rcyBmb3IgZ25hcmwgYW5kIGduYXQgc2hhcmVkIGxpYnJhcmllcwotCV9t YWpvcnZlcj0ke19nY2NfdmVyc2lvbiUuKi4qfQotCV9hZGFsaWI9dXNyL2xpYi9nY2MvJHtfdHJp cGxldH0vJHtfZ2NjX3ZlcnNpb259L2FkYWxpYgotCW12IC12ICR7REVTVERJUn0vJHtfYWRhbGli fS9saWJnbmFybC0ke19tYWpvcnZlcn0uc28gJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGli Ci0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXQtJHtfbWFqb3J2ZXJ9LnNvICR7 REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCWxuIC1zdmYgbGliZ25hcmwtJHtfbWFqb3J2 ZXJ9LnNvIGxpYmduYXJsLnNvCi0JbG4gLXN2ZiBsaWJnbmF0LSR7X21ham9ydmVyfS5zbyBsaWJn bmF0LnNvCi0Jcm0gLXZmICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmF7cmwsdH0uc28KLQot CSMgV2UgbmVlZCB0byBidWlsZCBsaWJhdG9taWMgaW4gdGFyZ2V0IGdjYyBhcyBnY2NnbyBuZWVk cyBpdCB0bwotCSMgYnVpbGQuLi4gYnV0IGl0J3Mgbm90IG5lZWRlZCBhdCBydW50aW1lLCBzbyBy ZW1vdmUgaXQgZnJvbSB0aGUKLQkjIGRlc3RkaXIgc28gaXQgZG9lc24ndCBjb25mbGljdCB3aXRo IHRoZSBsaWJhdG9taWMgcGFja2FnZQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNy L2xpYi9saWJhdG9taWMuKgotCi0JIyBSZW1vdmUgdW5uZWNlc3Nhcnkgc3R1ZmYKLQlybSAtZiAk e0RFU1RESVJ9L3Vzci9saWIqL2xpYmliZXJ0eS5hCi0Jcm0gLXJmICR7REVTVERJUn0vdXNyL3No YXJlCi0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0ve2V0Yyx2YXJ9Ci0Jcm0gLXJmICR7 REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL3tzYmluLHNoYXJlLGxpYmV4ZWN9Ci0Jcm0gLWYgJHtE RVNURElSfS8ke19zeXNyb290fS9saWJleGVjCi0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290 fS9saWIvKi5weQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0vc2JpbgotfQotCiBjcm9z cy1hYXJjaDY0LWxpbnV4LW11c2wtbGliY19wYWNrYWdlKCkgewogCXNob3J0X2Rlc2MrPSIgLSBs aWJjIGZpbGVzIgogCW5vc3RyaXA9eWVzCiAJbm9zaGxpYnByb3ZpZGVzPXllcwogCW5vdmVyaWZ5 cmRlcHM9eWVzCisKIAlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgJHtfc3lzcm9vdH0KKwkJdm1v dmUgdXNyLyR7Y3Jvc3NfdHJpcGxldH0KIAl9CiB9CgpGcm9tIDI0MTFiYjQxNjJlYzk4MzA3NjIy MzM4ZTVkNjhjNmY5YTA3MjNlMDQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IHE2NiA8 ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IEZyaSwgMjUgRGVjIDIwMjAgMjA6MTA6MzUgKzAx MDAKU3ViamVjdDogW1BBVENIIDA1LzE2XSBjcm9zcy1hcm0tbGludXgtZ251ZWFiaTogcmVkbyB3 aXRoIHZvaWQtY3Jvc3MKCi0tLQogc3JjcGtncy9jcm9zcy1hcm0tbGludXgtZ251ZWFiaS90ZW1w bGF0ZSB8IDM2NiArKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDIwIGlu c2VydGlvbnMoKyksIDM0NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nyb3Nz LWFybS1saW51eC1nbnVlYWJpL3RlbXBsYXRlIGIvc3JjcGtncy9jcm9zcy1hcm0tbGludXgtZ251 ZWFiaS90ZW1wbGF0ZQppbmRleCBlNTgxMDBlNjhkZi4uYjFlNTkwNDRmYmYgMTAwNjQ0Ci0tLSBh L3NyY3BrZ3MvY3Jvc3MtYXJtLWxpbnV4LWdudWVhYmkvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9j cm9zcy1hcm0tbGludXgtZ251ZWFiaS90ZW1wbGF0ZQpAQCAtMSwyMiArMSwyMSBAQAotIyBUZW1w bGF0ZSBidWlsZCBmaWxlIGZvciAnY3Jvc3MtYXJtLWxpbnV4LWdudWVhYmknCi0jCisjIFRlbXBs YXRlIGZpbGUgZm9yICdjcm9zcy1hcm0tbGludXgtZ251ZWFiaScKK190cmlwbGV0PWFybS1saW51 eC1nbnVlYWJpCiBfYmludXRpbHNfdmVyc2lvbj0yLjMyCiBfZ2NjX3ZlcnNpb249OS4zLjAKIF9n bGliY192ZXJzaW9uPTIuMzAKIF9saW51eF92ZXJzaW9uPTQuMTkKLQotX3RyaXBsZXQ9YXJtLWxp bnV4LWdudWVhYmkKLV9mcHVmbGFncz0iLS13aXRoLWFyY2g9YXJtdjV0ZSAtLXdpdGhvdXQtZnAg LS13aXRoLWZsb2F0PXNvZnQiCi1fYXJjaGZsYWdzPSItbWFyY2g9YXJtdjV0ZSAtbXNvZnQtZmxv YXQgLW1mbG9hdC1hYmk9c29mdCIKLV9zeXNyb290PSIvdXNyLyR7X3RyaXBsZXR9IgotCiBwa2du YW1lPWNyb3NzLSR7X3RyaXBsZXR9CiB2ZXJzaW9uPTAuMzMKIHJldmlzaW9uPTIKLXNob3J0X2Rl c2M9IkdOVSBDcm9zcyB0b29sY2hhaW4gZm9yIHRoZSAke190cmlwbGV0fSBMRSB0YXJnZXQgKGJp bnV0aWxzL2djYy9nbGliYykiCitidWlsZF9zdHlsZT12b2lkLWNyb3NzCitjb25maWd1cmVfYXJn cz0iLS13aXRoLWFyY2g9YXJtdjV0ZSAtLXdpdGgtZmxvYXQ9c29mdCIKK2hvc3RtYWtlZGVwZW5k cz0idGFyIGdjYy1vYmpjIGdjYy1nbyBmbGV4IHBlcmwgcHl0aG9uMyIKK21ha2VkZXBlbmRzPSJp c2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbCIK K2RlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259Igorc2hvcnRf ZGVzYz0iVm9pZCBjcm9zcyB0b29sY2hhaW4gZm9yICR7X3RyaXBsZXR9IgogbWFpbnRhaW5lcj0i T3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKK2xpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0 ZXIsIEdQTC0zLjAtb3ItbGF0ZXIsIExHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBz Oi8vd3d3LnZvaWRsaW51eC5vcmcvIgotbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR1BMLTMu MC1vci1sYXRlciwgTEdQTC0yLjEuMC1vci1sYXRlciIKIGRpc3RmaWxlcz0iCiAgJHtHTlVfU0lU RX0vYmludXRpbHMvYmludXRpbHMtJHtfYmludXRpbHNfdmVyc2lvbn0udGFyLnh6CiAgJHtHTlVf U0lURX0vZ2NjL2djYy0ke19nY2NfdmVyc2lvbn0vZ2NjLSR7X2djY192ZXJzaW9ufS50YXIueHoK QEAgLTI3LDM0NiArMjYsMjEgQEAgY2hlY2tzdW09IjBhYjZjNTVkZDg2YTkyZWQ1NjE5NzJiYTE1 YjliNzBhOGI5Zjc1NTU3Zjg5NjQ0NmM4MmU4YjM2ZTQ3M2VlMDQKICBlMmM0MTE0ZTU2OWFmYmU3 ZWRiYzI5MTMxYTQzYmU4MzM4NTBhYjlhNDU5ZDgxYmViMjU4ODAxNmQyYmJiOGFmCiAgMGM2OGY1 NjU1NTI4YWVkNGY5OWRhZTcxYTViMjU5ZWRjOTMyMzlmYTg5OWUyZGY3OWMwNTUyNzVjMjE3NDlh MSIKIAotbGliMzJkaXNhYmxlZD15ZXMKLW5vY3Jvc3M9eWVzCi1ub3BpZT15ZXMKLW5vZGVidWc9 eWVzCi1jcmVhdGVfd3Jrc3JjPXllcwotCi1ob3N0bWFrZWRlcGVuZHM9InRhciBnY2Mtb2JqYyBn Y2MtZ28gZmxleCBwZXJsIHB5dGhvbjMiCi1tYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBj LWRldmVsIHpsaWItZGV2ZWwiCi1kZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8k e3JldmlzaW9ufSIKLW5vc3RyaXBfZmlsZXM9ImxpYmNhZl9zaW5nbGUuYSBsaWJnY2MuYSBsaWJn Y292LmEgbGliZ2NjX2VoLmEKLSBsaWJnbmFybF9waWMuYSBsaWJnbmFybC5hIGxpYmduYXRfcGlj LmEgbGliZ25hdC5hIGxpYmdtZW0uYSIKLQotaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMiICE9ICJn bGliYyIgXTsgdGhlbgotCWJyb2tlbj0iZ2xpYmMgY3Jvc3N0b29sY2hhaW4gb25seSBhdmFpbGFi bGUgb24gZ2xpYmMiCi1maQorY3Jvc3NfdHJpcGxldD0ke190cmlwbGV0fQorY3Jvc3Nfd29yZHNp emU9MzIKK2Nyb3NzX2xpYmM9Z2xpYmMKK2Nyb3NzX2JpbnV0aWxzX3ZlcnNpb249JHtfYmludXRp bHNfdmVyc2lvbn0KK2Nyb3NzX2djY192ZXJzaW9uPSR7X2djY192ZXJzaW9ufQorY3Jvc3NfZ2xp YmNfdmVyc2lvbj0ke19nbGliY192ZXJzaW9ufQorY3Jvc3NfbGludXhfdmVyc2lvbj0ke19saW51 eF92ZXJzaW9ufQorY3Jvc3NfbGludXhfYXJjaD1hcm0KK2Nyb3NzX2dsaWJjX2NvbmZpZ3VyZV9h cmdzPSItLXdpdGhvdXQtZnAiCitjcm9zc19nbGliY19jZmxhZ3M9Ii1PcyAtbWFyY2g9YXJtdjV0 ZSAtbXNvZnQtZmxvYXQgLW1mbG9hdC1hYmk9c29mdCIKIAogaWYgWyAiJFhCUFNfVEFSR0VUX01B Q0hJTkUiID0gImFybXY1dGVsIiBdOyB0aGVuCiAJYnJva2VuPSJDYW4ndCBidWlsZCBjcm9zc3Rv b2xjaGFpbiB0byBpdHNlbGYiCiBmaQogCi1fYXBwbHlfcGF0Y2goKSB7Ci0JbG9jYWwgYXJncz0i JDEiIHBuYW1lPSIkKGJhc2VuYW1lICQyKSIKLQotCWlmIFsgISAtZiAiLiR7cG5hbWV9X2RvbmUi IF07IHRoZW4KLQkJcGF0Y2ggLU4gJGFyZ3MgLWkgJDIKLQkJdG91Y2ggLiR7cG5hbWV9X2RvbmUK LQlmaQotfQotCi1fbGludXhfaGVhZGVycygpIHsKLQlbIC1mICR7d3Jrc3JjfS8ubGludXhfYnVp bGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWls ZGluZyBMaW51eCBBUEkgaGVhZGVycyBmb3IgQVJNXG4iCi0KLQljZCBsaW51eC0ke19saW51eF92 ZXJzaW9ufQotCi0JbWFrZSBBUkNIPWFybSBoZWFkZXJzX2NoZWNrCi0JbWFrZSBBUkNIPWFybSBJ TlNUQUxMX0hEUl9QQVRIPSR7X3N5c3Jvb3R9L3VzciBoZWFkZXJzX2luc3RhbGwKLQotCXRvdWNo ICR7d3Jrc3JjfS8ubGludXhfYnVpbGRfZG9uZQotfQotCi1fYmludXRpbHNfYnVpbGQoKSB7Ci0J bG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5iaW51dGlsc19idWlsZF9kb25lIF0gJiYg cmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGJp bnV0aWxzXG4iCi0JWyAhIC1kIGJpbnV0aWxzLWJ1aWxkIF0gJiYgbWtkaXIgYmludXRpbHMtYnVp bGQKLQljZCBiaW51dGlscy1idWlsZAotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0i IC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1zeXNyb290PSR7X3N5c3Jv b3R9IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNoYXJl ZCIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXdl cnJvciIKLQlfYXJncys9IiAtLXdpdGgtc3lzdGVtLXpsaWIiCi0KLQkuLi9iaW51dGlscy0ke19i aW51dGlsc192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgY29uZmlndXJlLWhv c3QKLQltYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30v LmJpbnV0aWxzX2J1aWxkX2RvbmUKLX0KLQotX2djY19ib290c3RyYXAoKSB7Ci0JbG9jYWwgX2Fy Z3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUgXSAmJiByZXR1cm4gMAot Ci0JY2QgJHt3cmtzcmN9L2djYy0ke19nY2NfdmVyc2lvbn0KLQlmb3IgZiBpbiAke1hCUFNfU1JD UEtHRElSfS9nY2MvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAwICIkZiIK LQlkb25lCi0KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBnY2MgYm9vdHN0cmFwXG4iCi0K LQlbICEgLWQgLi4vZ2NjLWJvb3RzdHJhcCBdICYmIG1rZGlyIC4uL2djYy1ib290c3RyYXAKLQlj ZCAuLi9nY2MtYm9vdHN0cmFwCi0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAt LXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGhvdXQtaGVhZGVycyIKLQlfYXJn cys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zaGFyZWQiCi0JX2FyZ3Mr PSIgLS1kaXNhYmxlLWxpYnF1YWRtYXRoIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1kZWNpbWFsLWZs b2F0IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJnb21wIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1s aWJtcHgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm11ZGZsYXAiCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLWxpYnNzcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliaXRtIgotCV9hcmdzKz0iIC0tZGlz YWJsZS1saWJhdG9taWMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXRocmVhZHMiCi0JX2FyZ3MrPSIg LS1lbmFibGUtbGFuZ3VhZ2VzPWMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNqbGotZXhjZXB0aW9u cyIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS13aXRoLWdudS1s ZCIKLQlfYXJncys9IiAtLXdpdGgtZ251LWFzIgotCV9hcmdzKz0iICR7X2ZwdWZsYWdzfSIKLQot CUNGTEFHUz0iLU8wIC1nMCIgQ1hYRkxBR1M9Ii1PMCAtZzAiIFwKLQkJLi4vZ2NjLSR7X2djY192 ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQltYWtlIGlu c3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJhcF9kb25lCi19Ci0KLV9nbGli Y19oZWFkZXJzKCkgewotCWxvY2FsIF9hcmdzIGYKLQotCVsgLWYgJHt3cmtzcmN9Ly5nbGliY19o ZWFkZXJzX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L2dsaWJjLSR7X2dsaWJj X3ZlcnNpb259Ci0JaWYgWyAtZCAiJHtYQlBTX1NSQ1BLR0RJUn0vZ2xpYmMvcGF0Y2hlcyIgXTsg dGhlbgotCQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9nbGliYy9wYXRjaGVzLyoucGF0Y2g7 IGRvCi0JCQlfYXBwbHlfcGF0Y2ggLXAxICIkZiIKLQkJZG9uZQotCWZpCi0KLQljZCAke3dya3Ny Y30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBnbGliYyBoZWFkZXJzXG4iCi0KLQlbICEg LWQgZ2xpYmMtaGVhZGVycyBdICYmIG1rZGlyIGdsaWJjLWhlYWRlcnMKLQljZCBnbGliYy1oZWFk ZXJzCi0KLQllY2hvICJsaWJjX2N2X2ZvcmNlZF91bndpbmQ9eWVzIiA+IGNvbmZpZy5jYWNoZQot CWVjaG8gImxpYmNfY3ZfY19jbGVhbnVwPXllcyIgPj4gY29uZmlnLmNhY2hlCi0KLQlleHBvcnQg Q0M9IiR7X3RyaXBsZXR9LWdjYyIgTEQ9IiR7X3RyaXBsZXR9LWxkIiBcCi0JCUFTPSIke190cmlw bGV0fS1hcyIgQ1BQPSIke190cmlwbGV0fS1jcHAiCi0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIK LQlfYXJncys9IiAtLWhvc3Q9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLWhlYWRlcnM9 JHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUiCi0JX2FyZ3MrPSIgLS1jb25maWctY2FjaGUiCi0JX2Fy Z3MrPSIgLS1lbmFibGUtb2Jzb2xldGUtcnBjIgotCV9hcmdzKz0iIC0tZW5hYmxlLW9ic29sZXRl LW5zbCIKLQlfYXJncys9IiAtLWVuYWJsZS1rZXJuZWw9Mi42LjI3IgotCV9hcmdzKz0iICR7X2Zw dWZsYWdzfSIKLQotCS4uL2dsaWJjLSR7X2dsaWJjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdz fQotCi0JbWFrZSAtayBpbnN0YWxsLWhlYWRlcnMgY3Jvc3NfY29tcGlsaW5nPXllcyBcCi0JCWlu c3RhbGxfcm9vdD0ke19zeXNyb290fQotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nbGliY19oZWFkZXJz X2RvbmUKLX0KLQotX2dsaWJjX2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jr c3JjfS8uZ2xpYmNfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQlt c2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBnbGliY1xuIgotCi0JWyAhIC1kIGdsaWJjLWJ1aWxk IF0gJiYgbWtkaXIgZ2xpYmMtYnVpbGQKLQljZCBnbGliYy1idWlsZAotCi0JZWNobyAic2xpYmRp cj0vdXNyL2xpYjMyIiA+IGNvbmZpZ3Bhcm1zCi0KLQllY2hvICJsaWJjX2N2X2ZvcmNlZF91bndp bmQ9eWVzIiA+IGNvbmZpZy5jYWNoZQotCWVjaG8gImxpYmNfY3ZfY19jbGVhbnVwPXllcyIgPj4g Y29uZmlnLmNhY2hlCi0KLQlleHBvcnQgQ0M9IiR7X3RyaXBsZXR9LWdjYyIgTEQ9IiR7X3RyaXBs ZXR9LWxkIiBcCi0JCUFTPSIke190cmlwbGV0fS1hcyIgQ1BQPSIke190cmlwbGV0fS1jcHAiCi0J ZXhwb3J0IENGTEFHUz0iLU9zIC1waXBlICR7X2FyY2hmbGFnc30iCi0KLQlfYXJncz0iLS1wcmVm aXg9L3VzciIKLQlfYXJncys9IiAtLWxpYmRpcj0vdXNyL2xpYjMyIgotCV9hcmdzKz0iIC0taG9z dD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgtaGVhZGVycz0ke19zeXNyb290fS91c3Iv aW5jbHVkZSIKLQlfYXJncys9IiAtLWNvbmZpZy1jYWNoZSIKLQlfYXJncys9IiAtLWRpc2FibGUt cHJvZmlsZSIKLQlfYXJncys9IiAtLWVuYWJsZS1vYnNvbGV0ZS1ycGMiCi0JX2FyZ3MrPSIgLS1l bmFibGUtb2Jzb2xldGUtbnNsIgotCV9hcmdzKz0iIC0tZGlzYWJsZS13ZXJyb3IiCi0JX2FyZ3Mr PSIgLS1lbmFibGUta2VybmVsPTIuNi4yNyIKLQlfYXJncys9IiAke19mcHVmbGFnc30iCi0KLQku Li9nbGliYy0ke19nbGliY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHtt YWtlam9ic30KLQltYWtlIGluc3RhbGxfcm9vdD0ke19zeXNyb290fSBpbnN0YWxsCi0KLQl0b3Vj aCAke3dya3NyY30vLmdsaWJjX2J1aWxkX2RvbmUKLX0KLQotX2djY19idWlsZCgpIHsKLQlsb2Nh bCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmdjY19idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAK LQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdjYyBmaW5hbFxu IgotCi0JWyAhIC1kIGdjYy1idWlsZCBdICYmIG1rZGlyIGdjYy1idWlsZAotCWNkIGdjYy1idWls ZAotCi0JdW5zZXQgTEQgQVMgQ1BQCi0JZXhwb3J0IENDPSJnY2MiIENGTEFHUz0iLU9zIC1waXBl IgotCi0JIyBNYWtlIHRoaXMgbGluayB0byB0YXJnZXQgbGlicy4KLQlpZiBbICEgLWYgLnNlZF9z dWJzdF9kb25lIF07IHRoZW4KLQkJc2VkIC1lICJzLCAvbGliLywgJHtfc3lzcm9vdH0vbGliLyxn O3MsIC91c3IvbGliLywgJHtfc3lzcm9vdH0vdXNyL2xpYi8sZyIgXAotCQkJLWkgJHtfc3lzcm9v dH0vbGliL2xpYmMuc28KLQkJc2VkIC1lICJzLCAvbGliMzIvLCAke19zeXNyb290fS9saWIzMi8s ZztzLCAvdXNyL2xpYjMyLywgJHtfc3lzcm9vdH0vdXNyL2xpYjMyLyxnIiBcCi0JCQktaSAke19z eXNyb290fS9saWIvbGliYy5zbwotCQl0b3VjaCAuc2VkX3N1YnN0X2RvbmUKLQlmaQotCi0JX2Fy Z3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS1saWJleGVjZGlyPS91c3IvbGliIgotCV9h cmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1zeXNyb290PSR7 X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jLGFkYSxjKyssb2JqYyxv YmotYysrLGdvLGZvcnRyYW4sbHRvIgotCV9hcmdzKz0iIC0td2l0aC1nbnUtYXMiCi0JX2FyZ3Mr PSIgLS13aXRoLWdudS1sZCIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3Mr PSIgLS1kaXNhYmxlLXdlcnJvciIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0i IC0tZGlzYWJsZS1zamxqLWV4Y2VwdGlvbnMiCi0JX2FyZ3MrPSIgLS1lbmFibGUtdGhyZWFkcz1w b3NpeCIKLQlfYXJncys9IiAtLWVuYWJsZS1sb25nLWxvbmd4IgotCV9hcmdzKz0iIC0tZW5hYmxl LXNoYXJlZCIKLQlfYXJncys9IiAtLWVuYWJsZS1saW5rZXItYnVpbGQtaWQiCi0JX2FyZ3MrPSIg LS1lbmFibGUtZ251LXVuaXF1ZS1vYmplY3QiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGliYWRhIgot CV9hcmdzKz0iIC0tZW5hYmxlLWx0byIKLQlfYXJncys9IiAtLWVuYWJsZS1kZWZhdWx0LXBpZSIK LQlfYXJncys9IiAtLWVuYWJsZS1kZWZhdWx0LXNzcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGli cXVhZG1hdGgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNzcCIKLQlfYXJncys9IiAtLWRpc2Fi bGUtbGlibXB4IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtdWRmbGFwIgotCV9hcmdzKz0iIC0t ZGlzYWJsZS1saWJzYW5pdGl6ZXIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmNpbGtydHMiCi0J X2FyZ3MrPSIgLS1kaXNhYmxlLWxpYml0bSIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlidnR2Igot CV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzdGRjeHgtcGNoIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxp YnN0ZGN4eC10aW1lIgotCV9hcmdzKz0iIC0td2l0aC1saW5rZXItaGFzaC1zdHlsZT1nbnUiCi0J X2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9IgotCi0JLi4vZ2NjLSR7X2djY192ZXJzaW9ufS9jb25maWd1 cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2Nj X2J1aWxkX2RvbmUKLX0KLQotZG9fYnVpbGQoKSB7Ci0JZm9yIGYgaW4gaW5jbHVkZSBsaWIgbGli ZXhlYyBiaW4gc2JpbjsgZG8KLQkJaWYgWyAhIC1kICR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRo ZW4KLQkJCW1rZGlyIC1wICR7X3N5c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZpCi0JCWlmIFsgISAtaCAk e19zeXNyb290fS8ke2Z9IF07IHRoZW4KLQkJCWxuIC1zZnIgJHtfc3lzcm9vdH0vdXNyLyR7Zn0g JHtfc3lzcm9vdH0vJHtmfQotCQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7X3N5c3Jvb3R9L3Vz ci9saWIzMgotCWxuIC1zZiB1c3IvbGliICR7X3N5c3Jvb3R9L2xpYjMyCi0KLQkjIEVuc3VyZSB3 ZSB1c2Ugc2FuZSBlbnZpcm9ubWVudAotCXVuc2V0IENDIENYWCBDUFAgTEQgQVMgQVIgUkFOTElC IE9CSkRVTVAgUkVBREVMRiBOTQotCXVuc2V0IENGTEFHUyBDWFhGTEFHUyBDUFBGTEFHUyBMREZM QUdTCi0JZXhwb3J0IENGTEFHUz0iLU9zIiBDWFhGTEFHUz0iLU9zIgotCi0JX2JpbnV0aWxzX2J1 aWxkCi0JX2djY19ib290c3RyYXAKLQlfbGludXhfaGVhZGVycwotCV9nbGliY19oZWFkZXJzCi0J X2dsaWJjX2J1aWxkCi0JX2djY19idWlsZAotfQotCi1kb19pbnN0YWxsKCkgewotCWZvciBmIGlu IGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47IGRvCi0JCWlmIFsgISAtZCAke0RFU1RESVJ9 LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4KLQkJCW1rZGlyIC1wICR7REVTVERJUn0vJHtf c3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkKLQkJaWYgWyAhIC1oICR7REVTVERJUn0vJHtfc3lzcm9v dH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7 Zn0gXAotCQkJCSR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtmfQotCQlmaQotCWRvbmUKLQlsbiAt c2YgbGliICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYjMyCi0JbG4gLXNmIHVzci9saWIg JHtERVNURElSfS8ke19zeXNyb290fS9saWIzMgotCi0JIyBpbnN0YWxsIGNyb3NzIGJpbnV0aWxz Ci0JY2QgJHt3cmtzcmN9L2JpbnV0aWxzLWJ1aWxkCi0JbWFrZSBERVNURElSPSR7REVTVERJUn0g aW5zdGFsbAotCi0JIyBpbnN0YWxsIGNyb3NzIGdjYwotCWNkICR7d3Jrc3JjfS9nY2MtYnVpbGQK LQltYWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0KLQkjIG1vdmUgbGliY2MxLnNvKiB0 byB0aGUgc3lzcm9vdAotCW12ICR7REVTVERJUn0vdXNyL2xpYi9saWJjYzEuc28qICR7REVTVERJ Un0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCi0JIyBpbnN0YWxsIGxpbnV4IEFQSSBoZWFkZXJzIGZv ciBNSVBTCi0JY2QgJHt3cmtzcmN9L2xpbnV4LSR7X2xpbnV4X3ZlcnNpb259Ci0JbWFrZSBBUkNI PWFybSBJTlNUQUxMX0hEUl9QQVRIPSR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyIGhlYWRlcnNf aW5zdGFsbAotCXJtIC1mICQoZmluZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRl IC1uYW1lIC5pbnN0YWxsIC1vciAtbmFtZSAuLmluc3RhbGwuY21kKQotCXJtIC1yZiAke0RFU1RE SVJ9LyR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlL2RybQotCi0JIyBpbnN0YWxsIGdsaWJjIGZvciB0 YXJnZXQKLQljZCAke3dya3NyY30vZ2xpYmMtYnVpbGQKLQltYWtlIGluc3RhbGxfcm9vdD0ke0RF U1RESVJ9LyR7X3N5c3Jvb3R9IGluc3RhbGwgaW5zdGFsbC1oZWFkZXJzCi0KLQkjIHN5bWxpbmtz IGZvciBnbmFybCBhbmQgZ25hdCBzaGFyZWQgbGlicmFyaWVzCi0JX21ham9ydmVyPSR7X2djY192 ZXJzaW9uJS4qLip9Ci0JX2FkYWxpYj11c3IvbGliL2djYy8ke190cmlwbGV0fS8ke19nY2NfdmVy c2lvbn0vYWRhbGliCi0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXJsLSR7X21h am9ydmVyfS5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQltdiAtdiAke0RFU1RE SVJ9LyR7X2FkYWxpYn0vbGliZ25hdC0ke19tYWpvcnZlcn0uc28gJHtERVNURElSfS8ke19zeXNy b290fS91c3IvbGliCi0JbG4gLXN2ZiBsaWJnbmFybC0ke19tYWpvcnZlcn0uc28gbGliZ25hcmwu c28KLQlsbiAtc3ZmIGxpYmduYXQtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXQuc28KLQlybSAtdmYg JHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXtybCx0fS5zbwotCi0JIyBXZSBuZWVkIHRvIGJ1 aWxkIGxpYmF0b21pYyBpbiB0YXJnZXQgZ2NjIGFzIGdjY2dvIG5lZWRzIGl0IHRvCi0JIyBidWls ZC4uLiBidXQgaXQncyBub3QgbmVlZGVkIGF0IHJ1bnRpbWUsIHNvIHJlbW92ZSBpdCBmcm9tIHRo ZQotCSMgZGVzdGRpciBzbyBpdCBkb2Vzbid0IGNvbmZsaWN0IHdpdGggdGhlIGxpYmF0b21pYyBw YWNrYWdlCi0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliL2xpYmF0b21pYy4q Ci0KLQkjIFJlbW92ZSB1bm5lY2Vzc2FyeSBzdHVmZgotCXJtIC1mICR7REVTVERJUn0vdXNyL2xp YiovbGliaWJlcnR5LmEKLQlybSAtcmYgJHtERVNURElSfS91c3Ivc2hhcmUKLQlybSAtcmYgJHtE RVNURElSfS8ke19zeXNyb290fS97c2JpbixsaWIsZXRjLHZhcn0KLQlybSAtcmYgJHtERVNURElS fS8ke19zeXNyb290fS91c3Ive3NiaW4sc2hhcmUsbGliZXhlY30KLQlybSAtZiAke0RFU1RESVJ9 LyR7X3N5c3Jvb3R9L2xpYmV4ZWMKLX0KLQogY3Jvc3MtYXJtLWxpbnV4LWdudWVhYmktbGliY19w YWNrYWdlKCkgewogCXNob3J0X2Rlc2MrPSIgLSBnbGliYyBmaWxlcyIKIAlub3N0cmlwPXllcwpA QCAtMzc0LDYgKzQ4LDYgQEAgY3Jvc3MtYXJtLWxpbnV4LWdudWVhYmktbGliY19wYWNrYWdlKCkg ewogCW5vdmVyaWZ5cmRlcHM9eWVzCiAKIAlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgJHtfc3lz cm9vdH0KKwkJdm1vdmUgdXNyLyR7Y3Jvc3NfdHJpcGxldH0KIAl9CiB9CgpGcm9tIDhlM2I1M2Ni MmU1NDY5YzU0NTliN2U0YmUzZGQ4OGY5NWI1MGMwZWUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IHE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IEZyaSwgMjUgRGVjIDIwMjAg MjA6MTA6NDUgKzAxMDAKU3ViamVjdDogW1BBVENIIDA2LzE2XSBjcm9zcy1hcm0tbGludXgtZ251 ZWFiaWhmOiByZWRvIHdpdGggdm9pZC1jcm9zcwoKLS0tCiBzcmNwa2dzL2Nyb3NzLWFybS1saW51 eC1nbnVlYWJpaGYvdGVtcGxhdGUgfCAzNjUgKystLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUg Y2hhbmdlZCwgMTkgaW5zZXJ0aW9ucygrKSwgMzQ2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvY3Jvc3MtYXJtLWxpbnV4LWdudWVhYmloZi90ZW1wbGF0ZSBiL3NyY3BrZ3MvY3Jv c3MtYXJtLWxpbnV4LWdudWVhYmloZi90ZW1wbGF0ZQppbmRleCA0ZTQ2YmExZTMwNi4uZjIxYTRl YmI0ODUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY3Jvc3MtYXJtLWxpbnV4LWdudWVhYmloZi90ZW1w bGF0ZQorKysgYi9zcmNwa2dzL2Nyb3NzLWFybS1saW51eC1nbnVlYWJpaGYvdGVtcGxhdGUKQEAg LTEsMjIgKzEsMjEgQEAKLSMgVGVtcGxhdGUgYnVpbGQgZmlsZSBmb3IgJ2Nyb3NzLWFybS1saW51 eC1nbnVlYWJpaGYnCi0jCisjIFRlbXBsYXRlIGZpbGUgZm9yICdjcm9zcy1hcm0tbGludXgtZ251 ZWFiaWhmJworX3RyaXBsZXQ9YXJtLWxpbnV4LWdudWVhYmloZgogX2JpbnV0aWxzX3ZlcnNpb249 Mi4zMgogX2djY192ZXJzaW9uPTkuMy4wCiBfZ2xpYmNfdmVyc2lvbj0yLjMwCiBfbGludXhfdmVy c2lvbj00LjE5Ci0KLV90cmlwbGV0PWFybS1saW51eC1nbnVlYWJpaGYKLV9mcHVmbGFncz0iLS13 aXRoLWFyY2g9YXJtdjYgLS13aXRoLWZwdT12ZnAgLS13aXRoLWZsb2F0PWhhcmQiCi1fYXJjaGZs YWdzPSItbWFyY2g9YXJtdjYgLW1mcHU9dmZwIC1tZmxvYXQtYWJpPWhhcmQiCi1fc3lzcm9vdD0i L3Vzci8ke190cmlwbGV0fSIKLQogcGtnbmFtZT1jcm9zcy0ke190cmlwbGV0fQogdmVyc2lvbj0w LjMzCiByZXZpc2lvbj0yCi1zaG9ydF9kZXNjPSJHTlUgQ3Jvc3MgdG9vbGNoYWluIGZvciB0aGUg JHtfdHJpcGxldH0gTEUgdGFyZ2V0IChiaW51dGlscy9nY2MvZ2xpYmMpIgorYnVpbGRfc3R5bGU9 dm9pZC1jcm9zcworY29uZmlndXJlX2FyZ3M9Ii0td2l0aC1hcmNoPWFybXY2IC0td2l0aC1mcHU9 dmZwIC0td2l0aC1mbG9hdD1oYXJkIgoraG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZ2Nj LWdvIGZsZXggcGVybCBweXRob24zIgorbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1k ZXZlbCB6bGliLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIgorZGVwZW5kcz0iJHtwa2duYW1l fS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCitzaG9ydF9kZXNjPSJWb2lkIGNyb3NzIHRv b2xjaGFpbiBmb3IgJHtfdHJpcGxldH0iCiBtYWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZv aWRsaW51eC5vcmc+IgorbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR1BMLTMuMC1vci1sYXRl ciwgTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9y Zy8iCi1saWNlbnNlPSJQdWJsaWMgRG9tYWluIgogZGlzdGZpbGVzPSIKICAke0dOVV9TSVRFfS9i aW51dGlscy9iaW51dGlscy0ke19iaW51dGlsc192ZXJzaW9ufS50YXIueHoKICAke0dOVV9TSVRF fS9nY2MvZ2NjLSR7X2djY192ZXJzaW9ufS9nY2MtJHtfZ2NjX3ZlcnNpb259LnRhci54egpAQCAt MjcsMzQ2ICsyNiwyMCBAQCBjaGVja3N1bT0iMGFiNmM1NWRkODZhOTJlZDU2MTk3MmJhMTViOWI3 MGE4YjlmNzU1NTdmODk2NDQ2YzgyZThiMzZlNDczZWUwNAogIGUyYzQxMTRlNTY5YWZiZTdlZGJj MjkxMzFhNDNiZTgzMzg1MGFiOWE0NTlkODFiZWIyNTg4MDE2ZDJiYmI4YWYKICAwYzY4ZjU2NTU1 MjhhZWQ0Zjk5ZGFlNzFhNWIyNTllZGM5MzIzOWZhODk5ZTJkZjc5YzA1NTI3NWMyMTc0OWExIgog Ci1saWIzMmRpc2FibGVkPXllcwotbm9jcm9zcz15ZXMKLW5vcGllPXllcwotbm9kZWJ1Zz15ZXMK LWNyZWF0ZV93cmtzcmM9eWVzCi0KLWhvc3RtYWtlZGVwZW5kcz0idGFyIGdjYy1vYmpjIGdjYy1n byBmbGV4IHBlcmwgcHl0aG9uMyIKLW1ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2 ZWwgemxpYi1kZXZlbCIKLWRlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2 aXNpb259Igotbm9zdHJpcF9maWxlcz0ibGliY2FmX3NpbmdsZS5hIGxpYmdjYy5hIGxpYmdjb3Yu YSBsaWJnY2NfZWguYQotIGxpYmduYXJsX3BpYy5hIGxpYmduYXJsLmEgbGliZ25hdF9waWMuYSBs aWJnbmF0LmEgbGliZ21lbS5hIgotCi1pZiBbICIkWEJQU19UQVJHRVRfTElCQyIgIT0gImdsaWJj IiBdOyB0aGVuCi0JYnJva2VuPSJnbGliYyBjcm9zc3Rvb2xjaGFpbiBvbmx5IGF2YWlsYWJsZSBv biBnbGliYyIKLWZpCitjcm9zc190cmlwbGV0PSR7X3RyaXBsZXR9Citjcm9zc193b3Jkc2l6ZT0z MgorY3Jvc3NfbGliYz1nbGliYworY3Jvc3NfYmludXRpbHNfdmVyc2lvbj0ke19iaW51dGlsc192 ZXJzaW9ufQorY3Jvc3NfZ2NjX3ZlcnNpb249JHtfZ2NjX3ZlcnNpb259Citjcm9zc19nbGliY192 ZXJzaW9uPSR7X2dsaWJjX3ZlcnNpb259Citjcm9zc19saW51eF92ZXJzaW9uPSR7X2xpbnV4X3Zl cnNpb259Citjcm9zc19saW51eF9hcmNoPWFybQorY3Jvc3NfZ2xpYmNfY2ZsYWdzPSItT3MgLW1h cmNoPWFybXY2IC1tZnB1PXZmcCAtbWZsb2F0LWFiaT1oYXJkIgogCiBpZiBbICIkWEJQU19UQVJH RVRfTUFDSElORSIgPSAiYXJtdjZsIiBdOyB0aGVuCiAJYnJva2VuPSJDYW4ndCBidWlsZCBjcm9z c3Rvb2xjaGFpbiB0byBpdHNlbGYiCiBmaQogCi1fYXBwbHlfcGF0Y2goKSB7Ci0JbG9jYWwgYXJn cz0iJDEiIHBuYW1lPSIkKGJhc2VuYW1lICQyKSIKLQotCWlmIFsgISAtZiAiLiR7cG5hbWV9X2Rv bmUiIF07IHRoZW4KLQkJcGF0Y2ggLU4gJGFyZ3MgLWkgJDIKLQkJdG91Y2ggLiR7cG5hbWV9X2Rv bmUKLQlmaQotfQotCi1fbGludXhfaGVhZGVycygpIHsKLQlbIC1mICR7d3Jrc3JjfS8ubGludXhf YnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJC dWlsZGluZyBMaW51eCBBUEkgaGVhZGVycyBmb3IgQVJNXG4iCi0KLQljZCBsaW51eC0ke19saW51 eF92ZXJzaW9ufQotCi0JbWFrZSBBUkNIPWFybSBoZWFkZXJzX2NoZWNrCi0JbWFrZSBBUkNIPWFy bSBJTlNUQUxMX0hEUl9QQVRIPSR7X3N5c3Jvb3R9L3VzciBoZWFkZXJzX2luc3RhbGwKLQotCXRv dWNoICR7d3Jrc3JjfS8ubGludXhfYnVpbGRfZG9uZQotfQotCi1fYmludXRpbHNfYnVpbGQoKSB7 Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5iaW51dGlsc19idWlsZF9kb25lIF0g JiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3Nz IGJpbnV0aWxzXG4iCi0JWyAhIC1kIGJpbnV0aWxzLWJ1aWxkIF0gJiYgbWtkaXIgYmludXRpbHMt YnVpbGQKLQljZCBiaW51dGlscy1idWlsZAotCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2Fy Z3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtf c3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUt c2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJncys9IiAtLWRpc2Fi bGUtd2Vycm9yIgotCV9hcmdzKz0iIC0td2l0aC1zeXN0ZW0temxpYiIKLQotCS4uL2JpbnV0aWxz LSR7X2JpbnV0aWxzX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSBjb25maWd1 cmUtaG9zdAotCW1ha2UgJHttYWtlam9ic30KLQltYWtlIGluc3RhbGwKLQotCXRvdWNoICR7d3Jr c3JjfS8uYmludXRpbHNfYnVpbGRfZG9uZQotfQotCi1fZ2NjX2Jvb3RzdHJhcCgpIHsKLQlsb2Nh bCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmdjY19ib290c3RyYXBfZG9uZSBdICYmIHJldHVy biAwCi0KLQljZCAke3dya3NyY30vZ2NjLSR7X2djY192ZXJzaW9ufQotCWZvciBmIGluICR7WEJQ U19TUkNQS0dESVJ9L2djYy9wYXRjaGVzLyoucGF0Y2g7IGRvCi0JCV9hcHBseV9wYXRjaCAtcDAg IiRmIgotCWRvbmUKLQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdjYyBib290c3RyYXBc biIKLQotCVsgISAtZCAuLi9nY2MtYm9vdHN0cmFwIF0gJiYgbWtkaXIgLi4vZ2NjLWJvb3RzdHJh cAotCWNkIC4uL2djYy1ib290c3RyYXAKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdz Kz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aG91dC1oZWFkZXJzIgot CV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNoYXJlZCIKLQlf YXJncys9IiAtLWRpc2FibGUtbGlicXVhZG1hdGgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWRlY2lt YWwtZmxvYXQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmdvbXAiCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLWxpYm1weCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXVkZmxhcCIKLQlfYXJncys9IiAt LWRpc2FibGUtbGlic3NwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJpdG0iCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLWxpYmF0b21pYyIKLQlfYXJncys9IiAtLWRpc2FibGUtdGhyZWFkcyIKLQlfYXJn cys9IiAtLWVuYWJsZS1sYW5ndWFnZXM9YyIKLQlfYXJncys9IiAtLWRpc2FibGUtc2psai1leGNl cHRpb25zIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJncys9IiAtLXdpdGgt Z251LWxkIgotCV9hcmdzKz0iIC0td2l0aC1nbnUtYXMiCi0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9 IgotCi0JQ0ZMQUdTPSItTzAgLWcwIiBDWFhGTEFHUz0iLU8wIC1nMCIgXAotCQkuLi9nY2MtJHtf Z2NjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAke21ha2Vqb2JzfQotCW1h a2UgaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUKLX0KLQot X2dsaWJjX2hlYWRlcnMoKSB7Ci0JbG9jYWwgX2FyZ3MgZgotCi0JWyAtZiAke3dya3NyY30vLmds aWJjX2hlYWRlcnNfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30vZ2xpYmMtJHtf Z2xpYmNfdmVyc2lvbn0KLQlpZiBbIC1kICIke1hCUFNfU1JDUEtHRElSfS9nbGliYy9wYXRjaGVz IiBdOyB0aGVuCi0JCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L2dsaWJjL3BhdGNoZXMvKi5w YXRjaDsgZG8KLQkJCV9hcHBseV9wYXRjaCAtcDEgIiRmIgotCQlkb25lCi0JZmkKLQotCWNkICR7 d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdsaWJjIGhlYWRlcnNcbiIKLQot CVsgISAtZCBnbGliYy1oZWFkZXJzIF0gJiYgbWtkaXIgZ2xpYmMtaGVhZGVycwotCWNkIGdsaWJj LWhlYWRlcnMKLQotCWVjaG8gImxpYmNfY3ZfZm9yY2VkX3Vud2luZD15ZXMiID4gY29uZmlnLmNh Y2hlCi0JZWNobyAibGliY19jdl9jX2NsZWFudXA9eWVzIiA+PiBjb25maWcuY2FjaGUKLQotCWV4 cG9ydCBDQz0iJHtfdHJpcGxldH0tZ2NjIiBMRD0iJHtfdHJpcGxldH0tbGQiIFwKLQkJQVM9IiR7 X3RyaXBsZXR9LWFzIiBDUFA9IiR7X3RyaXBsZXR9LWNwcCIKLQotCV9hcmdzPSItLXByZWZpeD0v dXNyIgotCV9hcmdzKz0iIC0taG9zdD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgtaGVh ZGVycz0ke19zeXNyb290fS91c3IvaW5jbHVkZSIKLQlfYXJncys9IiAtLWNvbmZpZy1jYWNoZSIK LQlfYXJncys9IiAtLWVuYWJsZS1vYnNvbGV0ZS1ycGMiCi0JX2FyZ3MrPSIgLS1lbmFibGUtb2Jz b2xldGUtbnNsIgotCV9hcmdzKz0iIC0tZW5hYmxlLWtlcm5lbD0yLjYuMjciCi0JX2FyZ3MrPSIg JHtfZnB1ZmxhZ3N9IgotCi0JLi4vZ2xpYmMtJHtfZ2xpYmNfdmVyc2lvbn0vY29uZmlndXJlICR7 X2FyZ3N9Ci0KLQltYWtlIC1rIGluc3RhbGwtaGVhZGVycyBjcm9zc19jb21waWxpbmc9eWVzIFwK LQkJaW5zdGFsbF9yb290PSR7X3N5c3Jvb3R9Ci0KLQl0b3VjaCAke3dya3NyY30vLmdsaWJjX2hl YWRlcnNfZG9uZQotfQotCi1fZ2xpYmNfYnVpbGQoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYg JHt3cmtzcmN9Ly5nbGliY19idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3Jj fQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdsaWJjXG4iCi0KLQlbICEgLWQgZ2xpYmMt YnVpbGQgXSAmJiBta2RpciBnbGliYy1idWlsZAotCWNkIGdsaWJjLWJ1aWxkCi0KLQllY2hvICJz bGliZGlyPS91c3IvbGliMzIiID4gY29uZmlncGFybXMKLQotCWVjaG8gImxpYmNfY3ZfZm9yY2Vk X3Vud2luZD15ZXMiID4gY29uZmlnLmNhY2hlCi0JZWNobyAibGliY19jdl9jX2NsZWFudXA9eWVz IiA+PiBjb25maWcuY2FjaGUKLQotCWV4cG9ydCBDQz0iJHtfdHJpcGxldH0tZ2NjIiBMRD0iJHtf dHJpcGxldH0tbGQiIFwKLQkJQVM9IiR7X3RyaXBsZXR9LWFzIiBDUFA9IiR7X3RyaXBsZXR9LWNw cCIKLQlleHBvcnQgQ0ZMQUdTPSItT3MgLXBpcGUgJHtfYXJjaGZsYWdzfSIKLQotCV9hcmdzPSIt LXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tbGliZGlyPS91c3IvbGliMzIiCi0JX2FyZ3MrPSIg LS1ob3N0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1oZWFkZXJzPSR7X3N5c3Jvb3R9 L3Vzci9pbmNsdWRlIgotCV9hcmdzKz0iIC0tY29uZmlnLWNhY2hlIgotCV9hcmdzKz0iIC0tZGlz YWJsZS1wcm9maWxlIgotCV9hcmdzKz0iIC0tZW5hYmxlLW9ic29sZXRlLXJwYyIKLQlfYXJncys9 IiAtLWVuYWJsZS1vYnNvbGV0ZS1uc2wiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXdlcnJvciIKLQlf YXJncys9IiAtLWVuYWJsZS1rZXJuZWw9Mi42LjI3IgotCV9hcmdzKz0iICR7X2ZwdWZsYWdzfSIK LQotCS4uL2dsaWJjLSR7X2dsaWJjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFr ZSAke21ha2Vqb2JzfQotCW1ha2UgaW5zdGFsbF9yb290PSR7X3N5c3Jvb3R9IGluc3RhbGwKLQot CXRvdWNoICR7d3Jrc3JjfS8uZ2xpYmNfYnVpbGRfZG9uZQotfQotCi1fZ2NjX2J1aWxkKCkgewot CWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUgXSAmJiByZXR1 cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2NjIGZp bmFsXG4iCi0KLQlbICEgLWQgZ2NjLWJ1aWxkIF0gJiYgbWtkaXIgZ2NjLWJ1aWxkCi0JY2QgZ2Nj LWJ1aWxkCi0KLQl1bnNldCBMRCBBUyBDUFAKLQlleHBvcnQgQ0M9ImdjYyIgQ0ZMQUdTPSItT3Mg LXBpcGUiCi0KLQkjIE1ha2UgdGhpcyBsaW5rIHRvIHRhcmdldCBsaWJzLgotCWlmIFsgISAtZiAu c2VkX3N1YnN0X2RvbmUgXTsgdGhlbgotCQlzZWQgLWUgInMsIC9saWIvLCAke19zeXNyb290fS9s aWIvLGc7cywgL3Vzci9saWIvLCAke19zeXNyb290fS91c3IvbGliLyxnIiBcCi0JCQktaSAke19z eXNyb290fS9saWIvbGliYy5zbwotCQlzZWQgLWUgInMsIC9saWIzMi8sICR7X3N5c3Jvb3R9L2xp YjMyLyxnO3MsIC91c3IvbGliMzIvLCAke19zeXNyb290fS91c3IvbGliMzIvLGciIFwKLQkJCS1p ICR7X3N5c3Jvb3R9L2xpYi9saWJjLnNvCi0JCXRvdWNoIC5zZWRfc3Vic3RfZG9uZQotCWZpCi0J X2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS1saWJleGVjZGlyPS91c3IvbGliIgot CV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1zeXNyb290 PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jLGFkYSxjKyssb2Jq YyxvYmotYysrLGdvLGZvcnRyYW4sbHRvIgotCV9hcmdzKz0iIC0td2l0aC1nbnUtYXMiCi0JX2Fy Z3MrPSIgLS13aXRoLWdudS1sZCIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2Fy Z3MrPSIgLS1kaXNhYmxlLXdlcnJvciIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdz Kz0iIC0tZGlzYWJsZS1zamxqLWV4Y2VwdGlvbnMiCi0JX2FyZ3MrPSIgLS1lbmFibGUtdGhyZWFk cz1wb3NpeCIKLQlfYXJncys9IiAtLWVuYWJsZS1sb25nLWxvbmd4IgotCV9hcmdzKz0iIC0tZW5h YmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWVuYWJsZS1saW5rZXItYnVpbGQtaWQiCi0JX2FyZ3Mr PSIgLS1lbmFibGUtZ251LXVuaXF1ZS1vYmplY3QiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGliYWRh IgotCV9hcmdzKz0iIC0tZW5hYmxlLWx0byIKLQlfYXJncys9IiAtLWVuYWJsZS1kZWZhdWx0LXBp ZSIKLQlfYXJncys9IiAtLWVuYWJsZS1kZWZhdWx0LXNzcCIKLQlfYXJncys9IiAtLWRpc2FibGUt bGlicXVhZG1hdGgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNzcCIKLQlfYXJncys9IiAtLWRp c2FibGUtbGlibXB4IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtdWRmbGFwIgotCV9hcmdzKz0i IC0tZGlzYWJsZS1saWJzYW5pdGl6ZXIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmNpbGtydHMi Ci0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYml0bSIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlidnR2 IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzdGRjeHgtcGNoIgotCV9hcmdzKz0iIC0tZW5hYmxl LWxpYnN0ZGN4eC10aW1lIgotCV9hcmdzKz0iIC0td2l0aC1saW5rZXItaGFzaC1zdHlsZT1nbnUi Ci0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9IgotCi0JLi4vZ2NjLSR7X2djY192ZXJzaW9ufS9jb25m aWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQotCXRvdWNoICR7d3Jrc3JjfS8u Z2NjX2J1aWxkX2RvbmUKLX0KLQotZG9fYnVpbGQoKSB7Ci0JZm9yIGYgaW4gaW5jbHVkZSBsaWIg bGliZXhlYyBiaW4gc2JpbjsgZG8KLQkJaWYgWyAhIC1kICR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07 IHRoZW4KLQkJCW1rZGlyIC1wICR7X3N5c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZpCi0JCWlmIFsgISAt aCAke19zeXNyb290fS8ke2Z9IF07IHRoZW4KLQkJCWxuIC1zZnIgJHtfc3lzcm9vdH0vdXNyLyR7 Zn0gJHtfc3lzcm9vdH0vJHtmfQotCQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7X3N5c3Jvb3R9 L3Vzci9saWIzMgotCWxuIC1zZiB1c3IvbGliICR7X3N5c3Jvb3R9L2xpYjMyCi0KLQkjIEVuc3Vy ZSB3ZSB1c2Ugc2FuZSBlbnZpcm9ubWVudAotCXVuc2V0IENDIENYWCBDUFAgTEQgQVMgQVIgUkFO TElCIE9CSkRVTVAgUkVBREVMRiBOTQotCXVuc2V0IENGTEFHUyBDWFhGTEFHUyBDUFBGTEFHUyBM REZMQUdTCi0JZXhwb3J0IENGTEFHUz0iLU9zIiBDWFhGTEFHUz0iLU9zIgotCi0JX2JpbnV0aWxz X2J1aWxkCi0JX2djY19ib290c3RyYXAKLQlfbGludXhfaGVhZGVycwotCV9nbGliY19oZWFkZXJz Ci0JX2dsaWJjX2J1aWxkCi0JX2djY19idWlsZAotfQotCi1kb19pbnN0YWxsKCkgewotCWZvciBm IGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47IGRvCi0JCWlmIFsgISAtZCAke0RFU1RE SVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4KLQkJCW1rZGlyIC1wICR7REVTVERJUn0v JHtfc3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkKLQkJaWYgWyAhIC1oICR7REVTVERJUn0vJHtfc3lz cm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNy LyR7Zn0gXAotCQkJCSR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtmfQotCQlmaQotCWRvbmUKLQls biAtc2YgbGliICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYjMyCi0JbG4gLXNmIHVzci9s aWIgJHtERVNURElSfS8ke19zeXNyb290fS9saWIzMgotCi0JIyBpbnN0YWxsIGNyb3NzIGJpbnV0 aWxzCi0JY2QgJHt3cmtzcmN9L2JpbnV0aWxzLWJ1aWxkCi0JbWFrZSBERVNURElSPSR7REVTVERJ Un0gaW5zdGFsbAotCi0JIyBpbnN0YWxsIGNyb3NzIGdjYwotCWNkICR7d3Jrc3JjfS9nY2MtYnVp bGQKLQltYWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0KLQkjIG1vdmUgbGliY2MxLnNv KiB0byB0aGUgc3lzcm9vdAotCW12ICR7REVTVERJUn0vdXNyL2xpYi9saWJjYzEuc28qICR7REVT VERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCi0JIyBpbnN0YWxsIGxpbnV4IEFQSSBoZWFkZXJz IGZvciBNSVBTCi0JY2QgJHt3cmtzcmN9L2xpbnV4LSR7X2xpbnV4X3ZlcnNpb259Ci0JbWFrZSBB UkNIPWFybSBJTlNUQUxMX0hEUl9QQVRIPSR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyIGhlYWRl cnNfaW5zdGFsbAotCXJtIC1mICQoZmluZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9pbmNs dWRlIC1uYW1lIC5pbnN0YWxsIC1vciAtbmFtZSAuLmluc3RhbGwuY21kKQotCXJtIC1yZiAke0RF U1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlL2RybQotCi0JIyBpbnN0YWxsIGdsaWJjIGZv ciB0YXJnZXQKLQljZCAke3dya3NyY30vZ2xpYmMtYnVpbGQKLQltYWtlIGluc3RhbGxfcm9vdD0k e0RFU1RESVJ9LyR7X3N5c3Jvb3R9IGluc3RhbGwgaW5zdGFsbC1oZWFkZXJzCi0KLQkjIHN5bWxp bmtzIGZvciBnbmFybCBhbmQgZ25hdCBzaGFyZWQgbGlicmFyaWVzCi0JX21ham9ydmVyPSR7X2dj Y192ZXJzaW9uJS4qLip9Ci0JX2FkYWxpYj11c3IvbGliL2djYy8ke190cmlwbGV0fS8ke19nY2Nf dmVyc2lvbn0vYWRhbGliCi0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXJsLSR7 X21ham9ydmVyfS5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQltdiAtdiAke0RF U1RESVJ9LyR7X2FkYWxpYn0vbGliZ25hdC0ke19tYWpvcnZlcn0uc28gJHtERVNURElSfS8ke19z eXNyb290fS91c3IvbGliCi0JbG4gLXN2ZiBsaWJnbmFybC0ke19tYWpvcnZlcn0uc28gbGliZ25h cmwuc28KLQlsbiAtc3ZmIGxpYmduYXQtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXQuc28KLQlybSAt dmYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXtybCx0fS5zbwotCi0JIyBXZSBuZWVkIHRv IGJ1aWxkIGxpYmF0b21pYyBpbiB0YXJnZXQgZ2NjIGFzIGdjY2dvIG5lZWRzIGl0IHRvCi0JIyBi dWlsZC4uLiBidXQgaXQncyBub3QgbmVlZGVkIGF0IHJ1bnRpbWUsIHNvIHJlbW92ZSBpdCBmcm9t IHRoZQotCSMgZGVzdGRpciBzbyBpdCBkb2Vzbid0IGNvbmZsaWN0IHdpdGggdGhlIGxpYmF0b21p YyBwYWNrYWdlCi0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliL2xpYmF0b21p Yy4qCi0KLQkjIFJlbW92ZSB1bm5lY2Vzc2FyeSBzdHVmZgotCXJtIC1mICR7REVTVERJUn0vdXNy L2xpYiovbGliaWJlcnR5LmEKLQlybSAtcmYgJHtERVNURElSfS91c3Ivc2hhcmUKLQlybSAtcmYg JHtERVNURElSfS8ke19zeXNyb290fS97c2JpbixsaWIsZXRjLHZhcn0KLQlybSAtcmYgJHtERVNU RElSfS8ke19zeXNyb290fS91c3Ive3NiaW4sc2hhcmUsbGliZXhlY30KLQlybSAtZiAke0RFU1RE SVJ9LyR7X3N5c3Jvb3R9L2xpYmV4ZWMKLX0KLQogY3Jvc3MtYXJtLWxpbnV4LWdudWVhYmloZi1s aWJjX3BhY2thZ2UoKSB7CiAJc2hvcnRfZGVzYys9IiAtIGdsaWJjIGZpbGVzIgogCW5vc3RyaXA9 eWVzCkBAIC0zNzQsNiArNDcsNiBAQCBjcm9zcy1hcm0tbGludXgtZ251ZWFiaWhmLWxpYmNfcGFj a2FnZSgpIHsKIAlub3ZlcmlmeXJkZXBzPXllcwogCiAJcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3Zl ICR7X3N5c3Jvb3R9CisJCXZtb3ZlIHVzci8ke2Nyb3NzX3RyaXBsZXR9CiAJfQogfQoKRnJvbSBi MmI4NjhkMGZmNWVkYjBjYjc3MDMwNjdhNTg3YmY1OTIwOWVkMzg3IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBxNjYgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBGcmksIDI1IERl YyAyMDIwIDIxOjA4OjI3ICswMTAwClN1YmplY3Q6IFtQQVRDSCAwNy8xNl0gY3Jvc3MtYXJtLWxp bnV4LW11c2xlYWJpOiByZXdvcmsgd2l0aCB2b2lkLWNyb3NzCgotLS0KIHNyY3BrZ3MvY3Jvc3Mt YXJtLWxpbnV4LW11c2xlYWJpL3RlbXBsYXRlIHwgMzEwICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0K IDEgZmlsZSBjaGFuZ2VkLCAyMSBpbnNlcnRpb25zKCspLCAyODkgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9jcm9zcy1hcm0tbGludXgtbXVzbGVhYmkvdGVtcGxhdGUgYi9zcmNw a2dzL2Nyb3NzLWFybS1saW51eC1tdXNsZWFiaS90ZW1wbGF0ZQppbmRleCA3NGI4ZThkNGMxMS4u ZjcxMzZjNzUwOTQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY3Jvc3MtYXJtLWxpbnV4LW11c2xlYWJp L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY3Jvc3MtYXJtLWxpbnV4LW11c2xlYWJpL3RlbXBsYXRl CkBAIC0xLDIwICsxLDE5IEBACi0jIFRlbXBsYXRlIGJ1aWxkIGZpbGUgZm9yICdjcm9zcy1hcm0t bGludXgtbXVzbGVhYmknCi0jCisjIFRlbXBsYXRlIGZpbGUgZm9yICdjcm9zcy1hcm0tbGludXgt bXVzbGVhYmknCitfdHJpcGxldD1hcm0tbGludXgtbXVzbGVhYmkKIF9iaW51dGlsc192ZXJzaW9u PTIuMzIKIF9nY2NfdmVyc2lvbj05LjMuMAogX211c2xfdmVyc2lvbj0xLjEuMjQKIF9saW51eF92 ZXJzaW9uPTQuMTkKIF9saWJ1Y29udGV4dF92ZXJzaW9uPTAuOS4wCi0KLV90cmlwbGV0PWFybS1s aW51eC1tdXNsZWFiaQotX2ZwdWZsYWdzPSItLXdpdGgtYXJjaD1hcm12NXRlIC0td2l0aG91dC1m cCAtLXdpdGgtZmxvYXQ9c29mdCIKLV9hcmNoZmxhZ3M9Ii1tYXJjaD1hcm12NXRlIC1tc29mdC1m bG9hdCAtbWZsb2F0LWFiaT1zb2Z0IgotX3N5c3Jvb3Q9Ii91c3IvJHtfdHJpcGxldH0iCi0KIHBr Z25hbWU9Y3Jvc3MtJHtfdHJpcGxldH0KIHZlcnNpb249MC4zMwogcmV2aXNpb249Mwotc2hvcnRf ZGVzYz0iQ3Jvc3MgdG9vbGNoYWluIGZvciBBUk12NSBURSB0YXJnZXQgKG11c2wpIgorYnVpbGRf c3R5bGU9dm9pZC1jcm9zcworY29uZmlndXJlX2FyZ3M9Ii0td2l0aC1hcmNoPWFybXY1dGUgLS13 aXRoLWZsb2F0PXNvZnQiCitob3N0bWFrZWRlcGVuZHM9InRhciBnY2Mtb2JqYyBnY2MtZ28gZmxl eCBwZXJsIHB5dGhvbjMiCittYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHps aWItZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwiCitkZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMt JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKK3Nob3J0X2Rlc2M9IlZvaWQgY3Jvc3MgdG9vbGNoYWlu IGZvciAke190cmlwbGV0fSIKIG1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4 Lm9yZz4iCiBob21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBsaWNlbnNlPSJH UEwtMi4wLW9yLWxhdGVyLCBHUEwtMy4wLW9yLWxhdGVyLCBNSVQiCkBAIC0zMCwyOTYgKzI5LDI5 IEBAIGNoZWNrc3VtPSIwYWI2YzU1ZGQ4NmE5MmVkNTYxOTcyYmExNWI5YjcwYThiOWY3NTU1N2Y4 OTY0NDZjODJlOGIzNmU0NzNlZTA0CiAgMGM2OGY1NjU1NTI4YWVkNGY5OWRhZTcxYTViMjU5ZWRj OTMyMzlmYTg5OWUyZGY3OWMwNTUyNzVjMjE3NDlhMQogIDBkNTNhNDE1YTMwN2VmMTc1MTUzYmJl NjBhNTcyYzk0MGE5MjJjYjczNmNlMTM1MzBiNjY2ZTdlYzI3OTVkNjgiCiAKLWxpYjMyZGlzYWJs ZWQ9eWVzCi1ub2Nyb3NzPXllcwotbm9waWU9eWVzCi1ub2RlYnVnPXllcwotY3JlYXRlX3dya3Ny Yz15ZXMKLQotaG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZ2NjLWdvIGZsZXggcGVybCBw eXRob24zIgotbWFrZWRlcGVuZHM9InpsaWItZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwgbGli bXBjLWRldmVsIGlzbDE1LWRldmVsIgotbm9zdHJpcF9maWxlcz0ibGliY2FmX3NpbmdsZS5hIGxp YmdjYy5hIGxpYmdjb3YuYSBsaWJnY2NfZWguYQotIGxpYmduYXJsX3BpYy5hIGxpYmduYXJsLmEg bGliZ25hdF9waWMuYSBsaWJnbmF0LmEgbGliZ21lbS5hIgotZGVwZW5kcz0iJHtwa2duYW1lfS1s aWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCitjcm9zc190cmlwbGV0PSR7X3RyaXBsZXR9Citj cm9zc193b3Jkc2l6ZT0zMgorY3Jvc3NfbGliYz1tdXNsCitjcm9zc19iaW51dGlsc192ZXJzaW9u PSR7X2JpbnV0aWxzX3ZlcnNpb259Citjcm9zc19nY2NfdmVyc2lvbj0ke19nY2NfdmVyc2lvbn0K K2Nyb3NzX211c2xfdmVyc2lvbj0ke19tdXNsX3ZlcnNpb259Citjcm9zc19saW51eF92ZXJzaW9u PSR7X2xpbnV4X3ZlcnNpb259Citjcm9zc19saWJ1Y29udGV4dF92ZXJzaW9uPSR7X2xpYnVjb250 ZXh0X3ZlcnNpb259Citjcm9zc19saWJ1Y29udGV4dF9hcmNoPWFybQorY3Jvc3NfbGludXhfYXJj aD1hcm0KK2Nyb3NzX211c2xfY2ZsYWdzPSItT3MgLW1hcmNoPWFybXY1dGUgLW1zb2Z0LWZsb2F0 IC1tZmxvYXQtYWJpPXNvZnQiCiAKIGlmIFsgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiA9ICJhcm12 NXRlbC1tdXNsIiBdOyB0aGVuCiAJYnJva2VuPSJDYW4ndCBidWlsZCBjcm9zc3Rvb2xjaGFpbiB0 byBpdHNlbGYiCiBmaQogCi1fYXBwbHlfcGF0Y2goKSB7Ci0JbG9jYWwgYXJncz0iJDEiIHBuYW1l PSIkKGJhc2VuYW1lICQyKSIKLQotCWlmIFsgISAtZiAiLiR7cG5hbWV9X2RvbmUiIF07IHRoZW4K LQkJcGF0Y2ggLU4gJGFyZ3MgLWkgJDIKLQkJdG91Y2ggLiR7cG5hbWV9X2RvbmUKLQlmaQotfQot Ci1fYmludXRpbHNfYnVpbGQoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5i aW51dGlsc19idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19u b3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGJpbnV0aWxzIGJvb3RzdHJhcFxuIgotCi0JWyAhIC1kIGJp bnV0aWxzLWJ1aWxkIF0gJiYgbWtkaXIgYmludXRpbHMtYnVpbGQKLQljZCBiaW51dGlscy1idWls ZAotCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxl dH0iCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1k aXNhYmxlLW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1k aXNhYmxlLXdlcnJvciIKLQlfYXJncys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0t d2l0aC1zeXN0ZW0temxpYiIKLQlfYXJncys9IiAke19mcHVmbGFnc30iCi0KLQkuLi9iaW51dGls cy0ke19iaW51dGlsc192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgY29uZmln dXJlLWhvc3QgJiYgbWFrZSAke21ha2Vqb2JzfQotCW1ha2UgaW5zdGFsbAotCi0JdG91Y2ggJHt3 cmtzcmN9Ly5iaW51dGlsc19idWlsZF9kb25lCi19Ci0KLV9nY2NfYm9vdHN0cmFwKCkgewotCWxv Y2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJhcF9kb25lIF0gJiYgcmV0 dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9nY2MtJHtfZ2NjX3ZlcnNpb259Ci0JZm9yIGYgaW4gJHtY QlBTX1NSQ1BLR0RJUn0vZ2NjL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1w MCAiJGYiCi0JZG9uZQotCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L2djYy9maWxlcy8qLW11 c2wucGF0Y2g7IGRvCi0JCV9hcHBseV9wYXRjaCAtcDEgIiRmIgotCWRvbmUKLQotCW1zZ19ub3Jt YWwgIkJ1aWxkaW5nIGNyb3NzIGdjYyBib290c3RyYXBcbiIKLQotCVsgISAtZCAuLi9nY2MtYm9v dHN0cmFwIF0gJiYgbWtkaXIgLi4vZ2NjLWJvb3RzdHJhcAotCWNkIC4uL2djYy1ib290c3RyYXAK LQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9 IgotCV9hcmdzKz0iIC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0td2l0 aC1uZXdsaWIiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGFuZ3VhZ2VzPWMiCi0JX2FyZ3MrPSIgLS13 aXRoLW5ld2xpYiIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlic3NwIgotCV9hcmdzKz0iIC0tZGlz YWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnF1YWRtYXRoIgotCV9hcmdzKz0iIC0t ZGlzYWJsZS10aHJlYWRzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1kZWNpbWFsLWZsb2F0IgotCV9h cmdzKz0iIC0tZGlzYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm1weCIKLQlf YXJncys9IiAtLWRpc2FibGUtbGlibXVkZmxhcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliZ29t cCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliYXRvbWljIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1z eW12ZXJzIgotCV9hcmdzKz0iIGxpYmF0X2N2X2hhdmVfaWZ1bmM9bm8iCi0JX2FyZ3MrPSIgJHtf ZnB1ZmxhZ3N9IgotCi0JQ0ZMQUdTPSItTzAgLWcwIiBDWFhGTEFHUz0iLU8wIC1nMCIgXAotCQku Li9nY2MtJHtfZ2NjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAke21ha2Vq b2JzfQotCW1ha2UgaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2Rv bmUKLX0KLQotX2xpbnV4X2hlYWRlcnMoKSB7Ci0JWyAtZiAke3dya3NyY30vLmxpbnV4X2J1aWxk X2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRp bmcgTGludXggQVBJIGhlYWRlcnMgZm9yIEFSTVxuIgotCi0JY2QgbGludXgtJHtfbGludXhfdmVy c2lvbn0KLQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9rZXJuZWwtbGliYy1oZWFkZXJzL3Bh dGNoZXMvKi5wYXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMCAkZgotCWRvbmUKLQotCW1ha2Ug QVJDSD1hcm0gaGVhZGVyc19jaGVjawotCW1ha2UgQVJDSD1hcm0gSU5TVEFMTF9IRFJfUEFUSD0k e19zeXNyb290fS91c3IgaGVhZGVyc19pbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmxpbnV4 X2J1aWxkX2RvbmUKLX0KLQotX211c2xfYnVpbGQoKSB7Ci0JWyAtZiAke3dya3NyY30vLm11c2xf YnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30vbXVzbC0ke19tdXNsX3Zl cnNpb259Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgbXVzbCBsaWJjXG4iCi0KLQkjIEFw cGx5IG11c2wgcGF0Y2hlcyBpZiB0aGVyZSBhcmUgYW55Ci0JaWYgWyAtZCAiJHtYQlBTX1NSQ1BL R0RJUn0vbXVzbC9wYXRjaGVzIiBdOyB0aGVuCi0JCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9 L211c2wvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCi0JCWRv bmUKLQlmaQotCi0JQ0M9IiR7X3RyaXBsZXR9LWdjYyIgQ0ZMQUdTPSItT3MgLXBpcGUgLWZQSUMg JHtfYXJjaGZsYWdzfSIgXAotCQkuL2NvbmZpZ3VyZSAtLXByZWZpeD0vdXNyCi0KLQltYWtlICR7 bWFrZWpvYnN9Ci0JbWFrZSBERVNURElSPSR7X3N5c3Jvb3R9IGluc3RhbGwKLQotCXRvdWNoICR7 d3Jrc3JjfS8ubXVzbF9idWlsZF9kb25lCi19Ci0KLV9saWJ1Y29udGV4dF9idWlsZCgpIHsKLQlb IC1mICR7d3Jrc3JjfS8ubGlidWNvbnRleHRfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQlj ZCAke3dya3NyY30vbGlidWNvbnRleHQtJHtfbGlidWNvbnRleHRfdmVyc2lvbn0KLQltc2dfbm9y bWFsICJCdWlsZGluZyBjcm9zcyBsaWJ1Y29udGV4dFxuIgotCi0JIyBpdCdzIG9rIGlmIHdlJ3Jl IHN0YXRpYyBvbmx5IGhlcmUKLQlDQz0iJHtfdHJpcGxldH0tZ2NjIiBBUj0iJHtfdHJpcGxldH0t YXIiIEFTPSIke190cmlwbGV0fS1hcyIgXAotCQlDRkxBR1M9Ii1PcyAtcGlwZSAke19hcmNoZmxh Z3N9IiBcCi0JCW1ha2UgQVJDSD1hcm0gbGlidWNvbnRleHQuYQotCi0JY3AgbGlidWNvbnRleHQu YSAke19zeXNyb290fS91c3IvbGliCi0KLQl0b3VjaCAke3dya3NyY30vLmxpYnVjb250ZXh0X2J1 aWxkX2RvbmUKLX0KLQotX2djY19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dy a3NyY30vLmdjY19idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1z Z19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdjYyBmaW5hbFxuIgotCi0JWyAhIC1kIGdjYy1idWls ZCBdICYmIG1rZGlyIGdjYy1idWlsZAotCWNkIGdjYy1idWlsZAotCi0JX2FyZ3M9Ii0tcHJlZml4 PS91c3IiCi0JX2FyZ3MrPSIgLS1saWJleGVjZGlyPS91c3IvbGliIgotCV9hcmdzKz0iIC0tdGFy Z2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9Igot CV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jLGFkYSxjKyssb2JqYyxvYmotYysrLGdvLGZv cnRyYW4sbHRvIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpYmFkYSIKLQlfYXJncys9IiAtLWVuYWJs ZS1sdG8iCi0JX2FyZ3MrPSIgLS1lbmFibGUtZGVmYXVsdC1waWUiCi0JX2FyZ3MrPSIgLS1lbmFi bGUtZGVmYXVsdC1zc3AiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGlic3NwIgotCV9hcmdzKz0iIC0t ZGlzYWJsZS1saWJzYW5pdGl6ZXIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9h cmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm1weCIKLQlfYXJn cys9IiAtLWRpc2FibGUtbGlibXVkZmxhcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlicXVhZG1h dGgiCi0JX2FyZ3MrPSIgLS1lbmFibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zeW12 ZXJzIgotCV9hcmdzKz0iIGxpYmF0X2N2X2hhdmVfaWZ1bmM9bm8iCi0JX2FyZ3MrPSIgJHtfZnB1 ZmxhZ3N9IgotCi0JLi4vZ2NjLSR7X2djY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQot CW1ha2UgJHttYWtlam9ic30KLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUKLX0K LQotZG9fYnVpbGQoKSB7Ci0JIyBFbnN1cmUgd2UgdXNlIHNhbmUgZW52aXJvbm1lbnQKLQl1bnNl dCBDQyBDWFggQ1BQIExEIEFTIEFSIFJBTkxJQiBPQkpEVU1QIFJFQURFTEYgTk0KLQl1bnNldCBD RkxBR1MgQ1hYRkxBR1MgQ1BQRkxBR1MgTERGTEFHUwotCWV4cG9ydCBDRkxBR1M9Ii1PcyAtcGlw ZSIgQ1hYRkxBR1M9Ii1PcyAtcGlwZSIKLQotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMg YmluIHNiaW47IGRvCi0JCWlmIFsgISAtZCAke19zeXNyb290fS91c3IvJHtmfSBdOyB0aGVuCi0J CQlta2RpciAtcCAke19zeXNyb290fS91c3IvJHtmfQotCQlmaQotCQlpZiBbICEgLWggJHtfc3lz cm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7X3N5c3Jvb3R9L3Vzci8ke2Z9ICR7X3N5 c3Jvb3R9LyR7Zn0KLQkJZmkKLQlkb25lCi0JbG4gLXNmIGxpYiAke19zeXNyb290fS91c3IvbGli MzIKLQlsbiAtc2YgdXNyL2xpYiAke19zeXNyb290fS9saWIzMgotCi0JX2JpbnV0aWxzX2J1aWxk Ci0JX2djY19ib290c3RyYXAKLQlfbGludXhfaGVhZGVycwotCV9tdXNsX2J1aWxkCi0JX2xpYnVj b250ZXh0X2J1aWxkCi0JX2djY19idWlsZAotfQotCi1kb19pbnN0YWxsKCkgewotCWZvciBmIGlu IGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47IGRvCi0JCWlmIFsgISAtZCAke0RFU1RESVJ9 LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4KLQkJCW1rZGlyIC1wICR7REVTVERJUn0vJHtf c3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkKLQkJaWYgWyAhIC1oICR7REVTVERJUn0vJHtfc3lzcm9v dH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7 Zn0gXAotCQkJCSR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtmfQotCQlmaQotCWRvbmUKLQlsbiAt c2YgbGliICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYjMyCi0JbG4gLXNmIHVzci9saWIg JHtERVNURElSfS8ke19zeXNyb290fS9saWIzMgotCi0JIyBpbnN0YWxsIGxpbnV4IEFQSSBoZWFk ZXJzCi0JY2QgJHt3cmtzcmN9L2xpbnV4LSR7X2xpbnV4X3ZlcnNpb259Ci0JbWFrZSBBUkNIPWFy bSBJTlNUQUxMX0hEUl9QQVRIPSR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyIGhlYWRlcnNfaW5z dGFsbAotCXJtIC1mICQoZmluZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlIC1u YW1lIC5pbnN0YWxsIC1vciAtbmFtZSAuLmluc3RhbGwuY21kKQotCXJtIC1yZiAke0RFU1RESVJ9 LyR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlL2RybQotCi0JIyBpbnN0YWxsIGNyb3NzIGJpbnV0aWxz Ci0JY2QgJHt3cmtzcmN9L2JpbnV0aWxzLWJ1aWxkCi0JbWFrZSBERVNURElSPSR7REVTVERJUn0g aW5zdGFsbAotCi0JIyBpbnN0YWxsIGNyb3NzIGdjYwotCWNkICR7d3Jrc3JjfS9nY2MtYnVpbGQK LQltYWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0KLQkjIG1vdmUgbGliY2MxLnNvKiB0 byB0aGUgc3lzcm9vdAotCW12ICR7REVTVERJUn0vdXNyL2xpYi9saWJjYzEuc28qICR7REVTVERJ Un0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCi0JIyBpbnN0YWxsIG11c2wgbGliYyBmb3IgdGFyZ2V0 Ci0JY2QgJHt3cmtzcmN9L211c2wtJHtfbXVzbF92ZXJzaW9ufQotCW1ha2UgREVTVERJUj0ke0RF U1RESVJ9LyR7X3N5c3Jvb3R9IGluc3RhbGwKLQotCSMgUmVtb3ZlIHVzZWxlc3MgaGVhZGVycy4K LQlybSAtcmYgJHtERVNURElSfS91c3IvbGliL2djYy8ke190cmlwbGV0fS8qL2luY2x1ZGUtZml4 ZWQvCi0KLQkjIE1ha2UgbGQtbXVzbC1hcm0uc28uMSBzeW1saW5rIHJlbGF0aXZlLgotCWxuIC1z ZiBsaWJjLnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYi9sZC1tdXNsLWFybS5zby4x Ci0KLQkjIHN5bWxpbmtzIGZvciBnbmFybCBhbmQgZ25hdCBzaGFyZWQgbGlicmFyaWVzCi0JX21h am9ydmVyPSR7X2djY192ZXJzaW9uJS4qLip9Ci0JX2FkYWxpYj11c3IvbGliL2djYy8ke190cmlw bGV0fS8ke19nY2NfdmVyc2lvbn0vYWRhbGliCi0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9 L2xpYmduYXJsLSR7X21ham9ydmVyfS5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIK LQltdiAtdiAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGliZ25hdC0ke19tYWpvcnZlcn0uc28gJHtE RVNURElSfS8ke19zeXNyb290fS91c3IvbGliCi0JbG4gLXN2ZiBsaWJnbmFybC0ke19tYWpvcnZl cn0uc28gbGliZ25hcmwuc28KLQlsbiAtc3ZmIGxpYmduYXQtJHtfbWFqb3J2ZXJ9LnNvIGxpYmdu YXQuc28KLQlybSAtdmYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXtybCx0fS5zbwotCi0J IyBXZSBuZWVkIHRvIGJ1aWxkIGxpYmF0b21pYyBpbiB0YXJnZXQgZ2NjIGFzIGdjY2dvIG5lZWRz IGl0IHRvCi0JIyBidWlsZC4uLiBidXQgaXQncyBub3QgbmVlZGVkIGF0IHJ1bnRpbWUsIHNvIHJl bW92ZSBpdCBmcm9tIHRoZQotCSMgZGVzdGRpciBzbyBpdCBkb2Vzbid0IGNvbmZsaWN0IHdpdGgg dGhlIGxpYmF0b21pYyBwYWNrYWdlCi0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS91c3Iv bGliL2xpYmF0b21pYy4qCi0KLQkjIFJlbW92ZSB1bm5lY2Vzc2FyeSBzdHVmZgotCXJtIC1mICR7 REVTVERJUn0vdXNyL2xpYiovbGliaWJlcnR5LmEKLQlybSAtcmYgJHtERVNURElSfS91c3Ivc2hh cmUKLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS97ZXRjLHZhcn0KLQlybSAtcmYgJHtE RVNURElSfS8ke19zeXNyb290fS91c3Ive3NiaW4sc2hhcmUsbGliZXhlY30KLQlybSAtZiAke0RF U1RESVJ9LyR7X3N5c3Jvb3R9L2xpYmV4ZWMKLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9 L2xpYi8qLnB5Ci0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0ve3NiaW4sbGlifQotfQot CiBjcm9zcy1hcm0tbGludXgtbXVzbGVhYmktbGliY19wYWNrYWdlKCkgewogCXNob3J0X2Rlc2Mr PSIgLSBsaWJjIGZpbGVzIgogCW5vc3RyaXA9eWVzCiAJbm9zaGxpYnByb3ZpZGVzPXllcwogCW5v dmVyaWZ5cmRlcHM9eWVzCisKIAlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgJHtfc3lzcm9vdH0K KwkJdm1vdmUgdXNyLyR7Y3Jvc3NfdHJpcGxldH0KIAl9CiB9CgpGcm9tIDFiY2E0YTgxYmEwYTM3 MGE3ODcwOTQ0ZDg2ZTgwYjhhOWY1MzZkM2MgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IHE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IEZyaSwgMjUgRGVjIDIwMjAgMjE6MDg6 MzkgKzAxMDAKU3ViamVjdDogW1BBVENIIDA4LzE2XSBjcm9zcy1hcm0tbGludXgtbXVzbGVhYmlo ZjogcmV3b3JrIHdpdGggdm9pZC1jcm9zcwoKLS0tCiBzcmNwa2dzL2Nyb3NzLWFybS1saW51eC1t dXNsZWFiaWhmL3RlbXBsYXRlIHwgMzA5ICsrLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hh bmdlZCwgMjEgaW5zZXJ0aW9ucygrKSwgMjg4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvY3Jvc3MtYXJtLWxpbnV4LW11c2xlYWJpaGYvdGVtcGxhdGUgYi9zcmNwa2dzL2Nyb3Nz LWFybS1saW51eC1tdXNsZWFiaWhmL3RlbXBsYXRlCmluZGV4IDkyZTI1ZjQ5ZTQ3Li5mOGI1MzY2 ZjIyOCAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy1hcm0tbGludXgtbXVzbGVhYmloZi90ZW1w bGF0ZQorKysgYi9zcmNwa2dzL2Nyb3NzLWFybS1saW51eC1tdXNsZWFiaWhmL3RlbXBsYXRlCkBA IC0xLDIwICsxLDE5IEBACi0jIFRlbXBsYXRlIGJ1aWxkIGZpbGUgZm9yICdjcm9zcy1hcm0tbGlu dXgtbXVzbGVhYmloZicKLSMKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3NzLWFybS1saW51eC1t dXNsZWFiaWhmJworX3RyaXBsZXQ9YXJtLWxpbnV4LW11c2xlYWJpaGYKIF9iaW51dGlsc192ZXJz aW9uPTIuMzIKIF9nY2NfdmVyc2lvbj05LjMuMAogX211c2xfdmVyc2lvbj0xLjEuMjQKIF9saW51 eF92ZXJzaW9uPTQuMTkKIF9saWJ1Y29udGV4dF92ZXJzaW9uPTAuOS4wCi0KLV90cmlwbGV0PWFy bS1saW51eC1tdXNsZWFiaWhmCi1fZnB1ZmxhZ3M9Ii0td2l0aC1hcmNoPWFybXY2IC0td2l0aC1m cHU9dmZwIC0td2l0aC1mbG9hdD1oYXJkIgotX2FyY2hmbGFncz0iLW1hcmNoPWFybXY2IC1tZnB1 PXZmcCAtbWZsb2F0LWFiaT1oYXJkIgotX3N5c3Jvb3Q9Ii91c3IvJHtfdHJpcGxldH0iCi0KIHBr Z25hbWU9Y3Jvc3MtJHtfdHJpcGxldH0KIHZlcnNpb249MC4zMwogcmV2aXNpb249Mwotc2hvcnRf ZGVzYz0iQ3Jvc3MgdG9vbGNoYWluIGZvciBBUk12NiBMRSBIYXJkIEZsb2F0IHRhcmdldCAobXVz bCkiCitidWlsZF9zdHlsZT12b2lkLWNyb3NzCitjb25maWd1cmVfYXJncz0iLS13aXRoLWFyY2g9 YXJtdjYgLS13aXRoLWZwdT12ZnAgLS13aXRoLWZsb2F0PWhhcmQiCitob3N0bWFrZWRlcGVuZHM9 InRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5dGhvbjMiCittYWtlZGVwZW5kcz0iaXNs MTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwiCitk ZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKK3Nob3J0X2Rl c2M9IlZvaWQgY3Jvc3MgdG9vbGNoYWluIGZvciAke190cmlwbGV0fSIKIG1haW50YWluZXI9Ik9y cGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCiBob21lcGFnZT0iaHR0cHM6Ly93d3cudm9p ZGxpbnV4Lm9yZy8iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBHUEwtMy4wLW9yLWxhdGVy LCBNSVQiCkBAIC0zMCwyOTUgKzI5LDI5IEBAIGNoZWNrc3VtPSIwYWI2YzU1ZGQ4NmE5MmVkNTYx OTcyYmExNWI5YjcwYThiOWY3NTU1N2Y4OTY0NDZjODJlOGIzNmU0NzNlZTA0CiAgMGM2OGY1NjU1 NTI4YWVkNGY5OWRhZTcxYTViMjU5ZWRjOTMyMzlmYTg5OWUyZGY3OWMwNTUyNzVjMjE3NDlhMQog IDBkNTNhNDE1YTMwN2VmMTc1MTUzYmJlNjBhNTcyYzk0MGE5MjJjYjczNmNlMTM1MzBiNjY2ZTdl YzI3OTVkNjgiCiAKLWxpYjMyZGlzYWJsZWQ9eWVzCi1ub2Nyb3NzPXllcwotbm9waWU9eWVzCi1u b2RlYnVnPXllcwotY3JlYXRlX3dya3NyYz15ZXMKLQotaG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2Nj LW9iamMgZ2NjLWdvIGZsZXggcGVybCBweXRob24zIgotbWFrZWRlcGVuZHM9InpsaWItZGV2ZWwg Z21wLWRldmVsIG1wZnItZGV2ZWwgbGlibXBjLWRldmVsIGlzbDE1LWRldmVsIgotbm9zdHJpcF9m aWxlcz0ibGliY2FmX3NpbmdsZS5hIGxpYmdjYy5hIGxpYmdjb3YuYSBsaWJnY2NfZWguYQotIGxp YmduYXJsX3BpYy5hIGxpYmduYXJsLmEgbGliZ25hdF9waWMuYSBsaWJnbmF0LmEgbGliZ21lbS5h IgotZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCitjcm9z c190cmlwbGV0PSR7X3RyaXBsZXR9Citjcm9zc193b3Jkc2l6ZT0zMgorY3Jvc3NfbGliYz1tdXNs Citjcm9zc19iaW51dGlsc192ZXJzaW9uPSR7X2JpbnV0aWxzX3ZlcnNpb259Citjcm9zc19nY2Nf dmVyc2lvbj0ke19nY2NfdmVyc2lvbn0KK2Nyb3NzX211c2xfdmVyc2lvbj0ke19tdXNsX3ZlcnNp b259Citjcm9zc19saW51eF92ZXJzaW9uPSR7X2xpbnV4X3ZlcnNpb259Citjcm9zc19saWJ1Y29u dGV4dF92ZXJzaW9uPSR7X2xpYnVjb250ZXh0X3ZlcnNpb259Citjcm9zc19saWJ1Y29udGV4dF9h cmNoPWFybQorY3Jvc3NfbGludXhfYXJjaD1hcm0KK2Nyb3NzX211c2xfY2ZsYWdzPSItT3MgLW1h cmNoPWFybXY2IC1tZnB1PXZmcCAtbWZsb2F0LWFiaT1oYXJkIgogCiBpZiBbICIkWEJQU19UQVJH RVRfTUFDSElORSIgPSAiYXJtdjZsLW11c2wiIF07IHRoZW4KIAlicm9rZW49IkNhbid0IGJ1aWxk IGNyb3NzdG9vbGNoYWluIHRvIGl0c2VsZiIKIGZpCiAKLV9hcHBseV9wYXRjaCgpIHsKLQlsb2Nh bCBhcmdzPSIkMSIgcG5hbWU9IiQoYmFzZW5hbWUgJDIpIgotCi0JaWYgWyAhIC1mICIuJHtwbmFt ZX1fZG9uZSIgXTsgdGhlbgotCQlwYXRjaCAtTiAkYXJncyAtaSAkMgotCQl0b3VjaCAuJHtwbmFt ZX1fZG9uZQotCWZpCi19Ci0KLV9iaW51dGlsc19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0J WyAtZiAke3dya3NyY30vLmJpbnV0aWxzX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2Qg JHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgYmludXRpbHMgYm9vdHN0cmFw XG4iCi0KLQlbICEgLWQgYmludXRpbHMtYnVpbGQgXSAmJiBta2RpciBiaW51dGlscy1idWlsZAot CWNkIGJpbnV0aWxzLWJ1aWxkCi0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAt LXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290 fSIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0aWxp YiIKLQlfYXJncys9IiAtLWRpc2FibGUtd2Vycm9yIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zaGFy ZWQiCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3RlbS16bGliIgotCV9hcmdzKz0iICR7X2ZwdWZsYWdz fSIKLQotCS4uL2JpbnV0aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdz fQotCi0JbWFrZSBjb25maWd1cmUtaG9zdCAmJiBtYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0 YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmJpbnV0aWxzX2J1aWxkX2RvbmUKLX0KLQotX2djY19i b290c3RyYXAoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYm9vdHN0 cmFwX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L2djYy0ke19nY2NfdmVyc2lv bn0KLQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9nY2MvcGF0Y2hlcy8qLnBhdGNoOyBkbwot CQlfYXBwbHlfcGF0Y2ggLXAwICIkZiIKLQlkb25lCi0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJ Un0vZ2NjL2ZpbGVzLyotbXVzbC5wYXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMSAiJGYiCi0J ZG9uZQotCi0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2NjIGJvb3RzdHJhcFxuIgotCi0J WyAhIC1kIC4uL2djYy1ib290c3RyYXAgXSAmJiBta2RpciAuLi9nY2MtYm9vdHN0cmFwCi0JY2Qg Li4vZ2NjLWJvb3RzdHJhcAotCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10 YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0i Ci0JX2FyZ3MrPSIgLS13aXRoLW5ld2xpYiIKLQlfYXJncys9IiAtLWVuYWJsZS1sYW5ndWFnZXM9 YyIKLQlfYXJncys9IiAtLXdpdGgtbmV3bGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzc3Ai Ci0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlicXVhZG1h dGgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXRocmVhZHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWRl Y2ltYWwtZmxvYXQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWRp c2FibGUtbGlibXB4IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtdWRmbGFwIgotCV9hcmdzKz0i IC0tZGlzYWJsZS1saWJnb21wIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJhdG9taWMiCi0JX2Fy Z3MrPSIgLS1kaXNhYmxlLXN5bXZlcnMiCi0JX2FyZ3MrPSIgbGliYXRfY3ZfaGF2ZV9pZnVuYz1u byIKLQlfYXJncys9IiAke19mcHVmbGFnc30iCi0KLQlDRkxBR1M9Ii1PMCAtZzAiIENYWEZMQUdT PSItTzAgLWcwIiBcCi0JCS4uL2djYy0ke19nY2NfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9 Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30v LmdjY19ib290c3RyYXBfZG9uZQotfQotCi1fbGludXhfaGVhZGVycygpIHsKLQlbIC1mICR7d3Jr c3JjfS8ubGludXhfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQlt c2dfbm9ybWFsICJCdWlsZGluZyBMaW51eCBBUEkgaGVhZGVycyBmb3IgQVJNXG4iCi0KLQljZCBs aW51eC0ke19saW51eF92ZXJzaW9ufQotCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L2tlcm5l bC1saWJjLWhlYWRlcnMvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAwICRm Ci0JZG9uZQotCi0JbWFrZSBBUkNIPWFybSBoZWFkZXJzX2NoZWNrCi0JbWFrZSBBUkNIPWFybSBJ TlNUQUxMX0hEUl9QQVRIPSR7X3N5c3Jvb3R9L3VzciBoZWFkZXJzX2luc3RhbGwKLQotCXRvdWNo ICR7d3Jrc3JjfS8ubGludXhfYnVpbGRfZG9uZQotfQotCi1fbXVzbF9idWlsZCgpIHsKLQlbIC1m ICR7d3Jrc3JjfS8ubXVzbF9idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3Jj fS9tdXNsLSR7X211c2xfdmVyc2lvbn0KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBtdXNs IGxpYmNcbiIKLQotCSMgQXBwbHkgbXVzbCBwYXRjaGVzIGlmIHRoZXJlIGFyZSBhbnkKLQlpZiBb IC1kICIke1hCUFNfU1JDUEtHRElSfS9tdXNsL3BhdGNoZXMiIF07IHRoZW4KLQkJZm9yIGYgaW4g JHtYQlBTX1NSQ1BLR0RJUn0vbXVzbC9wYXRjaGVzLyoucGF0Y2g7IGRvCi0JCQlfYXBwbHlfcGF0 Y2ggLXAwICIkZiIKLQkJZG9uZQotCWZpCi0KLQlDQz0iJHtfdHJpcGxldH0tZ2NjIiBDRkxBR1M9 Ii1PcyAtcGlwZSAtZlBJQyAke19hcmNoZmxhZ3N9IiBcCi0JCS4vY29uZmlndXJlIC0tcHJlZml4 PS91c3IKLQotCW1ha2UgJHttYWtlam9ic30KLQltYWtlIERFU1RESVI9JHtfc3lzcm9vdH0gaW5z dGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5tdXNsX2J1aWxkX2RvbmUKLX0KLQotX2xpYnVjb250 ZXh0X2J1aWxkKCkgewotCVsgLWYgJHt3cmtzcmN9Ly5saWJ1Y29udGV4dF9idWlsZF9kb25lIF0g JiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9saWJ1Y29udGV4dC0ke19saWJ1Y29udGV4dF92 ZXJzaW9ufQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGxpYnVjb250ZXh0XG4iCi0KLQkj IGl0J3Mgb2sgaWYgd2UncmUgc3RhdGljIG9ubHkgaGVyZQotCUNDPSIke190cmlwbGV0fS1nY2Mi IEFSPSIke190cmlwbGV0fS1hciIgQVM9IiR7X3RyaXBsZXR9LWFzIiBcCi0JCUNGTEFHUz0iLU9z IC1waXBlICR7X2FyY2hmbGFnc30iIFwKLQkJbWFrZSBBUkNIPWFybSBsaWJ1Y29udGV4dC5hCi0K LQljcCBsaWJ1Y29udGV4dC5hICR7X3N5c3Jvb3R9L3Vzci9saWIKLQotCXRvdWNoICR7d3Jrc3Jj fS8ubGlidWNvbnRleHRfYnVpbGRfZG9uZQotfQotCi1fZ2NjX2J1aWxkKCkgewotCWxvY2FsIF9h cmdzCi0JWyAtZiAke3dya3NyY30vLmdjY19idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNk ICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdjYyBmaW5hbFxuIgotCi0J WyAhIC1kIGdjYy1idWlsZCBdICYmIG1rZGlyIGdjYy1idWlsZAotCWNkIGdjYy1idWlsZAotCi0J X2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS1saWJleGVjZGlyPS91c3IvbGliIgot CV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1zeXNyb290 PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jLGFkYSxjKyssb2Jq YyxvYmotYysrLGdvLGZvcnRyYW4sbHRvIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpYmFkYSIKLQlf YXJncys9IiAtLWVuYWJsZS1sdG8iCi0JX2FyZ3MrPSIgLS1lbmFibGUtZGVmYXVsdC1waWUiCi0J X2FyZ3MrPSIgLS1lbmFibGUtZGVmYXVsdC1zc3AiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGlic3Nw IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzYW5pdGl6ZXIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LW11bHRpbGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LWxpYnF1YWRtYXRoIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtcHgiCi0JX2FyZ3MrPSIgLS1k aXNhYmxlLWxpYm11ZGZsYXAiCi0JX2FyZ3MrPSIgLS1lbmFibGUtc2hhcmVkIgotCV9hcmdzKz0i IC0tZGlzYWJsZS1zeW12ZXJzIgotCV9hcmdzKz0iIGxpYmF0X2N2X2hhdmVfaWZ1bmM9bm8iCi0J X2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9IgotCi0JLi4vZ2NjLSR7X2djY192ZXJzaW9ufS9jb25maWd1 cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2Nj X2J1aWxkX2RvbmUKLX0KLQotZG9fYnVpbGQoKSB7Ci0JIyBFbnN1cmUgd2UgdXNlIHNhbmUgZW52 aXJvbm1lbnQKLQl1bnNldCBDQyBDWFggQ1BQIExEIEFTIEFSIFJBTkxJQiBPQkpEVU1QIFJFQURF TEYgTk0KLQl1bnNldCBDRkxBR1MgQ1hYRkxBR1MgQ1BQRkxBR1MgTERGTEFHUwotCWV4cG9ydCBD RkxBR1M9Ii1PcyAtcGlwZSIgQ1hYRkxBR1M9Ii1PcyAtcGlwZSIKLQotCWZvciBmIGluIGluY2x1 ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47IGRvCi0JCWlmIFsgISAtZCAke19zeXNyb290fS91c3Iv JHtmfSBdOyB0aGVuCi0JCQlta2RpciAtcCAke19zeXNyb290fS91c3IvJHtmfQotCQlmaQotCQlp ZiBbICEgLWggJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7X3N5c3Jvb3R9 L3Vzci8ke2Z9ICR7X3N5c3Jvb3R9LyR7Zn0KLQkJZmkKLQlkb25lCi0JbG4gLXNmIGxpYiAke19z eXNyb290fS91c3IvbGliMzIKLQlsbiAtc2YgdXNyL2xpYiAke19zeXNyb290fS9saWIzMgotCi0J X2JpbnV0aWxzX2J1aWxkCi0JX2djY19ib290c3RyYXAKLQlfbGludXhfaGVhZGVycwotCV9tdXNs X2J1aWxkCi0JX2xpYnVjb250ZXh0X2J1aWxkCi0JX2djY19idWlsZAotfQotCi1kb19pbnN0YWxs KCkgewotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47IGRvCi0JCWlmIFsg ISAtZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4KLQkJCW1rZGlyIC1w ICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkKLQkJaWYgWyAhIC1oICR7REVT VERJUn0vJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7REVTVERJUn0vJHtf c3lzcm9vdH0vdXNyLyR7Zn0gXAotCQkJCSR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtmfQotCQlm aQotCWRvbmUKLQlsbiAtc2YgbGliICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYjMyCi0J bG4gLXNmIHVzci9saWIgJHtERVNURElSfS8ke19zeXNyb290fS9saWIzMgotCi0JIyBpbnN0YWxs IGxpbnV4IEFQSSBoZWFkZXJzCi0JY2QgJHt3cmtzcmN9L2xpbnV4LSR7X2xpbnV4X3ZlcnNpb259 Ci0JbWFrZSBBUkNIPWFybSBJTlNUQUxMX0hEUl9QQVRIPSR7REVTVERJUn0vJHtfc3lzcm9vdH0v dXNyIGhlYWRlcnNfaW5zdGFsbAotCXJtIC1mICQoZmluZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9 L3Vzci9pbmNsdWRlIC1uYW1lIC5pbnN0YWxsIC1vciAtbmFtZSAuLmluc3RhbGwuY21kKQotCXJt IC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlL2RybQotCi0JIyBpbnN0YWxs IGNyb3NzIGJpbnV0aWxzCi0JY2QgJHt3cmtzcmN9L2JpbnV0aWxzLWJ1aWxkCi0JbWFrZSBERVNU RElSPSR7REVTVERJUn0gaW5zdGFsbAotCi0JIyBpbnN0YWxsIGNyb3NzIGdjYwotCWNkICR7d3Jr c3JjfS9nY2MtYnVpbGQKLQltYWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0KLQkjIG1v dmUgbGliY2MxLnNvKiB0byB0aGUgc3lzcm9vdAotCW12ICR7REVTVERJUn0vdXNyL2xpYi9saWJj YzEuc28qICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCi0JIyBpbnN0YWxsIG11c2wg bGliYyBmb3IgdGFyZ2V0Ci0JY2QgJHt3cmtzcmN9L211c2wtJHtfbXVzbF92ZXJzaW9ufQotCW1h a2UgREVTVERJUj0ke0RFU1RESVJ9LyR7X3N5c3Jvb3R9IGluc3RhbGwKLQotCSMgUmVtb3ZlIHVz ZWxlc3MgaGVhZGVycy4KLQlybSAtcmYgJHtERVNURElSfS91c3IvbGliL2djYy8ke190cmlwbGV0 fS8qL2luY2x1ZGUtZml4ZWQvCi0KLQkjIE1ha2UgbGQtbXVzbC1hcm1oZi5zby4xIHN5bWxpbmsg cmVsYXRpdmUuCi0JbG4gLXNmIGxpYmMuc28gJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGli L2xkLW11c2wtYXJtaGYuc28uMQotCi0JIyBzeW1saW5rcyBmb3IgZ25hcmwgYW5kIGduYXQgc2hh cmVkIGxpYnJhcmllcwotCV9tYWpvcnZlcj0ke19nY2NfdmVyc2lvbiUuKi4qfQotCV9hZGFsaWI9 dXNyL2xpYi9nY2MvJHtfdHJpcGxldH0vJHtfZ2NjX3ZlcnNpb259L2FkYWxpYgotCW12IC12ICR7 REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmFybC0ke19tYWpvcnZlcn0uc28gJHtERVNURElSfS8k e19zeXNyb290fS91c3IvbGliCi0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXQt JHtfbWFqb3J2ZXJ9LnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCWxuIC1zdmYg bGliZ25hcmwtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXJsLnNvCi0JbG4gLXN2ZiBsaWJnbmF0LSR7 X21ham9ydmVyfS5zbyBsaWJnbmF0LnNvCi0Jcm0gLXZmICR7REVTVERJUn0vJHtfYWRhbGlifS9s aWJnbmF7cmwsdH0uc28KLQotCSMgV2UgbmVlZCB0byBidWlsZCBsaWJhdG9taWMgaW4gdGFyZ2V0 IGdjYyBhcyBnY2NnbyBuZWVkcyBpdCB0bwotCSMgYnVpbGQuLi4gYnV0IGl0J3Mgbm90IG5lZWRl ZCBhdCBydW50aW1lLCBzbyByZW1vdmUgaXQgZnJvbSB0aGUKLQkjIGRlc3RkaXIgc28gaXQgZG9l c24ndCBjb25mbGljdCB3aXRoIHRoZSBsaWJhdG9taWMgcGFja2FnZQotCXJtIC1mICR7REVTVERJ Un0vJHtfc3lzcm9vdH0vdXNyL2xpYi9saWJhdG9taWMuKgotCi0JIyBSZW1vdmUgdW5uZWNlc3Nh cnkgc3R1ZmYKLQlybSAtZiAke0RFU1RESVJ9L3Vzci9saWIqL2xpYmliZXJ0eS5hCi0Jcm0gLXJm ICR7REVTVERJUn0vdXNyL3NoYXJlCi0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0ve2V0 Yyx2YXJ9Ci0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL3tzYmluLHNoYXJlLGxp YmV4ZWN9Ci0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS9saWJleGVjCi0Jcm0gLWYgJHtE RVNURElSfS8ke19zeXNyb290fS9saWIvKi5weQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jv b3R9L3tzYmluLGxpYn0KLX0KLQogY3Jvc3MtYXJtLWxpbnV4LW11c2xlYWJpaGYtbGliY19wYWNr YWdlKCkgewogCXNob3J0X2Rlc2MrPSIgLSBsaWJjIGZpbGVzIgogCW5vc3RyaXA9eWVzCiAJbm9z aGxpYnByb3ZpZGVzPXllcwogCW5vdmVyaWZ5cmRlcHM9eWVzCisKIAlwa2dfaW5zdGFsbCgpIHsK LQkJdm1vdmUgJHtfc3lzcm9vdH0KKwkJdm1vdmUgdXNyLyR7Y3Jvc3NfdHJpcGxldH0KIAl9CiB9 CgpGcm9tIGFhMjg5MzEyM2Y3MjAzMTE0NWUyN2JiMWZlNmI1OWVmNDA3NmYwMGQgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IHE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IEZy aSwgMjUgRGVjIDIwMjAgMjE6MzY6MzMgKzAxMDAKU3ViamVjdDogW1BBVENIIDA5LzE2XSBjcm9z cy1hcm12N2wtbGludXgtZ251ZWFiaWhmOiByZXdvcmsgd2l0aCB2b2lkLWNyb3NzCgotLS0KIHNy Y3BrZ3MvY3Jvc3MtYXJtdjdsLWxpbnV4LWdudWVhYmloZi90ZW1wbGF0ZSB8IDM2OSArLS0tLS0t LS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAyMSBpbnNlcnRpb25zKCspLCAzNDggZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jcm9zcy1hcm12N2wtbGludXgtZ251ZWFiaWhm L3RlbXBsYXRlIGIvc3JjcGtncy9jcm9zcy1hcm12N2wtbGludXgtZ251ZWFiaWhmL3RlbXBsYXRl CmluZGV4IDk2OTY2OTdkY2ViLi43MDY2NjJlNWVkMiAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9z cy1hcm12N2wtbGludXgtZ251ZWFiaWhmL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY3Jvc3MtYXJt djdsLWxpbnV4LWdudWVhYmloZi90ZW1wbGF0ZQpAQCAtMSwzNzkgKzEsNTIgQEAKLSMgVGVtcGxh dGUgYnVpbGQgZmlsZSBmb3IgJ2Nyb3NzLWFybXY3bC1saW51eC1nbnVlYWJpaGYnCi0jCisjIFRl bXBsYXRlIGZpbGUgZm9yICdjcm9zcy1hcm12N2wtbGludXgtZ251ZWFiaWhmJworX3RyaXBsZXQ9 YXJtdjdsLWxpbnV4LWdudWVhYmloZgogX2JpbnV0aWxzX3ZlcnNpb249Mi4zMgogX2djY192ZXJz aW9uPTkuMy4wCiBfZ2xpYmNfdmVyc2lvbj0yLjMwCiBfbGludXhfdmVyc2lvbj00LjE5Ci0KLV90 cmlwbGV0PWFybXY3bC1saW51eC1nbnVlYWJpaGYKLV9mcHVmbGFncz0iLS13aXRoLWFyY2g9YXJt djctYSAtLXdpdGgtZnB1PXZmcHYzIC0td2l0aC1mbG9hdD1oYXJkIgotX2FyY2hmbGFncz0iLW1h cmNoPWFybXY3LWEgLW1mcHU9dmZwdjMgLW1mbG9hdC1hYmk9aGFyZCIKLV9zeXNyb290PSIvdXNy LyR7X3RyaXBsZXR9IgotCiBwa2duYW1lPWNyb3NzLSR7X3RyaXBsZXR9CiB2ZXJzaW9uPTAuMzMK IHJldmlzaW9uPTIKLXNob3J0X2Rlc2M9IkdOVSBDcm9zcyB0b29sY2hhaW4gZm9yIHRoZSAke190 cmlwbGV0fSBMRSB0YXJnZXQgKGJpbnV0aWxzL2djYy9nbGliYykiCitidWlsZF9zdHlsZT12b2lk LWNyb3NzCitjb25maWd1cmVfYXJncz0iLS13aXRoLWFyY2g9YXJtdjctYSAtLXdpdGgtZnB1PXZm cHYzIC0td2l0aC1mbG9hdD1oYXJkIgoraG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZ2Nj LWdvIGZsZXggcGVybCBweXRob24zIgorbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1k ZXZlbCB6bGliLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIgorZGVwZW5kcz0iJHtwa2duYW1l fS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCitzaG9ydF9kZXNjPSJWb2lkIGNyb3NzIHRv b2xjaGFpbiBmb3IgJHtfdHJpcGxldH0iCiBtYWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZv aWRsaW51eC5vcmc+IgotaG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51eC5vcmcvIgogbGlj ZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR1BMLTMuMC1vci1sYXRlciwgTEdQTC0yLjEtb3ItbGF0 ZXIiCitob21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBkaXN0ZmlsZXM9Igog ICR7R05VX1NJVEV9L2JpbnV0aWxzL2JpbnV0aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259LnRhci54 egogICR7R05VX1NJVEV9L2djYy9nY2MtJHtfZ2NjX3ZlcnNpb259L2djYy0ke19nY2NfdmVyc2lv bn0udGFyLnh6Ci0gaHR0cDovL2Z0cC5nbnUub3JnL2dudS9nbGliYy9nbGliYy0ke19nbGliY192 ZXJzaW9ufS50YXIueHoKKyAke0dOVV9TSVRFfS9nbGliYy9nbGliYy0ke19nbGliY192ZXJzaW9u fS50YXIueHoKICAke0tFUk5FTF9TSVRFfS9rZXJuZWwvdjQueC9saW51eC0ke19saW51eF92ZXJz aW9ufS50YXIueHoiCiBjaGVja3N1bT0iMGFiNmM1NWRkODZhOTJlZDU2MTk3MmJhMTViOWI3MGE4 YjlmNzU1NTdmODk2NDQ2YzgyZThiMzZlNDczZWUwNAogIDcxZTE5Nzg2NzYxMWY2MDU0YWExMTE5 YjEzYTBjMGFiYWMxMjgzNDc2NWZlMmQ4MWYzNWFjNTdmODRmNzQyZDEKICBlMmM0MTE0ZTU2OWFm YmU3ZWRiYzI5MTMxYTQzYmU4MzM4NTBhYjlhNDU5ZDgxYmViMjU4ODAxNmQyYmJiOGFmCiAgMGM2 OGY1NjU1NTI4YWVkNGY5OWRhZTcxYTViMjU5ZWRjOTMyMzlmYTg5OWUyZGY3OWMwNTUyNzVjMjE3 NDlhMSIKIAotbGliMzJkaXNhYmxlZD15ZXMKLW5vY3Jvc3M9eWVzCi1ub3BpZT15ZXMKLW5vZGVi dWc9eWVzCi1jcmVhdGVfd3Jrc3JjPXllcwotCi1ob3N0bWFrZWRlcGVuZHM9InRhciBnY2Mtb2Jq YyBnY2MtZ28gZmxleCBwZXJsIHB5dGhvbjMiCi1tYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGli bXBjLWRldmVsIHpsaWItZGV2ZWwiCi1kZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9u fV8ke3JldmlzaW9ufSIKLW5vc3RyaXBfZmlsZXM9ImxpYmNhZl9zaW5nbGUuYSBsaWJnY2MuYSBs aWJnY292LmEgbGliZ2NjX2VoLmEKLSBsaWJnbmFybF9waWMuYSBsaWJnbmFybC5hIGxpYmduYXRf cGljLmEgbGliZ25hdC5hIGxpYmdtZW0uYSIKLQotaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMiICE9 ICJnbGliYyIgXTsgdGhlbgotCWJyb2tlbj0iZ2xpYmMgY3Jvc3N0b29sY2hhaW4gb25seSBhdmFp bGFibGUgb24gZ2xpYmMiCi1maQorY3Jvc3NfdHJpcGxldD0ke190cmlwbGV0fQorY3Jvc3Nfd29y ZHNpemU9MzIKK2Nyb3NzX2xpYmM9Z2xpYmMKK2Nyb3NzX2JpbnV0aWxzX3ZlcnNpb249JHtfYmlu dXRpbHNfdmVyc2lvbn0KK2Nyb3NzX2djY192ZXJzaW9uPSR7X2djY192ZXJzaW9ufQorY3Jvc3Nf Z2xpYmNfdmVyc2lvbj0ke19nbGliY192ZXJzaW9ufQorY3Jvc3NfbGludXhfdmVyc2lvbj0ke19s aW51eF92ZXJzaW9ufQorY3Jvc3NfbGludXhfYXJjaD1hcm0KK2Nyb3NzX2dsaWJjX2NmbGFncz0i LU8yIC1tYXJjaD1hcm12Ny1hIC1tZnB1PXZmcHYzIC1tZmxvYXQtYWJpPWhhcmQiCiAKIGlmIFsg IiRYQlBTX1RBUkdFVF9NQUNISU5FIiA9ICJhcm12N2wiIF07IHRoZW4KIAlicm9rZW49IkNhbid0 IGJ1aWxkIGNyb3NzdG9vbGNoYWluIHRvIGl0c2VsZiIKIGZpCiAKLV9hcHBseV9wYXRjaCgpIHsK LQlsb2NhbCBhcmdzPSIkMSIgcG5hbWU9IiQoYmFzZW5hbWUgJDIpIgotCi0JaWYgWyAhIC1mICIu JHtwbmFtZX1fZG9uZSIgXTsgdGhlbgotCQlwYXRjaCAtTiAkYXJncyAtaSAkMgotCQl0b3VjaCAu JHtwbmFtZX1fZG9uZQotCWZpCi19Ci0KLV9saW51eF9oZWFkZXJzKCkgewotCVsgLWYgJHt3cmtz cmN9Ly5saW51eF9idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1z Z19ub3JtYWwgIkJ1aWxkaW5nIExpbnV4IEFQSSBoZWFkZXJzIGZvciBBUk1cbiIKLQotCWNkIGxp bnV4LSR7X2xpbnV4X3ZlcnNpb259Ci0KLQltYWtlIEFSQ0g9YXJtIGhlYWRlcnNfY2hlY2sKLQlt YWtlIEFSQ0g9YXJtIElOU1RBTExfSERSX1BBVEg9JHtfc3lzcm9vdH0vdXNyIGhlYWRlcnNfaW5z dGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5saW51eF9idWlsZF9kb25lCi19Ci0KLV9iaW51dGls c19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmJpbnV0aWxzX2J1 aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVp bGRpbmcgY3Jvc3MgYmludXRpbHNcbiIKLQlbICEgLWQgYmludXRpbHMtYnVpbGQgXSAmJiBta2Rp ciBiaW51dGlscy1idWlsZAotCWNkIGJpbnV0aWxzLWJ1aWxkCi0KLQlfYXJncz0iLS1wcmVmaXg9 L3VzciIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgt c3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0i IC0tZGlzYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9hcmdz Kz0iIC0tZGlzYWJsZS13ZXJyb3IiCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3RlbS16bGliIgotCi0J Li4vYmludXRpbHMtJHtfYmludXRpbHNfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQlt YWtlIGNvbmZpZ3VyZS1ob3N0Ci0JbWFrZSAke21ha2Vqb2JzfQotCW1ha2UgaW5zdGFsbAotCi0J dG91Y2ggJHt3cmtzcmN9Ly5iaW51dGlsc19idWlsZF9kb25lCi19Ci0KLV9nY2NfYm9vdHN0cmFw KCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJhcF9kb25l IF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9nY2MtJHtfZ2NjX3ZlcnNpb259Ci0JZm9y IGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2NjL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJX2FwcGx5 X3BhdGNoIC1wMCAiJGYiCi0JZG9uZQotCi0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2Nj IGJvb3RzdHJhcFxuIgotCi0JWyAhIC1kIC4uL2djYy1ib290c3RyYXAgXSAmJiBta2RpciAuLi9n Y2MtYm9vdHN0cmFwCi0JY2QgLi4vZ2NjLWJvb3RzdHJhcAotCi0JX2FyZ3M9Ii0tcHJlZml4PS91 c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRob3V0 LWhlYWRlcnMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUt c2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJxdWFkbWF0aCIKLQlfYXJncys9IiAtLWRp c2FibGUtZGVjaW1hbC1mbG9hdCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliZ29tcCIKLQlfYXJn cys9IiAtLWRpc2FibGUtbGlibXB4IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtdWRmbGFwIgot CV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYml0bSIK LQlfYXJncys9IiAtLWRpc2FibGUtbGliYXRvbWljIgotCV9hcmdzKz0iIC0tZGlzYWJsZS10aHJl YWRzIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jIgotCV9hcmdzKz0iIC0tZGlzYWJs ZS1zamxqLWV4Y2VwdGlvbnMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9hcmdz Kz0iIC0td2l0aC1nbnUtbGQiCi0JX2FyZ3MrPSIgLS13aXRoLWdudS1hcyIKLQlfYXJncys9IiAk e19mcHVmbGFnc30iCi0KLQlDRkxBR1M9Ii1PMCAtZzAiIENYWEZMQUdTPSItTzAgLWcwIiBcCi0J CS4uL2djYy0ke19nY2NfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFr ZWpvYnN9Ci0JbWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmdjY19ib290c3RyYXBf ZG9uZQotfQotCi1fZ2xpYmNfaGVhZGVycygpIHsKLQlsb2NhbCBfYXJncyBmCi0KLQlbIC1mICR7 d3Jrc3JjfS8uZ2xpYmNfaGVhZGVyc19kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3Jj fS9nbGliYy0ke19nbGliY192ZXJzaW9ufQotCWlmIFsgLWQgIiR7WEJQU19TUkNQS0dESVJ9L2ds aWJjL3BhdGNoZXMiIF07IHRoZW4KLQkJZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2xpYmMv cGF0Y2hlcy8qLnBhdGNoOyBkbwotCQkJX2FwcGx5X3BhdGNoIC1wMSAiJGYiCi0JCWRvbmUKLQlm aQotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2xpYmMgaGVh ZGVyc1xuIgotCi0JWyAhIC1kIGdsaWJjLWhlYWRlcnMgXSAmJiBta2RpciBnbGliYy1oZWFkZXJz Ci0JY2QgZ2xpYmMtaGVhZGVycwotCi0JZWNobyAibGliY19jdl9mb3JjZWRfdW53aW5kPXllcyIg PiBjb25maWcuY2FjaGUKLQllY2hvICJsaWJjX2N2X2NfY2xlYW51cD15ZXMiID4+IGNvbmZpZy5j YWNoZQotCi0JZXhwb3J0IENDPSIke190cmlwbGV0fS1nY2MiIExEPSIke190cmlwbGV0fS1sZCIg XAotCQlBUz0iJHtfdHJpcGxldH0tYXMiIENQUD0iJHtfdHJpcGxldH0tY3BwIgotCi0JX2FyZ3M9 Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS1ob3N0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0i IC0td2l0aC1oZWFkZXJzPSR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlIgotCV9hcmdzKz0iIC0tY29u ZmlnLWNhY2hlIgotCV9hcmdzKz0iIC0tZW5hYmxlLW9ic29sZXRlLXJwYyIKLQlfYXJncys9IiAt LWVuYWJsZS1vYnNvbGV0ZS1uc2wiCi0JX2FyZ3MrPSIgLS1lbmFibGUta2VybmVsPTIuNi4yNyIK LQlfYXJncys9IiAke19mcHVmbGFnc30iCi0KLQkuLi9nbGliYy0ke19nbGliY192ZXJzaW9ufS9j b25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgLWsgaW5zdGFsbC1oZWFkZXJzIGNyb3NzX2NvbXBp bGluZz15ZXMgXAotCQlpbnN0YWxsX3Jvb3Q9JHtfc3lzcm9vdH0KLQotCXRvdWNoICR7d3Jrc3Jj fS8uZ2xpYmNfaGVhZGVyc19kb25lCi19Ci0KLV9nbGliY19idWlsZCgpIHsKLQlsb2NhbCBfYXJn cwotCi0JWyAtZiAke3dya3NyY30vLmdsaWJjX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0J Y2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2xpYmNcbiIKLQotCVsg ISAtZCBnbGliYy1idWlsZCBdICYmIG1rZGlyIGdsaWJjLWJ1aWxkCi0JY2QgZ2xpYmMtYnVpbGQK LQotCWVjaG8gInNsaWJkaXI9L3Vzci9saWIzMiIgPiBjb25maWdwYXJtcwotCi0JZWNobyAibGli Y19jdl9mb3JjZWRfdW53aW5kPXllcyIgPiBjb25maWcuY2FjaGUKLQllY2hvICJsaWJjX2N2X2Nf Y2xlYW51cD15ZXMiID4+IGNvbmZpZy5jYWNoZQotCi0JZXhwb3J0IENDPSIke190cmlwbGV0fS1n Y2MiIExEPSIke190cmlwbGV0fS1sZCIgXAotCQlBUz0iJHtfdHJpcGxldH0tYXMiIENQUD0iJHtf dHJpcGxldH0tY3BwIgotCWV4cG9ydCBDRkxBR1M9Ii1PcyAtcGlwZSAke19hcmNoZmxhZ3N9Igot Ci0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS1saWJkaXI9L3Vzci9saWIzMiIK LQlfYXJncys9IiAtLWhvc3Q9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLWhlYWRlcnM9 JHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUiCi0JX2FyZ3MrPSIgLS1jb25maWctY2FjaGUiCi0JX2Fy Z3MrPSIgLS1kaXNhYmxlLXByb2ZpbGUiCi0JX2FyZ3MrPSIgLS1lbmFibGUtb2Jzb2xldGUtcnBj IgotCV9hcmdzKz0iIC0tZW5hYmxlLW9ic29sZXRlLW5zbCIKLQlfYXJncys9IiAtLWRpc2FibGUt d2Vycm9yIgotCV9hcmdzKz0iIC0tZW5hYmxlLWtlcm5lbD0yLjYuMjciCi0JX2FyZ3MrPSIgJHtf ZnB1ZmxhZ3N9IgotCi0JLi4vZ2xpYmMtJHtfZ2xpYmNfdmVyc2lvbn0vY29uZmlndXJlICR7X2Fy Z3N9Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsX3Jvb3Q9JHtfc3lzcm9vdH0g aW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nbGliY19idWlsZF9kb25lCi19Ci0KLV9nY2Nf YnVpbGQoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYnVpbGRfZG9u ZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBj cm9zcyBnY2MgZmluYWxcbiIKLQotCVsgISAtZCBnY2MtYnVpbGQgXSAmJiBta2RpciBnY2MtYnVp bGQKLQljZCBnY2MtYnVpbGQKLQotCXVuc2V0IExEIEFTIENQUAotCWV4cG9ydCBDQz0iZ2NjIiBD RkxBR1M9Ii1PcyAtcGlwZSIKLQotCSMgTWFrZSB0aGlzIGxpbmsgdG8gdGFyZ2V0IGxpYnMuCi0J aWYgWyAhIC1mIC5zZWRfc3Vic3RfZG9uZSBdOyB0aGVuCi0JCXNlZCAtZSAicywgL2xpYi8sICR7 X3N5c3Jvb3R9L2xpYi8sZztzLCAvdXNyL2xpYi8sICR7X3N5c3Jvb3R9L3Vzci9saWIvLGciIFwK LQkJCS1pICR7X3N5c3Jvb3R9L2xpYi9saWJjLnNvCi0JCXNlZCAtZSAicywgL2xpYjMyLywgJHtf c3lzcm9vdH0vbGliMzIvLGc7cywgL3Vzci9saWIzMi8sICR7X3N5c3Jvb3R9L3Vzci9saWIzMi8s ZyIgXAotCQkJLWkgJHtfc3lzcm9vdH0vbGliL2xpYmMuc28KLQkJdG91Y2ggLnNlZF9zdWJzdF9k b25lCi0JZmkKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tbGliZXhlY2Rp cj0vdXNyL2xpYiIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAt LXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLWVuYWJsZS1sYW5ndWFnZXM9 YyxhZGEsYysrLG9iamMsb2JqLWMrKyxnbyxmb3J0cmFuLGx0byIKLQlfYXJncys9IiAtLXdpdGgt Z251LWFzIgotCV9hcmdzKz0iIC0td2l0aC1nbnUtbGQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11 bHRpbGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS13ZXJyb3IiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtc2psai1leGNlcHRpb25zIgotCV9hcmdzKz0iIC0t ZW5hYmxlLXRocmVhZHM9cG9zaXgiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbG9uZy1sb25neCIKLQlf YXJncys9IiAtLWVuYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGlua2VyLWJ1aWxk LWlkIgotCV9hcmdzKz0iIC0tZW5hYmxlLWdudS11bmlxdWUtb2JqZWN0IgotCV9hcmdzKz0iIC0t ZW5hYmxlLWxpYmFkYSIKLQlfYXJncys9IiAtLWVuYWJsZS1sdG8iCi0JX2FyZ3MrPSIgLS1lbmFi bGUtZGVmYXVsdC1waWUiCi0JX2FyZ3MrPSIgLS1lbmFibGUtZGVmYXVsdC1zc3AiCi0JX2FyZ3Mr PSIgLS1kaXNhYmxlLWxpYnF1YWRtYXRoIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzc3AiCi0J X2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm1weCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXVkZmxh cCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlic2FuaXRpemVyIgotCV9hcmdzKz0iIC0tZGlzYWJs ZS1saWJjaWxrcnRzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJpdG0iCi0JX2FyZ3MrPSIgLS1k aXNhYmxlLWxpYnZ0diIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlic3RkY3h4LXBjaCIKLQlfYXJn cys9IiAtLWVuYWJsZS1saWJzdGRjeHgtdGltZSIKLQlfYXJncys9IiAtLXdpdGgtbGlua2VyLWhh c2gtc3R5bGU9Z251IgotCV9hcmdzKz0iICR7X2ZwdWZsYWdzfSIKLQotCS4uL2djYy0ke19nY2Nf dmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0KLQl0b3Vj aCAke3dya3NyY30vLmdjY19idWlsZF9kb25lCi19Ci0KLWRvX2J1aWxkKCkgewotCWZvciBmIGlu IGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47IGRvCi0JCWlmIFsgISAtZCAke19zeXNyb290 fS91c3IvJHtmfSBdOyB0aGVuCi0JCQlta2RpciAtcCAke19zeXNyb290fS91c3IvJHtmfQotCQlm aQotCQlpZiBbICEgLWggJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7X3N5 c3Jvb3R9L3Vzci8ke2Z9ICR7X3N5c3Jvb3R9LyR7Zn0KLQkJZmkKLQlkb25lCi0JbG4gLXNmIGxp YiAke19zeXNyb290fS91c3IvbGliMzIKLQlsbiAtc2YgdXNyL2xpYiAke19zeXNyb290fS9saWIz MgotCi0JIyBFbnN1cmUgd2UgdXNlIHNhbmUgZW52aXJvbm1lbnQKLQl1bnNldCBDQyBDWFggQ1BQ IExEIEFTIEFSIFJBTkxJQiBPQkpEVU1QIFJFQURFTEYgTk0KLQl1bnNldCBDRkxBR1MgQ1hYRkxB R1MgQ1BQRkxBR1MgTERGTEFHUwotCWV4cG9ydCBDRkxBR1M9Ii1PcyIgQ1hYRkxBR1M9Ii1PcyIK LQotCV9iaW51dGlsc19idWlsZAotCV9nY2NfYm9vdHN0cmFwCi0JX2xpbnV4X2hlYWRlcnMKLQlf Z2xpYmNfaGVhZGVycwotCV9nbGliY19idWlsZAotCV9nY2NfYnVpbGQKLX0KLQotZG9faW5zdGFs bCgpIHsKLQlmb3IgZiBpbiBpbmNsdWRlIGxpYiBsaWJleGVjIGJpbiBzYmluOyBkbwotCQlpZiBb ICEgLWQgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfSBdOyB0aGVuCi0JCQlta2RpciAt cCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZpCi0JCWlmIFsgISAtaCAke0RF U1RESVJ9LyR7X3N5c3Jvb3R9LyR7Zn0gXTsgdGhlbgotCQkJbG4gLXNmciAke0RFU1RESVJ9LyR7 X3N5c3Jvb3R9L3Vzci8ke2Z9IFwKLQkJCQkke0RFU1RESVJ9LyR7X3N5c3Jvb3R9LyR7Zn0KLQkJ ZmkKLQlkb25lCi0JbG4gLXNmIGxpYiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIzMgot CWxuIC1zZiB1c3IvbGliICR7REVTVERJUn0vJHtfc3lzcm9vdH0vbGliMzIKLQotCSMgaW5zdGFs bCBjcm9zcyBiaW51dGlscwotCWNkICR7d3Jrc3JjfS9iaW51dGlscy1idWlsZAotCW1ha2UgREVT VERJUj0ke0RFU1RESVJ9IGluc3RhbGwKLQotCSMgaW5zdGFsbCBjcm9zcyBnY2MKLQljZCAke3dy a3NyY30vZ2NjLWJ1aWxkCi0JbWFrZSBERVNURElSPSR7REVTVERJUn0gaW5zdGFsbAotCi0JIyBt b3ZlIGxpYmNjMS5zbyogdG8gdGhlIHN5c3Jvb3QKLQltdiAke0RFU1RESVJ9L3Vzci9saWIvbGli Y2MxLnNvKiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQotCSMgaW5zdGFsbCBsaW51 eCBBUEkgaGVhZGVycyBmb3IgTUlQUwotCWNkICR7d3Jrc3JjfS9saW51eC0ke19saW51eF92ZXJz aW9ufQotCW1ha2UgQVJDSD1hcm0gSU5TVEFMTF9IRFJfUEFUSD0ke0RFU1RESVJ9LyR7X3N5c3Jv b3R9L3VzciBoZWFkZXJzX2luc3RhbGwKLQlybSAtZiAkKGZpbmQgJHtERVNURElSfS8ke19zeXNy b290fS91c3IvaW5jbHVkZSAtbmFtZSAuaW5zdGFsbCAtb3IgLW5hbWUgLi5pbnN0YWxsLmNtZCkK LQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvaW5jbHVkZS9kcm0KLQotCSMgaW5z dGFsbCBnbGliYyBmb3IgdGFyZ2V0Ci0JY2QgJHt3cmtzcmN9L2dsaWJjLWJ1aWxkCi0JbWFrZSBp bnN0YWxsX3Jvb3Q9JHtERVNURElSfS8ke19zeXNyb290fSBpbnN0YWxsIGluc3RhbGwtaGVhZGVy cwotCi0JIyBzeW1saW5rcyBmb3IgZ25hcmwgYW5kIGduYXQgc2hhcmVkIGxpYnJhcmllcwotCV9t YWpvcnZlcj0ke19nY2NfdmVyc2lvbiUuKi4qfQotCV9hZGFsaWI9dXNyL2xpYi9nY2MvJHtfdHJp cGxldH0vJHtfZ2NjX3ZlcnNpb259L2FkYWxpYgotCW12IC12ICR7REVTVERJUn0vJHtfYWRhbGli fS9saWJnbmFybC0ke19tYWpvcnZlcn0uc28gJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGli Ci0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXQtJHtfbWFqb3J2ZXJ9LnNvICR7 REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCWxuIC1zdmYgbGliZ25hcmwtJHtfbWFqb3J2 ZXJ9LnNvIGxpYmduYXJsLnNvCi0JbG4gLXN2ZiBsaWJnbmF0LSR7X21ham9ydmVyfS5zbyBsaWJn bmF0LnNvCi0Jcm0gLXZmICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmF7cmwsdH0uc28KLQot CSMgV2UgbmVlZCB0byBidWlsZCBsaWJhdG9taWMgaW4gdGFyZ2V0IGdjYyBhcyBnY2NnbyBuZWVk cyBpdCB0bwotCSMgYnVpbGQuLi4gYnV0IGl0J3Mgbm90IG5lZWRlZCBhdCBydW50aW1lLCBzbyBy ZW1vdmUgaXQgZnJvbSB0aGUKLQkjIGRlc3RkaXIgc28gaXQgZG9lc24ndCBjb25mbGljdCB3aXRo IHRoZSBsaWJhdG9taWMgcGFja2FnZQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNy L2xpYi9saWJhdG9taWMuKgotCi0JIyBSZW1vdmUgdW5uZWNlc3Nhcnkgc3R1ZmYKLQlybSAtZiAk e0RFU1RESVJ9L3Vzci9saWIqL2xpYmliZXJ0eS5hCi0Jcm0gLXJmICR7REVTVERJUn0vdXNyL3No YXJlCi0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0ve3NiaW4sbGliLGV0Yyx2YXJ9Ci0J cm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL3tzYmluLHNoYXJlLGxpYmV4ZWN9Ci0J cm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS9saWJleGVjCi19Ci0KIGNyb3NzLWFybXY3bC1s aW51eC1nbnVlYWJpaGYtbGliY19wYWNrYWdlKCkgewogCXNob3J0X2Rlc2MrPSIgLSBnbGliYyBm aWxlcyIKIAlub3N0cmlwPXllcwogCW5vc2hsaWJwcm92aWRlcz15ZXMKIAlub3ZlcmlmeXJkZXBz PXllcworCiAJcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlICR7X3N5c3Jvb3R9CisJCXZtb3ZlIHVz ci8ke2Nyb3NzX3RyaXBsZXR9CiAJfQogfQoKRnJvbSAxNmMyMWM1MzlmMmI3Y2M5YTI4MzJkYWFj MjdhZWU2OWIwYTIxNjM5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBxNjYgPGRhbmll bEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBGcmksIDI1IERlYyAyMDIwIDIxOjM4OjQ0ICswMTAwClN1 YmplY3Q6IFtQQVRDSCAxMC8xNl0gY3Jvc3MtYXJtdjdsLWxpbnV4LW11c2xlYWJpaGY6IHJld29y ayB3aXRoIHZvaWQtY3Jvc3MKCi0tLQogLi4uL2Nyb3NzLWFybXY3bC1saW51eC1tdXNsZWFiaWhm L3RlbXBsYXRlICAgIHwgMzEyICsrLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDIx IGluc2VydGlvbnMoKyksIDI5MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Ny b3NzLWFybXY3bC1saW51eC1tdXNsZWFiaWhmL3RlbXBsYXRlIGIvc3JjcGtncy9jcm9zcy1hcm12 N2wtbGludXgtbXVzbGVhYmloZi90ZW1wbGF0ZQppbmRleCA1NWUzNDViNWNjMS4uNmVjY2Q3NjYx YWEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY3Jvc3MtYXJtdjdsLWxpbnV4LW11c2xlYWJpaGYvdGVt cGxhdGUKKysrIGIvc3JjcGtncy9jcm9zcy1hcm12N2wtbGludXgtbXVzbGVhYmloZi90ZW1wbGF0 ZQpAQCAtMSwyMCArMSwxOSBAQAotIyBUZW1wbGF0ZSBidWlsZCBmaWxlIGZvciAnY3Jvc3MtYXJt djdsLWxpbnV4LW11c2xlYWJpaGYnCi0jCisjIFRlbXBsYXRlIGZpbGUgZm9yICdjcm9zcy1hcm12 N2wtbGludXgtbXVzbGVhYmloZicKK190cmlwbGV0PWFybXY3bC1saW51eC1tdXNsZWFiaWhmCiBf YmludXRpbHNfdmVyc2lvbj0yLjMyCiBfZ2NjX3ZlcnNpb249OS4zLjAKIF9tdXNsX3ZlcnNpb249 MS4xLjI0CiBfbGludXhfdmVyc2lvbj00LjE5CiBfbGlidWNvbnRleHRfdmVyc2lvbj0wLjkuMAot Ci1fdHJpcGxldD1hcm12N2wtbGludXgtbXVzbGVhYmloZgotX2ZwdWZsYWdzPSItLXdpdGgtYXJj aD1hcm12Ny1hIC0td2l0aC1mcHU9dmZwdjMgLS13aXRoLWZsb2F0PWhhcmQiCi1fYXJjaGZsYWdz PSItbWFyY2g9YXJtdjctYSAtbWZwdT12ZnB2MyAtbWZsb2F0LWFiaT1oYXJkIgotX3N5c3Jvb3Q9 Ii91c3IvJHtfdHJpcGxldH0iCi0KIHBrZ25hbWU9Y3Jvc3MtJHtfdHJpcGxldH0KIHZlcnNpb249 MC4zMwogcmV2aXNpb249Mwotc2hvcnRfZGVzYz0iQ3Jvc3MgdG9vbGNoYWluIGZvciBBUk12NyBM RSBIYXJkIEZsb2F0IHRhcmdldCAobXVzbCkiCitidWlsZF9zdHlsZT12b2lkLWNyb3NzCitjb25m aWd1cmVfYXJncz0iLS13aXRoLWFyY2g9YXJtdjctYSAtLXdpdGgtZnB1PXZmcHYzIC0td2l0aC1m bG9hdD1oYXJkIgoraG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZ2NjLWdvIGZsZXggcGVy bCBweXRob24zIgorbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCB6bGliLWRl dmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIgorZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7dmVy c2lvbn1fJHtyZXZpc2lvbn0iCitzaG9ydF9kZXNjPSJWb2lkIGNyb3NzIHRvb2xjaGFpbiBmb3Ig JHtfdHJpcGxldH0iCiBtYWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+ IgogaG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51eC5vcmcvIgogbGljZW5zZT0iR1BMLTIu MC1vci1sYXRlciwgR1BMLTMuMC1vci1sYXRlciwgTUlUIgpAQCAtMzAsMjk4ICsyOSwyOSBAQCBj aGVja3N1bT0iMGFiNmM1NWRkODZhOTJlZDU2MTk3MmJhMTViOWI3MGE4YjlmNzU1NTdmODk2NDQ2 YzgyZThiMzZlNDczZWUwNAogIDBjNjhmNTY1NTUyOGFlZDRmOTlkYWU3MWE1YjI1OWVkYzkzMjM5 ZmE4OTllMmRmNzljMDU1Mjc1YzIxNzQ5YTEKICAwZDUzYTQxNWEzMDdlZjE3NTE1M2JiZTYwYTU3 MmM5NDBhOTIyY2I3MzZjZTEzNTMwYjY2NmU3ZWMyNzk1ZDY4IgogCi1saWIzMmRpc2FibGVkPXll cwotbm9jcm9zcz15ZXMKLW5vcGllPXllcwotbm9kZWJ1Zz15ZXMKLWNyZWF0ZV93cmtzcmM9eWVz Ci0KLWhvc3RtYWtlZGVwZW5kcz0idGFyIGdjYy1vYmpjIGdjYy1nbyBmbGV4IHBlcmwgcHl0aG9u MyIKLW1ha2VkZXBlbmRzPSJ6bGliLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIGxpYm1wYy1k ZXZlbCBpc2wxNS1kZXZlbCIKLW5vc3RyaXBfZmlsZXM9ImxpYmNhZl9zaW5nbGUuYSBsaWJnY2Mu YSBsaWJnY292LmEgbGliZ2NjX2VoLmEKLSBsaWJnbmFybF9waWMuYSBsaWJnbmFybC5hIGxpYmdu YXRfcGljLmEgbGliZ25hdC5hIGxpYmdtZW0uYSIKLWRlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0k e3ZlcnNpb259XyR7cmV2aXNpb259IgorY3Jvc3NfdHJpcGxldD0ke190cmlwbGV0fQorY3Jvc3Nf d29yZHNpemU9MzIKK2Nyb3NzX2xpYmM9bXVzbAorY3Jvc3NfYmludXRpbHNfdmVyc2lvbj0ke19i aW51dGlsc192ZXJzaW9ufQorY3Jvc3NfZ2NjX3ZlcnNpb249JHtfZ2NjX3ZlcnNpb259Citjcm9z c19tdXNsX3ZlcnNpb249JHtfbXVzbF92ZXJzaW9ufQorY3Jvc3NfbGludXhfdmVyc2lvbj0ke19s aW51eF92ZXJzaW9ufQorY3Jvc3NfbGlidWNvbnRleHRfdmVyc2lvbj0ke19saWJ1Y29udGV4dF92 ZXJzaW9ufQorY3Jvc3NfbGlidWNvbnRleHRfYXJjaD1hcm0KK2Nyb3NzX2xpbnV4X2FyY2g9YXJt Citjcm9zc19tdXNsX2NmbGFncz0iLU8yIC1tYXJjaD1hcm12Ny1hIC1tZnB1PXZmcHYzIC1tZmxv YXQtYWJpPWhhcmQiCiAKIGlmIFsgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiA9ICJhcm12N2wtbXVz bCIgXTsgdGhlbgogCWJyb2tlbj0iQ2FuJ3QgYnVpbGQgY3Jvc3N0b29sY2hhaW4gdG8gaXRzZWxm IgogZmkKIAotX2FwcGx5X3BhdGNoKCkgewotCWxvY2FsIGFyZ3M9IiQxIiBwbmFtZT0iJChiYXNl bmFtZSAkMikiCi0KLQlpZiBbICEgLWYgIi4ke3BuYW1lfV9kb25lIiBdOyB0aGVuCi0JCXBhdGNo IC1OICRhcmdzIC1pICQyCi0JCXRvdWNoIC4ke3BuYW1lfV9kb25lCi0JZmkKLX0KLQotX2JpbnV0 aWxzX2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uYmludXRpbHNf YnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJC dWlsZGluZyBjcm9zcyBiaW51dGlscyBib290c3RyYXBcbiIKLQotCVsgISAtZCBiaW51dGlscy1i dWlsZCBdICYmIG1rZGlyIGJpbnV0aWxzLWJ1aWxkCi0JY2QgYmludXRpbHMtYnVpbGQKLQotCV9h cmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9h cmdzKz0iIC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1u bHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS13 ZXJyb3IiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLXdpdGgtc3lz dGVtLXpsaWIiCi0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9IgotCi0JLi4vYmludXRpbHMtJHtfYmlu dXRpbHNfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlIGNvbmZpZ3VyZS1ob3N0 ICYmIG1ha2UgJHttYWtlam9ic30KLQltYWtlIGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8u YmludXRpbHNfYnVpbGRfZG9uZQotfQotCi1fZ2NjX2Jvb3RzdHJhcCgpIHsKLQlsb2NhbCBfYXJn cwotCi0JWyAtZiAke3dya3NyY30vLmdjY19ib290c3RyYXBfZG9uZSBdICYmIHJldHVybiAwCi0K LQljZCAke3dya3NyY30vZ2NjLSR7X2djY192ZXJzaW9ufQotCWZvciBmIGluICR7WEJQU19TUkNQ S0dESVJ9L2djYy9wYXRjaGVzLyoucGF0Y2g7IGRvCi0JCV9hcHBseV9wYXRjaCAtcDAgIiRmIgot CWRvbmUKLQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9nY2MvZmlsZXMvKi1tdXNsLnBhdGNo OyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAxICIkZiIKLQlkb25lCi0KLQltc2dfbm9ybWFsICJCdWls ZGluZyBjcm9zcyBnY2MgYm9vdHN0cmFwXG4iCi0KLQlbICEgLWQgLi4vZ2NjLWJvb3RzdHJhcCBd ICYmIG1rZGlyIC4uL2djYy1ib290c3RyYXAKLQljZCAuLi9nY2MtYm9vdHN0cmFwCi0KLQlfYXJn cz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJn cys9IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLXdpdGgtbmV3bGli IgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jIgotCV9hcmdzKz0iIC0td2l0aC1uZXds aWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNzcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxz IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJxdWFkbWF0aCIKLQlfYXJncys9IiAtLWRpc2FibGUt dGhyZWFkcyIKLQlfYXJncys9IiAtLWRpc2FibGUtZGVjaW1hbC1mbG9hdCIKLQlfYXJncys9IiAt LWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtcHgiCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLWxpYm11ZGZsYXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmdvbXAiCi0JX2Fy Z3MrPSIgLS1kaXNhYmxlLWxpYmF0b21pYyIKLQlfYXJncys9IiAtLWRpc2FibGUtc3ltdmVycyIK LQlfYXJncys9IiBsaWJhdF9jdl9oYXZlX2lmdW5jPW5vIgotCV9hcmdzKz0iICR7X2ZwdWZsYWdz fSIKLQotCUNGTEFHUz0iLU8wIC1nMCIgQ1hYRkxBR1M9Ii1PMCAtZzAiIFwKLQkJLi4vZ2NjLSR7 X2djY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQlt YWtlIGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJhcF9kb25lCi19Ci0K LV9saW51eF9oZWFkZXJzKCkgewotCVsgLWYgJHt3cmtzcmN9Ly5saW51eF9idWlsZF9kb25lIF0g JiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIExpbnV4 IEFQSSBoZWFkZXJzIGZvciBBUk1cbiIKLQotCWNkIGxpbnV4LSR7X2xpbnV4X3ZlcnNpb259Ci0K LQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9rZXJuZWwtbGliYy1oZWFkZXJzL3BhdGNoZXMv Ki5wYXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMCAkZgotCWRvbmUKLQotCW1ha2UgQVJDSD1h cm0gaGVhZGVyc19jaGVjawotCW1ha2UgQVJDSD1hcm0gSU5TVEFMTF9IRFJfUEFUSD0ke19zeXNy b290fS91c3IgaGVhZGVyc19pbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmxpbnV4X2J1aWxk X2RvbmUKLX0KLQotX211c2xfYnVpbGQoKSB7Ci0JWyAtZiAke3dya3NyY30vLm11c2xfYnVpbGRf ZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30vbXVzbC0ke19tdXNsX3ZlcnNpb259 Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgbXVzbCBsaWJjXG4iCi0KLQkjIEFwcGx5IG11 c2wgcGF0Y2hlcyBpZiB0aGVyZSBhcmUgYW55Ci0JaWYgWyAtZCAiJHtYQlBTX1NSQ1BLR0RJUn0v bXVzbC9wYXRjaGVzIiBdOyB0aGVuCi0JCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L211c2wv cGF0Y2hlcy8qLnBhdGNoOyBkbwotCQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCi0JCWRvbmUKLQlm aQotCi0JQ0M9IiR7X3RyaXBsZXR9LWdjYyIgQ0ZMQUdTPSItT3MgLXBpcGUgLWZQSUMgJHtfYXJj aGZsYWdzfSIgXAotCQkuL2NvbmZpZ3VyZSAtLXByZWZpeD0vdXNyCi0KLQltYWtlICR7bWFrZWpv YnN9Ci0JbWFrZSBERVNURElSPSR7X3N5c3Jvb3R9IGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3Jj fS8ubXVzbF9idWlsZF9kb25lCi19Ci0KLV9saWJ1Y29udGV4dF9idWlsZCgpIHsKLQlbIC1mICR7 d3Jrc3JjfS8ubGlidWNvbnRleHRfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dy a3NyY30vbGlidWNvbnRleHQtJHtfbGlidWNvbnRleHRfdmVyc2lvbn0KLQltc2dfbm9ybWFsICJC dWlsZGluZyBjcm9zcyBsaWJ1Y29udGV4dFxuIgotCi0JIyBpdCdzIG9rIGlmIHdlJ3JlIHN0YXRp YyBvbmx5IGhlcmUKLQlDQz0iJHtfdHJpcGxldH0tZ2NjIiBBUj0iJHtfdHJpcGxldH0tYXIiIEFT PSIke190cmlwbGV0fS1hcyIgXAotCQlDRkxBR1M9Ii1PcyAtcGlwZSAke19hcmNoZmxhZ3N9IiBc Ci0JCW1ha2UgQVJDSD1hcm0gbGlidWNvbnRleHQuYQotCi0JY3AgbGlidWNvbnRleHQuYSAke19z eXNyb290fS91c3IvbGliCi0KLQl0b3VjaCAke3dya3NyY30vLmxpYnVjb250ZXh0X2J1aWxkX2Rv bmUKLX0KLQotX2djY19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30v LmdjY19idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3Jt YWwgIkJ1aWxkaW5nIGNyb3NzIGdjYyBmaW5hbFxuIgotCi0JWyAhIC1kIGdjYy1idWlsZCBdICYm IG1rZGlyIGdjYy1idWlsZAotCWNkIGdjYy1idWlsZAotCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3Ii Ci0JX2FyZ3MrPSIgLS1saWJleGVjZGlyPS91c3IvbGliIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7 X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdz Kz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jLGFkYSxjKyssb2JqYyxvYmotYysrLGdvLGZvcnRyYW4s bHRvIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpYmFkYSIKLQlfYXJncys9IiAtLWVuYWJsZS1sdG8i Ci0JX2FyZ3MrPSIgLS1lbmFibGUtZGVmYXVsdC1waWUiCi0JX2FyZ3MrPSIgLS1lbmFibGUtZGVm YXVsdC1zc3AiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGlic3NwIgotCV9hcmdzKz0iIC0tZGlzYWJs ZS1saWJzYW5pdGl6ZXIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9hcmdzKz0i IC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnF1YWRtYXRoIgotCV9hcmdz Kz0iIC0tZGlzYWJsZS1saWJtcHgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm11ZGZsYXAiCi0J X2FyZ3MrPSIgLS1lbmFibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zeW12ZXJzIgot CV9hcmdzKz0iIGxpYmF0X2N2X2hhdmVfaWZ1bmM9bm8iCi0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9 IgotCi0JLi4vZ2NjLSR7X2djY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2Ug JHttYWtlam9ic30KLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUKLX0KLQotZG9f YnVpbGQoKSB7Ci0JIyBFbnN1cmUgd2UgdXNlIHNhbmUgZW52aXJvbm1lbnQKLQl1bnNldCBDQyBD WFggQ1BQIExEIEFTIEFSIFJBTkxJQiBPQkpEVU1QIFJFQURFTEYgTk0KLQl1bnNldCBDRkxBR1Mg Q1hYRkxBR1MgQ1BQRkxBR1MgTERGTEFHUwotCWV4cG9ydCBDRkxBR1M9Ii1PcyAtcGlwZSIgQ1hY RkxBR1M9Ii1PcyAtcGlwZSIKLQotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNi aW47IGRvCi0JCWlmIFsgISAtZCAke19zeXNyb290fS91c3IvJHtmfSBdOyB0aGVuCi0JCQlta2Rp ciAtcCAke19zeXNyb290fS91c3IvJHtmfQotCQlmaQotCQlpZiBbICEgLWggJHtfc3lzcm9vdH0v JHtmfSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7X3N5c3Jvb3R9L3Vzci8ke2Z9ICR7X3N5c3Jvb3R9 LyR7Zn0KLQkJZmkKLQlkb25lCi0JbG4gLXNmIGxpYiAke19zeXNyb290fS91c3IvbGliMzIKLQls biAtc2YgdXNyL2xpYiAke19zeXNyb290fS9saWIzMgotCi0JX2JpbnV0aWxzX2J1aWxkCi0JX2dj Y19ib290c3RyYXAKLQlfbGludXhfaGVhZGVycwotCV9tdXNsX2J1aWxkCi0JX2xpYnVjb250ZXh0 X2J1aWxkCi0JX2djY19idWlsZAotfQotCi1kb19pbnN0YWxsKCkgewotCWZvciBmIGluIGluY2x1 ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47IGRvCi0JCWlmIFsgISAtZCAke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4KLQkJCW1rZGlyIC1wICR7REVTVERJUn0vJHtfc3lzcm9v dH0vdXNyLyR7Zn0KLQkJZmkKLQkJaWYgWyAhIC1oICR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtm fSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXAot CQkJCSR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtmfQotCQlmaQotCWRvbmUKLQlsbiAtc2YgbGli ICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYjMyCi0JbG4gLXNmIHVzci9saWIgJHtERVNU RElSfS8ke19zeXNyb290fS9saWIzMgotCi0JIyBpbnN0YWxsIGxpbnV4IEFQSSBoZWFkZXJzCi0J Y2QgJHt3cmtzcmN9L2xpbnV4LSR7X2xpbnV4X3ZlcnNpb259Ci0JbWFrZSBBUkNIPWFybSBJTlNU QUxMX0hEUl9QQVRIPSR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyIGhlYWRlcnNfaW5zdGFsbAot CXJtIC1mICQoZmluZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlIC1uYW1lIC5p bnN0YWxsIC1vciAtbmFtZSAuLmluc3RhbGwuY21kKQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9L3Vzci9pbmNsdWRlL2RybQotCi0JIyBpbnN0YWxsIGNyb3NzIGJpbnV0aWxzCi0JY2Qg JHt3cmtzcmN9L2JpbnV0aWxzLWJ1aWxkCi0JbWFrZSBERVNURElSPSR7REVTVERJUn0gaW5zdGFs bAotCi0JIyBpbnN0YWxsIGNyb3NzIGdjYwotCWNkICR7d3Jrc3JjfS9nY2MtYnVpbGQKLQltYWtl IERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0KLQkjIG1vdmUgbGliY2MxLnNvKiB0byB0aGUg c3lzcm9vdAotCW12ICR7REVTVERJUn0vdXNyL2xpYi9saWJjYzEuc28qICR7REVTVERJUn0vJHtf c3lzcm9vdH0vdXNyL2xpYgotCi0JIyBpbnN0YWxsIG11c2wgbGliYyBmb3IgdGFyZ2V0Ci0JY2Qg JHt3cmtzcmN9L211c2wtJHtfbXVzbF92ZXJzaW9ufQotCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9 LyR7X3N5c3Jvb3R9IGluc3RhbGwKLQotCSMgUmVtb3ZlIHVzZWxlc3MgaGVhZGVycy4KLQlybSAt cmYgJHtERVNURElSfS91c3IvbGliL2djYy8ke190cmlwbGV0fS8qL2luY2x1ZGUtZml4ZWQvCi0K LQkjIE1ha2UgbGQtbXVzbC1hcm1oZi5zby4xIHN5bWxpbmsgcmVsYXRpdmUuCi0JbG4gLXNmIGxp YmMuc28gJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliL2xkLW11c2wtYXJtaGYuc28uMQot Ci0JIyBzeW1saW5rcyBmb3IgZ25hcmwgYW5kIGduYXQgc2hhcmVkIGxpYnJhcmllcwotCV9tYWpv cnZlcj0ke19nY2NfdmVyc2lvbiUuKi4qfQotCV9hZGFsaWI9dXNyL2xpYi9nY2MvJHtfdHJpcGxl dH0vJHtfZ2NjX3ZlcnNpb259L2FkYWxpYgotCW12IC12ICR7REVTVERJUn0vJHtfYWRhbGlifS9s aWJnbmFybC0ke19tYWpvcnZlcn0uc28gJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliCi0J bXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXQtJHtfbWFqb3J2ZXJ9LnNvICR7REVT VERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCWxuIC1zdmYgbGliZ25hcmwtJHtfbWFqb3J2ZXJ9 LnNvIGxpYmduYXJsLnNvCi0JbG4gLXN2ZiBsaWJnbmF0LSR7X21ham9ydmVyfS5zbyBsaWJnbmF0 LnNvCi0Jcm0gLXZmICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmF7cmwsdH0uc28KLQotCSMg V2UgbmVlZCB0byBidWlsZCBsaWJhdG9taWMgaW4gdGFyZ2V0IGdjYyBhcyBnY2NnbyBuZWVkcyBp dCB0bwotCSMgYnVpbGQuLi4gYnV0IGl0J3Mgbm90IG5lZWRlZCBhdCBydW50aW1lLCBzbyByZW1v dmUgaXQgZnJvbSB0aGUKLQkjIGRlc3RkaXIgc28gaXQgZG9lc24ndCBjb25mbGljdCB3aXRoIHRo ZSBsaWJhdG9taWMgcGFja2FnZQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xp Yi9saWJhdG9taWMuKgotCi0JIyBSZW1vdmUgdW5uZWNlc3Nhcnkgc3R1ZmYKLQlybSAtZiAke0RF U1RESVJ9L3Vzci9saWIqL2xpYmliZXJ0eS5hCi0Jcm0gLXJmICR7REVTVERJUn0vdXNyL3NoYXJl Ci0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0ve2V0Yyx2YXJ9Ci0Jcm0gLXJmICR7REVT VERJUn0vJHtfc3lzcm9vdH0vdXNyL3tzYmluLHNoYXJlLGxpYmV4ZWN9Ci0Jcm0gLWYgJHtERVNU RElSfS8ke19zeXNyb290fS9saWJleGVjCi0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS9s aWIvKi5weQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0ve3NiaW4sbGlifQotfQotCiBj cm9zcy1hcm12N2wtbGludXgtbXVzbGVhYmloZi1saWJjX3BhY2thZ2UoKSB7CiAJc2hvcnRfZGVz Yys9IiAtIGxpYmMgZmlsZXMiCiAJbm9zdHJpcD15ZXMKIAlub3NobGlicHJvdmlkZXM9eWVzCiAJ bm92ZXJpZnlyZGVwcz15ZXMKLQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgJHtfc3lzcm9vdH0K IAorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSB1c3IvJHtjcm9zc190cmlwbGV0fQogCX0KIH0K CkZyb20gNjNiYWQ3MjNiNzUxMjMxMWJiNDIxOWI4NjIzNGE3NTI0NTFiM2VkZiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogcTY2IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogRnJp LCAyNSBEZWMgMjAyMCAyMjo1MTowMSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTEvMTZdIGNyb3Nz LWk2ODYtcGMtbGludXgtZ251OiByZXdvcmsgd2l0aCB2b2lkLWNyb3NzCgotLS0KIHNyY3BrZ3Mv Y3Jvc3MtaTY4Ni1wYy1saW51eC1nbnUvdGVtcGxhdGUgfCAzNjMgKystLS0tLS0tLS0tLS0tLS0t LS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCspLCAzNDQgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jcm9zcy1pNjg2LXBjLWxpbnV4LWdudS90ZW1wbGF0ZSBi L3NyY3BrZ3MvY3Jvc3MtaTY4Ni1wYy1saW51eC1nbnUvdGVtcGxhdGUKaW5kZXggMDU2ZDI1NTMw NDAuLjI4YTc0MWExNmFhIDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nyb3NzLWk2ODYtcGMtbGludXgt Z251L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY3Jvc3MtaTY4Ni1wYy1saW51eC1nbnUvdGVtcGxh dGUKQEAgLTEsMjEgKzEsMjAgQEAKLSMgVGVtcGxhdGUgYnVpbGQgZmlsZSBmb3IgJ2Nyb3NzLWk2 ODYtcGMtbGludXgtZ251JwotIworIyBUZW1wbGF0ZSBmaWxlIGZvciAnY3Jvc3MtaTY4Ni1wYy1s aW51eC1nbnUnCitfdHJpcGxldD1pNjg2LXBjLWxpbnV4LWdudQogX2JpbnV0aWxzX3ZlcnNpb249 Mi4zMgogX2djY192ZXJzaW9uPTkuMy4wCiBfZ2xpYmNfdmVyc2lvbj0yLjMwCiBfbGludXhfdmVy c2lvbj00LjE5Ci0KLV90cmlwbGV0PWk2ODYtcGMtbGludXgtZ251Ci1fYXJjaGZsYWdzPSItbWFy Y2g9aTY4NiAtbXR1bmU9Z2VuZXJpYyIKLV9zeXNyb290PSIvdXNyLyR7X3RyaXBsZXR9IgotCiBw a2duYW1lPWNyb3NzLSR7X3RyaXBsZXR9CiB2ZXJzaW9uPTAuMzMKIHJldmlzaW9uPTQKLXNob3J0 X2Rlc2M9IkdOVSBDcm9zcyB0b29sY2hhaW4gZm9yIHRoZSAke190cmlwbGV0fSB0YXJnZXQgKGJp bnV0aWxzL2djYy9nbGliYykiCitidWlsZF9zdHlsZT12b2lkLWNyb3NzCitob3N0bWFrZWRlcGVu ZHM9InRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5dGhvbjMiCittYWtlZGVwZW5kcz0i aXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwi CitkZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKK3Nob3J0 X2Rlc2M9IlZvaWQgY3Jvc3MgdG9vbGNoYWluIGZvciAke190cmlwbGV0fSIKIG1haW50YWluZXI9 IkrDvHJnZW4gQnVjaG3DvGxsZXIgPHB1bGxtb2xsQHQtb25saW5lLmRlPiIKLWhvbWVwYWdlPSJo dHRwczovL3d3dy52b2lkbGludXgub3JnLyIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdQ TC0zLjAtb3ItbGF0ZXIsIExHUEwtMi4xLW9yLWxhdGVyIgoraG9tZXBhZ2U9Imh0dHBzOi8vd3d3 LnZvaWRsaW51eC5vcmcvIgogZGlzdGZpbGVzPSIKICAke0dOVV9TSVRFfS9iaW51dGlscy9iaW51 dGlscy0ke19iaW51dGlsc192ZXJzaW9ufS50YXIueHoKICAke0dOVV9TSVRFfS9nY2MvZ2NjLSR7 X2djY192ZXJzaW9ufS9nY2MtJHtfZ2NjX3ZlcnNpb259LnRhci54egpAQCAtMjYsMzUxICsyNSwy NyBAQCBjaGVja3N1bT0iMGFiNmM1NWRkODZhOTJlZDU2MTk3MmJhMTViOWI3MGE4YjlmNzU1NTdm ODk2NDQ2YzgyZThiMzZlNDczZWUwNAogIGUyYzQxMTRlNTY5YWZiZTdlZGJjMjkxMzFhNDNiZTgz Mzg1MGFiOWE0NTlkODFiZWIyNTg4MDE2ZDJiYmI4YWYKICAwYzY4ZjU2NTU1MjhhZWQ0Zjk5ZGFl NzFhNWIyNTllZGM5MzIzOWZhODk5ZTJkZjc5YzA1NTI3NWMyMTc0OWExIgogCi1ub2Nyb3NzPXll cwotbm9waWU9eWVzCi1ub2RlYnVnPXllcwotbGliMzJkaXNhYmxlZD15ZXMKLWNyZWF0ZV93cmtz cmM9eWVzCi1ob3N0bWFrZWRlcGVuZHM9InRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5 dGhvbjMiCi1tYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2ZWwi Ci1kZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKLW5vc3Ry aXBfZmlsZXM9ImxpYmNhZl9zaW5nbGUuYSBsaWJnY2MuYSBsaWJnY292LmEgbGliZ2NjX2VoLmEK LSBsaWJnbmFybF9waWMuYSBsaWJnbmFybC5hIGxpYmduYXRfcGljLmEgbGliZ25hdC5hIGxpYmdt ZW0uYSIKLQotaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMiICE9ICJnbGliYyIgXTsgdGhlbgotCWJy b2tlbj0iZ2xpYmMgY3Jvc3N0b29sY2hhaW4gb25seSBhdmFpbGFibGUgb24gZ2xpYmMiCi1maQor Y3Jvc3NfdHJpcGxldD0ke190cmlwbGV0fQorY3Jvc3Nfd29yZHNpemU9MzIKK2Nyb3NzX2xpYmM9 Z2xpYmMKK2Nyb3NzX2JpbnV0aWxzX3ZlcnNpb249JHtfYmludXRpbHNfdmVyc2lvbn0KK2Nyb3Nz X2djY192ZXJzaW9uPSR7X2djY192ZXJzaW9ufQorY3Jvc3NfZ2xpYmNfdmVyc2lvbj0ke19nbGli Y192ZXJzaW9ufQorY3Jvc3NfbGludXhfdmVyc2lvbj0ke19saW51eF92ZXJzaW9ufQorY3Jvc3Nf bGludXhfYXJjaD14ODYKK2Nyb3NzX2dsaWJjX2NmbGFncz0iLU8yIC1Xbm8tZXJyb3IgLW1hcmNo PWk2ODYgLW10dW5lPWdlbmVyaWMiCiAKIGlmIFsgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiA9ICJp Njg2IiBdOyB0aGVuCiAJYnJva2VuPSJDYW4ndCBidWlsZCBjcm9zc3Rvb2xjaGFpbiB0byBpdHNl bGYiCiBmaQogCi1fYXBwbHlfcGF0Y2goKSB7Ci0JbG9jYWwgYXJncz0iJDEiIHBuYW1lPSIkKGJh c2VuYW1lICQyKSIKLQotCWlmIFsgISAtZiAiLiR7cG5hbWV9X2RvbmUiIF07IHRoZW4KLQkJcGF0 Y2ggLU4gJGFyZ3MgLWkgJDIKLQkJdG91Y2ggLiR7cG5hbWV9X2RvbmUKLQlmaQotfQotCi1fYmlu dXRpbHNfYnVpbGQoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5iaW51dGls c19idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9iaW51dGlscy0ke19i aW51dGlsc192ZXJzaW9ufQotCi0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgYmludXRpbHMg Ym9vdHN0cmFwXG4iCi0KLQlbICEgLWQgLi4vYmludXRpbHMtYnVpbGQgXSAmJiBta2RpciAuLi9i aW51dGlscy1idWlsZAotCWNkIC4uL2JpbnV0aWxzLWJ1aWxkCi0JX2FyZ3M9Ii0tcHJlZml4PS91 c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLXN5 c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlfYXJncys9IiAt LWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJncys9 IiAtLWRpc2FibGUtd2Vycm9yIgotCV9hcmdzKz0iIC0td2l0aC1zeXN0ZW0temxpYiIKLQotCS4u L2JpbnV0aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFr ZSBjb25maWd1cmUtaG9zdCAmJiBtYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsCi0KLQl0 b3VjaCAke3dya3NyY30vLmJpbnV0aWxzX2J1aWxkX2RvbmUKLX0KLQotX2djY19ib290c3RyYXAo KSB7Ci0JbG9jYWwgX2FyZ3MKLQlbIC1mICR7d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJhcF9kb25lIF0g JiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9nY2MtJHtfZ2NjX3ZlcnNpb259Ci0JZm9yIGYg aW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2NjL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJX2FwcGx5X3Bh dGNoIC1wMCAiJGYiCi0JZG9uZQotCi0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2NjIGJv b3RzdHJhcFxuIgotCi0JWyAhIC1kIC4uL2djYy1ib290c3RyYXAgXSAmJiBta2RpciAuLi9nY2Mt Ym9vdHN0cmFwCi0JY2QgLi4vZ2NjLWJvb3RzdHJhcAotCi0JIyBGaXggaHR0cHM6Ly9idWlsZC52 b2lkbGludXgub3JnL2J1aWxkZXJzL3g4Nl82NF9idWlsZGVyL2J1aWxkcy8yNDg5NS9zdGVwcy9z aGVsbF8zL2xvZ3Mvc3RkaW8KLQlleHBvcnQgZ2NjX2N2X2xpYmNfcHJvdmlkZXNfc3NwPXllcwot CV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9Igot CV9hcmdzKz0iIC0td2l0aG91dC1oZWFkZXJzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0J X2FyZ3MrPSIgLS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlicXVhZG1h dGgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWRlY2ltYWwtZmxvYXQiCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLWxpYmdvbXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm1weCIKLQlfYXJncys9IiAtLWRp c2FibGUtbGlibXVkZmxhcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlic3NwIgotCV9hcmdzKz0i IC0tZGlzYWJsZS1saWJpdG0iCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmF0b21pYyIKLQlfYXJn cys9IiAtLWRpc2FibGUtdGhyZWFkcyIKLQlfYXJncys9IiAtLWVuYWJsZS1sYW5ndWFnZXM9YyIK LQlfYXJncys9IiAtLWRpc2FibGUtc2psai1leGNlcHRpb25zIgotCV9hcmdzKz0iIC0tZGlzYWJs ZS1tdWx0aWxpYiIKLQlfYXJncys9IiAtLXdpdGgtZ251LWxkIgotCV9hcmdzKz0iIC0td2l0aC1n bnUtYXMiCi0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9IgotCi0JQ0ZMQUdTPSItTzAgLWcwIiBDWFhG TEFHUz0iLU8wIC1nMCIgXAotCQkuLi9nY2MtJHtfZ2NjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19h cmdzfQotCi0JbWFrZSAke21ha2Vqb2JzfQotCW1ha2UgaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtz cmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUKLX0KLQotX2xpbnV4X2hlYWRlcnMoKSB7Ci0JWyAtZiAk e3dya3NyY30vLmxpbnV4X2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9 Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgTGludXggQVBJIGhlYWRlcnMgZm9yIHg4NlxuIgotCi0J Y2QgbGludXgtJHtfbGludXhfdmVyc2lvbn0KLQotCW1ha2UgQVJDSD14ODYgaGVhZGVyc19jaGVj awotCW1ha2UgQVJDSD14ODYgSU5TVEFMTF9IRFJfUEFUSD0ke19zeXNyb290fS91c3IgaGVhZGVy c19pbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmxpbnV4X2J1aWxkX2RvbmUKLX0KLQotX2ds aWJjX2hlYWRlcnMoKSB7Ci0JbG9jYWwgX2FyZ3MgZgotCVsgLWYgJHt3cmtzcmN9Ly5nbGliY19o ZWFkZXJzX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L2dsaWJjLSR7X2dsaWJj X3ZlcnNpb259Ci0JaWYgWyAtZCAiJHtYQlBTX1NSQ1BLR0RJUn0vZ2xpYmMvcGF0Y2hlcyIgXTsg dGhlbgotCQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9nbGliYy9wYXRjaGVzLyoucGF0Y2g7 IGRvCi0JCQlfYXBwbHlfcGF0Y2ggLXAxICIkZiIKLQkJZG9uZQotCWZpCi0KLQljZCAke3dya3Ny Y30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBnbGliYyBoZWFkZXJzXG4iCi0KLQlbICEg LWQgZ2xpYmMtaGVhZGVycyBdICYmIG1rZGlyIGdsaWJjLWhlYWRlcnMKLQljZCBnbGliYy1oZWFk ZXJzCi0KLQllY2hvICJsaWJjX2N2X2ZvcmNlZF91bndpbmQ9eWVzIiA+IGNvbmZpZy5jYWNoZQot CWVjaG8gImxpYmNfY3ZfY19jbGVhbnVwPXllcyIgPj4gY29uZmlnLmNhY2hlCi0JZWNobyAibGli Y19jdl9zc3A9bm8iID4+IGNvbmZpZy5jYWNoZQotCi0JZXhwb3J0IENDPSIke190cmlwbGV0fS1n Y2MiIExEPSIke190cmlwbGV0fS1sZCIgXAotCQlBUz0iJHtfdHJpcGxldH0tYXMiIENQUD0iJHtf dHJpcGxldH0tY3BwIgotCi0JX2FyZ3M9Ii0taG9zdD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAt LXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0td2l0aC1oZWFkZXJzPSR7X3N5c3Jvb3R9L3Vzci9p bmNsdWRlIgotCV9hcmdzKz0iIC0tY29uZmlnLWNhY2hlIgotCV9hcmdzKz0iIC0tZW5hYmxlLW9i c29sZXRlLXJwYyIKLQlfYXJncys9IiAtLWVuYWJsZS1vYnNvbGV0ZS1uc2wiCi0JX2FyZ3MrPSIg LS1lbmFibGUta2VybmVsPTIuNi4yNyIKLQlfYXJncys9IiAke19mcHVmbGFnc30iCi0KLQkuLi9n bGliYy0ke19nbGliY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgLWsgaW5z dGFsbC1oZWFkZXJzIGNyb3NzX2NvbXBpbGluZz15ZXMgXAotCQlpbnN0YWxsX3Jvb3Q9JHtfc3lz cm9vdH0KLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2xpYmNfaGVhZGVyc19kb25lCi19Ci0KLV9nbGli Y19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCVsgLWYgJHt3cmtzcmN9Ly5nbGliY19idWlsZF9k b25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5n IGNyb3NzIGdsaWJjXG4iCi0KLQlbICEgLWQgZ2xpYmMtYnVpbGQgXSAmJiBta2RpciBnbGliYy1i dWlsZAotCWNkIGdsaWJjLWJ1aWxkCi0KLQllY2hvICJzbGliZGlyPS91c3IvbGliMzIiID4gY29u ZmlncGFybXMKLQotCWVjaG8gImxpYmNfY3ZfZm9yY2VkX3Vud2luZD15ZXMiID4gY29uZmlnLmNh Y2hlCi0JZWNobyAibGliY19jdl9jX2NsZWFudXA9eWVzIiA+PiBjb25maWcuY2FjaGUKLQllY2hv ICJsaWJjX2N2X3NzcD1ubyIgPj4gY29uZmlnLmNhY2hlCi0KLQlleHBvcnQgQ0M9IiR7X3RyaXBs ZXR9LWdjYyIgTEQ9IiR7X3RyaXBsZXR9LWxkIiBcCi0JCUFTPSIke190cmlwbGV0fS1hcyIgQ1BQ PSIke190cmlwbGV0fS1jcHAiCi0JZXhwb3J0IENGTEFHUz0iLU8yIC1waXBlIC1Xbm8tZXJyb3Ig JHtfYXJjaGZsYWdzfSIKLQlfYXJncz0iLS1ob3N0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0t cHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS1saWJkaXI9L3Vzci9saWIzMiIKLQlfYXJncys9IiAt LXdpdGgtaGVhZGVycz0ke19zeXNyb290fS91c3IvaW5jbHVkZSIKLQlfYXJncys9IiAtLWNvbmZp Zy1jYWNoZSIKLQlfYXJncys9IiAtLWVuYWJsZS1vYnNvbGV0ZS1ycGMiCi0JX2FyZ3MrPSIgLS1l bmFibGUtb2Jzb2xldGUtbnNsIgotCV9hcmdzKz0iIC0tZW5hYmxlLWtlcm5lbD0yLjYuMjciCi0J X2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9IgotCi0JLi4vZ2xpYmMtJHtfZ2xpYmNfdmVyc2lvbn0vY29u ZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsX3Jvb3Q9 JHtfc3lzcm9vdH0gaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nbGliY19idWlsZF9kb25l Ci19Ci0KLV9nY2NfYnVpbGQoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5n Y2NfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFs ICJCdWlsZGluZyBjcm9zcyBnY2MgZmluYWxcbiIKLQotCVsgISAtZCBnY2MtYnVpbGQgXSAmJiBt a2RpciBnY2MtYnVpbGQKLQljZCBnY2MtYnVpbGQKLQotCXVuc2V0IExEIEFTIENQUAotCi0JIyBN YWtlIHRoaXMgbGluayB0byB0YXJnZXQgbGlicy4KLQlpZiBbICEgLWYgLnNlZF9zdWJzdF9kb25l IF07IHRoZW4KLQkJc2VkIC1lICJzLCAvbGliLywgJHtfc3lzcm9vdH0vbGliLyxnO3MsIC91c3Iv bGliLywgJHtfc3lzcm9vdH0vdXNyL2xpYi8sZyIgXAotCQkJLWkgJHtfc3lzcm9vdH0vbGliL2xp YmMuc28KLQkJc2VkIC1lICJzLCAvbGliMzIvLCAke19zeXNyb290fS9saWIzMi8sZztzLCAvdXNy L2xpYjMyLywgJHtfc3lzcm9vdH0vdXNyL2xpYjMyLyxnIiBcCi0JCQktaSAke19zeXNyb290fS9s aWIvbGliYy5zbwotCQl0b3VjaCAuc2VkX3N1YnN0X2RvbmUKLQlmaQotCV9hcmdzPSItLXRhcmdl dD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9 IiAtLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tbGliZXhlY2Rpcj0vdXNyL2xpYiIKLQlfYXJn cys9IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLWVuYWJsZS1sYW5n dWFnZXM9YyxhZGEsYysrLG9iamMsb2JqLWMrKyxnbyxmb3J0cmFuLGx0byIKLQlfYXJncys9IiAt LXdpdGgtZ251LWFzIgotCV9hcmdzKz0iIC0td2l0aC1nbnUtbGQiCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLW11bHRpbGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLXNqbGotZXhjZXB0aW9ucyIKLQlfYXJncys9IiAtLWVuYWJsZS10aHJlYWRzPXBvc2l4Igot CV9hcmdzKz0iIC0tZW5hYmxlLWxvbmctbG9uZ3giCi0JX2FyZ3MrPSIgLS1lbmFibGUtc2hhcmVk IgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpbmtlci1idWlsZC1pZCIKLQlfYXJncys9IiAtLWVuYWJs ZS1nbnUtdW5pcXVlLW9iamVjdCIKLQlfYXJncys9IiAtLWVuYWJsZS1saWJhZGEiCi0JX2FyZ3Mr PSIgLS1lbmFibGUtbHRvIgotCV9hcmdzKz0iIC0tZW5hYmxlLWRlZmF1bHQtcGllIgotCV9hcmdz Kz0iIC0tZW5hYmxlLWRlZmF1bHQtc3NwIgotCV9hcmdzKz0iIC0tZW5hYmxlLWdudS1pbmRpcmVj dC1mdW5jdGlvbiIKLQlfYXJncys9IiAtLWVuYWJsZS1saWJxdWFkbWF0aCIKLQlfYXJncys9IiAt LWRpc2FibGUtbGlic3NwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtcHgiCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLWxpYm11ZGZsYXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNhbml0aXplciIK LQlfYXJncys9IiAtLWRpc2FibGUtbGliY2lsa3J0cyIKLQlfYXJncys9IiAtLWRpc2FibGUtbGli aXRtIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJ2dHYiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxp YnN0ZGN4eC1wY2giCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGlic3RkY3h4LXRpbWUiCi0JX2FyZ3Mr PSIgLS13aXRoLWxpbmtlci1oYXNoLXN0eWxlPWdudSIKLQlfYXJncys9IiAke19mcHVmbGFnc30i Ci0KLQlDQz0iZ2NjIiBDRkxBR1M9Ii1PMiAtcGlwZSIgXAotCQkuLi9nY2MtJHtfZ2NjX3ZlcnNp b259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAke21ha2Vqb2JzfQotCi0JdG91Y2ggJHt3 cmtzcmN9Ly5nY2NfYnVpbGRfZG9uZQotfQotCi1kb19idWlsZCgpIHsKLQkjIEVuc3VyZSB3ZSB1 c2Ugc2FuZSBlbnZpcm9ubWVudAotCXVuc2V0IENDIENYWCBDUFAgTEQgQVMgQVIgUkFOTElCIE9C SkRVTVAgUkVBREVMRiBOTQotCXVuc2V0IENGTEFHUyBDWFhGTEFHUyBDUFBGTEFHUyBMREZMQUdT Ci0JZXhwb3J0IENGTEFHUz0iLU9zIiBDWFhGTEFHUz0iLU9zIgotCi0JZm9yIGYgaW4gaW5jbHVk ZSBsaWIgbGliZXhlYyBiaW4gc2JpbjsgZG8KLQkJaWYgWyAhIC1kICR7X3N5c3Jvb3R9L3Vzci8k e2Z9IF07IHRoZW4KLQkJCW1rZGlyIC1wICR7X3N5c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZpCi0JCWlm IFsgISAtaCAke19zeXNyb290fS8ke2Z9IF07IHRoZW4KLQkJCWxuIC1zZnIgJHtfc3lzcm9vdH0v dXNyLyR7Zn0gJHtfc3lzcm9vdH0vJHtmfQotCQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7X3N5 c3Jvb3R9L3Vzci9saWIzMgotCWxuIC1zZiB1c3IvbGliICR7X3N5c3Jvb3R9L2xpYjMyCi0KLQlf YmludXRpbHNfYnVpbGQKLQlfZ2NjX2Jvb3RzdHJhcAotCV9saW51eF9oZWFkZXJzCi0JX2dsaWJj X2hlYWRlcnMKLQlfZ2xpYmNfYnVpbGQKLQlfZ2NjX2J1aWxkCi19Ci0KLWRvX2luc3RhbGwoKSB7 Ci0JZm9yIGYgaW4gaW5jbHVkZSBsaWIgbGliZXhlYyBiaW4gc2JpbjsgZG8KLQkJaWYgWyAhIC1k ICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXTsgdGhlbgotCQkJbWtkaXIgLXAgJHtE RVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfQotCQlmaQotCQlpZiBbICEgLWggJHtERVNURElS fS8ke19zeXNyb290fS8ke2Z9IF07IHRoZW4KLQkJCWxuIC1zZnIgJHtERVNURElSfS8ke19zeXNy b290fS91c3IvJHtmfSBcCi0JCQkJJHtERVNURElSfS8ke19zeXNyb290fS8ke2Z9Ci0JCWZpCi0J ZG9uZQotCWxuIC1zZiBsaWIgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliMzIKLQlsbiAt c2YgdXNyL2xpYiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYjMyCi0KLQkjIGluc3RhbGwgY3Jv c3MgYmludXRpbHMKLQljZCAke3dya3NyY30vYmludXRpbHMtYnVpbGQKLQltYWtlIERFU1RESVI9 JHtERVNURElSfSBpbnN0YWxsCi0KLQkjIGluc3RhbGwgY3Jvc3MgZ2NjCi0JY2QgJHt3cmtzcmN9 L2djYy1idWlsZAotCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9IGluc3RhbGwKLQotCSMgbW92ZSBs aWJjYzEuc28qIHRvIHRoZSBzeXNyb290Ci0JbXYgJHtERVNURElSfS91c3IvbGliL2xpYmNjMS5z byogJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliCi0KLQkjIGluc3RhbGwgbGludXggQVBJ IGhlYWRlcnMgZm9yIHg4Ni4KLQljZCAke3dya3NyY30vbGludXgtJHtfbGludXhfdmVyc2lvbn0K LQltYWtlIEFSQ0g9eDg2IElOU1RBTExfSERSX1BBVEg9JHtERVNURElSfS8ke19zeXNyb290fS91 c3IgaGVhZGVyc19pbnN0YWxsCi0KLQlybSAtZiAkKGZpbmQgJHtERVNURElSfS8ke19zeXNyb290 fS91c3IvaW5jbHVkZSAtbmFtZSAuaW5zdGFsbCAtb3IgLW5hbWUgLi5pbnN0YWxsLmNtZCkKLQly bSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvaW5jbHVkZS9kcm0KLQotCSMgaW5zdGFs bCBnbGliYyBmb3IgdGFyZ2V0Ci0JY2QgJHt3cmtzcmN9L2dsaWJjLWJ1aWxkCi0JbWFrZSBpbnN0 YWxsX3Jvb3Q9JHtERVNURElSfS8ke19zeXNyb290fSBpbnN0YWxsIGluc3RhbGwtaGVhZGVycwot Ci0JIyBzeW1saW5rcyBmb3IgZ25hcmwgYW5kIGduYXQgc2hhcmVkIGxpYnJhcmllcwotCV9tYWpv cnZlcj0ke19nY2NfdmVyc2lvbiUuKi4qfQotCV9hZGFsaWI9dXNyL2xpYi9nY2MvJHtfdHJpcGxl dH0vJHtfZ2NjX3ZlcnNpb259L2FkYWxpYgotCW12IC12ICR7REVTVERJUn0vJHtfYWRhbGlifS9s aWJnbmFybC0ke19tYWpvcnZlcn0uc28gJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliCi0J bXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXQtJHtfbWFqb3J2ZXJ9LnNvICR7REVT VERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCWxuIC1zdmYgbGliZ25hcmwtJHtfbWFqb3J2ZXJ9 LnNvIGxpYmduYXJsLnNvCi0JbG4gLXN2ZiBsaWJnbmF0LSR7X21ham9ydmVyfS5zbyBsaWJnbmF0 LnNvCi0Jcm0gLXZmICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmF7cmwsdH0uc28KLQotCSMg V2UgbmVlZCB0byBidWlsZCBsaWJhdG9taWMgaW4gdGFyZ2V0IGdjYyBhcyBnY2NnbyBuZWVkcyBp dCB0bwotCSMgYnVpbGQuLi4gYnV0IGl0J3Mgbm90IG5lZWRlZCBhdCBydW50aW1lLCBzbyByZW1v dmUgaXQgZnJvbSB0aGUKLQkjIGRlc3RkaXIgc28gaXQgZG9lc24ndCBjb25mbGljdCB3aXRoIHRo ZSBsaWJhdG9taWMgcGFja2FnZQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xp Yi9saWJhdG9taWMuKgotCi0JIyBSZW1vdmUgdW5uZWNlc3Nhcnkgc3R1ZmYKLQlybSAtZiAke0RF U1RESVJ9L3Vzci9saWIqL2xpYmliZXJ0eS5hCi0Jcm0gLXJmICR7REVTVERJUn0vdXNyL3NoYXJl Ci0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0ve3NiaW4sbGliLGV0Yyx2YXJ9Ci0Jcm0g LXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL3tzYmluLHNoYXJlLGxpYmV4ZWN9Ci0Jcm0g LWYgJHtERVNURElSfS8ke19zeXNyb290fS9saWJleGVjCi19Ci0KIGNyb3NzLWk2ODYtcGMtbGlu dXgtZ251LWxpYmNfcGFja2FnZSgpIHsKIAlzaG9ydF9kZXNjKz0iIC0gZ2xpYmMgZmlsZXMiCiAJ bm9zdHJpcD15ZXMKIAlub3ZlcmlmeXJkZXBzPXllcwogCW5vc2hsaWJwcm92aWRlcz15ZXMKKwog CXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAke19zeXNyb290fQorCQl2bW92ZSB1c3IvJHtjcm9z c190cmlwbGV0fQogCX0KIH0KCkZyb20gMzY2NWFlZDlmMGJkMzNiM2ExYjQxNGVjYjVhNjMyZDQ1 OTc5MGI4OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogcTY2IDxkYW5pZWxAb2N0YWZv cmdlLm9yZz4KRGF0ZTogRnJpLCAyNSBEZWMgMjAyMCAyMjo1Nzo0MSArMDEwMApTdWJqZWN0OiBb UEFUQ0ggMTIvMTZdIGNyb3NzLWk2ODYtbGludXgtbXVzbDogcmV3b3JrIHdpdGggdm9pZC1jcm9z cwoKLS0tCiBzcmNwa2dzL2Nyb3NzLWk2ODYtbGludXgtbXVzbC90ZW1wbGF0ZSB8IDMxOSArKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjMgaW5zZXJ0aW9ucygrKSwg Mjk2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY3Jvc3MtaTY4Ni1saW51eC1t dXNsL3RlbXBsYXRlIGIvc3JjcGtncy9jcm9zcy1pNjg2LWxpbnV4LW11c2wvdGVtcGxhdGUKaW5k ZXggOGQwOWU0YzdlMDUuLmQ1YjJmMGMxOTE3IDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nyb3NzLWk2 ODYtbGludXgtbXVzbC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Nyb3NzLWk2ODYtbGludXgtbXVz bC90ZW1wbGF0ZQpAQCAtMSwxOSArMSwxOCBAQAotIyBUZW1wbGF0ZSBidWlsZCBmaWxlIGZvciAn Y3Jvc3MtaTY4Ni1saW51eC1tdXNsJwotIworIyBUZW1wbGF0ZSBmaWxlIGZvciAnY3Jvc3MtaTY4 Ni1saW51eC1tdXNsJworX3RyaXBsZXQ9aTY4Ni1saW51eC1tdXNsCiBfYmludXRpbHNfdmVyc2lv bj0yLjMyCiBfZ2NjX3ZlcnNpb249OS4zLjAKIF9tdXNsX3ZlcnNpb249MS4xLjI0CiBfbGludXhf dmVyc2lvbj00LjE5CiBfbGlidWNvbnRleHRfdmVyc2lvbj0wLjkuMAotCi1fdHJpcGxldD1pNjg2 LWxpbnV4LW11c2wKLV9zeXNyb290PSIvdXNyLyR7X3RyaXBsZXR9IgotX2FyY2hmbGFncz0iLW1h cmNoPWk2ODYiCi0KIHBrZ25hbWU9Y3Jvc3MtJHtfdHJpcGxldH0KIHZlcnNpb249MC4zMwogcmV2 aXNpb249Mwotc2hvcnRfZGVzYz0iQ3Jvc3MgdG9vbGNoYWluIGZvciBpNjg2IHRhcmdldCAobXVz bCkiCitidWlsZF9zdHlsZT12b2lkLWNyb3NzCitob3N0bWFrZWRlcGVuZHM9InRhciBnY2Mtb2Jq YyBnY2MtZ28gZmxleCBwZXJsIHB5dGhvbjMiCittYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGli bXBjLWRldmVsIHpsaWItZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwiCitkZXBlbmRzPSIke3Br Z25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKK3Nob3J0X2Rlc2M9IlZvaWQgY3Jv c3MgdG9vbGNoYWluIGZvciAke190cmlwbGV0fSIKIG1haW50YWluZXI9IkrDvHJnZW4gQnVjaG3D vGxsZXIgPHB1bGxtb2xsQHQtb25saW5lLmRlPiIKIGhvbWVwYWdlPSJodHRwczovL3d3dy52b2lk bGludXgub3JnLyIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdQTC0zLjAtb3ItbGF0ZXIs IE1JVCIKQEAgLTI5LDI5NCArMjgsMjEgQEAgY2hlY2tzdW09IjBhYjZjNTVkZDg2YTkyZWQ1NjE5 NzJiYTE1YjliNzBhOGI5Zjc1NTU3Zjg5NjQ0NmM4MmU4YjM2ZTQ3M2VlMDQKICAwYzY4ZjU2NTU1 MjhhZWQ0Zjk5ZGFlNzFhNWIyNTllZGM5MzIzOWZhODk5ZTJkZjc5YzA1NTI3NWMyMTc0OWExCiAg MGQ1M2E0MTVhMzA3ZWYxNzUxNTNiYmU2MGE1NzJjOTQwYTkyMmNiNzM2Y2UxMzUzMGI2NjZlN2Vj Mjc5NWQ2OCIKIAotbGliMzJkaXNhYmxlZD15ZXMKLW5vY3Jvc3M9eWVzCi1ub3BpZT15ZXMKLW5v ZGVidWc9eWVzCi1jcmVhdGVfd3Jrc3JjPXllcwotaG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2NjLW9i amMgZ2NjLWdvIGZsZXggcGVybCBweXRob24zIgotbWFrZWRlcGVuZHM9InpsaWItZGV2ZWwgZ21w LWRldmVsIG1wZnItZGV2ZWwgbGlibXBjLWRldmVsIGlzbDE1LWRldmVsIgotbm9zdHJpcF9maWxl cz0ibGliY2FmX3NpbmdsZS5hIGxpYmdjYy5hIGxpYmdjb3YuYSBsaWJnY2NfZWguYQotIGxpYmdu YXJsX3BpYy5hIGxpYmduYXJsLmEgbGliZ25hdF9waWMuYSBsaWJnbmF0LmEgbGliZ21lbS5hIgot ZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCi0KLWlmIFsg IiRYQlBTX1RBUkdFVF9NQUNISU5FIiA9ICJpNjg2LW11c2wiIF07IHRoZW4KLQlicm9rZW49IkNh bid0IGJ1aWxkIGNyb3NzdG9vbGNoYWluIHRvIGl0c2VsZiIKLWZpCi0KLV9hcHBseV9wYXRjaCgp IHsKLQlsb2NhbCBhcmdzPSIkMSIgcG5hbWU9IiQoYmFzZW5hbWUgJDIpIgotCi0JaWYgWyAhIC1m ICIuJHtwbmFtZX1fZG9uZSIgXTsgdGhlbgotCQlwYXRjaCAtTiAkYXJncyAtaSAkMgotCQl0b3Vj aCAuJHtwbmFtZX1fZG9uZQotCWZpCi19Ci0KLV9iaW51dGlsc19idWlsZCgpIHsKLQlsb2NhbCBf YXJncwotCi0JWyAtZiAke3dya3NyY30vLmJpbnV0aWxzX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4g MAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgYmludXRpbHMg Ym9vdHN0cmFwXG4iCi0KLQlbICEgLWQgYmludXRpbHMtYnVpbGQgXSAmJiBta2RpciBiaW51dGls cy1idWlsZAotCWNkIGJpbnV0aWxzLWJ1aWxkCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2Fy Z3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtf c3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUt bXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXdlcnJvciIKLQlfYXJncys9IiAtLWRpc2Fi bGUtc2hhcmVkIgotCV9hcmdzKz0iIC0td2l0aC1zeXN0ZW0temxpYiIKLQlfYXJncys9IiAke19m cHVmbGFnc30iCi0KLQkuLi9iaW51dGlscy0ke19iaW51dGlsc192ZXJzaW9ufS9jb25maWd1cmUg JHtfYXJnc30KLQotCW1ha2UgY29uZmlndXJlLWhvc3QKLQltYWtlICR7bWFrZWpvYnN9Ci0JbWFr ZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmJpbnV0aWxzX2J1aWxkX2RvbmUKLX0KLQot X2djY19ib290c3RyYXAoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5nY2Nf Ym9vdHN0cmFwX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L2djYy0ke19nY2Nf dmVyc2lvbn0KLQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9nY2MvcGF0Y2hlcy8qLnBhdGNo OyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAwICIkZiIKLQlkb25lCi0JZm9yIGYgaW4gJHtYQlBTX1NS Q1BLR0RJUn0vZ2NjL2ZpbGVzLyotbXVzbC5wYXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMSAi JGYiCi0JZG9uZQotCi0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2NjIGJvb3RzdHJhcFxu IgotCi0JWyAhIC1kIC4uL2djYy1ib290c3RyYXAgXSAmJiBta2RpciAuLi9nY2MtYm9vdHN0cmFw Ci0JY2QgLi4vZ2NjLWJvb3RzdHJhcAotCi0JX2FyZ3M9Ii0tdGFyZ2V0PSR7X3RyaXBsZXR9Igot CV9hcmdzKz0iIC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tcHJlZml4 PS91c3IiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGFuZ3VhZ2VzPWMiCi0JX2FyZ3MrPSIgLS13aXRo LW5ld2xpYiIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1s aWJzc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnF1YWRtYXRoIgotCV9hcmdzKz0iIC0tZGlz YWJsZS10aHJlYWRzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1kZWNpbWFsLWZsb2F0IgotCV9hcmdz Kz0iIC0tZGlzYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm1weCIKLQlfYXJn cys9IiAtLWRpc2FibGUtbGlibXVkZmxhcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliZ29tcCIK LQlfYXJncys9IiAtLWRpc2FibGUtbGliYXRvbWljIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zeW12 ZXJzIgotCV9hcmdzKz0iIGxpYmF0X2N2X2hhdmVfaWZ1bmM9bm8iCi0JX2FyZ3MrPSIgJHtfZnB1 ZmxhZ3N9IgotCUNGTEFHUz0iLU8wIC1nMCIgQ1hYRkxBR1M9Ii1PMCAtZzAiIFwKLQkJLi4vZ2Nj LSR7X2djY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30K LQltYWtlIGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJhcF9kb25lCi19 Ci0KLV9saW51eF9oZWFkZXJzKCkgewotCVsgLWYgJHt3cmtzcmN9Ly5saW51eF9idWlsZF9kb25l IF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIExp bnV4IEFQSSBoZWFkZXJzXG4iCi0KLQljZCBsaW51eC0ke19saW51eF92ZXJzaW9ufQotCi0JZm9y IGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0va2VybmVsLWxpYmMtaGVhZGVycy9wYXRjaGVzLyoucGF0 Y2g7IGRvCi0JCV9hcHBseV9wYXRjaCAtcDAgJGYKLQlkb25lCi0KLQltYWtlIEFSQ0g9eDg2IGhl YWRlcnNfY2hlY2sKLQltYWtlIEFSQ0g9eDg2IElOU1RBTExfSERSX1BBVEg9JHtfc3lzcm9vdH0v dXNyIGhlYWRlcnNfaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5saW51eF9idWlsZF9kb25l Ci19Ci0KLV9tdXNsX2J1aWxkKCkgewotCVsgLWYgJHt3cmtzcmN9Ly5tdXNsX2J1aWxkX2RvbmUg XSAmJiByZXR1cm4gMAorY3Jvc3NfdHJpcGxldD0ke190cmlwbGV0fQorY3Jvc3Nfd29yZHNpemU9 MzIKK2Nyb3NzX2xpYmM9bXVzbAorY3Jvc3NfYmludXRpbHNfdmVyc2lvbj0ke19iaW51dGlsc192 ZXJzaW9ufQorY3Jvc3NfZ2NjX3ZlcnNpb249JHtfZ2NjX3ZlcnNpb259Citjcm9zc19tdXNsX3Zl cnNpb249JHtfbXVzbF92ZXJzaW9ufQorY3Jvc3NfbGludXhfdmVyc2lvbj0ke19saW51eF92ZXJz aW9ufQorY3Jvc3NfbGlidWNvbnRleHRfdmVyc2lvbj0ke19saWJ1Y29udGV4dF92ZXJzaW9ufQor Y3Jvc3NfbGlidWNvbnRleHRfYXJjaD14ODYKK2Nyb3NzX2xpbnV4X2FyY2g9eDg2Citjcm9zc19t dXNsX2NmbGFncz0iLU8yIC1tYXJjaD1pNjg2IC1tdHVuZT1nZW5lcmljIgogCi0JY2QgJHt3cmtz cmN9L211c2wtJHtfbXVzbF92ZXJzaW9ufQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIG11 c2wgbGliY1xuIgotCi0JIyBBcHBseSBtdXNsIHBhdGNoZXMgaWYgdGhlcmUgYXJlIGFueQotCWlm IFsgLWQgIiR7WEJQU19TUkNQS0dESVJ9L211c2wvcGF0Y2hlcyIgXTsgdGhlbgotCQlmb3IgZiBp biAke1hCUFNfU1JDUEtHRElSfS9tdXNsL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJCV9hcHBseV9w YXRjaCAtcDAgIiRmIgotCQlkb25lCi0JZmkKLQotCUNDPSIke190cmlwbGV0fS1nY2MiIENGTEFH Uz0iLU9zIC1waXBlIC1mUElDICR7X2FyY2hmbGFnc30iIFwKLQkJLi9jb25maWd1cmUgLS1wcmVm aXg9L3VzcgotCi0JbWFrZSAke21ha2Vqb2JzfQotCW1ha2UgREVTVERJUj0ke19zeXNyb290fSBp bnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLm11c2xfYnVpbGRfZG9uZQotfQotCi1fbGlidWNv bnRleHRfYnVpbGQoKSB7Ci0JWyAtZiAke3dya3NyY30vLmxpYnVjb250ZXh0X2J1aWxkX2RvbmUg XSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L2xpYnVjb250ZXh0LSR7X2xpYnVjb250ZXh0 X3ZlcnNpb259Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgbGlidWNvbnRleHRcbiIKLQot CXZzZWQgLWkgYXJjaC94ODYvc3RhcnRjb250ZXh0LlMgLWUgXAotCSAicztfX2k2ODYuZ2V0X3Bj X3RodW5rLmJ4O2k2ODZfZ2V0X3BjX3RodW5rX2J4O2ciCi0KLQkjIGl0J3Mgb2sgaWYgd2UncmUg c3RhdGljIG9ubHkgaGVyZQotCUNDPSIke190cmlwbGV0fS1nY2MiIEFSPSIke190cmlwbGV0fS1h ciIgQVM9IiR7X3RyaXBsZXR9LWFzIiBcCi0JCUNGTEFHUz0iLU9zIC1waXBlICR7X2FyY2hmbGFn c30iIFwKLQkJbWFrZSBBUkNIPXg4NiBsaWJ1Y29udGV4dC5hCi0KLQljcCBsaWJ1Y29udGV4dC5h ICR7X3N5c3Jvb3R9L3Vzci9saWIKLQotCXRvdWNoICR7d3Jrc3JjfS8ubGlidWNvbnRleHRfYnVp bGRfZG9uZQotfQotCi1fZ2NjX2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0JWyAtZiAke3dya3Ny Y30vLmdjY19idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19u b3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdjYyBmaW5hbFxuIgotCi0JWyAhIC1kIGdjYy1idWlsZCBd ICYmIG1rZGlyIGdjYy1idWlsZAotCWNkIGdjYy1idWlsZAotCi0JX2FyZ3M9Ii0tdGFyZ2V0PSR7 X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdz Kz0iIC0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS1saWJleGVjZGlyPS91c3IvbGliIgotCV9h cmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jLGFkYSxjKyssb2JqYyxvYmotYysrLGdvLGZvcnRy YW4sbHRvIgotCV9hcmdzKz0iIC0tZW5hYmxlLWx0byIKLQlfYXJncys9IiAtLWVuYWJsZS1kZWZh dWx0LXBpZSIKLQlfYXJncys9IiAtLWVuYWJsZS1kZWZhdWx0LXNzcCIKLQlfYXJncys9IiAtLWVu YWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNhbml0aXplciIKLQlfYXJncys9 IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm1weCIKLQlfYXJn cys9IiAtLWRpc2FibGUtbGlibXVkZmxhcCIKLQlfYXJncys9IiAtLWVuYWJsZS1saWJhZGEiCi0J X2FyZ3MrPSIgLS1lbmFibGUtbGlicXVhZG1hdGgiCi0JX2FyZ3MrPSIgLS1lbmFibGUtc2hhcmVk IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zeW12ZXJzIgotCV9hcmdzKz0iIGxpYmF0X2N2X2hhdmVf aWZ1bmM9bm8iCi0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9IgotCi0JLi4vZ2NjLSR7X2djY192ZXJz aW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQotCXRvdWNoICR7 d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUKLX0KLQotZG9fYnVpbGQoKSB7Ci0JIyBFbnN1cmUgd2Ug dXNlIHNhbmUgZW52aXJvbm1lbnQKLQl1bnNldCBDQyBDWFggQ1BQIExEIEFTIEFSIFJBTkxJQiBP QkpEVU1QIFJFQURFTEYgTk0KLQl1bnNldCBDRkxBR1MgQ1hYRkxBR1MgQ1BQRkxBR1MgTERGTEFH UwotCWV4cG9ydCBDRkxBR1M9Ii1PcyAtcGlwZSIgQ1hYRkxBR1M9Ii1PcyAtcGlwZSIKLQotCWZv ciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47IGRvCi0JCWlmIFsgISAtZCAke19z eXNyb290fS91c3IvJHtmfSBdOyB0aGVuCi0JCQlta2RpciAtcCAke19zeXNyb290fS91c3IvJHtm fQotCQlmaQotCQlpZiBbICEgLWggJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2Zy ICR7X3N5c3Jvb3R9L3Vzci8ke2Z9ICR7X3N5c3Jvb3R9LyR7Zn0KLQkJZmkKLQlkb25lCi0JbG4g LXNmIGxpYiAke19zeXNyb290fS91c3IvbGliMzIKLQlsbiAtc2YgdXNyL2xpYiAke19zeXNyb290 fS9saWIzMgotCi0JX2JpbnV0aWxzX2J1aWxkCi0JX2djY19ib290c3RyYXAKLQlfbGludXhfaGVh ZGVycwotCV9tdXNsX2J1aWxkCi0JX2xpYnVjb250ZXh0X2J1aWxkCi0JX2djY19idWlsZAotfQot Ci1kb19pbnN0YWxsKCkgewotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47 IGRvCi0JCWlmIFsgISAtZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4K LQkJCW1rZGlyIC1wICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkKLQkJaWYg WyAhIC1oICR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7 REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXAotCQkJCSR7REVTVERJUn0vJHtfc3lzcm9v dH0vJHtmfQotCQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7REVTVERJUn0vJHtfc3lzcm9vdH0v dXNyL2xpYjMyCi0JbG4gLXNmIHVzci9saWIgJHtERVNURElSfS8ke19zeXNyb290fS9saWIzMgot Ci0JIyBpbnN0YWxsIGxpbnV4IEFQSSBoZWFkZXJzIGZvciB4ODYKLQljZCAke3dya3NyY30vbGlu dXgtJHtfbGludXhfdmVyc2lvbn0KLQltYWtlIEFSQ0g9eDg2IElOU1RBTExfSERSX1BBVEg9JHtE RVNURElSfS8ke19zeXNyb290fS91c3IgaGVhZGVyc19pbnN0YWxsCi0Jcm0gLWYgJChmaW5kICR7 REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUgLW5hbWUgLmluc3RhbGwgLW9yIC1uYW1l IC4uaW5zdGFsbC5jbWQpCi0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2luY2x1 ZGUvZHJtCi0KLQkjIGluc3RhbGwgY3Jvc3MgYmludXRpbHMKLQljZCAke3dya3NyY30vYmludXRp bHMtYnVpbGQKLQltYWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0KLQkjIGluc3RhbGwg Y3Jvc3MgZ2NjCi0JY2QgJHt3cmtzcmN9L2djYy1idWlsZAotCW1ha2UgREVTVERJUj0ke0RFU1RE SVJ9IGluc3RhbGwKLQotCSMgbW92ZSBsaWJjYzEuc28qIHRvIHRoZSBzeXNyb290Ci0JbXYgJHtE RVNURElSfS91c3IvbGliL2xpYmNjMS5zbyogJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGli Ci0KLQkjIGluc3RhbGwgbXVzbCBsaWJjIGZvciB0YXJnZXQKLQljZCAke3dya3NyY30vbXVzbC0k e19tdXNsX3ZlcnNpb259Ci0JbWFrZSBERVNURElSPSR7REVTVERJUn0vJHtfc3lzcm9vdH0gaW5z dGFsbAotCi0JIyBSZW1vdmUgdXNlbGVzcyBoZWFkZXJzLgotCXJtIC1yZiAke0RFU1RESVJ9L3Vz ci9saWIvZ2NjLyR7X3RyaXBsZXR9LyovaW5jbHVkZS1maXhlZC8KLQotCSMgTWFrZSBsZC1tdXNs LWkzODYuc28uMSBzeW1saW5rIHJlbGF0aXZlIHRvIGN3ZC4KLQljZCAke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9L3Vzci9saWIKLQlsbiAtc2YgbGliYy5zbyBsZC1tdXNsLWkzODYuc28uMQotCi0JIyBN b3ZlIGZpbGVzIHRvIC91c3IvbGliIChsaWI2NCkuCi0JaWYgWyAtZCAke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9L3Vzci9saWI2NCBdOyB0aGVuCi0JCW12ICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNy L2xpYjY0LyogJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliLwotCQlybWRpciAke0RFU1RE SVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWI2NAotCWZpCi0KLQkjIHN5bWxpbmtzIGZvciBnbmFybCBh bmQgZ25hdCBzaGFyZWQgbGlicmFyaWVzCi0JX21ham9ydmVyPSR7X2djY192ZXJzaW9uJS4qLip9 Ci0JX2FkYWxpYj11c3IvbGliL2djYy8ke190cmlwbGV0fS8ke19nY2NfdmVyc2lvbn0vYWRhbGli Ci0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXJsLSR7X21ham9ydmVyfS5zbyAk e0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQltdiAtdiAke0RFU1RESVJ9LyR7X2FkYWxp Yn0vbGliZ25hdC0ke19tYWpvcnZlcn0uc28gJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGli Ci0JbG4gLXN2ZiBsaWJnbmFybC0ke19tYWpvcnZlcn0uc28gbGliZ25hcmwuc28KLQlsbiAtc3Zm IGxpYmduYXQtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXQuc28KLQlybSAtdmYgJHtERVNURElSfS8k e19hZGFsaWJ9L2xpYmduYXtybCx0fS5zbwotCi0JIyBXZSBuZWVkIHRvIGJ1aWxkIGxpYmF0b21p YyBpbiB0YXJnZXQgZ2NjIGFzIGdjY2dvIG5lZWRzIGl0IHRvCi0JIyBidWlsZC4uLiBidXQgaXQn cyBub3QgbmVlZGVkIGF0IHJ1bnRpbWUsIHNvIHJlbW92ZSBpdCBmcm9tIHRoZQotCSMgZGVzdGRp ciBzbyBpdCBkb2Vzbid0IGNvbmZsaWN0IHdpdGggdGhlIGxpYmF0b21pYyBwYWNrYWdlCi0Jcm0g LWYgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliL2xpYmF0b21pYy4qCi0KLQkjIFJlbW92 ZSB1bm5lY2Vzc2FyeSBzdHVmZgotCXJtIC1mICR7REVTVERJUn0vdXNyL2xpYiovbGliaWJlcnR5 LmEKLQlybSAtcmYgJHtERVNURElSfS91c3Ivc2hhcmUKLQlybSAtcmYgJHtERVNURElSfS8ke19z eXNyb290fS97ZXRjLHZhcn0KLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS91c3Ive3Ni aW4sc2hhcmUsbGliZXhlY30KLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYmV4ZWMK LQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYi8qLnB5Ci0Jcm0gLWYgJHtERVNURElS fS8ke19zeXNyb290fS97c2JpbixsaWJ9Citwb3N0X3BhdGNoKCkgeworCXZzZWQgLWkgbGlidWNv bnRleHQtJHtfbGlidWNvbnRleHRfdmVyc2lvbn0vYXJjaC94ODYvc3RhcnRjb250ZXh0LlMgXAor CQktZSBcICJzO19faTY4Ni5nZXRfcGNfdGh1bmsuYng7aTY4Nl9nZXRfcGNfdGh1bmtfYng7ZyIK IH0KIAogY3Jvc3MtaTY4Ni1saW51eC1tdXNsLWxpYmNfcGFja2FnZSgpIHsKQEAgLTMyNCw3ICs1 MCw4IEBAIGNyb3NzLWk2ODYtbGludXgtbXVzbC1saWJjX3BhY2thZ2UoKSB7CiAJbm9zdHJpcD15 ZXMKIAlub3ZlcmlmeXJkZXBzPXllcwogCW5vc2hsaWJwcm92aWRlcz15ZXMKKwogCXBrZ19pbnN0 YWxsKCkgewotCQl2bW92ZSAke19zeXNyb290fQorCQl2bW92ZSB1c3IvJHtjcm9zc190cmlwbGV0 fQogCX0KIH0KCkZyb20gZjgwZTBhMmU4NGQxZTBlNzM1YzliODljZGNjZGQ1MDE2MDAzOTE3ZiBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogcTY2IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4K RGF0ZTogU2F0LCAyNiBEZWMgMjAyMCAwMDowOTo1NyArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTMv MTZdIGNyb3NzLW1pcHMtbGludXgtbXVzbDogcmVkbyB3aXRoIHZvaWQtY3Jvc3MKCi0tLQogc3Jj cGtncy9jcm9zcy1taXBzLWxpbnV4LW11c2wvdGVtcGxhdGUgfCAyOTAgKystLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDIyIGluc2VydGlvbnMoKyksIDI2OCBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nyb3NzLW1pcHMtbGludXgtbXVzbC90ZW1wbGF0 ZSBiL3NyY3BrZ3MvY3Jvc3MtbWlwcy1saW51eC1tdXNsL3RlbXBsYXRlCmluZGV4IDE5ZjYwMGM5 ZTVhLi5mN2ZiOTQxZDYzMyAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy1taXBzLWxpbnV4LW11 c2wvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9jcm9zcy1taXBzLWxpbnV4LW11c2wvdGVtcGxhdGUK QEAgLTEsMjk2ICsxLDUwIEBACi0jIFRlbXBsYXRlIGJ1aWxkIGZpbGUgZm9yICdjcm9zcy1taXBz LWxpbnV4LW11c2wnCi0jCisjIFRlbXBsYXRlIGZpbGUgZm9yICdjcm9zcy1taXBzLWxpbnV4LW11 c2wnCitfdHJpcGxldD1taXBzLWxpbnV4LW11c2wKIF9iaW51dGlsc192ZXJzaW9uPTIuMzIKIF9n Y2NfdmVyc2lvbj05LjMuMAogX211c2xfdmVyc2lvbj0xLjEuMjQKIF9saW51eF92ZXJzaW9uPTQu MTkKLQotX3RyaXBsZXQ9bWlwcy1saW51eC1tdXNsCi1fZnB1ZmxhZ3M9Ii0td2l0aC1mbG9hdD1z b2Z0IC0td2l0aG91dC1mcCIKLV9hcmNoZmxhZ3M9Ii1tYXJjaD1taXBzMzJyMiAtbXNvZnQtZmxv YXQiCi1fc3lzcm9vdD0iL3Vzci8ke190cmlwbGV0fSIKLQogcGtnbmFtZT1jcm9zcy0ke190cmlw bGV0fQogdmVyc2lvbj0wLjMzCiByZXZpc2lvbj0zCi1zaG9ydF9kZXNjPSJDcm9zcyB0b29sY2hh aW4gZm9yIE1JUFMzMnIyIEJFIHNvZnRmbG9hdCB0YXJnZXQgKG11c2wpIgorYnVpbGRfc3R5bGU9 dm9pZC1jcm9zcworY29uZmlndXJlX2FyZ3M9Ii0td2l0aC1hcmNoPW1pcHMzMnIyIC0td2l0aC1m bG9hdD1zb2Z0CisgLS13aXRoLWxpbmtlci1oYXNoLXN0eWxlPXN5c3YiCitob3N0bWFrZWRlcGVu ZHM9InRhciBnY2Mtb2JqYyBmbGV4IHBlcmwgcHl0aG9uMyIKK21ha2VkZXBlbmRzPSJpc2wxNS1k ZXZlbCBsaWJtcGMtZGV2ZWwgemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbCIKK2RlcGVu ZHM9IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259Igorc2hvcnRfZGVzYz0i Vm9pZCBjcm9zcyB0b29sY2hhaW4gZm9yICR7X3RyaXBsZXR9IgogbWFpbnRhaW5lcj0iT3JwaGFu ZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKIGhvbWVwYWdlPSJodHRwczovL3d3dy52b2lkbGlu dXgub3JnLyIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdQTC0zLjAtb3ItbGF0ZXIsIE1J VCIKIGRpc3RmaWxlcz0iCiAgJHtHTlVfU0lURX0vYmludXRpbHMvYmludXRpbHMtJHtfYmludXRp bHNfdmVyc2lvbn0udGFyLnh6CiAgJHtHTlVfU0lURX0vZ2NjL2djYy0ke19nY2NfdmVyc2lvbn0v Z2NjLSR7X2djY192ZXJzaW9ufS50YXIueHoKLSBodHRwOi8vd3d3Lm11c2wtbGliYy5vcmcvcmVs ZWFzZXMvbXVzbC0ke19tdXNsX3ZlcnNpb259LnRhci5negorIGh0dHBzOi8vd3d3Lm11c2wtbGli Yy5vcmcvcmVsZWFzZXMvbXVzbC0ke19tdXNsX3ZlcnNpb259LnRhci5negogICR7S0VSTkVMX1NJ VEV9L2tlcm5lbC92NC54L2xpbnV4LSR7X2xpbnV4X3ZlcnNpb259LnRhci54eiIKIGNoZWNrc3Vt PSIwYWI2YzU1ZGQ4NmE5MmVkNTYxOTcyYmExNWI5YjcwYThiOWY3NTU1N2Y4OTY0NDZjODJlOGIz NmU0NzNlZTA0CiAgNzFlMTk3ODY3NjExZjYwNTRhYTExMTliMTNhMGMwYWJhYzEyODM0NzY1ZmUy ZDgxZjM1YWM1N2Y4NGY3NDJkMQogIDEzNzBjOWE4MTJiMmNmMmE3ZDkyODAyNTEwY2NhMDA1OGNj MzdlNjZhN2JlZGQ3MDA1MWYwYTM0MDE1MDIyYTMKICAwYzY4ZjU2NTU1MjhhZWQ0Zjk5ZGFlNzFh NWIyNTllZGM5MzIzOWZhODk5ZTJkZjc5YzA1NTI3NWMyMTc0OWExIgogCi1saWIzMmRpc2FibGVk PXllcwotbm9jcm9zcz15ZXMKLW5vcGllPXllcwotbm9kZWJ1Zz15ZXMKLWNyZWF0ZV93cmtzcmM9 eWVzCi0KLWhvc3RtYWtlZGVwZW5kcz0idGFyIGdjYy1vYmpjIGZsZXggcGVybCBweXRob24zIgot bWFrZWRlcGVuZHM9InpsaWItZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwgbGlibXBjLWRldmVs IGlzbDE1LWRldmVsIgotbm9zdHJpcF9maWxlcz0ibGliY2FmX3NpbmdsZS5hIGxpYmdjYy5hIGxp Ymdjb3YuYSBsaWJnY2NfZWguYQotIGxpYmduYXJsX3BpYy5hIGxpYmduYXJsLmEgbGliZ25hdF9w aWMuYSBsaWJnbmF0LmEgbGliZ21lbS5hIgotZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7dmVy c2lvbn1fJHtyZXZpc2lvbn0iCi0KLV9hcHBseV9wYXRjaCgpIHsKLQlsb2NhbCBhcmdzPSIkMSIg cG5hbWU9IiQoYmFzZW5hbWUgJDIpIgotCi0JaWYgWyAhIC1mICIuJHtwbmFtZX1fZG9uZSIgXTsg dGhlbgotCQlwYXRjaCAtTiAkYXJncyAtaSAkMgotCQl0b3VjaCAuJHtwbmFtZX1fZG9uZQotCWZp Ci19Ci0KLV9iaW51dGlsc19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3Ny Y30vLmJpbnV0aWxzX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0J bXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgYmludXRpbHMgYm9vdHN0cmFwXG4iCi0KLQlbICEg LWQgYmludXRpbHMtYnVpbGQgXSAmJiBta2RpciBiaW51dGlscy1idWlsZAotCWNkIGJpbnV0aWxz LWJ1aWxkCi0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLXRhcmdldD0ke190 cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9 IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJncys9 IiAtLWRpc2FibGUtd2Vycm9yIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zaGFyZWQiCi0JX2FyZ3Mr PSIgLS13aXRoLXN5c3RlbS16bGliIgotCV9hcmdzKz0iICR7X2ZwdWZsYWdzfSIKLQotCS4uL2Jp bnV0aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSBj b25maWd1cmUtaG9zdCAmJiBtYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsCi0KLQl0b3Vj aCAke3dya3NyY30vLmJpbnV0aWxzX2J1aWxkX2RvbmUKLX0KLQotX2djY19ib290c3RyYXAoKSB7 Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUgXSAm JiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L2djYy0ke19nY2NfdmVyc2lvbn0KLQlmb3IgZiBp biAke1hCUFNfU1JDUEtHRElSfS9nY2MvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQlfYXBwbHlfcGF0 Y2ggLXAwICIkZiIKLQlkb25lCi0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2NjL2ZpbGVz LyotbXVzbC5wYXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMSAiJGYiCi0JZG9uZQotCi0JbXNn X25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2NjIGJvb3RzdHJhcFxuIgotCi0JWyAhIC1kIC4uL2dj Yy1ib290c3RyYXAgXSAmJiBta2RpciAuLi9nY2MtYm9vdHN0cmFwCi0JY2QgLi4vZ2NjLWJvb3Rz dHJhcAotCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJp cGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIg LS13aXRoLW5ld2xpYiIKLQlfYXJncys9IiAtLWVuYWJsZS1sYW5ndWFnZXM9YyIKLQlfYXJncys9 IiAtLXdpdGgtbmV3bGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlicXVhZG1hdGgiCi0JX2FyZ3Mr PSIgLS1kaXNhYmxlLXRocmVhZHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWRlY2ltYWwtZmxvYXQi Ci0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXB4 IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtdWRmbGFwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1s aWJnb21wIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJhdG9taWMiCi0JX2FyZ3MrPSIgJHtfZnB1 ZmxhZ3N9IgotCi0JQ0ZMQUdTPSItTzAgLWcwIiBDWFhGTEFHUz0iLU8wIC1nMCIgXAotCQkuLi9n Y2MtJHtfZ2NjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAke21ha2Vqb2Jz fQotCW1ha2UgaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUK LX0KLQotX2xpbnV4X2hlYWRlcnMoKSB7Ci0JWyAtZiAke3dya3NyY30vLmxpbnV4X2J1aWxkX2Rv bmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcg TGludXggQVBJIGhlYWRlcnNcbiIKLQotCWNkIGxpbnV4LSR7X2xpbnV4X3ZlcnNpb259Ci0KLQlm b3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9rZXJuZWwtbGliYy1oZWFkZXJzL3BhdGNoZXMvKi5w YXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMCAkZgotCWRvbmUKLQotCW1ha2UgQVJDSD1taXBz IGhlYWRlcnNfY2hlY2sKLQltYWtlIEFSQ0g9bWlwcyBJTlNUQUxMX0hEUl9QQVRIPSR7X3N5c3Jv b3R9L3VzciBoZWFkZXJzX2luc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8ubGludXhfYnVpbGRf ZG9uZQotfQotCi1fbXVzbF9idWlsZCgpIHsKLQlbIC1mICR7d3Jrc3JjfS8ubXVzbF9idWlsZF9k b25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9tdXNsLSR7X211c2xfdmVyc2lvbn0K LQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBtdXNsIGxpYmNcbiIKLQotCSMgQXBwbHkgbXVz bCBwYXRjaGVzIGlmIHRoZXJlIGFyZSBhbnkKLQlpZiBbIC1kICIke1hCUFNfU1JDUEtHRElSfS9t dXNsL3BhdGNoZXMiIF07IHRoZW4KLQkJZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vbXVzbC9w YXRjaGVzLyoucGF0Y2g7IGRvCi0JCQlfYXBwbHlfcGF0Y2ggLXAwICIkZiIKLQkJZG9uZQotCWZp Ci0KLQlDQz0iJHtfdHJpcGxldH0tZ2NjIiBDRkxBR1M9Ii1PcyAtcGlwZSAtZlBJQyAke19hcmNo ZmxhZ3N9IiBcCi0JCS4vY29uZmlndXJlIC0tcHJlZml4PS91c3IKLQotCW1ha2UgJHttYWtlam9i c30KLQltYWtlIERFU1RESVI9JHtfc3lzcm9vdH0gaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9 Ly5tdXNsX2J1aWxkX2RvbmUKLX0KLQotX2djY19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0J WyAtZiAke3dya3NyY30vLmdjY19idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jr c3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdjYyBmaW5hbFxuIgotCi0JWyAhIC1k IGdjYy1idWlsZCBdICYmIG1rZGlyIGdjYy1idWlsZAotCWNkIGdjYy1idWlsZAotCi0JX2FyZ3M9 Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3Mr PSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1saWJleGVjZGlyPS91 c3IvbGliIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jLGFkYSxjKyssb2JqYyxvYmot YysrLGZvcnRyYW4sbHRvIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpYmFkYSIKLQlfYXJncys9IiAt LWVuYWJsZS1sdG8iCi0JX2FyZ3MrPSIgLS1lbmFibGUtZGVmYXVsdC1waWUiCi0JX2FyZ3MrPSIg LS1lbmFibGUtZGVmYXVsdC1zc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNhbml0aXplciIK LQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIK LQlfYXJncys9IiAtLWRpc2FibGUtbGlicXVhZG1hdGgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxp Ym1weCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXVkZmxhcCIKLQlfYXJncys9IiAtLWRpc2Fi bGUtbGliYXRvbWljIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpYnNzcCIKLQlfYXJncys9IiAtLWVu YWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXN5bXZlcnMiCi0JX2FyZ3MrPSIgJHtf ZnB1ZmxhZ3N9IgotCi0JLi4vZ2NjLSR7X2djY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30K LQotCW1ha2UgJHttYWtlam9ic30KLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUK LX0KLQotZG9fYnVpbGQoKSB7Ci0JIyBFbnN1cmUgd2UgdXNlIHNhbmUgZW52aXJvbm1lbnQKLQl1 bnNldCBDQyBDWFggQ1BQIExEIEFTIEFSIFJBTkxJQiBPQkpEVU1QIFJFQURFTEYgTk0KLQl1bnNl dCBDRkxBR1MgQ1hYRkxBR1MgQ1BQRkxBR1MgTERGTEFHUwotCWV4cG9ydCBDRkxBR1M9Ii1PcyAt cGlwZSIgQ1hYRkxBR1M9Ii1PcyAtcGlwZSIKLQotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4 ZWMgYmluIHNiaW47IGRvCi0JCWlmIFsgISAtZCAke19zeXNyb290fS91c3IvJHtmfSBdOyB0aGVu Ci0JCQlta2RpciAtcCAke19zeXNyb290fS91c3IvJHtmfQotCQlmaQotCQlpZiBbICEgLWggJHtf c3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7X3N5c3Jvb3R9L3Vzci8ke2Z9ICR7 X3N5c3Jvb3R9LyR7Zn0KLQkJZmkKLQlkb25lCi0JbG4gLXNmIGxpYiAke19zeXNyb290fS91c3Iv bGliMzIKLQlsbiAtc2YgdXNyL2xpYiAke19zeXNyb290fS9saWIzMgotCi0JX2JpbnV0aWxzX2J1 aWxkCi0JX2djY19ib290c3RyYXAKLQlfbGludXhfaGVhZGVycwotCV9tdXNsX2J1aWxkCi0JX2dj Y19idWlsZAotfQotCi1kb19pbnN0YWxsKCkgewotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4 ZWMgYmluIHNiaW47IGRvCi0JCWlmIFsgISAtZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8k e2Z9IF07IHRoZW4KLQkJCW1rZGlyIC1wICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0K LQkJZmkKLQkJaWYgWyAhIC1oICR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0J CQlsbiAtc2ZyICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXAotCQkJCSR7REVTVERJ Un0vJHtfc3lzcm9vdH0vJHtmfQotCQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7REVTVERJUn0v JHtfc3lzcm9vdH0vdXNyL2xpYjMyCi0JbG4gLXNmIHVzci9saWIgJHtERVNURElSfS8ke19zeXNy b290fS9saWIzMgotCi0JIyBpbnN0YWxsIGxpbnV4IEFQSSBoZWFkZXJzCi0JY2QgJHt3cmtzcmN9 L2xpbnV4LSR7X2xpbnV4X3ZlcnNpb259Ci0JbWFrZSBBUkNIPW1pcHMgSU5TVEFMTF9IRFJfUEFU SD0ke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3VzciBoZWFkZXJzX2luc3RhbGwKLQlybSAtZiAkKGZp bmQgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvaW5jbHVkZSAtbmFtZSAuaW5zdGFsbCAtb3Ig LW5hbWUgLi5pbnN0YWxsLmNtZCkKLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS91c3Iv aW5jbHVkZS9kcm0KLQotCSMgaW5zdGFsbCBjcm9zcyBiaW51dGlscwotCWNkICR7d3Jrc3JjfS9i aW51dGlscy1idWlsZAotCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9IGluc3RhbGwKLQotCSMgaW5z dGFsbCBjcm9zcyBnY2MKLQljZCAke3dya3NyY30vZ2NjLWJ1aWxkCi0JbWFrZSBERVNURElSPSR7 REVTVERJUn0gaW5zdGFsbAotCi0JIyBtb3ZlIGxpYmNjMS5zbyogdG8gdGhlIHN5c3Jvb3QKLQlt diAke0RFU1RESVJ9L3Vzci9saWIvbGliY2MxLnNvKiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vz ci9saWIKLQotCSMgaW5zdGFsbCBtdXNsIGxpYmMgZm9yIHRhcmdldAotCWNkICR7d3Jrc3JjfS9t dXNsLSR7X211c2xfdmVyc2lvbn0KLQltYWtlIERFU1RESVI9JHtERVNURElSfS8ke19zeXNyb290 fSBpbnN0YWxsCi0KLQkjIFJlbW92ZSB1c2VsZXNzIGhlYWRlcnMuCi0Jcm0gLXJmICR7REVTVERJ Un0vdXNyL2xpYi9nY2MvJHtfdHJpcGxldH0vKi9pbmNsdWRlLWZpeGVkCi0KLQkjIE1ha2UgbGQt bXVzbC5zbyBzeW1saW5rcyByZWxhdGl2ZS4KLQlsbiAtc2YgbGliYy5zbyAke0RFU1RESVJ9LyR7 X3N5c3Jvb3R9L3Vzci9saWIvbGQtbXVzbC1taXBzLnNvLjEKLQlsbiAtc2YgbGliYy5zbyAke0RF U1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIvbGQtbXVzbC1taXBzLXNmLnNvLjEKLQotCSMgc3lt bGlua3MgZm9yIGduYXJsIGFuZCBnbmF0IHNoYXJlZCBsaWJyYXJpZXMKLQlfbWFqb3J2ZXI9JHtf Z2NjX3ZlcnNpb24lLiouKn0KLQlfYWRhbGliPXVzci9saWIvZ2NjLyR7X3RyaXBsZXR9LyR7X2dj Y192ZXJzaW9ufS9hZGFsaWIKLQltdiAtdiAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGliZ25hcmwt JHtfbWFqb3J2ZXJ9LnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCW12IC12ICR7 REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmF0LSR7X21ham9ydmVyfS5zbyAke0RFU1RESVJ9LyR7 X3N5c3Jvb3R9L3Vzci9saWIKLQlsbiAtc3ZmIGxpYmduYXJsLSR7X21ham9ydmVyfS5zbyBsaWJn bmFybC5zbwotCWxuIC1zdmYgbGliZ25hdC0ke19tYWpvcnZlcn0uc28gbGliZ25hdC5zbwotCXJt IC12ZiAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGliZ25he3JsLHR9LnNvCi0KLQkjIFJlbW92ZSB1 bm5lY2Vzc2FyeSBzdHVmZgotCXJtIC1mICR7REVTVERJUn0vdXNyL2xpYiovbGliaWJlcnR5LmEK LQlybSAtcmYgJHtERVNURElSfS91c3Ivc2hhcmUKLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNy b290fS97ZXRjLHZhcn0KLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS91c3Ive3NiaW4s c2hhcmUsbGliZXhlY30KLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYmV4ZWMKLQly bSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYi8qLnB5Ci0Jcm0gLWYgJHtERVNURElSfS8k e19zeXNyb290fS97c2JpbixsaWJ9Ci19Citjcm9zc190cmlwbGV0PSR7X3RyaXBsZXR9Citjcm9z c193b3Jkc2l6ZT0zMgorY3Jvc3NfbGliYz1tdXNsCitjcm9zc19iaW51dGlsc192ZXJzaW9uPSR7 X2JpbnV0aWxzX3ZlcnNpb259Citjcm9zc19nY2NfdmVyc2lvbj0ke19nY2NfdmVyc2lvbn0KK2Ny b3NzX211c2xfdmVyc2lvbj0ke19tdXNsX3ZlcnNpb259Citjcm9zc19saW51eF92ZXJzaW9uPSR7 X2xpbnV4X3ZlcnNpb259Citjcm9zc19saW51eF9hcmNoPWFybQorY3Jvc3NfZ2NjX3NraXBfZ289 eWVzCitjcm9zc19tdXNsX2NmbGFncz0iLU9zIC1tYXJjaD1taXBzMzJyMiAtbXNvZnQtZmxvYXQi CiAKIGNyb3NzLW1pcHMtbGludXgtbXVzbC1saWJjX3BhY2thZ2UoKSB7CiAJc2hvcnRfZGVzYys9 IiAtIGxpYmMgZmlsZXMiCiAJbm9zdHJpcD15ZXMKIAlub3ZlcmlmeXJkZXBzPXllcwogCW5vc2hs aWJwcm92aWRlcz15ZXMKKwogCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAke19zeXNyb290fQor CQl2bW92ZSB1c3IvJHtjcm9zc190cmlwbGV0fQogCX0KIH0KCkZyb20gZGVjMmNmNTRjYTZhNjIx ZGNjNmVlMGQxYmZmNzQwN2Y3ODI0M2NiMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog cTY2IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU2F0LCAyNiBEZWMgMjAyMCAwMDoxMDox MSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTQvMTZdIGNyb3NzLW1pcHMtbGludXgtbXVzbGhmOiBy ZWRvIHdpdGggdm9pZC1jcm9zcwoKLS0tCiBzcmNwa2dzL2Nyb3NzLW1pcHMtbGludXgtbXVzbGhm L3RlbXBsYXRlIHwgMjg3ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwg MjEgaW5zZXJ0aW9ucygrKSwgMjY2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv Y3Jvc3MtbWlwcy1saW51eC1tdXNsaGYvdGVtcGxhdGUgYi9zcmNwa2dzL2Nyb3NzLW1pcHMtbGlu dXgtbXVzbGhmL3RlbXBsYXRlCmluZGV4IDc5OTI4NjRhOGI2Li41ODNkM2VhNmRjZSAxMDA2NDQK LS0tIGEvc3JjcGtncy9jcm9zcy1taXBzLWxpbnV4LW11c2xoZi90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL2Nyb3NzLW1pcHMtbGludXgtbXVzbGhmL3RlbXBsYXRlCkBAIC0xLDE5ICsxLDE5IEBACi0j IFRlbXBsYXRlIGJ1aWxkIGZpbGUgZm9yICdjcm9zcy1taXBzLWxpbnV4LW11c2xoZicKLSMKKyMg VGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3NzLW1pcHMtbGludXgtbXVzbGhmJworX3RyaXBsZXQ9bWlw cy1saW51eC1tdXNsaGYKIF9iaW51dGlsc192ZXJzaW9uPTIuMzIKIF9nY2NfdmVyc2lvbj05LjMu MAogX211c2xfdmVyc2lvbj0xLjEuMjQKIF9saW51eF92ZXJzaW9uPTQuMTkKLQotX3RyaXBsZXQ9 bWlwcy1saW51eC1tdXNsaGYKLV9mcHVmbGFncz0iLS13aXRoLWZsb2F0PWhhcmQgLS13aXRoLWZw IgotX2FyY2hmbGFncz0iLW1hcmNoPW1pcHMzMnIyIC1taGFyZC1mbG9hdCIKLV9zeXNyb290PSIv dXNyLyR7X3RyaXBsZXR9IgotCiBwa2duYW1lPWNyb3NzLSR7X3RyaXBsZXR9CiB2ZXJzaW9uPTAu MzMKIHJldmlzaW9uPTMKLXNob3J0X2Rlc2M9IkNyb3NzIHRvb2xjaGFpbiBmb3IgTUlQUzMycjIg QkUgaGFyZGZsb2F0IHRhcmdldCAobXVzbCkiCitidWlsZF9zdHlsZT12b2lkLWNyb3NzCitjb25m aWd1cmVfYXJncz0iLS13aXRoLWFyY2g9bWlwczMycjIgLS13aXRoLWZsb2F0PWhhcmQKKyAtLXdp dGgtbGlua2VyLWhhc2gtc3R5bGU9c3lzdiIKK2hvc3RtYWtlZGVwZW5kcz0idGFyIGdjYy1vYmpj IGZsZXggcGVybCBweXRob24zIgorbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZl bCB6bGliLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIgorZGVwZW5kcz0iJHtwa2duYW1lfS1s aWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCitzaG9ydF9kZXNjPSJWb2lkIGNyb3NzIHRvb2xj aGFpbiBmb3IgJHtfdHJpcGxldH0iCiBtYWludGFpbmVyPSJoaXBwZXJzb24wIDxoaXBwZXJzb24w QGdtYWlsLmNvbT4iCiBob21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBsaWNl bnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBHUEwtMy4wLW9yLWxhdGVyLCBNSVQiCkBAIC0yNywyNjkg KzI3LDI0IEBAIGNoZWNrc3VtPSIwYWI2YzU1ZGQ4NmE5MmVkNTYxOTcyYmExNWI5YjcwYThiOWY3 NTU1N2Y4OTY0NDZjODJlOGIzNmU0NzNlZTA0CiAgMTM3MGM5YTgxMmIyY2YyYTdkOTI4MDI1MTBj Y2EwMDU4Y2MzN2U2NmE3YmVkZDcwMDUxZjBhMzQwMTUwMjJhMwogIDBjNjhmNTY1NTUyOGFlZDRm OTlkYWU3MWE1YjI1OWVkYzkzMjM5ZmE4OTllMmRmNzljMDU1Mjc1YzIxNzQ5YTEiCiAKLWxpYjMy ZGlzYWJsZWQ9eWVzCi1ub2Nyb3NzPXllcwotbm9waWU9eWVzCi1ub2RlYnVnPXllcwotY3JlYXRl X3dya3NyYz15ZXMKLQotaG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZmxleCBwZXJsIHB5 dGhvbjMiCi1tYWtlZGVwZW5kcz0iemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbCBsaWJt cGMtZGV2ZWwgaXNsMTUtZGV2ZWwiCi1ub3N0cmlwX2ZpbGVzPSJsaWJjYWZfc2luZ2xlLmEgbGli Z2NjLmEgbGliZ2Nvdi5hIGxpYmdjY19laC5hCi0gbGliZ25hcmxfcGljLmEgbGliZ25hcmwuYSBs aWJnbmF0X3BpYy5hIGxpYmduYXQuYSBsaWJnbWVtLmEiCi1kZXBlbmRzPSIke3BrZ25hbWV9LWxp YmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKLQotX2FwcGx5X3BhdGNoKCkgewotCWxvY2FsIGFy Z3M9IiQxIiBwbmFtZT0iJChiYXNlbmFtZSAkMikiCi0KLQlpZiBbICEgLWYgIi4ke3BuYW1lfV9k b25lIiBdOyB0aGVuCi0JCXBhdGNoIC1OICRhcmdzIC1pICQyCi0JCXRvdWNoIC4ke3BuYW1lfV9k b25lCi0JZmkKLX0KLQotX2JpbnV0aWxzX2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1m ICR7d3Jrc3JjfS8uYmludXRpbHNfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dy a3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBiaW51dGlscyBib290c3RyYXBcbiIK LQotCVsgISAtZCBiaW51dGlscy1idWlsZCBdICYmIG1rZGlyIGJpbnV0aWxzLWJ1aWxkCi0JY2Qg YmludXRpbHMtYnVpbGQKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tdGFy Z2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9Igot CV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgot CV9hcmdzKz0iIC0tZGlzYWJsZS13ZXJyb3IiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNoYXJlZCIK LQlfYXJncys9IiAtLXdpdGgtc3lzdGVtLXpsaWIiCi0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9Igot Ci0JLi4vYmludXRpbHMtJHtfYmludXRpbHNfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0K LQltYWtlIGNvbmZpZ3VyZS1ob3N0ICYmIG1ha2UgJHttYWtlam9ic30KLQltYWtlIGluc3RhbGwK LQotCXRvdWNoICR7d3Jrc3JjfS8uYmludXRpbHNfYnVpbGRfZG9uZQotfQotCi1fZ2NjX2Jvb3Rz dHJhcCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmdjY19ib290c3RyYXBf ZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30vZ2NjLSR7X2djY192ZXJzaW9ufQot CWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L2djYy9wYXRjaGVzLyoucGF0Y2g7IGRvCi0JCV9h cHBseV9wYXRjaCAtcDAgIiRmIgotCWRvbmUKLQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9n Y2MvZmlsZXMvKi1tdXNsLnBhdGNoOyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAxICIkZiIKLQlkb25l Ci0KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBnY2MgYm9vdHN0cmFwXG4iCi0KLQlbICEg LWQgLi4vZ2NjLWJvb3RzdHJhcCBdICYmIG1rZGlyIC4uL2djYy1ib290c3RyYXAKLQljZCAuLi9n Y2MtYm9vdHN0cmFwCi0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLXRhcmdl dD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlf YXJncys9IiAtLXdpdGgtbmV3bGliIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jIgot CV9hcmdzKz0iIC0td2l0aC1uZXdsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNzcCIKLQlf YXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJxdWFkbWF0aCIK LQlfYXJncys9IiAtLWRpc2FibGUtdGhyZWFkcyIKLQlfYXJncys9IiAtLWRpc2FibGUtZGVjaW1h bC1mbG9hdCIKLQlfYXJncys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJs ZS1saWJtcHgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm11ZGZsYXAiCi0JX2FyZ3MrPSIgLS1k aXNhYmxlLWxpYmdvbXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmF0b21pYyIKLQlfYXJncys9 IiAke19mcHVmbGFnc30iCi0KLQlDRkxBR1M9Ii1PMCAtZzAiIENYWEZMQUdTPSItTzAgLWcwIiBc Ci0JCS4uL2djYy0ke19nY2NfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlICR7 bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmdjY19ib290c3Ry YXBfZG9uZQotfQotCi1fbGludXhfaGVhZGVycygpIHsKLQlbIC1mICR7d3Jrc3JjfS8ubGludXhf YnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJC dWlsZGluZyBMaW51eCBBUEkgaGVhZGVyc1xuIgotCi0JY2QgbGludXgtJHtfbGludXhfdmVyc2lv bn0KLQotCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L2tlcm5lbC1saWJjLWhlYWRlcnMvcGF0 Y2hlcy8qLnBhdGNoOyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAwICRmCi0JZG9uZQotCi0JbWFrZSBB UkNIPW1pcHMgaGVhZGVyc19jaGVjawotCW1ha2UgQVJDSD1taXBzIElOU1RBTExfSERSX1BBVEg9 JHtfc3lzcm9vdH0vdXNyIGhlYWRlcnNfaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5saW51 eF9idWlsZF9kb25lCi19Ci0KLV9tdXNsX2J1aWxkKCkgewotCVsgLWYgJHt3cmtzcmN9Ly5tdXNs X2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L211c2wtJHtfbXVzbF92 ZXJzaW9ufQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIG11c2wgbGliY1xuIgotCi0JIyBB cHBseSBtdXNsIHBhdGNoZXMgaWYgdGhlcmUgYXJlIGFueQotCWlmIFsgLWQgIiR7WEJQU19TUkNQ S0dESVJ9L211c2wvcGF0Y2hlcyIgXTsgdGhlbgotCQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElS fS9tdXNsL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJCV9hcHBseV9wYXRjaCAtcDAgIiRmIgotCQlk b25lCi0JZmkKLQotCUNDPSIke190cmlwbGV0fS1nY2MiIENGTEFHUz0iLU9zIC1waXBlIC1mUElD ICR7X2FyY2hmbGFnc30iIFwKLQkJLi9jb25maWd1cmUgLS1wcmVmaXg9L3VzcgotCi0JbWFrZSAk e21ha2Vqb2JzfQotCW1ha2UgREVTVERJUj0ke19zeXNyb290fSBpbnN0YWxsCi0KLQl0b3VjaCAk e3dya3NyY30vLm11c2xfYnVpbGRfZG9uZQotfQotCi1fZ2NjX2J1aWxkKCkgewotCWxvY2FsIF9h cmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0J Y2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2NjIGZpbmFsXG4iCi0K LQlbICEgLWQgZ2NjLWJ1aWxkIF0gJiYgbWtkaXIgZ2NjLWJ1aWxkCi0JY2QgZ2NjLWJ1aWxkCi0K LQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIK LQlfYXJncys9IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLWxpYmV4 ZWNkaXI9L3Vzci9saWIiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGFuZ3VhZ2VzPWMsYWRhLGMrKyxv YmpjLG9iai1jKyssZm9ydHJhbixsdG8iCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGliYWRhIgotCV9h cmdzKz0iIC0tZW5hYmxlLWx0byIKLQlfYXJncys9IiAtLWVuYWJsZS1kZWZhdWx0LXBpZSIKLQlf YXJncys9IiAtLWVuYWJsZS1kZWZhdWx0LXNzcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlic2Fu aXRpemVyIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJncys9IiAtLWRpc2Fi bGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJxdWFkbWF0aCIKLQlfYXJncys9IiAtLWRp c2FibGUtbGlibXB4IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtdWRmbGFwIgotCV9hcmdzKz0i IC0tZGlzYWJsZS1saWJhdG9taWMiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGlic3NwIgotCV9hcmdz Kz0iIC0tZW5hYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWRpc2FibGUtc3ltdmVycyIKLQlfYXJn cys9IiAke19mcHVmbGFnc30iCi0KLQkuLi9nY2MtJHtfZ2NjX3ZlcnNpb259L2NvbmZpZ3VyZSAk e19hcmdzfQotCi0JbWFrZSAke21ha2Vqb2JzfQotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYnVp bGRfZG9uZQotfQotCi1kb19idWlsZCgpIHsKLQkjIEVuc3VyZSB3ZSB1c2Ugc2FuZSBlbnZpcm9u bWVudAotCXVuc2V0IENDIENYWCBDUFAgTEQgQVMgQVIgUkFOTElCIE9CSkRVTVAgUkVBREVMRiBO TQotCXVuc2V0IENGTEFHUyBDWFhGTEFHUyBDUFBGTEFHUyBMREZMQUdTCi0JZXhwb3J0IENGTEFH Uz0iLU9zIC1waXBlIiBDWFhGTEFHUz0iLU9zIC1waXBlIgotCi0JZm9yIGYgaW4gaW5jbHVkZSBs aWIgbGliZXhlYyBiaW4gc2JpbjsgZG8KLQkJaWYgWyAhIC1kICR7X3N5c3Jvb3R9L3Vzci8ke2Z9 IF07IHRoZW4KLQkJCW1rZGlyIC1wICR7X3N5c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZpCi0JCWlmIFsg ISAtaCAke19zeXNyb290fS8ke2Z9IF07IHRoZW4KLQkJCWxuIC1zZnIgJHtfc3lzcm9vdH0vdXNy LyR7Zn0gJHtfc3lzcm9vdH0vJHtmfQotCQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7X3N5c3Jv b3R9L3Vzci9saWIzMgotCWxuIC1zZiB1c3IvbGliICR7X3N5c3Jvb3R9L2xpYjMyCi0KLQlfYmlu dXRpbHNfYnVpbGQKLQlfZ2NjX2Jvb3RzdHJhcAotCV9saW51eF9oZWFkZXJzCi0JX211c2xfYnVp bGQKLQlfZ2NjX2J1aWxkCi19Ci0KLWRvX2luc3RhbGwoKSB7Ci0JZm9yIGYgaW4gaW5jbHVkZSBs aWIgbGliZXhlYyBiaW4gc2JpbjsgZG8KLQkJaWYgWyAhIC1kICR7REVTVERJUn0vJHtfc3lzcm9v dH0vdXNyLyR7Zn0gXTsgdGhlbgotCQkJbWtkaXIgLXAgJHtERVNURElSfS8ke19zeXNyb290fS91 c3IvJHtmfQotCQlmaQotCQlpZiBbICEgLWggJHtERVNURElSfS8ke19zeXNyb290fS8ke2Z9IF07 IHRoZW4KLQkJCWxuIC1zZnIgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfSBcCi0JCQkJ JHtERVNURElSfS8ke19zeXNyb290fS8ke2Z9Ci0JCWZpCi0JZG9uZQotCWxuIC1zZiBsaWIgJHtE RVNURElSfS8ke19zeXNyb290fS91c3IvbGliMzIKLQlsbiAtc2YgdXNyL2xpYiAke0RFU1RESVJ9 LyR7X3N5c3Jvb3R9L2xpYjMyCi0KLQkjIGluc3RhbGwgbGludXggQVBJIGhlYWRlcnMKLQljZCAk e3dya3NyY30vbGludXgtJHtfbGludXhfdmVyc2lvbn0KLQltYWtlIEFSQ0g9bWlwcyBJTlNUQUxM X0hEUl9QQVRIPSR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyIGhlYWRlcnNfaW5zdGFsbAotCXJt IC1mICQoZmluZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlIC1uYW1lIC5pbnN0 YWxsIC1vciAtbmFtZSAuLmluc3RhbGwuY21kKQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jv b3R9L3Vzci9pbmNsdWRlL2RybQotCi0JIyBpbnN0YWxsIGNyb3NzIGJpbnV0aWxzCi0JY2QgJHt3 cmtzcmN9L2JpbnV0aWxzLWJ1aWxkCi0JbWFrZSBERVNURElSPSR7REVTVERJUn0gaW5zdGFsbAot Ci0JIyBpbnN0YWxsIGNyb3NzIGdjYwotCWNkICR7d3Jrc3JjfS9nY2MtYnVpbGQKLQltYWtlIERF U1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0KLQkjIG1vdmUgbGliY2MxLnNvKiB0byB0aGUgc3lz cm9vdAotCW12ICR7REVTVERJUn0vdXNyL2xpYi9saWJjYzEuc28qICR7REVTVERJUn0vJHtfc3lz cm9vdH0vdXNyL2xpYgotCi0JIyBpbnN0YWxsIG11c2wgbGliYyBmb3IgdGFyZ2V0Ci0JY2QgJHt3 cmtzcmN9L211c2wtJHtfbXVzbF92ZXJzaW9ufQotCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9LyR7 X3N5c3Jvb3R9IGluc3RhbGwKLQotCSMgUmVtb3ZlIHVzZWxlc3MgaGVhZGVycy4KLQlybSAtcmYg JHtERVNURElSfS91c3IvbGliL2djYy8ke190cmlwbGV0fS8qL2luY2x1ZGUtZml4ZWQKLQotCSMg TWFrZSBsZC1tdXNsLnNvIHN5bWxpbmtzIHJlbGF0aXZlLgotCWxuIC1zZiBsaWJjLnNvICR7REVT VERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYi9sZC1tdXNsLW1pcHMuc28uMQotCi0JIyBzeW1saW5r cyBmb3IgZ25hcmwgYW5kIGduYXQgc2hhcmVkIGxpYnJhcmllcwotCV9tYWpvcnZlcj0ke19nY2Nf dmVyc2lvbiUuKi4qfQotCV9hZGFsaWI9dXNyL2xpYi9nY2MvJHtfdHJpcGxldH0vJHtfZ2NjX3Zl cnNpb259L2FkYWxpYgotCW12IC12ICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmFybC0ke19t YWpvcnZlcn0uc28gJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliCi0JbXYgLXYgJHtERVNU RElSfS8ke19hZGFsaWJ9L2xpYmduYXQtJHtfbWFqb3J2ZXJ9LnNvICR7REVTVERJUn0vJHtfc3lz cm9vdH0vdXNyL2xpYgotCWxuIC1zdmYgbGliZ25hcmwtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXJs LnNvCi0JbG4gLXN2ZiBsaWJnbmF0LSR7X21ham9ydmVyfS5zbyBsaWJnbmF0LnNvCi0Jcm0gLXZm ICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmF7cmwsdH0uc28KLQotCSMgUmVtb3ZlIHVubmVj ZXNzYXJ5IHN0dWZmCi0Jcm0gLWYgJHtERVNURElSfS91c3IvbGliKi9saWJpYmVydHkuYQotCXJt IC1yZiAke0RFU1RESVJ9L3Vzci9zaGFyZQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9 L3tldGMsdmFyfQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci97c2JpbixzaGFy ZSxsaWJleGVjfQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0vbGliZXhlYwotCXJtIC1m ICR7REVTVERJUn0vJHtfc3lzcm9vdH0vbGliLyoucHkKLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9L3tzYmluLGxpYn0KLX0KK2Nyb3NzX3RyaXBsZXQ9JHtfdHJpcGxldH0KK2Nyb3NzX3dv cmRzaXplPTMyCitjcm9zc19saWJjPW11c2wKK2Nyb3NzX2JpbnV0aWxzX3ZlcnNpb249JHtfYmlu dXRpbHNfdmVyc2lvbn0KK2Nyb3NzX2djY192ZXJzaW9uPSR7X2djY192ZXJzaW9ufQorY3Jvc3Nf bXVzbF92ZXJzaW9uPSR7X211c2xfdmVyc2lvbn0KK2Nyb3NzX2xpbnV4X3ZlcnNpb249JHtfbGlu dXhfdmVyc2lvbn0KK2Nyb3NzX2xpbnV4X2FyY2g9YXJtCitjcm9zc19nY2Nfc2tpcF9nbz15ZXMK K2Nyb3NzX211c2xfY2ZsYWdzPSItT3MgLW1hcmNoPW1pcHMzMnIyIC1taGFyZC1mbG9hdCIKIAog Y3Jvc3MtbWlwcy1saW51eC1tdXNsaGYtbGliY19wYWNrYWdlKCkgewogCXNob3J0X2Rlc2MrPSIg LSBsaWJjIGZpbGVzIgogCW5vc3RyaXA9eWVzCiAJbm92ZXJpZnlyZGVwcz15ZXMKIAlub3NobGli cHJvdmlkZXM9eWVzCisKIAlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgJHtfc3lzcm9vdH0KKwkJ dm1vdmUgdXNyLyR7Y3Jvc3NfdHJpcGxldH0KIAl9CiB9CgpGcm9tIGIwZDBmMDQxYzgxZDkzNjA2 MjhjMGU4NzUyZjU0MjdjZWY3MzFmYjAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IHE2 NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFNhdCwgMjYgRGVjIDIwMjAgMDA6MTE6NDUg KzAxMDAKU3ViamVjdDogW1BBVENIIDE1LzE2XSBjcm9zcy1taXBzZWwtbGludXgtbXVzbDogcmV3 b3JrIHdpdGggdm9pZC1jcm9zcwoKLS0tCiBzcmNwa2dzL2Nyb3NzLW1pcHNlbC1saW51eC1tdXNs L3RlbXBsYXRlIHwgMjkwICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwg MjIgaW5zZXJ0aW9ucygrKSwgMjY4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv Y3Jvc3MtbWlwc2VsLWxpbnV4LW11c2wvdGVtcGxhdGUgYi9zcmNwa2dzL2Nyb3NzLW1pcHNlbC1s aW51eC1tdXNsL3RlbXBsYXRlCmluZGV4IDBjOGI1MTliM2Y5Li5hNTc5MmMzZTI4NyAxMDA2NDQK LS0tIGEvc3JjcGtncy9jcm9zcy1taXBzZWwtbGludXgtbXVzbC90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL2Nyb3NzLW1pcHNlbC1saW51eC1tdXNsL3RlbXBsYXRlCkBAIC0xLDI5NiArMSw1MCBAQAot IyBUZW1wbGF0ZSBidWlsZCBmaWxlIGZvciAnY3Jvc3MtbWlwc2VsLWxpbnV4LW11c2wnCi0jCisj IFRlbXBsYXRlIGZpbGUgZm9yICdjcm9zcy1taXBzZWwtbGludXgtbXVzbCcKK190cmlwbGV0PW1p cHNlbC1saW51eC1tdXNsCiBfYmludXRpbHNfdmVyc2lvbj0yLjMyCiBfZ2NjX3ZlcnNpb249OS4z LjAKIF9tdXNsX3ZlcnNpb249MS4xLjI0CiBfbGludXhfdmVyc2lvbj00LjE5Ci0KLV90cmlwbGV0 PW1pcHNlbC1saW51eC1tdXNsCi1fZnB1ZmxhZ3M9Ii0td2l0aC1mbG9hdD1zb2Z0IC0td2l0aG91 dC1mcCIKLV9hcmNoZmxhZ3M9Ii1tYXJjaD1taXBzMzJyMiAtbXNvZnQtZmxvYXQiCi1fc3lzcm9v dD0iL3Vzci8ke190cmlwbGV0fSIKLQogcGtnbmFtZT1jcm9zcy0ke190cmlwbGV0fQogdmVyc2lv bj0wLjMzCiByZXZpc2lvbj0zCi1zaG9ydF9kZXNjPSJDcm9zcyB0b29sY2hhaW4gZm9yIE1JUFMz MnIyIExFIHNvZnRmbG9hdCB0YXJnZXQgKG11c2wpIgorYnVpbGRfc3R5bGU9dm9pZC1jcm9zcwor Y29uZmlndXJlX2FyZ3M9Ii0td2l0aC1hcmNoPW1pcHMzMnIyIC0td2l0aC1mbG9hdD1zb2Z0Cisg LS13aXRoLWxpbmtlci1oYXNoLXN0eWxlPXN5c3YiCitob3N0bWFrZWRlcGVuZHM9InRhciBnY2Mt b2JqYyBmbGV4IHBlcmwgcHl0aG9uMyIKK21ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMt ZGV2ZWwgemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbCIKK2RlcGVuZHM9IiR7cGtnbmFt ZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259Igorc2hvcnRfZGVzYz0iVm9pZCBjcm9zcyB0 b29sY2hhaW4gZm9yICR7X3RyaXBsZXR9IgogbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2 b2lkbGludXgub3JnPiIKIGhvbWVwYWdlPSJodHRwczovL3d3dy52b2lkbGludXgub3JnLyIKIGxp Y2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdQTC0zLjAtb3ItbGF0ZXIsIE1JVCIKIGRpc3RmaWxl cz0iCiAgJHtHTlVfU0lURX0vYmludXRpbHMvYmludXRpbHMtJHtfYmludXRpbHNfdmVyc2lvbn0u dGFyLnh6CiAgJHtHTlVfU0lURX0vZ2NjL2djYy0ke19nY2NfdmVyc2lvbn0vZ2NjLSR7X2djY192 ZXJzaW9ufS50YXIueHoKLSBodHRwOi8vd3d3Lm11c2wtbGliYy5vcmcvcmVsZWFzZXMvbXVzbC0k e19tdXNsX3ZlcnNpb259LnRhci5negorIGh0dHBzOi8vd3d3Lm11c2wtbGliYy5vcmcvcmVsZWFz ZXMvbXVzbC0ke19tdXNsX3ZlcnNpb259LnRhci5negogICR7S0VSTkVMX1NJVEV9L2tlcm5lbC92 NC54L2xpbnV4LSR7X2xpbnV4X3ZlcnNpb259LnRhci54eiIKIGNoZWNrc3VtPSIwYWI2YzU1ZGQ4 NmE5MmVkNTYxOTcyYmExNWI5YjcwYThiOWY3NTU1N2Y4OTY0NDZjODJlOGIzNmU0NzNlZTA0CiAg NzFlMTk3ODY3NjExZjYwNTRhYTExMTliMTNhMGMwYWJhYzEyODM0NzY1ZmUyZDgxZjM1YWM1N2Y4 NGY3NDJkMQogIDEzNzBjOWE4MTJiMmNmMmE3ZDkyODAyNTEwY2NhMDA1OGNjMzdlNjZhN2JlZGQ3 MDA1MWYwYTM0MDE1MDIyYTMKICAwYzY4ZjU2NTU1MjhhZWQ0Zjk5ZGFlNzFhNWIyNTllZGM5MzIz OWZhODk5ZTJkZjc5YzA1NTI3NWMyMTc0OWExIgogCi1saWIzMmRpc2FibGVkPXllcwotbm9jcm9z cz15ZXMKLW5vcGllPXllcwotbm9kZWJ1Zz15ZXMKLWNyZWF0ZV93cmtzcmM9eWVzCi0KLWhvc3Rt YWtlZGVwZW5kcz0idGFyIGdjYy1vYmpjIGZsZXggcGVybCBweXRob24zIgotbWFrZWRlcGVuZHM9 InpsaWItZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwgbGlibXBjLWRldmVsIGlzbDE1LWRldmVs Igotbm9zdHJpcF9maWxlcz0ibGliY2FmX3NpbmdsZS5hIGxpYmdjYy5hIGxpYmdjb3YuYSBsaWJn Y2NfZWguYQotIGxpYmduYXJsX3BpYy5hIGxpYmduYXJsLmEgbGliZ25hdF9waWMuYSBsaWJnbmF0 LmEgbGliZ21lbS5hIgotZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZp c2lvbn0iCi0KLV9hcHBseV9wYXRjaCgpIHsKLQlsb2NhbCBhcmdzPSIkMSIgcG5hbWU9IiQoYmFz ZW5hbWUgJDIpIgotCi0JaWYgWyAhIC1mICIuJHtwbmFtZX1fZG9uZSIgXTsgdGhlbgotCQlwYXRj aCAtTiAkYXJncyAtaSAkMgotCQl0b3VjaCAuJHtwbmFtZX1fZG9uZQotCWZpCi19Ci0KLV9iaW51 dGlsc19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmJpbnV0aWxz X2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAi QnVpbGRpbmcgY3Jvc3MgYmludXRpbHMgYm9vdHN0cmFwXG4iCi0KLQlbICEgLWQgYmludXRpbHMt YnVpbGQgXSAmJiBta2RpciBiaW51dGlscy1idWlsZAotCWNkIGJpbnV0aWxzLWJ1aWxkCi0KLQlf YXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlf YXJncys9IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLWRpc2FibGUt bmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJncys9IiAtLWRpc2FibGUt d2Vycm9yIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS13aXRoLXN5 c3RlbS16bGliIgotCV9hcmdzKz0iICR7X2ZwdWZsYWdzfSIKLQotCS4uL2JpbnV0aWxzLSR7X2Jp bnV0aWxzX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSBjb25maWd1cmUtaG9z dCAmJiBtYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30v LmJpbnV0aWxzX2J1aWxkX2RvbmUKLX0KLQotX2djY19ib290c3RyYXAoKSB7Ci0JbG9jYWwgX2Fy Z3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUgXSAmJiByZXR1cm4gMAot Ci0JY2QgJHt3cmtzcmN9L2djYy0ke19nY2NfdmVyc2lvbn0KLQlmb3IgZiBpbiAke1hCUFNfU1JD UEtHRElSfS9nY2MvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAwICIkZiIK LQlkb25lCi0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2NjL2ZpbGVzLyotbXVzbC5wYXRj aDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMSAiJGYiCi0JZG9uZQotCi0JbXNnX25vcm1hbCAiQnVp bGRpbmcgY3Jvc3MgZ2NjIGJvb3RzdHJhcFxuIgotCi0JWyAhIC1kIC4uL2djYy1ib290c3RyYXAg XSAmJiBta2RpciAuLi9nY2MtYm9vdHN0cmFwCi0JY2QgLi4vZ2NjLWJvb3RzdHJhcAotCi0JX2Fy Z3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2Fy Z3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS13aXRoLW5ld2xp YiIKLQlfYXJncys9IiAtLWVuYWJsZS1sYW5ndWFnZXM9YyIKLQlfYXJncys9IiAtLXdpdGgtbmV3 bGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5s cyIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlicXVhZG1hdGgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LXRocmVhZHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWRlY2ltYWwtZmxvYXQiCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXB4IgotCV9hcmdzKz0i IC0tZGlzYWJsZS1saWJtdWRmbGFwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJnb21wIgotCV9h cmdzKz0iIC0tZGlzYWJsZS1saWJhdG9taWMiCi0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9IgotCi0J Q0ZMQUdTPSItTzAgLWcwIiBDWFhGTEFHUz0iLU8wIC1nMCIgXAotCQkuLi9nY2MtJHtfZ2NjX3Zl cnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAke21ha2Vqb2JzfQotCW1ha2UgaW5z dGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUKLX0KLQotX2xpbnV4 X2hlYWRlcnMoKSB7Ci0JWyAtZiAke3dya3NyY30vLmxpbnV4X2J1aWxkX2RvbmUgXSAmJiByZXR1 cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgTGludXggQVBJIGhl YWRlcnNcbiIKLQotCWNkIGxpbnV4LSR7X2xpbnV4X3ZlcnNpb259Ci0KLQlmb3IgZiBpbiAke1hC UFNfU1JDUEtHRElSfS9rZXJuZWwtbGliYy1oZWFkZXJzL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJ X2FwcGx5X3BhdGNoIC1wMCAkZgotCWRvbmUKLQotCW1ha2UgQVJDSD1taXBzIGhlYWRlcnNfY2hl Y2sKLQltYWtlIEFSQ0g9bWlwcyBJTlNUQUxMX0hEUl9QQVRIPSR7X3N5c3Jvb3R9L3VzciBoZWFk ZXJzX2luc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8ubGludXhfYnVpbGRfZG9uZQotfQotCi1f bXVzbF9idWlsZCgpIHsKLQlbIC1mICR7d3Jrc3JjfS8ubXVzbF9idWlsZF9kb25lIF0gJiYgcmV0 dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9tdXNsLSR7X211c2xfdmVyc2lvbn0KLQltc2dfbm9ybWFs ICJCdWlsZGluZyBjcm9zcyBtdXNsIGxpYmNcbiIKLQotCSMgQXBwbHkgbXVzbCBwYXRjaGVzIGlm IHRoZXJlIGFyZSBhbnkKLQlpZiBbIC1kICIke1hCUFNfU1JDUEtHRElSfS9tdXNsL3BhdGNoZXMi IF07IHRoZW4KLQkJZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vbXVzbC9wYXRjaGVzLyoucGF0 Y2g7IGRvCi0JCQlfYXBwbHlfcGF0Y2ggLXAwICIkZiIKLQkJZG9uZQotCWZpCi0KLQlDQz0iJHtf dHJpcGxldH0tZ2NjIiBDRkxBR1M9Ii1PcyAtcGlwZSAtZlBJQyAke19hcmNoZmxhZ3N9IiBcCi0J CS4vY29uZmlndXJlIC0tcHJlZml4PS91c3IKLQotCW1ha2UgJHttYWtlam9ic30KLQltYWtlIERF U1RESVI9JHtfc3lzcm9vdH0gaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5tdXNsX2J1aWxk X2RvbmUKLX0KLQotX2djY19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3Ny Y30vLmdjY19idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19u b3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdjYyBmaW5hbFxuIgotCi0JWyAhIC1kIGdjYy1idWlsZCBd ICYmIG1rZGlyIGdjYy1idWlsZAotCWNkIGdjYy1idWlsZAotCi0JX2FyZ3M9Ii0tcHJlZml4PS91 c3IiCi0JX2FyZ3MrPSIgLS1saWJleGVjZGlyPS91c3IvbGliIgotCV9hcmdzKz0iIC0tdGFyZ2V0 PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9h cmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jLGFkYSxjKyssb2JqYyxvYmotYysrLGZvcnRyYW4s bHRvIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpYmFkYSIKLQlfYXJncys9IiAtLWVuYWJsZS1sdG8i Ci0JX2FyZ3MrPSIgLS1lbmFibGUtZGVmYXVsdC1waWUiCi0JX2FyZ3MrPSIgLS1lbmFibGUtZGVm YXVsdC1zc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNhbml0aXplciIKLQlfYXJncys9IiAt LWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlfYXJncys9IiAt LWRpc2FibGUtbGlicXVhZG1hdGgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm1weCIKLQlfYXJn cys9IiAtLWRpc2FibGUtbGlibXVkZmxhcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliYXRvbWlj IgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpYnNzcCIKLQlfYXJncys9IiAtLWVuYWJsZS1zaGFyZWQi Ci0JX2FyZ3MrPSIgLS1kaXNhYmxlLXN5bXZlcnMiCi0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9Igot Ci0JLi4vZ2NjLSR7X2djY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHtt YWtlam9ic30KLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUKLX0KLQotZG9fYnVp bGQoKSB7Ci0JIyBFbnN1cmUgd2UgdXNlIHNhbmUgZW52aXJvbm1lbnQKLQl1bnNldCBDQyBDWFgg Q1BQIExEIEFTIEFSIFJBTkxJQiBPQkpEVU1QIFJFQURFTEYgTk0KLQl1bnNldCBDRkxBR1MgQ1hY RkxBR1MgQ1BQRkxBR1MgTERGTEFHUwotCWV4cG9ydCBDRkxBR1M9Ii1PcyAtcGlwZSIgQ1hYRkxB R1M9Ii1PcyAtcGlwZSIKLQotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47 IGRvCi0JCWlmIFsgISAtZCAke19zeXNyb290fS91c3IvJHtmfSBdOyB0aGVuCi0JCQlta2RpciAt cCAke19zeXNyb290fS91c3IvJHtmfQotCQlmaQotCQlpZiBbICEgLWggJHtfc3lzcm9vdH0vJHtm fSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7X3N5c3Jvb3R9L3Vzci8ke2Z9ICR7X3N5c3Jvb3R9LyR7 Zn0KLQkJZmkKLQlkb25lCi0JbG4gLXNmIGxpYiAke19zeXNyb290fS91c3IvbGliMzIKLQlsbiAt c2YgdXNyL2xpYiAke19zeXNyb290fS9saWIzMgotCi0JX2JpbnV0aWxzX2J1aWxkCi0JX2djY19i b290c3RyYXAKLQlfbGludXhfaGVhZGVycwotCV9tdXNsX2J1aWxkCi0JX2djY19idWlsZAotfQot Ci1kb19pbnN0YWxsKCkgewotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47 IGRvCi0JCWlmIFsgISAtZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4K LQkJCW1rZGlyIC1wICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkKLQkJaWYg WyAhIC1oICR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7 REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXAotCQkJCSR7REVTVERJUn0vJHtfc3lzcm9v dH0vJHtmfQotCQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7REVTVERJUn0vJHtfc3lzcm9vdH0v dXNyL2xpYjMyCi0JbG4gLXNmIHVzci9saWIgJHtERVNURElSfS8ke19zeXNyb290fS9saWIzMgot Ci0JIyBpbnN0YWxsIGxpbnV4IEFQSSBoZWFkZXJzCi0JY2QgJHt3cmtzcmN9L2xpbnV4LSR7X2xp bnV4X3ZlcnNpb259Ci0JbWFrZSBBUkNIPW1pcHMgSU5TVEFMTF9IRFJfUEFUSD0ke0RFU1RESVJ9 LyR7X3N5c3Jvb3R9L3VzciBoZWFkZXJzX2luc3RhbGwKLQlybSAtZiAkKGZpbmQgJHtERVNURElS fS8ke19zeXNyb290fS91c3IvaW5jbHVkZSAtbmFtZSAuaW5zdGFsbCAtb3IgLW5hbWUgLi5pbnN0 YWxsLmNtZCkKLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvaW5jbHVkZS9kcm0K LQotCSMgaW5zdGFsbCBjcm9zcyBiaW51dGlscwotCWNkICR7d3Jrc3JjfS9iaW51dGlscy1idWls ZAotCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9IGluc3RhbGwKLQotCSMgaW5zdGFsbCBjcm9zcyBn Y2MKLQljZCAke3dya3NyY30vZ2NjLWJ1aWxkCi0JbWFrZSBERVNURElSPSR7REVTVERJUn0gaW5z dGFsbAotCi0JIyBtb3ZlIGxpYmNjMS5zbyogdG8gdGhlIHN5c3Jvb3QKLQltdiAke0RFU1RESVJ9 L3Vzci9saWIvbGliY2MxLnNvKiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQotCSMg aW5zdGFsbCBtdXNsIGxpYmMgZm9yIHRhcmdldAotCWNkICR7d3Jrc3JjfS9tdXNsLSR7X211c2xf dmVyc2lvbn0KLQltYWtlIERFU1RESVI9JHtERVNURElSfS8ke19zeXNyb290fSBpbnN0YWxsCi0K LQkjIFJlbW92ZSB1c2VsZXNzIGhlYWRlcnMuCi0Jcm0gLXJmICR7REVTVERJUn0vdXNyL2xpYi9n Y2MvJHtfdHJpcGxldH0vKi9pbmNsdWRlLWZpeGVkCi0KLQkjIE1ha2UgbGQtbXVzbCouc28uMSBz eW1saW5rcyByZWxhdGl2ZS4KLQlsbiAtc2YgbGliYy5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9 L3Vzci9saWIvbGQtbXVzbC1taXBzZWwuc28uMQotCWxuIC1zZiBsaWJjLnNvICR7REVTVERJUn0v JHtfc3lzcm9vdH0vdXNyL2xpYi9sZC1tdXNsLW1pcHNlbC1zZi5zby4xCi0KLQkjIHN5bWxpbmtz IGZvciBnbmFybCBhbmQgZ25hdCBzaGFyZWQgbGlicmFyaWVzCi0JX21ham9ydmVyPSR7X2djY192 ZXJzaW9uJS4qLip9Ci0JX2FkYWxpYj11c3IvbGliL2djYy8ke190cmlwbGV0fS8ke19nY2NfdmVy c2lvbn0vYWRhbGliCi0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXJsLSR7X21h am9ydmVyfS5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQltdiAtdiAke0RFU1RE SVJ9LyR7X2FkYWxpYn0vbGliZ25hdC0ke19tYWpvcnZlcn0uc28gJHtERVNURElSfS8ke19zeXNy b290fS91c3IvbGliCi0JbG4gLXN2ZiBsaWJnbmFybC0ke19tYWpvcnZlcn0uc28gbGliZ25hcmwu c28KLQlsbiAtc3ZmIGxpYmduYXQtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXQuc28KLQlybSAtdmYg JHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXtybCx0fS5zbwotCi0JIyBSZW1vdmUgdW5uZWNl c3Nhcnkgc3R1ZmYKLQlybSAtZiAke0RFU1RESVJ9L3Vzci9saWIqL2xpYmliZXJ0eS5hCi0Jcm0g LXJmICR7REVTVERJUn0vdXNyL3NoYXJlCi0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0v e2V0Yyx2YXJ9Ci0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL3tzYmluLHNoYXJl LGxpYmV4ZWN9Ci0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS9saWJleGVjCi0Jcm0gLWYg JHtERVNURElSfS8ke19zeXNyb290fS9saWIvKi5weQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lz cm9vdH0ve3NiaW4sbGlifQotfQorY3Jvc3NfdHJpcGxldD0ke190cmlwbGV0fQorY3Jvc3Nfd29y ZHNpemU9MzIKK2Nyb3NzX2xpYmM9bXVzbAorY3Jvc3NfYmludXRpbHNfdmVyc2lvbj0ke19iaW51 dGlsc192ZXJzaW9ufQorY3Jvc3NfZ2NjX3ZlcnNpb249JHtfZ2NjX3ZlcnNpb259Citjcm9zc19t dXNsX3ZlcnNpb249JHtfbXVzbF92ZXJzaW9ufQorY3Jvc3NfbGludXhfdmVyc2lvbj0ke19saW51 eF92ZXJzaW9ufQorY3Jvc3NfbGludXhfYXJjaD1hcm0KK2Nyb3NzX2djY19za2lwX2dvPXllcwor Y3Jvc3NfbXVzbF9jZmxhZ3M9Ii1PcyAtbWFyY2g9bWlwczMycjIgLW1zb2Z0LWZsb2F0IgogCiBj cm9zcy1taXBzZWwtbGludXgtbXVzbC1saWJjX3BhY2thZ2UoKSB7CiAJc2hvcnRfZGVzYys9IiAt IGxpYmMgZmlsZXMiCiAJbm9zdHJpcD15ZXMKIAlub3ZlcmlmeXJkZXBzPXllcwogCW5vc2hsaWJw cm92aWRlcz15ZXMKKwogCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAke19zeXNyb290fQorCQl2 bW92ZSB1c3IvJHtjcm9zc190cmlwbGV0fQogCX0KIH0KCkZyb20gMmY1YjgxZWQzNzI4Yjc4MWJi NjhjMGRmZWVjMDg2OWYwMmYwNjUwNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogcTY2 IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU2F0LCAyNiBEZWMgMjAyMCAwMDoxMjowNyAr MDEwMApTdWJqZWN0OiBbUEFUQ0ggMTYvMTZdIGNyb3NzLW1pcHNlbC1saW51eC1tdXNsaGY6IHJl d29yayB3aXRoIHZvaWQtY3Jvc3MKCi0tLQogc3JjcGtncy9jcm9zcy1taXBzZWwtbGludXgtbXVz bGhmL3RlbXBsYXRlIHwgMjg5ICsrLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQs IDIyIGluc2VydGlvbnMoKyksIDI2NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dz L2Nyb3NzLW1pcHNlbC1saW51eC1tdXNsaGYvdGVtcGxhdGUgYi9zcmNwa2dzL2Nyb3NzLW1pcHNl bC1saW51eC1tdXNsaGYvdGVtcGxhdGUKaW5kZXggYmY3NWI5ZWM4ZDUuLmZhYzVmMTA4NjkxIDEw MDY0NAotLS0gYS9zcmNwa2dzL2Nyb3NzLW1pcHNlbC1saW51eC1tdXNsaGYvdGVtcGxhdGUKKysr IGIvc3JjcGtncy9jcm9zcy1taXBzZWwtbGludXgtbXVzbGhmL3RlbXBsYXRlCkBAIC0xLDI5NSAr MSw1MCBAQAotIyBUZW1wbGF0ZSBidWlsZCBmaWxlIGZvciAnY3Jvc3MtbWlwc2VsLWxpbnV4LW11 c2xoZicKLSMKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3NzLW1pcHNlbC1saW51eC1tdXNsaGYn CitfdHJpcGxldD1taXBzZWwtbGludXgtbXVzbGhmCiBfYmludXRpbHNfdmVyc2lvbj0yLjMyCiBf Z2NjX3ZlcnNpb249OS4zLjAKIF9tdXNsX3ZlcnNpb249MS4xLjI0CiBfbGludXhfdmVyc2lvbj00 LjE5Ci0KLV90cmlwbGV0PW1pcHNlbC1saW51eC1tdXNsaGYKLV9mcHVmbGFncz0iLS13aXRoLWZs b2F0PWhhcmQgLS13aXRoLWZwIgotX2FyY2hmbGFncz0iLW1hcmNoPW1pcHMzMnIyIC1taGFyZC1m bG9hdCIKLV9zeXNyb290PSIvdXNyLyR7X3RyaXBsZXR9IgotCiBwa2duYW1lPWNyb3NzLSR7X3Ry aXBsZXR9CiB2ZXJzaW9uPTAuMzMKIHJldmlzaW9uPTMKLXNob3J0X2Rlc2M9IkNyb3NzIHRvb2xj aGFpbiBmb3IgTUlQUzMycjIgTEUgaGFyZGZsb2F0IHRhcmdldCAobXVzbCkiCitidWlsZF9zdHls ZT12b2lkLWNyb3NzCitjb25maWd1cmVfYXJncz0iLS13aXRoLWFyY2g9bWlwczMycjIgLS13aXRo LWZsb2F0PWhhcmQKKyAtLXdpdGgtbGlua2VyLWhhc2gtc3R5bGU9c3lzdiIKK2hvc3RtYWtlZGVw ZW5kcz0idGFyIGdjYy1vYmpjIGZsZXggcGVybCBweXRob24zIgorbWFrZWRlcGVuZHM9ImlzbDE1 LWRldmVsIGxpYm1wYy1kZXZlbCB6bGliLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIgorZGVw ZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCitzaG9ydF9kZXNj PSJWb2lkIGNyb3NzIHRvb2xjaGFpbiBmb3IgJHtfdHJpcGxldH0iCiBtYWludGFpbmVyPSJPcnBo YW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgogaG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRs aW51eC5vcmcvIgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR1BMLTMuMC1vci1sYXRlciwg TUlUIgogZGlzdGZpbGVzPSIKICAke0dOVV9TSVRFfS9iaW51dGlscy9iaW51dGlscy0ke19iaW51 dGlsc192ZXJzaW9ufS50YXIueHoKICAke0dOVV9TSVRFfS9nY2MvZ2NjLSR7X2djY192ZXJzaW9u fS9nY2MtJHtfZ2NjX3ZlcnNpb259LnRhci54egotIGh0dHA6Ly93d3cubXVzbC1saWJjLm9yZy9y ZWxlYXNlcy9tdXNsLSR7X211c2xfdmVyc2lvbn0udGFyLmd6CisgaHR0cHM6Ly93d3cubXVzbC1s aWJjLm9yZy9yZWxlYXNlcy9tdXNsLSR7X211c2xfdmVyc2lvbn0udGFyLmd6CiAgJHtLRVJORUxf U0lURX0va2VybmVsL3Y0LngvbGludXgtJHtfbGludXhfdmVyc2lvbn0udGFyLnh6IgogY2hlY2tz dW09IjBhYjZjNTVkZDg2YTkyZWQ1NjE5NzJiYTE1YjliNzBhOGI5Zjc1NTU3Zjg5NjQ0NmM4MmU4 YjM2ZTQ3M2VlMDQKICA3MWUxOTc4Njc2MTFmNjA1NGFhMTExOWIxM2EwYzBhYmFjMTI4MzQ3NjVm ZTJkODFmMzVhYzU3Zjg0Zjc0MmQxCiAgMTM3MGM5YTgxMmIyY2YyYTdkOTI4MDI1MTBjY2EwMDU4 Y2MzN2U2NmE3YmVkZDcwMDUxZjBhMzQwMTUwMjJhMwogIDBjNjhmNTY1NTUyOGFlZDRmOTlkYWU3 MWE1YjI1OWVkYzkzMjM5ZmE4OTllMmRmNzljMDU1Mjc1YzIxNzQ5YTEiCiAKLWxpYjMyZGlzYWJs ZWQ9eWVzCi1ub2Nyb3NzPXllcwotbm9waWU9eWVzCi1ub2RlYnVnPXllcwotY3JlYXRlX3dya3Ny Yz15ZXMKLQotaG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZmxleCBwZXJsIHB5dGhvbjMi Ci1tYWtlZGVwZW5kcz0iemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbCBsaWJtcGMtZGV2 ZWwgaXNsMTUtZGV2ZWwiCi1ub3N0cmlwX2ZpbGVzPSJsaWJjYWZfc2luZ2xlLmEgbGliZ2NjLmEg bGliZ2Nvdi5hIGxpYmdjY19laC5hCi0gbGliZ25hcmxfcGljLmEgbGliZ25hcmwuYSBsaWJnbmF0 X3BpYy5hIGxpYmduYXQuYSBsaWJnbWVtLmEiCi1kZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2 ZXJzaW9ufV8ke3JldmlzaW9ufSIKLQotX2FwcGx5X3BhdGNoKCkgewotCWxvY2FsIGFyZ3M9IiQx IiBwbmFtZT0iJChiYXNlbmFtZSAkMikiCi0KLQlpZiBbICEgLWYgIi4ke3BuYW1lfV9kb25lIiBd OyB0aGVuCi0JCXBhdGNoIC1OICRhcmdzIC1pICQyCi0JCXRvdWNoIC4ke3BuYW1lfV9kb25lCi0J ZmkKLX0KLQotX2JpbnV0aWxzX2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jr c3JjfS8uYmludXRpbHNfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30K LQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBiaW51dGlscyBib290c3RyYXBcbiIKLQotCVsg ISAtZCBiaW51dGlscy1idWlsZCBdICYmIG1rZGlyIGJpbnV0aWxzLWJ1aWxkCi0JY2QgYmludXRp bHMtYnVpbGQKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7 X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdz Kz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9hcmdz Kz0iIC0tZGlzYWJsZS13ZXJyb3IiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJn cys9IiAtLXdpdGgtc3lzdGVtLXpsaWIiCi0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9IgotCi0JLi4v YmludXRpbHMtJHtfYmludXRpbHNfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtl IGNvbmZpZ3VyZS1ob3N0ICYmIG1ha2UgJHttYWtlam9ic30KLQltYWtlIGluc3RhbGwKLQotCXRv dWNoICR7d3Jrc3JjfS8uYmludXRpbHNfYnVpbGRfZG9uZQotfQotCi1fZ2NjX2Jvb3RzdHJhcCgp IHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmdjY19ib290c3RyYXBfZG9uZSBd ICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30vZ2NjLSR7X2djY192ZXJzaW9ufQotCWZvciBm IGluICR7WEJQU19TUkNQS0dESVJ9L2djYy9wYXRjaGVzLyoucGF0Y2g7IGRvCi0JCV9hcHBseV9w YXRjaCAtcDAgIiRmIgotCWRvbmUKLQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9nY2MvZmls ZXMvKi1tdXNsLnBhdGNoOyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAxICIkZiIKLQlkb25lCi0KLQlt c2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBnY2MgYm9vdHN0cmFwXG4iCi0KLQlbICEgLWQgLi4v Z2NjLWJvb3RzdHJhcCBdICYmIG1rZGlyIC4uL2djYy1ib290c3RyYXAKLQljZCAuLi9nY2MtYm9v dHN0cmFwCi0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLXRhcmdldD0ke190 cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9 IiAtLXdpdGgtbmV3bGliIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jIgotCV9hcmdz Kz0iIC0td2l0aC1uZXdsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNzcCIKLQlfYXJncys9 IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJxdWFkbWF0aCIKLQlfYXJn cys9IiAtLWRpc2FibGUtdGhyZWFkcyIKLQlfYXJncys9IiAtLWRpc2FibGUtZGVjaW1hbC1mbG9h dCIKLQlfYXJncys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJt cHgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm11ZGZsYXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LWxpYmdvbXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmF0b21pYyIKLQlfYXJncys9IiAke19m cHVmbGFnc30iCi0KLQlDRkxBR1M9Ii1PMCAtZzAiIENYWEZMQUdTPSItTzAgLWcwIiBcCi0JCS4u L2djYy0ke19nY2NfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpv YnN9Ci0JbWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmdjY19ib290c3RyYXBfZG9u ZQotfQotCi1fbGludXhfaGVhZGVycygpIHsKLQlbIC1mICR7d3Jrc3JjfS8ubGludXhfYnVpbGRf ZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGlu ZyBMaW51eCBBUEkgaGVhZGVyc1xuIgotCi0JY2QgbGludXgtJHtfbGludXhfdmVyc2lvbn0KLQot CWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L2tlcm5lbC1saWJjLWhlYWRlcnMvcGF0Y2hlcy8q LnBhdGNoOyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAwICRmCi0JZG9uZQotCi0JbWFrZSBBUkNIPW1p cHMgaGVhZGVyc19jaGVjawotCW1ha2UgQVJDSD1taXBzIElOU1RBTExfSERSX1BBVEg9JHtfc3lz cm9vdH0vdXNyIGhlYWRlcnNfaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5saW51eF9idWls ZF9kb25lCi19Ci0KLV9tdXNsX2J1aWxkKCkgewotCVsgLWYgJHt3cmtzcmN9Ly5tdXNsX2J1aWxk X2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L211c2wtJHtfbXVzbF92ZXJzaW9u fQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIG11c2wgbGliY1xuIgotCi0JIyBBcHBseSBt dXNsIHBhdGNoZXMgaWYgdGhlcmUgYXJlIGFueQotCWlmIFsgLWQgIiR7WEJQU19TUkNQS0dESVJ9 L211c2wvcGF0Y2hlcyIgXTsgdGhlbgotCQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9tdXNs L3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJCV9hcHBseV9wYXRjaCAtcDAgIiRmIgotCQlkb25lCi0J ZmkKLQotCUNDPSIke190cmlwbGV0fS1nY2MiIENGTEFHUz0iLU9zIC1waXBlIC1mUElDICR7X2Fy Y2hmbGFnc30iIFwKLQkJLi9jb25maWd1cmUgLS1wcmVmaXg9L3VzcgotCi0JbWFrZSAke21ha2Vq b2JzfQotCW1ha2UgREVTVERJUj0ke19zeXNyb290fSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3Ny Y30vLm11c2xfYnVpbGRfZG9uZQotfQotCi1fZ2NjX2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0K LQlbIC1mICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3 cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2NjIGZpbmFsXG4iCi0KLQlbICEg LWQgZ2NjLWJ1aWxkIF0gJiYgbWtkaXIgZ2NjLWJ1aWxkCi0JY2QgZ2NjLWJ1aWxkCi0KLQlfYXJn cz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLWxpYmV4ZWNkaXI9L3Vzci9saWIiCi0JX2Fy Z3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtf c3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGFuZ3VhZ2VzPWMsYWRhLGMrKyxvYmpjLG9i ai1jKyssZm9ydHJhbixsdG8iCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGliYWRhIgotCV9hcmdzKz0i IC0tZW5hYmxlLWx0byIKLQlfYXJncys9IiAtLWVuYWJsZS1kZWZhdWx0LXBpZSIKLQlfYXJncys9 IiAtLWVuYWJsZS1kZWZhdWx0LXNzcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlic2FuaXRpemVy IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxz IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJxdWFkbWF0aCIKLQlfYXJncys9IiAtLWRpc2FibGUt bGlibXB4IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtdWRmbGFwIgotCV9hcmdzKz0iIC0tZGlz YWJsZS1saWJhdG9taWMiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGlic3NwIgotCV9hcmdzKz0iIC0t ZW5hYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWRpc2FibGUtc3ltdmVycyIKLQlfYXJncys9IiAk e19mcHVmbGFnc30iCi0KLQkuLi9nY2MtJHtfZ2NjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdz fQotCi0JbWFrZSAke21ha2Vqb2JzfQotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYnVpbGRfZG9u ZQotfQotCi1kb19idWlsZCgpIHsKLQkjIEVuc3VyZSB3ZSB1c2Ugc2FuZSBlbnZpcm9ubWVudAot CXVuc2V0IENDIENYWCBDUFAgTEQgQVMgQVIgUkFOTElCIE9CSkRVTVAgUkVBREVMRiBOTQotCXVu c2V0IENGTEFHUyBDWFhGTEFHUyBDUFBGTEFHUyBMREZMQUdTCi0JZXhwb3J0IENGTEFHUz0iLU9z IC1waXBlIiBDWFhGTEFHUz0iLU9zIC1waXBlIgotCi0JZm9yIGYgaW4gaW5jbHVkZSBsaWIgbGli ZXhlYyBiaW4gc2JpbjsgZG8KLQkJaWYgWyAhIC1kICR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRo ZW4KLQkJCW1rZGlyIC1wICR7X3N5c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZpCi0JCWlmIFsgISAtaCAk e19zeXNyb290fS8ke2Z9IF07IHRoZW4KLQkJCWxuIC1zZnIgJHtfc3lzcm9vdH0vdXNyLyR7Zn0g JHtfc3lzcm9vdH0vJHtmfQotCQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7X3N5c3Jvb3R9L3Vz ci9saWIzMgotCWxuIC1zZiB1c3IvbGliICR7X3N5c3Jvb3R9L2xpYjMyCi0KLQlfYmludXRpbHNf YnVpbGQKLQlfZ2NjX2Jvb3RzdHJhcAotCV9saW51eF9oZWFkZXJzCi0JX211c2xfYnVpbGQKLQlf Z2NjX2J1aWxkCi19Ci0KLWRvX2luc3RhbGwoKSB7Ci0JZm9yIGYgaW4gaW5jbHVkZSBsaWIgbGli ZXhlYyBiaW4gc2JpbjsgZG8KLQkJaWYgWyAhIC1kICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNy LyR7Zn0gXTsgdGhlbgotCQkJbWtkaXIgLXAgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtm fQotCQlmaQotCQlpZiBbICEgLWggJHtERVNURElSfS8ke19zeXNyb290fS8ke2Z9IF07IHRoZW4K LQkJCWxuIC1zZnIgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfSBcCi0JCQkJJHtERVNU RElSfS8ke19zeXNyb290fS8ke2Z9Ci0JCWZpCi0JZG9uZQotCWxuIC1zZiBsaWIgJHtERVNURElS fS8ke19zeXNyb290fS91c3IvbGliMzIKLQlsbiAtc2YgdXNyL2xpYiAke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9L2xpYjMyCi0KLQkjIGluc3RhbGwgbGludXggQVBJIGhlYWRlcnMKLQljZCAke3dya3Ny Y30vbGludXgtJHtfbGludXhfdmVyc2lvbn0KLQltYWtlIEFSQ0g9bWlwcyBJTlNUQUxMX0hEUl9Q QVRIPSR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyIGhlYWRlcnNfaW5zdGFsbAotCXJtIC1mICQo ZmluZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlIC1uYW1lIC5pbnN0YWxsIC1v ciAtbmFtZSAuLmluc3RhbGwuY21kKQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vz ci9pbmNsdWRlL2RybQotCi0JIyBpbnN0YWxsIGNyb3NzIGJpbnV0aWxzCi0JY2QgJHt3cmtzcmN9 L2JpbnV0aWxzLWJ1aWxkCi0JbWFrZSBERVNURElSPSR7REVTVERJUn0gaW5zdGFsbAotCi0JIyBp bnN0YWxsIGNyb3NzIGdjYwotCWNkICR7d3Jrc3JjfS9nY2MtYnVpbGQKLQltYWtlIERFU1RESVI9 JHtERVNURElSfSBpbnN0YWxsCi0KLQkjIG1vdmUgbGliY2MxLnNvKiB0byB0aGUgc3lzcm9vdAot CW12ICR7REVTVERJUn0vdXNyL2xpYi9saWJjYzEuc28qICR7REVTVERJUn0vJHtfc3lzcm9vdH0v dXNyL2xpYgotCi0JIyBpbnN0YWxsIG11c2wgbGliYyBmb3IgdGFyZ2V0Ci0JY2QgJHt3cmtzcmN9 L211c2wtJHtfbXVzbF92ZXJzaW9ufQotCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9LyR7X3N5c3Jv b3R9IGluc3RhbGwKLQotCSMgUmVtb3ZlIHVzZWxlc3MgaGVhZGVycy4KLQlybSAtcmYgJHtERVNU RElSfS91c3IvbGliL2djYy8ke190cmlwbGV0fS8qL2luY2x1ZGUtZml4ZWQKLQotCSMgTWFrZSBs ZC1tdXNsLnNvIHN5bWxpbmtzIHJlbGF0aXZlLgotCWxuIC1zZiBsaWJjLnNvICR7REVTVERJUn0v JHtfc3lzcm9vdH0vdXNyL2xpYi9sZC1tdXNsLW1pcHNlbC5zby4xCi0KLQkjIHN5bWxpbmtzIGZv ciBnbmFybCBhbmQgZ25hdCBzaGFyZWQgbGlicmFyaWVzCi0JX21ham9ydmVyPSR7X2djY192ZXJz aW9uJS4qLip9Ci0JX2FkYWxpYj11c3IvbGliL2djYy8ke190cmlwbGV0fS8ke19nY2NfdmVyc2lv bn0vYWRhbGliCi0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXJsLSR7X21ham9y dmVyfS5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQltdiAtdiAke0RFU1RESVJ9 LyR7X2FkYWxpYn0vbGliZ25hdC0ke19tYWpvcnZlcn0uc28gJHtERVNURElSfS8ke19zeXNyb290 fS91c3IvbGliCi0JbG4gLXN2ZiBsaWJnbmFybC0ke19tYWpvcnZlcn0uc28gbGliZ25hcmwuc28K LQlsbiAtc3ZmIGxpYmduYXQtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXQuc28KLQlybSAtdmYgJHtE RVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXtybCx0fS5zbwotCi0JIyBSZW1vdmUgdW5uZWNlc3Nh cnkgc3R1ZmYKLQlybSAtZiAke0RFU1RESVJ9L3Vzci9saWIqL2xpYmliZXJ0eS5hCi0Jcm0gLXJm ICR7REVTVERJUn0vdXNyL3NoYXJlCi0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0ve2V0 Yyx2YXJ9Ci0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL3tzYmluLHNoYXJlLGxp YmV4ZWN9Ci0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS9saWJleGVjCi0Jcm0gLWYgJHtE RVNURElSfS8ke19zeXNyb290fS9saWIvKi5weQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9v dH0ve3NiaW4sbGlifQotfQorY3Jvc3NfdHJpcGxldD0ke190cmlwbGV0fQorY3Jvc3Nfd29yZHNp emU9MzIKK2Nyb3NzX2xpYmM9bXVzbAorY3Jvc3NfYmludXRpbHNfdmVyc2lvbj0ke19iaW51dGls c192ZXJzaW9ufQorY3Jvc3NfZ2NjX3ZlcnNpb249JHtfZ2NjX3ZlcnNpb259Citjcm9zc19tdXNs X3ZlcnNpb249JHtfbXVzbF92ZXJzaW9ufQorY3Jvc3NfbGludXhfdmVyc2lvbj0ke19saW51eF92 ZXJzaW9ufQorY3Jvc3NfbGludXhfYXJjaD1hcm0KK2Nyb3NzX2djY19za2lwX2dvPXllcworY3Jv c3NfbXVzbF9jZmxhZ3M9Ii1PcyAtbWFyY2g9bWlwczMycjIgLW1oYXJkLWZsb2F0IgogCiBjcm9z cy1taXBzZWwtbGludXgtbXVzbGhmLWxpYmNfcGFja2FnZSgpIHsKIAlzaG9ydF9kZXNjKz0iIC0g bGliYyBmaWxlcyIKIAlub3N0cmlwPXllcwogCW5vdmVyaWZ5cmRlcHM9eWVzCiAJbm9zaGxpYnBy b3ZpZGVzPXllcworCiAJcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlICR7X3N5c3Jvb3R9CisJCXZt b3ZlIHVzci8ke2Nyb3NzX3RyaXBsZXR9CiAJfQogfQo= --===============8365319398166155990==--