From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: * X-Spam-Status: No, score=1.5 required=5.0 tests=ALL_TRUSTED,DKIM_ADSP_NXDOMAIN, URIBL_BLACK autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 24657 invoked from network); 25 Dec 2020 17:25:16 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 25 Dec 2020 17:25:16 -0000 Content-Type: multipart/mixed; boundary="===============6550095815285098717==" 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: Fri, 25 Dec 2020 18:25:14 +0100 List-Id: Message-ID: <20201225172514.NoRY1rdIj1JpsifMoREQN7bI705RlnM_RP6UZJb3n9Q@z> GitHub notification mails are now in MIME to allow UTF8. --===============6550095815285098717== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgcTY2IGFnYWluc3QgbWFzdGVyIG9u IHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNvbS9xNjYvdm9p ZC1wYWNrYWdlcyBjcm9zcy1zdHlsZQpodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lk LXBhY2thZ2VzL3B1bGwvMjc0MTIKCltSRkMgV0lQXSBjcm9zc3Rvb2xjaGFpbiBidWlsZC1zdHls ZQpUaGlzIGludHJvZHVjZXMgYSBidWlsZC1zdHlsZSBmb3Igc3lzdGVtIGNyb3NzdG9vbGNoYWlu cy4gSXQgb25seSB3b3JrcywgYW5kIHdpbGwgb25seSB3b3JrLCBmb3IgdG9vbGNoYWlucyB0YXJn ZXRpbmcgVm9pZCBhbmQgb25lIG9mIGl0cyBzdGFuZGFyZCBsaWJyYXJpZXMuIFRoZSBub25lIHRh cmdldHMgYW5kIHN0dWZmIGxpa2UgbWluZ3cgYXJlIGV4cGxpY2l0bHkgYSBub24tZ29hbCwgdG8g cmVkdWNlIHRoZSBhbW91bnQgb2YgbWFnaWMgd2UgaGF2ZSB0byBkby4NCg0KVGhpcyBoYXMgYSBi dW5jaCBvZiBhZHZhbnRhZ2VzOg0KDQotIGNyb3NzdG9vbGNoYWluIHRlbXBsYXRlcyBjYW4gbm93 IGJlIHNtYWxsIGFuZCBzaW1wbGUgKGFsc28gYXR0YWNoZWQ6IHByb29mIG9mIGNvbmNlcHQgcmVk b2luZyBvZiBgY3Jvc3MtYWFyY2g2NC1saW51eC1nbnVgKQ0KLSBjcm9zc3Rvb2xjaGFpbnMgd3Jp dGVuIHdpdGggdGhpcyBidWlsZC1zdHlsZSB3aWxsIG5vIGxvbmdlciBtZXNzIHVwIG1hc3RlcmRp cnMgbGlrZSB0aGUgZXhpc3Rpbmcgb25lcyBkbzsgeW91IGNhbiBzYWZlbHkgYnVpbGQgeW91ciBz dHVmZiB3aXRob3V0IGAtdGAgYW5kIHlvdXIgYG1hc3RlcmRpcmAgd2lsbCBiZSBwcmlzdGluZQ0K LSB1bmlmaWNhdGlvbiBvZiBvcHRpb25zIHBhc3NlZCB0byBgZ2NjYC9saWJjL2BiaW51dGlsc2Ag Y29uZmlndXJlLCBhcyBtdWNoIGFzIHBvc3NpYmxlDQotIHJlZHVjZWQgcmVwZWF0ZWQgYm9pbGVy cGxhdGUgY29kZSBiZXR3ZWVuIGluZGl2aWR1YWwgY3Jvc3N0b29sY2hhaW5zDQotIGBjY2FjaGVg IGZyaWVuZGx5DQotIGVhc2llciB1cGdyYWRlcywgZWFzaWVyIG1haW50ZW5hbmNlLCBldGMNCg0K VGhpcyBpcyBjdXJyZW50bHkgaW5jb21wbGV0ZS4gVGhlc2UgdGhpbmdzIGFyZSBsZWZ0IHRvIGRv Og0KDQotIFt4XSBBZGQgbXVzbCBzdXBwb3J0DQotIFt4XSBDbGVhbiB1cCB0aGUgY29uZmlndXJl IHBhcmFtcywgb25seSBrZWVwIHRoZSBnZW5lcmljIG9uZXMgaW4gdGhlIGJ1aWxkLXN0eWxlLCBz cGVjaWZpYyBvbmVzIHdpbGwgZ28gaW50byBpbmRpdmlkdWFsIGNyb3NzdG9vbGNoYWlucyAodGhp cyBvbmUgaXMgbGFyZ2VseSBiYXNlZCBvbiB3aGF0IHRoZSBhYXJjaDY0IG9uZSB3YXMgZG9pbmcp DQotIFsgXSBSZXdvcmsgdGhlIG90aGVyIHRlbXBsYXRlcyB0byB1c2UgdGhpcw0KLSBbIF0gNjQt Yml0IGNyb3NzIG9uIDMyLWJpdCBob3N0cyBpcyBwcm9iYWJseSBhY3R1YWxseSBmaW5lIGluIGdl bmVyYWwsIHdlIGp1c3QgbmVlZCB0byBlbmFibGUgaXQNCi0gWyBdIEFsbG93IGdsaWJjIGNyb3Nz dG9vbGNoYWlucyBvbiBtdXNsICh0aGlzIG5lZWRzIGBnbGliY2AgMi4zMiB0aG91Z2gpDQoNCkZv ciBub3csIHBvc3RpbmcgZm9yIGlucHV0Lg0KDQpARHVuY2FlbiBAbGVhaG5ldWtpcmNoZW4gQHB1 bGxtb2xsIEBlcmljb25yIEB2b2lkLWxpbnV4L3BrZy1jb21taXR0ZXJzIA0KDQpbY2kgc2tpcF0K CkEgcGF0Y2ggZmlsZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFj a2FnZXMvcHVsbC8yNzQxMi5wYXRjaCBpcyBhdHRhY2hlZA== --===============6550095815285098717== 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 IDI1IERlYyAyMDIwIDE0OjU4OjM4ICswMTAwClN1YmplY3Q6IFtQQVRDSCAxLzRdIGdjYzogdXNl IGNvbnNpc3RlbnQgcGF0Y2ggbGV2ZWwgZm9yIG11c2wgcGF0Y2hlcwoKbmVlZGVkIGZvciBjcm9z cyBidWlsZCBzdHlsZQotLS0KIHNyY3BrZ3MvZ2NjL2ZpbGVzL2xpYmduYXJsLW11c2wucGF0Y2gg fCAgOCArKysrLS0tLQogc3JjcGtncy9nY2MvZmlsZXMvbGlic3NwLW11c2wucGF0Y2ggICB8IDEy ICsrKysrKy0tLS0tLQogc3JjcGtncy9nY2MvdGVtcGxhdGUgICAgICAgICAgICAgICAgICB8ICA0 ICsrLS0KIDMgZmlsZXMgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nY2MvZmlsZXMvbGliZ25hcmwtbXVzbC5wYXRjaCBiL3Ny Y3BrZ3MvZ2NjL2ZpbGVzL2xpYmduYXJsLW11c2wucGF0Y2gKaW5kZXggMzFkMzk2MDdlYTQuLjVl ZDlmMTZmNTU4IDEwMDY0NAotLS0gYS9zcmNwa2dzL2djYy9maWxlcy9saWJnbmFybC1tdXNsLnBh dGNoCisrKyBiL3NyY3BrZ3MvZ2NjL2ZpbGVzL2xpYmduYXJsLW11c2wucGF0Y2gKQEAgLTMsOCAr Myw4IEBAIFVwc3RyZWFtOiBVbmtub3duCiBSZWFzb246IFBhdGNoIGxpYmduYXJsIHRvIG5vdCB1 c2UgZnVuY3Rpb24gbWlzc2luZyBmcm9tIG11c2wuCiAKIGRpZmYgLXJ1cCBnY2MtOC4yLjAvZ2Nj L2FkYS9saWJnbmFybC9zLW9zaW50ZV9fbGludXguYWRzIGdjYy04LjIuMC1uZXcvZ2NjL2FkYS9s aWJnbmFybC9zLW9zaW50ZV9fbGludXguYWRzCi0tLS0gZ2NjLTguMi4wL2djYy9hZGEvbGliZ25h cmwvcy1vc2ludGVfX2xpbnV4LmFkcwkyMDE4LTAxLTExIDAwOjU1OjI1LjAwMDAwMDAwMCAtMDgw MAotKysrIGdjYy04LjIuMC1uZXcvZ2NjL2FkYS9saWJnbmFybC9zLW9zaW50ZV9fbGludXguYWRz CTIwMTgtMTEtMDEgMTY6MTY6MjMuMzcyNDUyOTUxIC0wNzAwCistLS0gZ2NjL2FkYS9saWJnbmFy bC9zLW9zaW50ZV9fbGludXguYWRzCTIwMTgtMDEtMTEgMDA6NTU6MjUuMDAwMDAwMDAwIC0wODAw CisrKysgZ2NjL2FkYS9saWJnbmFybC9zLW9zaW50ZV9fbGludXguYWRzCTIwMTgtMTEtMDEgMTY6 MTY6MjMuMzcyNDUyOTUxIC0wNzAwCiBAQCAtMzk0LDEyICszOTQsNiBAQCBwYWNrYWdlIFN5c3Rl bS5PU19JbnRlcmZhY2UgaXMKICAgICBQVEhSRUFEX1JXTE9DS19QUkVGRVJfV1JJVEVSX05QICAg ICAgICAgICAgICA6IGNvbnN0YW50IDo9IDE7CiAgICAgUFRIUkVBRF9SV0xPQ0tfUFJFRkVSX1dS SVRFUl9OT05SRUNVUlNJVkVfTlAgOiBjb25zdGFudCA6PSAyOwpAQCAtMzEsOCArMzEsOCBAQCBk aWZmIC1ydXAgZ2NjLTguMi4wL2djYy9hZGEvbGliZ25hcmwvcy1vc2ludGVfX2xpbnV4LmFkcyBn Y2MtOC4yLjAtbmV3L2djYy9hZGEvbAogICAgICAgIHNjaGVkX3ByaW9yaXR5IDogaW50OyAgLS0g IHNjaGVkdWxpbmcgcHJpb3JpdHkKICAgICBlbmQgcmVjb3JkOwogZGlmZiAtcnVwIGdjYy04LjIu MC9nY2MvYWRhL2xpYmduYXJsL3MtdGFwcm9wX19saW51eC5hZGIgZ2NjLTguMi4wLW5ldy9nY2Mv YWRhL2xpYmduYXJsL3MtdGFwcm9wX19saW51eC5hZGIKLS0tLSBnY2MtOC4yLjAvZ2NjL2FkYS9s aWJnbmFybC9zLXRhcHJvcF9fbGludXguYWRiCTIwMTgtMDEtMTEgMDA6NTU6MjUuMDAwMDAwMDAw IC0wODAwCi0rKysgZ2NjLTguMi4wLW5ldy9nY2MvYWRhL2xpYmduYXJsL3MtdGFwcm9wX19saW51 eC5hZGIJMjAxOC0xMS0xMyAxMToyODozNi40MzM5NjQ0NDkgLTA4MDAKKy0tLSBnY2MvYWRhL2xp YmduYXJsL3MtdGFwcm9wX19saW51eC5hZGIJMjAxOC0wMS0xMSAwMDo1NToyNS4wMDAwMDAwMDAg LTA4MDAKKysrKyBnY2MvYWRhL2xpYmduYXJsL3MtdGFwcm9wX19saW51eC5hZGIJMjAxOC0xMS0x MyAxMToyODozNi40MzM5NjQ0NDkgLTA4MDAKIEBAIC0yMDIsOSArMjAyLDYgQEAgcGFja2FnZSBi b2R5IFN5c3RlbS5UYXNrX1ByaW1pdGl2ZXMuT3BlcgogICAgIHByYWdtYSBJbXBvcnQKICAgICAg IChDLCBHTkFUX3B0aHJlYWRfY29uZGF0dHJfc2V0dXAsICJfX2duYXRfcHRocmVhZF9jb25kYXR0 cl9zZXR1cCIpOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nY2MvZmlsZXMvbGlic3NwLW11c2wucGF0 Y2ggYi9zcmNwa2dzL2djYy9maWxlcy9saWJzc3AtbXVzbC5wYXRjaAppbmRleCA4YTY5MmMwZDY2 NC4uOGQ0N2I0NDJhYTEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ2NjL2ZpbGVzL2xpYnNzcC1tdXNs LnBhdGNoCisrKyBiL3NyY3BrZ3MvZ2NjL2ZpbGVzL2xpYnNzcC1tdXNsLnBhdGNoCkBAIC0yLDgg KzIsOCBAQCBGaXJzdCBwYXJ0IHRha2VuIGZyb20gQWxwaW5lLgogCiBTZWNvbmQgcGFydCBhZGRl ZCB0byBwcmV2ZW50IGdjY2dvIGZyb20gdGhpbmtpbmcgaXQgY2FuIC1mc3BsaXQtc3RhY2sgb24g bXVzbC4KIAotLS0tIGEvZ2NjL2djYy5jCi0rKysgYi9nY2MvZ2NjLmMKKy0tLSBnY2MvZ2NjLmMK KysrKyBnY2MvZ2NjLmMKIEBAIC04NzYsOSArODc2LDggQEAKICAjZW5kaWYKICAKQEAgLTE1LDgg KzE1LDggQEAgU2Vjb25kIHBhcnQgYWRkZWQgdG8gcHJldmVudCBnY2NnbyBmcm9tIHRoaW5raW5n IGl0IGNhbiAtZnNwbGl0LXN0YWNrIG9uIG11c2wuCiAgI2Vsc2UKICAjZGVmaW5lIExJTktfU1NQ X1NQRUMgIiV7ZnN0YWNrLXByb3RlY3Rvcnxmc3RhY2stcHJvdGVjdG9yLWFsbCIgXAogIAkJICAg ICAgICJ8ZnN0YWNrLXByb3RlY3Rvci1zdHJvbmd8ZnN0YWNrLXByb3RlY3Rvci1leHBsaWNpdCIg XAotLS0tIGEvZ2NjL2NvbmZpZy9pMzg2L2dudS11c2VyLWNvbW1vbi5oCi0rKysgYi9nY2MvY29u ZmlnL2kzODYvZ251LXVzZXItY29tbW9uLmgKKy0tLSBnY2MvY29uZmlnL2kzODYvZ251LXVzZXIt Y29tbW9uLmgKKysrKyBnY2MvY29uZmlnL2kzODYvZ251LXVzZXItY29tbW9uLmgKIEBAIC02NCw5 ICs2NCwzIEBAIGFsb25nIHdpdGggR0NDOyBzZWUgdGhlIGZpbGUgQ09QWUlORzMuICBJZiBub3Qg c2VlCiAgCiAgLyogU3RhdGljIHN0YWNrIGNoZWNraW5nIGlzIHN1cHBvcnRlZCBieSBtZWFucyBv ZiBwcm9iZXMuICAqLwpAQCAtMjcsOCArMjcsOCBAQCBTZWNvbmQgcGFydCBhZGRlZCB0byBwcmV2 ZW50IGdjY2dvIGZyb20gdGhpbmtpbmcgaXQgY2FuIC1mc3BsaXQtc3RhY2sgb24gbXVzbC4KIC0j aWYgSEFWRV9HQVNfQ0ZJX1BFUlNPTkFMSVRZX0RJUkVDVElWRQogLSNkZWZpbmUgVEFSR0VUX0NB Tl9TUExJVF9TVEFDSwogLSNlbmRpZgotLS0tIGEvZ2NjL2NvbmZpZy9pMzg2L2dudS5oCi0rKysg Yi9nY2MvY29uZmlnL2kzODYvZ251LmgKKy0tLSBnY2MvY29uZmlnL2kzODYvZ251LmgKKysrKyBn Y2MvY29uZmlnL2kzODYvZ251LmgKIEBAIC00MCwxMSArNDAsNiBAQCBhbG9uZyB3aXRoIEdDQy4g IElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KICAvKiBpMzg2IGds aWJjIHByb3ZpZGVzIF9fc3RhY2tfY2hrX2d1YXJkIGluICVnczoweDE0LiAgKi8KICAjZGVmaW5l IFRBUkdFVF9USFJFQURfU1NQX09GRlNFVCAgICAgICAgMHgxNApkaWZmIC0tZ2l0IGEvc3JjcGtn cy9nY2MvdGVtcGxhdGUgYi9zcmNwa2dzL2djYy90ZW1wbGF0ZQppbmRleCA0NzJiOTUyZWFlMy4u MDJhNzUxNjAwMmQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ2NjL3RlbXBsYXRlCisrKyBiL3NyY3Br Z3MvZ2NjL3RlbXBsYXRlCkBAIC0xNzMsOCArMTczLDggQEAgcHJlX2NvbmZpZ3VyZSgpIHsKIAlz ZWQgLWkgIi9hY19jcHA9L3MvXCRDUFBGTEFHUy9cJENQUEZMQUdTIC1PMi8iIHtnY2MsbGliaWJl cnR5fS9jb25maWd1cmUKIAljYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KIAkJKi1tdXNs KQotCQkJcGF0Y2ggLXAxIC1pICR7RklMRVNESVJ9L2xpYmduYXJsLW11c2wucGF0Y2gKLQkJCXBh dGNoIC1wMSAtaSAke0ZJTEVTRElSfS9saWJzc3AtbXVzbC5wYXRjaAorCQkJcGF0Y2ggLXAwIC1p ICR7RklMRVNESVJ9L2xpYmduYXJsLW11c2wucGF0Y2gKKwkJCXBhdGNoIC1wMCAtaSAke0ZJTEVT RElSfS9saWJzc3AtbXVzbC5wYXRjaAogCQkJcGF0Y2ggLXAwIC1pICR7RklMRVNESVJ9L2djY2dv LW11c2wucGF0Y2gKIAkJCTs7CiAJZXNhYwoKRnJvbSAwM2YyYmIxM2RiNGFhYTQwMDAxNWU5ZDFm Y2JmNmYxMGU2NjFlZjc1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBxNjYgPGRhbmll bEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBGcmksIDI1IERlYyAyMDIwIDAwOjQyOjI2ICswMTAwClN1 YmplY3Q6IFtQQVRDSCAyLzRdIGNvbW1vbi9idWlsZC1zdHlsZTogYWRkIHZvaWQtY3Jvc3MKCnRo aXMgaW50cm9kdWNlcyBhIG5ldyBidWlsZC1zdHlsZSB2b2lkLWNyb3NzLCB3aGljaCBjYW4gYmUg dXNlZAp0byB3cml0ZSBzeXN0ZW0gY3Jvc3N0b29sY2hhaW4gdGVtcGxhdGVzOyB0aGlzIGlzIHRv IHJlZHVjZSB0aGUKYW1vdW50IG9mIG1haW50ZW5hbmNlLCByZXNvbHZlIGV4aXN0aW5nIHByb2Js ZW1zIHdpdGggdGhlIGNyb3NzCnRvb2xjaGFpbiB0ZW1wbGF0ZXMgYW5kIHJlbW92ZSByZXBlYXRl ZCBjb2RlCi0tLQogY29tbW9uL2J1aWxkLXN0eWxlL3ZvaWQtY3Jvc3Muc2ggICAgICAgICAgICAg fCA1MzMgKysrKysrKysrKysrKysrKysrKwogY29tbW9uL2Vudmlyb25tZW50L2J1aWxkLXN0eWxl L3ZvaWQtY3Jvc3Muc2ggfCAgMTEgKwogMiBmaWxlcyBjaGFuZ2VkLCA1NDQgaW5zZXJ0aW9ucygr KQogY3JlYXRlIG1vZGUgMTAwNjQ0IGNvbW1vbi9idWlsZC1zdHlsZS92b2lkLWNyb3NzLnNoCiBj cmVhdGUgbW9kZSAxMDA2NDQgY29tbW9uL2Vudmlyb25tZW50L2J1aWxkLXN0eWxlL3ZvaWQtY3Jv c3Muc2gKCmRpZmYgLS1naXQgYS9jb21tb24vYnVpbGQtc3R5bGUvdm9pZC1jcm9zcy5zaCBiL2Nv bW1vbi9idWlsZC1zdHlsZS92b2lkLWNyb3NzLnNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi45NTc2NmNjYTMwNgotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9idWls ZC1zdHlsZS92b2lkLWNyb3NzLnNoCkBAIC0wLDAgKzEsNTMzIEBACisjCisjIFRoaXMgaGVscGVy IGlzIGZvciB2b2lkIHN5c3RlbSBjcm9zc3Rvb2xjaGFpbiB0ZW1wbGF0ZXMuCisjCisjIE1hbmRh dG9yeSB2YXJpYWJsZXM6CisjCisjIC0gY3Jvc3NfdHJpcGxldCAtIHRoZSB0YXJnZXQgdHJpcGxl dCAoZS5nLiBhYXJjaDY0LWxpbnV4LWdudSkKKyMgLSBjcm9zc193b3Jkc2l6ZSAtIDMyIG9yIDY0 CisjIC0gY3Jvc3NfbGliYyAtIGdsaWJjIG9yIG11c2wKKyMgLSBjcm9zc19iaW51dGlsc192ZXJz aW9uCisjIC0gY3Jvc3NfZ2NjX3ZlcnNpb24KKyMgLSBjcm9zc19saW51eF92ZXJzaW9uCisjIC0g Y3Jvc3NfbGludXhfYXJjaCAtIHRoZSBzb3VyY2UgQVJDSCBvZiB0aGUga2VybmVsIChlLmcuIGFy bTY0KQorIyAtIGNyb3NzX2dsaWJjX3ZlcnNpb24KKyMgLSBjcm9zc19tdXNsX3ZlcnNpb24KKyMg LSBjcm9zc19saWJ1Y29udGV4dF92ZXJzaW9uIC0gb25seSBvbiBtdXNsIHdpdGhvdXQgY3Jvc3Nf Z2NjX3NraXBfZ28KKyMgLSBjcm9zc19saWJ1Y29udGV4dF9hcmNoIC0gZGl0dG8sIHRoZSBsaWJ1 Y29udGV4dCBhcmNoCisjCisjIE9wdGlvbmFsIHZhcmlhYmxlczoKKyMKKyMgLSBjcm9zc19nY2Nf c2tpcF9nbyAtIGRvIG5vdCBidWlsZCBnY2NnbyBzdXBwb3J0CisjIC0gY3Jvc3NfYmludXRpbHNf Y29uZmlndXJlX2FyZ3MKKyMgLSBjcm9zc19nY2NfYm9vdHN0cmFwX2NvbmZpZ3VyZV9hcmdzCisj IC0gY3Jvc3NfZ2xpYmNfY2ZsYWdzCisjIC0gY3Jvc3NfZ2xpYmNfbGRmbGFncworIyAtIGNyb3Nz X2dsaWJjX2NvbmZpZ3VyZV9hcmdzCisjIC0gY3Jvc3NfbXVzbF9jZmxhZ3MKKyMgLSBjcm9zc19t dXNsX2xkZmxhZ3MKKyMgLSBjcm9zc19tdXNsX2NvbmZpZ3VyZV9hcmdzCisjCisjIGNvbmZpZ3Vy ZV9hcmdzIGlzIHVzZWQgZm9yIGZpbmFsIGdjYworIworCitfYXBwbHlfcGF0Y2goKSB7CisJbG9j YWwgYXJncz0iJDEiIHBuYW1lPSIkKGJhc2VuYW1lICQyKSIKKwlpZiBbICEgLWYgIi4ke3BuYW1l fV9kb25lIiBdOyB0aGVuCisJCXBhdGNoIC1OICRhcmdzIC1pICQyCisJCXRvdWNoIC4ke3BuYW1l fV9kb25lCisJZmkKK30KKworX2NoZWNrX2Nyb3NzX2RpcigpIHsKKwlsb2NhbCBkbmFtZT0kMQor CWxvY2FsIHNuYW1lPSQyCisJbG9jYWwgdmFyPSJjcm9zc18ke2RuYW1lfV92ZXJzaW9uIgorCWNk ICR7d3Jrc3JjfQorCWlmIFsgLWYgIi4ke3NuYW1lOj1kbmFtZX1fZG9uZSIgXTsgdGhlbgorCQly ZXR1cm4gMAorCWZpCisJaWYgWyAhIC1kICIkezF9LSR7IXZhcn0iIF07IHRoZW4KKwkJbXNnX2Vy cm9yICIkezF9LSR7IXZhcn0gZG9lcyBub3QgZXhpc3QiCisJZmkKK30KKworX2J1aWxkX2JpbnV0 aWxzKCkgeworCV9jaGVja19jcm9zc19kaXIgYmludXRpbHMKKworCW1zZ19ub3JtYWwgIkJ1aWxk aW5nIGJpbnV0aWxzIGZvciAke2Nyb3NzX3RyaXBsZXR9XG4iCisKKwlta2RpciAtcCBiaW51dGls c19idWlsZAorCWNkIGJpbnV0aWxzX2J1aWxkCisKKwkuLi9iaW51dGlscy0ke2Nyb3NzX2JpbnV0 aWxzX3ZlcnNpb259L2NvbmZpZ3VyZSBcCisJCS0tcHJlZml4PS91c3IgXAorCQktLXNiaW5kaXI9 L3Vzci9iaW4gXAorCQktLWxpYmRpcj0vdXNyL2xpYiBcCisJCS0tbGliZXhlY2Rpcj0vdXNyL2xp YiBcCisJCS0tdGFyZ2V0PSR7Y3Jvc3NfdHJpcGxldH0gXAorCQktLXdpdGgtc3lzcm9vdD0vdXNy LyR7Y3Jvc3NfdHJpcGxldH0gXAorCQktLWRpc2FibGUtbmxzIFwKKwkJLS1kaXNhYmxlLXNoYXJl ZCBcCisJCS0tZGlzYWJsZS1tdWx0aWxpYiBcCisJCS0tZGlzYWJsZS13ZXJyb3IgXAorCQktLWRp c2FibGUtZ29sZCBcCisJCS0td2l0aC1zeXN0ZW0temxpYiBcCisJCSR7Y3Jvc3NfYmludXRpbHNf Y29uZmlndXJlX2FyZ3N9CisKKwltYWtlIGNvbmZpZ3VyZS1ob3N0CisJbWFrZSAke21ha2Vqb2Jz fQorCisJbWFrZSBpbnN0YWxsIERFU1RESVI9JHt3cmtzcmN9L2J1aWxkX3Jvb3QKKworCXRvdWNo ICR7d3Jrc3JjfS8uYmludXRpbHNfZG9uZQorfQorCitfYnVpbGRfYm9vdHN0cmFwX2djYygpIHsK KwlfY2hlY2tfY3Jvc3NfZGlyIGdjYyBnY2NfYm9vdHN0cmFwCisKKwltc2dfbm9ybWFsICJQYXRj aGluZyBHQ0MgZm9yICR7Y3Jvc3NfdHJpcGxldH1cbiIKKworCWNkIGdjYy0ke2Nyb3NzX2djY192 ZXJzaW9ufQorCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L2djYy9wYXRjaGVzLyoucGF0Y2g7 IGRvCisJCV9hcHBseV9wYXRjaCAtcDAgIiRmIgorCWRvbmUKKwlpZiBbICIkY3Jvc3NfbGliYyIg PSAibXVzbCIgXTsgdGhlbgorCQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9nY2MvZmlsZXMv Ki1tdXNsLnBhdGNoOyBkbworCQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCisJCWRvbmUKKwlmaQor CWNkIC4uCisKKwltc2dfbm9ybWFsICJCdWlsZGluZyBib290c3RyYXAgR0NDIGZvciAke2Nyb3Nz X3RyaXBsZXR9XG4iCisKKwlta2RpciAtcCBnY2NfYm9vdHN0cmFwCisJY2QgZ2NjX2Jvb3RzdHJh cAorCisJbG9jYWwgZXh0cmFfYXJncworCWlmIFsgIiRjcm9zc19saWJjIiA9ICJtdXNsIiBdOyB0 aGVuCisJCWV4dHJhX2FyZ3MrPSIgLS13aXRoLW5ld2xpYiIKKwkJZXh0cmFfYXJncys9IiAtLWRp c2FibGUtc3ltdmVycyIKKwkJZXh0cmFfYXJncys9IiBsaWJhdF9jdl9oYXZlX2lmdW5jPW5vIgor CWVsc2UKKwkJZXh0cmFfYXJncys9IiAtLXdpdGhvdXQtaGVhZGVycyIKKwlmaQorCisJLi4vZ2Nj LSR7Y3Jvc3NfZ2NjX3ZlcnNpb259L2NvbmZpZ3VyZSBcCisJCS0tcHJlZml4PS91c3IgXAorCQkt LXNiaW5kaXI9L3Vzci9iaW4gXAorCQktLWxpYmRpcj0vdXNyL2xpYiBcCisJCS0tbGliZXhlY2Rp cj0vdXNyL2xpYiBcCisJCS0tdGFyZ2V0PSR7Y3Jvc3NfdHJpcGxldH0gXAorCQktLWRpc2FibGUt bmxzIFwKKwkJLS1kaXNhYmxlLW11bHRpbGliIFwKKwkJLS1kaXNhYmxlLXNoYXJlZCBcCisJCS0t ZGlzYWJsZS1saWJxdWFkbWF0aCBcCisJCS0tZGlzYWJsZS1kZWNpbWFsLWZsb2F0IFwKKwkJLS1k aXNhYmxlLWxpYmdvbXAgXAorCQktLWRpc2FibGUtbGlibXB4IFwKKwkJLS1kaXNhYmxlLWxpYm11 ZGZsYXAgXAorCQktLWRpc2FibGUtbGlic3NwIFwKKwkJLS1kaXNhYmxlLWxpYml0bSBcCisJCS0t ZGlzYWJsZS1saWJhdG9taWMgXAorCQktLWRpc2FibGUtdGhyZWFkcyBcCisJCS0tZGlzYWJsZS1z amxqLWV4Y2VwdGlvbnMgXAorCQktLWVuYWJsZS1sYW5ndWFnZXM9YyBcCisJCS0td2l0aC1nbnUt bGQgXAorCQktLXdpdGgtZ251LWFzIFwKKwkJJHtleHRyYV9hcmdzfSBcCisJCSR7Y3Jvc3NfZ2Nj X2Jvb3RzdHJhcF9jb25maWd1cmVfYXJnc30KKworCW1ha2UgJHttYWtlam9ic30KKwltYWtlIGlu c3RhbGwgREVTVERJUj0ke3dya3NyY30vYnVpbGRfcm9vdAorCisJdG91Y2ggJHt3cmtzcmN9Ly5n Y2NfYm9vdHN0cmFwX2RvbmUKK30KKworX2J1aWxkX2tlcm5lbF9oZWFkZXJzKCkgeworCV9jaGVj a19jcm9zc19kaXIgbGludXgKKworCW1zZ19ub3JtYWwgIlBhdGNoaW5nIExpbnV4IGhlYWRlcnMg Zm9yICR7Y3Jvc3NfdHJpcGxldH1cbiIKKworCWNkIGxpbnV4LSR7Y3Jvc3NfbGludXhfdmVyc2lv bn0KKwlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9rZXJuZWwtbGliYy1oZWFkZXJzL3BhdGNo ZXMvKi5wYXRjaDsgZG8KKwkJX2FwcGx5X3BhdGNoIC1wMCAkZgorCWRvbmUKKwljZCAuLgorCisJ bXNnX25vcm1hbCAiQnVpbGRpbmcgTGludXggaGVhZGVycyBmb3IgJHtjcm9zc190cmlwbGV0fVxu IgorCisJY2QgbGludXgtJHtjcm9zc19saW51eF92ZXJzaW9ufQorCisJbWFrZSBBUkNIPSRjcm9z c19saW51eF9hcmNoIGhlYWRlcnNfY2hlY2sKKwltYWtlIEFSQ0g9JGNyb3NzX2xpbnV4X2FyY2gg XAorCQlJTlNUQUxMX0hEUl9QQVRIPSR7d3Jrc3JjfS9idWlsZF9yb290L3Vzci8ke2Nyb3NzX3Ry aXBsZXR9L3VzciBcCisJCWhlYWRlcnNfaW5zdGFsbAorCisJdG91Y2ggJHt3cmtzcmN9Ly5saW51 eF9oZWFkZXJzX2RvbmUKK30KKworX2J1aWxkX2dsaWJjX2hlYWRlcnMoKSB7CisJX2NoZWNrX2Ny b3NzX2RpciBnbGliYyBnbGliY19oZWFkZXJzCisKKwlsb2NhbCB0Z3Q9JGNyb3NzX3RyaXBsZXQK KworCW1zZ19ub3JtYWwgIlBhdGNoaW5nIGdsaWJjIGZvciAke2Nyb3NzX3RyaXBsZXR9XG4iCisK KwljZCBnbGliYy0ke2Nyb3NzX2dsaWJjX3ZlcnNpb259CisJaWYgWyAtZCAiJHtYQlBTX1NSQ1BL R0RJUn0vZ2xpYmMvcGF0Y2hlcyIgXTsgdGhlbgorCQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElS fS9nbGliYy9wYXRjaGVzLyoucGF0Y2g7IGRvCisJCQlfYXBwbHlfcGF0Y2ggLXAxICIkZiIKKwkJ ZG9uZQorCWZpCisJY2QgLi4KKworCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGdsaWJjIGhlYWRlcnMg Zm9yICR7Y3Jvc3NfdHJpcGxldH1cbiIKKworCW1rZGlyIC1wIGdsaWJjX2hlYWRlcnMKKwljZCBn bGliY19oZWFkZXJzCisKKwllY2hvICJsaWJjX2N2X2ZvcmNlZF91bndpbmQ9eWVzIiA+IGNvbmZp Zy5jYWNoZQorCWVjaG8gImxpYmNfY3ZfY19jbGVhbnVwPXllcyIgPj4gY29uZmlnLmNhY2hlCisK KwkjIHdlIGRvbid0IG5lZWQgYW55IGN1c3RvbSBhcmdzIGhlcmUsIGl0J3MganVzdCBoZWFkZXJz CisJQ0M9IiR7dGd0fS1nY2MiIENYWD0iJHt0Z3R9LWcrKyIgQ1BQPSIke3RndH0tY3BwIiBMRD0i JHt0Z3R9LWxkIiBcCisJQVM9IiR7dGd0fS1hcyIgTk09IiR7dGd0fS1ubSIgQ0ZMQUdTPSItcGlw ZSIgQ1hYRkxBR1M9IiIgQ1BQRkxBR1M9IiIgXAorCUxERkxBR1M9IiIgXAorCS4uL2dsaWJjLSR7 Y3Jvc3NfZ2xpYmNfdmVyc2lvbn0vY29uZmlndXJlIFwKKwkJLS1wcmVmaXg9L3VzciBcCisJCS0t aG9zdD0ke3RndH0gXAorCQktLXdpdGgtaGVhZGVycz0ke3dya3NyY30vYnVpbGRfcm9vdC91c3Iv JHt0Z3R9L3Vzci9pbmNsdWRlIFwKKwkJLS1jb25maWctY2FjaGUgXAorCQktLWVuYWJsZS1vYnNv bGV0ZS1ycGMgXAorCQktLWVuYWJsZS1vYnNvbGV0ZS1uc2wgXAorCQktLWVuYWJsZS1rZXJuZWw9 Mi42LjI3CisKKwltYWtlIC1rIGluc3RhbGwtaGVhZGVycyBjcm9zc19jb21waWxpbmc9eWVzIFwK KwkJaW5zdGFsbF9yb290PSR7d3Jrc3JjfS9idWlsZF9yb290L3Vzci8ke3RndH0KKworCXRvdWNo ICR7d3Jrc3JjfS8uZ2xpYmNfaGVhZGVyc19kb25lCit9CisKK19idWlsZF9nbGliYygpIHsKKwlf Y2hlY2tfY3Jvc3NfZGlyIGdsaWJjCisKKwlsb2NhbCB0Z3Q9JGNyb3NzX3RyaXBsZXQKKworCW1z Z19ub3JtYWwgIkJ1aWxkaW5nIGdsaWJjIGZvciAke3RndH1cbiIKKworCW1rZGlyIC1wIGdsaWJj X2J1aWxkCisJY2QgZ2xpYmNfYnVpbGQKKworCWVjaG8gInNsaWJkaXI9L3Vzci9saWIke2Nyb3Nz X3dvcmRzaXplfSIgPiBjb25maWdwYXJtcworCisJZWNobyAibGliY19jdl9mb3JjZWRfdW53aW5k PXllcyIgPiBjb25maWcuY2FjaGUKKwllY2hvICJsaWJjX2N2X2NfY2xlYW51cD15ZXMiID4+IGNv bmZpZy5jYWNoZQorCisJQ0M9IiR7dGd0fS1nY2MiIENYWD0iJHt0Z3R9LWcrKyIgQ1BQPSIke3Rn dH0tY3BwIiBMRD0iJHt0Z3R9LWxkIiBcCisJQVI9IiR7dGd0fS1hciIgQVM9IiR7dGd0fS1hcyIg Tk09IiR7dGd0fS1ubSIgXAorCUNGTEFHUz0iLXBpcGUgJHtjcm9zc19nbGliY19jZmxhZ3N9IiBc CisJQ1hYRkxBR1M9Ii1waXBlICR7Y3Jvc3NfZ2xpYmNfY2ZsYWdzfSIgXAorCUNQUEZMQUdTPSIk e2Nyb3NzX2dsaWJjX2NmbGFnc30iIFwKKwlMREZMQUdTPSIke2Nyb3NzX2dsaWJjX2xkZmxhZ3N9 IiBcCisJLi4vZ2xpYmMtJHtjcm9zc19nbGliY192ZXJzaW9ufS9jb25maWd1cmUgXAorCQktLXBy ZWZpeD0vdXNyIFwKKwkJLS1saWJkaXI9L3Vzci9saWIke2Nyb3NzX3dvcmRzaXplfSBcCisJCS0t bGliZXhlY2Rpcj0vdXNyL2xpYmV4ZWMgXAorCQktLWhvc3Q9JHt0Z3R9IFwKKwkJLS13aXRoLWhl YWRlcnM9JHt3cmtzcmN9L2J1aWxkX3Jvb3QvdXNyLyR7dGd0fS91c3IvaW5jbHVkZSBcCisJCS0t Y29uZmlnLWNhY2hlIFwKKwkJLS1lbmFibGUtb2Jzb2xldGUtcnBjIFwKKwkJLS1lbmFibGUtb2Jz b2xldGUtbnNsIFwKKwkJLS1kaXNhYmxlLXByb2ZpbGUgXAorCQktLWRpc2FibGUtd2Vycm9yIFwK KwkJLS1lbmFibGUta2VybmVsPTIuNi4yNyBcCisJCSR7Y3Jvc3NfZ2xpYmNfY29uZmlndXJlX2Fy Z3N9CisKKwltYWtlICR7bWFrZWpvYnN9CisJbWFrZSBpbnN0YWxsX3Jvb3Q9JHt3cmtzcmN9L2J1 aWxkX3Jvb3QvdXNyLyR7dGd0fSBpbnN0YWxsCisKKwl0b3VjaCAke3dya3NyY30vLmdsaWJjX2J1 aWxkX2RvbmUKK30KKworX2J1aWxkX211c2woKSB7CisJX2NoZWNrX2Nyb3NzX2RpciBtdXNsCisK Kwlsb2NhbCB0Z3Q9JGNyb3NzX3RyaXBsZXQKKworCW1zZ19ub3JtYWwgIlBhdGNoaW5nIG11c2wg Zm9yICR7dGd0fVxuIgorCisJY2QgbXVzbC0ke2Nyb3NzX211c2xfdmVyc2lvbn0KKwlpZiBbIC1k ICIke1hCUFNfU1JDUEtHRElSfS9tdXNsL3BhdGNoZXMiIF07IHRoZW4KKwkJZm9yIGYgaW4gJHtY QlBTX1NSQ1BLR0RJUn0vbXVzbC9wYXRjaGVzLyoucGF0Y2g7IGRvCisJCQlfYXBwbHlfcGF0Y2gg LXAwICIkZiIKKwkJZG9uZQorCWZpCisJY2QgLi4KKworCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIG11 c2wgZm9yICR7dGd0fVxuIgorCisJbWtkaXIgLXAgbXVzbF9idWlsZAorCWNkIG11c2xfYnVpbGQK KworCUNDPSIke3RndH0tZ2NjIiBDWFg9IiR7dGd0fS1nKysiIENQUD0iJHt0Z3R9LWNwcCIgTEQ9 IiR7dGd0fS1sZCIgXAorCUFSPSIke3RndH0tYXIiIEFTPSIke3RndH0tYXMiIE5NPSIke3RndH0t bm0iIFwKKwlDRkxBR1M9Ii1waXBlIC1mUElDICR7Y3Jvc3NfbXVzbF9jZmxhZ3N9IiBcCisJQ1BQ RkxBR1M9IiR7Y3Jvc3NfbXVzbF9jZmxhZ3N9IiBMREZMQUdTPSIke2Nyb3NzX211c2xfbGRmbGFn c30iIFwKKwkuLi9tdXNsLSR7Y3Jvc3NfbXVzbF92ZXJzaW9ufS9jb25maWd1cmUgXAorCQktLXBy ZWZpeD0vdXNyIFwKKwkJLS1ob3N0PSR7dGd0fSBcCisJCSR7Y3Jvc3NfbXVzbF9jb25maWd1cmVf YXJnc30KKworCW1ha2UgJHttYWtlam9ic30KKwltYWtlIERFU1RESVI9JHt3cmtzcmN9L2J1aWxk X3Jvb3QvdXNyLyR7dGd0fSBpbnN0YWxsCisKKwl0b3VjaCAke3dya3NyY30vLm11c2xfYnVpbGRf ZG9uZQorfQorCitfYnVpbGRfbGlidWNvbnRleHQoKSB7CisJWyAtbiAiJGNyb3NzX2djY19za2lw X2dvIiBdICYmIHJldHVybiAwCisJX2NoZWNrX2Nyb3NzX2RpciBsaWJ1Y29udGV4dAorCisJbXNn X25vcm1hbCAiQnVpbGRpbmcgbGlidWNvbnRleHQgZm9yICR7Y3Jvc3NfdHJpcGxldH1cbiIKKwor CWNkIGxpYnVjb250ZXh0LSR7Y3Jvc3NfbGlidWNvbnRleHRfdmVyc2lvbn0KKwkjIGEgdGVycmli bGUgaGFjayBidXQgc2VlbXMgdG8gd29yayBmb3Igbm93CisJQ0M9IiR7Y3Jvc3NfdHJpcGxldH0t Z2NjIiBBUz0iJHtjcm9zc190cmlwbGV0fS1hcyIgQVI9IiR7Y3Jvc3NfdHJpcGxldH0tYXIiIFwK KwlDUFBGTEFHUz0iLXBpcGUgJHtjcm9zc19tdXNsX2NmbGFnc30gLWcwIC1PcyAtbm9zdGRpbmMg LWlzeXN0ZW0gJHt3cmtzcmN9L2J1aWxkX3Jvb3QvdXNyLyR7Y3Jvc3NfdHJpcGxldH0vdXNyL2lu Y2x1ZGUiIFwKKwltYWtlIEFSQ0g9JHtjcm9zc19saWJ1Y29udGV4dF9hcmNofSBsaWJ1Y29udGV4 dC5hCisKKwljcCBsaWJ1Y29udGV4dC5hICR7d3Jrc3JjfS9idWlsZF9yb290L3Vzci8ke2Nyb3Nz X3RyaXBsZXR9L3Vzci9saWIKKworCXRvdWNoICR7d3Jrc3JjfS8ubGlidWNvbnRleHRfYnVpbGRf ZG9uZQorfQorCitfYnVpbGRfZ2NjKCkgeworCV9jaGVja19jcm9zc19kaXIgZ2NjCisKKwltc2df bm9ybWFsICJCdWlsZGluZyBnY2MgZm9yICR7Y3Jvc3NfdHJpcGxldH1cbiIKKworCW1rZGlyIC1w IGdjY19idWlsZAorCWNkIGdjY19idWlsZAorCisJbG9jYWwgbGFuZ3M9ImMsYysrLGZvcnRyYW4s b2JqYyxvYmotYysrLGFkYSxsdG8iCisJaWYgWyAteiAiJGNyb3NzX2djY19za2lwX2dvIiBdOyB0 aGVuCisJCWxhbmdzKz0iLGdvIgorCWZpCisKKwlsb2NhbCBleHRyYV9hcmdzCisJaWYgWyAiJGNy b3NzX2xpYmMiID0gIm11c2wiIF07IHRoZW4KKwkJZXh0cmFfYXJncys9IiAtLWVuYWJsZS1saWJz c3AiCisJCSMgb3RoZXJ3aXNlIGdsaWJjIGhvc3RzIGdldCBjb25mdXNlZCBhbmQgdXNlIHRoZSBn bnUgaW1wbAorCQlleHRyYV9hcmdzKz0iIC0tZW5hYmxlLWNsb2NhbGU9Z2VuZXJpYyIKKwkJZXh0 cmFfYXJncys9IiAtLWRpc2FibGUtc3ltdmVycyIKKwkJZXh0cmFfYXJncys9IiAtLWRpc2FibGUt Z251LXVuaXF1ZS1vYmplY3QiCisJCWV4dHJhX2FyZ3MrPSIgbGliYXRfY3ZfaGF2ZV9pZnVuYz1u byIKKwllbHNlCisJCWV4dHJhX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNzcCIKKwkJZXh0cmFfYXJn cys9IiAtLWVuYWJsZS1nbnUtdW5pcXVlLW9iamVjdCIKKwlmaQorCisJLi4vZ2NjLSR7Y3Jvc3Nf Z2NjX3ZlcnNpb259L2NvbmZpZ3VyZSBcCisJCS0tcHJlZml4PS91c3IgXAorCQktLXNiaW5kaXI9 L3Vzci9iaW4gXAorCQktLWxpYmRpcj0vdXNyL2xpYiBcCisJCS0tbGliZXhlY2Rpcj0vdXNyL2xp YiBcCisJCS0tdGFyZ2V0PSR7Y3Jvc3NfdHJpcGxldH0gXAorCQktLXdpdGgtc3lzcm9vdD0vdXNy LyR7Y3Jvc3NfdHJpcGxldH0gXAorCQktLXdpdGgtYnVpbGQtc3lzcm9vdD0ke3dya3NyY30vYnVp bGRfcm9vdC91c3IvJHtjcm9zc190cmlwbGV0fSBcCisJCS0tZW5hYmxlLWxhbmd1YWdlcz0ke2xh bmdzfSBcCisJCS0tZGlzYWJsZS1ubHMgXAorCQktLWRpc2FibGUtbXVsdGlsaWIgXAorCQktLWRp c2FibGUtc2psai1leGNlcHRpb25zIFwKKwkJLS1kaXNhYmxlLWxpYnF1YWRtYXRoIFwKKwkJLS1k aXNhYmxlLWxpYm11ZGZsYXAgXAorCQktLWRpc2FibGUtbGliaXRtIFwKKwkJLS1kaXNhYmxlLWxp YnZ0diBcCisJCS0tZGlzYWJsZS1saWJzYW5pdGl6ZXIgXAorCQktLWRpc2FibGUtbGlic3RkY3h4 LXBjaCBcCisJCS0tZW5hYmxlLXNoYXJlZCBcCisJCS0tZW5hYmxlLXRocmVhZHM9cG9zaXggXAor CQktLWVuYWJsZS1fX2N4YV9hdGV4aXQgXAorCQktLWVuYWJsZS1saW5rZXItYnVpbGQtaWQgXAor CQktLWVuYWJsZS1saWJhZGEgXAorCQktLWVuYWJsZS1sdG8gXAorCQktLWVuYWJsZS1kZWZhdWx0 LXBpZSBcCisJCS0tZW5hYmxlLWRlZmF1bHQtc3NwIFwKKwkJLS13aXRoLWdudS1sZCBcCisJCS0t d2l0aC1nbnUtYXMgXAorCQktLXdpdGgtbGlua2VyLWhhc2gtc3R5bGU9Z251IFwKKwkJJHtleHRy YV9hcmdzfSBcCisJCSR7Y29uZmlndXJlX2FyZ3N9CisKKwltYWtlICR7bWFrZWpvYnN9CisKKwl0 b3VjaCAke3dya3NyY30vLmdjY19idWlsZF9kb25lCit9CisKK19jaGVja19jcm9zc192YXIoKSB7 CisJbG9jYWwgdmFyPSJjcm9zc18kezF9IgorCWlmIFsgLXogIiR7IXZhcn0iIF07IHRoZW4KKwkJ bXNnX2Vycm9yICJjcm9zc18kezF9IG5vdCBkZWZpbmVkIGluIHRlbXBsYXRlIgorCWZpCit9CisK K2RvX2J1aWxkKCkgeworCSMgVmVyaWZ5IHRvb2xjaGFpbiB2ZXJzaW9ucworCisJX2NoZWNrX2Ny b3NzX3ZhciBiaW51dGlsc192ZXJzaW9uCisJX2NoZWNrX2Nyb3NzX3ZhciBnY2NfdmVyc2lvbgor CV9jaGVja19jcm9zc192YXIgbGludXhfdmVyc2lvbgorCisJY2FzZSAiJHtjcm9zc19saWJjfSIg aW4KKwkJbXVzbCkKKwkJCV9jaGVja19jcm9zc192YXIgbXVzbF92ZXJzaW9uCisJCQlpZiBbIC16 ICIkY3Jvc3NfZ2NjX3NraXBfZ28iIF07IHRoZW4KKwkJCQlfY2hlY2tfY3Jvc3NfdmFyIGxpYnVj b250ZXh0X3ZlcnNpb24KKwkJCQlfY2hlY2tfY3Jvc3NfdmFyIGxpYnVjb250ZXh0X2FyY2gKKwkJ CWZpCisJCQk7OworCQlnbGliYykKKwkJCV9jaGVja19jcm9zc192YXIgZ2xpYmNfdmVyc2lvbgor CQkJOzsKKwkJKikgbXNnX2Vycm9yICJhbGxvd2VkIGNyb3NzX2xpYmMgdmFsdWVzIGFyZSAnZ2xp YmMnLCAnbXVzbCdcbiIgOzsKKwllc2FjCisKKwkjIFZlcmlmeSB0cmlwbGV0CisJX2NoZWNrX2Ny b3NzX3ZhciB0cmlwbGV0CisJX2NoZWNrX2Nyb3NzX3ZhciB3b3Jkc2l6ZQorCV9jaGVja19jcm9z c192YXIgbGludXhfYXJjaAorCisJbG9jYWwgc3lzcm9vdD0iL3Vzci8ke2Nyb3NzX3RyaXBsZXR9 IgorCisJIyBQcmVwYXJlIGVudmlyb25tZW50CisJY2QgJHt3cmtzcmN9CisKKwkjIENvcmUgZGly ZWN0b3JpZXMgZm9yIHRoZSBidWlsZCByb290CisJbWtkaXIgLXAgYnVpbGRfcm9vdC91c3Ive2Jp bixsaWIsaW5jbHVkZSxzaGFyZX0KKwlta2RpciAtcCBidWlsZF9yb290L3Vzci8ke2Nyb3NzX3Ry aXBsZXR9L3Vzci97YmluLGxpYixpbmNsdWRlLHNoYXJlfQorCisJIyBIb3N0IHJvb3QgdXNlcyBo b3N0IHdvcmRzaXplCisJbG4gLXNmIHVzci9saWIgYnVpbGRfcm9vdC9saWIKKwlsbiAtc2YgdXNy L2xpYiBidWlsZF9yb290L2xpYiR7WEJQU19UQVJHRVRfV09SRFNJWkV9CisJbG4gLXNmIGxpYiBi dWlsZF9yb290L3Vzci9saWIke1hCUFNfVEFSR0VUX1dPUkRTSVpFfQorCisJIyBUYXJnZXQgc3lz cm9vdCB1c2VzIHRhcmdldCB3b3Jkc2l6ZQorCWxuIC1zZiB1c3IvbGliIGJ1aWxkX3Jvb3QvJHtz eXNyb290fS9saWIKKwlsbiAtc2YgdXNyL2xpYiBidWlsZF9yb290LyR7c3lzcm9vdH0vbGliJHtj cm9zc193b3Jkc2l6ZX0KKwlsbiAtc2YgbGliIGJ1aWxkX3Jvb3QvJHtzeXNyb290fS91c3IvbGli JHtjcm9zc193b3Jkc2l6ZX0KKwlsbiAtc2YgbGliIGJ1aWxkX3Jvb3QvJHtzeXNyb290fS91c3Iv bGliZXhlYworCisJX2J1aWxkX2JpbnV0aWxzCisKKwkjIFByZXBhcmUgZW52aXJvbm1lbnQgc28g d2UgY2FuIHVzZSB0ZW1wb3JhcnkgcHJlZml4CisJbG9jYWwgb2xkcGF0aD0iJFBBVEgiCisJbG9j YWwgb2xkbGRsaWI9IiRMRF9MSUJSQVJZX1BBVEgiCisKKwlleHBvcnQgUEFUSD0iJHt3cmtzcmN9 L2J1aWxkX3Jvb3QvdXNyL2JpbjokUEFUSCIKKwlleHBvcnQgTERfTElCUkFSWV9QQVRIPSIke3dy a3NyY30vYnVpbGRfcm9vdC91c3IvbGliOiRQQVRIIgorCisJX2J1aWxkX2Jvb3RzdHJhcF9nY2MK KwlfYnVpbGRfa2VybmVsX2hlYWRlcnMKKworCWlmIFsgIiRjcm9zc19saWJjIiA9ICJtdXNsIiBd OyB0aGVuCisJCV9idWlsZF9tdXNsCisJCV9idWlsZF9saWJ1Y29udGV4dAorCWVsc2UKKwkJX2J1 aWxkX2dsaWJjX2hlYWRlcnMKKwkJX2J1aWxkX2dsaWJjCisJZmkKKworCV9idWlsZF9nY2MKKwor CSMgcmVzdG9yZSB0aGlzIHN0dWZmIGluIGNhc2UgbGF0ZXIgaG9va3MgZGVwZW5kIG9uIGl0CisJ ZXhwb3J0IFBBVEg9IiRvbGRwYXRoIgorCWV4cG9ydCBMRF9MSUJSQVJZX1BBVEg9IiRvbGRsZGxp YiIKK30KKworZG9faW5zdGFsbCgpIHsKKwkjIFdlIG5lZWQgdG8gYmUgYWJsZSB0byBhY2Nlc3Mg YmludXRpbHMgaW4gdGhlIHJvb3QKKwlsb2NhbCBvbGRwYXRoPSIkUEFUSCIKKwlsb2NhbCBvbGRs ZGxpYj0iJExEX0xJQlJBUllfUEFUSCIKKwlleHBvcnQgUEFUSD0iJHt3cmtzcmN9L2J1aWxkX3Jv b3QvdXNyL2JpbjokUEFUSCIKKwlleHBvcnQgTERfTElCUkFSWV9QQVRIPSIke3dya3NyY30vYnVp bGRfcm9vdC91c3IvbGliOiRQQVRIIgorCisJbG9jYWwgc3lzcm9vdD0iL3Vzci8ke2Nyb3NzX3Ry aXBsZXR9IgorCisJIyBDb3JlIGRpcmVjdG9yaWVzIGZvciB0aGUgc3lzcm9vdAorCSMKKwkjIGxp YmV4ZWMgaXMgY3JlYXRlZCBmb3Igc3lzcm9vdCBidXQgbm90IGZvciBkZXN0LCBzaW5jZSBpbiBz eXNyb290CisJIyB3ZSBjb25maWd1cmUgZ2xpYmMgd2l0aCBzZXBhcmF0ZSBsaWJleGVjLCBlbHNl d2hlcmUgaXQncyBqdXN0IGxpYgorCSMgYW5kIHdlIHdhbnQgdG8gZGVsZXRlIHRoZSBsaWJleGVj IGZyb20gZ2xpYmMgYWZ0ZXJ3YXJkcyB0byBzYXZlIHNwYWNlCisJbWtkaXIgLXAgJHtERVNURElS fS8ke3N5c3Jvb3R9L3Vzci97YmluLGxpYixsaWJleGVjLGluY2x1ZGUsc2hhcmV9CisJIyBTeXNy b290IGJhc2Ugc3ltbGlua3MKKwlsbiAtc2YgdXNyL2xpYiAke0RFU1RESVJ9LyR7c3lzcm9vdH0v bGliCisJbG4gLXNmIHVzci9saWIgJHtERVNURElSfS8ke3N5c3Jvb3R9L2xpYiR7Y3Jvc3Nfd29y ZHNpemV9CisJbG4gLXNmIGxpYiAke0RFU1RESVJ9LyR7c3lzcm9vdH0vdXNyL2xpYiR7Y3Jvc3Nf d29yZHNpemV9CisKKwkjIEluc3RhbGwgTGludXggaGVhZGVycworCWNkICR7d3Jrc3JjfS9saW51 eC0ke2Nyb3NzX2xpbnV4X3ZlcnNpb259CisJbWFrZSBBUkNIPSR7Y3Jvc3NfbGludXhfYXJjaH0g XAorCQlJTlNUQUxMX0hEUl9QQVRIPSR7REVTVERJUn0vJHtzeXNyb290fS91c3IgaGVhZGVyc19p bnN0YWxsCisJcm0gLWYgJChmaW5kICR7REVTVERJUn0vJHtzeXNyb290fS91c3IvaW5jbHVkZSBc CisJCS1uYW1lIC5pbnN0YWxsIC1vciAtbmFtZSAuLmluc3RhbGwuY21kKQorCXJtIC1yZiAke0RF U1RESVJ9LyR7c3lzcm9vdH0vdXNyL2luY2x1ZGUvZHJtCisKKwkjIEluc3RhbGwgYmludXRpbHMK KwljZCAke3dya3NyY30vYmludXRpbHNfYnVpbGQKKwltYWtlIGluc3RhbGwgREVTVERJUj0ke0RF U1RESVJ9CisKKwkjIEluc3RhbGwgZmluYWwgZ2NjCisJY2QgJHt3cmtzcmN9L2djY19idWlsZAor CW1ha2UgaW5zdGFsbCBERVNURElSPSR7REVTVERJUn0KKworCSMgTW92ZSBsaWJjYzEuc28qIHRv IHRoZSBzeXNyb290CisJbXYgJHtERVNURElSfS91c3IvbGliL2xpYmNjMS5zbyogJHtERVNURElS fS8ke3N5c3Jvb3R9L3Vzci9saWIKKworCWlmIFsgIiRjcm9zc19saWJjIiA9ICJtdXNsIiBdOyB0 aGVuCisJCSMgSW5zdGFsbCBtdXNsCisJCWNkICR7d3Jrc3JjfS9tdXNsX2J1aWxkCisJCW1ha2Ug REVTVERJUj0ke0RFU1RESVJ9LyR7c3lzcm9vdH0gaW5zdGFsbAorCisJCSMgUmVtb3ZlIHVzZWxl c3MgaGVhZGVycworCQlybSAtcmYgJHtERVNURElSfS91c3IvbGliL2djYy8ke2Nyb3NzX3RyaXBs ZXR9LyovaW5jbHVkZS1maXhlZAorCisJCSMgTWFrZSBsZC1tdXNsLnNvIHN5bWxpbmtzIHJlbGF0 aXZlCisJCWZvciBmIGluICR7REVTVERJUn0vJHtzeXNyb290fS91c3IvbGliL2xkLW11c2wtKi5z by4qOyBkbworCQkJbG4gLXNmIGxpYmMuc28gJHtmfQorCQlkb25lCisJZWxzZQorCQkjIEluc3Rh bGwgZ2xpYmMKKwkJY2QgJHt3cmtzcmN9L2dsaWJjX2J1aWxkCisJCW1ha2UgaW5zdGFsbF9yb290 PSR7REVTVERJUn0vJHtzeXNyb290fSBpbnN0YWxsIGluc3RhbGwtaGVhZGVycworCisJCSMgUmVt b3ZlIGJhZCBoZWFkZXIKKwkJcm0gLWYgJHtERVNURElSfS91c3IvbGliL2djYy8ke2Nyb3NzX190 cmlwbGV0fS8qL2luY2x1ZGUtZml4ZWQvYml0cy9zdGF0eC5oCisJZmkKKworCSMgU3ltbGlua3Mg Zm9yIGduYXJsIGFuZCBnbmF0IHNoYXJlZCBsaWJyYXJpZXMKKwlsb2NhbCBtYWpvcnZlcj0ke2Ny b3NzX2djY192ZXJzaW9uJS4qLip9CisJbG9jYWwgYWRhbGliPXVzci9saWIvZ2NjLyR7X3RyaXBs ZXR9LyR7X2djY192ZXJzaW9ufS9hZGFsaWIKKwltdiAke0RFU1RESVJ9LyR7YWRhbGlifS9saWJn bmFybC0ke21ham9ydmVyfS5zbyBcCisJCSR7REVTVERJUn0vJHtzeXNyb290fS91c3IvbGliCisJ bXYgJHtERVNURElSfS8ke2FkYWxpYn0vbGliZ25hdC0ke21ham9ydmVyfS5zbyBcCisJCSR7REVT VERJUn0vJHtzeXNyb290fS91c3IvbGliCisJbG4gLXNmIGxpYmduYXJsLSR7bWFqb3J2ZXJ9LnNv ICR7REVTVERJUn0vJHtzeXNyb290fS91c3IvbGliL2xpYmduYXJsLnNvCisJbG4gLXNmIGxpYmdu YXQtJHttYWpvcnZlcn0uc28gJHtERVNURElSfS8ke3N5c3Jvb3R9L3Vzci9saWIvbGliZ25hdC5z bworCXJtIC12ZiAke0RFU1RESVJ9LyR7YWRhbGlifS9saWJnbmF7cmwsdH0uc28KKworCSMgUmVt b3ZlIHVubmVjZXNzYXJ5IGxpYmF0b21pYyB3aGljaCBpcyBvbmx5IGJ1aWx0IGZvciBnY2Nnbwor CXJtIC1yZiAke0RFU1RESVJ9LyR7c3lzcm9vdH0vdXNyL2xpYi9saWJhdG9taWMuKgorCisJIyBS ZW1vdmUgbGVmdG92ZXIgc3ltbGlua3MKKwlybSAtZiAke0RFU1RESVJ9L3Vzci9saWIke1hCUFNf VEFSR0VUX1dPUkRTSVpFfQorCXJtIC1mICR7REVTVERJUn0vbGliKgorCXJtIC1mICR7REVTVERJ Un0vKmJpbgorCSMgUmVtb3ZlIHVubmVjZXNzYXJ5IHN0dWZmCisJcm0gLXJmICR7REVTVERJUn0v JHtzeXNyb290fS97c2JpbixldGMsdmFyLGxpYmV4ZWN9CisJcm0gLXJmICR7REVTVERJUn0vJHtz eXNyb290fS91c3Ive3NiaW4sc2hhcmUsbGliZXhlY30KKwlybSAtcmYgJHtERVNURElSfS91c3Iv c2hhcmUKKwlybSAtZiAke0RFU1RESVJ9L3Vzci9saWIqL2xpYmliZXJ0eS5hCisKKwlleHBvcnQg UEFUSD0iJG9sZHBhdGgiCisJZXhwb3J0IExEX0xJQlJBUllfUEFUSD0iJG9sZGxkbGliIgorfQpk aWZmIC0tZ2l0IGEvY29tbW9uL2Vudmlyb25tZW50L2J1aWxkLXN0eWxlL3ZvaWQtY3Jvc3Muc2gg Yi9jb21tb24vZW52aXJvbm1lbnQvYnVpbGQtc3R5bGUvdm9pZC1jcm9zcy5zaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uODBhYWFiNDdmZDIKLS0tIC9kZXYvbnVsbAor KysgYi9jb21tb24vZW52aXJvbm1lbnQvYnVpbGQtc3R5bGUvdm9pZC1jcm9zcy5zaApAQCAtMCww ICsxLDExIEBACitsaWIzMmRpc2FibGVkPXllcworbm9jcm9zcz15ZXMKK25vcGllPXllcworY3Jl YXRlX3dya3NyYz15ZXMKKworbm9zdHJpcF9maWxlcys9ImxpYmNhZl9zaW5nbGUuYSBsaWJnY2Mu YSBsaWJnY292LmEgbGliZ2NjX2VoLmEKKyBsaWJnbmFybF9waWMuYSBsaWJnbmFybC5hIGxpYmdu YXRfcGljLmEgbGliZ25hdC5hIGxpYmdtZW0uYSIKKworaWYgWyAiJGNyb3NzX2xpYmMiID0gImds aWJjIiAtYSAiJFhCUFNfVEFSR0VUX0xJQkMiICE9ICJnbGliYyIgXTsgdGhlbgorICAgIGJyb2tl bj0iZ2xpYmMgY3Jvc3N0b29sY2hhaW5zIGFyZSBvbmx5IGF2YWlsYWJsZSBvbiBnbGliYyBob3N0 cyBmb3Igbm93IgorZmkKCkZyb20gOTIzNGUyZDk5MzA1Nzg4ZTgxNjlmOTdiMjZhNTc0YzUwOWIw NTdmMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogcTY2IDxkYW5pZWxAb2N0YWZvcmdl Lm9yZz4KRGF0ZTogRnJpLCAyNSBEZWMgMjAyMCAwMDo0Mzo0OCArMDEwMApTdWJqZWN0OiBbUEFU Q0ggMy80XSBjcm9zcy1hYXJjaDY0LWxpbnV4LWdudTogcmVkbyB3aXRoIHZvaWQtY3Jvc3MgYnVp bGQtc3R5bGUKCi0tLQogc3JjcGtncy9jcm9zcy1hYXJjaDY0LWxpbnV4LWdudS90ZW1wbGF0ZSB8 IDM2OCArKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDIwIGluc2VydGlv bnMoKyksIDM0OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nyb3NzLWFhcmNo NjQtbGludXgtZ251L3RlbXBsYXRlIGIvc3JjcGtncy9jcm9zcy1hYXJjaDY0LWxpbnV4LWdudS90 ZW1wbGF0ZQppbmRleCBiMDEyMmM4ZWM0YS4uYjc0OTgyM2U3NGUgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3MvY3Jvc3MtYWFyY2g2NC1saW51eC1nbnUvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9jcm9zcy1h YXJjaDY0LWxpbnV4LWdudS90ZW1wbGF0ZQpAQCAtMSwyMSArMSwyMSBAQAotIyBUZW1wbGF0ZSBi dWlsZCBmaWxlIGZvciAnY3Jvc3MtYWFyY2g2NC1saW51eC1nbnUnCi0jCisjIFRlbXBsYXRlIGZp bGUgZm9yICdjcm9zcy1hYXJjaDY0LWxpbnV4LWdudScKK190cmlwbGV0PWFhcmNoNjQtbGludXgt Z251CiBfYmludXRpbHNfdmVyc2lvbj0yLjMyCiBfZ2NjX3ZlcnNpb249OS4zLjAKIF9nbGliY192 ZXJzaW9uPTIuMzAKIF9saW51eF92ZXJzaW9uPTQuMTkKLQotX3RyaXBsZXQ9YWFyY2g2NC1saW51 eC1nbnUKLV9hcmNoZmxhZ3M9Ii1tYXJjaD1hcm12OC1hIgotX3N5c3Jvb3Q9Ii91c3IvJHtfdHJp cGxldH0iCi0KIHBrZ25hbWU9Y3Jvc3MtJHtfdHJpcGxldH0KIHZlcnNpb249MC4zMwogcmV2aXNp b249Mwotc2hvcnRfZGVzYz0iR05VIENyb3NzIHRvb2xjaGFpbiBmb3IgdGhlICR7X3RyaXBsZXR9 IExFIHRhcmdldCAoYmludXRpbHMvZ2NjL2dsaWJjKSIKK2J1aWxkX3N0eWxlPXZvaWQtY3Jvc3MK K2NvbmZpZ3VyZV9hcmdzPSItLXdpdGgtYXJjaD1hcm12OC1hIgoraG9zdG1ha2VkZXBlbmRzPSJ0 YXIgZ2NjLW9iamMgZ2NjLWdvIGZsZXggcGVybCBweXRob24zIgorbWFrZWRlcGVuZHM9ImlzbDE1 LWRldmVsIGxpYm1wYy1kZXZlbCB6bGliLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIgorZGVw ZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCitzaG9ydF9kZXNj PSJWb2lkIGNyb3NzIHRvb2xjaGFpbiBmb3IgJHtfdHJpcGxldH0iCiBtYWludGFpbmVyPSJMZWFo IE5ldWtpcmNoZW4gPGxlYWhAdnV4dS5vcmc+IgotaG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRs aW51eC5vcmcvIgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR1BMLTMuMC1vci1sYXRlciwg TEdQTC0yLjEtb3ItbGF0ZXIiCitob21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8i CiBkaXN0ZmlsZXM9IgogICR7R05VX1NJVEV9L2JpbnV0aWxzL2JpbnV0aWxzLSR7X2JpbnV0aWxz X3ZlcnNpb259LnRhci54egogICR7R05VX1NJVEV9L2djYy9nY2MtJHtfZ2NjX3ZlcnNpb259L2dj Yy0ke19nY2NfdmVyc2lvbn0udGFyLnh6CkBAIC0yNiwzNDkgKzI2LDIxIEBAIGNoZWNrc3VtPSIw YWI2YzU1ZGQ4NmE5MmVkNTYxOTcyYmExNWI5YjcwYThiOWY3NTU1N2Y4OTY0NDZjODJlOGIzNmU0 NzNlZTA0CiAgZTJjNDExNGU1NjlhZmJlN2VkYmMyOTEzMWE0M2JlODMzODUwYWI5YTQ1OWQ4MWJl YjI1ODgwMTZkMmJiYjhhZgogIDBjNjhmNTY1NTUyOGFlZDRmOTlkYWU3MWE1YjI1OWVkYzkzMjM5 ZmE4OTllMmRmNzljMDU1Mjc1YzIxNzQ5YTEiCiAKLWxpYjMyZGlzYWJsZWQ9eWVzCi1ub2Nyb3Nz PXllcwotbm9waWU9eWVzCi1jcmVhdGVfd3Jrc3JjPXllcwotaG9zdG1ha2VkZXBlbmRzPSJ0YXIg Z2NjLW9iamMgZ2NjLWdvIGZsZXggcGVybCBweXRob24zIgotbWFrZWRlcGVuZHM9ImlzbDE1LWRl dmVsIGxpYm1wYy1kZXZlbCB6bGliLWRldmVsIgotZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7 dmVyc2lvbn1fJHtyZXZpc2lvbn0iCi1ub3N0cmlwX2ZpbGVzPSJsaWJjYWZfc2luZ2xlLmEgbGli Z2NjLmEgbGliZ2Nvdi5hIGxpYmdjY19laC5hCi0gbGliZ25hcmxfcGljLmEgbGliZ25hcmwuYSBs aWJnbmF0X3BpYy5hIGxpYmduYXQuYSBsaWJnbWVtLmEiCi0KLWlmIFsgIiRYQlBTX1RBUkdFVF9M SUJDIiAhPSAiZ2xpYmMiIF07IHRoZW4KLQlicm9rZW49ImdsaWJjIGNyb3NzdG9vbGNoYWluIG9u bHkgYXZhaWxhYmxlIG9uIGdsaWJjIgotZmkKLQotaWYgWyAiJFhCUFNfVEFSR0VUX1dPUkRTSVpF IiAhPSAiNjQiIF07IHRoZW4KLQlicm9rZW49IjY0LWJpdCBjcm9zc3Rvb2xjaGFpbiBvbmx5IGF2 YWlsYWJsZSBvbiA2NC1iaXQgaG9zdCIKLWZpCitjcm9zc190cmlwbGV0PSR7X3RyaXBsZXR9Citj cm9zc193b3Jkc2l6ZT02NAorY3Jvc3NfbGliYz1nbGliYworY3Jvc3NfYmludXRpbHNfdmVyc2lv bj0ke19iaW51dGlsc192ZXJzaW9ufQorY3Jvc3NfZ2NjX3ZlcnNpb249JHtfZ2NjX3ZlcnNpb259 Citjcm9zc19nbGliY192ZXJzaW9uPSR7X2dsaWJjX3ZlcnNpb259Citjcm9zc19saW51eF92ZXJz aW9uPSR7X2xpbnV4X3ZlcnNpb259Citjcm9zc19saW51eF9hcmNoPWFybTY0Citjcm9zc193b3Jk c2l6ZT02NAorY3Jvc3NfZ2xpYmNfY2ZsYWdzPSItTzIgLW1hcmNoPWFybXY4LWEiCiAKIGlmIFsg IiRYQlBTX1RBUkdFVF9NQUNISU5FIiA9ICJhYXJjaDY0IiBdOyB0aGVuCiAJYnJva2VuPSJDYW4n dCBidWlsZCBjcm9zc3Rvb2xjaGFpbiB0byBpdHNlbGYiCiBmaQogCi1fYXBwbHlfcGF0Y2goKSB7 Ci0JbG9jYWwgYXJncz0iJDEiIHBuYW1lPSIkKGJhc2VuYW1lICQyKSIKLQotCWlmIFsgISAtZiAi LiR7cG5hbWV9X2RvbmUiIF07IHRoZW4KLQkJcGF0Y2ggLU4gJGFyZ3MgLWkgJDIKLQkJdG91Y2gg LiR7cG5hbWV9X2RvbmUKLQlmaQotfQotCi1fbGludXhfaGVhZGVycygpIHsKLQlbIC1mICR7d3Jr c3JjfS8ubGludXhfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQlt c2dfbm9ybWFsICJCdWlsZGluZyBMaW51eCBBUEkgaGVhZGVycyBmb3IgQVJNXG4iCi0KLQljZCBs aW51eC0ke19saW51eF92ZXJzaW9ufQotCi0JbWFrZSBBUkNIPWFybTY0IGhlYWRlcnNfY2hlY2sK LQltYWtlIEFSQ0g9YXJtNjQgSU5TVEFMTF9IRFJfUEFUSD0ke19zeXNyb290fS91c3IgaGVhZGVy c19pbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmxpbnV4X2J1aWxkX2RvbmUKLX0KLQotX2Jp bnV0aWxzX2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uYmludXRp bHNfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFs ICJCdWlsZGluZyBjcm9zcyBiaW51dGlsc1xuIgotCVsgISAtZCBiaW51dGlscy1idWlsZCBdICYm IG1rZGlyIGJpbnV0aWxzLWJ1aWxkCi0JY2QgYmludXRpbHMtYnVpbGQKLQotCV9hcmdzPSItLXBy ZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0t d2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2Fy Z3MrPSIgLS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0J X2FyZ3MrPSIgLS1kaXNhYmxlLXdlcnJvciIKLQlfYXJncys9IiAtLWRpc2FibGUtZ29sZCIKLQlf YXJncys9IiAtLXdpdGgtc3lzdGVtLXpsaWIiCi0JLi4vYmludXRpbHMtJHtfYmludXRpbHNfdmVy c2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlIGNvbmZpZ3VyZS1ob3N0ICYmIG1ha2Ug JHttYWtlam9ic30KLQltYWtlIGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8uYmludXRpbHNf YnVpbGRfZG9uZQotfQotCi1fZ2NjX2Jvb3RzdHJhcCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAt ZiAke3dya3NyY30vLmdjY19ib290c3RyYXBfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dy a3NyY30vZ2NjLSR7X2djY192ZXJzaW9ufQotCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L2dj Yy9wYXRjaGVzLyoucGF0Y2g7IGRvCi0JCV9hcHBseV9wYXRjaCAtcDAgIiRmIgotCWRvbmUKLQot CW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdjYyBib290c3RyYXBcbiIKLQotCVsgISAtZCAu Li9nY2MtYm9vdHN0cmFwIF0gJiYgbWtkaXIgLi4vZ2NjLWJvb3RzdHJhcAotCWNkIC4uL2djYy1i b290c3RyYXAKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7 X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aG91dC1oZWFkZXJzIgotCV9hcmdzKz0iIC0tZGlz YWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWRpc2Fi bGUtbGlicXVhZG1hdGgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWRlY2ltYWwtZmxvYXQiCi0JX2Fy Z3MrPSIgLS1kaXNhYmxlLWxpYmdvbXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm1weCIKLQlf YXJncys9IiAtLWRpc2FibGUtbGlibXVkZmxhcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlic3Nw IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJpdG0iCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmF0 b21pYyIKLQlfYXJncys9IiAtLWRpc2FibGUtdGhyZWFkcyIKLQlfYXJncys9IiAtLWVuYWJsZS1s YW5ndWFnZXM9YyIKLQlfYXJncys9IiAtLWRpc2FibGUtc2psai1leGNlcHRpb25zIgotCV9hcmdz Kz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJncys9IiAtLXdpdGgtZ251LWxkIgotCV9hcmdz Kz0iIC0td2l0aC1nbnUtYXMiCi0KLQkuLi9nY2MtJHtfZ2NjX3ZlcnNpb259L2NvbmZpZ3VyZSAk e19hcmdzfQotCi0JbWFrZSAke21ha2Vqb2JzfQotCW1ha2UgaW5zdGFsbAotCi0JdG91Y2ggJHt3 cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUKLX0KLQotX2dsaWJjX2hlYWRlcnMoKSB7Ci0JbG9j YWwgX2FyZ3MgZgotCi0JWyAtZiAke3dya3NyY30vLmdsaWJjX2hlYWRlcnNfZG9uZSBdICYmIHJl dHVybiAwCi0KLQljZCAke3dya3NyY30vZ2xpYmMtJHtfZ2xpYmNfdmVyc2lvbn0KLQlpZiBbIC1k ICIke1hCUFNfU1JDUEtHRElSfS9nbGliYy9wYXRjaGVzIiBdOyB0aGVuCi0JCWZvciBmIGluICR7 WEJQU19TUkNQS0dESVJ9L2dsaWJjL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJCV9hcHBseV9wYXRj aCAtcDEgIiRmIgotCQlkb25lCi0JZmkKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1 aWxkaW5nIGNyb3NzIGdsaWJjIGhlYWRlcnNcbiIKLQotCVsgISAtZCBnbGliYy1oZWFkZXJzIF0g JiYgbWtkaXIgZ2xpYmMtaGVhZGVycwotCWNkIGdsaWJjLWhlYWRlcnMKLQotCWVjaG8gImxpYmNf Y3ZfZm9yY2VkX3Vud2luZD15ZXMiID4gY29uZmlnLmNhY2hlCi0JZWNobyAibGliY19jdl9jX2Ns ZWFudXA9eWVzIiA+PiBjb25maWcuY2FjaGUKLQotCWV4cG9ydCBDQz0iJHtfdHJpcGxldH0tZ2Nj IiBMRD0iJHtfdHJpcGxldH0tbGQiIFwKLQkJQVM9IiR7X3RyaXBsZXR9LWFzIiBDUFA9IiR7X3Ry aXBsZXR9LWNwcCIgXAotCQlOTT0iJHtfdHJpcGxldH0tbm0iCi0KLQlfYXJncz0iLS1wcmVmaXg9 L3VzciIKLQlfYXJncys9IiAtLWhvc3Q9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLWhl YWRlcnM9JHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUiCi0JX2FyZ3MrPSIgLS1jb25maWctY2FjaGUi Ci0JX2FyZ3MrPSIgLS1lbmFibGUtb2Jzb2xldGUtcnBjIgotCV9hcmdzKz0iIC0tZW5hYmxlLW9i c29sZXRlLW5zbCIKLQlfYXJncys9IiAtLWVuYWJsZS1rZXJuZWw9Mi42LjI3IgotCi0JLi4vZ2xp YmMtJHtfZ2xpYmNfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlIC1rIGluc3Rh bGwtaGVhZGVycyBjcm9zc19jb21waWxpbmc9eWVzIFwKLQkJaW5zdGFsbF9yb290PSR7X3N5c3Jv b3R9Ci0KLQl0b3VjaCAke3dya3NyY30vLmdsaWJjX2hlYWRlcnNfZG9uZQotfQotCi1fZ2xpYmNf YnVpbGQoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5nbGliY19idWlsZF9k b25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5n IGNyb3NzIGdsaWJjXG4iCi0KLQlbICEgLWQgZ2xpYmMtYnVpbGQgXSAmJiBta2RpciBnbGliYy1i dWlsZAotCWNkIGdsaWJjLWJ1aWxkCi0KLQllY2hvICJzbGliZGlyPS91c3IvbGliNjQiID4gY29u ZmlncGFybXMKLQotCWVjaG8gImxpYmNfY3ZfZm9yY2VkX3Vud2luZD15ZXMiID4gY29uZmlnLmNh Y2hlCi0JZWNobyAibGliY19jdl9jX2NsZWFudXA9eWVzIiA+PiBjb25maWcuY2FjaGUKLQotCWV4 cG9ydCBDQz0iJHtfdHJpcGxldH0tZ2NjIiBDWFg9IiR7X3RyaXBsZXR9LWcrKyIgTEQ9IiR7X3Ry aXBsZXR9LWxkIiBcCi0JCUFTPSIke190cmlwbGV0fS1hcyIgQ1BQPSIke190cmlwbGV0fS1jcHAi IFwKLQkJTk09IiR7X3RyaXBsZXR9LW5tIgotCWV4cG9ydCBDRkxBR1M9Ii1PMSAtcGlwZSAke19h cmNoZmxhZ3N9IgotCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS1saWJkaXI9 L3Vzci9saWI2NCIKLQlfYXJncys9IiAtLWhvc3Q9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13 aXRoLWhlYWRlcnM9JHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUiCi0JX2FyZ3MrPSIgLS1jb25maWct Y2FjaGUiCi0JX2FyZ3MrPSIgLS1lbmFibGUtb2Jzb2xldGUtcnBjIgotCV9hcmdzKz0iIC0tZW5h YmxlLW9ic29sZXRlLW5zbCIKLQlfYXJncys9IiAtLWRpc2FibGUtcHJvZmlsZSIKLQlfYXJncys9 IiAtLWVuYWJsZS1rZXJuZWw9Mi42LjI3IgotCV9hcmdzKz0iIC0tZGlzYWJsZS13ZXJyb3IiCi0K LQkuLi9nbGliYy0ke19nbGliY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2Ug JHttYWtlam9ic30KLQltYWtlIGluc3RhbGxfcm9vdD0ke19zeXNyb290fSBpbnN0YWxsCi0KLQl0 b3VjaCAke3dya3NyY30vLmdsaWJjX2J1aWxkX2RvbmUKLX0KLQotX2djY19idWlsZCgpIHsKLQls b2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmdjY19idWlsZF9kb25lIF0gJiYgcmV0dXJu IDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdjYyBmaW5h bFxuIgotCi0JWyAhIC1kIGdjYy1idWlsZCBdICYmIG1rZGlyIGdjYy1idWlsZAotCWNkIGdjYy1i dWlsZAotCi0JZXhwb3J0IENDPSJnY2MiIENYWD0iZysrIiBDRkxBR1M9Ii1PcyAtcGlwZSIKLQl1 bnNldCBMRCBBUwotCi0JIyBNYWtlIHRoaXMgbGluayB0byB0YXJnZXQgbGlicy4KLQlpZiBbICEg LWYgLnNlZF9zdWJzdF9kb25lIF07IHRoZW4KLQkJc2VkIC1lICJzLCAvbGliLywgJHtfc3lzcm9v dH0vbGliLyxnO3MsIC91c3IvbGliLywgJHtfc3lzcm9vdH0vdXNyL2xpYi8sZyIgXAotCQkJLWkg JHtfc3lzcm9vdH0vbGliL2xpYmMuc28KLQkJc2VkIC1lICJzLCAvbGliNjQvLCAke19zeXNyb290 fS9saWI2NC8sZztzLCAvdXNyL2xpYjY0LywgJHtfc3lzcm9vdH0vdXNyL2xpYjY0LyxnIiBcCi0J CQktaSAke19zeXNyb290fS9saWIvbGliYy5zbwotCQl0b3VjaCAuc2VkX3N1YnN0X2RvbmUKLQlm aQotCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS1saWJleGVjZGlyPS91c3Iv bGliIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1z eXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jLGFkYSxj Kyssb2JqYyxvYmotYysrLGdvLGZvcnRyYW4sbHRvIgotCV9hcmdzKz0iIC0td2l0aC1nbnUtYXMi Ci0JX2FyZ3MrPSIgLS13aXRoLWdudS1sZCIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIi Ci0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtc2psai1leGNl cHRpb25zIgotCV9hcmdzKz0iIC0tZW5hYmxlLXRocmVhZHM9cG9zaXgiCi0JX2FyZ3MrPSIgLS1l bmFibGUtbG9uZy1sb25neCIKLQlfYXJncys9IiAtLWVuYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIg LS1lbmFibGUtbGlua2VyLWJ1aWxkLWlkIgotCV9hcmdzKz0iIC0tZW5hYmxlLWdudS11bmlxdWUt b2JqZWN0IgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpYmFkYSIKLQlfYXJncys9IiAtLWVuYWJsZS1s dG8iCi0JX2FyZ3MrPSIgLS1lbmFibGUtZGVmYXVsdC1waWUiCi0JX2FyZ3MrPSIgLS1lbmFibGUt ZGVmYXVsdC1zc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnF1YWRtYXRoIgotCV9hcmdzKz0i IC0tZGlzYWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm11ZGZsYXAiCi0JX2Fy Z3MrPSIgLS1kaXNhYmxlLWxpYnNhbml0aXplciIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliY2ls a3J0cyIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliaXRtIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1s aWJ2dHYiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnN0ZGN4eC1wY2giCi0JX2FyZ3MrPSIgLS1l bmFibGUtbGlic3RkY3h4LXRpbWUiCi0JX2FyZ3MrPSIgLS13aXRoLWxpbmtlci1oYXNoLXN0eWxl PWdudSIKLQotCS4uL2djYy0ke19nY2NfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQlt YWtlICR7bWFrZWpvYnN9Ci0KLQl0b3VjaCAke3dya3NyY30vLmdjY19idWlsZF9kb25lCi19Ci0K LWRvX2J1aWxkKCkgewotCXVuc2V0IExERkxBR1MKLQlleHBvcnQgQ0ZMQUdTPSItT3MiIENYWEZM QUdTPSItT3MiCi0KLQlmb3IgZiBpbiBpbmNsdWRlIGxpYiBsaWJleGVjIGJpbiBzYmluOyBkbwot CQlpZiBbICEgLWQgJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXTsgdGhlbgotCQkJbWtkaXIgLXAgJHtf c3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkKLQkJaWYgWyAhIC1oICR7X3N5c3Jvb3R9LyR7Zn0gXTsg dGhlbgotCQkJbG4gLXNmciAke19zeXNyb290fS91c3IvJHtmfSAke19zeXNyb290fS8ke2Z9Ci0J CWZpCi0JZG9uZQotCWxuIC1zZiBsaWIgJHtfc3lzcm9vdH0vdXNyL2xpYjY0Ci0JbG4gLXNmIHVz ci9saWIgJHtfc3lzcm9vdH0vbGliNjQKLQotCV9iaW51dGlsc19idWlsZAotCV9nY2NfYm9vdHN0 cmFwCi0JX2xpbnV4X2hlYWRlcnMKLQlfZ2xpYmNfaGVhZGVycwotCV9nbGliY19idWlsZAotCV9n Y2NfYnVpbGQKLX0KLQotZG9faW5zdGFsbCgpIHsKLQlmb3IgZiBpbiBpbmNsdWRlIGxpYiBsaWJl eGVjIGJpbiBzYmluOyBkbwotCQlpZiBbICEgLWQgJHtERVNURElSfS8ke19zeXNyb290fS91c3Iv JHtmfSBdOyB0aGVuCi0JCQlta2RpciAtcCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9 Ci0JCWZpCi0JCWlmIFsgISAtaCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9LyR7Zn0gXTsgdGhlbgot CQkJbG4gLXNmciAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9IFwKLQkJCQkke0RFU1RE SVJ9LyR7X3N5c3Jvb3R9LyR7Zn0KLQkJZmkKLQlkb25lCi0JbG4gLXNmIGxpYiAke0RFU1RESVJ9 LyR7X3N5c3Jvb3R9L3Vzci9saWI2NAotCWxuIC1zZiB1c3IvbGliICR7REVTVERJUn0vJHtfc3lz cm9vdH0vbGliNjQKLQotCSMgaW5zdGFsbCBjcm9zcyBiaW51dGlscwotCWNkICR7d3Jrc3JjfS9i aW51dGlscy1idWlsZAotCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9IGluc3RhbGwKLQotCSMgaW5z dGFsbCBjcm9zcyBnY2MKLQljZCAke3dya3NyY30vZ2NjLWJ1aWxkCi0JbWFrZSBERVNURElSPSR7 REVTVERJUn0gaW5zdGFsbAotCi0JIyBtb3ZlIGxpYmNjMS5zbyogdG8gdGhlIHN5c3Jvb3QKLQlt diAke0RFU1RESVJ9L3Vzci9saWIvbGliY2MxLnNvKiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vz ci9saWIKLQotCSMgaW5zdGFsbCBsaW51eCBBUEkgaGVhZGVycyBmb3IgQVJNNjQKLQljZCAke3dy a3NyY30vbGludXgtJHtfbGludXhfdmVyc2lvbn0KLQltYWtlIEFSQ0g9YXJtNjQgSU5TVEFMTF9I RFJfUEFUSD0ke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3VzciBoZWFkZXJzX2luc3RhbGwKLQlybSAt ZiAkKGZpbmQgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvaW5jbHVkZSAtbmFtZSAuaW5zdGFs bCAtb3IgLW5hbWUgLi5pbnN0YWxsLmNtZCkKLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290 fS91c3IvaW5jbHVkZS9kcm0KLQotCSMgaW5zdGFsbCBnbGliYyBmb3IgdGFyZ2V0Ci0JY2QgJHt3 cmtzcmN9L2dsaWJjLWJ1aWxkCi0JbWFrZSBpbnN0YWxsX3Jvb3Q9JHtERVNURElSfS8ke19zeXNy b290fSBpbnN0YWxsIGluc3RhbGwtaGVhZGVycwotCi0JIyBzeW1saW5rcyBmb3IgZ25hcmwgYW5k IGduYXQgc2hhcmVkIGxpYnJhcmllcwotCV9tYWpvcnZlcj0ke19nY2NfdmVyc2lvbiUuKi4qfQot CV9hZGFsaWI9dXNyL2xpYi9nY2MvJHtfdHJpcGxldH0vJHtfZ2NjX3ZlcnNpb259L2FkYWxpYgot CW12IC12ICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmFybC0ke19tYWpvcnZlcn0uc28gJHtE RVNURElSfS8ke19zeXNyb290fS91c3IvbGliCi0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9 L2xpYmduYXQtJHtfbWFqb3J2ZXJ9LnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgot CWxuIC1zdmYgbGliZ25hcmwtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXJsLnNvCi0JbG4gLXN2ZiBs aWJnbmF0LSR7X21ham9ydmVyfS5zbyBsaWJnbmF0LnNvCi0Jcm0gLXZmICR7REVTVERJUn0vJHtf YWRhbGlifS9saWJnbmF7cmwsdH0uc28KLQotCSMgV2UgbmVlZCB0byBidWlsZCBsaWJhdG9taWMg aW4gdGFyZ2V0IGdjYyBhcyBnY2NnbyBuZWVkcyBpdCB0bwotCSMgYnVpbGQuLi4gYnV0IGl0J3Mg bm90IG5lZWRlZCBhdCBydW50aW1lLCBzbyByZW1vdmUgaXQgZnJvbSB0aGUKLQkjIGRlc3RkaXIg c28gaXQgZG9lc24ndCBjb25mbGljdCB3aXRoIHRoZSBsaWJhdG9taWMgcGFja2FnZQotCXJtIC1m ICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYi9saWJhdG9taWMuKgotCi0JIyBSZW1vdmUg dW5uZWNlc3Nhcnkgc3R1ZmYKLQlybSAtZiAke0RFU1RESVJ9L3Vzci9saWIqL2xpYmliZXJ0eS5h Ci0Jcm0gLXJmICR7REVTVERJUn0vdXNyL3NoYXJlCi0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lz cm9vdH0ve3NiaW4sZXRjLHZhcn0KLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS91c3Iv e3NiaW4sc2hhcmUsbGliZXhlY30KLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYmV4 ZWMKLX0KLQotZG9fY2xlYW4oKSB7Ci0JIyBSZW1vdmUgdGVtcG9yYXJ5IHN0dWZmIGZyb20gbWFz dGVyZGlyCi0Jcm0gLXJmICR7X3N5c3Jvb3R9Ci0Jcm0gLWYgL3Vzci9iaW4vJHtfdHJpcGxldH0q Ci0Jcm0gLXJmIC91c3IvbGliL2djYy8ke190cmlwbGV0fQotCXJtIC1yZiAvdXNyL2xpYmV4ZWMv Z2NjLyR7X3RyaXBsZXR9Ci19Ci0KIGNyb3NzLWFhcmNoNjQtbGludXgtZ251LWxpYmNfcGFja2Fn ZSgpIHsKIAlzaG9ydF9kZXNjKz0iIC0gZ2xpYmMgZmlsZXMiCiAJbm9zdHJpcD15ZXMKQEAgLTM3 Niw2ICs0OCw2IEBAIGNyb3NzLWFhcmNoNjQtbGludXgtZ251LWxpYmNfcGFja2FnZSgpIHsKIAlu b3ZlcmlmeXJkZXBzPXllcwogCiAJcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlICR7X3N5c3Jvb3R9 CisJCXZtb3ZlIHVzci8ke2Nyb3NzX3RyaXBsZXR9CiAJfQogfQoKRnJvbSA4OGY4MjlhMDFjNjA2 N2E4ZDRiZTFhMWEwMTEwNDIzM2IzMjMxOWYxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBxNjYgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBGcmksIDI1IERlYyAyMDIwIDE0OjUy OjM2ICswMTAwClN1YmplY3Q6IFtQQVRDSCA0LzRdIGNyb3NzLWFhcmNoNjQtbGludXgtbXVzbDog cmVkbyB3aXRoIHZvaWQtY3Jvc3MKIGJ1aWxkLXN0eWxlCgotLS0KIHNyY3BrZ3MvY3Jvc3MtYWFy Y2g2NC1saW51eC1tdXNsL3RlbXBsYXRlIHwgMzEwICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEg ZmlsZSBjaGFuZ2VkLCAyMiBpbnNlcnRpb25zKCspLCAyODggZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9jcm9zcy1hYXJjaDY0LWxpbnV4LW11c2wvdGVtcGxhdGUgYi9zcmNwa2dz L2Nyb3NzLWFhcmNoNjQtbGludXgtbXVzbC90ZW1wbGF0ZQppbmRleCA4ZDQ1ODdjZmU0OC4uODY3 MWJiOWQyMGIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY3Jvc3MtYWFyY2g2NC1saW51eC1tdXNsL3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3MvY3Jvc3MtYWFyY2g2NC1saW51eC1tdXNsL3RlbXBsYXRlCkBA IC0xLDE5ICsxLDE5IEBACi0jIFRlbXBsYXRlIGJ1aWxkIGZpbGUgZm9yICdjcm9zcy1hYXJjaDY0 LWxpbnV4LW11c2wnCi0jCisjIFRlbXBsYXRlIGZpbGUgZm9yICdjcm9zcy1hYXJjaDY0LWxpbnV4 LW11c2wnCitfdHJpcGxldD1hYXJjaDY0LWxpbnV4LW11c2wKIF9iaW51dGlsc192ZXJzaW9uPTIu MzIKIF9nY2NfdmVyc2lvbj05LjMuMAogX211c2xfdmVyc2lvbj0xLjEuMjQKIF9saW51eF92ZXJz aW9uPTQuMTkKIF9saWJ1Y29udGV4dF92ZXJzaW9uPTAuOS4wCi0KLV90cmlwbGV0PWFhcmNoNjQt bGludXgtbXVzbAotX2FyY2hmbGFncz0iLW1hcmNoPWFybXY4LWEiCi1fc3lzcm9vdD0iL3Vzci8k e190cmlwbGV0fSIKLQogcGtnbmFtZT1jcm9zcy0ke190cmlwbGV0fQogdmVyc2lvbj0wLjMzCiBy ZXZpc2lvbj00Ci1zaG9ydF9kZXNjPSJDcm9zcyB0b29sY2hhaW4gZm9yIEFSTTY0IExFIHRhcmdl dCAobXVzbCkiCitidWlsZF9zdHlsZT12b2lkLWNyb3NzCitjb25maWd1cmVfYXJncz0iLS13aXRo LWFyY2g9YXJtdjgtYSIKK2hvc3RtYWtlZGVwZW5kcz0idGFyIGdjYy1vYmpjIGdjYy1nbyBmbGV4 IHBlcmwgcHl0aG9uMyIKK21ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgemxp Yi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbCIKK2RlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0k e3ZlcnNpb259XyR7cmV2aXNpb259Igorc2hvcnRfZGVzYz0iVm9pZCBjcm9zcyB0b29sY2hhaW4g Zm9yICR7X3RyaXBsZXR9IgogbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgu b3JnPiIKIGhvbWVwYWdlPSJodHRwczovL3d3dy52b2lkbGludXgub3JnLyIKIGxpY2Vuc2U9IkdQ TC0yLjAtb3ItbGF0ZXIsIEdQTC0zLjAtb3ItbGF0ZXIsIE1JVCIKQEAgLTI5LDI5NiArMjksMzAg QEAgY2hlY2tzdW09IjBhYjZjNTVkZDg2YTkyZWQ1NjE5NzJiYTE1YjliNzBhOGI5Zjc1NTU3Zjg5 NjQ0NmM4MmU4YjM2ZTQ3M2VlMDQKICAwYzY4ZjU2NTU1MjhhZWQ0Zjk5ZGFlNzFhNWIyNTllZGM5 MzIzOWZhODk5ZTJkZjc5YzA1NTI3NWMyMTc0OWExCiAgMGQ1M2E0MTVhMzA3ZWYxNzUxNTNiYmU2 MGE1NzJjOTQwYTkyMmNiNzM2Y2UxMzUzMGI2NjZlN2VjMjc5NWQ2OCIKIAotbGliMzJkaXNhYmxl ZD15ZXMKLW5vY3Jvc3M9eWVzCi1ub3BpZT15ZXMKLW5vZGVidWc9eWVzCi1jcmVhdGVfd3Jrc3Jj PXllcwotCi1ob3N0bWFrZWRlcGVuZHM9InRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5 dGhvbjMiCi1tYWtlZGVwZW5kcz0iemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbCBsaWJt cGMtZGV2ZWwgaXNsMTUtZGV2ZWwiCi1ub3N0cmlwX2ZpbGVzPSJsaWJjYWZfc2luZ2xlLmEgbGli Z2NjLmEgbGliZ2Nvdi5hIGxpYmdjY19laC5hCi0gbGliZ25hcmxfcGljLmEgbGliZ25hcmwuYSBs aWJnbmF0X3BpYy5hIGxpYmduYXQuYSBsaWJnbWVtLmEiCi1kZXBlbmRzPSIke3BrZ25hbWV9LWxp YmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKLQotaWYgWyAiJFhCUFNfVEFSR0VUX1dPUkRTSVpF IiAhPSAiNjQiIF07IHRoZW4KLQlicm9rZW49IjY0LWJpdCBjcm9zc3Rvb2xjaGFpbiBvbmx5IGF2 YWlsYWJsZSBvbiA2NC1iaXQgaG9zdCIKLWZpCitjcm9zc190cmlwbGV0PSR7X3RyaXBsZXR9Citj cm9zc193b3Jkc2l6ZT02NAorY3Jvc3NfbGliYz1tdXNsCitjcm9zc19iaW51dGlsc192ZXJzaW9u PSR7X2JpbnV0aWxzX3ZlcnNpb259Citjcm9zc19nY2NfdmVyc2lvbj0ke19nY2NfdmVyc2lvbn0K K2Nyb3NzX211c2xfdmVyc2lvbj0ke19tdXNsX3ZlcnNpb259Citjcm9zc19saW51eF92ZXJzaW9u PSR7X2xpbnV4X3ZlcnNpb259Citjcm9zc19saWJ1Y29udGV4dF92ZXJzaW9uPSR7X2xpYnVjb250 ZXh0X3ZlcnNpb259Citjcm9zc19saWJ1Y29udGV4dF9hcmNoPWFhcmNoNjQKK2Nyb3NzX2xpbnV4 X2FyY2g9YXJtNjQKK2Nyb3NzX3dvcmRzaXplPTY0Citjcm9zc19tdXNsX2NmbGFncz0iLU8yIC1t YXJjaD1hcm12OC1hIgogCiBpZiBbICIkWEJQU19UQVJHRVRfTUFDSElORSIgPSAiYWFyY2g2NC1t dXNsIiBdOyB0aGVuCiAJYnJva2VuPSJDYW4ndCBidWlsZCBjcm9zc3Rvb2xjaGFpbiB0byBpdHNl bGYiCiBmaQogCi1fYXBwbHlfcGF0Y2goKSB7Ci0JbG9jYWwgYXJncz0iJDEiIHBuYW1lPSIkKGJh c2VuYW1lICQyKSIKLQotCWlmIFsgISAtZiAiLiR7cG5hbWV9X2RvbmUiIF07IHRoZW4KLQkJcGF0 Y2ggLU4gJGFyZ3MgLWkgJDIKLQkJdG91Y2ggLiR7cG5hbWV9X2RvbmUKLQlmaQotfQotCi1fYmlu dXRpbHNfYnVpbGQoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5iaW51dGls c19idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwg IkJ1aWxkaW5nIGNyb3NzIGJpbnV0aWxzIGJvb3RzdHJhcFxuIgotCi0JWyAhIC1kIGJpbnV0aWxz LWJ1aWxkIF0gJiYgbWtkaXIgYmludXRpbHMtYnVpbGQKLQljZCBiaW51dGlscy1idWlsZAotCV9h cmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9h cmdzKz0iIC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1u bHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS13 ZXJyb3IiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLXdpdGgtc3lz dGVtLXpsaWIiCi0KLQkuLi9iaW51dGlscy0ke19iaW51dGlsc192ZXJzaW9ufS9jb25maWd1cmUg JHtfYXJnc30KLQotCW1ha2UgY29uZmlndXJlLWhvc3QgJiYgbWFrZSAke21ha2Vqb2JzfQotCW1h a2UgaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5iaW51dGlsc19idWlsZF9kb25lCi19Ci0K LV9nY2NfYm9vdHN0cmFwKCkgewotCWxvY2FsIF9hcmdzCi0JWyAtZiAke3dya3NyY30vLmdjY19i b290c3RyYXBfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30vZ2NjLSR7X2djY192 ZXJzaW9ufQotCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L2djYy9wYXRjaGVzLyoucGF0Y2g7 IGRvCi0JCV9hcHBseV9wYXRjaCAtcDAgIiRmIgotCWRvbmUKLQlmb3IgZiBpbiAke1hCUFNfU1JD UEtHRElSfS9nY2MvZmlsZXMvKi1tdXNsLnBhdGNoOyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAxICIk ZiIKLQlkb25lCi0KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBnY2MgYm9vdHN0cmFwXG4i Ci0KLQlbICEgLWQgLi4vZ2NjLWJvb3RzdHJhcCBdICYmIG1rZGlyIC4uL2djYy1ib290c3RyYXAK LQljZCAuLi9nY2MtYm9vdHN0cmFwCi0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9 IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNy b290fSIKLQlfYXJncys9IiAtLXdpdGgtbmV3bGliIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1 YWdlcz1jIgotCV9hcmdzKz0iIC0td2l0aC1uZXdsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxp YnNzcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJx dWFkbWF0aCIKLQlfYXJncys9IiAtLWRpc2FibGUtdGhyZWFkcyIKLQlfYXJncys9IiAtLWRpc2Fi bGUtZGVjaW1hbC1mbG9hdCIKLQlfYXJncys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0i IC0tZGlzYWJsZS1saWJtdWRmbGFwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJnb21wIgotCV9h cmdzKz0iIC0tZGlzYWJsZS1saWJhdG9taWMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXN5bXZlcnMi Ci0JX2FyZ3MrPSIgbGliYXRfY3ZfaGF2ZV9pZnVuYz1ubyIKLQotCUNGTEFHUz0iLU8wIC1nMCIg Q1hYRkxBR1M9Ii1PMCAtZzAiIFwKLQkJLi4vZ2NjLSR7X2djY192ZXJzaW9ufS9jb25maWd1cmUg JHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQltYWtlIGluc3RhbGwKLQotCXRvdWNoICR7 d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJhcF9kb25lCi19Ci0KLV9saW51eF9oZWFkZXJzKCkgewotCVsg LWYgJHt3cmtzcmN9Ly5saW51eF9idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jr c3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIExpbnV4IEFQSSBoZWFkZXJzXG4iCi0KLQljZCBs aW51eC0ke19saW51eF92ZXJzaW9ufQotCi0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0va2Vy bmVsLWxpYmMtaGVhZGVycy9wYXRjaGVzLyoucGF0Y2g7IGRvCi0JCV9hcHBseV9wYXRjaCAtcDAg JGYKLQlkb25lCi0KLQltYWtlIEFSQ0g9YXJtNjQgaGVhZGVyc19jaGVjawotCW1ha2UgQVJDSD1h cm02NCBJTlNUQUxMX0hEUl9QQVRIPSR7X3N5c3Jvb3R9L3VzciBoZWFkZXJzX2luc3RhbGwKLQot CXRvdWNoICR7d3Jrc3JjfS8ubGludXhfYnVpbGRfZG9uZQotfQotCi1fbXVzbF9idWlsZCgpIHsK LQlbIC1mICR7d3Jrc3JjfS8ubXVzbF9idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7 d3Jrc3JjfS9tdXNsLSR7X211c2xfdmVyc2lvbn0KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9z cyBtdXNsIGxpYmNcbiIKLQotCSMgQXBwbHkgbXVzbCBwYXRjaGVzIGlmIHRoZXJlIGFyZSBhbnkK LQlpZiBbIC1kICIke1hCUFNfU1JDUEtHRElSfS9tdXNsL3BhdGNoZXMiIF07IHRoZW4KLQkJZm9y IGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vbXVzbC9wYXRjaGVzLyoucGF0Y2g7IGRvCi0JCQlfYXBw bHlfcGF0Y2ggLXAwICIkZiIKLQkJZG9uZQotCWZpCi0KLQlDQz0iJHtfdHJpcGxldH0tZ2NjIiBM RD0iJHtfdHJpcGxldH0tbGQiIEFSPSIke190cmlwbGV0fS1hciIgXAotCQlBUz0iJHtfdHJpcGxl dH0tYXMiIFJBTkxJQj0iJHtfdHJpcGxldH0tcmFubGliIiBcCi0JCUNGTEFHUz0iLU9zIC1waXBl IC1mUElDICR7X2FyY2hmbGFnc30iIFwKLQkJLi9jb25maWd1cmUgLS1wcmVmaXg9L3VzcgotCi0J bWFrZSAke21ha2Vqb2JzfQotCW1ha2UgREVTVERJUj0ke19zeXNyb290fSBpbnN0YWxsCi0KLQl0 b3VjaCAke3dya3NyY30vLm11c2xfYnVpbGRfZG9uZQotfQotCi1fbGlidWNvbnRleHRfYnVpbGQo KSB7Ci0JWyAtZiAke3dya3NyY30vLmxpYnVjb250ZXh0X2J1aWxkX2RvbmUgXSAmJiByZXR1cm4g MAotCi0JY2QgJHt3cmtzcmN9L2xpYnVjb250ZXh0LSR7X2xpYnVjb250ZXh0X3ZlcnNpb259Ci0J bXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgbGlidWNvbnRleHRcbiIKLQotCSMgaXQncyBvayBp ZiB3ZSdyZSBzdGF0aWMgb25seSBoZXJlCi0JQ0M9IiR7X3RyaXBsZXR9LWdjYyIgQVI9IiR7X3Ry aXBsZXR9LWFyIiBBUz0iJHtfdHJpcGxldH0tYXMiIFwKLQkJQ0ZMQUdTPSItT3MgLXBpcGUgJHtf YXJjaGZsYWdzfSIgXAotCQltYWtlIEFSQ0g9YWFyY2g2NCBsaWJ1Y29udGV4dC5hCi0KLQljcCBs aWJ1Y29udGV4dC5hICR7X3N5c3Jvb3R9L3Vzci9saWIKLQotCXRvdWNoICR7d3Jrc3JjfS8ubGli dWNvbnRleHRfYnVpbGRfZG9uZQotfQotCi1fZ2NjX2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0K LQlbIC1mICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3 cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2NjIGZpbmFsXG4iCi0KLQlbICEg LWQgZ2NjLWJ1aWxkIF0gJiYgbWtkaXIgZ2NjLWJ1aWxkCi0JY2QgZ2NjLWJ1aWxkCi0KLQlfYXJn cz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLWxpYmV4ZWNkaXI9L3Vzci9saWIiCi0JX2Fy Z3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtf c3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGFuZ3VhZ2VzPWMsYWRhLGMrKyxvYmpjLG9i ai1jKyssZ28sZm9ydHJhbixsdG8iCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGliYWRhIgotCV9hcmdz Kz0iIC0tZW5hYmxlLWx0byIKLQlfYXJncys9IiAtLWVuYWJsZS1kZWZhdWx0LXBpZSIKLQlfYXJn cys9IiAtLWVuYWJsZS1kZWZhdWx0LXNzcCIKLQlfYXJncys9IiAtLWVuYWJsZS1saWJzc3AiCi0J X2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNhbml0aXplciIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVs dGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtbGli cXVhZG1hdGgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm11ZGZsYXAiCi0JX2FyZ3MrPSIgLS1l bmFibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zeW12ZXJzIgotCV9hcmdzKz0iIGxp YmF0X2N2X2hhdmVfaWZ1bmM9bm8iCi0KLQkuLi9nY2MtJHtfZ2NjX3ZlcnNpb259L2NvbmZpZ3Vy ZSAke19hcmdzfQotCi0JbWFrZSAke21ha2Vqb2JzfQotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nY2Nf YnVpbGRfZG9uZQotfQotCi1kb19idWlsZCgpIHsKLQkjIEVuc3VyZSB3ZSB1c2Ugc2FuZSBlbnZp cm9ubWVudAotCXVuc2V0IENDIENYWCBDUFAgTEQgQVMgQVIgUkFOTElCIE9CSkRVTVAgUkVBREVM RiBOTQotCXVuc2V0IENGTEFHUyBDWFhGTEFHUyBDUFBGTEFHUyBMREZMQUdTCi0JZXhwb3J0IENG TEFHUz0iLU9zIC1waXBlIiBDWFhGTEFHUz0iLU9zIC1waXBlIgotCi0JZm9yIGYgaW4gaW5jbHVk ZSBsaWIgbGliZXhlYyBiaW4gc2JpbjsgZG8KLQkJaWYgWyAhIC1kICR7X3N5c3Jvb3R9L3Vzci8k e2Z9IF07IHRoZW4KLQkJCW1rZGlyIC1wICR7X3N5c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZpCi0JCWlm IFsgISAtaCAke19zeXNyb290fS8ke2Z9IF07IHRoZW4KLQkJCWxuIC1zZnIgJHtfc3lzcm9vdH0v dXNyLyR7Zn0gJHtfc3lzcm9vdH0vJHtmfQotCQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7X3N5 c3Jvb3R9L3Vzci9saWI2NAotCWxuIC1zZiB1c3IvbGliICR7X3N5c3Jvb3R9L2xpYjY0Ci0KLQlf YmludXRpbHNfYnVpbGQKLQlfZ2NjX2Jvb3RzdHJhcAotCV9saW51eF9oZWFkZXJzCi0JX211c2xf YnVpbGQKLQlfbGlidWNvbnRleHRfYnVpbGQKLQlfZ2NjX2J1aWxkCi19Ci0KLWRvX2luc3RhbGwo KSB7Ci0JZm9yIGYgaW4gaW5jbHVkZSBsaWIgbGliZXhlYyBiaW4gc2JpbjsgZG8KLQkJaWYgWyAh IC1kICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXTsgdGhlbgotCQkJbWtkaXIgLXAg JHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfQotCQlmaQotCQlpZiBbICEgLWggJHtERVNU RElSfS8ke19zeXNyb290fS8ke2Z9IF07IHRoZW4KLQkJCWxuIC1zZnIgJHtERVNURElSfS8ke19z eXNyb290fS91c3IvJHtmfSBcCi0JCQkJJHtERVNURElSfS8ke19zeXNyb290fS8ke2Z9Ci0JCWZp Ci0JZG9uZQotCWxuIC1zZiBsaWIgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliNjQKLQls biAtc2YgdXNyL2xpYiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYjY0Ci0KLQkjIGluc3RhbGwg bGludXggQVBJIGhlYWRlcnMKLQljZCAke3dya3NyY30vbGludXgtJHtfbGludXhfdmVyc2lvbn0K LQltYWtlIEFSQ0g9YXJtNjQgSU5TVEFMTF9IRFJfUEFUSD0ke0RFU1RESVJ9LyR7X3N5c3Jvb3R9 L3VzciBoZWFkZXJzX2luc3RhbGwKLQlybSAtZiAkKGZpbmQgJHtERVNURElSfS8ke19zeXNyb290 fS91c3IvaW5jbHVkZSAtbmFtZSAuaW5zdGFsbCAtb3IgLW5hbWUgLi5pbnN0YWxsLmNtZCkKLQly bSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvaW5jbHVkZS9kcm0KLQotCSMgaW5zdGFs bCBjcm9zcyBiaW51dGlscwotCWNkICR7d3Jrc3JjfS9iaW51dGlscy1idWlsZAotCW1ha2UgREVT VERJUj0ke0RFU1RESVJ9IGluc3RhbGwKLQotCSMgaW5zdGFsbCBjcm9zcyBnY2MKLQljZCAke3dy a3NyY30vZ2NjLWJ1aWxkCi0JbWFrZSBERVNURElSPSR7REVTVERJUn0gaW5zdGFsbAotCi0JIyBt b3ZlIGxpYmNjMS5zbyogdG8gdGhlIHN5c3Jvb3QKLQltdiAke0RFU1RESVJ9L3Vzci9saWIvbGli Y2MxLnNvKiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQotCSMgaW5zdGFsbCBtdXNs IGxpYmMgZm9yIHRhcmdldAotCWNkICR7d3Jrc3JjfS9tdXNsLSR7X211c2xfdmVyc2lvbn0KLQlt YWtlIERFU1RESVI9JHtERVNURElSfS8ke19zeXNyb290fSBpbnN0YWxsCi0KLQkjIFJlbW92ZSB1 c2VsZXNzIGhlYWRlcnMuCi0Jcm0gLXJmICR7REVTVERJUn0vdXNyL2xpYi9nY2MvJHtfdHJpcGxl dH0vKi9pbmNsdWRlLWZpeGVkCi0KLQkjIE1ha2UgbGQtbXVzbC5zbyBzeW1saW5rcyByZWxhdGl2 ZS4KLQlsbiAtc2YgbGliYy5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIvbGQtbXVz bC1hYXJjaDY0LnNvLjEKLQotCSMgc3ltbGlua3MgZm9yIGduYXJsIGFuZCBnbmF0IHNoYXJlZCBs aWJyYXJpZXMKLQlfbWFqb3J2ZXI9JHtfZ2NjX3ZlcnNpb24lLiouKn0KLQlfYWRhbGliPXVzci9s aWIvZ2NjLyR7X3RyaXBsZXR9LyR7X2djY192ZXJzaW9ufS9hZGFsaWIKLQltdiAtdiAke0RFU1RE SVJ9LyR7X2FkYWxpYn0vbGliZ25hcmwtJHtfbWFqb3J2ZXJ9LnNvICR7REVTVERJUn0vJHtfc3lz cm9vdH0vdXNyL2xpYgotCW12IC12ICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmF0LSR7X21h am9ydmVyfS5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQlsbiAtc3ZmIGxpYmdu YXJsLSR7X21ham9ydmVyfS5zbyBsaWJnbmFybC5zbwotCWxuIC1zdmYgbGliZ25hdC0ke19tYWpv cnZlcn0uc28gbGliZ25hdC5zbwotCXJtIC12ZiAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGliZ25h e3JsLHR9LnNvCi0KLQkjIFdlIG5lZWQgdG8gYnVpbGQgbGliYXRvbWljIGluIHRhcmdldCBnY2Mg YXMgZ2NjZ28gbmVlZHMgaXQgdG8KLQkjIGJ1aWxkLi4uIGJ1dCBpdCdzIG5vdCBuZWVkZWQgYXQg cnVudGltZSwgc28gcmVtb3ZlIGl0IGZyb20gdGhlCi0JIyBkZXN0ZGlyIHNvIGl0IGRvZXNuJ3Qg Y29uZmxpY3Qgd2l0aCB0aGUgbGliYXRvbWljIHBhY2thZ2UKLQlybSAtZiAke0RFU1RESVJ9LyR7 X3N5c3Jvb3R9L3Vzci9saWIvbGliYXRvbWljLioKLQotCSMgUmVtb3ZlIHVubmVjZXNzYXJ5IHN0 dWZmCi0Jcm0gLWYgJHtERVNURElSfS91c3IvbGliKi9saWJpYmVydHkuYQotCXJtIC1yZiAke0RF U1RESVJ9L3Vzci9zaGFyZQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3tldGMsdmFy fQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci97c2JpbixzaGFyZSxsaWJleGVj fQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0vbGliZXhlYwotCXJtIC1mICR7REVTVERJ Un0vJHtfc3lzcm9vdH0vbGliLyoucHkKLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Ni aW4KLX0KLQogY3Jvc3MtYWFyY2g2NC1saW51eC1tdXNsLWxpYmNfcGFja2FnZSgpIHsKIAlzaG9y dF9kZXNjKz0iIC0gbGliYyBmaWxlcyIKIAlub3N0cmlwPXllcwogCW5vc2hsaWJwcm92aWRlcz15 ZXMKIAlub3ZlcmlmeXJkZXBzPXllcworCiAJcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlICR7X3N5 c3Jvb3R9CisJCXZtb3ZlIHVzci8ke2Nyb3NzX3RyaXBsZXR9CiAJfQogfQo= --===============6550095815285098717==--