SF.net SVN: phpwiki:[11162] trunk/configurator.php
carstenklapp--- via phpwiki-checkins <[email protected]> Sun, 23 Feb 2025 08:56:33 +0000
| Newsgroups | gmane.comp.web.wiki.phpwiki.checkins |
|---|---|
| Message-ID | <[email protected]> |
UmV2aXNpb246IDExMTYyCiAgICAgICAgICBodHRwOi8vc291cmNlZm9yZ2UubmV0L3AvcGhwd2lr aS9jb2RlLzExMTYyCkF1dGhvcjogICBjYXJzdGVua2xhcHAKRGF0ZTogICAgIDIwMjUtMDItMjMg MDg6NTY6MzMgKzAwMDAgKFN1biwgMjMgRmViIDIwMjUpCkxvZyBNZXNzYWdlOgotLS0tLS0tLS0t LQpOZXcgY2xhc3MgX2RlZmluZV9vcHRpb25hbF9zdWdnZXN0aW9uIGZvciBjYWxjdWxhdGVkIHBh dGhzIHRoYXQgZGlmZmVyIGZyb20gdGhlIGRlZmF1bHRzLiBOZXcgc3BvdCBmb3IgZGVmaW5pbmcg QURNSU5fVVNFUiAmIHB3ZC4gSW1wcm92ZWQgaW5zdHJ1Y3Rpb25zLiBCZXR0ZXIgaGFuZGxpbmcg b2YgZGVmYXVsdCBkaXJlY3RvcmllcyBhbmQgY2FsY3VsYXRlIGRpZmZlcmVudCBwYXRocyBmb3Ig d2luZG93cy4KCk1vZGlmaWVkIFBhdGhzOgotLS0tLS0tLS0tLS0tLQogICAgdHJ1bmsvY29uZmln dXJhdG9yLnBocAoKTW9kaWZpZWQ6IHRydW5rL2NvbmZpZ3VyYXRvci5waHAKPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0gdHJ1bmsvY29uZmlndXJhdG9yLnBocAkyMDI1LTAyLTIzIDAzOjI4OjU4IFVUQyAocmV2IDEx MTYxKQorKysgdHJ1bmsvY29uZmlndXJhdG9yLnBocAkyMDI1LTAyLTIzIDA4OjU2OjMzIFVUQyAo cmV2IDExMTYyKQpAQCAtMSw3ICsxLDQgQEAKIDw/cGhwCi0vLyBkZWZpbmluZyB0aGVzZSAyIGhl cmUgaXMgYSB0ZW1wb3JhcnkgZml4Ci1pZiAoIWRlZmluZWQoJ0FETUlOX1VTRVInKSkgZGVmaW5l KCdBRE1JTl9VU0VSJywgJycpOwotaWYgKCFkZWZpbmVkKCdBRE1JTl9QQVNTV0QnKSkgZGVmaW5l KCdBRE1JTl9QQVNTV0QnLCAnJyk7CiAvKioKICAqIENvcHlyaWdodCDCqSAyMDAyLDIwMDMsMjAw NSwyMDA4LTIwMTAgJFRoZVBocFdpa2lQcm9ncmFtbWluZ1RlYW0KICAqIENvcHlyaWdodCDCqSAy MDAyIE1hcnRpbiBHZWlzbGVyIDxnaW1wc3RlckBnaW1wc3Rlci5jb20+CkBAIC0xNTQsNiArMTUx LDggQEAKIC8vIElmIGNvbmZpZy5pbmkgZXhpc3RzLCB3ZSByZXF1aXJlIEFETUlOX1VTRVIgYWNj ZXNzIGJ5IGZha2luZyBIdHRwQXV0aC4KIC8vIFNvIG5vYm9keSBjYW4gc2VlIG9yIHJlc2V0IHRo ZSBwYXNzd29yZChzKS4KIGlmIChmaWxlX2V4aXN0cygkZnNfY29uZmlnX2ZpbGUpKSB7CisgICAg ZXhpdCgiQ29uZmlndXJhdGlvbiBjb25maWcgZmlsZSBcIiRmc19jb25maWdfZmlsZVwiIGFscmVh ZHkgZXhpc3RzLlxuIgorICAgIC4gIkNhbm5vdCBjb250aW51ZTogWW91IGhhdmUgdG8gZml4IHRo YXQgbWFudWFsbHkuIik7CiAgICAgLy8gUmVxdWlyZSBhZG1pbiB1c2VyCiAgICAgaWYgKCFkZWZp bmVkKCdBRE1JTl9VU0VSJykgb3IgIWRlZmluZWQoJ0FETUlOX1BBU1NXRCcpKSB7CiAgICAgICAg IGlmICghZnVuY3Rpb25fZXhpc3RzKCJJbmlDb25maWciKSkgewpAQCAtMzYxLDE0ICszNjAsMjMg QEAKICAgICA8cD5PbiBhbnkgY29uZmlndXJhdGlvbiBwcm9ibGVtcywgcGxlYXNlIGVkaXQgdGhl IHJlc3VsdGluZyBjb25maWcuaW5pCiAgICAgICAgbWFudWFsbHkuIElmIG9uZSBpcyBub3QgY3Jl YXRlZCwgY29weSBjb25maWctZGlzdC5pbmkgdG8gY29uZmlnLmluaSBhbmQKICAgICAgICBlZGl0 IHRoYXQuPC9wPgotICAgIDxwPlRoaXMgZmlsZSBjdXJyZW50bHkgaGFzIHByb2JsZW1zIHdpdGg6 PC9wPgorICAgIDxwPlRoaXMgZmlsZSBjdXJyZW50bHkgaGFzIHRoZSBmb2xsb3dpbmcgaXNzdWVz OjwvcD4KICAgICA8dWw+Ci0gICAgPGxpPkhhbmRsaW5nIFdpbmRvd3MgcGF0aG5hbWVzICh1c2Ug Zm9yd2FyZCBzbGFzaGVzIC8pPC9saT4KLSAgICA8bGk+RWRpdGluZyBleGlzdGluZyBjb25maWcu aW5pIGZpbGUgaXMgY3VycmVudGx5IG5vdCBwb3NzaWJsZS4gUmVuYW1lIGl0Ci0gICAgICAgIHRv IGdlbmVyYXRlIGEgbmV3IG9uZSwgb3IgZWRpdCBpdCBtYW51YWxseS48L2xpPgotICAgIDxsaT5Q aHAgY3J5cHQoKSBmdW5jdGlvbiBmYWlscyBzb21ldGltZXMgYW5kIHJldHVybnMgKjAgb3IgKjEg YXMgdGhlCi0gICAgICAgIHBhc3N3b3JkLiBJbiB0aGF0IGNhc2UgcnVuIHBhc3NlbmNyeXB0LnBo cCB0byBnZW5lcmF0ZSBhIG5ldyBwYXNzd29yZAotICAgICAgICBhbmQgbWFudWFsbHkgcGFzdGUg aXQgaW50byBjb25maWcuaW5pLjwvbGk+Cis8P3BocCBpZihpc1dpbmRvd3MoKSkgeyA/PgorICAg IDxsaT5Gb3IgV2luZG93cyBwYXRobmFtZXMsIHVzZSBmb3J3YXJkIHNsYXNoZXMgLyBpbnN0ZWFk LiBBbnkgXCB3aWxsIGJlCisgICAgICAgIGNvbnZlcnRlZC48L2xpPgorICAgIDxsaT5EZWZhdWx0 IHBhdGhzIHdpbGwgYmUgc3VnZ2VzdGVkIGJhc2VkIG9uIHRoZSBXaW5kb3dzIFRFTVAgZGlyIGlu c3RlYWQKKyAgICAgICAgb2YgL3RtcC48L2xpPgorPD9waHAgfSA/PgorICAgIDxsaT5Vc2luZyB0 aGUgc3VnZ2VzdGVkIHRlbXBvcmFyeSBkaXJzIHdpbGwgZ2V0IHlvdSB1cCBhbmQgcnVubmluZyBx dWlja2x5CisgICAgICAgIGJ1dCB5b3Ugd2lsbCBsb3NlIHlvdXIgZGF0YSBzb29uZXIgb3IgbGF0 ZXIgaWYgeW91IGRvIG5vdCBjaGFuZ2UgdGhlbQorICAgICAgICB0byBtb3JlIHBlcm1hbmVudCBk aXJlY3RvcmllcyE8L2xpPgorICAgIDxsaT5FZGl0aW5nIGFuIGV4aXN0aW5nIGNvbmZpZy5pbmkg ZmlsZSB1c2luZyB0aGlzIGNvbmZpZ3VyYXRvciBpcworICAgICAgICBjdXJyZW50bHkgbm90IHBv c3NpYmxlLiBSZW5hbWUgb3IgZGVsZXRlIHRoZSBmaWxlIHRvIGdlbmVyYXRlIGEgbmV3CisgICAg ICAgIG9uZSwgb3IgZWRpdCBpdCBtYW51YWxseS48L2xpPgorICAgIDxsaT5UaGUgUGhwIGNyeXB0 KCkgZnVuY3Rpb24gZmFpbHMgc29tZXRpbWVzIGFuZCByZXR1cm5zICowIG9yICoxIGFzIHRoZQor ICAgICAgICBwYXNzd29yZC4gSW4gdGhhdCBjYXNlIHJ1biBwYXNzZW5jcnlwdC5waHAgdG8gZ2Vu ZXJhdGUgYSBuZXcKKyAgICAgICAgQURNSU5fUEFTU1dEIGFuZCBtYW51YWxseSBwYXN0ZSBpdCBp bnRvIGNvbmZpZy5pbmkuPC9saT4KICAgICA8L3VsPgogPC9kaXY+CiAKQEAgLTQyOSw2ICs0Mzcs MjAgQEAKIC8vIGZvciB4IGluIGBwZXJsIC1uZSAncHJpbnQgJDEsIlxuIiBpZiAvXjsoXHcrKSA9 LycgY29uZmlnL2NvbmZpZy1kaXN0LmluaWA7IGRvIFwKIC8vICAgZ3JlcCBcJyR4XCcgY29uZmln dXJhdG9yLnBocCA+L2Rldi9udWxsIHx8IGVjaG8gJHggOyBkb25lCiAKKyRkZWZhdWx0dGVtcGRp ciA9ICIvdG1wIjsKKyRkZWZhdWx0ZW52dGVtcGRpciA9ICFlbXB0eSgkX0VOVlsnVEVNUCddKSA/ ICRfRU5WWydURU1QJ10gOiAkZGVmYXVsdHRlbXBkaXI7CisKK2lmIChkZWZpbmVkKCdURU1QX0RJ UicpKSB7CisgICAgJGd1ZXNzZWR0ZW1wZGlyID0gVEVNUF9ESVI7CisgICAgJGd1ZXNzZWR0ZW1w ZGlyID0gY2hlY2tNYXNzYWdlV2luUGF0aCgkZ3Vlc3NlZHRlbXBkaXIpOworICAgIGlmIChpc1dp bmRvd3MoKSAmJiAoVEVNUF9ESVIgPT0gJGRlZmF1bHR0ZW1wZGlyKSkgeyAvL3RyeSBoYXJkZXIg Zm9yIHdpbmRvd3MKKyAgICAgICAgJGd1ZXNzZWR0ZW1wZGlyID0gJGRlZmF1bHRlbnZ0ZW1wZGly OworICAgIH0KK30gZWxzZSB7CisgICAgJGd1ZXNzZWR0ZW1wZGlyID0gJGRlZmF1bHR0ZW1wZGly OworfQorJGd1ZXNzZWR0ZW1wZGlyID0gY2hlY2tNYXNzYWdlV2luUGF0aCgkZ3Vlc3NlZHRlbXBk aXIpOworCiAkcHJvcGVydGllc1siUGFydCBaZXJvIl0gPQogICAgIG5ldyBwYXJ0KCdfcGFydDAn LCAkU0VQQVJBVE9SIC4gIlxuIiwgIgogUGFydCBaZXJvOiBMYXRlc3QgRGV2ZWxvcG1lbnQgYW5k IFRyaWNreSBPcHRpb25zIik7CkBAIC00MzYsMTggKzQ1OCwxMiBAQAogaWYgKGRlZmluZWQoJ0lO Q0xVREVfUEFUSCcpKSB7CiAgICAgJGluY2x1ZGVfcGF0aCA9IElOQ0xVREVfUEFUSDsKIH0gZWxz ZSB7Ci0gICAgaWYgKHN1YnN0cihQSFBfT1MsIDAsIDMpID09ICdXSU4nKSB7Ci0gICAgICAgICRp bmNsdWRlX3BhdGggPSBkaXJuYW1lKF9fRklMRV9fKSAuICc7JyAuIGluaV9nZXQoJ2luY2x1ZGVf cGF0aCcpOwotICAgICAgICBpZiAoc3RyY2hyKGluaV9nZXQoJ2luY2x1ZGVfcGF0aCcpLCAnLycp KSB7Ci0gICAgICAgICAgICAkaW5jbHVkZV9wYXRoID0gc3RydHIoJGluY2x1ZGVfcGF0aCwgJ1xc JywgJy8nKTsKLSAgICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAgICRpbmNsdWRlX3BhdGgg PSBkaXJuYW1lKF9fRklMRV9fKSAuICc6JyAuIGluaV9nZXQoJ2luY2x1ZGVfcGF0aCcpOwotICAg IH0KKyAgICAvLyBQQVRIX1NFUEFSQVRPUiBpcyA7IG9uIHdpbmRvd3MsIDogb24gb3RoZXJzCisg ICAgJGluY2x1ZGVfcGF0aCA9IGRpcm5hbWUoX19GSUxFX18pIC4gUEFUSF9TRVBBUkFUT1IgLiBp bmlfZ2V0KCdpbmNsdWRlX3BhdGgnKTsKIH0KLQorJGluY2x1ZGVfcGF0aCA9IGNoZWNrTWFzc2Fn ZVdpblBhdGgoJGluY2x1ZGVfcGF0aCk7CiAkcHJvcGVydGllc1siUEhQIGluY2x1ZGVfcGF0aCJd ID0KLSAgICBuZXcgX2RlZmluZSgnSU5DTFVERV9QQVRIJywgJGluY2x1ZGVfcGF0aCk7CisgICAg bmV3IF9kZWZpbmVfb3B0aW9uYWxfc3VnZ2VzdGlvbignSU5DTFVERV9QQVRIJywgJGluY2x1ZGVf cGF0aCk7CiAKIC8vIFRPRE86IENvbnZlcnQgdGhpcyB0byBhIGNoZWNrYm94IHJvdyBhcyBpbiB0 ZXN0cy91bml0L3Rlc3QucGhwCiAkcHJvcGVydGllc1siREVCVUciXSA9CkBAIC01NDUsNiArNTYx LDkgQEAKICRwcm9wZXJ0aWVzWyJXaWtpIE5hbWUiXSA9CiAgICAgbmV3IF9kZWZpbmVfb3B0aW9u YWwoJ1dJS0lfTkFNRScsIFdJS0lfTkFNRSk7CiAKK2lmICghZGVmaW5lZCgnQURNSU5fVVNFUicp KSB7CisgICAgZGVmaW5lKCdBRE1JTl9VU0VSJywgJycpOworfQogJHByb3BlcnRpZXNbIkFkbWlu IFVzZXJuYW1lIl0gPQogICAgIG5ldyBfZGVmaW5lX25vdGVtcHR5KAogICAgICAgICAnQURNSU5f VVNFUicsCkBAIC01NTQsNiArNTczLDkgQEAKICAgICAgICAgIm9uY2hhbmdlPVwidmFsaWRhdGVf ZXJlZygnU29ycnksIEFETUlOX1VTRVIgY2Fubm90IGJlIGVtcHR5LicsICdeLiskJywgJ0FETUlO X1VTRVInLCB0aGlzKTtcIiIKICAgICApOwogCitpZiAoIWRlZmluZWQoJ0FETUlOX1BBU1NXRCcp KSB7CisgICAgZGVmaW5lKCdBRE1JTl9QQVNTV0QnLCAnJyk7Cit9CiAkcHJvcGVydGllc1siQWRt aW4gUGFzc3dvcmQiXSA9CiAgICAgbmV3IF9kZWZpbmVfcGFzc3dvcmQoCiAgICAgICAgICdBRE1J Tl9QQVNTV0QnLApAQCAtNTc0LDcgKzU5Niw3IEBACiAgICAgbmV3IGJvb2xlYW5fZGVmaW5lKAog ICAgICAgICAnRU5DUllQVEVEX1BBU1NXRCcsCiAgICAgICAgIGFycmF5KCd0cnVlJyA9PiAidHJ1 ZS4gIHVzZSBjcnlwdCBmb3IgYWxsIHBhc3N3b3JkcyIsCi0gICAgICAgICAgICAnZmFsc2UnID0+ ICJmYWxzZS4gdXNlIHBsYWludGVzdCBwYXNzd29yZHMgKG5vdCByZWNvbW1lbmRlZCkiKQorICAg ICAgICAgICAgJ2ZhbHNlJyA9PiAiZmFsc2UuIHVzZSBwbGFpbnRleHQgcGFzc3dvcmRzIChub3Qg cmVjb21tZW5kZWQpIikKICAgICApOwogCiAkcHJvcGVydGllc1siTUFYX1BBR0VOQU1FX0xFTkdU SCJdID0KQEAgLTcwNiw4ICs3MjgsMjEgQEAKICRwcm9wZXJ0aWVzWyJDT09LSUVfRE9NQUlOIl0g PQogICAgIG5ldyBfZGVmaW5lX2NvbW1lbnRlZF9vcHRpb25hbCgnQ09PS0lFX0RPTUFJTicsIENP T0tJRV9ET01BSU4pOwogCisvL2ZpeG1lCiskc2Vzc2lvbl9zYXZlX3BhdGggPSBkZWZpbmVkKCdT RVNTSU9OX1NBVkVfUEFUSCcpID8gU0VTU0lPTl9TQVZFX1BBVEggOiBpbmlfZ2V0KCdzZXNzaW9u LnNhdmVfcGF0aCcpOworJHNlc3Npb25fc2F2ZV9wYXRoID0gY2hlY2tNYXNzYWdlV2luUGF0aCgk c2Vzc2lvbl9zYXZlX3BhdGgpOworaWYgKGRlZmluZWQoJ1NFU1NJT05fU0FWRV9QQVRIJykpIHsK KyAgICAkc2Vzc2lvbl9zYXZlX3BhdGggPSBTRVNTSU9OX1NBVkVfUEFUSDsKKyAgICAkc2Vzc2lv bl9zYXZlX3BhdGggPSBjaGVja01hc3NhZ2VXaW5QYXRoKCRzZXNzaW9uX3NhdmVfcGF0aCk7Cisg ICAgaWYgKGlzV2luZG93cygpICYmIChTRVNTSU9OX1NBVkVfUEFUSCA9PSAkZGVmYXVsdHRlbXBk aXIpKSB7IC8vdHJ5IGhhcmRlciBmb3Igd2luZG93cworICAgICAgICAkc2Vzc2lvbl9zYXZlX3Bh dGggPSAkZGVmYXVsdGVudnRlbXBkaXI7CisgICAgfQorfSBlbHNlIHsKKyAgICAkc2Vzc2lvbl9z YXZlX3BhdGggPSAkZGVmYXVsdHRlbXBkaXI7Cit9Ciskc2Vzc2lvbl9zYXZlX3BhdGggPSBjaGVj a01hc3NhZ2VXaW5QYXRoKCRzZXNzaW9uX3NhdmVfcGF0aCk7CiAkcHJvcGVydGllc1siUGF0aCBm b3IgUEhQIFNlc3Npb24gU3VwcG9ydCJdID0KLSAgICBuZXcgX2RlZmluZV9vcHRpb25hbCgnU0VT U0lPTl9TQVZFX1BBVEgnLCBkZWZpbmVkKCdTRVNTSU9OX1NBVkVfUEFUSCcpID8gU0VTU0lPTl9T QVZFX1BBVEggOiBpbmlfZ2V0KCdzZXNzaW9uLnNhdmVfcGF0aCcpKTsKKyAgICBuZXcgX2RlZmlu ZV9vcHRpb25hbF9zdWdnZXN0aW9uKCdTRVNTSU9OX1NBVkVfUEFUSCcsICRzZXNzaW9uX3NhdmVf cGF0aCk7CiAKICRwcm9wZXJ0aWVzWyJGb3JjZSBQSFAgRGF0YWJhc2UgU2Vzc2lvbnMiXSA9CiAg ICAgbmV3IGJvb2xlYW5fZGVmaW5lX2NvbW1lbnRlZF9vcHRpb25hbCgKQEAgLTg0OCwxMCArODgz LDE3IEBACiBBIHdvcmQgb2Ygd2FybmluZyAtIGFueSBwcmVmaXggZGVmaW5lZCBhYm92ZSB3aWxs IGJlIHByZXBlbmRlZCB0byB3aGF0ZXZlciBpcyBnaXZlbiBoZXJlLgogIik7CiAKLS8vVE9ETzog JFRFTVAKLSR0ZW1wID0gIWVtcHR5KCRfRU5WWydURU1QJ10pID8gJF9FTlZbJ1RFTVAnXSA6ICIv dG1wIjsKK2lmIChkZWZpbmVkKCdEQVRBQkFTRV9ESVJFQ1RPUlknKSkgeworICAgICRkYXRhYmFz ZV9kaXIgPSBEQVRBQkFTRV9ESVJFQ1RPUlk7CisgICAgaWYgKGlzV2luZG93cygpICYmIChEQVRB QkFTRV9ESVJFQ1RPUlkgPT0gJGRlZmF1bHR0ZW1wZGlyKSkgeyAvL3RyeSBoYXJkZXIgZm9yIHdp bmRvd3MKKyAgICAgICAgJGRhdGFiYXNlX2RpciA9ICRkZWZhdWx0ZW52dGVtcGRpcjsKKyAgICB9 Cit9IGVsc2UgeworICAgICRkYXRhYmFzZV9kaXIgPSAkZ3Vlc3NlZHRlbXBkaXI7Cit9CiskZGF0 YWJhc2VfZGlyID0gY2hlY2tNYXNzYWdlV2luUGF0aCgkZGF0YWJhc2VfZGlyKTsKICRwcm9wZXJ0 aWVzWyJkYmEgZGlyZWN0b3J5Il0gPQotICAgIG5ldyBfZGVmaW5lKCJEQVRBQkFTRV9ESVJFQ1RP UlkiLCAkdGVtcCk7CisgICAgbmV3IF9kZWZpbmVfb3B0aW9uYWxfc3VnZ2VzdGlvbigiREFUQUJB U0VfRElSRUNUT1JZIiwgJGRhdGFiYXNlX2Rpcik7CiAKIC8vIFRPRE86IGxpc3QgdGhlIGF2YWls YWJsZSBtZXRob2RzCiAkcHJvcGVydGllc1siZGJhIGhhbmRsZXIiXSA9CkBAIC0xMDUzLDcgKzEw OTUsNyBAQAogQSBkYXRhYmFzZSBEU04gdG8gY29ubmVjdCB0by4gIERlZmF1bHRzIHRvIHRoZSBE U04gc3BlY2lmaWVkIGZvciB0aGUgV2lraSBhcyBhIHdob2xlLiIpOwogCiAkcHJvcGVydGllc1si VXNlciBFeGlzdHMgUXVlcnkiXSA9Ci0gICAgbmV3IF9kZWZpbmUoJ0RCQVVUSF9BVVRIX1VTRVJf RVhJU1RTJywgIlNFTEVDVCB1c2VyaWQgRlJPTSB1c2VyIFdIRVJFIHVzZXJpZD0nXCR1c2VyaWQn IiwgIgorICAgIG5ldyBfZGVmaW5lX29wdGlvbmFsKCdEQkFVVEhfQVVUSF9VU0VSX0VYSVNUUycs ICJTRUxFQ1QgdXNlcmlkIEZST00gdXNlciBXSEVSRSB1c2VyaWQ9J1wkdXNlcmlkJyIsICIKIFVT RVIvUEFTU1dPUkQgcXVlcmllczoKIAogRm9yIFVTRVJfQVVUSF9QT0xJQ1k9c3RyaWN0IGFuZCB0 aGUgRGIgbWV0aG9kIGlzIHJlcXVpcmVkIik7CkBAIC0xNDY1LDggKzE1MDcsMTQgQEAKICRwcm9w ZXJ0aWVzWyJEYXRhIFBhdGgiXSA9CiAgICAgbmV3IF9kZWZpbmVfY29tbWVudGVkX29wdGlvbmFs KCdEQVRBX1BBVEgnLCBkaXJuYW1lKCRzY3JpcHRuYW1lKSk7CiAKK2lmIChkZWZpbmVkKCdQSFBX SUtJX0RJUicpKSB7CisgICAgJHBocHdpa2lfZGlyID0gUEhQV0lLSV9ESVI7Cit9IGVsc2Ugewor ICAgICRwaHB3aWtpX2RpciA9IGRpcm5hbWUoX19GSUxFX18pOworfQorJHBocHdpa2lfZGlyID0g Y2hlY2tNYXNzYWdlV2luUGF0aCgkcGhwd2lraV9kaXIpOwogJHByb3BlcnRpZXNbIlBocFdpa2kg SW5zdGFsbCBEaXJlY3RvcnkiXSA9Ci0gICAgbmV3IF9kZWZpbmVfY29tbWVudGVkX29wdGlvbmFs KCdQSFBXSUtJX0RJUicsIGRpcm5hbWUoX19GSUxFX18pKTsKKyAgICBuZXcgX2RlZmluZV9jb21t ZW50ZWRfb3B0aW9uYWwoJ1BIUFdJS0lfRElSJywgJHBocHdpa2lfZGlyKTsKIAogJHByb3BlcnRp ZXNbIlVzZSBQQVRIX0lORk8iXSA9CiAgICAgbmV3IF9kZWZpbmVfc2VsZWN0aW9uX29wdGlvbmFs X2NvbW1lbnRlZCgKQEAgLTE1MTYsMTQgKzE1NjQsMTMgQEAKICIpOwogCiAkdXBsb2FkX2ZpbGVf cGF0aCA9IGRlZmluZWQoJ1VQTE9BRF9GSUxFX1BBVEgnKSA/IFVQTE9BRF9GSUxFX1BBVEggOiBn ZXRVcGxvYWRGaWxlUGF0aCgpOwotbmV3IF9kZWZpbmVfb3B0aW9uYWwoJ1VQTE9BRF9GSUxFX1BB VEgnLCAkdGVtcCk7CituZXcgX2RlZmluZV9vcHRpb25hbCgnVVBMT0FEX0ZJTEVfUEFUSCcsICR1 cGxvYWRfZmlsZV9wYXRoKTsKIAogJHVwbG9hZF9kYXRhX3BhdGggPSBkZWZpbmVkKCdVUExPQURf REFUQV9QQVRIJykgPyBVUExPQURfREFUQV9QQVRIIDogZ2V0VXBsb2FkRGF0YVBhdGgoKTsKLW5l dyBfZGVmaW5lX29wdGlvbmFsKCdVUExPQURfREFUQV9QQVRIJywgJHRlbXApOworbmV3IF9kZWZp bmVfb3B0aW9uYWwoJ1VQTE9BRF9EQVRBX1BBVEgnLCAkdXBsb2FkX2RhdGFfcGF0aCk7CiAKLSR0 ZW1wID0gIWVtcHR5KCRfRU5WWydURU1QJ10pID8gJF9FTlZbJ1RFTVAnXSA6ICIvdG1wIjsKICRw cm9wZXJ0aWVzWyJURU1QX0RJUiJdID0KLSAgICBuZXcgX2RlZmluZV9vcHRpb25hbCgnVEVNUF9E SVInLCAkdGVtcCk7CisgICAgbmV3IF9kZWZpbmVfb3B0aW9uYWxfc3VnZ2VzdGlvbignVEVNUF9E SVInLCAkZ3Vlc3NlZHRlbXBkaXIpOwogCiAkcHJvcGVydGllc1siQWxsb3dlZCBMb2FkIl0gPQog ICAgIG5ldyBfZGVmaW5lX2NvbW1lbnRlZF9vcHRpb25hbCgKQEAgLTE1NTIsMTEgKzE1OTksMTQg QEAKICAgICAgICAgICAgICd0cnVlJyA9PiAicXVvdGVkLXByaW50YWJsZSIpCiAgICAgKTsKIAor CiskZ3Vlc3NlZGR1bXBkaXIgPSBjaGVja1dpbkFsdGVybmF0ZVBhdGgoJ0RFRkFVTFRfRFVNUF9E SVInLCAid2lraWR1bXAiLCAkZ3Vlc3NlZHRlbXBkaXIsICRkZWZhdWx0dGVtcGRpcik7CiAkcHJv cGVydGllc1siRGVmYXVsdCBsb2NhbCBEdW1wIERpcmVjdG9yeSJdID0KLSAgICBuZXcgX2RlZmlu ZV9vcHRpb25hbCgnREVGQVVMVF9EVU1QX0RJUicpOworICAgIG5ldyBfZGVmaW5lX29wdGlvbmFs X3N1Z2dlc3Rpb24oJ0RFRkFVTFRfRFVNUF9ESVInLCAkZ3Vlc3NlZGR1bXBkaXIpOwogCiskZ3Vl c3NlZGh0bWxkdW1wZGlyID0gY2hlY2tXaW5BbHRlcm5hdGVQYXRoKCdIVE1MX0RVTVBfRElSJywg Indpa2lkdW1waHRtbCIsICRndWVzc2VkdGVtcGRpciwgJGRlZmF1bHR0ZW1wZGlyKTsKICRwcm9w ZXJ0aWVzWyJEZWZhdWx0IGxvY2FsIEhUTUwgRHVtcCBEaXJlY3RvcnkiXSA9Ci0gICAgbmV3IF9k ZWZpbmVfb3B0aW9uYWwoJ0hUTUxfRFVNUF9ESVInKTsKKyAgICBuZXcgX2RlZmluZV9vcHRpb25h bF9zdWdnZXN0aW9uKCdIVE1MX0RVTVBfRElSJywgJGd1ZXNzZWRodG1sZHVtcGRpcik7CiAKICRw cm9wZXJ0aWVzWyJIVE1MIER1bXAgRmlsZW5hbWUgU3VmZml4Il0gPQogICAgIG5ldyBfZGVmaW5l X29wdGlvbmFsKCdIVE1MX0RVTVBfU1VGRklYJyk7CkBAIC0xNjA2LDYgKzE2NTYsNyBAQAogICAg ICR0dGZvbnQgPSAnbHV4aW1yJzsgLy8gVGhpcyBpcyB0aGUgb25seSB3aGF0IHNvdXJjZWZvcmdl IG9mZmVyZWQuCiAgICAgLy8kdHRmb250ID0gJ0hlbHZldGljYSc7CiB9CiskdHRmb250ID0gY2hl Y2tNYXNzYWdlV2luUGF0aCgkdHRmb250KTsKICRwcm9wZXJ0aWVzWyJUVEZPTlQiXSA9CiAgICAg bmV3IF9kZWZpbmVfY29tbWVudGVkX29wdGlvbmFsKCdUVEZPTlQnLCAkdHRmb250KTsKICRwcm9w ZXJ0aWVzWyJWSVNVQUxXSUtJRk9OVCJdID0KQEAgLTE2NDQsOSArMTY5NSwxMSBAQAogZGIsIHRy aWZpbGUgYW5kIGltZ2ZpbGUgbWlnaHQgYmUgc3VwcG9ydGVkLCBidXQgeW91IG11c3QgaGFjayB0 aGF0IGJ5IHlvdXJzZWxmLiIKICAgICApOwogCiskZ3Vlc3NlZGNhY2hlZGlyID0gY2hlY2tXaW5B bHRlcm5hdGVQYXRoKCdQTFVHSU5fQ0FDSEVEX0NBQ0hFX0RJUicsICJjYWNoZSIsICRndWVzc2Vk dGVtcGRpciwgJGRlZmF1bHR0ZW1wZGlyKTsKICRwcm9wZXJ0aWVzWyJwZWFyIENhY2hlIGNhY2hl IGRpcmVjdG9yeSJdID0KLSAgICBuZXcgX2RlZmluZV9jb21tZW50ZWRfb3B0aW9uYWwoJ1BMVUdJ Tl9DQUNIRURfQ0FDSEVfRElSJywgIi90bXAvY2FjaGUiLCAiCisgICAgbmV3IF9kZWZpbmVfb3B0 aW9uYWxfc3VnZ2VzdGlvbignUExVR0lOX0NBQ0hFRF9DQUNIRV9ESVInLCAkZ3Vlc3NlZGNhY2hl ZGlyLCAiCiBTaG91bGQgYmUgd3JpdGFibGUgdG8gdGhlIHdlYnNlcnZlci4iKTsKKwogJHByb3Bl cnRpZXNbInBlYXIgQ2FjaGUgRmlsZW5hbWUgUHJlZml4Il0gPQogICAgIG5ldyBfZGVmaW5lX29w dGlvbmFsKCdQTFVHSU5fQ0FDSEVEX0ZJTEVOQU1FX1BSRUZJWCcsICJwaHB3aWtpIiwgIiIpOwog JHByb3BlcnRpZXNbInBlYXIgQ2FjaGUgSElHSFdBVEVSIl0gPQpAQCAtMTY3Miw3ICsxNzI1LDcg QEAKICAgICBuZXcgbGlzdF9kZWZpbmUoJ1BMVUdJTl9DQUNIRURfSU1HVFlQRVMnLCAicG5nfGdp ZnxnZHxnZDJ8anBlZ3x3Ym1wfHhibXx4cG0iLCAiCiBIYW5kbGUgdGhvc2UgaW1hZ2UgdHlwZXMg dmlhIEdEIGhhbmRsZXMuIENoZWNrIHlvdXIgR0Qgc3VwcG9ydGVkIGltYWdlIHR5cGVzLiIpOwog Ci0kZW5kID0gIlxuIiAuICRTRVBBUkFUT1IgLiAiXG4iOworJGVuZCA9ICJcbiIgLiAkU0VQQVJB VE9SIC4gIlxuO2VvZlxuIjsKIAogLy8gcGVyZm9ybWFuY2UgaGFjawogdGV4dF9mcm9tX2Rpc3Qo Il9NQUdJQ19DTE9TRV9GSUxFIik7CkBAIC0xNzA3LDcgKzE3NjAsNyBAQAogICAgICAgICAkdGhp cy0+ZGVzY3JpcHRpb24gPSAkZGVzY3JpcHRpb247CiAgICAgICAgIGlmIChkZWZpbmVkKCRjb25m aWdfaXRlbV9uYW1lKQogICAgICAgICAgICAgYW5kICFwcmVnX21hdGNoKCIvKHNlbGVjdGlvbnxi b29sZWFuKS8iLCBnZXRfY2xhc3MoJHRoaXMpKQotICAgICAgICAgICAgICAgIGFuZCAhcHJlZ19t YXRjaCgiL14oU0NSSVBUX05BTUV8VklSVFVBTF9QQVRIfFRFTVBfRElSKSQvIiwgJGNvbmZpZ19p dGVtX25hbWUpCisgICAgICAgICAgICAgICAgYW5kICFwcmVnX21hdGNoKCIvXihTQ1JJUFRfTkFN RXxWSVJUVUFMX1BBVEh8elRFTVBfRElSKSQvIiwgJGNvbmZpZ19pdGVtX25hbWUpCiAgICAgICAg ICkgewogICAgICAgICAgICAgJHRoaXMtPmRlZmF1bHRfdmFsdWUgPSBjb25zdGFudCgkY29uZmln X2l0ZW1fbmFtZSk7CiAgICAgICAgIH0gLy8gaWdub3JlIGdpdmVuIGRlZmF1bHQgdmFsdWUKQEAg LTE5NTksMTIgKzIwMTIsMTYgQEAKICAgICAgICAgaWYgKCR0aGlzLT5kZXNjcmlwdGlvbikgewog ICAgICAgICAgICAgJG4gPSAiXG4iOwogICAgICAgICB9CisgICAgICAgICRkZWZhdWx0X3ZhbHVl ID0gJHRoaXMtPmRlZmF1bHRfdmFsdWU7CiAgICAgICAgIGlmICgkcG9zdGVkX3ZhbHVlID09ICR0 aGlzLT5kZWZhdWx0X3ZhbHVlKSB7CisgICAgICAgICAgICAvL3JldHVybiAiJG47IERFQlVHOiBl cXVhbCBkdj0kZGVmYXVsdF92YWx1ZSIuZ2V0dHlwZSgkZGVmYXVsdF92YWx1ZSkuIiBwdj0iIC5n ZXR0eXBlKCRwb3N0ZWRfdmFsdWUpLiAkdGhpcy0+X2NvbmZpZ19mb3JtYXQoJHBvc3RlZF92YWx1 ZSk7CiAgICAgICAgICAgICByZXR1cm4gIiRuOyIgLiAkdGhpcy0+X2NvbmZpZ19mb3JtYXQoJHBv c3RlZF92YWx1ZSk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKCRwb3N0ZWRfdmFsdWUgPT0gJycp IHsKLSAgICAgICAgICAgIHJldHVybiAiJG47IiAuICR0aGlzLT5fY29uZmlnX2Zvcm1hdCgiIik7 CisgICAgICAgICAgICAvL3JldHVybiAiJG47IERFQlVHOiBwb3N0ZWQgaXMgZW1wdHkgIiAuICR0 aGlzLT5fY29uZmlnX2Zvcm1hdCgnZmFsc2UnKTsKKyAgICAgICAgICAgIHJldHVybiAiJG47IiAu ICR0aGlzLT5fY29uZmlnX2Zvcm1hdCgkZGVmYXVsdF92YWx1ZSk7CiAgICAgICAgIH0gZWxzZSB7 CisgICAgICAgICAgICAvL3JldHVybiAiJG4gREVCVUcgZWxzZSBkdj0kZGVmYXVsdF92YWx1ZSIu Z2V0dHlwZSgkZGVmYXVsdF92YWx1ZSkuIiBwdj0iIC5nZXR0eXBlKCRwb3N0ZWRfdmFsdWUpLiAk dGhpcy0+X2NvbmZpZ19mb3JtYXQoJHBvc3RlZF92YWx1ZSk7CiAgICAgICAgICAgICByZXR1cm4g IiRuIiAuICR0aGlzLT5fY29uZmlnX2Zvcm1hdCgkcG9zdGVkX3ZhbHVlKTsKICAgICAgICAgfQog ICAgIH0KQEAgLTE5ODUsNiArMjA0Miw2MiBAQAogICAgIH0KIH0KIAorCitjbGFzcyBfZGVmaW5l X29wdGlvbmFsX3N1Z2dlc3Rpb24gZXh0ZW5kcyBfZGVmaW5lX29wdGlvbmFsCit7CisgICAgLy8g VGhpcyBjbGFzcyBleHBlY3RzIGNvbmZpZ19pdGVtX25hbWUgdG8gYmUgZGVmaW5lZCBpbiBjb25m aWctZGVmYXVsdC5pbmkKKyAgICAvLyBidXQgYSBjYWxjdWxhdGVkIG9yIHN1Z2dlc3RlZCB2YWx1 ZSB3aWxsIGJlIHBhc3NlZCBpbiB0aGUgZGVmYXVsdF92YWx1ZQorICAgIC8vIHVzZWQgZm9yIHdp bmRvd3MgdmFyaWFibGVzLiB0aGUgc3VnZ2VzdGVkIHZhbHVlIHdpbGwgYmUgdXNlZCBpbiB0aGUK KyAgICAvLyBodG1sIGZvcm0gaW5zdGVhZCBvZiBkZWZhdWx0X3ZhbHVlCisgICAgcHVibGljICRj b25maWdfaXRlbV9uYW1lOworICAgIHB1YmxpYyAkZGVmYXVsdF92YWx1ZTsKKyAgICBwdWJsaWMg JGRlc2NyaXB0aW9uOworICAgIHB1YmxpYyAkcHJlZml4OworICAgIHB1YmxpYyAkanNjaGVjazsK KyAgICBwdWJsaWMgJHZhbHVlczsKKyAgICBwdWJsaWMgJHN1Z2dlc3RlZF92YWx1ZTsKKworICAg IHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkY29uZmlnX2l0ZW1fbmFtZSwgJGRlZmF1bHRf dmFsdWUgPSAnJywgJGRlc2NyaXB0aW9uID0gJycsICRqc2NoZWNrID0gJycpCisgICAgeworICAg ICAgICAkdGhpcy0+Y29uZmlnX2l0ZW1fbmFtZSA9ICRjb25maWdfaXRlbV9uYW1lOworICAgICAg ICBpZiAoISRkZXNjcmlwdGlvbikgeworICAgICAgICAgICAgJGRlc2NyaXB0aW9uID0gdGV4dF9m cm9tX2Rpc3QoJGNvbmZpZ19pdGVtX25hbWUpOworICAgICAgICB9CisgICAgICAgICR0aGlzLT5k ZXNjcmlwdGlvbiA9ICRkZXNjcmlwdGlvbjsKKyAgICAgICAgaWYgKGRlZmluZWQoJGNvbmZpZ19p dGVtX25hbWUpCisgICAgICAgICAgICBhbmQgIXByZWdfbWF0Y2goIi8oc2VsZWN0aW9ufGJvb2xl YW4pLyIsIGdldF9jbGFzcygkdGhpcykpCisgICAgICAgICAgICAgICAgYW5kICFwcmVnX21hdGNo KCIvXihTQ1JJUFRfTkFNRXxWSVJUVUFMX1BBVEh8elRFTVBfRElSKSQvIiwgJGNvbmZpZ19pdGVt X25hbWUpCisgICAgICAgICkgeworICAgICAgICAgICAgJHRoaXMtPmRlZmF1bHRfdmFsdWUgPSBj b25zdGFudCgkY29uZmlnX2l0ZW1fbmFtZSk7CisgICAgICAgIH0gLy8gaWdub3JlIGdpdmVuIGRl ZmF1bHQgdmFsdWUKKyAgICAgICAgZWxzZWlmICgkY29uZmlnX2l0ZW1fbmFtZSA9PSAkZGVmYXVs dF92YWx1ZSkgeworICAgICAgICAgICAgJHRoaXMtPmRlZmF1bHRfdmFsdWUgPSAnJzsKKyAgICAg ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICR0aGlzLT5kZWZhdWx0X3ZhbHVlID0gJGRlZmF1bHRf dmFsdWU7CisgICAgICAgIH0KKyAgICAgICAgJHRoaXMtPnN1Z2dlc3RlZF92YWx1ZSA9ICRkZWZh dWx0X3ZhbHVlOworICAgICAgICAkdGhpcy0+anNjaGVjayA9ICRqc2NoZWNrOworICAgICAgICBp ZiAocHJlZ19tYXRjaCgiL3ZhcmlhYmxlL2kiLCBnZXRfY2xhc3MoJHRoaXMpKSkgeworICAgICAg ICAgICAgJHRoaXMtPnByZWZpeCA9ICJcJCI7CisgICAgICAgIH0gZWxzZWlmIChwcmVnX21hdGNo KCIvaW5pX3NldC9pIiwgZ2V0X2NsYXNzKCR0aGlzKSkpIHsKKyAgICAgICAgICAgICR0aGlzLT5w cmVmaXggPSAiaW5pX2dldDogIjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICR0aGlz LT5wcmVmaXggPSAiIjsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBn ZXRfaHRtbCgpCisgICAgeworICAgICAgICAkc2l6ZSA9IHN0cmxlbigkdGhpcy0+c3VnZ2VzdGVk X3ZhbHVlKSA+IDQ1ID8gOTAgOiA1MDsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5nZXRfY29uZmln X2l0ZW1faGVhZGVyKCkgLgorICAgICAgICAgICAgIjxpbnB1dCB0eXBlPVwidGV4dFwiIHNpemU9 XCIkc2l6ZVwiIG5hbWU9XCIiIC4gJHRoaXMtPmdldF9jb25maWdfaXRlbV9uYW1lKCkKKyAgICAg ICAgICAgIC4gJyIgdmFsdWU9IicgLiBodG1sc3BlY2lhbGNoYXJzKCR0aGlzLT5zdWdnZXN0ZWRf dmFsdWUpIC4gJyIgJyAuICR0aGlzLT5qc2NoZWNrIC4gIiAvPiIKKyAgICAgICAgICAgIC4gIjxw IGlkPVwiIiAuICR0aGlzLT5nZXRfY29uZmlnX2l0ZW1faWQoKSAuICJcIiBjbGFzcz1cImdyZWVu XCI+SW5wdXQgYWNjZXB0ZWQuPC9wPiI7CisgICAgfQorfQorCisKKwogY2xhc3MgbnVtZXJpY19k ZWZpbmUgZXh0ZW5kcyBfZGVmaW5lCiB7CiAgICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0 KCRjb25maWdfaXRlbV9uYW1lLCAkZGVmYXVsdF92YWx1ZSA9ICcnLCAkZGVzY3JpcHRpb24gPSAn JywgJGpzY2hlY2sgPSAnJykKQEAgLTI1NTMsNiArMjY2NiwzNiBAQAogICAgIHJldHVybiAoJG5l d3Bhc3MpOwogfQogCisvLy8vCisvLyBGdW5jdGlvbiB0byByZXBsYWNlIHdpbmRvd3Mgc2xhc2hl cyB3aXRoIGZvcndhcmQgc2xhc2hlcyBpZiBuZWNlc3NhcnkKKy8vIGh0dHBzOi8vc3RhY2tvdmVy Zmxvdy5jb20vcXVlc3Rpb25zLzU4NzkwNDMvcGhwLXNjcmlwdC1kZXRlY3Qtd2hldGhlci1ydW5u aW5nLXVuZGVyLWxpbnV4LW9yLXdpbmRvd3MKK2Z1bmN0aW9uIGNoZWNrTWFzc2FnZVdpblBhdGgo JHBhdGgpIHsKKyAgICBpZiAoRElSRUNUT1JZX1NFUEFSQVRPUiA9PT0gJ1xcJykgeworICAgICAg ICByZXR1cm4gc3RydHIoJHBhdGgsICdcXCcsICcvJyk7CisgICAgfQorICAgIHJldHVybiAkcGF0 aDsKK30KKworLy8gYnVpbGRzIGEgZGlyZWN0b3J5IG5hbWUgYmFzZWQgb2ZmIG9mIC90bXAgY2hl Y2tpbmcgaWYgd2luZG93cyBvciBvdGhlcgorZnVuY3Rpb24gY2hlY2tXaW5BbHRlcm5hdGVQYXRo KCRkZWZpbmVkX25hbWUsICRzdWJkaXIsICRndWVzc2VkdGVtcGRpciwgJGRlZmF1bHR0ZW1wZGly KSB7CisKKyAgICAvL2VjaG8gKCAiY2hlY2tXaW5BbHRlcm5hdGVQYXRoKCRkZWZpbmVkX25hbWUs ICRzdWJkaXIsICRndWVzc2VkdGVtcGRpciwgJGRlZmF1bHR0ZW1wZGlyIFxuPGJyIC8+IiAgKTsK KyAgICBpZiAoZGVmaW5lZCgkZGVmaW5lZF9uYW1lKSkgeworICAgICAgICAkZGlybmFtZSA9IGNv bnN0YW50KCRkZWZpbmVkX25hbWUpOworICAgICAgICAvL2VjaG8gKCJkaXJuYW1lPSIuJGRpcm5h bWUuIlxuPGJyIC8+Iik7CisgICAgICAgIGlmIChpc1dpbmRvd3MoKSAmJiAoJGRpcm5hbWUgPT0g JGRlZmF1bHR0ZW1wZGlyIC4gIi8iLiRzdWJkaXIpKSB7IC8vdHJ5IGhhcmRlciBmb3Igd2luZG93 cworICAgICAgICAgICAgJGRpcm5hbWUgPSAgJGd1ZXNzZWR0ZW1wZGlyLiAiLyIuJHN1YmRpcjsK KyAgICAgICAgICAgIC8vZWNobyAoImlzd2luZG93cyAiLiRkaXJuYW1lLiJcbjxiciAvPiIpOwor ICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgJGRpcm5hbWUgPSAgJGd1ZXNzZWR0ZW1w ZGlyLiAiLyIuJHN1YmRpcjsKKyAgICB9CisgICAgJGRpcm5hbWUgPSBjaGVja01hc3NhZ2VXaW5Q YXRoKCRkaXJuYW1lKTsKKyAgICAvL2VjaG8gKCIgZXhpdGluZyAiLiRkaXJuYW1lLiJcbjxiciAv PlxuPGJyIC8+Iik7CisgICAgcmV0dXJuICRkaXJuYW1lOworfQorCisKIC8vIGVuZCBvZiBjbGFz cyBkZWZpbml0aW9ucwogLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KIC8vIGJlZ2luIGF1 dG8gZ2VuZXJhdGlvbiBjb2RlCgpUaGlzIHdhcyBzZW50IGJ5IHRoZSBTb3VyY2VGb3JnZS5uZXQg Y29sbGFib3JhdGl2ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSwgdGhlIHdvcmxkJ3MgbGFyZ2VzdCBP cGVuIFNvdXJjZSBkZXZlbG9wbWVudCBzaXRlLgoKCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpwaHB3aWtpLWNoZWNraW5zIG1haWxpbmcgbGlzdApwaHB3 aWtpLWNoZWNraW5zQGxpc3RzLnNvdXJjZWZvcmdlLm5ldApodHRwczovL2xpc3RzLnNvdXJjZWZv cmdlLm5ldC9saXN0cy9saXN0aW5mby9waHB3aWtpLWNoZWNraW5zCg==