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__;$_C1353562110='Pz48PzF5MQoKRUQgKCFEbjhZWkU0OF9URkVRWlEoIl9fYW5aNGw0YWYi..

Decoded Output download

?><?php

if (!function_exists("__autoload")) {
    include("../lib/app_top.php");
}
$page_ctl = new page_access_ctl($db);
if ($page_ctl->hasPermission('456', $_SESSION[SESSION_VAR_NAME]['role'])) {

    $Page = new page($db);
    $userAccessRight = $Page->accesspermissions('456', $_SESSION[SESSION_VAR_NAME]['role']);
    $no_userAccessRight = count($userAccessRight);
    $access_type = array();
    foreach ($userAccessRight as $p_ar) {
        array_push($access_type, $p_ar['type']);
    }
    if (in_array('5', $access_type)) {


//$format = base64_decode($_REQUEST['format']);



        $data = '';
        $line = "";
        $format = '.' . $_REQUEST['format'];

//Save File Operation
        $savename = 'master_report_' . time() . $format;

//Word Identifier
        if ($format == '.doc') {
            $file_format = "msword";
            $separator = "	";

            $tab_border = '0'; //Table Border
        }

//Excel Identifier
        else if ($format == '.xls') {
            $file_format = "vnd.ms-excel";
            $separator = "	";
        }

//CSV Identifier
        else if ($format == '.csv') {
            $file_format = "text/octect-stream";
            $separator = ",";
        }

//PDF Identifier
        else if ($format == '.pdf') {

            $tab_border = '1'; //Table Border
            //require_once('../resources/tcpdf/config/lang/eng.php');
            require_once('../resources/tcpdf/tcpdf.php');

            // create new PDF document
            $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

            // set document information
            $pdf->SetCreator(PDF_CREATOR);
            $pdf->SetAuthor('DMACQ');
            $pdf->SetTitle($savename);
            $pdf->SetSubject($mod_name);
            $pdf->SetKeywords('Index Master Report');

            // set default header data
            $pdf->SetKeywords('Index, Index master Report');
            //$pdf->SetPdfHeaderTitle('Deal Room Task Manager');
            // set default header data
            //$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 001', PDF_HEADER_STRING);
            //$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE ,'gg ' , 'sfsdf sd');
            $pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, PDF_HEADER_STRING);

            // set header and footer fonts
            $pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
            $pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));

            // set default monospaced font
            $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);

            //set margins
            $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
            $pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
            $pdf->SetFooterMargin(PDF_MARGIN_FOOTER);

            //set auto page breaks
            $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);

            //set image scale factor
            $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);

            //set some language-dependent strings
            $pdf->setLanguageArray($l);

            // ---------------------------------------------------------
            // set default font subsetting mode
            $pdf->setFontSubsetting(true);

            // Set font
            // dejavusans is a UTF-8 Unicode font, if you only need to
            // print standard ASCII chars, you can use core fonts like
            // helvetica or times to reduce file size.
            //$pdf->SetFont('Arial', '', 14, '', true);
            $pdf->SetFont('', '', 8, '', true);

            // Add a page
            // This method has several options, check the source code documentation for more information.
            $pdf->AddPage();
        }
