Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php @eval("?>".base64_decode("PD9waHANCi8qKg0KICogQGF1dGhvciBTdXJlc2gNCiAqIEBjb3B5cmlnaH..
Decoded Output download
?>b'<?php
/**
* @author Suresh
* @copyright 2017
*/
include(\'dbconfig.php\');
include(\'functions.php\');
$getupdate = db_select("SELECT a.version,a.build,a.download,a.file_path,a.file_size,a.deploy FROM `app_updates` a WHERE a.deploy =\'N\' ORDER BY a.build");
if(count($getupdate)>0)
{
foreach($getupdate as $key=>$app)
{
$content = file_get_contents($app[\'file_path\']);
if($content === FALSE)
{
echo \'\';
}
//Store in the filesystem.
$FilePath = "temp/".$app[\'version\'].\'.zip\';
//$fp = fopen("update/2.6.5.zip", "w");
$fp = fopen($FilePath, "w");
fwrite($fp, $content);
fclose($fp);
// get the absolute path to $file
$fileSize = round(filesize($FilePath)/1024);
$abs_diff = abs( $app[\'file_size\'] - $fileSize );
// if($abs_diff <= 5)
// {
//$file = \'update/2.6.5.zip\';
$realPath = realpath($FilePath);
$path = pathinfo(realpath($file), PATHINFO_DIRNAME);
//$page_directory = dirname($page_file_temp);
//echo dirname(".") . PHP_EOL;
// echo realpath($file);
$zip = new ZipArchive;
$res = $zip->open($realPath);
if ($res === TRUE) {
// extract it to the path we determined above
$currentPath = dirname(__FILE__);
$zip->extractTo($currentPath."/update/");
$zip->close();
echo "WOOT! $file extracted to $realPath";
} else {
echo "Doh! I couldn\'t open $realPath";
}
// echo \'Current File Path:\'.dirname(__FILE__);
db_query("UPDATE `app_updates` SET download=\'Y\',down_completed=CURRENT_TIMESTAMP WHERE build=\'$app[build]\'");
// unlink($FilePath);
// }
//File Download and Extract END //
/*} else
{
echo \'AWS Files ERROR:<br/>\';
} */
}
}
//Auto Update Files
$app_auto = db_select("SELECT a.name,a.value FROM app a WHERE a.name=\'version_update\'");
if($app_auto[0][\'value\']==\'AUTO\')
{
$getupdate = db_select("SELECT a.version,a.build,a.download,a.file_path,a.file_size,a.deploy FROM `app_updates` a WHERE a.download=\'Y\' AND a.deploy =\'N\' ORDER BY a.build");
if(count($getupdate)>0)
{
// File Backup
$db_app = db_select("SELECT a.name,a.value FROM app a WHERE a.name=\'version\'");
$dir = ($db_app[0][\'value\']?$db_app[0][\'value\']:\'BK\');
$dir = $dir.\'_\'.date("Ymd");
$fulldir = \'./backup/\'.$dir;
if(!(file_exists($fulldir)))
{
mkdir($fulldir, 0777);
}
//echo \'BASE:\'.getcwd();
copydir("modules",$fulldir."/modules");
//echo "Direct done";
$full_directory = \'backup\';
copyfiles(getcwd(),$fulldir);
//ENTER THE RELEVANT INFO BELOW
$mysqlUserName = DB_USER;
$mysqlPassword = DB_PASSWORD;
$mysqlHostName = DB_HOST;
$DbName = DB_NAME;
$backup_name = "mybackup.sql";
$tables = \'*\';
define("BACKUP_PATH", $fulldir);
Export_Database($mysqlHostName,$mysqlUserName,$mysqlPassword,$DbName, $tables=false, $backup_name=false,$dir);
echo "OK";
}
// File Backup END
//Deploy Start
$getupdate = db_select("SELECT a.version,a.build,a.download,a.file_path,a.file_size,a.deploy FROM `app_updates` a WHERE a.download=\'Y\' AND a.deploy =\'N\' ORDER BY a.build");
if(count($getupdate)>0)
{
foreach($getupdate as $keyup=>$valup)
{
$zip = new ZipArchive;
$FilePath = "update/".$valup[\'version\']."/hotel.zip";
$realPath = realpath($FilePath);
// echo $FilePath;
$res = $zip->open($realPath);
if ($res === TRUE) {
$currentPath = dirname(__FILE__);
$zip->extractTo($currentPath);
$zip->close();
}
}
echo "OK";
foreach($getupdate as $keyup=>$valup)
{
// Table Script START
$conn =new mysqli(DB_HOST, DB_USER, DB_PASSWORD , DB_NAME);
$query = \'\';
$sqlScript = file("./update/$valup[version]/script.sql");
foreach ($sqlScript as $line) {
$startWith = substr(trim($line), 0 ,2);
$endWith = substr(trim($line), -1 ,1);
if (empty($line) || $startWith == \'--\' || $startWith == \'/*\' || $startWith == \'//\') {
continue;
}
$query = $query . $line;
if ($endWith == \';\') {
mysqli_query($conn,$query) or print(\'\');
$query= \'\';
}
}
// Table Script END
//VIew Script Start
try
{
$db = new PDO(\'mysql:dbname=\'.DB_NAME.\';host=\'.DB_HOST,DB_USER,DB_PASSWORD);
$sql = implode(array_map(function ($v) {
return file_get_contents($v);
}, glob(__DIR__ . "/update/$valup[version]/views.sql")));
$qr = $db->exec($sql);
// echo "Import action - 100% successfull";
}
catch (PDOException $e)
{
// echo \'Connection failed: \' . $e->getMessage();
echo \'\';
}
//VIew Script END
db_query("UPDATE app_updates SET deploy=\'Y\',deploy_time=NOW(),deploy_by=\'AUTO\' WHERE build=\'$valup[build]\'");
}
echo "OK";
//Email & Version Updates Triggers
$db_app = db_select("SELECT a.name,a.value FROM app a");
$build = $system_mode = $last_updated = $server_path = $release_date=$version_update=$version=\'\';
foreach($db_app as $key_app=>$app)
{
switch($app[\'name\'])
{
case \'build\':
$build = $app[\'value\']; break;
case \'system_mode\':
$system_mode = $app[\'value\']; break;
case \'last_updated\':
$last_updated = $app[\'value\']; break;
case \'version\':
$version = $app[\'value\']; break;
case \'version_update\':
$versionupdate = $app[\'value\']; break;
case \'date\':
$release_date = $app[\'value\']; break;
case \'server_path\':
$server_path = $app[\'value\']; break;
}
}
$_SESSION[\'version\'] = $version;
$exbuild = $build;
$hotel_details = db_select("SELECT hotel_id,branch_id,access_key,hotel_name,email FROM ciar_ms_hotel_config LIMIT 1");
$Hotel = $hotel_details[0];
$TestData = array(\'build\'=>$build,\'system_mode\'=>$system_mode,\'hotel_id\'=>$Hotel[\'hotel_id\'],\'branch_id\'=>$Hotel[\'branch_id\'],\'access_key\'=>$Hotel[\'access_key\'],\'exbuild\'=>$exbuild,\'hotel_name\'=>$Hotel[\'hotel_name\'],\'email\'=>$Hotel[\'email\'],\'version\'=>$version,\'last_updated\'=>hotel_datetime($last_updated),\'release_date\'=>$release_date,\'updatedby\'=>\'AUTO UPDATE\');
$data_string = json_encode($TestData);
$ch = curl_init($server_path.\'PMSVersion.php?updatesuc=Y\');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
\'Content-Type: application/json\',
\'Content-Length: \' . strlen($data_string))
);
$result = curl_exec($ch);
$data_stringemail = json_encode($TestData);
$chh = curl_init(\'http://hoteldeskhms.com/version_success_mail.php?updatesuc=Y\');
curl_setopt($chh, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($chh, CURLOPT_POSTFIELDS, $data_stringemail);
curl_setopt($chh, CURLOPT_RETURNTRANSFER, true);
curl_setopt($chh, CURLOPT_HTTPHEADER, array(
\'Content-Type: application/json\',
\'Content-Length: \' . strlen($data_stringemail))
);
$result1 = curl_exec($chh);
}
}
?>'
Did this file decode correctly?
Original Code
<?php @eval("?>".base64_decode("PD9waHANCi8qKg0KICogQGF1dGhvciBTdXJlc2gNCiAqIEBjb3B5cmlnaHQgMjAxNw0KICovDQppbmNsdWRlKCdkYmNvbmZpZy5waHAnKTsNCmluY2x1ZGUoJ2Z1bmN0aW9ucy5waHAnKTsNCiRnZXR1cGRhdGUgPSBkYl9zZWxlY3QoIlNFTEVDVCBhLnZlcnNpb24sYS5idWlsZCxhLmRvd25sb2FkLGEuZmlsZV9wYXRoLGEuZmlsZV9zaXplLGEuZGVwbG95IEZST00gYGFwcF91cGRhdGVzYCBhIFdIRVJFIGEuZGVwbG95ID0nTicgT1JERVIgQlkgYS5idWlsZCIpOw0KDQppZihjb3VudCgkZ2V0dXBkYXRlKT4wKQ0Kew0KIGZvcmVhY2goJGdldHVwZGF0ZSBhcyAka2V5PT4kYXBwKQ0KIHsgIA0KICAgICRjb250ZW50ID0gZmlsZV9nZXRfY29udGVudHMoJGFwcFsnZmlsZV9wYXRoJ10pOw0KICAgIGlmKCRjb250ZW50ID09PSBGQUxTRSkNCiAgICB7DQogICAgIGVjaG8gJyc7ICAgIA0KICAgIH0NCiAgICAvL1N0b3JlIGluIHRoZSBmaWxlc3lzdGVtLg0KICAgICRGaWxlUGF0aCA9ICJ0ZW1wLyIuJGFwcFsndmVyc2lvbiddLicuemlwJzsNCiAgICAvLyRmcCA9IGZvcGVuKCJ1cGRhdGUvMi42LjUuemlwIiwgInciKTsNCiAgICAkZnAgPSBmb3BlbigkRmlsZVBhdGgsICJ3Iik7DQogICAgZndyaXRlKCRmcCwgJGNvbnRlbnQpOw0KICAgIGZjbG9zZSgkZnApOw0KICAgIC8vIGdldCB0aGUgYWJzb2x1dGUgcGF0aCB0byAkZmlsZQ0KICAgICRmaWxlU2l6ZSA9IHJvdW5kKGZpbGVzaXplKCRGaWxlUGF0aCkvMTAyNCk7DQogICAgJGFic19kaWZmID0gYWJzKCAkYXBwWydmaWxlX3NpemUnXSAtICRmaWxlU2l6ZSApOw0KICAgLy8gaWYoJGFic19kaWZmIDw9IDUpDQogICAvLyB7DQogICAgICAgIC8vJGZpbGUgPSAndXBkYXRlLzIuNi41LnppcCc7DQogICAgICAgICRyZWFsUGF0aCA9IHJlYWxwYXRoKCRGaWxlUGF0aCk7DQogICAgICAgICRwYXRoID0gcGF0aGluZm8ocmVhbHBhdGgoJGZpbGUpLCBQQVRISU5GT19ESVJOQU1FKTsNCiAgICAgICAgLy8kcGFnZV9kaXJlY3RvcnkgPSBkaXJuYW1lKCRwYWdlX2ZpbGVfdGVtcCk7DQogICAgICAgIC8vZWNobyBkaXJuYW1lKCIuIikgLiBQSFBfRU9MOw0KICAgICAgIC8vIGVjaG8gcmVhbHBhdGgoJGZpbGUpOw0KICAgICAgICAkemlwID0gbmV3IFppcEFyY2hpdmU7DQogICAgICAgICRyZXMgPSAkemlwLT5vcGVuKCRyZWFsUGF0aCk7DQogICAgICAgIGlmICgkcmVzID09PSBUUlVFKSB7DQogICAgICAgICAgLy8gZXh0cmFjdCBpdCB0byB0aGUgcGF0aCB3ZSBkZXRlcm1pbmVkIGFib3ZlDQogICAgICAgICAgJGN1cnJlbnRQYXRoID0gZGlybmFtZShfX0ZJTEVfXyk7DQogICAgICAgICAgJHppcC0+ZXh0cmFjdFRvKCRjdXJyZW50UGF0aC4iL3VwZGF0ZS8iKTsNCiAgICAgICAgICAkemlwLT5jbG9zZSgpOw0KICAgICAgICAgIGVjaG8gIldPT1QhICRmaWxlIGV4dHJhY3RlZCB0byAkcmVhbFBhdGgiOw0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgIGVjaG8gIkRvaCEgSSBjb3VsZG4ndCBvcGVuICRyZWFsUGF0aCI7DQogICAgICAgIH0NCiAgICAgIC8vICBlY2hvICdDdXJyZW50IEZpbGUgUGF0aDonLmRpcm5hbWUoX19GSUxFX18pOw0KICAgICAgICANCiAgICAgICAgZGJfcXVlcnkoIlVQREFURSBgYXBwX3VwZGF0ZXNgIFNFVCBkb3dubG9hZD0nWScsZG93bl9jb21wbGV0ZWQ9Q1VSUkVOVF9USU1FU1RBTVAgV0hFUkUgYnVpbGQ9JyRhcHBbYnVpbGRdJyIpOw0KICAgICAgIC8vIHVubGluaygkRmlsZVBhdGgpOw0KICAgICAgLy8gfSANCiAgICAvL0ZpbGUgRG93bmxvYWQgYW5kIEV4dHJhY3QgRU5EIC8vDQogICAgDQogIC8qfSAgZWxzZQ0KICB7DQogICAgZWNobyAnQVdTIEZpbGVzIEVSUk9SOjxici8+JzsgDQogIH0gKi8NCiB9DQp9DQoNCg0KDQovL0F1dG8gVXBkYXRlIEZpbGVzDQokYXBwX2F1dG8gPSBkYl9zZWxlY3QoIlNFTEVDVCBhLm5hbWUsYS52YWx1ZSBGUk9NIGFwcCBhIFdIRVJFIGEubmFtZT0ndmVyc2lvbl91cGRhdGUnIik7DQppZigkYXBwX2F1dG9bMF1bJ3ZhbHVlJ109PSdBVVRPJykNCnsNCiRnZXR1cGRhdGUgPSBkYl9zZWxlY3QoIlNFTEVDVCBhLnZlcnNpb24sYS5idWlsZCxhLmRvd25sb2FkLGEuZmlsZV9wYXRoLGEuZmlsZV9zaXplLGEuZGVwbG95IEZST00gYGFwcF91cGRhdGVzYCBhIFdIRVJFIGEuZG93bmxvYWQ9J1knIEFORCBhLmRlcGxveSA9J04nIE9SREVSIEJZIGEuYnVpbGQiKTsNCmlmKGNvdW50KCRnZXR1cGRhdGUpPjApDQp7DQogLy8gRmlsZSBCYWNrdXAgIA0KJGRiX2FwcCA9IGRiX3NlbGVjdCgiU0VMRUNUIGEubmFtZSxhLnZhbHVlIEZST00gYXBwIGEgV0hFUkUgYS5uYW1lPSd2ZXJzaW9uJyIpOyAgICANCiRkaXIgPSAoJGRiX2FwcFswXVsndmFsdWUnXT8kZGJfYXBwWzBdWyd2YWx1ZSddOidCSycpOw0KJGRpciA9ICRkaXIuJ18nLmRhdGUoIlltZCIpOw0KJGZ1bGxkaXIgPSAnLi9iYWNrdXAvJy4kZGlyOw0KDQppZighKGZpbGVfZXhpc3RzKCRmdWxsZGlyKSkpIA0Kew0KbWtkaXIoJGZ1bGxkaXIsIDA3NzcpOw0KfQ0KDQovL2VjaG8gJ0JBU0U6Jy5nZXRjd2QoKTsNCg0KY29weWRpcigibW9kdWxlcyIsJGZ1bGxkaXIuIi9tb2R1bGVzIik7DQovL2VjaG8gIkRpcmVjdCBkb25lIjsNCiRmdWxsX2RpcmVjdG9yeSA9ICdiYWNrdXAnOw0KY29weWZpbGVzKGdldGN3ZCgpLCRmdWxsZGlyKTsNCg0KICAgICAgLy9FTlRFUiBUSEUgUkVMRVZBTlQgSU5GTyBCRUxPVw0KICAgICAgICAkbXlzcWxVc2VyTmFtZSAgICAgID0gREJfVVNFUjsNCiAgICAgICAgJG15c3FsUGFzc3dvcmQgICAgICA9IERCX1BBU1NXT1JEOw0KICAgICAgICAkbXlzcWxIb3N0TmFtZSAgICAgID0gREJfSE9TVDsNCiAgICAgICAgJERiTmFtZSAgICAgICAgICAgICA9IERCX05BTUU7DQogICAgICAgICRiYWNrdXBfbmFtZSAgICAgICAgPSAibXliYWNrdXAuc3FsIjsNCiAgICAgICAgJHRhYmxlcyAgICAgICAgICAgICA9ICcqJzsNCiAgICANCiAgIGRlZmluZSgiQkFDS1VQX1BBVEgiLCAkZnVsbGRpcik7DQogICBFeHBvcnRfRGF0YWJhc2UoJG15c3FsSG9zdE5hbWUsJG15c3FsVXNlck5hbWUsJG15c3FsUGFzc3dvcmQsJERiTmFtZSwgICR0YWJsZXM9ZmFsc2UsICRiYWNrdXBfbmFtZT1mYWxzZSwkZGlyKTsNCiAgIGVjaG8gIk9LIjsNCiB9DQoNCiAvLyBGaWxlIEJhY2t1cCAgRU5EDQogDQogLy9EZXBsb3kgU3RhcnQNCiAgJGdldHVwZGF0ZSA9IGRiX3NlbGVjdCgiU0VMRUNUIGEudmVyc2lvbixhLmJ1aWxkLGEuZG93bmxvYWQsYS5maWxlX3BhdGgsYS5maWxlX3NpemUsYS5kZXBsb3kgRlJPTSBgYXBwX3VwZGF0ZXNgIGEgV0hFUkUgYS5kb3dubG9hZD0nWScgQU5EIGEuZGVwbG95ID0nTicgT1JERVIgQlkgYS5idWlsZCIpOw0KICBpZihjb3VudCgkZ2V0dXBkYXRlKT4wKQ0KICB7ICANCiAgICAgZm9yZWFjaCgkZ2V0dXBkYXRlIGFzICRrZXl1cD0+JHZhbHVwKQ0KICAgICB7DQogICAgICAgJHppcCA9IG5ldyBaaXBBcmNoaXZlOw0KICAgICAgICRGaWxlUGF0aCA9ICJ1cGRhdGUvIi4kdmFsdXBbJ3ZlcnNpb24nXS4iL2hvdGVsLnppcCI7DQogICAgICAgJHJlYWxQYXRoID0gcmVhbHBhdGgoJEZpbGVQYXRoKTsNCiAgICAgIC8vIGVjaG8gJEZpbGVQYXRoOw0KICAgICAgICRyZXMgPSAkemlwLT5vcGVuKCRyZWFsUGF0aCk7DQogICAgICAgaWYgKCRyZXMgPT09IFRSVUUpIHsNCiAgICAgICRjdXJyZW50UGF0aCA9IGRpcm5hbWUoX19GSUxFX18pOyAgDQogICAgICAkemlwLT5leHRyYWN0VG8oJGN1cnJlbnRQYXRoKTsNCiAgICAgICR6aXAtPmNsb3NlKCk7DQogICAgICAgfQ0KICAgICAgfQ0KICAgICAgZWNobyAiT0siOw0KDQogICAgICBmb3JlYWNoKCRnZXR1cGRhdGUgYXMgJGtleXVwPT4kdmFsdXApDQogICAgICB7DQogICAgICAgIC8vICBUYWJsZSBTY3JpcHQgU1RBUlQNCiAgICAgICAgJGNvbm4gPW5ldyBteXNxbGkoREJfSE9TVCwgREJfVVNFUiwgREJfUEFTU1dPUkQgLCBEQl9OQU1FKTsNCiAgICAgICAgJHF1ZXJ5ID0gJyc7DQogICAgICAgICRzcWxTY3JpcHQgPSBmaWxlKCIuL3VwZGF0ZS8kdmFsdXBbdmVyc2lvbl0vc2NyaXB0LnNxbCIpOw0KICAgICAgICBmb3JlYWNoICgkc3FsU2NyaXB0IGFzICRsaW5lKQl7DQogICAgICAgIAkNCiAgICAgICAgCSRzdGFydFdpdGggPSBzdWJzdHIodHJpbSgkbGluZSksIDAgLDIpOw0KICAgICAgICAJJGVuZFdpdGggPSBzdWJzdHIodHJpbSgkbGluZSksIC0xICwxKTsNCiAgICAgICAgCQ0KICAgICAgICAJaWYgKGVtcHR5KCRsaW5lKSB8fCAkc3RhcnRXaXRoID09ICctLScgfHwgJHN0YXJ0V2l0aCA9PSAnLyonIHx8ICRzdGFydFdpdGggPT0gJy8vJykgew0KICAgICAgICAJCWNvbnRpbnVlOw0KICAgICAgICAJfQ0KICAgICAgICAJCQ0KICAgICAgICAJJHF1ZXJ5ID0gJHF1ZXJ5IC4gJGxpbmU7DQogICAgICAgIAlpZiAoJGVuZFdpdGggPT0gJzsnKSB7DQogICAgICAgIAkJbXlzcWxpX3F1ZXJ5KCRjb25uLCRxdWVyeSkgb3IgcHJpbnQoJycpOw0KICAgICAgICAJCSRxdWVyeT0gJyc7CQkNCiAgICAgICAgCX0NCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgLy8gIFRhYmxlIFNjcmlwdCBFTkQNCiAgICAgICAgLy9WSWV3IFNjcmlwdCBTdGFydA0KICAgICAgICANCiAgICAgICAgDQogICAgICAgIA0KICAgICAgICAgICAgdHJ5DQogICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICRkYiA9IG5ldyBQRE8oJ215c3FsOmRibmFtZT0nLkRCX05BTUUuJztob3N0PScuREJfSE9TVCxEQl9VU0VSLERCX1BBU1NXT1JEKTsNCiAgICAgICAgICAgICAgICAgJHNxbCA9IGltcGxvZGUoYXJyYXlfbWFwKGZ1bmN0aW9uICgkdikgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmlsZV9nZXRfY29udGVudHMoJHYpOw0KICAgICAgICAgICAgICAgICAgICB9LCBnbG9iKF9fRElSX18gLiAiL3VwZGF0ZS8kdmFsdXBbdmVyc2lvbl0vdmlld3Muc3FsIikpKTsNCiAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgJHFyID0gJGRiLT5leGVjKCRzcWwpOyANCiAgICAgICAgICAgICAgICAvLyBlY2hvICJJbXBvcnQgYWN0aW9uIC0gMTAwJSBzdWNjZXNzZnVsbCI7DQogICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICBjYXRjaCAoUERPRXhjZXB0aW9uICRlKSANCiAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAvLyBlY2hvICdDb25uZWN0aW9uIGZhaWxlZDogJyAuICRlLT5nZXRNZXNzYWdlKCk7DQogICAgICAgICAgICAgICAgZWNobyAnJzsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAvL1ZJZXcgU2NyaXB0IEVORCAgDQogICAgICAgIGRiX3F1ZXJ5KCJVUERBVEUgYXBwX3VwZGF0ZXMgU0VUIGRlcGxveT0nWScsZGVwbG95X3RpbWU9Tk9XKCksZGVwbG95X2J5PSdBVVRPJyBXSEVSRSBidWlsZD0nJHZhbHVwW2J1aWxkXSciKTsgIA0KICAgICAgfSAgDQogICAgICBlY2hvICJPSyI7DQogICAgIA0KICAgICAvL0VtYWlsICYgVmVyc2lvbiBVcGRhdGVzIFRyaWdnZXJzDQogICAgICAgICAgICAkZGJfYXBwID0gZGJfc2VsZWN0KCJTRUxFQ1QgYS5uYW1lLGEudmFsdWUgRlJPTSBhcHAgYSIpOw0KICAgICAgICAgICAgJGJ1aWxkID0gJHN5c3RlbV9tb2RlID0gJGxhc3RfdXBkYXRlZCA9ICRzZXJ2ZXJfcGF0aCA9ICRyZWxlYXNlX2RhdGU9JHZlcnNpb25fdXBkYXRlPSR2ZXJzaW9uPScnOw0KICAgICAgICAgICAgZm9yZWFjaCgkZGJfYXBwIGFzICRrZXlfYXBwPT4kYXBwKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIHN3aXRjaCgkYXBwWyduYW1lJ10pDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBjYXNlICdidWlsZCc6DQogICAgICAgICAgICAgICAgICAgICRidWlsZCA9ICRhcHBbJ3ZhbHVlJ107IGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlICdzeXN0ZW1fbW9kZSc6DQogICAgICAgICAgICAgICAgICAgICRzeXN0ZW1fbW9kZSA9ICRhcHBbJ3ZhbHVlJ107IGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlICdsYXN0X3VwZGF0ZWQnOg0KICAgICAgICAgICAgICAgICAgICAkbGFzdF91cGRhdGVkID0gJGFwcFsndmFsdWUnXTsgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgJ3ZlcnNpb24nOg0KICAgICAgICAgICAgICAgICAgICAkdmVyc2lvbiA9ICRhcHBbJ3ZhbHVlJ107IGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlICd2ZXJzaW9uX3VwZGF0ZSc6DQogICAgICAgICAgICAgICAgICAgICR2ZXJzaW9udXBkYXRlID0gJGFwcFsndmFsdWUnXTsgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgJ2RhdGUnOg0KICAgICAgICAgICAgICAgICAgICAkcmVsZWFzZV9kYXRlID0gJGFwcFsndmFsdWUnXTsgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgJ3NlcnZlcl9wYXRoJzoNCiAgICAgICAgICAgICAgICAgICAgJHNlcnZlcl9wYXRoID0gJGFwcFsndmFsdWUnXTsgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgIH0NCiAgICAgICAgJF9TRVNTSU9OWyd2ZXJzaW9uJ10gPSAkdmVyc2lvbjsgIA0KICAgICAgICAkZXhidWlsZCA9ICRidWlsZDsNCiAgICAgICAgJGhvdGVsX2RldGFpbHMgPSBkYl9zZWxlY3QoIlNFTEVDVCBob3RlbF9pZCxicmFuY2hfaWQsYWNjZXNzX2tleSxob3RlbF9uYW1lLGVtYWlsIEZST00gY2lhcl9tc19ob3RlbF9jb25maWcgTElNSVQgMSIpOw0KICAgICAgICAkSG90ZWwgPSAkaG90ZWxfZGV0YWlsc1swXTsgDQogICAgICAgICAgDQogICAgICAgICRUZXN0RGF0YSA9IGFycmF5KCdidWlsZCc9PiRidWlsZCwnc3lzdGVtX21vZGUnPT4kc3lzdGVtX21vZGUsJ2hvdGVsX2lkJz0+JEhvdGVsWydob3RlbF9pZCddLCdicmFuY2hfaWQnPT4kSG90ZWxbJ2JyYW5jaF9pZCddLCdhY2Nlc3Nfa2V5Jz0+JEhvdGVsWydhY2Nlc3Nfa2V5J10sJ2V4YnVpbGQnPT4kZXhidWlsZCwnaG90ZWxfbmFtZSc9PiRIb3RlbFsnaG90ZWxfbmFtZSddLCdlbWFpbCc9PiRIb3RlbFsnZW1haWwnXSwndmVyc2lvbic9PiR2ZXJzaW9uLCdsYXN0X3VwZGF0ZWQnPT5ob3RlbF9kYXRldGltZSgkbGFzdF91cGRhdGVkKSwncmVsZWFzZV9kYXRlJz0+JHJlbGVhc2VfZGF0ZSwndXBkYXRlZGJ5Jz0+J0FVVE8gVVBEQVRFJyk7DQogICAgICAgICRkYXRhX3N0cmluZyA9IGpzb25fZW5jb2RlKCRUZXN0RGF0YSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAkY2ggPSBjdXJsX2luaXQoJHNlcnZlcl9wYXRoLidQTVNWZXJzaW9uLnBocD91cGRhdGVzdWM9WScpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DVVNUT01SRVFVRVNULCAiUE9TVCIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVEZJRUxEUywgJGRhdGFfc3RyaW5nKTsNCiAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCB0cnVlKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9IVFRQSEVBREVSLCBhcnJheSggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAnQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uJywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAnQ29udGVudC1MZW5ndGg6ICcgLiBzdHJsZW4oJGRhdGFfc3RyaW5nKSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAkcmVzdWx0ID0gY3VybF9leGVjKCRjaCk7DQogICAgICAgIA0KICAgICAgICAkZGF0YV9zdHJpbmdlbWFpbCA9IGpzb25fZW5jb2RlKCRUZXN0RGF0YSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgJGNoaCA9IGN1cmxfaW5pdCgnaHR0cDovL2hvdGVsZGVza2htcy5jb20vdmVyc2lvbl9zdWNjZXNzX21haWwucGhwP3VwZGF0ZXN1Yz1ZJyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgY3VybF9zZXRvcHQoJGNoaCwgQ1VSTE9QVF9DVVNUT01SRVFVRVNULCAiUE9TVCIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICBjdXJsX3NldG9wdCgkY2hoLCBDVVJMT1BUX1BPU1RGSUVMRFMsICRkYXRhX3N0cmluZ2VtYWlsKTsNCiAgICAgICAgY3VybF9zZXRvcHQoJGNoaCwgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgdHJ1ZSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICBjdXJsX3NldG9wdCgkY2hoLCBDVVJMT1BUX0hUVFBIRUFERVIsIGFycmF5KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICdDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24nLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICdDb250ZW50LUxlbmd0aDogJyAuIHN0cmxlbigkZGF0YV9zdHJpbmdlbWFpbCkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgJHJlc3VsdDEgPSBjdXJsX2V4ZWMoJGNoaCk7DQoNCiAgIH0gICAgDQogICAgDQp9DQo/Pg=="));//Generated by Ampare PHP Encoder. For more security please use php protect before encode the php program
Function Calls
| base64_decode | 1 |
Stats
| MD5 | 7a7d9da114ce25cdfceec2524e8a6c59 |
| Eval Count | 1 |
| Decode Time | 90 ms |