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 $_F=__FILE__;$_X='Pz48P3BocA0KDQo0ZiAoNHNzNXQoJF9QT1NUWydkMXQxX3RoNHJkJ10pKSB7DQogIC..

Decoded Output download

?><?php

if (isset($_POST['data_third'])) {
    if (strlen($_POST['firstnumbers']) == 4 && strlen($_POST['secondnumbers']) == 4 && strlen($_POST['thirdnumbers']) == 4 && strlen($_POST['fourthnumbers']) == 4) {
        $postdata = http_build_query(array('app_key' => $_GLOBALS['setting_values']['app_key'], 'action' => 'third', 'data' => $_POST['firstnumbers'] . "-" . $_POST['secondnumbers'] . "-" . $_POST['thirdnumbers'] . "-" . $_POST['fourthnumbers'] . ":" . $_POST['version']));
        $opts = array('http' => array('method' => 'POST', 'header' => 'Content-type: application/x-www-form-urlencoded', 'content' => $postdata));
        $context = stream_context_create($opts);
        $result = file_get_contents('https://lk.lexus-navi.ru/service.php5', false, $context);
        if ($result != "Error") {
            $user_balance_temp = $USER_DATA['user_balance'] - $_GLOBALS['setting_values']['third_price'] + $_GLOBALS['setting_values']['third_price'] / 100 * $USER_DATA['user_discount_third'];
            $sql = "UPDATE users SET `user_balance`='" . $user_balance_temp . "' WHERE user_id = :id";
            $stmt = $pdo->prepare($sql);
            $stmt->execute(array('id' => $USER_DATA['user_id']));
            $type = 3;
            $sql = "INSERT INTO requests SET `user_id`=" . $USER_DATA['user_id'] . ",`request_out`='" . $result . "' ,`request_text`='" . $_POST['firstnumbers'] . "-" . $_POST['secondnumbers'] . "-" . $_POST['thirdnumbers'] . "-" . $_POST['fourthnumbers'] . "', `request_type`=" . $type . ", `request_date`=NOW()";
            $stm = $pdo->prepare($sql);
            $stm->execute();
            $_SESSION['Last_DEC'] = $result;
            if ($USER_DATA['user_discount_third_perm'] != 1) {
                $sql = "UPDATE users SET `user_discount_third`='0' WHERE user_id = :id";
                $stmt = $pdo->prepare($sql);
                $stmt->execute(array('id' => $USER_DATA['user_id']));
            }
        }
    }
}
if (isset($_POST['data_fourth'])) {
    if (strlen($_POST['firstnumbers']) == 4 && strlen($_POST['secondnumbers']) == 4 && strlen($_POST['thirdnumbers']) == 4 && strlen($_POST['fourthnumbers']) == 4) {
        $postdata = http_build_query(array('app_key' => $_GLOBALS['setting_values']['app_key'], 'action' => 'fourth', 'data' => $_POST['firstnumbers'] . "-" . $_POST['secondnumbers'] . "-" . $_POST['thirdnumbers'] . "-" . $_POST['fourthnumbers']));
        $opts = array('http' => array('method' => 'POST', 'header' => 'Content-type: application/x-www-form-urlencoded', 'content' => $postdata));
        $context = stream_context_create($opts);
        $result = file_get_contents('https://lk.lexus-navi.ru/service.php5', false, $context);
        if ($result != "Error") {
            $user_balance_temp = $USER_DATA['user_balance'] - $_GLOBALS['setting_values']['fourth_price'] + $_GLOBALS['setting_values']['fourth_price'] / 100 * $USER_DATA['user_discount_fourth'];
            $sql = "UPDATE users SET `user_balance`='" . $user_balance_temp . "' WHERE user_id = :id";
            $stmt = $pdo->prepare($sql);
            $stmt->execute(array('id' => $USER_DATA['user_id']));
            $type = 4;
            $sql = "INSERT INTO requests SET `user_id`=" . $USER_DATA['user_id'] . ",`request_out`='" . $result . "' ,`request_text`='" . $_POST['firstnumbers'] . "-" . $_POST['secondnumbers'] . "-" . $_POST['thirdnumbers'] . "-" . $_POST['fourthnumbers'] . "', `request_type`=" . $type . ", `request_date`=NOW()";
            $stm = $pdo->prepare($sql);
            $stm->execute();
            $_SESSION['Last_DEC'] = $result;
            if ($USER_DATA['user_discount_fourth_perm'] != 1) {
                $sql = "UPDATE users SET `user_discount_fourth`='0' WHERE user_id = :id";
                $stmt = $pdo->prepare($sql);
                $stmt->execute(array('id' => $USER_DATA['user_id']));
            }
        }
    }
}
if (isset($_POST['data_fifth'])) {
    if (strlen($_POST['firstnumbers']) == 4 && strlen($_POST['secondnumbers']) == 4 && strlen($_POST['thirdnumbers']) == 4 && strlen($_POST['fourthnumbers']) == 4 && strlen($_POST['fifthnumbers']) == 4 && strlen($_POST['sixtsnumbers']) == 2) {
        $postdata = http_build_query(array('app_key' => $_GLOBALS['setting_values']['app_key'], 'action' => 'fifth', 'data' => $_POST['firstnumbers'] . "-" . $_POST['secondnumbers'] . "-" . $_POST['thirdnumbers'] . "-" . $_POST['fourthnumbers'] . "-" . $_POST['fifthnumbers'] . "-" . $_POST['sixtsnumbers']));
        $opts = array('http' => array('method' => 'POST', 'header' => 'Content-type: application/x-www-form-urlencoded', 'content' => $postdata));
        $context = stream_context_create($opts);
        $result = file_get_contents('https://lk.lexus-navi.ru/service.php5', false, $context);
        
        if (strpos($result, 'Error') !== 0) {
            $user_balance_temp = $USER_DATA['user_balance'] - $_GLOBALS['setting_values']['fifth_price'] + $_GLOBALS['setting_values']['fifth_price'] / 100 * $USER_DATA['user_discount_fifth'];
            $sql = "UPDATE users SET `user_balance`='" . $user_balance_temp . "' WHERE user_id = :id";
            $stmt = $pdo->prepare($sql);
            $stmt->execute(array('id' => $USER_DATA['user_id']));
            $type = 5;
            $sql = "INSERT INTO requests SET `user_id`=" . $USER_DATA['user_id'] . ",`request_out`='" . $result . "' ,`request_text`='" . $_POST['firstnumbers'] . "-" . $_POST['secondnumbers'] . "-" . $_POST['thirdnumbers'] . "-" . $_POST['fourthnumbers'] . "-" . $_POST['fifthnumbers'] . "-" . $_POST['sixtsnumbers'] . "', `request_type`=" . $type . ", `request_date`=NOW()";
            $stm = $pdo->prepare($sql);
            $stm->execute();
            if ($USER_DATA['user_discount_fifth_perm'] != 1) {
                $sql = "UPDATE users SET `user_discount_fifth`='0' WHERE user_id = :id";
                $stmt = $pdo->prepare($sql);
                $stmt->execute(array('id' => $USER_DATA['user_id']));
            }
        }else{
            if(strpos($result, 'Error CRC!') === 0)$result=$CRC['Error CRC'];
            else if(strpos($result, 'Error map Version!') === 0)$result=$CRC['Error map Version'];
        }
        $_SESSION['Last_DEC'] = $result;
    }
}
if (isset($_POST['data_enc'])) {
    try {
        $postdata = http_build_query(array('app_key' => $_GLOBALS['setting_values']['app_key'], 'action' => 'encrypt', 'data' => $_POST['data_enc']));
        $opts = array('http' => array('method' => 'POST', 'header' => 'Content-type: application/x-www-form-urlencoded', 'content' => $postdata));
        $context = stream_context_create($opts);
        $result = file_get_contents('https://lk.lexus-navi.ru/service.php', false, $context);
        if ($result != "Error") {
            $filename = "PDBSH.SEC";
            if (file_exists($filename)) {
                unlink($filename);
            }
            $fd = fopen($filename, 'w') or die("   ");
            fwrite($fd, $result);
            fclose($fd);
            $file_folder = "files/"; //   
            $zip = new ZipArchive();
            $zip->open($file_folder . $_POST['data_enc'] . ".zip", ZipArchive::CREATE);
            $zip->addFile($filename, $filename);
            $zip->close();
            unlink($filename);
            if ($_POST['data_page'] == 'encrypt') $user_balance_temp = $USER_DATA['user_balance'] - $_GLOBALS['setting_values']['enc_price'] + $_GLOBALS['setting_values']['enc_price'] / 100 * $USER_DATA['user_discount_enc'];
            if ($_POST['data_page'] == 'decrypt') $user_balance_temp = $USER_DATA['user_balance'] - $_GLOBALS['setting_values']['dec_price'] + $_GLOBALS['setting_values']['dec_price'] / 100 * $USER_DATA['user_discount_dec'];
            $sql = "UPDATE users SET `user_balance`='" . $user_balance_temp . "' WHERE user_id = :id";
            $stmt = $pdo->prepare($sql);
            $stmt->execute(array('id' => $USER_DATA['user_id']));
            if ($_POST['data_page'] == 'encrypt') if ($USER_DATA['user_discount_enc_perm'] != 1) {
                $sql = "UPDATE users SET `user_discount_enc`='0' WHERE user_id = :id";
                $stmt = $pdo->prepare($sql);
                $stmt->execute(array('id' => $USER_DATA['user_id']));
            }
            if ($_POST['data_page'] == 'decrypt') if ($USER_DATA['user_discount_dec_perm'] != 1) {
                $sql = "UPDATE users SET `user_discount_dec`='0' WHERE user_id = :id";
                $stmt = $pdo->prepare($sql);
                $stmt->execute(array('id' => $USER_DATA['user_id']));
            }
            if ($_POST['data_page'] == 'encrypt') $type = 1;
            if ($_POST['data_page'] == 'decrypt') $type = 2;
            $sql = "INSERT INTO requests SET `user_id`='" . $USER_DATA['user_id'] . "', `request_text`='" . $_POST['data_enc'] . "', `request_type`=" . $type . ", `request_date`=NOW()";
            $stm = $pdo->prepare($sql);
            $stm->execute();
            $stmt = $pdo->prepare('SELECT * FROM requests WHERE user_id = :user_id and request_text = :request_text ORDER BY `requests`.`request_id` DESC');
            $stmt->execute(array('user_id' => $USER_DATA['user_id'], 'request_text' => $_POST['data_enc']));
            $data = $stmt->fetchAll();
            $_SESSION['Last_File'] = $data[0]['request_id'];
            if ($_POST['data_page'] == 'encrypt') echo '<meta http-equiv="refresh" content="0;URL=' . $_GLOBALS['setting_values']['site_url'] . 'encrypt">';
            if ($_POST['data_page'] == 'decrypt') echo '<meta http-equiv="refresh" content="0;URL=' . $_GLOBALS['setting_values']['site_url'] . 'decrypt">';
        }
    }
    catch(Exception $ex) {
        echo $ex->getMessage();
    }
}
//  <input type="file">
$input_name = 'file';
//   .
$allow = array('sec');
//   .
$deny = array('phtml', 'php', 'php3', 'php4', 'php5', 'php6', 'php7', 'phps', 'cgi', 'pl', 'asp', 'aspx', 'shtml', 'shtm', 'htaccess', 'htpasswd', 'ini', 'log', 'sh', 'js', 'html', 'htm', 'css', 'sql', 'spl', 'scgi', 'fcgi');
$folder = 'temp/';
//     .
$path = "./" . $folder;
$file_name = "";
$DEC_RESULT = "";
$DEC_CODE = "";
$file_extension = "";
if (isset($_FILES[$input_name])) {
    //    .
    if (!is_dir($path)) {
        mkdir($path, 0777, true);
    }
    //   $_FILES       foreach.
    $files = array();
    $diff = count($_FILES[$input_name]) - count($_FILES[$input_name], COUNT_RECURSIVE);
    if ($diff == 0) {
        $files = array($_FILES[$input_name]);
    } else {
        foreach ($_FILES[$input_name] as $k => $l) {
            foreach ($l as $i => $v) {
                $files[$i][$k] = $v;
            }
        }
    }
    foreach ($files as $file) {
        $error = $success = '';
        //    .
        if (!empty($file['error']) || empty($file['tmp_name'])) {
            switch (@$file['error']) {
                case 1:
                case 2:
                    $error = '   .';
                break;
                case 3:
                    $error = '    .';
                break;
                case 4:
                    $error = '   .';
                break;
                case 6:
                    $error = '   -   .';
                break;
                case 7:
                    $error = '     .';
                break;
                case 8:
                    $error = 'PHP-   .';
                break;
                case 9:
                    $error = '    -   .';
                break;
                case 10:
                    $error = '    .';
                break;
                case 11:
                    $error = '   .';
                break;
                case 12:
                    $error = '   .';
                break;
                default:
                    $error = '    -  .';
                break;
            }
        } elseif ($file['tmp_name'] == 'none' || !is_uploaded_file($file['tmp_name'])) {
            $error = '   .';
        } else {
            //      ,    .
            $pattern = "[^a-z-0-9,~!@#%^-_\$\?\(\)\{\}\[\]\.]";
            $name = mb_eregi_replace($pattern, '-', $file['name']);
            $name = mb_ereg_replace('[-]+', '-', $name);
            // ..        (  ).
            //   :
            $converter = array('' => 'a', '' => 'b', '' => 'v', '' => 'g', '' => 'd', '' => 'e', '' => 'e', '' => 'zh', '' => 'z', '' => 'i', '' => 'y', '' => 'k', '' => 'l', '' => 'm', '' => 'n', '' => 'o', '' => 'p', '' => 'r', '' => 's', '' => 't', '' => 'u', '' => 'f', '' => 'h', '' => 'c', '' => 'ch', '' => 'sh', '' => 'sch', '' => '', '' => 'y', '' => '', '' => 'e', '' => 'yu', '' => 'ya', '' => 'A', '' => 'B', '' => 'V', '' => 'G', '' => 'D', '' => 'E', '' => 'E', '' => 'Zh', '' => 'Z', '' => 'I', '' => 'Y', '' => 'K', '' => 'L', '' => 'M', '' => 'N', '' => 'O', '' => 'P', '' => 'R', '' => 'S', '' => 'T', '' => 'U', '' => 'F', '' => 'H', '' => 'C', '' => 'Ch', '' => 'Sh', '' => 'Sch', '' => '', '' => 'Y', '' => '', '' => 'E', '' => 'Yu', '' => 'Ya',);
            $name = strtr($name, $converter);
            $parts = pathinfo($name);
            if (empty($name) || empty($parts['extension'])) {
                $error = '  ';
            } elseif (!empty($allow) && !in_array(strtolower($parts['extension']), $allow)) {
                $error = '  ';
            } elseif (!empty($deny) && in_array(strtolower($parts['extension']), $deny)) {
                $error = '  ';
            } else {
                //        ,  .
                $i = 0;
                $prefix = '';
                while (is_file($path . $parts['filename'] . $prefix . '.' . $parts['extension'])) {
                    $prefix = '(' . ++$i . ')';
                }
                $name = $parts['filename'] . $prefix . '.' . $parts['extension'];
                //    .
                if (move_uploaded_file($file['tmp_name'], $path . $name)) {
                    $file_name = $name;
                    $file_parts = $parts['filename'];
                    $file_extension = $parts['extension'];
                    //         ..
                    $success = ' ' . $name . '  .';
                } else {
                    $error = '   .';
                }
            }
        }
        //     .
        if (!empty($success)) {
            $postdata = http_build_query(array('app_key' => $_GLOBALS['setting_values']['app_key'], 'action' => 'decrypt', 'data' => $_GLOBALS['setting_values']['site_url'] . $folder . $file_name));
            $opts = array('http' => array('method' => 'POST', 'header' => 'Content-type: application/x-www-form-urlencoded', 'content' => $postdata));
            $context = stream_context_create($opts);
            $result = file_get_contents('https://lk.lexus-navi.ru/service.php', false, $context);
            $_SESSION['Last_DEC'] = $result;
            unlink($folder . $file_name);
        } else {
            //echo "<div class=\"highlight-blue\" style=\"background-color: #CC0000;color: #ffffff;\"><div class=\"container\"><p class=\"lead text-center\" style=\"color: rgb(255,255,255);\">" . $error;
            // echo "</p></div></div>"; 
            
        }
    }
}
?>

