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 4468 invoked from network); 26 Dec 2020 00:13:10 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 26 Dec 2020 00:13:10 -0000 Content-Type: multipart/mixed; boundary="===============5201181908419962082==" 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 01:13:09 +0100 List-Id: Message-ID: <20201226001309.f9OcyElp0dD2xt85WcPOF2CnQLWVd1YAwXbqFGRgDjs@z> GitHub notification mails are now in MIME to allow UTF8. --===============5201181908419962082== 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 W3hdIGBjcm9zcy1hcm12N2wtbGludXgtbXVzbGVhYmloZmANCi0gW3hdIGBjcm9zcy1pNjg2LXBj LWxpbnV4LWdudWANCi0gW3hdIGBjcm9zcy1pNjg2LWxpbnV4LW11c2xgDQotIFt4XSBgY3Jvc3Mt bWlwcy1saW51eC1tdXNsYA0KLSBbeF0gYGNyb3NzLW1pcHMtbGludXgtbXVzbGhmYA0KLSBbeF0g YGNyb3NzLW1pcHNlbC1saW51eC1tdXNsYA0KLSBbeF0gYGNyb3NzLW1pcHNlbC1saW51eC1tdXNs aGZgDQotIFsgXSBgY3Jvc3MtcG93ZXJwYy1saW51eC1nbnVgDQotIFsgXSBgY3Jvc3MtcG93ZXJw Yy1saW51eC1tdXNsYA0KLSBbIF0gYGNyb3NzLXBvd2VycGNsZS1saW51eC1nbnVgDQotIFsgXSBg Y3Jvc3MtcG93ZXJwY2xlLWxpbnV4LW11c2xgDQotIFsgXSBgY3Jvc3MtcG93ZXJwYzY0LWxpbnV4 LWdudWANCi0gWyBdIGBjcm9zcy1wb3dlcnBjNjQtbGludXgtbXVzbGANCi0gWyBdIGBjcm9zcy1w b3dlcnBjNjRsZS1saW51eC1nbnVgDQotIFsgXSBgY3Jvc3MtcG93ZXJwYzY0bGUtbGludXgtbXVz bGANCi0gWyBdIGBjcm9zcy14ODZfNjQtbGludXgtZ251YA0KLSBbIF0gYGNyb3NzLXg4Nl82NC1s aW51eC1tdXNsYA0KDQpGb3Igbm93LCBwb3N0aW5nIGZvciBpbnB1dC4NCg0KQER1bmNhZW4gQGxl YWhuZXVraXJjaGVuIEBwdWxsbW9sbCBAZXJpY29uciBAdm9pZC1saW51eC9wa2ctY29tbWl0dGVy cyANCg0KW2NpIHNraXBdCgpBIHBhdGNoIGZpbGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdm9p ZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMjc0MTIucGF0Y2ggaXMgYXR0YWNoZWQ= --===============5201181908419962082== 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 Z28tbXVzbC5wYXRjaAogCQkJOzsKIAllc2FjCgpGcm9tIGUyYjE5MmUzNGEyYzRiZjkwMTBiZjEw OWVjYjE3OGQyNDQwNTg4ZTkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IHE2NiA8ZGFu aWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IEZyaSwgMjUgRGVjIDIwMjAgMDA6NDI6MjYgKzAxMDAK U3ViamVjdDogW1BBVENIIDAyLzE2XSBjb21tb24vYnVpbGQtc3R5bGU6IGFkZCB2b2lkLWNyb3Nz Cgp0aGlzIGludHJvZHVjZXMgYSBuZXcgYnVpbGQtc3R5bGUgdm9pZC1jcm9zcywgd2hpY2ggY2Fu IGJlIHVzZWQKdG8gd3JpdGUgc3lzdGVtIGNyb3NzdG9vbGNoYWluIHRlbXBsYXRlczsgdGhpcyBp cyB0byByZWR1Y2UgdGhlCmFtb3VudCBvZiBtYWludGVuYW5jZSwgcmVzb2x2ZSBleGlzdGluZyBw cm9ibGVtcyB3aXRoIHRoZSBjcm9zcwp0b29sY2hhaW4gdGVtcGxhdGVzIGFuZCByZW1vdmUgcmVw ZWF0ZWQgY29kZQotLS0KIGNvbW1vbi9idWlsZC1zdHlsZS92b2lkLWNyb3NzLnNoICAgICAgICAg ICAgIHwgNTQ5ICsrKysrKysrKysrKysrKysrKysKIGNvbW1vbi9lbnZpcm9ubWVudC9idWlsZC1z dHlsZS92b2lkLWNyb3NzLnNoIHwgIDExICsKIDIgZmlsZXMgY2hhbmdlZCwgNTYwIGluc2VydGlv bnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBjb21tb24vYnVpbGQtc3R5bGUvdm9pZC1jcm9zcy5z aAogY3JlYXRlIG1vZGUgMTAwNjQ0IGNvbW1vbi9lbnZpcm9ubWVudC9idWlsZC1zdHlsZS92b2lk LWNyb3NzLnNoCgpkaWZmIC0tZ2l0IGEvY29tbW9uL2J1aWxkLXN0eWxlL3ZvaWQtY3Jvc3Muc2gg Yi9jb21tb24vYnVpbGQtc3R5bGUvdm9pZC1jcm9zcy5zaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uZjg2MzM5YzRhOWQKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24v YnVpbGQtc3R5bGUvdm9pZC1jcm9zcy5zaApAQCAtMCwwICsxLDU0OSBAQAorIworIyBUaGlzIGhl bHBlciBpcyBmb3Igdm9pZCBzeXN0ZW0gY3Jvc3N0b29sY2hhaW4gdGVtcGxhdGVzLgorIworIyBN YW5kYXRvcnkgdmFyaWFibGVzOgorIworIyAtIGNyb3NzX3RyaXBsZXQgLSB0aGUgdGFyZ2V0IHRy aXBsZXQgKGUuZy4gYWFyY2g2NC1saW51eC1nbnUpCisjIC0gY3Jvc3Nfd29yZHNpemUgLSAzMiBv ciA2NAorIyAtIGNyb3NzX2xpYmMgLSBnbGliYyBvciBtdXNsCisjIC0gY3Jvc3NfYmludXRpbHNf dmVyc2lvbgorIyAtIGNyb3NzX2djY192ZXJzaW9uCisjIC0gY3Jvc3NfbGludXhfdmVyc2lvbgor IyAtIGNyb3NzX2xpbnV4X2FyY2ggLSB0aGUgc291cmNlIEFSQ0ggb2YgdGhlIGtlcm5lbCAoZS5n LiBhcm02NCkKKyMgLSBjcm9zc19nbGliY192ZXJzaW9uCisjIC0gY3Jvc3NfbXVzbF92ZXJzaW9u CisjIC0gY3Jvc3NfbGlidWNvbnRleHRfdmVyc2lvbiAtIG9ubHkgb24gbXVzbCB3aXRob3V0IGNy b3NzX2djY19za2lwX2dvCisjIC0gY3Jvc3NfbGlidWNvbnRleHRfYXJjaCAtIGRpdHRvLCB0aGUg bGlidWNvbnRleHQgYXJjaAorIworIyBPcHRpb25hbCB2YXJpYWJsZXM6CisjCisjIC0gY3Jvc3Nf Z2NjX3NraXBfZ28gLSBkbyBub3QgYnVpbGQgZ2NjZ28gc3VwcG9ydAorIyAtIGNyb3NzX2JpbnV0 aWxzX2NvbmZpZ3VyZV9hcmdzCisjIC0gY3Jvc3NfZ2NjX2Jvb3RzdHJhcF9jb25maWd1cmVfYXJn cworIyAtIGNyb3NzX2djY19jb25maWd1cmVfYXJncworIyAtIGNyb3NzX2dsaWJjX2NmbGFncwor IyAtIGNyb3NzX2dsaWJjX2xkZmxhZ3MKKyMgLSBjcm9zc19nbGliY19jb25maWd1cmVfYXJncwor IyAtIGNyb3NzX211c2xfY2ZsYWdzCisjIC0gY3Jvc3NfbXVzbF9sZGZsYWdzCisjIC0gY3Jvc3Nf bXVzbF9jb25maWd1cmVfYXJncworIworIyBjb25maWd1cmVfYXJncyBpcyBwYXNzZWQgdG8gYm90 aCBib290c3RyYXAgZ2NjIGFuZCBmaW5hbCBnY2MKKyMgaWYgeW91IG5lZWQgdG8gcGFzcyBzb21l IHRvIG9uZSBhbmQgbm90IHRoZSBvdGhlciwgdXNlIHRoZQorIyByZXNwZWN0aXZlIGNyb3NzXyB2 YXJpYWJsZXMgZm9yIGZpbmFsIGdjYyBhbmQgYm9vdHN0cmFwIGdjYworIworCitfYXBwbHlfcGF0 Y2goKSB7CisJbG9jYWwgYXJncz0iJDEiIHBuYW1lPSIkKGJhc2VuYW1lICQyKSIKKwlpZiBbICEg LWYgIi4ke3BuYW1lfV9kb25lIiBdOyB0aGVuCisJCXBhdGNoIC1OICRhcmdzIC1pICQyCisJCXRv dWNoIC4ke3BuYW1lfV9kb25lCisJZmkKK30KKworX2NoZWNrX2Nyb3NzX2RpcigpIHsKKwlsb2Nh bCBkbmFtZT0kMQorCWxvY2FsIHNuYW1lPSQyCisJbG9jYWwgdmFyPSJjcm9zc18ke2RuYW1lfV92 ZXJzaW9uIgorCWNkICR7d3Jrc3JjfQorCWlmIFsgLWYgIi4ke3NuYW1lOj0ke2RuYW1lfX1fZG9u ZSIgXTsgdGhlbgorCQlyZXR1cm4gMQorCWZpCisJaWYgWyAhIC1kICIkezF9LSR7IXZhcn0iIF07 IHRoZW4KKwkJbXNnX2Vycm9yICIkezF9LSR7IXZhcn0gZG9lcyBub3QgZXhpc3QiCisJZmkKK30K KworX2J1aWxkX2JpbnV0aWxzKCkgeworCV9jaGVja19jcm9zc19kaXIgYmludXRpbHMgfHwgcmV0 dXJuIDAKKworCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGJpbnV0aWxzIGZvciAke2Nyb3NzX3RyaXBs ZXR9XG4iCisKKwlta2RpciAtcCBiaW51dGlsc19idWlsZAorCWNkIGJpbnV0aWxzX2J1aWxkCisK KwkuLi9iaW51dGlscy0ke2Nyb3NzX2JpbnV0aWxzX3ZlcnNpb259L2NvbmZpZ3VyZSBcCisJCS0t cHJlZml4PS91c3IgXAorCQktLXNiaW5kaXI9L3Vzci9iaW4gXAorCQktLWxpYmRpcj0vdXNyL2xp YiBcCisJCS0tbGliZXhlY2Rpcj0vdXNyL2xpYiBcCisJCS0tdGFyZ2V0PSR7Y3Jvc3NfdHJpcGxl dH0gXAorCQktLXdpdGgtc3lzcm9vdD0vdXNyLyR7Y3Jvc3NfdHJpcGxldH0gXAorCQktLWRpc2Fi bGUtbmxzIFwKKwkJLS1kaXNhYmxlLXNoYXJlZCBcCisJCS0tZGlzYWJsZS1tdWx0aWxpYiBcCisJ CS0tZGlzYWJsZS13ZXJyb3IgXAorCQktLWRpc2FibGUtZ29sZCBcCisJCS0td2l0aC1zeXN0ZW0t emxpYiBcCisJCSR7Y3Jvc3NfYmludXRpbHNfY29uZmlndXJlX2FyZ3N9CisKKwltYWtlIGNvbmZp Z3VyZS1ob3N0CisJbWFrZSAke21ha2Vqb2JzfQorCisJbWFrZSBpbnN0YWxsIERFU1RESVI9JHt3 cmtzcmN9L2J1aWxkX3Jvb3QKKworCXRvdWNoICR7d3Jrc3JjfS8uYmludXRpbHNfZG9uZQorfQor CitfYnVpbGRfYm9vdHN0cmFwX2djYygpIHsKKwlfY2hlY2tfY3Jvc3NfZGlyIGdjYyBnY2NfYm9v dHN0cmFwIHx8IHJldHVybiAwCisKKwltc2dfbm9ybWFsICJQYXRjaGluZyBHQ0MgZm9yICR7Y3Jv c3NfdHJpcGxldH1cbiIKKworCWNkIGdjYy0ke2Nyb3NzX2djY192ZXJzaW9ufQorCWZvciBmIGlu ICR7WEJQU19TUkNQS0dESVJ9L2djYy9wYXRjaGVzLyoucGF0Y2g7IGRvCisJCV9hcHBseV9wYXRj aCAtcDAgIiRmIgorCWRvbmUKKwlpZiBbICIkY3Jvc3NfbGliYyIgPSAibXVzbCIgXTsgdGhlbgor CQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9nY2MvZmlsZXMvKi1tdXNsLnBhdGNoOyBkbwor CQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCisJCWRvbmUKKwlmaQorCWNkIC4uCisKKwltc2dfbm9y bWFsICJCdWlsZGluZyBib290c3RyYXAgR0NDIGZvciAke2Nyb3NzX3RyaXBsZXR9XG4iCisKKwlt a2RpciAtcCBnY2NfYm9vdHN0cmFwCisJY2QgZ2NjX2Jvb3RzdHJhcAorCisJbG9jYWwgZXh0cmFf YXJncworCWlmIFsgIiRjcm9zc19saWJjIiA9ICJtdXNsIiBdOyB0aGVuCisJCWV4dHJhX2FyZ3Mr PSIgLS13aXRoLW5ld2xpYiIKKwkJZXh0cmFfYXJncys9IiAtLWRpc2FibGUtc3ltdmVycyIKKwkJ ZXh0cmFfYXJncys9IiBsaWJhdF9jdl9oYXZlX2lmdW5jPW5vIgorCWVsc2UKKwkJZXh0cmFfYXJn cys9IiAtLXdpdGhvdXQtaGVhZGVycyIKKwlmaQorCisJLi4vZ2NjLSR7Y3Jvc3NfZ2NjX3ZlcnNp b259L2NvbmZpZ3VyZSBcCisJCS0tcHJlZml4PS91c3IgXAorCQktLXNiaW5kaXI9L3Vzci9iaW4g XAorCQktLWxpYmRpcj0vdXNyL2xpYiBcCisJCS0tbGliZXhlY2Rpcj0vdXNyL2xpYiBcCisJCS0t dGFyZ2V0PSR7Y3Jvc3NfdHJpcGxldH0gXAorCQktLWRpc2FibGUtbmxzIFwKKwkJLS1kaXNhYmxl LW11bHRpbGliIFwKKwkJLS1kaXNhYmxlLXNoYXJlZCBcCisJCS0tZGlzYWJsZS1saWJxdWFkbWF0 aCBcCisJCS0tZGlzYWJsZS1kZWNpbWFsLWZsb2F0IFwKKwkJLS1kaXNhYmxlLWxpYmdvbXAgXAor CQktLWRpc2FibGUtbGlibXB4IFwKKwkJLS1kaXNhYmxlLWxpYm11ZGZsYXAgXAorCQktLWRpc2Fi bGUtbGlic3NwIFwKKwkJLS1kaXNhYmxlLWxpYml0bSBcCisJCS0tZGlzYWJsZS1saWJhdG9taWMg XAorCQktLWRpc2FibGUtdGhyZWFkcyBcCisJCS0tZGlzYWJsZS1zamxqLWV4Y2VwdGlvbnMgXAor CQktLWVuYWJsZS1sYW5ndWFnZXM9YyBcCisJCS0td2l0aC1nbnUtbGQgXAorCQktLXdpdGgtZ251 LWFzIFwKKwkJJHtleHRyYV9hcmdzfSBcCisJCSR7Y29uZmlndXJlX2FyZ3N9IFwKKwkJJHtjcm9z c19nY2NfYm9vdHN0cmFwX2NvbmZpZ3VyZV9hcmdzfQorCisJbWFrZSAke21ha2Vqb2JzfQorCW1h a2UgaW5zdGFsbCBERVNURElSPSR7d3Jrc3JjfS9idWlsZF9yb290CisKKwl0b3VjaCAke3dya3Ny Y30vLmdjY19ib290c3RyYXBfZG9uZQorfQorCitfYnVpbGRfa2VybmVsX2hlYWRlcnMoKSB7CisJ X2NoZWNrX2Nyb3NzX2RpciBsaW51eCBsaW51eF9oZWFkZXJzIHx8IHJldHVybiAwCisKKwltc2df bm9ybWFsICJQYXRjaGluZyBMaW51eCBoZWFkZXJzIGZvciAke2Nyb3NzX3RyaXBsZXR9XG4iCisK KwljZCBsaW51eC0ke2Nyb3NzX2xpbnV4X3ZlcnNpb259CisJZm9yIGYgaW4gJHtYQlBTX1NSQ1BL R0RJUn0va2VybmVsLWxpYmMtaGVhZGVycy9wYXRjaGVzLyoucGF0Y2g7IGRvCisJCV9hcHBseV9w YXRjaCAtcDAgJGYKKwlkb25lCisJY2QgLi4KKworCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIExpbnV4 IGhlYWRlcnMgZm9yICR7Y3Jvc3NfdHJpcGxldH1cbiIKKworCWNkIGxpbnV4LSR7Y3Jvc3NfbGlu dXhfdmVyc2lvbn0KKworCW1ha2UgQVJDSD0kY3Jvc3NfbGludXhfYXJjaCBoZWFkZXJzX2NoZWNr CisJbWFrZSBBUkNIPSRjcm9zc19saW51eF9hcmNoIFwKKwkJSU5TVEFMTF9IRFJfUEFUSD0ke3dy a3NyY30vYnVpbGRfcm9vdC91c3IvJHtjcm9zc190cmlwbGV0fS91c3IgXAorCQloZWFkZXJzX2lu c3RhbGwKKworCXRvdWNoICR7d3Jrc3JjfS8ubGludXhfaGVhZGVyc19kb25lCit9CisKK19idWls ZF9nbGliY19oZWFkZXJzKCkgeworCV9jaGVja19jcm9zc19kaXIgZ2xpYmMgZ2xpYmNfaGVhZGVy cyB8fCByZXR1cm4gMAorCisJbG9jYWwgdGd0PSRjcm9zc190cmlwbGV0CisKKwltc2dfbm9ybWFs ICJQYXRjaGluZyBnbGliYyBmb3IgJHtjcm9zc190cmlwbGV0fVxuIgorCisJY2QgZ2xpYmMtJHtj cm9zc19nbGliY192ZXJzaW9ufQorCWlmIFsgLWQgIiR7WEJQU19TUkNQS0dESVJ9L2dsaWJjL3Bh dGNoZXMiIF07IHRoZW4KKwkJZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2xpYmMvcGF0Y2hl cy8qLnBhdGNoOyBkbworCQkJX2FwcGx5X3BhdGNoIC1wMSAiJGYiCisJCWRvbmUKKwlmaQorCWNk IC4uCisKKwltc2dfbm9ybWFsICJCdWlsZGluZyBnbGliYyBoZWFkZXJzIGZvciAke2Nyb3NzX3Ry aXBsZXR9XG4iCisKKwlta2RpciAtcCBnbGliY19oZWFkZXJzCisJY2QgZ2xpYmNfaGVhZGVycwor CisJZWNobyAibGliY19jdl9mb3JjZWRfdW53aW5kPXllcyIgPiBjb25maWcuY2FjaGUKKwllY2hv ICJsaWJjX2N2X2NfY2xlYW51cD15ZXMiID4+IGNvbmZpZy5jYWNoZQorCisJIyB3ZSBkb24ndCBu ZWVkIGFueSBjdXN0b20gYXJncyBoZXJlLCBpdCdzIGp1c3QgaGVhZGVycworCUNDPSIke3RndH0t Z2NjIiBDWFg9IiR7dGd0fS1nKysiIENQUD0iJHt0Z3R9LWNwcCIgTEQ9IiR7dGd0fS1sZCIgXAor CUFTPSIke3RndH0tYXMiIE5NPSIke3RndH0tbm0iIENGTEFHUz0iLXBpcGUiIENYWEZMQUdTPSIi IENQUEZMQUdTPSIiIFwKKwlMREZMQUdTPSIiIFwKKwkuLi9nbGliYy0ke2Nyb3NzX2dsaWJjX3Zl cnNpb259L2NvbmZpZ3VyZSBcCisJCS0tcHJlZml4PS91c3IgXAorCQktLWhvc3Q9JHt0Z3R9IFwK KwkJLS13aXRoLWhlYWRlcnM9JHt3cmtzcmN9L2J1aWxkX3Jvb3QvdXNyLyR7dGd0fS91c3IvaW5j bHVkZSBcCisJCS0tY29uZmlnLWNhY2hlIFwKKwkJLS1lbmFibGUtb2Jzb2xldGUtcnBjIFwKKwkJ LS1lbmFibGUtb2Jzb2xldGUtbnNsIFwKKwkJLS1lbmFibGUta2VybmVsPTIuNi4yNyBcCisJCSR7 Y3Jvc3NfZ2xpYmNfY29uZmlndXJlX2FyZ3N9CisKKwltYWtlIC1rIGluc3RhbGwtaGVhZGVycyBj cm9zc19jb21waWxpbmc9eWVzIFwKKwkJaW5zdGFsbF9yb290PSR7d3Jrc3JjfS9idWlsZF9yb290 L3Vzci8ke3RndH0KKworCXRvdWNoICR7d3Jrc3JjfS8uZ2xpYmNfaGVhZGVyc19kb25lCit9CisK K19idWlsZF9nbGliYygpIHsKKwlfY2hlY2tfY3Jvc3NfZGlyIGdsaWJjIGdsaWJjX2J1aWxkIHx8 IHJldHVybiAwCisKKwlsb2NhbCB0Z3Q9JGNyb3NzX3RyaXBsZXQKKworCW1zZ19ub3JtYWwgIkJ1 aWxkaW5nIGdsaWJjIGZvciAke3RndH1cbiIKKworCW1rZGlyIC1wIGdsaWJjX2J1aWxkCisJY2Qg Z2xpYmNfYnVpbGQKKworCWVjaG8gInNsaWJkaXI9L3Vzci9saWIke2Nyb3NzX3dvcmRzaXplfSIg PiBjb25maWdwYXJtcworCisJZWNobyAibGliY19jdl9mb3JjZWRfdW53aW5kPXllcyIgPiBjb25m aWcuY2FjaGUKKwllY2hvICJsaWJjX2N2X2NfY2xlYW51cD15ZXMiID4+IGNvbmZpZy5jYWNoZQor CisJQ0M9IiR7dGd0fS1nY2MiIENYWD0iJHt0Z3R9LWcrKyIgQ1BQPSIke3RndH0tY3BwIiBMRD0i JHt0Z3R9LWxkIiBcCisJQVI9IiR7dGd0fS1hciIgQVM9IiR7dGd0fS1hcyIgTk09IiR7dGd0fS1u bSIgXAorCUNGTEFHUz0iLXBpcGUgJHtjcm9zc19nbGliY19jZmxhZ3N9IiBcCisJQ1hYRkxBR1M9 Ii1waXBlICR7Y3Jvc3NfZ2xpYmNfY2ZsYWdzfSIgXAorCUNQUEZMQUdTPSIke2Nyb3NzX2dsaWJj X2NmbGFnc30iIFwKKwlMREZMQUdTPSIke2Nyb3NzX2dsaWJjX2xkZmxhZ3N9IiBcCisJLi4vZ2xp YmMtJHtjcm9zc19nbGliY192ZXJzaW9ufS9jb25maWd1cmUgXAorCQktLXByZWZpeD0vdXNyIFwK KwkJLS1saWJkaXI9L3Vzci9saWIke2Nyb3NzX3dvcmRzaXplfSBcCisJCS0tbGliZXhlY2Rpcj0v dXNyL2xpYmV4ZWMgXAorCQktLWhvc3Q9JHt0Z3R9IFwKKwkJLS13aXRoLWhlYWRlcnM9JHt3cmtz cmN9L2J1aWxkX3Jvb3QvdXNyLyR7dGd0fS91c3IvaW5jbHVkZSBcCisJCS0tY29uZmlnLWNhY2hl IFwKKwkJLS1lbmFibGUtb2Jzb2xldGUtcnBjIFwKKwkJLS1lbmFibGUtb2Jzb2xldGUtbnNsIFwK KwkJLS1kaXNhYmxlLXByb2ZpbGUgXAorCQktLWRpc2FibGUtd2Vycm9yIFwKKwkJLS1lbmFibGUt a2VybmVsPTIuNi4yNyBcCisJCSR7Y3Jvc3NfZ2xpYmNfY29uZmlndXJlX2FyZ3N9CisKKwltYWtl ICR7bWFrZWpvYnN9CisJbWFrZSBpbnN0YWxsX3Jvb3Q9JHt3cmtzcmN9L2J1aWxkX3Jvb3QvdXNy LyR7dGd0fSBpbnN0YWxsCisKKwl0b3VjaCAke3dya3NyY30vLmdsaWJjX2J1aWxkX2RvbmUKK30K KworX2J1aWxkX211c2woKSB7CisJX2NoZWNrX2Nyb3NzX2RpciBtdXNsX2J1aWxkIHx8IHJldHVy biAwCisKKwlsb2NhbCB0Z3Q9JGNyb3NzX3RyaXBsZXQKKworCW1zZ19ub3JtYWwgIlBhdGNoaW5n IG11c2wgZm9yICR7dGd0fVxuIgorCisJY2QgbXVzbC0ke2Nyb3NzX211c2xfdmVyc2lvbn0KKwlp ZiBbIC1kICIke1hCUFNfU1JDUEtHRElSfS9tdXNsL3BhdGNoZXMiIF07IHRoZW4KKwkJZm9yIGYg aW4gJHtYQlBTX1NSQ1BLR0RJUn0vbXVzbC9wYXRjaGVzLyoucGF0Y2g7IGRvCisJCQlfYXBwbHlf cGF0Y2ggLXAwICIkZiIKKwkJZG9uZQorCWZpCisJY2QgLi4KKworCW1zZ19ub3JtYWwgIkJ1aWxk aW5nIG11c2wgZm9yICR7dGd0fVxuIgorCisJbWtkaXIgLXAgbXVzbF9idWlsZAorCWNkIG11c2xf YnVpbGQKKworCUNDPSIke3RndH0tZ2NjIiBDWFg9IiR7dGd0fS1nKysiIENQUD0iJHt0Z3R9LWNw cCIgTEQ9IiR7dGd0fS1sZCIgXAorCUFSPSIke3RndH0tYXIiIEFTPSIke3RndH0tYXMiIE5NPSIk e3RndH0tbm0iIFwKKwlDRkxBR1M9Ii1waXBlIC1mUElDICR7Y3Jvc3NfbXVzbF9jZmxhZ3N9IiBc CisJQ1BQRkxBR1M9IiR7Y3Jvc3NfbXVzbF9jZmxhZ3N9IiBMREZMQUdTPSIke2Nyb3NzX211c2xf bGRmbGFnc30iIFwKKwkuLi9tdXNsLSR7Y3Jvc3NfbXVzbF92ZXJzaW9ufS9jb25maWd1cmUgXAor CQktLXByZWZpeD0vdXNyIFwKKwkJLS1ob3N0PSR7dGd0fSBcCisJCSR7Y3Jvc3NfbXVzbF9jb25m aWd1cmVfYXJnc30KKworCW1ha2UgJHttYWtlam9ic30KKwltYWtlIERFU1RESVI9JHt3cmtzcmN9 L2J1aWxkX3Jvb3QvdXNyLyR7dGd0fSBpbnN0YWxsCisKKwl0b3VjaCAke3dya3NyY30vLm11c2xf YnVpbGRfZG9uZQorfQorCitfYnVpbGRfbGlidWNvbnRleHQoKSB7CisJWyAtbiAiJGNyb3NzX2dj Y19za2lwX2dvIiBdICYmIHJldHVybiAwCisJX2NoZWNrX2Nyb3NzX2RpciBsaWJ1Y29udGV4dCB8 fCByZXR1cm4gMAorCisJbXNnX25vcm1hbCAiQnVpbGRpbmcgbGlidWNvbnRleHQgZm9yICR7Y3Jv c3NfdHJpcGxldH1cbiIKKworCWNkIGxpYnVjb250ZXh0LSR7Y3Jvc3NfbGlidWNvbnRleHRfdmVy c2lvbn0KKwkjIGEgdGVycmlibGUgaGFjayBidXQgc2VlbXMgdG8gd29yayBmb3Igbm93CisJQ0M9 IiR7Y3Jvc3NfdHJpcGxldH0tZ2NjIiBBUz0iJHtjcm9zc190cmlwbGV0fS1hcyIgQVI9IiR7Y3Jv c3NfdHJpcGxldH0tYXIiIFwKKwlDUFBGTEFHUz0iLXBpcGUgJHtjcm9zc19tdXNsX2NmbGFnc30g LWcwIC1PcyAtbm9zdGRpbmMgLWlzeXN0ZW0gJHt3cmtzcmN9L2J1aWxkX3Jvb3QvdXNyLyR7Y3Jv c3NfdHJpcGxldH0vdXNyL2luY2x1ZGUiIFwKKwltYWtlIEFSQ0g9JHtjcm9zc19saWJ1Y29udGV4 dF9hcmNofSBsaWJ1Y29udGV4dC5hCisKKwljcCBsaWJ1Y29udGV4dC5hICR7d3Jrc3JjfS9idWls ZF9yb290L3Vzci8ke2Nyb3NzX3RyaXBsZXR9L3Vzci9saWIKKworCXRvdWNoICR7d3Jrc3JjfS8u bGlidWNvbnRleHRfYnVpbGRfZG9uZQorfQorCitfYnVpbGRfZ2NjKCkgeworCV9jaGVja19jcm9z c19kaXIgZ2NjIGdjY19idWlsZCB8fCByZXR1cm4gMAorCisJbXNnX25vcm1hbCAiQnVpbGRpbmcg Z2NjIGZvciAke2Nyb3NzX3RyaXBsZXR9XG4iCisKKwlta2RpciAtcCBnY2NfYnVpbGQKKwljZCBn Y2NfYnVpbGQKKworCWxvY2FsIGxhbmdzPSJjLGMrKyxmb3J0cmFuLG9iamMsb2JqLWMrKyxhZGEs bHRvIgorCWlmIFsgLXogIiRjcm9zc19nY2Nfc2tpcF9nbyIgXTsgdGhlbgorCQlsYW5ncys9Iixn byIKKwlmaQorCisJbG9jYWwgZXh0cmFfYXJncworCWlmIFsgIiRjcm9zc19saWJjIiA9ICJtdXNs IiBdOyB0aGVuCisJCWV4dHJhX2FyZ3MrPSIgLS1lbmFibGUtbGlic3NwIgorCQkjIG90aGVyd2lz ZSBnbGliYyBob3N0cyBnZXQgY29uZnVzZWQgYW5kIHVzZSB0aGUgZ251IGltcGwKKwkJZXh0cmFf YXJncys9IiAtLWVuYWJsZS1jbG9jYWxlPWdlbmVyaWMiCisJCWV4dHJhX2FyZ3MrPSIgLS1kaXNh YmxlLXN5bXZlcnMiCisJCWV4dHJhX2FyZ3MrPSIgLS1kaXNhYmxlLWdudS11bmlxdWUtb2JqZWN0 IgorCQlleHRyYV9hcmdzKz0iIGxpYmF0X2N2X2hhdmVfaWZ1bmM9bm8iCisJZWxzZQorCQlleHRy YV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzc3AiCisJCWV4dHJhX2FyZ3MrPSIgLS1lbmFibGUtZ251 LXVuaXF1ZS1vYmplY3QiCisJZmkKKworCSMgbm90ZSBvbiAtLWRpc2FibGUtbGlicXVhZG1hdGg6 CisJIyBvbiBzb21lIHBsYXRmb3JtcyB0aGUgbGlicmFyeSBpcyBhY3R1YWxseSBuZWNlc3Nhcnkg Zm9yIHRoZQorCSMgZm9ydHJhbiBmcm9udGVuZCB0byBidWlsZCwgYnV0IHN0aWxsIGRpc2FibGUg aXQgYmVjYXVzZSBpdAorCSMgc2hvdWxkIG5vdCBiZSBpbiB0aGUgcmVzdWx0aW5nIHBhY2thZ2Vz OyBpdCBjb25mbGljdHMgd2l0aAorCSMgdGhlIGxpYnF1YWRtYXRoIHlvdSBjYW4gaW5zdGFsbCBp bnRvIHRoZSBjcm9zcyByb290CisJIworCSMgcGxhdGZvcm1zIHdoZXJlIHRoaXMgaXMgYSBwcm9i bGVtIHNob3VsZCBleHBsaWNpdGx5IGZvcmNlCisJIyBsaWJxdWFkbWF0aCB0byBiZSBvbiB2aWEg Y3Jvc3NfZ2NjX2NvbmZpZ3VyZV9hcmdzLCBhbmQgdGhlbgorCSMgcmVtb3ZlIHRoZSBsaWJxdWFk bWF0aCBhcnRpZmFjdHMgaW4gcG9zdF9pbnN0YWxsIGhvb2sKKwkjCisJLi4vZ2NjLSR7Y3Jvc3Nf Z2NjX3ZlcnNpb259L2NvbmZpZ3VyZSBcCisJCS0tcHJlZml4PS91c3IgXAorCQktLXNiaW5kaXI9 L3Vzci9iaW4gXAorCQktLWxpYmRpcj0vdXNyL2xpYiBcCisJCS0tbGliZXhlY2Rpcj0vdXNyL2xp YiBcCisJCS0tdGFyZ2V0PSR7Y3Jvc3NfdHJpcGxldH0gXAorCQktLXdpdGgtc3lzcm9vdD0vdXNy LyR7Y3Jvc3NfdHJpcGxldH0gXAorCQktLXdpdGgtYnVpbGQtc3lzcm9vdD0ke3dya3NyY30vYnVp bGRfcm9vdC91c3IvJHtjcm9zc190cmlwbGV0fSBcCisJCS0tZW5hYmxlLWxhbmd1YWdlcz0ke2xh bmdzfSBcCisJCS0tZGlzYWJsZS1ubHMgXAorCQktLWRpc2FibGUtbXVsdGlsaWIgXAorCQktLWRp c2FibGUtc2psai1leGNlcHRpb25zIFwKKwkJLS1kaXNhYmxlLWxpYnF1YWRtYXRoIFwKKwkJLS1k aXNhYmxlLWxpYm11ZGZsYXAgXAorCQktLWRpc2FibGUtbGliaXRtIFwKKwkJLS1kaXNhYmxlLWxp YnZ0diBcCisJCS0tZGlzYWJsZS1saWJzYW5pdGl6ZXIgXAorCQktLWRpc2FibGUtbGlic3RkY3h4 LXBjaCBcCisJCS0tZW5hYmxlLXNoYXJlZCBcCisJCS0tZW5hYmxlLXRocmVhZHM9cG9zaXggXAor CQktLWVuYWJsZS1fX2N4YV9hdGV4aXQgXAorCQktLWVuYWJsZS1saW5rZXItYnVpbGQtaWQgXAor CQktLWVuYWJsZS1saWJhZGEgXAorCQktLWVuYWJsZS1sdG8gXAorCQktLWVuYWJsZS1kZWZhdWx0 LXBpZSBcCisJCS0tZW5hYmxlLWRlZmF1bHQtc3NwIFwKKwkJLS13aXRoLWdudS1sZCBcCisJCS0t d2l0aC1nbnUtYXMgXAorCQktLXdpdGgtbGlua2VyLWhhc2gtc3R5bGU9Z251IFwKKwkJJHtleHRy YV9hcmdzfSBcCisJCSR7Y29uZmlndXJlX2FyZ3N9IFwKKwkJJHtjcm9zc19nY2NfY29uZmlndXJl X2FyZ3N9CisKKwltYWtlICR7bWFrZWpvYnN9CisKKwl0b3VjaCAke3dya3NyY30vLmdjY19idWls ZF9kb25lCit9CisKK19jaGVja19jcm9zc192YXIoKSB7CisJbG9jYWwgdmFyPSJjcm9zc18kezF9 IgorCWlmIFsgLXogIiR7IXZhcn0iIF07IHRoZW4KKwkJbXNnX2Vycm9yICJjcm9zc18kezF9IG5v dCBkZWZpbmVkIGluIHRlbXBsYXRlIgorCWZpCit9CisKK2RvX2J1aWxkKCkgeworCSMgVmVyaWZ5 IHRvb2xjaGFpbiB2ZXJzaW9ucworCisJX2NoZWNrX2Nyb3NzX3ZhciBiaW51dGlsc192ZXJzaW9u CisJX2NoZWNrX2Nyb3NzX3ZhciBnY2NfdmVyc2lvbgorCV9jaGVja19jcm9zc192YXIgbGludXhf dmVyc2lvbgorCisJY2FzZSAiJHtjcm9zc19saWJjfSIgaW4KKwkJbXVzbCkKKwkJCV9jaGVja19j cm9zc192YXIgbXVzbF92ZXJzaW9uCisJCQlpZiBbIC16ICIkY3Jvc3NfZ2NjX3NraXBfZ28iIF07 IHRoZW4KKwkJCQlfY2hlY2tfY3Jvc3NfdmFyIGxpYnVjb250ZXh0X3ZlcnNpb24KKwkJCQlfY2hl Y2tfY3Jvc3NfdmFyIGxpYnVjb250ZXh0X2FyY2gKKwkJCWZpCisJCQk7OworCQlnbGliYykKKwkJ CV9jaGVja19jcm9zc192YXIgZ2xpYmNfdmVyc2lvbgorCQkJOzsKKwkJKikgbXNnX2Vycm9yICJh bGxvd2VkIGNyb3NzX2xpYmMgdmFsdWVzIGFyZSAnZ2xpYmMnLCAnbXVzbCdcbiIgOzsKKwllc2Fj CisKKwkjIFZlcmlmeSB0cmlwbGV0CisJX2NoZWNrX2Nyb3NzX3ZhciB0cmlwbGV0CisJX2NoZWNr X2Nyb3NzX3ZhciB3b3Jkc2l6ZQorCV9jaGVja19jcm9zc192YXIgbGludXhfYXJjaAorCisJbG9j YWwgc3lzcm9vdD0iL3Vzci8ke2Nyb3NzX3RyaXBsZXR9IgorCisJIyBQcmVwYXJlIGVudmlyb25t ZW50CisJY2QgJHt3cmtzcmN9CisKKwkjIENvcmUgZGlyZWN0b3JpZXMgZm9yIHRoZSBidWlsZCBy b290CisJbWtkaXIgLXAgYnVpbGRfcm9vdC91c3Ive2JpbixsaWIsaW5jbHVkZSxzaGFyZX0KKwlt a2RpciAtcCBidWlsZF9yb290L3Vzci8ke2Nyb3NzX3RyaXBsZXR9L3Vzci97YmluLGxpYixpbmNs dWRlLHNoYXJlfQorCisJIyBIb3N0IHJvb3QgdXNlcyBob3N0IHdvcmRzaXplCisJbG4gLXNmIHVz ci9saWIgYnVpbGRfcm9vdC9saWIKKwlsbiAtc2YgdXNyL2xpYiBidWlsZF9yb290L2xpYiR7WEJQ U19UQVJHRVRfV09SRFNJWkV9CisJbG4gLXNmIGxpYiBidWlsZF9yb290L3Vzci9saWIke1hCUFNf VEFSR0VUX1dPUkRTSVpFfQorCisJIyBUYXJnZXQgc3lzcm9vdCB1c2VzIHRhcmdldCB3b3Jkc2l6 ZQorCWxuIC1zZiB1c3IvbGliIGJ1aWxkX3Jvb3QvJHtzeXNyb290fS9saWIKKwlsbiAtc2YgdXNy L2xpYiBidWlsZF9yb290LyR7c3lzcm9vdH0vbGliJHtjcm9zc193b3Jkc2l6ZX0KKwlsbiAtc2Yg bGliIGJ1aWxkX3Jvb3QvJHtzeXNyb290fS91c3IvbGliJHtjcm9zc193b3Jkc2l6ZX0KKwlsbiAt c2YgbGliIGJ1aWxkX3Jvb3QvJHtzeXNyb290fS91c3IvbGliZXhlYworCisJX2J1aWxkX2JpbnV0 aWxzCisKKwkjIFByZXBhcmUgZW52aXJvbm1lbnQgc28gd2UgY2FuIHVzZSB0ZW1wb3JhcnkgcHJl Zml4CisJbG9jYWwgb2xkcGF0aD0iJFBBVEgiCisJbG9jYWwgb2xkbGRsaWI9IiRMRF9MSUJSQVJZ X1BBVEgiCisKKwlleHBvcnQgUEFUSD0iJHt3cmtzcmN9L2J1aWxkX3Jvb3QvdXNyL2JpbjokUEFU SCIKKwlleHBvcnQgTERfTElCUkFSWV9QQVRIPSIke3dya3NyY30vYnVpbGRfcm9vdC91c3IvbGli OiRQQVRIIgorCisJX2J1aWxkX2Jvb3RzdHJhcF9nY2MKKwlfYnVpbGRfa2VybmVsX2hlYWRlcnMK KworCWlmIFsgIiRjcm9zc19saWJjIiA9ICJtdXNsIiBdOyB0aGVuCisJCV9idWlsZF9tdXNsCisJ CV9idWlsZF9saWJ1Y29udGV4dAorCWVsc2UKKwkJX2J1aWxkX2dsaWJjX2hlYWRlcnMKKwkJX2J1 aWxkX2dsaWJjCisJZmkKKworCV9idWlsZF9nY2MKKworCSMgcmVzdG9yZSB0aGlzIHN0dWZmIGlu IGNhc2UgbGF0ZXIgaG9va3MgZGVwZW5kIG9uIGl0CisJZXhwb3J0IFBBVEg9IiRvbGRwYXRoIgor CWV4cG9ydCBMRF9MSUJSQVJZX1BBVEg9IiRvbGRsZGxpYiIKK30KKworZG9faW5zdGFsbCgpIHsK KwkjIFdlIG5lZWQgdG8gYmUgYWJsZSB0byBhY2Nlc3MgYmludXRpbHMgaW4gdGhlIHJvb3QKKwls b2NhbCBvbGRwYXRoPSIkUEFUSCIKKwlsb2NhbCBvbGRsZGxpYj0iJExEX0xJQlJBUllfUEFUSCIK KwlleHBvcnQgUEFUSD0iJHt3cmtzcmN9L2J1aWxkX3Jvb3QvdXNyL2JpbjokUEFUSCIKKwlleHBv cnQgTERfTElCUkFSWV9QQVRIPSIke3dya3NyY30vYnVpbGRfcm9vdC91c3IvbGliOiRQQVRIIgor CisJbG9jYWwgc3lzcm9vdD0iL3Vzci8ke2Nyb3NzX3RyaXBsZXR9IgorCisJIyBDb3JlIGRpcmVj dG9yaWVzIGZvciB0aGUgc3lzcm9vdAorCSMKKwkjIGxpYmV4ZWMgaXMgY3JlYXRlZCBmb3Igc3lz cm9vdCBidXQgbm90IGZvciBkZXN0LCBzaW5jZSBpbiBzeXNyb290CisJIyB3ZSBjb25maWd1cmUg Z2xpYmMgd2l0aCBzZXBhcmF0ZSBsaWJleGVjLCBlbHNld2hlcmUgaXQncyBqdXN0IGxpYgorCSMg YW5kIHdlIHdhbnQgdG8gZGVsZXRlIHRoZSBsaWJleGVjIGZyb20gZ2xpYmMgYWZ0ZXJ3YXJkcyB0 byBzYXZlIHNwYWNlCisJbWtkaXIgLXAgJHtERVNURElSfS8ke3N5c3Jvb3R9L3Vzci97YmluLGxp YixsaWJleGVjLGluY2x1ZGUsc2hhcmV9CisJIyBTeXNyb290IGJhc2Ugc3ltbGlua3MKKwlsbiAt c2YgdXNyL2xpYiAke0RFU1RESVJ9LyR7c3lzcm9vdH0vbGliCisJbG4gLXNmIHVzci9saWIgJHtE RVNURElSfS8ke3N5c3Jvb3R9L2xpYiR7Y3Jvc3Nfd29yZHNpemV9CisJbG4gLXNmIGxpYiAke0RF U1RESVJ9LyR7c3lzcm9vdH0vdXNyL2xpYiR7Y3Jvc3Nfd29yZHNpemV9CisKKwkjIEluc3RhbGwg TGludXggaGVhZGVycworCWNkICR7d3Jrc3JjfS9saW51eC0ke2Nyb3NzX2xpbnV4X3ZlcnNpb259 CisJbWFrZSBBUkNIPSR7Y3Jvc3NfbGludXhfYXJjaH0gXAorCQlJTlNUQUxMX0hEUl9QQVRIPSR7 REVTVERJUn0vJHtzeXNyb290fS91c3IgaGVhZGVyc19pbnN0YWxsCisJcm0gLWYgJChmaW5kICR7 REVTVERJUn0vJHtzeXNyb290fS91c3IvaW5jbHVkZSBcCisJCS1uYW1lIC5pbnN0YWxsIC1vciAt bmFtZSAuLmluc3RhbGwuY21kKQorCXJtIC1yZiAke0RFU1RESVJ9LyR7c3lzcm9vdH0vdXNyL2lu Y2x1ZGUvZHJtCisKKwkjIEluc3RhbGwgYmludXRpbHMKKwljZCAke3dya3NyY30vYmludXRpbHNf YnVpbGQKKwltYWtlIGluc3RhbGwgREVTVERJUj0ke0RFU1RESVJ9CisKKwkjIEluc3RhbGwgZmlu YWwgZ2NjCisJY2QgJHt3cmtzcmN9L2djY19idWlsZAorCW1ha2UgaW5zdGFsbCBERVNURElSPSR7 REVTVERJUn0KKworCSMgTW92ZSBsaWJjYzEuc28qIHRvIHRoZSBzeXNyb290CisJbXYgJHtERVNU RElSfS91c3IvbGliL2xpYmNjMS5zbyogJHtERVNURElSfS8ke3N5c3Jvb3R9L3Vzci9saWIKKwor CWlmIFsgIiRjcm9zc19saWJjIiA9ICJtdXNsIiBdOyB0aGVuCisJCSMgSW5zdGFsbCBtdXNsCisJ CWNkICR7d3Jrc3JjfS9tdXNsX2J1aWxkCisJCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9LyR7c3lz cm9vdH0gaW5zdGFsbAorCisJCSMgUmVtb3ZlIHVzZWxlc3MgaGVhZGVycworCQlybSAtcmYgJHtE RVNURElSfS91c3IvbGliL2djYy8ke2Nyb3NzX3RyaXBsZXR9LyovaW5jbHVkZS1maXhlZAorCisJ CSMgTWFrZSBsZC1tdXNsLnNvIHN5bWxpbmtzIHJlbGF0aXZlCisJCWZvciBmIGluICR7REVTVERJ Un0vJHtzeXNyb290fS91c3IvbGliL2xkLW11c2wtKi5zby4qOyBkbworCQkJbG4gLXNmIGxpYmMu c28gJHtmfQorCQlkb25lCisJZWxzZQorCQkjIEluc3RhbGwgZ2xpYmMKKwkJY2QgJHt3cmtzcmN9 L2dsaWJjX2J1aWxkCisJCW1ha2UgaW5zdGFsbF9yb290PSR7REVTVERJUn0vJHtzeXNyb290fSBp bnN0YWxsIGluc3RhbGwtaGVhZGVycworCisJCSMgUmVtb3ZlIGJhZCBoZWFkZXIKKwkJcm0gLWYg JHtERVNURElSfS91c3IvbGliL2djYy8ke2Nyb3NzX190cmlwbGV0fS8qL2luY2x1ZGUtZml4ZWQv Yml0cy9zdGF0eC5oCisJZmkKKworCSMgU3ltbGlua3MgZm9yIGduYXJsIGFuZCBnbmF0IHNoYXJl ZCBsaWJyYXJpZXMKKwlsb2NhbCBtYWpvcnZlcj0ke2Nyb3NzX2djY192ZXJzaW9uJS4qLip9CisJ bG9jYWwgYWRhbGliPXVzci9saWIvZ2NjLyR7X3RyaXBsZXR9LyR7X2djY192ZXJzaW9ufS9hZGFs aWIKKwltdiAke0RFU1RESVJ9LyR7YWRhbGlifS9saWJnbmFybC0ke21ham9ydmVyfS5zbyBcCisJ CSR7REVTVERJUn0vJHtzeXNyb290fS91c3IvbGliCisJbXYgJHtERVNURElSfS8ke2FkYWxpYn0v bGliZ25hdC0ke21ham9ydmVyfS5zbyBcCisJCSR7REVTVERJUn0vJHtzeXNyb290fS91c3IvbGli CisJbG4gLXNmIGxpYmduYXJsLSR7bWFqb3J2ZXJ9LnNvICR7REVTVERJUn0vJHtzeXNyb290fS91 c3IvbGliL2xpYmduYXJsLnNvCisJbG4gLXNmIGxpYmduYXQtJHttYWpvcnZlcn0uc28gJHtERVNU RElSfS8ke3N5c3Jvb3R9L3Vzci9saWIvbGliZ25hdC5zbworCXJtIC12ZiAke0RFU1RESVJ9LyR7 YWRhbGlifS9saWJnbmF7cmwsdH0uc28KKworCSMgUmVtb3ZlIHVubmVjZXNzYXJ5IGxpYmF0b21p YyB3aGljaCBpcyBvbmx5IGJ1aWx0IGZvciBnY2NnbworCXJtIC1yZiAke0RFU1RESVJ9LyR7c3lz cm9vdH0vdXNyL2xpYi9saWJhdG9taWMuKgorCisJIyBSZW1vdmUgbGVmdG92ZXIgc3ltbGlua3MK KwlybSAtZiAke0RFU1RESVJ9L3Vzci9saWIke1hCUFNfVEFSR0VUX1dPUkRTSVpFfQorCXJtIC1m ICR7REVTVERJUn0vbGliKgorCXJtIC1mICR7REVTVERJUn0vKmJpbgorCSMgUmVtb3ZlIHVubmVj ZXNzYXJ5IHN0dWZmCisJcm0gLXJmICR7REVTVERJUn0vJHtzeXNyb290fS97c2JpbixldGMsdmFy LGxpYmV4ZWN9CisJcm0gLXJmICR7REVTVERJUn0vJHtzeXNyb290fS91c3Ive3NiaW4sc2hhcmUs bGliZXhlY30KKwlybSAtcmYgJHtERVNURElSfS91c3Ivc2hhcmUKKwlybSAtZiAke0RFU1RESVJ9 L3Vzci9saWIqL2xpYmliZXJ0eS5hCisKKwlleHBvcnQgUEFUSD0iJG9sZHBhdGgiCisJZXhwb3J0 IExEX0xJQlJBUllfUEFUSD0iJG9sZGxkbGliIgorfQpkaWZmIC0tZ2l0IGEvY29tbW9uL2Vudmly b25tZW50L2J1aWxkLXN0eWxlL3ZvaWQtY3Jvc3Muc2ggYi9jb21tb24vZW52aXJvbm1lbnQvYnVp bGQtc3R5bGUvdm9pZC1jcm9zcy5zaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uODBhYWFiNDdmZDIKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vZW52aXJvbm1lbnQv YnVpbGQtc3R5bGUvdm9pZC1jcm9zcy5zaApAQCAtMCwwICsxLDExIEBACitsaWIzMmRpc2FibGVk PXllcworbm9jcm9zcz15ZXMKK25vcGllPXllcworY3JlYXRlX3dya3NyYz15ZXMKKworbm9zdHJp cF9maWxlcys9ImxpYmNhZl9zaW5nbGUuYSBsaWJnY2MuYSBsaWJnY292LmEgbGliZ2NjX2VoLmEK KyBsaWJnbmFybF9waWMuYSBsaWJnbmFybC5hIGxpYmduYXRfcGljLmEgbGliZ25hdC5hIGxpYmdt ZW0uYSIKKworaWYgWyAiJGNyb3NzX2xpYmMiID0gImdsaWJjIiAtYSAiJFhCUFNfVEFSR0VUX0xJ QkMiICE9ICJnbGliYyIgXTsgdGhlbgorICAgIGJyb2tlbj0iZ2xpYmMgY3Jvc3N0b29sY2hhaW5z IGFyZSBvbmx5IGF2YWlsYWJsZSBvbiBnbGliYyBob3N0cyBmb3Igbm93IgorZmkKCkZyb20gZDAx ZDVmOGU5MzQwNWQwY2M0NjY1MzI0NTQzZmE4YzkyZTg1MjQyYyBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogcTY2IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogRnJpLCAyNSBEZWMg MjAyMCAwMDo0Mzo0OCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDMvMTZdIGNyb3NzLWFhcmNoNjQt bGludXgtZ251OiByZWRvIHdpdGggdm9pZC1jcm9zcwoKLS0tCiBzcmNwa2dzL2Nyb3NzLWFhcmNo NjQtbGludXgtZ251L3RlbXBsYXRlIHwgMzY3ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZp bGUgY2hhbmdlZCwgMTkgaW5zZXJ0aW9ucygrKSwgMzQ4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvY3Jvc3MtYWFyY2g2NC1saW51eC1nbnUvdGVtcGxhdGUgYi9zcmNwa2dzL2Ny b3NzLWFhcmNoNjQtbGludXgtZ251L3RlbXBsYXRlCmluZGV4IGIwMTIyYzhlYzRhLi5mNTBkMTdi OGI4MCAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy1hYXJjaDY0LWxpbnV4LWdudS90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL2Nyb3NzLWFhcmNoNjQtbGludXgtZ251L3RlbXBsYXRlCkBAIC0xLDIx ICsxLDIxIEBACi0jIFRlbXBsYXRlIGJ1aWxkIGZpbGUgZm9yICdjcm9zcy1hYXJjaDY0LWxpbnV4 LWdudScKLSMKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3NzLWFhcmNoNjQtbGludXgtZ251Jwor X3RyaXBsZXQ9YWFyY2g2NC1saW51eC1nbnUKIF9iaW51dGlsc192ZXJzaW9uPTIuMzIKIF9nY2Nf dmVyc2lvbj05LjMuMAogX2dsaWJjX3ZlcnNpb249Mi4zMAogX2xpbnV4X3ZlcnNpb249NC4xOQot Ci1fdHJpcGxldD1hYXJjaDY0LWxpbnV4LWdudQotX2FyY2hmbGFncz0iLW1hcmNoPWFybXY4LWEi Ci1fc3lzcm9vdD0iL3Vzci8ke190cmlwbGV0fSIKLQogcGtnbmFtZT1jcm9zcy0ke190cmlwbGV0 fQogdmVyc2lvbj0wLjMzCiByZXZpc2lvbj0zCi1zaG9ydF9kZXNjPSJHTlUgQ3Jvc3MgdG9vbGNo YWluIGZvciB0aGUgJHtfdHJpcGxldH0gTEUgdGFyZ2V0IChiaW51dGlscy9nY2MvZ2xpYmMpIgor YnVpbGRfc3R5bGU9dm9pZC1jcm9zcworY29uZmlndXJlX2FyZ3M9Ii0td2l0aC1hcmNoPWFybXY4 LWEiCitob3N0bWFrZWRlcGVuZHM9InRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5dGhv bjMiCittYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2ZWwgZ21w LWRldmVsIG1wZnItZGV2ZWwiCitkZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8k e3JldmlzaW9ufSIKK3Nob3J0X2Rlc2M9IlZvaWQgY3Jvc3MgdG9vbGNoYWluIGZvciAke190cmlw bGV0fSIKIG1haW50YWluZXI9IkxlYWggTmV1a2lyY2hlbiA8bGVhaEB2dXh1Lm9yZz4iCi1ob21l cGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxh dGVyLCBHUEwtMy4wLW9yLWxhdGVyLCBMR1BMLTIuMS1vci1sYXRlciIKK2hvbWVwYWdlPSJodHRw czovL3d3dy52b2lkbGludXgub3JnLyIKIGRpc3RmaWxlcz0iCiAgJHtHTlVfU0lURX0vYmludXRp bHMvYmludXRpbHMtJHtfYmludXRpbHNfdmVyc2lvbn0udGFyLnh6CiAgJHtHTlVfU0lURX0vZ2Nj L2djYy0ke19nY2NfdmVyc2lvbn0vZ2NjLSR7X2djY192ZXJzaW9ufS50YXIueHoKQEAgLTI2LDM0 OSArMjYsMjAgQEAgY2hlY2tzdW09IjBhYjZjNTVkZDg2YTkyZWQ1NjE5NzJiYTE1YjliNzBhOGI5 Zjc1NTU3Zjg5NjQ0NmM4MmU4YjM2ZTQ3M2VlMDQKICBlMmM0MTE0ZTU2OWFmYmU3ZWRiYzI5MTMx YTQzYmU4MzM4NTBhYjlhNDU5ZDgxYmViMjU4ODAxNmQyYmJiOGFmCiAgMGM2OGY1NjU1NTI4YWVk NGY5OWRhZTcxYTViMjU5ZWRjOTMyMzlmYTg5OWUyZGY3OWMwNTUyNzVjMjE3NDlhMSIKIAotbGli MzJkaXNhYmxlZD15ZXMKLW5vY3Jvc3M9eWVzCi1ub3BpZT15ZXMKLWNyZWF0ZV93cmtzcmM9eWVz Ci1ob3N0bWFrZWRlcGVuZHM9InRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5dGhvbjMi Ci1tYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2ZWwiCi1kZXBl bmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKLW5vc3RyaXBfZmls ZXM9ImxpYmNhZl9zaW5nbGUuYSBsaWJnY2MuYSBsaWJnY292LmEgbGliZ2NjX2VoLmEKLSBsaWJn bmFybF9waWMuYSBsaWJnbmFybC5hIGxpYmduYXRfcGljLmEgbGliZ25hdC5hIGxpYmdtZW0uYSIK LQotaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMiICE9ICJnbGliYyIgXTsgdGhlbgotCWJyb2tlbj0i Z2xpYmMgY3Jvc3N0b29sY2hhaW4gb25seSBhdmFpbGFibGUgb24gZ2xpYmMiCi1maQotCi1pZiBb ICIkWEJQU19UQVJHRVRfV09SRFNJWkUiICE9ICI2NCIgXTsgdGhlbgotCWJyb2tlbj0iNjQtYml0 IGNyb3NzdG9vbGNoYWluIG9ubHkgYXZhaWxhYmxlIG9uIDY0LWJpdCBob3N0IgotZmkKK2Nyb3Nz X3RyaXBsZXQ9JHtfdHJpcGxldH0KK2Nyb3NzX3dvcmRzaXplPTY0Citjcm9zc19saWJjPWdsaWJj Citjcm9zc19iaW51dGlsc192ZXJzaW9uPSR7X2JpbnV0aWxzX3ZlcnNpb259Citjcm9zc19nY2Nf dmVyc2lvbj0ke19nY2NfdmVyc2lvbn0KK2Nyb3NzX2dsaWJjX3ZlcnNpb249JHtfZ2xpYmNfdmVy c2lvbn0KK2Nyb3NzX2xpbnV4X3ZlcnNpb249JHtfbGludXhfdmVyc2lvbn0KK2Nyb3NzX2xpbnV4 X2FyY2g9YXJtNjQKK2Nyb3NzX2dsaWJjX2NmbGFncz0iLU8yIC1tYXJjaD1hcm12OC1hIgogCiBp ZiBbICIkWEJQU19UQVJHRVRfTUFDSElORSIgPSAiYWFyY2g2NCIgXTsgdGhlbgogCWJyb2tlbj0i Q2FuJ3QgYnVpbGQgY3Jvc3N0b29sY2hhaW4gdG8gaXRzZWxmIgogZmkKIAotX2FwcGx5X3BhdGNo KCkgewotCWxvY2FsIGFyZ3M9IiQxIiBwbmFtZT0iJChiYXNlbmFtZSAkMikiCi0KLQlpZiBbICEg LWYgIi4ke3BuYW1lfV9kb25lIiBdOyB0aGVuCi0JCXBhdGNoIC1OICRhcmdzIC1pICQyCi0JCXRv dWNoIC4ke3BuYW1lfV9kb25lCi0JZmkKLX0KLQotX2xpbnV4X2hlYWRlcnMoKSB7Ci0JWyAtZiAk e3dya3NyY30vLmxpbnV4X2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9 Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgTGludXggQVBJIGhlYWRlcnMgZm9yIEFSTVxuIgotCi0J Y2QgbGludXgtJHtfbGludXhfdmVyc2lvbn0KLQotCW1ha2UgQVJDSD1hcm02NCBoZWFkZXJzX2No ZWNrCi0JbWFrZSBBUkNIPWFybTY0IElOU1RBTExfSERSX1BBVEg9JHtfc3lzcm9vdH0vdXNyIGhl YWRlcnNfaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5saW51eF9idWlsZF9kb25lCi19Ci0K LV9iaW51dGlsc19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmJp bnV0aWxzX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25v cm1hbCAiQnVpbGRpbmcgY3Jvc3MgYmludXRpbHNcbiIKLQlbICEgLWQgYmludXRpbHMtYnVpbGQg XSAmJiBta2RpciBiaW51dGlscy1idWlsZAotCWNkIGJpbnV0aWxzLWJ1aWxkCi0KLQlfYXJncz0i LS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9 IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgot CV9hcmdzKz0iIC0tZGlzYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGli IgotCV9hcmdzKz0iIC0tZGlzYWJsZS13ZXJyb3IiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWdvbGQi Ci0JX2FyZ3MrPSIgLS13aXRoLXN5c3RlbS16bGliIgotCS4uL2JpbnV0aWxzLSR7X2JpbnV0aWxz X3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSBjb25maWd1cmUtaG9zdCAmJiBt YWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmJpbnV0 aWxzX2J1aWxkX2RvbmUKLX0KLQotX2djY19ib290c3RyYXAoKSB7Ci0JbG9jYWwgX2FyZ3MKLQot CVsgLWYgJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2Qg JHt3cmtzcmN9L2djYy0ke19nY2NfdmVyc2lvbn0KLQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElS fS9nY2MvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAwICIkZiIKLQlkb25l Ci0KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBnY2MgYm9vdHN0cmFwXG4iCi0KLQlbICEg LWQgLi4vZ2NjLWJvb3RzdHJhcCBdICYmIG1rZGlyIC4uL2djYy1ib290c3RyYXAKLQljZCAuLi9n Y2MtYm9vdHN0cmFwCi0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLXRhcmdl dD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGhvdXQtaGVhZGVycyIKLQlfYXJncys9IiAt LWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1k aXNhYmxlLWxpYnF1YWRtYXRoIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1kZWNpbWFsLWZsb2F0Igot CV9hcmdzKz0iIC0tZGlzYWJsZS1saWJnb21wIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtcHgi Ci0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm11ZGZsYXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxp YnNzcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliaXRtIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1s aWJhdG9taWMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXRocmVhZHMiCi0JX2FyZ3MrPSIgLS1lbmFi bGUtbGFuZ3VhZ2VzPWMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNqbGotZXhjZXB0aW9ucyIKLQlf YXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS13aXRoLWdudS1sZCIKLQlf YXJncys9IiAtLXdpdGgtZ251LWFzIgotCi0JLi4vZ2NjLSR7X2djY192ZXJzaW9ufS9jb25maWd1 cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQltYWtlIGluc3RhbGwKLQotCXRvdWNo ICR7d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJhcF9kb25lCi19Ci0KLV9nbGliY19oZWFkZXJzKCkgewot CWxvY2FsIF9hcmdzIGYKLQotCVsgLWYgJHt3cmtzcmN9Ly5nbGliY19oZWFkZXJzX2RvbmUgXSAm JiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L2dsaWJjLSR7X2dsaWJjX3ZlcnNpb259Ci0JaWYg WyAtZCAiJHtYQlBTX1NSQ1BLR0RJUn0vZ2xpYmMvcGF0Y2hlcyIgXTsgdGhlbgotCQlmb3IgZiBp biAke1hCUFNfU1JDUEtHRElSfS9nbGliYy9wYXRjaGVzLyoucGF0Y2g7IGRvCi0JCQlfYXBwbHlf cGF0Y2ggLXAxICIkZiIKLQkJZG9uZQotCWZpCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFs ICJCdWlsZGluZyBjcm9zcyBnbGliYyBoZWFkZXJzXG4iCi0KLQlbICEgLWQgZ2xpYmMtaGVhZGVy cyBdICYmIG1rZGlyIGdsaWJjLWhlYWRlcnMKLQljZCBnbGliYy1oZWFkZXJzCi0KLQllY2hvICJs aWJjX2N2X2ZvcmNlZF91bndpbmQ9eWVzIiA+IGNvbmZpZy5jYWNoZQotCWVjaG8gImxpYmNfY3Zf Y19jbGVhbnVwPXllcyIgPj4gY29uZmlnLmNhY2hlCi0KLQlleHBvcnQgQ0M9IiR7X3RyaXBsZXR9 LWdjYyIgTEQ9IiR7X3RyaXBsZXR9LWxkIiBcCi0JCUFTPSIke190cmlwbGV0fS1hcyIgQ1BQPSIk e190cmlwbGV0fS1jcHAiIFwKLQkJTk09IiR7X3RyaXBsZXR9LW5tIgotCi0JX2FyZ3M9Ii0tcHJl Zml4PS91c3IiCi0JX2FyZ3MrPSIgLS1ob3N0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0 aC1oZWFkZXJzPSR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlIgotCV9hcmdzKz0iIC0tY29uZmlnLWNh Y2hlIgotCV9hcmdzKz0iIC0tZW5hYmxlLW9ic29sZXRlLXJwYyIKLQlfYXJncys9IiAtLWVuYWJs ZS1vYnNvbGV0ZS1uc2wiCi0JX2FyZ3MrPSIgLS1lbmFibGUta2VybmVsPTIuNi4yNyIKLQotCS4u L2dsaWJjLSR7X2dsaWJjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAtayBp bnN0YWxsLWhlYWRlcnMgY3Jvc3NfY29tcGlsaW5nPXllcyBcCi0JCWluc3RhbGxfcm9vdD0ke19z eXNyb290fQotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nbGliY19oZWFkZXJzX2RvbmUKLX0KLQotX2ds aWJjX2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uZ2xpYmNfYnVp bGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWls ZGluZyBjcm9zcyBnbGliY1xuIgotCi0JWyAhIC1kIGdsaWJjLWJ1aWxkIF0gJiYgbWtkaXIgZ2xp YmMtYnVpbGQKLQljZCBnbGliYy1idWlsZAotCi0JZWNobyAic2xpYmRpcj0vdXNyL2xpYjY0IiA+ IGNvbmZpZ3Bhcm1zCi0KLQllY2hvICJsaWJjX2N2X2ZvcmNlZF91bndpbmQ9eWVzIiA+IGNvbmZp Zy5jYWNoZQotCWVjaG8gImxpYmNfY3ZfY19jbGVhbnVwPXllcyIgPj4gY29uZmlnLmNhY2hlCi0K LQlleHBvcnQgQ0M9IiR7X3RyaXBsZXR9LWdjYyIgQ1hYPSIke190cmlwbGV0fS1nKysiIExEPSIk e190cmlwbGV0fS1sZCIgXAotCQlBUz0iJHtfdHJpcGxldH0tYXMiIENQUD0iJHtfdHJpcGxldH0t Y3BwIiBcCi0JCU5NPSIke190cmlwbGV0fS1ubSIKLQlleHBvcnQgQ0ZMQUdTPSItTzEgLXBpcGUg JHtfYXJjaGZsYWdzfSIKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tbGli ZGlyPS91c3IvbGliNjQiCi0JX2FyZ3MrPSIgLS1ob3N0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0i IC0td2l0aC1oZWFkZXJzPSR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlIgotCV9hcmdzKz0iIC0tY29u ZmlnLWNhY2hlIgotCV9hcmdzKz0iIC0tZW5hYmxlLW9ic29sZXRlLXJwYyIKLQlfYXJncys9IiAt LWVuYWJsZS1vYnNvbGV0ZS1uc2wiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXByb2ZpbGUiCi0JX2Fy Z3MrPSIgLS1lbmFibGUta2VybmVsPTIuNi4yNyIKLQlfYXJncys9IiAtLWRpc2FibGUtd2Vycm9y IgotCi0JLi4vZ2xpYmMtJHtfZ2xpYmNfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQlt YWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsX3Jvb3Q9JHtfc3lzcm9vdH0gaW5zdGFsbAot Ci0JdG91Y2ggJHt3cmtzcmN9Ly5nbGliY19idWlsZF9kb25lCi19Ci0KLV9nY2NfYnVpbGQoKSB7 Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYnVpbGRfZG9uZSBdICYmIHJl dHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBnY2Mg ZmluYWxcbiIKLQotCVsgISAtZCBnY2MtYnVpbGQgXSAmJiBta2RpciBnY2MtYnVpbGQKLQljZCBn Y2MtYnVpbGQKLQotCWV4cG9ydCBDQz0iZ2NjIiBDWFg9ImcrKyIgQ0ZMQUdTPSItT3MgLXBpcGUi Ci0JdW5zZXQgTEQgQVMKLQotCSMgTWFrZSB0aGlzIGxpbmsgdG8gdGFyZ2V0IGxpYnMuCi0JaWYg WyAhIC1mIC5zZWRfc3Vic3RfZG9uZSBdOyB0aGVuCi0JCXNlZCAtZSAicywgL2xpYi8sICR7X3N5 c3Jvb3R9L2xpYi8sZztzLCAvdXNyL2xpYi8sICR7X3N5c3Jvb3R9L3Vzci9saWIvLGciIFwKLQkJ CS1pICR7X3N5c3Jvb3R9L2xpYi9saWJjLnNvCi0JCXNlZCAtZSAicywgL2xpYjY0LywgJHtfc3lz cm9vdH0vbGliNjQvLGc7cywgL3Vzci9saWI2NC8sICR7X3N5c3Jvb3R9L3Vzci9saWI2NC8sZyIg XAotCQkJLWkgJHtfc3lzcm9vdH0vbGliL2xpYmMuc28KLQkJdG91Y2ggLnNlZF9zdWJzdF9kb25l Ci0JZmkKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tbGliZXhlY2Rpcj0v dXNyL2xpYiIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdp dGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLWVuYWJsZS1sYW5ndWFnZXM9Yyxh ZGEsYysrLG9iamMsb2JqLWMrKyxnbyxmb3J0cmFuLGx0byIKLQlfYXJncys9IiAtLXdpdGgtZ251 LWFzIgotCV9hcmdzKz0iIC0td2l0aC1nbnUtbGQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRp bGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNqbGot ZXhjZXB0aW9ucyIKLQlfYXJncys9IiAtLWVuYWJsZS10aHJlYWRzPXBvc2l4IgotCV9hcmdzKz0i IC0tZW5hYmxlLWxvbmctbG9uZ3giCi0JX2FyZ3MrPSIgLS1lbmFibGUtc2hhcmVkIgotCV9hcmdz Kz0iIC0tZW5hYmxlLWxpbmtlci1idWlsZC1pZCIKLQlfYXJncys9IiAtLWVuYWJsZS1nbnUtdW5p cXVlLW9iamVjdCIKLQlfYXJncys9IiAtLWVuYWJsZS1saWJhZGEiCi0JX2FyZ3MrPSIgLS1lbmFi bGUtbHRvIgotCV9hcmdzKz0iIC0tZW5hYmxlLWRlZmF1bHQtcGllIgotCV9hcmdzKz0iIC0tZW5h YmxlLWRlZmF1bHQtc3NwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJxdWFkbWF0aCIKLQlfYXJn cys9IiAtLWRpc2FibGUtbGlic3NwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtdWRmbGFwIgot CV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzYW5pdGl6ZXIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxp YmNpbGtydHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYml0bSIKLQlfYXJncys9IiAtLWRpc2Fi bGUtbGlidnR2IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzdGRjeHgtcGNoIgotCV9hcmdzKz0i IC0tZW5hYmxlLWxpYnN0ZGN4eC10aW1lIgotCV9hcmdzKz0iIC0td2l0aC1saW5rZXItaGFzaC1z dHlsZT1nbnUiCi0KLQkuLi9nY2MtJHtfZ2NjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQot Ci0JbWFrZSAke21ha2Vqb2JzfQotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYnVpbGRfZG9uZQot fQotCi1kb19idWlsZCgpIHsKLQl1bnNldCBMREZMQUdTCi0JZXhwb3J0IENGTEFHUz0iLU9zIiBD WFhGTEFHUz0iLU9zIgotCi0JZm9yIGYgaW4gaW5jbHVkZSBsaWIgbGliZXhlYyBiaW4gc2Jpbjsg ZG8KLQkJaWYgWyAhIC1kICR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4KLQkJCW1rZGlyIC1w ICR7X3N5c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZpCi0JCWlmIFsgISAtaCAke19zeXNyb290fS8ke2Z9 IF07IHRoZW4KLQkJCWxuIC1zZnIgJHtfc3lzcm9vdH0vdXNyLyR7Zn0gJHtfc3lzcm9vdH0vJHtm fQotCQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7X3N5c3Jvb3R9L3Vzci9saWI2NAotCWxuIC1z ZiB1c3IvbGliICR7X3N5c3Jvb3R9L2xpYjY0Ci0KLQlfYmludXRpbHNfYnVpbGQKLQlfZ2NjX2Jv b3RzdHJhcAotCV9saW51eF9oZWFkZXJzCi0JX2dsaWJjX2hlYWRlcnMKLQlfZ2xpYmNfYnVpbGQK LQlfZ2NjX2J1aWxkCi19Ci0KLWRvX2luc3RhbGwoKSB7Ci0JZm9yIGYgaW4gaW5jbHVkZSBsaWIg bGliZXhlYyBiaW4gc2JpbjsgZG8KLQkJaWYgWyAhIC1kICR7REVTVERJUn0vJHtfc3lzcm9vdH0v dXNyLyR7Zn0gXTsgdGhlbgotCQkJbWtkaXIgLXAgJHtERVNURElSfS8ke19zeXNyb290fS91c3Iv JHtmfQotCQlmaQotCQlpZiBbICEgLWggJHtERVNURElSfS8ke19zeXNyb290fS8ke2Z9IF07IHRo ZW4KLQkJCWxuIC1zZnIgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfSBcCi0JCQkJJHtE RVNURElSfS8ke19zeXNyb290fS8ke2Z9Ci0JCWZpCi0JZG9uZQotCWxuIC1zZiBsaWIgJHtERVNU RElSfS8ke19zeXNyb290fS91c3IvbGliNjQKLQlsbiAtc2YgdXNyL2xpYiAke0RFU1RESVJ9LyR7 X3N5c3Jvb3R9L2xpYjY0Ci0KLQkjIGluc3RhbGwgY3Jvc3MgYmludXRpbHMKLQljZCAke3dya3Ny Y30vYmludXRpbHMtYnVpbGQKLQltYWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0KLQkj IGluc3RhbGwgY3Jvc3MgZ2NjCi0JY2QgJHt3cmtzcmN9L2djYy1idWlsZAotCW1ha2UgREVTVERJ Uj0ke0RFU1RESVJ9IGluc3RhbGwKLQotCSMgbW92ZSBsaWJjYzEuc28qIHRvIHRoZSBzeXNyb290 Ci0JbXYgJHtERVNURElSfS91c3IvbGliL2xpYmNjMS5zbyogJHtERVNURElSfS8ke19zeXNyb290 fS91c3IvbGliCi0KLQkjIGluc3RhbGwgbGludXggQVBJIGhlYWRlcnMgZm9yIEFSTTY0Ci0JY2Qg JHt3cmtzcmN9L2xpbnV4LSR7X2xpbnV4X3ZlcnNpb259Ci0JbWFrZSBBUkNIPWFybTY0IElOU1RB TExfSERSX1BBVEg9JHtERVNURElSfS8ke19zeXNyb290fS91c3IgaGVhZGVyc19pbnN0YWxsCi0J cm0gLWYgJChmaW5kICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUgLW5hbWUgLmlu c3RhbGwgLW9yIC1uYW1lIC4uaW5zdGFsbC5jbWQpCi0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lz cm9vdH0vdXNyL2luY2x1ZGUvZHJtCi0KLQkjIGluc3RhbGwgZ2xpYmMgZm9yIHRhcmdldAotCWNk ICR7d3Jrc3JjfS9nbGliYy1idWlsZAotCW1ha2UgaW5zdGFsbF9yb290PSR7REVTVERJUn0vJHtf c3lzcm9vdH0gaW5zdGFsbCBpbnN0YWxsLWhlYWRlcnMKLQotCSMgc3ltbGlua3MgZm9yIGduYXJs IGFuZCBnbmF0IHNoYXJlZCBsaWJyYXJpZXMKLQlfbWFqb3J2ZXI9JHtfZ2NjX3ZlcnNpb24lLiou Kn0KLQlfYWRhbGliPXVzci9saWIvZ2NjLyR7X3RyaXBsZXR9LyR7X2djY192ZXJzaW9ufS9hZGFs aWIKLQltdiAtdiAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGliZ25hcmwtJHtfbWFqb3J2ZXJ9LnNv ICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCW12IC12ICR7REVTVERJUn0vJHtfYWRh bGlifS9saWJnbmF0LSR7X21ham9ydmVyfS5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9s aWIKLQlsbiAtc3ZmIGxpYmduYXJsLSR7X21ham9ydmVyfS5zbyBsaWJnbmFybC5zbwotCWxuIC1z dmYgbGliZ25hdC0ke19tYWpvcnZlcn0uc28gbGliZ25hdC5zbwotCXJtIC12ZiAke0RFU1RESVJ9 LyR7X2FkYWxpYn0vbGliZ25he3JsLHR9LnNvCi0KLQkjIFdlIG5lZWQgdG8gYnVpbGQgbGliYXRv bWljIGluIHRhcmdldCBnY2MgYXMgZ2NjZ28gbmVlZHMgaXQgdG8KLQkjIGJ1aWxkLi4uIGJ1dCBp dCdzIG5vdCBuZWVkZWQgYXQgcnVudGltZSwgc28gcmVtb3ZlIGl0IGZyb20gdGhlCi0JIyBkZXN0 ZGlyIHNvIGl0IGRvZXNuJ3QgY29uZmxpY3Qgd2l0aCB0aGUgbGliYXRvbWljIHBhY2thZ2UKLQly bSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIvbGliYXRvbWljLioKLQotCSMgUmVt b3ZlIHVubmVjZXNzYXJ5IHN0dWZmCi0Jcm0gLWYgJHtERVNURElSfS91c3IvbGliKi9saWJpYmVy dHkuYQotCXJtIC1yZiAke0RFU1RESVJ9L3Vzci9zaGFyZQotCXJtIC1yZiAke0RFU1RESVJ9LyR7 X3N5c3Jvb3R9L3tzYmluLGV0Yyx2YXJ9Ci0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0v dXNyL3tzYmluLHNoYXJlLGxpYmV4ZWN9Ci0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS9s aWJleGVjCi19Ci0KLWRvX2NsZWFuKCkgewotCSMgUmVtb3ZlIHRlbXBvcmFyeSBzdHVmZiBmcm9t IG1hc3RlcmRpcgotCXJtIC1yZiAke19zeXNyb290fQotCXJtIC1mIC91c3IvYmluLyR7X3RyaXBs ZXR9KgotCXJtIC1yZiAvdXNyL2xpYi9nY2MvJHtfdHJpcGxldH0KLQlybSAtcmYgL3Vzci9saWJl eGVjL2djYy8ke190cmlwbGV0fQotfQotCiBjcm9zcy1hYXJjaDY0LWxpbnV4LWdudS1saWJjX3Bh Y2thZ2UoKSB7CiAJc2hvcnRfZGVzYys9IiAtIGdsaWJjIGZpbGVzIgogCW5vc3RyaXA9eWVzCkBA IC0zNzYsNiArNDcsNiBAQCBjcm9zcy1hYXJjaDY0LWxpbnV4LWdudS1saWJjX3BhY2thZ2UoKSB7 CiAJbm92ZXJpZnlyZGVwcz15ZXMKIAogCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAke19zeXNy b290fQorCQl2bW92ZSB1c3IvJHtjcm9zc190cmlwbGV0fQogCX0KIH0KCkZyb20gYTc1NWY5NjE4 MjEwMzQ3ZTllYTIzNDRjZjBmMmRmYjYzZWNlNjY4YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogcTY2IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogRnJpLCAyNSBEZWMgMjAyMCAx NDo1MjozNiArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDQvMTZdIGNyb3NzLWFhcmNoNjQtbGludXgt bXVzbDogcmVkbyB3aXRoIHZvaWQtY3Jvc3MKCi0tLQogc3JjcGtncy9jcm9zcy1hYXJjaDY0LWxp bnV4LW11c2wvdGVtcGxhdGUgfCAzMDkgKystLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNo YW5nZWQsIDIxIGluc2VydGlvbnMoKyksIDI4OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmNwa2dzL2Nyb3NzLWFhcmNoNjQtbGludXgtbXVzbC90ZW1wbGF0ZSBiL3NyY3BrZ3MvY3Jvc3Mt YWFyY2g2NC1saW51eC1tdXNsL3RlbXBsYXRlCmluZGV4IDhkNDU4N2NmZTQ4Li43NmIzNmI2NjBi NiAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy1hYXJjaDY0LWxpbnV4LW11c2wvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9jcm9zcy1hYXJjaDY0LWxpbnV4LW11c2wvdGVtcGxhdGUKQEAgLTEsMTkg KzEsMTkgQEAKLSMgVGVtcGxhdGUgYnVpbGQgZmlsZSBmb3IgJ2Nyb3NzLWFhcmNoNjQtbGludXgt bXVzbCcKLSMKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3NzLWFhcmNoNjQtbGludXgtbXVzbCcK K190cmlwbGV0PWFhcmNoNjQtbGludXgtbXVzbAogX2JpbnV0aWxzX3ZlcnNpb249Mi4zMgogX2dj Y192ZXJzaW9uPTkuMy4wCiBfbXVzbF92ZXJzaW9uPTEuMS4yNAogX2xpbnV4X3ZlcnNpb249NC4x OQogX2xpYnVjb250ZXh0X3ZlcnNpb249MC45LjAKLQotX3RyaXBsZXQ9YWFyY2g2NC1saW51eC1t dXNsCi1fYXJjaGZsYWdzPSItbWFyY2g9YXJtdjgtYSIKLV9zeXNyb290PSIvdXNyLyR7X3RyaXBs ZXR9IgotCiBwa2duYW1lPWNyb3NzLSR7X3RyaXBsZXR9CiB2ZXJzaW9uPTAuMzMKIHJldmlzaW9u PTQKLXNob3J0X2Rlc2M9IkNyb3NzIHRvb2xjaGFpbiBmb3IgQVJNNjQgTEUgdGFyZ2V0IChtdXNs KSIKK2J1aWxkX3N0eWxlPXZvaWQtY3Jvc3MKK2NvbmZpZ3VyZV9hcmdzPSItLXdpdGgtYXJjaD1h cm12OC1hIgoraG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZ2NjLWdvIGZsZXggcGVybCBw eXRob24zIgorbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCB6bGliLWRldmVs IGdtcC1kZXZlbCBtcGZyLWRldmVsIgorZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lv bn1fJHtyZXZpc2lvbn0iCitzaG9ydF9kZXNjPSJWb2lkIGNyb3NzIHRvb2xjaGFpbiBmb3IgJHtf dHJpcGxldH0iCiBtYWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+Igog aG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51eC5vcmcvIgogbGljZW5zZT0iR1BMLTIuMC1v ci1sYXRlciwgR1BMLTMuMC1vci1sYXRlciwgTUlUIgpAQCAtMjksMjk2ICsyOSwyOSBAQCBjaGVj a3N1bT0iMGFiNmM1NWRkODZhOTJlZDU2MTk3MmJhMTViOWI3MGE4YjlmNzU1NTdmODk2NDQ2Yzgy ZThiMzZlNDczZWUwNAogIDBjNjhmNTY1NTUyOGFlZDRmOTlkYWU3MWE1YjI1OWVkYzkzMjM5ZmE4 OTllMmRmNzljMDU1Mjc1YzIxNzQ5YTEKICAwZDUzYTQxNWEzMDdlZjE3NTE1M2JiZTYwYTU3MmM5 NDBhOTIyY2I3MzZjZTEzNTMwYjY2NmU3ZWMyNzk1ZDY4IgogCi1saWIzMmRpc2FibGVkPXllcwot bm9jcm9zcz15ZXMKLW5vcGllPXllcwotbm9kZWJ1Zz15ZXMKLWNyZWF0ZV93cmtzcmM9eWVzCi0K LWhvc3RtYWtlZGVwZW5kcz0idGFyIGdjYy1vYmpjIGdjYy1nbyBmbGV4IHBlcmwgcHl0aG9uMyIK LW1ha2VkZXBlbmRzPSJ6bGliLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIGxpYm1wYy1kZXZl bCBpc2wxNS1kZXZlbCIKLW5vc3RyaXBfZmlsZXM9ImxpYmNhZl9zaW5nbGUuYSBsaWJnY2MuYSBs aWJnY292LmEgbGliZ2NjX2VoLmEKLSBsaWJnbmFybF9waWMuYSBsaWJnbmFybC5hIGxpYmduYXRf cGljLmEgbGliZ25hdC5hIGxpYmdtZW0uYSIKLWRlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3Zl cnNpb259XyR7cmV2aXNpb259IgotCi1pZiBbICIkWEJQU19UQVJHRVRfV09SRFNJWkUiICE9ICI2 NCIgXTsgdGhlbgotCWJyb2tlbj0iNjQtYml0IGNyb3NzdG9vbGNoYWluIG9ubHkgYXZhaWxhYmxl IG9uIDY0LWJpdCBob3N0IgotZmkKK2Nyb3NzX3RyaXBsZXQ9JHtfdHJpcGxldH0KK2Nyb3NzX3dv cmRzaXplPTY0Citjcm9zc19saWJjPW11c2wKK2Nyb3NzX2JpbnV0aWxzX3ZlcnNpb249JHtfYmlu dXRpbHNfdmVyc2lvbn0KK2Nyb3NzX2djY192ZXJzaW9uPSR7X2djY192ZXJzaW9ufQorY3Jvc3Nf bXVzbF92ZXJzaW9uPSR7X211c2xfdmVyc2lvbn0KK2Nyb3NzX2xpbnV4X3ZlcnNpb249JHtfbGlu dXhfdmVyc2lvbn0KK2Nyb3NzX2xpYnVjb250ZXh0X3ZlcnNpb249JHtfbGlidWNvbnRleHRfdmVy c2lvbn0KK2Nyb3NzX2xpYnVjb250ZXh0X2FyY2g9YWFyY2g2NAorY3Jvc3NfbGludXhfYXJjaD1h cm02NAorY3Jvc3NfbXVzbF9jZmxhZ3M9Ii1PMiAtbWFyY2g9YXJtdjgtYSIKIAogaWYgWyAiJFhC UFNfVEFSR0VUX01BQ0hJTkUiID0gImFhcmNoNjQtbXVzbCIgXTsgdGhlbgogCWJyb2tlbj0iQ2Fu J3QgYnVpbGQgY3Jvc3N0b29sY2hhaW4gdG8gaXRzZWxmIgogZmkKIAotX2FwcGx5X3BhdGNoKCkg ewotCWxvY2FsIGFyZ3M9IiQxIiBwbmFtZT0iJChiYXNlbmFtZSAkMikiCi0KLQlpZiBbICEgLWYg Ii4ke3BuYW1lfV9kb25lIiBdOyB0aGVuCi0JCXBhdGNoIC1OICRhcmdzIC1pICQyCi0JCXRvdWNo IC4ke3BuYW1lfV9kb25lCi0JZmkKLX0KLQotX2JpbnV0aWxzX2J1aWxkKCkgewotCWxvY2FsIF9h cmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uYmludXRpbHNfYnVpbGRfZG9uZSBdICYmIHJldHVybiAw Ci0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBiaW51dGlscyBi b290c3RyYXBcbiIKLQotCVsgISAtZCBiaW51dGlscy1idWlsZCBdICYmIG1rZGlyIGJpbnV0aWxz LWJ1aWxkCi0JY2QgYmludXRpbHMtYnVpbGQKLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJn cys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgtc3lzcm9vdD0ke19z eXNyb290fSIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1t dWx0aWxpYiIKLQlfYXJncys9IiAtLWRpc2FibGUtd2Vycm9yIgotCV9hcmdzKz0iIC0tZGlzYWJs ZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3RlbS16bGliIgotCi0JLi4vYmludXRpbHMt JHtfYmludXRpbHNfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlIGNvbmZpZ3Vy ZS1ob3N0ICYmIG1ha2UgJHttYWtlam9ic30KLQltYWtlIGluc3RhbGwKLQotCXRvdWNoICR7d3Jr c3JjfS8uYmludXRpbHNfYnVpbGRfZG9uZQotfQotCi1fZ2NjX2Jvb3RzdHJhcCgpIHsKLQlsb2Nh bCBfYXJncwotCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUgXSAmJiByZXR1cm4g MAotCi0JY2QgJHt3cmtzcmN9L2djYy0ke19nY2NfdmVyc2lvbn0KLQlmb3IgZiBpbiAke1hCUFNf U1JDUEtHRElSfS9nY2MvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAwICIk ZiIKLQlkb25lCi0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2NjL2ZpbGVzLyotbXVzbC5w YXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMSAiJGYiCi0JZG9uZQotCi0JbXNnX25vcm1hbCAi QnVpbGRpbmcgY3Jvc3MgZ2NjIGJvb3RzdHJhcFxuIgotCi0JWyAhIC1kIC4uL2djYy1ib290c3Ry YXAgXSAmJiBta2RpciAuLi9nY2MtYm9vdHN0cmFwCi0JY2QgLi4vZ2NjLWJvb3RzdHJhcAotCi0J X2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0J X2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS13aXRoLW5l d2xpYiIKLQlfYXJncys9IiAtLWVuYWJsZS1sYW5ndWFnZXM9YyIKLQlfYXJncys9IiAtLXdpdGgt bmV3bGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlicXVhZG1hdGgiCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLXRocmVhZHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWRlY2ltYWwtZmxvYXQiCi0JX2FyZ3Mr PSIgLS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXVkZmxhcCIKLQlf YXJncys9IiAtLWRpc2FibGUtbGliZ29tcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliYXRvbWlj IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zeW12ZXJzIgotCV9hcmdzKz0iIGxpYmF0X2N2X2hhdmVf aWZ1bmM9bm8iCi0KLQlDRkxBR1M9Ii1PMCAtZzAiIENYWEZMQUdTPSItTzAgLWcwIiBcCi0JCS4u L2djYy0ke19nY2NfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpv YnN9Ci0JbWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmdjY19ib290c3RyYXBfZG9u ZQotfQotCi1fbGludXhfaGVhZGVycygpIHsKLQlbIC1mICR7d3Jrc3JjfS8ubGludXhfYnVpbGRf ZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGlu ZyBMaW51eCBBUEkgaGVhZGVyc1xuIgotCi0JY2QgbGludXgtJHtfbGludXhfdmVyc2lvbn0KLQot CWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L2tlcm5lbC1saWJjLWhlYWRlcnMvcGF0Y2hlcy8q LnBhdGNoOyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAwICRmCi0JZG9uZQotCi0JbWFrZSBBUkNIPWFy bTY0IGhlYWRlcnNfY2hlY2sKLQltYWtlIEFSQ0g9YXJtNjQgSU5TVEFMTF9IRFJfUEFUSD0ke19z eXNyb290fS91c3IgaGVhZGVyc19pbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmxpbnV4X2J1 aWxkX2RvbmUKLX0KLQotX211c2xfYnVpbGQoKSB7Ci0JWyAtZiAke3dya3NyY30vLm11c2xfYnVp bGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30vbXVzbC0ke19tdXNsX3ZlcnNp b259Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgbXVzbCBsaWJjXG4iCi0KLQkjIEFwcGx5 IG11c2wgcGF0Y2hlcyBpZiB0aGVyZSBhcmUgYW55Ci0JaWYgWyAtZCAiJHtYQlBTX1NSQ1BLR0RJ Un0vbXVzbC9wYXRjaGVzIiBdOyB0aGVuCi0JCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L211 c2wvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCi0JCWRvbmUK LQlmaQotCi0JQ0M9IiR7X3RyaXBsZXR9LWdjYyIgTEQ9IiR7X3RyaXBsZXR9LWxkIiBBUj0iJHtf dHJpcGxldH0tYXIiIFwKLQkJQVM9IiR7X3RyaXBsZXR9LWFzIiBSQU5MSUI9IiR7X3RyaXBsZXR9 LXJhbmxpYiIgXAotCQlDRkxBR1M9Ii1PcyAtcGlwZSAtZlBJQyAke19hcmNoZmxhZ3N9IiBcCi0J CS4vY29uZmlndXJlIC0tcHJlZml4PS91c3IKLQotCW1ha2UgJHttYWtlam9ic30KLQltYWtlIERF U1RESVI9JHtfc3lzcm9vdH0gaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5tdXNsX2J1aWxk X2RvbmUKLX0KLQotX2xpYnVjb250ZXh0X2J1aWxkKCkgewotCVsgLWYgJHt3cmtzcmN9Ly5saWJ1 Y29udGV4dF9idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9saWJ1Y29u dGV4dC0ke19saWJ1Y29udGV4dF92ZXJzaW9ufQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3Nz IGxpYnVjb250ZXh0XG4iCi0KLQkjIGl0J3Mgb2sgaWYgd2UncmUgc3RhdGljIG9ubHkgaGVyZQot CUNDPSIke190cmlwbGV0fS1nY2MiIEFSPSIke190cmlwbGV0fS1hciIgQVM9IiR7X3RyaXBsZXR9 LWFzIiBcCi0JCUNGTEFHUz0iLU9zIC1waXBlICR7X2FyY2hmbGFnc30iIFwKLQkJbWFrZSBBUkNI PWFhcmNoNjQgbGlidWNvbnRleHQuYQotCi0JY3AgbGlidWNvbnRleHQuYSAke19zeXNyb290fS91 c3IvbGliCi0KLQl0b3VjaCAke3dya3NyY30vLmxpYnVjb250ZXh0X2J1aWxkX2RvbmUKLX0KLQot X2djY19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmdjY19idWls ZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxk aW5nIGNyb3NzIGdjYyBmaW5hbFxuIgotCi0JWyAhIC1kIGdjYy1idWlsZCBdICYmIG1rZGlyIGdj Yy1idWlsZAotCWNkIGdjYy1idWlsZAotCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3Mr PSIgLS1saWJleGVjZGlyPS91c3IvbGliIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9 IgotCV9hcmdzKz0iIC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tZW5h YmxlLWxhbmd1YWdlcz1jLGFkYSxjKyssb2JqYyxvYmotYysrLGdvLGZvcnRyYW4sbHRvIgotCV9h cmdzKz0iIC0tZW5hYmxlLWxpYmFkYSIKLQlfYXJncys9IiAtLWVuYWJsZS1sdG8iCi0JX2FyZ3Mr PSIgLS1lbmFibGUtZGVmYXVsdC1waWUiCi0JX2FyZ3MrPSIgLS1lbmFibGUtZGVmYXVsdC1zc3Ai Ci0JX2FyZ3MrPSIgLS1lbmFibGUtbGlic3NwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzYW5p dGl6ZXIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9hcmdzKz0iIC0tZGlzYWJs ZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnF1YWRtYXRoIgotCV9hcmdzKz0iIC0tZGlz YWJsZS1saWJtdWRmbGFwIgotCV9hcmdzKz0iIC0tZW5hYmxlLXNoYXJlZCIKLQlfYXJncys9IiAt LWRpc2FibGUtc3ltdmVycyIKLQlfYXJncys9IiBsaWJhdF9jdl9oYXZlX2lmdW5jPW5vIgotCi0J Li4vZ2NjLSR7X2djY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtl am9ic30KLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUKLX0KLQotZG9fYnVpbGQo KSB7Ci0JIyBFbnN1cmUgd2UgdXNlIHNhbmUgZW52aXJvbm1lbnQKLQl1bnNldCBDQyBDWFggQ1BQ IExEIEFTIEFSIFJBTkxJQiBPQkpEVU1QIFJFQURFTEYgTk0KLQl1bnNldCBDRkxBR1MgQ1hYRkxB R1MgQ1BQRkxBR1MgTERGTEFHUwotCWV4cG9ydCBDRkxBR1M9Ii1PcyAtcGlwZSIgQ1hYRkxBR1M9 Ii1PcyAtcGlwZSIKLQotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47IGRv Ci0JCWlmIFsgISAtZCAke19zeXNyb290fS91c3IvJHtmfSBdOyB0aGVuCi0JCQlta2RpciAtcCAk e19zeXNyb290fS91c3IvJHtmfQotCQlmaQotCQlpZiBbICEgLWggJHtfc3lzcm9vdH0vJHtmfSBd OyB0aGVuCi0JCQlsbiAtc2ZyICR7X3N5c3Jvb3R9L3Vzci8ke2Z9ICR7X3N5c3Jvb3R9LyR7Zn0K LQkJZmkKLQlkb25lCi0JbG4gLXNmIGxpYiAke19zeXNyb290fS91c3IvbGliNjQKLQlsbiAtc2Yg dXNyL2xpYiAke19zeXNyb290fS9saWI2NAotCi0JX2JpbnV0aWxzX2J1aWxkCi0JX2djY19ib290 c3RyYXAKLQlfbGludXhfaGVhZGVycwotCV9tdXNsX2J1aWxkCi0JX2xpYnVjb250ZXh0X2J1aWxk Ci0JX2djY19idWlsZAotfQotCi1kb19pbnN0YWxsKCkgewotCWZvciBmIGluIGluY2x1ZGUgbGli IGxpYmV4ZWMgYmluIHNiaW47IGRvCi0JCWlmIFsgISAtZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9 L3Vzci8ke2Z9IF07IHRoZW4KLQkJCW1rZGlyIC1wICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNy LyR7Zn0KLQkJZmkKLQkJaWYgWyAhIC1oICR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtmfSBdOyB0 aGVuCi0JCQlsbiAtc2ZyICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXAotCQkJCSR7 REVTVERJUn0vJHtfc3lzcm9vdH0vJHtmfQotCQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7REVT VERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYjY0Ci0JbG4gLXNmIHVzci9saWIgJHtERVNURElSfS8k e19zeXNyb290fS9saWI2NAotCi0JIyBpbnN0YWxsIGxpbnV4IEFQSSBoZWFkZXJzCi0JY2QgJHt3 cmtzcmN9L2xpbnV4LSR7X2xpbnV4X3ZlcnNpb259Ci0JbWFrZSBBUkNIPWFybTY0IElOU1RBTExf SERSX1BBVEg9JHtERVNURElSfS8ke19zeXNyb290fS91c3IgaGVhZGVyc19pbnN0YWxsCi0Jcm0g LWYgJChmaW5kICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUgLW5hbWUgLmluc3Rh bGwgLW9yIC1uYW1lIC4uaW5zdGFsbC5jbWQpCi0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9v dH0vdXNyL2luY2x1ZGUvZHJtCi0KLQkjIGluc3RhbGwgY3Jvc3MgYmludXRpbHMKLQljZCAke3dy a3NyY30vYmludXRpbHMtYnVpbGQKLQltYWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0K LQkjIGluc3RhbGwgY3Jvc3MgZ2NjCi0JY2QgJHt3cmtzcmN9L2djYy1idWlsZAotCW1ha2UgREVT VERJUj0ke0RFU1RESVJ9IGluc3RhbGwKLQotCSMgbW92ZSBsaWJjYzEuc28qIHRvIHRoZSBzeXNy b290Ci0JbXYgJHtERVNURElSfS91c3IvbGliL2xpYmNjMS5zbyogJHtERVNURElSfS8ke19zeXNy b290fS91c3IvbGliCi0KLQkjIGluc3RhbGwgbXVzbCBsaWJjIGZvciB0YXJnZXQKLQljZCAke3dy a3NyY30vbXVzbC0ke19tdXNsX3ZlcnNpb259Ci0JbWFrZSBERVNURElSPSR7REVTVERJUn0vJHtf c3lzcm9vdH0gaW5zdGFsbAotCi0JIyBSZW1vdmUgdXNlbGVzcyBoZWFkZXJzLgotCXJtIC1yZiAk e0RFU1RESVJ9L3Vzci9saWIvZ2NjLyR7X3RyaXBsZXR9LyovaW5jbHVkZS1maXhlZAotCi0JIyBN YWtlIGxkLW11c2wuc28gc3ltbGlua3MgcmVsYXRpdmUuCi0JbG4gLXNmIGxpYmMuc28gJHtERVNU RElSfS8ke19zeXNyb290fS91c3IvbGliL2xkLW11c2wtYWFyY2g2NC5zby4xCi0KLQkjIHN5bWxp bmtzIGZvciBnbmFybCBhbmQgZ25hdCBzaGFyZWQgbGlicmFyaWVzCi0JX21ham9ydmVyPSR7X2dj Y192ZXJzaW9uJS4qLip9Ci0JX2FkYWxpYj11c3IvbGliL2djYy8ke190cmlwbGV0fS8ke19nY2Nf dmVyc2lvbn0vYWRhbGliCi0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXJsLSR7 X21ham9ydmVyfS5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQltdiAtdiAke0RF U1RESVJ9LyR7X2FkYWxpYn0vbGliZ25hdC0ke19tYWpvcnZlcn0uc28gJHtERVNURElSfS8ke19z eXNyb290fS91c3IvbGliCi0JbG4gLXN2ZiBsaWJnbmFybC0ke19tYWpvcnZlcn0uc28gbGliZ25h cmwuc28KLQlsbiAtc3ZmIGxpYmduYXQtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXQuc28KLQlybSAt dmYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXtybCx0fS5zbwotCi0JIyBXZSBuZWVkIHRv IGJ1aWxkIGxpYmF0b21pYyBpbiB0YXJnZXQgZ2NjIGFzIGdjY2dvIG5lZWRzIGl0IHRvCi0JIyBi dWlsZC4uLiBidXQgaXQncyBub3QgbmVlZGVkIGF0IHJ1bnRpbWUsIHNvIHJlbW92ZSBpdCBmcm9t IHRoZQotCSMgZGVzdGRpciBzbyBpdCBkb2Vzbid0IGNvbmZsaWN0IHdpdGggdGhlIGxpYmF0b21p YyBwYWNrYWdlCi0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliL2xpYmF0b21p Yy4qCi0KLQkjIFJlbW92ZSB1bm5lY2Vzc2FyeSBzdHVmZgotCXJtIC1mICR7REVTVERJUn0vdXNy L2xpYiovbGliaWJlcnR5LmEKLQlybSAtcmYgJHtERVNURElSfS91c3Ivc2hhcmUKLQlybSAtcmYg JHtERVNURElSfS8ke19zeXNyb290fS97ZXRjLHZhcn0KLQlybSAtcmYgJHtERVNURElSfS8ke19z eXNyb290fS91c3Ive3NiaW4sc2hhcmUsbGliZXhlY30KLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9L2xpYmV4ZWMKLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYi8qLnB5Ci0J cm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS9zYmluCi19Ci0KIGNyb3NzLWFhcmNoNjQtbGlu dXgtbXVzbC1saWJjX3BhY2thZ2UoKSB7CiAJc2hvcnRfZGVzYys9IiAtIGxpYmMgZmlsZXMiCiAJ bm9zdHJpcD15ZXMKIAlub3NobGlicHJvdmlkZXM9eWVzCiAJbm92ZXJpZnlyZGVwcz15ZXMKKwog CXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAke19zeXNyb290fQorCQl2bW92ZSB1c3IvJHtjcm9z c190cmlwbGV0fQogCX0KIH0KCkZyb20gOGI2ZmI0YzRkMDRjMThjZGI0YWM0MTEyYTU4ZWE4MTRj YmFlODdiMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogcTY2IDxkYW5pZWxAb2N0YWZv cmdlLm9yZz4KRGF0ZTogRnJpLCAyNSBEZWMgMjAyMCAyMDoxMDozNSArMDEwMApTdWJqZWN0OiBb UEFUQ0ggMDUvMTZdIGNyb3NzLWFybS1saW51eC1nbnVlYWJpOiByZWRvIHdpdGggdm9pZC1jcm9z cwoKLS0tCiBzcmNwa2dzL2Nyb3NzLWFybS1saW51eC1nbnVlYWJpL3RlbXBsYXRlIHwgMzY2ICsr LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjAgaW5zZXJ0aW9ucygrKSwg MzQ2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY3Jvc3MtYXJtLWxpbnV4LWdu dWVhYmkvdGVtcGxhdGUgYi9zcmNwa2dzL2Nyb3NzLWFybS1saW51eC1nbnVlYWJpL3RlbXBsYXRl CmluZGV4IGU1ODEwMGU2OGRmLi5iMWU1OTA0NGZiZiAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9z cy1hcm0tbGludXgtZ251ZWFiaS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Nyb3NzLWFybS1saW51 eC1nbnVlYWJpL3RlbXBsYXRlCkBAIC0xLDIyICsxLDIxIEBACi0jIFRlbXBsYXRlIGJ1aWxkIGZp bGUgZm9yICdjcm9zcy1hcm0tbGludXgtZ251ZWFiaScKLSMKKyMgVGVtcGxhdGUgZmlsZSBmb3Ig J2Nyb3NzLWFybS1saW51eC1nbnVlYWJpJworX3RyaXBsZXQ9YXJtLWxpbnV4LWdudWVhYmkKIF9i aW51dGlsc192ZXJzaW9uPTIuMzIKIF9nY2NfdmVyc2lvbj05LjMuMAogX2dsaWJjX3ZlcnNpb249 Mi4zMAogX2xpbnV4X3ZlcnNpb249NC4xOQotCi1fdHJpcGxldD1hcm0tbGludXgtZ251ZWFiaQot X2ZwdWZsYWdzPSItLXdpdGgtYXJjaD1hcm12NXRlIC0td2l0aG91dC1mcCAtLXdpdGgtZmxvYXQ9 c29mdCIKLV9hcmNoZmxhZ3M9Ii1tYXJjaD1hcm12NXRlIC1tc29mdC1mbG9hdCAtbWZsb2F0LWFi aT1zb2Z0IgotX3N5c3Jvb3Q9Ii91c3IvJHtfdHJpcGxldH0iCi0KIHBrZ25hbWU9Y3Jvc3MtJHtf dHJpcGxldH0KIHZlcnNpb249MC4zMwogcmV2aXNpb249Mgotc2hvcnRfZGVzYz0iR05VIENyb3Nz IHRvb2xjaGFpbiBmb3IgdGhlICR7X3RyaXBsZXR9IExFIHRhcmdldCAoYmludXRpbHMvZ2NjL2ds aWJjKSIKK2J1aWxkX3N0eWxlPXZvaWQtY3Jvc3MKK2NvbmZpZ3VyZV9hcmdzPSItLXdpdGgtYXJj aD1hcm12NXRlIC0td2l0aC1mbG9hdD1zb2Z0IgoraG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2NjLW9i amMgZ2NjLWdvIGZsZXggcGVybCBweXRob24zIgorbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxp Ym1wYy1kZXZlbCB6bGliLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIgorZGVwZW5kcz0iJHtw a2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCitzaG9ydF9kZXNjPSJWb2lkIGNy b3NzIHRvb2xjaGFpbiBmb3IgJHtfdHJpcGxldH0iCiBtYWludGFpbmVyPSJPcnBoYW5lZCA8b3Jw aGFuQHZvaWRsaW51eC5vcmc+IgorbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR1BMLTMuMC1v ci1sYXRlciwgTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxp bnV4Lm9yZy8iCi1saWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBHUEwtMy4wLW9yLWxhdGVyLCBM R1BMLTIuMS4wLW9yLWxhdGVyIgogZGlzdGZpbGVzPSIKICAke0dOVV9TSVRFfS9iaW51dGlscy9i aW51dGlscy0ke19iaW51dGlsc192ZXJzaW9ufS50YXIueHoKICAke0dOVV9TSVRFfS9nY2MvZ2Nj LSR7X2djY192ZXJzaW9ufS9nY2MtJHtfZ2NjX3ZlcnNpb259LnRhci54egpAQCAtMjcsMzQ2ICsy NiwyMSBAQCBjaGVja3N1bT0iMGFiNmM1NWRkODZhOTJlZDU2MTk3MmJhMTViOWI3MGE4YjlmNzU1 NTdmODk2NDQ2YzgyZThiMzZlNDczZWUwNAogIGUyYzQxMTRlNTY5YWZiZTdlZGJjMjkxMzFhNDNi ZTgzMzg1MGFiOWE0NTlkODFiZWIyNTg4MDE2ZDJiYmI4YWYKICAwYzY4ZjU2NTU1MjhhZWQ0Zjk5 ZGFlNzFhNWIyNTllZGM5MzIzOWZhODk5ZTJkZjc5YzA1NTI3NWMyMTc0OWExIgogCi1saWIzMmRp c2FibGVkPXllcwotbm9jcm9zcz15ZXMKLW5vcGllPXllcwotbm9kZWJ1Zz15ZXMKLWNyZWF0ZV93 cmtzcmM9eWVzCi0KLWhvc3RtYWtlZGVwZW5kcz0idGFyIGdjYy1vYmpjIGdjYy1nbyBmbGV4IHBl cmwgcHl0aG9uMyIKLW1ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgemxpYi1k ZXZlbCIKLWRlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259Igot bm9zdHJpcF9maWxlcz0ibGliY2FmX3NpbmdsZS5hIGxpYmdjYy5hIGxpYmdjb3YuYSBsaWJnY2Nf ZWguYQotIGxpYmduYXJsX3BpYy5hIGxpYmduYXJsLmEgbGliZ25hdF9waWMuYSBsaWJnbmF0LmEg bGliZ21lbS5hIgotCi1pZiBbICIkWEJQU19UQVJHRVRfTElCQyIgIT0gImdsaWJjIiBdOyB0aGVu Ci0JYnJva2VuPSJnbGliYyBjcm9zc3Rvb2xjaGFpbiBvbmx5IGF2YWlsYWJsZSBvbiBnbGliYyIK LWZpCitjcm9zc190cmlwbGV0PSR7X3RyaXBsZXR9Citjcm9zc193b3Jkc2l6ZT0zMgorY3Jvc3Nf bGliYz1nbGliYworY3Jvc3NfYmludXRpbHNfdmVyc2lvbj0ke19iaW51dGlsc192ZXJzaW9ufQor Y3Jvc3NfZ2NjX3ZlcnNpb249JHtfZ2NjX3ZlcnNpb259Citjcm9zc19nbGliY192ZXJzaW9uPSR7 X2dsaWJjX3ZlcnNpb259Citjcm9zc19saW51eF92ZXJzaW9uPSR7X2xpbnV4X3ZlcnNpb259Citj cm9zc19saW51eF9hcmNoPWFybQorY3Jvc3NfZ2xpYmNfY29uZmlndXJlX2FyZ3M9Ii0td2l0aG91 dC1mcCIKK2Nyb3NzX2dsaWJjX2NmbGFncz0iLU9zIC1tYXJjaD1hcm12NXRlIC1tc29mdC1mbG9h dCAtbWZsb2F0LWFiaT1zb2Z0IgogCiBpZiBbICIkWEJQU19UQVJHRVRfTUFDSElORSIgPSAiYXJt djV0ZWwiIF07IHRoZW4KIAlicm9rZW49IkNhbid0IGJ1aWxkIGNyb3NzdG9vbGNoYWluIHRvIGl0 c2VsZiIKIGZpCiAKLV9hcHBseV9wYXRjaCgpIHsKLQlsb2NhbCBhcmdzPSIkMSIgcG5hbWU9IiQo YmFzZW5hbWUgJDIpIgotCi0JaWYgWyAhIC1mICIuJHtwbmFtZX1fZG9uZSIgXTsgdGhlbgotCQlw YXRjaCAtTiAkYXJncyAtaSAkMgotCQl0b3VjaCAuJHtwbmFtZX1fZG9uZQotCWZpCi19Ci0KLV9s aW51eF9oZWFkZXJzKCkgewotCVsgLWYgJHt3cmtzcmN9Ly5saW51eF9idWlsZF9kb25lIF0gJiYg cmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIExpbnV4IEFQ SSBoZWFkZXJzIGZvciBBUk1cbiIKLQotCWNkIGxpbnV4LSR7X2xpbnV4X3ZlcnNpb259Ci0KLQlt YWtlIEFSQ0g9YXJtIGhlYWRlcnNfY2hlY2sKLQltYWtlIEFSQ0g9YXJtIElOU1RBTExfSERSX1BB VEg9JHtfc3lzcm9vdH0vdXNyIGhlYWRlcnNfaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5s aW51eF9idWlsZF9kb25lCi19Ci0KLV9iaW51dGlsc19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwot Ci0JWyAtZiAke3dya3NyY30vLmJpbnV0aWxzX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0J Y2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgYmludXRpbHNcbiIKLQlb ICEgLWQgYmludXRpbHMtYnVpbGQgXSAmJiBta2RpciBiaW51dGlscy1idWlsZAotCWNkIGJpbnV0 aWxzLWJ1aWxkCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtf dHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3Mr PSIgLS1kaXNhYmxlLW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0i IC0tZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJncys9IiAtLWRpc2FibGUtd2Vycm9yIgotCV9hcmdz Kz0iIC0td2l0aC1zeXN0ZW0temxpYiIKLQotCS4uL2JpbnV0aWxzLSR7X2JpbnV0aWxzX3ZlcnNp b259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSBjb25maWd1cmUtaG9zdAotCW1ha2UgJHtt YWtlam9ic30KLQltYWtlIGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8uYmludXRpbHNfYnVp bGRfZG9uZQotfQotCi1fZ2NjX2Jvb3RzdHJhcCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAk e3dya3NyY30vLmdjY19ib290c3RyYXBfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3Ny Y30vZ2NjLSR7X2djY192ZXJzaW9ufQotCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L2djYy9w YXRjaGVzLyoucGF0Y2g7IGRvCi0JCV9hcHBseV9wYXRjaCAtcDAgIiRmIgotCWRvbmUKLQotCW1z Z19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdjYyBib290c3RyYXBcbiIKLQotCVsgISAtZCAuLi9n Y2MtYm9vdHN0cmFwIF0gJiYgbWtkaXIgLi4vZ2NjLWJvb3RzdHJhcAotCWNkIC4uL2djYy1ib290 c3RyYXAKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3Ry aXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aG91dC1oZWFkZXJzIgotCV9hcmdzKz0iIC0tZGlzYWJs ZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWRpc2FibGUt bGlicXVhZG1hdGgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWRlY2ltYWwtZmxvYXQiCi0JX2FyZ3Mr PSIgLS1kaXNhYmxlLWxpYmdvbXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm1weCIKLQlfYXJn cys9IiAtLWRpc2FibGUtbGlibXVkZmxhcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlic3NwIgot CV9hcmdzKz0iIC0tZGlzYWJsZS1saWJpdG0iCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmF0b21p YyIKLQlfYXJncys9IiAtLWRpc2FibGUtdGhyZWFkcyIKLQlfYXJncys9IiAtLWVuYWJsZS1sYW5n dWFnZXM9YyIKLQlfYXJncys9IiAtLWRpc2FibGUtc2psai1leGNlcHRpb25zIgotCV9hcmdzKz0i IC0tZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJncys9IiAtLXdpdGgtZ251LWxkIgotCV9hcmdzKz0i IC0td2l0aC1nbnUtYXMiCi0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9IgotCi0JQ0ZMQUdTPSItTzAg LWcwIiBDWFhGTEFHUz0iLU8wIC1nMCIgXAotCQkuLi9nY2MtJHtfZ2NjX3ZlcnNpb259L2NvbmZp Z3VyZSAke19hcmdzfQotCi0JbWFrZSAke21ha2Vqb2JzfQotCW1ha2UgaW5zdGFsbAotCi0JdG91 Y2ggJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUKLX0KLQotX2dsaWJjX2hlYWRlcnMoKSB7 Ci0JbG9jYWwgX2FyZ3MgZgotCi0JWyAtZiAke3dya3NyY30vLmdsaWJjX2hlYWRlcnNfZG9uZSBd ICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30vZ2xpYmMtJHtfZ2xpYmNfdmVyc2lvbn0KLQlp ZiBbIC1kICIke1hCUFNfU1JDUEtHRElSfS9nbGliYy9wYXRjaGVzIiBdOyB0aGVuCi0JCWZvciBm IGluICR7WEJQU19TUkNQS0dESVJ9L2dsaWJjL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJCV9hcHBs eV9wYXRjaCAtcDEgIiRmIgotCQlkb25lCi0JZmkKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3Jt YWwgIkJ1aWxkaW5nIGNyb3NzIGdsaWJjIGhlYWRlcnNcbiIKLQotCVsgISAtZCBnbGliYy1oZWFk ZXJzIF0gJiYgbWtkaXIgZ2xpYmMtaGVhZGVycwotCWNkIGdsaWJjLWhlYWRlcnMKLQotCWVjaG8g ImxpYmNfY3ZfZm9yY2VkX3Vud2luZD15ZXMiID4gY29uZmlnLmNhY2hlCi0JZWNobyAibGliY19j dl9jX2NsZWFudXA9eWVzIiA+PiBjb25maWcuY2FjaGUKLQotCWV4cG9ydCBDQz0iJHtfdHJpcGxl dH0tZ2NjIiBMRD0iJHtfdHJpcGxldH0tbGQiIFwKLQkJQVM9IiR7X3RyaXBsZXR9LWFzIiBDUFA9 IiR7X3RyaXBsZXR9LWNwcCIKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0t aG9zdD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgtaGVhZGVycz0ke19zeXNyb290fS91 c3IvaW5jbHVkZSIKLQlfYXJncys9IiAtLWNvbmZpZy1jYWNoZSIKLQlfYXJncys9IiAtLWVuYWJs ZS1vYnNvbGV0ZS1ycGMiCi0JX2FyZ3MrPSIgLS1lbmFibGUtb2Jzb2xldGUtbnNsIgotCV9hcmdz Kz0iIC0tZW5hYmxlLWtlcm5lbD0yLjYuMjciCi0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9IgotCi0J Li4vZ2xpYmMtJHtfZ2xpYmNfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlIC1r IGluc3RhbGwtaGVhZGVycyBjcm9zc19jb21waWxpbmc9eWVzIFwKLQkJaW5zdGFsbF9yb290PSR7 X3N5c3Jvb3R9Ci0KLQl0b3VjaCAke3dya3NyY30vLmdsaWJjX2hlYWRlcnNfZG9uZQotfQotCi1f Z2xpYmNfYnVpbGQoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5nbGliY19i dWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1 aWxkaW5nIGNyb3NzIGdsaWJjXG4iCi0KLQlbICEgLWQgZ2xpYmMtYnVpbGQgXSAmJiBta2RpciBn bGliYy1idWlsZAotCWNkIGdsaWJjLWJ1aWxkCi0KLQllY2hvICJzbGliZGlyPS91c3IvbGliMzIi ID4gY29uZmlncGFybXMKLQotCWVjaG8gImxpYmNfY3ZfZm9yY2VkX3Vud2luZD15ZXMiID4gY29u ZmlnLmNhY2hlCi0JZWNobyAibGliY19jdl9jX2NsZWFudXA9eWVzIiA+PiBjb25maWcuY2FjaGUK LQotCWV4cG9ydCBDQz0iJHtfdHJpcGxldH0tZ2NjIiBMRD0iJHtfdHJpcGxldH0tbGQiIFwKLQkJ QVM9IiR7X3RyaXBsZXR9LWFzIiBDUFA9IiR7X3RyaXBsZXR9LWNwcCIKLQlleHBvcnQgQ0ZMQUdT PSItT3MgLXBpcGUgJHtfYXJjaGZsYWdzfSIKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9h cmdzKz0iIC0tbGliZGlyPS91c3IvbGliMzIiCi0JX2FyZ3MrPSIgLS1ob3N0PSR7X3RyaXBsZXR9 IgotCV9hcmdzKz0iIC0td2l0aC1oZWFkZXJzPSR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlIgotCV9h cmdzKz0iIC0tY29uZmlnLWNhY2hlIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1wcm9maWxlIgotCV9h cmdzKz0iIC0tZW5hYmxlLW9ic29sZXRlLXJwYyIKLQlfYXJncys9IiAtLWVuYWJsZS1vYnNvbGV0 ZS1uc2wiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXdlcnJvciIKLQlfYXJncys9IiAtLWVuYWJsZS1r ZXJuZWw9Mi42LjI3IgotCV9hcmdzKz0iICR7X2ZwdWZsYWdzfSIKLQotCS4uL2dsaWJjLSR7X2ds aWJjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAke21ha2Vqb2JzfQotCW1h a2UgaW5zdGFsbF9yb290PSR7X3N5c3Jvb3R9IGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8u Z2xpYmNfYnVpbGRfZG9uZQotfQotCi1fZ2NjX2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0KLQlb IC1mICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtz cmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2NjIGZpbmFsXG4iCi0KLQlbICEgLWQg Z2NjLWJ1aWxkIF0gJiYgbWtkaXIgZ2NjLWJ1aWxkCi0JY2QgZ2NjLWJ1aWxkCi0KLQl1bnNldCBM RCBBUyBDUFAKLQlleHBvcnQgQ0M9ImdjYyIgQ0ZMQUdTPSItT3MgLXBpcGUiCi0KLQkjIE1ha2Ug dGhpcyBsaW5rIHRvIHRhcmdldCBsaWJzLgotCWlmIFsgISAtZiAuc2VkX3N1YnN0X2RvbmUgXTsg dGhlbgotCQlzZWQgLWUgInMsIC9saWIvLCAke19zeXNyb290fS9saWIvLGc7cywgL3Vzci9saWIv LCAke19zeXNyb290fS91c3IvbGliLyxnIiBcCi0JCQktaSAke19zeXNyb290fS9saWIvbGliYy5z bwotCQlzZWQgLWUgInMsIC9saWIzMi8sICR7X3N5c3Jvb3R9L2xpYjMyLyxnO3MsIC91c3IvbGli MzIvLCAke19zeXNyb290fS91c3IvbGliMzIvLGciIFwKLQkJCS1pICR7X3N5c3Jvb3R9L2xpYi9s aWJjLnNvCi0JCXRvdWNoIC5zZWRfc3Vic3RfZG9uZQotCWZpCi0KLQlfYXJncz0iLS1wcmVmaXg9 L3VzciIKLQlfYXJncys9IiAtLWxpYmV4ZWNkaXI9L3Vzci9saWIiCi0JX2FyZ3MrPSIgLS10YXJn ZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0J X2FyZ3MrPSIgLS1lbmFibGUtbGFuZ3VhZ2VzPWMsYWRhLGMrKyxvYmpjLG9iai1jKyssZ28sZm9y dHJhbixsdG8iCi0JX2FyZ3MrPSIgLS13aXRoLWdudS1hcyIKLQlfYXJncys9IiAtLXdpdGgtZ251 LWxkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJncys9IiAtLWRpc2FibGUt d2Vycm9yIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNq bGotZXhjZXB0aW9ucyIKLQlfYXJncys9IiAtLWVuYWJsZS10aHJlYWRzPXBvc2l4IgotCV9hcmdz Kz0iIC0tZW5hYmxlLWxvbmctbG9uZ3giCi0JX2FyZ3MrPSIgLS1lbmFibGUtc2hhcmVkIgotCV9h cmdzKz0iIC0tZW5hYmxlLWxpbmtlci1idWlsZC1pZCIKLQlfYXJncys9IiAtLWVuYWJsZS1nbnUt dW5pcXVlLW9iamVjdCIKLQlfYXJncys9IiAtLWVuYWJsZS1saWJhZGEiCi0JX2FyZ3MrPSIgLS1l bmFibGUtbHRvIgotCV9hcmdzKz0iIC0tZW5hYmxlLWRlZmF1bHQtcGllIgotCV9hcmdzKz0iIC0t ZW5hYmxlLWRlZmF1bHQtc3NwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJxdWFkbWF0aCIKLQlf YXJncys9IiAtLWRpc2FibGUtbGlic3NwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtcHgiCi0J X2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm11ZGZsYXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNh bml0aXplciIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliY2lsa3J0cyIKLQlfYXJncys9IiAtLWRp c2FibGUtbGliaXRtIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJ2dHYiCi0JX2FyZ3MrPSIgLS1k aXNhYmxlLWxpYnN0ZGN4eC1wY2giCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGlic3RkY3h4LXRpbWUi Ci0JX2FyZ3MrPSIgLS13aXRoLWxpbmtlci1oYXNoLXN0eWxlPWdudSIKLQlfYXJncys9IiAke19m cHVmbGFnc30iCi0KLQkuLi9nY2MtJHtfZ2NjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQot Ci0JbWFrZSAke21ha2Vqb2JzfQotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYnVpbGRfZG9uZQot fQotCi1kb19idWlsZCgpIHsKLQlmb3IgZiBpbiBpbmNsdWRlIGxpYiBsaWJleGVjIGJpbiBzYmlu OyBkbwotCQlpZiBbICEgLWQgJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXTsgdGhlbgotCQkJbWtkaXIg LXAgJHtfc3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkKLQkJaWYgWyAhIC1oICR7X3N5c3Jvb3R9LyR7 Zn0gXTsgdGhlbgotCQkJbG4gLXNmciAke19zeXNyb290fS91c3IvJHtmfSAke19zeXNyb290fS8k e2Z9Ci0JCWZpCi0JZG9uZQotCWxuIC1zZiBsaWIgJHtfc3lzcm9vdH0vdXNyL2xpYjMyCi0JbG4g LXNmIHVzci9saWIgJHtfc3lzcm9vdH0vbGliMzIKLQotCSMgRW5zdXJlIHdlIHVzZSBzYW5lIGVu dmlyb25tZW50Ci0JdW5zZXQgQ0MgQ1hYIENQUCBMRCBBUyBBUiBSQU5MSUIgT0JKRFVNUCBSRUFE RUxGIE5NCi0JdW5zZXQgQ0ZMQUdTIENYWEZMQUdTIENQUEZMQUdTIExERkxBR1MKLQlleHBvcnQg Q0ZMQUdTPSItT3MiIENYWEZMQUdTPSItT3MiCi0KLQlfYmludXRpbHNfYnVpbGQKLQlfZ2NjX2Jv b3RzdHJhcAotCV9saW51eF9oZWFkZXJzCi0JX2dsaWJjX2hlYWRlcnMKLQlfZ2xpYmNfYnVpbGQK LQlfZ2NjX2J1aWxkCi19Ci0KLWRvX2luc3RhbGwoKSB7Ci0JZm9yIGYgaW4gaW5jbHVkZSBsaWIg bGliZXhlYyBiaW4gc2JpbjsgZG8KLQkJaWYgWyAhIC1kICR7REVTVERJUn0vJHtfc3lzcm9vdH0v dXNyLyR7Zn0gXTsgdGhlbgotCQkJbWtkaXIgLXAgJHtERVNURElSfS8ke19zeXNyb290fS91c3Iv JHtmfQotCQlmaQotCQlpZiBbICEgLWggJHtERVNURElSfS8ke19zeXNyb290fS8ke2Z9IF07IHRo ZW4KLQkJCWxuIC1zZnIgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfSBcCi0JCQkJJHtE RVNURElSfS8ke19zeXNyb290fS8ke2Z9Ci0JCWZpCi0JZG9uZQotCWxuIC1zZiBsaWIgJHtERVNU RElSfS8ke19zeXNyb290fS91c3IvbGliMzIKLQlsbiAtc2YgdXNyL2xpYiAke0RFU1RESVJ9LyR7 X3N5c3Jvb3R9L2xpYjMyCi0KLQkjIGluc3RhbGwgY3Jvc3MgYmludXRpbHMKLQljZCAke3dya3Ny Y30vYmludXRpbHMtYnVpbGQKLQltYWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0KLQkj IGluc3RhbGwgY3Jvc3MgZ2NjCi0JY2QgJHt3cmtzcmN9L2djYy1idWlsZAotCW1ha2UgREVTVERJ Uj0ke0RFU1RESVJ9IGluc3RhbGwKLQotCSMgbW92ZSBsaWJjYzEuc28qIHRvIHRoZSBzeXNyb290 Ci0JbXYgJHtERVNURElSfS91c3IvbGliL2xpYmNjMS5zbyogJHtERVNURElSfS8ke19zeXNyb290 fS91c3IvbGliCi0KLQkjIGluc3RhbGwgbGludXggQVBJIGhlYWRlcnMgZm9yIE1JUFMKLQljZCAk e3dya3NyY30vbGludXgtJHtfbGludXhfdmVyc2lvbn0KLQltYWtlIEFSQ0g9YXJtIElOU1RBTExf SERSX1BBVEg9JHtERVNURElSfS8ke19zeXNyb290fS91c3IgaGVhZGVyc19pbnN0YWxsCi0Jcm0g LWYgJChmaW5kICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUgLW5hbWUgLmluc3Rh bGwgLW9yIC1uYW1lIC4uaW5zdGFsbC5jbWQpCi0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9v dH0vdXNyL2luY2x1ZGUvZHJtCi0KLQkjIGluc3RhbGwgZ2xpYmMgZm9yIHRhcmdldAotCWNkICR7 d3Jrc3JjfS9nbGliYy1idWlsZAotCW1ha2UgaW5zdGFsbF9yb290PSR7REVTVERJUn0vJHtfc3lz cm9vdH0gaW5zdGFsbCBpbnN0YWxsLWhlYWRlcnMKLQotCSMgc3ltbGlua3MgZm9yIGduYXJsIGFu ZCBnbmF0IHNoYXJlZCBsaWJyYXJpZXMKLQlfbWFqb3J2ZXI9JHtfZ2NjX3ZlcnNpb24lLiouKn0K LQlfYWRhbGliPXVzci9saWIvZ2NjLyR7X3RyaXBsZXR9LyR7X2djY192ZXJzaW9ufS9hZGFsaWIK LQltdiAtdiAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGliZ25hcmwtJHtfbWFqb3J2ZXJ9LnNvICR7 REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCW12IC12ICR7REVTVERJUn0vJHtfYWRhbGli fS9saWJnbmF0LSR7X21ham9ydmVyfS5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIK LQlsbiAtc3ZmIGxpYmduYXJsLSR7X21ham9ydmVyfS5zbyBsaWJnbmFybC5zbwotCWxuIC1zdmYg bGliZ25hdC0ke19tYWpvcnZlcn0uc28gbGliZ25hdC5zbwotCXJtIC12ZiAke0RFU1RESVJ9LyR7 X2FkYWxpYn0vbGliZ25he3JsLHR9LnNvCi0KLQkjIFdlIG5lZWQgdG8gYnVpbGQgbGliYXRvbWlj IGluIHRhcmdldCBnY2MgYXMgZ2NjZ28gbmVlZHMgaXQgdG8KLQkjIGJ1aWxkLi4uIGJ1dCBpdCdz IG5vdCBuZWVkZWQgYXQgcnVudGltZSwgc28gcmVtb3ZlIGl0IGZyb20gdGhlCi0JIyBkZXN0ZGly IHNvIGl0IGRvZXNuJ3QgY29uZmxpY3Qgd2l0aCB0aGUgbGliYXRvbWljIHBhY2thZ2UKLQlybSAt ZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIvbGliYXRvbWljLioKLQotCSMgUmVtb3Zl IHVubmVjZXNzYXJ5IHN0dWZmCi0Jcm0gLWYgJHtERVNURElSfS91c3IvbGliKi9saWJpYmVydHku YQotCXJtIC1yZiAke0RFU1RESVJ9L3Vzci9zaGFyZQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9L3tzYmluLGxpYixldGMsdmFyfQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9 L3Vzci97c2JpbixzaGFyZSxsaWJleGVjfQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0v bGliZXhlYwotfQotCiBjcm9zcy1hcm0tbGludXgtZ251ZWFiaS1saWJjX3BhY2thZ2UoKSB7CiAJ c2hvcnRfZGVzYys9IiAtIGdsaWJjIGZpbGVzIgogCW5vc3RyaXA9eWVzCkBAIC0zNzQsNiArNDgs NiBAQCBjcm9zcy1hcm0tbGludXgtZ251ZWFiaS1saWJjX3BhY2thZ2UoKSB7CiAJbm92ZXJpZnly ZGVwcz15ZXMKIAogCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAke19zeXNyb290fQorCQl2bW92 ZSB1c3IvJHtjcm9zc190cmlwbGV0fQogCX0KIH0KCkZyb20gNGRhMDE5ZGRiMTczM2MzZTIzOGIy MGJiYTY2MTU3MThjZGJkNzM1NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogcTY2IDxk YW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogRnJpLCAyNSBEZWMgMjAyMCAyMDoxMDo0NSArMDEw MApTdWJqZWN0OiBbUEFUQ0ggMDYvMTZdIGNyb3NzLWFybS1saW51eC1nbnVlYWJpaGY6IHJlZG8g d2l0aCB2b2lkLWNyb3NzCgotLS0KIHNyY3BrZ3MvY3Jvc3MtYXJtLWxpbnV4LWdudWVhYmloZi90 ZW1wbGF0ZSB8IDM2NSArKy0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxOSBp bnNlcnRpb25zKCspLCAzNDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jcm9z cy1hcm0tbGludXgtZ251ZWFiaWhmL3RlbXBsYXRlIGIvc3JjcGtncy9jcm9zcy1hcm0tbGludXgt Z251ZWFiaWhmL3RlbXBsYXRlCmluZGV4IDRlNDZiYTFlMzA2Li5mMjFhNGViYjQ4NSAxMDA2NDQK LS0tIGEvc3JjcGtncy9jcm9zcy1hcm0tbGludXgtZ251ZWFiaWhmL3RlbXBsYXRlCisrKyBiL3Ny Y3BrZ3MvY3Jvc3MtYXJtLWxpbnV4LWdudWVhYmloZi90ZW1wbGF0ZQpAQCAtMSwyMiArMSwyMSBA QAotIyBUZW1wbGF0ZSBidWlsZCBmaWxlIGZvciAnY3Jvc3MtYXJtLWxpbnV4LWdudWVhYmloZicK LSMKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3NzLWFybS1saW51eC1nbnVlYWJpaGYnCitfdHJp cGxldD1hcm0tbGludXgtZ251ZWFiaWhmCiBfYmludXRpbHNfdmVyc2lvbj0yLjMyCiBfZ2NjX3Zl cnNpb249OS4zLjAKIF9nbGliY192ZXJzaW9uPTIuMzAKIF9saW51eF92ZXJzaW9uPTQuMTkKLQot X3RyaXBsZXQ9YXJtLWxpbnV4LWdudWVhYmloZgotX2ZwdWZsYWdzPSItLXdpdGgtYXJjaD1hcm12 NiAtLXdpdGgtZnB1PXZmcCAtLXdpdGgtZmxvYXQ9aGFyZCIKLV9hcmNoZmxhZ3M9Ii1tYXJjaD1h cm12NiAtbWZwdT12ZnAgLW1mbG9hdC1hYmk9aGFyZCIKLV9zeXNyb290PSIvdXNyLyR7X3RyaXBs ZXR9IgotCiBwa2duYW1lPWNyb3NzLSR7X3RyaXBsZXR9CiB2ZXJzaW9uPTAuMzMKIHJldmlzaW9u PTIKLXNob3J0X2Rlc2M9IkdOVSBDcm9zcyB0b29sY2hhaW4gZm9yIHRoZSAke190cmlwbGV0fSBM RSB0YXJnZXQgKGJpbnV0aWxzL2djYy9nbGliYykiCitidWlsZF9zdHlsZT12b2lkLWNyb3NzCitj b25maWd1cmVfYXJncz0iLS13aXRoLWFyY2g9YXJtdjYgLS13aXRoLWZwdT12ZnAgLS13aXRoLWZs b2F0PWhhcmQiCitob3N0bWFrZWRlcGVuZHM9InRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJs IHB5dGhvbjMiCittYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2 ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwiCitkZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJz aW9ufV8ke3JldmlzaW9ufSIKK3Nob3J0X2Rlc2M9IlZvaWQgY3Jvc3MgdG9vbGNoYWluIGZvciAk e190cmlwbGV0fSIKIG1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4i CitsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBHUEwtMy4wLW9yLWxhdGVyLCBMR1BMLTIuMS1v ci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3d3dy52b2lkbGludXgub3JnLyIKLWxpY2Vuc2U9 IlB1YmxpYyBEb21haW4iCiBkaXN0ZmlsZXM9IgogICR7R05VX1NJVEV9L2JpbnV0aWxzL2JpbnV0 aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259LnRhci54egogICR7R05VX1NJVEV9L2djYy9nY2MtJHtf Z2NjX3ZlcnNpb259L2djYy0ke19nY2NfdmVyc2lvbn0udGFyLnh6CkBAIC0yNywzNDYgKzI2LDIw IEBAIGNoZWNrc3VtPSIwYWI2YzU1ZGQ4NmE5MmVkNTYxOTcyYmExNWI5YjcwYThiOWY3NTU1N2Y4 OTY0NDZjODJlOGIzNmU0NzNlZTA0CiAgZTJjNDExNGU1NjlhZmJlN2VkYmMyOTEzMWE0M2JlODMz ODUwYWI5YTQ1OWQ4MWJlYjI1ODgwMTZkMmJiYjhhZgogIDBjNjhmNTY1NTUyOGFlZDRmOTlkYWU3 MWE1YjI1OWVkYzkzMjM5ZmE4OTllMmRmNzljMDU1Mjc1YzIxNzQ5YTEiCiAKLWxpYjMyZGlzYWJs ZWQ9eWVzCi1ub2Nyb3NzPXllcwotbm9waWU9eWVzCi1ub2RlYnVnPXllcwotY3JlYXRlX3dya3Ny Yz15ZXMKLQotaG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZ2NjLWdvIGZsZXggcGVybCBw eXRob24zIgotbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCB6bGliLWRldmVs IgotZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCi1ub3N0 cmlwX2ZpbGVzPSJsaWJjYWZfc2luZ2xlLmEgbGliZ2NjLmEgbGliZ2Nvdi5hIGxpYmdjY19laC5h Ci0gbGliZ25hcmxfcGljLmEgbGliZ25hcmwuYSBsaWJnbmF0X3BpYy5hIGxpYmduYXQuYSBsaWJn bWVtLmEiCi0KLWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiAhPSAiZ2xpYmMiIF07IHRoZW4KLQli cm9rZW49ImdsaWJjIGNyb3NzdG9vbGNoYWluIG9ubHkgYXZhaWxhYmxlIG9uIGdsaWJjIgotZmkK K2Nyb3NzX3RyaXBsZXQ9JHtfdHJpcGxldH0KK2Nyb3NzX3dvcmRzaXplPTMyCitjcm9zc19saWJj PWdsaWJjCitjcm9zc19iaW51dGlsc192ZXJzaW9uPSR7X2JpbnV0aWxzX3ZlcnNpb259Citjcm9z c19nY2NfdmVyc2lvbj0ke19nY2NfdmVyc2lvbn0KK2Nyb3NzX2dsaWJjX3ZlcnNpb249JHtfZ2xp YmNfdmVyc2lvbn0KK2Nyb3NzX2xpbnV4X3ZlcnNpb249JHtfbGludXhfdmVyc2lvbn0KK2Nyb3Nz X2xpbnV4X2FyY2g9YXJtCitjcm9zc19nbGliY19jZmxhZ3M9Ii1PcyAtbWFyY2g9YXJtdjYgLW1m cHU9dmZwIC1tZmxvYXQtYWJpPWhhcmQiCiAKIGlmIFsgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiA9 ICJhcm12NmwiIF07IHRoZW4KIAlicm9rZW49IkNhbid0IGJ1aWxkIGNyb3NzdG9vbGNoYWluIHRv IGl0c2VsZiIKIGZpCiAKLV9hcHBseV9wYXRjaCgpIHsKLQlsb2NhbCBhcmdzPSIkMSIgcG5hbWU9 IiQoYmFzZW5hbWUgJDIpIgotCi0JaWYgWyAhIC1mICIuJHtwbmFtZX1fZG9uZSIgXTsgdGhlbgot CQlwYXRjaCAtTiAkYXJncyAtaSAkMgotCQl0b3VjaCAuJHtwbmFtZX1fZG9uZQotCWZpCi19Ci0K LV9saW51eF9oZWFkZXJzKCkgewotCVsgLWYgJHt3cmtzcmN9Ly5saW51eF9idWlsZF9kb25lIF0g JiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIExpbnV4 IEFQSSBoZWFkZXJzIGZvciBBUk1cbiIKLQotCWNkIGxpbnV4LSR7X2xpbnV4X3ZlcnNpb259Ci0K LQltYWtlIEFSQ0g9YXJtIGhlYWRlcnNfY2hlY2sKLQltYWtlIEFSQ0g9YXJtIElOU1RBTExfSERS X1BBVEg9JHtfc3lzcm9vdH0vdXNyIGhlYWRlcnNfaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9 Ly5saW51eF9idWlsZF9kb25lCi19Ci0KLV9iaW51dGlsc19idWlsZCgpIHsKLQlsb2NhbCBfYXJn cwotCi0JWyAtZiAke3dya3NyY30vLmJpbnV0aWxzX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAot Ci0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgYmludXRpbHNcbiIK LQlbICEgLWQgYmludXRpbHMtYnVpbGQgXSAmJiBta2RpciBiaW51dGlscy1idWlsZAotCWNkIGJp bnV0aWxzLWJ1aWxkCi0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLXRhcmdl dD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlf YXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zaGFyZWQiCi0JX2Fy Z3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS13ZXJyb3IiCi0J X2FyZ3MrPSIgLS13aXRoLXN5c3RlbS16bGliIgotCi0JLi4vYmludXRpbHMtJHtfYmludXRpbHNf dmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlIGNvbmZpZ3VyZS1ob3N0Ci0JbWFr ZSAke21ha2Vqb2JzfQotCW1ha2UgaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5iaW51dGls c19idWlsZF9kb25lCi19Ci0KLV9nY2NfYm9vdHN0cmFwKCkgewotCWxvY2FsIF9hcmdzCi0KLQlb IC1mICR7d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJhcF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7 d3Jrc3JjfS9nY2MtJHtfZ2NjX3ZlcnNpb259Ci0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0v Z2NjL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCi0JZG9uZQot Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2NjIGJvb3RzdHJhcFxuIgotCi0JWyAhIC1k IC4uL2djYy1ib290c3RyYXAgXSAmJiBta2RpciAuLi9nY2MtYm9vdHN0cmFwCi0JY2QgLi4vZ2Nj LWJvb3RzdHJhcAotCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9 JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRob3V0LWhlYWRlcnMiCi0JX2FyZ3MrPSIgLS1k aXNhYmxlLW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZGlz YWJsZS1saWJxdWFkbWF0aCIKLQlfYXJncys9IiAtLWRpc2FibGUtZGVjaW1hbC1mbG9hdCIKLQlf YXJncys9IiAtLWRpc2FibGUtbGliZ29tcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXB4Igot CV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtdWRmbGFwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJz c3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYml0bSIKLQlfYXJncys9IiAtLWRpc2FibGUtbGli YXRvbWljIgotCV9hcmdzKz0iIC0tZGlzYWJsZS10aHJlYWRzIgotCV9hcmdzKz0iIC0tZW5hYmxl LWxhbmd1YWdlcz1jIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zamxqLWV4Y2VwdGlvbnMiCi0JX2Fy Z3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9hcmdzKz0iIC0td2l0aC1nbnUtbGQiCi0JX2Fy Z3MrPSIgLS13aXRoLWdudS1hcyIKLQlfYXJncys9IiAke19mcHVmbGFnc30iCi0KLQlDRkxBR1M9 Ii1PMCAtZzAiIENYWEZMQUdTPSItTzAgLWcwIiBcCi0JCS4uL2djYy0ke19nY2NfdmVyc2lvbn0v Y29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsCi0K LQl0b3VjaCAke3dya3NyY30vLmdjY19ib290c3RyYXBfZG9uZQotfQotCi1fZ2xpYmNfaGVhZGVy cygpIHsKLQlsb2NhbCBfYXJncyBmCi0KLQlbIC1mICR7d3Jrc3JjfS8uZ2xpYmNfaGVhZGVyc19k b25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9nbGliYy0ke19nbGliY192ZXJzaW9u fQotCWlmIFsgLWQgIiR7WEJQU19TUkNQS0dESVJ9L2dsaWJjL3BhdGNoZXMiIF07IHRoZW4KLQkJ Zm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2xpYmMvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQkJ X2FwcGx5X3BhdGNoIC1wMSAiJGYiCi0JCWRvbmUKLQlmaQotCi0JY2QgJHt3cmtzcmN9Ci0JbXNn X25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2xpYmMgaGVhZGVyc1xuIgotCi0JWyAhIC1kIGdsaWJj LWhlYWRlcnMgXSAmJiBta2RpciBnbGliYy1oZWFkZXJzCi0JY2QgZ2xpYmMtaGVhZGVycwotCi0J ZWNobyAibGliY19jdl9mb3JjZWRfdW53aW5kPXllcyIgPiBjb25maWcuY2FjaGUKLQllY2hvICJs aWJjX2N2X2NfY2xlYW51cD15ZXMiID4+IGNvbmZpZy5jYWNoZQotCi0JZXhwb3J0IENDPSIke190 cmlwbGV0fS1nY2MiIExEPSIke190cmlwbGV0fS1sZCIgXAotCQlBUz0iJHtfdHJpcGxldH0tYXMi IENQUD0iJHtfdHJpcGxldH0tY3BwIgotCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3Mr PSIgLS1ob3N0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1oZWFkZXJzPSR7X3N5c3Jv b3R9L3Vzci9pbmNsdWRlIgotCV9hcmdzKz0iIC0tY29uZmlnLWNhY2hlIgotCV9hcmdzKz0iIC0t ZW5hYmxlLW9ic29sZXRlLXJwYyIKLQlfYXJncys9IiAtLWVuYWJsZS1vYnNvbGV0ZS1uc2wiCi0J X2FyZ3MrPSIgLS1lbmFibGUta2VybmVsPTIuNi4yNyIKLQlfYXJncys9IiAke19mcHVmbGFnc30i Ci0KLQkuLi9nbGliYy0ke19nbGliY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1h a2UgLWsgaW5zdGFsbC1oZWFkZXJzIGNyb3NzX2NvbXBpbGluZz15ZXMgXAotCQlpbnN0YWxsX3Jv b3Q9JHtfc3lzcm9vdH0KLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2xpYmNfaGVhZGVyc19kb25lCi19 Ci0KLV9nbGliY19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmds aWJjX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1h bCAiQnVpbGRpbmcgY3Jvc3MgZ2xpYmNcbiIKLQotCVsgISAtZCBnbGliYy1idWlsZCBdICYmIG1r ZGlyIGdsaWJjLWJ1aWxkCi0JY2QgZ2xpYmMtYnVpbGQKLQotCWVjaG8gInNsaWJkaXI9L3Vzci9s aWIzMiIgPiBjb25maWdwYXJtcwotCi0JZWNobyAibGliY19jdl9mb3JjZWRfdW53aW5kPXllcyIg PiBjb25maWcuY2FjaGUKLQllY2hvICJsaWJjX2N2X2NfY2xlYW51cD15ZXMiID4+IGNvbmZpZy5j YWNoZQotCi0JZXhwb3J0IENDPSIke190cmlwbGV0fS1nY2MiIExEPSIke190cmlwbGV0fS1sZCIg XAotCQlBUz0iJHtfdHJpcGxldH0tYXMiIENQUD0iJHtfdHJpcGxldH0tY3BwIgotCWV4cG9ydCBD RkxBR1M9Ii1PcyAtcGlwZSAke19hcmNoZmxhZ3N9IgotCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3Ii Ci0JX2FyZ3MrPSIgLS1saWJkaXI9L3Vzci9saWIzMiIKLQlfYXJncys9IiAtLWhvc3Q9JHtfdHJp cGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLWhlYWRlcnM9JHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUi Ci0JX2FyZ3MrPSIgLS1jb25maWctY2FjaGUiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXByb2ZpbGUi Ci0JX2FyZ3MrPSIgLS1lbmFibGUtb2Jzb2xldGUtcnBjIgotCV9hcmdzKz0iIC0tZW5hYmxlLW9i c29sZXRlLW5zbCIKLQlfYXJncys9IiAtLWRpc2FibGUtd2Vycm9yIgotCV9hcmdzKz0iIC0tZW5h YmxlLWtlcm5lbD0yLjYuMjciCi0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9IgotCi0JLi4vZ2xpYmMt JHtfZ2xpYmNfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpvYnN9 Ci0JbWFrZSBpbnN0YWxsX3Jvb3Q9JHtfc3lzcm9vdH0gaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtz cmN9Ly5nbGliY19idWlsZF9kb25lCi19Ci0KLV9nY2NfYnVpbGQoKSB7Ci0JbG9jYWwgX2FyZ3MK LQotCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAk e3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBnY2MgZmluYWxcbiIKLQotCVsg ISAtZCBnY2MtYnVpbGQgXSAmJiBta2RpciBnY2MtYnVpbGQKLQljZCBnY2MtYnVpbGQKLQotCXVu c2V0IExEIEFTIENQUAotCWV4cG9ydCBDQz0iZ2NjIiBDRkxBR1M9Ii1PcyAtcGlwZSIKLQotCSMg TWFrZSB0aGlzIGxpbmsgdG8gdGFyZ2V0IGxpYnMuCi0JaWYgWyAhIC1mIC5zZWRfc3Vic3RfZG9u ZSBdOyB0aGVuCi0JCXNlZCAtZSAicywgL2xpYi8sICR7X3N5c3Jvb3R9L2xpYi8sZztzLCAvdXNy L2xpYi8sICR7X3N5c3Jvb3R9L3Vzci9saWIvLGciIFwKLQkJCS1pICR7X3N5c3Jvb3R9L2xpYi9s aWJjLnNvCi0JCXNlZCAtZSAicywgL2xpYjMyLywgJHtfc3lzcm9vdH0vbGliMzIvLGc7cywgL3Vz ci9saWIzMi8sICR7X3N5c3Jvb3R9L3Vzci9saWIzMi8sZyIgXAotCQkJLWkgJHtfc3lzcm9vdH0v bGliL2xpYmMuc28KLQkJdG91Y2ggLnNlZF9zdWJzdF9kb25lCi0JZmkKLQlfYXJncz0iLS1wcmVm aXg9L3VzciIKLQlfYXJncys9IiAtLWxpYmV4ZWNkaXI9L3Vzci9saWIiCi0JX2FyZ3MrPSIgLS10 YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0i Ci0JX2FyZ3MrPSIgLS1lbmFibGUtbGFuZ3VhZ2VzPWMsYWRhLGMrKyxvYmpjLG9iai1jKyssZ28s Zm9ydHJhbixsdG8iCi0JX2FyZ3MrPSIgLS13aXRoLWdudS1hcyIKLQlfYXJncys9IiAtLXdpdGgt Z251LWxkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJncys9IiAtLWRpc2Fi bGUtd2Vycm9yIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LXNqbGotZXhjZXB0aW9ucyIKLQlfYXJncys9IiAtLWVuYWJsZS10aHJlYWRzPXBvc2l4IgotCV9h cmdzKz0iIC0tZW5hYmxlLWxvbmctbG9uZ3giCi0JX2FyZ3MrPSIgLS1lbmFibGUtc2hhcmVkIgot CV9hcmdzKz0iIC0tZW5hYmxlLWxpbmtlci1idWlsZC1pZCIKLQlfYXJncys9IiAtLWVuYWJsZS1n bnUtdW5pcXVlLW9iamVjdCIKLQlfYXJncys9IiAtLWVuYWJsZS1saWJhZGEiCi0JX2FyZ3MrPSIg LS1lbmFibGUtbHRvIgotCV9hcmdzKz0iIC0tZW5hYmxlLWRlZmF1bHQtcGllIgotCV9hcmdzKz0i IC0tZW5hYmxlLWRlZmF1bHQtc3NwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJxdWFkbWF0aCIK LQlfYXJncys9IiAtLWRpc2FibGUtbGlic3NwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtcHgi Ci0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm11ZGZsYXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxp YnNhbml0aXplciIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliY2lsa3J0cyIKLQlfYXJncys9IiAt LWRpc2FibGUtbGliaXRtIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJ2dHYiCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLWxpYnN0ZGN4eC1wY2giCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGlic3RkY3h4LXRp bWUiCi0JX2FyZ3MrPSIgLS13aXRoLWxpbmtlci1oYXNoLXN0eWxlPWdudSIKLQlfYXJncys9IiAk e19mcHVmbGFnc30iCi0KLQkuLi9nY2MtJHtfZ2NjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdz fQotCi0JbWFrZSAke21ha2Vqb2JzfQotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYnVpbGRfZG9u ZQotfQotCi1kb19idWlsZCgpIHsKLQlmb3IgZiBpbiBpbmNsdWRlIGxpYiBsaWJleGVjIGJpbiBz YmluOyBkbwotCQlpZiBbICEgLWQgJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXTsgdGhlbgotCQkJbWtk aXIgLXAgJHtfc3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkKLQkJaWYgWyAhIC1oICR7X3N5c3Jvb3R9 LyR7Zn0gXTsgdGhlbgotCQkJbG4gLXNmciAke19zeXNyb290fS91c3IvJHtmfSAke19zeXNyb290 fS8ke2Z9Ci0JCWZpCi0JZG9uZQotCWxuIC1zZiBsaWIgJHtfc3lzcm9vdH0vdXNyL2xpYjMyCi0J bG4gLXNmIHVzci9saWIgJHtfc3lzcm9vdH0vbGliMzIKLQotCSMgRW5zdXJlIHdlIHVzZSBzYW5l IGVudmlyb25tZW50Ci0JdW5zZXQgQ0MgQ1hYIENQUCBMRCBBUyBBUiBSQU5MSUIgT0JKRFVNUCBS RUFERUxGIE5NCi0JdW5zZXQgQ0ZMQUdTIENYWEZMQUdTIENQUEZMQUdTIExERkxBR1MKLQlleHBv cnQgQ0ZMQUdTPSItT3MiIENYWEZMQUdTPSItT3MiCi0KLQlfYmludXRpbHNfYnVpbGQKLQlfZ2Nj X2Jvb3RzdHJhcAotCV9saW51eF9oZWFkZXJzCi0JX2dsaWJjX2hlYWRlcnMKLQlfZ2xpYmNfYnVp bGQKLQlfZ2NjX2J1aWxkCi19Ci0KLWRvX2luc3RhbGwoKSB7Ci0JZm9yIGYgaW4gaW5jbHVkZSBs aWIgbGliZXhlYyBiaW4gc2JpbjsgZG8KLQkJaWYgWyAhIC1kICR7REVTVERJUn0vJHtfc3lzcm9v dH0vdXNyLyR7Zn0gXTsgdGhlbgotCQkJbWtkaXIgLXAgJHtERVNURElSfS8ke19zeXNyb290fS91 c3IvJHtmfQotCQlmaQotCQlpZiBbICEgLWggJHtERVNURElSfS8ke19zeXNyb290fS8ke2Z9IF07 IHRoZW4KLQkJCWxuIC1zZnIgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfSBcCi0JCQkJ JHtERVNURElSfS8ke19zeXNyb290fS8ke2Z9Ci0JCWZpCi0JZG9uZQotCWxuIC1zZiBsaWIgJHtE RVNURElSfS8ke19zeXNyb290fS91c3IvbGliMzIKLQlsbiAtc2YgdXNyL2xpYiAke0RFU1RESVJ9 LyR7X3N5c3Jvb3R9L2xpYjMyCi0KLQkjIGluc3RhbGwgY3Jvc3MgYmludXRpbHMKLQljZCAke3dy a3NyY30vYmludXRpbHMtYnVpbGQKLQltYWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0K LQkjIGluc3RhbGwgY3Jvc3MgZ2NjCi0JY2QgJHt3cmtzcmN9L2djYy1idWlsZAotCW1ha2UgREVT VERJUj0ke0RFU1RESVJ9IGluc3RhbGwKLQotCSMgbW92ZSBsaWJjYzEuc28qIHRvIHRoZSBzeXNy b290Ci0JbXYgJHtERVNURElSfS91c3IvbGliL2xpYmNjMS5zbyogJHtERVNURElSfS8ke19zeXNy b290fS91c3IvbGliCi0KLQkjIGluc3RhbGwgbGludXggQVBJIGhlYWRlcnMgZm9yIE1JUFMKLQlj ZCAke3dya3NyY30vbGludXgtJHtfbGludXhfdmVyc2lvbn0KLQltYWtlIEFSQ0g9YXJtIElOU1RB TExfSERSX1BBVEg9JHtERVNURElSfS8ke19zeXNyb290fS91c3IgaGVhZGVyc19pbnN0YWxsCi0J cm0gLWYgJChmaW5kICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUgLW5hbWUgLmlu c3RhbGwgLW9yIC1uYW1lIC4uaW5zdGFsbC5jbWQpCi0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lz cm9vdH0vdXNyL2luY2x1ZGUvZHJtCi0KLQkjIGluc3RhbGwgZ2xpYmMgZm9yIHRhcmdldAotCWNk ICR7d3Jrc3JjfS9nbGliYy1idWlsZAotCW1ha2UgaW5zdGFsbF9yb290PSR7REVTVERJUn0vJHtf c3lzcm9vdH0gaW5zdGFsbCBpbnN0YWxsLWhlYWRlcnMKLQotCSMgc3ltbGlua3MgZm9yIGduYXJs IGFuZCBnbmF0IHNoYXJlZCBsaWJyYXJpZXMKLQlfbWFqb3J2ZXI9JHtfZ2NjX3ZlcnNpb24lLiou Kn0KLQlfYWRhbGliPXVzci9saWIvZ2NjLyR7X3RyaXBsZXR9LyR7X2djY192ZXJzaW9ufS9hZGFs aWIKLQltdiAtdiAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGliZ25hcmwtJHtfbWFqb3J2ZXJ9LnNv ICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCW12IC12ICR7REVTVERJUn0vJHtfYWRh bGlifS9saWJnbmF0LSR7X21ham9ydmVyfS5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9s aWIKLQlsbiAtc3ZmIGxpYmduYXJsLSR7X21ham9ydmVyfS5zbyBsaWJnbmFybC5zbwotCWxuIC1z dmYgbGliZ25hdC0ke19tYWpvcnZlcn0uc28gbGliZ25hdC5zbwotCXJtIC12ZiAke0RFU1RESVJ9 LyR7X2FkYWxpYn0vbGliZ25he3JsLHR9LnNvCi0KLQkjIFdlIG5lZWQgdG8gYnVpbGQgbGliYXRv bWljIGluIHRhcmdldCBnY2MgYXMgZ2NjZ28gbmVlZHMgaXQgdG8KLQkjIGJ1aWxkLi4uIGJ1dCBp dCdzIG5vdCBuZWVkZWQgYXQgcnVudGltZSwgc28gcmVtb3ZlIGl0IGZyb20gdGhlCi0JIyBkZXN0 ZGlyIHNvIGl0IGRvZXNuJ3QgY29uZmxpY3Qgd2l0aCB0aGUgbGliYXRvbWljIHBhY2thZ2UKLQly bSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIvbGliYXRvbWljLioKLQotCSMgUmVt b3ZlIHVubmVjZXNzYXJ5IHN0dWZmCi0Jcm0gLWYgJHtERVNURElSfS91c3IvbGliKi9saWJpYmVy dHkuYQotCXJtIC1yZiAke0RFU1RESVJ9L3Vzci9zaGFyZQotCXJtIC1yZiAke0RFU1RESVJ9LyR7 X3N5c3Jvb3R9L3tzYmluLGxpYixldGMsdmFyfQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jv b3R9L3Vzci97c2JpbixzaGFyZSxsaWJleGVjfQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9v dH0vbGliZXhlYwotfQotCiBjcm9zcy1hcm0tbGludXgtZ251ZWFiaWhmLWxpYmNfcGFja2FnZSgp IHsKIAlzaG9ydF9kZXNjKz0iIC0gZ2xpYmMgZmlsZXMiCiAJbm9zdHJpcD15ZXMKQEAgLTM3NCw2 ICs0Nyw2IEBAIGNyb3NzLWFybS1saW51eC1nbnVlYWJpaGYtbGliY19wYWNrYWdlKCkgewogCW5v dmVyaWZ5cmRlcHM9eWVzCiAKIAlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgJHtfc3lzcm9vdH0K KwkJdm1vdmUgdXNyLyR7Y3Jvc3NfdHJpcGxldH0KIAl9CiB9CgpGcm9tIGVhMjYzZGE5YmY0ODM0 NTc0Y2VlZTU5Yzc0ODA3YjdlMmJhNWY1ZGIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IHE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IEZyaSwgMjUgRGVjIDIwMjAgMjE6MDg6 MjcgKzAxMDAKU3ViamVjdDogW1BBVENIIDA3LzE2XSBjcm9zcy1hcm0tbGludXgtbXVzbGVhYmk6 IHJld29yayB3aXRoIHZvaWQtY3Jvc3MKCi0tLQogc3JjcGtncy9jcm9zcy1hcm0tbGludXgtbXVz bGVhYmkvdGVtcGxhdGUgfCAzMTAgKystLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5n ZWQsIDIxIGluc2VydGlvbnMoKyksIDI4OSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNw a2dzL2Nyb3NzLWFybS1saW51eC1tdXNsZWFiaS90ZW1wbGF0ZSBiL3NyY3BrZ3MvY3Jvc3MtYXJt LWxpbnV4LW11c2xlYWJpL3RlbXBsYXRlCmluZGV4IDc0YjhlOGQ0YzExLi5mNzEzNmM3NTA5NCAx MDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy1hcm0tbGludXgtbXVzbGVhYmkvdGVtcGxhdGUKKysr IGIvc3JjcGtncy9jcm9zcy1hcm0tbGludXgtbXVzbGVhYmkvdGVtcGxhdGUKQEAgLTEsMjAgKzEs MTkgQEAKLSMgVGVtcGxhdGUgYnVpbGQgZmlsZSBmb3IgJ2Nyb3NzLWFybS1saW51eC1tdXNsZWFi aScKLSMKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3NzLWFybS1saW51eC1tdXNsZWFiaScKK190 cmlwbGV0PWFybS1saW51eC1tdXNsZWFiaQogX2JpbnV0aWxzX3ZlcnNpb249Mi4zMgogX2djY192 ZXJzaW9uPTkuMy4wCiBfbXVzbF92ZXJzaW9uPTEuMS4yNAogX2xpbnV4X3ZlcnNpb249NC4xOQog X2xpYnVjb250ZXh0X3ZlcnNpb249MC45LjAKLQotX3RyaXBsZXQ9YXJtLWxpbnV4LW11c2xlYWJp Ci1fZnB1ZmxhZ3M9Ii0td2l0aC1hcmNoPWFybXY1dGUgLS13aXRob3V0LWZwIC0td2l0aC1mbG9h dD1zb2Z0IgotX2FyY2hmbGFncz0iLW1hcmNoPWFybXY1dGUgLW1zb2Z0LWZsb2F0IC1tZmxvYXQt YWJpPXNvZnQiCi1fc3lzcm9vdD0iL3Vzci8ke190cmlwbGV0fSIKLQogcGtnbmFtZT1jcm9zcy0k e190cmlwbGV0fQogdmVyc2lvbj0wLjMzCiByZXZpc2lvbj0zCi1zaG9ydF9kZXNjPSJDcm9zcyB0 b29sY2hhaW4gZm9yIEFSTXY1IFRFIHRhcmdldCAobXVzbCkiCitidWlsZF9zdHlsZT12b2lkLWNy b3NzCitjb25maWd1cmVfYXJncz0iLS13aXRoLWFyY2g9YXJtdjV0ZSAtLXdpdGgtZmxvYXQ9c29m dCIKK2hvc3RtYWtlZGVwZW5kcz0idGFyIGdjYy1vYmpjIGdjYy1nbyBmbGV4IHBlcmwgcHl0aG9u MyIKK21ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgemxpYi1kZXZlbCBnbXAt ZGV2ZWwgbXBmci1kZXZlbCIKK2RlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7 cmV2aXNpb259Igorc2hvcnRfZGVzYz0iVm9pZCBjcm9zcyB0b29sY2hhaW4gZm9yICR7X3RyaXBs ZXR9IgogbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKIGhvbWVw YWdlPSJodHRwczovL3d3dy52b2lkbGludXgub3JnLyIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0 ZXIsIEdQTC0zLjAtb3ItbGF0ZXIsIE1JVCIKQEAgLTMwLDI5NiArMjksMjkgQEAgY2hlY2tzdW09 IjBhYjZjNTVkZDg2YTkyZWQ1NjE5NzJiYTE1YjliNzBhOGI5Zjc1NTU3Zjg5NjQ0NmM4MmU4YjM2 ZTQ3M2VlMDQKICAwYzY4ZjU2NTU1MjhhZWQ0Zjk5ZGFlNzFhNWIyNTllZGM5MzIzOWZhODk5ZTJk Zjc5YzA1NTI3NWMyMTc0OWExCiAgMGQ1M2E0MTVhMzA3ZWYxNzUxNTNiYmU2MGE1NzJjOTQwYTky MmNiNzM2Y2UxMzUzMGI2NjZlN2VjMjc5NWQ2OCIKIAotbGliMzJkaXNhYmxlZD15ZXMKLW5vY3Jv c3M9eWVzCi1ub3BpZT15ZXMKLW5vZGVidWc9eWVzCi1jcmVhdGVfd3Jrc3JjPXllcwotCi1ob3N0 bWFrZWRlcGVuZHM9InRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5dGhvbjMiCi1tYWtl ZGVwZW5kcz0iemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbCBsaWJtcGMtZGV2ZWwgaXNs MTUtZGV2ZWwiCi1ub3N0cmlwX2ZpbGVzPSJsaWJjYWZfc2luZ2xlLmEgbGliZ2NjLmEgbGliZ2Nv di5hIGxpYmdjY19laC5hCi0gbGliZ25hcmxfcGljLmEgbGliZ25hcmwuYSBsaWJnbmF0X3BpYy5h IGxpYmduYXQuYSBsaWJnbWVtLmEiCi1kZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9u fV8ke3JldmlzaW9ufSIKK2Nyb3NzX3RyaXBsZXQ9JHtfdHJpcGxldH0KK2Nyb3NzX3dvcmRzaXpl PTMyCitjcm9zc19saWJjPW11c2wKK2Nyb3NzX2JpbnV0aWxzX3ZlcnNpb249JHtfYmludXRpbHNf dmVyc2lvbn0KK2Nyb3NzX2djY192ZXJzaW9uPSR7X2djY192ZXJzaW9ufQorY3Jvc3NfbXVzbF92 ZXJzaW9uPSR7X211c2xfdmVyc2lvbn0KK2Nyb3NzX2xpbnV4X3ZlcnNpb249JHtfbGludXhfdmVy c2lvbn0KK2Nyb3NzX2xpYnVjb250ZXh0X3ZlcnNpb249JHtfbGlidWNvbnRleHRfdmVyc2lvbn0K K2Nyb3NzX2xpYnVjb250ZXh0X2FyY2g9YXJtCitjcm9zc19saW51eF9hcmNoPWFybQorY3Jvc3Nf bXVzbF9jZmxhZ3M9Ii1PcyAtbWFyY2g9YXJtdjV0ZSAtbXNvZnQtZmxvYXQgLW1mbG9hdC1hYmk9 c29mdCIKIAogaWYgWyAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiID0gImFybXY1dGVsLW11c2wiIF07 IHRoZW4KIAlicm9rZW49IkNhbid0IGJ1aWxkIGNyb3NzdG9vbGNoYWluIHRvIGl0c2VsZiIKIGZp CiAKLV9hcHBseV9wYXRjaCgpIHsKLQlsb2NhbCBhcmdzPSIkMSIgcG5hbWU9IiQoYmFzZW5hbWUg JDIpIgotCi0JaWYgWyAhIC1mICIuJHtwbmFtZX1fZG9uZSIgXTsgdGhlbgotCQlwYXRjaCAtTiAk YXJncyAtaSAkMgotCQl0b3VjaCAuJHtwbmFtZX1fZG9uZQotCWZpCi19Ci0KLV9iaW51dGlsc19i dWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmJpbnV0aWxzX2J1aWxk X2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRp bmcgY3Jvc3MgYmludXRpbHMgYm9vdHN0cmFwXG4iCi0KLQlbICEgLWQgYmludXRpbHMtYnVpbGQg XSAmJiBta2RpciBiaW51dGlscy1idWlsZAotCWNkIGJpbnV0aWxzLWJ1aWxkCi0KLQlfYXJncz0i LS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9 IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgot CV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJncys9IiAtLWRpc2FibGUtd2Vycm9y IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3RlbS16 bGliIgotCV9hcmdzKz0iICR7X2ZwdWZsYWdzfSIKLQotCS4uL2JpbnV0aWxzLSR7X2JpbnV0aWxz X3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSBjb25maWd1cmUtaG9zdCAmJiBt YWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmJpbnV0 aWxzX2J1aWxkX2RvbmUKLX0KLQotX2djY19ib290c3RyYXAoKSB7Ci0JbG9jYWwgX2FyZ3MKLQot CVsgLWYgJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2Qg JHt3cmtzcmN9L2djYy0ke19nY2NfdmVyc2lvbn0KLQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElS fS9nY2MvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAwICIkZiIKLQlkb25l Ci0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2NjL2ZpbGVzLyotbXVzbC5wYXRjaDsgZG8K LQkJX2FwcGx5X3BhdGNoIC1wMSAiJGYiCi0JZG9uZQotCi0JbXNnX25vcm1hbCAiQnVpbGRpbmcg Y3Jvc3MgZ2NjIGJvb3RzdHJhcFxuIgotCi0JWyAhIC1kIC4uL2djYy1ib290c3RyYXAgXSAmJiBt a2RpciAuLi9nY2MtYm9vdHN0cmFwCi0JY2QgLi4vZ2NjLWJvb3RzdHJhcAotCi0JX2FyZ3M9Ii0t cHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIg LS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS13aXRoLW5ld2xpYiIKLQlf YXJncys9IiAtLWVuYWJsZS1sYW5ndWFnZXM9YyIKLQlfYXJncys9IiAtLXdpdGgtbmV3bGliIgot CV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlf YXJncys9IiAtLWRpc2FibGUtbGlicXVhZG1hdGgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXRocmVh ZHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWRlY2ltYWwtZmxvYXQiCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXB4IgotCV9hcmdzKz0iIC0tZGlz YWJsZS1saWJtdWRmbGFwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJnb21wIgotCV9hcmdzKz0i IC0tZGlzYWJsZS1saWJhdG9taWMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXN5bXZlcnMiCi0JX2Fy Z3MrPSIgbGliYXRfY3ZfaGF2ZV9pZnVuYz1ubyIKLQlfYXJncys9IiAke19mcHVmbGFnc30iCi0K LQlDRkxBR1M9Ii1PMCAtZzAiIENYWEZMQUdTPSItTzAgLWcwIiBcCi0JCS4uL2djYy0ke19nY2Nf dmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBp bnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmdjY19ib290c3RyYXBfZG9uZQotfQotCi1fbGlu dXhfaGVhZGVycygpIHsKLQlbIC1mICR7d3Jrc3JjfS8ubGludXhfYnVpbGRfZG9uZSBdICYmIHJl dHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBMaW51eCBBUEkg aGVhZGVycyBmb3IgQVJNXG4iCi0KLQljZCBsaW51eC0ke19saW51eF92ZXJzaW9ufQotCWZvciBm IGluICR7WEJQU19TUkNQS0dESVJ9L2tlcm5lbC1saWJjLWhlYWRlcnMvcGF0Y2hlcy8qLnBhdGNo OyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAwICRmCi0JZG9uZQotCi0JbWFrZSBBUkNIPWFybSBoZWFk ZXJzX2NoZWNrCi0JbWFrZSBBUkNIPWFybSBJTlNUQUxMX0hEUl9QQVRIPSR7X3N5c3Jvb3R9L3Vz ciBoZWFkZXJzX2luc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8ubGludXhfYnVpbGRfZG9uZQot fQotCi1fbXVzbF9idWlsZCgpIHsKLQlbIC1mICR7d3Jrc3JjfS8ubXVzbF9idWlsZF9kb25lIF0g JiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9tdXNsLSR7X211c2xfdmVyc2lvbn0KLQltc2df bm9ybWFsICJCdWlsZGluZyBjcm9zcyBtdXNsIGxpYmNcbiIKLQotCSMgQXBwbHkgbXVzbCBwYXRj aGVzIGlmIHRoZXJlIGFyZSBhbnkKLQlpZiBbIC1kICIke1hCUFNfU1JDUEtHRElSfS9tdXNsL3Bh dGNoZXMiIF07IHRoZW4KLQkJZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vbXVzbC9wYXRjaGVz LyoucGF0Y2g7IGRvCi0JCQlfYXBwbHlfcGF0Y2ggLXAwICIkZiIKLQkJZG9uZQotCWZpCi0KLQlD Qz0iJHtfdHJpcGxldH0tZ2NjIiBDRkxBR1M9Ii1PcyAtcGlwZSAtZlBJQyAke19hcmNoZmxhZ3N9 IiBcCi0JCS4vY29uZmlndXJlIC0tcHJlZml4PS91c3IKLQotCW1ha2UgJHttYWtlam9ic30KLQlt YWtlIERFU1RESVI9JHtfc3lzcm9vdH0gaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5tdXNs X2J1aWxkX2RvbmUKLX0KLQotX2xpYnVjb250ZXh0X2J1aWxkKCkgewotCVsgLWYgJHt3cmtzcmN9 Ly5saWJ1Y29udGV4dF9idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9s aWJ1Y29udGV4dC0ke19saWJ1Y29udGV4dF92ZXJzaW9ufQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5n IGNyb3NzIGxpYnVjb250ZXh0XG4iCi0KLQkjIGl0J3Mgb2sgaWYgd2UncmUgc3RhdGljIG9ubHkg aGVyZQotCUNDPSIke190cmlwbGV0fS1nY2MiIEFSPSIke190cmlwbGV0fS1hciIgQVM9IiR7X3Ry aXBsZXR9LWFzIiBcCi0JCUNGTEFHUz0iLU9zIC1waXBlICR7X2FyY2hmbGFnc30iIFwKLQkJbWFr ZSBBUkNIPWFybSBsaWJ1Y29udGV4dC5hCi0KLQljcCBsaWJ1Y29udGV4dC5hICR7X3N5c3Jvb3R9 L3Vzci9saWIKLQotCXRvdWNoICR7d3Jrc3JjfS8ubGlidWNvbnRleHRfYnVpbGRfZG9uZQotfQot Ci1fZ2NjX2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uZ2NjX2J1 aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVp bGRpbmcgY3Jvc3MgZ2NjIGZpbmFsXG4iCi0KLQlbICEgLWQgZ2NjLWJ1aWxkIF0gJiYgbWtkaXIg Z2NjLWJ1aWxkCi0JY2QgZ2NjLWJ1aWxkCi0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJn cys9IiAtLWxpYmV4ZWNkaXI9L3Vzci9saWIiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxl dH0iCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1l bmFibGUtbGFuZ3VhZ2VzPWMsYWRhLGMrKyxvYmpjLG9iai1jKyssZ28sZm9ydHJhbixsdG8iCi0J X2FyZ3MrPSIgLS1lbmFibGUtbGliYWRhIgotCV9hcmdzKz0iIC0tZW5hYmxlLWx0byIKLQlfYXJn cys9IiAtLWVuYWJsZS1kZWZhdWx0LXBpZSIKLQlfYXJncys9IiAtLWVuYWJsZS1kZWZhdWx0LXNz cCIKLQlfYXJncys9IiAtLWVuYWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNh bml0aXplciIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXB4IgotCV9hcmdzKz0iIC0tZGlzYWJs ZS1saWJtdWRmbGFwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJxdWFkbWF0aCIKLQlfYXJncys9 IiAtLWVuYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXN5bXZlcnMiCi0JX2FyZ3Mr PSIgbGliYXRfY3ZfaGF2ZV9pZnVuYz1ubyIKLQlfYXJncys9IiAke19mcHVmbGFnc30iCi0KLQku Li9nY2MtJHtfZ2NjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAke21ha2Vq b2JzfQotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYnVpbGRfZG9uZQotfQotCi1kb19idWlsZCgp IHsKLQkjIEVuc3VyZSB3ZSB1c2Ugc2FuZSBlbnZpcm9ubWVudAotCXVuc2V0IENDIENYWCBDUFAg TEQgQVMgQVIgUkFOTElCIE9CSkRVTVAgUkVBREVMRiBOTQotCXVuc2V0IENGTEFHUyBDWFhGTEFH UyBDUFBGTEFHUyBMREZMQUdTCi0JZXhwb3J0IENGTEFHUz0iLU9zIC1waXBlIiBDWFhGTEFHUz0i LU9zIC1waXBlIgotCi0JZm9yIGYgaW4gaW5jbHVkZSBsaWIgbGliZXhlYyBiaW4gc2JpbjsgZG8K LQkJaWYgWyAhIC1kICR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4KLQkJCW1rZGlyIC1wICR7 X3N5c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZpCi0JCWlmIFsgISAtaCAke19zeXNyb290fS8ke2Z9IF07 IHRoZW4KLQkJCWxuIC1zZnIgJHtfc3lzcm9vdH0vdXNyLyR7Zn0gJHtfc3lzcm9vdH0vJHtmfQot CQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7X3N5c3Jvb3R9L3Vzci9saWIzMgotCWxuIC1zZiB1 c3IvbGliICR7X3N5c3Jvb3R9L2xpYjMyCi0KLQlfYmludXRpbHNfYnVpbGQKLQlfZ2NjX2Jvb3Rz dHJhcAotCV9saW51eF9oZWFkZXJzCi0JX211c2xfYnVpbGQKLQlfbGlidWNvbnRleHRfYnVpbGQK LQlfZ2NjX2J1aWxkCi19Ci0KLWRvX2luc3RhbGwoKSB7Ci0JZm9yIGYgaW4gaW5jbHVkZSBsaWIg bGliZXhlYyBiaW4gc2JpbjsgZG8KLQkJaWYgWyAhIC1kICR7REVTVERJUn0vJHtfc3lzcm9vdH0v dXNyLyR7Zn0gXTsgdGhlbgotCQkJbWtkaXIgLXAgJHtERVNURElSfS8ke19zeXNyb290fS91c3Iv JHtmfQotCQlmaQotCQlpZiBbICEgLWggJHtERVNURElSfS8ke19zeXNyb290fS8ke2Z9IF07IHRo ZW4KLQkJCWxuIC1zZnIgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfSBcCi0JCQkJJHtE RVNURElSfS8ke19zeXNyb290fS8ke2Z9Ci0JCWZpCi0JZG9uZQotCWxuIC1zZiBsaWIgJHtERVNU RElSfS8ke19zeXNyb290fS91c3IvbGliMzIKLQlsbiAtc2YgdXNyL2xpYiAke0RFU1RESVJ9LyR7 X3N5c3Jvb3R9L2xpYjMyCi0KLQkjIGluc3RhbGwgbGludXggQVBJIGhlYWRlcnMKLQljZCAke3dy a3NyY30vbGludXgtJHtfbGludXhfdmVyc2lvbn0KLQltYWtlIEFSQ0g9YXJtIElOU1RBTExfSERS X1BBVEg9JHtERVNURElSfS8ke19zeXNyb290fS91c3IgaGVhZGVyc19pbnN0YWxsCi0Jcm0gLWYg JChmaW5kICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUgLW5hbWUgLmluc3RhbGwg LW9yIC1uYW1lIC4uaW5zdGFsbC5jbWQpCi0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0v dXNyL2luY2x1ZGUvZHJtCi0KLQkjIGluc3RhbGwgY3Jvc3MgYmludXRpbHMKLQljZCAke3dya3Ny Y30vYmludXRpbHMtYnVpbGQKLQltYWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0KLQkj IGluc3RhbGwgY3Jvc3MgZ2NjCi0JY2QgJHt3cmtzcmN9L2djYy1idWlsZAotCW1ha2UgREVTVERJ Uj0ke0RFU1RESVJ9IGluc3RhbGwKLQotCSMgbW92ZSBsaWJjYzEuc28qIHRvIHRoZSBzeXNyb290 Ci0JbXYgJHtERVNURElSfS91c3IvbGliL2xpYmNjMS5zbyogJHtERVNURElSfS8ke19zeXNyb290 fS91c3IvbGliCi0KLQkjIGluc3RhbGwgbXVzbCBsaWJjIGZvciB0YXJnZXQKLQljZCAke3dya3Ny Y30vbXVzbC0ke19tdXNsX3ZlcnNpb259Ci0JbWFrZSBERVNURElSPSR7REVTVERJUn0vJHtfc3lz cm9vdH0gaW5zdGFsbAotCi0JIyBSZW1vdmUgdXNlbGVzcyBoZWFkZXJzLgotCXJtIC1yZiAke0RF U1RESVJ9L3Vzci9saWIvZ2NjLyR7X3RyaXBsZXR9LyovaW5jbHVkZS1maXhlZC8KLQotCSMgTWFr ZSBsZC1tdXNsLWFybS5zby4xIHN5bWxpbmsgcmVsYXRpdmUuCi0JbG4gLXNmIGxpYmMuc28gJHtE RVNURElSfS8ke19zeXNyb290fS91c3IvbGliL2xkLW11c2wtYXJtLnNvLjEKLQotCSMgc3ltbGlu a3MgZm9yIGduYXJsIGFuZCBnbmF0IHNoYXJlZCBsaWJyYXJpZXMKLQlfbWFqb3J2ZXI9JHtfZ2Nj X3ZlcnNpb24lLiouKn0KLQlfYWRhbGliPXVzci9saWIvZ2NjLyR7X3RyaXBsZXR9LyR7X2djY192 ZXJzaW9ufS9hZGFsaWIKLQltdiAtdiAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGliZ25hcmwtJHtf bWFqb3J2ZXJ9LnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCW12IC12ICR7REVT VERJUn0vJHtfYWRhbGlifS9saWJnbmF0LSR7X21ham9ydmVyfS5zbyAke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9L3Vzci9saWIKLQlsbiAtc3ZmIGxpYmduYXJsLSR7X21ham9ydmVyfS5zbyBsaWJnbmFy bC5zbwotCWxuIC1zdmYgbGliZ25hdC0ke19tYWpvcnZlcn0uc28gbGliZ25hdC5zbwotCXJtIC12 ZiAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGliZ25he3JsLHR9LnNvCi0KLQkjIFdlIG5lZWQgdG8g YnVpbGQgbGliYXRvbWljIGluIHRhcmdldCBnY2MgYXMgZ2NjZ28gbmVlZHMgaXQgdG8KLQkjIGJ1 aWxkLi4uIGJ1dCBpdCdzIG5vdCBuZWVkZWQgYXQgcnVudGltZSwgc28gcmVtb3ZlIGl0IGZyb20g dGhlCi0JIyBkZXN0ZGlyIHNvIGl0IGRvZXNuJ3QgY29uZmxpY3Qgd2l0aCB0aGUgbGliYXRvbWlj IHBhY2thZ2UKLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIvbGliYXRvbWlj LioKLQotCSMgUmVtb3ZlIHVubmVjZXNzYXJ5IHN0dWZmCi0Jcm0gLWYgJHtERVNURElSfS91c3Iv bGliKi9saWJpYmVydHkuYQotCXJtIC1yZiAke0RFU1RESVJ9L3Vzci9zaGFyZQotCXJtIC1yZiAk e0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3tldGMsdmFyfQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9L3Vzci97c2JpbixzaGFyZSxsaWJleGVjfQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lz cm9vdH0vbGliZXhlYwotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0vbGliLyoucHkKLQly bSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS97c2JpbixsaWJ9Ci19Ci0KIGNyb3NzLWFybS1s aW51eC1tdXNsZWFiaS1saWJjX3BhY2thZ2UoKSB7CiAJc2hvcnRfZGVzYys9IiAtIGxpYmMgZmls ZXMiCiAJbm9zdHJpcD15ZXMKIAlub3NobGlicHJvdmlkZXM9eWVzCiAJbm92ZXJpZnlyZGVwcz15 ZXMKKwogCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAke19zeXNyb290fQorCQl2bW92ZSB1c3Iv JHtjcm9zc190cmlwbGV0fQogCX0KIH0KCkZyb20gNzg3MWZhNGMwNWE3ZGE0YTY2YWIyOGIwMWY4 ZjRlY2UwNTYwMmM0ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogcTY2IDxkYW5pZWxA b2N0YWZvcmdlLm9yZz4KRGF0ZTogRnJpLCAyNSBEZWMgMjAyMCAyMTowODozOSArMDEwMApTdWJq ZWN0OiBbUEFUQ0ggMDgvMTZdIGNyb3NzLWFybS1saW51eC1tdXNsZWFiaWhmOiByZXdvcmsgd2l0 aCB2b2lkLWNyb3NzCgotLS0KIHNyY3BrZ3MvY3Jvc3MtYXJtLWxpbnV4LW11c2xlYWJpaGYvdGVt cGxhdGUgfCAzMDkgKystLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAyMSBpbnNl cnRpb25zKCspLCAyODggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jcm9zcy1h cm0tbGludXgtbXVzbGVhYmloZi90ZW1wbGF0ZSBiL3NyY3BrZ3MvY3Jvc3MtYXJtLWxpbnV4LW11 c2xlYWJpaGYvdGVtcGxhdGUKaW5kZXggOTJlMjVmNDllNDcuLmY4YjUzNjZmMjI4IDEwMDY0NAot LS0gYS9zcmNwa2dzL2Nyb3NzLWFybS1saW51eC1tdXNsZWFiaWhmL3RlbXBsYXRlCisrKyBiL3Ny Y3BrZ3MvY3Jvc3MtYXJtLWxpbnV4LW11c2xlYWJpaGYvdGVtcGxhdGUKQEAgLTEsMjAgKzEsMTkg QEAKLSMgVGVtcGxhdGUgYnVpbGQgZmlsZSBmb3IgJ2Nyb3NzLWFybS1saW51eC1tdXNsZWFiaWhm JwotIworIyBUZW1wbGF0ZSBmaWxlIGZvciAnY3Jvc3MtYXJtLWxpbnV4LW11c2xlYWJpaGYnCitf dHJpcGxldD1hcm0tbGludXgtbXVzbGVhYmloZgogX2JpbnV0aWxzX3ZlcnNpb249Mi4zMgogX2dj Y192ZXJzaW9uPTkuMy4wCiBfbXVzbF92ZXJzaW9uPTEuMS4yNAogX2xpbnV4X3ZlcnNpb249NC4x OQogX2xpYnVjb250ZXh0X3ZlcnNpb249MC45LjAKLQotX3RyaXBsZXQ9YXJtLWxpbnV4LW11c2xl YWJpaGYKLV9mcHVmbGFncz0iLS13aXRoLWFyY2g9YXJtdjYgLS13aXRoLWZwdT12ZnAgLS13aXRo LWZsb2F0PWhhcmQiCi1fYXJjaGZsYWdzPSItbWFyY2g9YXJtdjYgLW1mcHU9dmZwIC1tZmxvYXQt YWJpPWhhcmQiCi1fc3lzcm9vdD0iL3Vzci8ke190cmlwbGV0fSIKLQogcGtnbmFtZT1jcm9zcy0k e190cmlwbGV0fQogdmVyc2lvbj0wLjMzCiByZXZpc2lvbj0zCi1zaG9ydF9kZXNjPSJDcm9zcyB0 b29sY2hhaW4gZm9yIEFSTXY2IExFIEhhcmQgRmxvYXQgdGFyZ2V0IChtdXNsKSIKK2J1aWxkX3N0 eWxlPXZvaWQtY3Jvc3MKK2NvbmZpZ3VyZV9hcmdzPSItLXdpdGgtYXJjaD1hcm12NiAtLXdpdGgt ZnB1PXZmcCAtLXdpdGgtZmxvYXQ9aGFyZCIKK2hvc3RtYWtlZGVwZW5kcz0idGFyIGdjYy1vYmpj IGdjYy1nbyBmbGV4IHBlcmwgcHl0aG9uMyIKK21ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJt cGMtZGV2ZWwgemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbCIKK2RlcGVuZHM9IiR7cGtn bmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259Igorc2hvcnRfZGVzYz0iVm9pZCBjcm9z cyB0b29sY2hhaW4gZm9yICR7X3RyaXBsZXR9IgogbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhh bkB2b2lkbGludXgub3JnPiIKIGhvbWVwYWdlPSJodHRwczovL3d3dy52b2lkbGludXgub3JnLyIK IGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdQTC0zLjAtb3ItbGF0ZXIsIE1JVCIKQEAgLTMw LDI5NSArMjksMjkgQEAgY2hlY2tzdW09IjBhYjZjNTVkZDg2YTkyZWQ1NjE5NzJiYTE1YjliNzBh OGI5Zjc1NTU3Zjg5NjQ0NmM4MmU4YjM2ZTQ3M2VlMDQKICAwYzY4ZjU2NTU1MjhhZWQ0Zjk5ZGFl NzFhNWIyNTllZGM5MzIzOWZhODk5ZTJkZjc5YzA1NTI3NWMyMTc0OWExCiAgMGQ1M2E0MTVhMzA3 ZWYxNzUxNTNiYmU2MGE1NzJjOTQwYTkyMmNiNzM2Y2UxMzUzMGI2NjZlN2VjMjc5NWQ2OCIKIAot bGliMzJkaXNhYmxlZD15ZXMKLW5vY3Jvc3M9eWVzCi1ub3BpZT15ZXMKLW5vZGVidWc9eWVzCi1j cmVhdGVfd3Jrc3JjPXllcwotCi1ob3N0bWFrZWRlcGVuZHM9InRhciBnY2Mtb2JqYyBnY2MtZ28g ZmxleCBwZXJsIHB5dGhvbjMiCi1tYWtlZGVwZW5kcz0iemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBm ci1kZXZlbCBsaWJtcGMtZGV2ZWwgaXNsMTUtZGV2ZWwiCi1ub3N0cmlwX2ZpbGVzPSJsaWJjYWZf c2luZ2xlLmEgbGliZ2NjLmEgbGliZ2Nvdi5hIGxpYmdjY19laC5hCi0gbGliZ25hcmxfcGljLmEg bGliZ25hcmwuYSBsaWJnbmF0X3BpYy5hIGxpYmduYXQuYSBsaWJnbWVtLmEiCi1kZXBlbmRzPSIk e3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKK2Nyb3NzX3RyaXBsZXQ9JHtf dHJpcGxldH0KK2Nyb3NzX3dvcmRzaXplPTMyCitjcm9zc19saWJjPW11c2wKK2Nyb3NzX2JpbnV0 aWxzX3ZlcnNpb249JHtfYmludXRpbHNfdmVyc2lvbn0KK2Nyb3NzX2djY192ZXJzaW9uPSR7X2dj Y192ZXJzaW9ufQorY3Jvc3NfbXVzbF92ZXJzaW9uPSR7X211c2xfdmVyc2lvbn0KK2Nyb3NzX2xp bnV4X3ZlcnNpb249JHtfbGludXhfdmVyc2lvbn0KK2Nyb3NzX2xpYnVjb250ZXh0X3ZlcnNpb249 JHtfbGlidWNvbnRleHRfdmVyc2lvbn0KK2Nyb3NzX2xpYnVjb250ZXh0X2FyY2g9YXJtCitjcm9z c19saW51eF9hcmNoPWFybQorY3Jvc3NfbXVzbF9jZmxhZ3M9Ii1PcyAtbWFyY2g9YXJtdjYgLW1m cHU9dmZwIC1tZmxvYXQtYWJpPWhhcmQiCiAKIGlmIFsgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiA9 ICJhcm12NmwtbXVzbCIgXTsgdGhlbgogCWJyb2tlbj0iQ2FuJ3QgYnVpbGQgY3Jvc3N0b29sY2hh aW4gdG8gaXRzZWxmIgogZmkKIAotX2FwcGx5X3BhdGNoKCkgewotCWxvY2FsIGFyZ3M9IiQxIiBw bmFtZT0iJChiYXNlbmFtZSAkMikiCi0KLQlpZiBbICEgLWYgIi4ke3BuYW1lfV9kb25lIiBdOyB0 aGVuCi0JCXBhdGNoIC1OICRhcmdzIC1pICQyCi0JCXRvdWNoIC4ke3BuYW1lfV9kb25lCi0JZmkK LX0KLQotX2JpbnV0aWxzX2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3Jj fS8uYmludXRpbHNfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQlt c2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBiaW51dGlscyBib290c3RyYXBcbiIKLQotCVsgISAt ZCBiaW51dGlscy1idWlsZCBdICYmIG1rZGlyIGJpbnV0aWxzLWJ1aWxkCi0JY2QgYmludXRpbHMt YnVpbGQKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3Ry aXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0i IC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9hcmdzKz0i IC0tZGlzYWJsZS13ZXJyb3IiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJncys9 IiAtLXdpdGgtc3lzdGVtLXpsaWIiCi0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9IgotCi0JLi4vYmlu dXRpbHMtJHtfYmludXRpbHNfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlIGNv bmZpZ3VyZS1ob3N0ICYmIG1ha2UgJHttYWtlam9ic30KLQltYWtlIGluc3RhbGwKLQotCXRvdWNo ICR7d3Jrc3JjfS8uYmludXRpbHNfYnVpbGRfZG9uZQotfQotCi1fZ2NjX2Jvb3RzdHJhcCgpIHsK LQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmdjY19ib290c3RyYXBfZG9uZSBdICYm IHJldHVybiAwCi0KLQljZCAke3dya3NyY30vZ2NjLSR7X2djY192ZXJzaW9ufQotCWZvciBmIGlu ICR7WEJQU19TUkNQS0dESVJ9L2djYy9wYXRjaGVzLyoucGF0Y2g7IGRvCi0JCV9hcHBseV9wYXRj aCAtcDAgIiRmIgotCWRvbmUKLQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9nY2MvZmlsZXMv Ki1tdXNsLnBhdGNoOyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAxICIkZiIKLQlkb25lCi0KLQltc2df bm9ybWFsICJCdWlsZGluZyBjcm9zcyBnY2MgYm9vdHN0cmFwXG4iCi0KLQlbICEgLWQgLi4vZ2Nj LWJvb3RzdHJhcCBdICYmIG1rZGlyIC4uL2djYy1ib290c3RyYXAKLQljZCAuLi9nY2MtYm9vdHN0 cmFwCi0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlw bGV0fSIKLQlfYXJncys9IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAt LXdpdGgtbmV3bGliIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jIgotCV9hcmdzKz0i IC0td2l0aC1uZXdsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNzcCIKLQlfYXJncys9IiAt LWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJxdWFkbWF0aCIKLQlfYXJncys9 IiAtLWRpc2FibGUtdGhyZWFkcyIKLQlfYXJncys9IiAtLWRpc2FibGUtZGVjaW1hbC1mbG9hdCIK LQlfYXJncys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtcHgi Ci0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm11ZGZsYXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxp YmdvbXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmF0b21pYyIKLQlfYXJncys9IiAtLWRpc2Fi bGUtc3ltdmVycyIKLQlfYXJncys9IiBsaWJhdF9jdl9oYXZlX2lmdW5jPW5vIgotCV9hcmdzKz0i ICR7X2ZwdWZsYWdzfSIKLQotCUNGTEFHUz0iLU8wIC1nMCIgQ1hYRkxBR1M9Ii1PMCAtZzAiIFwK LQkJLi4vZ2NjLSR7X2djY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHtt YWtlam9ic30KLQltYWtlIGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJh cF9kb25lCi19Ci0KLV9saW51eF9oZWFkZXJzKCkgewotCVsgLWYgJHt3cmtzcmN9Ly5saW51eF9i dWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1 aWxkaW5nIExpbnV4IEFQSSBoZWFkZXJzIGZvciBBUk1cbiIKLQotCWNkIGxpbnV4LSR7X2xpbnV4 X3ZlcnNpb259Ci0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0va2VybmVsLWxpYmMtaGVhZGVy cy9wYXRjaGVzLyoucGF0Y2g7IGRvCi0JCV9hcHBseV9wYXRjaCAtcDAgJGYKLQlkb25lCi0KLQlt YWtlIEFSQ0g9YXJtIGhlYWRlcnNfY2hlY2sKLQltYWtlIEFSQ0g9YXJtIElOU1RBTExfSERSX1BB VEg9JHtfc3lzcm9vdH0vdXNyIGhlYWRlcnNfaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5s aW51eF9idWlsZF9kb25lCi19Ci0KLV9tdXNsX2J1aWxkKCkgewotCVsgLWYgJHt3cmtzcmN9Ly5t dXNsX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L211c2wtJHtfbXVz bF92ZXJzaW9ufQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIG11c2wgbGliY1xuIgotCi0J IyBBcHBseSBtdXNsIHBhdGNoZXMgaWYgdGhlcmUgYXJlIGFueQotCWlmIFsgLWQgIiR7WEJQU19T UkNQS0dESVJ9L211c2wvcGF0Y2hlcyIgXTsgdGhlbgotCQlmb3IgZiBpbiAke1hCUFNfU1JDUEtH RElSfS9tdXNsL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJCV9hcHBseV9wYXRjaCAtcDAgIiRmIgot CQlkb25lCi0JZmkKLQotCUNDPSIke190cmlwbGV0fS1nY2MiIENGTEFHUz0iLU9zIC1waXBlIC1m UElDICR7X2FyY2hmbGFnc30iIFwKLQkJLi9jb25maWd1cmUgLS1wcmVmaXg9L3VzcgotCi0JbWFr ZSAke21ha2Vqb2JzfQotCW1ha2UgREVTVERJUj0ke19zeXNyb290fSBpbnN0YWxsCi0KLQl0b3Vj aCAke3dya3NyY30vLm11c2xfYnVpbGRfZG9uZQotfQotCi1fbGlidWNvbnRleHRfYnVpbGQoKSB7 Ci0JWyAtZiAke3dya3NyY30vLmxpYnVjb250ZXh0X2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAot Ci0JY2QgJHt3cmtzcmN9L2xpYnVjb250ZXh0LSR7X2xpYnVjb250ZXh0X3ZlcnNpb259Ci0JbXNn X25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgbGlidWNvbnRleHRcbiIKLQotCSMgaXQncyBvayBpZiB3 ZSdyZSBzdGF0aWMgb25seSBoZXJlCi0JQ0M9IiR7X3RyaXBsZXR9LWdjYyIgQVI9IiR7X3RyaXBs ZXR9LWFyIiBBUz0iJHtfdHJpcGxldH0tYXMiIFwKLQkJQ0ZMQUdTPSItT3MgLXBpcGUgJHtfYXJj aGZsYWdzfSIgXAotCQltYWtlIEFSQ0g9YXJtIGxpYnVjb250ZXh0LmEKLQotCWNwIGxpYnVjb250 ZXh0LmEgJHtfc3lzcm9vdH0vdXNyL2xpYgotCi0JdG91Y2ggJHt3cmtzcmN9Ly5saWJ1Y29udGV4 dF9idWlsZF9kb25lCi19Ci0KLV9nY2NfYnVpbGQoKSB7Ci0JbG9jYWwgX2FyZ3MKLQlbIC1mICR7 d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0J bXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2NjIGZpbmFsXG4iCi0KLQlbICEgLWQgZ2NjLWJ1 aWxkIF0gJiYgbWtkaXIgZ2NjLWJ1aWxkCi0JY2QgZ2NjLWJ1aWxkCi0KLQlfYXJncz0iLS1wcmVm aXg9L3VzciIKLQlfYXJncys9IiAtLWxpYmV4ZWNkaXI9L3Vzci9saWIiCi0JX2FyZ3MrPSIgLS10 YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0i Ci0JX2FyZ3MrPSIgLS1lbmFibGUtbGFuZ3VhZ2VzPWMsYWRhLGMrKyxvYmpjLG9iai1jKyssZ28s Zm9ydHJhbixsdG8iCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGliYWRhIgotCV9hcmdzKz0iIC0tZW5h YmxlLWx0byIKLQlfYXJncys9IiAtLWVuYWJsZS1kZWZhdWx0LXBpZSIKLQlfYXJncys9IiAtLWVu YWJsZS1kZWZhdWx0LXNzcCIKLQlfYXJncys9IiAtLWVuYWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLWxpYnNhbml0aXplciIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0J X2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlicXVhZG1hdGgi Ci0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm1weCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXVk ZmxhcCIKLQlfYXJncys9IiAtLWVuYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXN5 bXZlcnMiCi0JX2FyZ3MrPSIgbGliYXRfY3ZfaGF2ZV9pZnVuYz1ubyIKLQlfYXJncys9IiAke19m cHVmbGFnc30iCi0KLQkuLi9nY2MtJHtfZ2NjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQot Ci0JbWFrZSAke21ha2Vqb2JzfQotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYnVpbGRfZG9uZQot fQotCi1kb19idWlsZCgpIHsKLQkjIEVuc3VyZSB3ZSB1c2Ugc2FuZSBlbnZpcm9ubWVudAotCXVu c2V0IENDIENYWCBDUFAgTEQgQVMgQVIgUkFOTElCIE9CSkRVTVAgUkVBREVMRiBOTQotCXVuc2V0 IENGTEFHUyBDWFhGTEFHUyBDUFBGTEFHUyBMREZMQUdTCi0JZXhwb3J0IENGTEFHUz0iLU9zIC1w aXBlIiBDWFhGTEFHUz0iLU9zIC1waXBlIgotCi0JZm9yIGYgaW4gaW5jbHVkZSBsaWIgbGliZXhl YyBiaW4gc2JpbjsgZG8KLQkJaWYgWyAhIC1kICR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4K LQkJCW1rZGlyIC1wICR7X3N5c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZpCi0JCWlmIFsgISAtaCAke19z eXNyb290fS8ke2Z9IF07IHRoZW4KLQkJCWxuIC1zZnIgJHtfc3lzcm9vdH0vdXNyLyR7Zn0gJHtf c3lzcm9vdH0vJHtmfQotCQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7X3N5c3Jvb3R9L3Vzci9s aWIzMgotCWxuIC1zZiB1c3IvbGliICR7X3N5c3Jvb3R9L2xpYjMyCi0KLQlfYmludXRpbHNfYnVp bGQKLQlfZ2NjX2Jvb3RzdHJhcAotCV9saW51eF9oZWFkZXJzCi0JX211c2xfYnVpbGQKLQlfbGli dWNvbnRleHRfYnVpbGQKLQlfZ2NjX2J1aWxkCi19Ci0KLWRvX2luc3RhbGwoKSB7Ci0JZm9yIGYg aW4gaW5jbHVkZSBsaWIgbGliZXhlYyBiaW4gc2JpbjsgZG8KLQkJaWYgWyAhIC1kICR7REVTVERJ Un0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXTsgdGhlbgotCQkJbWtkaXIgLXAgJHtERVNURElSfS8k e19zeXNyb290fS91c3IvJHtmfQotCQlmaQotCQlpZiBbICEgLWggJHtERVNURElSfS8ke19zeXNy b290fS8ke2Z9IF07IHRoZW4KLQkJCWxuIC1zZnIgJHtERVNURElSfS8ke19zeXNyb290fS91c3Iv JHtmfSBcCi0JCQkJJHtERVNURElSfS8ke19zeXNyb290fS8ke2Z9Ci0JCWZpCi0JZG9uZQotCWxu IC1zZiBsaWIgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliMzIKLQlsbiAtc2YgdXNyL2xp YiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYjMyCi0KLQkjIGluc3RhbGwgbGludXggQVBJIGhl YWRlcnMKLQljZCAke3dya3NyY30vbGludXgtJHtfbGludXhfdmVyc2lvbn0KLQltYWtlIEFSQ0g9 YXJtIElOU1RBTExfSERSX1BBVEg9JHtERVNURElSfS8ke19zeXNyb290fS91c3IgaGVhZGVyc19p bnN0YWxsCi0Jcm0gLWYgJChmaW5kICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUg LW5hbWUgLmluc3RhbGwgLW9yIC1uYW1lIC4uaW5zdGFsbC5jbWQpCi0Jcm0gLXJmICR7REVTVERJ Un0vJHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUvZHJtCi0KLQkjIGluc3RhbGwgY3Jvc3MgYmludXRp bHMKLQljZCAke3dya3NyY30vYmludXRpbHMtYnVpbGQKLQltYWtlIERFU1RESVI9JHtERVNURElS fSBpbnN0YWxsCi0KLQkjIGluc3RhbGwgY3Jvc3MgZ2NjCi0JY2QgJHt3cmtzcmN9L2djYy1idWls ZAotCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9IGluc3RhbGwKLQotCSMgbW92ZSBsaWJjYzEuc28q IHRvIHRoZSBzeXNyb290Ci0JbXYgJHtERVNURElSfS91c3IvbGliL2xpYmNjMS5zbyogJHtERVNU RElSfS8ke19zeXNyb290fS91c3IvbGliCi0KLQkjIGluc3RhbGwgbXVzbCBsaWJjIGZvciB0YXJn ZXQKLQljZCAke3dya3NyY30vbXVzbC0ke19tdXNsX3ZlcnNpb259Ci0JbWFrZSBERVNURElSPSR7 REVTVERJUn0vJHtfc3lzcm9vdH0gaW5zdGFsbAotCi0JIyBSZW1vdmUgdXNlbGVzcyBoZWFkZXJz LgotCXJtIC1yZiAke0RFU1RESVJ9L3Vzci9saWIvZ2NjLyR7X3RyaXBsZXR9LyovaW5jbHVkZS1m aXhlZC8KLQotCSMgTWFrZSBsZC1tdXNsLWFybWhmLnNvLjEgc3ltbGluayByZWxhdGl2ZS4KLQls biAtc2YgbGliYy5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIvbGQtbXVzbC1hcm1o Zi5zby4xCi0KLQkjIHN5bWxpbmtzIGZvciBnbmFybCBhbmQgZ25hdCBzaGFyZWQgbGlicmFyaWVz Ci0JX21ham9ydmVyPSR7X2djY192ZXJzaW9uJS4qLip9Ci0JX2FkYWxpYj11c3IvbGliL2djYy8k e190cmlwbGV0fS8ke19nY2NfdmVyc2lvbn0vYWRhbGliCi0JbXYgLXYgJHtERVNURElSfS8ke19h ZGFsaWJ9L2xpYmduYXJsLSR7X21ham9ydmVyfS5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vz ci9saWIKLQltdiAtdiAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGliZ25hdC0ke19tYWpvcnZlcn0u c28gJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliCi0JbG4gLXN2ZiBsaWJnbmFybC0ke19t YWpvcnZlcn0uc28gbGliZ25hcmwuc28KLQlsbiAtc3ZmIGxpYmduYXQtJHtfbWFqb3J2ZXJ9LnNv IGxpYmduYXQuc28KLQlybSAtdmYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXtybCx0fS5z bwotCi0JIyBXZSBuZWVkIHRvIGJ1aWxkIGxpYmF0b21pYyBpbiB0YXJnZXQgZ2NjIGFzIGdjY2dv IG5lZWRzIGl0IHRvCi0JIyBidWlsZC4uLiBidXQgaXQncyBub3QgbmVlZGVkIGF0IHJ1bnRpbWUs IHNvIHJlbW92ZSBpdCBmcm9tIHRoZQotCSMgZGVzdGRpciBzbyBpdCBkb2Vzbid0IGNvbmZsaWN0 IHdpdGggdGhlIGxpYmF0b21pYyBwYWNrYWdlCi0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290 fS91c3IvbGliL2xpYmF0b21pYy4qCi0KLQkjIFJlbW92ZSB1bm5lY2Vzc2FyeSBzdHVmZgotCXJt IC1mICR7REVTVERJUn0vdXNyL2xpYiovbGliaWJlcnR5LmEKLQlybSAtcmYgJHtERVNURElSfS91 c3Ivc2hhcmUKLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS97ZXRjLHZhcn0KLQlybSAt cmYgJHtERVNURElSfS8ke19zeXNyb290fS91c3Ive3NiaW4sc2hhcmUsbGliZXhlY30KLQlybSAt ZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYmV4ZWMKLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9L2xpYi8qLnB5Ci0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0ve3NiaW4sbGli fQotfQotCiBjcm9zcy1hcm0tbGludXgtbXVzbGVhYmloZi1saWJjX3BhY2thZ2UoKSB7CiAJc2hv cnRfZGVzYys9IiAtIGxpYmMgZmlsZXMiCiAJbm9zdHJpcD15ZXMKIAlub3NobGlicHJvdmlkZXM9 eWVzCiAJbm92ZXJpZnlyZGVwcz15ZXMKKwogCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAke19z eXNyb290fQorCQl2bW92ZSB1c3IvJHtjcm9zc190cmlwbGV0fQogCX0KIH0KCkZyb20gNWI5ZmY2 NTJjZmFjMWM2ZmY1YTIwMzNmNzRlMDZhZjYwMzQ4YWRiYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogcTY2IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogRnJpLCAyNSBEZWMgMjAy MCAyMTozNjozMyArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDkvMTZdIGNyb3NzLWFybXY3bC1saW51 eC1nbnVlYWJpaGY6IHJld29yayB3aXRoIHZvaWQtY3Jvc3MKCi0tLQogc3JjcGtncy9jcm9zcy1h cm12N2wtbGludXgtZ251ZWFiaWhmL3RlbXBsYXRlIHwgMzY5ICstLS0tLS0tLS0tLS0tLS0tLQog MSBmaWxlIGNoYW5nZWQsIDIxIGluc2VydGlvbnMoKyksIDM0OCBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9zcmNwa2dzL2Nyb3NzLWFybXY3bC1saW51eC1nbnVlYWJpaGYvdGVtcGxhdGUgYi9z cmNwa2dzL2Nyb3NzLWFybXY3bC1saW51eC1nbnVlYWJpaGYvdGVtcGxhdGUKaW5kZXggOTY5NjY5 N2RjZWIuLjcwNjY2MmU1ZWQyIDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nyb3NzLWFybXY3bC1saW51 eC1nbnVlYWJpaGYvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9jcm9zcy1hcm12N2wtbGludXgtZ251 ZWFiaWhmL3RlbXBsYXRlCkBAIC0xLDM3OSArMSw1MiBAQAotIyBUZW1wbGF0ZSBidWlsZCBmaWxl IGZvciAnY3Jvc3MtYXJtdjdsLWxpbnV4LWdudWVhYmloZicKLSMKKyMgVGVtcGxhdGUgZmlsZSBm b3IgJ2Nyb3NzLWFybXY3bC1saW51eC1nbnVlYWJpaGYnCitfdHJpcGxldD1hcm12N2wtbGludXgt Z251ZWFiaWhmCiBfYmludXRpbHNfdmVyc2lvbj0yLjMyCiBfZ2NjX3ZlcnNpb249OS4zLjAKIF9n bGliY192ZXJzaW9uPTIuMzAKIF9saW51eF92ZXJzaW9uPTQuMTkKLQotX3RyaXBsZXQ9YXJtdjds LWxpbnV4LWdudWVhYmloZgotX2ZwdWZsYWdzPSItLXdpdGgtYXJjaD1hcm12Ny1hIC0td2l0aC1m cHU9dmZwdjMgLS13aXRoLWZsb2F0PWhhcmQiCi1fYXJjaGZsYWdzPSItbWFyY2g9YXJtdjctYSAt bWZwdT12ZnB2MyAtbWZsb2F0LWFiaT1oYXJkIgotX3N5c3Jvb3Q9Ii91c3IvJHtfdHJpcGxldH0i Ci0KIHBrZ25hbWU9Y3Jvc3MtJHtfdHJpcGxldH0KIHZlcnNpb249MC4zMwogcmV2aXNpb249Mgot c2hvcnRfZGVzYz0iR05VIENyb3NzIHRvb2xjaGFpbiBmb3IgdGhlICR7X3RyaXBsZXR9IExFIHRh cmdldCAoYmludXRpbHMvZ2NjL2dsaWJjKSIKK2J1aWxkX3N0eWxlPXZvaWQtY3Jvc3MKK2NvbmZp Z3VyZV9hcmdzPSItLXdpdGgtYXJjaD1hcm12Ny1hIC0td2l0aC1mcHU9dmZwdjMgLS13aXRoLWZs b2F0PWhhcmQiCitob3N0bWFrZWRlcGVuZHM9InRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJs IHB5dGhvbjMiCittYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2 ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwiCitkZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJz aW9ufV8ke3JldmlzaW9ufSIKK3Nob3J0X2Rlc2M9IlZvaWQgY3Jvc3MgdG9vbGNoYWluIGZvciAk e190cmlwbGV0fSIKIG1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4i Ci1ob21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBsaWNlbnNlPSJHUEwtMi4w LW9yLWxhdGVyLCBHUEwtMy4wLW9yLWxhdGVyLCBMR1BMLTIuMS1vci1sYXRlciIKK2hvbWVwYWdl PSJodHRwczovL3d3dy52b2lkbGludXgub3JnLyIKIGRpc3RmaWxlcz0iCiAgJHtHTlVfU0lURX0v YmludXRpbHMvYmludXRpbHMtJHtfYmludXRpbHNfdmVyc2lvbn0udGFyLnh6CiAgJHtHTlVfU0lU RX0vZ2NjL2djYy0ke19nY2NfdmVyc2lvbn0vZ2NjLSR7X2djY192ZXJzaW9ufS50YXIueHoKLSBo dHRwOi8vZnRwLmdudS5vcmcvZ251L2dsaWJjL2dsaWJjLSR7X2dsaWJjX3ZlcnNpb259LnRhci54 egorICR7R05VX1NJVEV9L2dsaWJjL2dsaWJjLSR7X2dsaWJjX3ZlcnNpb259LnRhci54egogICR7 S0VSTkVMX1NJVEV9L2tlcm5lbC92NC54L2xpbnV4LSR7X2xpbnV4X3ZlcnNpb259LnRhci54eiIK IGNoZWNrc3VtPSIwYWI2YzU1ZGQ4NmE5MmVkNTYxOTcyYmExNWI5YjcwYThiOWY3NTU1N2Y4OTY0 NDZjODJlOGIzNmU0NzNlZTA0CiAgNzFlMTk3ODY3NjExZjYwNTRhYTExMTliMTNhMGMwYWJhYzEy ODM0NzY1ZmUyZDgxZjM1YWM1N2Y4NGY3NDJkMQogIGUyYzQxMTRlNTY5YWZiZTdlZGJjMjkxMzFh NDNiZTgzMzg1MGFiOWE0NTlkODFiZWIyNTg4MDE2ZDJiYmI4YWYKICAwYzY4ZjU2NTU1MjhhZWQ0 Zjk5ZGFlNzFhNWIyNTllZGM5MzIzOWZhODk5ZTJkZjc5YzA1NTI3NWMyMTc0OWExIgogCi1saWIz MmRpc2FibGVkPXllcwotbm9jcm9zcz15ZXMKLW5vcGllPXllcwotbm9kZWJ1Zz15ZXMKLWNyZWF0 ZV93cmtzcmM9eWVzCi0KLWhvc3RtYWtlZGVwZW5kcz0idGFyIGdjYy1vYmpjIGdjYy1nbyBmbGV4 IHBlcmwgcHl0aG9uMyIKLW1ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgemxp Yi1kZXZlbCIKLWRlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259 Igotbm9zdHJpcF9maWxlcz0ibGliY2FmX3NpbmdsZS5hIGxpYmdjYy5hIGxpYmdjb3YuYSBsaWJn Y2NfZWguYQotIGxpYmduYXJsX3BpYy5hIGxpYmduYXJsLmEgbGliZ25hdF9waWMuYSBsaWJnbmF0 LmEgbGliZ21lbS5hIgotCi1pZiBbICIkWEJQU19UQVJHRVRfTElCQyIgIT0gImdsaWJjIiBdOyB0 aGVuCi0JYnJva2VuPSJnbGliYyBjcm9zc3Rvb2xjaGFpbiBvbmx5IGF2YWlsYWJsZSBvbiBnbGli YyIKLWZpCitjcm9zc190cmlwbGV0PSR7X3RyaXBsZXR9Citjcm9zc193b3Jkc2l6ZT0zMgorY3Jv c3NfbGliYz1nbGliYworY3Jvc3NfYmludXRpbHNfdmVyc2lvbj0ke19iaW51dGlsc192ZXJzaW9u fQorY3Jvc3NfZ2NjX3ZlcnNpb249JHtfZ2NjX3ZlcnNpb259Citjcm9zc19nbGliY192ZXJzaW9u PSR7X2dsaWJjX3ZlcnNpb259Citjcm9zc19saW51eF92ZXJzaW9uPSR7X2xpbnV4X3ZlcnNpb259 Citjcm9zc19saW51eF9hcmNoPWFybQorY3Jvc3NfZ2xpYmNfY2ZsYWdzPSItTzIgLW1hcmNoPWFy bXY3LWEgLW1mcHU9dmZwdjMgLW1mbG9hdC1hYmk9aGFyZCIKIAogaWYgWyAiJFhCUFNfVEFSR0VU X01BQ0hJTkUiID0gImFybXY3bCIgXTsgdGhlbgogCWJyb2tlbj0iQ2FuJ3QgYnVpbGQgY3Jvc3N0 b29sY2hhaW4gdG8gaXRzZWxmIgogZmkKIAotX2FwcGx5X3BhdGNoKCkgewotCWxvY2FsIGFyZ3M9 IiQxIiBwbmFtZT0iJChiYXNlbmFtZSAkMikiCi0KLQlpZiBbICEgLWYgIi4ke3BuYW1lfV9kb25l IiBdOyB0aGVuCi0JCXBhdGNoIC1OICRhcmdzIC1pICQyCi0JCXRvdWNoIC4ke3BuYW1lfV9kb25l Ci0JZmkKLX0KLQotX2xpbnV4X2hlYWRlcnMoKSB7Ci0JWyAtZiAke3dya3NyY30vLmxpbnV4X2J1 aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVp bGRpbmcgTGludXggQVBJIGhlYWRlcnMgZm9yIEFSTVxuIgotCi0JY2QgbGludXgtJHtfbGludXhf dmVyc2lvbn0KLQotCW1ha2UgQVJDSD1hcm0gaGVhZGVyc19jaGVjawotCW1ha2UgQVJDSD1hcm0g SU5TVEFMTF9IRFJfUEFUSD0ke19zeXNyb290fS91c3IgaGVhZGVyc19pbnN0YWxsCi0KLQl0b3Vj aCAke3dya3NyY30vLmxpbnV4X2J1aWxkX2RvbmUKLX0KLQotX2JpbnV0aWxzX2J1aWxkKCkgewot CWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uYmludXRpbHNfYnVpbGRfZG9uZSBdICYm IHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBi aW51dGlsc1xuIgotCVsgISAtZCBiaW51dGlscy1idWlsZCBdICYmIG1rZGlyIGJpbnV0aWxzLWJ1 aWxkCi0JY2QgYmludXRpbHMtYnVpbGQKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdz Kz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1zeXNyb290PSR7X3N5 c3Jvb3R9IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNo YXJlZCIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LXdlcnJvciIKLQlfYXJncys9IiAtLXdpdGgtc3lzdGVtLXpsaWIiCi0KLQkuLi9iaW51dGlscy0k e19iaW51dGlsc192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgY29uZmlndXJl LWhvc3QKLQltYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3Ny Y30vLmJpbnV0aWxzX2J1aWxkX2RvbmUKLX0KLQotX2djY19ib290c3RyYXAoKSB7Ci0JbG9jYWwg X2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUgXSAmJiByZXR1cm4g MAotCi0JY2QgJHt3cmtzcmN9L2djYy0ke19nY2NfdmVyc2lvbn0KLQlmb3IgZiBpbiAke1hCUFNf U1JDUEtHRElSfS9nY2MvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAwICIk ZiIKLQlkb25lCi0KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBnY2MgYm9vdHN0cmFwXG4i Ci0KLQlbICEgLWQgLi4vZ2NjLWJvb3RzdHJhcCBdICYmIG1rZGlyIC4uL2djYy1ib290c3RyYXAK LQljZCAuLi9nY2MtYm9vdHN0cmFwCi0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9 IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGhvdXQtaGVhZGVycyIKLQlf YXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zaGFyZWQiCi0JX2Fy Z3MrPSIgLS1kaXNhYmxlLWxpYnF1YWRtYXRoIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1kZWNpbWFs LWZsb2F0IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJnb21wIgotCV9hcmdzKz0iIC0tZGlzYWJs ZS1saWJtcHgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm11ZGZsYXAiCi0JX2FyZ3MrPSIgLS1k aXNhYmxlLWxpYnNzcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliaXRtIgotCV9hcmdzKz0iIC0t ZGlzYWJsZS1saWJhdG9taWMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXRocmVhZHMiCi0JX2FyZ3Mr PSIgLS1lbmFibGUtbGFuZ3VhZ2VzPWMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNqbGotZXhjZXB0 aW9ucyIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS13aXRoLWdu dS1sZCIKLQlfYXJncys9IiAtLXdpdGgtZ251LWFzIgotCV9hcmdzKz0iICR7X2ZwdWZsYWdzfSIK LQotCUNGTEFHUz0iLU8wIC1nMCIgQ1hYRkxBR1M9Ii1PMCAtZzAiIFwKLQkJLi4vZ2NjLSR7X2dj Y192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQltYWtl IGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJhcF9kb25lCi19Ci0KLV9n bGliY19oZWFkZXJzKCkgewotCWxvY2FsIF9hcmdzIGYKLQotCVsgLWYgJHt3cmtzcmN9Ly5nbGli Y19oZWFkZXJzX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L2dsaWJjLSR7X2ds aWJjX3ZlcnNpb259Ci0JaWYgWyAtZCAiJHtYQlBTX1NSQ1BLR0RJUn0vZ2xpYmMvcGF0Y2hlcyIg XTsgdGhlbgotCQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9nbGliYy9wYXRjaGVzLyoucGF0 Y2g7IGRvCi0JCQlfYXBwbHlfcGF0Y2ggLXAxICIkZiIKLQkJZG9uZQotCWZpCi0KLQljZCAke3dy a3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBnbGliYyBoZWFkZXJzXG4iCi0KLQlb ICEgLWQgZ2xpYmMtaGVhZGVycyBdICYmIG1rZGlyIGdsaWJjLWhlYWRlcnMKLQljZCBnbGliYy1o ZWFkZXJzCi0KLQllY2hvICJsaWJjX2N2X2ZvcmNlZF91bndpbmQ9eWVzIiA+IGNvbmZpZy5jYWNo ZQotCWVjaG8gImxpYmNfY3ZfY19jbGVhbnVwPXllcyIgPj4gY29uZmlnLmNhY2hlCi0KLQlleHBv cnQgQ0M9IiR7X3RyaXBsZXR9LWdjYyIgTEQ9IiR7X3RyaXBsZXR9LWxkIiBcCi0JCUFTPSIke190 cmlwbGV0fS1hcyIgQ1BQPSIke190cmlwbGV0fS1jcHAiCi0KLQlfYXJncz0iLS1wcmVmaXg9L3Vz ciIKLQlfYXJncys9IiAtLWhvc3Q9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLWhlYWRl cnM9JHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUiCi0JX2FyZ3MrPSIgLS1jb25maWctY2FjaGUiCi0J X2FyZ3MrPSIgLS1lbmFibGUtb2Jzb2xldGUtcnBjIgotCV9hcmdzKz0iIC0tZW5hYmxlLW9ic29s ZXRlLW5zbCIKLQlfYXJncys9IiAtLWVuYWJsZS1rZXJuZWw9Mi42LjI3IgotCV9hcmdzKz0iICR7 X2ZwdWZsYWdzfSIKLQotCS4uL2dsaWJjLSR7X2dsaWJjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19h cmdzfQotCi0JbWFrZSAtayBpbnN0YWxsLWhlYWRlcnMgY3Jvc3NfY29tcGlsaW5nPXllcyBcCi0J CWluc3RhbGxfcm9vdD0ke19zeXNyb290fQotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nbGliY19oZWFk ZXJzX2RvbmUKLX0KLQotX2dsaWJjX2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7 d3Jrc3JjfS8uZ2xpYmNfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30K LQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBnbGliY1xuIgotCi0JWyAhIC1kIGdsaWJjLWJ1 aWxkIF0gJiYgbWtkaXIgZ2xpYmMtYnVpbGQKLQljZCBnbGliYy1idWlsZAotCi0JZWNobyAic2xp YmRpcj0vdXNyL2xpYjMyIiA+IGNvbmZpZ3Bhcm1zCi0KLQllY2hvICJsaWJjX2N2X2ZvcmNlZF91 bndpbmQ9eWVzIiA+IGNvbmZpZy5jYWNoZQotCWVjaG8gImxpYmNfY3ZfY19jbGVhbnVwPXllcyIg Pj4gY29uZmlnLmNhY2hlCi0KLQlleHBvcnQgQ0M9IiR7X3RyaXBsZXR9LWdjYyIgTEQ9IiR7X3Ry aXBsZXR9LWxkIiBcCi0JCUFTPSIke190cmlwbGV0fS1hcyIgQ1BQPSIke190cmlwbGV0fS1jcHAi Ci0JZXhwb3J0IENGTEFHUz0iLU9zIC1waXBlICR7X2FyY2hmbGFnc30iCi0KLQlfYXJncz0iLS1w cmVmaXg9L3VzciIKLQlfYXJncys9IiAtLWxpYmRpcj0vdXNyL2xpYjMyIgotCV9hcmdzKz0iIC0t aG9zdD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgtaGVhZGVycz0ke19zeXNyb290fS91 c3IvaW5jbHVkZSIKLQlfYXJncys9IiAtLWNvbmZpZy1jYWNoZSIKLQlfYXJncys9IiAtLWRpc2Fi bGUtcHJvZmlsZSIKLQlfYXJncys9IiAtLWVuYWJsZS1vYnNvbGV0ZS1ycGMiCi0JX2FyZ3MrPSIg LS1lbmFibGUtb2Jzb2xldGUtbnNsIgotCV9hcmdzKz0iIC0tZGlzYWJsZS13ZXJyb3IiCi0JX2Fy Z3MrPSIgLS1lbmFibGUta2VybmVsPTIuNi4yNyIKLQlfYXJncys9IiAke19mcHVmbGFnc30iCi0K LQkuLi9nbGliYy0ke19nbGliY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2Ug JHttYWtlam9ic30KLQltYWtlIGluc3RhbGxfcm9vdD0ke19zeXNyb290fSBpbnN0YWxsCi0KLQl0 b3VjaCAke3dya3NyY30vLmdsaWJjX2J1aWxkX2RvbmUKLX0KLQotX2djY19idWlsZCgpIHsKLQls b2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmdjY19idWlsZF9kb25lIF0gJiYgcmV0dXJu IDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdjYyBmaW5h bFxuIgotCi0JWyAhIC1kIGdjYy1idWlsZCBdICYmIG1rZGlyIGdjYy1idWlsZAotCWNkIGdjYy1i dWlsZAotCi0JdW5zZXQgTEQgQVMgQ1BQCi0JZXhwb3J0IENDPSJnY2MiIENGTEFHUz0iLU9zIC1w aXBlIgotCi0JIyBNYWtlIHRoaXMgbGluayB0byB0YXJnZXQgbGlicy4KLQlpZiBbICEgLWYgLnNl ZF9zdWJzdF9kb25lIF07IHRoZW4KLQkJc2VkIC1lICJzLCAvbGliLywgJHtfc3lzcm9vdH0vbGli LyxnO3MsIC91c3IvbGliLywgJHtfc3lzcm9vdH0vdXNyL2xpYi8sZyIgXAotCQkJLWkgJHtfc3lz cm9vdH0vbGliL2xpYmMuc28KLQkJc2VkIC1lICJzLCAvbGliMzIvLCAke19zeXNyb290fS9saWIz Mi8sZztzLCAvdXNyL2xpYjMyLywgJHtfc3lzcm9vdH0vdXNyL2xpYjMyLyxnIiBcCi0JCQktaSAk e19zeXNyb290fS9saWIvbGliYy5zbwotCQl0b3VjaCAuc2VkX3N1YnN0X2RvbmUKLQlmaQotCi0J 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 SVJ9LyR7X3N5c3Jvb3R9L2xpYmV4ZWMKLX0KLQogY3Jvc3MtYXJtdjdsLWxpbnV4LWdudWVhYmlo Zi1saWJjX3BhY2thZ2UoKSB7CiAJc2hvcnRfZGVzYys9IiAtIGdsaWJjIGZpbGVzIgogCW5vc3Ry aXA9eWVzCiAJbm9zaGxpYnByb3ZpZGVzPXllcwogCW5vdmVyaWZ5cmRlcHM9eWVzCisKIAlwa2df aW5zdGFsbCgpIHsKLQkJdm1vdmUgJHtfc3lzcm9vdH0KKwkJdm1vdmUgdXNyLyR7Y3Jvc3NfdHJp cGxldH0KIAl9CiB9CgpGcm9tIDY4MDAzMjZhMTM2YWRiNjk1ODhkZDQ5NzYwMTNhNGYyZGQyYTQx OGMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IHE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5v cmc+CkRhdGU6IEZyaSwgMjUgRGVjIDIwMjAgMjE6Mzg6NDQgKzAxMDAKU3ViamVjdDogW1BBVENI IDEwLzE2XSBjcm9zcy1hcm12N2wtbGludXgtbXVzbGVhYmloZjogcmV3b3JrIHdpdGggdm9pZC1j cm9zcwoKLS0tCiAuLi4vY3Jvc3MtYXJtdjdsLWxpbnV4LW11c2xlYWJpaGYvdGVtcGxhdGUgICAg fCAzMTIgKystLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjEgaW5zZXJ0aW9ucygr KSwgMjkxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY3Jvc3MtYXJtdjdsLWxp bnV4LW11c2xlYWJpaGYvdGVtcGxhdGUgYi9zcmNwa2dzL2Nyb3NzLWFybXY3bC1saW51eC1tdXNs ZWFiaWhmL3RlbXBsYXRlCmluZGV4IDU1ZTM0NWI1Y2MxLi42ZWNjZDc2NjFhYSAxMDA2NDQKLS0t IGEvc3JjcGtncy9jcm9zcy1hcm12N2wtbGludXgtbXVzbGVhYmloZi90ZW1wbGF0ZQorKysgYi9z cmNwa2dzL2Nyb3NzLWFybXY3bC1saW51eC1tdXNsZWFiaWhmL3RlbXBsYXRlCkBAIC0xLDIwICsx LDE5IEBACi0jIFRlbXBsYXRlIGJ1aWxkIGZpbGUgZm9yICdjcm9zcy1hcm12N2wtbGludXgtbXVz bGVhYmloZicKLSMKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3NzLWFybXY3bC1saW51eC1tdXNs ZWFiaWhmJworX3RyaXBsZXQ9YXJtdjdsLWxpbnV4LW11c2xlYWJpaGYKIF9iaW51dGlsc192ZXJz aW9uPTIuMzIKIF9nY2NfdmVyc2lvbj05LjMuMAogX211c2xfdmVyc2lvbj0xLjEuMjQKIF9saW51 eF92ZXJzaW9uPTQuMTkKIF9saWJ1Y29udGV4dF92ZXJzaW9uPTAuOS4wCi0KLV90cmlwbGV0PWFy bXY3bC1saW51eC1tdXNsZWFiaWhmCi1fZnB1ZmxhZ3M9Ii0td2l0aC1hcmNoPWFybXY3LWEgLS13 aXRoLWZwdT12ZnB2MyAtLXdpdGgtZmxvYXQ9aGFyZCIKLV9hcmNoZmxhZ3M9Ii1tYXJjaD1hcm12 Ny1hIC1tZnB1PXZmcHYzIC1tZmxvYXQtYWJpPWhhcmQiCi1fc3lzcm9vdD0iL3Vzci8ke190cmlw bGV0fSIKLQogcGtnbmFtZT1jcm9zcy0ke190cmlwbGV0fQogdmVyc2lvbj0wLjMzCiByZXZpc2lv bj0zCi1zaG9ydF9kZXNjPSJDcm9zcyB0b29sY2hhaW4gZm9yIEFSTXY3IExFIEhhcmQgRmxvYXQg dGFyZ2V0IChtdXNsKSIKK2J1aWxkX3N0eWxlPXZvaWQtY3Jvc3MKK2NvbmZpZ3VyZV9hcmdzPSIt LXdpdGgtYXJjaD1hcm12Ny1hIC0td2l0aC1mcHU9dmZwdjMgLS13aXRoLWZsb2F0PWhhcmQiCito b3N0bWFrZWRlcGVuZHM9InRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5dGhvbjMiCitt YWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2ZWwgZ21wLWRldmVs IG1wZnItZGV2ZWwiCitkZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3Jldmlz aW9ufSIKK3Nob3J0X2Rlc2M9IlZvaWQgY3Jvc3MgdG9vbGNoYWluIGZvciAke190cmlwbGV0fSIK IG1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCiBob21lcGFnZT0i aHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBH UEwtMy4wLW9yLWxhdGVyLCBNSVQiCkBAIC0zMCwyOTggKzI5LDI5IEBAIGNoZWNrc3VtPSIwYWI2 YzU1ZGQ4NmE5MmVkNTYxOTcyYmExNWI5YjcwYThiOWY3NTU1N2Y4OTY0NDZjODJlOGIzNmU0NzNl ZTA0CiAgMGM2OGY1NjU1NTI4YWVkNGY5OWRhZTcxYTViMjU5ZWRjOTMyMzlmYTg5OWUyZGY3OWMw NTUyNzVjMjE3NDlhMQogIDBkNTNhNDE1YTMwN2VmMTc1MTUzYmJlNjBhNTcyYzk0MGE5MjJjYjcz NmNlMTM1MzBiNjY2ZTdlYzI3OTVkNjgiCiAKLWxpYjMyZGlzYWJsZWQ9eWVzCi1ub2Nyb3NzPXll cwotbm9waWU9eWVzCi1ub2RlYnVnPXllcwotY3JlYXRlX3dya3NyYz15ZXMKLQotaG9zdG1ha2Vk ZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZ2NjLWdvIGZsZXggcGVybCBweXRob24zIgotbWFrZWRlcGVu ZHM9InpsaWItZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwgbGlibXBjLWRldmVsIGlzbDE1LWRl dmVsIgotbm9zdHJpcF9maWxlcz0ibGliY2FmX3NpbmdsZS5hIGxpYmdjYy5hIGxpYmdjb3YuYSBs aWJnY2NfZWguYQotIGxpYmduYXJsX3BpYy5hIGxpYmduYXJsLmEgbGliZ25hdF9waWMuYSBsaWJn bmF0LmEgbGliZ21lbS5hIgotZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHty ZXZpc2lvbn0iCitjcm9zc190cmlwbGV0PSR7X3RyaXBsZXR9Citjcm9zc193b3Jkc2l6ZT0zMgor Y3Jvc3NfbGliYz1tdXNsCitjcm9zc19iaW51dGlsc192ZXJzaW9uPSR7X2JpbnV0aWxzX3ZlcnNp b259Citjcm9zc19nY2NfdmVyc2lvbj0ke19nY2NfdmVyc2lvbn0KK2Nyb3NzX211c2xfdmVyc2lv bj0ke19tdXNsX3ZlcnNpb259Citjcm9zc19saW51eF92ZXJzaW9uPSR7X2xpbnV4X3ZlcnNpb259 Citjcm9zc19saWJ1Y29udGV4dF92ZXJzaW9uPSR7X2xpYnVjb250ZXh0X3ZlcnNpb259Citjcm9z c19saWJ1Y29udGV4dF9hcmNoPWFybQorY3Jvc3NfbGludXhfYXJjaD1hcm0KK2Nyb3NzX211c2xf Y2ZsYWdzPSItTzIgLW1hcmNoPWFybXY3LWEgLW1mcHU9dmZwdjMgLW1mbG9hdC1hYmk9aGFyZCIK IAogaWYgWyAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiID0gImFybXY3bC1tdXNsIiBdOyB0aGVuCiAJ YnJva2VuPSJDYW4ndCBidWlsZCBjcm9zc3Rvb2xjaGFpbiB0byBpdHNlbGYiCiBmaQogCi1fYXBw bHlfcGF0Y2goKSB7Ci0JbG9jYWwgYXJncz0iJDEiIHBuYW1lPSIkKGJhc2VuYW1lICQyKSIKLQot CWlmIFsgISAtZiAiLiR7cG5hbWV9X2RvbmUiIF07IHRoZW4KLQkJcGF0Y2ggLU4gJGFyZ3MgLWkg JDIKLQkJdG91Y2ggLiR7cG5hbWV9X2RvbmUKLQlmaQotfQotCi1fYmludXRpbHNfYnVpbGQoKSB7 Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5iaW51dGlsc19idWlsZF9kb25lIF0g JiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3Nz IGJpbnV0aWxzIGJvb3RzdHJhcFxuIgotCi0JWyAhIC1kIGJpbnV0aWxzLWJ1aWxkIF0gJiYgbWtk aXIgYmludXRpbHMtYnVpbGQKLQljZCBiaW51dGlscy1idWlsZAotCi0JX2FyZ3M9Ii0tcHJlZml4 PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRo LXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlfYXJncys9 IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXdlcnJvciIKLQlfYXJn cys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0td2l0aC1zeXN0ZW0temxpYiIKLQlf YXJncys9IiAke19mcHVmbGFnc30iCi0KLQkuLi9iaW51dGlscy0ke19iaW51dGlsc192ZXJzaW9u fS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgY29uZmlndXJlLWhvc3QgJiYgbWFrZSAke21h a2Vqb2JzfQotCW1ha2UgaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5iaW51dGlsc19idWls ZF9kb25lCi19Ci0KLV9nY2NfYm9vdHN0cmFwKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7 d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJhcF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3Jj fS9nY2MtJHtfZ2NjX3ZlcnNpb259Ci0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2NjL3Bh dGNoZXMvKi5wYXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCi0JZG9uZQotCWZvciBm IGluICR7WEJQU19TUkNQS0dESVJ9L2djYy9maWxlcy8qLW11c2wucGF0Y2g7IGRvCi0JCV9hcHBs eV9wYXRjaCAtcDEgIiRmIgotCWRvbmUKLQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdj YyBib290c3RyYXBcbiIKLQotCVsgISAtZCAuLi9nY2MtYm9vdHN0cmFwIF0gJiYgbWtkaXIgLi4v Z2NjLWJvb3RzdHJhcAotCWNkIC4uL2djYy1ib290c3RyYXAKLQotCV9hcmdzPSItLXByZWZpeD0v dXNyIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1z eXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0td2l0aC1uZXdsaWIiCi0JX2FyZ3MrPSIg LS1lbmFibGUtbGFuZ3VhZ2VzPWMiCi0JX2FyZ3MrPSIgLS13aXRoLW5ld2xpYiIKLQlfYXJncys9 IiAtLWRpc2FibGUtbGlic3NwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLWxpYnF1YWRtYXRoIgotCV9hcmdzKz0iIC0tZGlzYWJsZS10aHJlYWRzIgotCV9h cmdzKz0iIC0tZGlzYWJsZS1kZWNpbWFsLWZsb2F0IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zaGFy ZWQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm1weCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGli bXVkZmxhcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliZ29tcCIKLQlfYXJncys9IiAtLWRpc2Fi bGUtbGliYXRvbWljIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zeW12ZXJzIgotCV9hcmdzKz0iIGxp YmF0X2N2X2hhdmVfaWZ1bmM9bm8iCi0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9IgotCi0JQ0ZMQUdT PSItTzAgLWcwIiBDWFhGTEFHUz0iLU8wIC1nMCIgXAotCQkuLi9nY2MtJHtfZ2NjX3ZlcnNpb259 L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAke21ha2Vqb2JzfQotCW1ha2UgaW5zdGFsbAot Ci0JdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUKLX0KLQotX2xpbnV4X2hlYWRl cnMoKSB7Ci0JWyAtZiAke3dya3NyY30vLmxpbnV4X2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAot Ci0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgTGludXggQVBJIGhlYWRlcnMg Zm9yIEFSTVxuIgotCi0JY2QgbGludXgtJHtfbGludXhfdmVyc2lvbn0KLQotCWZvciBmIGluICR7 WEJQU19TUkNQS0dESVJ9L2tlcm5lbC1saWJjLWhlYWRlcnMvcGF0Y2hlcy8qLnBhdGNoOyBkbwot CQlfYXBwbHlfcGF0Y2ggLXAwICRmCi0JZG9uZQotCi0JbWFrZSBBUkNIPWFybSBoZWFkZXJzX2No ZWNrCi0JbWFrZSBBUkNIPWFybSBJTlNUQUxMX0hEUl9QQVRIPSR7X3N5c3Jvb3R9L3VzciBoZWFk ZXJzX2luc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8ubGludXhfYnVpbGRfZG9uZQotfQotCi1f bXVzbF9idWlsZCgpIHsKLQlbIC1mICR7d3Jrc3JjfS8ubXVzbF9idWlsZF9kb25lIF0gJiYgcmV0 dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9tdXNsLSR7X211c2xfdmVyc2lvbn0KLQltc2dfbm9ybWFs ICJCdWlsZGluZyBjcm9zcyBtdXNsIGxpYmNcbiIKLQotCSMgQXBwbHkgbXVzbCBwYXRjaGVzIGlm IHRoZXJlIGFyZSBhbnkKLQlpZiBbIC1kICIke1hCUFNfU1JDUEtHRElSfS9tdXNsL3BhdGNoZXMi IF07IHRoZW4KLQkJZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vbXVzbC9wYXRjaGVzLyoucGF0 Y2g7IGRvCi0JCQlfYXBwbHlfcGF0Y2ggLXAwICIkZiIKLQkJZG9uZQotCWZpCi0KLQlDQz0iJHtf dHJpcGxldH0tZ2NjIiBDRkxBR1M9Ii1PcyAtcGlwZSAtZlBJQyAke19hcmNoZmxhZ3N9IiBcCi0J CS4vY29uZmlndXJlIC0tcHJlZml4PS91c3IKLQotCW1ha2UgJHttYWtlam9ic30KLQltYWtlIERF U1RESVI9JHtfc3lzcm9vdH0gaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5tdXNsX2J1aWxk X2RvbmUKLX0KLQotX2xpYnVjb250ZXh0X2J1aWxkKCkgewotCVsgLWYgJHt3cmtzcmN9Ly5saWJ1 Y29udGV4dF9idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9saWJ1Y29u dGV4dC0ke19saWJ1Y29udGV4dF92ZXJzaW9ufQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3Nz IGxpYnVjb250ZXh0XG4iCi0KLQkjIGl0J3Mgb2sgaWYgd2UncmUgc3RhdGljIG9ubHkgaGVyZQot CUNDPSIke190cmlwbGV0fS1nY2MiIEFSPSIke190cmlwbGV0fS1hciIgQVM9IiR7X3RyaXBsZXR9 LWFzIiBcCi0JCUNGTEFHUz0iLU9zIC1waXBlICR7X2FyY2hmbGFnc30iIFwKLQkJbWFrZSBBUkNI PWFybSBsaWJ1Y29udGV4dC5hCi0KLQljcCBsaWJ1Y29udGV4dC5hICR7X3N5c3Jvb3R9L3Vzci9s aWIKLQotCXRvdWNoICR7d3Jrc3JjfS8ubGlidWNvbnRleHRfYnVpbGRfZG9uZQotfQotCi1fZ2Nj X2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2Rv bmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcg Y3Jvc3MgZ2NjIGZpbmFsXG4iCi0KLQlbICEgLWQgZ2NjLWJ1aWxkIF0gJiYgbWtkaXIgZ2NjLWJ1 aWxkCi0JY2QgZ2NjLWJ1aWxkCi0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAt LWxpYmV4ZWNkaXI9L3Vzci9saWIiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0J X2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1lbmFibGUt bGFuZ3VhZ2VzPWMsYWRhLGMrKyxvYmpjLG9iai1jKyssZ28sZm9ydHJhbixsdG8iCi0JX2FyZ3Mr PSIgLS1lbmFibGUtbGliYWRhIgotCV9hcmdzKz0iIC0tZW5hYmxlLWx0byIKLQlfYXJncys9IiAt LWVuYWJsZS1kZWZhdWx0LXBpZSIKLQlfYXJncys9IiAtLWVuYWJsZS1kZWZhdWx0LXNzcCIKLQlf YXJncys9IiAtLWVuYWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNhbml0aXpl ciIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5s cyIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlicXVhZG1hdGgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LWxpYm1weCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXVkZmxhcCIKLQlfYXJncys9IiAtLWVu YWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXN5bXZlcnMiCi0JX2FyZ3MrPSIgbGli YXRfY3ZfaGF2ZV9pZnVuYz1ubyIKLQlfYXJncys9IiAke19mcHVmbGFnc30iCi0KLQkuLi9nY2Mt JHtfZ2NjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAke21ha2Vqb2JzfQot Ci0JdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYnVpbGRfZG9uZQotfQotCi1kb19idWlsZCgpIHsKLQkj IEVuc3VyZSB3ZSB1c2Ugc2FuZSBlbnZpcm9ubWVudAotCXVuc2V0IENDIENYWCBDUFAgTEQgQVMg QVIgUkFOTElCIE9CSkRVTVAgUkVBREVMRiBOTQotCXVuc2V0IENGTEFHUyBDWFhGTEFHUyBDUFBG TEFHUyBMREZMQUdTCi0JZXhwb3J0IENGTEFHUz0iLU9zIC1waXBlIiBDWFhGTEFHUz0iLU9zIC1w aXBlIgotCi0JZm9yIGYgaW4gaW5jbHVkZSBsaWIgbGliZXhlYyBiaW4gc2JpbjsgZG8KLQkJaWYg WyAhIC1kICR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4KLQkJCW1rZGlyIC1wICR7X3N5c3Jv b3R9L3Vzci8ke2Z9Ci0JCWZpCi0JCWlmIFsgISAtaCAke19zeXNyb290fS8ke2Z9IF07IHRoZW4K LQkJCWxuIC1zZnIgJHtfc3lzcm9vdH0vdXNyLyR7Zn0gJHtfc3lzcm9vdH0vJHtmfQotCQlmaQot CWRvbmUKLQlsbiAtc2YgbGliICR7X3N5c3Jvb3R9L3Vzci9saWIzMgotCWxuIC1zZiB1c3IvbGli ICR7X3N5c3Jvb3R9L2xpYjMyCi0KLQlfYmludXRpbHNfYnVpbGQKLQlfZ2NjX2Jvb3RzdHJhcAot CV9saW51eF9oZWFkZXJzCi0JX211c2xfYnVpbGQKLQlfbGlidWNvbnRleHRfYnVpbGQKLQlfZ2Nj X2J1aWxkCi19Ci0KLWRvX2luc3RhbGwoKSB7Ci0JZm9yIGYgaW4gaW5jbHVkZSBsaWIgbGliZXhl YyBiaW4gc2JpbjsgZG8KLQkJaWYgWyAhIC1kICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7 Zn0gXTsgdGhlbgotCQkJbWtkaXIgLXAgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfQot CQlmaQotCQlpZiBbICEgLWggJHtERVNURElSfS8ke19zeXNyb290fS8ke2Z9IF07IHRoZW4KLQkJ CWxuIC1zZnIgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfSBcCi0JCQkJJHtERVNURElS fS8ke19zeXNyb290fS8ke2Z9Ci0JCWZpCi0JZG9uZQotCWxuIC1zZiBsaWIgJHtERVNURElSfS8k e19zeXNyb290fS91c3IvbGliMzIKLQlsbiAtc2YgdXNyL2xpYiAke0RFU1RESVJ9LyR7X3N5c3Jv b3R9L2xpYjMyCi0KLQkjIGluc3RhbGwgbGludXggQVBJIGhlYWRlcnMKLQljZCAke3dya3NyY30v bGludXgtJHtfbGludXhfdmVyc2lvbn0KLQltYWtlIEFSQ0g9YXJtIElOU1RBTExfSERSX1BBVEg9 JHtERVNURElSfS8ke19zeXNyb290fS91c3IgaGVhZGVyc19pbnN0YWxsCi0Jcm0gLWYgJChmaW5k ICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUgLW5hbWUgLmluc3RhbGwgLW9yIC1u YW1lIC4uaW5zdGFsbC5jbWQpCi0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2lu Y2x1ZGUvZHJtCi0KLQkjIGluc3RhbGwgY3Jvc3MgYmludXRpbHMKLQljZCAke3dya3NyY30vYmlu dXRpbHMtYnVpbGQKLQltYWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0KLQkjIGluc3Rh bGwgY3Jvc3MgZ2NjCi0JY2QgJHt3cmtzcmN9L2djYy1idWlsZAotCW1ha2UgREVTVERJUj0ke0RF U1RESVJ9IGluc3RhbGwKLQotCSMgbW92ZSBsaWJjYzEuc28qIHRvIHRoZSBzeXNyb290Ci0JbXYg JHtERVNURElSfS91c3IvbGliL2xpYmNjMS5zbyogJHtERVNURElSfS8ke19zeXNyb290fS91c3Iv bGliCi0KLQkjIGluc3RhbGwgbXVzbCBsaWJjIGZvciB0YXJnZXQKLQljZCAke3dya3NyY30vbXVz bC0ke19tdXNsX3ZlcnNpb259Ci0JbWFrZSBERVNURElSPSR7REVTVERJUn0vJHtfc3lzcm9vdH0g aW5zdGFsbAotCi0JIyBSZW1vdmUgdXNlbGVzcyBoZWFkZXJzLgotCXJtIC1yZiAke0RFU1RESVJ9 L3Vzci9saWIvZ2NjLyR7X3RyaXBsZXR9LyovaW5jbHVkZS1maXhlZC8KLQotCSMgTWFrZSBsZC1t dXNsLWFybWhmLnNvLjEgc3ltbGluayByZWxhdGl2ZS4KLQlsbiAtc2YgbGliYy5zbyAke0RFU1RE SVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIvbGQtbXVzbC1hcm1oZi5zby4xCi0KLQkjIHN5bWxpbmtz IGZvciBnbmFybCBhbmQgZ25hdCBzaGFyZWQgbGlicmFyaWVzCi0JX21ham9ydmVyPSR7X2djY192 ZXJzaW9uJS4qLip9Ci0JX2FkYWxpYj11c3IvbGliL2djYy8ke190cmlwbGV0fS8ke19nY2NfdmVy c2lvbn0vYWRhbGliCi0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXJsLSR7X21h am9ydmVyfS5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQltdiAtdiAke0RFU1RE SVJ9LyR7X2FkYWxpYn0vbGliZ25hdC0ke19tYWpvcnZlcn0uc28gJHtERVNURElSfS8ke19zeXNy b290fS91c3IvbGliCi0JbG4gLXN2ZiBsaWJnbmFybC0ke19tYWpvcnZlcn0uc28gbGliZ25hcmwu c28KLQlsbiAtc3ZmIGxpYmduYXQtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXQuc28KLQlybSAtdmYg JHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXtybCx0fS5zbwotCi0JIyBXZSBuZWVkIHRvIGJ1 aWxkIGxpYmF0b21pYyBpbiB0YXJnZXQgZ2NjIGFzIGdjY2dvIG5lZWRzIGl0IHRvCi0JIyBidWls ZC4uLiBidXQgaXQncyBub3QgbmVlZGVkIGF0IHJ1bnRpbWUsIHNvIHJlbW92ZSBpdCBmcm9tIHRo ZQotCSMgZGVzdGRpciBzbyBpdCBkb2Vzbid0IGNvbmZsaWN0IHdpdGggdGhlIGxpYmF0b21pYyBw YWNrYWdlCi0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliL2xpYmF0b21pYy4q Ci0KLQkjIFJlbW92ZSB1bm5lY2Vzc2FyeSBzdHVmZgotCXJtIC1mICR7REVTVERJUn0vdXNyL2xp YiovbGliaWJlcnR5LmEKLQlybSAtcmYgJHtERVNURElSfS91c3Ivc2hhcmUKLQlybSAtcmYgJHtE RVNURElSfS8ke19zeXNyb290fS97ZXRjLHZhcn0KLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNy b290fS91c3Ive3NiaW4sc2hhcmUsbGliZXhlY30KLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jv b3R9L2xpYmV4ZWMKLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYi8qLnB5Ci0Jcm0g LWYgJHtERVNURElSfS8ke19zeXNyb290fS97c2JpbixsaWJ9Ci19Ci0KIGNyb3NzLWFybXY3bC1s aW51eC1tdXNsZWFiaWhmLWxpYmNfcGFja2FnZSgpIHsKIAlzaG9ydF9kZXNjKz0iIC0gbGliYyBm aWxlcyIKIAlub3N0cmlwPXllcwogCW5vc2hsaWJwcm92aWRlcz15ZXMKIAlub3ZlcmlmeXJkZXBz PXllcwotCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAke19zeXNyb290fQogCisJcGtnX2luc3Rh bGwoKSB7CisJCXZtb3ZlIHVzci8ke2Nyb3NzX3RyaXBsZXR9CiAJfQogfQoKRnJvbSBmNmU2Mzll ODkzYTk1MTc5YWMxNWQ4MTljNDM5ZmYxMTJjZjdiYTdhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBxNjYgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBGcmksIDI1IERlYyAyMDIw IDIyOjUxOjAxICswMTAwClN1YmplY3Q6IFtQQVRDSCAxMS8xNl0gY3Jvc3MtaTY4Ni1wYy1saW51 eC1nbnU6IHJld29yayB3aXRoIHZvaWQtY3Jvc3MKCi0tLQogc3JjcGtncy9jcm9zcy1pNjg2LXBj LWxpbnV4LWdudS90ZW1wbGF0ZSB8IDM2NiArKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxl IGNoYW5nZWQsIDI0IGluc2VydGlvbnMoKyksIDM0MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmNwa2dzL2Nyb3NzLWk2ODYtcGMtbGludXgtZ251L3RlbXBsYXRlIGIvc3JjcGtncy9jcm9z cy1pNjg2LXBjLWxpbnV4LWdudS90ZW1wbGF0ZQppbmRleCAwNTZkMjU1MzA0MC4uMjk5NjM3ZGQ3 NjcgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY3Jvc3MtaTY4Ni1wYy1saW51eC1nbnUvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9jcm9zcy1pNjg2LXBjLWxpbnV4LWdudS90ZW1wbGF0ZQpAQCAtMSwyMSAr MSwyMCBAQAotIyBUZW1wbGF0ZSBidWlsZCBmaWxlIGZvciAnY3Jvc3MtaTY4Ni1wYy1saW51eC1n bnUnCi0jCisjIFRlbXBsYXRlIGZpbGUgZm9yICdjcm9zcy1pNjg2LXBjLWxpbnV4LWdudScKK190 cmlwbGV0PWk2ODYtcGMtbGludXgtZ251CiBfYmludXRpbHNfdmVyc2lvbj0yLjMyCiBfZ2NjX3Zl cnNpb249OS4zLjAKIF9nbGliY192ZXJzaW9uPTIuMzAKIF9saW51eF92ZXJzaW9uPTQuMTkKLQot X3RyaXBsZXQ9aTY4Ni1wYy1saW51eC1nbnUKLV9hcmNoZmxhZ3M9Ii1tYXJjaD1pNjg2IC1tdHVu ZT1nZW5lcmljIgotX3N5c3Jvb3Q9Ii91c3IvJHtfdHJpcGxldH0iCi0KIHBrZ25hbWU9Y3Jvc3Mt JHtfdHJpcGxldH0KIHZlcnNpb249MC4zMwogcmV2aXNpb249NAotc2hvcnRfZGVzYz0iR05VIENy b3NzIHRvb2xjaGFpbiBmb3IgdGhlICR7X3RyaXBsZXR9IHRhcmdldCAoYmludXRpbHMvZ2NjL2ds aWJjKSIKK2J1aWxkX3N0eWxlPXZvaWQtY3Jvc3MKK2hvc3RtYWtlZGVwZW5kcz0idGFyIGdjYy1v YmpjIGdjYy1nbyBmbGV4IHBlcmwgcHl0aG9uMyIKK21ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBs aWJtcGMtZGV2ZWwgemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbCIKK2RlcGVuZHM9IiR7 cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259Igorc2hvcnRfZGVzYz0iVm9pZCBj cm9zcyB0b29sY2hhaW4gZm9yICR7X3RyaXBsZXR9IgogbWFpbnRhaW5lcj0iSsO8cmdlbiBCdWNo bcO8bGxlciA8cHVsbG1vbGxAdC1vbmxpbmUuZGU+IgotaG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZv aWRsaW51eC5vcmcvIgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR1BMLTMuMC1vci1sYXRl ciwgTEdQTC0yLjEtb3ItbGF0ZXIiCitob21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9y Zy8iCiBkaXN0ZmlsZXM9IgogICR7R05VX1NJVEV9L2JpbnV0aWxzL2JpbnV0aWxzLSR7X2JpbnV0 aWxzX3ZlcnNpb259LnRhci54egogICR7R05VX1NJVEV9L2djYy9nY2MtJHtfZ2NjX3ZlcnNpb259 L2djYy0ke19nY2NfdmVyc2lvbn0udGFyLnh6CkBAIC0yNiwzNDMgKzI1LDI1IEBAIGNoZWNrc3Vt PSIwYWI2YzU1ZGQ4NmE5MmVkNTYxOTcyYmExNWI5YjcwYThiOWY3NTU1N2Y4OTY0NDZjODJlOGIz NmU0NzNlZTA0CiAgZTJjNDExNGU1NjlhZmJlN2VkYmMyOTEzMWE0M2JlODMzODUwYWI5YTQ1OWQ4 MWJlYjI1ODgwMTZkMmJiYjhhZgogIDBjNjhmNTY1NTUyOGFlZDRmOTlkYWU3MWE1YjI1OWVkYzkz MjM5ZmE4OTllMmRmNzljMDU1Mjc1YzIxNzQ5YTEiCiAKLW5vY3Jvc3M9eWVzCi1ub3BpZT15ZXMK LW5vZGVidWc9eWVzCi1saWIzMmRpc2FibGVkPXllcwotY3JlYXRlX3dya3NyYz15ZXMKLWhvc3Rt YWtlZGVwZW5kcz0idGFyIGdjYy1vYmpjIGdjYy1nbyBmbGV4IHBlcmwgcHl0aG9uMyIKLW1ha2Vk ZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgemxpYi1kZXZlbCIKLWRlcGVuZHM9IiR7 cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259Igotbm9zdHJpcF9maWxlcz0ibGli Y2FmX3NpbmdsZS5hIGxpYmdjYy5hIGxpYmdjb3YuYSBsaWJnY2NfZWguYQotIGxpYmduYXJsX3Bp Yy5hIGxpYmduYXJsLmEgbGliZ25hdF9waWMuYSBsaWJnbmF0LmEgbGliZ21lbS5hIgotCi1pZiBb ICIkWEJQU19UQVJHRVRfTElCQyIgIT0gImdsaWJjIiBdOyB0aGVuCi0JYnJva2VuPSJnbGliYyBj cm9zc3Rvb2xjaGFpbiBvbmx5IGF2YWlsYWJsZSBvbiBnbGliYyIKLWZpCitjcm9zc190cmlwbGV0 PSR7X3RyaXBsZXR9Citjcm9zc193b3Jkc2l6ZT0zMgorY3Jvc3NfbGliYz1nbGliYworY3Jvc3Nf YmludXRpbHNfdmVyc2lvbj0ke19iaW51dGlsc192ZXJzaW9ufQorY3Jvc3NfZ2NjX3ZlcnNpb249 JHtfZ2NjX3ZlcnNpb259Citjcm9zc19nbGliY192ZXJzaW9uPSR7X2dsaWJjX3ZlcnNpb259Citj cm9zc19saW51eF92ZXJzaW9uPSR7X2xpbnV4X3ZlcnNpb259Citjcm9zc19saW51eF9hcmNoPXg4 NgorIyBleHBsaWNpdGx5IGVuYWJsZSBmb3IgZmluYWwgZ2NjLCBhcyBnZm9ydHJhbiBkb2VzIG5v dCBidWlsZCB3aXRob3V0IG9uIHg4NgorY3Jvc3NfZ2NjX2NvbmZpZ3VyZV9hcmdzPSItLWVuYWJs ZS1saWJxdWFkbWF0aCIKK2Nyb3NzX2dsaWJjX2NmbGFncz0iLU8yIC1Xbm8tZXJyb3IgLW1hcmNo 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 LWYgJHtERVNURElSfS8ke19zeXNyb290fS9saWJleGVjCitwb3N0X2luc3RhbGwoKSB7CisJIyBw cmV2ZW50IGNvbmZsaWN0IHdpdGggaW5zdGFsbGFibGUgbGlicXVhZG1hdGggaW4gdGhlIHBhY2th Z2VzCisJcm0gLXJmICR7REVTVERJUn0vdXNyLyR7Y3Jvc3NfdHJpcGxldH0vdXNyL2xpYi9saWJx dWFkbWF0aC4qCiB9CiAKIGNyb3NzLWk2ODYtcGMtbGludXgtZ251LWxpYmNfcGFja2FnZSgpIHsK QEAgLTM3MCw3ICs1MSw4IEBAIGNyb3NzLWk2ODYtcGMtbGludXgtZ251LWxpYmNfcGFja2FnZSgp IHsKIAlub3N0cmlwPXllcwogCW5vdmVyaWZ5cmRlcHM9eWVzCiAJbm9zaGxpYnByb3ZpZGVzPXll cworCiAJcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlICR7X3N5c3Jvb3R9CisJCXZtb3ZlIHVzci8k e2Nyb3NzX3RyaXBsZXR9CiAJfQogfQoKRnJvbSA4M2MzNWY3MWFiZWUwODVmNjk3MjM2ZDI3ZWE0 NjA4MTMyNjlmNTZhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBxNjYgPGRhbmllbEBv Y3RhZm9yZ2Uub3JnPgpEYXRlOiBGcmksIDI1IERlYyAyMDIwIDIyOjU3OjQxICswMTAwClN1Ympl Y3Q6IFtQQVRDSCAxMi8xNl0gY3Jvc3MtaTY4Ni1saW51eC1tdXNsOiByZXdvcmsgd2l0aCB2b2lk LWNyb3NzCgotLS0KIHNyY3BrZ3MvY3Jvc3MtaTY4Ni1saW51eC1tdXNsL3RlbXBsYXRlIHwgMzE4 ICsrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAyOCBpbnNlcnRpb25z KCspLCAyOTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jcm9zcy1pNjg2LWxp bnV4LW11c2wvdGVtcGxhdGUgYi9zcmNwa2dzL2Nyb3NzLWk2ODYtbGludXgtbXVzbC90ZW1wbGF0 ZQppbmRleCA4ZDA5ZTRjN2UwNS4uZmE0MTc3ZmQ3YjEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY3Jv c3MtaTY4Ni1saW51eC1tdXNsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY3Jvc3MtaTY4Ni1saW51 eC1tdXNsL3RlbXBsYXRlCkBAIC0xLDE5ICsxLDE4IEBACi0jIFRlbXBsYXRlIGJ1aWxkIGZpbGUg Zm9yICdjcm9zcy1pNjg2LWxpbnV4LW11c2wnCi0jCisjIFRlbXBsYXRlIGZpbGUgZm9yICdjcm9z cy1pNjg2LWxpbnV4LW11c2wnCitfdHJpcGxldD1pNjg2LWxpbnV4LW11c2wKIF9iaW51dGlsc192 ZXJzaW9uPTIuMzIKIF9nY2NfdmVyc2lvbj05LjMuMAogX211c2xfdmVyc2lvbj0xLjEuMjQKIF9s aW51eF92ZXJzaW9uPTQuMTkKIF9saWJ1Y29udGV4dF92ZXJzaW9uPTAuOS4wCi0KLV90cmlwbGV0 PWk2ODYtbGludXgtbXVzbAotX3N5c3Jvb3Q9Ii91c3IvJHtfdHJpcGxldH0iCi1fYXJjaGZsYWdz PSItbWFyY2g9aTY4NiIKLQogcGtnbmFtZT1jcm9zcy0ke190cmlwbGV0fQogdmVyc2lvbj0wLjMz CiByZXZpc2lvbj0zCi1zaG9ydF9kZXNjPSJDcm9zcyB0b29sY2hhaW4gZm9yIGk2ODYgdGFyZ2V0 IChtdXNsKSIKK2J1aWxkX3N0eWxlPXZvaWQtY3Jvc3MKK2hvc3RtYWtlZGVwZW5kcz0idGFyIGdj Yy1vYmpjIGdjYy1nbyBmbGV4IHBlcmwgcHl0aG9uMyIKK21ha2VkZXBlbmRzPSJpc2wxNS1kZXZl bCBsaWJtcGMtZGV2ZWwgemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbCIKK2RlcGVuZHM9 IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259Igorc2hvcnRfZGVzYz0iVm9p ZCBjcm9zcyB0b29sY2hhaW4gZm9yICR7X3RyaXBsZXR9IgogbWFpbnRhaW5lcj0iSsO8cmdlbiBC dWNobcO8bGxlciA8cHVsbG1vbGxAdC1vbmxpbmUuZGU+IgogaG9tZXBhZ2U9Imh0dHBzOi8vd3d3 LnZvaWRsaW51eC5vcmcvIgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR1BMLTMuMC1vci1s YXRlciwgTUlUIgpAQCAtMjksMjk0ICsyOCwzMiBAQCBjaGVja3N1bT0iMGFiNmM1NWRkODZhOTJl ZDU2MTk3MmJhMTViOWI3MGE4YjlmNzU1NTdmODk2NDQ2YzgyZThiMzZlNDczZWUwNAogIDBjNjhm NTY1NTUyOGFlZDRmOTlkYWU3MWE1YjI1OWVkYzkzMjM5ZmE4OTllMmRmNzljMDU1Mjc1YzIxNzQ5 YTEKICAwZDUzYTQxNWEzMDdlZjE3NTE1M2JiZTYwYTU3MmM5NDBhOTIyY2I3MzZjZTEzNTMwYjY2 NmU3ZWMyNzk1ZDY4IgogCi1saWIzMmRpc2FibGVkPXllcwotbm9jcm9zcz15ZXMKLW5vcGllPXll cwotbm9kZWJ1Zz15ZXMKLWNyZWF0ZV93cmtzcmM9eWVzCi1ob3N0bWFrZWRlcGVuZHM9InRhciBn Y2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5dGhvbjMiCi1tYWtlZGVwZW5kcz0iemxpYi1kZXZl bCBnbXAtZGV2ZWwgbXBmci1kZXZlbCBsaWJtcGMtZGV2ZWwgaXNsMTUtZGV2ZWwiCi1ub3N0cmlw X2ZpbGVzPSJsaWJjYWZfc2luZ2xlLmEgbGliZ2NjLmEgbGliZ2Nvdi5hIGxpYmdjY19laC5hCi0g bGliZ25hcmxfcGljLmEgbGliZ25hcmwuYSBsaWJnbmF0X3BpYy5hIGxpYmduYXQuYSBsaWJnbWVt LmEiCi1kZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKK2Ny b3NzX3RyaXBsZXQ9JHtfdHJpcGxldH0KK2Nyb3NzX3dvcmRzaXplPTMyCitjcm9zc19saWJjPW11 c2wKK2Nyb3NzX2JpbnV0aWxzX3ZlcnNpb249JHtfYmludXRpbHNfdmVyc2lvbn0KK2Nyb3NzX2dj Y192ZXJzaW9uPSR7X2djY192ZXJzaW9ufQorY3Jvc3NfbXVzbF92ZXJzaW9uPSR7X211c2xfdmVy c2lvbn0KK2Nyb3NzX2xpbnV4X3ZlcnNpb249JHtfbGludXhfdmVyc2lvbn0KK2Nyb3NzX2xpYnVj b250ZXh0X3ZlcnNpb249JHtfbGlidWNvbnRleHRfdmVyc2lvbn0KK2Nyb3NzX2xpYnVjb250ZXh0 X2FyY2g9eDg2Citjcm9zc19saW51eF9hcmNoPXg4NgorIyBleHBsaWNpdGx5IGVuYWJsZSBmb3Ig ZmluYWwgZ2NjLCBhcyBnZm9ydHJhbiBkb2VzIG5vdCBidWlsZCB3aXRob3V0IG9uIHg4NgorY3Jv c3NfZ2NjX2NvbmZpZ3VyZV9hcmdzPSItLWVuYWJsZS1saWJxdWFkbWF0aCIKK2Nyb3NzX211c2xf Y2ZsYWdzPSItTzIgLW1hcmNoPWk2ODYgLW10dW5lPWdlbmVyaWMiCiAKIGlmIFsgIiRYQlBTX1RB UkdFVF9NQUNISU5FIiA9ICJpNjg2LW11c2wiIF07IHRoZW4KIAlicm9rZW49IkNhbid0IGJ1aWxk IGNyb3NzdG9vbGNoYWluIHRvIGl0c2VsZiIKIGZpCiAKLV9hcHBseV9wYXRjaCgpIHsKLQlsb2Nh bCBhcmdzPSIkMSIgcG5hbWU9IiQoYmFzZW5hbWUgJDIpIgotCi0JaWYgWyAhIC1mICIuJHtwbmFt ZX1fZG9uZSIgXTsgdGhlbgotCQlwYXRjaCAtTiAkYXJncyAtaSAkMgotCQl0b3VjaCAuJHtwbmFt ZX1fZG9uZQotCWZpCi19Ci0KLV9iaW51dGlsc19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0J WyAtZiAke3dya3NyY30vLmJpbnV0aWxzX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2Qg JHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgYmludXRpbHMgYm9vdHN0cmFw XG4iCi0KLQlbICEgLWQgYmludXRpbHMtYnVpbGQgXSAmJiBta2RpciBiaW51dGlscy1idWlsZAot CWNkIGJpbnV0aWxzLWJ1aWxkCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10 YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0i Ci0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIi Ci0JX2FyZ3MrPSIgLS1kaXNhYmxlLXdlcnJvciIKLQlfYXJncys9IiAtLWRpc2FibGUtc2hhcmVk IgotCV9hcmdzKz0iIC0td2l0aC1zeXN0ZW0temxpYiIKLQlfYXJncys9IiAke19mcHVmbGFnc30i Ci0KLQkuLi9iaW51dGlscy0ke19iaW51dGlsc192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30K LQotCW1ha2UgY29uZmlndXJlLWhvc3QKLQltYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxs Ci0KLQl0b3VjaCAke3dya3NyY30vLmJpbnV0aWxzX2J1aWxkX2RvbmUKLX0KLQotX2djY19ib290 c3RyYXAoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFw X2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L2djYy0ke19nY2NfdmVyc2lvbn0K LQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9nY2MvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQlf YXBwbHlfcGF0Y2ggLXAwICIkZiIKLQlkb25lCi0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0v Z2NjL2ZpbGVzLyotbXVzbC5wYXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMSAiJGYiCi0JZG9u ZQotCi0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2NjIGJvb3RzdHJhcFxuIgotCi0JWyAh IC1kIC4uL2djYy1ib290c3RyYXAgXSAmJiBta2RpciAuLi9nY2MtYm9vdHN0cmFwCi0JY2QgLi4v Z2NjLWJvb3RzdHJhcAotCi0JX2FyZ3M9Ii0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0i IC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tcHJlZml4PS91c3IiCi0J X2FyZ3MrPSIgLS1lbmFibGUtbGFuZ3VhZ2VzPWMiCi0JX2FyZ3MrPSIgLS13aXRoLW5ld2xpYiIK LQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzc3AiCi0J X2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnF1YWRtYXRoIgotCV9hcmdzKz0iIC0tZGlzYWJsZS10aHJl YWRzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1kZWNpbWFsLWZsb2F0IgotCV9hcmdzKz0iIC0tZGlz YWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm1weCIKLQlfYXJncys9IiAtLWRp c2FibGUtbGlibXVkZmxhcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliZ29tcCIKLQlfYXJncys9 IiAtLWRpc2FibGUtbGliYXRvbWljIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zeW12ZXJzIgotCV9h cmdzKz0iIGxpYmF0X2N2X2hhdmVfaWZ1bmM9bm8iCi0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9Igot CUNGTEFHUz0iLU8wIC1nMCIgQ1hYRkxBR1M9Ii1PMCAtZzAiIFwKLQkJLi4vZ2NjLSR7X2djY192 ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQltYWtlIGlu c3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJhcF9kb25lCitwb3N0X3BhdGNo KCkgeworCXZzZWQgLWkgbGlidWNvbnRleHQtJHtfbGlidWNvbnRleHRfdmVyc2lvbn0vYXJjaC94 ODYvc3RhcnRjb250ZXh0LlMgXAorCQktZSBcICJzO19faTY4Ni5nZXRfcGNfdGh1bmsuYng7aTY4 Nl9nZXRfcGNfdGh1bmtfYng7ZyIKIH0KIAotX2xpbnV4X2hlYWRlcnMoKSB7Ci0JWyAtZiAke3dy a3NyY30vLmxpbnV4X2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0J bXNnX25vcm1hbCAiQnVpbGRpbmcgTGludXggQVBJIGhlYWRlcnNcbiIKLQotCWNkIGxpbnV4LSR7 X2xpbnV4X3ZlcnNpb259Ci0KLQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9rZXJuZWwtbGli Yy1oZWFkZXJzL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMCAkZgotCWRv bmUKLQotCW1ha2UgQVJDSD14ODYgaGVhZGVyc19jaGVjawotCW1ha2UgQVJDSD14ODYgSU5TVEFM TF9IRFJfUEFUSD0ke19zeXNyb290fS91c3IgaGVhZGVyc19pbnN0YWxsCi0KLQl0b3VjaCAke3dy a3NyY30vLmxpbnV4X2J1aWxkX2RvbmUKLX0KLQotX211c2xfYnVpbGQoKSB7Ci0JWyAtZiAke3dy a3NyY30vLm11c2xfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30vbXVz bC0ke19tdXNsX3ZlcnNpb259Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgbXVzbCBsaWJj XG4iCi0KLQkjIEFwcGx5IG11c2wgcGF0Y2hlcyBpZiB0aGVyZSBhcmUgYW55Ci0JaWYgWyAtZCAi JHtYQlBTX1NSQ1BLR0RJUn0vbXVzbC9wYXRjaGVzIiBdOyB0aGVuCi0JCWZvciBmIGluICR7WEJQ U19TUkNQS0dESVJ9L211c2wvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQkJX2FwcGx5X3BhdGNoIC1w MCAiJGYiCi0JCWRvbmUKLQlmaQotCi0JQ0M9IiR7X3RyaXBsZXR9LWdjYyIgQ0ZMQUdTPSItT3Mg LXBpcGUgLWZQSUMgJHtfYXJjaGZsYWdzfSIgXAotCQkuL2NvbmZpZ3VyZSAtLXByZWZpeD0vdXNy Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBERVNURElSPSR7X3N5c3Jvb3R9IGluc3RhbGwK LQotCXRvdWNoICR7d3Jrc3JjfS8ubXVzbF9idWlsZF9kb25lCi19Ci0KLV9saWJ1Y29udGV4dF9i dWlsZCgpIHsKLQlbIC1mICR7d3Jrc3JjfS8ubGlidWNvbnRleHRfYnVpbGRfZG9uZSBdICYmIHJl dHVybiAwCi0KLQljZCAke3dya3NyY30vbGlidWNvbnRleHQtJHtfbGlidWNvbnRleHRfdmVyc2lv bn0KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBsaWJ1Y29udGV4dFxuIgotCi0JdnNlZCAt aSBhcmNoL3g4Ni9zdGFydGNvbnRleHQuUyAtZSBcCi0JICJzO19faTY4Ni5nZXRfcGNfdGh1bmsu Yng7aTY4Nl9nZXRfcGNfdGh1bmtfYng7ZyIKLQotCSMgaXQncyBvayBpZiB3ZSdyZSBzdGF0aWMg b25seSBoZXJlCi0JQ0M9IiR7X3RyaXBsZXR9LWdjYyIgQVI9IiR7X3RyaXBsZXR9LWFyIiBBUz0i JHtfdHJpcGxldH0tYXMiIFwKLQkJQ0ZMQUdTPSItT3MgLXBpcGUgJHtfYXJjaGZsYWdzfSIgXAot CQltYWtlIEFSQ0g9eDg2IGxpYnVjb250ZXh0LmEKLQotCWNwIGxpYnVjb250ZXh0LmEgJHtfc3lz cm9vdH0vdXNyL2xpYgotCi0JdG91Y2ggJHt3cmtzcmN9Ly5saWJ1Y29udGV4dF9idWlsZF9kb25l Ci19Ci0KLV9nY2NfYnVpbGQoKSB7Ci0JbG9jYWwgX2FyZ3MKLQlbIC1mICR7d3Jrc3JjfS8uZ2Nj X2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAi QnVpbGRpbmcgY3Jvc3MgZ2NjIGZpbmFsXG4iCi0KLQlbICEgLWQgZ2NjLWJ1aWxkIF0gJiYgbWtk aXIgZ2NjLWJ1aWxkCi0JY2QgZ2NjLWJ1aWxkCi0KLQlfYXJncz0iLS10YXJnZXQ9JHtfdHJpcGxl dH0iCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1w cmVmaXg9L3VzciIKLQlfYXJncys9IiAtLWxpYmV4ZWNkaXI9L3Vzci9saWIiCi0JX2FyZ3MrPSIg LS1lbmFibGUtbGFuZ3VhZ2VzPWMsYWRhLGMrKyxvYmpjLG9iai1jKyssZ28sZm9ydHJhbixsdG8i Ci0JX2FyZ3MrPSIgLS1lbmFibGUtbHRvIgotCV9hcmdzKz0iIC0tZW5hYmxlLWRlZmF1bHQtcGll IgotCV9hcmdzKz0iIC0tZW5hYmxlLWRlZmF1bHQtc3NwIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxp YnNzcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlic2FuaXRpemVyIgotCV9hcmdzKz0iIC0tZGlz YWJsZS1tdWx0aWxpYiIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXB4IgotCV9hcmdzKz0iIC0t ZGlzYWJsZS1saWJtdWRmbGFwIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpYmFkYSIKLQlfYXJncys9 IiAtLWVuYWJsZS1saWJxdWFkbWF0aCIKLQlfYXJncys9IiAtLWVuYWJsZS1zaGFyZWQiCi0JX2Fy Z3MrPSIgLS1kaXNhYmxlLXN5bXZlcnMiCi0JX2FyZ3MrPSIgbGliYXRfY3ZfaGF2ZV9pZnVuYz1u byIKLQlfYXJncys9IiAke19mcHVmbGFnc30iCi0KLQkuLi9nY2MtJHtfZ2NjX3ZlcnNpb259L2Nv bmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAke21ha2Vqb2JzfQotCi0JdG91Y2ggJHt3cmtzcmN9 Ly5nY2NfYnVpbGRfZG9uZQotfQotCi1kb19idWlsZCgpIHsKLQkjIEVuc3VyZSB3ZSB1c2Ugc2Fu ZSBlbnZpcm9ubWVudAotCXVuc2V0IENDIENYWCBDUFAgTEQgQVMgQVIgUkFOTElCIE9CSkRVTVAg UkVBREVMRiBOTQotCXVuc2V0IENGTEFHUyBDWFhGTEFHUyBDUFBGTEFHUyBMREZMQUdTCi0JZXhw b3J0IENGTEFHUz0iLU9zIC1waXBlIiBDWFhGTEFHUz0iLU9zIC1waXBlIgotCi0JZm9yIGYgaW4g aW5jbHVkZSBsaWIgbGliZXhlYyBiaW4gc2JpbjsgZG8KLQkJaWYgWyAhIC1kICR7X3N5c3Jvb3R9 L3Vzci8ke2Z9IF07IHRoZW4KLQkJCW1rZGlyIC1wICR7X3N5c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZp Ci0JCWlmIFsgISAtaCAke19zeXNyb290fS8ke2Z9IF07IHRoZW4KLQkJCWxuIC1zZnIgJHtfc3lz cm9vdH0vdXNyLyR7Zn0gJHtfc3lzcm9vdH0vJHtmfQotCQlmaQotCWRvbmUKLQlsbiAtc2YgbGli ICR7X3N5c3Jvb3R9L3Vzci9saWIzMgotCWxuIC1zZiB1c3IvbGliICR7X3N5c3Jvb3R9L2xpYjMy Ci0KLQlfYmludXRpbHNfYnVpbGQKLQlfZ2NjX2Jvb3RzdHJhcAotCV9saW51eF9oZWFkZXJzCi0J X211c2xfYnVpbGQKLQlfbGlidWNvbnRleHRfYnVpbGQKLQlfZ2NjX2J1aWxkCi19Ci0KLWRvX2lu c3RhbGwoKSB7Ci0JZm9yIGYgaW4gaW5jbHVkZSBsaWIgbGliZXhlYyBiaW4gc2JpbjsgZG8KLQkJ aWYgWyAhIC1kICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXTsgdGhlbgotCQkJbWtk aXIgLXAgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfQotCQlmaQotCQlpZiBbICEgLWgg JHtERVNURElSfS8ke19zeXNyb290fS8ke2Z9IF07IHRoZW4KLQkJCWxuIC1zZnIgJHtERVNURElS fS8ke19zeXNyb290fS91c3IvJHtmfSBcCi0JCQkJJHtERVNURElSfS8ke19zeXNyb290fS8ke2Z9 Ci0JCWZpCi0JZG9uZQotCWxuIC1zZiBsaWIgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGli MzIKLQlsbiAtc2YgdXNyL2xpYiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYjMyCi0KLQkjIGlu c3RhbGwgbGludXggQVBJIGhlYWRlcnMgZm9yIHg4NgotCWNkICR7d3Jrc3JjfS9saW51eC0ke19s aW51eF92ZXJzaW9ufQotCW1ha2UgQVJDSD14ODYgSU5TVEFMTF9IRFJfUEFUSD0ke0RFU1RESVJ9 LyR7X3N5c3Jvb3R9L3VzciBoZWFkZXJzX2luc3RhbGwKLQlybSAtZiAkKGZpbmQgJHtERVNURElS fS8ke19zeXNyb290fS91c3IvaW5jbHVkZSAtbmFtZSAuaW5zdGFsbCAtb3IgLW5hbWUgLi5pbnN0 YWxsLmNtZCkKLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvaW5jbHVkZS9kcm0K LQotCSMgaW5zdGFsbCBjcm9zcyBiaW51dGlscwotCWNkICR7d3Jrc3JjfS9iaW51dGlscy1idWls ZAotCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9IGluc3RhbGwKLQotCSMgaW5zdGFsbCBjcm9zcyBn Y2MKLQljZCAke3dya3NyY30vZ2NjLWJ1aWxkCi0JbWFrZSBERVNURElSPSR7REVTVERJUn0gaW5z dGFsbAotCi0JIyBtb3ZlIGxpYmNjMS5zbyogdG8gdGhlIHN5c3Jvb3QKLQltdiAke0RFU1RESVJ9 L3Vzci9saWIvbGliY2MxLnNvKiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQotCSMg aW5zdGFsbCBtdXNsIGxpYmMgZm9yIHRhcmdldAotCWNkICR7d3Jrc3JjfS9tdXNsLSR7X211c2xf dmVyc2lvbn0KLQltYWtlIERFU1RESVI9JHtERVNURElSfS8ke19zeXNyb290fSBpbnN0YWxsCi0K LQkjIFJlbW92ZSB1c2VsZXNzIGhlYWRlcnMuCi0Jcm0gLXJmICR7REVTVERJUn0vdXNyL2xpYi9n Y2MvJHtfdHJpcGxldH0vKi9pbmNsdWRlLWZpeGVkLwotCi0JIyBNYWtlIGxkLW11c2wtaTM4Ni5z by4xIHN5bWxpbmsgcmVsYXRpdmUgdG8gY3dkLgotCWNkICR7REVTVERJUn0vJHtfc3lzcm9vdH0v dXNyL2xpYgotCWxuIC1zZiBsaWJjLnNvIGxkLW11c2wtaTM4Ni5zby4xCi0KLQkjIE1vdmUgZmls ZXMgdG8gL3Vzci9saWIgKGxpYjY0KS4KLQlpZiBbIC1kICR7REVTVERJUn0vJHtfc3lzcm9vdH0v dXNyL2xpYjY0IF07IHRoZW4KLQkJbXYgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliNjQv KiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIvCi0JCXJtZGlyICR7REVTVERJUn0vJHtf c3lzcm9vdH0vdXNyL2xpYjY0Ci0JZmkKLQotCSMgc3ltbGlua3MgZm9yIGduYXJsIGFuZCBnbmF0 IHNoYXJlZCBsaWJyYXJpZXMKLQlfbWFqb3J2ZXI9JHtfZ2NjX3ZlcnNpb24lLiouKn0KLQlfYWRh bGliPXVzci9saWIvZ2NjLyR7X3RyaXBsZXR9LyR7X2djY192ZXJzaW9ufS9hZGFsaWIKLQltdiAt diAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGliZ25hcmwtJHtfbWFqb3J2ZXJ9LnNvICR7REVTVERJ Un0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCW12IC12ICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJn bmF0LSR7X21ham9ydmVyfS5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQlsbiAt c3ZmIGxpYmduYXJsLSR7X21ham9ydmVyfS5zbyBsaWJnbmFybC5zbwotCWxuIC1zdmYgbGliZ25h dC0ke19tYWpvcnZlcn0uc28gbGliZ25hdC5zbwotCXJtIC12ZiAke0RFU1RESVJ9LyR7X2FkYWxp Yn0vbGliZ25he3JsLHR9LnNvCi0KLQkjIFdlIG5lZWQgdG8gYnVpbGQgbGliYXRvbWljIGluIHRh cmdldCBnY2MgYXMgZ2NjZ28gbmVlZHMgaXQgdG8KLQkjIGJ1aWxkLi4uIGJ1dCBpdCdzIG5vdCBu ZWVkZWQgYXQgcnVudGltZSwgc28gcmVtb3ZlIGl0IGZyb20gdGhlCi0JIyBkZXN0ZGlyIHNvIGl0 IGRvZXNuJ3QgY29uZmxpY3Qgd2l0aCB0aGUgbGliYXRvbWljIHBhY2thZ2UKLQlybSAtZiAke0RF U1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIvbGliYXRvbWljLioKLQotCSMgUmVtb3ZlIHVubmVj ZXNzYXJ5IHN0dWZmCi0Jcm0gLWYgJHtERVNURElSfS91c3IvbGliKi9saWJpYmVydHkuYQotCXJt IC1yZiAke0RFU1RESVJ9L3Vzci9zaGFyZQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9 L3tldGMsdmFyfQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci97c2JpbixzaGFy ZSxsaWJleGVjfQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0vbGliZXhlYwotCXJtIC1m ICR7REVTVERJUn0vJHtfc3lzcm9vdH0vbGliLyoucHkKLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9L3tzYmluLGxpYn0KK3Bvc3RfaW5zdGFsbCgpIHsKKwkjIHByZXZlbnQgY29uZmxpY3Qg d2l0aCBpbnN0YWxsYWJsZSBsaWJxdWFkbWF0aCBpbiB0aGUgcGFja2FnZXMKKwlybSAtcmYgJHtE RVNURElSfS91c3IvJHtjcm9zc190cmlwbGV0fS91c3IvbGliL2xpYnF1YWRtYXRoLioKIH0KIAog Y3Jvc3MtaTY4Ni1saW51eC1tdXNsLWxpYmNfcGFja2FnZSgpIHsKQEAgLTMyNCw3ICs2MSw4IEBA IGNyb3NzLWk2ODYtbGludXgtbXVzbC1saWJjX3BhY2thZ2UoKSB7CiAJbm9zdHJpcD15ZXMKIAlu b3ZlcmlmeXJkZXBzPXllcwogCW5vc2hsaWJwcm92aWRlcz15ZXMKKwogCXBrZ19pbnN0YWxsKCkg ewotCQl2bW92ZSAke19zeXNyb290fQorCQl2bW92ZSB1c3IvJHtjcm9zc190cmlwbGV0fQogCX0K IH0KCkZyb20gMTk2YzYzMTZmNWJlZmUzYzMwNDkyMjhlNzRhYTlmN2Q4ZmNhZjkwZCBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogcTY2IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTog U2F0LCAyNiBEZWMgMjAyMCAwMDowOTo1NyArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTMvMTZdIGNy b3NzLW1pcHMtbGludXgtbXVzbDogcmVkbyB3aXRoIHZvaWQtY3Jvc3MKCi0tLQogc3JjcGtncy9j cm9zcy1taXBzLWxpbnV4LW11c2wvdGVtcGxhdGUgfCAyOTAgKystLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogMSBmaWxlIGNoYW5nZWQsIDIyIGluc2VydGlvbnMoKyksIDI2OCBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nyb3NzLW1pcHMtbGludXgtbXVzbC90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvY3Jvc3MtbWlwcy1saW51eC1tdXNsL3RlbXBsYXRlCmluZGV4IDE5ZjYwMGM5ZTVhLi5m N2ZiOTQxZDYzMyAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy1taXBzLWxpbnV4LW11c2wvdGVt cGxhdGUKKysrIGIvc3JjcGtncy9jcm9zcy1taXBzLWxpbnV4LW11c2wvdGVtcGxhdGUKQEAgLTEs Mjk2ICsxLDUwIEBACi0jIFRlbXBsYXRlIGJ1aWxkIGZpbGUgZm9yICdjcm9zcy1taXBzLWxpbnV4 LW11c2wnCi0jCisjIFRlbXBsYXRlIGZpbGUgZm9yICdjcm9zcy1taXBzLWxpbnV4LW11c2wnCitf dHJpcGxldD1taXBzLWxpbnV4LW11c2wKIF9iaW51dGlsc192ZXJzaW9uPTIuMzIKIF9nY2NfdmVy c2lvbj05LjMuMAogX211c2xfdmVyc2lvbj0xLjEuMjQKIF9saW51eF92ZXJzaW9uPTQuMTkKLQot X3RyaXBsZXQ9bWlwcy1saW51eC1tdXNsCi1fZnB1ZmxhZ3M9Ii0td2l0aC1mbG9hdD1zb2Z0IC0t d2l0aG91dC1mcCIKLV9hcmNoZmxhZ3M9Ii1tYXJjaD1taXBzMzJyMiAtbXNvZnQtZmxvYXQiCi1f c3lzcm9vdD0iL3Vzci8ke190cmlwbGV0fSIKLQogcGtnbmFtZT1jcm9zcy0ke190cmlwbGV0fQog dmVyc2lvbj0wLjMzCiByZXZpc2lvbj0zCi1zaG9ydF9kZXNjPSJDcm9zcyB0b29sY2hhaW4gZm9y IE1JUFMzMnIyIEJFIHNvZnRmbG9hdCB0YXJnZXQgKG11c2wpIgorYnVpbGRfc3R5bGU9dm9pZC1j cm9zcworY29uZmlndXJlX2FyZ3M9Ii0td2l0aC1hcmNoPW1pcHMzMnIyIC0td2l0aC1mbG9hdD1z b2Z0CisgLS13aXRoLWxpbmtlci1oYXNoLXN0eWxlPXN5c3YiCitob3N0bWFrZWRlcGVuZHM9InRh ciBnY2Mtb2JqYyBmbGV4IHBlcmwgcHl0aG9uMyIKK21ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBs aWJtcGMtZGV2ZWwgemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbCIKK2RlcGVuZHM9IiR7 cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259Igorc2hvcnRfZGVzYz0iVm9pZCBj cm9zcyB0b29sY2hhaW4gZm9yICR7X3RyaXBsZXR9IgogbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9y cGhhbkB2b2lkbGludXgub3JnPiIKIGhvbWVwYWdlPSJodHRwczovL3d3dy52b2lkbGludXgub3Jn LyIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdQTC0zLjAtb3ItbGF0ZXIsIE1JVCIKIGRp c3RmaWxlcz0iCiAgJHtHTlVfU0lURX0vYmludXRpbHMvYmludXRpbHMtJHtfYmludXRpbHNfdmVy c2lvbn0udGFyLnh6CiAgJHtHTlVfU0lURX0vZ2NjL2djYy0ke19nY2NfdmVyc2lvbn0vZ2NjLSR7 X2djY192ZXJzaW9ufS50YXIueHoKLSBodHRwOi8vd3d3Lm11c2wtbGliYy5vcmcvcmVsZWFzZXMv bXVzbC0ke19tdXNsX3ZlcnNpb259LnRhci5negorIGh0dHBzOi8vd3d3Lm11c2wtbGliYy5vcmcv cmVsZWFzZXMvbXVzbC0ke19tdXNsX3ZlcnNpb259LnRhci5negogICR7S0VSTkVMX1NJVEV9L2tl cm5lbC92NC54L2xpbnV4LSR7X2xpbnV4X3ZlcnNpb259LnRhci54eiIKIGNoZWNrc3VtPSIwYWI2 YzU1ZGQ4NmE5MmVkNTYxOTcyYmExNWI5YjcwYThiOWY3NTU1N2Y4OTY0NDZjODJlOGIzNmU0NzNl ZTA0CiAgNzFlMTk3ODY3NjExZjYwNTRhYTExMTliMTNhMGMwYWJhYzEyODM0NzY1ZmUyZDgxZjM1 YWM1N2Y4NGY3NDJkMQogIDEzNzBjOWE4MTJiMmNmMmE3ZDkyODAyNTEwY2NhMDA1OGNjMzdlNjZh N2JlZGQ3MDA1MWYwYTM0MDE1MDIyYTMKICAwYzY4ZjU2NTU1MjhhZWQ0Zjk5ZGFlNzFhNWIyNTll ZGM5MzIzOWZhODk5ZTJkZjc5YzA1NTI3NWMyMTc0OWExIgogCi1saWIzMmRpc2FibGVkPXllcwot bm9jcm9zcz15ZXMKLW5vcGllPXllcwotbm9kZWJ1Zz15ZXMKLWNyZWF0ZV93cmtzcmM9eWVzCi0K LWhvc3RtYWtlZGVwZW5kcz0idGFyIGdjYy1vYmpjIGZsZXggcGVybCBweXRob24zIgotbWFrZWRl cGVuZHM9InpsaWItZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwgbGlibXBjLWRldmVsIGlzbDE1 LWRldmVsIgotbm9zdHJpcF9maWxlcz0ibGliY2FmX3NpbmdsZS5hIGxpYmdjYy5hIGxpYmdjb3Yu YSBsaWJnY2NfZWguYQotIGxpYmduYXJsX3BpYy5hIGxpYmduYXJsLmEgbGliZ25hdF9waWMuYSBs aWJnbmF0LmEgbGliZ21lbS5hIgotZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lvbn1f JHtyZXZpc2lvbn0iCi0KLV9hcHBseV9wYXRjaCgpIHsKLQlsb2NhbCBhcmdzPSIkMSIgcG5hbWU9 IiQoYmFzZW5hbWUgJDIpIgotCi0JaWYgWyAhIC1mICIuJHtwbmFtZX1fZG9uZSIgXTsgdGhlbgot CQlwYXRjaCAtTiAkYXJncyAtaSAkMgotCQl0b3VjaCAuJHtwbmFtZX1fZG9uZQotCWZpCi19Ci0K LV9iaW51dGlsc19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmJp bnV0aWxzX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25v cm1hbCAiQnVpbGRpbmcgY3Jvc3MgYmludXRpbHMgYm9vdHN0cmFwXG4iCi0KLQlbICEgLWQgYmlu dXRpbHMtYnVpbGQgXSAmJiBta2RpciBiaW51dGlscy1idWlsZAotCWNkIGJpbnV0aWxzLWJ1aWxk Ci0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0 fSIKLQlfYXJncys9IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLWRp c2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJncys9IiAtLWRp c2FibGUtd2Vycm9yIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS13 aXRoLXN5c3RlbS16bGliIgotCV9hcmdzKz0iICR7X2ZwdWZsYWdzfSIKLQotCS4uL2JpbnV0aWxz LSR7X2JpbnV0aWxzX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSBjb25maWd1 cmUtaG9zdCAmJiBtYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dy a3NyY30vLmJpbnV0aWxzX2J1aWxkX2RvbmUKLX0KLQotX2djY19ib290c3RyYXAoKSB7Ci0JbG9j YWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUgXSAmJiByZXR1 cm4gMAotCi0JY2QgJHt3cmtzcmN9L2djYy0ke19nY2NfdmVyc2lvbn0KLQlmb3IgZiBpbiAke1hC UFNfU1JDUEtHRElSfS9nY2MvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAw ICIkZiIKLQlkb25lCi0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2NjL2ZpbGVzLyotbXVz bC5wYXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMSAiJGYiCi0JZG9uZQotCi0JbXNnX25vcm1h bCAiQnVpbGRpbmcgY3Jvc3MgZ2NjIGJvb3RzdHJhcFxuIgotCi0JWyAhIC1kIC4uL2djYy1ib290 c3RyYXAgXSAmJiBta2RpciAuLi9nY2MtYm9vdHN0cmFwCi0JY2QgLi4vZ2NjLWJvb3RzdHJhcAot Ci0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0i Ci0JX2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS13aXRo LW5ld2xpYiIKLQlfYXJncys9IiAtLWVuYWJsZS1sYW5ndWFnZXM9YyIKLQlfYXJncys9IiAtLXdp dGgtbmV3bGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlicXVhZG1hdGgiCi0JX2FyZ3MrPSIgLS1k aXNhYmxlLXRocmVhZHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWRlY2ltYWwtZmxvYXQiCi0JX2Fy Z3MrPSIgLS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXB4IgotCV9h cmdzKz0iIC0tZGlzYWJsZS1saWJtdWRmbGFwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJnb21w IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJhdG9taWMiCi0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9 IgotCi0JQ0ZMQUdTPSItTzAgLWcwIiBDWFhGTEFHUz0iLU8wIC1nMCIgXAotCQkuLi9nY2MtJHtf Z2NjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAke21ha2Vqb2JzfQotCW1h a2UgaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUKLX0KLQot X2xpbnV4X2hlYWRlcnMoKSB7Ci0JWyAtZiAke3dya3NyY30vLmxpbnV4X2J1aWxkX2RvbmUgXSAm JiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgTGludXgg QVBJIGhlYWRlcnNcbiIKLQotCWNkIGxpbnV4LSR7X2xpbnV4X3ZlcnNpb259Ci0KLQlmb3IgZiBp biAke1hCUFNfU1JDUEtHRElSfS9rZXJuZWwtbGliYy1oZWFkZXJzL3BhdGNoZXMvKi5wYXRjaDsg ZG8KLQkJX2FwcGx5X3BhdGNoIC1wMCAkZgotCWRvbmUKLQotCW1ha2UgQVJDSD1taXBzIGhlYWRl cnNfY2hlY2sKLQltYWtlIEFSQ0g9bWlwcyBJTlNUQUxMX0hEUl9QQVRIPSR7X3N5c3Jvb3R9L3Vz ciBoZWFkZXJzX2luc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8ubGludXhfYnVpbGRfZG9uZQot fQotCi1fbXVzbF9idWlsZCgpIHsKLQlbIC1mICR7d3Jrc3JjfS8ubXVzbF9idWlsZF9kb25lIF0g JiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9tdXNsLSR7X211c2xfdmVyc2lvbn0KLQltc2df bm9ybWFsICJCdWlsZGluZyBjcm9zcyBtdXNsIGxpYmNcbiIKLQotCSMgQXBwbHkgbXVzbCBwYXRj aGVzIGlmIHRoZXJlIGFyZSBhbnkKLQlpZiBbIC1kICIke1hCUFNfU1JDUEtHRElSfS9tdXNsL3Bh dGNoZXMiIF07IHRoZW4KLQkJZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vbXVzbC9wYXRjaGVz LyoucGF0Y2g7IGRvCi0JCQlfYXBwbHlfcGF0Y2ggLXAwICIkZiIKLQkJZG9uZQotCWZpCi0KLQlD Qz0iJHtfdHJpcGxldH0tZ2NjIiBDRkxBR1M9Ii1PcyAtcGlwZSAtZlBJQyAke19hcmNoZmxhZ3N9 IiBcCi0JCS4vY29uZmlndXJlIC0tcHJlZml4PS91c3IKLQotCW1ha2UgJHttYWtlam9ic30KLQlt YWtlIERFU1RESVI9JHtfc3lzcm9vdH0gaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5tdXNs X2J1aWxkX2RvbmUKLX0KLQotX2djY19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAk e3dya3NyY30vLmdjY19idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQot CW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdjYyBmaW5hbFxuIgotCi0JWyAhIC1kIGdjYy1i dWlsZCBdICYmIG1rZGlyIGdjYy1idWlsZAotCWNkIGdjYy1idWlsZAotCi0JX2FyZ3M9Ii0tcHJl Zml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13 aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1saWJleGVjZGlyPS91c3IvbGli IgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jLGFkYSxjKyssb2JqYyxvYmotYysrLGZv cnRyYW4sbHRvIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpYmFkYSIKLQlfYXJncys9IiAtLWVuYWJs ZS1sdG8iCi0JX2FyZ3MrPSIgLS1lbmFibGUtZGVmYXVsdC1waWUiCi0JX2FyZ3MrPSIgLS1lbmFi bGUtZGVmYXVsdC1zc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNhbml0aXplciIKLQlfYXJn cys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlfYXJn cys9IiAtLWRpc2FibGUtbGlicXVhZG1hdGgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm1weCIK LQlfYXJncys9IiAtLWRpc2FibGUtbGlibXVkZmxhcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGli YXRvbWljIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpYnNzcCIKLQlfYXJncys9IiAtLWVuYWJsZS1z aGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXN5bXZlcnMiCi0JX2FyZ3MrPSIgJHtfZnB1Zmxh Z3N9IgotCi0JLi4vZ2NjLSR7X2djY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1h a2UgJHttYWtlam9ic30KLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUKLX0KLQot ZG9fYnVpbGQoKSB7Ci0JIyBFbnN1cmUgd2UgdXNlIHNhbmUgZW52aXJvbm1lbnQKLQl1bnNldCBD QyBDWFggQ1BQIExEIEFTIEFSIFJBTkxJQiBPQkpEVU1QIFJFQURFTEYgTk0KLQl1bnNldCBDRkxB R1MgQ1hYRkxBR1MgQ1BQRkxBR1MgTERGTEFHUwotCWV4cG9ydCBDRkxBR1M9Ii1PcyAtcGlwZSIg Q1hYRkxBR1M9Ii1PcyAtcGlwZSIKLQotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmlu IHNiaW47IGRvCi0JCWlmIFsgISAtZCAke19zeXNyb290fS91c3IvJHtmfSBdOyB0aGVuCi0JCQlt a2RpciAtcCAke19zeXNyb290fS91c3IvJHtmfQotCQlmaQotCQlpZiBbICEgLWggJHtfc3lzcm9v dH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7X3N5c3Jvb3R9L3Vzci8ke2Z9ICR7X3N5c3Jv b3R9LyR7Zn0KLQkJZmkKLQlkb25lCi0JbG4gLXNmIGxpYiAke19zeXNyb290fS91c3IvbGliMzIK LQlsbiAtc2YgdXNyL2xpYiAke19zeXNyb290fS9saWIzMgotCi0JX2JpbnV0aWxzX2J1aWxkCi0J X2djY19ib290c3RyYXAKLQlfbGludXhfaGVhZGVycwotCV9tdXNsX2J1aWxkCi0JX2djY19idWls ZAotfQotCi1kb19pbnN0YWxsKCkgewotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmlu IHNiaW47IGRvCi0JCWlmIFsgISAtZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07 IHRoZW4KLQkJCW1rZGlyIC1wICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkK LQkJaWYgWyAhIC1oICR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAt c2ZyICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXAotCQkJCSR7REVTVERJUn0vJHtf c3lzcm9vdH0vJHtmfQotCQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7REVTVERJUn0vJHtfc3lz cm9vdH0vdXNyL2xpYjMyCi0JbG4gLXNmIHVzci9saWIgJHtERVNURElSfS8ke19zeXNyb290fS9s aWIzMgotCi0JIyBpbnN0YWxsIGxpbnV4IEFQSSBoZWFkZXJzCi0JY2QgJHt3cmtzcmN9L2xpbnV4 LSR7X2xpbnV4X3ZlcnNpb259Ci0JbWFrZSBBUkNIPW1pcHMgSU5TVEFMTF9IRFJfUEFUSD0ke0RF U1RESVJ9LyR7X3N5c3Jvb3R9L3VzciBoZWFkZXJzX2luc3RhbGwKLQlybSAtZiAkKGZpbmQgJHtE RVNURElSfS8ke19zeXNyb290fS91c3IvaW5jbHVkZSAtbmFtZSAuaW5zdGFsbCAtb3IgLW5hbWUg Li5pbnN0YWxsLmNtZCkKLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvaW5jbHVk ZS9kcm0KLQotCSMgaW5zdGFsbCBjcm9zcyBiaW51dGlscwotCWNkICR7d3Jrc3JjfS9iaW51dGls cy1idWlsZAotCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9IGluc3RhbGwKLQotCSMgaW5zdGFsbCBj cm9zcyBnY2MKLQljZCAke3dya3NyY30vZ2NjLWJ1aWxkCi0JbWFrZSBERVNURElSPSR7REVTVERJ Un0gaW5zdGFsbAotCi0JIyBtb3ZlIGxpYmNjMS5zbyogdG8gdGhlIHN5c3Jvb3QKLQltdiAke0RF U1RESVJ9L3Vzci9saWIvbGliY2MxLnNvKiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIK LQotCSMgaW5zdGFsbCBtdXNsIGxpYmMgZm9yIHRhcmdldAotCWNkICR7d3Jrc3JjfS9tdXNsLSR7 X211c2xfdmVyc2lvbn0KLQltYWtlIERFU1RESVI9JHtERVNURElSfS8ke19zeXNyb290fSBpbnN0 YWxsCi0KLQkjIFJlbW92ZSB1c2VsZXNzIGhlYWRlcnMuCi0Jcm0gLXJmICR7REVTVERJUn0vdXNy L2xpYi9nY2MvJHtfdHJpcGxldH0vKi9pbmNsdWRlLWZpeGVkCi0KLQkjIE1ha2UgbGQtbXVzbC5z byBzeW1saW5rcyByZWxhdGl2ZS4KLQlsbiAtc2YgbGliYy5zbyAke0RFU1RESVJ9LyR7X3N5c3Jv b3R9L3Vzci9saWIvbGQtbXVzbC1taXBzLnNvLjEKLQlsbiAtc2YgbGliYy5zbyAke0RFU1RESVJ9 LyR7X3N5c3Jvb3R9L3Vzci9saWIvbGQtbXVzbC1taXBzLXNmLnNvLjEKLQotCSMgc3ltbGlua3Mg Zm9yIGduYXJsIGFuZCBnbmF0IHNoYXJlZCBsaWJyYXJpZXMKLQlfbWFqb3J2ZXI9JHtfZ2NjX3Zl cnNpb24lLiouKn0KLQlfYWRhbGliPXVzci9saWIvZ2NjLyR7X3RyaXBsZXR9LyR7X2djY192ZXJz aW9ufS9hZGFsaWIKLQltdiAtdiAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGliZ25hcmwtJHtfbWFq b3J2ZXJ9LnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCW12IC12ICR7REVTVERJ Un0vJHtfYWRhbGlifS9saWJnbmF0LSR7X21ham9ydmVyfS5zbyAke0RFU1RESVJ9LyR7X3N5c3Jv b3R9L3Vzci9saWIKLQlsbiAtc3ZmIGxpYmduYXJsLSR7X21ham9ydmVyfS5zbyBsaWJnbmFybC5z bwotCWxuIC1zdmYgbGliZ25hdC0ke19tYWpvcnZlcn0uc28gbGliZ25hdC5zbwotCXJtIC12ZiAk e0RFU1RESVJ9LyR7X2FkYWxpYn0vbGliZ25he3JsLHR9LnNvCi0KLQkjIFJlbW92ZSB1bm5lY2Vz c2FyeSBzdHVmZgotCXJtIC1mICR7REVTVERJUn0vdXNyL2xpYiovbGliaWJlcnR5LmEKLQlybSAt cmYgJHtERVNURElSfS91c3Ivc2hhcmUKLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS97 ZXRjLHZhcn0KLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS91c3Ive3NiaW4sc2hhcmUs bGliZXhlY30KLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYmV4ZWMKLQlybSAtZiAk e0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYi8qLnB5Ci0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNy b290fS97c2JpbixsaWJ9Ci19Citjcm9zc190cmlwbGV0PSR7X3RyaXBsZXR9Citjcm9zc193b3Jk c2l6ZT0zMgorY3Jvc3NfbGliYz1tdXNsCitjcm9zc19iaW51dGlsc192ZXJzaW9uPSR7X2JpbnV0 aWxzX3ZlcnNpb259Citjcm9zc19nY2NfdmVyc2lvbj0ke19nY2NfdmVyc2lvbn0KK2Nyb3NzX211 c2xfdmVyc2lvbj0ke19tdXNsX3ZlcnNpb259Citjcm9zc19saW51eF92ZXJzaW9uPSR7X2xpbnV4 X3ZlcnNpb259Citjcm9zc19saW51eF9hcmNoPWFybQorY3Jvc3NfZ2NjX3NraXBfZ289eWVzCitj cm9zc19tdXNsX2NmbGFncz0iLU9zIC1tYXJjaD1taXBzMzJyMiAtbXNvZnQtZmxvYXQiCiAKIGNy b3NzLW1pcHMtbGludXgtbXVzbC1saWJjX3BhY2thZ2UoKSB7CiAJc2hvcnRfZGVzYys9IiAtIGxp YmMgZmlsZXMiCiAJbm9zdHJpcD15ZXMKIAlub3ZlcmlmeXJkZXBzPXllcwogCW5vc2hsaWJwcm92 aWRlcz15ZXMKKwogCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAke19zeXNyb290fQorCQl2bW92 ZSB1c3IvJHtjcm9zc190cmlwbGV0fQogCX0KIH0KCkZyb20gMTQzYWJhYzgwZDAwYzA1NjM0M2Q2 MzdmMzBlZmYwYmRhYzc2M2M1NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogcTY2IDxk YW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU2F0LCAyNiBEZWMgMjAyMCAwMDoxMDoxMSArMDEw MApTdWJqZWN0OiBbUEFUQ0ggMTQvMTZdIGNyb3NzLW1pcHMtbGludXgtbXVzbGhmOiByZWRvIHdp dGggdm9pZC1jcm9zcwoKLS0tCiBzcmNwa2dzL2Nyb3NzLW1pcHMtbGludXgtbXVzbGhmL3RlbXBs YXRlIHwgMjg3ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjEgaW5z ZXJ0aW9ucygrKSwgMjY2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY3Jvc3Mt bWlwcy1saW51eC1tdXNsaGYvdGVtcGxhdGUgYi9zcmNwa2dzL2Nyb3NzLW1pcHMtbGludXgtbXVz bGhmL3RlbXBsYXRlCmluZGV4IDc5OTI4NjRhOGI2Li41ODNkM2VhNmRjZSAxMDA2NDQKLS0tIGEv c3JjcGtncy9jcm9zcy1taXBzLWxpbnV4LW11c2xoZi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Ny b3NzLW1pcHMtbGludXgtbXVzbGhmL3RlbXBsYXRlCkBAIC0xLDE5ICsxLDE5IEBACi0jIFRlbXBs YXRlIGJ1aWxkIGZpbGUgZm9yICdjcm9zcy1taXBzLWxpbnV4LW11c2xoZicKLSMKKyMgVGVtcGxh dGUgZmlsZSBmb3IgJ2Nyb3NzLW1pcHMtbGludXgtbXVzbGhmJworX3RyaXBsZXQ9bWlwcy1saW51 eC1tdXNsaGYKIF9iaW51dGlsc192ZXJzaW9uPTIuMzIKIF9nY2NfdmVyc2lvbj05LjMuMAogX211 c2xfdmVyc2lvbj0xLjEuMjQKIF9saW51eF92ZXJzaW9uPTQuMTkKLQotX3RyaXBsZXQ9bWlwcy1s aW51eC1tdXNsaGYKLV9mcHVmbGFncz0iLS13aXRoLWZsb2F0PWhhcmQgLS13aXRoLWZwIgotX2Fy Y2hmbGFncz0iLW1hcmNoPW1pcHMzMnIyIC1taGFyZC1mbG9hdCIKLV9zeXNyb290PSIvdXNyLyR7 X3RyaXBsZXR9IgotCiBwa2duYW1lPWNyb3NzLSR7X3RyaXBsZXR9CiB2ZXJzaW9uPTAuMzMKIHJl dmlzaW9uPTMKLXNob3J0X2Rlc2M9IkNyb3NzIHRvb2xjaGFpbiBmb3IgTUlQUzMycjIgQkUgaGFy ZGZsb2F0IHRhcmdldCAobXVzbCkiCitidWlsZF9zdHlsZT12b2lkLWNyb3NzCitjb25maWd1cmVf YXJncz0iLS13aXRoLWFyY2g9bWlwczMycjIgLS13aXRoLWZsb2F0PWhhcmQKKyAtLXdpdGgtbGlu a2VyLWhhc2gtc3R5bGU9c3lzdiIKK2hvc3RtYWtlZGVwZW5kcz0idGFyIGdjYy1vYmpjIGZsZXgg cGVybCBweXRob24zIgorbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCB6bGli LWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIgorZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7 dmVyc2lvbn1fJHtyZXZpc2lvbn0iCitzaG9ydF9kZXNjPSJWb2lkIGNyb3NzIHRvb2xjaGFpbiBm b3IgJHtfdHJpcGxldH0iCiBtYWludGFpbmVyPSJoaXBwZXJzb24wIDxoaXBwZXJzb24wQGdtYWls LmNvbT4iCiBob21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBsaWNlbnNlPSJH UEwtMi4wLW9yLWxhdGVyLCBHUEwtMy4wLW9yLWxhdGVyLCBNSVQiCkBAIC0yNywyNjkgKzI3LDI0 IEBAIGNoZWNrc3VtPSIwYWI2YzU1ZGQ4NmE5MmVkNTYxOTcyYmExNWI5YjcwYThiOWY3NTU1N2Y4 OTY0NDZjODJlOGIzNmU0NzNlZTA0CiAgMTM3MGM5YTgxMmIyY2YyYTdkOTI4MDI1MTBjY2EwMDU4 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 cz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJn cys9IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLWxpYmV4ZWNkaXI9 L3Vzci9saWIiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGFuZ3VhZ2VzPWMsYWRhLGMrKyxvYmpjLG9i 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 JHtfc3lzcm9vdH0vdXNyL2xpYi9sZC1tdXNsLW1pcHMuc28uMQotCi0JIyBzeW1saW5rcyBmb3Ig Z25hcmwgYW5kIGduYXQgc2hhcmVkIGxpYnJhcmllcwotCV9tYWpvcnZlcj0ke19nY2NfdmVyc2lv biUuKi4qfQotCV9hZGFsaWI9dXNyL2xpYi9nY2MvJHtfdHJpcGxldH0vJHtfZ2NjX3ZlcnNpb259 L2FkYWxpYgotCW12IC12ICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmFybC0ke19tYWpvcnZl cn0uc28gJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliCi0JbXYgLXYgJHtERVNURElSfS8k e19hZGFsaWJ9L2xpYmduYXQtJHtfbWFqb3J2ZXJ9LnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0v dXNyL2xpYgotCWxuIC1zdmYgbGliZ25hcmwtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXJsLnNvCi0J bG4gLXN2ZiBsaWJnbmF0LSR7X21ham9ydmVyfS5zbyBsaWJnbmF0LnNvCi0Jcm0gLXZmICR7REVT VERJUn0vJHtfYWRhbGlifS9saWJnbmF7cmwsdH0uc28KLQotCSMgUmVtb3ZlIHVubmVjZXNzYXJ5 IHN0dWZmCi0Jcm0gLWYgJHtERVNURElSfS91c3IvbGliKi9saWJpYmVydHkuYQotCXJtIC1yZiAk e0RFU1RESVJ9L3Vzci9zaGFyZQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3tldGMs dmFyfQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci97c2JpbixzaGFyZSxsaWJl eGVjfQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0vbGliZXhlYwotCXJtIC1mICR7REVT VERJUn0vJHtfc3lzcm9vdH0vbGliLyoucHkKLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9 L3tzYmluLGxpYn0KLX0KK2Nyb3NzX3RyaXBsZXQ9JHtfdHJpcGxldH0KK2Nyb3NzX3dvcmRzaXpl PTMyCitjcm9zc19saWJjPW11c2wKK2Nyb3NzX2JpbnV0aWxzX3ZlcnNpb249JHtfYmludXRpbHNf dmVyc2lvbn0KK2Nyb3NzX2djY192ZXJzaW9uPSR7X2djY192ZXJzaW9ufQorY3Jvc3NfbXVzbF92 ZXJzaW9uPSR7X211c2xfdmVyc2lvbn0KK2Nyb3NzX2xpbnV4X3ZlcnNpb249JHtfbGludXhfdmVy c2lvbn0KK2Nyb3NzX2xpbnV4X2FyY2g9YXJtCitjcm9zc19nY2Nfc2tpcF9nbz15ZXMKK2Nyb3Nz X211c2xfY2ZsYWdzPSItT3MgLW1hcmNoPW1pcHMzMnIyIC1taGFyZC1mbG9hdCIKIAogY3Jvc3Mt bWlwcy1saW51eC1tdXNsaGYtbGliY19wYWNrYWdlKCkgewogCXNob3J0X2Rlc2MrPSIgLSBsaWJj IGZpbGVzIgogCW5vc3RyaXA9eWVzCiAJbm92ZXJpZnlyZGVwcz15ZXMKIAlub3NobGlicHJvdmlk ZXM9eWVzCisKIAlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgJHtfc3lzcm9vdH0KKwkJdm1vdmUg dXNyLyR7Y3Jvc3NfdHJpcGxldH0KIAl9CiB9CgpGcm9tIDVlNTNmOGI4N2M0NzQxM2UzZDFiMTNh ZTNmMGEzMDE1NWIxNjAyZmEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IHE2NiA8ZGFu aWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFNhdCwgMjYgRGVjIDIwMjAgMDA6MTE6NDUgKzAxMDAK U3ViamVjdDogW1BBVENIIDE1LzE2XSBjcm9zcy1taXBzZWwtbGludXgtbXVzbDogcmV3b3JrIHdp dGggdm9pZC1jcm9zcwoKLS0tCiBzcmNwa2dzL2Nyb3NzLW1pcHNlbC1saW51eC1tdXNsL3RlbXBs YXRlIHwgMjkwICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjIgaW5z ZXJ0aW9ucygrKSwgMjY4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY3Jvc3Mt bWlwc2VsLWxpbnV4LW11c2wvdGVtcGxhdGUgYi9zcmNwa2dzL2Nyb3NzLW1pcHNlbC1saW51eC1t dXNsL3RlbXBsYXRlCmluZGV4IDBjOGI1MTliM2Y5Li5hNTc5MmMzZTI4NyAxMDA2NDQKLS0tIGEv c3JjcGtncy9jcm9zcy1taXBzZWwtbGludXgtbXVzbC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Ny b3NzLW1pcHNlbC1saW51eC1tdXNsL3RlbXBsYXRlCkBAIC0xLDI5NiArMSw1MCBAQAotIyBUZW1w bGF0ZSBidWlsZCBmaWxlIGZvciAnY3Jvc3MtbWlwc2VsLWxpbnV4LW11c2wnCi0jCisjIFRlbXBs YXRlIGZpbGUgZm9yICdjcm9zcy1taXBzZWwtbGludXgtbXVzbCcKK190cmlwbGV0PW1pcHNlbC1s aW51eC1tdXNsCiBfYmludXRpbHNfdmVyc2lvbj0yLjMyCiBfZ2NjX3ZlcnNpb249OS4zLjAKIF9t dXNsX3ZlcnNpb249MS4xLjI0CiBfbGludXhfdmVyc2lvbj00LjE5Ci0KLV90cmlwbGV0PW1pcHNl bC1saW51eC1tdXNsCi1fZnB1ZmxhZ3M9Ii0td2l0aC1mbG9hdD1zb2Z0IC0td2l0aG91dC1mcCIK LV9hcmNoZmxhZ3M9Ii1tYXJjaD1taXBzMzJyMiAtbXNvZnQtZmxvYXQiCi1fc3lzcm9vdD0iL3Vz ci8ke190cmlwbGV0fSIKLQogcGtnbmFtZT1jcm9zcy0ke190cmlwbGV0fQogdmVyc2lvbj0wLjMz CiByZXZpc2lvbj0zCi1zaG9ydF9kZXNjPSJDcm9zcyB0b29sY2hhaW4gZm9yIE1JUFMzMnIyIExF IHNvZnRmbG9hdCB0YXJnZXQgKG11c2wpIgorYnVpbGRfc3R5bGU9dm9pZC1jcm9zcworY29uZmln dXJlX2FyZ3M9Ii0td2l0aC1hcmNoPW1pcHMzMnIyIC0td2l0aC1mbG9hdD1zb2Z0CisgLS13aXRo LWxpbmtlci1oYXNoLXN0eWxlPXN5c3YiCitob3N0bWFrZWRlcGVuZHM9InRhciBnY2Mtb2JqYyBm bGV4IHBlcmwgcHl0aG9uMyIKK21ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwg emxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbCIKK2RlcGVuZHM9IiR7cGtnbmFtZX0tbGli Yy0ke3ZlcnNpb259XyR7cmV2aXNpb259Igorc2hvcnRfZGVzYz0iVm9pZCBjcm9zcyB0b29sY2hh aW4gZm9yICR7X3RyaXBsZXR9IgogbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGlu dXgub3JnPiIKIGhvbWVwYWdlPSJodHRwczovL3d3dy52b2lkbGludXgub3JnLyIKIGxpY2Vuc2U9 IkdQTC0yLjAtb3ItbGF0ZXIsIEdQTC0zLjAtb3ItbGF0ZXIsIE1JVCIKIGRpc3RmaWxlcz0iCiAg JHtHTlVfU0lURX0vYmludXRpbHMvYmludXRpbHMtJHtfYmludXRpbHNfdmVyc2lvbn0udGFyLnh6 CiAgJHtHTlVfU0lURX0vZ2NjL2djYy0ke19nY2NfdmVyc2lvbn0vZ2NjLSR7X2djY192ZXJzaW9u fS50YXIueHoKLSBodHRwOi8vd3d3Lm11c2wtbGliYy5vcmcvcmVsZWFzZXMvbXVzbC0ke19tdXNs X3ZlcnNpb259LnRhci5negorIGh0dHBzOi8vd3d3Lm11c2wtbGliYy5vcmcvcmVsZWFzZXMvbXVz bC0ke19tdXNsX3ZlcnNpb259LnRhci5negogICR7S0VSTkVMX1NJVEV9L2tlcm5lbC92NC54L2xp bnV4LSR7X2xpbnV4X3ZlcnNpb259LnRhci54eiIKIGNoZWNrc3VtPSIwYWI2YzU1ZGQ4NmE5MmVk NTYxOTcyYmExNWI5YjcwYThiOWY3NTU1N2Y4OTY0NDZjODJlOGIzNmU0NzNlZTA0CiAgNzFlMTk3 ODY3NjExZjYwNTRhYTExMTliMTNhMGMwYWJhYzEyODM0NzY1ZmUyZDgxZjM1YWM1N2Y4NGY3NDJk MQogIDEzNzBjOWE4MTJiMmNmMmE3ZDkyODAyNTEwY2NhMDA1OGNjMzdlNjZhN2JlZGQ3MDA1MWYw YTM0MDE1MDIyYTMKICAwYzY4ZjU2NTU1MjhhZWQ0Zjk5ZGFlNzFhNWIyNTllZGM5MzIzOWZhODk5 ZTJkZjc5YzA1NTI3NWMyMTc0OWExIgogCi1saWIzMmRpc2FibGVkPXllcwotbm9jcm9zcz15ZXMK LW5vcGllPXllcwotbm9kZWJ1Zz15ZXMKLWNyZWF0ZV93cmtzcmM9eWVzCi0KLWhvc3RtYWtlZGVw ZW5kcz0idGFyIGdjYy1vYmpjIGZsZXggcGVybCBweXRob24zIgotbWFrZWRlcGVuZHM9InpsaWIt ZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwgbGlibXBjLWRldmVsIGlzbDE1LWRldmVsIgotbm9z dHJpcF9maWxlcz0ibGliY2FmX3NpbmdsZS5hIGxpYmdjYy5hIGxpYmdjb3YuYSBsaWJnY2NfZWgu YQotIGxpYmduYXJsX3BpYy5hIGxpYmduYXJsLmEgbGliZ25hdF9waWMuYSBsaWJnbmF0LmEgbGli Z21lbS5hIgotZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0i Ci0KLV9hcHBseV9wYXRjaCgpIHsKLQlsb2NhbCBhcmdzPSIkMSIgcG5hbWU9IiQoYmFzZW5hbWUg JDIpIgotCi0JaWYgWyAhIC1mICIuJHtwbmFtZX1fZG9uZSIgXTsgdGhlbgotCQlwYXRjaCAtTiAk YXJncyAtaSAkMgotCQl0b3VjaCAuJHtwbmFtZX1fZG9uZQotCWZpCi19Ci0KLV9iaW51dGlsc19i dWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmJpbnV0aWxzX2J1aWxk X2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRp bmcgY3Jvc3MgYmludXRpbHMgYm9vdHN0cmFwXG4iCi0KLQlbICEgLWQgYmludXRpbHMtYnVpbGQg XSAmJiBta2RpciBiaW51dGlscy1idWlsZAotCWNkIGJpbnV0aWxzLWJ1aWxkCi0KLQlfYXJncz0i LS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9 IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgot CV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJncys9IiAtLWRpc2FibGUtd2Vycm9y IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3RlbS16 bGliIgotCV9hcmdzKz0iICR7X2ZwdWZsYWdzfSIKLQotCS4uL2JpbnV0aWxzLSR7X2JpbnV0aWxz X3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSBjb25maWd1cmUtaG9zdCAmJiBt YWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmJpbnV0 aWxzX2J1aWxkX2RvbmUKLX0KLQotX2djY19ib290c3RyYXAoKSB7Ci0JbG9jYWwgX2FyZ3MKLQot CVsgLWYgJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2Qg JHt3cmtzcmN9L2djYy0ke19nY2NfdmVyc2lvbn0KLQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElS fS9nY2MvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAwICIkZiIKLQlkb25l Ci0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2NjL2ZpbGVzLyotbXVzbC5wYXRjaDsgZG8K LQkJX2FwcGx5X3BhdGNoIC1wMSAiJGYiCi0JZG9uZQotCi0JbXNnX25vcm1hbCAiQnVpbGRpbmcg Y3Jvc3MgZ2NjIGJvb3RzdHJhcFxuIgotCi0JWyAhIC1kIC4uL2djYy1ib290c3RyYXAgXSAmJiBt a2RpciAuLi9nY2MtYm9vdHN0cmFwCi0JY2QgLi4vZ2NjLWJvb3RzdHJhcAotCi0JX2FyZ3M9Ii0t cHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIg LS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS13aXRoLW5ld2xpYiIKLQlf YXJncys9IiAtLWVuYWJsZS1sYW5ndWFnZXM9YyIKLQlfYXJncys9IiAtLXdpdGgtbmV3bGliIgot CV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlf YXJncys9IiAtLWRpc2FibGUtbGlicXVhZG1hdGgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXRocmVh ZHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWRlY2ltYWwtZmxvYXQiCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXB4IgotCV9hcmdzKz0iIC0tZGlz YWJsZS1saWJtdWRmbGFwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJnb21wIgotCV9hcmdzKz0i IC0tZGlzYWJsZS1saWJhdG9taWMiCi0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9IgotCi0JQ0ZMQUdT PSItTzAgLWcwIiBDWFhGTEFHUz0iLU8wIC1nMCIgXAotCQkuLi9nY2MtJHtfZ2NjX3ZlcnNpb259 L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAke21ha2Vqb2JzfQotCW1ha2UgaW5zdGFsbAot Ci0JdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUKLX0KLQotX2xpbnV4X2hlYWRl cnMoKSB7Ci0JWyAtZiAke3dya3NyY30vLmxpbnV4X2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAot Ci0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgTGludXggQVBJIGhlYWRlcnNc biIKLQotCWNkIGxpbnV4LSR7X2xpbnV4X3ZlcnNpb259Ci0KLQlmb3IgZiBpbiAke1hCUFNfU1JD UEtHRElSfS9rZXJuZWwtbGliYy1oZWFkZXJzL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJX2FwcGx5 X3BhdGNoIC1wMCAkZgotCWRvbmUKLQotCW1ha2UgQVJDSD1taXBzIGhlYWRlcnNfY2hlY2sKLQlt YWtlIEFSQ0g9bWlwcyBJTlNUQUxMX0hEUl9QQVRIPSR7X3N5c3Jvb3R9L3VzciBoZWFkZXJzX2lu c3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8ubGludXhfYnVpbGRfZG9uZQotfQotCi1fbXVzbF9i dWlsZCgpIHsKLQlbIC1mICR7d3Jrc3JjfS8ubXVzbF9idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAK LQotCWNkICR7d3Jrc3JjfS9tdXNsLSR7X211c2xfdmVyc2lvbn0KLQltc2dfbm9ybWFsICJCdWls ZGluZyBjcm9zcyBtdXNsIGxpYmNcbiIKLQotCSMgQXBwbHkgbXVzbCBwYXRjaGVzIGlmIHRoZXJl IGFyZSBhbnkKLQlpZiBbIC1kICIke1hCUFNfU1JDUEtHRElSfS9tdXNsL3BhdGNoZXMiIF07IHRo ZW4KLQkJZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vbXVzbC9wYXRjaGVzLyoucGF0Y2g7IGRv Ci0JCQlfYXBwbHlfcGF0Y2ggLXAwICIkZiIKLQkJZG9uZQotCWZpCi0KLQlDQz0iJHtfdHJpcGxl dH0tZ2NjIiBDRkxBR1M9Ii1PcyAtcGlwZSAtZlBJQyAke19hcmNoZmxhZ3N9IiBcCi0JCS4vY29u ZmlndXJlIC0tcHJlZml4PS91c3IKLQotCW1ha2UgJHttYWtlam9ic30KLQltYWtlIERFU1RESVI9 JHtfc3lzcm9vdH0gaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5tdXNsX2J1aWxkX2RvbmUK LX0KLQotX2djY19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmdj Y19idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwg IkJ1aWxkaW5nIGNyb3NzIGdjYyBmaW5hbFxuIgotCi0JWyAhIC1kIGdjYy1idWlsZCBdICYmIG1r ZGlyIGdjYy1idWlsZAotCWNkIGdjYy1idWlsZAotCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0J X2FyZ3MrPSIgLS1saWJleGVjZGlyPS91c3IvbGliIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3Ry aXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0i IC0tZW5hYmxlLWxhbmd1YWdlcz1jLGFkYSxjKyssb2JqYyxvYmotYysrLGZvcnRyYW4sbHRvIgot CV9hcmdzKz0iIC0tZW5hYmxlLWxpYmFkYSIKLQlfYXJncys9IiAtLWVuYWJsZS1sdG8iCi0JX2Fy Z3MrPSIgLS1lbmFibGUtZGVmYXVsdC1waWUiCi0JX2FyZ3MrPSIgLS1lbmFibGUtZGVmYXVsdC1z c3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNhbml0aXplciIKLQlfYXJncys9IiAtLWRpc2Fi bGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlfYXJncys9IiAtLWRpc2Fi bGUtbGlicXVhZG1hdGgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm1weCIKLQlfYXJncys9IiAt LWRpc2FibGUtbGlibXVkZmxhcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliYXRvbWljIgotCV9h cmdzKz0iIC0tZW5hYmxlLWxpYnNzcCIKLQlfYXJncys9IiAtLWVuYWJsZS1zaGFyZWQiCi0JX2Fy Z3MrPSIgLS1kaXNhYmxlLXN5bXZlcnMiCi0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9IgotCi0JLi4v Z2NjLSR7X2djY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9i c30KLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUKLX0KLQotZG9fYnVpbGQoKSB7 Ci0JIyBFbnN1cmUgd2UgdXNlIHNhbmUgZW52aXJvbm1lbnQKLQl1bnNldCBDQyBDWFggQ1BQIExE IEFTIEFSIFJBTkxJQiBPQkpEVU1QIFJFQURFTEYgTk0KLQl1bnNldCBDRkxBR1MgQ1hYRkxBR1Mg Q1BQRkxBR1MgTERGTEFHUwotCWV4cG9ydCBDRkxBR1M9Ii1PcyAtcGlwZSIgQ1hYRkxBR1M9Ii1P cyAtcGlwZSIKLQotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47IGRvCi0J CWlmIFsgISAtZCAke19zeXNyb290fS91c3IvJHtmfSBdOyB0aGVuCi0JCQlta2RpciAtcCAke19z eXNyb290fS91c3IvJHtmfQotCQlmaQotCQlpZiBbICEgLWggJHtfc3lzcm9vdH0vJHtmfSBdOyB0 aGVuCi0JCQlsbiAtc2ZyICR7X3N5c3Jvb3R9L3Vzci8ke2Z9ICR7X3N5c3Jvb3R9LyR7Zn0KLQkJ ZmkKLQlkb25lCi0JbG4gLXNmIGxpYiAke19zeXNyb290fS91c3IvbGliMzIKLQlsbiAtc2YgdXNy L2xpYiAke19zeXNyb290fS9saWIzMgotCi0JX2JpbnV0aWxzX2J1aWxkCi0JX2djY19ib290c3Ry YXAKLQlfbGludXhfaGVhZGVycwotCV9tdXNsX2J1aWxkCi0JX2djY19idWlsZAotfQotCi1kb19p bnN0YWxsKCkgewotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47IGRvCi0J CWlmIFsgISAtZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4KLQkJCW1r ZGlyIC1wICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkKLQkJaWYgWyAhIC1o ICR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7REVTVERJ Un0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXAotCQkJCSR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtm fQotCQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xp YjMyCi0JbG4gLXNmIHVzci9saWIgJHtERVNURElSfS8ke19zeXNyb290fS9saWIzMgotCi0JIyBp bnN0YWxsIGxpbnV4IEFQSSBoZWFkZXJzCi0JY2QgJHt3cmtzcmN9L2xpbnV4LSR7X2xpbnV4X3Zl cnNpb259Ci0JbWFrZSBBUkNIPW1pcHMgSU5TVEFMTF9IRFJfUEFUSD0ke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9L3VzciBoZWFkZXJzX2luc3RhbGwKLQlybSAtZiAkKGZpbmQgJHtERVNURElSfS8ke19z eXNyb290fS91c3IvaW5jbHVkZSAtbmFtZSAuaW5zdGFsbCAtb3IgLW5hbWUgLi5pbnN0YWxsLmNt ZCkKLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvaW5jbHVkZS9kcm0KLQotCSMg aW5zdGFsbCBjcm9zcyBiaW51dGlscwotCWNkICR7d3Jrc3JjfS9iaW51dGlscy1idWlsZAotCW1h a2UgREVTVERJUj0ke0RFU1RESVJ9IGluc3RhbGwKLQotCSMgaW5zdGFsbCBjcm9zcyBnY2MKLQlj ZCAke3dya3NyY30vZ2NjLWJ1aWxkCi0JbWFrZSBERVNURElSPSR7REVTVERJUn0gaW5zdGFsbAot Ci0JIyBtb3ZlIGxpYmNjMS5zbyogdG8gdGhlIHN5c3Jvb3QKLQltdiAke0RFU1RESVJ9L3Vzci9s aWIvbGliY2MxLnNvKiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQotCSMgaW5zdGFs bCBtdXNsIGxpYmMgZm9yIHRhcmdldAotCWNkICR7d3Jrc3JjfS9tdXNsLSR7X211c2xfdmVyc2lv bn0KLQltYWtlIERFU1RESVI9JHtERVNURElSfS8ke19zeXNyb290fSBpbnN0YWxsCi0KLQkjIFJl bW92ZSB1c2VsZXNzIGhlYWRlcnMuCi0Jcm0gLXJmICR7REVTVERJUn0vdXNyL2xpYi9nY2MvJHtf dHJpcGxldH0vKi9pbmNsdWRlLWZpeGVkCi0KLQkjIE1ha2UgbGQtbXVzbCouc28uMSBzeW1saW5r cyByZWxhdGl2ZS4KLQlsbiAtc2YgbGliYy5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9s aWIvbGQtbXVzbC1taXBzZWwuc28uMQotCWxuIC1zZiBsaWJjLnNvICR7REVTVERJUn0vJHtfc3lz cm9vdH0vdXNyL2xpYi9sZC1tdXNsLW1pcHNlbC1zZi5zby4xCi0KLQkjIHN5bWxpbmtzIGZvciBn bmFybCBhbmQgZ25hdCBzaGFyZWQgbGlicmFyaWVzCi0JX21ham9ydmVyPSR7X2djY192ZXJzaW9u JS4qLip9Ci0JX2FkYWxpYj11c3IvbGliL2djYy8ke190cmlwbGV0fS8ke19nY2NfdmVyc2lvbn0v YWRhbGliCi0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXJsLSR7X21ham9ydmVy fS5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQltdiAtdiAke0RFU1RESVJ9LyR7 X2FkYWxpYn0vbGliZ25hdC0ke19tYWpvcnZlcn0uc28gJHtERVNURElSfS8ke19zeXNyb290fS91 c3IvbGliCi0JbG4gLXN2ZiBsaWJnbmFybC0ke19tYWpvcnZlcn0uc28gbGliZ25hcmwuc28KLQls biAtc3ZmIGxpYmduYXQtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXQuc28KLQlybSAtdmYgJHtERVNU RElSfS8ke19hZGFsaWJ9L2xpYmduYXtybCx0fS5zbwotCi0JIyBSZW1vdmUgdW5uZWNlc3Nhcnkg c3R1ZmYKLQlybSAtZiAke0RFU1RESVJ9L3Vzci9saWIqL2xpYmliZXJ0eS5hCi0Jcm0gLXJmICR7 REVTVERJUn0vdXNyL3NoYXJlCi0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0ve2V0Yyx2 YXJ9Ci0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL3tzYmluLHNoYXJlLGxpYmV4 ZWN9Ci0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS9saWJleGVjCi0Jcm0gLWYgJHtERVNU RElSfS8ke19zeXNyb290fS9saWIvKi5weQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0v e3NiaW4sbGlifQotfQorY3Jvc3NfdHJpcGxldD0ke190cmlwbGV0fQorY3Jvc3Nfd29yZHNpemU9 MzIKK2Nyb3NzX2xpYmM9bXVzbAorY3Jvc3NfYmludXRpbHNfdmVyc2lvbj0ke19iaW51dGlsc192 ZXJzaW9ufQorY3Jvc3NfZ2NjX3ZlcnNpb249JHtfZ2NjX3ZlcnNpb259Citjcm9zc19tdXNsX3Zl cnNpb249JHtfbXVzbF92ZXJzaW9ufQorY3Jvc3NfbGludXhfdmVyc2lvbj0ke19saW51eF92ZXJz aW9ufQorY3Jvc3NfbGludXhfYXJjaD1hcm0KK2Nyb3NzX2djY19za2lwX2dvPXllcworY3Jvc3Nf bXVzbF9jZmxhZ3M9Ii1PcyAtbWFyY2g9bWlwczMycjIgLW1zb2Z0LWZsb2F0IgogCiBjcm9zcy1t aXBzZWwtbGludXgtbXVzbC1saWJjX3BhY2thZ2UoKSB7CiAJc2hvcnRfZGVzYys9IiAtIGxpYmMg ZmlsZXMiCiAJbm9zdHJpcD15ZXMKIAlub3ZlcmlmeXJkZXBzPXllcwogCW5vc2hsaWJwcm92aWRl cz15ZXMKKwogCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAke19zeXNyb290fQorCQl2bW92ZSB1 c3IvJHtjcm9zc190cmlwbGV0fQogCX0KIH0KCkZyb20gYmM4NzE0YjFkYzNlN2ZhYWUwNDY3MDdl ZTU5NGEwZWM4YzJlOGY5YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogcTY2IDxkYW5p ZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU2F0LCAyNiBEZWMgMjAyMCAwMDoxMjowNyArMDEwMApT dWJqZWN0OiBbUEFUQ0ggMTYvMTZdIGNyb3NzLW1pcHNlbC1saW51eC1tdXNsaGY6IHJld29yayB3 aXRoIHZvaWQtY3Jvc3MKCi0tLQogc3JjcGtncy9jcm9zcy1taXBzZWwtbGludXgtbXVzbGhmL3Rl bXBsYXRlIHwgMjg5ICsrLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDIyIGlu c2VydGlvbnMoKyksIDI2NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nyb3Nz LW1pcHNlbC1saW51eC1tdXNsaGYvdGVtcGxhdGUgYi9zcmNwa2dzL2Nyb3NzLW1pcHNlbC1saW51 eC1tdXNsaGYvdGVtcGxhdGUKaW5kZXggYmY3NWI5ZWM4ZDUuLmZhYzVmMTA4NjkxIDEwMDY0NAot LS0gYS9zcmNwa2dzL2Nyb3NzLW1pcHNlbC1saW51eC1tdXNsaGYvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9jcm9zcy1taXBzZWwtbGludXgtbXVzbGhmL3RlbXBsYXRlCkBAIC0xLDI5NSArMSw1MCBA QAotIyBUZW1wbGF0ZSBidWlsZCBmaWxlIGZvciAnY3Jvc3MtbWlwc2VsLWxpbnV4LW11c2xoZicK LSMKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3NzLW1pcHNlbC1saW51eC1tdXNsaGYnCitfdHJp cGxldD1taXBzZWwtbGludXgtbXVzbGhmCiBfYmludXRpbHNfdmVyc2lvbj0yLjMyCiBfZ2NjX3Zl cnNpb249OS4zLjAKIF9tdXNsX3ZlcnNpb249MS4xLjI0CiBfbGludXhfdmVyc2lvbj00LjE5Ci0K LV90cmlwbGV0PW1pcHNlbC1saW51eC1tdXNsaGYKLV9mcHVmbGFncz0iLS13aXRoLWZsb2F0PWhh cmQgLS13aXRoLWZwIgotX2FyY2hmbGFncz0iLW1hcmNoPW1pcHMzMnIyIC1taGFyZC1mbG9hdCIK LV9zeXNyb290PSIvdXNyLyR7X3RyaXBsZXR9IgotCiBwa2duYW1lPWNyb3NzLSR7X3RyaXBsZXR9 CiB2ZXJzaW9uPTAuMzMKIHJldmlzaW9uPTMKLXNob3J0X2Rlc2M9IkNyb3NzIHRvb2xjaGFpbiBm b3IgTUlQUzMycjIgTEUgaGFyZGZsb2F0IHRhcmdldCAobXVzbCkiCitidWlsZF9zdHlsZT12b2lk LWNyb3NzCitjb25maWd1cmVfYXJncz0iLS13aXRoLWFyY2g9bWlwczMycjIgLS13aXRoLWZsb2F0 PWhhcmQKKyAtLXdpdGgtbGlua2VyLWhhc2gtc3R5bGU9c3lzdiIKK2hvc3RtYWtlZGVwZW5kcz0i dGFyIGdjYy1vYmpjIGZsZXggcGVybCBweXRob24zIgorbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVs IGxpYm1wYy1kZXZlbCB6bGliLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIgorZGVwZW5kcz0i JHtwa2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCitzaG9ydF9kZXNjPSJWb2lk IGNyb3NzIHRvb2xjaGFpbiBmb3IgJHtfdHJpcGxldH0iCiBtYWludGFpbmVyPSJPcnBoYW5lZCA8 b3JwaGFuQHZvaWRsaW51eC5vcmc+IgogaG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51eC5v cmcvIgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR1BMLTMuMC1vci1sYXRlciwgTUlUIgog ZGlzdGZpbGVzPSIKICAke0dOVV9TSVRFfS9iaW51dGlscy9iaW51dGlscy0ke19iaW51dGlsc192 ZXJzaW9ufS50YXIueHoKICAke0dOVV9TSVRFfS9nY2MvZ2NjLSR7X2djY192ZXJzaW9ufS9nY2Mt JHtfZ2NjX3ZlcnNpb259LnRhci54egotIGh0dHA6Ly93d3cubXVzbC1saWJjLm9yZy9yZWxlYXNl cy9tdXNsLSR7X211c2xfdmVyc2lvbn0udGFyLmd6CisgaHR0cHM6Ly93d3cubXVzbC1saWJjLm9y Zy9yZWxlYXNlcy9tdXNsLSR7X211c2xfdmVyc2lvbn0udGFyLmd6CiAgJHtLRVJORUxfU0lURX0v a2VybmVsL3Y0LngvbGludXgtJHtfbGludXhfdmVyc2lvbn0udGFyLnh6IgogY2hlY2tzdW09IjBh YjZjNTVkZDg2YTkyZWQ1NjE5NzJiYTE1YjliNzBhOGI5Zjc1NTU3Zjg5NjQ0NmM4MmU4YjM2ZTQ3 M2VlMDQKICA3MWUxOTc4Njc2MTFmNjA1NGFhMTExOWIxM2EwYzBhYmFjMTI4MzQ3NjVmZTJkODFm MzVhYzU3Zjg0Zjc0MmQxCiAgMTM3MGM5YTgxMmIyY2YyYTdkOTI4MDI1MTBjY2EwMDU4Y2MzN2U2 NmE3YmVkZDcwMDUxZjBhMzQwMTUwMjJhMwogIDBjNjhmNTY1NTUyOGFlZDRmOTlkYWU3MWE1YjI1 OWVkYzkzMjM5ZmE4OTllMmRmNzljMDU1Mjc1YzIxNzQ5YTEiCiAKLWxpYjMyZGlzYWJsZWQ9eWVz Ci1ub2Nyb3NzPXllcwotbm9waWU9eWVzCi1ub2RlYnVnPXllcwotY3JlYXRlX3dya3NyYz15ZXMK LQotaG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZmxleCBwZXJsIHB5dGhvbjMiCi1tYWtl ZGVwZW5kcz0iemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbCBsaWJtcGMtZGV2ZWwgaXNs MTUtZGV2ZWwiCi1ub3N0cmlwX2ZpbGVzPSJsaWJjYWZfc2luZ2xlLmEgbGliZ2NjLmEgbGliZ2Nv di5hIGxpYmdjY19laC5hCi0gbGliZ25hcmxfcGljLmEgbGliZ25hcmwuYSBsaWJnbmF0X3BpYy5h IGxpYmduYXQuYSBsaWJnbWVtLmEiCi1kZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9u fV8ke3JldmlzaW9ufSIKLQotX2FwcGx5X3BhdGNoKCkgewotCWxvY2FsIGFyZ3M9IiQxIiBwbmFt ZT0iJChiYXNlbmFtZSAkMikiCi0KLQlpZiBbICEgLWYgIi4ke3BuYW1lfV9kb25lIiBdOyB0aGVu Ci0JCXBhdGNoIC1OICRhcmdzIC1pICQyCi0JCXRvdWNoIC4ke3BuYW1lfV9kb25lCi0JZmkKLX0K LQotX2JpbnV0aWxzX2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8u YmludXRpbHNfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2df bm9ybWFsICJCdWlsZGluZyBjcm9zcyBiaW51dGlscyBib290c3RyYXBcbiIKLQotCVsgISAtZCBi aW51dGlscy1idWlsZCBdICYmIG1rZGlyIGJpbnV0aWxzLWJ1aWxkCi0JY2QgYmludXRpbHMtYnVp bGQKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBs ZXR9IgotCV9hcmdzKz0iIC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0t ZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9hcmdzKz0iIC0t ZGlzYWJsZS13ZXJyb3IiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJncys9IiAt LXdpdGgtc3lzdGVtLXpsaWIiCi0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9IgotCi0JLi4vYmludXRp bHMtJHtfYmludXRpbHNfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlIGNvbmZp Z3VyZS1ob3N0ICYmIG1ha2UgJHttYWtlam9ic30KLQltYWtlIGluc3RhbGwKLQotCXRvdWNoICR7 d3Jrc3JjfS8uYmludXRpbHNfYnVpbGRfZG9uZQotfQotCi1fZ2NjX2Jvb3RzdHJhcCgpIHsKLQls b2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmdjY19ib290c3RyYXBfZG9uZSBdICYmIHJl dHVybiAwCi0KLQljZCAke3dya3NyY30vZ2NjLSR7X2djY192ZXJzaW9ufQotCWZvciBmIGluICR7 WEJQU19TUkNQS0dESVJ9L2djYy9wYXRjaGVzLyoucGF0Y2g7IGRvCi0JCV9hcHBseV9wYXRjaCAt cDAgIiRmIgotCWRvbmUKLQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9nY2MvZmlsZXMvKi1t dXNsLnBhdGNoOyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAxICIkZiIKLQlkb25lCi0KLQltc2dfbm9y bWFsICJCdWlsZGluZyBjcm9zcyBnY2MgYm9vdHN0cmFwXG4iCi0KLQlbICEgLWQgLi4vZ2NjLWJv b3RzdHJhcCBdICYmIG1rZGlyIC4uL2djYy1ib290c3RyYXAKLQljZCAuLi9nY2MtYm9vdHN0cmFw Ci0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0 fSIKLQlfYXJncys9IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLXdp dGgtbmV3bGliIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jIgotCV9hcmdzKz0iIC0t d2l0aC1uZXdsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNzcCIKLQlfYXJncys9IiAtLWRp c2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJxdWFkbWF0aCIKLQlfYXJncys9IiAt LWRpc2FibGUtdGhyZWFkcyIKLQlfYXJncys9IiAtLWRpc2FibGUtZGVjaW1hbC1mbG9hdCIKLQlf YXJncys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtcHgiCi0J X2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm11ZGZsYXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmdv bXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmF0b21pYyIKLQlfYXJncys9IiAke19mcHVmbGFn c30iCi0KLQlDRkxBR1M9Ii1PMCAtZzAiIENYWEZMQUdTPSItTzAgLWcwIiBcCi0JCS4uL2djYy0k e19nY2NfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0J bWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmdjY19ib290c3RyYXBfZG9uZQotfQot Ci1fbGludXhfaGVhZGVycygpIHsKLQlbIC1mICR7d3Jrc3JjfS8ubGludXhfYnVpbGRfZG9uZSBd ICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBMaW51 eCBBUEkgaGVhZGVyc1xuIgotCi0JY2QgbGludXgtJHtfbGludXhfdmVyc2lvbn0KLQotCWZvciBm IGluICR7WEJQU19TUkNQS0dESVJ9L2tlcm5lbC1saWJjLWhlYWRlcnMvcGF0Y2hlcy8qLnBhdGNo OyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAwICRmCi0JZG9uZQotCi0JbWFrZSBBUkNIPW1pcHMgaGVh ZGVyc19jaGVjawotCW1ha2UgQVJDSD1taXBzIElOU1RBTExfSERSX1BBVEg9JHtfc3lzcm9vdH0v dXNyIGhlYWRlcnNfaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5saW51eF9idWlsZF9kb25l Ci19Ci0KLV9tdXNsX2J1aWxkKCkgewotCVsgLWYgJHt3cmtzcmN9Ly5tdXNsX2J1aWxkX2RvbmUg XSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L211c2wtJHtfbXVzbF92ZXJzaW9ufQotCW1z Z19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIG11c2wgbGliY1xuIgotCi0JIyBBcHBseSBtdXNsIHBh dGNoZXMgaWYgdGhlcmUgYXJlIGFueQotCWlmIFsgLWQgIiR7WEJQU19TUkNQS0dESVJ9L211c2wv cGF0Y2hlcyIgXTsgdGhlbgotCQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9tdXNsL3BhdGNo ZXMvKi5wYXRjaDsgZG8KLQkJCV9hcHBseV9wYXRjaCAtcDAgIiRmIgotCQlkb25lCi0JZmkKLQot CUNDPSIke190cmlwbGV0fS1nY2MiIENGTEFHUz0iLU9zIC1waXBlIC1mUElDICR7X2FyY2hmbGFn c30iIFwKLQkJLi9jb25maWd1cmUgLS1wcmVmaXg9L3VzcgotCi0JbWFrZSAke21ha2Vqb2JzfQot CW1ha2UgREVTVERJUj0ke19zeXNyb290fSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLm11 c2xfYnVpbGRfZG9uZQotfQotCi1fZ2NjX2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1m ICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9 Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2NjIGZpbmFsXG4iCi0KLQlbICEgLWQgZ2Nj LWJ1aWxkIF0gJiYgbWtkaXIgZ2NjLWJ1aWxkCi0JY2QgZ2NjLWJ1aWxkCi0KLQlfYXJncz0iLS1w cmVmaXg9L3VzciIKLQlfYXJncys9IiAtLWxpYmV4ZWNkaXI9L3Vzci9saWIiCi0JX2FyZ3MrPSIg LS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9v dH0iCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGFuZ3VhZ2VzPWMsYWRhLGMrKyxvYmpjLG9iai1jKyss Zm9ydHJhbixsdG8iCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGliYWRhIgotCV9hcmdzKz0iIC0tZW5h YmxlLWx0byIKLQlfYXJncys9IiAtLWVuYWJsZS1kZWZhdWx0LXBpZSIKLQlfYXJncys9IiAtLWVu YWJsZS1kZWZhdWx0LXNzcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlic2FuaXRpemVyIgotCV9h cmdzKz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9h cmdzKz0iIC0tZGlzYWJsZS1saWJxdWFkbWF0aCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXB4 IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtdWRmbGFwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1s aWJhdG9taWMiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGlic3NwIgotCV9hcmdzKz0iIC0tZW5hYmxl LXNoYXJlZCIKLQlfYXJncys9IiAtLWRpc2FibGUtc3ltdmVycyIKLQlfYXJncys9IiAke19mcHVm bGFnc30iCi0KLQkuLi9nY2MtJHtfZ2NjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0J bWFrZSAke21ha2Vqb2JzfQotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYnVpbGRfZG9uZQotfQot Ci1kb19idWlsZCgpIHsKLQkjIEVuc3VyZSB3ZSB1c2Ugc2FuZSBlbnZpcm9ubWVudAotCXVuc2V0 IENDIENYWCBDUFAgTEQgQVMgQVIgUkFOTElCIE9CSkRVTVAgUkVBREVMRiBOTQotCXVuc2V0IENG TEFHUyBDWFhGTEFHUyBDUFBGTEFHUyBMREZMQUdTCi0JZXhwb3J0IENGTEFHUz0iLU9zIC1waXBl IiBDWFhGTEFHUz0iLU9zIC1waXBlIgotCi0JZm9yIGYgaW4gaW5jbHVkZSBsaWIgbGliZXhlYyBi aW4gc2JpbjsgZG8KLQkJaWYgWyAhIC1kICR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4KLQkJ CW1rZGlyIC1wICR7X3N5c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZpCi0JCWlmIFsgISAtaCAke19zeXNy b290fS8ke2Z9IF07IHRoZW4KLQkJCWxuIC1zZnIgJHtfc3lzcm9vdH0vdXNyLyR7Zn0gJHtfc3lz cm9vdH0vJHtmfQotCQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7X3N5c3Jvb3R9L3Vzci9saWIz MgotCWxuIC1zZiB1c3IvbGliICR7X3N5c3Jvb3R9L2xpYjMyCi0KLQlfYmludXRpbHNfYnVpbGQK LQlfZ2NjX2Jvb3RzdHJhcAotCV9saW51eF9oZWFkZXJzCi0JX211c2xfYnVpbGQKLQlfZ2NjX2J1 aWxkCi19Ci0KLWRvX2luc3RhbGwoKSB7Ci0JZm9yIGYgaW4gaW5jbHVkZSBsaWIgbGliZXhlYyBi aW4gc2JpbjsgZG8KLQkJaWYgWyAhIC1kICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0g XTsgdGhlbgotCQkJbWtkaXIgLXAgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfQotCQlm aQotCQlpZiBbICEgLWggJHtERVNURElSfS8ke19zeXNyb290fS8ke2Z9IF07IHRoZW4KLQkJCWxu IC1zZnIgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfSBcCi0JCQkJJHtERVNURElSfS8k e19zeXNyb290fS8ke2Z9Ci0JCWZpCi0JZG9uZQotCWxuIC1zZiBsaWIgJHtERVNURElSfS8ke19z eXNyb290fS91c3IvbGliMzIKLQlsbiAtc2YgdXNyL2xpYiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9 L2xpYjMyCi0KLQkjIGluc3RhbGwgbGludXggQVBJIGhlYWRlcnMKLQljZCAke3dya3NyY30vbGlu dXgtJHtfbGludXhfdmVyc2lvbn0KLQltYWtlIEFSQ0g9bWlwcyBJTlNUQUxMX0hEUl9QQVRIPSR7 REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyIGhlYWRlcnNfaW5zdGFsbAotCXJtIC1mICQoZmluZCAk e0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlIC1uYW1lIC5pbnN0YWxsIC1vciAtbmFt ZSAuLmluc3RhbGwuY21kKQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9pbmNs dWRlL2RybQotCi0JIyBpbnN0YWxsIGNyb3NzIGJpbnV0aWxzCi0JY2QgJHt3cmtzcmN9L2JpbnV0 aWxzLWJ1aWxkCi0JbWFrZSBERVNURElSPSR7REVTVERJUn0gaW5zdGFsbAotCi0JIyBpbnN0YWxs IGNyb3NzIGdjYwotCWNkICR7d3Jrc3JjfS9nY2MtYnVpbGQKLQltYWtlIERFU1RESVI9JHtERVNU RElSfSBpbnN0YWxsCi0KLQkjIG1vdmUgbGliY2MxLnNvKiB0byB0aGUgc3lzcm9vdAotCW12ICR7 REVTVERJUn0vdXNyL2xpYi9saWJjYzEuc28qICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xp YgotCi0JIyBpbnN0YWxsIG11c2wgbGliYyBmb3IgdGFyZ2V0Ci0JY2QgJHt3cmtzcmN9L211c2wt JHtfbXVzbF92ZXJzaW9ufQotCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9LyR7X3N5c3Jvb3R9IGlu c3RhbGwKLQotCSMgUmVtb3ZlIHVzZWxlc3MgaGVhZGVycy4KLQlybSAtcmYgJHtERVNURElSfS91 c3IvbGliL2djYy8ke190cmlwbGV0fS8qL2luY2x1ZGUtZml4ZWQKLQotCSMgTWFrZSBsZC1tdXNs LnNvIHN5bWxpbmtzIHJlbGF0aXZlLgotCWxuIC1zZiBsaWJjLnNvICR7REVTVERJUn0vJHtfc3lz cm9vdH0vdXNyL2xpYi9sZC1tdXNsLW1pcHNlbC5zby4xCi0KLQkjIHN5bWxpbmtzIGZvciBnbmFy bCBhbmQgZ25hdCBzaGFyZWQgbGlicmFyaWVzCi0JX21ham9ydmVyPSR7X2djY192ZXJzaW9uJS4q Lip9Ci0JX2FkYWxpYj11c3IvbGliL2djYy8ke190cmlwbGV0fS8ke19nY2NfdmVyc2lvbn0vYWRh bGliCi0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXJsLSR7X21ham9ydmVyfS5z byAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQltdiAtdiAke0RFU1RESVJ9LyR7X2Fk YWxpYn0vbGliZ25hdC0ke19tYWpvcnZlcn0uc28gJHtERVNURElSfS8ke19zeXNyb290fS91c3Iv bGliCi0JbG4gLXN2ZiBsaWJnbmFybC0ke19tYWpvcnZlcn0uc28gbGliZ25hcmwuc28KLQlsbiAt c3ZmIGxpYmduYXQtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXQuc28KLQlybSAtdmYgJHtERVNURElS fS8ke19hZGFsaWJ9L2xpYmduYXtybCx0fS5zbwotCi0JIyBSZW1vdmUgdW5uZWNlc3Nhcnkgc3R1 ZmYKLQlybSAtZiAke0RFU1RESVJ9L3Vzci9saWIqL2xpYmliZXJ0eS5hCi0Jcm0gLXJmICR7REVT VERJUn0vdXNyL3NoYXJlCi0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0ve2V0Yyx2YXJ9 Ci0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL3tzYmluLHNoYXJlLGxpYmV4ZWN9 Ci0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS9saWJleGVjCi0Jcm0gLWYgJHtERVNURElS fS8ke19zeXNyb290fS9saWIvKi5weQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0ve3Ni aW4sbGlifQotfQorY3Jvc3NfdHJpcGxldD0ke190cmlwbGV0fQorY3Jvc3Nfd29yZHNpemU9MzIK K2Nyb3NzX2xpYmM9bXVzbAorY3Jvc3NfYmludXRpbHNfdmVyc2lvbj0ke19iaW51dGlsc192ZXJz aW9ufQorY3Jvc3NfZ2NjX3ZlcnNpb249JHtfZ2NjX3ZlcnNpb259Citjcm9zc19tdXNsX3ZlcnNp b249JHtfbXVzbF92ZXJzaW9ufQorY3Jvc3NfbGludXhfdmVyc2lvbj0ke19saW51eF92ZXJzaW9u fQorY3Jvc3NfbGludXhfYXJjaD1hcm0KK2Nyb3NzX2djY19za2lwX2dvPXllcworY3Jvc3NfbXVz bF9jZmxhZ3M9Ii1PcyAtbWFyY2g9bWlwczMycjIgLW1oYXJkLWZsb2F0IgogCiBjcm9zcy1taXBz ZWwtbGludXgtbXVzbGhmLWxpYmNfcGFja2FnZSgpIHsKIAlzaG9ydF9kZXNjKz0iIC0gbGliYyBm aWxlcyIKIAlub3N0cmlwPXllcwogCW5vdmVyaWZ5cmRlcHM9eWVzCiAJbm9zaGxpYnByb3ZpZGVz PXllcworCiAJcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlICR7X3N5c3Jvb3R9CisJCXZtb3ZlIHVz ci8ke2Nyb3NzX3RyaXBsZXR9CiAJfQogfQo= --===============5201181908419962082==--