svn: SVNROOT/ commit-bugs.php commit-email.php commit-svnroot.php post-commit
[email protected] (Gwynne Raskind) Mon, 20 Jul 09 04:40:31 +0000
| Newsgroups | php.cvs,svn.migration |
|---|---|
| Message-ID | <[email protected]> |
--0a47d226f607f673191e79932e67301441b72518 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit gwynne Mon, 20 Jul 2009 04:40:31 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=284413 Changed paths: A SVNROOT/commit-bugs.php U SVNROOT/commit-email.php A SVNROOT/commit-svnroot.php U SVNROOT/post-commit Log: - reorganized the post-commit hook quite a bit to load common information and call sub-hooks for various tasks - added a catch-all email for php/php-src/ to ensure some emails get where they're going - moved Rasmus' bug stuff to its own file - moved the SVNROOT check to its own file as well - make a passing attempt to marshal back to the client the results of SVNROOT updates - actually show the client an error when SMTP connection fails - use ===/!== instead of ==/!= in a couple places as a matter of style --0a47d226f607f673191e79932e67301441b72518 Content-Type: text/x-diff; encoding="utf-8" Content-Disposition: attachment; filename="0a47d226f607f673191e79932e67301441b72518.txt" Content-Transfer-Encoding: base64 QWRkZWQ6IFNWTlJPT1QvY29tbWl0LWJ1Z3MucGhwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNWTlJPT1QvY29tbWl0LWJ1 Z3MucGhwCSAgICAgICAgICAgICAgICAgICAgICAgIChyZXYgMCkKKysrIFNWTlJPT1QvY29tbWl0LWJ1 Z3MucGhwCTIwMDktMDctMjAgMDQ6NDA6MzEgVVRDIChyZXYgMjg0NDEzKQpAQCAtMCwwICsxLDEwNyBA QAorPD9waHAKKworLy8gVGhpcyBzY3JpcHQgaXMgaW50ZW5kZWQgdG8gYmUgY2FsbGVkIGZyb20gcG9z dC1jb21taXQuIEl0IGFzc3VtZXMgdGhhdCBhbGwKKy8vICB0aGUgYXBwcm9wcmlhdGUgdmFyaWFibGVz IGFuZCBmdW5jdGlvbnMgYXJlIGRlZmluZWQuCisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBDb25zdGFudHMKKyR2ZXJz aW9uID0gc3Vic3RyKCckUmV2aXNpb24kJywgc3RybGVuKCckUmV2aXNpb246ICcpLCAtMik7CiskYnVn X3BhdHRlcm4gPSAnLyg/OihwZWNsfHBlYXIpXHMqKT8oPzpidWd8IylbXHMjOl0qKFswLTldKykvaXVY JzsKKyRidWdfdXJsX3ByZWZpeGVzID0gYXJyYXkoCisgICAgJ3BlYXInID0+ICdodHRwOi8vcGVhci5w aHAubmV0L2J1Z3MnLAorICAgICdwZWNsJyA9PiAnaHR0cDovL3BlY2wucGhwLm5ldC9idWdzJywKKyAg ICAnJyA9PiAnaHR0cDovL2J1Z3MucGhwLm5ldCcsCispOworJGJ1Z19ycGNfdXJsID0gJ2h0dHA6Ly9i dWdzLnBocC5uZXQvcnBjLnBocCc7Ciskdmlld3ZjX3VybF9wcmVmaXggPSAnaHR0cDovL3N2bi5waHAu bmV0L3ZpZXd2Yy8/dmlldz1yZXZpc2lvbiZhbXA7cmV2aXNpb249JzsKKworLy8gLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIEdl dCB0aGUgbGlzdCBvZiBtZW50aW9uZWQgYnVncyBmcm9tIHRoZSBjb21taXQgbG9nCitpZiAocHJlZ19t YXRjaF9hbGwoJGJ1Z19wYXR0ZXJuLCAkY29tbWl0X2luZm9bJ2xvZ19tZXNzYWdlJ10sICRtYXRjaGVk X2J1Z3MsIFBSRUdfU0VUX09SREVSKSA8IDEpIHsKKyAgICAvLyBJZiBubyBidWdzIG1hdGNoZWQsIHdl IGRvbid0IGhhdmUgdG8gZG8gYW55dGhpbmcuCisgICAgcmV0dXJuOworfQorCisvLyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8g UHJvY2VzcyB0aGUgbWF0Y2hlcworJGJ1Z19saXN0ID0gYXJyYXkoKTsKK2ZvcmVhY2ggKCRtYXRjaGVk X2J1Z3MgYXMgJG1hdGNoZWRfYnVnKSB7CisgICAgJGJ1ZyA9IGFycmF5KCk7CisgICAgJGJ1Z1sncHJv amVjdCddID0gaXNzZXQoJG1hdGNoZWRfYnVnWzFdKSA/ICRtYXRjaGVkX2J1Z1sxXSA6ICcnOworICAg ICRidWdbJ251bWJlciddID0gaW50dmFsKCRtYXRjaGVkX2J1Z1syXSk7CisgICAgJGJ1Z2lkID0gJGJ1 Z1sncHJvamVjdCddIC4gJGJ1Z1snbnVtYmVyJ107CisgICAgJGJ1Z1sndXJsX3ByZWZpeCddID0gaXNz ZXQoJGJ1Z191cmxfcHJlZml4ZXNbJGJ1Z1sncHJvamVjdCddXSkgPyAkYnVnX3VybF9wcmVmaXhlc1sk YnVnWydwcm9qZWN0J11dIDogJGJ1Z191cmxfcHJlZml4ZXNbJyddOworICAgICRidWdbJ3VybCddID0g JGJ1Z1sndXJsX3ByZWZpeCddIC4gJy8nIC4gJGJ1Z1snbnVtYmVyJ107CisgICAgJGJ1Z1snc3RhdHVz J10gPSAndW5rbm93bic7CisgICAgJGJ1Z1snc2hvcnRfZGVzYyddID0gJyc7CisgICAgJGJ1Z19saXN0 WyRidWdpZF0gPSAkYnVnOworfQorCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gTWFrZSBhbiBSUEMgY2FsbCBmb3IgZWFj aCBidWcKK2lmICghJGlzX0RFQlVHKSB7CisgICAgaW5jbHVkZSBfX0RJUl9fIC4gJy9zZWNyZXQuaW5j JzsKK30KK2ZvcmVhY2ggKCRidWdfbGlzdCBhcyAmJGJ1ZykgeworICAgIC8vIE9ubHkgZG8gdGhpcyBm b3IgY29yZSBQSFAgYnVncworICAgIGlmICgkYnVnWydwcm9qZWN0J10gIT09ICcnKSB7CisgICAgICAg IGNvbnRpbnVlOworICAgIH0KKworICAgICRjb21tZW50ID0gIkF1dG9tYXRpYyBjb21tZW50IGZyb20g U1ZOIG9uIGJlaGFsZiBvZiB7JGNvbW1pdF9pbmZvWydhdXRob3InXX1cbiIgLgorICAgICAgICAgICAg ICAgIlJldmlzaW9uOiB7JHZpZXd2Y191cmxfcHJlZml4fXskUkVWfVxuIiAuCisgICAgICAgICAgICAg ICAiTG9nOiB7JGNvbW1pdF9pbmZvWydsb2dfbWVzc2FnZSddfVxuIjsKKworICAgICRwb3N0ZGF0YSA9 IGFycmF5KAorICAgICAgICAgICAgICAgICAgICAndXNlcicgPT4gJGNvbW1pdF9pbmZvWydhdXRob3In XSwKKyAgICAgICAgICAgICAgICAgICAgJ2lkJyA9PiAkYnVnWydudW1iZXInXSwKKyAgICAgICAgICAg ICAgICAgICAgJ25jb21tZW50JyA9PiAkY29tbWVudCwKKyAgICAgICAgICAgICAgICAgICAgJ01BR0lD X0NPT0tJRScgPT4gJGlzX0RFQlVHID8gJ25vbnNlbnNlJyA6ICRTVk5fTUFHSUNfQ09PS0lFLAorICAg ICAgICAgICAgICAgICk7CisgICAgYXJyYXlfd2FsaygkcG9zdGRhdGEsIGNyZWF0ZV9mdW5jdGlvbign JiR2LCAkaycsICckdiA9IHJhd3VybGVuY29kZSgkaykgLiAiPSIgLiByYXd1cmxlbmNvZGUoJHYpOycp KTsKKyAgICAkcG9zdGRhdGEgPSBpbXBsb2RlKCcmJywgJHBvc3RkYXRhKTsKKworICAgIGlmICgkaXNf REVCVUcpIHsKKyAgICAgICAgcHJpbnQgIkRFQlVHOiBCdWcgI3skYnVnWydudW1iZXInXX06IFdvdWxk IGhhdmUgcG9zdGVkIHRoaXMgcmF3dXJsZW5jb2RlZCBzdHJpbmcgdG8geyRidWdfcnBjX3VybH06XG57 JHBvc3RkYXRhfVxuIjsKKyAgICAgICAgaWYgKG10X3JhbmQoMCwgMSkgPT09IDEpIHsKKyAgICAgICAg ICAgICRidWdbJ2Vycm9yJ10gPSAnREVCVUctc29tZSBraW5kIG9mIGVycm9yJzsKKyAgICAgICAgfSBl bHNlIHsKKyAgICAgICAgICAgICRidWdbJ3N0YXR1cyddID0gJ0RFQlVHLXVua25vd24nOworICAgICAg ICAgICAgJGJ1Z1snc2hvcnRfZGVzYyddID0gIkRFQlVHLUJ1ZyAjeyRidWdbJ251bWJlciddfSI7Cisg ICAgICAgIH0KKyAgICAgICAgY29udGludWU7CisgICAgfQorICAgIC8vIEhvb2sgYW4gZW52IHZhciBz byBlbWFpbHMgY2FuIGJlIHJlc2VudCB3aXRob3V0IG1lc3Npbmcgd2l0aCBidWdzCisgICAgaWYgKGdl dGVudignTk9CVUcnKSkgeworICAgICAgICBjb250aW51ZTsKKyAgICB9CisKKyAgICAkY2ggPSBjdXJs X2luaXQoKTsKKyAgICBjdXJsX3NldG9wdF9hcnJheShhcnJheSgKKyAgICAgICAgQ1VSTE9QVF9VUkwg PT4gJGJ1Z19ycGNfdXJsLAorICAgICAgICBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSID0+IFRSVUUsCisg ICAgICAgIENVUkxPUFRfUE9TVCA9PiBUUlVFLAorICAgICAgICBDVVJMT1BUX0NPTk5FQ1RUSU1FT1VU ID0+IDUsCisgICAgICAgIENVUkxPUFRfVElNRU9VVCA9PiA1LAorICAgICAgICBDVVJMT1BUX1BPU1RG SUVMRFMgPT4gJHBvc3RkYXRhLAorICAgICkpOworCisgICAgJHJlc3VsdCA9IGN1cmxfZXhlYygkY2gp OworCisgICAgaWYgKCRyZXN1bHQgPT09IEZBTFNFKSB7CisgICAgICAgICRidWdbJ2Vycm9yJ10gPSBj dXJsX2Vycm9yKCRjaCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgJGJ1Z19zZXJ2ZXJfZGF0YSA9IGpz b25fZGVjb2RlKCRyZXN1bHQsIFRSVUUpOworICAgICAgICBpZiAoaXNzZXQoJGJ1Z19zZXJ2ZXJfZGF0 YVsncmVzdWx0J11bJ3N0YXR1cyddKSkgeworICAgICAgICAgICAgJGJ1Z1snc3RhdHVzJ10gPSAkYnVn X3NlcnZlcl9kYXRhWydyZXN1bHQnXVsnc3RhdHVzJ11bJ3N0YXR1cyddOworICAgICAgICAgICAgJGJ1 Z1snc2hvcnRfZGVzYyddID0gJGJ1Z19zZXJ2ZXJfZGF0YVsncmVzdWx0J11bJ3N0YXR1cyddWydzZGVz YyddOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJGJ1Z1snZXJyb3InXSA9ICRidWdfc2Vy dmVyX2RhdGFbJ3Jlc3VsdCddWydlcnJvciddOworICAgICAgICB9CisgICAgfQorICAgIGN1cmxfY2xv c2UoJGNoKTsKK30KK3Vuc2V0KCRTVk5fTUFHSUNfQ09PS0lFKTsKKworLy8gJGJ1Z19saXN0IGlzIG5v dyBhdmFpbGFibGUgdG8gbGF0ZXItcnVubmluZyBob29rcworPz4KCgpQcm9wZXJ0eSBjaGFuZ2VzIG9u OiBTVk5ST09UL2NvbW1pdC1idWdzLnBocApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46a2V5d29yZHMKICAgKyBJ ZCBSZXYgUmV2aXNpb24KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBuYXRpdmUKCk1vZGlmaWVkOiBT Vk5ST09UL2NvbW1pdC1lbWFpbC5waHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU1ZOUk9PVC9jb21taXQtZW1haWwucGhw CTIwMDktMDctMjAgMDQ6MzE6MDcgVVRDIChyZXYgMjg0NDEyKQorKysgU1ZOUk9PVC9jb21taXQtZW1h aWwucGhwCTIwMDktMDctMjAgMDQ6NDA6MzEgVVRDIChyZXYgMjg0NDEzKQpAQCAtMSw5ICsxLDcgQEAK IDw/cGhwCgotLy8gTm90ZSB0aGF0IHRoaXMgc2NyaXB0IGlzIGludGVuZGVkIHRvIGJlIGNhbGxlZCBm cm9tIGluc2lkZSB0aGUgcG9zdC1jb21taXQKLS8vIGhvb2suIEl0IG1ha2VzIHNvbWUgYXNzdW1wdGlv bnM6ICRSRVBPUyBhbmQgJFJFViBhcmUgZGVmaW5lZCwgdGhlCi0vLyBydW5fc3ZubG9vaygpIGZ1bmN0 aW9uIGlzIGRlY2xhcmVkLCAkY2hhbmdlZF9wYXRocyBhbmQgJGRpcnNfY2hhbmdlZCBhcmUKLS8vIGRl dGVybWluZWQuCisvLyBUaGlzIHNjcmlwdCBpcyBpbnRlbmRlZCB0byBiZSBjYWxsZWQgZnJvbSBwb3N0 LWNvbW1pdC4gSXQgYXNzdW1lcyB0aGF0IGFsbAorLy8gIHRoZSBhcHByb3ByaWF0ZSB2YXJpYWJsZXMg YW5kIGZ1bmN0aW9ucyBhcmUgZGVmaW5lZC4KCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogLy8gQ29uc3RhbnRzCkBAIC0zMCw2 ICsyOCw3IEBACiAgICAgJ3xecGhwL1plbmRBUEl8JyA9PiBhcnJheSgnemVuZC1lbmdpbmUtY3ZzQGxp c3RzLnBocC5uZXQnLCAnZG9jLWN2c0BsaXN0cy5waHAubmV0JyksCiAgICAgJ3xecGhwL3BocC1zcmMv WmVuZHwnID0+IGFycmF5KCd6ZW5kLWVuZ2luZS1jdnNAbGlzdHMucGhwLm5ldCcpLAogICAgICd8XnBo cC9waHAtc3JjL1RTUk18JyA9PiBhcnJheSgnemVuZC1lbmdpbmUtY3ZzQGxpc3RzLnBocC5uZXQnKSwK KyAgICAnfF5waHAvcGhwLXNyY3wnID0+IGFycmF5KCdwaHAtY3ZzQGxpc3RzLnBocC5uZXQnKSwKCiAg ICAgLy8gcGhwZG9jCiAgICAgJ3xecGhwZG9jL2RvYy1iYXNlfCcgPT4gYXJyYXkoJ2RvYy1jdnNAbGlz dHMucGhwLm5ldCcpLApAQCAtMTE3LDQzICsxMTYsMTEgQEAKIH0KCiAvLyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gR2V0IGlu Zm8gZnJvbSBjb21taXQKLSRjb21taXRfaW5mbyA9IHJ1bl9zdm5sb29rKCdpbmZvJyk7Ci0kY29tbWl0 X3VzZXIgPSB0cmltKCRjb21taXRfaW5mb1swXSk7Ci0kY29tbWl0X2RhdGUgPSBzdHJ0b3RpbWUoc3Vi c3RyKCRjb21taXRfaW5mb1sxXSwgMCwgc3RybGVuKCIwMDAwLTAwLTAwIDAwOjAwOjAwICswMDAwIikp KTsKLSRjb21taXRfbG9nID0gaW1wbG9kZSgiXG4iLCBhcnJheV9zbGljZSgkY29tbWl0X2luZm8sIDMp KTsKLS8vIFN1cHBvcnQgYnVnIzEyMzQgYnVnIHVybCBleHRyYWN0aW9uCi0kYnVncyA9IHByZWdfbWF0 Y2hfYWxsKCIvKD86cGVjbHxwZWFyfClcXHMqKD86YnVnfCMpW1xccyM6XSooWzAtOV0rKS9pIiwgJGNv bW1pdF9sb2csICRidWdzX2FycmF5KTsKLQotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIERldGVybWluZSAiZnJvbSIgYWRk cmVzcwotLy8gVmFyaW91cyByZXBvc2l0b3JpZXMgY2FuIHBsYXkgd2l0aCB0aGlzIHRvIHJlYWQgZnJv bSB0aGVpciBlcXVpdmVsYW50IG9mIHRoZSBvbGQgY3ZzdXNlcnMgZm9sZGVyLCBvciB3aGF0ZXZlciBl bHNlIHRoZXkgbGlrZQotJHVzZXJzREIgPSBmaWxlKGRpcm5hbWUoX19GSUxFX18pIC4gJy91c2Vycy5k YicpOwotJGZyb20gPSBOVUxMOwotJHNhd19sYXN0X0lTTyA9IEZBTFNFOwotZm9yZWFjaCAoJHVzZXJz REIgYXMgJHVzZXJsaW5lKSB7Ci0gICAgbGlzdCAoJHVzZXJuYW1lLCAkZnVsbG5hbWUsICRlbWFpbCkg PSBleHBsb2RlKCI6IiwgdHJpbSgkdXNlcmxpbmUpKTsKLSAgICBpZiAoJHVzZXJuYW1lID09PSAnbGFk ZGVyYWxpY2UnKSB7Ci0gICAgICAgICRzYXdfbGFzdF9JU08gPSBUUlVFOwotICAgIH0KLSAgICBpZiAo JHVzZXJuYW1lID09PSAkY29tbWl0X3VzZXIpIHsKLSAgICAgICAgaWYgKCRzYXdfbGFzdF9JU08gIT09 IFRSVUUpIHsKLSAgICAgICAgICAgICRmdWxsbmFtZSA9IGljb252KCJJU08tODg1OS0xIiwgIlVURi04 Ly9UUkFOU0xJVCIsICRmdWxsbmFtZSk7Ci0gICAgICAgIH0KLSAgICAgICAgJGZyb20gPSBhcnJheSgk dXNlcm5hbWUsICRmdWxsbmFtZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLX0KLWlmIChpc19udWxs KCRmcm9tKSkgewotICAgIGRpZSgiQ291bGRuJ3QgZmluZCB1c2VyXG4iKTsKLX0KLQotLy8gLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K IC8vIEJ1aWxkIGxpc3Qgb2YgZS1tYWlsIGFkZHJlc3NlcyBhbmQgcGFyZW50IGNoYW5nZWQgcGF0aAog JGVtYWlsc190byA9IGFycmF5KCk7Ci0kcGFyZW50X3BhdGggPSAkZGlyc19jaGFuZ2VkWzBdOworJHBh cmVudF9wYXRoID0gJGNvbW1pdF9pbmZvWydkaXJzX2NoYW5nZWQnXVswXTsKCi1mb3JlYWNoICgkZGly c19jaGFuZ2VkIGFzICRjaGFuZ2VkX3BhdGgpIHsKK2ZvcmVhY2ggKCRjb21taXRfaW5mb1snZGlyc19j aGFuZ2VkJ10gYXMgJGNoYW5nZWRfcGF0aCkgewogICAgIGZvcmVhY2ggKCRjb21taXRfZW1haWxfbGlz dCBhcyAkcmVnZXggPT4gJGVtYWlsX2xpc3QpIHsKICAgICAgICAgaWYgKHByZWdfbWF0Y2goJHJlZ2V4 LCAkY2hhbmdlZF9wYXRoLCAkbWF0Y2hlcykgPT09IDEpIHsKICAgICAgICAgICAgICRlbWFpbHNfdG8g PSBhcnJheV9tZXJnZSgkZW1haWxzX3RvLCAkZW1haWxfbGlzdCk7CkBAIC0xNzMsMzIgKzE0MCwxOCBA QAogJGVtYWlsc190byA9IGFycmF5X3VuaXF1ZSgkZW1haWxzX3RvKTsKCiAvLyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gR2V0 IGRpZmZzCi0kZGlmZnMgPSBydW5fc3ZubG9vaygnZGlmZicpOwotJGRpZmZzID0gaW1wbG9kZSgiXG4i LCAkZGlmZnMpOwotJGRpZmZzX2xlbmd0aCA9IHN0cmxlbigkZGlmZnMpOworLy8gUHJvY2VzcyBkaWZm cworJGRpZmZzX2xlbmd0aCA9IHN0cmxlbigkY29tbWl0X2luZm9bJ2RpZmZzJ10pOwogJGRpZmZzX3N0 cmluZyA9ICgkZGlmZnNfbGVuZ3RoID4gMjYyMTQ0ID8gIjxkaWZmcyBleGNlZWRlZCBtYXhpbXVtIHNp emU+IiA6Ci0gICAgICAgICAgICAgICAgICAgICgkZGlmZnNfbGVuZ3RoID4gODE5MiA/IE5VTEwgOiAk ZGlmZnMpKTsKKyAgICAgICAgICAgICAgICAgICAgKCRkaWZmc19sZW5ndGggPiA4MTkyID8gTlVMTCA6 ICRjb21taXRfaW5mb1snZGlmZnMnXSkpOwoKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAvLyBCdWlsZCBlLW1haWwKLSRib3Vu ZGFyeSA9IHNoYTEoInskY29tbWl0X3VzZXJ9eyRjb21taXRfZGF0ZX0iKTsKLSRtZXNzYWdlaWQgPSAi eyRjb21taXRfdXNlcn0teyRjb21taXRfZGF0ZX0teyRSRVZ9LSIgLiBtdF9yYW5kKCk7CiskYm91bmRh cnkgPSBzaGExKCJ7JGNvbW1pdF9pbmZvWydhdXRob3InXX17JGNvbW1pdF9pbmZvWydkYXRlJ119Iik7 CiskbWVzc2FnZWlkID0gInskY29tbWl0X2luZm9bJ2F1dGhvciddfS17JGNvbW1pdF9pbmZvWydkYXRl J119LXskUkVWfS0iIC4gbXRfcmFuZCgpOwogJHN1YmplY3QgPSAic3ZuOiAiIC4gKCRwYXJlbnRfcGF0 aCA9PT0gJycgPyAnLycgOiAkcGFyZW50X3BhdGgpOwotc3dpdGNoIChzdWJzdHIodHJpbSgkY2hhbmdl ZF9wYXRoc1swXSksNCkpIHsKLSAgICBjYXNlICdwZWFyJzogJGJ1Z191cmwgPSAnaHR0cDovL3BlYXIu cGhwLm5ldC9idWdzJzsgYnJlYWs7Ci0gICAgY2FzZSAncGVjbCc6ICRidWdfdXJsID0gJ2h0dHA6Ly9w ZWNsLnBocC5uZXQvYnVncyc7IGJyZWFrOwotICAgIGRlZmF1bHQ6ICAgICAkYnVnX3VybCA9ICdodHRw Oi8vYnVncy5waHAubmV0JzsgICAgIGJyZWFrOwotfQoKLWZvcmVhY2goJGJ1Z3NfYXJyYXlbMF0gYXMg JGs9PiRidWdfbWF0Y2gpIHsKLSAgaWYoc3RyaXN0cigkYnVnX21hdGNoLCdwZWNsJykpICRidWdfdXJs c1ska10gPSAnaHR0cDovL3BlY2wucGhwLm5ldC9idWdzJzsKLSAgZWxzZSBpZihzdHJpc3RyKCRidWdf bWF0Y2gsJ3BlYXInKSkgJGJ1Z191cmxzWyRrXSA9ICdodHRwOi8vcGVhci5waHAubmV0L2J1Z3MnOwot ICBlbHNlICRidWdfdXJsc1ska10gPSAkYnVnX3VybDsKLQotfQotCi1mb3JlYWNoICgkY2hhbmdlZF9w YXRocyBhcyAkY2hhbmdlZF9wYXRoKSB7Citmb3JlYWNoICgkY29tbWl0X2luZm9bJ2NoYW5nZWRfcGF0 aHMnXSBhcyAkY2hhbmdlZF9wYXRoKSB7CiAgICAgJGNoYW5nZWRfcGF0aCA9IHRyaW0oc3Ryc3RyKCRj aGFuZ2VkX3BhdGgsICcgJykpOwogICAgIGlmIChzdWJzdHIoJGNoYW5nZWRfcGF0aCwgLTEpICE9PSAn LycpIHsKICAgICAgICAgJHN1YmplY3QgLj0gJyAnIC4gc3Vic3RyKCRjaGFuZ2VkX3BhdGgsIHN0cmxl bigkcGFyZW50X3BhdGgpKTsKQEAgLTIwNiw0NiArMTU5LDI2IEBACiB9CiAkc3ViamVjdCA9IHN1YnN0 cigkc3ViamVjdCwgMCwgOTUwKTsgLy8gTWF4IFNNVFAgbGluZSBsZW5ndGggPSA5OTguIFNvbWUgc2xv cCBpbiB0aGlzIHZhbHVlLgoKLSRmdWxsbmFtZSA9ICI9P3V0Zi04P3E/IiAuIGltYXBfOGJpdChzdHJf cmVwbGFjZShhcnJheSgnPycsICcgJyksIGFycmF5KCc9M0YnLCAnXycpLCAkZnJvbVsxXSkpIC4gIj89 IjsKKyRmdWxsbmFtZSA9ICI9P3V0Zi04P3E/IiAuIGltYXBfOGJpdChzdHJfcmVwbGFjZShhcnJheSgn PycsICcgJyksIGFycmF5KCc9M0YnLCAnXycpLCAkY29tbWl0X2luZm9bJ2F1dGhvcl9uYW1lJ10pKSAu ICI/PSI7CgotJG1zZ19oZWFkZXJzID0gIkZyb206IHskZnVsbG5hbWV9IDx7JGZyb21bMF19QHBocC5u ZXQ+XHJcbiIgLgorJG1zZ19oZWFkZXJzID0gIkZyb206IHskZnVsbG5hbWV9IDx7JGNvbW1pdF9pbmZv WydhdXRob3InXX1AcGhwLm5ldD5cclxuIiAuCiAgICAgICAgICAgICAgICAiVG86ICIgLiBpbXBsb2Rl KCcsICcsICRlbWFpbHNfdG8pIC4gIlxyXG4iIC4KICAgICAgICAgICAgICAgICJNZXNzYWdlLUlEOiA8 c3ZueyRtZXNzYWdlaWR9QHN2bi5waHAubmV0PlxyXG4iIC4KLSAgICAgICAgICAgICAgICJEYXRlOiAi IC4gZGF0ZShEQVRFX1JGQzgyMiwgJGNvbW1pdF9kYXRlKSAuICJcclxuIiAuCisgICAgICAgICAgICAg ICAiRGF0ZTogIiAuIGRhdGUoREFURV9SRkM4MjIsICRjb21taXRfaW5mb1snZGF0ZSddKSAuICJcclxu IiAuCiAgICAgICAgICAgICAgICAiU3ViamVjdDogeyRzdWJqZWN0fVxyXG4iIC4KICAgICAgICAgICAg ICAgICJNSU1FLVZlcnNpb246IDEuMFxyXG4iIC4KICAgICAgICAgICAgICAgICJDb250ZW50LVR5cGU6 IG11bHRpcGFydC9taXhlZDsgYm91bmRhcnk9XCJ7JGJvdW5kYXJ5fVwiXHJcbiI7CgogJGJ1Z3NfYm9k eSA9ICcnOwotaWYgKCRidWdzKSB7Ci0gICAgaW5jbHVkZSAnL2hvbWUvc3ZuL1NWTlJPT1Qvc2VjcmV0 LmluYyc7Ci0gICAgJGJ1Z3NfYm9keSA9IChjb3VudCgkYnVnc19hcnJheVsxXSk+MSkgPyAiQnVnczog IiA6ICJCdWc6ICI7Ci0gICAgZm9yZWFjaCAoJGJ1Z3NfYXJyYXlbMV0gYXMgJGs9PiRidWdfaWQpIHsK LSAgICAgICAgJGJ1Z19zZGVzYyA9ICcnOwotICAgICAgICAkYnVnX3N0YXR1cyA9ICcnOwotICAgICAg ICBpZigkYnVnX3VybHNbJGtdPT0naHR0cDovL2J1Z3MucGhwLm5ldCcpIHsKLSAgICAgICAgICAgICRj aCA9IGN1cmxfaW5pdCgnaHR0cDovL2J1Z3MucGhwLm5ldC9ycGMucGhwJyk7Ci0gICAgICAgICAgICBj dXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIDEpOwotICAgICAgICAgICAgY3Vy bF9zZXRvcHQoJGNoLCBDVVJMT1BUX1BPU1QsIDEpOwotICAgICAgICAgICAgJG5jb21tZW50ID0gIkF1 dG9tYXRpYyBjb21tZW50IGZyb20gU1ZOIG9uIGJlaGFsZiBvZiB7JGZyb21bMF19XG4iIC4KLSAgICAg ICAgICAgICAgICAgICAgICAgICJMb2c6ICRjb21taXRfbG9nXG4iIC4KLSAgICAgICAgICAgICAgICAg ICAgICAgICJSZXZpc2lvbjogaHR0cDovL3N2bi5waHAubmV0L3ZpZXd2Yz92aWV3PXJldmlzaW9uJnJl dmlzaW9uPXskUkVWfVxuIjsKLSAgICAgICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NU RklFTERTLCAidXNlcj0iIC4gcmF3dXJsZW5jb2RlKCRmcm9tWzBdKSAuCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICImaWQ9eyRidWdfaWR9IiAuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICImbmNvbW1lbnQ9IiAuIHJhd3VybGVuY29kZSgkbmNvbW1lbnQpIC4KLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIiZNQUdJQ19DT09LSUU9JFNWTl9NQUdJQ19DT09LSUUiKTsKLSAgICAgICAgICAg ICRyZXQgPSBjdXJsX2V4ZWMoJGNoKTsKLSAgICAgICAgICAgIGlmKCRyZXQgIT09IGZhbHNlICkgewot ICAgICAgICAgICAgICAgICRqc29uID0ganNvbl9kZWNvZGUoJHJldCx0cnVlKTsKLSAgICAgICAgICAg ICAgICBpZihpc3NldCgkanNvblsncmVzdWx0J11bJ3N0YXR1cyddKSkgewotICAgICAgICAgICAgICAg ICAgICAkYnVnX3N0YXR1cyA9ICcgKCcuJGpzb25bJ3Jlc3VsdCddWydzdGF0dXMnXVsnc3RhdHVzJ10u JyknOwotICAgICAgICAgICAgICAgICAgICAkYnVnX3NkZXNjID0gJyAnLiRqc29uWydyZXN1bHQnXVsn c3RhdHVzJ11bJ3NkZXNjJ107Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAg ICAgICAgY3VybF9jbG9zZSgkY2gpOworaWYgKGlzc2V0KCRidWdfbGlzdCkgJiYgY291bnQoJGJ1Z19s aXN0KSA+IDApIHsKKyAgICAkYnVnc19ib2R5ID0gY291bnQoJGJ1Z19saXN0KSA+IDEgPyAiQnVnczog IiA6ICJCdWc6ICI7CisgICAgZm9yZWFjaCAoJGJ1Z19saXN0IGFzICRuID0+ICRidWcpIHsKKyAgICAg ICAgaWYgKGlzc2V0KCRidWdbJ2Vycm9yJ10pKSB7CisgICAgICAgICAgICAkc3RhdHVzID0gJyhlcnJv ciBnZXR0aW5nIGJ1ZyBpbmZvcm1hdGlvbiknOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg JHN0YXR1cyA9ICIoeyRidWdbJ3N0YXR1cyddfSkgeyRidWdbJ3Nob3J0X2Rlc2MnXX0iOwogICAgICAg ICB9Ci0gICAgICAgIGlmKCRrKSAkYnVnc19ib2R5IC49ICcgICAgICAgJzsKLSAgICAgICAgJGJ1Z3Nf Ym9keSAuPSAkYnVnX3VybHNbJGtdLiIvJGJ1Z19pZHskYnVnX3N0YXR1c317JGJ1Z19zZGVzY31cclxu IjsKKyAgICAgICAgJGJ1Z3NfYm9keSAuPSAieyRidWdbJ3VybCddfSB7JHN0YXR1c31cclxuICAgICAg IjsKICAgICB9CiB9CgpAQCAtMjUzLDE3ICsxODYsMTcgQEAKICAgICAgICAgICAgICJDb250ZW50LVR5 cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9XCJ1dGYtOFwiXHJcbiIgLgogICAgICAgICAgICAgIkNvbnRl bnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcclxuIiAuCiAgICAgICAgICAgICAiXHJcbiIgLgotICAg ICAgICAgICAgInskY29tbWl0X3VzZXJ9XHRcdCIgLiBkYXRlKERBVEVfUkZDMjgyMiwgJGNvbW1pdF9k YXRlKSAuICJcclxuIiAuCisgICAgICAgICAgICAieyRjb21taXRfaW5mb1snYXV0aG9yJ119XHRcdCIg LiBkYXRlKERBVEVfUkZDMjgyMiwgJGNvbW1pdF9pbmZvWydkYXRlJ10pIC4gIlxyXG4iIC4KICAgICAg ICAgICAgICJcclxuIiAuCiAgICAgICAgICAgICAiUmV2aXNpb246IGh0dHA6Ly9zdm4ucGhwLm5ldC92 aWV3dmM/dmlldz1yZXZpc2lvbiZyZXZpc2lvbj17JFJFVn1cclxuIiAuCiAgICAgICAgICAgICAiXHJc biIgLgogICAgICAgICAgICAgIkNoYW5nZWQgcGF0aHM6XHJcbiIgLgotICAgICAgICAgICAgIlx0IiAu IGltcGxvZGUoIlxyXG5cdCIsICRjaGFuZ2VkX3BhdGhzKSAuICJcclxuIiAuCisgICAgICAgICAgICAi XHQiIC4gaW1wbG9kZSgiXHJcblx0IiwgJGNvbW1pdF9pbmZvWydjaGFuZ2VkX3BhdGhzJ10pIC4gIlxy XG4iIC4KICAgICAgICAgICAgICJcclxuIiAuCiAgICAgICAgICAgICAiTG9nOlxyXG4iIC4KLSAgICAg ICAgICAgICRjb21taXRfbG9nIC4gIlxyXG4iIC4KLSAgICAgICAgICAgICIkYnVnc19ib2R5XHJcbiIg LgotICAgICAgICAgICAgJGRpZmZzX3N0cmluZzsKKyAgICAgICAgICAgICJ7JGNvbW1pdF9pbmZvWyds b2dfbWVzc2FnZSddfVxyXG4iIC4KKyAgICAgICAgICAgICJ7JGJ1Z3NfYm9keX1cclxuIiAuCisgICAg ICAgICAgICBzdHJfcmVwbGFjZSgiXG4iLCAiXHJcbiIsICRkaWZmc19zdHJpbmcpOwoKIGlmICgkZGlm ZnNfc3RyaW5nID09PSBOVUxMKSB7CiAgICAgJG1zZ19ib2R5IC49CkBAIC0yODcsNyArMjIwLDcgQEAK ICAgICAkc29ja2V0ID0gZnNvY2tvcGVuKCRzbXRwX3NlcnZlciwgZ2V0c2VydmJ5bmFtZSgnc210cCcs ICd0Y3AnKSwgJGVycm5vKTsKIH0KIGlmICgkc29ja2V0ID09PSBGQUxTRSkgewotICAgIGRpZSgiQ291 bGRuJ3QgY29ubmVjdCB0byBTTVRQIHNlcnZlciB7JHNtdHBfc2VydmVyfS4gRXJybm86IHskZXJybm99 LlxuIik7CisgICAgZmFpbCgiQ291bGRuJ3QgY29ubmVjdCB0byBTTVRQIHNlcnZlciB7JHNtdHBfc2Vy dmVyfS4gRXJybm86IHskZXJybm99LlxuIik7CiB9CgogZndyaXRlKCRzb2NrZXQsCgpBZGRlZDogU1ZO Uk9PVC9jb21taXQtc3Zucm9vdC5waHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU1ZOUk9PVC9jb21taXQtc3Zucm9vdC5w aHAJICAgICAgICAgICAgICAgICAgICAgICAgKHJldiAwKQorKysgU1ZOUk9PVC9jb21taXQtc3Zucm9v dC5waHAJMjAwOS0wNy0yMCAwNDo0MDozMSBVVEMgKHJldiAyODQ0MTMpCkBAIC0wLDAgKzEsMzQgQEAK Kzw/cGhwCisKKy8vIFRoaXMgc2NyaXB0IGlzIGludGVuZGVkIHRvIGJlIGNhbGxlZCBmcm9tIHBvc3Qt Y29tbWl0LiBJdCBhc3N1bWVzIHRoYXQgYWxsCisvLyAgdGhlIGFwcHJvcHJpYXRlIHZhcmlhYmxlcyBh bmQgZnVuY3Rpb25zIGFyZSBkZWZpbmVkLgorCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gQ29uc3RhbnRzCiskdmVyc2lv biA9IHN1YnN0cignJFJldmlzaW9uJCcsIHN0cmxlbignJFJldmlzaW9uOiAnKSwgLTIpOworCisvLyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorLy8gQ2hlY2sgZm9yIGEgU1ZOUk9PVCBjb21taXQKKyRTVk5ST09UX2NoYW5nZWQgPSBGQUxT RTsKK2ZvcmVhY2ggKCRjb21taXRfaW5mb1snZGlyc19jaGFuZ2VkJ10gYXMgJGNoYW5nZWRfcGF0aCkg eworICAgIGlmIChzdWJzdHIoJGNoYW5nZWRfcGF0aCwgMCwgNykgPT0gJ1NWTlJPT1QnKSB7CisgICAg ICAgICRTVk5ST09UX2NoYW5nZWQgPSBUUlVFOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKKy8v IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisvLyBJZiBTVk5ST09UIGhhZCBhIGNvbW1pdCwgd2UgbmVlZCB0byB1cGRhdGUgdGhlIGFk bWluIGNvcHkKK2lmICgkU1ZOUk9PVF9jaGFuZ2VkKSB7CisgICAgaWYgKCRpc19ERUJVRykgeworICAg ICAgICBwcmludCAiVXBkYXRpbmcgU1ZOUk9PVC4uLlxuIjsKKyAgICB9CisgICAgY2hkaXIoX19ESVJf Xyk7CisgICAgZXhlYygnZXhlYyBzdm4gdXBkYXRlJywgJG91dHB1dCwgJHN0YXR1cyk7CisgICAgZndy aXRlKHN0ZGVyciwgaW1wbG9kZSgiXG4iLCAkb3V0cHV0KSAuICJcbiIpOworICAgIGlmICgkc3RhdHVz ICE9IDApIHsKKyAgICAgICAgZmFpbCgic3ZuIHVwZGF0ZSBvbiBTVk5ST09UIGZhaWxlZCB3aXRoIGV4 aXQgY29kZSB7JHN0YXR1c30hXG4iKTsKKyAgICB9Cit9CisKKz8+CgoKUHJvcGVydHkgY2hhbmdlcyBv bjogU1ZOUk9PVC9jb21taXQtc3Zucm9vdC5waHAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmtleXdvcmRzCiAg ICsgSWQgUmV2IFJldmlzaW9uCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgbmF0aXZlCgpNb2RpZmll ZDogU1ZOUk9PVC9wb3N0LWNvbW1pdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTVk5ST09UL3Bvc3QtY29tbWl0CTIwMDkt MDctMjAgMDQ6MzE6MDcgVVRDIChyZXYgMjg0NDEyKQorKysgU1ZOUk9PVC9wb3N0LWNvbW1pdAkyMDA5 LTA3LTIwIDA0OjQwOjMxIFVUQyAocmV2IDI4NDQxMykKQEAgLTIzLDEwICsyMywxMyBAQAogaWYgKHZl cnNpb25fY29tcGFyZSgnNS4yLjAnLCBQSFBfVkVSU0lPTiwgJz4nKSkgewogICAgIGZhaWwoIlJlcXVp cmVzIGF0IGxlYXN0IFBIUCA1LjIuXG4iKTsKIH0KK2lmICghZGVmaW5lZCgnX19ESVJfXycpKSB7Cisg ICAgZGVmaW5lKCdfX0RJUl9fJywgZGlybmFtZShfX0ZJTEVfXykpOworfQoKIC8vIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAvLyBB cmd1bWVudHMKLWlmICgkYXJnYyAhPSAzKSB7CitpZiAoJGFyZ2MgIT09IDMpIHsKICAgICBmYWlsKCJQ YXNzIGV4YWN0bHkgdHdvIGFyZ3VtZW50czogUkVQT1MgYW5kIFJFVi5cbiIpOwogfQogJFJFUE9TID0g JGFyZ3ZbMV07CkBAIC0zNyw3ICs0MCw3IEBACiBmdW5jdGlvbiBydW5fc3ZubG9vaygkY29tbWFuZCkK IHsKICAgICBleGVjKCdleGVjIHN2bmxvb2sgJyAuIGVzY2FwZXNoZWxsYXJnKCRjb21tYW5kKSAuICcg LXIgJyAuIGVzY2FwZXNoZWxsYXJnKCRHTE9CQUxTWydSRVYnXSkgLiAnICcgLiBlc2NhcGVzaGVsbGFy ZygkR0xPQkFMU1snUkVQT1MnXSksICRvdXRwdXQsICRzdGF0dXMpOwotICAgIGlmICgkc3RhdHVzICE9 IDApIHsKKyAgICBpZiAoJHN0YXR1cyAhPT0gMCkgewogICAgICAgICBmYWlsKCJzdm5sb29rIGZhaWxl ZCB3aXRoIGV4aXQgY29kZSB7JHN0YXR1c31cbk91dHB1dDpcbiIgLiBpbXBsb2RlKCJcbiIsICRvdXRw dXQpIC4gIlxuIik7CiAgICAgfQogICAgIHJldHVybiAkb3V0cHV0OwpAQCAtNDUsMzUgKzQ4LDQyIEBA CgogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KIC8vIEJ1aWxkIGxpc3Qgb2YgY2hhbmdlcwotJGNoYW5nZWRfcGF0aHMgPSBydW5f c3ZubG9vaygnY2hhbmdlZCcpOwotJGRpcnNfY2hhbmdlZCA9IHJ1bl9zdm5sb29rKCdkaXJzLWNoYW5n ZWQnKTsKKyRjb21taXRfaW5mbyA9IGFycmF5KAorICAgICdjaGFuZ2VkX3BhdGhzJyA9PiBydW5fc3Zu bG9vaygnY2hhbmdlZCcpLAorICAgICdkaXJzX2NoYW5nZWQnID0+IHJ1bl9zdm5sb29rKCdkaXJzLWNo YW5nZWQnKSwKKyAgICAnYXV0aG9yJyA9PiAoJGlzX0RFQlVHICYmIGdldGVudigiREVCVUdVU0VSIikp ID8gZ2V0ZW52KCJERUJVR1VTRVIiKSA6IHRyaW0oaW1wbG9kZSgnJywgcnVuX3N2bmxvb2soJ2F1dGhv cicpKSksCisgICAgJ2xvZ19tZXNzYWdlJyA9PiB0cmltKGltcGxvZGUoJycsIHJ1bl9zdm5sb29rKCds b2cnKSkpLAorICAgICdkYXRlJyA9PiBzdHJ0b3RpbWUoc3Vic3RyKHRyaW0oaW1wbG9kZSgnJywgcnVu X3N2bmxvb2soJ2RhdGUnKSkpLCAwLCBzdHJsZW4oIjAwMDAtMDAtMDAgMDA6MDA6MDAgKzAwMDAiKSkp LAorICAgICdkaWZmcycgPT4gaW1wbG9kZSgiXG4iLCBydW5fc3ZubG9vaygnZGlmZicpKSwKKyk7Cgog Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KLS8vIENhbGwgZS1tYWlsZXIgc2NyaXB0Ci1yZXF1aXJlIGRpcm5hbWUoX19GSUxFX18p IC4gJy9jb21taXQtZW1haWwucGhwJzsKLQotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIENoZWNrIGZvciBhIFNWTlJPT1Qg Y29tbWl0Ci0kU1ZOUk9PVF9jaGFuZ2VkID0gRkFMU0U7Ci1mb3JlYWNoICgkZGlyc19jaGFuZ2VkIGFz ICRjaGFuZ2VkX3BhdGgpIHsKLSAgICBpZiAoc3Vic3RyKCRjaGFuZ2VkX3BhdGgsIDAsIDcpID09ICdT Vk5ST09UJykgewotICAgICAgICAkU1ZOUk9PVF9jaGFuZ2VkID0gVFJVRTsKKy8vIFJlYWQgdGhlIHVz ZXIgZGF0YWJhc2UKKyR1c2Vyc0RCID0gZmlsZShkaXJuYW1lKF9fRklMRV9fKSAuICcvdXNlcnMuZGIn KTsKKyRzYXdfbGFzdF9JU08gPSBGQUxTRTsKK2ZvcmVhY2ggKCR1c2Vyc0RCIGFzICR1c2VybGluZSkg eworICAgIGxpc3QgKCR1c2VybmFtZSwgJGZ1bGxuYW1lLCAkZW1haWwpID0gZXhwbG9kZSgiOiIsIHRy aW0oJHVzZXJsaW5lKSk7CisgICAgaWYgKCR1c2VybmFtZSA9PT0gJ2xhZGRlcmFsaWNlJykgeworICAg ICAgICAkc2F3X2xhc3RfSVNPID0gVFJVRTsKICAgICB9CisgICAgaWYgKCR1c2VybmFtZSA9PT0gJGNv bW1pdF9pbmZvWydhdXRob3InXSkgeworICAgICAgICBpZiAoJHNhd19sYXN0X0lTTyAhPT0gVFJVRSkg eworICAgICAgICAgICAgJGZ1bGxuYW1lID0gaWNvbnYoIklTTy04ODU5LTEiLCAiVVRGLTgvL1RSQU5T TElUIiwgJGZ1bGxuYW1lKTsKKyAgICAgICAgfQorICAgICAgICAkY29tbWl0X2luZm9bJ2F1dGhvcl9u YW1lJ10gPSAkZnVsbG5hbWU7CisgICAgICAgICRjb21taXRfaW5mb1snYXV0aG9yX2VtYWlsJ10gPSAk ZW1haWw7CisgICAgICAgIGJyZWFrOworICAgIH0KIH0KK2lmICghaXNzZXQoJGNvbW1pdF9pbmZvWydh dXRob3JfbmFtZSddKSkgeworICAgIGZhaWwoIkNvdWxkbid0IGZpbmQgdXNlclxuIik7Cit9CgogLy8g LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KLS8vIElmIFNWTlJPT1QgaGFkIGEgY29tbWl0LCB3ZSBuZWVkIHRvIHVwZGF0ZSB0aGUgYWRt aW4gY29weQotaWYgKCRTVk5ST09UX2NoYW5nZWQpIHsKLSAgICBpZiAoJGlzX0RFQlVHKSB7Ci0gICAg ICAgIHByaW50ICJVcGRhdGluZyBTVk5ST09ULi4uXG4iOwotICAgIH0KLSAgICBjaGRpcihkaXJuYW1l KF9fRklMRV9fKSk7Ci0gICAgZXhlYygnZXhlYyBzdm4gdXBkYXRlJywgJG91dHB1dCwgJHN0YXR1cyk7 Ci0gICAgcHJpbnQgaW1wbG9kZSgiXG4iLCAkb3V0cHV0KSAuICJcbiI7Ci0gICAgaWYgKCRzdGF0dXMg IT0gMCkgewotICAgICAgICBmYWlsKCJzdm4gdXBkYXRlIG9uIFNWTlJPT1QgZmFpbGVkIHdpdGggZXhp dCBjb2RlIHskc3RhdHVzfSFcbiIpOwotICAgIH0KLX0KKy8vIENhbGwgdmFyaW91cyBzdWItc2NyaXB0 cworcmVxdWlyZSBfX0RJUl9fIC4gJy9jb21taXQtYnVncy5waHAnOworcmVxdWlyZSBfX0RJUl9fIC4g Jy9jb21taXQtZW1haWwucGhwJzsKK3JlcXVpcmUgX19ESVJfXyAuICcvY29tbWl0LXN2bnJvb3QucGhw JzsKCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogLy8gRG9uZSEK --0a47d226f607f673191e79932e67301441b72518--