<?php // This file is protected by copyright law and provided under license. Reverse engineering of this file is strictly prohibited.
eval(base64_decode('Pz48P3BocA0KY2xhc3MgU2l0ZUNyYXdsZXINCnsNCmZ1bmN0aW9uIGFsczY4NmRLTThZUigmJGEsICR3cE1OeXZtZkZFRmxqTiwgJEVRUFJVNDg3M3YxOXIxZE90MCwgJFpXT2haYXpmakVySmNJaFVhLCAkWFZsR256X1MwYWUpDQp7DQpnbG9iYWwgJGdyYWJfcGFyYW1ldGVyczsNCmlmKCRhWzBdPT0nPycpJGEgPSBwcmVnX3JlcGxhY2UoJyNeKFteXD9dKj8pKFteL1w/XSo/KShcPy4qKT8kIycsJyQyJywkd3BNTnl2bWZGRUZsak4pLiRhOw0KaWYocHJlZ19tYXRjaCgnI15odHRwcz8oOnwmXCM1ODspI2lzJywkYSkpOw0KZWxzZSBpZigkYSYmJGFbMF09PScvJykkYSA9ICRFUVBSVTQ4NzN2MTlyMWRPdDAuJGE7DQplbHNlICRhID0gJFpXT2haYXpmakVySmNJaFVhLiRhOw0KJGE9c3RyX3JlcGxhY2UoJy8uLycsJy8nLCRhKTsNCmlmKCRfR0VUWydkZGJnMiddKWVjaG8gIigkYSk8YnI+XG4iOy8vZXhpdDsNCmlmKHN0cnN0cigkYSwnLi4vJykpew0KcHJlZ19tYXRjaCgnIyguKj86Lio/Ly8uKj8pKC8uKikkIycsJGEsJGFhKTsNCmRvew0KJGFwID0gJGFhWzJdOw0KJGFhWzJdID0gcHJlZ19yZXBsYWNlKCcjLz9bXi9dKi9cLlwuIycsJycsJGFwLDEpOw0KfXdoaWxlKCRhYVsyXSE9JGFwKTsNCiRhID0gJGFhWzFdLiRhYVsyXTsNCn0NCiRhID0gcHJlZ19yZXBsYWNlKCcjL1wuLyMnLCcvJywkYSk7DQokYSA9IHN0cl9yZXBsYWNlKCcmIzM4OycsJyYnLCRhKTsNCiRhID0gc3RyX3JlcGxhY2UoJyZhbXA7JywnJicsJGEpOw0KJGEgPSBwcmVnX3JlcGxhY2UoJyNcIy4qJCMnLCcnLCRhKTsNCiRhID0gcHJlZ19yZXBsYWNlKCcjKFteL1w6XS8pLysjJywnXFwxJywkYSk7DQokYSA9IHByZWdfcmVwbGFjZSgnI1tcclxuXSsjcycsJycsJGEpOw0KJGl1czN3eU95N2ogPSAoc3RydG9sb3dlcihzdWJzdHIoJGEsMCxzdHJsZW4oJFhWbEduel9TMGFlKSkgKSAhPSBzdHJ0b2xvd2VyKCRYVmxHbnpfUzBhZSkpOw0KcmV0dXJuICRpdXMzd3lPeTdqOw0KfQ0KZnVuY3Rpb24gTkJWNE5maVVlRUEoJGFVNkFCU2ZxR2EsJiR1cmxzX2NvbXBsZXRlZCkgew0KZ2xvYmFsICRncmFiX3BhcmFtZXRlcnMsJHJzN3ZtVnN0ZzlJVGdEcF8zdzM7DQoKZXJyb3JfcmVwb3J0aW5nKEVfQUxMJn5FX05PVElDRSk7DQpzZXRfdGltZV9saW1pdCgkZ3JhYl9wYXJhbWV0ZXJzWyd4c19leGVjX3RpbWUnXSk7DQppZigkYVU2QUJTZnFHYVsnYmdleGVjJ10pDQp7DQppZ25vcmVfdXNlcl9hYm9ydCh0cnVlKTsNCn0NCnJlZ2lzdGVyX3NodXRkb3duX2Z1bmN0aW9uKCdtMlhnbFhvaG1EZ2hvaCcpOw0KaWYoZnVuY3Rpb25fZXhpc3RzKCdpbmlfc2V0JykpDQp7DQpAaW5pX3NldCgiemxpYi5vdXRwdXRfY29tcHJlc3Npb24iLCAwKTsNCkBpbmlfc2V0KCJvdXRwdXRfYnVmZmVyaW5nIiwgMCk7DQp9DQokWEptcEFQRm01Qk9OWSA9IGV4cGxvZGUoIiAiLG1pY3JvdGltZSgpKTsNCiRJb3ZiRWVzSE0gPSAkWEptcEFQRm01Qk9OWVswXSskWEptcEFQRm01Qk9OWVsxXTsNCiRsbmJoQ3ptWVZRZzR0UXhQN29VID0gJGFVNkFCU2ZxR2FbJ2luaXR1cmwnXTsNCiRXVTVMaUNiRnZNbzM3T0ogPSAkYVU2QUJTZnFHYVsnbWF4cGcnXT4wID8gJGFVNkFCU2ZxR2FbJ21heHBnJ10gOiAxRTEwOw0KJElqS0Z0bzYyU3Uxb1Z0ID0gJGFVNkFCU2ZxR2FbJ21heGRlcHRoJ10gPyAkYVU2QUJTZnFHYVsnbWF4ZGVwdGgnXSA6IC0xOw0KJEoxMUljYlZRRm5ReDd4bjJwOEsgPSAkYVU2QUJTZnFHYVsncHJvZ3Jlc3NfY2FsbGJhY2snXTsNCiRFdEpQME5qUWQ1QjBFSXplNWggPSBwcmVnX3JlcGxhY2UoIiNccypbXHJcbl0rXHMqIyIsJ3wnLCAoc3Ryc3RyKCRzPXRyaW0oJGdyYWJfcGFyYW1ldGVyc1sneHNfZXhjbF91cmxzJ10pLCcqJyk/JHM6cHJlZ19xdW90ZSgkcywnIycpKSk7DQokTFhNOGJVdFJMR2QgPSBwcmVnX3JlcGxhY2UoIiNccypbXHJcbl0rXHMqIyIsJ3wnLCAoc3Ryc3RyKCRzPXRyaW0oJGdyYWJfcGFyYW1ldGVyc1sneHNfaW5jbF91cmxzJ10pLCcqJyk/JHM6cHJlZ19xdW90ZSgkcywnIycpKSk7DQokdFhGUzJJRWlXNkNIZnIgPSAkZjI4REZHSVlFMUtiUFogPSBhcnJheSgpOw0KJHJia1gwOWJNR3pZWFkgPSBwcmVnX3NwbGl0KCcjW1xyXG5dKyMnLCAkZ3JhYl9wYXJhbWV0ZXJzWyd4c19pbmRfYXR0ciddKTsNCiRkVFBtM2ZrdTYgPSAnIzIwMCcuKCRncmFiX3BhcmFtZXRlcnNbJ3hzX2FsbG93X2h0dHBjb2RlJ10/J3wnLiRncmFiX3BhcmFtZXRlcnNbJ3hzX2FsbG93X2h0dHBjb2RlJ106JycpLicjJzsNCmlmKCRncmFiX3BhcmFtZXRlcnNbJ3hzX21lbXNhdmUnXSkNCnsNCmlmKCFmaWxlX2V4aXN0cyhtTWtVcXF5RVZ4YUlEcXFKWVlCKSkNCm1rZGlyKG1Na1VxcXlFVnhhSURxcUpZWUIsIDA3NzcpOw0KZWxzZQ0KaWYoJGFVNkFCU2ZxR2FbJ3Jlc3VtZSddPT0nJykNCkFJNFZFVkVmTmhpKG1Na1VxcXlFVnhhSURxcUpZWUIsICcudHh0Jyk7DQp9DQpmb3JlYWNoKCRyYmtYMDliTUd6WVhZIGFzICRpYSkNCmlmKCRpYSkNCnsNCiRpcyA9IGV4cGxvZGUoJywnLCAkaWEpOw0KaWYoJGlzWzBdWzBdPT0nJCcpDQokbFR4a0xjT3dRTlQ4TSA9IHN1YnN0cigkaXNbMF0sIDEpOw0KZWxzZQ0KJGxUeGtMY093UU5UOE0gPSBzdHJfcmVwbGFjZSgnXFwkJywnJCcscHJlZ19xdW90ZSgkaXNbMF0sJyMnKSk7DQokZjI4REZHSVlFMUtiUFpbXSA9ICRsVHhrTGNPd1FOVDhNOw0KJHRYRlMySUVpVzZDSGZyW3N0cl9yZXBsYWNlKCckJywnJywkaXNbMF0pXT1hcnJheSgnbG0nPT4kaXNbMV0sICdmJz0+JGlzWzJdLCAncCc9PiRpc1szXSk7DQp9DQppZigkZjI4REZHSVlFMUtiUFopDQokcEV4WGdkZFZfaURQbGxUcWNEID0gaW1wbG9kZSgnfCcsJGYyOERGR0lZRTFLYlBaKTsNCiRicjgxMHVSMVRtUnhoOWdtN1kgPSBwYXJzZV91cmwoJGxuYmhDem1ZVlFnNHRReFA3b1UpOw0KaWYoISRicjgxMHVSMVRtUnhoOWdtN1lbJ3BhdGgnXSl7JGxuYmhDem1ZVlFnNHRReFA3b1UuPScvJzskYnI4MTB1UjFUbVJ4aDlnbTdZID0gcGFyc2VfdXJsKCRsbmJoQ3ptWVZRZzR0UXhQN29VKTt9DQokSmI0eUFZSVlQSl9PMlhDaFRLID0gJHJzN3ZtVnN0ZzlJVGdEcF8zdzMtPmZldGNoKCRsbmJoQ3ptWVZRZzR0UXhQN29VLDAsdHJ1ZSk7Ly8gdGhlIGZpcnN0IHJlcXVlc3QgaXMgdG8gc2tpcCBzZXNzaW9uIGlkDQokSmI0eUFZSVlQSl9PMlhDaFRLID0gJHJzN3ZtVnN0ZzlJVGdEcF8zdzMtPmZldGNoKCRsbmJoQ3ptWVZRZzR0UXhQN29VLDAsdHJ1ZSk7DQokalJrQ0U4N0tJbUlUN0gwViA9ICFwcmVnX21hdGNoKCRkVFBtM2ZrdTYsJEpiNHlBWUlZUEpfTzJYQ2hUS1snY29kZSddKTsNCgoKaWYoJGpSa0NFODdLSW1JVDdIMFYpDQpyZXR1cm4gYXJyYXkoDQonZXJybXNnJz0+JzxiPlRoZXJlIHdhcyBhbiBlcnJvciB3aGlsZSByZXRyaWV2aW5nIHRoZSBVUkwgc3BlY2lmaWVkOjwvYj4gJy4kbG5iaEN6bVlWUWc0dFF4UDdvVS4nJy4NCigkSmI0eUFZSVlQSl9PMlhDaFRLWydlcnJvcm1zZyddPyc8YnI+PGI+RXJyb3IgbWVzc2FnZTo8L2I+ICcuJEpiNHlBWUlZUEpfTzJYQ2hUS1snZXJyb3Jtc2cnXTonJykuDQonPGJyPjxiPkhUVFAgaGVhZGVycyBmb2xsb3c6PC9iPjxicj4nLmltcGxvZGUoJzxicj4nLCRKYjR5QVlJWVBKX08yWENoVEtbJ2hlYWRlcnMnXSkuDQonPGJyPjxiPkhUVFAgb3V0cHV0OjwvYj48YnI+Jy4kSmI0eUFZSVlQSl9PMlhDaFRLWydjb250ZW50J10NCiwNCik7DQokbG5iaEN6bVlWUWc0dFF4UDdvVSA9ICRKYjR5QVlJWVBKX08yWENoVEtbJ2xhc3RfdXJsJ107DQokdXJsc19jb21wbGV0ZWQgPSBhcnJheSgpOw0KJHVybHNfZXh0ID0gYXJyYXkoKTsNCiR1cmxzXzQwNCA9IGFycmF5KCk7DQokRVFQUlU0ODczdjE5cjFkT3QwID0gJGJyODEwdVIxVG1SeGg5Z203WVsnc2NoZW1lJ10uJzovLycuJGJyODEwdVIxVG1SeGg5Z203WVsnaG9zdCddLigoISRicjgxMHVSMVRtUnhoOWdtN1lbJ3BvcnQnXSB8fCAoJGJyODEwdVIxVG1SeGg5Z203WVsncG9ydCddPT0nODAnKSk/Jyc6KCc6Jy4kYnI4MTB1UjFUbVJ4aDlnbTdZWydwb3J0J10pKTsNCiRwbiA9ICR0c2l6ZSA9IDA7DQokWFZsR256X1MwYWUgPSBwcmVnX3JlcGxhY2UoJyMoW14vXDpdLykvKyMnLCdcXDEnLCRFUVBSVTQ4NzN2MTlyMWRPdDAuJy8nLnVjWGhyWTQ5UHRHKCRicjgxMHVSMVRtUnhoOWdtN1lbJ3BhdGgnXSkpOw0KJEtmZURKTTgzZUFxM0ZLbTJGTWogPSBwcmVnX3JlcGxhY2UoJyNeLis6Ly9bXi9dKyMnLCAnJywgJFhWbEduel9TMGFlKTsNCiRXMDlNQWNlUzU3bUUwOSA9ICRyczd2bVZzdGc5SVRnRHBfM3czLT5mZXRjaCgkbG5iaEN6bVlWUWc0dFF4UDdvVSwwLHRydWUsdHJ1ZSk7DQokdUlIeUEzNkM1WnkgPSBzdHJfcmVwbGFjZSgkWFZsR256X1MwYWUsJycsJGxuYmhDem1ZVlFnNHRReFA3b1UpOw0KJHVybHNfbGlzdF9mdWxsID0gYXJyYXkoJHVJSHlBMzZDNVp5KTsNCmlmKCEkdUlIeUEzNkM1WnkpJHVJSHlBMzZDNVp5PScvJzsNCiR1cmxzX2xpc3QgPSBhcnJheSgkdUlIeUEzNkM1WnkpOw0KJHVybHNfbGlzdDIgPSBhcnJheSgpOw0KJHRpMHgyeTBlek9QMldOID0gYXJyYXkoKTsNCiRsaW5rc19sZXZlbCA9IDA7DQokb0hYVU1HdTNsID0gJHJlZl9saW5rcyA9ICRyZWZfbGlua3MyID0gYXJyYXkoKTsNCiRMYmltUXpDZWxWMlRIID0gMDsNCgoKJE95Nm42SmhCMGV3YksgPSAkV1U1TGlDYkZ2TW8zN09KOw0KaWYoISRncmFiX3BhcmFtZXRlcnNbJ3hzX3Byb2d1cGRhdGUnXSkkZ3JhYl9wYXJhbWV0ZXJzWyd4c19wcm9ndXBkYXRlJ10gPSAyMDsNCmlmKGlzc2V0KCRncmFiX3BhcmFtZXRlcnNbJ3hzX3JvYm90c3R4dCddKSAmJiAkZ3JhYl9wYXJhbWV0ZXJzWyd4c19yb2JvdHN0eHQnXSkNCnsNCiRENTZRUFByYVhnM1MgPSAkcnM3dm1Wc3RnOUlUZ0RwXzN3My0+ZmV0Y2goJEVRUFJVNDg3M3YxOXIxZE90MC4nL3JvYm90cy50eHQnKTsNCmlmKCRFUVBSVTQ4NzN2MTlyMWRPdDAuJy8nICE9ICRYVmxHbnpfUzBhZSkNCnsNCiRUb0pVa1pXdG1mZyA9ICJcbiIuJHJzN3ZtVnN0ZzlJVGdEcF8zdzMtPmZldGNoKCRYVmxHbnpfUzBhZS4ncm9ib3RzLnR4dCcpOw0KJEQ1NlFQUHJhWGczU1snY29udGVudCddICAuPSAiXG4iLiRUb0pVa1pXdG1mZ1snY29udGVudCddOw0KfQ0KJHJhPXByZWdfc3BsaXQoJyN1c2VyLWFnZW50OlxzKiNpbScsJEQ1NlFQUHJhWGczU1snY29udGVudCddKTsNCiRnbkcxb3ZiZ2M1PWFycmF5KCk7DQpmb3IoJGk9MTskaTxjb3VudCgkcmEpOyRpKyspew0KcHJlZ19tYXRjaCgnI14oXFMrKSguKikkI3MnLCRyYVskaV0sJENpUjEyR2t6R0p6SXgpOw0KaWYoJENpUjEyR2t6R0p6SXhbMV09PScqJ3x8c3Ryc3RyKCRDaVIxMkdrekdKekl4WzFdLCdnb29nbGUnKSl7DQpwcmVnX21hdGNoX2FsbCgnI15kaXNhbGxvdzpbXlxyXG5cU10oXFMqKSNpbScsJENpUjEyR2t6R0p6SXhbMl0sJHJtKTsNCmZvcigkcGk9MDskcGk8Y291bnQoJHJtWzFdKTskcGkrKykNCmlmKCRybVsxXVskcGldKQ0KJGduRzFvdmJnYzVbXSA9IA0Kc3RyX3JlcGxhY2UoJ1xcJCcsJyQnLA0Kc3RyX3JlcGxhY2UoJ1xcKicsJy4qJywNCnByZWdfcXVvdGUoJHJtWzFdWyRwaV0sJyMnKQ0KKSk7DQp9DQp9DQpmb3IoJGk9MDskaTxjb3VudCgkZ25HMW92YmdjNSk7JGkrPTUwMCkNCiRZT2x0WDVqUjNiVjU0X2ZXW109aW1wbG9kZSgnfCcsIGFycmF5X3NsaWNlKCRnbkcxb3ZiZ2M1LCAkaSw1MDApKTsNCn1lbHNlDQokWU9sdFg1alIzYlY1NF9mVyA9IGFycmF5KCk7DQokVm5zZjB3bTRmX0dhOXN4ID0gJGdyYWJfcGFyYW1ldGVyc1sneHNfZXhjX3NraXAnXSE9J1xcLigpJzsNCiRDR3p0VzJRM3cgPSAkZ3JhYl9wYXJhbWV0ZXJzWyd4c19pbmNfc2tpcCddIT0nXFwuKCknOw0KJGdyYWJfcGFyYW1ldGVyc1sneHNfaW5jX3NraXAnXSAuPSAnJCc7DQokZ3JhYl9wYXJhbWV0ZXJzWyd4c19leGNfc2tpcCddIC49ICckJzsNCmlmKCRncmFiX3BhcmFtZXRlcnNbJ3hzX2RlYnVnJ10pDQokX0dFVFsnZGRiZyddPTE7DQokTDRiUjhoaHBHdSA9IDA7DQokdXJsX2luZCA9IDA7DQokY251ID0gMTsNCiRwZiA9IGZvcGVuKEZhaHVNT3ZsRVVaLmxpRG8zZ2JHb0puZ1JmTldHXywndycpO2ZjbG9zZSgkcGYpOw0KaWYoJGFVNkFCU2ZxR2FbJ3Jlc3VtZSddIT0nJyl7DQokQWtFc015VnVraUd3ZyA9IEBLMnZwMFVQWXF4UihkMGkyY2NDT3EoRmFodU1PdmxFVVouRjBZVm5FZXRqOEdHQ0FuWVREKSk7DQplY2hvICdSZXN1bWluZyB0aGUgbGFzdCBzZXNzaW9uIChsYXN0IHVwZGF0ZWQ6ICcuZGF0ZSgnWS1tLWQgSDppOnMnLCRBa0VzTXlWdWtpR3dnWyd0aW1lJ10pLicpJy4iXG4iOw0KaWYoJEFrRXNNeVZ1a2lHd2cpDQpleHRyYWN0KCRBa0VzTXlWdWtpR3dnKTsNCiRJb3ZiRWVzSE0tPSRjdGltZTsNCiRMNGJSOGhocEd1ID0gJGN0aW1lOw0KdW5zZXQoJEFrRXNNeVZ1a2lHd2cpOw0KfQ0Kc2xlZXAoMSk7IEB1bmxpbmsoRmFodU1PdmxFVVoubGlEbzNnYkdvSm5nUmZOV0dfKTsNCmlmKCR1cmxzX2xpc3QpDQpkbyB7DQokd3BNTnl2bWZGRUZsak4gPSAkdXJsc19saXN0WyR1cmxfaW5kKytdOw0KdW5zZXQoJHVybHNfbGlzdFskdXJsX2luZC0xXSk7DQogDQokQnJuckR5YzVXUk03ID0gQm05bkhPTWtNdk5nKCR3cE1OeXZtZkZFRmxqTik7DQoKCgokSmI0eUFZSVlQSl9PMlhDaFRLID0gYXJyYXkoKTsNCiRjbiA9ICcnOw0KaWYoaXNzZXQoJHRpMHgyeTBlek9QMldOWyR3cE1OeXZtZkZFRmxqTl0pKQ0KJHdwTU55dm1mRkVGbGpOPSR0aTB4MnkwZXpPUDJXTlskd3BNTnl2bWZGRUZsak5dOw0KJGYgPSAkVm5zZjB3bTRmX0dhOXN4ICYmIHByZWdfbWF0Y2goJyMnLiRncmFiX3BhcmFtZXRlcnNbJ3hzX2V4Y19za2lwJ10uJyNpJywkd3BNTnl2bWZGRUZsak4pOw0KaWYoJEV0SlAwTmpRZDVCMEVJemU1aCYmISRmKSRmPSRmfHxwcmVnX21hdGNoKCcjKCcuJEV0SlAwTmpRZDVCMEVJemU1aC4nKSMnLCR3cE1OeXZtZkZFRmxqTik7DQppZigkWU9sdFg1alIzYlY1NF9mVyYmISRmKQ0KZm9yZWFjaCgkWU9sdFg1alIzYlY1NF9mVyBhcyAkYm0pDQokZiA9ICRmfHxwcmVnX21hdGNoKCcjXignLiRibS4nKSMnLCRLZmVESk04M2VBcTNGS20yRk1qLiR3cE1OeXZtZkZFRmxqTik7DQokZjIgPSBmYWxzZTsNCmlmKCEkZikNCnsNCiRmMiA9ICRDR3p0VzJRM3cgJiYgcHJlZ19tYXRjaCgnIycuJGdyYWJfcGFyYW1ldGVyc1sneHNfaW5jX3NraXAnXS4nIycsJHdwTU55dm1mRkVGbGpOKTsNCmlmKCRMWE04YlV0UkxHZCYmISRmMikNCiRmMiA9ICRmMnx8KHByZWdfbWF0Y2goJyMoJy4kTFhNOGJVdFJMR2QuJykjJywkd3BNTnl2bWZGRUZsak4pKTsNCmlmKCRncmFiX3BhcmFtZXRlcnNbJ3hzX3BhcnNlX29ubHknXSAmJiAhJGYyICYmICR3cE1OeXZtZkZFRmxqTiE9Jy8nKQ0Kew0KJGYyID0gJGYyIHx8ICFwcmVnX21hdGNoKCcjJy5zdHJfcmVwbGFjZSgnICcsICd8JywgcHJlZ19xdW90ZSgkZ3JhYl9wYXJhbWV0ZXJzWyd4c19wYXJzZV9vbmx5J10sJyMnKSkuJyMnLCR3cE1OeXZtZkZFRmxqTik7DQp9DQp9DQpkb3sNCgppZighJGYgJiYgISRmMiAmJiAoJE95Nm42SmhCMGV3YksqMS4yPihjb3VudCgkdXJsc19saXN0KStjb3VudCgkdXJsc19jb21wbGV0ZWQpLSR1cmxfaW5kKSkpDQp7DQoKaWYoJElqS0Z0bzYyU3Uxb1Z0PD0wIHx8ICRsaW5rc19sZXZlbDwkSWpLRnRvNjJTdTFvVnQpDQp7DQokRU5DUzMwbE5LID0gcHJlZ19yZXBsYWNlKCcjKFteL1w6XS8pLysjJywnXFwxJywkWFZsR256X1MwYWUuJHdwTU55dm1mRkVGbGpOKTsNCgoKaWYoJF9HRVRbJ2RkYmcnXSllY2hvICI8aDQ+IHsgJEVOQ1MzMGxOSyB9IDwvaDQ+IjtmbHVzaCgpOw0KJFVidGRBOExBWE9YVjBSPTA7DQpkbyB7DQokSmI0eUFZSVlQSl9PMlhDaFRLID0gJHJzN3ZtVnN0ZzlJVGdEcF8zdzMtPmZldGNoKCRFTkNTMzBsTkssIDAsIDEpOw0KaWYoJEpiNHlBWUlZUEpfTzJYQ2hUS1snY29kZSddPT00MDMpDQp7DQokVWJ0ZEE4TEFYT1hWMFIrKzsNCnNsZWVwKCRncmFiX3BhcmFtZXRlcnNbJ3hzX2RlbGF5X21zJ10/JGdyYWJfcGFyYW1ldGVyc1sneHNfZGVsYXlfbXMnXToxKTsNCn0NCmVsc2UgJFVidGRBOExBWE9YVjBSPTU7DQp9d2hpbGUoJFVidGRBOExBWE9YVjBSPDMpOw0KCgppZigkX0dFVFsnZGRiZyddKXtlY2hvICI8aHI+IFtbWyAiLiRKYjR5QVlJWVBKX08yWENoVEtbJ2NvZGUnXS4iIF1dXSAiO3ByaW50X3IoJEpiNHlBWUlZUEpfTzJYQ2hUS1snaGVhZGVycyddKTtmbHVzaCgpO30NCiRVeGxjcEZxR21HaV9ISkVEa1UgPSBpc19hcnJheSgkSmI0eUFZSVlQSl9PMlhDaFRLWydoZWFkZXJzJ10pID8gc3RydG9sb3dlcigkSmI0eUFZSVlQSl9PMlhDaFRLWydoZWFkZXJzJ11bJ2NvbnRlbnQtdHlwZSddKSA6ICcnOw0KaWYoIXN0cnN0cigkVXhsY3BGcUdtR2lfSEpFRGtVLCd0ZXh0L2h0bWwnKSYmIXN0cnN0cigkVXhsY3BGcUdtR2lfSEpFRGtVLCcveGh0bWwnKSkNCmNvbnRpbnVlOw0KJHR5aXlUVFNsU2ggPSBhcnJheSgpOw0KCgppZigkSmI0eUFZSVlQSl9PMlhDaFRLWydjb2RlJ109PTQwNCl7DQokdXJsc180MDRbXT1hcnJheSgkd3BNTnl2bWZGRUZsak4sJHJlZl9saW5rczJbJHdwTU55dm1mRkVGbGpOXSk7DQp9DQoKaWYoJGRUUG0zZmt1NiAmJiAhcHJlZ19tYXRjaCgkZFRQbTNma3U2LCRKYjR5QVlJWVBKX08yWENoVEtbJ2NvZGUnXSkpDQpjb250aW51ZTsNCiRjbiA9ICRKYjR5QVlJWVBKX08yWENoVEtbJ2NvbnRlbnQnXTsNCgokdHNpemUrPXN0cmxlbigkY24pOw0KJGNuID0gcHJlZ19yZXBsYWNlKCcjPCEtLShcW2lmIElFXF0+fC4qPy0tPikjaXMnLCAnJywkY24pOw0KaWYoJGdyYWJfcGFyYW1ldGVyc1sneHNfY2Fub25pY2FsJ10pDQppZigoJEVOQ1MzMGxOSyA9PSAkSmI0eUFZSVlQSl9PMlhDaFRLWydsYXN0X3VybCddKQ0KJiYgcHJlZ19tYXRjaCgnIzxsaW5rW14+XSpyZWw9ImNhbm9uaWNhbCJbXj5daHJlZj0iKFtePl0qPykiIycsICRjbiwgJERBSUY2WVlMaktFM1U1KSkNCiRKYjR5QVlJWVBKX08yWENoVEtbJ2xhc3RfdXJsJ10gPSAkREFJRjZZWUxqS0UzVTVbMV07DQokWEs0Wm1TZUlpQm54NDZXID0gcHJlZ19yZXBsYWNlKCcjXi4qPycucHJlZ19xdW90ZSgkWFZsR256X1MwYWUsJyMnKS4nIycsJycsJEpiNHlBWUlZUEpfTzJYQ2hUS1snbGFzdF91cmwnXSk7DQppZigoJEVOQ1MzMGxOSyAhPSAkSmI0eUFZSVlQSl9PMlhDaFRLWydsYXN0X3VybCddKSAmJiAoJEVOQ1MzMGxOSyAhPSAkSmI0eUFZSVlQSl9PMlhDaFRLWydsYXN0X3VybCddLicvJykpIHsNCiR0aTB4MnkwZXpPUDJXTlskd3BNTnl2bWZGRUZsak5dPSRKYjR5QVlJWVBKX08yWENoVEtbJ2xhc3RfdXJsJ107ICRpbz0kd3BNTnl2bWZGRUZsak47DQokdXJsc19saXN0MltdID0gJFhLNFptU2VJaUJueDQ2VzsNCmlmKGNvdW50KCRyZWZfbGlua3NbJFhLNFptU2VJaUJueDQ2V10pPG1heCgxLGludHZhbCgkZ3JhYl9wYXJhbWV0ZXJzWyd4c19tYXhyZWYnXSkpKQ0KJHJlZl9saW5rc1skWEs0Wm1TZUlpQm54NDZXXVtdID0gJHdwTU55dm1mRkVGbGpOOw0KY29udGludWU7DQp9DQpwcmVnX21hdGNoKCcjPGJhc2VbXj5dKj9ocmVmPVtcJyJdKC4qPylbXCciXSNpcycsJGNuLCRibSk7DQppZihpc3NldCgkYm1bMV0pJiYkYm1bMV0pDQokWldPaFphemZqRXJKY0loVWEgPSB1Y1hoclk0OVB0RygkYm1bMV0uKHByZWdfbWF0Y2goJyMvLy4qLyMnLCRibVsxXSk/Jy0nOicvLScpKTsNCmVsc2UNCiRaV09oWmF6ZmpFckpjSWhVYSA9IHVjWGhyWTQ5UHRHKCRYVmxHbnpfUzBhZS4kd3BNTnl2bWZGRUZsak4pOw0KCnByZWdfbWF0Y2hfYWxsKCcjPCg/OmF8YXJlYXxnbylcc1tePl0qP2hyZWZccyo9XHMqKD86IihbXiJdKil8XCcoW15cJ10qKXwoW15cc1wiPl0rKSkuKj8+I2lzJywgJGNuLCAkYW0pOw0KcHJlZ19tYXRjaF9hbGwoJyM8aT9mcmFtZVxzW14+XSpzcmNccyo9XHMqWyJcJ10/KC4qPykoInw+fFwnWz5cc10pI2lzJywgJGNuLCAkWmdFY0NJbUptZUNFZGspOw0KcHJlZ19tYXRjaF9hbGwoJyM8bWV0YVxzW14+XSpodHRwLWVxdWl2XHMqPVxzKiI/cmVmcmVzaFtePl0qVVJMXHMqPVxzKlsiXCddPyguKj8pKCJ8PnxcJ1s+XHNdKSNpcycsICRjbiwgJG5HUWlGQ3M0cENUKTsNCiR0eWl5VFRTbFNoID0gYXJyYXkoKTsNCmZvcigkaT0wOyRpPGNvdW50KCRhbVsxXSk7JGkrKykNCnsNCmlmKCAhcHJlZ19tYXRjaCgnI3JlbD1bIlwnXW5vZm9sbG93I2knLCAkYW1bMF1bJGldKSApIA0KJHR5aXlUVFNsU2hbXSA9ICRhbVsxXVskaV07DQp9DQokdHlpeVRUU2xTaCA9IGFycmF5X21lcmdlKA0KJHR5aXlUVFNsU2gsDQoKJGFtWzJdLCRhbVszXSwgIA0KJFpnRWNDSW1KbWVDRWRrWzFdLCRuR1FpRkNzNHBDVFsxXSk7DQokdHlpeVRUU2xTaCA9IGFycmF5X3VuaXF1ZSgkdHlpeVRUU2xTaCk7DQoKJG5uID0gJG50ID0gMDsNCnJlc2V0KCR0eWl5VFRTbFNoKTsNCmlmKHByZWdfbWF0Y2goJyM8bWV0YSBuYW1lPSJyb2JvdHMiIGNvbnRlbnQ9IlteIl0qP25vZm9sbG93I2lzJywkY24pKQ0KJHR5aXlUVFNsU2ggPSBhcnJheSgpOw0KZm9yZWFjaCgkdHlpeVRUU2xTaCBhcyAkaT0+JGxsKQ0KaWYoJGxsKQ0KeyAgICAgICAgICAgICAgICAgICAgDQokYSA9ICRzYSA9IHRyaW0oJGxsKTsNCgppZigkZ3JhYl9wYXJhbWV0ZXJzWyd4c19wcm90b19za2lwJ10gJiYgDQoocHJlZ19tYXRjaCgnI14nLiRncmFiX3BhcmFtZXRlcnNbJ3hzX3Byb3RvX3NraXAnXS4nI2knLCRhKXx8DQooJFZuc2Ywd200Zl9HYTlzeCAmJiBwcmVnX21hdGNoKCcjJy4kZ3JhYl9wYXJhbWV0ZXJzWyd4c19leGNfc2tpcCddLicjaScsJGEpKXx8DQpwcmVnX21hdGNoKCcjXicuJGdyYWJfcGFyYW1ldGVyc1sneHNfcHJvdG9fc2tpcCddLicjaScsZnVuY3Rpb25fZXhpc3RzKCdodG1sX2VudGl0eV9kZWNvZGUnKT9odG1sX2VudGl0eV9kZWNvZGUoJGEpOiRhKQ0KKSkNCmNvbnRpbnVlOw0KaWYoJGdyYWJfcGFyYW1ldGVyc1sneHNfZXhjbHVkZV9jaGVjayddKQ0Kew0KJF9mPSRfZjI9ZmFsc2U7DQokX2Y9JEV0SlAwTmpRZDVCMEVJemU1aCYmcHJlZ19tYXRjaCgnIygnLiRFdEpQME5qUWQ1QjBFSXplNWguJykjJywkYSk7DQppZigkWU9sdFg1alIzYlY1NF9mVyYmISRfZikNCmZvcmVhY2goJFlPbHRYNWpSM2JWNTRfZlcgYXMgJGJtKQ0KJF9mID0gJF9mfHxwcmVnX21hdGNoKCcjXignLiRibS4nKSMnLCRLZmVESk04M2VBcTNGS20yRk1qLiR3cE1OeXZtZkZFRmxqTik7DQppZigkX2YpY29udGludWU7DQp9DQokaXVzM3d5T3k3aiA9ICR0aGlzLT5hbHM2ODZkS004WVIoJGEsICR3cE1OeXZtZkZFRmxqTiwgJEVRUFJVNDg3M3YxOXIxZE90MCwgJFpXT2haYXpmakVySmNJaFVhLCAkWFZsR256X1MwYWUpOw0KJFhLNFptU2VJaUJueDQ2VyA9IHN1YnN0cigkYSxzdHJsZW4oJFhWbEduel9TMGFlKSk7DQokWEs0Wm1TZUlpQm54NDZXID0gc3RyX3JlcGxhY2UoJyAnLCAnJTIwJywgJFhLNFptU2VJaUJueDQ2Vyk7DQppZigkZ3JhYl9wYXJhbWV0ZXJzWyd4c19jbGVhbnVybHMnXSkNCiRYSzRabVNlSWlCbng0NlcgPSBAcHJlZ19yZXBsYWNlKCRncmFiX3BhcmFtZXRlcnNbJ3hzX2NsZWFudXJscyddLCcnLCRYSzRabVNlSWlCbng0NlcpOw0KaWYoJGdyYWJfcGFyYW1ldGVyc1sneHNfY2xlYW5wYXInXSkNCnsNCiRYSzRabVNlSWlCbng0NlcgPSBAcHJlZ19yZXBsYWNlKCcjW1xcP1xcJl0oJy4kZ3JhYl9wYXJhbWV0ZXJzWyd4c19jbGVhbnBhciddLicpPVthLXowLTlcLVxfXSskI2knLCcnLCRYSzRabVNlSWlCbng0NlcpOw0KJFhLNFptU2VJaUJueDQ2VyA9IEBwcmVnX3JlcGxhY2UoJyMoW1xcP1xcJl0pKCcuJGdyYWJfcGFyYW1ldGVyc1sneHNfY2xlYW5wYXInXS4nKT1bYS16MC05XC1cX10rJiNpJywnJDEnLCRYSzRabVNlSWlCbng0NlcpOw0KfQ0KaWYoJGl1czN3eU95N2opDQp7DQppZigkZ3JhYl9wYXJhbWV0ZXJzWyd4c19leHRsaW5rcyddICYmICEkdXJsc19leHRbJGFdKQ0KJHVybHNfZXh0WyRhXSA9ICRFTkNTMzBsTks7DQpjb250aW51ZTsNCn0NCmlmKCRfR0VUWydkZGJnMyddKWVjaG8gIjx1PlskYV08L3U+PGJyPlxuIjsvL2V4aXQ7DQokdXJsc19saXN0MltdID0gJFhLNFptU2VJaUJueDQ2VzsNCmlmKCRncmFiX3BhcmFtZXRlcnNbJ3hzX21heHJlZiddICYmIGNvdW50KCRyZWZfbGlua3NbJFhLNFptU2VJaUJueDQ2V10pPCRncmFiX3BhcmFtZXRlcnNbJ3hzX21heHJlZiddKQ0KJHJlZl9saW5rc1skWEs0Wm1TZUlpQm54NDZXXVtdID0gJHdwTU55dm1mRkVGbGpOOw0KJG50Kys7DQp9DQp1bnNldCgkdHlpeVRUU2xTaCk7DQp9DQp9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KCgppZigkZ3JhYl9wYXJhbWV0ZXJzWyd4c19pbmNsX29ubHknXSAmJiAhJGYpDQokZiA9ICRmIHx8ICFwcmVnX21hdGNoKCcjJy5zdHJfcmVwbGFjZSgnICcsICd8JywgcHJlZ19xdW90ZSgkZ3JhYl9wYXJhbWV0ZXJzWyd4c19pbmNsX29ubHknXSwnIycpKS4nIycsJFhWbEduel9TMGFlLiR3cE1OeXZtZkZFRmxqTik7DQppZighJGYpICRmID0gJGZ8fHByZWdfbWF0Y2goJyM8bWV0YSBuYW1lPSJyb2JvdHMiIGNvbnRlbnQ9IlteIl0qP25vaW5kZXgjaXMnLCRjbik7DQppZighJGYpDQp7DQokZWR4YmZwbk5qSERWTkcwRSA9IGFycmF5KA0KCidsaW5rJz0+cHJlZ19yZXBsYWNlKCcjKFteL1w6XS8pLysjJywnXFwxJywkWFZsR256X1MwYWUuJHdwTU55dm1mRkVGbGpOKQ0KKTsNCmlmKCRncmFiX3BhcmFtZXRlcnNbJ3hzX21ha2VodG1sJ10pDQp7DQpwcmVnX21hdGNoKCcjPHRpdGxlPiguKj8pPC90aXRsZT4jaXMnLCAkSmI0eUFZSVlQSl9PMlhDaFRLWydjb250ZW50J10sICRId3pvUkc4YTJpZyk7DQokZWR4YmZwbk5qSERWTkcwRVsndCddID0gc3RyaXBfdGFncygkSHd6b1JHOGEyaWdbMV0pOw0KfQ0KaWYoJGdyYWJfcGFyYW1ldGVyc1sneHNfbWV0YWRlc2MnXSkNCnsNCnByZWdfbWF0Y2goJyM8bWV0YVxzW14+XSooPzpodHRwLWVxdWl2fG5hbWUpXHMqPVxzKiI/ZGVzY3JpcHRpb25bXj5dKmNvbnRlbnRccyo9XHMqWyJdPyhbXj5cIl0qKSNpcycsICRjbiwgJGVxNUZUZ0xIS2l6M3pFSjhXKTsNCmlmKCRlcTVGVGdMSEtpejN6RUo4V1sxXSkNCiRlZHhiZnBuTmpIRFZORzBFWydkJ10gPSAkZXE1RlRnTEhLaXozekVKOFdbMV07DQp9DQppZigkZ3JhYl9wYXJhbWV0ZXJzWyd4c19tYWtlcm9yJ118fCRncmFiX3BhcmFtZXRlcnNbJ3hzX2F1dG9wcmlvcml0eSddKQ0KJGVkeGJmcG5OakhEVk5HMEVbJ28nXSA9IG1heCgwLCRsaW5rc19sZXZlbCk7DQppZihwcmVnX21hdGNoKCcjKCcuJHBFeFhnZGRWX2lEUGxsVHFjRC4nKSMnLCRYVmxHbnpfUzBhZS4kd3BNTnl2bWZGRUZsak4sJGhpaTNWZjIyalk0U3l3KSkNCnsNCiRlZHhiZnBuTmpIRFZORzBFWydjbG0nXSA9ICR0WEZTMklFaVc2Q0hmclskaGlpM1ZmMjJqWTRTeXdbMV1dWydsbSddOw0KJGVkeGJmcG5OakhEVk5HMEVbJ2YnXSA9ICR0WEZTMklFaVc2Q0hmclskaGlpM1ZmMjJqWTRTeXdbMV1dWydmJ107DQokZWR4YmZwbk5qSERWTkcwRVsncCddID0gJHRYRlMySUVpVzZDSGZyWyRoaWkzVmYyMmpZNFN5d1sxXV1bJ3AnXTsNCn0NCmlmKCRncmFiX3BhcmFtZXRlcnNbJ3hzX2ltZ2luZm8nXSkNCnsNCnByZWdfbWF0Y2hfYWxsKCcjPGltZ1tePl0qc3JjPSIoLio/KSIuKj8+I2lzJywgJGNuLCAkSElyQ3d2VHRiZ0xIYiwgUFJFR19TRVRfT1JERVIpOw0KJGFpID0gJGFlID0gYXJyYXkoKTsNCmZvcmVhY2goJEhJckN3dlR0YmdMSGIgYXMgJGltKQ0Kew0KJGl1czN3eU95N2ogPSAkdGhpcy0+YWxzNjg2ZEtNOFlSKCRpbVsxXSwgJHdwTU55dm1mRkVGbGpOLCAkRVFQUlU0ODczdjE5cjFkT3QwLCAkWldPaFphemZqRXJKY0loVWEsICRYVmxHbnpfUzBhZSk7DQppZigkaXVzM3d5T3k3aikgDQpjb250aW51ZTsNCmlmKCFpbl9hcnJheSgkaW1bMV0sICRhZSkpDQppZighJEV0SlAwTmpRZDVCMEVJemU1aHx8IXByZWdfbWF0Y2goJyMoJy4kRXRKUDBOalFkNUIwRUl6ZTVoLicpIycsJGltWzFdKSkNCnsNCiRhZVtdID0gJGltWzFdOw0KcHJlZ19tYXRjaCgnIyg/OnRpdGxlfGFsdCk9IiguKj8pIiNpJywgJGltWzBdLCAkdG0pOw0KJHQgPSR0bVsxXTsNCiRhaVtdID0gYXJyYXkoJGltWzFdLCAkdCk7DQp9DQp9DQppZigkYWkpDQokZWR4YmZwbk5qSERWTkcwRVsnaSddID0gJGFpOw0KfQ0KaWYoJGdyYWJfcGFyYW1ldGVyc1sneHNfbGFzdG1vZF9ub3RwYXJzZWQnXSAmJiAkZjIpDQp7DQokSmI0eUFZSVlQSl9PMlhDaFRLID0gJHJzN3ZtVnN0ZzlJVGdEcF8zdzMtPmZldGNoKCRFTkNTMzBsTkssIDAsIDEsIGZhbHNlLCAiIiwgYXJyYXkoJ3JlcSc9PidIRUFEJykpOw0KCn0NCmlmKCEkZWR4YmZwbk5qSERWTkcwRVsnbG0nXSAmJiBpc3NldCgkSmI0eUFZSVlQSl9PMlhDaFRLWydoZWFkZXJzJ11bJ2xhc3QtbW9kaWZpZWQnXSkpDQokZWR4YmZwbk5qSERWTkcwRVsnbG0nXT0kSmI0eUFZSVlQSl9PMlhDaFRLWydoZWFkZXJzJ11bJ2xhc3QtbW9kaWZpZWQnXTsNCmlmKCRfR0VUWydkZGJnJ10pZWNobyAiKChpbmNsdWRlICIuJGVkeGJmcG5OakhEVk5HMEVbJ2xpbmsnXS4iKSk8YnIgLz4iO2ZsdXNoKCk7DQppZigkZ3JhYl9wYXJhbWV0ZXJzWyd4c19tZW1zYXZlJ10pDQp7DQpCRE1RTTQxWUNrZV9yR0xaKCRCcm5yRHljNVdSTTcsICRlZHhiZnBuTmpIRFZORzBFKTsNCiR1cmxzX2NvbXBsZXRlZFtdID0gJEJybnJEeWM1V1JNNzsNCn1lbHNlDQokdXJsc19jb21wbGV0ZWRbXSA9ICRlZHhiZnBuTmpIRFZORzBFOw0KJE95Nm42SmhCMGV3YksgPSAkV1U1TGlDYkZ2TW8zN09KIC0gY291bnQoJHVybHNfY29tcGxldGVkKTsNCn0NCn13aGlsZShmYWxzZSk7Ly8gemVyb3doaWxlDQppZigkdXJsX2luZD49JGNudSkNCnsNCnVuc2V0KCR1cmxzX2xpc3QpOw0KJHVybF9pbmQgPSAwOw0KJHVybHNfbGlzdCA9IGFycmF5X3ZhbHVlcyhhcnJheV91bmlxdWUoYXJyYXlfZGlmZigkdXJsc19saXN0MiwkdXJsc19saXN0X2Z1bGwpKSk7DQokdXJsc19saXN0X2Z1bGwgPSBhcnJheV9tZXJnZSgkdXJsc19saXN0X2Z1bGwsJHVybHNfbGlzdCk7DQokY251ID0gY291bnQoJHVybHNfbGlzdCk7DQp1bnNldCgkcmVmX2xpbmtzMik7DQokcmVmX2xpbmtzMiA9ICRyZWZfbGlua3M7DQp1bnNldCgkcmVmX2xpbmtzKTsgdW5zZXQoJHVybHNfbGlzdDIpOw0KJHJlZl9saW5rcyA9IGFycmF5KCk7DQokdXJsc19saXN0MiA9IGFycmF5KCk7DQokbGlua3NfbGV2ZWwrKzsNCn0NCiRwbisrOw0KJFhKbXBBUEZtNUJPTlk9ZXhwbG9kZSgiICIsbWljcm90aW1lKCkpOw0KJGN0aW1lID0gJFhKbXBBUEZtNUJPTllbMF0rJFhKbXBBUEZtNUJPTllbMV0gLSAkSW92YkVlc0hNOw0KJHBsPW1pbigkY251LSR1cmxfaW5kLCRPeTZuNkpoQjBld2JLKTsNCmlmKCAoJGNudT09JHVybF9pbmQgfHwgJHBsPT0wfHwkcG49PTEgfHwgKCRwbiUkZ3JhYl9wYXJhbWV0ZXJzWyd4c19wcm9ndXBkYXRlJ10pPT0wKQ0KfHwgY291bnQoJHVybHNfY29tcGxldGVkKT49JFdVNUxpQ2JGdk1vMzdPSikNCnsNCmlmKHN0cnN0cigkVzA5TUFjZVM1N21FMDlbJ2NvbnRlbnQnXSwnaGVhZGVyJykpYnJlYWs7DQokbXUgPSBmdW5jdGlvbl9leGlzdHMoJ21lbW9yeV9nZXRfdXNhZ2UnKSA/IG1lbW9yeV9nZXRfdXNhZ2UoKSA6ICctJzsNCmlmKGludHZhbCgkbXUpKQ0KJG11ID0gbnVtYmVyX2Zvcm1hdCgkbXUvMTAyNCwxKS4nIEtiJzsNCmlmKCRfR0VUWydkZGJnJ10pZWNobyAiKG1lbW9yeTogJG11KTxicj5cbiI7Ly9leGl0Ow0KJHVybHNfbGlzdDIgPSBhcnJheV92YWx1ZXMoYXJyYXlfdW5pcXVlKCR1cmxzX2xpc3QyKSk7DQokTUVCN0FsRG1ISW5aS0RzY2RVID0gYXJyYXkoDQokY3RpbWUsIC8vIHJ1bm5pbmcgdGltZQ0Kc3RyX3JlcGxhY2UoJGxuYmhDem1ZVlFnNHRReFA3b1UsICcnLCAkd3BNTnl2bWZGRUZsak4pLCAgLy8gY3VycmVudCBVUkwNCiRwbCwgICAgICAgICAgICAgICAgICAgIC8vIHVybHMgbGVmdA0KJHBuLCAgICAgICAgICAgICAgICAgICAgLy8gcHJvY2Vzc2VkIHVybHMNCiR0c2l6ZSwgICAgICAgICAgICAgICAgIC8vIGJhbmR3aWR0aCB1c2FnZQ0KJGxpbmtzX2xldmVsLCAgICAgICAgICAgLy8gZGVwdGggbGV2ZWwNCiRtdSwgICAgICAgICAgICAgICAgICAgIC8vIG1lbW9yeSB1c2FnZQ0KY291bnQoJHVybHNfY29tcGxldGVkKSwgLy8gYWRkZWQgaW4gc2l0ZW1hcA0KY291bnQoJHVybHNfbGlzdDIpICAgICAgLy8gaW4gdGhlIHF1ZXVlDQopOw0KaWYoJGFVNkFCU2ZxR2FbJ2JnZXhlYyddKQ0KRThFNmg3WE5vSnlhYkEod3RES2tSSjdIeFFMM2ssS25YNG5wNUV2b0k4KCRNRUI3QWxEbUhJblpLRHNjZFUpKTsNCmlmKCRKMTFJY2JWUUZuUXg3eG4ycDhLICYmICEkZikNCiRKMTFJY2JWUUZuUXg3eG4ycDhLKCRNRUI3QWxEbUhJblpLRHNjZFUpOw0KCn1lbHNlDQp7DQokSjExSWNiVlFGblF4N3huMnA4SyhhcnJheSgnY21kJz0+J3BpbmcnLCAnYmcnID0+ICRhVTZBQlNmcUdhWydiZ2V4ZWMnXSkpOw0KfQ0KaWYoJGdyYWJfcGFyYW1ldGVyc1sneHNfc2F2ZXN0YXRlX3RpbWUnXT4wICYmDQooIA0KKCRjdGltZS0kTDRiUjhoaHBHdT4kZ3JhYl9wYXJhbWV0ZXJzWyd4c19zYXZlc3RhdGVfdGltZSddKQ0KfHwgKCR1cmxfaW5kPj0kY251KQ0KKQ0KKQ0Kew0KJEw0YlI4aGhwR3UgPSAkY3RpbWU7DQppZigkX0dFVFsnZGRiZyddKWVjaG8gIihzYXZpbmcgZHVtcCk8YnIgLz5cbiI7Zmx1c2goKTsNCiRBa0VzTXlWdWtpR3dnID0gY29tcGFjdCgndXJsX2luZCcsDQondXJsc19saXN0JywndXJsc19saXN0MicsJ2NudScsDQoncmVmX2xpbmtzJywncmVmX2xpbmtzMicsDQondXJsc19saXN0X2Z1bGwnLCd1cmxzX2NvbXBsZXRlZCcsDQondXJsc180MDQnLA0KJ250JywndHNpemUnLCdwbicsJ2xpbmtzX2xldmVsJywnY3RpbWUnLCAndXJsc19leHQnDQopOw0KJEFrRXNNeVZ1a2lHd2dbJ3RpbWUnXT10aW1lKCk7DQokd1RjSXpydTVseGU9S25YNG5wNUV2b0k4KCRBa0VzTXlWdWtpR3dnKTsNCkU4RTZoN1hOb0p5YWJBKEYwWVZuRWV0ajhHR0NBbllURCwkd1RjSXpydTVseGUpOw0KdW5zZXQoJEFrRXNNeVZ1a2lHd2cpOw0KdW5zZXQoJHdUY0l6cnU1bHhlKTsNCn0NCmlmKCRncmFiX3BhcmFtZXRlcnNbJ3hzX2RlbGF5X3JlcSddICYmICRncmFiX3BhcmFtZXRlcnNbJ3hzX2RlbGF5X21zJ10gJiYNCigoJHBuJSRncmFiX3BhcmFtZXRlcnNbJ3hzX2RlbGF5X3JlcSddKT09MCkpDQp7DQpzbGVlcCgkZ3JhYl9wYXJhbWV0ZXJzWyd4c19kZWxheV9tcyddKTsNCn0NCmlmKCRYWlJuRlJpNmxpPWZpbGVfZXhpc3RzKCRzZGliNXRzbjRsZT1GYWh1TU92bEVVWi5saURvM2diR29KbmdSZk5XR18pKXsNCmlmKEB1bmxpbmsoJHNkaWI1dHNuNGxlKSkNCmJyZWFrOw0KZWxzZQ0KJFhaUm5GUmk2bGk9MDsNCn0NCn13aGlsZSgNCmNvdW50KCR1cmxzX2NvbXBsZXRlZCk8JFdVNUxpQ2JGdk1vMzdPSg0KJiYNCiR1cmxfaW5kPCRjbnUNCik7DQppZigkX0dFVFsnZGRiZ2V4aXQnXSlleGl0Ow0KcmV0dXJuIGFycmF5KA0KJ3U0MDQnPT4kdXJsc180MDQsDQonY3RpbWUnPT4kY3RpbWUsDQondHNpemUnPT4kdHNpemUsDQonZXJybXNnJz0+JycsDQonaW5pdHVybCc9PiRsbmJoQ3ptWVZRZzR0UXhQN29VLA0KJ2luaXRkaXInPT4kWFZsR256X1MwYWUsDQondWNvdW50Jz0+Y291bnQoJHVybHNfY29tcGxldGVkKSwNCid0aW1lJz0+dGltZSgpLA0KJ3BhcmFtcyc9PiRhVTZBQlNmcUdhLA0KJ2ludGVycnVwdCc9PiRYWlJuRlJpNmxpLA0KJ3VybHNfZXh0Jz0+JHVybHNfZXh0DQopOw0KfQ0KfQ0KJEZaQ0U5b3RDWG44NHA3Y1pNUyA9IG5ldyBTaXRlQ3Jhd2xlcigpOw0KZnVuY3Rpb24gbTJYZ2xYb2htRGdob2goKXsNCkB1bmxpbmsoRmFodU1PdmxFVVoud3RES2tSSjdIeFFMM2spOw0KfQ0KPz4='));
?>