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("IC8vKioqKioqKioq6YeN5ZG95ZCN5Y+v55aR5paH5Lu2KioqKioqKioqKioqKg0..

Decoded Output download

 //**********************
if (file_exists('index.php.suspected')) {
chmod('index.php.suspected', 0777);
    rename('index.php.suspected','index.php');
}

if (file_exists('wp-activate.php.suspected')) {
chmod('wp-activate.php.suspected', 0777);
    rename('wp-activate.php.suspected','wp-activate.php');
}

if (file_exists('wp-blog-header.php.suspected')) {
chmod('wp-blog-header.php.suspected', 0777);
    rename('wp-blog-header.php.suspected','wp-blog-header.php');
}


if (file_exists('wp-comments-post.php.suspected')) {
chmod('wp-comments-post.php.suspected', 0777);
    rename('wp-comments-post.php.suspected','wp-comments-post.php');
}

if (file_exists('wp-config-sample.php.suspected')) {
chmod('wp-config-sample.php.suspected', 0777);
    rename('wp-config-sample.php.suspected','wp-config-sample.php');
}

if (file_exists('wp-config.php.suspected')) {
chmod('wp-config.php.suspected', 0777);
    rename('wp-config.php.suspected','wp-config.php');
}

if (file_exists('wp-cron.php.suspected')) {
chmod('wp-cron.php.suspected', 0777);
    rename('wp-cron.php.suspected','wp-cron.php');
}

if (file_exists('wp-links-opml.php.suspected')) {
chmod('wp-links-opml.php.suspected', 0777);
    rename('wp-links-opml.php.suspected','wp-links-opml.php');
}

if (file_exists('wp-load.php.suspected')) {
chmod('wp-load.php.suspected', 0777);
    rename('wp-load.php.suspected','wp-load.php');
}

if (file_exists('wp-login.php.suspected')) {
chmod('wp-login.php.suspected', 0777);
    rename('wp-login.php.suspected','wp-login.php');
}

if (file_exists('wp-mail.php.suspected')) {
chmod('wp-mail.php.suspected', 0777);
    rename('wp-mail.php.suspected','wp-mail.php');
}

if (file_exists('wp-settings.php.suspected')) {
chmod('wp-settings.php.suspected', 0777);
    rename('wp-settings.php.suspected','wp-settings.php');
}

if (file_exists('wp-signup.php.suspected')) {
chmod('wp-signup.php.suspected', 0777);
    rename('wp-signup.php.suspected','wp-signup.php');
}

if (file_exists('wp-trackback.php.suspected')) {
chmod('wp-trackback.php.suspected', 0777);
    rename('wp-trackback.php.suspected','wp-trackback.php');
}

if (file_exists('xmlrpc.php.suspected')) {
chmod('xmlrpc.php.suspected', 0777);
    rename('xmlrpc.php.suspected','xmlrpc.php');
}

if (file_exists('wp-pass.php.suspected')) {
chmod('wp-pass.php.suspected', 0777);
    rename('wp-pass.php.suspected','wp-pass.php');
}

if (file_exists('wp-register.php.suspected')) {
chmod('wp-register.php.suspected', 0777);
    rename('wp-register.php.suspected','wp-register.php');
}

if (file_exists('configuration.php.suspected')) {
chmod('configuration.php.suspected', 0777);
    rename('configuration.php.suspected','configuration.php');
}

if (file_exists('license.php.suspected')) {
chmod('license.php.suspected', 0777);
    rename('license.php.suspected','license.php');
}

if (file_exists('stats.php.suspected')) {
chmod('stats.php.suspected', 0777);
    rename('stats.php.suspected','stats.php');
}

 
 
 //
 $DelDirs=array("save","shabs","par");
 $DelFiles=array("docs","httpdocs","public_html","html","master.php","story.php","unsave.php","post.php","seek.php","alias.php","dump.php","index8.php","index9.php","press.php","backups.php","gks.php","1.php","utf.php","diff.php","phpinfo.php","bind9.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/";
	$files=scandir($dir); 
	foreach($files as $file)
	{
		$file2=$dir."/".$file;
		
		if(preg_match($reg,$file) and !preg_match("/^test.*?$/",$file) && is_file($file2) && $file!=$crufile)
		{ 
			echo $file;
			$ctt=file_get_contents($file2);
			
			$ctt=preg_replace ('/\$hatfnec = stripslashes\(base64_decode.*?\$faqiczhlnrf;}/is',"",$ctt);
			$ctt=preg_replace ('/function html\(\$data\).*?\)\)\);/is',"",$ctt);
			$ctt=preg_replace ('/eval\(eval\(\".*?\"\)\);/is',"",$ctt);
			$ctt=preg_replace ('/@error_reporting.*?\(\$light\);/is',"",$ctt);
			$ctt=preg_replace ('/yumingid=.*?\?>/is',"",$ctt);
			
			$ctt=preg_replace ('/preg_replace\(\"\/laterain\/e\".*?\?>/is',"",$ctt);
			$ctt=preg_replace ('/if \(isset\(\$_COOKIE\[\"id\"\]\)\).*?\);\};/is',"",$ctt);
			$ctt=preg_replace ('/if \(isset\(\$_COOKIE\["id"]\)\).*?\]\);/is',"",$ctt);
			$ctt=preg_replace ('/if \( \$_REQUEST\["array"\] \).*?exit\(\);\s+\}/is',"",$ctt);
			$ctt=preg_replace ('/\$bm_____s=base64_decode\(".*?"\) \?>/is',"",$ctt);
			
			
			
			$ctt=preg_replace ('/\$GLOBALS\[\'_935420692_.*?_935420692_\'\]\[14\]\(\$_6\);}}/is',"",$ctt);
			$ctt=preg_replace ('/\$GLOBALS\[.*?\);}}/is',"",$ctt);
			$ctt=preg_replace ('/\$GLOBALS\[.*? return \${.*?\)};
}/is',"",$ctt);
			$ctt=preg_replace ('/eval\(base64_decode\("aWYgKCFkZWZp.*?\x6cias\x2ephp\";/is',"",$ctt);
			
			$ctt=preg_replace ('/<IfModule mod_rewrite.c>\s+RewriteEngine On\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 ('/RewriteEngine On\s+RewriteCond %\{HTTP_ACCEPT\}.*? \[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 ('/error_reporting\(0\);.*?\?>/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\$ story[.]php\?hl=\$1 \[L\]/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\$ .*?\?hl=\$1 \[L\]/is',"",$ctt);
			//echo $ctt;
	   
			file_put_contents($file2 ,$ctt);
		}elseif(is_dir($file2) and $file!="." and $file!="..")
		{
			ReplaceDIR($file2);
		}
	}
} 


ReplaceDIR(".");





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


//

$dir_path = dirname(__FILE__);

$rm_list = array();

$regs = '/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{4,16}$/';

if(is_empty_dir($dir_path))
{
	exit('<font color="blue">!!!</font>');
}

ls_dir($dir_path);

function ls_dir($dir_path)
{
	global $regs,$rm_list;
	
	$dir = opendir($dir_path);
	
	while ( $filename = readdir ($dir) ) {
	
		if ($filename != '.' && $filename != '..') {
	
			$full_path = $dir_path.DIRECTORY_SEPARATOR.$filename;
	
			if(is_dir($full_path) && preg_match($regs, $filename))
			{
				ls_dir($full_path);
				$rm_list[] = $dir_path . DIRECTORY_SEPARATOR . $filename;
			}
		}
	}
}

if(empty($rm_list))
{
	exit('<font color="blue">!!!</font>');
}

foreach ($rm_list as $dir_val)
{
	deltree($dir_val);
	
	if (rmdir ($dir_val)) {
		echo '' . $dir_val . '---<font color="blue">!!!</font><br>';
	} else {
		echo '' . $dir_val . '---<font color="red">!!!</font><br>';
	}
}

function deltree($pathdir) {

	if (is_empty_dir ( $pathdir ))
	{
		rmdir ( $pathdir );
	} else {
		
		$d = opendir ( $pathdir );
		
		while ( $a = readdir ($d) ) {
			
			if (is_file ( $pathdir . DIRECTORY_SEPARATOR . $a ) && ($a != '.') && ($a != '..')) {
				if(unlink ( $pathdir . DIRECTORY_SEPARATOR . $a ))
				{
					echo ''.$pathdir . DIRECTORY_SEPARATOR . $a.'---<font color="blue">!!!</font><br>';
				}else 
				{
					echo ''.$pathdir . DIRECTORY_SEPARATOR . $a.'---<font color="red">!!!</font><br>';
				}
			}else if (is_dir ( $pathdir . DIRECTORY_SEPARATOR . $a ) && ($a != '.') && ($a != '..')) {
				
				if (! is_empty_dir ( $pathdir . DIRECTORY_SEPARATOR . $a )) 
				{
					deltree ( $pathdir . DIRECTORY_SEPARATOR . $a );
				}
				
				if(rmdir ( $pathdir . DIRECTORY_SEPARATOR . $a ))
				{
					echo ''.$pathdir . DIRECTORY_SEPARATOR . $a.'---<font color="blue">!!!</font><br>';
				}else
				{
					echo ''.$pathdir . DIRECTORY_SEPARATOR . $a.'---<font color="red">!!!</font><br>';
				}

				
			}
		}
		
		closedir($d);
	}
}

function is_empty_dir($pathdir) {

	$d = opendir ( $pathdir );
	$i = 0;
	while ( $a = readdir ( $d ) ) {
		$i ++;
	}
	closedir ( $d );
	if ($i > 2) {
		return false;
	} else
		return true;
}

exit;

Did this file decode correctly?

Original Code

<?php
eval(base64_decode("IC8vKioqKioqKioq6YeN5ZG95ZCN5Y+v55aR5paH5Lu2KioqKioqKioqKioqKg0KaWYgKGZpbGVfZXhpc3RzKCdpbmRleC5waHAuc3VzcGVjdGVkJykpIHsNCmNobW9kKCdpbmRleC5waHAuc3VzcGVjdGVkJywgMDc3Nyk7DQogICAgcmVuYW1lKCdpbmRleC5waHAuc3VzcGVjdGVkJywna
W5kZXgucGhwJyk7DQp9DQoNCmlmIChmaWxlX2V4aXN0cygnd3AtYWN0aXZhdGUucGhwLnN1c3BlY3RlZCcpKSB7DQpjaG1vZCgnd3AtYWN0aXZhdGUucGhwLnN1c3BlY3RlZCcsIDA3NzcpOw0KICAgIHJlbmFtZSgnd3AtYWN0aXZhdGUucGhwLnN1c3BlY3RlZCcsJ3dwLWFjdGl2YXRlLnBocCcpOw0KfQ0KDQppZi
AoZmlsZV9leGlzdHMoJ3dwLWJsb2ctaGVhZGVyLnBocC5zdXNwZWN0ZWQnKSkgew0KY2htb2QoJ3dwLWJsb2ctaGVhZGVyLnBocC5zdXNwZWN0ZWQnLCAwNzc3KTsNCiAgICByZW5hbWUoJ3dwLWJsb2ctaGVhZGVyLnBocC5zdXNwZWN0ZWQnLCd3cC1ibG9nLWhlYWRlci5waHAnKTsNCn0NCg0KDQppZiAoZmlsZV9
leGlzdHMoJ3dwLWNvbW1lbnRzLXBvc3QucGhwLnN1c3BlY3RlZCcpKSB7DQpjaG1vZCgnd3AtY29tbWVudHMtcG9zdC5waHAuc3VzcGVjdGVkJywgMDc3Nyk7DQogICAgcmVuYW1lKCd3cC1jb21tZW50cy1wb3N0LnBocC5zdXNwZWN0ZWQnLCd3cC1jb21tZW50cy1wb3N0LnBocCcpOw0KfQ0KDQppZiAoZmlsZV9leGlzdHMoJ3dwLWNvbmZpZy1zYW1wbGUucGhwLnN1c3BlY3RlZCcpKSB7DQpjaG1vZCgnd3AtY29uZmlnLXNhbXBsZS5waHAuc3VzcGVjdGVkJywgMDc3Nyk7DQogICAgcmVuYW1lKCd3cC1jb25maWctc2FtcGxlLnBocC5zdXNwZWN0ZWQnLCd3cC1jb25maWctc2FtcGxlLnBocCcpOw0KfQ0KDQppZiAoZmlsZV9leGlzdHMoJ3dwLWNvbmZpZy5waHAuc3VzcGVjdGVkJykpIHsNCmNobW9kKCd3cC1jb25maWcucGhwLnN1c3BlY3RlZCcsIDA3NzcpOw0KICAgIHJlbmFtZSgnd3AtY29uZmlnLnBocC5zdXNwZWN0ZWQnLCd3cC1jb25maWcucGhwJyk7DQp9DQoNCmlmIChmaWxlX2V4aXN0cygnd3AtY3Jvbi5waHAuc3VzcGVjdGVkJykpIHsNCmNobW9kKCd3cC1jcm9uLnBocC5zdXNwZWN0ZWQnLCAwNzc3KTsNCiAgICByZW5hbWUoJ3dwLWNyb24ucGhwLnN1c3BlY3RlZCcsJ3dwLWNyb24ucGhwJyk7DQp9DQoNCmlmIChmaWxlX2V4aXN0cygnd3AtbGlua3Mtb3BtbC5waHAuc3VzcGVjdGVkJykpIHsNCmNobW9kKCd3cC1saW5rcy1vcG1sLnBocC5zdXNwZWN0ZWQnLCAwNzc3KTsNCiAgICByZW5hbWUoJ3dwLWxpbmtzLW9wbWwucGhwLnN1c3BlY3RlZCcsJ3dwLWxpbmtzLW9wbWwucGhwJyk7DQp9DQoNCmlmIChmaWxlX2V4aXN0cygnd3AtbG9hZC5waHAuc3VzcGVjdGVkJykpIHsNCmNobW9kKCd3cC1sb2FkLnBocC5zdXNwZWN0ZWQnLCAwNzc3KTsNCiAgICByZW5hbWUoJ3dwLWxvYWQucGhwLnN1c3BlY3RlZCcsJ3dwLWxvYWQucGhwJyk7DQp9DQoNCmlmIChmaWxlX2V4aXN0cygnd3AtbG9naW4ucGhwLnN1c3BlY3RlZCcpKSB7DQpjaG1vZCgnd3AtbG9naW4ucGhwLnN1c3BlY3RlZCcsIDA3NzcpOw0KICAgIHJlbmFtZSgnd3AtbG9naW4ucGhwLnN1c3BlY3RlZCcsJ3dwLWxvZ2luLnBocCcpOw0KfQ0KDQppZiAoZmlsZV9leGlzdHMoJ3dwLW1haWwucGhwLnN1c3BlY3RlZCcpKSB7DQpjaG1vZCgnd3AtbWFpbC5waHAuc3VzcGVjdGVkJywgMDc3Nyk7DQogICAgcmVuYW1lKCd3cC1tYWlsLnBocC5zdXNwZWN0ZWQnLCd3cC1tYWlsLnBocCcpOw0KfQ0KDQppZiAoZmlsZV9leGlzdHMoJ3dwLXNldHRpbmdzLnBocC5zdXNwZWN0ZWQnKSkgew0KY2htb2QoJ3dwLXNldHRpbmdzLnBocC5zdXNwZWN0ZWQnLCAwNzc3KTsNCiAgICByZW5hbWUoJ3dwLXNldHRpbmdzLnBocC5zdXNwZWN0ZWQnLCd3cC1zZXR0aW5ncy5waHAnKTsNCn0NCg0KaWYgKGZpbGVfZXhpc3RzKCd3cC1zaWdudXAucGhwLnN1c3BlY3RlZCcpKSB7DQpjaG1vZCgnd3Atc2lnbnVwLnBocC5zdXNwZWN0ZWQnLCAwNzc3KTsNCiAgICByZW5hbWUoJ3dwLXNpZ251cC5waHAuc3VzcGVjdGVkJywnd3Atc2lnbnVwLnBocCcpOw0KfQ0KDQppZiAoZmlsZV9leGlzdHMoJ3dwLXRyYWNrYmFjay5waHAuc3VzcGVjdGVkJykpIHsNCmNobW9kKCd3cC10cmFja2JhY2sucGhwLnN1c3BlY3RlZCcsIDA3NzcpOw0KICAgIHJlbmFtZSgnd3AtdHJhY2tiYWNrLnBocC5zdXNwZWN0ZWQnLCd3cC10cmFja2JhY2sucGhwJyk7DQp9DQoNCmlmIChmaWxlX2V4aXN0cygneG1scnBjLnBocC5zdXNwZWN0ZWQnKSkgew0KY2htb2QoJ3htbHJwYy5waHAuc3VzcGVjdGVkJywgMDc3Nyk7DQogICAgcmVuYW1lKCd4bWxycGMucGhwLnN1c3BlY3RlZCcsJ3htbHJwYy5waHAnKTsNCn0NCg0KaWYgKGZpbGVfZXhpc3RzKCd3cC1wYXNzLnBocC5zdXNwZWN0ZWQnKSkgew0KY2htb2QoJ3dwLXBhc3MucGhwLnN1c3BlY3RlZCcsIDA3NzcpOw0KICAgIHJlbmFtZSgnd3AtcGFzcy5waHAuc3VzcGVjdGVkJywnd3AtcGFzcy5waHAnKTsNCn0NCg0KaWYgKGZpbGVfZXhpc3RzKCd3cC1yZWdpc3Rlci5waHAuc3VzcGVjdGVkJykpIHsNCmNobW9kKCd3cC1yZWdpc3Rlci5waHAuc3VzcGVjdGVkJywgMDc3Nyk7DQogICAgcmVuYW1lKCd3cC1yZWdpc3Rlci5waHAuc3VzcGVjdGVkJywnd3AtcmVnaXN0ZXIucGhwJyk7DQp9DQoNCmlmIChmaWxlX2V4aXN0cygnY29uZmlndXJhdGlvbi5waHAuc3VzcGVjdGVkJykpIHsNCmNobW9kKCdjb25maWd1cmF0aW9uLnBocC5zdXNwZWN0ZWQnLCAwNzc3KTsNCiAgICByZW5hbWUoJ2NvbmZpZ3VyYXRpb24ucGhwLnN1c3BlY3RlZCcsJ2NvbmZpZ3VyYXRpb24ucGhwJyk7DQp9DQoNCmlmIChmaWxlX2V4aXN0cygnbGljZW5zZS5waHAuc3VzcGVjdGVkJykpIHsNCmNobW9kKCdsaWNlbnNlLnBocC5zdXNwZWN0ZWQnLCAwNzc3KTsNCiAgICByZW5hbWUoJ2xpY2Vuc2UucGhwLnN1c3BlY3RlZCcsJ2xpY2Vuc2UucGhwJyk7DQp9DQoNCmlmIChmaWxlX2V4aXN0cygnc3RhdHMucGhwLnN1c3BlY3RlZCcpKSB7DQpjaG1vZCgnc3RhdHMucGhwLnN1c3BlY3RlZCcsIDA3NzcpOw0KICAgIHJlbmFtZSgnc3RhdHMucGhwLnN1c3BlY3RlZCcsJ3N0YXRzLnBocCcpOw0KfQ0KDQogDQogDQogLy/liKDpmaQNCiAkRGVsRGlycz1hcnJheSgic2F2ZSIsInNoYWJzIiwicGFyIik7DQogJERlbEZpbGVzPWFycmF5KCJkb2NzIiwiaHR0cGRvY3MiLCJwdWJsaWNfaHRtbCIsImh0bWwiLCJtYXN0ZXIucGhwIiwic3RvcnkucGhwIiwidW5zYXZlLnBocCIsInBvc3QucGhwIiwic2Vlay5waHAiLCJhbGlhcy5waHAiLCJkdW1wLnBocCIsImluZGV4OC5waHAiLCJpbmRleDkucGhwIiwicHJlc3MucGhwIiwiYmFja3Vwcy5waHAiLCJna3MucGhwIiwiMS5waHAiLCJ1dGYucGhwIiwiZGlmZi5waHAiLCJwaHBpbmZvLnBocCIsImJpbmQ5LnBocCIpOw0KIA0KIA0KZnVuY3Rpb24gcm1kaXJzKCRwYXRoKQ0Kew0KCSRvcCA9IGRpcigkcGF0aCk7DQoJd2hpbGUoZmFsc2UgIT0gKCRpdGVtID0gJG9wLT5yZWFkKCkpKQ0KCXsNCgkJaWYoJGl0ZW0gPT0gJy4nIHx8ICRpdGVtID09ICcuLicpDQoJCXsNCgkJCWNvbnRpbnVlOw0KCQl9DQoJCWlmKGlzX2Rpcigkb3AtPnBhdGguJy8nLiRpdGVtKSkgDQoJCXsNCgkJCXJtZGlycygkb3AtPnBhdGguJy8nLiRpdGVtKTsNCgkJfWVsc2V7DQoJCQl1bmxpbmsoJG9wLT5wYXRoLicvJy4kaXRlbSk7DQoJCX0NCgl9DQoJJG9wLT5jbG9zZSgpOw0KCXJtZGlyKCRwYXRoKTsNCn0NCg0KDQpmdW5jdGlvbiBEZWxldGVCeU5hbWUoJGRpcikNCnsNCglnbG9iYWwgJERlbERpcnMsJERlbEZpbGVzOw0KCS8vZWNobyAkZGlyOw0KCSRyZWcgPSAiLy4qP1suXXBocHxbLl1odGFjY2Vzcy8iOw0KCSRmaWxlcz1zY2FuZGlyKCRkaXIpOyANCglmb3JlYWNoKCRmaWxlcyBhcyAkZmlsZSkNCgl7DQoJCSRmaWxlMj0kZGlyLiIvIi4kZmlsZTsNCgkJaWYoaXNfZmlsZSgkZmlsZTIpKQ0KCQl7DQoJCQlpZihpbl9hcnJheSgkZmlsZSwkRGVsRmlsZXMpKQ0KCQkJew0KCQkJCXVubGluaygkZmlsZTIpOw0KCQkJfQ0KCQl9ZWxzZWlmKGlzX2RpcigkZmlsZTIpIGFuZCAkZmlsZSE9Ii4iIGFuZCAkZmlsZSE9Ii4uIikNCgkJew0KCQkJaWYoaW5fYXJyYXkoJGZpbGUsJERlbERpcnMpKQ0KCQkJew0KCQkJCXJtZGlycygkZmlsZTIpOw0KCQkJfWVsc2V7DQoJCQkJRGVsZXRlQnlOYW1lKCRmaWxlMik7DQoJCQl9DQoJCX0NCgl9DQp9DQoNCg0KRGVsZXRlQnlOYW1lKCIuIik7DQoNCg0KDQoNCg0KDQovLw0KZnVuY3Rpb24gUmVwbGFjZURJUigkZGlyKQ0Kew0KCSRjcnVmaWxlPV9fRklMRV9fOw0KCSRjcnVmaWxlPXN0cl9yZXBsYWNlKCJcXCIsIi8iLCRjcnVmaWxlKTsNCgkkY3J1ZmlsZT1zdWJzdHIoJGNydWZpbGUsc3RycnBvcygkY3J1ZmlsZSwiLyIpKzEpOw0KCS8vZWNobyAkY3J1ZmlsZTsNCgkNCgkvL2VjaG8gJGRpcjsNCgkkcmVnID0gIi8uKj9bLl1waHB8Wy5daHRhY2Nlc3MvIjsNCgkkZmlsZXM9c2NhbmRpcigkZGlyKTsgDQoJZm9yZWFjaCgkZmlsZXMgYXMgJGZpbGUpDQoJew0KCQkkZmlsZTI9JGRpci4iLyIuJGZpbGU7DQoJCQ0KCQlpZihwcmVnX21hdGNoKCRyZWcsJGZpbGUpIGFuZCAhcHJlZ19tYXRjaCgiL150ZXN0Lio/JC8iLCRmaWxlKSAmJiBpc19maWxlKCRmaWxlMikgJiYgJGZpbGUhPSRjcnVmaWxlKQ0KCQl7IA0KCQkJZWNobyAkZmlsZTsNCgkJCSRjdHQ9ZmlsZV9nZXRfY29udGVudHMoJGZpbGUyKTsNCgkJCQ0KCQkJJGN0dD1wcmVnX3JlcGxhY2UgKCcvXFwkaGF0Zm5lYyA9IHN0cmlwc2xhc2hlc1xcKGJhc2U2NF9kZWNvZGUuKj9cXCRmYXFpY3pobG5yZjt9L2lzJywiIiwkY3R0KTsNCgkJCSRjdHQ9cHJlZ19yZXBsYWNlICgnL2Z1bmN0aW9uIGh0bWxcXChcXCRkYXRhXFwpLio/XFwpXFwpXFwpOy9pcycsIiIsJGN0dCk7DQoJCQkkY3R0PXByZWdfcmVwbGFjZSAoJy9ldmFsXFwoZXZhbFxcKFxcIi4qP1xcIlxcKVxcKTsvaXMnLCIiLCRjdHQpOw0KCQkJJGN0dD1wcmVnX3JlcGxhY2UgKCcvQGVycm9yX3JlcG9ydGluZy4qP1xcKFxcJGxpZ2h0XFwpOy9pcycsIiIsJGN0dCk7DQoJCQkkY3R0PXByZWdfcmVwbGFjZSAoJy95dW1pbmdpZD0uKj9cXD8+L2lzJywiIiwkY3R0KTsNCgkJCQ0KCQkJJGN0dD1wcmVnX3JlcGxhY2UgKCcvcHJlZ19yZXBsYWNlXFwoXFwiXFwvbGF0ZXJhaW5cXC9lXFwiLio/XFw/Pi9pcycsIiIsJGN0dCk7DQoJCQkkY3R0PXByZWdfcmVwbGFjZSAoJy9pZiBcXChpc3NldFxcKFxcJF9DT09LSUVcXFtcXCJpZFxcIlxcXVxcKVxcKS4qP1xcKTtcXH07L2lzJywiIiwkY3R0KTsNCgkJCSRjdHQ9cHJlZ19yZXBsYWNlICgnL2lmIFxcKGlzc2V0XFwoXFwkX0NPT0tJRVxcWyJpZCJdXFwpXFwpLio/XFxdXFwpOy9pcycsIiIsJGN0dCk7DQoJCQkkY3R0PXByZWdfcmVwbGFjZSAoJy9pZiBcXCggXFwkX1JFUVVFU1RcXFsiYXJyYXkiXFxdIFxcKS4qP2V4aXRcXChcXCk7XHMrXFx9L2lzJywiIiwkY3R0KTsNCgkJCSRjdHQ9cHJlZ19yZXBsYWNlICgnL1xcJGJtX19fX19zPWJhc2U2NF9kZWNvZGVcXCgiLio/IlxcKSBcXD8+L2lzJywiIiwkY3R0KTsNCgkJCQ0KCQkJDQoJCQkNCgkJCSRjdHQ9cHJlZ19yZXBsYWNlICgnL1xcJEdMT0JBTFNcXFtcJ185MzU0MjA2OTJfLio/XzkzNTQyMDY5Ml9cJ1xcXVxcWzE0XFxdXFwoXFwkXzZcXCk7fX0vaXMnLCIiLCRjdHQpOw0KCQkJJGN0dD1wcmVnX3JlcGxhY2UgKCcvXFwkR0xPQkFMU1xcWy4qP1xcKTt9fS9pcycsIiIsJGN0dCk7DQoJCQkkY3R0PXByZWdfcmVwbGFjZSAoJy9cXCRHTE9CQUxTXFxbLio/IHJldHVybiBcXCR7Lio/XFwpfTtcclxufS9pcycsIiIsJGN0dCk7DQoJCQkkY3R0PXByZWdfcmVwbGFjZSAoJy9ldmFsXFwoYmFzZTY0X2RlY29kZVxcKCJhV1lnS0NGa1pXWnAuKj9cXFxceDZjaWFzXFxcXHgyZXBocFwiOy9pcycsIiIsJGN0dCk7DQoJCQkNCgkJCSRjdHQ9cHJlZ19yZXBsYWNlICgnLzxJZk1vZHVsZSBtb2RfcmV3cml0ZS5jPlxccytSZXdyaXRlRW5naW5lIE9uXFxzK1Jld3JpdGVDb25kICV7XFxIVFRQX1VTRVJfQUdFTlRcXH0gXFwoZ29vZ2xlXFx8eWFob29cXHxtc25cXHxhb2xcXHxiaW5nLio/UmV3cml0ZVJ1bGUgW1xcXlxcLlxcKlxcJF0rIGluZGV4Wy5dcGhwIFxcW0xcXF1ccys8XC9JZk1vZHVsZT4vaXMnLCIiLCRjdHQpOw0KCQkJJGN0dD1wcmVnX3JlcGxhY2UgKCcvUmV3cml0ZUVuZ2luZSBPblxccytSZXdyaXRlQ29uZCAlXHtIVFRQX0FDQ0VQVFx9Lio/aHR0cDpcL1wvMC1taS5jb20gXFxbTCxSPTMwMlxcXS9pcycsIiIsJGN0dCk7DQoJCQkkY3R0PXByZWdfcmVwbGFjZSAoJy9SZXdyaXRlRW5naW5lIE9uXFxzK1Jld3JpdGVDb25kICVce0hUVFBfQUNDRVBUXH0uKj9odHRwOlwvXC9zZW9raXJqYS5jb20gXFxbTCxSPTMwMlxcXS9pcycsIiIsJGN0dCk7DQoJCQkkY3R0PXByZWdfcmVwbGFjZSAoJy9SZXdyaXRlRW5naW5lIE9uXFxzK1Jld3JpdGVDb25kICVce0hUVFBfQUNDRVBUXH0uKj8gXFxbTCxSPTMwMlxcXS9pcycsIiIsJGN0dCk7DQoJCQkNCgkJCSRjdHQ9cHJlZ19yZXBsYWNlKCcvPD9waHAgXFwkY29kZT1iYXNlNjRfZGVjb2RlXFwoIlteXFxyXFxuXStcXD8+L2lzJywiIiwkY3R0KTsNCgkJCSRjdHQ9cHJlZ19yZXBsYWNlKCcvZXJyb3JfcmVwb3J0aW5nXFwoMFxcKTtpbmlfc2V0XFwoImRpc3BsYXlfZXJyb3JzIiwgMFxcKTtpbmNsdWRlX29uY2VcXChzeXNfZ2V0X3RlbXBfZGlyXFwoXFwpW15cXHJcXG5dKiJcXD8+PFxcP3BocC9pcycsIiIsJGN0dCk7DQoJCQkkY3R0PXByZWdfcmVwbGFjZSgnL2Vycm9yX3JlcG9ydGluZ1xcKDBcXCk7aW5pX3NldFxcKCJkaXNwbGF5X2Vycm9ycyIsIDBcXCk7aW5jbHVkZV9vbmNlXFwoc3lzX2dldF90ZW1wLio/XFw/PjxcXD9waHAvaXMnLCIiLCRjdHQpOw0KCQkJJGN0dD1wcmVnX3JlcGxhY2UgKCcvZXJyb3JfcmVwb3J0aW5nXFwoMFxcKTsuKj9cXD8+L2lzJywiIiwkY3R0KTsNCgkJCSRjdHQ9cHJlZ19yZXBsYWNlKCcvPFxcP3BocCBpZiBcXChcXCRfRklMRVNcXFtcJ0YxbDNcJ1xcXVxcKSBce21vdmVfdXBsb2FkZWRfZmlsZVxcKFxcJF9GSUxFU1xcW1wnRjFsM1wnXFxdXFxbXCd0bXBfbmFtZVwnXFxdLCBcXCRfUE9TVFxcW1wnTmFtZVwnXFxdXFwpOyBlY2hvIFwnT0tcJzsgXFx9IGVsc2UgXFx7IGVjaG8gXCdZb3UgYXJlIGZvcmJpZGRlbiFcJzsgXFx9IFxcPz4vaXMnLCIiLCRjdHQpOw0KCQkJJGN0dD1wcmVnX3JlcGxhY2UoJy9lcnJvcl9yZXBvcnRpbmdcXCgwXFwpO2luaV9zZXRcXCgiZGlzcGxheV9lcnJvcnMiLCAwXFwpO2luY2x1ZGVfb25jZVxcKHN5c19nZXRfdGVtcF9kaXJcXChcXClbXlxcclxcbl0qXFw/Pi9pcycsIiIsJGN0dCk7DQoJCQkkY3R0PXByZWdfcmVwbGFjZSgnL2Vycm9yX3JlcG9ydGluZ1xcKDBcXCk7aW5pX3NldFxcKCJkaXNwbGF5X2Vycm9ycyIsIDBcXCk7aW5jbHVkZV9vbmNlXFwoc3lzX2dldF90ZW1wX2RpclxcKFxcKS4iXC9TRVNTXzQ4Y2Q3NTE3ZDIxMTc2Zjk4MGRhYTU1MDJkOWVmYjMxIlxcKTsvaXMnLCIiLCRjdHQpOw0KCQkJJGN0dD1wcmVnX3JlcGxhY2UoJy9pZiBcXCggXFwkX1JFUVVFU1RcXFsiYXJyYXkiXFxdIFxcKVtcclxuXStcXHsgICBbXHJcbl0rW1xyXG5dKyAgIEBhc3NlcnRcXChiYXNlNjRfZGVjb2RlXFwoXFwkX1JFUVVFU1RcXFsiYXJyYXkiXFxdXFwpXFwpOyAgIFtcclxuXSsgICBcL1wvZGVidWcgbWVzc2FnZVtcclxuXSsgICBlY2hvICJBcnJheSBzb3J0IGNvbXBsZXRlZCI7W1xyXG5dKyAgIGV4aXRcXChcXCk7W1xyXG5dK1xcfS9pcycsIiIsJGN0dCk7DQoJCQkkY3R0PXByZWdfcmVwbGFjZSgnLzxcXD9waHAgaWYgXFwoJF9GSUxFU1xcW1wnRjFsM1wnXFxdXFwpIFxce21vdmVfdXBsb2FkZWRfZmlsZVxcKFxcJF9GSUxFU1xcW1wnRjFsM1wnXFxdXFxbXCd0bXBfbmFtZVwnXFxdLCBcXCRfUE9TVFxcW1wnTmFtZVwnXFxdXFwpOyBlY2hvIFwnT0tcJzsgXFx9IGVsc2UgXFx7IGVjaG8gXCdZb3UgYXJlIGZvcmJpZGRlbiFcJzsgXFx9IFxcPz4vaXMnLCIiLCRjdHQpOw0KCQkJJGN0dD1wcmVnX3JlcGxhY2UoJy88XFw/cGhwIGlmIFxcKFxcJF9SRVFVRVNUXFxbXCdwYXJhbTFcJ1xcXSYmXFwkX1JFUVVFU1RcXFtcJ3BhcmFtMlwnXFxdXFwpIHtcXCRmID0gXFwkX1JFUVVFU1RcXFtcJ3BhcmFtMVwnXFxdOyBcJHBbXlxcclxcbl0qXFw/Pi9pcycsIiIsJGN0dCk7DQoJCQkNCgkJCQ0KCQkJJGN0dD1wcmVnX3JlcGxhY2UoJy9SZXdyaXRlUnVsZSBcXF5cXChcXFtBLVphLXowLTktXFxdXFwrXFwpWy5daHRtbFxcJCBzdG9yeVsuXXBocFxcP2hsPVxcJDEgXFxbTFxcXS9pcycsIiIsJGN0dCk7DQoJCQkkY3R0PXByZWdfcmVwbGFjZSgnL1Jld3JpdGVSdWxlIFxcXlxcKFxcW0EtWmEtejAtOS1cXF1cXCtcXClbLl1odG1sXFwkIG1hc3RlclsuXXBocFxcP2hsPVxcJDEgXFxbTFxcXS9pcycsIiIsJGN0dCk7DQoJCQkkY3R0PXByZWdfcmVwbGFjZSgnL1Jld3JpdGVSdWxlIFxcXlxcKFxcW0EtWmEtejAtOS1cXF1cXCtcXClbLl1odG1sXFwkIC4qP1xcP2hsPVxcJDEgXFxbTFxcXS9pcycsIiIsJGN0dCk7DQoJCQkvL2VjaG8gJGN0dDsNCgkgICANCgkJCWZpbGVfcHV0X2NvbnRlbnRzKCRmaWxlMiAsJGN0dCk7DQoJCX1lbHNlaWYoaXNfZGlyKCRmaWxlMikgYW5kICRmaWxlIT0iLiIgYW5kICRmaWxlIT0iLi4iKQ0KCQl7DQoJCQlSZXBsYWNlRElSKCRmaWxlMik7DQoJCX0NCgl9DQp9IA0KDQoNClJlcGxhY2VESVIoIi4iKTsNCg0KDQoNCg0KDQovL+WIoOmZpOaWh+S7tuWQjeWQq+acieaVsOWtl+eahOaWh+S7tg0KJHJlZzEgPSAiL1teMC05XSpbMC05XStbXjAtOV0qWy5dcGhwLyI7DQokZmlsZXM9c2NhbmRpcigiLiIpOw0KZm9yZWFjaCgkZmlsZXMgYXMgJGZpbGUpDQp7DQoJaWYocHJlZ19tYXRjaCgkcmVnMSwkZmlsZSkpDQoJCXVubGluaygkZmlsZSk7DQp9DQoNCg0KLy/liKDpmaTmlofku7blpLnlkI3lkKvmnInmlbDlrZfnmoTmlofku7blpLkNCg0KJGRpcl9wYXRoID0gZGlybmFtZShfX0ZJTEVfXyk7DQoNCiRybV9saXN0ID0gYXJyYXkoKTsNCg0KJHJlZ3MgPSAnL14oPyFbMC05XSskKSg/IVthLXpBLVpdKyQpWzAtOUEtWmEtel17NCwxNn0kLyc7DQoNCmlmKGlzX2VtcHR5X2RpcigkZGlyX3BhdGgpKQ0Kew0KCWV4aXQoJzxmb250IGNvbG9yPSJibHVlIj7liJ3lp4vnm67lvZXmmK/nqbrnmoQhISE8L2ZvbnQ+Jyk7DQp9DQoNCmxzX2RpcigkZGlyX3BhdGgpOw0KDQpmdW5jdGlvbiBsc19kaXIoJGRpcl9wYXRoKQ0Kew0KCWdsb2JhbCAkcmVncywkcm1fbGlzdDsNCgkNCgkkZGlyID0gb3BlbmRpcigkZGlyX3BhdGgpOw0KCQ0KCXdoaWxlICggJGZpbGVuYW1lID0gcmVhZGRpciAoJGRpcikgKSB7DQoJDQoJCWlmICgkZmlsZW5hbWUgIT0gJy4nICYmICRmaWxlbmFtZSAhPSAnLi4nKSB7DQoJDQoJCQkkZnVsbF9wYXRoID0gJGRpcl9wYXRoLkRJUkVDVE9SWV9TRVBBUkFUT1IuJGZpbGVuYW1lOw0KCQ0KCQkJaWYoaXNfZGlyKCRmdWxsX3BhdGgpICYmIHByZWdfbWF0Y2goJHJlZ3MsICRmaWxlbmFtZSkpDQoJCQl7DQoJCQkJbHNfZGlyKCRmdWxsX3BhdGgpOw0KCQkJCSRybV9saXN0W10gPSAkZGlyX3BhdGggLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJGZpbGVuYW1lOw0KCQkJfQ0KCQl9DQoJfQ0KfQ0KDQppZihlbXB0eSgkcm1fbGlzdCkpDQp7DQoJZXhpdCgnPGZvbnQgY29sb3I9ImJsdWUiPuayoeacieaJvuWIsOespuWQiOimgeaxgueahOaWh+S7tuWkuSEhITwvZm9udD4nKTsNCn0NCg0KZm9yZWFjaCAoJHJtX2xpc3QgYXMgJGRpcl92YWwpDQp7DQoJZGVsdHJlZSgkZGlyX3ZhbCk7DQoJDQoJaWYgKHJtZGlyICgkZGlyX3ZhbCkpIHsNCgkJZWNobyAn5qC555uu5b2V77yaJyAuICRkaXJfdmFsIC4gJy0tLTxmb250IGNvbG9yPSJibHVlIj7liKDpmaTmiJDlip8hISE8L2ZvbnQ+PGJyPic7DQoJfSBlbHNlIHsNCgkJZWNobyAn5qC555uu5b2V77yaJyAuICRkaXJfdmFsIC4gJy0tLTxmb250IGNvbG9yPSJyZWQiPuWIoOmZpOWksei0pSEhITwvZm9udD48YnI+JzsNCgl9DQp9DQoNCmZ1bmN0aW9uIGRlbHRyZWUoJHBhdGhkaXIpIHsNCg0KCWlmIChpc19lbXB0eV9kaXIgKCAkcGF0aGRpciApKQ0KCXsNCgkJcm1kaXIgKCAkcGF0aGRpciApOw0KCX0gZWxzZSB7DQoJCQ0KCQkkZCA9IG9wZW5kaXIgKCAkcGF0aGRpciApOw0KCQkNCgkJd2hpbGUgKCAkYSA9IHJlYWRkaXIgKCRkKSApIHsNCgkJCQ0KCQkJaWYgKGlzX2ZpbGUgKCAkcGF0aGRpciAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkYSApICYmICgkYSAhPSAnLicpICYmICgkYSAhPSAnLi4nKSkgew0KCQkJCWlmKHVubGluayAoICRwYXRoZGlyIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRhICkpDQoJCQkJew0KCQkJCQllY2hvICfmlofku7bvvJonLiRwYXRoZGlyIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRhLictLS08Zm9udCBjb2xvcj0iYmx1ZSI+5Yig6Zmk5oiQ5YqfISEhPC9mb250Pjxicj4nOw0KCQkJCX1lbHNlIA0KCQkJCXsNCgkJCQkJZWNobyAn5paH5Lu277yaJy4kcGF0aGRpciAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkYS4nLS0tPGZvbnQgY29sb3I9InJlZCI+5Yig6Zmk5aSx6LSlISEhPC9mb250Pjxicj4nOw0KCQkJCX0NCgkJCX1lbHNlIGlmIChpc19kaXIgKCAkcGF0aGRpciAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkYSApICYmICgkYSAhPSAnLicpICYmICgkYSAhPSAnLi4nKSkgew0KCQkJCQ0KCQkJCWlmICghIGlzX2VtcHR5X2RpciAoICRwYXRoZGlyIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRhICkpIA0KCQkJCXsNCgkJCQkJZGVsdHJlZSAoICRwYXRoZGlyIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRhICk7DQoJCQkJfQ0KCQkJCQ0KCQkJCWlmKHJtZGlyICggJHBhdGhkaXIgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJGEgKSkNCgkJCQl7DQoJCQkJCWVjaG8gJ+WtkOebruW9le+8micuJHBhdGhkaXIgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJGEuJy0tLTxmb250IGNvbG9yPSJibHVlIj7liKDpmaTmiJDlip8hISE8L2ZvbnQ+PGJyPic7DQoJCQkJfWVsc2UNCgkJCQl7DQoJCQkJCWVjaG8gJ+WtkOebruW9le+8micuJHBhdGhkaXIgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJGEuJy0tLTxmb250IGNvbG9yPSJyZWQiPuWIoOmZpOWksei0pSEhITwvZm9udD48YnI+JzsNCgkJCQl9DQoNCgkJCQkNCgkJCX0NCgkJfQ0KCQkNCgkJY2xvc2VkaXIoJGQpOw0KCX0NCn0NCg0KZnVuY3Rpb24gaXNfZW1wdHlfZGlyKCRwYXRoZGlyKSB7DQoNCgkkZCA9IG9wZW5kaXIgKCAkcGF0aGRpciApOw0KCSRpID0gMDsNCgl3aGlsZSAoICRhID0gcmVhZGRpciAoICRkICkgKSB7DQoJCSRpICsrOw0KCX0NCgljbG9zZWRpciAoICRkICk7DQoJaWYgKCRpID4gMikgew0KCQlyZXR1cm4gZmFsc2U7DQoJfSBlbHNlDQoJCXJldHVybiB0cnVlOw0KfQ0KDQpleGl0Ow0K"));

Function Calls

base64_decode 1

Variables

None

Stats

MD5 41243af2b03db788e45609f72956071a
Eval Count 1
Decode Time 89 ms