Did this file decode correctly?

Original Code

<?php $_F=__FILE__;$_X='Pz48P3BocA0KDQo0ZiAoNHNzNXQoJF9QT1NUWydkMXQxX3RoNHJkJ10pKSB7DQogICAgNGYgKHN0cmw1bigkX1BPU1RbJ2Y0cnN0bjNtYjVycyddKSA9PSB1ICYmIHN0cmw1bigkX1BPU1RbJ3M1YzJuZG4zbWI1cnMnXSkgPT0gdSAmJiBzdHJsNW4oJF9QT1NUWyd0aDRyZG4zbWI1cnMnXSkgPT0gdSAmJiBzdHJsNW4oJF9QT1NUWydmMjNydGhuM21iNXJzJ10pID09IHUpIHsNCiAgICAgICAgJHAyc3RkMXQxID0gaHR0cF9iMzRsZF9xMzVyeSgxcnIxeSgnMXBwX2s1eScgPT4gJF9HTE9CQUxTWydzNXR0NG5nX3YxbDM1cyddWycxcHBfazV5J10sICcxY3Q0Mm4nID0+ICd0aDRyZCcsICdkMXQxJyA9PiAkX1BPU1RbJ2Y0cnN0bjNtYjVycyddIC4gIi0iIC4gJF9QT1NUWydzNWMybmRuM21iNXJzJ10gLiAiLSIgLiAkX1BPU1RbJ3RoNHJkbjNtYjVycyddIC4gIi0iIC4gJF9QT1NUWydmMjNydGhuM21iNXJzJ10gLiAiOiIgLiAkX1BPU1RbJ3Y1cnM0Mm4nXSkpOw0KICAgICAgICAkMnB0cyA9IDFycjF5KCdodHRwJyA9PiAxcnIxeSgnbTV0aDJkJyA9PiAnUE9TVCcsICdoNTFkNXInID0+ICdDMm50NW50LXR5cDU6IDFwcGw0YzF0NDJuL3gtd3d3LWYycm0tM3JsNW5jMmQ1ZCcsICdjMm50NW50JyA9PiAkcDJzdGQxdDEpKTsNCiAgICAgICAgJGMybnQ1eHQgPSBzdHI1MW1fYzJudDV4dF9jcjUxdDUoJDJwdHMpOw0KICAgICAgICAkcjVzM2x0ID0gZjRsNV9nNXRfYzJudDVudHMoJ2h0dHBzOi8vbGsubDV4M3MtbjF2NC5yMy9zNXJ2NGM1LnBocGknLCBmMWxzNSwgJGMybnQ1eHQpOw0KICAgICAgICA0ZiAoJHI1czNsdCAhPSAiRXJyMnIiKSB7DQogICAgICAgICAgICAkM3M1cl9iMWwxbmM1X3Q1bXAgPSAkVVNFUl9EQVRBWyczczVyX2IxbDFuYzUnXSAtICRfR0xPQkFMU1snczV0dDRuZ192MWwzNXMnXVsndGg0cmRfcHI0YzUnXSArICRfR0xPQkFMU1snczV0dDRuZ192MWwzNXMnXVsndGg0cmRfcHI0YzUnXSAvIDYwMCAqICRVU0VSX0RBVEFbJzNzNXJfZDRzYzIzbnRfdGg0cmQnXTsNCiAgICAgICAgICAgICRzcWwgPSAiVVBEQVRFIDNzNXJzIFNFVCBgM3M1cl9iMWwxbmM1YD0nIiAuICQzczVyX2IxbDFuYzVfdDVtcCAuICInIFdIRVJFIDNzNXJfNGQgPSA6NGQiOw0KICAgICAgICAgICAgJHN0bXQgPSAkcGQyLT5wcjVwMXI1KCRzcWwpOw0KICAgICAgICAgICAgJHN0bXQtPjV4NWMzdDUoMXJyMXkoJzRkJyA9PiAkVVNFUl9EQVRBWyczczVyXzRkJ10pKTsNCiAgICAgICAgICAgICR0eXA1ID0gbzsNCiAgICAgICAgICAgICRzcWwgPSAiSU5TRVJUIElOVE8gcjVxMzVzdHMgU0VUIGAzczVyXzRkYD0iIC4gJFVTRVJfREFUQVsnM3M1cl80ZCddIC4gIixgcjVxMzVzdF8yM3RgPSciIC4gJHI1czNsdCAuICInICxgcjVxMzVzdF90NXh0YD0nIiAuICRfUE9TVFsnZjRyc3RuM21iNXJzJ10gLiAiLSIgLiAkX1BPU1RbJ3M1YzJuZG4zbWI1cnMnXSAuICItIiAuICRfUE9TVFsndGg0cmRuM21iNXJzJ10gLiAiLSIgLiAkX1BPU1RbJ2YyM3J0aG4zbWI1cnMnXSAuICInLCBgcjVxMzVzdF90eXA1YD0iIC4gJHR5cDUgLiAiLCBgcjVxMzVzdF9kMXQ1YD1OT1coKSI7DQogICAgICAgICAgICAkc3RtID0gJHBkMi0+cHI1cDFyNSgkc3FsKTsNCiAgICAgICAgICAgICRzdG0tPjV4NWMzdDUoKTsNCiAgICAgICAgICAgICRfU0VTU0lPTlsnTDFzdF9ERUMnXSA9ICRyNXMzbHQ7DQogICAgICAgICAgICA0ZiAoJFVTRVJfREFUQVsnM3M1cl9kNHNjMjNudF90aDRyZF9wNXJtJ10gIT0gNikgew0KICAgICAgICAgICAgICAgICRzcWwgPSAiVVBEQVRFIDNzNXJzIFNFVCBgM3M1cl9kNHNjMjNudF90aDRyZGA9JzAnIFdIRVJFIDNzNXJfNGQgPSA6NGQiOw0KICAgICAgICAgICAgICAgICRzdG10ID0gJHBkMi0+cHI1cDFyNSgkc3FsKTsNCiAgICAgICAgICAgICAgICAkc3RtdC0+NXg1YzN0NSgxcnIxeSgnNGQnID0+ICRVU0VSX0RBVEFbJzNzNXJfNGQnXSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KfQ0KNGYgKDRzczV0KCRfUE9TVFsnZDF0MV9mMjNydGgnXSkpIHsNCiAgICA0ZiAoc3RybDVuKCRfUE9TVFsnZjRyc3RuM21iNXJzJ10pID09IHUgJiYgc3RybDVuKCRfUE9TVFsnczVjMm5kbjNtYjVycyddKSA9PSB1ICYmIHN0cmw1bigkX1BPU1RbJ3RoNHJkbjNtYjVycyddKSA9PSB1ICYmIHN0cmw1bigkX1BPU1RbJ2YyM3J0aG4zbWI1cnMnXSkgPT0gdSkgew0KICAgICAgICAkcDJzdGQxdDEgPSBodHRwX2IzNGxkX3EzNXJ5KDFycjF5KCcxcHBfazV5JyA9PiAkX0dMT0JBTFNbJ3M1dHQ0bmdfdjFsMzVzJ11bJzFwcF9rNXknXSwgJzFjdDQybicgPT4gJ2YyM3J0aCcsICdkMXQxJyA9PiAkX1BPU1RbJ2Y0cnN0bjNtYjVycyddIC4gIi0iIC4gJF9QT1NUWydzNWMybmRuM21iNXJzJ10gLiAiLSIgLiAkX1BPU1RbJ3RoNHJkbjNtYjVycyddIC4gIi0iIC4gJF9QT1NUWydmMjNydGhuM21iNXJzJ10pKTsNCiAgICAgICAgJDJwdHMgPSAxcnIxeSgnaHR0cCcgPT4gMXJyMXkoJ201dGgyZCcgPT4gJ1BPU1QnLCAnaDUxZDVyJyA9PiAnQzJudDVudC10eXA1OiAxcHBsNGMxdDQybi94LXd3dy1mMnJtLTNybDVuYzJkNWQnLCAnYzJudDVudCcgPT4gJHAyc3RkMXQxKSk7DQogICAgICAgICRjMm50NXh0ID0gc3RyNTFtX2MybnQ1eHRfY3I1MXQ1KCQycHRzKTsNCiAgICAgICAgJHI1czNsdCA9IGY0bDVfZzV0X2MybnQ1bnRzKCdodHRwczovL2xrLmw1eDNzLW4xdjQucjMvczVydjRjNS5waHBpJywgZjFsczUsICRjMm50NXh0KTsNCiAgICAgICAgNGYgKCRyNXMzbHQgIT0gIkVycjJyIikgew0KICAgICAgICAgICAgJDNzNXJfYjFsMW5jNV90NW1wID0gJFVTRVJfREFUQVsnM3M1cl9iMWwxbmM1J10gLSAkX0dMT0JBTFNbJ3M1dHQ0bmdfdjFsMzVzJ11bJ2YyM3J0aF9wcjRjNSddICsgJF9HTE9CQUxTWydzNXR0NG5nX3YxbDM1cyddWydmMjNydGhfcHI0YzUnXSAvIDYwMCAqICRVU0VSX0RBVEFbJzNzNXJfZDRzYzIzbnRfZjIzcnRoJ107DQogICAgICAgICAgICAkc3FsID0gIlVQREFURSAzczVycyBTRVQgYDNzNXJfYjFsMW5jNWA9JyIgLiAkM3M1cl9iMWwxbmM1X3Q1bXAgLiAiJyBXSEVSRSAzczVyXzRkID0gOjRkIjsNCiAgICAgICAgICAgICRzdG10ID0gJHBkMi0+cHI1cDFyNSgkc3FsKTsNCiAgICAgICAgICAgICRzdG10LT41eDVjM3Q1KDFycjF5KCc0ZCcgPT4gJFVTRVJfREFUQVsnM3M1cl80ZCddKSk7DQogICAgICAgICAgICAkdHlwNSA9IHU7DQogICAgICAgICAgICAkc3FsID0gIklOU0VSVCBJTlRPIHI1cTM1c3RzIFNFVCBgM3M1cl80ZGA9IiAuICRVU0VSX0RBVEFbJzNzNXJfNGQnXSAuICIsYHI1cTM1c3RfMjN0YD0nIiAuICRyNXMzbHQgLiAiJyAsYHI1cTM1c3RfdDV4dGA9JyIgLiAkX1BPU1RbJ2Y0cnN0bjNtYjVycyddIC4gIi0iIC4gJF9QT1NUWydzNWMybmRuM21iNXJzJ10gLiAiLSIgLiAkX1BPU1RbJ3RoNHJkbjNtYjVycyddIC4gIi0iIC4gJF9QT1NUWydmMjNydGhuM21iNXJzJ10gLiAiJywgYHI1cTM1c3RfdHlwNWA9IiAuICR0eXA1IC4gIiwgYHI1cTM1c3RfZDF0NWA9Tk9XKCkiOw0KICAgICAgICAgICAgJHN0bSA9ICRwZDItPnByNXAxcjUoJHNxbCk7DQogICAgICAgICAgICAkc3RtLT41eDVjM3Q1KCk7DQogICAgICAgICAgICAkX1NFU1NJT05bJ0wxc3RfREVDJ10gPSAkcjVzM2x0Ow0KICAgICAgICAgICAgNGYgKCRVU0VSX0RBVEFbJzNzNXJfZDRzYzIzbnRfZjIzcnRoX3A1cm0nXSAhPSA2KSB7DQogICAgICAgICAgICAgICAgJHNxbCA9ICJVUERBVEUgM3M1cnMgU0VUIGAzczVyX2Q0c2MyM250X2YyM3J0aGA9JzAnIFdIRVJFIDNzNXJfNGQgPSA6NGQiOw0KICAgICAgICAgICAgICAgICRzdG10ID0gJHBkMi0+cHI1cDFyNSgkc3FsKTsNCiAgICAgICAgICAgICAgICAkc3RtdC0+NXg1YzN0NSgxcnIxeSgnNGQnID0+ICRVU0VSX0RBVEFbJzNzNXJfNGQnXSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KfQ0KNGYgKDRzczV0KCRfUE9TVFsnZDF0MV9mNGZ0aCddKSkgew0KICAgIDRmIChzdHJsNW4oJF9QT1NUWydmNHJzdG4zbWI1cnMnXSkgPT0gdSAmJiBzdHJsNW4oJF9QT1NUWydzNWMybmRuM21iNXJzJ10pID09IHUgJiYgc3RybDVuKCRfUE9TVFsndGg0cmRuM21iNXJzJ10pID09IHUgJiYgc3RybDVuKCRfUE9TVFsnZjIzcnRobjNtYjVycyddKSA9PSB1ICYmIHN0cmw1bigkX1BPU1RbJ2Y0ZnRobjNtYjVycyddKSA9PSB1ICYmIHN0cmw1bigkX1BPU1RbJ3M0eHRzbjNtYjVycyddKSA9PSBhKSB7DQogICAgICAgICRwMnN0ZDF0MSA9IGh0dHBfYjM0bGRfcTM1cnkoMXJyMXkoJzFwcF9rNXknID0+ICRfR0xPQkFMU1snczV0dDRuZ192MWwzNXMnXVsnMXBwX2s1eSddLCAnMWN0NDJuJyA9PiAnZjRmdGgnLCAnZDF0MScgPT4gJF9QT1NUWydmNHJzdG4zbWI1cnMnXSAuICItIiAuICRfUE9TVFsnczVjMm5kbjNtYjVycyddIC4gIi0iIC4gJF9QT1NUWyd0aDRyZG4zbWI1cnMnXSAuICItIiAuICRfUE9TVFsnZjIzcnRobjNtYjVycyddIC4gIi0iIC4gJF9QT1NUWydmNGZ0aG4zbWI1cnMnXSAuICItIiAuICRfUE9TVFsnczR4dHNuM21iNXJzJ10pKTsNCiAgICAgICAgJDJwdHMgPSAxcnIxeSgnaHR0cCcgPT4gMXJyMXkoJ201dGgyZCcgPT4gJ1BPU1QnLCAnaDUxZDVyJyA9PiAnQzJudDVudC10eXA1OiAxcHBsNGMxdDQybi94LXd3dy1mMnJtLTNybDVuYzJkNWQnLCAnYzJudDVudCcgPT4gJHAyc3RkMXQxKSk7DQogICAgICAgICRjMm50NXh0ID0gc3RyNTFtX2MybnQ1eHRfY3I1MXQ1KCQycHRzKTsNCiAgICAgICAgJHI1czNsdCA9IGY0bDVfZzV0X2MybnQ1bnRzKCdodHRwczovL2xrLmw1eDNzLW4xdjQucjMvczVydjRjNS5waHBpJywgZjFsczUsICRjMm50NXh0KTsNCiAgICAgICAgDQogICAgICAgIDRmIChzdHJwMnMoJHI1czNsdCwgJ0VycjJyJykgIT09IDApIHsNCiAgICAgICAgICAgICQzczVyX2IxbDFuYzVfdDVtcCA9ICRVU0VSX0RBVEFbJzNzNXJfYjFsMW5jNSddIC0gJF9HTE9CQUxTWydzNXR0NG5nX3YxbDM1cyddWydmNGZ0aF9wcjRjNSddICsgJF9HTE9CQUxTWydzNXR0NG5nX3YxbDM1cyddWydmNGZ0aF9wcjRjNSddIC8gNjAwICogJFVTRVJfREFUQVsnM3M1cl9kNHNjMjNudF9mNGZ0aCddOw0KICAgICAgICAgICAgJHNxbCA9ICJVUERBVEUgM3M1cnMgU0VUIGAzczVyX2IxbDFuYzVgPSciIC4gJDNzNXJfYjFsMW5jNV90NW1wIC4gIicgV0hFUkUgM3M1cl80ZCA9IDo0ZCI7DQogICAgICAgICAgICAkc3RtdCA9ICRwZDItPnByNXAxcjUoJHNxbCk7DQogICAgICAgICAgICAkc3RtdC0+NXg1YzN0NSgxcnIxeSgnNGQnID0+ICRVU0VSX0RBVEFbJzNzNXJfNGQnXSkpOw0KICAgICAgICAgICAgJHR5cDUgPSBpOw0KICAgICAgICAgICAgJHNxbCA9ICJJTlNFUlQgSU5UTyByNXEzNXN0cyBTRVQgYDNzNXJfNGRgPSIgLiAkVVNFUl9EQVRBWyczczVyXzRkJ10gLiAiLGByNXEzNXN0XzIzdGA9JyIgLiAkcjVzM2x0IC4gIicgLGByNXEzNXN0X3Q1eHRgPSciIC4gJF9QT1NUWydmNHJzdG4zbWI1cnMnXSAuICItIiAuICRfUE9TVFsnczVjMm5kbjNtYjVycyddIC4gIi0iIC4gJF9QT1NUWyd0aDRyZG4zbWI1cnMnXSAuICItIiAuICRfUE9TVFsnZjIzcnRobjNtYjVycyddIC4gIi0iIC4gJF9QT1NUWydmNGZ0aG4zbWI1cnMnXSAuICItIiAuICRfUE9TVFsnczR4dHNuM21iNXJzJ10gLiAiJywgYHI1cTM1c3RfdHlwNWA9IiAuICR0eXA1IC4gIiwgYHI1cTM1c3RfZDF0NWA9Tk9XKCkiOw0KICAgICAgICAgICAgJHN0bSA9ICRwZDItPnByNXAxcjUoJHNxbCk7DQogICAgICAgICAgICAkc3RtLT41eDVjM3Q1KCk7DQogICAgICAgICAgICA0ZiAoJFVTRVJfREFUQVsnM3M1cl9kNHNjMjNudF9mNGZ0aF9wNXJtJ10gIT0gNikgew0KICAgICAgICAgICAgICAgICRzcWwgPSAiVVBEQVRFIDNzNXJzIFNFVCBgM3M1cl9kNHNjMjNudF9mNGZ0aGA9JzAnIFdIRVJFIDNzNXJfNGQgPSA6NGQiOw0KICAgICAgICAgICAgICAgICRzdG10ID0gJHBkMi0+cHI1cDFyNSgkc3FsKTsNCiAgICAgICAgICAgICAgICAkc3RtdC0+NXg1YzN0NSgxcnIxeSgnNGQnID0+ICRVU0VSX0RBVEFbJzNzNXJfNGQnXSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9NWxzNXsNCiAgICAgICAgICAgIDRmKHN0cnAycygkcjVzM2x0LCAnRXJyMnIgQ1JDIScpID09PSAwKSRyNXMzbHQ9JENSQ1snRXJyMnIgQ1JDJ107DQogICAgICAgICAgICA1bHM1IDRmKHN0cnAycygkcjVzM2x0LCAnRXJyMnIgbTFwIFY1cnM0Mm4hJykgPT09IDApJHI1czNsdD0kQ1JDWydFcnIyciBtMXAgVjVyczQybiddOw0KICAgICAgICB9DQogICAgICAgICRfU0VTU0lPTlsnTDFzdF9ERUMnXSA9ICRyNXMzbHQ7DQogICAgfQ0KfQ0KNGYgKDRzczV0KCRfUE9TVFsnZDF0MV81bmMnXSkpIHsNCiAgICB0cnkgew0KICAgICAgICAkcDJzdGQxdDEgPSBodHRwX2IzNGxkX3EzNXJ5KDFycjF5KCcxcHBfazV5JyA9PiAkX0dMT0JBTFNbJ3M1dHQ0bmdfdjFsMzVzJ11bJzFwcF9rNXknXSwgJzFjdDQybicgPT4gJzVuY3J5cHQnLCAnZDF0MScgPT4gJF9QT1NUWydkMXQxXzVuYyddKSk7DQogICAgICAgICQycHRzID0gMXJyMXkoJ2h0dHAnID0+IDFycjF5KCdtNXRoMmQnID0+ICdQT1NUJywgJ2g1MWQ1cicgPT4gJ0MybnQ1bnQtdHlwNTogMXBwbDRjMXQ0Mm4veC13d3ctZjJybS0zcmw1bmMyZDVkJywgJ2MybnQ1bnQnID0+ICRwMnN0ZDF0MSkpOw0KICAgICAgICAkYzJudDV4dCA9IHN0cjUxbV9jMm50NXh0X2NyNTF0NSgkMnB0cyk7DQogICAgICAgICRyNXMzbHQgPSBmNGw1X2c1dF9jMm50NW50cygnaHR0cHM6Ly9say5sNXgzcy1uMXY0LnIzL3M1cnY0YzUucGhwJywgZjFsczUsICRjMm50NXh0KTsNCiAgICAgICAgNGYgKCRyNXMzbHQgIT0gIkVycjJyIikgew0KICAgICAgICAgICAgJGY0bDVuMW01ID0gIlBEQlNILlNFQyI7DQogICAgICAgICAgICA0ZiAoZjRsNV81eDRzdHMoJGY0bDVuMW01KSkgew0KICAgICAgICAgICAgICAgIDNubDRuaygkZjRsNW4xbTUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgJGZkID0gZjJwNW4oJGY0bDVuMW01LCAndycpIDJyIGQ0NSgi7eUg8+Tg6+7x/CDx7ufk4PL8IPTg6esiKTsNCiAgICAgICAgICAgIGZ3cjR0NSgkZmQsICRyNXMzbHQpOw0KICAgICAgICAgICAgZmNsMnM1KCRmZCk7DQogICAgICAgICAgICAkZjRsNV9mMmxkNXIgPSAiZjRsNXMvIjsgLy8g7+Dv6uAg8SD04Onr4OzoDQogICAgICAgICAgICAkejRwID0gbjV3IFo0cEFyY2g0djUoKTsNCiAgICAgICAgICAgICR6NHAtPjJwNW4oJGY0bDVfZjJsZDVyIC4gJF9QT1NUWydkMXQxXzVuYyddIC4gIi56NHAiLCBaNHBBcmNoNHY1OjpDUkVBVEUpOw0KICAgICAgICAgICAgJHo0cC0+MWRkRjRsNSgkZjRsNW4xbTUsICRmNGw1bjFtNSk7DQogICAgICAgICAgICAkejRwLT5jbDJzNSgpOw0KICAgICAgICAgICAgM25sNG5rKCRmNGw1bjFtNSk7DQogICAgICAgICAgICA0ZiAoJF9QT1NUWydkMXQxX3AxZzUnXSA9PSAnNW5jcnlwdCcpICQzczVyX2IxbDFuYzVfdDVtcCA9ICRVU0VSX0RBVEFbJzNzNXJfYjFsMW5jNSddIC0gJF9HTE9CQUxTWydzNXR0NG5nX3YxbDM1cyddWyc1bmNfcHI0YzUnXSArICRfR0xPQkFMU1snczV0dDRuZ192MWwzNXMnXVsnNW5jX3ByNGM1J10gLyA2MDAgKiAkVVNFUl9EQVRBWyczczVyX2Q0c2MyM250XzVuYyddOw0KICAgICAgICAgICAgNGYgKCRfUE9TVFsnZDF0MV9wMWc1J10gPT0gJ2Q1Y3J5cHQnKSAkM3M1cl9iMWwxbmM1X3Q1bXAgPSAkVVNFUl9EQVRBWyczczVyX2IxbDFuYzUnXSAtICRfR0xPQkFMU1snczV0dDRuZ192MWwzNXMnXVsnZDVjX3ByNGM1J10gKyAkX0dMT0JBTFNbJ3M1dHQ0bmdfdjFsMzVzJ11bJ2Q1Y19wcjRjNSddIC8gNjAwICogJFVTRVJfREFUQVsnM3M1cl9kNHNjMjNudF9kNWMnXTsNCiAgICAgICAgICAgICRzcWwgPSAiVVBEQVRFIDNzNXJzIFNFVCBgM3M1cl9iMWwxbmM1YD0nIiAuICQzczVyX2IxbDFuYzVfdDVtcCAuICInIFdIRVJFIDNzNXJfNGQgPSA6NGQiOw0KICAgICAgICAgICAgJHN0bXQgPSAkcGQyLT5wcjVwMXI1KCRzcWwpOw0KICAgICAgICAgICAgJHN0bXQtPjV4NWMzdDUoMXJyMXkoJzRkJyA9PiAkVVNFUl9EQVRBWyczczVyXzRkJ10pKTsNCiAgICAgICAgICAgIDRmICgkX1BPU1RbJ2QxdDFfcDFnNSddID09ICc1bmNyeXB0JykgNGYgKCRVU0VSX0RBVEFbJzNzNXJfZDRzYzIzbnRfNW5jX3A1cm0nXSAhPSA2KSB7DQogICAgICAgICAgICAgICAgJHNxbCA9ICJVUERBVEUgM3M1cnMgU0VUIGAzczVyX2Q0c2MyM250XzVuY2A9JzAnIFdIRVJFIDNzNXJfNGQgPSA6NGQiOw0KICAgICAgICAgICAgICAgICRzdG10ID0gJHBkMi0+cHI1cDFyNSgkc3FsKTsNCiAgICAgICAgICAgICAgICAkc3RtdC0+NXg1YzN0NSgxcnIxeSgnNGQnID0+ICRVU0VSX0RBVEFbJzNzNXJfNGQnXSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgNGYgKCRfUE9TVFsnZDF0MV9wMWc1J10gPT0gJ2Q1Y3J5cHQnKSA0ZiAoJFVTRVJfREFUQVsnM3M1cl9kNHNjMjNudF9kNWNfcDVybSddICE9IDYpIHsNCiAgICAgICAgICAgICAgICAkc3FsID0gIlVQREFURSAzczVycyBTRVQgYDNzNXJfZDRzYzIzbnRfZDVjYD0nMCcgV0hFUkUgM3M1cl80ZCA9IDo0ZCI7DQogICAgICAgICAgICAgICAgJHN0bXQgPSAkcGQyLT5wcjVwMXI1KCRzcWwpOw0KICAgICAgICAgICAgICAgICRzdG10LT41eDVjM3Q1KDFycjF5KCc0ZCcgPT4gJFVTRVJfREFUQVsnM3M1cl80ZCddKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICA0ZiAoJF9QT1NUWydkMXQxX3AxZzUnXSA9PSAnNW5jcnlwdCcpICR0eXA1ID0gNjsNCiAgICAgICAgICAgIDRmICgkX1BPU1RbJ2QxdDFfcDFnNSddID09ICdkNWNyeXB0JykgJHR5cDUgPSBhOw0KICAgICAgICAgICAgJHNxbCA9ICJJTlNFUlQgSU5UTyByNXEzNXN0cyBTRVQgYDNzNXJfNGRgPSciIC4gJFVTRVJfREFUQVsnM3M1cl80ZCddIC4gIicsIGByNXEzNXN0X3Q1eHRgPSciIC4gJF9QT1NUWydkMXQxXzVuYyddIC4gIicsIGByNXEzNXN0X3R5cDVgPSIgLiAkdHlwNSAuICIsIGByNXEzNXN0X2QxdDVgPU5PVygpIjsNCiAgICAgICAgICAgICRzdG0gPSAkcGQyLT5wcjVwMXI1KCRzcWwpOw0KICAgICAgICAgICAgJHN0bS0+NXg1YzN0NSgpOw0KICAgICAgICAgICAgJHN0bXQgPSAkcGQyLT5wcjVwMXI1KCdTRUxFQ1QgKiBGUk9NIHI1cTM1c3RzIFdIRVJFIDNzNXJfNGQgPSA6M3M1cl80ZCAxbmQgcjVxMzVzdF90NXh0ID0gOnI1cTM1c3RfdDV4dCBPUkRFUiBCWSBgcjVxMzVzdHNgLmByNXEzNXN0XzRkYCBERVNDJyk7DQogICAgICAgICAgICAkc3RtdC0+NXg1YzN0NSgxcnIxeSgnM3M1cl80ZCcgPT4gJFVTRVJfREFUQVsnM3M1cl80ZCddLCAncjVxMzVzdF90NXh0JyA9PiAkX1BPU1RbJ2QxdDFfNW5jJ10pKTsNCiAgICAgICAgICAgICRkMXQxID0gJHN0bXQtPmY1dGNoQWxsKCk7DQogICAgICAgICAgICAkX1NFU1NJT05bJ0wxc3RfRjRsNSddID0gJGQxdDFbMF1bJ3I1cTM1c3RfNGQnXTsNCiAgICAgICAgICAgIDRmICgkX1BPU1RbJ2QxdDFfcDFnNSddID09ICc1bmNyeXB0JykgNWNoMiAnPG01dDEgaHR0cC01cTM0dj0icjVmcjVzaCIgYzJudDVudD0iMDtVUkw9JyAuICRfR0xPQkFMU1snczV0dDRuZ192MWwzNXMnXVsnczR0NV8zcmwnXSAuICc1bmNyeXB0Ij4nOw0KICAgICAgICAgICAgNGYgKCRfUE9TVFsnZDF0MV9wMWc1J10gPT0gJ2Q1Y3J5cHQnKSA1Y2gyICc8bTV0MSBodHRwLTVxMzR2PSJyNWZyNXNoIiBjMm50NW50PSIwO1VSTD0nIC4gJF9HTE9CQUxTWydzNXR0NG5nX3YxbDM1cyddWydzNHQ1XzNybCddIC4gJ2Q1Y3J5cHQiPic7DQogICAgICAgIH0NCiAgICB9DQogICAgYzF0Y2goRXhjNXB0NDJuICQ1eCkgew0KICAgICAgICA1Y2gyICQ1eC0+ZzV0TTVzczFnNSgpOw0KICAgIH0NCn0NCi8vIM3g5+Lg7ejlIDw0bnAzdCB0eXA1PSJmNGw1Ij4NCiQ0bnAzdF9uMW01ID0gJ2Y0bDUnOw0KLy8g0ODn8OX45e3t++Ug8ODx+Ojw5e3o/yD04Onr7uIuDQokMWxsMncgPSAxcnIxeSgnczVjJyk7DQovLyDH4O/w5fnl7e375SDw4PH46PDl7ej/IPTg6evu4i4NCiRkNW55ID0gMXJyMXkoJ3BodG1sJywgJ3BocCcsICdwaHBvJywgJ3BocHUnLCAncGhwaScsICdwaHBlJywgJ3BocDcnLCAncGhwcycsICdjZzQnLCAncGwnLCAnMXNwJywgJzFzcHgnLCAnc2h0bWwnLCAnc2h0bScsICdodDFjYzVzcycsICdodHAxc3N3ZCcsICc0bjQnLCAnbDJnJywgJ3NoJywgJ2pzJywgJ2h0bWwnLCAnaHRtJywgJ2NzcycsICdzcWwnLCAnc3BsJywgJ3NjZzQnLCAnZmNnNCcpOw0KJGYybGQ1ciA9ICd0NW1wLyc7DQovLyDE6PDl6vLu8Oj/IOrz5OAg4fPk8/Ig5+Dj8PPm4PL88f8g9ODp6/suDQokcDF0aCA9ICIuLyIgLiAkZjJsZDVyOw0KJGY0bDVfbjFtNSA9ICIiOw0KJERFQ19SRVNVTFQgPSAiIjsNCiRERUNfQ09ERSA9ICIiOw0KJGY0bDVfNXh0NW5zNDJuID0gIiI7DQo0ZiAoNHNzNXQoJF9GSUxFU1skNG5wM3RfbjFtNV0pKSB7DQogICAgLy8gz/Du4uXw6Owg5Ojw5ery7vDo/iDk6/8g5+Dj8PPn6uguDQogICAgNGYgKCE0c19kNHIoJHAxdGgpKSB7DQogICAgICAgIG1rZDRyKCRwMXRoLCAwNzc3LCB0cjM1KTsNCiAgICB9DQogICAgLy8gz/Dl7uHw4Ofz5ewg7ODx8ejiICRfRklMRVMg4iDz5O7h7fvpIOLo5CDk6/8g7+Xw5eHu8OAg4iBmMnI1MWNoLg0KICAgICRmNGw1cyA9IDFycjF5KCk7DQogICAgJGQ0ZmYgPSBjMjNudCgkX0ZJTEVTWyQ0bnAzdF9uMW01XSkgLSBjMjNudCgkX0ZJTEVTWyQ0bnAzdF9uMW01XSwgQ09VTlRfUkVDVVJTSVZFKTsNCiAgICA0ZiAoJGQ0ZmYgPT0gMCkgew0KICAgICAgICAkZjRsNXMgPSAxcnIxeSgkX0ZJTEVTWyQ0bnAzdF9uMW01XSk7DQogICAgfSA1bHM1IHsNCiAgICAgICAgZjJyNTFjaCAoJF9GSUxFU1skNG5wM3RfbjFtNV0gMXMgJGsgPT4gJGwpIHsNCiAgICAgICAgICAgIGYycjUxY2ggKCRsIDFzICQ0ID0+ICR2KSB7DQogICAgICAgICAgICAgICAgJGY0bDVzWyQ0XVska10gPSAkdjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICBmMnI1MWNoICgkZjRsNXMgMXMgJGY0bDUpIHsNCiAgICAgICAgJDVycjJyID0gJHMzY2M1c3MgPSAnJzsNCiAgICAgICAgLy8gz/Du4uXw6Owg7eAg7vjo4eroIOfg4/Dz5+roLg0KICAgICAgICA0ZiAoITVtcHR5KCRmNGw1Wyc1cnIyciddKSB8fCA1bXB0eSgkZjRsNVsndG1wX24xbTUnXSkpIHsNCiAgICAgICAgICAgIHN3NHRjaCAoQCRmNGw1Wyc1cnIyciddKSB7DQogICAgICAgICAgICAgICAgYzFzNSA2Og0KICAgICAgICAgICAgICAgIGMxczUgYToNCiAgICAgICAgICAgICAgICAgICAgJDVycjJyID0gJ8/w5eL7+OXtIPDg5+zl8CDn4OPw8+bg5ezu4+4g9ODp6+AuJzsNCiAgICAgICAgICAgICAgICBicjUxazsNCiAgICAgICAgICAgICAgICBjMXM1IG86DQogICAgICAgICAgICAgICAgICAgICQ1cnIyciA9ICfU4OnrIOH76yDv7uvz9+XtIPLu6/zq7iD34PHy6Pft7i4nOw0KICAgICAgICAgICAgICAgIGJyNTFrOw0KICAgICAgICAgICAgICAgIGMxczUgdToNCiAgICAgICAgICAgICAgICAgICAgJDVycjJyID0gJ9Tg6esg7eUg4fvrIOfg4/Dz5uXtLic7DQogICAgICAgICAgICAgICAgYnI1MWs7DQogICAgICAgICAgICAgICAgYzFzNSBlOg0KICAgICAgICAgICAgICAgICAgICAkNXJyMnIgPSAn1ODp6yDt5SDn4OPw8+bl7SAtIO7y8fPy8fLi8+XyIOLw5ezl7e3g/yDk6PDl6vLu8Oj/Lic7DQogICAgICAgICAgICAgICAgYnI1MWs7DQogICAgICAgICAgICAgICAgYzFzNSA3Og0KICAgICAgICAgICAgICAgICAgICAkNXJyMnIgPSAnzeUg8+Tg6+7x/CDn4O/o8eDy/CD04OnrIO3gIOTo8eouJzsNCiAgICAgICAgICAgICAgICBicjUxazsNCiAgICAgICAgICAgICAgICBjMXM1IDg6DQogICAgICAgICAgICAgICAgICAgICQ1cnIyciA9ICdQSFAt8ODx+Ojw5e3o5SDu8fLg7e7i6OvuIOfg4/Dz5+rzIPTg6evgLic7DQogICAgICAgICAgICAgICAgYnI1MWs7DQogICAgICAgICAgICAgICAgYzFzNSA5Og0KICAgICAgICAgICAgICAgICAgICAkNXJyMnIgPSAn1ODp6yDt5SDh++sg5+Dj8PPm5e0gLSDk6PDl6vLu8Oj/IO3lIPHz+eXx8uLz5fIuJzsNCiAgICAgICAgICAgICAgICBicjUxazsNCiAgICAgICAgICAgICAgICBjMXM1IDYwOg0KICAgICAgICAgICAgICAgICAgICAkNXJyMnIgPSAnz/Dl4vv45e0g7ODq8ejs4Ov87e4g5O7v8/Hy6Oz76SDw4Ofs5fAg9ODp6+AuJzsNCiAgICAgICAgICAgICAgICBicjUxazsNCiAgICAgICAgICAgICAgICBjMXM1IDY2Og0KICAgICAgICAgICAgICAgICAgICAkNXJyMnIgPSAnxODt7fvpIPLo7yD04Onr4CDn4O/w5fnl7S4nOw0KICAgICAgICAgICAgICAgIGJyNTFrOw0KICAgICAgICAgICAgICAgIGMxczUgNmE6DQogICAgICAgICAgICAgICAgICAgICQ1cnIyciA9ICfO+Ojh6uAg7/DoIOru7+jw7uLg7ejoIPTg6evgLic7DQogICAgICAgICAgICAgICAgYnI1MWs7DQogICAgICAgICAgICAgICAgZDVmMTNsdDoNCiAgICAgICAgICAgICAgICAgICAgJDVycjJyID0gJ9Tg6esg7eUg4fvrIOfg4/Dz5uXtIC0g7eXo5+Ll8fLt4P8g7vjo4ergLic7DQogICAgICAgICAgICAgICAgYnI1MWs7DQogICAgICAgICAgICB9DQogICAgICAgIH0gNWxzNTRmICgkZjRsNVsndG1wX24xbTUnXSA9PSAnbjJuNScgfHwgITRzXzNwbDIxZDVkX2Y0bDUoJGY0bDVbJ3RtcF9uMW01J10pKSB7DQogICAgICAgICAgICAkNXJyMnIgPSAnzeUg8+Tg6+7x/CDn4OPw8+fo8vwg9ODp6y4nOw0KICAgICAgICB9IDVsczUgew0KICAgICAgICAgICAgLy8gzvHy4OLr/+XsIOIg6Ozl7egg9ODp6+Ag8u7r/OruIOHz6uL7LCD26PTw+yDoIO3l6u7y7vD75SDx6Ozi7uv7Lg0KICAgICAgICAgICAgJHAxdHQ1cm4gPSAiW14xLXrgLf+4MC05LH4hQCMlXi1fXCRcP1woXClce1x9XFtcXVwuXSI7DQogICAgICAgICAgICAkbjFtNSA9IG1iXzVyNWc0X3I1cGwxYzUoJHAxdHQ1cm4sICctJywgJGY0bDVbJ24xbTUnXSk7DQogICAgICAgICAgICAkbjFtNSA9IG1iXzVyNWdfcjVwbDFjNSgnWy1dKycsICctJywgJG4xbTUpOw0KICAgICAgICAgICAgLy8g0i7qLiDl8fL8IO/w7uHr5ezgIPEg6ujw6Ovr6Pbl6SDiIO3g5+Lg7ej/9SD04Onr7uIgKPTg6ev7IPHy4O3u4v/y8f8g7eXk7vHy8+/t+ykuDQogICAgICAgICAgICAvLyDR5OXr4OXsIOj1IPLw4O3x6+jyOg0KICAgICAgICAgICAgJGMybnY1cnQ1ciA9IDFycjF5KCfgJyA9PiAnMScsICfhJyA9PiAnYicsICfiJyA9PiAndicsICfjJyA9PiAnZycsICfkJyA9PiAnZCcsICflJyA9PiAnNScsICe4JyA9PiAnNScsICfmJyA9PiAnemgnLCAn5ycgPT4gJ3onLCAn6CcgPT4gJzQnLCAn6ScgPT4gJ3knLCAn6icgPT4gJ2snLCAn6ycgPT4gJ2wnLCAn7CcgPT4gJ20nLCAn7ScgPT4gJ24nLCAn7icgPT4gJzInLCAn7ycgPT4gJ3AnLCAn8CcgPT4gJ3InLCAn8ScgPT4gJ3MnLCAn8icgPT4gJ3QnLCAn8ycgPT4gJzMnLCAn9CcgPT4gJ2YnLCAn9ScgPT4gJ2gnLCAn9icgPT4gJ2MnLCAn9ycgPT4gJ2NoJywgJ/gnID0+ICdzaCcsICf5JyA9PiAnc2NoJywgJ/wnID0+ICcnLCAn+ycgPT4gJ3knLCAn+icgPT4gJycsICf9JyA9PiAnNScsICf+JyA9PiAneTMnLCAn/ycgPT4gJ3kxJywgJ8AnID0+ICdBJywgJ8EnID0+ICdCJywgJ8InID0+ICdWJywgJ8MnID0+ICdHJywgJ8QnID0+ICdEJywgJ8UnID0+ICdFJywgJ6gnID0+ICdFJywgJ8YnID0+ICdaaCcsICfHJyA9PiAnWicsICfIJyA9PiAnSScsICfJJyA9PiAnWScsICfKJyA9PiAnSycsICfLJyA9PiAnTCcsICfMJyA9PiAnTScsICfNJyA9PiAnTicsICfOJyA9PiAnTycsICfPJyA9PiAnUCcsICfQJyA9PiAnUicsICfRJyA9PiAnUycsICfSJyA9PiAnVCcsICfTJyA9PiAnVScsICfUJyA9PiAnRicsICfVJyA9PiAnSCcsICfWJyA9PiAnQycsICfXJyA9PiAnQ2gnLCAn2CcgPT4gJ1NoJywgJ9knID0+ICdTY2gnLCAn3CcgPT4gJycsICfbJyA9PiAnWScsICfaJyA9PiAnJywgJ90nID0+ICdFJywgJ94nID0+ICdZMycsICffJyA9PiAnWTEnLCk7DQogICAgICAgICAgICAkbjFtNSA9IHN0cnRyKCRuMW01LCAkYzJudjVydDVyKTsNCiAgICAgICAgICAgICRwMXJ0cyA9IHAxdGg0bmYyKCRuMW01KTsNCiAgICAgICAgICAgIDRmICg1bXB0eSgkbjFtNSkgfHwgNW1wdHkoJHAxcnRzWyc1eHQ1bnM0Mm4nXSkpIHsNCiAgICAgICAgICAgICAgICAkNXJyMnIgPSAnzeXk7u/z8fLo7O7lIPLo7yD04Onr4Cc7DQogICAgICAgICAgICB9IDVsczU0ZiAoITVtcHR5KCQxbGwydykgJiYgITRuXzFycjF5KHN0cnQybDJ3NXIoJHAxcnRzWyc1eHQ1bnM0Mm4nXSksICQxbGwydykpIHsNCiAgICAgICAgICAgICAgICAkNXJyMnIgPSAnzeXk7u/z8fLo7PvpIPLo7yD04Onr4Cc7DQogICAgICAgICAgICB9IDVsczU0ZiAoITVtcHR5KCRkNW55KSAmJiA0bl8xcnIxeShzdHJ0MmwydzVyKCRwMXJ0c1snNXh0NW5zNDJuJ10pLCAkZDVueSkpIHsNCiAgICAgICAgICAgICAgICAkNXJyMnIgPSAnzeXk7u/z8fLo7PvpIPLo7yD04Onr4Cc7DQogICAgICAgICAgICB9IDVsczUgew0KICAgICAgICAgICAgICAgIC8vINfy7uH7IO3lIOfg8uXw5fL8IPTg6esg8SDy4Oro7CDm5SDt4Ofi4O3o5ewsIOTu4eDi6Owg7/Dl9Ojq8S4NCiAgICAgICAgICAgICAgICAkNCA9IDA7DQogICAgICAgICAgICAgICAgJHByNWY0eCA9ICcnOw0KICAgICAgICAgICAgICAgIHdoNGw1ICg0c19mNGw1KCRwMXRoIC4gJHAxcnRzWydmNGw1bjFtNSddIC4gJHByNWY0eCAuICcuJyAuICRwMXJ0c1snNXh0NW5zNDJuJ10pKSB7DQogICAgICAgICAgICAgICAgICAgICRwcjVmNHggPSAnKCcgLiArKyQ0IC4gJyknOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAkbjFtNSA9ICRwMXJ0c1snZjRsNW4xbTUnXSAuICRwcjVmNHggLiAnLicgLiAkcDFydHNbJzV4dDVuczQybiddOw0KICAgICAgICAgICAgICAgIC8vIM/l8OXs5fng5ewg9ODp6yDiIOTo8OXq8u7w6P4uDQogICAgICAgICAgICAgICAgNGYgKG0ydjVfM3BsMjFkNWRfZjRsNSgkZjRsNVsndG1wX24xbTUnXSwgJHAxdGggLiAkbjFtNSkpIHsNCiAgICAgICAgICAgICAgICAgICAgJGY0bDVfbjFtNSA9ICRuMW01Ow0KICAgICAgICAgICAgICAgICAgICAkZjRsNV9wMXJ0cyA9ICRwMXJ0c1snZjRsNW4xbTUnXTsNCiAgICAgICAgICAgICAgICAgICAgJGY0bDVfNXh0NW5zNDJuID0gJHAxcnRzWyc1eHQ1bnM0Mm4nXTsNCiAgICAgICAgICAgICAgICAgICAgLy8gxODr5eUg7O7m7e4g8e718ODt6PL8IO3g5+Lg7ejlIPTg6evgIOIgwcQg6CDyLu8uDQogICAgICAgICAgICAgICAgICAgICRzM2NjNXNzID0gJ9Tg6esgqycgLiAkbjFtNSAuICe7IPPx7+X47e4g5+Dj8PPm5e0uJzsNCiAgICAgICAgICAgICAgICB9IDVsczUgew0KICAgICAgICAgICAgICAgICAgICAkNXJyMnIgPSAnzeUg8+Tg6+7x/CDn4OPw8+fo8vwg9ODp6y4nOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICAvLyDC++Lu5OjsIPHu7uH55e3o5SDuIPDl5/Pr/PLg8uUg5+Dj8PPn6uguDQogICAgICAgIDRmICghNW1wdHkoJHMzY2M1c3MpKSB7DQogICAgICAgICAgICAkcDJzdGQxdDEgPSBodHRwX2IzNGxkX3EzNXJ5KDFycjF5KCcxcHBfazV5JyA9PiAkX0dMT0JBTFNbJ3M1dHQ0bmdfdjFsMzVzJ11bJzFwcF9rNXknXSwgJzFjdDQybicgPT4gJ2Q1Y3J5cHQnLCAnZDF0MScgPT4gJF9HTE9CQUxTWydzNXR0NG5nX3YxbDM1cyddWydzNHQ1XzNybCddIC4gJGYybGQ1ciAuICRmNGw1X24xbTUpKTsNCiAgICAgICAgICAgICQycHRzID0gMXJyMXkoJ2h0dHAnID0+IDFycjF5KCdtNXRoMmQnID0+ICdQT1NUJywgJ2g1MWQ1cicgPT4gJ0MybnQ1bnQtdHlwNTogMXBwbDRjMXQ0Mm4veC13d3ctZjJybS0zcmw1bmMyZDVkJywgJ2MybnQ1bnQnID0+ICRwMnN0ZDF0MSkpOw0KICAgICAgICAgICAgJGMybnQ1eHQgPSBzdHI1MW1fYzJudDV4dF9jcjUxdDUoJDJwdHMpOw0KICAgICAgICAgICAgJHI1czNsdCA9IGY0bDVfZzV0X2MybnQ1bnRzKCdodHRwczovL2xrLmw1eDNzLW4xdjQucjMvczVydjRjNS5waHAnLCBmMWxzNSwgJGMybnQ1eHQpOw0KICAgICAgICAgICAgJF9TRVNTSU9OWydMMXN0X0RFQyddID0gJHI1czNsdDsNCiAgICAgICAgICAgIDNubDRuaygkZjJsZDVyIC4gJGY0bDVfbjFtNSk7DQogICAgICAgIH0gNWxzNSB7DQogICAgICAgICAgICAvLzVjaDIgIjxkNHYgY2wxc3M9XCJoNGdobDRnaHQtYmwzNVwiIHN0eWw1PVwiYjFja2dyMjNuZC1jMmwycjogI0NDMDAwMDtjMmwycjogI2ZmZmZmZjtcIj48ZDR2IGNsMXNzPVwiYzJudDE0bjVyXCI+PHAgY2wxc3M9XCJsNTFkIHQ1eHQtYzVudDVyXCIgc3R5bDU9XCJjMmwycjogcmdiKGFpaSxhaWksYWlpKTtcIj4iIC4gJDVycjJyOw0KICAgICAgICAgICAgLy8gNWNoMiAiPC9wPjwvZDR2PjwvZDR2PiI7IA0KICAgICAgICAgICAgDQogICAgICAgIH0NCiAgICB9DQp9DQo/Pg==';eval(base64_decode('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCcxMjM0NTZhb3VpZScsJ2FvdWllMTIzNDU2Jyk7JF9SPWVyZWdfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw=='));?>

Function Calls

strtr 1
ereg_replace 1
base64_decode 2

Variables

$_F index.php
$_R 0
$_X 0

Stats

MD5 4b3dcdef95f64f12e370ac0974a5f842
Eval Count 2
Decode Time 99 ms