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 13730 invoked from network); 25 Dec 2020 15:50:26 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 25 Dec 2020 15:50:26 -0000 Content-Type: multipart/mixed; boundary="===============2295242329960993338==" 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 16:50:25 +0100 List-Id: Message-ID: <20201225155025.WB7r5yIIFyHH4FnaMOpw0NvKLZeVnymoRXcvKle4f0o@z> GitHub notification mails are now in MIME to allow UTF8. --===============2295242329960993338== 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 Og0KDQotIFsgXSBBZGQgbXVzbCBzdXBwb3J0DQotIFsgXSBDbGVhbiB1cCB0aGUgY29uZmlndXJl IHBhcmFtcywgb25seSBrZWVwIHRoZSBnZW5lcmljIG9uZXMgaW4gdGhlIGJ1aWxkLXN0eWxlLCBz cGVjaWZpYyBvbmVzIHdpbGwgZ28gaW50byBpbmRpdmlkdWFsIGNyb3NzdG9vbGNoYWlucyAodGhp cyBvbmUgaXMgbGFyZ2VseSBiYXNlZCBvbiB3aGF0IHRoZSBhYXJjaDY0IG9uZSB3YXMgZG9pbmcp DQotIFsgXSBSZXdvcmsgdGhlIG90aGVyIHRlbXBsYXRlcyB0byB1c2UgdGhpcw0KLSBbIF0gNjQt Yml0IGNyb3NzIG9uIDMyLWJpdCBob3N0cyBpcyBwcm9iYWJseSBhY3R1YWxseSBmaW5lIGluIGdl bmVyYWwsIHdlIGp1c3QgbmVlZCB0byBlbmFibGUgaXQNCi0gWyBdIEFsbG93IGdsaWJjIGNyb3Nz dG9vbGNoYWlucyBvbiBtdXNsICh0aGlzIG5lZWRzIGBnbGliY2AgMi4zMiB0aG91Z2gpDQoNCkZv ciBub3csIHBvc3RpbmcgZm9yIGlucHV0Lg0KDQpARHVuY2FlbiBAbGVhaG5ldWtpcmNoZW4gQHB1 bGxtb2xsIEBlcmljb25yIEB2b2lkLWxpbnV4L3BrZy1jb21taXR0ZXJzIA0KDQpbY2kgc2tpcF0K CkEgcGF0Y2ggZmlsZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFj a2FnZXMvcHVsbC8yNzQxMi5wYXRjaCBpcyBhdHRhY2hlZA== --===============2295242329960993338== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-cross-style-27412.patch" RnJvbSA4MTMzYjMwOTk0YmMyNzg4YzA1OTMxMWU1M2JiMjZmOTE1NGI2M2VkIE1vbiBTZXAgMTcg 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 cy9nY2MvdGVtcGxhdGUgYi9zcmNwa2dzL2djYy90ZW1wbGF0ZQppbmRleCA5NDYxYmI2YjEwZS4u ZTM2ZDEzZDQ1MWMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ2NjL3RlbXBsYXRlCisrKyBiL3NyY3Br Z3MvZ2NjL3RlbXBsYXRlCkBAIC0xNzMsOCArMTczLDggQEAgcHJlX2NvbmZpZ3VyZSgpIHsKIAlz ZWQgLWkgIi9hY19jcHA9L3MvXCRDUFBGTEFHUy9cJENQUEZMQUdTIC1PMi8iIHtnY2MsbGliaWJl cnR5fS9jb25maWd1cmUKIAljYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KIAkJKi1tdXNs KQotCQkJcGF0Y2ggLXAxIC1pICR7RklMRVNESVJ9L2xpYmduYXJsLW11c2wucGF0Y2gKLQkJCXBh dGNoIC1wMSAtaSAke0ZJTEVTRElSfS9saWJzc3AtbXVzbC5wYXRjaAorCQkJcGF0Y2ggLXAwIC1p ICR7RklMRVNESVJ9L2xpYmduYXJsLW11c2wucGF0Y2gKKwkJCXBhdGNoIC1wMCAtaSAke0ZJTEVT RElSfS9saWJzc3AtbXVzbC5wYXRjaAogCQkJcGF0Y2ggLXAwIC1pICR7RklMRVNESVJ9L2djY2dv LW11c2wucGF0Y2gKIAkJCTs7CiAJZXNhYwoKRnJvbSAzOWQ0NzlkZmY5NDE5ODllMGY5N2UwMWRk ZGY3ZDI5ZGI2YTgzOWI4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBxNjYgPGRhbmll bEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBGcmksIDI1IERlYyAyMDIwIDAwOjQyOjI2ICswMTAwClN1 YmplY3Q6IFtQQVRDSCAyLzRdIGNvbW1vbi9idWlsZC1zdHlsZTogYWRkIHZvaWQtY3Jvc3MKCnRo aXMgaW50cm9kdWNlcyBhIG5ldyBidWlsZC1zdHlsZSB2b2lkLWNyb3NzLCB3aGljaCBjYW4gYmUg dXNlZAp0byB3cml0ZSBzeXN0ZW0gY3Jvc3N0b29sY2hhaW4gdGVtcGxhdGVzOyB0aGlzIGlzIHRv IHJlZHVjZSB0aGUKYW1vdW50IG9mIG1haW50ZW5hbmNlLCByZXNvbHZlIGV4aXN0aW5nIHByb2Js ZW1zIHdpdGggdGhlIGNyb3NzCnRvb2xjaGFpbiB0ZW1wbGF0ZXMgYW5kIHJlbW92ZSByZXBlYXRl ZCBjb2RlCi0tLQogY29tbW9uL2J1aWxkLXN0eWxlL3ZvaWQtY3Jvc3Muc2ggICAgICAgICAgICAg fCA1NTQgKysrKysrKysrKysrKysrKysrKwogY29tbW9uL2Vudmlyb25tZW50L2J1aWxkLXN0eWxl L3ZvaWQtY3Jvc3Muc2ggfCAgMTUgKwogMiBmaWxlcyBjaGFuZ2VkLCA1NjkgaW5zZXJ0aW9ucygr KQogY3JlYXRlIG1vZGUgMTAwNjQ0IGNvbW1vbi9idWlsZC1zdHlsZS92b2lkLWNyb3NzLnNoCiBj cmVhdGUgbW9kZSAxMDA2NDQgY29tbW9uL2Vudmlyb25tZW50L2J1aWxkLXN0eWxlL3ZvaWQtY3Jv c3Muc2gKCmRpZmYgLS1naXQgYS9jb21tb24vYnVpbGQtc3R5bGUvdm9pZC1jcm9zcy5zaCBiL2Nv bW1vbi9idWlsZC1zdHlsZS92b2lkLWNyb3NzLnNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi5mMDY5MzRjZGE2OQotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9idWls ZC1zdHlsZS92b2lkLWNyb3NzLnNoCkBAIC0wLDAgKzEsNTU0IEBACisjCisjIFRoaXMgaGVscGVy IGlzIGZvciB2b2lkIHN5c3RlbSBjcm9zc3Rvb2xjaGFpbiB0ZW1wbGF0ZXMuCisjCisjIE1hbmRh dG9yeSB2YXJpYWJsZXM6CisjCisjIC0gY3Jvc3NfdHJpcGxldCAtIHRoZSB0YXJnZXQgdHJpcGxl dCAoZS5nLiBhYXJjaDY0LWxpbnV4LWdudSkKKyMgLSBjcm9zc193b3Jkc2l6ZSAtIDMyIG9yIDY0 CisjIC0gY3Jvc3NfbGliYyAtIGdsaWJjIG9yIG11c2wKKyMgLSBjcm9zc19iaW51dGlsc192ZXJz aW9uCisjIC0gY3Jvc3NfZ2NjX3ZlcnNpb24KKyMgLSBjcm9zc19saW51eF92ZXJzaW9uCisjIC0g Y3Jvc3NfbGludXhfYXJjaCAtIHRoZSBzb3VyY2UgQVJDSCBvZiB0aGUga2VybmVsIChlLmcuIGFy bTY0KQorIyAtIGNyb3NzX2dsaWJjX3ZlcnNpb24KKyMgLSBjcm9zc19tdXNsX3ZlcnNpb24KKyMg LSBjcm9zc19saWJ1Y29udGV4dF92ZXJzaW9uIC0gb25seSBvbiBtdXNsIHdpdGhvdXQgY3Jvc3Nf Z2NjX3NraXBfZ28KKyMgLSBjcm9zc19saWJ1Y29udGV4dF9hcmNoIC0gZGl0dG8sIHRoZSBsaWJ1 Y29udGV4dCBhcmNoCisjCisjIE9wdGlvbmFsIHZhcmlhYmxlczoKKyMKKyMgLSBjcm9zc19nY2Nf c2tpcF9nbyAtIGRvIG5vdCBidWlsZCBnY2NnbyBzdXBwb3J0CisjIC0gY3Jvc3NfYmludXRpbHNf Y29uZmlndXJlX2FyZ3MKKyMgLSBjcm9zc19nY2NfYm9vdHN0cmFwX2NvbmZpZ3VyZV9hcmdzCisj IC0gY3Jvc3NfZ2xpYmNfY2ZsYWdzCisjIC0gY3Jvc3NfZ2xpYmNfbGRmbGFncworIyAtIGNyb3Nz X2dsaWJjX2NvbmZpZ3VyZV9hcmdzCisjIC0gY3Jvc3NfbXVzbF9jZmxhZ3MKKyMgLSBjcm9zc19t dXNsX2xkZmxhZ3MKKyMgLSBjcm9zc19tdXNsX2NvbmZpZ3VyZV9hcmdzCisjCisjIGNvbmZpZ3Vy ZV9hcmdzIGlzIHVzZWQgZm9yIGZpbmFsIGdjYworIworCitfYXBwbHlfcGF0Y2goKSB7CisJbG9j YWwgYXJncz0iJDEiIHBuYW1lPSIkKGJhc2VuYW1lICQyKSIKKwlpZiBbICEgLWYgIi4ke3BuYW1l fV9kb25lIiBdOyB0aGVuCisJCXBhdGNoIC1OICRhcmdzIC1pICQyCisJCXRvdWNoIC4ke3BuYW1l fV9kb25lCisJZmkKK30KKworX2J1aWxkX2JpbnV0aWxzKCkgeworCVsgLWYgLmJpbnV0aWxzX2Rv bmUgXSAmJiByZXR1cm4gMAorCisJbXNnX25vcm1hbCAiQnVpbGRpbmcgYmludXRpbHMgZm9yICR7 Y3Jvc3NfdHJpcGxldH1cbiIKKworCW1rZGlyIC1wIGJpbnV0aWxzX2J1aWxkCisJY2QgYmludXRp bHNfYnVpbGQKKworCS4uL2JpbnV0aWxzLSR7Y3Jvc3NfYmludXRpbHNfdmVyc2lvbn0vY29uZmln dXJlIFwKKwkJLS1wcmVmaXg9L3VzciBcCisJCS0tc2JpbmRpcj0vdXNyL2JpbiBcCisJCS0tbGli ZGlyPS91c3IvbGliIFwKKwkJLS1saWJleGVjZGlyPS91c3IvbGliIFwKKwkJLS10YXJnZXQ9JHtj cm9zc190cmlwbGV0fSBcCisJCS0td2l0aC1zeXNyb290PS91c3IvJHtjcm9zc190cmlwbGV0fSBc CisJCS0tZGlzYWJsZS1ubHMgXAorCQktLWRpc2FibGUtc2hhcmVkIFwKKwkJLS1kaXNhYmxlLW11 bHRpbGliIFwKKwkJLS1kaXNhYmxlLXdlcnJvciBcCisJCS0tZGlzYWJsZS1nb2xkIFwKKwkJLS13 aXRoLXN5c3RlbS16bGliIFwKKwkJJHtjcm9zc19iaW51dGlsc19jb25maWd1cmVfYXJnc30KKwor CW1ha2UgY29uZmlndXJlLWhvc3QKKwltYWtlICR7bWFrZWpvYnN9CisKKwltYWtlIGluc3RhbGwg REVTVERJUj0ke3dya3NyY30vYnVpbGRfcm9vdAorCisJdG91Y2ggJHt3cmtzcmN9Ly5iaW51dGls c19kb25lCit9CisKK19idWlsZF9ib290c3RyYXBfZ2NjKCkgeworCVsgLWYgLmdjY19ib290c3Ry YXBfZG9uZSBdICYmIHJldHVybiAwCisKKwltc2dfbm9ybWFsICJQYXRjaGluZyBHQ0MgZm9yICR7 Y3Jvc3NfdHJpcGxldH1cbiIKKworCWNkIGdjYy0ke2Nyb3NzX2djY192ZXJzaW9ufQorCWZvciBm IGluICR7WEJQU19TUkNQS0dESVJ9L2djYy9wYXRjaGVzLyoucGF0Y2g7IGRvCisJCV9hcHBseV9w YXRjaCAtcDAgIiRmIgorCWRvbmUKKwlpZiBbICIkY3Jvc3NfbGliYyIgPSAibXVzbCIgXTsgdGhl bgorCQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9nY2MvZmlsZXMvKi1tdXNsLnBhdGNoOyBk bworCQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCisJCWRvbmUKKwlmaQorCWNkIC4uCisKKwltc2df bm9ybWFsICJCdWlsZGluZyBib290c3RyYXAgR0NDIGZvciAke2Nyb3NzX3RyaXBsZXR9XG4iCisK Kwlta2RpciAtcCBnY2NfYm9vdHN0cmFwCisJY2QgZ2NjX2Jvb3RzdHJhcAorCisJbG9jYWwgZXh0 cmFfYXJncworCWlmIFsgIiRjcm9zc19saWJjIiA9ICJtdXNsIiBdOyB0aGVuCisJCWV4dHJhX2Fy Z3MrPSIgLS13aXRoLW5ld2xpYiIKKwkJZXh0cmFfYXJncys9IiAtLWRpc2FibGUtc3ltdmVycyIK KwkJZXh0cmFfYXJncys9IiBsaWJhdF9jdl9oYXZlX2lmdW5jPW5vIgorCWVsc2UKKwkJZXh0cmFf YXJncys9IiAtLXdpdGhvdXQtaGVhZGVycyIKKwlmaQorCisJLi4vZ2NjLSR7Y3Jvc3NfZ2NjX3Zl cnNpb259L2NvbmZpZ3VyZSBcCisJCS0tcHJlZml4PS91c3IgXAorCQktLXNiaW5kaXI9L3Vzci9i aW4gXAorCQktLWxpYmRpcj0vdXNyL2xpYiBcCisJCS0tbGliZXhlY2Rpcj0vdXNyL2xpYiBcCisJ CS0tdGFyZ2V0PSR7Y3Jvc3NfdHJpcGxldH0gXAorCQktLWRpc2FibGUtbmxzIFwKKwkJLS1kaXNh YmxlLW11bHRpbGliIFwKKwkJLS1kaXNhYmxlLXNoYXJlZCBcCisJCS0tZGlzYWJsZS1saWJxdWFk bWF0aCBcCisJCS0tZGlzYWJsZS1kZWNpbWFsLWZsb2F0IFwKKwkJLS1kaXNhYmxlLWxpYmdvbXAg XAorCQktLWRpc2FibGUtbGlibXB4IFwKKwkJLS1kaXNhYmxlLWxpYm11ZGZsYXAgXAorCQktLWRp c2FibGUtbGlic3NwIFwKKwkJLS1kaXNhYmxlLWxpYml0bSBcCisJCS0tZGlzYWJsZS1saWJhdG9t aWMgXAorCQktLWRpc2FibGUtdGhyZWFkcyBcCisJCS0tZGlzYWJsZS1zamxqLWV4Y2VwdGlvbnMg XAorCQktLWVuYWJsZS1sYW5ndWFnZXM9YyBcCisJCS0td2l0aC1nbnUtbGQgXAorCQktLXdpdGgt Z251LWFzIFwKKwkJJHtleHRyYV9hcmdzfSBcCisJCSR7Y3Jvc3NfZ2NjX2Jvb3RzdHJhcF9jb25m aWd1cmVfYXJnc30KKworCW1ha2UgJHttYWtlam9ic30KKwltYWtlIGluc3RhbGwgREVTVERJUj0k e3dya3NyY30vYnVpbGRfcm9vdAorCisJdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2Rv bmUKK30KKworX2J1aWxkX2tlcm5lbF9oZWFkZXJzKCkgeworCVsgLWYgLmxpbnV4X2hlYWRlcnNf ZG9uZSBdICYmIHJldHVybiAwCisKKwltc2dfbm9ybWFsICJQYXRjaGluZyBMaW51eCBoZWFkZXJz IGZvciAke2Nyb3NzX3RyaXBsZXR9XG4iCisKKwljZCBsaW51eC0ke2Nyb3NzX2xpbnV4X3ZlcnNp b259CisJZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0va2VybmVsLWxpYmMtaGVhZGVycy9wYXRj aGVzLyoucGF0Y2g7IGRvCisJCV9hcHBseV9wYXRjaCAtcDAgJGYKKwlkb25lCisJY2QgLi4KKwor CW1zZ19ub3JtYWwgIkJ1aWxkaW5nIExpbnV4IGhlYWRlcnMgZm9yICR7Y3Jvc3NfdHJpcGxldH1c biIKKworCWNkIGxpbnV4LSR7Y3Jvc3NfbGludXhfdmVyc2lvbn0KKworCW1ha2UgQVJDSD0kY3Jv c3NfbGludXhfYXJjaCBoZWFkZXJzX2NoZWNrCisJbWFrZSBBUkNIPSRjcm9zc19saW51eF9hcmNo IFwKKwkJSU5TVEFMTF9IRFJfUEFUSD0ke3dya3NyY30vYnVpbGRfcm9vdC91c3IvJHtjcm9zc190 cmlwbGV0fS91c3IgXAorCQloZWFkZXJzX2luc3RhbGwKKworCXRvdWNoICR7d3Jrc3JjfS8ubGlu dXhfaGVhZGVyc19kb25lCit9CisKK19idWlsZF9nbGliY19oZWFkZXJzKCkgeworCVsgLWYgLmds aWJjX2hlYWRlcnNfZG9uZSBdICYmIHJldHVybiAwCisKKwlsb2NhbCB0Z3Q9JGNyb3NzX3RyaXBs ZXQKKworCW1zZ19ub3JtYWwgIlBhdGNoaW5nIGdsaWJjIGZvciAke2Nyb3NzX3RyaXBsZXR9XG4i CisKKwljZCBnbGliYy0ke2Nyb3NzX2dsaWJjX3ZlcnNpb259CisJaWYgWyAtZCAiJHtYQlBTX1NS Q1BLR0RJUn0vZ2xpYmMvcGF0Y2hlcyIgXTsgdGhlbgorCQlmb3IgZiBpbiAke1hCUFNfU1JDUEtH RElSfS9nbGliYy9wYXRjaGVzLyoucGF0Y2g7IGRvCisJCQlfYXBwbHlfcGF0Y2ggLXAxICIkZiIK KwkJZG9uZQorCWZpCisJY2QgLi4KKworCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGdsaWJjIGhlYWRl cnMgZm9yICR7Y3Jvc3NfdHJpcGxldH1cbiIKKworCW1rZGlyIC1wIGdsaWJjX2hlYWRlcnMKKwlj ZCBnbGliY19oZWFkZXJzCisKKwllY2hvICJsaWJjX2N2X2ZvcmNlZF91bndpbmQ9eWVzIiA+IGNv bmZpZy5jYWNoZQorCWVjaG8gImxpYmNfY3ZfY19jbGVhbnVwPXllcyIgPj4gY29uZmlnLmNhY2hl CisKKwkjIHdlIGRvbid0IG5lZWQgYW55IGN1c3RvbSBhcmdzIGhlcmUsIGl0J3MganVzdCBoZWFk ZXJzCisJQ0M9IiR7dGd0fS1nY2MiIENYWD0iJHt0Z3R9LWcrKyIgQ1BQPSIke3RndH0tY3BwIiBM RD0iJHt0Z3R9LWxkIiBcCisJQVM9IiR7dGd0fS1hcyIgTk09IiR7dGd0fS1ubSIgQ0ZMQUdTPSIt cGlwZSIgQ1hYRkxBR1M9IiIgQ1BQRkxBR1M9IiIgXAorCUxERkxBR1M9IiIgXAorCS4uL2dsaWJj LSR7Y3Jvc3NfZ2xpYmNfdmVyc2lvbn0vY29uZmlndXJlIFwKKwkJLS1wcmVmaXg9L3VzciBcCisJ CS0taG9zdD0ke3RndH0gXAorCQktLXdpdGgtaGVhZGVycz0ke3dya3NyY30vYnVpbGRfcm9vdC91 c3IvJHt0Z3R9L3Vzci9pbmNsdWRlIFwKKwkJLS1jb25maWctY2FjaGUgXAorCQktLWVuYWJsZS1v YnNvbGV0ZS1ycGMgXAorCQktLWVuYWJsZS1vYnNvbGV0ZS1uc2wgXAorCQktLWVuYWJsZS1rZXJu ZWw9Mi42LjI3CisKKwltYWtlIC1rIGluc3RhbGwtaGVhZGVycyBjcm9zc19jb21waWxpbmc9eWVz IFwKKwkJaW5zdGFsbF9yb290PSR7d3Jrc3JjfS9idWlsZF9yb290L3Vzci8ke3RndH0KKworCXRv dWNoICR7d3Jrc3JjfS8uZ2xpYmNfaGVhZGVyc19kb25lCit9CisKK19idWlsZF9nbGliYygpIHsK KwlbIC1mIC5nbGliY19idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKKworCWxvY2FsIHRndD0kY3Jv c3NfdHJpcGxldAorCisJbXNnX25vcm1hbCAiQnVpbGRpbmcgZ2xpYmMgZm9yICR7dGd0fVxuIgor CisJbWtkaXIgLXAgZ2xpYmNfYnVpbGQKKwljZCBnbGliY19idWlsZAorCisJZWNobyAic2xpYmRp cj0vdXNyL2xpYiR7Y3Jvc3Nfd29yZHNpemV9IiA+IGNvbmZpZ3Bhcm1zCisKKwllY2hvICJsaWJj X2N2X2ZvcmNlZF91bndpbmQ9eWVzIiA+IGNvbmZpZy5jYWNoZQorCWVjaG8gImxpYmNfY3ZfY19j bGVhbnVwPXllcyIgPj4gY29uZmlnLmNhY2hlCisKKwlDQz0iJHt0Z3R9LWdjYyIgQ1hYPSIke3Rn dH0tZysrIiBDUFA9IiR7dGd0fS1jcHAiIExEPSIke3RndH0tbGQiIFwKKwlBUj0iJHt0Z3R9LWFy IiBBUz0iJHt0Z3R9LWFzIiBOTT0iJHt0Z3R9LW5tIiBcCisJQ0ZMQUdTPSItcGlwZSAke2Nyb3Nz X2dsaWJjX2NmbGFnc30iIFwKKwlDWFhGTEFHUz0iLXBpcGUgJHtjcm9zc19nbGliY19jZmxhZ3N9 IiBcCisJQ1BQRkxBR1M9IiR7Y3Jvc3NfZ2xpYmNfY2ZsYWdzfSIgXAorCUxERkxBR1M9IiR7Y3Jv c3NfZ2xpYmNfbGRmbGFnc30iIFwKKwkuLi9nbGliYy0ke2Nyb3NzX2dsaWJjX3ZlcnNpb259L2Nv bmZpZ3VyZSBcCisJCS0tcHJlZml4PS91c3IgXAorCQktLWxpYmRpcj0vdXNyL2xpYiR7Y3Jvc3Nf d29yZHNpemV9IFwKKwkJLS1saWJleGVjZGlyPS91c3IvbGliZXhlYyBcCisJCS0taG9zdD0ke3Rn dH0gXAorCQktLXdpdGgtaGVhZGVycz0ke3dya3NyY30vYnVpbGRfcm9vdC91c3IvJHt0Z3R9L3Vz ci9pbmNsdWRlIFwKKwkJLS1jb25maWctY2FjaGUgXAorCQktLWVuYWJsZS1vYnNvbGV0ZS1ycGMg XAorCQktLWVuYWJsZS1vYnNvbGV0ZS1uc2wgXAorCQktLWRpc2FibGUtcHJvZmlsZSBcCisJCS0t ZGlzYWJsZS13ZXJyb3IgXAorCQktLWVuYWJsZS1rZXJuZWw9Mi42LjI3IFwKKwkJJHtjcm9zc19n bGliY19jb25maWd1cmVfYXJnc30KKworCW1ha2UgJHttYWtlam9ic30KKwltYWtlIGluc3RhbGxf cm9vdD0ke3dya3NyY30vYnVpbGRfcm9vdC91c3IvJHt0Z3R9IGluc3RhbGwKKworCXRvdWNoICR7 d3Jrc3JjfS8uZ2xpYmNfYnVpbGRfZG9uZQorfQorCitfYnVpbGRfbXVzbCgpIHsKKwlbIC1mIC5t dXNsX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAorCisJbG9jYWwgdGd0PSRjcm9zc190cmlwbGV0 CisKKwltc2dfbm9ybWFsICJQYXRjaGluZyBtdXNsIGZvciAke3RndH1cbiIKKworCWNkIG11c2wt JHtjcm9zc19tdXNsX3ZlcnNpb259CisJaWYgWyAtZCAiJHtYQlBTX1NSQ1BLR0RJUn0vbXVzbC9w YXRjaGVzIiBdOyB0aGVuCisJCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L211c2wvcGF0Y2hl cy8qLnBhdGNoOyBkbworCQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCisJCWRvbmUKKwlmaQorCWNk IC4uCisKKwltc2dfbm9ybWFsICJCdWlsZGluZyBtdXNsIGZvciAke3RndH1cbiIKKworCW1rZGly IC1wIG11c2xfYnVpbGQKKwljZCBtdXNsX2J1aWxkCisKKwlDQz0iJHt0Z3R9LWdjYyIgQ1hYPSIk e3RndH0tZysrIiBDUFA9IiR7dGd0fS1jcHAiIExEPSIke3RndH0tbGQiIFwKKwlBUj0iJHt0Z3R9 LWFyIiBBUz0iJHt0Z3R9LWFzIiBOTT0iJHt0Z3R9LW5tIiBcCisJQ0ZMQUdTPSItcGlwZSAtZlBJ QyAke2Nyb3NzX211c2xfY2ZsYWdzfSIgXAorCUNQUEZMQUdTPSIke2Nyb3NzX211c2xfY2ZsYWdz fSIgTERGTEFHUz0iJHtjcm9zc19tdXNsX2xkZmxhZ3N9IiBcCisJLi4vbXVzbC0ke2Nyb3NzX211 c2xfdmVyc2lvbn0vY29uZmlndXJlIFwKKwkJLS1wcmVmaXg9L3VzciBcCisJCS0taG9zdD0ke3Rn dH0gXAorCQkke2Nyb3NzX211c2xfY29uZmlndXJlX2FyZ3N9CisKKwltYWtlICR7bWFrZWpvYnN9 CisJbWFrZSBERVNURElSPSR7d3Jrc3JjfS9idWlsZF9yb290L3Vzci8ke3RndH0gaW5zdGFsbAor CisJdG91Y2ggJHt3cmtzcmN9Ly5tdXNsX2J1aWxkX2RvbmUKK30KKworX2J1aWxkX2xpYnVjb250 ZXh0KCkgeworCVsgLWYgLmxpYnVjb250ZXh0X2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAorCVsg LW4gIiRjcm9zc19nY2Nfc2tpcF9nbyIgXSAmJiByZXR1cm4gMAorCisJbXNnX25vcm1hbCAiQnVp bGRpbmcgbGlidWNvbnRleHQgZm9yICR7Y3Jvc3NfdHJpcGxldH1cbiIKKworCWNkIGxpYnVjb250 ZXh0LSR7Y3Jvc3NfbGlidWNvbnRleHRfdmVyc2lvbn0KKwkjIGEgdGVycmlibGUgaGFjayBidXQg c2VlbXMgdG8gd29yayBmb3Igbm93CisJQ0M9IiR7Y3Jvc3NfdHJpcGxldH0tZ2NjIiBBUz0iJHtj cm9zc190cmlwbGV0fS1hcyIgQVI9IiR7Y3Jvc3NfdHJpcGxldH0tYXIiIFwKKwlDUFBGTEFHUz0i LXBpcGUgJHtjcm9zc19tdXNsX2NmbGFnc30gLWcwIC1PcyAtbm9zdGRpbmMgLWlzeXN0ZW0gJHt3 cmtzcmN9L2J1aWxkX3Jvb3QvdXNyLyR7Y3Jvc3NfdHJpcGxldH0vdXNyL2luY2x1ZGUiIFwKKwlt YWtlIEFSQ0g9JHtjcm9zc19saWJ1Y29udGV4dF9hcmNofSBsaWJ1Y29udGV4dC5hCisKKwljcCBs aWJ1Y29udGV4dC5hICR7d3Jrc3JjfS9idWlsZF9yb290L3Vzci8ke2Nyb3NzX3RyaXBsZXR9L3Vz ci9saWIKKworCXRvdWNoICR7d3Jrc3JjfS8ubGlidWNvbnRleHRfYnVpbGRfZG9uZQorfQorCitf YnVpbGRfZ2NjKCkgeworCVsgLWYgLmdjY19idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKKworCW1z Z19ub3JtYWwgIkJ1aWxkaW5nIGdjYyBmb3IgJHtjcm9zc190cmlwbGV0fVxuIgorCisJbWtkaXIg LXAgZ2NjX2J1aWxkCisJY2QgZ2NjX2J1aWxkCisKKwlsb2NhbCBsYW5ncz0iYyxjKyssZm9ydHJh bixvYmpjLG9iai1jKyssYWRhLGx0byIKKwlpZiBbIC16ICIkY3Jvc3NfZ2NjX3NraXBfZ28iIF07 IHRoZW4KKwkJbGFuZ3MrPSIsZ28iCisJZmkKKworCWxvY2FsIGV4dHJhX2FyZ3MKKwlpZiBbICIk Y3Jvc3NfbGliYyIgPSAibXVzbCIgXTsgdGhlbgorCQlleHRyYV9hcmdzKz0iIC0tZW5hYmxlLWxp YnNzcCIKKwkJIyBvdGhlcndpc2UgZ2xpYmMgaG9zdHMgZ2V0IGNvbmZ1c2VkIGFuZCB1c2UgdGhl IGdudSBpbXBsCisJCWV4dHJhX2FyZ3MrPSIgLS1lbmFibGUtY2xvY2FsZT1nZW5lcmljIgorCQll eHRyYV9hcmdzKz0iIC0tZGlzYWJsZS1zeW12ZXJzIgorCQlleHRyYV9hcmdzKz0iIC0tZGlzYWJs ZS1nbnUtdW5pcXVlLW9iamVjdCIKKwkJZXh0cmFfYXJncys9IiBsaWJhdF9jdl9oYXZlX2lmdW5j PW5vIgorCWVsc2UKKwkJZXh0cmFfYXJncys9IiAtLWRpc2FibGUtbGlic3NwIgorCQlleHRyYV9h cmdzKz0iIC0tZW5hYmxlLWdudS11bmlxdWUtb2JqZWN0IgorCWZpCisKKwkuLi9nY2MtJHtjcm9z c19nY2NfdmVyc2lvbn0vY29uZmlndXJlIFwKKwkJLS1wcmVmaXg9L3VzciBcCisJCS0tc2JpbmRp cj0vdXNyL2JpbiBcCisJCS0tbGliZGlyPS91c3IvbGliIFwKKwkJLS1saWJleGVjZGlyPS91c3Iv bGliIFwKKwkJLS10YXJnZXQ9JHtjcm9zc190cmlwbGV0fSBcCisJCS0td2l0aC1zeXNyb290PS91 c3IvJHtjcm9zc190cmlwbGV0fSBcCisJCS0td2l0aC1idWlsZC1zeXNyb290PSR7d3Jrc3JjfS9i dWlsZF9yb290L3Vzci8ke2Nyb3NzX3RyaXBsZXR9IFwKKwkJLS1lbmFibGUtbGFuZ3VhZ2VzPSR7 bGFuZ3N9IFwKKwkJLS1kaXNhYmxlLW5scyBcCisJCS0tZGlzYWJsZS1tdWx0aWxpYiBcCisJCS0t ZGlzYWJsZS1zamxqLWV4Y2VwdGlvbnMgXAorCQktLWRpc2FibGUtbGlicXVhZG1hdGggXAorCQkt LWRpc2FibGUtbGlibXVkZmxhcCBcCisJCS0tZGlzYWJsZS1saWJpdG0gXAorCQktLWRpc2FibGUt bGlidnR2IFwKKwkJLS1kaXNhYmxlLWxpYnNhbml0aXplciBcCisJCS0tZGlzYWJsZS1saWJzdGRj eHgtcGNoIFwKKwkJLS1lbmFibGUtc2hhcmVkIFwKKwkJLS1lbmFibGUtdGhyZWFkcz1wb3NpeCBc CisJCS0tZW5hYmxlLV9fY3hhX2F0ZXhpdCBcCisJCS0tZW5hYmxlLWxpbmtlci1idWlsZC1pZCBc CisJCS0tZW5hYmxlLWxpYmFkYSBcCisJCS0tZW5hYmxlLWx0byBcCisJCS0tZW5hYmxlLWRlZmF1 bHQtcGllIFwKKwkJLS1lbmFibGUtZGVmYXVsdC1zc3AgXAorCQktLXdpdGgtZ251LWxkIFwKKwkJ LS13aXRoLWdudS1hcyBcCisJCS0td2l0aC1saW5rZXItaGFzaC1zdHlsZT1nbnUgXAorCQkke2V4 dHJhX2FyZ3N9IFwKKwkJJHtjb25maWd1cmVfYXJnc30KKworCW1ha2UgJHttYWtlam9ic30KKwor CXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUKK30KKworZG9fYnVpbGQoKSB7CisJIyBW ZXJpZnkgdG9vbGNoYWluIHZlcnNpb25zCisKKwlbIC16ICIkY3Jvc3NfYmludXRpbHNfdmVyc2lv biIgXSAmJiBtc2dfZXJyb3IgIlVua25vd24gYmludXRpbHMgdmVyc2lvblxuIgorCVsgLXogIiRj cm9zc19nY2NfdmVyc2lvbiIgXSAmJiBtc2dfZXJyb3IgIlVua25vd24gR0NDIHZlcnNpb25cbiIK KwlbIC16ICIkY3Jvc3NfbGludXhfdmVyc2lvbiIgXSAmJiBtc2dfZXJyb3IgIlVua25vd24gTGlu dXggdmVyc2lvblxuIgorCisJY2FzZSAiJHtjcm9zc19saWJjfSIgaW4KKwkJbXVzbCkKKwkJCVsg LXogIiRjcm9zc19tdXNsX3ZlcnNpb24iIF0gJiYgbXNnX2Vycm9yICJVbmtub3duIG11c2wgdmVy c2lvblxuIgorCQkJaWYgWyAteiAiJGNyb3NzX2djY19za2lwX2dvIiBdOyB0aGVuCisJCQkJaWYg WyAteiAiJGNyb3NzX2xpYnVjb250ZXh0X3ZlcnNpb24iIF07IHRoZW4KKwkJCQkJbXNnX2Vycm9y ICJVbmtub3duIGxpYnVjb250ZXh0IHZlcnNpb25cbiIKKwkJCQlmaQorCQkJCWlmIFsgLXogIiRj cm9zc19saWJ1Y29udGV4dF9hcmNoIiBdOyB0aGVuCisJCQkJCW1zZ19lcnJvciAiVW5rbm93biBs aWJ1Y29udGV4dCBhcmNoaXRlY3R1cmVcbiIKKwkJCQlmaQorCQkJZmkKKwkJCTs7CisJCWdsaWJj KQorCQkJWyAteiAiJGNyb3NzX2dsaWJjX3ZlcnNpb24iIF0gJiYgbXNnX2Vycm9yICJVbmtub3du IGdsaWJjIHZlcnNpb25cbiIKKwkJCTs7CisJCSopIG1zZ19lcnJvciAiVW5rbm93biBzeXN0ZW0g bGliYzogJHtjcm9zc19saWJjfVxuIiA7OworCWVzYWMKKworCSMgVmVyaWZ5IHRyaXBsZXQKKwlb IC16ICIkY3Jvc3NfdHJpcGxldCIgXSAmJiBtc2dfZXJyb3IgIlVua25vd24gdGFyZ2V0IHRyaXBs ZXRcbiIKKwlbIC16ICIkY3Jvc3Nfd29yZHNpemUiIF0gJiYgbXNnX2Vycm9yICJVbmtub3duIHRh cmdldCB3b3Jkc2l6ZVxuIgorCVsgLXogIiRjcm9zc19saW51eF9hcmNoIiBdICYmIG1zZ19lcnJv ciAiVW5rbm93biBrZXJuZWwgYXJjaGl0ZWN0dXJlXG4iCisKKwlsb2NhbCBzeXNyb290PSIvdXNy LyR7Y3Jvc3NfdHJpcGxldH0iCisKKwkjIFByZXBhcmUgZW52aXJvbm1lbnQKKwljZCAke3dya3Ny Y30KKworCSMgQ29yZSBkaXJlY3RvcmllcyBmb3IgdGhlIGJ1aWxkIHJvb3QKKwlta2RpciAtcCBi dWlsZF9yb290L3Vzci97YmluLGxpYixpbmNsdWRlLHNoYXJlfQorCW1rZGlyIC1wIGJ1aWxkX3Jv b3QvdXNyLyR7Y3Jvc3NfdHJpcGxldH0vdXNyL3tiaW4sbGliLGluY2x1ZGUsc2hhcmV9CisKKwkj IEhvc3Qgcm9vdCB1c2VzIGhvc3Qgd29yZHNpemUKKwlsbiAtc2YgdXNyL2xpYiBidWlsZF9yb290 L2xpYgorCWxuIC1zZiB1c3IvbGliIGJ1aWxkX3Jvb3QvbGliJHtYQlBTX1RBUkdFVF9XT1JEU0la RX0KKwlsbiAtc2YgbGliIGJ1aWxkX3Jvb3QvdXNyL2xpYiR7WEJQU19UQVJHRVRfV09SRFNJWkV9 CisKKwkjIFRhcmdldCBzeXNyb290IHVzZXMgdGFyZ2V0IHdvcmRzaXplCisJbG4gLXNmIHVzci9s aWIgYnVpbGRfcm9vdC8ke3N5c3Jvb3R9L2xpYgorCWxuIC1zZiB1c3IvbGliIGJ1aWxkX3Jvb3Qv JHtzeXNyb290fS9saWIke2Nyb3NzX3dvcmRzaXplfQorCWxuIC1zZiBsaWIgYnVpbGRfcm9vdC8k e3N5c3Jvb3R9L3Vzci9saWIke2Nyb3NzX3dvcmRzaXplfQorCWxuIC1zZiBsaWIgYnVpbGRfcm9v dC8ke3N5c3Jvb3R9L3Vzci9saWJleGVjCisKKwkjIEJ1aWxkIGNyb3NzIGJpbnV0aWxzCisJY2Qg JHt3cmtzcmN9CisJaWYgWyAhIC1kICJiaW51dGlscy0ke2Nyb3NzX2JpbnV0aWxzX3ZlcnNpb259 IiBdOyB0aGVuCisJCW1zZ19lcnJvciAiQmludXRpbHMgJHtjcm9zc19iaW51dGlsc192ZXJzaW9u fSBkb2VzIG5vdCBleGlzdFxuIgorCWZpCisKKwlfYnVpbGRfYmludXRpbHMKKworCSMgUHJlcGFy ZSBlbnZpcm9ubWVudCBzbyB3ZSBjYW4gdXNlIHRlbXBvcmFyeSBwcmVmaXgKKwlsb2NhbCBvbGRw YXRoPSIkUEFUSCIKKwlsb2NhbCBvbGRsZGxpYj0iJExEX0xJQlJBUllfUEFUSCIKKworCWV4cG9y dCBQQVRIPSIke3dya3NyY30vYnVpbGRfcm9vdC91c3IvYmluOiRQQVRIIgorCWV4cG9ydCBMRF9M SUJSQVJZX1BBVEg9IiR7d3Jrc3JjfS9idWlsZF9yb290L3Vzci9saWI6JFBBVEgiCisKKwkjIEJ1 aWxkIGJvb3RzdHJhcCBnY2MKKwljZCAke3dya3NyY30KKwlpZiBbICEgLWQgImdjYy0ke2Nyb3Nz X2djY192ZXJzaW9ufSIgXTsgdGhlbgorCQltc2dfZXJyb3IgIkdDQyAke2Nyb3NzX2djY192ZXJz aW9ufSBkb2VzIG5vdCBleGlzdFxuIgorCWZpCisKKwlfYnVpbGRfYm9vdHN0cmFwX2djYworCisJ IyBCdWlsZCBrZXJuZWwgaGVhZGVycworCWNkICR7d3Jrc3JjfQorCWlmIFsgISAtZCAibGludXgt JHtjcm9zc19saW51eF92ZXJzaW9ufSIgXTsgdGhlbgorCQltc2dfZXJyb3IgIkxpbnV4ICR7Y3Jv c3NfbGludXhfdmVyc2lvbn0gZG9lcyBub3QgZXhpc3RcbiIKKwlmaQorCisJX2J1aWxkX2tlcm5l bF9oZWFkZXJzCisKKwljZCAke3dya3NyY30KKwlpZiBbICIkY3Jvc3NfbGliYyIgPSAibXVzbCIg XTsgdGhlbgorCQkjIEJ1aWxkIG11c2wKKwkJaWYgWyAhIC1kICJtdXNsLSR7Y3Jvc3NfbXVzbF92 ZXJzaW9ufSIgXTsgdGhlbgorCQkJbXNnX2Vycm9yICJNdXNsICR7Y3Jvc3NfbXVzbF92ZXJzaW9u fSBkb2VzIG5vdCBleGlzdFxuIgorCQlmaQorCQlfYnVpbGRfbXVzbAorCisJCSMgQnVpbGQgbGli dWNvbnRleHQKKwkJY2QgJHt3cmtzcmN9CisJCWlmIFsgLXogIiRjcm9zc19nY2Nfc2tpcF9nbyIg LWEgISAtZCAibGlidWNvbnRleHQtJHtjcm9zc19saWJ1Y29udGV4dF92ZXJzaW9ufSIgXTsgdGhl bgorCQkJbXNnX2Vycm9yICJMaWJ1Y29udGV4dCAke2Nyb3NzX2xpYnVjb250ZXh0X3ZlcnNpb259 IGRvZXMgbm90IGV4aXN0XG4iCisJCWZpCisJCV9idWlsZF9saWJ1Y29udGV4dAorCWVsc2UKKwkJ IyBCdWlsZCBnbGliYworCQlpZiBbICEgLWQgImdsaWJjLSR7Y3Jvc3NfZ2xpYmNfdmVyc2lvbn0i IF07IHRoZW4KKwkJCW1zZ19lcnJvciAiR2xpYmMgJHtjcm9zc19nbGliY192ZXJzaW9ufSBkb2Vz IG5vdCBleGlzdFxuIgorCQlmaQorCQlfYnVpbGRfZ2xpYmNfaGVhZGVycworCQljZCAke3dya3Ny Y30KKwkJX2J1aWxkX2dsaWJjCisJZmkKKworCSMgQnVpbGQgZ2NjCisJY2QgJHt3cmtzcmN9CisJ X2J1aWxkX2djYworCisJIyByZXN0b3JlIHRoaXMgc3R1ZmYgaW4gY2FzZSBsYXRlciBob29rcyBk ZXBlbmQgb24gaXQKKwlleHBvcnQgUEFUSD0iJG9sZHBhdGgiCisJZXhwb3J0IExEX0xJQlJBUllf UEFUSD0iJG9sZGxkbGliIgorfQorCitkb19pbnN0YWxsKCkgeworCSMgV2UgbmVlZCB0byBiZSBh YmxlIHRvIGFjY2VzcyBiaW51dGlscyBpbiB0aGUgcm9vdAorCWxvY2FsIG9sZHBhdGg9IiRQQVRI IgorCWxvY2FsIG9sZGxkbGliPSIkTERfTElCUkFSWV9QQVRIIgorCWV4cG9ydCBQQVRIPSIke3dy a3NyY30vYnVpbGRfcm9vdC91c3IvYmluOiRQQVRIIgorCWV4cG9ydCBMRF9MSUJSQVJZX1BBVEg9 IiR7d3Jrc3JjfS9idWlsZF9yb290L3Vzci9saWI6JFBBVEgiCisKKwlsb2NhbCBzeXNyb290PSIv dXNyLyR7Y3Jvc3NfdHJpcGxldH0iCisKKwkjIENvcmUgZGlyZWN0b3JpZXMgZm9yIHRoZSBzeXNy b290CisJIworCSMgbGliZXhlYyBpcyBjcmVhdGVkIGZvciBzeXNyb290IGJ1dCBub3QgZm9yIGRl c3QsIHNpbmNlIGluIHN5c3Jvb3QKKwkjIHdlIGNvbmZpZ3VyZSBnbGliYyB3aXRoIHNlcGFyYXRl IGxpYmV4ZWMsIGVsc2V3aGVyZSBpdCdzIGp1c3QgbGliCisJIyBhbmQgd2Ugd2FudCB0byBkZWxl dGUgdGhlIGxpYmV4ZWMgZnJvbSBnbGliYyBhZnRlcndhcmRzIHRvIHNhdmUgc3BhY2UKKwlta2Rp ciAtcCAke0RFU1RESVJ9LyR7c3lzcm9vdH0vdXNyL3tiaW4sbGliLGxpYmV4ZWMsaW5jbHVkZSxz aGFyZX0KKwkjIFN5c3Jvb3QgYmFzZSBzeW1saW5rcworCWxuIC1zZiB1c3IvbGliICR7REVTVERJ Un0vJHtzeXNyb290fS9saWIKKwlsbiAtc2YgdXNyL2xpYiAke0RFU1RESVJ9LyR7c3lzcm9vdH0v bGliJHtjcm9zc193b3Jkc2l6ZX0KKwlsbiAtc2YgbGliICR7REVTVERJUn0vJHtzeXNyb290fS91 c3IvbGliJHtjcm9zc193b3Jkc2l6ZX0KKworCSMgSW5zdGFsbCBMaW51eCBoZWFkZXJzCisJY2Qg JHt3cmtzcmN9L2xpbnV4LSR7Y3Jvc3NfbGludXhfdmVyc2lvbn0KKwltYWtlIEFSQ0g9JHtjcm9z c19saW51eF9hcmNofSBcCisJCUlOU1RBTExfSERSX1BBVEg9JHtERVNURElSfS8ke3N5c3Jvb3R9 L3VzciBoZWFkZXJzX2luc3RhbGwKKwlybSAtZiAkKGZpbmQgJHtERVNURElSfS8ke3N5c3Jvb3R9 L3Vzci9pbmNsdWRlIFwKKwkJLW5hbWUgLmluc3RhbGwgLW9yIC1uYW1lIC4uaW5zdGFsbC5jbWQp CisJcm0gLXJmICR7REVTVERJUn0vJHtzeXNyb290fS91c3IvaW5jbHVkZS9kcm0KKworCSMgSW5z dGFsbCBiaW51dGlscworCWNkICR7d3Jrc3JjfS9iaW51dGlsc19idWlsZAorCW1ha2UgaW5zdGFs bCBERVNURElSPSR7REVTVERJUn0KKworCSMgSW5zdGFsbCBmaW5hbCBnY2MKKwljZCAke3dya3Ny Y30vZ2NjX2J1aWxkCisJbWFrZSBpbnN0YWxsIERFU1RESVI9JHtERVNURElSfQorCisJIyBNb3Zl IGxpYmNjMS5zbyogdG8gdGhlIHN5c3Jvb3QKKwltdiAke0RFU1RESVJ9L3Vzci9saWIvbGliY2Mx LnNvKiAke0RFU1RESVJ9LyR7c3lzcm9vdH0vdXNyL2xpYgorCisJaWYgWyAiJGNyb3NzX2xpYmMi ID0gIm11c2wiIF07IHRoZW4KKwkJIyBJbnN0YWxsIG11c2wKKwkJY2QgJHt3cmtzcmN9L211c2xf YnVpbGQKKwkJbWFrZSBERVNURElSPSR7REVTVERJUn0vJHtzeXNyb290fSBpbnN0YWxsCisKKwkJ IyBSZW1vdmUgdXNlbGVzcyBoZWFkZXJzCisJCXJtIC1yZiAke0RFU1RESVJ9L3Vzci9saWIvZ2Nj LyR7Y3Jvc3NfdHJpcGxldH0vKi9pbmNsdWRlLWZpeGVkCisKKwkJIyBNYWtlIGxkLW11c2wuc28g c3ltbGlua3MgcmVsYXRpdmUKKwkJZm9yIGYgaW4gJHtERVNURElSfS8ke3N5c3Jvb3R9L3Vzci9s aWIvbGQtbXVzbC0qLnNvLio7IGRvCisJCQlsbiAtc2YgbGliYy5zbyAke2Z9CisJCWRvbmUKKwll bHNlCisJCSMgSW5zdGFsbCBnbGliYworCQljZCAke3dya3NyY30vZ2xpYmNfYnVpbGQKKwkJbWFr ZSBpbnN0YWxsX3Jvb3Q9JHtERVNURElSfS8ke3N5c3Jvb3R9IGluc3RhbGwgaW5zdGFsbC1oZWFk ZXJzCisKKwkJIyBSZW1vdmUgYmFkIGhlYWRlcgorCQlybSAtZiAke0RFU1RESVJ9L3Vzci9saWIv Z2NjLyR7Y3Jvc3NfX3RyaXBsZXR9LyovaW5jbHVkZS1maXhlZC9iaXRzL3N0YXR4LmgKKwlmaQor CisJIyBTeW1saW5rcyBmb3IgZ25hcmwgYW5kIGduYXQgc2hhcmVkIGxpYnJhcmllcworCWxvY2Fs IG1ham9ydmVyPSR7Y3Jvc3NfZ2NjX3ZlcnNpb24lLiouKn0KKwlsb2NhbCBhZGFsaWI9dXNyL2xp Yi9nY2MvJHtfdHJpcGxldH0vJHtfZ2NjX3ZlcnNpb259L2FkYWxpYgorCW12ICR7REVTVERJUn0v JHthZGFsaWJ9L2xpYmduYXJsLSR7bWFqb3J2ZXJ9LnNvIFwKKwkJJHtERVNURElSfS8ke3N5c3Jv b3R9L3Vzci9saWIKKwltdiAke0RFU1RESVJ9LyR7YWRhbGlifS9saWJnbmF0LSR7bWFqb3J2ZXJ9 LnNvIFwKKwkJJHtERVNURElSfS8ke3N5c3Jvb3R9L3Vzci9saWIKKwlsbiAtc2YgbGliZ25hcmwt JHttYWpvcnZlcn0uc28gJHtERVNURElSfS8ke3N5c3Jvb3R9L3Vzci9saWIvbGliZ25hcmwuc28K KwlsbiAtc2YgbGliZ25hdC0ke21ham9ydmVyfS5zbyAke0RFU1RESVJ9LyR7c3lzcm9vdH0vdXNy L2xpYi9saWJnbmF0LnNvCisJcm0gLXZmICR7REVTVERJUn0vJHthZGFsaWJ9L2xpYmduYXtybCx0 fS5zbworCisJIyBSZW1vdmUgdW5uZWNlc3NhcnkgbGliYXRvbWljIHdoaWNoIGlzIG9ubHkgYnVp bHQgZm9yIGdjY2dvCisJcm0gLXJmICR7REVTVERJUn0vJHtzeXNyb290fS91c3IvbGliL2xpYmF0 b21pYy4qCisKKwkjIFJlbW92ZSBsZWZ0b3ZlciBzeW1saW5rcworCXJtIC1mICR7REVTVERJUn0v dXNyL2xpYiR7WEJQU19UQVJHRVRfV09SRFNJWkV9CisJcm0gLWYgJHtERVNURElSfS9saWIqCisJ cm0gLWYgJHtERVNURElSfS8qYmluCisJIyBSZW1vdmUgdW5uZWNlc3Nhcnkgc3R1ZmYKKwlybSAt cmYgJHtERVNURElSfS8ke3N5c3Jvb3R9L3tzYmluLGV0Yyx2YXIsbGliZXhlY30KKwlybSAtcmYg JHtERVNURElSfS8ke3N5c3Jvb3R9L3Vzci97c2JpbixzaGFyZSxsaWJleGVjfQorCXJtIC1yZiAk e0RFU1RESVJ9L3Vzci9zaGFyZQorCXJtIC1mICR7REVTVERJUn0vdXNyL2xpYiovbGliaWJlcnR5 LmEKKworCWV4cG9ydCBQQVRIPSIkb2xkcGF0aCIKKwlleHBvcnQgTERfTElCUkFSWV9QQVRIPSIk b2xkbGRsaWIiCit9CmRpZmYgLS1naXQgYS9jb21tb24vZW52aXJvbm1lbnQvYnVpbGQtc3R5bGUv dm9pZC1jcm9zcy5zaCBiL2NvbW1vbi9lbnZpcm9ubWVudC9idWlsZC1zdHlsZS92b2lkLWNyb3Nz LnNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42NWEyYTkxMDVhMgot LS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9lbnZpcm9ubWVudC9idWlsZC1zdHlsZS92b2lkLWNy b3NzLnNoCkBAIC0wLDAgKzEsMTUgQEAKK2xpYjMyZGlzYWJsZWQ9eWVzCitub2Nyb3NzPXllcwor bm9waWU9eWVzCitjcmVhdGVfd3Jrc3JjPXllcworCitub3N0cmlwX2ZpbGVzKz0ibGliY2FmX3Np bmdsZS5hIGxpYmdjYy5hIGxpYmdjb3YuYSBsaWJnY2NfZWguYQorIGxpYmduYXJsX3BpYy5hIGxp YmduYXJsLmEgbGliZ25hdF9waWMuYSBsaWJnbmF0LmEgbGliZ21lbS5hIgorCitpZiBbICIkY3Jv c3NfbGliYyIgPSAiZ2xpYmMiIC1hICIkWEJQU19UQVJHRVRfTElCQyIgIT0gImdsaWJjIiBdOyB0 aGVuCisgICAgYnJva2VuPSJnbGliYyBjcm9zc3Rvb2xjaGFpbnMgYXJlIG9ubHkgYXZhaWxhYmxl IG9uIGdsaWJjIGhvc3RzIGZvciBub3ciCitmaQorCitpZiBbICJjcm9zc193b3Jkc2l6ZSIgPSAi NjQiIC1hICIkWEJQU19UQVJHRVRfV09SRFNJWkUiICE9ICI2NCIgXTsgdGhlbgorICAgIGJyb2tl bj0iNjQtYml0IGNyb3NzdG9vbGNoYWlucyBhcmUgbm90IGF2YWlsYWJsZSBvbiAzMi1iaXQgaG9z dHMiCitmaQoKRnJvbSAyNGFlNmIyOWI4OTgwOGFmNjM0MTU1MDk2MTFlZmQ3YTk0M2NiYzkxIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBxNjYgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpE YXRlOiBGcmksIDI1IERlYyAyMDIwIDAwOjQzOjQ4ICswMTAwClN1YmplY3Q6IFtQQVRDSCAzLzRd IGNyb3NzLWFhcmNoNjQtbGludXgtZ251OiByZWRvIHdpdGggdm9pZC1jcm9zcyBidWlsZC1zdHls ZQoKLS0tCiBzcmNwa2dzL2Nyb3NzLWFhcmNoNjQtbGludXgtZ251L3RlbXBsYXRlIHwgMzcwICsr LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjEgaW5zZXJ0aW9ucygrKSwg MzQ5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY3Jvc3MtYWFyY2g2NC1saW51 eC1nbnUvdGVtcGxhdGUgYi9zcmNwa2dzL2Nyb3NzLWFhcmNoNjQtbGludXgtZ251L3RlbXBsYXRl CmluZGV4IGIwMTIyYzhlYzRhLi5hYTg3YzMyZjRjMiAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9z cy1hYXJjaDY0LWxpbnV4LWdudS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Nyb3NzLWFhcmNoNjQt bGludXgtZ251L3RlbXBsYXRlCkBAIC0xLDIxICsxLDIxIEBACi0jIFRlbXBsYXRlIGJ1aWxkIGZp bGUgZm9yICdjcm9zcy1hYXJjaDY0LWxpbnV4LWdudScKLSMKKyMgVGVtcGxhdGUgZmlsZSBmb3Ig J2Nyb3NzLWFhcmNoNjQtbGludXgtZ251JworX3RyaXBsZXQ9YWFyY2g2NC1saW51eC1nbnUKIF9i aW51dGlsc192ZXJzaW9uPTIuMzIKIF9nY2NfdmVyc2lvbj05LjMuMAogX2dsaWJjX3ZlcnNpb249 Mi4zMAogX2xpbnV4X3ZlcnNpb249NC4xOQotCi1fdHJpcGxldD1hYXJjaDY0LWxpbnV4LWdudQot X2FyY2hmbGFncz0iLW1hcmNoPWFybXY4LWEiCi1fc3lzcm9vdD0iL3Vzci8ke190cmlwbGV0fSIK LQogcGtnbmFtZT1jcm9zcy0ke190cmlwbGV0fQogdmVyc2lvbj0wLjMzCi1yZXZpc2lvbj0zCi1z aG9ydF9kZXNjPSJHTlUgQ3Jvc3MgdG9vbGNoYWluIGZvciB0aGUgJHtfdHJpcGxldH0gTEUgdGFy Z2V0IChiaW51dGlscy9nY2MvZ2xpYmMpIgorcmV2aXNpb249NAorYnVpbGRfc3R5bGU9dm9pZC1j cm9zcworY29uZmlndXJlX2FyZ3M9Ii0td2l0aC1hcmNoPWFybXY4LWEiCitob3N0bWFrZWRlcGVu ZHM9InRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5dGhvbjMiCittYWtlZGVwZW5kcz0i aXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwi CitkZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKK3Nob3J0 X2Rlc2M9IlZvaWQgY3Jvc3MgdG9vbGNoYWluIGZvciAke190cmlwbGV0fSIKIG1haW50YWluZXI9 IkxlYWggTmV1a2lyY2hlbiA8bGVhaEB2dXh1Lm9yZz4iCi1ob21lcGFnZT0iaHR0cHM6Ly93d3cu dm9pZGxpbnV4Lm9yZy8iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBHUEwtMy4wLW9yLWxh dGVyLCBMR1BMLTIuMS1vci1sYXRlciIKK2hvbWVwYWdlPSJodHRwczovL3d3dy52b2lkbGludXgu b3JnLyIKIGRpc3RmaWxlcz0iCiAgJHtHTlVfU0lURX0vYmludXRpbHMvYmludXRpbHMtJHtfYmlu dXRpbHNfdmVyc2lvbn0udGFyLnh6CiAgJHtHTlVfU0lURX0vZ2NjL2djYy0ke19nY2NfdmVyc2lv bn0vZ2NjLSR7X2djY192ZXJzaW9ufS50YXIueHoKQEAgLTI2LDM0OSArMjYsMjEgQEAgY2hlY2tz dW09IjBhYjZjNTVkZDg2YTkyZWQ1NjE5NzJiYTE1YjliNzBhOGI5Zjc1NTU3Zjg5NjQ0NmM4MmU4 YjM2ZTQ3M2VlMDQKICBlMmM0MTE0ZTU2OWFmYmU3ZWRiYzI5MTMxYTQzYmU4MzM4NTBhYjlhNDU5 ZDgxYmViMjU4ODAxNmQyYmJiOGFmCiAgMGM2OGY1NjU1NTI4YWVkNGY5OWRhZTcxYTViMjU5ZWRj OTMyMzlmYTg5OWUyZGY3OWMwNTUyNzVjMjE3NDlhMSIKIAotbGliMzJkaXNhYmxlZD15ZXMKLW5v Y3Jvc3M9eWVzCi1ub3BpZT15ZXMKLWNyZWF0ZV93cmtzcmM9eWVzCi1ob3N0bWFrZWRlcGVuZHM9 InRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5dGhvbjMiCi1tYWtlZGVwZW5kcz0iaXNs MTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2ZWwiCi1kZXBlbmRzPSIke3BrZ25hbWV9LWxp YmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKLW5vc3RyaXBfZmlsZXM9ImxpYmNhZl9zaW5nbGUu YSBsaWJnY2MuYSBsaWJnY292LmEgbGliZ2NjX2VoLmEKLSBsaWJnbmFybF9waWMuYSBsaWJnbmFy bC5hIGxpYmduYXRfcGljLmEgbGliZ25hdC5hIGxpYmdtZW0uYSIKLQotaWYgWyAiJFhCUFNfVEFS R0VUX0xJQkMiICE9ICJnbGliYyIgXTsgdGhlbgotCWJyb2tlbj0iZ2xpYmMgY3Jvc3N0b29sY2hh aW4gb25seSBhdmFpbGFibGUgb24gZ2xpYmMiCi1maQotCi1pZiBbICIkWEJQU19UQVJHRVRfV09S RFNJWkUiICE9ICI2NCIgXTsgdGhlbgotCWJyb2tlbj0iNjQtYml0IGNyb3NzdG9vbGNoYWluIG9u bHkgYXZhaWxhYmxlIG9uIDY0LWJpdCBob3N0IgotZmkKK2Nyb3NzX3RyaXBsZXQ9JHtfdHJpcGxl dH0KK2Nyb3NzX3dvcmRzaXplPTY0Citjcm9zc19saWJjPWdsaWJjCitjcm9zc19iaW51dGlsc192 ZXJzaW9uPSR7X2JpbnV0aWxzX3ZlcnNpb259Citjcm9zc19nY2NfdmVyc2lvbj0ke19nY2NfdmVy c2lvbn0KK2Nyb3NzX2dsaWJjX3ZlcnNpb249JHtfZ2xpYmNfdmVyc2lvbn0KK2Nyb3NzX2xpbnV4 X3ZlcnNpb249JHtfbGludXhfdmVyc2lvbn0KK2Nyb3NzX2xpbnV4X2FyY2g9YXJtNjQKK2Nyb3Nz X3dvcmRzaXplPTY0Citjcm9zc19nbGliY19jZmxhZ3M9Ii1PMiAtbWFyY2g9YXJtdjgtYSIKIAog aWYgWyAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiID0gImFhcmNoNjQiIF07IHRoZW4KIAlicm9rZW49 IkNhbid0IGJ1aWxkIGNyb3NzdG9vbGNoYWluIHRvIGl0c2VsZiIKIGZpCiAKLV9hcHBseV9wYXRj aCgpIHsKLQlsb2NhbCBhcmdzPSIkMSIgcG5hbWU9IiQoYmFzZW5hbWUgJDIpIgotCi0JaWYgWyAh IC1mICIuJHtwbmFtZX1fZG9uZSIgXTsgdGhlbgotCQlwYXRjaCAtTiAkYXJncyAtaSAkMgotCQl0 b3VjaCAuJHtwbmFtZX1fZG9uZQotCWZpCi19Ci0KLV9saW51eF9oZWFkZXJzKCkgewotCVsgLWYg JHt3cmtzcmN9Ly5saW51eF9idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3Jj fQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIExpbnV4IEFQSSBoZWFkZXJzIGZvciBBUk1cbiIKLQot CWNkIGxpbnV4LSR7X2xpbnV4X3ZlcnNpb259Ci0KLQltYWtlIEFSQ0g9YXJtNjQgaGVhZGVyc19j aGVjawotCW1ha2UgQVJDSD1hcm02NCBJTlNUQUxMX0hEUl9QQVRIPSR7X3N5c3Jvb3R9L3VzciBo ZWFkZXJzX2luc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8ubGludXhfYnVpbGRfZG9uZQotfQot Ci1fYmludXRpbHNfYnVpbGQoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5i aW51dGlsc19idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19u b3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGJpbnV0aWxzXG4iCi0JWyAhIC1kIGJpbnV0aWxzLWJ1aWxk IF0gJiYgbWtkaXIgYmludXRpbHMtYnVpbGQKLQljZCBiaW51dGlscy1idWlsZAotCi0JX2FyZ3M9 Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3Mr PSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIK LQlfYXJncys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0aWxp YiIKLQlfYXJncys9IiAtLWRpc2FibGUtd2Vycm9yIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1nb2xk IgotCV9hcmdzKz0iIC0td2l0aC1zeXN0ZW0temxpYiIKLQkuLi9iaW51dGlscy0ke19iaW51dGls c192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgY29uZmlndXJlLWhvc3QgJiYg bWFrZSAke21ha2Vqb2JzfQotCW1ha2UgaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5iaW51 dGlsc19idWlsZF9kb25lCi19Ci0KLV9nY2NfYm9vdHN0cmFwKCkgewotCWxvY2FsIF9hcmdzCi0K LQlbIC1mICR7d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJhcF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNk ICR7d3Jrc3JjfS9nY2MtJHtfZ2NjX3ZlcnNpb259Ci0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJ Un0vZ2NjL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCi0JZG9u ZQotCi0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2NjIGJvb3RzdHJhcFxuIgotCi0JWyAh IC1kIC4uL2djYy1ib290c3RyYXAgXSAmJiBta2RpciAuLi9nY2MtYm9vdHN0cmFwCi0JY2QgLi4v Z2NjLWJvb3RzdHJhcAotCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJn ZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRob3V0LWhlYWRlcnMiCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0t ZGlzYWJsZS1saWJxdWFkbWF0aCIKLQlfYXJncys9IiAtLWRpc2FibGUtZGVjaW1hbC1mbG9hdCIK LQlfYXJncys9IiAtLWRpc2FibGUtbGliZ29tcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXB4 IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtdWRmbGFwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1s aWJzc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYml0bSIKLQlfYXJncys9IiAtLWRpc2FibGUt bGliYXRvbWljIgotCV9hcmdzKz0iIC0tZGlzYWJsZS10aHJlYWRzIgotCV9hcmdzKz0iIC0tZW5h YmxlLWxhbmd1YWdlcz1jIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zamxqLWV4Y2VwdGlvbnMiCi0J X2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9hcmdzKz0iIC0td2l0aC1nbnUtbGQiCi0J X2FyZ3MrPSIgLS13aXRoLWdudS1hcyIKLQotCS4uL2djYy0ke19nY2NfdmVyc2lvbn0vY29uZmln dXJlICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsCi0KLQl0b3Vj aCAke3dya3NyY30vLmdjY19ib290c3RyYXBfZG9uZQotfQotCi1fZ2xpYmNfaGVhZGVycygpIHsK LQlsb2NhbCBfYXJncyBmCi0KLQlbIC1mICR7d3Jrc3JjfS8uZ2xpYmNfaGVhZGVyc19kb25lIF0g JiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9nbGliYy0ke19nbGliY192ZXJzaW9ufQotCWlm IFsgLWQgIiR7WEJQU19TUkNQS0dESVJ9L2dsaWJjL3BhdGNoZXMiIF07IHRoZW4KLQkJZm9yIGYg aW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2xpYmMvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQkJX2FwcGx5 X3BhdGNoIC1wMSAiJGYiCi0JCWRvbmUKLQlmaQotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1h bCAiQnVpbGRpbmcgY3Jvc3MgZ2xpYmMgaGVhZGVyc1xuIgotCi0JWyAhIC1kIGdsaWJjLWhlYWRl cnMgXSAmJiBta2RpciBnbGliYy1oZWFkZXJzCi0JY2QgZ2xpYmMtaGVhZGVycwotCi0JZWNobyAi bGliY19jdl9mb3JjZWRfdW53aW5kPXllcyIgPiBjb25maWcuY2FjaGUKLQllY2hvICJsaWJjX2N2 X2NfY2xlYW51cD15ZXMiID4+IGNvbmZpZy5jYWNoZQotCi0JZXhwb3J0IENDPSIke190cmlwbGV0 fS1nY2MiIExEPSIke190cmlwbGV0fS1sZCIgXAotCQlBUz0iJHtfdHJpcGxldH0tYXMiIENQUD0i JHtfdHJpcGxldH0tY3BwIiBcCi0JCU5NPSIke190cmlwbGV0fS1ubSIKLQotCV9hcmdzPSItLXBy ZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0taG9zdD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdp dGgtaGVhZGVycz0ke19zeXNyb290fS91c3IvaW5jbHVkZSIKLQlfYXJncys9IiAtLWNvbmZpZy1j YWNoZSIKLQlfYXJncys9IiAtLWVuYWJsZS1vYnNvbGV0ZS1ycGMiCi0JX2FyZ3MrPSIgLS1lbmFi bGUtb2Jzb2xldGUtbnNsIgotCV9hcmdzKz0iIC0tZW5hYmxlLWtlcm5lbD0yLjYuMjciCi0KLQku Li9nbGliYy0ke19nbGliY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgLWsg aW5zdGFsbC1oZWFkZXJzIGNyb3NzX2NvbXBpbGluZz15ZXMgXAotCQlpbnN0YWxsX3Jvb3Q9JHtf c3lzcm9vdH0KLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2xpYmNfaGVhZGVyc19kb25lCi19Ci0KLV9n bGliY19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmdsaWJjX2J1 aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVp bGRpbmcgY3Jvc3MgZ2xpYmNcbiIKLQotCVsgISAtZCBnbGliYy1idWlsZCBdICYmIG1rZGlyIGds aWJjLWJ1aWxkCi0JY2QgZ2xpYmMtYnVpbGQKLQotCWVjaG8gInNsaWJkaXI9L3Vzci9saWI2NCIg PiBjb25maWdwYXJtcwotCi0JZWNobyAibGliY19jdl9mb3JjZWRfdW53aW5kPXllcyIgPiBjb25m aWcuY2FjaGUKLQllY2hvICJsaWJjX2N2X2NfY2xlYW51cD15ZXMiID4+IGNvbmZpZy5jYWNoZQot Ci0JZXhwb3J0IENDPSIke190cmlwbGV0fS1nY2MiIENYWD0iJHtfdHJpcGxldH0tZysrIiBMRD0i JHtfdHJpcGxldH0tbGQiIFwKLQkJQVM9IiR7X3RyaXBsZXR9LWFzIiBDUFA9IiR7X3RyaXBsZXR9 LWNwcCIgXAotCQlOTT0iJHtfdHJpcGxldH0tbm0iCi0JZXhwb3J0IENGTEFHUz0iLU8xIC1waXBl ICR7X2FyY2hmbGFnc30iCi0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLWxp YmRpcj0vdXNyL2xpYjY0IgotCV9hcmdzKz0iIC0taG9zdD0ke190cmlwbGV0fSIKLQlfYXJncys9 IiAtLXdpdGgtaGVhZGVycz0ke19zeXNyb290fS91c3IvaW5jbHVkZSIKLQlfYXJncys9IiAtLWNv bmZpZy1jYWNoZSIKLQlfYXJncys9IiAtLWVuYWJsZS1vYnNvbGV0ZS1ycGMiCi0JX2FyZ3MrPSIg LS1lbmFibGUtb2Jzb2xldGUtbnNsIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1wcm9maWxlIgotCV9h cmdzKz0iIC0tZW5hYmxlLWtlcm5lbD0yLjYuMjciCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXdlcnJv ciIKLQotCS4uL2dsaWJjLSR7X2dsaWJjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0J bWFrZSAke21ha2Vqb2JzfQotCW1ha2UgaW5zdGFsbF9yb290PSR7X3N5c3Jvb3R9IGluc3RhbGwK LQotCXRvdWNoICR7d3Jrc3JjfS8uZ2xpYmNfYnVpbGRfZG9uZQotfQotCi1fZ2NjX2J1aWxkKCkg ewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUgXSAmJiBy ZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2Nj IGZpbmFsXG4iCi0KLQlbICEgLWQgZ2NjLWJ1aWxkIF0gJiYgbWtkaXIgZ2NjLWJ1aWxkCi0JY2Qg Z2NjLWJ1aWxkCi0KLQlleHBvcnQgQ0M9ImdjYyIgQ1hYPSJnKysiIENGTEFHUz0iLU9zIC1waXBl IgotCXVuc2V0IExEIEFTCi0KLQkjIE1ha2UgdGhpcyBsaW5rIHRvIHRhcmdldCBsaWJzLgotCWlm IFsgISAtZiAuc2VkX3N1YnN0X2RvbmUgXTsgdGhlbgotCQlzZWQgLWUgInMsIC9saWIvLCAke19z eXNyb290fS9saWIvLGc7cywgL3Vzci9saWIvLCAke19zeXNyb290fS91c3IvbGliLyxnIiBcCi0J CQktaSAke19zeXNyb290fS9saWIvbGliYy5zbwotCQlzZWQgLWUgInMsIC9saWI2NC8sICR7X3N5 c3Jvb3R9L2xpYjY0LyxnO3MsIC91c3IvbGliNjQvLCAke19zeXNyb290fS91c3IvbGliNjQvLGci IFwKLQkJCS1pICR7X3N5c3Jvb3R9L2xpYi9saWJjLnNvCi0JCXRvdWNoIC5zZWRfc3Vic3RfZG9u ZQotCWZpCi0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLWxpYmV4ZWNkaXI9 L3Vzci9saWIiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13 aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGFuZ3VhZ2VzPWMs YWRhLGMrKyxvYmpjLG9iai1jKyssZ28sZm9ydHJhbixsdG8iCi0JX2FyZ3MrPSIgLS13aXRoLWdu dS1hcyIKLQlfYXJncys9IiAtLXdpdGgtZ251LWxkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0 aWxpYiIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zamxq LWV4Y2VwdGlvbnMiCi0JX2FyZ3MrPSIgLS1lbmFibGUtdGhyZWFkcz1wb3NpeCIKLQlfYXJncys9 IiAtLWVuYWJsZS1sb25nLWxvbmd4IgotCV9hcmdzKz0iIC0tZW5hYmxlLXNoYXJlZCIKLQlfYXJn cys9IiAtLWVuYWJsZS1saW5rZXItYnVpbGQtaWQiCi0JX2FyZ3MrPSIgLS1lbmFibGUtZ251LXVu aXF1ZS1vYmplY3QiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGliYWRhIgotCV9hcmdzKz0iIC0tZW5h YmxlLWx0byIKLQlfYXJncys9IiAtLWVuYWJsZS1kZWZhdWx0LXBpZSIKLQlfYXJncys9IiAtLWVu YWJsZS1kZWZhdWx0LXNzcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlicXVhZG1hdGgiCi0JX2Fy Z3MrPSIgLS1kaXNhYmxlLWxpYnNzcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXVkZmxhcCIK LQlfYXJncys9IiAtLWRpc2FibGUtbGlic2FuaXRpemVyIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1s aWJjaWxrcnRzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJpdG0iCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLWxpYnZ0diIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlic3RkY3h4LXBjaCIKLQlfYXJncys9 IiAtLWVuYWJsZS1saWJzdGRjeHgtdGltZSIKLQlfYXJncys9IiAtLXdpdGgtbGlua2VyLWhhc2gt c3R5bGU9Z251IgotCi0JLi4vZ2NjLSR7X2djY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30K LQotCW1ha2UgJHttYWtlam9ic30KLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUK LX0KLQotZG9fYnVpbGQoKSB7Ci0JdW5zZXQgTERGTEFHUwotCWV4cG9ydCBDRkxBR1M9Ii1PcyIg Q1hYRkxBR1M9Ii1PcyIKLQotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47 IGRvCi0JCWlmIFsgISAtZCAke19zeXNyb290fS91c3IvJHtmfSBdOyB0aGVuCi0JCQlta2RpciAt cCAke19zeXNyb290fS91c3IvJHtmfQotCQlmaQotCQlpZiBbICEgLWggJHtfc3lzcm9vdH0vJHtm fSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7X3N5c3Jvb3R9L3Vzci8ke2Z9ICR7X3N5c3Jvb3R9LyR7 Zn0KLQkJZmkKLQlkb25lCi0JbG4gLXNmIGxpYiAke19zeXNyb290fS91c3IvbGliNjQKLQlsbiAt c2YgdXNyL2xpYiAke19zeXNyb290fS9saWI2NAotCi0JX2JpbnV0aWxzX2J1aWxkCi0JX2djY19i b290c3RyYXAKLQlfbGludXhfaGVhZGVycwotCV9nbGliY19oZWFkZXJzCi0JX2dsaWJjX2J1aWxk Ci0JX2djY19idWlsZAotfQotCi1kb19pbnN0YWxsKCkgewotCWZvciBmIGluIGluY2x1ZGUgbGli IGxpYmV4ZWMgYmluIHNiaW47IGRvCi0JCWlmIFsgISAtZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9 L3Vzci8ke2Z9IF07IHRoZW4KLQkJCW1rZGlyIC1wICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNy LyR7Zn0KLQkJZmkKLQkJaWYgWyAhIC1oICR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtmfSBdOyB0 aGVuCi0JCQlsbiAtc2ZyICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXAotCQkJCSR7 REVTVERJUn0vJHtfc3lzcm9vdH0vJHtmfQotCQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7REVT VERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYjY0Ci0JbG4gLXNmIHVzci9saWIgJHtERVNURElSfS8k e19zeXNyb290fS9saWI2NAotCi0JIyBpbnN0YWxsIGNyb3NzIGJpbnV0aWxzCi0JY2QgJHt3cmtz cmN9L2JpbnV0aWxzLWJ1aWxkCi0JbWFrZSBERVNURElSPSR7REVTVERJUn0gaW5zdGFsbAotCi0J IyBpbnN0YWxsIGNyb3NzIGdjYwotCWNkICR7d3Jrc3JjfS9nY2MtYnVpbGQKLQltYWtlIERFU1RE SVI9JHtERVNURElSfSBpbnN0YWxsCi0KLQkjIG1vdmUgbGliY2MxLnNvKiB0byB0aGUgc3lzcm9v dAotCW12ICR7REVTVERJUn0vdXNyL2xpYi9saWJjYzEuc28qICR7REVTVERJUn0vJHtfc3lzcm9v dH0vdXNyL2xpYgotCi0JIyBpbnN0YWxsIGxpbnV4IEFQSSBoZWFkZXJzIGZvciBBUk02NAotCWNk ICR7d3Jrc3JjfS9saW51eC0ke19saW51eF92ZXJzaW9ufQotCW1ha2UgQVJDSD1hcm02NCBJTlNU QUxMX0hEUl9QQVRIPSR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyIGhlYWRlcnNfaW5zdGFsbAot CXJtIC1mICQoZmluZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlIC1uYW1lIC5p bnN0YWxsIC1vciAtbmFtZSAuLmluc3RhbGwuY21kKQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9L3Vzci9pbmNsdWRlL2RybQotCi0JIyBpbnN0YWxsIGdsaWJjIGZvciB0YXJnZXQKLQlj ZCAke3dya3NyY30vZ2xpYmMtYnVpbGQKLQltYWtlIGluc3RhbGxfcm9vdD0ke0RFU1RESVJ9LyR7 X3N5c3Jvb3R9IGluc3RhbGwgaW5zdGFsbC1oZWFkZXJzCi0KLQkjIHN5bWxpbmtzIGZvciBnbmFy bCBhbmQgZ25hdCBzaGFyZWQgbGlicmFyaWVzCi0JX21ham9ydmVyPSR7X2djY192ZXJzaW9uJS4q Lip9Ci0JX2FkYWxpYj11c3IvbGliL2djYy8ke190cmlwbGV0fS8ke19nY2NfdmVyc2lvbn0vYWRh bGliCi0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXJsLSR7X21ham9ydmVyfS5z byAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQltdiAtdiAke0RFU1RESVJ9LyR7X2Fk YWxpYn0vbGliZ25hdC0ke19tYWpvcnZlcn0uc28gJHtERVNURElSfS8ke19zeXNyb290fS91c3Iv bGliCi0JbG4gLXN2ZiBsaWJnbmFybC0ke19tYWpvcnZlcn0uc28gbGliZ25hcmwuc28KLQlsbiAt c3ZmIGxpYmduYXQtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXQuc28KLQlybSAtdmYgJHtERVNURElS fS8ke19hZGFsaWJ9L2xpYmduYXtybCx0fS5zbwotCi0JIyBXZSBuZWVkIHRvIGJ1aWxkIGxpYmF0 b21pYyBpbiB0YXJnZXQgZ2NjIGFzIGdjY2dvIG5lZWRzIGl0IHRvCi0JIyBidWlsZC4uLiBidXQg aXQncyBub3QgbmVlZGVkIGF0IHJ1bnRpbWUsIHNvIHJlbW92ZSBpdCBmcm9tIHRoZQotCSMgZGVz dGRpciBzbyBpdCBkb2Vzbid0IGNvbmZsaWN0IHdpdGggdGhlIGxpYmF0b21pYyBwYWNrYWdlCi0J cm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliL2xpYmF0b21pYy4qCi0KLQkjIFJl bW92ZSB1bm5lY2Vzc2FyeSBzdHVmZgotCXJtIC1mICR7REVTVERJUn0vdXNyL2xpYiovbGliaWJl cnR5LmEKLQlybSAtcmYgJHtERVNURElSfS91c3Ivc2hhcmUKLQlybSAtcmYgJHtERVNURElSfS8k e19zeXNyb290fS97c2JpbixldGMsdmFyfQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9 L3Vzci97c2JpbixzaGFyZSxsaWJleGVjfQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0v bGliZXhlYwotfQotCi1kb19jbGVhbigpIHsKLQkjIFJlbW92ZSB0ZW1wb3Jhcnkgc3R1ZmYgZnJv bSBtYXN0ZXJkaXIKLQlybSAtcmYgJHtfc3lzcm9vdH0KLQlybSAtZiAvdXNyL2Jpbi8ke190cmlw bGV0fSoKLQlybSAtcmYgL3Vzci9saWIvZ2NjLyR7X3RyaXBsZXR9Ci0Jcm0gLXJmIC91c3IvbGli ZXhlYy9nY2MvJHtfdHJpcGxldH0KLX0KLQogY3Jvc3MtYWFyY2g2NC1saW51eC1nbnUtbGliY19w YWNrYWdlKCkgewogCXNob3J0X2Rlc2MrPSIgLSBnbGliYyBmaWxlcyIKIAlub3N0cmlwPXllcwpA QCAtMzc2LDYgKzQ4LDYgQEAgY3Jvc3MtYWFyY2g2NC1saW51eC1nbnUtbGliY19wYWNrYWdlKCkg ewogCW5vdmVyaWZ5cmRlcHM9eWVzCiAKIAlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgJHtfc3lz cm9vdH0KKwkJdm1vdmUgdXNyLyR7Y3Jvc3NfdHJpcGxldH0KIAl9CiB9CgpGcm9tIDIyZmVlYjA3 YjVjNDI4YmI3YTcyNzk4MzcwYmZlZGM3ZmQxNWMwZDkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IHE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IEZyaSwgMjUgRGVjIDIwMjAg MTQ6NTI6MzYgKzAxMDAKU3ViamVjdDogW1BBVENIIDQvNF0gY3Jvc3MtYWFyY2g2NC1saW51eC1t dXNsOiByZWRvIHdpdGggdm9pZC1jcm9zcwogYnVpbGQtc3R5bGUKCi0tLQogc3JjcGtncy9jcm9z cy1hYXJjaDY0LWxpbnV4LW11c2wvdGVtcGxhdGUgfCAzMTAgKystLS0tLS0tLS0tLS0tLS0tLS0t LQogMSBmaWxlIGNoYW5nZWQsIDIyIGluc2VydGlvbnMoKyksIDI4OCBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2Nyb3NzLWFhcmNoNjQtbGludXgtbXVzbC90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvY3Jvc3MtYWFyY2g2NC1saW51eC1tdXNsL3RlbXBsYXRlCmluZGV4IDhkNDU4N2NmZTQ4 Li44NjcxYmI5ZDIwYiAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy1hYXJjaDY0LWxpbnV4LW11 c2wvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9jcm9zcy1hYXJjaDY0LWxpbnV4LW11c2wvdGVtcGxh dGUKQEAgLTEsMTkgKzEsMTkgQEAKLSMgVGVtcGxhdGUgYnVpbGQgZmlsZSBmb3IgJ2Nyb3NzLWFh cmNoNjQtbGludXgtbXVzbCcKLSMKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3NzLWFhcmNoNjQt bGludXgtbXVzbCcKK190cmlwbGV0PWFhcmNoNjQtbGludXgtbXVzbAogX2JpbnV0aWxzX3ZlcnNp b249Mi4zMgogX2djY192ZXJzaW9uPTkuMy4wCiBfbXVzbF92ZXJzaW9uPTEuMS4yNAogX2xpbnV4 X3ZlcnNpb249NC4xOQogX2xpYnVjb250ZXh0X3ZlcnNpb249MC45LjAKLQotX3RyaXBsZXQ9YWFy Y2g2NC1saW51eC1tdXNsCi1fYXJjaGZsYWdzPSItbWFyY2g9YXJtdjgtYSIKLV9zeXNyb290PSIv dXNyLyR7X3RyaXBsZXR9IgotCiBwa2duYW1lPWNyb3NzLSR7X3RyaXBsZXR9CiB2ZXJzaW9uPTAu MzMKIHJldmlzaW9uPTQKLXNob3J0X2Rlc2M9IkNyb3NzIHRvb2xjaGFpbiBmb3IgQVJNNjQgTEUg dGFyZ2V0IChtdXNsKSIKK2J1aWxkX3N0eWxlPXZvaWQtY3Jvc3MKK2NvbmZpZ3VyZV9hcmdzPSIt LXdpdGgtYXJjaD1hcm12OC1hIgoraG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZ2NjLWdv IGZsZXggcGVybCBweXRob24zIgorbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZl bCB6bGliLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIgorZGVwZW5kcz0iJHtwa2duYW1lfS1s aWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCitzaG9ydF9kZXNjPSJWb2lkIGNyb3NzIHRvb2xj aGFpbiBmb3IgJHtfdHJpcGxldH0iCiBtYWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRs aW51eC5vcmc+IgogaG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51eC5vcmcvIgogbGljZW5z ZT0iR1BMLTIuMC1vci1sYXRlciwgR1BMLTMuMC1vci1sYXRlciwgTUlUIgpAQCAtMjksMjk2ICsy OSwzMCBAQCBjaGVja3N1bT0iMGFiNmM1NWRkODZhOTJlZDU2MTk3MmJhMTViOWI3MGE4YjlmNzU1 NTdmODk2NDQ2YzgyZThiMzZlNDczZWUwNAogIDBjNjhmNTY1NTUyOGFlZDRmOTlkYWU3MWE1YjI1 OWVkYzkzMjM5ZmE4OTllMmRmNzljMDU1Mjc1YzIxNzQ5YTEKICAwZDUzYTQxNWEzMDdlZjE3NTE1 M2JiZTYwYTU3MmM5NDBhOTIyY2I3MzZjZTEzNTMwYjY2NmU3ZWMyNzk1ZDY4IgogCi1saWIzMmRp c2FibGVkPXllcwotbm9jcm9zcz15ZXMKLW5vcGllPXllcwotbm9kZWJ1Zz15ZXMKLWNyZWF0ZV93 cmtzcmM9eWVzCi0KLWhvc3RtYWtlZGVwZW5kcz0idGFyIGdjYy1vYmpjIGdjYy1nbyBmbGV4IHBl cmwgcHl0aG9uMyIKLW1ha2VkZXBlbmRzPSJ6bGliLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVs IGxpYm1wYy1kZXZlbCBpc2wxNS1kZXZlbCIKLW5vc3RyaXBfZmlsZXM9ImxpYmNhZl9zaW5nbGUu YSBsaWJnY2MuYSBsaWJnY292LmEgbGliZ2NjX2VoLmEKLSBsaWJnbmFybF9waWMuYSBsaWJnbmFy bC5hIGxpYmduYXRfcGljLmEgbGliZ25hdC5hIGxpYmdtZW0uYSIKLWRlcGVuZHM9IiR7cGtnbmFt ZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259IgotCi1pZiBbICIkWEJQU19UQVJHRVRfV09S RFNJWkUiICE9ICI2NCIgXTsgdGhlbgotCWJyb2tlbj0iNjQtYml0IGNyb3NzdG9vbGNoYWluIG9u bHkgYXZhaWxhYmxlIG9uIDY0LWJpdCBob3N0IgotZmkKK2Nyb3NzX3RyaXBsZXQ9JHtfdHJpcGxl dH0KK2Nyb3NzX3dvcmRzaXplPTY0Citjcm9zc19saWJjPW11c2wKK2Nyb3NzX2JpbnV0aWxzX3Zl cnNpb249JHtfYmludXRpbHNfdmVyc2lvbn0KK2Nyb3NzX2djY192ZXJzaW9uPSR7X2djY192ZXJz aW9ufQorY3Jvc3NfbXVzbF92ZXJzaW9uPSR7X211c2xfdmVyc2lvbn0KK2Nyb3NzX2xpbnV4X3Zl cnNpb249JHtfbGludXhfdmVyc2lvbn0KK2Nyb3NzX2xpYnVjb250ZXh0X3ZlcnNpb249JHtfbGli dWNvbnRleHRfdmVyc2lvbn0KK2Nyb3NzX2xpYnVjb250ZXh0X2FyY2g9YWFyY2g2NAorY3Jvc3Nf bGludXhfYXJjaD1hcm02NAorY3Jvc3Nfd29yZHNpemU9NjQKK2Nyb3NzX211c2xfY2ZsYWdzPSIt TzIgLW1hcmNoPWFybXY4LWEiCiAKIGlmIFsgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiA9ICJhYXJj aDY0LW11c2wiIF07IHRoZW4KIAlicm9rZW49IkNhbid0IGJ1aWxkIGNyb3NzdG9vbGNoYWluIHRv IGl0c2VsZiIKIGZpCiAKLV9hcHBseV9wYXRjaCgpIHsKLQlsb2NhbCBhcmdzPSIkMSIgcG5hbWU9 IiQoYmFzZW5hbWUgJDIpIgotCi0JaWYgWyAhIC1mICIuJHtwbmFtZX1fZG9uZSIgXTsgdGhlbgot CQlwYXRjaCAtTiAkYXJncyAtaSAkMgotCQl0b3VjaCAuJHtwbmFtZX1fZG9uZQotCWZpCi19Ci0K LV9iaW51dGlsc19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmJp bnV0aWxzX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25v cm1hbCAiQnVpbGRpbmcgY3Jvc3MgYmludXRpbHMgYm9vdHN0cmFwXG4iCi0KLQlbICEgLWQgYmlu dXRpbHMtYnVpbGQgXSAmJiBta2RpciBiaW51dGlscy1idWlsZAotCWNkIGJpbnV0aWxzLWJ1aWxk Ci0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0i Ci0JX2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLXdlcnJvciIKLQlfYXJncys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0td2l0 aC1zeXN0ZW0temxpYiIKLQotCS4uL2JpbnV0aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259L2NvbmZp Z3VyZSAke19hcmdzfQotCi0JbWFrZSBjb25maWd1cmUtaG9zdCAmJiBtYWtlICR7bWFrZWpvYnN9 Ci0JbWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmJpbnV0aWxzX2J1aWxkX2RvbmUK LX0KLQotX2djY19ib290c3RyYXAoKSB7Ci0JbG9jYWwgX2FyZ3MKLQlbIC1mICR7d3Jrc3JjfS8u Z2NjX2Jvb3RzdHJhcF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9nY2MtJHtf Z2NjX3ZlcnNpb259Ci0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2NjL3BhdGNoZXMvKi5w YXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCi0JZG9uZQotCWZvciBmIGluICR7WEJQ U19TUkNQS0dESVJ9L2djYy9maWxlcy8qLW11c2wucGF0Y2g7IGRvCi0JCV9hcHBseV9wYXRjaCAt cDEgIiRmIgotCWRvbmUKLQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdjYyBib290c3Ry YXBcbiIKLQotCVsgISAtZCAuLi9nY2MtYm9vdHN0cmFwIF0gJiYgbWtkaXIgLi4vZ2NjLWJvb3Rz dHJhcAotCWNkIC4uL2djYy1ib290c3RyYXAKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9h cmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1zeXNyb290PSR7 X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0td2l0aC1uZXdsaWIiCi0JX2FyZ3MrPSIgLS1lbmFibGUt bGFuZ3VhZ2VzPWMiCi0JX2FyZ3MrPSIgLS13aXRoLW5ld2xpYiIKLQlfYXJncys9IiAtLWRpc2Fi bGUtbGlic3NwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LWxpYnF1YWRtYXRoIgotCV9hcmdzKz0iIC0tZGlzYWJsZS10aHJlYWRzIgotCV9hcmdzKz0iIC0t ZGlzYWJsZS1kZWNpbWFsLWZsb2F0IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zaGFyZWQiCi0JX2Fy Z3MrPSIgLS1kaXNhYmxlLWxpYm11ZGZsYXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmdvbXAi Ci0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmF0b21pYyIKLQlfYXJncys9IiAtLWRpc2FibGUtc3lt dmVycyIKLQlfYXJncys9IiBsaWJhdF9jdl9oYXZlX2lmdW5jPW5vIgotCi0JQ0ZMQUdTPSItTzAg LWcwIiBDWFhGTEFHUz0iLU8wIC1nMCIgXAotCQkuLi9nY2MtJHtfZ2NjX3ZlcnNpb259L2NvbmZp Z3VyZSAke19hcmdzfQotCi0JbWFrZSAke21ha2Vqb2JzfQotCW1ha2UgaW5zdGFsbAotCi0JdG91 Y2ggJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUKLX0KLQotX2xpbnV4X2hlYWRlcnMoKSB7 Ci0JWyAtZiAke3dya3NyY30vLmxpbnV4X2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2Qg JHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgTGludXggQVBJIGhlYWRlcnNcbiIKLQot CWNkIGxpbnV4LSR7X2xpbnV4X3ZlcnNpb259Ci0KLQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElS fS9rZXJuZWwtbGliYy1oZWFkZXJzL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNo IC1wMCAkZgotCWRvbmUKLQotCW1ha2UgQVJDSD1hcm02NCBoZWFkZXJzX2NoZWNrCi0JbWFrZSBB UkNIPWFybTY0IElOU1RBTExfSERSX1BBVEg9JHtfc3lzcm9vdH0vdXNyIGhlYWRlcnNfaW5zdGFs bAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5saW51eF9idWlsZF9kb25lCi19Ci0KLV9tdXNsX2J1aWxk KCkgewotCVsgLWYgJHt3cmtzcmN9Ly5tdXNsX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0J Y2QgJHt3cmtzcmN9L211c2wtJHtfbXVzbF92ZXJzaW9ufQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5n IGNyb3NzIG11c2wgbGliY1xuIgotCi0JIyBBcHBseSBtdXNsIHBhdGNoZXMgaWYgdGhlcmUgYXJl IGFueQotCWlmIFsgLWQgIiR7WEJQU19TUkNQS0dESVJ9L211c2wvcGF0Y2hlcyIgXTsgdGhlbgot CQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9tdXNsL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJ CV9hcHBseV9wYXRjaCAtcDAgIiRmIgotCQlkb25lCi0JZmkKLQotCUNDPSIke190cmlwbGV0fS1n Y2MiIExEPSIke190cmlwbGV0fS1sZCIgQVI9IiR7X3RyaXBsZXR9LWFyIiBcCi0JCUFTPSIke190 cmlwbGV0fS1hcyIgUkFOTElCPSIke190cmlwbGV0fS1yYW5saWIiIFwKLQkJQ0ZMQUdTPSItT3Mg LXBpcGUgLWZQSUMgJHtfYXJjaGZsYWdzfSIgXAotCQkuL2NvbmZpZ3VyZSAtLXByZWZpeD0vdXNy Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBERVNURElSPSR7X3N5c3Jvb3R9IGluc3RhbGwK LQotCXRvdWNoICR7d3Jrc3JjfS8ubXVzbF9idWlsZF9kb25lCi19Ci0KLV9saWJ1Y29udGV4dF9i dWlsZCgpIHsKLQlbIC1mICR7d3Jrc3JjfS8ubGlidWNvbnRleHRfYnVpbGRfZG9uZSBdICYmIHJl dHVybiAwCi0KLQljZCAke3dya3NyY30vbGlidWNvbnRleHQtJHtfbGlidWNvbnRleHRfdmVyc2lv bn0KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBsaWJ1Y29udGV4dFxuIgotCi0JIyBpdCdz IG9rIGlmIHdlJ3JlIHN0YXRpYyBvbmx5IGhlcmUKLQlDQz0iJHtfdHJpcGxldH0tZ2NjIiBBUj0i JHtfdHJpcGxldH0tYXIiIEFTPSIke190cmlwbGV0fS1hcyIgXAotCQlDRkxBR1M9Ii1PcyAtcGlw ZSAke19hcmNoZmxhZ3N9IiBcCi0JCW1ha2UgQVJDSD1hYXJjaDY0IGxpYnVjb250ZXh0LmEKLQot CWNwIGxpYnVjb250ZXh0LmEgJHtfc3lzcm9vdH0vdXNyL2xpYgotCi0JdG91Y2ggJHt3cmtzcmN9 Ly5saWJ1Y29udGV4dF9idWlsZF9kb25lCi19Ci0KLV9nY2NfYnVpbGQoKSB7Ci0JbG9jYWwgX2Fy Z3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQlj ZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBnY2MgZmluYWxcbiIKLQot CVsgISAtZCBnY2MtYnVpbGQgXSAmJiBta2RpciBnY2MtYnVpbGQKLQljZCBnY2MtYnVpbGQKLQot CV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tbGliZXhlY2Rpcj0vdXNyL2xpYiIK LQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgtc3lzcm9v dD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLWVuYWJsZS1sYW5ndWFnZXM9YyxhZGEsYysrLG9i amMsb2JqLWMrKyxnbyxmb3J0cmFuLGx0byIKLQlfYXJncys9IiAtLWVuYWJsZS1saWJhZGEiCi0J X2FyZ3MrPSIgLS1lbmFibGUtbHRvIgotCV9hcmdzKz0iIC0tZW5hYmxlLWRlZmF1bHQtcGllIgot CV9hcmdzKz0iIC0tZW5hYmxlLWRlZmF1bHQtc3NwIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpYnNz cCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlic2FuaXRpemVyIgotCV9hcmdzKz0iIC0tZGlzYWJs ZS1tdWx0aWxpYiIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJs ZS1saWJxdWFkbWF0aCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXVkZmxhcCIKLQlfYXJncys9 IiAtLWVuYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXN5bXZlcnMiCi0JX2FyZ3Mr PSIgbGliYXRfY3ZfaGF2ZV9pZnVuYz1ubyIKLQotCS4uL2djYy0ke19nY2NfdmVyc2lvbn0vY29u ZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0KLQl0b3VjaCAke3dya3NyY30v LmdjY19idWlsZF9kb25lCi19Ci0KLWRvX2J1aWxkKCkgewotCSMgRW5zdXJlIHdlIHVzZSBzYW5l IGVudmlyb25tZW50Ci0JdW5zZXQgQ0MgQ1hYIENQUCBMRCBBUyBBUiBSQU5MSUIgT0JKRFVNUCBS RUFERUxGIE5NCi0JdW5zZXQgQ0ZMQUdTIENYWEZMQUdTIENQUEZMQUdTIExERkxBR1MKLQlleHBv cnQgQ0ZMQUdTPSItT3MgLXBpcGUiIENYWEZMQUdTPSItT3MgLXBpcGUiCi0KLQlmb3IgZiBpbiBp bmNsdWRlIGxpYiBsaWJleGVjIGJpbiBzYmluOyBkbwotCQlpZiBbICEgLWQgJHtfc3lzcm9vdH0v dXNyLyR7Zn0gXTsgdGhlbgotCQkJbWtkaXIgLXAgJHtfc3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkK LQkJaWYgWyAhIC1oICR7X3N5c3Jvb3R9LyR7Zn0gXTsgdGhlbgotCQkJbG4gLXNmciAke19zeXNy b290fS91c3IvJHtmfSAke19zeXNyb290fS8ke2Z9Ci0JCWZpCi0JZG9uZQotCWxuIC1zZiBsaWIg JHtfc3lzcm9vdH0vdXNyL2xpYjY0Ci0JbG4gLXNmIHVzci9saWIgJHtfc3lzcm9vdH0vbGliNjQK LQotCV9iaW51dGlsc19idWlsZAotCV9nY2NfYm9vdHN0cmFwCi0JX2xpbnV4X2hlYWRlcnMKLQlf bXVzbF9idWlsZAotCV9saWJ1Y29udGV4dF9idWlsZAotCV9nY2NfYnVpbGQKLX0KLQotZG9faW5z dGFsbCgpIHsKLQlmb3IgZiBpbiBpbmNsdWRlIGxpYiBsaWJleGVjIGJpbiBzYmluOyBkbwotCQlp ZiBbICEgLWQgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfSBdOyB0aGVuCi0JCQlta2Rp ciAtcCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZpCi0JCWlmIFsgISAtaCAk e0RFU1RESVJ9LyR7X3N5c3Jvb3R9LyR7Zn0gXTsgdGhlbgotCQkJbG4gLXNmciAke0RFU1RESVJ9 LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9IFwKLQkJCQkke0RFU1RESVJ9LyR7X3N5c3Jvb3R9LyR7Zn0K LQkJZmkKLQlkb25lCi0JbG4gLXNmIGxpYiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWI2 NAotCWxuIC1zZiB1c3IvbGliICR7REVTVERJUn0vJHtfc3lzcm9vdH0vbGliNjQKLQotCSMgaW5z dGFsbCBsaW51eCBBUEkgaGVhZGVycwotCWNkICR7d3Jrc3JjfS9saW51eC0ke19saW51eF92ZXJz aW9ufQotCW1ha2UgQVJDSD1hcm02NCBJTlNUQUxMX0hEUl9QQVRIPSR7REVTVERJUn0vJHtfc3lz cm9vdH0vdXNyIGhlYWRlcnNfaW5zdGFsbAotCXJtIC1mICQoZmluZCAke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9L3Vzci9pbmNsdWRlIC1uYW1lIC5pbnN0YWxsIC1vciAtbmFtZSAuLmluc3RhbGwuY21k KQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlL2RybQotCi0JIyBp bnN0YWxsIGNyb3NzIGJpbnV0aWxzCi0JY2QgJHt3cmtzcmN9L2JpbnV0aWxzLWJ1aWxkCi0JbWFr ZSBERVNURElSPSR7REVTVERJUn0gaW5zdGFsbAotCi0JIyBpbnN0YWxsIGNyb3NzIGdjYwotCWNk ICR7d3Jrc3JjfS9nY2MtYnVpbGQKLQltYWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0K LQkjIG1vdmUgbGliY2MxLnNvKiB0byB0aGUgc3lzcm9vdAotCW12ICR7REVTVERJUn0vdXNyL2xp Yi9saWJjYzEuc28qICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCi0JIyBpbnN0YWxs IG11c2wgbGliYyBmb3IgdGFyZ2V0Ci0JY2QgJHt3cmtzcmN9L211c2wtJHtfbXVzbF92ZXJzaW9u fQotCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9LyR7X3N5c3Jvb3R9IGluc3RhbGwKLQotCSMgUmVt b3ZlIHVzZWxlc3MgaGVhZGVycy4KLQlybSAtcmYgJHtERVNURElSfS91c3IvbGliL2djYy8ke190 cmlwbGV0fS8qL2luY2x1ZGUtZml4ZWQKLQotCSMgTWFrZSBsZC1tdXNsLnNvIHN5bWxpbmtzIHJl bGF0aXZlLgotCWxuIC1zZiBsaWJjLnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYi9s ZC1tdXNsLWFhcmNoNjQuc28uMQotCi0JIyBzeW1saW5rcyBmb3IgZ25hcmwgYW5kIGduYXQgc2hh cmVkIGxpYnJhcmllcwotCV9tYWpvcnZlcj0ke19nY2NfdmVyc2lvbiUuKi4qfQotCV9hZGFsaWI9 dXNyL2xpYi9nY2MvJHtfdHJpcGxldH0vJHtfZ2NjX3ZlcnNpb259L2FkYWxpYgotCW12IC12ICR7 REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmFybC0ke19tYWpvcnZlcn0uc28gJHtERVNURElSfS8k e19zeXNyb290fS91c3IvbGliCi0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXQt JHtfbWFqb3J2ZXJ9LnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCWxuIC1zdmYg bGliZ25hcmwtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXJsLnNvCi0JbG4gLXN2ZiBsaWJnbmF0LSR7 X21ham9ydmVyfS5zbyBsaWJnbmF0LnNvCi0Jcm0gLXZmICR7REVTVERJUn0vJHtfYWRhbGlifS9s aWJnbmF7cmwsdH0uc28KLQotCSMgV2UgbmVlZCB0byBidWlsZCBsaWJhdG9taWMgaW4gdGFyZ2V0 IGdjYyBhcyBnY2NnbyBuZWVkcyBpdCB0bwotCSMgYnVpbGQuLi4gYnV0IGl0J3Mgbm90IG5lZWRl ZCBhdCBydW50aW1lLCBzbyByZW1vdmUgaXQgZnJvbSB0aGUKLQkjIGRlc3RkaXIgc28gaXQgZG9l c24ndCBjb25mbGljdCB3aXRoIHRoZSBsaWJhdG9taWMgcGFja2FnZQotCXJtIC1mICR7REVTVERJ Un0vJHtfc3lzcm9vdH0vdXNyL2xpYi9saWJhdG9taWMuKgotCi0JIyBSZW1vdmUgdW5uZWNlc3Nh cnkgc3R1ZmYKLQlybSAtZiAke0RFU1RESVJ9L3Vzci9saWIqL2xpYmliZXJ0eS5hCi0Jcm0gLXJm ICR7REVTVERJUn0vdXNyL3NoYXJlCi0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0ve2V0 Yyx2YXJ9Ci0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL3tzYmluLHNoYXJlLGxp YmV4ZWN9Ci0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS9saWJleGVjCi0Jcm0gLWYgJHtE RVNURElSfS8ke19zeXNyb290fS9saWIvKi5weQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9v dH0vc2JpbgotfQotCiBjcm9zcy1hYXJjaDY0LWxpbnV4LW11c2wtbGliY19wYWNrYWdlKCkgewog CXNob3J0X2Rlc2MrPSIgLSBsaWJjIGZpbGVzIgogCW5vc3RyaXA9eWVzCiAJbm9zaGxpYnByb3Zp ZGVzPXllcwogCW5vdmVyaWZ5cmRlcHM9eWVzCisKIAlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUg JHtfc3lzcm9vdH0KKwkJdm1vdmUgdXNyLyR7Y3Jvc3NfdHJpcGxldH0KIAl9CiB9Cg== --===============2295242329960993338==--