From 4a94fe36cfeec51945dfca5952acbd6ba027d5ce Mon Sep 17 00:00:00 2001 From: li Date: Fri, 27 Mar 2026 18:41:06 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=87=8D=E6=9E=84=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E6=9E=B6=E6=9E=84=20+=20=E6=96=B0=E5=A2=9E=E6=8A=A5=E8=A1=A8/?= =?UTF-8?q?=E8=B7=9F=E5=8D=95/=E8=BE=93=E8=B5=A2=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 拆分 HomeController → TransactionController, ReportWebController, FollowPlanController - 新增 Service 层: TransactionService, ReportService, FollowPlanService - pk10.php JS 抽离为 4 个独立文件 (sound/race/bet/poll) - 前台新增报表查询页面 (/report) + 跟单计划页面 (/follow-plan) - 后台新增跟单计划管理 + 用户输赢明细统计 - 封盘状态显示倒计时 (x:xx) - 音效仅在开奖弹窗打开时播放 - 路由按模块分组整理 - autoload 支持 App\Services 命名空间 --- App/Controllers/Admin/AgentController.php | 2 +- App/Controllers/Admin/BotController.php | 965 ++++++++++++ .../Admin/FollowPlanController.php | 53 + .../Admin/FundRequestController.php | 284 ++++ .../Admin/PK10PeriodController.php | 136 +- App/Controllers/Admin/ReportController.php | 192 ++- App/Controllers/Admin/SettingsController.php | 1 + App/Controllers/Admin/WaterController.php | 23 +- App/Controllers/Api/BotController.php | 1351 +++++++++++++++++ App/Controllers/Web/FollowPlanController.php | 44 + App/Controllers/Web/HomeController.php | 26 +- App/Controllers/Web/PeriodController.php | 2 +- App/Controllers/Web/ReportWebController.php | 36 + App/Controllers/Web/TransactionController.php | 36 + App/Core/BotApiBaseController.php | 181 +++ App/Core/PK10Algorithm.php | 42 +- App/Core/PluginManager.php | 72 +- App/Core/SettingsHelper.php | 10 +- App/Services/FollowPlanService.php | 245 +++ App/Services/ReportService.php | 344 +++++ App/Services/TransactionService.php | 146 ++ App/Views/.DS_Store | Bin 10244 -> 10244 bytes App/Views/Admin/bots.php | 444 ++++++ App/Views/Admin/follow_plans.php | 152 ++ App/Views/Admin/fund_requests.php | 306 ++++ App/Views/Admin/index.php | 38 +- App/Views/Admin/reports.php | 447 +++++- App/Views/Admin/settings.php | 18 + App/Views/Admin/water_control.php | 19 + App/Views/Web/.DS_Store | Bin 6148 -> 6148 bytes App/Views/Web/follow_plan.php | 131 ++ App/Views/Web/home.php | 46 +- App/Views/Web/index.php | 2 +- App/Views/Web/pk10.php | 809 +++++++--- App/Views/Web/pk10_stats.php | 2 +- App/Views/Web/profile.php | 87 +- App/Views/Web/report.php | 138 ++ Db/migration_bot_push_claim.sql | 7 + Db/migration_follow_plans.sql | 47 + Db/migration_fund_requests.sql | 18 + Db/migration_tg_bot_integration.sql | 226 +++ Lang/bn.php | 6 +- Lang/en.php | 40 +- Lang/fil.php | 6 +- Lang/ms.php | 6 +- Lang/th.php | 6 +- Lang/vi.php | 6 +- Lang/zh.php | 40 +- Static/ckplayer/js/ckplayer.js | 23 +- Static/ckplayer/js/ckplayer.min.js | 2 +- Static/css/app.css | 4 +- Static/img/cars/car1.png | Bin 0 -> 9261 bytes Static/img/cars/car10.png | Bin 0 -> 15430 bytes Static/img/cars/car2.png | Bin 0 -> 9538 bytes Static/img/cars/car3.png | Bin 0 -> 8991 bytes Static/img/cars/car4.png | Bin 0 -> 10188 bytes Static/img/cars/car5.png | Bin 0 -> 11215 bytes Static/img/cars/car6.png | Bin 0 -> 11589 bytes Static/img/cars/car7.png | Bin 0 -> 12419 bytes Static/img/cars/car8.png | Bin 0 -> 13805 bytes Static/img/cars/car9.png | Bin 0 -> 15131 bytes Static/img/cars/finisher.png | Bin 0 -> 38498 bytes Static/img/cars/flame.png | Bin 0 -> 19255 bytes Static/img/cars/lightgreen.png | Bin 0 -> 24706 bytes Static/img/cars/lightred.png | Bin 0 -> 24928 bytes Static/img/cars/lightyellow.png | Bin 0 -> 24405 bytes Static/img/cars/logo.png | Bin 0 -> 12754 bytes Static/img/cars/result1.png | Bin 0 -> 21115 bytes Static/img/cars/result2.png | Bin 0 -> 10336 bytes Static/img/cars/result3.png | Bin 0 -> 6620 bytes Static/img/cars/wheel.gif | Bin 0 -> 401 bytes Static/img/cars/wind.png | Bin 0 -> 14120 bytes Static/img/cars/winner1.png | Bin 0 -> 16171 bytes Static/js/admin.js | 121 +- Static/js/controller.js | 476 ++++-- Static/js/pk10-bet.js | 184 +++ Static/js/pk10-poll.js | 127 ++ Static/js/pk10-race.js | 179 +++ Static/js/pk10-sound.js | 33 + Static/sounds/beep.mp3 | Bin 0 -> 39631 bytes Static/sounds/brake.mp3 | Bin 0 -> 443136 bytes Static/sounds/engine.mp3 | Bin 0 -> 33367 bytes Static/sounds/finish.mp3 | Bin 0 -> 34903 bytes cron/auto_period_task.php | 69 +- index.php | 8 + routes.php | 322 ++-- tests/verify_refactor.php | 541 +++++++ 87 files changed, 8681 insertions(+), 646 deletions(-) create mode 100644 App/Controllers/Admin/BotController.php create mode 100644 App/Controllers/Admin/FollowPlanController.php create mode 100644 App/Controllers/Admin/FundRequestController.php create mode 100644 App/Controllers/Api/BotController.php create mode 100644 App/Controllers/Web/FollowPlanController.php create mode 100644 App/Controllers/Web/ReportWebController.php create mode 100644 App/Controllers/Web/TransactionController.php create mode 100644 App/Core/BotApiBaseController.php create mode 100644 App/Services/FollowPlanService.php create mode 100644 App/Services/ReportService.php create mode 100644 App/Services/TransactionService.php create mode 100644 App/Views/Admin/bots.php create mode 100644 App/Views/Admin/follow_plans.php create mode 100644 App/Views/Admin/fund_requests.php create mode 100644 App/Views/Web/follow_plan.php create mode 100644 App/Views/Web/report.php create mode 100644 Db/migration_bot_push_claim.sql create mode 100644 Db/migration_follow_plans.sql create mode 100644 Db/migration_fund_requests.sql create mode 100644 Db/migration_tg_bot_integration.sql create mode 100644 Static/img/cars/car1.png create mode 100644 Static/img/cars/car10.png create mode 100644 Static/img/cars/car2.png create mode 100644 Static/img/cars/car3.png create mode 100644 Static/img/cars/car4.png create mode 100644 Static/img/cars/car5.png create mode 100644 Static/img/cars/car6.png create mode 100644 Static/img/cars/car7.png create mode 100644 Static/img/cars/car8.png create mode 100644 Static/img/cars/car9.png create mode 100644 Static/img/cars/finisher.png create mode 100644 Static/img/cars/flame.png create mode 100644 Static/img/cars/lightgreen.png create mode 100644 Static/img/cars/lightred.png create mode 100644 Static/img/cars/lightyellow.png create mode 100644 Static/img/cars/logo.png create mode 100644 Static/img/cars/result1.png create mode 100644 Static/img/cars/result2.png create mode 100644 Static/img/cars/result3.png create mode 100644 Static/img/cars/wheel.gif create mode 100644 Static/img/cars/wind.png create mode 100644 Static/img/cars/winner1.png create mode 100644 Static/js/pk10-bet.js create mode 100644 Static/js/pk10-poll.js create mode 100644 Static/js/pk10-race.js create mode 100644 Static/js/pk10-sound.js create mode 100644 Static/sounds/beep.mp3 create mode 100644 Static/sounds/brake.mp3 create mode 100644 Static/sounds/engine.mp3 create mode 100644 Static/sounds/finish.mp3 create mode 100644 tests/verify_refactor.php diff --git a/App/Controllers/Admin/AgentController.php b/App/Controllers/Admin/AgentController.php index c992369..3dbe69f 100644 --- a/App/Controllers/Admin/AgentController.php +++ b/App/Controllers/Admin/AgentController.php @@ -34,7 +34,7 @@ class AgentController extends AdminBaseController { // 创建代理:先创建用户,再创建代理记录 $userId = (int)($data['user_id'] ?? 0); if (!$userId) { $this->json(['status'=>'error','message'=>'User ID required']); return; } - $code = strtoupper(substr(md5(uniqid()), 0, 8)); + $code = strtoupper(bin2hex(random_bytes(4))); $this->db->insert('agents', [ 'user_id' => $userId, 'parent_id' => !empty($data['parent_id']) ? (int)$data['parent_id'] : null, diff --git a/App/Controllers/Admin/BotController.php b/App/Controllers/Admin/BotController.php new file mode 100644 index 0000000..d0111b9 --- /dev/null +++ b/App/Controllers/Admin/BotController.php @@ -0,0 +1,965 @@ +checkLogin(); + $this->checkAdmin(); + $this->db = new Database(); + } + + public function index(): void + { + $stats = [ + 'bot_count' => 0, + 'group_count' => 0, + 'wallet_count' => 0, + 'enabled_group_count' => 0, + 'member_count' => 0, + 'shill_count' => 0, + 'push_count' => 0, + 'push_success_count' => 0, + 'countdown_group_count' => 0, + 'animation_group_count' => 0, + 'api_request_count' => 0, + 'api_signature_ok_count' => 0, + ]; + + $bots = []; + $groups = []; + $wallets = []; + $rules = []; + $games = []; + $users = []; + $members = []; + $shills = []; + $recentOrders = []; + $pushLogs = []; + $apiRequestLogs = []; + $pushSummary = [ + 'countdown' => ['total' => 0, 'success' => 0, 'failed' => 0, 'pending' => 0, 'skipped' => 0], + 'bet_success' => ['total' => 0, 'success' => 0, 'failed' => 0, 'pending' => 0, 'skipped' => 0], + 'draw' => ['total' => 0, 'success' => 0, 'failed' => 0, 'pending' => 0, 'skipped' => 0], + 'credit' => ['total' => 0, 'success' => 0, 'failed' => 0, 'pending' => 0, 'skipped' => 0], + 'debit' => ['total' => 0, 'success' => 0, 'failed' => 0, 'pending' => 0, 'skipped' => 0], + 'system' => ['total' => 0, 'success' => 0, 'failed' => 0, 'pending' => 0, 'skipped' => 0], + ]; + + try { + $stats['bot_count'] = (int)($this->db->count('bot_instances') ?: 0); + $stats['group_count'] = (int)($this->db->count('bot_groups') ?: 0); + $stats['wallet_count'] = (int)($this->db->count('bot_group_wallets', ['status' => 1]) ?: 0); + $stats['enabled_group_count'] = (int)($this->db->count('bot_groups', ['status' => 1, 'bet_enabled' => 1]) ?: 0); + $stats['member_count'] = (int)($this->db->count('bot_group_members') ?: 0); + $stats['shill_count'] = (int)($this->db->count('bot_shills', ['enabled' => 1]) ?: 0); + $stats['push_count'] = (int)($this->db->count('bot_push_logs') ?: 0); + $stats['push_success_count'] = (int)($this->db->count('bot_push_logs', ['status' => 'success']) ?: 0); + $stats['countdown_group_count'] = (int)($this->db->count('bot_groups', ['remind_close_countdown' => 1]) ?: 0); + $stats['animation_group_count'] = (int)($this->db->count('bot_groups', ['animation_enabled' => 1]) ?: 0); + $stats['api_request_count'] = (int)($this->db->count('bot_api_request_logs') ?: 0); + $stats['api_signature_ok_count'] = (int)($this->db->count('bot_api_request_logs', ['signature_ok' => 1]) ?: 0); + + $bots = $this->db->select('bot_instances', '*', ['ORDER' => ['id' => 'DESC']]) ?: []; + foreach ($bots as &$bot) { + $botId = (int)$bot['id']; + $bot['group_count'] = (int)($this->db->count('bot_groups', ['bot_id' => $botId]) ?: 0); + $bot['active_group_count'] = (int)($this->db->count('bot_groups', [ + 'bot_id' => $botId, + 'status' => 1, + 'bet_enabled' => 1, + ]) ?: 0); + } + unset($bot); + + $groups = $this->db->select('bot_groups', [ + '[>]bot_instances' => ['bot_id' => 'id'], + '[>]games' => ['game_id' => 'id'], + ], [ + 'bot_groups.id', + 'bot_groups.bot_id', + 'bot_groups.game_id', + 'bot_groups.bet_format_rule_id', + 'bot_groups.tg_group_id', + 'bot_groups.group_name', + 'bot_groups.group_type', + 'bot_groups.status', + 'bot_groups.bet_enabled', + 'bot_groups.remind_bet_success', + 'bot_groups.remind_draw_result', + 'bot_groups.remind_close_countdown', + 'bot_groups.animation_enabled', + 'bot_groups.countdown_config', + 'bot_groups.updated_at', + 'bot_instances.name(bot_name)', + 'games.name(game_name)', + ], [ + 'ORDER' => ['bot_groups.id' => 'DESC'], + ]) ?: []; + + $wallets = $this->db->select('bot_group_wallets', [ + '[>]bot_groups' => ['group_id' => 'id'], + '[>]users' => ['platform_user_id' => 'id'], + ], [ + 'bot_group_wallets.id', + 'bot_group_wallets.group_id', + 'bot_group_wallets.platform_user_id', + 'bot_group_wallets.wallet_mode', + 'bot_group_wallets.status', + 'bot_group_wallets.updated_at', + 'bot_groups.group_name', + 'bot_groups.tg_group_id', + 'users.id(platform_user_id)', + 'users.username(platform_username)', + 'users.balance(platform_balance)', + ], [ + 'ORDER' => ['bot_group_wallets.id' => 'DESC'], + ]) ?: []; + + $rules = $this->db->select('bot_bet_format_rules', ['id', 'rule_code', 'name', 'status'], [ + 'status' => 1, + 'ORDER' => ['id' => 'DESC'], + ]) ?: []; + + $games = $this->db->select('games', ['id', 'name', 'type', 'status'], [ + 'status' => 1, + 'ORDER' => ['sort_order' => 'ASC', 'id' => 'DESC'], + ]) ?: []; + + $users = $this->db->select('users', ['id', 'username', 'balance', 'status', 'role'], [ + 'role[!]' => 'admin', + 'ORDER' => ['id' => 'DESC'], + 'LIMIT' => 200, + ]) ?: []; + + $members = $this->db->select('bot_group_members', [ + '[>]bot_groups' => ['group_id' => 'id'], + '[>]users' => ['platform_user_id' => 'id'], + ], [ + 'bot_group_members.id', + 'bot_group_members.group_id', + 'bot_group_members.tg_user_id', + 'bot_group_members.tg_username', + 'bot_group_members.tg_nickname', + 'bot_group_members.platform_user_id', + 'bot_group_members.role', + 'bot_group_members.bet_enabled', + 'bot_group_members.last_seen_at', + 'bot_group_members.updated_at', + 'bot_groups.group_name', + 'bot_groups.tg_group_id', + 'users.username(platform_username)', + ], [ + 'ORDER' => ['bot_group_members.id' => 'DESC'], + 'LIMIT' => 200, + ]) ?: []; + + $shills = $this->db->select('bot_shills', [ + '[>]bot_groups' => ['group_id' => 'id'], + '[>]bot_group_members' => [ + 'bot_shills.group_id' => 'group_id', + 'bot_shills.tg_user_id' => 'tg_user_id', + ], + ], [ + 'bot_shills.id', + 'bot_shills.group_id', + 'bot_shills.tg_user_id', + 'bot_shills.note', + 'bot_shills.enabled', + 'bot_shills.updated_at', + 'bot_groups.group_name', + 'bot_groups.tg_group_id', + 'bot_group_members.tg_username', + 'bot_group_members.tg_nickname', + ], [ + 'ORDER' => ['bot_shills.id' => 'DESC'], + 'LIMIT' => 200, + ]) ?: []; + + $recentOrders = $this->db->select('bot_bet_orders', [ + '[>]bot_groups' => ['group_id' => 'id'], + ], [ + 'bot_bet_orders.id(order_id)', + 'bot_bet_orders.period_number', + 'bot_bet_orders.bet_amount_total', + 'bot_bet_orders.accepted_bet_count', + 'bot_bet_orders.sync_status', + 'bot_bet_orders.sync_error', + 'bot_bet_orders.is_shill', + 'bot_bet_orders.created_at', + 'bot_bet_orders.tg_username', + 'bot_groups.group_name', + 'bot_groups.tg_group_id', + ], [ + 'ORDER' => ['bot_bet_orders.id' => 'DESC'], + 'LIMIT' => 10, + ]) ?: []; + + $pushLogs = $this->db->select('bot_push_logs', [ + '[>]bot_groups' => ['group_id' => 'id'], + ], [ + 'bot_push_logs.id', + 'bot_push_logs.group_id', + 'bot_push_logs.period_number', + 'bot_push_logs.push_type', + 'bot_push_logs.payload_json', + 'bot_push_logs.tg_message_id', + 'bot_push_logs.status', + 'bot_push_logs.error_message', + 'bot_push_logs.created_at', + 'bot_groups.group_name', + 'bot_groups.tg_group_id', + ], [ + 'ORDER' => ['bot_push_logs.id' => 'DESC'], + 'LIMIT' => 20, + ]) ?: []; + + foreach ($pushLogs as &$pushLog) { + $payload = []; + if (!empty($pushLog['payload_json'])) { + $decodedPayload = json_decode((string)$pushLog['payload_json'], true); + if (is_array($decodedPayload)) { + $payload = $decodedPayload; + } + } + + $pushLog['payload'] = $payload; + $pushType = (string)($pushLog['push_type'] ?? 'system'); + $status = (string)($pushLog['status'] ?? 'pending'); + if (!isset($pushSummary[$pushType])) { + $pushSummary[$pushType] = ['total' => 0, 'success' => 0, 'failed' => 0, 'pending' => 0, 'skipped' => 0]; + } + $pushSummary[$pushType]['total']++; + if (isset($pushSummary[$pushType][$status])) { + $pushSummary[$pushType][$status]++; + } + } + unset($pushLog); + + $apiRequestLogs = $this->db->select('bot_api_request_logs', [ + '[>]bot_instances' => ['bot_id' => 'id'], + '[>]bot_groups' => ['group_id' => 'id'], + ], [ + 'bot_api_request_logs.id', + 'bot_api_request_logs.request_uri', + 'bot_api_request_logs.http_method', + 'bot_api_request_logs.idempotency_key', + 'bot_api_request_logs.response_code', + 'bot_api_request_logs.client_ip', + 'bot_api_request_logs.signature_ok', + 'bot_api_request_logs.created_at', + 'bot_instances.name(bot_name)', + 'bot_groups.group_name', + 'bot_groups.tg_group_id', + ], [ + 'ORDER' => ['bot_api_request_logs.id' => 'DESC'], + 'LIMIT' => 20, + ]) ?: []; + } catch (\Throwable $e) { + } + + $this->render('Admin/bots.php', compact( + 'stats', 'bots', 'groups', 'wallets', 'rules', 'games', 'users', 'members', 'shills', 'recentOrders', 'pushLogs', 'pushSummary', 'apiRequestLogs' + ) + ['title' => 'Bot 管理']); + } + + public function saveBot(): void + { + $payload = $this->getRequestData(); + $name = trim((string)($payload['name'] ?? '')); + $botToken = trim((string)($payload['bot_token'] ?? '')); + $botUsername = $this->normalizeNullableString($payload['bot_username'] ?? null); + $runMode = $this->normalizeRunMode((string)($payload['run_mode'] ?? 'polling')); + $webhookUrl = $this->normalizeNullableString($payload['webhook_url'] ?? null); + $remark = $this->normalizeNullableString($payload['remark'] ?? null); + + if ($name === '' || $botToken === '') { + $this->json(['success' => false, 'message' => 'Bot 名称和 Token 必填']); + return; + } + + try { + $id = $this->db->insert('bot_instances', [ + 'name' => $name, + 'bot_token' => $botToken, + 'bot_username' => $botUsername, + 'bot_key' => bin2hex(random_bytes(8)), + 'bot_secret' => bin2hex(random_bytes(16)), + 'webhook_url' => $webhookUrl, + 'run_mode' => $runMode, + 'status' => 1, + 'remark' => $remark, + 'created_at' => date('Y-m-d H:i:s'), + 'updated_at' => date('Y-m-d H:i:s'), + ]); + $this->json(['success' => true, 'message' => 'Bot 实例创建成功', 'data' => ['id' => (int)$id]]); + } catch (\Throwable $e) { + $this->json(['success' => false, 'message' => 'Bot 实例创建失败:' . $e->getMessage()]); + } + } + + public function updateBot(): void + { + $payload = $this->getRequestData(); + $id = (int)($payload['id'] ?? 0); + $name = trim((string)($payload['name'] ?? '')); + $botToken = trim((string)($payload['bot_token'] ?? '')); + $botUsername = $this->normalizeNullableString($payload['bot_username'] ?? null); + $runMode = $this->normalizeRunMode((string)($payload['run_mode'] ?? 'polling')); + $webhookUrl = $this->normalizeNullableString($payload['webhook_url'] ?? null); + $remark = $this->normalizeNullableString($payload['remark'] ?? null); + + if ($id <= 0 || $name === '' || $botToken === '') { + $this->json(['success' => false, 'message' => 'Bot ID、名称和 Token 必填']); + return; + } + + try { + $bot = $this->db->get('bot_instances', ['id'], ['id' => $id]); + if (!$bot) { + $this->json(['success' => false, 'message' => 'Bot 实例不存在']); + return; + } + + $this->db->update('bot_instances', [ + 'name' => $name, + 'bot_token' => $botToken, + 'bot_username' => $botUsername, + 'webhook_url' => $webhookUrl, + 'run_mode' => $runMode, + 'remark' => $remark, + 'updated_at' => date('Y-m-d H:i:s'), + ], ['id' => $id]); + + $this->json(['success' => true, 'message' => 'Bot 实例更新成功', 'data' => ['id' => $id]]); + } catch (\Throwable $e) { + $this->json(['success' => false, 'message' => 'Bot 实例更新失败:' . $e->getMessage()]); + } + } + + public function toggleBot(): void + { + $this->toggleRecord('bot_instances', 'Bot 参数无效', 'Bot 实例不存在', 'Bot %s已%s'); + } + + public function saveGroup(): void + { + $payload = $this->getRequestData(); + $botId = (int)($payload['bot_id'] ?? 0); + $gameId = (int)($payload['game_id'] ?? 0); + $tgGroupId = trim((string)($payload['tg_group_id'] ?? '')); + $groupName = trim((string)($payload['group_name'] ?? '')); + $groupType = $this->normalizeGroupType((string)($payload['group_type'] ?? 'group')); + $ruleId = (int)($payload['bet_format_rule_id'] ?? 0); + + if ($botId <= 0 || $gameId <= 0 || $tgGroupId === '' || $groupName === '') { + $this->json(['success' => false, 'message' => 'Bot、游戏、群ID、群名称均必填']); + return; + } + + try { + if (!$this->exists('bot_instances', $botId) || !$this->exists('games', $gameId)) { + $this->json(['success' => false, 'message' => 'Bot 或游戏不存在']); + return; + } + + $id = $this->db->insert('bot_groups', [ + 'bot_id' => $botId, + 'tg_group_id' => $tgGroupId, + 'group_name' => $groupName, + 'group_type' => $groupType, + 'game_id' => $gameId, + 'bet_format_rule_id' => $ruleId > 0 ? $ruleId : null, + 'remind_bet_success' => !empty($payload['remind_bet_success']) ? 1 : 0, + 'remind_draw_result' => !empty($payload['remind_draw_result']) ? 1 : 0, + 'remind_close_countdown' => !empty($payload['remind_close_countdown']) ? 1 : 0, + 'countdown_config' => !empty($payload['countdown_config']) ? $this->normalizeCountdownConfig((string)$payload['countdown_config']) : null, + 'animation_enabled' => !empty($payload['animation_enabled']) ? 1 : 0, + 'bet_enabled' => !empty($payload['bet_enabled']) ? 1 : 0, + 'status' => 1, + 'created_at' => date('Y-m-d H:i:s'), + 'updated_at' => date('Y-m-d H:i:s'), + ]); + $this->json(['success' => true, 'message' => '群配置创建成功', 'data' => ['id' => (int)$id]]); + } catch (\Throwable $e) { + $this->json(['success' => false, 'message' => '群配置创建失败:' . $e->getMessage()]); + } + } + + public function updateGroup(): void + { + $payload = $this->getRequestData(); + $id = (int)($payload['id'] ?? 0); + $botId = (int)($payload['bot_id'] ?? 0); + $gameId = (int)($payload['game_id'] ?? 0); + $tgGroupId = trim((string)($payload['tg_group_id'] ?? '')); + $groupName = trim((string)($payload['group_name'] ?? '')); + $groupType = $this->normalizeGroupType((string)($payload['group_type'] ?? 'group')); + $ruleId = (int)($payload['bet_format_rule_id'] ?? 0); + + if ($id <= 0 || $botId <= 0 || $gameId <= 0 || $tgGroupId === '' || $groupName === '') { + $this->json(['success' => false, 'message' => '群配置参数不完整']); + return; + } + + try { + if (!$this->exists('bot_groups', $id)) { + $this->json(['success' => false, 'message' => '群配置不存在']); + return; + } + if (!$this->exists('bot_instances', $botId) || !$this->exists('games', $gameId)) { + $this->json(['success' => false, 'message' => 'Bot 或游戏不存在']); + return; + } + + $this->db->update('bot_groups', [ + 'bot_id' => $botId, + 'tg_group_id' => $tgGroupId, + 'group_name' => $groupName, + 'group_type' => $groupType, + 'game_id' => $gameId, + 'bet_format_rule_id' => $ruleId > 0 ? $ruleId : null, + 'remind_bet_success' => !empty($payload['remind_bet_success']) ? 1 : 0, + 'remind_draw_result' => !empty($payload['remind_draw_result']) ? 1 : 0, + 'remind_close_countdown' => !empty($payload['remind_close_countdown']) ? 1 : 0, + 'countdown_config' => !empty($payload['countdown_config']) ? $this->normalizeCountdownConfig((string)$payload['countdown_config']) : null, + 'animation_enabled' => !empty($payload['animation_enabled']) ? 1 : 0, + 'bet_enabled' => !empty($payload['bet_enabled']) ? 1 : 0, + 'updated_at' => date('Y-m-d H:i:s'), + ], ['id' => $id]); + + $this->json(['success' => true, 'message' => '群配置更新成功', 'data' => ['id' => $id]]); + } catch (\Throwable $e) { + $this->json(['success' => false, 'message' => '群配置更新失败:' . $e->getMessage()]); + } + } + + public function toggleGroup(): void + { + $this->toggleRecord('bot_groups', '群配置参数无效', '群配置不存在', '群 %s已%s', 'group_name'); + } + + public function saveWallet(): void + { + $payload = $this->getRequestData(); + $groupId = (int)($payload['group_id'] ?? 0); + $platformUserId = (int)($payload['platform_user_id'] ?? 0); + $walletMode = $this->normalizeWalletMode((string)($payload['wallet_mode'] ?? 'master_pool')); + + if ($groupId <= 0 || $platformUserId <= 0) { + $this->json(['success' => false, 'message' => '群配置和总账号必填']); + return; + } + + try { + $user = $this->db->get('users', ['id', 'username'], ['id' => $platformUserId]); + if (!$this->exists('bot_groups', $groupId) || !$user) { + $this->json(['success' => false, 'message' => '群配置或网站账号不存在']); + return; + } + + $exists = $this->db->get('bot_group_wallets', ['id'], ['group_id' => $groupId]); + $data = [ + 'platform_user_id' => $platformUserId, + 'platform_username_snapshot' => $user['username'], + 'wallet_mode' => $walletMode, + 'status' => 1, + 'updated_at' => date('Y-m-d H:i:s'), + ]; + + if ($exists) { + $this->db->update('bot_group_wallets', $data, ['group_id' => $groupId]); + $id = (int)$exists['id']; + $message = '群总账号绑定已更新'; + } else { + $data['group_id'] = $groupId; + $data['created_at'] = date('Y-m-d H:i:s'); + $id = (int)$this->db->insert('bot_group_wallets', $data); + $message = '群总账号绑定成功'; + } + + $this->json(['success' => true, 'message' => $message, 'data' => ['id' => $id]]); + } catch (\Throwable $e) { + $this->json(['success' => false, 'message' => '群总账号绑定失败:' . $e->getMessage()]); + } + } + + public function updateWallet(): void + { + $payload = $this->getRequestData(); + $id = (int)($payload['id'] ?? 0); + $groupId = (int)($payload['group_id'] ?? 0); + $platformUserId = (int)($payload['platform_user_id'] ?? 0); + $walletMode = $this->normalizeWalletMode((string)($payload['wallet_mode'] ?? 'master_pool')); + + if ($id <= 0 || $groupId <= 0 || $platformUserId <= 0) { + $this->json(['success' => false, 'message' => '钱包绑定参数不完整']); + return; + } + + try { + $wallet = $this->db->get('bot_group_wallets', ['id'], ['id' => $id]); + $user = $this->db->get('users', ['id', 'username'], ['id' => $platformUserId]); + if (!$wallet) { + $this->json(['success' => false, 'message' => '钱包绑定不存在']); + return; + } + if (!$this->exists('bot_groups', $groupId) || !$user) { + $this->json(['success' => false, 'message' => '群配置或网站账号不存在']); + return; + } + + $duplicate = $this->db->get('bot_group_wallets', ['id'], [ + 'group_id' => $groupId, + 'id[!]' => $id, + ]); + if ($duplicate) { + $this->json(['success' => false, 'message' => '该群已绑定其他总账号']); + return; + } + + $this->db->update('bot_group_wallets', [ + 'group_id' => $groupId, + 'platform_user_id' => $platformUserId, + 'platform_username_snapshot' => $user['username'], + 'wallet_mode' => $walletMode, + 'updated_at' => date('Y-m-d H:i:s'), + ], ['id' => $id]); + + $this->json(['success' => true, 'message' => '群总账号绑定更新成功', 'data' => ['id' => $id]]); + } catch (\Throwable $e) { + $this->json(['success' => false, 'message' => '群总账号绑定更新失败:' . $e->getMessage()]); + } + } + + public function toggleWallet(): void + { + $this->toggleRecord('bot_group_wallets', '钱包绑定参数无效', '钱包绑定不存在', '群总账号绑定已%s', 'id', false); + } + + public function saveMember(): void + { + $payload = $this->getRequestData(); + $groupId = (int)($payload['group_id'] ?? 0); + $tgUserId = trim((string)($payload['tg_user_id'] ?? '')); + $tgUsername = $this->normalizeNullableString($payload['tg_username'] ?? null); + $tgNickname = $this->normalizeNullableString($payload['tg_nickname'] ?? null); + $platformUserId = (int)($payload['platform_user_id'] ?? 0); + $role = $this->normalizeMemberRole((string)($payload['role'] ?? 'member')); + $betEnabled = !empty($payload['bet_enabled']) ? 1 : 0; + + if ($groupId <= 0 || $tgUserId === '') { + $this->json(['success' => false, 'message' => '群配置与 TG 用户 ID 必填']); + return; + } + + try { + if (!$this->exists('bot_groups', $groupId)) { + $this->json(['success' => false, 'message' => '群配置不存在']); + return; + } + if ($platformUserId > 0 && !$this->exists('users', $platformUserId)) { + $this->json(['success' => false, 'message' => '绑定网站账号不存在']); + return; + } + + $id = (int)$this->db->insert('bot_group_members', [ + 'group_id' => $groupId, + 'tg_user_id' => $tgUserId, + 'tg_username' => $tgUsername, + 'tg_nickname' => $tgNickname, + 'platform_user_id' => $platformUserId > 0 ? $platformUserId : null, + 'role' => $role, + 'bet_enabled' => $betEnabled, + 'created_at' => date('Y-m-d H:i:s'), + 'updated_at' => date('Y-m-d H:i:s'), + ]); + + $this->syncShillRecord($groupId, $tgUserId, $role === 'shill', $this->normalizeNullableString($payload['shill_note'] ?? null)); + $this->json(['success' => true, 'message' => '群成员映射创建成功', 'data' => ['id' => $id]]); + } catch (\Throwable $e) { + $this->json(['success' => false, 'message' => '群成员映射创建失败:' . $e->getMessage()]); + } + } + + public function updateMember(): void + { + $payload = $this->getRequestData(); + $id = (int)($payload['id'] ?? 0); + $groupId = (int)($payload['group_id'] ?? 0); + $tgUserId = trim((string)($payload['tg_user_id'] ?? '')); + $tgUsername = $this->normalizeNullableString($payload['tg_username'] ?? null); + $tgNickname = $this->normalizeNullableString($payload['tg_nickname'] ?? null); + $platformUserId = (int)($payload['platform_user_id'] ?? 0); + $role = $this->normalizeMemberRole((string)($payload['role'] ?? 'member')); + $betEnabled = !empty($payload['bet_enabled']) ? 1 : 0; + + if ($id <= 0 || $groupId <= 0 || $tgUserId === '') { + $this->json(['success' => false, 'message' => '成员参数不完整']); + return; + } + + try { + if (!$this->exists('bot_group_members', $id)) { + $this->json(['success' => false, 'message' => '群成员映射不存在']); + return; + } + if (!$this->exists('bot_groups', $groupId)) { + $this->json(['success' => false, 'message' => '群配置不存在']); + return; + } + if ($platformUserId > 0 && !$this->exists('users', $platformUserId)) { + $this->json(['success' => false, 'message' => '绑定网站账号不存在']); + return; + } + + $duplicate = $this->db->get('bot_group_members', ['id'], [ + 'group_id' => $groupId, + 'tg_user_id' => $tgUserId, + 'id[!]' => $id, + ]); + if ($duplicate) { + $this->json(['success' => false, 'message' => '该 TG 用户已存在于当前群']); + return; + } + + $this->db->update('bot_group_members', [ + 'group_id' => $groupId, + 'tg_user_id' => $tgUserId, + 'tg_username' => $tgUsername, + 'tg_nickname' => $tgNickname, + 'platform_user_id' => $platformUserId > 0 ? $platformUserId : null, + 'role' => $role, + 'bet_enabled' => $betEnabled, + 'updated_at' => date('Y-m-d H:i:s'), + ], ['id' => $id]); + + $this->syncShillRecord($groupId, $tgUserId, $role === 'shill', $this->normalizeNullableString($payload['shill_note'] ?? null)); + $this->json(['success' => true, 'message' => '群成员映射更新成功', 'data' => ['id' => $id]]); + } catch (\Throwable $e) { + $this->json(['success' => false, 'message' => '群成员映射更新失败:' . $e->getMessage()]); + } + } + + public function toggleMemberBet(): void + { + $payload = $this->getRequestData(); + $id = (int)($payload['id'] ?? 0); + $betEnabled = isset($payload['bet_enabled']) ? (int)$payload['bet_enabled'] : null; + + if ($id <= 0 || !in_array($betEnabled, [0, 1], true)) { + $this->json(['success' => false, 'message' => '成员参数无效']); + return; + } + + try { + $member = $this->db->get('bot_group_members', ['id', 'tg_user_id'], ['id' => $id]); + if (!$member) { + $this->json(['success' => false, 'message' => '群成员映射不存在']); + return; + } + + $this->db->update('bot_group_members', [ + 'bet_enabled' => $betEnabled, + 'updated_at' => date('Y-m-d H:i:s'), + ], ['id' => $id]); + + $this->json([ + 'success' => true, + 'message' => sprintf('成员 %s 下注权限已%s', (string)$member['tg_user_id'], $betEnabled === 1 ? '开启' : '关闭'), + 'data' => ['id' => $id, 'bet_enabled' => $betEnabled], + ]); + } catch (\Throwable $e) { + $this->json(['success' => false, 'message' => '成员下注权限更新失败:' . $e->getMessage()]); + } + } + + public function saveShill(): void + { + $payload = $this->getRequestData(); + $groupId = (int)($payload['group_id'] ?? 0); + $tgUserId = trim((string)($payload['tg_user_id'] ?? '')); + $note = $this->normalizeNullableString($payload['note'] ?? null); + + if ($groupId <= 0 || $tgUserId === '') { + $this->json(['success' => false, 'message' => '群配置与 TG 用户 ID 必填']); + return; + } + + try { + if (!$this->exists('bot_groups', $groupId)) { + $this->json(['success' => false, 'message' => '群配置不存在']); + return; + } + + $member = $this->db->get('bot_group_members', ['id'], [ + 'group_id' => $groupId, + 'tg_user_id' => $tgUserId, + ]); + if ($member) { + $this->db->update('bot_group_members', [ + 'role' => 'shill', + 'updated_at' => date('Y-m-d H:i:s'), + ], ['id' => (int)$member['id']]); + } + + $existing = $this->db->get('bot_shills', ['id'], [ + 'group_id' => $groupId, + 'tg_user_id' => $tgUserId, + ]); + if ($existing) { + $this->db->update('bot_shills', [ + 'note' => $note, + 'enabled' => 1, + 'updated_at' => date('Y-m-d H:i:s'), + ], ['id' => (int)$existing['id']]); + $id = (int)$existing['id']; + $message = '托号已更新'; + } else { + $id = (int)$this->db->insert('bot_shills', [ + 'group_id' => $groupId, + 'tg_user_id' => $tgUserId, + 'note' => $note, + 'enabled' => 1, + 'created_at' => date('Y-m-d H:i:s'), + 'updated_at' => date('Y-m-d H:i:s'), + ]); + $message = '托号创建成功'; + } + + $this->json(['success' => true, 'message' => $message, 'data' => ['id' => $id]]); + } catch (\Throwable $e) { + $this->json(['success' => false, 'message' => '托号创建失败:' . $e->getMessage()]); + } + } + + public function updateShill(): void + { + $payload = $this->getRequestData(); + $id = (int)($payload['id'] ?? 0); + $groupId = (int)($payload['group_id'] ?? 0); + $tgUserId = trim((string)($payload['tg_user_id'] ?? '')); + $note = $this->normalizeNullableString($payload['note'] ?? null); + + if ($id <= 0 || $groupId <= 0 || $tgUserId === '') { + $this->json(['success' => false, 'message' => '托号参数不完整']); + return; + } + + try { + $shill = $this->db->get('bot_shills', ['id'], ['id' => $id]); + if (!$shill) { + $this->json(['success' => false, 'message' => '托号记录不存在']); + return; + } + if (!$this->exists('bot_groups', $groupId)) { + $this->json(['success' => false, 'message' => '群配置不存在']); + return; + } + + $duplicate = $this->db->get('bot_shills', ['id'], [ + 'group_id' => $groupId, + 'tg_user_id' => $tgUserId, + 'id[!]' => $id, + ]); + if ($duplicate) { + $this->json(['success' => false, 'message' => '该托号已存在']); + return; + } + + $this->db->update('bot_shills', [ + 'group_id' => $groupId, + 'tg_user_id' => $tgUserId, + 'note' => $note, + 'updated_at' => date('Y-m-d H:i:s'), + ], ['id' => $id]); + + $member = $this->db->get('bot_group_members', ['id'], [ + 'group_id' => $groupId, + 'tg_user_id' => $tgUserId, + ]); + if ($member) { + $this->db->update('bot_group_members', [ + 'role' => 'shill', + 'updated_at' => date('Y-m-d H:i:s'), + ], ['id' => (int)$member['id']]); + } + + $this->json(['success' => true, 'message' => '托号更新成功', 'data' => ['id' => $id]]); + } catch (\Throwable $e) { + $this->json(['success' => false, 'message' => '托号更新失败:' . $e->getMessage()]); + } + } + + public function toggleShill(): void + { + $payload = $this->getRequestData(); + $id = (int)($payload['id'] ?? 0); + $enabled = isset($payload['enabled']) ? (int)$payload['enabled'] : null; + + if ($id <= 0 || !in_array($enabled, [0, 1], true)) { + $this->json(['success' => false, 'message' => '托号参数无效']); + return; + } + + try { + $shill = $this->db->get('bot_shills', ['id', 'group_id', 'tg_user_id'], ['id' => $id]); + if (!$shill) { + $this->json(['success' => false, 'message' => '托号记录不存在']); + return; + } + + $this->db->update('bot_shills', [ + 'enabled' => $enabled, + 'updated_at' => date('Y-m-d H:i:s'), + ], ['id' => $id]); + + $member = $this->db->get('bot_group_members', ['id'], [ + 'group_id' => (int)$shill['group_id'], + 'tg_user_id' => (string)$shill['tg_user_id'], + ]); + if ($member) { + $this->db->update('bot_group_members', [ + 'role' => $enabled === 1 ? 'shill' : 'member', + 'updated_at' => date('Y-m-d H:i:s'), + ], ['id' => (int)$member['id']]); + } + + $this->json([ + 'success' => true, + 'message' => sprintf('托号 %s 已%s统计排除', (string)$shill['tg_user_id'], $enabled === 1 ? '加入' : '移出'), + 'data' => ['id' => $id, 'enabled' => $enabled], + ]); + } catch (\Throwable $e) { + $this->json(['success' => false, 'message' => '托号状态更新失败:' . $e->getMessage()]); + } + } + + private function getRequestData(): array + { + $data = json_decode(file_get_contents('php://input'), true); + if (is_array($data) && !empty($data)) { + return $data; + } + return $_POST; + } + + private function normalizeCountdownConfig(string $raw): string + { + $items = array_filter(array_map('trim', explode(',', $raw)), static function ($item) { + return $item !== '' && ctype_digit($item); + }); + $numbers = array_map('intval', $items); + rsort($numbers); + return json_encode(array_values(array_unique($numbers)), JSON_UNESCAPED_UNICODE); + } + + private function normalizeNullableString($value): ?string + { + $text = trim((string)$value); + return $text === '' ? null : $text; + } + + private function normalizeRunMode(string $runMode): string + { + return in_array($runMode, ['polling', 'webhook'], true) ? $runMode : 'polling'; + } + + private function normalizeGroupType(string $groupType): string + { + return in_array($groupType, ['group', 'supergroup', 'channel'], true) ? $groupType : 'group'; + } + + private function normalizeWalletMode(string $walletMode): string + { + return in_array($walletMode, ['master_pool', 'per_member'], true) ? $walletMode : 'master_pool'; + } + + private function normalizeMemberRole(string $role): string + { + return in_array($role, ['member', 'admin', 'shill'], true) ? $role : 'member'; + } + + private function exists(string $table, int $id): bool + { + return $id > 0 && $this->db->has($table, ['id' => $id]); + } + + private function syncShillRecord(int $groupId, string $tgUserId, bool $enabled, ?string $note = null): void + { + $existing = $this->db->get('bot_shills', ['id'], [ + 'group_id' => $groupId, + 'tg_user_id' => $tgUserId, + ]); + + if ($enabled) { + $data = [ + 'note' => $note, + 'enabled' => 1, + 'updated_at' => date('Y-m-d H:i:s'), + ]; + if ($existing) { + $this->db->update('bot_shills', $data, ['id' => (int)$existing['id']]); + } else { + $data['group_id'] = $groupId; + $data['tg_user_id'] = $tgUserId; + $data['created_at'] = date('Y-m-d H:i:s'); + $this->db->insert('bot_shills', $data); + } + return; + } + + if ($existing) { + $this->db->update('bot_shills', [ + 'enabled' => 0, + 'note' => $note, + 'updated_at' => date('Y-m-d H:i:s'), + ], ['id' => (int)$existing['id']]); + } + } + + private function toggleRecord(string $table, string $invalidMessage, string $notFoundMessage, string $messageTemplate, string $nameField = 'name', bool $withName = true): void + { + $payload = $this->getRequestData(); + $id = (int)($payload['id'] ?? 0); + $status = isset($payload['status']) ? (int)$payload['status'] : null; + + if ($id <= 0 || !in_array($status, [0, 1], true)) { + $this->json(['success' => false, 'message' => $invalidMessage]); + return; + } + + try { + $row = $this->db->get($table, ['id', $nameField], ['id' => $id]); + if (!$row) { + $this->json(['success' => false, 'message' => $notFoundMessage]); + return; + } + + $this->db->update($table, [ + 'status' => $status, + 'updated_at' => date('Y-m-d H:i:s'), + ], ['id' => $id]); + + $message = $withName + ? sprintf($messageTemplate, (string)($row[$nameField] ?? $id), $status === 1 ? '启用' : '停用') + : sprintf($messageTemplate, $status === 1 ? '启用' : '停用'); + $this->json(['success' => true, 'message' => $message, 'data' => ['id' => $id, 'status' => $status]]); + } catch (\Throwable $e) { + $this->json(['success' => false, 'message' => '状态更新失败:' . $e->getMessage()]); + } + } + + private function json(array $data): void + { + header('Content-Type: application/json; charset=utf-8'); + echo json_encode($data, JSON_UNESCAPED_UNICODE); + exit; + } +} diff --git a/App/Controllers/Admin/FollowPlanController.php b/App/Controllers/Admin/FollowPlanController.php new file mode 100644 index 0000000..c945b00 --- /dev/null +++ b/App/Controllers/Admin/FollowPlanController.php @@ -0,0 +1,53 @@ +db = $db; + } + + public function index() { + $this->checkLogin(); $this->checkAdmin(); + $service = new FollowPlanService($this->db); + $plans = $service->getAllPlans(); + $games = $this->db->select('games', ['id', 'name', 'code'], ['status' => 1]); + $this->render('Admin/follow_plans.php', compact('plans', 'games')); + } + + public function save() { + $this->checkLogin(); $this->checkAdmin(); + header('Content-Type: application/json'); + $data = json_decode(file_get_contents('php://input'), true) ?: $_POST; + $data['created_by'] = $_SESSION['admin_id'] ?? 0; + $service = new FollowPlanService($this->db); + echo json_encode($service->savePlan($data)); + } + + public function delete() { + $this->checkLogin(); $this->checkAdmin(); + header('Content-Type: application/json'); + $data = json_decode(file_get_contents('php://input'), true) ?: $_POST; + $id = intval($data['id'] ?? 0); + if ($id <= 0) { echo json_encode(['success' => false, 'message' => 'ID invalid']); return; } + $service = new FollowPlanService($this->db); + echo json_encode($service->deletePlan($id)); + } + + public function toggle() { + $this->checkLogin(); $this->checkAdmin(); + header('Content-Type: application/json'); + $data = json_decode(file_get_contents('php://input'), true) ?: $_POST; + $id = intval($data['id'] ?? 0); + $plan = $this->db->get('follow_plans', '*', ['id' => $id]); + if (!$plan) { echo json_encode(['success' => false, 'message' => 'Not found']); return; } + $newStatus = $plan['status'] ? 0 : 1; + $this->db->update('follow_plans', ['status' => $newStatus], ['id' => $id]); + echo json_encode(['success' => true, 'status' => $newStatus]); + } +} diff --git a/App/Controllers/Admin/FundRequestController.php b/App/Controllers/Admin/FundRequestController.php new file mode 100644 index 0000000..81cedc0 --- /dev/null +++ b/App/Controllers/Admin/FundRequestController.php @@ -0,0 +1,284 @@ +checkLogin(); + } + + /** + * 充提审核列表页 + */ + public function index() { + $db = new Database(); + try { + // 查询充提申请列表,JOIN users 获取用户名 + $requests = $db->select('fund_requests', [ + '[>]users' => ['user_id' => 'id'] + ], [ + 'fund_requests.id', + 'fund_requests.user_id', + 'users.username', + 'users.usdt_address', + 'fund_requests.type', + 'fund_requests.amount', + 'fund_requests.status', + 'fund_requests.remark', + 'fund_requests.admin_remark', + 'fund_requests.operator_id', + 'fund_requests.created_at', + 'fund_requests.processed_at' + ], [ + 'ORDER' => ['fund_requests.id' => 'DESC'], + 'LIMIT' => 200 + ]); + + if (!is_array($requests)) { + $requests = []; + } + + // 统计各状态数量 + $pendingCount = $db->count('fund_requests', ['status' => 'pending']); + $todayDeposit = $db->count('fund_requests', [ + 'type' => 'deposit', + 'created_at[>=]' => date('Y-m-d 00:00:00') + ]); + $todayWithdraw = $db->count('fund_requests', [ + 'type' => 'withdraw', + 'created_at[>=]' => date('Y-m-d 00:00:00') + ]); + + } catch (\Throwable $e) { + $requests = []; + $pendingCount = 0; + $todayDeposit = 0; + $todayWithdraw = 0; + } + + $this->render('Admin/fund_requests.php', [ + 'requests' => $requests, + 'pendingCount' => $pendingCount, + 'todayDeposit' => $todayDeposit, + 'todayWithdraw' => $todayWithdraw, + 'title' => '充提审核' + ]); + } + + /** + * 审批通过 + */ + public function approve() { + header('Content-Type: application/json'); + + $rawData = file_get_contents('php://input'); + $data = json_decode($rawData, true); + + if (json_last_error() !== JSON_ERROR_NONE) { + echo json_encode(['success' => false, 'message' => '数据格式错误']); + return; + } + + $id = isset($data['id']) ? (int)$data['id'] : 0; + $adminRemark = trim($data['admin_remark'] ?? ''); + + if ($id <= 0) { + echo json_encode(['success' => false, 'message' => '无效的申请ID']); + return; + } + + $db = new Database(); + + try { + // 查询申请记录 + $request = $db->get('fund_requests', '*', ['id' => $id]); + if (!$request) { + echo json_encode(['success' => false, 'message' => '申请记录不存在']); + return; + } + + if ($request['status'] !== 'pending') { + echo json_encode(['success' => false, 'message' => '该申请已处理,状态:' . $request['status']]); + return; + } + + $userId = (int)$request['user_id']; + $amount = floatval($request['amount']); + $type = $request['type']; + + // 获取用户信息 + $user = $db->get('users', ['id', 'balance'], ['id' => $userId]); + if (!$user) { + echo json_encode(['success' => false, 'message' => '用户不存在']); + return; + } + + $balanceBefore = floatval($user['balance']); + $now = date('Y-m-d H:i:s'); + $operatorId = $_SESSION['user_id'] ?? 0; + + // 开启事务 + $db->medoo->pdo->beginTransaction(); + + if ($type === 'deposit') { + // 充值:给用户加款 + $balanceAfter = $balanceBefore + $amount; + + $db->update('users', [ + 'balance' => $balanceAfter, + 'updated_at' => $now + ], ['id' => $userId]); + + $db->insert('transactions', [ + 'user_id' => $userId, + 'type' => 'deposit', + 'amount' => $amount, + 'balance_before' => $balanceBefore, + 'balance_after' => $balanceAfter, + 'description' => '充值申请审核通过 #' . $id, + 'created_at' => $now + ]); + } else { + // 提现:余额已在申请时预扣,确认放款 + $balanceAfter = $balanceBefore; // 余额不变,已预扣 + + $db->insert('transactions', [ + 'user_id' => $userId, + 'type' => 'withdraw', + 'amount' => -$amount, + 'balance_before' => $balanceBefore, + 'balance_after' => $balanceAfter, + 'description' => '提现申请审核通过 #' . $id, + 'created_at' => $now + ]); + } + + // 更新申请状态 + $db->update('fund_requests', [ + 'status' => 'approved', + 'admin_remark' => $adminRemark, + 'operator_id' => $operatorId, + 'processed_at' => $now + ], ['id' => $id]); + + $db->medoo->pdo->commit(); + + echo json_encode(['success' => true, 'message' => '审批通过']); + + } catch (\Exception $e) { + if ($db->medoo->pdo->inTransaction()) { + $db->medoo->pdo->rollBack(); + } + echo json_encode(['success' => false, 'message' => '操作失败:' . $e->getMessage()]); + } + } + + /** + * 拒绝申请 + */ + public function reject() { + header('Content-Type: application/json'); + + $rawData = file_get_contents('php://input'); + $data = json_decode($rawData, true); + + if (json_last_error() !== JSON_ERROR_NONE) { + echo json_encode(['success' => false, 'message' => '数据格式错误']); + return; + } + + $id = isset($data['id']) ? (int)$data['id'] : 0; + $adminRemark = trim($data['admin_remark'] ?? ''); + + if ($id <= 0) { + echo json_encode(['success' => false, 'message' => '无效的申请ID']); + return; + } + + $db = new Database(); + + try { + // 查询申请记录 + $request = $db->get('fund_requests', '*', ['id' => $id]); + if (!$request) { + echo json_encode(['success' => false, 'message' => '申请记录不存在']); + return; + } + + if ($request['status'] !== 'pending') { + echo json_encode(['success' => false, 'message' => '该申请已处理,状态:' . $request['status']]); + return; + } + + $userId = (int)$request['user_id']; + $amount = floatval($request['amount']); + $type = $request['type']; + $now = date('Y-m-d H:i:s'); + $operatorId = $_SESSION['user_id'] ?? 0; + + // 开启事务 + $db->medoo->pdo->beginTransaction(); + + if ($type === 'withdraw') { + // 提现拒绝:退还预扣余额 + $user = $db->get('users', ['id', 'balance'], ['id' => $userId]); + if ($user) { + $balanceBefore = floatval($user['balance']); + $balanceAfter = $balanceBefore + $amount; + + $db->update('users', [ + 'balance' => $balanceAfter, + 'updated_at' => $now + ], ['id' => $userId]); + + $db->insert('transactions', [ + 'user_id' => $userId, + 'type' => 'refund', + 'amount' => $amount, + 'balance_before' => $balanceBefore, + 'balance_after' => $balanceAfter, + 'description' => '提现申请被拒绝,退还预扣金额 #' . $id, + 'created_at' => $now + ]); + } + } + // 充值拒绝:无需退款 + + // 更新申请状态 + $db->update('fund_requests', [ + 'status' => 'rejected', + 'admin_remark' => $adminRemark, + 'operator_id' => $operatorId, + 'processed_at' => $now + ], ['id' => $id]); + + $db->medoo->pdo->commit(); + + echo json_encode(['success' => true, 'message' => '已拒绝']); + + } catch (\Exception $e) { + if ($db->medoo->pdo->inTransaction()) { + $db->medoo->pdo->rollBack(); + } + echo json_encode(['success' => false, 'message' => '操作失败:' . $e->getMessage()]); + } + } + + /** + * 获取待处理数量(轮询接口) + */ + public function pendingCount() { + header('Content-Type: application/json'); + + $db = new Database(); + try { + $count = $db->count('fund_requests', ['status' => 'pending']); + echo json_encode(['count' => (int)$count]); + } catch (\Throwable $e) { + echo json_encode(['count' => 0]); + } + } +} diff --git a/App/Controllers/Admin/PK10PeriodController.php b/App/Controllers/Admin/PK10PeriodController.php index a920965..c7745bb 100644 --- a/App/Controllers/Admin/PK10PeriodController.php +++ b/App/Controllers/Admin/PK10PeriodController.php @@ -61,12 +61,23 @@ class PK10PeriodController extends AdminBaseController { } $periodNumber = PK10Algorithm::generatePeriodNumber($gameId); + $createdAt = date('Y-m-d H:i:s'); $this->db->insert('periods', [ 'game_id' => $gameId, 'period_number' => $periodNumber, 'status' => 'pending', - 'created_at' => date('Y-m-d H:i:s'), + 'start_time' => $createdAt, + 'created_at' => $createdAt, ]); + $periodId = (int)$this->db->id(); + + if ($periodId > 0) { + $this->queueCountdownPushes($gameId, [ + 'id' => $periodId, + 'period_number' => $periodNumber, + 'created_at' => $createdAt, + ]); + } $this->json(['status' => 'success', 'message' => 'New period started', 'period_number' => $periodNumber]); } @@ -83,6 +94,14 @@ class PK10PeriodController extends AdminBaseController { } $this->db->update('periods', ['status' => 'locked'], ['id' => $periodId]); + $this->queueBotPushByGame($period['game_id'], 'countdown', [ + 'event' => 'period_locked', + 'period_id' => (int)$period['id'], + 'period_number' => (string)($period['period_number'] ?? ''), + 'message' => 'Period locked', + ], [ + 'remind_close_countdown' => 1, + ]); $this->json(['status' => 'success', 'message' => 'Period locked']); } @@ -122,7 +141,8 @@ class PK10PeriodController extends AdminBaseController { ]); if (!empty($waterConfig) && !empty($bets)) { - $result = PK10Algorithm::generateControlledResult($bets, $waterConfig); + $targetProfitRate = floatval(\App\Core\SettingsHelper::get('target_profit_rate')); + $result = PK10Algorithm::generateControlledResult($bets, $waterConfig, 100, $targetProfitRate); } else { $result = PK10Algorithm::generateResult(); } @@ -150,6 +170,17 @@ class PK10PeriodController extends AdminBaseController { 'rank_10' => $result[9], 'champion_sum' => $sum, ]); + $this->queueBotPushByGame($period['game_id'], 'draw', [ + 'event' => 'period_drawn', + 'period_id' => (int)$period['id'], + 'period_number' => (string)($period['period_number'] ?? ''), + 'result' => $result, + 'champion_sum' => $sum, + 'manual' => !empty($manual), + ], [ + 'remind_draw_result' => 1, + ], (string)($period['period_number'] ?? '')); + $this->db->medoo->pdo->commit(); } catch (\Throwable $e) { $this->db->medoo->pdo->rollBack(); @@ -180,6 +211,15 @@ class PK10PeriodController extends AdminBaseController { $bets = $this->db->select('bets', '*', ['period_id' => $periodId, 'status' => 'pending']); if (empty($bets)) { $this->db->update('periods', ['status' => 'settled'], ['id' => $periodId]); + $this->queueBotPushByGame($period['game_id'], 'system', [ + 'event' => 'period_settled', + 'period_id' => (int)$period['id'], + 'period_number' => (string)($period['period_number'] ?? ''), + 'wins' => 0, + 'losses' => 0, + 'total_payout' => 0, + 'message' => 'No bets to settle', + ], [], (string)($period['period_number'] ?? '')); $this->json(['status' => 'success', 'message' => 'No bets to settle', 'wins' => 0, 'losses' => 0]); return; } @@ -230,6 +270,14 @@ class PK10PeriodController extends AdminBaseController { $this->settleAgentCommissions($bets, $periodId); $this->db->update('periods', ['status' => 'settled'], ['id' => $periodId]); + $this->queueBotPushByGame($period['game_id'], 'system', [ + 'event' => 'period_settled', + 'period_id' => (int)$period['id'], + 'period_number' => (string)($period['period_number'] ?? ''), + 'wins' => $wins, + 'losses' => $losses, + 'total_payout' => (float)$totalPayout, + ], [], (string)($period['period_number'] ?? '')); $this->db->medoo->pdo->commit(); } catch (\Throwable $e) { $this->db->medoo->pdo->rollBack(); @@ -298,6 +346,90 @@ class PK10PeriodController extends AdminBaseController { return $game ? (int)$game : 0; } + private function queueCountdownPushes(int $gameId, array $period): void { + if ($gameId <= 0 || empty($period['id']) || empty($period['period_number'])) { + return; + } + + $groups = $this->db->select('bot_groups', ['id', 'countdown_config'], [ + 'game_id' => $gameId, + 'status' => 1, + 'remind_close_countdown' => 1, + ]) ?: []; + if (empty($groups)) { + return; + } + + $game = $this->db->get('games', ['period_duration', 'lock_before_end'], ['id' => $gameId]); + $periodDuration = (int)($game['period_duration'] ?? 300); + $lockBeforeEnd = max(0, (int)($game['lock_before_end'] ?? 30)); + $periodCreatedAt = strtotime((string)($period['created_at'] ?? '')); + if ($periodCreatedAt <= 0) { + $periodCreatedAt = time(); + } + $closeAtTs = $periodCreatedAt + max(0, $periodDuration - $lockBeforeEnd); + + $now = date('Y-m-d H:i:s'); + foreach ($groups as $group) { + $decoded = json_decode((string)($group['countdown_config'] ?? ''), true); + if (!is_array($decoded) || empty($decoded)) { + continue; + } + + $secondsList = array_values(array_unique(array_filter(array_map('intval', $decoded), static function (int $seconds) use ($periodDuration, $lockBeforeEnd) { + return $seconds > 0 && $seconds <= max(0, $periodDuration - $lockBeforeEnd); + }))); + rsort($secondsList); + + foreach ($secondsList as $seconds) { + $dispatchAtTs = $closeAtTs - $seconds; + if ($dispatchAtTs <= $periodCreatedAt) { + continue; + } + $payload = [ + 'event' => 'countdown_tick', + 'period_id' => (int)$period['id'], + 'period_number' => (string)$period['period_number'], + 'countdown_seconds' => $seconds, + 'dispatch_at' => date('Y-m-d H:i:s', $dispatchAtTs), + 'message' => sprintf('Bet closes in %d seconds', $seconds), + ]; + + $this->db->insert('bot_push_logs', [ + 'group_id' => (int)$group['id'], + 'period_number' => (string)$period['period_number'], + 'push_type' => 'countdown', + 'payload_json' => json_encode($payload, JSON_UNESCAPED_UNICODE), + 'status' => 'pending', + 'created_at' => $now, + 'updated_at' => $now, + ]); + } + } + } + + private function queueBotPushByGame(int $gameId, string $pushType, array $payload, array $groupFilters = [], ?string $periodNumber = null): void { + if ($gameId <= 0) { + return; + } + + $where = array_merge(['game_id' => $gameId, 'status' => 1], $groupFilters); + $groups = $this->db->select('bot_groups', ['id'], $where) ?: []; + $now = date('Y-m-d H:i:s'); + + foreach ($groups as $group) { + $this->db->insert('bot_push_logs', [ + 'group_id' => (int)$group['id'], + 'period_number' => $periodNumber !== null ? $periodNumber : ((string)($payload['period_number'] ?? '') ?: null), + 'push_type' => $pushType, + 'payload_json' => json_encode($payload, JSON_UNESCAPED_UNICODE), + 'status' => 'pending', + 'created_at' => $now, + 'updated_at' => $now, + ]); + } + } + private function json(array $data) { header('Content-Type: application/json'); echo json_encode($data); diff --git a/App/Controllers/Admin/ReportController.php b/App/Controllers/Admin/ReportController.php index 075329a..64d9579 100644 --- a/App/Controllers/Admin/ReportController.php +++ b/App/Controllers/Admin/ReportController.php @@ -12,94 +12,132 @@ class ReportController extends AdminBaseController { $this->checkLogin(); $this->checkAdmin(); $dateFrom = $_GET['from'] ?? date('Y-m-d', strtotime('-7 days')); $dateTo = $_GET['to'] ?? date('Y-m-d'); - $range = [$dateFrom . ' 00:00:00', $dateTo . ' 23:59:59']; - // 总投注(排除虚拟) - $totalBet = $this->db->sum('bets', 'amount', [ - 'is_virtual' => 0, 'created_at[<>]' => $range - ]) ?: 0; + $reportService = new \App\Services\ReportService($this->db); - // 总派奖 - $totalWin = $this->db->sum('bets', 'win_amount', [ - 'is_virtual' => 0, 'status' => 'win', 'created_at[<>]' => $range - ]) ?: 0; + // 总体统计 + $overview = $reportService->getOverviewStats($dateFrom, $dateTo); + extract($overview); // totalBet, totalWin, profit, profitRate, totalDeposit, totalWithdraw, totalCommission, totalRebate, totalUsers, newUsers, activeUsers - // 平台利润 - $profit = $totalBet - $totalWin; + // 日明细统计 + $dailyStats = $reportService->getDailyStats($dateFrom, $dateTo); - // 总充值 - $totalDeposit = $this->db->sum('transactions', 'amount', [ - 'is_virtual' => 0, 'type[~]' => '%deposit%', 'amount[>]' => 0, - 'created_at[<>]' => $range - ]) ?: 0; - - // 总提现 - $totalWithdraw = abs($this->db->sum('transactions', 'amount', [ - 'is_virtual' => 0, 'type[~]' => '%withdraw%', 'amount[<]' => 0, - 'created_at[<>]' => $range - ]) ?: 0); - - // 代理佣金 - $totalCommission = $this->db->sum('agent_commissions', 'commission', [ - 'created_at[<>]' => $range - ]) ?: 0; - - // 反水 - $totalRebate = $this->db->sum('agent_commissions', 'commission', [ - 'type' => 'rebate', 'created_at[<>]' => $range - ]) ?: 0; - - // 用户统计 - $totalUsers = $this->db->count('users', ['is_virtual' => 0]); - $newUsers = $this->db->count('users', [ - 'is_virtual' => 0, 'created_at[<>]' => $range - ]); - - // 每日明细 - $dailyStats = []; - $start = new \DateTime($dateFrom); - $end = new \DateTime($dateTo); - $end->modify('+1 day'); - $interval = new \DateInterval('P1D'); - $period = new \DatePeriod($start, $interval, $end); - foreach ($period as $day) { - $d = $day->format('Y-m-d'); - $dr = [$d . ' 00:00:00', $d . ' 23:59:59']; - $dailyStats[] = [ - 'date' => $d, - 'bets' => $this->db->sum('bets', 'amount', ['is_virtual'=>0,'created_at[<>]'=>$dr]) ?: 0, - 'wins' => $this->db->sum('bets', 'win_amount', ['is_virtual'=>0,'status'=>'win','created_at[<>]'=>$dr]) ?: 0, - 'deposits' => $this->db->sum('transactions', 'amount', ['is_virtual'=>0,'type[~]'=>'%deposit%','amount[>]'=>0,'created_at[<>]'=>$dr]) ?: 0, - 'withdraws' => abs($this->db->sum('transactions', 'amount', ['is_virtual'=>0,'type[~]'=>'%withdraw%','amount[<]'=>0,'created_at[<>]'=>$dr]) ?: 0), - ]; - } + // 用户排行(投注前20) + $topUsers = $reportService->getTopUsers($dateFrom, $dateTo, 20); // 代理报表 - $agentStats = []; - $agents = $this->db->select('agents', '*', ['status' => 1]); - foreach ($agents as $ag) { - $playerIds = $this->db->select('users', 'id', ['agent_id' => $ag['id'], 'is_virtual' => 0]); - $agBet = 0; $agWin = 0; - if (!empty($playerIds)) { - $agBet = $this->db->sum('bets', 'amount', ['user_id' => $playerIds, 'is_virtual'=>0, 'created_at[<>]'=>$range]) ?: 0; - $agWin = $this->db->sum('bets', 'win_amount', ['user_id' => $playerIds, 'is_virtual'=>0, 'status'=>'win', 'created_at[<>]'=>$range]) ?: 0; - } - $agComm = $this->db->sum('agent_commissions', 'commission', ['agent_id'=>$ag['id'],'created_at[<>]'=>$range]) ?: 0; - $agentStats[] = [ - 'agent' => $ag, - 'user' => $this->db->get('users', ['username'], ['id' => $ag['user_id']]), - 'players' => count($playerIds), - 'bets' => $agBet, 'wins' => $agWin, 'commission' => $agComm, - 'profit' => $agBet - $agWin - $agComm, - ]; - } + $agentStats = $reportService->getAgentStats($dateFrom, $dateTo); + + // 用户输赢明细 + $winLossData = $reportService->getUserWinLoss($dateFrom, $dateTo); + $userSummary = $winLossData['summary']; $this->render('Admin/reports.php', compact( - 'dateFrom','dateTo','totalBet','totalWin','profit', + 'dateFrom','dateTo','totalBet','totalWin','profit','profitRate', 'totalDeposit','totalWithdraw','totalCommission','totalRebate', - 'totalUsers','newUsers','dailyStats','agentStats' + 'totalUsers','newUsers','activeUsers','dailyStats','topUsers','agentStats', + 'userSummary' )); } + /** + * CSV 导出 + */ + public function export() { + $this->checkLogin(); $this->checkAdmin(); + $dateFrom = $_GET['from'] ?? date('Y-m-d', strtotime('-7 days')); + $dateTo = $_GET['to'] ?? date('Y-m-d'); + + $reportService = new \App\Services\ReportService($this->db); + + // 通过 Service 获取数据 + $dailyStats = $reportService->getDailyStats($dateFrom, $dateTo); + $topUsers = $reportService->getTopUsers($dateFrom, $dateTo, 0); // 不限条数 + $winLossData = $reportService->getUserWinLoss($dateFrom, $dateTo); + $userSummary = $winLossData['summary']; + $userWinLossRaw = $winLossData['raw']; + + // 输出 CSV + header('Content-Type: text/csv; charset=utf-8'); + header('Content-Disposition: attachment; filename="report_' . $dateFrom . '_' . $dateTo . '.csv"'); + // BOM 头(Excel 兼容中文) + echo "\xEF\xBB\xBF"; + $out = fopen('php://output', 'w'); + + // 日明细 + fputcsv($out, ['=== 日明细报表 ===']); + fputcsv($out, ['日期', '投注额', '派彩额', '利润', '投注笔数', '中奖笔数', '胜率']); + foreach ($dailyStats as $day) { + $totalBet = floatval($day['total_bet'] ?? 0); + $totalWin = floatval($day['total_win'] ?? 0); + $betCount = intval($day['bet_count'] ?? 0); + $winCount = intval($day['win_count'] ?? 0); + $winRate = $betCount > 0 ? round($winCount / $betCount * 100, 1) . '%' : '0%'; + fputcsv($out, [ + $day['date'], + number_format($totalBet, 2, '.', ''), + number_format($totalWin, 2, '.', ''), + number_format($totalBet - $totalWin, 2, '.', ''), + $betCount, + $winCount, + $winRate + ]); + } + + fputcsv($out, []); + fputcsv($out, ['=== 用户投注排行 ===']); + fputcsv($out, ['排名', '用户名', '投注额', '派彩额', '平台盈亏', '投注笔数']); + $rank = 1; + foreach ($topUsers as $user) { + fputcsv($out, [ + $rank++, + $user['username'], + number_format(floatval($user['total_bet']), 2, '.', ''), + number_format(floatval($user['total_win']), 2, '.', ''), + number_format(floatval($user['profit']), 2, '.', ''), + intval($user['bet_count']) + ]); + } + + // 用户输赢明细 + fputcsv($out, []); + fputcsv($out, ['=== 用户输赢明细 ===']); + fputcsv($out, ['用户名', '当前余额', '总投注', '总派彩', '平台盈亏(投注-派彩)', '投注笔数', '中奖笔数', '胜率']); + foreach ($userSummary as $ud) { + $tb = $ud['total_bet']; + $tw = $ud['total_win']; + $bc = $ud['bet_count']; + $wc = $ud['win_count']; + $wr = $bc > 0 ? round($wc / $bc * 100, 1) . '%' : '0%'; + fputcsv($out, [ + $ud['username'], + number_format($ud['balance'], 2, '.', ''), + number_format($tb, 2, '.', ''), + number_format($tw, 2, '.', ''), + number_format($tb - $tw, 2, '.', ''), + $bc, $wc, $wr + ]); + } + + // 用户日输赢明细 + fputcsv($out, []); + fputcsv($out, ['=== 用户日输赢明细 ===']); + fputcsv($out, ['用户名', '日期', '投注额', '派彩额', '平台盈亏', '笔数']); + foreach ($userWinLossRaw as $dd) { + $tb = floatval($dd['total_bet']); + $tw = floatval($dd['total_win']); + fputcsv($out, [ + $dd['username'], $dd['date'], + number_format($tb, 2, '.', ''), + number_format($tw, 2, '.', ''), + number_format($tb - $tw, 2, '.', ''), + intval($dd['bet_count']) + ]); + } + + fclose($out); + exit; + } + private function json($data) { header('Content-Type: application/json'); echo json_encode($data); } } diff --git a/App/Controllers/Admin/SettingsController.php b/App/Controllers/Admin/SettingsController.php index 75ef65c..f33fc4f 100755 --- a/App/Controllers/Admin/SettingsController.php +++ b/App/Controllers/Admin/SettingsController.php @@ -107,6 +107,7 @@ class SettingsController extends AdminBaseController { 'site_logo', 'site_favicon', 'site_copyright', 'smtp_host', 'smtp_port', 'smtp_user', 'smtp_pass', 'smtp_from', 'smtp_from_name', 'smtp_encryption', + 'customer_service_url', ]; foreach ($allowedKeys as $key) { diff --git a/App/Controllers/Admin/WaterController.php b/App/Controllers/Admin/WaterController.php index a1ac6b4..b042c4a 100644 --- a/App/Controllers/Admin/WaterController.php +++ b/App/Controllers/Admin/WaterController.php @@ -13,7 +13,8 @@ class WaterController extends AdminBaseController { $gameId = $this->getGameId(); $configs = $this->db->select('water_control', '*', ['game_id' => $gameId]); $limits = $this->db->select('bet_limits', '*', ['game_id' => $gameId]); - $this->render('Admin/water_control.php', compact('configs', 'limits', 'gameId')); + $targetProfitRate = \App\Core\SettingsHelper::get('target_profit_rate'); + $this->render('Admin/water_control.php', compact('configs', 'limits', 'gameId', 'targetProfitRate')); } public function updateWater() { @@ -61,6 +62,26 @@ class WaterController extends AdminBaseController { $this->json(['status' => 'success']); } + public function updateProfitRate() { + $this->checkLogin(); $this->checkAdmin(); + $data = json_decode(file_get_contents('php://input'), true); + $rate = isset($data['target_profit_rate']) ? floatval($data['target_profit_rate']) : 15; + if ($rate < 0 || $rate > 100) { + $this->json(['status' => 'error', 'message' => '盈利率必须在0-100之间']); + return; + } + + $db = $this->db; + $existing = $db->get('system_settings', 'id', ['setting_key' => 'target_profit_rate']); + if ($existing) { + $db->update('system_settings', ['setting_value' => (string)$rate], ['id' => $existing]); + } else { + $db->insert('system_settings', ['setting_key' => 'target_profit_rate', 'setting_value' => (string)$rate]); + } + \App\Core\SettingsHelper::clearCache(); + $this->json(['status' => 'success']); + } + private function getGameId(): int { if (!empty($_GET['game_id'])) return (int)$_GET['game_id']; return (int)($this->db->get('games', 'id', ['code' => 'pk10']) ?: 0); diff --git a/App/Controllers/Api/BotController.php b/App/Controllers/Api/BotController.php new file mode 100644 index 0000000..28e2b95 --- /dev/null +++ b/App/Controllers/Api/BotController.php @@ -0,0 +1,1351 @@ +getRuntimeSecret(); + + if ($expectedSecret === '' || !hash_equals($expectedSecret, $runtimeSecret)) { + $this->jsonResponse(false, 'Runtime auth failed', [], 401); + } + + try { + $bots = $this->db->select('bot_instances', '*', [ + 'status' => 1, + 'ORDER' => ['id' => 'ASC'], + ]) ?: []; + + $instances = []; + foreach ($bots as $bot) { + $botId = (int)($bot['id'] ?? 0); + if ($botId <= 0 || empty($bot['bot_token']) || empty($bot['bot_key']) || empty($bot['bot_secret'])) { + continue; + } + + $groups = $this->db->select('bot_groups', [ + 'id', + 'tg_group_id', + 'group_name', + 'status', + 'bet_enabled', + ], [ + 'bot_id' => $botId, + 'status' => 1, + 'ORDER' => ['id' => 'ASC'], + ]) ?: []; + + if (empty($groups)) { + continue; + } + + $instances[] = [ + 'id' => $botId, + 'name' => (string)($bot['name'] ?? ''), + 'bot_token' => (string)$bot['bot_token'], + 'bot_username' => (string)($bot['bot_username'] ?? ''), + 'bot_key' => (string)$bot['bot_key'], + 'bot_secret' => (string)$bot['bot_secret'], + 'run_mode' => (string)($bot['run_mode'] ?? 'polling'), + 'webhook_url' => (string)($bot['webhook_url'] ?? ''), + 'groups' => array_map(static function (array $group): array { + return [ + 'id' => (int)($group['id'] ?? 0), + 'tg_group_id' => (string)($group['tg_group_id'] ?? ''), + 'group_name' => (string)($group['group_name'] ?? ''), + 'status' => (int)($group['status'] ?? 0), + 'bet_enabled' => (int)($group['bet_enabled'] ?? 0) === 1, + ]; + }, $groups), + ]; + } + + $this->jsonResponse(true, 'ok', [ + 'instances' => $instances, + 'count' => count($instances), + 'server_time' => date('Y-m-d H:i:s'), + ], 200); + } catch (\Throwable $e) { + $this->jsonResponse(false, 'Failed to load runtime instances', [], 500); + } + } + + private function buildPeriodSnapshot(array $group): array + { + $gameId = (int)$group['game_id']; + $game = $this->db->get('games', ['id', 'type', 'period_duration', 'lock_before_end'], ['id' => $gameId]); + if (!$game) { + throw new \RuntimeException('Game not found'); + } + + $period = $this->db->get('periods', '*', [ + 'game_id' => $gameId, + 'ORDER' => ['id' => 'DESC'] + ]); + + $now = time(); + $countdown = 0; + $lockCountdown = 0; + if ($period && in_array($period['status'], ['pending', 'locked'], true)) { + $start = strtotime($period['start_time'] ?? $period['created_at']); + $countdown = max(0, !empty($period['end_time']) ? strtotime($period['end_time']) - $now : ((int)($game['period_duration'] ?? 300) - ($now - $start))); + $periodDuration = (int)($game['period_duration'] ?? 300); + $lockBefore = (int)($game['lock_before_end'] ?? 30); + $lockCountdown = max(0, ($periodDuration - $lockBefore) - ($now - $start)); + } + + return [ + 'game_id' => $gameId, + 'game' => $game, + 'period' => $period, + 'countdown' => $countdown, + 'lock_countdown' => $lockCountdown, + 'server_time' => date('Y-m-d H:i:s'), + ]; + } + + private function getResultPayload(array $game, ?array $periodRow): ?array + { + if (!$periodRow) { + return null; + } + + $algoClass = GameFactory::getAlgorithm($game['type'] ?? 'pk10'); + $resultTable = $algoClass::getResultTable(); + if ($resultTable) { + $result = $this->db->get($resultTable, '*', ['period_id' => (int)$periodRow['id']]); + if (!$result) { + return null; + } + $result['period_number'] = $periodRow['period_number']; + $result['status'] = $periodRow['status']; + return $result; + } + + $result = $periodRow; + $result['period_number'] = $periodRow['period_number']; + return $result; + } + + private function applyFundChange(array $group, array $wallet, string $requestType): void + { + $idempotencyKey = $this->buildIdempotencyKey($requestType); + $amount = (float)($this->requestJson['amount'] ?? 0); + $reason = trim((string)($this->requestJson['reason'] ?? '')); + $tgUserId = (string)($this->requestJson['tg_user_id'] ?? ''); + $operator = trim((string)($this->requestJson['operator'] ?? 'bot')); + $platformUserId = (int)($this->requestJson['platform_user_id'] ?? $wallet['platform_user_id']); + + if ($amount <= 0) { + $this->auditAndRespond(false, 'Amount must be greater than 0', [], 422, (int)$group['id'], $idempotencyKey); + } + + $existing = $this->db->get('bot_fund_requests', '*', ['idempotency_key' => $idempotencyKey]); + if ($existing) { + $this->auditAndRespond(true, 'Duplicate request ignored', [ + 'fund_request_id' => (int)$existing['id'], + 'transaction_id' => (int)($existing['transaction_id'] ?? 0), + 'status' => $existing['status'], + 'duplicate' => true, + ], 200, (int)$group['id'], $idempotencyKey); + } + + try { + $this->db->medoo->pdo->beginTransaction(); + + $stmt = $this->db->medoo->pdo->prepare('SELECT balance, is_virtual FROM users WHERE id = :id FOR UPDATE'); + $stmt->execute([':id' => $platformUserId]); + $user = $stmt->fetch(\PDO::FETCH_ASSOC); + if (!$user) { + throw new \RuntimeException('Platform wallet user not found'); + } + + $balanceBefore = (float)$user['balance']; + $delta = $requestType === 'credit' ? $amount : -$amount; + if ($requestType === 'debit' && $balanceBefore < $amount) { + $this->db->medoo->pdo->rollBack(); + $this->auditAndRespond(false, 'Insufficient balance', [], 422, (int)$group['id'], $idempotencyKey); + } + + $balanceAfter = $balanceBefore + $delta; + $this->db->update('users', [ + 'balance' => $balanceAfter, + 'updated_at' => date('Y-m-d H:i:s') + ], ['id' => $platformUserId]); + + $transactionId = $this->db->insert('transactions', [ + 'user_id' => $platformUserId, + 'type' => $requestType, + 'amount' => $delta, + 'balance_before' => $balanceBefore, + 'balance_after' => $balanceAfter, + 'description' => $reason !== '' ? $reason : ('TG Bot ' . $requestType), + 'is_virtual' => (int)($user['is_virtual'] ?? 0), + 'source' => 'bot', + 'source_ref' => $idempotencyKey, + 'operator_type' => 'system', + 'created_at' => date('Y-m-d H:i:s') + ]); + + $fundRequestId = $this->db->insert('bot_fund_requests', [ + 'group_id' => (int)$group['id'], + 'tg_user_id' => $tgUserId !== '' ? $tgUserId : null, + 'platform_user_id' => $platformUserId, + 'request_type' => $requestType, + 'amount' => $amount, + 'reason' => $reason !== '' ? $reason : ('TG Bot ' . $requestType), + 'idempotency_key' => $idempotencyKey, + 'transaction_id' => $transactionId, + 'status' => 'approved', + 'operator_type' => 'system', + 'created_at' => date('Y-m-d H:i:s'), + 'updated_at' => date('Y-m-d H:i:s') + ]); + + $this->db->insert('bot_push_logs', [ + 'group_id' => (int)$group['id'], + 'push_type' => $requestType, + 'payload_json' => json_encode([ + 'operator' => $operator, + 'platform_user_id' => $platformUserId, + 'amount' => $amount, + 'balance_after' => $balanceAfter, + ], JSON_UNESCAPED_UNICODE), + 'status' => 'success', + 'created_at' => date('Y-m-d H:i:s'), + 'updated_at' => date('Y-m-d H:i:s') + ]); + + $this->db->medoo->pdo->commit(); + + $this->auditAndRespond(true, ucfirst($requestType) . ' success', [ + 'fund_request_id' => (int)$fundRequestId, + 'transaction_id' => (int)$transactionId, + 'platform_user_id' => $platformUserId, + 'balance_before' => $balanceBefore, + 'balance_after' => $balanceAfter, + 'amount' => $amount, + ], 200, (int)$group['id'], $idempotencyKey); + } catch (\Throwable $e) { + if ($this->db->medoo && $this->db->medoo->pdo->inTransaction()) { + $this->db->medoo->pdo->rollBack(); + } + + try { + $this->db->insert('bot_fund_requests', [ + 'group_id' => (int)$group['id'], + 'tg_user_id' => $tgUserId !== '' ? $tgUserId : null, + 'platform_user_id' => $platformUserId, + 'request_type' => $requestType, + 'amount' => $amount, + 'reason' => $reason !== '' ? $reason : ('TG Bot ' . $requestType), + 'idempotency_key' => $idempotencyKey, + 'status' => 'failed', + 'operator_type' => 'system', + 'created_at' => date('Y-m-d H:i:s'), + 'updated_at' => date('Y-m-d H:i:s') + ]); + } catch (\Throwable $ignore) { + } + + $this->auditAndRespond(false, 'System error', [], 500, (int)$group['id'], $idempotencyKey); + } + } + + public function ping(): void + { + $this->authenticateBotRequest(); + + $this->auditAndRespond(true, 'pong', [ + 'bot_id' => (int)$this->botInstance['id'], + 'bot_name' => $this->botInstance['name'], + 'server_time' => date('Y-m-d H:i:s'), + ], 200, null, null); + } + + public function getGroupConfig(string $tgGroupId): void + { + $this->authenticateBotRequest(); + $group = $this->requireGroupByTelegramId($tgGroupId); + $wallet = $this->getGroupWallet((int)$group['id']); + + $rule = null; + if (!empty($group['bet_format_rule_id'])) { + $rule = $this->db->get('bot_bet_format_rules', '*', ['id' => (int)$group['bet_format_rule_id']]); + } + + $members = $this->db->count('bot_group_members', ['group_id' => (int)$group['id']]); + + $this->auditAndRespond(true, 'ok', [ + 'group_id' => (int)$group['id'], + 'tg_group_id' => $group['tg_group_id'], + 'group_name' => $group['group_name'], + 'game_id' => (int)$group['game_id'], + 'bet_enabled' => (int)$group['bet_enabled'] === 1, + 'wallet_mode' => $wallet['wallet_mode'], + 'master_platform_user_id' => (int)$wallet['platform_user_id'], + 'reminders' => [ + 'bet_success' => (int)$group['remind_bet_success'] === 1, + 'draw_result' => (int)$group['remind_draw_result'] === 1, + 'close_countdown' => (int)$group['remind_close_countdown'] === 1, + ], + 'countdown_config' => $group['countdown_config'] ? json_decode($group['countdown_config'], true) : [], + 'animation_enabled' => (int)$group['animation_enabled'] === 1, + 'member_count' => (int)$members, + 'bet_format_rule' => $rule ? [ + 'id' => (int)$rule['id'], + 'rule_code' => $rule['rule_code'], + 'name' => $rule['name'], + 'parser_type' => $rule['parser_type'], + 'rule_config' => $rule['rule_config'] ? json_decode($rule['rule_config'], true) : null, + 'example_text' => $rule['example_text'], + ] : null, + ], 200, (int)$group['id']); + } + + private function updateGroupSwitches(array $group, array $allowedFields): void + { + $this->authenticateBotRequest(); + $payload = $this->requestJson; + $actorTgUserId = trim((string)($payload['actor_tg_user_id'] ?? '')); + $field = trim((string)($payload['field'] ?? '')); + $enabledRaw = $payload['enabled'] ?? null; + $idempotencyKey = $this->buildIdempotencyKey('group-action'); + + if ($actorTgUserId === '' || $field === '' || !array_key_exists($field, $allowedFields) || !in_array($enabledRaw, [0, 1, '0', '1', true, false], true)) { + $this->auditAndRespond(false, 'Invalid group action payload', [], 422, (int)$group['id'], $idempotencyKey); + } + + $member = $this->db->get('bot_group_members', ['id', 'role'], [ + 'group_id' => (int)$group['id'], + 'tg_user_id' => $actorTgUserId, + ]); + $isConfiguredAdmin = $member && in_array((string)($member['role'] ?? ''), ['admin', 'owner'], true); + $isRuntimeAdmin = !empty($payload['is_runtime_admin']); + if (!$isConfiguredAdmin && !$isRuntimeAdmin) { + $this->auditAndRespond(false, 'Permission denied', [], 403, (int)$group['id'], $idempotencyKey); + } + + $enabled = in_array($enabledRaw, [1, '1', true], true) ? 1 : 0; + $dbField = $allowedFields[$field]; + + try { + $this->db->update('bot_groups', [ + $dbField => $enabled, + 'updated_at' => date('Y-m-d H:i:s'), + ], ['id' => (int)$group['id']]); + + $group[$dbField] = $enabled; + $this->auditAndRespond(true, 'Group action updated', [ + 'field' => $field, + 'db_field' => $dbField, + 'enabled' => $enabled === 1, + 'group_id' => (int)$group['id'], + 'tg_group_id' => (string)$group['tg_group_id'], + ], 200, (int)$group['id'], $idempotencyKey); + } catch (\Throwable $e) { + $this->auditAndRespond(false, 'Failed to update group action', [], 500, (int)$group['id'], $idempotencyKey); + } + } + + public function getDrawLatest(string $tgGroupId): void + { + $this->authenticateBotRequest(); + $group = $this->requireGroupByTelegramId($tgGroupId); + + try { + $snapshot = $this->buildPeriodSnapshot($group); + $game = $snapshot['game']; + $lastDrawn = $this->db->get('periods', '*', [ + 'game_id' => (int)$snapshot['game_id'], + 'status' => ['drawn', 'settled'], + 'ORDER' => ['id' => 'DESC'] + ]); + $currentLocked = null; + if (!empty($snapshot['period']) && ($snapshot['period']['status'] ?? '') === 'locked' && !empty($snapshot['period']['result'])) { + $currentLocked = $this->getResultPayload($game, $snapshot['period']); + } + + $latest = $this->getResultPayload($game, $lastDrawn); + $this->auditAndRespond(true, 'ok', [ + 'latest_result' => $latest, + 'current_locked_result' => $currentLocked, + 'server_time' => $snapshot['server_time'], + ], 200, (int)$group['id']); + } catch (\Throwable $e) { + $this->auditAndRespond(false, 'Failed to load latest draw', [], 500, (int)$group['id']); + } + } + + public function toggleGroupSetting(string $tgGroupId): void + { + $this->authenticateBotRequest(); + $group = $this->requireGroupByTelegramId($tgGroupId); + $this->updateGroupSwitches($group, [ + 'bet_enabled' => 'bet_enabled', + 'bet_success' => 'remind_bet_success', + 'draw_result' => 'remind_draw_result', + 'close_countdown' => 'remind_close_countdown', + 'animation' => 'animation_enabled', + ]); + } + + public function getOdds(string $tgGroupId): void + { + $this->authenticateBotRequest(); + $group = $this->requireGroupByTelegramId($tgGroupId); + + try { + $gameId = (int)$group['game_id']; + $game = $this->db->get('games', ['id', 'name', 'type'], ['id' => $gameId]); + if (!$game) { + $this->auditAndRespond(false, 'Game not found', [], 404, (int)$group['id']); + } + + $oddsRows = $this->db->select('game_odds', '*', ['game_id' => $gameId]); + $grouped = []; + foreach ($oddsRows as $row) { + $type = (string)($row['type'] ?? ''); + if (!isset($grouped[$type])) { + $grouped[$type] = []; + } + $grouped[$type][] = [ + 'target' => (string)($row['target'] ?? ''), + 'odds' => (float)($row['odds'] ?? 0), + ]; + } + + $this->auditAndRespond(true, 'ok', [ + 'game_id' => $gameId, + 'game_name' => $game['name'], + 'game_type' => $game['type'], + 'odds' => $grouped, + 'total' => count($oddsRows), + ], 200, (int)$group['id']); + } catch (\Throwable $e) { + $this->auditAndRespond(false, 'Failed to load odds', [], 500, (int)$group['id']); + } + } + + public function getBetFormatRules(string $tgGroupId): void + { + $this->authenticateBotRequest(); + $group = $this->requireGroupByTelegramId($tgGroupId); + + try { + $rule = null; + if (!empty($group['bet_format_rule_id'])) { + $rule = $this->db->get('bot_bet_format_rules', '*', [ + 'id' => (int)$group['bet_format_rule_id'], + 'status' => 1, + ]); + } + + if (!$rule) { + $rules = $this->db->select('bot_bet_format_rules', '*', [ + 'game_id' => (int)$group['game_id'], + 'status' => 1, + 'ORDER' => ['id' => 'ASC'], + 'LIMIT' => 10, + ]); + + $this->auditAndRespond(true, 'ok', [ + 'active_rule' => null, + 'available_rules' => array_map(function ($r) { + return [ + 'id' => (int)$r['id'], + 'rule_code' => $r['rule_code'], + 'name' => $r['name'], + 'parser_type' => $r['parser_type'], + 'rule_config' => $r['rule_config'] ? json_decode($r['rule_config'], true) : null, + 'example_text' => $r['example_text'], + ]; + }, $rules ?: []), + ], 200, (int)$group['id']); + return; + } + + $this->auditAndRespond(true, 'ok', [ + 'active_rule' => [ + 'id' => (int)$rule['id'], + 'rule_code' => $rule['rule_code'], + 'name' => $rule['name'], + 'parser_type' => $rule['parser_type'], + 'rule_config' => $rule['rule_config'] ? json_decode($rule['rule_config'], true) : null, + 'example_text' => $rule['example_text'], + ], + 'available_rules' => [], + ], 200, (int)$group['id']); + } catch (\Throwable $e) { + $this->auditAndRespond(false, 'Failed to load bet format rules', [], 500, (int)$group['id']); + } + } + + public function getHistory(string $tgGroupId): void + { + $this->authenticateBotRequest(); + $group = $this->requireGroupByTelegramId($tgGroupId); + + try { + $snapshot = $this->buildPeriodSnapshot($group); + $game = $snapshot['game']; + $limit = (int)($_GET['limit'] ?? 10); + if ($limit <= 0) { + $limit = 10; + } + $limit = min($limit, 50); + + $periods = $this->db->select('periods', '*', [ + 'game_id' => (int)$snapshot['game_id'], + 'status' => ['drawn', 'settled'], + 'ORDER' => ['id' => 'DESC'], + 'LIMIT' => $limit, + ]); + + $history = []; + foreach ($periods as $period) { + $payload = $this->getResultPayload($game, $period); + if ($payload) { + $history[] = $payload; + } + } + + $this->auditAndRespond(true, 'ok', [ + 'items' => $history, + 'count' => count($history), + 'server_time' => $snapshot['server_time'], + ], 200, (int)$group['id']); + } catch (\Throwable $e) { + $this->auditAndRespond(false, 'Failed to load history', [], 500, (int)$group['id']); + } + } + + public function touchMember(string $tgGroupId): void + { + $this->authenticateBotRequest(); + $group = $this->requireGroupByTelegramId($tgGroupId); + + $tgUserId = trim((string)($this->requestJson['tg_user_id'] ?? '')); + $tgUsername = trim((string)($this->requestJson['tg_username'] ?? '')); + $tgNickname = trim((string)($this->requestJson['tg_nickname'] ?? '')); + + if ($tgUserId === '') { + $this->auditAndRespond(false, 'Missing tg_user_id', [], 422, (int)$group['id']); + } + + try { + $existing = $this->db->get('bot_group_members', ['id', 'tg_username', 'tg_nickname'], [ + 'group_id' => (int)$group['id'], + 'tg_user_id' => $tgUserId, + ]); + + $now = date('Y-m-d H:i:s'); + if ($existing) { + $update = ['last_seen_at' => $now, 'updated_at' => $now]; + if ($tgUsername !== '' && $tgUsername !== ($existing['tg_username'] ?? '')) { + $update['tg_username'] = $tgUsername; + } + if ($tgNickname !== '' && $tgNickname !== ($existing['tg_nickname'] ?? '')) { + $update['tg_nickname'] = $tgNickname; + } + $this->db->update('bot_group_members', $update, ['id' => (int)$existing['id']]); + $this->auditAndRespond(true, 'ok', ['action' => 'updated', 'member_id' => (int)$existing['id']], 200, (int)$group['id']); + } + + $this->db->insert('bot_group_members', [ + 'group_id' => (int)$group['id'], + 'tg_user_id' => $tgUserId, + 'tg_username' => $tgUsername ?: null, + 'tg_nickname' => $tgNickname ?: null, + 'role' => 'member', + 'bet_enabled' => 1, + 'last_seen_at' => $now, + 'created_at' => $now, + 'updated_at' => $now, + ]); + $memberId = (int)$this->db->id(); + $this->auditAndRespond(true, 'ok', ['action' => 'created', 'member_id' => $memberId], 200, (int)$group['id']); + } catch (\Throwable $e) { + $this->auditAndRespond(true, 'ok', ['action' => 'skipped'], 200, (int)$group['id']); + } + } + + public function bindMember(string $tgGroupId): void + { + $this->authenticateBotRequest(); + $group = $this->requireGroupByTelegramId($tgGroupId); + + $tgUserId = trim((string)($this->requestJson['tg_user_id'] ?? '')); + $platformUsername = trim((string)($this->requestJson['platform_username'] ?? '')); + + if ($tgUserId === '' || $platformUsername === '') { + $this->auditAndRespond(false, 'Missing tg_user_id or platform_username', [], 422, (int)$group['id']); + } + + try { + $user = $this->db->get('users', ['id', 'username', 'balance', 'status'], [ + 'username' => $platformUsername, + ]); + if (!$user) { + $this->auditAndRespond(false, 'Platform user not found', [], 404, (int)$group['id']); + } + + $existing = $this->db->get('bot_group_members', ['id'], [ + 'group_id' => (int)$group['id'], + 'tg_user_id' => $tgUserId, + ]); + + $now = date('Y-m-d H:i:s'); + if ($existing) { + $this->db->update('bot_group_members', [ + 'platform_user_id' => (int)$user['id'], + 'updated_at' => $now, + ], ['id' => (int)$existing['id']]); + } else { + $this->db->insert('bot_group_members', [ + 'group_id' => (int)$group['id'], + 'tg_user_id' => $tgUserId, + 'tg_username' => trim((string)($this->requestJson['tg_username'] ?? '')) ?: null, + 'tg_nickname' => trim((string)($this->requestJson['tg_nickname'] ?? '')) ?: null, + 'platform_user_id' => (int)$user['id'], + 'role' => 'member', + 'bet_enabled' => 1, + 'last_seen_at' => $now, + 'created_at' => $now, + 'updated_at' => $now, + ]); + } + + $this->auditAndRespond(true, 'Bind success', [ + 'platform_user_id' => (int)$user['id'], + 'platform_username' => $user['username'], + 'platform_balance' => (float)$user['balance'], + ], 200, (int)$group['id']); + } catch (\Throwable $e) { + $this->auditAndRespond(false, 'Bind failed', [], 500, (int)$group['id']); + } + } + + public function getGroupMembers(string $tgGroupId): void + { + $this->authenticateBotRequest(); + $group = $this->requireGroupByTelegramId($tgGroupId); + + try { + $members = $this->db->select('bot_group_members', [ + '[>]users' => ['platform_user_id' => 'id'], + ], [ + 'bot_group_members.id', + 'bot_group_members.tg_user_id', + 'bot_group_members.tg_username', + 'bot_group_members.tg_nickname', + 'bot_group_members.platform_user_id', + 'bot_group_members.role', + 'bot_group_members.bet_enabled', + 'bot_group_members.last_seen_at', + 'bot_group_members.created_at', + 'bot_group_members.updated_at', + 'users.username(platform_username)', + 'users.balance(platform_balance)', + 'users.status(platform_status)', + ], [ + 'bot_group_members.group_id' => (int)$group['id'], + 'ORDER' => ['bot_group_members.id' => 'ASC'], + ]); + + $shillUserIds = $this->db->select('bot_shills', ['tg_user_id'], [ + 'group_id' => (int)$group['id'], + 'enabled' => 1, + ]); + $shillMap = array_fill_keys($shillUserIds ?: [], true); + + $items = []; + foreach ($members as $member) { + $tgUserId = (string)$member['tg_user_id']; + $items[] = [ + 'id' => (int)$member['id'], + 'tg_user_id' => $tgUserId, + 'tg_username' => $member['tg_username'], + 'tg_nickname' => $member['tg_nickname'], + 'platform_user_id' => $member['platform_user_id'] !== null ? (int)$member['platform_user_id'] : null, + 'platform_username' => $member['platform_username'] ?? null, + 'platform_balance' => $member['platform_balance'] !== null ? (float)$member['platform_balance'] : null, + 'platform_status' => $member['platform_status'] !== null ? (int)$member['platform_status'] : null, + 'role' => $member['role'], + 'bet_enabled' => (int)$member['bet_enabled'] === 1, + 'is_shill' => isset($shillMap[$tgUserId]) || $member['role'] === 'shill', + 'last_seen_at' => $member['last_seen_at'], + 'created_at' => $member['created_at'], + 'updated_at' => $member['updated_at'], + ]; + } + + $this->auditAndRespond(true, 'ok', [ + 'group_id' => (int)$group['id'], + 'items' => $items, + 'count' => count($items), + ], 200, (int)$group['id']); + } catch (\Throwable $e) { + $this->auditAndRespond(false, 'Failed to load group members', [], 500, (int)$group['id']); + } + } + + public function getMemberStats(string $tgGroupId): void + { + $this->authenticateBotRequest(); + $group = $this->requireGroupByTelegramId($tgGroupId); + + try { + $from = trim((string)($_GET['date'] ?? date('Y-m-d'))); + $startAt = $from . ' 00:00:00'; + $endAt = $from . ' 23:59:59'; + + $orders = $this->db->select('bot_bet_orders', [ + 'tg_user_id', + 'tg_username', + 'bet_amount_total', + 'accepted_bet_count', + 'is_shill', + ], [ + 'group_id' => (int)$group['id'], + 'sync_status' => 'success', + 'created_at[<>]' => [$startAt, $endAt], + 'ORDER' => ['id' => 'ASC'], + ]); + + $memberMap = []; + foreach ($orders as $order) { + $tgUserId = (string)($order['tg_user_id'] ?? ''); + if ($tgUserId === '') { + continue; + } + + if (!isset($memberMap[$tgUserId])) { + $memberMap[$tgUserId] = [ + 'tg_user_id' => $tgUserId, + 'tg_username' => (string)($order['tg_username'] ?? ''), + 'bet_order_count' => 0, + 'bet_count' => 0, + 'total_bet' => 0.0, + 'is_shill' => (int)($order['is_shill'] ?? 0) === 1, + ]; + } + + $memberMap[$tgUserId]['bet_order_count']++; + $memberMap[$tgUserId]['bet_count'] += (int)($order['accepted_bet_count'] ?? 0); + $memberMap[$tgUserId]['total_bet'] += (float)($order['bet_amount_total'] ?? 0); + if ($memberMap[$tgUserId]['tg_username'] === '' && !empty($order['tg_username'])) { + $memberMap[$tgUserId]['tg_username'] = (string)$order['tg_username']; + } + if ((int)($order['is_shill'] ?? 0) === 1) { + $memberMap[$tgUserId]['is_shill'] = true; + } + } + + $members = $this->db->select('bot_group_members', [ + 'tg_user_id', + 'tg_username', + 'tg_nickname', + 'role', + 'bet_enabled', + 'last_seen_at', + ], [ + 'group_id' => (int)$group['id'], + ]); + + foreach ($members as $member) { + $tgUserId = (string)$member['tg_user_id']; + if (!isset($memberMap[$tgUserId])) { + $memberMap[$tgUserId] = [ + 'tg_user_id' => $tgUserId, + 'tg_username' => (string)($member['tg_username'] ?? ''), + 'bet_order_count' => 0, + 'bet_count' => 0, + 'total_bet' => 0.0, + 'is_shill' => $member['role'] === 'shill', + ]; + } + + $memberMap[$tgUserId]['tg_nickname'] = $member['tg_nickname']; + $memberMap[$tgUserId]['role'] = $member['role']; + $memberMap[$tgUserId]['bet_enabled'] = (int)$member['bet_enabled'] === 1; + $memberMap[$tgUserId]['last_seen_at'] = $member['last_seen_at']; + if ($memberMap[$tgUserId]['tg_username'] === '' && !empty($member['tg_username'])) { + $memberMap[$tgUserId]['tg_username'] = (string)$member['tg_username']; + } + if ($member['role'] === 'shill') { + $memberMap[$tgUserId]['is_shill'] = true; + } + } + + $items = array_values($memberMap); + usort($items, function (array $left, array $right): int { + $betCompare = $right['total_bet'] <=> $left['total_bet']; + if ($betCompare !== 0) { + return $betCompare; + } + return $right['bet_order_count'] <=> $left['bet_order_count']; + }); + + $this->auditAndRespond(true, 'ok', [ + 'date' => $from, + 'group_id' => (int)$group['id'], + 'items' => $items, + 'count' => count($items), + ], 200, (int)$group['id']); + } catch (\Throwable $e) { + $this->auditAndRespond(false, 'Failed to load member stats', [], 500, (int)$group['id']); + } + } + + public function getDailyStats(string $tgGroupId): void + { + $this->authenticateBotRequest(); + $group = $this->requireGroupByTelegramId($tgGroupId); + + try { + $wallet = $this->getGroupWallet((int)$group['id']); + $platformUserId = (int)$wallet['platform_user_id']; + $from = trim((string)($_GET['date'] ?? date('Y-m-d'))); + $startAt = $from . ' 00:00:00'; + $endAt = $from . ' 23:59:59'; + + $betWhere = [ + 'user_id' => $platformUserId, + 'source' => 'bot', + 'created_at[<>]' => [$startAt, $endAt], + ]; + $txWhere = [ + 'user_id' => $platformUserId, + 'source' => 'bot', + 'created_at[<>]' => [$startAt, $endAt], + ]; + + $totalBet = (float)($this->db->sum('bets', 'amount', $betWhere) ?: 0); + $totalWin = (float)($this->db->sum('bets', 'win_amount', array_merge($betWhere, ['status' => 'win'])) ?: 0); + $betCount = (int)($this->db->count('bets', $betWhere) ?: 0); + $deposit = (float)($this->db->sum('transactions', 'amount', array_merge($txWhere, ['type' => 'credit', 'amount[>]' => 0])) ?: 0); + $withdraw = abs((float)($this->db->sum('transactions', 'amount', array_merge($txWhere, ['type' => 'debit', 'amount[<]' => 0])) ?: 0)); + $orderCount = (int)($this->db->count('bot_bet_orders', [ + 'group_id' => (int)$group['id'], + 'created_at[<>]' => [$startAt, $endAt], + 'sync_status' => 'success', + ]) ?: 0); + $shillOrderCount = (int)($this->db->count('bot_bet_orders', [ + 'group_id' => (int)$group['id'], + 'created_at[<>]' => [$startAt, $endAt], + 'sync_status' => 'success', + 'is_shill' => 1, + ]) ?: 0); + + $this->auditAndRespond(true, 'ok', [ + 'date' => $from, + 'group_id' => (int)$group['id'], + 'platform_user_id' => $platformUserId, + 'bet_order_count' => $orderCount, + 'shill_order_count' => $shillOrderCount, + 'effective_order_count' => max(0, $orderCount - $shillOrderCount), + 'bet_count' => $betCount, + 'total_bet' => $totalBet, + 'total_win' => $totalWin, + 'profit_loss' => $totalWin - $totalBet, + 'credit_total' => $deposit, + 'debit_total' => $withdraw, + ], 200, (int)$group['id']); + } catch (\Throwable $e) { + $this->auditAndRespond(false, 'Failed to load daily stats', [], 500, (int)$group['id']); + } + } + + public function getCurrentPeriod(string $tgGroupId): void + { + $this->authenticateBotRequest(); + $group = $this->requireGroupByTelegramId($tgGroupId); + + try { + $snapshot = $this->buildPeriodSnapshot($group); + $period = $snapshot['period']; + $this->auditAndRespond(true, 'ok', [ + 'id' => (int)($period['id'] ?? 0), + 'game_id' => (int)$snapshot['game_id'], + 'period_number' => $period['period_number'] ?? '', + 'status' => $period['status'] ?? 'none', + 'remaining_seconds' => (int)$snapshot['countdown'], + 'lock_countdown' => (int)$snapshot['lock_countdown'], + 'auto_generated' => (int)($period['auto_generated'] ?? 0), + 'server_time' => $snapshot['server_time'], + ], 200, (int)$group['id']); + } catch (\Throwable $e) { + $this->auditAndRespond(false, 'Failed to load current period', [], 500, (int)$group['id']); + } + } + + public function credit(string $tgGroupId): void + { + $this->authenticateBotRequest(); + $group = $this->requireGroupByTelegramId($tgGroupId); + $wallet = $this->getGroupWallet((int)$group['id']); + $this->applyFundChange($group, $wallet, 'credit'); + } + + public function debit(string $tgGroupId): void + { + $this->authenticateBotRequest(); + $group = $this->requireGroupByTelegramId($tgGroupId); + $wallet = $this->getGroupWallet((int)$group['id']); + $this->applyFundChange($group, $wallet, 'debit'); + } + + public function placeGroupBet(string $tgGroupId): void + { + $this->authenticateBotRequest(); + $group = $this->requireGroupByTelegramId($tgGroupId); + $wallet = $this->getGroupWallet((int)$group['id']); + + if ((int)$group['bet_enabled'] !== 1) { + $this->auditAndRespond(false, 'Bet sync disabled for this group', [], 403, (int)$group['id']); + } + + $gameId = (int)($this->requestJson['game_id'] ?? $group['game_id'] ?? 0); + $periodNumber = trim((string)($this->requestJson['period_number'] ?? '')); + $bets = $this->requestJson['bets'] ?? []; + $tgUser = $this->requestJson['tg_user'] ?? []; + $rawText = trim((string)($this->requestJson['bet_context']['raw_text'] ?? $this->requestJson['raw_text'] ?? '')); + $idempotencyKey = $this->buildIdempotencyKey('tg'); + + if ($gameId <= 0 || $periodNumber === '' || !is_array($bets) || empty($bets)) { + $this->auditAndRespond(false, 'Missing required bet fields', [], 422, (int)$group['id'], $idempotencyKey); + } + + $exists = $this->db->get('bot_bet_orders', '*', ['idempotency_key' => $idempotencyKey]); + if ($exists) { + $data = [ + 'platform_order_ref' => $exists['platform_order_ref'], + 'sync_status' => $exists['sync_status'], + 'bet_amount_total' => (float)$exists['bet_amount_total'], + 'accepted_bet_count' => (int)$exists['accepted_bet_count'], + 'duplicate' => true, + ]; + $this->auditAndRespond(true, 'Duplicate request ignored', $data, 200, (int)$group['id'], $idempotencyKey); + } + + $period = $this->db->get('periods', '*', [ + 'period_number' => $periodNumber, + 'game_id' => $gameId, + ]); + if (!$period || $period['status'] !== 'pending') { + $this->auditAndRespond(false, 'Period is not open for betting', [], 422, (int)$group['id'], $idempotencyKey); + } + + $oddsRows = $this->db->select('game_odds', '*', ['game_id' => $gameId]); + $oddsMap = []; + foreach ($oddsRows as $row) { + $oddsMap[$row['type'] . '_' . $row['target']] = (float)$row['odds']; + } + + $limitsRaw = $this->db->select('bet_limits', '*', ['game_id' => $gameId]); + $limits = []; + foreach ($limitsRaw as $row) { + $limits[$row['bet_type']] = $row; + } + + $totalAmount = 0.0; + $validBets = []; + foreach ($bets as $bet) { + $type = trim((string)($bet['type'] ?? '')); + $target = trim((string)($bet['target'] ?? $bet['value'] ?? '')); + $amount = (float)($bet['amount'] ?? 0); + if ($type === '' || $target === '' || $amount <= 0) { + continue; + } + + $key = $type . '_' . $target; + $odds = $oddsMap[$key] ?? null; + if ($odds === null) { + $this->auditAndRespond(false, 'Invalid bet: ' . $key, [], 422, (int)$group['id'], $idempotencyKey); + } + + if (isset($limits[$type])) { + if ($amount < (float)$limits[$type]['min_amount']) { + $this->auditAndRespond(false, 'Min bet for ' . $type . ': ' . $limits[$type]['min_amount'], [], 422, (int)$group['id'], $idempotencyKey); + } + if ($amount > (float)$limits[$type]['max_amount']) { + $this->auditAndRespond(false, 'Max bet for ' . $type . ': ' . $limits[$type]['max_amount'], [], 422, (int)$group['id'], $idempotencyKey); + } + } + + $totalAmount += $amount; + $validBets[] = [ + 'type' => $type, + 'target' => $target, + 'amount' => $amount, + 'odds' => $odds, + ]; + } + + if (empty($validBets)) { + $this->auditAndRespond(false, 'No valid bets', [], 422, (int)$group['id'], $idempotencyKey); + } + + $platformUserId = (int)$wallet['platform_user_id']; + $platformOrderRef = 'BOT' . date('YmdHis') . substr(hash('sha256', $idempotencyKey), 0, 10); + $isShill = $this->db->has('bot_shills', [ + 'group_id' => (int)$group['id'], + 'tg_user_id' => (string)($tgUser['id'] ?? ''), + 'enabled' => 1, + ]) ? 1 : 0; + + try { + $this->db->medoo->pdo->beginTransaction(); + + $stmt = $this->db->medoo->pdo->prepare('SELECT balance, is_virtual, agent_id FROM users WHERE id = :id FOR UPDATE'); + $stmt->execute([':id' => $platformUserId]); + $user = $stmt->fetch(\PDO::FETCH_ASSOC); + if (!$user) { + throw new \RuntimeException('Platform wallet user not found'); + } + + $currentBalance = (float)$user['balance']; + if ($currentBalance < $totalAmount) { + $this->db->medoo->pdo->rollBack(); + $this->auditAndRespond(false, 'Insufficient balance', [], 422, (int)$group['id'], $idempotencyKey); + } + + $newBalance = $currentBalance - $totalAmount; + $this->db->update('users', ['balance' => $newBalance], ['id' => $platformUserId]); + + $this->db->insert('transactions', [ + 'user_id' => $platformUserId, + 'type' => 'bet', + 'amount' => -$totalAmount, + 'balance_before' => $currentBalance, + 'balance_after' => $newBalance, + 'related_id' => (int)$period['id'], + 'description' => 'TG Bot Bet - ' . $periodNumber, + 'is_virtual' => (int)($user['is_virtual'] ?? 0), + 'source' => 'bot', + 'source_ref' => $idempotencyKey, + 'created_at' => date('Y-m-d H:i:s'), + ]); + + foreach ($validBets as $vb) { + $this->db->insert('bets', [ + 'user_id' => $platformUserId, + 'game_id' => $gameId, + 'period_id' => (int)$period['id'], + 'period_number' => $periodNumber, + 'bet_type' => $vb['type'], + 'bet_value' => $vb['target'], + 'amount' => $vb['amount'], + 'odds' => $vb['odds'], + 'status' => 'pending', + 'is_virtual' => (int)($user['is_virtual'] ?? 0), + 'agent_id' => $user['agent_id'] ?? null, + 'source' => 'bot', + 'source_ref' => $idempotencyKey, + 'created_at' => date('Y-m-d H:i:s'), + ]); + } + + $this->db->insert('bot_bet_orders', [ + 'group_id' => (int)$group['id'], + 'tg_chat_id' => $tgGroupId, + 'tg_message_id' => (int)($this->requestJson['bet_context']['message_id'] ?? $this->requestJson['message_id'] ?? 0), + 'tg_user_id' => (string)($tgUser['id'] ?? ''), + 'tg_username' => (string)($tgUser['username'] ?? ''), + 'platform_user_id' => $platformUserId, + 'game_id' => $gameId, + 'period_number' => $periodNumber, + 'raw_text' => $rawText, + 'parsed_payload_json' => json_encode($validBets, JSON_UNESCAPED_UNICODE), + 'bet_amount_total' => $totalAmount, + 'accepted_bet_count' => count($validBets), + 'platform_order_ref' => $platformOrderRef, + 'idempotency_key' => $idempotencyKey, + 'sync_status' => 'success', + 'is_shill' => $isShill, + 'created_at' => date('Y-m-d H:i:s'), + 'updated_at' => date('Y-m-d H:i:s'), + ]); + + if ((int)$group['remind_bet_success'] === 1) { + $this->db->insert('bot_push_logs', [ + 'group_id' => (int)$group['id'], + 'period_number' => $periodNumber, + 'push_type' => 'bet_success', + 'payload_json' => json_encode([ + 'event' => 'bet_success', + 'period_number' => $periodNumber, + 'platform_order_ref' => $platformOrderRef, + 'tg_user_id' => (string)($tgUser['id'] ?? ''), + 'tg_username' => (string)($tgUser['username'] ?? ''), + 'accepted_bets' => count($validBets), + 'total_amount' => $totalAmount, + 'balance_after' => $newBalance, + 'raw_text' => $rawText, + ], JSON_UNESCAPED_UNICODE), + 'status' => 'pending', + 'created_at' => date('Y-m-d H:i:s'), + 'updated_at' => date('Y-m-d H:i:s'), + ]); + } + + $this->db->medoo->pdo->commit(); + + $data = [ + 'platform_order_ref' => $platformOrderRef, + 'new_balance' => $newBalance, + 'accepted_bets' => count($validBets), + 'total_amount' => $totalAmount, + 'is_shill' => $isShill === 1, + ]; + + $this->auditAndRespond(true, 'Bet placed successfully', $data, 200, (int)$group['id'], $idempotencyKey); + } catch (\Throwable $e) { + if ($this->db->medoo && $this->db->medoo->pdo->inTransaction()) { + $this->db->medoo->pdo->rollBack(); + } + + try { + $this->db->insert('bot_bet_orders', [ + 'group_id' => (int)$group['id'], + 'tg_chat_id' => $tgGroupId, + 'tg_message_id' => (int)($this->requestJson['bet_context']['message_id'] ?? $this->requestJson['message_id'] ?? 0), + 'tg_user_id' => (string)($tgUser['id'] ?? ''), + 'tg_username' => (string)($tgUser['username'] ?? ''), + 'platform_user_id' => $platformUserId, + 'game_id' => $gameId, + 'period_number' => $periodNumber, + 'raw_text' => $rawText, + 'parsed_payload_json' => json_encode($bets, JSON_UNESCAPED_UNICODE), + 'bet_amount_total' => $totalAmount, + 'accepted_bet_count' => 0, + 'platform_order_ref' => $platformOrderRef, + 'idempotency_key' => $idempotencyKey, + 'sync_status' => 'failed', + 'sync_error' => mb_substr($e->getMessage(), 0, 255), + 'is_shill' => $isShill, + 'created_at' => date('Y-m-d H:i:s'), + 'updated_at' => date('Y-m-d H:i:s'), + ]); + } catch (\Throwable $ignore) { + } + + $this->auditAndRespond(false, 'System error', [], 500, (int)$group['id'], $idempotencyKey); + } + } + + public function getPendingPushes(string $tgGroupId): void + { + $this->authenticateBotRequest(); + $group = $this->requireGroupByTelegramId($tgGroupId); + + $limit = (int)($this->requestJson['limit'] ?? $_GET['limit'] ?? 20); + if ($limit <= 0) { + $limit = 20; + } + $limit = min($limit, 100); + + $workerToken = trim((string)($this->requestJson['worker_token'] ?? $_GET['worker_token'] ?? '')); + if ($workerToken === '') { + $workerToken = 'worker:' . substr(hash('sha256', uniqid('', true) . '|' . microtime(true)), 0, 24); + } + + try { + $reclaimBefore = date('Y-m-d H:i:s', time() - 120); + $this->db->update('bot_push_logs', [ + 'claim_token' => null, + 'claimed_at' => null, + 'updated_at' => date('Y-m-d H:i:s'), + ], [ + 'group_id' => (int)$group['id'], + 'status' => 'pending', + 'claim_token[!]' => null, + 'claimed_at[<]' => $reclaimBefore, + ]); + + $rows = $this->db->select('bot_push_logs', '*', [ + 'group_id' => (int)$group['id'], + 'status' => 'pending', + 'claim_token' => null, + 'ORDER' => ['id' => 'ASC'], + 'LIMIT' => 200, + ]) ?: []; + + $pushes = []; + $nowTs = time(); + $claimedAt = date('Y-m-d H:i:s'); + foreach ($rows as $row) { + $payload = []; + if (!empty($row['payload_json'])) { + $decoded = json_decode((string)$row['payload_json'], true); + if (is_array($decoded)) { + $payload = $decoded; + } + } + + $dispatchAtTs = !empty($payload['dispatch_at']) ? strtotime((string)$payload['dispatch_at']) : 0; + if ($dispatchAtTs > 0 && $dispatchAtTs > $nowTs) { + continue; + } + + $updated = $this->db->update('bot_push_logs', [ + 'claim_token' => $workerToken, + 'claimed_at' => $claimedAt, + 'updated_at' => $claimedAt, + ], [ + 'id' => (int)$row['id'], + 'group_id' => (int)$group['id'], + 'status' => 'pending', + 'claim_token' => null, + ]); + + if (($updated->rowCount() ?? 0) <= 0) { + continue; + } + + $pushes[] = [ + 'id' => (int)$row['id'], + 'group_id' => (int)$row['group_id'], + 'period_number' => $row['period_number'], + 'push_type' => $row['push_type'], + 'payload' => $payload, + 'claim_token' => $workerToken, + 'claimed_at' => $claimedAt, + 'created_at' => $row['created_at'], + 'updated_at' => $claimedAt, + ]; + + if (count($pushes) >= $limit) { + break; + } + } + + $this->auditAndRespond(true, 'ok', [ + 'items' => $pushes, + 'count' => count($pushes), + 'limit' => $limit, + 'worker_token' => $workerToken, + ], 200, (int)$group['id']); + } catch (\Throwable $e) { + $this->auditAndRespond(false, 'Failed to load pending pushes', [], 500, (int)$group['id']); + } + } + + public function ackPushes(string $tgGroupId): void + { + $this->authenticateBotRequest(); + $group = $this->requireGroupByTelegramId($tgGroupId); + $idempotencyKey = $this->buildIdempotencyKey('push-ack'); + + $pushLogIds = $this->requestJson['push_log_ids'] ?? []; + $status = trim((string)($this->requestJson['status'] ?? '')); + $errorMessage = trim((string)($this->requestJson['error_message'] ?? '')); + $tgMessageId = (int)($this->requestJson['tg_message_id'] ?? 0); + $claimToken = trim((string)($this->requestJson['claim_token'] ?? '')); + + if (!is_array($pushLogIds) || empty($pushLogIds)) { + $this->auditAndRespond(false, 'push_log_ids is required', [], 422, (int)$group['id'], $idempotencyKey); + } + + $allowedStatus = ['success', 'failed', 'skipped']; + if (!in_array($status, $allowedStatus, true)) { + $this->auditAndRespond(false, 'Invalid status', [], 422, (int)$group['id'], $idempotencyKey); + } + + if ($claimToken === '') { + $this->auditAndRespond(false, 'claim_token is required', [], 422, (int)$group['id'], $idempotencyKey); + } + + $pushLogIds = array_values(array_unique(array_filter(array_map('intval', $pushLogIds), static function ($id) { + return $id > 0; + }))); + if (empty($pushLogIds)) { + $this->auditAndRespond(false, 'No valid push_log_ids', [], 422, (int)$group['id'], $idempotencyKey); + } + + try { + $rows = $this->db->select('bot_push_logs', ['id', 'status', 'claim_token'], [ + 'id' => $pushLogIds, + 'group_id' => (int)$group['id'], + 'claim_token' => $claimToken, + ]) ?: []; + + if (empty($rows)) { + $this->auditAndRespond(false, 'Push logs not found or not claimed by this worker', [], 404, (int)$group['id'], $idempotencyKey); + } + + $foundIds = array_map(static function (array $row): int { + return (int)$row['id']; + }, $rows); + sort($foundIds); + $expectedIds = $pushLogIds; + sort($expectedIds); + if ($foundIds !== $expectedIds) { + $this->auditAndRespond(false, 'Some push logs are missing or owned by another worker', [ + 'expected_ids' => $expectedIds, + 'found_ids' => $foundIds, + ], 409, (int)$group['id'], $idempotencyKey); + } + + $updateData = [ + 'status' => $status, + 'updated_at' => date('Y-m-d H:i:s'), + 'error_message' => $errorMessage !== '' ? mb_substr($errorMessage, 0, 255) : null, + 'claim_token' => null, + 'claimed_at' => null, + ]; + if ($tgMessageId > 0) { + $updateData['tg_message_id'] = $tgMessageId; + } + + $this->db->update('bot_push_logs', $updateData, [ + 'id' => $foundIds, + 'group_id' => (int)$group['id'], + 'claim_token' => $claimToken, + ]); + + $this->auditAndRespond(true, 'Push ack updated', [ + 'updated_count' => count($foundIds), + 'updated_ids' => $foundIds, + 'status' => $status, + 'tg_message_id' => $tgMessageId > 0 ? $tgMessageId : null, + 'claim_token' => $claimToken, + ], 200, (int)$group['id'], $idempotencyKey); + } catch (\Throwable $e) { + $this->auditAndRespond(false, 'Failed to ack pushes', [], 500, (int)$group['id'], $idempotencyKey); + } + } +} diff --git a/App/Controllers/Web/FollowPlanController.php b/App/Controllers/Web/FollowPlanController.php new file mode 100644 index 0000000..8c685cd --- /dev/null +++ b/App/Controllers/Web/FollowPlanController.php @@ -0,0 +1,44 @@ +checkWebLogin(); + I18n::init(); + $db = new Database(); + $userId = $this->getCurrentUserId(); + $user = $db->get('users', ['id','username','balance'], ['id' => $userId]); + + $service = new FollowPlanService($db); + $game = $db->get('games', '*', ['code' => 'pk10', 'status' => 1]); + $gameId = $game['id'] ?? 0; + + $plans = $service->getActivePlans($gameId); + $userFollows = $service->getUserFollowStatus($userId); + $summary = $service->getUserSummary($userId); + + extract(compact('user', 'plans', 'userFollows', 'summary', 'game')); + include __DIR__ . '/../../Views/Web/follow_plan.php'; + } + + /** + * 切换跟单状态 API + */ + public function toggleFollow() { + $this->checkWebLogin(); + header('Content-Type: application/json'); + $db = new Database(); + $data = json_decode(file_get_contents('php://input'), true); + $planId = intval($data['plan_id'] ?? 0); + + $service = new FollowPlanService($db); + $result = $service->toggleFollow($this->getCurrentUserId(), $planId); + echo json_encode($result); + } +} diff --git a/App/Controllers/Web/HomeController.php b/App/Controllers/Web/HomeController.php index 620dc63..ad1a1ec 100755 --- a/App/Controllers/Web/HomeController.php +++ b/App/Controllers/Web/HomeController.php @@ -29,10 +29,26 @@ class HomeController extends WebBaseController { $user = $db->get('users', ['id','username','balance','lang'], ['id' => $userId]); $game = $db->get('games', '*', ['code' => 'pk10', 'status' => 1]); $isAgent = !!$db->get('agents', 'id', ['user_id' => $userId, 'status' => 1]); + // 加载赔率(优先代理专属赔率,否则用游戏默认赔率) + $gameId = $game['id'] ?? 0; + $oddsRaw = $db->select('game_odds', '*', ['game_id' => $gameId]); + $oddsMap = []; + foreach ($oddsRaw as $o) { + $oddsMap[$o['type'] . '_' . $o['target']] = (float)$o['odds']; + } + // 代理专属赔率覆盖 + $agentId = $db->get('agents', 'id', ['user_id' => $userId, 'status' => 1]); + if ($agentId) { + $agentOdds = $db->select('agent_odds', '*', ['agent_id' => $agentId, 'game_id' => $gameId]); + foreach ($agentOdds as $ao) { + $oddsMap[$ao['bet_type'] . '_' . $ao['bet_target']] = (float)$ao['odds']; + } + } extract([ 'user' => $user ?: ['id' => $userId, 'username' => $this->getCurrentUsername(), 'balance' => 0], 'game' => $game, - 'isAgent' => $isAgent, + 'isAgent' => !!$agentId, + 'oddsMap' => $oddsMap, ]); include __DIR__ . '/../../Views/Web/pk10.php'; } @@ -56,7 +72,13 @@ class HomeController extends WebBaseController { 'ORDER' => ['id' => 'DESC'], 'LIMIT' => 20 ]); - extract(compact('user', 'transactions', 'bets')); + // 充提记录 + $fundRequests = $db->select('fund_requests', '*', [ + 'user_id' => $userId, + 'ORDER' => ['id' => 'DESC'], 'LIMIT' => 20 + ]); + + extract(compact('user', 'transactions', 'bets', 'fundRequests')); include __DIR__ . '/../../Views/Web/profile.php'; } diff --git a/App/Controllers/Web/PeriodController.php b/App/Controllers/Web/PeriodController.php index ffff7e1..b395a9e 100755 --- a/App/Controllers/Web/PeriodController.php +++ b/App/Controllers/Web/PeriodController.php @@ -84,7 +84,7 @@ class PeriodController extends WebBaseController { 'game_id' => $gameId, 'status' => ['drawn', 'settled'], 'ORDER' => ['id' => 'DESC'], - 'LIMIT' => 10 + 'LIMIT' => 30 ]); foreach ($recentPeriods as $s) { $pk = $getResult($s); diff --git a/App/Controllers/Web/ReportWebController.php b/App/Controllers/Web/ReportWebController.php new file mode 100644 index 0000000..acc1020 --- /dev/null +++ b/App/Controllers/Web/ReportWebController.php @@ -0,0 +1,36 @@ +checkWebLogin(); + I18n::init(); + $db = new Database(); + $userId = $this->getCurrentUserId(); + $user = $db->get('users', ['id','username','balance'], ['id' => $userId]); + extract(compact('user')); + include __DIR__ . '/../../Views/Web/report.php'; + } + + /** + * 前台报表查询 API + */ + public function userReportApi() { + $this->checkWebLogin(); + header('Content-Type: application/json'); + $service = new ReportService(new Database()); + $dateFrom = $_GET['from'] ?? date('Y-m-d'); + $dateTo = $_GET['to'] ?? date('Y-m-d'); + $data = $service->getUserReport($this->getCurrentUserId(), $dateFrom, $dateTo); + echo json_encode(['success' => true, 'data' => $data]); + } +} diff --git a/App/Controllers/Web/TransactionController.php b/App/Controllers/Web/TransactionController.php new file mode 100644 index 0000000..fb213dc --- /dev/null +++ b/App/Controllers/Web/TransactionController.php @@ -0,0 +1,36 @@ +checkWebLogin(); + header('Content-Type: application/json'); + $data = json_decode(file_get_contents('php://input'), true); + $service = new TransactionService(new Database()); + $result = $service->fundRequest( + $this->getCurrentUserId(), + $data['type'] ?? '', + floatval($data['amount'] ?? 0), + $data['remark'] ?? '' + ); + echo json_encode($result); + } + + public function transfer() { + $this->checkWebLogin(); + header('Content-Type: application/json'); + $data = json_decode(file_get_contents('php://input'), true); + $service = new TransactionService(new Database()); + $result = $service->transfer( + $this->getCurrentUserId(), + trim($data['to_username'] ?? ''), + floatval($data['amount'] ?? 0) + ); + echo json_encode($result); + } +} diff --git a/App/Core/BotApiBaseController.php b/App/Core/BotApiBaseController.php new file mode 100644 index 0000000..62aeb49 --- /dev/null +++ b/App/Core/BotApiBaseController.php @@ -0,0 +1,181 @@ +db = new Database(); + $this->rawRequestBody = file_get_contents('php://input') ?: ''; + $this->requestJson = $this->getJsonInput(); + } + + protected function getJsonInput(): array + { + $raw = $this->rawRequestBody; + if (!$raw) { + return []; + } + + $data = json_decode($raw, true); + return is_array($data) ? $data : []; + } + + protected function jsonResponse(bool $success, string $message = '', array $data = [], int $statusCode = 200): void + { + http_response_code($statusCode); + header('Content-Type: application/json; charset=utf-8'); + echo json_encode([ + 'success' => $success, + 'message' => $message, + 'data' => $data, + ], JSON_UNESCAPED_UNICODE); + exit; + } + + protected function auditAndRespond(bool $success, string $message = '', array $data = [], int $statusCode = 200, ?int $groupId = null, ?string $idempotencyKey = null): void + { + $payload = [ + 'success' => $success, + 'message' => $message, + 'data' => $data, + ]; + $responseBody = json_encode($payload, JSON_UNESCAPED_UNICODE); + $this->logApiRequest( + (int)($this->botInstance['id'] ?? 0) ?: null, + $groupId, + $idempotencyKey, + $statusCode, + $this->botInstance !== null, + $this->rawRequestBody, + $responseBody + ); + + http_response_code($statusCode); + header('Content-Type: application/json; charset=utf-8'); + echo $responseBody; + exit; + } + + protected function getHeader(string $name): string + { + $key = 'HTTP_' . strtoupper(str_replace('-', '_', $name)); + return trim($_SERVER[$key] ?? ''); + } + + protected function authenticateBotRequest(): void + { + $botKey = $this->getHeader('X-Bot-Key'); + $timestamp = $this->getHeader('X-Timestamp'); + $signature = $this->getHeader('X-Signature'); + + if ($botKey === '' || $timestamp === '' || $signature === '') { + $this->jsonResponse(false, 'Missing bot auth headers', [], 401); + } + + if (!ctype_digit($timestamp)) { + $this->jsonResponse(false, 'Invalid timestamp', [], 401); + } + + $now = time(); + if (abs($now - (int)$timestamp) > 300) { + $this->jsonResponse(false, 'Timestamp expired', [], 401); + } + + $bot = $this->db->get('bot_instances', '*', [ + 'bot_key' => $botKey, + 'status' => 1, + ]); + + if (!$bot) { + $this->jsonResponse(false, 'Bot auth failed', [], 401); + } + + $rawBody = $this->rawRequestBody; + $method = strtoupper($_SERVER['REQUEST_METHOD'] ?? 'GET'); + $path = parse_url($_SERVER['REQUEST_URI'] ?? '/', PHP_URL_PATH) ?: '/'; + $signPayload = $timestamp . "\n" . $method . "\n" . $path . "\n" . $rawBody; + $expected = hash_hmac('sha256', $signPayload, $bot['bot_secret']); + + if (!hash_equals($expected, $signature)) { + $this->logApiRequest((int)$bot['id'], null, null, 0, false, $rawBody, ''); + $this->jsonResponse(false, 'Signature verify failed', [], 401); + } + + $this->botInstance = $bot; + } + + protected function requireGroupByTelegramId(string $tgGroupId): array + { + $group = $this->db->get('bot_groups', '*', [ + 'tg_group_id' => $tgGroupId, + 'status' => 1, + ]); + + if (!$group) { + $this->jsonResponse(false, 'Group config not found', [], 404); + } + + if ((int)$group['bot_id'] !== (int)($this->botInstance['id'] ?? 0)) { + $this->jsonResponse(false, 'Group does not belong to this bot', [], 403); + } + + $this->groupConfig = $group; + return $group; + } + + protected function getGroupWallet(int $groupId): array + { + $wallet = $this->db->get('bot_group_wallets', '*', [ + 'group_id' => $groupId, + 'status' => 1, + ]); + + if (!$wallet) { + $this->jsonResponse(false, 'Group wallet not configured', [], 422); + } + + return $wallet; + } + + protected function buildIdempotencyKey(string $fallbackPrefix = 'bot'): string + { + $key = trim((string)($this->requestJson['idempotency_key'] ?? '')); + if ($key !== '') { + return $key; + } + + $groupId = (string)($this->groupConfig['tg_group_id'] ?? 'unknown'); + $messageId = (string)($this->requestJson['bet_context']['message_id'] ?? $this->requestJson['message_id'] ?? uniqid()); + return $fallbackPrefix . ':' . $groupId . ':' . $messageId; + } + + protected function logApiRequest(?int $botId, ?int $groupId, ?string $idempotencyKey, int $responseCode, bool $signatureOk, string $requestBody, string $responseBody): void + { + try { + $this->db->insert('bot_api_request_logs', [ + 'bot_id' => $botId, + 'group_id' => $groupId, + 'request_uri' => parse_url($_SERVER['REQUEST_URI'] ?? '/', PHP_URL_PATH) ?: '/', + 'http_method' => strtoupper($_SERVER['REQUEST_METHOD'] ?? 'GET'), + 'idempotency_key' => $idempotencyKey, + 'request_body' => $requestBody, + 'response_body' => $responseBody, + 'response_code' => $responseCode, + 'client_ip' => $_SERVER['REMOTE_ADDR'] ?? '', + 'signature_ok' => $signatureOk ? 1 : 0, + 'created_at' => date('Y-m-d H:i:s'), + ]); + } catch (\Throwable $e) { + // 审计失败不阻断主流程 + } + } +} diff --git a/App/Core/PK10Algorithm.php b/App/Core/PK10Algorithm.php index 635f0d7..25529ac 100644 --- a/App/Core/PK10Algorithm.php +++ b/App/Core/PK10Algorithm.php @@ -14,26 +14,56 @@ class PK10Algorithm implements GameAlgorithmInterface { /** * 带放水机制的开奖结果生成 + * + * 算法策略: + * - targetProfitRate > 0 时:选择利润最接近「总投注额 × 目标盈利率」的结果 + * - targetProfitRate == 0 时:选择平台利润最高的结果(原逻辑) + * * @param array $bets 当期所有投注 [{bet_type, bet_target, amount, odds}, ...] * @param array $waterConfig [{bet_type => win_rate_pct}, ...] + * 当前版本中 waterConfig 的 win_rate_pct 未直接参与结果选择, + * 因为开奖结果是全局排列,无法单独控制某个投注类型的胜率。 + * 保留此参数供未来扩展(如按类型加权评分、分类型概率偏移等)。 * @param int $attempts 最大尝试次数 + * @param float $targetProfitRate 目标盈利率(百分比,如 5.0 表示 5%) */ - public static function generateControlledResult(array $bets, array $waterConfig, int $attempts = 100): array { - if (empty($bets) || empty($waterConfig)) { + public static function generateControlledResult(array $bets, array $waterConfig, int $attempts = 100, float $targetProfitRate = 0): array { + if (empty($bets)) { return self::generateResult(); } + // 计算目标利润(仅当 targetProfitRate > 0 时生效) + $targetProfit = 0; + if ($targetProfitRate > 0) { + $totalBet = 0; + foreach ($bets as $bet) { + $totalBet += (float)$bet['amount']; + } + $targetProfit = $totalBet * ($targetProfitRate / 100); + } + $bestResult = null; $bestProfit = PHP_INT_MIN; + $bestDistance = PHP_FLOAT_MAX; for ($i = 0; $i < $attempts; $i++) { $result = self::generateResult(); $profit = self::calculatePlatformProfit($result, $bets); - // 选择平台利润最高的结果 - if ($profit > $bestProfit) { - $bestProfit = $profit; - $bestResult = $result; + if ($targetProfitRate > 0) { + // 目标盈利率模式:选择利润最接近目标值的结果 + $distance = abs($profit - $targetProfit); + if ($distance < $bestDistance) { + $bestDistance = $distance; + $bestProfit = $profit; + $bestResult = $result; + } + } else { + // 原逻辑:选择平台利润最高的结果 + if ($profit > $bestProfit) { + $bestProfit = $profit; + $bestResult = $result; + } } } diff --git a/App/Core/PluginManager.php b/App/Core/PluginManager.php index 2771413..ac3e41d 100755 --- a/App/Core/PluginManager.php +++ b/App/Core/PluginManager.php @@ -38,21 +38,21 @@ class PluginManager { $rootDir = realpath(__DIR__ . '/../../'); $logDir = $rootDir . '/Storage/log'; - - // 确保日志目录(如不存在则创建) - if (!is_dir($logDir)) { - if (!mkdir($logDir, 0755, true) && !is_dir($logDir)) { - throw new \RuntimeException("无法创建日志目录: $logDir ,请检查权限"); - } - } - - // 检查目录可写性 - if (!is_writable($logDir)) { - throw new \RuntimeException("日志目录不可写: $logDir ,请检查权限"); - } - $this->logFile = $logDir . '/plugin_manager.log'; - + + // 尝试准备日志目录;失败时降级到 PHP error_log,不能阻断主流程 + if (!is_dir($logDir) && !@mkdir($logDir, 0755, true) && !is_dir($logDir)) { + $this->logFile = null; + error_log("PluginManager log directory create failed: $logDir"); + return; + } + + if (!$this->canWriteLogFile()) { + $this->logFile = null; + error_log("PluginManager log path not writable: $logDir"); + return; + } + // 检查日志文件大小并自动清理(大于2MB时) $this->cleanupLogFile(2); // 传入最大允许的MB数 } @@ -62,32 +62,47 @@ class PluginManager { * @param int $maxSizeMB 最大允许的文件大小(MB) */ private function cleanupLogFile(int $maxSizeMB) { - // 检查文件是否存在 - if (!file_exists($this->logFile)) { + if (!$this->canWriteLogFile() || !file_exists($this->logFile)) { return; } - + // 转换MB为字节 $maxSizeBytes = $maxSizeMB * 1024 * 1024; - + // 获取当前文件大小 - $currentSize = filesize($this->logFile); - + $currentSize = @filesize($this->logFile); + if ($currentSize === false) { + return; + } + // 如果文件大小超过限制,清空文件 if ($currentSize > $maxSizeBytes) { // 先备份当前日志内容(可选) $backupFile = $this->logFile . '.bak_' . date('YmdHis'); - copy($this->logFile, $backupFile); - + @copy($this->logFile, $backupFile); + // 清空日志文件 - file_put_contents($this->logFile, ''); - + @file_put_contents($this->logFile, ''); + // 记录清理日志 $message = "[" . date('Y-m-d H:i:s') . "] 日志文件超过{$maxSizeMB}MB,已自动清理\n"; - file_put_contents($this->logFile, $message, FILE_APPEND); + @file_put_contents($this->logFile, $message, FILE_APPEND); } } + private function canWriteLogFile(): bool { + if (empty($this->logFile)) { + return false; + } + + $logDir = dirname($this->logFile); + if (!is_dir($logDir) || !is_writable($logDir)) { + return false; + } + + return !file_exists($this->logFile) || is_writable($this->logFile); + } + /** * 设置系统核心路由 @@ -121,13 +136,12 @@ class PluginManager { protected function log(string $msg, string $level = 'INFO'): void { $date = date('Y-m-d H:i:s'); $logMsg = "[$date] [$level] $msg\n"; - $logDir = dirname($this->logFile); try { - if (is_dir($logDir) && is_writable($logDir)) { - file_put_contents($this->logFile, $logMsg, FILE_APPEND); + if ($this->canWriteLogFile()) { + @file_put_contents($this->logFile, $logMsg, FILE_APPEND); } else { - error_log("PluginManager log directory not writable: $logDir"); + error_log("PluginManager: " . trim($logMsg)); } } catch (\Throwable $e) { error_log("Failed to write plugin log: " . $e->getMessage()); diff --git a/App/Core/SettingsHelper.php b/App/Core/SettingsHelper.php index d2eb37e..6c37a75 100755 --- a/App/Core/SettingsHelper.php +++ b/App/Core/SettingsHelper.php @@ -60,12 +60,14 @@ class SettingsHelper { */ private static function getDefaults() { return [ - 'site_title' => 'PK10 Speed Racing', - 'site_description' => 'PK10 Speed Racing - Online Betting Platform', - 'site_keywords' => 'pk10, speed racing, betting, online game', + 'site_title' => 'F1 Racing', + 'site_description' => 'F1 Racing - Online Betting Platform', + 'site_keywords' => 'f1, racing, betting, online game', 'site_logo' => '/Static/images/logo.png', 'site_favicon' => '/Static/css/favicon.ico', - 'site_copyright' => '© 2025 PK10 Racing. All rights reserved.' + 'site_copyright' => '© 2025 F1 Racing. All rights reserved.', + 'target_profit_rate' => '15', // 目标盈利率,百分比,如15表示15% + 'customer_service_url' => '', // 客服链接(充值时跳转) ]; } diff --git a/App/Services/FollowPlanService.php b/App/Services/FollowPlanService.php new file mode 100644 index 0000000..7f3e00d --- /dev/null +++ b/App/Services/FollowPlanService.php @@ -0,0 +1,245 @@ +db = $db; + } + + /** + * 获取所有启用的跟单计划(前台展示) + */ + public function getActivePlans(int $gameId = 0): array + { + $where = ['status' => 1]; + if ($gameId > 0) $where['game_id'] = $gameId; + $where['ORDER'] = ['id' => 'ASC']; + + $plans = $this->db->select('follow_plans', '*', $where); + foreach ($plans as &$plan) { + $stats = $this->getPlanStats($plan['id']); + $plan['total_records'] = $stats['total']; + $plan['win_count'] = $stats['wins']; + $plan['win_rate'] = $stats['total'] > 0 ? round($stats['wins'] / $stats['total'] * 100, 1) : 0; + // 最近 10 期记录 + $plan['recent'] = $this->db->select('follow_plan_records', '*', [ + 'plan_id' => $plan['id'], + 'is_win[!]' => null, + 'ORDER' => ['id' => 'DESC'], + 'LIMIT' => 10 + ]); + } + unset($plan); + return $plans; + } + + /** + * 获取计划统计 + */ + public function getPlanStats(int $planId): array + { + $total = $this->db->count('follow_plan_records', [ + 'plan_id' => $planId, + 'is_win[!]' => null + ]); + $wins = $this->db->count('follow_plan_records', [ + 'plan_id' => $planId, + 'is_win' => 1 + ]); + return ['total' => $total, 'wins' => $wins]; + } + + /** + * 获取用户的跟单状态 + */ + public function getUserFollowStatus(int $userId): array + { + $rows = $this->db->select('user_follow_plans', '*', [ + 'user_id' => $userId, + 'is_active' => 1 + ]); + $result = []; + foreach ($rows as $r) { + $result[$r['plan_id']] = $r; + } + return $result; + } + + /** + * 用户开始/停止跟单 + */ + public function toggleFollow(int $userId, int $planId): array + { + $existing = $this->db->get('user_follow_plans', '*', [ + 'user_id' => $userId, + 'plan_id' => $planId + ]); + + if ($existing) { + $newStatus = $existing['is_active'] ? 0 : 1; + $this->db->update('user_follow_plans', ['is_active' => $newStatus], [ + 'id' => $existing['id'] + ]); + return ['success' => true, 'active' => $newStatus]; + } + + // 新建 + $plan = $this->db->get('follow_plans', '*', ['id' => $planId, 'status' => 1]); + if (!$plan) { + return ['success' => false, 'message' => '计划不存在或已禁用']; + } + + $this->db->insert('user_follow_plans', [ + 'user_id' => $userId, + 'plan_id' => $planId, + 'is_active' => 1, + ]); + return ['success' => true, 'active' => 1]; + } + + /** + * 获取用户跟单汇总(总胜率、总盈亏) + */ + public function getUserSummary(int $userId): array + { + $pdo = $this->db->medoo->pdo; + $totalWinRate = 0; + $totalProfit = 0; + + try { + $stmt = $pdo->prepare(" + SELECT SUM(total_bets) as bets, SUM(total_wins) as wins, SUM(total_profit) as profit + FROM user_follow_plans WHERE user_id = ? + "); + $stmt->execute([$userId]); + $row = $stmt->fetch(\PDO::FETCH_ASSOC); + $bets = intval($row['bets'] ?? 0); + $wins = intval($row['wins'] ?? 0); + $totalWinRate = $bets > 0 ? round($wins / $bets * 100, 1) : 0; + $totalProfit = floatval($row['profit'] ?? 0); + } catch (\Exception $e) {} + + return ['win_rate' => $totalWinRate, 'profit' => $totalProfit]; + } + + // ===== 后台管理 ===== + + /** + * 获取所有计划(后台) + */ + public function getAllPlans(): array + { + $plans = $this->db->select('follow_plans', '*', ['ORDER' => ['id' => 'DESC']]); + foreach ($plans as &$plan) { + $stats = $this->getPlanStats($plan['id']); + $plan['total_records'] = $stats['total']; + $plan['win_count'] = $stats['wins']; + $plan['win_rate'] = $stats['total'] > 0 ? round($stats['wins'] / $stats['total'] * 100, 1) : 0; + $plan['follower_count'] = $this->db->count('user_follow_plans', [ + 'plan_id' => $plan['id'], 'is_active' => 1 + ]); + } + unset($plan); + return $plans; + } + + /** + * 创建/更新计划 + */ + public function savePlan(array $data): array + { + $fields = [ + 'game_id' => intval($data['game_id'] ?? 1), + 'name' => trim($data['name'] ?? ''), + 'plan_type' => trim($data['plan_type'] ?? 'bs'), + 'target_rank' => intval($data['target_rank'] ?? 1), + 'strategy' => trim($data['strategy'] ?? 'follow'), + 'bet_amount' => floatval($data['bet_amount'] ?? 100), + 'status' => intval($data['status'] ?? 1), + ]; + + if (empty($fields['name'])) { + return ['success' => false, 'message' => '计划名称不能为空']; + } + + $id = intval($data['id'] ?? 0); + if ($id > 0) { + $this->db->update('follow_plans', $fields, ['id' => $id]); + } else { + $fields['created_by'] = intval($data['created_by'] ?? 0); + $this->db->insert('follow_plans', $fields); + $id = intval($this->db->id()); + } + + return ['success' => true, 'id' => $id]; + } + + /** + * 删除计划 + */ + public function deletePlan(int $planId): array + { + $this->db->delete('follow_plan_records', ['plan_id' => $planId]); + $this->db->delete('user_follow_plans', ['plan_id' => $planId]); + $this->db->delete('follow_plans', ['id' => $planId]); + return ['success' => true]; + } + + /** + * 添加计划推荐记录(由 cron 或后台手动触发) + */ + public function addRecord(int $planId, int $periodId, string $periodNumber, string $recommendValue): array + { + $exists = $this->db->get('follow_plan_records', 'id', [ + 'plan_id' => $planId, 'period_id' => $periodId + ]); + if ($exists) { + return ['success' => false, 'message' => '该期已有推荐记录']; + } + + $this->db->insert('follow_plan_records', [ + 'plan_id' => $planId, + 'period_id' => $periodId, + 'period_number' => $periodNumber, + 'recommend_value' => $recommendValue, + ]); + return ['success' => true, 'id' => intval($this->db->id())]; + } + + /** + * 结算推荐记录(开奖后调用) + */ + public function settleRecord(int $recordId, string $resultValue, bool $isWin): void + { + $this->db->update('follow_plan_records', [ + 'result_value' => $resultValue, + 'is_win' => $isWin ? 1 : 0, + ], ['id' => $recordId]); + + // 更新所有跟了这个计划的用户统计 + $record = $this->db->get('follow_plan_records', '*', ['id' => $recordId]); + if (!$record) return; + + $plan = $this->db->get('follow_plans', '*', ['id' => $record['plan_id']]); + if (!$plan) return; + + $betAmount = floatval($plan['bet_amount']); + $profit = $isWin ? $betAmount * 0.95 : -$betAmount; // 简化盈亏计算 + + $followers = $this->db->select('user_follow_plans', '*', [ + 'plan_id' => $record['plan_id'], 'is_active' => 1 + ]); + + foreach ($followers as $f) { + $this->db->update('user_follow_plans', [ + 'total_bets[+]' => 1, + 'total_wins[+]' => $isWin ? 1 : 0, + 'total_profit[+]' => $profit, + ], ['id' => $f['id']]); + } + } +} diff --git a/App/Services/ReportService.php b/App/Services/ReportService.php new file mode 100644 index 0000000..c5462e6 --- /dev/null +++ b/App/Services/ReportService.php @@ -0,0 +1,344 @@ +db = $db; + } + + /** + * 前台用户报表:按投注类型分组统计 + * + * @param int $userId 用户ID + * @param string $dateFrom 开始日期 (Y-m-d) + * @param string $dateTo 结束日期 (Y-m-d) + * @return array + */ + public function getUserReport(int $userId, string $dateFrom, string $dateTo): array + { + $rangeFrom = $dateFrom . ' 00:00:00'; + $rangeTo = $dateTo . ' 23:59:59'; + + $pdo = $this->db->medoo->pdo; + try { + // 投注统计(有效流水 = 已结算投注额,排除 pending) + $stmt = $pdo->prepare(" + SELECT + bet_type as type, + COUNT(*) as bet_count, + SUM(amount) as amount, + SUM(CASE WHEN status IN ('win','lose') THEN amount ELSE 0 END) as effective_flow, + SUM(CASE + WHEN status='win' THEN win_amount + WHEN status='lose' THEN -amount + ELSE 0 + END) as win_loss + FROM bets + WHERE user_id = ? AND created_at BETWEEN ? AND ? + GROUP BY bet_type + ORDER BY bet_type + "); + $stmt->execute([$userId, $rangeFrom, $rangeTo]); + $rows = $stmt->fetchAll(\PDO::FETCH_ASSOC); + + // 退水(代理返佣给该用户的金额) + $rebateTotal = 0; + try { + $stmt2 = $pdo->prepare(" + SELECT COALESCE(SUM(commission), 0) as total + FROM agent_commissions + WHERE from_user_id = ? AND type = 'rebate' AND created_at BETWEEN ? AND ? + "); + $stmt2->execute([$userId, $rangeFrom, $rangeTo]); + $rebateTotal = floatval($stmt2->fetch(\PDO::FETCH_ASSOC)['total'] ?? 0); + } catch (\Exception $e) { + $rebateTotal = 0; + } + + // 将退水按比例分配到各类型(或全部放在第一行) + $totalBet = array_sum(array_column($rows, 'amount')); + foreach ($rows as &$row) { + $row['amount'] = floatval($row['amount']); + $row['effective_flow'] = floatval($row['effective_flow']); + $row['win_loss'] = floatval($row['win_loss']); + // 按投注额占比分配退水 + $ratio = $totalBet > 0 ? $row['amount'] / $totalBet : 0; + $row['rebate'] = round($rebateTotal * $ratio, 2); + } + unset($row); + + return $rows; + } catch (\Exception $e) { + return []; + } + } + + /** + * 后台总体统计 + * + * @param string $dateFrom 开始日期 (Y-m-d) + * @param string $dateTo 结束日期 (Y-m-d) + * @return array + */ + public function getOverviewStats(string $dateFrom, string $dateTo): array + { + $range = [$dateFrom . ' 00:00:00', $dateTo . ' 23:59:59']; + $pdo = $this->db->medoo->pdo; + + // 总投注(排除虚拟) + $totalBet = $this->db->sum('bets', 'amount', [ + 'is_virtual' => 0, 'created_at[<>]' => $range + ]) ?: 0; + + // 总派奖 + $totalWin = $this->db->sum('bets', 'win_amount', [ + 'is_virtual' => 0, 'status' => 'win', 'created_at[<>]' => $range + ]) ?: 0; + + // 平台利润 + $profit = $totalBet - $totalWin; + $profitRate = $totalBet > 0 ? round($profit / $totalBet * 100, 2) : 0; + + // 总充值 + $totalDeposit = $this->db->sum('transactions', 'amount', [ + 'is_virtual' => 0, 'type[~]' => '%deposit%', 'amount[>]' => 0, + 'created_at[<>]' => $range + ]) ?: 0; + + // 总提现 + $totalWithdraw = abs($this->db->sum('transactions', 'amount', [ + 'is_virtual' => 0, 'type[~]' => '%withdraw%', 'amount[<]' => 0, + 'created_at[<>]' => $range + ]) ?: 0); + + // 代理佣金 + $totalCommission = $this->db->sum('agent_commissions', 'commission', [ + 'created_at[<>]' => $range + ]) ?: 0; + + // 反水 + $totalRebate = $this->db->sum('agent_commissions', 'commission', [ + 'type' => 'rebate', 'created_at[<>]' => $range + ]) ?: 0; + + // 用户统计 + $totalUsers = $this->db->count('users', ['is_virtual' => 0]); + $newUsers = $this->db->count('users', [ + 'is_virtual' => 0, 'created_at[<>]' => $range + ]); + + // 活跃用户数(有投注记录的非虚拟用户) + $activeUsers = 0; + try { + $stmt = $pdo->prepare("SELECT COUNT(DISTINCT user_id) as cnt FROM bets WHERE is_virtual = 0 AND created_at BETWEEN ? AND ?"); + $stmt->execute([$range[0], $range[1]]); + $activeUsers = (int)($stmt->fetch(\PDO::FETCH_ASSOC)['cnt'] ?? 0); + } catch (\Exception $e) { + $activeUsers = 0; + } + + return compact( + 'totalBet', 'totalWin', 'profit', 'profitRate', + 'totalDeposit', 'totalWithdraw', 'totalCommission', 'totalRebate', + 'totalUsers', 'newUsers', 'activeUsers' + ); + } + + /** + * 日明细统计 + * + * @param string $dateFrom 开始日期 (Y-m-d) + * @param string $dateTo 结束日期 (Y-m-d) + * @return array + */ + public function getDailyStats(string $dateFrom, string $dateTo): array + { + $range = [$dateFrom . ' 00:00:00', $dateTo . ' 23:59:59']; + $pdo = $this->db->medoo->pdo; + + $dailyStats = []; + try { + $stmt = $pdo->prepare(" + SELECT + DATE(created_at) as date, + SUM(amount) as total_bet, + SUM(CASE WHEN status='win' THEN win_amount ELSE 0 END) as total_win, + COUNT(*) as bet_count, + SUM(CASE WHEN status='win' THEN 1 ELSE 0 END) as win_count + FROM bets + WHERE is_virtual = 0 AND created_at BETWEEN ? AND ? + GROUP BY DATE(created_at) + ORDER BY date DESC + "); + $stmt->execute([$range[0], $range[1]]); + $dailyStats = $stmt->fetchAll(\PDO::FETCH_ASSOC); + } catch (\Exception $e) { + return []; + } + + // 补充每日充提数据 + foreach ($dailyStats as &$day) { + $dr = [$day['date'] . ' 00:00:00', $day['date'] . ' 23:59:59']; + $day['deposits'] = $this->db->sum('transactions', 'amount', [ + 'is_virtual' => 0, 'type[~]' => '%deposit%', 'amount[>]' => 0, + 'created_at[<>]' => $dr + ]) ?: 0; + $day['withdraws'] = abs($this->db->sum('transactions', 'amount', [ + 'is_virtual' => 0, 'type[~]' => '%withdraw%', 'amount[<]' => 0, + 'created_at[<>]' => $dr + ]) ?: 0); + $day['total_bet'] = floatval($day['total_bet'] ?? 0); + $day['total_win'] = floatval($day['total_win'] ?? 0); + $day['bet_count'] = intval($day['bet_count'] ?? 0); + $day['win_count'] = intval($day['win_count'] ?? 0); + $day['profit'] = $day['total_bet'] - $day['total_win']; + $day['win_rate'] = $day['bet_count'] > 0 ? round($day['win_count'] / $day['bet_count'] * 100, 1) : 0; + } + unset($day); + + return $dailyStats; + } + + /** + * 用户输赢明细(含日维度分组 + 用户汇总) + * + * @param string $dateFrom 开始日期 (Y-m-d) + * @param string $dateTo 结束日期 (Y-m-d) + * @return array ['raw' => 原始行, 'summary' => 按用户汇总] + */ + public function getUserWinLoss(string $dateFrom, string $dateTo): array + { + $range = [$dateFrom . ' 00:00:00', $dateTo . ' 23:59:59']; + $pdo = $this->db->medoo->pdo; + + $userWinLoss = []; + try { + $stmt = $pdo->prepare(" + SELECT u.id as user_id, u.username, u.balance, + DATE(b.created_at) as date, + SUM(b.amount) as total_bet, + SUM(CASE WHEN b.status='win' THEN b.win_amount ELSE 0 END) as total_win, + COUNT(*) as bet_count, + SUM(CASE WHEN b.status='win' THEN 1 ELSE 0 END) as win_count + FROM bets b + JOIN users u ON b.user_id = u.id + WHERE b.is_virtual = 0 AND b.created_at BETWEEN ? AND ? + GROUP BY b.user_id, DATE(b.created_at) + ORDER BY u.username, date DESC + "); + $stmt->execute([$range[0], $range[1]]); + $userWinLoss = $stmt->fetchAll(\PDO::FETCH_ASSOC); + } catch (\Exception $e) { + return ['raw' => [], 'summary' => []]; + } + + // 按用户汇总 + $userSummary = []; + foreach ($userWinLoss as $row) { + $uid = $row['user_id']; + if (!isset($userSummary[$uid])) { + $userSummary[$uid] = [ + 'username' => $row['username'], + 'balance' => floatval($row['balance']), + 'total_bet' => 0, 'total_win' => 0, + 'bet_count' => 0, 'win_count' => 0, + 'days' => [] + ]; + } + $bet = floatval($row['total_bet']); + $win = floatval($row['total_win']); + $userSummary[$uid]['total_bet'] += $bet; + $userSummary[$uid]['total_win'] += $win; + $userSummary[$uid]['bet_count'] += intval($row['bet_count']); + $userSummary[$uid]['win_count'] += intval($row['win_count']); + $userSummary[$uid]['days'][] = [ + 'date' => $row['date'], + 'bet' => $bet, 'win' => $win, + 'profit' => $bet - $win, + 'count' => intval($row['bet_count']), + ]; + } + // 排序:按总投注额降序 + uasort($userSummary, function($a, $b) { return $b['total_bet'] <=> $a['total_bet']; }); + + return ['raw' => $userWinLoss, 'summary' => $userSummary]; + } + + /** + * 用户排行(投注额 TOP N) + * + * @param string $dateFrom 开始日期 (Y-m-d) + * @param string $dateTo 结束日期 (Y-m-d) + * @param int $limit 条数限制,0=不限 + * @return array + */ + public function getTopUsers(string $dateFrom, string $dateTo, int $limit = 20): array + { + $range = [$dateFrom . ' 00:00:00', $dateTo . ' 23:59:59']; + $pdo = $this->db->medoo->pdo; + + $sql = " + SELECT u.username, + SUM(b.amount) as total_bet, + SUM(CASE WHEN b.status='win' THEN b.win_amount ELSE 0 END) as total_win, + SUM(b.amount) - SUM(CASE WHEN b.status='win' THEN b.win_amount ELSE 0 END) as profit, + COUNT(*) as bet_count + FROM bets b + JOIN users u ON b.user_id = u.id + WHERE b.is_virtual = 0 AND b.created_at BETWEEN ? AND ? + GROUP BY b.user_id + ORDER BY total_bet DESC + "; + if ($limit > 0) { + $sql .= " LIMIT " . intval($limit); + } + + try { + $stmt = $pdo->prepare($sql); + $stmt->execute([$range[0], $range[1]]); + return $stmt->fetchAll(\PDO::FETCH_ASSOC); + } catch (\Exception $e) { + return []; + } + } + + /** + * 代理报表 + * + * @param string $dateFrom 开始日期 (Y-m-d) + * @param string $dateTo 结束日期 (Y-m-d) + * @return array + */ + public function getAgentStats(string $dateFrom, string $dateTo): array + { + $range = [$dateFrom . ' 00:00:00', $dateTo . ' 23:59:59']; + + $agentStats = []; + $agents = $this->db->select('agents', '*', ['status' => 1]); + foreach ($agents as $ag) { + $playerIds = $this->db->select('users', 'id', ['agent_id' => $ag['id'], 'is_virtual' => 0]); + $agBet = 0; + $agWin = 0; + if (!empty($playerIds)) { + $agBet = $this->db->sum('bets', 'amount', ['user_id' => $playerIds, 'is_virtual' => 0, 'created_at[<>]' => $range]) ?: 0; + $agWin = $this->db->sum('bets', 'win_amount', ['user_id' => $playerIds, 'is_virtual' => 0, 'status' => 'win', 'created_at[<>]' => $range]) ?: 0; + } + $agComm = $this->db->sum('agent_commissions', 'commission', ['agent_id' => $ag['id'], 'created_at[<>]' => $range]) ?: 0; + $agentStats[] = [ + 'agent' => $ag, + 'user' => $this->db->get('users', ['username'], ['id' => $ag['user_id']]), + 'players' => count($playerIds), + 'bets' => $agBet, + 'wins' => $agWin, + 'commission' => $agComm, + 'profit' => $agBet - $agWin - $agComm, + ]; + } + + return $agentStats; + } +} diff --git a/App/Services/TransactionService.php b/App/Services/TransactionService.php new file mode 100644 index 0000000..9fdf4a2 --- /dev/null +++ b/App/Services/TransactionService.php @@ -0,0 +1,146 @@ +db = $db; + } + + /** + * 用户间转账 + * + * @param int $fromUserId 转出用户ID + * @param string $toUsername 收款用户名 + * @param float $amount 转账金额 + * @return array ['success' => bool, 'message' => string] + */ + public function transfer(int $fromUserId, string $toUsername, float $amount): array + { + $toUsername = trim($toUsername); + + if ($toUsername === '') { + return ['success' => false, 'message' => '请输入对方用户名']; + } + if ($amount <= 0) { + return ['success' => false, 'message' => '金额无效']; + } + + $fromUser = $this->db->get('users', '*', ['id' => $fromUserId]); + if (!$fromUser) { + return ['success' => false, 'message' => '用户不存在']; + } + if ($fromUser['balance'] < $amount) { + return ['success' => false, 'message' => '余额不足']; + } + + // 查找收款用户 + $toUser = $this->db->get('users', '*', ['username' => $toUsername]); + if (!$toUser) { + return ['success' => false, 'message' => '收款用户不存在']; + } + if ($toUser['id'] === $fromUser['id']) { + return ['success' => false, 'message' => '不能转给自己']; + } + + $this->db->medoo->pdo->beginTransaction(); + try { + $now = date('Y-m-d H:i:s'); + $fromBalanceBefore = floatval($fromUser['balance']); + $toBalanceBefore = floatval($toUser['balance']); + $fromBalanceAfter = $fromBalanceBefore - $amount; + $toBalanceAfter = $toBalanceBefore + $amount; + + // 扣款 + $this->db->update('users', ['balance' => $fromBalanceAfter, 'updated_at' => $now], ['id' => $fromUser['id']]); + // 加款 + $this->db->update('users', ['balance' => $toBalanceAfter, 'updated_at' => $now], ['id' => $toUser['id']]); + + // 转出流水 + $this->db->insert('transactions', [ + 'user_id' => $fromUser['id'], + 'type' => 'transfer_out', + 'amount' => -$amount, + 'balance_before' => $fromBalanceBefore, + 'balance_after' => $fromBalanceAfter, + 'description' => '转账给 ' . $toUser['username'], + 'created_at' => $now, + ]); + // 转入流水 + $this->db->insert('transactions', [ + 'user_id' => $toUser['id'], + 'type' => 'transfer_in', + 'amount' => $amount, + 'balance_before' => $toBalanceBefore, + 'balance_after' => $toBalanceAfter, + 'description' => '收到 ' . $fromUser['username'] . ' 的转账', + 'created_at' => $now, + ]); + + $this->db->medoo->pdo->commit(); + return ['success' => true, 'message' => '转账成功']; + } catch (\Exception $e) { + $this->db->medoo->pdo->rollBack(); + return ['success' => false, 'message' => '系统错误']; + } + } + + /** + * 充提申请 + * + * @param int $userId 用户ID + * @param string $type 类型: deposit|withdraw + * @param float $amount 金额 + * @param string $remark 备注 + * @return array ['success' => bool, 'message' => string] + */ + public function fundRequest(int $userId, string $type, float $amount, string $remark = ''): array + { + if (!in_array($type, ['deposit', 'withdraw'])) { + return ['success' => false, 'message' => '无效类型']; + } + if ($amount <= 0) { + return ['success' => false, 'message' => '金额无效']; + } + + $user = $this->db->get('users', '*', ['id' => $userId]); + if (!$user) { + return ['success' => false, 'message' => '用户不存在']; + } + + if ($type === 'withdraw') { + if ($user['balance'] < $amount) { + return ['success' => false, 'message' => '余额不足']; + } + $this->db->medoo->pdo->beginTransaction(); + try { + $this->db->update('users', ['balance[-]' => $amount], ['id' => $user['id']]); + $this->db->insert('fund_requests', [ + 'user_id' => $user['id'], + 'type' => 'withdraw', + 'amount' => $amount, + 'status' => 'pending', + 'remark' => $remark, + ]); + $this->db->medoo->pdo->commit(); + return ['success' => true, 'message' => '提现申请已提交']; + } catch (\Exception $e) { + $this->db->medoo->pdo->rollBack(); + return ['success' => false, 'message' => '系统错误']; + } + } + + // deposit - 记录申请 + $this->db->insert('fund_requests', [ + 'user_id' => $user['id'], + 'type' => 'deposit', + 'amount' => $amount, + 'status' => 'pending', + 'remark' => $remark, + ]); + return ['success' => true, 'message' => '充值申请已提交']; + } +} diff --git a/App/Views/.DS_Store b/App/Views/.DS_Store index 0cfcd9216b17d11c291e0c2936483f21ac20f683..3966231789b5cc9aa3bbddde66edefeddf264892 100755 GIT binary patch delta 414 zcmZn(XbG6$&nU1lU^hRbz+@f)$;s=*N;yo7&2U|^WsAhwjv$P(xhi^&TFWPlFQ;YYTd`NO5n8RDy1eUL4;YCn)?x)E$SGebB- rDnk;o#h9`vma-HuZ03~ZW!lWH@QY<~m9+e3M$ukIdU;L&&2tO@ff8{6 delta 110 zcmZn(XbG6$&&aVcU^hP_$7CJ>NyhDy4aEyN#jC3=O>`8DjV7-VmtpLjyiY)$v1{`m zfsL$_`NgNRn;GjU7+M%iUMudtnNMN?>t+@?W~PY^A2+ir{9@UxAll1_u52=$o* Cqaj%U diff --git a/App/Views/Admin/bots.php b/App/Views/Admin/bots.php new file mode 100644 index 0000000..41d3cc9 --- /dev/null +++ b/App/Views/Admin/bots.php @@ -0,0 +1,444 @@ +

+ + Bot 管理 +

+ + (int)($botItem['id'] ?? 0), + 'name' => (string)($botItem['name'] ?? ''), + ]; +} + +$gameOptions = []; +foreach (($games ?? []) as $gameItem) { + $gameOptions[] = [ + 'id' => (int)($gameItem['id'] ?? 0), + 'name' => (string)($gameItem['name'] ?? ''), + 'type' => (string)($gameItem['type'] ?? ''), + ]; +} + +$ruleOptions = []; +foreach (($rules ?? []) as $ruleItem) { + $ruleOptions[] = [ + 'id' => (int)($ruleItem['id'] ?? 0), + 'name' => (string)($ruleItem['name'] ?? ''), + 'rule_code' => (string)($ruleItem['rule_code'] ?? ''), + ]; +} + +$groupOptions = []; +foreach (($groups ?? []) as $groupItem) { + $countdown = ''; + if (!empty($groupItem['countdown_config'])) { + $decodedCountdown = json_decode((string)$groupItem['countdown_config'], true); + if (is_array($decodedCountdown)) { + $countdown = implode(',', array_map('intval', $decodedCountdown)); + } + } + + $groupOptions[] = [ + 'id' => (int)($groupItem['id'] ?? 0), + 'bot_id' => (int)($groupItem['bot_id'] ?? 0), + 'game_id' => (int)($groupItem['game_id'] ?? 0), + 'bet_format_rule_id' => (int)($groupItem['bet_format_rule_id'] ?? 0), + 'tg_group_id' => (string)($groupItem['tg_group_id'] ?? ''), + 'group_name' => (string)($groupItem['group_name'] ?? ''), + 'group_type' => (string)($groupItem['group_type'] ?? 'group'), + 'countdown_config' => $countdown, + ]; +} + +$userOptions = []; +foreach (($users ?? []) as $userItem) { + $userOptions[] = [ + 'id' => (int)($userItem['id'] ?? 0), + 'username' => (string)($userItem['username'] ?? ''), + 'balance' => number_format((float)($userItem['balance'] ?? 0), 2, '.', ''), + ]; +} +?> + + + +
+

Bot 实例数

+

群配置数

+

已绑总账号

+

启用群数

+

成员映射数

+

托号数量

+

推送日志数

+

推送成功数

+

倒计时群数

+

动画群数

+

API 请求数

+

签名通过数

+
+ +
+
+
+
+

Bot 实例总览

+

现在已支持新增、编辑、启停 Bot 实例。

+
+ Phase 6 进阶 +
+
+ + + + + + + + + + + + + + + +
实例运行模式群数状态更新时间操作
Key:
@
总群数:
启用下注:
尚未配置任何 Bot 实例。
+
+
+ +
+
+

新增 Bot 实例

+
+ + + + + + + + +
+
+
+

绑定群配置

+
+ + + + + + + + +
+ +
+
+
+

绑定群总账号

+
+ + + + + +
+
+
+
+ +
+
+

群配置总览

+
Bot / 游戏开关状态操作
/
倒计时:
下注:
提醒:
动画:
暂无群配置。
+
+
+

群总账号绑定

+
网站账号模式状态操作
UID / 余额
暂无群总账号绑定。
+
+
+ +
+
+
+

群成员映射

+
+ + + + + + + + + + +
+
+
+

成员映射列表

+
成员群 / 网站账号角色下注操作
UID / @
网站:
暂无成员映射。
+
+
+
+
+

托号管理

+
+ + + + + +
+
+
+

托号列表

+
托号备注状态操作
UID
暂无托号配置。
+
+
+
+ +
+
+
+

消息提醒 / 推送运营面

+

先把自动消息、开奖提醒、封盘倒计时、上下分提醒的运营可见性拉出来,便于对照 TG 成品补齐行为。

+
+ Push Ops +
+
+
+

推送类型汇总

+
+ + + + + + + + + + + + $summary): ?> + + + + + + + + + + 0; }))): ?> + + + +
类型总数成功失败待发/跳过
暂无推送汇总数据,待 TG runtime 写入。
+
+
+
+

群提醒能力快照

+
+ +
+
+
+
+
+
+ +
+
+ 下注成功 + 开奖提醒 + 封盘倒计时 + 开奖动画 +
+
+ +
暂无群配置,无法展示提醒快照。
+ +
+
+
+
+ +
+

最近推送日志

覆盖 countdown / bet_success / draw / credit / debit / system,先做观测面,再回填自动触发链。

+
类型期号 / 消息载荷摘要状态时间
期号:
TG Msg ID:
错误:
暂无推送日志。
+
+ +
+

Bot API 请求审计

对照成品 TG 机器人的发送队列与多账号路由,这里补入网站侧入站请求审计链,便于排查签名、限流、重复请求。

+
Bot / 群请求幂等 / IP签名 / 响应时间
/
IP:
HTTP
暂无 API 请求日志。
+
+ +
+

最近 Bot 下注同步

用于快速核对群消息→平台订单的同步状态。

+
用户期号金额 / 注数状态时间
/
暂无 Bot 同步记录。
+
+ + diff --git a/App/Views/Admin/follow_plans.php b/App/Views/Admin/follow_plans.php new file mode 100644 index 0000000..ece9a8e --- /dev/null +++ b/App/Views/Admin/follow_plans.php @@ -0,0 +1,152 @@ +

+ + 跟单计划管理 +

+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ID计划名称类型名次建议金额总期数胜率跟单人数状态操作
+ + '大小','oe'=>'单双','dt'=>'龙虎','sum_bs'=>'冠亚大小'][$p['plan_type']] ?? $p['plan_type'] ?> + + + + % + + + + + + + + +
+
+ +

暂无跟单计划

+

点击上方按钮新建跟单计划

+
+
+
+
+ + + diff --git a/App/Views/Admin/fund_requests.php b/App/Views/Admin/fund_requests.php new file mode 100644 index 0000000..e14e91d --- /dev/null +++ b/App/Views/Admin/fund_requests.php @@ -0,0 +1,306 @@ +

+ + 充提审核 +

+ + +
+
+
+
+

待处理

+

+ +

+
+
+ +
+
+
+
+
+
+

今日充值申请

+

+ +

+
+
+ +
+
+
+
+
+
+

今日提现申请

+

+ +

+
+
+ +
+
+
+
+ + +
+
+
+ + +
+
+ + +
+ +
+
+ + +
+
+
+

充提申请列表

+

审核用户的充值和提现申请

+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ID用户钱包地址类型金额状态操作
+ # + +
+
ID:
+
+ + +
+ +
+ + 未绑定 + +
+ + 充值 + + 提现 + + + + + + + ['text' => '待处理', 'class' => 'bg-warning/10 text-warning'], + 'approved' => ['text' => '已通过', 'class' => 'bg-success/10 text-success'], + 'rejected' => ['text' => '已拒绝', 'class' => 'bg-danger/10 text-danger'], + ]; + $statusInfo = $statusMap[$status] ?? ['text' => $status, 'class' => 'bg-gray-100 text-gray-700']; + ?> + + + + + +
+ + +
+ + 已处理 + +
+
+ +

暂无充提申请

+

还没有任何充提申请记录。

+
+
+
+
+ + + diff --git a/App/Views/Admin/index.php b/App/Views/Admin/index.php index 066407e..fe93e8a 100755 --- a/App/Views/Admin/index.php +++ b/App/Views/Admin/index.php @@ -36,6 +36,13 @@ count('fund_requests', ['status' => 'pending']); + } catch (\Throwable $e) { + $pendingFundCount = 0; + } ?> 管理后台 @@ -116,6 +123,11 @@ 投注记录 + + + 充提审核 + + 财务管理 @@ -136,6 +148,14 @@ 数据报表 + + + 跟单计划 + + + + Bot 管理 + 系统设置 @@ -265,7 +285,7 @@
-

© PK10 极速赛车后台管理系统

+

© F1赛车后台管理系统

@@ -274,6 +294,22 @@ + diff --git a/App/Views/Admin/reports.php b/App/Views/Admin/reports.php index a820f37..f62dbdc 100644 --- a/App/Views/Admin/reports.php +++ b/App/Views/Admin/reports.php @@ -1,60 +1,403 @@ -
-

📊 数据报表

+

+ + 数据报表 +

- -
- - - + +
+
+
+ + +
+
+ + +
+ + +
- -
-
总投注
-
总中奖
-
平台盈利
-
佣金
-
总充值
-
总提现
-
总用户
-
新增用户
+ +
+
+
+
+

总投注

+

+
+
+ +
+
+
+
+
+
+

总派彩

+

+
+
+ +
+
+
+
+
+
+

总利润

+

+
+
+ +
+
+
+
+
+
+

利润率

+ 10) $prColor = 'text-success'; + elseif ($profitRate < 0) $prColor = 'text-danger'; + ?> +

%

+
+
+ +
+
+
+
+
+
+

总充值

+

+
+
+ +
+
+
+
+
+
+

总提现

+

+
+
+ +
+
+
+
+
+
+

活跃用户

+

+
+
+ +
+
+
+
+
+
+

新增用户

+

+
+
+ +
+
+
- -
-

每日明细

- - - - - - - - - - - - - -
日期投注中奖盈利充值提现
+ +
+

+ 日明细统计 +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
日期投注额派彩额利润充值提现笔数胜率
+ = 0 ? '+' : '' ?> + + + % + +
+
+ +

暂无数据

+

选定日期范围内没有投注记录

+
+
+
+
+ + +
+

+ 用户投注排行(前20) +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
排名用户名投注额派彩额平台盈亏笔数
+ + + + + + + + + = 0 ? '+' : '' ?> +
+
+ +

暂无数据

+

选定日期范围内没有用户投注

+
+
+
+
- -
-

代理报表

- - - - - - - - - - - - - -
代理玩家数投注中奖佣金盈利
- + +
+

+ 代理报表 +

+
+ + + + + + + + + + + + + + + + + + + + + + + +
代理玩家数投注额中奖额佣金盈利
+ = 0 ? '+' : '' ?> +
+
+ + + +
+

+ 用户输赢明细 +

+
+ + + + + + + + + + + + + + + + $us): + $uProfit = $us['total_bet'] - $us['total_win']; + $uWinRate = $us['bet_count'] > 0 ? round($us['win_count'] / $us['bet_count'] * 100, 1) : 0; + ?> + + + + + + + + + + + + + + + + + + + + +
用户名当前余额总投注总派彩平台盈亏笔数胜率日明细
+ = 0 ? '+' : '' ?> + + + % + + + +
+
+ +

暂无数据

+

选定日期范围内没有用户投注记录

+
+
+
+
+ + + diff --git a/App/Views/Admin/settings.php b/App/Views/Admin/settings.php index 7a9d9dc..a6c4546 100755 --- a/App/Views/Admin/settings.php +++ b/App/Views/Admin/settings.php @@ -99,6 +99,24 @@
+ +
+

+ + 客服设置 +

+
+
+ + +

用户充值时将跳转至此链接联系客服,支持 Telegram、WhatsApp 等链接

+
+
+
+
+ 说明:0=取最大利润(原逻辑),15=平台每期目标盈利15% +
+
+ + diff --git a/App/Views/Web/home.php b/App/Views/Web/home.php index 3563c3f..9665ed7 100644 --- a/App/Views/Web/home.php +++ b/App/Views/Web/home.php @@ -44,15 +44,15 @@
- - - @@ -93,5 +93,45 @@
+ diff --git a/App/Views/Web/index.php b/App/Views/Web/index.php index b5f0e48..d2cb42c 100755 --- a/App/Views/Web/index.php +++ b/App/Views/Web/index.php @@ -3,7 +3,7 @@ -<?= htmlspecialchars($settings['site_title'] ?? 'PK10 Speed Racing') ?> +<?= htmlspecialchars($settings['site_title'] ?? 'F1 Racing') ?> diff --git a/App/Views/Web/pk10.php b/App/Views/Web/pk10.php index 9434be0..f403927 100644 --- a/App/Views/Web/pk10.php +++ b/App/Views/Web/pk10.php @@ -1,36 +1,250 @@ - +select('game_odds','*',['game_id'=>$gameId]); +$oddsMap = []; +foreach(($_oddsRaw??[]) as $_o){ $oddsMap[$_o['type'].'_'.$_o['target']]=(float)$_o['odds']; } +unset($_oddsDb,$_oddsRaw,$_o); +?> <?=$t('pk10_title')?> + - +
@@ -117,33 +353,191 @@ - -
-
-
-
- -
-
- # -
-
- - -
-
- + + + + + + +
+
+ +
+ +
- + +
+
+ +
+ F1赛车开奖视频 + +
+ +
+ +
+
+ F1赛车 + 期数:--- + 🔊 + +
+
---
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ +
+ + + + + + + + +
+ +
+
00:00
+
+ + + +
+
+ +
+
+ +
+
+
+ 2nd + 2nd +
+
+ 1st + 1st +
+
+ 3rd + 3rd +
+
+
+ ['#f1c40f','#d4ac0d'],2 =>['#3498db','#2980b9'],3 =>['#555555','#333333'], + 4 =>['#e67e22','#ca6f1e'],5 =>['#2ecc71','#27ae60'],6 =>['#2c3e99','#1a2a6c'], + 7 =>['#999999','#777777'],8 =>['#e74c3c','#c0392b'],9 =>['#cc2222','#991111'], + 10=>['#27ae60','#1e8449'] + ]; + for($i=1;$i<=10;$i++): $c=$carColors[$i]; ?> +
+
+ # +
+
+
+
+
+ Car <?=$i?> + + +
+
+ +
+ +
+ 期号:--- + 冠亚和 - - - + 龙虎 --- +
+
+
+
+ +
-
+
+
+
+
@@ -151,30 +545,31 @@
-
+ +
-
2.2
-
1.79
+
+
-
1.79
-
2.2
+
+
$r]); ?>
-
1.995
-
1.995
+
+
-
1.995
-
1.995
+
+
-
1.995
-
1.995
+
+
@@ -186,9 +581,10 @@
-
+ +
-
9.80
+
@@ -200,40 +596,103 @@ + + + + + + + + +
- -
-
10
-
50
-
100
-
500
-
-
- -
-
: 0 x0
- - + +
+ +
+ 已选 0 注 + +
+ +
+
50
+
100
+
200
+
500
+
1000
+
+ +
+
+ +
+ +
预设
+
+ +
+ + +
@@ -266,85 +725,83 @@ foreach($sumOdds as $v=>$o): ?> + + + + + + + + + + + + + + diff --git a/App/Views/Web/pk10_stats.php b/App/Views/Web/pk10_stats.php index 35e4029..e530133 100644 --- a/App/Views/Web/pk10_stats.php +++ b/App/Views/Web/pk10_stats.php @@ -88,7 +88,7 @@ for($i=1;$i<=10;$i++) $rankLabels[$i]=$i<=2?($i==1?$t('champion'):$t('runner_up' diff --git a/App/Views/Web/report.php b/App/Views/Web/report.php new file mode 100644 index 0000000..1f87fe3 --- /dev/null +++ b/App/Views/Web/report.php @@ -0,0 +1,138 @@ + + + +<?=$t('report_query')?> + + + + + +
+ +
+ + + + + +
+ + + +
+
+
+
0.00
+
+
+
+
0.00
+
+
+
+
0.00
+
+
+ + + + + + + + + + + + + + + +
+ + + diff --git a/Db/migration_bot_push_claim.sql b/Db/migration_bot_push_claim.sql new file mode 100644 index 0000000..296bde5 --- /dev/null +++ b/Db/migration_bot_push_claim.sql @@ -0,0 +1,7 @@ +ALTER TABLE `bot_push_logs` + ADD COLUMN `claim_token` varchar(64) DEFAULT NULL COMMENT '推送领取令牌' AFTER `error_message`, + ADD COLUMN `claimed_at` datetime DEFAULT NULL COMMENT '推送领取时间' AFTER `claim_token`; + +ALTER TABLE `bot_push_logs` + ADD KEY `idx_claim_token` (`claim_token`), + ADD KEY `idx_claimed_at` (`claimed_at`); diff --git a/Db/migration_follow_plans.sql b/Db/migration_follow_plans.sql new file mode 100644 index 0000000..834a1e7 --- /dev/null +++ b/Db/migration_follow_plans.sql @@ -0,0 +1,47 @@ +-- 跟单计划表 +CREATE TABLE IF NOT EXISTS `follow_plans` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `game_id` int(11) NOT NULL DEFAULT 1, + `name` varchar(100) NOT NULL COMMENT '计划名称,如:大小计划、单双计划', + `plan_type` varchar(30) NOT NULL COMMENT '计划类型:bs(大小), oe(单双), dt(龙虎), sum_bs(冠亚大小)', + `target_rank` int(11) NOT NULL DEFAULT 1 COMMENT '目标名次 1-10', + `strategy` varchar(30) NOT NULL DEFAULT 'follow' COMMENT '策略:follow(跟投), reverse(反投)', + `bet_amount` decimal(15,2) NOT NULL DEFAULT 100.00 COMMENT '每期建议投注额', + `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=启用 0=禁用', + `created_by` int(11) DEFAULT NULL COMMENT '创建管理员ID', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `idx_game_status` (`game_id`, `status`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- 跟单计划每期推荐记录 +CREATE TABLE IF NOT EXISTS `follow_plan_records` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `plan_id` int(11) NOT NULL, + `period_id` int(11) NOT NULL, + `period_number` varchar(50) NOT NULL, + `recommend_value` varchar(20) NOT NULL COMMENT '推荐值:big/small/odd/even/dragon/tiger', + `result_value` varchar(20) DEFAULT NULL COMMENT '实际结果', + `is_win` tinyint(1) DEFAULT NULL COMMENT '1=赢 0=输 NULL=未开奖', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `idx_plan_period` (`plan_id`, `period_id`), + KEY `idx_plan_id` (`plan_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- 用户跟单记录 +CREATE TABLE IF NOT EXISTS `user_follow_plans` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `plan_id` int(11) NOT NULL, + `is_active` tinyint(1) NOT NULL DEFAULT 1 COMMENT '是否正在跟单', + `total_bets` int(11) NOT NULL DEFAULT 0 COMMENT '总跟注期数', + `total_wins` int(11) NOT NULL DEFAULT 0 COMMENT '总赢期数', + `total_profit` decimal(15,2) NOT NULL DEFAULT 0.00 COMMENT '累计盈亏', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + UNIQUE KEY `uk_user_plan` (`user_id`, `plan_id`), + KEY `idx_user_id` (`user_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; diff --git a/Db/migration_fund_requests.sql b/Db/migration_fund_requests.sql new file mode 100644 index 0000000..e2b38a5 --- /dev/null +++ b/Db/migration_fund_requests.sql @@ -0,0 +1,18 @@ +-- 充提申请表 +CREATE TABLE IF NOT EXISTS `fund_requests` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `type` enum('deposit','withdraw') NOT NULL COMMENT '充值/提现', + `amount` decimal(15,2) NOT NULL, + `status` enum('pending','approved','rejected') DEFAULT 'pending', + `remark` text COMMENT '用户备注', + `admin_remark` text COMMENT '管理员备注', + `operator_id` int(11) DEFAULT NULL COMMENT '审核人ID', + `created_at` datetime DEFAULT CURRENT_TIMESTAMP, + `processed_at` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `idx_user_id` (`user_id`), + KEY `idx_status` (`status`), + KEY `idx_type_status` (`type`, `status`), + KEY `idx_created_at` (`created_at`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='充提申请记录'; diff --git a/Db/migration_tg_bot_integration.sql b/Db/migration_tg_bot_integration.sql new file mode 100644 index 0000000..c2fee1c --- /dev/null +++ b/Db/migration_tg_bot_integration.sql @@ -0,0 +1,226 @@ +-- ========================================= +-- TG Bot Integration - Database Migration v1 +-- 目标:为 Telegram 机器人接入提供独立业务层,不直接侵入核心下注/账务表 +-- 兼容:MySQL 5.7+ +-- ========================================= + +START TRANSACTION; + +-- 1) 机器人实例表 +CREATE TABLE IF NOT EXISTS `bot_instances` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(64) NOT NULL COMMENT '机器人名称', + `bot_token` varchar(255) NOT NULL COMMENT 'Telegram Bot Token', + `bot_username` varchar(64) DEFAULT NULL COMMENT '机器人用户名', + `bot_key` varchar(64) NOT NULL COMMENT '公开访问标识,用于X-Bot-Key', + `bot_secret` varchar(128) NOT NULL COMMENT 'Bot API 共享密钥/HMAC secret', + `webhook_url` varchar(255) DEFAULT NULL COMMENT 'Webhook 地址(可为空)', + `run_mode` enum('polling','webhook') NOT NULL DEFAULT 'polling', + `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1启用 0停用', + `remark` varchar(255) DEFAULT NULL, + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + UNIQUE KEY `uk_bot_name` (`name`), + UNIQUE KEY `uk_bot_key` (`bot_key`), + UNIQUE KEY `uk_bot_username` (`bot_username`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='TG机器人实例'; + +-- 2) 下注格式规则表(每群可配置不同格式) +CREATE TABLE IF NOT EXISTS `bot_bet_format_rules` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `rule_code` varchar(64) NOT NULL COMMENT '规则编码,如 pk10_v1', + `name` varchar(64) NOT NULL COMMENT '规则名称', + `game_id` int(11) NOT NULL COMMENT '对应游戏ID', + `parser_type` varchar(32) NOT NULL DEFAULT 'regex' COMMENT 'regex/json/custom', + `rule_config` json DEFAULT NULL COMMENT '解析规则JSON', + `example_text` text COMMENT '示例文本', + `status` tinyint(1) NOT NULL DEFAULT 1, + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + UNIQUE KEY `uk_rule_code` (`rule_code`), + KEY `idx_game_id` (`game_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='TG下注格式规则'; + +-- 3) 群配置表 +CREATE TABLE IF NOT EXISTS `bot_groups` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `bot_id` int(11) NOT NULL COMMENT '关联 bot_instances.id', + `tg_group_id` varchar(32) NOT NULL COMMENT 'Telegram群ID,保留-100前缀', + `group_name` varchar(128) NOT NULL COMMENT '群名称快照', + `group_type` varchar(16) NOT NULL DEFAULT 'group' COMMENT 'group/supergroup/channel', + `game_id` int(11) NOT NULL COMMENT '群默认游戏', + `bet_format_rule_id` int(11) DEFAULT NULL COMMENT '关联 bot_bet_format_rules.id', + `remind_bet_success` tinyint(1) NOT NULL DEFAULT 1 COMMENT '下注成功提醒', + `remind_draw_result` tinyint(1) NOT NULL DEFAULT 1 COMMENT '开奖提醒', + `remind_close_countdown` tinyint(1) NOT NULL DEFAULT 1 COMMENT '封盘倒计时提醒', + `countdown_config` json DEFAULT NULL COMMENT '如 [60,30,10]', + `animation_enabled` tinyint(1) NOT NULL DEFAULT 0 COMMENT '开奖动画/截图开关', + `bet_enabled` tinyint(1) NOT NULL DEFAULT 1 COMMENT '是否允许群内下注同步', + `status` tinyint(1) NOT NULL DEFAULT 1, + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + UNIQUE KEY `uk_tg_group_id` (`tg_group_id`), + KEY `idx_bot_id` (`bot_id`), + KEY `idx_game_id` (`game_id`), + KEY `idx_rule_id` (`bet_format_rule_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='TG群配置'; + +-- 4) 群总账号绑定表 +CREATE TABLE IF NOT EXISTS `bot_group_wallets` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `group_id` int(11) NOT NULL COMMENT '关联 bot_groups.id', + `platform_user_id` int(11) NOT NULL COMMENT '网站总账号 users.id', + `platform_username_snapshot` varchar(64) DEFAULT NULL COMMENT '用户名快照', + `wallet_mode` enum('master_pool','per_member') NOT NULL DEFAULT 'master_pool' COMMENT '首发建议 master_pool', + `status` tinyint(1) NOT NULL DEFAULT 1, + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + UNIQUE KEY `uk_group_wallet` (`group_id`), + KEY `idx_platform_user_id` (`platform_user_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='群绑定的网站总账号'; + +-- 5) 群成员映射表 +CREATE TABLE IF NOT EXISTS `bot_group_members` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `group_id` int(11) NOT NULL, + `tg_user_id` varchar(32) NOT NULL, + `tg_username` varchar(64) DEFAULT NULL, + `tg_nickname` varchar(128) DEFAULT NULL, + `platform_user_id` int(11) DEFAULT NULL COMMENT '如后续启用 per_member 模式使用', + `role` enum('member','admin','shill') NOT NULL DEFAULT 'member', + `bet_enabled` tinyint(1) NOT NULL DEFAULT 1, + `last_seen_at` datetime DEFAULT NULL, + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + UNIQUE KEY `uk_group_tg_user` (`group_id`,`tg_user_id`), + KEY `idx_platform_user_id` (`platform_user_id`), + KEY `idx_role` (`role`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='群成员映射'; + +-- 6) 托号表(冗余显式表,便于运营查询与统计排除) +CREATE TABLE IF NOT EXISTS `bot_shills` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `group_id` int(11) NOT NULL, + `tg_user_id` varchar(32) NOT NULL, + `note` varchar(255) DEFAULT NULL, + `enabled` tinyint(1) NOT NULL DEFAULT 1, + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + UNIQUE KEY `uk_group_shill` (`group_id`,`tg_user_id`), + KEY `idx_enabled` (`enabled`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='托号配置'; + +-- 7) 消息下注订单表 +CREATE TABLE IF NOT EXISTS `bot_bet_orders` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `group_id` int(11) NOT NULL, + `tg_chat_id` varchar(32) NOT NULL, + `tg_message_id` bigint(20) NOT NULL, + `tg_user_id` varchar(32) NOT NULL, + `tg_username` varchar(64) DEFAULT NULL, + `platform_user_id` int(11) NOT NULL COMMENT '首发取群总账号', + `game_id` int(11) NOT NULL, + `period_number` varchar(50) NOT NULL, + `raw_text` text NOT NULL COMMENT '原始Telegram消息', + `parsed_payload_json` json DEFAULT NULL COMMENT '解析后的标准bets结构', + `bet_amount_total` decimal(15,2) NOT NULL DEFAULT '0.00', + `accepted_bet_count` int(11) NOT NULL DEFAULT 0, + `platform_order_ref` varchar(64) DEFAULT NULL COMMENT '平台侧订单引用,可为空后续回填', + `idempotency_key` varchar(128) NOT NULL COMMENT '如 tg:-100xxx:12345', + `sync_status` enum('pending','success','failed','duplicate') NOT NULL DEFAULT 'pending', + `sync_error` varchar(255) DEFAULT NULL, + `is_shill` tinyint(1) NOT NULL DEFAULT 0 COMMENT '下注者是否托号快照', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + UNIQUE KEY `uk_idempotency_key` (`idempotency_key`), + UNIQUE KEY `uk_chat_message` (`tg_chat_id`,`tg_message_id`), + KEY `idx_group_id` (`group_id`), + KEY `idx_platform_user_id` (`platform_user_id`), + KEY `idx_period_number` (`period_number`), + KEY `idx_sync_status` (`sync_status`), + KEY `idx_created_at` (`created_at`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='TG消息下注订单'; + +-- 8) Bot API 请求日志(审计+重放排查) +CREATE TABLE IF NOT EXISTS `bot_api_request_logs` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `bot_id` int(11) DEFAULT NULL, + `group_id` int(11) DEFAULT NULL, + `request_uri` varchar(255) NOT NULL, + `http_method` varchar(10) NOT NULL, + `idempotency_key` varchar(128) DEFAULT NULL, + `request_body` mediumtext, + `response_body` mediumtext, + `response_code` int(11) DEFAULT NULL, + `client_ip` varchar(64) DEFAULT NULL, + `signature_ok` tinyint(1) NOT NULL DEFAULT 0, + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `idx_bot_id` (`bot_id`), + KEY `idx_group_id` (`group_id`), + KEY `idx_idempotency_key` (`idempotency_key`), + KEY `idx_created_at` (`created_at`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='Bot API请求日志'; + +-- 9) 推送日志(开奖/封盘/下注成功/上下分) +CREATE TABLE IF NOT EXISTS `bot_push_logs` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `group_id` int(11) NOT NULL, + `period_number` varchar(50) DEFAULT NULL, + `push_type` enum('countdown','bet_success','draw','credit','debit','system') NOT NULL, + `payload_json` json DEFAULT NULL, + `tg_message_id` bigint(20) DEFAULT NULL, + `status` enum('pending','success','failed','skipped') NOT NULL DEFAULT 'pending', + `error_message` varchar(255) DEFAULT NULL, + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `idx_group_id` (`group_id`), + KEY `idx_period_number` (`period_number`), + KEY `idx_push_type` (`push_type`), + KEY `idx_status` (`status`), + KEY `idx_created_at` (`created_at`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='Bot推送日志'; + +-- 10) 群上下分申请/记录表 +CREATE TABLE IF NOT EXISTS `bot_fund_requests` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `group_id` int(11) NOT NULL, + `tg_user_id` varchar(32) DEFAULT NULL, + `platform_user_id` int(11) NOT NULL, + `request_type` enum('credit','debit') NOT NULL, + `amount` decimal(15,2) NOT NULL, + `reason` varchar(255) DEFAULT NULL, + `idempotency_key` varchar(128) NOT NULL, + `transaction_id` int(11) DEFAULT NULL COMMENT '关联 transactions.id', + `status` enum('pending','approved','rejected','failed') NOT NULL DEFAULT 'pending', + `operator_id` int(11) DEFAULT NULL COMMENT '后台审核人/系统操作者', + `operator_type` varchar(16) DEFAULT NULL COMMENT 'admin/employee/system', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + UNIQUE KEY `uk_fund_idempotency_key` (`idempotency_key`), + KEY `idx_group_id` (`group_id`), + KEY `idx_platform_user_id` (`platform_user_id`), + KEY `idx_transaction_id` (`transaction_id`), + KEY `idx_status` (`status`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='Bot上下分记录'; + +-- 11) 为 transactions 增加 Bot 来源标识(不破坏现有逻辑) +ALTER TABLE `transactions` + ADD COLUMN `source` varchar(20) DEFAULT NULL COMMENT '来源:web/admin/employee/bot' AFTER `operator_type`, + ADD COLUMN `source_ref` varchar(64) DEFAULT NULL COMMENT '来源引用:bot订单/请求号' AFTER `source`; + +-- 12) 为 bets 增加 Bot 来源引用(便于订单追踪) +ALTER TABLE `bets` + ADD COLUMN `source` varchar(20) DEFAULT NULL COMMENT '来源:web/bot' AFTER `agent_id`, + ADD COLUMN `source_ref` varchar(64) DEFAULT NULL COMMENT '来源引用:idempotency_key/order_ref' AFTER `source`; + +COMMIT; diff --git a/Lang/bn.php b/Lang/bn.php index d3ab2dc..c5c181f 100644 --- a/Lang/bn.php +++ b/Lang/bn.php @@ -1,6 +1,6 @@ 'PK10 স্পিড রেসিং', + 'app_name' => 'F1 রেসিং', 'login' => 'লগইন', 'register' => 'নিবন্ধন', 'logout' => 'লগআউট', 'username' => 'ব্যবহারকারীর নাম', 'password' => 'পাসওয়ার্ড', 'email' => 'ইমেইল', 'confirm_password' => 'পাসওয়ার্ড নিশ্চিত করুন', 'submit' => 'জমা দিন', 'cancel' => 'বাতিল', @@ -21,7 +21,7 @@ return [ 'login_failed' => 'ভুল ব্যবহারকারীর নাম বা পাসওয়ার্ড', 'account_disabled' => 'অ্যাকাউন্ট নিষ্ক্রিয় করা হয়েছে', 'email_not_verified' => 'অনুগ্রহ করে প্রথমে ইমেইল যাচাই করুন', - 'pk10_title' => 'PK10 স্পিড রেসিং', 'period' => 'পিরিয়ড', + 'pk10_title' => 'F1 রেসিং', 'period' => 'পিরিয়ড', 'current_period' => 'বর্তমান পিরিয়ড', 'last_result' => 'আগের ফলাফল', 'history' => 'ইতিহাস', 'place_bet' => 'বাজি ধরুন', 'my_bets' => 'আমার বাজি', 'betting' => 'বাজি চলছে', 'closed' => 'বন্ধ', 'drawing' => 'ড্র হচ্ছে', @@ -68,4 +68,6 @@ return [ 'sum_bs_big' => 'যোগফল বড়', 'sum_bs_small' => 'যোগফল ছোট', 'sum_bs_odd' => 'যোগফল বিজোড়', 'sum_bs_even' => 'যোগফল জোড়', 'notify_bell' => 'বিজ্ঞপ্তি', + 'quick_hint' => 'ব্যাচ বেট যোগ করতে ট্যাপ করুন', + 'bets_added' => ' টি বাজি যোগ হয়েছে', ]; diff --git a/Lang/en.php b/Lang/en.php index 7c09aed..8f46a50 100644 --- a/Lang/en.php +++ b/Lang/en.php @@ -1,7 +1,7 @@ 'PK10 Speed Racing', + 'app_name' => 'F1 Racing', 'login' => 'Login', 'register' => 'Register', 'logout' => 'Logout', @@ -54,7 +54,7 @@ return [ 'email_not_verified' => 'Please verify your email first', // Game - 'pk10_title' => 'PK10 Speed Racing', + 'pk10_title' => 'F1 Racing', 'period' => 'Period', 'current_period' => 'Current Period', 'last_result' => 'Last Result', @@ -157,4 +157,40 @@ return [ 'sum_bs_big' => 'Sum Big', 'sum_bs_small' => 'Sum Small', 'sum_bs_odd' => 'Sum Odd', 'sum_bs_even' => 'Sum Even', 'notify_bell' => 'Notify', + 'coming_soon' => 'Coming Soon', + 'deposit_confirm_msg' => 'You will be redirected to customer service. Please contact them for deposit address.', + 'deposit_amount' => 'Enter deposit amount', + 'deposit_submitted' => 'Deposit request submitted. Please contact customer service to complete payment.', + 'withdraw_amount' => 'Enter withdrawal amount', + 'withdraw_submitted' => 'Withdrawal request submitted, pending review', + 'contact_admin' => 'Please contact admin to configure service link', + 'transfer_to' => 'Enter recipient username', + 'transfer_amount' => 'Enter transfer amount', + 'transfer_confirm' => 'Confirm transfer to', + 'transfer_success' => 'Transfer successful', + 'amount' => 'Amount', + 'fund_request_history' => 'Deposit/Withdraw History', + 'fund_status_pending' => 'Pending', + 'fund_status_approved' => 'Approved', + 'fund_status_rejected' => 'Rejected', + 'quick_hint' => 'Tap to add batch bets', + 'bets_added' => ' bets added', + + // Report & Follow Plan + 'report_query' => 'Reports', + 'follow_plan' => 'Follow Plan', + 'today' => 'Today', + 'yesterday' => 'Yesterday', + 'last_7_days' => 'Last 7 Days', + 'last_30_days' => 'Last 30 Days', + 'custom_date' => 'Custom', + 'bet_type' => 'Type', + 'bet_amount' => 'Bet', + 'effective_flow' => 'Valid Flow', + 'rebate_amount' => 'Rebate', + 'win_loss' => 'Win/Loss', + 'total_win_rate' => 'Win Rate', + 'total_profit' => 'Total P&L', + 'no_follow_plan' => 'Sorry, you have no follow plans at the moment', + 'bs_plan' => 'Big/Small Plan', ]; diff --git a/Lang/fil.php b/Lang/fil.php index a56f883..a863595 100644 --- a/Lang/fil.php +++ b/Lang/fil.php @@ -1,6 +1,6 @@ 'PK10 Speed Racing', + 'app_name' => 'F1 Racing', 'login' => 'Mag-login', 'register' => 'Magrehistro', 'logout' => 'Mag-logout', 'username' => 'Username', 'password' => 'Password', 'email' => 'Email', 'confirm_password' => 'Kumpirmahin ang Password', 'submit' => 'Isumite', 'cancel' => 'Kanselahin', @@ -21,7 +21,7 @@ return [ 'login_failed' => 'Mali ang username o password', 'account_disabled' => 'Na-disable ang account', 'email_not_verified' => 'Paki-verify muna ang iyong email', - 'pk10_title' => 'PK10 Speed Racing', 'period' => 'Period', + 'pk10_title' => 'F1 Racing', 'period' => 'Period', 'current_period' => 'Kasalukuyang Period', 'last_result' => 'Nakaraang Resulta', 'history' => 'Kasaysayan', 'place_bet' => 'Tumaya', 'my_bets' => 'Mga Taya Ko', 'betting' => 'Tumataya', 'closed' => 'Sarado', 'drawing' => 'Hinuhugot', @@ -68,4 +68,6 @@ return [ 'sum_bs_big' => 'Kabuuang Malaki', 'sum_bs_small' => 'Kabuuang Maliit', 'sum_bs_odd' => 'Kabuuang Odd', 'sum_bs_even' => 'Kabuuang Even', 'notify_bell' => 'Abiso', + 'quick_hint' => 'I-tap para magdagdag ng batch na taya', + 'bets_added' => ' taya naidagdag', ]; diff --git a/Lang/ms.php b/Lang/ms.php index 7630d17..17faa43 100644 --- a/Lang/ms.php +++ b/Lang/ms.php @@ -1,6 +1,6 @@ 'PK10 Lumba Laju', + 'app_name' => 'F1 Racing', 'login' => 'Log Masuk', 'register' => 'Daftar', 'logout' => 'Log Keluar', 'username' => 'Nama Pengguna', 'password' => 'Kata Laluan', 'email' => 'Emel', 'confirm_password' => 'Sahkan Kata Laluan', 'submit' => 'Hantar', 'cancel' => 'Batal', @@ -21,7 +21,7 @@ return [ 'login_failed' => 'Nama pengguna atau kata laluan salah', 'account_disabled' => 'Akaun telah dilumpuhkan', 'email_not_verified' => 'Sila sahkan emel anda dahulu', - 'pk10_title' => 'PK10 Lumba Laju', 'period' => 'Tempoh', + 'pk10_title' => 'F1 Racing', 'period' => 'Tempoh', 'current_period' => 'Tempoh Semasa', 'last_result' => 'Keputusan Lepas', 'history' => 'Sejarah', 'place_bet' => 'Letak Taruhan', 'my_bets' => 'Taruhan Saya', 'betting' => 'Bertaruh', 'closed' => 'Ditutup', 'drawing' => 'Cabutan', @@ -68,4 +68,6 @@ return [ 'sum_bs_big' => 'Jumlah Besar', 'sum_bs_small' => 'Jumlah Kecil', 'sum_bs_odd' => 'Jumlah Ganjil', 'sum_bs_even' => 'Jumlah Genap', 'notify_bell' => 'Pemberitahuan', + 'quick_hint' => 'Ketik untuk tambah pertaruhan pukal', + 'bets_added' => ' pertaruhan ditambah', ]; diff --git a/Lang/th.php b/Lang/th.php index b90fe25..21e8311 100644 --- a/Lang/th.php +++ b/Lang/th.php @@ -1,6 +1,6 @@ 'PK10 แข่งรถความเร็ว', + 'app_name' => 'F1 แข่งรถ', 'login' => 'เข้าสู่ระบบ', 'register' => 'สมัครสมาชิก', 'logout' => 'ออกจากระบบ', 'username' => 'ชื่อผู้ใช้', 'password' => 'รหัสผ่าน', 'email' => 'อีเมล', 'confirm_password' => 'ยืนยันรหัสผ่าน', 'submit' => 'ส่ง', 'cancel' => 'ยกเลิก', @@ -22,7 +22,7 @@ return [ 'login_failed' => 'ชื่อผู้ใช้หรือรหัสผ่านไม่ถูกต้อง', 'account_disabled' => 'บัญชีถูกปิดใช้งาน', 'email_not_verified' => 'กรุณายืนยันอีเมลก่อน', - 'pk10_title' => 'PK10 แข่งรถความเร็ว', 'period' => 'งวด', + 'pk10_title' => 'F1 แข่งรถ', 'period' => 'งวด', 'current_period' => 'งวดปัจจุบัน', 'last_result' => 'ผลก่อนหน้า', 'history' => 'ประวัติ', 'place_bet' => 'วางเดิมพัน', 'my_bets' => 'เดิมพันของฉัน', 'betting' => 'กำลังเดิมพัน', 'closed' => 'ปิดรับ', 'drawing' => 'กำลังออกผล', @@ -68,4 +68,6 @@ return [ 'sum_bs_big' => 'รวมใหญ่', 'sum_bs_small' => 'รวมเล็ก', 'sum_bs_odd' => 'รวมคี่', 'sum_bs_even' => 'รวมคู่', 'notify_bell' => 'แจ้งเตือน', + 'quick_hint' => 'แตะเพื่อเพิ่มเดิมพันเป็นชุด', + 'bets_added' => ' รายการเพิ่มแล้ว', ]; diff --git a/Lang/vi.php b/Lang/vi.php index bdc6ed7..391cc41 100644 --- a/Lang/vi.php +++ b/Lang/vi.php @@ -1,6 +1,6 @@ 'PK10 Đua Xe Tốc Độ', + 'app_name' => 'F1 Đua Xe', 'login' => 'Đăng nhập', 'register' => 'Đăng ký', 'logout' => 'Đăng xuất', 'username' => 'Tên đăng nhập', 'password' => 'Mật khẩu', 'email' => 'Email', 'confirm_password' => 'Xác nhận mật khẩu', 'submit' => 'Gửi', 'cancel' => 'Hủy', @@ -22,7 +22,7 @@ return [ 'login_failed' => 'Sai tên đăng nhập hoặc mật khẩu', 'account_disabled' => 'Tài khoản đã bị vô hiệu hóa', 'email_not_verified' => 'Vui lòng xác minh email trước', - 'pk10_title' => 'PK10 Đua Xe Tốc Độ', 'period' => 'Kỳ', + 'pk10_title' => 'F1 Đua Xe', 'period' => 'Kỳ', 'current_period' => 'Kỳ hiện tại', 'last_result' => 'Kết quả trước', 'history' => 'Lịch sử', 'place_bet' => 'Đặt cược', 'my_bets' => 'Cược của tôi', 'betting' => 'Đang cược', 'closed' => 'Đã đóng', 'drawing' => 'Đang quay', @@ -69,4 +69,6 @@ return [ 'sum_bs_big' => 'Tổng tài', 'sum_bs_small' => 'Tổng xỉu', 'sum_bs_odd' => 'Tổng lẻ', 'sum_bs_even' => 'Tổng chẵn', 'notify_bell' => 'Thông báo', + 'quick_hint' => 'Nhấn để thêm cược hàng loạt', + 'bets_added' => ' cược đã thêm', ]; diff --git a/Lang/zh.php b/Lang/zh.php index 1eed7db..f97ab5e 100644 --- a/Lang/zh.php +++ b/Lang/zh.php @@ -1,6 +1,6 @@ 'PK10 极速赛车', + 'app_name' => 'F1 赛车', 'login' => '登录', 'register' => '注册', 'logout' => '退出', 'username' => '用户名', 'password' => '密码', 'email' => '邮箱', 'confirm_password' => '确认密码', 'submit' => '提交', 'cancel' => '取消', @@ -21,7 +21,7 @@ return [ 'register_success' => '注册成功,请验证邮箱', 'login_failed' => '用户名或密码错误', 'account_disabled' => '账户已被禁用', 'email_not_verified' => '请先验证邮箱', - 'pk10_title' => 'PK10 极速赛车', 'period' => '期号', + 'pk10_title' => 'F1 赛车', 'period' => '期号', 'current_period' => '当前期', 'last_result' => '上期结果', 'history' => '历史记录', 'place_bet' => '下注', 'my_bets' => '我的投注', 'betting' => '投注中', 'closed' => '已封盘', 'drawing' => '开奖中', @@ -71,4 +71,40 @@ return [ 'sum_bs_big' => '冠亚大', 'sum_bs_small' => '冠亚小', 'sum_bs_odd' => '冠亚单', 'sum_bs_even' => '冠亚双', 'notify_bell' => '提醒', + 'coming_soon' => '即将开放', + 'deposit_confirm_msg' => '即将跳转到客服页面,请联系客服获取充值地址', + 'deposit_amount' => '请输入充值金额', + 'deposit_submitted' => '充值申请已提交,请联系客服完成付款', + 'withdraw_amount' => '请输入提现金额', + 'withdraw_submitted' => '提现申请已提交,请等待审核', + 'contact_admin' => '请联系管理员配置客服链接', + 'transfer_to' => '请输入对方用户名', + 'transfer_amount' => '请输入转账金额', + 'transfer_confirm' => '确认转账给', + 'transfer_success' => '转账成功', + 'amount' => '金额', + 'fund_request_history' => '充提记录', + 'fund_status_pending' => '待审核', + 'fund_status_approved' => '已通过', + 'fund_status_rejected' => '已拒绝', + 'quick_hint' => '点击按钮一键添加对应注单', + 'bets_added' => '注已添加', + + // 报表查询 & 跟单计划 + 'report_query' => '报表查询', + 'follow_plan' => '跟单计划', + 'today' => '今日', + 'yesterday' => '昨日', + 'last_7_days' => '近7天', + 'last_30_days' => '近30天', + 'custom_date' => '自定义', + 'bet_type' => '类型', + 'bet_amount' => '下注', + 'effective_flow' => '有效流水', + 'rebate_amount' => '退水', + 'win_loss' => '输赢', + 'total_win_rate' => '总胜率', + 'total_profit' => '总盈亏', + 'no_follow_plan' => '对不起,你现暂无任何跟单计划', + 'bs_plan' => '大小计划', ]; diff --git a/Static/ckplayer/js/ckplayer.js b/Static/ckplayer/js/ckplayer.js index 26a1e8d..4b15331 100755 --- a/Static/ckplayer/js/ckplayer.js +++ b/Static/ckplayer/js/ckplayer.js @@ -5647,10 +5647,29 @@ */ res.htm=function(val){ if(!isUndefined(val)){ - res.innerHTML=val; + if (typeof val === 'string' && /' + val + '
', 'text/html'); + var root = doc.body.firstChild; + res.replaceChildren(); + while (root && root.firstChild) { + res.appendChild(root.firstChild); + } + } + else if (val && typeof val === 'object' && val.nodeType) { + res.replaceChildren(val); + } + else{ + res.textContent=String(val); + } } else{ - return res.innerHTML; + return Array.prototype.map.call(res.childNodes,function(node){ + return new XMLSerializer().serializeToString(node); + }).join(''); } }; /* diff --git a/Static/ckplayer/js/ckplayer.min.js b/Static/ckplayer/js/ckplayer.min.js index f9a53be..c616c5e 100755 --- a/Static/ckplayer/js/ckplayer.min.js +++ b/Static/ckplayer/js/ckplayer.min.js @@ -4,4 +4,4 @@ * 版权:www.ckplayer.com * 开源协议:MIT */ -(function(global,factory){typeof exports==='object'&&typeof module!=='undefined'?module.exports=factory():typeof define==='function'&&define.amd?define(factory):(global=global||self,global.ckplayer=factory())}(this,function(){'use strict';var language={play:'%E6%92%AD%E6%94%BE',pause:'%E6%9A%82%E5%81%9C',refresh:'%E9%87%8D%E6%92%AD',full:'%E5%85%A8%E5%B1%8F',exitFull:'%E9%80%80%E5%87%BA%E5%85%A8%E5%B1%8F',webFull:'%E9%A1%B5%E9%9D%A2%E5%85%A8%E5%B1%8F',exitWebFull:'%E9%80%80%E5%87%BA%E9%A1%B5%E9%9D%A2%E5%85%A8%E5%B1%8F',theatre:'%E5%89%A7%E5%9C%BA%E6%A8%A1%E5%BC%8F',exitTheatre:'%E9%80%80%E5%87%BA%E5%89%A7%E5%9C%BA%E6%A8%A1%E5%BC%8F',volume:'%E9%9F%B3%E9%87%8F%EF%BC%9A',muted:'%E9%9D%99%E9%9F%B3',exitmuted:'%E6%81%A2%E5%A4%8D%E9%9F%B3%E9%87%8F',seek:'seek%EF%BC%9A',waiting:'%E7%BC%93%E5%86%B2',live:'%E7%9B%B4%E6%92%AD%E4%B8%AD',backLive:'%E8%BF%94%E5%9B%9E%E7%9B%B4%E6%92%AD',lookBack:'%E5%9B%9E%E7%9C%8B%EF%BC%9A',next:'%E4%B8%8B%E4%B8%80%E9%9B%86',screenshot:'%E8%A7%86%E9%A2%91%E6%88%AA%E5%9B%BE',smallwindows:'%E5%B0%8F%E7%AA%97%E5%8F%A3%E6%92%AD%E6%94%BE%E5%8A%9F%E8%83%BD',playbackrate:'%E5%80%8D%E9%80%9F',playbackrateSuffix:'%E5%80%8D',track:'%E5%AD%97%E5%B9%95',noTrack:'%E6%97%A0%E5%AD%97%E5%B9%95',definition:'%E6%B8%85%E6%99%B0%E5%BA%A6',switchTo:'%E5%88%87%E6%8D%A2%E6%88%90%EF%BC%9A',closeTime:'%7Bseconds%7D%E7%A7%92%E5%90%8E%E5%8F%AF%E5%85%B3%E9%97%AD%E5%B9%BF%E5%91%8A',closeAd:'%E5%85%B3%E9%97%AD%E5%B9%BF%E5%91%8A',second:'%E7%A7%92',details:'%E6%9F%A5%E7%9C%8B%E8%AF%A6%E6%83%85',copy:'%E5%A4%8D%E5%88%B6',copySucceeded:'%E5%A4%8D%E5%88%B6%E6%88%90%E5%8A%9F%EF%BC%8C%E5%8F%AF%E8%B4%B4%E7%B2%98%EF%BC%81',smallwindowsOpen:'%E5%B0%8F%E7%AA%97%E5%8F%A3%E5%8A%9F%E8%83%BD%E5%B7%B2%E5%BC%80%E5%90%AF',smallwindowsClose:'%E5%B0%8F%E7%AA%97%E5%8F%A3%E5%8A%9F%E8%83%BD%E5%B7%B2%E5%85%B3%E9%97%AD',screenshotStart:'%E6%88%AA%E5%9B%BE%E4%B8%AD%EF%BC%8C%E8%AF%B7%E7%A8%8D%E5%80%99...',screenshotClose:'%E6%88%AA%E5%9B%BE%E5%8A%9F%E8%83%BD%E5%B7%B2%E5%85%B3%E9%97%AD',loopOpen:'%E5%BE%AA%E7%8E%AF%E6%92%AD%E6%94%BE',loopClose:'%E5%B7%B2%E5%85%B3%E9%97%AD%E5%BE%AA%E7%8E%AF%E6%92%AD%E6%94%BE',close:'%E5%85%B3%E9%97%AD',down:'%E4%B8%8B%E8%BD%BD',p50:'50%25',p75:'75%25',p100:'100%25',timeScheduleAdjust:{prohibit:'%E8%A7%86%E9%A2%91%E7%A6%81%E6%AD%A2%E6%8B%96%E5%8A%A8',prohibitBackOff:'%E8%A7%86%E9%A2%91%E7%A6%81%E6%AD%A2%E9%87%8D%E5%A4%8D%E8%A7%82%E7%9C%8B',prohibitForward:'%E8%A7%86%E9%A2%91%E7%A6%81%E6%AD%A2%E5%BF%AB%E8%BF%9B',prohibitLookBack:'%E8%A7%86%E9%A2%91%E7%A6%81%E6%AD%A2%E6%92%AD%E6%94%BE%E9%83%A8%E5%88%86%E5%86%85%E5%AE%B9',prohibitForwardNotViewed:'%E8%A7%86%E9%A2%91%E7%A6%81%E6%AD%A2%E6%92%AD%E6%94%BE%E6%9C%AA%E8%A7%82%E7%9C%8B%E7%9A%84%E9%83%A8%E5%88%86'},error:{noMessage:'%E6%9C%AA%E7%9F%A5%E9%94%99%E8%AF%AF',supportVideoError:'%E8%AF%A5%E6%B5%8F%E8%A7%88%E5%99%A8%E7%89%88%E6%9C%AC%E5%A4%AA%E4%BD%8E%EF%BC%8C%E5%BB%BA%E8%AE%AE%E6%9B%B4%E6%8D%A2%E6%88%90%E5%85%B6%E5%AE%83%E6%B5%8F%E8%A7%88%E5%99%A8',videoTypeError:'%E8%AF%A5%E6%B5%8F%E8%A7%88%E5%99%A8%E4%B8%8D%E6%94%AF%E6%8C%81%E6%92%AD%E6%94%BE%E8%AF%A5%E8%A7%86%E9%A2%91%EF%BC%8C%E5%BB%BA%E8%AE%AE%E6%9B%B4%E6%8D%A2%E6%88%90%E5%85%B6%E5%AE%83%E6%B5%8F%E8%A7%88%E5%99%A8',loadingFailed:'%E5%8A%A0%E8%BD%BD%E5%A4%B1%E8%B4%A5',emptied:'%E8%A7%86%E9%A2%91%E6%96%87%E4%BB%B6%E5%8A%A0%E8%BD%BD%E8%BF%87%E7%A8%8B%E4%B8%AD%E5%87%BA%E7%8E%B0%E9%94%99%E8%AF%AF',screenshot:'%E8%A7%86%E9%A2%91%E6%88%AA%E5%9B%BE%E5%A4%B1%E8%B4%A5',ajax:'Ajax%E6%95%B0%E6%8D%AE%E8%AF%B7%E6%B1%82%E9%94%99%E8%AF%AF',noVideoContainer:'%E6%9C%AA%E6%89%BE%E5%88%B0%E6%94%BE%E7%BD%AE%E8%A7%86%E9%A2%91%E7%9A%84%E5%AE%B9%E5%99%A8'}};var videoObjectDefault={container:'',volume:0.8,poster:'',autoplay:false,loop:false,live:false,rotate:0,zoom:0,ad:null,backLive:false,seek:0,next:null,loaded:'',plug:'',duration:0,preview:null,prompt:null,crossOrigin:'',video:null,type:'',playbackrate:1,ended:null,webFull:false,theatre:null,controls:false,rightBar:null,smallWindows:null,smallWindowsDrag:true,screenshot:false,timeScheduleAdjust:1,logo:'',menu:null,information:{'Load:':'{loadTime} second','Duration:':'{duration} second','Size:':'{videoWidth}x{videoHeight}','Volume:':'{volume}%','Fps:':'{fps}fps','Sudio decoded:':'{audioDecodedByteCount} Byte','Video decoded:':'{videoDecodedByteCount} Byte'},track:null,title:'',language:'',barHideTime:1500,playbackrateOpen:true,playbackrateList:[0.75,1,1.25,1.5,2,4],cookie:null,domain:null,cookiePath:'/',documentFocusPause:false,mouseWheelVolume:2,keyVolume:2,errorShow:true};function ckplayerEmbed(videoObj){var rightMenu=[{title:'ckplayer',link:'http://www.ckplayer.com'},{title:'version:X3',underline:true},{title:'about',click:'aboutShow'}];var vars={},varsTemp={};var video=null;var duration=0;var mutedState='';var recoveryVolume=false;var waited=true;var paused=true;var loadTime=0;var seekTime=0;var oldTime=0,playTime=0,firstSeekTime=-1,maxSeeTime=0;var isChangeDef=true;var playType='';var msgSetTime=null,tipSetTime=null,mouseSetTime=null;var adFrontSetTime=null,adPauseSetTime=null;var closeTipFun=null;var closeTipMouseOut=null;var waitingMessage=true;var hidePreviewSetTime=null;var pSliderMouseDown=false;var playbackTime=0;var loadedmetadataNum=0;var screenshotImg=null;var ad=null;var frontAdPlay=false,pauseAdPlay=false;var barShow=true,rightBarShow=true;var EventTarget=null,newEvent=null,eventTargetList=null;var loadedTrack=false;var C={};var CT=null,CK=null,CM=null,CV=null;var pugPlayer=null;var hls=null;var loadMeta=true;var app='';var nowRotate=0;var nowZoom=100;var smallWindowsState=false;var isDrag=false;var ckplayerCookie='ckplayer-player-cookie';var cookieName='';var cookieTime=0;var cookieArray=[];var focusPause=true;var existenceObj=false;var into=function(obj){if(isUndefined(obj)){player.add=player.into=into;return player}language=decodeURIString(language);if(!isUndefined(window.ckplayerLanguage)){language=mergeObj(language,window.ckplayerLanguage)}eventTarget();documentHidden(function(state){eventTarget('visibilityState',state)});app=getApp();varsTemp={};for(var key in videoObjectDefault){varsTemp[key]=videoObjectDefault[key]}if(valType(obj)=='string'&&(obj.substr(0,8)=='website:'||obj.substr(0,4)=='url:')){var ajaxUrl='';if(obj.substr(0,8)=='website:'){ajaxUrl=obj.substring(8)}if(obj.substr(0,4)=='url:'){ajaxUrl=obj.substring(4)}ajax({url:ajaxUrl,success:function(data){if(data){return into(data)}else{showWindowsError(language['error']['ajax']+',url:'+ajaxUrl);return null}}})}else if(valType(obj)=='object'){varsTemp=standardization(varsTemp,obj);if(!isUndefined(obj['container'])&&obj['container']){CT=$(obj['container']);if(CT){return loadLanguage(obj)}else{return bodyReady(obj)}}else{return bodyReady(obj)}}else{showWindowsError(language['error']['noVideoContainer']);return null}},bodyReady=function(obj){documentReady(function(){if(!isUndefined(obj['container'])){CT=$(obj['container']);if(CT){return loadLanguage(obj)}else{showWindowsError(language['error']['noVideoContainer']);return null}}else{return ajaxWebsite(obj)}});return null},ajaxWebsite=function(obj){if(valType(obj['video'])=='string'&&(obj['video'].substr(0,8)=='website:'||obj['video'].substr(0,4)=='url:')){varsTemp=standardization(varsTemp,obj);var ajaxUrl='';if(obj['video'].substr(0,8)=='website:'){ajaxUrl=obj['video'].substring(8)}if(obj['video'].substr(0,4)=='url:'){ajaxUrl=obj['video'].substring(4)}ajax({url:ajaxUrl,success:function(data){if(data){return into(data)}else{showWindowsError(language['error']['ajax']+',url:'+ajaxUrl);return null}}})}else{showWindowsError(language['error']['noVideoContainer']);return null}},loadLanguage=function(obj){vars=standardization(varsTemp,obj);if(vars['language']){var path=getPath('language')+vars['language']+'.js';loadJs(path,function(){if(!isUndefined(window['ckplayerLanguage'])){language=mergeObj(language,window['ckplayerLanguage'])}return embed(obj)})}else{return embed(obj)}},embed=function(obj){mutedState=vars['volume']>0?false:true;if(!isUndefined(CT)&&CT!=null){if(valType(CT)=='htmlarray'){CT=CT.eq(0)}}else{return null}calculationFps();existenceObj=valType(vars['video'])=='string'&&((vars['video'].substr(0,1)=='.'&&vars['video'].indexOf('/')==-1)||vars['video'].substr(0,1)=='#');if(existenceObj){CK=CT.find('.ckplayer-ckplayer')?CT.find('.ckplayer-ckplayer').eq(0):null;if(CK){CM=CK.find('.ck-main')?CK.find('.ck-main').eq(0):null}if(CM){CV=CM.find('.ck-video')?CM.find('.ck-video').eq(0):null}}if(!CK||!CM||!CV){CT.htm('');CK=createlDiv('ckplayer-ckplayer');CT.append(CK);CM=createlDiv('ck-main');CK.append(CM);CV=createlDiv('ck-video');CM.append(CV)}if(video){video.remove();video=null}if(existenceObj){video=$(vars['video'])?$(vars['video']).eq(0):null}if(!video){video=createlVideo();video.attr('width','100%').attr('height','100%');CV.append(video)}video.volume=vars['volume'];if(vars['autoplay']){player.volume(0);player.muted();recoveryVolume=true;video.attr('autoplay','autoplay');paused=false}else{video.attr('preload','metadata')}CT.loop=vars['loop'];if(CT.loop){video.attr('loop','loop')}if(vars['controls']){video.controls=true}else{video.controls=false}try{if(!existenceObj){video.attr('controlslist','nodownload');video.attr('x-webkit-airplay','true');video.attr('x5-video-orientation','portraint');video.attr('playsinline','true');video.attr('webkit-playsinline','true');video.attr('x5-playsinline','true')}if(vars['crossOrigin']){video.useCORS=true;video.crossOrigin=vars['crossOrigin']}}catch(event){}CT.smallWindows=true;CT.webFull=false;CT.theatre=false;loadFace();if(vars['rotate']>0){player.rotate(vars['rotate'])}if(vars['zoom']>0){player.zoom(vars['zoom'])}if(isUndefined(video.canPlayType)){CT.error={code:5,message:language['error']['supportVideoError']};eventTarget('error',CT.error);showError();return player}addAllListener();if(!isUndefined(vars['loaded'])){if(valType(vars['loaded'])=='function'){try{vars['loaded'](player)}catch(event){}}else if(valType(vars['loaded'])=='string'){try{eval(vars['loaded']+'(player)')}catch(event){}}}if(!existenceObj){changeVideo(vars['video'])}else{changeVideo(video.attr('src'))}return player},changeVideo=function(vstr){var i=0;if(video.attr('src')||video.htm()){player.pause()}if(video.attr('src')&&!existenceObj){video.attr('src','');video.removeAttr('src')}if(!isUndefined(video.textTracks)&&video.textTracks.length>0){for(i=video.find('track').length-1;i>-1;i--){video.find('track').eq(i).remove()}}if(!existenceObj){video.htm('')}if(!isUndefined(vars['ad'])){ad=vars['ad']}var source='';if(valType(vstr)=='string'){if(vstr.substr(0,8)=='website:'||vstr.substr(0,4)=='url:'){var ajaxUrl='';if(vstr.substr(0,8)=='website:'){ajaxUrl=vstr.substring(8)}if(vstr.substr(0,4)=='url:'){ajaxUrl=vstr.substring(4)}ajax({url:ajaxUrl,success:function(data){if(data!=null){vars=standardization(varsTemp,data);changeVideo(vars['video'])}else{CT.error={code:8,message:language['error']['ajax']};eventTarget('error',CT.error);showError()}}});return}else{if(vars['plug']&&!canPlay(vstr)){plugPlayer(vstr)}else{if(!existenceObj){video.attr('src',vstr)}}loadTrack()}}else if(valType(vstr)=='array'){for(i=0;i1){source+=''}}}}if(source){video.htm(source)}loadTrack()}else if(valType(vstr)=='object'){if(vars['plug']){plugPlayer(vstr)}else{CT.error={code:10,message:language['error']['emptied']};eventTarget('error',CT.error);showError()}loadTrack()}if(!isUndefined(video.find('source'))&&video.find('source').length>0){video.find('source').eq(video.find('source').length-1).addListener('error',videoHandler.error)}checkBar();loadLogo();if(isChangeDef){checkDefinition()}if(vars['cookie']){if(valType(vars['cookie'])=='array'&&vars['cookie'].length>=2){if(vars['cookie'][0]&&valType(vars['cookie'][0])=='string'){cookieName=vars['cookie'][0]}if(vars['cookie'][1]&&valType(vars['cookie'][1])=='number'){cookieTime=vars['cookie'][1]}}if(valType(vars['cookie'])=='object'&&!isUndefined(vars['cookie']['name'])){cookieName=vars['cookie']['name'];if(!isUndefined(vars['cookie']['hour'])&&valType(vars['cookie']['hour'])=='number'){cookieTime=vars['cookie']['hour']}}if(valType(vars['cookie'])=='string'){cookieName=vars['cookie']}if(cookieName){cookieName=cookieName.replace(/[ ]*,[ ]*|[ ]+/g,'').replace(/[ ]*;[ ]*|[ ]+/g,'')}}if(!isUndefined(vars['seek'])&&!seekTime){if(valType(vars['seek'])=='number'&&vars['seek']>0){seekTime=vars['seek']}if(valType(vars['seek'])=='string'&&vars['seek']=='cookie'&&cookieName){var cke=player.cookie(cookieName);if(cke){seekTime=cke['time']}}}},plugPlayer=function(url){switch(vars['plug']){case'hls.js':hlsPlayer(url);break;case'flv.js':flvPlayer(url);break;case'mpegts.js':mpegtsPlayer(url);break;case'dash.js':dashPlayer(url);break;default:if(valType(vars['plug'])=='function'){vars['plug'](video,url)}else{CT.error={code:10,message:language['error']['emptied']};eventTarget('error',CT.error);showError()}break}},hlsPlayer=function(url){var path=getPath('hls.js')+'hls.min.js';loadJs(path,function(){if(!isUndefined(Hls)&&Hls.isSupported()){hls=new Hls();hls.loadSource(url);hls.attachMedia(video);hls.on(Hls.Events.ERROR,function(event,data){var code=9;var message=language['error']['loadingFailed'];var fatal=data.fatal;if(!isUndefined(data.response)){if(!isUndefined(data.response.code)){code=data.response.code}if(!isUndefined(data.response.text)&&data.response.text){message=data.response.text}else{if(!isUndefined(event)){message=event}}}CT.error={code:code,message:message};eventTarget('error',CT.error);if(fatal){showError()}})}else if(canPlay(url)){video.attr('src',url)}})},flvPlayer=function(url){var path=getPath('flv.js')+'flv.min.js';loadJs(path,function(){if(typeof(flvjs)!='undefined'&&!isUndefined(flvjs)&&flvjs.isSupported()){var config={type:'flv',url:url};if(valType(url)=='object'){config=url}if(vars['live']){config['isLive']=true}if(pugPlayer){pugPlayer.pause();pugPlayer.unload();pugPlayer.detachMediaElement();pugPlayer.destroy();pugPlayer=null}pugPlayer=flvjs.createPlayer(config);pugPlayer.attachMediaElement(video);pugPlayer.load();pugPlayer.on(flvjs.Events.METADATA_ARRIVED,function(res){videoHandler.loadedMetaData()});pugPlayer.on(flvjs.Events.ERROR,function(errorType,errorDetail,errorInfo){CT.error={code:errorInfo['code'],message:errorInfo['msg']};eventTarget('error',CT.error);showError()})}})},mpegtsPlayer=function(url){var path=getPath('mpegts.js')+'mpegts.js';loadJs(path,function(){if(typeof(mpegts)!='undefined'&&!isUndefined(mpegts)&&mpegts.getFeatureList().mseLivePlayback){var config={type:'mse',url:url};if(valType(url)=='object'){config=url}if(vars['live']){config['isLive']=true}if(pugPlayer){pugPlayer.pause();pugPlayer.unload();pugPlayer.detachMediaElement();pugPlayer.destroy();pugPlayer=null}pugPlayer=mpegts.createPlayer(config);pugPlayer.attachMediaElement(video);pugPlayer.load();pugPlayer.on(mpegts.Events.METADATA_ARRIVED,function(res){videoHandler.loadedMetaData()});pugPlayer.on(mpegts.Events.ERROR,function(errorType,errorDetail,errorInfo){CT.error={code:errorInfo['code'],message:errorInfo['msg']};eventTarget('error',CT.error);showError()})}})},canPlay=function(vStr,num){var vTypeArr=[{vidType:'video/ogg',codType:'theora, vorbis'},{vidType:'video/mp4',codType:'avc1.4D401E, mp4a.40.2'},{vidType:'video/mp4',codType:'avc1'},{vidType:'video/mp4',codType:'hevc'},{vidType:'video/webm',codType:'vp8.0, vorbis'},{vidType:'video/webm',codType:'vp9'},{vidType:'',codType:'application/x-mpegURL'},{vidType:'',codType:'application/vnd.apple.mpegurl'}];var vType={ogg:vTypeArr[0],mp4:[vTypeArr[1],vTypeArr[2],vTypeArr[3]],webm:[vTypeArr[4],vTypeArr[5]],m3u8:[vTypeArr[6],vTypeArr[7]]};var arr=[];var k='';var supportType=function(obj){var vType=obj['vidType'];var str='';if(vType){str=vType+'; codecs="'+obj['codType']+'"'}else{str=obj['codType']}var sup=video.canPlayType(str);if(sup==''){sup='no'}return sup};var getExtension=function(filepath){return filepath.replace(/.+\./,'')};if(isUndefined(num)){if(valType(vStr)=='string'){if(vars['type']){for(k in vTypeArr){if(vTypeArr[k]['vidType']==vars['type']){arr.push(vTypeArr[k])}}}else{if(getExtension(vStr)&&getExtension(vStr)in vType){var temp=vType[getExtension(vStr)];if(valType(temp)=='array'){for(var i=0;i0){for(var i=0;icTime&&arr[i][0]!=cookieName&&y<19){tempArr.push(arr[i]);y++}}arr=tempArr}if(arr.length>0){cookie(ckplayerCookie,'delete',vars['domain'],vars['cookiePath']);cookie(ckplayerCookie,arrayToString(arr),vars['domain'],vars['cookiePath'])}cookieArray=arr},loadTrack=function(){if(isUndefined(video.textTracks)){return}var i=0;if(!isUndefined(vars['track'])&&valType(vars['track'])=='array'&&!video.find('track')){var track='';var arr=vars['track'];C['bar']['track'].show();for(i=0;i'}if(video){var html=video.htm()+track;video.htm(html)}if(video.find('track')&&!loadedTrack){loadedTrack=true;checkTrack()}}},loadedMetaData=function(){eventTarget('loadedMetaData',{width:CK.getWidth(),height:CK.getHeight(),videoWidth:CT.videoWidth,videoHeight:CT.videoHeight,duration:duration,volume:CT.volume});eventTarget('duration',duration);if('error'in C){C['error'].hide()}replaceInformation('videoWidth',CT.videoWidth);replaceInformation('videoHeight',CT.videoHeight);replaceInformation('volume',parseInt(CT.volume*100));replaceInformation('duration',parseInt(duration));documentHidden(function(state){if(vars['documentFocusPause']){if(state=='show'){if(!focusPause&&paused){player.play()}}else{focusPause=paused;player.pause()}}})};var videoHandler={loadStart:function(){if(!vars['controls']&&app!='iphone'){C['loading'].show()}C['centerPlay'].hide();eventTarget('loadstart')},canPlay:function(){C['loading'].hide();eventTarget('canplay')},loadedData:function(){eventTarget('loadeddata')},loadedMetaData:function(){duration=this.duration;if(!isUndefined(this.duration)&&vars['duration']){duration=vars['duration']}if(!vars['live']){C['time'].htm(formatSeconds(this.currentTime)+'/'+formatSeconds(duration));C['tempTime'].htm(formatSeconds(this.currentTime)+'/'+formatSeconds(duration))}C['loading'].hide();if(vars['poster']){video.attr('poster',vars['poster'])}if(!vars['autoplay']&&!vars['controls']){C['centerPlay'].show();C['buffer'].hide()}CT.duration=duration;CT.videoWidth=this.videoWidth;CT.videoHeight=this.videoHeight;CT.volume=this.volume;if(CT.videoWidth||CT.videoHeight||duration){loadedMetaData()}var len=0;if(!isUndefined(this.buffered)){len=this.buffered.length}if(len>0){changeLoad()}if(!vars['live']){changePreview(vars['preview'])}else{changePreview()}if(!isUndefined(vars['prompt'])&&valType(vars['prompt'])=='array'&&!vars['live']){changePrompt()}else{deletePrompt()}if(isChangeDef){checkDefinition();isChangeDef=false}pSliderMouseDown=false;loadedmetadataNum++;if(!isUndefined(ad)&&!isUndefined(ad['frontPlay'])&&ad['frontPlay']&&loadedmetadataNum>1){player.play();calculationAdFrontTime(duration)}if(!isUndefined(ad)&&!isUndefined(ad['frontPlay'])&&!ad['frontPlay']){player.volume(vars['volume']);player.play()}if(!vars['autoplay']&&loadMeta){loadMeta=false;player.pause();setTimeout(player.pause,300)}},timeUpDate:function(){if(!waited){waited=true;C['buffer'].hide();eventTarget('buffer','end')}var len=this.buffered.length;if(len>0){changeLoad()}if(!duration&&this.duration){duration=this.duration;CT.duration=duration;CT.videoWidth=this.videoWidth;CT.videoHeight=this.videoHeight;if(CT.videoWidth||CT.videoHeight||duration){loadedMetaData()}}oldTime=playTime;playTime=this.currentTime;if(maxSeeTime1){calculationAdFrontTime(duration-playTime)}if(!isUndefined(C['error'])&&C['error'].css('display')=='block'){C['error'].hide()}if(cookieName){changeCookie(playTime)}replaceInformation('audioDecodedByteCount',this.webkitAudioDecodedByteCount||this.audioDecodedByteCount||0);replaceInformation('videoDecodedByteCount',this.webkitVideoDecodedByteCount||this.videoDecodedByteCount||0)},ended:function(){if(!isUndefined(ad)&&!isUndefined(ad['frontPlay'])&&ad['frontPlay']){adFrontEnded()}else{C['bar']['playAndPause']['pause'].hide();C['bar']['playAndPause']['play'].hide();C['bar']['playAndPause']['refresh'].show();eventTarget('ended');showEnded();message()}},error:function(event){if(!isUndefined(event.type)){var errorInfo=this.error;var errorBak=function(){var code=12;var msg=language['error']['loadingFailed'];if(!isUndefined(errorInfo)){if(!isUndefined(errorInfo.code)){code=errorInfo.code}if(!isUndefined(errorInfo.message)){msg=errorInfo.message}CT.error={code:code,message:msg};showError()}else{CT.error={code:code,message:msg};if(event.target.attr('src')){showError()}}eventTarget('error',CT.error)};if(event.type=='error'){try{if(video.currentSrc){ajax({url:video.currentSrc,error:function(info){if(info&&valType(info)=='object'&&'code'in info&&info['code']){CT.error=info;eventTarget('error',CT.error);showError()}else{errorBak()}},success:function(data){if(!data){errorBak()}}})}else{errorBak()}}catch(event){errorBak()}}}},stalled:function(){eventTarget('stalled');CT.error={code:13,message:'load:stalled'};eventTarget('error',CT.error)},suspend:function(){eventTarget('suspend')},emptied:function(){eventTarget('emptied');CT.error={code:7,message:language['error']['emptied']};eventTarget('error',CT.error)},seeked:function(){if(paused){player.play()}pSliderMouseDown=false;eventTarget('seek',{time:this.currentTime,state:'seeked'});eventTarget('seeked')},seeking:function(){if(paused){player.play()}var seekingTime=this.currentTime;if(firstSeekTime==-1){firstSeekTime=seekingTime}switch(vars['timeScheduleAdjust']){case 0:if(oldTime!=seekingTime){waitingMessage=false;player.seek(oldTime);message(language['timeScheduleAdjust']['prohibit']);return}break;case 2:if(seekingTimeoldTime){waitingMessage=false;player.seek(oldTime);message(language['timeScheduleAdjust']['prohibitForward']);return}break;case 4:if(seekingTimemaxSeeTime){waitingMessage=false;player.seek(maxSeeTime);message(language['timeScheduleAdjust']['prohibitForwardNotViewed']);return}break}eventTarget('seek',{time:seekingTime,state:'seeking'});eventTarget('seeking');if(!vars['live']){C['time'].htm(formatSeconds(seekingTime)+'/'+formatSeconds(duration));C['tempTime'].htm(formatSeconds(seekingTime)+'/'+formatSeconds(duration))}},waiting:function(){waited=false;eventTarget('buffer','start');C['centerPlay'].hide();if(!vars['controls']){C['buffer'].show()}if(!waitingMessage){waitingMessage=true}else{message(language['waiting'])}},play:function(){paused=false;C['bar']['playAndPause']['play'].hide();C['bar']['playAndPause']['pause'].show();C['bar']['playAndPause']['refresh'].hide();C['centerPlay'].hide();if(playType=='button'){C['bar']['pbox'].removeClass('ck-bar-progress-out')}else{C['bar']['pbox'].addClass('ck-bar-progress-out')}if(recoveryVolume){recoveryVolume=false;player.exitMuted()}hideBar();closePauseAd();playType='';if(!isUndefined(C['ended'])){player.closeLayer(C['ended'])}if('error'in C){C['error'].hide()}eventTarget('play');if(!isUndefined(ad)){if(!isUndefined(ad['front'])){if(isUndefined(ad['frontPlay'])){ad['frontPlayI']=0;ad['frontPlay']=true;player.pause();adFrontPlay();return}}}if(seekTime&&(isUndefined(vars['live'])||(!isUndefined(vars['live'])&&valType(vars['live'])=='boolean'&&!vars['live']))&&seekTime0&&mutedState){this.muted=false}if(mutedState!=this.muted){mutedState=this.muted;changeMuted(this.muted);CT.muted=this.muted;eventTarget('muted',CT.muted)}CT.volume=this.volume;eventTarget('volume',this.volume);if(!isUndefined(C['bar']['vbox'])){var vol=parseInt(this.volume*100);C['bar']['vbox']['volume']['txt'].htm(vol);if(!C['bar']['vbox']['mouseDown']){changeVolumeSlider(this.muted?0:this.volume)}if(!this.muted){message(language['volume']+vol+'%')}}replaceInformation('volume',parseInt(this.volume*100))},resize:function(){var fullState=document.fullScreen||document.mozFullScreen||document.webkitIsFullScreen||document.msFullscreenElement;if(fullState){C['bar']['fullAndExit']['exitFull'].show();C['bar']['fullAndExit']['full'].hide();C['ad']['bottom']['fullAndExit']['exitFull'].show();C['ad']['bottom']['fullAndExit']['full'].hide();if(!CM.hasClass('ck-main-full')){CM.addClass('ck-main-full')}message(language['full']);C['bar']['webFullAndExit'].hide();C['bar']['theatreAndExit'].hide();if(!isUndefined(C['menu'])){CM.append(C['menu'])}}else{fullState=false;C['bar']['fullAndExit']['full'].show();C['bar']['fullAndExit']['exitFull'].hide();C['ad']['bottom']['fullAndExit']['full'].show();C['ad']['bottom']['fullAndExit']['exitFull'].hide();if(CM.hasClass('ck-main-full')){CM.removeClass('ck-main-full')}if(!isUndefined(vars['webFull'])&&vars['webFull']){C['bar']['webFullAndExit'].show()}if(!isUndefined(vars['theatre'])&&!CT.webFull){C['bar']['theatreAndExit'].show()}if(!isUndefined(C['menu'])){$('body').append(C['menu'])}if(CV.css('width')!=CM.css('width')){player.zoom(100)}}if(CT.full!=fullState){CT.full=fullState;eventTarget('full',fullState)}checkVideoRotate();changeProgress(player.time())},keydown:function(event){event=window.event||event;var keycode=event.keyCode||event.which;var v=player.volume();var pre=function(){if(event.preventDefault){event.preventDefault()}else{event.returnValue=false}};switch(keycode){case 32:pre();player.playOrPause();break;case 37:player.fastBack();break;case 39:player.fastNext();break;case 38:if(valType(vars['keyVolume'])=='number'&&(vars['keyVolume']==1||(vars['keyVolume']==2&&CT.full))){pre();player.volume(v+.1<1?v+=.1:1)}break;case 40:if(valType(vars['keyVolume'])=='number'&&(vars['keyVolume']==1||(vars['keyVolume']==2&&CT.full))){pre();player.volume(v-.1>0?v-=.1:0)}break;default:break}},mouseWheel:function(event){if(valType(vars['mouseWheelVolume'])=='number'&&(vars['mouseWheelVolume']==1||(vars['mouseWheelVolume']==2&&CT.full))){event=window.event||event;var v=player.volume();if(event.preventDefault){event.preventDefault()}else{event.returnValue=false}if(event.wheelDelta){if(event.wheelDelta>0){player.volume(v+.1<1?v+=.1:1)}if(event.wheelDelta<0){player.volume(v-.1>0?v-=.1:0)}}else if(event.detail){if(event.detail>0){player.volume(v-.1>0?v-=.1:0)}if(event.detail<0){player.volume(v+.1<1?v+=.1:1)}}}}};var adFrontPlay=function(){if(ad['frontPlayI']==0){allBarHide(false);C['ad'].show();ad['front']['video']=false;if(!isUndefined(ad['front']['closeTime'])){if(ad['front']['closeTime']>0){C['ad']['top']['closeTime'].show();adFrontCloseTime()}else{C['ad']['top']['closeAd'].show()}}}if(!isUndefined(ad['front']['node'])&&ad['front']['node']!=null){CM.append(ad['front']['node']);player.closeLayer(ad['front']['node']);ad['front']['node']=null}C['ad']['picture'].htm('');C['ad']['picture'].hide();C['ad']['link'].hide();if(!isUndefined(ad['front']['list'][ad['frontPlayI']])){var adv=ad['front']['list'][ad['frontPlayI']];frontAdPlay=true;eventTarget('frontAd',adv);if(adv['type']=='picture'){adPicturePlay(adv)}else if(adv['type']=='node'){adNode(adv)}else{C['ad']['link'].attr('data-link',adv['link']);adVideoPlay(adv['file'])}if(!isUndefined(adv['link'])){C['ad']['bottom']['details'].show();C['ad']['bottom']['details'].htm(''+language['details']+'')}else{C['ad']['bottom']['details'].hide()}}},adFrontCloseTime=function(){if(!isUndefined(ad['front']['closeSetTime'])){clearTimeout(ad['front']['closeSetTime']);ad['front']['closeSetTime']=null}C['ad']['top']['closeTime'].htmReplace('{seconds}',ad['front']['closeTime'],language['closeTime']);ad['front']['closeTime']--;if(ad['front']['closeTime']>0){ad['front']['closeSetTime']=setTimeout(adFrontCloseTime,1000)}else{C['ad']['top']['closeAd'].show();C['ad']['top']['closeTime'].hide()}},calculationAdFrontTime=function(t){if(!isUndefined(t)){ad['front']['list'][ad['frontPlayI']]['time']=t}ad['front']['countDown']=0;for(var i=ad['frontPlayI'];i0){adv['time']--;ad['front']['countDown']--;C['ad']['top']['countDown'].htm(ad['front']['countDown']+language['second']);adFrontSetTime=setTimeout(adFrontCountDown,1000)}else{adFrontEnded()}},adFrontEnded=function(){if(ad['frontPlayI']0||h>0){if(adv['link']){var a=createlA('',adv['link']);a.append(this);C['ad']['picture'].append(a)}else{C['ad']['picture'].append(this)}img.unbind();img.click(function(){eventTarget('frontAdClick',adv)})}else{if(imgloadNum<10){imgloadNum++;imgLoadHandler()}}})};imgLoadHandler();calculationAdFrontTime();adFrontCountDown();C['ad']['bottom']['mutedAndExit'].hide()},adNode=function(adv){if(isUndefined(adv['content']))return;ad['front']['node']=player.layer(adv);ad['front']['node'].css({'z-index':1});C['ad'].append(ad['front']['node']);ad['front']['node'].unbind();ad['front']['node'].click(function(){eventTarget('frontAdClick',adv)});calculationAdFrontTime();adFrontCountDown();C['ad']['bottom']['mutedAndExit'].hide()},frontVideoClickHandler=function(){var url=C['ad']['link'].attr('data-link');window.open(url,'_blank')},closeFrontAd=function(){if(!isUndefined(ad)&&!isUndefined(ad['front'])&&!isUndefined(ad['front']['closeButtonClick'])){if(valType(ad['front']['closeButtonClick'])=='function'){try{ad['front']['closeButtonClick']()}catch(event){console.error(event)}}else if(valType(ad['front']['closeButtonClick'])=='string'){try{eval(ad['front']['closeButtonClick']+'()')}catch(event){console.error(event)}}}else{player.closeFrontAd()}},adPausePlay=function(){closePauseAd();if(!isUndefined(ad)&&!isUndefined(ad['pause'])&&!isUndefined(ad['pause']['list'])&&ad['pause']['list'].length-1>=ad['pausePlayI']){var adv=ad['pause']['list'][ad['pausePlayI']];if(!isUndefined(ad['pause']['close'])&&ad['pause']['close']){ad['pauseClose']=createlButton('ck-pause-close');ad['pauseClose'].click(function(){C['centerPlay'].show();C['buffer'].hide();closePauseAd()})}if(!isUndefined(adv['file'])){var img=null;var imgloadNum=0;var imgLoadHandler=function(){img=createlImg(adv['file']);C['adPause'].show();C['adPause'].htm('');C['adPause'].append(img);img.addListener('load',function(){var w=this.getWidth(),h=this.getHeight();if(w>0||h>0){C['adPause'].htm('');if(adv['link']){var a=createlA('',adv['link']);a.append(this);C['adPause'].append(a)}else{C['adPause'].append(this)}C['adPause'].css({'width':w+'px','height':h+'px'});if(ad['pauseClose']){C['adPause'].append(ad['pauseClose'])}img.click(function(){eventTarget('pauseAdClick',adv)})}else{if(imgloadNum<10){imgloadNum++;imgLoadHandler()}}})};imgLoadHandler()}else if(!isUndefined(adv['content'])){ad['pause']['node']=player.layer(adv);if(ad['pauseClose']){ad['pause']['node'].append(ad['pauseClose'])}ad['pause']['node'].click(function(){eventTarget('pauseAdClick',adv)})}eventTarget('pauseAd',adv);if(!isUndefined(adv['time'])&&adv['time']>0){adPauseSetTime=setTimeout(function(){ad['pausePlayI']++;if(ad['pausePlayI']>ad['pause']['list'].length-1){ad['pausePlayI']=0}adPausePlay()},adv['time']*1000)}}},closePauseAd=function(){if(adPauseSetTime){clearTimeout(adPauseSetTime);adPauseSetTime=null}C['adPause'].hide();if(!isUndefined(ad)&&!isUndefined(ad['pauseClose'])&&ad['pauseClose']!=null){ad['pauseClose'].remove();ad['pauseClose']=null}if(!isUndefined(ad)&&!isUndefined(ad['pause'])&&!isUndefined(ad['pause']['node'])&&ad['pause']['node']){ad['pause']['node'].unbind();player.closeLayer(ad['pause']['node']);eventTarget('pauseAdClose')}};var player={width:function(value){if(!isUndefined(value)){if(valType(value)=='number'){value+='px'}CT.css({'width':value});checkVideoRotate()}return CK.getWidth()},height:function(value){if(!isUndefined(value)){if(valType(value)=='number'){value+='px'}CT.css({'height':value});checkVideoRotate()}return CK.getHeight()},videoWidth:function(){if(video){return video.videoWidth}return null},videoHeight:function(){if(video){return video.videoHeight}return null},zoom:function(fn){if(!isUndefined(fn)){if(valType(fn)=='function'){newEvent.addEventListener('zoom',fn)}if(valType(fn)=='number'){var arr=[C['topBar']['zoomEle']['zoom50'],C['topBar']['zoomEle']['zoom75'],C['topBar']['zoomEle']['zoom100']];for(var i=0;ifn&&fn>0){rot=arr[fn]}else{if(arr.indexOf(fn)>-1){rot=fn}}if(rot!=nowRotate){eventTarget('rotate',rot);nowRotate=rot;checkVideoRotate()}}}},vars:function(obj,val){if(isUndefined(obj)){return}if(valType(obj)=='string'&&!isUndefined(val)){var temp={};temp[obj]=val;obj=temp}var isChange=false;for(var k in obj){if(k in vars&&obj[k]!=vars[k]){isChange=true;break}}if(isChange){vars=standardization(vars,obj)}if(!isUndefined(obj['video'])){isChangeDef=true;changeVideo(vars['video'])}if(!isUndefined(obj['title'])){C['topBar']['titleEle'].htm(obj['title'])}},loadstart:function(fn){if(!isUndefined(fn)&&valType(fn)=='function'){newEvent.addEventListener('loadstart',fn)}},loadeddata:function(fn){if(!isUndefined(fn)&&valType(fn)=='function'){newEvent.addEventListener('loadeddata',fn)}},loadedMetaData:function(fn){if(!isUndefined(fn)&&valType(fn)=='function'){newEvent.addEventListener('loadedMetaData',fn)}},canplay:function(fn){if(!isUndefined(fn)&&valType(fn)=='function'){newEvent.addEventListener('canplay',fn)}},play:function(fn){if(valType(fn)=='object'){if(fn['target']==C['bar']['playAndPause']['play']||fn['target']==C['bar']['playAndPause']['refresh']){playType='button'}}if(!isUndefined(fn)&&valType(fn)=='function'){newEvent.addEventListener('play',fn)}else{if(loadedmetadataNum>0&&video){try{video.play()}catch(event){console.error(event)}}}return player},pause:function(fn){if(!isUndefined(fn)&&valType(fn)=='function'){newEvent.addEventListener('pause',fn)}else{if(loadedmetadataNum>0&&video){try{video.pause()}catch(event){console.error(event)}}}return player},playOrPause:function(){if(paused){player.play()}else{player.pause()}return player},volume:function(fn){if(!isUndefined(fn)){if(valType(fn)=='function'){newEvent.addEventListener('volume',fn)}else if(valType(fn)=='number'&&video){if(fn<0)fn=0;if(fn>1)fn=1;if(video.muted){video.volume=fn*.5}video.volume=fn}}else if(video){return video.volume}return player},muted:function(fn){if(!isUndefined(fn)&&valType(fn)=='function'){newEvent.addEventListener('muted',fn)}else if(video){video.muted=true}return player},exitMuted:function(){if(video){video.muted=false;if(video.volume==0){player.volume(vars['volume']>0?vars['volume']:.8)}}return player},time:function(fn){if(!isUndefined(fn)&&valType(fn)=='function'){newEvent.addEventListener('time',fn)}else if(video){return video.currentTime||0}},seek:function(fn){if(!isUndefined(fn)){if(valType(fn)=='function'){newEvent.addEventListener('seek',fn)}if(valType(fn)=='number'&&video){switch(vars['timeScheduleAdjust']){case 0:message(language['timeScheduleAdjust']['prohibit']);return;break;case 1:break;case 2:if(fnoldTime){message(language['timeScheduleAdjust']['prohibitForward']);return}break;case 4:if(fnmaxSeeTime){waitingMessage=false;video.currentTime=maxSeeTime;message(language['timeScheduleAdjust']['prohibitForwardNotViewed']);return}break}pSliderMouseDown=false;video.currentTime=fn}}return player},buffer:function(fn){if(!isUndefined(fn)&&valType(fn)=='function'){newEvent.addEventListener('buffer',fn)}return player},ended:function(fn){if(!isUndefined(fn)&&valType(fn)=='function'){newEvent.addEventListener('ended',fn)}return player},next:function(fn){if(!isUndefined(fn)&&valType(fn)=='function'){newEvent.addEventListener('next',fn)}return player},error:function(fn){if(!isUndefined(fn)&&valType(fn)=='function'){newEvent.addEventListener('error',fn)}return player},emptied:function(fn){if(!isUndefined(fn)&&valType(fn)=='function'){newEvent.addEventListener('emptied',fn)}return player},duration:function(fn){if(!isUndefined(fn)&&valType(fn)=='function'){newEvent.addEventListener('duration',fn)}else{return duration||0}},playbackRate:function(fn){if(!isUndefined(fn)){if(valType(fn)=='function'){newEvent.addEventListener('playbackRate',fn)}else if(valType(fn)=='number'&&video){video.playbackRate=fn;CT.playbackRate=fn;eventTarget('playbackRate',fn);changePlaybackrateVal(fn)}}else{return video.playbackRate}},track:function(fn){if(!isUndefined(fn)){if(valType(fn)=='function'){newEvent.addEventListener('track',fn)}else if(valType(fn)=='number'&&video){var track=null;if(!isUndefined(video.textTracks)){track=video.textTracks}if(track&&valType(track)=='texttracklist'){var arr=vars['track'];for(var i=track.length-1;i>-1;i--){video.find('track').eq(i).remove()}for(var i=0;i'}if(video){var html=video.htm()+track;video.htm(html)}changeTrackVal(fn)}}}else{return CT.track}},fastBack:function(num){if(duration==0)return;if(isUndefined(num)||valType(num)!='number'){num=20}var time=player.time();if(time-num>0){time-=num}else{time=0}player.seek(time);return player},fastNext:function(num){if(duration==0)return;if(isUndefined(num)||valType(num)!='number'){num=20}var time=player.time();if(time+num200)zIndex=200;if(isUndefined(ele.cssDisplay)){ele.cssPosition=ele.css('position');ele.cssDisplay=ele.css('display')}ele.css({'position':'absolute','z-index':zIndex});if(!cBar){CM.append(ele)}else{C['bar'].append(ele)}ele.CK=CK;ele.show()}return ele},closeLayer:function(ele){if(valType(ele)=='string'){var temp=$(ele);if(!isUndefined(temp)){if(temp.length>0){ele=temp.eq(0)}}}if(!isUndefined(ele)&&valType(ele)=='htmlobject'){if(!isUndefined(ele.captureParentNode)){var eleP=ele.captureParentNode;if(ele.nextElement){try{eleP.insertBefore(ele,ele.nextElement)}catch(event){eleP.append(ele)}}else if(ele.prevElement){try{eleP.insertAfter(ele,ele.prevElement)}catch(event){eleP.append(ele)}}else{eleP.append(ele)}ele.css({'display':ele.cssDisplay})}else{ele.remove()}if(!isUndefined(ele.cssDisplay)){ele.css({'display':ele.cssDisplay,'position':ele.cssPosition})}}return player},message:function(str){message(str);return player},closeFrontAd:function(){if(frontAdPlay&&!isUndefined(ad)&&!isUndefined(ad['front'])&&!isUndefined(ad['front']['list'])){ad['frontPlayI']=ad['front']['list'].length-1;adFrontEnded();clearAdFrontSetTime()}return player},addListener:function(name,fn){newEvent.addEventListener(name,fn)},removeListener:function(name,fn){newEvent.removeEventListener(name,fn)},bar:function(bool){barShow=bool;if(bool){C['bar'].show()}else{C['bar'].hide()}},rightBar:function(bool){rightBarShow=bool;if(bool){C['rightBar'].show()}else{C['rightBar'].hide()}},mouseActive:function(fn){if(!isUndefined(fn)&&valType(fn)=='function'){newEvent.addEventListener('mouseActive',fn)}return this},cookie:function(name){if(name=='delete'){cookie(ckplayerCookie,'delete',vars['domain']);return null}if(!isUndefined(name)&&name){name=name.replace(/[ ]*,[ ]*|[ ]+/g,'').replace(/[ ]*;[ ]*|[ ]+/g,'')}var cStr=cookie(ckplayerCookie);if(cStr){var arr=stringToArray(cStr);var tempArr=[];var cTime=parseInt(Date.now()*0.001);for(i=0;icTime){tempArr.push(arr[i])}}arr=tempArr;if(arr.length>0){cookie(ckplayerCookie,'delete',vars['domain'],vars['cookiePath']);cookie(ckplayerCookie,arrayToString(arr),vars['domain'],vars['cookiePath']);for(var i=0;i-1;i--){var pTemp=createlButton('ck-list-p',playbackrate[i]+language['playbackrateSuffix']);pTemp.attr('data-i',i).attr('data-val',playbackrate[i]);C['bar']['playbackrate']['bg']['p'].push(pTemp);C['bar']['playbackrate']['bg'].append(pTemp);pTemp.click(playbackrateClick)}C['bar']['playbackrate'].hide();if(!isUndefined(vars['playbackrateOpen'])&&vars['playbackrateOpen']){C['bar']['playbackrate'].show();C['bar']['playbackrate']['bgbox'].show();var w=C['bar']['playbackrate']['bg'].getWidth(),h=C['bar']['playbackrate']['bg'].getHeight();var bw=C['bar']['playbackrate']['button'].getWidth();C['bar']['playbackrate']['bg'].css({'width':w+10+'px'});w=C['bar']['playbackrate']['bg'].getWidth();if(getBarHeight()>C['bar'].getHeight()){h+=(getBarHeight()-C['bar'].getHeight())}C['bar']['playbackrate']['bgbox'].attr('style','');C['bar']['playbackrate']['bgbox'].css({'width':w+'px','height':(h+2)+'px','left':-(w-bw)*0.5+'px'});C['bar']['playbackrate']['button'].mouseover(function(){w=C['bar']['playbackrate']['bg'].getWidth();bw=C['bar']['playbackrate']['button'].getWidth();C['bar']['playbackrate']['bgbox'].css({'left':-(w-bw)*0.5+'px'})});changePlaybackrateVal(pbr)}},playbackrateClick=function(e){C['bar']['playbackrate']['bgbox'].hide();setTimeout(function(){C['bar']['playbackrate']['bgbox'].removeCss('display')},300);message(language['switchTo']+$(this).htm());player.playbackRate(parseFloat($(this).attr('data-val')))},changePlaybackrateVal=function(num){C['bar']['playbackrate']['bg'].find('button').each(function(index,ele){var val=parseFloat(ele.attr('data-val'));ele.removeClass('ck-list-p-focus');if(num==val){ele.addClass('ck-list-p-focus');if(num!=1){C['bar']['playbackrate']['button'].htm(ele.htm())}else{C['bar']['playbackrate']['button'].htm(language['playbackrate'])}}else{ele.removeClass('ck-list-p-focus')}})},checkTrack=function(){var track=vars['track'];var pbr=-1;C['bar']['track']['bgbox'].htm('');C['bar']['track']['bg']=createlDiv('ck-list-bg');C['bar']['track']['bgbox'].append(C['bar']['track']['bg']);C['bar']['track']['bg']['p']=[];var pTemp=null;for(var i=track.length-1;i>-1;i--){pTemp=createlButton('ck-list-p',track[i]['label']);pTemp.attr('data-i',i).attr('data-title',track[i]['label']);C['bar']['track']['bg']['p'].push(pTemp);C['bar']['track']['bg'].append(pTemp);if(!isUndefined(track[i]['default'])&&track[i]['default']){pbr=i}pTemp.click(trackClick)}pTemp=createlButton('ck-list-p',language['noTrack']);pTemp.attr('data-i',-1).attr('data-title',language['noTrack']);C['bar']['track']['bg']['p'].push(pTemp);C['bar']['track']['bg'].append(pTemp);pTemp.click(trackClick);C['bar']['track'].hide();C['bar']['track'].show();C['bar']['track']['bgbox'].show();var w=C['bar']['track']['bg'].getWidth(),h=C['bar']['track']['bg'].getHeight();var bw=C['bar']['track']['button'].getWidth();C['bar']['track']['bg'].css({'width':w+10+'px'});w=C['bar']['track']['bg'].getWidth();if(getBarHeight()>C['bar'].getHeight()){h+=(getBarHeight()-C['bar'].getHeight())}C['bar']['track']['bgbox'].attr('style','');C['bar']['track']['bgbox'].css({'width':w+'px','height':(h+2)+'px','left':-(w-bw)*0.5+'px'});C['bar']['track']['button'].mouseover(function(){w=C['bar']['track']['bg'].getWidth();bw=C['bar']['track']['button'].getWidth();C['bar']['track']['bgbox'].css({'left':-(w-bw)*0.5+'px'})});changeTrackVal(pbr)},trackClick=function(e){C['bar']['track']['bgbox'].hide();setTimeout(function(){C['bar']['track']['bgbox'].removeCss('display')},300);message(language['switchTo']+$(this).attr('data-title'));player.track(parseFloat($(this).attr('data-i')))},changeTrackVal=function(num){C['bar']['track']['bg'].find('button').each(function(index,ele){var i=parseInt(ele.attr('data-i'));if(num==i){C['bar']['track']['button'].htm(ele.attr('data-title'));if(i>-1){CT.track=vars['track'][i];eventTarget('track',vars['track'][i])}else{CT.track=null;eventTarget('track',null)}ele.addClass('ck-list-p-focus')}else{ele.removeClass('ck-list-p-focus')}})},checkDefinition=function(){var pi=-1;var videoUrl=video['currentSrc'];if(!isUndefined(C['bar']['definition']['bg'])){C['bar']['definition']['bgbox'].htm('');C['bar']['definition']['bgbox'].attr('style','');C['bar']['definition']['button'].htm(language['definition'])}if(valType(vars['video'])=='array'){var arr=vars['video'];C['bar']['definition']['bg']=createlDiv('ck-list-bg');C['bar']['definition']['bgbox'].append(C['bar']['definition']['bg']);C['bar']['definition']['bg']['p']=[];for(var i=arr.length-1;i>-1;i--){var pTemp=createlButton('ck-list-p',arr[i][2]);pTemp.attr('data-i',i).attr('data-video',arr[i][0]).attr('data-type',arr[i][1]).attr('data-title',arr[i][2]);C['bar']['definition']['bg']['p'].push(pTemp);C['bar']['definition']['bg'].append(pTemp);if(videoUrl&&videoUrl.indexOf(arr[i][0])>-1){pi=i}pTemp.click(definitionClick)}C['bar']['definition'].show();C['bar']['definition']['bgbox'].show();var w=C['bar']['definition']['bg'].getWidth(),h=C['bar']['definition']['bg'].getHeight();var bw=C['bar']['definition']['button'].getWidth();C['bar']['definition']['bg'].css({'width':w+10+'px'});w=C['bar']['definition']['bg'].getWidth();if(getBarHeight()>C['bar'].getHeight()){h+=(getBarHeight()-C['bar'].getHeight())}C['bar']['definition']['bgbox'].attr('style','');C['bar']['definition']['bgbox'].css({'width':w+'px','height':(h+2)+'px','left':-(w-bw)*0.5+'px'});C['bar']['definition']['button'].mouseover(function(){w=C['bar']['definition']['bg'].getWidth();bw=C['bar']['definition']['button'].getWidth();C['bar']['definition']['bgbox'].css({'left':-(w-bw)*0.5+'px'})})}if(pi>-1){C['bar']['definition']['bg'].find('button').each(function(index,ele){var i=parseInt(ele.attr('data-i'));if(pi==i){ele.addClass('ck-list-p-focus')}else{ele.removeClass('ck-list-p-focus')}})}},definitionClick=function(e){C['bar']['definition']['bgbox'].hide();setTimeout(function(){C['bar']['definition']['bgbox'].removeCss('display')},300);changeDefinition(parseInt($(this).attr('data-i')))},changeDefinition=function(num){C['bar']['definition']['bg'].find('button').each(function(index,ele){var i=parseInt(ele.attr('data-i'));if(num==i){if(!isUndefined(video.textTracks)&&video.textTracks.length>0){for(var y=video.find('track').length-1;y>-1;y--){video.find('track').eq(y).remove()}}seekTime=player.time();video.attr('autoplay','autoplay');changeVideo(ele.attr('data-video'));message(language['switchTo']+ele.htm());C['bar']['definition']['button'].htm(ele.htm());ele.addClass('ck-list-p-focus');eventTarget('definition',{id:i,video:ele.attr('data-video'),title:ele.attr('data-title')})}else{ele.removeClass('ck-list-p-focus')}})},deletePrompt=function(){var i=0;if(!isUndefined(C['prompt'])&&valType(C['prompt'])=='array'){for(i=C['prompt'].length;i>-1;i--){if(!isUndefined(C['prompt'][i])){C['prompt'][i].remove()}}C['prompt']=null}C['prompt']=[]},changePrompt=function(){deletePrompt();for(var i=0;i100)left=100;ele.css({'left':left+'%'});ele.mouseover(function(){if(this.attr('data-words')){showPromptWords(this)}});ele.mouseout(function(){if(this.attr('data-words')){showPromptWords()}});C['prompt'].push(ele)}}},showPromptWords=function(ele){if(isUndefined(C['promptWords'])){C['promptWords']=createlDiv('ck-prompt-words');CM.append(C['promptWords']);C['promptWords']['content']=createlDiv('ck-prompt-content');C['promptWords'].append(C['promptWords']['content'])}if(isUndefined(ele)){C['promptWords']['content'].htm('');C['promptWords'].hide();return}C['promptWords']['content'].htm(ele.attr('data-words'));C['promptWords'].show();var pW=C['promptWords'].getWidth(),pH=C['promptWords'].getHeight();var bg=C['bar']['pbox']['bg'];var time=parseFloat(ele.attr('data-time'));var top=CK.getHeight()-getBarHeight();var left=ele.offset()['left']-CK.offset()['left']+ele.getWidth()*.5-pW*.5;if(!isUndefined(C['preview'])){top=CK.getHeight()-parseFloat((getBarHeight()+C['preview']['smallHight']+parseInt(C['preview'].css('margin-bottom'))))}else{top=CK.getHeight()-parseFloat((getBarHeight()+C['tip']['minHeight']+parseInt(C['tip'].css('margin-bottom'))));top-=(getBarHeight()-C['bar'].getHeight())}top-=parseFloat(C['promptWords'].css('margin-bottom'));top-=pH;left-=parseFloat(C['promptWords'].css('margin-right'));if(left<0)left=0;if(left>CK.getWidth()-pW)left=CK.getWidth()-pW;C['promptWords'].css({'top':top+'px','left':left+'px'})},changePreview=function(preview){if(!isUndefined(C['preview'])){C['preview'].remove();C['preview']=null}if(!isUndefined(preview)){C['preview']=createlDiv('ck-preview');CM.append(C['preview']);if(isUndefined(vars['preview']['type'])){vars['preview']['type']=0}if(vars['preview']['type']==1){C['preview']['bg']=createlDiv('ck-preview-bg');C['preview'].append(C['preview']['bg'])}var files=[];var loadImg=function(bigW,bigH,smallW,smallH){if(vars['preview']['type']==1){C['preview']['bg']['img']=[];for(var i=0;i1){if(valType(vars['preview']['thumbnail'][0])=='number'){thumbnail[0]=vars['preview']['thumbnail'][0]}if(valType(vars['preview']['thumbnail'][1])=='number'){thumbnail[1]=vars['preview']['thumbnail'][1]}vars['preview']['thumbnail']=thumbnail}if(files[0]){var img=createlImg(files[0],'ck-preview-load-img').addListener('load',function(){loadImg(this.getWidth(),this.getHeight(),this.getWidth()/thumbnail[0],this.getHeight()/thumbnail[1]);this.remove()});CM.append(img)}}else{C['preview'].removeChild();C['preview']=null}}else{C['preview'].removeChild();C['preview']=null}}},showPreview=function(time){if(hidePreviewSetTime){clearTimeout(hidePreviewSetTime);hidePreviewSetTime=null}if(time<0){if(!isUndefined(C['preview'])){hidePreviewSetTime=setTimeout(function(){C['preview'].hide();hidePreviewSetTime=null},200);return}}if(!isUndefined(C['preview'])&&!isUndefined(vars['preview']['thumbnail'])&&duration>0){if(isUndefined(vars['preview']['type'])){vars['preview']['type']=0}var scale=2,thumbnail=vars['preview']['thumbnail'];if(!isUndefined(vars['preview']['scale'])){scale=vars['preview']['scale']}var divI=0,imgI=0;var left=0,frameLeft=0;var pW=0;var smallW=C['preview']['smallWidth'],smallH=C['preview']['smallHight'];var bgXw=time*C['bar']['pbox']['bg'].getWidth()/duration+(C['bar']['pbox']['bg'].offset()['left']-CK.offset()['left']);if(C['preview'].css('display')=='none'){C['preview'].show()}C['preview'].css({'height':smallH+'px',});if(vars['preview']['type']==1){divI=parseInt(time/(scale*thumbnail[0]));imgI=parseInt(time/scale);var minI=divI-5,maxI=divI+5;if(minI<0)minI=0;if(maxI>C['preview']['bg']['img'].length-1){maxI=C['preview']['bg']['img'].length-1}for(var i=minI;iC['preview'].getWidth()-C['preview']['frame'].getWidth()){var xz=frameLeft-(C['preview'].getWidth()-C['preview']['frame'].getWidth());frameLeft=C['preview'].getWidth()-C['preview']['frame'].getWidth();left-=xz}C['preview']['bg'].css({'left':left+'px'});C['preview']['frame'].css({'left':frameLeft+'px'})}else{var temp=(time/scale)/(thumbnail[0]*thumbnail[1]);imgI=parseInt(temp);var smallI=parseInt((temp-imgI)*100);var rows=parseInt(smallI/thumbnail[0]);var column=smallI%thumbnail[0];var files=vars['preview']['file'];left=bgXw-smallW*.5;if(left<0){left=0}if(left>CK.getWidth()-smallW){left=CK.getWidth()-smallW}C['preview'].css({'width':C['preview']['smallWidth']+'px','background':'url('+files[imgI]+') no-repeat','background-position':'-'+column*smallW+'px -'+rows*smallH+'px','left':left+'px'})}}},showError=function(){C['loading'].hide();if(vars['controls']||!vars['errorShow']){return}if(isUndefined(C['error'])){C['error']=createlDiv('ck-error');CM.append(C['error'])}var msg=CT.error['message'];if(!msg)msg=language['error']['noMessage'];var html=msg+'(code:'+CT.error['code']+')';C['error'].htm(html);C['error'].show()},showWindowsError=function(error){var ele=createlDiv('ckplayer-error',error);$('body').append(ele)},showNextEpisode=function(){if(isUndefined(vars['next']))return;if(valType(vars['next'])=='object'){if('content'in vars['next']){C['next']=player.layer(vars['next']);return}if('title'in vars['next']){tip(C['bar']['nextEpisode'],vars['next']['title']);return}}tip(C['bar']['nextEpisode'],language['next'])},nextClick=function(){if(valType(vars['next'])=='object'){if('click'in vars['next']){if(valType(vars['next']['click'])=='function'){vars['next']['click']()}else if(valType(vars['next']['click'])=='string'){eval(vars['next']['click']+'()')}}if('link'in vars['next']){window.location.href=vars['next']['link']}eventTarget('next')}},showEnded=function(){if(!CT.loop&&!isUndefined(vars['ended'])){closePauseAd();C['ended']=player.layer(vars['ended']);if(C['ended']){C['centerPlay'].hide()}return}},windowScroll=function(){if(!CT.smallWindows)return;if(CT.webFull||CT.theatre||CT.full){exitSmallWindows();return}var scrollTop=document.documentElement.scrollTop||document.body.scrollTop;if(scrollTop>CT.offset()['top']+CT.getHeight()){if(!CK.hasClass('ckplayer-ckplayer-smallwindow')){CK.addClass('ckplayer-ckplayer-smallwindow');eventTarget('smallWindows',true);smallWindowsState=true;if(vars['smallWindowsDrag']){drag(true)}allBarHide();checkVideoRotate()}}else{exitSmallWindows()}},exitSmallWindows=function(){if(CK.hasClass('ckplayer-ckplayer-smallwindow')){CK.removeClass('ckplayer-ckplayer-smallwindow');if(vars['smallWindowsDrag']){drag()}eventTarget('smallWindows',false);smallWindowsState=false;allBarShow();checkVideoRotate()}},drag=function(state){var doc=$(document);var posX=0,posY=0,posXRecord=0,posYRecord=0;var open=false;if(!isUndefined(state)){open=state}var mouseDown=function(e){e.preventDefault&&e.preventDefault();e=e||window.event;var client=getClient(e);posXRecord=client['x'];posYRecord=client['y'];doc.mousemove(docMouseMove);doc.mouseup(docMouseUp);CK.css({'cursor':'move'})};var docMouseMove=function(e){e=e||window.event;var client=getClient(e);var eleOffset=CK.offset();posY=client['y']-posYRecord;posX=client['x']-posXRecord;posXRecord=client['x'];posYRecord=client['y'];var left=eleOffset['left']+posX;var top=eleOffset['top']+posY;CK.css({'left':left+'px','top':top+'px'});if(CK.css('position')!='fixed'){CK.css({'position':'fixed'})}isDrag=true};var docMouseUp=function(){doc.removeListener('mousemove',docMouseMove);doc.removeListener('mouseup',docMouseUp);CK.css({'cursor':'default'})};if(open){CK.mousedown(mouseDown)}else{CK.unbind('mousedown')}},checkVideoRotate=function(){var ckW=CK.getWidth()*nowZoom*0.01,ckH=CK.getHeight()*nowZoom*0.01;var vW=CV.getWidth(),vH=CV.getHeight();CV.css({'transform':'rotate('+nowRotate+'deg)','-ms-transform':'rotate('+nowRotate+'deg)','-moz-transform':'rotate('+nowRotate+'deg)','-webkit-transform':'rotate('+nowRotate+'deg)','-o-transform':'rotate('+nowRotate+'deg)','width':nowZoom+'%','height':nowZoom+'%'});if(nowRotate!=0&&nowRotate!=180){if(vH>ckW&&vW>ckH){if(vH/ckW>vW/ckH){CV.css({'height':nowZoom+'%','width':ckH+'px'})}else{CV.css({'width':nowZoom+'%','height':ckW+'px'})}return}if(vHckH){CV.css({'height':nowZoom+'%','width':ckH+'px'})}else{if(vH/vW>=ckW/ckH){CV.css({'width':nowZoom+'%','height':ckW+'px'})}else{CV.css({'height':nowZoom+'%','width':ckH+'px'})}}return}if(vH>=ckW&&vW<=ckH){CV.css({'width':nowZoom+'%','height':ckW+'px'});return}if(vW>=ckH&&vHC['bar'].getHeight()){top-=(getBarHeight()-C['bar'].getHeight())}if(w>ew){left=offset['left']-ckOffset['left']-(w-ew)*.5}else{left=offset['left']-ckOffset['left']+(ew-w)*.5}if(align=='left'){left=offset['left']-ckOffset['left']-w;top=offset['top']-ckOffset['top']}if(!isUndefined(cl)){left=cl['x']-ckOffset['left']-w*.5}if(left<0){left=0}if(top<0){top=0}if(left>CM.getWidth()-w){left=CM.getWidth()-w}if(top>CM.getHeight()-h){top=CM.getHeight()-h}C['tip'].css({'left':left+'px','top':top-parseInt(C['tip'].css('margin-bottom'))+'px'})},progressDragX=function(){var bg=C['bar']['pbox']['bg'],play=C['bar']['pbox']['play'],slider=C['bar']['pbox']['slider'],mouseLine=C['bar']['pbox']['mouseLine'];slider.unbind();bg.unbind();var pos=0,posRecord=0;var doc=$(document);var sliderDownTime=0;var sliderMouseDown=function(e){e.preventDefault&&e.preventDefault();if(!vars['timeScheduleAdjust']){return}e=e||window.event;var eleOffset=slider.offset(),bgOffset=bg.offset(),client=getClient(e);pSliderMouseDown=true;posRecord=client['x'];var left=eleOffset['left']-bgOffset['left'];sliderDownTime=left*duration/(bg.getWidth()-slider.getWidth());slider.removeListener('mousedown',sliderMouseDown);slider.removeListener('touchstart',sliderMouseDown);doc.mousemove(docMouseMove);doc.mouseup(docMouseUp);slider.touchmove(docMouseMove);slider.touchend(docMouseUp);noScrolling(true)};var docMouseMove=function(e){e=e||window.event;var eleOffset=slider.offset(),bgOffset=bg.offset(),client=getClient(e);pSliderMouseDown=true;pos=posRecord-client['x'];posRecord=client['x'];var left=eleOffset['left']-pos-bgOffset['left'];if(left<0){left=0}if(left>bg.getWidth()-slider.getWidth()){left=bg.getWidth()-slider.getWidth()}C['bar']['pbox'].addClass('ck-bar-progress-slider-move');var time='';if(!vars['live']){time=left*duration/(bg.getWidth()-slider.getWidth());switch(vars['timeScheduleAdjust']){case 2:if(timesliderDownTime){left=-1000;message(language['timeScheduleAdjust']['prohibitForward']);return}break;case 4:if(timemaxSeeTime){left=-1000;player.seek(maxSeeTime);message(language['timeScheduleAdjust']['prohibitForwardNotViewed']);return}break}time=formatSeconds(time)}else{time=formatLiveTime(left*getLiveTime()/(bg.getWidth()-slider.getWidth()))}tip(slider,time);if(left>=0){slider.css({'left':left+'px'});play.css({'width':left+slider.getWidth()*.5+'px'})}else{pSliderMouseDown=false}};var docMouseUp=function(){noScrolling();doc.removeListener('mousemove',docMouseMove);doc.removeListener('mouseup',docMouseUp);slider.removeListener('touchmove',docMouseMove);slider.removeListener('touchend',docMouseUp);slider.mousedown(sliderMouseDown);slider.touchstart(sliderMouseDown);if(!vars['live']){var time=play.getWidth()*duration/(bg.getWidth()-slider.getWidth()*.5);if(time>duration){time=duration}seekTime=0;player.seek(time)}else{var playbackTime=parseInt(vars['live']+play.getWidth()*getLiveTime()/(bg.getWidth()-slider.getWidth()*.5));eventTarget('playback',{time:playbackTime,date:date('Y-m-d H:i:s',playbackTime)});eventTarget('seek',{time:playbackTime,state:'seeking',date:date('Y-m-d H:i:s',playbackTime)})}C['bar']['pbox'].removeClass('ck-bar-progress-slider-move');if(isMouseLeave){tip()}};var isMouseLeave=true;var sliderMouseOver=function(){var time='';if(!vars['live']){time=formatSeconds(parseInt(slider.css('left'))*duration/(bg.getWidth()-slider.getWidth()))}else{time=language['live']}isMouseLeave=false;tip(slider,time)};var sliderMouseLeave=function(){isMouseLeave=true};slider.mousedown(sliderMouseDown);slider.mouseover(sliderMouseOver);slider.mouseleave(sliderMouseLeave);slider.touchstart(sliderMouseDown);var bgMouseDown=function(e){e=e||window.event;var client=getClient(e);var bgOffset=bg.offset();var w=client['x']-bgOffset['left'];if(CT.full){w+=CK.offset()['left']}if(!vars['live']){var time=duration*w/bg.getWidth();switch(vars['timeScheduleAdjust']){case 0:message(language['timeScheduleAdjust']['prohibit']);return;break;case 2:if(timeoldTime){message(language['timeScheduleAdjust']['prohibitForward']);return}break;case 4:if(timemaxSeeTime){message(language['timeScheduleAdjust']['prohibitForwardNotViewed']);return}break}seekTime=0;player.seek(time)}else{var playbackTime=parseInt(vars['live']+getLiveTime()*w/bg.getWidth());eventTarget('playback',{time:playbackTime,date:date('Y-m-d H:i:s',playbackTime)});eventTarget('seek',{time:playbackTime,state:'seeking',date:date('Y-m-d H:i:s',playbackTime)})}if(w>bg.getWidth()-slider.getWidth()*.5){w=bg.getWidth()-slider.getWidth()*.5}if(wmaxTop){sliderTop=maxTop}slider.css({'top':sliderTop+'px'});var ppMarginTop=sliderTop-minTop+slider.getHeight()*0.5;pp.css({'margin-top':ppMarginTop+'px'});var vol=(bg.getHeight()-ppMarginTop-slider.getHeight()*0.5)/(bg.getHeight()-slider.getHeight());player.volume(vol)};var docMouseUp=function(){noScrolling();doc.removeListener('mousemove',docMouseMove);doc.removeListener('mouseup',docMouseUp);slider.removeListener('touchmove',docMouseMove);slider.removeListener('touchend',docMouseUp);slider.mousedown(sliderMouseDown);slider.touchstart(sliderMouseDown);C['bar']['vbox']['mouseDown']=false};slider.mousedown(sliderMouseDown);slider.touchstart(sliderMouseDown);var bgMouseDown=function(e){e=e||window.event;var client=getClient(e);var bgOffset=bg.offset();var h=client['y']-bgOffset['top'];var max=bg.getHeight();var vol=1-h/max;player.volume(vol)};bg.mousedown(bgMouseDown)},changeProgress=function(time){if((valType(vars['live'])=='boolean'&&vars['live'])){return}if(!pSliderMouseDown){var bg=C['bar']['pbox']['bg'],slider=C['bar']['pbox']['slider'];var playW=(time/duration)*100;if(valType(vars['live'])=='number'){playW='100'}C['bar']['pbox']['play'].css({'width':playW+'%'});var sliderW=(slider.getWidth()/bg.getWidth())*100;var sliderLeft=playW-sliderW*.5;if(sliderLeft<0){sliderLeft=0}if(sliderLeft>100-sliderW){sliderLeft=100-sliderW}C['bar']['pbox']['slider'].css({'left':sliderLeft+'%'});checkProgressSlider()}},checkProgressSlider=function(){var bg=C['bar']['pbox']['bg'],slider=C['bar']['pbox']['slider'];var st=0;if(C['bar']['pbox'].css('transition-duration')){st=parseFloat(C['bar']['pbox'].css('transition-duration'))*1000+20}var checkThis=function(){var sliderLeft=parseInt(C['bar']['pbox']['slider'].css('left'));if(sliderLeft<0){sliderLeft=0;C['bar']['pbox']['slider'].css({'left':sliderLeft+'px'})}if(sliderLeft>bg.getWidth()-slider.getWidth()){sliderLeft=bg.getWidth()-slider.getWidth();C['bar']['pbox']['slider'].css({'left':sliderLeft+'px'})}};setTimeout(checkThis,st)},changeTopTime=function(){C['topBar']['timeEle'].htm(date('H:i:s'));setTimeout(changeTopTime,1000)},changeVolumeSlider=function(vol){if(!isUndefined(C['bar']['vbox'])){var box=C['bar']['vbox']['volume']['box'],bg=C['bar']['vbox']['volume']['bg'],pp=C['bar']['vbox']['volume']['pp'],slider=C['bar']['vbox']['volume']['slider'];C['bar']['vbox']['volume']['txt'].htm(parseInt(vol*100));var bgH=bg.getHeight();if(bgH){var ppMarginTop=bgH-vol*bgH;pp.css({'margin-top':ppMarginTop+'px'});var sliderTop=bg.offset()['top']-box.offset()['top']+ppMarginTop-slider.getHeight()*0.5;slider.css({'top':sliderTop+'px'})}}},changeLoad=function(){if(video){var len=video.buffered.length;if(len>0){var bufferEnd=video.buffered.end(len-1);if(loadTime=1000){last+=offset;appendFps(fps);fps=0}requestAnimationFrame(step)};var appendFps=function(fps){if(fps!=CT.fps){CT.fps=fps;replaceInformation('fps',fps);eventTarget('fps',fps)}};if(isUndefined(CT.fps)){CT.fps=0}step()},getElement=function(content){var ele=$(content);if(isUndefined(ele))return;if(valType(ele)=='htmlarray'){ele=ele[0]}if(isUndefined(ele.captureParentNode)){ele.captureParentNode=ele.parentNode;ele.prevElement=ele.prev();ele.nextElement=ele.next()}return ele},$=function(obj,eL){var parent=null;if(document){parent=document}if(!isUndefined(eL)){parent=eL}var res=[];if(obj){if(valType(obj)=='htmlobject'||valType(obj)=='object'){res=obj;if(!isUndefined(res.ckplayer)){return res}}else if(valType(obj)=='string'&&obj!=''){switch(obj.substr(0,1)){case'.':obj=obj.substr(1,obj.length);if(parent.getElementsByClassName){res=parent.getElementsByClassName(obj);if(!res.length){return null}}else if(!parent&&document.getElementsByClassName){res=document.getElementsByClassName(obj);if(!res.length){return null}}else{var reg=new RegExp(' '+obj+' ','i');var ele=null;if(parent.getElementsByTagName){ele=parent.getElementsByTagName('*')}else{ele=document.getElementsByTagName('*')}for(var i=0;i1){b=arr[1].substr(0,1).toLocaleUpperCase()+arr[1].substr(1,arr[1].length-1)}if(arr.length>2){b=arr[2].substr(0,1).toLocaleUpperCase()+arr[2].substr(1,arr[2].length-1)}return a+b+c}return str};if(isUndefined(value)){if(!isUndefined(key)&&valType(key)=='string'){if(this.currentStyle){return this.currentStyle[key]}else{return document.defaultView.getComputedStyle(this,null)[key]}}if(isUndefined(key)){if(this.currentStyle){return this.currentStyle}else{return document.defaultView.getComputedStyle(this,null)}}}if(valType(key)!='object'){var newKey=keyNew(key);if(this.length>1){for(var i=0;i=m+1){return this[m]}return null}return null};for(var i=0;imaxZ){maxZ=parseInt(temp)}}return maxZ}function getWindowSize(){return{width:window.innerWidth,height:window.innerHeight}}function standardization(o,n){var h={};var k;for(k in o){h[k]=o[k]}for(k in n){if(k in h){h[k]=n[k]}}return h}function mergeObj(o,n){var h={};var k;for(k in o){h[k]=o[k]}for(k in n){if(k in h){switch(valType(h[k])){case'object':if(valType(n[k])=='object'){h[k]=mergeObj(h[k],n[k])}break;default:if(valType(h[k])==valType(n[k])){h[k]=n[k]}break}}}return h}function valType(val){if(typeof val==='undefined')return'undefined';var str=Object.prototype.toString.call(val).split(' ')[1].replace(']','').toLowerCase();if(str.substr(0,4)=='html'&&(str.substr(-7)=='element'||str.substr(-8)=='document'||str=='window')){str='htmlobject'}if(str=='htmlcollection'||str=='nodelist'){str='htmlarray'}return str}function isUndefined(val){try{return valType(val)==='undefined'||val===undefined||val===null||(valType(val)==='number'&&isNaN(val))}catch(event){return true}return false}function prev(ele){var e=ele.previousSibling;if(e==null){return null}if(e.nodeType==3){var t=prev(e);if(t&&t.nodeType==1){return t}}else{if(e.nodeType==1){return e}else{return false}}}function next(ele){var e=ele.nextSibling;if(e==null){return null}if(e.nodeType==3){var t=next(e);if(t&&t.nodeType==1){return t}}else{if(e.nodeType==1){return e}else{return false}}}function addListener(ele,e,f,t){if(isUndefined(t)){t=false}if(ele.addEventListener){try{ele.addEventListener(e,f,t)}catch(event){}}else if(ele.attachEvent){try{ele.attachEvent('on'+e,f)}catch(event){}}else{ele['on'+e]=f}if(isUndefined(ele.listenerList)){ele.listenerList=[]}ele.listenerList.push([e,f]);return ele};function removeListener(ele,e,f,t){if(isUndefined(t)){t=false}if(ele.removeEventListener){try{ele.removeEventListener(e,f,t)}catch(e){}}else if(ele.detachEvent){try{ele.detachEvent('on'+e,f)}catch(e){}}else{ele['on'+e]=null}if(!isUndefined(ele.listenerList)){var temp=[];for(var i=0;i>0},W:function(){var a=f.z(),b=364+f.L()-a;var nd2,nd=(new Date(jsdate.getFullYear()+'/1/1').getDay()||7)-1;if(b<=2&&((jsdate.getDay()||7)-1)<=2-b){return 1}else{if(a<=2&&nd>=4&&a>=(6-nd)){nd2=new Date(jsdate.getFullYear()-1+'/12/31');return date('W',Math.round(nd2.getTime()/1000))}else{return(1+(nd<=3?((a+nd)/7):(a-(7-nd))/7)>>0)}}},F:function(){return txt_months[f.n()]},m:function(){return pad(f.n(),2)},M:function(){return f.F().substr(0,3)},n:function(){return jsdate.getMonth()+1},t:function(){var n;if((n=jsdate.getMonth()+1)==2){return 28+f.L()}else{if(n&1&&n<8||!(n&1)&&n>7){return 31}else{return 30}}},L:function(){var y=f.Y();return(!(y&3)&&(y%1e2||!(y%4e2)))?1:0},Y:function(){return jsdate.getFullYear()},y:function(){return(jsdate.getFullYear()+'').slice(2)},a:function(){return jsdate.getHours()>11?'pm':'am'},A:function(){return f.a().toUpperCase()},B:function(){var off=(jsdate.getTimezoneOffset()+60)*60;var theSeconds=(jsdate.getHours()*3600)+(jsdate.getMinutes()*60)+jsdate.getSeconds()+off;var beat=Math.floor(theSeconds/86.4);if(beat>1000)beat-=1000;if(beat<0)beat+=1000;if((String(beat)).length==1)beat='00'+beat;if((String(beat)).length==2)beat='0'+beat;return beat},g:function(){return jsdate.getHours()%12||12},G:function(){return jsdate.getHours()},h:function(){return pad(f.g(),2)},H:function(){return pad(jsdate.getHours(),2)},i:function(){return pad(jsdate.getMinutes(),2)},s:function(){return pad(jsdate.getSeconds(),2)},O:function(){var t=pad(Math.abs(jsdate.getTimezoneOffset()/60*100),4);if(jsdate.getTimezoneOffset()>0)t='-'+t;else t='+'+t;return t},P:function(){var O=f.O();return(O.substr(0,3)+':'+O.substr(3,2))},c:function(){return f.Y()+'-'+f.m()+'-'+f.d()+'T'+f.h()+':'+f.i()+':'+f.s()+f.P()},U:function(){return Math.round(jsdate.getTime()/1000)}};return format.replace(/([a-zA-Z])/g,function(t,s){var ret='';if(t!=s){ret=s}else if(f[s]){ret=f[s]()}else{ret=s}return ret})}function dataURLtoBlob(dataurl){var arr=dataurl.split(','),mime=arr[0].match(/:(.*?);/)[1],bstr=atob(arr[1]),n=bstr.length,u8arr=new Uint8Array(n);while(n--){u8arr[n]=bstr.charCodeAt(n)}return new Blob([u8arr],{type:mime})}function decodeURIString(obj){for(var k in obj){if(valType(obj[k])=='string'&&obj[k]){try{obj[k]=decodeURI(obj[k])}catch(event){}}if(valType(obj[k])=='object'){obj[k]=decodeURIString(obj[k])}}return obj}function getApp(){var u=navigator.userAgent.toLowerCase();if(u.indexOf('iphone')>-1){return'iphone'}}function cookie(name,value,domain,path){if(isUndefined(domain)){domain=''}if(isUndefined(path)){path='/'}var ckStr=';domain='+domain+';path='+path;if(location.protocol=='https'){ckStr+=';SameSite=None;Secure=true'}var set=function(name,value){var time=360*24*60*60*1000;var exp=new Date();exp.setTime(exp.getTime()+time);try{document.cookie=name+'='+escape(value)+';expires='+exp.toGMTString()+ckStr}catch(event){console.error(event)}},get=function(name){var arr,reg=new RegExp('(^| )'+name+'=([^;]*)(;|$)');if(arr=document.cookie.match(reg)){return unescape(arr[2])}else{return null}},del=function(name){var exp=new Date();exp.setTime(exp.getTime()-1);var cval=get(name);if(cval!=null){document.cookie=name+'='+cval+';expires='+exp.toGMTString()+ckStr}};if(!isUndefined(name)&&!isUndefined(value)){if(value=='delete'){del(name);return null}else{set(name,value);return get(name)}}else if(!isUndefined(name)&&isUndefined(value)){return get(name)}else if(!isUndefined(name)){}}function arrayToString(arr){var str='';if(!isUndefined(arr)){for(var i=0;i0){str+=','}for(var y=0;y0){str+=';'}if(valType(temp[y])=='number'){str+=parseInt(temp[y]*100)}else{str+=temp[y]}}}}return str}function stringToArray(str){var newArr=[];if(!isUndefined(str)){var arr=str.split(',');for(var i=0;i0?false:true;if(!isUndefined(CT)&&CT!=null){if(valType(CT)=='htmlarray'){CT=CT.eq(0)}}else{return null}calculationFps();existenceObj=valType(vars['video'])=='string'&&((vars['video'].substr(0,1)=='.'&&vars['video'].indexOf('/')==-1)||vars['video'].substr(0,1)=='#');if(existenceObj){CK=CT.find('.ckplayer-ckplayer')?CT.find('.ckplayer-ckplayer').eq(0):null;if(CK){CM=CK.find('.ck-main')?CK.find('.ck-main').eq(0):null}if(CM){CV=CM.find('.ck-video')?CM.find('.ck-video').eq(0):null}}if(!CK||!CM||!CV){CT.htm('');CK=createlDiv('ckplayer-ckplayer');CT.append(CK);CM=createlDiv('ck-main');CK.append(CM);CV=createlDiv('ck-video');CM.append(CV)}if(video){video.remove();video=null}if(existenceObj){video=$(vars['video'])?$(vars['video']).eq(0):null}if(!video){video=createlVideo();video.attr('width','100%').attr('height','100%');CV.append(video)}video.volume=vars['volume'];if(vars['autoplay']){player.volume(0);player.muted();recoveryVolume=true;video.attr('autoplay','autoplay');paused=false}else{video.attr('preload','metadata')}CT.loop=vars['loop'];if(CT.loop){video.attr('loop','loop')}if(vars['controls']){video.controls=true}else{video.controls=false}try{if(!existenceObj){video.attr('controlslist','nodownload');video.attr('x-webkit-airplay','true');video.attr('x5-video-orientation','portraint');video.attr('playsinline','true');video.attr('webkit-playsinline','true');video.attr('x5-playsinline','true')}if(vars['crossOrigin']){video.useCORS=true;video.crossOrigin=vars['crossOrigin']}}catch(event){}CT.smallWindows=true;CT.webFull=false;CT.theatre=false;loadFace();if(vars['rotate']>0){player.rotate(vars['rotate'])}if(vars['zoom']>0){player.zoom(vars['zoom'])}if(isUndefined(video.canPlayType)){CT.error={code:5,message:language['error']['supportVideoError']};eventTarget('error',CT.error);showError();return player}addAllListener();if(!isUndefined(vars['loaded'])){if(valType(vars['loaded'])=='function'){try{vars['loaded'](player)}catch(event){}}else if(valType(vars['loaded'])=='string'){try{eval(vars['loaded']+'(player)')}catch(event){}}}if(!existenceObj){changeVideo(vars['video'])}else{changeVideo(video.attr('src'))}return player},changeVideo=function(vstr){var i=0;if(video.attr('src')||video.htm()){player.pause()}if(video.attr('src')&&!existenceObj){video.attr('src','');video.removeAttr('src')}if(!isUndefined(video.textTracks)&&video.textTracks.length>0){for(i=video.find('track').length-1;i>-1;i--){video.find('track').eq(i).remove()}}if(!existenceObj){video.htm('')}if(!isUndefined(vars['ad'])){ad=vars['ad']}var source='';if(valType(vstr)=='string'){if(vstr.substr(0,8)=='website:'||vstr.substr(0,4)=='url:'){var ajaxUrl='';if(vstr.substr(0,8)=='website:'){ajaxUrl=vstr.substring(8)}if(vstr.substr(0,4)=='url:'){ajaxUrl=vstr.substring(4)}ajax({url:ajaxUrl,success:function(data){if(data!=null){vars=standardization(varsTemp,data);changeVideo(vars['video'])}else{CT.error={code:8,message:language['error']['ajax']};eventTarget('error',CT.error);showError()}}});return}else{if(vars['plug']&&!canPlay(vstr)){plugPlayer(vstr)}else{if(!existenceObj){video.attr('src',vstr)}}loadTrack()}}else if(valType(vstr)=='array'){for(i=0;i1){source+=''}}}}if(source){video.htm(source)}loadTrack()}else if(valType(vstr)=='object'){if(vars['plug']){plugPlayer(vstr)}else{CT.error={code:10,message:language['error']['emptied']};eventTarget('error',CT.error);showError()}loadTrack()}if(!isUndefined(video.find('source'))&&video.find('source').length>0){video.find('source').eq(video.find('source').length-1).addListener('error',videoHandler.error)}checkBar();loadLogo();if(isChangeDef){checkDefinition()}if(vars['cookie']){if(valType(vars['cookie'])=='array'&&vars['cookie'].length>=2){if(vars['cookie'][0]&&valType(vars['cookie'][0])=='string'){cookieName=vars['cookie'][0]}if(vars['cookie'][1]&&valType(vars['cookie'][1])=='number'){cookieTime=vars['cookie'][1]}}if(valType(vars['cookie'])=='object'&&!isUndefined(vars['cookie']['name'])){cookieName=vars['cookie']['name'];if(!isUndefined(vars['cookie']['hour'])&&valType(vars['cookie']['hour'])=='number'){cookieTime=vars['cookie']['hour']}}if(valType(vars['cookie'])=='string'){cookieName=vars['cookie']}if(cookieName){cookieName=cookieName.replace(/[ ]*,[ ]*|[ ]+/g,'').replace(/[ ]*;[ ]*|[ ]+/g,'')}}if(!isUndefined(vars['seek'])&&!seekTime){if(valType(vars['seek'])=='number'&&vars['seek']>0){seekTime=vars['seek']}if(valType(vars['seek'])=='string'&&vars['seek']=='cookie'&&cookieName){var cke=player.cookie(cookieName);if(cke){seekTime=cke['time']}}}},plugPlayer=function(url){switch(vars['plug']){case'hls.js':hlsPlayer(url);break;case'flv.js':flvPlayer(url);break;case'mpegts.js':mpegtsPlayer(url);break;case'dash.js':dashPlayer(url);break;default:if(valType(vars['plug'])=='function'){vars['plug'](video,url)}else{CT.error={code:10,message:language['error']['emptied']};eventTarget('error',CT.error);showError()}break}},hlsPlayer=function(url){var path=getPath('hls.js')+'hls.min.js';loadJs(path,function(){if(!isUndefined(Hls)&&Hls.isSupported()){hls=new Hls();hls.loadSource(url);hls.attachMedia(video);hls.on(Hls.Events.ERROR,function(event,data){var code=9;var message=language['error']['loadingFailed'];var fatal=data.fatal;if(!isUndefined(data.response)){if(!isUndefined(data.response.code)){code=data.response.code}if(!isUndefined(data.response.text)&&data.response.text){message=data.response.text}else{if(!isUndefined(event)){message=event}}}CT.error={code:code,message:message};eventTarget('error',CT.error);if(fatal){showError()}})}else if(canPlay(url)){video.attr('src',url)}})},flvPlayer=function(url){var path=getPath('flv.js')+'flv.min.js';loadJs(path,function(){if(typeof(flvjs)!='undefined'&&!isUndefined(flvjs)&&flvjs.isSupported()){var config={type:'flv',url:url};if(valType(url)=='object'){config=url}if(vars['live']){config['isLive']=true}if(pugPlayer){pugPlayer.pause();pugPlayer.unload();pugPlayer.detachMediaElement();pugPlayer.destroy();pugPlayer=null}pugPlayer=flvjs.createPlayer(config);pugPlayer.attachMediaElement(video);pugPlayer.load();pugPlayer.on(flvjs.Events.METADATA_ARRIVED,function(res){videoHandler.loadedMetaData()});pugPlayer.on(flvjs.Events.ERROR,function(errorType,errorDetail,errorInfo){CT.error={code:errorInfo['code'],message:errorInfo['msg']};eventTarget('error',CT.error);showError()})}})},mpegtsPlayer=function(url){var path=getPath('mpegts.js')+'mpegts.js';loadJs(path,function(){if(typeof(mpegts)!='undefined'&&!isUndefined(mpegts)&&mpegts.getFeatureList().mseLivePlayback){var config={type:'mse',url:url};if(valType(url)=='object'){config=url}if(vars['live']){config['isLive']=true}if(pugPlayer){pugPlayer.pause();pugPlayer.unload();pugPlayer.detachMediaElement();pugPlayer.destroy();pugPlayer=null}pugPlayer=mpegts.createPlayer(config);pugPlayer.attachMediaElement(video);pugPlayer.load();pugPlayer.on(mpegts.Events.METADATA_ARRIVED,function(res){videoHandler.loadedMetaData()});pugPlayer.on(mpegts.Events.ERROR,function(errorType,errorDetail,errorInfo){CT.error={code:errorInfo['code'],message:errorInfo['msg']};eventTarget('error',CT.error);showError()})}})},canPlay=function(vStr,num){var vTypeArr=[{vidType:'video/ogg',codType:'theora, vorbis'},{vidType:'video/mp4',codType:'avc1.4D401E, mp4a.40.2'},{vidType:'video/mp4',codType:'avc1'},{vidType:'video/mp4',codType:'hevc'},{vidType:'video/webm',codType:'vp8.0, vorbis'},{vidType:'video/webm',codType:'vp9'},{vidType:'',codType:'application/x-mpegURL'},{vidType:'',codType:'application/vnd.apple.mpegurl'}];var vType={ogg:vTypeArr[0],mp4:[vTypeArr[1],vTypeArr[2],vTypeArr[3]],webm:[vTypeArr[4],vTypeArr[5]],m3u8:[vTypeArr[6],vTypeArr[7]]};var arr=[];var k='';var supportType=function(obj){var vType=obj['vidType'];var str='';if(vType){str=vType+'; codecs="'+obj['codType']+'"'}else{str=obj['codType']}var sup=video.canPlayType(str);if(sup==''){sup='no'}return sup};var getExtension=function(filepath){return filepath.replace(/.+\./,'')};if(isUndefined(num)){if(valType(vStr)=='string'){if(vars['type']){for(k in vTypeArr){if(vTypeArr[k]['vidType']==vars['type']){arr.push(vTypeArr[k])}}}else{if(getExtension(vStr)&&getExtension(vStr)in vType){var temp=vType[getExtension(vStr)];if(valType(temp)=='array'){for(var i=0;i0){for(var i=0;icTime&&arr[i][0]!=cookieName&&y<19){tempArr.push(arr[i]);y++}}arr=tempArr}if(arr.length>0){cookie(ckplayerCookie,'delete',vars['domain'],vars['cookiePath']);cookie(ckplayerCookie,arrayToString(arr),vars['domain'],vars['cookiePath'])}cookieArray=arr},loadTrack=function(){if(isUndefined(video.textTracks)){return}var i=0;if(!isUndefined(vars['track'])&&valType(vars['track'])=='array'&&!video.find('track')){var track='';var arr=vars['track'];C['bar']['track'].show();for(i=0;i'}if(video){var html=video.htm()+track;video.htm(html)}if(video.find('track')&&!loadedTrack){loadedTrack=true;checkTrack()}}},loadedMetaData=function(){eventTarget('loadedMetaData',{width:CK.getWidth(),height:CK.getHeight(),videoWidth:CT.videoWidth,videoHeight:CT.videoHeight,duration:duration,volume:CT.volume});eventTarget('duration',duration);if('error'in C){C['error'].hide()}replaceInformation('videoWidth',CT.videoWidth);replaceInformation('videoHeight',CT.videoHeight);replaceInformation('volume',parseInt(CT.volume*100));replaceInformation('duration',parseInt(duration));documentHidden(function(state){if(vars['documentFocusPause']){if(state=='show'){if(!focusPause&&paused){player.play()}}else{focusPause=paused;player.pause()}}})};var videoHandler={loadStart:function(){if(!vars['controls']&&app!='iphone'){C['loading'].show()}C['centerPlay'].hide();eventTarget('loadstart')},canPlay:function(){C['loading'].hide();eventTarget('canplay')},loadedData:function(){eventTarget('loadeddata')},loadedMetaData:function(){duration=this.duration;if(!isUndefined(this.duration)&&vars['duration']){duration=vars['duration']}if(!vars['live']){C['time'].htm(formatSeconds(this.currentTime)+'/'+formatSeconds(duration));C['tempTime'].htm(formatSeconds(this.currentTime)+'/'+formatSeconds(duration))}C['loading'].hide();if(vars['poster']){video.attr('poster',vars['poster'])}if(!vars['autoplay']&&!vars['controls']){C['centerPlay'].show();C['buffer'].hide()}CT.duration=duration;CT.videoWidth=this.videoWidth;CT.videoHeight=this.videoHeight;CT.volume=this.volume;if(CT.videoWidth||CT.videoHeight||duration){loadedMetaData()}var len=0;if(!isUndefined(this.buffered)){len=this.buffered.length}if(len>0){changeLoad()}if(!vars['live']){changePreview(vars['preview'])}else{changePreview()}if(!isUndefined(vars['prompt'])&&valType(vars['prompt'])=='array'&&!vars['live']){changePrompt()}else{deletePrompt()}if(isChangeDef){checkDefinition();isChangeDef=false}pSliderMouseDown=false;loadedmetadataNum++;if(!isUndefined(ad)&&!isUndefined(ad['frontPlay'])&&ad['frontPlay']&&loadedmetadataNum>1){player.play();calculationAdFrontTime(duration)}if(!isUndefined(ad)&&!isUndefined(ad['frontPlay'])&&!ad['frontPlay']){player.volume(vars['volume']);player.play()}if(!vars['autoplay']&&loadMeta){loadMeta=false;player.pause();setTimeout(player.pause,300)}},timeUpDate:function(){if(!waited){waited=true;C['buffer'].hide();eventTarget('buffer','end')}var len=this.buffered.length;if(len>0){changeLoad()}if(!duration&&this.duration){duration=this.duration;CT.duration=duration;CT.videoWidth=this.videoWidth;CT.videoHeight=this.videoHeight;if(CT.videoWidth||CT.videoHeight||duration){loadedMetaData()}}oldTime=playTime;playTime=this.currentTime;if(maxSeeTime1){calculationAdFrontTime(duration-playTime)}if(!isUndefined(C['error'])&&C['error'].css('display')=='block'){C['error'].hide()}if(cookieName){changeCookie(playTime)}replaceInformation('audioDecodedByteCount',this.webkitAudioDecodedByteCount||this.audioDecodedByteCount||0);replaceInformation('videoDecodedByteCount',this.webkitVideoDecodedByteCount||this.videoDecodedByteCount||0)},ended:function(){if(!isUndefined(ad)&&!isUndefined(ad['frontPlay'])&&ad['frontPlay']){adFrontEnded()}else{C['bar']['playAndPause']['pause'].hide();C['bar']['playAndPause']['play'].hide();C['bar']['playAndPause']['refresh'].show();eventTarget('ended');showEnded();message()}},error:function(event){if(!isUndefined(event.type)){var errorInfo=this.error;var errorBak=function(){var code=12;var msg=language['error']['loadingFailed'];if(!isUndefined(errorInfo)){if(!isUndefined(errorInfo.code)){code=errorInfo.code}if(!isUndefined(errorInfo.message)){msg=errorInfo.message}CT.error={code:code,message:msg};showError()}else{CT.error={code:code,message:msg};if(event.target.attr('src')){showError()}}eventTarget('error',CT.error)};if(event.type=='error'){try{if(video.currentSrc){ajax({url:video.currentSrc,error:function(info){if(info&&valType(info)=='object'&&'code'in info&&info['code']){CT.error=info;eventTarget('error',CT.error);showError()}else{errorBak()}},success:function(data){if(!data){errorBak()}}})}else{errorBak()}}catch(event){errorBak()}}}},stalled:function(){eventTarget('stalled');CT.error={code:13,message:'load:stalled'};eventTarget('error',CT.error)},suspend:function(){eventTarget('suspend')},emptied:function(){eventTarget('emptied');CT.error={code:7,message:language['error']['emptied']};eventTarget('error',CT.error)},seeked:function(){if(paused){player.play()}pSliderMouseDown=false;eventTarget('seek',{time:this.currentTime,state:'seeked'});eventTarget('seeked')},seeking:function(){if(paused){player.play()}var seekingTime=this.currentTime;if(firstSeekTime==-1){firstSeekTime=seekingTime}switch(vars['timeScheduleAdjust']){case 0:if(oldTime!=seekingTime){waitingMessage=false;player.seek(oldTime);message(language['timeScheduleAdjust']['prohibit']);return}break;case 2:if(seekingTimeoldTime){waitingMessage=false;player.seek(oldTime);message(language['timeScheduleAdjust']['prohibitForward']);return}break;case 4:if(seekingTimemaxSeeTime){waitingMessage=false;player.seek(maxSeeTime);message(language['timeScheduleAdjust']['prohibitForwardNotViewed']);return}break}eventTarget('seek',{time:seekingTime,state:'seeking'});eventTarget('seeking');if(!vars['live']){C['time'].htm(formatSeconds(seekingTime)+'/'+formatSeconds(duration));C['tempTime'].htm(formatSeconds(seekingTime)+'/'+formatSeconds(duration))}},waiting:function(){waited=false;eventTarget('buffer','start');C['centerPlay'].hide();if(!vars['controls']){C['buffer'].show()}if(!waitingMessage){waitingMessage=true}else{message(language['waiting'])}},play:function(){paused=false;C['bar']['playAndPause']['play'].hide();C['bar']['playAndPause']['pause'].show();C['bar']['playAndPause']['refresh'].hide();C['centerPlay'].hide();if(playType=='button'){C['bar']['pbox'].removeClass('ck-bar-progress-out')}else{C['bar']['pbox'].addClass('ck-bar-progress-out')}if(recoveryVolume){recoveryVolume=false;player.exitMuted()}hideBar();closePauseAd();playType='';if(!isUndefined(C['ended'])){player.closeLayer(C['ended'])}if('error'in C){C['error'].hide()}eventTarget('play');if(!isUndefined(ad)){if(!isUndefined(ad['front'])){if(isUndefined(ad['frontPlay'])){ad['frontPlayI']=0;ad['frontPlay']=true;player.pause();adFrontPlay();return}}}if(seekTime&&(isUndefined(vars['live'])||(!isUndefined(vars['live'])&&valType(vars['live'])=='boolean'&&!vars['live']))&&seekTime0&&mutedState){this.muted=false}if(mutedState!=this.muted){mutedState=this.muted;changeMuted(this.muted);CT.muted=this.muted;eventTarget('muted',CT.muted)}CT.volume=this.volume;eventTarget('volume',this.volume);if(!isUndefined(C['bar']['vbox'])){var vol=parseInt(this.volume*100);C['bar']['vbox']['volume']['txt'].htm(vol);if(!C['bar']['vbox']['mouseDown']){changeVolumeSlider(this.muted?0:this.volume)}if(!this.muted){message(language['volume']+vol+'%')}}replaceInformation('volume',parseInt(this.volume*100))},resize:function(){var fullState=document.fullScreen||document.mozFullScreen||document.webkitIsFullScreen||document.msFullscreenElement;if(fullState){C['bar']['fullAndExit']['exitFull'].show();C['bar']['fullAndExit']['full'].hide();C['ad']['bottom']['fullAndExit']['exitFull'].show();C['ad']['bottom']['fullAndExit']['full'].hide();if(!CM.hasClass('ck-main-full')){CM.addClass('ck-main-full')}message(language['full']);C['bar']['webFullAndExit'].hide();C['bar']['theatreAndExit'].hide();if(!isUndefined(C['menu'])){CM.append(C['menu'])}}else{fullState=false;C['bar']['fullAndExit']['full'].show();C['bar']['fullAndExit']['exitFull'].hide();C['ad']['bottom']['fullAndExit']['full'].show();C['ad']['bottom']['fullAndExit']['exitFull'].hide();if(CM.hasClass('ck-main-full')){CM.removeClass('ck-main-full')}if(!isUndefined(vars['webFull'])&&vars['webFull']){C['bar']['webFullAndExit'].show()}if(!isUndefined(vars['theatre'])&&!CT.webFull){C['bar']['theatreAndExit'].show()}if(!isUndefined(C['menu'])){$('body').append(C['menu'])}if(CV.css('width')!=CM.css('width')){player.zoom(100)}}if(CT.full!=fullState){CT.full=fullState;eventTarget('full',fullState)}checkVideoRotate();changeProgress(player.time())},keydown:function(event){event=window.event||event;var keycode=event.keyCode||event.which;var v=player.volume();var pre=function(){if(event.preventDefault){event.preventDefault()}else{event.returnValue=false}};switch(keycode){case 32:pre();player.playOrPause();break;case 37:player.fastBack();break;case 39:player.fastNext();break;case 38:if(valType(vars['keyVolume'])=='number'&&(vars['keyVolume']==1||(vars['keyVolume']==2&&CT.full))){pre();player.volume(v+.1<1?v+=.1:1)}break;case 40:if(valType(vars['keyVolume'])=='number'&&(vars['keyVolume']==1||(vars['keyVolume']==2&&CT.full))){pre();player.volume(v-.1>0?v-=.1:0)}break;default:break}},mouseWheel:function(event){if(valType(vars['mouseWheelVolume'])=='number'&&(vars['mouseWheelVolume']==1||(vars['mouseWheelVolume']==2&&CT.full))){event=window.event||event;var v=player.volume();if(event.preventDefault){event.preventDefault()}else{event.returnValue=false}if(event.wheelDelta){if(event.wheelDelta>0){player.volume(v+.1<1?v+=.1:1)}if(event.wheelDelta<0){player.volume(v-.1>0?v-=.1:0)}}else if(event.detail){if(event.detail>0){player.volume(v-.1>0?v-=.1:0)}if(event.detail<0){player.volume(v+.1<1?v+=.1:1)}}}}};var adFrontPlay=function(){if(ad['frontPlayI']==0){allBarHide(false);C['ad'].show();ad['front']['video']=false;if(!isUndefined(ad['front']['closeTime'])){if(ad['front']['closeTime']>0){C['ad']['top']['closeTime'].show();adFrontCloseTime()}else{C['ad']['top']['closeAd'].show()}}}if(!isUndefined(ad['front']['node'])&&ad['front']['node']!=null){CM.append(ad['front']['node']);player.closeLayer(ad['front']['node']);ad['front']['node']=null}C['ad']['picture'].htm('');C['ad']['picture'].hide();C['ad']['link'].hide();if(!isUndefined(ad['front']['list'][ad['frontPlayI']])){var adv=ad['front']['list'][ad['frontPlayI']];frontAdPlay=true;eventTarget('frontAd',adv);if(adv['type']=='picture'){adPicturePlay(adv)}else if(adv['type']=='node'){adNode(adv)}else{C['ad']['link'].attr('data-link',adv['link']);adVideoPlay(adv['file'])}if(!isUndefined(adv['link'])){C['ad']['bottom']['details'].show();C['ad']['bottom']['details'].htm(''+language['details']+'')}else{C['ad']['bottom']['details'].hide()}}},adFrontCloseTime=function(){if(!isUndefined(ad['front']['closeSetTime'])){clearTimeout(ad['front']['closeSetTime']);ad['front']['closeSetTime']=null}C['ad']['top']['closeTime'].htmReplace('{seconds}',ad['front']['closeTime'],language['closeTime']);ad['front']['closeTime']--;if(ad['front']['closeTime']>0){ad['front']['closeSetTime']=setTimeout(adFrontCloseTime,1000)}else{C['ad']['top']['closeAd'].show();C['ad']['top']['closeTime'].hide()}},calculationAdFrontTime=function(t){if(!isUndefined(t)){ad['front']['list'][ad['frontPlayI']]['time']=t}ad['front']['countDown']=0;for(var i=ad['frontPlayI'];i0){adv['time']--;ad['front']['countDown']--;C['ad']['top']['countDown'].htm(ad['front']['countDown']+language['second']);adFrontSetTime=setTimeout(adFrontCountDown,1000)}else{adFrontEnded()}},adFrontEnded=function(){if(ad['frontPlayI']0||h>0){if(adv['link']){var a=createlA('',adv['link']);a.append(this);C['ad']['picture'].append(a)}else{C['ad']['picture'].append(this)}img.unbind();img.click(function(){eventTarget('frontAdClick',adv)})}else{if(imgloadNum<10){imgloadNum++;imgLoadHandler()}}})};imgLoadHandler();calculationAdFrontTime();adFrontCountDown();C['ad']['bottom']['mutedAndExit'].hide()},adNode=function(adv){if(isUndefined(adv['content']))return;ad['front']['node']=player.layer(adv);ad['front']['node'].css({'z-index':1});C['ad'].append(ad['front']['node']);ad['front']['node'].unbind();ad['front']['node'].click(function(){eventTarget('frontAdClick',adv)});calculationAdFrontTime();adFrontCountDown();C['ad']['bottom']['mutedAndExit'].hide()},frontVideoClickHandler=function(){var url=C['ad']['link'].attr('data-link');window.open(url,'_blank')},closeFrontAd=function(){if(!isUndefined(ad)&&!isUndefined(ad['front'])&&!isUndefined(ad['front']['closeButtonClick'])){if(valType(ad['front']['closeButtonClick'])=='function'){try{ad['front']['closeButtonClick']()}catch(event){console.error(event)}}else if(valType(ad['front']['closeButtonClick'])=='string'){try{eval(ad['front']['closeButtonClick']+'()')}catch(event){console.error(event)}}}else{player.closeFrontAd()}},adPausePlay=function(){closePauseAd();if(!isUndefined(ad)&&!isUndefined(ad['pause'])&&!isUndefined(ad['pause']['list'])&&ad['pause']['list'].length-1>=ad['pausePlayI']){var adv=ad['pause']['list'][ad['pausePlayI']];if(!isUndefined(ad['pause']['close'])&&ad['pause']['close']){ad['pauseClose']=createlButton('ck-pause-close');ad['pauseClose'].click(function(){C['centerPlay'].show();C['buffer'].hide();closePauseAd()})}if(!isUndefined(adv['file'])){var img=null;var imgloadNum=0;var imgLoadHandler=function(){img=createlImg(adv['file']);C['adPause'].show();C['adPause'].htm('');C['adPause'].append(img);img.addListener('load',function(){var w=this.getWidth(),h=this.getHeight();if(w>0||h>0){C['adPause'].htm('');if(adv['link']){var a=createlA('',adv['link']);a.append(this);C['adPause'].append(a)}else{C['adPause'].append(this)}C['adPause'].css({'width':w+'px','height':h+'px'});if(ad['pauseClose']){C['adPause'].append(ad['pauseClose'])}img.click(function(){eventTarget('pauseAdClick',adv)})}else{if(imgloadNum<10){imgloadNum++;imgLoadHandler()}}})};imgLoadHandler()}else if(!isUndefined(adv['content'])){ad['pause']['node']=player.layer(adv);if(ad['pauseClose']){ad['pause']['node'].append(ad['pauseClose'])}ad['pause']['node'].click(function(){eventTarget('pauseAdClick',adv)})}eventTarget('pauseAd',adv);if(!isUndefined(adv['time'])&&adv['time']>0){adPauseSetTime=setTimeout(function(){ad['pausePlayI']++;if(ad['pausePlayI']>ad['pause']['list'].length-1){ad['pausePlayI']=0}adPausePlay()},adv['time']*1000)}}},closePauseAd=function(){if(adPauseSetTime){clearTimeout(adPauseSetTime);adPauseSetTime=null}C['adPause'].hide();if(!isUndefined(ad)&&!isUndefined(ad['pauseClose'])&&ad['pauseClose']!=null){ad['pauseClose'].remove();ad['pauseClose']=null}if(!isUndefined(ad)&&!isUndefined(ad['pause'])&&!isUndefined(ad['pause']['node'])&&ad['pause']['node']){ad['pause']['node'].unbind();player.closeLayer(ad['pause']['node']);eventTarget('pauseAdClose')}};var player={width:function(value){if(!isUndefined(value)){if(valType(value)=='number'){value+='px'}CT.css({'width':value});checkVideoRotate()}return CK.getWidth()},height:function(value){if(!isUndefined(value)){if(valType(value)=='number'){value+='px'}CT.css({'height':value});checkVideoRotate()}return CK.getHeight()},videoWidth:function(){if(video){return video.videoWidth}return null},videoHeight:function(){if(video){return video.videoHeight}return null},zoom:function(fn){if(!isUndefined(fn)){if(valType(fn)=='function'){newEvent.addEventListener('zoom',fn)}if(valType(fn)=='number'){var arr=[C['topBar']['zoomEle']['zoom50'],C['topBar']['zoomEle']['zoom75'],C['topBar']['zoomEle']['zoom100']];for(var i=0;ifn&&fn>0){rot=arr[fn]}else{if(arr.indexOf(fn)>-1){rot=fn}}if(rot!=nowRotate){eventTarget('rotate',rot);nowRotate=rot;checkVideoRotate()}}}},vars:function(obj,val){if(isUndefined(obj)){return}if(valType(obj)=='string'&&!isUndefined(val)){var temp={};temp[obj]=val;obj=temp}var isChange=false;for(var k in obj){if(k in vars&&obj[k]!=vars[k]){isChange=true;break}}if(isChange){vars=standardization(vars,obj)}if(!isUndefined(obj['video'])){isChangeDef=true;changeVideo(vars['video'])}if(!isUndefined(obj['title'])){C['topBar']['titleEle'].htm(obj['title'])}},loadstart:function(fn){if(!isUndefined(fn)&&valType(fn)=='function'){newEvent.addEventListener('loadstart',fn)}},loadeddata:function(fn){if(!isUndefined(fn)&&valType(fn)=='function'){newEvent.addEventListener('loadeddata',fn)}},loadedMetaData:function(fn){if(!isUndefined(fn)&&valType(fn)=='function'){newEvent.addEventListener('loadedMetaData',fn)}},canplay:function(fn){if(!isUndefined(fn)&&valType(fn)=='function'){newEvent.addEventListener('canplay',fn)}},play:function(fn){if(valType(fn)=='object'){if(fn['target']==C['bar']['playAndPause']['play']||fn['target']==C['bar']['playAndPause']['refresh']){playType='button'}}if(!isUndefined(fn)&&valType(fn)=='function'){newEvent.addEventListener('play',fn)}else{if(loadedmetadataNum>0&&video){try{video.play()}catch(event){console.error(event)}}}return player},pause:function(fn){if(!isUndefined(fn)&&valType(fn)=='function'){newEvent.addEventListener('pause',fn)}else{if(loadedmetadataNum>0&&video){try{video.pause()}catch(event){console.error(event)}}}return player},playOrPause:function(){if(paused){player.play()}else{player.pause()}return player},volume:function(fn){if(!isUndefined(fn)){if(valType(fn)=='function'){newEvent.addEventListener('volume',fn)}else if(valType(fn)=='number'&&video){if(fn<0)fn=0;if(fn>1)fn=1;if(video.muted){video.volume=fn*.5}video.volume=fn}}else if(video){return video.volume}return player},muted:function(fn){if(!isUndefined(fn)&&valType(fn)=='function'){newEvent.addEventListener('muted',fn)}else if(video){video.muted=true}return player},exitMuted:function(){if(video){video.muted=false;if(video.volume==0){player.volume(vars['volume']>0?vars['volume']:.8)}}return player},time:function(fn){if(!isUndefined(fn)&&valType(fn)=='function'){newEvent.addEventListener('time',fn)}else if(video){return video.currentTime||0}},seek:function(fn){if(!isUndefined(fn)){if(valType(fn)=='function'){newEvent.addEventListener('seek',fn)}if(valType(fn)=='number'&&video){switch(vars['timeScheduleAdjust']){case 0:message(language['timeScheduleAdjust']['prohibit']);return;break;case 1:break;case 2:if(fnoldTime){message(language['timeScheduleAdjust']['prohibitForward']);return}break;case 4:if(fnmaxSeeTime){waitingMessage=false;video.currentTime=maxSeeTime;message(language['timeScheduleAdjust']['prohibitForwardNotViewed']);return}break}pSliderMouseDown=false;video.currentTime=fn}}return player},buffer:function(fn){if(!isUndefined(fn)&&valType(fn)=='function'){newEvent.addEventListener('buffer',fn)}return player},ended:function(fn){if(!isUndefined(fn)&&valType(fn)=='function'){newEvent.addEventListener('ended',fn)}return player},next:function(fn){if(!isUndefined(fn)&&valType(fn)=='function'){newEvent.addEventListener('next',fn)}return player},error:function(fn){if(!isUndefined(fn)&&valType(fn)=='function'){newEvent.addEventListener('error',fn)}return player},emptied:function(fn){if(!isUndefined(fn)&&valType(fn)=='function'){newEvent.addEventListener('emptied',fn)}return player},duration:function(fn){if(!isUndefined(fn)&&valType(fn)=='function'){newEvent.addEventListener('duration',fn)}else{return duration||0}},playbackRate:function(fn){if(!isUndefined(fn)){if(valType(fn)=='function'){newEvent.addEventListener('playbackRate',fn)}else if(valType(fn)=='number'&&video){video.playbackRate=fn;CT.playbackRate=fn;eventTarget('playbackRate',fn);changePlaybackrateVal(fn)}}else{return video.playbackRate}},track:function(fn){if(!isUndefined(fn)){if(valType(fn)=='function'){newEvent.addEventListener('track',fn)}else if(valType(fn)=='number'&&video){var track=null;if(!isUndefined(video.textTracks)){track=video.textTracks}if(track&&valType(track)=='texttracklist'){var arr=vars['track'];for(var i=track.length-1;i>-1;i--){video.find('track').eq(i).remove()}for(var i=0;i'}if(video){var html=video.htm()+track;video.htm(html)}changeTrackVal(fn)}}}else{return CT.track}},fastBack:function(num){if(duration==0)return;if(isUndefined(num)||valType(num)!='number'){num=20}var time=player.time();if(time-num>0){time-=num}else{time=0}player.seek(time);return player},fastNext:function(num){if(duration==0)return;if(isUndefined(num)||valType(num)!='number'){num=20}var time=player.time();if(time+num200)zIndex=200;if(isUndefined(ele.cssDisplay)){ele.cssPosition=ele.css('position');ele.cssDisplay=ele.css('display')}ele.css({'position':'absolute','z-index':zIndex});if(!cBar){CM.append(ele)}else{C['bar'].append(ele)}ele.CK=CK;ele.show()}return ele},closeLayer:function(ele){if(valType(ele)=='string'){var temp=$(ele);if(!isUndefined(temp)){if(temp.length>0){ele=temp.eq(0)}}}if(!isUndefined(ele)&&valType(ele)=='htmlobject'){if(!isUndefined(ele.captureParentNode)){var eleP=ele.captureParentNode;if(ele.nextElement){try{eleP.insertBefore(ele,ele.nextElement)}catch(event){eleP.append(ele)}}else if(ele.prevElement){try{eleP.insertAfter(ele,ele.prevElement)}catch(event){eleP.append(ele)}}else{eleP.append(ele)}ele.css({'display':ele.cssDisplay})}else{ele.remove()}if(!isUndefined(ele.cssDisplay)){ele.css({'display':ele.cssDisplay,'position':ele.cssPosition})}}return player},message:function(str){message(str);return player},closeFrontAd:function(){if(frontAdPlay&&!isUndefined(ad)&&!isUndefined(ad['front'])&&!isUndefined(ad['front']['list'])){ad['frontPlayI']=ad['front']['list'].length-1;adFrontEnded();clearAdFrontSetTime()}return player},addListener:function(name,fn){newEvent.addEventListener(name,fn)},removeListener:function(name,fn){newEvent.removeEventListener(name,fn)},bar:function(bool){barShow=bool;if(bool){C['bar'].show()}else{C['bar'].hide()}},rightBar:function(bool){rightBarShow=bool;if(bool){C['rightBar'].show()}else{C['rightBar'].hide()}},mouseActive:function(fn){if(!isUndefined(fn)&&valType(fn)=='function'){newEvent.addEventListener('mouseActive',fn)}return this},cookie:function(name){if(name=='delete'){cookie(ckplayerCookie,'delete',vars['domain']);return null}if(!isUndefined(name)&&name){name=name.replace(/[ ]*,[ ]*|[ ]+/g,'').replace(/[ ]*;[ ]*|[ ]+/g,'')}var cStr=cookie(ckplayerCookie);if(cStr){var arr=stringToArray(cStr);var tempArr=[];var cTime=parseInt(Date.now()*0.001);for(i=0;icTime){tempArr.push(arr[i])}}arr=tempArr;if(arr.length>0){cookie(ckplayerCookie,'delete',vars['domain'],vars['cookiePath']);cookie(ckplayerCookie,arrayToString(arr),vars['domain'],vars['cookiePath']);for(var i=0;i-1;i--){var pTemp=createlButton('ck-list-p',playbackrate[i]+language['playbackrateSuffix']);pTemp.attr('data-i',i).attr('data-val',playbackrate[i]);C['bar']['playbackrate']['bg']['p'].push(pTemp);C['bar']['playbackrate']['bg'].append(pTemp);pTemp.click(playbackrateClick)}C['bar']['playbackrate'].hide();if(!isUndefined(vars['playbackrateOpen'])&&vars['playbackrateOpen']){C['bar']['playbackrate'].show();C['bar']['playbackrate']['bgbox'].show();var w=C['bar']['playbackrate']['bg'].getWidth(),h=C['bar']['playbackrate']['bg'].getHeight();var bw=C['bar']['playbackrate']['button'].getWidth();C['bar']['playbackrate']['bg'].css({'width':w+10+'px'});w=C['bar']['playbackrate']['bg'].getWidth();if(getBarHeight()>C['bar'].getHeight()){h+=(getBarHeight()-C['bar'].getHeight())}C['bar']['playbackrate']['bgbox'].attr('style','');C['bar']['playbackrate']['bgbox'].css({'width':w+'px','height':(h+2)+'px','left':-(w-bw)*0.5+'px'});C['bar']['playbackrate']['button'].mouseover(function(){w=C['bar']['playbackrate']['bg'].getWidth();bw=C['bar']['playbackrate']['button'].getWidth();C['bar']['playbackrate']['bgbox'].css({'left':-(w-bw)*0.5+'px'})});changePlaybackrateVal(pbr)}},playbackrateClick=function(e){C['bar']['playbackrate']['bgbox'].hide();setTimeout(function(){C['bar']['playbackrate']['bgbox'].removeCss('display')},300);message(language['switchTo']+$(this).htm());player.playbackRate(parseFloat($(this).attr('data-val')))},changePlaybackrateVal=function(num){C['bar']['playbackrate']['bg'].find('button').each(function(index,ele){var val=parseFloat(ele.attr('data-val'));ele.removeClass('ck-list-p-focus');if(num==val){ele.addClass('ck-list-p-focus');if(num!=1){C['bar']['playbackrate']['button'].htm(ele.htm())}else{C['bar']['playbackrate']['button'].htm(language['playbackrate'])}}else{ele.removeClass('ck-list-p-focus')}})},checkTrack=function(){var track=vars['track'];var pbr=-1;C['bar']['track']['bgbox'].htm('');C['bar']['track']['bg']=createlDiv('ck-list-bg');C['bar']['track']['bgbox'].append(C['bar']['track']['bg']);C['bar']['track']['bg']['p']=[];var pTemp=null;for(var i=track.length-1;i>-1;i--){pTemp=createlButton('ck-list-p',track[i]['label']);pTemp.attr('data-i',i).attr('data-title',track[i]['label']);C['bar']['track']['bg']['p'].push(pTemp);C['bar']['track']['bg'].append(pTemp);if(!isUndefined(track[i]['default'])&&track[i]['default']){pbr=i}pTemp.click(trackClick)}pTemp=createlButton('ck-list-p',language['noTrack']);pTemp.attr('data-i',-1).attr('data-title',language['noTrack']);C['bar']['track']['bg']['p'].push(pTemp);C['bar']['track']['bg'].append(pTemp);pTemp.click(trackClick);C['bar']['track'].hide();C['bar']['track'].show();C['bar']['track']['bgbox'].show();var w=C['bar']['track']['bg'].getWidth(),h=C['bar']['track']['bg'].getHeight();var bw=C['bar']['track']['button'].getWidth();C['bar']['track']['bg'].css({'width':w+10+'px'});w=C['bar']['track']['bg'].getWidth();if(getBarHeight()>C['bar'].getHeight()){h+=(getBarHeight()-C['bar'].getHeight())}C['bar']['track']['bgbox'].attr('style','');C['bar']['track']['bgbox'].css({'width':w+'px','height':(h+2)+'px','left':-(w-bw)*0.5+'px'});C['bar']['track']['button'].mouseover(function(){w=C['bar']['track']['bg'].getWidth();bw=C['bar']['track']['button'].getWidth();C['bar']['track']['bgbox'].css({'left':-(w-bw)*0.5+'px'})});changeTrackVal(pbr)},trackClick=function(e){C['bar']['track']['bgbox'].hide();setTimeout(function(){C['bar']['track']['bgbox'].removeCss('display')},300);message(language['switchTo']+$(this).attr('data-title'));player.track(parseFloat($(this).attr('data-i')))},changeTrackVal=function(num){C['bar']['track']['bg'].find('button').each(function(index,ele){var i=parseInt(ele.attr('data-i'));if(num==i){C['bar']['track']['button'].htm(ele.attr('data-title'));if(i>-1){CT.track=vars['track'][i];eventTarget('track',vars['track'][i])}else{CT.track=null;eventTarget('track',null)}ele.addClass('ck-list-p-focus')}else{ele.removeClass('ck-list-p-focus')}})},checkDefinition=function(){var pi=-1;var videoUrl=video['currentSrc'];if(!isUndefined(C['bar']['definition']['bg'])){C['bar']['definition']['bgbox'].htm('');C['bar']['definition']['bgbox'].attr('style','');C['bar']['definition']['button'].htm(language['definition'])}if(valType(vars['video'])=='array'){var arr=vars['video'];C['bar']['definition']['bg']=createlDiv('ck-list-bg');C['bar']['definition']['bgbox'].append(C['bar']['definition']['bg']);C['bar']['definition']['bg']['p']=[];for(var i=arr.length-1;i>-1;i--){var pTemp=createlButton('ck-list-p',arr[i][2]);pTemp.attr('data-i',i).attr('data-video',arr[i][0]).attr('data-type',arr[i][1]).attr('data-title',arr[i][2]);C['bar']['definition']['bg']['p'].push(pTemp);C['bar']['definition']['bg'].append(pTemp);if(videoUrl&&videoUrl.indexOf(arr[i][0])>-1){pi=i}pTemp.click(definitionClick)}C['bar']['definition'].show();C['bar']['definition']['bgbox'].show();var w=C['bar']['definition']['bg'].getWidth(),h=C['bar']['definition']['bg'].getHeight();var bw=C['bar']['definition']['button'].getWidth();C['bar']['definition']['bg'].css({'width':w+10+'px'});w=C['bar']['definition']['bg'].getWidth();if(getBarHeight()>C['bar'].getHeight()){h+=(getBarHeight()-C['bar'].getHeight())}C['bar']['definition']['bgbox'].attr('style','');C['bar']['definition']['bgbox'].css({'width':w+'px','height':(h+2)+'px','left':-(w-bw)*0.5+'px'});C['bar']['definition']['button'].mouseover(function(){w=C['bar']['definition']['bg'].getWidth();bw=C['bar']['definition']['button'].getWidth();C['bar']['definition']['bgbox'].css({'left':-(w-bw)*0.5+'px'})})}if(pi>-1){C['bar']['definition']['bg'].find('button').each(function(index,ele){var i=parseInt(ele.attr('data-i'));if(pi==i){ele.addClass('ck-list-p-focus')}else{ele.removeClass('ck-list-p-focus')}})}},definitionClick=function(e){C['bar']['definition']['bgbox'].hide();setTimeout(function(){C['bar']['definition']['bgbox'].removeCss('display')},300);changeDefinition(parseInt($(this).attr('data-i')))},changeDefinition=function(num){C['bar']['definition']['bg'].find('button').each(function(index,ele){var i=parseInt(ele.attr('data-i'));if(num==i){if(!isUndefined(video.textTracks)&&video.textTracks.length>0){for(var y=video.find('track').length-1;y>-1;y--){video.find('track').eq(y).remove()}}seekTime=player.time();video.attr('autoplay','autoplay');changeVideo(ele.attr('data-video'));message(language['switchTo']+ele.htm());C['bar']['definition']['button'].htm(ele.htm());ele.addClass('ck-list-p-focus');eventTarget('definition',{id:i,video:ele.attr('data-video'),title:ele.attr('data-title')})}else{ele.removeClass('ck-list-p-focus')}})},deletePrompt=function(){var i=0;if(!isUndefined(C['prompt'])&&valType(C['prompt'])=='array'){for(i=C['prompt'].length;i>-1;i--){if(!isUndefined(C['prompt'][i])){C['prompt'][i].remove()}}C['prompt']=null}C['prompt']=[]},changePrompt=function(){deletePrompt();for(var i=0;i100)left=100;ele.css({'left':left+'%'});ele.mouseover(function(){if(this.attr('data-words')){showPromptWords(this)}});ele.mouseout(function(){if(this.attr('data-words')){showPromptWords()}});C['prompt'].push(ele)}}},showPromptWords=function(ele){if(isUndefined(C['promptWords'])){C['promptWords']=createlDiv('ck-prompt-words');CM.append(C['promptWords']);C['promptWords']['content']=createlDiv('ck-prompt-content');C['promptWords'].append(C['promptWords']['content'])}if(isUndefined(ele)){C['promptWords']['content'].htm('');C['promptWords'].hide();return}C['promptWords']['content'].htm(ele.attr('data-words'));C['promptWords'].show();var pW=C['promptWords'].getWidth(),pH=C['promptWords'].getHeight();var bg=C['bar']['pbox']['bg'];var time=parseFloat(ele.attr('data-time'));var top=CK.getHeight()-getBarHeight();var left=ele.offset()['left']-CK.offset()['left']+ele.getWidth()*.5-pW*.5;if(!isUndefined(C['preview'])){top=CK.getHeight()-parseFloat((getBarHeight()+C['preview']['smallHight']+parseInt(C['preview'].css('margin-bottom'))))}else{top=CK.getHeight()-parseFloat((getBarHeight()+C['tip']['minHeight']+parseInt(C['tip'].css('margin-bottom'))));top-=(getBarHeight()-C['bar'].getHeight())}top-=parseFloat(C['promptWords'].css('margin-bottom'));top-=pH;left-=parseFloat(C['promptWords'].css('margin-right'));if(left<0)left=0;if(left>CK.getWidth()-pW)left=CK.getWidth()-pW;C['promptWords'].css({'top':top+'px','left':left+'px'})},changePreview=function(preview){if(!isUndefined(C['preview'])){C['preview'].remove();C['preview']=null}if(!isUndefined(preview)){C['preview']=createlDiv('ck-preview');CM.append(C['preview']);if(isUndefined(vars['preview']['type'])){vars['preview']['type']=0}if(vars['preview']['type']==1){C['preview']['bg']=createlDiv('ck-preview-bg');C['preview'].append(C['preview']['bg'])}var files=[];var loadImg=function(bigW,bigH,smallW,smallH){if(vars['preview']['type']==1){C['preview']['bg']['img']=[];for(var i=0;i1){if(valType(vars['preview']['thumbnail'][0])=='number'){thumbnail[0]=vars['preview']['thumbnail'][0]}if(valType(vars['preview']['thumbnail'][1])=='number'){thumbnail[1]=vars['preview']['thumbnail'][1]}vars['preview']['thumbnail']=thumbnail}if(files[0]){var img=createlImg(files[0],'ck-preview-load-img').addListener('load',function(){loadImg(this.getWidth(),this.getHeight(),this.getWidth()/thumbnail[0],this.getHeight()/thumbnail[1]);this.remove()});CM.append(img)}}else{C['preview'].removeChild();C['preview']=null}}else{C['preview'].removeChild();C['preview']=null}}},showPreview=function(time){if(hidePreviewSetTime){clearTimeout(hidePreviewSetTime);hidePreviewSetTime=null}if(time<0){if(!isUndefined(C['preview'])){hidePreviewSetTime=setTimeout(function(){C['preview'].hide();hidePreviewSetTime=null},200);return}}if(!isUndefined(C['preview'])&&!isUndefined(vars['preview']['thumbnail'])&&duration>0){if(isUndefined(vars['preview']['type'])){vars['preview']['type']=0}var scale=2,thumbnail=vars['preview']['thumbnail'];if(!isUndefined(vars['preview']['scale'])){scale=vars['preview']['scale']}var divI=0,imgI=0;var left=0,frameLeft=0;var pW=0;var smallW=C['preview']['smallWidth'],smallH=C['preview']['smallHight'];var bgXw=time*C['bar']['pbox']['bg'].getWidth()/duration+(C['bar']['pbox']['bg'].offset()['left']-CK.offset()['left']);if(C['preview'].css('display')=='none'){C['preview'].show()}C['preview'].css({'height':smallH+'px',});if(vars['preview']['type']==1){divI=parseInt(time/(scale*thumbnail[0]));imgI=parseInt(time/scale);var minI=divI-5,maxI=divI+5;if(minI<0)minI=0;if(maxI>C['preview']['bg']['img'].length-1){maxI=C['preview']['bg']['img'].length-1}for(var i=minI;iC['preview'].getWidth()-C['preview']['frame'].getWidth()){var xz=frameLeft-(C['preview'].getWidth()-C['preview']['frame'].getWidth());frameLeft=C['preview'].getWidth()-C['preview']['frame'].getWidth();left-=xz}C['preview']['bg'].css({'left':left+'px'});C['preview']['frame'].css({'left':frameLeft+'px'})}else{var temp=(time/scale)/(thumbnail[0]*thumbnail[1]);imgI=parseInt(temp);var smallI=parseInt((temp-imgI)*100);var rows=parseInt(smallI/thumbnail[0]);var column=smallI%thumbnail[0];var files=vars['preview']['file'];left=bgXw-smallW*.5;if(left<0){left=0}if(left>CK.getWidth()-smallW){left=CK.getWidth()-smallW}C['preview'].css({'width':C['preview']['smallWidth']+'px','background':'url('+files[imgI]+') no-repeat','background-position':'-'+column*smallW+'px -'+rows*smallH+'px','left':left+'px'})}}},showError=function(){C['loading'].hide();if(vars['controls']||!vars['errorShow']){return}if(isUndefined(C['error'])){C['error']=createlDiv('ck-error');CM.append(C['error'])}var msg=CT.error['message'];if(!msg)msg=language['error']['noMessage'];var html=msg+'(code:'+CT.error['code']+')';C['error'].htm(html);C['error'].show()},showWindowsError=function(error){var ele=createlDiv('ckplayer-error',error);$('body').append(ele)},showNextEpisode=function(){if(isUndefined(vars['next']))return;if(valType(vars['next'])=='object'){if('content'in vars['next']){C['next']=player.layer(vars['next']);return}if('title'in vars['next']){tip(C['bar']['nextEpisode'],vars['next']['title']);return}}tip(C['bar']['nextEpisode'],language['next'])},nextClick=function(){if(valType(vars['next'])=='object'){if('click'in vars['next']){if(valType(vars['next']['click'])=='function'){vars['next']['click']()}else if(valType(vars['next']['click'])=='string'){eval(vars['next']['click']+'()')}}if('link'in vars['next']){window.location.href=vars['next']['link']}eventTarget('next')}},showEnded=function(){if(!CT.loop&&!isUndefined(vars['ended'])){closePauseAd();C['ended']=player.layer(vars['ended']);if(C['ended']){C['centerPlay'].hide()}return}},windowScroll=function(){if(!CT.smallWindows)return;if(CT.webFull||CT.theatre||CT.full){exitSmallWindows();return}var scrollTop=document.documentElement.scrollTop||document.body.scrollTop;if(scrollTop>CT.offset()['top']+CT.getHeight()){if(!CK.hasClass('ckplayer-ckplayer-smallwindow')){CK.addClass('ckplayer-ckplayer-smallwindow');eventTarget('smallWindows',true);smallWindowsState=true;if(vars['smallWindowsDrag']){drag(true)}allBarHide();checkVideoRotate()}}else{exitSmallWindows()}},exitSmallWindows=function(){if(CK.hasClass('ckplayer-ckplayer-smallwindow')){CK.removeClass('ckplayer-ckplayer-smallwindow');if(vars['smallWindowsDrag']){drag()}eventTarget('smallWindows',false);smallWindowsState=false;allBarShow();checkVideoRotate()}},drag=function(state){var doc=$(document);var posX=0,posY=0,posXRecord=0,posYRecord=0;var open=false;if(!isUndefined(state)){open=state}var mouseDown=function(e){e.preventDefault&&e.preventDefault();e=e||window.event;var client=getClient(e);posXRecord=client['x'];posYRecord=client['y'];doc.mousemove(docMouseMove);doc.mouseup(docMouseUp);CK.css({'cursor':'move'})};var docMouseMove=function(e){e=e||window.event;var client=getClient(e);var eleOffset=CK.offset();posY=client['y']-posYRecord;posX=client['x']-posXRecord;posXRecord=client['x'];posYRecord=client['y'];var left=eleOffset['left']+posX;var top=eleOffset['top']+posY;CK.css({'left':left+'px','top':top+'px'});if(CK.css('position')!='fixed'){CK.css({'position':'fixed'})}isDrag=true};var docMouseUp=function(){doc.removeListener('mousemove',docMouseMove);doc.removeListener('mouseup',docMouseUp);CK.css({'cursor':'default'})};if(open){CK.mousedown(mouseDown)}else{CK.unbind('mousedown')}},checkVideoRotate=function(){var ckW=CK.getWidth()*nowZoom*0.01,ckH=CK.getHeight()*nowZoom*0.01;var vW=CV.getWidth(),vH=CV.getHeight();CV.css({'transform':'rotate('+nowRotate+'deg)','-ms-transform':'rotate('+nowRotate+'deg)','-moz-transform':'rotate('+nowRotate+'deg)','-webkit-transform':'rotate('+nowRotate+'deg)','-o-transform':'rotate('+nowRotate+'deg)','width':nowZoom+'%','height':nowZoom+'%'});if(nowRotate!=0&&nowRotate!=180){if(vH>ckW&&vW>ckH){if(vH/ckW>vW/ckH){CV.css({'height':nowZoom+'%','width':ckH+'px'})}else{CV.css({'width':nowZoom+'%','height':ckW+'px'})}return}if(vHckH){CV.css({'height':nowZoom+'%','width':ckH+'px'})}else{if(vH/vW>=ckW/ckH){CV.css({'width':nowZoom+'%','height':ckW+'px'})}else{CV.css({'height':nowZoom+'%','width':ckH+'px'})}}return}if(vH>=ckW&&vW<=ckH){CV.css({'width':nowZoom+'%','height':ckW+'px'});return}if(vW>=ckH&&vHC['bar'].getHeight()){top-=(getBarHeight()-C['bar'].getHeight())}if(w>ew){left=offset['left']-ckOffset['left']-(w-ew)*.5}else{left=offset['left']-ckOffset['left']+(ew-w)*.5}if(align=='left'){left=offset['left']-ckOffset['left']-w;top=offset['top']-ckOffset['top']}if(!isUndefined(cl)){left=cl['x']-ckOffset['left']-w*.5}if(left<0){left=0}if(top<0){top=0}if(left>CM.getWidth()-w){left=CM.getWidth()-w}if(top>CM.getHeight()-h){top=CM.getHeight()-h}C['tip'].css({'left':left+'px','top':top-parseInt(C['tip'].css('margin-bottom'))+'px'})},progressDragX=function(){var bg=C['bar']['pbox']['bg'],play=C['bar']['pbox']['play'],slider=C['bar']['pbox']['slider'],mouseLine=C['bar']['pbox']['mouseLine'];slider.unbind();bg.unbind();var pos=0,posRecord=0;var doc=$(document);var sliderDownTime=0;var sliderMouseDown=function(e){e.preventDefault&&e.preventDefault();if(!vars['timeScheduleAdjust']){return}e=e||window.event;var eleOffset=slider.offset(),bgOffset=bg.offset(),client=getClient(e);pSliderMouseDown=true;posRecord=client['x'];var left=eleOffset['left']-bgOffset['left'];sliderDownTime=left*duration/(bg.getWidth()-slider.getWidth());slider.removeListener('mousedown',sliderMouseDown);slider.removeListener('touchstart',sliderMouseDown);doc.mousemove(docMouseMove);doc.mouseup(docMouseUp);slider.touchmove(docMouseMove);slider.touchend(docMouseUp);noScrolling(true)};var docMouseMove=function(e){e=e||window.event;var eleOffset=slider.offset(),bgOffset=bg.offset(),client=getClient(e);pSliderMouseDown=true;pos=posRecord-client['x'];posRecord=client['x'];var left=eleOffset['left']-pos-bgOffset['left'];if(left<0){left=0}if(left>bg.getWidth()-slider.getWidth()){left=bg.getWidth()-slider.getWidth()}C['bar']['pbox'].addClass('ck-bar-progress-slider-move');var time='';if(!vars['live']){time=left*duration/(bg.getWidth()-slider.getWidth());switch(vars['timeScheduleAdjust']){case 2:if(timesliderDownTime){left=-1000;message(language['timeScheduleAdjust']['prohibitForward']);return}break;case 4:if(timemaxSeeTime){left=-1000;player.seek(maxSeeTime);message(language['timeScheduleAdjust']['prohibitForwardNotViewed']);return}break}time=formatSeconds(time)}else{time=formatLiveTime(left*getLiveTime()/(bg.getWidth()-slider.getWidth()))}tip(slider,time);if(left>=0){slider.css({'left':left+'px'});play.css({'width':left+slider.getWidth()*.5+'px'})}else{pSliderMouseDown=false}};var docMouseUp=function(){noScrolling();doc.removeListener('mousemove',docMouseMove);doc.removeListener('mouseup',docMouseUp);slider.removeListener('touchmove',docMouseMove);slider.removeListener('touchend',docMouseUp);slider.mousedown(sliderMouseDown);slider.touchstart(sliderMouseDown);if(!vars['live']){var time=play.getWidth()*duration/(bg.getWidth()-slider.getWidth()*.5);if(time>duration){time=duration}seekTime=0;player.seek(time)}else{var playbackTime=parseInt(vars['live']+play.getWidth()*getLiveTime()/(bg.getWidth()-slider.getWidth()*.5));eventTarget('playback',{time:playbackTime,date:date('Y-m-d H:i:s',playbackTime)});eventTarget('seek',{time:playbackTime,state:'seeking',date:date('Y-m-d H:i:s',playbackTime)})}C['bar']['pbox'].removeClass('ck-bar-progress-slider-move');if(isMouseLeave){tip()}};var isMouseLeave=true;var sliderMouseOver=function(){var time='';if(!vars['live']){time=formatSeconds(parseInt(slider.css('left'))*duration/(bg.getWidth()-slider.getWidth()))}else{time=language['live']}isMouseLeave=false;tip(slider,time)};var sliderMouseLeave=function(){isMouseLeave=true};slider.mousedown(sliderMouseDown);slider.mouseover(sliderMouseOver);slider.mouseleave(sliderMouseLeave);slider.touchstart(sliderMouseDown);var bgMouseDown=function(e){e=e||window.event;var client=getClient(e);var bgOffset=bg.offset();var w=client['x']-bgOffset['left'];if(CT.full){w+=CK.offset()['left']}if(!vars['live']){var time=duration*w/bg.getWidth();switch(vars['timeScheduleAdjust']){case 0:message(language['timeScheduleAdjust']['prohibit']);return;break;case 2:if(timeoldTime){message(language['timeScheduleAdjust']['prohibitForward']);return}break;case 4:if(timemaxSeeTime){message(language['timeScheduleAdjust']['prohibitForwardNotViewed']);return}break}seekTime=0;player.seek(time)}else{var playbackTime=parseInt(vars['live']+getLiveTime()*w/bg.getWidth());eventTarget('playback',{time:playbackTime,date:date('Y-m-d H:i:s',playbackTime)});eventTarget('seek',{time:playbackTime,state:'seeking',date:date('Y-m-d H:i:s',playbackTime)})}if(w>bg.getWidth()-slider.getWidth()*.5){w=bg.getWidth()-slider.getWidth()*.5}if(wmaxTop){sliderTop=maxTop}slider.css({'top':sliderTop+'px'});var ppMarginTop=sliderTop-minTop+slider.getHeight()*0.5;pp.css({'margin-top':ppMarginTop+'px'});var vol=(bg.getHeight()-ppMarginTop-slider.getHeight()*0.5)/(bg.getHeight()-slider.getHeight());player.volume(vol)};var docMouseUp=function(){noScrolling();doc.removeListener('mousemove',docMouseMove);doc.removeListener('mouseup',docMouseUp);slider.removeListener('touchmove',docMouseMove);slider.removeListener('touchend',docMouseUp);slider.mousedown(sliderMouseDown);slider.touchstart(sliderMouseDown);C['bar']['vbox']['mouseDown']=false};slider.mousedown(sliderMouseDown);slider.touchstart(sliderMouseDown);var bgMouseDown=function(e){e=e||window.event;var client=getClient(e);var bgOffset=bg.offset();var h=client['y']-bgOffset['top'];var max=bg.getHeight();var vol=1-h/max;player.volume(vol)};bg.mousedown(bgMouseDown)},changeProgress=function(time){if((valType(vars['live'])=='boolean'&&vars['live'])){return}if(!pSliderMouseDown){var bg=C['bar']['pbox']['bg'],slider=C['bar']['pbox']['slider'];var playW=(time/duration)*100;if(valType(vars['live'])=='number'){playW='100'}C['bar']['pbox']['play'].css({'width':playW+'%'});var sliderW=(slider.getWidth()/bg.getWidth())*100;var sliderLeft=playW-sliderW*.5;if(sliderLeft<0){sliderLeft=0}if(sliderLeft>100-sliderW){sliderLeft=100-sliderW}C['bar']['pbox']['slider'].css({'left':sliderLeft+'%'});checkProgressSlider()}},checkProgressSlider=function(){var bg=C['bar']['pbox']['bg'],slider=C['bar']['pbox']['slider'];var st=0;if(C['bar']['pbox'].css('transition-duration')){st=parseFloat(C['bar']['pbox'].css('transition-duration'))*1000+20}var checkThis=function(){var sliderLeft=parseInt(C['bar']['pbox']['slider'].css('left'));if(sliderLeft<0){sliderLeft=0;C['bar']['pbox']['slider'].css({'left':sliderLeft+'px'})}if(sliderLeft>bg.getWidth()-slider.getWidth()){sliderLeft=bg.getWidth()-slider.getWidth();C['bar']['pbox']['slider'].css({'left':sliderLeft+'px'})}};setTimeout(checkThis,st)},changeTopTime=function(){C['topBar']['timeEle'].htm(date('H:i:s'));setTimeout(changeTopTime,1000)},changeVolumeSlider=function(vol){if(!isUndefined(C['bar']['vbox'])){var box=C['bar']['vbox']['volume']['box'],bg=C['bar']['vbox']['volume']['bg'],pp=C['bar']['vbox']['volume']['pp'],slider=C['bar']['vbox']['volume']['slider'];C['bar']['vbox']['volume']['txt'].htm(parseInt(vol*100));var bgH=bg.getHeight();if(bgH){var ppMarginTop=bgH-vol*bgH;pp.css({'margin-top':ppMarginTop+'px'});var sliderTop=bg.offset()['top']-box.offset()['top']+ppMarginTop-slider.getHeight()*0.5;slider.css({'top':sliderTop+'px'})}}},changeLoad=function(){if(video){var len=video.buffered.length;if(len>0){var bufferEnd=video.buffered.end(len-1);if(loadTime=1000){last+=offset;appendFps(fps);fps=0}requestAnimationFrame(step)};var appendFps=function(fps){if(fps!=CT.fps){CT.fps=fps;replaceInformation('fps',fps);eventTarget('fps',fps)}};if(isUndefined(CT.fps)){CT.fps=0}step()},getElement=function(content){var ele=$(content);if(isUndefined(ele))return;if(valType(ele)=='htmlarray'){ele=ele[0]}if(isUndefined(ele.captureParentNode)){ele.captureParentNode=ele.parentNode;ele.prevElement=ele.prev();ele.nextElement=ele.next()}return ele},$=function(obj,eL){var parent=null;if(document){parent=document}if(!isUndefined(eL)){parent=eL}var res=[];if(obj){if(valType(obj)=='htmlobject'||valType(obj)=='object'){res=obj;if(!isUndefined(res.ckplayer)){return res}}else if(valType(obj)=='string'&&obj!=''){switch(obj.substr(0,1)){case'.':obj=obj.substr(1,obj.length);if(parent.getElementsByClassName){res=parent.getElementsByClassName(obj);if(!res.length){return null}}else if(!parent&&document.getElementsByClassName){res=document.getElementsByClassName(obj);if(!res.length){return null}}else{var reg=new RegExp(' '+obj+' ','i');var ele=null;if(parent.getElementsByTagName){ele=parent.getElementsByTagName('*')}else{ele=document.getElementsByTagName('*')}for(var i=0;i1){b=arr[1].substr(0,1).toLocaleUpperCase()+arr[1].substr(1,arr[1].length-1)}if(arr.length>2){b=arr[2].substr(0,1).toLocaleUpperCase()+arr[2].substr(1,arr[2].length-1)}return a+b+c}return str};if(isUndefined(value)){if(!isUndefined(key)&&valType(key)=='string'){if(this.currentStyle){return this.currentStyle[key]}else{return document.defaultView.getComputedStyle(this,null)[key]}}if(isUndefined(key)){if(this.currentStyle){return this.currentStyle}else{return document.defaultView.getComputedStyle(this,null)}}}if(valType(key)!='object'){var newKey=keyNew(key);if(this.length>1){for(var i=0;i'+val+'
','text/html');var root=doc.body.firstChild;res.replaceChildren();while(root&&root.firstChild){res.appendChild(root.firstChild)}}else if(val&&typeof val==='object'&&val.nodeType){res.replaceChildren(val)}else{res.textContent=String(val)}}else{return Array.prototype.map.call(res.childNodes,function(node){return new XMLSerializer().serializeToString(node)}).join('')}};res.htmReplace=function(ar,val,html){if(!isUndefined(val)&&!isUndefined(ar)){if(isUndefined(this.attr('data-htm'))){this.attr('data-htm',html)}var htm=this.attr('data-htm');var reg=new RegExp(ar,'g');htm=htm.replace(reg,val);this.htm(htm)}};res.offset=function(){var par=this.offsetParent,left=this.offsetLeft,top=this.offsetTop;while(par&&par.tagName!=='BODY'){if(!/MSIE 8\.0/.test(navigator.userAgent)){left+=par.clientLeft;top+=par.clientTop}left+=par.offsetLeft;top+=par.offsetTop;par=par.offsetParent}return{top:top,left:left}};res.fixed=function(){if(this.css('position')=='fixed'){return true}if(!isUndefined(this.offsetParent)){return $(this.offsetParent).fixed()}return false};res.getWidth=function(){return this.offsetWidth};res.getHeight=function(){return this.offsetHeight};if(isUndefined(res.width)){res.width=function(){return this.offsetWidth}}if(isUndefined(res.height)){res.height=function(){return this.offsetWidth}}res.resize=function(fn){addListener(window,'resize',fn)};res.click=function(fn){addListener(this,'click',fn);return this};res.singleClick=function(fn){if(isUndefined(this.dbClick)){doubleClickEvent(this);this.dbClick=true}this.addListener('sigClick',fn);return this};res.doubleClick=function(fn){if(isUndefined(this.dbClick)){doubleClickEvent(this);this.dbClick=true}this.addListener('dobClick',fn);return this};res.mouseover=function(fn){addListener(this,'mouseover',fn);return this};res.mouseout=function(fn){addListener(this,'mouseout',fn);return this};res.mousedown=function(fn){addListener(this,'mousedown',fn);return this};res.mouseup=function(fn){addListener(this,'mouseup',fn);return this};res.mousemove=function(fn){addListener(this,'mousemove',fn);return this};res.mouseWheel=function(fn){addListener(this,'mousewheel',fn);addListener(this,'DOMMouseScroll',fn,false);return this};res.mouseleave=function(fn){addListener(this,'mouseleave',fn);return this};res.touchstart=function(fn){addListener(this,'touchstart',fn);return this};res.touchmove=function(fn){addListener(this,'touchmove',fn);return this};res.touchend=function(fn){addListener(this,'touchend',fn);return this};res.show=function(){this.css('display','block');return this};res.hide=function(){this.css('display','none');return this};res.animate=function(parameter,totalTime,easing,callBack){if(isUndefined(this.CK)){return res}var thisTemp=this;var parNode=this.CK;var w=parNode.getWidth(),h=parNode.getHeight();var speed=10;this.timerTween=null;this.tweenPlay=true;if(isUndefined(parameter)){return this}if(isUndefined(totalTime)||totalTime==0){totalTime=1000}if(isUndefined(easing)||easing==''){easing='None.easeIn'}var effArr=easing.split('.');var tween={None:{easeIn:function(t,b,c,d){return c*t/d+b},easeOut:function(t,b,c,d){return c*t/d+b},easeInOut:function(t,b,c,d){return c*t/d+b}},Quadratic:{easeIn:function(t,b,c,d){return c*(t/=d)*t+b},easeOut:function(t,b,c,d){return-c*(t/=d)*(t-2)+b},easeInOut:function(t,b,c,d){if((t/=d/2)<1)return c/2*t*t+b;return-c/2*((--t)*(t-2)-1)+b}},Cubic:{easeIn:function(t,b,c,d){return c*(t/=d)*t*t+b},easeOut:function(t,b,c,d){return c*((t=t/d-1)*t*t+1)+b},easeInOut:function(t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t+b;return c/2*((t-=2)*t*t+2)+b}},Quartic:{easeIn:function(t,b,c,d){return c*(t/=d)*t*t*t+b},easeOut:function(t,b,c,d){return-c*((t=t/d-1)*t*t*t-1)+b},easeInOut:function(t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t*t+b;return-c/2*((t-=2)*t*t*t-2)+b}},Quintic:{easeIn:function(t,b,c,d){return c*(t/=d)*t*t*t*t+b},easeOut:function(t,b,c,d){return c*((t=t/d-1)*t*t*t*t+1)+b},easeInOut:function(t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t*t*t+b;return c/2*((t-=2)*t*t*t*t+2)+b}},Sine:{easeIn:function(t,b,c,d){return-c*Math.cos(t/d*(Math.PI/2))+c+b},easeOut:function(t,b,c,d){return c*Math.sin(t/d*(Math.PI/2))+b},easeInOut:function(t,b,c,d){return-c/2*(Math.cos(Math.PI*t/d)-1)+b}},Exponential:{easeIn:function(t,b,c,d){return(t==0)?b:c*Math.pow(2,10*(t/d-1))+b},easeOut:function(t,b,c,d){return(t==d)?b+c:c*(-Math.pow(2,-10*t/d)+1)+b},easeInOut:function(t,b,c,d){if(t==0)return b;if(t==d)return b+c;if((t/=d/2)<1)return c/2*Math.pow(2,10*(t-1))+b;return c/2*(-Math.pow(2,-10*--t)+2)+b}},Circular:{easeIn:function(t,b,c,d){return-c*(Math.sqrt(1-(t/=d)*t)-1)+b},easeOut:function(t,b,c,d){return c*Math.sqrt(1-(t=t/d-1)*t)+b},easeInOut:function(t,b,c,d){if((t/=d/2)<1)return-c/2*(Math.sqrt(1-t*t)-1)+b;return c/2*(Math.sqrt(1-(t-=2)*t)+1)+b}},Elastic:{easeIn:function(t,b,c,d,a,p){if(t==0)return b;if((t/=d)==1)return b+c;if(!p)p=d*.3;if(!a||a=m+1){return this[m]}return null}return null};for(var i=0;imaxZ){maxZ=parseInt(temp)}}return maxZ}function getWindowSize(){return{width:window.innerWidth,height:window.innerHeight}}function standardization(o,n){var h={};var k;for(k in o){h[k]=o[k]}for(k in n){if(k in h){h[k]=n[k]}}return h}function mergeObj(o,n){var h={};var k;for(k in o){h[k]=o[k]}for(k in n){if(k in h){switch(valType(h[k])){case'object':if(valType(n[k])=='object'){h[k]=mergeObj(h[k],n[k])}break;default:if(valType(h[k])==valType(n[k])){h[k]=n[k]}break}}}return h}function valType(val){if(typeof val==='undefined')return'undefined';var str=Object.prototype.toString.call(val).split(' ')[1].replace(']','').toLowerCase();if(str.substr(0,4)=='html'&&(str.substr(-7)=='element'||str.substr(-8)=='document'||str=='window')){str='htmlobject'}if(str=='htmlcollection'||str=='nodelist'){str='htmlarray'}return str}function isUndefined(val){try{return valType(val)==='undefined'||val===undefined||val===null||(valType(val)==='number'&&isNaN(val))}catch(event){return true}return false}function prev(ele){var e=ele.previousSibling;if(e==null){return null}if(e.nodeType==3){var t=prev(e);if(t&&t.nodeType==1){return t}}else{if(e.nodeType==1){return e}else{return false}}}function next(ele){var e=ele.nextSibling;if(e==null){return null}if(e.nodeType==3){var t=next(e);if(t&&t.nodeType==1){return t}}else{if(e.nodeType==1){return e}else{return false}}}function addListener(ele,e,f,t){if(isUndefined(t)){t=false}if(ele.addEventListener){try{ele.addEventListener(e,f,t)}catch(event){}}else if(ele.attachEvent){try{ele.attachEvent('on'+e,f)}catch(event){}}else{ele['on'+e]=f}if(isUndefined(ele.listenerList)){ele.listenerList=[]}ele.listenerList.push([e,f]);return ele};function removeListener(ele,e,f,t){if(isUndefined(t)){t=false}if(ele.removeEventListener){try{ele.removeEventListener(e,f,t)}catch(e){}}else if(ele.detachEvent){try{ele.detachEvent('on'+e,f)}catch(e){}}else{ele['on'+e]=null}if(!isUndefined(ele.listenerList)){var temp=[];for(var i=0;i>0},W:function(){var a=f.z(),b=364+f.L()-a;var nd2,nd=(new Date(jsdate.getFullYear()+'/1/1').getDay()||7)-1;if(b<=2&&((jsdate.getDay()||7)-1)<=2-b){return 1}else{if(a<=2&&nd>=4&&a>=(6-nd)){nd2=new Date(jsdate.getFullYear()-1+'/12/31');return date('W',Math.round(nd2.getTime()/1000))}else{return(1+(nd<=3?((a+nd)/7):(a-(7-nd))/7)>>0)}}},F:function(){return txt_months[f.n()]},m:function(){return pad(f.n(),2)},M:function(){return f.F().substr(0,3)},n:function(){return jsdate.getMonth()+1},t:function(){var n;if((n=jsdate.getMonth()+1)==2){return 28+f.L()}else{if(n&1&&n<8||!(n&1)&&n>7){return 31}else{return 30}}},L:function(){var y=f.Y();return(!(y&3)&&(y%1e2||!(y%4e2)))?1:0},Y:function(){return jsdate.getFullYear()},y:function(){return(jsdate.getFullYear()+'').slice(2)},a:function(){return jsdate.getHours()>11?'pm':'am'},A:function(){return f.a().toUpperCase()},B:function(){var off=(jsdate.getTimezoneOffset()+60)*60;var theSeconds=(jsdate.getHours()*3600)+(jsdate.getMinutes()*60)+jsdate.getSeconds()+off;var beat=Math.floor(theSeconds/86.4);if(beat>1000)beat-=1000;if(beat<0)beat+=1000;if((String(beat)).length==1)beat='00'+beat;if((String(beat)).length==2)beat='0'+beat;return beat},g:function(){return jsdate.getHours()%12||12},G:function(){return jsdate.getHours()},h:function(){return pad(f.g(),2)},H:function(){return pad(jsdate.getHours(),2)},i:function(){return pad(jsdate.getMinutes(),2)},s:function(){return pad(jsdate.getSeconds(),2)},O:function(){var t=pad(Math.abs(jsdate.getTimezoneOffset()/60*100),4);if(jsdate.getTimezoneOffset()>0)t='-'+t;else t='+'+t;return t},P:function(){var O=f.O();return(O.substr(0,3)+':'+O.substr(3,2))},c:function(){return f.Y()+'-'+f.m()+'-'+f.d()+'T'+f.h()+':'+f.i()+':'+f.s()+f.P()},U:function(){return Math.round(jsdate.getTime()/1000)}};return format.replace(/([a-zA-Z])/g,function(t,s){var ret='';if(t!=s){ret=s}else if(f[s]){ret=f[s]()}else{ret=s}return ret})}function dataURLtoBlob(dataurl){var arr=dataurl.split(','),mime=arr[0].match(/:(.*?);/)[1],bstr=atob(arr[1]),n=bstr.length,u8arr=new Uint8Array(n);while(n--){u8arr[n]=bstr.charCodeAt(n)}return new Blob([u8arr],{type:mime})}function decodeURIString(obj){for(var k in obj){if(valType(obj[k])=='string'&&obj[k]){try{obj[k]=decodeURI(obj[k])}catch(event){}}if(valType(obj[k])=='object'){obj[k]=decodeURIString(obj[k])}}return obj}function getApp(){var u=navigator.userAgent.toLowerCase();if(u.indexOf('iphone')>-1){return'iphone'}}function cookie(name,value,domain,path){if(isUndefined(domain)){domain=''}if(isUndefined(path)){path='/'}var ckStr=';domain='+domain+';path='+path;if(location.protocol=='https'){ckStr+=';SameSite=None;Secure=true'}var set=function(name,value){var time=360*24*60*60*1000;var exp=new Date();exp.setTime(exp.getTime()+time);try{document.cookie=name+'='+escape(value)+';expires='+exp.toGMTString()+ckStr}catch(event){console.error(event)}},get=function(name){var arr,reg=new RegExp('(^| )'+name+'=([^;]*)(;|$)');if(arr=document.cookie.match(reg)){return unescape(arr[2])}else{return null}},del=function(name){var exp=new Date();exp.setTime(exp.getTime()-1);var cval=get(name);if(cval!=null){document.cookie=name+'='+cval+';expires='+exp.toGMTString()+ckStr}};if(!isUndefined(name)&&!isUndefined(value)){if(value=='delete'){del(name);return null}else{set(name,value);return get(name)}}else if(!isUndefined(name)&&isUndefined(value)){return get(name)}else if(!isUndefined(name)){}}function arrayToString(arr){var str='';if(!isUndefined(arr)){for(var i=0;i0){str+=','}for(var y=0;y0){str+=';'}if(valType(temp[y])=='number'){str+=parseInt(temp[y]*100)}else{str+=temp[y]}}}}return str}function stringToArray(str){var newArr=[];if(!isUndefined(str)){var arr=str.split(',');for(var i=0;i001lq1^@s6;=Qwu001NONklXyZ=tZZ9u)^dggo_s zaP&lMD1LDF1}z&*UD7mKFwGd45e&VCrcj9bph{~*p}AGTG}%X=&%~vfa-8HfCA}U{ z6i`*i3M#6Jrh?mzv>hM}taG^55#@TI{69v3{O3Zs@gmOOwU=wwZf5w_o%oQjMKF0Z zOq~oL{U$Yj4s zir*kP$>fB?!W=fXg{AAflvldQ$}q^wj#JbnPEJ-Fp9lO&ruZ%-`AjL=1T;FL+~9Dt zBg`E@oPQ%Im;8YLG@Kn+RIF|wi>*Ovl-BPYNa$HK`|QphPh3|u{=M?>Gj_ASd; zxWZt`S`Vu?d8FtJgTEVw_Kh;_<~o+I_ww^cvPgu_Ytkh zb}NW6sEY{hzVOp|@c z$%KnehfB{?88B!vc*lX+jNbSLfx2>TnV!kQRUTq7h3^B30>wo-x!G|ks5V4n3fp(M z2{m;ruDh=bFnmCSr(aCx{n>uL4boB!x){TwsV6+;kpaptP@l5rcVVei+Ff3pU&RMi|-{1 z?-3UvILz@^cH#R%O0vO4XNTzBBSuGPZB=;qnG7ncHTK5|hljcB2SGM$^>F(G*?b?! z$&6FlJ;u1jMGh_jCG2-o9(;okwu#iw)2rtSP_;Ytcj zv%U8@{TTSkl`wil5qO4!8Ku1JL;m!-%1a;ksjJTh;M#LTG&QSyU&t4NzWjn9Ss8J@ z2C^a^J-n5-KTKwStXS`rwvP~RZdUwY(*PN2Gg9MZq#2~A7^F#>QhWuu77bEUtYQaD zzBBS19>Q1Auuq(V3FGYtTd6Bop3T29(i=iNv}h$~?JURFK2e7YPlX>}2_?Pq!QBgt zAd8o7=J{7r_;79#af5c4erp3$CbqJ5my3!TjhEi{Gk>|4ZwOf=95$haBPTbbX-IS_ zID*Mj-Xjs8ymJWkb<6qq3qS9D?586n32kg4IcJ`yonFoR?m^+TSJw`tXc1|#g%CY!NtiI zw2Fr##y3k*MIvCJ&?VchZar@Ke+scnE8qM6p@5nUN|K;Y(jNOk^#L9*TOGE55dyQ> zu`Qho@D6BM3T7F2;@}1R*^u`-g+Rr>N*~Y%xP+jZurX0IiXZ)A5kp%ev_p0V{OAg} z{z6FcYoKL<8RMfl5q>`-jdfeyd>v*?uan|4O)w0I8wz^d5{bfcA&iTEmfcCEV{*!| zO^g^4LDNWp^m%hOT)GHLd}p@jJH_O&y{;py4rL--7JB_#N;g z9Ju)BKm&#Vj{&Y#8(5?$oHTD4-At2q$j`O&yDQGNgolGT!Nvg7pH5@e+zbK@8lB;O z@x8G_BUYG_;)})FM5yr0ODX%B(;2CT^p=Ts_=r}LQw)H19ge4&kOUTfiQZ zDPyDGLQpPHvq2M7b7Vm!trV7^{4B#63u{Kfs22=6Y;+;C;yMHF>!ETMjdw;nWF}yb}hhFS5H=T9X&GB!S92# zR8SRRQ*2Qr`{_9RC~iR87fS0J73%6^GLf%sP{mlII-t@LQ2;nfc)*DxBkjFZr6z@# znPw;Q`=h2o<%>0L06d;dPCBQ8gN5*Z(hC;l7>w^9LqbgjEl)64us~W{NL@fpOSmS* zrqSTA-m#4dOcYt@-(t(S>O|0LA^TklfXct80DA)`1IGaq0WSv)6|{VC3AU|x#Zsf7 z;sM;CsL;+;nv&8BAZUca6qL5*OB&4yIZebSv9I+8>vp=>uuE%KWE?C+{wMRm!TpBO zxA!Pey!PK`1|i-ira*$Yn)ru9@q%wMBpnH!0nXnMl2(RcbY~7*ZSNUb3Gqt4Eke&i z%XCP0!tnPUf_nky0cQY%0Xw1fpC~v*77Mg|3=O~OP;_zv+@+wVIX9;Tz@7lr1*F*% z245AQgf3}|NwvSLDqwmAlWn1?f~FvPf|X-Oq^*vK?e7Je_WiyLw+D-Gs7#6vAj`7^ zf{XZGKca_0Cyi}67|l7C&$J<5eg=Jo*+bLY#0Vn z-J}CZ?8WO{dl9i={Y`yXf5YFc&?r_ERNz||G2UY!c0U+zNe}p=Zz{lH zz)yfP0c~HHO}!A(e`JTT;FHjFqD+nt2*(SBo0Y&z?`zdBzo%x-UaaSZn~fAO1#J}O zX|Zv`wVD%;G=e7_9?!_hH1lnb`HCIdla2r-#SxS42us>Tk?ki)pVN|XfttK8Y)hh| zs$TMQKcli{4;{hn$pq-s17@Xpi0jQ5@vsz{VSFh(U5d{Zo~~O~5#mEK5{0-9KCjg? zR7g&8gw|qNg{Ec&w@XD)?BCRNRftw25>t8no_e|E_$3rbItr3cftHW#DB~d5q|{D( z)D?VsX1qtR$>{BNYa}Np8)^zsv3D?nZYcG{+m3I60i|`1?Lib(v&S zOHU|hoTe*^op{Hqz^HNhVwSB!k5#i{=SsriYGScwc2tCE!?;8LDq1n8cUpi9>#fsW zh`})0iBD2@7>fzpUVPFD472HL@Y zyuCnMK7r=Wbq9VIs`l(Oz-EUx#%3l!2bak016 zK@>qNSMz|b1R2(tx^M*1E#~dpu1&Iv9QkYRy2vSlW zcGz9%rgt~}tK##H1>bl(4RXY17(~v#NvnGKJ-swNJ%h=kM&b7-3lZ0|edi8GcyUa_ zzyuVFsw(e+$Lpm>kDip2mWqA$Wj$YcuO<5VOr>lkElKqn%}1*L_)CRGnLvE3hv#IUTKmRGRb`%Tv;Y_mug!NJ2zg^t5+We z4ID(UDI_nxwWS4J*Jb`C#pgg#6pJz}w6rwSrAr<~LX5wAZb`|K)#l#!o{y(%D#=9V zfa-(T7BFKrXYut0`hKzhT*hDI^(Ekq&_TAG_lOHE~@__rH3Ztx5_ zuDa*vf77;392GC&AmO_Sum~eM65uG{d8d_PC;REQ2wrR7jKCcbd~9D5+89#UTdlIY zLY3hG6tpN5ERRu~VUU_<;_-uTl-g;i#_FgXl!gG8jUhwzyJ>15)Dfyd*awzh_i8#Xd~_7{Bq`R9b1nrIc1m7bBo=+R@CzkGS&>DRXGe&fk_ z5~i*aSqk3qU(Np<+cC|A@mIwM5C|!>p-bTrd>x{Z25B>#>eump?L)B4+bk-?oiH48 zUPpzEM)!qdM|g@OLh1Fav9uL69-3NI{_>juS?LDt;Gb%z8%@tT3lOZZ`{&p7(&FM` zMvodpMP&tnK!8Xz%0(Al$XREeP4C{l#c#J*?@Nb}l9ED>NQ)LPUd-c+{vSLc}ip-j%UB0Hm!+lIP4tq`}Q43kDfg#6J9SA43eCj!moex8xA}4 zP-{iXRrbQ)W>U6&y9muW3>z_mYp=bQ+wZuO`|kZYpMCZjfx0@#%w+J8p}haalHwV! zD4Q?&f!@c?-}Zo-(?Q!Mu^Kk^v*v!HlQuzsDs4zk=?T!O2h2z|9np2{0S!ZOJYQny zbt+-K&HD-Kh|uwP&O=Ztfkut0S{K)x8{U71M@B1||LSEB+X^7QuT))gr(T+ok;%vr zqu49NS10Ds<90KB`u&`6!Uy#d6+x=WPIz{mGP;lrm|;B(A*j3MNjR#C>8C0`>J|XJ^yD|3I$0XGQ6m$0>ni zznLW`-J6-%`%4gG!gzlsiqEvHO+9WBY*uJPX7=!}ZO@1tFfsq@umEW{$2yJ|Y%4@8 z(J5aRBMBbRZo61*8I4^P9)=Bw@v|#~9k*Om%lply4L`Zx6^$FZ47>FW_0$IfQha~> z)1QRbE8(28&*9L+4y86w$Eua9@cMo1+PoQnZQHl9YRxL%e&cnnxcVyIfByp^*y9NX zgJ>=nefsoc<;vyBkNnZK<(5nJQVt&ZDv$}x0!~yE&@}LRAUO##(jY(A6pc-jlI|wm z3azth=7GhhrrPK8{3n5DuoPcKwNn20U*f%n4I55Xb(Q?%^YZeT`NE6r+_8gE!pq%# z_gz?@uUfT|p~AKy+#F`*>Xpp+^9*J@`$rL?PvpL7(`3%l(9j^n>mn^JPkH>WS{=}~ zPuj89qXX~PLHJE%Lz5!Kbf6I2Ap3td(v!`OLa!5k6+vvq9nr}?pcGzW=yk*=y`C5g zMpbs~^~lIG^LGI{gu5@8(S42MP*|y(@k*??TX8q((Q51JWC;DuZ+=VfUcEVN(j;De z?PX@p{2M16e}XIm&pr1%io10qD=SNSx`xIE%0=|+lAB9;c{xA*=}%>`5^QWl(^Qd{ zcj4{_jgpv7n9d=udC8h&D(gIkx@)iN{l#mN#w=c)%uK0XDDVn&h^Sj?aK%=;@Q%^oc=7MY2uA!)? zh~Ywvr<`&!H{EZAu&_`Hu_(WQ;X{XU)>-Fp-g)P7$L)9V_>)iY)|+o~#1ThWkw{j}k=BUJ z6Pv<@^8Odv9u9ylJKS7+dm)$HRv1%@^7Y|E`nEElq?MH9xVS(cA1} z`mK=j1QgDNqQzqTu-w3wtE~A02tEo;e}U$=pye}&Z364xn@ynaCK{vp`IlqeyLInQ zO zo^CaiW#qWw`WtxT^;h}$<5>WV9XpOg#!q17^5qm1COPgA94tJ1mrM2w|NMrQ!U3>sorl)em{n9YsG7AEkt;6i4J3!1-h9smJD!jEQs zB#OX0P*sJCFTRka%a#z=k*zV|P-N@O=S$+lFZ4nV0P)PV)BtGfRp52&jT5gf;OUpL zacctPA3a92P+ouSO=|_oWZ0S@ ze@Zfj8E4My+06c84#i!IFygupW`^{LhaY|z&prPv)27|alBG*nG;coLg;y27AuBew z+ry$&iU)AS7wyyo9$0*qcQt8_D2b<_zpen01lj-FUwndJ=6$hPV%3|_a*4Es-2{r) zp=OmWyS(IP89X;VK<7|F@!PvPVC^MW$KyvMm?g z+8VL?d$PCG)D+_M(@x`w$DiWOx87#@{r7W(5LjtR30|L<^77rX=TuWuBfR2V*$13A zXCA9XfdWubRY7)6HeRm>K(0VVRoJmxNumvAtmD%!?Q^^iLa;;AZ0G%)9I!L*Cz0Yc z_T_%M{`I>Zj`vH*`e?FeMDZ|r@?^%286)z(<3(F*2#SgnSxt2<6DLpPfd?L7`_}EEgpQ#yN&>58U>SEH6@j@ZDmqWBZZeNDecW>(GJ+XYq#8r z(_=9Jxtg=GGHoq^d|wKt5fA&IgL$ytPuc^7-w~Y@AS-NvdQDVSiqG+a`-R;Ow%Q^Q zr1%FESEIF&PGZ`wbAy=S2i+>ts<nNV)aI@i0 zN{WL5fV|kIP>`Sg>^3SZD@9YfJ4s1?Hf`KU+3qq5iwb4_u~bZeRW*4mW~P3R8@;E#4t8hY+#D$IxL*OfT>fb;Pd&}uweswTn8W{J;Ms;^0%Dr(tYCe zy3w#93#do`TFAoHS=2P72+_J3)-SwB6uWCDkM-d?`N(E~&mQ?p=4A6LvD(ezwK+@} zR?RntY=eMlC~=S{T7-~YD5@%phBR>jk3ae-vp$(6MK*5CIC__sS`#6?TW{g+T`rXx z5hlinDs0WF)gn9$79IIhc<#ApDaeVbi9~vTd?j@5YeJ}`sru+(T{GWq@+arb_R=AHrspksvY4#UW?Dl^B(+T z7a_cKssetiS1Sm``OV=jSuMxmz*UqN2dI1cz8ZczBbTyrFKtLp(n<$LyE#7&Nxax^c#@Pe$K2Mro5CodFiqN1V_z!r8iVl~ZM03j$9gH|d0xE`}Y zgcw_lOB!-)iOkB^EYaCQGzD!zLu*VSZje|3AMgasX-CD#NHI|W#Sz~>9I?&LqYXiF zGVucPI9sycFLy4&V!U9qf?9s>NVTGm3mkF!Od#X8(#p8xwKbx5|XIUyW^*-6LaJeik#VPI4 zvNAJ`3Buzy0T!eLCk;R85olh?qE$ z+?o*pO*7EggMyM!~xxKY#Vrm$~cid-(8! z519S=7n~{z$g;BS^8Tx;Di1IirooW@$-x)iOG#4{>G32Aa-*^Sy`pykztUq!BtDjT z6z~u*fWH%tINwwI*@9?}mF)HsuDiObO7@z5DK^39&zaAYPe0D?J-cNnUb1u<5B~1= zTyf=<{A&7iS(t3uvYGl|P~;-VaE|EQm+#)q&a$0U)m1Tn{`|INSWd|LS?c!wy^UUc z4_Ldy#m3zSuim^&gGqy8{PUqg(xLXI05J3fS8(+PJu1A zksR;h{aGLI$R4wo4a>=H0lkl(&KA+dED4KV0->7byrqMOuoB>>2RZ9o>ZV#p>0p0}bbJzwY zQK&;NkKTMxVq&kiATulHwyLTsRZ|oO4jiQa?6#jZ{^_|tW*;%-sE9a-u(hzL zYnMng@^)=S)n(Wy1TF@CvS#(#v;jj0RQ}~Je<=_bj>~RhKX>QN>o4c~hXzaoP6K>& z3>{bj+&lBl6V~#tk5X|OW_d+LMT%84h^S=Vb@$yH8XJNGL{HHCc-E}XM~@pjao(Ic z*NEnI8PE$j4me@m+V!q}gZk}x>#aA7#YrTY`-!~0LU`6;KsDb2%4w&b&OZS+isM)h ziG!%JDl5p(H*UNAj-6r^_Wb3&zu<~%uQKL-{>55x3b)GfzJ0fD*+$P^J@@XZ+><(c z_Uu$q)X0Qdv}0CuFYY!;tm-iT!@*)|MP=pNfk2%*7PGhFrc6Di<+RgIZK$fO$<4~n zbUpgOBQjEndq9^ixzU1d#k)3aSX;Do>Cz1JU!?#7Z#$e;q)ipI!g}~%)lJh)H+jBT_?wzshHn^>YpOo}BahCHYpcdfY zSb!2m!BFrQHMOb+y<@xvL;A|1JK9?+b^CV{$i$!==Xy zN8r`>dn(SE`>@yJc|9W|&lYH+EP2tZu!C P00000NkvXXu0mjfNJ%f5 literal 0 HcmV?d00001 diff --git a/Static/img/cars/car10.png b/Static/img/cars/car10.png new file mode 100644 index 0000000000000000000000000000000000000000..20dd4a21a7caae93644716b2c7f91b1184eadc35 GIT binary patch literal 15430 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 literal 0 HcmV?d00001 diff --git a/Static/img/cars/car2.png b/Static/img/cars/car2.png new file mode 100644 index 0000000000000000000000000000000000000000..1f5118bbf6251f03de5b6abf692dc35c65ca7bad GIT binary patch literal 9538 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

mI<+F@b{V`HCCVw18uM+#= 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 literal 0 HcmV?d00001 diff --git a/Static/img/cars/car3.png b/Static/img/cars/car3.png new file mode 100644 index 0000000000000000000000000000000000000000..d06a90e0c51c11769207c35511250b36ec38d4ac GIT binary patch literal 8991 zcmV+)BjDVLP)oEWd-7!Hr-$mea6w zwS=UQ{4y@TpW|-Qq*OfMs>hZl@i*Xpup5jAO+i9{S`DKzva>rSr=;8x9TW3?U|=9! zEoVqb2qmSYP@yQ2&F!Y15O40ng|u|#N?NdZG0k1DfJ@o5WlOTVU1YXdNpCWePS%kq z38WDUsh}{Q^73;jH#fUT@Y?{noc#Pee*Z#EAqk>}1U!eRmB?tdkj3F3qs788+ihfX zxybHulf&yJm(Rz7T2!JS|Sm;hRUw0f{KYNe#5bxcZ5zFV1^j8G&ewtEO?qV`?7 z(2^A^Xxq-6w0_ejnmS_!wdv4-tWF0RAfyC|@(c2qaMcQ4hl{E=8n3<{V&_8Y0!S^8 zq|=hlpywi6oldg5-Q@In$y2<*--E}%Nw5&~0!9$78d8gunUiBfI^F;|f5k;*a&kEh zSmZtf2h#RkyXfGNBeZ(mI_loLHy2Ze1V}n2NR5LZ0~gg|x3dH;(_;$o7>%gm0?S4N zPhrT*(zmoW;y>^{xEt&TGeK7%fe_WCYN&*yq$s54W^C(UF(H+p7bQuSsa@yJv}x;B zI(G6Tty#aG+H~wlCaaZ1t*8*A;^gEovM4+IdT>1``SEx^TvkyMEBqeNR`B%I$})RC z-afeezVZxne}lKdtzhR>!(2WHQjIHTVIXP^2_HvN{#(@6j-iS5c6|8RwPz2Pv`fz( zWVZ3tVW(9lClfI%E0Z!a%LeXW7 z2bc;v0O6`6Rtu>anwp-z7N_49m7cM2aU{wzHEY$1X3UwxlM@pt=-%2?##q+7%Xth$S_U&mV1f4Z+9<}b!flcT|_MAvmwk`4n z%&(Xb7ZbG7D31<6QhS-U|GcXu6a_wvK}4RM7`FKH*e(rRUJu*;6+>5z^D%e;9B=OT zFYo4bj%elcxo|nY-V2K1r*(Wn!izycLH{WQ#dU<+c@Ng2ZCjR{9Bs0%Adx zhk5v-V&N++sVvL14nx`5vuCNeVzcrYxC?uw57_krl>e|F^M-B#cF&(YY%KQ3x}4+;(@ zO!wsQ{NK(sfY+G?(KS*d71C6QZK>VbW>PaXQ`<~!BeiXFE!E4~!t6Qsd$;@V+n44A zE9Cp;%X8j8_uMlxXXeIN0-!J}g?!g<&>%jpB3DZ^Kw_FTqt49F;AinOll;3;xUNox3(II+`|`}0 zC;_8Q#n+zbRQU-{S@#(~)gafVd+J7kvS)TD59PN`G$NylDg~Sv1iF433D9@|7z~gP0gL zBNXsPju|7Xe)jP7eGIcIv~kf&mMJ5pD^!rOa5CGS+9=xdG46hbAm*)pL4o4o?M)$^VU=J@ zRW6q=fBqNX+OT26%kt4AU*nIBr$4J5fHQ0ETv@edjRM}b9Xk}zcJ0|CJHdVg+la=$P`Oy%m;)euP6o;{VsG;ZQV#URsX&CjAeWQey4sO7Q2$ZiD0-+|o- zM0V`9Zr?7a&zw=4X72p?%CCcm4O6MXsIg;}kNXZ7K;M!mQvG*VWy>b$+DK=H|33(v z_NLj&4}MeKHE+(mM}?(NKl_XqlxR|4r$GZI=>#V8BL%8f?b=D}*jV+x{z&2{#K&6% zDnUvk{)sI_%Sb%8n2a% zxn719j zA2&v6s0#%EC~NXlvMpaz8rN=3)nClPL0_*jHK%HtXQezvFmn8mS}zA`ilcZeib9Wo zEQF>&Ayq^c5_>c@2u?eDjvNA@EGq5tBd=ET2WSGgSoD7<_=R~fH@1bfc#iMzqob?K z*@8t1pUYpMz$N7A-{rHjyKG;m(D~wyj%U%9y@2n1C#_h01H%6;uxi(ohJVx1jCK6- z#t-JAA3~M+;K2i4FaeOF_8Ua*i*WX(ELpSMeG3);>(EPSoO((JK{#jbTvrMeDRRNx z+v^fvZ+t()4#7z_9X@Il^C+eYnoU(I(VO8|6+fBI3#Nfd6@r33pQHHif|jSVyBmQD=5&z~oQDO&7bAlrTvClt zfJF(e6gnpS(hO}JyM;foH@nC*+qhbLL@4xq?C**B~g(jB_t$NJUzXjl@?Ia z)w}P$`xFag+{u(#$d&{w3jxKZeE`&{NC}vCty#B@8%b%1hmek(JbhX|`}}jcaPgvC zy?RxpDbJrjSHFM0az(!S`fE9H@}w#xmakkXrID{%2U6>ESTdnvPIHjLehX4})fRPB zAayo@)Il+8VH2|!EJ9W#NHwbxq^i|w?sFE7l&k0$Mik?7{5zL1Ci$4)OrI{jxVgGX zxw7S@Liq}6J;Fl6B?#*i7#Ji$fdG6+m_&p}O7UXF<;^$Wly}~F=Lv>tE^=*C0@RAQ zb^`Ty#*7?*dDYtLeT8}M!H|0X!UY19c_I7jDFG-K=o$u_Z;~~O;UbkY%2kkvh)D7C z^A`^Q)71@<5*+2`?jar?p5pE8BVl3T;)UmIY;5S1$B>;an=|}S6jE~+ERfxM_sW5T z2W1a_6QG;7ZY5x;KQbp{@ugU$w@L0{QN?_%e3dGcy14l$buooeMU{)2n~A-O5M+s| z09J+kJbBg3!LJ~NQKnNM1)I78s4qb3W@1x<)JcI~Y zXF8JvXb5txig0pcIJ6fWILywDLc12&e|YDex1VG|_$Xbfv{Wo#kvo*mP#0ggFn~}H z3_-ImsBRZ3R9HF4(a}k~6ksFx7@fk!`rbV6V(9N47smpMAY>R6BBQvFoR2NG~UG(VxIR1!I1V9U9}NoJRKe3Hi>GeEITARqR-X zb^??aN(ay}&6+irwryjjb!z~tX)~!&qb683KsluVUQ-B;bH;lD;1Dk_Z&6?^R#cxJ zRSeh-RXz(SOLCM3Ddi{@P@MR$Vkn?An^M8xXR$3wMl}{2#T^`y-S21KY6L66>G{&U zlx(W6^-H-?g!MgyQgO3Uk)E zmRNLwxoniMYL)Cq=-j(+AN$69oGd_xns&Mi^Cmi!Kuxmi!<-Tc_`SRcdsVAclc3-b z0#ohCvIza(eDke5dh`To#cerv?!4^Ty+?NK+$E<@okAXYT|WQfD*(8i*qL^A@!}=8 zgP9g6usR#k02W9|6i_dfqqwM=O+x`tgk1sw;WR&u!z5-ZfOS7q1N8eihNnOZ(|M^` z$ftjQ8}d;+DK^z1ztC?(e%^fQSc^sfQ%7Ea^urMH`S*WheUQ#3om4<%i-?R82ZVF3 zNjb3U*I$2w^|&R+j~|y4Cr(SR9=#Ljd&hci+p>rOTy#Y)6?oWts{@IdbHXB87@bpkI&-9Xvt~qY&D&XCHG{ zGAutsIizTjqAao=aWm*>K#;acfgJUoiA@Poiv9NX_SP0s8no6{{1!s~@AFc!X)#9! zvycxaWym*3Qe;x*r9Kw)Qu>2z%G})0fn&9Potr!yxqqor?}-CaD}ppOwmsKG0W@KG zf{Jn-I&{SE7QfB{zw)Z&%bQO^0zzfl)LHWFw`Y+CwNhX$jP)Q`9ZERxwTuLpQUKH& z8l>f5cVEJQsTwb1u1F@^lT<~yWbrcOo`q!k z^jTtlv^g_I!oq^XW%jIja_RDSR09ZBrU7&ct5hzePF)z6n=<4xdgubm z$fgYWod2{Iq`I)Ono$YR#H1*v#H6TVT8bh_$)>t^%Eu8zFtX+8efnb2(xqfo{TTnQ z3inKxsDBA>WKmSwOM6w^r!42B^AqiV&TTY-+6(1(0fyU+1NT zv=l|X6d=uw*Oo|hjhL@<=!F|nKZXM8NBX?3icYs~-<1_B62#_R8~R-7 z+3PoKly2R7qWAy4bjP|y$25`fh)94iqtaC;0KkhEEtPJax+7IPO;%QGLm4lt?(vr`R+wC|D)jK48E*ckj#W*>hEesQ**RfB^&L$dO~R zZ{GolkDn|N2uaLmD^;!{VbDtF&s!+5?J!&t-9*lu`9LO2oP=;^$6S|^7Q?@=d7!^L zL2BO5C!4Z>GG|ls0xAr8qcImffBt+@LndTQt6HZN<~;~fiy_~|5c18Ws3Ini>bz8e zG!I7{U$*${6p~Sm(efb=LE75dD)Mkf#ZGV~tXw5O{`j-l<+FQn)Tcah*OjZ*$ZpmQ zyLL+*6iN7QGsmh9mXoV9 zHcer1baJ>tMm1<$ERy^n`*=wd7KkiFka5h6!z5%z3g6TnSw-tznV7MnJb?lTVBmc^ z`2s7zYE`QLQ^ zPzLrNC|`d0wKQ$gOsZ9@F6-BARJL*BMlF+2cV!skLhA5O_O!O2Z!SmiSW9vzrl_-u{{uO6=&%eMI$Y+?Ss)W9Ou|}yj(TFM#KrZN1q&8QuU@^SNyDaGI|7w! z&87i6S_D16=gp*m%Kt*c)3eUbP9G7dr}S`xGlzqn9nt-97e7NHPKIO`BbliH!GW;6 zTi@r|`g<&j7-DplfBnWSUg)n5L2=bMrWwLY9P***bOhs5t_W6EtNeV3&Dpgx7~0JXC~hDN{d_Yvg&gIUf{7_B=2U3} zqQ#K!U~TuQKmpyyr{a>-ny^*Mma@Lj4RDrzX9Is*y78=s?3 zlM4SFaOdU&E}e!EsC5u}o)yLpEmo|^uRvuQkh+|e1r*Z)-ljTmn?)3vE;uBVc@UFx zIOM)GZ`Kl_H7~0B%u*Sly-k}~>DaN0L^p_*A%lm=$l)VoI*w2bg^srm&e*hRv$~xP zgA1yX#Ans3Sx>4|t;XHUW&y&5vv5{Ge;0;y3v!eW`Q~zz)=arUjT2J@nKb|;yINI9 zxd5P6b)Sk`>^_-_r`$ZqXw{l*+`O48h`!Iuo*SS7er_GH3QY?nb4>?bxwX)~#KqKss*BSOB(>w16zqseK3O(Y=REnh-B70d5V{ zY+18O>*j5wCV)qWuye&+iyMQ36}r$f6i`XYQ4INHQ>HHz)Qv+XshODKY^t#g(31%L13{!Zp`G z<@LN2sQ$p7tGgS_b>l1g2WNslu>{l*yx2dLKwAB1p*oY8OsiYGYgfJ8Tpkwy&~61WPeYf-qdsA9f4bnr0MLE&ezD(%y=k5n}= zDxA&AU*|&Cb>*K#0j2x-MmA;I!#vQMX?+4U$*^xcDqRd9G)PgFyH5!BESxAo5!kA- z*Z-9T#>0%sSrZn&EGqSV{CC6a^kGGGqMS`Yoi}fReE7jfkOpU}BKO#_6LJPs{=tKX zWYNM!D&#kgjzJ0*CozqprC*=E(j1+`xwGf1D5#5KZ%=QjQMsnLySsB;m;&HCE1)uk zIcMqnu^tEt4uX;pE>R_;9!8Za`SuH-;`s35#DE$S7M7aO&)zz3GlYH1FUVFLd-Mcq zbrdm|p@Sx@SP7<@Dy!G5MU}rFVSa}6>D^ai+s48v@zM@LeJsLD|33Y}x_f2#un`D3 zLzTA2&$P{ME4{k)l1c!a1}Z{78I?f2p&7N7flZSrpfsBjr~rpua@wR;u_;vqor9|U z)6}cSrr-=InFou?*U|7E({F+^uj&6+vC?PLB^hhN2{(p*15mRmpq55o-^EnmjvYHr zPMU31MvY=nOvM10jlrf(q-FD#h=Q}hs__b_yLas-p#Z>*mEZZ9Q4x4w z-A3YswcxsN&2#0-&F5Gc{)SO~cpTiWob^vqEy-kbiJ#Oo4@VyYgJ@NV6EsUoROtJc!JYd7iA zxrjh9l!^19F8bYbaiqXm0 z$sDMl;0XQSlR0$4qR8q_6+@{xqcU7`;)w;1J7lD<&_nJU*I(&td_DjmZrQSp#P#kc zBayr(KyaQ576?FITds6jDgZRK>kl3{EWM!HF-2$=-Hfu74l&9(n5TShJg8R51Ww*o zxhO!X00}S#qMaC^25SQKY^WX*VF5#M8IMRO2dqp5jAx_B(As~0x^c5|z)0WEXO~}f zrHW$HQ0ym|{2}&p(4=jvc4{D+&-gds9DutMW ze0KFJ9MPV)NP2*9*x=D^ZX26){5<~8*`G@|lz?A~fpHy?9=Mu->i-;}e{Fbp*sJCs z%>%ojB`PlfRP~6lU;$=b0#Bfy#@FyZHCMjY*92hZ7c_%o7;g0-?pfX4C|jl+1z;uk zj{q1MGCbToMLmzOQN3CX)#u;3Wt&Ra=gpmu6ksYqyILlUn*@L!l8u|TDCbR@7%v~b z{}I}J^XU-oTq+6_uvPy$4HlPqq!FmbG=LyX6r6nC$f7h3;^=Vw7a33J>f2=UbM!ms zdKr-@>p4Q+8#!vUY}v9^e7t;(S}F>rRp>rVpy-bXHx=Q3z5=Q%qQE4q)wZoW)cOwU zKS(}&Ra0TiJJAXJD?zH;sK!lrfj-yKj1m>s zg~KT)Po4(ghOhwU^B4@uDIb6Qi2~mjUw$QaD2#I1=78#wmHs9GIjn+wb+62rHjARa zCJ)8bIzP>nInzUXs1_Qi&`FRQ>0K^y*}Ru@EFs9UUDWxp}y^P0M4^wx&_QK+_;g6(46F^TBdix}fCU?g zoGd<9?wkiRXU?<%whkSrbL`1eTl4hrM55m5!OopKpVqI{;0Z#>4ag!-YSpf@ch$-@ z&$4IFHWD_1mNTdAfQscStcdF#cO9=K>)uAF(hgy@|3iTSb|oPcyTh`+l7>G3-0QH8 zupg`h=yTXM7{l4$@&`V84Q2 z%o%fTj~FrPNUmHt19Ioi8Cs!S`6jV#Vi))C-Tz))G+u@b9`-Y)*q&oebZ+|G!NFme zt!?%?G@RdR;Na+3$H~RH6?9VDSN_gF==Z0``KZsRcQVwtyLm{xdJXQLJbCK;`=>vU zv7^R4SU7*txdrnVogL6;Ks2m9Y%1(xT=(ASc(i%Yy?c+JOd!>#0v?Bih6Vh=U!8z` z0~P`63tI%+4BH3W0b2nZ4yz5bv*zy0uok7f3ZIa0q?eRMeLN%NTI%$cqX8aVhYT7FN8z>ylH*tO3f zd)0pB|DUv27aL6VZzWg_M}s(1`n+YU);|HX-$3`?J8I;ZZG#34-QBr!mk;XHu5;7J zTg?jS<0xEDHg^X7TbyDCuzt+02(?x2LS8H#9EY6ssqwTUFI-XX6h zG^)vPo9jXL<%x~QP;}EcXBa002ovPDHLk FV1j|&Nk#ww literal 0 HcmV?d00001 diff --git a/Static/img/cars/car4.png b/Static/img/cars/car4.png new file mode 100644 index 0000000000000000000000000000000000000000..51e3f534ca57b72f8b19e7959a7f3044c5c07984 GIT binary patch literal 10188 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 literal 0 HcmV?d00001 diff --git a/Static/img/cars/car8.png b/Static/img/cars/car8.png new file mode 100644 index 0000000000000000000000000000000000000000..462afaaba39ba6ebebad5240f99cb32dc2e557f3 GIT binary patch literal 13805 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 literal 0 HcmV?d00001 diff --git a/Static/img/cars/car9.png b/Static/img/cars/car9.png new file mode 100644 index 0000000000000000000000000000000000000000..cc22175126bc52f197393574feba9d31f8ae708f GIT binary patch literal 15131 zcmV+$JLJTPP)4;_bWlfB($f zd2w=#KVv+SY6T!JC;;k#USI~;2o8ZOz!$s#9{`2HXYk?&yulrC9vlICz(h4F#Iio-f9tXCr}Zj2TCW$aE!m%30sO} zrK$*>7v~mA?iCkGUoI89(Sx56jNC}xo=M3!Sw`|noSuL7HY6l3rAJH)_aWE`CV)mD z6L4{I49EBrM+=cGdj+BMqHF@mBaM^bGk!(Ei7gP)P_ZIRfqJRqkYD;-^tenldQ!O# zJuXp+0t%KQzuZO1FIxffN|=@&xOvh&sg}75?pU}b)zD3F!@~6+xE2c6!3}-scxZneeNY1$EXp2HmbKDFxTxF#08Y8vT z8L773L}iU0R0(sH?mb~vkPC)n+*q5a@6I1bK$OU^9h$h!Yaa2(76?La|baB>XCu;*wX za&d+jd*u^KZn!xKzJw)4rIUav37u)C*p=Ohg%~R-3oo$WPzvljgr2qRK>j%jk(a9n zJJeB`jut?C{UN-15M6$VEMe?e6emv10%5Z-w}Y_|YhIHFm4}$?L&zP}I6ikhO;qY= ziA+NqTr{*D8~`UF*h}DUTuDcYXT`$wp9v3a00ymu_9TL9*XTcKC2UG#+fQ%=@ zF&v|*NLB1nOT?38!0FxNwf z-Lyt3f`uH97xteE!dn*RR!{+=i|Xr>;6jrd-?K7a+XjLi>ZYUF3N5XXYiTzGdlq87 zAN4%;0oV;DgLa@8NC1RRj`7dCqX%4XehPsoh{YEM$pj+mCsNP_i!(khU6o$VUP!MO zub`*3Ax2$%x{Ta#s=I+|8ayZ|yUyQ31%t^d%wZ6fJ>D}B&OvVEyVdnZ>WGkdEZ%pC zLPy)>Iy!9?YP5I{E`haRD5wu|0yHL8=`>`q2o3m*Cv(gHUg9=xZ0A zf}>y_=m9E%G{D)(G5*YfJw_GWaaIz6=v8>`7#Hr?AMSYVyE~SzVGdKdh~t|oD~GA` zQM4JUGV)^Rq&3BeAX9o6shmi7+#j?g80L80`7GVH1<0|(_o z&I8NV#XVl?9*0w-5ME{R40~}7P_r#UZ+CIwLjF8mO~cPXpcb zye~RSsij2<9jyYJA-LT#9UTSdE!!&gb;g(%EslTpEs5LGI}-PP4bu+3p8 zDwM9$Itf39CrDQavV%xQ7r!+DZ~^CWsVe4<91d5{x#)O{BSi!POOM5f?wsHg#S5*E z#z=90Qk20%*BONi)0=0{=w}8*ZS$T@CE^grISN9u2$QR`@#C=DQ9;YzWh1lGvFLO( z0fL(^*U$=?hStfnv<>Wq*p7m;I1g9BJw7l0HutfX_TzjW0VlzEtg&kXG2Ie~Ki&fm zh0f3MJjH({$TC7{3N!*7QbdqHs&TTqh~#wTn;^OS#vlEt{@Dw11HfsSj@sxodhh*bKo+#0q%l_z)S4b97C}C8 z){#%bv^)v;IVyr=(76+-$wK8eT6>w&YUAt`Fe}qs%M=XLn4bFqBmIn9x zzf)K)dh+&2!t>;xs|YvuKdI4>o;7Yw&suk)=bd}gi(UgMaL6bM8aIVrPMt-s=3rlW z$x3>&elxvZxt3ndoKJzn#?bRlz36Gfmh`x6HNF`8rp!X##zZ{-_CD@=5*6J+0r580 z+#R8_RhZr)*{Od?f7w6*U>(RGOJ)#=?+BtONb6*yD+iC<4A50;jB-vm4}~BvcMUy^ zucq56RdhMMijHSd(e`X=TAEcuqcZELZwdn)Rq7~N)ZUx7GFttx71Bqo=J3_tV|=De z*3anfB#1HB!|iHZT!TAt>hPpeZ5G;#E`7}V!z`}XE7sE69lPoM(G&Fk$Z>ji_!zxA z1P&ghcL$Ep+ui%<_3}0Ja`Frc>_3b}`lNaT3MgEb{4(Tb$FtlP_eX$GmWAmfkbL|X z_ELo)H+Th}f-Vr_=rjVcw^MWkX$#-AkuFxWDvsPox<`)O(p@?I|X9_caOpVXZiM*{iLddEH4{EG8afP>+%r=BQHe*I)bH^x!ym+3?=UkGg zqAxc0SbVRjU)KEWYESDlK}EX@1r8j+;(5Jv6}{cIi{2kUMISC-r4JV`(}xS-{3ZHu z_5!^>bDjnFX45uv7Zr;$X!uxq(Y+r%ZPbeQkl}J1iXtri>+;VBA_WW67kEqDtNv|5 z6oc%bJJ@Ox2>o*kC3nyeaG|kCcD}mM*#}!6)JWt)ZACKbDw1=1+!(Qv#)8RUHo}Lw zz#_;ER>#aP>O79R82R2!U}J34w8!6ncnxKN#=H z&W3b?KL^pvKVBSCTZQQ-k{$e$@ATJ!+F&f2z(+w)OK@A&>GmSo<^2-XRV>hFb~zz( zBR2^k@i$-5Ial#bosIl5S?`Z^rU7ZdQ!0# zSM!h`@xt^=my;)&h3uJ>_dikXjaE@%q0q%fEEiU;q=*I_HCkd0zNdM`Wc_m`e=VrE z^4!1Ku!TO}z0WR=iwhTkf<}zv`G3)S5I+Wu9M9o0{>^jD_sA+tzwY?NN*3l5;3IJ_ z{kz4O0Sp4y0omZJ<8X%akv5$vpjd@SFJ@HJSQsc8u%H453}+xjTf!Hnttc@;2)Ve@ z_q=^~KBi|a+Vfu+c-o)^A15k;X18E*J}y_CF9Z-Nm)mgchD8_E3M-s2%Eh0q;K5%iMx0Y_n|!--4-4`2vei6axL8Ks zS=DiPzED8odBxAaAiUOCg&81{Z~q-)^Z;GK6+pq@P%>!jWX?-?eEGsvx91&tu-n)^ z-&V*7H(88N>o;d1AoOIHvI$FM2A(X4fn5~kalVR%CrYO001nmQmi&C=L^f`T{D?b( zkZ*A@0{dTF=s-w^YG4`i&tK9UD)D|8J89;;95z9m{GAa}@nS)k%()dDmP2fBQ)2SM z@m|r#|50EpoXCv5!-xO0%MKBUez(B518Bco7uoF@PEiomaHSTm$YS);#I?tgElUo?E;r6Qj=Da_xWFD|>>jnNHBqwKQit+jd0RH4*vi|;l#<*cP0GA%8WYt79H z+#%FKrK9?4Jyp=^ses-Ef%MNJFAB)NtL zDb&L~$;hIN z4LV2AxPkMATkQS!9%KjvtOq5Um@3ePgQ8WMkqC2lkqqotdeVe4!dX{ z<2mnQPMjKIVS*sB@FCQ9p;5?$K?78?tXu|3@3LK zPIh;t#=Emp?PGo%fPc@xiQg>K`k`g)d3f&wv2eJGf=}pfiI5q^B+fnHmVBjVw=7xN z)-6%-LuU$y&VE_)*}5e{ShyvN66YnDTSAnc02iKNVyTT-;A(a({DfbT-6>Y`7SmO5 z5u5`jrD{3`4ukz*57;49(H5`)tO3iNRkR4q1=GPK7Zr^G!(=KN0D8$))LEgTHcB-$ zbyZVc2)CNMhQ(S8Ld~z!Qwk3g3p1}rxRDT_Tm0!3ZY*Gz4C8rcurB&3H9nb@uCJsL z2?+#(aQD2$VlgF^E8e$Ms{PiVt%mO+~PzIve z;;JRg>rQq;N6-DlwYK}1{n#6&+&rG~nj80kv$M1Kkus-9DXCMZk#y4wuW#O}`@cMY!N;gBnD_e*$+ba4 z9T9#Q`JycR@E<9!eokL(kjpkuo&x~Sz)r%B!4AXr!}h>-0F0Yq>tU;5%K*fMusN`4 zu!#WWXxLDIasWWt6QJx2YXeX=MYODoXj#pZwANROd6Uk@75_vkzm(PCVfu^o~i4rB%o+w_dgcL4ZMDk;=$a^=n=xpL-~oUlB3 z@=8dNqUtfhLBZcZ8XEv_?&kd$CWT%`Yn~a~T>1-_5sg45D&qi54+j$d43v9~W zyw(IHi_oNI(Kt%u^RA^k7Tx9r-QCtulQm|klEN(t5axTf9J*Q;L zoH^yxE5>{x2ANIWOYN3g9wqZ6FZ;S34P z=P{k{M-`B9VBKJ^?7cAQ1nWll$4J2QQ?eBX$lzF;I58PQbxWXF0U*EwPLi?pgciPnkeix6NOz84u$P&qpbQH zHVRwGMqvws!lnncBq;Oxg`HPYy;i-p6Q_~E{Jl#Gp!A93^lk3e53faMUA9bFMn_(A zUVpVOQl<=0R5m%NYqDg?wehyPKPC1A_e>gqH%r!Rk{fJ`PCq`xDZVzDT5m*8U2*tP z`wNXEuTisp6(i1KID^QT|{zaDk6GxywE$D`=BNZbA6qJe$!I zCbC#Qa8bB8Tn(Q${uYJe$X@!RpEzG)*<@4 z3BnI4>}eZ?J?a339c81i{cRMslhsR6*d_oaDQp!@VFAjVP-9770}`>CCHf6?Erv{*WVxeAZb#68hV_Q8vp;#+j_rXKXG3%y3&yo z;H0;F4?6P3pv)Sa(P-Ht0;DHwuAL`x^BDn2`o;|!aaTR;1Qvgd3oN!p_QZ%O=kP~f zw+)Z}3VQ;Tbv0>EN*~Qs#uv+6rjpZKYwU&FcE%o+)wyY^L%^gv|s|Dv#)BNnrLe2|qXnBr->Z zn8ECj@N*Q+>t~`!VdvVRu%R{z+r>sxov^yr+BsLOSV`7z*eHMe@u$3c{Z>AI5oPb*f0QfO z$Mfbbkean>)_AJp^i-Q{|-@@Vff_Isu%~49wQyfieX4v-wHfY;QMh)7O+@ z2J3!y%O1BCz3`UR&fYQsIa7ZWmP6fqWIBGLbOE~LCAauB0soqTo`&mCg#WiG8z|L0kK!FKC)}~UU~82rM!ly^6uRSF1-5x`wySw>9ZHIcHMfZ zQ>UI0pp3GlI0Ppma1rtK@l^|6-qquYLEO>@I)~p(pvxonn+Zr^BaD_ey%L+x^oi<8 z1UgzqIm-40oibC{gOQ}LQ!Ia{u-$AFwuOzt*0fRBQZ@>kDuK!?rMYkXa2wCL$5`)X zGl=>34c)vRYmm?h6O;uC6e0~(PFn+P@Zcfx`0-QufW7e7Uyl_qj~_oFE0(X4C5xBK z$`z|+>(=dZ?%X+f^7Ogff@s&ORck(1JACze*%5*B=FPA6oQ|Axt5Ow>T)bo~Y@xF{f&%%WV;{05cs&1je=H0^$*9IW z(zxL5JK*%XXV2v|#HPFV?#qoEHP5DhfS%nLElFV`jFxOcyx@_*QDBTsY*MRQEg3p!xU5^dK_30|v+UlpSFx%jHb>6#4S57%(24y_nX?H}0(aUCcVH5{QZ`L|_$s7wV5NsVlx!(yObnt{T_BC?z>f1X} zhhmcL?(U&fwIYa==?tJ`-mqcACi(RFt2}t{P;SG+)vi%nI=1g5`}ZA0Ju1EuiQHV> zBpEJH=8T{?mwQ-k&2)(se*z)Np=uyb{9Q8E?l{i zElO9JzPo9>Y{ zomvq6|5#oz3qO&fu!~I;c3e0Vwt>5i!g_(i+DaqI68bT(yx>W)^b0o$1`&8b&eKF`%Z&0C+rDK{!>PpLd8?x zo^SQ}9UqOI7>t&btO2-SNru~~If05^kQXms%c6x#B`7dR0WK7@Wa7lh;^E;T^X4vK zk{@OVkh8^E%9pJmlP643IqBK6=d>b6kaEEpIT>w9Q@+AUy)l$e>_tn5$|L4z$=AN) zZl^d8TU23AR6KoWAh#d;s*hFEAg2D#bTJ9R@ zyfPeP?#}WEk0UWRrdM$FWNryYn9<{8 z!h}icG5Zf3V*0{}%T_$oK4Bd+j&$tUS?=AvkEnSMIq6C6LG8r3FA+KOh^y6AJ-)K5 zXLR7`GeH^j?*Jvout@2+&;%frO$sNBG;DR_guGD#&un#lMH)*ls1tb|)s`+>F7F^Z zEnB)$5+zKm7m;9Mq(pr)i!5HeR2D8+#KmLoft=C(y9MWKSFT(|E}|je)X7tF>eMM| z(V`{6NeZNz53-_8s=eW4tIw|{RXWVqp-_O6n2t{!uGO5VXJ$B!rHofGO|G(^fd?a%1F$6vfGNy1ngHf-p{jX zU+5;2tN=%GsPyTaIVd*F+K^Td6Hz(-an;`Pn29X#7!z!t?{CK(ix)z!Nx{! zwyV8@r(&Nhy&a42>@VfU<;F8kcJS0Q7LN6OJJ9{l2$(o=5)~~o10bX)TXQz3Al)6Eu&N(VYDPD>A>!R)=!M- zWCo_57NO!w0GfxRdH)af)lR~wmyyEmj3k8}VWY5pBA~FjR9=Zw>5*HWvP5oQamwfQ z{3VK=81J8D_4!4&Vv>@Q-7s1*nz8ZZEfo1<$Bs$v9J!5q1Yk-ojT<*rn#9Z*Gi4c^ z{Mt3^B#`A0SOx@uB2eZVH)#gIE|%p`Y%4(|1l>ixIe?LqlvV*!?~_c}Cro{Gd*~Re z_b*XCLI!iE*@J`d`I1QWz*LtRG2ip7)0-Awx$F{G&ROHjNl>XHo{40?cVfBXmy$G1 zH*0ekm=hIj@K!aYcf0q==ZB9}&*vwEdi2Lq+U8@pF(aJ%=4So^>DrJ#(9{0GKQJ#S zMq#S3wrEKYbrE^xqenkWgSrjnABL~WW1nn;290FZsx>N6uY$!qapI&jsMkR909+~Y z-1Mo_0HD=m{rZiv2cNrs{RV2m8{j7*Cl?&K$Smy*`MzvkQ29h0(40F?-{>rXV9wTolAm?`WxP_A+cpThRDQP_?K3R~MoVM`-g7P94)6nv(; zNBSfHMoXSRK!;|J#)2{7AnbDGRc;wzii>3TyER4L$++* zCOv!gHtrL46;W(d?^D9nBgzbPo_jo$0|V5dZY6_)w-A`O%nv$_XxTJHASgm+X^}b| z@8hOo&nTmx8fbpM{}4SH&%_~M9c@tO8srw+f7l}Jthjf+C*Wen<*?nNebK94uvhpyb=^P5P2n|WnEvtC<%gOTyGXF z|J(0;Ef#*&zPdgkA;pvsqn-CJU_KD_Q2NOFBpCsNp&HET=v?!BaW^Okb!<}EpR z@Q_@;enaZjsVn2gOpu{Nh9S}(S5Cb;ocNeAV`T@}*^C*pRM$@x}KFDn>XR7b@+`TBv)C0D@Al`d_20&|y<=Z=V*NHU}j#%4^ffSD&pcDd>j z&pfCcZ3D^_eO}L;|Lwlrpt1bpDB!R$-RKDyEL@}t#Lb#CH_{VG(_2T>H=B3oKbmG zJ-DRSL#^IFn>vB)H4}ta9tk&E-q32SnGthZ6xAbuL(0fF6>eK)z z+qLT;y?XbP#*Lc5Sx=H4-FsjU%#<#jx)7WI^jSJ@TV^#XT5g2S%)D+?X6MEL9wCMBT;ZIP-j!TAg8TA6N z#z`upJYe5`1EgiEHd3`pHPowSOPkj1Kv`x57P)5cBm5R@Ap5y|{M6;;QhhG~?_ z+u`vnEO*1jGA8$=Da=c2x_KIc`=Pgec{i#Ss{oUj`)e|MabfiH7YZ zSra7!0Fv1SW+m2xq92&t!~`Zw4*EW}!7+CrjbwWq7nc8LsRTLTbLN;T7iin2ozzGE z*t&HaRVeNTYTBhsH{^>ARbIJz^=cW6Xt{3fTG_K_kCa3mbn29;P~omZE*~S^yY`SQ zph3pr>Ix{Iv})Rl-cr*P(rD5Y)!<&h>i*R9`OW1KbF_?9d4!;(Ahy=Y&C%2Ce)uSn z*=Q`#4eDD=4eF$@bHbvq*6%57T?2(J;1f^$0Z0OKlFlomV02s@movBF&A@3C`kJv! zqQyZ1bL!OT^7GHXfGwRs6Ui2(+@CyoTJGI{pp@9H5C-SYnTtIz8p{1*u&c>RkEjY8 zI%J46fGRs@_H0DYda?jD&Kk%!Gho=k$j~~r>qrMqYO5VMBewb+`Y~gz-jAZ9$SV9L zODZ{2ra1Bqn44VVc1oHwaah0vRmdY--22=E#oiyO1B;l$*D1lcM4RoK%rczssLbjsRJc< z+}N=)a^y&QKt$8IXw@4jK~QL^xa!5shZ)Y=)#}JtJXQlU6)rfVwyUeF1md$9K0g7- zXlX8w=x7<~@(6*+d}@Ad7sp4v96u16hJgaNaAz!M8jlGvQP_4i3R~YsVJosh9sR~B zYMKB{*A5pSNlcp#n zPX;K*N?i&;9XbMFv)q&~c15zK84A39Q|Po1fhS|gRs1)-@*`Kl;B zPtd?*lRT-65}4vyoXzurj?7xxjg|!F)L2eY%@tWTF@rhE&*_5>m++1WnQfY}G*Va| z6T(PY-2-4mKAGDWwMvvlQu--SN+y8wN4^V_sy~O+jrZXkCmk^<5Ncqu=NXOaLkUc@ zT@F@_0sWBPu%=BtVLv*&jvYN_OKFCpmwLQZ1I48>I{=Ss-mEz&>TK!IzJrtp4JI&q z_v|A5i=0&@$>lJ!8t%M>giWkZTc|IFE1nR{g876Zo( z5157UT=;!Y`gAgUFK%Kuk&lD3gQ69{jPdW~cbWL(q)( zkv9MG9hEgi%t@0V6rm08z`lc^q;r+Hw_?RA?iIA(Er5`t00?2Rob>A16H#)GELgBm z>eQ?SaP~*;*;I*yYuB#hK2znBKrkyKFuQl|E`59U_dZhaF;dxV z=!LJx^(R(9iX%h0Py-LZ`VQzK&48QWL^MDvR>L?WQTd>nl)=cNxDi; zh&s$amM&QekWP|7pY>U%5ChC;UlmqYCt+#l4 ze=Dh}f%?*=%Sgk9jiq~!-k`A6C;)*))sx}FI7zY&Y;3BG1Is$Fe?Pl>l+$0nYz5d` zD*ZYtr3vjD3K~3~9Y;ng3kCn5BGG88_fO`(WusRjsSM4eK-Mgh8=%aWFR#K?xdQp6 zZ^o>p?E-U~HSYC@fLW?YVY%z97dv_y*V&+~Z=b{|1^N$T`GVpP=OlGK@z>ve2gue* zn&32g0Th6WqK?ImAgZ$MP%bHm#$%52)I%P@yrEs2c8H!c7*&~ba^_A=qJ)MH{O%~j zrtp?68n=Lm)I|f6okA3Ulp2@8#rn!L0%o4IbU0cPn2Tb$m>UJ66_li~Iv>^6E{;VV z_t6^G7Si_D zZ=fN^%*(T#kVEQPH_In%#hZ?!Uy|S&>c^#lgJ-#eY!H(fVv*`yVOp~ZYZ0#m12YIs7w-yG{dXPLKR zTBs7IQPQVFR}#+=%JvPI#q#Hqra5w63~w-cMYTjpBm~lOSime=G(?W08|VS^!DyN) zp*J)hAEJSRu^dj6=yD0`P@osHIBjk!fzl( zwEQ_JvpfPQ9|Dy30m^#-v8vfV$;w zG;{1g$JHhmADI^0YOYB#!bRKMr9KE++Yt1|Ugd-k?CyW|o1()#d`s84wN148XkhY~ z5B5^Ctfd@yPNY01pu%q6yj8Mg&TiZ%Y~9nqq%Og-h)Q)XU%n#6pjA{xzRLWuA5{MH z7?PNYbg2xY>~c`yl`GaD#ThNFTeOxs)$3}3P`Bl&0Fv0?2)1MLWvg2}DUUsrHHZRY z8cZ!^_zsw*a_0QfI#ZU#;epZ(c3CB)?(yvcvlP(1CUJn;kbAk2@TQw#Te!LK^Pp>d zIfhMk26hn*3D*%>?^t{zDk!s=-ENM_S;(>|^y>x#f|H#+zhls~PmjLh<>{ptfyyZx z3=}Y1wQh^fpfxf8xdaQu?c2747*v(co!7)4kF<#(9;`;gf|cguOkv(LnOTB z>L*vw;&>Hy1#5B@YjOp49qU44q`3vVjn}#hJ0IKAUT-Wx^~3bl94UK)!d}#0O#5GK zWE4Cx!+761bYSUg?*+=uQ7j%ILUxl5dO+`9eU$Fdsa@yq_DQ_>@!42FD$52F(pM$? z?B2BpPJ0HM5|mAzI8{aggbz_SU%GUeI)k=B!-i1&x2UG~g9i?S5;szN#K@{#;oS9r zM7e~CKBrF(iW?XJrxElWFmnQ!<+5ab+aow#k%+!yWXrdj3O33fc=Mg`>f7PnH~A)! zjgWJ1U}G8UF1uXgDqwB~khjo0{FH6Q^R{{>kZqm`Wt&$*^%}eJ^8jui!|zU`7xV%) zESuzSkrt=Qtf-t;Wt|MYjrl=IRq@zHQ$mV_pfqv^ynhw?U-NwD4GSU>@6oe2YnePQ z0)3LBz4skQYGLrW8H-SK5Rav45zW$K2R%E{o8*!w%~+mHr2e-C^dF)r~1g@!}+KaUKhzYM6!c6*l!$Cy*A+TgY{sa?un@{%Sb!HLKPlXB;O(aF%aNFs}@_<^c!< zHEY&_5VS|8O`D-6Sf8+Yi)G5fO^w2b&x7sKAJ>t8#e94?7i4s%Iz|5C1qtr~7 z{&Jht>0BZ@a4XLbe*vch_7D-mX!`zOXBT}YC{G<=o~cK^C;(v$ryJX(pp5l^TK2t+ z&BM1YftD;l6zqcNdg;<->Dsv)3&LznrV6VT+zZiTC=z}GwilX_SzhVZxjXWS2T~l~ zSJPOI5V48fVo@a(;a4pDt2g0UoOjfX01A7uBwV$YzvE+cgfv@EY|_KA-2YcVN#nE< zb8_Q>Zl67!oWAm!=$dzaIA(%_DmsUzn*)3-i-h(YB>B;@XWSn$?%urz zb+)&fED7e3m56@28J)(1x7My%FWa~8M4B^5i9Rji&=VVGci9A!Fk!-f1_^K9m&yJA z4$MMn(|&Fh5Zpg1XU0~5&4!(TJ^N2ygj#N%e;L2dfHZ~mA?AUMU`3G&>;m=RF%i`( zSJ&r!(wLwtPguQr4cW7IzZwBc4R4l;R2ZI(C$Jk20%rTxaU9gV3*99HaRIw_>&9rQ zfT;(v18j}SPO)QwZu-3acdWtYm@3zdb{mYG^1P<6|3gO6jD5+*`^sX1!}whzC5jvN z3BbY{<0R14{re9{8>A>~9??D6>(_5WbNV>!m%I=J?=Tv2uTe*^dx}9*q)BJboM#yZ zsm?s3=)?C@{nW;GgoN%2&{Pdg?H2>Q{lKZpy<39ABY4;yI%?poMk z*nQZ?Xube?&W=*JF@L1jqF17K;;|p+XvBM)V2BFF8N1*;lfrzCIDrunu z2l0L^S`1vgm^O<=P%4$RG)8(B&R>KD|Ai+Qa5&l+Etxmadp>t_bA6K8+vnLmC-wcF z7ycc#Hm1wZh@4-e1CV^31u-mt-ihOVDH=Z8aoB->x1m0K%y_%Khwn`GNe!c zgmp#5t`PMo1{Fce+`4t^KW>8x&sNL2wd%e_`tot(hAj|Za=-4zShpNDXc$u@f>&s~W0rP?-hh>Hpf)$5VgjI(%gtdTmg!O=h8f-9Zf*qT* z*y_92+x!39I|r!8f*1csb|Ryps%)Ovc}~ z00I1M0-FN`3b=vZ@S)P3G?!N|l`Ls8l?{1LD&FG}!$&&`=PUA}QiV!aL~`TCO)h23 zm~q8S&JQVGy!fghK?3&(5+qQkz<~p`4jMFYV^B9q;>4{Q)@yj6dE@5lO$k1)xQz$c zF2c>E0>w|YNqPb)Qei;=;M@4cf>9*|8@|IRAA-RkqVbOli3aY;0$Qh?K$_`Den{Jf0%2V!UZhy&CJmd6CSLitSRvxt zZ90;u;C5b>@m}eOIiq52yP0&>c)TwzNDR`Y2o^kg$)F)(R|ys}d({x3WB<#fC!;+5 zbB$om3VDzs<0N4G7|+?EDO099CQo!GE88J-LB|fAj?S7n2M=wHyoM=|><8ol)4=m0 z`HLzv!l*myq#Q>k;reWK0LmsgNqK!g#vdRURua$+>;ca{V~oeZSWp!BH2xz&PeNtM zlI@y2`D#NMPmJg>wBcTrDo!0ccKnX~2(|%kj&h~Slb*Nv#fV`ekD?EQfDOzBr-3tP zx>nU%l&2Ygw`I##*YIz=X_WeWO`R`g&6+)^@jnZs*Gq|)R`dA?X8B4=I;fD6LLLX0 z|J%20*-r4cDo&m0^o&dF5PTBs0~dj#R<+vBy>v|)G{p@*`4)|JJ!z7pB3p2+8RYPJ z$mZLG#vdpcn@124Bm?O|7LW!+16~c}Ki89_bm9+bLwRXkM`Eblh!Rok8#Zjbx^w5Q zOY*j!piD@=Ui};u%T#ofEm4l^N{)Ip>#=*OxAx`U=-03RsT|pI*cF0#*C_e?JLpI} z!xAUy{iyf)W`%8$1nCLcdzbq;>xolawr)M6(j%KUZ&UqPXUwx@v(}Do6n-8tVvK$2 z)M+Q$weN7AMpE*^n}n+&wXS?h`c@9ZlD}C`Qsex&BY%WKZLZ1&ks?MW&gneKOGzYm z2M)9yv$+jkWwW`>8Dz7~>e8j_5@O}MbLYu>SB^xb+(|E7$0X=;l;OjOd=ukOVln-O zu+68lMoAf!%Tp`TB1VWL2ayg6QaO^RY@R-!Cr`fJg$fnkk~??a0~s@By2A9=o;+D{ zIgkj&gnNr{HK0aH!ZX4sjf z*SPfKRXI$BWB9xS_#-~zUA0IrP8t0BB2f!)O;xluG|4oHjI7P8D%vdaMYdk25%Ob% zAIX?8b1cJ>e@Rb#kv%q$YV3CTC!{NCZ#nlg+j8m4y9o2QAQC{GyLu;hQymC$T>Xin1m8ani+=zt8*8CHo2bglb5{)FdO zaWZ-1?AdaJFf92l(t{G-s6-vw$xJy863=?Z^i(7ZiZ|Vb?CqS;Gzf26ek$;JGc5UU z#f*FUL1%)~Ifo&`EHu}_NnY{8Y?;`*J002ov JPDHLkV1mT?@uL6$ literal 0 HcmV?d00001 diff --git a/Static/img/cars/finisher.png b/Static/img/cars/finisher.png new file mode 100644 index 0000000000000000000000000000000000000000..f5f9424bde56a7d522fcd546e679949ddc4df356 GIT binary patch literal 38498 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 H>+b&nr8n8% literal 0 HcmV?d00001 diff --git a/Static/img/cars/lightgreen.png b/Static/img/cars/lightgreen.png new file mode 100644 index 0000000000000000000000000000000000000000..adc2a0a54b8eea9ea461edb6bf68ec4b005ac44e GIT binary patch literal 24706 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 V{Y;m{RZjo_002ovPDHLkV1hZ-!&v|T literal 0 HcmV?d00001 diff --git a/Static/img/cars/lightred.png b/Static/img/cars/lightred.png new file mode 100644 index 0000000000000000000000000000000000000000..d875ace6ff0bba28d54316773449bf18eac7ad30 GIT binary patch literal 24928 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 literal 0 HcmV?d00001 diff --git a/Static/img/cars/logo.png b/Static/img/cars/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..cfec3992845b671d73177eafad03f4af33edcccb GIT binary patch literal 12754 zcmV;@F)hxCP)u+qUt3bx*3Ma{2a8jz2P0Pi-nY=;`Txr)T%P zU<9>XRk>%BytX1xFjUPZzN=4>xGldu_7Mg_%57t zg~!^_j88D^i^D!_V?O^c(-33sSmuij&_>hFNajcu8N^gBWK;Mgo$f_UJmS?y zOcx8pEHOz85v`0wixtI12Qfj+rSC*BNVH|HB!c2}X-*Li{)mN>!wNT^Vs;4-O=VM$ z{kK4@@(7H0AEe=@Zuonr*d}HoDCG#K_*0O?+BG<*=3Gu00bDE&623TVPZKL)p_oE! z)MnnW|LIvAL9(SHux?RIl=MLf_EU_0p35c;F^Li3Hsa|9@}$RHyS$-&eNkM z5wKImZgGJ)E)I%~h*v}7DN<1k6C1=aI3PBW0IhIt*nb@OA;wLbD55%d?i|hmbrn5D z9S%R7F@-%1(+Ii(5-HM0V7LgLx?%((FrUwD`M#xT>Jul2}J!G9e z_o50WkZh^VIwQDXW^=jJ;|!wx2sWokX08d?bBVZATtH0BVVwdI_IE2T@HYvZtQpUX zq9npy2Ol-{K@(_*FKXehawKFndyX-lQVuZx9Fr%?@M@_IRk0x(o5Ix(qlJs z)W@!xq5?K$5W8W1R)67!Pl}65q6Sp)%SHs8I7v44TN6LF=i==NU5JB*tl_ac_H+}r z6pUOTE-2k^?qdb*Mm(s`Hxbm!*hrr7WEwB_yE}}!SN$K==NrYvVvXpDlOs$A`YTN4 z^TLKWujfQ02U1paCb>7)UwZMyop;>vXytJmtbH62YsFB4D%U9eP2v%-Vgy}B(Sb2} ztm*Wsa7rOUtHp8HE*5i9jQ0jHn`hZ6E{G~p>6RwzZg_pb-M{_T_tx)!DA{}FVWR>b zZ^H!UUrd#EjD4;#_Luj^rJAND!Y8$^CMzaL27E~2$)AgU0fnMTsPyaY6t3%n_D)tlIE zj}4`;DVnjq1T9&(5uC=NBlGmfrcQ`&75XI?`p+T+&9E_t%BcZ9>5d4sJ(Z2dUSl|q zVu*Kh(SyQeBCm%zFkOtpryW?MG;72V8_v^B)Go9V3zT5r{n+)=w_fjg?I%z4xcbAD z&9~iI)eyAB3iT>w4Kc>$+e0ejT%v2ir{>m6n@>s%i&8P+3&u zXB~oen%Gfm_MyjQ)2|jD+gk5^=*2Pv=Itaf8*+f&^H$@aI6B=l&4+ig@oE~>eP ztb0gYSAXdx&o@|c`BTNZO}x^w1$K*lV!t>52N9x+dtUe1H>Te$VJp^k!Zk+U{fytu zd|P2RLUy^hUR=}u=(DdiT7C6pB(U44M(i$&Oi=?d*eR~D1PxnEo8Iet%XjzmzVXXN zj0=PWLzHTZhMZeAb~*j{2ZoypqBFM6;%rumRbH$_pqC-~^NfTXKtk3R<&0`3%(zt3 zNY=)P&p5_UK`7fBe`1JZoWqBp6(P>rAY|jk3^CL5CmZIfg{Y*MqUML7RTRyzaV+*t z6hmxm^nPNSmqlICiTzE-x9h|fu?;qJY0hW8?g(lrd=_QcetL?UH(f4%ql=xWfhmad zxB*i+++sZaVr(`ZDGIo``V&aw{a_-8IajQg7+h_Mn4Mh`+*hkj-m!~H$Jbob#d5Jn zTmV}*#QFq5IQu9=K&|JwcAdF)uN%Jj0ztY!T!rx5z|SkiNpYb3@D-3UyGjiA*)T!taS%Z+(vv6prTpIamuPesQm1g!%8=x@aA8qRTw zjg8(_bDAhgTz4bJ7ZA@o@a4e?9mB4jd`J8Y>qYW3wd z^Xw#1E)bVR7p-!&RsFO-{Pe>a^}F=tkG%0DLQ`(t!{WMHvkyM$y^bo~H#%SR+Pj@D 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 Y7T5qt_CD05sQ>@~07*qoM6N<$f>1CIDgXcg literal 0 HcmV?d00001 diff --git a/Static/img/cars/result1.png b/Static/img/cars/result1.png new file mode 100644 index 0000000000000000000000000000000000000000..04ec7f8f9f4e256f89e3f76d2382221935e02140 GIT binary patch literal 21115 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 II0sCTKS;04!R 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 Hw|w(IAOkF& literal 0 HcmV?d00001 diff --git a/Static/img/cars/result3.png b/Static/img/cars/result3.png new file mode 100644 index 0000000000000000000000000000000000000000..17ce13919e75928de9c4343949910736ec123525 GIT binary patch literal 6620 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 node.remove()); + target.replaceChildren(...Array.from(doc.body.childNodes)); + } + + function renderStatusBadge(target, text, className) { + target.replaceChildren(); + const badge = document.createElement('span'); + badge.className = `inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium ${className}`; + badge.textContent = text; + target.appendChild(badge); + } + + function captureButtonContent(button) { + return Array.from(button.childNodes).map(node => node.cloneNode(true)); + } + + function restoreButtonContent(button, nodes) { + button.replaceChildren(...nodes.map(node => node.cloneNode(true))); + } + + function setSubmitButtonLoading(button, isLoading, originalNodes = []) { + if (isLoading) { + button.replaceChildren(); + const icon = document.createElement('i'); + icon.className = 'fa fa-spinner fa-spin mr-2'; + const text = document.createTextNode(' 保存中...'); + button.append(icon, text); + return; + } + + restoreButtonContent(button, originalNodes); + } + function showMessage(message, type = 'success') { const styles = {success: 'bg-green-500', error: 'bg-red-500', warning: 'bg-yellow-500', info: 'bg-blue-500' }; const icons = {success: 'fa-check-circle', error: 'fa-exclamation-circle', warning: 'fa-exclamation-triangle', info: 'fa-info-circle' }; @@ -31,7 +119,7 @@ note.style.transform = 'translateX(calc(100% + 20px))'; note.className = ''; note.classList.add(...baseClasses, styles[type]); - note.innerHTML = `${message}`; + setNotificationContent(note, icons[type], message); setTimeout(() => { note.style.transform = 'translateX(0)'; }, 10); @@ -49,22 +137,9 @@ return new Promise(resolve => { const mask = document.createElement("div"); mask.className = "fixed inset-0 bg-black/50 flex items-center justify-center z-50"; - mask.innerHTML = ` -

-
-

${title}

-
-
-

${msg}

-
-
- - -
-
- `; + const { panel, cancelBtn, okBtn } = buildConfirmDialog(title, msg); + mask.appendChild(panel); document.body.appendChild(mask); - const [cancelBtn, okBtn] = mask.querySelectorAll("button"); cancelBtn.onclick = () => { mask.remove(); resolve(false); }; okBtn.onclick = () => { mask.remove(); resolve(true); }; }); @@ -221,7 +296,7 @@ .then(html => { const mainContent = document.getElementById('main-content'); if (mainContent) { - mainContent.innerHTML = html; + safelyReplaceHtml(mainContent, html); highlightActiveMenu(); // 触发子页面加载完成事件 @@ -318,11 +393,7 @@ : 'bg-gray-100 text-gray-800'; // 渲染状态标签 - statusDisplay.innerHTML = ` - - ${statusText} - - `; + renderStatusBadge(statusDisplay, statusText, statusClass); } } @@ -362,10 +433,10 @@ const submitBtn = profileForm.querySelector('button[type="submit"]'); if (!submitBtn) return; - const originalText = submitBtn.innerHTML; + const originalNodes = captureButtonContent(submitBtn); // 禁用按钮并显示加载状态 submitBtn.disabled = true; - submitBtn.innerHTML = ' 保存中...'; + setSubmitButtonLoading(submitBtn, true, originalNodes); try { const formData = new FormData(profileForm); @@ -403,7 +474,7 @@ } finally { // 恢复按钮状态 submitBtn.disabled = false; - submitBtn.innerHTML = originalText; + setSubmitButtonLoading(submitBtn, false, originalNodes); } }; diff --git a/Static/js/controller.js b/Static/js/controller.js index e69ba9d..be61c06 100755 --- a/Static/js/controller.js +++ b/Static/js/controller.js @@ -1,13 +1,5 @@ (function() { - // 常量定义 - 类名移除avif并添加ja-前缀 - const CLOSE_ICON = ` `; - const RESET_ICON = ` `; - const PREVIEW_ICON = ` `; - const COPY_ICON = ` `; - const UP_ICON = ` `; - const ERRO_ICON = ` `; - // 基础配置 const scriptBaseUrl = getScriptBaseUrl(); const API_CONFIG = { @@ -76,11 +68,265 @@ function getScriptBaseUrl() { window.addEventListener('resize', setVh); window.addEventListener('orientationchange', setVh); + function createIconWrapper(className, iconType) { + const wrapper = document.createElement('div'); + wrapper.className = className; + wrapper.replaceChildren(createIconNode(iconType)); + return wrapper; + } + + function createImageElement(src, alt = '', className = '', width = '') { + const image = document.createElement('img'); + image.src = src; + image.alt = alt; + if (width) { + image.width = Number(width); + } + return image; + } + + function createIconNode(type) { + switch (type) { + case 'close': + return createImageElement('https://yanxuan.nosdn.127.net/0c64ce12c71cf276504cb2e15164d4ff.png', '', '', '25'); + case 'reset': + return createImageElement('https://yanxuan.nosdn.127.net/8296ea39d8c548ed320f79a483756cd9.jpg', '', '', '25'); + case 'preview': + return createImageElement('https://yanxuan.nosdn.127.net/520b793c329df6349a25404efefbd0f4.png', '', 'ja-action-icon'); + case 'copy': + return createImageElement('https://yanxuan.nosdn.127.net/0732b6e6d1f249dad11ac7d004af5964.png', '', 'ja-action-icon'); + case 'upload': + return createImageElement('https://yanxuan.nosdn.127.net/94494a4dc561ae21157f50764ddf035e.png', '', 'ja-button-icon'); + case 'error': + return createImageElement('https://yanxuan.nosdn.127.net/74777259ff515f056e8fc340df28fcd7.png', '', 'ja-erro-icon'); + default: + return document.createTextNode(''); + } + } + + function createUploadingIcon() { + return createFontIcon('uploading-icon'); + } + + + function createLoadingContainer(message = '加载中...') { + const container = document.createElement('div'); + container.className = 'ja-loading-container'; + + const icon = document.createElement('i'); + icon.className = 'loading-icon'; + + const text = document.createElement('p'); + text.className = 'ja-loading-text'; + text.textContent = message; + + container.append(icon, text); + return container; + } + + function createStatusContainer(type, message) { + const container = document.createElement('div'); + container.className = `ja-${type}-container`; + container.appendChild(createIconNode('error')); + + const text = document.createElement('p'); + text.className = `ja-${type}-text`; + text.textContent = String(message || ''); + container.appendChild(text); + + return container; + } + + function createMediaCard(item) { + const itemElement = document.createElement('div'); + itemElement.className = 'ja-media-item'; + + const thumbnail = document.createElement('div'); + thumbnail.className = 'ja-item-thumbnail'; + + const image = document.createElement('img'); + image.src = item.url; + image.alt = item.name; + image.className = 'ja-thumbnail-image'; + image.loading = 'lazy'; + + const overlay = document.createElement('div'); + overlay.className = 'ja-item-overlay'; + + const copyButton = document.createElement('button'); + copyButton.className = 'ja-copy-button'; + copyButton.dataset.url = item.url; + copyButton.appendChild(createIconNode('copy')); + + const previewButton = document.createElement('button'); + previewButton.className = 'ja-preview-button'; + previewButton.dataset.url = item.url; + previewButton.appendChild(createIconNode('preview')); + + overlay.append(copyButton, previewButton); + thumbnail.append(image, overlay); + + const info = document.createElement('div'); + info.className = 'ja-item-info'; + + const name = document.createElement('div'); + name.className = 'ja-item-name'; + name.textContent = item.name; + + const details = document.createElement('div'); + details.className = 'ja-item-details'; + + const size = document.createElement('span'); + size.className = 'ja-item-size'; + size.textContent = formatFileSize(item.size); + + const dimensions = document.createElement('span'); + dimensions.className = 'ja-item-dimensions'; + dimensions.textContent = `${item.width}*${item.height}`; + + details.append(size, dimensions); + info.append(name, details); + itemElement.append(thumbnail, info); + + return itemElement; + } + + function createUploadErrorItem(fileName, reason) { + const errorItem = document.createElement('div'); + errorItem.className = 'ja-upload-error'; + + const header = document.createElement('div'); + header.className = 'ja-error-header'; + + const name = document.createElement('span'); + name.className = 'ja-error-filename'; + name.textContent = fileName; + + const status = document.createElement('span'); + status.className = 'ja-error-status'; + status.textContent = '错误'; + + header.append(name, status); + + const message = document.createElement('div'); + message.className = 'ja-error-message'; + message.textContent = reason; + + errorItem.append(header, message); + return errorItem; + } + + function createUploadSuccessItem(data) { + const wrapper = document.createElement('div'); + wrapper.className = 'ja-media-item'; + + const thumbnail = document.createElement('div'); + thumbnail.className = 'ja-item-thumbnail relative'; + + const image = document.createElement('img'); + image.src = data.url; + image.alt = data.name; + image.className = 'ja-thumbnail-image'; + + const overlay = document.createElement('div'); + overlay.className = 'ja-item-overlay'; + + const copyButton = document.createElement('button'); + copyButton.className = 'ja-copy-button'; + copyButton.dataset.url = data.url; + copyButton.appendChild(createIconNode('copy')); + + const previewButton = document.createElement('button'); + previewButton.className = 'ja-preview-button'; + previewButton.dataset.url = data.url; + previewButton.appendChild(createIconNode('preview')); + + overlay.append(copyButton, previewButton); + thumbnail.append(image, overlay); + + const info = document.createElement('div'); + info.className = 'ja-item-info'; + + const detailTop = document.createElement('div'); + detailTop.className = 'ja-item-details'; + + const name = document.createElement('span'); + name.className = 'ja-item-name'; + name.textContent = data.name; + + const success = document.createElement('span'); + success.className = 'ja-upload-success'; + success.textContent = '已完成'; + + detailTop.append(name, success); + + const detailBottom = document.createElement('div'); + detailBottom.className = 'ja-item-details'; + + const size = document.createElement('span'); + size.className = 'ja-item-size'; + size.textContent = formatFileSize(data.size || 0); + + const dimensions = document.createElement('span'); + dimensions.className = 'ja-item-dimensions'; + dimensions.textContent = `${data.width}*${data.height}`; + + detailBottom.append(size, dimensions); + info.append(detailTop, detailBottom); + wrapper.append(thumbnail, info); + + return wrapper; + } + + function createUploadFailureContent(message) { + const fragment = document.createDocumentFragment(); + + const header = document.createElement('div'); + header.className = 'ja-upload-header'; + + const fileName = document.createElement('span'); + fileName.className = 'ja-upload-filename'; + + const failure = document.createElement('span'); + failure.className = 'ja-upload-failure'; + + header.append(fileName, failure); + + const detail = document.createElement('div'); + detail.className = 'ja-upload-error-message'; + detail.textContent = message; + + fragment.append(header, detail); + return fragment; + } + + function createPreviewModal(url) { + const modal = document.createElement('div'); + modal.className = 'ja-image-preview-modal'; + + const content = document.createElement('div'); + content.className = 'ja-modal-content'; + + const image = document.createElement('img'); + image.src = url; + image.alt = '预览图片'; + image.className = 'ja-modal-image'; + + const button = document.createElement('button'); + button.className = 'ja-close-button'; + button.appendChild(createIconNode('close')); + + content.append(image, button); + modal.appendChild(content); + + return { modal, content, image, button }; + } + // UI 创建函数 - 所有ID和类名添加ja-前缀并移除avif function createUI() { // 动态插入 CSS,禁止顶部下拉刷新 const style = document.createElement('style'); - style.innerHTML = ` + style.textContent = ` html, body { overscroll-behavior-y: contain; } @@ -100,14 +346,14 @@ function getScriptBaseUrl() { // 创建关闭按钮 closeBtn = document.createElement('button'); closeBtn.className = 'ja-modal-close'; - closeBtn.innerHTML = `${CLOSE_ICON}`; + closeBtn.appendChild(createIconNode('close')); // 创建重置按钮 resetBtn = document.createElement('button'); resetBtn.className = 'ja-img-close'; resetBtn.setAttribute('data-action', 'reset'); - resetBtn.innerHTML = `${RESET_ICON}`; + resetBtn.appendChild(createIconNode('reset')); // 标签页导航 const tabs = document.createElement('div'); @@ -143,27 +389,56 @@ function getScriptBaseUrl() { const qualityLabel = document.createElement('label'); qualityLabel.className = 'ja-param-label'; - qualityLabel.innerHTML = ` - 质量设置 (1-100) -
- - 60 -
- `; + const qualityTitle = document.createElement('span'); + qualityTitle.className = 'ja-param-title'; + qualityTitle.textContent = '质量设置 (1-100)'; + + const qualityWrapper = document.createElement('div'); + qualityWrapper.className = 'ja-range-wrapper'; + + const qualityRange = document.createElement('input'); + qualityRange.type = 'range'; + qualityRange.id = 'ja-quality'; + qualityRange.min = '1'; + qualityRange.max = '100'; + qualityRange.value = '60'; + qualityRange.className = 'ja-range-input'; + + const qualityValue = document.createElement('span'); + qualityValue.id = 'ja-quality-value'; + qualityValue.className = 'ja-range-span'; + qualityValue.textContent = '60'; + + qualityWrapper.append(qualityRange, qualityValue); + qualityLabel.append(qualityTitle, qualityWrapper); const widthLabel = document.createElement('label'); widthLabel.className = 'ja-param-label'; - widthLabel.innerHTML = ` - 转换宽度 - - `; + const widthTitle = document.createElement('span'); + widthTitle.className = 'ja-param-title'; + widthTitle.textContent = '转换宽度'; + + const widthInput = document.createElement('input'); + widthInput.type = 'number'; + widthInput.id = 'ja-width'; + widthInput.placeholder = '留空为自动'; + widthInput.className = 'ja-text-input'; + + widthLabel.append(widthTitle, widthInput); const heightLabel = document.createElement('label'); heightLabel.className = 'ja-param-label'; - heightLabel.innerHTML = ` - 转换高度 - - `; + const heightTitle = document.createElement('span'); + heightTitle.className = 'ja-param-title'; + heightTitle.textContent = '转换高度'; + + const heightInput = document.createElement('input'); + heightInput.type = 'number'; + heightInput.id = 'ja-height'; + heightInput.placeholder = '留空为自动'; + heightInput.className = 'ja-text-input'; + + heightLabel.append(heightTitle, heightInput); // 上传控件 const uploadInput = document.createElement('input'); @@ -176,10 +451,12 @@ function getScriptBaseUrl() { const uploadBtn = document.createElement('button'); uploadBtn.id = 'ja-upload-btn'; uploadBtn.className = 'ja-button ja-button-primary'; - uploadBtn.innerHTML = ` -
${UP_ICON}
-
开始上传
- `; + const uploadSvg = createIconWrapper('ja-upload-svg', 'upload'); + uploadSvg.id = 'ja-upload-svg'; + const uploadStatus = document.createElement('div'); + uploadStatus.id = 'ja-upload-status'; + uploadStatus.textContent = '开始上传'; + uploadBtn.append(uploadSvg, uploadStatus); const uploadResults = document.createElement('div'); uploadResults.id = 'ja-upload-results'; @@ -189,9 +466,9 @@ function getScriptBaseUrl() { const loadMoreBtn = document.createElement('button'); loadMoreBtn.id = 'ja-load-more'; loadMoreBtn.className = 'ja-load-more ja-button ja-button-secondary mt-4'; - loadMoreBtn.innerHTML = ` - 加载更多 - `; + const loadMoreIcon = document.createElement('i'); + loadMoreIcon.className = 'fa fa-refresh mr-2'; + loadMoreBtn.append(loadMoreIcon, document.createTextNode(' 加载更多')); document.head.appendChild(style); @@ -343,7 +620,7 @@ function getScriptBaseUrl() { // 清空上传结果 const uploadResults = document.getElementById('ja-upload-results'); - if (uploadResults) uploadResults.innerHTML = ''; + if (uploadResults) uploadResults.replaceChildren(); // 清空文件选择 const uploadInput = document.getElementById('ja-upload-input'); @@ -384,22 +661,12 @@ function getScriptBaseUrl() { // 首次加载显示加载状态 if (isInitialLoad) { - grid.innerHTML = ` -
- -

加载中...

-
- `; + grid.replaceChildren(createLoadingContainer()); // 初始加载时隐藏加载更多按钮 loadMoreBtn.style.display = 'none'; } else { // 非首次加载时显示加载状态 - const loadingIndicator = document.createElement('div'); - loadingIndicator.className = 'ja-loading-container'; - loadingIndicator.innerHTML = ` - -

加载中...

- `; + const loadingIndicator = createLoadingContainer(); grid.appendChild(loadingIndicator); } @@ -430,15 +697,17 @@ function getScriptBaseUrl() { // 控制加载更多按钮显示 if (state.currentPage >= state.totalPages) { - loadMoreBtn.innerHTML = ` - 没有更多图片了 - `; + loadMoreBtn.replaceChildren(); + const doneIcon = document.createElement('i'); + doneIcon.className = 'fa fa-check mr-2'; + loadMoreBtn.append(doneIcon, document.createTextNode(' 没有更多图片了')); loadMoreBtn.disabled = true; loadMoreBtn.classList.add('opacity-50', 'cursor-not-allowed'); } else { - loadMoreBtn.innerHTML = ` - 加载更多 - `; + loadMoreBtn.replaceChildren(); + const refreshIcon = document.createElement('i'); + refreshIcon.className = 'fa fa-refresh mr-2'; + loadMoreBtn.append(refreshIcon, document.createTextNode(' 加载更多')); loadMoreBtn.disabled = false; loadMoreBtn.classList.remove('opacity-50', 'cursor-not-allowed'); } @@ -452,23 +721,13 @@ function getScriptBaseUrl() { } } else { // 错误处理 - grid.innerHTML = ` -
- ${ERRO_ICON} -

${data.message}

-
- `; + grid.replaceChildren(createStatusContainer('error', data.message)); loadMoreBtn.style.display = 'none'; } }) .catch(error => { console.error('获取图片列表失败:', error); - grid.innerHTML = ` -
- ${ERRO_ICON} -

网络错误,请重试

-
- `; + grid.replaceChildren(createStatusContainer('error', '网络错误,请重试')); loadMoreBtn.style.display = 'none'; }) .finally(() => { @@ -498,39 +757,17 @@ function getScriptBaseUrl() { function renderMediaGrid() { const grid = document.getElementById('ja-media-grid'); const itemsToRender = state.mediaItems; - grid.innerHTML = ''; + grid.replaceChildren(); if (itemsToRender.length === 0) { // 空状态显示 - grid.innerHTML = ` -
- ${ERRO_ICON} -

没有找到图片

-
- `; + grid.replaceChildren(createStatusContainer('empty', '没有找到图片')); return; } // 正常渲染图片列表 itemsToRender.forEach(item => { - const itemElement = document.createElement('div'); - itemElement.className = 'ja-media-item'; - itemElement.innerHTML = ` -
- ${item.name} -
- - -
-
-
-
${item.name}
-
- ${formatFileSize(item.size)} - ${item.width}*${item.height} -
-
- `; + const itemElement = createMediaCard(item); grid.appendChild(itemElement); }); } @@ -561,15 +798,7 @@ function getScriptBaseUrl() { if (invalidFiles.length > 0) { const uploadResults = document.getElementById('ja-upload-results'); invalidFiles.forEach(({ file, reason }) => { - const errorItem = document.createElement('div'); - errorItem.className = 'ja-upload-error'; - errorItem.innerHTML = ` -
- - 错误 -
-
${reason}
- `; + const errorItem = createUploadErrorItem(file.name, reason); uploadResults.appendChild(errorItem); }); } @@ -588,7 +817,7 @@ function uploadFiles(files) { const height = document.getElementById('ja-height').value; const uploadResults = document.getElementById('ja-upload-results'); saveFormState(width, height); - uploadResults.innerHTML = ''; + uploadResults.replaceChildren(); files.forEach(file => { const formData = new FormData(); @@ -622,7 +851,7 @@ function uploadFiles(files) { progressItem.style.width = `${percentComplete}%`; if (ja.statusText) { ja.statusText.textContent = `上传中 ${Math.round(percentComplete)}%`; - ja.upsvg.innerHTML = ''; + ja.upsvg.replaceChildren(createUploadingIcon()); } } }); @@ -684,37 +913,14 @@ function resetUploadButton() { const ja = window.ja; if (ja.statusText) { ja.statusText.textContent = `开始上传`; - ja.upsvg.innerHTML = ` - ${UP_ICON} - `; + ja.upsvg.replaceChildren(createIconNode('upload')); } } // 处理上传成功 function handleUploadSuccess(response, progressItem) { updateButtonVisibility(true); - progressItem.innerHTML = ` - -
-
- ${response.data.name} -
- - -
-
-
-
- ${response.data.name} - 已完成 -
-
- ${formatFileSize(response.data.size || 0)} - ${response.data.width}*${response.data.height} -
-
-
- `; + progressItem.replaceChildren(createUploadSuccessItem(response.data)); // 确保响应中包含正确的URL if (!response.data || !response.data.url) { @@ -748,28 +954,12 @@ function resetUploadButton() { // 处理上传失败 function handleUploadError(file, message, progressItem) { progressItem.className = 'ja-upload-item ja-upload-error'; - progressItem.innerHTML = ` -
- - -
-
${message}
- `; + progressItem.replaceChildren(createUploadFailureContent(message)); } // 预览图片 function previewFile(url) { - const modal = document.createElement('div'); - modal.className = 'ja-image-preview-modal'; - modal.innerHTML = ` -
- 预览图片 - -
- `; - const modalContent = modal.querySelector('.ja-modal-content'); - const image = modal.querySelector('.ja-modal-image'); - const closeButton = modal.querySelector('.ja-close-button'); + const { modal, content: modalContent, image, button: closeButton } = createPreviewModal(url); // 关闭模态窗口 closeButton.addEventListener('click', () => { diff --git a/Static/js/pk10-bet.js b/Static/js/pk10-bet.js new file mode 100644 index 0000000..9c79b95 --- /dev/null +++ b/Static/js/pk10-bet.js @@ -0,0 +1,184 @@ +/** + * PK10 Betting Logic + * Depends on: pk10-sound.js, pk10-race.js + * Globals expected: GAME_ID, selectedChip, bets, periodData, historyCache, + * rankNames, dtPairs, I18N, curMissRank + */ + +function formatBetLabel(type,value){ + var m; + if(type==='rank'&&(m=value.match(/^rank(\d+)_(\d+)$/))){return(rankNames[+m[1]]||I18N.rank_prefix+m[1])+' #'+m[2];} + if(type==='bs'&&(m=value.match(/^rank(\d+)_(big|small)$/))){return(rankNames[+m[1]]||I18N.rank_prefix+m[1])+' '+(m[2]==='big'?I18N.big:I18N.small);} + if(type==='oe'&&(m=value.match(/^rank(\d+)_(odd|even)$/))){return(rankNames[+m[1]]||I18N.rank_prefix+m[1])+' '+(m[2]==='odd'?I18N.odd:I18N.even);} + if(type==='dt'&&(m=value.match(/^dt(\d+)_(dragon|tiger)$/))){var p=dtPairs[+m[1]]||[0,0];return(rankNames[p[0]]||p[0])+'vs'+(rankNames[p[1]]||p[1])+' '+(m[2]==='dragon'?I18N.dragon:I18N.tiger);} + if(type==='sum'&&(m=value.match(/^sum_(\d+)$/))){return I18N.sum+' '+m[1];} + if(type==='sum_bs'){var sm={sum_big:I18N.sum_big,sum_small:I18N.sum_small,sum_odd:I18N.sum_odd,sum_even:I18N.sum_even};return sm[value]||value;} + return type+':'+value; +} +function selectChip(a,el){selectedChip=a;document.querySelectorAll('.amount-btn').forEach(function(c){c.classList.remove('active');});if(el)el.classList.add('active'); +var ci=document.getElementById('customAmount');if(ci)ci.value=a;} +function toggleCustomInput(){var row=document.getElementById('customInputRow');if(row)row.style.display=row.style.display==='none'?'flex':'none';} +function applyCustomChip(){var v=parseInt(document.getElementById('customAmount').value);if(!v||v<=0){showToast(I18N.error+': > 0','error');return;}selectedChip=v;document.querySelectorAll('.amount-btn').forEach(function(c){c.classList.remove('active');});} +function addBet(type,target,el){if(periodData&&periodData.status!=='pending'){showToast(I18N.period_closed,'error');return;}var key=type+'_'+target;if(!bets[key])bets[key]={type:type,value:target,amount:0,el:el};bets[key].amount+=selectedChip;el.classList.add('selected');var badge=el.querySelector('.bet-amount-badge');if(!badge){badge=document.createElement('span');badge.className='bet-amount-badge';el.appendChild(badge);}badge.textContent=bets[key].amount>=1000?(bets[key].amount/1000).toFixed(1)+'k':bets[key].amount;updateBetSummary();} +function clearBets(){bets={};document.querySelectorAll('.bet-btn.selected,.bet-cell.selected').forEach(function(e){e.classList.remove('selected');var b=e.querySelector('.bet-amount-badge');if(b)b.remove();});updateBetSummary();} +function updateBetSummary(){var total=0,count=0;Object.values(bets).forEach(function(b){total+=b.amount;count++;});document.getElementById('betCount').textContent=count; +var badge=document.getElementById('betFloatBadge');if(badge)badge.classList.toggle('hide',count===0);} +function toggleBetPanel(){/* placeholder */} +function submitBets(){var arr=Object.values(bets);if(!arr.length){showToast(I18N.place_bet,'error');return;}if(!periodData||!periodData.period_number){showToast(I18N.waiting,'error');return;}fetch('/api/bet',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({game_id:GAME_ID,period_number:periodData.period_number,bets:arr})}).then(function(r){return r.json();}).then(function(d){if(d.success){showToast(d.message,'ok');document.getElementById('balanceDisplay').textContent=parseFloat(d.new_balance).toFixed(2);clearBets();pollPeriod();}else{showToast(d.message,'error');}}).catch(function(e){showToast(I18N.net_err,'error');});} +function showBetTab(tab,btn){['Rank','Bs','Sum','Quick','Dragon','Miss'].forEach(function(t){var p=document.getElementById('panel'+t);if(p)p.classList.toggle('hidden',t.toLowerCase()!==tab);});document.querySelectorAll('.side-menu .mi').forEach(function(m){m.classList.remove('active');});if(btn)btn.classList.add('active');if(tab==='dragon')renderDragonStreak();if(tab==='miss')renderMissPanel();} + +// ===== Quick bet ===== +function quickBet(type,side){ + if(periodData&&periodData.status!=='pending'){showToast(I18N.period_closed,'error');return;} + var count=0; + if(type==='bs'||type==='oe'){ + for(var r=1;r<=10;r++){ + var target='rank'+r+'_'+side; + var key=type+'_'+target; + if(!bets[key])bets[key]={type:type,value:target,amount:0}; + bets[key].amount+=selectedChip;count++; + syncBetCellUI(key,bets[key].amount); + } + } else if(type==='dt'){ + for(var r=1;r<=5;r++){ + var target='dt'+r+'_'+side; + var key='dt_'+target; + if(!bets[key])bets[key]={type:'dt',value:target,amount:0}; + bets[key].amount+=selectedChip;count++; + syncBetCellUI(key,bets[key].amount); + } + } else if(type==='sum_bs'){ + var key='sum_bs_'+side; + if(!bets[key])bets[key]={type:'sum_bs',value:side,amount:0}; + bets[key].amount+=selectedChip;count=1; + syncBetCellUI(key,bets[key].amount); + } + updateBetSummary(); + showToast(count+I18N.bets_added,'ok'); +} +function syncBetCellUI(key,amount){ + var parts=key.split('_');var type=parts[0]; + var value=key.substring(type.length+1); + if(type==='sum'){type='sum_bs';value=key.substring(7);} + var cells=document.querySelectorAll('.bet-cell,.bet-btn'); + for(var i=0;i-1){ + cells[i].classList.add('selected'); + var badge=cells[i].querySelector('.bet-amount-badge'); + if(!badge){badge=document.createElement('span');badge.className='bet-amount-badge';cells[i].appendChild(badge);} + badge.textContent=amount>=1000?(amount/1000).toFixed(1)+'k':amount; + break; + } + } +} + +// ===== Miss stats ===== +function switchMissRank(idx,el){ + curMissRank=idx; + document.querySelectorAll('#missTabs .miss-tab').forEach(function(t){t.classList.remove('active');}); + if(el)el.classList.add('active'); + renderMissPanel(); +} +function renderMissPanel(){ + var D=historyCache; + var grid=document.getElementById('missGrid'); + var tsBox=document.getElementById('missTwoSide'); + if(!grid||!tsBox)return; + if(!D||!D.length){grid.innerHTML='
'+I18N.no_bets+'
';tsBox.innerHTML='';return;} + var r=curMissRank+1; + var html=''; + for(var num=1;num<=10;num++){ + var miss=-1; + for(var i=0;i=5)cls='cold'; + html+='
'+num+'
'+val+'
'; + } + grid.innerHTML=html; + var v0=+D[0]['rank_'+r]; + var sides=[ + {name:I18N.big,check:function(v){return v>5;}}, + {name:I18N.small,check:function(v){return v<=5;}}, + {name:I18N.odd,check:function(v){return v%2===1;}}, + {name:I18N.even,check:function(v){return v%2===0;}} + ]; + if(r<=5){ + sides.push({name:I18N.dragon,check:function(v,row){return +row['rank_'+r]>+row['rank_'+(11-r)];}}); + sides.push({name:I18N.tiger,check:function(v,row){return +row['rank_'+r]<+row['rank_'+(11-r)];}}); + } + var tsHtml=''; + sides.forEach(function(sd){ + var miss=-1; + for(var i=0;i'+val+'
'; + }); + tsBox.innerHTML=tsHtml; +} + +// ===== Dragon streak stats ===== +function renderDragonStreak(){ + var box=document.getElementById('dragonStreakList'); + if(!box)return; + var D=historyCache; + if(!D||D.length<2){box.innerHTML='
'+I18N.no_bets+'
';return;} + var streaks=[]; + var COLORS={big:'#e74c3c',small:'#3498db',odd:'#f39c12',even:'#9b59b6',dragon:'#e74c3c',tiger:'#3498db'}; + var LABELS={big:I18N.big,small:I18N.small,odd:I18N.odd,even:I18N.even,dragon:I18N.dragon,tiger:I18N.tiger}; + for(var r=1;r<=10;r++){ + var v0=+D[0]['rank_'+r];if(!v0)continue; + var bs0=v0>5?'big':'small',bsCnt=1; + for(var i=1;i5?'big':'small')===bs0)bsCnt++;else break;} + if(bsCnt>=2)streaks.push({rank:rankNames[r],key:bs0,color:COLORS[bs0],label:LABELS[bs0],count:bsCnt}); + var oe0=v0%2?'odd':'even',oeCnt=1; + for(var i=1;i=2)streaks.push({rank:rankNames[r],key:oe0,color:COLORS[oe0],label:LABELS[oe0],count:oeCnt}); + if(r<=5){ + var a=+D[0]['rank_'+r],b=+D[0]['rank_'+(11-r)]; + var dt0=a>b?'dragon':'tiger',dtCnt=1; + for(var i=1;ib2?'dragon':'tiger')===dt0)dtCnt++;else break;} + if(dtCnt>=2)streaks.push({rank:rankNames[r],key:dt0,color:COLORS[dt0],label:LABELS[dt0],count:dtCnt}); + } + } + var s0=(+D[0].rank_1)+(+D[0].rank_2); + if(s0){ + var sbs0=s0>=12?'big':'small',sbsCnt=1; + for(var i=1;i=12?'big':'small')===sbs0)sbsCnt++;else break;} + if(sbsCnt>=2)streaks.push({rank:I18N.sum,key:sbs0,color:COLORS[sbs0],label:LABELS[sbs0],count:sbsCnt}); + var soe0=s0%2?'odd':'even',soeCnt=1; + for(var i=1;i=2)streaks.push({rank:I18N.sum,key:soe0,color:COLORS[soe0],label:LABELS[soe0],count:soeCnt}); + } + streaks.sort(function(a,b){return b.count-a.count;}); + if(!streaks.length){box.innerHTML='
'+I18N.no_bets+'
';return;} + var maxCnt=streaks[0].count; + var html=''; + streaks.forEach(function(s){ + var pct=Math.round(s.count/Math.max(maxCnt,1)*100); + var fire=s.count>=5?'🔥':s.count>=3?'💨':''; + html+='
' + +''+s.rank+'' + +''+s.label+'' + +'
' + +''+s.count+'' + +(fire?''+fire+'':'') + +'
'; + }); + box.innerHTML=html; +} + +// ===== Render result ===== +function renderResult(result,container){if(!result)return;var el=document.getElementById(container);el.innerHTML='';['rank_1','rank_2','rank_3','rank_4','rank_5','rank_6','rank_7','rank_8','rank_9','rank_10'].forEach(function(k){var v=result[k];if(!v)return;var d=document.createElement('div');d.className='car c'+v;d.style.cssText='width:28px;height:28px;font-size:11px';d.textContent=v;el.appendChild(d);}); +var tags=document.getElementById('lastResultTags');if(!tags)return;tags.innerHTML='';var r1=+result.rank_1,r2=+result.rank_2;if(r1&&r2){var sum=r1+r2;var items=[sum,(sum>=12?I18N.big:I18N.small),(sum%2?I18N.odd:I18N.even)];for(var i=1;i<=5;i++){var a=+result['rank_'+i],b=+result['rank_'+(11-i)];if(a&&b)items.push(a>b?I18N.dragon:I18N.tiger);}items.forEach(function(t){var s=document.createElement('span');s.textContent=t;tags.appendChild(s);}); +var badge=document.getElementById('sumHotBadge');if(badge){badge.textContent=sum;badge.style.display='inline-flex';}}} + +// ===== Render my bets ===== +function renderMyBets(myBets){var list=document.getElementById('myBetsList');var countEl=document.getElementById('myBetsCount');if(!myBets||!myBets.length){list.innerHTML='
'+I18N.no_bets+'
';countEl.textContent='0';return;}countEl.textContent=myBets.length;var total=0,html='';myBets.forEach(function(b){var label=formatBetLabel(b.bet_type,b.bet_value);var amt=parseFloat(b.amount);total+=amt;var sl=b.status==='pending'?''+I18N.draw+'':b.status==='win'?'+'+parseFloat(b.win_amount).toFixed(0)+'':'-'+amt.toFixed(0)+'';html+='
'+label+''+amt.toFixed(0)+' x'+b.odds+''+sl+'
';});html+='
'+I18N.total+''+total.toFixed(0)+'
';list.innerHTML=html;} +function renderLastMyBets(lastMyBets){var panel=document.getElementById('lastResultPanel');var list=document.getElementById('lastMyBetsList');var profitEl=document.getElementById('lastProfitDisplay');if(!lastMyBets||!lastMyBets.length){panel.classList.add('hidden');return;}panel.classList.remove('hidden');var totalWin=0,totalBet=0,html='';lastMyBets.forEach(function(b){var label=formatBetLabel(b.bet_type,b.bet_value);var amt=parseFloat(b.amount);totalBet+=amt;if(b.status==='win'){var win=parseFloat(b.win_amount);totalWin+=win+amt;html+='
'+label+'+'+win.toFixed(0)+'
';}else{html+='
'+label+'-'+amt.toFixed(0)+'
';}});list.innerHTML=html;var profit=totalWin-totalBet;if(profit>0){profitEl.style.color='var(--success)';profitEl.textContent='+'+profit.toFixed(0);}else if(profit<0){profitEl.style.color='var(--danger)';profitEl.textContent=profit.toFixed(0);}else{profitEl.style.color='var(--text3)';profitEl.textContent='0';}} + +// ===== Toast & Lang ===== +function showToast(msg,type){var t=document.createElement('div');t.style.cssText='position:fixed;top:80px;left:50%;transform:translateX(-50%);padding:10px 24px;border-radius:24px;font-size:13px;z-index:999;color:#fff;box-shadow:0 4px 16px rgba(0,0,0,.15)';t.style.background=type==='ok'?'var(--success)':'var(--danger)';t.textContent=msg;document.body.appendChild(t);setTimeout(function(){t.remove();},2500);} +function setLang(l){fetch('/api/set-lang',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({lang:l})}).then(function(){location.reload();});} diff --git a/Static/js/pk10-poll.js b/Static/js/pk10-poll.js new file mode 100644 index 0000000..319c09d --- /dev/null +++ b/Static/js/pk10-poll.js @@ -0,0 +1,127 @@ +/** + * PK10 Polling & Countdown + * Depends on: pk10-sound.js, pk10-race.js, pk10-bet.js + * Globals expected: GAME_ID, periodData, historyCache, I18N, localCountdown, + * localLockCountdown, lastPollStatus, lastPeriodId, drawnResultShown, + * cachedRaceResult, raceTriggered, pendingRaceHeader, raceAnimState, + * PK10_CONFIG (for status labels) + */ + +// ===== Countdown interval ===== +setInterval(function(){if(localCountdown>0)localCountdown--;if(localLockCountdown>0)localLockCountdown--;var m=Math.floor(localCountdown/60),s=localCountdown%60;document.getElementById('countdown').textContent=localCountdown>0?m+':'+(s<10?'0':'')+s:'--'; +var badge=document.getElementById('statusBadge'); +if(lastPollStatus==='pending'&&localLockCountdown>0){var lm=Math.floor(localLockCountdown/60),ls=localLockCountdown%60;badge.textContent=lm+':'+(ls<10?'0':'')+ls;badge.style.cssText='color:var(--success)';} +else if(lastPollStatus==='pending'&&localLockCountdown<=0){badge.textContent=PK10_CONFIG.lang.sealed;badge.style.cssText='color:var(--danger)';} +if(raceAnimState==='waiting')updateRaceOverlayTimer(localCountdown); +if(localCountdown>0&&localCountdown<=10&&raceAnimState==='waiting')SoundFX.tick(); +},1000); + +// ===== Trigger race sequence ===== +function triggerRaceSequence(){ + if(raceTriggered||raceAnimState!=='waiting')return; + raceTriggered=true; + var remaining=localCountdown*1000; + var readyDur=3000; + var raceDur=Math.max(5500,remaining-readyDur-500); + raceDur=Math.min(raceDur,25000); + var waitBeforeRace=Math.max(0,remaining-readyDur-raceDur); + startReadyAnimation(); + setTimeout(function(){ + if(cachedRaceResult&&raceAnimState==='ready'){ + var raceRes=cachedRaceResult;cachedRaceResult=null; + pendingRaceHeader=raceRes._raw||null; + animateRace(raceRes.arr,raceDur); + } + },readyDur+waitBeforeRace); +} + +// ===== Poll period ===== +function pollPeriod(){return fetch('/api/period/current?game_id='+GAME_ID).then(function(r){return r.json();}).then(function(d){if(!d.success)return;periodData=d.data; +var serverRemaining=periodData.remaining_seconds||0;var periodChanged=(periodData.id&&periodData.id!==lastPeriodId);var statusChanged=(periodData.status!==lastPollStatus);var driftTooMuch=Math.abs(localCountdown-serverRemaining)>3; +if(periodChanged||statusChanged||driftTooMuch||localCountdown<=0)localCountdown=serverRemaining; +var serverLockCountdown=periodData.lock_countdown||0;if(periodChanged||statusChanged||Math.abs(localLockCountdown-serverLockCountdown)>3)localLockCountdown=serverLockCountdown; +if(d.balance!==null&&d.balance!==undefined)document.getElementById('balanceDisplay').textContent=parseFloat(d.balance).toFixed(2); +// Status badge +var badge=document.getElementById('statusBadge');var statusMap={pending:[PK10_CONFIG.lang.betting,'seal-status','color:var(--success)'],locked:[PK10_CONFIG.lang.sealed,'seal-status','color:var(--danger)'],drawn:[I18N.drawing,'seal-status','color:var(--warn)'],settled:[I18N.settled_label,'seal-status','color:var(--warn)']};var s=statusMap[periodData.status]||statusMap.pending;badge.textContent=s[0];badge.className=s[1];badge.style.cssText=s[2]; +switchVideoOrAnim(periodData.status,statusChanged); +// Period number +var fullPn=periodData.period_number||'---';var shortPn=fullPn.length>8?fullPn.slice(0,-4)+'-'+fullPn.slice(-4):fullPn;var pnEl=document.getElementById('periodNum');pnEl.textContent=shortPn;pnEl.title=fullPn; +// Extract result array +function extractResultArr(res){if(!res)return null;var arr=[res.rank_1,res.rank_2,res.rank_3,res.rank_4,res.rank_5,res.rank_6,res.rank_7,res.rank_8,res.rank_9,res.rank_10];return arr.every(function(v){return v;})?arr:null;} + +// Scene header sync +if(raceAnimState!=='racing'&&raceAnimState!=='finished'&&raceAnimState!=='ready'){ + if(d.last_result) updateSceneHeader(d.last_result, d.last_result.period_number||fullPn); +} + +// === Pending → idle === +if(periodData.status==='pending'){ + cachedRaceResult=null;raceTriggered=false; + if(d.last_result){ + var lp=d.last_result.period_number||''; + document.getElementById('lastPeriodNum').textContent=lp.length>4?'#'+lp.slice(-4):lp; + renderResult(d.last_result,'lastResult'); + } + if(raceAnimState==='finished'||raceAnimState==='racing'||raceAnimState==='ready'){ + if(!window._podiumTimer){ + var protectMs=8000; + if(raceAnimState==='ready')protectMs=16000; + else if(raceAnimState==='racing')protectMs=12000; + window._podiumTimer=setTimeout(function(){ + resetRace(); + startIdleAnimation(); + window._podiumTimer=null; + },protectMs); + } + } else if(raceAnimState!=='waiting'){ + resetRace(); + startIdleAnimation(); + } +} + +// === Locked → cache result + trigger sprint === +if(periodData.status==='locked'){ + var raceRes=extractResultArr(d.race_result); + if(raceRes&&!cachedRaceResult){ + cachedRaceResult={arr:raceRes,_raw:d.race_result}; + } + if(cachedRaceResult)triggerRaceSequence(); +} + +// === Drawn/Settled → show result + podium === +if(d.last_result&&(periodData.status==='drawn'||periodData.status==='settled')){ + if(statusChanged||periodChanged){ + var lp=d.last_result.period_number||''; + document.getElementById('lastPeriodNum').textContent=lp.length>4?'#'+lp.slice(-4):lp; + var ra=extractResultArr(d.last_result); + if(ra&&raceAnimState!=='finished'&&raceAnimState!=='racing'&&raceAnimState!=='ready'){ + cachedRaceResult=null; + pendingRaceHeader=d.last_result; + animateRace(ra); + } else if(raceAnimState!=='racing'&&raceAnimState!=='ready'){ + updateSceneHeader(d.last_result, lp); + } + setTimeout(function(){renderResult(d.last_result,'lastResult');},5500); + } +} + +// === First load === +if(d.last_result&&!lastAnimatedResult&&raceAnimState==='idle'){ + var ra=extractResultArr(d.last_result); + if(ra){ + var lp=d.last_result.period_number||''; + document.getElementById('lastPeriodNum').textContent=lp.length>4?'#'+lp.slice(-4):lp; + renderResult(d.last_result,'lastResult'); + startIdleAnimation(); + } +} +renderMyBets(d.my_bets||[]);renderLastMyBets(d.last_my_bets||[]); +// History +if(d.history&&periodChanged){historyCache=d.history;var hl=document.getElementById('historyList');hl.innerHTML='';d.history.forEach(function(h){var row=document.createElement('div');row.className='card';row.style.cssText='padding:6px 8px;margin-bottom:4px';var pn=h.period_number||'';var sp=pn.length>4?'#'+pn.slice(-4):pn;var balls='';['rank_1','rank_2','rank_3','rank_4','rank_5','rank_6','rank_7','rank_8','rank_9','rank_10'].forEach(function(k){if(h[k])balls+='
'+h[k]+'
';});row.innerHTML='
'+sp+'
'+balls+'
';hl.appendChild(row);});if(!document.getElementById('panelDragon').classList.contains('hidden'))renderDragonStreak();} +lastPollStatus=periodData.status;lastPeriodId=periodData.id||0; +}).catch(function(e){console.error('pollPeriod error:',e);});} + +// ===== Start polling ===== +pollPeriod(); +(function dynamicPoll(){var delay=(lastPollStatus==='locked'||lastPollStatus==='drawn'||lastPollStatus==='settled')?1500:3000;setTimeout(function(){pollPeriod().then(dynamicPoll).catch(dynamicPoll);},delay);})(); + diff --git a/Static/js/pk10-race.js b/Static/js/pk10-race.js new file mode 100644 index 0000000..0f9e815 --- /dev/null +++ b/Static/js/pk10-race.js @@ -0,0 +1,179 @@ +/** + * PK10 Race Animation System + * Depends on: pk10-sound.js (SoundFX) + * Globals expected: raceAnimState, lastAnimatedResult, idleAnimTimer, carPositions, + * raceFrameTimer, ballRollTimer, FINISH_LINE, START_LINE, trafficLightTimers, + * CAR_COLORS, I18N, raceModalOpen, currentView, cachedRaceResult, pendingRaceHeader + */ + +function setCarPosition(n,pct,dur){var c=document.getElementById('carContainer'+n);var b=document.getElementById('bar'+n);if(!c)return;c.style.transition='right '+dur+'s ease';c.style.right=pct+'%';if(b){b.style.transition='width '+dur+'s ease';b.style.width=Math.min(pct+3,92)+'%';}carPositions[n]=pct;} +function setCarMoving(n,moving,sprinting){var c=document.getElementById('carContainer'+n);if(!c)return;c.classList.toggle('moving',moving);c.classList.toggle('sprinting',!!sprinting);c.classList.remove('ready','braking');} +function setCarBraking(n){var c=document.getElementById('carContainer'+n);if(!c)return;c.classList.remove('sprinting','moving');c.classList.add('braking');setTimeout(function(){if(c)c.classList.remove('braking');},800);} +function setRankBadge(n,rank){var badge=document.getElementById('rankBadge'+n);if(!badge)return;var c=document.getElementById('carContainer'+n);if(rank>0){var labels=['1st','2nd','3rd','4th','5th','6th','7th','8th','9th','10th'];badge.textContent=labels[rank-1]||rank;if(c)c.classList.add('show-rank');}else{badge.textContent='';if(c)c.classList.remove('show-rank');}} + +// ANIM: idle +function startIdleAnimation(){ +if(idleAnimTimer)return;raceAnimState='waiting';hidePodium(); +showRaceOverlay();clearTrafficLights(); +for(var i=1;i<=10;i++){ + setCarPosition(i,START_LINE,0.6); + setCarMoving(i,false,false); + setRankBadge(i,0); +} +idleAnimTimer=true;} +function stopIdleAnimation(){if(idleAnimTimer&&idleAnimTimer!==true){clearInterval(idleAnimTimer);}idleAnimTimer=null;if(raceFrameTimer){cancelAnimationFrame(raceFrameTimer);raceFrameTimer=null;}for(var i=1;i<=10;i++){setCarMoving(i,false,false);var c=document.getElementById('carContainer'+i);if(c)c.classList.remove('ready');}} +function startReadyAnimation(){stopIdleAnimation();raceAnimState='ready';hidePodium();showRaceOverlay(); +for(var i=1;i<=10;i++){setCarPosition(i,START_LINE,0.8);setCarMoving(i,true,false);setRankBadge(i,0);var c=document.getElementById('carContainer'+i);if(c)c.classList.add('ready');} +SoundFX.engineIdle(); +startTrafficLightSequence();} + +// ANIM: race +function triggerFinishBurst(){var fb=document.getElementById('finishBurst');if(!fb)return;fb.classList.remove('active');void fb.offsetWidth;fb.classList.add('active');setTimeout(function(){fb.classList.remove('active');},1000);} +function generateConfetti(){var box=document.getElementById('confettiBox');if(!box)return;box.innerHTML='';var colors=['#ff3333','#3399ff','#ffcc00','#33ff66','#ff66cc','#ff8800','#66ffff','#ffff33','#9b59b6','#1abc9c'];for(var i=0;i<40;i++){var c=document.createElement('div');c.className='confetti';c.style.left=Math.random()*100+'%';c.style.background=colors[i%colors.length];c.style.setProperty('--cf-dur',(2.5+Math.random()*2)+'s');c.style.setProperty('--cf-delay',(Math.random()*1.5)+'s');c.style.width=(4+Math.random()*4)+'px';c.style.height=(6+Math.random()*8)+'px';c.style.borderRadius=Math.random()>.5?'50%':'2px';box.appendChild(c);}} +function startTrackShake(){var t=document.getElementById('raceArea');if(t)t.classList.add('shaking');} +function stopTrackShake(){var t=document.getElementById('raceArea');if(t)t.classList.remove('shaking');} + +/* Direct positioning (rAF driven, no CSS transition) */ +function setCarPosDirect(n,pct){var c=document.getElementById('carContainer'+n),b=document.getElementById('bar'+n);if(!c)return;c.style.transition='none';c.style.right=pct+'%';if(b){b.style.transition='none';b.style.width=Math.min(pct+3,92)+'%';}carPositions[n]=pct;} + +/* Race script generation (high-frequency overtaking) */ +function _raceScript(rankMap,carTargets){ +var sc={},i,w,c,tmp,f; +var N=25,T=[],PF=[],PG=[],B=[]; +for(i=0;i<=N;i++){f=i/N;T.push(f); + PF.push(START_LINE+f*(FINISH_LINE-START_LINE)); + PG.push(f<0.82?(1.0+Math.abs(Math.sin(f*Math.PI*6))*0.8):(1.0+(f-0.82)/0.18*6.5)); + B.push(f<0.78?f*0.06:0.05+(f-0.78)/0.22*0.95); +}B[0]=0;B[N]=1;PG[0]=0; +var FO=[];for(w=0;w<=N;w++){var a=[];for(c=1;c<=10;c++)a.push(c);for(i=9;i>0;i--){var j=Math.floor(Math.random()*(i+1));tmp=a[i];a[i]=a[j];a[j]=tmp;}FO.push(a);} +var fin=[];for(c=1;c<=10;c++)fin[rankMap[c]]=c;FO[N]=fin.slice(); +var W=fin[0],S2=fin[1]; +for(w=1;w1){si=Math.floor(Math.random()*2);tmp=FO[w][wi];FO[w][wi]=FO[w][si];FO[w][si]=tmp;}} +if(S2)for(w=Math.floor(N*.4);w2&&Math.random()>.3){tmp=FO[w][s2i];FO[w][s2i]=FO[w][0];FO[w][0]=tmp;}} +for(c=1;c<=10;c++){sc[c]=[];for(w=0;w<=N;w++){ + if(!w){sc[c].push({t:0,p:START_LINE});continue;} + var fk=FO[w].indexOf(c),rk=rankMap[c]!==undefined?rankMap[c]:9; + var br=fk*(1-B[w])+rk*B[w]; + var p=PF[w]-br*PG[w]+(Math.random()-.5)*1.5; + sc[c].push({t:T[w],p:Math.max(START_LINE,Math.min(FINISH_LINE+2,p))}); +}}return sc;} + +/* Smoothstep interpolation */ +function _interp(wp,t){if(t<=wp[0].t)return wp[0].p;var L=wp.length-1;if(t>=wp[L].t)return wp[L].p;for(var i=0;i=wp[i].t&&t<=wp[i+1].t){var s=(t-wp[i].t)/(wp[i+1].t-wp[i].t);s=s*s*(3-2*s);return wp[i].p+(wp[i+1].p-wp[i].p)*s;}}return wp[L].p;} + +/* Core race animation (dramatic chase version) */ +function animateRace(result,dur){if(!result||result.length<10)return;var rk=result.join(',');if(lastAnimatedResult===rk&&raceAnimState==='finished')return; +lastAnimatedResult=rk;stopIdleAnimation();hideRaceOverlay();hidePodium();raceAnimState='racing'; +dur=dur||5500; +var rankMap={};for(var i=0;i<10;i++)rankMap[result[i]]=i; +var carTargets={};for(var i=1;i<=10;i++){var r=rankMap[i]!==undefined?rankMap[i]:9;carTargets[i]=FINISH_LINE-r*7.5;setCarMoving(i,true,false);setRankBadge(i,0);} +var script=_raceScript(rankMap,carTargets); +startBallRoll(dur); +var t0=performance.now(),shook=false,sprinted=false; +function tick(now){if(raceAnimState!=='racing')return; +var el=now-t0,t=Math.min(el/dur,1); +if(!shook&&t>.10){shook=true;startTrackShake();SoundFX.engineStart();} +if(!sprinted&&t>.16){sprinted=true;for(var i=1;i<=10;i++)setCarMoving(i,true,true);} +for(var c=1;c<=10;c++)setCarPosDirect(c,_interp(script[c],t)); +if(t>=1){for(var i=1;i<=10;i++){setCarPosDirect(i,carTargets[i]);setCarBraking(i);} +SoundFX.brakeSqueal();triggerFinishBurst();SoundFX.finish(); +setTimeout(function(){if(raceAnimState!=='racing')return;raceAnimState='finished';stopTrackShake();stopBallRoll();for(var i=1;i<=10;i++){setCarMoving(i,false,false);var c=document.getElementById('carContainer'+i);if(c)c.classList.remove('braking');var rank=rankMap[i]!==undefined?rankMap[i]+1:0;setRankBadge(i,rank);} +var badge=document.getElementById('statusBadge');if(badge){badge.textContent=I18N.drawing;badge.style.cssText='color:var(--warn)';} +if(pendingRaceHeader){updateSceneHeader(pendingRaceHeader,pendingRaceHeader.period_number||'');pendingRaceHeader=null;} +setTimeout(function(){generateConfetti();showPodium(result);SoundFX.podium();},800);},500);return;} +raceFrameTimer=requestAnimationFrame(tick);} +raceFrameTimer=requestAnimationFrame(tick);} + +function resetRace(){stopIdleAnimation();hideRaceOverlay();hidePodium();stopTrackShake();stopBallRoll();raceAnimState='idle';lastAnimatedResult=null;cachedRaceResult=null;pendingRaceHeader=null;if(window._podiumTimer){clearTimeout(window._podiumTimer);window._podiumTimer=null;}var fb=document.getElementById('finishBurst');if(fb)fb.classList.remove('active');var cb=document.getElementById('confettiBox');if(cb)cb.innerHTML='';for(var i=1;i<=10;i++){var c=document.getElementById('carContainer'+i);var b=document.getElementById('bar'+i);if(c){c.style.transition='right 0.5s ease';c.style.right=START_LINE+'%';c.classList.remove('moving','sprinting','ready','show-rank','braking');}if(b){b.style.transition='width 0.5s ease';b.style.width='5%';}carPositions[i]=START_LINE;setRankBadge(i,0);}} + +// ===== Scene controls (traffic lights + podium + scene header) ===== +function showRaceOverlay(){var ov=document.getElementById('raceOverlay');if(ov)ov.classList.add('show');} +function hideRaceOverlay(){var ov=document.getElementById('raceOverlay');if(ov)ov.classList.remove('show');clearTrafficLights();} +function clearTrafficLights(){trafficLightTimers.forEach(function(t){clearTimeout(t);});trafficLightTimers=[];for(var i=1;i<=5;i++){var l=document.getElementById('tl'+i);if(l)l.className='tl';}} +function startTrafficLightSequence(){clearTrafficLights(); +trafficLightTimers.push(setTimeout(function(){document.getElementById('tl1').className='tl red';SoundFX.trafficBeep(4);},300)); +trafficLightTimers.push(setTimeout(function(){document.getElementById('tl2').className='tl red';SoundFX.trafficBeep(3);},600)); +trafficLightTimers.push(setTimeout(function(){document.getElementById('tl3').className='tl yellow';SoundFX.trafficBeep(2);},900)); +trafficLightTimers.push(setTimeout(function(){document.getElementById('tl4').className='tl red';SoundFX.trafficBeep(1);},1200)); +trafficLightTimers.push(setTimeout(function(){document.getElementById('tl5').className='tl red';SoundFX.trafficBeep(0);},1500)); +trafficLightTimers.push(setTimeout(function(){for(var i=1;i<=5;i++)document.getElementById('tl'+i).className='tl green';SoundFX.trafficBeep(0);setTimeout(clearTrafficLights,500);},2500));} +function updateRaceOverlayTimer(secs){var td=document.getElementById('raceTimerDisplay');if(!td)return;var m=Math.floor(secs/60),s=secs%60;td.innerHTML=(m<10?'0':'')+m+':'+(s<10?'0':'')+s+'00';} + +// ===== Ball roll effect ===== +function startBallRoll(dur){ + stopBallRoll(); + var balls=document.getElementById('raceSceneBalls'); + if(!balls)return; + dur=dur||5500; + var speed=100; + function roll(){ + var arr=[];for(var i=1;i<=10;i++)arr.push(i); + for(var i=arr.length-1;i>0;i--){var j=Math.floor(Math.random()*(i+1));var t=arr[i];arr[i]=arr[j];arr[j]=t;} + var html=''; + arr.forEach(function(v){var cc=CAR_COLORS[v];html+=''+v+'';}); + balls.innerHTML=html; + } + roll(); + ballRollTimer=setInterval(roll,speed); + var slow1=Math.round(dur*0.4); + var slow2=Math.round(dur*0.75); + setTimeout(function(){if(ballRollTimer){clearInterval(ballRollTimer);ballRollTimer=setInterval(roll,200);}},slow1); + setTimeout(function(){if(ballRollTimer){clearInterval(ballRollTimer);ballRollTimer=setInterval(roll,400);}},slow2); +} +function stopBallRoll(){ + if(ballRollTimer){clearInterval(ballRollTimer);ballRollTimer=null;} +} + +function updateSceneHeader(result,periodNum){ +var balls=document.getElementById('raceSceneBalls');var pn=document.getElementById('raceScenePeriod'); +if(pn&&periodNum){var short=periodNum.length>6?periodNum.slice(-6):periodNum;pn.textContent='\u671F\u6570\uFF1A'+short;} +if(balls&&result){var html='';['rank_1','rank_2','rank_3','rank_4','rank_5','rank_6','rank_7','rank_8','rank_9','rank_10'].forEach(function(k){var v=result[k];if(v){var cc=CAR_COLORS[v];html+=''+v+'';}});balls.innerHTML=html||'---';} +updateSceneFooter(result,periodNum); +} +function updateSceneFooter(result,periodNum){ +var ftPn=document.getElementById('ftPeriodNum'); +if(ftPn&&periodNum)ftPn.textContent=periodNum; +if(!result)return; +var r1=+result.rank_1,r2=+result.rank_2; +if(r1&&r2){ + var sum=r1+r2; + var ftSv=document.getElementById('ftSumVal');if(ftSv)ftSv.textContent=sum; + var ftSb=document.getElementById('ftSumBs');if(ftSb)ftSb.textContent=sum>=12?I18N.big:I18N.small; + var ftSo=document.getElementById('ftSumOe');if(ftSo)ftSo.textContent=sum%2?I18N.odd:I18N.even; +} +var ftDt=document.getElementById('ftDtTags'); +if(ftDt){var html='';for(var i=1;i<=5;i++){var a=+result['rank_'+i],b=+result['rank_'+(11-i)];if(a&&b){var isDragon=a>b;html+=''+(isDragon?I18N.dragon:I18N.tiger)+'';}}ftDt.innerHTML=html||'---';} +} + +// ===== Toggle scene collapse ===== +function toggleRaceScene(){var scene=document.querySelector('.race-scene');if(!scene)return;scene.classList.toggle('collapsed');localStorage.setItem('raceSceneCollapsed',scene.classList.contains('collapsed')?'1':'0');} +// Init collapsed state + sound icon +(function(){var btn=document.querySelector('.rs-sound');if(btn)btn.textContent=SoundFX.enabled?'🔊':'🔇';if(localStorage.getItem('raceSceneCollapsed')==='1'){var s=document.querySelector('.race-scene');if(s)s.classList.add('collapsed');}})(); + +// ===== Modal control ===== +function openRaceModal(){ + document.getElementById('raceModalMask').classList.add('show'); + raceModalOpen=true; + document.body.style.overflow='hidden'; +} +function closeRaceModal(){ + document.getElementById('raceModalMask').classList.remove('show'); + raceModalOpen=false; + document.body.style.overflow=''; + SoundFX.stopAll(); +} +function getPodiumCarSrc(num){return '/Static/img/cars/car'+num+'.png';} +function showPodium(result){if(!result||result.length<3)return;document.getElementById('podiumImg1').src=getPodiumCarSrc(result[0]);document.getElementById('podiumImg2').src=getPodiumCarSrc(result[1]);document.getElementById('podiumImg3').src=getPodiumCarSrc(result[2]);var po=document.getElementById('podiumOverlay');if(po)po.classList.add('show');} +function hidePodium(){var po=document.getElementById('podiumOverlay');if(po)po.classList.remove('show');} + +// ===== Video/Anim switch ===== +function switchVideoOrAnim(status,changed){ +currentView='anim'; +var desc=document.getElementById('raceEntryDesc'); +if(desc){ + var map={pending:'\u7B49\u5F85\u5F00\u5956\u4E2D...',locked:'\u6B63\u5728\u5F00\u5956\uFF01',drawn:'\u5F00\u5956\u7ED3\u675F',settled:'\u5DF2\u7ED3\u7B97'}; + desc.textContent=map[status]||'\u70B9\u51FB\u67E5\u770B\u5F00\u5956\u52A8\u753B'; +} +} +function tryResumeVideo(){var v=document.querySelector('#pk10VideoPlayer video');if(v){v.muted=true;v.play().catch(function(){});}} diff --git a/Static/js/pk10-sound.js b/Static/js/pk10-sound.js new file mode 100644 index 0000000..73ee354 --- /dev/null +++ b/Static/js/pk10-sound.js @@ -0,0 +1,33 @@ +/** + * PK10 Sound Engine (SoundFX) + * Depends on: (none - first to load) + * Provides: SoundFX, toggleRaceSound + * + * Sound only plays when the race modal is open (raceModalOpen === true). + * betSuccess/error are exempt — they are UI feedback, not race sounds. + */ +var SoundFX={ +enabled:localStorage.getItem('raceSoundOn')!=='0', +_cache:{}, +// Core play — checks both enabled AND raceModalOpen +_play:function(name,vol,startAt){if(!this.enabled||!window.raceModalOpen)return null;var a=new Audio('/Static/sounds/'+name+'.mp3');a.volume=Math.min(vol||0.6,1);if(startAt)a.currentTime=startAt;a.play().catch(function(){});return a;}, +_stop:function(key){if(this._cache[key]){try{this._cache[key].pause();this._cache[key].currentTime=0;}catch(e){}delete this._cache[key];}}, +engineIdle:function(){this._cache.idle=this._play('engine',0.3);}, +trafficBeep:function(n){this._play('beep',n>0?0.4:0.6);}, +engineStart:function(){this._stop('idle');this._cache.eng=this._play('engine',0.7);}, +accelerate:function(){this._stop('eng');this._cache.race=this._play('racing',0.5);}, +gearShift:function(){this._play('engine',0.25,1.5);}, +whoosh:function(){this._play('whoosh',0.5);}, +brakeSqueal:function(){this._stop('race');this._play('brake',0.6);}, +finish:function(){this._play('finish',0.7);}, +podium:function(){this._play('finish',0.5);}, +// tick — race countdown sound, only when modal open +tick:function(){if(!this.enabled||!window.raceModalOpen)return;try{var ctx=new(window.AudioContext||window.webkitAudioContext)();var o=ctx.createOscillator(),g=ctx.createGain();o.type='sine';o.frequency.value=800;g.gain.setValueAtTime(0.1,ctx.currentTime);g.gain.linearRampToValueAtTime(0,ctx.currentTime+0.05);o.connect(g).connect(ctx.destination);o.start();o.stop(ctx.currentTime+0.05);}catch(e){}}, +// betSuccess/error — UI feedback, always plays when enabled (no modal check) +betSuccess:function(){if(!this.enabled)return;try{var ctx=new(window.AudioContext||window.webkitAudioContext)();[880,1175].forEach(function(f,i){var o=ctx.createOscillator(),g=ctx.createGain();o.type='sine';o.frequency.value=f;g.gain.setValueAtTime(0.08,ctx.currentTime+i*0.08);g.gain.linearRampToValueAtTime(0,ctx.currentTime+i*0.08+0.12);o.connect(g).connect(ctx.destination);o.start(ctx.currentTime+i*0.08);o.stop(ctx.currentTime+i*0.08+0.12);});}catch(e){}}, +error:function(){if(!this.enabled)return;try{var ctx=new(window.AudioContext||window.webkitAudioContext)();var o=ctx.createOscillator(),g=ctx.createGain();o.type='square';o.frequency.setValueAtTime(200,ctx.currentTime);o.frequency.setValueAtTime(150,ctx.currentTime+0.15);g.gain.setValueAtTime(0.06,ctx.currentTime);g.gain.linearRampToValueAtTime(0,ctx.currentTime+0.3);o.connect(g).connect(ctx.destination);o.start();o.stop(ctx.currentTime+0.3);}catch(e){}}, +// stopAll — kill all cached sounds (called when modal closes) +stopAll:function(){for(var k in this._cache){this._stop(k);}}, +toggle:function(){this.enabled=!this.enabled;localStorage.setItem('raceSoundOn',this.enabled?'1':'0');return this.enabled;} +}; +function toggleRaceSound(){var on=SoundFX.toggle();var btn=document.querySelector('.rs-sound');if(btn)btn.textContent=on?'🔊':'🔇';if(on)SoundFX.tick();} diff --git a/Static/sounds/beep.mp3 b/Static/sounds/beep.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..e76fcfa2026f0aa031fc6b2302b95a21e7e52f55 GIT binary patch literal 39631 zcmeFa1ymf%{_i`uOK?eWcZcBauE8Aw!3hv_aM$4O4#7f*5FCO83-0a^+y#g_Twnx&U;yZx z4>*;=U)`1gxhX(- zf>NNsAE<0UI>b2%eNXz3VTq;kr3);3U=nJ?i2$e(Hahr3831m@CEx6!!@|ikd{Ke{ z^%x&_6Hy>rWBTI+C14|pHh?UFTNiOoppzQ_wqPDfibpzv=mJ5YV2~?CsbIFk@cZum zo_rcnxY*J6UKk@@;eoXsrm~4V>YY}~ZQ?z2PbJ1;5+jMrOusQ?$xv*`qcqZ`Iza2g~=-zSQ*7EXDQ-Y=dUbP6?{)na@@%s8MIA-5hnKM$58bUy$9oXU=R@l zeBTG0tM33QRxM!35?e0Z2Ytw_Mtzh5%|xgJ($k{aGqdh0VkXxzgH02jk+afp+UqX~zz!owucxv|ezQAk-`0fnwVuEjFmAo#P zWZfynrt+1Eu@wWK8dYl08Po<6hnA$av2P7132dV=0T zL(bBLr&=rVlqD0-rZ2hn-;4;Sl-V!vD@Z!Y7A`>*tMc#H9ggmte1Y%zKn1YkHJQOh zkqQ#{q* z5k|RHyKg;tn&Zu=JoUlpZRld0)R+5I9kJV}CKRg7{gSpOn~4uZWgTJ$~=Ix$7dP7o;%Ks(iUJmfj<3}9yc8lHQ@#F>Cz zl6D%E+HBj{+?$a~uTaHOOK1*@9$#FYu2Ld>(j;SbKJPsfN7%VXrGbD z2Xui;;F2BKT~QmH+xurO{D-nHaq-lGasMBh6}h6-A~!+Xf&*T8VkFWV zZ2K&8s~dPGjtO&Jc~oS&Uk%vJ!tAJ87G?9|c#=NU=~6Z+c)C3x&TjEiiGG1;1dVc9)lxC83Kp?2A@`()-v|0p zmy>bXa@~3S+%fJ7i7S5xTO~558s7g1$x-vgA8d3$R4!KaXSLt3W0R7xn6@Upj!Sz33_TPKauk z8}6fyT)9;Pk^|=V4bMCeF9O0W(8tjUvdfeUg(he{^~T}jxj%Fym!tn8gcb;UAU}7& zDs*COM=D}n9)SLI)Uo`1U13P((fg~^i|OS{_%$;{o{kC8vleq?4*R!A2NN`z5@Vsw zEEnXkpvY#B*e>fHQX*n#ia+>RB{K+OrxioICvM_eH;$^A z2u8iWSI)Ad7l!)Yx3yog0{-)L0JZ5zRZgvG(zs0v6`RmlpHbBNlQ(_c%~;5*=v^nu z1DtWhH}&Mc+{22XwFxRIy1o7GcKm)8-kzaV`wSX{`uRFJEn!CDa66Sn;H>DikcB$i0lZaVWV80Ys zaf$=R-W7}8(wRY%(zmxZ=!#Gh0#(S;%q5Z1%)#{7(TAK(8!ukUj=UD{AF*-xz(J<5 zi(j|0&%S?&dm*ZNXZFc`e?bK8yp=R&tQHFRR3^M(ZzIqT9+Wp>6B; zVj8hl#?x_H?)@_7iJyw{Qz5BJiP;XXG+TJjdU!Wj(A3RahFCYpudWSCZ?yWj9RDP^ z(Rp}f>sa$pR9DjHQdO0}hdyo7)MInXNNP5X4q20ef}JY+b#|IfV%i<$V)gS>4h@|z zz68hCv%1>!pXg*OS!zo((;UuA)A@^#_xuO8@T?77&)RN8OhxP3a`d`T2ip0;>0g!V zZ}m|Qrk)Gv@8%gM`OhTlxMEr8SYl>?;B!<>VnnKn;y5`w5vblg9G}Hj3ZmiWh8f*uAQ*bw^rBJwiehDD z7YX@1A!Lc*>y*9b#lCmXWyl@0WDMB@n`p8CYjXbhp>;p?0amJKCK zjuNDPHA;ohC|$E`?M%yPsugDF?z_y@7gy5LZW`5zk6%z-$}*mhYwA%-eK%>(XL~ze>ipHTcw(Db z%e^t{eX(_4^Qi1teEMhYn`xIfWa!?|Hd*yxwUeNvR6k}l^w>SoXc8NlV)oyEAj{`8 z$j(ifDkWv(edog$`ugjS^1jBWnhG+JSulwVpTyl}1=NWO5X?5|4PmtjssF2$D;1l! zM8f^9U4Ex*w(cF>>8!6@qaO5v^?)%o8oPACGOP6)2kJN17f)!P#Jmu~C4I`yc<(^y z@8QVdDA6)$GJkTLzXk>`9Q2L{%ng0sP5eoqKi4D2dQb$GWRV_250V*#OY7_k>;*9+ zQ3}rD6nuKdw(xXn`+13u2F$ee9OX^8dY%F zTE2eGG$3@wh1MA0Zk?^(mC_xX730o$=vZt>r}BhU5ADrG*d1p0cqF@pbux(+2lBT` ztF`oCdr>2z+moV$Zk)Ii4M!*D`FF&v)z=Tsj5l8g8&&UPgAem_=4>W=$LFvkY&0;( zf?~sQ7g@8iTM~z8s#$D?Hzd}&>ro6TVtBd_KAS{Y*d-pRGJjPGmFHfyE?--Wx=U95 zLOIkkX{489*u!PA5b&;&rnQ-GF_n%jzCTomE7CI*-HIb`&0%t>HC&%o-;&Rn1Pk+7 zpyC|7ei^y(j|(MSv3Vnq4y!4;1=&KFzzK=D8H z`LJj~vK!Y&DE)f@>9>o~yz;84g0$hfU`D}@;dUC?lKp`KFFF&=o3P!^aM#D4BmMlC z^KG0cZGBq3Ieb(MM?#{3UAE&FA>lyS82b5vecV<%XwLFdVd)Pm=@4humlC4DfQ7&CSIJ!lzhdsf1j&D_khoQD{{bx zTGduBpw6G9J+(p^P_=xxRF>7<`h+D}RV<{S{^6}}F@{|VNkR)1EdO`f*|6h?^(u{e ztsVP(mjO`5xHpVGqUU#Li0d;c{+T*^LjHqd#|!YC{p7(nFywl?`qm(H^kQ3VMZ3q^ z$uRMPQ5>cyP^gT%|F9+m?c*~}EE+R>Rz(qcXuLKOs6VtKbM&bH^!$l_D*8+kQYnMXwjYRL#Ueu{F zeUzoRl%?VIlD9ou`)-VVq|-y*%`ZYafv{DqI>~C!S9N5n8trz3QI)f;YdGF@DkM8J zhvUyulqMpEPS$S0SJv-wds37{Qvg-buiZXBbNKm%?3n02Wn7KiuaL~nWt0O|G$>=( zLm9&757zD7s{Q0j_D*dAqjrwmG1^PV&A-(0LL*>^kQpAY5j2*S+FFpx_l(Y|2QNvQ z{8B?TUQenvcgAvQgZyn43?7wV%1 z)%|yB?`s00+2<^_bb=AHVBDELUbrqi1>=6jbk*kS zNMA53);G6nkSw>Lf@@Q~vyhOwnlGg2bmD5SyLh?(_Uv=!-8g#1DVfh2mLE3H7+R*z zx8nHOjhozE_vjHm#OdBXSL%uBsU5b<0Ho13X^Y&iVMGu+p?sr~lUbtkFSB_~MHl_* z;BV)(yh36$KkU?Lr>9PiE=O9+MV`+f`>vWJg5XmIz7$EPnNfP(`iC$o@K}g@@2%>v zIE>o7iy7S`6m=0Lj0#^DjPDa3mhI#DMaUr#HdkQL5)HRitDH2}+~TngiCEUOmP=^T z*Lb9->{=d2y6sPjf+4Su)h5cJmul4km%EqF7leuJ^BM86r7di-h}dQz1?B9|GzvDb zgy8g9u9Re18l=2D1kJwhSN6ND&?NUAxV1MKPSh2Lmft5G9y=K~5p1n2EI_KJ~&?wq> zYTZNb+eR!z6<&w0EmH+~0VoOhb!67g%$S6=>u5SgSD%>G&psIY+H$2Zzp?km8^6<` zhR2|Zq$!z5jAoyj0?DPk5|CCQF_w4xNo3hw@0CZGAzM3Zdu~OBo@GDh>s&1%e2+`U zY$80ktoxMRu!o@P(~+BQ;g-Yas}XAk-IK{P#^S3g=|~3gB3Kz-=22Y=!olebv@v-l z*G)wf&Oz7qXt_lLcT*a2wR9Ux@+Z&cdAFMt#Hsb)H#999-&q~DPd@w<>Jt<3@ts=o z_PrRLvoM`7O2#xElg6XafT7At-Koa@MJNOWn@?wOfc3;mYjeohe4QoQYQVgPqZ&pz zlZ7`N-wbW*l`_IE4eiG>TKJ4Dft6nBpRCX8-eQ#xHE||H#vhTK8{?FF05Zl8B_Puus5p26%eDXBKns(ot({Si4gV(|O2Q8{UGBC>E z=ph!vdw8q_0fw$Hxug4#S6Y;|cmxCL#azevKT6LGROxz2qz>$Fx5U(nyneJPPF+Y< zHQ2r$P_}Z3dyB#_ndQ!E9U7If`Z0gn=V;=68Ju0<05qe?M+QwMKW$Om)*aH8HQBG< zi_oae@cqlqMWtU_a#VwCB4obJTWw-D_oD7?vp@EJjs6ms7V*;xNRmP`trJg7g<1Ii z`@~{o&e@3P+?>x$IKQ`UJrm>$z)24Nl6lDSBeks-2TqhWJZ%R~rmp7tm2LF>o|7!e zNdMZbqcHEyE9M@9{-vq3!Gub@Y)#z_`Oo3VPSpyi93jsl-IKYWOl>?J8qt_2wq0Ws zVE&ZXjlpQRKTg5D{=&}5g~tFg>iOYK-ALNzFGATM*evqd0~CV}EvdU_=FBfpv0qus zWz=g(VmMTs6QG*c9L7HjpXfFXZ)}yRiCfaQ4x*WZha-Jw7EL3U7@7`iB(D@5xTn53 zz&enQx6imAzFg1qK0TWQrwO&XMSB`f$8@dPxJla$5~V+8hDOsU&s02>wBv6^yhuO= z`;dV1v3WC4<$p(>D0J)caSS}n>A2pa6>^m2ZW37HQH?AE@)=AXl830q9$8VPj;n|O(DS_ifYZ*rcRvrL=jOSJx5?w zqKq$C=!wAgx$ng*tof*jlbLWlczx->5*pPt3g!f`j&Jk6%rdXo1sK@CSC&wb;bwdO zoQ+rKUw!=|^Z^80K&NiEfv2twKZqf05se&b#~M-M;EEkbTYnK3|F7oxf7SZ`hPMA1 z9exoKPdEWR-mw9JkRNYfP(0p>czl;U{(M~I2?T-Q|1%~1ADYW=LVtH~zX|;&^d}1Z zZsq<&px<@qPXzkQlYbNX%MtvE1HTFVi9mmO@^3Z{!QpFNAUmc zz+VnX=huKn39R4O6#f~fznswT)1iNc=D+N}3H^yce|hq6LVr1eKXKqUp+6DmFHinW z=r2d`Cl353^d|!S<;lMZ{pAS$#DU+0{zRa^Joz`FzZ}7zIPja$p9u7qC;uk&mm~NS z2OdY$fC51j6cq3vv0d|%JxN61P}C0HLjrgjfLfK;v@T5DvC~8({7x-9u+RlhmEhCa z9EgbwlR~A?3QQ4NiAzW|g)QO-ZT>Vx;+hx!Bug5Yi7?bXm&WH+@*+ktcp zT1`Yfvi_o>$e4~j)Iz@jR|y!)?odyVi-a)%b&?t0Y6Pibz_M+fZ-;gk_`qD?xqcud zGU|*KM}FB54i)Uj)+fTiq7efCs5XVwWAwqjT97A7ft&QB64)Skcz94C(gV8aGY0XM zhlpXy_zJO&gial;X+OEpH&3rDkx~cFUGUgoqq=594Ji<$I(tywvm|U{r&3vLFd%Qb zfqF5~gk{>9a3d*Ms1`n3FXmC7V*9KY!XCw>;0msTWeONSVn8M8n000I<(W4%}qE6U4 zc`y|x3O{Z031Y-qh_9i;*ENPaF_3VYfxbK8XTZRuQ+xx3gcJ{B^Vl4(#q`--SW#%a z?EXav2t?uz70|T_1Z}%Spne|%5xXWSeHsLjvT-qbJr{>tMz1Hzi3uuGM|`8cs?rn6 z{;^3)8RH%yh;!XxQQu-&NLHCO5Ce%kbXTpwl!?U^afEU^tWz0F-4hqaf+SJYD4v&G zpneO9M0(ZFylQMAc23a2m>p)`N-( zK=l7d^ zLXB6ag540K>u(1D=XS;UD!t0y^&UFIksO484yiSp7+gV_% zTCz&TmVmF9f=8x=+tndmKo_j;z^QyrWc~7*sM4aZuqL>KB;w6`?A=Tn2M2Wn`E=Nv zOxM*9`gDUy^8N30ePg%Zt3NwR{lt0RB+f=9qZ};a? zi=KvNekhBfr;7;H;+FE)Rw|(_)>)Vo@%5@^=JFZ{aKH9)2$y)GJRV< zwf;a6n{wH^G(L_E4HG(O!k-ptgrlP7nB2hQq>wbCC-YqzubFnLiCOwN3b&&QfvO4? za+ysyq#|8jNw&JB!sqH(SJ&$J?fuSA$kMUtUVnr+a=AQpvL=L8qYbn|MFn^kVNR8~ zI&1tQgaLxhkkH>i(WcNsW)?PQ3Pp`__bz{btf9f?%yX5yKZkTG2xSvHRf zE}=?)Q?6h*oRu>%XxQT+dYoQ8-zx6 za~N=GX-yjsBrp>b8>;eUGYI0P70>0VTf!0@KwS%5;`dGUz83`cwA?2Eh0Xx*&<+Kl zG1vFCpVw(iWA#C(C%B)K^mVo~cZcoHrZds@2CK-wq&}SzPaYAK^nR`lr^S$&sm*(lI&iG<>tBRu0%5Zx<}6v6PqgHPSgcC}P)iPM zV@1k3wR0U#Bi_&6O90?wNdBeQCZi>RIBYBYPt9o^?=l~51Ha}nNr+oj#Lq1`UUi!D zgv2~m9nj<;oh_+k!M*s3oWQGCe||_c7y2=;-~1{ECHAct)~l5bLSr#(@X8&u{K5DZ z^+hzr`~z)~OzwMoIc1smAx$)7UfOT100Q9il`pC-(2Lp6fDDTawqwBCajKDdUg|Qcd5N6J zV0S`mi^)oO`vMJK@*JF)3V{gA3iw+_h1xmJ*wymH1tmOzB33P`ld6XuV9#F?D(Rs(}Wv+ozWb zhGN}`sIRa(Z7QW7R0M>dnMu8^WSB8rnZBrbA+&?@RDOnR<08hm(Oty@IU zwj$rMvr~adtT(=UL0+y_2c2(IGW47OAgDQ%@{5oV2(Ha+{tkonrPp^-Q}fbV3<)I1 zSf1mC3W}qK@Z2j7o#CKib=qW4$q`1DrJhQ^Y#|nA)cZH7OWvW+UrdnHL3@Br_bFNj z08^Z?MhqdV6!(&6^~56xQ?aDj*lsYasRECem{;B=s(Uw;(MC*TA$-7ocDvRf(%{aY zY9&9fK)~8mu6QgUSG4`k{+8A8+wwbnUgB$f1I^08fYsSE6NnGm?lpT_HF}sDs8mQrwTiVyvi)i-_V7a<}LoQ&RMps~=)msJO><~xq) zMz{Jb?;BuZ@|kJV(kQ&?PG*Iv3SV)7S9r-fu01bUR4LIXe|ma~lsB8?ege<<8$?|? zUi_Roy4!xa;!xSw8a>M|FiL0&&{Mp9Rm(uZ|6e> z53>2&p-hid*4swCT5LNQ;1BOy!$;FkhTc|OA$@5nv~WeXDR*ybI1;J4I2wX}*`HLa zb}sj=oFAWxMcc_Do+%i6qYbBrcRFrtNfp3Ri2Rm} z-YHW3doa2un}W4W8r!T|f?&edbgU0zuIyJ+p-FDKI1Q6Y(c1R${VeFBM=$GH;#pK> z-_E6}8+opd$Uu0kIVf}^ZCO_pf+~xB;q{Y+Xo}2f_7|bYQ1C@v{R0F%al_~#5woI5 zv{d6)u?%XQZq>D}VJO?W*G=!)y*SLl436+5Pv5+-VHl^Jd=}d4H5yEZLPb_GlaAH* zP{G`ck=X+IdVw}$#66iMR(w?0c<|6x%%n@@dbSw#@?{@3vg&ikEvw^#5_2rMfc4He zjqRf_XI~-7Yj;G#v+yyA!f#>W7I8SwBxaTM{BEes-cs(Xc)Q#?&j)`|pUVbUuZVy3 z=oV2ZhKSCSvb8VlbCp`qle6}x*`ScZM@K%FXK5c;PHY_?0p2h|7f&j*Itu%eu5K11#zHnOJLGMC z#|l$+!q^K^QJcP*uNpw--r#~ZLP0Z|?QPRn@YOgJ1!@a91XdH)G>4fwbZnJ`6jLS9 za6#b{ZU%)S3!=8PBeJqAUkxaAT**)Eo+##N#Ah%-Dj-V*B>z1JW?DtyD2iL+X{l@D0~qp~B;31?nDdJ~J^W~}&H z?3zv5Kh`oxSeRkYJ1J??f3f|(`KiCZH@#XKHSVB((=C&VVH$Dw*3rlk_ zG=84|or=4w3AMT1x#3f&>ailkHv@7QK7GVjJ#&p;nnL{&hly(Qq%e{wgzjaSqEH;G zbp)y$he=rwRk(EzDT+OL*E|Oy;bedc9MkMh;YHtv&({#lp>omT(_CnN+RYSDqVNb`9EGp^mUJ(nfiBoN(Ay!`PK_uBA2gYx3J@lVddM-#>%m#!Wz$J-s97X51Zn8M_z;omAM^q|PA?t1Y1PeXokoW(^}_#h#tQsN}Ng z$8xXBPwDAJy+R~qNRxDpmji0M|E~;x5#j{FMm~Kpfgu#C0T)AJUhWd@9rTKYL4{L| zgVj0=rR?7=GYN@sbFUAIfd$)&ITxFu%e7pF zgNaNdo=CV98+})$`7`IYqI~lb$mE_bpGK^&z||-MUw1+bM_%JdNXfM)Tuyp1T@r=@ zA6=UXMvFK;_7oIO{nKXE^lXG5_tp0Abml<<%IyDsI2_KP3$yTZRXmjq%klB#O!932+>uPdjieiS=&-2L_wncBVLV5t-trz||U8_gNSB ze!$86x&3YX!HT2UqnG(t>of%3?`J>Z7bCxf(IxTxsSJ%S@?{k}4C|~vm$GcY{zDY8lt=QOg@??9y z&_Jl7?RUFKKsw>MUy?0^#Pgf%N~qjaL>llrZM3uE10vlR9MAEuF+?M1_4+>q`xS5m$5^loHI7#=MJQ5oV~3SK8h$ufoTayIv7 z#kBJ;@gn6Cuf7u(1Qj*B>UPGrCJ&f}xV|5UswlL@#TEN~q#v!@-kLGJhk%dUa^D}{ z?)kQ*+uVG%<*P%d2!$V4p}EDgc^x?Qu@p6vjwI*P$P|;|$WMW*T!cCfn_$G~-a3p{ zofQ8&%e}q{xm#X32p?bE*=oLMdv>}p__ zifw2(L{)$dg2~DwpthXe$&Lz3lm4LmU1PsCLRZd1n>?pcuKETGy^*85M54W1=j>T! z-$ZElX>%w4%DXH+KOvK95#1XsBmLbg@Y#el(E|Mh!Sq@G4yGZ+N2_=fVZ&67!Yr0X z`1VaV5`US7u$VL@`!}rKa=ph-6*P$^7!2vlSsTZipG(dOrrMW@729d3IW}f;C9tdP zrsaHkHt5SfW9OtelvLd`bRNN)Xv8JQPR2S|F*Zz~4{Lh%97D8dwySrDwpo~FDB5m%aK~AAVu41zm`S|;a@(**$nR4l67fPx|@mnJ42k%>Gt^23uwpPtk z#3?Ay(I+xn5$a<|BuThaBo@Uzdi{AvEoMB`9AWbc;Dfd+Y`^OdPA)>wJ}=((RZP>f z`)g!7&D-DxcPa`mZb#^-D!N7pbY;uNISwmm^z#h*j!d!=Y z$GrE>m*7jI?@PQ(5DgZul&Hms?yoA890*&;_1IB({!yDw>9M20kNSGbE+R#}K{czE z<1Ct>Y-h}PdS`@Jw&A(&e(Zwh1V;`5s>b#Xk6@L(x7kFCwz|Sk9$l1g?Fw4TQQaz-xZHrdt9+XSSLIN%8q>6E|nG<-CjwfbHKbr3{sGG3&>E2NxE1@je3#mFwTBcbNK{* zhXQN}KlX~s%bZ%LihL3`)o2?RCW~ibOpV>&`(iIY8eCCb*Wf(vl>JVH|JBrWmB~_a zvH=5jq;h{aF{$S6(~r&t92HSIr)~&gCyXc=R7H5bFQ*A(R}AqQ3^cZGaYY9l&X!9t zD-a(PEOnzC$R_0y>|Umhu+l?3KDLyuFjsDY=gZTMbzq;MWMX$y+Z)5BV_YEOKVfQP z6R&SWpyYMF%)zjcQ;yh>fMS z5q>BIMIk4+udFRz=*;^Be#Y}IqCf3Pc=i7%_CJ*+=Ja7L63$x~6e|Qcm(WF8iDz1P z(wdc4{m+qzyu*?lw~O4|CU*zXs1rzf+{OpCGphW`d-DBufQeThMzfg41;+(D&60`= zwe-#3Xd_fVm{A-#4UV}oQedZvtMenPbZI}C;*^$QN>dI=bdAW+Cs?+pr)O1-Eoc-t zt&wAWnr9bXKIo@#Jpz8<`{Hn0REt}STSI_C!i3M8Mi?e;&^`_O@7`bfRfl>4VKeBa z6}EA6wBY9lguC3MIhxoDI68x539K&=i8%h`2Fl+lnF1TtlPb$`vAa%Qg^gAv?Ni+W z`Wqo0#-XnPmQ5f&XoFei5=uIF$p*yrd)|Vpv74g{OXe-0$y5@c*Ig--6KZSpENj z;}5=n6Z!*D{#K^ng#K1I{=k{vg#JL3zm@4Xp}!T5KXB$Zp+6AiZ)N&T=x>GN51jc; z=nq8sTbX_n`di`n1805{`U6q^R;J&C{#H2tz?t8K{y>z!mFYL3zZH%@aOO9mKM>__ zW%^C%Z-wIzocT@Y4@CJ}nSK-cTjBTvXMPj<15y4~rr(7ARyh8^ncsx|K$O3e=`RQL z`}u!=ayUFjy}-gyn^Qgp>@Bl$|FAr#QzqfLAm*}Off(O5Q8mdLUy%IItg}c(S}RUO zgM$(tlF33E#DR>6)WD*|&Dudjx$9F~k%A?`VvTkJ3sQcHBt`8*HqxOw(jsgZyYr99 zhyH9J$yf{e+QzVF566Vy+%+s!j$X$ItXVxrmg@rcHykKQP{%6N6TxcWZ1puWesq6k zD_qV5&!qFuzB+JSv}Vf5vSPl}lpAG)^tZKw*Id?jq@ruzy1ylH^|>cVAhV$&STrQn zv_zVHBt}o^C1b|E5HTgkA`_ko&*vHDefkEA{M#}SZlska^hrk|TF^L;5TN+#e(7OP z5xiIT^FF}x8aezx9T5dS*t}p{32{{!7AELW3FrHe3ktFiS+zYa+?W!vtM59=EA>l*ID+Fb`|Dz?*a926Ud05B?pIkMl@!2WGIK)8%;faQ3u^7q|$Bp?c+DJ*8Bb|84o$rBS5$IOomFXXu#$eWM>;Pfjjd7l@?mZjIWo9!r`O@|>%@5Np)NGAtFKis zfgf1_KiEezAM)z1ojl{RR$cIUHlA$hufbSAAPfbFZ5IX`od$%k1fqh;+AF!_`4)&~ z%#&A^aRP%{(q+Mz8LdS_#ob4(O@xG~H1om?CO$q>ewG2DHtl|4s4EcBwnrF!kyPp( zuA|1Bk}GL$Jfevq9AznolNW97N}cRrruaH)M6)Gfa4?m!q`MBNyZGUm2&_SD9E_Z0 zYwE(N@NP?mdcNPF*U*bVIxW_1N}GweNc;HG)EfF_R+@)%O7J1 zfV(4M#Eo8#UyBe0=`#EKrK%~o;>-qVd-W=1I;zZ!QZ7kqVGCY~Ko_g89^oLO-My5! z;6Q^p=i$~?29S-PRL5}Vd%-onsb?uIPd?4AT5r{Jk!T_AxaluJE*vUTFexg0bvfTK zP|@_z^Qxl@ij7Z<(N^@2;du%T7`L8xC&z~6sQL#vMxj9mw1{`{f^pW z3nzDcF?$ijN%&tsJPMLwZfdlB#{m9Cs2hYtV>#jEOaZ?c>*F}Q33}_D>z*4H$fd^p z&b_`Kk)FizfpV1ota~Iy%w*-~(tN;m{TBWC8>7vy_c=lIhtAtf93Os2k={Sb@w zZ=2|F64t`{wOEp(Xj3;l?}pdSH_Y%+nt34GTgxE6=DM+)GW^ZO4=J9}OM$0U8OW(5 z!7vBDQJu-Z!vJck` zC5*6F`M|`+`UF1Q-loro_`Y6c7WLN~7xIA>N6$SlB$^GP0g(&ps7ZS`PtkCw{&A;=U1^Kf% zJP*%PFLUxNt>xy~Jul3Rzz&?>fegmLVpQR>A8HdVC!AT|c6Tw-O_Kqvm-mJFtiTln z>gq&(JhDpvvtd5r9Z4Rm^=#wC*M1#*>LkUIr#+M2dE1B3sw_niQ1#I?;LaZ`(1LZnUqrN>Ems*ax9GomR5VMHV@bRQP6x-_a$wa2SLGZC?-6rOUJqAtfEGho9W zoaXTQgkhe`r{73JwLzrgV6kb=6M>c<(>_3>e5_>)s&{()9YXj3uwUNSIekcj7Y}^f z0fJ@vqG}NR7?dVuzR7oT#}H%0lH6ankqnecgj{OMp%Zqs6m_A(gFfHeVwe<4wf>-m zJ`qa=Azqk{UdH-ivYry2wolq!u-<}G?|sij!vOHm1DJWCwzjbaRoK{eELAqMW$rAD zdVfa=FWY4SFWJG?MSJ9h;Xbzj=dU{S7=brzx#)`_bfRD5n_&JpZM#4FuW8#QoJ)@$ zr)}RIMLfTyKqk=I5a7DcQNNjtsCmv*o(yXrk%`w92GwrqFnpZYbm0mDegK=UTtm_! zP_2vmua2o7HP#PAL#ud(+eT9u$@K(Zlq`hLmSkHB1(&&Xt!QL+#=qgu9{`Cr<`Z|O zZ>~r5m57)R=m=-vY76(5Ua+5)w!tp!K>}7 z`w01)&|)#%_6iKPW#{b&FDs(f9@QXJ&7hZ@E{vN4^}5J zZe1CM1jGT4{wrM_1gMz`CHg03FtIyYx}+;aeTZG_#S!5*Jn4`^A;}AVnngGm0Zs!D z>oIjsHp1%8d{N%awMJu@5-?nT`$dQ}5ca#$!X1{~iGGwX*!)No{UO)%kx)>6Q}si5 z?uk8^?!gkY?7^NZcA<7}r1wZ6f8QA}J-EO2TymPLZkH{eLkTXrn&wA&oss==UxnAL^T{jFmMNxy0YG1$9+%x;Fm-B?VB}eT<~+@Tv7>oA0Z0SA zz5W2W5?TgaLfc2Z9H)=6zFgQ7n&}`T<0*q+r;6({$Z&FHav0t2!?BOWXekzJJEHnI zNbzvl5Ec_*WAoLa@aNOx7f(bvu(AZZ!csvCcccgiSHxTgesE z;rsHjx~;alE9x`H^MF#(+Ot@;jw)+YgHVhFio+;uR<;=(QA}ftU(>N9Crq5iV=aGNtLA7oQWkmb~h_ zz{+bpE;P*iW};zZ`^pmqQ@;oigW!EM4@HzDJXmTTA}U|* zqjs!YYsxcqzq&-Ct2)3fzda7Q$Mr*iIuBi{6|9&}TtcD&U>86Ip!6@m6lp=~I5@-x z;xNgC>P+*Qw%s{agOB>OA>X$ zXZA5wbf)Rm&R39b=x)&NSJLu4M+^g0@B|L(SC2t4ZNp2gzR zFJ}r+)|DLq90HC7p4|C8d2EM(iE}V;Nj}MZLHAXT3-^qW62ba1j_c;ak^09|!}@}L z*|P?EeE3ne)JE@zvWBo9Hp)-U`(47E8qAm(5sR?Rg7jWwrv&f^D2Vlbxd)CPDekQtX#+$Yn1q!Q7VQ+}4J6jD$h1dj!B(m1g=j1e>67e!A>vOeUg3wq1N z@-;m5r1zoc2UH!kB&v7y%0I=wP`?W^1Q}cD2)n6 zum$~FJ6^GV!hu24VlcJDHQnk&$G;ecc+eKiknXon?)H@97j zxr-{jFThv8jp=l4tth{~6YEpCeh5f73vJhhK=sa6T7YW5;s<@<<3cA1QJ6>?2J82r zZF_G9M*PLebE{G;n*?dnfrf~oIrw+Um@+mSf%Kb!%t{9|feNJt@rlteyRmw?EG((MK*t6xTl z@Ls^S#Hj&907}ckd4Sjk@q^(Jguh^={OYE2Mab`H-?`$a#B*^gL?n1g5DZGlAdD7+ zHBWFh8qa5YF2XVz3*q)GhtKI4dBML3;XKwMvl(Abtqu!xl4BdDH)yFLmWS{4VBG2* z{L`XW5l-a^gEV~$Sj~N7Cv2khU#)MS2YWMLz<#S9!C0B(ac=1yKDCCb-Lg*}7dqDg zGuHsHMY_rU(3&2z|3Br$zg2>wxGfSo$tnf@6X!)f7`}SAMpl_+pp4qttYyUFI#dm4 z#0sAu>NQb}_qx5=EGq2Mxq8VHpU;T4^a`~SNPDn~7$FR(J36adIEA+NL4f|;FrbQx?HQwbQNU^tVSW`Fmq3WD1<%tgsm)VfT|luu zfu7KQReBm|%p-BiPKq%}AMagoa_bW)eOXd~Z#anSPrjw(r*xlxhSirZF$$>lKUP`r zMEONP_$;bZ=Yn?pOhWA`a_*>TSoF)Sj5f(z=dGa1K`40o$m2eA>jG zKDw8yc%tO)s0l_wmh69dCZ9}?EZ(7n7G1@@y#s!t8bBH>xzriSx~G;Obiu{{!jAQt zYzwbdHoLa>`nG+0MbKxl9vHZVhTT6Nx8q;Mvw?+uv7uWr!lhILmki=(&-rV9zo7K z6&Dh!^{n@oWRZy_Q0i}Lf*4~XOOjkd`^dDdq1dGTJ^YUikM$k!01a!?yL>R*e7Dea zW%qOJ{Tc_CpqsP4XNAdHM7%)mmek->W715@YQb1oJ4Ja9rj=;C1TQn9*Eyxaya-Tj8VMf?#|(F?6(4u6#TIJc_x&|0R%sB=66sIpTf+vqpXZ#1Q( z(X743VG?mfhmj;ld&HGi&7DK%Us65D2dM3?ATJyN`#{Uge{1JVzu8XPI8JJhUF_qr z)>5&XqM9bQs)mNasG&_!$}mmUUXrLKiV|%NqoYmj3^S-DS}NADw5nR#A=RK&Yidb^ zM3UbVf5G$WInSHt+%NAp_qjgjT=(~TU+4Y;Yl4g|9Fg(+*PyYDRqT~82`Q9RjFMDR z$J?PQvnUaX_TB0G^G&7qjqba>a)|pX7MhH_eQVxHQBMJxvr8P!;iF-@ZhSlV6ek}G z7u99}9P-f}2Jk36?a#N42pOk?$^++8WdzAs`HrX%K{D1|cKC95#cdxFw5O@vGPSqv zy_jWs^>%H)WnJne=y~h+MTmTqnTOfjSc+bXLGWPdnJW=SSzW4sPAll?Lb~wA+&lPX z2F(EdIgY1YPky)U1HgestR?_73%=h^@$Krm*TINHF$wcxgx(+-D_`#y*#NO!qhO+e z4B-md`QvG3vMJXjZRDd*&JNZqi1)aYN8%EOASs;8r{{kO8(fD0z!d9hqDiKDtu;E-<-0?LXvzD+U>r&{5EegAVwW~OO>l?@ zk8~d_hzK7Mf~SKT123h}VYdF!rp>Ur+PptKVmH4>Dfl;-!w3ya^o1Pm<4>&yV1rcA z6vPUGxN5;Ajq~NGTLQI827n)V0LN~s*N21q%T3qG6XLg#P+eu1Xz?%^J`OtUP^JjK zxR|DOV>F1l)SKy^(PIyG?ID4@ECD)P~n+oJieGq8Rx_BWI7X11wQN& zI0`tg-2&?2_Xfr$8F`Pcw-;Z1J$i123>P;~5rw(Z1H$jt?{dr9=O)|b%zn%uKmdj=LevO%9oh3knfL5$hU z^BUbi#AEs?Qk5y^hc{ZzsJ#1qB7VE9zLs5rn9iJ2$PUs3SDUA)S`S?0?tGDzzRHK$SGW5KDm4xA{aEpP*gz7~gNQZk1-mcbSa(#^KnqVy3x|ds9{Gy|W}v zeD_?)ZurmQkIL4Qxe&@j&*$n}>M*4Ow-VKp=IW&)(%b&Mp_Wm}#6yWURnu2>sY|^L zM}%V1L0LBcqzcrwHz8F{pthwR-3t-;At&FbP#7V1^?+2zVpBxfcua=oK95f#ZyfSu z4!I6ItuJJH4103E;KtR-+LtJ#KhPEveSm3m;`?P#W)YuVh{8w$>8_(AB)WsCxyDaXl* z-0$aS3YH4ZVueRRRdK5hFc$2~bS=Q2nrVD4aBd;D%L1JD3{(p>l0PCu5CWB-35b?g z`r?~2P7ej8<@rknt+coIpRX`YW0m|Cq}q{E&Ow|zgXpF856{jWu<_UgU-@R9ksm;{h?quWPbdErTX%D90$M++*IKQS?5+o#yD@>G&_sR@ZZ^}Tm z>;n@_6KjW^Xoj-vbCekO1e*p;bJ3)xixOjm9jUX|TfFb_T{$C|Y4;g8zA+6TuN{y8 z%DX)b`6~xbXKI^pK6&b9fTWDiyM@CdJVZZcBE>JLTslAB(CVEumf8D*1yy0*bN%eg z+m|*}K-M8W&i8(Af*9cMooS`+DeR$W>omb3aYn!vQ(#osf)0okAICjElpcIKLR%g0 zsaYR5`$UD&Y22wHuHI2pIA}rqdf-A9gZ$yTtrkIRc`9-3CwpU;m+@KcZmBg)f)$WX zu9s~qgElhe4w*@t)0?b-HlqeMJ%Od36HcT|{hETD$tpmYt;G1m*vi^O>uM3u+7sJ3 z*QHJTau+NoC?QwnU$@`z&M8@wjLh3du1SXh!WeI@Yt~1E9t*l$;7qCvq|Xm|syU?c zH>uz<^h&$mBJzPLmz7r@7_ic@zq&QsFuU0tf%0X{&D^T56<1Lt=6Yb;$kpr%hP8T3 zn_uhS`WwYkL>(a)I~3&Lx#FZgZ`0%uG}l;4w@q{P+A0J!ju!Z9N1si%gHpz9fS=Y> z)BgAiKi^~dlI}y*y|dJ}X?04z3b)k9r=w0h=%Qsj%7gxNCxeP`_Db4N?t_&&tlu z28QAFmk6N)l;JX9bE%TXbKYscFKj^dvI8~hfmD^HpLv!EgIiBII}Z#1OQdP@L8}n- z(kp-!>x1D}B>Yb&;YWl70l0xS?^2c__DI89nA4RxqFKV~PqGk}E$RBU@^{4k!<_j4 J+yB)H{2NT-UO@l= literal 0 HcmV?d00001 diff --git a/Static/sounds/brake.mp3 b/Static/sounds/brake.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..675e84c2f2af6146ef65139f48840d57c12767d8 GIT binary patch literal 443136 zcmZ_02Ut_t);~;3h!7wF0t8SX6v1R92}NYMGy@`_B4~&ONg<$!js**Ik&=WKf?y%i z6huLp3m9N5qh2AD00C5#8DU08lp>ZVt$sTBQb*3}bI0qvLnO$mg28 zqR}fmR)*MR<}eSuETeV@V>~q1bdY@XOb3dsy>{!mpBmB<8D=^ea*H%8ETY)_nd}qW zJhZ?0HcjB>^)oF)Q#bA8^J}}<0%ze{*>WAK*$$z^;ZCAq(W_tTh`j~eZf4j1^HVQz z-<#nheSSbcx3lxMTwT=bzr*8+*yxQ(_W89nxYtHSZ~?E}O>V?tHy>u%5N zJ*h3Ptalk_pWS=)r+r@*-+5s|!ix?L(QJtAK90mh{D&j9ML+5@?oD^!-fNd_t{E=~ z=3AyzSNk>I`1`l?r=PvP#I6m|FTp)M=Z~Py- zt1EMM>or@M5Vzz$G+~{z3~*0&-xX4`nX@azB2(kxefbZguiL*NUBq42h)D|U>0#{E ze2lgDLFs%aso$Un#bzhQH$T=YYQp7udeSAFx0=5gn+5Bjf7GLB znQ41$aW4LCh85@0b*k4Y@Xwkvc`@bm7skO2-O-zWT{=j%{YC4Y^M8$7|IMjJ+tp)k zUC-X$ntAw|XZ{vhkKjMfmu7hyKSU8jK05%dFx*`+LWg5X%sEgB2PM z8XCLH*l~%w$EtZN>VHo{ownFDVDp)OMskJcQdb+#&35M$NF#W2l3Gpy+MV6HWFK!u z;V8S+EP|r~`d=p4yEpE~`=76NeRGj1R~@k^SdzqBfp+K3RkX8P^OBB4E;_lsO8Rb; z7rbaR8t*PuC~G};?~_hCP^i1Fm&cbg?j(4JDPFe+a{V394!T~ue>_wh*85`;)d3wg zewXEP+C@<65uRc1A}FDkAXg=1ms8CplqH&{KDf?TJa@Gy%G1o#bS1hPe_)4%F43qD z@sT+=A!{ASjJ0-Bmgp9rLPk0>>O-(0>r(5XnbW5g$PILGav%jva08iPzr)2ce5>fY zVY&+QOn!EXzKCrVx{mfO82+7(j-BRz5xUB)=IAQXcXRZ=+unbAYp6;SeK-B>-*dz? zbnIx~^p?Ld&obVBnxd<;Tc5SBn&!jQ#ar#G=7Lpl_3htZU=Dpz_U+%Q%xCYX3slnu zuu}A0w?#iTxIVp0k!kwV<(1zzO-g&C(Ng7hr!7#M%A?Wk_yz^kPFs}Q(OcT;YFF%z zcFMGas*Q+PsZ0 zKy#i9XB|9pVRHsYwh{b@r`Tpzi7^(f`ST?Yw-ZW6^5R z`K`^&B)Ea9`07NKs!#tD)O$W5_fDVZq>*Fq$Xe4?s`(h2>KP@aU|37x6F8DD76 zH{j^Ym$cA~1UT9j0iO08nIF85wned*s?_nNZOQmTRidJ)N^KW1_EM)WZm#W%_S?44 z2>p8rr~aGPX7uqI%9_N|R2?{my?EbQsW)?4#L-r6Y;Kuq#CiFD_6o+6efz(Nu%CVN ziR;>z4^HTgRPN7Xf2IVY5(e9Gc{@l6BY(1d@7%xm_I}IT`!^Z&pWR;LkTuA0rx8CR zKf;VDJ{u%>+t>WQ|JF*$?Uj;SEAvq!Ta%eFrALrM8*gVCZjpy3X$(3SNp5R1pn)k8 z+mdqIpyt{OZDKKZ+g)2RcLlDk&&?mu{u0`3TOfT|F!=bn-L;0X^|Mv=7Gb5G!~UhWj^_yt>|h)vk1Z$bl0F zqw(xRr|IKGvtFOPd~R9^8-sXmCk~xHbau4|k7?hy=_c)`LxKz4mQ7@Q#r`MOITZ&g z*iS5*Dh?FLyUh%}n(QVIytL#UJTSS+{$PUjDl}9qD?!^6;&wewaWf98-QwNbEpd9g zi)FR*#W!o!J-ccxYV|lj$K7zMRC!KFu{&6G)HPYC;{A5hot7KM; z)I2D~_}a*LG+&a*Il}6J&OJ4QNQ*G8uixtNa7uQ|J=8&#yZWF*)5@72*KKo{=qV&K z${dZExfD_u=2W|VALi7xXHs*1)(9tg&$VYNm3rrSxTqQ2Hq~$x=x~wwnc~~3e3r)i z0`-FI%c|er%D#|~TmA7DZNd8azXFe&ud3YT=qwrf{rI6&#pd9o4y)j}J{P|~`Z1pN`T zi`XREMdK&tv&0BwUf3bj9E|M><3WE5^p8P#A&c#&$zqlAG^#?enW_+7r)Vv53bYnk zs5yB$YOcc)nkaSuX?Fbx#R>(l`&l>TKq1*P z45i7wK+lSyXH?R&t>_sSX5>EnCH{QPK)zEjc8_61kf9N;>RZ zi%&XpTu(Hzi@eCjF)Hme(l-*nI)XN^GtgfB3LN@|SJhP0i>Ce}?$#M==YRP>f zE~rZVBZ$b+s470)CCC64sWcW1oyoW0XSqd2c{tifwtG0z@7PC0d3cbnxl&xD)PyKG2Zn+Y(-ISd660$xPh^qWOShGB!UoodG=#`5 zF>4kRLt`g$VrM!o-10VCs&AOJ)Nxr=F!Gl^v*XvdUcXf$@3&jbH7z3%Y_9c8A z@Yt+{{-oIc*#4xhxmab_+}Cseu2^xWP}wQ!%mDEowg}3CH|3B~*$Blm^f%NA&UUs8 znqk)W$w{R{Q!H<(VfJBRh4t%%sJg8WWQW}@Jdh<*mipAcnn;KeF4entSyw&9n{dwO zUQVQZsD3J1mnS5Ed$FFu!AKgB#u_Er^N z@lzr6e^PtuoT1X_OMaJe^)}7Lchm*h1&XuY5K1(^Efs0554=E*keWJOfYZ|SH^3l< z;%;k~rCH_d<8@_a@76PZ%bv{2=6je9aUbBdI2_}5TxOPt%hWF8g$c_z9AOEEgUV*< zV>@n`WwebLK56ejYHfCVyWwzmf#H+R23_|rhvMG4#Xb4`$y+k^Nw@o#1nOIRwRp{; zf}E`%S>@4BVXggbIC#>^DXH8shbo&iGZ4xOgok!Kl*{7fAakW(Wx3wKDY*=}0--Ei zisLPffa74hA=A5LN@y|VZHe_xVZCO0Tf7#Q8A6};JUe-I>DpNGQtaWS`WU~G*WM|0 zF7tKIi|Z`QO1GUv+AhU)a3#fa!W+VY25S?Kr7yA~fvm5Q+D~%Af!g(UvZ7|L*+;6$ znH;I2z!FO!Wn^+FjHy(!@B%ox!jOjtEW76M?Z0my^Kt(9gy&u3VRuZyKDtI%I9;P% zN^cC&a@(G@o?07NLW>H~rfZ0A(i;Oy$ScN`KiOg*ko+Z08u4}44kngIFW30~*Zn$m zIng+sLzcXFUOZ@~u9M2TBtA6?m8<2keshOQ@p{S%&Y9kDV)z;P897ux?EZlRm1!>< zhV5GgUsO49(b_TnUxtMNkG&_e`w7uVNKL`EC*3Re-Oln?F zsoE>;vEs|n!@$F~YnrvKEyE{q%zA=aFjxGC^fWxQLZW#;a4z8!IH+|SvYlfoM!<-=Z`Y50JhJ3A3)daUp_hgJ_ z!-Bg9jr+d{mTr5zqq9q3%-9!f&zGPLm;yF~t$j>dR~ z&L&OM4Om7%u7s4Q&8YStbk5*97#QcGNidu1U;&+^W3(gK7@cT#*RytVBR(dOe3N## zoh%c-pXR;BAD_;D51LfaUyJx!73R?v4Gp)@Tb^#-`Xb);eYeMS#{*2fb!wt$S8AeM zHrohw$ES?ty0yug1;Iu=0w>8f_U4E&Iz8$xfSx~h5gGamdRg@#jLPiRwys* zFezD(KbOD8SYir$IXe2<)4b`hULGf=}AQbi%_AFRp zY%^KVma`U$^EBBZ*t2=ZIz=J+TK;O=2r7SvZ)s`fGi|LUt!nFlkpF?zYKEGVxx(XI z#3yN6dD*N2@*P!lBC=ZRo1*+UgFqnO{oD-F1%#egU}%BZ#>^|Gwuva9x-~*m9QT-o zdT7Z4kSFGfrWnTsiU&eqZ+Z^I@>L1vU=nT_*jfAkcPFBu5U(Ose6k%#~u%Tm+;};Ui1&rJwF@w z^8}~v@dSn#rkBeJJx3_U#8dso#Jmt=qDbUucLK9>^{M_ankd`R1^V!;5Pn9HxbqUt zB`}b(B!nl>5k=cs=h#(b*-0Jj8xZ<`A^amIyno~8hOQ$nmh#1iUPBMt%M!UItfLZOwD~2YP&$AJ6*$23qow<0iu9-94 z**YZS0C!pvVjWU-fTT?laW%WdSTQyipZm37^R@GhvANhhOs96fsl72QGjGiuqg{|jYB(;b&H7ROssiUj{D`%lhb&aXD5 zXNc=^hL005x+6J*m@=E9OtuIs!d7)m`AU2xmt=fY#%DT?eySNqHfk}d`a;3w<&3~Q z-9cDYay(~*?c1mMk!5tz4)+C_A^S|xeJs_UlG()L?TlH*GqOBtF6J~Qb0rybs*NGl za*#PH@R~Rd4v$JoOG*mvRzxdUJPNJ2iO?jq$j9=Nf;&5t!h^C&9YjuUgJiCxAWt$} za=)N(AWzaDk##cFqx9=;TrN3?vbnf=X`oAWwI#{5xY`V#+F;&?InNZc804VYAUKhE zGadM*ru5>b`R&B*cuxL8Lv90{B(m;_Y(EMOTvXeMO-(5riA=#%FuNw;zBc7n$kamB z0y2qooz!7IzujE*wGdlzn5vPglFRS6Z!Mc-a~uo=Y_~cauQ+Ila(a30wrH+<;$A1;xwry z4r+DgsP3(?TdgBhjyvWp*^$xcpGa78#T1pLd1W&yOBXb<&>>W!*0m*9q7>&FEwcg> z37XqPYK_l(Y4~eU|5EGUEG9%Zp@Go$;k`y9O96zyAok0ANEaOH-ZPsW>etliOUov_qy^5x2dy!{7i5<8hM zoep&DXRh+)?O)|6lu!)hU`7+Wty8vFlsqZuWsmjm3m&f@(^HHqM)!q}-SdJ9JGQ|~ zwo3Qrla!s~pR7(ld8hXYE(q^JKP^lCb@wBe%j;{4ABCAdyv2F6`*L`#nM+Ob!;Yzj zkF4WTo8ZsK33nG{pI1Gag7?N(4EF73kB4s`@3~3_%R2scOgh-tU=|1zDbZpsg%#mO(Nw&LcCVc+{>_Kd!6ZWHXt^ zAXKk623y-_&=`jG2K^>PYm2M(1|4?^8P)n2LA%4CvycJ9&ZmBafzZKa%sjQpPJzje zqJU~VN)*5`napJ%cZMd8nYa2-)<)l_5A3}ZfoI(@;+yW6Ty1(ID%>3d9z~6TeY7Zy z7ATJYqb&YJFWKCV=y@wR+iJ^d{fTXswPqf&QB192BY~>qN3D+vjjONKM^RY_{r{mo ztr_wF^#80USAGou|4)Ec)4b<$?!l%x+MJC*9$tK=m#ZOG#>t|Vu@L%~>W+4griFGR z=db!BcY$R-X8s|a0>*c&xa&*5A`1kpVmQfc_2q%2a!$)cwtNu3dflkRvQb`S4Clc0ppTkZiyVX6ocNxr`Fx^1;1B8I< z&Kc(DdKaGy1zLr7qak3C6*0dpLsmsuUf_TJopQ)#0-<46L^>EzFrEFH<(;(YuWbx z-E2j{LTqQ({5SovlB8#y3JE+MxGMPO;c&g8;G3?6u7y}h?5QVR3kqfbE-)4)u`ppS zHeV|c{J*Oooult`9CMtBrPM=bBt({7C3aO(o7#tngqs3qG(h}me+JmT5M>oYjj zp|&E|ui4?DmC@h><5xDrgF+q%;YygENrbbZAw1NfdpUtEzzb@GU|Yfi_Ff8F2^k*D z`Gk-i?mz=J#I?I5?nFpPhjEmX>jnBx8@p+-3Ldh4I)Re3l^KNA8dAMZh zkJr1N-e+}spV#cZ?Wa2S@9kc;7dY9I;u}s+Za8MYRQ@JJMq%jC#NOT;2J#Po+%JZK z(W`}&Rj9qaoSQS(#~Y69xi+{BVLu+f!nyg{$hIljZAzTp<23N};T?BXk{R>B4i3)z z2wY$n!bX7G08`3=LZx{FAV_#Zayp312W$l)`xO)q4uFj&F~J?*YZiFTQ~Nh zTCCl(K6kqg-GYmWyib=Z%-2Y&3Xt(Qtj9*(-zS7DKG-=|}zS7asQQ;BA@u)T_af>RhoHcDPeWIs>#2DP^?)oT)l7f1Z}e{XUHz8}!#;QQvDOEJ<%(F; z41XrpH!eFQI3zBc84|R6-9(&-dFK4yK6n+Z4t1y8FaX-`-F}d@FU+93_?OArx>hLJ zwJup%?n6IQ8^Xy^`nrSd)Xd6+5jfbNXMOKi*Zs*no?iO#czW3m1`)?7g~OOZIO)W| z`!X437=hemA}-*h&N_DPOgmT{*xM^x0Ziz>y|NGWOa<@)|Jih3^?UX82>TX&>h_Er zzsO`1!wx6G7(vCYs~KOn75|8YIZeWVsUm|-g`|)|GGe^I5r%9{!J~Gk7sKR@KJ|GN zJluR4laa#CrQ5mEZNavIKATCzvRONS(jkD2T&muA;^sO$cu%kT{=TKaZTqPaYOPiY zy)pDABA#hcsBl`8Rteb_+oMfzZ!aNGd$b7dvK5>noh@>4$(CMm$%@@YI;Oq;wT^L` zgd!bIIEo5|&aEv%O`5hvE#rh|sXI8~;xc5Ar57h#u{(=yD$k;t_Ck?g9UkOad8jNY zuHfrdK~WT4LhW7x&Rvcj#le>qvfeIaz3tilVNbm$fOQEy3WS~pf)@6`|Daj*BePW( z$W=34OCCIsI_sPIvM$VYX~ryh5RvjAVyS^T!=paKtbN&2Q~OR-KBIU`mxdYEzMf*i9Hg0*6A2#L%f+`+ zIFFT2L!bIQUFsu)(U}{8H`XK{UKI_V-8#;rovg#F)0th&=# zGxp^1e@-y6Hn$x3aetI!$sOJjtb@IS57Ui&rV*|~1Lc%SN9T}uM;D617*A0++MdbY z>2;>o(HV;EnVL)&tOG*-Bf>vQLw+&(bR;X!#VT|09m~!owcf$a_zaXH2m2)$b({1P zW_-22a-7~NI((}naqqswy-A0gOA-^yC-!G<{mAm|!(~>keKx=KBYz~B|A@qlApk8t zmg-l_llgL6YplO>8JGiH8_{4uiKWgD1bWh=lSD_h|@zs+Tv zT{UT*gB#prKrkKLlzy)UH;DI<?Jc@v^o_stvKHwU)EJObEn`j{HgnxG)C z+rW0CKo_C9xO%=Csxs1YXdzpzC*T@Pl!IY#-zY|qU$>X3FY2NebwoRXc5D4RdU^0G z+O0M5|I`WKPJa*AFs2<(9qCB$-n;K~tzybMY2WF6r{g`RJP*}&#Jk0N@;noh$Z-B1 z&fJbzL2_01+-u72uJe58)MEv7Y!!l5mWNK{*q{ao16rds@Mir<* z*4D2UnaB`~UjS_?mJ*;+-m6J~d0RnGWqE@VtG2yBhn@8Xk%DMiYBh=gdS|SP9Fek3 zxX|FU>0dMLpuEmp(=7(|Osic8=GKDjyh>I7C0*h5C3PeAscfUpBl(fGzLwx!GRa8! z?^d)kzpe_%mr6!1y06@Hx^}}!b-9Gp=Z%U_Uw)W3D(-+E0R3tOx}Vd6zQ<|FzQ-~s zsrNjjJ8C14rRjCzDcUnE-EsLGLjNy?e-MMg{>|_D&1D?_RFF9BPJpAcJ4e+$3C{0*kgs?VbEHK(X+1>ADK)^((&3kzADrAx0 zBJ`S~@@5*A?D(YmQmI;e?K7AE!gucK*ow+d&Ieru??Yi{#9h0>&RFx3)PN6!9O%tK zdKFN2vW#-;)7*?CzW=gF<$W;I9;43Xj8SwuSxc~pLJ2-O#7~zkFj*&hV7Wv{GFg`` zKn=2;gnCcF>nn01++uk-X|_E*id|%Ovbba}G7G;Q zKHwzEA3!E4hx@QQncWjf{A@R57sQKWGapObZf;P3cz2NHJA#tpJHg3AzwYPh3GN>= zi-ElSFRF2@0UZ`Z1>i1Od>8Vt2Y5bmmj!Vp~rG=g8_`*&bVvZtKU9*4w zj%*|O!3JO8<^CMXEB5Y3t`c82quexmBMCfksBI*^B-vb_rd>%0H_}W8aeA&H+vL{! zlG;*(Z7fpbZE&e;?RwVQg?v4N4kGmbhxXfZ{=XW{9?AMxX9f6I6_LAUwPB!&0<(J3 z4w{M%nr8DK*(T*3o{TY%M~>#@?q~UeDOn6L8Mu6W&)MLZvoP@W3=KYikbRr}_BMsS zj6ZUOwNl*I+&oo(n_?b>43JkY)ZZe<=?xd;<$`w%o>fv(>`U;%B_$xPxL`%sqyoAS zfdJ3emCW^YB3-9nCtbJaB0qx(`~))a;dwgI)h@gIJ}f`mo~w4e(NyK;;9f(VduA5m zVR+aJ!+=RBp`~`^ArHLV%BC1xe@Y1-amW#1@;nFjQ2*jA?o5ZdYMvt*9&S}Vc^G<-zL#B_?P+U86^fOmJ8Jq!-ttrN@?Sk(Uko6SJuP_$=xQj=03%yd=s& z(;`Z%)}ro0_!+%;ZY@rCBBNHX3-q7BQlwDy$|tzB7EzkvQc#Fu3$0=c(qaeF6w1f5 zv2c87ZU?O1buqetaJ6gCJjZVJaog1?w&W1~C7PF9j1ail@@9mT@UZ#>x zyp#gZ(9@3I@~}BaiEt3DW(0+eu%H1zARJQNjTFOd z?-RA^qlQ<Oy$ry;=Nf=?cCWu)^BtjSDdJh%*6^ne7>V|3S5*^m)TEuFmmdMATw%09zVum(yHt#`9-+EU;lTh3~ z|Lx>FC3bmgtZwQv$NbTzR5RDpcfW%}?f?9s{iY`5SEEl`vVN(v1pZ&rHGQ;eIyzM) zHGO!^T~>Q8skW@7*39%#)aLf~GA6X1QCuoKJl1>AK!Fd_+gOs$Xl% z=Pyvtw6^-eakaYp*}0z|pZj_6Y0SB&z=@tdJ@@ok@zdg`gs1b|sdw*`?@qja+i3fO zw86=t$@l;sm0L++q!)JmF2zomoL(?KguH_&u6x zj5bJyPtw`0p+JCJY=q{OJsF95Zw=PO0J^HiZ1qI;J48`!hkw?vO!=1@VWkD4D*=VI zBcSmcbvA1fG(cm*1NaIpnh#*F+JJ}=FqX#yMip&AEdW`4kAP^y@`7Br#n+qlTa3KM zTnA_vJmAxweGvU3w6fis-ESZpMtcTAJWL!38hiiVyDhYmaPY{~qU>~7ed@m*f6nZ< zvi0OyMI|wCP61q-pE36*Z-aqXgzxIYPCq=`*WM=guDwyNFTG_;pY{eqffw(Ck%DPM zgb|PgAO-R@5!p*NK2z^tZ(I}_*>>hUXS-GjyH-%b#bE+j0Ir%oLLvNrTG+TLaR|Y` z;_J3&E$+cl$vnMb(}%JseT~{;K^aSLSiT8!O=Vw}OPn2uuMO`K|hBA=GxPQ>?NtdzP z6LBEf1*=^1ul}lP-oJV_*}Gsj(OaG<^&G!W%QB`hvP@RwC^p;VcE2#n?HDsE>_gej zv#R--jC>p7MoGGjf;HD?gI`D|#(a30`V5sn{yu-aDfQfJYVkAFL1IrNen-|zL_GKK z4-$9eJZczfZwCXbgjs7@zFp0No&n35x#s@r$A?|irtq0A_r@|7`1rHL-$`B0vuX*C z;HU8sOo2;n=Gq9)mK8&26hB^D6jS!c5$0|1vNarG-lD9$)9?vG+#s|q->A9cy{gZs z`NrVg%AoIBDZT?Azs$z0%-63*JaaObt9+aWziQ*-oh)P%h?gt-1LE+^%y%+x&$Lf9 zK)dYK(TS{)ZEry7YFFRD`AGi9T1^=PUcTPPWTU2!iA9OxqV9Oj8gmz7OK{R{dl%V0p;c9F$MTSKq#vi(`xqxH zH&k4DwITU(_{-4bK9kFf%%q9<{`h-vz8ByB)DdEv;yn+xBv7nY72jA_zPiQCs%ii* zZ|xc0v;f7Mo%FMxVS+-BqX7N|al{N!{aJ+mRl;{$Lxzk#olz`v*(O&VxQWCli9*6d zbVLwnyaZEK6sF}Lch|vDC#$`!h>*909irC>YsH;801{EaBMoll&>`I&jY|*sY>AMP zYY;pO_(NHyKVoIU$;?Di6=6oMt!jkGj_8=L(M2D&_#_f^%Q6Ed4nOnILaZScEUvu( zp6bvcOR(9lRC#Eng5jp~2{dz4M*zmaN`hb{4?U5r%0uti59giFOHEOU#_b~61@gvu zj{okzG_ROC{c~r+6@9R%Qe{={pHr_?kt5OpUklR%jNYeV4WI@om(QR~jhrh9mj`^# z|1EenWU<)#rTBkE!IuB~@7qsz{`z)L#us{0hckW75F&0-Oxp9XQChhcjw)K?4AHjx zXhwhsD+A%0;Y$_yf2Jz^A@Ww^GvLM1RNqcts*>SHK}Rr&>oPy;j%5C6H;>dJTVjC7 zR(CM-Pu)Qg35qRo9otSD!!Wu^(IGK$c`O?~`?yr&GsxF3pJ!T|y9ar17w;+;LC4FN zG~~(<9i6A5(B?ZqaIWLpzTkpDZTu=ajaj)6$$wp~>>*m=9hl#xn(XYJ5UpV_X4>sI zrZVxa+-z_+F}M_1H{ZARnHT>a zeIRBcU;OUd#&6$!d-dCQSUQE?9dDir4pHxYsy`bzGotR+`WCeKIAZvwIf1ZoH<>k34JP@K~N$N)!g{iP)O zNlrGO4xU|RB*iozO9#l~61a!imnZnHUwz1Oa3s6A$Pf?m8OfzcGI)z6wE&|m5JPoC zi|A*yFK@utXxD7O)?glHKDw-ZISlhi=px!JbP>9=y^2CdqNA2Tm^|i@XgAWC`REcd zJ={Lr@SHPUim%0A!d`+>)9ya1^iO^zKhy56UY7arGCFdx^3N6jOYi@O=JWr1>B+n6 z<2^rQNV{k3<+jqW5U^h!MX!^i$g$uyojAxlSRem#xdl=k5O*@`6Lts>CM-LksORlZ zR2-=4L(FtpQ^j|H@yc0GES^|%*!%RgVdW}R=1*iRp;ab?S$oYi{X{Y7Wdo9o z9$mb9|NYyhkJ0d9eI~<8aMi0s&>65JKuztP44`_%jsa6rJbXVtcX)09EGsZk?+g!% zhY@2IEGe)!6$-?XCG$Kz5qk>Wh#ABzg@6MHIUpi7Paif2EH1F6ptr-kxLPH}8{lyb z-~n=k3t&7Z^td$h=(v$=2JF-8SF_SxX@FymB{Q0%J_-tv)(b5A4&Yn%# znzHo(8(e)jnV6aP1@W+fZw(Gh5_syixo}Jy%m)bnyis>qj8$tNHu~agzNZ^O!h=re z7TPzRH;_U%(wwK|Dd2U`fqn)Q9UL_+0Ek=%N5R-~F~S+13C5PaAe?3|cS0i660`hThYh7 ztFb~=pRv|Ynp}S%|3)<A#_!_Q{gMGgK;byz5P(&pLY_cnyT@UI`2 z9ZXp6m}gStST(C3K3ZxbZ0uiqRwWxg!MJJo7#}SlKHf1FdngnHfyG7Z?HpQZB zCWLBb8{-?#2H%bW=gqB{^Fas{2od=8g=McmML{%`Wae!$jc`-kAIzhb=XI*}$o^nb zi@6jVw2vg0)ORw+$h1-kXq6O;J68uAckDT9IkC9sY}tFzRVM$N(zt`QbI)T!qsQVv zddto`kFSzw2T&Rm19lU@wb6@S~j@@C!Nk0_bmtkQ?8+Qe(zp4>k~FUm6Za4tOL_9V-M zUL+0#C36jp(FN@;6S65lWkj(}c`%`|+Iy=nL*MDKK^-d$%;y&E`BK}`b| z+di)bc1LCAy;(EV1Ax>5-YUOgopR%w-W%V@IX7qbSqb-T2f!9k*;5?{)%aBLhb~A! zMCkvM_8ZO6Nu$}#3Y7D2fd7^p2lR>f=kW^C@#1zz;gmX?#s7ZG`+kUb!y(Bmk}tmE z`^_zHAoR_*u==MIz(fH*br{5)W>l}oL4=6IAbsY?fNhX#0k~_b3 zk=(zNCZMU zzmgZ9slNQ*^#4Ea!T)FN`)P-d=f565r)|ltP?vIsFXSXS(~R1_sI?v691)qYql>Bi zwjGc0Z~Kg!YsX=$;CiYn8sjg+WoAbZ19DSwnVBE$K4gBx<$<;{!U}Z4W!MC9FvXdF zGC>LYsQauWP~&)sxqnOw+ey$yN3mlp=o&GEzil2rmiiXHe|z;G@VrZtTZ&-Ybl`MPCdDwBDmE7>?aQh8|?)C8Tkv-pD`=%Cr3anP; zyP2++hbN8_o=x33{I9P36K}-tROw#|n||=x@XIVOe60!3poQz#?;_BUWRNua`2pYb^EZ7XS*vM{ zg%Z9N4+Yx%2t}V}ftj`?1w{u~5Q-Sg)VTIiJ$8GE9=qPA4ZF-erJOFEU@W81DZC7cDFc8UYgpy>4EGOq+!%Rat1(o z$*a~z-q<)Jm$OIj0Z$$Up1hyAKS9@N|Neuz=mVt9tH~f4fN_It=r2^2_V%(tgs{Be zQhr}m4E#D}Yqts-ASfy-q=upQLhoV6U(O{g2N~ja8bk^K;py^jWXApC9zw75Ctd@FGyL&T0Ohkiwqx?%G0m9S!>nWp>8)z$sTtn!%TW{0La>G zkhPlg&bE?HyzQUzc^sn?kMmbEu>3*Jm%&ThA>n z9DM^u4hqmIuznyi-pmwE09YZR4A&q`FH!F~XU#++m|6yb7gPv7`k>(f;HC|alusc6 z2A()zs&y`9ry%2?AsmuqYMGZjl@=GGUvb#Po?oej+3` z%tl7dw4a^d1~(p>zS9uW5T+Vf4;c~4A-Is$s1~CG5Nt&S8IF{Qzn8zP*t&d&c7WnR z>Q*PDaO62o)RY`2#w(L-ah*vP=3J?XXhUg8kex*}H;?!(FwfL9gqvq7;@h2{ggTpV zCwAi7={a!o#17Dg`iuzLPE6-gv6J)3tZDOJHhWBe-1W4&jIzh>x(aTOs(lShXH%Dc z0C&T(qXQo%@<$sH`Um^>nn=0Dq@b`>I`$r<8&K%IrTFE$xN$d4U_ z6(X|1DHq(WAQk++iXf01NSa{fTh)>+UUOf@Jm(&ddChgdpwD%WxzFW~ImP1oUf6(h z$0oNbmD@Zg@ukj5(r9x7zP5AyP)pKCU;B`LU%P+Ww7EX*4;BEG&9e|)$s$%8{M2@- zCE&M4eAfiYGH#?On`0*ueFe!7?MNh22esp&O=N|nsRtm!{VRf2_XFZ|-c}CLBsGVd zIN`HVn;*89up0XGIGptq7l<&aN#r0iz;^_WBSK~T@yg)iHgKd*2q8Uns{Zp#%bPx2 z-qw$C>x`KUqA|pWI0|eZzHsOfAi?XldE~G@BoIU$>VXp2%Fd=j@RbnBr(hW1axsuV zfyuSB!{Hg3)p#$OvF=L7b5nmyJ9VZ76*K^l*y>3|?tvsMBhWcF$QTRx7&x&#rkaYR zZ=hG+q#eP>OndzL4i8Be0fb@NVN9cd+=^bA@p#Y8piiRM{rT@lyC2X#VvqZYVmao6 zKU$t$mlwK|R@_O(=PX+-N5I6q5Jwl`ez267_Bc_XRvU8?n`<778m6Nm_JN=267E1P z$~Wl!@Pq?lXz<*SM?yd#Fn*rVzJ{v9-gNf3?-%FVD|- z+$hhNi5KzS=;TpipKZbhZ9~m--st^P)VJ7IPq5G1+;Z3*nI;(>83~4>4gNiNG!9dg zS!Ab8@+YkkVniXL5Y3ZzXgsD!E`rsf4X_#yAM9#vuVn1=2b>3a{iH)^Yawj=EmDa# z=)f#_{&Rwy@PPZ4)G9RBHebZ=TrK%##4ohaoi=9VK^xN*ue#7(;5K07?woSzzK72P znLkln=1VRA5RsKm686%Q?r^@v;TS}g4w#>8YY5)tX6Vyt-1_(jYS1E;;#%z@$S*&9SAa-`9 zeUUYC=i}artMTL!<;R1H`-{xhWuC2N3$10U0>~@3TtKEP9>WTluFC9*!%0L$J5iiQ zuST%Hu5FRf!H$Rt4nW-c8Z>__;<`T!Enob`05MK1`X^-t8j#k)Az`<#x!|f($I3%{WNJg0w9_2QWdfVSt#>_UJVZqEanjnlsW1ck?j_ zti)V?Zn{9KY+tbq3t$3{E7ab&9N8t)zY9sM*~l^L#$4AdDB>kxt_Kukc=qkEfbSLm$cqhA;-=yJD>Pp$+E=%p0D6^3lFlN=yh@Qxe~#PhfBmzfyYmsR`E4oLXE!9BdBk= zi5mO`Jbyd*Gt_QD9+^kx&hh})wV8))U(440{@#?EPTc6S;%a} zO9DEE4ftIlRH^aJ+Rur$8XB53$RA#{;p{DXh+rNuzi6x+FY1{5CXLm_C8NhXBrfSYr82>b^AvWJ4eMPw4Th65mxP$YaXiz!s~d9GHA^V_E9IAv`b? z=@4{4%iyPd>u>H$UqBul^6VJ0ta8@hrr3;XL<=ygWn8If&ylaOG$xjB7+sOjpNHUMU(LImb$DQZDMOS%QJM5+tVNti;O&0+ww`LIUh8z#oAWsa7E3u?V!r zA(KF^vK{DcA$*Qqab75Ei9W*r-)J_bq`oowSlCtPS|MMIltBQ+InT0W(&4tjFUru)!x7CfooHx^qJ`!{^USL|@UeP3&?_;GZI4$X6&lW&S9fA#FpW^* zcOW11f73^gHKpOZr%(7{##Vy@M4LN3MxXm_%x&)U3-U$@C_j?!F(W{@Kmj^XEgS0x zJ`(PlaW_284uKqzFmbuW+FTA=C{p*bT~D>e`bK{sEF^qLhnSGfW>kGl+d%G?6 z_8nwCv9W$axZ!yCr(cx2>%`v`*JWiz|Ck;?S;!fzI@W|bON*+@pXyQ&+GGLBP zFvP?2%%wEd{8%SkBk-erzG;)`iy*J24V1{vs66C?;nkG-qKljxZQh4ZebG6ak88B! zx)yhNHHE&YVCCckbm=$SrG_wF$=xsWZ9+c~#wc70u$?J7%0IbT%Vk)1#t zSU9k7!s!HNlo{nWS(im;LUf^`p9R5)(pO}NF+}M9gYbPp+6$vko4TG*w`;1l$Xe#N zhD-J0lZZ5qeD{FAKup6tt2+8-j=q40f3@?R zh_My~V*in~YqX1c{Kt)Pt91nUBKBTsTTnBkOUnx~^4S)U=85#sWTqpT*M5>g!f7)i z@-z!7NFxA?e^cby!3KmJ5Owz6Y=F)IOcz>dn)T4ss5&k`9-k!IZiDvJ`liAH;B(u( zQUz9x?JMvRqRqC6rgM;8ZF&La9N;i*ndO6pPECT2f$u-*)gae1)cM(vw<=D)q&SDDi|GkCWz#6D$PvZah~lgmeySOQudn%k+;9Cs@DwhIr^&+<;N1+Q$(JP1 zwx!j%`3=CwPPcAdkr`89}Yw<64f9HsEAh-xDl`{ECkp>V6AvwLn@v#NTkdP=NWcd_}1Xu))5b|UGh3Viq6S{os4*!~2* z6WjfH<9$~1dcx){2857iY+mOUY@R}>#Cwy2B6=!F$=xqpbNj|@B=x%=dFuvdKxW1K*m|9PnaoqPOP}9ul|Zm8PEU-L5--woeyYa`s)lJ|uV_ zdslz7{%#m*S{<*y8zS~Y{vW#DJgkX(fB$9;2tf#ISQH4NU{YB{1pu6`t z!-cN#_#c~kQ%G=#zx~ve&g*e9K~2~Ow^+2}JFmw_Iyax3|E#H?`H??qeLq@{CsM>l zEnCWN>qJk!{yPw7Nbfvj;(DZ94%Cc{&MDsBo0=UWnnSczI_nw|IP`yC|tgSb~PvLs#)Ns{7UM(2ge9v1{mn zQFB?>I0o&!ko8K{^IZKd{rkZjjX1AIsS55#{j?5TCs&K%3ivBCuhU|@9(^XlEbF?E zp+nsL#MG}q5tLAKhU;J9zV7=4uYbLFp1qTCF-xFc)iJcoz963!tzMPA+#W&|X0)YsQ9DVqHHTqr+0n>8N51f`BYW)9R`CV-0nD$@a z_PnxtisQel$Zi4-B(Bj5@exW$)f+7!tN_8h-7`s6hVopxm)x_oWP(1YIPa-w-tY8Y zO*W@EW2*3ZUI!(7%1O;K#NnPCl9`Uz$W@QR{vJB>OjcuvSbvsWejPF%c}?5D;Qnu- zzoDt0_CCCsKf>HkTjF)+Fc-W4VbKUFAxd;z;$~U8bsYT_(UPXiR1KsA^ZOA1kd?in4#D zXvtCX3SG2_vUi^3i_lpYcyUQ%o$9fBBrk#j#AlDj6m%PP%{93`39wHEKK8fbmlx5A zE2<$h#5r?J_@?xvf7-ikAEu7X4k3A&1+#?>~b^9B#AZ0DH?t|6GH{Oa6N>7n@tr zGN{SnjGWzmL)7+NrT%B({HTfZCgt3yn({s2+lPZVc5@>w?C?uylbMu<)_+$svS-Wo z8$Y&n4r;K&`Tn^wKGsy~?+L%OlN-(t_>OFk9ag!D+a5V+DE;2x*}$)1Ur2ifevuSa zJQ?`)V0+}zKRFT2eV5MJ=l%G_k=`FSKg`?Hmc6{T;G6%lO;U!#Oj3GJn#aWrjs}Ff)IwI}lYj9G!B4 z`Fc#hURpHfaGdh%qcJmw_F5DaDJNCc?sB4zSDiS(8JEzQoy+ZnMj52qRx2Rf6eDkg zXJb7-Ga^?K50{(8=@v(YQY&Zmer1Ocjdq8S4WF-$R#&ob&`MyVyRxkd-Ie18_S+tA z>)8OpPG?~i$BXezf})`Y?+5z^jUSxH7KLaG#Qfmg5Zr)8&ctesV-hXInhZcgtnEXy zmuIW9c3WiApvj7s0y1Fr9uw7Q2(+jtk5Fpag1-gEUp@GL*}BTQx;ybgo3lvWsRnLp zpO1>Qt47sl6pv&s2q_6^3>r(CizN;~tz@tnr|h;wX~ky#Jyr^B2`|pK(f$o>iQ-`| z{*MGcQd;mM$RvwvyBZ0M#QX5Ze-0Ln_OEep$k|A(&)Ha~2ZRZO94xNkfWmN7*_heY zqJG*UE`&mxD3aq#qwxsV-~bZ{6afR^lPtYj`>FQ@;GOKp{{~CF3$!H`IO@DnZ}cuS zr`crCR%F}0>s+bs@B5;UZuw1j+85<@v|ZmGaSN?2sA+bd^8K`T&$Wkn89JoRJ{Ri^ zUH^2sNn-TInr8CguI4tyceY*#PA3&;%h@4Rpo`Br_!TZ_7iXXiCHhb(L2rnNi(o+- zTAc1l8u@sPyGYtyo|FCmPvNhZ(#i3^mu3(D*N^v5_NP6ioV=fl(L$ac7Nc~!gLoPf zQTDOUdr7K4<`Q@qp+ek238SB_cKr8hm#d`oe6f_ka&n@)`kt~r&^)s3Zqhz{rOdD| z1Y<{iP@JDxxB_Qo!r#GVGWp5yZYRQzOVB)^_AF!N3mF!>%LDyUNzU0qeTqyhsG_qE zKI8)$qIx}Vclk!NiIo|O%kVS7oMJsr`4&v9a`k86S7$~Qpp|S+VH7}P*$b?4w&)Zt zRHYB$p93_AZ*b55pwK8$FvL|iCv93RK8%vY2o7L}>n2mKE zF(~d^Ymna)z4%{41)VE`UEl8wb_I^1%>HIDZ(3MvcT6~Nn?=Ow9J*PkeG)f{W>Zz~ zFDR%eTp>9qer6<&l&0-V4C_6a{1kUX)3U2$XsSG^9D8!q9nYet#($u3vg<2zluY~ydQT{i+{(aC(@D$XTn*&Q+6w&6eOg{Pq7P|V>dR7HI zaFvV=21axD85;K&R6vZN`)Q&gNe=9DM7#r+9fK%)s2farjdE-T6qE&Po+a_(r4k8U z%}PtY5fRbd-x72mj=SCGcjxYgiH|7nDDe+~i(xw40t|dOe)3a(o8*Oe8C5{+Y9dT`xFlsGR2HaTon_{d?@dOYJ|Ca(}kl zA)fz22LczWro>yuLa8XTbZD7H>7A1sW*S0ZJ>rCHJh_2-A|@nwlO9}0i703)w-EG= zufgDWnYD*`-m*hmdMR}M|vV>&I zk;u4+kqJf6lcp$|8nlvId2}TcBFR?xYbY-gR9|*3E>_VmT$WRY8sbSR7Qu7VBRQCX z??5goYLOGCLFK9IgBK6?Cz=URtYZ;u$aCJ#lly&a0Ee_I?;mt3SI zVYbJPR<#Q--F?USfRE%<#@T|m2^nS?>txNJj_OCWH*c3reEPlPcY~bBYRsERn!}s7 zN({~x@F`D#2o``u0_|w4UcJG#guU&7ICz0?Rih3x7QtL;lgYxeRPL>cqG?|5P%p8} z<9>tGA;u2AdB0@-ZxDTB=V_yWwC%7+`*}CUqc~4^Ly^xH(NQ$8`1~l(fk^ciXl*FC zmqtfZ)GL?oV@O>B6?jshz&l7uo>J$NMKR3BWL>VZsUhkOy%^^%R5MDW7v8M&QKm~5 zDP!bp@96D;(qF*9*{L*o7d?T8GC%qZlx@Ht_5Q5JZ5BN$3$!dt0~J=CP+wt>fr7tx z)`bxru;5DPtSp7gbYd{~-)FQyi`#0S+*h4W?dS;?*F5!NR3v*Dm(o7t*9Pd{u1NG^ zpbf)-eOg>tgV)LWuu>Bj(n_*kT#=|RE~Q}|UgL9&ZMNAW7?C!>zeFSwJX_(y^{?IU z=}+x2{y%~7KaT%cQ6_4j+m<%C|G!EKkc#^+=D~@rn%NN4S?&IX2`4(>7SO)3mOZkeSJWEc&7SE~kDIKR|FEC4JOAg`B)2I*17_+Xkd@*==jcB~6 zFzd*`9jA1hi@VMz@^Lc9<%1Xh9({6u=L#>Ux*u^CCs!8tY+lor_^jB-a7)DI$f}DY zAbxDa`{qf>$Q57A=0u2Fm(`LMks8g0Z=mkr`|$5Qp0m%!J!j91JAHa2%;5s1XRU@0yL4cr^ZK)akq6(Q5^8YqmISTb!g&4$Hu{ox z$y3*=qO+?8&&I6390Pateo6M5fkDz1sDBG^RRMnK#Ii^^8&8tnNh(Z>5O)@t!Q#dh zNQvB&94U4fk!DE#H|Tlz1t=BNpslhKM#ia0|2dHg z)#uLG9!V^2*)PNgtM}dKT@yvb_VmQ|V9AUfw4uhSsV9sKP8cU;R3~LrV44(;+X)Ek z-VPQGs!r^T;C|`&LMl!QPbE6hB;K{ATSGUl4Hn%ZMzQ6+;gfdXj92m^cay%T(jlDs`0ub#;m}7kgW%_bZm^tfgnGS(d8A*cazm zStyqVdXq(&#zR6=Sd<)qmc${9%$mktMxpa0)1eg=QiUg4rG=SHv?RfO6rhL+rli7% z2J?R~$<_CqrD<3y)VIVD1^YDWrx*y6L)IN#T#mc?Ump8B?+!gdsQ1{xI}zl_&qQcv z;^%}9&Vc*nv zSJpEvIqLf4sOzO`9!^Kud$q3Zbw{VLRlU+u&w~g^{$hI+sbPqNT0gl@qT)}r70*sS zczNT&3sM0cwnG~c0E;rQ4rmzpER6?fBsLYyumZ`rhpLk{?EV<4 zxaIg28dOLi`#jv2rS3zxl$zeZm0H7eV{{HI#Gs7{wkS zgCs-f=?IU&e9XVb6K$^SjUIkk4cAbAJl~5D*{% z{)gmax5xPBpZ_XZZW|V5rr$mPpd#43{M#X6M|!Y;uR<3jYty|I(&@rZOc^S{=2GfXaHnZ{7rnYNkfP6_J)e` zyEP3f`C!i)fIu4`jLYQ#KDkgvrzP!D$ihYP@(>*rG+UNO2e=T(Pgc5CL%mgDHmS~aYh1R8=S7=b^8#BM3{qZNuxWn>BO7}YzTxgj3!iErO;RlY-O$E z2`(B>R6j4fD!#e{M;MCkb@BAZTwzP~$dp7_2MAaQzK^e|=kuTdZEQ$!BS>Wm3KoU4 zCfLa!K0K7qHDMv>WD9(V(hOKO2K@2O6{%X;>QfdD;_1*I7ziNH9=JZvP=G5oI9B*h z2@?pFD>snFD01@xdJNB?aUJ#n%NYa-vYX(a%^1X69u3?9jwqx0-kZOlujyz$&Q7EM zSDTe0@|!x$)DolFE{5`rsNbp&n`w!;Nxeq>QP$DK2u$e~NMn7|k-eH`@&DGkdorny zV5$g)s#A>||9=&>{u1=F_J<=q>9(i+=YP5W2<>)R=ZaB&JFb!0d(%WuD@}zSB@6J+ zdNCmXXJkh@- zSr1yf%$BgZ4);4-ADWpFl`cIou?aWPzb4$E+hv=vq1~;Te9lYkTSwm?BXYwsa>IKo zjv7GVtI?;?M^8x+xrO2ueKr>=;3d?C(nPMI*n)!?8}Bv+VTs+P81n-R4_5=UT{}bAj?vjn_VPv$V$7&cqwo7Ys5}xBCLNAuHE-UJf_B z^`daE(9MP#x?-en>0J4)NnheEl0jsn1-y!=`*eNTo%dTHHAmE-#>}#OA z?U!@hu*mdVu+>56xqe;7e>6xGyWCPI;c?dm?X1)BG9v12diip3+MUH3kmW*{3v&jR zh!VN3((fEQj{%&0(cof6P1%Wxi?Z!!DlVpOhf0*Z;IALlNXI{f|D;_l6gB9#OOO8U z>nqQT``RpT*LmZ>U0a#;0biEZ2iQ~x?usJl21eR0SBtUSEU_lh67r{wAqq8Ag-Mn8 z1#)$5w(2x(aqNg%Zl4&X8m(5jjMbe-u^V#2(kksr;DDE2e=34`y_0y_# z);*vcs4G!$7cLcFDjB5jA_G;I<+u(e<5UJArW#DwtXx6V>!7XTM+9UKhcz>(-jH7; zSvY}iz2ege7?2$2^6e||#Mc|d={OfBYoAUOAq-KxfQgCNjS9)9adNI_Wyk~;&C6PK z!t~^lBy(K(=9kRm7s%Q9GkZK=hc?Qx>-D?&3kd?TyBx+ zN&9D4w-&e>swANSpIi{X)D$`bF3DL_&LB z!sB)PwYeld#s2BTnCb5j(!h?oHH?v@rmW@7G~a@=Y9)zWh!;`!WMRD zALI{!`k*oOZSEpo9Y=rp=5p0o#X`X`>Rw$HU{rO^)}YW|P+jO#%?sgZ#FAB*qit1x z&@r_&>tTc1#?pXN$I>Nk2Ro)7D4!2B4z{BFcBdAfws6~qWjXQ6wkq*naM*>YKOncP zYl-xI%E=QnNryv+e~0N|g+864(lv{{p1RW3DkqMy#&aS%SNS-1;znF{V*`AXG^-#6 zY<9Ge_pz(!=V`>Pw^jWiEre{`$2r@1HlWJ!g!+S7$EqbOBh@+`pX52XJ;~GV)a^}C z=)YTOQ z2J0#W(yhl%6n5^MQOVI&>R9Fx3Z9aNESIpAG_^{=R`P-)GH1l#!FP)y6Gv7Oa_u$( zSi+cxw$--!lf&rL7?e|I!l847>NpS!qGNS1nmP_0V||O17M@=ADIYgGs;PX2ZC0tK z8jX2+@>*$YA8|SQIA@hVH}N*v?6xh7;OomX$(N#hVH0sZ;t$V!!PuvMjpiye6Cd?i z<$YA~sM0D+BTFOu=*;NS=rc4|nrl{jGCi4|NFFpvzyAXx1(ORz$|b(dU}43Dp;qjk({s%KDBPIbKZOd z4dt-c8BXA0U)WPKD*82b^-B9UdRuY=)1H_;xGLTOtSU&VG7>7mP5^uX0M?8D7y%&O zN3ur1xeJm#JNE>ohc+Avg2bO=3;RLg$e>2RIrs)Rwy6j%I6raj+@2u+Jpstzz|*-< zydv^{By!;R4$}Z$$5LA&uSrIN;eyqGi=YD%{ju7LFj@0w)6*Qanh6M*}y6 zV=F_J0%c2x&9!4A9)XjPx)Wv(dBxlL!jt4^^d;@WS#7naw{NasGJjfrLG%;tf+(Sf zHpNVs__OLK8Xk(5D~{abUp{g#Iz{W==l6c1{iOA9;wRb=?C{X}+`%|<31?+ItnkK{ zPp+xHeA2TT5eU47APhNU8a9L&*pvPL4@HL!hhDVI9O(H>WQP9lp-Umb4M98%N--kk z+6v9HW(oHhc#c^z=p;kX?4^SF=m5LUISNzx;_rp-aF1Y~>rjj9Sxabt6kh5o#N-&` zVwZ2MVr&6TEV)qi_Z1hsFU+Q@VCF(Xl&3CJDP1lR;3%R7MpU>Rcd&z_VuR8R`X^}A zEYxzam^6pcUCBi6#eRymB$1EmkQr?_#D!+8y5|Nc_E;KdzZVGA8~1$d8KMC;yW*GCcGk6d-LArZWx|Yhimw;@q zS4Kw+)M2t3NoC}M>-1lEk_qMyzL}0hon$=01yU)OKKmyhm5@ChEYKN{-@wDYYu`HL z(iJ!CQ!A$ca9p&Pz4oYrA&>?mYiG{LB5CL0;Wix7(#Vg+;A+|>e3;|nIq<~e^U6N* z7F;>pYXXE=4sh|E+_+6pn;f1aY;AzwWZMs2^5Skv<-*JV z1$2MZQYe+d@sX1IFz)ZUH#f@2eZ3L7F?VG<5@Ca+_|LP#_n#cV_`j%U7W@DFue*r? z*Zm2MFU0gRLm~hF(ITE*usq^Q;Fi;`45!Jz$o(z66qCdULn;*o9P6KBykV(Gh?0n+l{-oQ_fZ%@oyeUhxj;IL5g2S6JtXU{B z)B{9-#taMnlU&3_ff4%4GpVj6sGpdd*?`0lchN|1k4CB^pSLRVA z*VLl&$m(qoZRivny8q%vU-44s-YL}3)~v(viqz#28Qo3mbjdFXjy~J0khIQf1A9E2 z=B5gHQ#H|ZWY|Y%FzFR_J?yQ(fcP{%HY^hF;*t?q~MHdTPK`+6)hlU^$6pJ zMqScKDjnt?y97UW(WKozNfVOk;-{iU%Qk>Jkd5!M*gtNsUSO$=x9DwR*q$*js`XzhP%X{4%C0k zJUrf6H9Yne)7)E~8EdIt<)c_$WiBu`$lEfZ_Ly>%#`3WQ*bLOt>U6s;;(p$mSWH6d za1Z^;jP;c)f<=!1zX+#4$^2RS&x5MFL`xOne<3}`5f-I7q@2Fk-Rrwqare=N1dTR> z1XwKVFM}lrBY)V2V!Xq3U?I}MsQ)-A!$E$Vlu^~|VBGCcNpoW6*-2aTwUWmKW5nw6 z+@RxbV&RzJz2JS}q{;91j%5Bz&FhYtvRfiEg_TSvW|g(dZYiup=04hz99UC`K_%<- zTJ=-3B{Z}5{0^rJiiZ{MEFmB8qGu`absU!|;l_)B`9<*Wr z+$^b^MW;fiLX5gfpitdAhZhq#789tfuB@I_%A#8d)%iGEEqtEHuV|~D8_Y8z*6d)M z^!U$~Q#Qp<2QM3OzKN_p5ffRx-N|2dP~V6Xx+=V=a@7`YdjJ$J0g)IU#g10wzYw?{ zn~%v*A0vE88DJgS6q=So)H<$==h>d&sK4Mcx(2!v2_KiEQN<;O)icOsdnf&Fw)Kdi z5hj;1*nwJ>fm#;ip4MuY%D0qWhWFH1lwfG~j7`NgYGsQ>T$lB<+egn{ka1r}H@@C& z53U=@bJ~uqr&N&K_K?fraKy5C&y(w6rM8@=TE`sh|Lz02nLj+pY^r11_I~ zLB{%ZCSC*HCTYfjR>8)Bi%)yz#H(O@FSPYOt#~?}{ziP-a%tVtDyJr^5$%@1b&XDq zPPOYU8qL0vYtHRD5pmPn`n^fE)kf+OX}jMf@{^S6Z+?k2{-*a^((|p<3bXlf^9W;g z#BiudqA2_r@3Ldt(9mp2@v|edw}vm6q%?f%nbG;}#)>P?!>3P9n;YLUo~}4!96oJ4 z?a2toEaMDgT1H-;F~{;U-L1x!WzcsHl@_Qsm6H7*{I}JaFSP$SL0kM$jadHaY;oy> za;QIx@eWJ|RdPZDV{^{4mpLt4c8;UVC}UVwoVN|PG$=C;w`4XLv;(|U$R|(nNH~Jq zZec+o5A%img$Y@c^)NomWS828hK{K#{YxCHFsE!=XR>>VV-3AQCBDw&3-yNzQ{^3Q zvG!KMIe71G$7=P5-sK&!&c+**8$y(vpBitVts+tdq#iN)bHaF^eRt3Q0Ha?ejBgE1 zQ3~yQ80q*1BcMQ0TF6?#Tg(#0|7SO>g4G`?mfyp+f_Dd0BWbUuV_>)A$=Lw>8}7!z zv=IE$&wl&VrESvFrEPAn^QVk$F2ZA<+W5V^zYUc(bH?FbPX@RAX7om|#x@>VTi>>V zUhrT=FdlRWBG3uDTXDn%O@!;HZV z4A9jHjO+V1?P*d^9?rCEP_m&n>8t2Z53@`apb<8x3lt?MFrdK}O|baLy`hA~C)<8f z0*?UvMQ4%8L(+I~sG1|MTi70RO&{JzPcr{fzuEEZi`wY7%n!<6d0XD zX$tR)3nN;8d=Qt2iYAeqseUsHa}cd~m)xX(CC<-Z&|M*m(<@*n^tdWpECcf?iOSgS zoIq-ZXjBj^WvPSJLIxCGEC{r`^K+FMW>k`tH)Jl*snDQvQO^{t=(ulFLG)UFto)p? z#KLz(a5VzKDsehC`X78>2n!_nI?vzpVq7sRyjb6O4^9gE)M7LHRPx6x&#|c{zFy+4 zppuOUmOsjxPpqRD=SZos4jJW0xi>Y9!~)sBUdUX=k4kT%u>#UQ#xe^7nH)=HkLP+M z&`2A1C``!y|7X@0zo-2S|5vYq{SxE(U#=wE>b{BttT}k!h`~SdSP2E75bqk2Z9gPy(pg9GOls9*LdPWP1W?-UM8-HD~iga zdrO$1?);+4$TRMPZAP4)K_i>qDbou>E{UT;ptl!%b$iK_sd z8%`80QrzwpPe-582Mx#2QbV*Ex0*{YlkpE32{k=lDT1nD=~`FEGPyi{$KD&Sn`H=mO!uPwtmS z;Jc3u`bh&rnuf{OR6!M-1BzP?KzY~29T!RA6pb&8ZMZ3G!nXdK(9T<^k&tXh9sl9* z4zvZB-adJ>4WS~hEoQ|RN+S&fGG$rA()OB zJDvK9<^V5*G3iE>1ePST!1GCqmxUDQyzqz3NWa-mCa~=;OcI!JFX&o!7jpBtMUwpU zNf~p^wh=zvTf2P=jPOU+X|}6mnFZ$N<4pqFh$wU|sFg)}120m03Qz|PdXb9vhZO0} zwHgh)Fl1G-P6gf!(;+YZe`qPoGKw$EMVse)H~~m(wVE6M(_2v#B!`~HhXF9&OsN#( z?_Z$fq0xKF;X(kk5h)Na=6ze(drI0-erv+og8IT@1zW2E`IgK;A56V1tKi==$jKqT zc)lfILgagm%`mE%OAnh)jea5RB<}W_h9wD5Nf66>uJfhfng2l(xgi=OAhtf}#MuJh znZd=wJ%lF=LJHIl5K9quFu}%gP=+p|$94C;+Mjappnp*tK}P=+3FGHn^JMc|Jl+lb zdIZ2{BB1E)P9sral+fybep6FZMl{xz93ie$z>HD3UXWt(^B+UJl|KvoFe!TPq-e&R zq*P)y1(|q&6vDABt8pl?9J@$X7^#KJNj8~`M3KRd+5=KF!Bk_Rsi`r)2tSOuR`6D$ z$WLUR`@Qu0*2Uw@;up*#a0?lSr1a>UUd8c30Hy zo=vY$XYIxfn2Z7%Kf2t8a;OB>QUQ(1nc(eR}81+R0XziDtBPul2beIlaWb_wAt z9gn&4^>&{Jwc+vd!B6BH}G&LY|rWk zj-}@uSKIXHx}=QMue1$_YcE`$Ftxzc0D`G-*_YMiJiNU;U@IdqJ=Rj6B5n{W2lwM4 z(U)YzbIjZCe3l=P;1+MO^ea-etSDT@h5A8np*Yb*Fx|j)7khjpuQ*JR(m_k_lklfg z$*%+gT?X+?a-)_T^@}B$H`gns$zYxo-E?pE;o#UsZ^lRnJ)1i|rE@QBH3v07GT0NF zK=B=5m#nzh&~Wi)D5m%&&gqdsHy}YVg z4_cyCqe^X)gIB!(<|a8Jm6~mBBtqnd2##ZDjat~N1_s+8U3>=Q@UMeLu|@UYw|#&1 z`|JNAPweZQNEsmx%1e8^SeyH)s?kISAG;5W@>T;CD*5s`a5_a{~5 zUDR1u^RiR4N+Nln?u^>PsjfKG7b2^@lk--EABYVr=D5e-i0)l7+Po!lv_{grg`Zrc zSsvQH6Va?vI@r0s-0o=3e2S6Pl%p#g9-PYv7o&h!)_pIt4d!N2Rg<18uDqSo21m}@$@^JDA zo8ju~8pEf+Vm%U~5k1uKsXhLzBsjWHqJjb^LI$l-{Io5ra;(C2Bk?JrVhWP8jJp7G z#-Ew0Fwfcj%yqczP?wIFHHaZ7ZxRei(k|Ymw$Jl!BTbx}a5B0otyg^2bonR>nv2^b zI5q@=nmMu(O_>coUjv;wqG8UlAr;W?7Dd^UfDHFbt&-2nx{w}rJmKnktuv$^itT}u zM-@DgD@{X|G;eC2i_o+*5mo9$^^-S+<_=s*1aJwUCA>NaDmpKLd_{kdjzFXvP3Q3j zqI&4$=!0#Er-n|VV2MRESYbLBvIrn-3G0$%CLu`3 zYPeS_1gm8Bd(l-?L<&3wnt~F~!kUL$rmjf0LtB=aDa%waR1a2A>F}Z}D2SAJ3Lc>f zp?IrxrnaMkl1N!maYj)=D$*6{DJrlP?R9iJ6nP3w3QZ~<3JM+cLXjuX(Y;IeME893ABpyA(kLTR=yD?)u8~c5l8bZyywz;~JOk)+_j4JV zs0l^fT0IbPHsbsMJK}Q5tlT-VpHG`Z^>l_BhB8x`_a`rt(BD>l+9Dd`-VDF`p^yZLA zC?8aklN>P;Q}{fcP4a*%ie$V%_a=alRWhL)qMyhixa00j#ItKE`9M9SD)0(L&fB>DXiVzk8pitQ zZ1FZIcBMaOxIRIj$Nw{@p+3p$ZWm2(inQm&hZMbb&S>>YO(o#`iXi&_#TaxUp zVoP3WPfszI+mk!QgYir_Y3zObjTXHcmpE4ibcZzEbIcp=I9f^8^m{eq)usCuKP zXP^g9MN0F6&Sw%qk3f>O&&W`YH*~ZX6)~^j$oh@Pgm0Y3gq5<(QeP-wX;V&L_D(un z511mI-j%eW=#=vRlAdF%3+>LfHP?pUt+_FfU|Kuyxz;IBNPOO%HQv0v!o9*c1Rf<{ z-sKeMvd?8-9Q*%yo^gqen?WKHRz){Fj6*(>5U-?SbSh0fW$0MSpb{EBIY;f#I)2D# zkABZJ&qgGt%v^|!0Fuo4zcg%Q1XQZM0%8lPNM12F79x=pxuwj~MR-nW3Unv?cc7ne zuGuHdf;5dS zpO{EZHALVAlfWdL2uQ>vf+Z<5_W}xm)JW%3r>D+SbeW~|zbd`+$h_6po(HeMPiI%t|Qm<92xMSW8&NsY(ekYU_o!P6~dNRCRXsz3R$ljVUTMtXdvln z8VE}x^TaY-SQQEnFhxf!>mYi5vj5Ly*?+ocO#4GgZ(_@-ALidNv7#fynvZmnYVZ}g z8gYY2Dp^p3a+GJ}65d>ur;>W5c?rkU`is6w^Rg}?Ymwwo=|~7jQps$NVk2lRP~!oL z5!%k#QEV5@#eDuSdmmad!K3KPkW$3Ss)fo!8G$TD57pTO*OBIolr(ARwKi!#^d#Pv zqD1YOS%;eS>J&&_)JV(`Iy2XGuPc#UHbKrL(%2T~WxkpWdR6%9#;eBl`YU|BUwQg) zYf-h3bI?FpoF|kIOs?1KK~ck3l44z`S69c`TyZZI?RV0Er`q{WA!zxVlpWiCrcz%H zaNkIIk%s>s;QdIi-;VV0u^!j`MbMvu9q9O-9UBWE>AGlZNIpKP+^)GK?*QBj~;VlvP#JQ0JEB4j(6YD#@C)U3}(&>v1 z?63ujWz%-4+){&njhCLUEK3a@t=G`)Ng;6UFpSn#Yo(B#3Is$1Xpx2~n`AWRJCKyt z7DR64l5A0u7Mcn@Z2}ocKxx9Zl^tDY9eq6T=z8Tc2u_r}S2-wk@}A-`+J$zz>ko%ae79ec)N2Ysx?W$z0T`S_4yPo3^q=X2c- ztmGA>F}X}G3pZv23mZ*iVZz$USViNC{BAPr#yX!p$Gh)2_RQM1wxm3`;#R6US?A5Q)ZI5uL{$ur00Fiq_L;WCO-9=xkjAM$jf;sop*6(4q$ZV&4EXpA6^e{{5BAOl%*FMB!%?1-6O$8&NggHvw%IkY3AVYhdj(aY z6QMl`f-2iQ4CzC0>AH;7=IiLY%u#Gv)t@^G5QfsE$S5}RI!Bdy@wRhvRdGy!U*}{E zy@uvH(CgK-3gwfQ;ucW9ir`AIdJ#SIVjTE##6h7ZLWu^Y1YAx++S8C5)s1>dS}el0 z;9uD>8V=tHg&{ZIH@f3Kd?rSQnnkL_v6A{zQsk?z=EFeb|Eh1lr0C9vqaSYFc{7OW zMJiu;UDuxvI#o+HsA#ExlCfQNcg0!B?n)i$7597V&uF~xw%>El~Q>=9XC_d1)Bxxg8WdsihMz#K!d9z zvXheyXH?Wla_FaxU)}xpqXexdMhW!Ojw!?LD({0&vr>v@yvON>?vDrEe(3!E6YAlZ zQt-er<#@*e@u$R)aQ9N{(2tMbeu%cQ+HL1&Ck{ZAQu$eBdpdWW?v+H2)!`b~b<+Zp zx6>^;N+T>FJll+YelMYi@_$K$-`MhI?Y?m7Wqfl|EKjx}CuM>7GBOE82@+wPR1Bp$ z5e&JDLR87sSs&m))OnebsA%E}4%Y1~;Ng%yuYFf00LoPsIrr|*cWfe7*#^X`;STVaVOk7Q#-fiI45vWT2kOKEpzv-kYxU&miHwN87OFoVoOImabqPV{(+ z-?lBm(9{FhV<(|)!Ew(}Z{i<1EU^{<5-YnfLaW_m&`8918kr-Dy z6PX8u2~In7tcc(r@m)w6R}JPEB$BpmrqjwX+vB!{?XF6;+1~}bD%)mvE1pu+za627 z!TUD?q>tl#+n|XiFRpCMz)uo~V^|LvUoeLHxXP_YMmYxjScLI@O#^HJ{9r^I$#AJ` zP$WaZ5feE_Jd_-ANlNyOmiGjnJ3b({F1a1`Y8d*SJ_J4z?M{#^_h?+@+J?soCu3VD z@El$Bd7gMd{#I$KnkSB~;=&BziTLczkD#K%|7o002-}{VRuCwH0Fjz3UxbH~z+gZq zL{$M@e1uMSQU(lvI4uxxjf+@0qJ4>qA3h923Gvz_ zFj9KCMGj)rLS#1Usxjr|=u#(1*_0|0)F$n7bEFb={o^m)jX1YG^pNiHG zZv67t#egrX3j)D*3)D6CeVS);EN~ZjY=uf19&4hI4)BCR+EXVj0FPKwgmWw%81V5- z{?qB)YQ5EZ6dI`USYu6rLF0*(0If4h1;9P<<{ z!aKjpp8w*# z;l~3{f)z<)S#*0jP?QM;nDHI-l>JzW`I&;{*a%R5^Ye_zS^tCgoIITMmgl@%S=*lb zUrpoM-21tY`*Co;f7~mQ9OI9B*BaLr7v$cHWcJguiu3yo$cz5!T2=B!6HV1o^8QGC z4DX1{eI~<7gWP9Tkyvpr5|d}u&KB)ltfOafBTdb5tiP21_}US;nUSwZB40@Lez=4f zq+xC*p@1%|&hec${%-MHKd3o;@NDFy=$hynVg9F|sQJD3`}^CaoihMWer3SM~7u7eYlHPq>m;MN_Hj zqm>DU6)u_^w@0CNof@ylyV9tC(pI#6o91ti+4foSm#0LrmeVgmdVYEElgsA_={c_5 z)-SGIV>u|#d7s+Sd-S#zlgE_i(;LmDNBl0Tk8JQ8_A3u;{WYLIC2!j~?D4wnElyjk z_1t{7INsWaz29n!wJtRwYpl-w^TJw}V^dA`|1sg~$e>y6FG2&3x1j#H-*tOIrGDTg zzv7$gUtSU(5f+V!#FE(ep;61DtlwkzS4(@gA`JxT9%)$G>1h&QRSCZI%a^v==-2me z#ohc=uBBP7Wd?k$=1Uh?2cSo(Elp_y%gOEE&!qgSA6liR*C_5 zbB~~U9?8O_O@ZbOTKfnaK#Sjyfd7ESq?nin03m=z{RV*PGwUA7!VyGLso6sEuG^4I zDX%nE5~qZse2qmU1skc8FvwDom6e*8DF-cCLvho>4=lX#Emi#w*BhplNhpW+4(guJgm~K#=)#A zjNieGG+D&EM~}f!$8mX%QjMU-w!u*`CFX&n`9xq$4mT)7zw_S?8+>#-8kmvAB^AX5 zyj6pW2e_JT9gzmP_<2ND(!4~DG^3b%`~!~5jl5I1nwK@}N;%{ggb~zRY6K+}eZP9} zNb-2p+m=z}U_6rXQ={5?JxQt>_=bjvPs^D2Ptsq%g-!n5LP9GLWbuD5zLVtkwjZoC zN^K@-8T{1kd)Ql*L@8>QhZO7`*hLhzp7GC|-uCJ+0&oY-gVo2oGR8nzFD%O^} zdX4K|lSO3AJy+`1WN>`tcO0bMLF2EOf2mfMx0XNt$W8SxRaw0Im7a5?xAWMm{(&rh zv#m==%$0uq?VC7W<9fyJ&E|kV=;bU-m7M%FHt0IMxa;gRZ1^*wI&i0wq%+1``AH~3LC6+4|@zXW+EC}vE(A?OEt z2$_Q$Fo20ARy)+rjzWL6PU%V#(dUx=|G&zUTT*7VKQpE|*qeFFKfSh2C215Vu{n)Tc=!fZWN3!64|FMU8D1&qH8p_007aDb0ma5Uo(VvCk{} zO`}1pnNXZb&Ah`ijjmD~LScS^XGkY5Uq!be*tY9wrv5$_1 ztv)&$wYFXuemg&+AO`TuV@m;aY)J7m4{t?@1LA1tsk>?^fX!G}0|DdI>79c&oaGFbE^sd$a{+n&{n`>XO`v`gTY(U@wl$%7)*`4TO-&8VgHMdR~0D_(PuRg2HLO*(PDQ&T$Fq1dNTB~e^h03MQ*i+%TZ+Dd+A%FV6szJ z*?QW-ai{f+^>a%H3thdn_bsHY7Mw+k!tIRh%BBm{OHuySAp8HM^7K!cliJ9CWM7Q( z{$*l}ssWSuJCVL>W*tXWF;{)FLGB`aq*5gZ^cWy zMZkr;Jwb6fWDY(FEZ=oL4@nHLSYS1YWPtaA8^R88+`6@GtJs!ze5m~Rpvw8|5bNEJ zK3m&-msxXkW&GNvWfqjDkPX27<3$9a|Sp~ZEa-Mu}~`Zk2Q|1)R49n;os z*l&tH5>z_4^kr!MuDNyHp>ye>Y5sBD3pC5P-nm_A>$)-O+?BSeH?%&WKFC_KXBh>y zB!gBAUl&HEalLWfX*)yHV&l3o6Ob0y%O$B{Brohp|5FkxcI0+%)l)4oUNN7Nk!8>w z_Xp)rG9H%WtdomJUVLDnKk%2h9=Bs7cDtdXkk13zQq^8WU9WTXAGB`Z7_{;(6^Hn* znQOW<6yopP6yh~?1!}~_CpXYScmulwYA{X}+Li)=X%!5CA}{5?F+@pdAN>~Ux_^Xs zYaYI3{go5N>l-0jJSgoN{eP!@vAvp_`I_HGh?k>Meb&1bKw-XnYp>LHCLh8 z%w-c&ki#r5hiT~L{qQjC(}y-|eZxNO3ge%}!n_~4Y=Ve~4uyMzlmR8gBWE^I#A_z{x;-RA@!7GR^{qCu24Tk1fwe%ZZR8K-^6TWxPHn?X`-^L@QXO-gxo5U zV@1v57eZxPkuBBf<;HB(XC?0bhOt(ne!5bXY!bPvJ-Rb^8>`iCXbTcnd-P_IW|G}O zM2{7@(r7gzd@MFY`jyB&Y5GPI0iPl4^yWo)otS6CBn)3y3#A&d>yWz*?&M=_1?Z>ShoN{Bi2YJ zAuLz*5)yn>z*#?c-*KEIUs>mP3nG$Vdh-!xRb#1}{M$O&cEneaL==!J^2tZBF?^m& z(o*vM^l_z^ue2d#<;!M;VhnCDtf8YU(9~PJPtCcD=MucnH>SxYII4IzDg{GPxwAy6 zfL$iqUqD0(r2DtanVc($B;kJzK(hb;A-r7Y2mOCd57+M5C%-%x!{>TFP+M>bc2RR0 zRBVf`A}7+5uUgx_G*$gl?Q*N+NLjCV2doVz&(`rrE(KXAD|U+ZOLWdFGj)viyXpX#49Ap7Jn+%IU+>{AbsqoA z^N1O8t;J^A!%OYwei+vtP8%8j+iZgwqXQgn*yfYg>A?+#iEdYKDt~;#_)hzuSC6mP zW`4n(zL_3B(J)p%uzT;CM8QBjoKDi@=N?Js9=%O?B#|#Hx^XET?}2mXv+0(>X+B<% z*HqkmYuk6TEvBnKzbWe}NbYO52@=?`Yx5L|Z5z(l@NsnE( zTP0|rK1Of!IIn5cVPrpNac=a*qh~MjNOC-0WZi2@`CqVnZq~!06z>~-TY!xaAu?-g z$7FQvBuSJf3G^h8z6GWQL$$4~_e5?oF4hF^Co2)I)$wM+ZE;@exA%IlzMpPz-#vXk zuBIAzpDLJ);JKza1jptDuK6!wG8l467SY-g15(8eqW-DG_aZY3BGKa-_mMoVai3H` zL!h0o2PgMD%#CFKmkOsh_`KBq@NMr7+n>OHzE<|#1`3>uTIb4mj5txmyIp=e*klLu zJ}JfF2R4fl{=8rgKP^1l!S@(yhhs1z$Y+eE(>cuh+*^k91oAWNUHBOiP#O6Iv_kkX z&f(4EC)k=Hy?UFE@?FK%4Wh@Cj3x9jhMFRn@Q9~xFy@ICoW?;V8Rt>K-4iz0~lLJBNMUyo*Us5*9te@F0Yadrh$2Z57`mB#l%MKH_}Mjs_>Y zI&_Q=^kHBr<0VID-9Bd~$r5v4_F0{A=pSp^CxP>Lad6^Vyr7yy+_65ZvQ{xKG5VO8 zJ3f@W7M~teE@7K7C6`shWOQd9d=vw&!}L^?`ol6f{)&jSpfz z($H9!DAN2!4gCh&CPxi@hrW;5xI1P;Dde^>8l$>hET|b{NB=+0-UO=5*)Et zZEZy`DC(^O?Uht6`F{K0{nmQd|6S`_>wl9oWS>L4J=tfUXFtzxz!cwxlwKC%EjXH( zSu7Vwim|Ef<--w!xeiX@Q0X7+g^)iS#eF*R>q}|J$Lp|fzzp~6;Wd})QqN-syi;m! zYcA#6ny1An)*e(m_1PD0lrG=dHPF&ny*}I^B2(Wvuy$XCo_|89t+7oRFHN0bYG6uI zLVApZboqkL8&af#c&`oVKlEc6PX_;p&QhuWXo$Ty<~y8u}tSEPC1hHy(?8`8yR zs>Jd~TJ-Dl73#d3NKWtYIps*Y@3DwiJ9ycWW2Qvwr3?Ki8+|r!#~d59M3Ig=n{RGP zIP&58Snu9JH%D=_CAc<4gnIT&-qS@%{&$o*FhEO(j&1!yL zi$71J$l>M}owp19!VA_5xJCv7NRc7=N1FKht(Vtoua3&s0ksPRFEQ<1hkf#*Jb9j49!~9T!0Gk+ES69AQvu6@ z$Ko5y@(aWZRC@lDrGRDCoGA{LJByqt%fR!Wc(8BH47kg?%NsTJUX>Ae;qfOf$(En! z6@{(}>Xsg5CIF|4>}F=-=_LodZ7cLfFPxRH%J}o~lAOnZ4c*Q$(lYg6c;(2y!%zLv zIfH`C^UkiHw|(9vja4w+1Y9Qc@w&nS%L-2}Wp|%kY7hG~n?uU@K?|iQz&>cCeJ?F} z3o%dPP|KT?0zi3l_jjyx@s@(Y%%*8=h9k$>4!!B(jDkVkrhqn9dhD{o@wU;xJ4$A{ zxI@XJ{U4v{zqCjHf1j+}z@M!9Ve_u}c1pvMr`GI|7A})r)*>wDlw}r}vqA%t%_Fm| z9NA@i)zcRkx;Yn;m2Xa27T1_f&M=G$6WcH0?oITr$u`+QR${?wMXoQWP9D2NpPTE; zj+#$ay1Bk)tIO{SWl=%yGg;g+;o&H~!VS!t@-8elyl-R{o#YsL=H3lnYY_6t`v!EQ zuNoIs=3gPJtA?hR*jMdR#ArGXr4)eLfk+P^E=S0Qrvi)~Tbf7wo)JVA6j|aYcB}t>Vx23O1f*5F?rzY+-QQ`wWcSlr) zM5{fgqvJDJ9XMS0#v$7#e_OWsJcn$@9=~C8zirtjk1&fAsl`v&vpDs#)aEC2;oWEw ze6gochS1M7>``1Y_f=dr?1BE9U#&y7xwl`d;d5;L@NLC@efWG|zS*Qbo@dxo>u^xM znd#Tl*X2;QnJMz#9D!}PZih`af^^A6NH<+HySX|A)qKS4aZnzlcy@6-8|xx{CrN${CqFlFk*tuDmY?O4Uj;WM5r>`6(GXXq z^x9y)ac33E$eU2%|3U9t7us0f}o zifP?kcdgd6QSYU_mHcposob-eml9>t<_ycO2x8kMh*Mxxder7@@~Gva$&*^%wz}6_ zfAl{0(+okxoZljNWc(k{Kd<}6(6WCY3R!SAX7O0RFltEz$P+LofzTu}<&B4ji7>v0ur4#lYR;7Enz#FXkNEb$f*d!1+{<=55ghYP3DchZRA zz0(!%2Qv~4)iFk~uPI&f<$?_27HjJ@_dM^~AD8~PR-g7;+S;+5PpC`vJEdOybsN6k zP$epe)eo5%qCek>&!Gb4`wn~9RHDtQWoi~9C+r?C@b02p1{t>u0PNSGHXm+0$pd@? zXHh{_siYEY1FN4cI1XRjpH21)F{{t>$L(w}~??y+%I$ z|5#!FuNJ`nqfy}ajs479|2!-3)ZHWa1ZhZON6YYr78dld^hU+o_NIs(b+%HB5k&@L zr1_Dlaq}a60;iHixkRwB$SCn9+3dZWB$;wJ+RfT;D>zBw`ugiL{zH@{_rw%|y>57O zZQkZ&`BxJUC*1_&mq|G8-zLz0v`HYg^BtxF??|X#z$gN-I6QO7K}AFS_e^TCNk>o% zbA#W@_$qvuCnwzCw33r2#0bsl2>oN=PUyoTh%@YSk5y19346E3-q@y&y}8e&L$=jX zmf~o$&z~~S(5g&r&i6O;Ur{!wH%iWlE=uiqYvlE@88f6jN`842fMHTyzK&Q=q?>Ia zbCx-$?VYe!S8UZhRcES>dy36oah6z*GN`qZM_8IP^K{Nx$-{MQfzl0AcPN6&xcIL7xoy~606Q?!Fl9r|_@p0)||%LI(fGH)s~&YRub>m8*x zZdK=}==1h#?j8ES!p%fxwG*~GR^_k1fd18_!^B)la$~*A4H!VGNdNE2{y`J=x5axw zyYLhA|5wwkSZg4iwNFh1SwX#k{3=RQgMu( z=KLBeMyt;97X{a5iZf9%)OTK_GGG==e=&b0KnkSpcaM`v~ay=m&rDK z$z!A_oX7n%6fOpPzn?H6D`t{Pq|B`2VJN+;Ie8#SXmv`q2>3hKb@0tYkFi$WXm!>PDq!d z=~;Cc6-tGxGea^%;)<6y)Gy>m7uk%7?sT@>6!J}Y)*_GE7)jw@tQAg6s#z;g;|Nh{ z|FT?R@#im|F^9M_iw?Zv99jHRmH&}1T-7)JVl8P<*Zh)y$V*k8P@uQ?OhGh9;r7eW zbFIr*#K@xkWj8+ME|)t#BUglSGn}9kuAE>TuHO5Cxg_|3BEq|iz_<5?GCe{!we0nX z@Ce!~cXQ8lCMo|3?<&1d*xU!S1F}k^wnjY=l$i(Mj;a1T*eqmf1kN=7@#pM;*@%CJ zqZop-&hxb?BS0b&j*2c^ME1(Vl>{pjw4?JGQMkg@1)^013?eWjz`qh+1*FJ`Lo)%5 zhzXM+Hb)f6J4{5b2@ zfwG#oz9LJp(1c;D8}lE&o=WE=L$BD{#FO$^Dw=4J)4l2P;-4l=IK&M$Enicm{`$+Q zzkKOYN;3EE!JjSY{xbNpMGpcmPq?TZxKK4^P0lYX41Qg5eTBg7n4)B2L|4}tVMK+xT=={}yPtxY>ncI>8 zf!;QLsH*)j_(;*`R;eZQT7x}MlU7R3#YoPrI3j3t*nVUd!9LT-tKUVN+T(}D$uR&u z69ph5z(j+d57v+HoQ}f^L*MkWZI5wh7y5WT8_ z$W^XS6cnp$A&@mH5B<_DH-Y4=!$jDv2@Rv%g`%v6_+;d&p^4z)5{2Hp7jrc zls%ZcuXxt}T`dF#m)SAo2VwfmbxNBK%__f1ekajF#((g?=7+tp_>kIu@9a8V?Uy5d zhy7eLPZnoLK%pcGuBi5sYI1E2lgMHv)R>J^F~S*`97C-BDWNVQ=>yCbfo{>HrLGN_ z923(dk(ajL!KD$4Jhs7s5sT6!U7-{?xW_iC<7Fanaa`n3q+GdR#}2r~x1J@^lV?{$ zjgq*UH&M`ukz6_Q!&zeg4)VZr^KdI8=dD|(xo2nl&E`8w&C`kGBuwR}xv$3yt$td* zqvj}hIbpZcAx4Rc!*O`bD->{&*F?i$9wzj#nAh?S;Jmb>j+$tA`aQ3GUfZWK@?Zb4 zPC;_BGZ5~7J?XbbS<7!HT}MiLPdN1p&%`fuhdq>a^Vu4xc`_0*Ab66Hk>4Y7Ey(Z1 z(gQ_qsBxdn!u559y1&WjgOkered~O`A4GnWq&o9Rnv*@4yM;~dYTebbfBHNkhX)G&)6Xo(R{Bp-pnz6^jv_-xCbsWu(_hRSq&8+i{awm@i_Y}7%iaM z_12>ZLh^4u4kWt`;G9OR9M4d+m&6XQW)OxL6md~%hZx*XtDX9ZI&ON;yZAZtiva7N zj0!K%|BirCp9T7V`y5C1ODfw2BrqH^HClibkkg8iMT}(q&{JXer+&;fkj%kxq#PjG z2Ti~Gu37bWG-BilNa6tb1Fcr}d@G%4pd4*V!jO@;Dc+{eyd!(&GKMq+)kEhLO2~Cb zk^>ow_~S$McO)gCenA2dX^MdHXSMe4#<7UEr6c=Co)+Ifz)kOb5*60@s5T+OQyF~I zxUBOgQyF}h=~-|}QS4XP3Ns=0D4JEEO{1KMLLsV(p}~3Mu6MH-Zo-BIJU3T2(*Fmu zhh~5A$1>>OGS50G{&-c%3F3uCxp5ZE`JFa&q3y&ApTO(|#+-+1CRMB^mM_*%c~K^> z<5~dT3474;<1C2Qw;UGLNUd84{N^LX=CS^`R6QY?7F7{E4n4VAClYAH@k7lW{et2> z6s8CE;`kY_J0EJ!|E1no_|Vo49(jk=PYFOJ_1qeYvnABt${k5IK&i@{MZq@+{DjZK z%aX?tEf^(9wgx9PpjS2rv^>`_ii2~?gl_5bMO~Q|L-%dVFSJ(!aP{>jTiJzyhE>~5 z{xn&V^Ceh)JrO}N%_JLL;nbF4a{!XKqOc?M{SNFenQ)YheqW5H6laQ8DsX;1$F95-`EwXAZnL;T`Cn<~A zk5`RB3S#5X*sg#2V!d%}286J%nMo0y2qI74`A|FKKXmH5ZS}#{!vh8*!9nB-YTX_$X9(wK}?8viiws7lm0)NJ!BU4hsFCRb#DUGRGwhc0;grBBEsYe$uzX~dF9vo2ksKEDZXjOjVQaxqz5x&tcwf?v0x!!a>=3Pd7+C#A;XlA zCkhQoAnhS!7o-AV3lVf;A?_ew|50s8BClcBm?Vp%!rFan>k8X}V2FzF%mT$Afr;_5 z<&9?-AbHpnw!GG=bhnGZL%7N_ZTN}P6yOhX1`C!M$df_y0TK+-x&3#7sH!TXy zxDzZ?$ea?iNZZyfT+ZZBQF(3x>Hn|w2XB4x_p%RLe%?Xi|1WptQFt;4gT|$y~C(;|hXSY{*+lE|E>L5`g z{0_N{5R&K?k={+4R8_|&4+>TiWVNtwPSdhkw50kE>3`WO))0*$s#cs`)bE^SnO$oZ%LBztQF>rFw zMT1$4umyOU3WLZ)cl@Frjyz~z?PYy9(j8i4E{7wn?6J|%2y$|ZXh?5fZ4!%aoCXl7 z{c4v96fGu3;rUA2!jR`MJhFN5QM@=J>pgihNzAoC?E|1$?suXZu-k^|r*4A+X292> z8zNt;5nuJmkE1Q)Q5vHifhm&I)ON+O3zcvR?o_>^^TY?4NeY6Pz|%2@x5b(aNkW!1yw--;Y@4)zAZf4+j5%@0Hlk zg)Lak4;2uTD_ctjok5bL zv@O7ixkm`UFgT#^LmH|B%eZ$QDLL?sl$1q2zO1y9KG4Ur$R|#FZ2_#&7$*r30_p3h zkvn}O*UtCx)7PzZ0U8>hXvcjnwr*ZSZMiR8LK6#&>s_R7!nVAXtC5(pCBH5BWpxpB zb``&(R>T2`x#M z`;H>8p^&I9XrbH+^Lg@76J=6)P=Tx}uE3_yO++-}0{A9w)TgR05HIK&`dRr=TQU9vlRfJ^-pN|%LlZp9z-tje!>yKc5jb}NZF^MMnKCiZ9Y4(KbRJ_ zoTyHiFD}qRzBS9WE1wflz%jW2k9i8>_6K1;1AY6n=y8!(q(==FA8=b7O>~^v^Qrum z6K}f(U8>Hn&d*Jqcg}^@V1mqQZvOExs&J+C?a4k;liT*K)!Dh(rxOOETgFSyVYfBn zfn#&1IqS`(=8|JRrz4)-;ZNqFL6mYQf28m&p{AhoO`1@gk5YO82o&tKG@Zicppyin z3I{{A>Fts8#ZSpo^=WbKNa3C0I%8A4!?bzw5}v=84?(C;>*K=`lJx(V`fn?M|9`)# zeGXSV|BsE!Y42;Iekcbw{o<;0;TmS40807QqGAIFxIDU?wORp(FvC#mHhL z%##O_bHKaEa!)X|2)j{XS2KTL{1gUKsew0GJPzg3A6OvHOg3Gb8FD)C!lS?orbCJ{ zE{c%XKj8qPKDCAM^`;T~iexAb{meC&seJf1=taoyYVE}>-iz_V%KpE)dt$f(irV8W z*|aO+cyY2KDY4?{9QmusrxGiy-t|-X0{rn`(WjT3UbRzYHh1i+^+_SCg}g@LPsjMa z&z6XeEWPj|+|2LmbKSXL&K;wY@Bc%@_Z?Whv;v{bsz`8(=x4z}`&E%7xQQmrqG=U_ zPDINR8+&YQEuaQ9T1)>{(6VI8%d6?QXpbl~L)(AlhRt)6he=n~+ML_})zx{0uT`dv zYdx=he-$?0@+*AL&W8)Hke?|R_TwQN8-BdE>h-PdIQXV+hkE1np&uWwdOKR%(I1ar zt+Q)koFFYaziS}}Pq;Xqpdw$HrbRo*W_RG zO}o~3X@~7hN84Na?21O)dx!0cy4HCKc3qQu@$A@_*2O(boxiKS1 ztZ_t;WnD31N|mmQO%{yOvJO)djBDLo8Q#|2WU(rDbG0gS^RX%mi<)2@7S-2tE#A?x zH#@w_uMgXA9a)~=O1ENW>l22lft7tV*F|boj=<79x`26KI#^tGuneD=Wlt>Sp-G{O z7nA-E|I@``e_DJvklS{~X})%=cYkPd7$(ZV$Ksjo>gIcjm$CqBzB_kSq=XJNZ6`2m z%L;Ge20?g=aEa4gW4{`~5Zq8r9?7}6aWX>mAiP(st8nMtA@_}yopb^dilUg%kDlki zB=X#$^#|5U?G}}-Jv{K$$}-*!$vHe=6E~jcp*4wI{4V+qk;n5=D~fT!?eQ}tdHJx4 zI=hnM1oruGxWrvktc>T8Uq~KD?w~!QxS>WnoK6X(%ozMz>daK?Qf*AXr=6q-KMQ_? z_LjFie7KJOvrgnGNV(eC{>uMT_2BGut5<^4OGLaGYdZSqXIpX00;}>`Hy>Q=7-T1C z(@egqQ$Apyl=8}P&QAxw<=^<~z%L6ED{K?O%@0I>-|yQ46K8pMuHjLssqpdgMpypL z4V)86yN7-{`svE#?&MpdnMZ$)PgWlD=-%(J^un{%OK~p@#F9H@d)-L!NGV1vl~Ehz z&uQ!<1C_sP-;e_8txirAgV$MNaz?%!VeBF$QW_Wud6;Bak&%x?P~=8IECqp9qRnbM z!D1ATPC%DQ{2#6-BdBIjH|tLr*Ju#GNQyWIIWjdniFgu~I~SA+#iM8d);rJdpoTQuuwZs|*8hMBJfOGq>>BMTSB} z@$HiHN9Eh0|4G!q4543W=(sDj-#*YO$ud94kk&N3kySJ1Lu!_e2f6yPC9X4d~ zK@y_iu2X15er{j5RfSkbY|pFOBdQAdVp@OIXSw}VUreJ(U{f|tAp}UiUB?llLyG;1 zjtb?`*!|6bodbP-v*XCo*#v~HK}!ZfqSM%O`7HnV6i^_yg8w*m)-*QdkW~+~dIw=i z?zYu`DRg`a!!8LbfsezOS;3nB4DQ?0n#@tjzqrgUR=vpUcd7ZCSblm z@H4z?F%$MiXHUnR_Zpf0dbYe&24njBhHfC!V(h*o4RX6ZBA_9_rl(DK;1$d1u#bU- zByph~7eB=0_>t_^{^IjMl5~#T!qg3sCZfz+1^IPF+Rmc@AVIN^AWru0FC9e$T1qS* z*HM@oOORktG1@U7Ztn*Isr~5~*})+p{u9%nP>`B>$WA+)aY&n{)$G2OqP)mN1X=u^ zQ`Y5hfKutzvu8O&;DO*wbUUQ_rF;WUta0YQV~um1W6RNV>=d|fZi)}Oa+&X4xf9-f z%C3qSkd*K1U(Am2ACDrR%RP?6Hy)t!AORWwhoOI-^6zCIQh%;H8w+(#T*a2HpHLL<&pMORg5~WKnrodcq8Uyb!<9f(4poSe@O5StG`sNhQvh5 zm#t)-o-v8)>-_aNf0jS3xQ+a1yqFT+T1 znXuS0c`LG>8Kd&x3=NeZ$6YSsNDUUSf|m&_&kogFw#~Pe6SRqltm2%3I$;L0!u7b1 z8&)RVcJz^&8l~Tk=Eh%!=_Z9a^WEpll?bzJ0_2w0=HI`gzfr(`;H`gRqPioCx zo@ePoMK;IqmW%9Ey6FUuxFj%Ao@dRag5<~hEkE)7e3CgCQ+%GZTOnLebTM&@D=2h} z?a<#UequC5?5OPh(L<$I zP|h{ScT7!KTJ^ms_zwo_vq{rWEj^4yYJBVp#o7LS@UvK(pxUK2Z3As@mZpUsm9)K; za#98+1b03NrP;0zBIH#`WI)QDI4thf2sK^@Ta9cn4QUEzyh|L4F;u*9q`VF)($mD7 zBQ`JWQ9j>1uXc0B!dXU+>!;KvrS5Z5({yagp%e`4Ql7){aUwR~OcAXtcQ^#f`eqYl zPaTcFx7?~pi?sw$f6X=Z%Y&Cwt61(E4z{?-^Z5YrI}xP6v%J7J3~+z6m>OrbOdFNw z--~6P2ZG;aqIQf5PFsb!Lok2(lE@Gt*IFLTXN9qnf;kn|`4lJZfbn-CNEfqAZsaB` z<8dShObwRdquH05Vv|qJg#kIK0!M=sp-wxr2lQluPx3zVj>(<`9fAtJ$&vo)$vTPI z@k_qgH)sOqg~9ChDbctbw%Ztbqt)#nQEJ6FhdKAn^B}YR&6L$T}RoJBxBJUs?b}HT@ zY))TjA{HrKj1lZbN^b+VxDIUkAC;VtNPVTC9mo)yk07uv8L{HxY?X9=X6(pIS0J1#B4IMk4Hh| zInYPbiakOXK!u*O-NCz1#eMg4&$kr#vr#z7iHi@1bNg;2|MUuoA z`l;s(Nc6`c1L6KQq3TUM2I)OnB0a8!HCxD@N_OYlep{U6&BL&xDXn`5$LDGH>N@$`&KMl%47SrmYDl=SycL~bd6=kdw*ivIR8ZKM$*I<4RZf$wSL_| zbPmazBL3`M9N`7;U*TT=!WI_aaCw{)9@IvUGykNQdrxO6))Fa!VRD6_7jWE>_-*3C z{Pd#pP9ssD2jSn*d3VKM#ua}O-x3?7W|m2+m4~YPgIVqgi;3yZSaPZre0LIp)`)^( zQUWDyH1jyj0!~I(0msx}5gP3+55c?y*AGU2`)s*uBHMy4owl7OY4fXJ%BOd=nznqA zb<0`rLgw^umshrMXShUo#LO@;X|c)W8+d1$wAkuNa=lN?Ysnopwv=1b578i7Jtzcl z#oS!eerp$MnU-g&jx}lFT+cP+HqXECSxBNo$c{-Xe)L=M+#LLEvaS#>aq77ZQ1_ z)-E{jnCg-Kug)Gg5N>SoJ}TrL_>buSVAkOD;1s^`Gxgq@boumHF}IYDK^$Cn?r{_o z=WTR=`#bG?eJevr^yvSi-UwC^DK_^02>uX|jNi@JkMbi7o<`x=Z%x6X*~tj>JUF~7UBBeEXbhbsN^l9FmPtpF*=)@Z?GycaFw zJKA@Z0>u!m5Ywm!;1ob5Gu#T#O}?Ye(F)MVZi-*1j10GeYB?Nk>w6;ZLSwk?^de2s zDM^u}NOtLRQISoNE#sEQ8o6h3kUCE3=_&dINDU<)GKpI4z}F~rg?wJwclTeFeO%*H zuAnUXFi(9Rum8qH-|)F#Z*%JJARX3vWz}aF>5Ut3b}kT3V|_NKC;u1;li-~3Ighim zCepGh$)l_)V{BXmIuzvLu68S~X(yt~;P#Kk*yFa@Uf;6kiQf{dS`u@TEuVNg6g#Pl zp4XEbL-Lfd^N!@{6as!WgmrCR&q#kyz0zS@hr`wlAZ`_h*hz)m3m{h6@UOM*SY)bSo%`+N z$$Y-8QCJ5vWqXHFddH&l4pBtP_BwHgZCFQGN5pnwTn-%?!GpJn*pcD$JQ+X(Fji?E7iO*AylXBW8l#JL5x za5zksWqyI7aS4m%jD|#FWzOe7=M7?SvG6K~pd1V{%&RBfVoe-{r5Mb=X7~Fw#GkB= z&yCNU;}>7#9^bT4zlnJM4%OestEKrF^{k{s)-zB7uVAUsyxN_EIzKq@Q{N=-aDNax zNQ@Wk+E8cDK@unj(&dmaHv%1lm@ybB<01|6VqJ3b(2mcg%JqY#9gP-)6Y8S_k z8*VSUV;ey5zh3jGB6g{*@YGFOCst2Z?oT}Ekyn&s$F%~X+Gw^ znBc{x=e`>^mdPdNGD8%59(dMbuWUp&r6~MhfOren|6#+W;Mxybz7uL@8u5p5 z4@BDgFdD8wD%LcXWvakE|J(e0zx;0t@`o;APs3|_p3*bBNsKoY{0rp8dG^j-CB zaLAl;#Hz&I$CNx)5OTr+kr<`J69{sbzMs)nK2r8P)wAr9P*soWc~iu6#s!5nE5g6^ z&5dCH;+zF9yDI&={99kPzRbzE6^tCg(y}{G28_>@m6Qz_*99ZX-DJub9uvj5C%!}W za_TJot?SvT%2}?dYSRA)vfqY;4iWu-%A+##UoT{tmv}@^18b5VfIu78*$xND=D6UJ z!?%8l%RZ$JS7W zDPz%J&;m`&2+0U3t?GEH)gE?V`~cDUWIR0|*i_LEQ8bO~dYZt~Xk5~>Fl#(Q_tIck zC;mlH_9PaLXeG9g)48?gY19Dq_T#wCe)(3`+d;hErSN)ZZr`cWKdz3?&1|WkC+8L| zE|{Os&36$8)tj^p)kmyA>br`aCCic;2pGebkkSyG&Q^;2HP!WdB1`!}bre}Zf zgJsY*i>Sk1dBlKO@HI4ES22b}F#$+MQ(oUfh7Z}FEJZq!(Kjimoj4{#bWgJXW^{+G zVUMzBbGUvAW z{j1+;K5bxi{NYon|F!ck&%YUKQaP=o{vQ5Y!{4p>&u+A1G)_+45 zBqm=#9|Ng5XvF1^Q3-l+upS|vs1dLq36+0SL6O;MSj&ialcBkX$G3@b1#E;y6`|wt zPkrpBKev3?5z@+yDH!Ws6<46ieYcoZJjFZhU@#f=@q=UJ?;%BZlIKLSk31FVCj=Su zG4hNT;OR0w%JUyf^*yy-NPbQsA*m|$MF;fX5UF0oaPsSSzO^9Yov>^bmSDQYYA%?8;P5i$G71VHn&pQ|Gp$@iF70nMYwa z$@GKiT7ZXY#1s_&P=eAdO@%9{J{fhA zY@w4r5m6yT>gURh!*89_Y#yI$U=$audh;;6@y5B%A&5L`p08YZ6%~9^j;v~Vduux? zVsCHl1iluf$vvbbh9kL;SG}qGYU7WOW05nO@ylzKp|FuIQThnjq;lziqOp$vb$?DH zayzIMd!aI^5x2z+{x|Q_-V4rpXS>qNE<;n)-X4cK#&|+Vjx14OyE+aADyiZ%>2st> zq6_xNl^Mh+$G!mecVagm!$5m|!(eC%goebr5aTFG&OTCqtj;_gZuzPrDWoFpILjA=iGB#ojKCAhtB{1q5p1e81g@*?Uh`_KYzTW0Y^o;gEpn@{Z0@S z#R7vdttP&gpS~xA?QA`a#;Suw+3Q-nSQ&6ZfuH0a%As58tTbN0$KCA*GnoTLnd< zj|d2;fIxuY;k3UX|2$icqKi5awHFF-MFO7dBalT+^v;U3jEZj_AF{JgO%((DS;RnP z1}CmthX;b=!|y-$Xj$OJu65(ogPHAJMrd^^of;W{hnk$b%*@QMn5E<=kiol)9l9V( zR-PYR(awR7R}df!e%xvoQkrFE8eUA-RI#QV)Pwus@q5xtYr zE;A~`r;`Np>2gwsKcZFdy)x8HghlUBH>7%ypGK)`UF>!{LZjZ4@uCf?q9QEgbuJ<3 z^8q{)%OnB(KRa?bl9mXzIKW5>qTospw}zc ztP{nk6UP$OY9c!woq+*NlW&|R4!mO!))v-g(v~g<*3&%`P{ig;s#GgA2-geH_H$g- znR@k3&)jsNvE8;ZJ*hr4XhWc=e~H_DkzJC|<*Rs((2$$E86bl^p*{znriLbvEO1D2 z7_~=u9nc=u^@)QSWX2;d8-?^&7Xj8XvAJJPV-^6Z1#}^q9{>N)Kc5(`x8=i@_H3?r z@gJ`zk#sV!BxFs#Gzkb?%%iaRztgF(poRrQ#0?LW0QgrxrxTh6r&rV7Q-x2?fi?h{ zgFM=j4JVu}jD;oBug;10zDj%yi#$jl6hss44hk@~d(k`8Sud4>VtK06oYUN{j(;)tZ#y3zR)aygY6zN^ z<6K(Wr2WeP%TgdliWOERFF;BA_nQh=+Ltaq}#$G=|;G$j5h`WWdhX7B&7Cn zcM!aY88_S@FFA|`LT@$>O{5W7z&sF`gAEOPz*)5fElpW>6KJZ-gpcDrRRb_?8nXRF zS62oNT}XyPRFuN%sf284!s z-Hb@Iwwf9j(X}x7mdgp6`(>)T-&Ws2@JXwKw=#1Nu}vn{7dGB<>zmYIb@nZylg`|A zv)Js*!9G)?!-xG&7Q_V<-fQjr-M6mK)M66V6{L)l`dFS9SO~C=hZfMic1IHb{FN>L z$A+;je;>G|;;zfprv4q~njR*HWyGnS~WxaXvTZMF)3(yHxjhX7Y1h~eye(5EDvB z{1K?3fRHqXV%AUCLG?=t6V8;aL{J+lDE1Ftzc8Gmt#|+}ABaGTAhRPiZ(6_LY;SF=(p~ux=}s>~Yj=SxXRqLYRo)=ny=??T$Ri$+ndC zi40(6$!soX$y{_PZXWbQbK@+@t)&tB6WctFoEG~a9>O#NcV8djCW(|}kQrxTgO(+v%m8>c_lsCsVFk$A@i#9jLuIlBzeF3nIpf)F>n+=8 zFmw?lAFx*(N08CQc*n7?)k3=fyG4-A9r}?TgJMC~7F~Mi1*vE+-kObvBJY(JMNXbgK+b14z60cXl`1n>huUIT)F@FrUzlN;{!JIO zR8HN0+1G!s`u?F6)&D%Sq@iGk*@hXF`!{g9ZcmQv>S~-(*_jKNVq(RlyNMMxE2?*_r3zLRChAeb_QJ(FzaGQYrt6`B&a!1$Ek zq@d7^LszyOnjKVhR33+O zREC}s+0~0C+6_Mf7Ziz<^QT?!eLn4im|?^UA7p-d>$8i!4rF(>Xh?31B=EgA>zD9N zlmv02G3`O_j95sbo_IjK!b?~N+yW-Q!d#cmJKKnOB9ChBYk8zy0Fu}|(;lTcnPIW#)q0iEpXh2tbIf=J02#r2oIj{#QZh z$THxcU!M66`2W!0XZR(Ykh{Q?8Yp!n=71N1DkXuxOdbD{LNdQbE|nzh#HTpTRUw(d zS|U_=z4OJ52?`5PqeJKQ%^7iI^; zLHk%3O1W@`!RsdVLQ;}OJrk$YrpS@w7u>reP_+DbTyXFHj|Y+KA0UV7#PT`RWWITZ zh8hrW?^qPBpBs<*K;~1vIlJeD?BxLddb@n~7>Wd-u~xqlIL5U3#2cgv18!(}tY%uy z-lN5lX%M$jdRg5NlO5|&k{V#1>8ApQb>HD&uP;mU{%DK{Hv+IDZMX4#~e{TZ|{ z3aXA{8;1z>QFPtreEa5DD51=562Vidba;&3`*{CPx#-9-H z;7w+3C(0;9ZIJy6wZ)(d?AqOz%$-0u{BgN{^3W;xYhf><|GkJ1wd+U(`)@aR364nrK) zEXgFF#X4*QhS*exX{^_**K9E)_ZREfWO{orb*!2v>KW8p;5&3Iq&gb0uGk0|u+x`KqSNK4_-RErgZF5ktZO!2& zqUi3t&xp@MW~eDl!+Tz@ zh;dSvEGwB;e>46#pHET$T&*&d+VVX=3f5eNm-=thw@A*T`?&1uYw++N; zL`GVu)(`<2OMvg7MAOXJyJJ@Ck25?TcTXL$tbOl;!B`03tr@(h_ClcQ-R209b6>bF zY^ZvkXh_10pbt?4Nqo2GC}6T9@CXq%nPnqy-P07&t-5}m_hI<&4@1|n7jV6S*z96liFpXCdz1`q zSxZ=!^~*P$$;;2*VKcP=qs!^Y!VUR(1p4n05G^6K=5hGZq%%?V~V;g0g6!c=NpENvfEEo?9 zL7(-TOCM9CX&2`c<3Pd1#f=q>vlcIW>9BoE>c=+mGv5Ek$(v^Dq53CqhRoK785UbT&p8`iHlZZg1+})PGyFX)LL0Q-78#434rG@$V?7 zQXZ|tF;qVi(D6d$bbP3z@6MoxzsJ<+U`Nk$pYT zE0ippDk#XGCol+R@%4wq;7N-|jh)4#`B<`15rP1@AKlhj!K!!$b5Oz1Pb`Nt8`zYjS%nTMi zuOsUoIaFyzd@bX)Ww%)hG|)O3S3DWP*Od~FN1R4%gXIB+0s6xY9X;oVGLGMo1~5uH zBx5GpDJw_#Gfgz7yI_GNCt|6qG1AzQ;Rg0dztZv#?sGvMgi;~(XJa8gyvYdI@+8`fBn7Hg~3?ZL`_(=?^aOdTkYY@z%OhpBxi_PC5EZ% zT6jc`brI#&u-o5>h*K}j82Av{+D^-&QkY$Znd2USekJBs1YfA3p4V;zRPm#hWVvI2 z_WkiKZ7=QTB=^{V6{NPd^NelG>mm!TGbheCpF_dhI?3#48;ial`non}USUF!My02g z6iMUMrseV5_ut1K+!i^^7O%O^H!Y{^_{29GuGq59ODf>jyEGKrxU_7 z%QGbR=WH*L1PrzNR7cb=yDbs6bFL(AS6O!s*m9*@t!7nJSb3e7W*{^frUBeom+DXv z5pIH5(@;wgUPQskeV7(=3c668oDQ9*^15kgiOgBq+$>ABsHcWqp6S9y zN|Y?J@~lXtiJ(?MlbRU5a+BDs!^p)K;9v=OH3gv}cbB!BsVK7uxL#}l&9^OwDl2?0 zY|GVxDY_8Of}npwr;ygVZE(**?pF$H_6qp6)223(h5(q;q(y&~9syBMVE226Vs+jAxB&ri>?>_>^->Hd4&Ql}4 zj_jFAj{!(0~d@!8PtWOE_DR?Y{g7V{)Jpw;Gr6Y z7>+NttKzzA6v>ucJS46SVL$ko2tBM%|vV8q}}FjgS4z~ZYY(|g%E-!K@o zJJegaVmFX3!Xo7(Mf!v6^aX?VrY)8-a)pt7mW9Sevdd45CFPP zY#4%Jabk}ybh1xR3ik_5a(5=hf($JoP~%Pd|3LPu*l-<-_uJdgagQs;Zoib#Dsl7) zhmWj2wwWef`)Eh&p!F7}LWX{&udV6H1c;76mpHfD}wxZK{3eH@qD5k34V3R zdMBx&u(?enkhKZeO7gZL%EZt;M7C4uldp6kV#PhtAx>@{{$ zqXzk*0yg`;E6E!eb>7m;-bP>OUzCPl+kUyBq?wKPlnP2WNN8p_>n8TL-k zGi*wGAdxs0yWh|k{b#Jg5rGY>)KdacUnuoQypw~Pv>>y6?J61mDv-;*$w%pDXT zmphum!_$*7kx*nGhS9mhRKsQmL&Fjf=@Df(;`3NmT`)Q#AN-!?bDGY_m-P|_LzCzcG$j$8^!pXeK=a@ic}iA z2e5KF3?<^&z>AY;l!T;V9fq?V>6}|eMO^=yi&9fe4Mdd64ikpGWH1&L*w%F3-brAJB6$(AeZ|76UPgkwqr5Vo{-x9u~Fljfy~tri+wm3>sxibbV!Z zfj4A!;u|t#t)Ue$3_fLxob>;NeUQhB;fIQY-9u=PKtrB;%wh(^ZU-Ho0xCU8xi zYuC4c%qU|5D9Ws0Qf3vA1Bjp$a71HJlrX6%wWwI7r62^5Q4vi<)ZzrzK0yOm=Zawz z0-|WEo(>`y9IFy+3zm{^T^rB&-skj3Gj zaY>!IMu?jd=rm{^U!BCRkS|f3QTKcyUH$ocfIo+03eqAc%u0E)--kcg==saRQ!@@` zqlh4NI$XLShLP9sq2Q#jL8genlmPZ^pOrE+ILp4xkqSNJ4uWFS&|TOuhkWQx`}tG| z7-5?3C=4v~+z@iwetF(so)+E$5{9FJuDSb$e|y7_@>^Mp`7LZH+|UM54_?u?f-0vK zI&j=X)G3$#!U#P5_JkX$0-G z2|lMuFOkL^?GOiP(5?kGR{Y&)sPEnyn_Lt^J@p0HJRB^I?9C=}mliFJ54U7%o7gO{ z@!$yU)SB}Q^0ZA{j0?4bw1OMlcP(&QV1p0XsUG~HlH6S}crNj7|t|8rA-pdLB(yJQTu)~poOP+p7Fgsg=?jhb=T#7 z(H1KcyqGWaM%B&pi~&gXH#RJu0;L)N0vjf#Mn2|R4SJ`XXcIgUJUQyaOSyfNYvp-{ zN^YcW)7Q>uznvilW*|fL@Ba=1-~I3Zkr?Q0Z$;kEz0rBMogI%#aeWyZSTVS+r^a|D z&>Uc4G!Y8}X8G1W>mqsYlA^{w|9uHd(FmaKz{iOZO^(W(Ppm;v-_tOUwsbqNgaVCq z!ii^$LWBOeD#rJ%j=&%OP@%PDbQ7BG+vlYuWl~!l_^?9>xj~>{yry_Qj!S{O&ZSD| z@<_cAMf0~noM1{sBPfBJ2{>GE+fLTPt6>#kNL~-*NoJ8GPFYhpf-zXqtGtQQKZaeg zmc2!bzp@6SF-Gc1iqZ53!{{+aqmzgTJPN`q{<1IXT4%<|`d~^7Sa%sz0z^Izqi7Ep z0SlzD&|8xm96tx-|FAkp1^ZFTXI=)W0NgU_EDqWbrc96-X;SMKuOrrB<424}@IFz= zpxr{uuIPW!a$VndLxVG&a$rvE+J@>QG~iSJU$ITjJBqR9aV#_cwEPs?l3^+;@7)%% zb;!T|IOGANeTj&Uz=ff4KAbQXr? z33r6h(JTiE92a5Z=f#*p2F^ZRZFF}T3E3*M=LZKv$al5$LNxSE!!VUV@ihP2V91?F z#x^E-gQ`3yi;4oMJI2IIy*F#*di(Hd`Bqe1(AUWI@!`!;WJ0C9cVa5lC0m(#LOp(M zkdI@JN<)^JSS?Ma7Ai9^GLlZ{*VEx^4r*#DZ@QM*Oc!N|ve;_+-SI%@AwR0LWBGo>$Yl73bswANFEEo_LVS`b!Y_@Hy#q4pvjOkui zG#*rttXVv$q?xf(84blG}m-UXHk{-JX)UhdNTQzNlfGIUn$&o2NI$n-juRj#G09OY`Q1>vk2SA^>7sC!2p?BGH z4XYR?nKClTn6(mETdcwKh&eQAR1MQ)v7j6^W#nkY@3z;AU(qeC3T-&7Qa0eU!TCR^ z@%!%~?@|8@&Ubn&8+~&J1ifd)=bMW*b_xZrXM6pE7>iEMtkBL1mHT}r)MjE%wv|*k zX(E-6kzj)d6k>DYsFh_KIa9#bMADbH=Yi6u{G;G->fP46opu{{;XO!=0I&15LwHZm z?Zx5!LDJ+E6a;2vg`A3~k|+sZ%H<>3YkR0USD&p}&|MUT*sntM-(nk@V}Fb7ZO+UX zWSeu?aL1+c>qT(2pwhagy%~$MX2gB**&G`;BlVjI_7d$DkIRscLwQ+CU7fF{;*MkO z9u|z3q5|zG&=hEm8z&fN{ah9L-}C>w@BStDE!VSiDguv|%p`M>r~CMeZY|jtQR;8n zYTQIsVf=z&PeRR}Fo%RVOc!+s;#&4uAOQ)@crTQL1Y7Uvd zb!!na--vre=w-Jmq-Rt87_LoOIv0@i`YcSY$G)KZ>r7d!`Vv9IIeVOZ% zVzCW)Il>dN+dm*>5rHCS5qX2w z__4*9=7YSMsD_UCRPueo;|ZMRLe1<<{?nR&xwi*UibszWoo;L2)M&>vkupum??KVH z^oD=eH~Lm$Z!SWs4EKf(arh7T)v@0fJm9))KDXIbv6;>0x+-$y`l&Io4K205ZRYZ$ zs$&s?QX{E3cL~kibDKY*%M!mjLq!E>=_Qr&*64vloi3-ss$C8olDTB%r*x#-pVMl}cZChiKPde*Y?cQLjiiOmG>ozNh<{1;;#Bwj7%|-pm+S zy)g&Iz9u*@;KCp`#-5g?e$M=nVC`O2Sz63MD%6P@yP<>tIIcS0?SkM)3Y^a_pBiy&zUvIB=JN9 zk1s{?s3VwXK4fgT61(~yT%3zpM-mMw7mCRh^uGc8#im3Cmy-j$Kk0RiP?^r8rLA+xeM|&U>7s3do+zx}J0zr8YPaZ__Ps+ZOW<{1xjO$JKeQEH|n zBy9Zk*Z>FAHiOZ0-=0Xbar@k1)d;wFy#LI&QHUU zM;N*x7nz&uPoL&Da*(^pbuKU6zq(>LCZsyNI;8DWBy7fKS7rsurXRL-E-hu1vM2dU zkh~dQa!_)h13NrUlZF7Zh``Qh;ybHErH7qeRl}vFmd?(Rwxy+PU94w{xE&2yMNY0A zxbJ9hXm2RMA+FRcCMH9%`{d0?0cS+Y=CS#DZc=*2m2m#L@T^Z&^a_~B#=hvHE=(I~ zfk|?!#$M|pW&?sol1{vzG2{k{I2I$jjt#)^V>)nbz~3?wSeOdq$N^Tp@md^+Hm)Z+ zQibsvz>)GKB)ZKT!$|TSNG~NQDJp?4NT=jFv47&37|gNx|J%q=@E<<=QTFX`;6Go6 zHZCC%|DWvv5%QS-(Nt~k;1Q^DUqli^R>6j00r6yF%bY7S;jP9opbFPm5+j2mcs_D6 zE_(J+^h(X-$>zfhPO?lTH(1b2FDC`((%C-CGZu9>Rt>90RFlduC&!Xm@FFU5%8RaC zxT%5B7?BqeEE0DeU~*oU%ONzp%m@uhqp8S3W)DJspxcz-;OD^rAA0lxMTrug;IcG& zlt+9GfGe3pTLp*!T06>v092(aoH1_kjZGgW+&i?m?aNY*k8d?=dG=z1{HB#*;};(` z&4wcj6VTESur8*;g)*nE(2*5k_Ze%x-Bwm$?R33cN8w|MU%cOErH?l}F5aShSL*Ci z^6%m02xi-Hd?0H&HNf8Wh7?Gq^3WPnCRs&m=9tVhIqlJqPr;@!6pRX^Msd(T9q?|* z^&B=$qx92hE0($bb8wmSGGW0(|4!tPqe-R@z{9&}&7>)HuBCv`$oM4o2X_X00mS}W z74t5`n^8(U8XUj%i&*Q~h$I_c5kO|vTgSYQc^{}{Jr9JLb$r6hd}xveI`00U;us$H z3U!!Zl$UwZ*eL$8U7pa`rYU5Sqls})_T6z!0q#ZyL2B~-I7W{En2DWc5Hx<7%|`gk zOz|0;jR!-5jde~20#W0Dm`4r5&fuY4zLuT3Q%S6Sj-6UaS+J3D(7e37VB-d-qZS|k z6SgMEcGNJQ{bk0h!#VRWrLM1gpYiPrUzb~dOgR1iL5?|B5_QVliP`G3d#r`pPtg~- z8op)sqxP2RsL-Q-7@zRSe0{>BKVGJMb6zV}QFstt0dY*7R;Ob3qYhlduFGp(ZZ)?r zNNR33=QhjDotoQSI^=ch%pPPj=f8&X@Wy`E58tnR2>t`~59# zx|ZV<+HO)yMgMmPuiwAl zH6i@nyW%i|n(STtgk1?mo)ODu`r1cC%$&)<>C45IG2zwW(lgI;&nR+Sxz4!ii9x1E ziCS;L>B@eJPR+?ex^St&10Am!30lE*;nL)2pw#1n-zOefWx-RR${>#uc0hALi4<_H5NkBx46yt^z`ujhT>M zdAyol*@}RomX(@AC{-p=XC8AQOq=?!sZ>wKTJTzCvT?yN;jA1FNF?aLjOo}0{68L7 zpE@SKa0e2fDZWZuaCpK#4w~$axos<@X+OyZCp&(Yb#W{&kW$x3KUlTnKf6k*a_-SW zOyIvh`JBeHQAOd@g=mPzhyoxIDh(O5`?K9Cr;qAlp_u%Kt=> z)e?0@aA`O)gF7au*!I_rMXrv@j2GkdHV^nWB>=TC$WEg6i;sdcVcr26a~GrAZzysKh~YQVQ;5hMdwdtOL7!yV2Z!{c(s5FD3n zp~D4o5xEG_imX6bFS@V+k}DF`5M!(WC|tb_h|;?K=GE<&&)=LIdGn^=O`&=4&fuL3 zcck#IDQ_^+eVWM>8ZfC{9L!~ymJGFJ23@`+Qu9|tYVLD&AxzR%(1mvn3$9D?AH>2J zihbe@?-U(^il3n?0q?8=jo3v6^lj>)L!vxZo&`eOf+PWw_mX!Krgt;V&W=yvZoBu0 z@X) zXl!bfjOkJGBe_NjtMDMtW!Xy0x^+5HC%?Utj$W}{oT-itt`C@1%|W!rr^Ve7iFoWk zydvsk&9;KOA0X04c+k; zAvW>5@j%Pi!7bmm!6DnuX1iIWI3C}7I$|;q;pjLkYkBPwkLB|nHez~o zQRv`6*A7wXk$IRHMdI>v*cS66y4u(Z4yfAO!p48Y3+3ZY_=qE}Na9I)ZJ20Dk@s8~ zPd_=Bh~Z;m%&6M@Rn0{UJ>wStG+;GhWPTiSO)Wv0PldiGF~=>yl1W?Wwa@&xx@|)z zB!*VGCF5trR4-jPjMp=lE;Mx(A z4lA+_bMR^z$2m(DjvhQe$$EAfkUfK`xev!0@#4vTyhq$wzCTac2W$_hJ^cXx0OIpd zd9iDZ`g1X3MoZG>UOx8uUG_ z_E{9TpyiFA2EzZe@ey~Lg*75pkD;xaabO6kK5X*p{GWAxMhjNDyJ!!%MaweWKWVx| zQYS2BV~X>)#Gz#syCy$r{j9hJ;+9#T_qOMb>TZc0jaxseAThtd0R9>z>T zI<{lJN|CJ+eXFmh{=M4Tl-p+lWp^ZqXb!A95qanK9z2txBNnC&+cf3LX6;|2BdOv= zcpP5R-X5IbQClI_3r?_iHj`_5I-8A1mwOxzkw!q>&}xtPO!`fYt+Tb6->Y7$4@u1Z zRqd_Q=1_8`WLxYq=lq~5N0TyAt%&mVbp3b^91~W4Mn|Y4iCgMNW9LD!(v%g=L5C}> z-@#<^ou6J?3~VT$^mAhiTf2y3@{82523i zoOKw#cUaU!g{rdpvPWfi@RgzJGE_e~L7MhkVzd`RO}pG6Z%euuhTSaR^JPS_TI0Ak zad6G_PMr0QX^%NcI92&Rhr1{8b|9Je_L&HuV|uqyw1~XdL3)w!mk8_~dq^21Lh;0$ zm$;6`B-aSIJocczW}#ZFw1ywu-q6q17v;#+w%z16 z$l~;KinwgNRZ2UFm}l-c)Ym&_=w9DUfVer2qY?B63go?Br@>LR14=kK!odS~w5B3NI^%k=cbGk%!+<^+FQdpX4~8WSr|TF8 z(w=_!jsX47W}IKR?s6RLh^1;xxPO?NK)?ln0m+g_`}y0boXE z#4T{mS%(f|*v?Ri4k0Rlfc3P%t5>zdUDiy?H>C_!QLUd6bhP_Y-1>it{7#X1#voBP zwj~FYT!fW^v=N6GccZ^?`8lutf|jEkT00w}{bHDRVjz4hV}TaJ(zM{u8E_z zg(f8tZRliRE z_*J)S`scZtj{ww2{qvu1uo(AS9Q zQpz!5#P=JsQs%ghKK^s%tlDq=QG+{5kX%H8#4gtjB^nB8dIVKW7asRI z0hp-r)7F0kgDxVd< zCbsnY1J{}I&YiUlvP!td92>r^BFk}4B|2nm9Z?C#E}rR% zS(;1>+6RY>5+T})=CQ_y|G4#xfuF~aTw{Q(&WL*$^nQ_S5rvxK+GApzolU<=n6Zlx z7z~%tAUs3%F#CD}7)`8J7>cS`mq`?1fW*{7HCwhig_TG`>HL2#eB+G#$3Y(SKhfy_ z9$zjksc(O3Uvk>xiow%42CsIwfyh7WA}3Tawl4{WlOe7>Jwt}TF?l#6#{;Obf-;(JGHM)B^W*u9M1ix= z#=u!fVxF64E7i-eUR}C^8L06JzJ*fRxb*=R5n9lv)5d7j?W)9@SW@d~xJT${kg>0& zGd;S1Ni9MOs?Yi|pV%^$&-%lIRnDc&?uwkD>WrDg=`)9sX@n=z`bneplSXJSHdo;V z4h0{be>D(8uWugSn>T0gsS|s@^)GuV9Ol33_n8P;a(D{eU;|hjKz*2}=*TSjCWtc7 zIuNnups%edJW%p%j%n!?js4!9!qO|IbM|`*4`6rTzF07|dp~gX#hUHSh3X3G=sZ?r ze$Fvh)@(Ot1AJI^xu)#F`^b`A%g-MC&V5c%xS=f1#;{HJ&QO+hnSCYes@@Yy#KcC& z+VboS+XVA8K9+?{CnlR{OiVG+7@zH^M0I9&dKe{c%3RAFY+c!Ewr+$J`oAxa8@8R+)jjR3c3KxV-56VCL%=p=;I@$){E$Vq zhl*`O!gO_42PUe|S0t+8)eG6xHk=S&$qCM?@Z(O4)~?b=amP{jpr-EsR6^>>aRPdT zt!Z!84Df$KX1HWIR}Xh|%oE2{+z6kPk#qakx^m7a3KoVQ5_K!D2B%!_cJMl@KPj|Z zbXwVfw(%0Lv!UG?B0$)&sJ&Uoc4{u<>boO;^ZX#2)3Nltd+haQJa2CnYl`s7AI9TN zJ>m}}8HHcjWZQE(=N5%FfVmsj&58+}xD#&s-I_wQJ!W<}MU&=cWS8K?436?lv7hsY-C)JuVbdx~cG#$4ar zQtrJF;exDFSZu)xs+pbal}sj5Hi|ke9nsB0nAyV<+B_6pge*Zx)uM=%Zck&yh%SoG`TMpiW9}aanWzir;BY>fZ; z6ZFP9K}(h6p)hGy2AFzOSx+;jnwWO3qh-@sn&mHnCOLVIS3!VeYyW<% zb_}+msKeIw<9WN^de+{G6_A*oa1m-phES}S_EE14Fx5c-Wq?$rNu-jxXV^(x`1%%6 zwBvtr&p{ItMy^Sr+BRuTPJ<#QmZp*0q*o%HB;1(TNF3UIr8G+s6Q^HVck_81Qq{8tlwWtX*j zWLGBA8=kfp!fA(u5W1H#5NN=Vrl&pj;}d=}79=EnG~XX<7CsxPzQRZ%V9bK72iN}( z!t)8lKQC++eX_1?^vx!CxA2ZVD{f_9?^fFU8fXt~6y<`L@WU9X6|ftH+K)vI)4r}) z2T+yH0g^}{6C^w@3=HQCRr{@d08z;S)6CnLcP3&f>=TSrD;q4M)y}J3VY+aR4R7U5 zfayv*^e2Guc5IMqRBm?6yvLuyfjQ#dlqrK&(2cWzV}sto;yIXXY=-Bvy&c>}xTHIJ1wk5!aO z$o%hj)u7&g&;S3e`}x10p-t9j5_Rv8`zKj2X3dBhw;p}^X#qxOt8g`k+X!)xjLnN; zAz@Rxb+&S>SC0}Wp^DwAf^mgcFLRm!g5&`*gDayvPYfh{=5p)07wV}UG`0(wAHI=01PPd&zr6 zpR891v+C#vZTrYBKqik`iH=(0^4%ldKFUXv9`MN3%lKCWe5shvR=LN-nTK)M9CP=r zu{Uc9^>OVk1X!}YxxNEU`)0X1ktJRD=E{ahLQb*@%cNjWLbI<4>3(L0d(5_)&)v6v zj(-6^UNv~|@oQ;m{jk^~dUAN;-7}%BeVFUS*wVyM7u)#k7~9g@@vb!0)CnZ!aJr{a zHrN-j?M=3W&{KKR#K*8G9fs*5G?fdQC^Z`tg1|s`XZ88qw2Ws1BO3-r79#z6oAIsX zmURBV*7*I!Ch!lpu3UC@s%-S-MjVeKP)R#-9VvXMW({P}P)l2;tetGPcCroakvJ5u zf3lVWujN%iXbQ_O22lPrjsQz?3$gHc_i*Hn{;fsPqmWs}8MQ#*OcNfO`xLZzMn9Kc zKL2Pn)KpT;e3T8Ou!6g~<%iUmjNuq!IW%Lw*$fR<@s}jkm?(9PU8i(M zOd6-AA|xAA7}8R)e!xs;7ip_7w>0`V>!In*ewqL+{G&gBVzLpGjhQ8!*NS+5`FLMR z&df_wbN(d|gQm*Ewl0rT*3{)S)vIja)Kss*`2b}H-W>iNjl?%nIh!_hv)#wVko59GLyRod80iOryD zr5oaBL)$TM_)^KuT-iKAqru3zkyYt){}?(qy7TXW*pZ#D{t~-B%Ros;ZvGaBYcf=* z37y07f!KfYAHQt|fFO1RMYl%5aCH`q9~Fa1vqFFNTPEcsJ%>xLF>XZqPzhy)O{*5f z&j!y?pTPJ*!stB+L)F`ZFjRP8JkQ>z$`MJWX<#|FxN3(`bWESgQhm-;I_TZuFSNK* z(r%wwf`3r(oN>uy$hD*I(%XGlc>9unPg7}SoFBcZ)7y4#{Hx4DhxR~cgZBAm1V<%+ zRX9ApxUgGzf5&KQ9rDJ2R3sU#`=#Twd(d?#wBW?uFF@mQ2h(_5e#OpXSTG2C-5fht zp(`2jT1AIshuYE(r;#Pk;6~W9cDVBB{8tHUwuU|h|2g={*|lw|Ei<0d%TLj441MU! z`0_BM$bRERYi&K1%-h;VjvM#d3(nR>-&AAa0<&{ z?fbL;m;c{^0nISq?l{vmJDwjH;|uTWy^ve9uP-iq-xDi?g(m(*xDUrnNw2dA7U3qz zLKFP?_zDIp<60~R&Xku8#I=aEi#hf~l7;FuR%w!jh7c1`cyNz>CO^WuAF40x+AzGt zj9Wm%3Jo(DTF@;cWfy9lZyzX||GxcC2B&_?=*X%JoVcha3zIJTR@W%@Caw`wOVe7~ zj!itHCA93G$fvWHPE-^%ArF#(ox#*L;oh=Qjn$1SVFSR7D0&d*_3hk`O|go_IfyW= z{5qrkLu%Za;kYy4_8``DkLDh&C$cNayrC>?+(`TKH70OFfdCxlK6@#B}YoPBx z7dhgBc2|_7<`5VAE0M9azfm`gepq4;MG+cbafi5aF$X;{N$uR2<5H*G-~A__$aX)o z!pP}((RT>Gqk6%?8~mAkNFX4V^#DY^<(RuneZE^s(`le(2rq++dQc_D76SQRfVDFAGj^b5KYVsY2r-0y16VsfF9uQ#{WnS%@8 zTa(JaE_IpvmUI1F-woB=H*?R;JwNw6hg<=@*9zX?@Y}(wDlTFqX7 z=hxAlzbbaJe&JuPHVrmi*f`HL*yO?l)9cdAlld{~a0jqX^7g5QPv)<7+*s~}C;7+s zsQ&qbPV;}A`pRPV0Pn149Pca=fQ#KDXx5^RS&NQ38nlS+CA}Nsd-Hl?y`g(k(?kNodlA<1`|{qDV*0qFehk1$wqHzFLrVtq5&TFh*wxQ8Ee4=*37 zFaM`lYz|2FdGND4Gw9a-ps(c+Zpwy{&3}6F>ctcG&31dpojk37vR2ZOX$&Y^ig4a( zNpMYXM+^3mXZ%AIXG-`EI1Pn>WXGKsYey?@z8ZyleVbL;wh*>P1=mC~Mz+VcZI7)? zFvqQD4#&Y@&crY^*&a0k&CyMw>p*kj!?#POj1h*P8uSDg{w-^SpvYeAsU8#2LaaXqxzL2n z`K|EA=ULZ)(oTJB-nLdrxqo-x^RxB3YU%v{NBH|$(tk$eD4_oteYuMW7%YG>h?AWT zLq-4B*1Ud=BiX*{-2k5|FCtrbH7;cKJ!w)8wo&XUh10Z z-nXz|#=c2$EmJqewN&3At>t|v_99Pgv87L*TabqV!->a=AM1)db zkpe{8+c&hg$4es|6Wq{9i&jtz&0K}8&-_V-vTl;Hrh_{%W^ZB)TO(dFD|{C1(U?2Yc(eK9f(Kjd>uSn6ssF&+^7IM^2p=T@_Es==|}{uT%Wx6Tjg-=RN1AaF`#i zk7Zk{*Z~!x+Y`e;q<7rrxWR9O_S6m2rxBZ;GlxXJsYk8Y6GLxPb*WU=cJ!!f$%hG> zzG*4m1j5z6_qiSWl>Q&+A``DxP!3O=Tf7>nJ@m?W3x@>@O|`vNo9Y`_HEIaBcG8v( zcPWf^(&&PwOYWla7u`kk(ivIq{!xsk2q|~G?AotCL^uW_Ziv+~h?<3VW%`&Xcf`EU zAPFiHI{$}-ZxTbF8-o8>kyuMl_1x1Gt3kqdXHUyD5nh9ueZwQcVABFCON(}C|o_5<;a3`j9YoKon6a*Svs6~un zt16T=w-&rhXqc_@&_201YqrMs4YP$V1{W;pNp_OK7>Vg4OibX&xvBj821FagDDv2L{LCnQ zu&Xj-9rLVkAT=uOiAGUqZ}L8|-71sIZ2Qqw*2<=|Cnin$M#{_d_7=yyqk>h2&sCrP zsq!7@^7}^j!0F#Jm-%W;KE9>2?kh61hi@r8!faJHA9awtq)LWkFuGUWy&Br`e9)YG z&93%!`-D5331yNkr81udix2w*C-#VSyE##HQQymz4T{u#w?-^Rj%OY(&|zyoZGD;^ zp1!b0Lez(f_Rb2qR>x=ENs8R(q|A-oI?S182=#3RGym84eFyr#gO-|qBL7{rWh35_ zRWp275aQnv612N1`%qEH_&p<#@Tv#I20BbLvkl~#P2-#hhzaCWnb`*L%zQX{hJ$)W zC)|$fnd-hfG1$1A6EV}*u3>*1G;Etf7o4u*FXuW>ooWeP?!n?kA=M!@xqQ5b3-K-+ z%C+nF4;Jb%%9Dn}XU{^R8|)kt*0~5Gx9YHt5~$QdNhk8}Ps0x$lpMkVDO4nPBb`aV zhU0Cz1_$YAo31ZpY@habqak->(9wb8sFXp7A~@9EriY)^?|KI+X|L=3hzMC)N%)&e7Fd4kQWZDZ^W^dsQSEH;MiM^E6TQn7n+Jx%+e^?IZ+XlXwT)Kt4-0mqDp32o>&Z5vdmo`3i+9gL|Uz9ZKK=`N{jw)X#W zX?p7=$IsegjXYn&;4+2*E_lLNU}W!8=e^%>--hqk-c^r`ER44>xF87!ju!GMvURd* z?K{532s;C5Xk@6vh#TZ_Jcz4P8SBi?S7e&EH!UZZ3X$L8V40$9F0IQE(g8dLylM&z zc4C7kAIHsO#I#DjZ8hkV0z(Votx_a!VV9$X-nohmX=8)1bbI@4Hllh#ui{{M_LaPd ze9Y0~88zg%Wg0jIN~_G~2&R{pRK}!9Ttzt?UB&Jk{CvYl`dVs^VZV`cfn#gt!Ca^P z-#i6t3JykwDaHJ9;fg$MKhbTnaH1~{FnCHH>Hq`FK=5vig9YSRhihpFVaK-2FDB#| zM+;LXcpwQ(M$skqA5(@Xbm%}IrbxS#7oWkkcs=s1iy?=e(-yc+ie}gGg&%sJItLf9G zCb8YbX%4-y8STAc#(t}eR+((f%K_jT>=>jC1qX8xLzEhO{O&T~W~vb_L{USWAh4;J zqNkM=2Q^PHVX#8w6CH+ZUR3C$MJb>$6eXh98m5txc`wq6178@!JZEeBccko8b$~qM z!^0|;Sm*fn2Cb}=#JLhAQ=ycsWK7b9)?H7%9N|#1@F$Z)&+qXz9gRB6m}( z(jsIY$Pe?tB&JaUo9?H;qyj^T-XS=JV4|M=4oE@-p>WWj-C~2-UT96R1_R%Tr}VK=mui}zyk?!a6NJj*74D5 zw7a>s-(0ibJO_J4OzOUQTlw$#`bDn#*Bg3(6}T)lFI#6WR`1i#>TS^6ILWVEXVTQv z)sESEFjz}7PdqvGWGEktC9Q(#FSW9?3N*9z?syq-Z512Kb=by(e^_(vc=@ZRWzk}a zZOpaVXt(iXx(z=_njd56wN!aw5ma@elf2B;NXYZ8R&UVC(%gvm+3^>4j-OzrcZW0o z$YazyNB{V6#+p6uw%EnjVA-sck2pM!`I(nJ=676H%5d#4EQ=n$pRETRUP#wAvn6N( zh`#9ueGS(iBJVMd>QGulXfq`V-#G1rjn*0==up-&+39@Kg|S;)$xKcvZ7(k&A% zgNO%<<7bUy*MDi|rawRbYi6*>dEKX@Z|)!}d>g;-I;|w|PW&A#y4)A~v#<|K3VdWc zmIDjEhSU1)Uy8h-uDaKV){%U`)e5Y4Wz(lopT?d9e=X9DsE*lcK`obC8K~ai(Y;fSHDwK$q3ifpt4+ zr-F0xu5ns5lLPP#^S8tN{V)Ze;9%7Cl{a5V;FdJl5igZeQD?3K4T8$JTyH54e?)j4 ze;HPTQ}Cz5hNUtmv+LQ)S;91>zi;_O@7fRwc1L>AvK7+`PTxAV(f8I- zjwej(f>-2s*G>=9`A%%S(rabNQ4YO|RoGFxo$7D`7|;FB5)J`KD+qB&-w4)sflSb5 zP>w0`BXJA}LnaMi>?-GRGum-CE@(Xzokr`vkK3?v%ok6oKje>xH$GhOMA%X4PS(rh z?{E>)gfm-A5h71;A%j`lkH5vYtM2(ZBd+yA9oXT~o*}Z~3d*Vo7QSuoI@yGg0|N>k zQL+d?^H|eS%*Y?zGCX;WFA;88<7q+rrv*8}QK=Q=*uv};@#NLUO^}b3A3U$r-f1UW z>{fT{(N!i}js2Mr0Dc96E>uT@=Ed6Io@P^n@0>1p$Xzow!zGVJJ7aUXPE{T<)%x@D zM>l?Z12GrDgF$e@J~?Rz6xZMNr~dJO?taGiGtZT|#~7Y`F$34+PfBj=wa$}J0__bV zqEfksxg_1Zmjm3n*8i0CoXWE3ISIXF?0S4m6;*WDgR=}SpU0DWEZ83EY=}x9oBvi!|=jxndz4S(jZBG34{@B z9drYrZ7`+=LHs&WI?zE&^%*mdUrzB(dGaF_*W6{g8)g)H$1QfUqiCbCm?Og$zBOZT zr%Qdyu}LYC#D<&qs-hV@JUNqqnlVaSkLN(emoWg;kJ0eo^)05Tc!VE;l8SAT1YhP@ zQIGioGY1Sn&L!MDneq%8=IiP(Tc8P6Bg}IHN}tb$$_3^tl#|kZH4({0ImmZsn5gRsjEc;6v3c<3dJbS6$aX|p_%B#CSm(9y z`Z(^Bi<-9BTV5_&(CdB#S>v9@gzE6LEb3Tq?_O3gFx5ABSJzae85In$`jpof?lbPg zw>H%m2}W_2y{(8U+SR!Y=>Yv#mb9#9dX)pP3&S={ zXd3z#Ge($-^%E7XtpT(Vx4@db9$=dmi#udfruDXn?5ra{`!=Al0_@@7A}Nfji)tTI zmgz%k(ND;d-61LSot|fbO;)$h%ooy1c?bL#g8meSe#mrGaKsWz?fLMx0zpIKQR>1- zp7Y_`$Pu0&KDKyItKTZJtA<&zlxfLn?^d-%Yqw5so!;fQN)~tEnXs?4)iI65m|Ed) zt+1-F63^lEfRE_^tV+;Vta#_*cO*{LvLuXFAJZxR-~myPvt+8Tcwf{b_6d9 zpOxYT)-3z0X&{|=d!EXl=(Z&|7VueW%}aqENah%W&9Rlq!K7=o0eBlsIu&NBVQR>O zq7bQfF=+-?l$IIoh}2}Qi5?*>*m5T_S$B*{{$rF925F&I4-M4elS{T3eB8oq$N9;} zea#;CH&^Yw;Oopk5h2O9UdP11jj!}DZyjTh&xYf2_Og9eb@`>>-R!xFG-Ydm=k?M9r_5arbT@p{ zAF(m1rRd?6;H=l}C+f<6wXI_vTEEiemb}i~2>^^+QkP|sUo3E0%Dllmenz2qX;e+2 z*k##&w}Wf<7anw3CWxvt=Q7*Ln^%G}x5=6O$Cnz_XOVyUc2bM)Cu`eAU)d>$wP=AY zm7g>UA6Wd!WbwoKb zX}&Al#N-NaYoNlhPW!FGQ$tRO-j9vb^OfHxOOA6n-z4bH>tAX%mG9&~(r&UFH^~W) z-6uRUqc~0m$DP77)goaOOKVpb=7I;8pgml$z_K84e?j2kg4q3Kc(C4FRItFAZV8zo z$Imd5BFS=u8cCLO%!-zqb=u9pQ__8!>)@5Y$Zme(Wvcki!!_&?zhGncoH_lTsygIeu@^8qt!z!h9pqIlS69*wAD#Wn2@v& z43vaNk;nvL9ZE+~NKz&qvfZcprtcaUjx%0o-&!;fH*=I=5!2{8G&N>2rbm_KlkG~BiZ+|WeP0cr4MNP{oiDr+Gahs8777PiJ- z=95I>#*7k4b(B@ab4wlQlwsXV;d7LN2GGU?8D0N>7WP*X|8`OE1zP{U{Pxl(SRZ!* z!NjIzGba71pCZ}}pe2fN^27xx-4o7yOXt76M8>DTYWXUtit3w+=C7zhxemhn0 z0>%F>rK|zGAOdiFvjLR~Y8oi(s#2b*KA`^N|Kj)0eKQ_6&HQdc5yyU{v&guqDLEub zf;4R_Uw|KOb{4}offjA=!hs``nBwxnAqtf>pg!+OZ;QQl-mLv2W8E<#ITO)YhZ%Nh z=;a%?%GJHu>M%^Yp{NbvsEov-@GU_!IyRnTT;Cwd@rVf@vs9Mp32KT{&&!!WS-Ji| z++-4Zj!5f=&&$E?h42$OvjcU}hnT3@;UijYk+p< zKb2as_Bd+n-=ikuZ|~x2JI1uCjvR8_qortzX%$=1&*VK*w?v7eL|2rJ6|-G@r9IVM zM-FMC>vdgjPFU!JE>8qRj+V0>MTZ8tXq0&<$R{}>xgxl@ciFbuUpy2lRm(W-xi`)Y z&#En6MQ{g#JYa*sTyq2PLk)4Kj`$~b@8LiJy z{km=Y+|eIRZ(bi_^+YMvbG+`9<+v3&pUU}{?t$W^*F4vmMV(r(k+y4|OEi5orhn>d zx@6oj`z7O#*=4`DxJ)-QM)&B1`WBU5^=NY2z3CzMWYa?=$2?s+qH1fljlgFO>vpZo zCparbKK@1dE{7MQ163=ghfAU`WMA{Becf@*?sZ4h$=5|dW)wx$U^G@(eh~|*t4I;6 zU~9@b=3I>If~eY?SJv?#UHod+ZT_QzKVyF=`}4D-=ht%{6;7VB=H2Iw1N|fQntOUq zy_@}HnCtIoy?>38pB`q|wnoVt5u0d)ELXph)~%bS7*0EX6j;{0q=AQz3;e5y&)UNv72GK^jm#h7*(A@of0;g zE_KRizdw~npB|AO=PXr~=LBrh)Lp&%WEOuZ+q5~cx8bY7llAAoW(&|by3IaolJRu2 zvV+1bhNp@ZuEjyDbcwCnb7G9IO7zd3Ojszeq2h)!7E2@Q&tQo}l{Z>f=`>ZE9O!@! z0^)yFd07?Pth)h-ld<)0-PzDy!@tUNVydHyM_iN=tGvldf z!0Ko1^9Sc~$)4l&KbbN9fIu2=(4-S@ z&^mJAY%MQAT^@eK$t*Kbni;~*j2;sm*558F^{ZfgIYaYZ{C<-K7+8}DQAN?O@%uGt z@Z?jCpGt9Jrbt6U7bMP=g2<;F3nK;0N`@J{g>PflO$Ka;X?_`+0%*Fo4kP593eF(v zAqCJ6k$^mmu1I*719tUETlAz=tw-Mn4OccXOhRK+U#16$emx8-OK$S5i(OY)d&(BCnYB~>gps%=pvo2#yOlChN#u(Yb-8H zi$e%qtKvW2xA|Oa%ZkZJJFc*NY&;;Upa5jCVP03!kX#!VS$M|aL`N1>QAxgmG$b9a zx%gblPP2nw4qiD}whnZ-v>k7FULGDF_!_3T7&`wyXh_%R+*`7*<9Mo|9=@!i>(|L82Xj`|Tf&{d@-Eiz2p~7Rc22BgtRK%N)(*DzSamHM zdj$??#!j=d9pxKy@S`M9vBmCu!TjOBRjS{<|4@I{(N%Bss{g-M8+uGDpXk=7J;&n; znkWd!_d|%Z2^`m?iL2EQ2W#UWy_n(nxaR zI1|036WWBy*tSiOMO&rCp`;9;p5b0d2I;)N;fvBGC4*r9jo10To^PGNc;on~5Ovw{ zx8GhPDpFF$F?1y!4*6b}^SF-vhftUN@6A|qt7cw>lB9wnv|W5rLY^)+hDvbNQXa_t z=(+InC?h0iW6l_UFJfVkibM5c6dMsW>J=2tL1akkNmM9B_aR6>i9)4swYjPT;&R9W zLw}kOkMLMDPU3{QK66LoPN7_k`Z7re!!#;URj#6!ax%MX7?eMwQAh8FwHMMtQk;{d z5TBu_krx6;4R^}*H8=aeP|X{iv-H#ZMuq#AZaFad^p*q8(pj;!M?!@uqT)M(5u+~& zc}_I*n7V`i#@h3CT#6QO=>NU%>YwbL)SP)Wv~h#mBW7FA)w<1}P$tz?<2z{Sj&sly zlrW|jf142tW*axcRvQNTTx!_%`sdl=S+Ol$&+3wzznZhIgFklte=~EzpN8N+|Kkk( z+na|WdfkR|($~S$f^oCkEW6umx8nWoYFn>NTYyYVm@$-B!ZxwyIymMeSFh!oX#!@h zsVg|H8g$aL_Q;0kB@83l{^^mhyOHtfmfRVs4q(A|xh1U?h};6>J1G=JZ9E@EI! z1Q)2{RrXg^@jz_~-n5PnT+>WPj|SonRK=gJx^ssY5?`ztUzr8uKw#}6;tb3YpdsAe zW*|ELZy=ivjY!5|0`N{ddIZKff<{2>0fynkfCsoHY~9c{{qZ^RRUx4SMG@;>N6$EH z&fL^rJyjE9JlY{8840??)lG_BW7sRG&-IEa)=i2j&h?62v#%#^C~G8chL%^{3J`GSoQPU?a99NkW7{lKUy3+)kN142y%vq*vNf&^Q@sAfUbJCT$+|+WcXZ zPr5hQw2;K{{m6qqh6cVLqJ8Di`ND z3l59`Ci73wSLu^>ecE#vsDJ1dJYMItyKlpGb^dzys{riiGuWPlM+`=zxSL=*vp)rk zY(g1$WT$7vIbYb4bu+1dvRhKi?0{djsN55)U=<$fA4Bi>`%yRppH6exn78YrcT8#6 z1%8i;%iw?t8aL2?41Wz{1syv7M})7dp?~-*rA3qK|F4!-kb6upQii`CmQcz6kKHSP zc?4e=s6MB44GH{zIYA9Pf1LYjtFI>L2J)61_5;k{FF|*{B5SvF>EVELVm*`ZliM|u zt5MilwAKj*vCwvFkF;;Nri!d=$#JUr>^`mp*MCFk{Dus%gf^{6GOXMm0tP&@=1$k1U3Nr&voP`a!}7HUr|}? znAm9-&2`{9;&XH;C?|1|-SUQr(30-woX}OL&o3N~nJzX_sebUYdeZGTg_rGge0L{r zGgt1xy@jo#b5*WU%h5^6a*x$IKMA?F=rQX4$#PF_2cCC)8@a#O`*aJ zxMVSj2Ar3fIBySVusQ zVSKJ=L{|Xz(;VREHQmT|#9_HnA%iv)GRU_|B?#g%(fL0reBVs^x0>K)@E_oRxf!8d zOa#!Dde`P%kIug$H)-GIf%6YxK;qSl&i}@*@~sIM-P25w-7}NLmT_7N2I^-*k{(^C zKY+T$x>?Aj+L9>c^&hTHVjY283^fYDL(lj}L=inOYr=sk+Vkh_iJ-)(=lpr?tq7iq z`}R2x6j2l_a*$PZif++?H*&sSa%TRE2O}T;@cSV{K4r=IXl@F3$6#{LFLP#34E=?5 zg_FD`YWT`l#TI=$oxI17pUmrlHodQ-CeDQ~g#ukb>T}ZaW_UDTmqUrGlmWhk*MMKb z9m&-tHIdN#;{HnH=N`@N^5MwONy5uza}E-lNs-kIVQ*?=tSnZR;5Ws#dv3^2SyZEN zm>G28(FHme$m*1n!yngLr{} zYte-lF=q@{mLujGxz9JVJ`-))yrAPKQ%@SDid?c)+KBoGHmtn2ca)# z;!xAK=n?ioSxdRVAVMf>1G#!*pr+Vz-fui!i*scX&$%-8$Y{(L=IhPpeSw_cbUa+J z$TkHNTt9lsGtcNZkNILJSWM}wz+&RA75&O~0i3Du)YYp^H7We792~+Tm*Fztf-odVL<$VA0SR8kOZI%h%E{Yz^tUHF@OU= zKE%960<)rd`Jk%{X2SaIn9mYn0DVi$e!+@RVK2DWas8TH6Y#GHS4$nCu91VMt3|KS z)haZ?q$G5{Nr`y7QIwa4?rBR6~7CIrmTz-Nc;&ZKr3PkWMm+HgpoI* zsmRgQ??|5KJn>?6A)WuvHQpGb{saAI7n6U@*GpVowrUL)$;^@$<>zY1R1oM}xqaTD zqxYKN~9GDtw=f^Ax_{Q$W>NhiyTY{sS z{|`}T0@u`;et&k6JqXCAECPawvWnToM7bDhg@~ z5KhLH8{XdZ8-kXc9cyr(PeV%i^Cr-=Oo@c~{ zjL}HmR-s6tq>|i259hinQX=^mx?6HnT8?O*p6frksE!*j(=zpbwedUeSub9CEK^fJ zq&|xZ(#~$X5XR^$X3)-(@|i@bpN`jMtn!)vNN3`}uqG~izsv&L*;oM*MiD^h_q4X2 z+@^Ilb;qbP#z3NZu};%(#%c=CG<%O`8KLg^BxG^S*&2@ec7vd^3UzMN{0w4&3p%Hm zqXCu?l_hdLKmvE+6UUw1af-hU!|=Lt@6h%BD_g@pj&0pFaETTgKNby*iz(cZU7+*K zkYo{1u7E6k`xGSxK!Zo{e}o2T1=kG+vt}|hX&gAra?Att8)a?C?MUG+ve#ufrbG1L zm(KD_cXuqVU>B40K`CS!Y~)6|%Ob%8%U4X=uT4;^j8Q^i&D>=OC&XGqSu@8)fDYVU zmOi9l)B0J{`c0XJ9G6+Q;3uFQD_F@6_FB8%O$L_Im7e?FhC2kF>@< z2xxW43sX?%Rufq1mJqlfE*COPa*-xmgN{oLz0yM`g$DpcWlwt$Q`|Iy(RdBxfB9Mc z{W7Y5?vlowi^ct)k55hY_M1m+H{iSa%bRApwe3}0z3JC2_fZ~72o>)4aE-_{Zkd^|vD#QG0JR`69o~cQV8{W{ zAq(A_fSda%%i74pA?s!(i6ESUOZd5!SpTAE{%p zxbUhaCRk^#two-uZA_}|8ck6pu6|U9yx#w9_rejVYgejt56q6Z>Fcse^3i3L7!0>N zktx(m6 z4{Nms;uI_#5QpkWY}pzG*hLmq1-Jyf$;>z8zCCRSoCdBz#lnBYdKKFFWneY7Vq>Vm z#>0DUL&FBtF61=3S_Y!8s2-Y#HJSS11L~p1hCmU3AxX_dnpm=QRf(%C)XHSuG-aIVd*PayX$e)J~f|e z8zfg3KjnE&>#->Fbk~!D`nK2IS|g1fj5ALi(gxI62RlBfi$mal|7}<2Z0i5Y2jtA$ zDQmPLwaLmi1=E__R#>c!Vitt&xGJDH=sS*{+4Tlh^c`-}P3G(h%h(Dl%z_j#<1#-P6#6g^uYLDZ%wE&0|WR90(%hQv*z*wk*ySj1B6M! z&ZldX4PM-M!wB)=NJC+5PTAQ6kAvqA=dc$kqQR2`C|pFLK-G6%4U_+`E;*J1_|{4= zxs*M(2#JY|N^%lrE03dEs@OgKVAQ?84PEoRHfxB8R$*)FyzETcCF{(z0@~jsL_~&o zHEKsxcB2qSQ7K0gv?%Ud z;_2?w-x&uv4pce+<{-xSJ9+yXIlFbk`EgR>_>{vIU{T!I$wOZ8)xNDB5_D!bNHLCE zU{&7G$&KS6uDT;>HmmG*NN)Pqg|g&R(`WX5fRJCL`Iv_%SsW~O{PjB@?c6Ydrpwjl z%qJAVqu3xVE1NESv@=##5Ox=B7JF)?Kuuo~-`+m^wPV3@4P6p`hETu7QoF`kgj3M6 z2@vlQo*XW9EC|;YvG5^qEXWd92v2bLpeT)RMT$!KM=Os3v#JY)srButsumv}2GkDV zMr2m4c2D4K*cAG`VN-B&=;|Y0NxiKeZ+ctj=rXBxtNy*POthhTEhAT82)I-&V!+(r zVZM<`_aHo?s;-1Qq~tvFD?wg7AW}M+w_lm zXSAhCb9VbOt7Jo_|2vdF@(TUmZSytHpWCQ9@y?u<&pdxW-jt`!t(oyjpB+y^lH+ch zgS%t%PRYNxfu0LmD`p6T+^zE@?}j`@El`%BJbJA%lb9(ks8pa(B)_l+bqk$=X`yQj zISvTS(=5oxf$*tQ6aqVTXm-CXEvq-EZcx3mYKEqvA`S%%U6Uz+0a1Ru6YS&c6N@Yj zIjb@^Od+x@lE((c{ma1Y9>h(BzOZw)o_m@Lws-dMnF1c}O5`vw-Y7@{NcEL5blSUS@+kdc9YT(%V9I?2 z$tz-Zpuk1?5oPa~S>;`W0$nMx%9H%cP&g>C8g4%9pmbU`1wqzw$^V9f>treEd~^%Y zB?!9-S3vL7bkc7Y!>gANSobPhvEKoD4>l5c@+2%&Rx!a5qeqYTwV0*@-bOgmGS&nl zlX&)wb~Eg5)@znNqvE8gO5^nU(lS{=B&IcME$wGhh^j84PO$G49MnErQ46&Z<*GvP zSy&KsAu@!fKXX9;fF6`)Mml%@`m;6HOAtau=}1e~utJwOLogv2H6LFLAeLedq*HF00Urwmqo#|85E{eeCw+Dk>C|u) zR0mZS<_4E(+6hY?C!m_{sGF+&mz)riLc0Ge^W|S9;r_p)$aU^a)d~62k}&8D9XzD+ zD2hrFx#s=*X>(Tg(Ly`xLc61T>`aLrvA!tE&dkC7ieb+Sk1N{egBYD?Vu|+o#S3+U zIH4Oi$5lfoT36^M205Yh3u?JxHNkY<@UO-FDqCb&+xl)CGtb+n-u2jQD-cZcs~~lS z-);PZf>+i@7p+SxH#C1<+$l!u>EqQVs@~Z9(0W&y`(tYHcR`^mY!Z+ES2S3RFx;@ zTObQQ$-b3E+j!c@g8))0+v*STBmQjsaHhbRTded7nhmnDc2V}{a~v{~)*Gbp4;KaS z59h5HbmeF8v|cn=9fWEvU;T~YDfJPLytcVT+B{Pyjete<8Uc<{K8z}UDe1=e+ou)S zMrlJ{a@_h6lk=sSRuTo3m>xn1md#b2gY-`f+{jbN5`ii&zj4Xszy%PLG>(LEr6$K`MQ z^OA>1ZvWE2qSrAw?3Ut~55-2^M*cb?*{@LptiAR6aN0`+|E0)4S$*$oxLS~>vsl}t zU4x_Hc2duF@f!GC*xG_1k(!xWCT}H26FX{EtG?!*XxCtC^HvWV&4%ekhdWK#t4iIm z#oDLoXCd!)%hgqdnb}pr3qk{JrMzv8xKQBRFk8V}$=2EN=a>&t*lhf? zV!(ve-}A@IBhVoLRG5Kc<;&d{=D#P96$8uaF18JPRUUzTI`-bS1n?{g!Ly2O>5i`D z?gn;waUQtk=m@y&4raO0^)FL@^Vt{L(EmvPFb$ux5`q0Lxy~3u6Ex%*J1B17)iJ_7yV*Wsm%wrxibAoOKg90kp zPL<)PUHfq>h4h5&DQ|&nPI62zQ(Uor)}2{*ECwy^7&Zm?9Sc0B_F2$pZWW<68*?qw z7Oj21*EZ2-NtH*{j5(_ot!?+pd9_BpE_7Cefzb8+UN?L>FFBm=qLGr8Xq)IeD~xqo z?@U3;H-CA<{EH9OF5*2L@Tk1K&7)EZn?=v!hos*xb;3QSz?ssKT2OB&sj3aaBd)|8 zuZYWYc0LMB6Ez19UJc@Ejw6$iK)4hLOe(_sW`fnWfaAFIc*x*0j98wc*Tt0 z1JZ|Jk-g4yUBEqHlUg5$LI*-0j#y3qGvcK5LFt35;;v!DnjrMS0~pKVk5zk1P)OQM zr6X@A&yr&K<>NF!;E&42I=dq)^D;XR<+15i8_ILbi#LeWMj8?#=CzMV-6A6*0Y)V7 zsoIFx!^y*LCu&^VxgJhdi`dk2xv1{o%m$L`Pg%?#4~*a_bC9&jCy?5G^W*-BYi?{vk6mpi08g^!TgXb7#( zS0v=gYBX-w#Dvn)&(ayhhTIs(Gaq#3+ChYfmFW=|F`{GZds1`70Vmi~TS&x^ST7$C z9aH;{+8r0~Y4P`x$1gn2O*{ih;s>4O1v&wzbw4~w%40S26doS|$~o|n?Ruc2Aj1UV!@b5fB8>3b zFI@D_FJ@Pk8METx1<96WSlnDQU9rA^hnB&O$SrXfF~(bxIHquO^3P~A=;~m_N=Ho3 zU4u#FTpdgz5o3Pjy5aea-^Qqq&lLv#hTnYxK5=Yf;lrUUv)(BW@%f|q8|HKHs_nPt0{_8okGRQtI0K{ zR|SVURI4KbSl=Kr;Z$ynPmRy4k~jd*XMO4!Qufs&$tu$6T%AYau+2dScUX{|L8r<{))pALMnN9+*OS)k6t-axLpbBq*Z!U6uyz`S{15h-(Ik9Ea zLE{6Qk6_&Ieq-=_&!wNno59{T9n<*{vEzc4s6M|fe5`j<6_aaRD=dReFZupB7s(7T z%>O;_S~A|@K4hn2)=O(%MAcry(v?rEQZrjv15A&tFw~Mu?)6aEIGOJmbhi@kAjYvS z|0Ex)RFT0odQa!pb*x({w-)Dg!8T8bbFZ8iUF!Lv23cJ$#_hpKasaJchrrx50krL) z)5Q>^{l|$XeOole|E@>hFZO;je0F&BiSm4QaP#Mg5>~ak?9=hFBc-7zA$q?kDY}|@ z{J9;}SD09BfyAonq>yT%2peVzYdL-Bno$RByV&a$pNungNhE)P5oYq>i&bdr5XB&;sK$9Y^$^+&eYc$rFhu9UYF|n`AbHS6O zL|fnPw5?ZBrQ|@RzMX?x++wY;06~NnJFR57x=ZN;{dI@#ltgHm+?k)+h|UkoB`49X zz91}Bub#~pEZ08NRuX|H+PbY}f>%kQ_m+l|jRE(=5oSyNnVV)Fj)l-+J`wLj5G0=Thj8}s+eHAy;}Asv7Wa_=50rkr$uym-&RjZ zBKvTf0!L;sQMjHK33>eDtscJ(enAd6B&aJoV zdyVTloS5jox6Z^)(wqn^L8MEI!B;X=ZE)EarWgbF|Dqv{NAV>*KrI16@1{h6+YIKP zZEY^IjV~zS0iB+AA$Q*zL^hkA&hE?b@hW~n_M({U)*h9rV%wqIlXh z3*buzzE1O^&pF}lm+kBbjD4IniinRCB!$!%aiWCh>gypBJoj~mHSVFX&Gkn_E~iX) zSbkG}=%Ht7qJ&^R0VkZtFZfySMyf6;ZBTT z8yd4+XRf`bYPs$TEjOzAM2YspFmNL9_+0;bNnLBFMO#O%#kb}GX5~4v)#O{c%T+RN{vO!~`Wt#7VtXc;==m z)*X@MPpZ#3R(?EhU6a{?LA(>3RWtObZkW2kP~>comveqk&j@NgivzZMX_gva^!O9{ za1I6K(!pMHRAn~rN-Xr}xIil;K!_WUsWo4v$RpY2kU~g;Vjv2lQc$l>2vkMK6*!A3 zLC7X)KP)_lC^)6!9Ac5EB3-lp9Arj&m!a~rar5RxoW4KiFonS3xI(bZXZz*t9(`pV z9(}zYucBdOG#XE0%#7yaA-QLCFm0l0)afq#!jSl|e&;izX9v(7R<~*?@*$ z&?9wgz{EAgYw{VhSY7Ra#8mEMp2SpEN=kM=EJvAX*w`u;soBLZ@Ewl@I&Ry0hYS#__Tv4s{C%OP z%X^3J?aeQHacWAh-c019X~lA^SLYYS>doXzh9%OmVTnx6m2}1$2PeuU(maLI+raf8 zB{59Sf5ehd^ndqu2D@x1QSR_rJQ>yy6c$Sw6A5+US+SNpD#B4wE)(^+E^Bho3|&PH z4>tLs(jP0xgH7NLEV%feV5DZgDY2GZ*23dp=E8c7H5MOJKCG5{TSgl9;|9n$hoLk< zBN>fjMsIRoaX4ZR8HObgngAqfhRn$7Y4dt(>DCB`F`H29eEcNNjz*Oz@gYw-?5>A= z=Op*?klc!%&ROO~9?iwjk=*huZ-`T}&7mym>GWs=f)okQA}wODQ}Q#zBkd$wf(H{B z4Wa@Laosa{9mFX0=jesxLW`n=Kt)&{J3^?4+bi}2cN)Y6JpT9RBLfL;Py2j6^XXgY zP~2(wnQz}hbDx0(b04u=db#!VZuEe$=tWOB1N~rYxAaMU^nr5@NeFv)%muom@>*CY zIh$aEyuEUcp0%KBk2x21$_(pd#bhinG^OxQ{)twhr~zaK@Ez>iLU&I}+ZlO#5f_12 z1;(H`ptTRvHr|efGy8`gK@24BW+qSAkvfA<#$YaE>T9ij6{qlBu(B5H0?fw6SnV$P z>Ud)QJCN+r-H+Ze!RXraMwovj3iHIT8@_Ic-1mWO;P4!j4+d|5_AkK=u+HTKXRZ%i zKM6l@noal*$Krz}U>zuZsw(7{4|FU=<0NiYFWSa4X+i7n?L?_plx~>WjDW-26w65o zpS!uxStJ(OU&0x#e{A{ei^~%&-}m^skGqIP&vzwvjzcEWfq=#(hfWvqXc6?B&E94L zD3dWO+RoCbR3L0#XIfr@6|wn-Y0FM(gDvlNCnr)@^~-qs=}Z1x0XqVVV{roO<{Y~I zU**65EbZ+Vzx`vcwhLeNm*EE+Ov`goZd7~IFd0=bGH)Eq=`z*rJEIbz6iME>Q?@g) ztjP}w28_H%rn8zyZLCPYFkOg6J%($FZ0vbJ$)uzhp-4!CGCrokcRQfQB{B!c#EE@EE5II36VejR)T5Y973V3$nW91rL^2EI&SX zjwaj!M=v}+;?g<+7XX|BUiP0|@v_(L^enmM;$@G>v{CR+_D|7dyIOZA(T(5nXnW99 zlip4Y0GifD4Wf)Tpsgekuv3($1?-OiF(o1_P@)$W=%Nd-B>Ly1IH3naKPd@i8uGYE zi?F1eq5%{!X;FeWQ^UZcBx4h~+xbk)Cu~V!D<{b+?G(}QVxeKLF_DUIf>)ejv3}14 z#A+yT3=R-6#j{t3xy-9jZYCJVJ0$suBKkvGE*76x8B_;W#mb)B zEv-M3*!p+B>m*5m`X_2TWI(va|1Fo^jT?FUcKrOC^FJ%;ie>Z-sJkdY>acAF)dpl6 zmJHW-2`3o*4qWzuOic$do+#+71C|n^A4r6MaR1(( z*0)l>_*aLp2Nk|6c@^HX9#qfznt?f*QJM6bcmrq$z7x9OXjImqf{t#u}Jhy8ZKA}%UDcUEXO!|rT#Ovwy8 z=jyPDfswIOu<|Dpa%3hw{t|L#7wURC+!+0T*9x!S(HBr~Q& zWD?pKtTb*fF$060N(WCL_yUXjx1I++4MfR(+6yShHQgbwbSL-4v5txI$%2Ahk|lyY zJk}}J@jcJ=AYZOvyB-9J7sr9(jm}a;GcexhtT75K?50kS{^g;)mytW4cOxUJ6SZ+F zr}#y!oj z`FQeu>Jj0f0_BCZG%leQaUHxCa6yu_ZFV#DKBkStqd#cz+s|pFDn%ROH^qN1dZtA+ z{RHf-C#xnt=~&G+P@#h)!*xlW!s4gg%yVCF_7(8Q)|?!!TjSqzbAl$TL=N>_*Iwn} zU##@-FGzQ{4xOM^iqQrxR2pHc-LQ6`8F0|b`Y*Y&a*GLlOXvbRfN)9Vm^ZlOi2)I< ztk)-%^k|Hd;>a;;{U6*yOsK`ACQ*Q_3+Skoy#|6KPTfbGBuD0@JXj(*qSYll!jMC+ z6z0=f%e%`>jIu)Jx`aliyH1q{k(G^%dhD01W+G>;%Zrv`+5L2yVjZ7q5?IY?Vg+W) zEW=Q50J{%4RRHG_>Y0z_7SPVRMj7a%Q=H@!O{|$t>t$3T8z3ftqN$J#;NFJ(G{E{0 zEPyo_A|nyLMs9lL*AN#HyqZX>y>ly z+mwe@^+#PBR+kFanQ40c;2f#f*z-W@*4P&r_Mqn{ZT+}Hubu~uAXJIUTa_lD*K!raY`~Hc7?(-Dgi^W;<=#gnQ!qMXx1uRB! z0E0nuv!dBu*eo(f@-(xM<6w`zG6mRQLOQ}kS?78v*AivJzy8Yo6-&1D8-_P-IeJs!Y-e!VHV21rn8h2hLw!5E*+b)9B27xWrhaz~5KRcawy4S8)SrnO5V zEb9+RP@}7kI7EShnS2Cdn0hq;`biZ!$3!=7q#utd!y!}f;{Qb%q7s2}95M-=TsysZ z?oIByDG_hC`|jz_k$I;(%A=GvJXh~6Q}C`=A+hbryNM{KPWO&|J@W|^ybK&&Nz8Pm zEbBJ%1|c&Mb>kD#@^>oM0cAO6rS$+s3dGGb;Tn^9s<*2L^mr)5A$VRwERK9rNf}BK zGjyIZpA$$&*o&%3En+eFCu@4mWp~M~Li)6zI6*Jjq&PteM+2SpgFX^E&QalxNa)~x zFd2NUP0BH4?5B6iU$1?B_3_aw()CucD0Qj?)mN*;)eD2FJyhDOXi*GO@p2G~d8TfX zY~x2atPqViM^K5ZSjJvW7Hd4P9>xzUsh zm7gkplAMcGop|eJdQWo;6g*qx6T5!!+V$TFY{0Owo9;Da)@aqI+?X z?dDiHCgHwAHz2wV83>}W7B)RX?BXQcm>_=USUIIGEKKSW>F0Yd&-cbNeUlcNc9-Y< zE9l0_@4m}icW&Jo;dcaH9c;Yw(}v~W^?_+~%m> zc%VuNf>Niv&>KIVQ}Qui_haz&+{5w-t=L{{sW!KaPj1mMmaD{goaNe<_{ZLS^FjO2 zAcq|L(7=K{TE;3RcIpleNLQ^JVKPM!uPAb``dK}YG++JmR=a~M~xcr_G-}5;m&c4k-a5*K`X=MqJ`{wnf z(0#8kD$x7A0A;qgOE5rixH6(MeNzsZX1qm1IEz2zPS^j> zs_%bU^%nW3h0_{On!X+RSRBV7oo^l>qp1V<&W?Z{ea#6ePu$f5_>nKK*SyTUVy1oP zEGbYM>`tCkw(DvW>v<ith_ z*nJ`PY}&ZxKQ%H2bp$SlM6CrOYJyjYvCu#mKB6 zE(gdQdqmpV)y6XuLQN|@9Kx6sFJtl7TzF5>PhTUh6NIbk>gcMX$KK~0D`)n@+RX#5 zp@m<7?z@t$D-(pZgJo$~pgX~vDifG$tE5bGU()|KFWHtaYLK-l(nu#b|0TuOn=((X zJ!UUilo$xOKOp~zLn`e^oT=+%o`ApBBVgDUfL~?Rs?V9UM~((XJ=g zJbC8>Wd%8nc+WlZfdpCslBI&dZ;Uam}9@T5xTdL+qxEx$7jlj;p z#fY(`CTU*j6-s%t!pq2puK(XvTaK-L+w`fi(`?>j)eRa}MUq%A zu&*w4uS@Pl#0YV)ZtxKV%)|jBwMti?Qb@un%R!&!p+^#t3yc?mI7(|Wz~S8eUW~Pj z)N>`tI5CVeAtKb~Lh&D|B8&59gkh9j$(f-?bJa{5P1m$GLFPH$@EXx0KJJ5s9!%FEzHWQ~FUl9*ezkyp)4I-mpza`l+W^TWqCer8=o=#mw8r z9qkbi!RYU3GrxsLO~B@U^ak+@LFCE`#2X8bMf^O4VP+#WcJMWKJ14MwWKy|Wkc)s~ zMCl^nHAS@>jgD=yT=Y8z)DMOlgoCQRPcO{}fv@4}2VoNOSuii0u?fllWh2|F-+Nr% z(&gM7z0K8G2I_y`l`n|yFUuQVe?`RMuIuR)9){@$!4<^%@72VVc1y=9Shj6(!o0Rh3hx@(-7G?CEn>%MqJsnWzQ`f=rwk|JQT%2KSwM zuG^MNGn)jezx3Lw2JuX9Oj)&qqkfXN$b1o&J2UhGa|gu+UvE8M^!nBC>(^V)Q_xfp zCN1Y;m`b|H?e^4Aas4jjhr2=`&Ot)j(-#RkFZ_F_Xwu9BQ*(fmYfNJlf}Ltv7gMaCTNekJc)WwzuuxtP_dq&a+niO}tlQlLfyg_xs$R@;S3M zvd+%nd9-^^;cBU{jNFX)?RIS)fjL^UwD;-h*}D}7<}WPYxX1Z}FH-RCP!7^JvyhlH z<~z7+AiuNcRHtc$B`tb4`3fLH7gSg>3*Z#M>Al_H!s~d@UST=sssJ5$t4_tq`2K&& z3MMm;Ko(*K148^?NRzkwCWP}2%0gH%3w?#U*(`%v)|L2HM zMQ@@JPq%+ZYG2Y4f{U=2__ztKD?+t#AIfB+^3b0|!k*am3AHAp`q;xq5?hBK4%>L5 z`$!+V2h@hgXAcr|D9x=j>4~=1X%Ut#Q2m1*Q&!ZPZ5nGo$ zy*2+9US4!Q9nu@R<@SB?P#+G87icvs&fqqLBwNR4EYOV4h)-Lfm3}@gYo{d;1d|2) zjI3>w>d^iFx7=3!ocD&GDx@7vCrsb|GV<{`%KY`mw${%`t+ymp3K7Zto~cn0 z<^N#aW~jiRMgp}p+@VAuvrvQn%%RpmR24|A&vG%MX03iEh%rtdYOk- z3e)IB;n)gwRxGHguXz~#O(9cI%~nLiK_|o)-Jx}R;jHtCFVkAIh)2|0Hu%!+l6GSD znU6f*(B1#A24>s5NkEY)3QlelHGps z7<*|Pg@dA~8*AE!uwYPBIoU1#o_FasQwYMYK7*-j#pgw2<*&rWF0z_Eg;u3T+ZHiv zT**GVm_-I(lO|;ZTuLeeVWg!2Hm))r$8I;|L|uGt<440ED+;}vPDb@#x9|1O48EX)hWj>kc3Zih`jswt^4l zmtrie<7|R0-GMlSVFPBymTRwZ4>j7=fhib9@5b=elup1sOk{DyE+np3 zt$bChiL=$^l$r5NFj$sybmh&7amw+AD5XfV>SSVWwk$Vxg3BIn zQ03W-1x)E_6R9Y8Hg2}MD&Z>recCo`HLga3YL2Q5qqc8b4o3$+pPNWyZJ9}&G?UkA z;@Yd$Bh5y=1T!2H4HebzzTBSv-FAAsdbnz2$VKloaP+G^%@;Z?2IA+yo~02ZL#KLf z9-Fh@Ct*eHHwi2DFZ%zlbc}_4`)}J@W-mv2tK?3A?1d<)g<(3U5Qfn6lfv4Vk(zjy-SrsPs^{9%#Wk z$EliJWC+>X0ZEoc)?wta>D=<|e7aRv9f>PLR{O7T^t<_6BerV2?78LN)A^zS+e@BK zo6(>V1_KKVpxckyJF{58!v*msFf6dzY={ z$NV85EFoM&o~);Hr5sN?Q8O}{sP|HO5s z3(Xm3O6==l*({e6o_1zy4%&}-Ez{#H6z3piG|RD_R>5*Oi}pv16Tyi%?BnI`L(n; zd1s;;9QUD|77O?YV|4(Fn4F0v^*ik(e^qC*)XD@rihC5af8k-Q!e+G{i6fg~}|3frW^jb-n zqaCq-=)w27p*~{RBK9i>!M6YM5c=k5a)3XH@2rnMycqoNBQXZq8D7?%sELf2t^34uEo-dxz#dncJp;5F@3@ULSpkyOF>@^}tUHbz`T z*&@uA8FiT?2KT%7tgUI>Mb3knSy-3OWTeprQ*Ju>pGwtl|q*aMdK^nH)ASWBauROz3GXlSNE7s0y`%0vDLRxIz15+GT?YGC< zduZtiI(b^N4D90Fem6X2c;a`qVXL9|6C2yLEH+*Luhic+ri1_aMaSqoJIOD@e8bx7 zwOvn+6FwNf0{lKi=B4Q6CgQgQjdmA)VWi4t<{~sn!2>maD~rR2VdsB*RZO}o+3-d< z((xN`MSk5|x%6>Vw&JJE4P9T!b{@NLHjnc+*;eGyKU-HnR5Vn#C)_|GxV>P8axBCc zUOUZAN|6!TyQ?|&;2;Jxss|#-&cyf5(s3#BOE}tGJ6>H}RbIBRlyh6=iNII zTi@eRc~0Q`Pnf@ux*6o6O`84N8Ofoyw|&+pHFnWP>H?A%KI^-k;i4@y{_N(7+BK55 zNzPTZOG7t1Y%i)!stt46z9%#}bbG<(*`Z0b+lz3UPpaMcVz(^xpX}A1tLIN!wD>pA z)sDvVr>&l~+Ho4kc|Ro0!cXwZhMun+A6yoEb#Qs`)yCkSK{O`^!^g2lP0GgL(!q#^ zkEOSZZm-e(Ja#^HZV_RS*1Oq@AOXLzZ|m! z=ob#b0Uu6zC*8EugU%vmzc>Z?0h?1u9>KVho&cVLB#zC=_~cy#?tuN5WbYe+AVS_= z!-!X|EAcsmSs?m1%zSI9_xPsaPo)bRye{+@86O%Co4?)XC{?g_jMd$-5GhB!9U zt4D1h1O#CQYz+%LB5W}EzklS9>2H5y_^DC)py^5OFF#k>nUR}Pq5E&+Q6LV#8)e~_wE_JyPoDHIRJ#Tw3#m79q zcY5N^#GT1I;2t29hAGSgO1uRk#QDh=oc4~kMw+3j*v*5W0wRiOnA}qXr1E z=NC}`gqQx`cLAWk+?Y*N`BJ0^bLLSc))kf5`=-Co?StDUZ5e$kk|>e1H?gE3#M2mTc=Co)8f<8ClZQ6lMWR?(dKC={@v{p?(@In zR}Uu7ViHd^N4PI1>6-Z?{cawG#_qlO2)}=eXn^{(yY*dky7k01OKcMC1-}Mq*#v&z z+9c-u&hhL26;Hi}wKv}N|N4pjm9SP1}9+2 z3Ic0aYZa3RPF#$r%`%dk?d^mw7}DeQeROk@r^52jSlMmxi;wU2G zL5z-gRaKjOW%5Df=%5mlHKnknI;}cw_x12U_a7>{wV%h>CTZfyTkZLqzHu?P%=34Y#B@bpQW3|Ch#e4a03*>8FODa+O~?FZRz^?NK^g{#_7zwd;Ii+_PM_ zu~&OsBw2(%4#{D<81l3K7uhgeY3s(QnPGY3rsA=`Fj0Z`_VZvxO-ECISqdDSMny z;B}sN|sI^1)+iSbmlI5KUI5Kx?W^FT&nCuD&( z4wSfuW*)R(P}kMAVCulUG)#tc;O2#Ygm+3P!-U6S&wx{7X|P+x;U3Cn%9@@&nDBkeimDe-~xtxcIoOxn8V5^|_GKE4I^Z&<+W>@ zj~jMZw2hlKyCbX3Qu~AIiQ@4ZZ5+EXtw#Gq32(e=+)%7pl$Z-d5eMy2JE$%ido{O}ZhrJXZPAVr|%<(}`7z zn1ZKwGFqFMIVD!H$w5@1Ekw-*vIkP5M^efmwCkBz5l5a_QaNMJE|1C?i}>5m>d8!(@1hQO-L55-OO9Hs(8C*3R=|q4n^mV3N#~u`t1C#Mb5sZFr-W54+25!g zUHyI}dVizF1y-X*^!}JTiFtjcb)zOWrCS0UwbsVy^&)bxcgVH)tk<)e^N0(+2it{d zIApwKp3aUOlIgYw8&~#o8HWX27W3D`#+3Gr*IS}BMWjeI!U#~t@E>01BmeHBVaCxS zw}u(G{!g$|+W*7lc)eP;0?JQ|%X8LPt|7&ou+D`6lNqxPOv{7t-9`cBJ1+c&k3BU0 zY@F2g79NbOB_VwmC0E!eb)r^-`_2 zk}r9Gb^4fQ-{A-Vix{4}Nx3qC=`i0WB)sh$Pk z*+k+)6t{ND$k}Ix6cP^3Jj{&JvO;eo71fjSZ>ta4DfmNSx7;u&*aX|gUGp0@f9`}) zp|B9MO*?hN6Q4X??2IujRey8KYisxvbDq^fu;Y4rHtLVb>x|O0FsNCZ%io| zF3))*2$k4=Wg5$(jkt%+v}wMc=fH%`CM>Ns0)|H;Fb3@Th!XpVVun2rXl~tOF39r- z?X}@}A8!bDHwqq`6TBGYTNY@aEdO3LS79*-@TSK+&#dUa=L3K5y=ML`(Bpj(5{sDF zV}Bdo4q!Zx@dFZk{o9d%w@m)sEo;sU_QDA+vhD~le;iJAo)6M!^XrmzZix`5hM&d* zUSr8UZKJ`n91RM(D>AV|dr^lwy;oJw8Lr_5yFxS?{gL1V)9};@n1aW}RA8IpIGp5C zRg`&_QJ26lK3o{zSv9%^(vp1ShM&TAzO;H65ES15h*OHW{qE6KBt!|xeO{X1DO|eO zIrEINe`urIbBF_d-06mS%B{NXhklMWK3Oj|9_$S z>XksdY3It$^7B7Qlo>ucJ#>a1G$?3OVuvY2Q$Ml_9vIZ8710qwte?AS8J&U`@`okj z#013EhT%D(9-$VLTni;veHL^qc`(o1R!j<9!m+5vYC4X(YD-+7Pw=L{tCv51D4V#=3UKiicL^`~W2JrI2G-kn zGhV6eZ^8SSfBk3txJa=H`w=f}_$QChVN}EC`=&39v^#akeS=-Aj>-wQlXK(kYOUNi znBK5!UhlqM$5?!lqcK|fU{%$5qlbl4_03n6J}cBdFG3Gy@e-5S&fJ(zq-mntV%m0s zZPy|`!HEhteZpQfV@JSdoo6vQjX^uUpQ1QsE5#l6j(CTXoIbC)YuGL#U@UHU><{mG zkeIh09Wft>%rqx8W_j(wVjqqHOgnO^KO4#I6HyW84=Xm-h~7s1GEnqN37FSHjkUSTVcx$K3_Wif2XDr;baJAo zW*0l`9L~tH%+|60 zh7cW`nJ<#Q)nAnK?Ovb1@EqKK?vMYx;`9G*|6lYO9e-=AlYYm-j3y$R9jNf;gr!5` z7ev|H$n&#jl$|vt&eeioy8fT4zm{d{7;cNy3U7L>s@!q8bTE|e>A11?PU+y%k9bH% zF<*s|BNP^nqR^0(FfMIly-^>UuxB_lp>Q~K8E`g161&W3T3JNfVUhwP)Sh)Nb(^t< z0+teYcq(%MGC2s@-f|^pfo9QDG28?Ybz(MzZ(aRcqyt6l9;QZ$7>IfiV6~uU5Obi- zVEU1z6f6lQG_kG_s7g6_l@XjEEu?gFY2ssMc%5T2X*7V+_h*EJvZ3xJMJS}dltD%d zGP<3MbWhEDXxuW=TRYN#V;fUTcA{QEu5K*Nls(AQ=|zTFHgoHTLgL@J_cN&X5Z!aw z!CqqCJ7urteN$__m$M@f5Zm`MxS)Gis9vZ>PD5w})@U6$hx@!2C!q7|V2{3}gJxV% z!c_-HYD=o}>Ad_tZ*~5S1Y}gJBdj`Hy@m_BkdATNDv{>)_5x>kXp2C1*|mAenZn_W zwB*^E$(s53l?ahGJt{KL)xp%<gaGZg@x)Wr7V>nv?}AYas&kdZt5z0 zmYs=tz@U9vsa{}_p2{8bc3aDQmHApmaV*swOPsD3GdXWpl+oWEv4n1Mlo8Ak1buDT+yIy$D z;K*`LWVlJY)a})UCvvIV`6@ata=HF;dA;(OM@>}3qQ5Utj-ST{Co;R|Rbk=X7&xE6 zjq2Y~$w|=F#a0=f<}pAOvO{gDL)cmfyireTUhR-=L3eImnJ#&tc22Dwd*N1cPB94 z*UbIMu`R*cplaNHiiSie-(ThSP0!Ib zrGJk9?dN*qsuS5N-6~50^eS_2CfHf1Smy;zvHQR6z=8y$GQRyo?Ms1si>(ry)rYsG z#q-S{6s%MEyXdBSi(YEGhxU@7DYlgw2}b2btjc@`w}l!x7PeZUY32D^&iozUYv>1@ z)N)pvV-#1QA9PattZK=G-l}{Pqxot%<|oxxIR}h{;Yt2yI6CfDSTa<5*bK^wth~6Up zjkCe8S&Kfx<*GF!X!a^}m!W^w)l5yWN9`c+R~|c~t=>Z0sASKbugq`48#S*_x9xJ< z<(Yj2p}{xa6olP)!#w}ot5$^)O_57&4S`Xs;;LNe`hThZ{>ttThQEK?p>!qw!-=nX zy0vW}L_92fut8W}vOX{lZl4wQ4$Uw=q(;O}@P^p&WAX897*Cad;!iITv;w7KVj8iQ z8=t|Ql9jk)fE0$nu^xKM$Fu=t=GaN*(d%2^1*NYMT8P)!_@=IwXH@yv2$$NM&{ zY0i>@OQS}WH9A3wh~i4 z=JZJ|gCB_-bkS7t_J@iem!SB>eEl@ab5V`S8l0nk-dR6z!`Lck-Kk@%m<4VWu3iqt z83euvf}+;T+wl_|XZ@fP^K}X+mIbLSyj3ETnVU6L1%a|cT&Om(LPH$jt;((`48q}< zd`#VS4F61fX(P6P^}a0eLPpIW4^{|6W!0L;_adf9L5qjYZ%AjuLbm(nM=ICp3q zyC@(Vb|A8798r^WB@qJJ2?uM!y<`KbOL_-*mF?*olb-(H22Gxy%H@)t4` z%H~$Z8@m1#xt@X?h2f_X>7dvK`M+sDy2mGfc075$VmDNRL$S@LI-6TADtiWu+Zp*^ zifZqxspJYKUQZBF-wbOOyPBSM8lF@;OZX2N)U)0LZ(S`2o-5ei*u=L^e_kuU;lY^q z@(Q`6bvV@u;%NRuxuk{Xt>5RJ-P3=dmEWJA(2u|tim&2W*$mfX5&F?c3Zc+k4;ixZONXj7uB6K$!g}{{hdmB!U`CB~lDx70oG-s*=p3uo0{93SgcjQKhcG2!hd~WR z#cU?N1pY5#j!p8%N({#l{42vu5xLA;cMWab)s7O{ZFp1xGB@}aRqyp97~D_Ij{j`k zycsn#>;nQ6cDo7AAI}lEg&3C@xVL78IP|-ciJPYd`Lk($C)H>*j-|L#PMQ~zx>Pig zl@;ZC`K16c@aG{+@vM6L1_hNDzEd)8R6ff58@WJtX%a7YHh5kHkpn<3OB{?fyD5&( zMpMqh=&&LhXt_XRAkP1EoAy07A8&|?_Y98mMNy|e>nf0G)(@*r!!Ljv(HrDCZ%Der{D6>ZwvBD zY0U@CBGYYMG$Ue!fD6r2pi&Aa5JTA0&K-*s{MRG~A(i3`->z8)E|l=#=7}%J71-k@ z0M}3MZNl)10(+o=TgFcxuj6zFON%Y^(RF z=&BsGt+K6BF;_9op3x{48cpVesb& zz4p$(%cNm*?9cK-BKt}PW{0sBdCb;6iZtwFh{--iuO0C3Z691w*)s??9Xed0fAm!D zyRw4B3SqbWlNun@f*v6eG#*EW!vlST{E`93Ej^l?a{Oz)y)wA$!iVsHpNPUK*$m%#}!K5{N9RkcJ*IW8n zauFQ*357CI8Cndt9ZrI|o6ZQ=mkzkfOk;}D1+~CbB&`cG4x!ei(c7nQl*lp)` zS|?ctNo9pzKPP%2F%!#7fQhQ=GY>~D>*wqdwm99K9#Rz0TOUj|^2z2LUH>2QTNkc+ zUC#={{%TjfipYf5vjcD0(fkB)Sm91(wJTG%F97YBg$^On&)-@Z92f zdijBS;59$i;vaFW!))hZZy4op>dbWo;(1zvSfEx392Q@%@4|=~&s|nO*A-`911t;e z-9XSikk6cFBjAZ$tWty=w+gm488<`t{9SpzfE=4^zLZrdyvL-O{e!| z&ja6vYgxT77%wVn$fc8*-4Z=)muXCq0SILQecnbLIIXj#MErwj50(vBhLU3 z{M(xvHk=lre zNWfo`ERgs>pglWTl_9J!(|wen*K2GcaEYiaF{Ii%mE851>U+F%XAQ%#ZNMc<+nmvIw}e^MRx7@eOJW1BgR(Q ztGo9f@{7Y)vi~1X=KlPUy7q!bWAk)ak9gNuaatVP9IdQnCI zS;|miz=2Z5QNVz$)#??(2*`4_>aD$^7##Jg1lvn0CI9C=@%}$aPEL{&YT=CE?|q-= z`@l@I8g-eO9EyyO#et?dETb<|051Kgg8P#c|Hg5Ox=A~ln(bQ(jd2vB{Cu@1lYBSG zxwSLbOEBsb8&;URCZJo%*lYqj&A2ROqd%X`cM2TGTK%is@AJXj`Tc~Dv^|%tWj8KC zOKboN_oDq=Oa~UJVCKy)9dpT8B+neVIf*rtv0d(?x5$>~qvMjt^U;mZTSyCs?FXD~ zpNL$FCi--YD@xX1WVp~LJ02Ur%>`SR6P#Wm%TCV-SwWl$%vq%5(k0u*8QAx3G#>{^e=_+oz-l7*Z$vUVFb){_^C6|*$q<>+Fse9WHa&9Dws^_B z(-{vr7}aF8diHX8jjg;^ht>(1y&ex8?lf<$5FWcCkfQ!3kbc#k)xw!j);wq@Jg^BC zf+Mhb9@xaFzJ-lxzuchn|Eo;to{W(TzZSL!NuB4vN%A4-8H(f#ol2uG^Xu;*lP967 zQt``J{*e`4aSy+N3k-Yh7<8hHFO=C1(rr}?gy67yn(Scg%{#~e4d+HE)WxpxS1 z;(jQ&uU5~&tGFM!jZ=kRDqGsOs4Kfws}=BODz;4OwyINXNnJho)8jEdzb@{Fu3tDA z_2$wr83$vgW`pi=;&EJUKAx?|sg+W{T71;3=IGWMY0Y;r-M<%kEn_YLd3#+Pi^g1x zpOv{x&6`!0In?9N9x3`rE*aT3;1*zc){#}*M)|V=c8@0yISvKbsaZIi2iPH<(5i`+ zV#mD4MUbgf6`?XsY89N~yKWZtjucaNVZqJf9;`{zVij2oBA`r#ad(=v@$--49gK8j zX;z1C#5h+t6XxUNnGfeS8}WEUqO9ZeKi(a~8RH3b0vBEx9#~U$32L7zHD_Dey`OO^ z6mrz@A*1@CQZm|);dEA}xdBZN=zL8ai6DPq0|b~U;6g?42*MT9 zpr#ynPz;XvR9?o{K$KvL&DV%GflmZ~VKfvw#(<7dm!_@nV;F@yMnlZN>A#8%x9K{8 zABsvcMm%61;>RKNPxc3Ve)x}mU`9_GaLxyRI$H2^lA=2UQMJhd$P;q=HK~H-M(rN$ zv+J(a!UrERyXEyQlbP~hz)Fhhay-CLGFcw>=mMJnNryuUHpNL&{w2J-Dfj9+tNLqo zUv0UTznb>{KSW-U-@IQ6{g1g6UlM=;V%= z(NsY@!()yGsJTf!Y;(L&`)R}W)55(EyfqFN%L2`ZnQ@6=X<|8 zQy}S`6&uM2ADu7MnXiq4P--GoXXSW_U|N3c?zIU>B&qLY%qqekQKg{|>!hV=ZYt6rUZ7{sFb;89-(jV=-*iZ2I2J?|)_&7rmCopx zpUcP?Yg9MgDZRMI#Yv|mRGVk(kQInZt5#=%mYwdz1x_fxniXZ+IT>~ap`?n!tJ4ib zUJ$D!8Pqqt8K58PggWg4wYC4L?*`{C`RS0`t*<+e6*^T|G+q+*ycqs=|J^f7@+Tgc zyX3$D*Ob?N#VIeqMtOnf*Wjf1-CoH~dD^+r=WOsx_uFj;j#*DUpqYOeV(z7xhYhn+ z@>|)-c%x})1*k&5>J52AOONv}=+bwz(l-6NTL^@Gr(R&6iirZ1Tu zmr_67=xOrPucoI#q}XjV4aAhqSR^uw91Cs~3qr(M3XUpiA-jt z)W5!}P4gk%8qkU5JY&LU;AHq*5P>qD7HQ(1c5K=tfB9 zC)_x?sRPRSo0U;zHqePc-lk7VdlKA3_+TV|-s3Mq5!%0?^>t^kf04iF1uD`;s7t@_ z@78rniXtKJABv0*T!Z^ZUjE77Q+~av+w|K#{#}nlHkP$at&de~Ja{<#S{;k9?yl_{ zMZo~Qm$hBKZ3qCoG#|uwkTzuqz~BSSCTDP)we5p(o_2ZiBo{}qNyt7{Oi^uHbUcUN z0?&<=$KW`L$p%In&To#Y)x&EqU${+5w=IXQ>N#tpFW;ZZWp2akuid{uioxC;1M9E# z9pm_JfHmmlG2iGE5>CXl`X=`wGZ+#HAHGj?iWH#r$DB_U8^R63`mBLcr|4kd)no4Z z(DqQeLGu=!(uc6&G+IPFx%;VrK43WOq^5YQItniP5^iRDNx``yTLz%Lz0@c8W$;S9 zL}#&{#SHd&G=}S}))t}S@D02d^Xjas&!=QpC+3(ll3R0#Y-wjKJxo{9XDGxO>nRh5 zr*7EC3r785TCCnXJ}efr|NpM_W?j7gg`KPPr(Rf}sowRjOr>lqO;>>!4C;>*Y+%&o z2o21&xe1W4;Cfj1z^HWYw7D)+w(!Se+V+9u&28HinU_5;!%R_n8BPk}6^01M^mxmM zPE*$HbBGEwQ4Rx|J};iI9jV`1cPet9k4hhj?aQdXaFo5Lyaj#T5ULL_Jzc0}pozuB znH!`h(p-ms?>2Z`UbTM1L#9NB`rOB@Lqur(Qn)~aVJcmt87(a;4b1ghGZ&-Fvx0s$ zDt}zZbWFo=c}-=|bVQ3XL&Z*`l9!=)2Z>GkXl=e49DsyH2##2)D%D*q$e(>`s#kIp zrO)wNn7BGSD5RznpAd+eQ~_qA5J6EkBL^g9nsq{n*JzTDpft);gwAO9;JU*}>)@Be zlBeI<=vwfYdfk|0qFfpF(EOv6iHeH2T0p)BjGa%nj!lK!(^kH{yeK5zP7u!_DKWLR zq2W^@kcz}lF)2`ZI*L7+c~-n#yv=dH_52Pn3jUr&;#W+LRu8YgifI(*J%Xnolx@!$ z!xKsriY;CDp^*J|?>A~BmD7AH=kZuH=5(ngPSL@2PXzffI&7L0VOj)bC!_TAL-^F9 zZrzA{3#a$BNG#_&p>k2mVe`L9m{MVmsS{qBpBgE9My~* z)KQTYFvfRUxhC!AoGDCLV{NgrVIW+Gq(AcVVmn3VfKf*gXNt$qv(XA9eGb|vi5_51 zS4K0Q7xZ8B(SM0PcRGu(0dR|2F-#dk%bec?(9F*=I9}``ED1EjJjo(#n`r-kDtfhN zgOTa(NcplEj`QJvH&#g=LXV>cI0jNfYdx}cLzt5^JANFet73dGWRCwN>msII$1%$SAx4DIBR(>WG;kS|T#pg+8PhM#EUfPgLxUaz{ds<& z0WdVM-+>GbD_fO9L#27aOiHALfrhIt6nNbDQq*TL^}@uXL%$>x#=Cih$KAvNn`zp- z(DDOdFrlyGLf9snj{)R_x!GjD+E;UP77UwSberw(YysIb&x|}3e{q->9#8eX^qu0l z1`qe$Hna`aosTA@ZE*JDlDs{*Y&_)ev3j=DrPMF$Ef}4C1+SSAX4fO=lPmJ&dp|`W zN7BH@b2wH**f<(Hvlp;S{W?zt$;^5d25>yn#U_9#+ZA;vvYbmpa}t6Y-AhA{C#+mr zUK&vl%w>feGBwFhjBXZ4RV^I>T_daR zT(A0cEE#-o#rEN%iDt^nR&4_o+39_r+`xL*1YSvPO;D{1NI^Q|Q zSeI+_w|98x>MtX!0-G?pgq@-a%&&@ozdcsDYENS89pR%T%$hdoEVrkN(scu6Nb4Kmun|9<7wbpEZEVL-Jta?>y4u?=(_`=dR2l$*6G1?)>_QnVl5fS#ZO&*L^VrM2VEx z8N|RE%R4tXcP?@c-Mhmf2Tb|3IqDCb(j`IQ%!BoZ^QGOn^T@B={KeMIiCcI5q)|bK z8^NJL;!voGDBiY$DU;!?7S!b!3)M~1P2(hrG9AeC6hDKRpPK951a6>T9pWjAV7}0t zTak0y__nM2+nI$In6s#N;8kVg+tKdox1+U8*2CD+(S7Q_tw4WEi(J{74zKXmTyLYE6KtR0s6LKENqg~(k3aJl(A`$>`IG++8 z9fCnRgdPA0P-B(>i#4{&Vr*kxm15)R?4TBR5&-x~^Z1NWEFHP>)mGK1lq(-;WdR6mW2IWY9dtd92oH#+aMHjgd+@Wsz}+}CHmdCRAI=|^)0 zN~X{%OAno9(8T~4N7F9MP>Z|Ahib~LpphnKEntF}(Wwj#!M>c$z`sYIxufW;Y@;j% zt1GAs;|>Bi#V<4K!bom(`(}CplM&%8=c3t4X-VWlLMa$hIlNwd1lly9Zs92UPboym z7%0F=R1Fy$`Gz__hA@NGiha47QYK-vS6;n%mGRraZm$;49Hk`N;j2F>+wU_09#+2* zwa(^)H_c=|LDLzBuTsOajRRvb+Jr$^(iOF|D(_r@4BYz8`r1+GifS%%#lR z)NdZ3j(<)BN?26pJ<;1#Fwj~yLT{F_Ra~1JhkHux4Wy|tX%3}}SsK*i8iNY>bcN_; z@qL~ZF(rJWMq+rX5cP#hd@xEi!ABP+Mrg>A-6jqgtGXs+Lvy$=bTKd)U`#XqCb(-5 ze7(*7;K1e9ZC?)$T&93iG470o;<6@8?2C>`(P(O+B}TboFoA*9h{i9`Z2{7Bmr1Sn!0*IlGqn*^}iT8+$J2dX^S7)2br9KJU%NQ zSXCI0X5~o(sQAVzmdD!dYjdRebE`lsn`NzUKy>u;!ceN7cRQ>I3D0Y}opw54t7^0bf*Z5!I?TWHoa24V0U zz;$&NprK&Ol;2D=sP99$pnJmzkjNY_j9YE0SIH@_5=secKw=p0iZOaJ*BYE1_Bnq% zL095@NLo>tTL8zWLt$=jB=zf&t%|etwc4MU+#MKN3xLQk#6C_#T?q3@gGq-4x$Bq_ zG7YPLWs`jWw#Mwj=sj^VXWVzvbvU0u%}M;|$7)g}VE~?(^#Zx9w$y%?dlq)<*ddG+ z4R;q?d4OkLJlgTKah^qZE|9Yu(3dYnU!G%IsAB^j^c~(M&Q4BZp=ShzKibxmH(=mj zj#Im!M$%~l1aT*vb6pRXM^r8hlm{l5Ae`r+`RneQMZFPqUB4qX1$ICw0N0&jJM$li zRE8eX?1nYvzW`l^0%c1jC9UK5uBJTo$ME*r(!W9KsRF(1=z{g6})ihv2--HC|ictH;vY% zBVtW#W8abUrBP>jDUxNUnq+Frbe!ISHY0+Ndy z7PBPD!W)w0#dbOGK-pFI72n{oa zD5=yzq%a-Jo5~Kjj{n}{`1p40Lt3%+FLd1S#~*4%`i4LLT=j<{eLX*)lkbx!$^(43 zyp6da#{sw<_H+r`i3EE5JPtPC*kDv$40HauWI1Z{9rU$9KYYlqu%}^aEUm74gb=Wq{r$t>MO@wbwQo1#Qy3zT+>j z@PeX|gQ5L>wiID@uGyllJ366J+AV?6CD!xqBJ~uJc1UiVdgED`EDjB z+#*i8g>{+ovQP3dPADmI*{BP7%=hl~E;W&o*bQ_@oT^&qxblARii*;tEeoMNOFj2w zinZOjb7ITh#o@h?q4y3IP}nJHZL>HC zK?P@$vz!Al8^@K@?(V`sfvbS`7v(+PN!kD%tI9N=4K zC#09ETW9oVcbS9aM+Uguk(2^B*Gv-7REK~adrscxIM;MM}O=WQwh%ql^(A1IATMzD23qOs{PJS*t7;0*c# zl29X{e#%-Cqz{!q*+MT$M2tMoV*+^!`DqxQPjWod<;8;5P%5yVc$^Sbll`R7d;xX4 z%7Ef^P7}d4jPj?zwIV}5(S@5F1VvC+u$-^yp zar8vJZN1SGyk|E-PphDxp2p`GF0lv9Tgcku?T{U+k!K z&8RfC8~h&=Lv1N>_|gd87uH-kZrV7l46yp5b*1BK$Ma2x9W68O}JKs3ZP;H_vi;s(hWg) z4{aVK;p%w~ns#QnX6!W{H>%0EWy8OXU@WHXtz&BORn{&Y6SW`jSiJ?wwtKiQ#I{$ew0i)opB&`QdU) zDnY3Hs!1SNfEn3aOwO86k*APg65yhTPQd@-Mwv#Bh^sebw+|a#5fwwIjbXYBzotAb zD&#cMBp8BRU~y0zXFR`*dkeMpy)=_XDIF69K0X90hd#&m0ItD&VpNKpm!$1Q>yZ;9 z_p~Zn=vkDQS=cjx(Lcgt;?3GN*izEWUaUoXrmF;TUPpJu3$wsAHP;bl|I5>PUaPtJ zdS2|jyRJjdTyqrwly-gQL-|^L<@w`}z9=a_`sC=7S+*t9ZkMTMS?gxsNDB>X%Wli@ zE;`(o3>#U&jWp@hfHA^ZPSw4ZaP5_RDmyTGs$K#SF7*3+32^(pF!pB zy?wXqxA2Lmtoe9}%D~?)yI8FDI#@MaS_;Va6>Zr~^s~AR{5MS34@IejZhTj+d4fHQ|B=Plll>eON#!!5qwQry%z*^ zu~bM>#n?dv&qU*Cl%DoRV?r#CPD7X#x;!qReNa1y0U#M>~x#GLr$M4*w@Xc9ExctrV- zsqaSvWYRh`kcdtL2PE~6a4cYEnhupajPZ1UVFC@oI}RuSBT{2_DX80oXEiEQ=Xtr4 zcsc8M*(c`gTF05+)vF*a>3xTL-=s@ME>M35R;dsb0!-RIXQNC zvO!S8-JTRQA$D;l`?Whqw7VGhEVt~|E)_&^jY2Xbr0%Kvv}F5qGX*{#{qsDY`EUS( z_u(42X7o!PtaXY#p3PG$f7AmGH|xh~PYBuPx=(Lg*dwt+`DL!paM+=`>0)!SIkK6{ zUjW_b%7L#Hx5bL=D#fO7T#&7e?c&-Kf#|sci*Nf5y3W=%9G(T6FWHA}&0Gb>5TP3b zduuUnT=U6c?QwLO6_`rKP1Duln@gwZ8mPq(U0G#%j0>oK2yX1)T+TE5$uQqhxv)yv$vkh`=xdFRnx}4b(Cf_7rg7{-zd*?o# z(ZqUePgNim>OPZE{%NwqE83ZRMs5~KH7RegwEzEGbY5$>`NUUK&oxzWSrak+pK+rni$KDp$D`Qj%>}^i1$@<$OJMAvdHOs#un$R<$%Iv8HwCPNj+ai54s_2iGL$eb6^Ok@uIrsnqkm zf0oN@wts*8>pdcaTfuv@PO|>1;~4)+-@oG#+rPQv)`!gEhCf-3f!F}#zQ3{;-F$ED~Q-o6y7OfhaLp1t<@=dom~pjqv>edIlqyDrS~QT!AQbj9~kRMIa1(D z(IlNJ#aF91Y`@w(u3;|Qu!ap(B*Na~oHX}>=oJWuZ?L>SYtC3Nw6X15y8f$#h7vr@rtk3T5am2p2p8hJ_!05FdkPfFeOl&{sn_Mr8xwS#ir}f_xeSxZG z{}j7hcreXE@REFS0^v-qZAx*ywPWP;Ej-`hho3!rc>d~j8)g-(vzah6`=>t? zn^MH)zt8^3{3XLaiIGs$EFO@blSjBhykV0a5GoZ2tHtAcJA~C9E*B?lnQxugB1@wE ze?au&?=P_br!73mnXIMW?UtC;b16EeLU_h_f-is5-A(eN-bXj}+Ao>?M0h6h%=l*wgCq}>aa}s zGfKFQDqLkWx=5=sJID^kFCJtrN<1=8ePTV{R2`DFKn+PeU8T@`V>)N&ez-!W{0QVE z?7H&HD_l`vtN++KgZ=>Gc3~s};}Gwhj;jvW{iyOhT58bD=bJP*tC0On>CpdOIXhn8 z%i1HJGtp&=$5YP%eXl7V@t*PeF8WS!Tpc@+?T{^7Z@z#PVVj>PEAr{FZ7=Fs;=j#ULHL#yq&@l@uIdZX%`fXi`Z|My{FrIm74^_p-Tq!$y`;+z_V_B}GDq z({dxT?{iKeK&?3N0@}Qv@U~9t+FH}K^~9>b^x&m%`W%8n{iGwVr@-KQZ=`0FhLPD1 z(GI?V_V6hqyw+P8OaU+~JqfS2&!OMJZ&w1?AAH$ag z8pj5^r=S!5Bi4%9D?eZ97W@o}V9B>vgskdf%_B$B4A#7gQs3YwLDLhnG~*w|>2Pb) zossgDZogswx1ApL$C?rTrj|>z-?y|bv0w5%SU~09KUuS6%6GJC4U*8^rVGP3GPrJs z%Pm70x~r>V^R&&=suM#jls`azR8@Yqlq?(1VAe39evZboQF|Q*jtKO8qzIyfq)4{L zp#1PnxIAR>PdOtupN@=<%_?dbDj!WO&TAM_ji%eh4+Ins+>Vv68cH2acT_!|dlQci zb@^kx-8aGqSEX6cD!cl;>uuImRBFN5!pnA)Xw$oalF(?7Tyy(>J?>KnPlvI?m*qb) zIhBBR?;IoVM{Dv5vU(uf@)9gi=|5ujyXO^WVRC!d%+B^M8@Kju8@H~l6C}0U4o;BN zwBm86K{u?;j631ZGVj!HeXqG6PMZ0-U~P5I!=AO(uZz}xpH#FKCw*;&?Ugu%SZ4$I zQav7ulHgI@z?pDVYCkWx&)$>26=r$n(Vlh0#5?(6LF)#tejk6rQQ3%Dplrn886N#I zl|jGM^aejbPcT|8diQ0kGI}(%X;#OPccWrQ(cW0x%f8P>D(!`%!=dInp@{>bQRGrZ zkxn~khmz*NPKOJ}Bf}QeIMm@b>4Mvtea8|tJ8N^Q)t#K9mn=QWSvDy%C>qXR09W{c zuPhimSueKK%RvYRrp=~e&T)LGo&EcHM-G5lVfRSh&pExBX3>F|GBX6Ndo$n!_PYmk z7A?(NGVU4S4OovIN%*e^6M(4e9?Zkma1gtv9_mVpa<7OuGZ^J=b*NB}CkvG>A9g=< ztt*6$)hJ~nXv^#Q?&;-+idNi3G%(5wt(QD@YPV3j8kHC{Q8_$8Q`V@UNq@FrP%l@o zHM9Q91)p4tMw{>JJ2FT4R$)UfrB~TLh)>M?q;Oo51VQntyr(Xif<@X54kqw&)BgWn zG_)yf6!YJl@6HM4kG(n@)|RaHjjQmDllUf8_$En)Yuw9z7)6N42m3iHO^!(Wmj9L` zl5OO^0(T^eSlhf+{xH&eFhM$aq;fF5Lb??ZY=cK!MKJWn_dN8DcnAaVPI!RBdXafl z1%EKtUY`uWvY3lw(Y}%wBC!EdL85(aU-()bsPUax<9nb+bO3Q6xgvUbJQ^8m*kF&Z z*tcr^@jbp(OL7jJxqmJmx7Yc!^I>OrF z=W*j)Jf5NTk|#hHpp4xdtMBU6U*qa@DA(NfP_C;}Xp&8*OpeBi+++Jo`FHn@w(C!< zn7WuJk+o3+c)Ro~hohx7H&%*zMW^y=uNyt^LuO#1dGOaeVqJFxZ*`D89)k~9V|;|l zPzBmE{Ez6xn)Pn5Oq^(+Bo`+FTuI5w|Pi zllk^p&5uA^yb0DKfY9=Omk6Dj<=V5G_j^n{LaR)LX8nCZ`>jbYzcN|Zd_Vkb$XBd&A{#;b zgOFW@)mnKH-g^D~;Q4tO1yd)O=jpQrZNcn(onUt0ZMTfLsqB2bv++=1h?#zzXUjCF z{33Roj;ACu*GZVijx&^;Xf+FNHm@*N-(mDWZ$#2_DPv3js{8q0=VIrBf9PBZ z$+D29&L9X)<(~p4alst(Q~u?5(8ssB!GfezV@s{YSr$4{h(pDuIFsXj`1Ih`BbDej zzrK0=qHPmr_xXX#JzM^4TNs1j9?3a?fgJ%c%9EE4cf0ECE&5$QuQsZCeVQFiT>ziSK?oV|nDR5`lp>Z3v%TZ+}}&OhS6F`pSiaC<*?;JW#DC3$mpND^}Rf8nF#CR9%cmA1H}PL z(5^@d@Ulm$H4VNn1ViREq|@*33(oCUw6HFV6x(z3}RT@q*1l=RBPWyYm+lzX2 z!)~i*n{k4r`|kdIrtXIwnxl;Bs_lRCp5WjdUA&M|c~|ZWZ8Z0a#5~3TUZ=#!FUf{7nhGVt}qu zmgX9?T&yk`JKRC9g-rC)2OyYh+++#;9m_?so>#lPY8?nxPW3p-3W1yM9I+!QZ2&bn zl!=pfo?Gi6rM%5>0|bFk#aOMpVlI;%bx1vW6!!`g)?#kN$YNxI0YuzMlcPWKp|X&G zcT;urC{ps&<+Ln6YIj4{c{EipFxodUtk3UGdk=pN<=oBW+iZ0 ziVb4j(^N#JU|C>y#SF77^ zuS4!{!&m&PpI&Wjzt3cRmj9M2ERxE%Ze35ZD6hD9&QmmG;|GQ*_*s+k%(TuI%0Kpb zQ-yihJR))H-mMYqqdU}S<^qz#iC0o{nBl1xLIs2ta2J@y?PGl8o?ruID@#}m#<5mq zWym2(e6ZYhIlD%(9FdQX&(bR#TYPLWa1k3aSt7_6Nq%^7Nv~%wYjzAMhy+gT^_1k| z`LxJ0Y+t4A(6{pR3Q2BUg`_49a@xC*1CQGYFd6OK#ci=HIzVF1x5qC@<=;I`mxQ}3i+OQu^654m0X5X@*61Jg*G3ho>sq2{_S?$>v~4(nON9(^#bQA=uWu% zd-JX%nuqh0>sdu{JE@2RDD2%26+?lB$jw2LJG1*jM~DLj`}O5(b%g}$CV{DK(`YSt zPlJE1jb0!9ha!ulpWn>nDTimy;yoRpg;JKTRvoqx8~6P4MR#FAchTkRRb$2PZ2@*B zptA&3f7|MyeA`&(G)b(BfvxNbp8vN#U|_9hL2wSw;K$nDDfg=9xaF9;*|f3m=F5Kj-b){>-sA z4=xYuKf^F`?z9Qbb6rKRpBM(iI)Wv9DNZP=S5p@XAPgDC5*T4HK2Crl2Rv%VV^)ZNXyp#A!|q2p6y7 zF!~-Pa)4SGx;sdRdUtZaiC4kVlI`#V*&4HHFJIp3T`PY~w_&#@uq?U_b2c8|c=kF!WOyz+L&PInI8=<9 zaTVl=Kel~==Pg6C+IFK}J-U5J_V&8$9U;_&kU(p~n``-yKZ8tMWT9eEyYB%k0mM;iCFv_VG*;K?~9GE zNfG`$xJLb0{kva)x~V?#T9f+s%0)p9lDSj&NtOl%OMZ0z%y!?CLlqX8hiqjs=GdU) z!*1#V1FMO}ZYjyXeM;U)_#{8|^+T9KU&*~t7#I(P7LpMR#h2&mu9UQw6N3Ag{a@!@ zVx~6fpC4Xu(o(PdspL=uzJ!2yRC5-_x+?jCw;X}85u#qg*O%|V0p_usqQ{E1Ekvpg zc)ouM-#aFqmoLK;@#`U*@&|h^5Qe`(t@ohRg(N`Fj)oHpfP8X_@L1sFBZK2a{A=64 zGOs^Qo_qI|2_kWp6~1Ea3A{ZyaCR7*6`Wc9xf5nhlbp>lx61xp%QAG5t2yg1-gc%{ z3w^fGGBkvh{kg~NFc+QR>L9l~PnJI0X=8R^h=o2&D?2dXn#F!6#3DO1)7;6$99%oILVaY>^?p;Zc|!nvoF2Wrw`<%)D@S z`JZ>wjSa*mCfYmBR@vASZvv8r$goO0ykylYa)4%DRdpyi5@pbRP-4E%0MsW)5u zB6;T-bY=O>#Vb4W%9+!fEF2C@VB_L7DR>86&eke6nK#I;?DLO5lzAX(S}8zF%!RD{ z6ftlcIwbwzCs5A%JWAZ+Mq6|Bie}n)NY}PJ`I4*G!?p3a;#NCTnB2ezi)n|n0qiAV zTr(eA+Hmy>S`@-`j% z(RT98JZl>$XE~d(b(a;GXiv2jfeEVZHYqz$n7s^iP&2mHIe|b486YG7D-{(vn;{v; z%s&DWKoiIU!?mzOYo#&X-qO1leLp?t1-tI>M!)>Ku<+i6g}3Djn_(kino1EOQZnW8 zKL^y`0+jxie5=E6 z3X3PV(tOcC398dycF|c30uZ%UR$QcSwF0>Mn^^yt=NbK@o@W-~d4<^wBDSWW$*~{0 z^T&DA$RG?v?+9TZsP9p*kCIIishz$M%}l7rp&QTTCojLYgPcO(+mz&+)H14-TByv+ z4&g%aQFBh-jL`LP2khlf4M2;7*BGRviV@R!ACE6-zFKg@c$5isi6o6RL3ZZwexz>4 z9cJi+ZhOTVfTC1zV#NJOIWQ3BY79n4XbQonEn8s2Kp!5>dE!Y>!wz@w-^wZQaQ#Pz z21&~w3Lr%JnE3+9Nl4;j1`&rmn4dTa5mzBV0e&7GcVf>&m!d9*1|8jYF%a_<*+f6~ z+rJ%`{*|IWb#rG_Ue|)pdTLL3xf{~sb6$>f&neH~qEpVnUF{Z{B2e*89y+Y3_pkEp zkL&d9pJeKPs;`(k*S3e$3i6;SMI;l=P6-`1~I z0Q?S0LB{>{s!yLX_dylsx?lYW=X%)Nto9+4W!AC*#DH5jIrGnzM8Bt@6WKA~!TsOz zFXbhGPRIr<+P0>cv(1kw+QTFa9WT^B^lb)6X4Nu{Nx!;zIheR%-@>u=7a$x>>aN?< zCusb%kKS>*&3pR&(n@EujfWPmc9P~R zTc*}oz-As?9ci8qPeWHa<}+n22lmSj9&1U0w0r+H?s~;1c55 z*nsQEfXx#GvNfeXe%rnq&kPe3;cDOlVZw!a1T>*bArIX!TU7_%Pe9kN0rUX_eYdvv zCw4q#V!(IGu;WpwfZx>NCQ1^}d!Djw(D(5K>IX0z#Fj#^_98`j5vU(2GaI{(ixlWK zXBIes=m)`PIozQ@_C&Iw39lRw z##|g6w4b*1O72#BY6Tnw{gaDdK1iSky!^hzN8-aKIJQ01VmaE=pE6? zeDKxn5cC{scjIQojSj>;qhu#|K3e;%Z=z9OI%;s?2KqY?P6?456mzm0sN&%!=$CF+ zY;dKF=$MZ3qp30Ynp!+DpsUZQ&)C3kh|{PiLfK&F%A(}YWf5U08^GRMs54|Ynut84 z_@VOszVS;Y_+s|e7VXHIe`eZ=yt_4>9JX#zN6Wep^Ouslx!+k%`ieg(nJRdw z#FmaHlce1iiENm!5KV;oHPe)fXnCESRS7DNm);fDOW zLYQ_dk!-l@C(3TY^_D3Am8;gIuG_jf4sKqr(Ygq@b*Zia-Do;IkPy7(z$r!kMok5; zk(&wRDr9L`Qdt9+On5Qql8S4s=F%Fndp#ctQ21EW#VCK+?B%1xhdLk4`~Vt4CfQcH zY36aulG%Rr_BDh=YUDgN)HBHo>1pt z&TFKwqE-Zt$P?5LAFU z@q>*9<}>U9xD<3qo^4m-C%XJSPODdDevrY0<&X5bJ6OK8lSTeB?7^+fe})^h(V%f5 zc#;hexPdUnj49vdH9!NmLB4XY7c9TzS!cns9%~m12jpYB_1{^Mh#^&Y#-udr5XqeB z{QtYCzHTv{|5yHXu4@0AEfvAYFrrX53NdO%1l~!law#R@k;&Q$)@z^>D`~6>sU0O_ zkg6^QnjS|LAD-@l4YXzX?X0{Q~I;=`LwIe9PlMb=FA*02;)T7E*e<~qMdts+i; zbqnzj=KSl0k`Vm&!>iHVxleHZ`{ni5q*s;l;JTD8Aoc$zh2L3T-*rDE=Qgny!T6V6 z<*ZY!ev2*)x;VXU173D{JqvjkS&|+=5>$c?MG{X|j8AzNZ7T9Q)PUlE@X_4`_J8Fc z@++x8fn2*^Ph1cHO#hj>`e{>0@m_+Mu0#6U7Vs63iKlFNoA;0Bu76*&2uPa~%{%C< z>(663>+rGzJU%$M?mUsR*$31EsvFIam1N#%hA&h%@4=KS#;|??A>qX1!ncZ5u6d5Sre@hm2tKU%kS$CfnOkE!#r*fFG zaM;7t?D7=F9(xOxuxR8#Q`duDD@!SAW;yV&BhXaLGB!LOofi!!JH1G&MN~N7fy4J~ zKN#bH1(nal1`#PKzZisd_(^@@MY+D%z*F{^Q+$-YJwMJh&q1(CyDgl>$!wW!>)@=| zu51f?qS)>eIG~dq_LQF=rtVd>QQF~IMHbrw^P zHoWVOvSlrp+0nsv=7i9;Ge2xq>YA{afII@!Pp#QuPt%^p1@yrOX`x01l^d)AtYGol z`E9{gZAXLgR9-!a?JTtDLOIm(_6(p3HkMDzLm~C_#+>Y+@1wqtYH_cwJ{IP_db)T< zxM5EA(%CDbTG%`lKuK96=zvorJYdHuUcpq5zv4=IMG`-#nh7WJC2# zTD|B^O0Fgvbt-USITlC`q#V>a7N=Z3pJT2@5b7+fvnj(AsetcjNoj!-;VbP^T{n7L z{OME7oR;n%=o%T`wnntgzN~d8M)vsa$%cAwLPUOKXGi&u(>s3DBN4fplf8sRQ!4yM zi$3@lF`>a=GGk_ibl?vNztI><<6kuVp(wt<-6Qtzc1%pit@zsyAGq}4-+Qdu)JKCC zuU*{MrYS<3tztcAnXfY6?&%N9DSpAJ^oie7{F;qfQ?|2Q^Qxeg@{wd+F2hZfpQmhF z9ETbP%F}r$Ll@-ngMCqeo-Sq?-39;x*%0`pKVDW zcFvdMIVWiP_(M6K!37H-dN^NjE@--b@T(cQ!7nXxX{+F;GfoFhH#R(9Ipfrl(vW4_ z$W4mMJ40VDuHO<=A=Yh|4+W+6^yzWK* z-R@obi_fi-slVcf*>sOe5o^2Ib?hVXEh*OZT{HvDVvzOi@3uO``U6V|Vm&jx{r|rq zglA!I%g8p|-;jo5h0!iF$Z5?7epHRl;SwSrxpN)S9K;Gku{Va0c{~1~Q@-fN0mU3v z41}BH3k+wn+iV|t4+NLIU*5t1upoPAA{G{7o*{1xH6K2v$NdiPj1}cXC(_61@Yvv| zz*~c_Ff;8Bv#;e1vqMRL%-lt6!!ns!bg+uF4q=^HG8|-L$RIQjdth~3vyeXL($$&O zI1MuZhmN8tZXE?vJUX=li@L5D3ED0NyqB*q+2Z0dy2xDS*q#+o^!4q52+Weh4JuW| zll+9&;^jx=spmc)n6TW*1PG@HjECwl+wI@jPxPiIm<@9l=@dUp<`h3=roWd7&CDN(vYEra1z| zoWT`C69e&$HJ~sd4K19e$@uUi?bVoRPfBT+v(1AoT7mhHoISR9wDDMFBeqgl2rK~|l zn8vq;r&I@7^B&d0EyzsRC^ME%+RMdmF&6dd32K7EROk?Pw5A5<4I zzs>RyV7b=E*Yi2&WE1Z9Q>UyJZ&GP!1tkbqYdel`>sayVJuCK z->Tjh#UDfG(#tQIR#N0U4MCL*c)0Pw@K#M#Vokgn!%z%0VYj0HaOxa3hjSJUdbAhWE6?1*1=9h-wYMFafXl7=RM>O6U|_ zf*b}#W`ua$N$?!3SD zTM+twxO!z@LpFQeOrG;B9{V42m*w%Ca7QI-?WR=oZ6}F6m&cBr33(C}NH`oxt>h<# zF)cB(NbZ>jU`1CSjA;PF#o2;MQPJipX~U;Uo+favVHqOI!`Afy;rqcYybNsitl`+# zNH$KT!QI#fxWa~glacUv4BSHC3e#$z9QBFbIf}4H7S~KEGnZL7E$He@jlnTZ?{NLN zpK)9iUk3CzMM+O*$$8P}uDYTX5NbJPEFLEW`2Uw(oUMP1XN-{xNjFO3Z4#QE4Y z)X41|+tSNR$2L?J+eTkf72Em=k8ku7F6f=+7c;oebN|)p+hl_|td@V+IV!e~eK~39 zIv!1mef#GYeSP<9K;yo?^L_H{?Q~FxUDSyipJL}eS5S$Gmph|>ekM9UN5g+`J-2=_ z>i-qUllmc&0v{_d8?!cw@2LqBFvpD)#{+6nq@GYVR*ruSql0B)jtHT( zn7LsN2Xfpk6f-y?D|lG3**wLDD2lPoO~I57HdfM1gfTu=I;~O4EiA5mXO=QY*y^+s zcDvsa8F%)(@ptEL9e?-9!J6aaV|*9R4gF1jZs1n=lFF}Lvr>Bfbl)vr-aO-sDDzC# zk_w@p&Q~p|!^gk*MrWz+F_+^R$GoOT`dQ3`M7sIP!kM3c1?+9n+LJpVla^cwdH5bm zYp!(e{M^1TQ*(Rf&fkA$?)+umJMB+_f!jyC+a$1YPfWPzom_~u|5UQJKC$ivAU8fq z=eJLe>pwi=VZQ-y_31zS)hFa)An3W+>Zr?4f-jDwfQE|?o8>(w0nQdm{k=<@?M4E| zZRj8EZw1_TTr0iR=`pIiw9R&JkjJ9TD$#Ju^nM1LJ2Kv}1lZiKJxVgmbg!9&zsq+r zEHe{2>6@Fy#Tu54%Xik9s+(;aI_`#1tZ4i=NSI)70s+^=&Z&RLcwIYZos!PLXFRi_ zeTJQ1^C(O#XijqhBEj_CwDRAbHncsd$pk}Qn7*3_V#Fv=OlV~o5@=E%G{bC;QJU>> z!?Wq%j^;~teE0DDdm(5i-=vl;L>7XElLA5Razb+u9|Zzk<;966g5kS8v&w)r8JHN+ zS}N+&d*>;VPxQK5ywu~miI1B{a?d=E{V#X{ES+6M)HYZeVA%=S%Rr9=7*-bXcSw1EkWZA zTNa@8GLDG=S1F54MhP?i*JLc*AW-*Z*dL=&?Z@n(SV_|Z8rq8Ovs$++ zkVK-HTSWZjkKhj)+z^!m1^;gW;D!U(n!Ldu14SV5L_Eoxdg}9kwR;uC&0pnQ{q(zP z0$$zzZJqVZ0_4oUuE(tbuEkZm6osVsf;K>{ihJAl=69gZ>VF@F`0FQ(V%vh%MN2dhk9qW0g!Fae70C80@bH!XB zB5@&Vm-itzq>ySflke5OpjNSgE1JhsBb`b(fI9{dg1#SD%C0~}a5427ROZ#VdNR-k zTu+&puAL~w*gk_W3S0;Lj8g`<96D4h61x=t$JToXM0KX`-%1xydPflu6=xzC@ z2ie?iJ=XH5Y<`hQ7_mGQsFad$B%|Wah$7r2x-y#Fjtj zbgo;`NRd%91NjplKE)1QlJH_lLa1T_HbN~j;cZ{7jH+kWE8Es|E)_q!URkk2Ewagk z(l#NPp_uoC13x&$hat}WI(wBf2ZmqyFOeg{c`lISMg{mDJsO^YFTB9cFSk4Vb^qzh!XnIy9_5>-7XotG^H~G6RCy3>OpU z7Ywo9GjcsI0~6;=3>^xt-oBrD{eJS29-wS{GBCtPMs$HtV>Edoe1sbC6)qIe;NNyp z=Jx63U-)qTZU0`Y+4;r9iDhcqWT`l)zaVDcnmp~DLt0gl<4clv4qd?V(COeKts3rE z&GpY@m-s!?TC(0r3s-x)jq=ZADjcJB4i#KTjvUvjifBKx%m1(t^MJiQm=`E_9A`N_ zsylq8dE!pw_{kdXM!5>daG_&V;$6)MIyaBZ>m9bfjRxo1@OG=EvrG=wF^ z$Vq>2sQn>G>EXpG+RdH_*La{%qkZ4gS8g*_shgW^e23Z)ykV+2tzjiJ*rO2IJ>_v% z&IhaJr-MgitwyKyL*FBUBPnfK_3o*mFzjlZ(hp6xfGdO*+Vw=jP$)pkHJrI?IDL14 z{oVM>Z^f6p#n4WKW<7y5q#nKz_(cSF0oZ!Swwl@fQ8MZqQ=f>0xp%D4<45o!q87YB zkskI8-`>})@&{gf1>*if?G=O3+c@t1 zM(x?nwxOjzch3Aa%v|`X-FqL~L0?O7HHT_ZTH_bB;d(#+CtUY& zVuZh)ZeT9#aY1pU>utJuivd*P9KAR~AHG-OzziSrE7-hbo_{Db?Ky~i34fHhgQEYC>~R94p1US!oemKI#yD7wnj zEPa$93gn=Ya)y(IpNyCcl(kUU!kywuv*I`7+?Tnz@w6&_^O8Fr(!sAwq$=jYZrK`# z)#$*AnqTtv3j|zaQRBdTW7d2YG=criNG7${sJl0+$e={Nux4pm zlIkWOnbK{VQzi?ZCm2odn=qQ*IH76r2yS3ekX2Ik<5R)@$c^fau{+fgDhoDlLFOSJ z&8gCDa}Evfo4DKd_lk4bwk&o}{qoAIH#dZ8-|U_fXAm7#QpoO#Dyf(Ig57g5xa8_@ z-x+QA<%S; z2KxD-U$(QBe`DL;UE#&RL~sM=eIMwf(-`mrMDC7*jM{yLpXlaOh+4o$qc5amq!A7> z6^Da6nuhFiZvNeAVzCg2g_QHPY0_XReC?Et)zsc%g1J?c!vG~E2wfsFtagUL|Ep7b z_QK@>zeLIJUo10x8lxd^9bTgo%T?wHmhDWlT^5FpZ)ch{-7X6Qw+B6S`N-M&wH3Z3 zT^Fa@>-Qy3qcEd4qPoYXvbhLt^oX^0t;X)sy8Z6u(X7aE{Fd(M8c%6&th_eOxae^8 z)VWOercGZq!sU<~+KsfsX{KL(&@W}B-=~1gQ`Xc+U%aQxB3ihm44v~jsh!Ruy0c6{ z$a~7(!~a#hy)%N>CWp6`T3bM2vR@8EI(@6brkE3#!UhKmOqd_cU?wF!&R^|m<>+p;M;Tg>BSIbg@Nt6 zKQS{#1OKh0{3GouvU=T%mVDDFI+AeZMsyqZQ#B}|9_>mY#=b@9S;7`TAy$y8gf-55 zi3a8tUSkhsR#D?~B~q@KNpYjXq$6XosYPjsyaJ@AEMM4uh$v?qs41VIzt5gOZyu#s zJ`fyqELR@-dB+;^->h35JRs?MKtOfWoZM;tiwT}IC3hn^h8aD5Rcj% zvAIm|b0Xb`cNv}x_$L&ej!{dO>F$0>g$3i5dy(RL%nE3}aF2W!punLS45t!J8N~RH zga--Q9=sjikej-<8sp6ZQl2VpJmh)R20wW)55>%qf2pD1fQTy;3#c8;T}|&#K+|PD zY!*-l`6vcDy7i2CJeZg8V1qJF5bp=Ruq6FAZ{F@?K~wS#8Jto$mGaoAtG#-#LG=~R zAKzE6>X1!OXNm8y2mT(yUxHW;ql7q1rxbJ%*mH0!mfTG#C#xLY(R#5%myy0Hg$WqG z$0MPlNZ$ck7N=Z;jp`)ee5sc9h{C#w53i(A7%#KWSDb%;5jsx*4Hmuct05h^hNiN`PVO(?#4a=K|QF}&Oku06}euE ztcVzapAv6fkECt0ga&{-xtY{jX=PyB4T#_N9!3v^nkzv8=vSp~ob>cyc}Vcp9s*lH zB~aV&2UMC#@J%n_SL$la)zF*ngVYnfm})d(tR#|BvnBjoom_ElF5MI<`p8x%4WMb+ z2iZSszNmRT7rXU`Uh^?Lc*m#56~Fn9!<&?bHC4XCpRKCx>mOQiiRk^01_g*iUs} z-#skZBjk{=!QZQfkC@#f=nTPYCH^4qT5MQ4lWiSz9YS}$gXBjAQf1v;%r=8wAz0stvLgb^n&{PKw zVZ#7S);=E-GxIh1?4gD!(XEjOQ+Fuo^g5)3*H^xTvGj%n=2Da$zPuO9Md)MaSuf0? z`mm-rE=-;zOt*yD1$iPUNyJThBBu5U`fAWD;-SHes{;`w@;l%tg~Nlg1d%(ZsKm`cg-eG1P*g((SsB z7&FY`PJVV^tG&O@z0bn7TA$MyFun4`_Fpk4O$Fy{wyj>H^Qgks&{OL(fRqe%`h|1# z8;onYQa0lFTz!A_!S4iv!LCuN_EB?Ozq)cgO6EE?g67io|9#3tqxXBYzrJf@St9># ze9G9~zr?k{z|~*(vxC<_<~%BB5aYSZH)9;$L{!e>x=q)`**uD4x#b+1uObhElVXXx ze~~f}o?V(p>nebP5<$Lp@fSve=A&ejn{t5bm-KnnrQja^}Ev>^3Scg&FMJhT)tmPck6cSnN*zCj-_{+8mLc6-r z-O+FK49@|YKYD2}Zxe4*wr+Tu&J|H}C3a`aKrvajiF=tfi|1NAYXL{D`J99`i!-Zv zw)H|^B{hltEahh1Sz_L7o?_7~qBeao%ddP@bI&G=r9FQxj-y*fVmmls_q@v;5?dIJ zy4FB)t7Z2*?;x3t?4D<>L6Z{u^J3w})?#U|BgJmD>Ad_}Rk$m<0*uG!pdmc2TA7)f zU#mpfzvHTC4zD{h_BBJ)_Md7`*w`@!!ZuK130@te`>^3jN@xr!aVbxEK`Cw+A($+Imxmq}{dmNuC9vbQGi9LY57Yy(xgD?LCRUM{E}l*&uAsy66k zEs8Q#UL2m8wFpT_j$E@ifyX#+lbxmNCOhqQRpu%~6iwb^bwY|8hJZqXPnNBn9(jU} ze{sr0y!UTbe_iItS#B3X{~-TgeKT1SoSvl*UCv{=w0_q|dan~K#QRwRt{&2@l)Vmc zs^`%a<>7pE=(ix&p0pA=KP=!pH~3SDndY8%uFzrvkdg9-YXy1GDIl4evEUC=g+{2( z^+CuGWemCTs0qZj_?hETx*bXf4_p)QZGlvAx?cSEvfxdYbfoJj_m40=++@^v@O_iK zNctjZ#Sfb~HJD4fHRLn$2nmf?*;cP2vkhj5AkW~|PI}g|JRA!HJv~`WUc-EMe2v7D z)2wuvyXcn{?{*VSzHR z?qO^|&g1jo@`25Ft}+7Jb+hEmo+`8atgbbXKA2t8gqVVa5ctCmwhfX+;D#Mw(67mK z=`WtWK~W+(Q@3Fl=rYm9R@UQgb^g^hRqGcR3+V*G&-4ws4DLBA_ej>wb(y$jI!0J zk+nP*_wPsp-=VG;+ft1hxt$e;F+fK6;*NY^Buac00^RMKqwMFE`6Uflp6lYREm0bn zHD1_b?x!^1ZvS*Go|Ix)Y>T~z*A}bN)1s^me3b^=3Y()=s@_l0bJKY|_p4h9%Z1s3 z@V81007{(8dSiBr?s#r?Q>g*_v);^&!xqDuh?_lsYhmY)T{VU^%^H4tur|09UUPc3 zs{yZOUW1PHkE^!Kn>C~~G&j)uQZel9iuJ#g;>IFFhP8QM^N)Tj{5IdS%(@Q4FQYeS z#-aSeP7F%v_wCqYjv>s>p>@snz$ zu*JjcOU__vpKA;B>Uoa8qzV9GO%R-8`IjcS?@}JWxH~Nk2v&r~8YTf%Lu^+0G&RZp zhMw+CAQf}SDUZQ<6C~->e#a=4L9a5VdeSbU`Gsi!1t^K7!&_z_Y{VGFGK|ak;Kz>( zZ$B=~R^HC3+T|U!>(kBJ8nCE$q@{BML@g%(mM-jioUI(S3qNUQEvLq9)xU^P`+lE2 zx=LS!BPb89p|o&t`uL~APy#9fp5)bt?_LE2z3vB^k0E2L*Y4Yd6Pc0Szztd*kxpfw z0b`VT9)_l%9n6{;dzy?X)Ic+waTM0dQyOS!|P zXMbFWA}TrB#mVBVCB?})S>b&%98=z!a{>lABatqaMmu;#dau&K=oqeQBa*VtWkcoJfYSIe+*` z&LlI94ZFR&-8ivhBE;b|=2e)=7C~UUs&}5tiRSN2UYqnyGsh`%z-nqQ6?1Z(p^5O4 zJK!MklC@0plXh&2SvVb%OW4|-m+AN)PIOZUHCvg4$O?02B+@g4U`R&BzsX?qm zW`d3z{(Zd2=1R-V?iqW|-O`!6e5z8^A0g$))0Ge5vMA`Ve)iePJqMMaDfUn=7ZcY> zQjze#cdDn>Z~PY6;2}&$($^p~xlLn(dn9LVq?%lLOl;BcrH4Ynj*w!SabjXd)6qr+ zwp-SNnnNjk9OhE_Ek$tAQT!OpR;f0ZnV4jst65@hj@`Fo&>{-`+@&=UCh&a8qH7d zng2Z<(44#2JjrCtYeHIuAlJphqeNy_k#Q)_l}pseQqoxIP|}zTi-lZbp++mIQ=;3e zpi;>gj!aY<+H5}6dSG1)oB$nN_o7+AYppyuw|Hd)I=?WP# zkGONoy4v4N&ON;{;?oi<7?ezpmqs@F@&^=s>DMAoNY!?f(vK&$ckB0EemaQHaKwkH z!DCnRGpA;JT4sYv-^+Y2~~RHgE2g!4#ueU#2(P2=KYd zZCUtb(R~|%>YfxMYvz-@9R9?^m2BKnv~_G>4E~E>`qj?g4dtT0*RRdcDCWA36&uakqaP?Yn;aHY za^vSKM9xmL4X>dh-MO{!Occ^rMPcWqc&5e3s{s)p@>1=wS-Xm(Y-X)x*zyr{!|)IP z1OM-S(Z)ZnbBrxbkbk$|-l{Fi*1yJ6IeJ%d?HTFSKgt%hA6sx(@J+zgo3sIbUImzN zlB$#3ihFnd$7y8cSt0$7u_Q4{2u9^V8g%$Gt|UCz$*8KJYQS4(Y)tirVAN>-N1lHp zEyXa`YA6#_P+xFENoI#Th2R0R4Lt*{>^Kde{$bonkU%Iyw~&H6f)ppEe|!SkhpUYp zN;z#TrEud*f)0OhxOar2oJe(kCFA}>|-T<5R%eSKOMLLKCTcrPY5&t|#O$t8_eEX_&H_ZfBz zmozDzl3QJ_lwv#E$~r>{ifXh7Ol1TgCD2S?x#||aJ*LpDQo{oAsOHmsN+%f?X$qOw zGFXU69gWEoU0Z+R3kyW#k@=Hxfa)sUmCQs2m z2wooZkq^5!@0hA%Fk4a8!B~X*j3?(EQ@&Sy%x9iagHdjL*ubHddo?3zd&M`$w^Z*n zYDg4sN!wdo8P8PqtCM`)sLFpQPMND-=iZzat}AEb$x^QiWh;kgaJ9N+^ec7c*#Y4y zV++sDaF*bzukGIGf;u5u1g^8HqrWSL?L=3RDh$KcC***INyXAyWu2eA#(L@=_TL*} zE4g!YZV)E)^E=V!k}i$0xt8f{e=J*c{PBzIo^bL_@}kJ~x7q2@v$ZPpXR(b3(vFAs(cw;;au$?_F%NwP0t zZRLi}?Ed?MfP!oBNY-{r`qb4c(j)Qz?I+7cEuw4fHxf%n5#9|VO`X%mLNP51-wT#+LQ6K7Sqhg22RnKu$8~AdtlIN= z;?fQIU0=>Ez85|BG%a;o@3K{jIIG-v((C)&;=Rd@a;hdta;hmW<$T@Lk9Z5GtdGd4 zvt=hodDF!%v#>0j7W3R>6^Bex6knMX2#zQV#ga(|Y{*@wGDoe{J>SqhU#Ds@A*8=c z_rK?voGS3w`R)vNsqeX^suh$lf;AFG*jh6jf1Sd`{)Hx^AWh59{w{TbSK(yAgo>D5 zGix~!QnFp+C6gzD@!fI1b?@JIJ)XX-DyWLQ7L|T-(M}e)bWwW6W;rGJh^~{5o0K03Awy!`c^Uqoophx5sviKIsYqC)mHC^y3 zvVgk1IfnbT>BmMWsv1Wq<`~1N+peZEM92U8l;5_kC;myg8u)KBqNfZ!#i~GX$EguC zO;ke}c{-%cK6=7!q8-o8_9rp3*i_|*=TpJue|X;cA=V^9hH&BeLd%H;!**%X8ku>S zpyzr`y4-C72ttg<6|QHle6a6Ys8jG74qr{Khb}_d&ca?VfQw#5iMINdCSUaucSC5o zQQ`vgFJ4;evezIBJ#6vS$)>z4F0Aq7ioarttkEifWmV)tMX8%kC^7DP#x`$js)0d} z=F{Q<`6-`+7zp(@8vEwG1Vd88*w-?7R?g-}jB}B;dn^%(anvSIb<(Ti!A~VQs)s8^ zlzWe}$b>qn(V9mXr~S4rt^09%063=uY>bD#F&?vVdL(e#C+2M)Q09>nQU$RXTrx*8 zc1U*ydAUrvWQ=-kM{DN&od}ujyFW>0i%1wuva-bKgJVV!rD&T>Zdpt=M~o%KjCu&O z9|9=t55I0Be2{)9g;6ClkR+7vvq-Isdx@(g)dAwm5kp7_1XFZrL`m{Nv`hx3iB?t- zJ`Y-F`lck>lEGtqk8Xsd8CEX#yu==2Dp6(&MwHCAB_y^xXLp8pkoQ;Ah#(jYI>XG! zYdV^sBTCpG#Mn?HPQEUpo*wgw4?~S>ZdKYy5uP!N8QPQI@7JjY%TdG$*VzQJ;#FNC9kzAERIPdDFG@WA5Qd{gFakBVSJO&N>#Oo|*JLCCfJ-u9kG$mECXmj^Fz6E&YA z*F`xJzR22iSN+IcOhxX*TD|CmH*C zX}a{9HbwYN2TgcaI_S#nXDbc!?xwHg%1;SY#K|)%=q6)XsUqg-4GThZYy|B&dPAW( zKIkyww#VjNXqFH4ML(<6; z4J=`N?8bl-?L(#|MizI5 zj}`gi5uyxpyqLE?s#;ftf68{Wr*WTcf44l60~&)579zXn)N(GHBhBzRxIFa1Cd3J3 zg2@bVTrgB~Ouj%n_r|HuDAT8X>s@{kTaT?f$qwz7?;%(U7GKj@slICGoO_sC0kfUe z{E;oYpQ|ubXOt`$QMF1f@hz|+5|;jfbI*~gX1#azb?XsSzZ8ay==dL(omjtKL2WWv z{=8*4{J;5m)_2^+&=NsYlq|M+Ae(Eq+{?jwM0kTO8;d-){fstkn$(!gZyl9^Sxg-EyD~m%4a9hC~M3gFMRAMrY1!V1p`oxh-Kq|DL z=IO#whqv`#UMjRZBBjO=_pyxegC-RV-Kze^d&a?&#@K_-l`&QiSqs8)Rs+4Io#;%V2Z3zRuZTsdoh_hwU`w$RO~4l7@E?K*9N5=Uk9Xh5?m*Gh8n z>1MmfyC3gd+ft=;DeKJnFj+U(A00eB4SzTC+#Iy&nnU2(4?%4Cy$q#un_NHdeo`Fo z{_L-K_hrp^+mdjb6o+wQG498b2AXHKc2tS_ot;nSz6n=Xau2ho$H?__6+G%#2j%U- zs-kO&&#W3q^tB0Z|D8zo7;lEF(`zIb$NhVsq{y;5t_6d~Lu0q@>w+6{lf9fl zr-R@Lpn6VwIAXDjZ*S%56<^;TK5-yBZ8Rx9yKQXwKZ@kB(#h`CR%@LrH&+`!a(=k= z!&X9{Yv21m4?)toq!5dkvl)g<<3pDGBA@DqM|d+}&iF93Nl%%p3H2sy)3K}toMYk; zi_`=G9$p2uxo99htWX)Gb5{Y&IV9Az>gi|8_K0@|MhryB{EeTJkyr1Oxy+PVUI_{P zpz`4<jd-SnKgpi)>-lksHd~UTrXPyMM{Z?dNX{;S1AI zDi<-hlXz}r=x7rD5%6-;0E}zX!tuH3AN&{2u-wt{KPvmWalN+Mq<#DRS`+A>)xYkA z6)zE;L)E`heg8_u8tys_U7$qH`ACBv=a({2VoD8**MWsYjh|0;D^K(a_h(Xf@b}kB zXQR|^@IJa+uI%WGct>_S&%7&lVYhR+e1$R|@$-cLcTA%+u#r^74jCsiQKuKRZbX%S z@e=Yes&knn$2_)K=`zzWZGwYy96~DIim6eH~0+->b zBQhMR!m_v*@jNpk$e{>07oB8y?zre6vphvDR{YArnTLM_|MlhNXTUDVu#_XoZPdDd zrFBcOa%4-%LZ#Lp3^oh&2Q!Af#N1rx9i?i92leyxkMRGg>OUFGg&>8>LE^@m{Abal zgw+78Qt>!j&FHdS?}GGI6~}TI^235vT?BTJDPh14LLQT#S0Jcy5@-wa>T*@9@HAiA@0G#Z!SLDov&r=V^m3!7%5g-w#t=uR&97|I>)jgJH=fM(Qk$ARH4 zQVeK((sKyhjKKL`*o44({|-fq9gFvau}XvoBCRgoe_)if3#~i@9I%b+>?b}v z%jn#>8v)HXq8A=bRzT93d~#e)x&3>;XA53D)c^3_M{XPvSb7qke8oQcM5*nsZQVAp zY2BhLaouv`Z!#SN4n92YBoo)wIUr%nzUNJ+h_JlpD!vk^3BjCS#XtUtV`PJ^)l&LA zN^ErePs#rJlK6-5@_m*IXV2`@&yp+=PfLni| zoe?7LG=D}}BA+%p%n611Fy~$Jb0{lK^Q!owwgT1b!I3Zh)|u-s4oQ8yOtU4mp2=S$ z$h^!^0p(QnNPjFn zV}doMKw64J&f+%YM6D&iR#&_0G5tt-Fg;uE%Rh&S8Z$@3Y>E;bktv0UDXxXBJEn03 znq})vH|N)#>d8OVg-Mu>FJ|@%4HT&f4_DKtwUsLuX`JHM^{ARy)illpvnz+hRu}D+1#T|Wp zjz80om$`DZOEaaXVo6q)$%?oN)>0<{wdsZK{^yE-+)w9(70H`xrI{oYbiKRF9!f0GB--T7h zt@=i@baPs2b!zp_xn^s8s`{(#Gv_WoUb;E`q+9j+v6Jho(9Pe(u5_#Zl%tfkQ@Q{0 z--&M}K_7EgZ;H+NEH>2FZ5G~#6PY>T2Qs^5l#2JfY|`H&Y%2BrHS&M!_1>9oO-|LJT<>tZcg*Ez7nx86xskG-|BF}6#E-xqc`aP3ZmrnO%lHp7m# zZoIXWra&bOoDMvblc+7EDAMsiBl|9sj{ji!`dVHR>OVuD?i_N{Qg@{Sgj1c#S(k^e zyG>3`AK5q|W=+ROyblsP{(}59*@h>6t`&~MM<467w4^rNe?smcA=v4NnTHJKl#D{0YY8f3PCOLIStPnl3i|{YRSM&45FT}1p%D>#A z%L=~+jx7mOp%6H~Jo|j4PbFytkU>W30VIB7EBRNPRnq7_1m6$J2;+9Bw{vWC=b7uL zTd`F=li-fbcwnC0Eo;Dwm_%~+?ITF`ZsoSU&NDgVv?I@8yIn{2^u!3OgX(F-x=3sP zXCkIg+qv7uZViTg&8OPi+uH*CP%gINXj|IP-0d{0ibttTI>{Q{Jzf8G>F+OQBDa^w z$Vd9fCEV9om6~w>#Nu^t8UXShmbS-qPHL)!Y34djlafpKHk3sBxRpdFIBJI|MIrZ{tCrI- zY?1*Y_x|>BywUdKTufw#J}oaVjbZ!P*Img9_P->{M}MaSI1s?wc$R>H_z0$Q0P)G1 zvF%{^J#_rPPkB4vPhsPqU+6qodT#d2FGCY19TR8UCKAi{)_{t~q|6NjGRbr;^l=@! zSsc~(^=Q=K7BensID~Og&lYkc{qpJKid4DGVj|n$(8t4sFlMV}^6=pui5fgKnuPpv zL@e6mthG^%iZBre!@P=*h>MRdp4%Rw-+H*Q$c8`6YCk-2#>p#BV;CC?oT3hA>pxsz z+irW?GiUqZM!G*JyIa3oUxHuB^u#c$H7KXXa=Y1WB>(0h@tohVV&?ca5-Ns{Y`@$4 z&G5CKxm&4by5eoO3NR;$0H#PJ`y_w!G1RuD;Wi7QQD8Us2GQHA0qNX1Dj1SzYEW{x?__-;ggh@;fi7JXD^5w`6f-7+>@h^zBhwPH8%A@3^$~7l z0+aQ}d?vRWzxw)Xc;v_`7nOaN91#pC1mg=k_;Rp>7nFH;%s32Uy_vfec(U*nXqLW-Bd3P_}}L?0bkL8mDZ; zCMhN-@NKT5CJdWe^>T`J#QR0^5BN?mGD-g7^>qCd+huWnl|nwkvysPR=w^k&Hov=V z=j@O*W7wH_Sb%(O6BbI|b3$C1KwIU0&8sQXl(&r-Whcb=^cy60&p{9HJ!l2L-D;b9#x`jyTiYUv z31K`lxl~zAbS1S8UsDPjwJnm53LpmbhZwME&VL~98h`f3GGwy^7DZOsx_hHEj*u2} z5)X1S19w(#vu-Gj>k12})xgd>LB5V(T0ijtBeET!^ zdV_?$9e2LN`oOl=hsY!0@yMfI^Qw;${~RYXME*#rlCFlmKk_FKM3GQ0)3P{=eq3f^ z%s82qc|{tNZkksUyZYFsqp8Y$$cFd-Y^93t9_x@eW!dmDC0&IcfpE)$GWnX%mYfUO z^Nsw%Al#e_28v`*`wP!`c?Ny2y|m+g<%|zjUh;TZdC}u#Vfz1-WG!A=0%8eRCvp#R z=O?`OD!bt2Ric%;p+u`*u}JB({TGJwmWkg)ZfGm`QZfD);+=qP0{ZUx3(@1xE<|3N z+5h{Hh6 zT^+kfK-5p~(HCfbvd!jdX0pwEl=49Oqz4&Nr@-DF<^R|ZUU&l92_bj_?iFPG>u#?) zLj+Yy|5zev1V_|!Wn9*pRm~4$N#jY{PXwnSQcbDcHor}iG@!JNcQ?wEx;4s+c6igvvk277bp?cj+3x? z?)8zbX9Wyf=3yS?=dkutj|HU&|2!zvcl2#F9R)D!<1%bBEE%Yf8SW~y%_%71y?dZe z82iECKVgKzM^*Q65`_#GPlQw!-bBq9y#JfzW0J3~57QXS^gyuz z9|qmaHuLUt=6Z;wJ!!npTs+IXTPe9^QJ>~Jwgw_ABLl2Tv4E9RQ%D%E&wj^|~MCR_5dC6e3IPkJ}@F0gJi=`i_AKgeV>W(bp#P%4>PEfBWTWpapai_^0k#A?Aw=nWykO+%nC%3-D)INmvokoyPZ8 z?lE6!Ja7=(erN4?gLaWm?ch8zl26$&jT|sCC?VYokWOBly)mL{eGkp|kp;A~BKP8I z1al=lu8Wg6mn(nN`Q5o(?ZQUqfBMW-pmg1uX5 z7iD-EA>P(Wz#T1OAt1g;r6jz4E8N;q*$`4kb?cm3?Kv&rB5b~`t6R*YJGv8#R4y%h z|7QRAX9y=Ot&9HdxWkuG#~pSl9e0S>P}<dkHLeIx4m+&iyOJ;gD`J zjiuPSk#OKC>~^b{+swXS*JO63CtJRRymO>F~98B3*k0aXj_({ZP!yHb@kv!z|7RJAb6 z9gjW6Y&3W6^poYZ+3N?+PP137DQvba4Rp6)wle*czT2PatDyaS{Az!j{di&j&3#Bq z%Gx2`W-r}ywMDu+EWAWA8rOew=Qiu{!WWKF_6@~BeiG5meG>jaLj6}k`K)cadY-$1 z>8t;G?B=%8{~Q|KedXGVBE9IFpgA|(?Rv8I<~DIyYxF8&@P!}Hq4F$6Sw=;h2{Y=D zVhIpmD+d`&ILdq45f5X-FP2=DS^E8lhbtCXU-A-Ht@N5WG2=CnF$6;D;r?T#4q?8^ zrCb1#K9HXa2fRJ}ToJu~BhbFt;Vjv1{oPo#R}SM$k^@Oe%S(R-#1pN&R|jw->!rOP z`=t6eC_sT7cvu8>E__|m$0$d>doqkxBe5p| zGeQ$qSyor1sdaApN*9F*u#z^oPP;G&F1ug`%xd1eE@dOB}BAFtDx)c|H@GD*UX+gwxfS`Zo zP}~j}pm_5+5FlEE`?=2=iB#WrhT7A+tn>X`%Ait)#o%t+}LCbI$+KkB< zrB(UNJxfNq1i@1YdnJ87q@dz5y)NLE@VO9Z<`?LvC_)~pL}+zzH|4^oBU(q8%P0=- z(8qD1vmkjprrQFWfo%A@MzvI+!qmN#k6?hJtv-&?YP*z@O+aKWo!G z!oZafSI|&j7x=kqPjIDbPoRw-_s0l7Zr1}9Siv!rX5)nqnk%=#giSY0tm={C5dX9c(v9aORZHKqaU1g2_Sp-e^fL zeN4puDS{gM|!DTAxR7fSE3m+AY+ξPT0@yCwoIx^~&Z@9yp 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

F?MOIjpz!mVIKtpeU8a}@_a+m`Q8LodV!KdXRr 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 Qj}VwlW_(@@5C>lIIf5b*kOV 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

hoB0=#Bt^qc?4}bGbYC+u}ie}+&EEhL*Jo-yn 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

m{?RHa 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 literal 0 HcmV?d00001 diff --git a/Static/sounds/engine.mp3 b/Static/sounds/engine.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..e7ac6fab2360d22f68b1978d36c70e362220932e GIT binary patch literal 33367 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 literal 0 HcmV?d00001 diff --git a/Static/sounds/finish.mp3 b/Static/sounds/finish.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..3692eb8887ac1ac0d8f0dbcb2c447cce6cae4998 GIT binary patch literal 34903 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 S1D}PNMV!PD7OI&}dxHR9XLDNs literal 0 HcmV?d00001 diff --git a/cron/auto_period_task.php b/cron/auto_period_task.php index f50912c..d1c2ca1 100644 --- a/cron/auto_period_task.php +++ b/cron/auto_period_task.php @@ -49,6 +49,7 @@ require_once $rootDir . '/App/Core/GameFactory.php'; require_once $rootDir . '/App/Core/PK10Algorithm.php'; require_once $rootDir . '/App/Core/DiceAlgorithm.php'; require_once $rootDir . '/App/Core/XocDiaAlgorithm.php'; +require_once $rootDir . '/App/Core/SettingsHelper.php'; use Db\Database; use App\Core\GameFactory; @@ -208,9 +209,24 @@ function processGame($db, $game) { } else { doDraw($db, $periodId, $gameId, $algoClass); } + // 推送开奖结果到 bot 群组 + $drawResult = json_decode($db->get('periods', 'result', ['id' => $periodId]) ?: '[]', true); + if (!empty($drawResult)) { + $pk10Row = $db->get('pk10_results', '*', ['period_id' => $periodId]); + $championSum = $pk10Row ? (int)$pk10Row['champion_sum'] : ($drawResult[0] + $drawResult[1]); + queueBotPush($db, $gameId, 'draw', [ + 'event' => 'period_drawn', + 'period_id' => $periodId, + 'period_number' => $periodNum, + 'result' => $drawResult, + 'champion_sum' => $championSum, + 'manual' => false, + ], ['remind_draw_result' => 1], $periodNum); + } + logToDb($db, $gameId, $periodId, 'draw', '自动开奖'); $status = 'drawn'; - return; + // fall through to settle immediately } // === 阶段3:结算 + 开新期 === @@ -301,7 +317,8 @@ function doPreDraw($db, $periodId, $gameId, $algoClass) { ]); if (!empty($waterConfig) && !empty($bets)) { - return $algoClass::generateControlledResult($bets, $waterConfig); + $targetProfitRate = floatval(\App\Core\SettingsHelper::get('target_profit_rate')); + return $algoClass::generateControlledResult($bets, $waterConfig, 100, $targetProfitRate); } return $algoClass::generateResult(); } @@ -356,6 +373,14 @@ function doSettle($db, $period, $algoClass, $gameType) { $bets = $db->select('bets', '*', ['period_id' => $periodId, 'status' => 'pending']); if (empty($bets)) { $db->update('periods', ['status' => 'settled', 'updated_at' => date('Y-m-d H:i:s')], ['id' => $periodId]); + $gameId = (int)$period['game_id']; + queueBotPush($db, $gameId, 'system', [ + 'event' => 'period_settled', + 'period_id' => $periodId, + 'period_number' => $period['period_number'], + 'wins' => 0, 'losses' => 0, 'total_payout' => 0, + 'message' => 'No bets to settle', + ], [], $period['period_number']); logInfo(" ✓ 结算: 无投注,直接结算"); return; } @@ -402,6 +427,18 @@ function doSettle($db, $period, $algoClass, $gameType) { doSettleAgentCommissions($db, $bets, $periodId); $db->update('periods', ['status' => 'settled', 'updated_at' => date('Y-m-d H:i:s')], ['id' => $periodId]); + + // 推送结算结果到 bot 群组 + $gameId = (int)$period['game_id']; + queueBotPush($db, $gameId, 'system', [ + 'event' => 'period_settled', + 'period_id' => $periodId, + 'period_number' => $period['period_number'], + 'wins' => $wins, + 'losses' => $losses, + 'total_payout' => (float)$totalPayout, + ], [], $period['period_number']); + $db->medoo->pdo->commit(); logInfo(" ✓ {$gameName}结算: 中{$wins}笔 负{$losses}笔 派奖{$totalPayout}"); } catch (\Throwable $e) { @@ -451,3 +488,31 @@ function doSettleAgentCommissions($db, $bets, $periodId) { ]); } } + +// ============================ +// Bot 推送队列 +// ============================ +function queueBotPush($db, int $gameId, string $pushType, array $payload, array $groupFilters = [], ?string $periodNumber = null): void { + if ($gameId <= 0) return; + try { + $where = array_merge(['game_id' => $gameId, 'status' => 1], $groupFilters); + $groups = $db->select('bot_groups', ['id'], $where) ?: []; + $now = date('Y-m-d H:i:s'); + foreach ($groups as $group) { + $db->insert('bot_push_logs', [ + 'group_id' => (int)$group['id'], + 'period_number' => $periodNumber, + 'push_type' => $pushType, + 'payload_json' => json_encode($payload, JSON_UNESCAPED_UNICODE), + 'status' => 'pending', + 'created_at' => $now, + 'updated_at' => $now, + ]); + } + if (!empty($groups)) { + logInfo(" ✓ Bot推送: {$pushType} → " . count($groups) . "个群组"); + } + } catch (\Throwable $e) { + logInfo(" ⚠ Bot推送失败: " . $e->getMessage()); + } +} diff --git a/index.php b/index.php index 3254956..353f39b 100755 --- a/index.php +++ b/index.php @@ -29,6 +29,14 @@ spl_autoload_register(function ($class) { } } + if (str_starts_with($class, 'App\\Services\\')) { + $file = __DIR__ . DIRECTORY_SEPARATOR . $classPath; + if (file_exists($file)) { + require_once $file; + return; + } + } + if (str_starts_with($class, 'App\\Core\\')) { $relativePath = substr($classPath, strlen('App' . DIRECTORY_SEPARATOR . 'Core' . DIRECTORY_SEPARATOR)); $file = APP_CORE_PATH . $relativePath; diff --git a/routes.php b/routes.php index d37e7f7..c9a044e 100755 --- a/routes.php +++ b/routes.php @@ -1,139 +1,267 @@ isFile() && $file->getExtension() === 'php') { + $phpFiles[] = $file->getPathname(); + } + } +} +// Also check root-level PHP files +foreach (glob($ROOT . '/*.php') as $f) { + $phpFiles[] = $f; +} + +$syntaxErrors = []; +foreach ($phpFiles as $file) { + $output = []; + $ret = 0; + exec('php -l ' . escapeshellarg($file) . ' 2>&1', $output, $ret); + if ($ret !== 0) { + $relPath = str_replace($ROOT . '/', '', $file); + $syntaxErrors[] = $relPath . ': ' . implode(' ', $output); + } +} + +if (empty($syntaxErrors)) { + test_pass("PHP syntax check: all " . count($phpFiles) . " files pass"); +} else { + foreach ($syntaxErrors as $err) { + test_fail("PHP syntax error", $err); + } +} + +// ============================================================ +// 2. 路由完整性验证 +// ============================================================ +echo "=== 2. Route Integrity ===\n"; +$routes = include $ROOT . '/routes.php'; +$seenPaths = []; +$routeIssues = 0; + +foreach ($routes as $idx => $route) { + $method = $route[0]; + $path = $route[1]; + $action = $route[2]; + + // 检查重复路由 path (method+path) + $key = $method . ':' . $path; + if (isset($seenPaths[$key])) { + test_fail("Route duplicate", "'{$key}' duplicated at line " . ($idx + 1)); + $routeIssues++; + } + $seenPaths[$key] = true; + + // 解析 Controller@method + if (strpos($action, '@') === false) { + test_fail("Route format", "'{$path}' action '{$action}' missing @method"); + $routeIssues++; + continue; + } + list($controllerClass, $methodName) = explode('@', $action); + + // 转换类名到文件路径 + $controllerFile = $ROOT . '/' . str_replace('\\', '/', ltrim($controllerClass, '\\')) . '.php'; + if (!file_exists($controllerFile)) { + test_fail("Route controller missing", "'{$path}' -> {$controllerClass} file not found: {$controllerFile}"); + $routeIssues++; + continue; + } + + // 检查方法是否存在(通过正则搜索) + $content = file_get_contents($controllerFile); + if (!preg_match('/function\s+' . preg_quote($methodName) . '\s*\(/', $content)) { + test_fail("Route method missing", "'{$path}' -> {$controllerClass}@{$methodName} method not found"); + $routeIssues++; + } +} + +if ($routeIssues === 0) { + test_pass("Route integrity: all " . count($routes) . " routes valid"); +} + +// ============================================================ +// 3. Service 层验证 +// ============================================================ +echo "=== 3. Service Layer ===\n"; + +// TransactionService 方法检查 +$tsFile = $ROOT . '/App/Services/TransactionService.php'; +if (!file_exists($tsFile)) { + test_fail("TransactionService", "File not found"); +} else { + $tsContent = file_get_contents($tsFile); + $tsMethods = ['transfer', 'fundRequest']; + foreach ($tsMethods as $m) { + if (preg_match('/function\s+' . $m . '\s*\(/', $tsContent)) { + test_pass("TransactionService has {$m}() method"); + } else { + test_fail("TransactionService", "Missing method {$m}()"); + } + } +} + +// ReportService 方法检查 +$rsFile = $ROOT . '/App/Services/ReportService.php'; +if (!file_exists($rsFile)) { + test_fail("ReportService", "File not found"); +} else { + $rsContent = file_get_contents($rsFile); + $rsMethods = ['getUserReport', 'getOverviewStats', 'getDailyStats', 'getUserWinLoss', 'getTopUsers', 'getAgentStats']; + foreach ($rsMethods as $m) { + if (preg_match('/function\s+' . $m . '\s*\(/', $rsContent)) { + test_pass("ReportService has {$m}() method"); + } else { + test_fail("ReportService", "Missing method {$m}()"); + } + } +} + +// Service 纯业务逻辑检查(不含 HTTP 操作) +$serviceFiles = glob($ROOT . '/App/Services/*.php'); +$forbiddenPatterns = [ + 'header\s*\(' => 'header()', + '\becho\b' => 'echo', + '\$_GET' => '$_GET', + '\$_POST' => '$_POST', + '\$_SESSION' => '$_SESSION', +]; +foreach ($serviceFiles as $sf) { + $sfContent = file_get_contents($sf); + $sfName = basename($sf); + $sfClean = true; + foreach ($forbiddenPatterns as $pattern => $label) { + if (preg_match('/' . $pattern . '/', $sfContent)) { + test_fail("Service purity: {$sfName}", "Contains forbidden pattern: {$label}"); + $sfClean = false; + } + } + if ($sfClean) { + test_pass("Service purity: {$sfName} is clean (no HTTP operations)"); + } +} + +// ============================================================ +// 4. Controller → Service 调用链验证 +// ============================================================ +echo "=== 4. Controller-Service Call Chain ===\n"; + +// TransactionController must call TransactionService +$tcFile = $ROOT . '/App/Controllers/Web/TransactionController.php'; +if (file_exists($tcFile)) { + $tcContent = file_get_contents($tcFile); + // fundRequest calls TransactionService + if (preg_match('/TransactionService/', $tcContent) && preg_match('/function\s+fundRequest/', $tcContent)) { + test_pass("TransactionController::fundRequest calls TransactionService"); + } else { + test_fail("TransactionController", "fundRequest does not call TransactionService"); + } + // transfer calls TransactionService + if (preg_match('/TransactionService/', $tcContent) && preg_match('/function\s+transfer/', $tcContent)) { + test_pass("TransactionController::transfer calls TransactionService"); + } else { + test_fail("TransactionController", "transfer does not call TransactionService"); + } +} else { + test_fail("TransactionController", "File not found"); +} + +// ReportWebController must call ReportService +$rwcFile = $ROOT . '/App/Controllers/Web/ReportWebController.php'; +if (file_exists($rwcFile)) { + $rwcContent = file_get_contents($rwcFile); + if (preg_match('/ReportService/', $rwcContent) && preg_match('/function\s+userReportApi/', $rwcContent)) { + test_pass("ReportWebController::userReportApi calls ReportService"); + } else { + test_fail("ReportWebController", "userReportApi does not call ReportService"); + } +} else { + test_fail("ReportWebController", "File not found"); +} + +// Admin\ReportController must call ReportService +$arcFile = $ROOT . '/App/Controllers/Admin/ReportController.php'; +if (file_exists($arcFile)) { + $arcContent = file_get_contents($arcFile); + $arcOk = true; + if (!preg_match('/ReportService/', $arcContent)) { + test_fail("Admin\\ReportController", "Does not reference ReportService"); + $arcOk = false; + } + if (preg_match('/function\s+index/', $arcContent) && preg_match('/ReportService/', $arcContent)) { + test_pass("Admin\\ReportController::index calls ReportService"); + } else if ($arcOk) { + test_fail("Admin\\ReportController", "index does not call ReportService"); + } + if (preg_match('/function\s+export/', $arcContent) && preg_match('/ReportService/', $arcContent)) { + test_pass("Admin\\ReportController::export calls ReportService"); + } else if ($arcOk) { + test_fail("Admin\\ReportController", "export does not call ReportService"); + } +} else { + test_fail("Admin\\ReportController", "File not found"); +} + +// HomeController must NOT contain old methods +$hcFile = $ROOT . '/App/Controllers/Web/HomeController.php'; +if (file_exists($hcFile)) { + $hcContent = file_get_contents($hcFile); + $removedMethods = ['fundRequest', 'transfer', 'report', 'followPlan', 'userReportApi']; + $hcClean = true; + foreach ($removedMethods as $rm) { + if (preg_match('/function\s+' . $rm . '\s*\(/', $hcContent)) { + test_fail("HomeController cleanup", "Still contains method {$rm}()"); + $hcClean = false; + } + } + if ($hcClean) { + test_pass("HomeController no longer contains removed methods (fundRequest/transfer/report/followPlan/userReportApi)"); + } +} else { + test_fail("HomeController", "File not found"); +} + +// ============================================================ +// 5. JS 文件验证 +// ============================================================ +echo "=== 5. JS File Validation ===\n"; + +$jsFiles = ['pk10-sound.js', 'pk10-race.js', 'pk10-bet.js', 'pk10-poll.js']; +foreach ($jsFiles as $jsf) { + $jsPath = $ROOT . '/Static/js/' . $jsf; + if (!file_exists($jsPath)) { + test_fail("JS file exists: {$jsf}", "File not found"); + continue; + } + $jsSize = filesize($jsPath); + if ($jsSize === 0) { + test_fail("JS file non-empty: {$jsf}", "File is empty"); + continue; + } + test_pass("JS file exists and non-empty: {$jsf} ({$jsSize} bytes)"); + + // No PHP tags + $jsContent = file_get_contents($jsPath); + if (preg_match('/<\?php|<\?=/', $jsContent)) { + test_fail("JS no PHP tags: {$jsf}", "Contains PHP tags"); + } else { + test_pass("JS no PHP tags: {$jsf}"); + } +} + +// pk10.php checks +$pk10File = $ROOT . '/App/Views/Web/pk10.php'; +if (file_exists($pk10File)) { + $pk10Content = file_get_contents($pk10File); + + // window.PK10_CONFIG + if (strpos($pk10Content, 'PK10_CONFIG') !== false) { + test_pass("pk10.php contains PK10_CONFIG configuration block"); + } else { + test_fail("pk10.php PK10_CONFIG", "Missing window.PK10_CONFIG block"); + } + + // 4 script src references + $scriptCount = 0; + foreach ($jsFiles as $jsf) { + if (strpos($pk10Content, $jsf) !== false) { + $scriptCount++; + } + } + if ($scriptCount === 4) { + test_pass("pk10.php includes all 4 pk10-*.js script references"); + } else { + test_fail("pk10.php script references", "Found {$scriptCount}/4 JS file references"); + } + + // JS 引用顺序: sound → race → bet → poll + $positions = []; + foreach ($jsFiles as $jsf) { + $pos = strpos($pk10Content, $jsf); + if ($pos !== false) { + $positions[$jsf] = $pos; + } + } + if (count($positions) === 4) { + $ordered = array_keys($positions); + usort($ordered, function($a, $b) use ($positions) { + return $positions[$a] - $positions[$b]; + }); + $expected = ['pk10-sound.js', 'pk10-race.js', 'pk10-bet.js', 'pk10-poll.js']; + if ($ordered === $expected) { + test_pass("pk10.php JS include order correct: sound -> race -> bet -> poll"); + } else { + test_fail("pk10.php JS order", "Expected: " . implode(' -> ', $expected) . " Got: " . implode(' -> ', $ordered)); + } + } +} else { + test_fail("pk10.php", "File not found"); +} + +// ============================================================ +// 6. JS 全局变量/函数完整性 +// ============================================================ +echo "=== 6. JS Global Function Integrity ===\n"; + +$jsSoundContent = file_exists($ROOT . '/Static/js/pk10-sound.js') ? file_get_contents($ROOT . '/Static/js/pk10-sound.js') : ''; +$jsRaceContent = file_exists($ROOT . '/Static/js/pk10-race.js') ? file_get_contents($ROOT . '/Static/js/pk10-race.js') : ''; +$jsBetContent = file_exists($ROOT . '/Static/js/pk10-bet.js') ? file_get_contents($ROOT . '/Static/js/pk10-bet.js') : ''; +$jsPollContent = file_exists($ROOT . '/Static/js/pk10-poll.js') ? file_get_contents($ROOT . '/Static/js/pk10-poll.js') : ''; + +// SoundFX in pk10-sound.js +if (preg_match('/\bSoundFX\b/', $jsSoundContent)) { + test_pass("SoundFX defined in pk10-sound.js"); +} else { + test_fail("JS global: SoundFX", "Not found in pk10-sound.js"); +} + +// Race functions in pk10-race.js +$raceFuncs = ['animateRace', 'startIdleAnimation', 'resetRace', 'updateSceneHeader']; +foreach ($raceFuncs as $rf) { + if (preg_match('/\b' . $rf . '\b/', $jsRaceContent)) { + test_pass("{$rf} defined in pk10-race.js"); + } else { + test_fail("JS global: {$rf}", "Not found in pk10-race.js"); + } +} + +// Bet functions in pk10-bet.js +$betFuncs = ['renderMyBets', 'renderLastMyBets', 'formatBetLabel']; +foreach ($betFuncs as $bf) { + if (preg_match('/\b' . $bf . '\b/', $jsBetContent)) { + test_pass("{$bf} defined in pk10-bet.js"); + } else { + test_fail("JS global: {$bf}", "Not found in pk10-bet.js"); + } +} + +// pollPeriod in pk10-poll.js +if (preg_match('/\bpollPeriod\b/', $jsPollContent)) { + test_pass("pollPeriod defined in pk10-poll.js"); +} else { + test_fail("JS global: pollPeriod", "Not found in pk10-poll.js"); +} + +// ============================================================ +// 7. View 文件验证 +// ============================================================ +echo "=== 7. View File Validation ===\n"; + +// report.php +$reportView = $ROOT . '/App/Views/Web/report.php'; +if (file_exists($reportView)) { + $rvContent = file_get_contents($reportView); + test_pass("report.php exists"); + if (strpos($rvContent, '/api/user-report') !== false) { + test_pass("report.php contains /api/user-report fetch call"); + } else { + test_fail("report.php content", "Missing /api/user-report fetch call"); + } +} else { + test_fail("report.php", "File not found"); +} + +// follow_plan.php +$fpView = $ROOT . '/App/Views/Web/follow_plan.php'; +if (file_exists($fpView)) { + $fpContent = file_get_contents($fpView); + test_pass("follow_plan.php exists"); + if (strpos($fpContent, 'PK10_CONFIG') !== false || strpos($fpContent, 'pk10') !== false || strpos($fpContent, 'follow') !== false) { + test_pass("follow_plan.php contains expected content"); + } else { + test_fail("follow_plan.php content", "Missing expected PK10_CONFIG or related content"); + } +} else { + test_fail("follow_plan.php", "File not found"); +} + +// profile.php +$profileView = $ROOT . '/App/Views/Web/profile.php'; +if (file_exists($profileView)) { + $pvContent = file_get_contents($profileView); + $profileOk = true; + if (strpos($pvContent, '/report') !== false) { + test_pass("profile.php contains /report link"); + } else { + test_fail("profile.php link", "Missing /report link"); + $profileOk = false; + } + if (strpos($pvContent, '/follow-plan') !== false || strpos($pvContent, 'follow_plan') !== false || strpos($pvContent, 'follow-plan') !== false) { + test_pass("profile.php contains /follow-plan link"); + } else { + test_fail("profile.php link", "Missing /follow-plan link"); + } +} else { + test_fail("profile.php", "File not found"); +} + +// pk10.php localLockCountdown +if (file_exists($pk10File)) { + $pk10Content = $pk10Content ?? file_get_contents($pk10File); + if (strpos($pk10Content, 'localLockCountdown') !== false) { + test_pass("pk10.php contains localLockCountdown in statusBadge code"); + } else { + test_fail("pk10.php localLockCountdown", "Missing localLockCountdown reference"); + } +} else { + test_fail("pk10.php", "File not found"); +} + +// ============================================================ +// 8. i18n 验证 +// ============================================================ +echo "=== 8. i18n Validation ===\n"; + +$zhFile = $ROOT . '/Lang/zh.php'; +$enFile = $ROOT . '/Lang/en.php'; + +if (!file_exists($zhFile) || !file_exists($enFile)) { + test_fail("i18n files", "zh.php or en.php not found"); +} else { + $zhLang = include $zhFile; + $enLang = include $enFile; + + $requiredKeys = ['report_query', 'follow_plan', 'today', 'yesterday']; + foreach ($requiredKeys as $rk) { + if (isset($zhLang[$rk])) { + test_pass("zh.php has key '{$rk}'"); + } else { + test_fail("zh.php i18n", "Missing key '{$rk}'"); + } + if (isset($enLang[$rk])) { + test_pass("en.php has key '{$rk}'"); + } else { + test_fail("en.php i18n", "Missing key '{$rk}'"); + } + } + + // Key count match + $zhCount = count($zhLang); + $enCount = count($enLang); + if ($zhCount === $enCount) { + test_pass("i18n key count match: zh={$zhCount}, en={$enCount}"); + } else { + $diff = abs($zhCount - $enCount); + // Find missing keys + $missingInEn = array_diff(array_keys($zhLang), array_keys($enLang)); + $missingInZh = array_diff(array_keys($enLang), array_keys($zhLang)); + $detail = "zh={$zhCount}, en={$enCount} (diff={$diff})"; + if (!empty($missingInEn)) { + $detail .= " | Missing in en: " . implode(', ', array_slice($missingInEn, 0, 10)); + } + if (!empty($missingInZh)) { + $detail .= " | Missing in zh: " . implode(', ', array_slice($missingInZh, 0, 10)); + } + test_fail("i18n key count mismatch", $detail); + } +} + +// ============================================================ +// 9. 路由无死链验证 +// ============================================================ +echo "=== 9. Route Dead Link Check ===\n"; + +$deadLinks = 0; +foreach ($routes as $route) { + $action = $route[2]; + if (strpos($action, '@') === false) continue; + list($controllerClass, $methodName) = explode('@', $action); + $controllerFile = $ROOT . '/' . str_replace('\\', '/', ltrim($controllerClass, '\\')) . '.php'; + + if (!file_exists($controllerFile)) { + // Already reported in section 2 + $deadLinks++; + continue; + } + + $content = file_get_contents($controllerFile); + if (!preg_match('/function\s+' . preg_quote($methodName) . '\s*\(/', $content)) { + // Already reported in section 2 + $deadLinks++; + } +} + +if ($deadLinks === 0) { + test_pass("No dead route links: all " . count($routes) . " routes point to existing methods"); +} else { + test_fail("Dead route links", "{$deadLinks} routes point to non-existent controllers/methods (see section 2 for details)"); +} + +// ============================================================ +// 汇总输出 +// ============================================================ +echo "\n" . str_repeat('=', 60) . "\n"; +echo "TEST RESULTS\n"; +echo str_repeat('=', 60) . "\n\n"; + +foreach ($results as $r) { + echo $r . "\n"; +} + +$total = $pass + $fail; +echo "\n" . str_repeat('-', 60) . "\n"; +echo "Total: {$total} tests | Pass: {$pass} | Fail: {$fail}\n"; +echo str_repeat('-', 60) . "\n"; + +if ($fail > 0) { + echo "\n*** {$fail} FAILURE(S) DETECTED ***\n"; + exit(1); +} else { + echo "\n*** ALL TESTS PASSED ***\n"; + exit(0); +}