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: Martin Stransky To: git-commits@fedoraproject.org Subject: [rpms/firefox] f43: Update to 165.0.1 Date: Wed, 23 Sep 2026 08:00:59 GMT Message-ID: <179015045904.1.3081640528509353761.rpms-firefox-c7b1463f3d18@fedoraproject.org> List-ID: X-Git-Repo: rpms/firefox X-Git-Branch: f43 X-Git-Rev: c7b1463f3d18be488b2c3a55f828ed8e65265046 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZmlyZWZveApCcmFu Y2ggOiBmNDMKQ29tbWl0IDogYzdiMTQ2M2YzZDE4YmU0ODhiMmMzYTU1ZjgyOGVkOGU2NTI2NTA0 NgpBdXRob3IgOiBNYXJ0aW4gU3RyYW5za3kgPHN0cmFuc2t5QHJlZGhhdC5jb20+CkRhdGUgICA6 IDIwMjYtMDktMjNUMTA6MDA6MTcrMDI6MDAKU3RhdHMgIDogKzkzNi8tMTA4IGluIDYgZmlsZShz KQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2ZpcmVmb3gvYy9j N2IxNDYzZjNkMThiZTQ4OGIyYzNhNTVmODI4ZWQ4ZTY1MjY1MDQ2P2JyYW5jaD1mNDMKCkxvZzoK VXBkYXRlIHRvIDE2NS4wLjEKCi0tLQpkaWZmIC0tZ2l0IGEvLmdpdGlnbm9yZSBiLy5naXRpZ25v cmUKaW5kZXggYWJhZWYyMy4uNWQwMmY4NyAxMDA2NDQKLS0tIGEvLmdpdGlnbm9yZQorKysgYi8u Z2l0aWdub3JlCkBAIC03OTksMyArNzk5LDUgQEAgZmlyZWZveC0zLjYuNC5zb3VyY2UudGFyLmJ6 MgogL2ZpcmVmb3gtMTU1LjAuMS5zb3VyY2UudGFyLnh6CiAvZmlyZWZveC0xNTYuMC5zb3VyY2Uu dGFyLnh6CiAvZmlyZWZveC1sYW5ncGFja3MtMTU2LjAtMjAyNjA5MTAudGFyLnh6CisvZmlyZWZv eC0xNTYuMC4xLnNvdXJjZS50YXIueHoKKy9maXJlZm94LWxhbmdwYWNrcy0xNTYuMC4xLTIwMjYw OTIzLnRhci54egoKZGlmZiAtLWdpdCBhL0QzMjY4NDAuMTc4OTczMjcwMy5kaWZmIGIvRDMyNjg0 MC4xNzg5NzMyNzAzLmRpZmYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ5OWMyNWQu LjAwMDAwMDAKLS0tIGEvRDMyNjg0MC4xNzg5NzMyNzAzLmRpZmYKKysrIC9kZXYvbnVsbApAQCAt MSwxMDAgKzAsMCBAQAotZGlmZiAtLWdpdCBhL3dpZGdldC9ndGsvbnNXaW5kb3cuaCBiL3dpZGdl dC9ndGsvbnNXaW5kb3cuaAotLS0tIGEvd2lkZ2V0L2d0ay9uc1dpbmRvdy5oCi0rKysgYi93aWRn ZXQvZ3RrL25zV2luZG93LmgKLUBAIC0xOTksMTIgKzE5OSwxMCBAQAotICAgYm9vbCBJc0VuYWJs ZWQoKSBjb25zdCBvdmVycmlkZTsKLSAKLSAgIG5zU2l6ZU1vZGUgR2V0U2l6ZU1vZGUoKSBjb25z dCB7IHJldHVybiBtU2l6ZU1vZGU7IH0KLSAgIG5zU2l6ZU1vZGUgU2l6ZU1vZGUoKSBvdmVycmlk ZSB7IHJldHVybiBtU2l6ZU1vZGU7IH0KLSAgIHZvaWQgU2V0U2l6ZU1vZGUobnNTaXplTW9kZSBh TW9kZSkgb3ZlcnJpZGU7Ci0tICB2b2lkIEdldFdvcmtzcGFjZUlEKG5zQVN0cmluZyYgd29ya3Nw YWNlSUQpIG92ZXJyaWRlOwotLSAgdm9pZCBNb3ZlVG9Xb3Jrc3BhY2UoY29uc3QgbnNBU3RyaW5n JiB3b3Jrc3BhY2VJRCkgb3ZlcnJpZGU7Ci0gICB2b2lkIEVuYWJsZShib29sIGFTdGF0ZSkgb3Zl cnJpZGU7Ci0gICB2b2lkIFNldEZvY3VzKFJhaXNlLCBtb3ppbGxhOjpkb206OkNhbGxlclR5cGUg YUNhbGxlclR5cGUpIG92ZXJyaWRlOwotICAgTGF5b3V0RGV2aWNlSW50UmVjdCBHZXRCb3VuZHMo KSBvdmVycmlkZTsKLSAgIExheW91dERldmljZUludFJlY3QgR2V0U2NyZWVuQm91bmRzKCkgb3Zl cnJpZGU7Ci0gICBEZXNrdG9wSW50UmVjdCBHZXRTY3JlZW5Cb3VuZHNVbnNjYWxlZCgpOwotZGlm ZiAtLWdpdCBhL3dpZGdldC9ndGsvbnNXaW5kb3cuY3BwIGIvd2lkZ2V0L2d0ay9uc1dpbmRvdy5j cHAKLS0tLSBhL3dpZGdldC9ndGsvbnNXaW5kb3cuY3BwCi0rKysgYi93aWRnZXQvZ3RrL25zV2lu ZG93LmNwcAotQEAgLTEyMDIsMTggKzEyMDIsMTAgQEAKLSAKLSAgIGNvbnN0IGF1dG8mIGRlc2t0 b3AgPSBHZXREZXNrdG9wRW52aXJvbm1lbnRJZGVudGlmaWVyKCk7Ci0gICByZXR1cm4gZGVza3Rv cC5FcXVhbHNMaXRlcmFsKCJic3B3bSIpIHx8IGRlc2t0b3AuRXF1YWxzTGl0ZXJhbCgiaTMiKTsK LSB9Ci0gCi0tdm9pZCBuc1dpbmRvdzo6R2V0V29ya3NwYWNlSUQobnNBU3RyaW5nJiB3b3Jrc3Bh Y2VJRCkgewotLSAgd29ya3NwYWNlSUQuVHJ1bmNhdGUoKTsKLS19Ci0tCi0tdm9pZCBuc1dpbmRv dzo6TW92ZVRvV29ya3NwYWNlKGNvbnN0IG5zQVN0cmluZyYgd29ya3NwYWNlSURTdHIpIHsKLS0g IExPRygiICBNb3ZlVG9Xb3Jrc3BhY2UgZGlzYWJsZWQsIHF1aXQiKTsKLS19Ci0tCi0gdm9pZCBu c1dpbmRvdzo6U2V0VXNlclRpbWVBbmRTdGFydHVwVG9rZW5Gb3JBY3RpdmF0ZWRXaW5kb3coKSB7 Ci0gICBuc0dUS1Rvb2xraXQqIHRvb2xraXQgPSBuc0dUS1Rvb2xraXQ6OkdldFRvb2xraXQoKTsK LSAgIGlmICghdG9vbGtpdCkgewotICAgICByZXR1cm47Ci0gICB9Ci1kaWZmIC0tZ2l0IGEvd2lk Z2V0L2d0ay9uc1dpbmRvd1dheWxhbmQuaCBiL3dpZGdldC9ndGsvbnNXaW5kb3dXYXlsYW5kLmgK LS0tLSBhL3dpZGdldC9ndGsvbnNXaW5kb3dXYXlsYW5kLmgKLSsrKyBiL3dpZGdldC9ndGsvbnNX aW5kb3dXYXlsYW5kLmgKLUBAIC0xNCwxMiArMTQsMTIgQEAKLSAgIG5zV2luZG93V2F5bGFuZCgp OwotIAotICAgbnNXaW5kb3dXYXlsYW5kKiBBc1dheWxhbmQoKSBvdmVycmlkZSB7IHJldHVybiB0 aGlzOyB9Ci0gICBuc1dpbmRvdyogR2V0RWZmZWN0aXZlUGFyZW50KCkgY29uc3Q7Ci0gCi0tICB2 b2lkIEdldFdvcmtzcGFjZUlEKG5zQVN0cmluZyYgd29ya3NwYWNlSUQpIG92ZXJyaWRlOwotLSAg dm9pZCBNb3ZlVG9Xb3Jrc3BhY2UoY29uc3QgbnNBU3RyaW5nJiB3b3Jrc3BhY2VJRFN0cikgb3Zl cnJpZGU7Ci0rICB2b2lkIEdldFdvcmtzcGFjZUlEKG5zQVN0cmluZyYgYVdvcmtzcGFjZUlEKSBv dmVycmlkZTsKLSsgIHZvaWQgTW92ZVRvV29ya3NwYWNlKGNvbnN0IG5zQVN0cmluZyYgYVdvcmtz cGFjZUlEU3RyKSBvdmVycmlkZTsKLSAgIHZvaWQgUmVzdG9yZVhkZ1RvcGxldmVsKCk7Ci0gCi0g ICAvLyBVc2UgeGRnLWFjdGl2YXRpb24gcHJvdG9jb2wgdG8gdHJhbnNmZXIgZm9jdXMgZnJvbSBn Rm9jdXNXaW5kb3cuCi0gICB2b2lkIFRyYW5zZmVyRm9jdXNUbygpOwotICAgdm9pZCBGb2N1c1dh eWxhbmRXaW5kb3coY29uc3QgY2hhciogYVRva2VuSUQpOwotZGlmZiAtLWdpdCBhL3dpZGdldC9n dGsvbnNXaW5kb3dXYXlsYW5kLmNwcCBiL3dpZGdldC9ndGsvbnNXaW5kb3dXYXlsYW5kLmNwcAot LS0tIGEvd2lkZ2V0L2d0ay9uc1dpbmRvd1dheWxhbmQuY3BwCi0rKysgYi93aWRnZXQvZ3RrL25z V2luZG93V2F5bGFuZC5jcHAKLUBAIC0xMTYsMTUgKzExNiwxOSBAQAotICAgTE9HKCJuc1dpbmRv d1dheWxhbmQ6OkNyZWF0ZVJlc3RvcmVTZXNzaW9uKCkgSUQgJXMgcmVzdG9yZSAlZCB0b2tlbiAl cCIsCi0gICAgICAgbVdvcmtzcGFjZUlELmdldCgpLCBhUmVzdG9yZVdpbmRvdywgbVNlc3Npb25S ZXN0b3JlVG9rZW4pOwotICAgcmV0dXJuICEhbVNlc3Npb25SZXN0b3JlVG9rZW47Ci0gfQotIAot LXZvaWQgbnNXaW5kb3dXYXlsYW5kOjpHZXRXb3Jrc3BhY2VJRChuc0FTdHJpbmcmIHdvcmtzcGFj ZUlEKSB7Ci0rdm9pZCBuc1dpbmRvd1dheWxhbmQ6OkdldFdvcmtzcGFjZUlEKG5zQVN0cmluZyYg YVdvcmtzcGFjZUlEKSB7Ci0rICBpZiAoIW5zQXBwU2hlbGw6OklzU2Vzc2lvblJlc3RvcmVTdXBw b3J0ZWQoKSkgewotKyAgICBhV29ya3NwYWNlSUQuVHJ1bmNhdGUoKTsKLSsgICAgcmV0dXJuOwot KyAgfQotICAgaWYgKG1Xb3Jrc3BhY2VJRC5Jc0VtcHR5KCkpIHsKLSAgICAgbVdvcmtzcGFjZUlE ID0gR2VuZXJhdGVXb3Jrc3BhY2VJRCgpOwotICAgfQotLSAgd29ya3NwYWNlSUQgPSBOU19Db252 ZXJ0VVRGOHRvVVRGMTYobVdvcmtzcGFjZUlEKTsKLSsgIGFXb3Jrc3BhY2VJRCA9IE5TX0NvbnZl cnRVVEY4dG9VVEYxNihtV29ya3NwYWNlSUQpOwotIAotICAgTE9HKCJuc1dpbmRvd1dheWxhbmQ6 OkdldFdvcmtzcGFjZUlEKCkgSUQgJXMgdG9rZW4gJXAiLCBtV29ya3NwYWNlSUQuZ2V0KCksCi0g ICAgICAgbVNlc3Npb25SZXN0b3JlVG9rZW4pOwotIAotICAgaWYgKG1TZXNzaW9uUmVzdG9yZVRv a2VuKSB7Ci1AQCAtMTU2LDEyICsxNjAsMTUgQEAKLSAgICAgfQotICNlbmRpZgotICAgfQotIH0K LSAKLS12b2lkIG5zV2luZG93V2F5bGFuZDo6TW92ZVRvV29ya3NwYWNlKGNvbnN0IG5zQVN0cmlu ZyYgd29ya3NwYWNlSURTdHIpIHsKLS0gIG1Xb3Jrc3BhY2VJRCA9IE5TX0NvbnZlcnRVVEYxNnRv VVRGOCh3b3Jrc3BhY2VJRFN0cik7Ci0rdm9pZCBuc1dpbmRvd1dheWxhbmQ6Ok1vdmVUb1dvcmtz cGFjZShjb25zdCBuc0FTdHJpbmcmIGFXb3Jrc3BhY2VJRFN0cikgewotKyAgaWYgKCFuc0FwcFNo ZWxsOjpJc1Nlc3Npb25SZXN0b3JlU3VwcG9ydGVkKCkpIHsKLSsgICAgcmV0dXJuOwotKyAgfQot KyAgbVdvcmtzcGFjZUlEID0gTlNfQ29udmVydFVURjE2dG9VVEY4KGFXb3Jrc3BhY2VJRFN0cik7 Ci0gICBMT0coIm5zV2luZG93V2F5bGFuZDo6TW92ZVRvV29ya3NwYWNlKCkgc2Vzc2lvbiBJRCAl cyAiCi0gICAgICAgIm1XYWl0aW5nVG9TZXNzaW9uUmVzdG9yZSAlZCBtTmVlZHNTaG93ICVkIiwK LSAgICAgICBtV29ya3NwYWNlSUQuZ2V0KCksIG1XYWl0aW5nVG9TZXNzaW9uUmVzdG9yZSwgbU5l ZWRzU2hvdyk7Ci0gICBpZiAoIW1XYWl0aW5nVG9TZXNzaW9uUmVzdG9yZSkgewotICAgICByZXR1 cm47Ci0KCmRpZmYgLS1naXQgYS9maXJlZm94LXVwZGF0ZS5zaCBiL2ZpcmVmb3gtdXBkYXRlLnNo Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmRlMWM0MzcKLS0tIC9kZXYvbnVs bAorKysgYi9maXJlZm94LXVwZGF0ZS5zaApAQCAtMCwwICsxLDkyNSBAQAorIyEvYmluL2Jhc2gK KyMKKyMgZmlyZWZveC11cGRhdGUuc2ggLSBVcGRhdGUgdGhlIEZpcmVmb3ggcGFja2FnZSBpbiBG ZWRvcmEgcmF3aGlkZSB0byBhIG5ldworIyAgICAgICAgICAgICAgICAgICAgIHVwc3RyZWFtIHZl cnNpb24uCisjCisjIFRoaXMgaXMgYSBzaGVsbCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgImZpcmVm b3gtdXBkYXRlIiBza2lsbAorIyAoc2VlIFVwZGF0ZS1TS0lMTC5tZCkuIEl0IHBlcmZvcm1zIHRo ZSBtZWNoYW5pY2FsIHN0ZXBzIG9mIHRoZSB1cGRhdGU7CisjIHN0ZXBzIHdoaWNoIG5lZWQgaHVt YW4ganVkZ2VtZW50IChwYXRjaCByZWJhc2luZywgYnVpbGQgZmFpbHVyZSBhbmFseXNpcykKKyMg c3RvcCB0aGUgc2NyaXB0IHdpdGggYSBkZXNjcmlwdGlvbiBvZiB3aGF0IGhhcyB0byBiZSBkb25l IG1hbnVhbGx5LgorIworIyBVc2FnZTogLi9maXJlZm94LXVwZGF0ZS5zaCA8dmVyc2lvbj4gW29w dGlvbnNdCisjCitzZXQgLW8gcGlwZWZhaWwKKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENv bmZpZ3VyYXRpb24gLyBkZWZhdWx0cworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0ZFRE9SQV9C QVNFX0RJUj0iJHtGRURPUkFfQkFTRV9ESVI6LSRQV0R9IgorQ0hBTkdFTE9HX0FVVEhPUj0iJHtD SEFOR0VMT0dfQVVUSE9SOi19IgorQVJDSElWRV9VUkw9Imh0dHBzOi8vYXJjaGl2ZS5tb3ppbGxh Lm9yZy9wdWIvZmlyZWZveC9jYW5kaWRhdGVzIgorCitORVdfVkVSU0lPTj0iIgorT0xEX1ZFUlNJ T049IiIKK0JVSUxEX1ZFUlNJT049IiIKK1BBQ0tBR0VfRElSPSIiCitMQU5HUEFDS19GSUxFPSIi CitORVdfVEFSQkFMTD0iIgorTlNTX1ZFUlNJT049IiIKK05TUFJfVkVSU0lPTj0iIgorT0xEX05T U19WRVJTSU9OPSIiCitPTERfTlNQUl9WRVJTSU9OPSIiCisKK1JFU1VNRV9GUk9NPTEKK0FTU1VN RV9ZRVM9MAorRFJPUF9QQVRDSEVTPSgpCitEUk9QUEVEX1BBVENIRVM9KCkKK0RPX0xPQ0FMX0JV SUxEPTAKK0RPX1BVU0g9MAorRE9fUk9MTEJBQ0s9MAorU1BFQ19OT1RFUz0oKQorCisjLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyMgT3V0cHV0IGhlbHBlcnMKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor CitpZiBbIC10IDEgXTsgdGhlbgorICAgIENfQk9MRD0kJ1xlWzFtJzsgQ19SRUQ9JCdcZVszMW0n OyBDX0dSRUVOPSQnXGVbMzJtJworICAgIENfWUVMTE9XPSQnXGVbMzNtJzsgQ19CTFVFPSQnXGVb MzRtJzsgQ19PRkY9JCdcZVswbScKK2Vsc2UKKyAgICBDX0JPTEQ9IiI7IENfUkVEPSIiOyBDX0dS RUVOPSIiOyBDX1lFTExPVz0iIjsgQ19CTFVFPSIiOyBDX09GRj0iIgorZmkKKworQ1VSUkVOVF9T VEVQPTAKKworc3RlcCgpIHsKKyAgICBDVVJSRU5UX1NURVA9IiQxIjsgc2hpZnQKKyAgICBwcmlu dGYgJ1xuJXM9PT4gU3RlcCAlczogJXMuLi4lc1xuJyAiJENfQk9MRCRDX0JMVUUiICIkQ1VSUkVO VF9TVEVQIiAiJCoiICIkQ19PRkYiCit9CisKK29rKCkgICB7IHByaW50ZiAnJXPinIUgJXMlc1xu JyAiJENfR1JFRU4iICIkKiIgIiRDX09GRiI7IH0KK2luZm8oKSB7IHByaW50ZiAnICAgJXNcbicg IiQqIjsgfQord2FybigpIHsgcHJpbnRmICclc+KaoO+4jyAgJXMlc1xuJyAiJENfWUVMTE9XIiAi JCoiICIkQ19PRkYiID4mMjsgfQorCitkaWUoKSB7CisgICAgcHJpbnRmICdcbiVz4p2MIEVSUk9S OiAlcyVzXG4nICIkQ19SRUQiICIkKiIgIiRDX09GRiIgPiYyCisgICAgaWYgWyAiJENVUlJFTlRf U1RFUCIgLWd0IDAgXTsgdGhlbgorICAgICAgICBwcmludGYgJyVzRml4IHRoZSBwcm9ibGVtIGFu ZCByZXN1bWUgd2l0aDogJXMgJXMgLS1yZXN1bWUgJXMlc1xuJyBcCisgICAgICAgICAgICAiJENf WUVMTE9XIiAiJDAiICIkTkVXX1ZFUlNJT04iICIkQ1VSUkVOVF9TVEVQIiAiJENfT0ZGIiA+JjIK KyAgICBmaQorICAgIGV4aXQgMQorfQorCitydW4oKSB7CisgICAgcHJpbnRmICclcyQgJXMlc1xu JyAiJENfQk9MRCIgIiQqIiAiJENfT0ZGIgorICAgICIkQCIKK30KKworIyBjb25maXJtICJxdWVz dGlvbiIgW2RlZmF1bHRfeWVzXQorY29uZmlybSgpIHsKKyAgICBsb2NhbCBxdWVzdGlvbj0iJDEi IGRlZmF1bHQ9IiR7Mjotbn0iIGFuc3dlcgorICAgIGlmIFsgIiRBU1NVTUVfWUVTIiAtZXEgMSBd OyB0aGVuCisgICAgICAgIGluZm8gIiRxdWVzdGlvbiAtPiB5ZXMgKC0teWVzKSIKKyAgICAgICAg cmV0dXJuIDAKKyAgICBmaQorICAgIGlmIFsgISAtdCAwIF07IHRoZW4KKyAgICAgICAgaW5mbyAi JHF1ZXN0aW9uIC0+ICRkZWZhdWx0IChub3QgYSB0ZXJtaW5hbCkiCisgICAgICAgIFsgIiRkZWZh dWx0IiA9ICJ5IiBdCisgICAgICAgIHJldHVybgorICAgIGZpCisgICAgd2hpbGUgdHJ1ZTsgZG8K KyAgICAgICAgaWYgWyAiJGRlZmF1bHQiID0gInkiIF07IHRoZW4KKyAgICAgICAgICAgIHJlYWQg LXIgLXAgIiRDX0JPTEQkcXVlc3Rpb24gW1kvbl0gJENfT0ZGIiBhbnN3ZXIKKyAgICAgICAgICAg IGFuc3dlcj0iJHthbnN3ZXI6LXl9IgorICAgICAgICBlbHNlCisgICAgICAgICAgICByZWFkIC1y IC1wICIkQ19CT0xEJHF1ZXN0aW9uIFt5L05dICRDX09GRiIgYW5zd2VyCisgICAgICAgICAgICBh bnN3ZXI9IiR7YW5zd2VyOi1ufSIKKyAgICAgICAgZmkKKyAgICAgICAgY2FzZSAiJHthbnN3ZXIs LH0iIGluCisgICAgICAgICAgICB5fHllcykgcmV0dXJuIDAgOzsKKyAgICAgICAgICAgIG58bm8p ICByZXR1cm4gMSA7OworICAgICAgICAgICAgKikgICAgIGVjaG8gIlBsZWFzZSBhbnN3ZXIgeWVz IG9yIG5vLiIgOzsKKyAgICAgICAgZXNhYworICAgIGRvbmUKK30KKworYXNrKCkgeworICAgIGxv Y2FsIHF1ZXN0aW9uPSIkMSIgYW5zd2VyCisgICAgWyAtdCAwIF0gfHwgZGllICJOZWVkIGFuIGFu c3dlciBmb3I6ICRxdWVzdGlvbiAocnVuIGludGVyYWN0aXZlbHkgb3IgcGFzcyBpdCBhcyBhbiBv cHRpb24pIgorICAgIHJlYWQgLXIgLXAgIiRDX0JPTEQkcXVlc3Rpb24gJENfT0ZGIiBhbnN3ZXIK KyAgICBwcmludGYgJyVzJyAiJGFuc3dlciIKK30KKworIyBTdGVwcyBiZWxvdyBSRVNVTUVfRlJP TSBhcmUgc2tpcHBlZC4KK3NraXBfc3RlcCgpIHsKKyAgICBbICIkMSIgLWx0ICIkUkVTVU1FX0ZS T00iIF0KK30KKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFVzYWdlCisjLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKwordXNhZ2UoKSB7CisgICAgY2F0IDw8RU9GCitVc2FnZTogJChiYXNlbmFtZSAi JDAiKSA8dmVyc2lvbj4gW29wdGlvbnNdCisKK1VwZGF0ZXMgdGhlIEZpcmVmb3ggcGFja2FnZSBp biBGZWRvcmEgcmF3aGlkZSB0byA8dmVyc2lvbj4gKGUuZy4gMTU3LjApLgorCitPcHRpb25zOgor ICAtLXJlc3VtZSBOICAgICAgICAgIFNraXAgdG8gc3RlcCBOICgxLTE0KSwgcmVhZGluZyBjdXJy ZW50IG9uLWRpc2sgc3RhdGUKKyAgLS1idWlsZCBidWlsZE4gICAgICBVc2UgdGhpcyBNb3ppbGxh IGNhbmRpZGF0ZSBidWlsZCBpbnN0ZWFkIG9mIHRoZSBsYXRlc3QKKyAgLS1kaXIgUEFUSCAgICAg ICAgICBQYWNrYWdlIGRpcmVjdG9yeSAoZGVmYXVsdDogXCRQV0QgaWYgaXQgaG9sZHMgZmlyZWZv eC5zcGVjLAorICAgICAgICAgICAgICAgICAgICAgIG90aGVyd2lzZSBcJEZFRE9SQV9CQVNFX0RJ Ui9maXJlZm94KQorICAtZCwgLS1kcm9wLXBhdGNoIFAgIERyb3AgYSBwYXRjaCB0aGF0IGlzIG5v IGxvbmdlciBuZWVkZWQ6IHJlbW92ZXMgaXRzCisgICAgICAgICAgICAgICAgICAgICAgUGF0Y2hO Tk46IGFuZCAlcGF0Y2ggLVBOTk4gbGluZXMgZnJvbSBmaXJlZm94LnNwZWMgYW5kCisgICAgICAg ICAgICAgICAgICAgICAgZGVsZXRlcyB0aGUgZmlsZSBmcm9tIGdpdC4gUCBpcyB0aGUgcGF0Y2gg ZmlsZSBuYW1lIG9yCisgICAgICAgICAgICAgICAgICAgICAgaXRzIG51bWJlci4gTWF5IGJlIGdp dmVuIG1vcmUgdGhhbiBvbmNlLgorICAtLWxvY2FsICAgICAgICAgICAgIFJ1biAnZmVkcGtnIGxv Y2FsJyAoc3RlcCAxMik7IHRha2VzIDEtMiBob3VycworICAtLXB1c2ggICAgICAgICAgICAgIFB1 c2ggdG8gRmVkb3JhIGRpc3QtZ2l0IHdoZW4gZmluaXNoZWQgKHN0ZXAgMTQpCisgIC0teWVzICAg ICAgICAgICAgICAgQW5zd2VyIHllcyB0byBhbGwgcXVlc3Rpb25zIChub24taW50ZXJhY3RpdmUp CisgIC0tcm9sbGJhY2sgICAgICAgICAgRGlzY2FyZCB0aGUgaW4tcHJvZ3Jlc3MgdXBkYXRlIGFu ZCBjbGVhbiB1cCwgdGhlbiBleGl0CisgIC1oLCAtLWhlbHAgICAgICAgICAgU2hvdyB0aGlzIGhl bHAKKworRW52aXJvbm1lbnQ6CisgIEZFRE9SQV9CQVNFX0RJUiAgICAgQmFzZSBkaXJlY3Rvcnkg aG9sZGluZyB0aGUgZGlzdC1naXQgY2xvbmVzCisgIENIQU5HRUxPR19BVVRIT1IgICAgIk5hbWUg PGVtYWlsPiIgdXNlZCBmb3IgdGhlICVjaGFuZ2Vsb2cgZW50cnkKKworU3RlcHM6CisgICAxIEdl dCB2ZXJzaW9uIGluZm8gICAgICAgICAgOCBVcGxvYWQgbmV3IHNvdXJjZXMKKyAgIDIgU2V0IHVw IHBhY2thZ2UgZGlyZWN0b3J5ICA5IENoZWNrIGFuZCByZWJhc2UgcGF0Y2hlcyAobWFudWFsKQor ICAgMyBQdWxsIGxhdGVzdCByYXdoaWRlICAgICAgMTAgVmVyaWZ5IHBhdGNoZXMgd2l0aCBmZWRw a2cgcHJlcAorICAgNCBCdW1wIHZlcnNpb24gaW4gc3BlYyAgICAgMTEgRGV0ZWN0IE5TUy9OU1BS IHZlcnNpb25zIGZyb20gdGhlIHRhcmJhbGwKKyAgIDUgR2V0IE1vemlsbGEgYnVpbGQgbnVtYmVy IDEyIExvY2FsIGJ1aWxkIChvcHRpb25hbCkKKyAgIDYgRG93bmxvYWQgc291cmNlIHRhcmJhbGwg IDEzIENvbW1pdCB0aGUgdXBkYXRlCisgICA3IERvd25sb2FkIGxhbmdwYWNrcyAgICAgICAxNCBT dW1tYXJ5IGFuZCBwdXNoCisKK1RoZSBOU1MgYW5kIE5TUFIgcmVxdWlyZW1lbnRzIGFyZSBhbHdh eXMgdGFrZW4gZnJvbSB0aGUgRmlyZWZveCBzb3VyY2VzIGluCitzdGVwIDExIGFuZCB3cml0dGVu IHRvIGZpcmVmb3guc3BlYyAtIHRoZSBzY3JpcHQgbmV2ZXIgYXNrcyBmb3IgdGhlbS4KK0VPRgor fQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQXJndW1lbnQgcGFyc2luZworIy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisKK3doaWxlIFsgJCMgLWd0IDAgXTsgZG8KKyAgICBjYXNlICIkMSIgaW4K KyAgICAgICAgLS1yZXN1bWUpICAgUkVTVU1FX0ZST009IiQyIjsgc2hpZnQgMiA7OworICAgICAg ICAtLXJlc3VtZT0qKSBSRVNVTUVfRlJPTT0iJHsxIyo9fSI7IHNoaWZ0IDs7CisgICAgICAgIC0t YnVpbGQpICAgIEJVSUxEX1ZFUlNJT049IiQyIjsgc2hpZnQgMiA7OworICAgICAgICAtLWJ1aWxk PSopICBCVUlMRF9WRVJTSU9OPSIkezEjKj19Ijsgc2hpZnQgOzsKKyAgICAgICAgLS1kaXIpICAg ICAgUEFDS0FHRV9ESVI9IiQyIjsgc2hpZnQgMiA7OworICAgICAgICAtLWRpcj0qKSAgICBQQUNL QUdFX0RJUj0iJHsxIyo9fSI7IHNoaWZ0IDs7CisgICAgICAgIC1kfC0tZHJvcC1wYXRjaCkgRFJP UF9QQVRDSEVTKz0oIiQyIik7IHNoaWZ0IDIgOzsKKyAgICAgICAgLWQ9KikgICAgICAgICAgICBE Uk9QX1BBVENIRVMrPSgiJHsxIyo9fSIpOyBzaGlmdCA7OworICAgICAgICAtLWRyb3AtcGF0Y2g9 KikgIERST1BfUEFUQ0hFUys9KCIkezEjKj19Iik7IHNoaWZ0IDs7CisgICAgICAgIC0tbG9jYWwp ICAgIERPX0xPQ0FMX0JVSUxEPTE7IHNoaWZ0IDs7CisgICAgICAgIC0tcHVzaCkgICAgIERPX1BV U0g9MTsgc2hpZnQgOzsKKyAgICAgICAgLS15ZXN8LXkpICAgQVNTVU1FX1lFUz0xOyBzaGlmdCA7 OworICAgICAgICAtLXJvbGxiYWNrKSBET19ST0xMQkFDSz0xOyBzaGlmdCA7OworICAgICAgICAt aHwtLWhlbHApICB1c2FnZTsgZXhpdCAwIDs7CisgICAgICAgIC0qKSAgICAgICAgIHVzYWdlID4m MjsgZGllICJVbmtub3duIG9wdGlvbjogJDEiIDs7CisgICAgICAgICopCisgICAgICAgICAgICBb IC16ICIkTkVXX1ZFUlNJT04iIF0gfHwgZGllICJVbmV4cGVjdGVkIGFyZ3VtZW50OiAkMSIKKyAg ICAgICAgICAgIE5FV19WRVJTSU9OPSIkMSI7IHNoaWZ0IDs7CisgICAgZXNhYworZG9uZQorCitj YXNlICIkUkVTVU1FX0ZST00iIGluCisgICAgJyd8KlshMC05XSopIGRpZSAiLS1yZXN1bWUgbmVl ZHMgYSBzdGVwIG51bWJlciAoMS0xNCkiIDs7Citlc2FjCitbICIkUkVTVU1FX0ZST00iIC1nZSAx IF0gJiYgWyAiJFJFU1VNRV9GUk9NIiAtbGUgMTQgXSB8fCBkaWUgIi0tcmVzdW1lIG11c3QgYmUg MS0xNCIKKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFByZWZsaWdodAorIy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisKK2ZvciB0b29sIGluIGZlZHBrZyBycG1kZXYtYnVtcHNwZWMgZ2l0IHdnZXQg Y3VybCBweXRob24zIHJwbXNwZWM7IGRvCisgICAgY29tbWFuZCAtdiAiJHRvb2wiID4vZGV2L251 bGwgMj4mMSB8fCBkaWUgIlJlcXVpcmVkIHRvb2wgbm90IGZvdW5kOiAkdG9vbCIKK2RvbmUKKwor IyBFbnN1cmUgYSB1c2FibGUgRmVkb3JhIEtlcmJlcm9zIHRpY2tldCwgb3RoZXJ3aXNlIGZlZHBr ZyBjYWxscyBmYWlsIGxhdGVyIG9uLgorY2hlY2tfa2VyYmVyb3MoKSB7CisgICAgbG9jYWwgcHJp bmNpcGFsCisgICAgcHJpbmNpcGFsPSQoa2xpc3QgLWwgMj4vZGV2L251bGwgfCBhd2sgJy9GRURP UkFQUk9KRUNUXC5PUkcvIHtwcmludCAkMTsgZXhpdH0nKQorICAgIGlmIFsgLW4gIiRwcmluY2lw YWwiIF0gJiYga2xpc3QgLXMgMj4vZGV2L251bGw7IHRoZW4KKyAgICAgICAgaW5mbyAiS2VyYmVy b3MgcHJpbmNpcGFsOiAkcHJpbmNpcGFsIgorICAgICAgICByZXR1cm4gMAorICAgIGZpCisgICAg aWYgWyAtbiAiJHByaW5jaXBhbCIgXTsgdGhlbgorICAgICAgICBkaWUgIktlcmJlcm9zIHRpY2tl dCBmb3IgJHByaW5jaXBhbCBpcyBtaXNzaW5nIG9yIGV4cGlyZWQuIFJ1bjoga2luaXQgJHByaW5j aXBhbCIKKyAgICBmaQorICAgIGRpZSAiTm8gRkVET1JBUFJPSkVDVC5PUkcgS2VyYmVyb3MgdGlj a2V0IGZvdW5kLiBSdW46IGtpbml0IDx1c2VybmFtZT5ARkVET1JBUFJPSkVDVC5PUkciCit9CisK K3NwZWNfZ2V0KCkgeyAgIyBzcGVjX2dldCA8dGFnLW9yLW1hY3JvLXJlZ2V4cD4gLS0gZmlyc3Qg Y2FwdHVyZSBvZiB0aGUgdmFsdWUKKyAgICBncmVwIC1tMSAtb1AgIiQxIiBmaXJlZm94LnNwZWMg Mj4vZGV2L251bGwKK30KKworIyBkcm9wX3BhdGNoIDxwYXRjaC1maWxlLW5hbWUgfCBwYXRjaC1u dW1iZXI+CisjIFJlbW92ZXMgdGhlIFBhdGNoTk5OOiBkZWNsYXJhdGlvbiBhbmQgdGhlIG1hdGNo aW5nICclcGF0Y2ggLVBOTk4nIGxpbmUgZnJvbQorIyBmaXJlZm94LnNwZWMsIHRoZW4gZGVsZXRl cyB0aGUgcGF0Y2ggZmlsZSBmcm9tIGdpdC4KK2Ryb3BfcGF0Y2goKSB7CisgICAgbG9jYWwgd2Fu dD0iJDEiIG51bSBmaWxlCisgICAgaWYgW1sgIiR3YW50IiA9fiBeWzAtOV0rJCBdXTsgdGhlbgor ICAgICAgICBudW09IiR3YW50IgorICAgICAgICBmaWxlPSQoZ3JlcCAtbTEgLW9QICJeUGF0Y2gk e251bX06W1s6c3BhY2U6XV0qXEtcUysiIGZpcmVmb3guc3BlYykKKyAgICAgICAgWyAtbiAiJGZp bGUiIF0gfHwgZGllICJObyAnUGF0Y2gke251bX06JyBsaW5lIGluIGZpcmVmb3guc3BlYyIKKyAg ICBlbHNlCisgICAgICAgIGZpbGU9IiR3YW50IgorICAgICAgICBudW09JChhd2sgLXYgZj0iJGZp bGUiIFwKKyAgICAgICAgICAgICckMSB+IC9eUGF0Y2hbMC05XSo6JC8gJiYgJDIgPT0gZiB7IHN1 YigvXlBhdGNoLywiIiwkMSk7IHN1YigvOiQvLCIiLCQxKTsgcHJpbnQgJDE7IGV4aXQgfScgXAor ICAgICAgICAgICAgZmlyZWZveC5zcGVjKQorICAgICAgICBbIC1uICIkbnVtIiBdIHx8IGRpZSAi UGF0Y2ggJyRmaWxlJyBpcyBub3QgcmVmZXJlbmNlZCBieSBmaXJlZm94LnNwZWMiCisgICAgZmkK KworICAgIGluZm8gIkRyb3BwaW5nIFBhdGNoJHtudW19OiAkZmlsZSIKKworICAgIHNlZCAtaSAt RSAiL15QYXRjaCR7bnVtfTpbWzpzcGFjZTpdXS9kIiBmaXJlZm94LnNwZWMgXAorICAgICAgICB8 fCBkaWUgIkNhbm5vdCByZW1vdmUgdGhlIFBhdGNoJHtudW19OiBsaW5lIgorICAgIGdyZXAgLXFF ICJeUGF0Y2gke251bX06W1s6c3BhY2U6XV0iIGZpcmVmb3guc3BlYyBcCisgICAgICAgICYmIGRp ZSAiUGF0Y2gke251bX06IGlzIHN0aWxsIGluIGZpcmVmb3guc3BlYyIKKworICAgICMgJy1QNDQn IG11c3Qgbm90IG1hdGNoICctUDQ0MCcsIGhlbmNlIHRoZSB0cmFpbGluZyBib3VuZGFyeS4KKyAg ICBpZiBncmVwIC1xRSAiXiVwYXRjaFtbOnNwYWNlOl1dKy1QJHtudW19KFtbOnNwYWNlOl1dfCQp IiBmaXJlZm94LnNwZWM7IHRoZW4KKyAgICAgICAgc2VkIC1pIC1FICIvXiVwYXRjaFtbOnNwYWNl Ol1dKy1QJHtudW19KFtbOnNwYWNlOl1dfCQpL2QiIGZpcmVmb3guc3BlYyBcCisgICAgICAgICAg ICB8fCBkaWUgIkNhbm5vdCByZW1vdmUgdGhlICclcGF0Y2ggLVAke251bX0nIGxpbmUiCisgICAg ICAgIGdyZXAgLXFFICJeJXBhdGNoW1s6c3BhY2U6XV0rLVAke251bX0oW1s6c3BhY2U6XV18JCki IGZpcmVmb3guc3BlYyBcCisgICAgICAgICAgICAmJiBkaWUgIiclcGF0Y2ggLVAke251bX0nIGlz IHN0aWxsIGluIGZpcmVmb3guc3BlYyIKKyAgICBlbHNlCisgICAgICAgIHdhcm4gIk5vICclcGF0 Y2ggLVAke251bX0nIGxpbmUgZm91bmQgLSBvbmx5IHRoZSBkZWNsYXJhdGlvbiB3YXMgcmVtb3Zl ZC4iCisgICAgZmkKKworICAgIGlmIGdpdCBscy1maWxlcyAtLWVycm9yLXVubWF0Y2ggIiRmaWxl IiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKyAgICAgICAgcnVuIGdpdCBybSAtZiAtLSAiJGZpbGUi IHx8IGRpZSAiZ2l0IHJtIG9mICRmaWxlIGZhaWxlZCIKKyAgICBlbGlmIFsgLWYgIiRmaWxlIiBd OyB0aGVuCisgICAgICAgIGluZm8gIiRmaWxlIGlzIG5vdCB0cmFja2VkIGJ5IGdpdCwgcmVtb3Zp bmcgaXQgZnJvbSBkaXNrIgorICAgICAgICBybSAtZiAtLSAiJGZpbGUiCisgICAgZWxzZQorICAg ICAgICB3YXJuICIkZmlsZSBkb2VzIG5vdCBleGlzdCBvbiBkaXNrIC0gb25seSBmaXJlZm94LnNw ZWMgd2FzIGNoYW5nZWQuIgorICAgIGZpCisKKyAgICBEUk9QUEVEX1BBVENIRVMrPSgiJGZpbGUg KFBhdGNoJHtudW19KSIpCisgICAgU1BFQ19OT1RFUys9KCJEcm9wcGVkIFBhdGNoJHtudW19OiAk ZmlsZSIpCit9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBTdGVwIDE6IEdldCB2ZXJzaW9u IGluZm8KKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjIC0tZHJvcC1wYXRjaCB3aXRob3V0IGEg dmVyc2lvbiBvbmx5IGVkaXRzIHRoZSBzcGVjIGFuZCBnaXQgLSBubyB1cGRhdGUgaXMKKyMgc3Rh cnRlZCwgc28gbm8gdmVyc2lvbiBpcyBuZWVkZWQgb3IgYXNrZWQgZm9yLgorRFJPUF9PTkxZPTAK K2lmIFsgLXogIiRORVdfVkVSU0lPTiIgXSAmJiBbICIkeyNEUk9QX1BBVENIRVNbQF19IiAtZ3Qg MCBdOyB0aGVuCisgICAgRFJPUF9PTkxZPTEKK2ZpCisKK2lmIFsgLXogIiRORVdfVkVSU0lPTiIg XSAmJiBbICIkRFJPUF9PTkxZIiAtZXEgMCBdOyB0aGVuCisgICAgTkVXX1ZFUlNJT049JChhc2sg IldoYXQgRmlyZWZveCB2ZXJzaW9uIHdvdWxkIHlvdSBsaWtlIHRvIHVwZGF0ZSB0bz8gKGUuZy4g MTU3LjApIikKKyAgICBbIC1uICIkTkVXX1ZFUlNJT04iIF0gfHwgZGllICJObyB2ZXJzaW9uIGdp dmVuIgorZmkKKworaWYgWyAteiAiJFBBQ0tBR0VfRElSIiBdOyB0aGVuCisgICAgaWYgWyAtZiAi JFBXRC9maXJlZm94LnNwZWMiIF07IHRoZW4KKyAgICAgICAgUEFDS0FHRV9ESVI9IiRQV0QiCisg ICAgZWxzZQorICAgICAgICBQQUNLQUdFX0RJUj0iJEZFRE9SQV9CQVNFX0RJUi9maXJlZm94Igor ICAgIGZpCitmaQorCitpZiBbICIkRFJPUF9PTkxZIiAtZXEgMCBdOyB0aGVuCisgICAgc3RlcCAx ICJQcmVwYXJpbmcgdXBkYXRlIHRvIEZpcmVmb3ggJE5FV19WRVJTSU9OIgorICAgIGluZm8gIlBh Y2thZ2UgZGlyZWN0b3J5OiAkUEFDS0FHRV9ESVIiCisgICAgb2sgIlRhcmdldCB2ZXJzaW9uOiAk TkVXX1ZFUlNJT04iCitmaQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgU3RlcCAyOiBTZXQg dXAgdGhlIHBhY2thZ2UgZGlyZWN0b3J5CisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworaWYgWyAh IC1kICIkUEFDS0FHRV9ESVIiIF07IHRoZW4KKyAgICBzdGVwIDIgIkNsb25pbmcgdGhlIGZpcmVm b3ggcGFja2FnZSIKKyAgICBjaGVja19rZXJiZXJvcworICAgIGNkICIkRkVET1JBX0JBU0VfRElS IiB8fCBkaWUgIkNhbm5vdCBlbnRlciAkRkVET1JBX0JBU0VfRElSIgorICAgIHJ1biBmZWRwa2cg Y2xvbmUgZmlyZWZveCB8fCBkaWUgImZlZHBrZyBjbG9uZSBmaXJlZm94IGZhaWxlZCIKKyAgICBv ayAiQ2xvbmVkIGZpcmVmb3ggaW50byAkUEFDS0FHRV9ESVIiCitmaQorCitjZCAiJFBBQ0tBR0Vf RElSIiB8fCBkaWUgIkNhbm5vdCBlbnRlciAkUEFDS0FHRV9ESVIiCitbIC1mIGZpcmVmb3guc3Bl YyBdIHx8IGRpZSAiJFBBQ0tBR0VfRElSIGRvZXMgbm90IGNvbnRhaW4gZmlyZWZveC5zcGVjIgor CisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgRHJvcC1vbmx5IG1vZGU6IC1kLy0tZHJvcC1wYXRj aCBnaXZlbiB3aXRob3V0IGEgdmVyc2lvbgorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK2lmIFsg IiREUk9QX09OTFkiIC1lcSAxIF07IHRoZW4KKyAgICBwcmludGYgJ1xuJXM9PT4gRHJvcHBpbmcg JWQgcGF0Y2goZXMpIGZyb20gZmlyZWZveC5zcGVjIGluICVzJXNcbicgXAorICAgICAgICAiJENf Qk9MRCRDX0JMVUUiICIkeyNEUk9QX1BBVENIRVNbQF19IiAiJFBBQ0tBR0VfRElSIiAiJENfT0ZG IgorICAgIGZvciBwIGluICIke0RST1BfUEFUQ0hFU1tAXX0iOyBkbworICAgICAgICBkcm9wX3Bh dGNoICIkcCIKKyAgICBkb25lCisgICAgcHJpbnRmICdcbiAgRHJvcHBlZCBwYXRjaGVzOlxuJwor ICAgIHByaW50ZiAnICAgIC0gJXNcbicgIiR7RFJPUFBFRF9QQVRDSEVTW0BdfSIKKyAgICBwcmlu dGYgJ1xuJworICAgIG9rICJmaXJlZm94LnNwZWMgdXBkYXRlZCBhbmQgdGhlIHBhdGNoIGZpbGVz IHJlbW92ZWQgZnJvbSBnaXQuIgorICAgIGluZm8gIlJldmlldyB3aXRoICdnaXQgZGlmZicgYW5k IGNvbW1pdCB3aGVuIHlvdSBhcmUgcmVhZHkuIgorICAgIGV4aXQgMAorZmkKKworIy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisjIFJlcG9ydCB0aGUgc3RhdGUgb2YgdGhlIHdvcmtpbmcgdHJlZSBiZWZv cmUgdG91Y2hpbmcgYW55dGhpbmcKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjIFByaW50cyB0 aGUgbG9jYWwgY2hhbmdlcyBhcyBhIGRpZmY7IHJldHVybnMgMCB3aGVuIHRoZXJlIGFyZSBhbnku CisjIFVudHJhY2tlZCBmaWxlcyBhcmUgaWdub3JlZCBvbiBwdXJwb3NlIC0gYSBub3JtYWwgcnVu IGxlYXZlcyBkb3dubG9hZGVkCisjIHRhcmJhbGxzIGx5aW5nIGFyb3VuZCBhbmQgdGhvc2UgYXJl IG5vdCBpbnRlcmVzdGluZyBoZXJlLgorc2hvd19sb2NhbF9jaGFuZ2VzKCkgeworICAgIGdpdCBk aWZmIC0tcXVpZXQgSEVBRCAyPi9kZXYvbnVsbCAmJiByZXR1cm4gMQorICAgIHByaW50ZiAnJXNM b2NhbCBjaGFuZ2VzIGluICVzIChicmFuY2ggJXMpOiVzXG5cbicgXAorICAgICAgICAiJENfQk9M RCRDX1lFTExPVyIgIiRQQUNLQUdFX0RJUiIgIiQoZ2l0IGJyYW5jaCAtLXNob3ctY3VycmVudCki ICIkQ19PRkYiCisgICAgZ2l0IC0tbm8tcGFnZXIgZGlmZiBIRUFECisgICAgcHJpbnRmICdcbicK KyAgICBnaXQgLS1uby1wYWdlciBkaWZmIC0tc3RhdCBIRUFEIHwgdGFpbCAtMQorICAgIHJldHVy biAwCit9CisKKyMgRGVzdHJ1Y3RpdmUgcHJvbXB0cyBhcmUgbmV2ZXIgYXV0by1hbnN3ZXJlZCBi eSAtLXllczsgdGhleSBhbHdheXMgbmVlZCBhCisjIGRlbGliZXJhdGUga2V5c3Ryb2tlLiBBbnN3 ZXJpbmcgJ3EnIGFib3J0cyB0aGUgd2hvbGUgdXBkYXRlLgorY29uZmlybV9kZXN0cnVjdGl2ZSgp IHsKKyAgICBsb2NhbCBxdWVzdGlvbj0iJDEiIGFuc3dlcgorICAgIGlmIFsgISAtdCAwIF07IHRo ZW4KKyAgICAgICAgaW5mbyAiJHF1ZXN0aW9uIC0+IG5vIChub3QgYSB0ZXJtaW5hbCkiCisgICAg ICAgIHJldHVybiAxCisgICAgZmkKKyAgICB3aGlsZSB0cnVlOyBkbworICAgICAgICByZWFkIC1y IC1wICIkQ19CT0xEJENfUkVEJHF1ZXN0aW9uIFt5XWVzIC8gW05dbyAvIFtxXXVpdCAkQ19PRkYi IGFuc3dlcgorICAgICAgICBjYXNlICIke2Fuc3dlciwsfSIgaW4KKyAgICAgICAgICAgIHl8eWVz KSAgcmV0dXJuIDAgOzsKKyAgICAgICAgICAgIG58bm98IiIpIHJldHVybiAxIDs7CisgICAgICAg ICAgICBxfHF1aXQpCisgICAgICAgICAgICAgICAgcHJpbnRmICclc0Fib3J0ZWQgLSB0aGUgd29y a2luZyB0cmVlIGlzIGxlZnQgdW50b3VjaGVkLiVzXG4nIFwKKyAgICAgICAgICAgICAgICAgICAg IiRDX1lFTExPVyIgIiRDX09GRiIKKyAgICAgICAgICAgICAgICBleGl0IDAgOzsKKyAgICAgICAg ICAgICopIGVjaG8gIlBsZWFzZSBhbnN3ZXIgeSwgbiBvciBxLiIgOzsKKyAgICAgICAgZXNhYwor ICAgIGRvbmUKK30KKworIyBPZmZlciB0byB0aHJvdyB0aGUgbG9jYWwgY2hhbmdlcyBhd2F5IGJl Zm9yZSBzdGFydGluZyB0aGUgdXBkYXRlLgorb2ZmZXJfcmVzZXRfbG9jYWxfY2hhbmdlcygpIHsK KyAgICBpZiBbICIkUkVTVU1FX0ZST00iIC1ndCAxIF07IHRoZW4KKyAgICAgICAgd2FybiAiUmVz dW1pbmcgYXQgc3RlcCAkUkVTVU1FX0ZST00gLSB0aGUgY2hhbmdlcyBhYm92ZSBhcmUgcHJvYmFi bHkgeW91ciIKKyAgICAgICAgd2FybiAiaW4tcHJvZ3Jlc3MgdXBkYXRlLiBEaXNjYXJkaW5nIHRo ZW0gcmVzdGFydHMgdGhlIHVwZGF0ZSBmcm9tIHNjcmF0Y2guIgorICAgIGZpCisKKyAgICBwcmlu dGYgJ1xuJworICAgIGlmIGNvbmZpcm1fZGVzdHJ1Y3RpdmUgIkRpc2NhcmQgdGhlIGxvY2FsIGNo YW5nZXMgd2l0aCAnZ2l0IHJlc2V0IC0taGFyZCBIRUFEJz8iOyB0aGVuCisgICAgICAgIHJ1biBn aXQgcmVzZXQgLS1oYXJkIEhFQUQgfHwgZGllICJnaXQgcmVzZXQgLS1oYXJkIGZhaWxlZCIKKyAg ICAgICAgb2sgIkxvY2FsIGNoYW5nZXMgZGlzY2FyZGVkLiIKKyAgICBlbHNlCisgICAgICAgIGlu Zm8gIktlZXBpbmcgdGhlIGxvY2FsIGNoYW5nZXMuIgorICAgIGZpCit9CisKK3ByaW50ZiAnXG4n CitpZiBzaG93X2xvY2FsX2NoYW5nZXM7IHRoZW4KKyAgICBIQVZFX0xPQ0FMX0NIQU5HRVM9MQor ICAgIFsgIiRET19ST0xMQkFDSyIgLWVxIDEgXSB8fCBvZmZlcl9yZXNldF9sb2NhbF9jaGFuZ2Vz CisgICAgIyBSZS1jaGVjazogdGhlIG9mZmVyIGFib3ZlIG1heSBoYXZlIHJlc2V0IHRoZSB0cmVl LgorICAgIGdpdCBkaWZmIC0tcXVpZXQgSEVBRCAyPi9kZXYvbnVsbCAmJiBIQVZFX0xPQ0FMX0NI QU5HRVM9MAorZWxzZQorICAgIEhBVkVfTE9DQUxfQ0hBTkdFUz0wCisgICAgb2sgIldvcmtpbmcg dHJlZSBpcyBjbGVhbi4iCitmaQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgUm9sbGJhY2sg bW9kZQorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK2lmIFsgIiRET19ST0xMQkFDSyIgLWVxIDEg XTsgdGhlbgorICAgIHByaW50ZiAnXG4lc1JvbGxiYWNrOiBkaXNjYXJkaW5nIHRoZSBpbi1wcm9n cmVzcyB1cGRhdGUgbGlzdGVkIGFib3ZlJXNcbicgXAorICAgICAgICAiJENfQk9MRCRDX1lFTExP VyIgIiRDX09GRiIKKyAgICBjb25maXJtICJSZXNldCB0aGUgd29ya2luZyB0cmVlIHRvIG9yaWdp bi9yYXdoaWRlIGFuZCByZW1vdmUgZG93bmxvYWRlZCB0YXJiYWxscz8iIFwKKyAgICAgICAgfHwg ZGllICJSb2xsYmFjayBjYW5jZWxsZWQiCisgICAgcnVuIGdpdCBjaGVja291dCByYXdoaWRlIHx8 IGRpZSAiZ2l0IGNoZWNrb3V0IHJhd2hpZGUgZmFpbGVkIgorICAgIHJ1biBnaXQgcmVzZXQgLS1o YXJkIG9yaWdpbi9yYXdoaWRlIHx8IGRpZSAiZ2l0IHJlc2V0IGZhaWxlZCIKKyAgICBybSAtcmYg ImZpcmVmb3gtJE5FV19WRVJTSU9OLyIKKyAgICBybSAtZiAgImZpcmVmb3gtJE5FV19WRVJTSU9O LnNvdXJjZS50YXIueHoiCisgICAgcm0gLWYgIGZpcmVmb3gtbGFuZ3BhY2tzLSIkTkVXX1ZFUlNJ T04iLSoudGFyLnh6CisgICAgb2sgIlJvbGxiYWNrIGNvbXBsZXRlIC0gdGhlIHdvcmtpbmcgdHJl ZSBpcyBjbGVhbi4iCisgICAgZXhpdCAwCitmaQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMg U3RlcCAzOiBQdWxsIGxhdGVzdCByYXdoaWRlCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworaWYg ISBza2lwX3N0ZXAgMzsgdGhlbgorICAgIHN0ZXAgMyAiUHVsbGluZyBsYXRlc3QgcmF3aGlkZSIK KyAgICBpZiBbICIkSEFWRV9MT0NBTF9DSEFOR0VTIiAtZXEgMSBdOyB0aGVuCisgICAgICAgIHdh cm4gIlRoZSB3b3JraW5nIHRyZWUgaGFzIHVuY29tbWl0dGVkIGNoYW5nZXMgKHNob3duIGFib3Zl KSIKKyAgICAgICAgY29uZmlybSAiQ29udGludWUgYW55d2F5PyIgfHwgZGllICJBYm9ydGVkIC0g Y2xlYW4gdGhlIHdvcmtpbmcgdHJlZSBmaXJzdCIKKyAgICBmaQorICAgIGlmIGdpdCBzaG93LXJl ZiAtLXZlcmlmeSAtLXF1aWV0IHJlZnMvaGVhZHMvcmF3aGlkZTsgdGhlbgorICAgICAgICBydW4g Z2l0IGNoZWNrb3V0IHJhd2hpZGUgfHwgZGllICJnaXQgY2hlY2tvdXQgcmF3aGlkZSBmYWlsZWQi CisgICAgZWxzZQorICAgICAgICBydW4gZ2l0IGNoZWNrb3V0IC1iIHJhd2hpZGUgb3JpZ2luL3Jh d2hpZGUgfHwgZGllICJDYW5ub3QgY3JlYXRlIHRoZSByYXdoaWRlIGJyYW5jaCIKKyAgICBmaQor ICAgIHJ1biBnaXQgcHVsbCB8fCBkaWUgImdpdCBwdWxsIGZhaWxlZCIKKyAgICBvayAiV29ya2lu ZyB0cmVlIGlzIHVwIHRvIGRhdGUgb24gcmF3aGlkZS4iCitmaQorCisjLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyMgU3RlcCA0OiBCdW1wIHRoZSB2ZXJzaW9uIGluIHRoZSBTUEVDIGZpbGUKKyMtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorCitPTERfTlNTX1ZFUlNJT049JChzcGVjX2dldCAnXiVnbG9iYWxc cytuc3NfdmVyc2lvblxzK1xLXFMrJykKK09MRF9OU1BSX1ZFUlNJT049JChzcGVjX2dldCAnXiVn bG9iYWxccytuc3ByX3ZlcnNpb25ccytcS1xTKycpCisKK2lmICEgc2tpcF9zdGVwIDQ7IHRoZW4K KyAgICBzdGVwIDQgIkJ1bXBpbmcgdGhlIHZlcnNpb24gaW4gZmlyZWZveC5zcGVjIgorICAgIE9M RF9WRVJTSU9OPSQoc3BlY19nZXQgJ15WZXJzaW9uOlxzKlxLXFMrJykKKyAgICBbIC1uICIkT0xE X1ZFUlNJT04iIF0gfHwgZGllICJDYW5ub3QgcmVhZCBWZXJzaW9uOiBmcm9tIGZpcmVmb3guc3Bl YyIKKyAgICBpbmZvICJDdXJyZW50IHZlcnNpb246ICRPTERfVkVSU0lPTiIKKworICAgIERPX0JV TVA9MQorICAgIGlmIFsgIiRPTERfVkVSU0lPTiIgPSAiJE5FV19WRVJTSU9OIiBdOyB0aGVuCisg ICAgICAgIHdhcm4gImZpcmVmb3guc3BlYyBpcyBhbHJlYWR5IGF0ICRORVdfVkVSU0lPTiIKKyAg ICAgICAgaWYgY29uZmlybSAiQnVtcCBpdCBhZ2FpbiAoYWRkcyBhbm90aGVyIGNoYW5nZWxvZyBl bnRyeSk/IjsgdGhlbgorICAgICAgICAgICAgRE9fQlVNUD0xCisgICAgICAgIGVsc2UKKyAgICAg ICAgICAgIERPX0JVTVA9MAorICAgICAgICAgICAgaW5mbyAiS2VlcGluZyB0aGUgc3BlYyB2ZXJz aW9uIGFzIGlzLiIKKyAgICAgICAgZmkKKyAgICBmaQorCisgICAgaWYgWyAiJERPX0JVTVAiIC1l cSAxIF07IHRoZW4KKyAgICAgICAgYnVtcHNwZWNfYXJncz0oLS1uZXcgIiRORVdfVkVSU0lPTiIg LS1jb21tZW50ICJVcGRhdGUgdG8gbGF0ZXN0IHVwc3RyZWFtICgkTkVXX1ZFUlNJT04pIikKKyAg ICAgICAgWyAtbiAiJENIQU5HRUxPR19BVVRIT1IiIF0gJiYgYnVtcHNwZWNfYXJncys9KC0tdXNl cnN0cmluZyAiJENIQU5HRUxPR19BVVRIT1IiKQorICAgICAgICBydW4gcnBtZGV2LWJ1bXBzcGVj ICIke2J1bXBzcGVjX2FyZ3NbQF19IiBmaXJlZm94LnNwZWMgXAorICAgICAgICAgICAgfHwgZGll ICJycG1kZXYtYnVtcHNwZWMgZmFpbGVkIgorICAgIGZpCisKKyAgICBnb3RfdmVyc2lvbj0kKHNw ZWNfZ2V0ICdeVmVyc2lvbjpccypcS1xTKycpCisgICAgWyAiJGdvdF92ZXJzaW9uIiA9ICIkTkVX X1ZFUlNJT04iIF0gXAorICAgICAgICB8fCBkaWUgIlZlcnNpb246IGlzICRnb3RfdmVyc2lvbiwg ZXhwZWN0ZWQgJE5FV19WRVJTSU9OIC0gZml4IGZpcmVmb3guc3BlYyBtYW51YWxseSIKKworICAg IGdvdF9yZWxlYXNlPSQoc3BlY19nZXQgJ15SZWxlYXNlOlxzKlxLXFMrJykKKyAgICBpZiBbWyAi JGdvdF9yZWxlYXNlIiAhPSAxKiBdXTsgdGhlbgorICAgICAgICBpbmZvICJSZWxlYXNlIGlzICck Z290X3JlbGVhc2UnLCByZXNldHRpbmcgdG8gMSV7P3ByZV90YWd9JXs/ZGlzdH0iCisgICAgICAg IHNlZCAtaSAtRSAnc3xeUmVsZWFzZTooW1s6c3BhY2U6XV0qKS4qfFJlbGVhc2U6XDExJXs/cHJl X3RhZ30lez9kaXN0fXwnIGZpcmVmb3guc3BlYyBcCisgICAgICAgICAgICB8fCBkaWUgIkNhbm5v dCByZXNldCBSZWxlYXNlOiIKKyAgICBmaQorICAgIG9rICJmaXJlZm94LnNwZWMgaXMgYXQgJE5F V19WRVJTSU9OLCByZWxlYXNlICQoc3BlY19nZXQgJ15SZWxlYXNlOlxzKlxLXFMrJykuIgorZmkK KworIyBSZWNvdmVyIE9MRF9WRVJTSU9OIHdoZW4gcmVzdW1pbmcgcGFzdCBzdGVwIDQuCitpZiBb IC16ICIkT0xEX1ZFUlNJT04iIF07IHRoZW4KKyAgICBPTERfVkVSU0lPTj0kKGdpdCBzaG93IEhF QUQ6ZmlyZWZveC5zcGVjIDI+L2Rldi9udWxsIHwgZ3JlcCAtbTEgLW9QICdeVmVyc2lvbjpccypc S1xTKycpCisgICAgT0xEX1ZFUlNJT049IiR7T0xEX1ZFUlNJT046LXVua25vd259IgorZmkKKwor Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFN0ZXAgNTogR2V0IHRoZSBNb3ppbGxhIGJ1aWxkIHZl cnNpb24KKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitDQU5ESURBVEVTX1VSTD0iJEFSQ0hJVkVf VVJMLyRORVdfVkVSU0lPTi1jYW5kaWRhdGVzIgorCitpZiBbIC16ICIkQlVJTERfVkVSU0lPTiIg XTsgdGhlbgorICAgIHN0ZXAgNSAiTG9va2luZyB1cCB0aGUgbGF0ZXN0IE1vemlsbGEgY2FuZGlk YXRlIGJ1aWxkIgorICAgIGxpc3Rpbmc9JChjdXJsIC1mc1NMICIkQ0FORElEQVRFU19VUkwvIikg XAorICAgICAgICB8fCBkaWUgIkNhbm5vdCBsaXN0ICRDQU5ESURBVEVTX1VSTC8gLSBpcyAkTkVX X1ZFUlNJT04gcmVsZWFzZWQgeWV0PyIKKyAgICBCVUlMRF9WRVJTSU9OPSQoZ3JlcCAtb0UgJ2J1 aWxkWzAtOV0rLycgPDw8IiRsaXN0aW5nIiB8IHRyIC1kICcvJyB8IHNvcnQgLXUgLVYgfCB0YWls IC0xKQorICAgIFsgLW4gIiRCVUlMRF9WRVJTSU9OIiBdIHx8IGRpZSAiTm8gYnVpbGROIGRpcmVj dG9yeSBmb3VuZCBpbiAkQ0FORElEQVRFU19VUkwvIgorICAgIG9rICJMYXRlc3QgY2FuZGlkYXRl IGJ1aWxkOiAkQlVJTERfVkVSU0lPTiIKK2Vsc2UKKyAgICBpbmZvICJVc2luZyBjYW5kaWRhdGUg YnVpbGQ6ICRCVUlMRF9WRVJTSU9OIChmcm9tIC0tYnVpbGQpIgorZmkKKworQlVJTERfVVJMPSIk Q0FORElEQVRFU19VUkwvJEJVSUxEX1ZFUlNJT04iCisjIFRoZSBzb3VyY2UgdGFyYmFsbCBhbmQg aXRzIC5hc2MgbGl2ZSBpbiB0aGUgc291cmNlLyBzdWJkaXJlY3RvcnksIHRoZQorIyBsYW5ncGFj ayBYUElzIGRvIG5vdC4KK1NPVVJDRV9VUkw9IiRCVUlMRF9VUkwvc291cmNlIgorCisjLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyMgU3RlcCA2OiBEb3dubG9hZCB0aGUgRmlyZWZveCBzb3VyY2UgdGFy YmFsbAorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK05FV19UQVJCQUxMPSJmaXJlZm94LSRORVdf VkVSU0lPTi5zb3VyY2UudGFyLnh6IgorCisjIENoZWNrcyAkTkVXX1RBUkJBTEwgYWdhaW5zdCB0 aGUgZGV0YWNoZWQgc2lnbmF0dXJlICRORVdfVEFSQkFMTC5hc2MuCisjICAgMCA9IGdvb2Qgc2ln bmF0dXJlLCAxID0gYmFkIHNpZ25hdHVyZSwgMiA9IGNhbm5vdCB0ZWxsIChubyBncGcgLyBubyBr ZXkpCit2ZXJpZnlfdGFyYmFsbF9zaWduYXR1cmUoKSB7CisgICAgY29tbWFuZCAtdiBncGcgPi9k ZXYvbnVsbCAyPiYxIHx8IHJldHVybiAyCisgICAgWyAtcyAiJE5FV19UQVJCQUxMLmFzYyIgXSB8 fCByZXR1cm4gMgorICAgIGxvY2FsIG91dCBrZXkKKyAgICBvdXQ9JChncGcgLS12ZXJpZnkgIiRO RVdfVEFSQkFMTC5hc2MiICIkTkVXX1RBUkJBTEwiIDI+JjEpCisgICAgaWYgZ3JlcCAtcSAnXmdw ZzogR29vZCBzaWduYXR1cmUnIDw8PCIkb3V0IjsgdGhlbgorICAgICAgICByZXR1cm4gMAorICAg IGZpCisgICAgaWYgZ3JlcCAtcUUgIk5vIHB1YmxpYyBrZXl8Q2FuJ3QgY2hlY2sgc2lnbmF0dXJl IiA8PDwiJG91dCI7IHRoZW4KKyAgICAgICAgIyBNb3ppbGxhIHJvdGF0ZXMgaXRzIHNpZ25pbmcg a2V5LCBzbyB0YWtlIHRoZSBrZXkgaWQgZnJvbSBncGcgaXRzZWxmLgorICAgICAgICBrZXk9JChn cmVwIC1vUCAndXNpbmcgXFMrIGtleSBcS1swLTlBLUZdKycgPDw8IiRvdXQiIHwgaGVhZCAtMSkK KyAgICAgICAgd2FybiAiTW96aWxsYSBzaWduaW5nIGtleSAke2tleTotKHVua25vd24pfSBpcyBu b3QgaW4gdGhlIGtleXJpbmcuIgorICAgICAgICB3YXJuICJJbXBvcnQgaXQgd2l0aDogZ3BnIC0t cmVjdi1rZXlzICR7a2V5Oi08a2V5LWlkPn0iCisgICAgICAgIHJldHVybiAyCisgICAgZmkKKyAg ICByZXR1cm4gMQorfQorCisjIEZhbGxiYWNrIHdoZW4gdGhlIHNpZ25hdHVyZSBjYW5ub3QgYmUg Y2hlY2tlZDogY29tcGFyZSB0aGUgbG9jYWwgc2l6ZSB3aXRoCisjIHRoZSBDb250ZW50LUxlbmd0 aCB0aGUgYXJjaGl2ZSByZXBvcnRzLgorbWF0Y2hlc19yZW1vdGVfc2l6ZSgpIHsKKyAgICBsb2Nh bCByZW1vdGUgbG9jYWxfc2l6ZQorICAgIHJlbW90ZT0kKGN1cmwgLXNmSUwgIiRTT1VSQ0VfVVJM LyRORVdfVEFSQkFMTCIgXAorICAgICAgICB8IGdyZXAgLWkgJ15jb250ZW50LWxlbmd0aDonIHwg dGFpbCAtMSB8IHRyIC1kYyAnMC05JykKKyAgICBbIC1uICIkcmVtb3RlIiBdIHx8IHJldHVybiAy CisgICAgbG9jYWxfc2l6ZT0kKHN0YXQgLWMlcyAiJE5FV19UQVJCQUxMIiAyPi9kZXYvbnVsbCkK KyAgICBbICIkcmVtb3RlIiA9ICIkbG9jYWxfc2l6ZSIgXQorfQorCitpZiAhIHNraXBfc3RlcCA2 OyB0aGVuCisgICAgc3RlcCA2ICJEb3dubG9hZGluZyAkTkVXX1RBUkJBTEwiCisKKyAgICAjIFRo ZSBkZXRhY2hlZCBzaWduYXR1cmUgaXMgdGlueSAtIGZldGNoIGl0IGZpcnN0IHNvIGFuIGFscmVh ZHkgcHJlc2VudAorICAgICMgdGFyYmFsbCBjYW4gYmUgY2hlY2tlZCB3aXRob3V0IGRvd25sb2Fk aW5nIHRoZSB+NjAwIE1CIGZpbGUgYWdhaW4uCisgICAgcm0gLWYgIiRORVdfVEFSQkFMTC5hc2Mi CisgICAgd2dldCAtcSAtTyAiJE5FV19UQVJCQUxMLmFzYyIgIiRTT1VSQ0VfVVJMLyRORVdfVEFS QkFMTC5hc2MiIFwKKyAgICAgICAgfHwgd2FybiAiTm8gZGV0YWNoZWQgc2lnbmF0dXJlIGF0ICRT T1VSQ0VfVVJMLyRORVdfVEFSQkFMTC5hc2MiCisKKyAgICBORUVEX0RPV05MT0FEPTEKKyAgICBp ZiBbIC1mICIkTkVXX1RBUkJBTEwiIF07IHRoZW4KKyAgICAgICAgaW5mbyAiJE5FV19UQVJCQUxM IGlzIGFscmVhZHkgaGVyZSwgY2hlY2tpbmcgaXQgYWdhaW5zdCAkTkVXX1RBUkJBTEwuYXNjIgor ICAgICAgICB2ZXJpZnlfdGFyYmFsbF9zaWduYXR1cmUKKyAgICAgICAgY2FzZSAkPyBpbgorICAg ICAgICAgICAgMCkgIG9rICJTaWduYXR1cmUgaXMgZ29vZCAtIHJldXNpbmcgdGhlIGxvY2FsICRO RVdfVEFSQkFMTC4iCisgICAgICAgICAgICAgICAgTkVFRF9ET1dOTE9BRD0wIDs7CisgICAgICAg ICAgICAxKSAgd2FybiAiU2lnbmF0dXJlIGRvZXMgTk9UIG1hdGNoIC0gdGhlIGxvY2FsIHRhcmJh bGwgaXMgc3RhbGUgb3IgY29ycnVwdC4iCisgICAgICAgICAgICAgICAgcm0gLWYgIiRORVdfVEFS QkFMTCIgOzsKKyAgICAgICAgICAgIDIpICBpZiBtYXRjaGVzX3JlbW90ZV9zaXplOyB0aGVuCisg ICAgICAgICAgICAgICAgICAgIHdhcm4gIkZhbGxpbmcgYmFjayB0byBhIHNpemUgY2hlY2s6IGxv Y2FsIHNpemUgbWF0Y2hlcyB0aGUgYXJjaGl2ZS4iCisgICAgICAgICAgICAgICAgICAgIG9rICJS ZXVzaW5nIHRoZSBsb2NhbCAkTkVXX1RBUkJBTEwuIgorICAgICAgICAgICAgICAgICAgICBORUVE X0RPV05MT0FEPTAKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGlu Zm8gIlNpemUgZGlmZmVycyBmcm9tIHRoZSBhcmNoaXZlIChvciBpcyB1bmtub3duKSAtIGRvd25s b2FkaW5nIGFnYWluLiIKKyAgICAgICAgICAgICAgICAgICAgcm0gLWYgIiRORVdfVEFSQkFMTCIK KyAgICAgICAgICAgICAgICBmaSA7OworICAgICAgICBlc2FjCisgICAgICAgIGlmIFsgIiRORUVE X0RPV05MT0FEIiAtZXEgMSBdICYmIFsgLWYgc291cmNlcyBdIFwKKyAgICAgICAgICAgJiYgZ3Jl cCAtcSAiKCRORVdfVEFSQkFMTCkiIHNvdXJjZXM7IHRoZW4KKyAgICAgICAgICAgIGluZm8gIlJl bW92aW5nIHRoZSBzdGFsZSAkTkVXX1RBUkJBTEwgZW50cnkgZnJvbSBzb3VyY2VzIgorICAgICAg ICAgICAgc2VkIC1pICJcfCgkTkVXX1RBUkJBTEwpfGQiIHNvdXJjZXMKKyAgICAgICAgZmkKKyAg ICBmaQorCisgICAgaWYgWyAiJE5FRURfRE9XTkxPQUQiIC1lcSAxIF07IHRoZW4KKyAgICAgICAg cnVuIHdnZXQgLS1wcm9ncmVzcz1kb3Q6Z2lnYSAtTyAiJE5FV19UQVJCQUxMIiAiJFNPVVJDRV9V UkwvJE5FV19UQVJCQUxMIiBcCisgICAgICAgICAgICB8fCB7IHJtIC1mICIkTkVXX1RBUkJBTEwi OyBkaWUgIkRvd25sb2FkIG9mICRTT1VSQ0VfVVJMLyRORVdfVEFSQkFMTCBmYWlsZWQiOyB9Cisg ICAgICAgIG9rICJEb3dubG9hZGVkICRORVdfVEFSQkFMTCAoJChkdSAtaCAiJE5FV19UQVJCQUxM IiB8IGN1dCAtZjEpKS4iCisgICAgICAgIHZlcmlmeV90YXJiYWxsX3NpZ25hdHVyZQorICAgICAg ICBjYXNlICQ/IGluCisgICAgICAgICAgICAwKSBvayAiUEdQIHNpZ25hdHVyZSB2ZXJpZmllZC4i IDs7CisgICAgICAgICAgICAxKSBybSAtZiAiJE5FV19UQVJCQUxMIiAiJE5FV19UQVJCQUxMLmFz YyIKKyAgICAgICAgICAgICAgIGRpZSAiRG93bmxvYWRlZCAkTkVXX1RBUkJBTEwgZG9lcyBub3Qg bWF0Y2ggaXRzIFBHUCBzaWduYXR1cmUiIDs7CisgICAgICAgIGVzYWMKKyAgICBmaQorCisgICAg cm0gLWYgIiRORVdfVEFSQkFMTC5hc2MiCitmaQorCitbIC1mICIkTkVXX1RBUkJBTEwiIF0gfHwg ZGllICIkTkVXX1RBUkJBTEwgaXMgbWlzc2luZyAtIHJlLXJ1biBmcm9tIHN0ZXAgNiIKKworIy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisjIFN0ZXAgNzogRG93bmxvYWQgbGFuZ3BhY2tzCisjLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKworaWYgISBza2lwX3N0ZXAgNzsgdGhlbgorICAgIHN0ZXAgNyAiRG93 bmxvYWRpbmcgbGFuZ3BhY2tzIgorCisgICAgIyBUaGUgbGFuZ3BhY2sgdGFyYmFsbCBpcyBuYW1l ZCBmaXJlZm94LWxhbmdwYWNrcy08dmVyc2lvbj4tPFlZWVlNTUREPi50YXIueHouCisgICAgIyBJ ZiBvbmUgZm9yIHRoaXMgdmVyc2lvbiBpcyBhbHJlYWR5IGhlcmUsIHJldXNlIGl0IGluc3RlYWQg b2YgZG93bmxvYWRpbmcKKyAgICAjIGV2ZXJ5IFhQSSBhZ2FpbjsgdGhlIG5ld2VzdCBnZW5lcmF0 aW9uIGRhdGUgd2lucy4KKyAgICBMQU5HUEFDS19GSUxFPSQobHMgLTEgZmlyZWZveC1sYW5ncGFj a3MtIiRORVdfVkVSU0lPTiItKi50YXIueHogMj4vZGV2L251bGwgXAorICAgICAgICB8IHNvcnQg LVYgfCB0YWlsIC0xKQorCisgICAgaWYgWyAtbiAiJExBTkdQQUNLX0ZJTEUiIF07IHRoZW4KKyAg ICAgICAgbGFuZ3BhY2tfZGF0ZT0iJHtMQU5HUEFDS19GSUxFIyMqLX0iOyBsYW5ncGFja19kYXRl PSIke2xhbmdwYWNrX2RhdGUlLnRhci54en0iCisgICAgICAgIGluZm8gIkxhbmdwYWNrIHRhcmJh bGwgZm9yICRORVdfVkVSU0lPTiBhbHJlYWR5IHByZXNlbnQsIGdlbmVyYXRlZCAkbGFuZ3BhY2tf ZGF0ZSIKKyAgICAgICAgaW5mbyAiUmV1c2luZyAkTEFOR1BBQ0tfRklMRSAtIGRlbGV0ZSBpdCB0 byBmb3JjZSBhIGZyZXNoIGRvd25sb2FkLiIKKyAgICBlbHNlCisgICAgICAgIFsgLXggLi9tb3ot Z3JhYi1sYW5ncGFja3MgXSB8fCBkaWUgIi4vbW96LWdyYWItbGFuZ3BhY2tzIG5vdCBmb3VuZCBv ciBub3QgZXhlY3V0YWJsZSIKKyAgICAgICAgcnVuIC4vbW96LWdyYWItbGFuZ3BhY2tzIC1hIGZp cmVmb3ggIiRORVdfVkVSU0lPTiIgXAorICAgICAgICAgICAgLXUgIiRCVUlMRF9VUkwvbGludXgt eDg2XzY0L3hwaS8iIFwKKyAgICAgICAgICAgIHx8IGRpZSAibW96LWdyYWItbGFuZ3BhY2tzIGZh aWxlZCIKKworICAgICAgICBMQU5HUEFDS19GSUxFPSQobHMgLTEgZmlyZWZveC1sYW5ncGFja3Mt IiRORVdfVkVSU0lPTiItKi50YXIueHogMj4vZGV2L251bGwgXAorICAgICAgICAgICAgfCBzb3J0 IC1WIHwgdGFpbCAtMSkKKyAgICAgICAgWyAtbiAiJExBTkdQQUNLX0ZJTEUiIF0gfHwgZGllICJO byBmaXJlZm94LWxhbmdwYWNrcy0kTkVXX1ZFUlNJT04tKi50YXIueHogd2FzIGNyZWF0ZWQiCisg ICAgICAgIGluZm8gIkxhbmdwYWNrIHRhcmJhbGw6ICRMQU5HUEFDS19GSUxFIgorICAgIGZpCisK KyAgICAjIFNvdXJjZTEga2VlcHMgdGhlICV7dmVyc2lvbn0lez9wcmVfdmVyc2lvbn0gbWFjcm9z LCBvbmx5IHRoZSBkYXRlIGNoYW5nZXMuCisgICAgb2xkX3NvdXJjZTE9JChzcGVjX2dldCAnXlNv dXJjZTE6XHMqXEtcUysnKQorICAgIGxhbmdwYWNrX2RhdGU9IiR7TEFOR1BBQ0tfRklMRSMjKi19 IjsgbGFuZ3BhY2tfZGF0ZT0iJHtsYW5ncGFja19kYXRlJS50YXIueHp9IgorICAgIG5ld19zb3Vy Y2UxPSJmaXJlZm94LWxhbmdwYWNrcy0le3ZlcnNpb259JXs/cHJlX3ZlcnNpb259LSRsYW5ncGFj a19kYXRlLnRhci54eiIKKyAgICBpZiBbICIkb2xkX3NvdXJjZTEiICE9ICIkbmV3X3NvdXJjZTEi IF07IHRoZW4KKyAgICAgICAgc2VkIC1pIC1FICJzfF5Tb3VyY2UxOihbWzpzcGFjZTpdXSopLip8 U291cmNlMTpcMSRuZXdfc291cmNlMXwiIGZpcmVmb3guc3BlYyBcCisgICAgICAgICAgICB8fCBk aWUgIkNhbm5vdCB1cGRhdGUgU291cmNlMSBpbiBmaXJlZm94LnNwZWMiCisgICAgICAgIGluZm8g IlNvdXJjZTE6ICRvbGRfc291cmNlMSAtPiAkbmV3X3NvdXJjZTEiCisgICAgZmkKKyAgICBvayAi VXNpbmcgJExBTkdQQUNLX0ZJTEU7IFNvdXJjZTEgaXMgdXAgdG8gZGF0ZS4iCitmaQorCitpZiBb IC16ICIkTEFOR1BBQ0tfRklMRSIgXTsgdGhlbgorICAgIExBTkdQQUNLX0ZJTEU9JChscyAtMSBm aXJlZm94LWxhbmdwYWNrcy0iJE5FV19WRVJTSU9OIi0qLnRhci54eiAyPi9kZXYvbnVsbCBcCisg ICAgICAgIHwgc29ydCAtViB8IHRhaWwgLTEpCitmaQorWyAtbiAiJExBTkdQQUNLX0ZJTEUiIF0g fHwgZGllICJObyBsYW5ncGFjayB0YXJiYWxsIGZvciAkTkVXX1ZFUlNJT04gLSByZS1ydW4gZnJv bSBzdGVwIDciCisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBTdGVwIDg6IFVwbG9hZCBuZXcg c291cmNlcworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK2lmICEgc2tpcF9zdGVwIDg7IHRoZW4K KyAgICBzdGVwIDggIlVwbG9hZGluZyBuZXcgc291cmNlcyB0byB0aGUgbG9va2FzaWRlIGNhY2hl IgorICAgIGNoZWNrX2tlcmJlcm9zCisgICAgWyAtZiBzb3VyY2VzIF0gfHwgZGllICJObyBzb3Vy Y2VzIGZpbGUgaW4gJFBBQ0tBR0VfRElSIgorCisgICAgIyBFdmVyeXRoaW5nIGV4Y2VwdCB0aGUg RmlyZWZveCBzb3VyY2UvbGFuZ3BhY2sgdGFyYmFsbHMgaXMga2VwdCBhcyBpcy4KKyAgICBtYXBm aWxlIC10IEtFUFRfU09VUkNFUyA8IDwoCisgICAgICAgIHNlZCAtbkUgJ3N8XltBLVphLXowLTld KyBcKChbXildKylcKS4qfFwxfHAnIHNvdXJjZXMgXAorICAgICAgICAgICAgfCBncmVwIC12RSAn XmZpcmVmb3gtLipcLnNvdXJjZVwudGFyXC54eiQnIFwKKyAgICAgICAgICAgIHwgZ3JlcCAtdkUg J15maXJlZm94LWxhbmdwYWNrcy0uKlwudGFyXC54eiQnCisgICAgKQorICAgIGluZm8gIktlcHQg c291cmNlczogICAgJHtLRVBUX1NPVVJDRVNbKl06LShub25lKX0iCisgICAgaW5mbyAiVXBsb2Fk ZWQgYW5ldzogICAkTkVXX1RBUkJBTEwgJExBTkdQQUNLX0ZJTEUiCisKKyAgICAjIFRyaW0gdGhl IHNvdXJjZXMgZmlsZSBmaXJzdCBzbyB0aGF0ICdmZWRwa2cgc291cmNlcycgZG9lcyBub3QgcmUt ZG93bmxvYWQKKyAgICAjIHRoZSBwcmV2aW91cyAoaHVnZSkgRmlyZWZveCB0YXJiYWxsLCB0aGVu IGZldGNoIHdoYXRldmVyIGlzIHN0aWxsIG1pc3NpbmcuCisgICAgY3Agc291cmNlcyBzb3VyY2Vz LmJhayB8fCBkaWUgIkNhbm5vdCBiYWNrIHVwIHRoZSBzb3VyY2VzIGZpbGUiCisgICAgdHJhcCAn aWYgWyAtZiAiJFBBQ0tBR0VfRElSL3NvdXJjZXMuYmFrIiBdOyB0aGVuIG12IC1mICIkUEFDS0FH RV9ESVIvc291cmNlcy5iYWsiICIkUEFDS0FHRV9ESVIvc291cmNlcyI7IGZpJyBFWElUCisgICAg Z3JlcCAtdkUgJ1woZmlyZWZveC0uKlwuc291cmNlXC50YXJcLnh6XCl8XChmaXJlZm94LWxhbmdw YWNrcy0uKlwudGFyXC54elwpJyBcCisgICAgICAgIHNvdXJjZXMuYmFrID4gc291cmNlcworICAg IHJ1biBmZWRwa2cgc291cmNlcyB8fCBkaWUgImZlZHBrZyBzb3VyY2VzIGZhaWxlZCAoS2VyYmVy b3MgdGlja2V0IGV4cGlyZWQ/KSIKKworICAgIGZvciBmIGluICIke0tFUFRfU09VUkNFU1tAXX0i OyBkbworICAgICAgICBbIC1mICIkZiIgXSB8fCBkaWUgIktlcHQgc291cmNlICRmIGlzIG1pc3Np bmcgbG9jYWxseSAtIGNhbm5vdCByZS11cGxvYWQgaXQiCisgICAgZG9uZQorCisgICAgcnVuIGZl ZHBrZyBuZXctc291cmNlcyAiJE5FV19UQVJCQUxMIiAiJExBTkdQQUNLX0ZJTEUiICIke0tFUFRf U09VUkNFU1tAXX0iIFwKKyAgICAgICAgfHwgZGllICJmZWRwa2cgbmV3LXNvdXJjZXMgZmFpbGVk IgorCisgICAgdHJhcCAtIEVYSVQKKyAgICBybSAtZiBzb3VyY2VzLmJhaworICAgIG9rICJVcGxv YWRlZCAkTkVXX1RBUkJBTEwgYW5kICRMQU5HUEFDS19GSUxFOyBzb3VyY2VzIGZpbGUgcmVmcmVz aGVkLiIKK2ZpCisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBTdGVwIDk6IENoZWNrIGFuZCBy ZWJhc2UgcGF0Y2hlcworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK2lmIFsgIiR7I0RST1BfUEFU Q0hFU1tAXX0iIC1ndCAwIF0gJiYgc2tpcF9zdGVwIDk7IHRoZW4KKyAgICB3YXJuICItLWRyb3At cGF0Y2ggaWdub3JlZDogcmVzdW1pbmcgYXQgc3RlcCAkUkVTVU1FX0ZST00sIHBhc3QgdGhlIHBh dGNoIHN0ZXAuIgorZmkKKworaWYgISBza2lwX3N0ZXAgOTsgdGhlbgorICAgIHN0ZXAgOSAiQ2hl Y2tpbmcgcGF0Y2hlcyBhZ2FpbnN0IHRoZSBuZXcgc291cmNlcyIKKworICAgIGZvciBwIGluICIk e0RST1BfUEFUQ0hFU1tAXX0iOyBkbworICAgICAgICBkcm9wX3BhdGNoICIkcCIKKyAgICBkb25l CisgICAgWyAiJHsjRFJPUFBFRF9QQVRDSEVTW0BdfSIgLWd0IDAgXSBcCisgICAgICAgICYmIG9r ICJEcm9wcGVkICR7I0RST1BQRURfUEFUQ0hFU1tAXX0gcGF0Y2goZXMpLiIKKworICAgIG1hcGZp bGUgLXQgU1BFQ19QQVRDSEVTIDwgPChncmVwIC1vUCAnXlBhdGNoWzAtOV0qOlxzKlxLXFMrJyBm aXJlZm94LnNwZWMpCisgICAgaW5mbyAiJHsjU1BFQ19QQVRDSEVTW0BdfSBwYXRjaGVzIHJlZmVy ZW5jZWQgYnkgZmlyZWZveC5zcGVjIgorICAgIGZvciBwIGluICIke1NQRUNfUEFUQ0hFU1tAXX0i OyBkbworICAgICAgICBjYXNlICIkcCIgaW4KKyAgICAgICAgICAgIGh0dHAqfCUqKSBjb250aW51 ZSA7OworICAgICAgICBlc2FjCisgICAgICAgIFsgLWYgIiRwIiBdIHx8IHdhcm4gIlBhdGNoIGZp bGUgcmVmZXJlbmNlZCBidXQgbWlzc2luZzogJHAiCisgICAgZG9uZQorICAgIGluZm8gIlBhdGNo IGFwcGxpY2F0aW9uIGl0c2VsZiBpcyB2ZXJpZmllZCBieSAnZmVkcGtnIHByZXAnIGluIHRoZSBu ZXh0IHN0ZXAuIgorICAgIG9rICJQYXRjaCBsaXN0IGNoZWNrZWQuIgorZmkKKworIy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisjIFN0ZXAgMTA6IFZlcmlmeSBwYXRjaGVzIGFwcGx5IHdpdGggZmVkcGtn IHByZXAKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitpZiAhIHNraXBfc3RlcCAxMDsgdGhlbgor ICAgIHN0ZXAgMTAgIlZlcmlmeWluZyBwYXRjaGVzIHdpdGggZmVkcGtnIHByZXAiCisgICAgUFJF UF9MT0c9JChta3RlbXAgLXQgZmlyZWZveC1wcmVwLVhYWFhYWC5sb2cpCisgICAgaWYgcnVuIGZl ZHBrZyBwcmVwIDI+JjEgfCB0ZWUgIiRQUkVQX0xPRyI7IHRoZW4KKyAgICAgICAgUFJFUF9PSz0x CisgICAgZWxzZQorICAgICAgICBQUkVQX09LPTAKKyAgICBmaQorICAgIGlmIFsgIiRQUkVQX09L IiAtZXEgMCBdOyB0aGVuCisgICAgICAgIHByaW50ZiAnXG4lc2ZlZHBrZyBwcmVwIGZhaWxlZC4g RmFpbGluZyBwYXRjaChlcyk6JXNcbicgIiRDX1JFRCIgIiRDX09GRiIgPiYyCisgICAgICAgIGdy ZXAgLWlFICdwYXRjaCAuKihGQUlMRUR8ZG9lcyBub3QgYXBwbHkpfEh1bmsgIy4qIEZBSUxFRHxl cnJvcjonICIkUFJFUF9MT0ciIFwKKyAgICAgICAgICAgIHwgdGFpbCAtMjAgPiYyCisgICAgICAg IHByaW50ZiAnJXNGdWxsIGxvZzogJXMlc1xuJyAiJENfWUVMTE9XIiAiJFBSRVBfTE9HIiAiJENf T0ZGIiA+JjIKKyAgICAgICAgZGllICJSZWJhc2Ugb3IgZHJvcCB0aGUgZmFpbGluZyBwYXRjaCwg dGhlbiByZS1ydW46ICQwICRORVdfVkVSU0lPTiAtLXJlc3VtZSAxMCIKKyAgICBmaQorICAgIHJt IC1mICIkUFJFUF9MT0ciCisgICAgIyBUaGUgdW5wYWNrZWQgdHJlZSBpcyBrZXB0IGZvciBzdGVw IDExIChOU1MvTlNQUiB2ZXJzaW9uIGRldGVjdGlvbikuCisgICAgb2sgIkFsbCBwYXRjaGVzIGFw cGx5IGNsZWFubHkuIgorICAgIEJVSUxEX1NUQVRVUz0iUEFTU0VEIChmZWRwa2cgcHJlcCkiCitm aQorQlVJTERfU1RBVFVTPSIke0JVSUxEX1NUQVRVUzotTm90IHRlc3RlZH0iCisKKyMtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIyBTdGVwIDExOiBEZXRlY3QgdGhlIE5TUy9OU1BSIHZlcnNpb25zIHNo aXBwZWQgaW4gdGhlIHRhcmJhbGwKKyMKKyMgRmlyZWZveCBidW5kbGVzIGJvdGggc291cmNlczsg dGhlIHZlcnNpb25zIGFyZSBhbHdheXMgdGFrZW4gZnJvbSB0aGVyZSBhbmQKKyMgd3JpdHRlbiB0 byB0aGUgc3BlYywgbmV2ZXIgYXNrZWQgZm9yOgorIyAgIHNlY3VyaXR5L25zcy9saWIvbnNzL25z cy5oICAgICNkZWZpbmUgTlNTX1ZFUlNJT04gIjMuMTI3IiBfTlNTX0NVU1RPTUlaRUQKKyMgICBu c3BycHViL3ByL2luY2x1ZGUvcHJpbml0LmggICAjZGVmaW5lIFBSX1ZFUlNJT04gICI0LjQwIgor Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0RFVEVDVEVEX05TU19WRVJTSU9OPSIiCitERVRFQ1RF RF9OU1BSX1ZFUlNJT049IiIKKworIyByZWFkX2J1bmRsZWRfdmVyc2lvbiA8cmVsYXRpdmUtaGVh ZGVyPiA8ZGVmaW5lLW5hbWU+CisjIFJlYWRzIGZyb20gdGhlIHVucGFja2VkIHRyZWUsIGZhbGxp bmcgYmFjayB0byB0aGUgdGFyYmFsbCB3aGVuIHJlc3VtaW5nLgorcmVhZF9idW5kbGVkX3ZlcnNp b24oKSB7CisgICAgbG9jYWwgaGVhZGVyPSIkMSIgZGVmaW5lPSIkMiIgcGF0aD0iZmlyZWZveC0k TkVXX1ZFUlNJT04vJDEiCisgICAgaWYgWyAtZiAiJHBhdGgiIF07IHRoZW4KKyAgICAgICAgZ3Jl cCAtbTEgLW9QICJeI2RlZmluZVxzKyRkZWZpbmVccytcIlxLW15cIl0rIiAiJHBhdGgiCisgICAg ZWxzZQorICAgICAgICB0YXIgLXhmICIkTkVXX1RBUkJBTEwiIC0td2lsZGNhcmRzIC1PICIqLyRo ZWFkZXIiIDI+L2Rldi9udWxsIFwKKyAgICAgICAgICAgIHwgZ3JlcCAtbTEgLW9QICJeI2RlZmlu ZVxzKyRkZWZpbmVccytcIlxLW15cIl0rIgorICAgIGZpCit9CisKKyMgd3JpdGVfc3BlY192ZXJz aW9uIDxtYWNybz4gPG9sZD4gPG5ldz4gPGxhYmVsPgord3JpdGVfc3BlY192ZXJzaW9uKCkgewor ICAgIGxvY2FsIG1hY3JvPSIkMSIgb2xkPSIkMiIgbmV3PSIkMyIgbGFiZWw9IiQ0IgorICAgIGlm IFsgIiRvbGQiID0gIiRuZXciIF07IHRoZW4KKyAgICAgICAgaW5mbyAiJG1hY3JvOiAkbmV3ICh1 bmNoYW5nZWQpIgorICAgICAgICByZXR1cm4gMAorICAgIGZpCisgICAgc2VkIC1pIC1FICJzfF4l Z2xvYmFsKFtbOnNwYWNlOl1dKykkbWFjcm9bWzpzcGFjZTpdXSsuKnwlZ2xvYmFsXDEkbWFjcm8g JG5ld3wiIFwKKyAgICAgICAgZmlyZWZveC5zcGVjIHx8IGRpZSAiQ2Fubm90IHVwZGF0ZSAkbWFj cm8gaW4gZmlyZWZveC5zcGVjIgorICAgIGdyZXAgLXFFICJeJWdsb2JhbFtbOnNwYWNlOl1dKyRt YWNyb1tbOnNwYWNlOl1dKyQoc2VkICdzL1suW1wqXiRdL1xcJi9nJyA8PDwiJG5ldyIpXCQiIFwK KyAgICAgICAgZmlyZWZveC5zcGVjIHx8IGRpZSAiJG1hY3JvIHdhcyBub3QgdXBkYXRlZCBpbiBm aXJlZm94LnNwZWMiCisgICAgU1BFQ19OT1RFUys9KCIkbGFiZWwgcmVxdWlyZW1lbnQgJG9sZCAt PiAkbmV3IChkZXRlY3RlZCBpbiB0aGUgdGFyYmFsbCkiKQorICAgIGluZm8gIiRtYWNybzogJG9s ZCAtPiAkbmV3IgorfQorCitpZiAhIHNraXBfc3RlcCAxMTsgdGhlbgorICAgIHN0ZXAgMTEgIkRl dGVjdGluZyB0aGUgTlNTL05TUFIgdmVyc2lvbnMgZnJvbSB0aGUgRmlyZWZveCBzb3VyY2VzIgor CisgICAgaWYgWyAhIC1kICJmaXJlZm94LSRORVdfVkVSU0lPTiIgXTsgdGhlbgorICAgICAgICBp bmZvICJObyB1bnBhY2tlZCB0cmVlIC0gcmVhZGluZyB0aGUgaGVhZGVycyBmcm9tICRORVdfVEFS QkFMTCAodGhpcyB0YWtlcyBhIHdoaWxlKSIKKyAgICBmaQorCisgICAgREVURUNURURfTlNTX1ZF UlNJT049JChyZWFkX2J1bmRsZWRfdmVyc2lvbiBcCisgICAgICAgICJzZWN1cml0eS9uc3MvbGli L25zcy9uc3MuaCIgIk5TU19WRVJTSU9OIikKKyAgICBbIC1uICIkREVURUNURURfTlNTX1ZFUlNJ T04iIF0gXAorICAgICAgICB8fCBkaWUgIkNhbm5vdCByZWFkIE5TU19WRVJTSU9OIGZyb20gc2Vj dXJpdHkvbnNzL2xpYi9uc3MvbnNzLmgiCisKKyAgICBERVRFQ1RFRF9OU1BSX1ZFUlNJT049JChy ZWFkX2J1bmRsZWRfdmVyc2lvbiBcCisgICAgICAgICJuc3BycHViL3ByL2luY2x1ZGUvcHJpbml0 LmgiICJQUl9WRVJTSU9OIikKKyAgICBbIC1uICIkREVURUNURURfTlNQUl9WRVJTSU9OIiBdIFwK KyAgICAgICAgfHwgZGllICJDYW5ub3QgcmVhZCBQUl9WRVJTSU9OIGZyb20gbnNwcnB1Yi9wci9p bmNsdWRlL3ByaW5pdC5oIgorCisgICAgIyBQUl9WRVJTSU9OIG1heSBjYXJyeSBhIHN1ZmZpeCwg ZS5nLiAiNC40MCBCZXRhIiAtIGtlZXAgdGhlIG51bWJlciBvbmx5LgorICAgIERFVEVDVEVEX05T UFJfVkVSU0lPTj0iJHtERVRFQ1RFRF9OU1BSX1ZFUlNJT04lJSAqfSIKKworICAgIHByaW50ZiAn XG4lcyAgIEZpcmVmb3ggJXMgYnVuZGxlcyBOU1MgJXMgYW5kIE5TUFIgJXMlc1xuXG4nIFwKKyAg ICAgICAgIiRDX0JPTEQiICIkTkVXX1ZFUlNJT04iICIkREVURUNURURfTlNTX1ZFUlNJT04iICIk REVURUNURURfTlNQUl9WRVJTSU9OIiAiJENfT0ZGIgorCisgICAgd3JpdGVfc3BlY192ZXJzaW9u IG5zc192ZXJzaW9uICAiJE9MRF9OU1NfVkVSU0lPTiIgICIkREVURUNURURfTlNTX1ZFUlNJT04i ICBOU1MKKyAgICB3cml0ZV9zcGVjX3ZlcnNpb24gbnNwcl92ZXJzaW9uICIkT0xEX05TUFJfVkVS U0lPTiIgIiRERVRFQ1RFRF9OU1BSX1ZFUlNJT04iIE5TUFIKKyAgICBOU1NfVkVSU0lPTj0iJERF VEVDVEVEX05TU19WRVJTSU9OIgorICAgIE5TUFJfVkVSU0lPTj0iJERFVEVDVEVEX05TUFJfVkVS U0lPTiIKKworICAgIGluZm8gIkNsZWFuaW5nIHVwIHRoZSB1bnBhY2tlZCB0cmVlIgorICAgIHJt IC1yZiAiZmlyZWZveC0kTkVXX1ZFUlNJT04vIgorICAgIG9rICJOU1MvTlNQUiB2ZXJzaW9ucyB3 cml0dGVuIHRvIGZpcmVmb3guc3BlYy4iCitlbHNlCisgICAgcm0gLXJmICJmaXJlZm94LSRORVdf VkVSU0lPTi8iCitmaQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgU3RlcCAxMjogTG9jYWwg YnVpbGQgKG9wdGlvbmFsKQorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK2lmICEgc2tpcF9zdGVw IDEyOyB0aGVuCisgICAgaWYgWyAiJERPX0xPQ0FMX0JVSUxEIiAtZXEgMCBdICYmIFsgIiRBU1NV TUVfWUVTIiAtZXEgMCBdOyB0aGVuCisgICAgICAgIHByaW50ZiAnXG4nCisgICAgICAgIGNvbmZp cm0gIlJ1biBhIGxvY2FsIGJ1aWxkIHdpdGggJ2ZlZHBrZyBsb2NhbCc/IEl0IHR5cGljYWxseSB0 YWtlcyAxLTIgaG91cnMuIiBcCisgICAgICAgICAgICAmJiBET19MT0NBTF9CVUlMRD0xCisgICAg ZmkKKyAgICBpZiBbICIkRE9fTE9DQUxfQlVJTEQiIC1lcSAxIF07IHRoZW4KKyAgICAgICAgc3Rl cCAxMiAiUnVubmluZyBhIGxvY2FsIGJ1aWxkIgorICAgICAgICBMT0NBTF9MT0c9JChta3RlbXAg LXQgZmlyZWZveC1sb2NhbC1YWFhYWFgubG9nKQorICAgICAgICBpZiBydW4gZmVkcGtnIGxvY2Fs IDI+JjEgfCB0ZWUgIiRMT0NBTF9MT0ciOyB0aGVuCisgICAgICAgICAgICBvayAiTG9jYWwgYnVp bGQgc3VjY2VlZGVkLiIKKyAgICAgICAgICAgIEJVSUxEX1NUQVRVUz0iUEFTU0VEIChmZWRwa2cg bG9jYWwpIgorICAgICAgICAgICAgcm0gLWYgIiRMT0NBTF9MT0ciCisgICAgICAgIGVsc2UKKyAg ICAgICAgICAgIHByaW50ZiAnXG4lc0xvY2FsIGJ1aWxkIGZhaWxlZC4gUmVsZXZhbnQgb3V0cHV0 OiVzXG4nICIkQ19SRUQiICIkQ19PRkYiID4mMgorICAgICAgICAgICAgZ3JlcCAtaUUgJ2Vycm9y OnxObyBwYWNrYWdlIC4qIGZvdW5kfG5vdCBmb3VuZHxJbnN0YWxsZWQgXChidXQgdW5wYWNrYWdl ZFwpJyBcCisgICAgICAgICAgICAgICAgIiRMT0NBTF9MT0ciIHwgdGFpbCAtMzAgPiYyCisgICAg ICAgICAgICBwcmludGYgJyVzRnVsbCBsb2c6ICVzJXNcbicgIiRDX1lFTExPVyIgIiRMT0NBTF9M T0ciICIkQ19PRkYiID4mMgorICAgICAgICAgICAgY2F0ID4mMiA8PCdFT0YnCisKK1R5cGljYWwg Y2F1c2VzOgorICAqIE1pc3NpbmcgQnVpbGRSZXF1aXJlcyAgLSBhZGQgIkJ1aWxkUmVxdWlyZXM6 IDxwa2c+LWRldmVsIiB0byBmaXJlZm94LnNwZWMKKyAgKiBDb21waWxlL2xpbmtlciBlcnJvciAg IC0gdGhlIHNvdXJjZSBuZWVkcyBhIHBhdGNoIGZvciB0aGUgbmV3IHVwc3RyZWFtIEFQSQorICAq IFVucGFja2FnZWQgZmlsZXMgICAgICAgLSBhZGp1c3QgdGhlICVmaWxlcyBzZWN0aW9uIG9mIGZp cmVmb3guc3BlYworCitFT0YKKyAgICAgICAgICAgIGRpZSAiRml4IHRoZSBidWlsZCwgdGhlbiBy ZS1ydW46ICQwICRORVdfVkVSU0lPTiAtLXJlc3VtZSAxMiIKKyAgICAgICAgZmkKKyAgICBlbHNl CisgICAgICAgIGluZm8gIlNraXBwaW5nIHRoZSBsb2NhbCBidWlsZC4iCisgICAgZmkKK2ZpCisK KyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBTdGVwIDEzOiBDb21taXQgdGhlIHVwZGF0ZQorIy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisKK2lmICEgc2tpcF9zdGVwIDEzOyB0aGVuCisgICAgc3RlcCAx MyAiQ29tbWl0dGluZyB0aGUgdXBkYXRlIgorICAgIHJ1biBnaXQgYWRkIGZpcmVmb3guc3BlYyBz b3VyY2VzIHx8IGRpZSAiZ2l0IGFkZCBmYWlsZWQiCisKKyAgICAjIFBhdGNoIGZpbGVzIHRvdWNo ZWQgYnkgaGFuZCAocmViYXNlZC9kcm9wcGVkKSBhcmUgc3RhZ2VkIHRvbywgYnV0IG5ldmVyCisg ICAgIyBidWlsZCBhcnRpZmFjdHMuCisgICAgbWFwZmlsZSAtdCBDSEFOR0VEX1BBVENIRVMgPCA8 KGdpdCBzdGF0dXMgLS1wb3JjZWxhaW4gLS0gJyoucGF0Y2gnICcqLmRpZmYnIFwKKyAgICAgICAg fCBhd2sgJ3twcmludCAkTkZ9JykKKyAgICBpZiBbICIkeyNDSEFOR0VEX1BBVENIRVNbQF19IiAt Z3QgMCBdOyB0aGVuCisgICAgICAgIGluZm8gIk1vZGlmaWVkIHBhdGNoIGZpbGVzOiAke0NIQU5H RURfUEFUQ0hFU1sqXX0iCisgICAgICAgIGlmIGNvbmZpcm0gIlN0YWdlIHRoZXNlIHBhdGNoIGZp bGVzIGFzIHBhcnQgb2YgdGhlIHVwZGF0ZT8iIHk7IHRoZW4KKyAgICAgICAgICAgIHJ1biBnaXQg YWRkIC1BIC0tICIke0NIQU5HRURfUEFUQ0hFU1tAXX0iIHx8IGRpZSAiZ2l0IGFkZCBvZiBwYXRj aGVzIGZhaWxlZCIKKyAgICAgICAgZmkKKyAgICBmaQorCisgICAgcHJpbnRmICdcbiVzU3RhZ2Vk IGNoYW5nZXM6JXNcbicgIiRDX0JPTEQiICIkQ19PRkYiCisgICAgZ2l0IHN0YXR1cyAtLXNob3J0 IC0tdW50cmFja2VkLWZpbGVzPW5vCisKKyAgICBydW4gZmVkcGtnIGNvbW1pdCAtYyB8fCBkaWUg ImZlZHBrZyBjb21taXQgZmFpbGVkIgorICAgIG9rICJDb21taXR0ZWQ6ICQoZ2l0IGxvZyAtMSAt LXByZXR0eT0lcykiCitmaQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgU3RlcCAxNDogUHJl c2VudCBzdW1tYXJ5IGFuZCBwdXNoCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworc3RlcCAxNCAi VXBkYXRlIHN1bW1hcnkiCisKK2NhdCA8PEVPRgorCiske0NfQk9MRH1GaXJlZm94IFVwZGF0ZSBT dW1tYXJ5OiAkT0xEX1ZFUlNJT04gLT4gJE5FV19WRVJTSU9OJHtDX09GRn0KKworICBWZXJzaW9u OiAgICAgICAkT0xEX1ZFUlNJT04gLT4gJE5FV19WRVJTSU9OCisgIEJyYW5jaDogICAgICAgIHJh d2hpZGUKKyAgTW96aWxsYSBidWlsZDogJEJVSUxEX1ZFUlNJT04KKyAgQnVpbGQgc3RhdHVzOiAg JEJVSUxEX1NUQVRVUworCisgIFNvdXJjZXM6CisgICAgLSAkTkVXX1RBUkJBTEwKKyAgICAtICRM QU5HUEFDS19GSUxFCitFT0YKKworaWYgWyAtbiAiJERFVEVDVEVEX05TU19WRVJTSU9OJERFVEVD VEVEX05TUFJfVkVSU0lPTiIgXTsgdGhlbgorICAgIGVjaG8KKyAgICBlY2hvICIgIE5TUy9OU1BS IChkZXRlY3RlZCBpbiB0aGUgRmlyZWZveCBzb3VyY2VzKToiCisgICAgZWNobyAiICAgIC0gTlNT OiAgJE9MRF9OU1NfVkVSU0lPTiAtPiAkREVURUNURURfTlNTX1ZFUlNJT04iCisgICAgZWNobyAi ICAgIC0gTlNQUjogJE9MRF9OU1BSX1ZFUlNJT04gLT4gJERFVEVDVEVEX05TUFJfVkVSU0lPTiIK K2ZpCisKK2lmIFsgIiR7I0RST1BQRURfUEFUQ0hFU1tAXX0iIC1ndCAwIF07IHRoZW4KKyAgICBl Y2hvCisgICAgZWNobyAiICBEcm9wcGVkIHBhdGNoZXM6IgorICAgIHByaW50ZiAnICAgIC0gJXNc bicgIiR7RFJPUFBFRF9QQVRDSEVTW0BdfSIKK2ZpCisKK2lmIFsgIiR7I1NQRUNfTk9URVNbQF19 IiAtZ3QgMCBdOyB0aGVuCisgICAgZWNobworICAgIGVjaG8gIiAgU1BFQyBjaGFuZ2VzOiIKKyAg ICBwcmludGYgJyAgICAtICVzXG4nICIke1NQRUNfTk9URVNbQF19IgorZmkKKworZWNobworZWNo byAiICBDb21taXQ6IgorZ2l0IGxvZyAtMSAtLXByZXR0eT0nICAgICVoICVzJworZWNobworCitp ZiBbICIkRE9fUFVTSCIgLWVxIDAgXSAmJiBbICIkQVNTVU1FX1lFUyIgLWVxIDAgXTsgdGhlbgor ICAgIGNvbmZpcm0gIlB1c2ggdGhlIGNvbW1pdCB0byByYXdoaWRlIG9uIEZlZG9yYSBkaXN0LWdp dD8iICYmIERPX1BVU0g9MQorZmkKKworaWYgWyAiJERPX1BVU0giIC1lcSAxIF07IHRoZW4KKyAg ICBjaGVja19rZXJiZXJvcworICAgIHJ1biBmZWRwa2cgcHVzaCB8fCBkaWUgImZlZHBrZyBwdXNo IGZhaWxlZCIKKyAgICBvayAiUHVzaGVkIHRvIEZlZG9yYSBkaXN0LWdpdCAocmF3aGlkZSkuIgor ICAgIGluZm8gIlN0YXJ0IGEgYnVpbGQgd2l0aDogZmVkcGtnIGJ1aWxkIgorZWxzZQorICAgIG9r ICJVcGRhdGUgcHJlcGFyZWQgYnV0IG5vdCBwdXNoZWQuIFB1c2ggbGF0ZXIgd2l0aDogZmVkcGtn IHB1c2giCitmaQoKZGlmZiAtLWdpdCBhL2ZpcmVmb3guc3BlYyBiL2ZpcmVmb3guc3BlYwppbmRl eCA4N2IwMGEyLi40YWYyOGMyIDEwMDY0NAotLS0gYS9maXJlZm94LnNwZWMKKysrIGIvZmlyZWZv eC5zcGVjCkBAIC0xODksMTQgKzE4OSwxNCBAQCBFeGNsdWRlQXJjaDogaTY4NgogCiBTdW1tYXJ5 OiAgICAgICAgTW96aWxsYSBGaXJlZm94IFdlYiBicm93c2VyCiBOYW1lOiAgICAgICAgICAgZmly ZWZveAotVmVyc2lvbjogICAgICAgIDE1Ni4wCi1SZWxlYXNlOiAgICAgICAgMiV7P3ByZV90YWd9 JXs/ZGlzdH0KK1ZlcnNpb246ICAgICAgICAxNTYuMC4xCitSZWxlYXNlOiAgICAgICAgMSV7P2Rp c3R9CiBVUkw6ICAgICAgICAgICAgaHR0cHM6Ly93d3cubW96aWxsYS5vcmcvZmlyZWZveC8KICMg QXV0b21hdGljYWxseSBjb252ZXJ0ZWQgZnJvbSBvbGQgZm9ybWF0OiBNUEx2MS4xIG9yIEdQTHYy KyBvciBMR1BMdjIrIC0gcmV2aWV3IGlzIGhpZ2hseSByZWNvbW1lbmRlZC4KIExpY2Vuc2U6ICAg ICAgICBMaWNlbnNlUmVmLUNhbGxhd2F5LU1QTHYxLjEgT1IgR1BMLTIuMC1vci1sYXRlciBPUiBM aWNlbnNlUmVmLUNhbGxhd2F5LUxHUEx2MisKIFNvdXJjZTA6ICAgICAgICBodHRwczovL2FyY2hp dmUubW96aWxsYS5vcmcvcHViL2ZpcmVmb3gvcmVsZWFzZXMvJXt2ZXJzaW9ufSV7P3ByZV92ZXJz aW9ufS9zb3VyY2UvZmlyZWZveC0le3ZlcnNpb259JXs/cHJlX3ZlcnNpb259LnNvdXJjZS50YXIu eHoKICVpZiAle3dpdGggbGFuZ3BhY2tzfQotU291cmNlMTogICAgICAgIGZpcmVmb3gtbGFuZ3Bh Y2tzLSV7dmVyc2lvbn0lez9wcmVfdmVyc2lvbn0tMjAyNjA5MTAudGFyLnh6CitTb3VyY2UxOiAg ICAgICAgZmlyZWZveC1sYW5ncGFja3MtJXt2ZXJzaW9ufSV7P3ByZV92ZXJzaW9ufS0yMDI2MDky My50YXIueHoKICVlbmRpZgogU291cmNlMjogICAgICAgIGNiaW5kZ2VuLXZlbmRvci50YXIueHoK IFNvdXJjZTM6ICAgICAgICBkdW1wX3N5bXMtdmVuZG9yLnRhci54egpAQCAtMjYzLDcgKzI2Myw2 IEBAIFBhdGNoNDAyOiAgICAgICAgRDMyNDg3MC4xNzg5MTE2OTYzLmRpZmYKIFBhdGNoNDAzOiAg ICAgICAgRDMyNDg3MS4xNzg5MTE2OTcyLmRpZmYKIFBhdGNoNDA0OiAgICAgICAgRDMyNDg3Ni4x Nzg5MTE2ODk5LmRpZmYKIFBhdGNoNDA1OiAgICAgICAgRDMyNDg3Ny4xNzg5MTE3MDAwLmRpZmYK LVBhdGNoNDA2OiAgICAgICAgRDMyNjg0MC4xNzg5NzMyNzAzLmRpZmYKIAogIyBQR08vTFRPIHBh dGNoZXMKIFBhdGNoNjAwOiAgICAgICAgcGdvLnBhdGNoCkBAIC01NTIsNyArNTUxLDYgQEAgY2F0 ICV7U09VUkNFNDl9IHwgc2VkIC1lICJzfExJQkNMQU5HX1JUX1BMQUNFSE9MREVSfGBwd2RgL3dh c2ktc2RrLTMwL2J1aWxkL3N5c3IKICVwYXRjaCAtUDQwMyAtcDEgLWIgLkQzMjQ4NzEKICVwYXRj aCAtUDQwNCAtcDEgLWIgLkQzMjQ4NzYKICVwYXRjaCAtUDQwNSAtcDEgLWIgLkQzMjQ4NzcKLSVw YXRjaCAtUDQwNiAtcDEgLWIgLkQzMjY4NDAKIAogIyBQR08gcGF0Y2hlcwogJWlmICV7YnVpbGRf d2l0aF9wZ299CkBAIC0xMjA4LDYgKzEyMDYsOSBAQCBmaQogIy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiAlY2hh bmdlbG9nCisqIFdlZCBTZXAgMjMgMjAyNiBNYXJ0aW4gU3RyYW5za3kgPHN0cmFuc2t5QHJlZGhh dC5jb20+IC0gMTU2LjAuMS0xCistIFVwZGF0ZSB0byBsYXRlc3QgdXBzdHJlYW0gKDE1Ni4wLjEp CisKICogVGh1IFNlcCAxNyAyMDI2IE1hcnRpbiBTdHJhbnNreSA8c3RyYW5za3lAcmVkaGF0LmNv bT4gLSAxNTYuMC0yCiAtIERpc2FibGVkIHNlc3Npb24gcmVzdG9yZSBvbiBHbm9tZS4KIAoKZGlm ZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3VyY2VzCmluZGV4IGU0NTM5MjMuLmYxNmFlZGYgMTAwNjQ0 Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291cmNlcwpAQCAtMSw4ICsxLDggQEAKK1NIQTUxMiAoZmly ZWZveC0xNTYuMC4xLnNvdXJjZS50YXIueHopID0gODBhMzJhNzkyNjhiNjcyMjA2ZjU0NzdjYTZi ZmRlNjIwY2I3NDE5YjI3YWFjMDkwZTAxZjA2ZGYwNjk5MGVlMGJiZDgxYmI1YzRhYTc4YWMxZDBl ZGIyNmIxMzNiMWM2ZmExMWNiNjUyMjQ0NWVjY2Q3MGM4MmU3MTlhMjRkNWIKK1NIQTUxMiAoZmly ZWZveC1sYW5ncGFja3MtMTU2LjAuMS0yMDI2MDkyMy50YXIueHopID0gMjFmNDlkNDIwMzM1NTRh ZWU1NDBmODM2NjFiODgxM2YyMGIyODYzZWVlNTBjZGI4YTE4NWEyNWMyMTU2Yzg5NTRkZjUzZmI0 YTY4YWUxMGIwOTA2NzQ2MmFiMzIzYmRjMGI2NzQ3YTRiMGNlNGQ2MTI2YWEwZTc5MmQ2NjZiMzgK IFNIQTUxMiAobW9jaGl0ZXN0LXB5dGhvbi50YXIuZ3opID0gMDg5YjE1OTMwNjhiNzZmNDU3MmFm MDA4NmVhY2NmNTJhNmExMjk5YmZmZmI1ODU5MzIwNmQxOWJmMDIxYWUzODFmMjM4MGJiZmViNDM3 MTU4NmNkNTM3MDZmZjZkZGUzZDI0MDIzOGIyY2FmMTliOTZjNTdkZmMyZjQ1MjRlMzYKIFNIQTUx MiAoZHVtcF9zeW1zLXZlbmRvci50YXIueHopID0gZWUwZWE1MmFhYzc4MWI4ZGQ0ODkzNmEzZDEz YjE0MGJkNzI1YTQ4Y2M0ODhkMjM2OTNiNjhlZGJlM2JjZmJhNTcyMzAyMmRiYTNjMzg0OWQwZGEx YmFjZjBlMzdkZGQzMDdjZmM1NjMwNDE1OWY5MWI3MTQ5NWNlOGEwOGI1NGEKIFNIQTUxMiAod2Fz aS1zZGstMzAudGFyLmd6KSA9IGMwOGIyZGRiNWQ1Y2Y1YjQ4YzViYWJhODBjNjVjNDg1YTMwNDli NDczZDJmMmRkMmJhYmI0MDIyNDNhNzcwOTYzM2M2OTVkZmVlNWY5Y2JiYTUyZmEyNWFkODMyZjAy ZjNiNzNkOWJhMTE0MWM0ZDQ0ZGMzMGRiNzAyOTJhMDRkCiBTSEE1MTIgKHdhc20tY29tcG9uZW50 LWxkLXZlbmRvci50YXIueHopID0gMzU2ZGMwOTUwMjA1MjE5OGU5OTc0NTE5OWI4ZTEwZDgwM2Rh OTQ5MmNlMzRlNDFjNmFlMDJjYjg2NzRmY2M2NDBjZDVlYWZlNjhhMDNlNGU2MWM5ODRmN2Y2Yzdj OGU1Y2RjMzU1MTI1MTU1NmZiM2FlNDYzMWEzNDAzNThmYzAKIFNIQTUxMiAod2FzbS10b29scy12 ZW5kb3IudGFyLnh6KSA9IDUwMmJlMDAyMGQxODI4Yjc1MTI4ZTYxMjdlYjdiZDc3ODM1Y2NlYmU0 ZTVjMTc5YWJjMzhkODgxYmIxZDFmOGUxNWQyMjg0Nzk2Y2Q4MzU3NDUzNmM3YzkxOWEzZTgyMGUw OTUyZDMyM2U4YTM5NzdlOTRiZGVmODljZDgyNjZhCiBTSEE1MTIgKGNiaW5kZ2VuLXZlbmRvci50 YXIueHopID0gZGZlZmMzZWM0YzdiN2Q5ZmUxYjAyNDI4OTg2NmM1YTkxOTQ3NWI4YjczM2UwOWVm MTc1MGQ4ZDI5NWJhNzg5NjliYTE4NzA4OWRiYzE1MWQ5MTc3OWJmNTZhMmQ3ODk4Nzk3YzNkMTlk YjZlMmQxY2I4NDkyOTc1MGU4NjYxN2QKLVNIQTUxMiAoZmlyZWZveC0xNTYuMC5zb3VyY2UudGFy Lnh6KSA9IDA0NjMzMDRhMDg5ODY3MGQyNDgxMTRmNjZmN2MyMzUxNjZhZTIzOTdjMzk4OWE3Yzg3 OGM5NmYwYzU4OWZiYmJhMWYxYzg3NDMyZGFhMjI2MzNiOWZhZGQ5NDM5NGFkZjFkYzM3ZjBlNjdk MjJiMDY2Yzc1ZWZlNWVlYWQ3NWNlCi1TSEE1MTIgKGZpcmVmb3gtbGFuZ3BhY2tzLTE1Ni4wLTIw MjYwOTEwLnRhci54eikgPSA2MDEyM2I5NWMwYTkwYWZkNTcyNDlmYWVkYmZiNThiYzY4N2QxNjJi NzM4OTcwYWE4ZGI0ZDI5ODUzNTVhYzkxNzdkZTNmODdlMzdjMWY2MzUyODI0OWJiMTQ5MDM3MDYw Y2YxMzEzYjNjNTUyOGVhMDIxOTE5OWY4ZjhhMmM2MgoKZGlmZiAtLWdpdCBhL3dhc2kucGF0Y2gg Yi93YXNpLnBhdGNoCmluZGV4IDE1ODZlM2IuLmMyYTk1NWUgMTAwNjQ0Ci0tLSBhL3dhc2kucGF0 Y2gKKysrIGIvd2FzaS5wYXRjaApAQCAtNiw3ICs2LDcgQEAgZGlmZiAtdXAgZmlyZWZveC0xMzQu MC4xL3Rvb2xraXQvbW96LmNvbmZpZ3VyZS53YXNpIGZpcmVmb3gtMTM0LjAuMS90b29sa2l0L21v ei4KICAgICAgICAgIGlmIHdhc2lfc3lzcm9vdDoKICAgICAgICAgICAgICBsb2cuaW5mbygiVXNp bmcgd2FzaSBzeXNyb290IGluICVzIiwgd2FzaV9zeXNyb290KQogLSAgICAgICAgICAgIHJldHVy biBbIi0tc3lzcm9vdD0lcyIgJSB3YXNpX3N5c3Jvb3RdCi0rICAgICAgICAgICAgcmV0dXJuIFsi LS1zeXNyb290PSVzIiAlIHdhc2lfc3lzcm9vdCwgIi1ub2RlZmF1bHRsaWJzIiwgICItbGMiLCAi LWx3YXNpLWVtdWxhdGVkLXByb2Nlc3MtY2xvY2tzIiwgIi1sYysrIiwgIi1sYysrYWJpIiwgIi9o b21lL2tvbWF0L0NWUy9maXJlZm94L2ZpcmVmb3gtMTU2LjAtYnVpbGQvZmlyZWZveC0xNTYuMC93 YXNpLXNkay0zMC9idWlsZC9zeXNyb290L2luc3RhbGwvd2FzaS1yZXNvdXJjZS1kaXIvbGliL3dh c20zMi11bmtub3duLXdhc2lwMS9saWJjbGFuZ19ydC5idWlsdGlucy5hIl0KKysgICAgICAgICAg ICByZXR1cm4gWyItLXN5c3Jvb3Q9JXMiICUgd2FzaV9zeXNyb290LCAiLW5vZGVmYXVsdGxpYnMi LCAgIi1sYyIsICItbHdhc2ktZW11bGF0ZWQtcHJvY2Vzcy1jbG9ja3MiLCAiLWxjKysiLCAiLWxj KythYmkiLCAiL3JhaWQvQ1ZTL2ZpcmVmb3gvZmlyZWZveC0xNTYuMC4xLWJ1aWxkL2ZpcmVmb3gt MTU2LjAuMS93YXNpLXNkay0zMC9idWlsZC9zeXNyb290L2luc3RhbGwvd2FzaS1yZXNvdXJjZS1k aXIvbGliL3dhc20zMi11bmtub3duLXdhc2lwMS9saWJjbGFuZ19ydC5idWlsdGlucy5hIl0KICAg ICAgICAgIHJldHVybiBbXQogIAogICAgICBzZXRfY29uZmlnKCJXQVNJX1NZU1JPT1QiLCB3YXNp X3N5c3Jvb3QpCg==