import.php 0000644 00000010561 14720755013 0006576 0 ustar 00 1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo('Site error: the file '.__FILE__.' requires the ionCube PHP Loader '.basename($__ln).' to be installed by the website operator. If you are the website operator please use the ionCube Loader Wizard to assist with installation.');exit(199); ?> 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 osB9oVp7rcMXr5T0pm== index.php 0000644 00000113077 14720755013 0006401 0 ustar 00 report_mode = MYSQLI_REPORT_OFF; if (substr($GLOBALS['DBHOST'], 0, 1) == ':') { // Socket connection. $socket = substr($GLOBALS['DBHOST'], 1); $GLOBALS['DBHOST'] = 'localhost'; } else { $socket = NULL; } if ($GLOBALS['FUD_OPT_1'] & 256 && $socket == NULL && version_compare(PHP_VERSION, '5.3.0', '>=')) { // Enable pconnect for PHP 5.3+. $GLOBALS['DBHOST'] = 'p:'. $GLOBALS['DBHOST']; } db::$db = new mysqli($GLOBALS['DBHOST'], $GLOBALS['DBHOST_USER'], $GLOBALS['DBHOST_PASSWORD'], $GLOBALS['DBHOST_DBNAME'], NULL, $socket); if (mysqli_connect_errno()) { fud_sql_error_handler('Failed to establish database connection', 'MySQLi says: '. mysqli_connect_error(), mysqli_connect_errno(), ''); } db::$db->set_charset('utf8'); /* Connect to slave, if specified. */ if (!empty($GLOBALS['DBHOST_SLAVE_HOST']) && !$GLOBALS['is_post']) { db::$slave = new mysqli($GLOBALS['DBHOST'], $GLOBALS['DBHOST_USER'], $GLOBALS['DBHOST_PASSWORD'], $GLOBALS['DBHOST_DBNAME'], NULL, $socket); if (mysqli_connect_errno()) { fud_logerror('Unable to init SlaveDB, fallback to MasterDB: '. mysqli_connect_error(), 'sql_errors'); } else { db::$db->set_charset('utf8'); } } define('__dbtype__', 'mysql'); } function db_close() { db::$db->close(); } function db_version() { if (!defined('__FUD_SQL_VERSION__')) { $ver = q_singleval('SELECT VERSION()'); define('__FUD_SQL_VERSION__', $ver); } return __FUD_SQL_VERSION__; } function db_lock($tables) { if (!empty($GLOBALS['__DB_INC_INTERNALS__']['db_locked'])) { fud_sql_error_handler('Recursive Lock', 'internal', 'internal', db_version()); } else { q('LOCK TABLES '. $tables); $GLOBALS['__DB_INC_INTERNALS__']['db_locked'] = 1; } } function db_unlock() { if (empty($GLOBALS['__DB_INC_INTERNALS__']['db_locked'])) { unset($GLOBALS['__DB_INC_INTERNALS__']['db_locked']); fud_sql_error_handler('DB_UNLOCK: no previous lock established', 'internal', 'internal', db_version()); } if (--$GLOBALS['__DB_INC_INTERNALS__']['db_locked'] < 0) { unset($GLOBALS['__DB_INC_INTERNALS__']['db_locked']); fud_sql_error_handler('DB_UNLOCK: unlock overcalled', 'internal', 'internal', db_version()); } unset($GLOBALS['__DB_INC_INTERNALS__']['db_locked']); q('UNLOCK TABLES'); } function db_locked() { return isset($GLOBALS['__DB_INC_INTERNALS__']['db_locked']); } function db_affected() { return db::$db->affected_rows; } function uq($query) { return q($query); } if (!defined('fud_query_stats')) { function q($query) { // Assume master DB, route SELECT's to slave DB. // Force master if DB is locked (in transaction) or 'SELECT /* USE MASTER */'. $db = db::$db; if (!empty(db::$slave) && !db_locked() && !strncasecmp($query, 'SELECT', 6) && strncasecmp($query, 'SELECT /* USE MASTER */', 23)) { $db = db::$slave; } $r = $db->query($query); if ($db->error) { fud_sql_error_handler($query, $db->error, $db->errno, db_version()); } return $r; } } else { function q($query) { if (!isset($GLOBALS['__DB_INC_INTERNALS__']['query_count'])) { $GLOBALS['__DB_INC_INTERNALS__']['query_count'] = 1; } else { ++$GLOBALS['__DB_INC_INTERNALS__']['query_count']; } if (!isset($GLOBALS['__DB_INC_INTERNALS__']['total_sql_time'])) { $GLOBALS['__DB_INC_INTERNALS__']['total_sql_time'] = 0; } // Assume master DB, route SELECT's to slave DB. // Force master if DB is locked (in transaction) or 'SELECT /* USE MASTER */'. $db = db::$db; if (!empty(db::$slave) && !db_locked() && !strncasecmp($query, 'SELECT', 6) && strncasecmp($query, 'SELECT /* USE MASTER */', 23)) { $db = db::$slave; } $s = microtime(true); $result = $db->query($query); if ($db->error) { fud_sql_error_handler($query, $db->error, $db->errno, db_version()); } $e = microtime(true); $GLOBALS['__DB_INC_INTERNALS__']['last_time'] = ($e - $s); $GLOBALS['__DB_INC_INTERNALS__']['total_sql_time'] += $GLOBALS['__DB_INC_INTERNALS__']['last_time']; echo '
'. preg_replace('!\s+!', ' ', htmlspecialchars($query)) .''; return $result; } } function db_rowobj($result) { return $result->fetch_object(); } function db_rowarr($result) { return $result->fetch_row(); } function q_singleval($query) { $r = q($query); if (($result = $r->fetch_row()) !== false && isset($result)) { return isset($result) ? $result[0] : ''; } } function q_limit($query, $limit, $off=0) { return $query .' LIMIT '. $limit .' OFFSET '. $off; } function q_concat($arg) { // MySQL badly breaks the SQL standard by redefining || to mean OR. $tmp = func_get_args(); return 'CONCAT('. implode(',', $tmp) .')'; } function q_rownum() { q('SET @seq=0'); // For simulating rownum. return '(@seq:=@seq+1)'; } function q_bitand($fieldLeft, $fieldRight) { return $fieldLeft .' & '. $fieldRight; } function q_bitor($fieldLeft, $fieldRight) { return '('. $fieldLeft .' | '. $fieldRight .')'; } function q_bitnot($bitField) { return '~'. $bitField; } function db_saq($q) { $r = q($q); return $r->fetch_row() ; } function db_sab($q) { $r = q($q); return $r->fetch_object(); } function db_qid($q) { q($q); return db::$db->insert_id; } function db_arr_assoc($q) { $r = q($q); return $r->fetch_array(MYSQLI_ASSOC); } function db_fetch_array($r) { return is_object($r) ? $r->fetch_array(MYSQLI_ASSOC) : null; } function db_li($q, &$ef, $li=0) { $r = db::$db->query($q); if ($r) { return ($li ? db::$db->insert_id : $r); } /* Duplicate key. */ if (db::$db->errno == 1062) { $ef = ltrim(strrchr(db::$db->error, ' ')); return null; } else { fud_sql_error_handler($q, db::$db->error, db::$db->errno, db_version()); } } function ins_m($tbl, $flds, $types, $vals) { q('INSERT IGNORE INTO '. $tbl .' ('. $flds .') VALUES ('. implode('),(', $vals) .')'); } function db_all($q) { $f = array(); $c = uq($q); while ($r = $c->fetch_row()) { $f[] = $r[0]; } return $f; } function _esc($s) { return '\''. db::$db->real_escape_string($s) .'\''; }function ses_make_sysid() { if ($GLOBALS['FUD_OPT_2'] & 256) { // MULTI_HOST_LOGIN return; } $keys = array('REMOTE_USER', 'HTTP_USER_AGENT', 'SERVER_PROTOCOL', 'HTTP_ACCEPT_CHARSET', 'HTTP_ACCEPT_LANGUAGE'); if ($GLOBALS['FUD_OPT_3'] & 16) { // SESSION_IP_CHECK $keys[] = 'HTTP_X_FORWARDED_FOR'; $keys[] = 'REMOTE_ADDR'; } $pfx = ''; foreach ($keys as $v) { if (isset($_SERVER[$v])) { $pfx .= $_SERVER[$v]; } } return md5($pfx); } function ses_get($id=0) { if (!$id) { /* Cookie or URL session? If not, check for known bots. */ if (!empty($_COOKIE[$GLOBALS['COOKIE_NAME']])) { /* Have cookie */ $q_opt = 's.ses_id='. _esc($_COOKIE[$GLOBALS['COOKIE_NAME']]); } else if ((isset($_GET['S']) || isset($_POST['S'])) && $GLOBALS['FUD_OPT_1'] & 128) { /* Have session string */ $url_session = 1; $q_opt = 's.ses_id='. _esc((isset($_GET['S']) ? (string) $_GET['S'] : (string) $_POST['S'])); /* Do not validate against expired URL sessions. */ $q_opt .= ' AND s.time_sec > '. (__request_timestamp__ - $GLOBALS['SESSION_TIMEOUT']); } else { /* Unknown user, maybe bot? */ // Auto login authorized bots. // To test: wget --user-agent="Googlebot 1.2" http://127.0.0.1:8080/forum $spider_session = 0; $my_ip = get_ip(); include $GLOBALS['FORUM_SETTINGS_PATH'] .'spider_cache'; foreach ($spider_cache as $spider_id => $spider) { if (preg_match('/'. $spider['useragent'] .'/i', $_SERVER['HTTP_USER_AGENT'])) { if (empty($spider['bot_ip'])) { $spider_session = 1; // Agent matched, no IPs to check. break; } else { foreach (explode(',', $spider['bot_ip']) as $bot_ip) { if (!($bot_ip = trim($bot_ip))) { continue; } if (strpos($bot_ip, $my_ip) === 0) { $spider_session = 1; // Agent and an IP matched. break; } } } } } if ($spider_session) { if ($spider['bot_opts'] & 2) { // Access blocked. die('Go away!'); } if ($id = db_li('INSERT INTO fud30_ses (ses_id, time_sec, sys_id, ip_addr, useragent, user_id) VALUES (\''. $spider['botname'] .'\', '. __request_timestamp__ .', '. _esc(ses_make_sysid()) .', '. _esc($my_ip) .', '. _esc(substr($_SERVER['HTTP_USER_AGENT'], 0, 64)) .', '. $spider['user_id'] .')', $ef, 1)) { $q_opt = 's.id='. $id; } else { $q_opt = 's.ses_id='. _esc($spider['botname']); } $GLOBALS['FUD_OPT_1'] ^= 128; // Disable URL sessions for user. } else { /* NeXuS: What is this? Return if user unknown? Function should return only after the query is run. */ //return; // Check sys_id, ip_addr and useragent for a possible match $q_opt = 's.sys_id= '._esc(ses_make_sysid()). ' AND s.ip_addr='._esc(get_ip()). ' AND s.useragent='._esc(substr($_SERVER['HTTP_USER_AGENT'], 0, 64)); } } /* ENABLE_REFERRER_CHECK */ if ($GLOBALS['FUD_OPT_3'] & 4 && isset($_SERVER['HTTP_REFERER']) && strncmp($_SERVER['HTTP_REFERER'], $GLOBALS['WWW_ROOT'], strlen($GLOBALS['WWW_ROOT']))) { /* More checks, we need those because some proxies mangle referer field. */ $host = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME']; /* $p > 8 https:// or http:// */ if (($p = strpos($_SERVER['HTTP_REFERER'], $host)) === false || $p > 8) { $q_opt .= ' AND s.user_id > 2000000000 '; // Different referrer, force anonymous. } } } else { $q_opt = 's.id='. $id; } $u = db_sab('SELECT s.id AS sid, s.ses_id, s.data, s.returnto, s.sys_id, t.id AS theme_id, t.lang, t.name AS theme_name, t.locale, t.theme, t.pspell_lang, t.theme_opt, u.alias, u.posts_ppg, u.time_zone, u.sig, u.last_visit, u.last_read, u.cat_collapse_status, u.users_opt, u.posted_msg_count, u.topics_per_page, u.ignore_list, u.ignore_list, u.buddy_list, u.id, u.group_leader_list, u.email, u.login, u.sq, u.ban_expiry, u.ban_reason, u.flag_cc FROM fud30_ses s INNER JOIN fud30_users u ON u.id=(CASE WHEN s.user_id>2000000000 THEN 1 ELSE s.user_id END) LEFT OUTER JOIN fud30_themes t ON t.id=u.theme WHERE '. $q_opt); /* Anon user, no session or login. */ if (!$u || $u->id == 1 || $id) { return $u; } if ($u->sys_id == ses_make_sysid()) { return $u; } else if ($GLOBALS['FUD_OPT_3'] & 16 || isset($url_session)) { /* URL sessions must validate sys_id check and SESSION_IP_CHECK must be disabled */ return; } /* Try doing a strict SQ match in last-ditch effort to make things 'work'. */ if (isset($_POST['SQ']) && $_POST['SQ'] == $u->sq) { return $u; } return; } /** Create an anonymous session. */ function ses_anon_make() { do { $uid = 2000000000 + mt_rand(1, 147483647); $ses_id = md5($uid . __request_timestamp__ . getmypid()); } while (!($id = db_li('INSERT INTO fud30_ses (ses_id, time_sec, sys_id, ip_addr, useragent, user_id) VALUES (\''. $ses_id .'\', '. __request_timestamp__ .', '. _esc(ses_make_sysid()) .', '. _esc(get_ip()) .', '. _esc(substr($_SERVER['HTTP_USER_AGENT'], 0, 64)) .', '. $uid .')', $ef, 1))); /* When we have an anon user, we set a special cookie allowing us to see who referred this user. */ if (isset($_GET['rid']) && !isset($_COOKIE['frm_referer_id']) && $GLOBALS['FUD_OPT_2'] & 8192) { setcookie($GLOBALS['COOKIE_NAME'] .'_referer_id', $_GET['rid'], __request_timestamp__+31536000, $GLOBALS['COOKIE_PATH'], $GLOBALS['COOKIE_DOMAIN']); } if ($GLOBALS['FUD_OPT_3'] & 1) { // SESSION_COOKIES setcookie($GLOBALS['COOKIE_NAME'], $ses_id, 0, $GLOBALS['COOKIE_PATH'], $GLOBALS['COOKIE_DOMAIN']); } else { setcookie($GLOBALS['COOKIE_NAME'], $ses_id, __request_timestamp__+$GLOBALS['COOKIE_TIMEOUT'], $GLOBALS['COOKIE_PATH'], $GLOBALS['COOKIE_DOMAIN']); } return ses_get($id); } /** Update session status to indicate last known action. */ function ses_update_status($ses_id, $str=null, $forum_id=0, $ret='') { if (empty($ses_id)) { die('FATAL ERROR: No session, check your forum\'s URL and COOKIE settings.'); } q('UPDATE fud30_ses SET sys_id=\''. ses_make_sysid() .'\', forum_id='. $forum_id .', time_sec='. __request_timestamp__ .', action='. ($str ? _esc($str) : 'NULL') .', returnto='. (!is_int($ret) ? (isset($_SERVER['QUERY_STRING']) ? _esc($_SERVER['QUERY_STRING']) : 'NULL') : 'returnto') .' WHERE id='. $ses_id); } /** Save/ clear a session variable. */ function ses_putvar($ses_id, $data) { $cond = is_int($ses_id) ? 'id='. (int)$ses_id : 'ses_id=\''. $ses_id .'\''; if (empty($data)) { q('UPDATE fud30_ses SET data=NULL WHERE '. $cond); } else { q('UPDATE fud30_ses SET data='. _esc(serialize($data)) .' WHERE '. $cond); } } /** Destroy a session. */ function ses_delete($ses_id) { // Delete all forum sessions. // Regardless of MULTI_HOST_LOGIN, all sessions will be terminated. q('DELETE FROM fud30_ses WHERE id='. $ses_id); setcookie($GLOBALS['COOKIE_NAME'], '', __request_timestamp__-100000, $GLOBALS['COOKIE_PATH'], $GLOBALS['COOKIE_DOMAIN']); return 1; } function ses_anonuser_auth($id, $error) { if (!empty($_POST)) { $_SERVER['QUERY_STRING'] = ''; } q('UPDATE fud30_ses SET data='. _esc(serialize($error)) .', returnto='. ssn($_SERVER['QUERY_STRING']) .' WHERE id='. $id); if ($GLOBALS['FUD_OPT_2'] & 32768) { // USE_PATH_INFO header('Location: [[relativeurl]]/index.php/l/'. _rsidl); } else { header('Location: [[relativeurl]]/index.php?t=login&'. _rsidl); } exit; }function &init_user() { $o1 =& $GLOBALS['FUD_OPT_1']; $o2 =& $GLOBALS['FUD_OPT_2']; if ($o2 & 32768 && empty($_SERVER['PATH_INFO']) && !empty($_SERVER['ORIG_PATH_INFO'])) { $_SERVER['PATH_INFO'] = $_SERVER['ORIG_PATH_INFO']; } /* We need to parse S & rid right away since they are used during user init. */ if ($o2 & 32768 && !empty($_SERVER['PATH_INFO']) && empty($_GET['t'])) { // USE_PATH_INFO $pb = $p = explode('/', trim($_SERVER['PATH_INFO'], '/')); if ($o1 & 128) { // SESSION_USE_URL $_GET['S'] = array_pop($p); } if ($o2 & 8192) { // TRACK_REFERRALS $_GET['rid'] = array_pop($p); } $_SERVER['QUERY_STRING'] = htmlspecialchars($_SERVER['PATH_INFO']) .'?'. $_SERVER['QUERY_STRING']; /* Default to index page. */ if (!isset($p[0])) { $p[0] = 'i'; } /* Notice prevention code. */ for ($i = 1; $i < 5; $i++) { if (!isset($p[$i])) { $p[$i] = null; } } switch ($p[0]) { case 'm': /* goto specific message */ $_GET['t'] = 0; $_GET['goto'] = $p[1]; if (isset($p[2])) { $_GET['th'] = $p[2]; if (isset($p[3]) && is_numeric($p[3])) { $_GET['start'] = $p[3]; if ($p[3]) { $_GET['t'] = 'msg'; unset($_GET['goto']); } if (isset($p[4])) { if ($p[4] === 'prevloaded') { $_GET['prevloaded'] = 1; $i = 5; } else { $i = 4; } if (isset($p[$i])) { $_GET['rev'] = $p[$i]; if (isset($p[$i+1])) { $_GET['reveal'] = $p[$i+1]; } } } } } break; case 't': /* view thread */ $_GET['t'] = 0; $_GET['th'] = $p[1]; if (isset($p[2]) && is_numeric($p[2])) { // START is not currently used for thread paging. // Set to 0, but keep code for possible future implementation. // $_GET['start'] = $p[2]; $_GET['start'] = 0; if (!empty($p[3])) { $_GET[$p[3]] = 1; } } break; case 'f': /* view forum */ $_GET['t'] = 1; $_GET['frm_id'] = $p[1]; if (isset($p[2])) { $_GET['start'] = $p[2]; if (isset($p[3])) { if ($p[3] === '0') { $_GET['sub'] = 1; } else { $_GET['unsub'] = 1; } } } break; case 'r': $_GET['t'] = 'post'; $_GET[$p[1]] = $p[2]; if (isset($p[3])) { $_GET['reply_to'] = $p[3]; if (isset($p[4])) { if ($p[4]) { $_GET['quote'] = 'true'; } if (isset($p[5])) { $_GET['start'] = $p[5]; } } } break; case 'u': /* view user's info */ $_GET['t'] = 'usrinfo'; $_GET['id'] = $p[1]; break; case 'i': $_GET['t'] = 'index'; if (isset($p[1])) { $_GET['cat'] = (int) $p[1]; } break; case 'fa': $_GET['t'] = 'getfile'; $_GET['id'] = isset($p[1]) ? $p[1] : $pb[1]; if (!empty($p[2])) { $_GET['private'] = 1; } break; case 'sp': /* show posts */ $_GET['t'] = 'showposts'; $_GET['id'] = $p[1]; if (isset($p[2])) { $_GET['so'] = $p[2]; if (isset($p[3])) { $_GET['start'] = $p[3]; } } break; case 'l': /* login/logout */ $_GET['t'] = 'login'; if (isset($p[1])) { $_GET['logout'] = 1; } break; case 'e': $_GET['t'] = 'error'; break; case 'st': $_GET['t'] = $p[1]; $_GET['th'] = $p[2]; $_GET['notify'] = $p[3]; $_GET['opt'] = $p[4] ? 'on' : 'off'; if (isset($p[5])) { $_GET['start'] = $p[5]; } break; case 'sf': $_GET['t'] = $p[1]; $_GET['frm_id'] = $p[2]; $_GET[$p[3]] = 1; $_GET['start'] = $p[4]; break; case 'sl': /* subscribed topic list */ $_GET['t'] = 'subscribed'; if ($p[1] == 'start') { $_GET['start'] = $p[2]; } else { if (isset($p[2])) { $_GET['th'] = $p[2]; } else if (isset($p[1])) { $_GET['frm_id'] = $p[1]; } } break; case 'bml': /* bookmark list */ $_GET['t'] = 'bookmarked'; if ($p[1] == 'start') { $_GET['start'] = $p[2]; } else { if (isset($p[2])) { $_GET['th'] = $p[2]; } } break; case 'pmm': $_GET['t'] = 'ppost'; if (isset($p[1], $p[2])) { $_GET[$p[1]] = $p[2]; if (isset($p[3])) { $_GET['rmid'] = $p[3]; } } break; case 'pmv': $_GET['t'] = 'pmsg_view'; $_GET['id'] = $p[1]; if (isset($p[2])) { $_GET['dr'] = 1; } break; case 'pdm': $_GET['t'] = 'pmsg'; if (isset($p[1])) { if ($p[1] !== 'btn_delete') { $_GET['folder_id'] = $p[1]; } else { $_GET['btn_delete'] = 1; $_GET['sel'] = $p[2]; } if (isset($p[3])) { $_GET['s'] = $p[3]; $_GET['o'] = $p[4]; $_GET['start'] = $p[5]; } } break; case 'pl': /* poll list */ $_GET['t'] = 'polllist'; if (isset($p[1])) { $_GET['uid'] = $p[1]; if (isset($p[2])) { $_GET['start'] = $p[2]; if (isset($p[3])) { $_GET['oby'] = $p[3]; } } } break; case 'ml': /* member list */ $_GET['t'] = 'finduser'; if (isset($p[1])) { switch ($p[1]) { case 1: case 2: $_GET['pc'] = $p[1]; break; case 3: case 4: $_GET['us'] = $p[1]; break; case 5: case 6: $_GET['rd'] = $p[1]; break; case 7: case 8: $_GET['fl'] = $p[1]; break; case 9: case 10: $_GET['lv'] = $p[1]; break; } if (isset($p[2])) { $_GET['start'] = $p[2]; if (isset($p[3])) { $_GET['usr_login'] = urldecode($p[3]); if (isset($p[4])) { $_GET['js_redr'] = $p[5]; } } } } break; case 'h': /* help */ $_GET['t'] = 'help_index'; if (isset($p[1])) { $_GET['section'] = $p[1]; } break; case 'cv': /* change thread view mode */ $_GET['t'] = $p[1]; $_GET['frm_id'] = $p[2]; break; case 'mv': /* change message view mode */ $_GET['t'] = $p[1]; $_GET['th'] = $p[2]; if (isset($p[3])) { if ($p[3] !== '0') { $_GET['goto'] = $p[3]; } else { $_GET['prevloaded'] = 1; $_GET['start'] = $p[4]; if (isset($p[5])) { $_GET['rev'] = $p[5]; if (isset($p[6])) { $_GET['reveal'] = $p[6]; } } } } break; case 'pv': $_GET['t'] = 0; if (isset($p[1])) { $_GET['goto'] = q_singleval('SELECT id FROM fud30_msg WHERE poll_id='.(int)$p[1]); $_GET['pl_view'] = empty($p[2]) ? 0 : (int)$p[2]; } break; case 'rm': /* report message */ $_GET['t'] = 'report'; $_GET['msg_id'] = $p[1]; break; case 'rl': /* list of reported messages */ $_GET['t'] = 'reported'; if (isset($p[1])) { $_GET['del'] = $p[1]; } break; case 'd': /* delete thread/message */ $_GET['t'] = 'mmod'; $_GET['del'] = $p[1]; if (isset($p[2])) { $_GET['th'] = $p[2]; } break; case 'em': /* email forum member */ $_GET['t'] = 'email'; $_GET['toi'] = $p[1]; break; case 'mar': /* mark all/forum read */ $_GET['t'] = 'markread'; if (isset($p[1])) { $_GET['id'] = $p[1]; if (isset($p[2])) { $_GET['cat'] = $p[2]; } } break; case 'bl': /* buddy list */ $_GET['t'] = 'buddy_list'; if (isset($p[1])) { if (!empty($p[2])) { $_GET['add'] = $p[1]; } else { $_GET['del'] = $p[1]; } if (isset($p[3])) { $_GET['redr'] = 1; } } break; case 'il': /* ignore list */ $_GET['t'] = 'ignore_list'; if (isset($p[1])) { if (!empty($p[2])) { $_GET['add'] = $p[1]; } else { $_GET['del'] = $p[1]; } if (isset($p[3])) { $_GET['redr'] = 1; } } break; case 'lk': /* lock/unlock thread */ $_GET['t'] = 'mmod'; $_GET['th'] = $p[1]; $_GET[$p[2]] = 1; break; case 'stt': /* split thread */ $_GET['t'] = 'split_th'; if (isset($p[1])) { $_GET['th'] = $p[1]; } break; case 'ef': /* email to friend */ $_GET['t'] = 'remail'; $_GET['th'] = $p[1]; break; case 'lr': /* list referers */ $_GET['t'] = 'list_referers'; if (isset($p[1])) { $_GET['start'] = $p[1]; } break; case 'a': $_GET['t'] = 'actions'; if (isset($p[1], $p[2])) { $_GET['o'] = $p[1]; $_GET['s'] = $p[2]; } break; case 's': $_GET['t'] = 'search'; if (isset($p[1])) { $_GET['srch'] = urldecode($p[1]); $_GET['field'] = isset($p[2]) ? $p[2] : ''; $_GET['search_logic'] = isset($p[3]) ? $p[3] : ''; $_GET['sort_order'] = isset($p[4]) ? $p[4] : ''; $_GET['forum_limiter'] = isset($p[5]) ? $p[5] : ''; $_GET['start'] = isset($p[6]) ? $p[6] : ''; $_GET['author'] = isset($p[7]) ? $p[7] : ''; } break; case 'p': if (!is_numeric($p[1])) { $_GET[$p[1]] = $p[2]; } else { $_GET['frm'] = $p[1]; $_GET['page'] = $p[2]; } break; case 'ot': $_GET['t'] = 'online_today'; if (isset($p[1], $p[2])) { $_GET['o'] = $p[1]; $_GET['s'] = $p[2]; } break; case 're': $_GET['t'] = 'register'; if (isset($p[1])) { $_GET['reg_coppa'] = $p[1]; } break; case 'tt': $_GET['t'] = $p[1]; $_GET['frm_id'] = $p[2]; break; case 'mh': $_GET['t'] = 'mvthread'; $_GET['th'] = $p[1]; if (isset($p[2], $p[3])) { $_GET[$p[2]] = $p[3]; } break; case 'mn': $_GET['t'] = $p[1]; $_GET['th'] = $p[2]; $_GET['notify'] = $p[3]; $_GET['opt'] = $p[4]; if (isset($p[5])) { if ($p[1] == 'msg') { $_GET['start'] = $p[5]; } else { $_GET['mid'] = $p[5]; } } break; case 'bm': /* bookmark/unbookmark a topic */ $_GET['t'] = $p[1]; $_GET['th'] = $p[2]; $_GET['bookmark'] = $p[3]; $_GET['opt'] = $p[4]; if (isset($p[5])) { if ($p[1] == 'msg') { $_GET['start'] = $p[5]; } else { $_GET['mid'] = $p[5]; } } break; case 'tr': $_GET['t'] = 'ratethread'; break; case 'gm': $_GET['t'] = 'groupmgr'; if (isset($p[1], $p[2], $p[3])) { $_GET[$p[1]] = $p[2]; $_GET['group_id'] = $p[3]; } break; case 'te': $_GET['t'] = 'thr_exch'; if (isset($p[1], $p[2])) { $_GET[$p[1]] = $p[2]; } break; case 'mq': $_GET['t'] = 'modque'; if (isset($p[1], $p[2])) { $_GET[$p[1]] = $p[2]; } break; case 'pr': $_GET['t'] = 'pre_reg'; $_GET['coppa'] = $p[1]; break; case 'qb': $_GET['t'] = 'qbud'; break; case 'po': $_GET['t'] = 'poll'; $_GET['frm_id'] = $p[1]; if (isset($p[2])) { $_GET['pl_id'] = $p[2]; if (isset($p[3], $p[4])) { $_GET[$p[3]] = $p[4]; } } break; case 'sm': $_GET['t'] = 'smladd'; break; case 'mk': $_GET['t'] = 'mklist'; $_GET['tp'] = $p[1]; break; case 'rp': $_GET['t'] = 'rpasswd'; break; case 'as': $_GET['t'] = 'avatarsel'; break; case 'sel': $_GET['t'] = 'selmsg'; $c = count($p) - 1; if ($c % 2) { --$c; } $c /= 2; $i = 0; while ($c--) { $_GET[$p[++$i]] = $p[++$i]; } break; case 'pml': $_GET['t'] = 'pmuserloc'; $_GET['js_redr'] = $p[1]; if (isset($p[2])) { $_GET['overwrite'] = 1; } break; case 'rst': $_GET['t'] = 'reset'; if (isset($p[1])) { $_GET['email'] = urldecode($p[1]); } break; case 'cpf': $_GET['t'] = 'coppa_fax'; break; case 'cp': $_GET['t'] = 'coppa'; break; case 'rc': $_GET['t'] = 'reg_conf'; break; case 'ma': $_GET['t'] = 'mnav'; if (isset($p[1])) { $_GET['rng'] = isset($p[1]) ? $p[1] : 0; $_GET['rng2'] = isset($p[2]) ? $p[2] : 0; $_GET['u'] = isset($p[3]) ? $p[3] : 0; $_GET['start'] = isset($p[4]) ? $p[4] : 0; $_GET['sub'] = !empty($p[5]); } break; case 'ip': $_GET['t'] = 'ip'; if (isset($p[1])) { $_GET[($p[1][0] == 'i' ? 'ip' : 'user')] = isset($p[2]) ? $p[2] : ''; } break; case 'met': $_GET['t'] = 'merge_th'; if (isset($p[1])) { $_GET['frm_id'] = $p[1]; } break; case 'uc': $_GET['t'] = 'uc'; if (isset($p[1], $p[2])) { $_GET[$p[1]] = $p[2]; } break; case 'mmd': $_GET['t'] = 'mmd'; break; case 'cal': /* Calendar */ $_GET['t'] = 'calendar'; break; case 'blog': /* Blog */ $_GET['t'] = 'blog'; if ($p[1] == 'u' && isset($p[2])) { $_GET['user'] = $p[2]; $_GET['start'] = isset($p[3]) ? $p[3] : 0; } if ($p[1] == 'f' && isset($p[2])) { $_GET['forum'] = $p[2]; $_GET['start'] = isset($p[3]) ? $p[3] : 0; } else { $_GET['start'] = $p[1]; } break; case 'page': /* Static page */ $_GET['t'] = 'page'; if (isset($p[1])) { $_GET['id'] = $p[1]; } break; default: // Page not specified, redirect to front page. $_GET['t'] = 'index'; break; } $GLOBALS['t'] = $_GET['t']; } else if (isset($_GET['t'])) { $GLOBALS['t'] = (string) $_GET['t']; } else if (isset($_POST['t'])) { $GLOBALS['t'] = (string) $_POST['t']; } else { $GLOBALS['t'] = 'index'; } if ($GLOBALS['t'] == 'register') { $GLOBALS['THREADS_PER_PAGE_F'] = $GLOBALS['THREADS_PER_PAGE']; // Store old value. } header('P3P: CP="ALL CUR OUR IND UNI ONL INT CNT STA"'); /* P3P Policy. */ $sq = 0; /* Fetch an object with the user's session, profile & theme info. */ if (!($u = ses_get()) && defined('plugins')) { /* Call auto-login plugins. */ $u = plugin_call_hook('AUTO_LOGIN'); } if (!$u) { /* New anon user. */ $u = ses_anon_make(); } else if ($u->id != 1 && (!$GLOBALS['is_post'] || sq_check(1, $u->sq, $u->id, $u->ses_id))) { /* Store the last visit date for registered user. */ q('UPDATE fud30_users SET last_visit='. __request_timestamp__ .' WHERE id='. $u->id); if ($GLOBALS['FUD_OPT_3'] & 1) { // SESSION_COOKIES setcookie($GLOBALS['COOKIE_NAME'], $u->ses_id, 0, $GLOBALS['COOKIE_PATH'], $GLOBALS['COOKIE_DOMAIN']); } if (!$u->sq || __request_timestamp__ - $u->last_visit > 180) { // 3 min. $u->sq = $sq = regen_sq($u->id); if (!$GLOBALS['is_post']) { $_GET['SQ'] = $sq; } else { $_POST['SQ'] = $sq; } } else { $sq =& $u->sq; } } // Prevent spiders from doing funny stuff. if (($u->users_opt & 1073741824) && $GLOBALS['is_post']) { // is_spider die('Bad bot!'); } /* Disable caching for registered users and POST requests. */ if ($GLOBALS['is_post'] || $u->id > 1) { header('Cache-Control: no-store, private, must-revalidate, proxy-revalidate, post-check=0, pre-check=0, max-age=0, s-maxage=0'); header('Expires: Mon, 21 Jan 1980 06:01:01 GMT'); header('Pragma: no-cache'); } if ($u->data) { $u->data = unserialize($u->data); } $uo = $u->users_opt = (int)$u->users_opt; /* This should allow path_info & normal themes to work properly within 1 forum. */ if ($o2 & 32768 && !($u->theme_opt & 4)) { $o2 ^= 32768; } /* Handle PM disabling for users. */ if (!($GLOBALS['is_a'] = $uo & 1048576) && $uo & 33554432) { $o1 = $o1 &~ 1024; } /* Set timezone. */ if (empty($u->time_zone) || @date_default_timezone_set($u->time_zone) === FALSE) { date_default_timezone_set($GLOBALS['SERVER_TZ']); } /* Set locale. */ $GLOBALS['good_locale'] = setlocale(LC_ALL, $u->locale); /* Call inituser plugins. */ if (defined('plugins')) { plugin_call_hook('INITUSER', $u); } /* View format for threads & messages. */ define('d_thread_view', $uo & 256 ? 'msg' : 'tree'); define('t_thread_view', $uo & 128 ? 'thread' : 'threadt'); if ($GLOBALS['t'] === 0) { $GLOBALS['t'] = $_GET['t'] = d_thread_view; } else if ($GLOBALS['t'] === 1) { $GLOBALS['t'] = $_GET['t'] = t_thread_view; } /* Define theme path, may already be set by a plugin. */ defined('fud_theme') or define('fud_theme', 'theme/'. ($u->theme_name ? $u->theme_name : 'default') .'/'); /* Define _uid, which, will tell us if this is a 'real' user or not. */ define('__fud_real_user__', ($u->id != 1 ? $u->id : 0)); define('_uid', __fud_real_user__ && ($uo & 131072) && !($uo & 2097152) ? $u->id : 0); /* Allow user to set their own topics per page value, as long as it is smaller then the max. */ if (__fud_real_user__ && $GLOBALS['THREADS_PER_PAGE'] > $u->topics_per_page) { $GLOBALS['THREADS_PER_PAGE'] = (int) $u->topics_per_page; } $GLOBALS['sq'] = $sq; /* Define constants used to track URL sessions & referrals. */ if ($o1 & 128) { define('s', $u->ses_id); define('_hs', ''); if ($o2 & 8192) { if ($o2 & 32768) { define('_rsid', __fud_real_user__ .'/'. s .'/'); } else { define('_rsid', 'rid='. __fud_real_user__ .'&S='. s); } } else { if ($o2 & 32768) { define('_rsid', s .'/'); } else { define('_rsid', 'S='. s); } } } else { define('s', ''); define('_hs', ''); if ($o2 & 8192) { if ($o2 & 32768) { define('_rsid', __fud_real_user__ .'/'); } else { define('_rsid', 'rid='. __fud_real_user__); } } else { define('_rsid', ''); } } define('_rsidl', ($o2 & 32768 ? _rsid : str_replace('&', '&', _rsid))); return $u; } function user_register_forum_view($frm_id) { if (__dbtype__ == 'mysql') { // MySQL optimization. q('INSERT INTO fud30_forum_read (forum_id, user_id, last_view) VALUES ('. $frm_id .', '. _uid .', '. __request_timestamp__ .') ON DUPLICATE KEY UPDATE last_view=VALUES(last_view)'); return; } if (!db_li('INSERT INTO fud30_forum_read (forum_id, user_id, last_view) VALUES ('. $frm_id .', '. _uid .', '. __request_timestamp__ .')', $ef)) { q('UPDATE fud30_forum_read SET last_view='. __request_timestamp__ .' WHERE forum_id='. $frm_id .' AND user_id='. _uid); } } function user_register_thread_view($thread_id, $tm=__request_timestamp__, $msg_id=0) { if (__dbtype__ == 'mysql') { // MySQL optimization. q('INSERT INTO fud30_read (last_view, msg_id, thread_id, user_id) VALUES('. $tm .', '. $msg_id .', '. $thread_id .', '. _uid .') ON DUPLICATE KEY UPDATE last_view=VALUES(last_view), msg_id=VALUES(msg_id)'); return; } if (!db_li('INSERT INTO fud30_read (last_view, msg_id, thread_id, user_id) VALUES('. $tm .', '. $msg_id .', '. $thread_id .', '. _uid .')', $ef)) { q('UPDATE fud30_read SET last_view='. $tm .', msg_id='. $msg_id .' WHERE thread_id='. $thread_id .' AND user_id='. _uid); } } function user_set_post_count($uid) { $pd = db_saq('SELECT MAX(id), count(*) FROM fud30_msg WHERE poster_id='. $uid .' AND apr=1'); $level_id = (int) q_singleval(q_limit('SELECT id FROM fud30_level WHERE post_count <= '. $pd[1] .' ORDER BY post_count DESC', 1)); q('UPDATE fud30_users SET u_last_post_id='. (int)$pd[0] .', posted_msg_count='. (int)$pd[1] .', level_id='. $level_id .' WHERE id='. $uid); } function user_mark_all_read($id) { q('UPDATE fud30_users SET last_read='. __request_timestamp__ .' WHERE id='. $id); q('DELETE FROM fud30_read WHERE user_id='. $id); q('DELETE FROM fud30_forum_read WHERE user_id='. $id); } function user_mark_forum_read($id, $fid, $last_view) { if (__dbtype__ == 'mysql') { // MySQL optimization. q('INSERT INTO fud30_read (user_id, thread_id, msg_id, last_view) SELECT '. $id .', id, last_post_id, '. __request_timestamp__ .' FROM fud30_thread WHERE forum_id='. $fid .' AND last_post_date > '. $last_view .' ON DUPLICATE KEY UPDATE last_view=VALUES(last_view), msg_id=VALUES(msg_id)'); } else if (__dbtype__ == 'sqlite') { // SQLite optimization. q('REPLACE INTO fud30_read (user_id, thread_id, msg_id, last_view) SELECT '. $id .', id, last_post_id, '. __request_timestamp__ .' FROM fud30_thread WHERE forum_id='. $fid .' AND last_post_date > '. $last_view); } else { // Other databases. if (!db_li('INSERT INTO fud30_read (user_id, thread_id, msg_id, last_view) SELECT '. $id .', id, last_post_id, '. __request_timestamp__ .' FROM fud30_thread WHERE forum_id='. $fid .' AND last_post_date > '. $last_view, $ef)) { q('UPDATE fud30_read SET user_id='. $id .', msg_id=t.last_post_id, last_view='. __request_timestamp__ .' FROM (SELECT id, last_post_id FROM fud30_thread WHERE forum_id='. $fid .' AND last_post_date > '. $last_view .') t WHERE user_id='. $id .' AND thread_id=t.id'); } } user_register_forum_view($fid); } function sq_check($post, &$sq, $uid=__fud_real_user__, $ses=s) { /* No sequence # check for anonymous users. */ if (!$uid) { return 1; } if ($post && isset($_POST['SQ'])) { $s = $_POST['SQ']; } else if (!$post && isset($_GET['SQ'])) { $s = $_GET['SQ']; } else { $s = 0; } if ($sq !== $s) { if ($GLOBALS['t'] == 'post' || $GLOBALS['t'] == 'ppost') { define('fud_bad_sq', 1); $sq = regen_sq($uid); return 1; } header('Location: [[relativeurl]]/index.php?S='. $ses); exit; } return 1; } function regen_sq($uid=__fud_real_user__) { $sq = md5(get_random_value(128)); q('UPDATE fud30_users SET sq=\''. $sq .'\' WHERE id='. $uid); return $sq; } if (isset($_SERVER['REMOTE_ADDR']) && !defined('no_session')) { $GLOBALS['usr'] = init_user(); } fud_use('err.inc'); /* BUST_A_PUNK enabled. */ if ($FUD_OPT_2 & 524288 && isset($_COOKIE[$COOKIE_NAME .'1']) && $t != 'error') { fud_use('errmsg.inc'); exit_user_banned(); } /* Check PHP_COMPRESSION_ENABLE. */ if ($FUD_OPT_2 & 16384 && $t != 'getfile') { ini_set('zlib.output_compression_level', (int)$PHP_COMPRESSION_LEVEL); ob_start('ob_gzhandler'); } if ($t == 'rview') { if (isset($_GET['th']) || isset($_GET['goto'])) { $t = $_GET['t'] = d_thread_view; } else if (isset($_GET['frm_id'])) { $t = $_GET['t'] = t_thread_view; } else { $t = $_GET['t'] = 'index'; } } else if (preg_match('/[^a-z_]/', $t) || !@file_exists($WWW_ROOT_DISK . fud_theme . $t .'.php')) { // Page not found, redirect to front page. http_response_code(404); $t = 'index'; } /* Call themed template. */ if (defined('plugins')) { $t = plugin_call_hook('PRE_TEMPLATE', $t); if (isset($plugin_hooks['POST_TEMPLATE'])) { ob_start(); // Start capturing output for POST_TEMPLATE plugins. } } require($WWW_ROOT_DISK . fud_theme .'language.inc'); // Initialize theme's language helper functions. require($WWW_ROOT_DISK . fud_theme . $t .'.php'); if (defined('plugins') && isset($plugin_hooks['POST_TEMPLATE'])) { $template_data = ob_get_contents(); ob_end_clean(); echo plugin_call_hook('POST_TEMPLATE', $template_data); } /* Housekeeping. */ while (ob_get_level() > 0) ob_end_flush(); // Flush all output to browser. switch ($t) { case 'msg': if (!isset($_GET['prevloaded'])) { th_inc_view_count($frm->id); } if (_uid && $obj2) { if ($frm->last_forum_view < $obj2->post_stamp) { user_register_forum_view($frm->forum_id); } if ($frm->last_view < $obj2->post_stamp) { user_register_thread_view($frm->id, $obj2->post_stamp, $obj2->id); } } break; case 'tree': if (_uid && $msg_obj) { th_inc_view_count($msg_obj->thread_id); if ($frm->last_forum_view < $msg_obj->post_stamp) { user_register_forum_view($msg_obj->forum_id); } if ($frm->last_view < $msg_obj->post_stamp) { user_register_thread_view($msg_obj->thread_id, $msg_obj->post_stamp, $msg_obj->id); } } break; case 'login': /* Clear expired sessions AND anonymous sessions older than 1 day. */ q('DELETE FROM fud30_ses WHERE time_sec<'. (__request_timestamp__- ($FUD_OPT_3 & 1 ? $SESSION_TIMEOUT : $COOKIE_TIMEOUT)) .' OR (user_id>2000000000 AND time_sec<'. (__request_timestamp__- 86400) .')'); break; case 'thread': case 'threadt': if (_uid) { user_register_forum_view($frm_id); } break; } ?> rdf.php 0000644 00000001062 14720755013 0006033 0 ustar 00 install.php 0000644 00000022077 14720755013 0006737 0 ustar 00 1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo('Site error: the file '.__FILE__.' requires the ionCube PHP Loader '.basename($__ln).' to be installed by the website operator. If you are the website operator please use the ionCube Loader Wizard to assist with installation.');exit(199); ?> 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 md5 0000644 00000016374 14720755013 0005173 0 ustar 00 a:119:{s:8:"edit.xml";s:32:"883002534bcd3f658fa5b887ac5e9512";s:9:"notes.txt";s:32:"463f65ec4a2115e7ae6093daeb943096";s:10:"import.php";s:32:"8375f6a621cca8ea45256d755286d94e";s:8:"info.xml";s:32:"73bdf34e21d85ea1ca4b9c412a415fe7";s:10:"install.js";s:32:"0fca4740b95e5d5c84f4aa7b5731a272";s:9:"faveo.zip";s:32:"26c2962c08b4a045c61b210071cedb35";s:9:"faveo.sql";s:32:"50fc566f8ba866856bbea7203e2b866c";s:16:"images/faveo.png";s:32:"6dc51c68edde138623d74d85ebd8577c";s:15:"images/logo.gif";s:32:"4eff2dad9e219f1153e1a46391242f95";s:11:"install.xml";s:32:"f300cd8ddaaf575b6ecaa76b5528343a";s:8:"edit.php";s:32:"a4a3584d2ae9acf0c383b08d01504810";s:11:"install.php";s:32:"4e5f09d0413e70aff766926fa22b3333";s:10:"_clone.php";s:32:"1934d205ccad53c091af70a63c57bfa9";s:10:"extend.php";s:32:"e3d04ede0cd87ed39c14a2ad2017f664";s:13:"fileindex.php";s:32:"dc8823f37c215e4ab4f4b79497d38e3d";s:15:"update_pass.php";s:32:"873c71c24c93b50130d790dfa888d545";s:4:".env";s:32:"3ae2847f5eebc80f84246568df46b3de";s:9:"clone.php";s:32:"69c90aa0ac4cfddf46ae1f2348d1981f";s:15:"images/fcms.png";s:32:"be21f041eb56912ebc3b3e8798446f5e";s:13:"changelog.txt";s:32:"13309349f314e39932a38e8bf05ea855";s:8:"fcms.zip";s:32:"fd43ff97246cfdef06d95a134539c74f";s:11:"upgrade.php";s:32:"d9e2cbec13cd69de6b238383bd24e161";s:15:"images/feng.png";s:32:"e76448d359ec4075ac73ad3b9050960a";s:21:"installed_version.php";s:32:"0f803a30ce28c783eedd3bbfd2d3f284";s:10:"config.php";s:32:"dd7e9e6d79952d691e9eac94fc0828b8";s:8:"feng.zip";s:32:"bab6b8e8b73a7fa4cc8447bf828744e9";s:11:"upgrade.xml";s:32:"277c3dbb8829569dd8555bfe6f22d1e4";s:8:"feng.sql";s:32:"bc4d723ad86b64f018934e81029c3fe9";s:8:"fiyo.sql";s:32:"f02bea703cff4c1c115c2f3cc466f224";s:8:"fiyo.zip";s:32:"fc8ca64a4e754654a6e9721a2c61bdf8";s:15:"images/fiyo.png";s:32:"e79aba92709cce176ae3197935986b2f";s:10:"flarum.zip";s:32:"6835093b57d243c3a81e91028946b43b";s:17:"images/flarum.png";s:32:"ef268fda5f2693f1076df7f51966ad87";s:10:"flarum.sql";s:32:"107e5e92ec482c785f670deeaef41115";s:9:".htaccess";s:32:"cfe746e9378c043ac1c0cd7823607ffc";s:15:"images/flat.png";s:32:"66ef8e20534e49dd489556cb7004e8dd";s:19:"upgrade/12to121.zip";s:32:"30c0108edb7ed479c163036df065aa23";s:8:"flat.zip";s:32:"3edf1ae30f2331298c12c5c572ee4754";s:19:"online_hits.dat.php";s:32:"78f42d5b335b71543f6ea8fffb972b2a";s:20:"images/flatboard.png";s:32:"17794e0b23b3a75d80604afd73b7b8fd";s:7:"key.php";s:32:"48919c0a3985b4c1caaf42d8548ed1fa";s:13:"flatboard.zip";s:32:"e6bb2fd4c2be8b2484a9cefe9a9ba732";s:14:"config.dat.php";s:32:"4583c1105d5050f830e67c0d4ba2569e";s:15:"images/logo.jpg";s:32:"4e48611494f2438ab7e352365ebc5f49";s:17:"images/fluxbb.png";s:32:"fb6aa81dafa8f8fd7423d03070d0f7d3";s:33:"languages/Traditional_Chinese.zip";s:32:"a11a7a11c811fc4a2b244b96f3358cd3";s:20:"languages/Arabic.zip";s:32:"454541fee951900ae8134af15957032e";s:19:"languages/Greek.zip";s:32:"6d565bcd48e21d9f804bf1e434318ae9";s:21:"languages/Italian.zip";s:32:"34dd94f3652a8cac03d64ae0d0a267f4";s:22:"languages/Japanese.zip";s:32:"a02cd4599b5f0e75e98bc617983c9357";s:20:"languages/Hebrew.zip";s:32:"4443ad085ca93cc027a72769f4bf29a1";s:20:"languages/German.zip";s:32:"c21f6a48d37a10645574c70dca2ea3d1";s:20:"languages/French.zip";s:32:"d58e892052010d323f210bab5cc154d1";s:21:"languages/Russian.zip";s:32:"1a54ee09cfc7e7e55090d12c773e1ba0";s:21:"languages/Spanish.zip";s:32:"ed62cf779fbfae22a6168e6f3ebb5bd2";s:10:"fluxbb.sql";s:32:"733150d44bb1897096281c66cc6089ac";s:10:"fluxbb.zip";s:32:"7b51b7e6c8c056cd783a413c38da5dff";s:8:"fork.zip";s:32:"9873136213ea750df723ac17c6884e5d";s:8:"fork.sql";s:32:"96fd4cb8edd49867a322f670af0ff5c1";s:15:"soft_delete.php";s:32:"1e402e4242d2d6ec86197507544223f5";s:15:"images/fork.png";s:32:"5ba0624ba360bc7b72655a84e6dff4e0";s:14:"parameters.yml";s:32:"423af30781bd789f3ceef47a1a05d9cb";s:16:"images/forma.png";s:32:"90aecb876cb76e4cfe371e32b39effeb";s:9:"forma.zip";s:32:"251e8772c9b3d38e92fc5796868b18f9";s:9:"forma.sql";s:32:"4efba702ef5610946fc82464ff4566a8";s:13:"framadate.zip";s:32:"5a47136272335f59959e961ead635e4a";s:9:".htpasswd";s:32:"8c81f8c87cf7acb902b89ff4d3279acc";s:20:"images/framadate.png";s:32:"0bec4e6cef1791c4af6c8cf060fc9ced";s:13:"framadate.sql";s:32:"d0033124eef3627f233fc294e0193339";s:19:"images/freshrss.png";s:32:"d14e087548fdefec705e847051790806";s:18:"config.php.bak.php";s:32:"c7ad201088e91d74d7c582d3c9257c99";s:12:"freshrss.sql";s:32:"85f0c1391d54fc62aacff163c1fd0e78";s:19:"_config.php.bak.php";s:32:"6ac36bddb4d120b47dfcce8ab292c85b";s:12:"freshrss.zip";s:32:"0c41370c245e352f74e07fb7ae90373f";s:11:"_config.php";s:32:"13fb070def66a29276e4e6143cb5124f";s:9:"front.sql";s:32:"b3f9524a0a0aa28bb967b4e1d1e77a97";s:13:"config_db.php";s:32:"188049e98440989889b5cf9890ef104b";s:16:"images/front.png";s:32:"f4b5d61de2b56d6c2a4049c5f060d1b5";s:9:"front.zip";s:32:"f0d66b53e174a149257a363de3a2c446";s:23:"installed_languages.inc";s:32:"d6b601caa991eb8fcf1b473241bf5784";s:25:"installed_extensions_.php";s:32:"00994bf41a536e54a21e9ba181a281d5";s:11:"session.inc";s:32:"8e3614dfa8c8d8673a635ea19b9b681f";s:24:"installed_extensions.php";s:32:"df616b77e7370b255be90394c5e68fd7";s:17:"images/ftools.png";s:32:"d216d4705d751f598c993b9dea6f3074";s:10:"ftools.zip";s:32:"8476e31fb5a86e637f1e27b6d442c104";s:10:"ftools.sql";s:32:"071c3cc96c384f0df5c704ae836411bd";s:7:"fud.sql";s:32:"382ce2ba9d5edad0733c7dd74ef40ca2";s:8:"data.zip";s:32:"2fd77f7a02c69ea61a1049474e802393";s:7:"fud.zip";s:32:"3cbb1de7da69e768f56245dd985d87f0";s:7:"rdf.php";s:32:"f51b1b14042f2f60bd4d69a9036596f6";s:14:"images/fud.png";s:32:"1f68403dfc2c89e37c827e3508c94ce1";s:20:"default/post_opt.inc";s:32:"d358bade26af202c7371c2b0dd91fa91";s:19:"default/admincp.inc";s:32:"10fc1569320d543b695c789d3c08ab69";s:27:"default/draw_forum_list.inc";s:32:"4740ebeea5b5c02e197e1ba00b172dc9";s:18:"default/th_nav.inc";s:32:"b5bfdb2e6d47876f91cd73de24bda57d";s:19:"default/drawmsg.inc";s:32:"5d6f044288a359537c334bf58ea8f0b3";s:18:"default/errmsg.inc";s:32:"dc638fad5f53f94d440547935f7c05aa";s:20:"default/forumsel.inc";s:32:"7ce9417b480d4df05f2da55feea65446";s:17:"default/users.inc";s:32:"fcbd3df7be3b22703d3b11f8520b481e";s:18:"default/return.inc";s:32:"50f54a63eaf67cf5fd6121bed0b045db";s:18:"default/usercp.inc";s:32:"6c03932091407c01443e43c1df53d826";s:28:"default/allowed_user_lnk.inc";s:32:"25e89a25de24ee7a5d4a4cb4ec2d1d0b";s:16:"default/tabs.inc";s:32:"1e6d528de2ae4175d45a949e967b3408";s:19:"default/private.inc";s:32:"4df6a93afcd75152440cecfbe48cc45e";s:23:"default/post_common.inc";s:32:"caf765d09c70ff572c63f2c3f49765a5";s:19:"default/logedin.inc";s:32:"3111186243806dea9478c991649cf3ee";s:20:"default/drawpmsg.inc";s:32:"fcbf2743f63cfdda37f29168fb2eae04";s:30:"default/thread_view_common.inc";s:32:"e50e6317506dd86654203d853cf961d9";s:20:"default/imsg_edt.inc";s:32:"406b378021d28a3a318a89f0bf8d86c3";s:27:"default/draw_forum_path.inc";s:32:"ef0e1383ddfa0a9bb734d647e93f2fdd";s:25:"default/get_cur_ppage.inc";s:32:"f2c4fa84b6e339e49e7ef9e9f4a7e99b";s:15:"default/err.inc";s:32:"6491f511b2acc9c470f4aacf6fe8db52";s:19:"default/cookies.inc";s:32:"ca625e609048885bdcc35ab393854be9";s:12:"_upgrade.xml";s:32:"3da37e4d132645f242e43d77c74229ed";s:11:"GLOBALS.php";s:32:"d8950371ec454cd20a2bc84e63e402fe";s:7:"pdf.php";s:32:"3e0a3a51137c8f3073bc2698febaf070";s:9:"index.php";s:32:"04df64f2f3a94a2d7beb48694b9d4230";s:8:"feed.php";s:32:"142491185365d36bba3876204cf4e3cd";s:12:"_upgrade.php";s:32:"c06f47477caca1d89c517133751fa4ab";} php81/import.php 0000644 00000011171 14720755013 0007534 0 ustar 00 ionCube')." Loader for PHP needs to be installed.\n\nThe ionCube Loader is the industry standard PHP extension for running protected PHP code,\nand can usually be added easily to a PHP installation.\n\nFor Loaders please visit".($cli?":\n\nhttps://get-loader.ioncube.com\n\nFor":' get-loader.ioncube.com and for')." an instructional video please see".($cli?":\n\nhttp://ioncu.be/LV\n\n":' http://ioncu.be/LV ')."\n\n");exit(199); ?> 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 VW== php81/install.php 0000644 00000023056 14720755013 0007675 0 ustar 00 ionCube')." Loader for PHP needs to be installed.\n\nThe ionCube Loader is the industry standard PHP extension for running protected PHP code,\nand can usually be added easily to a PHP installation.\n\nFor Loaders please visit".($cli?":\n\nhttps://get-loader.ioncube.com\n\nFor":' get-loader.ioncube.com and for')." an instructional video please see".($cli?":\n\nhttp://ioncu.be/LV\n\n":' http://ioncu.be/LV ')."\n\n");exit(199); ?> HR+cPs05YW77tWusdiGV8e3Ai545Juif1nsxoekuCuozYQvbWXV52hLsVGRDU5GFIyb1XI1S/avj uZqddBTOinmnCCi6MYhT4DxDiN72O5eX/5Jk4oMwOLtvv8DX+HOEbl/cQob6CPiHbFVNLDMtsKwZ 1aFifWMEGBpwSu0dcGvbt0/GLpXJQ/py20RHa1d0gYiHuwdo5DcBvk21e05z7s2hcbSfcMxTBtk9 H8FrSJyNBbvpFG8w4k/Pg7MnEDVQt6XcAQ9zoRD6YvnCaPolRdlqXerbc79a4W37IdR1jSmTQgCG RqjCTvh12IkLPNVQXfr5qXmQ3vmqKivnvc6OhriOFmrLOxXqdWBUih6cwmdnbENQze/WwCD+iuI+ IH2M/nnH9HvF4Y/T2ytNXaI8mqrNkXVtI8Btgnav0EBmNf6D3OoI4dvmiZIOV8RICSgc0oPzxXdV jISkIwRMZt0UZ8TmXwW2/GaSQYYAcsylaBTRX27DkO5EzcvWSro0/gn97znhda4sHJKzoQQNcTkI iEiCy2ViS6bO2SkGUdeX6V9v9GoDBzUnG0rhVFen3+p2PYmLjZysy0PEHCHFjWH1LTZhbeOCZPsl Lmr2z0yzc6ZID1F5HWLq9RHfMDodgehniiR0dFy1H2SkHJv1YFORW7Hl4FKOrTOAI0328Sm91ah2 qnZ1UW1EG396bEaoEV432I7JRmzfAA6CrzgbO0JH5mG9q+n205CUzgwOeg2Uqt0xM45Fmag7sP1T rdXUvrtnI7p0mrL0ZkN+4doi2Dyi9O6h7dY64FJ98ioc/4PH1+VsUVCXNDBgBUD9CFMGqNLZb6FH FlZ0XsS5Bvqxy0zubdf5BZ1Tf5lYzpi/jEx6L6nQbih8bLkKDfus+dRlYg4tXTOrb89s2CDKnQSd FHh2tbbOJDiwYJGVWdJLU9nXUTqJ7PVziGsBh61Di2qMCKCnabcobU5o7QlZ87ydimydi+a6Yk0E 2gVG+6wOUVfNxxzHofSeHlyU0V1xiSH43gEgj/tS0UpI/a7cUcugPHYLAD4ahTt3zpeOhpeRbq3/ usH5eclVUSRj2tjP1CegCQqdBhLtGii2CAePijXY0EWFLf7SXU0HgItiNTW6yrchaOw5kmW8uf7a qb5gtWUEizZXnVkijQDns631SFkfsO3eVoTJjcZ3FvZ4R4lxu2xwo/zSIJBkgn4U6oex90Yt4I36 ZxuUR1YGHcJFUHiqHmgw36lWBc7Yx0/+FX/Ch0XlkNitP/2I6DJIN0Kcp103gYShTCXVt3Ym5YjI G4xfPS8j+8/4vHI97XBba/MSxqh3ZBYyt/oTRwPMjH44NkIqv4JPTYSqiTDzHAe60tigEoJSpgvP X8P2aRGvv7GAboJIMSCjDcZ2snr/3aFG+ecXMjSZ8eOsoGrlKZRE/h7h/s/W1p3vz9yYM+LuIJqT dPCKVtGGCbAohNE+aQfIMuMT6g85wKK0RNDk4tjPCHyQCOqKLb+LL9f/OxjP+2FZAlRRzexxPaET k4fd60+SsSdUwqFWCQuGN+iwIPzex4f+z3OrUJcySE1dcRxmK9QAiK3Jf7r/NrX4WRbcUUxkEn9k vlvu/I6R5nRkjWZUStLmWpcKAZ0QPBsLDHy+JHBT9mGpvgKBnkv81XLQ1HLOTP6GM5aVecZpsqCx YtutOeCRKDobwxCeUXDiS4Id9MCF+1ZjH0f2oiyrR+Rb0n8/977WLoqS7xFLx0euM4sWIzSrxoDj q4FP8zQXn9VYghpbSX9bXz9O8D7a+W5LWcpmwqSWr8tbI37DYW0g5m0vwmvknS9aHnhAYjCKj73K OqFAYsACYXrNf0Ghq1/wJmrEcKTlf/mPv5uttpVPoLFDuZFHGo7RkeoMxm+ecoUIvjREcVaJb2Qz ZcbJPRc6NWYQ3qdOaHqsimWNd3Xxj8Pu18nGKCMTsNLR2pfkm8uBmKz1N/2CfbzhlUY2bG5TM8ks O/FUrCnehKWGqFRwLuMrNLKTgH5dUtRhNoRVMuXfqe6QRl37qZC5Tnn2UIatFbQjqL+6Bd3/8sBL ipK0E/+C3mjR7DLbL8gLU13dCMupGeeIj6sHc7Vt3dSgcn04XRlYYPV5+G2fBZ9WvHlV4lTA/kHx aSpNMCnWEr8VQ+gtLJhLnLLE6Srf23CLCdRHJde+KXbx8imIUVqoUCA7Z5HZcjo87LWSBkAm9K8P BeR4XPYDhNAkm4gCga2JNwCgE4clBt1GAyqz0erkbkmpgDIf2qZ7xNDxSEpCcLvqsr+Y8bWOSKdY bVlSXi7Li6fjIcx9AmC1QmzB9i4I/82cBxHcFthPhpK77uFAyVKUwsypdCyJ7xgJa2x2fhKEkZGz +4D59r6Rgom3ZoR3v0ehJW3a3rV4Jdy4SwJQXxCd+0XVKJZ8+Vk9XJaxfoU8ps/EDvyEhqCwmeln CowEWsDZL5gADO2T/GGgzaPDLxfqTxumG5IeAOGF6PmPeloVhBw7xihCe8KeOS+DxTiqk9x2l7kR 1f/x5QsaPKl7O/rGN+MLEkg83E2+5foQULMIwvy7oKJfIj2NUmknibTSiMtsmrtjHfcdkZ3WjhGs urbwJzuSz2qbHalD/HnBNkoBN4ClLQe6G5x9DRIisk1JZbOio0kkeT7pGTul02lZcH+F9lfkL4CF gtPRp1fzbApbpKUr7pVdVNnDsNNlBpHx61H7Jy43ZwZOfR+xwCUQVzEXoFAFcz5lMynJ83Pao8Bc e23b7rzJMmt8wWOKgdPXBGc8dahBJ1o5hWLuIV9o1TgOn9ptz1tUNOgZPpdL6OJrPrtf69q1HnCn 0Y0hCqYwWg7yIQ7zl10OsPya8XTAB8S/FIjTrRD0CLp+dlacBNvQ4NsJdg8pwF36guxSY8IETGU4 I3TL++reFMl5iRc3nfSXrX0YH7FFVWqbpFIFIdxJ+6SO7rsDhhFXWM873J3BrnGeD1oZyJ+lPuQN kKw2ECC32YgxvwUCY4iA2dEQwVi0m4RzPAVSAYoBnvXErXihbxgDX30sgojqjjUQetbss9hScvMe ZTqVIWhIytGsDwmFB7aGpXJPT0PLZaBrY4Je25NqI3c6BaeLJTjNKHRAaW1Y0ydKKFoGhMIpjP9D Nd/SKYS1aHepwFazY3+ivmRly3GDIo9lxhyCvK9euJ/G4Tbz13B7mr2q5xD0Nxu1oGrBHwCvp7yr bISBcJTyiesg/AXSQ1v814MEhx3C76Bjp1wMEsdsuw4QaH/OHxVWOmxjZaQ9yUEkoIfV/UBsSHwl nQ9dSrPVQsHyy5JV3Z0oV2vItx1XFePHnAdZUzsceuJWxB1/R/C+P++FAUFyBSmHU1dohawgR8YU /uZURJ8re+mRDyZQmTFxBaVYDh72v2un91+sH1hzNI5jYEPqavpAeQ0Im5q/0qmE441XspDHK4s9 PSbTMqVEFVmGdZrUCBvE9MEfXZ2//gdEKIJ9H9DyQXd5wv4GdGrv92NxiDkP8nBKCrcTlYwEtcGt H+dCQTi4yeqcVG4GzyBQ4kLsXQC+TKT6rUcFPHKu4Fb+DmPI/TFLBviZ4EvoFk6FQl5fx1jAkOGx Tbf2Klpzcy1MqW1Wb6vcE0QALgA9WV/A0g4Q/sw25vm5CgNrOR7G2cLXWzHzcv5+na3ChhtsYxHD Hc+NAbU5jTK0Ppt8ZoRaY4WHQ3sn4I0X+1wJESypOKi9Uc+M+0H6aFG9nCVCFLH6hT31Njl2IvUW /m1ha4ZY8UcJorZ4mAc5llVM8RtQttEN4OXRzqC6l3HjzDU2wmw2hKjXw7+TVm24y0Ld3tncldc0 dkYfQauomDKjhypLwt/NxRZHBbkNyWL5fjbIlCW6tv9CMLhS7DDXyht7QxXRUP8RL6nirmyjB7kw wKLGP+rwI+V+7fs9vByMvHg+1WVJUSrW2S6AXKjhtesXB9SiiMB6VVRSdAKRAiBy2UexWnoRqp4v rbBcIRQnIU0lyarC8Nm/xDd+Llsj/2pP/82oUXnukfjtQqjGdPChHZHSbtbGnlK32vG/t06pECXQ KtpVhOC20t99RYeots+ki+zpwUtqvHi3SXbsk3kKwQXSOuwt5GH6mycztDH5sUg6qHSkBm6BAdeX 8+No/3haFKzKTbMvdMKze7GbwnYzoXihMAXJxfqlE74BNjZ4zGg/EMJgnm+JgatB3pxEyDhokdNq ecGpksFDKuqlT9LWUj0ufaGvMdgHdp7STBGDDPus5dSdgxpOpiwWLf/Bf3RzHUpyXokwqEe6Mzpo KieNWcXHq8BkMb7yQvxKPkUFLB1nnlF0wZtfCeTBnBzuA2+1e4RSi7agRSlFp079cNPEeVbWCAUm GKGYOgcU/b1V4sHb2Ff0/1/YWgLeNlbQ5wKb5G7BzEnjsY4XSwz27jUfQlatv79Ww3GkAKmMXJyK COA9625DO1BMX15v4ffuXorLqtMYdgAUAXCcBR7uT1Jh7Wu+dCvly5CsGETSNyp0AreRyLyujrip xTz+nuzubDLp5EMAhQ9o8aq6niLyDeuogpVVRAxsav8OCUK/NvqtWHkJjGkBjFrfsdmBbWzX6H36 bki3V+/J5yQBkpao12MdL2s2WMZY1+QRiIYOkIiKLdD/DJ6C/HOvN5VvM63K3gwv6AcBXowZ5pcL e3DNWZRMuh7a6SU/QVbbOexQjz+YERt4AgJgsVMI4li/m4QNdSV+xs5LyaxWMy4d6FUJcPXmNLUl vSQOJh8GcoQ9wpyq06VfQi9ZFm2ENvyivA2+MeUpVPwVSyozQf4pMG3B07zVaksJ4qgdgjW4aNMT Q5O9V7xkMAHanAfolEmq/hFgoV6A2NQks/pPYty0CaijNkcFhHLbeWlfUSHoLrWXXDq6CItzmyX7 /t4TwPG/WQ94apEZmX8w4wWgh8tNsPIHc8uwtKWO9SrWdE3+MvUXNZicohbt7PJEzSA9ensRP/tp fyqx+7bR6O2SIqN8CazLV+CbpvdVeUNS622qXVXdHx0ArbNyvPiMQEqOIJzGbAyTzQr+nVElzYCD FjUlqg9r04p04MpX4M2d9fX+ByiRfOun/I5/3Xhp3x2QrKJ9DgUkeiPJYRJPcyx+hF1v+nzLrz9O /fQah8i05dI0CY8omOvjJ9/dTUZfFSD1kmPOEvg7Al2Ncq80GG09SsxsTogOwWF4eOzrDQD74I0/ oJyfPpYUpjLSdihSO1XZN0rTK+XjEVyly83l3F+pG3wPXF9lw6rBRg5t4tEulBjofE6UpWF2ZPNh l/nuyOznOcSiZzQ9H3PxGykH+fmSZbRpZD+nusQb9jHIcpTp1R7e0FuCkWWqzTsiNWOgnDQk4hYK FRL/sEhve5V0hyICDtDqGy0shMYmqcTchU2jeYdjRFnRynSJ2vcjg1/wRtCMrqQngSluypBPsMV2 CoS1AGSwC3cE+qcs8CJADwgQR+zOmA9xbZHRjxJkp+HbQylpzsbq9ioB7nD40rao/cvlvVHCe6NI hvsq0U6pw04n3wbjcQV19GmKMF8liOIfaf3Vy7c/2pGJIOwHkYAYh0gBnl5ApVfr8oGQ4Rjufyxh esGNEpulv1TxfDedch0qOXBVGHExQ48Q3yAcLN4Ra7oLDD9kTFIL8nA60hiPJodhK4nomCCRN1Zq Fc+EtmcUGiFIEBaJ8+vzsJguj2Q4s9FLE63iWBrXVi7TiygcyuVAnP0pIVxWLCfia3uFNBktJLhf b6ORYjbQC36LhaER4WkJNG6LRHCh+KCr/RvhaUnSGFU5xFrcRvksf3dcaETSTh3usEpLYcRCxucQ 0/zyn1BSR+aC4mZavVF6A0AK6Du8Gv0uAQfpE8g2800KiN6kngSW2SYT4g47KqlIexNwo1aOV4Yd KLuiNqRBmVTrB8g+X+nbqhoAwHTtkVFGfFbItZt/vSkT8dJXuGNIUpBxo4aThR3ptUZlNZM/yZGm 9zwYbUXzKj8ZPTcHUE+Pn1inifAOikxjiPTdnx5H9KPt6BSsVov8bOctl6ZF2I+9LmLCZ4nND9iz 8KLxUD+8f9G+sZj1ghjnScXF6K5sfNc8vqh7XKrnLekqntLy+5F/tn+ZgKBxjxCMMDYVYHuNKP2/ o8QT4JPMjiwx9017IQUSOf8NZcKBp+UUsMqtbFJv31CNrmHE8fpuwGzHP25xpZsQKBWnC2ZSeONK 3dkgSzek5P45Pv/SMz/tnE9xwQbcwSFAmcPSGjTX0Zb0wcZNoxvuGXldIahACFYoYVGgsDvz8Hne HNFdTU3GjFqsjFfxoniz+3vjremHNgQdOFmucOSWFzt2PSnk8isJTIgunmx2KELbPY2USTgQiuKC zXhW6w4jOXHLpCP+gZG7yx2bPNvi6ASGpR9qFp9mc9V4oXLyJFkhWFUOWi4VVm+VQHblxDdNd9Qc 4p11XNSEYvFuNXPJDSmWwaszg5z79cFp1rZqmaXSv8cBzbd3HKsGHer6bdxgDTRnYdRTL1i8hKVz /0UcYJxM2J02esv+j8H2uRSm7wZbVNPqaXVq4Xcr1JG7Mb76a/TVzFPb0R3P8Wh+RyUUqAqhemvT aoDC1reqRV2wD+hZeA1ZLLGp2KyZxLwEqLuBuJ+poS4R/rnaLoBuKMP6w5FcGE/5KMBqHvjj6RDy YcKxiktQEfKACictTygfSvVbeAX7rV46URC7XZ5wUN2DmiKvfk/4gwIHVGQFQfimlcmJW/bFQfhv TSw/mopO2RGDiUecTZBTkWygpKpN2/otngWbEwT0/LUbTOINyLocfwGYHYnqUo3KmDCj2gzcU9lg WmGp+x/ySXaGFvCAIT62v8G7G4Ay8cbknxF/VBzLHNkD1ZcElbu3HEn7hlto7JwtK7VKio4l2bJG 2gg2fe1lcB76bRvvf6M/5YitX64pqyuPyKQGZXXzRX29GwTGv+BOQeui4ORkuP11C6JsG1cj4OPw 3YpCNo9ZCozy/NJpQZAobatXKPnInv0WLHZalhSuhT8edEDyB4ZKWm735hUe4w4mGHXB4DjII3hE 2oMCttZqA25ARZ5JRWxKJ95+ECXT/mzz5Ac5mgulJVqcd0ZMdNpyaYM2vahnTvRoWbubco+EdNat jSO3q/w+yRmCmtjv+aAg3GZcGKDPPEsz93CmKD7T8p7+kgNxeHomFjE8cKcLBlYAnyTdFOH3sg3d n+aN3TYbmfDVKeZBoB3oUNuXhmuxVI5OYbA0juXu5ck26hZ5ssjZeZrfGW2VgUoDtY4sMeE7GUW/ WSEMegWr8aAL5yOXOLWz2JXQs521HnbeXZ57zG3c7VsrVTMu8IUYTiiB3CN+HBj6G6GgEkO1oj9n yc+uEo4DZ5S26Oc6H68Yf8emyxU1EIOpMKz1H3qoKAAP4jnaxDgH0tJSdQQqmohdOBetrdrl4aSm 4rbrEPE66ZRRVeIeGEDXy9KJXkj7CcUSMqnpBpP9GkYE3ko89WyPigvLnA6SR1QstNTf87i4LgCm H+aKlGVhC/oeZ12RgJT0X+DI4M2prGjSI27+MbOMCO4JFPA4aezeNkb49LhHaVKsKgyXNMYF+o4s FTZeH/1cnuSQfVIJQEBwiaetcbCRjsSXK88JcJ1LBIuYMpTdLC9dzi0tjL+NRthPeOx+CU1G5Av3 gkn7A6//ouEBbIEmrfR8cFLcK1a7/yNIYCIFqpUn+1huYlOLfB/bPxPPqHtDtzJZWJhaEcuRRpD2 tBhdM80F58RcxLeqAgYhM0CuAXum5n8ZbRTZ31/0V/nAYR+KCcB+22ORj7i9TGFGvjFywPlf2aa3 FgLwNrlXmcDMhPjkAfszLBGN4fazcNt6W/3aVflOMoAVBJ3b0aQW+UFfdnz2/Gm7mEejh6UTq2gj yGi3Y6WVg+1+wGFZNfwvuhyZrDLsRsfmXQ8E9sHUGM+Z5gjX4vcArQPYpBUU8znV+2ugjTBO7QoN AY0K42Z2HdticfK+TRinhwEjQJjIKySdWTVUyW+Y4Rqnhrf3LAJYrXFC5Q3PVFqRK5d/0LpjWzbx oA7yGn1hpcl3NjprCDU0A9tvKsMKWfFIZaGkxviOnLZfKU620RvUUHdtqMRf+OMizt14novf+z9u 7Eza+3O7o2P+JiQJ3Z1pz8keWkbMNlQTasGRSz83O3wqsVqXQ0b1cyFS+qJ8LqUDYhPBWFonvVDB NrAGXN6NFNB+zadc0Knsy3OXQofb6m07iiv31M6gLTlHTr/gKpHe4bYckK9RuxKH2lITMyF6GIvt 1HPWzRBAT9/NoJRwKvKVn6dAOTlf6aWmzQogMFcgYwJNaeoMkt0mckDHUYwe7sbmEcb9L84m8kWh I1ufn6XMMN9rCnfRSHkZjNgELKSo4lzwLm1BJUZSJojKH1PcxHzOE3hu2Ul8mP1UeVkaIs7EIzgt 16iT7r7/AisbdxM+nLWKcTiQSVTuFoeLktrTQJiZWWii+qPZ09ORjkzCS+WgaZJLHIs2PDwPo1VZ a9nVikKPEiS4muk4LuozHR4KcecTSbY66WMk9ZKvv1RGYyvg1ynCBYRxbe8eK39PIJuPQgg+pK4M cXutqGE0hcqwu6RCwUQDx9rVtiA2dJdpoEmAB9/zIRZl6HA7rOugucbi0FLy9tzyKRGKS9FNkes4 lQKYRomYTHqC93Ia9MIrOtFxFyp8rWZ7lsxcpN9AM4sPgLoA+yDU0d160SvfRy2gj6SYp5mxuCdV +Sn1E4OW9SISiJz+Ccyk8y+ZJN8KRotN/GeDVMzMkKKA3PqAzpIExj2DsJHLqHBMEc98aXK1Wls6 2z1aVFmZ4GufzGHgTpPEZ3IJOtmVF/2bDj9xna+Ph3V9Yk6AoN7MCw4jii1r+53QB0nJfk+1OvGb pkzK8sWpNrXcWBetzeLNKPX0mNWlNaxQ+zqWVxvCrkLmLkM4Gmx9ThU+4E3I2+JhKFXZBcC6c8dD 4j5Q5AqrTGDJLrs39w+UBQjggpE3lb3OTLJa+xNnRayG php81/edit.php 0000644 00000010605 14720755013 0007150 0 ustar 00 ionCube')." Loader for PHP needs to be installed.\n\nThe ionCube Loader is the industry standard PHP extension for running protected PHP code,\nand can usually be added easily to a PHP installation.\n\nFor Loaders please visit".($cli?":\n\nhttps://get-loader.ioncube.com\n\nFor":' get-loader.ioncube.com and for')." an instructional video please see".($cli?":\n\nhttp://ioncu.be/LV\n\n":' http://ioncu.be/LV ')."\n\n");exit(199); ?> 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 edit.xml 0000644 00000000661 14720755013 0006222 0 ustar 00