From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Christian Dersch To: git-commits@fedoraproject.org Subject: [rpms/python-photutils] epel10.2: Added numpy 1.14 fix https://github.com/astropy/photutils/pull/639 Date: Sat, 04 Jul 2026 03:10:43 GMT Message-ID: <178313464354.1.11973496405745203746.rpms-python-photutils-6b7e29dcb1f4@fedoraproject.org> List-ID: X-Git-Repo: rpms/python-photutils X-Git-Branch: epel10.2 X-Git-Rev: 6b7e29dcb1f4d188fbd6d126f30cd01eb34e50b0 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvcHl0aG9uLXBob3R1 dGlscwpCcmFuY2ggOiBlcGVsMTAuMgpDb21taXQgOiA2YjdlMjlkY2IxZjRkMTg4ZmJkNmQxMjZm MzBjZDAxZWIzNGU1MGIwCkF1dGhvciA6IENocmlzdGlhbiBEZXJzY2ggPGx1cGluaXhAbWFpbGJv eC5vcmc+CkRhdGUgICA6IDIwMTgtMDItMTRUMDQ6MDI6NDUrMDE6MDAKU3RhdHMgIDogKzE3MDUv LTEgaW4gMiBmaWxlKHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3Jw bXMvcHl0aG9uLXBob3R1dGlscy9jLzZiN2UyOWRjYjFmNGQxODhmYmQ2ZDEyNmYzMGNkMDFlYjM0 ZTUwYjA/YnJhbmNoPWVwZWwxMC4yCgpMb2c6CkFkZGVkIG51bXB5IDEuMTQgZml4IGh0dHBzOi8v Z2l0aHViLmNvbS9hc3Ryb3B5L3Bob3R1dGlscy9wdWxsLzYzOQoKLS0tCmRpZmYgLS1naXQgYS9w eXRob24tcGhvdHV0aWxzLWZpeGVzLWZvci1udW1weS0xLjE0LnBhdGNoIGIvcHl0aG9uLXBob3R1 dGlscy1maXhlcy1mb3ItbnVtcHktMS4xNC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi5hZmUyYWJkCi0tLSAvZGV2L251bGwKKysrIGIvcHl0aG9uLXBob3R1dGlscy1m aXhlcy1mb3ItbnVtcHktMS4xNC5wYXRjaApAQCAtMCwwICsxLDE3MDEgQEAKK2RpZmYgLU5hdXIg cGhvdHV0aWxzLTAuNC9kb2NzL2FwZXJ0dXJlLnJzdCBwaG90dXRpbHMtMC40LmZpeGVkL2RvY3Mv YXBlcnR1cmUucnN0CistLS0gcGhvdHV0aWxzLTAuNC9kb2NzL2FwZXJ0dXJlLnJzdAkyMDE3LTEw LTMwIDE1OjM4OjE4LjAwMDAwMDAwMCArMDEwMAorKysrIHBob3R1dGlscy0wLjQuZml4ZWQvZG9j cy9hcGVydHVyZS5yc3QJMjAxOC0wMi0xNCAwMzo1NjowNy4wNjQ1MjI2MzQgKzAxMDAKK0BAIC0x MjIsMTIgKzEyMiwxMyBAQAorICAgICA+Pj4gZnJvbSBwaG90dXRpbHMgaW1wb3J0IGFwZXJ0dXJl X3Bob3RvbWV0cnkKKyAgICAgPj4+IGRhdGEgPSBucC5vbmVzKCgxMDAsIDEwMCkpCisgICAgID4+ PiBwaG90X3RhYmxlID0gYXBlcnR1cmVfcGhvdG9tZXRyeShkYXRhLCBhcGVydHVyZXMpCistICAg ID4+PiBwcmludChwaG90X3RhYmxlKSAgICAjIGRvY3Rlc3Q6ICtTS0lQCistICAgICBpZCB4Y2Vu dGVyIHljZW50ZXIgIGFwZXJ0dXJlX3N1bQorKyAgICA+Pj4gcGhvdF90YWJsZVsnYXBlcnR1cmVf c3VtJ10uaW5mby5mb3JtYXQgPSAnJS44ZycgICMgZm9yIGNvbnNpc3RlbnQgdGFibGUgb3V0cHV0 CisrICAgID4+PiBwcmludChwaG90X3RhYmxlKQorKyAgICAgaWQgeGNlbnRlciB5Y2VudGVyIGFw ZXJ0dXJlX3N1bQorICAgICAgICAgICBwaXggICAgIHBpeAorLSAgICAtLS0gLS0tLS0tLSAtLS0t LS0tIC0tLS0tLS0tLS0tLS0KKy0gICAgICAxICAgIDMwLjAgICAgMzAuMCAyOC4yNzQzMzM4ODIz CistICAgICAgMiAgICA0MC4wICAgIDQwLjAgMjguMjc0MzMzODgyMworKyAgICAtLS0gLS0tLS0t LSAtLS0tLS0tIC0tLS0tLS0tLS0tLQorKyAgICAgIDEgICAgMzAuMCAgICAzMC4wICAgIDI4LjI3 NDMzNAorKyAgICAgIDIgICAgNDAuMCAgICA0MC4wICAgIDI4LjI3NDMzNAorIAorIFRoaXMgZnVu Y3Rpb24gcmV0dXJucyB0aGUgcmVzdWx0cyBvZiB0aGUgcGhvdG9tZXRyeSBpbiBhbiBBc3Ryb3B5 CisgYH5hc3Ryb3B5LnRhYmxlLlFUYWJsZWAuICBJbiB0aGlzIGV4YW1wbGUsIHRoZSB0YWJsZSBo YXMgZm91ciBjb2x1bW5zLAorQEAgLTE1OSw3ICsxNjAsNyBAQAorIAorICAgICA+Pj4gcGhvdF90 YWJsZSA9IGFwZXJ0dXJlX3Bob3RvbWV0cnkoZGF0YSwgYXBlcnR1cmVzLCBtZXRob2Q9J3N1YnBp eGVsJywKKyAgICAgLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YnBpeGVs cz01KQorLSAgICA+Pj4gcHJpbnQocGhvdF90YWJsZSkgICAgIyBkb2N0ZXN0OiArU0tJUAorKyAg ICA+Pj4gcHJpbnQocGhvdF90YWJsZSkKKyAgICAgIGlkIHhjZW50ZXIgeWNlbnRlciBhcGVydHVy ZV9zdW0KKyAgICAgICAgICAgcGl4ICAgICBwaXgKKyAgICAgLS0tIC0tLS0tLS0gLS0tLS0tLSAt LS0tLS0tLS0tLS0KK0BAIC0xOTIsMTIgKzE5MywxNCBAQAorICAgICA+Pj4gcmFkaWkgPSBbMy4s IDQuLCA1Ll0KKyAgICAgPj4+IGFwZXJ0dXJlcyA9IFtDaXJjdWxhckFwZXJ0dXJlKHBvc2l0aW9u cywgcj1yKSBmb3IgciBpbiByYWRpaV0KKyAgICAgPj4+IHBob3RfdGFibGUgPSBhcGVydHVyZV9w aG90b21ldHJ5KGRhdGEsIGFwZXJ0dXJlcykKKy0gICAgPj4+IHByaW50KHBob3RfdGFibGUpICAg ICMgZG9jdGVzdDogK1NLSVAKKysgICAgPj4+IGZvciBjb2wgaW4gcGhvdF90YWJsZS5jb2xuYW1l czoKKysgICAgLi4uICAgICBwaG90X3RhYmxlW2NvbF0uaW5mby5mb3JtYXQgPSAnJS44ZycgICMg Zm9yIGNvbnNpc3RlbnQgdGFibGUgb3V0cHV0CisrICAgID4+PiBwcmludChwaG90X3RhYmxlKQor ICAgICAgaWQgeGNlbnRlciB5Y2VudGVyIGFwZXJ0dXJlX3N1bV8wIGFwZXJ0dXJlX3N1bV8xIGFw ZXJ0dXJlX3N1bV8yCisgICAgICAgICAgIHBpeCAgICAgcGl4CisgICAgIC0tLSAtLS0tLS0tIC0t LS0tLS0gLS0tLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0KKy0gICAg ICAxICAgIDMwLjAgICAgMzAuMCAgMjguMjc0MzMzODgyMyAgNTAuMjY1NDgyNDU3NCAgNzguNTM5 ODE2MzM5NworLSAgICAgIDIgICAgNDAuMCAgICA0MC4wICAyOC4yNzQzMzM4ODIzICA1MC4yNjU0 ODI0NTc0ICA3OC41Mzk4MTYzMzk3CisrICAgICAgMSAgICAgIDMwICAgICAgMzAgICAgICAyOC4y NzQzMzQgICAgICA1MC4yNjU0ODIgICAgICA3OC41Mzk4MTYKKysgICAgICAyICAgICAgNDAgICAg ICA0MCAgICAgIDI4LjI3NDMzNCAgICAgIDUwLjI2NTQ4MiAgICAgIDc4LjUzOTgxNgorIAorIEZv ciBtdWx0aXBsZSBhcGVydHVyZXMsIHRoZSBvdXRwdXQgdGFibGUgY29sdW1uIG5hbWVzIGFyZSBh cHBlbmRlZAorIHdpdGggdGhlIGBgcG9zaXRpb25zYGAgaW5kZXguCitAQCAtMjEyLDEyICsyMTUs MTQgQEAKKyAgICAgPj4+IHRoZXRhID0gbnAucGkgLyA0LgorICAgICA+Pj4gYXBlcnR1cmVzID0g RWxsaXB0aWNhbEFwZXJ0dXJlKHBvc2l0aW9ucywgYSwgYiwgdGhldGEpCisgICAgID4+PiBwaG90 X3RhYmxlID0gYXBlcnR1cmVfcGhvdG9tZXRyeShkYXRhLCBhcGVydHVyZXMpCistICAgID4+PiBw cmludChwaG90X3RhYmxlKSAgICAjIGRvY3Rlc3Q6ICtTS0lQCistICAgICBpZCB4Y2VudGVyIHlj ZW50ZXIgIGFwZXJ0dXJlX3N1bQorKyAgICA+Pj4gZm9yIGNvbCBpbiBwaG90X3RhYmxlLmNvbG5h bWVzOgorKyAgICAuLi4gICAgIHBob3RfdGFibGVbY29sXS5pbmZvLmZvcm1hdCA9ICclLjhnJyAg IyBmb3IgY29uc2lzdGVudCB0YWJsZSBvdXRwdXQKKysgICAgPj4+IHByaW50KHBob3RfdGFibGUp CisrICAgICBpZCB4Y2VudGVyIHljZW50ZXIgYXBlcnR1cmVfc3VtCisgICAgICAgICAgIHBpeCAg ICAgcGl4CistICAgIC0tLSAtLS0tLS0tIC0tLS0tLS0gLS0tLS0tLS0tLS0tLQorLSAgICAgIDEg ICAgMzAuMCAgICAzMC4wIDQ3LjEyMzg4OTgwMzgKKy0gICAgICAyICAgIDQwLjAgICAgNDAuMCA0 Ny4xMjM4ODk4MDM4CisrICAgIC0tLSAtLS0tLS0tIC0tLS0tLS0gLS0tLS0tLS0tLS0tCisrICAg ICAgMSAgICAgIDMwICAgICAgMzAgICAgIDQ3LjEyMzg5CisrICAgICAgMiAgICAgIDQwICAgICAg NDAgICAgIDQ3LjEyMzg5CisgCisgQWdhaW4sIGZvciBtdWx0aXBsZSBhcGVydHVyZXMgb25lIHNo b3VsZCBpbnB1dCBhIGxpc3Qgb2YgYXBlcnR1cmUKKyBvYmplY3RzLCBlYWNoIHdpdGggaWRlbnRp Y2FsIHBvc2l0aW9uczo6CitAQCAtMjI4LDEyICsyMzMsMTQgQEAKKyAgICAgPj4+IGFwZXJ0dXJl cyA9IFtFbGxpcHRpY2FsQXBlcnR1cmUocG9zaXRpb25zLCBhPWFpLCBiPWJpLCB0aGV0YT10aGV0 YSkKKyAgICAgLi4uICAgICAgICAgICAgICBmb3IgKGFpLCBiaSkgaW4gemlwKGEsIGIpXQorICAg ICA+Pj4gcGhvdF90YWJsZSA9IGFwZXJ0dXJlX3Bob3RvbWV0cnkoZGF0YSwgYXBlcnR1cmVzKQor LSAgICA+Pj4gcHJpbnQocGhvdF90YWJsZSkgICAgIyBkb2N0ZXN0OiArU0tJUAorKyAgICA+Pj4g Zm9yIGNvbCBpbiBwaG90X3RhYmxlLmNvbG5hbWVzOgorKyAgICAuLi4gICAgIHBob3RfdGFibGVb Y29sXS5pbmZvLmZvcm1hdCA9ICclLjhnJyAgIyBmb3IgY29uc2lzdGVudCB0YWJsZSBvdXRwdXQK KysgICAgPj4+IHByaW50KHBob3RfdGFibGUpCisgICAgICBpZCB4Y2VudGVyIHljZW50ZXIgYXBl cnR1cmVfc3VtXzAgYXBlcnR1cmVfc3VtXzEgYXBlcnR1cmVfc3VtXzIKKyAgICAgICAgICAgcGl4 ICAgICBwaXgKKyAgICAgLS0tIC0tLS0tLS0gLS0tLS0tLSAtLS0tLS0tLS0tLS0tLSAtLS0tLS0t LS0tLS0tLSAtLS0tLS0tLS0tLS0tLQorLSAgICAgIDEgICAgMzAuMCAgICAzMC4wICA0Ny4xMjM4 ODk4MDM4ICA3NS4zOTgyMjM2ODYyICAxMDkuOTU1NzQyODc2CistICAgICAgMiAgICA0MC4wICAg IDQwLjAgIDQ3LjEyMzg4OTgwMzggIDc1LjM5ODIyMzY4NjIgIDEwOS45NTU3NDI4NzYKKysgICAg ICAxICAgICAgMzAgICAgICAzMCAgICAgICA0Ny4xMjM4OSAgICAgIDc1LjM5ODIyNCAgICAgIDEw OS45NTU3NAorKyAgICAgIDIgICAgICA0MCAgICAgIDQwICAgICAgIDQ3LjEyMzg5ICAgICAgNzUu Mzk4MjI0ICAgICAgMTA5Ljk1NTc0CisgCisgCisgQmFja2dyb3VuZCBTdWJ0cmFjdGlvbgorQEAg LTI2NywxMiArMjc0LDE0IEBACisgCisgICAgID4+PiBhcGVycyA9IFthcGVydHVyZXMsIGFubnVs dXNfYXBlcnR1cmVzXQorICAgICA+Pj4gcGhvdF90YWJsZSA9IGFwZXJ0dXJlX3Bob3RvbWV0cnko ZGF0YSwgYXBlcnMpCistICAgID4+PiBwcmludChwaG90X3RhYmxlKSAgICAjIGRvY3Rlc3Q6ICtT S0lQCisrICAgID4+PiBmb3IgY29sIGluIHBob3RfdGFibGUuY29sbmFtZXM6CisrICAgIC4uLiAg ICAgcGhvdF90YWJsZVtjb2xdLmluZm8uZm9ybWF0ID0gJyUuOGcnICAjIGZvciBjb25zaXN0ZW50 IHRhYmxlIG91dHB1dAorKyAgICA+Pj4gcHJpbnQocGhvdF90YWJsZSkKKyAgICAgIGlkIHhjZW50 ZXIgeWNlbnRlciBhcGVydHVyZV9zdW1fMCBhcGVydHVyZV9zdW1fMQorICAgICAgICAgICBwaXgg ICAgIHBpeAorICAgICAtLS0gLS0tLS0tLSAtLS0tLS0tIC0tLS0tLS0tLS0tLS0tIC0tLS0tLS0t LS0tLS0tCistICAgICAgMSAgICAzMC4wICAgIDMwLjAgIDI4LjI3NDMzMzg4MjMgIDg3Ljk2NDU5 NDMwMDUKKy0gICAgICAyICAgIDQwLjAgICAgNDAuMCAgMjguMjc0MzMzODgyMyAgODcuOTY0NTk0 MzAwNQorKyAgICAgIDEgICAgICAzMCAgICAgIDMwICAgICAgMjguMjc0MzM0ICAgICAgODcuOTY0 NTk0CisrICAgICAgMiAgICAgIDQwICAgICAgNDAgICAgICAyOC4yNzQzMzQgICAgICA4Ny45NjQ1 OTQKKyAKKyBOb3RlIHRoYXQgd2UgY2Fubm90IHNpbXBseSBzdWJ0cmFjdCB0aGUgYXBlcnR1cmUg c3VtcyBiZWNhdXNlIHRoZQorIGFwZXJ0dXJlcyBoYXZlIGRpZmZlcmVudCBhcmVhcy4KK0BAIC0y ODksMTEgKzI5OCwxMiBAQAorICAgICA+Pj4gYmtnX3N1bSA9IGJrZ19tZWFuICogYXBlcnR1cmVz LmFyZWEoKQorICAgICA+Pj4gZmluYWxfc3VtID0gcGhvdF90YWJsZVsnYXBlcnR1cmVfc3VtXzAn XSAtIGJrZ19zdW0KKyAgICAgPj4+IHBob3RfdGFibGVbJ3Jlc2lkdWFsX2FwZXJ0dXJlX3N1bSdd ID0gZmluYWxfc3VtCistICAgID4+PiBwcmludChwaG90X3RhYmxlWydyZXNpZHVhbF9hcGVydHVy ZV9zdW0nXSkgICAgIyBkb2N0ZXN0OiArRkxPQVRfQ01QCisrICAgID4+PiBwaG90X3RhYmxlWydy ZXNpZHVhbF9hcGVydHVyZV9zdW0nXS5pbmZvLmZvcm1hdCA9ICclLjhnJyAgIyBmb3IgY29uc2lz dGVudCB0YWJsZSBvdXRwdXQKKysgICAgPj4+IHByaW50KHBob3RfdGFibGVbJ3Jlc2lkdWFsX2Fw ZXJ0dXJlX3N1bSddKQorICAgICByZXNpZHVhbF9hcGVydHVyZV9zdW0KKyAgICAgLS0tLS0tLS0t LS0tLS0tLS0tLS0tCistICAgICAgICAtNy4xMDU0MjczNTc2ZS0xNQorLSAgICAgICAgLTcuMTA1 NDI3MzU3NmUtMTUKKysgICAgICAgICAgIC03LjEwNTQyNzRlLTE1CisrICAgICAgICAgICAtNy4x MDU0Mjc0ZS0xNQorIAorIFRoZSByZXN1bHQgaGVyZSBzaG91bGQgYmUgemVybyBiZWNhdXNlIGFs bCBvZiB0aGUgZGF0YSB2YWx1ZXMgYXJlIDEuMAorICh0aGUgdGlueSBkaWZmZXJlbmNlIGZyb20g MC4wIGlzIGR1ZSB0byBudW1lcmljYWwgcHJlY2lzaW9uKS4KK0BAIC0zMTYsMTIgKzMyNiwxNCBA QAorIAorICAgICA+Pj4gZXJyb3IgPSAwLjEgKiBkYXRhCisgICAgID4+PiBwaG90X3RhYmxlID0g YXBlcnR1cmVfcGhvdG9tZXRyeShkYXRhLCBhcGVydHVyZXMsIGVycm9yPWVycm9yKQorLSAgICA+ Pj4gcHJpbnQocGhvdF90YWJsZSkgICAgIyBkb2N0ZXN0OiArU0tJUAorLSAgICAgaWQgeGNlbnRl ciB5Y2VudGVyICBhcGVydHVyZV9zdW0gYXBlcnR1cmVfc3VtX2VycgorKyAgICA+Pj4gZm9yIGNv bCBpbiBwaG90X3RhYmxlLmNvbG5hbWVzOgorKyAgICAuLi4gICAgIHBob3RfdGFibGVbY29sXS5p bmZvLmZvcm1hdCA9ICclLjhnJyAgIyBmb3IgY29uc2lzdGVudCB0YWJsZSBvdXRwdXQKKysgICAg Pj4+IHByaW50KHBob3RfdGFibGUpCisrICAgICBpZCB4Y2VudGVyIHljZW50ZXIgYXBlcnR1cmVf c3VtIGFwZXJ0dXJlX3N1bV9lcnIKKyAgICAgICAgICAgcGl4ICAgICBwaXgKKy0gICAgLS0tIC0t LS0tLS0gLS0tLS0tLSAtLS0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tLS0tLS0KKy0gICAgICAxICAg IDMwLjAgICAgMzAuMCAyOC4yNzQzMzM4ODIzICAgMC41MzE3MzYxNTUyNzIKKy0gICAgICAyICAg IDQwLjAgICAgNDAuMCAyOC4yNzQzMzM4ODIzICAgMC41MzE3MzYxNTUyNzIKKysgICAgLS0tIC0t LS0tLS0gLS0tLS0tLSAtLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0tLQorKyAgICAgIDEgICAg ICAzMCAgICAgIDMwICAgIDI4LjI3NDMzNCAgICAgICAwLjUzMTczNjE2CisrICAgICAgMiAgICAg IDQwICAgICAgNDAgICAgMjguMjc0MzM0ICAgICAgIDAuNTMxNzM2MTYKKyAKKyBgYCdhcGVydHVy ZV9zdW1fZXJyJ2BgIHZhbHVlcyBhcmUgZ2l2ZW4gYnk6CisgCitAQCAtMzYzLDE4ICszNzUsMjAg QEAKKyAgICAgPj4+IGRhdGFbMiwgMl0gPSAxMDAuICAgIyBiYWQgcGl4ZWwKKyAgICAgPj4+IG1h c2tbMiwgMl0gPSBUcnVlCisgICAgID4+PiB0MSA9IGFwZXJ0dXJlX3Bob3RvbWV0cnkoZGF0YSwg YXBlcnR1cmUsIG1hc2s9bWFzaykKKy0gICAgPj4+IHByaW50KHQxWydhcGVydHVyZV9zdW0nXSkg ICAgIyBkb2N0ZXN0OiArRkxPQVRfQ01QCistICAgICBhcGVydHVyZV9zdW0KKy0gICAgIC0tLS0t LS0tLS0tLS0KKy0gICAgIDExLjU2NjM3MDYxNDQKKysgICAgPj4+IHQxWydhcGVydHVyZV9zdW0n XS5pbmZvLmZvcm1hdCA9ICclLjhnJyAgIyBmb3IgY29uc2lzdGVudCB0YWJsZSBvdXRwdXQKKysg ICAgPj4+IHByaW50KHQxWydhcGVydHVyZV9zdW0nXSkKKysgICAgYXBlcnR1cmVfc3VtCisrICAg IC0tLS0tLS0tLS0tLQorKyAgICAgICAxMS41NjYzNzEKKyAKKyBUaGUgcmVzdWx0IGlzIHZlcnkg ZGlmZmVyZW50IGlmIGEgYGBtYXNrYGAgaW1hZ2UgaXMgbm90IHByb3ZpZGVkOjoKKyAKKyAgICAg Pj4+IHQyID0gYXBlcnR1cmVfcGhvdG9tZXRyeShkYXRhLCBhcGVydHVyZSkKKy0gICAgPj4+IHBy aW50KHQyWydhcGVydHVyZV9zdW0nXSkgICAgIyBkb2N0ZXN0OiArRkxPQVRfQ01QCisrICAgID4+ PiB0MlsnYXBlcnR1cmVfc3VtJ10uaW5mby5mb3JtYXQgPSAnJS44ZycgICMgZm9yIGNvbnNpc3Rl bnQgdGFibGUgb3V0cHV0CisrICAgID4+PiBwcmludCh0MlsnYXBlcnR1cmVfc3VtJ10pCisgICAg IGFwZXJ0dXJlX3N1bQorLSAgICAtLS0tLS0tLS0tLS0tCistICAgIDExMS41NjYzNzA2MTQKKysg ICAgLS0tLS0tLS0tLS0tCisrICAgICAgIDExMS41NjYzNworIAorIAorIEFwZXJ0dXJlIFBob3Rv bWV0cnkgVXNpbmcgU2t5IENvb3JkaW5hdGVzCitkaWZmIC1OYXVyIHBob3R1dGlscy0wLjQvZG9j cy9iYWNrZ3JvdW5kLnJzdCBwaG90dXRpbHMtMC40LmZpeGVkL2RvY3MvYmFja2dyb3VuZC5yc3QK Ky0tLSBwaG90dXRpbHMtMC40L2RvY3MvYmFja2dyb3VuZC5yc3QJMjAxNy0xMC0zMCAxNTozODox OC4wMDAwMDAwMDAgKzAxMDAKKysrKyBwaG90dXRpbHMtMC40LmZpeGVkL2RvY3MvYmFja2dyb3Vu ZC5yc3QJMjAxOC0wMi0xNCAwMzo1NjowNy4wNjQ1MjI2MzQgKzAxMDAKK0BAIC03NiwxOCArNzYs MTggQEAKKyAKKyAgICAgPj4+IGltcG9ydCBudW1weSBhcyBucAorICAgICA+Pj4gZnJvbSBhc3Ry b3B5LnN0YXRzIGltcG9ydCBiaXdlaWdodF9sb2NhdGlvbgorLSAgICA+Pj4gcHJpbnQobnAubWVk aWFuKGRhdGEpKQorLSAgICA1LjIyNTUyOTUxODQKKy0gICAgPj4+IHByaW50KGJpd2VpZ2h0X2xv Y2F0aW9uKGRhdGEpKQorLSAgICA1LjE4Njc1OTc1NTUKKysgICAgPj4+IHByaW50KG5wLm1lZGlh bihkYXRhKSkgICMgZG9jdGVzdDogK0ZMT0FUX0NNUAorKyAgICA1LjIyNTUyOTUxODM5OTA0OAor KyAgICA+Pj4gcHJpbnQoYml3ZWlnaHRfbG9jYXRpb24oZGF0YSkpICAjIGRvY3Rlc3Q6ICtGTE9B VF9DTVAKKysgICAgNS4xODY3NTk3NTU0OTU3MjcKKyAKKyBTaW1pbGFybHksIHVzaW5nIHRoZSBt ZWRpYW4gYWJzb2x1dGUgZGV2aWF0aW9uIHRvIGVzdGltYXRlIHRoZQorIGJhY2tncm91bmQgbm9p c2UgbGV2ZWwgZ2l2ZXMgYSB2YWx1ZSB0aGF0IGlzIGxhcmdlciB0aGFuIHRoZSB0cnVlCisgdmFs dWUgb2YgMjo6CisgCisgICAgID4+PiBmcm9tIGFzdHJvcHkuc3RhdHMgaW1wb3J0IG1hZF9zdGQK Ky0gICAgPj4+IHByaW50KG1hZF9zdGQoZGF0YSkpICAgICMgZG9jdGVzdDogK0ZMT0FUX0NNUAor LSAgICAyLjE0NDM3MjgwMDkKKysgICAgPj4+IHByaW50KG1hZF9zdGQoZGF0YSkpICAjIGRvY3Rl c3Q6ICtGTE9BVF9DTVAKKysgICAgMi4xNDQzNzYwMDk2NTk4OTE0CisgCisgCisgU2lnbWEgQ2xp cHBpbmcgU291cmNlcworQEAgLTEwMyw4ICsxMDMsOCBAQAorIAorICAgICA+Pj4gZnJvbSBhc3Ry b3B5LnN0YXRzIGltcG9ydCBzaWdtYV9jbGlwcGVkX3N0YXRzCisgICAgID4+PiBtZWFuLCBtZWRp YW4sIHN0ZCA9IHNpZ21hX2NsaXBwZWRfc3RhdHMoZGF0YSwgc2lnbWE9My4wLCBpdGVycz01KQor LSAgICA+Pj4gcHJpbnQoKG1lYW4sIG1lZGlhbiwgc3RkKSkgICAgIyBkb2N0ZXN0OiArRkxPQVRf Q01QCistICAgICg1LjE5OTEzODY1MTYyMTc5MDgsIDUuMTU1NTg3NDMzMzU4MjkxMiwgMi4wOTQy NzUyMTIxMzI5NjkxKQorKyAgICA+Pj4gcHJpbnQoKG1lYW4sIG1lZGlhbiwgc3RkKSkgICMgZG9j dGVzdDogK0ZMT0FUX0NNUAorKyAgICAoNS4xOTkxMzg2NTE2MjE3OTMsIDUuMTU1NTg3NDMzMzU4 MjkxLCAyLjA5NDI3NTIxMjEzMjk2OSkKKyAKKyAKKyBNYXNraW5nIFNvdXJjZXMKK0BAIC0xMzIs OCArMTMyLDggQEAKKyAgICAgPj4+IGZyb20gcGhvdHV0aWxzIGltcG9ydCBtYWtlX3NvdXJjZV9t YXNrCisgICAgID4+PiBtYXNrID0gbWFrZV9zb3VyY2VfbWFzayhkYXRhLCBzbnI9MiwgbnBpeGVs cz01LCBkaWxhdGVfc2l6ZT0xMSkKKyAgICAgPj4+IG1lYW4sIG1lZGlhbiwgc3RkID0gc2lnbWFf Y2xpcHBlZF9zdGF0cyhkYXRhLCBzaWdtYT0zLjAsIG1hc2s9bWFzaykKKy0gICAgPj4+IHByaW50 KChtZWFuLCBtZWRpYW4sIHN0ZCkpICAgICMgZG9jdGVzdDogK0ZMT0FUX0NNUAorLSAgICAoNS4w MDEwMTM0NzU0NzU1Njk1LCA1LjAwMDU4NDkwNTYwNDM3NjMsIDEuOTcwODg3MTAwNjI2NTcyKQor KyAgICA+Pj4gcHJpbnQoKG1lYW4sIG1lZGlhbiwgc3RkKSkgICMgZG9jdGVzdDogK0ZMT0FUX0NN UAorKyAgICAoNS4wMDEwMTM0NzU0NzU1NjksIDUuMDAwNTg0OTA1NjA0Mzc2LCAxLjk3MDg4NzEw MDYyNjU3MikKKyAKKyBPZiBjb3Vyc2UsIHRoZSBzb3VyY2UgZGV0ZWN0aW9uIGFuZCBtYXNraW5n IHByb2NlZHVyZSBjYW4gYmUgaXRlcmF0ZWQKKyBmdXJ0aGVyLiAgRXZlbiB3aXRoIG9uZSBpdGVy YXRpb24gd2UgYXJlIHdpdGhpbiAwLjAyJSBvZiB0aGUgdHJ1ZQorQEAgLTIyOSw3ICsyMjksNyBA QAorICAgICA+Pj4geSwgeCA9IG5wLm1ncmlkWzpueSwgOm54XQorICAgICA+Pj4gZ3JhZGllbnQg PSAgeCAqIHkgLyA1MDAwLgorICAgICA+Pj4gZGF0YTIgPSBkYXRhICsgZ3JhZGllbnQKKy0gICAg Pj4+IHBsdC5pbXNob3coZGF0YTIsIG5vcm09bm9ybSwgb3JpZ2luPSdsb3dlcicsIGNtYXA9J0dy ZXlzX3InKSAgICAjIGRvY3Rlc3Q6ICtTS0lQCisrICAgID4+PiBwbHQuaW1zaG93KGRhdGEyLCBu b3JtPW5vcm0sIG9yaWdpbj0nbG93ZXInLCBjbWFwPSdHcmV5c19yJykgICMgZG9jdGVzdDogK1NL SVAKKyAKKyAuLiBwbG90OjoKKyAKK0BAIC0yNzEsMTAgKzI3MSwxMCBAQAorIAorIC4uIGRvY3Rl c3QtcmVxdWlyZXM6OiBzY2lweQorIAorLSAgICA+Pj4gcHJpbnQoYmtnLmJhY2tncm91bmRfbWVk aWFuKQorLSAgICAxMC44MjE5OTc4NjI2CistICAgID4+PiBwcmludChia2cuYmFja2dyb3VuZF9y bXNfbWVkaWFuKQorLSAgICAyLjI5ODgyMDUzOTY4CisrICAgID4+PiBwcmludChia2cuYmFja2dy b3VuZF9tZWRpYW4pICAjIGRvY3Rlc3Q6ICtGTE9BVF9DTVAKKysgICAgMTAuODIxOTk3ODYyNTYx NzkyCisrICAgID4+PiBwcmludChia2cuYmFja2dyb3VuZF9ybXNfbWVkaWFuKSAgIyBkb2N0ZXN0 OiArRkxPQVRfQ01QCisrICAgIDIuMjk4ODIwNTM5NjgzNzYyCisgCisgTGV0J3MgcGxvdCB0aGUg YmFja2dyb3VuZCBpbWFnZToKKyAKK0BAIC0zNDgsOCArMzQ4LDggQEAKKyAKKyAgICAgPj4+IGZy b20gc2NpcHkubmRpbWFnZSBpbXBvcnQgcm90YXRlCisgICAgID4+PiBkYXRhMyA9IHJvdGF0ZShk YXRhMiwgLTQ1LikKKy0gICAgPj4+IG5vcm0gPSBJbWFnZU5vcm1hbGl6ZShzdHJldGNoPVNxcnRT dHJldGNoKCkpICAgICMgZG9jdGVzdDogK1NLSVAKKy0gICAgPj4+IHBsdC5pbXNob3coZGF0YTMs IG9yaWdpbj0nbG93ZXInLCBjbWFwPSdHcmV5c19yJywgbm9ybT1ub3JtKSAgICAjIGRvY3Rlc3Q6 ICtTS0lQCisrICAgID4+PiBub3JtID0gSW1hZ2VOb3JtYWxpemUoc3RyZXRjaD1TcXJ0U3RyZXRj aCgpKSAgIyBkb2N0ZXN0OiArU0tJUAorKyAgICA+Pj4gcGx0Lmltc2hvdyhkYXRhMywgb3JpZ2lu PSdsb3dlcicsIGNtYXA9J0dyZXlzX3InLCBub3JtPW5vcm0pICAjIGRvY3Rlc3Q6ICtTS0lQCisg CisgLi4gcGxvdDo6CisgCitAQCAtMzg2LDggKzM4Niw4IEBACisgLi4gZG9jdGVzdC1yZXF1aXJl czo6IHNjaXB5CisgCisgICAgID4+PiBiYWNrMyA9IGJrZzMuYmFja2dyb3VuZCAqIH5tYXNrCist ICAgID4+PiBub3JtID0gSW1hZ2VOb3JtYWxpemUoc3RyZXRjaD1TcXJ0U3RyZXRjaCgpKSAgICAj IGRvY3Rlc3Q6ICtTS0lQCistICAgID4+PiBwbHQuaW1zaG93KGJhY2szLCBvcmlnaW49J2xvd2Vy JywgY21hcD0nR3JleXNfcicsIG5vcm09bm9ybSkgICAgIyBkb2N0ZXN0OiArU0tJUAorKyAgICA+ Pj4gbm9ybSA9IEltYWdlTm9ybWFsaXplKHN0cmV0Y2g9U3FydFN0cmV0Y2goKSkgICMgZG9jdGVz dDogK1NLSVAKKysgICAgPj4+IHBsdC5pbXNob3coYmFjazMsIG9yaWdpbj0nbG93ZXInLCBjbWFw PSdHcmV5c19yJywgbm9ybT1ub3JtKSAgIyBkb2N0ZXN0OiArU0tJUAorIAorIC4uIHBsb3Q6Ogor IAorZGlmZiAtTmF1ciBwaG90dXRpbHMtMC40L2RvY3MvZGV0ZWN0aW9uLnJzdCBwaG90dXRpbHMt MC40LmZpeGVkL2RvY3MvZGV0ZWN0aW9uLnJzdAorLS0tIHBob3R1dGlscy0wLjQvZG9jcy9kZXRl Y3Rpb24ucnN0CTIwMTctMTAtMzAgMTU6Mzg6MTguMDAwMDAwMDAwICswMTAwCisrKysgcGhvdHV0 aWxzLTAuNC5maXhlZC9kb2NzL2RldGVjdGlvbi5yc3QJMjAxOC0wMi0xNCAwMzo1NjowNy4wNjU1 MjI2NTAgKzAxMDAKK0BAIC02MiwyMCArNjIsMjMgQEAKKyAgICAgPj4+IGZyb20gcGhvdHV0aWxz IGltcG9ydCBEQU9TdGFyRmluZGVyCisgICAgID4+PiBkYW9maW5kID0gREFPU3RhckZpbmRlcihm d2htPTMuMCwgdGhyZXNob2xkPTUuKnN0ZCkgICAgIyBkb2N0ZXN0OiArUkVNT1RFX0RBVEEKKyAg ICAgPj4+IHNvdXJjZXMgPSBkYW9maW5kKGRhdGEgLSBtZWRpYW4pICAgICMgZG9jdGVzdDogK1JF TU9URV9EQVRBCisrICAgID4+PiBmb3IgY29sIGluIHNvdXJjZXMuY29sbmFtZXM6ICAgICMgZG9j dGVzdDogK1JFTU9URV9EQVRBCisrICAgIC4uLiAgICAgc291cmNlc1tjb2xdLmluZm8uZm9ybWF0 ID0gJyUuOGcnICAjIGZvciBjb25zaXN0ZW50IHRhYmxlIG91dHB1dAorICAgICA+Pj4gcHJpbnQo c291cmNlcykgICAgIyBkb2N0ZXN0OiArUkVNT1RFX0RBVEEKKy0gICAgIGlkICAgeGNlbnRyb2lk ICAgICB5Y2VudHJvaWQgICAuLi4gIHBlYWsgICAgICAgZmx1eCAgICAgICAgICAgbWFnCistICAg IC0tLSAtLS0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tLS0gLi4uIC0tLS0tLSAtLS0tLS0tLS0tLS0t IC0tLS0tLS0tLS0tLS0tLQorLSAgICAgIDEgMTQ0LjI0NzU2NzE2NCA2LjM3OTc5MDQyNzA0IC4u LiA2OTAzLjAgNS43MDE0MzAzMzAzOCAgLTEuODg5OTU5NTU0MzgKKy0gICAgICAyIDIwOC42Njkw Njg2MjggNi44MjA1ODA1Mzc3NyAuLi4gNzg5Ni4wIDYuNzIzMDY3MzA0NTUgIC0yLjA2ODkxODY0 NzQ4CistICAgICAgMyAyMTYuOTI2MTM2NjU1ICA2LjU3NzU5MzMxOTggLi4uIDIxOTUuMCAxLjY2 NzM3NDY3NTkxIC0wLjU1NTA4MzAwMjg2NAorLSAgICAgIDQgMzUxLjYyNTE5MDM4MyAgOC41NDU5 MDEzMjMzIC4uLiA2OTc3LjAgNS45MDA5MjU0ODE0NyAgLTEuOTI3MzAwMzI1NzEKKy0gICAgICA1 IDM3Ny41MTk5MDk5NTggMTIuMDY1NTAwOTk4NyAuLi4gMTI2MC4wIDEuMTE4NTYyMDM3ODEgLTAu MTIxNjUwMTg5OTY5CistICAgIC4uLiAgICAgICAgICAgLi4uICAgICAgICAgICAuLi4gLi4uICAg IC4uLiAgICAgICAgICAgLi4uICAgICAgICAgICAgIC4uLgorLSAgICAyODEgMjY4LjA0OTIzNjk3 OSAzOTcuOTI1MzcxNDQ2IC4uLiA5Mjk5LjAgNi4yMjAyMjU4NzU0MSAgLTEuOTg0NTE1Mzg4ODQK Ky0gICAgMjgyIDI2OC40NzUwNjgzOTIgMzk4LjAyMDk5ODI3MiAuLi4gODc1NC4wIDYuMDUwNzkx NjA1OTMgIC0xLjk1NDUzMDQ4OTM2CistICAgIDI4MyAgMjk5LjgwOTQzODIyIDM5OC4wMjc5MTE4 MTMgLi4uIDg4OTAuMCA2LjExODUzNDE2NjYzICAtMS45NjY2MTg0NzM4MworLSAgICAyODQgMzE1 LjY4OTQ0ODM0MyAgMzk4LjcwMjUxODkxIC4uLiA2NDg1LjAgNS41NTQ3MTEwNzc5MyAgLTEuODYx NjUzNjg2MzEKKy0gICAgMjg1IDM2MC40MzcyNDMwMzcgMzk4LjY5ODUzOTU1NSAuLi4gODA3OS4w IDUuMjY1NDkzMjEzNzkgIC0xLjgwMzU5NzY0MzQ1CisrICAgICBpZCB4Y2VudHJvaWQgeWNlbnRy b2lkIHNoYXJwbmVzcyAgLi4uIHNreSBwZWFrICAgIGZsdXggICAgICAgbWFnCisrICAgIC0tLSAt LS0tLS0tLS0gLS0tLS0tLS0tIC0tLS0tLS0tLS0gLi4uIC0tLSAtLS0tIC0tLS0tLS0tLSAtLS0t LS0tLS0tLS0KKysgICAgICAxIDE0NC4yNDc1NyA2LjM3OTc5MDQgMC41ODE1NjI1NyAuLi4gICAw IDY5MDMgNS43MDE0MzAzICAgLTEuODg5OTU5NgorKyAgICAgIDIgMjA4LjY2OTA3IDYuODIwNTgw NSAwLjQ4MzQ4OTY2IC4uLiAgIDAgNzg5NiA2LjcyMzA2NzMgICAtMi4wNjg5MTg2CisrICAgICAg MyAyMTYuOTI2MTQgNi41Nzc1OTMzIDAuNjkzNTk1MjUgLi4uICAgMCAyMTk1IDEuNjY3Mzc0NyAg ICAtMC41NTUwODMKKysgICAgICA0IDM1MS42MjUxOSA4LjU0NTkwMTMgMC40ODU3NzgzNCAuLi4g ICAwIDY5NzcgNS45MDA5MjU1ICAgLTEuOTI3MzAwMworKyAgICAgIDUgMzc3LjUxOTkxIDEyLjA2 NTUwMSAwLjUyMDM4NDg4IC4uLiAgIDAgMTI2MCAgMS4xMTg1NjIgIC0wLjEyMTY1MDE5CisrICAg IC4uLiAgICAgICAuLi4gICAgICAgLi4uICAgICAgICAuLi4gLi4uIC4uLiAgLi4uICAgICAgIC4u LiAgICAgICAgICAuLi4KKysgICAgMjgwIDM0NS41OTMwNiAzOTUuMzgyMjIgICAwLjM4NDA3OCAu Li4gICAwIDkzNTAgNS4wNTU5MDg0ICAgIC0xLjc1OTQ5OAorKyAgICAyODEgMjY4LjA0OTI0IDM5 Ny45MjUzNyAwLjI5NjUwNzE1IC4uLiAgIDAgOTI5OSA2LjIyMDIyNTkgICAtMS45ODQ1MTU0Cisr ICAgIDI4MiAyNjguNDc1MDcgICAzOTguMDIxIDAuMjgzMjU3NDEgLi4uICAgMCA4NzU0IDYuMDUw NzkxNiAgIC0xLjk1NDUzMDUKKysgICAgMjgzIDI5OS44MDk0NCAzOTguMDI3OTEgMC4zMjAxMTMz OSAuLi4gICAwIDg4OTAgNi4xMTg1MzQyICAgLTEuOTY2NjE4NQorKyAgICAyODQgMzE1LjY4OTQ1 IDM5OC43MDI1MiAwLjI5NTAyMTM4IC4uLiAgIDAgNjQ4NSA1LjU1NDcxMTEgICAtMS44NjE2NTM3 CisrICAgIDI4NSAzNjAuNDM3MjQgMzk4LjY5ODU0IDAuODExNDcxNDQgLi4uICAgMCA4MDc5IDUu MjY1NDkzMiAgIC0xLjgwMzU5NzYKKyAgICAgTGVuZ3RoID0gMjg1IHJvd3MKKyAKKyBMZXQncyBw bG90IHRoZSBpbWFnZSBhbmQgbWFyayB0aGUgbG9jYXRpb24gb2YgZGV0ZWN0ZWQgc291cmNlczoK K0BAIC0xNDMsMTkgKzE0NiwyMCBAQAorICAgICA+Pj4gbWVhbiwgbWVkaWFuLCBzdGQgPSBzaWdt YV9jbGlwcGVkX3N0YXRzKGRhdGEsIHNpZ21hPTMuMCkKKyAgICAgPj4+IHRocmVzaG9sZCA9IG1l ZGlhbiArICgxMC4wICogc3RkKQorICAgICA+Pj4gdGJsID0gZmluZF9wZWFrcyhkYXRhLCB0aHJl c2hvbGQsIGJveF9zaXplPTUpCisrICAgID4+PiB0YmxbJ3BlYWtfdmFsdWUnXS5pbmZvLmZvcm1h dCA9ICclLjhnJyAgIyBmb3IgY29uc2lzdGVudCB0YWJsZSBvdXRwdXQKKyAgICAgPj4+IHByaW50 KHRibFs6MTBdKSAgICAjIHByaW50IG9ubHkgdGhlIGZpcnN0IDEwIHBlYWtzCistICAgIHhfcGVh ayB5X3BlYWsgICBwZWFrX3ZhbHVlCistICAgIC0tLS0tLSAtLS0tLS0gLS0tLS0tLS0tLS0tLQor LSAgICAgICAyMzMgICAgICAwIDI3LjQ3Nzg1MjE5NzIKKy0gICAgICAgMjM2ICAgICAgMSAgMjcu MzM5NTE5NjI0CistICAgICAgIDI4OSAgICAgMjIgMzUuODUzMjc1OTk2NQorLSAgICAgICA0NDIg ICAgIDMxIDMwLjIzOTk5NDEzNzMKKy0gICAgICAgICAxICAgICA0MCAzNS41NDgyODYzMDAyCist ICAgICAgICA4OSAgICAgNTkgNDEuMjE5MDQ2OTI3OQorLSAgICAgICAgIDcgICAgIDcwIDMzLjI4 ODA2NDcwNDgKKy0gICAgICAgMjU4ICAgICA3NSAyNi41NjI0ODA4NTE4CistICAgICAgIDQ2MyAg ICAgODAgMjguNzU4ODIwNjY5MgorLSAgICAgICAxODIgICAgIDkzIDM4LjA4ODU2ODcyMDIKKysg ICAgeF9wZWFrIHlfcGVhayBwZWFrX3ZhbHVlCisrICAgIC0tLS0tLSAtLS0tLS0gLS0tLS0tLS0t LQorKyAgICAgICAyMzMgICAgICAwICAyNy40Nzc4NTIKKysgICAgICAgMjM2ICAgICAgMSAgIDI3 LjMzOTUyCisrICAgICAgIDI4OSAgICAgMjIgIDM1Ljg1MzI3NgorKyAgICAgICA0NDIgICAgIDMx ICAzMC4yMzk5OTQKKysgICAgICAgICAxICAgICA0MCAgMzUuNTQ4Mjg2CisrICAgICAgICA4OSAg ICAgNTkgIDQxLjIxOTA0NworKyAgICAgICAgIDcgICAgIDcwICAzMy4yODgwNjUKKysgICAgICAg MjU4ICAgICA3NSAgMjYuNTYyNDgxCisrICAgICAgIDQ2MyAgICAgODAgIDI4Ljc1ODgyMQorKyAg ICAgICAxODIgICAgIDkzICAzOC4wODg1NjkKKyAKKyBBbmQgbGV0J3MgcGxvdCB0aGUgbG9jYXRp b24gb2YgdGhlIGRldGVjdGVkIHBlYWtzIGluIHRoZSBpbWFnZToKKyAKK2RpZmYgLU5hdXIgcGhv dHV0aWxzLTAuNC9kb2NzL2dldHRpbmdfc3RhcnRlZC5yc3QgcGhvdHV0aWxzLTAuNC5maXhlZC9k b2NzL2dldHRpbmdfc3RhcnRlZC5yc3QKKy0tLSBwaG90dXRpbHMtMC40L2RvY3MvZ2V0dGluZ19z dGFydGVkLnJzdAkyMDE3LTEwLTMwIDE1OjM4OjE4LjAwMDAwMDAwMCArMDEwMAorKysrIHBob3R1 dGlscy0wLjQuZml4ZWQvZG9jcy9nZXR0aW5nX3N0YXJ0ZWQucnN0CTIwMTgtMDItMTQgMDM6NTY6 MDcuMDY1NTIyNjUwICswMTAwCitAQCAtMzEsMjAgKzMxLDIzIEBACisgICAgID4+PiBia2dfc2ln bWEgPSBtYWRfc3RkKGltYWdlKSAgICAjIGRvY3Rlc3Q6ICtSRU1PVEVfREFUQQorICAgICA+Pj4g ZGFvZmluZCA9IERBT1N0YXJGaW5kZXIoZndobT00LiwgdGhyZXNob2xkPTMuKmJrZ19zaWdtYSkg ICAgIyBkb2N0ZXN0OiArUkVNT1RFX0RBVEEKKyAgICAgPj4+IHNvdXJjZXMgPSBkYW9maW5kKGlt YWdlKSAgICAjIGRvY3Rlc3Q6ICtSRU1PVEVfREFUQQorKyAgICA+Pj4gZm9yIGNvbCBpbiBzb3Vy Y2VzLmNvbG5hbWVzOiAgIyBkb2N0ZXN0OiArUkVNT1RFX0RBVEEKKysgICAgLi4uICAgICBzb3Vy Y2VzW2NvbF0uaW5mby5mb3JtYXQgPSAnJS44ZycgICMgZm9yIGNvbnNpc3RlbnQgdGFibGUgb3V0 cHV0CisgICAgID4+PiBwcmludChzb3VyY2VzKSAgICAjIGRvY3Rlc3Q6ICtSRU1PVEVfREFUQQor LSAgICAgaWQgICB4Y2VudHJvaWQgICAgIHljZW50cm9pZCAgICAuLi4gIHBlYWsgICAgICAgZmx1 eCAgICAgICAgICAgbWFnCistICAgIC0tLSAtLS0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tLS0tIC4u LiAtLS0tLS0gLS0tLS0tLS0tLS0tLSAtLS0tLS0tLS0tLS0tLS0KKy0gICAgICAxIDE4Mi44Mzg2 NTg5MzggMC4xNjc2NzAxOTA1MzcgLi4uIDM4MjQuMCAyLjgwMjgzNDU5NDY5ICAtMS4xMTg5OTM2 NzMxMQorLSAgICAgIDIgMTg5LjIwNDMwODEzNCAwLjI2MDgxMzUyNTMzOCAuLi4gNDkxMy4wIDMu ODcyOTE4NTAzMTEgIC0xLjQ3MDA5NTg5NTgyCistICAgICAgMyA1Ljc5NDY0OTExNDMzICAyLjYx MjU0MjQwODA3IC4uLiA3NzUyLjAgIDQuMTAyOTEwNzI5NCAgLTEuNTMyNzMwMTY5MzcKKy0gICAg ICA0IDM2Ljg0NzA2Mjc4MDQgIDEuMzIyMDIyNzk1ODIgLi4uIDg3MzkuMCA3LjQzMTU4MTc4Nzkz ICAtMi4xNzc3MDMxNTQ0MQorLSAgICAgIDUgIDMuMjU2NTYwMjQ1MiAgNS40MTg5NTIwMTc0OCAu Li4gNjkzNS4wIDMuODEyNjI5ODQwNzQgIC0xLjQ1MzA2MTYwNjczCistICAgIC4uLiAgICAgICAg ICAgLi4uICAgICAgICAgICAgLi4uIC4uLiAgICAuLi4gICAgICAgICAgIC4uLiAgICAgICAgICAg ICAuLi4KKy0gICAgMTQ4IDEyNC4zMTMyNzI1NzkgIDE4OC4zMDUyMjkxNTkgLi4uIDY3MDIuMCA2 LjYzNTg1NDI5MzAzICAtMi4wNTQ3NDIxMDM1NgorLSAgICAxNDkgMjQuMjU3MjA3NDk2MiAgMTk0 LjcxNDk0MjgxNCAuLi4gODM0Mi4wICAzLjI2NzEwMzY5OTYgIC0xLjI4NTQwNzI5ODU4CistICAg IDE1MCAxMTYuNDQ5OTk4NDIyICAxOTUuMDU5MjMzMzI1IC4uLiAzMjk5LjAgMi44Nzc1MjIwNTc2 NiAgIC0xLjE0NzU0NjY1MzUKKy0gICAgMTUxIDE4Ljk1ODA4NjA2NDUgIDE5Ni4zNDIwNjUxMzIg Li4uIDM4NTQuMCAyLjM4MzUyOTYxMjI0IC0wLjk0MzA1MTM3OTU5NQorLSAgICAxNTIgMTExLjUy NTc1MTE5NiAgMTk1LjczMTkxNzk5NSAuLi4gODEwOS4wICA3LjkyNzg2MDc0MDEgIC0yLjI0Nzg5 MDAzMTk0CisrICAgICBpZCB4Y2VudHJvaWQgeWNlbnRyb2lkICBzaGFycG5lc3MgIC4uLiBza3kg cGVhayAgICBmbHV4ICAgICAgIG1hZworKyAgICAtLS0gLS0tLS0tLS0tIC0tLS0tLS0tLS0gLS0t LS0tLS0tLSAuLi4gLS0tIC0tLS0gLS0tLS0tLS0tIC0tLS0tLS0tLS0tCisrICAgICAgMSAxODIu ODM4NjYgMC4xNjc2NzAxOSAwLjg1MDk5ODczIC4uLiAgIDAgMzgyNCAyLjgwMjgzNDYgIC0xLjEx ODk5MzcKKysgICAgICAyIDE4OS4yMDQzMSAwLjI2MDgxMzUzICAwLjc0MDA0NzcgLi4uICAgMCA0 OTEzIDMuODcyOTE4NSAgLTEuNDcwMDk1OQorKyAgICAgIDMgNS43OTQ2NDkxICAyLjYxMjU0MjQg MC4zOTU4OTczMSAuLi4gICAwIDc3NTIgNC4xMDI5MTA3ICAtMS41MzI3MzAyCisrICAgICAgNCAz Ni44NDcwNjMgIDEuMzIyMDIyOCAwLjI5NTk0NTI4IC4uLiAgIDAgODczOSA3LjQzMTU4MTggIC0y LjE3NzcwMzIKKysgICAgICA1IDMuMjU2NTYwMiAgIDUuNDE4OTUyIDAuMzU5ODU0OTUgLi4uICAg MCA2OTM1IDMuODEyNjI5OCAgLTEuNDUzMDYxNgorKyAgICAuLi4gICAgICAgLi4uICAgICAgICAu Li4gICAgICAgIC4uLiAuLi4gLi4uICAuLi4gICAgICAgLi4uICAgICAgICAgLi4uCisrICAgIDE0 NyAxOTcuMjQ4NjQgIDE4Ni4xNjY0NyAwLjMxMjExNTMyIC4uLiAgIDAgODMwMiA3LjU4MTQ2Mjkg IC0yLjE5OTM4MjUKKysgICAgMTQ4IDEyNC4zMTMyNyAgMTg4LjMwNTIzICAwLjUzNjI3NDIgLi4u ICAgMCA2NzAyIDYuNjM1ODU0MyAgLTIuMDU0NzQyMQorKyAgICAxNDkgMjQuMjU3MjA3ICAxOTQu NzE0OTQgMC40NDE2OTU0NiAuLi4gICAwIDgzNDIgMy4yNjcxMDM3ICAtMS4yODU0MDczCisrICAg IDE1MCAgICAxMTYuNDUgIDE5NS4wNTkyMyAwLjY3MDgwNTQ3IC4uLiAgIDAgMzI5OSAyLjg3NzUy MjEgIC0xLjE0NzU0NjcKKysgICAgMTUxIDE4Ljk1ODA4NiAgMTk2LjM0MjA3IDAuNTY1MDIxMzkg Li4uICAgMCAzODU0IDIuMzgzNTI5NiAtMC45NDMwNTEzOAorKyAgICAxNTIgMTExLjUyNTc1ICAx OTUuNzMxOTIgMC40NTgyNzg1MiAuLi4gICAwIDgxMDkgNy45Mjc4NjA3ICAgIC0yLjI0Nzg5Cisg ICAgIExlbmd0aCA9IDE1MiByb3dzCisgCisgVXNpbmcgdGhlIGxpc3Qgb2Ygc291cmNlIGxvY2F0 aW9ucyAoYGB4Y2VudHJvaWRgYCBhbmQgYGB5Y2VudHJvaWRgYCksCitAQCAtNTksMjEgKzYyLDIz IEBACisgICAgID4+PiBwb3NpdGlvbnMgPSAoc291cmNlc1sneGNlbnRyb2lkJ10sIHNvdXJjZXNb J3ljZW50cm9pZCddKSAgICAjIGRvY3Rlc3Q6ICtSRU1PVEVfREFUQQorICAgICA+Pj4gYXBlcnR1 cmVzID0gQ2lyY3VsYXJBcGVydHVyZShwb3NpdGlvbnMsIHI9NC4pICAgICMgZG9jdGVzdDogK1JF TU9URV9EQVRBCisgICAgID4+PiBwaG90X3RhYmxlID0gYXBlcnR1cmVfcGhvdG9tZXRyeShpbWFn ZSwgYXBlcnR1cmVzKSAgICAjIGRvY3Rlc3Q6ICtSRU1PVEVfREFUQQorLSAgICA+Pj4gcHJpbnQo cGhvdF90YWJsZSkgICAjIGRvY3Rlc3Q6ICtTS0lQCistICAgICBpZCAgICAgIHhjZW50ZXIgICAg ICAgICAgICAgeWNlbnRlciAgICAgICAgYXBlcnR1cmVfc3VtCistICAgICAgICAgICAgICAgcGl4 ICAgICAgICAgICAgICAgICBwaXgKKy0gICAgLS0tIC0tLS0tLS0tLS0tLS0tLS0tLSAtLS0tLS0t LS0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tLS0KKy0gICAgICAxICAxODIuODM4NjU4OTM4MTMwOCAw LjE2NzY3MDE5MDUzNjkzNzUyIDE4MTIxLjc1OTQ4MzcKKy0gICAgICAyIDE4OS4yMDQzMDgxMzQw MzM4OCAwLjI2MDgxMzUyNTMzNzY2NTE2IDI5ODM2LjUxNTIxNTgKKy0gICAgICAzICA1Ljc5NDY0 OTExNDMyOTI0NiAgIDIuNjEyNTQyNDA4MDczNTQ3IDMzMTk3OS44MTkwMzcKKy0gICAgICA0ICAz Ni44NDcwNjI3ODA0MzU4MiAgMS4zMjIwMjI3OTU4MTUzMjU3IDE4MzcwNS4wOTMyODQKKy0gICAg ICA1IDMuMjU2NTYwMjQ1MjAwNzMyNSAgIDUuNDE4OTUyMDE3NDc2NTA4IDM0OTQ2OC45Nzg2MjcK Ky0gICAgLi4uICAgICAgICAgICAgICAgIC4uLiAgICAgICAgICAgICAgICAgLi4uICAgICAgICAg ICAuLi4KKy0gICAgMTQ4ICAxMjQuMzEzMjcyNTc5MzkzOSAgMTg4LjMwNTIyOTE1ODU4NjY4IDQ1 MDg0Ljg3Mzc4NjcKKy0gICAgMTQ5IDI0LjI1NzIwNzQ5NjIwOTAyNyAgMTk0LjcxNDk0MjgxNDE5 MjY1IDM1NTc3OC4wMDcyOTgKKy0gICAgMTUwIDExNi40NDk5OTg0MjE3NzgyNiAgMTk1LjA1OTIz MzMyNDgzMTE1IDMxMjMyLjkxMTc4MTgKKy0gICAgMTUxIDE4Ljk1ODA4NjA2NDQ4NTAxMyAgIDE5 Ni4zNDIwNjUxMzE2NDAxIDE2MjA3Ni4yNjI3NTIKKy0gICAgMTUyIDExMS41MjU3NTExOTYwNTkz MyAgMTk1LjczMTkxNzk5NDY5MzczIDgyNzk1LjcxNDU2NjEKKysgICAgPj4+IGZvciBjb2wgaW4g cGhvdF90YWJsZS5jb2xuYW1lczogICMgZG9jdGVzdDogK1JFTU9URV9EQVRBCisrICAgIC4uLiAg ICAgcGhvdF90YWJsZVtjb2xdLmluZm8uZm9ybWF0ID0gJyUuOGcnICAjIGZvciBjb25zaXN0ZW50 IHRhYmxlIG91dHB1dAorKyAgICA+Pj4gcHJpbnQocGhvdF90YWJsZSkgICMgZG9jdGVzdDogK1JF TU9URV9EQVRBCisrICAgICBpZCAgeGNlbnRlciAgIHljZW50ZXIgICBhcGVydHVyZV9zdW0KKysg ICAgICAgICAgIHBpeCAgICAgICBwaXgKKysgICAgLS0tIC0tLS0tLS0tLSAtLS0tLS0tLS0tIC0t LS0tLS0tLS0tLQorKyAgICAgIDEgMTgyLjgzODY2IDAuMTY3NjcwMTkgICAgMTgxMjEuNzU5Cisr ICAgICAgMiAxODkuMjA0MzEgMC4yNjA4MTM1MyAgICAyOTgzNi41MTUKKysgICAgICAzIDUuNzk0 NjQ5MSAgMi42MTI1NDI0ICAgIDMzMTk3OS44MgorKyAgICAgIDQgMzYuODQ3MDYzICAxLjMyMjAy MjggICAgMTgzNzA1LjA5CisrICAgICAgNSAzLjI1NjU2MDIgICA1LjQxODk1MiAgICAzNDk0Njgu OTgKKysgICAgLi4uICAgICAgIC4uLiAgICAgICAgLi4uICAgICAgICAgIC4uLgorKyAgICAxNDgg MTI0LjMxMzI3ICAxODguMzA1MjMgICAgNDUwODQuODc0CisrICAgIDE0OSAyNC4yNTcyMDcgIDE5 NC43MTQ5NCAgICAzNTU3NzguMDEKKysgICAgMTUwICAgIDExNi40NSAgMTk1LjA1OTIzICAgIDMx MjMyLjkxMgorKyAgICAxNTEgMTguOTU4MDg2ICAxOTYuMzQyMDcgICAgMTYyMDc2LjI2CisrICAg IDE1MiAxMTEuNTI1NzUgIDE5NS43MzE5MiAgICA4Mjc5NS43MTUKKyAgICAgTGVuZ3RoID0gMTUy IHJvd3MKKyAKKyBUaGUgc3VtIG9mIHRoZSBwaXhlbCB2YWx1ZXMgd2l0aGluIHRoZSBhcGVydHVy ZXMgYXJlIGdpdmVuIGluIHRoZQorZGlmZiAtTmF1ciBwaG90dXRpbHMtMC40L3Bob3R1dGlscy9h cGVydHVyZS90ZXN0cy90ZXN0X2FwZXJ0dXJlX3Bob3RvbWV0cnkucHkgcGhvdHV0aWxzLTAuNC5m aXhlZC9waG90dXRpbHMvYXBlcnR1cmUvdGVzdHMvdGVzdF9hcGVydHVyZV9waG90b21ldHJ5LnB5 CistLS0gcGhvdHV0aWxzLTAuNC9waG90dXRpbHMvYXBlcnR1cmUvdGVzdHMvdGVzdF9hcGVydHVy ZV9waG90b21ldHJ5LnB5CTIwMTctMTAtMzAgMTU6Mzg6MTguMDAwMDAwMDAwICswMTAwCisrKysg cGhvdHV0aWxzLTAuNC5maXhlZC9waG90dXRpbHMvYXBlcnR1cmUvdGVzdHMvdGVzdF9hcGVydHVy ZV9waG90b21ldHJ5LnB5CTIwMTgtMDItMTQgMDM6NTY6MDcuMDYzNTIyNjE5ICswMTAwCitAQCAt MTksOCArMTksMTAgQEAKKyBmcm9tIGFzdHJvcHkudGFibGUgaW1wb3J0IFRhYmxlCisgZnJvbSBh c3Ryb3B5LnRlc3RzLmhlbHBlciBpbXBvcnQgcmVtb3RlX2RhdGEKKyBpbXBvcnQgYXN0cm9weS51 bml0cyBhcyB1CisrZnJvbSBhc3Ryb3B5LnV0aWxzLmNvbXBhdCBpbXBvcnQgTlVNUFlfTFRfMV8x NAorIGZyb20gYXN0cm9weS53Y3MudXRpbHMgaW1wb3J0IHBpeGVsX3RvX3NreWNvb3JkCisgCisr CisgZnJvbSAuLmNvcmUgaW1wb3J0IGFwZXJ0dXJlX3Bob3RvbWV0cnkKKyBmcm9tIC4uY2lyY2xl IGltcG9ydCAoQ2lyY3VsYXJBcGVydHVyZSwgQ2lyY3VsYXJBbm51bHVzLCBTa3lDaXJjdWxhckFw ZXJ0dXJlLAorICAgICAgICAgICAgICAgICAgICAgICBTa3lDaXJjdWxhckFubnVsdXMpCitAQCAt NjY0LDY0ICs2NjYsMTE5IEBACisgICAgIHMgPSBTa3lDb29yZChbMSwgMl0sIFszLCA0XSwgdW5p dD0nZGVnJykKKyAKKyAgICAgYXBlciA9IFNreUNpcmN1bGFyQXBlcnR1cmUocywgcj0zKnUucGl4 KQorLSAgICBhX3JlcHIgPSAoJzxTa3lDaXJjdWxhckFwZXJ0dXJlKDxTa3lDb29yZCAoSUNSUyk6 IChyYSwgZGVjKSBpbiBkZWdcbicKKy0gICAgICAgICAgICAgICcgICAgWyggMS4sICAzLiksICgg Mi4sICA0LildPiwgcj0zLjAgcGl4KT4nKQorLSAgICBhX3N0ciA9ICgnQXBlcnR1cmU6IFNreUNp cmN1bGFyQXBlcnR1cmVcbnBvc2l0aW9uczogPFNreUNvb3JkICcKKy0gICAgICAgICAgICAgJyhJ Q1JTKTogKHJhLCBkZWMpIGluIGRlZ1xuICAgIFsoIDEuLCAgMy4pLCAoIDIuLCAgNC4pXT5cbicK Ky0gICAgICAgICAgICAgJ3I6IDMuMCBwaXgnKQorKyAgICBpZiBOVU1QWV9MVF8xXzE0OgorKyAg ICAgICAgYV9yZXByID0gKCc8U2t5Q2lyY3VsYXJBcGVydHVyZSg8U2t5Q29vcmQgKElDUlMpOiAo cmEsIGRlYykgaW4gZGVnXG4nCisrICAgICAgICAgICAgICAgICAgJyAgICBbKCAxLiwgIDMuKSwg KCAyLiwgIDQuKV0+LCByPTMuMCBwaXgpPicpCisrICAgICAgICBhX3N0ciA9ICgnQXBlcnR1cmU6 IFNreUNpcmN1bGFyQXBlcnR1cmVcbnBvc2l0aW9uczogPFNreUNvb3JkICcKKysgICAgICAgICAg ICAgICAgICcoSUNSUyk6IChyYSwgZGVjKSBpbiBkZWdcbiAgICBbKCAxLiwgIDMuKSwgKCAyLiwg IDQuKV0+XG4nCisrICAgICAgICAgICAgICAgICAncjogMy4wIHBpeCcpCisrICAgIGVsc2U6Cisr ICAgICAgICBhX3JlcHIgPSAoJzxTa3lDaXJjdWxhckFwZXJ0dXJlKDxTa3lDb29yZCAoSUNSUyk6 IChyYSwgZGVjKSBpbiBkZWdcbicKKysgICAgICAgICAgICAgICAgICAnICAgIFsoMS4sIDMuKSwg KDIuLCA0LildPiwgcj0zLjAgcGl4KT4nKQorKyAgICAgICAgYV9zdHIgPSAoJ0FwZXJ0dXJlOiBT a3lDaXJjdWxhckFwZXJ0dXJlXG5wb3NpdGlvbnM6IDxTa3lDb29yZCAnCisrICAgICAgICAgICAg ICAgICAnKElDUlMpOiAocmEsIGRlYykgaW4gZGVnXG4gICAgWygxLiwgMy4pLCAoMi4sIDQuKV0+ XG4nCisrICAgICAgICAgICAgICAgICAncjogMy4wIHBpeCcpCisrCisgICAgIGFzc2VydCByZXBy KGFwZXIpID09IGFfcmVwcgorICAgICBhc3NlcnQgc3RyKGFwZXIpID09IGFfc3RyCisgCisgICAg IGFwZXIgPSBTa3lDaXJjdWxhckFubnVsdXMocywgcl9pbj0zLip1LnBpeCwgcl9vdXQ9NSp1LnBp eCkKKy0gICAgYV9yZXByID0gKCc8U2t5Q2lyY3VsYXJBbm51bHVzKDxTa3lDb29yZCAoSUNSUyk6 IChyYSwgZGVjKSBpbiBkZWdcbicKKy0gICAgICAgICAgICAgICcgICAgWyggMS4sICAzLiksICgg Mi4sICA0LildPiwgcl9pbj0zLjAgcGl4LCByX291dD01LjAgcGl4KT4nKQorLSAgICBhX3N0ciA9 ICgnQXBlcnR1cmU6IFNreUNpcmN1bGFyQW5udWx1c1xucG9zaXRpb25zOiA8U2t5Q29vcmQgJwor LSAgICAgICAgICAgICAnKElDUlMpOiAocmEsIGRlYykgaW4gZGVnXG4gICAgWyggMS4sICAzLiks ICggMi4sICA0LildPlxuJworLSAgICAgICAgICAgICAncl9pbjogMy4wIHBpeFxucl9vdXQ6IDUu MCBwaXgnKQorKyAgICBpZiBOVU1QWV9MVF8xXzE0OgorKyAgICAgICAgYV9yZXByID0gKCc8U2t5 Q2lyY3VsYXJBbm51bHVzKDxTa3lDb29yZCAoSUNSUyk6IChyYSwgZGVjKSBpbiBkZWdcbicKKysg ICAgICAgICAgICAgICAgICAnICAgIFsoIDEuLCAgMy4pLCAoIDIuLCAgNC4pXT4sIHJfaW49My4w IHBpeCwgJworKyAgICAgICAgICAgICAgICAgICdyX291dD01LjAgcGl4KT4nKQorKyAgICAgICAg YV9zdHIgPSAoJ0FwZXJ0dXJlOiBTa3lDaXJjdWxhckFubnVsdXNcbnBvc2l0aW9uczogPFNreUNv b3JkICcKKysgICAgICAgICAgICAgICAgICcoSUNSUyk6IChyYSwgZGVjKSBpbiBkZWdcbiAgICBb KCAxLiwgIDMuKSwgKCAyLiwgIDQuKV0+XG4nCisrICAgICAgICAgICAgICAgICAncl9pbjogMy4w IHBpeFxucl9vdXQ6IDUuMCBwaXgnKQorKyAgICBlbHNlOgorKyAgICAgICAgYV9yZXByID0gKCc8 U2t5Q2lyY3VsYXJBbm51bHVzKDxTa3lDb29yZCAoSUNSUyk6IChyYSwgZGVjKSBpbiBkZWdcbicK KysgICAgICAgICAgICAgICAgICAnICAgIFsoMS4sIDMuKSwgKDIuLCA0LildPiwgcl9pbj0zLjAg cGl4LCByX291dD01LjAgcGl4KT4nKQorKyAgICAgICAgYV9zdHIgPSAoJ0FwZXJ0dXJlOiBTa3lD aXJjdWxhckFubnVsdXNcbnBvc2l0aW9uczogPFNreUNvb3JkICcKKysgICAgICAgICAgICAgICAg ICcoSUNSUyk6IChyYSwgZGVjKSBpbiBkZWdcbiAgICBbKDEuLCAzLiksICgyLiwgNC4pXT5cbicK KysgICAgICAgICAgICAgICAgICdyX2luOiAzLjAgcGl4XG5yX291dDogNS4wIHBpeCcpCisrCisg ICAgIGFzc2VydCByZXByKGFwZXIpID09IGFfcmVwcgorICAgICBhc3NlcnQgc3RyKGFwZXIpID09 IGFfc3RyCisgCisgICAgIGFwZXIgPSBTa3lFbGxpcHRpY2FsQXBlcnR1cmUocywgYT0zKnUucGl4 LCBiPTUqdS5waXgsIHRoZXRhPTE1KnUuZGVnKQorLSAgICBhX3JlcHIgPSAoJzxTa3lFbGxpcHRp Y2FsQXBlcnR1cmUoPFNreUNvb3JkIChJQ1JTKTogKHJhLCBkZWMpIGluICcKKy0gICAgICAgICAg ICAgICdkZWdcbiAgICBbKCAxLiwgIDMuKSwgKCAyLiwgIDQuKV0+LCBhPTMuMCBwaXgsIGI9NS4w IHBpeCwnCistICAgICAgICAgICAgICAnIHRoZXRhPTE1LjAgZGVnKT4nKQorLSAgICBhX3N0ciA9 ICgnQXBlcnR1cmU6IFNreUVsbGlwdGljYWxBcGVydHVyZVxucG9zaXRpb25zOiA8U2t5Q29vcmQg JworLSAgICAgICAgICAgICAnKElDUlMpOiAocmEsIGRlYykgaW4gZGVnXG4gICAgWyggMS4sICAz LiksICggMi4sICA0LildPlxuJworLSAgICAgICAgICAgICAnYTogMy4wIHBpeFxuYjogNS4wIHBp eFxudGhldGE6IDE1LjAgZGVnJykKKysgICAgaWYgTlVNUFlfTFRfMV8xNDoKKysgICAgICAgIGFf cmVwciA9ICgnPFNreUVsbGlwdGljYWxBcGVydHVyZSg8U2t5Q29vcmQgKElDUlMpOiAocmEsIGRl YykgaW4gJworKyAgICAgICAgICAgICAgICAgICdkZWdcbiAgICBbKCAxLiwgIDMuKSwgKCAyLiwg IDQuKV0+LCBhPTMuMCBwaXgsIGI9NS4wIHBpeCwnCisrICAgICAgICAgICAgICAgICAgJyB0aGV0 YT0xNS4wIGRlZyk+JykKKysgICAgICAgIGFfc3RyID0gKCdBcGVydHVyZTogU2t5RWxsaXB0aWNh bEFwZXJ0dXJlXG5wb3NpdGlvbnM6IDxTa3lDb29yZCAnCisrICAgICAgICAgICAgICAgICAnKElD UlMpOiAocmEsIGRlYykgaW4gZGVnXG4gICAgWyggMS4sICAzLiksICggMi4sICA0LildPlxuJwor KyAgICAgICAgICAgICAgICAgJ2E6IDMuMCBwaXhcbmI6IDUuMCBwaXhcbnRoZXRhOiAxNS4wIGRl ZycpCisrICAgIGVsc2U6CisrICAgICAgICBhX3JlcHIgPSAoJzxTa3lFbGxpcHRpY2FsQXBlcnR1 cmUoPFNreUNvb3JkIChJQ1JTKTogKHJhLCBkZWMpIGluICcKKysgICAgICAgICAgICAgICAgICAn ZGVnXG4gICAgWygxLiwgMy4pLCAoMi4sIDQuKV0+LCBhPTMuMCBwaXgsIGI9NS4wIHBpeCwnCisr ICAgICAgICAgICAgICAgICAgJyB0aGV0YT0xNS4wIGRlZyk+JykKKysgICAgICAgIGFfc3RyID0g KCdBcGVydHVyZTogU2t5RWxsaXB0aWNhbEFwZXJ0dXJlXG5wb3NpdGlvbnM6IDxTa3lDb29yZCAn CisrICAgICAgICAgICAgICAgICAnKElDUlMpOiAocmEsIGRlYykgaW4gZGVnXG4gICAgWygxLiwg My4pLCAoMi4sIDQuKV0+XG4nCisrICAgICAgICAgICAgICAgICAnYTogMy4wIHBpeFxuYjogNS4w IHBpeFxudGhldGE6IDE1LjAgZGVnJykKKysKKyAgICAgYXNzZXJ0IHJlcHIoYXBlcikgPT0gYV9y ZXByCisgICAgIGFzc2VydCBzdHIoYXBlcikgPT0gYV9zdHIKKyAKKyAgICAgYXBlciA9IFNreUVs bGlwdGljYWxBbm51bHVzKHMsIGFfaW49Myp1LnBpeCwgYV9vdXQ9NSp1LnBpeCwgYl9vdXQ9Myp1 LnBpeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZXRhPTE1KnUuZGVnKQor LSAgICBhX3JlcHIgPSAoJzxTa3lFbGxpcHRpY2FsQW5udWx1cyg8U2t5Q29vcmQgKElDUlMpOiAo cmEsIGRlYykgaW4gJworLSAgICAgICAgICAgICAgJ2RlZ1xuICAgIFsoIDEuLCAgMy4pLCAoIDIu LCAgNC4pXT4sIGFfaW49My4wIHBpeCwgJworLSAgICAgICAgICAgICAgJ2Ffb3V0PTUuMCBwaXgs IGJfb3V0PTMuMCBwaXgsIHRoZXRhPTE1LjAgZGVnKT4nKQorLSAgICBhX3N0ciA9ICgnQXBlcnR1 cmU6IFNreUVsbGlwdGljYWxBbm51bHVzXG5wb3NpdGlvbnM6IDxTa3lDb29yZCAnCistICAgICAg ICAgICAgICcoSUNSUyk6IChyYSwgZGVjKSBpbiBkZWdcbiAgICBbKCAxLiwgIDMuKSwgKCAyLiwg IDQuKV0+XG4nCistICAgICAgICAgICAgICdhX2luOiAzLjAgcGl4XG5hX291dDogNS4wIHBpeFxu Yl9vdXQ6IDMuMCBwaXhcbicKKy0gICAgICAgICAgICAgJ3RoZXRhOiAxNS4wIGRlZycpCisrICAg IGlmIE5VTVBZX0xUXzFfMTQ6CisrICAgICAgICBhX3JlcHIgPSAoJzxTa3lFbGxpcHRpY2FsQW5u dWx1cyg8U2t5Q29vcmQgKElDUlMpOiAocmEsIGRlYykgaW4gJworKyAgICAgICAgICAgICAgICAg ICdkZWdcbiAgICBbKCAxLiwgIDMuKSwgKCAyLiwgIDQuKV0+LCBhX2luPTMuMCBwaXgsICcKKysg ICAgICAgICAgICAgICAgICAnYV9vdXQ9NS4wIHBpeCwgYl9vdXQ9My4wIHBpeCwgdGhldGE9MTUu MCBkZWcpPicpCisrICAgICAgICBhX3N0ciA9ICgnQXBlcnR1cmU6IFNreUVsbGlwdGljYWxBbm51 bHVzXG5wb3NpdGlvbnM6IDxTa3lDb29yZCAnCisrICAgICAgICAgICAgICAgICAnKElDUlMpOiAo cmEsIGRlYykgaW4gZGVnXG4gICAgWyggMS4sICAzLiksICggMi4sICA0LildPlxuJworKyAgICAg ICAgICAgICAgICAgJ2FfaW46IDMuMCBwaXhcbmFfb3V0OiA1LjAgcGl4XG5iX291dDogMy4wIHBp eFxuJworKyAgICAgICAgICAgICAgICAgJ3RoZXRhOiAxNS4wIGRlZycpCisrICAgIGVsc2U6Cisr ICAgICAgICBhX3JlcHIgPSAoJzxTa3lFbGxpcHRpY2FsQW5udWx1cyg8U2t5Q29vcmQgKElDUlMp OiAocmEsIGRlYykgaW4gJworKyAgICAgICAgICAgICAgICAgICdkZWdcbiAgICBbKDEuLCAzLiks ICgyLiwgNC4pXT4sIGFfaW49My4wIHBpeCwgJworKyAgICAgICAgICAgICAgICAgICdhX291dD01 LjAgcGl4LCBiX291dD0zLjAgcGl4LCB0aGV0YT0xNS4wIGRlZyk+JykKKysgICAgICAgIGFfc3Ry ID0gKCdBcGVydHVyZTogU2t5RWxsaXB0aWNhbEFubnVsdXNcbnBvc2l0aW9uczogPFNreUNvb3Jk ICcKKysgICAgICAgICAgICAgICAgICcoSUNSUyk6IChyYSwgZGVjKSBpbiBkZWdcbiAgICBbKDEu LCAzLiksICgyLiwgNC4pXT5cbicKKysgICAgICAgICAgICAgICAgICdhX2luOiAzLjAgcGl4XG5h X291dDogNS4wIHBpeFxuYl9vdXQ6IDMuMCBwaXhcbicKKysgICAgICAgICAgICAgICAgICd0aGV0 YTogMTUuMCBkZWcnKQorKworICAgICBhc3NlcnQgcmVwcihhcGVyKSA9PSBhX3JlcHIKKyAgICAg YXNzZXJ0IHN0cihhcGVyKSA9PSBhX3N0cgorIAorICAgICBhcGVyID0gU2t5UmVjdGFuZ3VsYXJB cGVydHVyZShzLCB3PTMqdS5waXgsIGg9NSp1LnBpeCwgdGhldGE9MTUqdS5kZWcpCistICAgIGFf cmVwciA9ICgnPFNreVJlY3Rhbmd1bGFyQXBlcnR1cmUoPFNreUNvb3JkIChJQ1JTKTogKHJhLCBk ZWMpIGluICcKKy0gICAgICAgICAgICAgICdkZWdcbiAgICBbKCAxLiwgIDMuKSwgKCAyLiwgIDQu KV0+LCB3PTMuMCBwaXgsIGg9NS4wIHBpeCcKKy0gICAgICAgICAgICAgICcsIHRoZXRhPTE1LjAg ZGVnKT4nKQorLSAgICBhX3N0ciA9ICgnQXBlcnR1cmU6IFNreVJlY3Rhbmd1bGFyQXBlcnR1cmVc bnBvc2l0aW9uczogPFNreUNvb3JkICcKKy0gICAgICAgICAgICAgJyhJQ1JTKTogKHJhLCBkZWMp IGluIGRlZ1xuICAgIFsoIDEuLCAgMy4pLCAoIDIuLCAgNC4pXT5cbicKKy0gICAgICAgICAgICAg J3c6IDMuMCBwaXhcbmg6IDUuMCBwaXhcbnRoZXRhOiAxNS4wIGRlZycpCisrICAgIGlmIE5VTVBZ X0xUXzFfMTQ6CisrICAgICAgICBhX3JlcHIgPSAoJzxTa3lSZWN0YW5ndWxhckFwZXJ0dXJlKDxT a3lDb29yZCAoSUNSUyk6IChyYSwgZGVjKSBpbiAnCisrICAgICAgICAgICAgICAgICAgJ2RlZ1xu ICAgIFsoIDEuLCAgMy4pLCAoIDIuLCAgNC4pXT4sIHc9My4wIHBpeCwgaD01LjAgcGl4JworKyAg ICAgICAgICAgICAgICAgICcsIHRoZXRhPTE1LjAgZGVnKT4nKQorKyAgICAgICAgYV9zdHIgPSAo J0FwZXJ0dXJlOiBTa3lSZWN0YW5ndWxhckFwZXJ0dXJlXG5wb3NpdGlvbnM6IDxTa3lDb29yZCAn CisrICAgICAgICAgICAgICAgICAnKElDUlMpOiAocmEsIGRlYykgaW4gZGVnXG4gICAgWyggMS4s ICAzLiksICggMi4sICA0LildPlxuJworKyAgICAgICAgICAgICAgICAgJ3c6IDMuMCBwaXhcbmg6 IDUuMCBwaXhcbnRoZXRhOiAxNS4wIGRlZycpCisrICAgIGVsc2U6CisrICAgICAgICBhX3JlcHIg PSAoJzxTa3lSZWN0YW5ndWxhckFwZXJ0dXJlKDxTa3lDb29yZCAoSUNSUyk6IChyYSwgZGVjKSBp biAnCisrICAgICAgICAgICAgICAgICAgJ2RlZ1xuICAgIFsoMS4sIDMuKSwgKDIuLCA0LildPiwg dz0zLjAgcGl4LCBoPTUuMCBwaXgnCisrICAgICAgICAgICAgICAgICAgJywgdGhldGE9MTUuMCBk ZWcpPicpCisrICAgICAgICBhX3N0ciA9ICgnQXBlcnR1cmU6IFNreVJlY3Rhbmd1bGFyQXBlcnR1 cmVcbnBvc2l0aW9uczogPFNreUNvb3JkICcKKysgICAgICAgICAgICAgICAgICcoSUNSUyk6IChy YSwgZGVjKSBpbiBkZWdcbiAgICBbKDEuLCAzLiksICgyLiwgNC4pXT5cbicKKysgICAgICAgICAg ICAgICAgICd3OiAzLjAgcGl4XG5oOiA1LjAgcGl4XG50aGV0YTogMTUuMCBkZWcnKQorKworICAg ICBhc3NlcnQgcmVwcihhcGVyKSA9PSBhX3JlcHIKKyAgICAgYXNzZXJ0IHN0cihhcGVyKSA9PSBh X3N0cgorIAorICAgICBhcGVyID0gU2t5UmVjdGFuZ3VsYXJBbm51bHVzKHMsIHdfaW49Myp1LnBp eCwgd19vdXQ9My40KnUucGl4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhf b3V0PTUqdS5waXgsIHRoZXRhPTE1KnUuZGVnKQorLSAgICBhX3JlcHIgPSAoJzxTa3lSZWN0YW5n dWxhckFubnVsdXMoPFNreUNvb3JkIChJQ1JTKTogKHJhLCBkZWMpIGluIGRlZycKKy0gICAgICAg ICAgICAgICdcbiAgICBbKCAxLiwgIDMuKSwgKCAyLiwgIDQuKV0+LCB3X2luPTMuMCBwaXgsICcK Ky0gICAgICAgICAgICAgICd3X291dD0zLjQgcGl4LCBoX291dD01LjAgcGl4LCB0aGV0YT0xNS4w IGRlZyk+JykKKy0gICAgYV9zdHIgPSAoJ0FwZXJ0dXJlOiBTa3lSZWN0YW5ndWxhckFubnVsdXNc bnBvc2l0aW9uczogPFNreUNvb3JkICcKKy0gICAgICAgICAgICAgJyhJQ1JTKTogKHJhLCBkZWMp IGluIGRlZ1xuICAgIFsoIDEuLCAgMy4pLCAoIDIuLCAgNC4pXT5cbicKKy0gICAgICAgICAgICAg J3dfaW46IDMuMCBwaXhcbndfb3V0OiAzLjQgcGl4XG5oX291dDogNS4wIHBpeFxuJworLSAgICAg ICAgICAgICAndGhldGE6IDE1LjAgZGVnJykKKysgICAgaWYgTlVNUFlfTFRfMV8xNDoKKysgICAg ICAgIGFfcmVwciA9ICgnPFNreVJlY3Rhbmd1bGFyQW5udWx1cyg8U2t5Q29vcmQgKElDUlMpOiAo cmEsIGRlYykgaW4gZGVnJworKyAgICAgICAgICAgICAgICAgICdcbiAgICBbKCAxLiwgIDMuKSwg KCAyLiwgIDQuKV0+LCB3X2luPTMuMCBwaXgsICcKKysgICAgICAgICAgICAgICAgICAnd19vdXQ9 My40IHBpeCwgaF9vdXQ9NS4wIHBpeCwgdGhldGE9MTUuMCBkZWcpPicpCisrICAgICAgICBhX3N0 ciA9ICgnQXBlcnR1cmU6IFNreVJlY3Rhbmd1bGFyQW5udWx1c1xucG9zaXRpb25zOiA8U2t5Q29v cmQgJworKyAgICAgICAgICAgICAgICAgJyhJQ1JTKTogKHJhLCBkZWMpIGluIGRlZ1xuICAgIFso IDEuLCAgMy4pLCAoIDIuLCAgNC4pXT5cbicKKysgICAgICAgICAgICAgICAgICd3X2luOiAzLjAg cGl4XG53X291dDogMy40IHBpeFxuaF9vdXQ6IDUuMCBwaXhcbicKKysgICAgICAgICAgICAgICAg ICd0aGV0YTogMTUuMCBkZWcnKQorKyAgICBlbHNlOgorKyAgICAgICAgYV9yZXByID0gKCc8U2t5 UmVjdGFuZ3VsYXJBbm51bHVzKDxTa3lDb29yZCAoSUNSUyk6IChyYSwgZGVjKSBpbiBkZWcnCisr ICAgICAgICAgICAgICAgICAgJ1xuICAgIFsoMS4sIDMuKSwgKDIuLCA0LildPiwgd19pbj0zLjAg cGl4LCAnCisrICAgICAgICAgICAgICAgICAgJ3dfb3V0PTMuNCBwaXgsIGhfb3V0PTUuMCBwaXgs IHRoZXRhPTE1LjAgZGVnKT4nKQorKyAgICAgICAgYV9zdHIgPSAoJ0FwZXJ0dXJlOiBTa3lSZWN0 YW5ndWxhckFubnVsdXNcbnBvc2l0aW9uczogPFNreUNvb3JkICcKKysgICAgICAgICAgICAgICAg ICcoSUNSUyk6IChyYSwgZGVjKSBpbiBkZWdcbiAgICBbKDEuLCAzLiksICgyLiwgNC4pXT5cbicK KysgICAgICAgICAgICAgICAgICd3X2luOiAzLjAgcGl4XG53X291dDogMy40IHBpeFxuaF9vdXQ6 IDUuMCBwaXhcbicKKysgICAgICAgICAgICAgICAgICd0aGV0YTogMTUuMCBkZWcnKQorKworICAg ICBhc3NlcnQgcmVwcihhcGVyKSA9PSBhX3JlcHIKKyAgICAgYXNzZXJ0IHN0cihhcGVyKSA9PSBh X3N0cgorIAorZGlmZiAtTmF1ciBwaG90dXRpbHMtMC40L3Bob3R1dGlscy9hcGVydHVyZS90ZXN0 cy90ZXN0X2FwZXJ0dXJlX3Bob3RvbWV0cnkucHkub3JpZyBwaG90dXRpbHMtMC40LmZpeGVkL3Bo b3R1dGlscy9hcGVydHVyZS90ZXN0cy90ZXN0X2FwZXJ0dXJlX3Bob3RvbWV0cnkucHkub3JpZwor LS0tIHBob3R1dGlscy0wLjQvcGhvdHV0aWxzL2FwZXJ0dXJlL3Rlc3RzL3Rlc3RfYXBlcnR1cmVf cGhvdG9tZXRyeS5weS5vcmlnCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisr KysgcGhvdHV0aWxzLTAuNC5maXhlZC9waG90dXRpbHMvYXBlcnR1cmUvdGVzdHMvdGVzdF9hcGVy dHVyZV9waG90b21ldHJ5LnB5Lm9yaWcJMjAxNy0xMC0zMCAxNTozODoxOC4wMDAwMDAwMDAgKzAx MDAKK0BAIC0wLDAgKzEsODMwIEBACisrIyBMaWNlbnNlZCB1bmRlciBhIDMtY2xhdXNlIEJTRCBz dHlsZSBsaWNlbnNlIC0gc2VlIExJQ0VOU0UucnN0CisrIiIiCisrVGhlIHRlc3RzIGluIHRoaXMg ZmlsZSB0ZXN0IHRoZSBhY2N1cmFjeSBvZiB0aGUgcGhvdG9tZXRyaWMgcmVzdWx0cy4KKytIZXJl IHdlIHRlc3QgZGlyZWN0bHkgd2l0aCBhcGVydHVyZSBvYmplY3RzIHNpbmNlIHdlIGFyZSBjaGVj a2luZyB0aGUKKythbGdvcml0aG1zIGluIGFwZXJ0dXJlX3Bob3RvbWV0cnksIG5vdCBpbiB0aGUg d3JhcHBlcnMuCisrIiIiCisrCisrZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCAoYWJzb2x1dGVfaW1w b3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24sCisrICAgICAgICAgICAgICAgICAgICAgICAg dW5pY29kZV9saXRlcmFscykKKysKKytpbXBvcnQgcHl0ZXN0CisraW1wb3J0IG51bXB5IGFzIG5w CisrZnJvbSBudW1weS50ZXN0aW5nIGltcG9ydCAoYXNzZXJ0X2FsbGNsb3NlLCBhc3NlcnRfYXJy YXlfZXF1YWwsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2xlc3Mp CisrCisrZnJvbSBhc3Ryb3B5LmNvb3JkaW5hdGVzIGltcG9ydCBTa3lDb29yZAorK2Zyb20gYXN0 cm9weS5pbyBpbXBvcnQgZml0cworK2Zyb20gYXN0cm9weS5uZGRhdGEgaW1wb3J0IE5ERGF0YQor K2Zyb20gYXN0cm9weS50YWJsZSBpbXBvcnQgVGFibGUKKytmcm9tIGFzdHJvcHkudGVzdHMuaGVs cGVyIGltcG9ydCByZW1vdGVfZGF0YQorK2ltcG9ydCBhc3Ryb3B5LnVuaXRzIGFzIHUKKytmcm9t IGFzdHJvcHkud2NzLnV0aWxzIGltcG9ydCBwaXhlbF90b19za3ljb29yZAorKworK2Zyb20gLi5j b3JlIGltcG9ydCBhcGVydHVyZV9waG90b21ldHJ5CisrZnJvbSAuLmNpcmNsZSBpbXBvcnQgKENp cmN1bGFyQXBlcnR1cmUsIENpcmN1bGFyQW5udWx1cywgU2t5Q2lyY3VsYXJBcGVydHVyZSwKKysg ICAgICAgICAgICAgICAgICAgICAgU2t5Q2lyY3VsYXJBbm51bHVzKQorK2Zyb20gLi5lbGxpcHNl IGltcG9ydCAoRWxsaXB0aWNhbEFwZXJ0dXJlLCBFbGxpcHRpY2FsQW5udWx1cywKKysgICAgICAg ICAgICAgICAgICAgICAgIFNreUVsbGlwdGljYWxBcGVydHVyZSwgU2t5RWxsaXB0aWNhbEFubnVs dXMpCisrZnJvbSAuLnJlY3RhbmdsZSBpbXBvcnQgKFJlY3Rhbmd1bGFyQXBlcnR1cmUsIFJlY3Rh bmd1bGFyQW5udWx1cywKKysgICAgICAgICAgICAgICAgICAgICAgICAgU2t5UmVjdGFuZ3VsYXJB cGVydHVyZSwgU2t5UmVjdGFuZ3VsYXJBbm51bHVzKQorK2Zyb20gLi4uZGF0YXNldHMgaW1wb3J0 IChnZXRfcGF0aCwgbWFrZV80Z2F1c3NpYW5zX2ltYWdlLCBtYWtlX3djcywKKysgICAgICAgICAg ICAgICAgICAgICAgICAgbWFrZV9pbWFnZWhkdSkKKysKKyt0cnk6CisrICAgIGltcG9ydCBtYXRw bG90bGliICAgICMgbm9xYQorKyAgICBIQVNfTUFUUExPVExJQiA9IFRydWUKKytleGNlcHQgSW1w b3J0RXJyb3I6CisrICAgIEhBU19NQVRQTE9UTElCID0gRmFsc2UKKysKKysKKytBUEVSVFVSRV9D TCA9IFtDaXJjdWxhckFwZXJ0dXJlLAorKyAgICAgICAgICAgICAgIENpcmN1bGFyQW5udWx1cywK KysgICAgICAgICAgICAgICBFbGxpcHRpY2FsQXBlcnR1cmUsCisrICAgICAgICAgICAgICAgRWxs aXB0aWNhbEFubnVsdXMsCisrICAgICAgICAgICAgICAgUmVjdGFuZ3VsYXJBcGVydHVyZSwKKysg ICAgICAgICAgICAgICBSZWN0YW5ndWxhckFubnVsdXNdCisrCisrCisrVEVTVF9BUEVSVFVSRVMg PSBsaXN0KHppcChBUEVSVFVSRV9DTCwgKCgzLiwpLCAoMy4sIDUuKSwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKDMuLCA1LiwgMS4pLCAoMy4sIDUuLCA0LiwgMS4p LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoNSwgOCwgbnAucGkg LyA0KSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDgsIDEyLCA4 LCBucC5waSAvIDgpKSkpCisrCisrCisrQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCgnYXBlcnR1 cmVfY2xhc3MnLCAncGFyYW1zJyksIFRFU1RfQVBFUlRVUkVTKQorK2RlZiB0ZXN0X291dHNpZGVf YXJyYXkoYXBlcnR1cmVfY2xhc3MsIHBhcmFtcyk6CisrICAgIGRhdGEgPSBucC5vbmVzKCgxMCwg MTApLCBkdHlwZT1ucC5mbG9hdCkKKysgICAgYXBlcnR1cmUgPSBhcGVydHVyZV9jbGFzcygoLTYw LCA2MCksICpwYXJhbXMpCisrICAgIGZsdXh0YWJsZSA9IGFwZXJ0dXJlX3Bob3RvbWV0cnkoZGF0 YSwgYXBlcnR1cmUpCisrICAgICMgYXBlcnR1cmUgaXMgZnVsbHkgb3V0c2lkZSBhcnJheToKKysg ICAgYXNzZXJ0IG5wLmlzbmFuKGZsdXh0YWJsZVsnYXBlcnR1cmVfc3VtJ10pCisrCisrCisrQHB5 dGVzdC5tYXJrLnBhcmFtZXRyaXplKCgnYXBlcnR1cmVfY2xhc3MnLCAncGFyYW1zJyksIFRFU1Rf QVBFUlRVUkVTKQorK2RlZiB0ZXN0X2luc2lkZV9hcnJheV9zaW1wbGUoYXBlcnR1cmVfY2xhc3Ms IHBhcmFtcyk6CisrICAgIGRhdGEgPSBucC5vbmVzKCg0MCwgNDApLCBkdHlwZT1ucC5mbG9hdCkK KysgICAgYXBlcnR1cmUgPSBhcGVydHVyZV9jbGFzcygoMjAuLCAyMC4pLCAqcGFyYW1zKQorKyAg ICB0YWJsZTEgPSBhcGVydHVyZV9waG90b21ldHJ5KGRhdGEsIGFwZXJ0dXJlLCBtZXRob2Q9J2Nl bnRlcicsIHN1YnBpeGVscz0xMCkKKysgICAgdGFibGUyID0gYXBlcnR1cmVfcGhvdG9tZXRyeShk YXRhLCBhcGVydHVyZSwgbWV0aG9kPSdzdWJwaXhlbCcsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3VicGl4ZWxzPTEwKQorKyAgICB0YWJsZTMgPSBhcGVydHVyZV9waG90b21l dHJ5KGRhdGEsIGFwZXJ0dXJlLCBtZXRob2Q9J2V4YWN0Jywgc3VicGl4ZWxzPTEwKQorKyAgICB0 cnVlX2ZsdXggPSBhcGVydHVyZS5hcmVhKCkKKysKKysgICAgaWYgbm90IGlzaW5zdGFuY2UoYXBl cnR1cmUsIChSZWN0YW5ndWxhckFwZXJ0dXJlLCBSZWN0YW5ndWxhckFubnVsdXMpKToKKysgICAg ICAgIGFzc2VydF9hbGxjbG9zZSh0YWJsZTNbJ2FwZXJ0dXJlX3N1bSddLCB0cnVlX2ZsdXgpCisr ICAgICAgICBhc3NlcnRfYWxsY2xvc2UodGFibGUyWydhcGVydHVyZV9zdW0nXSwgdGFibGUzWydh cGVydHVyZV9zdW0nXSwKKysgICAgICAgICAgICAgICAgICAgICAgICBhdG9sPTAuMSkKKysgICAg YXNzZXJ0IHRhYmxlMVsnYXBlcnR1cmVfc3VtJ10gPCB0YWJsZTNbJ2FwZXJ0dXJlX3N1bSddCisr CisrCisrQHB5dGVzdC5tYXJrLnNraXBpZignbm90IEhBU19NQVRQTE9UTElCJykKKytAcHl0ZXN0 Lm1hcmsucGFyYW1ldHJpemUoKCdhcGVydHVyZV9jbGFzcycsICdwYXJhbXMnKSwgVEVTVF9BUEVS VFVSRVMpCisrZGVmIHRlc3RfYXBlcnR1cmVfcGxvdHMoYXBlcnR1cmVfY2xhc3MsIHBhcmFtcyk6 CisrICAgICMgVGhpcyB0ZXN0IHNob3VsZCBydW4gd2l0aG91dCBhbnkgZXJyb3JzLCBhbmQgdGhl cmUgaXMgbm8gcmV0dXJuCisrICAgICMgdmFsdWUuCisrICAgICMgVE9ETzogY2hlY2sgdGhlIGNv bnRlbnQgb2YgdGhlIHBsb3QKKysgICAgYXBlcnR1cmUgPSBhcGVydHVyZV9jbGFzcygoMjAuLCAy MC4pLCAqcGFyYW1zKQorKyAgICBhcGVydHVyZS5wbG90KCkKKysKKysKKytkZWYgdGVzdF9hcGVy dHVyZV9waXhlbF9wb3NpdGlvbnMoKToKKysgICAgcG9zMSA9ICgxMCwgMjApCisrICAgIHBvczIg PSB1LlF1YW50aXR5KCgxMCwgMjApLCB1bml0PXUucGl4ZWwpCisrICAgIHBvczMgPSAoKDEwLCAy MCwgMzApLCAoMTAsIDIwLCAzMCkpCisrICAgIHBvczNfcGFpcnMgPSAoKDEwLCAxMCksICgyMCwg MjApLCAoMzAsIDMwKSkKKysKKysgICAgciA9IDMKKysgICAgYXAxID0gQ2lyY3VsYXJBcGVydHVy ZShwb3MxLCByKQorKyAgICBhcDIgPSBDaXJjdWxhckFwZXJ0dXJlKHBvczIsIHIpCisrICAgIGFw MyA9IENpcmN1bGFyQXBlcnR1cmUocG9zMywgcikKKysKKysgICAgYXNzZXJ0X2FsbGNsb3NlKG5w LmF0bGVhc3RfMmQocG9zMSksIGFwMS5wb3NpdGlvbnMpCisrICAgIGFzc2VydF9hbGxjbG9zZShu cC5hdGxlYXN0XzJkKHBvczIudmFsdWUpLCBhcDIucG9zaXRpb25zKQorKyAgICBhc3NlcnRfYWxs Y2xvc2UocG9zM19wYWlycywgYXAzLnBvc2l0aW9ucykKKysKKysKKytjbGFzcyBCYXNlVGVzdEFw ZXJ0dXJlUGhvdG9tZXRyeShvYmplY3QpOgorKworKyAgICBkZWYgdGVzdF9zY2FsYXJfZXJyb3Io c2VsZik6CisrICAgICAgICAjIFNjYWxhciBlcnJvcgorKyAgICAgICAgZXJyb3IgPSAxLgorKyAg ICAgICAgaWYgbm90IGhhc2F0dHIoc2VsZiwgJ21hc2snKToKKysgICAgICAgICAgICBtYXNrID0g Tm9uZQorKyAgICAgICAgICAgIHRydWVfZXJyb3IgPSBucC5zcXJ0KHNlbGYuYXJlYSkKKysgICAg ICAgIGVsc2U6CisrICAgICAgICAgICAgbWFzayA9IHNlbGYubWFzaworKyAgICAgICAgICAgICMg MSBtYXNrZWQgcGl4ZWwKKysgICAgICAgICAgICB0cnVlX2Vycm9yID0gbnAuc3FydChzZWxmLmFy ZWEgLSAxKQorKworKyAgICAgICAgdGFibGUxID0gYXBlcnR1cmVfcGhvdG9tZXRyeShzZWxmLmRh dGEsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYXBlcnR1cmUs IG1ldGhvZD0nY2VudGVyJywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bWFzaz1tYXNrLCBlcnJvcj1lcnJvcikKKysgICAgICAgIHRhYmxlMiA9IGFwZXJ0dXJlX3Bob3Rv bWV0cnkoc2VsZi5kYXRhLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLmFwZXJ0dXJlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRo b2Q9J3N1YnBpeGVsJywgc3VicGl4ZWxzPTEyLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBtYXNrPW1hc2ssIGVycm9yPWVycm9yKQorKyAgICAgICAgdGFibGUzID0gYXBl cnR1cmVfcGhvdG9tZXRyeShzZWxmLmRhdGEsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuYXBlcnR1cmUsIG1ldGhvZD0nZXhhY3QnLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBtYXNrPW1hc2ssIGVycm9yPWVycm9yKQorKworKyAgICAg ICAgaWYgbm90IGlzaW5zdGFuY2Uoc2VsZi5hcGVydHVyZSwgKFJlY3Rhbmd1bGFyQXBlcnR1cmUs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVjdGFuZ3VsYXJB bm51bHVzKSk6CisrICAgICAgICAgICAgYXNzZXJ0X2FsbGNsb3NlKHRhYmxlM1snYXBlcnR1cmVf c3VtJ10sIHNlbGYudHJ1ZV9mbHV4KQorKyAgICAgICAgICAgIGFzc2VydF9hbGxjbG9zZSh0YWJs ZTJbJ2FwZXJ0dXJlX3N1bSddLCB0YWJsZTNbJ2FwZXJ0dXJlX3N1bSddLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhdG9sPTAuMSkKKysgICAgICAgIGFzc2VydCBucC5hbGwodGFibGUx WydhcGVydHVyZV9zdW0nXSA8IHRhYmxlM1snYXBlcnR1cmVfc3VtJ10pCisrCisrICAgICAgICBp ZiBub3QgaXNpbnN0YW5jZShzZWxmLmFwZXJ0dXJlLCAoUmVjdGFuZ3VsYXJBcGVydHVyZSwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWN0YW5ndWxhckFubnVs dXMpKToKKysgICAgICAgICAgICBhc3NlcnRfYWxsY2xvc2UodGFibGUzWydhcGVydHVyZV9zdW1f ZXJyJ10sIHRydWVfZXJyb3IpCisrICAgICAgICAgICAgYXNzZXJ0X2FsbGNsb3NlKHRhYmxlMlsn YXBlcnR1cmVfc3VtJ10sIHRhYmxlM1snYXBlcnR1cmVfc3VtJ10sCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGF0b2w9MC4xKQorKyAgICAgICAgYXNzZXJ0IG5wLmFsbCh0YWJsZTFbJ2Fw ZXJ0dXJlX3N1bV9lcnInXSA8IHRhYmxlM1snYXBlcnR1cmVfc3VtX2VyciddKQorKworKyAgICBk ZWYgdGVzdF9hcnJheV9lcnJvcihzZWxmKToKKysgICAgICAgICMgQXJyYXkgZXJyb3IKKysgICAg ICAgIGVycm9yID0gbnAub25lcyhzZWxmLmRhdGEuc2hhcGUsIGR0eXBlPW5wLmZsb2F0KQorKyAg ICAgICAgaWYgbm90IGhhc2F0dHIoc2VsZiwgJ21hc2snKToKKysgICAgICAgICAgICBtYXNrID0g Tm9uZQorKyAgICAgICAgICAgIHRydWVfZXJyb3IgPSBucC5zcXJ0KHNlbGYuYXJlYSkKKysgICAg ICAgIGVsc2U6CisrICAgICAgICAgICAgbWFzayA9IHNlbGYubWFzaworKyAgICAgICAgICAgICMg MSBtYXNrZWQgcGl4ZWwKKysgICAgICAgICAgICB0cnVlX2Vycm9yID0gbnAuc3FydChzZWxmLmFy ZWEgLSAxKQorKworKyAgICAgICAgdGFibGUxID0gYXBlcnR1cmVfcGhvdG9tZXRyeShzZWxmLmRh dGEsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYXBlcnR1cmUs IG1ldGhvZD0nY2VudGVyJywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bWFzaz1tYXNrLCBlcnJvcj1lcnJvcikKKysgICAgICAgIHRhYmxlMiA9IGFwZXJ0dXJlX3Bob3Rv bWV0cnkoc2VsZi5kYXRhLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLmFwZXJ0dXJlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRo b2Q9J3N1YnBpeGVsJywgc3VicGl4ZWxzPTEyLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBtYXNrPW1hc2ssIGVycm9yPWVycm9yKQorKyAgICAgICAgdGFibGUzID0gYXBl cnR1cmVfcGhvdG9tZXRyeShzZWxmLmRhdGEsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuYXBlcnR1cmUsIG1ldGhvZD0nZXhhY3QnLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBtYXNrPW1hc2ssIGVycm9yPWVycm9yKQorKworKyAgICAg ICAgaWYgbm90IGlzaW5zdGFuY2Uoc2VsZi5hcGVydHVyZSwgKFJlY3Rhbmd1bGFyQXBlcnR1cmUs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVjdGFuZ3VsYXJB bm51bHVzKSk6CisrICAgICAgICAgICAgYXNzZXJ0X2FsbGNsb3NlKHRhYmxlM1snYXBlcnR1cmVf c3VtJ10sIHNlbGYudHJ1ZV9mbHV4KQorKyAgICAgICAgICAgIGFzc2VydF9hbGxjbG9zZSh0YWJs ZTJbJ2FwZXJ0dXJlX3N1bSddLCB0YWJsZTNbJ2FwZXJ0dXJlX3N1bSddLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhdG9sPTAuMSkKKysgICAgICAgIGFzc2VydCBucC5hbGwodGFibGUx WydhcGVydHVyZV9zdW0nXSA8IHRhYmxlM1snYXBlcnR1cmVfc3VtJ10pCisrCisrICAgICAgICBp ZiBub3QgaXNpbnN0YW5jZShzZWxmLmFwZXJ0dXJlLCAoUmVjdGFuZ3VsYXJBcGVydHVyZSwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWN0YW5ndWxhckFubnVs dXMpKToKKysgICAgICAgICAgICBhc3NlcnRfYWxsY2xvc2UodGFibGUzWydhcGVydHVyZV9zdW1f ZXJyJ10sIHRydWVfZXJyb3IpCisrICAgICAgICAgICAgYXNzZXJ0X2FsbGNsb3NlKHRhYmxlMlsn YXBlcnR1cmVfc3VtX2VyciddLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZTNb J2FwZXJ0dXJlX3N1bV9lcnInXSwgYXRvbD0wLjEpCisrICAgICAgICBhc3NlcnQgbnAuYWxsKHRh YmxlMVsnYXBlcnR1cmVfc3VtX2VyciddIDwgdGFibGUzWydhcGVydHVyZV9zdW1fZXJyJ10pCisr CisrCisrY2xhc3MgVGVzdENpcmN1bGFyKEJhc2VUZXN0QXBlcnR1cmVQaG90b21ldHJ5KToKKysK KysgICAgZGVmIHNldHVwX2NsYXNzKHNlbGYpOgorKyAgICAgICAgc2VsZi5kYXRhID0gbnAub25l cygoNDAsIDQwKSwgZHR5cGU9bnAuZmxvYXQpCisrICAgICAgICBwb3NpdGlvbiA9ICgyMC4sIDIw LikKKysgICAgICAgIHIgPSAxMC4KKysgICAgICAgIHNlbGYuYXBlcnR1cmUgPSBDaXJjdWxhckFw ZXJ0dXJlKHBvc2l0aW9uLCByKQorKyAgICAgICAgc2VsZi5hcmVhID0gbnAucGkgKiByICogcgor KyAgICAgICAgc2VsZi50cnVlX2ZsdXggPSBzZWxmLmFyZWEKKysKKysKKytjbGFzcyBUZXN0Q2ly Y3VsYXJBcnJheShCYXNlVGVzdEFwZXJ0dXJlUGhvdG9tZXRyeSk6CisrCisrICAgIGRlZiBzZXR1 cF9jbGFzcyhzZWxmKToKKysgICAgICAgIHNlbGYuZGF0YSA9IG5wLm9uZXMoKDQwLCA0MCksIGR0 eXBlPW5wLmZsb2F0KQorKyAgICAgICAgcG9zaXRpb24gPSAoKDIwLiwgMjAuKSwgKDI1LiwgMjUu KSkKKysgICAgICAgIHIgPSAxMC4KKysgICAgICAgIHNlbGYuYXBlcnR1cmUgPSBDaXJjdWxhckFw ZXJ0dXJlKHBvc2l0aW9uLCByKQorKyAgICAgICAgc2VsZi5hcmVhID0gbnAucGkgKiByICogcgor KyAgICAgICAgc2VsZi5hcmVhID0gbnAuYXJyYXkoKHNlbGYuYXJlYSwgKSAqIDIpCisrICAgICAg ICBzZWxmLnRydWVfZmx1eCA9IHNlbGYuYXJlYQorKworKworK2NsYXNzIFRlc3RDaXJjdWxhckFu bnVsdXMoQmFzZVRlc3RBcGVydHVyZVBob3RvbWV0cnkpOgorKworKyAgICBkZWYgc2V0dXBfY2xh c3Moc2VsZik6CisrICAgICAgICBzZWxmLmRhdGEgPSBucC5vbmVzKCg0MCwgNDApLCBkdHlwZT1u cC5mbG9hdCkKKysgICAgICAgIHBvc2l0aW9uID0gKDIwLiwgMjAuKQorKyAgICAgICAgcl9pbiA9 IDguCisrICAgICAgICByX291dCA9IDEwLgorKyAgICAgICAgc2VsZi5hcGVydHVyZSA9IENpcmN1 bGFyQW5udWx1cyhwb3NpdGlvbiwgcl9pbiwgcl9vdXQpCisrICAgICAgICBzZWxmLmFyZWEgPSBu cC5waSAqIChyX291dCAqIHJfb3V0IC0gcl9pbiAqIHJfaW4pCisrICAgICAgICBzZWxmLnRydWVf Zmx1eCA9IHNlbGYuYXJlYQorKworKworK2NsYXNzIFRlc3RDaXJjdWxhckFubnVsdXNBcnJheShC YXNlVGVzdEFwZXJ0dXJlUGhvdG9tZXRyeSk6CisrCisrICAgIGRlZiBzZXR1cF9jbGFzcyhzZWxm KToKKysgICAgICAgIHNlbGYuZGF0YSA9IG5wLm9uZXMoKDQwLCA0MCksIGR0eXBlPW5wLmZsb2F0 KQorKyAgICAgICAgcG9zaXRpb24gPSAoKDIwLiwgMjAuKSwgKDI1LiwgMjUuKSkKKysgICAgICAg IHJfaW4gPSA4LgorKyAgICAgICAgcl9vdXQgPSAxMC4KKysgICAgICAgIHNlbGYuYXBlcnR1cmUg PSBDaXJjdWxhckFubnVsdXMocG9zaXRpb24sIHJfaW4sIHJfb3V0KQorKyAgICAgICAgc2VsZi5h cmVhID0gbnAucGkgKiAocl9vdXQgKiByX291dCAtIHJfaW4gKiByX2luKQorKyAgICAgICAgc2Vs Zi5hcmVhID0gbnAuYXJyYXkoKHNlbGYuYXJlYSwgKSAqIDIpCisrICAgICAgICBzZWxmLnRydWVf Zmx1eCA9IHNlbGYuYXJlYQorKworKworK2NsYXNzIFRlc3RFbGxpcHRpY2FsKEJhc2VUZXN0QXBl cnR1cmVQaG90b21ldHJ5KToKKysKKysgICAgZGVmIHNldHVwX2NsYXNzKHNlbGYpOgorKyAgICAg ICAgc2VsZi5kYXRhID0gbnAub25lcygoNDAsIDQwKSwgZHR5cGU9bnAuZmxvYXQpCisrICAgICAg ICBwb3NpdGlvbiA9ICgyMC4sIDIwLikKKysgICAgICAgIGEgPSAxMC4KKysgICAgICAgIGIgPSA1 LgorKyAgICAgICAgdGhldGEgPSAtbnAucGkgLyA0LgorKyAgICAgICAgc2VsZi5hcGVydHVyZSA9 IEVsbGlwdGljYWxBcGVydHVyZShwb3NpdGlvbiwgYSwgYiwgdGhldGEpCisrICAgICAgICBzZWxm LmFyZWEgPSBucC5waSAqIGEgKiBiCisrICAgICAgICBzZWxmLnRydWVfZmx1eCA9IHNlbGYuYXJl YQorKworKworK2NsYXNzIFRlc3RFbGxpcHRpY2FsQW5udWx1cyhCYXNlVGVzdEFwZXJ0dXJlUGhv dG9tZXRyeSk6CisrCisrICAgIGRlZiBzZXR1cF9jbGFzcyhzZWxmKToKKysgICAgICAgIHNlbGYu ZGF0YSA9IG5wLm9uZXMoKDQwLCA0MCksIGR0eXBlPW5wLmZsb2F0KQorKyAgICAgICAgcG9zaXRp b24gPSAoMjAuLCAyMC4pCisrICAgICAgICBhX2luID0gNS4KKysgICAgICAgIGFfb3V0ID0gOC4K KysgICAgICAgIGJfb3V0ID0gNS4KKysgICAgICAgIHRoZXRhID0gLW5wLnBpIC8gNC4KKysgICAg ICAgIHNlbGYuYXBlcnR1cmUgPSBFbGxpcHRpY2FsQW5udWx1cyhwb3NpdGlvbiwgYV9pbiwgYV9v dXQsIGJfb3V0LCB0aGV0YSkKKysgICAgICAgIHNlbGYuYXJlYSA9IChucC5waSAqIChhX291dCAq IGJfb3V0KSAtCisrICAgICAgICAgICAgICAgICAgICAgbnAucGkgKiAoYV9pbiAqIGJfb3V0ICog YV9pbiAvIGFfb3V0KSkKKysgICAgICAgIHNlbGYudHJ1ZV9mbHV4ID0gc2VsZi5hcmVhCisrCisr CisrY2xhc3MgVGVzdFJlY3Rhbmd1bGFyQXBlcnR1cmUoQmFzZVRlc3RBcGVydHVyZVBob3RvbWV0 cnkpOgorKworKyAgICBkZWYgc2V0dXBfY2xhc3Moc2VsZik6CisrICAgICAgICBzZWxmLmRhdGEg PSBucC5vbmVzKCg0MCwgNDApLCBkdHlwZT1ucC5mbG9hdCkKKysgICAgICAgIHBvc2l0aW9uID0g KDIwLiwgMjAuKQorKyAgICAgICAgaCA9IDUuCisrICAgICAgICB3ID0gOC4KKysgICAgICAgIHRo ZXRhID0gbnAucGkgLyA0LgorKyAgICAgICAgc2VsZi5hcGVydHVyZSA9IFJlY3Rhbmd1bGFyQXBl cnR1cmUocG9zaXRpb24sIHcsIGgsIHRoZXRhKQorKyAgICAgICAgc2VsZi5hcmVhID0gaCAqIHcK KysgICAgICAgIHNlbGYudHJ1ZV9mbHV4ID0gc2VsZi5hcmVhCisrCisrCisrY2xhc3MgVGVzdFJl Y3Rhbmd1bGFyQW5udWx1cyhCYXNlVGVzdEFwZXJ0dXJlUGhvdG9tZXRyeSk6CisrCisrICAgIGRl ZiBzZXR1cF9jbGFzcyhzZWxmKToKKysgICAgICAgIHNlbGYuZGF0YSA9IG5wLm9uZXMoKDQwLCA0 MCksIGR0eXBlPW5wLmZsb2F0KQorKyAgICAgICAgcG9zaXRpb24gPSAoMjAuLCAyMC4pCisrICAg ICAgICBoX291dCA9IDguCisrICAgICAgICB3X2luID0gOC4KKysgICAgICAgIHdfb3V0ID0gMTIu CisrICAgICAgICBoX2luID0gd19pbiAqIGhfb3V0IC8gd19vdXQKKysgICAgICAgIHRoZXRhID0g bnAucGkgLyA4LgorKyAgICAgICAgc2VsZi5hcGVydHVyZSA9IFJlY3Rhbmd1bGFyQW5udWx1cyhw b3NpdGlvbiwgd19pbiwgd19vdXQsIGhfb3V0LCB0aGV0YSkKKysgICAgICAgIHNlbGYuYXJlYSA9 IGhfb3V0ICogd19vdXQgLSBoX2luICogd19pbgorKyAgICAgICAgc2VsZi50cnVlX2ZsdXggPSBz ZWxmLmFyZWEKKysKKysKKytjbGFzcyBUZXN0TWFza2VkU2tpcENpcmN1bGFyKEJhc2VUZXN0QXBl cnR1cmVQaG90b21ldHJ5KToKKysKKysgICAgZGVmIHNldHVwX2NsYXNzKHNlbGYpOgorKyAgICAg ICAgc2VsZi5kYXRhID0gbnAub25lcygoNDAsIDQwKSwgZHR5cGU9bnAuZmxvYXQpCisrICAgICAg ICBzZWxmLm1hc2sgPSBucC56ZXJvcygoNDAsIDQwKSwgZHR5cGU9Ym9vbCkKKysgICAgICAgIHNl bGYubWFza1syMCwgMjBdID0gVHJ1ZQorKyAgICAgICAgcG9zaXRpb24gPSAoMjAuLCAyMC4pCisr ICAgICAgICByID0gMTAuCisrICAgICAgICBzZWxmLmFwZXJ0dXJlID0gQ2lyY3VsYXJBcGVydHVy ZShwb3NpdGlvbiwgcikKKysgICAgICAgIHNlbGYuYXJlYSA9IG5wLnBpICogciAqIHIKKysgICAg ICAgIHNlbGYudHJ1ZV9mbHV4ID0gc2VsZi5hcmVhIC0gMQorKworKworK2NsYXNzIEJhc2VUZXN0 RGlmZmVyZW50RGF0YShvYmplY3QpOgorKworKyAgICBkZWYgdGVzdF9iYXNpY19jaXJjdWxhcl9h cGVydHVyZV9waG90b21ldHJ5KHNlbGYpOgorKyAgICAgICAgYXBlcnR1cmUgPSBDaXJjdWxhckFw ZXJ0dXJlKHNlbGYucG9zaXRpb24sIHNlbGYucmFkaXVzKQorKyAgICAgICAgdGFibGUgPSBhcGVy dHVyZV9waG90b21ldHJ5KHNlbGYuZGF0YSwgYXBlcnR1cmUsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbWV0aG9kPSdleGFjdCcsIHVuaXQ9J2FkdScpCisrCisrICAgICAg ICBhc3NlcnRfYWxsY2xvc2UodGFibGVbJ2FwZXJ0dXJlX3N1bSddLnZhbHVlLCBzZWxmLnRydWVf Zmx1eCkKKysgICAgICAgIGFzc2VydCB0YWJsZVsnYXBlcnR1cmVfc3VtJ10udW5pdCwgc2VsZi5m bHV4dW5pdAorKworKyAgICAgICAgYXNzZXJ0IG5wLmFsbCh0YWJsZVsneGNlbnRlciddLnZhbHVl ID09CisrICAgICAgICAgICAgICAgICAgICAgIG5wLnRyYW5zcG9zZShzZWxmLnBvc2l0aW9uKVsw XSkKKysgICAgICAgIGFzc2VydCBucC5hbGwodGFibGVbJ3ljZW50ZXInXS52YWx1ZSA9PQorKyAg ICAgICAgICAgICAgICAgICAgICBucC50cmFuc3Bvc2Uoc2VsZi5wb3NpdGlvbilbMV0pCisrCisr CisrY2xhc3MgVGVzdElucHV0UHJpbWFyeUhEVShCYXNlVGVzdERpZmZlcmVudERhdGEpOgorKwor KyAgICBkZWYgc2V0dXBfY2xhc3Moc2VsZik6CisrICAgICAgICBkYXRhID0gbnAub25lcygoNDAs IDQwKSwgZHR5cGU9bnAuZmxvYXQpCisrICAgICAgICBzZWxmLmRhdGEgPSBmaXRzLkltYWdlSERV KGRhdGE9ZGF0YSkKKysgICAgICAgIHNlbGYuZGF0YS5oZWFkZXJbJ0JVTklUJ10gPSAnYWR1Jwor KyAgICAgICAgc2VsZi5yYWRpdXMgPSAzCisrICAgICAgICBzZWxmLnBvc2l0aW9uID0gKDIwLCAy MCkKKysgICAgICAgIHNlbGYudHJ1ZV9mbHV4ID0gbnAucGkgKiBzZWxmLnJhZGl1cyAqIHNlbGYu cmFkaXVzCisrICAgICAgICBzZWxmLmZsdXh1bml0ID0gdS5hZHUKKysKKysKKytjbGFzcyBUZXN0 SW5wdXRIRFVMaXN0KEJhc2VUZXN0RGlmZmVyZW50RGF0YSk6CisrCisrICAgIGRlZiBzZXR1cF9j bGFzcyhzZWxmKToKKysgICAgICAgIGRhdGEwID0gbnAub25lcygoNDAsIDQwKSwgZHR5cGU9bnAu ZmxvYXQpCisrICAgICAgICBkYXRhMSA9IG5wLmVtcHR5KCg0MCwgNDApLCBkdHlwZT1ucC5mbG9h dCkKKysgICAgICAgIGRhdGExLmZpbGwoMikKKysgICAgICAgIHNlbGYuZGF0YSA9IGZpdHMuSERV TGlzdChbZml0cy5JbWFnZUhEVShkYXRhPWRhdGEwKSwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZml0cy5JbWFnZUhEVShkYXRhPWRhdGExKV0pCisrICAgICAgICBzZWxmLnJh ZGl1cyA9IDMKKysgICAgICAgIHNlbGYucG9zaXRpb24gPSAoMjAsIDIwKQorKyAgICAgICAgIyBJ dCBzaG91bGQgc3RvcCBhdCB0aGUgZmlyc3QgZXh0ZW5zaW9uCisrICAgICAgICBzZWxmLnRydWVf Zmx1eCA9IG5wLnBpICogc2VsZi5yYWRpdXMgKiBzZWxmLnJhZGl1cworKworKworK2NsYXNzIFRl c3RJbnB1dEhEVURpZmZlcmVudEJVTklUKEJhc2VUZXN0RGlmZmVyZW50RGF0YSk6CisrCisrICAg IGRlZiBzZXR1cF9jbGFzcyhzZWxmKToKKysgICAgICAgIGRhdGEgPSBucC5vbmVzKCg0MCwgNDAp LCBkdHlwZT1ucC5mbG9hdCkKKysgICAgICAgIHNlbGYuZGF0YSA9IGZpdHMuSW1hZ2VIRFUoZGF0 YT1kYXRhKQorKyAgICAgICAgc2VsZi5kYXRhLmhlYWRlclsnQlVOSVQnXSA9ICdKeScKKysgICAg ICAgIHNlbGYucmFkaXVzID0gMworKyAgICAgICAgc2VsZi5wb3NpdGlvbiA9ICgyMCwgMjApCisr ICAgICAgICBzZWxmLnRydWVfZmx1eCA9IG5wLnBpICogc2VsZi5yYWRpdXMgKiBzZWxmLnJhZGl1 cworKyAgICAgICAgc2VsZi5mbHV4dW5pdCA9IHUuYWR1CisrCisrCisrY2xhc3MgVGVzdElucHV0 TkREYXRhKEJhc2VUZXN0RGlmZmVyZW50RGF0YSk6CisrCisrICAgIGRlZiBzZXR1cF9jbGFzcyhz ZWxmKToKKysgICAgICAgIGRhdGEgPSBucC5vbmVzKCg0MCwgNDApLCBkdHlwZT1ucC5mbG9hdCkK KysgICAgICAgIHNlbGYuZGF0YSA9IE5ERGF0YShkYXRhLCB1bml0PXUuYWR1KQorKyAgICAgICAg c2VsZi5yYWRpdXMgPSAzCisrICAgICAgICBzZWxmLnBvc2l0aW9uID0gWygyMCwgMjApLCAoMzAs IDMwKV0KKysgICAgICAgIHNlbGYudHJ1ZV9mbHV4ID0gbnAucGkgKiBzZWxmLnJhZGl1cyAqIHNl bGYucmFkaXVzCisrICAgICAgICBzZWxmLmZsdXh1bml0ID0gdS5hZHUKKysKKysKKytAcmVtb3Rl X2RhdGEKKytkZWYgdGVzdF93Y3NfYmFzZWRfcGhvdG9tZXRyeV90b19jYXRhbG9ndWUoKToKKysg ICAgcGF0aGNhdCA9IGdldF9wYXRoKCdzcGl0emVyX2V4YW1wbGVfY2F0YWxvZy54bWwnLCBsb2Nh dGlvbj0ncmVtb3RlJykKKysgICAgcGF0aGhkdSA9IGdldF9wYXRoKCdzcGl0emVyX2V4YW1wbGVf aW1hZ2UuZml0cycsIGxvY2F0aW9uPSdyZW1vdGUnKQorKyAgICBoZHUgPSBmaXRzLm9wZW4ocGF0 aGhkdSkKKysgICAgc2NhbGUgPSBoZHVbMF0uaGVhZGVyWydQSVhTQ0FMMSddCisrCisrICAgIGNh dGFsb2cgPSBUYWJsZS5yZWFkKHBhdGhjYXQpCisrCisrICAgIHBvc19za3ljb29yZCA9IFNreUNv b3JkKGNhdGFsb2dbJ2wnXSwgY2F0YWxvZ1snYiddLCBmcmFtZT0nZ2FsYWN0aWMnKQorKworKyAg ICBwaG90b21ldHJ5X3NreWNvb3JkID0gYXBlcnR1cmVfcGhvdG9tZXRyeSgKKysgICAgICAgIGhk dSwgU2t5Q2lyY3VsYXJBcGVydHVyZShwb3Nfc2t5Y29vcmQsIDQgKiB1LmFyY3NlYykpCisrCisr ICAgIHBob3RvbWV0cnlfc2t5Y29vcmRfcGl4ID0gYXBlcnR1cmVfcGhvdG9tZXRyeSgKKysgICAg ICAgIGhkdSwgU2t5Q2lyY3VsYXJBcGVydHVyZShwb3Nfc2t5Y29vcmQsIDQuIC8gc2NhbGUgKiB1 LnBpeGVsKSkKKysKKysgICAgYXNzZXJ0X2FsbGNsb3NlKHBob3RvbWV0cnlfc2t5Y29vcmRbJ2Fw ZXJ0dXJlX3N1bSddLAorKyAgICAgICAgICAgICAgICAgICAgcGhvdG9tZXRyeV9za3ljb29yZF9w aXhbJ2FwZXJ0dXJlX3N1bSddKQorKworKyAgICAjIFBob3RvbWV0cmljIHVuaXQgY29udmVyc2lv biBpcyBuZWVkZWQgdG8gbWF0Y2ggdGhlIGNhdGFsb2d1ZQorKyAgICBmYWN0b3IgPSAoMS4yICog dS5hcmNzZWMpICoqIDIgLyB1LnBpeGVsCisrICAgIGNvbnZlcnRlZF9hcGVydHVyZV9zdW0gPSAo cGhvdG9tZXRyeV9za3ljb29yZFsnYXBlcnR1cmVfc3VtJ10gKgorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGZhY3RvcikudG8odS5tSnkgLyB1LnBpeGVsKQorKworKyAgICBmbHV4ZXNf Y2F0YWxvZyA9IGNhdGFsb2dbJ2Y0XzUnXS5maWxsZWQoKQorKworKyAgICAjIFRoZXJlIHNob3Vs ZG4ndCBiZSBsYXJnZSBvdXRsaWVycywgYnV0IHNvbWUgZGlmZmVyZW5jZXMgaXMgT0ssIGFzCisr ICAgICMgZmx1eGVzX2NhdGFsb2cgaXMgYmFzZWQgb24gUFNGIHBob3RvbWV0cnksIGV0Yy4KKysg ICAgYXNzZXJ0X2FsbGNsb3NlKGZsdXhlc19jYXRhbG9nLCBjb252ZXJ0ZWRfYXBlcnR1cmVfc3Vt LnZhbHVlLCBydG9sPTFlMCkKKysKKysgICAgYXNzZXJ0KG5wLm1lYW4obnAuZmFicygoKGZsdXhl c19jYXRhbG9nIC0gY29udmVydGVkX2FwZXJ0dXJlX3N1bS52YWx1ZSkgLworKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBmbHV4ZXNfY2F0YWxvZykpKSA8IDAuMSkKKysKKysKKytkZWYgdGVz dF93Y3NfYmFzZWRfcGhvdG9tZXRyeSgpOgorKyAgICBkYXRhID0gbWFrZV80Z2F1c3NpYW5zX2lt YWdlKCkKKysgICAgd2NzID0gbWFrZV93Y3MoZGF0YS5zaGFwZSkKKysgICAgaGR1ID0gbWFrZV9p bWFnZWhkdShkYXRhLCB3Y3M9d2NzKQorKworKyAgICAjIGhhcmQgd2lyZWQgcG9zaXRpb25zIGlu IG1ha2VfNGdhdXNzaWFuX2ltYWdlCisrICAgIHBvc19vcmlnX3BpeGVsID0gdS5RdWFudGl0eSgo WzE2MC4sIDI1LiwgMTUwLiwgOTAuXSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBbNzAuLCA0MC4sIDI1LiwgNjAuXSksIHVuaXQ9dS5waXhlbCkKKysKKysgICAgcG9zX3NreWNv b3JkID0gcGl4ZWxfdG9fc2t5Y29vcmQocG9zX29yaWdfcGl4ZWxbMF0sIHBvc19vcmlnX3BpeGVs WzFdLCB3Y3MpCisrCisrICAgIHBvc19za3ljb29yZF9zID0gcG9zX3NreWNvb3JkWzJdCisrCisr ICAgIHBob3RvbWV0cnlfc2t5Y29vcmRfY2lyYyA9IGFwZXJ0dXJlX3Bob3RvbWV0cnkoCisrICAg ICAgICBoZHUsIFNreUNpcmN1bGFyQXBlcnR1cmUocG9zX3NreWNvb3JkLCAzICogdS5hcmNzZWMp KQorKyAgICBwaG90b21ldHJ5X3NreWNvb3JkX2NpcmNfMiA9IGFwZXJ0dXJlX3Bob3RvbWV0cnko CisrICAgICAgICBoZHUsIFNreUNpcmN1bGFyQXBlcnR1cmUocG9zX3NreWNvb3JkLCAyICogdS5h cmNzZWMpKQorKyAgICBwaG90b21ldHJ5X3NreWNvb3JkX2NpcmNfcyA9IGFwZXJ0dXJlX3Bob3Rv bWV0cnkoCisrICAgICAgICBoZHUsIFNreUNpcmN1bGFyQXBlcnR1cmUocG9zX3NreWNvb3JkX3Ms IDMgKiB1LmFyY3NlYykpCisrCisrICAgIGFzc2VydF9hbGxjbG9zZShwaG90b21ldHJ5X3NreWNv b3JkX2NpcmNbJ2FwZXJ0dXJlX3N1bSddWzJdLAorKyAgICAgICAgICAgICAgICAgICAgcGhvdG9t ZXRyeV9za3ljb29yZF9jaXJjX3NbJ2FwZXJ0dXJlX3N1bSddKQorKworKyAgICBwaG90b21ldHJ5 X3NreWNvb3JkX2NpcmNfYW5uID0gYXBlcnR1cmVfcGhvdG9tZXRyeSgKKysgICAgICAgIGhkdSwg U2t5Q2lyY3VsYXJBbm51bHVzKHBvc19za3ljb29yZCwgMiAqIHUuYXJjc2VjLCAzICogdS5hcmNz ZWMpKQorKyAgICBwaG90b21ldHJ5X3NreWNvb3JkX2NpcmNfYW5uX3MgPSBhcGVydHVyZV9waG90 b21ldHJ5KAorKyAgICAgICAgaGR1LCBTa3lDaXJjdWxhckFubnVsdXMocG9zX3NreWNvb3JkX3Ms IDIgKiB1LmFyY3NlYywgMyAqIHUuYXJjc2VjKSkKKysKKysgICAgYXNzZXJ0X2FsbGNsb3NlKHBo b3RvbWV0cnlfc2t5Y29vcmRfY2lyY19hbm5bJ2FwZXJ0dXJlX3N1bSddWzJdLAorKyAgICAgICAg ICAgICAgICAgICAgcGhvdG9tZXRyeV9za3ljb29yZF9jaXJjX2Fubl9zWydhcGVydHVyZV9zdW0n XSkKKysKKysgICAgYXNzZXJ0X2FsbGNsb3NlKHBob3RvbWV0cnlfc2t5Y29vcmRfY2lyY19hbm5b J2FwZXJ0dXJlX3N1bSddLAorKyAgICAgICAgICAgICAgICAgICAgcGhvdG9tZXRyeV9za3ljb29y ZF9jaXJjWydhcGVydHVyZV9zdW0nXSAtCisrICAgICAgICAgICAgICAgICAgICBwaG90b21ldHJ5 X3NreWNvb3JkX2NpcmNfMlsnYXBlcnR1cmVfc3VtJ10pCisrCisrICAgIHBob3RvbWV0cnlfc2t5 Y29vcmRfZWxsID0gYXBlcnR1cmVfcGhvdG9tZXRyeSgKKysgICAgICAgIGhkdSwgU2t5RWxsaXB0 aWNhbEFwZXJ0dXJlKHBvc19za3ljb29yZCwgMyAqIHUuYXJjc2VjLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMy4wMDAxICogdS5hcmNzZWMsIDQ1ICogdS5hcmNzZWMpKQor KyAgICBwaG90b21ldHJ5X3NreWNvb3JkX2VsbF8yID0gYXBlcnR1cmVfcGhvdG9tZXRyeSgKKysg ICAgICAgIGhkdSwgU2t5RWxsaXB0aWNhbEFwZXJ0dXJlKHBvc19za3ljb29yZCwgMiAqIHUuYXJj c2VjLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi4wMDAxICogdS5hcmNz ZWMsIDQ1ICogdS5hcmNzZWMpKQorKyAgICBwaG90b21ldHJ5X3NreWNvb3JkX2VsbF9zID0gYXBl cnR1cmVfcGhvdG9tZXRyeSgKKysgICAgICAgIGhkdSwgU2t5RWxsaXB0aWNhbEFwZXJ0dXJlKHBv c19za3ljb29yZF9zLCAzICogdS5hcmNzZWMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAzLjAwMDEgKiB1LmFyY3NlYywgNDUgKiB1LmFyY3NlYykpCisrICAgIHBob3RvbWV0 cnlfc2t5Y29vcmRfZWxsX2FubiA9IGFwZXJ0dXJlX3Bob3RvbWV0cnkoCisrICAgICAgICBoZHUs IFNreUVsbGlwdGljYWxBbm51bHVzKHBvc19za3ljb29yZCwgMiAqIHUuYXJjc2VjLCAzICogdS5h cmNzZWMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuMDAwMSAqIHUuYXJj c2VjLCA0NSAqIHUuYXJjc2VjKSkKKysgICAgcGhvdG9tZXRyeV9za3ljb29yZF9lbGxfYW5uX3Mg PSBhcGVydHVyZV9waG90b21ldHJ5KAorKyAgICAgICAgaGR1LCBTa3lFbGxpcHRpY2FsQW5udWx1 cyhwb3Nfc2t5Y29vcmRfcywgMiAqIHUuYXJjc2VjLCAzICogdS5hcmNzZWMsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDMuMDAwMSAqIHUuYXJjc2VjLCA0NSAqIHUuYXJjc2Vj KSkKKysKKysgICAgYXNzZXJ0X2FsbGNsb3NlKHBob3RvbWV0cnlfc2t5Y29vcmRfZWxsWydhcGVy dHVyZV9zdW0nXVsyXSwKKysgICAgICAgICAgICAgICAgICAgIHBob3RvbWV0cnlfc2t5Y29vcmRf ZWxsX3NbJ2FwZXJ0dXJlX3N1bSddKQorKworKyAgICBhc3NlcnRfYWxsY2xvc2UocGhvdG9tZXRy eV9za3ljb29yZF9lbGxfYW5uWydhcGVydHVyZV9zdW0nXVsyXSwKKysgICAgICAgICAgICAgICAg ICAgIHBob3RvbWV0cnlfc2t5Y29vcmRfZWxsX2Fubl9zWydhcGVydHVyZV9zdW0nXSkKKysKKysg ICAgYXNzZXJ0X2FsbGNsb3NlKHBob3RvbWV0cnlfc2t5Y29vcmRfZWxsWydhcGVydHVyZV9zdW0n XSwKKysgICAgICAgICAgICAgICAgICAgIHBob3RvbWV0cnlfc2t5Y29vcmRfY2lyY1snYXBlcnR1 cmVfc3VtJ10sIHJ0b2w9NWUtMykKKysKKysgICAgYXNzZXJ0X2FsbGNsb3NlKHBob3RvbWV0cnlf c2t5Y29vcmRfZWxsX2FublsnYXBlcnR1cmVfc3VtJ10sCisrICAgICAgICAgICAgICAgICAgICBw aG90b21ldHJ5X3NreWNvb3JkX2VsbFsnYXBlcnR1cmVfc3VtJ10gLQorKyAgICAgICAgICAgICAg ICAgICAgcGhvdG9tZXRyeV9za3ljb29yZF9lbGxfMlsnYXBlcnR1cmVfc3VtJ10sIHJ0b2w9MWUt NCkKKysKKysgICAgcGhvdG9tZXRyeV9za3ljb29yZF9yZWMgPSBhcGVydHVyZV9waG90b21ldHJ5 KAorKyAgICAgICAgaGR1LCBTa3lSZWN0YW5ndWxhckFwZXJ0dXJlKHBvc19za3ljb29yZCwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2ICogdS5hcmNzZWMsIDYgKiB1LmFy Y3NlYywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwICogdS5hcmNzZWMp LAorKyAgICAgICAgbWV0aG9kPSdzdWJwaXhlbCcsIHN1YnBpeGVscz0yMCkKKysgICAgcGhvdG9t ZXRyeV9za3ljb29yZF9yZWNfNCA9IGFwZXJ0dXJlX3Bob3RvbWV0cnkoCisrICAgICAgICBoZHUs IFNreVJlY3Rhbmd1bGFyQXBlcnR1cmUocG9zX3NreWNvb3JkLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDQgKiB1LmFyY3NlYywgNCAqIHUuYXJjc2VjLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAgKiB1LmFyY3NlYyksCisrICAgICAgICBtZXRo b2Q9J3N1YnBpeGVsJywgc3VicGl4ZWxzPTIwKQorKyAgICBwaG90b21ldHJ5X3NreWNvb3JkX3Jl Y19zID0gYXBlcnR1cmVfcGhvdG9tZXRyeSgKKysgICAgICAgIGhkdSwgU2t5UmVjdGFuZ3VsYXJB cGVydHVyZShwb3Nfc2t5Y29vcmRfcywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA2ICogdS5hcmNzZWMsIDYgKiB1LmFyY3NlYywKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAwICogdS5hcmNzZWMpLAorKyAgICAgICAgbWV0aG9kPSdzdWJwaXhlbCcs IHN1YnBpeGVscz0yMCkKKysgICAgcGhvdG9tZXRyeV9za3ljb29yZF9yZWNfYW5uID0gYXBlcnR1 cmVfcGhvdG9tZXRyeSgKKysgICAgICAgIGhkdSwgU2t5UmVjdGFuZ3VsYXJBbm51bHVzKHBvc19z a3ljb29yZCwgNCAqIHUuYXJjc2VjLCA2ICogdS5hcmNzZWMsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA2ICogdS5hcmNzZWMsIDAgKiB1LmFyY3NlYyksCisrICAgICAgICBt ZXRob2Q9J3N1YnBpeGVsJywgc3VicGl4ZWxzPTIwKQorKyAgICBwaG90b21ldHJ5X3NreWNvb3Jk X3JlY19hbm5fcyA9IGFwZXJ0dXJlX3Bob3RvbWV0cnkoCisrICAgICAgICBoZHUsIFNreVJlY3Rh bmd1bGFyQW5udWx1cyhwb3Nfc2t5Y29vcmRfcywgNCAqIHUuYXJjc2VjLCA2ICogdS5hcmNzZWMs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2ICogdS5hcmNzZWMsIDAgKiB1 LmFyY3NlYyksCisrICAgICAgICBtZXRob2Q9J3N1YnBpeGVsJywgc3VicGl4ZWxzPTIwKQorKwor KyAgICBhc3NlcnRfYWxsY2xvc2UocGhvdG9tZXRyeV9za3ljb29yZF9yZWNbJ2FwZXJ0dXJlX3N1 bSddWzJdLAorKyAgICAgICAgICAgICAgICAgICAgcGhvdG9tZXRyeV9za3ljb29yZF9yZWNfc1sn YXBlcnR1cmVfc3VtJ10pCisrCisrICAgIGFzc2VydCBucC5hbGwocGhvdG9tZXRyeV9za3ljb29y ZF9yZWNbJ2FwZXJ0dXJlX3N1bSddID4KKysgICAgICAgICAgICAgICAgICBwaG90b21ldHJ5X3Nr eWNvb3JkX2NpcmNbJ2FwZXJ0dXJlX3N1bSddKQorKworKyAgICBhc3NlcnRfYWxsY2xvc2UocGhv dG9tZXRyeV9za3ljb29yZF9yZWNfYW5uWydhcGVydHVyZV9zdW0nXVsyXSwKKysgICAgICAgICAg ICAgICAgICAgIHBob3RvbWV0cnlfc2t5Y29vcmRfcmVjX2Fubl9zWydhcGVydHVyZV9zdW0nXSkK KysKKysgICAgYXNzZXJ0X2FsbGNsb3NlKHBob3RvbWV0cnlfc2t5Y29vcmRfcmVjX2FublsnYXBl cnR1cmVfc3VtJ10sCisrICAgICAgICAgICAgICAgICAgICBwaG90b21ldHJ5X3NreWNvb3JkX3Jl Y1snYXBlcnR1cmVfc3VtJ10gLQorKyAgICAgICAgICAgICAgICAgICAgcGhvdG9tZXRyeV9za3lj b29yZF9yZWNfNFsnYXBlcnR1cmVfc3VtJ10sIHJ0b2w9MWUtNCkKKysKKysKKytkZWYgdGVzdF9i YXNpY19jaXJjdWxhcl9hcGVydHVyZV9waG90b21ldHJ5X3VuaXQoKToKKysgICAgZGF0YTEgPSBu cC5vbmVzKCg0MCwgNDApLCBkdHlwZT1ucC5mbG9hdCkKKysgICAgZGF0YTIgPSB1LlF1YW50aXR5 KGRhdGExLCB1bml0PXUuYWR1KQorKworKyAgICByYWRpdXMgPSAzCisrICAgIHBvc2l0aW9uID0g KDIwLCAyMCkKKysgICAgdHJ1ZV9mbHV4ID0gbnAucGkgKiByYWRpdXMgKiByYWRpdXMKKysgICAg dW5pdCA9IHUuYWR1CisrCisrICAgIHRhYmxlMSA9IGFwZXJ0dXJlX3Bob3RvbWV0cnkoZGF0YTEs IENpcmN1bGFyQXBlcnR1cmUocG9zaXRpb24sIHJhZGl1cyksCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdW5pdD11bml0KQorKyAgICB0YWJsZTIgPSBhcGVydHVyZV9waG90b21l dHJ5KGRhdGEyLCBDaXJjdWxhckFwZXJ0dXJlKHBvc2l0aW9uLCByYWRpdXMpLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVuaXQ9dW5pdCkKKysKKysgICAgYXNzZXJ0X2FsbGNs b3NlKHRhYmxlMVsnYXBlcnR1cmVfc3VtJ10udmFsdWUsIHRydWVfZmx1eCkKKysgICAgYXNzZXJ0 X2FsbGNsb3NlKHRhYmxlMlsnYXBlcnR1cmVfc3VtJ10udmFsdWUsIHRydWVfZmx1eCkKKysgICAg YXNzZXJ0IHRhYmxlMVsnYXBlcnR1cmVfc3VtJ10udW5pdCA9PSB1bml0CisrICAgIGFzc2VydCB0 YWJsZTJbJ2FwZXJ0dXJlX3N1bSddLnVuaXQgPT0gZGF0YTIudW5pdCA9PSB1bml0CisrCisrCisr ZGVmIHRlc3RfYXBlcnR1cmVfcGhvdG9tZXRyeV93aXRoX2Vycm9yX3VuaXRzKCk6CisrICAgICIi IlRlc3QgYXBlcnR1cmVfcGhvdG9tZXRyeSB3aGVuIGVycm9yIGhhcyB1bml0cyAoc2VlICMxNzYp LiIiIgorKworKyAgICBkYXRhMSA9IG5wLm9uZXMoKDQwLCA0MCksIGR0eXBlPW5wLmZsb2F0KQor KyAgICBkYXRhMiA9IHUuUXVhbnRpdHkoZGF0YTEsIHVuaXQ9dS5hZHUpCisrICAgIGVycm9yID0g dS5RdWFudGl0eShkYXRhMSwgdW5pdD11LmFkdSkKKysgICAgcmFkaXVzID0gMworKyAgICB0cnVl X2ZsdXggPSBucC5waSAqIHJhZGl1cyAqIHJhZGl1cworKyAgICB1bml0ID0gdS5hZHUKKysgICAg cG9zaXRpb24gPSAoMjAsIDIwKQorKyAgICB0YWJsZTEgPSBhcGVydHVyZV9waG90b21ldHJ5KGRh dGEyLCBDaXJjdWxhckFwZXJ0dXJlKHBvc2l0aW9uLCByYWRpdXMpLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGVycm9yPWVycm9yKQorKyAgICBhc3NlcnRfYWxsY2xvc2UodGFi bGUxWydhcGVydHVyZV9zdW0nXS52YWx1ZSwgdHJ1ZV9mbHV4KQorKyAgICBhc3NlcnRfYWxsY2xv c2UodGFibGUxWydhcGVydHVyZV9zdW1fZXJyJ10udmFsdWUsIG5wLnNxcnQodHJ1ZV9mbHV4KSkK KysgICAgYXNzZXJ0IHRhYmxlMVsnYXBlcnR1cmVfc3VtJ10udW5pdCA9PSB1bml0CisrICAgIGFz c2VydCB0YWJsZTFbJ2FwZXJ0dXJlX3N1bV9lcnInXS51bml0ID09IHVuaXQKKysKKysKKytkZWYg dGVzdF9hcGVydHVyZV9waG90b21ldHJ5X2lucHV0c193aXRoX21hc2soKToKKysgICAgIiIiCisr ICAgIFRlc3QgdGhhdCBhcGVydHVyZV9waG90b21ldHJ5IGRvZXMgbm90IG1vZGlmeSB0aGUgaW5w dXQKKysgICAgZGF0YSBvciBlcnJvciBhcnJheSB3aGVuIGEgbWFzayBpcyBpbnB1dC4KKysgICAg IiIiCisrCisrICAgIGRhdGEgPSBucC5vbmVzKCg1LCA1KSkKKysgICAgYXBlcnR1cmUgPSBDaXJj dWxhckFwZXJ0dXJlKCgyLCAyKSwgMi4pCisrICAgIG1hc2sgPSBucC56ZXJvc19saWtlKGRhdGEs IGR0eXBlPWJvb2wpCisrICAgIGRhdGFbMiwgMl0gPSAxMDAuICAgIyBiYWQgcGl4ZWwKKysgICAg bWFza1syLCAyXSA9IFRydWUKKysgICAgZXJyb3IgPSBucC5zcXJ0KGRhdGEpCisrICAgIGRhdGFf aW4gPSBkYXRhLmNvcHkoKQorKyAgICBlcnJvcl9pbiA9IGVycm9yLmNvcHkoKQorKyAgICB0MSA9 IGFwZXJ0dXJlX3Bob3RvbWV0cnkoZGF0YSwgYXBlcnR1cmUsIGVycm9yPWVycm9yLCBtYXNrPW1h c2spCisrICAgIGFzc2VydF9hcnJheV9lcXVhbChkYXRhLCBkYXRhX2luKQorKyAgICBhc3NlcnRf YXJyYXlfZXF1YWwoZXJyb3IsIGVycm9yX2luKQorKyAgICBhc3NlcnRfYWxsY2xvc2UodDFbJ2Fw ZXJ0dXJlX3N1bSddWzBdLCAxMS41NjYzNzA2MTQ0KQorKyAgICB0MiA9IGFwZXJ0dXJlX3Bob3Rv bWV0cnkoZGF0YSwgYXBlcnR1cmUpCisrICAgIGFzc2VydF9hbGxjbG9zZSh0MlsnYXBlcnR1cmVf c3VtJ11bMF0sIDExMS41NjYzNzA2MTQpCisrCisrCisrVEVTVF9FTExJUFNFX0VYQUNUX0FQRVJU VVJFUyA9IFsoMy40Njk5MDYsIDMuOTIzODYxMzk0LCAzLiksCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoMC4zODM0NDE1MTg4MjU3Nzc4LCAwLjM4MzQ0MTUxODgyNTc3NzgsIDAu MyldCisrCisrCisrQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCd4LHkscicsIFRFU1RfRUxMSVBT RV9FWEFDVF9BUEVSVFVSRVMpCisrZGVmIHRlc3RfZWxsaXBzZV9leGFjdF9ncmlkKHgsIHksIHIp OgorKyAgICAiIiIKKysgICAgVGVzdCBlbGxpcHRpY2FsIGV4YWN0IGFwZXJ0dXJlIHBob3RvbWV0 cnkgb24gYSBncmlkIG9mIHBpeGVsIHBvc2l0aW9ucy4KKysKKysgICAgVGhpcyBpcyBhIHJlZ3Jl c3Npb24gdGVzdCBmb3IgdGhlIGJ1ZyBkaXNjb3ZlcmVkIGluIHRoaXMgaXNzdWU6CisrICAgIGh0 dHBzOi8vZ2l0aHViLmNvbS9hc3Ryb3B5L3Bob3R1dGlscy9pc3N1ZXMvMTk4CisrICAgICIiIgor KworKyAgICBkYXRhID0gbnAub25lcygoMTAsIDEwKSkKKysKKysgICAgYXBlcnR1cmUgPSBFbGxp cHRpY2FsQXBlcnR1cmUoKHgsIHkpLCByLCByLCAwLikKKysgICAgdCA9IGFwZXJ0dXJlX3Bob3Rv bWV0cnkoZGF0YSwgYXBlcnR1cmUsIG1ldGhvZD0nZXhhY3QnKQorKyAgICBhY3R1YWwgPSB0Wydh cGVydHVyZV9zdW0nXVswXSAvIChucC5waSAqIHIgKiogMikKKysgICAgYXNzZXJ0X2FsbGNsb3Nl KGFjdHVhbCwgMSkKKysKKysKKytAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ3ZhbHVlJywgW25w Lm5hbiwgbnAuaW5mXSkKKytkZWYgdGVzdF9uYW5faW5mX21hc2sodmFsdWUpOgorKyAgICAiIiJU ZXN0IHRoYXQgbmFucyBhbmQgaW5mcyBhcmUgcHJvcGVybHkgbWFza2VkIFsyNjddLiIiIgorKwor KyAgICBkYXRhID0gbnAub25lcygoOSwgOSkpCisrICAgIG1hc2sgPSBucC56ZXJvc19saWtlKGRh dGEsIGR0eXBlPWJvb2wpCisrICAgIGRhdGFbNCwgNF0gPSB2YWx1ZQorKyAgICBtYXNrWzQsIDRd ID0gVHJ1ZQorKyAgICByYWRpdXMgPSAyLgorKyAgICBhcGVyID0gQ2lyY3VsYXJBcGVydHVyZSgo NCwgNCksIHJhZGl1cykKKysgICAgdGJsID0gYXBlcnR1cmVfcGhvdG9tZXRyeShkYXRhLCBhcGVy LCBtYXNrPW1hc2spCisrICAgIGRlc2lyZWQgPSAobnAucGkgKiByYWRpdXMqKjIpIC0gMQorKyAg ICBhc3NlcnRfYWxsY2xvc2UodGJsWydhcGVydHVyZV9zdW0nXSwgZGVzaXJlZCkKKysKKysKKytk ZWYgdGVzdF9hcGVydHVyZV9wYXJ0aWFsX292ZXJsYXAoKToKKysgICAgZGF0YSA9IG5wLm9uZXMo KDIwLCAyMCkpCisrICAgIGVycm9yID0gbnAub25lcygoMjAsIDIwKSkKKysgICAgeHlwb3MgPSBb KDEwLCAxMCksICgwLCAwKSwgKDAsIDE5KSwgKDE5LCAwKSwgKDE5LCAxOSldCisrICAgIHIgPSA1 LgorKyAgICBhcGVyID0gQ2lyY3VsYXJBcGVydHVyZSh4eXBvcywgcj1yKQorKyAgICB0YmwgPSBh cGVydHVyZV9waG90b21ldHJ5KGRhdGEsIGFwZXIsIGVycm9yPWVycm9yKQorKyAgICBhc3NlcnRf YWxsY2xvc2UodGJsWydhcGVydHVyZV9zdW0nXVswXSwgbnAucGkgKiByICoqIDIpCisrICAgIGFz c2VydF9hcnJheV9sZXNzKHRibFsnYXBlcnR1cmVfc3VtJ11bMTpdLCBucC5waSAqIHIgKiogMikK KysKKysgICAgdW5pdCA9IHUuTUp5IC8gdS5zcgorKyAgICB0YmwgPSBhcGVydHVyZV9waG90b21l dHJ5KGRhdGEgKiB1bml0LCBhcGVyLCBlcnJvcj1lcnJvciAqIHVuaXQpCisrICAgIGFzc2VydF9h bGxjbG9zZSh0YmxbJ2FwZXJ0dXJlX3N1bSddWzBdLnZhbHVlLCBucC5waSAqIHIgKiogMikKKysg ICAgYXNzZXJ0X2FycmF5X2xlc3ModGJsWydhcGVydHVyZV9zdW0nXVsxOl0udmFsdWUsIG5wLnBp ICogciAqKiAyKQorKyAgICBhc3NlcnRfYXJyYXlfbGVzcyh0YmxbJ2FwZXJ0dXJlX3N1bV9lcnIn XVsxOl0udmFsdWUsIG5wLnBpICogciAqKiAyKQorKyAgICBhc3NlcnQgdGJsWydhcGVydHVyZV9z dW0nXS51bml0ID09IHVuaXQKKysgICAgYXNzZXJ0IHRibFsnYXBlcnR1cmVfc3VtX2VyciddLnVu aXQgPT0gdW5pdAorKworKworK2RlZiB0ZXN0X3BpeGVsX2FwZXJ0dXJlX3JlcHIoKToKKysgICAg YXBlciA9IENpcmN1bGFyQXBlcnR1cmUoKDEwLCAyMCksIHI9My4wKQorKyAgICBhX3JlcHIgPSAn PENpcmN1bGFyQXBlcnR1cmUoW1sxMCwgMjBdXSwgcj0zLjApPicKKysgICAgYV9zdHIgPSAnQXBl cnR1cmU6IENpcmN1bGFyQXBlcnR1cmVcbnBvc2l0aW9uczogW1sxMCwgMjBdXVxucjogMy4wJwor KyAgICBhc3NlcnQgcmVwcihhcGVyKSA9PSBhX3JlcHIKKysgICAgYXNzZXJ0IHN0cihhcGVyKSA9 PSBhX3N0cgorKworKyAgICBhcGVyID0gQ2lyY3VsYXJBbm51bHVzKCgxMCwgMjApLCByX2luPTMu MCwgcl9vdXQ9NS4wKQorKyAgICBhX3JlcHIgPSAnPENpcmN1bGFyQW5udWx1cyhbWzEwLCAyMF1d LCByX2luPTMuMCwgcl9vdXQ9NS4wKT4nCisrICAgIGFfc3RyID0gKCdBcGVydHVyZTogQ2lyY3Vs YXJBbm51bHVzXG5wb3NpdGlvbnM6IFtbMTAsIDIwXV1cbnJfaW46IDMuMFxuJworKyAgICAgICAg ICAgICAncl9vdXQ6IDUuMCcpCisrICAgIGFzc2VydCByZXByKGFwZXIpID09IGFfcmVwcgorKyAg ICBhc3NlcnQgc3RyKGFwZXIpID09IGFfc3RyCisrCisrICAgIGFwZXIgPSBFbGxpcHRpY2FsQXBl cnR1cmUoKDEwLCAyMCksIGE9NS4wLCBiPTMuMCwgdGhldGE9MTUuMCkKKysgICAgYV9yZXByID0g JzxFbGxpcHRpY2FsQXBlcnR1cmUoW1sxMCwgMjBdXSwgYT01LjAsIGI9My4wLCB0aGV0YT0xNS4w KT4nCisrICAgIGFfc3RyID0gKCdBcGVydHVyZTogRWxsaXB0aWNhbEFwZXJ0dXJlXG5wb3NpdGlv bnM6IFtbMTAsIDIwXV1cbicKKysgICAgICAgICAgICAgJ2E6IDUuMFxuYjogMy4wXG50aGV0YTog MTUuMCcpCisrICAgIGFzc2VydCByZXByKGFwZXIpID09IGFfcmVwcgorKyAgICBhc3NlcnQgc3Ry KGFwZXIpID09IGFfc3RyCisrCisrICAgIGFwZXIgPSBFbGxpcHRpY2FsQW5udWx1cygoMTAsIDIw KSwgYV9pbj00LjAsIGFfb3V0PTguMCwgYl9vdXQ9NC4wLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdGhldGE9MTUuMCkKKysgICAgYV9yZXByID0gKCc8RWxsaXB0aWNhbEFubnVsdXMo W1sxMCwgMjBdXSwgYV9pbj00LjAsIGFfb3V0PTguMCwgYl9vdXQ9JworKyAgICAgICAgICAgICAg JzQuMCwgdGhldGE9MTUuMCk+JykKKysgICAgYV9zdHIgPSAoJ0FwZXJ0dXJlOiBFbGxpcHRpY2Fs QW5udWx1c1xucG9zaXRpb25zOiBbWzEwLCAyMF1dXG5hX2luOiAnCisrICAgICAgICAgICAgICc0 LjBcbmFfb3V0OiA4LjBcbmJfb3V0OiA0LjBcbnRoZXRhOiAxNS4wJykKKysgICAgYXNzZXJ0IHJl cHIoYXBlcikgPT0gYV9yZXByCisrICAgIGFzc2VydCBzdHIoYXBlcikgPT0gYV9zdHIKKysKKysg ICAgYXBlciA9IFJlY3Rhbmd1bGFyQXBlcnR1cmUoKDEwLCAyMCksIHc9NS4wLCBoPTMuMCwgdGhl dGE9MTUuMCkKKysgICAgYV9yZXByID0gJzxSZWN0YW5ndWxhckFwZXJ0dXJlKFtbMTAsIDIwXV0s IHc9NS4wLCBoPTMuMCwgdGhldGE9MTUuMCk+JworKyAgICBhX3N0ciA9ICgnQXBlcnR1cmU6IFJl Y3Rhbmd1bGFyQXBlcnR1cmVcbnBvc2l0aW9uczogW1sxMCwgMjBdXVxuJworKyAgICAgICAgICAg ICAndzogNS4wXG5oOiAzLjBcbnRoZXRhOiAxNS4wJykKKysgICAgYXNzZXJ0IHJlcHIoYXBlcikg PT0gYV9yZXByCisrICAgIGFzc2VydCBzdHIoYXBlcikgPT0gYV9zdHIKKysKKysgICAgYXBlciA9 IFJlY3Rhbmd1bGFyQW5udWx1cygoMTAsIDIwKSwgd19pbj00LjAsIHdfb3V0PTguMCwgaF9vdXQ9 NC4wLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZXRhPTE1LjApCisrICAgIGFf cmVwciA9ICgnPFJlY3Rhbmd1bGFyQW5udWx1cyhbWzEwLCAyMF1dLCB3X2luPTQuMCwgd19vdXQ9 OC4wLCAnCisrICAgICAgICAgICAgICAnaF9vdXQ9NC4wLCB0aGV0YT0xNS4wKT4nKQorKyAgICBh X3N0ciA9ICgnQXBlcnR1cmU6IFJlY3Rhbmd1bGFyQW5udWx1c1xucG9zaXRpb25zOiBbWzEwLCAy MF1dXG4nCisrICAgICAgICAgICAgICd3X2luOiA0LjBcbndfb3V0OiA4LjBcbmhfb3V0OiA0LjBc bnRoZXRhOiAxNS4wJykKKysgICAgYXNzZXJ0IHJlcHIoYXBlcikgPT0gYV9yZXByCisrICAgIGFz c2VydCBzdHIoYXBlcikgPT0gYV9zdHIKKysKKysKKytkZWYgdGVzdF9za3lfYXBlcnR1cmVfcmVw cigpOgorKyAgICBzID0gU2t5Q29vcmQoWzEsIDJdLCBbMywgNF0sIHVuaXQ9J2RlZycpCisrCisr ICAgIGFwZXIgPSBTa3lDaXJjdWxhckFwZXJ0dXJlKHMsIHI9Myp1LnBpeCkKKysgICAgYV9yZXBy ID0gKCc8U2t5Q2lyY3VsYXJBcGVydHVyZSg8U2t5Q29vcmQgKElDUlMpOiAocmEsIGRlYykgaW4g ZGVnXG4nCisrICAgICAgICAgICAgICAnICAgIFsoIDEuLCAgMy4pLCAoIDIuLCAgNC4pXT4sIHI9 My4wIHBpeCk+JykKKysgICAgYV9zdHIgPSAoJ0FwZXJ0dXJlOiBTa3lDaXJjdWxhckFwZXJ0dXJl XG5wb3NpdGlvbnM6IDxTa3lDb29yZCAnCisrICAgICAgICAgICAgICcoSUNSUyk6IChyYSwgZGVj KSBpbiBkZWdcbiAgICBbKCAxLiwgIDMuKSwgKCAyLiwgIDQuKV0+XG4nCisrICAgICAgICAgICAg ICdyOiAzLjAgcGl4JykKKysgICAgYXNzZXJ0IHJlcHIoYXBlcikgPT0gYV9yZXByCisrICAgIGFz c2VydCBzdHIoYXBlcikgPT0gYV9zdHIKKysKKysgICAgYXBlciA9IFNreUNpcmN1bGFyQW5udWx1 cyhzLCByX2luPTMuKnUucGl4LCByX291dD01KnUucGl4KQorKyAgICBhX3JlcHIgPSAoJzxTa3lD aXJjdWxhckFubnVsdXMoPFNreUNvb3JkIChJQ1JTKTogKHJhLCBkZWMpIGluIGRlZ1xuJworKyAg ICAgICAgICAgICAgJyAgICBbKCAxLiwgIDMuKSwgKCAyLiwgIDQuKV0+LCByX2luPTMuMCBwaXgs IHJfb3V0PTUuMCBwaXgpPicpCisrICAgIGFfc3RyID0gKCdBcGVydHVyZTogU2t5Q2lyY3VsYXJB bm51bHVzXG5wb3NpdGlvbnM6IDxTa3lDb29yZCAnCisrICAgICAgICAgICAgICcoSUNSUyk6IChy YSwgZGVjKSBpbiBkZWdcbiAgICBbKCAxLiwgIDMuKSwgKCAyLiwgIDQuKV0+XG4nCisrICAgICAg ICAgICAgICdyX2luOiAzLjAgcGl4XG5yX291dDogNS4wIHBpeCcpCisrICAgIGFzc2VydCByZXBy KGFwZXIpID09IGFfcmVwcgorKyAgICBhc3NlcnQgc3RyKGFwZXIpID09IGFfc3RyCisrCisrICAg IGFwZXIgPSBTa3lFbGxpcHRpY2FsQXBlcnR1cmUocywgYT0zKnUucGl4LCBiPTUqdS5waXgsIHRo ZXRhPTE1KnUuZGVnKQorKyAgICBhX3JlcHIgPSAoJzxTa3lFbGxpcHRpY2FsQXBlcnR1cmUoPFNr eUNvb3JkIChJQ1JTKTogKHJhLCBkZWMpIGluICcKKysgICAgICAgICAgICAgICdkZWdcbiAgICBb KCAxLiwgIDMuKSwgKCAyLiwgIDQuKV0+LCBhPTMuMCBwaXgsIGI9NS4wIHBpeCwnCisrICAgICAg ICAgICAgICAnIHRoZXRhPTE1LjAgZGVnKT4nKQorKyAgICBhX3N0ciA9ICgnQXBlcnR1cmU6IFNr eUVsbGlwdGljYWxBcGVydHVyZVxucG9zaXRpb25zOiA8U2t5Q29vcmQgJworKyAgICAgICAgICAg ICAnKElDUlMpOiAocmEsIGRlYykgaW4gZGVnXG4gICAgWyggMS4sICAzLiksICggMi4sICA0Lild PlxuJworKyAgICAgICAgICAgICAnYTogMy4wIHBpeFxuYjogNS4wIHBpeFxudGhldGE6IDE1LjAg ZGVnJykKKysgICAgYXNzZXJ0IHJlcHIoYXBlcikgPT0gYV9yZXByCisrICAgIGFzc2VydCBzdHIo YXBlcikgPT0gYV9zdHIKKysKKysgICAgYXBlciA9IFNreUVsbGlwdGljYWxBbm51bHVzKHMsIGFf aW49Myp1LnBpeCwgYV9vdXQ9NSp1LnBpeCwgYl9vdXQ9Myp1LnBpeCwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHRoZXRhPTE1KnUuZGVnKQorKyAgICBhX3JlcHIgPSAoJzxTa3lF bGxpcHRpY2FsQW5udWx1cyg8U2t5Q29vcmQgKElDUlMpOiAocmEsIGRlYykgaW4gJworKyAgICAg ICAgICAgICAgJ2RlZ1xuICAgIFsoIDEuLCAgMy4pLCAoIDIuLCAgNC4pXT4sIGFfaW49My4wIHBp eCwgJworKyAgICAgICAgICAgICAgJ2Ffb3V0PTUuMCBwaXgsIGJfb3V0PTMuMCBwaXgsIHRoZXRh PTE1LjAgZGVnKT4nKQorKyAgICBhX3N0ciA9ICgnQXBlcnR1cmU6IFNreUVsbGlwdGljYWxBbm51 bHVzXG5wb3NpdGlvbnM6IDxTa3lDb29yZCAnCisrICAgICAgICAgICAgICcoSUNSUyk6IChyYSwg ZGVjKSBpbiBkZWdcbiAgICBbKCAxLiwgIDMuKSwgKCAyLiwgIDQuKV0+XG4nCisrICAgICAgICAg ICAgICdhX2luOiAzLjAgcGl4XG5hX291dDogNS4wIHBpeFxuYl9vdXQ6IDMuMCBwaXhcbicKKysg ICAgICAgICAgICAgJ3RoZXRhOiAxNS4wIGRlZycpCisrICAgIGFzc2VydCByZXByKGFwZXIpID09 IGFfcmVwcgorKyAgICBhc3NlcnQgc3RyKGFwZXIpID09IGFfc3RyCisrCisrICAgIGFwZXIgPSBT a3lSZWN0YW5ndWxhckFwZXJ0dXJlKHMsIHc9Myp1LnBpeCwgaD01KnUucGl4LCB0aGV0YT0xNSp1 LmRlZykKKysgICAgYV9yZXByID0gKCc8U2t5UmVjdGFuZ3VsYXJBcGVydHVyZSg8U2t5Q29vcmQg KElDUlMpOiAocmEsIGRlYykgaW4gJworKyAgICAgICAgICAgICAgJ2RlZ1xuICAgIFsoIDEuLCAg My4pLCAoIDIuLCAgNC4pXT4sIHc9My4wIHBpeCwgaD01LjAgcGl4JworKyAgICAgICAgICAgICAg JywgdGhldGE9MTUuMCBkZWcpPicpCisrICAgIGFfc3RyID0gKCdBcGVydHVyZTogU2t5UmVjdGFu Z3VsYXJBcGVydHVyZVxucG9zaXRpb25zOiA8U2t5Q29vcmQgJworKyAgICAgICAgICAgICAnKElD UlMpOiAocmEsIGRlYykgaW4gZGVnXG4gICAgWyggMS4sICAzLiksICggMi4sICA0LildPlxuJwor KyAgICAgICAgICAgICAndzogMy4wIHBpeFxuaDogNS4wIHBpeFxudGhldGE6IDE1LjAgZGVnJykK KysgICAgYXNzZXJ0IHJlcHIoYXBlcikgPT0gYV9yZXByCisrICAgIGFzc2VydCBzdHIoYXBlcikg PT0gYV9zdHIKKysKKysgICAgYXBlciA9IFNreVJlY3Rhbmd1bGFyQW5udWx1cyhzLCB3X2luPTMq dS5waXgsIHdfb3V0PTMuNCp1LnBpeCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBoX291dD01KnUucGl4LCB0aGV0YT0xNSp1LmRlZykKKysgICAgYV9yZXByID0gKCc8U2t5UmVj dGFuZ3VsYXJBbm51bHVzKDxTa3lDb29yZCAoSUNSUyk6IChyYSwgZGVjKSBpbiBkZWcnCisrICAg ICAgICAgICAgICAnXG4gICAgWyggMS4sICAzLiksICggMi4sICA0LildPiwgd19pbj0zLjAgcGl4 LCAnCisrICAgICAgICAgICAgICAnd19vdXQ9My40IHBpeCwgaF9vdXQ9NS4wIHBpeCwgdGhldGE9 MTUuMCBkZWcpPicpCisrICAgIGFfc3RyID0gKCdBcGVydHVyZTogU2t5UmVjdGFuZ3VsYXJBbm51 bHVzXG5wb3NpdGlvbnM6IDxTa3lDb29yZCAnCisrICAgICAgICAgICAgICcoSUNSUyk6IChyYSwg ZGVjKSBpbiBkZWdcbiAgICBbKCAxLiwgIDMuKSwgKCAyLiwgIDQuKV0+XG4nCisrICAgICAgICAg ICAgICd3X2luOiAzLjAgcGl4XG53X291dDogMy40IHBpeFxuaF9vdXQ6IDUuMCBwaXhcbicKKysg ICAgICAgICAgICAgJ3RoZXRhOiAxNS4wIGRlZycpCisrICAgIGFzc2VydCByZXByKGFwZXIpID09 IGFfcmVwcgorKyAgICBhc3NlcnQgc3RyKGFwZXIpID09IGFfc3RyCisrCisrCisrZGVmIHRlc3Rf cmVjdGFuZ3VsYXJfYmJveCgpOgorKyAgICAjIG9kZCBzaXplcworKyAgICB3aWR0aCA9IDcKKysg ICAgaGVpZ2h0ID0gMworKyAgICBhID0gUmVjdGFuZ3VsYXJBcGVydHVyZSgoNTAsIDUwKSwgdz13 aWR0aCwgaD1oZWlnaHQsIHRoZXRhPTApCisrICAgIGFzc2VydCBhLmJvdW5kaW5nX2JveGVzWzBd LnNoYXBlID09IChoZWlnaHQsIHdpZHRoKQorKworKyAgICBhID0gUmVjdGFuZ3VsYXJBcGVydHVy ZSgoNTAuNSwgNTAuNSksIHc9d2lkdGgsIGg9aGVpZ2h0LCB0aGV0YT0wKQorKyAgICBhc3NlcnQg YS5ib3VuZGluZ19ib3hlc1swXS5zaGFwZSA9PSAoaGVpZ2h0ICsgMSwgd2lkdGggKyAxKQorKwor KyAgICBhID0gUmVjdGFuZ3VsYXJBcGVydHVyZSgoNTAsIDUwKSwgdz13aWR0aCwgaD1oZWlnaHQs IHRoZXRhPTkwLipucC5waS8xODAuKQorKyAgICBhc3NlcnQgYS5ib3VuZGluZ19ib3hlc1swXS5z aGFwZSA9PSAod2lkdGgsIGhlaWdodCkKKysKKysgICAgIyBldmVuIHNpemVzCisrICAgIHdpZHRo ID0gOAorKyAgICBoZWlnaHQgPSA0CisrICAgIGEgPSBSZWN0YW5ndWxhckFwZXJ0dXJlKCg1MCwg NTApLCB3PXdpZHRoLCBoPWhlaWdodCwgdGhldGE9MCkKKysgICAgYXNzZXJ0IGEuYm91bmRpbmdf Ym94ZXNbMF0uc2hhcGUgPT0gKGhlaWdodCArIDEsIHdpZHRoICsgMSkKKysKKysgICAgYSA9IFJl Y3Rhbmd1bGFyQXBlcnR1cmUoKDUwLjUsIDUwLjUpLCB3PXdpZHRoLCBoPWhlaWdodCwgdGhldGE9 MCkKKysgICAgYXNzZXJ0IGEuYm91bmRpbmdfYm94ZXNbMF0uc2hhcGUgPT0gKGhlaWdodCwgd2lk dGgpCisrCisrICAgIGEgPSBSZWN0YW5ndWxhckFwZXJ0dXJlKCg1MC41LCA1MC41KSwgdz13aWR0 aCwgaD1oZWlnaHQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZXRhPTkwLipucC5w aS8xODAuKQorKyAgICBhc3NlcnQgYS5ib3VuZGluZ19ib3hlc1swXS5zaGFwZSA9PSAod2lkdGgs IGhlaWdodCkKKysKKysKKytkZWYgdGVzdF9lbGxpcHRpY2FsX2Jib3goKToKKysgICAgIyBpbnRl Z2VyIGF4ZXMKKysgICAgYSA9IDcKKysgICAgYiA9IDMKKysgICAgYXAgPSBFbGxpcHRpY2FsQXBl cnR1cmUoKDUwLCA1MCksIGE9YSwgYj1iLCB0aGV0YT0wKQorKyAgICBhc3NlcnQgYXAuYm91bmRp bmdfYm94ZXNbMF0uc2hhcGUgPT0gKDIqYiArIDEsIDIqYSArIDEpCisrCisrICAgIGFwID0gRWxs aXB0aWNhbEFwZXJ0dXJlKCg1MC41LCA1MC41KSwgYT1hLCBiPWIsIHRoZXRhPTApCisrICAgIGFz c2VydCBhcC5ib3VuZGluZ19ib3hlc1swXS5zaGFwZSA9PSAoMipiLCAyKmEpCisrCisrICAgIGFw ID0gRWxsaXB0aWNhbEFwZXJ0dXJlKCg1MCwgNTApLCBhPWEsIGI9YiwgdGhldGE9OTAuKm5wLnBp LzE4MC4pCisrICAgIGFzc2VydCBhcC5ib3VuZGluZ19ib3hlc1swXS5zaGFwZSA9PSAoMiphICsg MSwgMipiICsgMSkKKysKKysgICAgIyBmcmFjdGlvbmFsIGF4ZXMKKysgICAgYSA9IDcuNQorKyAg ICBiID0gNC41CisrICAgIGFwID0gRWxsaXB0aWNhbEFwZXJ0dXJlKCg1MCwgNTApLCBhPWEsIGI9 YiwgdGhldGE9MCkKKysgICAgYXNzZXJ0IGFwLmJvdW5kaW5nX2JveGVzWzBdLnNoYXBlID09ICgy KmIsIDIqYSkKKysKKysgICAgYXAgPSBFbGxpcHRpY2FsQXBlcnR1cmUoKDUwLjUsIDUwLjUpLCBh PWEsIGI9YiwgdGhldGE9MCkKKysgICAgYXNzZXJ0IGFwLmJvdW5kaW5nX2JveGVzWzBdLnNoYXBl ID09ICgyKmIgKyAxLCAyKmEgKyAxKQorKworKyAgICBhcCA9IEVsbGlwdGljYWxBcGVydHVyZSgo NTAsIDUwKSwgYT1hLCBiPWIsIHRoZXRhPTkwLipucC5waS8xODAuKQorKyAgICBhc3NlcnQgYXAu Ym91bmRpbmdfYm94ZXNbMF0uc2hhcGUgPT0gKDIqYSwgMipiKQorKworKworK2RlZiB0ZXN0X3Rv X3NreV9waXhlbCgpOgorKyAgICBkYXRhID0gbWFrZV80Z2F1c3NpYW5zX2ltYWdlKCkKKysgICAg d2NzID0gbWFrZV93Y3MoZGF0YS5zaGFwZSkKKysKKysgICAgYXAgPSBDaXJjdWxhckFwZXJ0dXJl KCgoMTIuMywgMTUuNyksICg0OC4xOSwgOTguMTQpKSwgcj0zLjE0KQorKyAgICBhcDIgPSBhcC50 b19za3kod2NzKS50b19waXhlbCh3Y3MpCisrICAgIGFzc2VydF9hbGxjbG9zZShhcC5wb3NpdGlv bnMsIGFwMi5wb3NpdGlvbnMpCisrICAgIGFzc2VydF9hbGxjbG9zZShhcC5yLCBhcDIucikKKysK KysgICAgYXAgPSBDaXJjdWxhckFubnVsdXMoKCgxMi4zLCAxNS43KSwgKDQ4LjE5LCA5OC4xNCkp LCByX2luPTMuMTQsCisrICAgICAgICAgICAgICAgICAgICAgICAgIHJfb3V0PTUuMzIpCisrICAg IGFwMiA9IGFwLnRvX3NreSh3Y3MpLnRvX3BpeGVsKHdjcykKKysgICAgYXNzZXJ0X2FsbGNsb3Nl KGFwLnBvc2l0aW9ucywgYXAyLnBvc2l0aW9ucykKKysgICAgYXNzZXJ0X2FsbGNsb3NlKGFwLnJf aW4sIGFwMi5yX2luKQorKyAgICBhc3NlcnRfYWxsY2xvc2UoYXAucl9vdXQsIGFwMi5yX291dCkK KysKKysgICAgYXAgPSBFbGxpcHRpY2FsQXBlcnR1cmUoKCgxMi4zLCAxNS43KSwgKDQ4LjE5LCA5 OC4xNCkpLCBhPTMuMTQsIGI9NS4zMiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhl dGE9MTAzLipucC5waS8xODAuKQorKyAgICBhcDIgPSBhcC50b19za3kod2NzKS50b19waXhlbCh3 Y3MpCisrICAgIGFzc2VydF9hbGxjbG9zZShhcC5wb3NpdGlvbnMsIGFwMi5wb3NpdGlvbnMpCisr ICAgIGFzc2VydF9hbGxjbG9zZShhcC5hLCBhcDIuYSkKKysgICAgYXNzZXJ0X2FsbGNsb3NlKGFw LmIsIGFwMi5iKQorKyAgICBhc3NlcnRfYWxsY2xvc2UoYXAudGhldGEsIGFwMi50aGV0YSkKKysK KysgICAgYXAgPSBFbGxpcHRpY2FsQW5udWx1cygoKDEyLjMsIDE1LjcpLCAoNDguMTksIDk4LjE0 KSksIGFfaW49My4xNCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICBhX291dD0xNS4zMiwg Yl9vdXQ9NC44OSwgdGhldGE9MTAzLipucC5waS8xODAuKQorKyAgICBhcDIgPSBhcC50b19za3ko d2NzKS50b19waXhlbCh3Y3MpCisrICAgIGFzc2VydF9hbGxjbG9zZShhcC5wb3NpdGlvbnMsIGFw Mi5wb3NpdGlvbnMpCisrICAgIGFzc2VydF9hbGxjbG9zZShhcC5hX2luLCBhcDIuYV9pbikKKysg ICAgYXNzZXJ0X2FsbGNsb3NlKGFwLmFfb3V0LCBhcDIuYV9vdXQpCisrICAgIGFzc2VydF9hbGxj bG9zZShhcC5iX291dCwgYXAyLmJfb3V0KQorKyAgICBhc3NlcnRfYWxsY2xvc2UoYXAudGhldGEs IGFwMi50aGV0YSkKKysKKysgICAgYXAgPSBSZWN0YW5ndWxhckFwZXJ0dXJlKCgoMTIuMywgMTUu NyksICg0OC4xOSwgOTguMTQpKSwgdz0zLjE0LCBoPTUuMzIsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB0aGV0YT0xMDMuKm5wLnBpLzE4MC4pCisrICAgIGFwMiA9IGFwLnRvX3NreSh3 Y3MpLnRvX3BpeGVsKHdjcykKKysgICAgYXNzZXJ0X2FsbGNsb3NlKGFwLnBvc2l0aW9ucywgYXAy LnBvc2l0aW9ucykKKysgICAgYXNzZXJ0X2FsbGNsb3NlKGFwLncsIGFwMi53KQorKyAgICBhc3Nl cnRfYWxsY2xvc2UoYXAuaCwgYXAyLmgpCisrICAgIGFzc2VydF9hbGxjbG9zZShhcC50aGV0YSwg YXAyLnRoZXRhKQorKworKyAgICBhcCA9IFJlY3Rhbmd1bGFyQW5udWx1cygoKDEyLjMsIDE1Ljcp LCAoNDguMTksIDk4LjE0KSksIHdfaW49My4xNCwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgd19vdXQ9MTUuMzIsIGhfb3V0PTQuODksIHRoZXRhPTEwMy4qbnAucGkvMTgwLikKKysgICAg YXAyID0gYXAudG9fc2t5KHdjcykudG9fcGl4ZWwod2NzKQorKyAgICBhc3NlcnRfYWxsY2xvc2Uo YXAucG9zaXRpb25zLCBhcDIucG9zaXRpb25zKQorKyAgICBhc3NlcnRfYWxsY2xvc2UoYXAud19p biwgYXAyLndfaW4pCisrICAgIGFzc2VydF9hbGxjbG9zZShhcC53X291dCwgYXAyLndfb3V0KQor KyAgICBhc3NlcnRfYWxsY2xvc2UoYXAuaF9vdXQsIGFwMi5oX291dCkKKysgICAgYXNzZXJ0X2Fs bGNsb3NlKGFwLnRoZXRhLCBhcDIudGhldGEpCitkaWZmIC1OYXVyIHBob3R1dGlscy0wLjQvcGhv dHV0aWxzL2JhY2tncm91bmQvY29yZS5weSBwaG90dXRpbHMtMC40LmZpeGVkL3Bob3R1dGlscy9i YWNrZ3JvdW5kL2NvcmUucHkKKy0tLSBwaG90dXRpbHMtMC40L3Bob3R1dGlscy9iYWNrZ3JvdW5k L2NvcmUucHkJMjAxNy0xMC0zMCAxNTozODoxOC4wMDAwMDAwMDAgKzAxMDAKKysrKyBwaG90dXRp bHMtMC40LmZpeGVkL3Bob3R1dGlscy9iYWNrZ3JvdW5kL2NvcmUucHkJMjAxOC0wMi0xNCAwMzo1 NjowNy4wNjM1MjI2MTkgKzAxMDAKK0BAIC00NzcsMTQgKzQ3NywxNCBAQAorIAorICAgICA+Pj4g Ymtncm1zX3ZhbHVlID0gYmtncm1zLmNhbGNfYmFja2dyb3VuZF9ybXMoZGF0YSkKKyAgICAgPj4+ IHByaW50KGJrZ3Jtc192YWx1ZSkgICAgIyBkb2N0ZXN0OiArRkxPQVRfQ01QCistICAgIDI4Ljg2 NjA3MDA0NzcyMjExOAorKyAgICAyOC44NjYwNzAwNDc3MjIxMgorIAorICAgICBBbHRlcm5hdGl2 ZWx5LCB0aGUgYmFja2dyb3VuZCBSTVMgdmFsdWUgY2FuIGJlIGNhbGN1bGF0ZWQgYnkgY2FsbGlu ZworICAgICB0aGUgY2xhc3MgaW5zdGFuY2UgYXMgYSBmdW5jdGlvbiwgZS5nLjoKKyAKKyAgICAg Pj4+IGJrZ3Jtc192YWx1ZSA9IGJrZ3JtcyhkYXRhKQorICAgICA+Pj4gcHJpbnQoYmtncm1zX3Zh bHVlKSAgICAjIGRvY3Rlc3Q6ICtGTE9BVF9DTVAKKy0gICAgMjguODY2MDcwMDQ3NzIyMTE4Cisr ICAgIDI4Ljg2NjA3MDA0NzcyMjEyCisgICAgICIiIgorIAorICAgICBkZWYgY2FsY19iYWNrZ3Jv dW5kX3JtcyhzZWxmLCBkYXRhLCBheGlzPU5vbmUpOgorQEAgLTUzMSwxNCArNTMxLDE0IEBACisg CisgICAgID4+PiBia2dybXNfdmFsdWUgPSBia2dybXMuY2FsY19iYWNrZ3JvdW5kX3JtcyhkYXRh KQorICAgICA+Pj4gcHJpbnQoYmtncm1zX3ZhbHVlKSAgICAjIGRvY3Rlc3Q6ICtGTE9BVF9DTVAK Ky0gICAgMzcuMDY1MDU1NDYyNjQwMDUzCisrICAgIDM3LjA2NTA1NTQ2MjY0MDA1CisgCisgICAg IEFsdGVybmF0aXZlbHksIHRoZSBiYWNrZ3JvdW5kIFJNUyB2YWx1ZSBjYW4gYmUgY2FsY3VsYXRl ZCBieSBjYWxsaW5nCisgICAgIHRoZSBjbGFzcyBpbnN0YW5jZSBhcyBhIGZ1bmN0aW9uLCBlLmcu OgorIAorICAgICA+Pj4gYmtncm1zX3ZhbHVlID0gYmtncm1zKGRhdGEpCisgICAgID4+PiBwcmlu dChia2dybXNfdmFsdWUpICAgICMgZG9jdGVzdDogK0ZMT0FUX0NNUAorLSAgICAzNy4wNjUwNTU0 NjI2NDAwNTMKKysgICAgMzcuMDY1MDU1NDYyNjQwMDUKKyAgICAgIiIiCisgCisgICAgIGRlZiBj YWxjX2JhY2tncm91bmRfcm1zKHNlbGYsIGRhdGEsIGF4aXM9Tm9uZSk6CitAQCAtNTgwLDE0ICs1 ODAsMTQgQEAKKyAKKyAgICAgPj4+IGJrZ3Jtc192YWx1ZSA9IGJrZ3Jtcy5jYWxjX2JhY2tncm91 bmRfcm1zKGRhdGEpCisgICAgID4+PiBwcmludChia2dybXNfdmFsdWUpICAgICMgZG9jdGVzdDog K0ZMT0FUX0NNUAorLSAgICAzMC4wOTQzMzg0ODU4OTMzOTIKKysgICAgMzAuMDk0MzM4NDg1ODkz MzkKKyAKKyAgICAgQWx0ZXJuYXRpdmVseSwgdGhlIGJhY2tncm91bmQgUk1TIHZhbHVlIGNhbiBi ZSBjYWxjdWxhdGVkIGJ5IGNhbGxpbmcKKyAgICAgdGhlIGNsYXNzIGluc3RhbmNlIGFzIGEgZnVu Y3Rpb24sIGUuZy46CisgCisgICAgID4+PiBia2dybXNfdmFsdWUgPSBia2dybXMoZGF0YSkKKyAg ICAgPj4+IHByaW50KGJrZ3Jtc192YWx1ZSkgICAgIyBkb2N0ZXN0OiArRkxPQVRfQ01QCistICAg IDMwLjA5NDMzODQ4NTg5MzM5MgorKyAgICAzMC4wOTQzMzg0ODU4OTMzOQorICAgICAiIiIKKyAK KyAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGM9OS4wLCBNPU5vbmUsICoqa3dhcmdzKToKK2RpZmYg LU5hdXIgcGhvdHV0aWxzLTAuNC9waG90dXRpbHMvZGF0YXNldHMvbWFrZS5weSBwaG90dXRpbHMt MC40LmZpeGVkL3Bob3R1dGlscy9kYXRhc2V0cy9tYWtlLnB5CistLS0gcGhvdHV0aWxzLTAuNC9w aG90dXRpbHMvZGF0YXNldHMvbWFrZS5weQkyMDE3LTEwLTMwIDE1OjM4OjE4LjAwMDAwMDAwMCAr MDEwMAorKysrIHBob3R1dGlscy0wLjQuZml4ZWQvcGhvdHV0aWxzL2RhdGFzZXRzL21ha2UucHkJ MjAxOC0wMi0xNCAwMzo1NjowNy4wNjM1MjI2MTkgKzAxMDAKK0BAIC0yMTQsMTQgKzIxNCwxNiBA QAorICAgICA+Pj4gcGFyYW1fcmFuZ2VzID0gT3JkZXJlZERpY3QocGFyYW1fcmFuZ2VzKQorICAg ICA+Pj4gc291cmNlcyA9IG1ha2VfcmFuZG9tX21vZGVsc190YWJsZShuX3NvdXJjZXMsIHBhcmFt X3JhbmdlcywKKyAgICAgLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFu ZG9tX3N0YXRlPTEyMzQ1KQorKyAgICA+Pj4gZm9yIGNvbCBpbiBzb3VyY2VzLmNvbG5hbWVzOgor KyAgICAuLi4gICAgIHNvdXJjZXNbY29sXS5pbmZvLmZvcm1hdCA9ICclLjhnJyAgIyBmb3IgY29u c2lzdGVudCB0YWJsZSBvdXRwdXQKKyAgICAgPj4+IHByaW50KHNvdXJjZXMpCistICAgICAgYW1w bGl0dWRlICAgICAgIHhfbWVhbiAgICAgICAgeV9tZWFuICAgIC4uLiAgICB5X3N0ZGRldiAgICAg ICB0aGV0YQorLSAgICAtLS0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tLSAu Li4gLS0tLS0tLS0tLS0tLSAtLS0tLS0tLS0tLS0tLQorLSAgICA5NjQuODA4MDQ2NDA5ICAyOTcu NzcyMzUxNDkgMjI0LjMxNDQ0Mjc4MSAuLi4gMy41Njk5MDEzMTE1OCAgMi4yOTIzODU4NjE3Ngor LSAgICA2NTguMTg3Nzc3MjkxIDQ4Mi4yNTcyNTk4NjggMjg4LjM5MjAyMDgyMiAuLi4gMy44Njk4 MTQ0ODMyNSAgMy4xMjI3ODg5MjA2MgorLSAgICA1OTEuOTU5NDA1ODM5IDMyNi41ODg1NDg0MzYg Mi41MTY0ODkzODI0NyAuLi4gMi44NzAzOTYwMjg4OCAgMi4xMjY0NjE0ODAzMgorLSAgICA2MDIu MjgwMTM5Mjc3IDM3NC40NTMzMTg3NjcgMzEuOTMzMzEzMDA5MyAuLi4gMi4zMDIzMzg3MTAxNiAg Mi40ODQ0NDIyMTIzNgorLSAgICA3ODMuODYyNTE0NTQxIDMyNi43ODQ5MzU0MjYgODkuNjExMTE0 MTMwOCAuLi4gMi43NTg1Nzg0MjM1NCAwLjUzNjk0Mjk3NjY3NAorKyAgICBhbXBsaXR1ZGUgICB4 X21lYW4gICAgeV9tZWFuICAgeF9zdGRkZXYgIHlfc3RkZGV2ICAgdGhldGEKKysgICAgLS0tLS0t LS0tIC0tLS0tLS0tLSAtLS0tLS0tLS0gLS0tLS0tLS0tIC0tLS0tLS0tLSAtLS0tLS0tLS0tCisr ICAgIDk2NC44MDgwNSAyOTcuNzcyMzUgMjI0LjMxNDQ0IDMuNjI1NjQ0NyAzLjU2OTkwMTMgIDIu MjkyMzg1OQorKyAgICA2NTguMTg3NzggNDgyLjI1NzI2IDI4OC4zOTIwMiA0LjIzOTI1MDIgMy44 Njk4MTQ1ICAzLjEyMjc4ODkKKysgICAgNTkxLjk1OTQxIDMyNi41ODg1NSAyLjUxNjQ4OTQgNC40 ODg3MDM3ICAyLjg3MDM5NiAgMi4xMjY0NjE1CisrICAgIDYwMi4yODAxNCAzNzQuNDUzMzIgMzEu OTMzMzEzIDQuODU4NTkwNCAyLjMwMjMzODcgIDIuNDg0NDQyMgorKyAgICA3ODMuODYyNTEgMzI2 Ljc4NDk0IDg5LjYxMTExNCAzLjg5NDc0MTQgMi43NTg1Nzg0IDAuNTM2OTQyOTgKKyAgICAgIiIi CisgCisgICAgIHBybmcgPSBjaGVja19yYW5kb21fc3RhdGUocmFuZG9tX3N0YXRlKQorQEAgLTMw MiwxNCArMzA0LDE2IEBACisgICAgID4+PiBwYXJhbV9yYW5nZXMgPSBPcmRlcmVkRGljdChwYXJh bV9yYW5nZXMpCisgICAgID4+PiBzb3VyY2VzID0gbWFrZV9yYW5kb21fZ2F1c3NpYW5zX3RhYmxl KG5fc291cmNlcywgcGFyYW1fcmFuZ2VzLAorICAgICAuLi4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICByYW5kb21fc3RhdGU9MTIzNDUpCisrICAgID4+PiBmb3IgY29sIGlu IHNvdXJjZXMuY29sbmFtZXM6CisrICAgIC4uLiAgICAgc291cmNlc1tjb2xdLmluZm8uZm9ybWF0 ID0gJyUuOGcnICAjIGZvciBjb25zaXN0ZW50IHRhYmxlIG91dHB1dAorICAgICA+Pj4gcHJpbnQo c291cmNlcykKKy0gICAgICBhbXBsaXR1ZGUgICAgICAgeF9tZWFuICAgICAgICB5X21lYW4gICAg Li4uICAgIHlfc3RkZGV2ICAgICAgIHRoZXRhCistICAgIC0tLS0tLS0tLS0tLS0gLS0tLS0tLS0t LS0tLSAtLS0tLS0tLS0tLS0tIC4uLiAtLS0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tLS0tCistICAg IDk2NC44MDgwNDY0MDkgIDI5Ny43NzIzNTE0OSAyMjQuMzE0NDQyNzgxIC4uLiAzLjU2OTkwMTMx MTU4ICAyLjI5MjM4NTg2MTc2CistICAgIDY1OC4xODc3NzcyOTEgNDgyLjI1NzI1OTg2OCAyODgu MzkyMDIwODIyIC4uLiAzLjg2OTgxNDQ4MzI1ICAzLjEyMjc4ODkyMDYyCistICAgIDU5MS45NTk0 MDU4MzkgMzI2LjU4ODU0ODQzNiAyLjUxNjQ4OTM4MjQ3IC4uLiAyLjg3MDM5NjAyODg4ICAyLjEy NjQ2MTQ4MDMyCistICAgIDYwMi4yODAxMzkyNzcgMzc0LjQ1MzMxODc2NyAzMS45MzMzMTMwMDkz IC4uLiAyLjMwMjMzODcxMDE2ICAyLjQ4NDQ0MjIxMjM2CistICAgIDc4My44NjI1MTQ1NDEgMzI2 Ljc4NDkzNTQyNiA4OS42MTExMTQxMzA4IC4uLiAyLjc1ODU3ODQyMzU0IDAuNTM2OTQyOTc2Njc0 CisrICAgIGFtcGxpdHVkZSAgIHhfbWVhbiAgICB5X21lYW4gICB4X3N0ZGRldiAgeV9zdGRkZXYg ICB0aGV0YQorKyAgICAtLS0tLS0tLS0gLS0tLS0tLS0tIC0tLS0tLS0tLSAtLS0tLS0tLS0gLS0t LS0tLS0tIC0tLS0tLS0tLS0KKysgICAgOTY0LjgwODA1IDI5Ny43NzIzNSAyMjQuMzE0NDQgMy42 MjU2NDQ3IDMuNTY5OTAxMyAgMi4yOTIzODU5CisrICAgIDY1OC4xODc3OCA0ODIuMjU3MjYgMjg4 LjM5MjAyIDQuMjM5MjUwMiAzLjg2OTgxNDUgIDMuMTIyNzg4OQorKyAgICA1OTEuOTU5NDEgMzI2 LjU4ODU1IDIuNTE2NDg5NCA0LjQ4ODcwMzcgIDIuODcwMzk2ICAyLjEyNjQ2MTUKKysgICAgNjAy LjI4MDE0IDM3NC40NTMzMiAzMS45MzMzMTMgNC44NTg1OTA0IDIuMzAyMzM4NyAgMi40ODQ0NDIy CisrICAgIDc4My44NjI1MSAzMjYuNzg0OTQgODkuNjExMTE0IDMuODk0NzQxNCAyLjc1ODU3ODQg MC41MzY5NDI5OAorIAorICAgICBUbyBzcGVjaWZ5aW5nIHRoZSBmbHV4IHJhbmdlIGluc3RlYWQg b2YgdGhlIGFtcGxpdHVkZSByYW5nZToKKyAKK0BAIC0zMjIsMTQgKzMyNiwxNiBAQAorICAgICA+ Pj4gcGFyYW1fcmFuZ2VzID0gT3JkZXJlZERpY3QocGFyYW1fcmFuZ2VzKQorICAgICA+Pj4gc291 cmNlcyA9IG1ha2VfcmFuZG9tX2dhdXNzaWFuc190YWJsZShuX3NvdXJjZXMsIHBhcmFtX3Jhbmdl cywKKyAgICAgLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFuZG9t X3N0YXRlPTEyMzQ1KQorKyAgICA+Pj4gZm9yIGNvbCBpbiBzb3VyY2VzLmNvbG5hbWVzOgorKyAg ICAuLi4gICAgIHNvdXJjZXNbY29sXS5pbmZvLmZvcm1hdCA9ICclLjhnJyAgIyBmb3IgY29uc2lz dGVudCB0YWJsZSBvdXRwdXQKKyAgICAgPj4+IHByaW50KHNvdXJjZXMpCistICAgICAgICBmbHV4 ICAgICAgICAgeF9tZWFuICAgICAgICB5X21lYW4gICAgLi4uICAgICB0aGV0YSAgICAgICAgYW1w bGl0dWRlCistICAgIC0tLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tLSAtLS0tLS0tLS0tLS0tIC4u LiAtLS0tLS0tLS0tLS0tLSAtLS0tLS0tLS0tLS0tCistICAgIDk2NC44MDgwNDY0MDkgIDI5Ny43 NzIzNTE0OSAyMjQuMzE0NDQyNzgxIC4uLiAgMi4yOTIzODU4NjE3NiAxMS44NjM2ODQ1ODA2Cist ICAgIDY1OC4xODc3NzcyOTEgNDgyLjI1NzI1OTg2OCAyODguMzkyMDIwODIyIC4uLiAgMy4xMjI3 ODg5MjA2MiA2LjM4NTQzODgyNjg0CistICAgIDU5MS45NTk0MDU4MzkgMzI2LjU4ODU0ODQzNiAy LjUxNjQ4OTM4MjQ3IC4uLiAgMi4xMjY0NjE0ODAzMiA3LjMxMjIyMDg5NTY3CistICAgIDYwMi4y ODAxMzkyNzcgMzc0LjQ1MzMxODc2NyAzMS45MzMzMTMwMDkzIC4uLiAgMi40ODQ0NDIyMTIzNiA4 LjU2OTE3ODE0NTA2CistICAgIDc4My44NjI1MTQ1NDEgMzI2Ljc4NDkzNTQyNiA4OS42MTExMTQx MzA4IC4uLiAwLjUzNjk0Mjk3NjY3NCAxMS42MTE3MDY5NjM4CisrICAgICAgIGZsdXggICAgIHhf bWVhbiAgICB5X21lYW4gICB4X3N0ZGRldiAgeV9zdGRkZXYgICB0aGV0YSAgICBhbXBsaXR1ZGUK KysgICAgLS0tLS0tLS0tIC0tLS0tLS0tLSAtLS0tLS0tLS0gLS0tLS0tLS0tIC0tLS0tLS0tLSAt LS0tLS0tLS0tIC0tLS0tLS0tLQorKyAgICA5NjQuODA4MDUgMjk3Ljc3MjM1IDIyNC4zMTQ0NCAz LjYyNTY0NDcgMy41Njk5MDEzICAyLjI5MjM4NTkgMTEuODYzNjg1CisrICAgIDY1OC4xODc3OCA0 ODIuMjU3MjYgMjg4LjM5MjAyIDQuMjM5MjUwMiAzLjg2OTgxNDUgIDMuMTIyNzg4OSA2LjM4NTQz ODgKKysgICAgNTkxLjk1OTQxIDMyNi41ODg1NSAyLjUxNjQ4OTQgNC40ODg3MDM3ICAyLjg3MDM5 NiAgMi4xMjY0NjE1IDcuMzEyMjIwOQorKyAgICA2MDIuMjgwMTQgMzc0LjQ1MzMyIDMxLjkzMzMx MyA0Ljg1ODU5MDQgMi4zMDIzMzg3ICAyLjQ4NDQ0MjIgOC41NjkxNzgxCisrICAgIDc4My44NjI1 MSAzMjYuNzg0OTQgODkuNjExMTE0IDMuODk0NzQxNCAyLjc1ODU3ODQgMC41MzY5NDI5OCAxMS42 MTE3MDcKKyAKKyAgICAgTm90ZSB0aGF0IGluIHRoaXMgY2FzZSB0aGUgb3V0cHV0IHRhYmxlIGNv bnRhaW5zIGJvdGggYSBmbHV4IGFuZAorICAgICBhbXBsaXR1ZGUgY29sdW1uLiAgVGhlIGZsdXgg Y29sdW1uIHdpbGwgYmUgaWdub3JlZCB3aGVuIGdlbmVyYXRpbmcKK0BAIC02OTQsMTAgKzcwMCwx MCBAQAorICAgICA+Pj4gZnJvbSBwaG90dXRpbHMuZGF0YXNldHMgaW1wb3J0IG1ha2Vfd2NzCisg ICAgID4+PiBzaGFwZSA9ICgxMDAsIDEwMCkKKyAgICAgPj4+IHdjcyA9IG1ha2Vfd2NzKHNoYXBl KQorLSAgICA+Pj4gcHJpbnQod2NzLndjcy5jcnBpeCkKKy0gICAgWyA1MC4gIDUwLl0KKy0gICAg Pj4+IHByaW50KHdjcy53Y3MuY3J2YWwpCistICAgIFsgMTk3Ljg5MjUgICAgICAgLTEuMzY1NTU1 NTZdCisrICAgID4+PiBwcmludCh3Y3Mud2NzLmNycGl4KSAgIyBkb2N0ZXN0OiArRkxPQVRfQ01Q CisrICAgIFs1MC4gNTAuXQorKyAgICA+Pj4gcHJpbnQod2NzLndjcy5jcnZhbCkgICMgZG9jdGVz dDogK0ZMT0FUX0NNUAorKyAgICBbMTk3Ljg5MjUgICAgICAtMS4zNjU1NTU1Nl0KKyAgICAgIiIi CisgCisgICAgIHdjcyA9IFdDUyhuYXhpcz0yKQorZGlmZiAtTmF1ciBwaG90dXRpbHMtMC40L3Bo b3R1dGlscy9kZXRlY3Rpb24vdGVzdHMvdGVzdF9maW5kc3RhcnMucHkgcGhvdHV0aWxzLTAuNC5m aXhlZC9waG90dXRpbHMvZGV0ZWN0aW9uL3Rlc3RzL3Rlc3RfZmluZHN0YXJzLnB5CistLS0gcGhv dHV0aWxzLTAuNC9waG90dXRpbHMvZGV0ZWN0aW9uL3Rlc3RzL3Rlc3RfZmluZHN0YXJzLnB5CTIw MTctMTAtMzAgMTU6Mzg6MTguMDAwMDAwMDAwICswMTAwCisrKysgcGhvdHV0aWxzLTAuNC5maXhl ZC9waG90dXRpbHMvZGV0ZWN0aW9uL3Rlc3RzL3Rlc3RfZmluZHN0YXJzLnB5CTIwMTgtMDItMTQg MDM6NTY6MDcuMDYxNTIyNTg4ICswMTAwCitAQCAtNDYsOCArNDYsMTAgQEAKKyAgICAgICAgICAg ICAgICAgICAnLnR4dCcuZm9ybWF0KHRocmVzaG9sZCwgZndobSkpCisgICAgICAgICBkYXRhZm4g PSBvcC5qb2luKG9wLmRpcm5hbWUob3AuYWJzcGF0aChfX2ZpbGVfXykpLCAnZGF0YScsIGRhdGFm bikKKyAgICAgICAgIHRfcmVmID0gVGFibGUucmVhZChkYXRhZm4sIGZvcm1hdD0nYXNjaWknKQor LSAgICAgICAgYXNzZXJ0X2FsbGNsb3NlKG5wLmFycmF5KHQpLmFzdHlwZShucC5mbG9hdCksCist ICAgICAgICAgICAgICAgICAgICAgICAgbnAuYXJyYXkodF9yZWYpLmFzdHlwZShucC5mbG9hdCkp CisrCisrICAgICAgICBhc3NlcnQgdC5jb2xuYW1lcyA9PSB0X3JlZi5jb2xuYW1lcworKyAgICAg ICAgZm9yIGNvbCBpbiB0LmNvbG5hbWVzOgorKyAgICAgICAgICAgIGFzc2VydF9hbGxjbG9zZSh0 W2NvbF0sIHRfcmVmW2NvbF0pCisgCisgICAgIGRlZiB0ZXN0X2Rhb2ZpbmRfaW5jbHVkZV9ib3Jk ZXIoc2VsZik6CisgICAgICAgICBzdGFyZmluZGVyID0gREFPU3RhckZpbmRlcih0aHJlc2hvbGQ9 MTAsIGZ3aG09Miwgc2lnbWFfcmFkaXVzPTEuNSwKK0BAIC0xMDAsOCArMTAyLDEwIEBACisgICAg ICAgICAgICAgICAgICAgJy50eHQnLmZvcm1hdCh0aHJlc2hvbGQsIGZ3aG0pKQorICAgICAgICAg ZGF0YWZuID0gb3Auam9pbihvcC5kaXJuYW1lKG9wLmFic3BhdGgoX19maWxlX18pKSwgJ2RhdGEn LCBkYXRhZm4pCisgICAgICAgICB0X3JlZiA9IFRhYmxlLnJlYWQoZGF0YWZuLCBmb3JtYXQ9J2Fz Y2lpJykKKy0gICAgICAgIGFzc2VydF9hbGxjbG9zZShucC5hcnJheSh0KS5hc3R5cGUobnAuZmxv YXQpLAorLSAgICAgICAgICAgICAgICAgICAgICAgIG5wLmFycmF5KHRfcmVmKS5hc3R5cGUobnAu ZmxvYXQpKQorKworKyAgICAgICAgYXNzZXJ0IHQuY29sbmFtZXMgPT0gdF9yZWYuY29sbmFtZXMK KysgICAgICAgIGZvciBjb2wgaW4gdC5jb2xuYW1lczoKKysgICAgICAgICAgICBhc3NlcnRfYWxs Y2xvc2UodFtjb2xdLCB0X3JlZltjb2xdKQorIAorICAgICBkZWYgdGVzdF9pcmFmc3RhcmZpbmRf bm9zb3VyY2VzKHNlbGYpOgorICAgICAgICAgZGF0YSA9IG5wLm9uZXMoKDMsIDMpKQorZGlmZiAt TmF1ciBwaG90dXRpbHMtMC40L3Bob3R1dGlscy9zZWdtZW50YXRpb24vcHJvcGVydGllcy5weSBw aG90dXRpbHMtMC40LmZpeGVkL3Bob3R1dGlscy9zZWdtZW50YXRpb24vcHJvcGVydGllcy5weQor LS0tIHBob3R1dGlscy0wLjQvcGhvdHV0aWxzL3NlZ21lbnRhdGlvbi9wcm9wZXJ0aWVzLnB5CTIw MTctMTAtMzAgMTU6Mzg6MTguMDAwMDAwMDAwICswMTAwCisrKysgcGhvdHV0aWxzLTAuNC5maXhl ZC9waG90dXRpbHMvc2VnbWVudGF0aW9uL3Byb3BlcnRpZXMucHkJMjAxOC0wMi0xNCAwMzo1Njow Ny4wNjI1MjI2MDMgKzAxMDAKK0BAIC0xMTYyLDExICsxMTYyLDExIEBACisgICAgID4+PiBpbXBv cnQgbnVtcHkgYXMgbnAKKyAgICAgPj4+IGZyb20gcGhvdHV0aWxzIGltcG9ydCBTZWdtZW50YXRp b25JbWFnZSwgc291cmNlX3Byb3BlcnRpZXMKKyAgICAgPj4+IGltYWdlID0gbnAuYXJhbmdlKDE2 LikucmVzaGFwZSg0LCA0KQorLSAgICA+Pj4gcHJpbnQoaW1hZ2UpCistICAgIFtbICAwLiAgIDEu ICAgMi4gICAzLl0KKy0gICAgIFsgIDQuICAgNS4gICA2LiAgIDcuXQorLSAgICAgWyAgOC4gICA5 LiAgMTAuICAxMS5dCistICAgICBbIDEyLiAgMTMuICAxNC4gIDE1Ll1dCisrICAgID4+PiBwcmlu dChpbWFnZSkgICMgZG9jdGVzdDogK1NLSVAKKysgICAgW1sgMC4gIDEuICAyLiAgMy5dCisrICAg ICBbIDQuICA1LiAgNi4gIDcuXQorKyAgICAgWyA4LiAgOS4gMTAuIDExLl0KKysgICAgIFsxMi4g MTMuIDE0LiAxNS5dXQorICAgICA+Pj4gc2VnbSA9IFNlZ21lbnRhdGlvbkltYWdlKFtbMSwgMSwg MCwgMF0sCisgICAgIC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxLCAwLCAwLCAyXSwK KyAgICAgLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgWzAsIDAsIDIsIDJdLAorQEAgLTEx NzksMTEgKzExNzksMTEgQEAKKyAgICAgPj4+IHByb3BzWzBdLmlkICAgICMgaWQgY29ycmVzcG9u ZHMgdG8gc2VnbWVudCBsYWJlbCBudW1iZXIKKyAgICAgMQorICAgICA+Pj4gcHJvcHNbMF0uY2Vu dHJvaWQgICAgIyBkb2N0ZXN0OiArRkxPQVRfQ01QCistICAgIDxRdWFudGl0eSBbIDAuOCwgMC4y XSBwaXg+CisrICAgIDxRdWFudGl0eSBbMC44LCAwLjJdIHBpeD4KKyAgICAgPj4+IHByb3BzWzBd LnNvdXJjZV9zdW0gICAgIyBkb2N0ZXN0OiArRkxPQVRfQ01QCisgICAgIDUuMAorICAgICA+Pj4g cHJvcHNbMF0uYXJlYSAgICAjIGRvY3Rlc3Q6ICtGTE9BVF9DTVAKKy0gICAgPFF1YW50aXR5IDMu MCBwaXgyPgorKyAgICA8UXVhbnRpdHkgMy4gcGl4Mj4KKyAgICAgPj4+IHByb3BzWzBdLm1heF92 YWx1ZSAgICAjIGRvY3Rlc3Q6ICtGTE9BVF9DTVAKKyAgICAgNC4wCisgCitAQCAtMTE5MywxMSAr MTE5MywxMSBAQAorICAgICA+Pj4gcHJvcHNbMV0uaWQgICAgIyBpZCBjb3JyZXNwb25kcyB0byBz ZWdtZW50IGxhYmVsIG51bWJlcgorICAgICAyCisgICAgID4+PiBwcm9wc1sxXS5jZW50cm9pZCAg ICAjIGRvY3Rlc3Q6ICtGTE9BVF9DTVAKKy0gICAgPFF1YW50aXR5IFsgMi4zNjM2MzYzNiwgMi4w OTA5MDkwOV0gcGl4PgorKyAgICA8UXVhbnRpdHkgWzIuMzYzNjM2MzYsIDIuMDkwOTA5MDldIHBp eD4KKyAgICAgPj4+IHByb3BzWzFdLnBlcmltZXRlciAgICAjIGRvY3Rlc3Q6ICtGTE9BVF9DTVAK Ky0gICAgPFF1YW50aXR5IDUuNDE0MjEzNTYyMzczMDk1IHBpeD4KKysgICAgPFF1YW50aXR5IDUu NDE0MjEzNTYgcGl4PgorICAgICA+Pj4gcHJvcHNbMV0ub3JpZW50YXRpb24gICAgIyBkb2N0ZXN0 OiArRkxPQVRfQ01QCistICAgIDxRdWFudGl0eSAtMC43NDE3NTkzMDY5MjI3MTc2IHJhZD4KKysg ICAgPFF1YW50aXR5IC0wLjc0MTc1OTMxIHJhZD4KKyAgICAgIiIiCisgCisgICAgIGlmIG5vdCBp c2luc3RhbmNlKHNlZ21lbnRfaW1nLCBTZWdtZW50YXRpb25JbWFnZSk6CitAQCAtMTQxMiwxMSAr MTQxMiwxMSBAQAorICAgICAgICAgPj4+IGltcG9ydCBudW1weSBhcyBucAorICAgICAgICAgPj4+ IGZyb20gcGhvdHV0aWxzIGltcG9ydCBzb3VyY2VfcHJvcGVydGllcworICAgICAgICAgPj4+IGlt YWdlID0gbnAuYXJhbmdlKDE2LikucmVzaGFwZSg0LCA0KQorLSAgICAgICAgPj4+IHByaW50KGlt YWdlKQorLSAgICAgICAgW1sgIDAuICAgMS4gICAyLiAgIDMuXQorLSAgICAgICAgWyAgNC4gICA1 LiAgIDYuICAgNy5dCistICAgICAgICBbICA4LiAgIDkuICAxMC4gIDExLl0KKy0gICAgICAgIFsg MTIuICAxMy4gIDE0LiAgMTUuXV0KKysgICAgICAgID4+PiBwcmludChpbWFnZSkgICMgZG9jdGVz dDogK1NLSVAKKysgICAgICAgIFtbIDAuICAxLiAgMi4gIDMuXQorKyAgICAgICAgIFsgNC4gIDUu ICA2LiAgNy5dCisrICAgICAgICAgWyA4LiAgOS4gMTAuIDExLl0KKysgICAgICAgICBbMTIuIDEz LiAxNC4gMTUuXV0KKyAgICAgICAgID4+PiBzZWdtID0gU2VnbWVudGF0aW9uSW1hZ2UoW1sxLCAx LCAwLCAwXSwKKyAgICAgICAgIC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxLCAwLCAw LCAyXSwKKyAgICAgICAgIC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgIFswLCAwLCAyLCAy XSwKK2RpZmYgLU5hdXIgcGhvdHV0aWxzLTAuNC9waG90dXRpbHMvdXRpbHMvaW50ZXJwb2xhdGlv bi5weSBwaG90dXRpbHMtMC40LmZpeGVkL3Bob3R1dGlscy91dGlscy9pbnRlcnBvbGF0aW9uLnB5 CistLS0gcGhvdHV0aWxzLTAuNC9waG90dXRpbHMvdXRpbHMvaW50ZXJwb2xhdGlvbi5weQkyMDE3 LTEwLTMwIDE3OjE0OjI4LjAwMDAwMDAwMCArMDEwMAorKysrIHBob3R1dGlscy0wLjQuZml4ZWQv cGhvdHV0aWxzL3V0aWxzL2ludGVycG9sYXRpb24ucHkJMjAxOC0wMi0xNCAwMzo1NjowNy4wNjI1 MjI2MDMgKzAxMDAKK0BAIC05NSwxNSArOTUsMTUgQEAKKyAgICAgICAgID4+PiBmKDAuNCkgICAg IyBkb2N0ZXN0OiArRkxPQVRfQ01QCisgICAgICAgICAwLjM4ODYyNDI0MDQzMjI4ODU1CisgICAg ICAgICA+Pj4gbnAuc2luKDAuNCkgICAjIGRvY3Rlc3Q6ICtGTE9BVF9DTVAKKy0gICAgICAgIDAu Mzg5NDE4MzQyMzA4NjUwNTIKKysgICAgICAgIDAuMzg5NDE4MzQyMzA4NjUwNQorIAorICAgICAg ICAgPj4+IHhpID0gbnAucmFuZG9tLnJhbmRvbSg0KQorLSAgICAgICAgPj4+IHhpCistICAgICAg ICBhcnJheShbIDAuNTEzMTI4MTUsICAwLjY2NjYyNDU1LCAgMC4xMDU5MDg0OSwgIDAuMTMwODk0 OTVdKQorLSAgICAgICAgPj4+IGYoeGkpICAgICMgZG9jdGVzdDogK0ZMT0FUX0NNUAorLSAgICAg ICAgYXJyYXkoWyAwLjQ5MDg2NDIzLCAgMC42MjY0Nzg2MiwgIDAuMTA1Njg1NCAsICAwLjEzMDQ4 MzM1XSkKKy0gICAgICAgID4+PiBucC5zaW4oeGkpCistICAgICAgICBhcnJheShbIDAuNDkwOTA0 OTMsICAwLjYxODMzNjcgLCAgMC4xMDU3MTA2MSwgIDAuMTMwNTIxNDldKQorKyAgICAgICAgPj4+ IHhpICAjIGRvY3Rlc3Q6ICtGTE9BVF9DTVAKKysgICAgICAgIGFycmF5KFswLjUxMzEyODE1LCAw LjY2NjYyNDU1LCAwLjEwNTkwODQ5LCAwLjEzMDg5NDk1XSkKKysgICAgICAgID4+PiBmKHhpKSAg IyBkb2N0ZXN0OiArRkxPQVRfQ01QCisrICAgICAgICBhcnJheShbMC40OTA4NjQyMywgMC42MjY0 Nzg2MiwgMC4xMDU2ODU0ICwgMC4xMzA0ODMzNV0pCisrICAgICAgICA+Pj4gbnAuc2luKHhpKSAg IyBkb2N0ZXN0OiArRkxPQVRfQ01QCisrICAgICAgICBhcnJheShbMC40OTA5MDQ5MywgMC42MTgz MzY3ICwgMC4xMDU3MTA2MSwgMC4xMzA1MjE0OV0pCisgCisgICAgIE5PVEU6IEluIHRoZSBsYXN0 IGV4YW1wbGUsIGBgeGlgYCBtYXkgYmUgYSBgYE54MWBgIGFycmF5IGluc3RlYWQgb2YKKyAgICAg YSAxRCB2ZWN0b3IuCitAQCAtMTEzLDEwICsxMTMsMTAgQEAKKyAgICAgICAgID4+PiBwb3MgPSBu cC5yYW5kb20ucmFuZCgxMDAwLCAyKQorICAgICAgICAgPj4+IHZhbCA9IG5wLnNpbihwb3NbOiwg MF0gKyBwb3NbOiwgMV0pCisgICAgICAgICA+Pj4gZiA9IGlkdyhwb3MsIHZhbCkKKy0gICAgICAg ID4+PiBmKFswLjUsIDAuNl0pICAgICAjIGRvY3Rlc3Q6ICtGTE9BVF9DTVAKKy0gICAgICAgIDAu ODkzMTI2NDk1ODc0MDU2NTcKKy0gICAgICAgID4+PiBucC5zaW4oMC41ICsgMC42KQorLSAgICAg ICAgMC44OTEyMDczNjAwNjE0MzU0MgorKyAgICAgICAgPj4+IGYoWzAuNSwgMC42XSkgICMgZG9j dGVzdDogK0ZMT0FUX0NNUAorKyAgICAgICAgMC44OTMxMjY0OTU4NzQwNTY3CisrICAgICAgICA+ Pj4gbnAuc2luKDAuNSArIDAuNikgICMgZG9jdGVzdDogK0ZMT0FUX0NNUAorKyAgICAgICAgMC44 OTEyMDczNjAwNjE0MzU0CisgICAgICIiIgorIAorICAgICBkZWYgX19pbml0X18oc2VsZiwgY29v cmRpbmF0ZXMsIHZhbHVlcywgd2VpZ2h0cz1Ob25lLCBsZWFmc2l6ZT0xMCk6CgpkaWZmIC0tZ2l0 IGEvcHl0aG9uLXBob3R1dGlscy5zcGVjIGIvcHl0aG9uLXBob3R1dGlscy5zcGVjCmluZGV4IDEz NDUyM2YuLmFkZmZjMmYgMTAwNjQ0Ci0tLSBhL3B5dGhvbi1waG90dXRpbHMuc3BlYworKysgYi9w eXRob24tcGhvdHV0aWxzLnNwZWMKQEAgLTEyLDYgKzEyLDkgQEAgU291cmNlMDogaHR0cHM6Ly9w eXBpLmlvL3BhY2thZ2VzL3NvdXJjZS9wL3Bob3R1dGlscy8le3NyY25hbWV9LSV7dmVyc2lvbn0u dGFyLmcKICMgVXNlIHN5c3RlbSBjb3B5IG9mIGFzdHJvcHktaGVscGVycwogUGF0Y2gwOiAgcHl0 aG9uLXBob3R1dGlscy1Vc2UtYXN0cm9weV9oZWxwZXJzLXByb3ZpZGVkLWJ5LXRoZS1zeXN0ZW0u cGF0Y2gKIAorIyBGaXhlcyBmb3IgbnVtcHkgMS4xNCwgcmViYXNlZCB2ZXJzaW9uIG9mIGh0dHBz Oi8vZ2l0aHViLmNvbS9hc3Ryb3B5L3Bob3R1dGlscy9wdWxsLzYzOQorUGF0Y2gxOiAgcHl0aG9u LXBob3R1dGlscy1maXhlcy1mb3ItbnVtcHktMS4xNC5wYXRjaAorCiBCdWlsZFJlcXVpcmVzOiBw eXRob24yLWRldmVsIHB5dGhvbjMtZGV2ZWwKIAogJWRlc2NyaXB0aW9uCkBAIC0xMjgsNyArMTMx LDcgQEAgcG9wZAogCiAlY2hhbmdlbG9nCiAqIFdlZCBGZWIgMTQgMjAxOCBDaHJpc3RpYW4gRGVy c2NoIDxsdXBpbml4QG1haWxib3gub3JnPiAtIDAuNC0zCi0tIHJlYnVpbHQKKy0gQWRkZWQgbnVt cHkgMS4xNCBmaXggaHR0cHM6Ly9naXRodWIuY29tL2FzdHJvcHkvcGhvdHV0aWxzL3B1bGwvNjM5 CiAKICogRnJpIEZlYiAwOSAyMDE4IEZlZG9yYSBSZWxlYXNlIEVuZ2luZWVyaW5nIDxyZWxlbmdA ZmVkb3JhcHJvamVjdC5vcmc+IC0gMC40LTIKIC0gUmVidWlsdCBmb3IgaHR0cHM6Ly9mZWRvcmFw cm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV8yOF9NYXNzX1JlYnVpbGQK