Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php $_F=__FILE__;$_X='Pz48P3BocA0KZDF0NV9kNWYxM2x0X3Q0bTV6Mm41X3M1dCgnRTNyMnA1L0lzdDFuYj..
Decoded Output download
?><?php
date_default_timezone_set('Europe/Istanbul');
function manset_cron()
{
global $db;
global $conf;
foreach ($conf['manset_tur'] as $k => $v) {
$results = $db->fetch_all_array('SELECT id, baslik, spot, link, resim, sira, pencere, durum, haberID, makaleID FROM `manset` WHERE durum = 1 AND tur = ' . $k);
$data = array();
$i = 0;
while ($i < count($results)) {
$data[] = $results[$i];
$i++;
}
write_cache_file('../cron/degisencron_' . $k . '.php', 'degisen_cache[' . $k . ']', $data);
}
}
function kategori_cron()
{
global $db;
$fname = '../cron/katcron.php';
$kategoriler_db = $db->fetch_all_array('SELECT id, ustid, isim, permalink, tur, sira, durum FROM kategori WHERE durum = 1 ORDER BY id ASC');
if (file_exists($fname))
chmod($fname, 0777);
$fh = fopen($fname, "w+");
if ($fh) {
fputs($fh, '<?php ');
$i = 0;
while ($i < count($kategoriler_db)) {
fputs($fh, '$kategoriler_cache[' . $kategoriler_db[$i]['id'] . '] = array(');
foreach ($kategoriler_db[$i] as $k => $v)
fputs($fh, '"' . $k . '" => "' . $v . '", ');
fputs($fh, ');' . "
");
$i++;
}
fputs($fh, ' ?>');
fclose($fh);
}
if (file_exists($fname))
chmod($fname, 0644);
}
function write_cache_file($fname, $degisken, $data)
{
if (file_exists($fname))
chmod($fname, 0777);
$fh = fopen($fname, "w+");
if ($fh) {
fputs($fh, '<?php $' . $degisken . ' = array(');
foreach ($data as $k => $v) {
if (is_array($v)) {
fputs($fh, '"' . $k . '" => array( ');
foreach ($v as $v_k => $v_v)
fputs($fh, '"' . $v_k . '" => "' . $v_v . '", ');
fputs($fh, '),' . "
");
} else {
fputs($fh, '"' . $k . '" => "' . $v . '", ' . "
");
}
}
fputs($fh, '); ?>');
fclose($fh);
}
if (file_exists($fname))
chmod($fname, 0644);
}
function sortBykeyvalue($a, $b)
{
if ($a['sira'] == $b['sira'])
return 0;
return ($b['sira'] < $a['sira']) ? 1 : -1;
}
function set_memcache($key, $value, $secs)
{
$memcache_obj = new Memcache;
$memcache_obj->connect('localhost', 11211);
try {
$memcache_obj->delete($key);
} catch (Exception $e) {
}
$memcache_obj->set($key, $value, false, $secs);
}
function delete_memcache($key)
{
$memcache_obj = new Memcache;
$memcache_obj->connect('localhost', 11211);
try {
$memcache_obj->delete($key);
} catch (Exception $e) {
echo 'silinemedi';
}
}
function BuyukHarf($deger)
{
$deger = mb_convert_case(str_replace('i', 'İ', $deger), MB_CASE_UPPER, "UTF-8");
return $deger;
}
function SecureRequest($gelen)
{
$gelen = str_ireplace("
", '', $gelen);
$gelen = str_ireplace("
", '', $gelen);
$gelen = str_replace(array("
", "
", "
", " ", '\'), '', $gelen);
return mysql_real_escape_string(stripslashes($gelen));
}
function handleUpload($uploadInfo, $allowedExtensions, $uploadFolder, $maxFileSize = 0, $fileName = '')
{
if (empty($uploadInfo))
return 0;
if ($uploadInfo['size'] < 1)
return 0;
if ($fileName == '')
$fileName = md5(date('dmYHis'));
if ($maxFileSize == 0)
$maxFileSize = $uploadInfo['size'];
if ($uploadInfo['size'] > $maxFileSize)
return -1;
$ext = array_pop(explode('.', basename($uploadInfo['name'])));
if (!in_array($ext, $allowedExtensions))
return -2;
$uploadFile = $uploadFolder . $fileName . '.' . $ext;
if (move_uploaded_file($uploadInfo['tmp_name'], $uploadFile))
return $ext;
else
return -3;
}
function downloadFile($fullPath)
{
if (headers_sent())
die('Headers Sent');
if (ini_get('zlib.output_compression'))
ini_set('zlib.output_compression', 'Off');
if (file_exists($fullPath)) {
$fsize = filesize($fullPath);
$path_parts = pathinfo($fullPath);
$ext = strtolower($path_parts["extension"]);
switch ($ext) {
case "pdf":
$ctype = "application/pdf";
break;
case "exe":
$ctype = "application/octet-stream";
break;
case "zip":
$ctype = "application/zip";
break;
case "doc":
$ctype = "application/msword";
break;
case "xls":
$ctype = "application/vnd.ms-excel";
break;
case "ppt":
$ctype = "application/vnd.ms-powerpoint";
break;
case "gif":
$ctype = "image/gif";
break;
case "png":
$ctype = "image/png";
break;
case "jpeg":
case "jpg":
$ctype = "image/jpg";
break;
default:
$ctype = "application/force-download";
}
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private", false);
header("Content-Type: $ctype");
header("Content-Disposition: attachment; filename=\"" . basename($fullPath) . "\";");
header("Content-Transfer-Encoding: binary");
header("Content-Length: " . $fsize);
ob_clean();
flush();
readfile($fullPath);
} else {
header('Location:/404.php');
die();
exit();
}
}
function CurrentURL($except = array(), $addReq = null)
{
$pageURL = 'http://';
$queryString = '';
$reqUri = array_shift(explode('?', $_SERVER["REQUEST_URI"]));
$argv = explode('&', $_SERVER['QUERY_STRING']);
if (count($argv) > 0) {
foreach ($argv as $arg) {
if (!empty($arg)) {
list($key, $value) = explode('=', $arg);
if (!in_array($key, $except)) {
if (!empty($queryString))
$queryString .= '&';
$queryString .= $key . '=' . $value;
}
}
}
}
if (!empty($addReq)) {
if (!empty($queryString))
$queryString .= '&' . $addReq;
else
$queryString = $addReq;
}
if (!empty($queryString))
$queryString = '?' . $queryString;
$pageURL .= $_SERVER["SERVER_NAME"] . $reqUri . $queryString;
return $pageURL;
}
function permalink($value)
{
$tr_words = array(' ', 'ç', 'ğ', 'ı', 'ö', 'ş', 'ü', 'A', 'B', 'C', 'Ç', 'D', 'E', 'F', 'G', 'Ğ', 'H', 'I', 'İ', 'J', 'K', 'L', 'M', 'N', 'O', 'Ö', 'P', 'R', 'S', 'Ş', 'T', 'U', 'Ü', 'V', 'Y', 'Z', 'W', 'Q', 'X', '"', '?', '&', "'", '.', '', ':', '!', ',', '', '', '%', ';', '#');
$utf_words = array('-', 'c', 'g', 'i', 'o', 's', 'u', 'a', 'b', 'c', 'c', 'd', 'e', 'f', 'g', 'g', 'h', 'i', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'o', 'p', 'r', 's', 's', 't', 'u', 'u', 'v', 'y', 'z', 'w', 'q', 'x', '', '', '', '', '', '', '', '', '', '', '', '', '', '');
$value = str_replace($tr_words, $utf_words, $value);
$value = str_replace('--', '-', $value);
$value = str_replace('--', '-', $value);
return $value;
}
function MySqlDate2TRDate($dateTime, $returnFormat = 'd.m.Y H:i:s', $spelator = '-')
{
$date = NULL;
$time = NULL;
$day = NULL;
$month = NULL;
$year = NULL;
$hour = NULL;
$minute = NULL;
$second = NULL;
$dislike = array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday');
$like = array('Ocak', 'Şubat', 'Mart', 'Nisan', 'Mayıs', 'Haziran', 'Temmuz', 'Ağustos', 'Eylül', 'Ekim', 'Kasım', 'Aralık', 'Pazartesi', 'Salı', 'Çarşamba', 'Perşembe', 'Cuma', 'Cumartesi', 'Pazar');
if (preg_match('/^\d{4}-\d{2}-\d{2} [0-2][0-9]:[0-5][0-9]:[0-5][0-9]$/', $dateTime)) {
list($date, $time) = explode(' ', $dateTime);
list($year, $month, $day) = explode($spelator, $date);
list($hour, $minute, $second) = explode(':', $time);
} else if (preg_match('/^\d{4}-\d{2}-\d{2}$/', $dateTime)) {
list($day, $month, $year) = explode($spelator, $dateTime);
} else {
return false;
}
return str_replace($dislike, $like, date($returnFormat, mktime($hour, $minute, $second, $month, $day, $year)));
}
function siradaki_id($tablo)
{
$sql = mysql_query("SHOW TABLE STATUS LIKE '" . $tablo . "'");
$cikti = mysql_fetch_assoc($sql);
return $cikti['Auto_increment'];
}
function ozet($word, $start, $length, $wordSplit = true)
{
if (strlen($word) <= $length)
return $word;
$newWord = substr($word, $start, $length);
if ($word == false)
return $newWord;
$checker = substr($word, $length, $length + 1);;
if ($checker == ' ')
return $newWord;
$wordArr = explode(' ', $newWord);
$newWord = $wordArr[0];
for ($k = 1; $k < count($wordArr) - 1; $k++)
$newWord .= ' ' . $wordArr[$k];
return $newWord;
}
function sayfalama($tablo, $where, $adet, $list_adet, $aktif_sayfa, $class, $sayfa)
{
$birinci_tablo = explode(',', $tablo);
$toplamsql = mysql_query("SELECT COUNT(" . $birinci_tablo[0] . ".id) as toplam
FROM " . $tablo . "
WHERE " . $where . "
");
$toplamveri = mysql_fetch_array($toplamsql);
$toplam = $toplamveri['toplam'];
$toplam_sayfa_sayisi = $toplam / $adet;
$toplam_sayfa_sayisi = ceil($toplam_sayfa_sayisi);
if ($aktif_sayfa < 1) {
$aktif_sayfa = 1;
}
if ($aktif_sayfa > $toplam_sayfa_sayisi) {
$aktif_sayfa = 1;
}
$list_baslangic = ($aktif_sayfa * $adet) - $adet;
$x = $list_adet / 2;
$x = ceil($x);
$onceki = $aktif_sayfa - 1;
$sonraki = $aktif_sayfa + 1;
if ($onceki < 1) {
$onceki = '1';
}
if ($sonraki > $toplam_sayfa_sayisi) {
$sonraki = $toplam_sayfa_sayisi;
}
echo '<div class="' . $class . '">';
echo '<ul>';
echo '<li class="first"><a href="' . $sayfa . '1.html"><span>İlk</span></a></li>';
echo '<li class="previous"><a href="' . $sayfa . '' . $onceki . '.html"><span>««</span></a></li>';
for ($i = $aktif_sayfa - $x; $i <= $aktif_sayfa + $x; $i++) {
if ($i == $aktif_sayfa) {
$current = "class=\"current\"";
} else {
$current = "";
}
if ($i > $toplam) continue;
if ($i < 1) continue;
if ($i > $toplam_sayfa_sayisi) continue;
echo '<li ' . $current . '><a href="' . $sayfa . '' . $i . '.html"><span>' . $i . '</span></a></li>';
}
echo '<li class="next"><a href="' . $sayfa . '' . $sonraki . '.html"><span>»»</span></a></li>';
echo '<li class="first"><a href="' . $sayfa . '' . $toplam_sayfa_sayisi . '.html"><span>Son</span></a></li>';
echo '</ul>';
echo '</div>';
}
function keywords($data)
{
$data = str_replace(" ", ", ", $data);
return $data;
}
function yasakli_kelimeler($value)
{
$kufur_list = array('XXXXXXXXXX,XXXXXXXXXX,XXXXXXXXXX,XXXXXXXXXX');
$value = str_replace($kufur_list, '****', $value);
return $value;
}
date_default_timezone_set('Europe/Istanbul');
function reklam($p, $s, $w, $h, $c)
{
$sql_reklam = "SELECT reklam.id, reklam.link, reklam.resim, reklam.flash, reklam.kod
FROM reklam WHERE reklam.durum = '1' AND reklam.pozisyon = '" . $p . "' AND reklam.tarih_baslangic < '" . date('Y-m-d H:i:s') . "' AND reklam.tarih_bitis > '" . date('Y-m-d H:i:s') . "'
ORDER BY rand()
";
$sql_reklam = mysql_query($sql_reklam);
$reklamveri = mysql_fetch_array($sql_reklam);
if (!empty($reklamveri['resim'])) {
echo '<div class="' . $c . '">
<a href="' . $reklamveri['link'] . '" target="_blank">
<img src="' . $s . '/' . $reklamveri['resim'] . '" alt="" class="img-responsive" />
</a>
</div>';
} elseif (!empty($reklamveri['flash'])) {
echo '
<div class="' . $c . '">
<object data="' . $s . '' . $reklamveri['flash'] . '" type="application/x-shockwave-flash" width="' . $w . '" height="' . $h . '">
<param name="movie" value="' . $s . '' . $reklamveri['flash'] . '" />
</object>
</div>
';
} elseif (!empty($reklamveri['kod'])) {
echo '<div class="' . $c . '">' . $reklamveri['kod'] . '</div>';
} else {
}
}
function reklam_kontrol($p)
{
$sonuc = FALSE;
$sql_reklam = "SELECT COUNT(reklam.id) as toplam
FROM reklam WHERE reklam.durum = '1' AND reklam.pozisyon = '" . $p . "' AND reklam.tarih_baslangic < '" . date('Y-m-d H:i:s') . "' AND reklam.tarih_bitis > '" . date('Y-m-d H:i:s') . "'
";
$sql_reklam = mysql_query($sql_reklam);
$reklamveri = mysql_fetch_array($sql_reklam);
if ($reklamveri['toplam'] > 0) {
$sonuc = TRUE;
}
return $sonuc;
}
function state($deger)
{
if (substr($deger, 0, 1) == "-") {
$cls = "azalan";
} elseif (substr($deger, 0, 4) == "0,00") {
$cls = "ayni";
} else {
$cls = "artan";
}
return $cls;
}
function tr_ay($deger)
{
$aylar = array("Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık");
return $aylar[$deger - 1];
}
function sifreleme($uzunluk)
{
$karakterler = "abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$karakter_sayi = strlen($karakterler);
for ($ras = 0; $ras < $uzunluk; $ras++) {
$rakam_ver = rand(0, $karakter_sayi - 1);
$sifre_ver .= $karakterler[$rakam_ver];
}
return $sifre_ver;
}
function yayin_kontrol($deger)
{
$result = false;
if (substr($deger, 0, 1) == '#') $result = true;
return $result;
}
function NewsUpload($id, $up, $t = '')
{
$thumb = 'thumb_';
}
function HaberTablo($id)
{
$haber_tablo = "haber";
}
function vakitHesaplama($f)
{
return strtotime(date('d.m.Y') . ' ' . $f . ':00');
}
function get_client_ip()
{
$ipaddress = '';
if (getenv('HTTP_CLIENT_IP'))
$ipaddress = getenv('HTTP_CLIENT_IP');
else if (getenv('HTTP_X_FORWARDED_FOR'))
$ipaddress = getenv('HTTP_X_FORWARDED_FOR');
else if (getenv('HTTP_X_FORWARDED'))
$ipaddress = getenv('HTTP_X_FORWARDED');
else if (getenv('HTTP_FORWARDED_FOR'))
$ipaddress = getenv('HTTP_FORWARDED_FOR');
else if (getenv('HTTP_FORWARDED'))
$ipaddress = getenv('HTTP_FORWARDED');
else if (getenv('REMOTE_ADDR'))
$ipaddress = getenv('REMOTE_ADDR');
else
$ipaddress = 'UNKNOWN';
return $ipaddress;
}
function GetFileContent($url, $filename, $xml = FALSE)
{
$file_dir = 'cache/';
if (file_exists($url)) {
if (date('d m Y H') != date("d m Y H", filemtime($file_dir . $filename))) {
if ($xml == TRUE) {
$content = file_get_contents($url);
} else {
$content = file_get_contents($url);
}
if ($content) {
$file = fopen($file_dir . $filename, "w+");
fwrite($file, $content);
fclose($file);
}
return $content;
} else {
if ($xml == TRUE) {
$content = simplexml_load_file($file_dir . $filename);
} else {
$content = file_get_contents($file_dir . $filename);
}
return $content;
}
}
if (!file_exists($file_dir . $filename)) {
if ($xml == TRUE) {
$content = file_get_contents($url);
} else {
$content = file_get_contents($url);
}
$file = fopen($file_dir . $filename, "w+");
fwrite($file, $content);
fclose($file);
return $content;
} else {
if ($xml == TRUE) {
$content = simplexml_load_file($file_dir . $filename);
} else {
$content = file_get_contents($file_dir . $filename);
}
return $content;
}
}
Did this file decode correctly?
Original Code
<?php $_F=__FILE__;$_X='Pz48P3BocA0KZDF0NV9kNWYxM2x0X3Q0bTV6Mm41X3M1dCgnRTNyMnA1L0lzdDFuYjNsJyk7DQpmM25jdDQybiBtMW5zNXRfY3IybigpDQp7DQoJZ2wyYjFsICRkYjsNCglnbDJiMWwgJGMybmY7DQoJZjJyNTFjaCAoJGMybmZbJ20xbnM1dF90M3InXSAxcyAkayA9PiAkdikgew0KCQkkcjVzM2x0cyA9ICRkYi0+ZjV0Y2hfMWxsXzFycjF5KCdTRUxFQ1QgNGQsIGIxc2w0aywgc3AydCwgbDRuaywgcjVzNG0sIHM0cjEsIHA1bmM1cjUsIGQzcjNtLCBoMWI1cklELCBtMWsxbDVJRCBGUk9NIGBtMW5zNXRgIFdIRVJFIGQzcjNtID0gNiBBTkQgdDNyID0gJyAuICRrKTsNCgkJJGQxdDEgPSAxcnIxeSgpOw0KCQkkNCA9IDA7DQoJCXdoNGw1ICgkNCA8IGMyM250KCRyNXMzbHRzKSkgew0KCQkJJGQxdDFbXSA9ICRyNXMzbHRzWyQ0XTsNCgkJCSQ0Kys7DQoJCX0NCgkJd3I0dDVfYzFjaDVfZjRsNSgnLi4vY3Iybi9kNWc0czVuY3Iybl8nIC4gJGsgLiAnLnBocCcsICdkNWc0czVuX2MxY2g1WycgLiAkayAuICddJywgJGQxdDEpOw0KCX0NCn0NCmYzbmN0NDJuIGsxdDVnMnI0X2NyMm4oKQ0Kew0KCWdsMmIxbCAkZGI7DQoJJGZuMW01ID0gJy4uL2NyMm4vazF0Y3Iybi5waHAnOw0KCSRrMXQ1ZzJyNGw1cl9kYiA9ICRkYi0+ZjV0Y2hfMWxsXzFycjF5KCdTRUxFQ1QgNGQsIDNzdDRkLCA0czRtLCBwNXJtMWw0bmssIHQzciwgczRyMSwgZDNyM20gRlJPTSBrMXQ1ZzJyNCBXSEVSRSBkM3IzbSA9IDYgT1JERVIgQlkgNGQgQVNDJyk7DQoJNGYgKGY0bDVfNXg0c3RzKCRmbjFtNSkpDQoJCWNobTJkKCRmbjFtNSwgMDc3Nyk7DQoJJGZoID0gZjJwNW4oJGZuMW01LCAidysiKTsNCgk0ZiAoJGZoKSB7DQoJCWZwM3RzKCRmaCwgJzw/cGhwICcpOw0KCQkkNCA9ICAwOw0KCQl3aDRsNSAoJDQgPCBjMjNudCgkazF0NWcycjRsNXJfZGIpKSB7DQoJCQlmcDN0cygkZmgsICckazF0NWcycjRsNXJfYzFjaDVbJyAuICRrMXQ1ZzJyNGw1cl9kYlskNF1bJzRkJ10gLiAnXSA9IDFycjF5KCcpOw0KCQkJZjJyNTFjaCAoJGsxdDVnMnI0bDVyX2RiWyQ0XSAxcyAkayA9PiAkdikNCgkJCQlmcDN0cygkZmgsICciJyAuICRrIC4gJyIgPT4gIicgLiAkdiAuICciLCAnKTsNCgkJCWZwM3RzKCRmaCwgJyk7JyAuICJcclxuIik7DQoJCQkkNCsrOw0KCQl9DQoJCWZwM3RzKCRmaCwgJyA/PicpOw0KCQlmY2wyczUoJGZoKTsNCgl9DQoJNGYgKGY0bDVfNXg0c3RzKCRmbjFtNSkpDQoJCWNobTJkKCRmbjFtNSwgMGV1dSk7DQp9DQpmM25jdDQybiB3cjR0NV9jMWNoNV9mNGw1KCRmbjFtNSwgJGQ1ZzRzazVuLCAkZDF0MSkNCnsNCgk0ZiAoZjRsNV81eDRzdHMoJGZuMW01KSkNCgkJY2htMmQoJGZuMW01LCAwNzc3KTsNCgkkZmggPSBmMnA1bigkZm4xbTUsICJ3KyIpOw0KCTRmICgkZmgpIHsNCgkJZnAzdHMoJGZoLCAnPD9waHAgJCcgLiAkZDVnNHNrNW4gLiAnID0gMXJyMXkoJyk7DQoJCWYycjUxY2ggKCRkMXQxIDFzICRrID0+ICR2KSB7DQoJCQk0ZiAoNHNfMXJyMXkoJHYpKSB7DQoJCQkJZnAzdHMoJGZoLCAnIicgLiAkayAuICciID0+IDFycjF5KCAnKTsNCgkJCQlmMnI1MWNoICgkdiAxcyAkdl9rID0+ICR2X3YpDQoJCQkJCWZwM3RzKCRmaCwgJyInIC4gJHZfayAuICciID0+ICInIC4gJHZfdiAuICciLCAnKTsNCgkJCQlmcDN0cygkZmgsICcpLCcgLiAiXHJcbiIpOw0KCQkJfSA1bHM1IHsNCgkJCQlmcDN0cygkZmgsICciJyAuICRrIC4gJyIgPT4gIicgLiAkdiAuICciLCAnIC4gIlxyXG4iKTsNCgkJCX0NCgkJfQ0KCQlmcDN0cygkZmgsICcpOyA/PicpOw0KCQlmY2wyczUoJGZoKTsNCgl9DQoJNGYgKGY0bDVfNXg0c3RzKCRmbjFtNSkpDQoJCWNobTJkKCRmbjFtNSwgMGV1dSk7DQp9DQpmM25jdDQybiBzMnJ0QnlrNXl2MWwzNSgkMSwgJGIpDQp7DQoJNGYgKCQxWydzNHIxJ10gPT0gJGJbJ3M0cjEnXSkNCgkJcjV0M3JuIDA7DQoJcjV0M3JuICgkYlsnczRyMSddIDwgJDFbJ3M0cjEnXSkgPyA2IDogLTY7DQp9DQpmM25jdDQybiBzNXRfbTVtYzFjaDUoJGs1eSwgJHYxbDM1LCAkczVjcykNCnsNCgkkbTVtYzFjaDVfMmJqID0gbjV3IE01bWMxY2g1Ow0KCSRtNW1jMWNoNV8yYmotPmMybm41Y3QoJ2wyYzFsaDJzdCcsIDY2YTY2KTsNCgl0cnkgew0KCQkkbTVtYzFjaDVfMmJqLT5kNWw1dDUoJGs1eSk7DQoJfSBjMXRjaCAoRXhjNXB0NDJuICQ1KSB7DQoJfQ0KCSRtNW1jMWNoNV8yYmotPnM1dCgkazV5LCAkdjFsMzUsIGYxbHM1LCAkczVjcyk7DQp9DQpmM25jdDQybiBkNWw1dDVfbTVtYzFjaDUoJGs1eSkNCnsNCgkkbTVtYzFjaDVfMmJqID0gbjV3IE01bWMxY2g1Ow0KCSRtNW1jMWNoNV8yYmotPmMybm41Y3QoJ2wyYzFsaDJzdCcsIDY2YTY2KTsNCgl0cnkgew0KCQkkbTVtYzFjaDVfMmJqLT5kNWw1dDUoJGs1eSk7DQoJfSBjMXRjaCAoRXhjNXB0NDJuICQ1KSB7DQoJCTVjaDIgJ3M0bDRuNW01ZDQnOw0KCX0NCn0NCmYzbmN0NDJuIEIzeTNrSDFyZigkZDVnNXIpDQp7DQoJJGQ1ZzVyID0gbWJfYzJudjVydF9jMXM1KHN0cl9yNXBsMWM1KCc0JywgJyYjbzB1OycsICRkNWc1ciksIE1CX0NBU0VfVVBQRVIsICJVVEYtOCIpOw0KCXI1dDNybiAkZDVnNXI7DQp9DQpmM25jdDQybiBTNWMzcjVSNXEzNXN0KCRnNWw1bikNCnsNCgkkZzVsNW4gPSBzdHJfNHI1cGwxYzUoIlxuIiwgJycsICRnNWw1bik7DQoJJGc1bDVuID0gc3RyXzRyNXBsMWM1KCJcciIsICcnLCAkZzVsNW4pOw0KCSRnNWw1biA9IHN0cl9yNXBsMWM1KDFycjF5KCJcclxuIiwgIlxyIiwgIlxuIiwgIlx0IiwgJ1xcJyksICcnLCAkZzVsNW4pOw0KCXI1dDNybiBteXNxbF9yNTFsXzVzYzFwNV9zdHI0bmcoc3RyNHBzbDFzaDVzKCRnNWw1bikpOw0KfQ0KZjNuY3Q0Mm4gaDFuZGw1VXBsMjFkKCQzcGwyMWRJbmYyLCAkMWxsMnc1ZEV4dDVuczQybnMsICQzcGwyMWRGMmxkNXIsICRtMXhGNGw1UzR6NSA9IDAsICRmNGw1TjFtNSA9ICcnKQ0Kew0KCTRmICg1bXB0eSgkM3BsMjFkSW5mMikpDQoJCXI1dDNybiAwOw0KCTRmICgkM3BsMjFkSW5mMlsnczR6NSddIDwgNikNCgkJcjV0M3JuIDA7DQoJNGYgKCRmNGw1TjFtNSA9PSAnJykNCgkJJGY0bDVOMW01ID0gbWRpKGQxdDUoJ2RtWUg0cycpKTsNCgk0ZiAoJG0xeEY0bDVTNHo1ID09IDApDQoJCSRtMXhGNGw1UzR6NSA9ICQzcGwyMWRJbmYyWydzNHo1J107DQoJNGYgKCQzcGwyMWRJbmYyWydzNHo1J10gPiAkbTF4RjRsNVM0ejUpDQoJCXI1dDNybiAtNjsNCgkkNXh0ID0gMXJyMXlfcDJwKDV4cGwyZDUoJy4nLCBiMXM1bjFtNSgkM3BsMjFkSW5mMlsnbjFtNSddKSkpOw0KCTRmICghNG5fMXJyMXkoJDV4dCwgJDFsbDJ3NWRFeHQ1bnM0Mm5zKSkNCgkJcjV0M3JuIC1hOw0KCSQzcGwyMWRGNGw1ID0gJDNwbDIxZEYybGQ1ciAuICRmNGw1TjFtNSAuICcuJyAuICQ1eHQ7DQoJNGYgKG0ydjVfM3BsMjFkNWRfZjRsNSgkM3BsMjFkSW5mMlsndG1wX24xbTUnXSwgJDNwbDIxZEY0bDUpKQ0KCQlyNXQzcm4gJDV4dDsNCgk1bHM1DQoJCXI1dDNybiAtbzsNCn0NCmYzbmN0NDJuIGQyd25sMjFkRjRsNSgkZjNsbFAxdGgpDQp7DQoJNGYgKGg1MWQ1cnNfczVudCgpKQ0KCQlkNDUoJ0g1MWQ1cnMgUzVudCcpOw0KCTRmICg0bjRfZzV0KCd6bDRiLjIzdHAzdF9jMm1wcjVzczQybicpKQ0KCQk0bjRfczV0KCd6bDRiLjIzdHAzdF9jMm1wcjVzczQybicsICdPZmYnKTsNCgk0ZiAoZjRsNV81eDRzdHMoJGYzbGxQMXRoKSkgew0KCQkkZnM0ejUgPSBmNGw1czR6NSgkZjNsbFAxdGgpOw0KCQkkcDF0aF9wMXJ0cyA9IHAxdGg0bmYyKCRmM2xsUDF0aCk7DQoJCSQ1eHQgPSBzdHJ0MmwydzVyKCRwMXRoX3AxcnRzWyI1eHQ1bnM0Mm4iXSk7DQoJCXN3NHRjaCAoJDV4dCkgew0KCQkJYzFzNSAicGRmIjoNCgkJCQkkY3R5cDUgPSAiMXBwbDRjMXQ0Mm4vcGRmIjsNCgkJCQlicjUxazsNCgkJCWMxczUgIjV4NSI6DQoJCQkJJGN0eXA1ID0gIjFwcGw0YzF0NDJuLzJjdDV0LXN0cjUxbSI7DQoJCQkJYnI1MWs7DQoJCQljMXM1ICJ6NHAiOg0KCQkJCSRjdHlwNSA9ICIxcHBsNGMxdDQybi96NHAiOw0KCQkJCWJyNTFrOw0KCQkJYzFzNSAiZDJjIjoNCgkJCQkkY3R5cDUgPSAiMXBwbDRjMXQ0Mm4vbXN3MnJkIjsNCgkJCQlicjUxazsNCgkJCWMxczUgInhscyI6DQoJCQkJJGN0eXA1ID0gIjFwcGw0YzF0NDJuL3ZuZC5tcy01eGM1bCI7DQoJCQkJYnI1MWs7DQoJCQljMXM1ICJwcHQiOg0KCQkJCSRjdHlwNSA9ICIxcHBsNGMxdDQybi92bmQubXMtcDJ3NXJwMjRudCI7DQoJCQkJYnI1MWs7DQoJCQljMXM1ICJnNGYiOg0KCQkJCSRjdHlwNSA9ICI0bTFnNS9nNGYiOw0KCQkJCWJyNTFrOw0KCQkJYzFzNSAicG5nIjoNCgkJCQkkY3R5cDUgPSAiNG0xZzUvcG5nIjsNCgkJCQlicjUxazsNCgkJCWMxczUgImpwNWciOg0KCQkJYzFzNSAianBnIjoNCgkJCQkkY3R5cDUgPSAiNG0xZzUvanBnIjsNCgkJCQlicjUxazsNCgkJCWQ1ZjEzbHQ6DQoJCQkJJGN0eXA1ID0gIjFwcGw0YzF0NDJuL2YycmM1LWQyd25sMjFkIjsNCgkJfQ0KCQloNTFkNXIoIlByMWdtMTogcDNibDRjIik7DQoJCWg1MWQ1cigiRXhwNHI1czogMCIpOw0KCQloNTFkNXIoIkMxY2g1LUMybnRyMmw6IG0zc3QtcjV2MWw0ZDF0NSwgcDJzdC1jaDVjaz0wLCBwcjUtY2g1Y2s9MCIpOw0KCQloNTFkNXIoIkMxY2g1LUMybnRyMmw6IHByNHYxdDUiLCBmMWxzNSk7DQoJCWg1MWQ1cigiQzJudDVudC1UeXA1OiAkY3R5cDUiKTsNCgkJaDUxZDVyKCJDMm50NW50LUQ0c3AyczR0NDJuOiAxdHQxY2htNW50OyBmNGw1bjFtNT1cIiIgLiBiMXM1bjFtNSgkZjNsbFAxdGgpIC4gIlwiOyIpOw0KCQloNTFkNXIoIkMybnQ1bnQtVHIxbnNmNXItRW5jMmQ0bmc6IGI0bjFyeSIpOw0KCQloNTFkNXIoIkMybnQ1bnQtTDVuZ3RoOiAiIC4gJGZzNHo1KTsNCgkJMmJfY2w1MW4oKTsNCgkJZmwzc2goKTsNCgkJcjUxZGY0bDUoJGYzbGxQMXRoKTsNCgl9IDVsczUgew0KCQloNTFkNXIoJ0wyYzF0NDJuOi91MHUucGhwJyk7DQoJCWQ0NSgpOw0KCQk1eDR0KCk7DQoJfQ0KfQ0KZjNuY3Q0Mm4gQzNycjVudFVSTCgkNXhjNXB0ID0gMXJyMXkoKSwgJDFkZFI1cSA9IG4zbGwpDQp7DQoJJHAxZzVVUkwgPSAnaHR0cDovLyc7DQoJJHEzNXJ5U3RyNG5nID0gJyc7DQoJJHI1cVVyNCA9IDFycjF5X3NoNGZ0KDV4cGwyZDUoJz8nLCAkX1NFUlZFUlsiUkVRVUVTVF9VUkkiXSkpOw0KCSQxcmd2ID0gNXhwbDJkNSgnJicsICRfU0VSVkVSWydRVUVSWV9TVFJJTkcnXSk7DQoJNGYgKGMyM250KCQxcmd2KSA+IDApIHsNCgkJZjJyNTFjaCAoJDFyZ3YgMXMgJDFyZykgew0KCQkJNGYgKCE1bXB0eSgkMXJnKSkgew0KCQkJCWw0c3QoJGs1eSwgJHYxbDM1KSA9IDV4cGwyZDUoJz0nLCAkMXJnKTsNCgkJCQk0ZiAoITRuXzFycjF5KCRrNXksICQ1eGM1cHQpKSB7DQoJCQkJCTRmICghNW1wdHkoJHEzNXJ5U3RyNG5nKSkNCgkJCQkJCSRxMzVyeVN0cjRuZyAuPSAnJic7DQoJCQkJCSRxMzVyeVN0cjRuZyAuPSAkazV5IC4gJz0nIC4gJHYxbDM1Ow0KCQkJCX0NCgkJCX0NCgkJfQ0KCX0NCgk0ZiAoITVtcHR5KCQxZGRSNXEpKSB7DQoJCTRmICghNW1wdHkoJHEzNXJ5U3RyNG5nKSkNCgkJCSRxMzVyeVN0cjRuZyAuPSAnJicgLiAkMWRkUjVxOw0KCQk1bHM1DQoJCQkkcTM1cnlTdHI0bmcgPSAkMWRkUjVxOw0KCX0NCgk0ZiAoITVtcHR5KCRxMzVyeVN0cjRuZykpDQoJCSRxMzVyeVN0cjRuZyA9ICc/JyAuICRxMzVyeVN0cjRuZzsNCgkkcDFnNVVSTCAuPSAkX1NFUlZFUlsiU0VSVkVSX05BTUUiXSAuICRyNXFVcjQgLiAkcTM1cnlTdHI0bmc7DQoJcjV0M3JuICRwMWc1VVJMOw0KfQ0KZjNuY3Q0Mm4gcDVybTFsNG5rKCR2MWwzNSkNCnsNCgkkdHJfdzJyZHMgICA9IDFycjF5KCcgJywgJyYjYW82OycsICcmI2E4NzsnLCAnJiNvMGk7JywgJyYjYXVlOycsICcmI29pNjsnLCAnJiNhaWE7JywgJ0EnLCAnQicsICdDJywgJyYjNjk5OycsICdEJywgJ0UnLCAnRicsICdHJywgJyYjYThlOycsICdIJywgJ0knLCAnJiNvMHU7JywgJ0onLCAnSycsICdMJywgJ00nLCAnTicsICdPJywgJyYjYTZ1OycsICdQJywgJ1InLCAnUycsICcmI29pMDsnLCAnVCcsICdVJywgJyYjYWEwOycsICdWJywgJ1knLCAnWicsICdXJywgJ1EnLCAnWCcsICciJywgJz8nLCAnJicsICInIiwgJy4nLCAnkicsICc6JywgJyEnLCAnLCcsICeUJywgJ5MnLCAnJScsICc7JywgJyMnKTsNCgkkM3RmX3cycmRzICA9IDFycjF5KCctJywgJ2MnLCAnZycsICc0JywgJzInLCAncycsICczJywgJzEnLCAnYicsICdjJywgJ2MnLCAnZCcsICc1JywgJ2YnLCAnZycsICdnJywgJ2gnLCAnNCcsICc0JywgJ2onLCAnaycsICdsJywgJ20nLCAnbicsICcyJywgJzInLCAncCcsICdyJywgJ3MnLCAncycsICd0JywgJzMnLCAnMycsICd2JywgJ3knLCAneicsICd3JywgJ3EnLCAneCcsICcnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJyk7DQoJJHYxbDM1ID0gc3RyX3I1cGwxYzUoJHRyX3cycmRzLCAkM3RmX3cycmRzLCAkdjFsMzUpOw0KCSR2MWwzNSA9IHN0cl9yNXBsMWM1KCctLScsICctJywgJHYxbDM1KTsNCgkkdjFsMzUgPSBzdHJfcjVwbDFjNSgnLS0nLCAnLScsICR2MWwzNSk7DQoJcjV0M3JuICR2MWwzNTsNCn0NCmYzbmN0NDJuIE15U3FsRDF0NWFUUkQxdDUoJGQxdDVUNG01LCAkcjV0M3JuRjJybTF0ID0gJ2QubS5ZIEg6NDpzJywgJHNwNWwxdDJyID0gJy0nKQ0Kew0KCSRkMXQ1CT0gTlVMTDsNCgkkdDRtNQk9IE5VTEw7DQoJJGQxeQk9IE5VTEw7DQoJJG0ybnRoCT0gTlVMTDsNCgkkeTUxcgk9IE5VTEw7DQoJJGgyM3IJPSBOVUxMOw0KCSRtNG4zdDUgPSBOVUxMOw0KCSRzNWMybmQJPSBOVUxMOw0KIAkkZDRzbDRrNSA9IDFycjF5KCdKMW4zMXJ5JywgJ0Y1YnIzMXJ5JywgJ00xcmNoJywgJ0FwcjRsJywgJ00xeScsICdKM241JywgJ0ozbHknLCAnQTNnM3N0JywgJ1M1cHQ1bWI1cicsICdPY3QyYjVyJywgJ04ydjVtYjVyJywgJ0Q1YzVtYjVyJywgJ00ybmQxeScsICdUMzVzZDF5JywgJ1c1ZG41c2QxeScsICdUaDNyc2QxeScsICdGcjRkMXknLCAnUzF0M3JkMXknLCAnUzNuZDF5Jyk7DQoJJGw0azUgPSAxcnIxeSgnT2MxaycsICcmI29pMDszYjF0JywgJ00xcnQnLCAnTjRzMW4nLCAnTTF5JiNvMGk7cycsICdIMXo0cjFuJywgJ1Q1bW0zeicsICdBJiNhODc7M3N0MnMnLCAnRXlsJiNhaWE7bCcsICdFazRtJywgJ0sxcyYjbzBpO20nLCAnQXIxbCYjbzBpO2snLCAnUDF6MXJ0NXM0JywgJ1MxbCYjbzBpOycsICcmIzY5OTsxciYjb2k2OzFtYjEnLCAnUDVyJiNvaTY7NW1iNScsICdDM20xJywgJ0MzbTFydDVzNCcsICdQMXoxcicpOw0KCTRmIChwcjVnX20xdGNoKCcvXlxke3V9LVxke2F9LVxke2F9IFswLWFdWzAtOV06WzAtaV1bMC05XTpbMC1pXVswLTldJC8nLCAkZDF0NVQ0bTUpKSB7DQoJCWw0c3QoJGQxdDUsICR0NG01KSAJCQk9IDV4cGwyZDUoJyAnLCAkZDF0NVQ0bTUpOw0KCQlsNHN0KCR5NTFyLCAkbTJudGgsICRkMXkpCQk9IDV4cGwyZDUoJHNwNWwxdDJyLCAkZDF0NSk7DQoJCWw0c3QoJGgyM3IsICRtNG4zdDUsICRzNWMybmQpCT0gNXhwbDJkNSgnOicsICR0NG01KTsNCgl9IDVsczUgNGYgKHByNWdfbTF0Y2goJy9eXGR7dX0tXGR7YX0tXGR7YX0kLycsICRkMXQ1VDRtNSkpIHsNCgkJbDRzdCgkZDF5LCAkbTJudGgsICR5NTFyKQkJPSA1eHBsMmQ1KCRzcDVsMXQyciwgJGQxdDVUNG01KTsNCgl9IDVsczUgew0KCQlyNXQzcm4gZjFsczU7DQoJfQ0KCXI1dDNybiBzdHJfcjVwbDFjNSgkZDRzbDRrNSwgJGw0azUsIGQxdDUoJHI1dDNybkYycm0xdCwgbWt0NG01KCRoMjNyLCAkbTRuM3Q1LCAkczVjMm5kLCAkbTJudGgsICRkMXksICR5NTFyKSkpOw0KfQ0KZjNuY3Q0Mm4gczRyMWQxazRfNGQoJHQxYmwyKQ0Kew0KCSRzcWwgPSBteXNxbF9xMzVyeSgiU0hPVyBUQUJMRSBTVEFUVVMgTElLRSAnIiAuICR0MWJsMiAuICInIik7DQoJJGM0a3Q0ID0gbXlzcWxfZjV0Y2hfMXNzMmMoJHNxbCk7DQoJcjV0M3JuICRjNGt0NFsnQTN0Ml80bmNyNW01bnQnXTsNCn0NCmYzbmN0NDJuIDJ6NXQoJHcycmQsICRzdDFydCwgJGw1bmd0aCwgJHcycmRTcGw0dCA9IHRyMzUpDQp7DQoJNGYgKHN0cmw1bigkdzJyZCkgPD0gJGw1bmd0aCkNCgkJcjV0M3JuICR3MnJkOw0KCSRuNXdXMnJkID0gczNic3RyKCR3MnJkLCAkc3QxcnQsICRsNW5ndGgpOw0KCTRmICgkdzJyZCA9PSBmMWxzNSkNCgkJcjV0M3JuICRuNXdXMnJkOw0KCSRjaDVjazVyID0gczNic3RyKCR3MnJkLCAkbDVuZ3RoLCAkbDVuZ3RoICsgNik7Ow0KCTRmICgkY2g1Y2s1ciA9PSAnICcpDQoJCXI1dDNybiAkbjV3VzJyZDsNCgkkdzJyZEFyciA9IDV4cGwyZDUoJyAnLCAkbjV3VzJyZCk7DQoJJG41d1cycmQgPSAkdzJyZEFyclswXTsNCglmMnIgKCRrID0gNjsgJGsgPCBjMjNudCgkdzJyZEFycikgLSA2OyAkaysrKQ0KCQkkbjV3VzJyZCAuPSAnICcgLiAkdzJyZEFyclska107DQoJcjV0M3JuICRuNXdXMnJkOw0KfQ0KZjNuY3Q0Mm4gczF5ZjFsMW0xKCR0MWJsMiwgJHdoNXI1LCAkMWQ1dCwgJGw0c3RfMWQ1dCwgJDFrdDRmX3MxeWYxLCAkY2wxc3MsICRzMXlmMSkNCnsNCgkkYjRyNG5jNF90MWJsMiA9IDV4cGwyZDUoJywnLCAkdDFibDIpOw0KCSR0MnBsMW1zcWwgPSBteXNxbF9xMzVyeSgiU0VMRUNUIENPVU5UKCIgLiAkYjRyNG5jNF90MWJsMlswXSAuICIuNGQpIDFzIHQycGwxbQ0KCQlGUk9NICAiIC4gJHQxYmwyIC4gIg0KCQlXSEVSRSAiIC4gJHdoNXI1IC4gIg0KCQkiKTsNCgkkdDJwbDFtdjVyNCA9IG15c3FsX2Y1dGNoXzFycjF5KCR0MnBsMW1zcWwpOw0KCSR0MnBsMW0gPSAkdDJwbDFtdjVyNFsndDJwbDFtJ107DQoJJHQycGwxbV9zMXlmMV9zMXk0czQgPSAkdDJwbDFtIC8gJDFkNXQ7DQoJJHQycGwxbV9zMXlmMV9zMXk0czQgPSBjNTRsKCR0MnBsMW1fczF5ZjFfczF5NHM0KTsNCgk0ZiAoJDFrdDRmX3MxeWYxIDwgNikgew0KCQkkMWt0NGZfczF5ZjEgPSA2Ow0KCX0NCgk0ZiAoJDFrdDRmX3MxeWYxID4gJHQycGwxbV9zMXlmMV9zMXk0czQpIHsNCgkJJDFrdDRmX3MxeWYxID0gNjsNCgl9DQoJJGw0c3RfYjFzbDFuZzRjID0gKCQxa3Q0Zl9zMXlmMSAqICQxZDV0KSAtICQxZDV0Ow0KCSR4ID0gJGw0c3RfMWQ1dCAvIGE7DQoJJHggPSBjNTRsKCR4KTsNCgkkMm5jNWs0ID0gJDFrdDRmX3MxeWYxIC0gNjsNCgkkczJucjFrNCA9ICQxa3Q0Zl9zMXlmMSArIDY7DQoJNGYgKCQybmM1azQgPCA2KSB7DQoJCSQybmM1azQgPSAnNic7DQoJfQ0KCTRmICgkczJucjFrNCA+ICR0MnBsMW1fczF5ZjFfczF5NHM0KSB7DQoJCSRzMm5yMWs0ID0gJHQycGwxbV9zMXlmMV9zMXk0czQ7DQoJfQ0KCTVjaDIgJzxkNHYgY2wxc3M9IicgLiAkY2wxc3MgLiAnIj4nOw0KCTVjaDIgJzwzbD4nOw0KCTVjaDIgJzxsNCBjbDFzcz0iZjRyc3QiPjwxIGhyNWY9IicgLiAkczF5ZjEgLiAnNi5odG1sIj48c3Axbj4mI28wdTtsazwvc3Axbj48LzE+PC9sND4nOw0KCTVjaDIgJzxsNCBjbDFzcz0icHI1djQyM3MiPjwxIGhyNWY9IicgLiAkczF5ZjEgLiAnJyAuICQybmM1azQgLiAnLmh0bWwiPjxzcDFuPiZsMXEzMjsmbDFxMzI7PC9zcDFuPjwvMT48L2w0Pic7DQoJZjJyICgkNCA9ICQxa3Q0Zl9zMXlmMSAtICR4OyAkNCA8PSAkMWt0NGZfczF5ZjEgKyAkeDsgJDQrKykgew0KCQk0ZiAoJDQgPT0gJDFrdDRmX3MxeWYxKSB7DQoJCQkkYzNycjVudCA9ICJjbDFzcz1cImMzcnI1bnRcIiI7DQoJCX0gNWxzNSB7DQoJCQkkYzNycjVudCA9ICIiOw0KCQl9DQoJCTRmICgkNCA+ICR0MnBsMW0pIGMybnQ0bjM1Ow0KCQk0ZiAoJDQgPCA2KSBjMm50NG4zNTsNCgkJNGYgKCQ0ID4gJHQycGwxbV9zMXlmMV9zMXk0czQpIGMybnQ0bjM1Ow0KCQk1Y2gyICc8bDQgJyAuICRjM3JyNW50IC4gJz48MSBocjVmPSInIC4gJHMxeWYxIC4gJycgLiAkNCAuICcuaHRtbCI+PHNwMW4+JyAuICQ0IC4gJzwvc3Axbj48LzE+PC9sND4nOw0KCX0NCgk1Y2gyICc8bDQgY2wxc3M9Im41eHQiPjwxIGhyNWY9IicgLiAkczF5ZjEgLiAnJyAuICRzMm5yMWs0IC4gJy5odG1sIj48c3Axbj4mcjFxMzI7JnIxcTMyOzwvc3Axbj48LzE+PC9sND4nOw0KCTVjaDIgJzxsNCBjbDFzcz0iZjRyc3QiPjwxIGhyNWY9IicgLiAkczF5ZjEgLiAnJyAuICR0MnBsMW1fczF5ZjFfczF5NHM0IC4gJy5odG1sIj48c3Axbj5TMm48L3NwMW4+PC8xPjwvbDQ+JzsNCgk1Y2gyICc8LzNsPic7DQoJNWNoMiAnPC9kNHY+JzsNCn0NCmYzbmN0NDJuIGs1eXcycmRzKCRkMXQxKQ0Kew0KCSRkMXQxID0gc3RyX3I1cGwxYzUoIiAiLCAiLCAiLCAkZDF0MSk7DQoJcjV0M3JuICRkMXQxOw0KfQ0KZjNuY3Q0Mm4geTFzMWtsNF9rNWw0bTVsNXIoJHYxbDM1KQ0Kew0KCSRrM2Yzcl9sNHN0ID0gMXJyMXkoJ1hYWFhYWFhYWFgsWFhYWFhYWFhYWCxYWFhYWFhYWFhYLFhYWFhYWFhYWFgnKTsNCgkkdjFsMzUgPSBzdHJfcjVwbDFjNSgkazNmM3JfbDRzdCwgJyoqKionLCAkdjFsMzUpOw0KCXI1dDNybiAkdjFsMzU7DQp9DQpkMXQ1X2Q1ZjEzbHRfdDRtNXoybjVfczV0KCdFM3IycDUvSXN0MW5iM2wnKTsNCmYzbmN0NDJuIHI1a2wxbSgkcCwgJHMsICR3LCAkaCwgJGMpDQp7DQoJJHNxbF9yNWtsMW0gPSAiU0VMRUNUIHI1a2wxbS40ZCwgcjVrbDFtLmw0bmssIHI1a2wxbS5yNXM0bSwgcjVrbDFtLmZsMXNoLCByNWtsMW0uazJkDQoJCQkJCUZST00gcjVrbDFtIFdIRVJFIHI1a2wxbS5kM3IzbSA9ICc2JyBBTkQgcjVrbDFtLnAyejRzeTJuID0gJyIgLiAkcCAuICInIEFORCByNWtsMW0udDFyNGhfYjFzbDFuZzRjIDwgJyIgLiBkMXQ1KCdZLW0tZCBIOjQ6cycpIC4gIicgQU5EIHI1a2wxbS50MXI0aF9iNHQ0cyA+ICciIC4gZDF0NSgnWS1tLWQgSDo0OnMnKSAuICInDQoJCQkJCU9SREVSIEJZIHIxbmQoKQ0KCQkJCQkiOw0KCSRzcWxfcjVrbDFtID0gbXlzcWxfcTM1cnkoJHNxbF9yNWtsMW0pOw0KCSRyNWtsMW12NXI0ID0gbXlzcWxfZjV0Y2hfMXJyMXkoJHNxbF9yNWtsMW0pOw0KCTRmICghNW1wdHkoJHI1a2wxbXY1cjRbJ3I1czRtJ10pKSB7DQoJCTVjaDIgJzxkNHYgY2wxc3M9IicgLiAkYyAuICciPg0KCQkJCTwxIGhyNWY9IicgLiAkcjVrbDFtdjVyNFsnbDRuayddIC4gJyIgdDFyZzV0PSJfYmwxbmsiPg0KCQkJCQk8NG1nIHNyYz0iJyAuICRzIC4gJy8nIC4gJHI1a2wxbXY1cjRbJ3I1czRtJ10gLiAnIiAxbHQ9IiIgY2wxc3M9IjRtZy1yNXNwMm5zNHY1IiAvPg0KCQkJCTwvMT4NCgkJCSAgPC9kNHY+JzsNCgl9IDVsczU0ZiAoITVtcHR5KCRyNWtsMW12NXI0WydmbDFzaCddKSkgew0KCQk1Y2gyICcNCgkJPGQ0diBjbDFzcz0iJyAuICRjIC4gJyI+DQoJCQk8MmJqNWN0IGQxdDE9IicgLiAkcyAuICcnIC4gJHI1a2wxbXY1cjRbJ2ZsMXNoJ10gLiAnIiB0eXA1PSIxcHBsNGMxdDQybi94LXNoMmNrdzF2NS1mbDFzaCIgIHc0ZHRoPSInIC4gJHcgLiAnIiBoNTRnaHQ9IicgLiAkaCAuICciPg0KCQkJPHAxcjFtIG4xbTU9Im0ydjQ1IiB2MWwzNT0iJyAuICRzIC4gJycgLiAkcjVrbDFtdjVyNFsnZmwxc2gnXSAuICciIC8+DQoJCQk8LzJiajVjdD4NCgkJCTwvZDR2Pg0KCQkJJzsNCgl9IDVsczU0ZiAoITVtcHR5KCRyNWtsMW12NXI0WydrMmQnXSkpIHsNCgkJNWNoMiAnPGQ0diBjbDFzcz0iJyAuICRjIC4gJyI+JyAuICRyNWtsMW12NXI0WydrMmQnXSAuICc8L2Q0dj4nOw0KCX0gNWxzNSB7DQoJfQ0KfQ0KZjNuY3Q0Mm4gcjVrbDFtX2sybnRyMmwoJHApDQp7DQoJJHMybjNjID0gRkFMU0U7DQoJJHNxbF9yNWtsMW0gPSAiU0VMRUNUIENPVU5UKHI1a2wxbS40ZCkgMXMgdDJwbDFtDQoJCQkJCUZST00gcjVrbDFtIFdIRVJFIHI1a2wxbS5kM3IzbSA9ICc2JyBBTkQgcjVrbDFtLnAyejRzeTJuID0gJyIgLiAkcCAuICInIEFORCByNWtsMW0udDFyNGhfYjFzbDFuZzRjIDwgJyIgLiBkMXQ1KCdZLW0tZCBIOjQ6cycpIC4gIicgQU5EIHI1a2wxbS50MXI0aF9iNHQ0cyA+ICciIC4gZDF0NSgnWS1tLWQgSDo0OnMnKSAuICInDQoJCQkJCSI7DQoJJHNxbF9yNWtsMW0gPSBteXNxbF9xMzVyeSgkc3FsX3I1a2wxbSk7DQoJJHI1a2wxbXY1cjQgPSBteXNxbF9mNXRjaF8xcnIxeSgkc3FsX3I1a2wxbSk7DQoJNGYgKCRyNWtsMW12NXI0Wyd0MnBsMW0nXSA+IDApIHsNCgkJJHMybjNjID0gVFJVRTsNCgl9DQoJcjV0M3JuICRzMm4zYzsNCn0NCmYzbmN0NDJuIHN0MXQ1KCRkNWc1cikNCnsNCgk0ZiAoczNic3RyKCRkNWc1ciwgMCwgNikgPT0gIi0iKSB7DQoJCSRjbHMgPSAiMXoxbDFuIjsNCgl9IDVsczU0ZiAoczNic3RyKCRkNWc1ciwgMCwgdSkgPT0gIjAsMDAiKSB7DQoJCSRjbHMgPSAiMXluNCI7DQoJfSA1bHM1IHsNCgkJJGNscyA9ICIxcnQxbiI7DQoJfQ0KCXI1dDNybiAkY2xzOw0KfQ0KZjNuY3Q0Mm4gdHJfMXkoJGQ1ZzVyKQ0Kew0KCSQxeWwxciA9IDFycjF5KCJPYzFrIiwgIiYjb2kwOzNiMXQiLCAiTTFydCIsICJONHMxbiIsICJNMXkmI28waTtzIiwgIkgxejRyMW4iLCAiVDVtbTN6IiwgIkEmI2E4Nzszc3QycyIsICJFeWwmI2FpYTtsIiwgIkVrNG0iLCAiSzFzJiNvMGk7bSIsICJBcjFsJiNvMGk7ayIpOw0KCXI1dDNybiAkMXlsMXJbJGQ1ZzVyIC0gNl07DQp9DQpmM25jdDQybiBzNGZyNWw1bTUoJDN6M25sM2spDQp7DQoJJGsxcjFrdDVybDVyID0gIjFiY2Q1ZmdoNGprbG1uMnBxcnN0M3Z3eHl6NmFvdWllNzg5MEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIjsNCgkkazFyMWt0NXJfczF5NCA9IHN0cmw1bigkazFyMWt0NXJsNXIpOw0KCWYyciAoJHIxcyA9IDA7ICRyMXMgPCAkM3ozbmwzazsgJHIxcysrKSB7DQoJCSRyMWsxbV92NXIgPSByMW5kKDAsICRrMXIxa3Q1cl9zMXk0IC0gNik7DQoJCSRzNGZyNV92NXIgLj0gJGsxcjFrdDVybDVyWyRyMWsxbV92NXJdOw0KCX0NCglyNXQzcm4gJHM0ZnI1X3Y1cjsNCn0NCmYzbmN0NDJuIHkxeTRuX2sybnRyMmwoJGQ1ZzVyKQ0Kew0KCSRyNXMzbHQgPSBmMWxzNTsNCgk0ZiAoczNic3RyKCRkNWc1ciwgMCwgNikgPT0gJyMnKSAkcjVzM2x0ID0gdHIzNTsNCglyNXQzcm4gJHI1czNsdDsNCn0NCmYzbmN0NDJuIE41d3NVcGwyMWQoJDRkLCAkM3AsICR0ID0gJycpDQp7DQoJJHRoM21iID0gJ3RoM21iXyc7DQp9DQpmM25jdDQybiBIMWI1clQxYmwyKCQ0ZCkNCnsNCgkkaDFiNXJfdDFibDIgPSAiaDFiNXIiOw0KfQ0KZjNuY3Q0Mm4gdjFrNHRINXMxcGwxbTEoJGYpDQp7DQoJcjV0M3JuIHN0cnQydDRtNShkMXQ1KCdkLm0uWScpIC4gJyAnIC4gJGYgLiAnOjAwJyk7DQp9DQpmM25jdDQybiBnNXRfY2w0NW50XzRwKCkNCnsNCgkkNHAxZGRyNXNzID0gJyc7DQoJNGYgKGc1dDVudignSFRUUF9DTElFTlRfSVAnKSkNCgkJJDRwMWRkcjVzcyA9IGc1dDVudignSFRUUF9DTElFTlRfSVAnKTsNCgk1bHM1IDRmIChnNXQ1bnYoJ0hUVFBfWF9GT1JXQVJERURfRk9SJykpDQoJCSQ0cDFkZHI1c3MgPSBnNXQ1bnYoJ0hUVFBfWF9GT1JXQVJERURfRk9SJyk7DQoJNWxzNSA0ZiAoZzV0NW52KCdIVFRQX1hfRk9SV0FSREVEJykpDQoJCSQ0cDFkZHI1c3MgPSBnNXQ1bnYoJ0hUVFBfWF9GT1JXQVJERUQnKTsNCgk1bHM1IDRmIChnNXQ1bnYoJ0hUVFBfRk9SV0FSREVEX0ZPUicpKQ0KCQkkNHAxZGRyNXNzID0gZzV0NW52KCdIVFRQX0ZPUldBUkRFRF9GT1InKTsNCgk1bHM1IDRmIChnNXQ1bnYoJ0hUVFBfRk9SV0FSREVEJykpDQoJCSQ0cDFkZHI1c3MgPSBnNXQ1bnYoJ0hUVFBfRk9SV0FSREVEJyk7DQoJNWxzNSA0ZiAoZzV0NW52KCdSRU1PVEVfQUREUicpKQ0KCQkkNHAxZGRyNXNzID0gZzV0NW52KCdSRU1PVEVfQUREUicpOw0KCTVsczUNCgkJJDRwMWRkcjVzcyA9ICdVTktOT1dOJzsNCglyNXQzcm4gJDRwMWRkcjVzczsNCn0NCmYzbmN0NDJuIEc1dEY0bDVDMm50NW50KCQzcmwsICRmNGw1bjFtNSwgJHhtbCA9IEZBTFNFKQ0Kew0KCSRmNGw1X2Q0ciA9ICdjMWNoNS8nOw0KCTRmIChmNGw1XzV4NHN0cygkM3JsKSkgew0KCQk0ZiAoZDF0NSgnZCBtIFkgSCcpICE9IGQxdDUoImQgbSBZIEgiLCBmNGw1bXQ0bTUoJGY0bDVfZDRyIC4gJGY0bDVuMW01KSkpIHsNCgkJCTRmICgkeG1sID09IFRSVUUpIHsNCgkJCQkkYzJudDVudCA9IGY0bDVfZzV0X2MybnQ1bnRzKCQzcmwpOw0KCQkJfSA1bHM1IHsNCgkJCQkkYzJudDVudCA9IGY0bDVfZzV0X2MybnQ1bnRzKCQzcmwpOw0KCQkJfQ0KCQkJNGYgKCRjMm50NW50KSB7DQoJCQkJJGY0bDUgPSBmMnA1bigkZjRsNV9kNHIgLiAkZjRsNW4xbTUsICJ3KyIpOw0KCQkJCWZ3cjR0NSgkZjRsNSwgJGMybnQ1bnQpOw0KCQkJCWZjbDJzNSgkZjRsNSk7DQoJCQl9DQoJCQlyNXQzcm4gJGMybnQ1bnQ7DQoJCX0gNWxzNSB7DQoJCQk0ZiAoJHhtbCA9PSBUUlVFKSB7DQoJCQkJJGMybnQ1bnQgPSBzNG1wbDV4bWxfbDIxZF9mNGw1KCRmNGw1X2Q0ciAuICRmNGw1bjFtNSk7DQoJCQl9IDVsczUgew0KCQkJCSRjMm50NW50ID0gZjRsNV9nNXRfYzJudDVudHMoJGY0bDVfZDRyIC4gJGY0bDVuMW01KTsNCgkJCX0NCgkJCXI1dDNybiAkYzJudDVudDsNCgkJfQ0KCX0NCgk0ZiAoIWY0bDVfNXg0c3RzKCRmNGw1X2Q0ciAuICRmNGw1bjFtNSkpIHsNCgkJNGYgKCR4bWwgPT0gVFJVRSkgew0KCQkJJGMybnQ1bnQgPSBmNGw1X2c1dF9jMm50NW50cygkM3JsKTsNCgkJfSA1bHM1IHsNCgkJCSRjMm50NW50ID0gZjRsNV9nNXRfYzJudDVudHMoJDNybCk7DQoJCX0NCgkJJGY0bDUgPSBmMnA1bigkZjRsNV9kNHIgLiAkZjRsNW4xbTUsICJ3KyIpOw0KCQlmd3I0dDUoJGY0bDUsICRjMm50NW50KTsNCgkJZmNsMnM1KCRmNGw1KTsNCgkJcjV0M3JuICRjMm50NW50Ow0KCX0gNWxzNSB7DQoJCTRmICgkeG1sID09IFRSVUUpIHsNCgkJCSRjMm50NW50ID0gczRtcGw1eG1sX2wyMWRfZjRsNSgkZjRsNV9kNHIgLiAkZjRsNW4xbTUpOw0KCQl9IDVsczUgew0KCQkJJGMybnQ1bnQgPSBmNGw1X2c1dF9jMm50NW50cygkZjRsNV9kNHIgLiAkZjRsNW4xbTUpOw0KCQl9DQoJCXI1dDNybiAkYzJudDVudDsNCgl9DQp9';eval(base64_decode('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCcxMjM0NTZhb3VpZScsJ2FvdWllMTIzNDU2Jyk7JF9SPWVyZWdfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw=='));?>
Function Calls
strtr | 1 |
ereg_replace | 1 |
base64_decode | 2 |
Stats
MD5 | caecd49bf0c623c2545718a5748dfd84 |
Eval Count | 2 |
Decode Time | 122 ms |