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 /* WARNING: This script is protected. Any attempt to reverse engineer, debug or dec..

Decoded Output download

 $codelock_active_key="jvcwebmanual"; @extract($_REQUEST); error_reporting(E_ALL ^ E_NOTICE); if ($codelock_act >= 1) { } else { @set_time_limit(240); } if ($codelock_enc == "") { $codelock_enc="codelock.php"; } else {} if ($codelock_act >= 1) {         $codelock_testsize=@filesize($codelock_filed/$codelock_enc);         if($codelock_testsize != $codelock_mastersize){         @chmod("$codelock_filed/$codelock_enc", 0777);         if (@copy ("$codelock_rfiled/$codelock_enc","$codelock_filed/$codelock_enc")){}else{             $codelock_fp2 = @fopen("$codelock_filed/$codelock_enc", "wb");             if ($codelock_fp2) { } else { @unlink($codelock_filed/$codelock_enc); $codelock_fp2 = @fopen("$codelock_filed/$codelock_enc", "wb"); }             if ($codelock_fp2) {             @fwrite($codelock_fp2, $codelock_masterdata);             @fclose($codelock_fp2);             }         }         @chmod("$codelock_enc", 0777); } } else {} $codelock_encbrowser=""; $codelock_usezlib=""; $codelock_scname=""; $codelock_coname=""; $codelock_extranotes=""; if (!function_exists('gzdeflate') AND $codelock_usezlib=="^") {     echo"<font face='verdana' size='2'><br /><b>Error!</b> You need to install the ZLIB module for PHP to run this script!</font>";     die(); } else {}  if (function_exists('codelock_enc_int')) { } else { function codelock_enc_int($codelock_enc_int_code,$codelock_enc_key) { $codelock_encint_code=base64_encode($codelock_enc_int_code);  if ($codelock_enc_key == "") { } else { $codelock_enc_key=base64_encode($codelock_enc_key); $codelock_k1=substr($codelock_enc_key,0,1); $codelock_k2=substr($codelock_enc_key,1,1); $codelock_k3=substr($codelock_enc_key,2,1); $codelock_encint_code=str_replace("$codelock_k1", "$", $codelock_encint_code); $codelock_encint_code=str_replace("$codelock_k2", "(", $codelock_encint_code); $codelock_encint_code=str_replace("$codelock_k3", ")", $codelock_encint_code); } return $codelock_encint_code; } }  if (function_exists('codelock_dec_int')) { } else { function codelock_dec_int($codelock_decint_code,$codelock_calc_key) {  if ($codelock_calc_key == "") { } else { $codelock_calc_key=base64_encode($codelock_calc_key); $codelock_k1=substr($codelock_calc_key,0,1); $codelock_k2=substr($codelock_calc_key,1,1); $codelock_k3=substr($codelock_calc_key,2,1); $codelock_decint_code=str_replace("$", "$codelock_k1", $codelock_decint_code); $codelock_decint_code=str_replace("(", "$codelock_k2", $codelock_decint_code); $codelock_decint_code=str_replace(")", "$codelock_k3", $codelock_decint_code); } $codelock_decint_code=base64_decode($codelock_decint_code);  return $codelock_decint_code; } } if (function_exists('codelock_dec')) { } else { function codelock_dec($codelock_v){ switch($codelock_v){ case "A":$dv=0;break; case "B":$dv=1;break; case "C":$dv=2;break; case "D":$dv=3;break; case "E":$dv=4;break; case "F":$dv=5;break; case "G":$dv=6;break; case "H":$dv=7;break; case "I":$dv=8;break; case "J":$dv=9;break; case "K":$dv=10;break; case "L":$dv=11;break; case "M":$dv=12;break; case "N":$dv=13;break; case "O":$dv=14;break; case "P":$dv=15;break; case "Q":$dv=16;break; case "R":$dv=17;break; case "S":$dv=18;break; case "T":$dv=19;break; case "U":$dv=20;break; case "V":$dv=21;break; case "W":$dv=22;break; case "X":$dv=23;break; case "Y":$dv=24;break; case "Z":$dv=25;break; case "a":$dv=26;break; case "b":$dv=27;break; case "c":$dv=28;break; case "d":$dv=29;break; case "e":$dv=30;break; case "f":$dv=31;break; case "g":$dv=32;break; case "h":$dv=33;break; case "i":$dv=34;break; case "j":$dv=35;break; case "k":$dv=36;break; case "l":$dv=37;break; case "m":$dv=38;break; case "n":$dv=39;break; case "o":$dv=40;break; case "p":$dv=41;break; case "q":$dv=42;break; case "r":$dv=43;break; case "s":$dv=44;break; case "t":$dv=45;break; case "u":$dv=46;break; case "v":$dv=47;break; case "w":$dv=48;break; case "x":$dv=49;break; case "y":$dv=50;break; case "z":$dv=51;break; case "0":$dv=52;break; case "1":$dv=53;break; case "2":$dv=54;break; case "3":$dv=55;break; case "4":$dv=56;break; case "5":$dv=57;break; case "6":$dv=58;break; case "7":$dv=59;break; case "8":$dv=60;break; case "9":$dv=61;break; case "+":$dv=62;break; case "/":$dv=63;break; case "=":$dv=64;break; default: $dv=0;break; } return $dv; } } if (function_exists('codelock_run')) { } else { function codelock_run($ciph,$key){ $m=0; $abc=""; for($i=0;$i<strlen($ciph);$i++){ $c=substr($ciph,$i,1); $dv=codelock_dec($c); $dv=($dv-$m)/4; $fb=decbin($dv); while(strlen($fb)<4){ $fb="0".$fb; } $abc=$abc.$fb; $m++; if($m>3){ $m=0; } } $kl=0; $pd=""; for($j=0;$j<strlen($abc);$j=$j+8){ $c=substr($abc,$j,8); $k=substr($key,$kl,1); $dc=bindec($c); $dc=$dc - strlen($key); $c=chr($dc); $kl++; if($kl>=strlen($key)){ $kl=0; } $dc=ord($c)^ord($k); $p=chr($dc); $pd=$pd.$p; } return $pd; } }  if (substr($codelock_active_key, 0, 15) != "codelock_active") {     if ($codelock_enc == "") { $codelock_enc="codelock.php"; } else {}         if($codelock_fixpath==""){             $codelock_located_file_temp=$codelock_filed."/".$codelock_enc;         }else{             $codelock_located_file_temp=$codelock_fixpath."/".$codelock_enc;         }     $codelock_fp3 = @fopen("$codelock_located_file_temp", "rb");     $codelock_skip = @fgets($codelock_fp3, 8192);     $codelock_skip2 = @fgets($codelock_fp3, 8192);     $codelock_skip3 = @fgets($codelock_fp3, 65536);     $codelock_key_data = @fread($codelock_fp3, @filesize("$codelock_located_file_temp"));     @fclose ($codelock_fp3);     if ($codelock_usezlib == "^") {     $codelock_key_data=base64_decode($codelock_key_data);     $codelock_key_data=gzinflate($codelock_key_data);     } else {}     $codelock_key_data=codelock_dec_int($codelock_key_data,$codelock_active_key);     eval($codelock_key_data);     if ($codelock_act >= 1) {     } else {     return;     } } else {      $codelock_askforkey="n";     if($codelock_askforkey == "y") {     } else {     $codelock_unlock="jvcwebmanual";     $codelock_sub="y";     }       if ($codelock_enc == "") { $codelock_enc="codelock.php"; } else {}         if($codelock_fixpath==""){         $codelock_openthisfile2=$codelock_filed."/".$codelock_enc;         }else{         $codelock_openthisfile2=$codelock_fixpath."/".$codelock_enc;         }         if($codelock_sub == "y") {         $codelock_fp = @fopen("$codelock_openthisfile2", "rb");         $codelock_skip = @fgets($codelock_fp, 8192);         $codelock_skip2 = @fgets($codelock_fp, 8192);         $codelock_skip3 = @fgets($codelock_fp, 65536);         $codelock_key_data = @fread($codelock_fp, @filesize("$codelock_openthisfile2"));         @fclose ($codelock_fp);             if ($codelock_usezlib == "^") {             $codelock_key_data=base64_decode($codelock_key_data);             $codelock_key_data=gzinflate($codelock_key_data);             } else {}         $codelock_exec=codelock_run($codelock_key_data,$codelock_unlock);         if (preg_match("/codelock_decrypted/i", $codelock_exec)) {              if ($codelock_usezlib == "^") {             $codelock_codeii=$codelock_lock;             for ($codelock_ii=0; $codelock_ii < 11; $codelock_ii++) {             $codelock_codeii=gzinflate(base64_decode($codelock_codeii));             $codelock_codeii=str_replace("eval(gzinf"."late(base64_de"."code('", "", $codelock_codeii);             $codelock_codeii=str_replace("')));", "", $codelock_codeii);             }             $codelock_lock=$codelock_codeii;             } else {             $codelock_lock=base64_decode($codelock_lock);             }              $codelock_skip3=$codelock_lock;             $codelock_skip3=str_replace("codelock_ac"."tive_key_text", $codelock_unlock, $codelock_skip3);             $pres_codelock_skip3=$codelock_skip3;                  if ($codelock_usezlib == "^") {             $codelock_codeii=$codelock_skip3;             $codelock_codeii=gzdeflate($codelock_codeii); $codelock_codeii=base64_encode($codelock_codeii);             for ($codelock_ii=0; $codelock_ii < 10; $codelock_ii++) {             $codelock_codeii="eval(gzinflate(base64_decode('".$codelock_codeii."')));";             $codelock_codeii=gzdeflate($codelock_codeii); $codelock_codeii=base64_encode($codelock_codeii);             }             $codelock_skip3=$codelock_codeii;             } else {             $codelock_skip3=base64_encode($codelock_skip3);             }          $codelock_nskip3=$codelock_skip3;         $codelock_nnskip3="";         if ($codelock_exp == "") { } else { $codelock_nnskip3.="$"."codelock_exp=\"$codelock_exp\"; "; }              if ($codelock_usezlib == "^") {             $codelock_nnnskip3="if ("."$"."codelock_file == '') { echo \"<font face='verdana' size='2'><br /><b>Error!</b> You cannot run codelock directly...</font>\"; die(); } else {} ".$codelock_nnskip3."$"."codelock_lock=\"$codelock_nskip3\"; eval(gzinflate(base64_decode("."$"."codelock_lock))); return; ?".chr(62).chr(13).chr(10);             } else {             $codelock_nnnskip3="if ("."$"."codelock_file == '') { echo \"<font face='verdana' size='2'><br /><b>Error!</b> You cannot run codelock directly...</font>\"; die(); } else {} ".$codelock_nnskip3."$"."codelock_lock=\"$codelock_nskip3\"; eval(base64_decode("."$"."codelock_lock)); return; ?".chr(62).chr(13).chr(10);             }         $codelock_exec2=codelock_enc_int($codelock_exec,$codelock_unlock);          if ($codelock_usezlib == "^") {             $codelock_exec2=gzdeflate($codelock_exec2);             $codelock_exec2=base64_encode($codelock_exec2);             } else {}         $codelock_fdata=$codelock_skip.$codelock_skip2.'$codelock_rfiled=dirname(__FILE__); '.$codelock_nnnskip3.$codelock_exec2;         $codelock_masterdata=$codelock_fdata;         @chmod("$codelock_enc", 0777);         $codelock_fp2 = @fopen("$codelock_enc", "wb");         if ($codelock_fp2) { } else { echo "<br /><b>Error!</b> There is a write permission problem.  You need to CHMOD the file: <b>$codelock_enc</b> to 777."; die(); }         @fwrite($codelock_fp2, $codelock_fdata);         @fclose ($codelock_fp2);         @chmod("$codelock_enc", 0777);         $codelock_mastersize=@filesize($codelock_enc);         ob_start(); phpinfo(INFO_GENERAL); $codelock_op_string = ob_get_contents();         ob_end_clean(); if (strstr($codelock_op_string, "indows")) { $codelock_w_op="y"; } else {}         if ($codelock_w_op == "y") { $codelock_sep_str=";"; } else { $codelock_sep_str=":"; }         $include_curr_dir=$codelock_filed;         $include_dir_write=@ini_get('include_path'); $include_dir_write=$include_dir_write.$codelock_sep_str.$include_curr_dir;         @ini_set('include_path', $include_dir_write);         eval($codelock_exec);         } else {}         } else {}  if ($codelock_act >= 1) {     return;     } else {         echo"



























";         echo"<br /><table width=\"600\" border=\"1\" cellspacing=\"10\" cellpadding=\"10\" bgcolor=\"#E1EAFF\" bordercolor=\"#006699\"><tr><td>";     if($codelock_frun == ""){     $codelock_openthisfile=$codelock_file;     }else{     $codelock_openthisfile='http://'.$_SERVER['HTTP_HOST']."/".$codelock_frun."/".$codelock_file;     }         echo"<form method=\"post\" action=\"$codelock_openthisfile\"><div align=\"center\">";             if ($codelock_scname == "") {             echo "<font face=\"arial\" color=\"#006699\" size=\"4\"><b>This script is protected</b></font><br /><br />";             } else {             echo "<font face=\"arial\" color=\"#006699\" size=\"4\"><b>$codelock_scname is protected</b></font><br /><br />";             }         if ($codelock_sub == "y") {         echo "<font face=\"arial\" color=\"#cc0000\" size=\"4\"><b>error </b></font><font face=\"arial\" color=\"#006699\" size=\"2\"><b>wrong unlock key</b></font><br /><br />";         } else {}         echo"<font face=\"Arial\" size=\"2\">Please enter your unlock key to proceed:</font><br /><input type=\"text\" name=\"codelock_unlock\" size=\"32\" maxlength=\"64\">";         echo"<input type=\"hidden\" name=\"codelock_sub\" value=\"y\">";         echo"<input type=\"hidden\" name=\"codelock_encbrowser\" value=\"$codelock_encbrowser\">";         echo"<input type=\"hidden\" name=\"codelock_enc\" value=\"$codelock_enc\">";         echo"<br /><br /><input type=\"submit\" name=\"Submit\" value=\"Unlock Now >>>\">";         if ($codelock_coname == "") { } else {          echo "<br /><br /><font face=\"arial\" color=\"#000000\" size=\"2\">This software is licensed to: $codelock_coname</font>";         }         if ($codelock_extranotes == "") {} else {         echo "<br /><font face=\"arial\" color=\"#000000\" size=\"2\"><b>Note: </b>$codelock_extranotes</font>";             }         echo"</div></form></td></tr></table>";     } } return;

Did this file decode correctly?

Original Code

<?PHP
/* WARNING: This script is protected. Any attempt to reverse engineer, debug or decode this file or its dependent files is strictly prohibited */
$codelock_rfiled=dirname(__FILE__); if ($codelock_file == '') { echo "<font face='verdana' size='2'><br /><b>Error!</b> You cannot run codelock directly...</font>"; die(); } else {} $codelock_lock="ICRjb2RlbG9ja19hY3RpdmVfa2V5PSJqdmN3ZWJtYW51YWwiOyBAZXh0cmFjdCgkX1JFUVVFU1QpOyBlcnJvcl9yZXBvcnRpbmcoRV9BTEwgXiBFX05PVElDRSk7IGlmICgkY29kZWxvY2tfYWN0ID49IDEpIHsgfSBlbHNlIHsgQHNldF90aW1lX2xpbWl0KDI0MCk7IH0gaWYgKCRjb2RlbG9ja19lbmMgPT0gIiIpIHsgJGNvZGVsb2NrX2VuYz0iY29kZWxvY2sucGhwIjsgfSBlbHNlIHt9IGlmICgkY29kZWxvY2tfYWN0ID49IDEpIHsgICAgICAgICAkY29kZWxvY2tfdGVzdHNpemU9QGZpbGVzaXplKCRjb2RlbG9ja19maWxlZC8kY29kZWxvY2tfZW5jKTsgICAgICAgICBpZigkY29kZWxvY2tfdGVzdHNpemUgIT0gJGNvZGVsb2NrX21hc3RlcnNpemUpeyAgICAgICAgIEBjaG1vZCgiJGNvZGVsb2NrX2ZpbGVkLyRjb2RlbG9ja19lbmMiLCAwNzc3KTsgICAgICAgICBpZiAoQGNvcHkgKCIkY29kZWxvY2tfcmZpbGVkLyRjb2RlbG9ja19lbmMiLCIkY29kZWxvY2tfZmlsZWQvJGNvZGVsb2NrX2VuYyIpKXt9ZWxzZXsgICAgICAgICAgICAgJGNvZGVsb2NrX2ZwMiA9IEBmb3BlbigiJGNvZGVsb2NrX2ZpbGVkLyRjb2RlbG9ja19lbmMiLCAid2IiKTsgICAgICAgICAgICAgaWYgKCRjb2RlbG9ja19mcDIpIHsgfSBlbHNlIHsgQHVubGluaygkY29kZWxvY2tfZmlsZWQvJGNvZGVsb2NrX2VuYyk7ICRjb2RlbG9ja19mcDIgPSBAZm9wZW4oIiRjb2RlbG9ja19maWxlZC8kY29kZWxvY2tfZW5jIiwgIndiIik7IH0gICAgICAgICAgICAgaWYgKCRjb2RlbG9ja19mcDIpIHsgICAgICAgICAgICAgQGZ3cml0ZSgkY29kZWxvY2tfZnAyLCAkY29kZWxvY2tfbWFzdGVyZGF0YSk7ICAgICAgICAgICAgIEBmY2xvc2UoJGNvZGVsb2NrX2ZwMik7ICAgICAgICAgICAgIH0gICAgICAgICB9ICAgICAgICAgQGNobW9kKCIkY29kZWxvY2tfZW5jIiwgMDc3Nyk7IH0gfSBlbHNlIHt9ICRjb2RlbG9ja19lbmNicm93c2VyPSIiOyAkY29kZWxvY2tfdXNlemxpYj0iIjsgJGNvZGVsb2NrX3NjbmFtZT0iIjsgJGNvZGVsb2NrX2NvbmFtZT0iIjsgJGNvZGVsb2NrX2V4dHJhbm90ZXM9IiI7IGlmICghZnVuY3Rpb25fZXhpc3RzKCdnemRlZmxhdGUnKSBBTkQgJGNvZGVsb2NrX3VzZXpsaWI9PSJeIikgeyAgICAgZWNobyI8Zm9udCBmYWNlPSd2ZXJkYW5hJyBzaXplPScyJz48YnIgLz48Yj5FcnJvciE8L2I+IFlvdSBuZWVkIHRvIGluc3RhbGwgdGhlIFpMSUIgbW9kdWxlIGZvciBQSFAgdG8gcnVuIHRoaXMgc2NyaXB0ITwvZm9udD4iOyAgICAgZGllKCk7IH0gZWxzZSB7fSAgaWYgKGZ1bmN0aW9uX2V4aXN0cygnY29kZWxvY2tfZW5jX2ludCcpKSB7IH0gZWxzZSB7IGZ1bmN0aW9uIGNvZGVsb2NrX2VuY19pbnQoJGNvZGVsb2NrX2VuY19pbnRfY29kZSwkY29kZWxvY2tfZW5jX2tleSkgeyAkY29kZWxvY2tfZW5jaW50X2NvZGU9YmFzZTY0X2VuY29kZSgkY29kZWxvY2tfZW5jX2ludF9jb2RlKTsgIGlmICgkY29kZWxvY2tfZW5jX2tleSA9PSAiIikgeyB9IGVsc2UgeyAkY29kZWxvY2tfZW5jX2tleT1iYXNlNjRfZW5jb2RlKCRjb2RlbG9ja19lbmNfa2V5KTsgJGNvZGVsb2NrX2sxPXN1YnN0cigkY29kZWxvY2tfZW5jX2tleSwwLDEpOyAkY29kZWxvY2tfazI9c3Vic3RyKCRjb2RlbG9ja19lbmNfa2V5LDEsMSk7ICRjb2RlbG9ja19rMz1zdWJzdHIoJGNvZGVsb2NrX2VuY19rZXksMiwxKTsgJGNvZGVsb2NrX2VuY2ludF9jb2RlPXN0cl9yZXBsYWNlKCIkY29kZWxvY2tfazEiLCAiJCIsICRjb2RlbG9ja19lbmNpbnRfY29kZSk7ICRjb2RlbG9ja19lbmNpbnRfY29kZT1zdHJfcmVwbGFjZSgiJGNvZGVsb2NrX2syIiwgIigiLCAkY29kZWxvY2tfZW5jaW50X2NvZGUpOyAkY29kZWxvY2tfZW5jaW50X2NvZGU9c3RyX3JlcGxhY2UoIiRjb2RlbG9ja19rMyIsICIpIiwgJGNvZGVsb2NrX2VuY2ludF9jb2RlKTsgfSByZXR1cm4gJGNvZGVsb2NrX2VuY2ludF9jb2RlOyB9IH0gIGlmIChmdW5jdGlvbl9leGlzdHMoJ2NvZGVsb2NrX2RlY19pbnQnKSkgeyB9IGVsc2UgeyBmdW5jdGlvbiBjb2RlbG9ja19kZWNfaW50KCRjb2RlbG9ja19kZWNpbnRfY29kZSwkY29kZWxvY2tfY2FsY19rZXkpIHsgIGlmICgkY29kZWxvY2tfY2FsY19rZXkgPT0gIiIpIHsgfSBlbHNlIHsgJGNvZGVsb2NrX2NhbGNfa2V5PWJhc2U2NF9lbmNvZGUoJGNvZGVsb2NrX2NhbGNfa2V5KTsgJGNvZGVsb2NrX2sxPXN1YnN0cigkY29kZWxvY2tfY2FsY19rZXksMCwxKTsgJGNvZGVsb2NrX2syPXN1YnN0cigkY29kZWxvY2tfY2FsY19rZXksMSwxKTsgJGNvZGVsb2NrX2szPXN1YnN0cigkY29kZWxvY2tfY2FsY19rZXksMiwxKTsgJGNvZGVsb2NrX2RlY2ludF9jb2RlPXN0cl9yZXBsYWNlKCIkIiwgIiRjb2RlbG9ja19rMSIsICRjb2RlbG9ja19kZWNpbnRfY29kZSk7ICRjb2RlbG9ja19kZWNpbnRfY29kZT1zdHJfcmVwbGFjZSgiKCIsICIkY29kZWxvY2tfazIiLCAkY29kZWxvY2tfZGVjaW50X2NvZGUpOyAkY29kZWxvY2tfZGVjaW50X2NvZGU9c3RyX3JlcGxhY2UoIikiLCAiJGNvZGVsb2NrX2szIiwgJGNvZGVsb2NrX2RlY2ludF9jb2RlKTsgfSAkY29kZWxvY2tfZGVjaW50X2NvZGU9YmFzZTY0X2RlY29kZSgkY29kZWxvY2tfZGVjaW50X2NvZGUpOyAgcmV0dXJuICRjb2RlbG9ja19kZWNpbnRfY29kZTsgfSB9IGlmIChmdW5jdGlvbl9leGlzdHMoJ2NvZGVsb2NrX2RlYycpKSB7IH0gZWxzZSB7IGZ1bmN0aW9uIGNvZGVsb2NrX2RlYygkY29kZWxvY2tfdil7IHN3aXRjaCgkY29kZWxvY2tfdil7IGNhc2UgIkEiOiRkdj0wO2JyZWFrOyBjYXNlICJCIjokZHY9MTticmVhazsgY2FzZSAiQyI6JGR2PTI7YnJlYWs7IGNhc2UgIkQiOiRkdj0zO2JyZWFrOyBjYXNlICJFIjokZHY9NDticmVhazsgY2FzZSAiRiI6JGR2PTU7YnJlYWs7IGNhc2UgIkciOiRkdj02O2JyZWFrOyBjYXNlICJIIjokZHY9NzticmVhazsgY2FzZSAiSSI6JGR2PTg7YnJlYWs7IGNhc2UgIkoiOiRkdj05O2JyZWFrOyBjYXNlICJLIjokZHY9MTA7YnJlYWs7IGNhc2UgIkwiOiRkdj0xMTticmVhazsgY2FzZSAiTSI6JGR2PTEyO2JyZWFrOyBjYXNlICJOIjokZHY9MTM7YnJlYWs7IGNhc2UgIk8iOiRkdj0xNDticmVhazsgY2FzZSAiUCI6JGR2PTE1O2JyZWFrOyBjYXNlICJRIjokZHY9MTY7YnJlYWs7IGNhc2UgIlIiOiRkdj0xNzticmVhazsgY2FzZSAiUyI6JGR2PTE4O2JyZWFrOyBjYXNlICJUIjokZHY9MTk7YnJlYWs7IGNhc2UgIlUiOiRkdj0yMDticmVhazsgY2FzZSAiViI6JGR2PTIxO2JyZWFrOyBjYXNlICJXIjokZHY9MjI7YnJlYWs7IGNhc2UgIlgiOiRkdj0yMzticmVhazsgY2FzZSAiWSI6JGR2PTI0O2JyZWFrOyBjYXNlICJaIjokZHY9MjU7YnJlYWs7IGNhc2UgImEiOiRkdj0yNjticmVhazsgY2FzZSAiYiI6JGR2PTI3O2JyZWFrOyBjYXNlICJjIjokZHY9Mjg7YnJlYWs7IGNhc2UgImQiOiRkdj0yOTticmVhazsgY2FzZSAiZSI6JGR2PTMwO2JyZWFrOyBjYXNlICJmIjokZHY9MzE7YnJlYWs7IGNhc2UgImciOiRkdj0zMjticmVhazsgY2FzZSAiaCI6JGR2PTMzO2JyZWFrOyBjYXNlICJpIjokZHY9MzQ7YnJlYWs7IGNhc2UgImoiOiRkdj0zNTticmVhazsgY2FzZSAiayI6JGR2PTM2O2JyZWFrOyBjYXNlICJsIjokZHY9Mzc7YnJlYWs7IGNhc2UgIm0iOiRkdj0zODticmVhazsgY2FzZSAibiI6JGR2PTM5O2JyZWFrOyBjYXNlICJvIjokZHY9NDA7YnJlYWs7IGNhc2UgInAiOiRkdj00MTticmVhazsgY2FzZSAicSI6JGR2PTQyO2JyZWFrOyBjYXNlICJyIjokZHY9NDM7YnJlYWs7IGNhc2UgInMiOiRkdj00NDticmVhazsgY2FzZSAidCI6JGR2PTQ1O2JyZWFrOyBjYXNlICJ1IjokZHY9NDY7YnJlYWs7IGNhc2UgInYiOiRkdj00NzticmVhazsgY2FzZSAidyI6JGR2PTQ4O2JyZWFrOyBjYXNlICJ4IjokZHY9NDk7YnJlYWs7IGNhc2UgInkiOiRkdj01MDticmVhazsgY2FzZSAieiI6JGR2PTUxO2JyZWFrOyBjYXNlICIwIjokZHY9NTI7YnJlYWs7IGNhc2UgIjEiOiRkdj01MzticmVhazsgY2FzZSAiMiI6JGR2PTU0O2JyZWFrOyBjYXNlICIzIjokZHY9NTU7YnJlYWs7IGNhc2UgIjQiOiRkdj01NjticmVhazsgY2FzZSAiNSI6JGR2PTU3O2JyZWFrOyBjYXNlICI2IjokZHY9NTg7YnJlYWs7IGNhc2UgIjciOiRkdj01OTticmVhazsgY2FzZSAiOCI6JGR2PTYwO2JyZWFrOyBjYXNlICI5IjokZHY9NjE7YnJlYWs7IGNhc2UgIisiOiRkdj02MjticmVhazsgY2FzZSAiLyI6JGR2PTYzO2JyZWFrOyBjYXNlICI9IjokZHY9NjQ7YnJlYWs7IGRlZmF1bHQ6ICRkdj0wO2JyZWFrOyB9IHJldHVybiAkZHY7IH0gfSBpZiAoZnVuY3Rpb25fZXhpc3RzKCdjb2RlbG9ja19ydW4nKSkgeyB9IGVsc2UgeyBmdW5jdGlvbiBjb2RlbG9ja19ydW4oJGNpcGgsJGtleSl7ICRtPTA7ICRhYmM9IiI7IGZvcigkaT0wOyRpPHN0cmxlbigkY2lwaCk7JGkrKyl7ICRjPXN1YnN0cigkY2lwaCwkaSwxKTsgJGR2PWNvZGVsb2NrX2RlYygkYyk7ICRkdj0oJGR2LSRtKS80OyAkZmI9ZGVjYmluKCRkdik7IHdoaWxlKHN0cmxlbigkZmIpPDQpeyAkZmI9IjAiLiRmYjsgfSAkYWJjPSRhYmMuJGZiOyAkbSsrOyBpZigkbT4zKXsgJG09MDsgfSB9ICRrbD0wOyAkcGQ9IiI7IGZvcigkaj0wOyRqPHN0cmxlbigkYWJjKTskaj0kais4KXsgJGM9c3Vic3RyKCRhYmMsJGosOCk7ICRrPXN1YnN0cigka2V5LCRrbCwxKTsgJGRjPWJpbmRlYygkYyk7ICRkYz0kZGMgLSBzdHJsZW4oJGtleSk7ICRjPWNocigkZGMpOyAka2wrKzsgaWYoJGtsPj1zdHJsZW4oJGtleSkpeyAka2w9MDsgfSAkZGM9b3JkKCRjKV5vcmQoJGspOyAkcD1jaHIoJGRjKTsgJHBkPSRwZC4kcDsgfSByZXR1cm4gJHBkOyB9IH0gIGlmIChzdWJzdHIoJGNvZGVsb2NrX2FjdGl2ZV9rZXksIDAsIDE1KSAhPSAiY29kZWxvY2tfYWN0aXZlIikgeyAgICAgaWYgKCRjb2RlbG9ja19lbmMgPT0gIiIpIHsgJGNvZGVsb2NrX2VuYz0iY29kZWxvY2sucGhwIjsgfSBlbHNlIHt9ICAgICAgICAgaWYoJGNvZGVsb2NrX2ZpeHBhdGg9PSIiKXsgICAgICAgICAgICAgJGNvZGVsb2NrX2xvY2F0ZWRfZmlsZV90ZW1wPSRjb2RlbG9ja19maWxlZC4iLyIuJGNvZGVsb2NrX2VuYzsgICAgICAgICB9ZWxzZXsgICAgICAgICAgICAgJGNvZGVsb2NrX2xvY2F0ZWRfZmlsZV90ZW1wPSRjb2RlbG9ja19maXhwYXRoLiIvIi4kY29kZWxvY2tfZW5jOyAgICAgICAgIH0gICAgICRjb2RlbG9ja19mcDMgPSBAZm9wZW4oIiRjb2RlbG9ja19sb2NhdGVkX2ZpbGVfdGVtcCIsICJyYiIpOyAgICAgJGNvZGVsb2NrX3NraXAgPSBAZmdldHMoJGNvZGVsb2NrX2ZwMywgODE5Mik7ICAgICAkY29kZWxvY2tfc2tpcDIgPSBAZmdldHMoJGNvZGVsb2NrX2ZwMywgODE5Mik7ICAgICAkY29kZWxvY2tfc2tpcDMgPSBAZmdldHMoJGNvZGVsb2NrX2ZwMywgNjU1MzYpOyAgICAgJGNvZGVsb2NrX2tleV9kYXRhID0gQGZyZWFkKCRjb2RlbG9ja19mcDMsIEBmaWxlc2l6ZSgiJGNvZGVsb2NrX2xvY2F0ZWRfZmlsZV90ZW1wIikpOyAgICAgQGZjbG9zZSAoJGNvZGVsb2NrX2ZwMyk7ICAgICBpZiAoJGNvZGVsb2NrX3VzZXpsaWIgPT0gIl4iKSB7ICAgICAkY29kZWxvY2tfa2V5X2RhdGE9YmFzZTY0X2RlY29kZSgkY29kZWxvY2tfa2V5X2RhdGEpOyAgICAgJGNvZGVsb2NrX2tleV9kYXRhPWd6aW5mbGF0ZSgkY29kZWxvY2tfa2V5X2RhdGEpOyAgICAgfSBlbHNlIHt9ICAgICAkY29kZWxvY2tfa2V5X2RhdGE9Y29kZWxvY2tfZGVjX2ludCgkY29kZWxvY2tfa2V5X2RhdGEsJGNvZGVsb2NrX2FjdGl2ZV9rZXkpOyAgICAgZXZhbCgkY29kZWxvY2tfa2V5X2RhdGEpOyAgICAgaWYgKCRjb2RlbG9ja19hY3QgPj0gMSkgeyAgICAgfSBlbHNlIHsgICAgIHJldHVybjsgICAgIH0gfSBlbHNlIHsgICAgICAkY29kZWxvY2tfYXNrZm9ya2V5PSJuIjsgICAgIGlmKCRjb2RlbG9ja19hc2tmb3JrZXkgPT0gInkiKSB7ICAgICB9IGVsc2UgeyAgICAgJGNvZGVsb2NrX3VubG9jaz0ianZjd2VibWFudWFsIjsgICAgICRjb2RlbG9ja19zdWI9InkiOyAgICAgfSAgICAgICBpZiAoJGNvZGVsb2NrX2VuYyA9PSAiIikgeyAkY29kZWxvY2tfZW5jPSJjb2RlbG9jay5waHAiOyB9IGVsc2Uge30gICAgICAgICBpZigkY29kZWxvY2tfZml4cGF0aD09IiIpeyAgICAgICAgICRjb2RlbG9ja19vcGVudGhpc2ZpbGUyPSRjb2RlbG9ja19maWxlZC4iLyIuJGNvZGVsb2NrX2VuYzsgICAgICAgICB9ZWxzZXsgICAgICAgICAkY29kZWxvY2tfb3BlbnRoaXNmaWxlMj0kY29kZWxvY2tfZml4cGF0aC4iLyIuJGNvZGVsb2NrX2VuYzsgICAgICAgICB9ICAgICAgICAgaWYoJGNvZGVsb2NrX3N1YiA9PSAieSIpIHsgICAgICAgICAkY29kZWxvY2tfZnAgPSBAZm9wZW4oIiRjb2RlbG9ja19vcGVudGhpc2ZpbGUyIiwgInJiIik7ICAgICAgICAgJGNvZGVsb2NrX3NraXAgPSBAZmdldHMoJGNvZGVsb2NrX2ZwLCA4MTkyKTsgICAgICAgICAkY29kZWxvY2tfc2tpcDIgPSBAZmdldHMoJGNvZGVsb2NrX2ZwLCA4MTkyKTsgICAgICAgICAkY29kZWxvY2tfc2tpcDMgPSBAZmdldHMoJGNvZGVsb2NrX2ZwLCA2NTUzNik7ICAgICAgICAgJGNvZGVsb2NrX2tleV9kYXRhID0gQGZyZWFkKCRjb2RlbG9ja19mcCwgQGZpbGVzaXplKCIkY29kZWxvY2tfb3BlbnRoaXNmaWxlMiIpKTsgICAgICAgICBAZmNsb3NlICgkY29kZWxvY2tfZnApOyAgICAgICAgICAgICBpZiAoJGNvZGVsb2NrX3VzZXpsaWIgPT0gIl4iKSB7ICAgICAgICAgICAgICRjb2RlbG9ja19rZXlfZGF0YT1iYXNlNjRfZGVjb2RlKCRjb2RlbG9ja19rZXlfZGF0YSk7ICAgICAgICAgICAgICRjb2RlbG9ja19rZXlfZGF0YT1nemluZmxhdGUoJGNvZGVsb2NrX2tleV9kYXRhKTsgICAgICAgICAgICAgfSBlbHNlIHt9ICAgICAgICAgJGNvZGVsb2NrX2V4ZWM9Y29kZWxvY2tfcnVuKCRjb2RlbG9ja19rZXlfZGF0YSwkY29kZWxvY2tfdW5sb2NrKTsgICAgICAgICBpZiAocHJlZ19tYXRjaCgiL2NvZGVsb2NrX2RlY3J5cHRlZC9pIiwgJGNvZGVsb2NrX2V4ZWMpKSB7ICAgICAgICAgICAgICBpZiAoJGNvZGVsb2NrX3VzZXpsaWIgPT0gIl4iKSB7ICAgICAgICAgICAgICRjb2RlbG9ja19jb2RlaWk9JGNvZGVsb2NrX2xvY2s7ICAgICAgICAgICAgIGZvciAoJGNvZGVsb2NrX2lpPTA7ICRjb2RlbG9ja19paSA8IDExOyAkY29kZWxvY2tfaWkrKykgeyAgICAgICAgICAgICAkY29kZWxvY2tfY29kZWlpPWd6aW5mbGF0ZShiYXNlNjRfZGVjb2RlKCRjb2RlbG9ja19jb2RlaWkpKTsgICAgICAgICAgICAgJGNvZGVsb2NrX2NvZGVpaT1zdHJfcmVwbGFjZSgiZXZhbChnemluZiIuImxhdGUoYmFzZTY0X2RlIi4iY29kZSgnIiwgIiIsICRjb2RlbG9ja19jb2RlaWkpOyAgICAgICAgICAgICAkY29kZWxvY2tfY29kZWlpPXN0cl9yZXBsYWNlKCInKSkpOyIsICIiLCAkY29kZWxvY2tfY29kZWlpKTsgICAgICAgICAgICAgfSAgICAgICAgICAgICAkY29kZWxvY2tfbG9jaz0kY29kZWxvY2tfY29kZWlpOyAgICAgICAgICAgICB9IGVsc2UgeyAgICAgICAgICAgICAkY29kZWxvY2tfbG9jaz1iYXNlNjRfZGVjb2RlKCRjb2RlbG9ja19sb2NrKTsgICAgICAgICAgICAgfSAgICAgICAgICAgICAgJGNvZGVsb2NrX3NraXAzPSRjb2RlbG9ja19sb2NrOyAgICAgICAgICAgICAkY29kZWxvY2tfc2tpcDM9c3RyX3JlcGxhY2UoImNvZGVsb2NrX2FjIi4idGl2ZV9rZXlfdGV4dCIsICRjb2RlbG9ja191bmxvY2ssICRjb2RlbG9ja19za2lwMyk7ICAgICAgICAgICAgICRwcmVzX2NvZGVsb2NrX3NraXAzPSRjb2RlbG9ja19za2lwMzsgICAgICAgICAgICAgICAgICBpZiAoJGNvZGVsb2NrX3VzZXpsaWIgPT0gIl4iKSB7ICAgICAgICAgICAgICRjb2RlbG9ja19jb2RlaWk9JGNvZGVsb2NrX3NraXAzOyAgICAgICAgICAgICAkY29kZWxvY2tfY29kZWlpPWd6ZGVmbGF0ZSgkY29kZWxvY2tfY29kZWlpKTsgJGNvZGVsb2NrX2NvZGVpaT1iYXNlNjRfZW5jb2RlKCRjb2RlbG9ja19jb2RlaWkpOyAgICAgICAgICAgICBmb3IgKCRjb2RlbG9ja19paT0wOyAkY29kZWxvY2tfaWkgPCAxMDsgJGNvZGVsb2NrX2lpKyspIHsgICAgICAgICAgICAgJGNvZGVsb2NrX2NvZGVpaT0iZXZhbChnemluZmxhdGUoYmFzZTY0X2RlY29kZSgnIi4kY29kZWxvY2tfY29kZWlpLiInKSkpOyI7ICAgICAgICAgICAgICRjb2RlbG9ja19jb2RlaWk9Z3pkZWZsYXRlKCRjb2RlbG9ja19jb2RlaWkpOyAkY29kZWxvY2tfY29kZWlpPWJhc2U2NF9lbmNvZGUoJGNvZGVsb2NrX2NvZGVpaSk7ICAgICAgICAgICAgIH0gICAgICAgICAgICAgJGNvZGVsb2NrX3NraXAzPSRjb2RlbG9ja19jb2RlaWk7ICAgICAgICAgICAgIH0gZWxzZSB7ICAgICAgICAgICAgICRjb2RlbG9ja19za2lwMz1iYXNlNjRfZW5jb2RlKCRjb2RlbG9ja19za2lwMyk7ICAgICAgICAgICAgIH0gICAgICAgICAgJGNvZGVsb2NrX25za2lwMz0kY29kZWxvY2tfc2tpcDM7ICAgICAgICAgJGNvZGVsb2NrX25uc2tpcDM9IiI7ICAgICAgICAgaWYgKCRjb2RlbG9ja19leHAgPT0gIiIpIHsgfSBlbHNlIHsgJGNvZGVsb2NrX25uc2tpcDMuPSIkIi4iY29kZWxvY2tfZXhwPVwiJGNvZGVsb2NrX2V4cFwiOyAiOyB9ICAgICAgICAgICAgICBpZiAoJGNvZGVsb2NrX3VzZXpsaWIgPT0gIl4iKSB7ICAgICAgICAgICAgICRjb2RlbG9ja19ubm5za2lwMz0iaWYgKCIuIiQiLiJjb2RlbG9ja19maWxlID09ICcnKSB7IGVjaG8gXCI8Zm9udCBmYWNlPSd2ZXJkYW5hJyBzaXplPScyJz48YnIgLz48Yj5FcnJvciE8L2I+IFlvdSBjYW5ub3QgcnVuIGNvZGVsb2NrIGRpcmVjdGx5Li4uPC9mb250PlwiOyBkaWUoKTsgfSBlbHNlIHt9ICIuJGNvZGVsb2NrX25uc2tpcDMuIiQiLiJjb2RlbG9ja19sb2NrPVwiJGNvZGVsb2NrX25za2lwM1wiOyBldmFsKGd6aW5mbGF0ZShiYXNlNjRfZGVjb2RlKCIuIiQiLiJjb2RlbG9ja19sb2NrKSkpOyByZXR1cm47ID8iLmNocig2MikuY2hyKDEzKS5jaHIoMTApOyAgICAgICAgICAgICB9IGVsc2UgeyAgICAgICAgICAgICAkY29kZWxvY2tfbm5uc2tpcDM9ImlmICgiLiIkIi4iY29kZWxvY2tfZmlsZSA9PSAnJykgeyBlY2hvIFwiPGZvbnQgZmFjZT0ndmVyZGFuYScgc2l6ZT0nMic+PGJyIC8+PGI+RXJyb3IhPC9iPiBZb3UgY2Fubm90IHJ1biBjb2RlbG9jayBkaXJlY3RseS4uLjwvZm9udD5cIjsgZGllKCk7IH0gZWxzZSB7fSAiLiRjb2RlbG9ja19ubnNraXAzLiIkIi4iY29kZWxvY2tfbG9jaz1cIiRjb2RlbG9ja19uc2tpcDNcIjsgZXZhbChiYXNlNjRfZGVjb2RlKCIuIiQiLiJjb2RlbG9ja19sb2NrKSk7IHJldHVybjsgPyIuY2hyKDYyKS5jaHIoMTMpLmNocigxMCk7ICAgICAgICAgICAgIH0gICAgICAgICAkY29kZWxvY2tfZXhlYzI9Y29kZWxvY2tfZW5jX2ludCgkY29kZWxvY2tfZXhlYywkY29kZWxvY2tfdW5sb2NrKTsgICAgICAgICAgaWYgKCRjb2RlbG9ja191c2V6bGliID09ICJeIikgeyAgICAgICAgICAgICAkY29kZWxvY2tfZXhlYzI9Z3pkZWZsYXRlKCRjb2RlbG9ja19leGVjMik7ICAgICAgICAgICAgICRjb2RlbG9ja19leGVjMj1iYXNlNjRfZW5jb2RlKCRjb2RlbG9ja19leGVjMik7ICAgICAgICAgICAgIH0gZWxzZSB7fSAgICAgICAgICRjb2RlbG9ja19mZGF0YT0kY29kZWxvY2tfc2tpcC4kY29kZWxvY2tfc2tpcDIuJyRjb2RlbG9ja19yZmlsZWQ9ZGlybmFtZShfX0ZJTEVfXyk7ICcuJGNvZGVsb2NrX25ubnNraXAzLiRjb2RlbG9ja19leGVjMjsgICAgICAgICAkY29kZWxvY2tfbWFzdGVyZGF0YT0kY29kZWxvY2tfZmRhdGE7ICAgICAgICAgQGNobW9kKCIkY29kZWxvY2tfZW5jIiwgMDc3Nyk7ICAgICAgICAgJGNvZGVsb2NrX2ZwMiA9IEBmb3BlbigiJGNvZGVsb2NrX2VuYyIsICJ3YiIpOyAgICAgICAgIGlmICgkY29kZWxvY2tfZnAyKSB7IH0gZWxzZSB7IGVjaG8gIjxiciAvPjxiPkVycm9yITwvYj4gVGhlcmUgaXMgYSB3cml0ZSBwZXJtaXNzaW9uIHByb2JsZW0uICBZb3UgbmVlZCB0byBDSE1PRCB0aGUgZmlsZTogPGI+JGNvZGVsb2NrX2VuYzwvYj4gdG8gNzc3LiI7IGRpZSgpOyB9ICAgICAgICAgQGZ3cml0ZSgkY29kZWxvY2tfZnAyLCAkY29kZWxvY2tfZmRhdGEpOyAgICAgICAgIEBmY2xvc2UgKCRjb2RlbG9ja19mcDIpOyAgICAgICAgIEBjaG1vZCgiJGNvZGVsb2NrX2VuYyIsIDA3NzcpOyAgICAgICAgICRjb2RlbG9ja19tYXN0ZXJzaXplPUBmaWxlc2l6ZSgkY29kZWxvY2tfZW5jKTsgICAgICAgICBvYl9zdGFydCgpOyBwaHBpbmZvKElORk9fR0VORVJBTCk7ICRjb2RlbG9ja19vcF9zdHJpbmcgPSBvYl9nZXRfY29udGVudHMoKTsgICAgICAgICBvYl9lbmRfY2xlYW4oKTsgaWYgKHN0cnN0cigkY29kZWxvY2tfb3Bfc3RyaW5nLCAiaW5kb3dzIikpIHsgJGNvZGVsb2NrX3dfb3A9InkiOyB9IGVsc2Uge30gICAgICAgICBpZiAoJGNvZGVsb2NrX3dfb3AgPT0gInkiKSB7ICRjb2RlbG9ja19zZXBfc3RyPSI7IjsgfSBlbHNlIHsgJGNvZGVsb2NrX3NlcF9zdHI9IjoiOyB9ICAgICAgICAgJGluY2x1ZGVfY3Vycl9kaXI9JGNvZGVsb2NrX2ZpbGVkOyAgICAgICAgICRpbmNsdWRlX2Rpcl93cml0ZT1AaW5pX2dldCgnaW5jbHVkZV9wYXRoJyk7ICRpbmNsdWRlX2Rpcl93cml0ZT0kaW5jbHVkZV9kaXJfd3JpdGUuJGNvZGVsb2NrX3NlcF9zdHIuJGluY2x1ZGVfY3Vycl9kaXI7ICAgICAgICAgQGluaV9zZXQoJ2luY2x1ZGVfcGF0aCcsICRpbmNsdWRlX2Rpcl93cml0ZSk7ICAgICAgICAgZXZhbCgkY29kZWxvY2tfZXhlYyk7ICAgICAgICAgfSBlbHNlIHt9ICAgICAgICAgfSBlbHNlIHt9ICBpZiAoJGNvZGVsb2NrX2FjdCA+PSAxKSB7ICAgICByZXR1cm47ICAgICB9IGVsc2UgeyAgICAgICAgIGVjaG8iCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCiI7ICAgICAgICAgZWNobyI8YnIgLz48dGFibGUgd2lkdGg9XCI2MDBcIiBib3JkZXI9XCIxXCIgY2VsbHNwYWNpbmc9XCIxMFwiIGNlbGxwYWRkaW5nPVwiMTBcIiBiZ2NvbG9yPVwiI0UxRUFGRlwiIGJvcmRlcmNvbG9yPVwiIzAwNjY5OVwiPjx0cj48dGQ+IjsgICAgIGlmKCRjb2RlbG9ja19mcnVuID09ICIiKXsgICAgICRjb2RlbG9ja19vcGVudGhpc2ZpbGU9JGNvZGVsb2NrX2ZpbGU7ICAgICB9ZWxzZXsgICAgICRjb2RlbG9ja19vcGVudGhpc2ZpbGU9J2h0dHA6Ly8nLiRfU0VSVkVSWydIVFRQX0hPU1QnXS4iLyIuJGNvZGVsb2NrX2ZydW4uIi8iLiRjb2RlbG9ja19maWxlOyAgICAgfSAgICAgICAgIGVjaG8iPGZvcm0gbWV0aG9kPVwicG9zdFwiIGFjdGlvbj1cIiRjb2RlbG9ja19vcGVudGhpc2ZpbGVcIj48ZGl2IGFsaWduPVwiY2VudGVyXCI+IjsgICAgICAgICAgICAgaWYgKCRjb2RlbG9ja19zY25hbWUgPT0gIiIpIHsgICAgICAgICAgICAgZWNobyAiPGZvbnQgZmFjZT1cImFyaWFsXCIgY29sb3I9XCIjMDA2Njk5XCIgc2l6ZT1cIjRcIj48Yj5UaGlzIHNjcmlwdCBpcyBwcm90ZWN0ZWQ8L2I+PC9mb250PjxiciAvPjxiciAvPiI7ICAgICAgICAgICAgIH0gZWxzZSB7ICAgICAgICAgICAgIGVjaG8gIjxmb250IGZhY2U9XCJhcmlhbFwiIGNvbG9yPVwiIzAwNjY5OVwiIHNpemU9XCI0XCI+PGI+JGNvZGVsb2NrX3NjbmFtZSBpcyBwcm90ZWN0ZWQ8L2I+PC9mb250PjxiciAvPjxiciAvPiI7ICAgICAgICAgICAgIH0gICAgICAgICBpZiAoJGNvZGVsb2NrX3N1YiA9PSAieSIpIHsgICAgICAgICBlY2hvICI8Zm9udCBmYWNlPVwiYXJpYWxcIiBjb2xvcj1cIiNjYzAwMDBcIiBzaXplPVwiNFwiPjxiPmVycm9yIDwvYj48L2ZvbnQ+PGZvbnQgZmFjZT1cImFyaWFsXCIgY29sb3I9XCIjMDA2Njk5XCIgc2l6ZT1cIjJcIj48Yj53cm9uZyB1bmxvY2sga2V5PC9iPjwvZm9udD48YnIgLz48YnIgLz4iOyAgICAgICAgIH0gZWxzZSB7fSAgICAgICAgIGVjaG8iPGZvbnQgZmFjZT1cIkFyaWFsXCIgc2l6ZT1cIjJcIj5QbGVhc2UgZW50ZXIgeW91ciB1bmxvY2sga2V5IHRvIHByb2NlZWQ6PC9mb250PjxiciAvPjxpbnB1dCB0eXBlPVwidGV4dFwiIG5hbWU9XCJjb2RlbG9ja191bmxvY2tcIiBzaXplPVwiMzJcIiBtYXhsZW5ndGg9XCI2NFwiPiI7ICAgICAgICAgZWNobyI8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJjb2RlbG9ja19zdWJcIiB2YWx1ZT1cInlcIj4iOyAgICAgICAgIGVjaG8iPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwiY29kZWxvY2tfZW5jYnJvd3NlclwiIHZhbHVlPVwiJGNvZGVsb2NrX2VuY2Jyb3dzZXJcIj4iOyAgICAgICAgIGVjaG8iPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwiY29kZWxvY2tfZW5jXCIgdmFsdWU9XCIkY29kZWxvY2tfZW5jXCI+IjsgICAgICAgICBlY2hvIjxiciAvPjxiciAvPjxpbnB1dCB0eXBlPVwic3VibWl0XCIgbmFtZT1cIlN1Ym1pdFwiIHZhbHVlPVwiVW5sb2NrIE5vdyA+Pj5cIj4iOyAgICAgICAgIGlmICgkY29kZWxvY2tfY29uYW1lID09ICIiKSB7IH0gZWxzZSB7ICAgICAgICAgIGVjaG8gIjxiciAvPjxiciAvPjxmb250IGZhY2U9XCJhcmlhbFwiIGNvbG9yPVwiIzAwMDAwMFwiIHNpemU9XCIyXCI+VGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB0bzogJGNvZGVsb2NrX2NvbmFtZTwvZm9udD4iOyAgICAgICAgIH0gICAgICAgICBpZiAoJGNvZGVsb2NrX2V4dHJhbm90ZXMgPT0gIiIpIHt9IGVsc2UgeyAgICAgICAgIGVjaG8gIjxiciAvPjxmb250IGZhY2U9XCJhcmlhbFwiIGNvbG9yPVwiIzAwMDAwMFwiIHNpemU9XCIyXCI+PGI+Tm90ZTogPC9iPiRjb2RlbG9ja19leHRyYW5vdGVzPC9mb250PiI7ICAgICAgICAgICAgIH0gICAgICAgICBlY2hvIjwvZGl2PjwvZm9ybT48L3RkPjwvdHI+PC90YWJsZT4iOyAgICAgfSB9IHJldHVybjs="; eval(base64_decode($codelock_lock)); return; ?>
JGNv)GVsb2NrX2V4cGlyeV9t)XNzYWdlPSJWR2hwY3lCelkzS(BjSFF(YUdGeklHVjRjR2x5WldR$CI7IGVycm9yX3JlcG9ydGlu)yhFX0FMTCBeIEVfTk9USUNFKTsNCmV4dHJhY3QoJF9QT1NUKTsNCiRjb2RlbG9j$19k)WNyeXB0)WQ9IiI7DQokY29k)WxvY2tfYWN0$X)lX2V4cGlyeT0iY29k)WxvY2tfYWN0$X)lX2V4cGlyeV90)Xh0IjsNCmlmICgkY29k)WxvY2tf$XAgPT0gIiIpIHsgfSBlbHNlIHsgJGNv)GVsb2NrX2lwPWNv)GVsb2NrX2RlY19pb(QoJGNv)GVsb2NrX2lwLCIiKTsgfQ0KJGNv)GVsb2NrX2V4cD1jb2RlbG9j$19k)WNf$W50KCRjb2RlbG9j$19leHAsIiIpOw0KDQpp)iAoJGNv)GVsb2NrX2V4cCA9PSAiMCIgb3IgJGNv)GVsb2NrX2V4cCA9PSAiIikgew0KfSBlbHNlIHsNCiAgICAkY29k)WxvY2tf)Xhw$XJ5X21lc3Nh)2U9Y29k)WxvY2tf)GVjX2ludCgkY29k)WxvY2tf)Xhw$XJ5X21lc3Nh)2UsIiIpOw0KICAgICRjb2RlbG9j$19leHBpc(lfbWVzc2F()T1zdHJpcHNsYXNo)XMoJGNv)GVsb2NrX2V4cGlyeV9t)XNzYWdlKTsNCiAgICAkY29k)WxvY2tfdG9kYXk9)GF0)SgiWW1kIix0$W1lKCkpOw0KICAgIGlmICggc3Vic3RyKCRjb2RlbG9j$19leHAsIDgsIDEpID09ICIqIikgew0KICAgICRjb2RlbG9j$19keT1zdWJzdHIoJGNv)GVsb2NrX2V4cCwgNiwgMik7DQogICAgJGNv)GVsb2NrX21uPXN1Y(N0cigkY29k)WxvY2tf)XhwLCA0LCAyKTsNCiAgICAkY29k)WxvY2tfeXI9c3Vic3RyKCRjb2RlbG9j$19leHAsIDAsIDQpOw0KICAgICRjb2RlbG9j$190b2RheV9h)GQ9c3Ry)(RpbWUoIiV)JW0l)CIsIG1rdGlt)SgwLDAsMCwkY29k)WxvY2tfbW4sJGNv)GVsb2NrX2R5LCRjb2RlbG9j$195cikpOw0KICAgIH0g)Wxz)SB7DQogICAgJGNv)GVsb2NrX2R5PXN1Y(N0cigkY29k)WxvY2tfdG9kYXksIDYsIDIpOw0KICAgICRjb2RlbG9j$19tbj1zdWJzdHIoJGNv)GVsb2NrX3Rv)GF5LCA0LCAyKTsNCiAgICAkY29k)WxvY2tfeXI9c3Vic3RyKCRjb2RlbG9j$190b2RheSwgMCwgNCk7DQogICAgJGNv)GVsb2NrX3Rv)GF5X2Fk)D1zdHJmdGlt)SgiJVklbSVkIiwgbWt0$W1lKDAsMCwwLCRjb2RlbG9j$19tbiwkY29k)WxvY2tf)HkrJGNv)GVsb2NrX2V4cCwkY29k)WxvY2tfeXIpKTsNCiAgICB9DQogICAgJGNv)GVsb2NrX3Rv)GF5X3dy$XRlPWJhc2U2NF9lbmNv)GUoJGNv)GVsb2NrX3Rv)GF5X2Fk)Ck7DQogICAg$WYgKHN1Y(N0cigkY29k)WxvY2tfYWN0$X)lX2V4cGlyeSwgMCwgOCkgPT0gImNv)GVsb2NrIiBBTkQgc3Vic3RyKCRjb2RlbG9j$19leHAsIDgsIDEpICE9ICIqIikgew0KJGNv)GVsb2NrX2V4)WM9c3RyX3JlcGxhY2UoImNv)GVsb2NrX2FjdGkiLiJ2)V9leHBpc(lfdGV4dCIsIiRjb2RlbG9j$190b2RheV93cml0)SIsJGNv)GVsb2NrX2V4)WMpOw0KDQogICAgJGNv)GVsb2NrX2V4)WMyPWNv)GVsb2NrX2VuY19pb(QoJGNv)GVsb2NrX2V4)WMsJGNv)GVsb2NrX3VubG9j$yk7DQoNCmlmICgkY29k)WxvY2tfdXNlemxpYiA9PSAiXiIpIHsNCiRjb2RlbG9j$19leGVjMj1(emRl)mxhdGUoJGNv)GVsb2NrX2V4)WMyKTsNCiRjb2RlbG9j$19leGVjMj1iYXNlNjRf)W5jb2RlKCRjb2RlbG9j$19leGVjMik7DQp9IGVsc2Uge30NCg0KJGNv)GVsb2NrX3Nr$XAzPSRwcmVzX2Nv)GVsb2NrX3Nr$XAzOw0K$WYgKCRjb2RlbG9j$191c2V6bGliID09ICJeIikgew0KICAgICRjb2RlbG9j$19jb2Rl$Wk9JGNv)GVsb2NrX3Nr$XAzOw0KICAgICRjb2RlbG9j$19jb2Rl$Wk9)3pk)W)sYXRlKCRjb2RlbG9j$19jb2Rl$WkpOyAkY29k)WxvY2tfY29k)WlpPWJhc2U2NF9lbmNv)GUoJGNv)GVsb2NrX2Nv)GVp$Sk7DQogICAg)m9yICgkY29k)WxvY2tf$Wk9MDsgJGNv)GVsb2NrX2lpIDwgMTA7ICRjb2RlbG9j$19p$SsrKSB7DQogICAgJGNv)GVsb2NrX2Nv)GVp$T0i)X)hbCh(emlu)mxhdGUoYmFz)TY0X2RlY29k)Sg(Ii4kY29k)WxvY2tfY29k)WlpLiI(KSkpOyI7DQogICAgJGNv)GVsb2NrX2Nv)GVp$T1(emRl)mxhdGUoJGNv)GVsb2NrX2Nv)GVp$Sk7ICRjb2RlbG9j$19jb2Rl$Wk9YmFz)TY0X2VuY29k)SgkY29k)WxvY2tfY29k)WlpKTsNCiAgICB9DQogICAgJGNv)GVsb2NrX3Nr$XAzPSRjb2RlbG9j$19jb2Rl$Wk7DQogICAgfSBlbHNlIHsNCiAgICAkY29k)WxvY2tfc2tpcDM9YmFz)TY0X2VuY29k)SgkY29k)WxvY2tfc2tpcDMpOw0KICAgIH0NCg0KICAgICRjb2RlbG9j$19uc2tpcDM9JGNv)GVsb2NrX3Nr$XAzOw0K$WYgKCRjb2RlbG9j$191c2V6bGliID09ICJeIikgew0KICAgICRjb2RlbG9j$19ubm5z$2lwMz0i$WYgKCIuIiQiLiJjb2RlbG9j$19m$WxlID09ICc(KSB7IGVj$G8gXCI8)m9udCBmYWNlPSd2)XJkYW5hJyBz$XplPScyJz48Y(IgLz48Yj5Fc(JvciE8L2I+IFlvdSBjYW5ub3Qgc(VuIGNv)GVsb2NrIGRpcmVjdGx5Li4uPC9mb250PlwiOyBk$WUoKTsgfSBlbHNlIHt9ICIuJGNv)GVsb2NrX25uc2tpcDMuIiQiLiJjb2RlbG9j$19sb2NrPVwiJGNv)GVsb2NrX25z$2lwM1wiOyBldmFsKGd6$W5mbGF0)ShiYXNlNjRf)GVjb2RlKCIuIiQiLiJjb2RlbG9j$19sb2NrKSkpOyBy)XR1cm47ID8iLmNocig2MikuY2hyKDEzKS5j$HIoMTApOw0KICAgIH0g)Wxz)SB7DQogICAgJGNv)GVsb2NrX25ub(Nr$XAzPSJp)iAoIi4iJCIuImNv)GVsb2NrX2)pbGUgPT0gJycpIHsg)WNobyBcIjxmb250IG)hY2U9J3)lcmRhbmE(IHNpemU9JzI(PjxiciAvPjxiPkVycm9yITwvYj4gWW91IGNhbm5vdCBydW4gY29k)WxvY2sg)Gly)WN0bHkuLi48L2)vb(Q+XCI7IGRp)SgpOyB9IGVsc2Uge30gIi4kY29k)WxvY2tfbm5z$2lwMy4iJCIuImNv)GVsb2NrX2xvY2s9XCIkY29k)WxvY2tfb(Nr$XAzXCI7IGV2YWwoYmFz)TY0X2RlY29k)SgiLiIkIi4iY29k)WxvY2tfbG9j$ykpOyBy)XR1cm47ID8iLmNocig2MikuY2hyKDEzKS5j$HIoMTApOw0KICAgIH0NCiAgICAkY29k)WxvY2tf)mRhdGE9JGNv)GVsb2NrX3Nr$XAuJGNv)GVsb2NrX3Nr$XAyLiRjb2RlbG9j$19ubm5z$2lwMy4kY29k)WxvY2tf)XhlYzI7DQogICAgQGNobW9kKCIkY29k)WxvY2tf)W5jIiwgMDc3Nyk7DQogICAgJGNv)GVsb2NrX2)wMiA9IEBmb3BlbigiJGNv)GVsb2NrX2VuYyIsICJ3YiIpOw0KICAgIGlmICgkY29k)WxvY2tf)(AyKSB7IH0g)Wxz)SB7IGVj$G8gIjxiciAvPjxiPkVycm9yITwvYj4gVGhlcmUg$XMgYSB3cml0)SBw)XJt$XNz$W9uIHByb2Js)W0uICB)b3UgbmVl)CB0byBDSE1PRCB0$GUg)mls)TogPGI+JGNv)GVsb2NrX2VuYzwvYj4gdG8gNzc1LiI7IGRp)SgpOyB9DQogICAgQG)3cml0)SgkY29k)WxvY2tf)(AyLCAkY29k)WxvY2tf)mRhdGEpOw0KICAgIEBmY2xvc2UgKCRjb2RlbG9j$19mcDIpOw0KICAgIEBj$G1v)CgiJGNv)GVsb2NrX2VuYyIsIDA3NzcpOw0KICAgIH0g)Wxz)SB7DQogICAg$WYgKHN1Y(N0cigkY29k)WxvY2tf)XhwLCA4LCAxKSA9PSAiKiIpIHsNCiAgICAkY29k)WxvY2tfYWN0$X)lX2V4cGlyeT1zdWJzdHIoJGNv)GVsb2NrX2V4cCwgMCwgOCk7DQogICAgfSBlbHNlIHsgJGNv)GVsb2NrX2FjdGl2)V9leHBpc(k9Y29k)WxvY2tf)GVjX2ludCgkY29k)WxvY2tfYWN0$X)lX2V4cGlyeSwiIik7IH0NCiAgICB9DQogICAg$WYgKCRjb2RlbG9j$19hY3RpdmVf)Xhw$XJ5IDw9ICRjb2RlbG9j$190b2RheSkgew0KICAgIGVj$G8gIjxiciAvPjxiciAvPiIuJGNv)GVsb2NrX2V4cGlyeV9t)XNzYWdlOw0KICAgIGVj$G8gIjxiciAvPkV4cGlyeSBkYXRlOiAiLiRjb2RlbG9j$19hY3RpdmVf)Xhw$XJ5Ow0KICAgIGRp)SgpOw0KICAgIH0g)Wxz)SB7fQ0KfQ0KDQpp)iAoJGNv)GVsb2NrX2lwID09ICIiKSB7DQp9IGVsc2Ugew0KICAgICRjb2RlbG9j$19pcD1zdHJfcmVwbGFj)Sgi$HR0Ii4icDovLyIsICIiLCAkY29k)WxvY2tf$XApOw0KICAgICRjb2RlbG9j$19j$GVj$19pcD0kSFRUUF9TRVJWRVJfVkFSU1siU0VSVkVSX0FERFIiXTsNCiAgICAkY29k)WxvY2tf$G9zdD0kSFRUUF9TRVJWRVJfVkFSU1siU0VSVkVSX05BTUUiXTsNCiAgICBp)igkY29k)WxvY2tfY2hlY2tf$XA9PSIiKSB7ICRjb2RlbG9j$19j$GVj$19pcD0kX1NFUl)FUlsiU0VSVkVSX0FERFIiXTsgfQ0KICAgIGlmKCRjb2RlbG9j$19ob3N0PT0iIikgeyAkY29k)WxvY2tf$G9zdD0kX1NFUl)FUlsiU0VSVkVSX05BTUUiXTsgfQ0KICAgICRjb2RlbG9j$19pcD1zdHJfcmVwbGFj)SgiICIsICIiLCAkY29k)WxvY2tf$XApOw0KICAgICRjb2RlbG9j$19tYXg9c3Vic3RyX2NvdW50KCRjb2RlbG9j$19pcCwgIiwiKTsNCiAgICAkY29k)WxvY2tfY29tcF9pcD1leHBsb2RlKCIsIiwkY29k)WxvY2tf$XApOw0KICAgIG)vcigkY29k)WxvY2tf$T0wOyRjb2RlbG9j$19pPCgkY29k)WxvY2tfbWF4KzEpOyRjb2RlbG9j$19pKyspew0KICAgICAgICBp)iAocHJl)19tYXRj$CgiLyRjb2RlbG9j$19jb21wX2lwWyRjb2RlbG9j$19pXS9pIiwgJGNv)GVsb2NrX2No)WNrX2lwKSkgeyAkY29k)WxvY2tf)j0ieSI7IH0g)Wxz)SB7fQ0KICAgICAgICBp)iAocHJl)19tYXRj$CgiLyRjb2RlbG9j$19jb21wX2lwWyRjb2RlbG9j$19pXS9pIiwgJGNv)GVsb2NrX2hvc3QpKSB7ICRjb2RlbG9j$19mPSJ5IjsgfSBlbHNlIHt9DQogICAgfQ0KICAgIGlmICgkY29k)WxvY2tf)iA9PSAieSIpIHsgfSBlbHNlIHsgDQogICAg)WNobyAiPG)vb(Qg)mFj)T1cI()lcmRhbmFcIiBz$XplPVwiMlwiPjxiciAvPjxiPkVycm9yITwvYj4gWW91ciBJUCBB)GRy)XNzIG9yIEhvc3RuYW1lIGRv)XMgbm90IG1hdGNoIHRo)SBy)XF1$XJl)CBJUDwv)m9udD48Y(IgLz48Y(IgLz4iOw0KICAgIGVj$G8gIlRo$XMgc2Ny$XB0IGlzIHJlc3Ry$WN0)WQgdG8gdGhlIElQIG9yIFVSTDogIjsg)m9yKCRjb2RlbG9j$19pPTA7JGNv)GVsb2NrX2k8KCRjb2RlbG9j$19tYXgrMSk7JGNv)GVsb2NrX2krKyl7IGVj$G8iJGNv)GVsb2NrX2NvbXBf$XBbJGNv)GVsb2NrX2ldLCAiOyB9IGVj$G8iPGJyIC8+PGJyIC8+WW91ciBJUDogJGNv)GVsb2NrX2No)WNrX2lwIGhvc3Q6ICRjb2RlbG9j$19ob3N0IjsNCiAgICBk$WUoKTsgfQ0KfQ0KDQpp)iAoJGNv)GVsb2NrX2FjdGl2)V9r)XkgPT0gImNv)GVsb2NrX2FjdGl2)V9r)XlfdGV4dCIpIHsgJGNv)GVsb2NrX2FjdGl2)V9r)Xk9JGNv)GVsb2NrX3VubG9j$zsgfSBlbHNlIHt9DQoNCiRjb2RlbG9j$19hY3Rfc3Vi)GlyPSRjb2RlbG9j$19m$Wxl)DsNCg0KJGNv)GVsb2NrX25ld2Nv)GU9IiI7DQokY29k)WxvY2tf$HRtbD0iIjsNCiRjb2RlbG9j$19odG1sX25ldz0iIjsNCkB1bmxpbmsoJGNv)GVsb2NrX3RtcG)uYW1lKTsgDQokY29k)WxvY2tfY3dkdGVtcD1()XRjd2QoKTsNCiRjb2RlbG9j$19hY3Rfc3Vi)GlyPSRjb2RlbG9j$19m$Wxl)DsNCg0KLy8gVGhpcyBjYXVz)XMg$W5jbHVk)SBwcm9ibGVtcy4uLg0KI0Bj$GRpcigkY29k)WxvY2tfYWN0X3N1YmRpcik7DQoNCiRjb2RlbG9j$19hY3Q9JGNv)GVsb2NrX2FjdCsxOw0KDQpvYl9zdGFydCgpOyBw$HBpbm)vKElORk9fR0VORVJBTCk7ICRjb2RlbG9j$19vcF9zdHJpbmcgPSBvYl9()XRfY29udGVudHMoKTsNCm9iX2Vu)F9jbGVhbigpOyBp)iAoc3Ryc3RyKCRjb2RlbG9j$19vcF9zdHJpbmcsICJpbmRvd3MiKSkgeyAkY29k)WxvY2tfd19vcD0ieSI7IH0gDQpp)iAoJGNv)GVsb2NrX3dfb3AgPT0gI(kiKSB7ICRjb2RlbG9j$19z)XBfc3RyPSI7IjsgfSBlbHNlIHsgJGNv)GVsb2NrX3NlcF9zdHI9IjoiOyB9DQok$W5jbHVk)V9jdXJyX2Rpcj0kY29k)WxvY2tf)mls)WQ7DQok$W5jbHVk)V9k$XJfd3JpdGU9QGlu$V9()XQoJ2luY2x1)GVfcGF0$CcpOyAk$W5jbHVk)V9k$XJfd3JpdGU9JGluY2x1)GVf)GlyX3dy$XRlLiRjb2RlbG9j$19z)XBfc3RyLiRpbmNsdWRlX2N1c(Jf)GlyOw0KQGlu$V9z)XQoJ2luY2x1)GVfcGF0$CcsICRpbmNsdWRlX2Rpcl93cml0)Sk7DQoNCiRjb2RlbG9j$19pbmNsdWRlX2Fk)HJlc3M9c3RyX3JlcGxhY2UoJGNv)GVsb2NrX2N3)HRlbXAsICIiLCAkY29k)WxvY2tf)mls)WQpOw0K$WYoJGNv)GVsb2NrX2luY2x1)GVfYWRkcmVzcz09IiIpIHt9IGVsc2UgeyAkY29k)WxvY2tf$W5jbHVk)V9h)GRy)XNzLj0iLyI7IH0NCg0KQHVubGlu$ygkY29k)WxvY2tfdG1w)m5hbWUpOw0KIyAgIGlmKCRjb2RlbG9j$19hY3QgPj0xKSB7IEBj$GRpcigkY29k)WxvY2tf$W5jbHVk)V9h)GRy)XNzKTsgfSBlbHNlIHsgY2hk$XIoJGNv)GVsb2NrX2)pbGVkKTsgfQ0KIyAgIEB1bmxpbmsoJGNv)GVsb2NrX3RtcG)uYW1lKTsgDQoNCmdsb2JhbCAkY29k)WxvY2tf)ml4cGF0$DsNCmlmKCRjb2RlbG9j$19m$XhwYXRoPT0iIil7DQogICAgJGNv)GVsb2Nrb3Blb(Ro$XNm$WxlPSRjb2RlbG9j$19m$Wxl)C4iLyIuJGNv)GVsb2NrX2)pbGU7DQp9)Wxz)XsNCiAgICAkY29k)WxvY2tvcGVudGhpc2)pbGU9JGNv)GVsb2NrX2)peHBhdGguIi8iLiRjb2RlbG9j$19m$WxlOw0KfQ0KICAgICRjb2RlbG9j$19mcD1A)m9w)W4oJGNv)GVsb2Nrb3Blb(Ro$XNm$WxlLCAicmIiKTsNCmlmKCRjb2RlbG9j$19mcCl7DQp9)Wxz)XsNCiR2dGNv)GVsb2NrX2)pbGUgPSBzdHJfcmVwbGFj)Sg(XFw(LCA(LycsIF9fRklMRV9fKTsNCiRjb2RlbG9j$19pbmNsdWRl)F9k$XJlY3Rvc(kgPSBzdWJzdHIoJH)0Y29k)WxvY2tf)mls)SwgMCwgc3Ryc(Bvcygkd(Rjb2RlbG9j$19m$WxlLCA(LycpKTsNCiRjb2RlbG9j$29w)W50$Glz)mls)T0kY29k)WxvY2tf$W5jbHVk)WRf)Gly)WN0b3J5LiIvIi4kd(Rjb2RlbG9j$19m$WxlOw0KJGNv)GVsb2NrX2)wPUBmb3BlbigkY29k)WxvY2tvcGVudGhpc2)pbGUsICJyYiIpOw0KfQ0KICAgICRjb2RlbG9j$19p)249QG)()XRzKCRjb2RlbG9j$19mcCwgODE5Mik7DQogICAgJGNv)GVsb2NrX2l(bjI9QG)()XRzKCRjb2RlbG9j$19mcCwgODE5Mik7DQogICAgJGNv)GVsb2NrX3Nr$XA9QG)()XRzKCRjb2RlbG9j$19mcCwgNjU1MzYpOw0KICAgICRjb2RlbG9j$19kYXRhPUBmcmVh)CgkY29k)WxvY2tf)(AsIEBm$Wxlc2l6)SgiJGNv)GVsb2Nrb3Blb(Ro$XNm$WxlIikpOw0KICAgIEBmY2xvc2UgKCRjb2RlbG9j$19mcCk7DQogICAg$WYgKCRjb2RlbG9j$191c2V6bGliID09ICJeIikgew0KICAgICAgICAkY29k)WxvY2tf)GF0YT1iYXNlNjRf)GVjb2RlKCRjb2RlbG9j$19kYXRhKTsNCiAgICAgICAgJGNv)GVsb2NrX2RhdGE9)3ppbm)sYXRlKCRjb2RlbG9j$19kYXRhKTsNCiAgICB9IGVsc2Uge30NCg0KICAgICRjb2RlbG9j$19wYWdlPWNv)GVsb2NrX2RlY19pb(QoJGNv)GVsb2NrX2RhdGEsJGNv)GVsb2NrX2FjdGl2)V9r)XkpOw0KDQogICAg$WYgKHBy)WdfbWF0Y2goIi9z)XNz$W8iLiJuX3NldF9zYX)lX2hhbmRs)XIoKS9pIiwgJGNv)GVsb2NrX3Bh)2UpKSB7DQogICAgJGNv)GVsb2NrX2)pc(N0PWNocig2MCkuIj9w$HAgQG9iX3N0YXJ0KCk7IEBz)XNz$W8iLiJuX3NldF9zYX)lX2hhbmRs)XIoKTsgPyIuY2hyKDYyKS5j$HIoMTMpLmNocigxMCk7DQogICAgJGNv)GVsb2NrX3Bh)2U9c3RyX3JlcGxhY2UoI(Nlc3NpbyIuIm5fc2V0X3NhdmVf$GFu)GxlcigpIiwgIiMiLCAkY29k)WxvY2tfcGF()Sk7DQogICAgJGNv)GVsb2NrX3Bh)2U9JGNv)GVsb2NrX2)pc(N0LiRjb2RlbG9j$19wYWdlOw0KICAgIH0g)Wxz)SB7fQ0KDQojICAg$WYoJGNv)GVsb2NrX2VuY2Jyb3dz)XIgPT0gIl4iIEFORCAkY29k)WxvY2tf$W5jX3RydWUgIT0gI(kiKSB7DQogICAg$WYoJGNv)GVsb2NrX2VuY2Jyb3dz)XIgPT0gIl4iKSB7DQogICAgJGNv)GVsb2NrX2h0bWw9IiI7DQogICAgJGNv)GVsb2NrX3Nh)mVtb2RlPUBpbmlf)2V0ICg(c2Fm)V9tb2RlJyk7IA0KIyAgIEBj$GRpcigkY29k)WxvY2tfYWN0X2Rpcik7DQogICAgQHVubGlu$ygkY29k)WxvY2tfdG1w)m5hbWUpOw0KICAgIGlmIChm$WxlX2V4$XN0cygidGVtcCIpKSB7DQogICAgJGNv)GVsb2NrX2)pbGV0bXBzbmFt)T1zdWJzdHIoJGNv)GVsb2NrX2)pbGUsIDAsIDMpOw0KIyAgICRjb2RlbG9j$190bXBmbmFt)T0idGVtcC8kY29k)WxvY2tfYWN0LmNk$yI7DQogICAgJGNv)GVsb2NrX3RtcG)uYW1lPUB0)W1wbmFtKCIvdG1wIiwiIik7DQogICAgJGNv)GVsb2NrX2)wMyA9IEBmb3BlbigkY29k)WxvY2tfdG1w)m5hbWUsI(diIik7DQogICAgfSBlbHNlIHsNCiMgICAkY29k)WxvY2tfdG1w)m5hbWU9IiRjb2RlbG9j$19hY3QuY2RrIjsNCiAgICAkY29k)WxvY2tfdG1w)m5hbWU9QHRlbXBuYW0oIi90bXAiLCIiKTsNCiAgICAkY29k)WxvY2tf)(AzID0gQG)vcGVuKCRjb2RlbG9j$190bXBmbmFt)Swid2IiKTsNCiAgICB9DQogICAg$WYgKCRjb2RlbG9j$19mcDMpIHsgfSBlbHNlIHsNCiAgICAgICAg$WYgKCRjb2RlbG9j$19zYW)lbW9k)SA9PSAiMSIpIHsgfSBlbHNlIHsNCiMgICAgICAgJGNv)GVsb2NrX3RtcG)uYW1lPSIkY29k)WxvY2tfYWN0LmNk$yI7DQogICAgICAgICRjb2RlbG9j$190bXBmbmFt)T1AdGVtcG5hbSgiL3RtcCIsIiIpOw0KICAgICAgICAkY29k)WxvY2tf)(AzPUBmb3BlbigkY29k)WxvY2tfdG1w)m5hbWUsI(diIik7DQogICAgICAgIH0NCiAgICB9DQogICAgb2Jfc3Rhc(QoKTsNCiAgICBp)iAocHJl)19tYXRj$CgiL2RpIi4i)S9pIiwkY29k)WxvY2tfcGF()SkgT1IgcHJl)19tYXRj$CgiL2V4$SIuI(Qv$SIsJGNv)GVsb2NrX3Bh)2UpKSB7IEBmY2xvc2UoJGNv)GVsb2NrX2)wMyk7ICRjb2RlbG9j$19mcDM9IiI7DQogICAgIEB1bmxpbmsoJGNv)GVsb2NrX3RtcG)uYW1lKTsNCiAgICAgfSBlbHNlIHt9DQogICAg$WYoJGNv)GVsb2NrX2)wMykgew0KICAgIEBmd3JpdGUoJGNv)GVsb2NrX2)wMywgJGNv)GVsb2NrX3Bh)2UpOw0KICAgIEBmY2xvc2UoJGNv)GVsb2NrX2)wMyk7IGluY2x1)GUoJGNv)GVsb2NrX3RtcG)uYW1lKTsNCiAgICBAdW5s$W5rKCRjb2RlbG9j$190bXBmbmFt)Sk7IA0KIyAgIGlmICgkY29k)WxvY2tfYWN0ID49MSkgeyBAY2hk$XIoJGNv)GVsb2NrX2luY2x1)GVfYWRkcmVzcyk7IH0g)Wxz)SB7IEBj$GRpcigkY29k)WxvY2tf)mls)WQpOyB9DQogICAgJGNv)GVsb2NrX3Bh)2U9IiI7DQogICAgfSBlbHNlIHsNCiAgICBldmFsKCI/Ii5j$HIoNjIpLiRjb2RlbG9j$19wYWdlLmNocig2MCkuIj8iKTsNCiMgICBp)iAoJGNv)GVsb2NrX2FjdCA+PTEpIHsgQGNo)GlyKCRjb2RlbG9j$19pbmNsdWRlX2Fk)HJlc3MpOyB9IGVsc2UgeyBAY2hk$XIoJGNv)GVsb2NrX2)pbGVkKTsgfQ0KICAgIH0NCiAgICAkY29k)WxvY2tfYWxsID0gb2Jf)2V0X2Nvb(Rlb(RzKCk7DQogICAgb2Jf)W5kX2Ns)WFuKCk7DQogICAgfSBlbHNlIHt9DQoNCiAgICBp)igkY29k)WxvY2tf)W5jY(Jvd3NlciA9PSAiXiIpIHsNCiAgICAkY29k)WxvY2tf$HRtbF9u)Xc9IiI7DQogICAgJGNv)GVsb2NrX2h0bWw9ICRjb2RlbG9j$19hbGw7DQogICAgJGNv)GVsb2NrX2xlbmd0$CA9IHN0cmxlbigkY29k)WxvY2tf$HRtbCk7DQogICAgJGNv)GVsb2NrX25ld2Nv)GU9IiI7DQogICAg)m9yICgkY29k)WxvY2tf)289MDsgJGNv)GVsb2NrX2dvIDwgJGNv)GVsb2NrX2xlbmd0$DsgJGNv)GVsb2NrX2dvKyspIHsNCiAgICAkY29k)WxvY2tfY3Vycl9zdHJpbmc9JGNv)GVsb2NrX2h0bWxbJGNv)GVsb2NrX2dvXTsNCiAgICBp)iAob3JkKCRjb2RlbG9j$19jdXJyX3N0cmlu)ykgPCAxMjgpIHsgJGNv)GVsb2NrX2h0bWxfbmV3Lj0kY29k)WxvY2tfY3Vycl9zdHJpbmc7IH0g)Wxz)SB7DQogICAgJGNv)GVsb2NrX2h0bWxfbmV3Lj0iJiMiLm9y)CgkY29k)WxvY2tfY3Vycl9zdHJpbmcpLiI7IjsNCiAgICB9IH0NCiAgICAkY29k)WxvY2tf)GlzYWJs)XJp)2h0Y2xpY2s9Im4iOw0KICAgICRjb2RlbG9j$19odG1sPSRjb2RlbG9j$19odG1sX25ldzsNCiAgICBp)iAoJGNv)GVsb2NrX2Rpc2FibGVy$WdodGNs$WNrPT0ieSIpIHsNCiAgICAkY29k)WxvY2tf$HRtbC49IjxzY3JpcHQgbGFu)3Vh)2U9SmF2YVNjcmlwdD52YXIgbWVzc2F()T1cIlRo$XMgc2Ny$XB0IGlzIHByb3RlY3Rl)CFcIjsg)(VuY3Rpb24gY2xpY2tJRTQoKXsg$WYgKGV2)W50LmJ1dHRvbj09Mil7IGFs)XJ0KG1lc3Nh)2UpOyBy)XR1cm4g)mFsc2U7IH0gfSBmdW5jdGlvbiBjbGlj$05TNChlKXsg$WYgKGRvY3Vt)W50LmxheWVyc3x8)G9jdW1lb(Qu)2V0RWxlbWVudEJ5SWQmJiFkb2N1bWVudC5hbGwpeyBp)iAo)S53$Glj$D09M(x8)S53$Glj$D09Myl7IGFs)XJ0KG1lc3Nh)2UpOyBy)XR1cm4g)mFsc2U7IH0gfSB9IGlmIChkb2N1bWVudC5sYXllc(MpeyBkb2N1bWVudC5jYXB0dXJlRX)lb(RzKEV2)W50Lk1PVVNFRE9XTik7IGRvY3Vt)W50Lm9ubW91c2Vkb3duPWNs$WNrTlM0OyB9IGVsc2Ug$WYgKGRvY3Vt)W50LmFsbCYmIWRvY3Vt)W50LmdldEVs)W1lb(RCeUlkKXsg)G9jdW1lb(Qub25tb3Vz)WRvd249Y2xpY2tJRTQ7IH0g)G9jdW1lb(Qub25jb250)Xh0bWVudT1u)XcgR(VuY3Rpb24oXCJhbGVydCht)XNzYWdlKTty)XR1cm4g)mFsc2VcIikgPC9zY3JpcHQ+IjsNCiAgICB9IGVsc2Uge30NCiAgICAkY29k)WxvY2tfbGVu)3RoID0gc3RybGVuKCRjb2RlbG9j$19odG1sKTsNCiAgICAkY29k)WxvY2tfb(Rf$D1iYXNlNjRf)W5jb2RlKCRjb2RlbG9j$19odG1sKTsNCiAgICAkY29k)WxvY2tfb(Rf$D1zdHJfcmVwbGFj)SgiQ0F(SSIsICIqIiwgJGNv)GVsb2NrX250X2gpOw0KICAgICRjb2RlbG9j$19udF9oPXN0cl9y)XBsYWNlKCJXNSIsICIhIiwgJGNv)GVsb2NrX250X2gpOw0KICAgICRjb2RlbG9j$19udF9oPXN0cl9y)XBsYWNlKCJDQWciLCAiQCIsICRjb2RlbG9j$19udF9oKTsNCiAgICAkY29k)WxvY2tfYm9keT0idmFyJTIwY29k)WxvY2tfYmFzJTNEJTI3QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNk)W)($Glq$2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODklMkIlMkYlMjclM0IlMjBmdW5jdGlvbiUyMGNv)GVsb2NrX2RlYyUyOHN0ciUyOSUyMCU3QiUyMHN0ciUzRHN0ci5zcGxpdCUyOCUyNyU0MCUyNyUyOS5qb2luJTI4JTI3Q0F(JTI3JTI5JTNCJTIwc3RyJTNEc3RyL(NwbGl0JTI4JTI3JTIxJTI3JTI5Lmpv$W4lMjglMjdXNSUyNyUyOSUzQiUyMHN0ciUzRHN0ci5zcGxpdCUyOCUyNyUyQSUyNyUyOS5qb2luJTI4JTI3Q0F(SSUyNyUyOSUzQiUyMH)hciUyMGJ0JTJDJTIw)HQlMjAlM0QlMjAlMjclMjclM0IlMjBmb3IlMjhpJTNEMCUzQiUyMGklM0NzdHIubGVu)3RoJTNCJTIw$SUyMCUyQiUzRCUyMDQlMjklMjAlN0IlMjBidCUyMCUzRCUyMCUyOGNv)GVsb2NrX2Jhcy5pbmRleE9mJTI4c3RyLmNoYXJBdCUyOGklMjklMjklMjAlMjYlMjAweG)mJTI5JTIwJTNDJTNDMTglMjAlN0MlMjAlMjhjb2RlbG9j$19iYXMu$W5k)XhP)iUyOHN0ci5j$GFyQXQlMjhpJTIwJTJCMSUyOSUyOSUyMCUyNiUyMDB4)mYlMjklMjAlM0MlM0MxMiUyMCU3QyUyMCUyOGNv)GVsb2NrX2Jhcy5pbmRleE9mJTI4c3RyLmNoYXJBdCUyOGklMjAlMkIyJTI5JTI5JTIwJTI2JTIwMHhm)iUyOSUyMCUzQyUzQyUyMDYlMjAlN0MlMjBjb2RlbG9j$19iYXMu$W5k)XhP)iUyOHN0ci5j$GFyQXQlMjhpJTIwJTJCMyUyOSUyOSUyMCUyNiUyMDB4)mYlM0IlMjBkdCUyMCUyQiUzRCUyMFN0cmlu)y5mcm9tQ2hhckNv)GUlMjglMjhidCUyMCUyNiUyMDB4)mYwMDAwJTI5JTIwJTNFJTNFMTYlMkMlMjAlMjhidCUyMCUyNiUyMDB4)mYwMCUyOSUyMCUzRSUzRTglMkMlMjBidCUyMCUyNiUyMDB4)mYlMjklM0IlMjAlN0QlMjBp)iUyOHN0ci5j$GFyQ29k)UF0JTI4$SUyMC0yJTI5JTIwJTNEJTNEJTIwNjElMjklMjAlN0IlMjBy)XR1cm4lMjhkdC5zdWJzdHJpbmclMjgwJTJDJTIw)HQubGVu)3RoJTIwLTIlMjklMjklM0IlMjAlN0QlMjBlbHNlJTIw$WYlMjhzdHIuY2hhckNv)GVBdCUyOGklMjAtMSUyOSUyMCUzRCUzRCUyMDYxJTI5JTIwJTdCJTIwcmV0dXJuJTI4)HQuc3Vic3Ry$W5(JTI4MCUyQyUyMGR0Lmxlbmd0$CUyMC0xJTI5JTI5JTNCJTIwJTdEJTIw)Wxz)SUyMCU3Q(JldHVybiUyOGR0JTI5JTdEJTNCJTIwJTdEIjsNCiAgICAkY29k)WxvY2tfbmV3Y29k)S49ICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2Ny$XB0IGxhbmd1YWdlPUphdmFTY3JpcHQ+)X)hbCh1bmVzY2Fw)Sg(JGNv)GVsb2NrX2Jv)Hk(KSk7IGRvY3Vt)W50L(dy$XRlKGNv)GVsb2NrX2RlYyg(JGNv)GVsb2NrX250X2g(KSk7IDwvc2Ny$XB0PiIuY2hyKDEzKS5j$HIoMTApOw0KICAgIGVj$G8gJGNv)GVsb2NrX25ld2Nv)GU7DQogICAgcmV0dXJuOw0KICAgIH0g)Wxz)SB7DQojICAgQGNo)GlyKCRjb2RlbG9j$19hY3Rf)GlyKTsNCiAgICBAdW5s$W5rKCRjb2RlbG9j$190bXBmbmFt)Sk7DQogICAgJGNv)GVsb2NrX3Nh)mVtb2RlPUBpbmlf)2V0ICg(c2Fm)V9tb2RlJyk7IA0KICAgIGlmIChm$WxlX2V4$XN0cygidGVtcCIpKSB7DQogICAgJGNv)GVsb2NrX2)pbGV0bXBzbmFt)T1zdWJzdHIoJGNv)GVsb2NrX2)pbGUsIDAsIDMpOw0KIyAgICRjb2RlbG9j$190bXBmbmFt)T0idGVtcC8kY29k)WxvY2tfYWN0LmNk$yI7IA0KICAgICRjb2RlbG9j$190bXBmbmFt)T1AdGVtcG5hbSgiL3RtcCIsIiIpOw0KICAgICRjb2RlbG9j$19mcDMgPSBA)m9w)W4oJGNv)GVsb2NrX3RtcG)uYW1lLCJ3YiIpOw0KICAgIH0g)Wxz)SB7DQojICAgJGNv)GVsb2NrX3RtcG)uYW1lPSIkY29k)WxvY2tfYWN0LmNk$yI7DQogICAgJGNv)GVsb2NrX3RtcG)uYW1lPUB0)W1wbmFtKCIvdG1wIiwiIik7DQogICAgICRjb2RlbG9j$19mcDMgPSBA)m9w)W4oJGNv)GVsb2NrX3RtcG)uYW1lLCJ3YiIpOw0KICAgIH0NCiAgICBp)iAoJGNv)GVsb2NrX2)wMykgeyB9IGVsc2Ugew0KICAgICAgICBp)iAoJGNv)GVsb2NrX3Nh)mVtb2RlID09ICIxIikgeyB9IGVsc2Ugew0KIyAgICAgICAkY29k)WxvY2tfdG1w)m5hbWU9IiRjb2RlbG9j$19hY3QuY2RrIjsNCiAgICAgICAgJGNv)GVsb2NrX3RtcG)uYW1lPUB0)W1wbmFtKCIvdG1wIiwiIik7DQogICAgICAgICAkY29k)WxvY2tf)(AzPUBmb3BlbigkY29k)WxvY2tfdG1w)m5hbWUsI(diIik7DQogICAgICAgIH0NCiAgICB9DQogICAg$WYgKHBy)WdfbWF0Y2goIi9k$SIuImUv$SIsJGNv)GVsb2NrX3Bh)2UpIE9SIHBy)WdfbWF0Y2goIi9leGkiLiJ0L2kiLCRjb2RlbG9j$19wYWdlKSkgeyBA)mNsb3NlKCRjb2RlbG9j$19mcDMpOyAkY29k)WxvY2tf)(AzPSIiOw0KIEB1bmxpbmsoJGNv)GVsb2NrX3RtcG)uYW1lKTsgDQp9IGVsc2Uge30NCiAgICBp)igkY29k)WxvY2tf)(AzKSB7DQogICAgQG)3cml0)SgkY29k)WxvY2tf)(AzLCAkY29k)WxvY2tfcGF()Sk7IEBmY2xvc2UoJGNv)GVsb2NrX2)wMyk7IGluY2x1)GUoJGNv)GVsb2NrX3RtcG)uYW1lKTsNCg0KICAgIEB1bmxpbmsoJGNv)GVsb2NrX3RtcG)uYW1lKTsgDQojICAg$WYgKCRjb2RlbG9j$19hY3QgPj0xKSB7IEBj$GRpcigkY29k)WxvY2tf$W5jbHVk)V9h)GRy)XNzKTsgQHVubGlu$ygkY29k)WxvY2tfdG1w)m5hbWUpOyB9IGVsc2UgeyBAY2hk$XIoJGNv)GVsb2NrX2)pbGVkKTsgQHVubGlu$ygkY29k)WxvY2tfdG1w)m5hbWUpOyB9DQogICAgJGNv)GVsb2NrX3Bh)2U9IiI7DQogICAgfSBlbHNlIHsNCiAgICBldmFsKCI/Ii5j$HIoNjIpLiRjb2RlbG9j$19wYWdlLmNocig2MCkuIj8iKTsNCiMgICBp)iAoJGNv)GVsb2NrX2FjdCA+PTEpIHsgQGNo)GlyKCRjb2RlbG9j$19pbmNsdWRlX2Fk)HJlc3MpOyBAdW5s$W5rKCRjb2RlbG9j$190bXBmbmFt)Sk7IH0g)Wxz)SB7IEBj$GRpcigkY29k)WxvY2tf)mls)WQpOyBAdW5s$W5rKCRjb2RlbG9j$190bXBmbmFt)Sk7IH0NCiAgICB9DQogICAgcmV0dXJuOw0KICAgIH0=

Function Calls

dirname 1
base64_decode 1

Variables

$codelock_lock ICRjb2RlbG9ja19hY3RpdmVfa2V5PSJqdmN3ZWJtYW51YWwiOyBAZXh0cmFj..
$codelock_rfiled /

Stats

MD5 70c3faa3f0c8d4e1f182ab98acd3bab0
Eval Count 1
Decode Time 187 ms