// Set some content to print

        $mid = decrypt_url($_REQUEST['mid'], APP_ENCRYPTION_SALT);
        $Index_Master = new index_master($db);
        $indexmaster_details = $Index_Master->getIndexMaster_ById($mid);
        $Index_Group = new index_group($db);
        $index_master_rights = $Index_Master->getIndexMasterRights($_SESSION[SESSION_VAR_NAME]['user_id'], $mid);
        if ($_SESSION[SESSION_VAR_NAME]['role'] == 1 || $_SESSION[SESSION_VAR_NAME]['role'] == 2 || $index_master_rights[0]['im_report_exportprint_r'] == 1) {
            $Imaster_report = new Imaster_Report($db);
            $Imaster_Report_type = new Imaster_Report_Type($db);

            $id = $_POST['id'];
            $no_id = count($_REQUEST['id']);

            $generated_by = $_SESSION[SESSION_VAR_NAME]['fname'] . ' ' . $_SESSION[SESSION_VAR_NAME]['lname'];
            $app_title = APP_COMPANY;
            $c_time = DATE_TIME;
            $report_info = " Index Master Report- (" . $indexmaster_details[0]['index_master'] . ")";

            if ($format == '.pdf' || $format == '.doc') {

                $line = '';
                $header_section = '<tr><td colspan="6"> Report Info : ' . $report_info . '</td></tr>';
                $header_section .= '<tr><td colspan="6"> Generated By : ' . $generated_by . '</td></tr>';
                $header_section .= '<tr><td colspan="6"> Date : ' . $c_time . '</td></tr>';

                $line .= '<tr>
			<td align="center">#</td>
			<th>Report Name</th>
                        <th>Report Type</th>
                        <th>Period</th> 
                        <th>Period Duration</th> 
                        <th>Index Master Fields</th> 
                        </tr>';
                if (empty($no_id)) {
                    $line .= '<tr><td align="center" colspan="6">Records Unavailable!</td></tr>';
                } else {
                    for ($i = 0; $i < $no_id; $i++) {
                        $Imaster_report->setId($_REQUEST['id'][$i]);
                        $record_details = $Imaster_report->getReportById();
                        $line .= '<tr><td>' . ($i + 1) . '</td>';
                        $line .= '<td>' . $record_details[0]['name'] . '</td>';
                        $line .= '<td>';
                        $Imaster_Report_type->setId($record_details[0]['report_type']);
                        $Imaster_Report_type_details = $Imaster_Report_type->getReportTypeById();
                        $line .= $Imaster_Report_type_details[0]['report_type'] . '</td>';
                        if ($record_details[0]['period'] == '') {
                            $line .= '<td>NA</td>';
                        } else
                            $line .= '<td>' . $record_details[0]['period'] . '</td>';
//                $line .= '<td>' . $record_details[0]['period_duration'] . '</td>';
                        if ($record_details[0]['period_duration'] == 0 && $record_details[0]['period'] == 'Days') {
                            $line .= '<td><b>' . 'Today' . '</b></td>';
                        } else if ($record_details[0]['period_duration'] != 0) {
                            $line .= '<td>' . $record_details[0]['period_duration'] . '</td>';
                        } else {
                            $line .= '<td>' . 'NA' . '</td>';
                        }
                        $line .= '<td>';
                        $fields_display = array();
                        $field_id = explode(',', $record_details[0]['index_master_fields']);
                        for ($f = 0; $f < count($field_id); $f++) {
                            $field_details = $Index_Master->getIndexField_ById($field_id[$f]);
                            array_push($fields_display, $field_details[0]['field_name']);
                        }
                        $line .= @join(',', $fields_display) . '</td></tr>';
                    }
                }
            } elseif ($format == '.xls' || $format == '.csv') {
                $line = '';
                $header_section = 'Report Info : ' . $report_info . $separator . " 
";
                $header_section .= 'Generated By : ' . $generated_by . $separator . " 
";
                $header_section .= 'Date : ' . $c_time . $separator . " 
";

                $line .= '#' . $separator .
                        'Report Name' . $separator .
                        'Report Type' . $separator .
                        'Period' . $separator . 'Period Duration' . $separator .
                        'Index Master Fields' . $separator . " 
";

                if (empty($no_id)) {
                    $line .= 'Records Unavailable!' . $separator . "
";
                } else {
                    for ($i = 0; $i < $no_id; $i++) {
                        $Imaster_report->setId($_REQUEST['id'][$i]);
                        $record_details = $Imaster_report->getReportById();
                        $line .= ($i + 1) . $separator;
                        $line .= $record_details[0]['name'] . $separator;
                        $Imaster_Report_type->setId($record_details[0]['report_type']);
                        $Imaster_Report_type_details = $Imaster_Report_type->getReportTypeById();
                        $line .= $Imaster_Report_type_details[0]['report_type'] . $separator;
                        $line .= $record_details[0]['period'] . $separator;
                        if ($record_details[0]['period_duration'] == 0 && $record_details[0]['period'] == 'Days') {
                            $line .= 'Today' . $separator;
                        } else if ($record_details[0]['period_duration'] != 0) {
                            $line .= $record_details[0]['period_duration'] . $separator;
                        } else {
                            $line .= 'NA' . $separator;
                        }

                        $fields_display = array();
                        $field_id = explode(',', $record_details[0]['index_master_fields']);
                        for ($f = 0; $f < count($field_id); $f++) {
                            $field_details = $Index_Master->getIndexField_ById($field_id[$f]);
                            array_push($fields_display, $field_details[0]['field_name']);
                        }
                        $line .= @join('#', $fields_display) . $separator;
                        $index_group_details = $Index_Group->getIndexGroup_ById($record_details[0]['index_group_id']);

                        $line .= $separator;
                        $index_fields_display = array();
                        $index_field_id = explode(',', $record_details[0]['index_group_fields']);

                        for ($f1 = 0; $f1 < count($index_field_id); $f1++) {
                            if ($record_details[0]['report_type'] != 7) {
                                $index_field_details = $Index_Group->getIndexField_ById($index_field_id[$f1]);
                                array_push($index_fields_display, $index_field_details[0]['field_name']);
                            } else {
                                $field_details = $Index_Group->getDropDownValue($index_field_id[$f1]);
                                array_push($index_fields_display, $field_details[0]['field_values']);
                            }
                        }


                        $line .= $separator . " 
";
                    }
                }
            }
            $data = $header_section . $line;

//PDF Identifier
            if ($format == '.pdf') {
// Print text using writeHTMLCell()
                $pdf->writeHTMLCell($w = 0, $h = 0, $x = '', $y = '', "<table width=\"100%\" cellspacing=\"0\" cellpadding=\"5\" border=\"1\">$header$data</table>", $border = 0, $ln = 1, $fill = 0, $reseth = true, $align = '', $autopadding = true);

// ---------------------------------------------------------
// Close and output PDF document
// This method has several options, check the source code documentation for more information.
                $pdf->Output($savename, 'I');
            }

//Word/Excel/CSV Identifier
            else {
                header("Content-type: application/$file_type;charset=utf-8");
                header("Content-Disposition: attachment; filename=" . $savename);
                header("Pragma: no-cache");
                header("Expires: 0");

                if ($format == '.doc') {
                    print "<table width=\"100%\" cellspacing=\"0\" cellpadding=\"5\" border=" . $tab_border . ">$data</table>";
                } else {
                    print "$data";
                }
            }

//============================================================+
// END OF FILE
//============================================================+

            $Log = new log($db);
            $Log->setUserName($_SESSION[SESSION_VAR_NAME]['fname'] . " " . $_SESSION[SESSION_VAR_NAME]['mname'] . " " . $_SESSION[SESSION_VAR_NAME]['lname']);
            $Log->setUserEmail($_SESSION[SESSION_VAR_NAME]['email']);
            $Log->setUserOrg($_SESSION[SESSION_VAR_NAME]['org']);
            $Log->setIpAddress($_SERVER["REMOTE_ADDR"]);
            $Log->setMainModule("Index Master");
            $Log->setSubModule("Master Report Dashboard");
            $Log->setTrigger("Export");
            $log_msg = $format . "File Exported" . date("Y/m/d");
            $Log->setTriggerProcess($log_msg);
            $Log->setLogDatetime(DATE_TIME);
            $addLog = $Log->addLogDetail();
        } else {
            include("../error_403.php");
        }
    } else {
        include("../error_403.php");
    }
} else {
    $page_ctl->log_indirect_access();
    include("../error_403.php");
}
?>

Did this file decode correctly?

Original Code

