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: new version Date: Fri, 26 Jun 2026 03:41:49 GMT Message-ID: <178244530968.1.2358504633411741633.rpms-python-photutils-95133437e29a@fedoraproject.org> List-ID: X-Git-Repo: rpms/python-photutils X-Git-Branch: epel10 X-Git-Rev: 95133437e29a27ed0a1145a1178bfa62b9ba664e QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvcHl0aG9uLXBob3R1 dGlscwpCcmFuY2ggOiBlcGVsMTAKQ29tbWl0IDogOTUxMzM0MzdlMjlhMjdlZDBhMTE0NWExMTc4 YmZhNjJiOWJhNjY0ZQpBdXRob3IgOiBDaHJpc3RpYW4gRGVyc2NoIDxsdXBpbml4QG1haWxib3gu b3JnPgpEYXRlICAgOiAyMDE5LTA0LTI4VDE2OjM1OjE2KzAyOjAwClN0YXRzICA6ICs4Ly0xNzI3 IGluIDUgZmlsZShzKQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1z L3B5dGhvbi1waG90dXRpbHMvYy85NTEzMzQzN2UyOWEyN2VkMGExMTQ1YTExNzhiZmE2MmI5YmE2 NjRlP2JyYW5jaD1lcGVsMTAKCkxvZzoKbmV3IHZlcnNpb24KCi0tLQpkaWZmIC0tZ2l0IGEvLmdp dGlnbm9yZSBiLy5naXRpZ25vcmUKaW5kZXggZGUzMjMxNS4uZjc1NDIwNSAxMDA2NDQKLS0tIGEv LmdpdGlnbm9yZQorKysgYi8uZ2l0aWdub3JlCkBAIC01LDMgKzUsNCBAQAogL3Bob3R1dGlscy0w LjMuMi50YXIuZ3oKIC9waG90dXRpbHMtMC40LnRhci5negogL3Bob3R1dGlscy0wLjUudGFyLmd6 CisvcGhvdHV0aWxzLTAuNi50YXIuZ3oKCmRpZmYgLS1naXQgYS9weXRob24tcGhvdHV0aWxzLVVz ZS1hc3Ryb3B5X2hlbHBlcnMtcHJvdmlkZWQtYnktdGhlLXN5c3RlbS5wYXRjaCBiL3B5dGhvbi1w aG90dXRpbHMtVXNlLWFzdHJvcHlfaGVscGVycy1wcm92aWRlZC1ieS10aGUtc3lzdGVtLnBhdGNo CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDVhZGI2Li4wMDAwMDAwCi0tLSBhL3B5 dGhvbi1waG90dXRpbHMtVXNlLWFzdHJvcHlfaGVscGVycy1wcm92aWRlZC1ieS10aGUtc3lzdGVt LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotRnJvbTogT2xlIFN0cmVpY2hl ciA8b2xlYm9sZUBkZWJpYW4ub3JnPgotRGF0ZTogVGh1LCA3IEp1bCAyMDE2IDEwOjI2OjQzICsw MjAwCi1TdWJqZWN0OiBVc2UgYXN0cm9weV9oZWxwZXJzIHByb3ZpZGVkIGJ5IHRoZSBzeXN0ZW0K LQotLS0tCi0gc2V0dXAuY2ZnIHwgMiArLQotIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigr KSwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0tZ2l0IGEvc2V0dXAuY2ZnIGIvc2V0dXAuY2ZnCi1p bmRleCBlNzg4MWQwLi4yZDIzYmZkIDEwMDY0NAotLS0tIGEvc2V0dXAuY2ZnCi0rKysgYi9zZXR1 cC5jZmcKLUBAIC0xNCw3ICsxNCw3IEBAIAotIGFkZG9wdHMgPSAtLXB5YXJncyAtcCBubzp3YXJu aW5ncwotIAotIFthaF9ib290c3RyYXBdCi0tYXV0b191c2UgPSBUcnVlCi0rYXV0b191c2UgPSBG YWxzZQotIAotIFttZXRhZGF0YV0KLSBwYWNrYWdlX25hbWUgPSBwaG90dXRpbHMKCmRpZmYgLS1n aXQgYS9weXRob24tcGhvdHV0aWxzLWZpeGVzLWZvci1udW1weS0xLjE0LnBhdGNoIGIvcHl0aG9u LXBob3R1dGlscy1maXhlcy1mb3ItbnVtcHktMS4xNC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggYWZlMmFiZC4uMDAwMDAwMAotLS0gYS9weXRob24tcGhvdHV0aWxzLWZpeGVz LWZvci1udW1weS0xLjE0LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTcwMSArMCwwIEBACi1k aWZmIC1OYXVyIHBob3R1dGlscy0wLjQvZG9jcy9hcGVydHVyZS5yc3QgcGhvdHV0aWxzLTAuNC5m aXhlZC9kb2NzL2FwZXJ0dXJlLnJzdAotLS0tIHBob3R1dGlscy0wLjQvZG9jcy9hcGVydHVyZS5y c3QJMjAxNy0xMC0zMCAxNTozODoxOC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBwaG90dXRpbHMtMC40 LmZpeGVkL2RvY3MvYXBlcnR1cmUucnN0CTIwMTgtMDItMTQgMDM6NTY6MDcuMDY0NTIyNjM0ICsw MTAwCi1AQCAtMTIyLDEyICsxMjIsMTMgQEAKLSAgICAgPj4+IGZyb20gcGhvdHV0aWxzIGltcG9y dCBhcGVydHVyZV9waG90b21ldHJ5Ci0gICAgID4+PiBkYXRhID0gbnAub25lcygoMTAwLCAxMDAp KQotICAgICA+Pj4gcGhvdF90YWJsZSA9IGFwZXJ0dXJlX3Bob3RvbWV0cnkoZGF0YSwgYXBlcnR1 cmVzKQotLSAgICA+Pj4gcHJpbnQocGhvdF90YWJsZSkgICAgIyBkb2N0ZXN0OiArU0tJUAotLSAg ICAgaWQgeGNlbnRlciB5Y2VudGVyICBhcGVydHVyZV9zdW0KLSsgICAgPj4+IHBob3RfdGFibGVb J2FwZXJ0dXJlX3N1bSddLmluZm8uZm9ybWF0ID0gJyUuOGcnICAjIGZvciBjb25zaXN0ZW50IHRh YmxlIG91dHB1dAotKyAgICA+Pj4gcHJpbnQocGhvdF90YWJsZSkKLSsgICAgIGlkIHhjZW50ZXIg eWNlbnRlciBhcGVydHVyZV9zdW0KLSAgICAgICAgICAgcGl4ICAgICBwaXgKLS0gICAgLS0tIC0t LS0tLS0gLS0tLS0tLSAtLS0tLS0tLS0tLS0tCi0tICAgICAgMSAgICAzMC4wICAgIDMwLjAgMjgu Mjc0MzMzODgyMwotLSAgICAgIDIgICAgNDAuMCAgICA0MC4wIDI4LjI3NDMzMzg4MjMKLSsgICAg LS0tIC0tLS0tLS0gLS0tLS0tLSAtLS0tLS0tLS0tLS0KLSsgICAgICAxICAgIDMwLjAgICAgMzAu MCAgICAyOC4yNzQzMzQKLSsgICAgICAyICAgIDQwLjAgICAgNDAuMCAgICAyOC4yNzQzMzQKLSAK LSBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIHJlc3VsdHMgb2YgdGhlIHBob3RvbWV0cnkgaW4g YW4gQXN0cm9weQotIGB+YXN0cm9weS50YWJsZS5RVGFibGVgLiAgSW4gdGhpcyBleGFtcGxlLCB0 aGUgdGFibGUgaGFzIGZvdXIgY29sdW1ucywKLUBAIC0xNTksNyArMTYwLDcgQEAKLSAKLSAgICAg Pj4+IHBob3RfdGFibGUgPSBhcGVydHVyZV9waG90b21ldHJ5KGRhdGEsIGFwZXJ0dXJlcywgbWV0 aG9kPSdzdWJwaXhlbCcsCi0gICAgIC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdWJwaXhlbHM9NSkKLS0gICAgPj4+IHByaW50KHBob3RfdGFibGUpICAgICMgZG9jdGVzdDog K1NLSVAKLSsgICAgPj4+IHByaW50KHBob3RfdGFibGUpCi0gICAgICBpZCB4Y2VudGVyIHljZW50 ZXIgYXBlcnR1cmVfc3VtCi0gICAgICAgICAgIHBpeCAgICAgcGl4Ci0gICAgIC0tLSAtLS0tLS0t IC0tLS0tLS0gLS0tLS0tLS0tLS0tCi1AQCAtMTkyLDEyICsxOTMsMTQgQEAKLSAgICAgPj4+IHJh ZGlpID0gWzMuLCA0LiwgNS5dCi0gICAgID4+PiBhcGVydHVyZXMgPSBbQ2lyY3VsYXJBcGVydHVy ZShwb3NpdGlvbnMsIHI9cikgZm9yIHIgaW4gcmFkaWldCi0gICAgID4+PiBwaG90X3RhYmxlID0g YXBlcnR1cmVfcGhvdG9tZXRyeShkYXRhLCBhcGVydHVyZXMpCi0tICAgID4+PiBwcmludChwaG90 X3RhYmxlKSAgICAjIGRvY3Rlc3Q6ICtTS0lQCi0rICAgID4+PiBmb3IgY29sIGluIHBob3RfdGFi bGUuY29sbmFtZXM6Ci0rICAgIC4uLiAgICAgcGhvdF90YWJsZVtjb2xdLmluZm8uZm9ybWF0ID0g JyUuOGcnICAjIGZvciBjb25zaXN0ZW50IHRhYmxlIG91dHB1dAotKyAgICA+Pj4gcHJpbnQocGhv dF90YWJsZSkKLSAgICAgIGlkIHhjZW50ZXIgeWNlbnRlciBhcGVydHVyZV9zdW1fMCBhcGVydHVy ZV9zdW1fMSBhcGVydHVyZV9zdW1fMgotICAgICAgICAgICBwaXggICAgIHBpeAotICAgICAtLS0g LS0tLS0tLSAtLS0tLS0tIC0tLS0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tLS0tIC0tLS0tLS0tLS0t LS0tCi0tICAgICAgMSAgICAzMC4wICAgIDMwLjAgIDI4LjI3NDMzMzg4MjMgIDUwLjI2NTQ4MjQ1 NzQgIDc4LjUzOTgxNjMzOTcKLS0gICAgICAyICAgIDQwLjAgICAgNDAuMCAgMjguMjc0MzMzODgy MyAgNTAuMjY1NDgyNDU3NCAgNzguNTM5ODE2MzM5NwotKyAgICAgIDEgICAgICAzMCAgICAgIDMw ICAgICAgMjguMjc0MzM0ICAgICAgNTAuMjY1NDgyICAgICAgNzguNTM5ODE2Ci0rICAgICAgMiAg ICAgIDQwICAgICAgNDAgICAgICAyOC4yNzQzMzQgICAgICA1MC4yNjU0ODIgICAgICA3OC41Mzk4 MTYKLSAKLSBGb3IgbXVsdGlwbGUgYXBlcnR1cmVzLCB0aGUgb3V0cHV0IHRhYmxlIGNvbHVtbiBu YW1lcyBhcmUgYXBwZW5kZWQKLSB3aXRoIHRoZSBgYHBvc2l0aW9uc2BgIGluZGV4LgotQEAgLTIx MiwxMiArMjE1LDE0IEBACi0gICAgID4+PiB0aGV0YSA9IG5wLnBpIC8gNC4KLSAgICAgPj4+IGFw ZXJ0dXJlcyA9IEVsbGlwdGljYWxBcGVydHVyZShwb3NpdGlvbnMsIGEsIGIsIHRoZXRhKQotICAg ICA+Pj4gcGhvdF90YWJsZSA9IGFwZXJ0dXJlX3Bob3RvbWV0cnkoZGF0YSwgYXBlcnR1cmVzKQot LSAgICA+Pj4gcHJpbnQocGhvdF90YWJsZSkgICAgIyBkb2N0ZXN0OiArU0tJUAotLSAgICAgaWQg eGNlbnRlciB5Y2VudGVyICBhcGVydHVyZV9zdW0KLSsgICAgPj4+IGZvciBjb2wgaW4gcGhvdF90 YWJsZS5jb2xuYW1lczoKLSsgICAgLi4uICAgICBwaG90X3RhYmxlW2NvbF0uaW5mby5mb3JtYXQg PSAnJS44ZycgICMgZm9yIGNvbnNpc3RlbnQgdGFibGUgb3V0cHV0Ci0rICAgID4+PiBwcmludChw aG90X3RhYmxlKQotKyAgICAgaWQgeGNlbnRlciB5Y2VudGVyIGFwZXJ0dXJlX3N1bQotICAgICAg ICAgICBwaXggICAgIHBpeAotLSAgICAtLS0gLS0tLS0tLSAtLS0tLS0tIC0tLS0tLS0tLS0tLS0K LS0gICAgICAxICAgIDMwLjAgICAgMzAuMCA0Ny4xMjM4ODk4MDM4Ci0tICAgICAgMiAgICA0MC4w ICAgIDQwLjAgNDcuMTIzODg5ODAzOAotKyAgICAtLS0gLS0tLS0tLSAtLS0tLS0tIC0tLS0tLS0t LS0tLQotKyAgICAgIDEgICAgICAzMCAgICAgIDMwICAgICA0Ny4xMjM4OQotKyAgICAgIDIgICAg ICA0MCAgICAgIDQwICAgICA0Ny4xMjM4OQotIAotIEFnYWluLCBmb3IgbXVsdGlwbGUgYXBlcnR1 cmVzIG9uZSBzaG91bGQgaW5wdXQgYSBsaXN0IG9mIGFwZXJ0dXJlCi0gb2JqZWN0cywgZWFjaCB3 aXRoIGlkZW50aWNhbCBwb3NpdGlvbnM6OgotQEAgLTIyOCwxMiArMjMzLDE0IEBACi0gICAgID4+ PiBhcGVydHVyZXMgPSBbRWxsaXB0aWNhbEFwZXJ0dXJlKHBvc2l0aW9ucywgYT1haSwgYj1iaSwg dGhldGE9dGhldGEpCi0gICAgIC4uLiAgICAgICAgICAgICAgZm9yIChhaSwgYmkpIGluIHppcChh LCBiKV0KLSAgICAgPj4+IHBob3RfdGFibGUgPSBhcGVydHVyZV9waG90b21ldHJ5KGRhdGEsIGFw ZXJ0dXJlcykKLS0gICAgPj4+IHByaW50KHBob3RfdGFibGUpICAgICMgZG9jdGVzdDogK1NLSVAK LSsgICAgPj4+IGZvciBjb2wgaW4gcGhvdF90YWJsZS5jb2xuYW1lczoKLSsgICAgLi4uICAgICBw aG90X3RhYmxlW2NvbF0uaW5mby5mb3JtYXQgPSAnJS44ZycgICMgZm9yIGNvbnNpc3RlbnQgdGFi bGUgb3V0cHV0Ci0rICAgID4+PiBwcmludChwaG90X3RhYmxlKQotICAgICAgaWQgeGNlbnRlciB5 Y2VudGVyIGFwZXJ0dXJlX3N1bV8wIGFwZXJ0dXJlX3N1bV8xIGFwZXJ0dXJlX3N1bV8yCi0gICAg ICAgICAgIHBpeCAgICAgcGl4Ci0gICAgIC0tLSAtLS0tLS0tIC0tLS0tLS0gLS0tLS0tLS0tLS0t LS0gLS0tLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0KLS0gICAgICAxICAgIDMwLjAgICAgMzAu MCAgNDcuMTIzODg5ODAzOCAgNzUuMzk4MjIzNjg2MiAgMTA5Ljk1NTc0Mjg3NgotLSAgICAgIDIg ICAgNDAuMCAgICA0MC4wICA0Ny4xMjM4ODk4MDM4ICA3NS4zOTgyMjM2ODYyICAxMDkuOTU1NzQy ODc2Ci0rICAgICAgMSAgICAgIDMwICAgICAgMzAgICAgICAgNDcuMTIzODkgICAgICA3NS4zOTgy MjQgICAgICAxMDkuOTU1NzQKLSsgICAgICAyICAgICAgNDAgICAgICA0MCAgICAgICA0Ny4xMjM4 OSAgICAgIDc1LjM5ODIyNCAgICAgIDEwOS45NTU3NAotIAotIAotIEJhY2tncm91bmQgU3VidHJh Y3Rpb24KLUBAIC0yNjcsMTIgKzI3NCwxNCBAQAotIAotICAgICA+Pj4gYXBlcnMgPSBbYXBlcnR1 cmVzLCBhbm51bHVzX2FwZXJ0dXJlc10KLSAgICAgPj4+IHBob3RfdGFibGUgPSBhcGVydHVyZV9w aG90b21ldHJ5KGRhdGEsIGFwZXJzKQotLSAgICA+Pj4gcHJpbnQocGhvdF90YWJsZSkgICAgIyBk b2N0ZXN0OiArU0tJUAotKyAgICA+Pj4gZm9yIGNvbCBpbiBwaG90X3RhYmxlLmNvbG5hbWVzOgot KyAgICAuLi4gICAgIHBob3RfdGFibGVbY29sXS5pbmZvLmZvcm1hdCA9ICclLjhnJyAgIyBmb3Ig Y29uc2lzdGVudCB0YWJsZSBvdXRwdXQKLSsgICAgPj4+IHByaW50KHBob3RfdGFibGUpCi0gICAg ICBpZCB4Y2VudGVyIHljZW50ZXIgYXBlcnR1cmVfc3VtXzAgYXBlcnR1cmVfc3VtXzEKLSAgICAg ICAgICAgcGl4ICAgICBwaXgKLSAgICAgLS0tIC0tLS0tLS0gLS0tLS0tLSAtLS0tLS0tLS0tLS0t LSAtLS0tLS0tLS0tLS0tLQotLSAgICAgIDEgICAgMzAuMCAgICAzMC4wICAyOC4yNzQzMzM4ODIz ICA4Ny45NjQ1OTQzMDA1Ci0tICAgICAgMiAgICA0MC4wICAgIDQwLjAgIDI4LjI3NDMzMzg4MjMg IDg3Ljk2NDU5NDMwMDUKLSsgICAgICAxICAgICAgMzAgICAgICAzMCAgICAgIDI4LjI3NDMzNCAg ICAgIDg3Ljk2NDU5NAotKyAgICAgIDIgICAgICA0MCAgICAgIDQwICAgICAgMjguMjc0MzM0ICAg ICAgODcuOTY0NTk0Ci0gCi0gTm90ZSB0aGF0IHdlIGNhbm5vdCBzaW1wbHkgc3VidHJhY3QgdGhl IGFwZXJ0dXJlIHN1bXMgYmVjYXVzZSB0aGUKLSBhcGVydHVyZXMgaGF2ZSBkaWZmZXJlbnQgYXJl YXMuCi1AQCAtMjg5LDExICsyOTgsMTIgQEAKLSAgICAgPj4+IGJrZ19zdW0gPSBia2dfbWVhbiAq IGFwZXJ0dXJlcy5hcmVhKCkKLSAgICAgPj4+IGZpbmFsX3N1bSA9IHBob3RfdGFibGVbJ2FwZXJ0 dXJlX3N1bV8wJ10gLSBia2dfc3VtCi0gICAgID4+PiBwaG90X3RhYmxlWydyZXNpZHVhbF9hcGVy dHVyZV9zdW0nXSA9IGZpbmFsX3N1bQotLSAgICA+Pj4gcHJpbnQocGhvdF90YWJsZVsncmVzaWR1 YWxfYXBlcnR1cmVfc3VtJ10pICAgICMgZG9jdGVzdDogK0ZMT0FUX0NNUAotKyAgICA+Pj4gcGhv dF90YWJsZVsncmVzaWR1YWxfYXBlcnR1cmVfc3VtJ10uaW5mby5mb3JtYXQgPSAnJS44ZycgICMg Zm9yIGNvbnNpc3RlbnQgdGFibGUgb3V0cHV0Ci0rICAgID4+PiBwcmludChwaG90X3RhYmxlWydy ZXNpZHVhbF9hcGVydHVyZV9zdW0nXSkKLSAgICAgcmVzaWR1YWxfYXBlcnR1cmVfc3VtCi0gICAg IC0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLSAgICAgICAgLTcuMTA1NDI3MzU3NmUtMTUKLS0gICAg ICAgIC03LjEwNTQyNzM1NzZlLTE1Ci0rICAgICAgICAgICAtNy4xMDU0Mjc0ZS0xNQotKyAgICAg ICAgICAgLTcuMTA1NDI3NGUtMTUKLSAKLSBUaGUgcmVzdWx0IGhlcmUgc2hvdWxkIGJlIHplcm8g YmVjYXVzZSBhbGwgb2YgdGhlIGRhdGEgdmFsdWVzIGFyZSAxLjAKLSAodGhlIHRpbnkgZGlmZmVy ZW5jZSBmcm9tIDAuMCBpcyBkdWUgdG8gbnVtZXJpY2FsIHByZWNpc2lvbikuCi1AQCAtMzE2LDEy ICszMjYsMTQgQEAKLSAKLSAgICAgPj4+IGVycm9yID0gMC4xICogZGF0YQotICAgICA+Pj4gcGhv dF90YWJsZSA9IGFwZXJ0dXJlX3Bob3RvbWV0cnkoZGF0YSwgYXBlcnR1cmVzLCBlcnJvcj1lcnJv cikKLS0gICAgPj4+IHByaW50KHBob3RfdGFibGUpICAgICMgZG9jdGVzdDogK1NLSVAKLS0gICAg IGlkIHhjZW50ZXIgeWNlbnRlciAgYXBlcnR1cmVfc3VtIGFwZXJ0dXJlX3N1bV9lcnIKLSsgICAg Pj4+IGZvciBjb2wgaW4gcGhvdF90YWJsZS5jb2xuYW1lczoKLSsgICAgLi4uICAgICBwaG90X3Rh YmxlW2NvbF0uaW5mby5mb3JtYXQgPSAnJS44ZycgICMgZm9yIGNvbnNpc3RlbnQgdGFibGUgb3V0 cHV0Ci0rICAgID4+PiBwcmludChwaG90X3RhYmxlKQotKyAgICAgaWQgeGNlbnRlciB5Y2VudGVy IGFwZXJ0dXJlX3N1bSBhcGVydHVyZV9zdW1fZXJyCi0gICAgICAgICAgIHBpeCAgICAgcGl4Ci0t ICAgIC0tLSAtLS0tLS0tIC0tLS0tLS0gLS0tLS0tLS0tLS0tLSAtLS0tLS0tLS0tLS0tLS0tCi0t ICAgICAgMSAgICAzMC4wICAgIDMwLjAgMjguMjc0MzMzODgyMyAgIDAuNTMxNzM2MTU1MjcyCi0t ICAgICAgMiAgICA0MC4wICAgIDQwLjAgMjguMjc0MzMzODgyMyAgIDAuNTMxNzM2MTU1MjcyCi0r ICAgIC0tLSAtLS0tLS0tIC0tLS0tLS0gLS0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tLS0tLS0KLSsg ICAgICAxICAgICAgMzAgICAgICAzMCAgICAyOC4yNzQzMzQgICAgICAgMC41MzE3MzYxNgotKyAg ICAgIDIgICAgICA0MCAgICAgIDQwICAgIDI4LjI3NDMzNCAgICAgICAwLjUzMTczNjE2Ci0gCi0g YGAnYXBlcnR1cmVfc3VtX2VycidgYCB2YWx1ZXMgYXJlIGdpdmVuIGJ5OgotIAotQEAgLTM2Mywx OCArMzc1LDIwIEBACi0gICAgID4+PiBkYXRhWzIsIDJdID0gMTAwLiAgICMgYmFkIHBpeGVsCi0g ICAgID4+PiBtYXNrWzIsIDJdID0gVHJ1ZQotICAgICA+Pj4gdDEgPSBhcGVydHVyZV9waG90b21l dHJ5KGRhdGEsIGFwZXJ0dXJlLCBtYXNrPW1hc2spCi0tICAgID4+PiBwcmludCh0MVsnYXBlcnR1 cmVfc3VtJ10pICAgICMgZG9jdGVzdDogK0ZMT0FUX0NNUAotLSAgICAgYXBlcnR1cmVfc3VtCi0t ICAgICAtLS0tLS0tLS0tLS0tCi0tICAgICAxMS41NjYzNzA2MTQ0Ci0rICAgID4+PiB0MVsnYXBl cnR1cmVfc3VtJ10uaW5mby5mb3JtYXQgPSAnJS44ZycgICMgZm9yIGNvbnNpc3RlbnQgdGFibGUg b3V0cHV0Ci0rICAgID4+PiBwcmludCh0MVsnYXBlcnR1cmVfc3VtJ10pCi0rICAgIGFwZXJ0dXJl X3N1bQotKyAgICAtLS0tLS0tLS0tLS0KLSsgICAgICAgMTEuNTY2MzcxCi0gCi0gVGhlIHJlc3Vs dCBpcyB2ZXJ5IGRpZmZlcmVudCBpZiBhIGBgbWFza2BgIGltYWdlIGlzIG5vdCBwcm92aWRlZDo6 Ci0gCi0gICAgID4+PiB0MiA9IGFwZXJ0dXJlX3Bob3RvbWV0cnkoZGF0YSwgYXBlcnR1cmUpCi0t ICAgID4+PiBwcmludCh0MlsnYXBlcnR1cmVfc3VtJ10pICAgICMgZG9jdGVzdDogK0ZMT0FUX0NN UAotKyAgICA+Pj4gdDJbJ2FwZXJ0dXJlX3N1bSddLmluZm8uZm9ybWF0ID0gJyUuOGcnICAjIGZv ciBjb25zaXN0ZW50IHRhYmxlIG91dHB1dAotKyAgICA+Pj4gcHJpbnQodDJbJ2FwZXJ0dXJlX3N1 bSddKQotICAgICBhcGVydHVyZV9zdW0KLS0gICAgLS0tLS0tLS0tLS0tLQotLSAgICAxMTEuNTY2 MzcwNjE0Ci0rICAgIC0tLS0tLS0tLS0tLQotKyAgICAgICAxMTEuNTY2MzcKLSAKLSAKLSBBcGVy dHVyZSBQaG90b21ldHJ5IFVzaW5nIFNreSBDb29yZGluYXRlcwotZGlmZiAtTmF1ciBwaG90dXRp bHMtMC40L2RvY3MvYmFja2dyb3VuZC5yc3QgcGhvdHV0aWxzLTAuNC5maXhlZC9kb2NzL2JhY2tn cm91bmQucnN0Ci0tLS0gcGhvdHV0aWxzLTAuNC9kb2NzL2JhY2tncm91bmQucnN0CTIwMTctMTAt MzAgMTU6Mzg6MTguMDAwMDAwMDAwICswMTAwCi0rKysgcGhvdHV0aWxzLTAuNC5maXhlZC9kb2Nz L2JhY2tncm91bmQucnN0CTIwMTgtMDItMTQgMDM6NTY6MDcuMDY0NTIyNjM0ICswMTAwCi1AQCAt NzYsMTggKzc2LDE4IEBACi0gCi0gICAgID4+PiBpbXBvcnQgbnVtcHkgYXMgbnAKLSAgICAgPj4+ IGZyb20gYXN0cm9weS5zdGF0cyBpbXBvcnQgYml3ZWlnaHRfbG9jYXRpb24KLS0gICAgPj4+IHBy aW50KG5wLm1lZGlhbihkYXRhKSkKLS0gICAgNS4yMjU1Mjk1MTg0Ci0tICAgID4+PiBwcmludChi aXdlaWdodF9sb2NhdGlvbihkYXRhKSkKLS0gICAgNS4xODY3NTk3NTU1Ci0rICAgID4+PiBwcmlu dChucC5tZWRpYW4oZGF0YSkpICAjIGRvY3Rlc3Q6ICtGTE9BVF9DTVAKLSsgICAgNS4yMjU1Mjk1 MTgzOTkwNDgKLSsgICAgPj4+IHByaW50KGJpd2VpZ2h0X2xvY2F0aW9uKGRhdGEpKSAgIyBkb2N0 ZXN0OiArRkxPQVRfQ01QCi0rICAgIDUuMTg2NzU5NzU1NDk1NzI3Ci0gCi0gU2ltaWxhcmx5LCB1 c2luZyB0aGUgbWVkaWFuIGFic29sdXRlIGRldmlhdGlvbiB0byBlc3RpbWF0ZSB0aGUKLSBiYWNr Z3JvdW5kIG5vaXNlIGxldmVsIGdpdmVzIGEgdmFsdWUgdGhhdCBpcyBsYXJnZXIgdGhhbiB0aGUg dHJ1ZQotIHZhbHVlIG9mIDI6OgotIAotICAgICA+Pj4gZnJvbSBhc3Ryb3B5LnN0YXRzIGltcG9y dCBtYWRfc3RkCi0tICAgID4+PiBwcmludChtYWRfc3RkKGRhdGEpKSAgICAjIGRvY3Rlc3Q6ICtG TE9BVF9DTVAKLS0gICAgMi4xNDQzNzI4MDA5Ci0rICAgID4+PiBwcmludChtYWRfc3RkKGRhdGEp KSAgIyBkb2N0ZXN0OiArRkxPQVRfQ01QCi0rICAgIDIuMTQ0Mzc2MDA5NjU5ODkxNAotIAotIAot IFNpZ21hIENsaXBwaW5nIFNvdXJjZXMKLUBAIC0xMDMsOCArMTAzLDggQEAKLSAKLSAgICAgPj4+ IGZyb20gYXN0cm9weS5zdGF0cyBpbXBvcnQgc2lnbWFfY2xpcHBlZF9zdGF0cwotICAgICA+Pj4g bWVhbiwgbWVkaWFuLCBzdGQgPSBzaWdtYV9jbGlwcGVkX3N0YXRzKGRhdGEsIHNpZ21hPTMuMCwg aXRlcnM9NSkKLS0gICAgPj4+IHByaW50KChtZWFuLCBtZWRpYW4sIHN0ZCkpICAgICMgZG9jdGVz dDogK0ZMT0FUX0NNUAotLSAgICAoNS4xOTkxMzg2NTE2MjE3OTA4LCA1LjE1NTU4NzQzMzM1ODI5 MTIsIDIuMDk0Mjc1MjEyMTMyOTY5MSkKLSsgICAgPj4+IHByaW50KChtZWFuLCBtZWRpYW4sIHN0 ZCkpICAjIGRvY3Rlc3Q6ICtGTE9BVF9DTVAKLSsgICAgKDUuMTk5MTM4NjUxNjIxNzkzLCA1LjE1 NTU4NzQzMzM1ODI5MSwgMi4wOTQyNzUyMTIxMzI5NjkpCi0gCi0gCi0gTWFza2luZyBTb3VyY2Vz Ci1AQCAtMTMyLDggKzEzMiw4IEBACi0gICAgID4+PiBmcm9tIHBob3R1dGlscyBpbXBvcnQgbWFr ZV9zb3VyY2VfbWFzawotICAgICA+Pj4gbWFzayA9IG1ha2Vfc291cmNlX21hc2soZGF0YSwgc25y PTIsIG5waXhlbHM9NSwgZGlsYXRlX3NpemU9MTEpCi0gICAgID4+PiBtZWFuLCBtZWRpYW4sIHN0 ZCA9IHNpZ21hX2NsaXBwZWRfc3RhdHMoZGF0YSwgc2lnbWE9My4wLCBtYXNrPW1hc2spCi0tICAg ID4+PiBwcmludCgobWVhbiwgbWVkaWFuLCBzdGQpKSAgICAjIGRvY3Rlc3Q6ICtGTE9BVF9DTVAK LS0gICAgKDUuMDAxMDEzNDc1NDc1NTY5NSwgNS4wMDA1ODQ5MDU2MDQzNzYzLCAxLjk3MDg4NzEw MDYyNjU3MikKLSsgICAgPj4+IHByaW50KChtZWFuLCBtZWRpYW4sIHN0ZCkpICAjIGRvY3Rlc3Q6 ICtGTE9BVF9DTVAKLSsgICAgKDUuMDAxMDEzNDc1NDc1NTY5LCA1LjAwMDU4NDkwNTYwNDM3Niwg MS45NzA4ODcxMDA2MjY1NzIpCi0gCi0gT2YgY291cnNlLCB0aGUgc291cmNlIGRldGVjdGlvbiBh bmQgbWFza2luZyBwcm9jZWR1cmUgY2FuIGJlIGl0ZXJhdGVkCi0gZnVydGhlci4gIEV2ZW4gd2l0 aCBvbmUgaXRlcmF0aW9uIHdlIGFyZSB3aXRoaW4gMC4wMiUgb2YgdGhlIHRydWUKLUBAIC0yMjks NyArMjI5LDcgQEAKLSAgICAgPj4+IHksIHggPSBucC5tZ3JpZFs6bnksIDpueF0KLSAgICAgPj4+ IGdyYWRpZW50ID0gIHggKiB5IC8gNTAwMC4KLSAgICAgPj4+IGRhdGEyID0gZGF0YSArIGdyYWRp ZW50Ci0tICAgID4+PiBwbHQuaW1zaG93KGRhdGEyLCBub3JtPW5vcm0sIG9yaWdpbj0nbG93ZXIn LCBjbWFwPSdHcmV5c19yJykgICAgIyBkb2N0ZXN0OiArU0tJUAotKyAgICA+Pj4gcGx0Lmltc2hv dyhkYXRhMiwgbm9ybT1ub3JtLCBvcmlnaW49J2xvd2VyJywgY21hcD0nR3JleXNfcicpICAjIGRv Y3Rlc3Q6ICtTS0lQCi0gCi0gLi4gcGxvdDo6Ci0gCi1AQCAtMjcxLDEwICsyNzEsMTAgQEAKLSAK LSAuLiBkb2N0ZXN0LXJlcXVpcmVzOjogc2NpcHkKLSAKLS0gICAgPj4+IHByaW50KGJrZy5iYWNr Z3JvdW5kX21lZGlhbikKLS0gICAgMTAuODIxOTk3ODYyNgotLSAgICA+Pj4gcHJpbnQoYmtnLmJh Y2tncm91bmRfcm1zX21lZGlhbikKLS0gICAgMi4yOTg4MjA1Mzk2OAotKyAgICA+Pj4gcHJpbnQo YmtnLmJhY2tncm91bmRfbWVkaWFuKSAgIyBkb2N0ZXN0OiArRkxPQVRfQ01QCi0rICAgIDEwLjgy MTk5Nzg2MjU2MTc5MgotKyAgICA+Pj4gcHJpbnQoYmtnLmJhY2tncm91bmRfcm1zX21lZGlhbikg ICMgZG9jdGVzdDogK0ZMT0FUX0NNUAotKyAgICAyLjI5ODgyMDUzOTY4Mzc2MgotIAotIExldCdz IHBsb3QgdGhlIGJhY2tncm91bmQgaW1hZ2U6Ci0gCi1AQCAtMzQ4LDggKzM0OCw4IEBACi0gCi0g ICAgID4+PiBmcm9tIHNjaXB5Lm5kaW1hZ2UgaW1wb3J0IHJvdGF0ZQotICAgICA+Pj4gZGF0YTMg PSByb3RhdGUoZGF0YTIsIC00NS4pCi0tICAgID4+PiBub3JtID0gSW1hZ2VOb3JtYWxpemUoc3Ry ZXRjaD1TcXJ0U3RyZXRjaCgpKSAgICAjIGRvY3Rlc3Q6ICtTS0lQCi0tICAgID4+PiBwbHQuaW1z aG93KGRhdGEzLCBvcmlnaW49J2xvd2VyJywgY21hcD0nR3JleXNfcicsIG5vcm09bm9ybSkgICAg IyBkb2N0ZXN0OiArU0tJUAotKyAgICA+Pj4gbm9ybSA9IEltYWdlTm9ybWFsaXplKHN0cmV0Y2g9 U3FydFN0cmV0Y2goKSkgICMgZG9jdGVzdDogK1NLSVAKLSsgICAgPj4+IHBsdC5pbXNob3coZGF0 YTMsIG9yaWdpbj0nbG93ZXInLCBjbWFwPSdHcmV5c19yJywgbm9ybT1ub3JtKSAgIyBkb2N0ZXN0 OiArU0tJUAotIAotIC4uIHBsb3Q6OgotIAotQEAgLTM4Niw4ICszODYsOCBAQAotIC4uIGRvY3Rl c3QtcmVxdWlyZXM6OiBzY2lweQotIAotICAgICA+Pj4gYmFjazMgPSBia2czLmJhY2tncm91bmQg KiB+bWFzawotLSAgICA+Pj4gbm9ybSA9IEltYWdlTm9ybWFsaXplKHN0cmV0Y2g9U3FydFN0cmV0 Y2goKSkgICAgIyBkb2N0ZXN0OiArU0tJUAotLSAgICA+Pj4gcGx0Lmltc2hvdyhiYWNrMywgb3Jp Z2luPSdsb3dlcicsIGNtYXA9J0dyZXlzX3InLCBub3JtPW5vcm0pICAgICMgZG9jdGVzdDogK1NL SVAKLSsgICAgPj4+IG5vcm0gPSBJbWFnZU5vcm1hbGl6ZShzdHJldGNoPVNxcnRTdHJldGNoKCkp ICAjIGRvY3Rlc3Q6ICtTS0lQCi0rICAgID4+PiBwbHQuaW1zaG93KGJhY2szLCBvcmlnaW49J2xv d2VyJywgY21hcD0nR3JleXNfcicsIG5vcm09bm9ybSkgICMgZG9jdGVzdDogK1NLSVAKLSAKLSAu LiBwbG90OjoKLSAKLWRpZmYgLU5hdXIgcGhvdHV0aWxzLTAuNC9kb2NzL2RldGVjdGlvbi5yc3Qg cGhvdHV0aWxzLTAuNC5maXhlZC9kb2NzL2RldGVjdGlvbi5yc3QKLS0tLSBwaG90dXRpbHMtMC40 L2RvY3MvZGV0ZWN0aW9uLnJzdAkyMDE3LTEwLTMwIDE1OjM4OjE4LjAwMDAwMDAwMCArMDEwMAot KysrIHBob3R1dGlscy0wLjQuZml4ZWQvZG9jcy9kZXRlY3Rpb24ucnN0CTIwMTgtMDItMTQgMDM6 NTY6MDcuMDY1NTIyNjUwICswMTAwCi1AQCAtNjIsMjAgKzYyLDIzIEBACi0gICAgID4+PiBmcm9t IHBob3R1dGlscyBpbXBvcnQgREFPU3RhckZpbmRlcgotICAgICA+Pj4gZGFvZmluZCA9IERBT1N0 YXJGaW5kZXIoZndobT0zLjAsIHRocmVzaG9sZD01LipzdGQpICAgICMgZG9jdGVzdDogK1JFTU9U RV9EQVRBCi0gICAgID4+PiBzb3VyY2VzID0gZGFvZmluZChkYXRhIC0gbWVkaWFuKSAgICAjIGRv Y3Rlc3Q6ICtSRU1PVEVfREFUQQotKyAgICA+Pj4gZm9yIGNvbCBpbiBzb3VyY2VzLmNvbG5hbWVz OiAgICAjIGRvY3Rlc3Q6ICtSRU1PVEVfREFUQQotKyAgICAuLi4gICAgIHNvdXJjZXNbY29sXS5p bmZvLmZvcm1hdCA9ICclLjhnJyAgIyBmb3IgY29uc2lzdGVudCB0YWJsZSBvdXRwdXQKLSAgICAg Pj4+IHByaW50KHNvdXJjZXMpICAgICMgZG9jdGVzdDogK1JFTU9URV9EQVRBCi0tICAgICBpZCAg IHhjZW50cm9pZCAgICAgeWNlbnRyb2lkICAgLi4uICBwZWFrICAgICAgIGZsdXggICAgICAgICAg IG1hZwotLSAgICAtLS0gLS0tLS0tLS0tLS0tLSAtLS0tLS0tLS0tLS0tIC4uLiAtLS0tLS0gLS0t LS0tLS0tLS0tLSAtLS0tLS0tLS0tLS0tLS0KLS0gICAgICAxIDE0NC4yNDc1NjcxNjQgNi4zNzk3 OTA0MjcwNCAuLi4gNjkwMy4wIDUuNzAxNDMwMzMwMzggIC0xLjg4OTk1OTU1NDM4Ci0tICAgICAg MiAyMDguNjY5MDY4NjI4IDYuODIwNTgwNTM3NzcgLi4uIDc4OTYuMCA2LjcyMzA2NzMwNDU1ICAt Mi4wNjg5MTg2NDc0OAotLSAgICAgIDMgMjE2LjkyNjEzNjY1NSAgNi41Nzc1OTMzMTk4IC4uLiAy MTk1LjAgMS42NjczNzQ2NzU5MSAtMC41NTUwODMwMDI4NjQKLS0gICAgICA0IDM1MS42MjUxOTAz ODMgIDguNTQ1OTAxMzIzMyAuLi4gNjk3Ny4wIDUuOTAwOTI1NDgxNDcgIC0xLjkyNzMwMDMyNTcx Ci0tICAgICAgNSAzNzcuNTE5OTA5OTU4IDEyLjA2NTUwMDk5ODcgLi4uIDEyNjAuMCAxLjExODU2 MjAzNzgxIC0wLjEyMTY1MDE4OTk2OQotLSAgICAuLi4gICAgICAgICAgIC4uLiAgICAgICAgICAg Li4uIC4uLiAgICAuLi4gICAgICAgICAgIC4uLiAgICAgICAgICAgICAuLi4KLS0gICAgMjgxIDI2 OC4wNDkyMzY5NzkgMzk3LjkyNTM3MTQ0NiAuLi4gOTI5OS4wIDYuMjIwMjI1ODc1NDEgIC0xLjk4 NDUxNTM4ODg0Ci0tICAgIDI4MiAyNjguNDc1MDY4MzkyIDM5OC4wMjA5OTgyNzIgLi4uIDg3NTQu MCA2LjA1MDc5MTYwNTkzICAtMS45NTQ1MzA0ODkzNgotLSAgICAyODMgIDI5OS44MDk0MzgyMiAz OTguMDI3OTExODEzIC4uLiA4ODkwLjAgNi4xMTg1MzQxNjY2MyAgLTEuOTY2NjE4NDczODMKLS0g ICAgMjg0IDMxNS42ODk0NDgzNDMgIDM5OC43MDI1MTg5MSAuLi4gNjQ4NS4wIDUuNTU0NzExMDc3 OTMgIC0xLjg2MTY1MzY4NjMxCi0tICAgIDI4NSAzNjAuNDM3MjQzMDM3IDM5OC42OTg1Mzk1NTUg Li4uIDgwNzkuMCA1LjI2NTQ5MzIxMzc5ICAtMS44MDM1OTc2NDM0NQotKyAgICAgaWQgeGNlbnRy b2lkIHljZW50cm9pZCBzaGFycG5lc3MgIC4uLiBza3kgcGVhayAgICBmbHV4ICAgICAgIG1hZwot KyAgICAtLS0gLS0tLS0tLS0tIC0tLS0tLS0tLSAtLS0tLS0tLS0tIC4uLiAtLS0gLS0tLSAtLS0t LS0tLS0gLS0tLS0tLS0tLS0tCi0rICAgICAgMSAxNDQuMjQ3NTcgNi4zNzk3OTA0IDAuNTgxNTYy NTcgLi4uICAgMCA2OTAzIDUuNzAxNDMwMyAgIC0xLjg4OTk1OTYKLSsgICAgICAyIDIwOC42Njkw NyA2LjgyMDU4MDUgMC40ODM0ODk2NiAuLi4gICAwIDc4OTYgNi43MjMwNjczICAgLTIuMDY4OTE4 NgotKyAgICAgIDMgMjE2LjkyNjE0IDYuNTc3NTkzMyAwLjY5MzU5NTI1IC4uLiAgIDAgMjE5NSAx LjY2NzM3NDcgICAgLTAuNTU1MDgzCi0rICAgICAgNCAzNTEuNjI1MTkgOC41NDU5MDEzIDAuNDg1 Nzc4MzQgLi4uICAgMCA2OTc3IDUuOTAwOTI1NSAgIC0xLjkyNzMwMDMKLSsgICAgICA1IDM3Ny41 MTk5MSAxMi4wNjU1MDEgMC41MjAzODQ4OCAuLi4gICAwIDEyNjAgIDEuMTE4NTYyICAtMC4xMjE2 NTAxOQotKyAgICAuLi4gICAgICAgLi4uICAgICAgIC4uLiAgICAgICAgLi4uIC4uLiAuLi4gIC4u LiAgICAgICAuLi4gICAgICAgICAgLi4uCi0rICAgIDI4MCAzNDUuNTkzMDYgMzk1LjM4MjIyICAg MC4zODQwNzggLi4uICAgMCA5MzUwIDUuMDU1OTA4NCAgICAtMS43NTk0OTgKLSsgICAgMjgxIDI2 OC4wNDkyNCAzOTcuOTI1MzcgMC4yOTY1MDcxNSAuLi4gICAwIDkyOTkgNi4yMjAyMjU5ICAgLTEu OTg0NTE1NAotKyAgICAyODIgMjY4LjQ3NTA3ICAgMzk4LjAyMSAwLjI4MzI1NzQxIC4uLiAgIDAg ODc1NCA2LjA1MDc5MTYgICAtMS45NTQ1MzA1Ci0rICAgIDI4MyAyOTkuODA5NDQgMzk4LjAyNzkx IDAuMzIwMTEzMzkgLi4uICAgMCA4ODkwIDYuMTE4NTM0MiAgIC0xLjk2NjYxODUKLSsgICAgMjg0 IDMxNS42ODk0NSAzOTguNzAyNTIgMC4yOTUwMjEzOCAuLi4gICAwIDY0ODUgNS41NTQ3MTExICAg LTEuODYxNjUzNwotKyAgICAyODUgMzYwLjQzNzI0IDM5OC42OTg1NCAwLjgxMTQ3MTQ0IC4uLiAg IDAgODA3OSA1LjI2NTQ5MzIgICAtMS44MDM1OTc2Ci0gICAgIExlbmd0aCA9IDI4NSByb3dzCi0g Ci0gTGV0J3MgcGxvdCB0aGUgaW1hZ2UgYW5kIG1hcmsgdGhlIGxvY2F0aW9uIG9mIGRldGVjdGVk IHNvdXJjZXM6Ci1AQCAtMTQzLDE5ICsxNDYsMjAgQEAKLSAgICAgPj4+IG1lYW4sIG1lZGlhbiwg c3RkID0gc2lnbWFfY2xpcHBlZF9zdGF0cyhkYXRhLCBzaWdtYT0zLjApCi0gICAgID4+PiB0aHJl c2hvbGQgPSBtZWRpYW4gKyAoMTAuMCAqIHN0ZCkKLSAgICAgPj4+IHRibCA9IGZpbmRfcGVha3Mo ZGF0YSwgdGhyZXNob2xkLCBib3hfc2l6ZT01KQotKyAgICA+Pj4gdGJsWydwZWFrX3ZhbHVlJ10u aW5mby5mb3JtYXQgPSAnJS44ZycgICMgZm9yIGNvbnNpc3RlbnQgdGFibGUgb3V0cHV0Ci0gICAg ID4+PiBwcmludCh0YmxbOjEwXSkgICAgIyBwcmludCBvbmx5IHRoZSBmaXJzdCAxMCBwZWFrcwot LSAgICB4X3BlYWsgeV9wZWFrICAgcGVha192YWx1ZQotLSAgICAtLS0tLS0gLS0tLS0tIC0tLS0t LS0tLS0tLS0KLS0gICAgICAgMjMzICAgICAgMCAyNy40Nzc4NTIxOTcyCi0tICAgICAgIDIzNiAg ICAgIDEgIDI3LjMzOTUxOTYyNAotLSAgICAgICAyODkgICAgIDIyIDM1Ljg1MzI3NTk5NjUKLS0g ICAgICAgNDQyICAgICAzMSAzMC4yMzk5OTQxMzczCi0tICAgICAgICAgMSAgICAgNDAgMzUuNTQ4 Mjg2MzAwMgotLSAgICAgICAgODkgICAgIDU5IDQxLjIxOTA0NjkyNzkKLS0gICAgICAgICA3ICAg ICA3MCAzMy4yODgwNjQ3MDQ4Ci0tICAgICAgIDI1OCAgICAgNzUgMjYuNTYyNDgwODUxOAotLSAg ICAgICA0NjMgICAgIDgwIDI4Ljc1ODgyMDY2OTIKLS0gICAgICAgMTgyICAgICA5MyAzOC4wODg1 Njg3MjAyCi0rICAgIHhfcGVhayB5X3BlYWsgcGVha192YWx1ZQotKyAgICAtLS0tLS0gLS0tLS0t IC0tLS0tLS0tLS0KLSsgICAgICAgMjMzICAgICAgMCAgMjcuNDc3ODUyCi0rICAgICAgIDIzNiAg ICAgIDEgICAyNy4zMzk1MgotKyAgICAgICAyODkgICAgIDIyICAzNS44NTMyNzYKLSsgICAgICAg NDQyICAgICAzMSAgMzAuMjM5OTk0Ci0rICAgICAgICAgMSAgICAgNDAgIDM1LjU0ODI4NgotKyAg ICAgICAgODkgICAgIDU5ICA0MS4yMTkwNDcKLSsgICAgICAgICA3ICAgICA3MCAgMzMuMjg4MDY1 Ci0rICAgICAgIDI1OCAgICAgNzUgIDI2LjU2MjQ4MQotKyAgICAgICA0NjMgICAgIDgwICAyOC43 NTg4MjEKLSsgICAgICAgMTgyICAgICA5MyAgMzguMDg4NTY5Ci0gCi0gQW5kIGxldCdzIHBsb3Qg dGhlIGxvY2F0aW9uIG9mIHRoZSBkZXRlY3RlZCBwZWFrcyBpbiB0aGUgaW1hZ2U6Ci0gCi1kaWZm IC1OYXVyIHBob3R1dGlscy0wLjQvZG9jcy9nZXR0aW5nX3N0YXJ0ZWQucnN0IHBob3R1dGlscy0w LjQuZml4ZWQvZG9jcy9nZXR0aW5nX3N0YXJ0ZWQucnN0Ci0tLS0gcGhvdHV0aWxzLTAuNC9kb2Nz L2dldHRpbmdfc3RhcnRlZC5yc3QJMjAxNy0xMC0zMCAxNTozODoxOC4wMDAwMDAwMDAgKzAxMDAK LSsrKyBwaG90dXRpbHMtMC40LmZpeGVkL2RvY3MvZ2V0dGluZ19zdGFydGVkLnJzdAkyMDE4LTAy LTE0IDAzOjU2OjA3LjA2NTUyMjY1MCArMDEwMAotQEAgLTMxLDIwICszMSwyMyBAQAotICAgICA+ Pj4gYmtnX3NpZ21hID0gbWFkX3N0ZChpbWFnZSkgICAgIyBkb2N0ZXN0OiArUkVNT1RFX0RBVEEK LSAgICAgPj4+IGRhb2ZpbmQgPSBEQU9TdGFyRmluZGVyKGZ3aG09NC4sIHRocmVzaG9sZD0zLipi a2dfc2lnbWEpICAgICMgZG9jdGVzdDogK1JFTU9URV9EQVRBCi0gICAgID4+PiBzb3VyY2VzID0g ZGFvZmluZChpbWFnZSkgICAgIyBkb2N0ZXN0OiArUkVNT1RFX0RBVEEKLSsgICAgPj4+IGZvciBj b2wgaW4gc291cmNlcy5jb2xuYW1lczogICMgZG9jdGVzdDogK1JFTU9URV9EQVRBCi0rICAgIC4u LiAgICAgc291cmNlc1tjb2xdLmluZm8uZm9ybWF0ID0gJyUuOGcnICAjIGZvciBjb25zaXN0ZW50 IHRhYmxlIG91dHB1dAotICAgICA+Pj4gcHJpbnQoc291cmNlcykgICAgIyBkb2N0ZXN0OiArUkVN T1RFX0RBVEEKLS0gICAgIGlkICAgeGNlbnRyb2lkICAgICB5Y2VudHJvaWQgICAgLi4uICBwZWFr ICAgICAgIGZsdXggICAgICAgICAgIG1hZwotLSAgICAtLS0gLS0tLS0tLS0tLS0tLSAtLS0tLS0t LS0tLS0tLSAuLi4gLS0tLS0tIC0tLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0tCi0tICAgICAg MSAxODIuODM4NjU4OTM4IDAuMTY3NjcwMTkwNTM3IC4uLiAzODI0LjAgMi44MDI4MzQ1OTQ2OSAg LTEuMTE4OTkzNjczMTEKLS0gICAgICAyIDE4OS4yMDQzMDgxMzQgMC4yNjA4MTM1MjUzMzggLi4u IDQ5MTMuMCAzLjg3MjkxODUwMzExICAtMS40NzAwOTU4OTU4MgotLSAgICAgIDMgNS43OTQ2NDkx MTQzMyAgMi42MTI1NDI0MDgwNyAuLi4gNzc1Mi4wICA0LjEwMjkxMDcyOTQgIC0xLjUzMjczMDE2 OTM3Ci0tICAgICAgNCAzNi44NDcwNjI3ODA0ICAxLjMyMjAyMjc5NTgyIC4uLiA4NzM5LjAgNy40 MzE1ODE3ODc5MyAgLTIuMTc3NzAzMTU0NDEKLS0gICAgICA1ICAzLjI1NjU2MDI0NTIgIDUuNDE4 OTUyMDE3NDggLi4uIDY5MzUuMCAzLjgxMjYyOTg0MDc0ICAtMS40NTMwNjE2MDY3MwotLSAgICAu Li4gICAgICAgICAgIC4uLiAgICAgICAgICAgIC4uLiAuLi4gICAgLi4uICAgICAgICAgICAuLi4g ICAgICAgICAgICAgLi4uCi0tICAgIDE0OCAxMjQuMzEzMjcyNTc5ICAxODguMzA1MjI5MTU5IC4u LiA2NzAyLjAgNi42MzU4NTQyOTMwMyAgLTIuMDU0NzQyMTAzNTYKLS0gICAgMTQ5IDI0LjI1NzIw NzQ5NjIgIDE5NC43MTQ5NDI4MTQgLi4uIDgzNDIuMCAgMy4yNjcxMDM2OTk2ICAtMS4yODU0MDcy OTg1OAotLSAgICAxNTAgMTE2LjQ0OTk5ODQyMiAgMTk1LjA1OTIzMzMyNSAuLi4gMzI5OS4wIDIu ODc3NTIyMDU3NjYgICAtMS4xNDc1NDY2NTM1Ci0tICAgIDE1MSAxOC45NTgwODYwNjQ1ICAxOTYu MzQyMDY1MTMyIC4uLiAzODU0LjAgMi4zODM1Mjk2MTIyNCAtMC45NDMwNTEzNzk1OTUKLS0gICAg MTUyIDExMS41MjU3NTExOTYgIDE5NS43MzE5MTc5OTUgLi4uIDgxMDkuMCAgNy45Mjc4NjA3NDAx ICAtMi4yNDc4OTAwMzE5NAotKyAgICAgaWQgeGNlbnRyb2lkIHljZW50cm9pZCAgc2hhcnBuZXNz ICAuLi4gc2t5IHBlYWsgICAgZmx1eCAgICAgICBtYWcKLSsgICAgLS0tIC0tLS0tLS0tLSAtLS0t LS0tLS0tIC0tLS0tLS0tLS0gLi4uIC0tLSAtLS0tIC0tLS0tLS0tLSAtLS0tLS0tLS0tLQotKyAg ICAgIDEgMTgyLjgzODY2IDAuMTY3NjcwMTkgMC44NTA5OTg3MyAuLi4gICAwIDM4MjQgMi44MDI4 MzQ2ICAtMS4xMTg5OTM3Ci0rICAgICAgMiAxODkuMjA0MzEgMC4yNjA4MTM1MyAgMC43NDAwNDc3 IC4uLiAgIDAgNDkxMyAzLjg3MjkxODUgIC0xLjQ3MDA5NTkKLSsgICAgICAzIDUuNzk0NjQ5MSAg Mi42MTI1NDI0IDAuMzk1ODk3MzEgLi4uICAgMCA3NzUyIDQuMTAyOTEwNyAgLTEuNTMyNzMwMgot KyAgICAgIDQgMzYuODQ3MDYzICAxLjMyMjAyMjggMC4yOTU5NDUyOCAuLi4gICAwIDg3MzkgNy40 MzE1ODE4ICAtMi4xNzc3MDMyCi0rICAgICAgNSAzLjI1NjU2MDIgICA1LjQxODk1MiAwLjM1OTg1 NDk1IC4uLiAgIDAgNjkzNSAzLjgxMjYyOTggIC0xLjQ1MzA2MTYKLSsgICAgLi4uICAgICAgIC4u LiAgICAgICAgLi4uICAgICAgICAuLi4gLi4uIC4uLiAgLi4uICAgICAgIC4uLiAgICAgICAgIC4u LgotKyAgICAxNDcgMTk3LjI0ODY0ICAxODYuMTY2NDcgMC4zMTIxMTUzMiAuLi4gICAwIDgzMDIg Ny41ODE0NjI5ICAtMi4xOTkzODI1Ci0rICAgIDE0OCAxMjQuMzEzMjcgIDE4OC4zMDUyMyAgMC41 MzYyNzQyIC4uLiAgIDAgNjcwMiA2LjYzNTg1NDMgIC0yLjA1NDc0MjEKLSsgICAgMTQ5IDI0LjI1 NzIwNyAgMTk0LjcxNDk0IDAuNDQxNjk1NDYgLi4uICAgMCA4MzQyIDMuMjY3MTAzNyAgLTEuMjg1 NDA3MwotKyAgICAxNTAgICAgMTE2LjQ1ICAxOTUuMDU5MjMgMC42NzA4MDU0NyAuLi4gICAwIDMy OTkgMi44Nzc1MjIxICAtMS4xNDc1NDY3Ci0rICAgIDE1MSAxOC45NTgwODYgIDE5Ni4zNDIwNyAw LjU2NTAyMTM5IC4uLiAgIDAgMzg1NCAyLjM4MzUyOTYgLTAuOTQzMDUxMzgKLSsgICAgMTUyIDEx MS41MjU3NSAgMTk1LjczMTkyIDAuNDU4Mjc4NTIgLi4uICAgMCA4MTA5IDcuOTI3ODYwNyAgICAt Mi4yNDc4OQotICAgICBMZW5ndGggPSAxNTIgcm93cwotIAotIFVzaW5nIHRoZSBsaXN0IG9mIHNv dXJjZSBsb2NhdGlvbnMgKGBgeGNlbnRyb2lkYGAgYW5kIGBgeWNlbnRyb2lkYGApLAotQEAgLTU5 LDIxICs2MiwyMyBAQAotICAgICA+Pj4gcG9zaXRpb25zID0gKHNvdXJjZXNbJ3hjZW50cm9pZCdd LCBzb3VyY2VzWyd5Y2VudHJvaWQnXSkgICAgIyBkb2N0ZXN0OiArUkVNT1RFX0RBVEEKLSAgICAg Pj4+IGFwZXJ0dXJlcyA9IENpcmN1bGFyQXBlcnR1cmUocG9zaXRpb25zLCByPTQuKSAgICAjIGRv Y3Rlc3Q6ICtSRU1PVEVfREFUQQotICAgICA+Pj4gcGhvdF90YWJsZSA9IGFwZXJ0dXJlX3Bob3Rv bWV0cnkoaW1hZ2UsIGFwZXJ0dXJlcykgICAgIyBkb2N0ZXN0OiArUkVNT1RFX0RBVEEKLS0gICAg Pj4+IHByaW50KHBob3RfdGFibGUpICAgIyBkb2N0ZXN0OiArU0tJUAotLSAgICAgaWQgICAgICB4 Y2VudGVyICAgICAgICAgICAgIHljZW50ZXIgICAgICAgIGFwZXJ0dXJlX3N1bQotLSAgICAgICAg ICAgICAgIHBpeCAgICAgICAgICAgICAgICAgcGl4Ci0tICAgIC0tLSAtLS0tLS0tLS0tLS0tLS0t LS0gLS0tLS0tLS0tLS0tLS0tLS0tLSAtLS0tLS0tLS0tLS0tCi0tICAgICAgMSAgMTgyLjgzODY1 ODkzODEzMDggMC4xNjc2NzAxOTA1MzY5Mzc1MiAxODEyMS43NTk0ODM3Ci0tICAgICAgMiAxODku MjA0MzA4MTM0MDMzODggMC4yNjA4MTM1MjUzMzc2NjUxNiAyOTgzNi41MTUyMTU4Ci0tICAgICAg MyAgNS43OTQ2NDkxMTQzMjkyNDYgICAyLjYxMjU0MjQwODA3MzU0NyAzMzE5NzkuODE5MDM3Ci0t ICAgICAgNCAgMzYuODQ3MDYyNzgwNDM1ODIgIDEuMzIyMDIyNzk1ODE1MzI1NyAxODM3MDUuMDkz Mjg0Ci0tICAgICAgNSAzLjI1NjU2MDI0NTIwMDczMjUgICA1LjQxODk1MjAxNzQ3NjUwOCAzNDk0 NjguOTc4NjI3Ci0tICAgIC4uLiAgICAgICAgICAgICAgICAuLi4gICAgICAgICAgICAgICAgIC4u LiAgICAgICAgICAgLi4uCi0tICAgIDE0OCAgMTI0LjMxMzI3MjU3OTM5MzkgIDE4OC4zMDUyMjkx NTg1ODY2OCA0NTA4NC44NzM3ODY3Ci0tICAgIDE0OSAyNC4yNTcyMDc0OTYyMDkwMjcgIDE5NC43 MTQ5NDI4MTQxOTI2NSAzNTU3NzguMDA3Mjk4Ci0tICAgIDE1MCAxMTYuNDQ5OTk4NDIxNzc4MjYg IDE5NS4wNTkyMzMzMjQ4MzExNSAzMTIzMi45MTE3ODE4Ci0tICAgIDE1MSAxOC45NTgwODYwNjQ0 ODUwMTMgICAxOTYuMzQyMDY1MTMxNjQwMSAxNjIwNzYuMjYyNzUyCi0tICAgIDE1MiAxMTEuNTI1 NzUxMTk2MDU5MzMgIDE5NS43MzE5MTc5OTQ2OTM3MyA4Mjc5NS43MTQ1NjYxCi0rICAgID4+PiBm b3IgY29sIGluIHBob3RfdGFibGUuY29sbmFtZXM6ICAjIGRvY3Rlc3Q6ICtSRU1PVEVfREFUQQot KyAgICAuLi4gICAgIHBob3RfdGFibGVbY29sXS5pbmZvLmZvcm1hdCA9ICclLjhnJyAgIyBmb3Ig Y29uc2lzdGVudCB0YWJsZSBvdXRwdXQKLSsgICAgPj4+IHByaW50KHBob3RfdGFibGUpICAjIGRv Y3Rlc3Q6ICtSRU1PVEVfREFUQQotKyAgICAgaWQgIHhjZW50ZXIgICB5Y2VudGVyICAgYXBlcnR1 cmVfc3VtCi0rICAgICAgICAgICBwaXggICAgICAgcGl4Ci0rICAgIC0tLSAtLS0tLS0tLS0gLS0t LS0tLS0tLSAtLS0tLS0tLS0tLS0KLSsgICAgICAxIDE4Mi44Mzg2NiAwLjE2NzY3MDE5ICAgIDE4 MTIxLjc1OQotKyAgICAgIDIgMTg5LjIwNDMxIDAuMjYwODEzNTMgICAgMjk4MzYuNTE1Ci0rICAg ICAgMyA1Ljc5NDY0OTEgIDIuNjEyNTQyNCAgICAzMzE5NzkuODIKLSsgICAgICA0IDM2Ljg0NzA2 MyAgMS4zMjIwMjI4ICAgIDE4MzcwNS4wOQotKyAgICAgIDUgMy4yNTY1NjAyICAgNS40MTg5NTIg ICAgMzQ5NDY4Ljk4Ci0rICAgIC4uLiAgICAgICAuLi4gICAgICAgIC4uLiAgICAgICAgICAuLi4K LSsgICAgMTQ4IDEyNC4zMTMyNyAgMTg4LjMwNTIzICAgIDQ1MDg0Ljg3NAotKyAgICAxNDkgMjQu MjU3MjA3ICAxOTQuNzE0OTQgICAgMzU1Nzc4LjAxCi0rICAgIDE1MCAgICAxMTYuNDUgIDE5NS4w NTkyMyAgICAzMTIzMi45MTIKLSsgICAgMTUxIDE4Ljk1ODA4NiAgMTk2LjM0MjA3ICAgIDE2MjA3 Ni4yNgotKyAgICAxNTIgMTExLjUyNTc1ICAxOTUuNzMxOTIgICAgODI3OTUuNzE1Ci0gICAgIExl bmd0aCA9IDE1MiByb3dzCi0gCi0gVGhlIHN1bSBvZiB0aGUgcGl4ZWwgdmFsdWVzIHdpdGhpbiB0 aGUgYXBlcnR1cmVzIGFyZSBnaXZlbiBpbiB0aGUKLWRpZmYgLU5hdXIgcGhvdHV0aWxzLTAuNC9w aG90dXRpbHMvYXBlcnR1cmUvdGVzdHMvdGVzdF9hcGVydHVyZV9waG90b21ldHJ5LnB5IHBob3R1 dGlscy0wLjQuZml4ZWQvcGhvdHV0aWxzL2FwZXJ0dXJlL3Rlc3RzL3Rlc3RfYXBlcnR1cmVfcGhv dG9tZXRyeS5weQotLS0tIHBob3R1dGlscy0wLjQvcGhvdHV0aWxzL2FwZXJ0dXJlL3Rlc3RzL3Rl c3RfYXBlcnR1cmVfcGhvdG9tZXRyeS5weQkyMDE3LTEwLTMwIDE1OjM4OjE4LjAwMDAwMDAwMCAr MDEwMAotKysrIHBob3R1dGlscy0wLjQuZml4ZWQvcGhvdHV0aWxzL2FwZXJ0dXJlL3Rlc3RzL3Rl c3RfYXBlcnR1cmVfcGhvdG9tZXRyeS5weQkyMDE4LTAyLTE0IDAzOjU2OjA3LjA2MzUyMjYxOSAr MDEwMAotQEAgLTE5LDggKzE5LDEwIEBACi0gZnJvbSBhc3Ryb3B5LnRhYmxlIGltcG9ydCBUYWJs ZQotIGZyb20gYXN0cm9weS50ZXN0cy5oZWxwZXIgaW1wb3J0IHJlbW90ZV9kYXRhCi0gaW1wb3J0 IGFzdHJvcHkudW5pdHMgYXMgdQotK2Zyb20gYXN0cm9weS51dGlscy5jb21wYXQgaW1wb3J0IE5V TVBZX0xUXzFfMTQKLSBmcm9tIGFzdHJvcHkud2NzLnV0aWxzIGltcG9ydCBwaXhlbF90b19za3lj b29yZAotIAotKwotIGZyb20gLi5jb3JlIGltcG9ydCBhcGVydHVyZV9waG90b21ldHJ5Ci0gZnJv bSAuLmNpcmNsZSBpbXBvcnQgKENpcmN1bGFyQXBlcnR1cmUsIENpcmN1bGFyQW5udWx1cywgU2t5 Q2lyY3VsYXJBcGVydHVyZSwKLSAgICAgICAgICAgICAgICAgICAgICAgU2t5Q2lyY3VsYXJBbm51 bHVzKQotQEAgLTY2NCw2NCArNjY2LDExOSBAQAotICAgICBzID0gU2t5Q29vcmQoWzEsIDJdLCBb MywgNF0sIHVuaXQ9J2RlZycpCi0gCi0gICAgIGFwZXIgPSBTa3lDaXJjdWxhckFwZXJ0dXJlKHMs IHI9Myp1LnBpeCkKLS0gICAgYV9yZXByID0gKCc8U2t5Q2lyY3VsYXJBcGVydHVyZSg8U2t5Q29v cmQgKElDUlMpOiAocmEsIGRlYykgaW4gZGVnXG4nCi0tICAgICAgICAgICAgICAnICAgIFsoIDEu LCAgMy4pLCAoIDIuLCAgNC4pXT4sIHI9My4wIHBpeCk+JykKLS0gICAgYV9zdHIgPSAoJ0FwZXJ0 dXJlOiBTa3lDaXJjdWxhckFwZXJ0dXJlXG5wb3NpdGlvbnM6IDxTa3lDb29yZCAnCi0tICAgICAg ICAgICAgICcoSUNSUyk6IChyYSwgZGVjKSBpbiBkZWdcbiAgICBbKCAxLiwgIDMuKSwgKCAyLiwg IDQuKV0+XG4nCi0tICAgICAgICAgICAgICdyOiAzLjAgcGl4JykKLSsgICAgaWYgTlVNUFlfTFRf MV8xNDoKLSsgICAgICAgIGFfcmVwciA9ICgnPFNreUNpcmN1bGFyQXBlcnR1cmUoPFNreUNvb3Jk IChJQ1JTKTogKHJhLCBkZWMpIGluIGRlZ1xuJwotKyAgICAgICAgICAgICAgICAgICcgICAgWygg MS4sICAzLiksICggMi4sICA0LildPiwgcj0zLjAgcGl4KT4nKQotKyAgICAgICAgYV9zdHIgPSAo J0FwZXJ0dXJlOiBTa3lDaXJjdWxhckFwZXJ0dXJlXG5wb3NpdGlvbnM6IDxTa3lDb29yZCAnCi0r ICAgICAgICAgICAgICAgICAnKElDUlMpOiAocmEsIGRlYykgaW4gZGVnXG4gICAgWyggMS4sICAz LiksICggMi4sICA0LildPlxuJwotKyAgICAgICAgICAgICAgICAgJ3I6IDMuMCBwaXgnKQotKyAg ICBlbHNlOgotKyAgICAgICAgYV9yZXByID0gKCc8U2t5Q2lyY3VsYXJBcGVydHVyZSg8U2t5Q29v cmQgKElDUlMpOiAocmEsIGRlYykgaW4gZGVnXG4nCi0rICAgICAgICAgICAgICAgICAgJyAgICBb KDEuLCAzLiksICgyLiwgNC4pXT4sIHI9My4wIHBpeCk+JykKLSsgICAgICAgIGFfc3RyID0gKCdB cGVydHVyZTogU2t5Q2lyY3VsYXJBcGVydHVyZVxucG9zaXRpb25zOiA8U2t5Q29vcmQgJwotKyAg ICAgICAgICAgICAgICAgJyhJQ1JTKTogKHJhLCBkZWMpIGluIGRlZ1xuICAgIFsoMS4sIDMuKSwg KDIuLCA0LildPlxuJwotKyAgICAgICAgICAgICAgICAgJ3I6IDMuMCBwaXgnKQotKwotICAgICBh c3NlcnQgcmVwcihhcGVyKSA9PSBhX3JlcHIKLSAgICAgYXNzZXJ0IHN0cihhcGVyKSA9PSBhX3N0 cgotIAotICAgICBhcGVyID0gU2t5Q2lyY3VsYXJBbm51bHVzKHMsIHJfaW49My4qdS5waXgsIHJf b3V0PTUqdS5waXgpCi0tICAgIGFfcmVwciA9ICgnPFNreUNpcmN1bGFyQW5udWx1cyg8U2t5Q29v cmQgKElDUlMpOiAocmEsIGRlYykgaW4gZGVnXG4nCi0tICAgICAgICAgICAgICAnICAgIFsoIDEu LCAgMy4pLCAoIDIuLCAgNC4pXT4sIHJfaW49My4wIHBpeCwgcl9vdXQ9NS4wIHBpeCk+JykKLS0g ICAgYV9zdHIgPSAoJ0FwZXJ0dXJlOiBTa3lDaXJjdWxhckFubnVsdXNcbnBvc2l0aW9uczogPFNr eUNvb3JkICcKLS0gICAgICAgICAgICAgJyhJQ1JTKTogKHJhLCBkZWMpIGluIGRlZ1xuICAgIFso IDEuLCAgMy4pLCAoIDIuLCAgNC4pXT5cbicKLS0gICAgICAgICAgICAgJ3JfaW46IDMuMCBwaXhc bnJfb3V0OiA1LjAgcGl4JykKLSsgICAgaWYgTlVNUFlfTFRfMV8xNDoKLSsgICAgICAgIGFfcmVw ciA9ICgnPFNreUNpcmN1bGFyQW5udWx1cyg8U2t5Q29vcmQgKElDUlMpOiAocmEsIGRlYykgaW4g ZGVnXG4nCi0rICAgICAgICAgICAgICAgICAgJyAgICBbKCAxLiwgIDMuKSwgKCAyLiwgIDQuKV0+ LCByX2luPTMuMCBwaXgsICcKLSsgICAgICAgICAgICAgICAgICAncl9vdXQ9NS4wIHBpeCk+JykK LSsgICAgICAgIGFfc3RyID0gKCdBcGVydHVyZTogU2t5Q2lyY3VsYXJBbm51bHVzXG5wb3NpdGlv bnM6IDxTa3lDb29yZCAnCi0rICAgICAgICAgICAgICAgICAnKElDUlMpOiAocmEsIGRlYykgaW4g ZGVnXG4gICAgWyggMS4sICAzLiksICggMi4sICA0LildPlxuJwotKyAgICAgICAgICAgICAgICAg J3JfaW46IDMuMCBwaXhcbnJfb3V0OiA1LjAgcGl4JykKLSsgICAgZWxzZToKLSsgICAgICAgIGFf cmVwciA9ICgnPFNreUNpcmN1bGFyQW5udWx1cyg8U2t5Q29vcmQgKElDUlMpOiAocmEsIGRlYykg aW4gZGVnXG4nCi0rICAgICAgICAgICAgICAgICAgJyAgICBbKDEuLCAzLiksICgyLiwgNC4pXT4s IHJfaW49My4wIHBpeCwgcl9vdXQ9NS4wIHBpeCk+JykKLSsgICAgICAgIGFfc3RyID0gKCdBcGVy dHVyZTogU2t5Q2lyY3VsYXJBbm51bHVzXG5wb3NpdGlvbnM6IDxTa3lDb29yZCAnCi0rICAgICAg ICAgICAgICAgICAnKElDUlMpOiAocmEsIGRlYykgaW4gZGVnXG4gICAgWygxLiwgMy4pLCAoMi4s IDQuKV0+XG4nCi0rICAgICAgICAgICAgICAgICAncl9pbjogMy4wIHBpeFxucl9vdXQ6IDUuMCBw aXgnKQotKwotICAgICBhc3NlcnQgcmVwcihhcGVyKSA9PSBhX3JlcHIKLSAgICAgYXNzZXJ0IHN0 cihhcGVyKSA9PSBhX3N0cgotIAotICAgICBhcGVyID0gU2t5RWxsaXB0aWNhbEFwZXJ0dXJlKHMs IGE9Myp1LnBpeCwgYj01KnUucGl4LCB0aGV0YT0xNSp1LmRlZykKLS0gICAgYV9yZXByID0gKCc8 U2t5RWxsaXB0aWNhbEFwZXJ0dXJlKDxTa3lDb29yZCAoSUNSUyk6IChyYSwgZGVjKSBpbiAnCi0t ICAgICAgICAgICAgICAnZGVnXG4gICAgWyggMS4sICAzLiksICggMi4sICA0LildPiwgYT0zLjAg cGl4LCBiPTUuMCBwaXgsJwotLSAgICAgICAgICAgICAgJyB0aGV0YT0xNS4wIGRlZyk+JykKLS0g ICAgYV9zdHIgPSAoJ0FwZXJ0dXJlOiBTa3lFbGxpcHRpY2FsQXBlcnR1cmVcbnBvc2l0aW9uczog PFNreUNvb3JkICcKLS0gICAgICAgICAgICAgJyhJQ1JTKTogKHJhLCBkZWMpIGluIGRlZ1xuICAg IFsoIDEuLCAgMy4pLCAoIDIuLCAgNC4pXT5cbicKLS0gICAgICAgICAgICAgJ2E6IDMuMCBwaXhc bmI6IDUuMCBwaXhcbnRoZXRhOiAxNS4wIGRlZycpCi0rICAgIGlmIE5VTVBZX0xUXzFfMTQ6Ci0r ICAgICAgICBhX3JlcHIgPSAoJzxTa3lFbGxpcHRpY2FsQXBlcnR1cmUoPFNreUNvb3JkIChJQ1JT KTogKHJhLCBkZWMpIGluICcKLSsgICAgICAgICAgICAgICAgICAnZGVnXG4gICAgWyggMS4sICAz LiksICggMi4sICA0LildPiwgYT0zLjAgcGl4LCBiPTUuMCBwaXgsJwotKyAgICAgICAgICAgICAg ICAgICcgdGhldGE9MTUuMCBkZWcpPicpCi0rICAgICAgICBhX3N0ciA9ICgnQXBlcnR1cmU6IFNr eUVsbGlwdGljYWxBcGVydHVyZVxucG9zaXRpb25zOiA8U2t5Q29vcmQgJwotKyAgICAgICAgICAg ICAgICAgJyhJQ1JTKTogKHJhLCBkZWMpIGluIGRlZ1xuICAgIFsoIDEuLCAgMy4pLCAoIDIuLCAg NC4pXT5cbicKLSsgICAgICAgICAgICAgICAgICdhOiAzLjAgcGl4XG5iOiA1LjAgcGl4XG50aGV0 YTogMTUuMCBkZWcnKQotKyAgICBlbHNlOgotKyAgICAgICAgYV9yZXByID0gKCc8U2t5RWxsaXB0 aWNhbEFwZXJ0dXJlKDxTa3lDb29yZCAoSUNSUyk6IChyYSwgZGVjKSBpbiAnCi0rICAgICAgICAg ICAgICAgICAgJ2RlZ1xuICAgIFsoMS4sIDMuKSwgKDIuLCA0LildPiwgYT0zLjAgcGl4LCBiPTUu MCBwaXgsJwotKyAgICAgICAgICAgICAgICAgICcgdGhldGE9MTUuMCBkZWcpPicpCi0rICAgICAg ICBhX3N0ciA9ICgnQXBlcnR1cmU6IFNreUVsbGlwdGljYWxBcGVydHVyZVxucG9zaXRpb25zOiA8 U2t5Q29vcmQgJwotKyAgICAgICAgICAgICAgICAgJyhJQ1JTKTogKHJhLCBkZWMpIGluIGRlZ1xu ICAgIFsoMS4sIDMuKSwgKDIuLCA0LildPlxuJwotKyAgICAgICAgICAgICAgICAgJ2E6IDMuMCBw aXhcbmI6IDUuMCBwaXhcbnRoZXRhOiAxNS4wIGRlZycpCi0rCi0gICAgIGFzc2VydCByZXByKGFw ZXIpID09IGFfcmVwcgotICAgICBhc3NlcnQgc3RyKGFwZXIpID09IGFfc3RyCi0gCi0gICAgIGFw ZXIgPSBTa3lFbGxpcHRpY2FsQW5udWx1cyhzLCBhX2luPTMqdS5waXgsIGFfb3V0PTUqdS5waXgs IGJfb3V0PTMqdS5waXgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGV0YT0x NSp1LmRlZykKLS0gICAgYV9yZXByID0gKCc8U2t5RWxsaXB0aWNhbEFubnVsdXMoPFNreUNvb3Jk IChJQ1JTKTogKHJhLCBkZWMpIGluICcKLS0gICAgICAgICAgICAgICdkZWdcbiAgICBbKCAxLiwg IDMuKSwgKCAyLiwgIDQuKV0+LCBhX2luPTMuMCBwaXgsICcKLS0gICAgICAgICAgICAgICdhX291 dD01LjAgcGl4LCBiX291dD0zLjAgcGl4LCB0aGV0YT0xNS4wIGRlZyk+JykKLS0gICAgYV9zdHIg PSAoJ0FwZXJ0dXJlOiBTa3lFbGxpcHRpY2FsQW5udWx1c1xucG9zaXRpb25zOiA8U2t5Q29vcmQg JwotLSAgICAgICAgICAgICAnKElDUlMpOiAocmEsIGRlYykgaW4gZGVnXG4gICAgWyggMS4sICAz LiksICggMi4sICA0LildPlxuJwotLSAgICAgICAgICAgICAnYV9pbjogMy4wIHBpeFxuYV9vdXQ6 IDUuMCBwaXhcbmJfb3V0OiAzLjAgcGl4XG4nCi0tICAgICAgICAgICAgICd0aGV0YTogMTUuMCBk ZWcnKQotKyAgICBpZiBOVU1QWV9MVF8xXzE0OgotKyAgICAgICAgYV9yZXByID0gKCc8U2t5RWxs aXB0aWNhbEFubnVsdXMoPFNreUNvb3JkIChJQ1JTKTogKHJhLCBkZWMpIGluICcKLSsgICAgICAg ICAgICAgICAgICAnZGVnXG4gICAgWyggMS4sICAzLiksICggMi4sICA0LildPiwgYV9pbj0zLjAg cGl4LCAnCi0rICAgICAgICAgICAgICAgICAgJ2Ffb3V0PTUuMCBwaXgsIGJfb3V0PTMuMCBwaXgs IHRoZXRhPTE1LjAgZGVnKT4nKQotKyAgICAgICAgYV9zdHIgPSAoJ0FwZXJ0dXJlOiBTa3lFbGxp cHRpY2FsQW5udWx1c1xucG9zaXRpb25zOiA8U2t5Q29vcmQgJwotKyAgICAgICAgICAgICAgICAg JyhJQ1JTKTogKHJhLCBkZWMpIGluIGRlZ1xuICAgIFsoIDEuLCAgMy4pLCAoIDIuLCAgNC4pXT5c bicKLSsgICAgICAgICAgICAgICAgICdhX2luOiAzLjAgcGl4XG5hX291dDogNS4wIHBpeFxuYl9v dXQ6IDMuMCBwaXhcbicKLSsgICAgICAgICAgICAgICAgICd0aGV0YTogMTUuMCBkZWcnKQotKyAg ICBlbHNlOgotKyAgICAgICAgYV9yZXByID0gKCc8U2t5RWxsaXB0aWNhbEFubnVsdXMoPFNreUNv b3JkIChJQ1JTKTogKHJhLCBkZWMpIGluICcKLSsgICAgICAgICAgICAgICAgICAnZGVnXG4gICAg WygxLiwgMy4pLCAoMi4sIDQuKV0+LCBhX2luPTMuMCBwaXgsICcKLSsgICAgICAgICAgICAgICAg ICAnYV9vdXQ9NS4wIHBpeCwgYl9vdXQ9My4wIHBpeCwgdGhldGE9MTUuMCBkZWcpPicpCi0rICAg ICAgICBhX3N0ciA9ICgnQXBlcnR1cmU6IFNreUVsbGlwdGljYWxBbm51bHVzXG5wb3NpdGlvbnM6 IDxTa3lDb29yZCAnCi0rICAgICAgICAgICAgICAgICAnKElDUlMpOiAocmEsIGRlYykgaW4gZGVn XG4gICAgWygxLiwgMy4pLCAoMi4sIDQuKV0+XG4nCi0rICAgICAgICAgICAgICAgICAnYV9pbjog My4wIHBpeFxuYV9vdXQ6IDUuMCBwaXhcbmJfb3V0OiAzLjAgcGl4XG4nCi0rICAgICAgICAgICAg ICAgICAndGhldGE6IDE1LjAgZGVnJykKLSsKLSAgICAgYXNzZXJ0IHJlcHIoYXBlcikgPT0gYV9y ZXByCi0gICAgIGFzc2VydCBzdHIoYXBlcikgPT0gYV9zdHIKLSAKLSAgICAgYXBlciA9IFNreVJl Y3Rhbmd1bGFyQXBlcnR1cmUocywgdz0zKnUucGl4LCBoPTUqdS5waXgsIHRoZXRhPTE1KnUuZGVn KQotLSAgICBhX3JlcHIgPSAoJzxTa3lSZWN0YW5ndWxhckFwZXJ0dXJlKDxTa3lDb29yZCAoSUNS Uyk6IChyYSwgZGVjKSBpbiAnCi0tICAgICAgICAgICAgICAnZGVnXG4gICAgWyggMS4sICAzLiks ICggMi4sICA0LildPiwgdz0zLjAgcGl4LCBoPTUuMCBwaXgnCi0tICAgICAgICAgICAgICAnLCB0 aGV0YT0xNS4wIGRlZyk+JykKLS0gICAgYV9zdHIgPSAoJ0FwZXJ0dXJlOiBTa3lSZWN0YW5ndWxh ckFwZXJ0dXJlXG5wb3NpdGlvbnM6IDxTa3lDb29yZCAnCi0tICAgICAgICAgICAgICcoSUNSUyk6 IChyYSwgZGVjKSBpbiBkZWdcbiAgICBbKCAxLiwgIDMuKSwgKCAyLiwgIDQuKV0+XG4nCi0tICAg ICAgICAgICAgICd3OiAzLjAgcGl4XG5oOiA1LjAgcGl4XG50aGV0YTogMTUuMCBkZWcnKQotKyAg ICBpZiBOVU1QWV9MVF8xXzE0OgotKyAgICAgICAgYV9yZXByID0gKCc8U2t5UmVjdGFuZ3VsYXJB cGVydHVyZSg8U2t5Q29vcmQgKElDUlMpOiAocmEsIGRlYykgaW4gJwotKyAgICAgICAgICAgICAg ICAgICdkZWdcbiAgICBbKCAxLiwgIDMuKSwgKCAyLiwgIDQuKV0+LCB3PTMuMCBwaXgsIGg9NS4w IHBpeCcKLSsgICAgICAgICAgICAgICAgICAnLCB0aGV0YT0xNS4wIGRlZyk+JykKLSsgICAgICAg IGFfc3RyID0gKCdBcGVydHVyZTogU2t5UmVjdGFuZ3VsYXJBcGVydHVyZVxucG9zaXRpb25zOiA8 U2t5Q29vcmQgJwotKyAgICAgICAgICAgICAgICAgJyhJQ1JTKTogKHJhLCBkZWMpIGluIGRlZ1xu ICAgIFsoIDEuLCAgMy4pLCAoIDIuLCAgNC4pXT5cbicKLSsgICAgICAgICAgICAgICAgICd3OiAz LjAgcGl4XG5oOiA1LjAgcGl4XG50aGV0YTogMTUuMCBkZWcnKQotKyAgICBlbHNlOgotKyAgICAg ICAgYV9yZXByID0gKCc8U2t5UmVjdGFuZ3VsYXJBcGVydHVyZSg8U2t5Q29vcmQgKElDUlMpOiAo cmEsIGRlYykgaW4gJwotKyAgICAgICAgICAgICAgICAgICdkZWdcbiAgICBbKDEuLCAzLiksICgy LiwgNC4pXT4sIHc9My4wIHBpeCwgaD01LjAgcGl4JwotKyAgICAgICAgICAgICAgICAgICcsIHRo ZXRhPTE1LjAgZGVnKT4nKQotKyAgICAgICAgYV9zdHIgPSAoJ0FwZXJ0dXJlOiBTa3lSZWN0YW5n dWxhckFwZXJ0dXJlXG5wb3NpdGlvbnM6IDxTa3lDb29yZCAnCi0rICAgICAgICAgICAgICAgICAn KElDUlMpOiAocmEsIGRlYykgaW4gZGVnXG4gICAgWygxLiwgMy4pLCAoMi4sIDQuKV0+XG4nCi0r ICAgICAgICAgICAgICAgICAndzogMy4wIHBpeFxuaDogNS4wIHBpeFxudGhldGE6IDE1LjAgZGVn JykKLSsKLSAgICAgYXNzZXJ0IHJlcHIoYXBlcikgPT0gYV9yZXByCi0gICAgIGFzc2VydCBzdHIo YXBlcikgPT0gYV9zdHIKLSAKLSAgICAgYXBlciA9IFNreVJlY3Rhbmd1bGFyQW5udWx1cyhzLCB3 X2luPTMqdS5waXgsIHdfb3V0PTMuNCp1LnBpeCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBoX291dD01KnUucGl4LCB0aGV0YT0xNSp1LmRlZykKLS0gICAgYV9yZXByID0gKCc8 U2t5UmVjdGFuZ3VsYXJBbm51bHVzKDxTa3lDb29yZCAoSUNSUyk6IChyYSwgZGVjKSBpbiBkZWcn Ci0tICAgICAgICAgICAgICAnXG4gICAgWyggMS4sICAzLiksICggMi4sICA0LildPiwgd19pbj0z LjAgcGl4LCAnCi0tICAgICAgICAgICAgICAnd19vdXQ9My40IHBpeCwgaF9vdXQ9NS4wIHBpeCwg dGhldGE9MTUuMCBkZWcpPicpCi0tICAgIGFfc3RyID0gKCdBcGVydHVyZTogU2t5UmVjdGFuZ3Vs YXJBbm51bHVzXG5wb3NpdGlvbnM6IDxTa3lDb29yZCAnCi0tICAgICAgICAgICAgICcoSUNSUyk6 IChyYSwgZGVjKSBpbiBkZWdcbiAgICBbKCAxLiwgIDMuKSwgKCAyLiwgIDQuKV0+XG4nCi0tICAg ICAgICAgICAgICd3X2luOiAzLjAgcGl4XG53X291dDogMy40IHBpeFxuaF9vdXQ6IDUuMCBwaXhc bicKLS0gICAgICAgICAgICAgJ3RoZXRhOiAxNS4wIGRlZycpCi0rICAgIGlmIE5VTVBZX0xUXzFf MTQ6Ci0rICAgICAgICBhX3JlcHIgPSAoJzxTa3lSZWN0YW5ndWxhckFubnVsdXMoPFNreUNvb3Jk IChJQ1JTKTogKHJhLCBkZWMpIGluIGRlZycKLSsgICAgICAgICAgICAgICAgICAnXG4gICAgWygg MS4sICAzLiksICggMi4sICA0LildPiwgd19pbj0zLjAgcGl4LCAnCi0rICAgICAgICAgICAgICAg ICAgJ3dfb3V0PTMuNCBwaXgsIGhfb3V0PTUuMCBwaXgsIHRoZXRhPTE1LjAgZGVnKT4nKQotKyAg ICAgICAgYV9zdHIgPSAoJ0FwZXJ0dXJlOiBTa3lSZWN0YW5ndWxhckFubnVsdXNcbnBvc2l0aW9u czogPFNreUNvb3JkICcKLSsgICAgICAgICAgICAgICAgICcoSUNSUyk6IChyYSwgZGVjKSBpbiBk ZWdcbiAgICBbKCAxLiwgIDMuKSwgKCAyLiwgIDQuKV0+XG4nCi0rICAgICAgICAgICAgICAgICAn d19pbjogMy4wIHBpeFxud19vdXQ6IDMuNCBwaXhcbmhfb3V0OiA1LjAgcGl4XG4nCi0rICAgICAg ICAgICAgICAgICAndGhldGE6IDE1LjAgZGVnJykKLSsgICAgZWxzZToKLSsgICAgICAgIGFfcmVw ciA9ICgnPFNreVJlY3Rhbmd1bGFyQW5udWx1cyg8U2t5Q29vcmQgKElDUlMpOiAocmEsIGRlYykg aW4gZGVnJwotKyAgICAgICAgICAgICAgICAgICdcbiAgICBbKDEuLCAzLiksICgyLiwgNC4pXT4s IHdfaW49My4wIHBpeCwgJwotKyAgICAgICAgICAgICAgICAgICd3X291dD0zLjQgcGl4LCBoX291 dD01LjAgcGl4LCB0aGV0YT0xNS4wIGRlZyk+JykKLSsgICAgICAgIGFfc3RyID0gKCdBcGVydHVy ZTogU2t5UmVjdGFuZ3VsYXJBbm51bHVzXG5wb3NpdGlvbnM6IDxTa3lDb29yZCAnCi0rICAgICAg ICAgICAgICAgICAnKElDUlMpOiAocmEsIGRlYykgaW4gZGVnXG4gICAgWygxLiwgMy4pLCAoMi4s IDQuKV0+XG4nCi0rICAgICAgICAgICAgICAgICAnd19pbjogMy4wIHBpeFxud19vdXQ6IDMuNCBw aXhcbmhfb3V0OiA1LjAgcGl4XG4nCi0rICAgICAgICAgICAgICAgICAndGhldGE6IDE1LjAgZGVn JykKLSsKLSAgICAgYXNzZXJ0IHJlcHIoYXBlcikgPT0gYV9yZXByCi0gICAgIGFzc2VydCBzdHIo YXBlcikgPT0gYV9zdHIKLSAKLWRpZmYgLU5hdXIgcGhvdHV0aWxzLTAuNC9waG90dXRpbHMvYXBl cnR1cmUvdGVzdHMvdGVzdF9hcGVydHVyZV9waG90b21ldHJ5LnB5Lm9yaWcgcGhvdHV0aWxzLTAu NC5maXhlZC9waG90dXRpbHMvYXBlcnR1cmUvdGVzdHMvdGVzdF9hcGVydHVyZV9waG90b21ldHJ5 LnB5Lm9yaWcKLS0tLSBwaG90dXRpbHMtMC40L3Bob3R1dGlscy9hcGVydHVyZS90ZXN0cy90ZXN0 X2FwZXJ0dXJlX3Bob3RvbWV0cnkucHkub3JpZwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAw MCArMDEwMAotKysrIHBob3R1dGlscy0wLjQuZml4ZWQvcGhvdHV0aWxzL2FwZXJ0dXJlL3Rlc3Rz L3Rlc3RfYXBlcnR1cmVfcGhvdG9tZXRyeS5weS5vcmlnCTIwMTctMTAtMzAgMTU6Mzg6MTguMDAw MDAwMDAwICswMTAwCi1AQCAtMCwwICsxLDgzMCBAQAotKyMgTGljZW5zZWQgdW5kZXIgYSAzLWNs YXVzZSBCU0Qgc3R5bGUgbGljZW5zZSAtIHNlZSBMSUNFTlNFLnJzdAotKyIiIgotK1RoZSB0ZXN0 cyBpbiB0aGlzIGZpbGUgdGVzdCB0aGUgYWNjdXJhY3kgb2YgdGhlIHBob3RvbWV0cmljIHJlc3Vs dHMuCi0rSGVyZSB3ZSB0ZXN0IGRpcmVjdGx5IHdpdGggYXBlcnR1cmUgb2JqZWN0cyBzaW5jZSB3 ZSBhcmUgY2hlY2tpbmcgdGhlCi0rYWxnb3JpdGhtcyBpbiBhcGVydHVyZV9waG90b21ldHJ5LCBu b3QgaW4gdGhlIHdyYXBwZXJzLgotKyIiIgotKwotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgKGFi c29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uLAotKyAgICAgICAgICAgICAg ICAgICAgICAgIHVuaWNvZGVfbGl0ZXJhbHMpCi0rCi0raW1wb3J0IHB5dGVzdAotK2ltcG9ydCBu dW1weSBhcyBucAotK2Zyb20gbnVtcHkudGVzdGluZyBpbXBvcnQgKGFzc2VydF9hbGxjbG9zZSwg YXNzZXJ0X2FycmF5X2VxdWFsLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9h cnJheV9sZXNzKQotKwotK2Zyb20gYXN0cm9weS5jb29yZGluYXRlcyBpbXBvcnQgU2t5Q29vcmQK LStmcm9tIGFzdHJvcHkuaW8gaW1wb3J0IGZpdHMKLStmcm9tIGFzdHJvcHkubmRkYXRhIGltcG9y dCBORERhdGEKLStmcm9tIGFzdHJvcHkudGFibGUgaW1wb3J0IFRhYmxlCi0rZnJvbSBhc3Ryb3B5 LnRlc3RzLmhlbHBlciBpbXBvcnQgcmVtb3RlX2RhdGEKLStpbXBvcnQgYXN0cm9weS51bml0cyBh cyB1Ci0rZnJvbSBhc3Ryb3B5Lndjcy51dGlscyBpbXBvcnQgcGl4ZWxfdG9fc2t5Y29vcmQKLSsK LStmcm9tIC4uY29yZSBpbXBvcnQgYXBlcnR1cmVfcGhvdG9tZXRyeQotK2Zyb20gLi5jaXJjbGUg aW1wb3J0IChDaXJjdWxhckFwZXJ0dXJlLCBDaXJjdWxhckFubnVsdXMsIFNreUNpcmN1bGFyQXBl cnR1cmUsCi0rICAgICAgICAgICAgICAgICAgICAgIFNreUNpcmN1bGFyQW5udWx1cykKLStmcm9t IC4uZWxsaXBzZSBpbXBvcnQgKEVsbGlwdGljYWxBcGVydHVyZSwgRWxsaXB0aWNhbEFubnVsdXMs Ci0rICAgICAgICAgICAgICAgICAgICAgICBTa3lFbGxpcHRpY2FsQXBlcnR1cmUsIFNreUVsbGlw dGljYWxBbm51bHVzKQotK2Zyb20gLi5yZWN0YW5nbGUgaW1wb3J0IChSZWN0YW5ndWxhckFwZXJ0 dXJlLCBSZWN0YW5ndWxhckFubnVsdXMsCi0rICAgICAgICAgICAgICAgICAgICAgICAgIFNreVJl Y3Rhbmd1bGFyQXBlcnR1cmUsIFNreVJlY3Rhbmd1bGFyQW5udWx1cykKLStmcm9tIC4uLmRhdGFz ZXRzIGltcG9ydCAoZ2V0X3BhdGgsIG1ha2VfNGdhdXNzaWFuc19pbWFnZSwgbWFrZV93Y3MsCi0r ICAgICAgICAgICAgICAgICAgICAgICAgIG1ha2VfaW1hZ2VoZHUpCi0rCi0rdHJ5OgotKyAgICBp bXBvcnQgbWF0cGxvdGxpYiAgICAjIG5vcWEKLSsgICAgSEFTX01BVFBMT1RMSUIgPSBUcnVlCi0r ZXhjZXB0IEltcG9ydEVycm9yOgotKyAgICBIQVNfTUFUUExPVExJQiA9IEZhbHNlCi0rCi0rCi0r QVBFUlRVUkVfQ0wgPSBbQ2lyY3VsYXJBcGVydHVyZSwKLSsgICAgICAgICAgICAgICBDaXJjdWxh ckFubnVsdXMsCi0rICAgICAgICAgICAgICAgRWxsaXB0aWNhbEFwZXJ0dXJlLAotKyAgICAgICAg ICAgICAgIEVsbGlwdGljYWxBbm51bHVzLAotKyAgICAgICAgICAgICAgIFJlY3Rhbmd1bGFyQXBl cnR1cmUsCi0rICAgICAgICAgICAgICAgUmVjdGFuZ3VsYXJBbm51bHVzXQotKwotKwotK1RFU1Rf QVBFUlRVUkVTID0gbGlzdCh6aXAoQVBFUlRVUkVfQ0wsICgoMy4sKSwgKDMuLCA1LiksCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgzLiwgNS4sIDEuKSwgKDMuLCA1 LiwgNC4sIDEuKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDUs IDgsIG5wLnBpIC8gNCksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICg4LCAxMiwgOCwgbnAucGkgLyA4KSkpKQotKwotKwotK0BweXRlc3QubWFyay5wYXJhbWV0cml6 ZSgoJ2FwZXJ0dXJlX2NsYXNzJywgJ3BhcmFtcycpLCBURVNUX0FQRVJUVVJFUykKLStkZWYgdGVz dF9vdXRzaWRlX2FycmF5KGFwZXJ0dXJlX2NsYXNzLCBwYXJhbXMpOgotKyAgICBkYXRhID0gbnAu b25lcygoMTAsIDEwKSwgZHR5cGU9bnAuZmxvYXQpCi0rICAgIGFwZXJ0dXJlID0gYXBlcnR1cmVf Y2xhc3MoKC02MCwgNjApLCAqcGFyYW1zKQotKyAgICBmbHV4dGFibGUgPSBhcGVydHVyZV9waG90 b21ldHJ5KGRhdGEsIGFwZXJ0dXJlKQotKyAgICAjIGFwZXJ0dXJlIGlzIGZ1bGx5IG91dHNpZGUg YXJyYXk6Ci0rICAgIGFzc2VydCBucC5pc25hbihmbHV4dGFibGVbJ2FwZXJ0dXJlX3N1bSddKQot KwotKwotK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgoJ2FwZXJ0dXJlX2NsYXNzJywgJ3BhcmFt cycpLCBURVNUX0FQRVJUVVJFUykKLStkZWYgdGVzdF9pbnNpZGVfYXJyYXlfc2ltcGxlKGFwZXJ0 dXJlX2NsYXNzLCBwYXJhbXMpOgotKyAgICBkYXRhID0gbnAub25lcygoNDAsIDQwKSwgZHR5cGU9 bnAuZmxvYXQpCi0rICAgIGFwZXJ0dXJlID0gYXBlcnR1cmVfY2xhc3MoKDIwLiwgMjAuKSwgKnBh cmFtcykKLSsgICAgdGFibGUxID0gYXBlcnR1cmVfcGhvdG9tZXRyeShkYXRhLCBhcGVydHVyZSwg bWV0aG9kPSdjZW50ZXInLCBzdWJwaXhlbHM9MTApCi0rICAgIHRhYmxlMiA9IGFwZXJ0dXJlX3Bo b3RvbWV0cnkoZGF0YSwgYXBlcnR1cmUsIG1ldGhvZD0nc3VicGl4ZWwnLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN1YnBpeGVscz0xMCkKLSsgICAgdGFibGUzID0gYXBlcnR1 cmVfcGhvdG9tZXRyeShkYXRhLCBhcGVydHVyZSwgbWV0aG9kPSdleGFjdCcsIHN1YnBpeGVscz0x MCkKLSsgICAgdHJ1ZV9mbHV4ID0gYXBlcnR1cmUuYXJlYSgpCi0rCi0rICAgIGlmIG5vdCBpc2lu c3RhbmNlKGFwZXJ0dXJlLCAoUmVjdGFuZ3VsYXJBcGVydHVyZSwgUmVjdGFuZ3VsYXJBbm51bHVz KSk6Ci0rICAgICAgICBhc3NlcnRfYWxsY2xvc2UodGFibGUzWydhcGVydHVyZV9zdW0nXSwgdHJ1 ZV9mbHV4KQotKyAgICAgICAgYXNzZXJ0X2FsbGNsb3NlKHRhYmxlMlsnYXBlcnR1cmVfc3VtJ10s IHRhYmxlM1snYXBlcnR1cmVfc3VtJ10sCi0rICAgICAgICAgICAgICAgICAgICAgICAgYXRvbD0w LjEpCi0rICAgIGFzc2VydCB0YWJsZTFbJ2FwZXJ0dXJlX3N1bSddIDwgdGFibGUzWydhcGVydHVy ZV9zdW0nXQotKwotKwotK0BweXRlc3QubWFyay5za2lwaWYoJ25vdCBIQVNfTUFUUExPVExJQicp Ci0rQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCgnYXBlcnR1cmVfY2xhc3MnLCAncGFyYW1zJyks IFRFU1RfQVBFUlRVUkVTKQotK2RlZiB0ZXN0X2FwZXJ0dXJlX3Bsb3RzKGFwZXJ0dXJlX2NsYXNz LCBwYXJhbXMpOgotKyAgICAjIFRoaXMgdGVzdCBzaG91bGQgcnVuIHdpdGhvdXQgYW55IGVycm9y cywgYW5kIHRoZXJlIGlzIG5vIHJldHVybgotKyAgICAjIHZhbHVlLgotKyAgICAjIFRPRE86IGNo ZWNrIHRoZSBjb250ZW50IG9mIHRoZSBwbG90Ci0rICAgIGFwZXJ0dXJlID0gYXBlcnR1cmVfY2xh c3MoKDIwLiwgMjAuKSwgKnBhcmFtcykKLSsgICAgYXBlcnR1cmUucGxvdCgpCi0rCi0rCi0rZGVm IHRlc3RfYXBlcnR1cmVfcGl4ZWxfcG9zaXRpb25zKCk6Ci0rICAgIHBvczEgPSAoMTAsIDIwKQot KyAgICBwb3MyID0gdS5RdWFudGl0eSgoMTAsIDIwKSwgdW5pdD11LnBpeGVsKQotKyAgICBwb3Mz ID0gKCgxMCwgMjAsIDMwKSwgKDEwLCAyMCwgMzApKQotKyAgICBwb3MzX3BhaXJzID0gKCgxMCwg MTApLCAoMjAsIDIwKSwgKDMwLCAzMCkpCi0rCi0rICAgIHIgPSAzCi0rICAgIGFwMSA9IENpcmN1 bGFyQXBlcnR1cmUocG9zMSwgcikKLSsgICAgYXAyID0gQ2lyY3VsYXJBcGVydHVyZShwb3MyLCBy KQotKyAgICBhcDMgPSBDaXJjdWxhckFwZXJ0dXJlKHBvczMsIHIpCi0rCi0rICAgIGFzc2VydF9h bGxjbG9zZShucC5hdGxlYXN0XzJkKHBvczEpLCBhcDEucG9zaXRpb25zKQotKyAgICBhc3NlcnRf YWxsY2xvc2UobnAuYXRsZWFzdF8yZChwb3MyLnZhbHVlKSwgYXAyLnBvc2l0aW9ucykKLSsgICAg YXNzZXJ0X2FsbGNsb3NlKHBvczNfcGFpcnMsIGFwMy5wb3NpdGlvbnMpCi0rCi0rCi0rY2xhc3Mg QmFzZVRlc3RBcGVydHVyZVBob3RvbWV0cnkob2JqZWN0KToKLSsKLSsgICAgZGVmIHRlc3Rfc2Nh bGFyX2Vycm9yKHNlbGYpOgotKyAgICAgICAgIyBTY2FsYXIgZXJyb3IKLSsgICAgICAgIGVycm9y ID0gMS4KLSsgICAgICAgIGlmIG5vdCBoYXNhdHRyKHNlbGYsICdtYXNrJyk6Ci0rICAgICAgICAg ICAgbWFzayA9IE5vbmUKLSsgICAgICAgICAgICB0cnVlX2Vycm9yID0gbnAuc3FydChzZWxmLmFy ZWEpCi0rICAgICAgICBlbHNlOgotKyAgICAgICAgICAgIG1hc2sgPSBzZWxmLm1hc2sKLSsgICAg ICAgICAgICAjIDEgbWFza2VkIHBpeGVsCi0rICAgICAgICAgICAgdHJ1ZV9lcnJvciA9IG5wLnNx cnQoc2VsZi5hcmVhIC0gMSkKLSsKLSsgICAgICAgIHRhYmxlMSA9IGFwZXJ0dXJlX3Bob3RvbWV0 cnkoc2VsZi5kYXRhLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LmFwZXJ0dXJlLCBtZXRob2Q9J2NlbnRlcicsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG1hc2s9bWFzaywgZXJyb3I9ZXJyb3IpCi0rICAgICAgICB0YWJsZTIgPSBhcGVy dHVyZV9waG90b21ldHJ5KHNlbGYuZGF0YSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5hcGVydHVyZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbWV0aG9kPSdzdWJwaXhlbCcsIHN1YnBpeGVscz0xMiwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbWFzaz1tYXNrLCBlcnJvcj1lcnJvcikKLSsgICAgICAgIHRh YmxlMyA9IGFwZXJ0dXJlX3Bob3RvbWV0cnkoc2VsZi5kYXRhLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLmFwZXJ0dXJlLCBtZXRob2Q9J2V4YWN0JywKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFzaz1tYXNrLCBlcnJvcj1lcnJvcikK LSsKLSsgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHNlbGYuYXBlcnR1cmUsIChSZWN0YW5ndWxh ckFwZXJ0dXJlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl Y3Rhbmd1bGFyQW5udWx1cykpOgotKyAgICAgICAgICAgIGFzc2VydF9hbGxjbG9zZSh0YWJsZTNb J2FwZXJ0dXJlX3N1bSddLCBzZWxmLnRydWVfZmx1eCkKLSsgICAgICAgICAgICBhc3NlcnRfYWxs Y2xvc2UodGFibGUyWydhcGVydHVyZV9zdW0nXSwgdGFibGUzWydhcGVydHVyZV9zdW0nXSwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXRvbD0wLjEpCi0rICAgICAgICBhc3NlcnQgbnAu YWxsKHRhYmxlMVsnYXBlcnR1cmVfc3VtJ10gPCB0YWJsZTNbJ2FwZXJ0dXJlX3N1bSddKQotKwot KyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uoc2VsZi5hcGVydHVyZSwgKFJlY3Rhbmd1bGFyQXBl cnR1cmUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVjdGFu Z3VsYXJBbm51bHVzKSk6Ci0rICAgICAgICAgICAgYXNzZXJ0X2FsbGNsb3NlKHRhYmxlM1snYXBl cnR1cmVfc3VtX2VyciddLCB0cnVlX2Vycm9yKQotKyAgICAgICAgICAgIGFzc2VydF9hbGxjbG9z ZSh0YWJsZTJbJ2FwZXJ0dXJlX3N1bSddLCB0YWJsZTNbJ2FwZXJ0dXJlX3N1bSddLAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICBhdG9sPTAuMSkKLSsgICAgICAgIGFzc2VydCBucC5hbGwo dGFibGUxWydhcGVydHVyZV9zdW1fZXJyJ10gPCB0YWJsZTNbJ2FwZXJ0dXJlX3N1bV9lcnInXSkK LSsKLSsgICAgZGVmIHRlc3RfYXJyYXlfZXJyb3Ioc2VsZik6Ci0rICAgICAgICAjIEFycmF5IGVy cm9yCi0rICAgICAgICBlcnJvciA9IG5wLm9uZXMoc2VsZi5kYXRhLnNoYXBlLCBkdHlwZT1ucC5m bG9hdCkKLSsgICAgICAgIGlmIG5vdCBoYXNhdHRyKHNlbGYsICdtYXNrJyk6Ci0rICAgICAgICAg ICAgbWFzayA9IE5vbmUKLSsgICAgICAgICAgICB0cnVlX2Vycm9yID0gbnAuc3FydChzZWxmLmFy ZWEpCi0rICAgICAgICBlbHNlOgotKyAgICAgICAgICAgIG1hc2sgPSBzZWxmLm1hc2sKLSsgICAg ICAgICAgICAjIDEgbWFza2VkIHBpeGVsCi0rICAgICAgICAgICAgdHJ1ZV9lcnJvciA9IG5wLnNx cnQoc2VsZi5hcmVhIC0gMSkKLSsKLSsgICAgICAgIHRhYmxlMSA9IGFwZXJ0dXJlX3Bob3RvbWV0 cnkoc2VsZi5kYXRhLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LmFwZXJ0dXJlLCBtZXRob2Q9J2NlbnRlcicsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG1hc2s9bWFzaywgZXJyb3I9ZXJyb3IpCi0rICAgICAgICB0YWJsZTIgPSBhcGVy dHVyZV9waG90b21ldHJ5KHNlbGYuZGF0YSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5hcGVydHVyZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbWV0aG9kPSdzdWJwaXhlbCcsIHN1YnBpeGVscz0xMiwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbWFzaz1tYXNrLCBlcnJvcj1lcnJvcikKLSsgICAgICAgIHRh YmxlMyA9IGFwZXJ0dXJlX3Bob3RvbWV0cnkoc2VsZi5kYXRhLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLmFwZXJ0dXJlLCBtZXRob2Q9J2V4YWN0JywKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFzaz1tYXNrLCBlcnJvcj1lcnJvcikK LSsKLSsgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHNlbGYuYXBlcnR1cmUsIChSZWN0YW5ndWxh ckFwZXJ0dXJlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl Y3Rhbmd1bGFyQW5udWx1cykpOgotKyAgICAgICAgICAgIGFzc2VydF9hbGxjbG9zZSh0YWJsZTNb J2FwZXJ0dXJlX3N1bSddLCBzZWxmLnRydWVfZmx1eCkKLSsgICAgICAgICAgICBhc3NlcnRfYWxs Y2xvc2UodGFibGUyWydhcGVydHVyZV9zdW0nXSwgdGFibGUzWydhcGVydHVyZV9zdW0nXSwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXRvbD0wLjEpCi0rICAgICAgICBhc3NlcnQgbnAu YWxsKHRhYmxlMVsnYXBlcnR1cmVfc3VtJ10gPCB0YWJsZTNbJ2FwZXJ0dXJlX3N1bSddKQotKwot KyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uoc2VsZi5hcGVydHVyZSwgKFJlY3Rhbmd1bGFyQXBl cnR1cmUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVjdGFu Z3VsYXJBbm51bHVzKSk6Ci0rICAgICAgICAgICAgYXNzZXJ0X2FsbGNsb3NlKHRhYmxlM1snYXBl cnR1cmVfc3VtX2VyciddLCB0cnVlX2Vycm9yKQotKyAgICAgICAgICAgIGFzc2VydF9hbGxjbG9z ZSh0YWJsZTJbJ2FwZXJ0dXJlX3N1bV9lcnInXSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdGFibGUzWydhcGVydHVyZV9zdW1fZXJyJ10sIGF0b2w9MC4xKQotKyAgICAgICAgYXNzZXJ0 IG5wLmFsbCh0YWJsZTFbJ2FwZXJ0dXJlX3N1bV9lcnInXSA8IHRhYmxlM1snYXBlcnR1cmVfc3Vt X2VyciddKQotKwotKwotK2NsYXNzIFRlc3RDaXJjdWxhcihCYXNlVGVzdEFwZXJ0dXJlUGhvdG9t ZXRyeSk6Ci0rCi0rICAgIGRlZiBzZXR1cF9jbGFzcyhzZWxmKToKLSsgICAgICAgIHNlbGYuZGF0 YSA9IG5wLm9uZXMoKDQwLCA0MCksIGR0eXBlPW5wLmZsb2F0KQotKyAgICAgICAgcG9zaXRpb24g PSAoMjAuLCAyMC4pCi0rICAgICAgICByID0gMTAuCi0rICAgICAgICBzZWxmLmFwZXJ0dXJlID0g Q2lyY3VsYXJBcGVydHVyZShwb3NpdGlvbiwgcikKLSsgICAgICAgIHNlbGYuYXJlYSA9IG5wLnBp ICogciAqIHIKLSsgICAgICAgIHNlbGYudHJ1ZV9mbHV4ID0gc2VsZi5hcmVhCi0rCi0rCi0rY2xh c3MgVGVzdENpcmN1bGFyQXJyYXkoQmFzZVRlc3RBcGVydHVyZVBob3RvbWV0cnkpOgotKwotKyAg ICBkZWYgc2V0dXBfY2xhc3Moc2VsZik6Ci0rICAgICAgICBzZWxmLmRhdGEgPSBucC5vbmVzKCg0 MCwgNDApLCBkdHlwZT1ucC5mbG9hdCkKLSsgICAgICAgIHBvc2l0aW9uID0gKCgyMC4sIDIwLiks ICgyNS4sIDI1LikpCi0rICAgICAgICByID0gMTAuCi0rICAgICAgICBzZWxmLmFwZXJ0dXJlID0g Q2lyY3VsYXJBcGVydHVyZShwb3NpdGlvbiwgcikKLSsgICAgICAgIHNlbGYuYXJlYSA9IG5wLnBp ICogciAqIHIKLSsgICAgICAgIHNlbGYuYXJlYSA9IG5wLmFycmF5KChzZWxmLmFyZWEsICkgKiAy KQotKyAgICAgICAgc2VsZi50cnVlX2ZsdXggPSBzZWxmLmFyZWEKLSsKLSsKLStjbGFzcyBUZXN0 Q2lyY3VsYXJBbm51bHVzKEJhc2VUZXN0QXBlcnR1cmVQaG90b21ldHJ5KToKLSsKLSsgICAgZGVm IHNldHVwX2NsYXNzKHNlbGYpOgotKyAgICAgICAgc2VsZi5kYXRhID0gbnAub25lcygoNDAsIDQw KSwgZHR5cGU9bnAuZmxvYXQpCi0rICAgICAgICBwb3NpdGlvbiA9ICgyMC4sIDIwLikKLSsgICAg ICAgIHJfaW4gPSA4LgotKyAgICAgICAgcl9vdXQgPSAxMC4KLSsgICAgICAgIHNlbGYuYXBlcnR1 cmUgPSBDaXJjdWxhckFubnVsdXMocG9zaXRpb24sIHJfaW4sIHJfb3V0KQotKyAgICAgICAgc2Vs Zi5hcmVhID0gbnAucGkgKiAocl9vdXQgKiByX291dCAtIHJfaW4gKiByX2luKQotKyAgICAgICAg c2VsZi50cnVlX2ZsdXggPSBzZWxmLmFyZWEKLSsKLSsKLStjbGFzcyBUZXN0Q2lyY3VsYXJBbm51 bHVzQXJyYXkoQmFzZVRlc3RBcGVydHVyZVBob3RvbWV0cnkpOgotKwotKyAgICBkZWYgc2V0dXBf Y2xhc3Moc2VsZik6Ci0rICAgICAgICBzZWxmLmRhdGEgPSBucC5vbmVzKCg0MCwgNDApLCBkdHlw ZT1ucC5mbG9hdCkKLSsgICAgICAgIHBvc2l0aW9uID0gKCgyMC4sIDIwLiksICgyNS4sIDI1Likp Ci0rICAgICAgICByX2luID0gOC4KLSsgICAgICAgIHJfb3V0ID0gMTAuCi0rICAgICAgICBzZWxm LmFwZXJ0dXJlID0gQ2lyY3VsYXJBbm51bHVzKHBvc2l0aW9uLCByX2luLCByX291dCkKLSsgICAg ICAgIHNlbGYuYXJlYSA9IG5wLnBpICogKHJfb3V0ICogcl9vdXQgLSByX2luICogcl9pbikKLSsg ICAgICAgIHNlbGYuYXJlYSA9IG5wLmFycmF5KChzZWxmLmFyZWEsICkgKiAyKQotKyAgICAgICAg c2VsZi50cnVlX2ZsdXggPSBzZWxmLmFyZWEKLSsKLSsKLStjbGFzcyBUZXN0RWxsaXB0aWNhbChC YXNlVGVzdEFwZXJ0dXJlUGhvdG9tZXRyeSk6Ci0rCi0rICAgIGRlZiBzZXR1cF9jbGFzcyhzZWxm KToKLSsgICAgICAgIHNlbGYuZGF0YSA9IG5wLm9uZXMoKDQwLCA0MCksIGR0eXBlPW5wLmZsb2F0 KQotKyAgICAgICAgcG9zaXRpb24gPSAoMjAuLCAyMC4pCi0rICAgICAgICBhID0gMTAuCi0rICAg ICAgICBiID0gNS4KLSsgICAgICAgIHRoZXRhID0gLW5wLnBpIC8gNC4KLSsgICAgICAgIHNlbGYu YXBlcnR1cmUgPSBFbGxpcHRpY2FsQXBlcnR1cmUocG9zaXRpb24sIGEsIGIsIHRoZXRhKQotKyAg ICAgICAgc2VsZi5hcmVhID0gbnAucGkgKiBhICogYgotKyAgICAgICAgc2VsZi50cnVlX2ZsdXgg PSBzZWxmLmFyZWEKLSsKLSsKLStjbGFzcyBUZXN0RWxsaXB0aWNhbEFubnVsdXMoQmFzZVRlc3RB cGVydHVyZVBob3RvbWV0cnkpOgotKwotKyAgICBkZWYgc2V0dXBfY2xhc3Moc2VsZik6Ci0rICAg ICAgICBzZWxmLmRhdGEgPSBucC5vbmVzKCg0MCwgNDApLCBkdHlwZT1ucC5mbG9hdCkKLSsgICAg ICAgIHBvc2l0aW9uID0gKDIwLiwgMjAuKQotKyAgICAgICAgYV9pbiA9IDUuCi0rICAgICAgICBh X291dCA9IDguCi0rICAgICAgICBiX291dCA9IDUuCi0rICAgICAgICB0aGV0YSA9IC1ucC5waSAv IDQuCi0rICAgICAgICBzZWxmLmFwZXJ0dXJlID0gRWxsaXB0aWNhbEFubnVsdXMocG9zaXRpb24s IGFfaW4sIGFfb3V0LCBiX291dCwgdGhldGEpCi0rICAgICAgICBzZWxmLmFyZWEgPSAobnAucGkg KiAoYV9vdXQgKiBiX291dCkgLQotKyAgICAgICAgICAgICAgICAgICAgIG5wLnBpICogKGFfaW4g KiBiX291dCAqIGFfaW4gLyBhX291dCkpCi0rICAgICAgICBzZWxmLnRydWVfZmx1eCA9IHNlbGYu YXJlYQotKwotKwotK2NsYXNzIFRlc3RSZWN0YW5ndWxhckFwZXJ0dXJlKEJhc2VUZXN0QXBlcnR1 cmVQaG90b21ldHJ5KToKLSsKLSsgICAgZGVmIHNldHVwX2NsYXNzKHNlbGYpOgotKyAgICAgICAg c2VsZi5kYXRhID0gbnAub25lcygoNDAsIDQwKSwgZHR5cGU9bnAuZmxvYXQpCi0rICAgICAgICBw b3NpdGlvbiA9ICgyMC4sIDIwLikKLSsgICAgICAgIGggPSA1LgotKyAgICAgICAgdyA9IDguCi0r ICAgICAgICB0aGV0YSA9IG5wLnBpIC8gNC4KLSsgICAgICAgIHNlbGYuYXBlcnR1cmUgPSBSZWN0 YW5ndWxhckFwZXJ0dXJlKHBvc2l0aW9uLCB3LCBoLCB0aGV0YSkKLSsgICAgICAgIHNlbGYuYXJl YSA9IGggKiB3Ci0rICAgICAgICBzZWxmLnRydWVfZmx1eCA9IHNlbGYuYXJlYQotKwotKwotK2Ns YXNzIFRlc3RSZWN0YW5ndWxhckFubnVsdXMoQmFzZVRlc3RBcGVydHVyZVBob3RvbWV0cnkpOgot KwotKyAgICBkZWYgc2V0dXBfY2xhc3Moc2VsZik6Ci0rICAgICAgICBzZWxmLmRhdGEgPSBucC5v bmVzKCg0MCwgNDApLCBkdHlwZT1ucC5mbG9hdCkKLSsgICAgICAgIHBvc2l0aW9uID0gKDIwLiwg MjAuKQotKyAgICAgICAgaF9vdXQgPSA4LgotKyAgICAgICAgd19pbiA9IDguCi0rICAgICAgICB3 X291dCA9IDEyLgotKyAgICAgICAgaF9pbiA9IHdfaW4gKiBoX291dCAvIHdfb3V0Ci0rICAgICAg ICB0aGV0YSA9IG5wLnBpIC8gOC4KLSsgICAgICAgIHNlbGYuYXBlcnR1cmUgPSBSZWN0YW5ndWxh ckFubnVsdXMocG9zaXRpb24sIHdfaW4sIHdfb3V0LCBoX291dCwgdGhldGEpCi0rICAgICAgICBz ZWxmLmFyZWEgPSBoX291dCAqIHdfb3V0IC0gaF9pbiAqIHdfaW4KLSsgICAgICAgIHNlbGYudHJ1 ZV9mbHV4ID0gc2VsZi5hcmVhCi0rCi0rCi0rY2xhc3MgVGVzdE1hc2tlZFNraXBDaXJjdWxhcihC YXNlVGVzdEFwZXJ0dXJlUGhvdG9tZXRyeSk6Ci0rCi0rICAgIGRlZiBzZXR1cF9jbGFzcyhzZWxm KToKLSsgICAgICAgIHNlbGYuZGF0YSA9IG5wLm9uZXMoKDQwLCA0MCksIGR0eXBlPW5wLmZsb2F0 KQotKyAgICAgICAgc2VsZi5tYXNrID0gbnAuemVyb3MoKDQwLCA0MCksIGR0eXBlPWJvb2wpCi0r ICAgICAgICBzZWxmLm1hc2tbMjAsIDIwXSA9IFRydWUKLSsgICAgICAgIHBvc2l0aW9uID0gKDIw LiwgMjAuKQotKyAgICAgICAgciA9IDEwLgotKyAgICAgICAgc2VsZi5hcGVydHVyZSA9IENpcmN1 bGFyQXBlcnR1cmUocG9zaXRpb24sIHIpCi0rICAgICAgICBzZWxmLmFyZWEgPSBucC5waSAqIHIg KiByCi0rICAgICAgICBzZWxmLnRydWVfZmx1eCA9IHNlbGYuYXJlYSAtIDEKLSsKLSsKLStjbGFz cyBCYXNlVGVzdERpZmZlcmVudERhdGEob2JqZWN0KToKLSsKLSsgICAgZGVmIHRlc3RfYmFzaWNf Y2lyY3VsYXJfYXBlcnR1cmVfcGhvdG9tZXRyeShzZWxmKToKLSsgICAgICAgIGFwZXJ0dXJlID0g Q2lyY3VsYXJBcGVydHVyZShzZWxmLnBvc2l0aW9uLCBzZWxmLnJhZGl1cykKLSsgICAgICAgIHRh YmxlID0gYXBlcnR1cmVfcGhvdG9tZXRyeShzZWxmLmRhdGEsIGFwZXJ0dXJlLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZD0nZXhhY3QnLCB1bml0PSdhZHUnKQot KwotKyAgICAgICAgYXNzZXJ0X2FsbGNsb3NlKHRhYmxlWydhcGVydHVyZV9zdW0nXS52YWx1ZSwg c2VsZi50cnVlX2ZsdXgpCi0rICAgICAgICBhc3NlcnQgdGFibGVbJ2FwZXJ0dXJlX3N1bSddLnVu aXQsIHNlbGYuZmx1eHVuaXQKLSsKLSsgICAgICAgIGFzc2VydCBucC5hbGwodGFibGVbJ3hjZW50 ZXInXS52YWx1ZSA9PQotKyAgICAgICAgICAgICAgICAgICAgICBucC50cmFuc3Bvc2Uoc2VsZi5w b3NpdGlvbilbMF0pCi0rICAgICAgICBhc3NlcnQgbnAuYWxsKHRhYmxlWyd5Y2VudGVyJ10udmFs dWUgPT0KLSsgICAgICAgICAgICAgICAgICAgICAgbnAudHJhbnNwb3NlKHNlbGYucG9zaXRpb24p WzFdKQotKwotKwotK2NsYXNzIFRlc3RJbnB1dFByaW1hcnlIRFUoQmFzZVRlc3REaWZmZXJlbnRE YXRhKToKLSsKLSsgICAgZGVmIHNldHVwX2NsYXNzKHNlbGYpOgotKyAgICAgICAgZGF0YSA9IG5w Lm9uZXMoKDQwLCA0MCksIGR0eXBlPW5wLmZsb2F0KQotKyAgICAgICAgc2VsZi5kYXRhID0gZml0 cy5JbWFnZUhEVShkYXRhPWRhdGEpCi0rICAgICAgICBzZWxmLmRhdGEuaGVhZGVyWydCVU5JVCdd ID0gJ2FkdScKLSsgICAgICAgIHNlbGYucmFkaXVzID0gMwotKyAgICAgICAgc2VsZi5wb3NpdGlv biA9ICgyMCwgMjApCi0rICAgICAgICBzZWxmLnRydWVfZmx1eCA9IG5wLnBpICogc2VsZi5yYWRp dXMgKiBzZWxmLnJhZGl1cwotKyAgICAgICAgc2VsZi5mbHV4dW5pdCA9IHUuYWR1Ci0rCi0rCi0r Y2xhc3MgVGVzdElucHV0SERVTGlzdChCYXNlVGVzdERpZmZlcmVudERhdGEpOgotKwotKyAgICBk ZWYgc2V0dXBfY2xhc3Moc2VsZik6Ci0rICAgICAgICBkYXRhMCA9IG5wLm9uZXMoKDQwLCA0MCks IGR0eXBlPW5wLmZsb2F0KQotKyAgICAgICAgZGF0YTEgPSBucC5lbXB0eSgoNDAsIDQwKSwgZHR5 cGU9bnAuZmxvYXQpCi0rICAgICAgICBkYXRhMS5maWxsKDIpCi0rICAgICAgICBzZWxmLmRhdGEg PSBmaXRzLkhEVUxpc3QoW2ZpdHMuSW1hZ2VIRFUoZGF0YT1kYXRhMCksCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGZpdHMuSW1hZ2VIRFUoZGF0YT1kYXRhMSldKQotKyAgICAg ICAgc2VsZi5yYWRpdXMgPSAzCi0rICAgICAgICBzZWxmLnBvc2l0aW9uID0gKDIwLCAyMCkKLSsg ICAgICAgICMgSXQgc2hvdWxkIHN0b3AgYXQgdGhlIGZpcnN0IGV4dGVuc2lvbgotKyAgICAgICAg c2VsZi50cnVlX2ZsdXggPSBucC5waSAqIHNlbGYucmFkaXVzICogc2VsZi5yYWRpdXMKLSsKLSsK LStjbGFzcyBUZXN0SW5wdXRIRFVEaWZmZXJlbnRCVU5JVChCYXNlVGVzdERpZmZlcmVudERhdGEp OgotKwotKyAgICBkZWYgc2V0dXBfY2xhc3Moc2VsZik6Ci0rICAgICAgICBkYXRhID0gbnAub25l cygoNDAsIDQwKSwgZHR5cGU9bnAuZmxvYXQpCi0rICAgICAgICBzZWxmLmRhdGEgPSBmaXRzLklt YWdlSERVKGRhdGE9ZGF0YSkKLSsgICAgICAgIHNlbGYuZGF0YS5oZWFkZXJbJ0JVTklUJ10gPSAn SnknCi0rICAgICAgICBzZWxmLnJhZGl1cyA9IDMKLSsgICAgICAgIHNlbGYucG9zaXRpb24gPSAo MjAsIDIwKQotKyAgICAgICAgc2VsZi50cnVlX2ZsdXggPSBucC5waSAqIHNlbGYucmFkaXVzICog c2VsZi5yYWRpdXMKLSsgICAgICAgIHNlbGYuZmx1eHVuaXQgPSB1LmFkdQotKwotKwotK2NsYXNz IFRlc3RJbnB1dE5ERGF0YShCYXNlVGVzdERpZmZlcmVudERhdGEpOgotKwotKyAgICBkZWYgc2V0 dXBfY2xhc3Moc2VsZik6Ci0rICAgICAgICBkYXRhID0gbnAub25lcygoNDAsIDQwKSwgZHR5cGU9 bnAuZmxvYXQpCi0rICAgICAgICBzZWxmLmRhdGEgPSBORERhdGEoZGF0YSwgdW5pdD11LmFkdSkK LSsgICAgICAgIHNlbGYucmFkaXVzID0gMwotKyAgICAgICAgc2VsZi5wb3NpdGlvbiA9IFsoMjAs IDIwKSwgKDMwLCAzMCldCi0rICAgICAgICBzZWxmLnRydWVfZmx1eCA9IG5wLnBpICogc2VsZi5y YWRpdXMgKiBzZWxmLnJhZGl1cwotKyAgICAgICAgc2VsZi5mbHV4dW5pdCA9IHUuYWR1Ci0rCi0r Ci0rQHJlbW90ZV9kYXRhCi0rZGVmIHRlc3Rfd2NzX2Jhc2VkX3Bob3RvbWV0cnlfdG9fY2F0YWxv Z3VlKCk6Ci0rICAgIHBhdGhjYXQgPSBnZXRfcGF0aCgnc3BpdHplcl9leGFtcGxlX2NhdGFsb2cu eG1sJywgbG9jYXRpb249J3JlbW90ZScpCi0rICAgIHBhdGhoZHUgPSBnZXRfcGF0aCgnc3BpdHpl cl9leGFtcGxlX2ltYWdlLmZpdHMnLCBsb2NhdGlvbj0ncmVtb3RlJykKLSsgICAgaGR1ID0gZml0 cy5vcGVuKHBhdGhoZHUpCi0rICAgIHNjYWxlID0gaGR1WzBdLmhlYWRlclsnUElYU0NBTDEnXQot KwotKyAgICBjYXRhbG9nID0gVGFibGUucmVhZChwYXRoY2F0KQotKwotKyAgICBwb3Nfc2t5Y29v cmQgPSBTa3lDb29yZChjYXRhbG9nWydsJ10sIGNhdGFsb2dbJ2InXSwgZnJhbWU9J2dhbGFjdGlj JykKLSsKLSsgICAgcGhvdG9tZXRyeV9za3ljb29yZCA9IGFwZXJ0dXJlX3Bob3RvbWV0cnkoCi0r ICAgICAgICBoZHUsIFNreUNpcmN1bGFyQXBlcnR1cmUocG9zX3NreWNvb3JkLCA0ICogdS5hcmNz ZWMpKQotKwotKyAgICBwaG90b21ldHJ5X3NreWNvb3JkX3BpeCA9IGFwZXJ0dXJlX3Bob3RvbWV0 cnkoCi0rICAgICAgICBoZHUsIFNreUNpcmN1bGFyQXBlcnR1cmUocG9zX3NreWNvb3JkLCA0LiAv IHNjYWxlICogdS5waXhlbCkpCi0rCi0rICAgIGFzc2VydF9hbGxjbG9zZShwaG90b21ldHJ5X3Nr eWNvb3JkWydhcGVydHVyZV9zdW0nXSwKLSsgICAgICAgICAgICAgICAgICAgIHBob3RvbWV0cnlf c2t5Y29vcmRfcGl4WydhcGVydHVyZV9zdW0nXSkKLSsKLSsgICAgIyBQaG90b21ldHJpYyB1bml0 IGNvbnZlcnNpb24gaXMgbmVlZGVkIHRvIG1hdGNoIHRoZSBjYXRhbG9ndWUKLSsgICAgZmFjdG9y ID0gKDEuMiAqIHUuYXJjc2VjKSAqKiAyIC8gdS5waXhlbAotKyAgICBjb252ZXJ0ZWRfYXBlcnR1 cmVfc3VtID0gKHBob3RvbWV0cnlfc2t5Y29vcmRbJ2FwZXJ0dXJlX3N1bSddICoKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBmYWN0b3IpLnRvKHUubUp5IC8gdS5waXhlbCkKLSsKLSsg ICAgZmx1eGVzX2NhdGFsb2cgPSBjYXRhbG9nWydmNF81J10uZmlsbGVkKCkKLSsKLSsgICAgIyBU aGVyZSBzaG91bGRuJ3QgYmUgbGFyZ2Ugb3V0bGllcnMsIGJ1dCBzb21lIGRpZmZlcmVuY2VzIGlz IE9LLCBhcwotKyAgICAjIGZsdXhlc19jYXRhbG9nIGlzIGJhc2VkIG9uIFBTRiBwaG90b21ldHJ5 LCBldGMuCi0rICAgIGFzc2VydF9hbGxjbG9zZShmbHV4ZXNfY2F0YWxvZywgY29udmVydGVkX2Fw ZXJ0dXJlX3N1bS52YWx1ZSwgcnRvbD0xZTApCi0rCi0rICAgIGFzc2VydChucC5tZWFuKG5wLmZh YnMoKChmbHV4ZXNfY2F0YWxvZyAtIGNvbnZlcnRlZF9hcGVydHVyZV9zdW0udmFsdWUpIC8KLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZmx1eGVzX2NhdGFsb2cpKSkgPCAwLjEpCi0rCi0r Ci0rZGVmIHRlc3Rfd2NzX2Jhc2VkX3Bob3RvbWV0cnkoKToKLSsgICAgZGF0YSA9IG1ha2VfNGdh dXNzaWFuc19pbWFnZSgpCi0rICAgIHdjcyA9IG1ha2Vfd2NzKGRhdGEuc2hhcGUpCi0rICAgIGhk dSA9IG1ha2VfaW1hZ2VoZHUoZGF0YSwgd2NzPXdjcykKLSsKLSsgICAgIyBoYXJkIHdpcmVkIHBv c2l0aW9ucyBpbiBtYWtlXzRnYXVzc2lhbl9pbWFnZQotKyAgICBwb3Nfb3JpZ19waXhlbCA9IHUu UXVhbnRpdHkoKFsxNjAuLCAyNS4sIDE1MC4sIDkwLl0sCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgWzcwLiwgNDAuLCAyNS4sIDYwLl0pLCB1bml0PXUucGl4ZWwpCi0rCi0rICAg IHBvc19za3ljb29yZCA9IHBpeGVsX3RvX3NreWNvb3JkKHBvc19vcmlnX3BpeGVsWzBdLCBwb3Nf b3JpZ19waXhlbFsxXSwgd2NzKQotKwotKyAgICBwb3Nfc2t5Y29vcmRfcyA9IHBvc19za3ljb29y ZFsyXQotKwotKyAgICBwaG90b21ldHJ5X3NreWNvb3JkX2NpcmMgPSBhcGVydHVyZV9waG90b21l dHJ5KAotKyAgICAgICAgaGR1LCBTa3lDaXJjdWxhckFwZXJ0dXJlKHBvc19za3ljb29yZCwgMyAq IHUuYXJjc2VjKSkKLSsgICAgcGhvdG9tZXRyeV9za3ljb29yZF9jaXJjXzIgPSBhcGVydHVyZV9w aG90b21ldHJ5KAotKyAgICAgICAgaGR1LCBTa3lDaXJjdWxhckFwZXJ0dXJlKHBvc19za3ljb29y ZCwgMiAqIHUuYXJjc2VjKSkKLSsgICAgcGhvdG9tZXRyeV9za3ljb29yZF9jaXJjX3MgPSBhcGVy dHVyZV9waG90b21ldHJ5KAotKyAgICAgICAgaGR1LCBTa3lDaXJjdWxhckFwZXJ0dXJlKHBvc19z a3ljb29yZF9zLCAzICogdS5hcmNzZWMpKQotKwotKyAgICBhc3NlcnRfYWxsY2xvc2UocGhvdG9t ZXRyeV9za3ljb29yZF9jaXJjWydhcGVydHVyZV9zdW0nXVsyXSwKLSsgICAgICAgICAgICAgICAg ICAgIHBob3RvbWV0cnlfc2t5Y29vcmRfY2lyY19zWydhcGVydHVyZV9zdW0nXSkKLSsKLSsgICAg cGhvdG9tZXRyeV9za3ljb29yZF9jaXJjX2FubiA9IGFwZXJ0dXJlX3Bob3RvbWV0cnkoCi0rICAg ICAgICBoZHUsIFNreUNpcmN1bGFyQW5udWx1cyhwb3Nfc2t5Y29vcmQsIDIgKiB1LmFyY3NlYywg MyAqIHUuYXJjc2VjKSkKLSsgICAgcGhvdG9tZXRyeV9za3ljb29yZF9jaXJjX2Fubl9zID0gYXBl cnR1cmVfcGhvdG9tZXRyeSgKLSsgICAgICAgIGhkdSwgU2t5Q2lyY3VsYXJBbm51bHVzKHBvc19z a3ljb29yZF9zLCAyICogdS5hcmNzZWMsIDMgKiB1LmFyY3NlYykpCi0rCi0rICAgIGFzc2VydF9h bGxjbG9zZShwaG90b21ldHJ5X3NreWNvb3JkX2NpcmNfYW5uWydhcGVydHVyZV9zdW0nXVsyXSwK LSsgICAgICAgICAgICAgICAgICAgIHBob3RvbWV0cnlfc2t5Y29vcmRfY2lyY19hbm5fc1snYXBl cnR1cmVfc3VtJ10pCi0rCi0rICAgIGFzc2VydF9hbGxjbG9zZShwaG90b21ldHJ5X3NreWNvb3Jk X2NpcmNfYW5uWydhcGVydHVyZV9zdW0nXSwKLSsgICAgICAgICAgICAgICAgICAgIHBob3RvbWV0 cnlfc2t5Y29vcmRfY2lyY1snYXBlcnR1cmVfc3VtJ10gLQotKyAgICAgICAgICAgICAgICAgICAg cGhvdG9tZXRyeV9za3ljb29yZF9jaXJjXzJbJ2FwZXJ0dXJlX3N1bSddKQotKwotKyAgICBwaG90 b21ldHJ5X3NreWNvb3JkX2VsbCA9IGFwZXJ0dXJlX3Bob3RvbWV0cnkoCi0rICAgICAgICBoZHUs IFNreUVsbGlwdGljYWxBcGVydHVyZShwb3Nfc2t5Y29vcmQsIDMgKiB1LmFyY3NlYywKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuMDAwMSAqIHUuYXJjc2VjLCA0NSAqIHUu YXJjc2VjKSkKLSsgICAgcGhvdG9tZXRyeV9za3ljb29yZF9lbGxfMiA9IGFwZXJ0dXJlX3Bob3Rv bWV0cnkoCi0rICAgICAgICBoZHUsIFNreUVsbGlwdGljYWxBcGVydHVyZShwb3Nfc2t5Y29vcmQs IDIgKiB1LmFyY3NlYywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuMDAw MSAqIHUuYXJjc2VjLCA0NSAqIHUuYXJjc2VjKSkKLSsgICAgcGhvdG9tZXRyeV9za3ljb29yZF9l bGxfcyA9IGFwZXJ0dXJlX3Bob3RvbWV0cnkoCi0rICAgICAgICBoZHUsIFNreUVsbGlwdGljYWxB cGVydHVyZShwb3Nfc2t5Y29vcmRfcywgMyAqIHUuYXJjc2VjLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMy4wMDAxICogdS5hcmNzZWMsIDQ1ICogdS5hcmNzZWMpKQotKyAg ICBwaG90b21ldHJ5X3NreWNvb3JkX2VsbF9hbm4gPSBhcGVydHVyZV9waG90b21ldHJ5KAotKyAg ICAgICAgaGR1LCBTa3lFbGxpcHRpY2FsQW5udWx1cyhwb3Nfc2t5Y29vcmQsIDIgKiB1LmFyY3Nl YywgMyAqIHUuYXJjc2VjLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjAw MDEgKiB1LmFyY3NlYywgNDUgKiB1LmFyY3NlYykpCi0rICAgIHBob3RvbWV0cnlfc2t5Y29vcmRf ZWxsX2Fubl9zID0gYXBlcnR1cmVfcGhvdG9tZXRyeSgKLSsgICAgICAgIGhkdSwgU2t5RWxsaXB0 aWNhbEFubnVsdXMocG9zX3NreWNvb3JkX3MsIDIgKiB1LmFyY3NlYywgMyAqIHUuYXJjc2VjLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjAwMDEgKiB1LmFyY3NlYywgNDUg KiB1LmFyY3NlYykpCi0rCi0rICAgIGFzc2VydF9hbGxjbG9zZShwaG90b21ldHJ5X3NreWNvb3Jk X2VsbFsnYXBlcnR1cmVfc3VtJ11bMl0sCi0rICAgICAgICAgICAgICAgICAgICBwaG90b21ldHJ5 X3NreWNvb3JkX2VsbF9zWydhcGVydHVyZV9zdW0nXSkKLSsKLSsgICAgYXNzZXJ0X2FsbGNsb3Nl KHBob3RvbWV0cnlfc2t5Y29vcmRfZWxsX2FublsnYXBlcnR1cmVfc3VtJ11bMl0sCi0rICAgICAg ICAgICAgICAgICAgICBwaG90b21ldHJ5X3NreWNvb3JkX2VsbF9hbm5fc1snYXBlcnR1cmVfc3Vt J10pCi0rCi0rICAgIGFzc2VydF9hbGxjbG9zZShwaG90b21ldHJ5X3NreWNvb3JkX2VsbFsnYXBl cnR1cmVfc3VtJ10sCi0rICAgICAgICAgICAgICAgICAgICBwaG90b21ldHJ5X3NreWNvb3JkX2Np cmNbJ2FwZXJ0dXJlX3N1bSddLCBydG9sPTVlLTMpCi0rCi0rICAgIGFzc2VydF9hbGxjbG9zZShw aG90b21ldHJ5X3NreWNvb3JkX2VsbF9hbm5bJ2FwZXJ0dXJlX3N1bSddLAotKyAgICAgICAgICAg ICAgICAgICAgcGhvdG9tZXRyeV9za3ljb29yZF9lbGxbJ2FwZXJ0dXJlX3N1bSddIC0KLSsgICAg ICAgICAgICAgICAgICAgIHBob3RvbWV0cnlfc2t5Y29vcmRfZWxsXzJbJ2FwZXJ0dXJlX3N1bSdd LCBydG9sPTFlLTQpCi0rCi0rICAgIHBob3RvbWV0cnlfc2t5Y29vcmRfcmVjID0gYXBlcnR1cmVf cGhvdG9tZXRyeSgKLSsgICAgICAgIGhkdSwgU2t5UmVjdGFuZ3VsYXJBcGVydHVyZShwb3Nfc2t5 Y29vcmQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNiAqIHUuYXJjc2Vj LCA2ICogdS5hcmNzZWMsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCAq IHUuYXJjc2VjKSwKLSsgICAgICAgIG1ldGhvZD0nc3VicGl4ZWwnLCBzdWJwaXhlbHM9MjApCi0r ICAgIHBob3RvbWV0cnlfc2t5Y29vcmRfcmVjXzQgPSBhcGVydHVyZV9waG90b21ldHJ5KAotKyAg ICAgICAgaGR1LCBTa3lSZWN0YW5ndWxhckFwZXJ0dXJlKHBvc19za3ljb29yZCwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0ICogdS5hcmNzZWMsIDQgKiB1LmFyY3NlYywK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwICogdS5hcmNzZWMpLAotKyAg ICAgICAgbWV0aG9kPSdzdWJwaXhlbCcsIHN1YnBpeGVscz0yMCkKLSsgICAgcGhvdG9tZXRyeV9z a3ljb29yZF9yZWNfcyA9IGFwZXJ0dXJlX3Bob3RvbWV0cnkoCi0rICAgICAgICBoZHUsIFNreVJl Y3Rhbmd1bGFyQXBlcnR1cmUocG9zX3NreWNvb3JkX3MsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgNiAqIHUuYXJjc2VjLCA2ICogdS5hcmNzZWMsCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMCAqIHUuYXJjc2VjKSwKLSsgICAgICAgIG1ldGhvZD0n c3VicGl4ZWwnLCBzdWJwaXhlbHM9MjApCi0rICAgIHBob3RvbWV0cnlfc2t5Y29vcmRfcmVjX2Fu biA9IGFwZXJ0dXJlX3Bob3RvbWV0cnkoCi0rICAgICAgICBoZHUsIFNreVJlY3Rhbmd1bGFyQW5u dWx1cyhwb3Nfc2t5Y29vcmQsIDQgKiB1LmFyY3NlYywgNiAqIHUuYXJjc2VjLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgNiAqIHUuYXJjc2VjLCAwICogdS5hcmNzZWMpLAot KyAgICAgICAgbWV0aG9kPSdzdWJwaXhlbCcsIHN1YnBpeGVscz0yMCkKLSsgICAgcGhvdG9tZXRy eV9za3ljb29yZF9yZWNfYW5uX3MgPSBhcGVydHVyZV9waG90b21ldHJ5KAotKyAgICAgICAgaGR1 LCBTa3lSZWN0YW5ndWxhckFubnVsdXMocG9zX3NreWNvb3JkX3MsIDQgKiB1LmFyY3NlYywgNiAq IHUuYXJjc2VjLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNiAqIHUuYXJj c2VjLCAwICogdS5hcmNzZWMpLAotKyAgICAgICAgbWV0aG9kPSdzdWJwaXhlbCcsIHN1YnBpeGVs cz0yMCkKLSsKLSsgICAgYXNzZXJ0X2FsbGNsb3NlKHBob3RvbWV0cnlfc2t5Y29vcmRfcmVjWydh cGVydHVyZV9zdW0nXVsyXSwKLSsgICAgICAgICAgICAgICAgICAgIHBob3RvbWV0cnlfc2t5Y29v cmRfcmVjX3NbJ2FwZXJ0dXJlX3N1bSddKQotKwotKyAgICBhc3NlcnQgbnAuYWxsKHBob3RvbWV0 cnlfc2t5Y29vcmRfcmVjWydhcGVydHVyZV9zdW0nXSA+Ci0rICAgICAgICAgICAgICAgICAgcGhv dG9tZXRyeV9za3ljb29yZF9jaXJjWydhcGVydHVyZV9zdW0nXSkKLSsKLSsgICAgYXNzZXJ0X2Fs bGNsb3NlKHBob3RvbWV0cnlfc2t5Y29vcmRfcmVjX2FublsnYXBlcnR1cmVfc3VtJ11bMl0sCi0r ICAgICAgICAgICAgICAgICAgICBwaG90b21ldHJ5X3NreWNvb3JkX3JlY19hbm5fc1snYXBlcnR1 cmVfc3VtJ10pCi0rCi0rICAgIGFzc2VydF9hbGxjbG9zZShwaG90b21ldHJ5X3NreWNvb3JkX3Jl Y19hbm5bJ2FwZXJ0dXJlX3N1bSddLAotKyAgICAgICAgICAgICAgICAgICAgcGhvdG9tZXRyeV9z a3ljb29yZF9yZWNbJ2FwZXJ0dXJlX3N1bSddIC0KLSsgICAgICAgICAgICAgICAgICAgIHBob3Rv bWV0cnlfc2t5Y29vcmRfcmVjXzRbJ2FwZXJ0dXJlX3N1bSddLCBydG9sPTFlLTQpCi0rCi0rCi0r ZGVmIHRlc3RfYmFzaWNfY2lyY3VsYXJfYXBlcnR1cmVfcGhvdG9tZXRyeV91bml0KCk6Ci0rICAg IGRhdGExID0gbnAub25lcygoNDAsIDQwKSwgZHR5cGU9bnAuZmxvYXQpCi0rICAgIGRhdGEyID0g dS5RdWFudGl0eShkYXRhMSwgdW5pdD11LmFkdSkKLSsKLSsgICAgcmFkaXVzID0gMwotKyAgICBw b3NpdGlvbiA9ICgyMCwgMjApCi0rICAgIHRydWVfZmx1eCA9IG5wLnBpICogcmFkaXVzICogcmFk aXVzCi0rICAgIHVuaXQgPSB1LmFkdQotKwotKyAgICB0YWJsZTEgPSBhcGVydHVyZV9waG90b21l dHJ5KGRhdGExLCBDaXJjdWxhckFwZXJ0dXJlKHBvc2l0aW9uLCByYWRpdXMpLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVuaXQ9dW5pdCkKLSsgICAgdGFibGUyID0gYXBlcnR1 cmVfcGhvdG9tZXRyeShkYXRhMiwgQ2lyY3VsYXJBcGVydHVyZShwb3NpdGlvbiwgcmFkaXVzKSwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bml0PXVuaXQpCi0rCi0rICAgIGFz c2VydF9hbGxjbG9zZSh0YWJsZTFbJ2FwZXJ0dXJlX3N1bSddLnZhbHVlLCB0cnVlX2ZsdXgpCi0r ICAgIGFzc2VydF9hbGxjbG9zZSh0YWJsZTJbJ2FwZXJ0dXJlX3N1bSddLnZhbHVlLCB0cnVlX2Zs dXgpCi0rICAgIGFzc2VydCB0YWJsZTFbJ2FwZXJ0dXJlX3N1bSddLnVuaXQgPT0gdW5pdAotKyAg ICBhc3NlcnQgdGFibGUyWydhcGVydHVyZV9zdW0nXS51bml0ID09IGRhdGEyLnVuaXQgPT0gdW5p dAotKwotKwotK2RlZiB0ZXN0X2FwZXJ0dXJlX3Bob3RvbWV0cnlfd2l0aF9lcnJvcl91bml0cygp OgotKyAgICAiIiJUZXN0IGFwZXJ0dXJlX3Bob3RvbWV0cnkgd2hlbiBlcnJvciBoYXMgdW5pdHMg KHNlZSAjMTc2KS4iIiIKLSsKLSsgICAgZGF0YTEgPSBucC5vbmVzKCg0MCwgNDApLCBkdHlwZT1u cC5mbG9hdCkKLSsgICAgZGF0YTIgPSB1LlF1YW50aXR5KGRhdGExLCB1bml0PXUuYWR1KQotKyAg ICBlcnJvciA9IHUuUXVhbnRpdHkoZGF0YTEsIHVuaXQ9dS5hZHUpCi0rICAgIHJhZGl1cyA9IDMK LSsgICAgdHJ1ZV9mbHV4ID0gbnAucGkgKiByYWRpdXMgKiByYWRpdXMKLSsgICAgdW5pdCA9IHUu YWR1Ci0rICAgIHBvc2l0aW9uID0gKDIwLCAyMCkKLSsgICAgdGFibGUxID0gYXBlcnR1cmVfcGhv dG9tZXRyeShkYXRhMiwgQ2lyY3VsYXJBcGVydHVyZShwb3NpdGlvbiwgcmFkaXVzKSwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcj1lcnJvcikKLSsgICAgYXNzZXJ0X2Fs bGNsb3NlKHRhYmxlMVsnYXBlcnR1cmVfc3VtJ10udmFsdWUsIHRydWVfZmx1eCkKLSsgICAgYXNz ZXJ0X2FsbGNsb3NlKHRhYmxlMVsnYXBlcnR1cmVfc3VtX2VyciddLnZhbHVlLCBucC5zcXJ0KHRy dWVfZmx1eCkpCi0rICAgIGFzc2VydCB0YWJsZTFbJ2FwZXJ0dXJlX3N1bSddLnVuaXQgPT0gdW5p dAotKyAgICBhc3NlcnQgdGFibGUxWydhcGVydHVyZV9zdW1fZXJyJ10udW5pdCA9PSB1bml0Ci0r Ci0rCi0rZGVmIHRlc3RfYXBlcnR1cmVfcGhvdG9tZXRyeV9pbnB1dHNfd2l0aF9tYXNrKCk6Ci0r ICAgICIiIgotKyAgICBUZXN0IHRoYXQgYXBlcnR1cmVfcGhvdG9tZXRyeSBkb2VzIG5vdCBtb2Rp ZnkgdGhlIGlucHV0Ci0rICAgIGRhdGEgb3IgZXJyb3IgYXJyYXkgd2hlbiBhIG1hc2sgaXMgaW5w dXQuCi0rICAgICIiIgotKwotKyAgICBkYXRhID0gbnAub25lcygoNSwgNSkpCi0rICAgIGFwZXJ0 dXJlID0gQ2lyY3VsYXJBcGVydHVyZSgoMiwgMiksIDIuKQotKyAgICBtYXNrID0gbnAuemVyb3Nf bGlrZShkYXRhLCBkdHlwZT1ib29sKQotKyAgICBkYXRhWzIsIDJdID0gMTAwLiAgICMgYmFkIHBp eGVsCi0rICAgIG1hc2tbMiwgMl0gPSBUcnVlCi0rICAgIGVycm9yID0gbnAuc3FydChkYXRhKQot KyAgICBkYXRhX2luID0gZGF0YS5jb3B5KCkKLSsgICAgZXJyb3JfaW4gPSBlcnJvci5jb3B5KCkK LSsgICAgdDEgPSBhcGVydHVyZV9waG90b21ldHJ5KGRhdGEsIGFwZXJ0dXJlLCBlcnJvcj1lcnJv ciwgbWFzaz1tYXNrKQotKyAgICBhc3NlcnRfYXJyYXlfZXF1YWwoZGF0YSwgZGF0YV9pbikKLSsg ICAgYXNzZXJ0X2FycmF5X2VxdWFsKGVycm9yLCBlcnJvcl9pbikKLSsgICAgYXNzZXJ0X2FsbGNs b3NlKHQxWydhcGVydHVyZV9zdW0nXVswXSwgMTEuNTY2MzcwNjE0NCkKLSsgICAgdDIgPSBhcGVy dHVyZV9waG90b21ldHJ5KGRhdGEsIGFwZXJ0dXJlKQotKyAgICBhc3NlcnRfYWxsY2xvc2UodDJb J2FwZXJ0dXJlX3N1bSddWzBdLCAxMTEuNTY2MzcwNjE0KQotKwotKwotK1RFU1RfRUxMSVBTRV9F WEFDVF9BUEVSVFVSRVMgPSBbKDMuNDY5OTA2LCAzLjkyMzg2MTM5NCwgMy4pLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKDAuMzgzNDQxNTE4ODI1Nzc3OCwgMC4zODM0NDE1MTg4 MjU3Nzc4LCAwLjMpXQotKwotKwotK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgneCx5LHInLCBU RVNUX0VMTElQU0VfRVhBQ1RfQVBFUlRVUkVTKQotK2RlZiB0ZXN0X2VsbGlwc2VfZXhhY3RfZ3Jp ZCh4LCB5LCByKToKLSsgICAgIiIiCi0rICAgIFRlc3QgZWxsaXB0aWNhbCBleGFjdCBhcGVydHVy ZSBwaG90b21ldHJ5IG9uIGEgZ3JpZCBvZiBwaXhlbCBwb3NpdGlvbnMuCi0rCi0rICAgIFRoaXMg aXMgYSByZWdyZXNzaW9uIHRlc3QgZm9yIHRoZSBidWcgZGlzY292ZXJlZCBpbiB0aGlzIGlzc3Vl OgotKyAgICBodHRwczovL2dpdGh1Yi5jb20vYXN0cm9weS9waG90dXRpbHMvaXNzdWVzLzE5OAot KyAgICAiIiIKLSsKLSsgICAgZGF0YSA9IG5wLm9uZXMoKDEwLCAxMCkpCi0rCi0rICAgIGFwZXJ0 dXJlID0gRWxsaXB0aWNhbEFwZXJ0dXJlKCh4LCB5KSwgciwgciwgMC4pCi0rICAgIHQgPSBhcGVy dHVyZV9waG90b21ldHJ5KGRhdGEsIGFwZXJ0dXJlLCBtZXRob2Q9J2V4YWN0JykKLSsgICAgYWN0 dWFsID0gdFsnYXBlcnR1cmVfc3VtJ11bMF0gLyAobnAucGkgKiByICoqIDIpCi0rICAgIGFzc2Vy dF9hbGxjbG9zZShhY3R1YWwsIDEpCi0rCi0rCi0rQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCd2 YWx1ZScsIFtucC5uYW4sIG5wLmluZl0pCi0rZGVmIHRlc3RfbmFuX2luZl9tYXNrKHZhbHVlKToK LSsgICAgIiIiVGVzdCB0aGF0IG5hbnMgYW5kIGluZnMgYXJlIHByb3Blcmx5IG1hc2tlZCBbMjY3 XS4iIiIKLSsKLSsgICAgZGF0YSA9IG5wLm9uZXMoKDksIDkpKQotKyAgICBtYXNrID0gbnAuemVy b3NfbGlrZShkYXRhLCBkdHlwZT1ib29sKQotKyAgICBkYXRhWzQsIDRdID0gdmFsdWUKLSsgICAg bWFza1s0LCA0XSA9IFRydWUKLSsgICAgcmFkaXVzID0gMi4KLSsgICAgYXBlciA9IENpcmN1bGFy QXBlcnR1cmUoKDQsIDQpLCByYWRpdXMpCi0rICAgIHRibCA9IGFwZXJ0dXJlX3Bob3RvbWV0cnko ZGF0YSwgYXBlciwgbWFzaz1tYXNrKQotKyAgICBkZXNpcmVkID0gKG5wLnBpICogcmFkaXVzKioy KSAtIDEKLSsgICAgYXNzZXJ0X2FsbGNsb3NlKHRibFsnYXBlcnR1cmVfc3VtJ10sIGRlc2lyZWQp Ci0rCi0rCi0rZGVmIHRlc3RfYXBlcnR1cmVfcGFydGlhbF9vdmVybGFwKCk6Ci0rICAgIGRhdGEg PSBucC5vbmVzKCgyMCwgMjApKQotKyAgICBlcnJvciA9IG5wLm9uZXMoKDIwLCAyMCkpCi0rICAg IHh5cG9zID0gWygxMCwgMTApLCAoMCwgMCksICgwLCAxOSksICgxOSwgMCksICgxOSwgMTkpXQot KyAgICByID0gNS4KLSsgICAgYXBlciA9IENpcmN1bGFyQXBlcnR1cmUoeHlwb3MsIHI9cikKLSsg ICAgdGJsID0gYXBlcnR1cmVfcGhvdG9tZXRyeShkYXRhLCBhcGVyLCBlcnJvcj1lcnJvcikKLSsg ICAgYXNzZXJ0X2FsbGNsb3NlKHRibFsnYXBlcnR1cmVfc3VtJ11bMF0sIG5wLnBpICogciAqKiAy KQotKyAgICBhc3NlcnRfYXJyYXlfbGVzcyh0YmxbJ2FwZXJ0dXJlX3N1bSddWzE6XSwgbnAucGkg KiByICoqIDIpCi0rCi0rICAgIHVuaXQgPSB1Lk1KeSAvIHUuc3IKLSsgICAgdGJsID0gYXBlcnR1 cmVfcGhvdG9tZXRyeShkYXRhICogdW5pdCwgYXBlciwgZXJyb3I9ZXJyb3IgKiB1bml0KQotKyAg ICBhc3NlcnRfYWxsY2xvc2UodGJsWydhcGVydHVyZV9zdW0nXVswXS52YWx1ZSwgbnAucGkgKiBy ICoqIDIpCi0rICAgIGFzc2VydF9hcnJheV9sZXNzKHRibFsnYXBlcnR1cmVfc3VtJ11bMTpdLnZh bHVlLCBucC5waSAqIHIgKiogMikKLSsgICAgYXNzZXJ0X2FycmF5X2xlc3ModGJsWydhcGVydHVy ZV9zdW1fZXJyJ11bMTpdLnZhbHVlLCBucC5waSAqIHIgKiogMikKLSsgICAgYXNzZXJ0IHRibFsn YXBlcnR1cmVfc3VtJ10udW5pdCA9PSB1bml0Ci0rICAgIGFzc2VydCB0YmxbJ2FwZXJ0dXJlX3N1 bV9lcnInXS51bml0ID09IHVuaXQKLSsKLSsKLStkZWYgdGVzdF9waXhlbF9hcGVydHVyZV9yZXBy KCk6Ci0rICAgIGFwZXIgPSBDaXJjdWxhckFwZXJ0dXJlKCgxMCwgMjApLCByPTMuMCkKLSsgICAg YV9yZXByID0gJzxDaXJjdWxhckFwZXJ0dXJlKFtbMTAsIDIwXV0sIHI9My4wKT4nCi0rICAgIGFf c3RyID0gJ0FwZXJ0dXJlOiBDaXJjdWxhckFwZXJ0dXJlXG5wb3NpdGlvbnM6IFtbMTAsIDIwXV1c bnI6IDMuMCcKLSsgICAgYXNzZXJ0IHJlcHIoYXBlcikgPT0gYV9yZXByCi0rICAgIGFzc2VydCBz dHIoYXBlcikgPT0gYV9zdHIKLSsKLSsgICAgYXBlciA9IENpcmN1bGFyQW5udWx1cygoMTAsIDIw KSwgcl9pbj0zLjAsIHJfb3V0PTUuMCkKLSsgICAgYV9yZXByID0gJzxDaXJjdWxhckFubnVsdXMo W1sxMCwgMjBdXSwgcl9pbj0zLjAsIHJfb3V0PTUuMCk+JwotKyAgICBhX3N0ciA9ICgnQXBlcnR1 cmU6IENpcmN1bGFyQW5udWx1c1xucG9zaXRpb25zOiBbWzEwLCAyMF1dXG5yX2luOiAzLjBcbicK LSsgICAgICAgICAgICAgJ3Jfb3V0OiA1LjAnKQotKyAgICBhc3NlcnQgcmVwcihhcGVyKSA9PSBh X3JlcHIKLSsgICAgYXNzZXJ0IHN0cihhcGVyKSA9PSBhX3N0cgotKwotKyAgICBhcGVyID0gRWxs aXB0aWNhbEFwZXJ0dXJlKCgxMCwgMjApLCBhPTUuMCwgYj0zLjAsIHRoZXRhPTE1LjApCi0rICAg IGFfcmVwciA9ICc8RWxsaXB0aWNhbEFwZXJ0dXJlKFtbMTAsIDIwXV0sIGE9NS4wLCBiPTMuMCwg dGhldGE9MTUuMCk+JwotKyAgICBhX3N0ciA9ICgnQXBlcnR1cmU6IEVsbGlwdGljYWxBcGVydHVy ZVxucG9zaXRpb25zOiBbWzEwLCAyMF1dXG4nCi0rICAgICAgICAgICAgICdhOiA1LjBcbmI6IDMu MFxudGhldGE6IDE1LjAnKQotKyAgICBhc3NlcnQgcmVwcihhcGVyKSA9PSBhX3JlcHIKLSsgICAg YXNzZXJ0IHN0cihhcGVyKSA9PSBhX3N0cgotKwotKyAgICBhcGVyID0gRWxsaXB0aWNhbEFubnVs dXMoKDEwLCAyMCksIGFfaW49NC4wLCBhX291dD04LjAsIGJfb3V0PTQuMCwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHRoZXRhPTE1LjApCi0rICAgIGFfcmVwciA9ICgnPEVsbGlwdGlj YWxBbm51bHVzKFtbMTAsIDIwXV0sIGFfaW49NC4wLCBhX291dD04LjAsIGJfb3V0PScKLSsgICAg ICAgICAgICAgICc0LjAsIHRoZXRhPTE1LjApPicpCi0rICAgIGFfc3RyID0gKCdBcGVydHVyZTog RWxsaXB0aWNhbEFubnVsdXNcbnBvc2l0aW9uczogW1sxMCwgMjBdXVxuYV9pbjogJwotKyAgICAg ICAgICAgICAnNC4wXG5hX291dDogOC4wXG5iX291dDogNC4wXG50aGV0YTogMTUuMCcpCi0rICAg IGFzc2VydCByZXByKGFwZXIpID09IGFfcmVwcgotKyAgICBhc3NlcnQgc3RyKGFwZXIpID09IGFf c3RyCi0rCi0rICAgIGFwZXIgPSBSZWN0YW5ndWxhckFwZXJ0dXJlKCgxMCwgMjApLCB3PTUuMCwg aD0zLjAsIHRoZXRhPTE1LjApCi0rICAgIGFfcmVwciA9ICc8UmVjdGFuZ3VsYXJBcGVydHVyZShb WzEwLCAyMF1dLCB3PTUuMCwgaD0zLjAsIHRoZXRhPTE1LjApPicKLSsgICAgYV9zdHIgPSAoJ0Fw ZXJ0dXJlOiBSZWN0YW5ndWxhckFwZXJ0dXJlXG5wb3NpdGlvbnM6IFtbMTAsIDIwXV1cbicKLSsg ICAgICAgICAgICAgJ3c6IDUuMFxuaDogMy4wXG50aGV0YTogMTUuMCcpCi0rICAgIGFzc2VydCBy ZXByKGFwZXIpID09IGFfcmVwcgotKyAgICBhc3NlcnQgc3RyKGFwZXIpID09IGFfc3RyCi0rCi0r ICAgIGFwZXIgPSBSZWN0YW5ndWxhckFubnVsdXMoKDEwLCAyMCksIHdfaW49NC4wLCB3X291dD04 LjAsIGhfb3V0PTQuMCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGV0YT0xNS4w KQotKyAgICBhX3JlcHIgPSAoJzxSZWN0YW5ndWxhckFubnVsdXMoW1sxMCwgMjBdXSwgd19pbj00 LjAsIHdfb3V0PTguMCwgJwotKyAgICAgICAgICAgICAgJ2hfb3V0PTQuMCwgdGhldGE9MTUuMCk+ JykKLSsgICAgYV9zdHIgPSAoJ0FwZXJ0dXJlOiBSZWN0YW5ndWxhckFubnVsdXNcbnBvc2l0aW9u czogW1sxMCwgMjBdXVxuJwotKyAgICAgICAgICAgICAnd19pbjogNC4wXG53X291dDogOC4wXG5o X291dDogNC4wXG50aGV0YTogMTUuMCcpCi0rICAgIGFzc2VydCByZXByKGFwZXIpID09IGFfcmVw cgotKyAgICBhc3NlcnQgc3RyKGFwZXIpID09IGFfc3RyCi0rCi0rCi0rZGVmIHRlc3Rfc2t5X2Fw ZXJ0dXJlX3JlcHIoKToKLSsgICAgcyA9IFNreUNvb3JkKFsxLCAyXSwgWzMsIDRdLCB1bml0PSdk ZWcnKQotKwotKyAgICBhcGVyID0gU2t5Q2lyY3VsYXJBcGVydHVyZShzLCByPTMqdS5waXgpCi0r ICAgIGFfcmVwciA9ICgnPFNreUNpcmN1bGFyQXBlcnR1cmUoPFNreUNvb3JkIChJQ1JTKTogKHJh LCBkZWMpIGluIGRlZ1xuJwotKyAgICAgICAgICAgICAgJyAgICBbKCAxLiwgIDMuKSwgKCAyLiwg IDQuKV0+LCByPTMuMCBwaXgpPicpCi0rICAgIGFfc3RyID0gKCdBcGVydHVyZTogU2t5Q2lyY3Vs YXJBcGVydHVyZVxucG9zaXRpb25zOiA8U2t5Q29vcmQgJwotKyAgICAgICAgICAgICAnKElDUlMp OiAocmEsIGRlYykgaW4gZGVnXG4gICAgWyggMS4sICAzLiksICggMi4sICA0LildPlxuJwotKyAg ICAgICAgICAgICAncjogMy4wIHBpeCcpCi0rICAgIGFzc2VydCByZXByKGFwZXIpID09IGFfcmVw cgotKyAgICBhc3NlcnQgc3RyKGFwZXIpID09IGFfc3RyCi0rCi0rICAgIGFwZXIgPSBTa3lDaXJj dWxhckFubnVsdXMocywgcl9pbj0zLip1LnBpeCwgcl9vdXQ9NSp1LnBpeCkKLSsgICAgYV9yZXBy ID0gKCc8U2t5Q2lyY3VsYXJBbm51bHVzKDxTa3lDb29yZCAoSUNSUyk6IChyYSwgZGVjKSBpbiBk ZWdcbicKLSsgICAgICAgICAgICAgICcgICAgWyggMS4sICAzLiksICggMi4sICA0LildPiwgcl9p bj0zLjAgcGl4LCByX291dD01LjAgcGl4KT4nKQotKyAgICBhX3N0ciA9ICgnQXBlcnR1cmU6IFNr eUNpcmN1bGFyQW5udWx1c1xucG9zaXRpb25zOiA8U2t5Q29vcmQgJwotKyAgICAgICAgICAgICAn KElDUlMpOiAocmEsIGRlYykgaW4gZGVnXG4gICAgWyggMS4sICAzLiksICggMi4sICA0LildPlxu JwotKyAgICAgICAgICAgICAncl9pbjogMy4wIHBpeFxucl9vdXQ6IDUuMCBwaXgnKQotKyAgICBh c3NlcnQgcmVwcihhcGVyKSA9PSBhX3JlcHIKLSsgICAgYXNzZXJ0IHN0cihhcGVyKSA9PSBhX3N0 cgotKwotKyAgICBhcGVyID0gU2t5RWxsaXB0aWNhbEFwZXJ0dXJlKHMsIGE9Myp1LnBpeCwgYj01 KnUucGl4LCB0aGV0YT0xNSp1LmRlZykKLSsgICAgYV9yZXByID0gKCc8U2t5RWxsaXB0aWNhbEFw ZXJ0dXJlKDxTa3lDb29yZCAoSUNSUyk6IChyYSwgZGVjKSBpbiAnCi0rICAgICAgICAgICAgICAn ZGVnXG4gICAgWyggMS4sICAzLiksICggMi4sICA0LildPiwgYT0zLjAgcGl4LCBiPTUuMCBwaXgs JwotKyAgICAgICAgICAgICAgJyB0aGV0YT0xNS4wIGRlZyk+JykKLSsgICAgYV9zdHIgPSAoJ0Fw ZXJ0dXJlOiBTa3lFbGxpcHRpY2FsQXBlcnR1cmVcbnBvc2l0aW9uczogPFNreUNvb3JkICcKLSsg ICAgICAgICAgICAgJyhJQ1JTKTogKHJhLCBkZWMpIGluIGRlZ1xuICAgIFsoIDEuLCAgMy4pLCAo IDIuLCAgNC4pXT5cbicKLSsgICAgICAgICAgICAgJ2E6IDMuMCBwaXhcbmI6IDUuMCBwaXhcbnRo ZXRhOiAxNS4wIGRlZycpCi0rICAgIGFzc2VydCByZXByKGFwZXIpID09IGFfcmVwcgotKyAgICBh c3NlcnQgc3RyKGFwZXIpID09IGFfc3RyCi0rCi0rICAgIGFwZXIgPSBTa3lFbGxpcHRpY2FsQW5u dWx1cyhzLCBhX2luPTMqdS5waXgsIGFfb3V0PTUqdS5waXgsIGJfb3V0PTMqdS5waXgsCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGV0YT0xNSp1LmRlZykKLSsgICAgYV9yZXBy ID0gKCc8U2t5RWxsaXB0aWNhbEFubnVsdXMoPFNreUNvb3JkIChJQ1JTKTogKHJhLCBkZWMpIGlu ICcKLSsgICAgICAgICAgICAgICdkZWdcbiAgICBbKCAxLiwgIDMuKSwgKCAyLiwgIDQuKV0+LCBh X2luPTMuMCBwaXgsICcKLSsgICAgICAgICAgICAgICdhX291dD01LjAgcGl4LCBiX291dD0zLjAg cGl4LCB0aGV0YT0xNS4wIGRlZyk+JykKLSsgICAgYV9zdHIgPSAoJ0FwZXJ0dXJlOiBTa3lFbGxp cHRpY2FsQW5udWx1c1xucG9zaXRpb25zOiA8U2t5Q29vcmQgJwotKyAgICAgICAgICAgICAnKElD UlMpOiAocmEsIGRlYykgaW4gZGVnXG4gICAgWyggMS4sICAzLiksICggMi4sICA0LildPlxuJwot KyAgICAgICAgICAgICAnYV9pbjogMy4wIHBpeFxuYV9vdXQ6IDUuMCBwaXhcbmJfb3V0OiAzLjAg cGl4XG4nCi0rICAgICAgICAgICAgICd0aGV0YTogMTUuMCBkZWcnKQotKyAgICBhc3NlcnQgcmVw cihhcGVyKSA9PSBhX3JlcHIKLSsgICAgYXNzZXJ0IHN0cihhcGVyKSA9PSBhX3N0cgotKwotKyAg ICBhcGVyID0gU2t5UmVjdGFuZ3VsYXJBcGVydHVyZShzLCB3PTMqdS5waXgsIGg9NSp1LnBpeCwg dGhldGE9MTUqdS5kZWcpCi0rICAgIGFfcmVwciA9ICgnPFNreVJlY3Rhbmd1bGFyQXBlcnR1cmUo PFNreUNvb3JkIChJQ1JTKTogKHJhLCBkZWMpIGluICcKLSsgICAgICAgICAgICAgICdkZWdcbiAg ICBbKCAxLiwgIDMuKSwgKCAyLiwgIDQuKV0+LCB3PTMuMCBwaXgsIGg9NS4wIHBpeCcKLSsgICAg ICAgICAgICAgICcsIHRoZXRhPTE1LjAgZGVnKT4nKQotKyAgICBhX3N0ciA9ICgnQXBlcnR1cmU6 IFNreVJlY3Rhbmd1bGFyQXBlcnR1cmVcbnBvc2l0aW9uczogPFNreUNvb3JkICcKLSsgICAgICAg ICAgICAgJyhJQ1JTKTogKHJhLCBkZWMpIGluIGRlZ1xuICAgIFsoIDEuLCAgMy4pLCAoIDIuLCAg NC4pXT5cbicKLSsgICAgICAgICAgICAgJ3c6IDMuMCBwaXhcbmg6IDUuMCBwaXhcbnRoZXRhOiAx NS4wIGRlZycpCi0rICAgIGFzc2VydCByZXByKGFwZXIpID09IGFfcmVwcgotKyAgICBhc3NlcnQg c3RyKGFwZXIpID09IGFfc3RyCi0rCi0rICAgIGFwZXIgPSBTa3lSZWN0YW5ndWxhckFubnVsdXMo cywgd19pbj0zKnUucGl4LCB3X291dD0zLjQqdS5waXgsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaF9vdXQ9NSp1LnBpeCwgdGhldGE9MTUqdS5kZWcpCi0rICAgIGFfcmVwciA9 ICgnPFNreVJlY3Rhbmd1bGFyQW5udWx1cyg8U2t5Q29vcmQgKElDUlMpOiAocmEsIGRlYykgaW4g ZGVnJwotKyAgICAgICAgICAgICAgJ1xuICAgIFsoIDEuLCAgMy4pLCAoIDIuLCAgNC4pXT4sIHdf aW49My4wIHBpeCwgJwotKyAgICAgICAgICAgICAgJ3dfb3V0PTMuNCBwaXgsIGhfb3V0PTUuMCBw aXgsIHRoZXRhPTE1LjAgZGVnKT4nKQotKyAgICBhX3N0ciA9ICgnQXBlcnR1cmU6IFNreVJlY3Rh bmd1bGFyQW5udWx1c1xucG9zaXRpb25zOiA8U2t5Q29vcmQgJwotKyAgICAgICAgICAgICAnKElD UlMpOiAocmEsIGRlYykgaW4gZGVnXG4gICAgWyggMS4sICAzLiksICggMi4sICA0LildPlxuJwot KyAgICAgICAgICAgICAnd19pbjogMy4wIHBpeFxud19vdXQ6IDMuNCBwaXhcbmhfb3V0OiA1LjAg cGl4XG4nCi0rICAgICAgICAgICAgICd0aGV0YTogMTUuMCBkZWcnKQotKyAgICBhc3NlcnQgcmVw cihhcGVyKSA9PSBhX3JlcHIKLSsgICAgYXNzZXJ0IHN0cihhcGVyKSA9PSBhX3N0cgotKwotKwot K2RlZiB0ZXN0X3JlY3Rhbmd1bGFyX2Jib3goKToKLSsgICAgIyBvZGQgc2l6ZXMKLSsgICAgd2lk dGggPSA3Ci0rICAgIGhlaWdodCA9IDMKLSsgICAgYSA9IFJlY3Rhbmd1bGFyQXBlcnR1cmUoKDUw LCA1MCksIHc9d2lkdGgsIGg9aGVpZ2h0LCB0aGV0YT0wKQotKyAgICBhc3NlcnQgYS5ib3VuZGlu Z19ib3hlc1swXS5zaGFwZSA9PSAoaGVpZ2h0LCB3aWR0aCkKLSsKLSsgICAgYSA9IFJlY3Rhbmd1 bGFyQXBlcnR1cmUoKDUwLjUsIDUwLjUpLCB3PXdpZHRoLCBoPWhlaWdodCwgdGhldGE9MCkKLSsg ICAgYXNzZXJ0IGEuYm91bmRpbmdfYm94ZXNbMF0uc2hhcGUgPT0gKGhlaWdodCArIDEsIHdpZHRo ICsgMSkKLSsKLSsgICAgYSA9IFJlY3Rhbmd1bGFyQXBlcnR1cmUoKDUwLCA1MCksIHc9d2lkdGgs IGg9aGVpZ2h0LCB0aGV0YT05MC4qbnAucGkvMTgwLikKLSsgICAgYXNzZXJ0IGEuYm91bmRpbmdf Ym94ZXNbMF0uc2hhcGUgPT0gKHdpZHRoLCBoZWlnaHQpCi0rCi0rICAgICMgZXZlbiBzaXplcwot KyAgICB3aWR0aCA9IDgKLSsgICAgaGVpZ2h0ID0gNAotKyAgICBhID0gUmVjdGFuZ3VsYXJBcGVy dHVyZSgoNTAsIDUwKSwgdz13aWR0aCwgaD1oZWlnaHQsIHRoZXRhPTApCi0rICAgIGFzc2VydCBh LmJvdW5kaW5nX2JveGVzWzBdLnNoYXBlID09IChoZWlnaHQgKyAxLCB3aWR0aCArIDEpCi0rCi0r ICAgIGEgPSBSZWN0YW5ndWxhckFwZXJ0dXJlKCg1MC41LCA1MC41KSwgdz13aWR0aCwgaD1oZWln aHQsIHRoZXRhPTApCi0rICAgIGFzc2VydCBhLmJvdW5kaW5nX2JveGVzWzBdLnNoYXBlID09ICho ZWlnaHQsIHdpZHRoKQotKwotKyAgICBhID0gUmVjdGFuZ3VsYXJBcGVydHVyZSgoNTAuNSwgNTAu NSksIHc9d2lkdGgsIGg9aGVpZ2h0LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGV0 YT05MC4qbnAucGkvMTgwLikKLSsgICAgYXNzZXJ0IGEuYm91bmRpbmdfYm94ZXNbMF0uc2hhcGUg PT0gKHdpZHRoLCBoZWlnaHQpCi0rCi0rCi0rZGVmIHRlc3RfZWxsaXB0aWNhbF9iYm94KCk6Ci0r ICAgICMgaW50ZWdlciBheGVzCi0rICAgIGEgPSA3Ci0rICAgIGIgPSAzCi0rICAgIGFwID0gRWxs aXB0aWNhbEFwZXJ0dXJlKCg1MCwgNTApLCBhPWEsIGI9YiwgdGhldGE9MCkKLSsgICAgYXNzZXJ0 IGFwLmJvdW5kaW5nX2JveGVzWzBdLnNoYXBlID09ICgyKmIgKyAxLCAyKmEgKyAxKQotKwotKyAg ICBhcCA9IEVsbGlwdGljYWxBcGVydHVyZSgoNTAuNSwgNTAuNSksIGE9YSwgYj1iLCB0aGV0YT0w KQotKyAgICBhc3NlcnQgYXAuYm91bmRpbmdfYm94ZXNbMF0uc2hhcGUgPT0gKDIqYiwgMiphKQot KwotKyAgICBhcCA9IEVsbGlwdGljYWxBcGVydHVyZSgoNTAsIDUwKSwgYT1hLCBiPWIsIHRoZXRh PTkwLipucC5waS8xODAuKQotKyAgICBhc3NlcnQgYXAuYm91bmRpbmdfYm94ZXNbMF0uc2hhcGUg PT0gKDIqYSArIDEsIDIqYiArIDEpCi0rCi0rICAgICMgZnJhY3Rpb25hbCBheGVzCi0rICAgIGEg PSA3LjUKLSsgICAgYiA9IDQuNQotKyAgICBhcCA9IEVsbGlwdGljYWxBcGVydHVyZSgoNTAsIDUw KSwgYT1hLCBiPWIsIHRoZXRhPTApCi0rICAgIGFzc2VydCBhcC5ib3VuZGluZ19ib3hlc1swXS5z aGFwZSA9PSAoMipiLCAyKmEpCi0rCi0rICAgIGFwID0gRWxsaXB0aWNhbEFwZXJ0dXJlKCg1MC41 LCA1MC41KSwgYT1hLCBiPWIsIHRoZXRhPTApCi0rICAgIGFzc2VydCBhcC5ib3VuZGluZ19ib3hl c1swXS5zaGFwZSA9PSAoMipiICsgMSwgMiphICsgMSkKLSsKLSsgICAgYXAgPSBFbGxpcHRpY2Fs QXBlcnR1cmUoKDUwLCA1MCksIGE9YSwgYj1iLCB0aGV0YT05MC4qbnAucGkvMTgwLikKLSsgICAg YXNzZXJ0IGFwLmJvdW5kaW5nX2JveGVzWzBdLnNoYXBlID09ICgyKmEsIDIqYikKLSsKLSsKLStk ZWYgdGVzdF90b19za3lfcGl4ZWwoKToKLSsgICAgZGF0YSA9IG1ha2VfNGdhdXNzaWFuc19pbWFn ZSgpCi0rICAgIHdjcyA9IG1ha2Vfd2NzKGRhdGEuc2hhcGUpCi0rCi0rICAgIGFwID0gQ2lyY3Vs YXJBcGVydHVyZSgoKDEyLjMsIDE1LjcpLCAoNDguMTksIDk4LjE0KSksIHI9My4xNCkKLSsgICAg YXAyID0gYXAudG9fc2t5KHdjcykudG9fcGl4ZWwod2NzKQotKyAgICBhc3NlcnRfYWxsY2xvc2Uo YXAucG9zaXRpb25zLCBhcDIucG9zaXRpb25zKQotKyAgICBhc3NlcnRfYWxsY2xvc2UoYXAuciwg YXAyLnIpCi0rCi0rICAgIGFwID0gQ2lyY3VsYXJBbm51bHVzKCgoMTIuMywgMTUuNyksICg0OC4x OSwgOTguMTQpKSwgcl9pbj0zLjE0LAotKyAgICAgICAgICAgICAgICAgICAgICAgICByX291dD01 LjMyKQotKyAgICBhcDIgPSBhcC50b19za3kod2NzKS50b19waXhlbCh3Y3MpCi0rICAgIGFzc2Vy dF9hbGxjbG9zZShhcC5wb3NpdGlvbnMsIGFwMi5wb3NpdGlvbnMpCi0rICAgIGFzc2VydF9hbGxj bG9zZShhcC5yX2luLCBhcDIucl9pbikKLSsgICAgYXNzZXJ0X2FsbGNsb3NlKGFwLnJfb3V0LCBh cDIucl9vdXQpCi0rCi0rICAgIGFwID0gRWxsaXB0aWNhbEFwZXJ0dXJlKCgoMTIuMywgMTUuNyks ICg0OC4xOSwgOTguMTQpKSwgYT0zLjE0LCBiPTUuMzIsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHRoZXRhPTEwMy4qbnAucGkvMTgwLikKLSsgICAgYXAyID0gYXAudG9fc2t5KHdjcyku dG9fcGl4ZWwod2NzKQotKyAgICBhc3NlcnRfYWxsY2xvc2UoYXAucG9zaXRpb25zLCBhcDIucG9z aXRpb25zKQotKyAgICBhc3NlcnRfYWxsY2xvc2UoYXAuYSwgYXAyLmEpCi0rICAgIGFzc2VydF9h bGxjbG9zZShhcC5iLCBhcDIuYikKLSsgICAgYXNzZXJ0X2FsbGNsb3NlKGFwLnRoZXRhLCBhcDIu dGhldGEpCi0rCi0rICAgIGFwID0gRWxsaXB0aWNhbEFubnVsdXMoKCgxMi4zLCAxNS43KSwgKDQ4 LjE5LCA5OC4xNCkpLCBhX2luPTMuMTQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgYV9v dXQ9MTUuMzIsIGJfb3V0PTQuODksIHRoZXRhPTEwMy4qbnAucGkvMTgwLikKLSsgICAgYXAyID0g YXAudG9fc2t5KHdjcykudG9fcGl4ZWwod2NzKQotKyAgICBhc3NlcnRfYWxsY2xvc2UoYXAucG9z aXRpb25zLCBhcDIucG9zaXRpb25zKQotKyAgICBhc3NlcnRfYWxsY2xvc2UoYXAuYV9pbiwgYXAy LmFfaW4pCi0rICAgIGFzc2VydF9hbGxjbG9zZShhcC5hX291dCwgYXAyLmFfb3V0KQotKyAgICBh c3NlcnRfYWxsY2xvc2UoYXAuYl9vdXQsIGFwMi5iX291dCkKLSsgICAgYXNzZXJ0X2FsbGNsb3Nl KGFwLnRoZXRhLCBhcDIudGhldGEpCi0rCi0rICAgIGFwID0gUmVjdGFuZ3VsYXJBcGVydHVyZSgo KDEyLjMsIDE1LjcpLCAoNDguMTksIDk4LjE0KSksIHc9My4xNCwgaD01LjMyLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdGhldGE9MTAzLipucC5waS8xODAuKQotKyAgICBhcDIgPSBh cC50b19za3kod2NzKS50b19waXhlbCh3Y3MpCi0rICAgIGFzc2VydF9hbGxjbG9zZShhcC5wb3Np dGlvbnMsIGFwMi5wb3NpdGlvbnMpCi0rICAgIGFzc2VydF9hbGxjbG9zZShhcC53LCBhcDIudykK LSsgICAgYXNzZXJ0X2FsbGNsb3NlKGFwLmgsIGFwMi5oKQotKyAgICBhc3NlcnRfYWxsY2xvc2Uo YXAudGhldGEsIGFwMi50aGV0YSkKLSsKLSsgICAgYXAgPSBSZWN0YW5ndWxhckFubnVsdXMoKCgx Mi4zLCAxNS43KSwgKDQ4LjE5LCA5OC4xNCkpLCB3X2luPTMuMTQsCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHdfb3V0PTE1LjMyLCBoX291dD00Ljg5LCB0aGV0YT0xMDMuKm5wLnBpLzE4 MC4pCi0rICAgIGFwMiA9IGFwLnRvX3NreSh3Y3MpLnRvX3BpeGVsKHdjcykKLSsgICAgYXNzZXJ0 X2FsbGNsb3NlKGFwLnBvc2l0aW9ucywgYXAyLnBvc2l0aW9ucykKLSsgICAgYXNzZXJ0X2FsbGNs b3NlKGFwLndfaW4sIGFwMi53X2luKQotKyAgICBhc3NlcnRfYWxsY2xvc2UoYXAud19vdXQsIGFw Mi53X291dCkKLSsgICAgYXNzZXJ0X2FsbGNsb3NlKGFwLmhfb3V0LCBhcDIuaF9vdXQpCi0rICAg IGFzc2VydF9hbGxjbG9zZShhcC50aGV0YSwgYXAyLnRoZXRhKQotZGlmZiAtTmF1ciBwaG90dXRp bHMtMC40L3Bob3R1dGlscy9iYWNrZ3JvdW5kL2NvcmUucHkgcGhvdHV0aWxzLTAuNC5maXhlZC9w aG90dXRpbHMvYmFja2dyb3VuZC9jb3JlLnB5Ci0tLS0gcGhvdHV0aWxzLTAuNC9waG90dXRpbHMv YmFja2dyb3VuZC9jb3JlLnB5CTIwMTctMTAtMzAgMTU6Mzg6MTguMDAwMDAwMDAwICswMTAwCi0r KysgcGhvdHV0aWxzLTAuNC5maXhlZC9waG90dXRpbHMvYmFja2dyb3VuZC9jb3JlLnB5CTIwMTgt MDItMTQgMDM6NTY6MDcuMDYzNTIyNjE5ICswMTAwCi1AQCAtNDc3LDE0ICs0NzcsMTQgQEAKLSAK LSAgICAgPj4+IGJrZ3Jtc192YWx1ZSA9IGJrZ3Jtcy5jYWxjX2JhY2tncm91bmRfcm1zKGRhdGEp Ci0gICAgID4+PiBwcmludChia2dybXNfdmFsdWUpICAgICMgZG9jdGVzdDogK0ZMT0FUX0NNUAot LSAgICAyOC44NjYwNzAwNDc3MjIxMTgKLSsgICAgMjguODY2MDcwMDQ3NzIyMTIKLSAKLSAgICAg QWx0ZXJuYXRpdmVseSwgdGhlIGJhY2tncm91bmQgUk1TIHZhbHVlIGNhbiBiZSBjYWxjdWxhdGVk IGJ5IGNhbGxpbmcKLSAgICAgdGhlIGNsYXNzIGluc3RhbmNlIGFzIGEgZnVuY3Rpb24sIGUuZy46 Ci0gCi0gICAgID4+PiBia2dybXNfdmFsdWUgPSBia2dybXMoZGF0YSkKLSAgICAgPj4+IHByaW50 KGJrZ3Jtc192YWx1ZSkgICAgIyBkb2N0ZXN0OiArRkxPQVRfQ01QCi0tICAgIDI4Ljg2NjA3MDA0 NzcyMjExOAotKyAgICAyOC44NjYwNzAwNDc3MjIxMgotICAgICAiIiIKLSAKLSAgICAgZGVmIGNh bGNfYmFja2dyb3VuZF9ybXMoc2VsZiwgZGF0YSwgYXhpcz1Ob25lKToKLUBAIC01MzEsMTQgKzUz MSwxNCBAQAotIAotICAgICA+Pj4gYmtncm1zX3ZhbHVlID0gYmtncm1zLmNhbGNfYmFja2dyb3Vu ZF9ybXMoZGF0YSkKLSAgICAgPj4+IHByaW50KGJrZ3Jtc192YWx1ZSkgICAgIyBkb2N0ZXN0OiAr RkxPQVRfQ01QCi0tICAgIDM3LjA2NTA1NTQ2MjY0MDA1MwotKyAgICAzNy4wNjUwNTU0NjI2NDAw NQotIAotICAgICBBbHRlcm5hdGl2ZWx5LCB0aGUgYmFja2dyb3VuZCBSTVMgdmFsdWUgY2FuIGJl IGNhbGN1bGF0ZWQgYnkgY2FsbGluZwotICAgICB0aGUgY2xhc3MgaW5zdGFuY2UgYXMgYSBmdW5j dGlvbiwgZS5nLjoKLSAKLSAgICAgPj4+IGJrZ3Jtc192YWx1ZSA9IGJrZ3JtcyhkYXRhKQotICAg ICA+Pj4gcHJpbnQoYmtncm1zX3ZhbHVlKSAgICAjIGRvY3Rlc3Q6ICtGTE9BVF9DTVAKLS0gICAg MzcuMDY1MDU1NDYyNjQwMDUzCi0rICAgIDM3LjA2NTA1NTQ2MjY0MDA1Ci0gICAgICIiIgotIAot ICAgICBkZWYgY2FsY19iYWNrZ3JvdW5kX3JtcyhzZWxmLCBkYXRhLCBheGlzPU5vbmUpOgotQEAg LTU4MCwxNCArNTgwLDE0IEBACi0gCi0gICAgID4+PiBia2dybXNfdmFsdWUgPSBia2dybXMuY2Fs Y19iYWNrZ3JvdW5kX3JtcyhkYXRhKQotICAgICA+Pj4gcHJpbnQoYmtncm1zX3ZhbHVlKSAgICAj IGRvY3Rlc3Q6ICtGTE9BVF9DTVAKLS0gICAgMzAuMDk0MzM4NDg1ODkzMzkyCi0rICAgIDMwLjA5 NDMzODQ4NTg5MzM5Ci0gCi0gICAgIEFsdGVybmF0aXZlbHksIHRoZSBiYWNrZ3JvdW5kIFJNUyB2 YWx1ZSBjYW4gYmUgY2FsY3VsYXRlZCBieSBjYWxsaW5nCi0gICAgIHRoZSBjbGFzcyBpbnN0YW5j ZSBhcyBhIGZ1bmN0aW9uLCBlLmcuOgotIAotICAgICA+Pj4gYmtncm1zX3ZhbHVlID0gYmtncm1z KGRhdGEpCi0gICAgID4+PiBwcmludChia2dybXNfdmFsdWUpICAgICMgZG9jdGVzdDogK0ZMT0FU X0NNUAotLSAgICAzMC4wOTQzMzg0ODU4OTMzOTIKLSsgICAgMzAuMDk0MzM4NDg1ODkzMzkKLSAg ICAgIiIiCi0gCi0gICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjPTkuMCwgTT1Ob25lLCAqKmt3YXJn cyk6Ci1kaWZmIC1OYXVyIHBob3R1dGlscy0wLjQvcGhvdHV0aWxzL2RhdGFzZXRzL21ha2UucHkg cGhvdHV0aWxzLTAuNC5maXhlZC9waG90dXRpbHMvZGF0YXNldHMvbWFrZS5weQotLS0tIHBob3R1 dGlscy0wLjQvcGhvdHV0aWxzL2RhdGFzZXRzL21ha2UucHkJMjAxNy0xMC0zMCAxNTozODoxOC4w MDAwMDAwMDAgKzAxMDAKLSsrKyBwaG90dXRpbHMtMC40LmZpeGVkL3Bob3R1dGlscy9kYXRhc2V0 cy9tYWtlLnB5CTIwMTgtMDItMTQgMDM6NTY6MDcuMDYzNTIyNjE5ICswMTAwCi1AQCAtMjE0LDE0 ICsyMTQsMTYgQEAKLSAgICAgPj4+IHBhcmFtX3JhbmdlcyA9IE9yZGVyZWREaWN0KHBhcmFtX3Jh bmdlcykKLSAgICAgPj4+IHNvdXJjZXMgPSBtYWtlX3JhbmRvbV9tb2RlbHNfdGFibGUobl9zb3Vy Y2VzLCBwYXJhbV9yYW5nZXMsCi0gICAgIC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHJhbmRvbV9zdGF0ZT0xMjM0NSkKLSsgICAgPj4+IGZvciBjb2wgaW4gc291cmNlcy5j b2xuYW1lczoKLSsgICAgLi4uICAgICBzb3VyY2VzW2NvbF0uaW5mby5mb3JtYXQgPSAnJS44Zycg ICMgZm9yIGNvbnNpc3RlbnQgdGFibGUgb3V0cHV0Ci0gICAgID4+PiBwcmludChzb3VyY2VzKQot LSAgICAgIGFtcGxpdHVkZSAgICAgICB4X21lYW4gICAgICAgIHlfbWVhbiAgICAuLi4gICAgeV9z dGRkZXYgICAgICAgdGhldGEKLS0gICAgLS0tLS0tLS0tLS0tLSAtLS0tLS0tLS0tLS0tIC0tLS0t LS0tLS0tLS0gLi4uIC0tLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0KLS0gICAgOTY0LjgwODA0 NjQwOSAgMjk3Ljc3MjM1MTQ5IDIyNC4zMTQ0NDI3ODEgLi4uIDMuNTY5OTAxMzExNTggIDIuMjky Mzg1ODYxNzYKLS0gICAgNjU4LjE4Nzc3NzI5MSA0ODIuMjU3MjU5ODY4IDI4OC4zOTIwMjA4MjIg Li4uIDMuODY5ODE0NDgzMjUgIDMuMTIyNzg4OTIwNjIKLS0gICAgNTkxLjk1OTQwNTgzOSAzMjYu NTg4NTQ4NDM2IDIuNTE2NDg5MzgyNDcgLi4uIDIuODcwMzk2MDI4ODggIDIuMTI2NDYxNDgwMzIK LS0gICAgNjAyLjI4MDEzOTI3NyAzNzQuNDUzMzE4NzY3IDMxLjkzMzMxMzAwOTMgLi4uIDIuMzAy MzM4NzEwMTYgIDIuNDg0NDQyMjEyMzYKLS0gICAgNzgzLjg2MjUxNDU0MSAzMjYuNzg0OTM1NDI2 IDg5LjYxMTExNDEzMDggLi4uIDIuNzU4NTc4NDIzNTQgMC41MzY5NDI5NzY2NzQKLSsgICAgYW1w bGl0dWRlICAgeF9tZWFuICAgIHlfbWVhbiAgIHhfc3RkZGV2ICB5X3N0ZGRldiAgIHRoZXRhCi0r ICAgIC0tLS0tLS0tLSAtLS0tLS0tLS0gLS0tLS0tLS0tIC0tLS0tLS0tLSAtLS0tLS0tLS0gLS0t LS0tLS0tLQotKyAgICA5NjQuODA4MDUgMjk3Ljc3MjM1IDIyNC4zMTQ0NCAzLjYyNTY0NDcgMy41 Njk5MDEzICAyLjI5MjM4NTkKLSsgICAgNjU4LjE4Nzc4IDQ4Mi4yNTcyNiAyODguMzkyMDIgNC4y MzkyNTAyIDMuODY5ODE0NSAgMy4xMjI3ODg5Ci0rICAgIDU5MS45NTk0MSAzMjYuNTg4NTUgMi41 MTY0ODk0IDQuNDg4NzAzNyAgMi44NzAzOTYgIDIuMTI2NDYxNQotKyAgICA2MDIuMjgwMTQgMzc0 LjQ1MzMyIDMxLjkzMzMxMyA0Ljg1ODU5MDQgMi4zMDIzMzg3ICAyLjQ4NDQ0MjIKLSsgICAgNzgz Ljg2MjUxIDMyNi43ODQ5NCA4OS42MTExMTQgMy44OTQ3NDE0IDIuNzU4NTc4NCAwLjUzNjk0Mjk4 Ci0gICAgICIiIgotIAotICAgICBwcm5nID0gY2hlY2tfcmFuZG9tX3N0YXRlKHJhbmRvbV9zdGF0 ZSkKLUBAIC0zMDIsMTQgKzMwNCwxNiBAQAotICAgICA+Pj4gcGFyYW1fcmFuZ2VzID0gT3JkZXJl ZERpY3QocGFyYW1fcmFuZ2VzKQotICAgICA+Pj4gc291cmNlcyA9IG1ha2VfcmFuZG9tX2dhdXNz aWFuc190YWJsZShuX3NvdXJjZXMsIHBhcmFtX3JhbmdlcywKLSAgICAgLi4uICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFuZG9tX3N0YXRlPTEyMzQ1KQotKyAgICA+Pj4g Zm9yIGNvbCBpbiBzb3VyY2VzLmNvbG5hbWVzOgotKyAgICAuLi4gICAgIHNvdXJjZXNbY29sXS5p bmZvLmZvcm1hdCA9ICclLjhnJyAgIyBmb3IgY29uc2lzdGVudCB0YWJsZSBvdXRwdXQKLSAgICAg Pj4+IHByaW50KHNvdXJjZXMpCi0tICAgICAgYW1wbGl0dWRlICAgICAgIHhfbWVhbiAgICAgICAg eV9tZWFuICAgIC4uLiAgICB5X3N0ZGRldiAgICAgICB0aGV0YQotLSAgICAtLS0tLS0tLS0tLS0t IC0tLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tLSAuLi4gLS0tLS0tLS0tLS0tLSAtLS0tLS0tLS0t LS0tLQotLSAgICA5NjQuODA4MDQ2NDA5ICAyOTcuNzcyMzUxNDkgMjI0LjMxNDQ0Mjc4MSAuLi4g My41Njk5MDEzMTE1OCAgMi4yOTIzODU4NjE3NgotLSAgICA2NTguMTg3Nzc3MjkxIDQ4Mi4yNTcy NTk4NjggMjg4LjM5MjAyMDgyMiAuLi4gMy44Njk4MTQ0ODMyNSAgMy4xMjI3ODg5MjA2MgotLSAg ICA1OTEuOTU5NDA1ODM5IDMyNi41ODg1NDg0MzYgMi41MTY0ODkzODI0NyAuLi4gMi44NzAzOTYw Mjg4OCAgMi4xMjY0NjE0ODAzMgotLSAgICA2MDIuMjgwMTM5Mjc3IDM3NC40NTMzMTg3NjcgMzEu OTMzMzEzMDA5MyAuLi4gMi4zMDIzMzg3MTAxNiAgMi40ODQ0NDIyMTIzNgotLSAgICA3ODMuODYy NTE0NTQxIDMyNi43ODQ5MzU0MjYgODkuNjExMTE0MTMwOCAuLi4gMi43NTg1Nzg0MjM1NCAwLjUz Njk0Mjk3NjY3NAotKyAgICBhbXBsaXR1ZGUgICB4X21lYW4gICAgeV9tZWFuICAgeF9zdGRkZXYg IHlfc3RkZGV2ICAgdGhldGEKLSsgICAgLS0tLS0tLS0tIC0tLS0tLS0tLSAtLS0tLS0tLS0gLS0t LS0tLS0tIC0tLS0tLS0tLSAtLS0tLS0tLS0tCi0rICAgIDk2NC44MDgwNSAyOTcuNzcyMzUgMjI0 LjMxNDQ0IDMuNjI1NjQ0NyAzLjU2OTkwMTMgIDIuMjkyMzg1OQotKyAgICA2NTguMTg3NzggNDgy LjI1NzI2IDI4OC4zOTIwMiA0LjIzOTI1MDIgMy44Njk4MTQ1ICAzLjEyMjc4ODkKLSsgICAgNTkx Ljk1OTQxIDMyNi41ODg1NSAyLjUxNjQ4OTQgNC40ODg3MDM3ICAyLjg3MDM5NiAgMi4xMjY0NjE1 Ci0rICAgIDYwMi4yODAxNCAzNzQuNDUzMzIgMzEuOTMzMzEzIDQuODU4NTkwNCAyLjMwMjMzODcg IDIuNDg0NDQyMgotKyAgICA3ODMuODYyNTEgMzI2Ljc4NDk0IDg5LjYxMTExNCAzLjg5NDc0MTQg Mi43NTg1Nzg0IDAuNTM2OTQyOTgKLSAKLSAgICAgVG8gc3BlY2lmeWluZyB0aGUgZmx1eCByYW5n ZSBpbnN0ZWFkIG9mIHRoZSBhbXBsaXR1ZGUgcmFuZ2U6Ci0gCi1AQCAtMzIyLDE0ICszMjYsMTYg QEAKLSAgICAgPj4+IHBhcmFtX3JhbmdlcyA9IE9yZGVyZWREaWN0KHBhcmFtX3JhbmdlcykKLSAg ICAgPj4+IHNvdXJjZXMgPSBtYWtlX3JhbmRvbV9nYXVzc2lhbnNfdGFibGUobl9zb3VyY2VzLCBw YXJhbV9yYW5nZXMsCi0gICAgIC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHJhbmRvbV9zdGF0ZT0xMjM0NSkKLSsgICAgPj4+IGZvciBjb2wgaW4gc291cmNlcy5jb2xu YW1lczoKLSsgICAgLi4uICAgICBzb3VyY2VzW2NvbF0uaW5mby5mb3JtYXQgPSAnJS44ZycgICMg Zm9yIGNvbnNpc3RlbnQgdGFibGUgb3V0cHV0Ci0gICAgID4+PiBwcmludChzb3VyY2VzKQotLSAg ICAgICAgZmx1eCAgICAgICAgIHhfbWVhbiAgICAgICAgeV9tZWFuICAgIC4uLiAgICAgdGhldGEg ICAgICAgIGFtcGxpdHVkZQotLSAgICAtLS0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tLS0gLS0tLS0t LS0tLS0tLSAuLi4gLS0tLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tLQotLSAgICA5NjQuODA4MDQ2 NDA5ICAyOTcuNzcyMzUxNDkgMjI0LjMxNDQ0Mjc4MSAuLi4gIDIuMjkyMzg1ODYxNzYgMTEuODYz Njg0NTgwNgotLSAgICA2NTguMTg3Nzc3MjkxIDQ4Mi4yNTcyNTk4NjggMjg4LjM5MjAyMDgyMiAu Li4gIDMuMTIyNzg4OTIwNjIgNi4zODU0Mzg4MjY4NAotLSAgICA1OTEuOTU5NDA1ODM5IDMyNi41 ODg1NDg0MzYgMi41MTY0ODkzODI0NyAuLi4gIDIuMTI2NDYxNDgwMzIgNy4zMTIyMjA4OTU2Nwot LSAgICA2MDIuMjgwMTM5Mjc3IDM3NC40NTMzMTg3NjcgMzEuOTMzMzEzMDA5MyAuLi4gIDIuNDg0 NDQyMjEyMzYgOC41NjkxNzgxNDUwNgotLSAgICA3ODMuODYyNTE0NTQxIDMyNi43ODQ5MzU0MjYg ODkuNjExMTE0MTMwOCAuLi4gMC41MzY5NDI5NzY2NzQgMTEuNjExNzA2OTYzOAotKyAgICAgICBm bHV4ICAgICB4X21lYW4gICAgeV9tZWFuICAgeF9zdGRkZXYgIHlfc3RkZGV2ICAgdGhldGEgICAg YW1wbGl0dWRlCi0rICAgIC0tLS0tLS0tLSAtLS0tLS0tLS0gLS0tLS0tLS0tIC0tLS0tLS0tLSAt LS0tLS0tLS0gLS0tLS0tLS0tLSAtLS0tLS0tLS0KLSsgICAgOTY0LjgwODA1IDI5Ny43NzIzNSAy MjQuMzE0NDQgMy42MjU2NDQ3IDMuNTY5OTAxMyAgMi4yOTIzODU5IDExLjg2MzY4NQotKyAgICA2 NTguMTg3NzggNDgyLjI1NzI2IDI4OC4zOTIwMiA0LjIzOTI1MDIgMy44Njk4MTQ1ICAzLjEyMjc4 ODkgNi4zODU0Mzg4Ci0rICAgIDU5MS45NTk0MSAzMjYuNTg4NTUgMi41MTY0ODk0IDQuNDg4NzAz NyAgMi44NzAzOTYgIDIuMTI2NDYxNSA3LjMxMjIyMDkKLSsgICAgNjAyLjI4MDE0IDM3NC40NTMz MiAzMS45MzMzMTMgNC44NTg1OTA0IDIuMzAyMzM4NyAgMi40ODQ0NDIyIDguNTY5MTc4MQotKyAg ICA3ODMuODYyNTEgMzI2Ljc4NDk0IDg5LjYxMTExNCAzLjg5NDc0MTQgMi43NTg1Nzg0IDAuNTM2 OTQyOTggMTEuNjExNzA3Ci0gCi0gICAgIE5vdGUgdGhhdCBpbiB0aGlzIGNhc2UgdGhlIG91dHB1 dCB0YWJsZSBjb250YWlucyBib3RoIGEgZmx1eCBhbmQKLSAgICAgYW1wbGl0dWRlIGNvbHVtbi4g IFRoZSBmbHV4IGNvbHVtbiB3aWxsIGJlIGlnbm9yZWQgd2hlbiBnZW5lcmF0aW5nCi1AQCAtNjk0 LDEwICs3MDAsMTAgQEAKLSAgICAgPj4+IGZyb20gcGhvdHV0aWxzLmRhdGFzZXRzIGltcG9ydCBt YWtlX3djcwotICAgICA+Pj4gc2hhcGUgPSAoMTAwLCAxMDApCi0gICAgID4+PiB3Y3MgPSBtYWtl X3djcyhzaGFwZSkKLS0gICAgPj4+IHByaW50KHdjcy53Y3MuY3JwaXgpCi0tICAgIFsgNTAuICA1 MC5dCi0tICAgID4+PiBwcmludCh3Y3Mud2NzLmNydmFsKQotLSAgICBbIDE5Ny44OTI1ICAgICAg IC0xLjM2NTU1NTU2XQotKyAgICA+Pj4gcHJpbnQod2NzLndjcy5jcnBpeCkgICMgZG9jdGVzdDog K0ZMT0FUX0NNUAotKyAgICBbNTAuIDUwLl0KLSsgICAgPj4+IHByaW50KHdjcy53Y3MuY3J2YWwp ICAjIGRvY3Rlc3Q6ICtGTE9BVF9DTVAKLSsgICAgWzE5Ny44OTI1ICAgICAgLTEuMzY1NTU1NTZd Ci0gICAgICIiIgotIAotICAgICB3Y3MgPSBXQ1MobmF4aXM9MikKLWRpZmYgLU5hdXIgcGhvdHV0 aWxzLTAuNC9waG90dXRpbHMvZGV0ZWN0aW9uL3Rlc3RzL3Rlc3RfZmluZHN0YXJzLnB5IHBob3R1 dGlscy0wLjQuZml4ZWQvcGhvdHV0aWxzL2RldGVjdGlvbi90ZXN0cy90ZXN0X2ZpbmRzdGFycy5w eQotLS0tIHBob3R1dGlscy0wLjQvcGhvdHV0aWxzL2RldGVjdGlvbi90ZXN0cy90ZXN0X2ZpbmRz dGFycy5weQkyMDE3LTEwLTMwIDE1OjM4OjE4LjAwMDAwMDAwMCArMDEwMAotKysrIHBob3R1dGls cy0wLjQuZml4ZWQvcGhvdHV0aWxzL2RldGVjdGlvbi90ZXN0cy90ZXN0X2ZpbmRzdGFycy5weQky MDE4LTAyLTE0IDAzOjU2OjA3LjA2MTUyMjU4OCArMDEwMAotQEAgLTQ2LDggKzQ2LDEwIEBACi0g ICAgICAgICAgICAgICAgICAgJy50eHQnLmZvcm1hdCh0aHJlc2hvbGQsIGZ3aG0pKQotICAgICAg ICAgZGF0YWZuID0gb3Auam9pbihvcC5kaXJuYW1lKG9wLmFic3BhdGgoX19maWxlX18pKSwgJ2Rh dGEnLCBkYXRhZm4pCi0gICAgICAgICB0X3JlZiA9IFRhYmxlLnJlYWQoZGF0YWZuLCBmb3JtYXQ9 J2FzY2lpJykKLS0gICAgICAgIGFzc2VydF9hbGxjbG9zZShucC5hcnJheSh0KS5hc3R5cGUobnAu ZmxvYXQpLAotLSAgICAgICAgICAgICAgICAgICAgICAgIG5wLmFycmF5KHRfcmVmKS5hc3R5cGUo bnAuZmxvYXQpKQotKwotKyAgICAgICAgYXNzZXJ0IHQuY29sbmFtZXMgPT0gdF9yZWYuY29sbmFt ZXMKLSsgICAgICAgIGZvciBjb2wgaW4gdC5jb2xuYW1lczoKLSsgICAgICAgICAgICBhc3NlcnRf YWxsY2xvc2UodFtjb2xdLCB0X3JlZltjb2xdKQotIAotICAgICBkZWYgdGVzdF9kYW9maW5kX2lu Y2x1ZGVfYm9yZGVyKHNlbGYpOgotICAgICAgICAgc3RhcmZpbmRlciA9IERBT1N0YXJGaW5kZXIo dGhyZXNob2xkPTEwLCBmd2htPTIsIHNpZ21hX3JhZGl1cz0xLjUsCi1AQCAtMTAwLDggKzEwMiwx MCBAQAotICAgICAgICAgICAgICAgICAgICcudHh0Jy5mb3JtYXQodGhyZXNob2xkLCBmd2htKSkK LSAgICAgICAgIGRhdGFmbiA9IG9wLmpvaW4ob3AuZGlybmFtZShvcC5hYnNwYXRoKF9fZmlsZV9f KSksICdkYXRhJywgZGF0YWZuKQotICAgICAgICAgdF9yZWYgPSBUYWJsZS5yZWFkKGRhdGFmbiwg Zm9ybWF0PSdhc2NpaScpCi0tICAgICAgICBhc3NlcnRfYWxsY2xvc2UobnAuYXJyYXkodCkuYXN0 eXBlKG5wLmZsb2F0KSwKLS0gICAgICAgICAgICAgICAgICAgICAgICBucC5hcnJheSh0X3JlZiku YXN0eXBlKG5wLmZsb2F0KSkKLSsKLSsgICAgICAgIGFzc2VydCB0LmNvbG5hbWVzID09IHRfcmVm LmNvbG5hbWVzCi0rICAgICAgICBmb3IgY29sIGluIHQuY29sbmFtZXM6Ci0rICAgICAgICAgICAg YXNzZXJ0X2FsbGNsb3NlKHRbY29sXSwgdF9yZWZbY29sXSkKLSAKLSAgICAgZGVmIHRlc3RfaXJh ZnN0YXJmaW5kX25vc291cmNlcyhzZWxmKToKLSAgICAgICAgIGRhdGEgPSBucC5vbmVzKCgzLCAz KSkKLWRpZmYgLU5hdXIgcGhvdHV0aWxzLTAuNC9waG90dXRpbHMvc2VnbWVudGF0aW9uL3Byb3Bl cnRpZXMucHkgcGhvdHV0aWxzLTAuNC5maXhlZC9waG90dXRpbHMvc2VnbWVudGF0aW9uL3Byb3Bl cnRpZXMucHkKLS0tLSBwaG90dXRpbHMtMC40L3Bob3R1dGlscy9zZWdtZW50YXRpb24vcHJvcGVy dGllcy5weQkyMDE3LTEwLTMwIDE1OjM4OjE4LjAwMDAwMDAwMCArMDEwMAotKysrIHBob3R1dGls cy0wLjQuZml4ZWQvcGhvdHV0aWxzL3NlZ21lbnRhdGlvbi9wcm9wZXJ0aWVzLnB5CTIwMTgtMDIt MTQgMDM6NTY6MDcuMDYyNTIyNjAzICswMTAwCi1AQCAtMTE2MiwxMSArMTE2MiwxMSBAQAotICAg ICA+Pj4gaW1wb3J0IG51bXB5IGFzIG5wCi0gICAgID4+PiBmcm9tIHBob3R1dGlscyBpbXBvcnQg U2VnbWVudGF0aW9uSW1hZ2UsIHNvdXJjZV9wcm9wZXJ0aWVzCi0gICAgID4+PiBpbWFnZSA9IG5w LmFyYW5nZSgxNi4pLnJlc2hhcGUoNCwgNCkKLS0gICAgPj4+IHByaW50KGltYWdlKQotLSAgICBb WyAgMC4gICAxLiAgIDIuICAgMy5dCi0tICAgICBbICA0LiAgIDUuICAgNi4gICA3Ll0KLS0gICAg IFsgIDguICAgOS4gIDEwLiAgMTEuXQotLSAgICAgWyAxMi4gIDEzLiAgMTQuICAxNS5dXQotKyAg ICA+Pj4gcHJpbnQoaW1hZ2UpICAjIGRvY3Rlc3Q6ICtTS0lQCi0rICAgIFtbIDAuICAxLiAgMi4g IDMuXQotKyAgICAgWyA0LiAgNS4gIDYuICA3Ll0KLSsgICAgIFsgOC4gIDkuIDEwLiAxMS5dCi0r ICAgICBbMTIuIDEzLiAxNC4gMTUuXV0KLSAgICAgPj4+IHNlZ20gPSBTZWdtZW50YXRpb25JbWFn ZShbWzEsIDEsIDAsIDBdLAotICAgICAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICBbMSwg MCwgMCwgMl0sCi0gICAgIC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgIFswLCAwLCAyLCAy XSwKLUBAIC0xMTc5LDExICsxMTc5LDExIEBACi0gICAgID4+PiBwcm9wc1swXS5pZCAgICAjIGlk IGNvcnJlc3BvbmRzIHRvIHNlZ21lbnQgbGFiZWwgbnVtYmVyCi0gICAgIDEKLSAgICAgPj4+IHBy b3BzWzBdLmNlbnRyb2lkICAgICMgZG9jdGVzdDogK0ZMT0FUX0NNUAotLSAgICA8UXVhbnRpdHkg WyAwLjgsIDAuMl0gcGl4PgotKyAgICA8UXVhbnRpdHkgWzAuOCwgMC4yXSBwaXg+Ci0gICAgID4+ PiBwcm9wc1swXS5zb3VyY2Vfc3VtICAgICMgZG9jdGVzdDogK0ZMT0FUX0NNUAotICAgICA1LjAK LSAgICAgPj4+IHByb3BzWzBdLmFyZWEgICAgIyBkb2N0ZXN0OiArRkxPQVRfQ01QCi0tICAgIDxR dWFudGl0eSAzLjAgcGl4Mj4KLSsgICAgPFF1YW50aXR5IDMuIHBpeDI+Ci0gICAgID4+PiBwcm9w c1swXS5tYXhfdmFsdWUgICAgIyBkb2N0ZXN0OiArRkxPQVRfQ01QCi0gICAgIDQuMAotIAotQEAg LTExOTMsMTEgKzExOTMsMTEgQEAKLSAgICAgPj4+IHByb3BzWzFdLmlkICAgICMgaWQgY29ycmVz cG9uZHMgdG8gc2VnbWVudCBsYWJlbCBudW1iZXIKLSAgICAgMgotICAgICA+Pj4gcHJvcHNbMV0u Y2VudHJvaWQgICAgIyBkb2N0ZXN0OiArRkxPQVRfQ01QCi0tICAgIDxRdWFudGl0eSBbIDIuMzYz NjM2MzYsIDIuMDkwOTA5MDldIHBpeD4KLSsgICAgPFF1YW50aXR5IFsyLjM2MzYzNjM2LCAyLjA5 MDkwOTA5XSBwaXg+Ci0gICAgID4+PiBwcm9wc1sxXS5wZXJpbWV0ZXIgICAgIyBkb2N0ZXN0OiAr RkxPQVRfQ01QCi0tICAgIDxRdWFudGl0eSA1LjQxNDIxMzU2MjM3MzA5NSBwaXg+Ci0rICAgIDxR dWFudGl0eSA1LjQxNDIxMzU2IHBpeD4KLSAgICAgPj4+IHByb3BzWzFdLm9yaWVudGF0aW9uICAg ICMgZG9jdGVzdDogK0ZMT0FUX0NNUAotLSAgICA8UXVhbnRpdHkgLTAuNzQxNzU5MzA2OTIyNzE3 NiByYWQ+Ci0rICAgIDxRdWFudGl0eSAtMC43NDE3NTkzMSByYWQ+Ci0gICAgICIiIgotIAotICAg ICBpZiBub3QgaXNpbnN0YW5jZShzZWdtZW50X2ltZywgU2VnbWVudGF0aW9uSW1hZ2UpOgotQEAg LTE0MTIsMTEgKzE0MTIsMTEgQEAKLSAgICAgICAgID4+PiBpbXBvcnQgbnVtcHkgYXMgbnAKLSAg ICAgICAgID4+PiBmcm9tIHBob3R1dGlscyBpbXBvcnQgc291cmNlX3Byb3BlcnRpZXMKLSAgICAg ICAgID4+PiBpbWFnZSA9IG5wLmFyYW5nZSgxNi4pLnJlc2hhcGUoNCwgNCkKLS0gICAgICAgID4+ PiBwcmludChpbWFnZSkKLS0gICAgICAgIFtbICAwLiAgIDEuICAgMi4gICAzLl0KLS0gICAgICAg IFsgIDQuICAgNS4gICA2LiAgIDcuXQotLSAgICAgICAgWyAgOC4gICA5LiAgMTAuICAxMS5dCi0t ICAgICAgICBbIDEyLiAgMTMuICAxNC4gIDE1Ll1dCi0rICAgICAgICA+Pj4gcHJpbnQoaW1hZ2Up ICAjIGRvY3Rlc3Q6ICtTS0lQCi0rICAgICAgICBbWyAwLiAgMS4gIDIuICAzLl0KLSsgICAgICAg ICBbIDQuICA1LiAgNi4gIDcuXQotKyAgICAgICAgIFsgOC4gIDkuIDEwLiAxMS5dCi0rICAgICAg ICAgWzEyLiAxMy4gMTQuIDE1Ll1dCi0gICAgICAgICA+Pj4gc2VnbSA9IFNlZ21lbnRhdGlvbklt YWdlKFtbMSwgMSwgMCwgMF0sCi0gICAgICAgICAuLi4gICAgICAgICAgICAgICAgICAgICAgICAg ICBbMSwgMCwgMCwgMl0sCi0gICAgICAgICAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICBb MCwgMCwgMiwgMl0sCi1kaWZmIC1OYXVyIHBob3R1dGlscy0wLjQvcGhvdHV0aWxzL3V0aWxzL2lu dGVycG9sYXRpb24ucHkgcGhvdHV0aWxzLTAuNC5maXhlZC9waG90dXRpbHMvdXRpbHMvaW50ZXJw b2xhdGlvbi5weQotLS0tIHBob3R1dGlscy0wLjQvcGhvdHV0aWxzL3V0aWxzL2ludGVycG9sYXRp b24ucHkJMjAxNy0xMC0zMCAxNzoxNDoyOC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBwaG90dXRpbHMt MC40LmZpeGVkL3Bob3R1dGlscy91dGlscy9pbnRlcnBvbGF0aW9uLnB5CTIwMTgtMDItMTQgMDM6 NTY6MDcuMDYyNTIyNjAzICswMTAwCi1AQCAtOTUsMTUgKzk1LDE1IEBACi0gICAgICAgICA+Pj4g ZigwLjQpICAgICMgZG9jdGVzdDogK0ZMT0FUX0NNUAotICAgICAgICAgMC4zODg2MjQyNDA0MzIy ODg1NQotICAgICAgICAgPj4+IG5wLnNpbigwLjQpICAgIyBkb2N0ZXN0OiArRkxPQVRfQ01QCi0t ICAgICAgICAwLjM4OTQxODM0MjMwODY1MDUyCi0rICAgICAgICAwLjM4OTQxODM0MjMwODY1MDUK LSAKLSAgICAgICAgID4+PiB4aSA9IG5wLnJhbmRvbS5yYW5kb20oNCkKLS0gICAgICAgID4+PiB4 aQotLSAgICAgICAgYXJyYXkoWyAwLjUxMzEyODE1LCAgMC42NjY2MjQ1NSwgIDAuMTA1OTA4NDks ICAwLjEzMDg5NDk1XSkKLS0gICAgICAgID4+PiBmKHhpKSAgICAjIGRvY3Rlc3Q6ICtGTE9BVF9D TVAKLS0gICAgICAgIGFycmF5KFsgMC40OTA4NjQyMywgIDAuNjI2NDc4NjIsICAwLjEwNTY4NTQg LCAgMC4xMzA0ODMzNV0pCi0tICAgICAgICA+Pj4gbnAuc2luKHhpKQotLSAgICAgICAgYXJyYXko WyAwLjQ5MDkwNDkzLCAgMC42MTgzMzY3ICwgIDAuMTA1NzEwNjEsICAwLjEzMDUyMTQ5XSkKLSsg ICAgICAgID4+PiB4aSAgIyBkb2N0ZXN0OiArRkxPQVRfQ01QCi0rICAgICAgICBhcnJheShbMC41 MTMxMjgxNSwgMC42NjY2MjQ1NSwgMC4xMDU5MDg0OSwgMC4xMzA4OTQ5NV0pCi0rICAgICAgICA+ Pj4gZih4aSkgICMgZG9jdGVzdDogK0ZMT0FUX0NNUAotKyAgICAgICAgYXJyYXkoWzAuNDkwODY0 MjMsIDAuNjI2NDc4NjIsIDAuMTA1Njg1NCAsIDAuMTMwNDgzMzVdKQotKyAgICAgICAgPj4+IG5w LnNpbih4aSkgICMgZG9jdGVzdDogK0ZMT0FUX0NNUAotKyAgICAgICAgYXJyYXkoWzAuNDkwOTA0 OTMsIDAuNjE4MzM2NyAsIDAuMTA1NzEwNjEsIDAuMTMwNTIxNDldKQotIAotICAgICBOT1RFOiBJ biB0aGUgbGFzdCBleGFtcGxlLCBgYHhpYGAgbWF5IGJlIGEgYGBOeDFgYCBhcnJheSBpbnN0ZWFk IG9mCi0gICAgIGEgMUQgdmVjdG9yLgotQEAgLTExMywxMCArMTEzLDEwIEBACi0gICAgICAgICA+ Pj4gcG9zID0gbnAucmFuZG9tLnJhbmQoMTAwMCwgMikKLSAgICAgICAgID4+PiB2YWwgPSBucC5z aW4ocG9zWzosIDBdICsgcG9zWzosIDFdKQotICAgICAgICAgPj4+IGYgPSBpZHcocG9zLCB2YWwp Ci0tICAgICAgICA+Pj4gZihbMC41LCAwLjZdKSAgICAgIyBkb2N0ZXN0OiArRkxPQVRfQ01QCi0t ICAgICAgICAwLjg5MzEyNjQ5NTg3NDA1NjU3Ci0tICAgICAgICA+Pj4gbnAuc2luKDAuNSArIDAu NikKLS0gICAgICAgIDAuODkxMjA3MzYwMDYxNDM1NDIKLSsgICAgICAgID4+PiBmKFswLjUsIDAu Nl0pICAjIGRvY3Rlc3Q6ICtGTE9BVF9DTVAKLSsgICAgICAgIDAuODkzMTI2NDk1ODc0MDU2Nwot KyAgICAgICAgPj4+IG5wLnNpbigwLjUgKyAwLjYpICAjIGRvY3Rlc3Q6ICtGTE9BVF9DTVAKLSsg ICAgICAgIDAuODkxMjA3MzYwMDYxNDM1NAotICAgICAiIiIKLSAKLSAgICAgZGVmIF9faW5pdF9f KHNlbGYsIGNvb3JkaW5hdGVzLCB2YWx1ZXMsIHdlaWdodHM9Tm9uZSwgbGVhZnNpemU9MTApOgoK ZGlmZiAtLWdpdCBhL3B5dGhvbi1waG90dXRpbHMuc3BlYyBiL3B5dGhvbi1waG90dXRpbHMuc3Bl YwppbmRleCAyNTI2YTg3Li45ZTFlNjVjIDEwMDY0NAotLS0gYS9weXRob24tcGhvdHV0aWxzLnNw ZWMKKysrIGIvcHl0aG9uLXBob3R1dGlscy5zcGVjCkBAIC0xLDggKzEsOCBAQAogJWdsb2JhbCBz cmNuYW1lIHBob3R1dGlscwogCiBOYW1lOiBweXRob24tJXtzcmNuYW1lfQotVmVyc2lvbjogMC41 Ci1SZWxlYXNlOiAyJXs/ZGlzdH0KK1ZlcnNpb246IDAuNgorUmVsZWFzZTogMSV7P2Rpc3R9CiBT dW1tYXJ5OiBBc3Ryb3B5IGFmZmlsaWF0ZWQgcGFja2FnZSBmb3IgaW1hZ2UgcGhvdG9tZXRyeSB0 YXNrcwogTGljZW5zZTogQlNECiAKQEAgLTc0LDggKzc0LDcgQEAgZXhwb3J0IFhER19DT05GSUdf SE9NRT1gcHdkYAogZXhwb3J0IFBZVEhPTkRPTlRXUklURUJZVEVDT0RFPTEKIAogcHVzaGQgJXti dWlsZHJvb3R9LyV7cHl0aG9uM19zaXRlYXJjaH0KLSMgVGVzdCB0ZXN0X291dGxpbmVfc2VnbWVu dHMgYW5kIFRlc3REZWJsZW5kU291cmNlcyBmYWlsIGFzIHdlIGRvbid0IGhhdmUgZGFzayBpbiBG ZWRvcmEKLXB5LnRlc3QtJXtweXRob24zX3ZlcnNpb259IC1rICJub3QgKHRlc3Rfb3V0bGluZV9z ZWdtZW50cyBvciBUZXN0RGVibGVuZFNvdXJjZXMpIiAle3NyY25hbWV9CitweS50ZXN0LSV7cHl0 aG9uM192ZXJzaW9ufSBwaG90dXRpbHMKIHJtIC1yZiAucHl0ZXN0X2NhY2hlCiBwb3BkCiAKQEAg LTg3LDYgKzg2LDkgQEAgcG9wZAogJXtweXRob24zX3NpdGVhcmNofS8le3NyY25hbWV9CiAKICVj aGFuZ2Vsb2cKKyogU3VuIEFwciAyOCAyMDE5IENocmlzdGlhbiBEZXJzY2ggPGx1cGluaXhAbWFp bGJveC5vcmc+IC0gMC42LTEKKy0gbmV3IHZlcnNpb24KKwogKiBTYXQgRmViIDAyIDIwMTkgRmVk b3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJlbGVuZ0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSAwLjUt MgogLSBSZWJ1aWx0IGZvciBodHRwczovL2ZlZG9yYXByb2plY3Qub3JnL3dpa2kvRmVkb3JhXzMw X01hc3NfUmVidWlsZAogCgpkaWZmIC0tZ2l0IGEvc291cmNlcyBiL3NvdXJjZXMKaW5kZXggYTVl YTgwZi4uMWZhOTUyYyAxMDA2NDQKLS0tIGEvc291cmNlcworKysgYi9zb3VyY2VzCkBAIC0xICsx IEBACi1TSEE1MTIgKHBob3R1dGlscy0wLjUudGFyLmd6KSA9IDJlOWYyMzNjNjIzNzI1YWJkN2E4 ZTNkOTkxYzJjMDY1ZjdiZTA5ZmRhNTQ0YzQ0YzY5MTQ5YzZlYjA0ZGY0YWMxZWVmNGNmMGM4Mzdi MWMxNTk0NDVmMTcyZGEyZmQyOWVhZmExMjdhYmU3YmIyMjlkNmIwODUxYTRkY2Y1YjY0CitTSEE1 MTIgKHBob3R1dGlscy0wLjYudGFyLmd6KSA9IGZiMjU4ODE0Y2Q2ZWQxMzM3ZTZmM2Y0MDU0ODI4 Yjk4ZmM0NTBlMWY4MmQwNDVmY2RjN2JiMmM1M2QxNGRlYjMxYWVjZjIyOWJkZjU2NTYwZjlkYzVk OTgwNDJhODdjMTRiYmVkZDZlYzFhNWNiMjJjMWQxOGYyMGI4ODA4MmVjCg==