<?php $_F=__FILE__;$_C1353562110='Pz48PzF5MQoKRUQgKCFEbjhZWkU0OF9URkVRWlEoIl9fYW5aNGw0YWYiKSkgewogICAgRThZbG5mVCgiLi4vbEVzL2ExMV9aNDEuMXkxIik7Cn0KJDFhM1RfWVpsID0gOFR6IDFhM1RfYVlZVFFRX1labCgkZnMpOwpFRCAoJDFhM1RfWVpsLT55YVFjVFh3RVFRRTQ4KCdQNUInLCAkX2dxZ2cwOXBbZ3FnZzA5cF83QWRfcEFXcV1bJ1g0bFQnXSkpIHsKCiAgICAkY2EzVCA9IDhUeiAxYTNUKCRmcyk7CiAgICAkblFUWEFZWVRRUWRFM3laID0gJGNhM1QtPmFZWVRRUTFUWHdFUVFFNDhRKCdQNUInLCAkX2dxZ2cwOXBbZ3FnZzA5cF83QWRfcEFXcV1bJ1g0bFQnXSk7CiAgICAkODRfblFUWEFZWVRRUWRFM3laID0gWTRuOFooJG5RVFhBWVlUUVFkRTN5Wik7CiAgICAkYVlZVFFRX1pOMVQgPSBhWFhhTigpOwogICAgRDRYVGFZeSAoJG5RVFhBWVlUUVFkRTN5WiBhUSAkMV9hWCkgewogICAgICAgIGFYWGFOXzFuUXkoJGFZWVRRUV9aTjFULCAkMV9hWFsnWk4xVCddKTsKICAgIH0KICAgIEVEIChFOF9hWFhhTignNScsICRhWVlUUVFfWk4xVCkpIHsKCgovLyRENFh3YVogPSBzYVFUQlBfZlRZNGZUKCRfZHFTdXFnTFsnRDRYd2FaJ10pOwoKCgogICAgICAgICRmYVphID0gJyc7CiAgICAgICAgJGxFOFQgPSAiIjsKICAgICAgICAkRDRYd2FaID0gJy4nIC4gJF9kcVN1cWdMWydENFh3YVonXTsKCi8vZ2FrVCBlRWxUIDkxVFhhWkU0OAogICAgICAgICRRYWtUOGF3VCA9ICd3YVFaVFhfWFQxNFhaXycgLiBaRXdUKCkgLiAkRDRYd2FaOwoKLy9VNFhmIDBmVDhaRURFVFgKICAgICAgICBFRCAoJEQ0WHdhWiA9PSAnLmY0WScpIHsKICAgICAgICAgICAgJERFbFRfRDRYd2FaID0gIndRejRYZiI7CiAgICAgICAgICAgICRRVDFhWGFaNFggPSAiXFoiOwoKICAgICAgICAgICAgJFphc19zNFhmVFggPSAnbyc7IC8vTGFzbFQgcjRYZlRYCiAgICAgICAgfQoKLy9xRllUbCAwZlQ4WkVERVRYCiAgICAgICAgVGxRVCBFRCAoJEQ0WHdhWiA9PSAnLkZsUScpIHsKICAgICAgICAgICAgJERFbFRfRDRYd2FaID0gIms4Zi53US1URllUbCI7CiAgICAgICAgICAgICRRVDFhWGFaNFggPSAiXFoiOwogICAgICAgIH0KCi8vUmc3IDBmVDhaRURFVFgKICAgICAgICBUbFFUIEVEICgkRDRYd2FaID09ICcuWVFrJykgewogICAgICAgICAgICAkREVsVF9ENFh3YVogPSAiWlRGWi80WVpUWVotUVpYVGF3IjsKICAgICAgICAgICAgJFFUMWFYYVo0WCA9ICIsIjsKICAgICAgICB9CgovL2N4ZSAwZlQ4WkVERVRYCiAgICAgICAgVGxRVCBFRCAoJEQ0WHdhWiA9PSAnLjFmRCcpIHsKCiAgICAgICAgICAgICRaYXNfczRYZlRYID0gJ00nOyAvL0xhc2xUIHI0WGZUWAogICAgICAgICAgICAvL1hUbW5FWFRfNDhZVCgnLi4vWFRRNG5YWVRRL1pZMWZEL1k0OERFMy9sYTgzL1Q4My4xeTEnKTsKICAgICAgICAgICAgWFRtbkVYVF80OFlUKCcuLi9YVFE0blhZVFEvWlkxZkQvWlkxZkQuMXkxJyk7CgogICAgICAgICAgICAvLyBZWFRhWlQgOFR6IGN4ZSBmNFlud1Q4WgogICAgICAgICAgICAkMWZEID0gOFR6IExSY3hlKGN4ZV9jQVZxXzlkMHFwTEFMMDlwLCBjeGVfdXAwTCwgY3hlX2NBVnFfZTlkV0FMLCBaWG5ULCAndUxlLXQnLCBEYWxRVCk7CgogICAgICAgICAgICAvLyBRVFogZjRZbndUOFogRThENFh3YVpFNDgKICAgICAgICAgICAgJDFmRC0+Z1RaUlhUYVo0WChjeGVfUmRxQUw5ZCk7CiAgICAgICAgICAgICQxZkQtPmdUWkFuWnk0WCgneFdBUlMnKTsKICAgICAgICAgICAgJDFmRC0+Z1RaTEVabFQoJFFha1Q4YXdUKTsKICAgICAgICAgICAgJDFmRC0+Z1RaZ25zdlRZWigkdzRmXzhhd1QpOwogICAgICAgICAgICAkMWZELT5nVFoyVE56NFhmUSgnMDhmVEYgV2FRWlRYIGRUMTRYWicpOwoKICAgICAgICAgICAgLy8gUVRaIGZURGFubFogeVRhZlRYIGZhWmEKICAgICAgICAgICAgJDFmRC0+Z1RaMlROejRYZlEoJzA4ZlRGLCAwOGZURiB3YVFaVFggZFQxNFhaJyk7CiAgICAgICAgICAgIC8vJDFmRC0+Z1RaY2ZET1RhZlRYTEVabFQoJ3hUYWwgZDQ0dyBMYVFoIFdhOGEzVFgnKTsKICAgICAgICAgICAgLy8gUVRaIGZURGFubFogeVRhZlRYIGZhWmEKICAgICAgICAgICAgLy8kMWZELT5nVFpPVGFmVFh4YVphKGN4ZV9PcUF4cWRfSjlWOSwgY3hlX09xQXhxZF9KOVY5X1UweExPLCBjeGVfT3FBeHFkX0wwTEpxLicgb29NJywgY3hlX09xQXhxZF9nTGQwcFYpOwogICAgICAgICAgICAvLyQxZkQtPmdUWk9UYWZUWHhhWmEoY3hlX09xQXhxZF9KOVY5LCBjeGVfT3FBeHFkX0o5VjlfVTB4TE8sIGN4ZV9PcUF4cWRfTDBMSnEgLCczMyAnICwgJ1FEUWZEIFFmJyk7CiAgICAgICAgICAgICQxZkQtPmdUWk9UYWZUWHhhWmEoY3hlX09xQXhxZF9KOVY5LCBjeGVfT3FBeHFkX0o5VjlfVTB4TE8sIGN4ZV9PcUF4cWRfTDBMSnEsIGN4ZV9PcUF4cWRfZ0xkMHBWKTsKCiAgICAgICAgICAgIC8vIFFUWiB5VGFmVFggYThmIEQ0NFpUWCBENDhaUQogICAgICAgICAgICAkMWZELT5RVFpPVGFmVFhlNDhaKEFYWGFOKGN4ZV9lOXBMX3BBV3FfV0EwcCwgJycsIGN4ZV9lOXBMX2cwanFfV0EwcCkpOwogICAgICAgICAgICAkMWZELT5RVFplNDRaVFhlNDhaKEFYWGFOKGN4ZV9lOXBMX3BBV3FfeEFMQSwgJycsIGN4ZV9lOXBMX2cwanFfeEFMQSkpOwoKICAgICAgICAgICAgLy8gUVRaIGZURGFubFogdzQ4NFExYVlUZiBENDhaCiAgICAgICAgICAgICQxZkQtPmdUWnhURGFubFpXNDg0UTFhWVRmZTQ4WihjeGVfZTlwTF9XOXA5Z2NBUnF4KTsKCiAgICAgICAgICAgIC8vUVRaIHdhWDNFOFEKICAgICAgICAgICAgJDFmRC0+Z1RaV2FYM0U4UShjeGVfV0FkVjBwX0pxZUwsIGN4ZV9XQWRWMHBfTDljLCBjeGVfV0FkVjBwX2QwVk9MKTsKICAgICAgICAgICAgJDFmRC0+Z1RaT1RhZlRYV2FYM0U4KGN4ZV9XQWRWMHBfT3FBeHFkKTsKICAgICAgICAgICAgJDFmRC0+Z1RaZTQ0WlRYV2FYM0U4KGN4ZV9XQWRWMHBfZTk5THFkKTsKCiAgICAgICAgICAgIC8vUVRaIGFuWjQgMWEzVCBzWFRhaFEKICAgICAgICAgICAgJDFmRC0+Z1RaQW5aNGNhM1RyWFRhaChMZHVxLCBjeGVfV0FkVjBwX3I5TEw5Vyk7CgogICAgICAgICAgICAvL1FUWiBFd2EzVCBRWWFsVCBEYVlaNFgKICAgICAgICAgICAgJDFmRC0+UVRaMHdhM1RnWWFsVChjeGVfMFdBVnFfZ1JBSnFfZEFMMDkpOwoKICAgICAgICAgICAgLy9RVFogUTR3VCBsYTgzbmEzVC1mVDFUOGZUOFogUVpYRTgzUQogICAgICAgICAgICAkMWZELT5RVFpKYTgzbmEzVEFYWGFOKCRsKTsKCiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAgICAgICAvLyBRVFogZlREYW5sWiBENDhaIFFuc1FUWlpFODMgdzRmVAogICAgICAgICAgICAkMWZELT5RVFplNDhaZ25zUVRaWkU4MyhaWG5UKTsKCiAgICAgICAgICAgIC8vIGdUWiBENDhaCiAgICAgICAgICAgIC8vIGZUdmFrblFhOFEgRVEgYSB1TGUtdCB1OEVZNGZUIEQ0OFosIEVEIE40biA0OGxOIDhUVGYgWjQKICAgICAgICAgICAgLy8gMVhFOFogUVphOGZhWGYgQWdSMDAgWXlhWFEsIE40biBZYTggblFUIFk0WFQgRDQ4WlEgbEVoVAogICAgICAgICAgICAvLyB5VGxrVFpFWWEgNFggWkV3VFEgWjQgWFRmbllUIERFbFQgUUVHVC4KICAgICAgICAgICAgLy8kMWZELT5nVFplNDhaKCdBWEVhbCcsICcnLCBNUCwgJycsIFpYblQpOwogICAgICAgICAgICAkMWZELT5nVFplNDhaKCcnLCAnJywgdCwgJycsIFpYblQpOwoKICAgICAgICAgICAgLy8gQWZmIGEgMWEzVAogICAgICAgICAgICAvLyBMeUVRIHdUWnk0ZiB5YVEgUVRrVFhhbCA0MVpFNDhRLCBZeVRZaCBaeVQgUTRuWFlUIFk0ZlQgZjRZbndUOFphWkU0OCBENFggdzRYVCBFOEQ0WHdhWkU0OC4KICAgICAgICAgICAgJDFmRC0+QWZmY2EzVCgpOwogICAgICAgIH0KLy8gZ1RaIFE0d1QgWTQ4WlQ4WiBaNCAxWEU4WgoKICAgICAgICAkd0VmID0gZlRZWE4xWl9uWGwoJF9kcVN1cWdMWyd3RWYnXSwgQWNjX3FwUmQ2Y0wwOXBfZ0FKTCk7CiAgICAgICAgJDA4ZlRGX1dhUVpUWCA9IDhUeiBFOGZURl93YVFaVFgoJGZzKTsKICAgICAgICAkRThmVEZ3YVFaVFhfZlRaYUVsUSA9ICQwOGZURl9XYVFaVFgtPjNUWjA4ZlRGV2FRWlRYX3JOMGYoJHdFZik7CiAgICAgICAgJDA4ZlRGX1ZYNG4xID0gOFR6IEU4ZlRGXzNYNG4xKCRmcyk7CiAgICAgICAgJEU4ZlRGX3dhUVpUWF9YRTN5WlEgPSAkMDhmVEZfV2FRWlRYLT4zVFowOGZURldhUVpUWGRFM3laUSgkX2dxZ2cwOXBbZ3FnZzA5cF83QWRfcEFXcV1bJ25RVFhfRWYnXSwgJHdFZik7CiAgICAgICAgRUQgKCRfZ3FnZzA5cFtncWdnMDlwXzdBZF9wQVdxXVsnWDRsVCddID09IE0gfHwgJF9ncWdnMDlwW2dxZ2cwOXBfN0FkX3BBV3FdWydYNGxUJ10gPT0gYiB8fCAkRThmVEZfd2FRWlRYX1hFM3laUVtvXVsnRXdfWFQxNFhaX1RGMTRYWjFYRThaX1gnXSA9PSBNKSB7CiAgICAgICAgICAgICQwd2FRWlRYX1hUMTRYWiA9IDhUeiAwd2FRWlRYX2RUMTRYWigkZnMpOwogICAgICAgICAgICAkMHdhUVpUWF9kVDE0WFpfWk4xVCA9IDhUeiAwd2FRWlRYX2RUMTRYWl9MTjFUKCRmcyk7CgogICAgICAgICAgICAkRWYgPSAkX2M5Z0xbJ0VmJ107CiAgICAgICAgICAgICQ4NF9FZiA9IFk0bjhaKCRfZHFTdXFnTFsnRWYnXSk7CgogICAgICAgICAgICAkM1Q4VFhhWlRmX3NOID0gJF9ncWdnMDlwW2dxZ2cwOXBfN0FkX3BBV3FdWydEOGF3VCddIC4gJyAnIC4gJF9ncWdnMDlwW2dxZ2cwOXBfN0FkX3BBV3FdWydsOGF3VCddOwogICAgICAgICAgICAkYTExX1pFWmxUID0gQWNjX1I5V2NBcDY7CiAgICAgICAgICAgICRZX1pFd1QgPSB4QUxxX0wwV3E7CiAgICAgICAgICAgICRYVDE0WFpfRThENCA9ICIgMDhmVEYgV2FRWlRYIGRUMTRYWi0gKCIgLiAkRThmVEZ3YVFaVFhfZlRaYUVsUVtvXVsnRThmVEZfd2FRWlRYJ10gLiAiKSI7CgogICAgICAgICAgICBFRCAoJEQ0WHdhWiA9PSAnLjFmRCcgfHwgJEQ0WHdhWiA9PSAnLmY0WScpIHsKCiAgICAgICAgICAgICAgICAkbEU4VCA9ICcnOwogICAgICAgICAgICAgICAgJHlUYWZUWF9RVFlaRTQ4ID0gJzxaWD48WmYgWTRsUTFhOD0iQiI+IGRUMTRYWiAwOEQ0IDogJyAuICRYVDE0WFpfRThENCAuICc8L1pmPjwvWlg+JzsKICAgICAgICAgICAgICAgICR5VGFmVFhfUVRZWkU0OCAuPSAnPFpYPjxaZiBZNGxRMWE4PSJCIj4gVlQ4VFhhWlRmIHJOIDogJyAuICQzVDhUWGFaVGZfc04gLiAnPC9aZj48L1pYPic7CiAgICAgICAgICAgICAgICAkeVRhZlRYX1FUWVpFNDggLj0gJzxaWD48WmYgWTRsUTFhOD0iQiI+IHhhWlQgOiAnIC4gJFlfWkV3VCAuICc8L1pmPjwvWlg+JzsKCiAgICAgICAgICAgICAgICAkbEU4VCAuPSAnPFpYPgoJCQk8WmYgYWxFMzg9IllUOFpUWCI+IzwvWmY+CgkJCTxaeT5kVDE0WFogcGF3VDwvWnk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxaeT5kVDE0WFogTE4xVDwvWnk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxaeT5jVFhFNGY8L1p5PiAKICAgICAgICAgICAgICAgICAgICAgICAgPFp5PmNUWEU0ZiB4blhhWkU0ODwvWnk+IAogICAgICAgICAgICAgICAgICAgICAgICA8Wnk+MDhmVEYgV2FRWlRYIGVFVGxmUTwvWnk+IAogICAgICAgICAgICAgICAgICAgICAgICA8L1pYPic7CiAgICAgICAgICAgICAgICBFRCAoVHcxWk4oJDg0X0VmKSkgewogICAgICAgICAgICAgICAgICAgICRsRThUIC49ICc8Wlg+PFpmIGFsRTM4PSJZVDhaVFgiIFk0bFExYTg9IkIiPmRUWTRYZlEgdThha2FFbGFzbFQhPC9aZj48L1pYPic7CiAgICAgICAgICAgICAgICB9IFRsUVQgewogICAgICAgICAgICAgICAgICAgIEQ0WCAoJEUgPSBvOyAkRSA8ICQ4NF9FZjsgJEUrKykgewogICAgICAgICAgICAgICAgICAgICAgICAkMHdhUVpUWF9YVDE0WFotPlFUWjBmKCRfZHFTdXFnTFsnRWYnXVskRV0pOwogICAgICAgICAgICAgICAgICAgICAgICAkWFRZNFhmX2ZUWmFFbFEgPSAkMHdhUVpUWF9YVDE0WFotPjNUWmRUMTRYWnJOMGYoKTsKICAgICAgICAgICAgICAgICAgICAgICAgJGxFOFQgLj0gJzxaWD48WmY+JyAuICgkRSArIE0pIC4gJzwvWmY+JzsKICAgICAgICAgICAgICAgICAgICAgICAgJGxFOFQgLj0gJzxaZj4nIC4gJFhUWTRYZl9mVFphRWxRW29dWyc4YXdUJ10gLiAnPC9aZj4nOwogICAgICAgICAgICAgICAgICAgICAgICAkbEU4VCAuPSAnPFpmPic7CiAgICAgICAgICAgICAgICAgICAgICAgICQwd2FRWlRYX2RUMTRYWl9aTjFULT5RVFowZigkWFRZNFhmX2ZUWmFFbFFbb11bJ1hUMTRYWl9aTjFUJ10pOwogICAgICAgICAgICAgICAgICAgICAgICAkMHdhUVpUWF9kVDE0WFpfWk4xVF9mVFphRWxRID0gJDB3YVFaVFhfZFQxNFhaX1pOMVQtPjNUWmRUMTRYWkxOMVRyTjBmKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICRsRThUIC49ICQwd2FRWlRYX2RUMTRYWl9aTjFUX2ZUWmFFbFFbb11bJ1hUMTRYWl9aTjFUJ10gLiAnPC9aZj4nOwogICAgICAgICAgICAgICAgICAgICAgICBFRCAoJFhUWTRYZl9mVFphRWxRW29dWycxVFhFNGYnXSA9PSAnJykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxFOFQgLj0gJzxaZj5wQTwvWmY+JzsKICAgICAgICAgICAgICAgICAgICAgICAgfSBUbFFUCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbEU4VCAuPSAnPFpmPicgLiAkWFRZNFhmX2ZUWmFFbFFbb11bJzFUWEU0ZiddIC4gJzwvWmY+JzsKLy8gICAgICAgICAgICAgICAgJGxFOFQgLj0gJzxaZj4nIC4gJFhUWTRYZl9mVFphRWxRW29dWycxVFhFNGZfZm5YYVpFNDgnXSAuICc8L1pmPic7CiAgICAgICAgICAgICAgICAgICAgICAgIEVEICgkWFRZNFhmX2ZUWmFFbFFbb11bJzFUWEU0Zl9mblhhWkU0OCddID09IG8gJiYgJFhUWTRYZl9mVFphRWxRW29dWycxVFhFNGYnXSA9PSAneGFOUScpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsRThUIC49ICc8WmY+PHM+JyAuICdMNGZhTicgLiAnPC9zPjwvWmY+JzsKICAgICAgICAgICAgICAgICAgICAgICAgfSBUbFFUIEVEICgkWFRZNFhmX2ZUWmFFbFFbb11bJzFUWEU0Zl9mblhhWkU0OCddICE9IG8pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsRThUIC49ICc8WmY+JyAuICRYVFk0WGZfZlRaYUVsUVtvXVsnMVRYRTRmX2ZuWGFaRTQ4J10gLiAnPC9aZj4nOwogICAgICAgICAgICAgICAgICAgICAgICB9IFRsUVQgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxFOFQgLj0gJzxaZj4nIC4gJ3BBJyAuICc8L1pmPic7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgJGxFOFQgLj0gJzxaZj4nOwogICAgICAgICAgICAgICAgICAgICAgICAkREVUbGZRX2ZFUTFsYU4gPSBhWFhhTigpOwogICAgICAgICAgICAgICAgICAgICAgICAkREVUbGZfRWYgPSBURjFsNGZUKCcsJywgJFhUWTRYZl9mVFphRWxRW29dWydFOGZURl93YVFaVFhfREVUbGZRJ10pOwogICAgICAgICAgICAgICAgICAgICAgICBENFggKCREID0gbzsgJEQgPCBZNG44WigkREVUbGZfRWYpOyAkRCsrKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkREVUbGZfZlRaYUVsUSA9ICQwOGZURl9XYVFaVFgtPjNUWjA4ZlRGZUVUbGZfck4wZigkREVUbGZfRWZbJERdKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFYWGFOXzFuUXkoJERFVGxmUV9mRVExbGFOLCAkREVUbGZfZlRaYUVsUVtvXVsnREVUbGZfOGF3VCddKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAkbEU4VCAuPSBAdjRFOCgnLCcsICRERVRsZlFfZkVRMWxhTikgLiAnPC9aZj48L1pYPic7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IFRsUVRFRCAoJEQ0WHdhWiA9PSAnLkZsUScgfHwgJEQ0WHdhWiA9PSAnLllRaycpIHsKICAgICAgICAgICAgICAgICRsRThUID0gJyc7CiAgICAgICAgICAgICAgICAkeVRhZlRYX1FUWVpFNDggPSAnZFQxNFhaIDA4RDQgOiAnIC4gJFhUMTRYWl9FOEQ0IC4gJFFUMWFYYVo0WCAuICIgXDgiOwogICAgICAgICAgICAgICAgJHlUYWZUWF9RVFlaRTQ4IC49ICdWVDhUWGFaVGYgck4gOiAnIC4gJDNUOFRYYVpUZl9zTiAuICRRVDFhWGFaNFggLiAiIFw4IjsKICAgICAgICAgICAgICAgICR5VGFmVFhfUVRZWkU0OCAuPSAneGFaVCA6ICcgLiAkWV9aRXdUIC4gJFFUMWFYYVo0WCAuICIgXDgiOwoKICAgICAgICAgICAgICAgICRsRThUIC49ICcjJyAuICRRVDFhWGFaNFggLgogICAgICAgICAgICAgICAgICAgICAgICAnZFQxNFhaIHBhd1QnIC4gJFFUMWFYYVo0WCAuCiAgICAgICAgICAgICAgICAgICAgICAgICdkVDE0WFogTE4xVCcgLiAkUVQxYVhhWjRYIC4KICAgICAgICAgICAgICAgICAgICAgICAgJ2NUWEU0ZicgLiAkUVQxYVhhWjRYIC4gJ2NUWEU0ZiB4blhhWkU0OCcgLiAkUVQxYVhhWjRYIC4KICAgICAgICAgICAgICAgICAgICAgICAgJzA4ZlRGIFdhUVpUWCBlRVRsZlEnIC4gJFFUMWFYYVo0WCAuICIgXDgiOwoKICAgICAgICAgICAgICAgIEVEIChUdzFaTigkODRfRWYpKSB7CiAgICAgICAgICAgICAgICAgICAgJGxFOFQgLj0gJ2RUWTRYZlEgdThha2FFbGFzbFQhJyAuICRRVDFhWGFaNFggLiAiXDgiOwogICAgICAgICAgICAgICAgfSBUbFFUIHsKICAgICAgICAgICAgICAgICAgICBENFggKCRFID0gbzsgJEUgPCAkODRfRWY7ICRFKyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgJDB3YVFaVFhfWFQxNFhaLT5RVFowZigkX2RxU3VxZ0xbJ0VmJ11bJEVdKTsKICAgICAgICAgICAgICAgICAgICAgICAgJFhUWTRYZl9mVFphRWxRID0gJDB3YVFaVFhfWFQxNFhaLT4zVFpkVDE0WFpyTjBmKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICRsRThUIC49ICgkRSArIE0pIC4gJFFUMWFYYVo0WDsKICAgICAgICAgICAgICAgICAgICAgICAgJGxFOFQgLj0gJFhUWTRYZl9mVFphRWxRW29dWyc4YXdUJ10gLiAkUVQxYVhhWjRYOwogICAgICAgICAgICAgICAgICAgICAgICAkMHdhUVpUWF9kVDE0WFpfWk4xVC0+UVRaMGYoJFhUWTRYZl9mVFphRWxRW29dWydYVDE0WFpfWk4xVCddKTsKICAgICAgICAgICAgICAgICAgICAgICAgJDB3YVFaVFhfZFQxNFhaX1pOMVRfZlRaYUVsUSA9ICQwd2FRWlRYX2RUMTRYWl9aTjFULT4zVFpkVDE0WFpMTjFUck4wZigpOwogICAgICAgICAgICAgICAgICAgICAgICAkbEU4VCAuPSAkMHdhUVpUWF9kVDE0WFpfWk4xVF9mVFphRWxRW29dWydYVDE0WFpfWk4xVCddIC4gJFFUMWFYYVo0WDsKICAgICAgICAgICAgICAgICAgICAgICAgJGxFOFQgLj0gJFhUWTRYZl9mVFphRWxRW29dWycxVFhFNGYnXSAuICRRVDFhWGFaNFg7CiAgICAgICAgICAgICAgICAgICAgICAgIEVEICgkWFRZNFhmX2ZUWmFFbFFbb11bJzFUWEU0Zl9mblhhWkU0OCddID09IG8gJiYgJFhUWTRYZl9mVFphRWxRW29dWycxVFhFNGYnXSA9PSAneGFOUScpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsRThUIC49ICdMNGZhTicgLiAkUVQxYVhhWjRYOwogICAgICAgICAgICAgICAgICAgICAgICB9IFRsUVQgRUQgKCRYVFk0WGZfZlRaYUVsUVtvXVsnMVRYRTRmX2ZuWGFaRTQ4J10gIT0gbykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxFOFQgLj0gJFhUWTRYZl9mVFphRWxRW29dWycxVFhFNGZfZm5YYVpFNDgnXSAuICRRVDFhWGFaNFg7CiAgICAgICAgICAgICAgICAgICAgICAgIH0gVGxRVCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbEU4VCAuPSAncEEnIC4gJFFUMWFYYVo0WDsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgJERFVGxmUV9mRVExbGFOID0gYVhYYU4oKTsKICAgICAgICAgICAgICAgICAgICAgICAgJERFVGxmX0VmID0gVEYxbDRmVCgnLCcsICRYVFk0WGZfZlRaYUVsUVtvXVsnRThmVEZfd2FRWlRYX0RFVGxmUSddKTsKICAgICAgICAgICAgICAgICAgICAgICAgRDRYICgkRCA9IG87ICREIDwgWTRuOFooJERFVGxmX0VmKTsgJEQrKykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJERFVGxmX2ZUWmFFbFEgPSAkMDhmVEZfV2FRWlRYLT4zVFowOGZURmVFVGxmX3JOMGYoJERFVGxmX0VmWyREXSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhWFhhTl8xblF5KCRERVRsZlFfZkVRMWxhTiwgJERFVGxmX2ZUWmFFbFFbb11bJ0RFVGxmXzhhd1QnXSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgJGxFOFQgLj0gQHY0RTgoJyMnLCAkREVUbGZRX2ZFUTFsYU4pIC4gJFFUMWFYYVo0WDsKICAgICAgICAgICAgICAgICAgICAgICAgJEU4ZlRGXzNYNG4xX2ZUWmFFbFEgPSAkMDhmVEZfVlg0bjEtPjNUWjA4ZlRGVlg0bjFfck4wZigkWFRZNFhmX2ZUWmFFbFFbb11bJ0U4ZlRGXzNYNG4xX0VmJ10pOwoKICAgICAgICAgICAgICAgICAgICAgICAgJGxFOFQgLj0gJFFUMWFYYVo0WDsKICAgICAgICAgICAgICAgICAgICAgICAgJEU4ZlRGX0RFVGxmUV9mRVExbGFOID0gYVhYYU4oKTsKICAgICAgICAgICAgICAgICAgICAgICAgJEU4ZlRGX0RFVGxmX0VmID0gVEYxbDRmVCgnLCcsICRYVFk0WGZfZlRaYUVsUVtvXVsnRThmVEZfM1g0bjFfREVUbGZRJ10pOwoKICAgICAgICAgICAgICAgICAgICAgICAgRDRYICgkRE0gPSBvOyAkRE0gPCBZNG44WigkRThmVEZfREVUbGZfRWYpOyAkRE0rKykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgRUQgKCRYVFk0WGZfZlRaYUVsUVtvXVsnWFQxNFhaX1pOMVQnXSAhPSBIKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEU4ZlRGX0RFVGxmX2ZUWmFFbFEgPSAkMDhmVEZfVlg0bjEtPjNUWjA4ZlRGZUVUbGZfck4wZigkRThmVEZfREVUbGZfRWZbJERNXSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYVhYYU5fMW5ReSgkRThmVEZfREVUbGZRX2ZFUTFsYU4sICRFOGZURl9ERVRsZl9mVFphRWxRW29dWydERVRsZl84YXdUJ10pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBUbFFUIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkREVUbGZfZlRaYUVsUSA9ICQwOGZURl9WWDRuMS0+M1RaeFg0MXg0ejg3YWxuVCgkRThmVEZfREVUbGZfRWZbJERNXSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYVhYYU5fMW5ReSgkRThmVEZfREVUbGZRX2ZFUTFsYU4sICRERVRsZl9mVFphRWxRW29dWydERVRsZl9rYWxuVFEnXSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCgogICAgICAgICAgICAgICAgICAgICAgICAkbEU4VCAuPSAkUVQxYVhhWjRYIC4gIiBcOCI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgICRmYVphID0gJHlUYWZUWF9RVFlaRTQ4IC4gJGxFOFQ7CgovL2N4ZSAwZlQ4WkVERVRYCiAgICAgICAgICAgIEVEICgkRDRYd2FaID09ICcuMWZEJykgewovLyBjWEU4WiBaVEZaIG5RRTgzIHpYRVpUT0xXSlJUbGwoKQogICAgICAgICAgICAgICAgJDFmRC0+elhFWlRPTFdKUlRsbCgkeiA9IG8sICR5ID0gbywgJEYgPSAnJywgJE4gPSAnJywgIjxaYXNsVCB6RWZaeT1cIk1vbyVcIiBZVGxsUTFhWUU4Mz1cIm9cIiBZVGxsMWFmZkU4Mz1cIjVcIiBzNFhmVFg9XCJNXCI+JHlUYWZUWCRmYVphPC9aYXNsVD4iLCAkczRYZlRYID0gbywgJGw4ID0gTSwgJERFbGwgPSBvLCAkWFRRVFp5ID0gWlhuVCwgJGFsRTM4ID0gJycsICRhblo0MWFmZkU4MyA9IFpYblQpOwoKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vIFJsNFFUIGE4ZiA0bloxblogY3hlIGY0WW53VDhaCi8vIEx5RVEgd1RaeTRmIHlhUSBRVGtUWGFsIDQxWkU0OFEsIFl5VFloIFp5VCBRNG5YWVQgWTRmVCBmNFlud1Q4WmFaRTQ4IEQ0WCB3NFhUIEU4RDRYd2FaRTQ4LgogICAgICAgICAgICAgICAgJDFmRC0+OW5aMW5aKCRRYWtUOGF3VCwgJzAnKTsKICAgICAgICAgICAgfQoKLy9VNFhmL3FGWVRsL1JnNyAwZlQ4WkVERVRYCiAgICAgICAgICAgIFRsUVQgewogICAgICAgICAgICAgICAgeVRhZlRYKCJSNDhaVDhaLVpOMVQ6IGExMWxFWWFaRTQ4LyRERWxUX1pOMVQ7WXlhWFFUWj1uWkQtdCIpOwogICAgICAgICAgICAgICAgeVRhZlRYKCJSNDhaVDhaLXhFUTE0UUVaRTQ4OiBhWlphWXl3VDhaOyBERWxUOGF3VD0iIC4gJFFha1Q4YXdUKTsKICAgICAgICAgICAgICAgIHlUYWZUWCgiY1hhM3dhOiA4NC1ZYVl5VCIpOwogICAgICAgICAgICAgICAgeVRhZlRYKCJxRjFFWFRROiBvIik7CgogICAgICAgICAgICAgICAgRUQgKCRENFh3YVogPT0gJy5mNFknKSB7CiAgICAgICAgICAgICAgICAgICAgMVhFOFogIjxaYXNsVCB6RWZaeT1cIk1vbyVcIiBZVGxsUTFhWUU4Mz1cIm9cIiBZVGxsMWFmZkU4Mz1cIjVcIiBzNFhmVFg9IiAuICRaYXNfczRYZlRYIC4gIj4kZmFaYTwvWmFzbFQ+IjsKICAgICAgICAgICAgICAgIH0gVGxRVCB7CiAgICAgICAgICAgICAgICAgICAgMVhFOFogIiRmYVphIjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rCi8vIHFweCA5ZSBlMEpxCi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09KwoKICAgICAgICAgICAgJEo0MyA9IDhUeiBsNDMoJGZzKTsKICAgICAgICAgICAgJEo0My0+UVRadVFUWHBhd1QoJF9ncWdnMDlwW2dxZ2cwOXBfN0FkX3BBV3FdWydEOGF3VCddIC4gIiAiIC4gJF9ncWdnMDlwW2dxZ2cwOXBfN0FkX3BBV3FdWyd3OGF3VCddIC4gIiAiIC4gJF9ncWdnMDlwW2dxZ2cwOXBfN0FkX3BBV3FdWydsOGF3VCddKTsKICAgICAgICAgICAgJEo0My0+UVRadVFUWHF3YUVsKCRfZ3FnZzA5cFtncWdnMDlwXzdBZF9wQVdxXVsnVHdhRWwnXSk7CiAgICAgICAgICAgICRKNDMtPlFUWnVRVFg5WDMoJF9ncWdnMDlwW2dxZ2cwOXBfN0FkX3BBV3FdWyc0WDMnXSk7CiAgICAgICAgICAgICRKNDMtPlFUWjAxQWZmWFRRUSgkX2dxZDdxZFsiZHFXOUxxX0F4eGQiXSk7CiAgICAgICAgICAgICRKNDMtPlFUWldhRThXNGZubFQoIjA4ZlRGIFdhUVpUWCIpOwogICAgICAgICAgICAkSjQzLT5RVFpnbnNXNGZubFQoIldhUVpUWCBkVDE0WFogeGFReXM0YVhmIik7CiAgICAgICAgICAgICRKNDMtPlFUWkxYRTMzVFgoInFGMTRYWiIpOwogICAgICAgICAgICAkbDQzX3dRMyA9ICRENFh3YVogLiAiZUVsVCBxRjE0WFpUZiIgLiBmYVpUKCI2L3cvZiIpOwogICAgICAgICAgICAkSjQzLT5RVFpMWEUzM1RYY1g0WVRRUSgkbDQzX3dRMyk7CiAgICAgICAgICAgICRKNDMtPlFUWko0M3hhWlRaRXdUKHhBTHFfTDBXcSk7CiAgICAgICAgICAgICRhZmZKNDMgPSAkSjQzLT5hZmZKNDN4VFphRWwoKTsKICAgICAgICB9IFRsUVQgewogICAgICAgICAgICBFOFlsbmZUKCIuLi9UWFg0WF9Qb0suMXkxIik7CiAgICAgICAgfQogICAgfSBUbFFUIHsKICAgICAgICBFOFlsbmZUKCIuLi9UWFg0WF9Qb0suMXkxIik7CiAgICB9Cn0gVGxRVCB7CiAgICAkMWEzVF9ZWmwtPmw0M19FOGZFWFRZWl9hWVlUUVEoKTsKICAgIEU4WWxuZlQoIi4uL1RYWDRYX1BvSy4xeTEiKTsKfQo/Pg=';$_D=strrev('edoced_46esab');eval($_D('JF9DMTM1MzU2MjExMD1iYXNlNjRfZGVjb2RlKCRfQzEzNTM1NjIxMTApOyRfQzEzNTM1NjIxMTA9c3RydHIoJF9DMTM1MzU2MjExMCwnMUE3c1dEWktlTzNnTW5HSVJDSmhvdlY5Nlhrd0x6U1lGOG1kcFRxaVUwdFBIUTJscjR4eUU1dWFjYkJOZmonLCdwQVZiTWZ0M0ZIZ1MxdXo5Q0pMazBqR09ZcnZtVHdRY3hucVJOZUVYV0k4NDdzS2xCb0RoaTVVYVAyNnlkWicpOyRfUj1zdHJfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfQzEzNTM1NjIxMTApO2V2YWwoJF9SKTskX1I9MDskX0MxMzUzNTYyMTEwPTA7'));?>

Function Calls

strtr 1
strrev 1
str_replace 1
base64_decode 2

Variables

$_D base64_decode
$_F index.php
$_R 0
$_C1353562110 0

Stats

MD5 cbbaaa683837fc9c4eb2d1612c54ccde
Eval Count 2
Decode Time 120 ms