first commit

This commit is contained in:
李志强 2025-11-28 14:28:58 +08:00
commit 6ef96e6370
314 changed files with 40282 additions and 0 deletions

1
.htaccess Normal file
View File

@ -0,0 +1 @@

1
.user.ini Normal file
View File

@ -0,0 +1 @@
open_basedir=/www/wwwroot/tv.yunzer.cn/:/tmp/

26
404.html Normal file
View File

@ -0,0 +1,26 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<title>404</title>
<style>
body{
background-color:#444;
font-size:14px;
}
h3{
font-size:60px;
color:#eee;
text-align:center;
padding-top:30px;
font-weight:normal;
}
</style>
</head>
<body>
<h3>404您请求的文件不存在!</h3>
</body>
</html>

452
App.php Normal file
View File

@ -0,0 +1,452 @@
<?php
/**
* shouq.sujie520.cn
**/
namespace app\api\controller;
use think\Db;
use think\Cache;
class App extends Base
{
//当前请求参数
var $_param;
public function __construct()
{
parent::__construct();
$this->_param = input();
}
//json转换扩展
private function json_encode_extra($obj, $apicode = "")
{
return json_encode($obj, JSON_UNESCAPED_SLASHES);
}
/**
* 视频json带分类
*/
public function vod_json($v)
{
if ($v == null) {
return $v;
}
$v['vod_time_add'] = date('Y-m-d H:i:s', $v['vod_time_add']);
$v['vod_content'] = strip_tags($v['vod_content']);
if (substr($v["vod_pic"], 0, 4) == "mac:") {
$v["vod_pic"] = str_replace('mac:', 'http:', $v["vod_pic"]);
}elseif (substr($v["vod_pic"], 0, 2) == "//") {
$v["vod_pic"] = str_replace('//', 'http://', $v["vod_pic"]);
} elseif (!empty($v["vod_pic"]) && substr($v["vod_pic"], 0, 4) != "http" && substr($v["vod_pic"], 0, 2) != "//") {
$v["vod_pic"] = $GLOBALS['config']['api']['vod']['imgurl'] . $v["vod_pic"];
}
if (substr($v["vod_pic_slide"], 0, 4) == "mac:") {
$v["vod_pic_slide"] = str_replace('mac:', 'http:', $v["vod_pic_slide"]);
}elseif (substr($v["vod_pic_slide"], 0, 2) == "//") {
$v["vod_pic_slide"] = str_replace('//', 'http://', $v["vod_pic_slide"]);
} elseif (!empty($v["vod_pic_slide"]) && substr($v["vod_pic_slide"], 0, 4) != "http" && substr($v["vod_pic_slide"], 0, 2) != "//") {
$v["vod_pic_slide"] = $GLOBALS['config']['api']['vod']['imgurl'] . $v["vod_pic_slide"];
}
//多播放源
$v["vod_url_with_player"] = [];
$vod_play_from_array = explode('$$$', $v["vod_play_from"]);
$play_url_array = explode('$$$', $v["vod_play_url"]);
//获取所有播放器
$all_players = config("vodplayer");
$xg_parse_players = config("vodplayer_xg_parse");
$sort = [];
foreach ($vod_play_from_array as $k => $player) {
try {
if ($all_players[$player]['show'] != null && $all_players[$player]['status'] == 1 && ($xg_parse_players[$player]['app_is_show'] == 1 || $xg_parse_players[$player]['app_is_show'] == null)) {
$player_sort = $all_players[$player]['sort'];
$player_sort = $player_sort == "" ? 0 : $player_sort;
$player_with_url = [];
$player_with_url["name"] = $all_players[$player]['show'];
$player_with_url["code"] = $all_players[$player]['from'];
$player_with_url["url"] = $play_url_array[$k];
if (empty($xg_parse_players[$player]['parse_api'])) {
$player_with_url["parse_api"] = $xg_parse_players['xg_app_player']['parse_api'];
} else {
$player_with_url["parse_api"] = $xg_parse_players[$player]['parse_api'];
}
if (empty($xg_parse_players[$player]['user_agent'])) {
$player_with_url["user_agent"] = $xg_parse_players['xg_app_player']['user_agent'];
} else {
$player_with_url["user_agent"] = $xg_parse_players[$player]['user_agent'];
}
if (empty($xg_parse_players[$player]['headers'])) {
$player_with_url["headers"] = $xg_parse_players['xg_app_player']['headers'];
} else {
$player_with_url["headers"] = $xg_parse_players[$player]['headers'];
}
if (empty($xg_parse_players[$player]['link_features'])) {
$player_with_url["link_features"] = $xg_parse_players['xg_app_player']['link_features'];
} else {
$player_with_url["link_features"] = $xg_parse_players[$player]['link_features'];
}
if (empty($xg_parse_players[$player]['un_link_features'])) {
$player_with_url["un_link_features"] = $xg_parse_players['xg_app_player']['un_link_features'];
} else {
$player_with_url["un_link_features"] = $xg_parse_players[$player]['un_link_features'];
}
$sort[] = $player_sort;
array_push($v["vod_url_with_player"], $player_with_url);
}
} catch (\Exception $e) {
}
}
array_multisort($sort, SORT_DESC, $v["vod_url_with_player"]);
return $v;
}
/**
* 视频json不带分类
*/
public function vod_json_list($res)
{
foreach ($res['list'] as $k => &$v) {
$v['vod_time_add'] = date('Y-m-d H:i:s', $v['vod_time_add']);
if (substr($v["vod_pic"], 0, 4) == "mac:") {
$v["vod_pic"] = str_replace('mac:', 'http:', $v["vod_pic"]);
}elseif (substr($v["vod_pic"], 0, 2) == "//") {
$v["vod_pic"] = str_replace('//', 'http://', $v["vod_pic"]);
} elseif (!empty($v["vod_pic"]) && substr($v["vod_pic"], 0, 4) != "http" && substr($v["vod_pic"], 0, 2) != "//") {
$v["vod_pic"] = $GLOBALS['config']['api']['vod']['imgurl'] . $v["vod_pic"];
}
if (substr($v["vod_pic_slide"], 0, 4) == "mac:") {
$v["vod_pic_slide"] = str_replace('mac:', 'http:', $v["vod_pic_slide"]);
}elseif (substr($v["vod_pic_slide"], 0, 2) == "//") {
$v["vod_pic_slide"] = str_replace('//', 'http://', $v["vod_pic_slide"]);
} elseif (!empty($v["vod_pic_slide"]) && substr($v["vod_pic_slide"], 0, 4) != "http" && substr($v["vod_pic_slide"], 0, 2) != "//") {
$v["vod_pic_slide"] = $GLOBALS['config']['api']['vod']['imgurl'] . $v["vod_pic_slide"];
}
}
return $res;
}
// ==========================接口开始===============================
/**
* 视频检索
*/
public function search()
{
$html = '';
$where = [];
if (!empty($this->_param['text'])) {
$where['vod_name'] = ['like', "%" . $this->_param['text'] . "%"];
}
//如果缓存中存在,直接返回
if (Cache::has('xgapp_search' . $this->_param['text'])) {
$cache_response = Cache::get('xgapp_search' . $this->_param['text']);
$html = $this->json_encode_extra($cache_response, "search");
echo $html;
exit;
}
$order = 'vod_time desc';
$field = 'vod_id,vod_name,vod_pic,vod_score,type_id,vod_en,vod_time_add,vod_remarks';
$limit_str = "0,20";
$list = Db::name('Vod')->field($field)->where($where)->order($order)->limit($limit_str)->select();
//分类
$type_list = model('Type')->getCache('type_list');
//用户组
$group_list = model('Group')->getCache('group_list');
foreach ($list as $k => $v) {
if (!empty($v['type_id'])) {
$list[$k]['type'] = $type_list[$v['type_id']];
$list[$k]['type_1'] = $type_list[$list[$k]['type']['type_pid']];
}
if (!empty($v['group_id'])) {
$list[$k]['group'] = $group_list[$v['group_id']];
}
}
$res = ['code' => 1, 'msg' => '搜索', 'list' => $list, "total" => sizeof($list)];
$res = $this->vod_json_list($res);
//设置到缓存中
Cache::set('xgapp_search' . $this->_param['text'], $res, 60 * 60);
$html = $this->json_encode_extra($res, "search");
echo $html;
exit;
}
public function banner()
{
//如果缓存中存在,直接返回
if (Cache::has('xgapp_banner')) {
$cache_list = Cache::get('xgapp_banner');
$response = ['code' => 1, 'msg' => '轮播图', 'list' => $cache_list];
$html = $this->json_encode_extra($response, "banner");
echo $html;
exit;
}
$html = '';
$where = [];
$where['vod_level'] = ['eq', 9];
$order = 'vod_time desc';
$field = 'vod_id,vod_name,vod_pic,vod_pic_slide,vod_score,type_id,vod_en,vod_time_add,vod_remarks';
$res = model('vod')->listData($where, $order, 1, $GLOBALS['config']['api']['vod']['pagesize'], 0, $field, 0);
foreach ($res["list"] as $k => &$v) {
if (!empty($v["vod_pic_slide"])) {
$v['vod_pic'] = $v['vod_pic_slide'];
}
}
$list_array = $this->vod_json_list($res)["list"];
//设置到缓存中
Cache::set('xgapp_banner', $list_array, 60 * 60);
$response = ['code' => 1, 'msg' => '轮播图', 'list' => $list_array];
$html = $this->json_encode_extra($response, "banner");
echo $html;
exit;
}
public function index_video()
{
//如果缓存中存在,直接返回
if (Cache::has('xgapp_index_video')) {
$cache_list = Cache::get('xgapp_index_video');
$response = ['code' => 1, 'msg' => '首页视频', 'list' => $cache_list];
$html = $this->json_encode_extra($response, "index_video");
echo $html;
exit;
}
$html = '';
$type_where = [];
$type_where["type_status"] = 1;
$type_order = 'type_sort';
$type_list = model('type')->listData($type_where, $type_order, 'tree', 1, 1000, 0, 0)["list"];
$type_list_array = [];
foreach ($type_list as $k => $v) {
$type_info["type_id"] = $v["type_id"];
$type_info["type_name"] = '精选' . $v["type_name"];
$where['type_id | type_id_1'] = ['eq', $type_info["type_id"]];
$where['vod_level'] = ['lt', 2];
$order = 'vod_level desc,vod_time desc';
$field = 'vod_id,vod_name,vod_pic,type_id,vod_remarks';
$limit_str = '6';
$list = Db::name('Vod')->field($field)->where($where)->order($order)->limit($limit_str)->select();
$res = ["list" => $list];
$type_info["vlist"] = $this->vod_json_list($res)["list"];
array_push($type_list_array, $type_info);
}
//设置到缓存中
Cache::set('xgapp_index_video', $type_list_array, 60 * 60);
$response = ['code' => 1, 'msg' => '首页视频', 'list' => $type_list_array];
$html = $this->json_encode_extra($response, "index_video");
echo $html;
exit;
}
public function nav()
{
//如果缓存中存在,直接返回
if (Cache::has('xgapp_nav')) {
$cache_list = Cache::get('xgapp_nav');
$response = ['code' => 1, 'msg' => '导航列表', 'list' => $cache_list];
$html = $this->json_encode_extra($response, "nav");
echo $html;
exit;
}
$html = '';
$type_where = [];
$type_where["type_status"] = 1;
$type_order = 'type_sort';
$type_list = model('type')->listData($type_where, $type_order, 'tree', 1, 1000, 0, 0)["list"];
$type_list_array = [];
foreach ($type_list as $k => $v) {
$type_info["type_id"] = $v["type_id"];
$type_info["type_name"] = $v["type_name"];
$type_info["type_extend"] = $v["type_extend"];
array_push($type_list_array, $type_info);
}
//设置到缓存中
Cache::set('xgapp_nav', $type_list_array, 60 * 60);
$response = ['code' => 1, 'msg' => '导航列表', 'list' => $type_list_array];
$html = $this->json_encode_extra($response, "nav");
echo $html;
exit;
}
public function video()
{
if (empty($this->_param["tid"])) {
$json = $this->json_encode_extra(['code' => 2, 'msg' => '参数验证失败'], "video");
echo $json;
exit;
}
$html = '';
$where = [];
$where['type_id | type_id_1'] = ['eq', $this->_param['tid']];
if (!empty($this->_param['class'])) {
$where['vod_class'] = ['like', "%" . $this->_param['class'] . "%"];
}
if (!empty($this->_param['area'])) {
$where['vod_area'] = ['like', "%" . $this->_param['area'] . "%"];
}
if (!empty($this->_param['lang'])) {
$where['vod_lang'] = ['like', "%" . $this->_param['lang'] . "%"];
}
if (!empty($this->_param['year'])) {
$where['vod_year'] = ['like', "%" . $this->_param['year'] . "%"];
}
if (empty($this->_param['pg'])) {
$this->_param['pg'] = 1;
}
if ($this->_param['pg'] > 25) {
$this->_param['pg'] = 25;
}
$order = 'vod_time desc';
$field = 'vod_id,vod_name,vod_pic,vod_score,type_id,vod_en,vod_time_add,vod_remarks';
$res = model('vod')->listData($where, $order, $this->_param['pg'], $GLOBALS['config']['api']['vod']['pagesize'], 0, $field, 0);
$html = $this->json_encode_extra($this->vod_json_list($res), "video");
echo $html;
exit;
}
public function video_detail()
{
if (empty($this->_param['id'])) {
$json = $this->json_encode_extra(['code' => 2, 'msg' => '参数验证失败'], "video_detail");
echo $json;
exit;
}
$html = '';
$where = [];
if (!empty($this->_param['id'])) {
$where['vod_id'] = ['eq', $this->_param['id']];
}
if (empty($this->_param['id'])) {
$where['vod_id'] = ['eq', 1];
}
$order = 'vod_time desc';
$field = '*';
$res = Db::name('Vod')->field($field)->where($where)->find();
if (empty($res)) {
$json = $this->json_encode_extra(['code' => 404, 'msg' => '抱歉,该视频已下架'], "video_detail");
echo $json;
exit;
}
$detail = $this->vod_json($res);
$detail["trysee"] = config("maccms")["user"]["trysee"];
//如果当前不是会员载入20条随机广告
if ($detail["permission"] != "vip") {
$where = [];
$where['status'] = ['eq', 1];
$where['start_time'] = ['lt', time()];
$where['end_time'] = ['gt', time()];
$start = 0;
$limit = 20;
$order = 'rand()';
$field = 'id,name,content,req_type,req_content,headers,time,skip_time';
//视频播放前
$init_advert_list = [];
$enable = config('maccms')["xg_advert_config"]["config_video_start"];
if ($enable == 1) {
$where['position'] = ['eq', 3];
$limit_str = $start . "," . $limit;
$init_advert_list = Db::table('xg_app_advert')->field($field)->where($where)->orderRaw($order)->limit($limit_str)->select();
}
foreach ($init_advert_list as $k => &$v) {
if (substr($v["content"], 0, 4) == "mac:") {
$v["content"] = str_replace('mac:', 'http:', $v["content"]);
} elseif (substr($v["content"], 0, 2) == "//") {
$v["content"] = str_replace('//', 'http://', $v["content"]);
} elseif (!empty($v["content"]) && substr($v["content"], 0, 4) != "http" && substr($v["content"], 0, 2) != "//") {
$v["content"] = $GLOBALS['config']['api']['vod']['imgurl'] . $v["content"];
}
$init_advert_list[$k] = $v;
}
//视频暂停
$pause_advert_list = [];
$enable = config('maccms')["xg_advert_config"]["config_video_pause"];
if ($enable == 1) {
$where['position'] = ['eq', 4];
$limit_str = $start . "," . $limit;
$pause_advert_list = Db::table('xg_app_advert')->field($field)->where($where)->orderRaw($order)->limit($limit_str)->select();
}
foreach ($pause_advert_list as $k => &$v) {
if (substr($v["content"], 0, 4) == "mac:") {
$v["content"] = str_replace('mac:', 'http:', $v["content"]);
} elseif (substr($v["content"], 0, 2) == "//") {
$v["content"] = str_replace('//', 'http://', $v["content"]);
} elseif (!empty($v["content"]) && substr($v["content"], 0, 4) != "http" && substr($v["content"], 0, 2) != "//") {
$v["content"] = $GLOBALS['config']['api']['vod']['imgurl'] . $v["content"];
}
$pause_advert_list[$k] = $v;
}
$detail["init_advert_list"] = $init_advert_list;
$detail["pause_advert_list"] = $pause_advert_list;
}
if ($detail["unlock"]) {
$response = ['code' => 1024, 'msg' => '权限不足', 'data' => $detail];
$html = $this->json_encode_extra($response, "video_detail");
echo $html;
exit;
}
$response = ['code' => 1, 'msg' => '视频详情', 'data' => $detail];
$html = $this->json_encode_extra($response, "video_detail");
echo $html;
exit;
}
}

30
admin/404.php Normal file
View File

@ -0,0 +1,30 @@
<!-- start page title -->
<div class="row">
<div class="col-12">
<div class="page-title-box">
<div class="page-title-right">
<ol class="breadcrumb m-0">
<li class="breadcrumb-item"><a href="./">首页</a></li>
<li class="breadcrumb-item active">错误</li>
</ol>
</div>
<h4 class="page-title">404</h4>
</div> <!-- end page-title-box -->
</div> <!-- end col-->
</div>
<!-- end page title -->
<div class="row">
<div class="col-sm-12">
<div class="text-center">
<div class="text-center" style="margin-top:6.5rem!important;margin-bottom:8rem!important;">
<img src="../assets/images/maintenance.svg" height="120" alt="File not found Image">
<h4 class="text-uppercase mt-3">你遇到了一个错误的页面</h4>
<p class="text-muted mt-3"> 由于你当前访问的页面不存在,因此无法显示。请返回首页重试</p>
<a class="btn btn-success btn-sm mt-2" href="./">返回首页</a>
</div>
</div>
</div><!-- end col -->
</div><!-- end row -->

26
admin/ajax.php Normal file
View File

@ -0,0 +1,26 @@
<?php
require_once 'globals.php';
// json(201,'对不起~演示站点,不支持此操作');
$act = isset($_GET['act']) ? purge($_GET['act']) : '';
$act_Arr = explode("_",$act);
if(count($act_Arr) == 2){
$Path = $act_Arr[0];//路径
$act = $act_Arr[1];//操作
if(file_exists(FCPATH.ADM_EXTEND_MULU."/{$Path}/api/{$Path}.php")){
require FCPATH.ADM_EXTEND_MULU."/{$Path}/api/{$Path}.php";//载入接口
}else{
json(201,'错误的操作文件');
}
}elseif(count($act_Arr) == 3){
$Path = $act_Arr[0];//路径
$File = $act_Arr[1];//文件
$act = $act_Arr[2];//操作
if(file_exists(FCPATH.ADM_EXTEND_MULU."/{$Path}/api/{$File}.php")){
require FCPATH.ADM_EXTEND_MULU."/{$Path}/api/{$File}.php";//载入接口
}else{
json(201,'错误的操作文件');
}
}else{
json(201,'错误的操作接口');
}
?>

78
admin/edition.php Normal file
View File

@ -0,0 +1,78 @@
<?php
//系统版本检测文件
require_once '../include/global.php';
require_once 'userdata.php';
$ADMIN_COOKIE = isset($_COOKIE['ADMIN_COOKIE']) ? purge($_COOKIE['ADMIN_COOKIE']) : '';
if($ADMIN_COOKIE == $cookie){
$islogin = true;
}else{
$islogin = false;
}
if (!$islogin) {
echo "<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /edition.php was not found on this server.</p>
</body></html>";
exit;
}
$data = http_gets('http://auth.lvdoui.net/api/authlook/update?host=' . $_SERVER['HTTP_HOST'] . '&authkey=EAEFBAFE732CED83C872A42EDCFA622F'. '&version=' . EDITION);
$json_data = json_decode($data, true);
if(EDITION >= $json_data['msg']['extend']){ //不需要更新,检测文件是否被修改
$file_new = [];
$file_md5 = [];
$file_lose = [];
if(is_array($json_data['msg']['extend']) && !empty($json_data['msg']['extend'])){
foreach($json_data['msg']['extend'] as $extend) {
if($extend['home'] == 'api'){
$file_arr = apiData($extend['file'],$extend['mulu']);
}elseif('adm'){
$file_arr = admData($extend['file'],$extend['mulu']);
}
if($file_arr){
if($file_arr['md5'] != $extend['md5'] && $file_arr['version'] == $extend['version']){
$file_md5[] = $extend;
}
if($file_arr['version'] < $extend['version']){
$file_new[] = $extend;
}
}else{
$file_lose[] = $extend;
}
}
$data = ['file_new'=>$file_new,'file_md5'=>$file_md5,'file_lose'=>$file_lose];
json(200, $data);
}
}else{
json(201,['edition'=>$json_data['msg'], 'new_url'=>$json_data['url']]);
}
function admData($FilePath,$mulu='') {
if(file_exists(FCPATH.ADM_EXTEND_MULU.$mulu.$FilePath)){
$Data = implode('', file(FCPATH.ADM_EXTEND_MULU.$mulu.$FilePath));
$filemd5 = md5_file(FCPATH.ADM_EXTEND_MULU.$mulu.$FilePath);
preg_match("/Version:(.*)/i", $Data, $version);
$version = isset($version[1]) ? strip_tags(trim($version[1])) : '';
$file_arr = ['version'=>$version,'md5' => $filemd5];
return $file_arr;
}else{
return false;
}
}
function apiData($FilePath,$mulu='') {
if(file_exists(FCPATH.API_EXTEND_MULU.$mulu.$FilePath)){
$Data = implode('', file(FCPATH.API_EXTEND_MULU.$mulu.$FilePath));
$filemd5 = md5_file(FCPATH.API_EXTEND_MULU.$mulu.$FilePath);
preg_match("/Version:(.*)/i", $Data, $version);
$version = isset($version[1]) ? strip_tags(trim($version[1])) : '';
$file_arr = ['version'=>$version,'md5' => $filemd5];
return $file_arr;
}else{
return false;
}
}

42
admin/footer.php Normal file
View File

@ -0,0 +1,42 @@
</div> <!-- content -->
<!-- Footer Start -->
<footer class="footer">
<div class="row">
<div class="col-md-6">
2018 - <?php echo date('Y', time()); ?> © <a href="https://www.yunzer.cn" class="text-title" style="text-decoration:none" target="_blank">云泽网</a> - https://www.yunzer.cn
</div>
<div class="col-md-6">
<div class="text-md-right footer-links d-none d-md-block">
<a href="http://wpa.qq.com/msgrd?v=3&uin=357099073&site=qq&menu=yes" target="_blank">联系作者</a>
<!--<a href="https://jq.qq.com/?_wv=1027&k=zqVBNFiY" target="_blank">加入Q群</a>-->
<a href="https://www.yunzer.cn" target="_blank">云泽网</a>
</div>
</div>
</div>
</footer>
<!-- end Footer -->
</div> <!-- content-page -->
</div> <!-- end wrapper-->
<!-- ============================================================== -->
<!-- End Page content -->
<!-- ============================================================== -->
</div>
<!-- END Container -->
<div class="rightbar-overlay"></div>
<!-- /Right-bar -->
<!-- third party js -->
<script src="../assets/js/vendor/Chart.bundle.min.js"></script>
<script src="../assets/js/vendor/jquery-jvectormap-1.2.2.min.js"></script>
<script src="../assets/js/vendor/jquery-jvectormap-world-mill-en.js"></script>
<script src="../assets/js/vendor/jquery.dataTables.min.js"></script>
<script src="../assets/js/vendor/dataList.software.news.js"></script>
<script src="../assets/js/vendor/dataTables.bootstrap4.js"></script>
<script src="../assets/js/vendor/dataTables.responsive.min.js"></script>
<script src="../assets/js/vendor/responsive.bootstrap4.min.js"></script>
<script src="../assets/js/vendor/dataTables.checkboxes.min.js"></script>
<!-- App js -->
<script src="../assets/js/app.min.js"></script>
</body>
</html>

107
admin/globals.php Normal file
View File

@ -0,0 +1,107 @@
<?php
/*
* File后台全局加载项
* Author易如意
* QQ51154393
* Urlwww.eruyi.cn
*/
require_once '../include/global.php';
require_once 'userdata.php';
substr($_SERVER['PHP_SELF'], strrpos($_SERVER['PHP_SELF'], '/') + 1);
$action = isset($_GET['action']) ? purge($_GET['action']) : '';
//登录验证
if ($action == 'login') {
$username = isset($_POST['user']) ? purge($_POST['user']) : '';
$password = isset($_POST['pwd']) ? purge($_POST['pwd']) : '';
if ($username == '' || $password == '') {
header('Location:./login.php?err=1');
exit;
}
if ($username == $user && $password == $pass) {
if (defined('ADM_LOG') && ADM_LOG == 1) {
Db::table('log')->add(['group' => 'adm', 'type' => 'logon', 'status' => 200, 'time' => time(), 'ip' => getip(), 'data' => json_encode($_POST)]);
} //记录日志
setcookie('ADMIN_COOKIE', $cookie, time() + 36000, '/');
header('Location:./');
exit;
} else {
header('Location:./login.php?err=2');
exit;
}
}
//退出
if ($action == 'logout') {
setcookie('ADMIN_COOKIE', ' ', time() - 36000, '/');
header('Location:./login.php');
exit;
}
$ADMIN_COOKIE = isset($_COOKIE['ADMIN_COOKIE']) ? purge($_COOKIE['ADMIN_COOKIE']) : '';
if ($ADMIN_COOKIE == $cookie) {
$islogin = true;
} else {
$islogin = false;
}
if (!$islogin) {
header('Location:./login.php?err=3');
exit;
}
/*导航配置*/
$menu_arr = myScanDir(FCPATH . ADM_EXTEND_MULU, 1);
$titlename = [];
foreach ($menu_arr as $value) {
$nav_arr = getPluginData($value);
foreach ($nav_arr as $val) {
$titlename = array_merge($titlename, [$val['file'] => $val['name']]);
}
if ($value == 'web') { //continue;
$web = $nav_arr;
} else {
if (!file_exists(FCPATH . ADM_EXTEND_MULU . $value . "/menu.php")) { //continue;
foreach ($nav_arr as $value) {
$menu[] = $value;
}
} else {
$nav = include FCPATH . ADM_EXTEND_MULU . $value . "/menu.php";
$menu[] = array_merge($nav, ['side-nav-second-level' => $nav_arr]);
}
}
}
$sortKey = array_column($menu, 'sort');
array_multisort($sortKey, SORT_ASC, $menu);
$Filename = strpos($_SERVER["QUERY_STRING"], '&') ? txt_zuo($_SERVER["QUERY_STRING"], "&") : $_SERVER["QUERY_STRING"];
$title = !empty($titlename[$Filename]) ? $titlename[$Filename] : '首页';
function getPluginData($FilePath)
{
$file_arr = myScanDir(FCPATH . ADM_EXTEND_MULU . $FilePath . '/view', 2);
$nav_arr = [];
foreach ($file_arr as $val) {
$Data = implode('', file(FCPATH . ADM_EXTEND_MULU . $FilePath . '/view/' . $val));
preg_match("/Sort:(.*)/i", $Data, $sort);
preg_match("/Hidden:(.*)/i", $Data, $hidden);
preg_match("/icons:(.*)/i", $Data, $icons);
preg_match("/Name:(.*)/i", $Data, $name);
preg_match("/Url:(.*)/i", $Data, $url);
preg_match("/Right:(.*)/i", $Data, $right);
$sort = isset($sort[1]) ? strip_tags(trim($sort[1])) : '';
$hidden = isset($hidden[1]) ? strip_tags(trim($hidden[1])) : '';
$icons = isset($icons[1]) ? strip_tags(trim($icons[1])) : '';
$name = isset($name[1]) ? strip_tags(trim($name[1])) : '';
$url = isset($url[1]) ? strip_tags(trim($url[1])) : '';
$right = isset($right[1]) ? strip_tags(trim($right[1])) : '';
//if($hidden == 'true')continue;
$nav_arr[] = ['name' => $name, 'file' => $url, 'icons' => $icons, 'right' => $right, 'sort' => $sort, 'hidden' => $hidden];
}
$sortKey = array_column($nav_arr, 'sort');
array_multisort($sortKey, SORT_ASC, $nav_arr);
return $nav_arr;
}

159
admin/header.php Normal file
View File

@ -0,0 +1,159 @@
<?php
/*
* File页头
* Author易如意
* QQ51154393
* Urlwww.eruyi.cn
*/
require_once 'globals.php';
$so = isset($_POST['so']) ? purge($_POST['so']) : '';
?>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8" />
<title><?php echo $title; ?> - 后台管理 - 易如意网络验证</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://cdn.staticfile.org/jquery/2.1.1/jquery.min.js"></script>
<!-- App favicon -->
<link rel="icon" href="../assets/images/favicon.ico">
<!-- App css -->
<link href="../assets/css/icons.min.css" rel="stylesheet" type="text/css" />
<link href="../assets/css/eruyi.min.css" rel="stylesheet" type="text/css" />
<script src="../assets/js/modal_dialog.js"></script>
</head>
<body>
<!-- Topbar Start -->
<div class="navbar-custom topnav-navbar">
<div class="container-fluid">
<!-- LOGO -->
<a href="index.php" class="topnav-logo">
<span class="topnav-logo-lg">
<img src="../assets/images/logo-light.png" alt="" height="16">
</span>
<span class="topnav-logo-sm">
<img src="../assets/images/logo_sm.png" alt="" height="16">
</span>
</a>
<ul class="list-unstyled topbar-right-menu float-right mb-0">
<li class="dropdown notification-list">
<a class="nav-link dropdown-toggle nav-user arrow-none mr-0" data-toggle="dropdown" id="topbar-userdrop" href="#" role="button" aria-haspopup="true" aria-expanded="false">
<span class="account-user-avatar">
<img src="../assets/images/users/avatar-1.jpg" alt="user-image" class="rounded-circle">
</span>
<span>
<span class="account-user-name">管理员</span>
<span class="account-position"><?php echo $user; ?></span>
</span>
</a>
<div class="dropdown-menu dropdown-menu-right dropdown-menu-animated topbar-dropdown-menu profile-dropdown" aria-labelledby="topbar-userdrop">
<!-- item-->
<div class=" dropdown-header noti-title">
<h6 class="text-overflow m-0">Welcome !</h6>
</div>
<!-- item-->
<?php foreach ($web as $val) {
if ($val['hidden'] == 'true') continue; ?>
<a href="./?<?php echo $val['file']; ?>" class="dropdown-item notify-item">
<i class="<?php echo $val['icons']; ?>"></i>
<span><?php echo $val['name']; ?></span>
</a>
<?php } ?>
<!-- item-->
<a href="./?action=logout" class="dropdown-item notify-item">
<i class="mdi mdi-account-arrow-right mr-1"></i>
<span>退出登入</span>
</a>
</div>
</li>
</ul>
<a class="button-menu-mobile disable-btn">
<div class="lines">
<span></span>
<span></span>
<span></span>
</div>
</a>
</div>
</div>
<!-- end Topbar -->
<div class="container-fluid">
<!-- Begin page -->
<div class="wrapper">
<!-- ============================================================== -->
<!-- Start Page Content here -->
<!-- ============================================================== -->
<!-- Start Content-->
<!-- ========== Left Sidebar Start ========== -->
<div class="left-side-menu">
<div class="leftbar-user">
<a href="#">
<img src="../assets/images/users/avatar-1.jpg" alt="user-image" height="42" class="rounded-circle shadow-sm">
<span class="leftbar-user-name">管理员</span>
</a>
</div>
<!--- Sidemenu -->
<ul class="metismenu side-nav">
<li class="side-nav-title side-nav-item">导航</li>
<li id="index" class="side-nav-item">
<a id="index_a" href="./?index" class="side-nav-link">
<i class="mdi mdi-chart-arc"></i>
<span>首页</span>
</a>
</li>
<?php foreach ($menu as $val) {
if (!isset($val['side-nav-second-level'])) : ?>
<li <?php if (isset($val['file'])) : ?>id="<?php echo $val['file']; ?>" <?php endif; ?> class="side-nav-item">
<a <?php if (isset($val['file'])) : ?>id="<?php echo $val['file']; ?>_a" <?php endif; ?> href="<?php echo isset($val['file']) ? './?' . $val['file'] : 'javascript: void(0);'; ?>" class="side-nav-link">
<i class="<?php echo $val['icons']; ?>"></i>
<?php if (!empty($val['right'])) : ?><span class="badge badge-success float-right"><?php $num = Db::table($val['right'])->count();
if ($num > 99) {
echo '99+';
} else {
echo $num;
} ?></span><?php endif; ?>
<span><?php echo $val['name']; ?></span>
</a>
</li>
<?php else : ?>
<li <?php if (isset($val['id'])) : ?>id="<?php echo $val['id']; ?>" <?php endif; ?> class="side-nav-item">
<a <?php if (isset($val['id'])) : ?>id="<?php echo $val['id']; ?>_a" <?php endif; ?> href="javascript: void(0);" class="side-nav-link">
<i class="<?php echo $val['icons']; ?>"></i>
<span><?php echo $val['name']; ?></span>
<span class="menu-arrow"></span>
</a>
<ul <?php if (isset($val['id'])) : ?>id="<?php echo $val['id']; ?>_ul" <?php endif; ?> class="side-nav-second-level" aria-expanded="false">
<?php foreach ($val['side-nav-second-level'] as $v) {
if ($v['hidden'] == 'true') continue; ?>
<li id="<?php echo str_ireplace('/', '_', $v['file']); ?>">
<a href="./?<?php echo $v['file']; ?>"><?php echo $v['name'];
if (!empty($v['right'])) : ?><span class="badge badge-success float-right"><?php $num = Db::table($v['right'])->count();
if ($v['right'] == 'app') {
$app_num = $num;
}
if ($num > 99) {
echo '99+';
} else {
echo $num;
} ?></span><?php endif; ?></a>
</li>
<?php } ?>
</ul>
</li>
<?php endif; ?>
<?php } ?>
<div class="clearfix"></div>
<!-- Sidebar -left -->
</div>
<!-- Left Sidebar End -->
<div class="content-page">
<div class="content">

14
admin/index.php Normal file
View File

@ -0,0 +1,14 @@
<?php
include_once 'header.php';
if($Filename == '' or $Filename == 'index'){
include(FCPATH.ADM_EXTEND_MULU."/index.php");
}else if(file_exists(FCPATH.ADM_EXTEND_MULU.str_replace("_",'/view/',$Filename).".php")){
include(FCPATH.ADM_EXTEND_MULU.str_replace("_",'/view/',$Filename).".php");
}else{
if(!strpos($Filename,"_") && file_exists(FCPATH.ADM_EXTEND_MULU.$Filename.'/view/'.$Filename.".php")){
include(FCPATH.ADM_EXTEND_MULU.$Filename.'/view/'.$Filename.".php");
}else{
include("404.php");
}
}
include_once 'footer.php';

99
admin/login.php Normal file
View File

@ -0,0 +1,99 @@
<?php
/*
* File后台登陆
* Author易如意
* QQ51154393
* Urlwww.eruyi.cn
*/
$err = isset($_GET['err']) ? intval($_GET['err']) : 0;
$errmsg = array(null, '账号密码不能为空', '账号密码有误', '您还没有登陆,请先登录!');
$error_msg = $errmsg[$err];
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>后台管理 - 易如意验证系统</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta content="A fully featured admin theme which can be used to build CRM, CMS, etc." name="description" />
<meta content="Coderthemes" name="author" />
<!-- App favicon -->
<link rel="icon" href="../assets/images/favicon.ico">
<!-- App css -->
<link href="../assets/css/icons.min.css" rel="stylesheet" type="text/css" />
<link href="../assets/css/eruyi.min.css" rel="stylesheet" type="text/css" />
</head>
<body class="authentication-bg">
<div class="account-pages mt-5 mb-5">
<div class="container">
<div class="row justify-content-center">
<div class="col-lg-5">
<div class="card">
<!-- Logo -->
<div class="card-header pt-4 pb-4 text-center bg-primary">
<a href="../">
<span><img src="../assets/images/logo.png" alt="" height="18"></span>
</a>
</div>
<div class="card-body p-4">
<div class="text-center w-75 m-auto">
<h4 class="text-dark-50 text-center mt-0 font-weight-bold"> </h4>
<p class="text-muted mb-4">输入您的账号和密码以访问管理面板。</p>
</div>
<form name="f" method="post" action="./index.php?action=login">
<div class="form-group">
<label for="emailaddress">账号</label>
<input class="form-control" type="text" placeholder="请输入账号" name="user" required>
</div>
<div class="form-group">
<label for="password">密码</label>
<input class="form-control" type="password" placeholder="请输入密码" name="pwd" required>
</div>
<div class="form-group mb-3">
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" id="checkbox-signin" checked>
<label class="custom-control-label" for="checkbox-signin">记住我</label>
</div>
</div>
<div class="form-group mb-0 text-center">
<button class="btn btn-primary" type="submit"> </button>
</div>
</form>
</div> <!-- end card-body -->
</div>
<?php if ($error_msg) : ?>
<div class="alert alert-danger alert-dismissible bg-danger text-white border-0 fade show" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
<strong>提示:</strong> <?php echo $error_msg; ?>
</div>
<?php endif; ?>
</div> <!-- end col -->
</div>
<!-- end row -->
</div>
<!-- end container -->
</div>
<!-- end page -->
<footer class="footer footer-alt">
2018 - <?php echo date('Y', time()); ?> © 易如意 - eruyi.cn
</footer>
<!-- App js -->
<script src="../assets/js/app.min.js"></script>
</body>
</html>

15
admin/userdata.php Normal file
View File

@ -0,0 +1,15 @@
<?php
/*
* File管理账号密码数据文件
* Author易如意
* QQ51154393
* Urlwww.eruyi.cn
*/
$user = 'hero920103';//后台账号
$pass = '920103';//后台密码
$cookie = '29a61ce1e4780613cc59153515edf9ec';
/* 请手动修改以上账号密码信息 */

39
api.php Normal file
View File

@ -0,0 +1,39 @@
<?php
//php防注入和XSS攻击通用过滤.
$_GET && SafeFilter($_GET);
$_POST && SafeFilter($_POST);
$_COOKIE && SafeFilter($_COOKIE);
function SafeFilter (&$arr){
$ra=Array('/([\x00-\x08,\x0b-\x0c,\x0e-\x19])/','/script/','/javascript/','/vbscript/','/expression/','/applet/','/meta/','/xml/','/blink/','/link/','/style/','/embed/','/object/','/frame/','/layer/','/title/','/bgsound/','/base/','/onload/','/onunload/','/onchange/','/onsubmit/','/onreset/','/onselect/','/onblur/','/onfocus/','/onabort/','/onkeydown/','/onkeypress/','/onkeyup/','/onclick/','/ondblclick/','/onmousedown/','/onmousemove/','/onmouseout/','/onmouseover/','/onmouseup/','/onunload/');
if (is_array($arr)){
foreach ($arr as $key => $value){
if(!is_array($value)){
if (!get_magic_quotes_gpc()){ //不对magic_quotes_gpc转义过的字符使用addslashes(),避免双重转义。
$value=addslashes($value); //给单引号(')、双引号(")、反斜线(\)与 NULNULL 字符)加上反斜线转义
}
$value=preg_replace($ra,'',$value); //删除非打印字符粗暴式过滤xss可疑字符串
$arr[$key] = htmlentities(strip_tags($value)); //去除 HTML 和 PHP 标记并转换为 HTML 实体
}else{
SafeFilter($arr[$key]);
}
}
}
}
require 'include/global.php';
$act = isset($_GET['act']) ? purge($_GET['act'],true,false) : null;
$appid = isset($_GET['app']) ? intval($_GET['app']) : 0;//appid
$sign = isset($_POST['sign']) ? (purge($_POST['sign'])) : (isset($_GET['sign']) ? purge($_GET['sign']) : '');//数据签名
$data = isset($_POST['data']) ? (purge($_POST['data'])) : (isset($_GET['data']) ? purge($_GET['data']) : '');//加密数据
if($act){
if(file_exists(FCPATH.API_EXTEND_MULU.$act.'.php')){
if(!empty($appid)){require FCPATH.API_EXTEND_MULU.'app.php';}
require FCPATH.API_EXTEND_MULU.$act.'.php';
}else{
out(400,$act);
}
}
?>

BIN
app/0707.jar Normal file

Binary file not shown.

452
app/App.php Normal file
View File

@ -0,0 +1,452 @@
<?php
/**
* shouq.sujie520.cn
**/
namespace app\api\controller;
use think\Db;
use think\Cache;
class App extends Base
{
//当前请求参数
var $_param;
public function __construct()
{
parent::__construct();
$this->_param = input();
}
//json转换扩展
private function json_encode_extra($obj, $apicode = "")
{
return json_encode($obj, JSON_UNESCAPED_SLASHES);
}
/**
* 视频json带分类
*/
public function vod_json($v)
{
if ($v == null) {
return $v;
}
$v['vod_time_add'] = date('Y-m-d H:i:s', $v['vod_time_add']);
$v['vod_content'] = strip_tags($v['vod_content']);
if (substr($v["vod_pic"], 0, 4) == "mac:") {
$v["vod_pic"] = str_replace('mac:', 'http:', $v["vod_pic"]);
}elseif (substr($v["vod_pic"], 0, 2) == "//") {
$v["vod_pic"] = str_replace('//', 'http://', $v["vod_pic"]);
} elseif (!empty($v["vod_pic"]) && substr($v["vod_pic"], 0, 4) != "http" && substr($v["vod_pic"], 0, 2) != "//") {
$v["vod_pic"] = $GLOBALS['config']['api']['vod']['imgurl'] . $v["vod_pic"];
}
if (substr($v["vod_pic_slide"], 0, 4) == "mac:") {
$v["vod_pic_slide"] = str_replace('mac:', 'http:', $v["vod_pic_slide"]);
}elseif (substr($v["vod_pic_slide"], 0, 2) == "//") {
$v["vod_pic_slide"] = str_replace('//', 'http://', $v["vod_pic_slide"]);
} elseif (!empty($v["vod_pic_slide"]) && substr($v["vod_pic_slide"], 0, 4) != "http" && substr($v["vod_pic_slide"], 0, 2) != "//") {
$v["vod_pic_slide"] = $GLOBALS['config']['api']['vod']['imgurl'] . $v["vod_pic_slide"];
}
//多播放源
$v["vod_url_with_player"] = [];
$vod_play_from_array = explode('$$$', $v["vod_play_from"]);
$play_url_array = explode('$$$', $v["vod_play_url"]);
//获取所有播放器
$all_players = config("vodplayer");
$xg_parse_players = config("vodplayer_xg_parse");
$sort = [];
foreach ($vod_play_from_array as $k => $player) {
try {
if ($all_players[$player]['show'] != null && $all_players[$player]['status'] == 1 && ($xg_parse_players[$player]['app_is_show'] == 1 || $xg_parse_players[$player]['app_is_show'] == null)) {
$player_sort = $all_players[$player]['sort'];
$player_sort = $player_sort == "" ? 0 : $player_sort;
$player_with_url = [];
$player_with_url["name"] = $all_players[$player]['show'];
$player_with_url["code"] = $all_players[$player]['from'];
$player_with_url["url"] = $play_url_array[$k];
if (empty($xg_parse_players[$player]['parse_api'])) {
$player_with_url["parse_api"] = $xg_parse_players['xg_app_player']['parse_api'];
} else {
$player_with_url["parse_api"] = $xg_parse_players[$player]['parse_api'];
}
if (empty($xg_parse_players[$player]['user_agent'])) {
$player_with_url["user_agent"] = $xg_parse_players['xg_app_player']['user_agent'];
} else {
$player_with_url["user_agent"] = $xg_parse_players[$player]['user_agent'];
}
if (empty($xg_parse_players[$player]['headers'])) {
$player_with_url["headers"] = $xg_parse_players['xg_app_player']['headers'];
} else {
$player_with_url["headers"] = $xg_parse_players[$player]['headers'];
}
if (empty($xg_parse_players[$player]['link_features'])) {
$player_with_url["link_features"] = $xg_parse_players['xg_app_player']['link_features'];
} else {
$player_with_url["link_features"] = $xg_parse_players[$player]['link_features'];
}
if (empty($xg_parse_players[$player]['un_link_features'])) {
$player_with_url["un_link_features"] = $xg_parse_players['xg_app_player']['un_link_features'];
} else {
$player_with_url["un_link_features"] = $xg_parse_players[$player]['un_link_features'];
}
$sort[] = $player_sort;
array_push($v["vod_url_with_player"], $player_with_url);
}
} catch (\Exception $e) {
}
}
array_multisort($sort, SORT_DESC, $v["vod_url_with_player"]);
return $v;
}
/**
* 视频json不带分类
*/
public function vod_json_list($res)
{
foreach ($res['list'] as $k => &$v) {
$v['vod_time_add'] = date('Y-m-d H:i:s', $v['vod_time_add']);
if (substr($v["vod_pic"], 0, 4) == "mac:") {
$v["vod_pic"] = str_replace('mac:', 'http:', $v["vod_pic"]);
}elseif (substr($v["vod_pic"], 0, 2) == "//") {
$v["vod_pic"] = str_replace('//', 'http://', $v["vod_pic"]);
} elseif (!empty($v["vod_pic"]) && substr($v["vod_pic"], 0, 4) != "http" && substr($v["vod_pic"], 0, 2) != "//") {
$v["vod_pic"] = $GLOBALS['config']['api']['vod']['imgurl'] . $v["vod_pic"];
}
if (substr($v["vod_pic_slide"], 0, 4) == "mac:") {
$v["vod_pic_slide"] = str_replace('mac:', 'http:', $v["vod_pic_slide"]);
}elseif (substr($v["vod_pic_slide"], 0, 2) == "//") {
$v["vod_pic_slide"] = str_replace('//', 'http://', $v["vod_pic_slide"]);
} elseif (!empty($v["vod_pic_slide"]) && substr($v["vod_pic_slide"], 0, 4) != "http" && substr($v["vod_pic_slide"], 0, 2) != "//") {
$v["vod_pic_slide"] = $GLOBALS['config']['api']['vod']['imgurl'] . $v["vod_pic_slide"];
}
}
return $res;
}
// ==========================接口开始===============================
/**
* 视频检索
*/
public function search()
{
$html = '';
$where = [];
if (!empty($this->_param['text'])) {
$where['vod_name'] = ['like', "%" . $this->_param['text'] . "%"];
}
//如果缓存中存在,直接返回
if (Cache::has('xgapp_search' . $this->_param['text'])) {
$cache_response = Cache::get('xgapp_search' . $this->_param['text']);
$html = $this->json_encode_extra($cache_response, "search");
echo $html;
exit;
}
$order = 'vod_time desc';
$field = 'vod_id,vod_name,vod_pic,vod_score,type_id,vod_en,vod_time_add,vod_remarks';
$limit_str = "0,20";
$list = Db::name('Vod')->field($field)->where($where)->order($order)->limit($limit_str)->select();
//分类
$type_list = model('Type')->getCache('type_list');
//用户组
$group_list = model('Group')->getCache('group_list');
foreach ($list as $k => $v) {
if (!empty($v['type_id'])) {
$list[$k]['type'] = $type_list[$v['type_id']];
$list[$k]['type_1'] = $type_list[$list[$k]['type']['type_pid']];
}
if (!empty($v['group_id'])) {
$list[$k]['group'] = $group_list[$v['group_id']];
}
}
$res = ['code' => 1, 'msg' => '搜索', 'list' => $list, "total" => sizeof($list)];
$res = $this->vod_json_list($res);
//设置到缓存中
Cache::set('xgapp_search' . $this->_param['text'], $res, 60 * 60);
$html = $this->json_encode_extra($res, "search");
echo $html;
exit;
}
public function banner()
{
//如果缓存中存在,直接返回
if (Cache::has('xgapp_banner')) {
$cache_list = Cache::get('xgapp_banner');
$response = ['code' => 1, 'msg' => '轮播图', 'list' => $cache_list];
$html = $this->json_encode_extra($response, "banner");
echo $html;
exit;
}
$html = '';
$where = [];
$where['vod_level'] = ['eq', 9];
$order = 'vod_time desc';
$field = 'vod_id,vod_name,vod_pic,vod_pic_slide,vod_score,type_id,vod_en,vod_time_add,vod_remarks';
$res = model('vod')->listData($where, $order, 1, $GLOBALS['config']['api']['vod']['pagesize'], 0, $field, 0);
foreach ($res["list"] as $k => &$v) {
if (!empty($v["vod_pic_slide"])) {
$v['vod_pic'] = $v['vod_pic_slide'];
}
}
$list_array = $this->vod_json_list($res)["list"];
//设置到缓存中
Cache::set('xgapp_banner', $list_array, 60 * 60);
$response = ['code' => 1, 'msg' => '轮播图', 'list' => $list_array];
$html = $this->json_encode_extra($response, "banner");
echo $html;
exit;
}
public function index_video()
{
//如果缓存中存在,直接返回
if (Cache::has('xgapp_index_video')) {
$cache_list = Cache::get('xgapp_index_video');
$response = ['code' => 1, 'msg' => '首页视频', 'list' => $cache_list];
$html = $this->json_encode_extra($response, "index_video");
echo $html;
exit;
}
$html = '';
$type_where = [];
$type_where["type_status"] = 1;
$type_order = 'type_sort';
$type_list = model('type')->listData($type_where, $type_order, 'tree', 1, 1000, 0, 0)["list"];
$type_list_array = [];
foreach ($type_list as $k => $v) {
$type_info["type_id"] = $v["type_id"];
$type_info["type_name"] = '精选' . $v["type_name"];
$where['type_id | type_id_1'] = ['eq', $type_info["type_id"]];
$where['vod_level'] = ['lt', 2];
$order = 'vod_level desc,vod_time desc';
$field = 'vod_id,vod_name,vod_pic,type_id,vod_remarks';
$limit_str = '6';
$list = Db::name('Vod')->field($field)->where($where)->order($order)->limit($limit_str)->select();
$res = ["list" => $list];
$type_info["vlist"] = $this->vod_json_list($res)["list"];
array_push($type_list_array, $type_info);
}
//设置到缓存中
Cache::set('xgapp_index_video', $type_list_array, 60 * 60);
$response = ['code' => 1, 'msg' => '首页视频', 'list' => $type_list_array];
$html = $this->json_encode_extra($response, "index_video");
echo $html;
exit;
}
public function nav()
{
//如果缓存中存在,直接返回
if (Cache::has('xgapp_nav')) {
$cache_list = Cache::get('xgapp_nav');
$response = ['code' => 1, 'msg' => '导航列表', 'list' => $cache_list];
$html = $this->json_encode_extra($response, "nav");
echo $html;
exit;
}
$html = '';
$type_where = [];
$type_where["type_status"] = 1;
$type_order = 'type_sort';
$type_list = model('type')->listData($type_where, $type_order, 'tree', 1, 1000, 0, 0)["list"];
$type_list_array = [];
foreach ($type_list as $k => $v) {
$type_info["type_id"] = $v["type_id"];
$type_info["type_name"] = $v["type_name"];
$type_info["type_extend"] = $v["type_extend"];
array_push($type_list_array, $type_info);
}
//设置到缓存中
Cache::set('xgapp_nav', $type_list_array, 60 * 60);
$response = ['code' => 1, 'msg' => '导航列表', 'list' => $type_list_array];
$html = $this->json_encode_extra($response, "nav");
echo $html;
exit;
}
public function video()
{
if (empty($this->_param["tid"])) {
$json = $this->json_encode_extra(['code' => 2, 'msg' => '参数验证失败'], "video");
echo $json;
exit;
}
$html = '';
$where = [];
$where['type_id | type_id_1'] = ['eq', $this->_param['tid']];
if (!empty($this->_param['class'])) {
$where['vod_class'] = ['like', "%" . $this->_param['class'] . "%"];
}
if (!empty($this->_param['area'])) {
$where['vod_area'] = ['like', "%" . $this->_param['area'] . "%"];
}
if (!empty($this->_param['lang'])) {
$where['vod_lang'] = ['like', "%" . $this->_param['lang'] . "%"];
}
if (!empty($this->_param['year'])) {
$where['vod_year'] = ['like', "%" . $this->_param['year'] . "%"];
}
if (empty($this->_param['pg'])) {
$this->_param['pg'] = 1;
}
if ($this->_param['pg'] > 25) {
$this->_param['pg'] = 25;
}
$order = 'vod_time desc';
$field = 'vod_id,vod_name,vod_pic,vod_score,type_id,vod_en,vod_time_add,vod_remarks';
$res = model('vod')->listData($where, $order, $this->_param['pg'], $GLOBALS['config']['api']['vod']['pagesize'], 0, $field, 0);
$html = $this->json_encode_extra($this->vod_json_list($res), "video");
echo $html;
exit;
}
public function video_detail()
{
if (empty($this->_param['id'])) {
$json = $this->json_encode_extra(['code' => 2, 'msg' => '参数验证失败'], "video_detail");
echo $json;
exit;
}
$html = '';
$where = [];
if (!empty($this->_param['id'])) {
$where['vod_id'] = ['eq', $this->_param['id']];
}
if (empty($this->_param['id'])) {
$where['vod_id'] = ['eq', 1];
}
$order = 'vod_time desc';
$field = '*';
$res = Db::name('Vod')->field($field)->where($where)->find();
if (empty($res)) {
$json = $this->json_encode_extra(['code' => 404, 'msg' => '抱歉,该视频已下架'], "video_detail");
echo $json;
exit;
}
$detail = $this->vod_json($res);
$detail["trysee"] = config("maccms")["user"]["trysee"];
//如果当前不是会员载入20条随机广告
if ($detail["permission"] != "vip") {
$where = [];
$where['status'] = ['eq', 1];
$where['start_time'] = ['lt', time()];
$where['end_time'] = ['gt', time()];
$start = 0;
$limit = 20;
$order = 'rand()';
$field = 'id,name,content,req_type,req_content,headers,time,skip_time';
//视频播放前
$init_advert_list = [];
$enable = config('maccms')["xg_advert_config"]["config_video_start"];
if ($enable == 1) {
$where['position'] = ['eq', 3];
$limit_str = $start . "," . $limit;
$init_advert_list = Db::table('xg_app_advert')->field($field)->where($where)->orderRaw($order)->limit($limit_str)->select();
}
foreach ($init_advert_list as $k => &$v) {
if (substr($v["content"], 0, 4) == "mac:") {
$v["content"] = str_replace('mac:', 'http:', $v["content"]);
} elseif (substr($v["content"], 0, 2) == "//") {
$v["content"] = str_replace('//', 'http://', $v["content"]);
} elseif (!empty($v["content"]) && substr($v["content"], 0, 4) != "http" && substr($v["content"], 0, 2) != "//") {
$v["content"] = $GLOBALS['config']['api']['vod']['imgurl'] . $v["content"];
}
$init_advert_list[$k] = $v;
}
//视频暂停
$pause_advert_list = [];
$enable = config('maccms')["xg_advert_config"]["config_video_pause"];
if ($enable == 1) {
$where['position'] = ['eq', 4];
$limit_str = $start . "," . $limit;
$pause_advert_list = Db::table('xg_app_advert')->field($field)->where($where)->orderRaw($order)->limit($limit_str)->select();
}
foreach ($pause_advert_list as $k => &$v) {
if (substr($v["content"], 0, 4) == "mac:") {
$v["content"] = str_replace('mac:', 'http:', $v["content"]);
} elseif (substr($v["content"], 0, 2) == "//") {
$v["content"] = str_replace('//', 'http://', $v["content"]);
} elseif (!empty($v["content"]) && substr($v["content"], 0, 4) != "http" && substr($v["content"], 0, 2) != "//") {
$v["content"] = $GLOBALS['config']['api']['vod']['imgurl'] . $v["content"];
}
$pause_advert_list[$k] = $v;
}
$detail["init_advert_list"] = $init_advert_list;
$detail["pause_advert_list"] = $pause_advert_list;
}
if ($detail["unlock"]) {
$response = ['code' => 1024, 'msg' => '权限不足', 'data' => $detail];
$html = $this->json_encode_extra($response, "video_detail");
echo $html;
exit;
}
$response = ['code' => 1, 'msg' => '视频详情', 'data' => $detail];
$html = $this->json_encode_extra($response, "video_detail");
echo $html;
exit;
}
}

BIN
app/custom_spider.jar Normal file

Binary file not shown.

BIN
app/fan813.jar Normal file

Binary file not shown.

BIN
app/img/img.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
app/img/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
app/jar/XYQ.jar Normal file

Binary file not shown.

BIN
app/jar/fan.txt Normal file

Binary file not shown.

BIN
app/jar/pg.jar Normal file

Binary file not shown.

BIN
app/jar/tvbox.txt Normal file

Binary file not shown.

773
app/json/duboku.json Normal file
View File

@ -0,0 +1,773 @@
{
"author": "takagen99",
"ua": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36",
"homeUrl": "https://www.duboku.tv/",
"dcVipFlag": "true",
"dcPlayUrl": "true",
"cateNode": "//ul[contains(@class,'nav-menu')]/li/a[contains(@href, 'vodtype')]",
"cateName": "/text()",
"cateId": "/@href",
"cateIdR": "/vodtype/(\\w+).html",
"cateManual": {
"陆剧": "13",
"日韩剧": "15",
"短剧": "21",
"英美剧": "16",
"台泰剧": "14",
"港剧": "20",
"综艺": "3",
"动漫": "4"
},
"homeVodNode": "//ul[contains(@class,'myui-vodlist')]/li/div/a",
"homeVodName": "/@title",
"homeVodId": "/@href",
"homeVodIdR": "/voddetail/(\\w+).html",
"homeVodImg": "/@data-original",
"homeVodImgR": "\\S+(http\\S+)",
"homeVodMark": "//span[contains(@class,'pic-text')]/text()",
"cateUrl": "https://www.duboku.tv/vodshow/{cateId}-{area}-{by}------{catePg}---{year}.html",
"cateVodNode": "//ul[contains(@class,'myui-vodlist')]/li/div/a",
"cateVodName": "/@title",
"cateVodId": "/@href",
"cateVodIdR": "/voddetail/(\\w+).html",
"cateVodImg": "/@data-original",
"cateVodImgR": "\\S+(http\\S+)",
"cateVodMark": "//span[contains(@class,'pic-text')]/text()",
"dtUrl": "https://w.duboku.io/voddetail/{vid}.html",
"dtNode": "//body",
"dtName": "//div[contains(@class,'myui-content__thumb')]/a/@title",
"dtNameR": "",
"dtImg": "//div[contains(@class,'myui-content__thumb')]/a/img/@data-original",
"dtImgR": "",
"dtCate": "//div[contains(@class,'myui-content__detail')]/p/span[contains(text(), '分类')]/following-sibling::a/text()",
"dtYear": "//div[contains(@class,'myui-content__detail')]/p/span[contains(text(), '年份')]/following-sibling::a/text()",
"dtArea": "//div[contains(@class,'myui-content__detail')]/p/span[contains(text(), '地区')]/following-sibling::a/text()",
"dtMark": "//div[contains(@class,'myui-content__detail')]/p/span[contains(text(), '更新')]/following-sibling::a/text()",
"dtDirector": "//div[contains(@class,'myui-content__detail')]/p/span[contains(text(), '导演')]/following-sibling::a/text()",
"dtActor": "//div[contains(@class,'myui-content__detail')]/p/span[contains(text(), '主演')]/following-sibling::a/text()",
"dtDesc": "//div[contains(@class,'myui-content__detail')]/p/span[contains(text(), '简介')]/following-sibling::a/text()",
"dtFromNode": "//ul[contains(@class,'nav-tabs')]/li/a",
"dtFromName": "/text()",
"dtFromNameR": "",
"dtUrlNode": "//ul[contains(@class,'myui-content__list')]",
"dtUrlSubNode": "/li/a",
"dtUrlId": "/@href",
"dtUrlIdR": "/vodplay/(\\S+).html",
"dtUrlName": "/text()",
"dtUrlNameR": "",
"playUrl": "https://w.duboku.io/vodplay/{playUrl}.html",
"playUa": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36",
"playReferer": "https://w.duboku.io/",
"searchUrl": "https://w.duboku.io/index.php/ajax/suggest?mid=1&wd={wd}&limit=10",
"scVodNode": "json:list",
"scVodName": "name",
"scVodId": "id",
"scVodIdR": "",
"scVodImg": "pic",
"scVodMark": "",
"filter": {
"13": [
{
"key": "year",
"name": "年份",
"value": [
{
"n": "全部",
"v": ""
},
{
"n": "2023",
"v": "2023"
},
{
"n": "2022",
"v": "2022"
},
{
"n": "2021",
"v": "2021"
},
{
"n": "2020",
"v": "2020"
},
{
"n": "2019",
"v": "2019"
},
{
"n": "2018",
"v": "2018"
},
{
"n": "2017",
"v": "2017"
}
]
},
{
"key": "by",
"name": "排序",
"value": [
{
"n": "排序",
"v": ""
},
{
"n": "时间",
"v": "time"
},
{
"n": "人气",
"v": "hits"
},
{
"n": "评分",
"v": "score"
}
]
}
],
"14": [
{
"key": "year",
"name": "年份",
"value": [
{
"n": "全部",
"v": ""
},
{
"n": "2023",
"v": "2023"
},
{
"n": "2022",
"v": "2022"
},
{
"n": "2021",
"v": "2021"
},
{
"n": "2020",
"v": "2020"
},
{
"n": "2019",
"v": "2019"
},
{
"n": "2018",
"v": "2018"
},
{
"n": "2017",
"v": "2017"
}
]
},
{
"key": "by",
"name": "排序",
"value": [
{
"n": "排序",
"v": ""
},
{
"n": "时间",
"v": "time"
},
{
"n": "人气",
"v": "hits"
},
{
"n": "评分",
"v": "score"
}
]
}
],
"16": [
{
"key": "year",
"name": "年份",
"value": [
{
"n": "全部",
"v": ""
},
{
"n": "2023",
"v": "2023"
},
{
"n": "2022",
"v": "2022"
},
{
"n": "2021",
"v": "2021"
},
{
"n": "2020",
"v": "2020"
},
{
"n": "2019",
"v": "2019"
},
{
"n": "2018",
"v": "2018"
},
{
"n": "2017",
"v": "2017"
}
]
},
{
"key": "by",
"name": "排序",
"value": [
{
"n": "排序",
"v": ""
},
{
"n": "时间",
"v": "time"
},
{
"n": "人气",
"v": "hits"
},
{
"n": "评分",
"v": "score"
}
]
}
],
"15": [
{
"key": "year",
"name": "年份",
"value": [
{
"n": "全部",
"v": ""
},
{
"n": "2023",
"v": "2023"
},
{
"n": "2022",
"v": "2022"
},
{
"n": "2021",
"v": "2021"
},
{
"n": "2020",
"v": "2020"
},
{
"n": "2019",
"v": "2019"
},
{
"n": "2018",
"v": "2018"
},
{
"n": "2017",
"v": "2017"
}
]
},
{
"key": "by",
"name": "排序",
"value": [
{
"n": "排序",
"v": ""
},
{
"n": "时间",
"v": "time"
},
{
"n": "人气",
"v": "hits"
},
{
"n": "评分",
"v": "score"
}
]
}
],
"2": [
{
"key": "cateId",
"name": "类型",
"value": [
{
"n": "全部",
"v": ""
},
{
"n": "陆剧",
"v": "13"
},
{
"n": "日韩剧",
"v": "15"
},
{
"n": "英美剧",
"v": "16"
},
{
"n": "台泰剧",
"v": "14"
},
{
"n": "港剧",
"v": "20"
}
]
},
{
"key": "area",
"name": "地区",
"value": [
{
"n": "全部",
"v": ""
},
{
"n": "内地",
"v": "内地"
},
{
"n": "韩国",
"v": "韩国"
},
{
"n": "香港",
"v": "香港"
},
{
"n": "台湾",
"v": "台湾"
},
{
"n": "美国",
"v": "美国"
},
{
"n": "英国",
"v": "英国"
},
{
"n": "巴西",
"v": "巴西"
},
{
"n": "西班牙",
"v": "西班牙"
},
{
"n": "泰国",
"v": "泰国"
},
{
"n": "德国",
"v": "德国"
},
{
"n": "法国",
"v": "法国"
},
{
"n": "日本",
"v": "日本"
},
{
"n": "荷兰",
"v": "荷兰"
}
]
},
{
"key": "year",
"name": "年份",
"value": [
{
"n": "全部",
"v": ""
},
{
"n": "2023",
"v": "2023"
},
{
"n": "2022",
"v": "2022"
},
{
"n": "2021",
"v": "2021"
},
{
"n": "2020",
"v": "2020"
},
{
"n": "2019",
"v": "2019"
},
{
"n": "2018",
"v": "2018"
},
{
"n": "2017",
"v": "2017"
}
]
},
{
"key": "by",
"name": "排序",
"value": [
{
"n": "排序",
"v": ""
},
{
"n": "时间",
"v": "time"
},
{
"n": "人气",
"v": "hits"
},
{
"n": "评分",
"v": "score"
}
]
}
],
"3": [
{
"key": "area",
"name": "地区",
"value": [
{
"n": "全部",
"v": ""
},
{
"n": "内地",
"v": "内地"
},
{
"n": "香港",
"v": "香港"
},
{
"n": "台湾",
"v": "台湾"
},
{
"n": "韩国",
"v": "韩国"
},
{
"n": "美国",
"v": "美国"
}
]
},
{
"key": "year",
"name": "年份",
"value": [
{
"n": "全部",
"v": ""
},
{
"n": "2023",
"v": "2023"
},
{
"n": "2022",
"v": "2022"
},
{
"n": "2021",
"v": "2021"
},
{
"n": "2020",
"v": "2020"
},
{
"n": "2019",
"v": "2019"
}
]
},
{
"key": "by",
"name": "排序",
"value": [
{
"n": "排序",
"v": ""
},
{
"n": "时间",
"v": "time"
},
{
"n": "人气",
"v": "hits"
},
{
"n": "评分",
"v": "score"
}
]
}
],
"4": [
{
"key": "area",
"name": "地区",
"value": [
{
"n": "全部",
"v": ""
},
{
"n": "国产",
"v": "国产"
},
{
"n": "日本",
"v": "日本"
},
{
"n": "美国",
"v": "美国"
},
{
"n": "法国",
"v": "法国"
},
{
"n": "其他",
"v": "其他"
}
]
},
{
"key": "year",
"name": "年份",
"value": [
{
"n": "全部",
"v": ""
},
{
"n": "2023",
"v": "2023"
},
{
"n": "2022",
"v": "2022"
},
{
"n": "2021",
"v": "2021"
},
{
"n": "2020",
"v": "2020"
},
{
"n": "2019",
"v": "2019"
},
{
"n": "2018",
"v": "2018"
},
{
"n": "2017",
"v": "2017"
}
]
},
{
"key": "by",
"name": "排序",
"value": [
{
"n": "排序",
"v": ""
},
{
"n": "时间",
"v": "time"
},
{
"n": "人气",
"v": "hits"
},
{
"n": "评分",
"v": "score"
}
]
}
],
"20": [
{
"key": "year",
"name": "年份",
"value": [
{
"n": "全部",
"v": ""
},
{
"n": "2023",
"v": "2023"
},
{
"n": "2022",
"v": "2022"
},
{
"n": "2021",
"v": "2021"
},
{
"n": "2020",
"v": "2020"
},
{
"n": "2019",
"v": "2019"
},
{
"n": "2018",
"v": "2018"
},
{
"n": "2017",
"v": "2017"
}
]
},
{
"key": "by",
"name": "排序",
"value": [
{
"n": "排序",
"v": ""
},
{
"n": "时间",
"v": "time"
},
{
"n": "人气",
"v": "hits"
},
{
"n": "评分",
"v": "score"
}
]
}
],
"21": [
{
"key": "year",
"name": "年份",
"value": [
{
"n": "全部",
"v": ""
},
{
"n": "2023",
"v": "2023"
},
{
"n": "2022",
"v": "2022"
},
{
"n": "2021",
"v": "2021"
},
{
"n": "2020",
"v": "2020"
},
{
"n": "2019",
"v": "2019"
},
{
"n": "2018",
"v": "2018"
},
{
"n": "2017",
"v": "2017"
}
]
},
{
"key": "by",
"name": "排序",
"value": [
{
"n": "排序",
"v": ""
},
{
"n": "时间",
"v": "time"
},
{
"n": "人气",
"v": "hits"
},
{
"n": "评分",
"v": "score"
}
]
}
]
}
}

783
app/list.txt Normal file
View File

@ -0,0 +1,783 @@
中央台,#genre#
CCTV1,mitv://generationnexxxt.com:19806/f1e3bc8a344e49dab603272c8fd2641e
CCTV1,http://39.134.66.66/PLTV/88888888/224/3221225816/index.m3u8
CCTV2,mitv://generationnexxxt.com:19806/ce08ee69cea5402c99bf285704eac3e5
CCTV2,http://39.134.66.66/PLTV/88888888/224/3221225599/index.m3u8
CCTV3,mitv://generationnexxxt.com:19806/784f6703531044be9cee14b793948d30
CCTV3,http://39.134.66.66/PLTV/88888888/224/3221225799/index.m3u8
CCTV4,mitv://generationnexxxt.com:19806/50c3e18e04bf478db59251455cf3d309
CCTV4,http://39.134.66.66/PLTV/88888888/224/3221225797/index.m3u8
CCTV5,mitv://generationnexxxt.com:19806/7d00bdeddb6c422796e62ae9e8b9398d
CCTV5,http://39.134.66.66/PLTV/88888888/224/3221225818/index.m3u8
CCTV5+,mitv://generationnexxxt.com:19806/5b390808c064415fa55fa30feb8788ff
CCTV5+,http://39.134.66.66/PLTV/88888888/224/3221225507/index.m3u8
CCTV6,mitv://generationnexxxt.com:19806/3ec70c48b2024e4f9210169aec2914c7
CCTV6,http://39.134.66.66/PLTV/88888888/224/3221225814/index.m3u8
CCTV7,mitv://generationnexxxt.com:19806/e70ef03e57794075962ec3960df5b167
CCTV7,http://39.134.66.66/PLTV/88888888/224/3221225671/index.m3u8
CCTV8,mitv://generationnexxxt.com:19806/7c422f17b94c47928316bba288c64a25
CCTV8,http://39.134.66.66/PLTV/88888888/224/3221225795/index.m3u8
CCTV9,mitv://generationnexxxt.com:19806/1d25488429514e78ab4d100819bece3e
CCTV9,http://39.134.66.66/PLTV/88888888/224/3221225676/index.m3u8
CCTV10,mitv://generationnexxxt.com:19806/db6e0eae415d4d3c80389e51f8aac382
CCTV10,http://39.134.66.66/PLTV/88888888/224/3221225677/index.m3u8
CCTV11,mitv://generationnexxxt.com:19806/aed547d30ca64a089f9b9adad8d9ee91
CCTV11,http://39.134.66.66/PLTV/88888888/224/3221225517/index.m3u8
CCTV12,mitv://generationnexxxt.com:19806/70a7e5f93ab14d978706c237fe142277
CCTV12,http://39.134.66.66/PLTV/88888888/224/3221225669/index.m3u8
CCTV13,mitv://generationnexxxt.com:19806/89e640d10d2646d3b7580c9bd85e9565
CCTV13,http://39.134.66.66/PLTV/88888888/224/3221225812/index.m3u8
CCTV13,https://live-play.cctvnews.cctv.com/cctv/merge_cctv13.m3u8
CCTV14,mitv://generationnexxxt.com:19806/5ce5a7ff03b541cc8ef405312b4fec09
CCTV14,http://39.134.66.66/PLTV/88888888/224/3221225674/index.m3u8
CCTV15,mitv://generationnexxxt.com:19806/8914df6967f546eb8cf20ea35946ad8d
CCTV15,http://39.134.66.66/PLTV/88888888/224/3221225513/index.m3u8
CCTV17,http://39.134.66.66/PLTV/88888888/224/3221225708/index.m3u8
地方台,#genre#
北京卫视,mitv://generationnexxxt.com:19806/8d7d0547db754c32bca6011693893b40
天津卫视,mitv://generationnexxxt.com:19806/0d7fa1ec8c4348e29bc3f09a38ae3691
河北卫视,mitv://generationnexxxt.com:19806/f0390f4cc1fa4b9991338bc6426deb17
黑龙江卫视,mitv://generationnexxxt.com:19806/2f690600a9454710b15b0e90853268c3
辽宁卫视,mitv://generationnexxxt.com:19806/4b1903b35f804f1180a4b346efbabfc9
东方卫视,mitv://generationnexxxt.com:19806/10521db17e054dbeba85448ac091ae64
江苏卫视,mitv://generationnexxxt.com:19806/13f3f27751184d95902e5c588264551e
浙江卫视,http://ali-m-l.cztv.com/channels/lantian/channel001/1080p.m3u8
浙江卫视,mitv://generationnexxxt.com:19806/7bf4b3a65eaf421ab6d71bd8dcc4547a
江西卫视,mitv://generationnexxxt.com:19806/d3548b106a7d45b4972427c3a75135ab
山东卫视,mitv://generationnexxxt.com:19806/be77ccef4df042ab909e0a2586844431
东南卫视,mitv://generationnexxxt.com:19806/00aae4669ca24ddabf43997323ceef8e
湖北卫视,mitv://generationnexxxt.com:19806/7553b94400ac4d85b752579acb37c0ce
湖南卫视,mitv://generationnexxxt.com:19806/45dc7947c5574ebfb0e68e5d0a537ed0
深圳卫视,mitv://generationnexxxt.com:19806/b8c8ef10f65649c9a43388d771203f61
广东卫视,mitv://generationnexxxt.com:19806/cf7073fbb4c5490a86aca002247700f9
广西卫视,mitv://generationnexxxt.com:19806/eb435193f43d4c8ca09c9ce477d4d7b9
重庆卫视,mitv://generationnexxxt.com:19806/c173700eaecc412695b37ac062b6abac
云南卫视,mitv://generationnexxxt.com:19806/9203ba029385410793e3f2b7bffb3335
星空卫视,mitv://generationnexxxt.com:19806/0b87528420394614b1016123ff4fda4c
大湾区卫视,mitv://generationnexxxt.com:19806/587bc565d5a4413987fdce380a48a332
珠江台,mitv://generationnexxxt.com:19806/a050c8e736174de681b13b8ebd2ce3c4
小地方,#genre#
义乌新闻综合,https://44911.hlsplay.aodianyun.com/tv_radio_44911/tv_channel_1796.m3u8?auth_key=4830573978-0-0-92824c2c03f95906a3c49a4aa28f1709&extra_key=Yc1XsmxOKy2UBoPM4Wy5vCPsEYqnj06taCR2SRB2Xrg2w28NPilH03KdIbbM5wgSql-VBohSnoO9AOKl94q2t2DWMftz-XB-2qUX-UjXcS80StcSZahBFjrKLivXaRjiY5r2NOMKWMKFbv-S0Bz2G6iEXgCK8yGjtrFHDcPfAQEE0pvXq0Bwy34b7We8zARN&ali_ffmpeg_version=mpengine
浙江钱江都市,http://ali-m-l.cztv.com/channels/lantian/channel002/1080p.m3u8
浙江经济生活,http://ali-m-l.cztv.com/channels/lantian/channel003/1080p.m3u8
浙江教科影院,http://ali-m-l.cztv.com/channels/lantian/channel004/1080p.m3u8
浙江民生休闲,http://ali-m-l.cztv.com/channels/lantian/channel006/1080p.m3u8
浙江新闻,http://ali-m-l.cztv.com/channels/lantian/channel007/1080p.m3u8
浙江少儿,http://ali-m-l.cztv.com/channels/lantian/channel008/1080p.m3u8
中国蓝新闻,http://ali-m-l.cztv.com/channels/lantian/channel009/1080p.m3u8
浙江国际,http://ali-m-l.cztv.com/channels/lantian/channel010/1080p.m3u8
数码时代,http://ali-m-l.cztv.com/channels/lantian/channel012/1080p.m3u8
武义新闻综合,http://l.cztvcloud.com/channels/lantian/SXwuyi1/720p.m3u8?zzhed
平湖新闻综合,http://l.cztvcloud.com/channels/lantian/SXpinghu1/720p.m3u8?zzhed
平湖民生休闲,http://l.cztvcloud.com/channels/lantian/SXpinghu2/720p.m3u8?zzhed
萧山新闻综合,http://l.cztvcloud.com/channels/lantian/SXxiaoshan1/720p.m3u8?zzhed
萧山生活频道,http://l.cztvcloud.com/channels/lantian/SXxiaoshan2/720p.m3u8?zzhed
淳安电视台,https://wtmtyoutlive.watonemt.com/f2p7vq/lf76v9.m3u8?zzhed
淳安电视台,https://wtmtylive.yunshicloud.com/tbziu1/ad592j.m3u8?zzhed
余杭综合频道,http://l.cztvcloud.com/channels/lantian/SXyuhang1/720p.m3u8?zzhed
余杭未来E频道,http://l.cztvcloud.com/channels/lantian/SXyuhang3/720p.m3u8?zzhed
余姚新闻综合,http://l.cztvcloud.com/channels/lantian/SXyuyao1/720p.m3u8?zzhed
余姚姚江文化,http://l.cztvcloud.com/channels/lantian/SXyuyao3/720p.m3u8?zzhed
嵊州新闻综合,http://l.cztvcloud.com/channels/lantian/SXshengzhou1/720p.m3u8?zzhed
嵊州新闻综合,https://hlsv2.quklive.com/live/1626935015913208/index.m3u8?zzhed
诸暨新闻综合,http://l.cztvcloud.com/channels/lantian/SXzhuji3/720p.m3u8?zzhed
上虞新闻综合,http://l.cztvcloud.com/channels/lantian/SXshangyu1/720p.m3u8?zzhed
上虞文化影院,http://l.cztvcloud.com/channels/lantian/SXshangyu2/720p.m3u8?zzhed
上虞新商都,http://l.cztvcloud.com/channels/lantian/SXshangyu3/720p.m3u8?zzhed
海宁新闻综合,http://live.hndachao.cn/xwzh/sd/live.m3u8?zzhed
海宁生活服务,http://live.hndachao.cn/shfw/sd/live.m3u8?zzhed
兰溪新闻综合,http://l.cztvcloud.com/channels/lantian/SXlanxi1/720p.m3u8?zzhed
咪咕移动,#genre#
北京冬奥纪实,http://39.134.66.66/PLTV/88888888/224/3221225670/index.m3u8
北京卡酷少儿,http://39.134.66.66/PLTV/88888888/224/3221225562/index.m3u8
北京卫视,http://39.134.66.66/PLTV/88888888/224/3221225678/index.m3u8
重庆卫视,http://39.134.66.66/PLTV/88888888/224/3221225502/index.m3u8
大庆公共,http://39.134.66.66/PLTV/88888888/224/3221225734/index.m3u8
大庆新闻综合,http://39.134.66.66/PLTV/88888888/224/3221225736/index.m3u8
东方卫视,http://39.134.66.66/PLTV/88888888/224/3221225672/index.m3u8
东南卫视,http://39.134.66.66/PLTV/88888888/224/3221225500/index.m3u8
甘肃卫视,http://39.134.66.66/PLTV/88888888/224/3221225584/index.m3u8
贵州卫视,http://39.134.66.66/PLTV/88888888/224/3221225576/index.m3u8
哈尔滨生活,http://39.134.66.66/PLTV/88888888/224/3221225698/index.m3u8
哈尔滨新闻综合,http://39.134.66.66/PLTV/88888888/224/3221225684/index.m3u8
哈尔滨影视,http://39.134.66.66/PLTV/88888888/224/3221225700/index.m3u8
哈尔滨娱乐,http://39.134.66.66/PLTV/88888888/224/3221225699/index.m3u8
哈尔滨资讯,http://39.134.66.66/PLTV/88888888/224/3221225697/index.m3u8
海南卫视,http://39.134.66.66/PLTV/88888888/224/3221225530/index.m3u8
河北卫视,http://39.134.66.66/PLTV/88888888/224/3221225495/index.m3u8
鹤岗公共,http://39.134.66.66/PLTV/88888888/224/3221225787/index.m3u8
鹤岗新闻综合,http://39.134.66.66/PLTV/88888888/224/3221225785/index.m3u8
黑莓电竞,http://39.134.66.66/PLTV/88888888/224/3221225559/index.m3u8
黑莓电影,http://39.134.66.66/PLTV/88888888/224/3221225681/index.m3u8
黑莓动画,http://39.134.66.66/PLTV/88888888/224/3221225529/index.m3u8
湖北卫视,http://39.134.66.66/PLTV/88888888/224/3221225569/index.m3u8
湖南金鹰卡通,http://39.134.66.66/PLTV/88888888/224/3221225561/index.m3u8
湖南卫视,http://39.134.66.66/PLTV/88888888/224/3221225506/index.m3u8
江苏好享购物,http://39.134.66.66/PLTV/88888888/224/3221225695/index.m3u8
江苏卫视,http://39.134.66.66/PLTV/88888888/224/3221225503/index.m3u8
江苏优漫卡通,http://39.134.66.66/PLTV/88888888/224/3221225556/index.m3u8
辽宁卫视,http://39.134.66.66/PLTV/88888888/224/3221225499/index.m3u8
内蒙古卫视,http://39.134.66.66/PLTV/88888888/224/3221225577/index.m3u8
宁夏卫视,http://39.134.66.66/PLTV/88888888/224/3221225579/index.m3u8
七台河公共,http://39.134.66.66/PLTV/88888888/224/3221225800/index.m3u8
青海安多卫视,http://39.134.66.66/PLTV/88888888/224/3221225531/index.m3u8
青海卫视,http://39.134.66.66/PLTV/88888888/224/3221225573/index.m3u8
求索动物8M,http://39.134.66.66/PLTV/88888888/224/3221225730/index.m3u8
求索纪录8M,http://39.134.66.66/PLTV/88888888/224/3221225713/index.m3u8
求索科学8M,http://39.134.66.66/PLTV/88888888/224/3221225728/index.m3u8
求索生活8M,http://39.134.66.66/PLTV/88888888/224/3221225715/index.m3u8
山东教育卫视,http://39.134.66.66/PLTV/88888888/224/3221225558/index.m3u8
山西卫视,http://39.134.66.66/PLTV/88888888/224/3221225496/index.m3u8
陕西卫视,http://39.134.66.66/PLTV/88888888/224/3221225567/index.m3u8
上海哈哈炫动,http://39.134.66.66/PLTV/88888888/224/3221225534/index.m3u8
上海纪实人文,http://39.134.66.66/PLTV/88888888/224/3221225673/index.m3u8
深圳卫视,http://39.134.66.66/PLTV/88888888/224/3221225668/index.m3u8
四川康巴卫视,http://39.134.66.66/PLTV/88888888/224/3221225527/index.m3u8
天津卫视,http://39.134.66.66/PLTV/88888888/224/3221225665/index.m3u8
西藏卫视,http://39.134.66.66/PLTV/88888888/224/3221225570/index.m3u8
新疆卫视,http://39.134.66.66/PLTV/88888888/224/3221225582/index.m3u8
浙江卫视,http://39.134.66.66/PLTV/88888888/224/3221225514/index.m3u8
中国教育1,http://39.134.66.66/PLTV/88888888/224/3221225563/index.m3u8
综合,#genre#
动漫秀场,mitv://generationnexxxt.com:19806/b04bd3e03b1747aab44579ca81c664c8
魅力足球,mitv://generationnexxxt.com:19806/ca7a1a18635e453a9a77e5fd5d425e89
五星体育,mitv://generationnexxxt.com:19806/d75057c993f84e7c86f94e8f1e56ad24
广东体育,mitv://generationnexxxt.com:19806/bb744a1252da46a6a2ae5546f4da7c72
私人影院,mitv://generationnexxxt.com:19806/3cfadd5e9af14d6db652b3c23acd7a7d
CHC动作电影,mitv://generationnexxxt.com:19806/1b4ebad47ed94c6291646a4a5d1ff3b6
广东影视,mitv://generationnexxxt.com:19806/f2dbc62d3b0b4af3ac2420174eadf202
CHC高清电影,mitv://generationnexxxt.com:19806/02385419696a411db959037c2190cf11
CHC家庭影院,mitv://generationnexxxt.com:19806/28fb3856055c452db8f17441c99f21cf
咪咕,#genre#
咪咕视频1,http://39.134.66.66/PLTV/88888888/224/3221225643/index.m3u8
咪咕视频2,http://39.134.66.66/PLTV/88888888/224/3221225648/index.m3u8
咪咕视频3,http://39.134.66.66/PLTV/88888888/224/3221225639/index.m3u8
咪咕视频4,http://39.134.66.66/PLTV/88888888/224/3221225652/index.m3u8
咪咕视频5,http://39.134.66.66/PLTV/88888888/224/3221225647/index.m3u8
咪咕视频6,http://39.134.66.66/PLTV/88888888/224/3221225645/index.m3u8
咪咕视频7,http://39.134.66.66/PLTV/88888888/224/3221225650/index.m3u8
咪咕视频8,http://39.134.66.66/PLTV/88888888/224/3221225641/index.m3u8
咪咕视频9,http://39.134.66.66/PLTV/88888888/224/3221225617/index.m3u8
咪咕视频10,http://39.134.66.66/PLTV/88888888/224/3221225651/index.m3u8
咪咕视频11,http://39.134.66.66/PLTV/88888888/224/3221225619/index.m3u8
咪咕视频12,http://39.134.66.66/PLTV/88888888/224/3221225611/index.m3u8
咪咕视频13,http://39.134.66.66/PLTV/88888888/224/3221225649/index.m3u8
咪咕视频14,http://39.134.66.66/PLTV/88888888/224/3221225620/index.m3u8
咪咕视频15,http://39.134.66.66/PLTV/88888888/224/3221225613/index.m3u8
咪咕视频16,http://39.134.66.66/PLTV/88888888/224/3221225658/index.m3u8
咪咕视频8M1,http://39.134.66.66/PLTV/88888888/224/3221225762/index.m3u8
咪咕视频8M2,http://39.134.66.66/PLTV/88888888/224/3221225749/index.m3u8
咪咕视频8M3,http://39.134.66.66/PLTV/88888888/224/3221225758/index.m3u8
咪咕视频8M4,http://39.134.66.66/PLTV/88888888/224/3221225764/index.m3u8
咪咕视频8M5,http://39.134.66.66/PLTV/88888888/224/3221225747/index.m3u8
咪咕视频8M6,http://39.134.66.66/PLTV/88888888/224/3221225766/index.m3u8
咪咕视频8M7,http://39.134.66.66/PLTV/88888888/224/3221225760/index.m3u8
咪咕视频8M8,http://39.134.66.66/PLTV/88888888/224/3221225756/index.m3u8
咪咕视频8M9,http://39.134.66.66/PLTV/88888888/224/3221225745/index.m3u8
咪咕视频8M10,http://39.134.66.66/PLTV/88888888/224/3221225735/index.m3u8
咪咕视频8M11,http://39.134.66.66/PLTV/88888888/224/3221225741/index.m3u8
咪咕视频8M12,http://39.134.66.66/PLTV/88888888/224/3221225739/index.m3u8
咪咕视频8M13,http://39.134.66.66/PLTV/88888888/224/3221225654/index.m3u8
咪咕视频 30M2160HDR,http://39.134.66.66/PLTV/88888888/224/3221225655/index.m3u8
咪咕直播,http://39.134.66.66/PLTV/88888888/224/3221225782/index.m3u8
NewTV,#genre#
NewTV爱情喜剧,http://39.134.66.66/PLTV/88888888/224/3221225533/index.m3u8
NewTV超级电视剧,http://39.134.66.66/PLTV/88888888/224/3221225637/index.m3u8
NewTV超级电影,http://39.134.66.66/PLTV/88888888/224/3221225644/index.m3u8
NewTV超级体育,http://39.134.66.66/PLTV/88888888/224/3221225635/index.m3u8
NewTV超级综艺,http://39.134.66.66/PLTV/88888888/224/3221225642/index.m3u8
NewTV潮妈辣婆,http://39.134.66.66/PLTV/88888888/224/3221225542/index.m3u8
NewTV东北热剧,http://39.134.66.66/PLTV/88888888/224/3221225679/index.m3u8
NewTV动作电影,http://39.134.66.66/PLTV/88888888/224/3221225555/index.m3u8
NewTV古装剧场,http://39.134.66.66/PLTV/88888888/224/3221225524/index.m3u8
NewTV家庭剧场,http://39.134.66.66/PLTV/88888888/224/3221225538/index.m3u8
NewTV家庭剧场,http://39.134.66.66/PLTV/88888888/224/3221225682/index.m3u8
NewTV金牌综艺,http://39.134.66.66/PLTV/88888888/224/3221225525/index.m3u8
NewTV惊悚悬疑,http://39.134.66.66/PLTV/88888888/224/3221225553/index.m3u8
NewTV精品大剧,http://39.134.66.66/PLTV/88888888/224/3221225536/index.m3u8
NewTV精品纪录,http://39.134.66.66/PLTV/88888888/224/3221225545/index.m3u8
NewTV精品体育,http://39.134.66.66/PLTV/88888888/224/3221225526/index.m3u8
NewTV军旅剧场,http://39.134.66.66/PLTV/88888888/224/3221225560/index.m3u8
NewTV军事评论,http://39.134.66.66/PLTV/88888888/224/3221225535/index.m3u8
NewTV明星大片,http://39.134.66.66/PLTV/88888888/224/3221225550/index.m3u8
NewTV农业致富,http://39.134.66.66/PLTV/88888888/224/3221225552/index.m3u8
NewTV武搏世界,http://39.134.66.66/PLTV/88888888/224/3221225547/index.m3u8
NewTV炫舞未来,http://39.134.66.66/PLTV/88888888/224/3221225646/index.m3u8
NewTV怡伴健康,http://39.134.66.66/PLTV/88888888/224/3221225571/index.m3u8
NewTV中国功夫,http://39.134.66.66/PLTV/88888888/224/3221225604/index.m3u8
CGTN,http://39.134.66.66/PLTV/88888888/224/3221225510/index.m3u8
CGTN纪录,http://39.134.66.66/PLTV/88888888/224/3221225509/index.m3u8
港台,#genre#
港台电视31,mitv://generationnexxxt.com:19806/e4b56cb972e940ee8be694602294d242
港台电视32,mitv://generationnexxxt.com:19806/9c0a161f9c59476584fe4d8effc125b6
HOY TV,mitv://generationnexxxt.com:19806/10c18372b612479086c1f259245543ff
翡翠台(备),mitv://147.135.39.171:9906/657c8f940005cf8fa955b96f23e11195
J2,mitv://generationnexxxt.com:19806/6a623cf5c0bc4c96b8fd45a47af4a872
无线新闻台(备),mitv://147.135.39.171:9906/657c8f940000cdb0a955b82762a73640
无线新闻台,mitv://147.135.39.171:9906/657c8f93000dad85a955b78b7a3a4c4f
无线财经体育资讯台,mitv://generationnexxxt.com:19806/8bcc654c89f74ebdb4e82062ef5f998c
ViuTVsix,mitv://generationnexxxt.com:19806/ba99e7a39d9c4e74bacc5de14f58dcf6
ViuTV,mitv://generationnexxxt.com:19806/976916e8baee45a89d5e023224f7ab2b
凤凰中文台,mitv://generationnexxxt.com:19806/64e1ab2a000417167359b3ca0417008f
凤凰资讯台,mitv://generationnexxxt.com:19806/6684e9f6606f49fba9b6de846dbdcb64
凤凰香港台,mitv://generationnexxxt.com:19806/8e396c3ec52f4eee9e5b7868042b1bf2
TVB星河(粤),mitv://generationnexxxt.com:19806/0c08d9d705a747908c23ba652726d777
澳门-MACAU,mitv://generationnexxxt.com:19806/f9ba8df6f9ed45789e882211735e6414
澳门莲花,mitv://generationnexxxt.com:19806/4c56fbe4e68541a9a759fa269574f98b
now新闻台,mitv://generationnexxxt.com:19806/d7a5bbf5664945cc8589b36b8434d68d
HKC 18,mitv://generationnexxxt.com:19806/140377dc9e0848678d614d451d69af9e
戏曲台,mitv://generationnexxxt.com:19806/4c3b3c3a6c8849c3aa0fc9938859e134
TVB娱乐新闻台,mitv://generationnexxxt.com:19806/46bb3afe133d4cd8ac4b195c7f5f428c
翡翠台,mitv://147.135.39.171:9906/657c8f9400023bf0a955b8853ca47814
千禧经典台,mitv://generationnexxxt.com:19806/1a5b04c67ece47bb87aa482e2c73138a
Thrill,mitv://generationnexxxt.com:19806/1c3c73215afd42558101c3ee65737202
明珠台,mitv://generationnexxxt.com:19806/9993262cc067418a983f0c7ec18adef9
香港国际财经台,mitv://generationnexxxt.com:19806/6aa47af091b54d618d1513b1bc23b0b9
18台,mitv://generationnexxxt.com:19806/8bf8f53c61944785b13817297101af20
now财经台,mitv://generationnexxxt.com:19806/88f95058c046453a973e2540701ccb4e
美亚电影台(粤语),mitv://generationnexxxt.com:19806/ee16565eb5fe46be8d22cbbde1fa9fae
Hands Up,mitv://generationnexxxt.com:19806/7a79a82b627a417f897895b4adf874aa
粤语片台,mitv://generationnexxxt.com:19806/3a44c9c92439443494b8ecff6fdb2336
亚洲剧台,mitv://generationnexxxt.com:19806/ee081a662356489d8b2170952ec91d24
功夫台,mitv://generationnexxxt.com:19806/ef6373344abf4bedae4d49ac953c1742
HOY资讯台,mitv://generationnexxxt.com:19806/eb5a565eb80d40509f0a248018dfd337
黄金翡翠台,mitv://generationnexxxt.com:19806/864714d6ebe847edaa948e9104107f12
民视,mitv://generationnexxxt.com:19806/7b046996e7d5417eb4a619194072bbc0
台视,mitv://generationnexxxt.com:19806/9868c18e3c0940cd8aa003d9ae54f862
大爱,mitv://generationnexxxt.com:19806/e89ec8c592484d88bc001e8d8a6c9e31
中视,mitv://generationnexxxt.com:19806/27826c4ed7234c0d8759bc7fe6786a18
霹雳台湾台,mitv://generationnexxxt.com:19806/dcdf778fe9ca4184ad6af3a911765cf0
华视,mitv://generationnexxxt.com:19806/761bc3c0662247d18b0db4da8070b7f4
公视,mitv://generationnexxxt.com:19806/5bc9388122b840f1abd2ff73c85049a6
好消息,mitv://generationnexxxt.com:19806/febf2282369d409d92d68514b72fc433
原住民电视台,mitv://generationnexxxt.com:19806/cb5b7549e3604100a605ca17c82808f5
客家电视台,mitv://generationnexxxt.com:19806/eafabb6e7c30439b8ecd35ad40a46a96
国家地理频道,mitv://generationnexxxt.com:19806/37a44d0af7634364a91f2fb8d9b9cf9b
探索频道,mitv://generationnexxxt.com:19806/9f2e92df32b34a569ad7e6818f4732fb
TLC旅游生活,mitv://generationnexxxt.com:19806/621ca70412034f5eb919c1ec03679804
动物星球,mitv://generationnexxxt.com:19806/5b41e724ea8e4e7eb92e3dac95589165
CN卡通频道,mitv://generationnexxxt.com:19806/f4dd909eedc64e6b9736e248aedf6d61
MOMO亲子台,mitv://generationnexxxt.com:19806/2f2d9ad70ce7410aa99f2b9fa1753dd4
东森幼幼台,mitv://generationnexxxt.com:19806/baa16215e2224e399f6dc71eb3576ed4
纬来综合台,mitv://generationnexxxt.com:19806/d40310ae8bba42569d3d90b4cf7d9928
八大第一台,mitv://generationnexxxt.com:19806/270abff66f5e496fb9c100a0dbca3fe6
八大综合台,mitv://generationnexxxt.com:19806/6c18a737c1394e59ae5072935d630f40
三立台湾台,mitv://generationnexxxt.com:19806/ff12e8f29f9b4f61a9b766709aa498f6
三立都会台,mitv://generationnexxxt.com:19806/7a36f98eee8e48a48ea64a1359083c8a
东森综合台,mitv://generationnexxxt.com:19806/a05a4d8b51f54013925315261a2c6aa9
超视,mitv://generationnexxxt.com:19806/5121f16c4b634c1683e9444aa68494b6
中天综合台,mitv://generationnexxxt.com:19806/d6433dcd1a2a4aacb1c63a81ae8f11e6
中天娱乐台,mitv://generationnexxxt.com:19806/6932151dd5a74b759a053f78a719fbf3
东森戏剧台,mitv://generationnexxxt.com:19806/4fae332a68a04f3fa77a158ac1fa4bce
八大戏剧台,mitv://generationnexxxt.com:19806/4eec82bd1e634ceab82b90e395116c83
TVBS欢乐台,mitv://generationnexxxt.com:19806/569aec3edbbc4267bd6f829b3d495d5a
纬来戏剧台,mitv://generationnexxxt.com:19806/69036778f8fc40729301e9e88aeee556
高点综合台,mitv://generationnexxxt.com:19806/462775e2153243fc92adec0793c638d0
BBC World News,mitv://generationnexxxt.com:19806/ecc7214268ee448ab42b65d9f2e2663a
CNBC,mitv://generationnexxxt.com:19806/b642a4ce45734a7190f0acbd8cd462dd
Bloomberg TV,mitv://generationnexxxt.com:19806/885bb543b9cb4bbeb5bcfe518fb90780
HITS,mitv://generationnexxxt.com:19806/a65416c2039f4644aeef10da853fb928
壹电视新闻台,mitv://generationnexxxt.com:19806/31dad83ef5b74c5db225482cd2e0fbae
年代新闻,mitv://generationnexxxt.com:19806/95f67e884d88463e907c301d05fa68b7
东森新闻台,mitv://generationnexxxt.com:19806/e1a899eded4d48578084c61957fb8c2b
中天新闻台,mitv://generationnexxxt.com:19806/bd9064ee198045a386f1f2dba5073f4e
民视新闻台,mitv://generationnexxxt.com:19806/d24f18e610d248b7a450d29492b37ebf
三立新闻台,mitv://generationnexxxt.com:19806/9388262af2604cc798800736d070d39e
TVBS新闻台,mitv://generationnexxxt.com:19806/6a155a5d7bea461b980b4fa559119a60
TVBS,mitv://generationnexxxt.com:19806/9fb651a7ec2e402588a0752ba1035476
东森财经新闻台,mitv://generationnexxxt.com:19806/9193e5efd94f4991ba8bfbc98bdc3f19
非凡新闻台,mitv://generationnexxxt.com:19806/02f80f7aad2c480992e06e1bd8a7facb
卫视电影台,mitv://generationnexxxt.com:19806/f5f1de75dbbf48e2a21a498977ffb8e4
东森电影台,mitv://generationnexxxt.com:19806/08435f286ac744a0942899c551209779
纬来电影台,mitv://generationnexxxt.com:19806/429796f5f00946fa933e400729286c7e
龙祥电影,mitv://generationnexxxt.com:19806/78502c9b515845a7baca6a3a6ea88b8a
HBO,mitv://generationnexxxt.com:19806/37f11d742fee447ab15f07db28095bd6
东森洋片台,mitv://generationnexxxt.com:19806/5e8420f5477344b9b7b39d9e96162ce1
AXN,mitv://generationnexxxt.com:19806/893f7dec641a42458f47ccfbd93525ba
好莱坞电影台,mitv://generationnexxxt.com:19806/9862f4958472458ca2ebc718bb92a5c6
CINEMAX,mitv://generationnexxxt.com:19806/fd7fd316ff5f4ae0a79d274a86483a4f
纬来育乐台,mitv://generationnexxxt.com:19806/78b57c4d9e644fafafe01588c43b4787
纬来体育台,mitv://generationnexxxt.com:19806/79090c69d43040148deaa21d5e26c32a
ELEVEN体育1台,mitv://generationnexxxt.com:19806/fcfde35352d5464f9ed1c711ef2d05b1
JET综合台,mitv://generationnexxxt.com:19806/cbd0c62dcb2a45cfa04f672fb2c49d14
国兴卫视,mitv://generationnexxxt.com:19806/18aaee00d2af442ebb4592e15f7b2a20
STAR World,mitv://generationnexxxt.com:19806/e60c9c99922d4fed8cfb3a8333f2d360
Z频道,mitv://generationnexxxt.com:19806/8789d946039740bda334150ac3138166
Animax,mitv://generationnexxxt.com:19806/22f75ace87a545aab39a2e4cd244bbad
尼克儿童频道,mitv://generationnexxxt.com:19806/879f28be19bc47df84ad3d5470be58d0
八大娱乐台,mitv://generationnexxxt.com:19806/cea44ead76804413bd48caf76c5c2749
三立iNEWS,mitv://generationnexxxt.com:19806/ac384b2c9a4a47c3a538f9116ab7e4d8
龙华偶像,mitv://generationnexxxt.com:19806/5b720b1e1b404f129e7009363d3035f8
tvN,mitv://generationnexxxt.com:19806/5653c9fb655842ee99b4590ff903efe7
France24,mitv://generationnexxxt.com:19806/72d5e1665d3e4b729ff9dbd4325e8694
非凡商业台,mitv://generationnexxxt.com:19806/0c1ba96949414628ae64fc70c3354e7b
公视3台,mitv://generationnexxxt.com:19806/95f2ed538e044aac891abfe6a9ce6ba7
大爱2台,mitv://generationnexxxt.com:19806/2036b83c58e344c782eb154b233c8c77
ELTV生活英语台,mitv://generationnexxxt.com:19806/78c0f08e89a844ef89d6803bce27a827
靖洋卡通Nice Bingo,mitv://generationnexxxt.com:19806/1279fb2d1ae14676a31b2e5b38a2cd57
靖天卡通台,mitv://generationnexxxt.com:19806/0e27e5f319264b609ec810e126edf969
Nick Jr.,mitv://generationnexxxt.com:19806/acebbded37714fa4a5554c025873a92c
Mezzo Live,mitv://generationnexxxt.com:19806/1c1e90cd01934a5f917ec4fad5c97665
CLASSICA 古典乐,mitv://generationnexxxt.com:19806/133be9054bcd4fa68d2e34205004a51a
爱尔达体育1台(备),mitv://generationnexxxt.com:19806/1180278580d04cb490450ec59b4edc6b
爱尔达体育2台,mitv://generationnexxxt.com:19806/d1f16ee235314a0fbc33742ab7af534b
TRACE Sport Stars,mitv://generationnexxxt.com:19806/b0cb233f10e84f29910fa38e15a07035
博斯高球,mitv://generationnexxxt.com:19806/6ff0b79453d2430986930b7c84a286df
博斯高球二台,mitv://generationnexxxt.com:19806/8afa52d0fe0047f8a6d7e51f46697f93
博斯网球台,mitv://generationnexxxt.com:19806/7fb5b66ce38747de84be865952153959
博斯魅力网,mitv://generationnexxxt.com:19806/c585ebfbfc7c4260a8d9556b5409faf0
博斯无限台,mitv://generationnexxxt.com:19806/f2973cfa7c2045e6b8a184f1bf18af7c
博斯无限二台,mitv://generationnexxxt.com:19806/143f1c23ac834d28a5296d61fed9250c
博斯运动,mitv://generationnexxxt.com:19806/6293839c167e4b6393c745db434b2465
ELEVEN体育2台,mitv://generationnexxxt.com:19806/057061c0da744aa7b035169dba5ebe2a
智林体育台,mitv://generationnexxxt.com:19806/931c171e2f774f7aa1a92e97f5098c9f
博斯运动二台,mitv://generationnexxxt.com:19806/cbd52c51fbab49ae9b3bc0da9137f681
HBO强档巨献,mitv://generationnexxxt.com:19806/563a5981b8ad4df085b59ce98bbecb95
HBO原创巨献,mitv://generationnexxxt.com:19806/bd0a33ff8b6f4fe9ba7791ad73c6c16e
BBC Earth,mitv://generationnexxxt.com:19806/49261fefe28441bea7b775cc44fa16b5
Discovery Asia,mitv://generationnexxxt.com:19806/0afefbe6244c42dbac40a3d8abef8d07
Discovery科学频道,mitv://generationnexxxt.com:19806/39e1494bd82c449892c6f92a6c8dc213
DMAX,mitv://generationnexxxt.com:19806/50af7fb4500840e292bcfae4dd50e97f
EVE,mitv://generationnexxxt.com:19806/f21130546932443d98f6ec02aa4ec99a
历史频道,mitv://generationnexxxt.com:19806/e6f506b509c94bacb4a371cdbcbe7719
罪案侦缉频道,mitv://generationnexxxt.com:19806/ef7b4ee3be374092a4a0074a6be41e03
BBC Lifestyle,mitv://generationnexxxt.com:19806/178e533979bb4ec3af9190ca475f23ef
Lifetime,mitv://generationnexxxt.com:19806/112b06172cdf41cbb6990e64d30cab0c
KLT-靖天国际台,mitv://generationnexxxt.com:19806/12d39bada24843588ad72a3175b785a2
HGTV居家乐活频道,mitv://generationnexxxt.com:19806/84613e96237545769558cc572e6d1ab0
Love Nature,mitv://generationnexxxt.com:19806/574be1e2e0054216abe436413ea4221a
美食星球,mitv://generationnexxxt.com:19806/1baaeb6967434fee9bf4412904e573b0
亚洲美食频道,mitv://generationnexxxt.com:19806/5b787bd078c84a3caa09c3665c66dc50
亚洲旅游台,mitv://generationnexxxt.com:19806/259c24cb79ce4b5db1fb1e1b894c517e
EYE TV旅游台,mitv://generationnexxxt.com:19806/2d426994acef44deb401aa8a4cd5a92e
好消息2台,mitv://generationnexxxt.com:19806/2b9f20946a6147dfba8f92373fbafee5
三立综合台,mitv://generationnexxxt.com:19806/792a7263dd7b4c7484512d07f3c21083
靖天资讯台,mitv://generationnexxxt.com:19806/5c9d432112fd4d4e92263a34415293fa
靖天综合台,mitv://generationnexxxt.com:19806/ed2e3f294dcc40c1b72aba372fbed64d
靖天育乐台,mitv://generationnexxxt.com:19806/d67fd6c2e7c44e17b9e86d9073f2930e
中视经典台,mitv://generationnexxxt.com:19806/8b9e15ff15474ccbbc2780c1484e50c9
中视菁采台,mitv://generationnexxxt.com:19806/ae5e01a7bc294327b88f65aa5d38217c
TVBS精采台,mitv://generationnexxxt.com:19806/2089afbec2474359add275658522922f
壹电视综合,mitv://generationnexxxt.com:19806/617d6cf150574cb485ee07aea57262fd
纬来精采,mitv://generationnexxxt.com:19806/1db14fe8aad841b4b28eca2b136e7206
ETtoday综合台,mitv://generationnexxxt.com:19806/8e1b32241c9d4d079a2df7dc99adb312
民视第一台,mitv://generationnexxxt.com:19806/b97979cec8d74feebc370f3470cc06c6
民视台湾台,mitv://generationnexxxt.com:19806/192bd12842624eb39e2f6b86eeacdca8
Nice TV靖天欢乐台,mitv://generationnexxxt.com:19806/439163cf3469473b8ffd582b687991be
八大优频道,mitv://generationnexxxt.com:19806/7abaa68442ce4ed7ad7c9772fb46eda9
三立戏剧台,mitv://generationnexxxt.com:19806/7a5b874b630d457bb5997a2fe4690550
龙华戏剧,mitv://generationnexxxt.com:19806/5d4f0bd2b18b4a588a0ca733569b18dd
靖天戏剧台,mitv://generationnexxxt.com:19806/1282202787324223b35e3c84d9e673c6
靖洋戏剧台,mitv://generationnexxxt.com:19806/84a559f1b4884854be933d5d4fc0d4a6
靖天日本台,mitv://generationnexxxt.com:19806/c88dcc9ddf6747b991fc1a0db939147d
i-Fun动漫台,mitv://generationnexxxt.com:19806/91a0e3fa1a714dd7b7cf55343052cd4f
韩国娱乐台,mitv://generationnexxxt.com:19806/80d680dc15ec44bea9c3a3160ecdcb14
星卫娱乐台,mitv://generationnexxxt.com:19806/e83cc99135884327a96306484b0b8685
ROCK Extreme,mitv://generationnexxxt.com:19806/fc56480dab3541a6a99d66c3d2048526
中视新闻台,mitv://generationnexxxt.com:19806/cb5965a89e434df7aeb66b2364116ae4
寰宇新闻台,mitv://generationnexxxt.com:19806/a265fb55774a4554bc2db19b16f53be6
华视新闻,mitv://generationnexxxt.com:19806/ebe8db2daafa47768f37bcae17bfe299
NHK新闻资讯台,mitv://generationnexxxt.com:19806/c2da55d84a72418c8f1876c25ec97a1d
美亚电影台HD,mitv://generationnexxxt.com:19806/a850e570b868424c94319a2652ca7c62
龙华电影,mitv://generationnexxxt.com:19806/1df6f5f0993a46faa17f676518654709
星卫HD电影台,mitv://generationnexxxt.com:19806/832bfeb4b3b84dd2a7428f9db69504eb
靖天映画,mitv://generationnexxxt.com:19806/b723859f3ed94e5ba712148b209eefd0
靖天电影台,mitv://generationnexxxt.com:19806/d8c581e0e1a24823a3d2110e3584ef8b
WARNER TV,mitv://generationnexxxt.com:19806/cd2062a6c5a94d548f3516d96e23deec
Star Movies HD,mitv://generationnexxxt.com:19806/cdbfcfca93f846c7bcc30d0fd108923f
AMC最爱电影,mitv://generationnexxxt.com:19806/24ce0147e36a438eab843a3168cea3bc
HBO Family,mitv://generationnexxxt.com:19806/8a0208ebdfa04b5eab112f0c8b01719c
CatchPlay电影台,mitv://generationnexxxt.com:19806/2dccaec60f0e418d82d2d0bb09f0c4a8
CinemaWorld,mitv://generationnexxxt.com:19806/e262f40881b2461f9a270b4d9d0b54c3
壹电视电影台,mitv://generationnexxxt.com:19806/1be1329b6d124745a87a16de445d2352
采昌影剧台,mitv://generationnexxxt.com:19806/a0d691053f9b4876ab2b509a62296911
佛卫慈悲台,mitv://generationnexxxt.com:19806/be70c8b5b35c4551b5c7d3c905234e69
TechStorm,mitv://generationnexxxt.com:19806/994876c6aadc4234ba73441f18d36602
EYE TV戏剧台,mitv://generationnexxxt.com:19806/2831986ed4b448c9b626788fbd3f2f89
台视新闻台,mitv://generationnexxxt.com:19806/9817b59742464113bd5656fcc7dced84
寰宇新闻台湾台,mitv://generationnexxxt.com:19806/ca27b65855704124be186aa0e5127c24
台视财经台,mitv://generationnexxxt.com:19806/e01d7738e33e456a812f7cefbf27b29a
纬来日本,mitv://generationnexxxt.com:19806/5f9d37ba1fc04a04aaec6979908294a2
爱尔达影剧台,mitv://generationnexxxt.com:19806/932d4522f2294c6a926b7ab8027c269f
民视(备),mitv://generationnexxxt.com:19806/8d864649cfc54b518b3d137d67583155
三立台湾台(备),mitv://generationnexxxt.com:19806/7554a57ea53f4c10ae4e219ac2d374c4
影迷数位电影台,mitv://generationnexxxt.com:19806/bc069c037478448a9e41dbc3e1d5d0f6
卫视中文台,mitv://generationnexxxt.com:19806/7f7bdcb1fb94430daa8ba120dcbfde4e
爱尔达体育1台,mitv://generationnexxxt.com:19806/68e521d35c0247ddbc5073dee98245a3
爱尔达体育3台,mitv://generationnexxxt.com:19806/3ebc6b89559c44dca30c4c259a5646b9
台视(备),mitv://generationnexxxt.com:19806/3c20d4387ec845149b2ded5f28805f18
爱尔达体育4台,mitv://generationnexxxt.com:19806/df4f198dbe6347e1a084c79d208f227d
中视(备),mitv://generationnexxxt.com:19806/c4ede9c3d1a84d0b9afe57622abcb9e7
华视(备),mitv://generationnexxxt.com:19806/177390ae66634acca9be01242a769660
东森新闻台(备),mitv://generationnexxxt.com:19806/35983e2efd5c44bf84bfb2977bbbc96d
镜新闻,mitv://generationnexxxt.com:19806/668a0abb880a496d8f57fad2f580566b
MTV,mitv://generationnexxxt.com:19806/eb5ba5262e2e4779a1418c78d14ad1e5
东森购物1台,mitv://generationnexxxt.com:19806/eccc79da1c0a4b54b49a71277e1534a0
东森购物2台,mitv://generationnexxxt.com:19806/71a90a7da65142e795b97def2400e1fb
IPV6-1,#genre#
CCTV-1 综合,http://[2409:8087:7000:20:1000::22]:6060/yinhe/2/ch00000090990000001331/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
CCTV-2 财经,http://[2409:8087:7000:20:1000::22]:6060/yinhe/2/ch00000090990000001332/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
CCTV-3 综艺,http://[2409:8087:2001:20:2800:0:df6e:eb22]/ott.mobaibox.com/PLTV/4/224/3221228392/index.m3u8
CCTV-4 中文国际,http://[2409:8087:7000:20:1000::22]:6060/yinhe/2/ch00000090990000001333/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
CCTV-5 体育,http://[2409:8087:2001:20:2800:0:df6e:eb22]/ott.mobaibox.com/PLTV/4/224/3221228502/index.m3u8
CCTV-5+ 体育赛事,http://[2409:8087:7000:20:1000::22]:6060/yinhe/2/ch00000090990000001334/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
CCTV-6 电影,http://[2409:8087:2001:20:2800:0:df6e:eb14]:80/ott.mobaibox.com/PLTV/4/224/3221228123/index.m3u8
CCTV-7 国防军事,http://[2409:8087:2001:20:2800:0:df6e:eb12]:80/ott.mobaibox.com/PLTV/4/224/3221227690/index.m3u8
CCTV-8 电视剧,http://[2409:8087:2001:20:2800:0:df6e:eb13]:80/ott.mobaibox.com/PLTV/4/224/3221227473/index.m3u8
CCTV-9 纪录,http://[2409:8087:2001:20:2800:0:df6e:eb13]:80/ott.mobaibox.com/PLTV/4/224/3221227614/index.m3u8
CCTV-10 科教,http://[2409:8087:2001:20:2800:0:df6e:eb20]:80/ott.mobaibox.com/PLTV/4/224/3221228286/index.m3u8
CCTV-11 戏曲,http://[2409:8087:2001:20:2800:0:df6e:eb23]:80/ott.mobaibox.com/PLTV/4/224/3221228289/index.m3u8
CCTV-12 社会与法,http://[2409:8087:2001:20:2800:0:df6e:eb22]:80/ott.mobaibox.com/PLTV/4/224/3221228401/index.m3u8
CCTV-13 新闻,http://[2409:8087:2001:20:2800:0:df6e:eb17]:80/ott.mobaibox.com/PLTV/4/224/3221227387/index.m3u8
CCTV-14 少儿,http://[2409:8087:2001:20:2800:0:df6e:eb23]:80/ott.mobaibox.com/PLTV/4/224/3221228292/index.m3u8
CCTV-15 音乐,http://[2409:8087:2001:20:2800:0:df6e:eb22]:80/ott.mobaibox.com/PLTV/4/224/3221228404/index.m3u8
CCTV-16 奥林匹克,http://[2409:8087:2001:20:2800:0:df6e:eb17]:80/ott.mobaibox.com/PLTV/4/224/3221228112/index.m3u8
CCTV-17 农业农村,http://[2409:8087:2001:20:2800:0:df6e:eb17]:80/ott.mobaibox.com/PLTV/4/224/3221227592/index.m3u8
CCTV-4K 超高清,http://[2409:8087:2001:20:2800:0:df6e:eb13]/ott.mobaibox.com/PLTV/3/224/3221228228/index.m3u8
CCTV-8K 超高清,http://[2409:8087:2001:20:2800:0:df6e:eb03]/ott.mobaibox.com/PLTV/4/224/3221228165/index.m3u8
CETV-1 综合教育,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001020/index.m3u8
CETV-4 职业教育,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001348/index.m3u8
凤凰中文,http://[2409:8087:2001:20:2800:0:df6e:eb22]:80/ott.mobaibox.com/PLTV/3/224/3221228527/1.m3u8
凤凰资讯,http://[2409:8087:2001:20:2800:0:df6e:eb19]:80/ott.mobaibox.com/PLTV/3/224/3221228524/1.m3u8
凤凰香港,http://[2409:8087:2001:20:2800:0:df6e:eb22]:80/ott.mobaibox.com/PLTV/1/224/3221228530/1.m3u8
湖南卫视,http://[2409:8087:7000:20:1000::22]:6060/yinhe/2/ch00000090990000001339/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
浙江卫视,http://[2409:8087:7000:20:1000::22]:6060/yinhe/2/ch00000090990000001345/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
东方卫视,http://[2409:8087:7000:20:1000::22]:6060/yinhe/2/ch00000090990000001336/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
北京卫视,http://[2409:8087:7000:20:1000::22]:6060/yinhe/2/ch00000090990000001335/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
江苏卫视,http://[2409:8087:7000:20:1000::22]:6060/yinhe/2/ch00000090990000001344/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
安徽卫视,http://[2409:8087:7000:20:1000::22]:6060/yinhe/2/ch00000090990000001346/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
重庆卫视,http://[2409:8087:2001:20:2800:0:df6e:eb09]:80/ott.mobaibox.com/PLTV/4/224/3221228133/index.m3u8
东南卫视,http://[2409:8087:2001:20:2800:0:df6e:eb21]:80/ott.mobaibox.com/PLTV/4/224/3221228428/index.m3u8
甘肃卫视,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001298/index.m3u8
广东卫视,http://[2409:8087:7000:20:1000::22]:6060/yinhe/2/ch00000090990000001337/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
广西卫视,http://[2409:8087:2001:20:2800:0:df6e:eb04]:80/ott.mobaibox.com/PLTV/4/224/3221228183/index.m3u8
贵州卫视,http://[2409:8087:2001:20:2800:0:df6e:eb09]:80/ott.mobaibox.com/PLTV/4/224/3221228136/index.m3u8
海南卫视,http://[2409:8087:2001:20:2800:0:df6e:eb09]:80/ott.mobaibox.com/PLTV/4/224/3221228139/index.m3u8
河北卫视,http://[2409:8087:2001:20:2800:0:df6e:eb04]:80/ott.mobaibox.com/PLTV/4/224/3221228106/index.m3u8
黑龙江卫视,http://[2409:8087:7000:20:1000::22]:6060/yinhe/2/ch00000090990000001338/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
河南卫视,http://[2409:8087:2001:20:2800:0:df6e:eb16]:80/ott.mobaibox.com/PLTV/4/224/3221228221/index.m3u8
湖北卫视,http://[2409:8087:7000:20:1000::22]:6060/yinhe/2/ch00000090990000001347/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
江西卫视,http://[2409:8087:2001:20:2800:0:df6e:eb17]:80/ott.mobaibox.com/PLTV/4/224/3221228109/index.m3u8
吉林卫视,http://[2409:8087:2001:20:2800:0:df6e:eb03]:80/ott.mobaibox.com/PLTV/4/224/3221228130/index.m3u8
辽宁卫视,http://[2409:8087:7000:20:1000::22]:6060/yinhe/2/ch00000090990000001340/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
山东卫视,http://[2409:8087:2001:20:2800:0:df6e:eb11]:80/ott.mobaibox.com/PLTV/4/224/3221227517/index.m3u8
深圳卫视,http://[2409:8087:7000:20:1000::22]:6060/yinhe/2/ch00000090990000001342/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
四川卫视,http://[2409:8087:2001:20:2800:0:df6e:eb08]:80/ott.mobaibox.com/PLTV/4/224/3221228171/index.m3u8
天津卫视,http://[2409:8087:7000:20:1000::22]:6060/yinhe/2/ch00000090990000001343/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
云南卫视,http://[2409:8087:2001:20:2800:0:df6e:eb05]:80/ott.mobaibox.com/PLTV/4/224/3221225591/index.m3u8
新疆卫视,http://[2409:8087:2001:20:2800:0:df6e:eb0b]/wh7f454c46tw993550557_162751766/ott.mobaibox.com/PLTV/3/224/3221228290/index.m3u8?icpid=3&RTS=1668604377&from=40&popid=40&hms_devid=2038&prioritypopid=40&vqe=3
三沙卫视,http://[2409:8087:2001:20:2800:0:df6e:eb21]:80/ott.mobaibox.com/PLTV/4/224/3221228626/index.m3u8
青海卫视,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001082/index.m3u8
陕西卫视,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001067/index.m3u8
山西卫视,http://[2409:8087:7000:20:1000::22]:6060/yinhe/2/ch00000090990000001038/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
西藏卫视,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001072/index.m3u8
内蒙古卫视,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001068/index.m3u8
宁夏卫视,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001074/index.m3u8
兵团卫视,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001066/index.m3u8
安多卫视,http://[2409:8087:7004:20:1000::22]:6610/yinhe/2/ch00000090990000001311/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
康巴卫视,http://[2409:8087:7000:20:1000::22]:6060/yinhe/2/ch00000090990000001313/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
大湾区卫视,http://[2409:8087:7004:20:1000::22]:6610/yinhe/2/ch00000090990000001305/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
农林卫视,http://[2409:8087:7004:20:1000::22]:6610/yinhe/2/ch00000090990000001312/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
延边卫视,http://[2409:8087:7004:20:1000::22]:6610/yinhe/2/ch00000090990000001307/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
厦门卫视,http://[2409:8087:7004:20:1000::22]:6610/yinhe/2/ch00000090990000001306/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
CHC高清电影,http://[2409:8087:7000:20:1000::22]:6060/yinhe/2/ch00000090990000002065/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
CHC家庭影院,http://[2409:8087:7000:20:1000::22]:6060/yinhe/2/ch00000090990000002085/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
CHC动作电影,http://[2409:8087:7000:20:1000::22]:6060/yinhe/2/ch00000090990000002055/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
求索纪录,http://[2409:8087:7001:20:1000::95]:6610/000000001000/6000000002000032052/index.m3u8?channel-id=wasusyt&Contentid=6000000002000032052&livemode=1&stbId=3
求索科学,http://[2409:8087:7001:20:1000::95]:6610/000000001000/6000000002000032344/index.m3u8?channel-id=wasusyt&Contentid=6000000002000032344&livemode=1&stbId=3
求索动物,http://[2409:8087:7001:20:1000::95]:6610/000000001000/6000000002000010046/index.m3u8?channel-id=wasusyt&Contentid=6000000002000010046&livemode=1&stbId=3
求索生活,http://[2409:8087:7001:20:1000::95]:6610/000000001000/6000000002000003382/index.m3u8?channel-id=wasusyt&Contentid=6000000002000003382&livemode=1&stbId=3
黑莓电影,http://[2409:8087:2001:20:2800:0:df6e:eb04]/ott.mobaibox.com/PLTV/3/224/3221225567/index.m3u8
黑莓动画,http://[2409:8087:1a01:df::7005]/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225662/index.m3u8
哒啵电竞,http://[2409:8087:7000:20::4]/dbiptv.sn.chinamobile.com/PLTV/88888888/224/3221226951/index.m3u8
哒啵赛事,http://[2409:8087:1a01:df::7005]/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225675/index.m3u8
乐游,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001200/index.m3u8
纪实人文,http://[2409:8087:2001:20:2800:0:df6e:eb12]/wh7f454c46tw1293235676_155310184/ott.mobaibox.com/PLTV/3/224/3221227635/index.m3u8?icpid=3&RTS=1669704189&from=40&popid=40&hms_devid=2112&prioritypopid=40&vqe=3
纯享4K,http://[2409:8087:2001:20:2800:0:df6e:eb11]/ott.mobaibox.com/PLTV/3/224/3221228242/index.m3u8
风云剧场,http://[2409:8087:7001:20:2::3]:80/dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226950/index.m3u8
风云音乐,http://[2409:8087:7001:20:2::3]:80/dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226953/index.m3u8
第一剧场,http://[2409:8087:7001:20:2::3]:80/dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226959/index.m3u8
女性时尚,http://[2409:8087:7001:20:2::3]:80/dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226969/index.m3u8
风云足球,http://[2409:8087:7001:20:2::3]:80/dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226984/index.m3u8
兵器科技,http://[2409:8087:7001:20:2::3]:80/dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226975/index.m3u8
怀旧剧场,http://[2409:8087:7001:20:2::3]:80/dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226972/index.m3u8
世界地理,http://[2409:8087:7001:20:2::3]:80/dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226947/index.m3u8
文化精品,http://[2409:8087:7001:20:2::3]:80/dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226981/index.m3u8
央视台球,http://[2409:8087:7001:20:2::3]:80/dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226956/index.m3u8
高尔夫网球,http://[2409:8087:7001:20:2::3]:80/dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226978/index.m3u8
电视指南,http://[2409:8087:7001:20:2::3]:80/dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226987/index.m3u8
都市剧场,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001203/index.m3u8
生活时尚,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001199/index.m3u8
金色学堂,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001194/index.m3u8
法治天地,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001195/index.m3u8
哈哈炫动,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001232/index.m3u8
动漫秀场,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001196/index.m3u8
游戏风云,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001192/index.m3u8
七彩戏剧,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001308/index.m3u8
欢笑剧场,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001193/index.m3u8
第一财经,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001017/index.m3u8
东方财经,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001318/index.m3u8
梨园,http://[2409:8087:4c0a:22:1::11]:6410/170000001115/UmaiCHAN6380788ba7bed/index.m3u8?AuthInfo=toEYVdLfxymUP2l9NZpQI5%2BK6T7j%2FlRm%2BvbM9VO7bA0q1S1k1f36SqqriM0FZoFSAJRfCt8SS7X6sTRmXb81a8O4H%2FdroDKjLoDeaMQdyJQ
NHK World,https://nhkwlive-ojp.akamaized.net/hls/live/2003459/nhkwlive-ojp-en/index_4M.m3u8
CNA,https://d2e1asnsl7br7b.cloudfront.net/7782e205e72f43aeb4a48ec97f66ebbe/index_5.m3u8
AlJazeera,http://live-hls-web-aje.getaj.net/AJE/01.m3u8
Arirang TV,https://amdlive-ch01-ctnd-com.akamaized.net/arirang_1ch/smil:arirang_1ch.smil/chunklist_b3256000_sleng.m3u8
RT News,https://rt-glb.rttv.com/dvr/rtnews/playlist_4500Kb.m3u8
RT Documentary,https://rt-rtd.rttv.com/live/rtdoc/playlist_4500Kb.m3u8
CGTN,http://[2409:8087:7000:20:1000::22]:6060/yinhe/2/ch00000090990000001024/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
CGTN Documentary,http://[2409:8087:7000:20:1000::22]:6060/yinhe/2/ch00000090990000002905/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
CGTN Français,http://[2409:8087:7000:20:1000::22]:6060/yinhe/2/ch00000090990000002827/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
CGTN Русский,http://[2409:8087:7000:20:1000::22]:6060/yinhe/2/ch00000090990000002883/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
CGTN Español,http://[2409:8087:7000:20:1000::22]:6060/yinhe/2/ch00000090990000002716/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
CGTN العربية,http://[2409:8087:7000:20:1000::22]:6060/yinhe/2/ch00000090990000002826/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
茶频道,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001234/index.m3u8
快乐垂钓,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001235/index.m3u8
金鹰纪实,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001230/index.m3u8
金鹰卡通,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001460/index.m3u8
湖南经视,http://175.0.51.26:8899/tsfile/live/1042_1.m3u8?key=txiptv&playlive=1&authid=0
湖南都市,http://175.0.51.26:8899/tsfile/live/1044_1.m3u8?key=txiptv&playlive=1&authid=0
湖南爱晚,http://175.0.51.26:8899/tsfile/live/0012_1.m3u8?key=txiptv&playlive=1&authid=0
湖南国际,http://175.0.51.26:8899/tsfile/live/1002_1.m3u8?key=txiptv&playlive=1&authid=0
湖南娱乐,http://175.0.51.26:8899/tsfile/live/1001_1.m3u8?key=txiptv&playlive=1&authid=0
湖南电影,http://175.0.51.26:8899/tsfile/live/1000_1.m3u8?key=txiptv&playlive=1&authid=0
湖南电视剧,http://175.0.51.26:8899/tsfile/live/1043_1.m3u8?key=txiptv&playlive=1&authid=0
上海新闻综合,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001014/index.m3u8
上海都市,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001015/index.m3u8
东方影视,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001016/index.m3u8
上海外语,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001128/index.m3u8
五星体育,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001018/index.m3u8
上海教育,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001268/index.m3u8
浙江钱江都市,https://ali-m-l.cztv.com/channels/lantian/channel002/1080p.m3u8
浙江经济生活,https://ali-m-l.cztv.com/channels/lantian/channel003/1080p.m3u8
浙江科教影视,https://ali-m-l.cztv.com/channels/lantian/channel004/1080p.m3u8
浙江民生休闲,https://ali-m-l.cztv.com/channels/lantian/channel006/1080p.m3u8
浙江公共新闻,https://ali-m-l.cztv.com/channels/lantian/channel007/1080p.m3u8
浙江少儿,https://ali-m-l.cztv.com/channels/lantian/channel008/1080p.m3u8
浙江国际,https://ali-m-l.cztv.com/channels/lantian/channel010/1080p.m3u8
纪实科教,http://[2409:8087:7000:20::4]:80/dbiptv.sn.chinamobile.com/PLTV/88888888/224/3221226232/1.m3u8
卡酷少儿,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001245/index.m3u8
陕西新闻资讯,http://[2409:8087:7000:20:1000::22]:6060/yinhe/2/ch00000090990000001719/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
陕西都市青春,http://[2409:8087:7000:20:1000::22]:6060/yinhe/2/ch00000090990000001593/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
陕西生活,http://[2409:8087:7000:20:1000::22]:6060/yinhe/2/ch00000090990000001729/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
陕西影视,http://[2409:8087:7000:20:1000::22]:6060/yinhe/2/ch00000090990000001730/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
陕西公共,http://[2409:8087:7000:20:1000::22]:6060/yinhe/2/ch00000090990000001739/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
陕西体育休闲,http://[2409:8087:7000:20:1000::22]:6060/yinhe/2/ch00000090990000001594/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
陕西西部电影,http://[2409:8087:7000:20:1000::22]:6060/yinhe/2/ch00000090990000001749/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
山西经济科技,http://15536746789.x3322.net:9901/tsfile/live/1000_1.m3u8?key=txiptv&playlive=1&authid=0
山西影视,http://15536746789.x3322.net:9901/tsfile/live/1005_1.m3u8?key=txiptv&playlive=1&authid=0
山西公共,http://15536746789.x3322.net:9901/tsfile/live/1006_1.m3u8?key=txiptv&playlive=1&authid=0
咪咕直播4K-1,http://[2409:8087:1a01:df::4001]/PLTV/88888888/224/3221225655/index.m3u8
咪咕直播4K-2,http://[2409:8087:1a01:df::4005]/PLTV/88888888/224/3221225651/index.m3u8
咪咕直播-1,http://[2409:8087:1a01:df::4023]/PLTV/88888888/224/3221225611/index.m3u8
咪咕直播-2,http://[2409:8087:1a01:df::4005]/PLTV/88888888/224/3221225613/index.m3u8
咪咕直播-3,http://[2409:8087:1a01:df::4017]/PLTV/88888888/224/3221225619/index.m3u8
咪咕直播-4,http://[2409:8087:1a01:df::4058]/PLTV/88888888/224/3221225620/index.m3u8
咪咕直播-5,http://[2409:8087:1a01:df::4015]/PLTV/88888888/224/3221225639/index.m3u8
咪咕直播-6,http://[2409:8087:1a01:df::4015]/PLTV/88888888/224/3221225641/index.m3u8
咪咕直播-7,http://[2409:8087:1a01:df::4011]/PLTV/88888888/224/3221225643/index.m3u8
咪咕直播-8,http://[2409:8087:1a01:df::4002]/PLTV/88888888/224/3221225645/index.m3u8
咪咕直播-9,http://[2409:8087:1a01:df::4016]/PLTV/88888888/224/3221225647/index.m3u8
咪咕直播-10,http://[2409:8087:1a01:df::4022]/PLTV/88888888/224/3221225648/index.m3u8
咪咕直播-11,http://[2409:8087:1a01:df::402a]/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226469/index.m3u8
咪咕直播-12,http://[2409:8087:1a01:df::4046]/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226472/index.m3u8
咪咕直播-13,http://[2409:8087:1a01:df::4014]/PLTV/88888888/224/3221225652/index.m3u8
咪咕直播-14,http://[2409:8087:1a01:df::4013]/PLTV/88888888/224/3221225653/index.m3u8
咪咕直播-15,http://[2409:8087:1a01:df::4017]/PLTV/88888888/224/3221225654/index.m3u8
咪咕直播-16,http://[2409:8087:1a01:df::4019]/PLTV/88888888/224/3221225658/index.m3u8
咪咕直播-17,http://[2409:8087:1a01:df::4012]/PLTV/88888888/224/3221225660/index.m3u8
咪咕直播-18,http://[2409:8087:1a01:df::4023]/PLTV/88888888/224/3221225662/index.m3u8
咪咕直播-19,http://[2409:8087:1a01:df::4062]/PLTV/88888888/224/3221225733/index.m3u8
咪咕直播-20,http://[2409:8087:1a01:df::4048]/PLTV/88888888/224/3221225735/index.m3u8
咪咕直播-21,http://[2409:8087:1a01:df::4025]/PLTV/88888888/224/3221225737/index.m3u8
咪咕直播-22,http://[2409:8087:1a01:df::4074]/PLTV/88888888/224/3221225739/index.m3u8
咪咕直播-23,http://[2409:8087:1a01:df::4030]/PLTV/88888888/224/3221225754/index.m3u8
咪咕直播-24,http://[2409:8087:1a01:df::4025]/PLTV/88888888/224/3221225756/index.m3u8
咪咕直播-25,http://[2409:8087:1a01:df::4077]/PLTV/88888888/224/3221225758/index.m3u8
咪咕直播-26,http://[2409:8087:1a01:df::4025]/PLTV/88888888/224/3221225760/index.m3u8
咪咕直播-27,http://[2409:8087:1a01:df::4002]/PLTV/88888888/224/3221225895/index.m3u8
咪咕直播-28,http://[2409:8087:1a01:df::4028]/PLTV/88888888/224/3221225897/index.m3u8
咪咕直播-29,http://[2409:8087:1a01:df::4061]/PLTV/88888888/224/3221225899/index.m3u8
咪咕直播-30,http://[2409:8087:1a01:df::4009]/PLTV/88888888/224/3221225901/index.m3u8
咪咕直播-31,http://[2409:8087:1a01:df::4023]/PLTV/88888888/224/3221225903/index.m3u8
咪咕直播-32,http://[2409:8087:1a01:df::403b]/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226147/index.m3u8
咪咕直播-33,http://[2409:8087:1a01:df::4051]/PLTV/88888888/224/3221225905/index.m3u8
咪咕直播-34,http://[2409:8087:1a01:df::4033]/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226398/index.m3u8
咪咕直播-35,http://[2409:8087:1a01:df::4055]/PLTV/88888888/224/3221225910/index.m3u8
咪咕直播-36,http://[2409:8087:1a01:df::4076]/PLTV/88888888/224/3221225912/index.m3u8
咪咕直播-37,http://[2409:8087:1a01:df::4027]/PLTV/88888888/224/3221225914/index.m3u8
咪咕直播-38,http://[2409:8087:1a01:df::4076]/PLTV/88888888/224/3221226027/index.m3u8
咪咕直播-39,http://[2409:8087:1a01:df::4068]/PLTV/88888888/224/3221226031/index.m3u8
咪咕直播-40,http://[2409:8087:1a01:df::4062]/PLTV/88888888/224/3221226046/index.m3u8
咪咕直播-41,http://[2409:8087:1a01:df::4041]/PLTV/88888888/224/3221226053/index.m3u8
咪咕直播-42,http://[2409:8087:1a01:df::404d]/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226124/index.m3u8
IPV6-2,#genre#
CCTV-1 综合,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001022/index.m3u8
CCTV-2 财经,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001220/index.m3u8
CCTV-3 综艺,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001186/index.m3u8
CCTV-4 中文国际,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001221/index.m3u8
CCTV-5 体育,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001187/index.m3u8
CCTV-5+ 体育赛事,http://[2409:8087:7000:20:1000::22]:6060/yinhe/2/ch00000090990000001334/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
CCTV-6 电影,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001188/index.m3u8
CCTV-7 国防军事,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001236/index.m3u8
CCTV-8 电视剧,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001189/index.m3u8
CCTV-9 纪录,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001237/index.m3u8
CCTV-10 科教,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001238/index.m3u8
CCTV-11 戏曲,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001309/index.m3u8
CCTV-12 社会与法,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001239/index.m3u8
CCTV-13 新闻,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001328/index.m3u8
CCTV-14 少儿,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001240/index.m3u8
CCTV-15 音乐,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001338/index.m3u8
CCTV-16 奥林匹克,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001248/index.m3u8
CCTV-17 农业农村,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001241/index.m3u8
CCTV-16 奥林匹克 4K,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001258/index.m3u8
CCTV-4K 超高清,http://[2409:8087:2001:20:2800:0:df6e:eb26]:80/ott.mobaibox.com/PLTV/3/224/3221228472/index.m3u8
CCTV-8K 超高清,http://[2409:8087:2001:20:2800:0:df6e:eb02]:80/wh7f454c46tw2749731958_105918260/ott.mobaibox.com/PLTV/3/224/3221228165/index.m3u8?icpid=3&RTS=1681529690&from=40&popid=40&hms_devid=2039&prioritypopid=40&vqe=3
CHC动作电影,http://[2409:8087:7000:20:1000::22]:6060/yinhe/2/ch00000090990000002055/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
CHC家庭影院,http://[2409:8087:7000:20:1000::22]:6060/yinhe/2/ch00000090990000002085/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
CHC高清电影,http://[2409:8087:7000:20:1000::22]:6060/yinhe/2/ch00000090990000002065/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
北京卫视,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001029/index.m3u8
湖南卫视,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001026/index.m3u8
东方卫视,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001013/index.m3u8
四川卫视,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001130/index.m3u8
天津卫视,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001036/index.m3u8
安徽卫视,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001037/index.m3u8
山东卫视,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001028/index.m3u8
广东卫视,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001032/index.m3u8
广西卫视,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001224/index.m3u8
江苏卫视,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001033/index.m3u8
江西卫视,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001034/index.m3u8
河北卫视,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001229/index.m3u8
河南卫视,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001222/index.m3u8
浙江卫视,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001023/index.m3u8
海南卫视,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001183/index.m3u8
深圳卫视,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001030/index.m3u8
湖北卫视,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001027/index.m3u8
山西卫视,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001070/index.m3u8
东南卫视,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001201/index.m3u8
贵州卫视,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001184/index.m3u8
辽宁卫视,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001035/index.m3u8
重庆卫视,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001129/index.m3u8
黑龙江卫视,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001031/index.m3u8
内蒙古卫视,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001068/index.m3u8
宁夏卫视,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001074/index.m3u8
陕西卫视,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001067/index.m3u8
甘肃卫视,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001298/index.m3u8
吉林卫视,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001225/index.m3u8
云南卫视,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001223/index.m3u8
三沙卫视,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001185/index.m3u8
青海卫视,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001450/index.m3u8
新疆卫视,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001065/index.m3u8
西藏卫视,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001072/index.m3u8
兵团卫视,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001066/index.m3u8
延边卫视,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001470/index.m3u8
厦门卫视,http://[2409:8087:7000:20::4]:80/dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226219/index.m3u8
CETV-1,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001020/index.m3u8
CETV-2,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001226/index.m3u8
CETV-4,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001348/index.m3u8
金色学堂,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001194/index.m3u8
纪实人文,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001019/index.m3u8
生活时尚,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001199/index.m3u8
乐游频道,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001200/index.m3u8
都市剧场,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001203/index.m3u8
欢笑剧场,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001193/index.m3u8
北京纪实科教,http://[2409:8087:7000:20:1000::22]:6060/yinhe/2/ch00000090990000001329/index.m3u8?virtualDomain=yinhe.live_hls.zte.com
卡酷少儿,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001245/index.m3u8
金鹰纪实,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001230/index.m3u8
金鹰卡通,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001460/index.m3u8
茶友频道,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001234/index.m3u8
快乐垂钓,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001235/index.m3u8
嘉佳卡通,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001227/index.m3u8
动漫秀场,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001196/index.m3u8
哈哈炫动,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001232/index.m3u8
游戏风云,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001192/index.m3u8
家庭理财,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001278/index.m3u8
财富天下,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001219/index.m3u8
中国天气,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001102/index.m3u8
兵器科技,http://[2409:8087:7001:20:2::3]:80/dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226975/index.m3u8
怀旧剧场,http://[2409:8087:7001:20:2::3]:80/dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226972/index.m3u8
世界地理,http://[2409:8087:7001:20:2::3]:80/dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226947/index.m3u8
文化精品,http://[2409:8087:7001:20:2::3]:80/dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226981/index.m3u8
央视台球,http://[2409:8087:7001:20:2::3]:80/dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226956/index.m3u8
央视高网,http://[2409:8087:7001:20:2::3]:80/dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226978/index.m3u8
风云剧场,http://[2409:8087:7001:20:2::3]:80/dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226950/index.m3u8
风云音乐,http://[2409:8087:7001:20:2::3]:80/dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226953/index.m3u8
第一剧场,http://[2409:8087:7001:20:2::3]:80/dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226959/index.m3u8
女性时尚,http://[2409:8087:7001:20:2::3]:80/dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226969/index.m3u8
风云足球,http://[2409:8087:7001:20:2::3]:80/dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226984/index.m3u8
电视指南,http://[2409:8087:7001:20:2::3]:80/dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226987/index.m3u8
上海新闻,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001014/index.m3u8
上海都市,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001015/index.m3u8
上海ICS,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001128/index.m3u8
七彩戏剧,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001308/index.m3u8
上海教育,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001268/index.m3u8
五星体育,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001018/index.m3u8
东方影视,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001016/index.m3u8
东方财经,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001318/index.m3u8
法治天地,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001195/index.m3u8
第一财经,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001017/index.m3u8
求索记录,http://[2409:8087:7001:20:1000::95]:6610/000000001000/6000000002000032052/index.m3u8?channel-id=wasusyt&Contentid=6000000002000032052&livemode=1&stbId=3
求索动物,http://[2409:8087:7001:20:1000::95]:6610/000000001000/6000000002000010046/index.m3u8?channel-id=wasusyt&Contentid=6000000002000010046&livemode=1&stbId=3
求索科学,http://[2409:8087:7001:20:1000::95]:6610/000000001000/6000000002000032344/index.m3u8?channel-id=wasusyt&Contentid=6000000002000032344&livemode=1&stbId=3
求索生活,http://[2409:8087:7001:20:1000::95]:6610/000000001000/6000000002000003382/index.m3u8?channel-id=wasusyt&Contentid=6000000002000003382&livemode=1&stbId=3
超级综艺,http://[2409:8087:7000:20::4]:80/dbiptv.sn.chinamobile.com/PLTV/88888888/224/3221226009/index.m3u8
超级体育,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225715/index.m3u8
超级电影,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225717/index.m3u8
超级电视剧,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225716/index.m3u8
武博世界,http://[2409:8087:2001:20:2800:0:df6e:eb19]:80/wh7f454c46tw2554338791_49940138/ott.mobaibox.com/PLTV/3/224/3221227533/index.m3u8
中国功夫,http://[2409:8087:2001:20:2800:0:df6e:eb19]:80/wh7f454c46tw1934355864_2070028581/ott.mobaibox.com/PLTV/3/224/3221227530/index.m3u8
军旅剧场,http://[2409:8087:2001:20:2800:0:df6e:eb06]:80/wh7f454c46tw1807611386_-262631246/ott.mobaibox.com/PLTV/3/224/3221227603/index.m3u8
炫舞未来,http://[2409:8087:2001:20:2800:0:df6e:eb09]:80/wh7f454c46tw2582593423_1721070986/ott.mobaibox.com/PLTV/3/224/3221227475/index.m3u8
潮妈辣婆,http://[2409:8087:2001:20:2800:0:df6e:eb19]:80/wh7f454c46tw1705588260_46164741/ott.mobaibox.com/PLTV/3/224/3221227527/index.m3u8
精品体育,http://[2409:8087:2001:20:2800:0:df6e:eb1b]:80/wh7f454c46tw2797725038_-2054878207/ott.mobaibox.com/PLTV/3/224/3221227615/index.m3u8
精品纪录,http://[2409:8087:2001:20:2800:0:df6e:eb1a]:80/wh7f454c46tw2837435881_530071425/ott.mobaibox.com/PLTV/3/224/3221227547/index.m3u8
家庭剧场,http://[2409:8087:2001:20:2800:0:df6e:eb06]:80/wh7f454c46tw3441504651_1879058580/ott.mobaibox.com/PLTV/3/224/3221227600/index.m3u8
精品大剧,http://[2409:8087:2001:20:2800:0:df6e:eb1a]:80/wh7f454c46tw2817459161_-1430429466/ott.mobaibox.com/PLTV/3/224/3221227618/index.m3u8
军事评论,http://[2409:8087:2001:20:2800:0:df6e:eb18]:80/wh7f454c46tw3373254713_-1111569189/ott.mobaibox.com/PLTV/3/224/3221227544/index.m3u8
明星大片,http://[2409:8087:2001:20:2800:0:df6e:eb18]:80/wh7f454c46tw2856695654_946966165/ott.mobaibox.com/PLTV/3/224/3221227594/index.m3u8
东北热剧,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225741/index.m3u8
欢乐剧场,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225742/index.m3u8
CGTN英语,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001058/index.m3u8
CGTN记录,https://livedoc.cgtn.com/500d/prog_index.m3u8
CGTN俄语,https://liveru.cgtn.com/1000r/prog_index.m3u8
CGTN法语,https://livefr.cgtn.com/1000f/prog_index.m3u8
CGTN西语,https://livees.cgtn.com/1000e/prog_index.m3u8
CGTN阿语,https://livear.cgtn.com/1000a/prog_index.m3u8
Bestv赛事1,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001151/index.m3u8
Bestv赛事2,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001359/index.m3u8
Bestv赛事3,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001388/index.m3u8
Bestv赛事4,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001149/index.m3u8
Bestv赛事5,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001153/index.m3u8
东方购物1,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001040/index.m3u8
东方购物2,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001039/index.m3u8
央广购物,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001420/index.m3u8
优购物,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001440/index.m3u8
好享购物,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001132/index.m3u8
聚鲨精选,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001138/index.m3u8
家家购物,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001163/index.m3u8
家有购物,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001244/index.m3u8
快乐购,http://[2409:8087:1e03:21::2]:6060/cms001/ch00000090990000001368/index.m3u8

BIN
app/nan0926.jar Normal file

Binary file not shown.

0
app/signer.sh Normal file
View File

BIN
app/static/cat.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -0,0 +1 @@
{"sites":[{"key":"点播源","name":"点播源","type":0,"api":"http://www.kkkkkbbbbb.com/api.php/provide/vod/at/xml/","playUrl":"","categories":["国产剧","港台剧","日韩剧","欧美剧","泰剧","综艺"]}],"lives":[{"group":"自定义","channels":[{"name":"直播源","urls":["about:blank"]}]}],"parses":[{"name":"解析1","url":"https://xxx.xxx?jx="}],"flags":["youku","qq","iqiyi","qiyi","letv","sohu","tudou","pptv","mgtv","wasu"],"ijk":[{"group":"软解码","options":[{"category":4,"name":"opensles","value":"0"},{"category":4,"name":"overlay-format","value":"842225234"},{"category":4,"name":"framedrop","value":"1"},{"category":4,"name":"soundtouch","value":"1"},{"category":4,"name":"start-on-prepared","value":"1"},{"category":1,"name":"http-detect-range-support","value":"0"},{"category":1,"name":"fflags","value":"fastseek"},{"category":2,"name":"skip_loop_filter","value":"48"},{"category":4,"name":"reconnect","value":"1"},{"category":4,"name":"max-buffer-size","value":"5242880"},{"category":4,"name":"enable-accurate-seek","value":"0"},{"category":4,"name":"mediacodec","value":"0"},{"category":4,"name":"mediacodec-auto-rotate","value":"0"},{"category":4,"name":"mediacodec-handle-resolution-change","value":"0"},{"category":4,"name":"mediacodec-hevc","value":"0"}]},{"group":"硬解码","options":[{"category":4,"name":"opensles","value":"0"},{"category":4,"name":"overlay-format","value":"842225234"},{"category":4,"name":"framedrop","value":"1"},{"category":4,"name":"soundtouch","value":"1"},{"category":4,"name":"start-on-prepared","value":"1"},{"category":1,"name":"http-detect-range-support","value":"0"},{"category":1,"name":"fflags","value":"fastseek"},{"category":2,"name":"skip_loop_filter","value":"48"},{"category":4,"name":"reconnect","value":"1"},{"category":4,"name":"max-buffer-size","value":"5242880"},{"category":4,"name":"enable-accurate-seek","value":"0"},{"category":4,"name":"mediacodec","value":"1"},{"category":4,"name":"mediacodec-auto-rotate","value":"1"},{"category":4,"name":"mediacodec-handle-resolution-change","value":"1"},{"category":4,"name":"mediacodec-hevc","value":"1"}]}],"ads":["mimg.0c1q0l.cn","www.googletagmanager.com","www.google-analytics.com","mc.usihnbcq.cn","mg.g1mm3d.cn","mscs.svaeuzh.cn","cnzz.hhttm.top","tp.vinuxhome.com","cnzz.mmstat.com","www.baihuillq.com","s23.cnzz.com","z3.cnzz.com","c.cnzz.com","stj.v1vo.top","z12.cnzz.com","img.mosflower.cn","tips.gamevvip.com","ehwe.yhdtns.com","xdn.cqqc3.com","www.jixunkyy.cn","sp.chemacid.cn","hm.baidu.com","s9.cnzz.com","z6.cnzz.com","um.cavuc.com","mav.mavuz.com","wofwk.aoidf3.com","z5.cnzz.com","xc.hubeijieshikj.cn","tj.tianwenhu.com","xg.gars57.cn","k.jinxiuzhilv.com","cdn.bootcss.com","ppl.xunzhuo123.com","xomk.jiangjunmh.top","img.xunzhuo123.com","z1.cnzz.com","s13.cnzz.com","xg.huataisangao.cn","z7.cnzz.com","xg.huataisangao.cn","z2.cnzz.com","s96.cnzz.com","q11.cnzz.com","thy.dacedsfa.cn","xg.whsbpw.cn","s19.cnzz.com","z8.cnzz.com","s4.cnzz.com","f5w.as12df.top","ae01.alicdn.com","www.92424.cn","k.wudejia.com","vivovip.mmszxc.top","qiu.xixiqiu.com","cdnjs.hnfenxun.com","cms.qdwght.com"]}

1
app/static/editor.css Normal file
View File

@ -0,0 +1 @@
.subTabLv1 .nav-tabs{border:none;}.subTabLv1 .nav-tabs > li{margin-bottom:10px;}.subTabLv1 .nav-tabs > li > a,.subTabLv1 .nav-tabs > li > a:hover,.subTabLv1 .nav-tabs > li.active > a,.subTabLv1 .nav-tabs > li.active > a:hover{border:1px solid #ddd;border-radius:4px;padding:5px 8px;}.subTabLv1 .nav-tabs > li.active > a{font-weight:bold;}.subTabLv1 fieldset > legend{display:none;}.subTabLv2{border:1px solid #ddd;border-radius:4px;padding:0 10px 10px 10px;}.subTabLv2 .nav-tabs > li{}.subTabLv2 .nav-tabs > li.active > a{font-weight:normal;}.subTabLv2 .nav-tabs > li > a,.subTabLv2 .nav-tabs > li > a:hover,.subTabLv2 .nav-tabs > li.active > a,.subTabLv2 .nav-tabs > li.active > a:hover{border:1px solid #ddd;border-radius:4px;padding:5px 10px;}.subTabLv3{border-radius:4px;padding:10px 10px 10px 10px;background-color:#f7f7f9;border:1px solid #e1e1e8;}

1
app/static/editor.js Normal file

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

1
app/static/index.js Normal file

File diff suppressed because one or more lines are too long

1
app/static/jsonform.js Normal file

File diff suppressed because one or more lines are too long

1
app/static/jsonform.json Normal file

File diff suppressed because one or more lines are too long

1
app/static/jsonlint.js Normal file

File diff suppressed because one or more lines are too long

4
app/static/jsv.js Normal file

File diff suppressed because one or more lines are too long

205
app/tv.txt Normal file
View File

@ -0,0 +1,205 @@
CCTV,#genre#
CCTV1,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226016/index.m3u8
CCTV1,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226559/index.m3u8
CCTV1,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226514/index.m3u8
CCTV2,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226540/index.m3u8
CCTV2,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225588/index.m3u8
CCTV3,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226021/index.m3u8
CCTV4,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226428/index.m3u8
CCTV4,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226007/index.m3u8
CCTV5,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226019/index.m3u8
CCTV5+,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225603/index.m3u8
CCTV6,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226010/index.m3u8
CCTV7,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225733/index.m3u8
CCTV8,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226008/index.m3u8
CCTV9,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225734/index.m3u8
CCTV10,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225730/index.m3u8
CCTV10,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226473/index.m3u8
CCTV11,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226565/index.m3u8
CCTV11,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225597/index.m3u8
CCTV12,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225731/index.m3u8
CCTV12,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226568/index.m3u8
CCTV13,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226537/index.m3u8
CCTV13,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226571/index.m3u8
CCTV13,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226011/index.m3u8
CCTV14,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225732/index.m3u8
CCTV14,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226591/index.m3u8
CCTV15,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226476/index.m3u8
CCTV15,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225601/index.m3u8
CCTV16,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226100/index.m3u8
CCTV17,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225765/index.m3u8
CETV1,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225652/index.m3u8
CETV2,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226425/index.m3u8
CETV4,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225783/index.m3u8
CGTN英语,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225604/index.m3u8
CGTN西语,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226431/index.m3u8
CGTN俄语,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226543/index.m3u8
CGTN法语,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226520/index.m3u8
CGTN阿语,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226517/index.m3u8
CGTN纪录,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225602/index.m3u8
CGTN纪录,https://livedoc.cgtn.com/500d/prog_index.m3u8
CGTN俄语,https://liveru.cgtn.com/1000r/prog_index.m3u8
CGTN法语,https://livefr.cgtn.com/1000f/prog_index.m3u8
CGTN西语,https://livees.cgtn.com/1000e/prog_index.m3u8
CGTN阿语,https://livear.cgtn.com/1000a/prog_index.m3u8
CCTV5+,http://39.134.67.108/PLTV/88888888/224/3221225507/1.m3u8
CCTV16,http://39.134.67.108/PLTV/88888888/224/3221225893/1.m3u8
CCTV6,http://39.134.67.108/PLTV/88888888/224/3221225814/1.m3u8
CCTV5,http://39.134.67.108/PLTV/88888888/224/3221225818/1.m3u8
CCTV1,http://39.134.67.108/PLTV/88888888/224/3221225816/1.m3u8
CCTV3,http://39.134.67.108/PLTV/88888888/224/3221225799/1.m3u8
CCTV8,http://39.134.67.108/PLTV/88888888/224/3221225795/1.m3u8
CCTV17,http://39.134.67.108/PLTV/88888888/224/3221225708/1.m3u8
CCTV10,http://39.134.67.108/PLTV/88888888/224/3221225677/1.m3u8
CCTV9,http://39.134.67.108/PLTV/88888888/224/3221225676/1.m3u8
CCTV14,http://39.134.67.108/PLTV/88888888/224/3221225674/1.m3u8
CCTV7,http://39.134.67.108/PLTV/88888888/224/3221225671/1.m3u8
CCTV12,http://39.134.67.108/PLTV/88888888/224/3221225669/1.m3u8
CCTV2,http://39.134.67.108/PLTV/88888888/224/3221225599/1.m3u8
CCTV15,http://39.134.67.108/PLTV/88888888/224/3221225513/1.m3u8
CCTV11,http://39.134.67.108/PLTV/88888888/224/3221225517/1.m3u8
CCTV13,http://39.134.67.108/PLTV/88888888/224/3221225812/1.m3u8
CCTV4,http://39.134.67.108/PLTV/88888888/224/3221225797/1.m3u8
CETV4,http://39.134.67.108/PLTV/88888888/224/3221225750/1.m3u8
CETV1,http://39.134.67.108/PLTV/88888888/224/3221225563/1.m3u8
CGTN英语,http://39.134.67.108/PLTV/88888888/224/3221225510/1.m3u8
CGTN纪录,http://39.134.67.108/PLTV/88888888/224/3221225509/1.m3u8
卫视,#genre#
北京卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225728/index.m3u8
北京卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226450/index.m3u8
天津卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225740/index.m3u8
天津卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226459/index.m3u8
东南卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226341/index.m3u8
东方卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225735/index.m3u8
东方卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226345/index.m3u8
江苏卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225613/index.m3u8
江苏卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226310/index.m3u8
浙江卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225612/index.m3u8
浙江卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226339/index.m3u8
安徽卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226391/index.m3u8
河北卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226406/index.m3u8
河南卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226480/index.m3u8
广东卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226248/index.m3u8
深圳卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225739/index.m3u8
深圳卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226313/index.m3u8
湖北卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225627/index.m3u8
湖北卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226477/index.m3u8
香港卫视,http://zhibo.hkstv.tv/livestream/mutfysrq/playlist.m3u8
湖南卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225610/index.m3u8
湖南卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226307/index.m3u8
四川卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226338/index.m3u8
重庆卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226409/index.m3u8
江西卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226344/index.m3u8
山西卫视,http://liveflash.sxrtv.com/live/sxwshd.m3u8?sub_m3u8=true&edge_slice=true
山东卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226456/index.m3u8
贵州卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226474/index.m3u8
海南卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226465/index.m3u8
宁夏卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225632/index.m3u8
宁夏卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226454/index.m3u8
陕西卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226457/index.m3u8
吉林卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226397/index.m3u8
辽宁卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226546/index.m3u8
西藏卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225638/index.m3u8
西藏卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226433/index.m3u8
内蒙古卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225634/index.m3u8
内蒙古卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226389/index.m3u8
黑龙江卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226327/index.m3u8
黑龙江卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226467/index.m3u8
黑龙江卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226419/index.m3u8
黑龙江卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226582/index.m3u8
黑龙江卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226585/index.m3u8
黑龙江卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226532/index.m3u8
黑龙江卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226531/index.m3u8
黑龙江卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226525/index.m3u8
辽宁卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225619/index.m3u8
重庆卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225618/index.m3u8
东南卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225620/index.m3u8
广西卫视,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226549/index.m3u8
黑龙江卫视,http://39.134.67.108/PLTV/88888888/224/3221225994/1.m3u8
深圳卫视,http://39.134.67.108/PLTV/88888888/224/3221225943/1.m3u8
安徽卫视,http://39.134.67.108/PLTV/88888888/224/3221225925/1.m3u8
北京卫视,http://39.134.67.108/PLTV/88888888/224/3221225931/1.m3u8
江西卫视,http://39.134.67.108/PLTV/88888888/224/3221225935/1.m3u8
江苏卫视,http://39.134.67.108/PLTV/88888888/224/3221225938/1.m3u8
东方卫视,http://39.134.67.108/PLTV/88888888/224/3221225942/1.m3u8
东南卫视,http://39.134.67.108/PLTV/88888888/224/3221225950/1.m3u8
西藏卫视,http://39.134.67.108/PLTV/88888888/224/3221225951/1.m3u8
山东卫视,http://39.134.67.108/PLTV/88888888/224/3221225952/1.m3u8
浙江卫视,http://39.134.67.108/PLTV/88888888/224/3221225959/1.m3u8
河北卫视,http://39.134.67.108/PLTV/88888888/224/3221225961/1.m3u8
重庆卫视,http://39.134.67.108/PLTV/88888888/224/3221225963/1.m3u8
广东卫视,http://39.134.67.108/PLTV/88888888/224/3221225966/1.m3u8
四川卫视,http://39.134.67.108/PLTV/88888888/224/3221225970/1.m3u8
天津卫视,http://39.134.67.108/PLTV/88888888/224/3221225972/1.m3u8
贵州卫视,http://39.134.67.108/PLTV/88888888/224/3221225974/1.m3u8
湖北卫视,http://39.134.67.108/PLTV/88888888/224/3221225975/1.m3u8
山西卫视,http://39.134.67.108/PLTV/88888888/224/3221226009/1.m3u8
吉林卫视,http://39.134.67.108/PLTV/88888888/224/3221226013/1.m3u8
海南卫视,http://39.134.67.108/PLTV/88888888/224/3221226026/1.m3u8
广西卫视,http://39.134.67.108/PLTV/88888888/224/3221226024/1.m3u8
北京卫视,http://39.134.65.179/PLTV/88888888/224/3221225678/1.m3u8
北京卫视,http://39.134.65.173/PLTV/88888888/224/3221225678/1.m3u8
山东卫视,http://39.134.65.141/PLTV/88888888/224/3221225952/1.m3u8
江苏卫视,http://39.134.65.175/PLTV/88888888/224/3221225503/1.m3u8
江苏卫视,http://39.134.65.181/PLTV/88888888/224/3221225503/1.m3u8
江苏卫视,http://39.134.65.183/PLTV/88888888/224/3221225503/1.m3u8
江苏卫视,http://39.134.65.173/PLTV/88888888/224/3221225503/1.m3u8
东方卫视,http://39.134.65.179/PLTV/88888888/224/3221225672/1.m3u8
东方卫视,http://39.134.65.173/PLTV/88888888/224/3221225672/1.m3u8
东方卫视,http://39.134.65.175/PLTV/88888888/224/3221225672/1.m3u8
浙江卫视,http://39.134.65.162/PLTV/88888888/224/3221225514/1.m3u8
浙江卫视,http://39.134.65.175/PLTV/88888888/224/3221225514/1.m3u8
浙江卫视,http://39.134.65.179/PLTV/88888888/224/3221225514/1.m3u8
浙江卫视,http://39.134.65.173/PLTV/88888888/224/3221225514/1.m3u8
湖北卫视,http://39.134.65.162/PLTV/88888888/224/3221225569/1.m3u8
湖南卫视,http://39.134.65.181/PLTV/88888888/224/3221225506/1.m3u8
湖南卫视,http://39.134.65.173/PLTV/88888888/224/3221225506/1.m3u8
湖南卫视,http://39.134.65.183/PLTV/88888888/224/3221225506/1.m3u8
湖南卫视,http://39.134.65.175/PLTV/88888888/224/3221225506/1.m3u8
贵州卫视,http://39.134.65.149/PLTV/88888888/224/3221225974/1.m3u8
精品,#genre#
黑莓电影,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225743/index.m3u8
黑莓动画,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225662/index.m3u8
纪实人文,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225738/index.m3u8
超级电视剧,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225716/index.m3u8
超级电影,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225717/index.m3u8
哒啵赛事,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225675/index.m3u8
金牌综艺,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225666/index.m3u8
精品体育,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225674/index.m3u8
咪咕体育,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226398/index.m3u8
爱情喜剧,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225669/index.m3u8
精品萌宠,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226505/index.m3u8
睛彩竞技,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226472/index.m3u8
睛彩篮球,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226469/index.m3u8
睛彩篮球,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226147/index.m3u8
睛彩竞技,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226124/index.m3u8
睛彩青少,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226508/index.m3u8
卡酷少儿,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225654/index.m3u8
金鹰卡通,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225653/index.m3u8
优漫卡通,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225656/index.m3u8
哈哈炫动,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225657/index.m3u8
超级体育,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225715/index.m3u8
超级综艺,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225714/index.m3u8
潮妈辣婆,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225685/index.m3u8
东北热剧,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225741/index.m3u8
动作电影,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225661/index.m3u8
古装剧场,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225663/index.m3u8
海外剧场,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225671/index.m3u8
欢乐剧场,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225742/index.m3u8
家庭剧场,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225677/index.m3u8
惊悚悬疑,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225665/index.m3u8
精品大剧,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225670/index.m3u8
精品纪录,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225672/index.m3u8
军旅剧场,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225676/index.m3u8
军事评论,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225668/index.m3u8
明星大片,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225664/index.m3u8
农业致富,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225683/index.m3u8
武搏世界,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225680/index.m3u8
炫舞未来,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225719/index.m3u8
怡伴健康,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225673/index.m3u8
中国功夫,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225681/index.m3u8
纪实科教,http://ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225729/index.m3u8
睛彩竞技,http://39.134.67.108/PLTV/88888888/224/3221225897/1.m3u8
睛彩篮球,http://39.134.67.108/PLTV/88888888/224/3221225895/1.m3u8
足球频道,https://nmglive.imfc.cn/5n1r1c/182396.m3u8
卡酷少儿,http://39.134.67.108/PLTV/88888888/224/3221225562/1.m3u8

2782
app/yz-副本.json Normal file

File diff suppressed because it is too large Load Diff

2782
app/yz.json Normal file

File diff suppressed because it is too large Load Diff

59
assets/css/eruyi.min.css vendored Normal file

File diff suppressed because one or more lines are too long

1
assets/css/icons.min.css vendored Normal file

File diff suppressed because one or more lines are too long

185
assets/css/main.css Normal file
View File

@ -0,0 +1,185 @@
@charset "UTF-8";
/* Headings
========================================================================== */
h1, .uk-h1,
h2, .uk-h2,
.uk-heading-small,
.uk-heading-medium,
.uk-heading-large,
.uk-heading-xlarge,
.uk-heading-2xlarge {
margin: 0 0 20px 0;
font-family: "Muli", sans-serif;
font-weight: 500;
color: #000;
text-transform: none;
}
/* Add margin if adjacent element */
* + h1, * + .uk-h1,
* + h2, * + .uk-h2,
* + .uk-heading-small,
* + .uk-heading-medium,
* + .uk-heading-large,
* + .uk-heading-xlarge,
* + .uk-heading-2xlarge {
margin-top: 40px;
}
/*
* Sizes
*/
h1, .uk-h1 {
font-size: 1.7rem;
line-height: 1.2;
}
h2, .uk-h2 {
font-size: 1.540625rem;
line-height: 1.3;
}
/* Size
========================================================================== */
.uk-background-cover,
.uk-background-contain {
background-position: 50% 50%;
background-repeat: no-repeat;
}
.uk-background-cover {
background-size: cover;
}
.uk-background-contain {
background-size: contain;
}
/* Medium
========================================================================== */
.uk-margin-medium {
margin-bottom: 40px;
}
* + .uk-margin-medium {
margin-top: 40px !important;
}
.uk-margin-medium-top {
margin-top: 40px !important;
}
.uk-margin-medium-bottom {
margin-bottom: 40px !important;
}
.uk-margin-medium-left {
margin-left: 40px !important;
}
.uk-margin-medium-right {
margin-right: 40px !important;
}
/* ========================================================================
Component: Visibility
========================================================================== */
/*
* Hidden
* `hidden` attribute also set here to make it stronger
*/
[hidden],
.uk-hidden {
display: none !important;
}
/* Phone landscape and bigger */
@media (min-width: 640px) {
.uk-hidden\@s {
display: none !important;
}
}
/* Tablet landscape and bigger */
@media (min-width: 960px) {
.uk-hidden\@m {
display: none !important;
}
}
/* Desktop and bigger */
@media (min-width: 1200px) {
.uk-hidden\@l {
display: none !important;
}
}
/* Large screen and bigger */
@media (min-width: 1600px) {
.uk-hidden\@xl {
display: none !important;
}
}
/*
* Visible
*/
/* Phone portrait and smaller */
@media (max-width: 639px) {
.uk-visible\@s {
display: none !important;
}
}
/* Phone landscape and smaller */
@media (max-width: 959px) {
.uk-visible\@m {
display: none !important;
}
}
/* Tablet landscape and smaller */
@media (max-width: 1199px) {
.uk-visible\@l {
display: none !important;
}
}
/* Desktop and smaller */
@media (max-width: 1599px) {
.uk-visible\@xl {
display: none !important;
}
}
.uk-light a, .uk-section-primary:not(.uk-preserve-color) a, .uk-section-secondary:not(.uk-preserve-color) a, .uk-tile-primary:not(.uk-preserve-color) a, .uk-tile-secondary:not(.uk-preserve-color) a, .uk-card-primary.uk-card-body a, .uk-card-primary > :not([class*='uk-card-media']) a, .uk-card-secondary.uk-card-body a, .uk-card-secondary > :not([class*='uk-card-media']) a, .uk-overlay-primary a,
.uk-light .uk-link,
.uk-section-primary:not(.uk-preserve-color) .uk-link,
.uk-section-secondary:not(.uk-preserve-color) .uk-link,
.uk-tile-primary:not(.uk-preserve-color) .uk-link,
.uk-tile-secondary:not(.uk-preserve-color) .uk-link,
.uk-card-primary.uk-card-body .uk-link,
.uk-card-primary > :not([class*='uk-card-media']) .uk-link,
.uk-card-secondary.uk-card-body .uk-link,
.uk-card-secondary > :not([class*='uk-card-media']) .uk-link,
.uk-overlay-primary .uk-link {
color: #fff;
}
.uk-light h1, .uk-section-primary:not(.uk-preserve-color) h1, .uk-section-secondary:not(.uk-preserve-color) h1, .uk-tile-primary:not(.uk-preserve-color) h1, .uk-tile-secondary:not(.uk-preserve-color) h1, .uk-card-primary.uk-card-body h1, .uk-card-primary > :not([class*='uk-card-media']) h1, .uk-card-secondary.uk-card-body h1, .uk-card-secondary > :not([class*='uk-card-media']) h1, .uk-overlay-primary h1, .uk-light .uk-h1, .uk-section-primary:not(.uk-preserve-color) .uk-h1, .uk-section-secondary:not(.uk-preserve-color) .uk-h1, .uk-tile-primary:not(.uk-preserve-color) .uk-h1, .uk-tile-secondary:not(.uk-preserve-color) .uk-h1, .uk-card-primary.uk-card-body .uk-h1, .uk-card-primary > :not([class*='uk-card-media']) .uk-h1, .uk-card-secondary.uk-card-body .uk-h1, .uk-card-secondary > :not([class*='uk-card-media']) .uk-h1, .uk-overlay-primary .uk-h1,
.uk-light h2,
.uk-section-primary:not(.uk-preserve-color) h2,
.uk-section-secondary:not(.uk-preserve-color) h2,
.uk-tile-primary:not(.uk-preserve-color) h2,
.uk-tile-secondary:not(.uk-preserve-color) h2,
.uk-card-primary.uk-card-body h2,
.uk-card-primary > :not([class*='uk-card-media']) h2,
.uk-card-secondary.uk-card-body h2,
.uk-card-secondary > :not([class*='uk-card-media']) h2,
.uk-overlay-primary h2, .uk-light .uk-h2, .uk-section-primary:not(.uk-preserve-color) .uk-h2, .uk-section-secondary:not(.uk-preserve-color) .uk-h2, .uk-tile-primary:not(.uk-preserve-color) .uk-h2, .uk-tile-secondary:not(.uk-preserve-color) .uk-h2, .uk-card-primary.uk-card-body .uk-h2, .uk-card-primary > :not([class*='uk-card-media']) .uk-h2, .uk-card-secondary.uk-card-body .uk-h2, .uk-card-secondary > :not([class*='uk-card-media']) .uk-h2, .uk-overlay-primary .uk-h2,
.uk-overlay-primary .uk-heading-2xlarge {
color: #fff;
}

59
assets/css/style.css Normal file
View File

@ -0,0 +1,59 @@
p {
margin: 10px 0;
color: inherit
}
/*www.eruyi.cn鼠标背景颜色*/
.inpit .li>div[name][value]:hover {
border: 2px dashed #5856f1;
background-color: rgba(235, 234, 253, 1)
}
.inpit {
background-color: #ffffff;
position: relative;
height: 100%
}
/*
.inpit .li {
margin: 0 auto;
min-width: 200px;
padding: 20px 0;
display: flow-root
}*/
.inpit .li>div[name][value],
.inpit .li>div.add {
cursor: pointer;
transition: transform 0.2s ease-in, box-shadow 0.2s ease-out;
#width: calc(25% - 64px);
box-shadow: 0 0 0 rgba(0, 0, 0, 0.2);
background-color: #fff;
padding: 25px 40px 25px 40px;
border: 2px dashed #dcdcdc;
border-radius: 4px;
margin: 0 10px 20px
}
.inpit .li>div.ack[name][value],
.inpit .li>div.active[name][value]{
box-shadow: 0 3px 20px rgba(130,129,243, 1);
transform: scale(1.05);
border: 2px solid #5856f1;
background-color: #5856f1;
color: #fff;
animation: scales 0.3s
}
@keyframes scales {
0% {
transform: scale(1)
}
50% {
transform: scale(1.25)
}
100% {
transform: scale(1)
}
}

1
assets/css/vendor/britecharts.min.css vendored Normal file
View File

@ -0,0 +1 @@
@font-face{font-family:Karla,sans-serif;src:url(https://fonts.googleapis.com/css?family=Karla) format("opentype");font-weight:300}.britechart{font-family:Karla,sans-serif;-webkit-font-smoothing:antialiased}.select-disable{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.bar-load-state .chart-filter,.donut-load-state .chart-filter,.line-load-state .chart-filter,.stacked-area-load-state .chart-filter{will-change:transform;animation:swipe 1.5s linear infinite forwards}@keyframes swipe{from{transform:translateX(-100%)}to{transform:translateX(100%)}}.horizontal-grid-line,.vertical-grid-line{fill:none;shape-rendering:crispEdges;stroke:#eff2f5;stroke-width:1;stroke-dasharray:4,4}.extended-x-line,.extended-y-line{fill:none;shape-rendering:crispEdges;stroke:#d2d6df;stroke-width:1}.tick line{fill:none;stroke:#adb0b6;stroke-width:1;shape-rendering:crispEdges}.tick text{font-size:1rem;fill:#666a73;padding:12px}.x-axis-label,.y-axis-label{font-size:1rem;fill:#adb0b6}.vertical-marker-container .vertical-marker{stroke:#d2d6df;stroke-width:1;fill:none}.vertical-marker-container .data-point-highlighter{fill:#fff;stroke-width:2}.tooltip-background{fill:rgba(255,255,255,.97);stroke:#d2d6df;stroke-width:1;border-radius:2px}.britechart-legend .legend-entry.is-faded .legend-circle,.britechart-legend .legend-entry.is-faded .legend-entry-name,.britechart-legend .legend-entry.is-faded .legend-entry-value{opacity:.97;transition:opacity .2s ease-out;-moz-transition:opacity .2s ease-out;-webkit-transition:opacity .2s ease-out}.britechart-legend .legend-entry.is-faded .legend-circle,.britechart-legend .legend-entry.is-faded .legend-entry-name,.britechart-legend .legend-entry.is-faded .legend-entry-value{opacity:.2}.bar-chart .bar{shape-rendering:crispEdges}.bar-chart .y-axis-group .tick text{font-size:14px}.bar-chart .axis path{display:none}.bar-chart .tick line{display:none}.bar-chart .adjust-upwards{transform:translate(0,-10px)}.bar-chart .percentage-label{fill:#666a73}.line-chart .data-point-mark{fill:#fff}.line-chart .topic .line{fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.line-chart .x.axis path,.line-chart .y.axis path{display:none}.line-chart .month-axis path{display:none}.line-chart .masking-rectangle{fill:#fff}.scatter-plot .y-axis-group .tick line{display:none}.scatter-plot .y-axis-group .axis path{display:none}.scatter-plot .x.axis path{display:none}.scatter-plot .data-point-highlighter{stroke-width:1.2}.sparkline{stroke:#adb0b6;stroke-width:1;fill:none;stroke-linecap:round;stroke-linejoin:round}.sparkline .line{stroke-width:2}.sparkline .sparkline-circle{fill:#ff584c;stroke-width:0;display:none}.sparkline .sparkline-area{stroke:none}.stacked-area .dot{display:none}.stacked-area .y-axis-group path{display:none}.stacked-area .x-axis-group path{display:none}.stacked-area .area-outline{shape-rendering:geometricPrecision;fill:none;stroke-width:1.2}.stacked-area .data-point-highlighter{stroke-width:1.2}.stacked-area .empty-data-line{stroke-width:2px;stroke-linecap:round}.stacked-bar .x-axis-group path,.stacked-bar .y-axis-group path{display:none}.stacked-bar .y-axis-group .tick text{font-size:14px}.stacked-bar .tick line{display:none}.grouped-bar .x-axis-group path,.grouped-bar .y-axis-group path{display:none}.grouped-bar .y-axis-group .tick text{font-size:14px}.grouped-bar .tick line{display:none}.step-chart .step{fill:#8fdad8;stroke-width:0;shape-rendering:crispEdges}.step-chart .step:hover{fill:#39c2c9}.step-chart .axis path{display:none}.step-chart .tick line{display:none}.brush-chart .brush-area{fill:#eff2f5}.brush-chart rect.brush-rect.selection{fill-opacity:.08;stroke-linejoin:round}.brush-chart rect.brush-rect.handle{fill:#00d8d2;width:.2rem}.brush-chart .axis path{display:none}.bullet-chart .marker-line{shape-rendering:crispEdges}.bullet-chart .axis-group path{display:none}.bullet-chart .bullet-title{font-size:16px}

231
assets/css/vendor/buttons.bootstrap4.css vendored Normal file
View File

@ -0,0 +1,231 @@
@keyframes dtb-spinner {
100% {
transform: rotate(360deg);
}
}
@-o-keyframes dtb-spinner {
100% {
-o-transform: rotate(360deg);
transform: rotate(360deg);
}
}
@-ms-keyframes dtb-spinner {
100% {
-ms-transform: rotate(360deg);
transform: rotate(360deg);
}
}
@-webkit-keyframes dtb-spinner {
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg);
}
}
@-moz-keyframes dtb-spinner {
100% {
-moz-transform: rotate(360deg);
transform: rotate(360deg);
}
}
div.dt-button-info {
position: fixed;
top: 50%;
left: 50%;
width: 400px;
margin-top: -100px;
margin-left: -200px;
background-color: white;
border: 2px solid #111;
box-shadow: 3px 3px 8px rgba(0, 0, 0, 0.3);
border-radius: 3px;
text-align: center;
z-index: 21;
}
div.dt-button-info h2 {
padding: 0.5em;
margin: 0;
font-weight: normal;
border-bottom: 1px solid #ddd;
background-color: #f3f3f3;
}
div.dt-button-info > div {
padding: 1em;
}
div.dt-button-collection-title {
text-align: center;
padding: 0.3em 0 0.5em;
font-size: 0.9em;
}
ul.dt-button-collection.dropdown-menu {
display: block;
z-index: 2002;
-webkit-column-gap: 8px;
-moz-column-gap: 8px;
-ms-column-gap: 8px;
-o-column-gap: 8px;
column-gap: 8px;
}
ul.dt-button-collection.dropdown-menu.fixed {
position: fixed;
top: 50%;
left: 50%;
margin-left: -75px;
border-radius: 0;
}
ul.dt-button-collection.dropdown-menu.fixed.two-column {
margin-left: -150px;
}
ul.dt-button-collection.dropdown-menu.fixed.three-column {
margin-left: -225px;
}
ul.dt-button-collection.dropdown-menu.fixed.four-column {
margin-left: -300px;
}
ul.dt-button-collection.dropdown-menu > * {
-webkit-column-break-inside: avoid;
break-inside: avoid;
}
ul.dt-button-collection.dropdown-menu.two-column {
width: 300px;
padding-bottom: 1px;
-webkit-column-count: 2;
-moz-column-count: 2;
-ms-column-count: 2;
-o-column-count: 2;
column-count: 2;
}
ul.dt-button-collection.dropdown-menu.three-column {
width: 450px;
padding-bottom: 1px;
-webkit-column-count: 3;
-moz-column-count: 3;
-ms-column-count: 3;
-o-column-count: 3;
column-count: 3;
}
ul.dt-button-collection.dropdown-menu.four-column {
width: 600px;
padding-bottom: 1px;
-webkit-column-count: 4;
-moz-column-count: 4;
-ms-column-count: 4;
-o-column-count: 4;
column-count: 4;
}
ul.dt-button-collection.dropdown-menu .dt-button {
border-radius: 0;
}
ul.dt-button-collection {
-webkit-column-gap: 8px;
-moz-column-gap: 8px;
-ms-column-gap: 8px;
-o-column-gap: 8px;
column-gap: 8px;
}
ul.dt-button-collection.fixed {
position: fixed;
top: 50%;
left: 50%;
margin-left: -75px;
border-radius: 0;
}
ul.dt-button-collection.fixed.two-column {
margin-left: -150px;
}
ul.dt-button-collection.fixed.three-column {
margin-left: -225px;
}
ul.dt-button-collection.fixed.four-column {
margin-left: -300px;
}
ul.dt-button-collection > * {
-webkit-column-break-inside: avoid;
break-inside: avoid;
}
ul.dt-button-collection.two-column {
width: 300px;
padding-bottom: 1px;
-webkit-column-count: 2;
-moz-column-count: 2;
-ms-column-count: 2;
-o-column-count: 2;
column-count: 2;
}
ul.dt-button-collection.three-column {
width: 450px;
padding-bottom: 1px;
-webkit-column-count: 3;
-moz-column-count: 3;
-ms-column-count: 3;
-o-column-count: 3;
column-count: 3;
}
ul.dt-button-collection.four-column {
width: 600px;
padding-bottom: 1px;
-webkit-column-count: 4;
-moz-column-count: 4;
-ms-column-count: 4;
-o-column-count: 4;
column-count: 4;
}
ul.dt-button-collection .dt-button {
border-radius: 0;
}
ul.dt-button-collection.fixed {
max-width: none;
}
ul.dt-button-collection.fixed:before, ul.dt-button-collection.fixed:after {
display: none;
}
div.dt-button-background {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 999;
}
@media screen and (max-width: 767px) {
div.dt-buttons {
float: none;
width: 100%;
text-align: center;
margin-bottom: 0.5em;
}
div.dt-buttons a.btn {
float: none;
}
}
div.dt-buttons button.btn.processing,
div.dt-buttons div.btn.processing,
div.dt-buttons a.btn.processing {
color: rgba(0, 0, 0, 0.2);
}
div.dt-buttons button.btn.processing:after,
div.dt-buttons div.btn.processing:after,
div.dt-buttons a.btn.processing:after {
position: absolute;
top: 50%;
left: 50%;
width: 16px;
height: 16px;
margin: -8px 0 0 -8px;
box-sizing: border-box;
display: block;
content: ' ';
border: 2px solid #282828;
border-radius: 50%;
border-left-color: transparent;
border-right-color: transparent;
animation: dtb-spinner 1500ms infinite linear;
-o-animation: dtb-spinner 1500ms infinite linear;
-ms-animation: dtb-spinner 1500ms infinite linear;
-webkit-animation: dtb-spinner 1500ms infinite linear;
-moz-animation: dtb-spinner 1500ms infinite linear;
}

View File

@ -0,0 +1,206 @@
table.dataTable {
clear: both;
margin-top: 6px !important;
margin-bottom: 6px !important;
max-width: none !important;
border-collapse: separate !important;
border-spacing: 0;
}
table.dataTable td,
table.dataTable th {
-webkit-box-sizing: content-box;
box-sizing: content-box;
}
table.dataTable td.dataTables_empty,
table.dataTable th.dataTables_empty {
text-align: center;
}
table.dataTable.nowrap th,
table.dataTable.nowrap td {
white-space: nowrap;
}
div.dataTables_wrapper div.dataTables_length label {
font-weight: normal;
text-align: left;
white-space: nowrap;
}
div.dataTables_wrapper div.dataTables_length select {
width: auto;
display: inline-block;
}
div.dataTables_wrapper div.dataTables_filter {
text-align: right;
}
div.dataTables_wrapper div.dataTables_filter label {
font-weight: normal;
white-space: nowrap;
text-align: left;
}
div.dataTables_wrapper div.dataTables_filter input {
margin-left: 0.5em;
display: inline-block;
width: auto;
}
div.dataTables_wrapper div.dataTables_info {
padding-top: 0.85em;
white-space: nowrap;
}
div.dataTables_wrapper div.dataTables_paginate {
margin: 0;
white-space: nowrap;
text-align: right;
}
div.dataTables_wrapper div.dataTables_paginate ul.pagination {
margin: 2px 0;
white-space: nowrap;
justify-content: flex-end;
}
div.dataTables_wrapper div.dataTables_processing {
position: absolute;
top: 50%;
left: 50%;
width: 200px;
margin-left: -100px;
margin-top: -26px;
text-align: center;
padding: 1em 0;
}
table.dataTable thead > tr > th.sorting_asc, table.dataTable thead > tr > th.sorting_desc, table.dataTable thead > tr > th.sorting,
table.dataTable thead > tr > td.sorting_asc,
table.dataTable thead > tr > td.sorting_desc,
table.dataTable thead > tr > td.sorting {
padding-right: 30px;
}
table.dataTable thead > tr > th:active,
table.dataTable thead > tr > td:active {
outline: none;
}
table.dataTable thead .sorting,
table.dataTable thead .sorting_asc,
table.dataTable thead .sorting_desc,
table.dataTable thead .sorting_asc_disabled,
table.dataTable thead .sorting_desc_disabled {
cursor: pointer;
position: relative;
}
table.dataTable thead .sorting:before, table.dataTable thead .sorting:after,
table.dataTable thead .sorting_asc:before,
table.dataTable thead .sorting_asc:after,
table.dataTable thead .sorting_desc:before,
table.dataTable thead .sorting_desc:after,
table.dataTable thead .sorting_asc_disabled:before,
table.dataTable thead .sorting_asc_disabled:after,
table.dataTable thead .sorting_desc_disabled:before,
table.dataTable thead .sorting_desc_disabled:after {
position: absolute;
bottom: 0.9em;
display: block;
opacity: 0.3;
}
table.dataTable thead .sorting:before,
table.dataTable thead .sorting_asc:before,
table.dataTable thead .sorting_desc:before,
table.dataTable thead .sorting_asc_disabled:before,
table.dataTable thead .sorting_desc_disabled:before {
right: 1em;
content: "\2191";
}
table.dataTable thead .sorting:after,
table.dataTable thead .sorting_asc:after,
table.dataTable thead .sorting_desc:after,
table.dataTable thead .sorting_asc_disabled:after,
table.dataTable thead .sorting_desc_disabled:after {
right: 0.5em;
content: "\2193";
}
table.dataTable thead .sorting_asc:before,
table.dataTable thead .sorting_desc:after {
opacity: 1;
}
table.dataTable thead .sorting_asc_disabled:before,
table.dataTable thead .sorting_desc_disabled:after {
opacity: 0;
}
div.dataTables_scrollHead table.dataTable {
margin-bottom: 0 !important;
}
div.dataTables_scrollBody table {
border-top: none;
margin-top: 0 !important;
margin-bottom: 0 !important;
}
div.dataTables_scrollBody table thead .sorting:before,
div.dataTables_scrollBody table thead .sorting_asc:before,
div.dataTables_scrollBody table thead .sorting_desc:before,
div.dataTables_scrollBody table thead .sorting:after,
div.dataTables_scrollBody table thead .sorting_asc:after,
div.dataTables_scrollBody table thead .sorting_desc:after {
display: none;
}
div.dataTables_scrollBody table tbody tr:first-child th,
div.dataTables_scrollBody table tbody tr:first-child td {
border-top: none;
}
div.dataTables_scrollFoot > .dataTables_scrollFootInner {
box-sizing: content-box;
}
div.dataTables_scrollFoot > .dataTables_scrollFootInner > table {
margin-top: 0 !important;
border-top: none;
}
@media screen and (max-width: 767px) {
div.dataTables_wrapper div.dataTables_length,
div.dataTables_wrapper div.dataTables_filter,
div.dataTables_wrapper div.dataTables_info,
div.dataTables_wrapper div.dataTables_paginate {
text-align: center;
}
}
table.dataTable.table-sm > thead > tr > th {
padding-right: 20px;
}
table.dataTable.table-sm .sorting:before,
table.dataTable.table-sm .sorting_asc:before,
table.dataTable.table-sm .sorting_desc:before {
top: 5px;
right: 0.85em;
}
table.dataTable.table-sm .sorting:after,
table.dataTable.table-sm .sorting_asc:after,
table.dataTable.table-sm .sorting_desc:after {
top: 5px;
}
table.table-bordered.dataTable th,
table.table-bordered.dataTable td {
border-left-width: 0;
}
table.table-bordered.dataTable th:last-child, table.table-bordered.dataTable th:last-child,
table.table-bordered.dataTable td:last-child,
table.table-bordered.dataTable td:last-child {
border-right-width: 0;
}
table.table-bordered.dataTable tbody th,
table.table-bordered.dataTable tbody td {
border-bottom-width: 0;
}
div.dataTables_scrollHead table.table-bordered {
border-bottom-width: 0;
}
div.table-responsive > div.dataTables_wrapper > div.row {
margin: 0;
}
div.table-responsive > div.dataTables_wrapper > div.row > div[class^="col-"]:first-child {
padding-left: 0;
}
div.table-responsive > div.dataTables_wrapper > div.row > div[class^="col-"]:last-child {
padding-right: 0;
}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,36 @@
.jvectormap-label {
position: absolute;
display: none;
border: solid 1px #CDCDCD;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
background: #292929;
color: white;
font-family: sans-serif, Verdana;
font-size: smaller;
padding: 3px;
}
.jvectormap-zoomin, .jvectormap-zoomout {
position: absolute;
left: 10px;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
background: #424242;
padding: 2px;
color: white;
width: 15px;
height: 15px;
cursor: pointer;
line-height: 10px;
text-align: center;
}
.jvectormap-zoomin {
top: 10px;
}
.jvectormap-zoomout {
top: 30px;
}

View File

@ -0,0 +1,180 @@
table.dataTable.dtr-inline.collapsed > tbody > tr > td.child,
table.dataTable.dtr-inline.collapsed > tbody > tr > th.child,
table.dataTable.dtr-inline.collapsed > tbody > tr > td.dataTables_empty {
cursor: default !important;
}
table.dataTable.dtr-inline.collapsed > tbody > tr > td.child:before,
table.dataTable.dtr-inline.collapsed > tbody > tr > th.child:before,
table.dataTable.dtr-inline.collapsed > tbody > tr > td.dataTables_empty:before {
display: none !important;
}
table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > td:first-child,
table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > th:first-child {
position: relative;
padding-left: 30px;
cursor: pointer;
}
table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > td:first-child:before,
table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > th:first-child:before {
top: 12px;
left: 4px;
height: 14px;
width: 14px;
display: block;
position: absolute;
color: white;
border: 2px solid white;
border-radius: 14px;
box-shadow: 0 0 3px #444;
box-sizing: content-box;
text-align: center;
text-indent: 0 !important;
font-family: 'Courier New', Courier, monospace;
line-height: 14px;
content: '+';
background-color: #0275d8;
}
table.dataTable.dtr-inline.collapsed > tbody > tr.parent > td:first-child:before,
table.dataTable.dtr-inline.collapsed > tbody > tr.parent > th:first-child:before {
content: '-';
background-color: #d33333;
}
table.dataTable.dtr-inline.collapsed.compact > tbody > tr > td:first-child,
table.dataTable.dtr-inline.collapsed.compact > tbody > tr > th:first-child {
padding-left: 27px;
}
table.dataTable.dtr-inline.collapsed.compact > tbody > tr > td:first-child:before,
table.dataTable.dtr-inline.collapsed.compact > tbody > tr > th:first-child:before {
top: 5px;
left: 4px;
height: 14px;
width: 14px;
border-radius: 14px;
line-height: 14px;
text-indent: 3px;
}
table.dataTable.dtr-column > tbody > tr > td.control,
table.dataTable.dtr-column > tbody > tr > th.control {
position: relative;
cursor: pointer;
}
table.dataTable.dtr-column > tbody > tr > td.control:before,
table.dataTable.dtr-column > tbody > tr > th.control:before {
top: 50%;
left: 50%;
height: 16px;
width: 16px;
margin-top: -10px;
margin-left: -10px;
display: block;
position: absolute;
color: white;
border: 2px solid white;
border-radius: 14px;
box-shadow: 0 0 3px #444;
box-sizing: content-box;
text-align: center;
text-indent: 0 !important;
font-family: 'Courier New', Courier, monospace;
line-height: 14px;
content: '+';
background-color: #0275d8;
}
table.dataTable.dtr-column > tbody > tr.parent td.control:before,
table.dataTable.dtr-column > tbody > tr.parent th.control:before {
content: '-';
background-color: #d33333;
}
table.dataTable > tbody > tr.child {
padding: 0.5em 1em;
}
table.dataTable > tbody > tr.child:hover {
background: transparent !important;
}
table.dataTable > tbody > tr.child ul.dtr-details {
display: inline-block;
list-style-type: none;
margin: 0;
padding: 0;
}
table.dataTable > tbody > tr.child ul.dtr-details > li {
border-bottom: 1px solid #efefef;
padding: 0.5em 0;
}
table.dataTable > tbody > tr.child ul.dtr-details > li:first-child {
padding-top: 0;
}
table.dataTable > tbody > tr.child ul.dtr-details > li:last-child {
border-bottom: none;
}
table.dataTable > tbody > tr.child span.dtr-title {
display: inline-block;
min-width: 75px;
font-weight: bold;
}
div.dtr-modal {
position: fixed;
box-sizing: border-box;
top: 0;
left: 0;
height: 100%;
width: 100%;
z-index: 100;
padding: 10em 1em;
}
div.dtr-modal div.dtr-modal-display {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
width: 50%;
height: 50%;
overflow: auto;
margin: auto;
z-index: 102;
overflow: auto;
background-color: #f5f5f7;
border: 1px solid black;
border-radius: 0.5em;
box-shadow: 0 12px 30px rgba(0, 0, 0, 0.6);
}
div.dtr-modal div.dtr-modal-content {
position: relative;
padding: 1em;
}
div.dtr-modal div.dtr-modal-close {
position: absolute;
top: 6px;
right: 6px;
width: 22px;
height: 22px;
border: 1px solid #eaeaea;
background-color: #f9f9f9;
text-align: center;
border-radius: 3px;
cursor: pointer;
z-index: 12;
}
div.dtr-modal div.dtr-modal-close:hover {
background-color: #eaeaea;
}
div.dtr-modal div.dtr-modal-background {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 101;
background: rgba(0, 0, 0, 0.6);
}
@media screen and (max-width: 767px) {
div.dtr-modal div.dtr-modal-display {
width: 95%;
}
}
div.dtr-bs-modal table.table tr:first-child td {
border-top: none;
}

115
assets/css/vendor/select.bootstrap4.css vendored Normal file
View File

@ -0,0 +1,115 @@
table.dataTable tbody > tr.selected,
table.dataTable tbody > tr > .selected {
background-color: #0275d8;
}
table.dataTable.stripe tbody > tr.odd.selected,
table.dataTable.stripe tbody > tr.odd > .selected, table.dataTable.display tbody > tr.odd.selected,
table.dataTable.display tbody > tr.odd > .selected {
background-color: #0172d2;
}
table.dataTable.hover tbody > tr.selected:hover,
table.dataTable.hover tbody > tr > .selected:hover, table.dataTable.display tbody > tr.selected:hover,
table.dataTable.display tbody > tr > .selected:hover {
background-color: #0170d0;
}
table.dataTable.order-column tbody > tr.selected > .sorting_1,
table.dataTable.order-column tbody > tr.selected > .sorting_2,
table.dataTable.order-column tbody > tr.selected > .sorting_3,
table.dataTable.order-column tbody > tr > .selected, table.dataTable.display tbody > tr.selected > .sorting_1,
table.dataTable.display tbody > tr.selected > .sorting_2,
table.dataTable.display tbody > tr.selected > .sorting_3,
table.dataTable.display tbody > tr > .selected {
background-color: #0172d3;
}
table.dataTable.display tbody > tr.odd.selected > .sorting_1, table.dataTable.order-column.stripe tbody > tr.odd.selected > .sorting_1 {
background-color: #016ecc;
}
table.dataTable.display tbody > tr.odd.selected > .sorting_2, table.dataTable.order-column.stripe tbody > tr.odd.selected > .sorting_2 {
background-color: #016fcd;
}
table.dataTable.display tbody > tr.odd.selected > .sorting_3, table.dataTable.order-column.stripe tbody > tr.odd.selected > .sorting_3 {
background-color: #0170cf;
}
table.dataTable.display tbody > tr.even.selected > .sorting_1, table.dataTable.order-column.stripe tbody > tr.even.selected > .sorting_1 {
background-color: #0172d3;
}
table.dataTable.display tbody > tr.even.selected > .sorting_2, table.dataTable.order-column.stripe tbody > tr.even.selected > .sorting_2 {
background-color: #0173d5;
}
table.dataTable.display tbody > tr.even.selected > .sorting_3, table.dataTable.order-column.stripe tbody > tr.even.selected > .sorting_3 {
background-color: #0174d7;
}
table.dataTable.display tbody > tr.odd > .selected, table.dataTable.order-column.stripe tbody > tr.odd > .selected {
background-color: #016ecc;
}
table.dataTable.display tbody > tr.even > .selected, table.dataTable.order-column.stripe tbody > tr.even > .selected {
background-color: #0172d3;
}
table.dataTable.display tbody > tr.selected:hover > .sorting_1, table.dataTable.order-column.hover tbody > tr.selected:hover > .sorting_1 {
background-color: #016bc6;
}
table.dataTable.display tbody > tr.selected:hover > .sorting_2, table.dataTable.order-column.hover tbody > tr.selected:hover > .sorting_2 {
background-color: #016cc7;
}
table.dataTable.display tbody > tr.selected:hover > .sorting_3, table.dataTable.order-column.hover tbody > tr.selected:hover > .sorting_3 {
background-color: #016dca;
}
table.dataTable.display tbody > tr:hover > .selected,
table.dataTable.display tbody > tr > .selected:hover, table.dataTable.order-column.hover tbody > tr:hover > .selected,
table.dataTable.order-column.hover tbody > tr > .selected:hover {
background-color: #016bc6;
}
table.dataTable tbody td.select-checkbox,
table.dataTable tbody th.select-checkbox {
position: relative;
}
table.dataTable tbody td.select-checkbox:before, table.dataTable tbody td.select-checkbox:after,
table.dataTable tbody th.select-checkbox:before,
table.dataTable tbody th.select-checkbox:after {
display: block;
position: absolute;
top: 1.2em;
left: 50%;
width: 12px;
height: 12px;
box-sizing: border-box;
}
table.dataTable tbody td.select-checkbox:before,
table.dataTable tbody th.select-checkbox:before {
content: ' ';
margin-top: -6px;
margin-left: -6px;
border: 1px solid black;
border-radius: 3px;
}
table.dataTable tr.selected td.select-checkbox:after,
table.dataTable tr.selected th.select-checkbox:after {
content: '\2714';
margin-top: -11px;
margin-left: -4px;
text-align: center;
text-shadow: 1px 1px #B0BED9, -1px -1px #B0BED9, 1px -1px #B0BED9, -1px 1px #B0BED9;
}
div.dataTables_wrapper span.select-info,
div.dataTables_wrapper span.select-item {
margin-left: 0.5em;
}
@media screen and (max-width: 640px) {
div.dataTables_wrapper span.select-info,
div.dataTables_wrapper span.select-item {
margin-left: 0;
display: block;
}
}
table.dataTable tbody tr.selected,
table.dataTable tbody th.selected,
table.dataTable tbody td.selected {
color: white;
}
table.dataTable tbody tr.selected a,
table.dataTable tbody th.selected a,
table.dataTable tbody td.selected a {
color: #a2d4ed;
}

1
assets/css/vendor/summernote-bs4.css vendored Normal file

File diff suppressed because one or more lines are too long

185
assets/css/xtiper.css Normal file
View File

@ -0,0 +1,185 @@
@charset "utf-8";
html, body {overflow-x:hidden;}
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,code,pre,form,fieldset,legend,input,button,textarea,area,blockquote,th,td,p {margin:0; padding:0;}
.xtiper {position:relative;}
.xtiper_msg {transition-duration:0.2s; transition-timing-function:ease-out; transition-property:transform,opacity;}
.xtiper_msg {max-width:752px; position:fixed; left:50%; height:50px; line-height:50px; font-size:14px; border-radius:3px; overflow:hidden; z-index:99999; opacity:0; box-shadow:0 0 10px rgba(0,0,0,0.2);}
.xtiper_msg_black {background-color:rgba(0,0,0,0.75); color:#fff;}
.xtiper_msg_white {background-color:rgba(255,255,255,0.95); color:#222;}
.xtiper_msg_middle {top:50%; margin-top:-25px; transform:scale(0,0);}
.xtiper_msg_top {transform:translate(0, -100%) scale(1, 1); top:0;}
.xtiper_msg_bottom {transform:translate(0, 100%) scale(1, 1); bottom:0;}
.xtiper_msg.xon {opacity:1;}
.xtiper_msg_middle.xon {transform:scale(1,1);}
.xtiper_msg_top.xon {transform:translate(0, 0) scale(1, 1);}
.xtiper_msg_bottom.xon {transform:translate(0, 0) scale(1, 1);}
.xtiper_msg p {padding:0 24px; word-spacing:nowrap;}
.xtiper_danmu {border:3px solid transparent; left:0; transition-property:none; opacity:1; background-origin:content-box; font-size:16px; font-weight:bold;}
.xtiper_danmu_animate {animation:danmu_animate 6s 1 linear; -webkit-animation:danmu_animate 6s 1 linear;}
.xtiper_danmu_light {border:3px solid red;}
@keyframes danmu_animate
{
100% {transform:translateX(-102%);}
}
.xtiper_tips {position:absolute; z-index:99999; max-width:200px; opacity:0; transform:scale(0,0); transition-duration:0.1s; transition-timing-function:ease-in; transition-property:opacity,transform; box-shadow:0 0 5px rgba(0,0,0,0.3);}
.xtiper_tips.xon {transition-duration:0.2s; opacity:1; transform:scale(1,1);}
.xtiper_tips p {padding:10px 16px; background-color:#000; border-radius:3px; color:#fff; line-height:18px; font-size:12px; position:relative; z-index:2;}
.xtiper_tips em {display:block; position:absolute; width:10px; height:10px; background-color:#000; transform: rotate(45deg); box-shadow:0 0 5px rgba(0,0,0,0.3); z-index:1;}
.xtiper_tips_left em {top:12px; right:-4px;}
.xtiper_tips_right em {top:12px; left:-4px;}
.xtiper_tips_top em {left:12px; bottom:-4px;}
.xtiper_tips_bottom em {left:12px; top:-4px;}
.xtiper_win {z-index:99999;}
.xtiper_win_fixed {width:100%; height:100%; position:fixed; top:0; left:0; z-index:99999;}
.xtiper_bg {width:100%; height:100%; position:absolute; top:0; left:0; z-index:1; background-color:rgba(0,0,0,0); transition-duration:0.1s; transition-timing-function:ease-in; transition-property:background-color,opacity;}
.xtiper_bg_white {background-color:rgba(255,255,255,0); transition:0.05s ease-in;}
.xtiper_win.xon .xtiper_bg {background-color:rgba(0,0,0,0.5);}
.xtiper_win.xon .xtiper_bg_white {background-color:rgba(255,255,255,0.5); transition:0.05s ease-in;}
.xtiper_main {width:300px; background-color:#fff; position:absolute; box-shadow:0 0 10px rgba(0,0,0,0.2); z-index:2; opacity:0; transition-duration:0.15s; transition-timing-function:ease-in; transition-property:opacity,transform; transform:scale(0,0);}
.xtiper_main.xapp {background-color:transparent;}
.xtiper_main_photo {transition-property:opacity,transform,height,top;}
.xtiper_main_photo.xon {transition-property:opacity,transform,height;}
.xtiper_win.xon .xtiper_main {transform:scale(1,1); opacity:1;}
.xtiper_win.xon .xtiper_main, .xtiper_win.xon .xtiper_bg {transition-duration:0.2s; transition-timing-function:ease-in;}
.xtiper_win.xoff .xtiper_bg {opacity:0;}
.xtiper_win.xoff .xtiper_main {transform:scale(0,0); opacity:0;}
.xtiper_tit {height:40px; line-height:40px; color:#222; font-size:14px; background-color:#f8f8f8; padding:0 18px; position:relative; user-select:none; cursor:move;}
.xtiper_tit:after {content:""; display:block; width:100%; height:1px; background-color:#eee; position:absolute; bottom:0; left:0;}
.xtiper_tit_none {height:8px; background-color:#f0f0f0;}
.xtiper_tit.xminmax {cursor:default;}
.xtiper_tit p {text-overflow:ellipsis; overflow:hidden; white-space:nowrap; margin-right:28px;}
.xtiper_tit.xmcss1 p {margin-right:62px;}
.xtiper_tit.xmcss2 p {margin-right:96px;}
.xtiper_tit.xmin p {margin-right:62px;}
.xtiper_minmax {position:absolute; top:5px; right:6px;}
.xtiper_close {z-index:10;}
.xtiper_close, .xtiper_min, .xtiper_max {width:30px; height:30px; cursor:pointer; box-sizing:border-box; margin-right:4px; float:left; background-size:18px; background-repeat:no-repeat; background-position:center center; position:relative;}
.xtiper_minmax div:last-child {margin-right:0;}
.xtiper_close:before, .xtiper_close:after {content:""; display:block; width:14px; height:2px; background-color:#2d2c3b; position:absolute; top:14px; left:8px;}
.xtiper_close:before {transform:rotate(45deg);}
.xtiper_close:after {transform:rotate(-45deg);}
.xtiper_close:hover, .xtiper_min:hover, .xtiper_max:hover {opacity:0.8;}
.xtiper_close:before, .xtiper_close:after {transition-duration:0.2s; transition-timing-function:ease-in; transition-property:transform;}
.xtiper_close:hover:before {transform:rotate(135deg);}
.xtiper_close:hover:after {transform:rotate(45deg);}
.xtiper_close_notit {margin-right:0; background-color:#333; border:3px solid #fff; position:absolute; top:-10px; right:-10px; border-radius:50%; transition-duration:0.2s; transition-timing-function:ease-in; transition-property:background-color;}
.xtiper_close_notit:before, .xtiper_close_notit:after {background-color:#fff; top:11px; left:5px;}
.xtiper_close_notit:hover {opacity:1; background-color:#2b84d0;}
.xtiper_photo {position:relative; overflow:hidden; transition-property:transform,opacity;}
.xtiper_photo_ul {padding:0 60px; height:100%;}
.xtiper_photo_ul ul {height:calc(100% - 26px); position:relative; overflow:hidden;}
.xtiper_photo_li {width:100%; height:100%; position:absolute; top:0; left:0; text-align:center; opacity:0; transform:scale(0, 0); transition-duration:0.3s; transition-timing-function:ease-out; transition-property:transform,opacity;}
.xtiper_photo_li.xon {opacity:1; transform:scale(1, 1);}
.xtiper_photo_li.xold_prev {transform:scale(1, 1) translate(100%, 0);}
.xtiper_photo_li.xold_next {transform:scale(1, 1) translate(-100%, 0);}
.xtiper_sheet {width:100%; background-color:#fff; bottom:0; left:0; position:absolute; z-index:2; transition:0.1s ease-in; transition-property:transform; transform:translate(0, 100%);}
.xtiper_sheet_ul, .xtiper_sheet_tit {background-color:#efeff4;}
.xtiper_win.xon .xtiper_sheet {transition:0.2s ease-in; transform:translate(0, 0);}
.xtiper_win.xoff .xtiper_sheet {transform:translateY(100%);}
.xtiper_sheet_left {text-align:left;}
.xtiper_sheet_right {text-align:right;}
.xtiper_sheet_center {text-align:center;}
.xtiper_sheet_tit {padding:15px; font-size:15px; color:#222; line-height:20px; font-weight:bold;}
.xtiper_sheet_li {font-size:14px; height:48px; line-height:48px; background-color:#fff; border-top:1px solid #d9d9d9; cursor:pointer; color:#222; user-select:none; -ms-user-select:none;}
.xtiper_sheet_li a {display:block; width:100%; color:#222; text-decoration:none;}
.xtiper_sheet_li a:hover {color:#222; text-decoration:none;}
.xtiper_sheet_li p {padding:0 15px;}
.xtiper_sheet_li.xlast {margin-top:8px; border-top:0;}
.xtiper_min {background-image:url("data:image/svg+xml,%3Csvg width='600' height='600' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M949.2 560.2H74.8c-26.6 0-48.2-21.6-48.2-48.2 0-26.6 21.6-48.2 48.2-48.2H949.2c26.6 0 48.2 21.6 48.2 48.2 0 26.6-21.6 48.2-48.2 48.2z' fill='%232d2c3b'/%3E%3C/svg%3E");}
.xtiper_min.xon {margin-right:0; background-image:url("data:image/svg+xml,%3Csvg width='2000' height='2000' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M879.1 783.6h-60.4a34.3 34.3 0 0 1 0-68.6h60.4c14.3 0 26.6-11.8 26.6-26.6V142.6c0-14.3-11.8-26.6-26.6-26.6H332.8c-14.3 0-26.6 11.8-26.6 26.6v60.4a34.3 34.3 0 0 1-68.6 0V142.6c0-52.2 42.5-94.72 94.72-94.7h546.3c52.2 0 94.72 42.5 94.72 94.7v546.3c0.5 52.2-42.5 94.72-94.2 94.7z' fill='%232c2c2c'/%3E%3Cpath d='M708.1 964.3H162.3c-57.9 0-103.9-47.1-103.9-103.9V312.6c0-57.9 47.1-103.9 103.9-103.9h546.3c57.9 0 103.9 47.1 103.9 103.9v546.8c0.5 58.4-46.08 104.96-104.4 104.96zM162.3 276.72c-19.5 0-35.84 16.4-35.84 35.8v546.8c0 19.5 16.4 35.84 35.84 35.84h546.3c19.5 0 35.84-16.4 35.84-35.84V312.6c0-19.5-16.4-35.84-35.84-35.8H162.3z' fill='%232d2c3b'/%3E%3C/svg%3E");}
.xtiper_max {background-image:url("data:image/svg+xml,%3Csvg width='600' height='600' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M944.0 0.8H79.1C35.8 0.8 0.3 36.2 0.3 79.4v864.5c0 43.2 35.4 78.6 78.7 78.6h865.9c43.3 0 78.7-35.4 78.7-78.6V79.4C1023.7 36.2 988.3 0.8 944.0 0.8z m0 943.1H79.1V79.4h865.9v864.5z m0 0' fill='%23231814'/%3E%3Cpath d='M342.8 735.7l137.8-137.5c15.7-15.7 15.7-39.3 0-55.0-15.7-15.7-39.4-15.7-55.1 0l-137.8 137.5-90.5-90.4V826.0h236.2l-90.5-90.4z m228.3-243.6c11.8 0 19.7-3.9 27.6-11.8l137.8-137.5 90.5 90.4V197.3H590.7l90.5 90.4-137.8 137.5c-15.7 15.7-15.7 39.3 0 55.0 7.9 7.9 19.7 11.8 27.5 11.8z m0 0' fill='%232d2c3b'/%3E%3C/svg%3E");}
.xtiper_max.xon {background-image:url("data:image/svg+xml,%3Csvg width='600' height='600' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M944.0 0.8H79.1C35.8 0.8 0.3 36.2 0.3 79.4v864.5c0 43.2 35.4 78.6 78.7 78.6h865.9c43.3 0 78.7-35.4 78.7-78.6V79.4C1023.7 36.2 988.3 0.8 944.0 0.8z m0 943.1H79.1V79.4h865.9v864.5z m0 0' fill='%23231814'/%3E%3Cpath d='M346.7 621.7l-137.8 137.5c-15.7 15.7-15.7 39.3 0 55.0 15.7 15.7 39.4 15.7 55.1 0l137.8-137.5 90.5 90.4V531.3H256.2l90.5 90.4zM787.5 197.3c-11.8 0-19.7 3.9-27.6 11.8l-137.8 137.5-90.5-90.4v235.8h236.2l-90.5-90.4 137.8-137.5c15.7-15.7 15.7-39.3 0-55.0-7.9-7.9-19.7-11.8-27.5-11.8z' fill='%232d2c3b'/%3E%3C/svg%3E");}
.xtiper_times {color:#e85445;}
.xtiper_pad {padding:15px;}
.xtiper_tip {font-size:14px; line-height:20px; min-height:60px; overflow:hidden;}
.xtiper_btn ul {text-align:center; display:flex; overflow:hidden; border-top:1px solid #eaeaea; background-color:#fff;}
.xtiper_btn ul:after {content:""; display:block; clear:both;}
.xtiper_btn li {float:left; overflow:hidden; position:relative;}
.xtiper_btn li:after {content:""; display:block; width:1px; height:40px; overflow:hidden; position:absolute; top:0; right:0; background-color:#eaeaea;}
.xtiper_btn li.xactive:after {background-color:rgba(255,255,255,0.2);}
.xtiper_btn1 li {width:100%; float:none;}
.xtiper_btn2 li {width:50%;}
.xtiper_btn3 li {width:33.3%; -webkit-box-flex:1; -ms-flex:1; flex:1;}
.xtiper_btn4 li {width:25%; -webkit-box-flex:1; -ms-flex:1; flex:1;}
.xtiper_btn li button {width:100%; height:40px; background-color:#fff; cursor:pointer; color:#222; font-size:14px; border:0;}
.xtiper_btn li.xactive button {color:#fff;}
.xtiper_btn li.xactive button {background-color:#a8a8a8;}
.xtiper_btn_success li.xactive button, .xtiper_btn_hello li.xactive button, .xtiper_btn_success .xtiper_btnbor, .xtiper_btn_hello .xtiper_btnbor {background-color:#37b72c;}
.xtiper_btn_error li.xactive button, .xtiper_btn_error .xtiper_btnbor {background-color:#e75445;}
.xtiper_btn_warning li.xactive button, .xtiper_btn_ask li.xactive button, .xtiper_btn_warning .xtiper_btnbor, .xtiper_btn_ask .xtiper_btnbor {background-color:#f89310;}
.xtiper_btn1 li.xactive button {background-color:#fff; color:#222;}
.xtiper_btn li:last-child:after {display:none;}
.xtiper_btn li button:hover {opacity:0.9;}
.xtiper_btnbor {width:100%; height:4px; overflow:hidden; background-color:#c3c3c3; position:relative;}
.xtiper_btnbor:after {content:""; display:block; width:100%; height:4px; background-color:rgba(0,0,0,0.1); position:absolute; top:0; left:0;}
.xtiper_btn1 .xtiper_btnbor:after {display:none;}
.xtiper_btn3 li:nth-child(1) {opacity:0.84;}
.xtiper_btn3 li:nth-child(2) {opacity:0.92;}
.xtiper_btn4 li:nth-child(1) {opacity:0.76;}
.xtiper_btn4 li:nth-child(2) {opacity:0.84;}
.xtiper_btn4 li:nth-child(3) {opacity:0.92;}
.xtiper_pr {position:relative;}
.xtiper_content {height:100%; overflow:auto; position:relative;}
.xtiper_content.xtit {height:calc(100% - 40px);}
.xtiper_content.xmin {height:calc(100% - 8px);}
.xtiper_over {overflow:hidden;}
.xtiper_content .zw {width:100%; height:100%; overflow:hidden; position:absolute; top:0; left:0; display:none;}
.xtiper_main.xon .xtiper_content .zw {display:block;}
.xtiper_con {padding-top:8px; padding-bottom:12px;}
.xtiper_con_icon {padding-left:42px;}
.xtiper_conin {max-height:400px; overflow-x:hidden; overflow-y:auto;}
.xtiper_conin::-webkit-scrollbar {width:5px;}
.xtiper_conin::-webkit-scrollbar-track {background-color:#f1f1f1; border-radius:3px;}
.xtiper_conin::-webkit-scrollbar-thumb {background-color:#c1c1c1; border-radius:3px;}
.xtiper_loadin {width:34px; height:34px; display:block; position:absolute; top:50%; margin-top:-17px; left:50%; margin-left:-17px; opacity:0; transition:0.1s ease-in; transition-property:opacity; z-index:2;}
.xtiper_loadin span {width:280px; position:absolute; top:36px; left:50%; margin-left:-140px; text-align:center; height:24px; line-height:24px; font-size:14px; color:#222; white-space:nowrap;}
.xtiper_win.xon .xtiper_loadin {opacity:1; transition:0.2s ease-in;}
.xtiper_icon {width:34px; height:34px; display:inline-block; background-size:100% 100%; background-repeat:no-repeat; position:absolute; top:0; left:0; vertical-align:middle;}
.xtiper_icon img {width:34px; height:34px;}
.xtiper_icon_min {width:20px; height:20px; position:static; top:auto; left:auto; transform:translateY(-1px); margin-right:5px;}
.xtiper_icon_min img {width:20px; height:20px;}
.xtiper_icon_success {background-image:url("data:image/svg+xml,%3Csvg width='600' height='600' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M512.7 0.1C230.4 0.1 0.8 229.8 0.8 512.1c0 282.3 229.6 511.9 511.0 511.9 282.3 0 511.9-229.6 511.9-511.9C1024.6 229.8 795.0 0.1 512.7 0.1z m0 950.5c-241.8 0-438.5-196.7-438.5-438.5 0-241.8 196.7-438.5 438.5-438.5 241.7 0 438.5 196.6 438.5 438.5-0.0 241.7-196.8 438.5-438.5 438.5z' fill='%2337b72c'/%3E%3Cpath d='M754.8 337.0L470.1 630.1l-178.5-155.2c-15.8-13.7-39.7-12.0-53.4 3.7-13.7 15.8-12.0 39.7 3.7 53.4l205.2 178.4a37.7 37.7 0 0 0 10.9 6.7 37.8 37.8 0 0 0 15.9 2.7 37.9 37.9 0 0 0 15.2-3.0c0.0-0.0 0.0 0.0 0.0-0.0a37.7 37.7 0 0 0 10.4-7.7l309.4-317.5c14.6-14.0 14.3-38.9-0.7-53.5-14.0-14.6-38.9-14.3-53.5 0.7z' fill='%2337b72c'/%3E%3C/svg%3E");}
.xtiper_icon_error {background-image:url("data:image/svg+xml,%3Csvg width='600' height='600' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M512.7 1023.0C230.4 1023.0 0.7 794.4 0.7 512.1 0.8 229.8 230.4 0.1 512.7 0.1c282.3 0 511.9 229.6 511.9 511.0 0 282.2-229.6 511.9-511.9 511.9z m0-950.4c-241.8 0-438.5 196.6-438.5 438.5 0 241.7 196.7 438.5 438.5 438.5 241.7 0 438.5-196.7 438.5-438.5 0-241.8-196.8-438.5-438.5-438.5z m51.4 439.0l158.1-156.3c14.4-14.2 14.5-37.4 0.3-51.7-14.2-15.4-37.4-14.5-52.6-0.3l-157.4 156.5-155.9-156.4c-15.3-15.2-37.4-14.3-51.7 0-14.3 14.2-14.3 37.4 0 51.7l155.7 156.1-157.0 155.3c-14.4 14.2-14.5 37.3-0.3 51.7 7.2 7.2 16.6 10.9 25.0 10.9 9.3 0 18.6-3.6 25.8-10.6l157.2-155.5 158.4 159.0c7.2 6.2 16.6 10.7 25.0 10.7 9.3 0 18.7-4.5 25.8-10.6 14.3-14.3 14.4-37.4 0.1-51.7l-158.3-158.8z' fill='%23e75445'/%3E%3C/svg%3E");}
.xtiper_icon_warning {background-image:url("data:image/svg+xml,%3Csvg width='600' height='600' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M512.7 0.1C230.4 0.1 0.8 229.8 0.8 512.1c0 282.3 229.6 511.9 511.0 511.9 282.3 0 511.9-229.6 511.9-511.9C1024.6 229.8 795.0 0.1 512.7 0.1z m0 950.5c-241.8 0-438.5-196.7-438.5-438.5 0-241.8 196.7-438.5 438.5-438.5 241.7 0 438.5 196.6 438.5 438.5 0 241.7-196.8 438.5-438.5 438.5z' fill='%23f89310'/%3E%3Cpath d='M511.6 681.4c-15.5 0-28.6 5.4-39.4 16.1s-16.1 23.7-16.1 38.0c0 17.5 5.6 31.1 16.8 40.8 11.2 9.7 24.3 14.6 39.4 14.6 14.8 0 27.7-4.9 38.8-14.8 11.1-9.9 16.6-23.4 16.6-40.6 0-15.3-5.5-28.3-16.4-38.0-10.0-10.7-24.2-16.1-39.7-16.1zM514.5 232.4c-17.5 0-31.6 5.7-42.3 17.2s-16.1 27.4-16.1 47.9c0 15.0 1.1 39.8 3.3 74.3l11.8 177.0c2.2 22.9 5.9 39.0 11.1 51.2 5.2 11.2 14.4 16.8 27.7 16.8 13.1 0 22.4-5.8 28.1-17.4 5.7-11.6 9.4-28.2 11.1-49.9l15.9-182.2c1.7-16.7 2.6-33.3 2.6-49.5 0-27.6-3.6-48.7-10.7-63.4-7.2-14.7-21.3-21.0-42.5-21.0z' fill='%23f89310'/%3E%3C/svg%3E");}
.xtiper_icon_ask {background-image:url("data:image/svg+xml,%3Csvg width='600' height='600' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M512.7 0.1C230.4 0.1 0.8 229.8 0.8 512.1c0 282.3 229.6 511.9 511.0 511.9 282.3 0 511.9-229.6 511.9-511.9C1024.6 229.8 795.0 0.1 512.7 0.1z m0 950.5c-241.8 0-438.5-196.7-438.5-438.5 0-241.8 196.7-438.5 438.5-438.5 241.7 0 438.5 196.6 438.5 438.5 0 241.7-196.8 438.5-438.5 438.5z' fill='%23f89310'/%3E%3Cpath d='M513.9 681.3c-15.8 0-29.1 5.3-39.9 15.9-10.8 10.6-16.3 23.7-16.3 39.2 0 17.5 5.6 31.1 16.8 40.8 11.2 9.7 24.3 14.6 39.4 14.6 14.5 0 27.3-4.9 38.4-14.8 11.1-9.9 16.6-23.4 16.6-40.6 0-15.5-5.3-28.6-15.9-39.2-10.6-10.6-23.7-15.9-39.2-15.9zM617.4 252.0c-27.3-13.2-58.9-19.8-94.6-19.8-38.4 0-72.1 7.9-100.9 23.7-28.8 15.8-50.8 35.7-65.8 59.7-15.0 24.0-22.5 47.7-22.5 71.1 0 11.3 4.7 21.9 14.2 31.6 9.5 9.7 21.1 14.6 34.9 14.6 23.4 0 39.3-13.9 47.7-41.8 8.9-26.6 19.7-46.7 32.5-60.4 12.8-13.7 32.8-20.5 59.9-20.5 23.2 0 42.1 6.8 56.7 20.3 14.7 13.6 21.0 30.2 21.0 49.9 0 10.1-2.4 19.5-7.2 28.1-4.8 8.6-10.7 16.4-17.7 23.5s-18.4 17.4-34.2 31.2c-17.0 15.8-32.3 29.4-42.9 40.8-10.6 11.5-19.1 24.8-25.5 39.9-6.4 15.2-9.6 33.1-9.6 53.8 0 16.5 4.4 28.0 13.1 37.3 8.7 8.4 19.5 12.6 32.3 12.6 24.6 0 39.3-12.8 43.0-38.4 2.7-12.1 4.7-20.5 6.1-25.3 1.4-4.8 3.3-9.6 5.7-14.4 2.5-4.8 6.2-10.1 11.3-15.9 5.0-5.8 11.8-12.5 20.1-20.1 30.3-27.1 51.3-46.4 63.0-57.8 11.7-11.5 21.8-25.1 30.3-40.8 8.5-15.8 12.7-34.1 12.7-55.1 0-26.6-7.5-51.2-22.4-73.9-14.9-22.7-36.0-40.6-63.4-53.8z' fill='%23f89310'/%3E%3C/svg%3E");}
.xtiper_icon_hello {background-image:url("data:image/svg+xml,%3Csvg width='600' height='600' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M512.7 0.1C230.4 0.1 0.8 229.8 0.8 512.1c0 282.3 229.6 511.9 511.0 511.9 282.3 0 511.9-229.6 511.9-511.9C1024.6 229.8 795.0 0.1 512.7 0.1z m0 950.5c-241.8 0-438.5-196.7-438.5-438.5 0-241.8 196.7-438.5 438.5-438.5 241.7 0 438.5 196.6 438.5 438.5-0.0 241.7-196.8 438.5-438.5 438.5z' fill='%2337b72c'/%3E%3Cpath d='M355.5 478.0c9.8-9.7 15.2-22.5 15.2-36.2v-72.1c0-27.0-22.8-50.8-50.7-50.8-28.0 0-50.8 22.8-50.8 50.8v72.1c0 27.0 22.8 50.8 50.8 50.8 13.3 0 25.9-5.1 35.5-14.6zM706.5 615.4c-13.7-11.8-37.6-8.9-49.4 4.9-41.6 46.3-84.9 65.0-145.1 65.0-62.8 0-100.7-17.2-144.8-65.7-12.2-14.2-35.0-17.0-49.7-5.2-15.1 13.1-17.4 35.3-5.0 49.9 59.1 66.8 114.9 92.8 199.5 92.8 82.0 0 145.4-29.5 199.6-92.9 12.1-13.0 9.8-36.7-5.1-49.6zM704.0 319.8c-28.0 0-50.7 22.8-50.7 50.8v72.1c0 28.1 22.8 50.8 50.7 50.8 28.0 0 50.7-22.8 50.7-50.8v-72.1c0-27.0-22.8-50.8-50.7-50.8z' fill='%2337b72c'/%3E%3C/svg%3E");}
.xtiper_icon_load {background-image:url("data:image/svg+xml,%3Csvg width='600' height='600' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M979.73 513.01c-0.96-1.70-2.66-2.65-4.46-2.65h-69.90c0-84.45-26.02-162.63-70.11-227.32-0.53-0.85-0.95-1.91-1.52-2.76-4.57-6.59-9.67-11.69-14.55-19.02-1.81-2.37-3.51-4.78-5.42-7.12-7.22-8.92-14.87-17.20-22.73-25.38-0.74-0.85-1.49-1.59-2.23-2.34-25.50-26.88-56.41-49.50-89.13-67.56-0.83-0.53-1.70 0-2.55-1.49-9.35-5.10-19.02-9.77-28.89-14.13-2.44 0-4.78-2.23-7.22-3.29-8.39-3.51-15.94-6.59-25.6-8.50-4.15-1.38-8.18-2.86-12.32-4.15-7.54-2.23-15.30-4.16-23.05-6.05-5.21-1.17-10.31-2.55-15.62-3.51-2.12-0.42-3.18-1.17-6.37-1.49-7.33-1.28-14.77-2.02-22.10-2.98-2.65-0.30-4.25-0.74-7.91 0-13.28-1.27-26.45-2.23-39.63-2.23-80.51 0-159.12 24.96-226.58 72.76-21.46 15.30-26.77 45.25-11.68 67.02 15.09 21.78 44.72 27.09 66.28 11.79l3.31-0.71c52.37-36.11 112.60-55.77 176.33-54.92a329.67 329.67 0 0 1 24.64 1.24c3.29 0.32 6.59 0.85 9.99 1.27 6.37 0.85 12.75 1.70 18.00 2.97 3.83 0.75 7.65 1.70 11.37 2.66 6.16 1.48 12.20 2.92 18.16 4.68 2.87 0.85 5.64 1.91 8.50 2.86 6.90 2.34 13.70 4.78 20.39 7.54 1.49 0.64 2.98 1.38 4.46 2.02 7.86 3.47 15.51 7.11 22.94 11.15 0.32 0.21 0.64 0.32 0 0.53 25.18 14.02 48.23 31.55 68.52 51.95 0.32 0.32 0.63 0.74 0.96 0 6.27 5.31 12.32 13.06 17.95 19.97 1.17 1.48 2.34 3.08 3.51 4.56 41.22 52.16 66.07 118.12 66.07 189.93h-69.89c-1.81 0-3.51 0.96-4.46 2.65-0.96 1.70-0.74 3.72 0.21 5.21l117.38 178.24c0.96 1.38 2.44 2.33 3.19 2.33 1.70 0 3.29-0.95 3.19-2.33l117.38-178.24c0.96-1.52 1.17-3.51 0.21-5.21zM687.56 761.37l-3.30 0.71c-52.37 36.11-112.60 55.77-176.33 54.92a329.29 329.29 0 0 1-24.64-1.25c-3.29-0.32-6.59-0.85-9.99-1.27-6.37-0.85-12.75-1.70-19.00-2.97-3.83-0.74-7.65-1.70-11.36-2.66-6.17-1.48-12.20-2.92-18.16-4.67-2.87-0.85-5.64-1.91-8.50-2.87-6.90-2.33-13.70-4.78-20.39-7.54-1.49-0.64-2.98-1.38-4.46-2.02-7.86-3.47-15.51-7.11-22.94-11.15-0.32-0.21-0.64-0.32 0-0.53-25.18-14.02-48.22-31.55-68.52-51.95-0.32-0.32-0.63-0.74-0.95 0-6.27-5.31-12.32-13.06-17.95-19.97-1.17-1.49-2.35-3.08-3.51-4.56-41.21-52.16-66.07-118.12-66.07-189.93h69.89c1.81 0 3.51-0.96 4.46-2.65 0.96-1.70 0.74-3.72-0.21-5.21L168.24 327.54c-0.96-1.38-2.45-2.34-3.19-2.34-1.70 0-3.29 0.95-3.19 2.34L44.48 505.79c-0.95 1.52-1.17 3.50-0.22 5.21 0.96 1.70 2.66 2.65 4.46 2.65h69.90c0 84.45 26.02 162.63 70.11 227.32 0.53 0.85 0.95 1.91 1.52 2.76 4.57 6.59 9.67 11.69 14.55 19.02 1.81 2.37 3.51 4.78 5.42 7.12 7.22 8.92 14.87 17.20 22.73 25.38 0.74 0.85 1.49 1.59 2.23 2.34 25.50 26.87 56.41 49.50 89.13 67.55 0.83 0.53 1.70 0 2.55 1.49 9.35 5.10 19.02 9.77 28.90 14.13 2.44 0 4.78 2.23 7.22 3.29 8.39 3.51 15.94 6.59 25.60 8.50 4.14 1.38 8.18 2.87 12.32 4.15 7.54 2.23 15.30 4.16 23.05 6.05 5.21 1.17 10.30 2.55 15.62 3.50 2.12 0.42 3.19 1.17 6.37 1.49 7.33 1.28 14.77 2.02 22.10 2.97 2.66 0.30 4.25 0.75 7.91 0 13.28 1.28 26.45 2.23 39.63 2.23 80.51 0 159.12-24.96 226.58-72.76 21.45-15.30 26.77-45.26 11.68-67.02-15.08-21.78-44.72-27.09-66.28-11.79z' fill='%23333333'/%3E%3C/svg%3E");}
.xtiper_icon_load {animation:revolve 1.5s infinite linear; -webkit-animation:revolve 1.5s infinite linear;}
@keyframes revolve
{
0% {transform:rotate(0deg);}
100% {transform:rotate(360deg);}
}
@media (max-width: 760px) {
.xtiper_msg {max-width:80%;}
}
@media (max-width: 480px) {
.xtiper_msg {max-width:300px;}
.xtiper_photo_ul {padding:0;}
.xtiper_photo_btn {display:none;}
}
.xtiper_photo_li p {width:100%; max-height:100%; min-height:100px; position:absolute; top:50%; transform:translate(0, -50%); background-position:center center; background-repeat:no-repeat; background-size:contain; background-color:#fff;}
.xtiper_photo_li a {display:block; width:100%; height:100%; position:relative; z-index:2;}
.xtiper_photo_load {position:absolute; top:50%; left:50%; margin-left:-17px; margin-top:-17px; z-index:1;}
.xtiper_photo_li img {max-width:100%; visibility:hidden;}
.xtiper_photo_li.xapp img {width:100%; visibility:visible; position:relative; z-index:2;}
.xtiper_photo_btn {position:absolute; top:50%; transform:translate(0, -50%); width:32px; height:46px; overflow:hidden; cursor:pointer; z-index:2;}
.xtiper_photo_prev {left:16px;}
.xtiper_photo_next {right:16px;}
.xtiper_photo_btn:before, .xtiper_photo_btn:after {content:""; display:block; width:26px; height:4px; background-color:#666; position:absolute; border-radius:4px; z-index:1;}
.xtiper_photo_btn:hover {opacity:0.7;}
.xtiper_photo_prev:before {transform:rotate(-45deg); top:13px; left:3px;}
.xtiper_photo_prev:after {transform:rotate(45deg); top:29px; left:3px;}
.xtiper_photo_next:before {transform:rotate(45deg); top:13px; right:3px;}
.xtiper_photo_next:after {transform:rotate(-45deg); top:29px; right:3px;}
.xtiper_words {padding-right:8px;}
.xtiper_photo_num {display:inline-block; position:absolute; bottom:0; text-align:center; left:50%; transform:translate(-50%, 0); font-size:13px; z-index:10; height:26px; line-height:26px; overflow:hidden; user-select:none; -ms-user-select:none;}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
assets/images/Folder.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

BIN
assets/images/bg-auth.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 800"><g fill-opacity=".22"><circle fill="#fff" cx="400" cy="400" r="600"/><circle fill="#eff3ff" cx="400" cy="400" r="500"/><circle fill="#cddbff" cx="400" cy="400" r="300"/><circle fill="#bbcfff" cx="400" cy="400" r="200"/><circle fill="#a8c4ff" cx="400" cy="400" r="100"/></g></svg>

After

Width:  |  Height:  |  Size: 341 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
assets/images/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

View File

BIN
assets/images/header.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

BIN
assets/images/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

BIN
assets/images/logo_sm.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 391 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 382 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 713 B

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 12 KiB

1
assets/images/no-app.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 17 KiB

1
assets/images/normal.svg Normal file
View File

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1584386117288" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="176658" xmlns:xlink="http://www.w3.org/1999/xlink" width="128" height="128"><defs><style type="text/css"></style></defs><path d="M512 0C228.864 0 0 228.864 0 512s228.864 512 512 512 512-228.864 512-512S795.136 0 512 0z m252.928 355.328L445.44 671.744c-6.144 6.144-14.848 9.216-20.992 9.216-6.144 0-14.848-3.072-20.992-9.216L259.072 527.36c-12.288-12.288-12.288-30.208 0-41.984s30.208-12.288 41.984 0l123.392 123.392 297.984-297.984c12.288-12.288 30.208-12.288 41.984 0 12.8 11.264 12.8 32.768 0.512 44.544z" fill="#11D35F" p-id="176659"></path></svg>

After

Width:  |  Height:  |  Size: 800 B

BIN
assets/images/phpfile.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

1
assets/images/report.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 21 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 9.2 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.1 KiB

View File

@ -0,0 +1,19 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg t="1584384722535" class="icon" viewBox="0 0 2560 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="56894" xmlns:xlink="http://www.w3.org/1999/xlink" width="320" height="128">
<defs><style type="text/css"></style></defs><path d="M0 0h2560v1024H0z" fill="#0289FF" p-id="56895"></path>
<path d="m0,0l2560,0l0,1024l-2560,0l0,-1024z" stroke-dasharray="null" fill="#0289ff" id="svg_1"/>
<path d="m0,1024l0.21943,-172.77808c106.93486,-33.84686 341.79656,-79.31244 481.45919,111.55383c1.0423,-1.0752 154.56912,-181.4967 258.28207,-167.53369c103.70923,13.95929 114.2674,66.55267 167.56293,83.76685c53.29919,17.21051 226.8526,54.74011 314.12665,-202.4375c2.11743,0.78998 118.69983,0 118.69983,0s36.35938,212.95544 293.18591,209.41901c30.57361,-1.86517 97.55786,-28.26971 146.5929,-76.78906c49.03491,-48.51563 123.69189,-60.42328 223.40747,20.94446c25.39893,13.16937 107.96265,63.55017 237.34131,-20.94446c28.93896,-20.96271 199.68359,-91.17621 319.22827,92.13074l-0.10596,122.66791l-2559.99999,0l-0.00001,0z" fill="#ffffff" id="svg_2"/>
<path d="m1072.53027,508.99017s51.84363,-39.71658 70.92297,-46.70538c19.07568,-6.98514 21.50403,10.4631 21.50403,23.35086l0,179.83633c0,12.88782 -21.50403,23.35089 -21.50403,23.35089s-62.43835,46.67609 -70.92297,46.70538c-8.48462,0.03656 -16.14258,-10.49597 -21.47107,-23.35083c0,0 -19.74854,-62.33966 0,-179.83636a73.77554,73.77554 0 0 1 21.46741,-23.35086l0.00366,-0.00003zm414.80042,0s-51.84363,-39.71658 -70.91931,-46.70538c-19.07935,-6.98514 -21.50403,10.4631 -21.50403,23.35086l0,179.83633c0,12.88782 21.50403,23.35089 21.50403,23.35089s62.43103,46.67609 70.91931,46.70538c8.48462,0.03656 16.14258,-10.49603 21.46741,-23.35089c0,0 19.74854,-62.33966 0,-179.83636a73.77554,73.77554 0 0 0 -21.46741,-23.35083z" stroke-dasharray="null" fill="#87c7ff" id="svg_3"/>
<path d="m1282.06995,135.31429c67.05737,0 170.86902,210.17598 170.86902,383.02354c0,169.53052 -40.16638,242.74652 -40.16638,242.74652l-257.48486,0.12799s-44.0575,-70.02698 -44.0575,-242.87451c0,-172.84756 103.78235,-383.02354 170.83972,-383.02354z" fill="#ffffff" id="svg_4"/>
<path d="m1433.81946,699.44318c-10.35339,42.15222 -21.04688,61.64111 -21.04688,61.64111l-257.48474,0.12805s-11.97717,-19.03912 -23.44238,-61.76917l301.97034,0l0.00366,0zm-148.0741,-563.92407c29.49854,3.24754 65.3678,44.81464 96.30725,104.79909l-199.95435,0c30.93213,-59.98447 66.79773,-101.55154 96.2926,-104.79909l7.35449,0z" fill="#87c7ff" id="svg_5"/>
<path d="m1346.19897,451.0296l-67.89795,67.25177a9.46171,9.37161 0 0 1 -11.55005,1.45557a12.50625,12.38715 0 0 1 -1.88916,-1.45557l-39.06079,-38.68652a9.52734,9.43661 0 0 1 13.43884,-13.38077l32.34399,32.10074l61.17163,-60.58926a9.50391,9.41339 0 0 1 13.43909,13.31107l0.00439,-0.00702zm-60.19897,-77.0296c-57.96106,0 -105,46.59109 -105,104s47.03894,104 105,104s105,-46.59106 105,-104s-47.03894,-104 -105,-104z" stroke-dasharray="null" fill="#0fc27c" id="svg_7"/>
<path d="m599.77142,305.37143c31.30518,0 56.68573,-25.38055 56.68573,-56.68571c0,-31.30515 -25.38055,-56.6857 -56.68573,-56.6857c-31.30511,0 -56.68573,25.38057 -56.68573,56.6857c0,31.30516 25.38062,56.68571 56.68573,56.68571zm0,-10.97144c-25.2489,0 -45.71429,-20.46536 -45.71429,-45.71428s20.46539,-45.71428 45.71429,-45.71428s45.71429,20.46535 45.71429,45.71428s-20.46539,45.71428 -45.71429,45.71428zm1316.57135,199.3143c20.19836,0 36.57153,-16.37305 36.57153,-36.57144s-16.37317,-36.57141 -36.57153,-36.57141s-36.57141,16.37302 -36.57141,36.57141s16.37305,36.57144 36.57141,36.57144zm-1316.57135,-213.94287a21.94286,21.94286 0 1 1 0,-43.88571a21.94286,21.94286 0 0 1 0,43.88571z" fill-opacity="0.2" fill="#87c7ff" id="svg_8"/>
<path d="m422.39999,744.22858m-107.88571,0a107.88571,107.88571 0 1 0 215.77142,0a107.88571,107.88571 0 1 0 -215.77142,0z" fill-opacity="0.2" fill="#87c7ff" id="svg_9"/>
<path d="m199.31429,199.31429m-27.42856,0a27.42857,27.42857 0 1 0 54.85715,0a27.42857,27.42857 0 1 0 -54.85715,0z" fill-opacity="0.2" fill="#87c7ff" id="svg_10"/>
<path d="m2302.17139,378.51428m-78.62866,0a78.62857,78.62857 0 1 0 157.25732,0a78.62857,78.62857 0 1 0 -157.25732,0z" fill-opacity="0.204" fill="#87c7ff" id="svg_11"/>
<path d="m212.11429,544.91431m-14.62857,0a14.62857,14.62857 0 1 0 29.25714,0a14.62857,14.62857 0 1 0 -29.25714,0z" fill-opacity="0.2" fill="#87c7ff" id="svg_12"/>
<path d="m1982.17139,746.05713m-14.62854,0a14.62857,14.62857 0 1 0 29.25708,0a14.62857,14.62857 0 1 0 -29.25708,0z" fill-opacity="0.2" fill="#87c7ff" id="svg_13"/>
<path d="m2172.34277,135.31429m-18.28564,0a18.28571,18.28571 0 1 0 36.57129,0a18.28571,18.28571 0 1 0 -36.57129,0z" fill-opacity="0.2" fill="#87c7ff" id="svg_14"/>
<path d="m1649.37146,618.05713m-18.28577,0a18.28571,18.28571 0 1 0 36.57153,0a18.28571,18.28571 0 1 0 -36.57153,0z" fill-opacity="0.2" fill="#87c7ff" id="svg_15"/>
<path d="m849.1593,452.19839l11.00067,0l0,23.99084l23.99084,0l0,11.0007l-23.99084,0l0,24.10788l-11.00067,0l0,-24.10788l-24.10785,0l0,-11.0007l24.10791,0l-0.00006,-23.99084zm796.90613,-160.27063l5.50037,0l0,11.99542l11.99536,0l0,5.50037l-11.99536,0l0,12.05392l-5.50037,0l0,-12.05392l-12.05396,0l0,-5.50037l12.05396,0l0,-11.99542z" fill="#289bff" id="svg_16"/>
</svg>

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

BIN
assets/images/waves.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

BIN
assets/images/wxgzh.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

3
assets/js/app.min.js vendored Normal file

File diff suppressed because one or more lines are too long

1
assets/js/eruyi.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,253 @@
// * =====================================================================
// * 插件名inpit_assembly
// * 作者cababgelol
// * 技术支持cababgelol.net/inpit-assembly/2.0/
// * =====================================================================
(function(w) {
var inpit_assembly = function(ele, opt) {
this.$ele = ele,
this.defaults = {
selected : "active", // 默认记号
selected_data:[],
ischeck_ : true, // 是否在设置最少值初始最少选择数量
ischeck_class : false, //
max:function(e,max){},
min:function(e,min){}
},
this.options = $.extend({}, this.defaults, opt);
};
inpit_assembly.prototype = {
fun: function() {
var $this = this,
$fun = this.options,
$check_ = this.$ele,
$check_formname= "formname",
$check_class = (function(val){
var val = $fun.selected;
if(val == undefined){
val = "active"
}
return val;
})(),
$check_index = 0;
$fun.selected = this.options.selected;
$fun.selected_data = this.options.selected_data;
$fun.ischeck_ = this.options.ischeck_;
$fun.ischeck_class = this.options.ischeck_class;
//初始
$check_.find("div[radio],div[checkbox]").each(function(){
var this_ = $(this);
this_.attr("index",$check_index);
// * ===============
// * radio - 复选
// * 初始值
// * ================
if(this_.attr("radio") != undefined){
if($fun.ischeck_ && this_.attr("min") != undefined){
//存在min
var obj = $check_.find(" > div[index]").eq($check_index);
if($fun.ischeck_class && $(this).find("div[name]").eq(i).hasClass('ack')){
for(var i = 0 ; i < $(this).find("div[name]").length ; i++){
for(var i = 0 ; i < this_.attr("min") ; i++){
// * ===============
// * ischeck_class
// * ischeck_class的作用是在标签中已经加入二个calss="ack"默认值与min="2"情况下关闭初始值这防止出现默认选项应该是D/F而不是变成A/B/D/F
// * 因此如果ischeck_和ischeck_class同时true将出现多个初始值
// * 1.若已有默认选项在inpit/assembly渲染之前请设置ischeck_= trueischeck_class = false
// * 2.若已没有默认选项设置ischeck_= falseischeck_class = true
// * ================
obj.find("> div").eq(i).addClass($check_class)
}
}
}
else if($fun.ischeck_class == false){
for(var i = 0 ; i < this_.attr("min") ; i++){
obj.find("> div").eq(i).addClass($check_class)
}
}
}
}
// * ===============
// * checkbox - 单选
// * 初始值
// * ================
if(this_.attr("checkbox") != undefined){
obj = $check_.find(" > div[index]").eq($check_index);
obj.find("> div").eq(0).addClass($check_class);
}
// * ===============
// * selected_data的初始值
// * ================
var obj_selected_data = $fun.selected_data[0];
if(obj_selected_data != undefined){
let obj;
for(let i = 0 ; i < $fun.selected_data.length ; i++){
for(let x = 0 ; x < $fun.selected_data[i].data.length ; x++){
if(typeof obj_selected_data.data == "object"){
obj = $("[formname=" + $fun.selected_data[i].name + "] [name][value=" + $fun.selected_data[i].data[x] + "]");
}
if(typeof obj_selected_data.data == "string" && obj_selected_data.data === "all"){
obj = $("[formname=" + $fun.selected_data[i].name + "] [name][value]");
}
obj.addClass($check_class);
}
}
}
++$check_index;
});
//单选
$check_.on("click","[checkbox] *[name][value]",function(event) {
event.stopPropagation();
var this_ = $(this),
// * ===============
// * 我忘记这是干嘛的
// * this_siblings = this_.siblings(),
// * ================
this_obj = this_.attr("name"),
this_ack = $check_.find(" *[name=" + this_obj + "]." + $check_class);
if(this_.attr("disabled") != undefined ){ return }
if( this_ack.length > 0){
this_ack.removeClass($check_class)
}
add_Class(this_,$check_class);
});
//多选
$check_.on("click","[radio] *[name][value]",$fun.ischeck_ = function(event,t,max,min) {
event.stopPropagation();
var this_ = $(this),
this_siblings = this_.siblings(),
this_obj = this_siblings.attr("name"),
this_ack = $check_.find(" *[name=" + this_obj + "]." + $check_class);
this_max = (function(){
var max = this_.parent().attr("max");
if(max == undefined)
max = this_.parents().find("div[name]").length + 1;
return max;
})();
this_min = this_.parent().attr("min");
if( this_.hasClass($check_class) ) {
//至少
removeClass(this_,$check_class);
if( this_ack.length == this_min ){
add_Class(this_,$check_class);
$fun.min($check_,this_min);
}
}else{
//最大
if( this_max != undefined ){
if(this_ack.length <= this_max){
add_Class(this_,$check_class);
if(this_ack.length == this_max){
removeClass(this_,$check_class);
$fun.max($check_,this_max);
}
}
}
}
return [this_,this_max,this_min];
});
// * ================
// * 删除记号
// * ================
function removeClass(e,selected){
if( e.attr("class").length <= selected.length )
e.removeAttr("class")
else
e.removeClass(selected)
}
// * ================
// * 添加记号
// * ================
function add_Class(e,selected){
if(e.attr("disabled") == undefined){
e.addClass(selected);
}
}
// * ===============
// * 取type='inpit/assembly'内选择值
// * val则最后结果
// * ================
+(w.check_result = function (obj){
var val = [];
if(obj != undefined){
$("[" + $check_formname + "=" + (function(){
if(typeof obj == "string"){
return obj;
}
if(typeof obj == "object"){
return obj.parents("[formname]").attr($check_formname);
}
})() + "] [index]").each(function(){
// * ===============
// * checkbox - 单选
// * ================
if( $(this).is("[checkbox]") ){
val.push( $(this).find(" *." + $check_class).attr("value") );
}
// * ===============
// * radio - 复选
// * ================
if( $(this).is("[radio]") ){
$(this).find("*." + $check_class).each(function(){
val.push(
$(this).attr("value") //context.attributes.value.value
);
})
}
});
}else{
console.log("向check_result传入$(this)")
}
// * ===============
// * 筛选重复
// * ===============
Array.prototype.del = function() {
var a = {}, c = [], l = this.length;
for (var i = 0; i < l; i++) {
var b = this[i];
var d = (typeof b) + b;
if (a[d] === undefined) {
c.push(b);
a[d] = 1;
}
}
return c;
}
return [{"data":val.del()},{"parameter":$fun},{"obj":$check_}]
});
}
};
$.fn.inpitassembly = function(options) {
var drag = new inpit_assembly(this,options);
drag.fun();
return this;
};
})(window);

541
assets/js/modal_dialog.js Normal file
View File

@ -0,0 +1,541 @@
// 封装模态框_提示框
// 提示框
// 图标 base64 码 全局变量
// 默认图标
var info_modal = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAADlUlEQVRYR82XS4hbdRjFz7l3ZsARamzryCQ31lft5A64qErFhYKK9bFwxmJRu/CxKbjzAXYmdyS0yYwu1J3oqt2otNQ+wEKxogiC+GgX0t44vlDnTqJW7LRoK53ce+SmTUw6j/wTRmq295zz/e6Xf/75PuIif9hOfTenHvWU76fC2wBeQahfYkjguMCyLH7Wu6L/wOHNnDXNNQJYs+2Xa7pYeV7UJoKXLR6uExDfka3X/JH0d61AFgUYmChfbYXhVgCbSFitwhqfCwghvC1YY0Uv+dNC3gUB3G3BnaTeBZlop/AcrTQjcYM/5nw4X868AO54sBkRXm/3rRcClRDBwtP+qPPmhZo5AG4huAvC+0tVvFYwhpC4vjiW+qARognAfal0FcLwq9YHrbMvRdBJ2PaN/pbkz7WEZoBCsJPARtN4AZ9SuA5En7FH2Ol7ziNzADKF6bUWdNg4CJjws84odsl2v51+mcBzpt6KrFsmveSXsb7eATc/tYfkcCcha/Klm7sYfWHqlbTX99IP1QGcV6cuWXYaMyR7jEOAV/zVqRewkaFbCMYJjJh7dQazTsLP8Wy1A5nx0pClaK9pQMPJ/h3E9wTWte/lkO+l9lcB3HxQIDFqGiLhDVC/1vXCOpL3mvpjnYCCn3W8KsBgPtgB4nGjAGnmmJe+vFHrbi0P0g6PGvnPiwTs8LPOk7UOHCJxt1GAcJrsvvZo9sp6B24YLw10Kyoa+f8FOORnnXvOdaAwdRDgetOA+EL527501Q9blp+MPR0BSAd9L33fuQ4Ugu0EnjAFiHWViAOTY6nJzgGw3fecpzo6hEsC0HgIM/nSsMVoj3EHhPdU6XnUz/X9We1ArrSyqzv8mKBrmhHRGi6OJvdVO5DMlXoTXeEJo4tonl9BtahEtxDEl9myVhCSzp7qRSJ4Nn2m8SreR/LBVmYAfx2bTSWQY6VJu0v24DfTp0D0tsqQtN/30kOxrg7Qzn0uyAdwvKmQsJLkYKvi8fMIvKmYTR1pAjh/Ie0GscEkpFONgN1+1nm45m+aBzL50ioiPEJyeacFFvNJ+kOw1zYOqXNGsky+dDsRffRfjGSAdYfvJT9phPz/DaU1uos6ltcg6osJ8RgBu51zUVtMItt+8euR/h8X8hqtZu7E1PUM+YzJahb/UVF8a0lWswupq8tpV/kBC+GtIvuqyykQUfytupyCn7PSfyAetUy7ZdQB07BOdP8AHHSWMKZhltwAAAAASUVORK5CYII=';
// 成功图标
var success_modal = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAADd0lEQVRYR82X328UVRzFz5ntRgj4K+rOLtEAUV80MUENINhfs/iAxl+J8UFejCaW3emDiS/6D/gs4k4J8cXgiwkmICH60J2xpSj6IjEaY4yx+GumLdCAUdN2d46Zku3+mmV3yxact5m595zPnPu9c+8lbvDFG+yPzgG8l9dltHEQ0JOCtgM0KWwStQRwhtKfAr4SjE9nbl08hUcPL3XycR0BpLz8vkTIAyDu6EQUwO9CuD+wxk62a39VgDsnX8skl5IfgHiinVDce0Ef/ZtU7lL/2Hyr/i0B0m7uKYJHAN6+GvNKH0F+mXhxbtiZitOJBTCL+acN8pNrMa7tKyEMyYFZ673TjZpNAJmivVnUdwQ39gog0pEw87fw4F97ChdqdZsA0q59hsCOXpqvDId0Isg6z7QEWK528cO1MK/WRDgUWGMTlftqAgIzXv4cwHt6ASDhsoA3SLxJ4N6qps76lrOtCSDlju5OQLGV2i1QZF42NDg37JzNePkRiIdqNcoy7pvNHvw5eraSQMa13wbwVrdmje1rzc2J0a1GOZxoTDWkXp8Zdg7UAxTzp0HuuhaAWvO7JkbuT5QSUyRTTZrSMT/rPF8HkC7a0yQ2rx5A8yXCimJPj488QPZNtvp1S/g6yBaWZ9qVIRCY9uxFAn2rA9C8wP7AKnyfGs89lDCMqMpva6kl/eFnnbsbAPILBJNxnSQdFXmK0DsEG/4dVfOMm3tEMlwSt1z1Q5oAAKTd/C8Et8R1LFHbomij/4QhHKlCVM1NL7eToTFOYkO7FKNlO7AKOxuLcBJkf2wCkL+YwI6Lg85vpmu/Quh9AhcEDkWxm66dNYATANa3M78y4vg4sAovdDUNBU2X+kq7zg8c9k0v/2pZmjpvjf2YLub2gjzeavjigGKnYepz+7FEiC/ajN1PSiZ2BwMH56J2pms/S+Bot8UrlrcGw4em6xKIZkLGs38FsFydrS5JP/yzfuHxDQs3bVfIkySMTmJfaSN942edhyv3dRXd6WIk4RyoTd3EXgXAoJ8tTMYCRA/XcjkGdNy3nOdqE2veD3j7t0DGtwRv7iraNo073pBUissAjvUKQEApNDAwO1T4slHzumxKEWJfsMfx4j7o/7str6U13dGXDOnd634wqYuscjRTuFeMNq0xRzPyjMTPen4061Uxdl0Da2lc0f4PeKyXMJXpyrIAAAAASUVORK5CYII=';
// 警告图标
var warning_modal = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAC8ElEQVRYR8WXTUhUURTHf0fToEWQfbmoKKjIRSotCiwoiDCqTWCCRkGl84aEllmLQgqkWpbVvBlxIRUxfay0j00fEGSr1CIi0igMhCRpE0k5J+4bJsdxPu4bhzzb9///z/+de++55wo+Qq+xiGLqUdYDS4DlCDGUb8AYwgcmicpxxm1lJRdQoxTznQaEQ8BOoDgrR/mD8AQlIkHu5tLPaEDbKKKcJoQzwIpcQhm+v0IISoD+TPy0BtRlAcp9hNo8EyfTFDglDpfSac0woFcpZx6PgcoCJJ+SULop46jUM5msO82AupQAfcAmy+RfgBGgxhJ/TxzqshnoAFqsxIRjEqDLYDXEaYR2Kx6cF4ezCey/CqjLXqDHSkQZlyBlCaxeZiHz+WHFNSBhtwS8ZcYz4JVeGUJYaSkyJA5rp+00F7PZ7EIZkCDVyQZOAhft2B5qdgbimRskwO14BUJ8Qlj9Xw0oLyVIjWiECmK885G8MBXAW7Jloi5+y18oA8ZCkzFgjtKROaiASemKhnhojsWcGFB6jIF+hKo5MvDaLMFAHn1/9scw/seDpgK9CHt8VmBEnKmmpVFKGWfCp4bZhI9MBVwg4JtcRJU0M+j1kTD7vevbf3QZA01AxDdX+YrQiVKJePdIqW8NaBXtYDEl3kyXczzLI0F2Sow1iVb8AmGrrwTKBEIUGEZpRFjniw/vxaEibuA6Bynihg+BX8BmcXjj8ePX8UdgqQ+NVjOmJc8DZkNttBS4Iw71yVh1uQk0WvGVYYQN4vB7ykCYWnMsrATguTjsSDHwDNhuyd8nDr0GmzoTngNvDM8diiNBwt4SuDhAKDfJgLkiQU4ksDOnYj+lBDOUmlhlmbyPMrYlT8bpDJjxrBPhsJWoLUh5yyS7pIXRZErml1F8TrhQkP6gPEA4IA4/U/1mbT4aphr11naL7Y+m4D6jtOMQEUk/tFp1Pw1Rh9Bs/TiFp0A3o9ySNmLZzFsZSAikeZ6bJ7qJsXyf538B0n8BZanHYR0AAAAASUVORK5CYII=';
// 错误图标
var error_modal = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAADd0lEQVRYR9WXS4gcVRSG/79qEnGjk3vLhc+4FBVd6CJIpqsmEXyShUpcZCGO+AqIqOALUdSFgqAJGEUxKIgujAoSHyQg0z2jC4UEYkCEREQiI2jd7owmIdpT9Uu16Xl0V1f1tNMEa9X0veec75zz31O3iNP88DTHx/8PoDE+emWS+jeSWivxPJIegF8F/YwEe4Np9+1yqtpXBQR4jSi4W9DjAC8uCiBphuTLBvF2VjFXBlMKkGWcyn8P4GVlzhavSzjkecmdZrLxdZFdIYCLzO2S9zaJM5cTfH6v1CTwoKm513vZ9wSIK/YWevxooMAdRoSeMFX3Yp6vXIA4spdA3D9w5nmRlG62tfquzqVcABcGB0BcsRLZL/iQM6vdWu7F8cV+uwBcxUzA83Z2BRd2kfgyBbYTOCM3SeF3j3pY4L0A1nf7SJ+xtfpzxQA9smeKLWYqfv9oxW5IiC9Arl4SQGqIuCaouh9cGDwL4ulOgOyIBjV3fk+A42PBuSd9zOSWXjriay4cnZr9yUXmeoC7AY609koNKg3NVOOgi8w6iHtAnpXnx0+aV41Oz+5vry1pgYvMXYD3Vq/eS/htlf5ef/bUH4calWBT6uljAMeYpmNZ8Hq4ZiyFv6dIvJKeDGruhR4A9nmATxWLTw6JKna6/r2rmM2+ksNZRvG43Qjxs176WJgNeNPW4kwjrWdpBUK7E+REufp1lEkamunGd9neerjmBsH7BOSqUlvhc1uLb/pPAAKOjSTNsN3LhXbQLwOQtDuouU0Dt0DCCXjaEEy6b9y4uVXgL63fkbkN4gcgS94v6Ru2Wr9vUBGe8JhcZ6qNr9onQeDJdjXqUbBF0rtFECUiNBcA3pHcIQP85SG5dj64mPX81CzQ7PxJKIHwiatHJ+N9uRXI/nSRPQjw8k4ISluzt1o/gygO7Q6SW3MSiW01PqdwEtZDe7/I17qN9SHBbBRvKxrFPvRIQtxBcGN3EnjU1OKXCgEUYaQu+yPIi8oUvZx1AYftn/Gl3IdmIcC/bWiN2k+B8mPVF4TU9NO5dYtHcE8NtBfiyGZlfKevACWbBD0QVN2reduGfiUT8VBQdTt6MQ73UspkIju2RQUqBciMT13L7xH0WJ/X8lcM4m0rci3vpG99mMi/mdCFrQ+TTKjEzFA/TFZCiANrYJjBM999aWCYEP8A7TSkMOyQWnEAAAAASUVORK5CYII=';
// 关闭图标
var close_modal = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAACFElEQVRYR+2WTWsTQRjH/08mLxepKIoHQcRLBRX0IPhCay2ih/opQpYJCeSQjxLIy7Ahn8KTivZVhB4aqEJ70V5FUSwlkmSHRyZYWJZtd3YDWQ/d487M8//Nf5555iGk/FHK+jgD+H8dcF33wWg0+lStVo+myZNms3kun8/fdhznY1icUAeUUs8BvALQ9zxvOSmEEc9ms+8A3AXwUkr5OghxEsB5Zn5PRPcAbA+Hw2e1Wu0wjhONRmOuUCi8BXCfmXeI6KmU8rcVgJmklPJD9LXWy5VK5ZcNRKvVuiCEmOz8NHET69QkNBAANgDcAfBZa70QBaGUugRgFcCtKPFIADOh2+1e1FqbgBMIAEtSyh9hThhxZt4konkAuwAWwmz3r7W6hn4IZt4XQjxxHOebP5Drule01mvH4kKIpVKp9DPqyKwAgk4w8xchxKNjiHa7fZWI1onohtm5rbjVEfh38M+JLQA3DQQzL5rxTCbzAcC1uOKxAcyCXq93eTwerxsIAF8BiKTiiQBCIMyvWLbHTsJgIgVcMMN7uVxusVgsfo9KOutCdFIgvzgzH0xsJLpuIIQQj20yP7EDqSZhoBbM9hqmWohSLcVB8Zk+RgHx2T7HgWd4moZkLaoniGrJtj3Pe5G0JfN1RaYxWSmXy2+sC1Gn03k4GAz69Xr9T9zq5p+fqCmdRjDuWut+IG5g2/lnAKk78Bd192wwo+7w4AAAAABJRU5ErkJggg==';
// 问号按钮
var question_modal = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAADlUlEQVRYR72XXWhUVxDHf7MJpYlCjdWkUloLVWmgvhSCUigUffADioqyIuapJd5NUwQxxra2Nf1AaQWp4EfWbygWTH0RQhUUNWqhhbRNihhEUjWCDZiEpCGka7I75dw9m+xudu+9m9Se1/Of//zPnDlzZoSAS/dTQimrgI3AQoTnUSqABEIf0AvcRjjHP/woW4kFoRY/kJ5kLqPsQdmMUOKHt/vDKN8xxifygSsu78orQBsp5gW2I3wKzAjoOBs2BHzOXxyQRsZyceQUoIcpo4gW4M0pOs40U34lzjqp42E23yQBGuVVlMsIr/wnzidIBhHWyBZa03kzBGiUOSjtCC/6Olc6EAZcnLq5sThAjvRTzGJ5j0cp/nEBbpbP4CbwRl7nygjCV4RokRr+SMdpM88wQDXKfuA5jwP8BiwVh1GDmRAQ5WugwcN5H0UsSzl2k3QelShxhLspQj3OAuL8Asz24PpYIuwdF6BHKCfEA+BZD+XLxOGqG/EjhAkRBWZZ/CBQLw7H3f0mViJc8BDwN8LL4jDoRkCjNAGOh0GbRKiy2NeAW0DRJLyyViKct7iffF7RPnFoEPfu+hnwSaDPxOFLe7ofEDbkEdsqDm9bAd8AOzwi2k8Z5aJHWYFy0SfrT6J8j9AB7lWV5sQrPRJhnhWwG2j05BVWi0Y5CNT5PrsgAOWKRFhuI2UEb/I0U06INnEVSYZtmmuIEEukhk49xEyK6fEt4co1E4FOwCTWdNZjEqyQWn63pz+LEPYlVO4aAaaaeRUOP55uwDzRLut8H0K9n5G7r4yYKxhCmBnIYDKonzhV8j5/2sQzVXBbYC4lZiJwB1gU2CgdmKBaajlT8MknOLqmk4TDlDFbwjzRo7yLcmIKh2g1ETgM1BZsnPnkriO8VTAHnDIR8K7b+ViVMxKh2oa/G+GlggUIG4KW4lzc7ZCs+ygNAXqBbI4nDDMr9RmZn21LwSeYjoHSLBE2JgUco4IE932+42x39wBTA0wEKhHKA+tRYsRZaHrE9IbENAgfBiaBXeKwx+aAf91PJ1a+kAjms0rriIK0ZJnqpiogd0tmK9kcoA2Y7xsJ5QrCDXsF6xFe97WB/E1pytjt6ca49FTa8hDvSI0VbR3+X4PJz8QJBxpMxiOR7Hp3Ah/5/uv5Y58czcr4VsLEc8Ge3nAKpxll95SH02y14+O5aTSURe54DiZpzepF3Sk4OZ7HuBB0PP8X+s83WFbJv84AAAAASUVORK5CYII=';
function $modal(data) { // data 必传 且为对象
// 赋值默认参数
if (data === undefined) {
data = {}
}
// 弹框类型不传默认为 alert
if (data.type === undefined) {
data.type = 'alert'
}
tipIconImg = ''; //提示显示小图标
// 提示类型 默认不传为 info
if (data.icon === 'success') {
tipIconImg = success_modal
} else if (data.icon === 'warning') {
tipIconImg = warning_modal
} else if (data.icon === 'error') {
tipIconImg = error_modal
} else if (data.icon === 'question') {
tipIconImg = question_modal
} else {
tipIconImg = info_modal
}
// 弹框显示时长 confirm 下无效
if (data.timeout === undefined && data.type != 'confirm') {
data.timeout = 2000;
} else {
// 最短显示时间为500
data.timeout < 500 ? data.timeout = 500 : data.timeout = data.timeout;
}
// 过渡动画
if (data.transition === undefined) {
data.transition = 200
}
// 遮罩层参数
if (data.mask === undefined) {
data.mask
}
// 最小宽度
if (data.width === undefined) {
data.width = 300
}
// 禁止页面滚动
if (data.pageScroll === undefined) {
data.pageScroll = true
}
// 提示框标题
if (data.title === undefined) {
data.title = '提示'
}
// 遮罩层关闭
if (data.maskClose === undefined) {
data.maskClose = false
}
// 取消按钮文字
if (data.cancelText === undefined) {
data.cancelText = '取消'
}
// 确认按钮文字
if (data.confirmText === undefined) {
data.confirmText = "确认"
}
// 距离顶部距离
if (data.top === undefined) {
data.top = 100
}
// 是否绝对剧中
if (data.center === undefined) {
data.center = false
}
// 公共计算当前元剧中top 值
function calculate(e, sun) {
if (data.center) {
var tipHeight = e.height() + sun;
console.log(tipHeight)
var windowHeight = $(window).height();
console.log((windowHeight / 2) - (tipHeight / 2))
data.top = (windowHeight / 2) - (tipHeight / 2)
}
}
// 生成相对唯一id 保证弹框绑定id唯一 保证事件绑定不重复 (此处用于保证弹框内层 继续 弹框 不出现事件绑定重复)
var idText = "modailItem";
var date = (new Date().getTime() * Math.random() + '').substr(0, 10)
idText += date;
var titleSize = 16; //标题文字大小
var fontSize = 14; //字体大小
// 创建最外层元素
if ($('#modail-dialog-box').index() < 0) {
var modelBox = '<div id="modail-dialog-box"></div>'
$('body').append(modelBox)
// 设置样式
$('#modail-dialog-box').css({
fontFamily: '微软雅黑',
fontSize: fontSize + 'px',
color: '#666666',
})
}
// 生成 message 提示
if (data.type === 'message') {
$('#modail_message_box').html('');
$('#modail-dialog-box').append('<div id="modail_message_box"></div>')
// 设置message提示框长度
var width_s = 40 + (fontSize * data.content.length) + fontSize + 4;
// 不需要遮罩层
$('#modail_message_box').append('<div id="' + idText + '_box"></div>');
// 添加左侧图标
$('#' + idText + '_box').append('<div class="' + idText + '_item item1"><img src="' + tipIconImg + '" /></div>');
// 提示内容
$('#' + idText + '_box').append('<div class="' + idText + '_item item2">' + data.content + '</div>');
if (data.closable) {
// 右侧关闭图标
width_s += fontSize + 4;
$('#' + idText + '_box').append('<div class="' + idText + '_item item3"><img src="' + close_modal + '" /></div>');
}
// 设置外层框样式
$('#' + idText + '_box').css({
width: width_s + 'px',
padding: '10px 15px',
background: '#fff',
boxShadow: '0 1px 6px rgba(0,0,0,.2)',
borderRadius: '5px',
position: 'fixed',
left: '0',
margin: 'auto',
right: '0',
opacity: '0',
})
// 设置文字内容框样式
$('.' + idText + '_item.item2').css({
margin: '0 8px'
})
// 设置文字关闭按钮靠边样式
$('.' + idText + '_item.item3').css({
position: 'absolute',
right: '15px',
cursor: 'pointer'
})
// 设置内层框公共样式
$('.' + idText + '_item').css({
display: 'inline-block'
})
$('.' + idText + '_item img').css({
width: fontSize + 4 + 'px',
verticalAlign: 'top',
position: 'relative',
top: '1px'
})
// 计算 距离顶部距离
calculate($('#' + idText + '_box'), 20)
$('#' + idText + '_box').css({
top: data.top - 60,
})
// 显示动画
$('#' + idText + '_box').animate({
'top': data.top,
'opacity': '1',
}, data.transition)
// 关闭动画
function close() {
$('#' + idText + '_box').animate({
'top': data.top - 60,
'opacity': '0',
}, data.transition)
// 删除DOM
setTimeout(function () {
$('#' + idText + '_box').remove();
}, data.transition)
}
// 定时关闭
var timers;
if (!data.manual) {
timers = setTimeout(close, data.timeout);
}
// 按钮关闭
$('.' + idText + '_item.item3').click(function () {
// 清除定时器
clearInterval(timers)
close();
})
} else if (data.type === 'alert') {
// 是否禁止页面滚动
if (data.pageScroll) {
$('body').css('overflow', 'hidden')
}
// alert 提示框展示
// 添加 alert 提示框
$('#modail-dialog-box').append('<div id="' + idText + '_box"></div>')
// 是否添加遮罩层
if (data.mask) {
$('#' + idText + '_box').append('<div class="' + idText + '_mask"></div>')
// 设置mask外层弹框样式
$('.' + idText + '_mask').css({
position: 'fixed',
top: 0,
right: 0,
left: 0,
bottom: 0,
background: 'rgba(0,0,0,0.4)',
});
}
// 生成中间层
$('#' + idText + '_box').append('<div class="' + idText + 'centerBox"></div>');
$('.' + idText + 'centerBox').css({
width: data.width + 'px',
padding: '20px',
background: '#ffffff',
position: 'fixed',
right: 0,
left: 0,
margin: 'auto',
borderRadius: '5px',
boxShadow: '0 1px 6px rgba(0,0,0,.2)',
opacity: '0'
})
// 生成头部以及提示内容部分
$('.' + idText + 'centerBox').append('<div class="' + idText + 'title"></div>')
// 添加左侧图标
$('.' + idText + 'title').append('<div class="' + idText + '_item item1"><img src="' + tipIconImg + '" /></div>');
// 提示标题
$('.' + idText + 'title').append('<div class="' + idText + '_item item2">' + data.title + '</div>');
if (data.closable) {
// 右侧关闭图标
$('.' + idText + 'title').append('<div class="' + idText + '_item item3"><img src="' + close_modal + '" /></div>');
}
// 设置标题框文字样式
$('.' + idText + '_item.item2').css({
margin: '0 8px',
fontSize: titleSize + 'px',
color: '#333333'
})
// 设置文字关闭按钮靠边样式
$('.' + idText + '_item.item3').css({
position: 'absolute',
right: '15px',
cursor: 'pointer'
})
// 设置内层框公共样式
$('.' + idText + '_item').css({
display: 'inline-block'
})
$('.' + idText + '_item img').css({
width: titleSize + 4 + 'px',
verticalAlign: 'top',
position: 'relative',
top: '-1px'
})
// 设置提示框 box 样式
$('.' + idText + 'title').css({
marginBottom: '10px'
})
//
$('.' + idText + 'centerBox').append('<div class="' + idText + 'body">' + data.content + '</div>')
// 设置样式
$('.' + idText + 'body').css({
padding: '0 ' + (titleSize + 10) + 'px'
})
// 计算距离顶部距离
calculate($('.' + idText + 'centerBox'), 40);
$('.' + idText + 'centerBox').css({
top: data.top + 40,
})
// 显示动画
$('.' + idText + 'centerBox').animate({
'top': data.top,
'opacity': '1',
}, data.transition);
// 关闭动画
function close() {
$('.' + idText + 'centerBox').animate({
'top': data.top + 40,
'opacity': '0',
}, data.transition)
// 删除DOM
setTimeout(function () {
$('#' + idText + '_box').remove();
if (data.pageScroll) {
$('body').css('overflow', 'auto')
}
}, data.transition)
}
// 定时关闭
var timers;
if (!data.manual) {
timers = setTimeout(close, data.timeout);
}
// 按钮关闭
$('.' + idText + '_item.item3').click(function () {
// 清除定时器
clearInterval(timers)
close();
})
// 遮罩层关闭
if (data.maskClose) {
$('.' + idText + '_mask').click(function () {
// 清除定时器
clearInterval(timers)
close();
})
}
} else if (data.type === 'confirm') {
// 是否禁止页面滚动
if (data.pageScroll) {
$('body').css('overflow', 'hidden')
}
// alert 提示框展示
// 添加 alert 提示框
$('#modail-dialog-box').append('<div id="' + idText + '_box"></div>')
// 是否添加遮罩层
if (data.mask) {
$('#' + idText + '_box').append('<div class="' + idText + '_mask"></div>')
// 设置mask外层弹框样式
$('.' + idText + '_mask').css({
position: 'fixed',
top: 0,
right: 0,
left: 0,
bottom: 0,
background: 'rgba(0,0,0,0.4)',
});
}
// 生成中间层
$('#' + idText + '_box').append('<div class="' + idText + 'centerBox"></div>');
$('.' + idText + 'centerBox').css({
width: data.width + 'px',
padding: '20px',
background: '#ffffff',
position: 'fixed',
right: 0,
left: 0,
margin: 'auto',
borderRadius: '5px',
boxShadow: '0 1px 6px rgba(0,0,0,.2)',
opacity: '0'
})
// 生成头部以及提示内容部分
$('.' + idText + 'centerBox').append('<div class="' + idText + 'title"></div>')
// 添加左侧图标
$('.' + idText + 'title').append('<div class="' + idText + '_item item1"><img src="' + tipIconImg + '" /></div>');
// 提示标题
$('.' + idText + 'title').append('<div class="' + idText + '_item item2">' + data.title + '</div>');
if (data.closable) {
// 右侧关闭图标
$('.' + idText + 'title').append('<div class="' + idText + '_item item3"><img src="' + close_modal + '" /></div>');
}
// 设置标题框文字样式
$('.' + idText + '_item.item2').css({
margin: '0 8px',
fontSize: titleSize + 'px',
color: '#333333'
})
// 设置文字关闭按钮靠边样式
$('.' + idText + '_item.item3').css({
position: 'absolute',
right: '15px',
cursor: 'pointer'
})
// 设置内层框公共样式
$('.' + idText + '_item').css({
display: 'inline-block'
})
$('.' + idText + '_item img').css({
width: titleSize + 4 + 'px',
verticalAlign: 'top',
position: 'relative',
top: '-1px'
})
// 设置提示框 box 样式
$('.' + idText + 'title').css({
marginBottom: '10px'
})
//
$('.' + idText + 'centerBox').append('<div class="' + idText + 'body">' + data.content + '</div>')
// 设置样式
$('.' + idText + 'body').css({
padding: '0 ' + (titleSize + 10) + 'px'
})
// 设置按钮
$('.' + idText + 'centerBox').append('<div class="' + idText + 'footer"><button class="button_s_model ' + idText + '_confirm">' + data.confirmText + '</button><button class="button_s_model ' + idText + '_cancel">' + data.cancelText + '</button><div class="clearBoth"></div></div>')
$('.' + idText + 'footer').css({ paddingTop: '20px' })
// 设置样式
$('.button_s_model').css({
float: 'right',
marginLeft: '20px',
outline: 'none',
border: 'none',
padding: '8px 30px',
cursor: 'pointer',
borderRadius: '5px',
})
// 计算距离顶部距离
calculate($('.' + idText + 'centerBox'), 40)
$('.' + idText + 'centerBox').css({
top: data.top + 40,
})
// 显示动画
$('.' + idText + 'centerBox').animate({
'top': data.top,
'opacity': '1',
}, data.transition);
// 鼠标移入移出
$('.button_s_model').hover(function () {
$(this).css({ 'opacity': '.8' })
}, function () {
$(this).css({ 'opacity': '1' })
})
// 鼠标按下
$('.button_s_model').mousedown(function () {
$(this).css({ 'opacity': '1' })
}).mouseup(function () {
$(this).css({ 'opacity': '.8' })
})
// 取消按钮样式
$('.button_s_model.' + idText + '_cancel').css({
background: '#fff',
borderBox: 'box-sizing',
border: '1px solid #eee',
}).click(function () {
data.cancel(close)
})
// 确认按钮样式
$('.button_s_model.' + idText + '_confirm').css({
background: '#2d8cf0',
color: '#fff',
}).click(function () {
data.confirm(close)
})
// 清除浮动
$('.clearBoth').css({
clear: 'both'
})
// 关闭动画
function close() {
$('.' + idText + 'centerBox').animate({
'top': data.top + 40,
'opacity': '0',
}, data.transition)
// 删除DOM
setTimeout(function () {
$('#' + idText + '_box').remove();
if (data.pageScroll) {
$('body').css('overflow', 'auto')
}
}, data.transition)
}
// 按钮关闭
$('.' + idText + '_item.item3').click(function () {
close();
})
// 遮罩层关闭
if (data.maskClose) {
$('.' + idText + '_mask').click(function () {
close();
})
}
}
}
// 错误提示
function $error(e){
$modal({
type: 'message', //弹框类型 'alert' or 'confirm' or 'message' message提示(开启之前如果之前含有弹框则清除)
icon: 'error', // 提示图标显示 'info' or 'success' or 'warning' or 'error' or 'question'
timeout: 2000, // 单位 ms 显示多少毫秒后关闭弹框 confirm 下无效 | 不传默认为 2000ms | 最短显示时间为500ms
content: e, // 提示文字
center: true,// 是否绝对居中 默认为false 设置true后 top无效
top:100, //距离顶部距离 单位px
transition: 300, //过渡动画 默认 200 单位ms
closable: true, // 是否显示可关闭按钮 默认为 false
})
}
// 成功提示
function $success(e){
$modal({
type: 'message', //弹框类型 'alert' or 'confirm' or 'message' message提示(开启之前如果之前含有弹框则清除)
icon: 'success', // 提示图标显示 'info' or 'success' or 'warning' or 'error' or 'question'
timeout: 2000, // 单位 ms 显示多少毫秒后关闭弹框 confirm 下无效 | 不传默认为 2000ms | 最短显示时间为500ms
content: e, // 提示文字
center: true,// 是否绝对居中 默认为false 设置true后 top无效
top:100, //距离顶部距离 单位px
transition: 300, //过渡动画 默认 200 单位ms
closable: true, // 是否显示可关闭按钮 默认为 false
})
}
function message(e,data) {
$modal({
type: 'message', //弹框类型 'alert' or 'confirm' or 'message' message提示(开启之前如果之前含有弹框则清除)
icon: e, // 提示图标显示 'info' or 'success' or 'warning' or 'error' or 'question'
timeout: 2000, // 单位 ms 显示多少毫秒后关闭弹框 confirm 下无效 | 不传默认为 2000ms | 最短显示时间为500ms
content: data, // 提示文字
center: false,// 是否绝对居中 默认为false 设置true后 top无效
top:100, //距离顶部距离 单位px
transition: 300, //过渡动画 默认 200 单位ms
closable: true, // 是否显示可关闭按钮 默认为 false
})
}
$('.message').click(function () {
message($(this).attr('data-icon'))
})

7
assets/js/vendor/Chart.bundle.min.js vendored Normal file

File diff suppressed because one or more lines are too long

1
assets/js/vendor/dataList.industry.news.js generated vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,184 @@
/*! DataTables Bootstrap 4 integration
* ©2011-2017 SpryMedia Ltd - datatables.net/license
*/
/**
* DataTables integration for Bootstrap 4. This requires Bootstrap 4 and
* DataTables 1.10 or newer.
*
* This file sets the defaults and adds options to DataTables to style its
* controls using Bootstrap. See http://datatables.net/manual/styling/bootstrap
* for further information.
*/
(function( factory ){
if ( typeof define === 'function' && define.amd ) {
// AMD
define( ['jquery', 'datatables.net'], function ( $ ) {
return factory( $, window, document );
} );
}
else if ( typeof exports === 'object' ) {
// CommonJS
module.exports = function (root, $) {
if ( ! root ) {
root = window;
}
if ( ! $ || ! $.fn.dataTable ) {
// Require DataTables, which attaches to jQuery, including
// jQuery if needed and have a $ property so we can access the
// jQuery object that is used
$ = require('datatables.net')(root, $).$;
}
return factory( $, root, root.document );
};
}
else {
// Browser
factory( jQuery, window, document );
}
}(function( $, window, document, undefined ) {
'use strict';
var DataTable = $.fn.dataTable;
/* Set the defaults for DataTables initialisation */
$.extend( true, DataTable.defaults, {
dom:
"<'row'<'col-sm-12 col-md-6'l><'col-sm-12 col-md-6'f>>" +
"<'row'<'col-sm-12'tr>>" +
"<'row'<'col-sm-12 col-md-5'i><'col-sm-12 col-md-7'p>>",
renderer: 'bootstrap'
} );
/* Default class modification */
$.extend( DataTable.ext.classes, {
sWrapper: "dataTables_wrapper dt-bootstrap4",
sFilterInput: "form-control form-control-sm",
sLengthSelect: "custom-select custom-select-sm form-control form-control-sm",
sProcessing: "dataTables_processing card",
sPageButton: "paginate_button page-item"
} );
/* Bootstrap paging button renderer */
DataTable.ext.renderer.pageButton.bootstrap = function ( settings, host, idx, buttons, page, pages ) {
var api = new DataTable.Api( settings );
var classes = settings.oClasses;
var lang = settings.oLanguage.oPaginate;
var aria = settings.oLanguage.oAria.paginate || {};
var btnDisplay, btnClass, counter=0;
var attach = function( container, buttons ) {
var i, ien, node, button;
var clickHandler = function ( e ) {
e.preventDefault();
if ( !$(e.currentTarget).hasClass('disabled') && api.page() != e.data.action ) {
api.page( e.data.action ).draw( 'page' );
}
};
for ( i=0, ien=buttons.length ; i<ien ; i++ ) {
button = buttons[i];
if ( $.isArray( button ) ) {
attach( container, button );
}
else {
btnDisplay = '';
btnClass = '';
switch ( button ) {
case 'ellipsis':
btnDisplay = '&#x2026;';
btnClass = 'disabled';
break;
case 'first':
btnDisplay = lang.sFirst;
btnClass = button + (page > 0 ?
'' : ' disabled');
break;
case 'previous':
btnDisplay = lang.sPrevious;
btnClass = button + (page > 0 ?
'' : ' disabled');
break;
case 'next':
btnDisplay = lang.sNext;
btnClass = button + (page < pages-1 ?
'' : ' disabled');
break;
case 'last':
btnDisplay = lang.sLast;
btnClass = button + (page < pages-1 ?
'' : ' disabled');
break;
default:
btnDisplay = button + 1;
btnClass = page === button ?
'active' : '';
break;
}
if ( btnDisplay ) {
node = $('<li>', {
'class': classes.sPageButton+' '+btnClass,
'id': idx === 0 && typeof button === 'string' ?
settings.sTableId +'_'+ button :
null
} )
.append( $('<a>', {
'href': '#',
'aria-controls': settings.sTableId,
'aria-label': aria[ button ],
'data-dt-idx': counter,
'tabindex': settings.iTabIndex,
'class': 'page-link'
} )
.html( btnDisplay )
)
.appendTo( container );
settings.oApi._fnBindAction(
node, {action: button}, clickHandler
);
counter++;
}
}
}
};
// IE9 throws an 'unknown error' if document.activeElement is used
// inside an iframe or frame.
var activeEl;
try {
// Because this approach is destroying and recreating the paging
// elements, focus is lost on the select button which is bad for
// accessibility. So we want to restore focus once the draw has
// completed
activeEl = $(host).find(document.activeElement).data('dt-idx');
}
catch (e) {}
attach(
$(host).empty().html('<ul class="pagination"/>').children('ul'),
buttons
);
if ( activeEl !== undefined ) {
$(host).find( '[data-dt-idx='+activeEl+']' ).focus();
}
};
return DataTable;
}));

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,30 @@
/*!
Responsive 2.2.3
2014-2018 SpryMedia Ltd - datatables.net/license
*/
(function(d){"function"===typeof define&&define.amd?define(["jquery","datatables.net"],function(l){return d(l,window,document)}):"object"===typeof exports?module.exports=function(l,j){l||(l=window);if(!j||!j.fn.dataTable)j=require("datatables.net")(l,j).$;return d(j,l,l.document)}:d(jQuery,window,document)})(function(d,l,j,q){function t(a,b,c){var e=b+"-"+c;if(n[e])return n[e];for(var d=[],a=a.cell(b,c).node().childNodes,b=0,c=a.length;b<c;b++)d.push(a[b]);return n[e]=d}function r(a,b,d){var e=b+
"-"+d;if(n[e]){for(var a=a.cell(b,d).node(),d=n[e][0].parentNode.childNodes,b=[],f=0,g=d.length;f<g;f++)b.push(d[f]);d=0;for(f=b.length;d<f;d++)a.appendChild(b[d]);n[e]=q}}var o=d.fn.dataTable,i=function(a,b){if(!o.versionCheck||!o.versionCheck("1.10.10"))throw"DataTables Responsive requires DataTables 1.10.10 or newer";this.s={dt:new o.Api(a),columns:[],current:[]};this.s.dt.settings()[0].responsive||(b&&"string"===typeof b.details?b.details={type:b.details}:b&&!1===b.details?b.details={type:!1}:
b&&!0===b.details&&(b.details={type:"inline"}),this.c=d.extend(!0,{},i.defaults,o.defaults.responsive,b),a.responsive=this,this._constructor())};d.extend(i.prototype,{_constructor:function(){var a=this,b=this.s.dt,c=b.settings()[0],e=d(l).width();b.settings()[0]._responsive=this;d(l).on("resize.dtr orientationchange.dtr",o.util.throttle(function(){var b=d(l).width();b!==e&&(a._resize(),e=b)}));c.oApi._fnCallbackReg(c,"aoRowCreatedCallback",function(e){-1!==d.inArray(!1,a.s.current)&&d(">td, >th",
e).each(function(e){e=b.column.index("toData",e);!1===a.s.current[e]&&d(this).css("display","none")})});b.on("destroy.dtr",function(){b.off(".dtr");d(b.table().body()).off(".dtr");d(l).off("resize.dtr orientationchange.dtr");d.each(a.s.current,function(b,e){!1===e&&a._setColumnVis(b,!0)})});this.c.breakpoints.sort(function(a,b){return a.width<b.width?1:a.width>b.width?-1:0});this._classLogic();this._resizeAuto();c=this.c.details;!1!==c.type&&(a._detailsInit(),b.on("column-visibility.dtr",function(){a._timer&&
clearTimeout(a._timer);a._timer=setTimeout(function(){a._timer=null;a._classLogic();a._resizeAuto();a._resize();a._redrawChildren()},100)}),b.on("draw.dtr",function(){a._redrawChildren()}),d(b.table().node()).addClass("dtr-"+c.type));b.on("column-reorder.dtr",function(){a._classLogic();a._resizeAuto();a._resize()});b.on("column-sizing.dtr",function(){a._resizeAuto();a._resize()});b.on("preXhr.dtr",function(){var e=[];b.rows().every(function(){this.child.isShown()&&e.push(this.id(true))});b.one("draw.dtr",
function(){a._resizeAuto();a._resize();b.rows(e).every(function(){a._detailsDisplay(this,false)})})});b.on("init.dtr",function(){a._resizeAuto();a._resize();d.inArray(false,a.s.current)&&b.columns.adjust()});this._resize()},_columnsVisiblity:function(a){var b=this.s.dt,c=this.s.columns,e,f,g=c.map(function(a,b){return{columnIdx:b,priority:a.priority}}).sort(function(a,b){return a.priority!==b.priority?a.priority-b.priority:a.columnIdx-b.columnIdx}),h=d.map(c,function(e,c){return!1===b.column(c).visible()?
"not-visible":e.auto&&null===e.minWidth?!1:!0===e.auto?"-":-1!==d.inArray(a,e.includeIn)}),m=0;e=0;for(f=h.length;e<f;e++)!0===h[e]&&(m+=c[e].minWidth);e=b.settings()[0].oScroll;e=e.sY||e.sX?e.iBarWidth:0;m=b.table().container().offsetWidth-e-m;e=0;for(f=h.length;e<f;e++)c[e].control&&(m-=c[e].minWidth);var s=!1;e=0;for(f=g.length;e<f;e++){var k=g[e].columnIdx;"-"===h[k]&&(!c[k].control&&c[k].minWidth)&&(s||0>m-c[k].minWidth?(s=!0,h[k]=!1):h[k]=!0,m-=c[k].minWidth)}g=!1;e=0;for(f=c.length;e<f;e++)if(!c[e].control&&
!c[e].never&&!1===h[e]){g=!0;break}e=0;for(f=c.length;e<f;e++)c[e].control&&(h[e]=g),"not-visible"===h[e]&&(h[e]=!1);-1===d.inArray(!0,h)&&(h[0]=!0);return h},_classLogic:function(){var a=this,b=this.c.breakpoints,c=this.s.dt,e=c.columns().eq(0).map(function(a){var b=this.column(a),e=b.header().className,a=c.settings()[0].aoColumns[a].responsivePriority;a===q&&(b=d(b.header()).data("priority"),a=b!==q?1*b:1E4);return{className:e,includeIn:[],auto:!1,control:!1,never:e.match(/\bnever\b/)?!0:!1,priority:a}}),
f=function(a,b){var c=e[a].includeIn;-1===d.inArray(b,c)&&c.push(b)},g=function(d,c,g,k){if(g)if("max-"===g){k=a._find(c).width;c=0;for(g=b.length;c<g;c++)b[c].width<=k&&f(d,b[c].name)}else if("min-"===g){k=a._find(c).width;c=0;for(g=b.length;c<g;c++)b[c].width>=k&&f(d,b[c].name)}else{if("not-"===g){c=0;for(g=b.length;c<g;c++)-1===b[c].name.indexOf(k)&&f(d,b[c].name)}}else e[d].includeIn.push(c)};e.each(function(a,e){for(var c=a.className.split(" "),f=!1,i=0,l=c.length;i<l;i++){var j=d.trim(c[i]);
if("all"===j){f=!0;a.includeIn=d.map(b,function(a){return a.name});return}if("none"===j||a.never){f=!0;return}if("control"===j){f=!0;a.control=!0;return}d.each(b,function(a,b){var d=b.name.split("-"),c=j.match(RegExp("(min\\-|max\\-|not\\-)?("+d[0]+")(\\-[_a-zA-Z0-9])?"));c&&(f=!0,c[2]===d[0]&&c[3]==="-"+d[1]?g(e,b.name,c[1],c[2]+c[3]):c[2]===d[0]&&!c[3]&&g(e,b.name,c[1],c[2]))})}f||(a.auto=!0)});this.s.columns=e},_detailsDisplay:function(a,b){var c=this,e=this.s.dt,f=this.c.details;if(f&&!1!==f.type){var g=
f.display(a,b,function(){return f.renderer(e,a[0],c._detailsObj(a[0]))});(!0===g||!1===g)&&d(e.table().node()).triggerHandler("responsive-display.dt",[e,a,g,b])}},_detailsInit:function(){var a=this,b=this.s.dt,c=this.c.details;"inline"===c.type&&(c.target="td:first-child, th:first-child");b.on("draw.dtr",function(){a._tabIndexes()});a._tabIndexes();d(b.table().body()).on("keyup.dtr","td, th",function(a){a.keyCode===13&&d(this).data("dtr-keyboard")&&d(this).click()});var e=c.target;d(b.table().body()).on("click.dtr mousedown.dtr mouseup.dtr",
"string"===typeof e?e:"td, th",function(c){if(d(b.table().node()).hasClass("collapsed")&&d.inArray(d(this).closest("tr").get(0),b.rows().nodes().toArray())!==-1){if(typeof e==="number"){var g=e<0?b.columns().eq(0).length+e:e;if(b.cell(this).index().column!==g)return}g=b.row(d(this).closest("tr"));c.type==="click"?a._detailsDisplay(g,false):c.type==="mousedown"?d(this).css("outline","none"):c.type==="mouseup"&&d(this).blur().css("outline","")}})},_detailsObj:function(a){var b=this,c=this.s.dt;return d.map(this.s.columns,
function(e,d){if(!e.never&&!e.control)return{title:c.settings()[0].aoColumns[d].sTitle,data:c.cell(a,d).render(b.c.orthogonal),hidden:c.column(d).visible()&&!b.s.current[d],columnIndex:d,rowIndex:a}})},_find:function(a){for(var b=this.c.breakpoints,c=0,e=b.length;c<e;c++)if(b[c].name===a)return b[c]},_redrawChildren:function(){var a=this,b=this.s.dt;b.rows({page:"current"}).iterator("row",function(c,e){b.row(e);a._detailsDisplay(b.row(e),!0)})},_resize:function(){var a=this,b=this.s.dt,c=d(l).width(),
e=this.c.breakpoints,f=e[0].name,g=this.s.columns,h,m=this.s.current.slice();for(h=e.length-1;0<=h;h--)if(c<=e[h].width){f=e[h].name;break}var i=this._columnsVisiblity(f);this.s.current=i;e=!1;h=0;for(c=g.length;h<c;h++)if(!1===i[h]&&!g[h].never&&!g[h].control&&!1===!b.column(h).visible()){e=!0;break}d(b.table().node()).toggleClass("collapsed",e);var k=!1,j=0;b.columns().eq(0).each(function(b,c){!0===i[c]&&j++;i[c]!==m[c]&&(k=!0,a._setColumnVis(b,i[c]))});k&&(this._redrawChildren(),d(b.table().node()).trigger("responsive-resize.dt",
[b,this.s.current]),0===b.page.info().recordsDisplay&&d("td",b.table().body()).eq(0).attr("colspan",j))},_resizeAuto:function(){var a=this.s.dt,b=this.s.columns;if(this.c.auto&&-1!==d.inArray(!0,d.map(b,function(a){return a.auto}))){d.isEmptyObject(n)||d.each(n,function(b){b=b.split("-");r(a,1*b[0],1*b[1])});a.table().node();var c=a.table().node().cloneNode(!1),e=d(a.table().header().cloneNode(!1)).appendTo(c),f=d(a.table().body()).clone(!1,!1).empty().appendTo(c),g=a.columns().header().filter(function(b){return a.column(b).visible()}).to$().clone(!1).css("display",
"table-cell").css("min-width",0);d(f).append(d(a.rows({page:"current"}).nodes()).clone(!1)).find("th, td").css("display","");if(f=a.table().footer()){var f=d(f.cloneNode(!1)).appendTo(c),h=a.columns().footer().filter(function(b){return a.column(b).visible()}).to$().clone(!1).css("display","table-cell");d("<tr/>").append(h).appendTo(f)}d("<tr/>").append(g).appendTo(e);"inline"===this.c.details.type&&d(c).addClass("dtr-inline collapsed");d(c).find("[name]").removeAttr("name");d(c).css("position","relative");
c=d("<div/>").css({width:1,height:1,overflow:"hidden",clear:"both"}).append(c);c.insertBefore(a.table().node());g.each(function(c){c=a.column.index("fromVisible",c);b[c].minWidth=this.offsetWidth||0});c.remove()}},_setColumnVis:function(a,b){var c=this.s.dt,e=b?"":"none";d(c.column(a).header()).css("display",e);d(c.column(a).footer()).css("display",e);c.column(a).nodes().to$().css("display",e);d.isEmptyObject(n)||c.cells(null,a).indexes().each(function(a){r(c,a.row,a.column)})},_tabIndexes:function(){var a=
this.s.dt,b=a.cells({page:"current"}).nodes().to$(),c=a.settings()[0],e=this.c.details.target;b.filter("[data-dtr-keyboard]").removeData("[data-dtr-keyboard]");"number"===typeof e?a.cells(null,e,{page:"current"}).nodes().to$().attr("tabIndex",c.iTabIndex).data("dtr-keyboard",1):("td:first-child, th:first-child"===e&&(e=">td:first-child, >th:first-child"),d(e,a.rows({page:"current"}).nodes()).attr("tabIndex",c.iTabIndex).data("dtr-keyboard",1))}});i.breakpoints=[{name:"desktop",width:Infinity},{name:"tablet-l",
width:1024},{name:"tablet-p",width:768},{name:"mobile-l",width:480},{name:"mobile-p",width:320}];i.display={childRow:function(a,b,c){if(b){if(d(a.node()).hasClass("parent"))return a.child(c(),"child").show(),!0}else{if(a.child.isShown())return a.child(!1),d(a.node()).removeClass("parent"),!1;a.child(c(),"child").show();d(a.node()).addClass("parent");return!0}},childRowImmediate:function(a,b,c){if(!b&&a.child.isShown()||!a.responsive.hasHidden())return a.child(!1),d(a.node()).removeClass("parent"),
!1;a.child(c(),"child").show();d(a.node()).addClass("parent");return!0},modal:function(a){return function(b,c,e){if(c)d("div.dtr-modal-content").empty().append(e());else{var f=function(){g.remove();d(j).off("keypress.dtr")},g=d('<div class="dtr-modal"/>').append(d('<div class="dtr-modal-display"/>').append(d('<div class="dtr-modal-content"/>').append(e())).append(d('<div class="dtr-modal-close">&times;</div>').click(function(){f()}))).append(d('<div class="dtr-modal-background"/>').click(function(){f()})).appendTo("body");
d(j).on("keyup.dtr",function(a){27===a.keyCode&&(a.stopPropagation(),f())})}a&&a.header&&d("div.dtr-modal-content").prepend("<h2>"+a.header(b)+"</h2>")}}};var n={};i.renderer={listHiddenNodes:function(){return function(a,b,c){var e=d('<ul data-dtr-index="'+b+'" class="dtr-details"/>'),f=!1;d.each(c,function(b,c){c.hidden&&(d('<li data-dtr-index="'+c.columnIndex+'" data-dt-row="'+c.rowIndex+'" data-dt-column="'+c.columnIndex+'"><span class="dtr-title">'+c.title+"</span> </li>").append(d('<span class="dtr-data"/>').append(t(a,
c.rowIndex,c.columnIndex))).appendTo(e),f=!0)});return f?e:!1}},listHidden:function(){return function(a,b,c){return(a=d.map(c,function(a){return a.hidden?'<li data-dtr-index="'+a.columnIndex+'" data-dt-row="'+a.rowIndex+'" data-dt-column="'+a.columnIndex+'"><span class="dtr-title">'+a.title+'</span> <span class="dtr-data">'+a.data+"</span></li>":""}).join(""))?d('<ul data-dtr-index="'+b+'" class="dtr-details"/>').append(a):!1}},tableAll:function(a){a=d.extend({tableClass:""},a);return function(b,
c,e){b=d.map(e,function(a){return'<tr data-dt-row="'+a.rowIndex+'" data-dt-column="'+a.columnIndex+'"><td>'+a.title+":</td> <td>"+a.data+"</td></tr>"}).join("");return d('<table class="'+a.tableClass+' dtr-details" width="100%"/>').append(b)}}};i.defaults={breakpoints:i.breakpoints,auto:!0,details:{display:i.display.childRow,renderer:i.renderer.listHidden(),target:0,type:"inline"},orthogonal:"display"};var p=d.fn.dataTable.Api;p.register("responsive()",function(){return this});p.register("responsive.index()",
function(a){a=d(a);return{column:a.data("dtr-index"),row:a.parent().data("dtr-index")}});p.register("responsive.rebuild()",function(){return this.iterator("table",function(a){a._responsive&&a._responsive._classLogic()})});p.register("responsive.recalc()",function(){return this.iterator("table",function(a){a._responsive&&(a._responsive._resizeAuto(),a._responsive._resize())})});p.register("responsive.hasHidden()",function(){var a=this.context[0];return a._responsive?-1!==d.inArray(!1,a._responsive.s.current):
!1});p.registerPlural("columns().responsiveHidden()","column().responsiveHidden()",function(){return this.iterator("column",function(a,b){return a._responsive?a._responsive.s.current[b]:!1},1)});i.version="2.2.3";d.fn.dataTable.Responsive=i;d.fn.DataTable.Responsive=i;d(j).on("preInit.dt.dtr",function(a,b){if("dt"===a.namespace&&(d(b.nTable).hasClass("responsive")||d(b.nTable).hasClass("dt-responsive")||b.oInit.responsive||o.defaults.responsive)){var c=b.oInit.responsive;!1!==c&&new i(b,d.isPlainObject(c)?
c:{})}});return i});

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,166 @@
/*!
DataTables 1.10.19
©2008-2018 SpryMedia Ltd - datatables.net/license
*/
(function(h){"function"===typeof define&&define.amd?define(["jquery"],function(E){return h(E,window,document)}):"object"===typeof exports?module.exports=function(E,H){E||(E=window);H||(H="undefined"!==typeof window?require("jquery"):require("jquery")(E));return h(H,E,E.document)}:h(jQuery,window,document)})(function(h,E,H,k){function Z(a){var b,c,d={};h.each(a,function(e){if((b=e.match(/^([^A-Z]+?)([A-Z])/))&&-1!=="a aa ai ao as b fn i m o s ".indexOf(b[1]+" "))c=e.replace(b[0],b[2].toLowerCase()),
d[c]=e,"o"===b[1]&&Z(a[e])});a._hungarianMap=d}function J(a,b,c){a._hungarianMap||Z(a);var d;h.each(b,function(e){d=a._hungarianMap[e];if(d!==k&&(c||b[d]===k))"o"===d.charAt(0)?(b[d]||(b[d]={}),h.extend(!0,b[d],b[e]),J(a[d],b[d],c)):b[d]=b[e]})}function Ca(a){var b=n.defaults.oLanguage,c=b.sDecimal;c&&Da(c);if(a){var d=a.sZeroRecords;!a.sEmptyTable&&(d&&"No data available in table"===b.sEmptyTable)&&F(a,a,"sZeroRecords","sEmptyTable");!a.sLoadingRecords&&(d&&"Loading..."===b.sLoadingRecords)&&F(a,
a,"sZeroRecords","sLoadingRecords");a.sInfoThousands&&(a.sThousands=a.sInfoThousands);(a=a.sDecimal)&&c!==a&&Da(a)}}function fb(a){A(a,"ordering","bSort");A(a,"orderMulti","bSortMulti");A(a,"orderClasses","bSortClasses");A(a,"orderCellsTop","bSortCellsTop");A(a,"order","aaSorting");A(a,"orderFixed","aaSortingFixed");A(a,"paging","bPaginate");A(a,"pagingType","sPaginationType");A(a,"pageLength","iDisplayLength");A(a,"searching","bFilter");"boolean"===typeof a.sScrollX&&(a.sScrollX=a.sScrollX?"100%":
"");"boolean"===typeof a.scrollX&&(a.scrollX=a.scrollX?"100%":"");if(a=a.aoSearchCols)for(var b=0,c=a.length;b<c;b++)a[b]&&J(n.models.oSearch,a[b])}function gb(a){A(a,"orderable","bSortable");A(a,"orderData","aDataSort");A(a,"orderSequence","asSorting");A(a,"orderDataType","sortDataType");var b=a.aDataSort;"number"===typeof b&&!h.isArray(b)&&(a.aDataSort=[b])}function hb(a){if(!n.__browser){var b={};n.__browser=b;var c=h("<div/>").css({position:"fixed",top:0,left:-1*h(E).scrollLeft(),height:1,width:1,
overflow:"hidden"}).append(h("<div/>").css({position:"absolute",top:1,left:1,width:100,overflow:"scroll"}).append(h("<div/>").css({width:"100%",height:10}))).appendTo("body"),d=c.children(),e=d.children();b.barWidth=d[0].offsetWidth-d[0].clientWidth;b.bScrollOversize=100===e[0].offsetWidth&&100!==d[0].clientWidth;b.bScrollbarLeft=1!==Math.round(e.offset().left);b.bBounding=c[0].getBoundingClientRect().width?!0:!1;c.remove()}h.extend(a.oBrowser,n.__browser);a.oScroll.iBarWidth=n.__browser.barWidth}
function ib(a,b,c,d,e,f){var g,j=!1;c!==k&&(g=c,j=!0);for(;d!==e;)a.hasOwnProperty(d)&&(g=j?b(g,a[d],d,a):a[d],j=!0,d+=f);return g}function Ea(a,b){var c=n.defaults.column,d=a.aoColumns.length,c=h.extend({},n.models.oColumn,c,{nTh:b?b:H.createElement("th"),sTitle:c.sTitle?c.sTitle:b?b.innerHTML:"",aDataSort:c.aDataSort?c.aDataSort:[d],mData:c.mData?c.mData:d,idx:d});a.aoColumns.push(c);c=a.aoPreSearchCols;c[d]=h.extend({},n.models.oSearch,c[d]);ka(a,d,h(b).data())}function ka(a,b,c){var b=a.aoColumns[b],
d=a.oClasses,e=h(b.nTh);if(!b.sWidthOrig){b.sWidthOrig=e.attr("width")||null;var f=(e.attr("style")||"").match(/width:\s*(\d+[pxem%]+)/);f&&(b.sWidthOrig=f[1])}c!==k&&null!==c&&(gb(c),J(n.defaults.column,c),c.mDataProp!==k&&!c.mData&&(c.mData=c.mDataProp),c.sType&&(b._sManualType=c.sType),c.className&&!c.sClass&&(c.sClass=c.className),c.sClass&&e.addClass(c.sClass),h.extend(b,c),F(b,c,"sWidth","sWidthOrig"),c.iDataSort!==k&&(b.aDataSort=[c.iDataSort]),F(b,c,"aDataSort"));var g=b.mData,j=S(g),i=b.mRender?
S(b.mRender):null,c=function(a){return"string"===typeof a&&-1!==a.indexOf("@")};b._bAttrSrc=h.isPlainObject(g)&&(c(g.sort)||c(g.type)||c(g.filter));b._setter=null;b.fnGetData=function(a,b,c){var d=j(a,b,k,c);return i&&b?i(d,b,a,c):d};b.fnSetData=function(a,b,c){return N(g)(a,b,c)};"number"!==typeof g&&(a._rowReadObject=!0);a.oFeatures.bSort||(b.bSortable=!1,e.addClass(d.sSortableNone));a=-1!==h.inArray("asc",b.asSorting);c=-1!==h.inArray("desc",b.asSorting);!b.bSortable||!a&&!c?(b.sSortingClass=d.sSortableNone,
b.sSortingClassJUI=""):a&&!c?(b.sSortingClass=d.sSortableAsc,b.sSortingClassJUI=d.sSortJUIAscAllowed):!a&&c?(b.sSortingClass=d.sSortableDesc,b.sSortingClassJUI=d.sSortJUIDescAllowed):(b.sSortingClass=d.sSortable,b.sSortingClassJUI=d.sSortJUI)}function $(a){if(!1!==a.oFeatures.bAutoWidth){var b=a.aoColumns;Fa(a);for(var c=0,d=b.length;c<d;c++)b[c].nTh.style.width=b[c].sWidth}b=a.oScroll;(""!==b.sY||""!==b.sX)&&la(a);r(a,null,"column-sizing",[a])}function aa(a,b){var c=ma(a,"bVisible");return"number"===
typeof c[b]?c[b]:null}function ba(a,b){var c=ma(a,"bVisible"),c=h.inArray(b,c);return-1!==c?c:null}function V(a){var b=0;h.each(a.aoColumns,function(a,d){d.bVisible&&"none"!==h(d.nTh).css("display")&&b++});return b}function ma(a,b){var c=[];h.map(a.aoColumns,function(a,e){a[b]&&c.push(e)});return c}function Ga(a){var b=a.aoColumns,c=a.aoData,d=n.ext.type.detect,e,f,g,j,i,h,l,q,t;e=0;for(f=b.length;e<f;e++)if(l=b[e],t=[],!l.sType&&l._sManualType)l.sType=l._sManualType;else if(!l.sType){g=0;for(j=d.length;g<
j;g++){i=0;for(h=c.length;i<h;i++){t[i]===k&&(t[i]=B(a,i,e,"type"));q=d[g](t[i],a);if(!q&&g!==d.length-1)break;if("html"===q)break}if(q){l.sType=q;break}}l.sType||(l.sType="string")}}function jb(a,b,c,d){var e,f,g,j,i,m,l=a.aoColumns;if(b)for(e=b.length-1;0<=e;e--){m=b[e];var q=m.targets!==k?m.targets:m.aTargets;h.isArray(q)||(q=[q]);f=0;for(g=q.length;f<g;f++)if("number"===typeof q[f]&&0<=q[f]){for(;l.length<=q[f];)Ea(a);d(q[f],m)}else if("number"===typeof q[f]&&0>q[f])d(l.length+q[f],m);else if("string"===
typeof q[f]){j=0;for(i=l.length;j<i;j++)("_all"==q[f]||h(l[j].nTh).hasClass(q[f]))&&d(j,m)}}if(c){e=0;for(a=c.length;e<a;e++)d(e,c[e])}}function O(a,b,c,d){var e=a.aoData.length,f=h.extend(!0,{},n.models.oRow,{src:c?"dom":"data",idx:e});f._aData=b;a.aoData.push(f);for(var g=a.aoColumns,j=0,i=g.length;j<i;j++)g[j].sType=null;a.aiDisplayMaster.push(e);b=a.rowIdFn(b);b!==k&&(a.aIds[b]=f);(c||!a.oFeatures.bDeferRender)&&Ha(a,e,c,d);return e}function na(a,b){var c;b instanceof h||(b=h(b));return b.map(function(b,
e){c=Ia(a,e);return O(a,c.data,e,c.cells)})}function B(a,b,c,d){var e=a.iDraw,f=a.aoColumns[c],g=a.aoData[b]._aData,j=f.sDefaultContent,i=f.fnGetData(g,d,{settings:a,row:b,col:c});if(i===k)return a.iDrawError!=e&&null===j&&(K(a,0,"Requested unknown parameter "+("function"==typeof f.mData?"{function}":"'"+f.mData+"'")+" for row "+b+", column "+c,4),a.iDrawError=e),j;if((i===g||null===i)&&null!==j&&d!==k)i=j;else if("function"===typeof i)return i.call(g);return null===i&&"display"==d?"":i}function kb(a,
b,c,d){a.aoColumns[c].fnSetData(a.aoData[b]._aData,d,{settings:a,row:b,col:c})}function Ja(a){return h.map(a.match(/(\\.|[^\.])+/g)||[""],function(a){return a.replace(/\\\./g,".")})}function S(a){if(h.isPlainObject(a)){var b={};h.each(a,function(a,c){c&&(b[a]=S(c))});return function(a,c,f,g){var j=b[c]||b._;return j!==k?j(a,c,f,g):a}}if(null===a)return function(a){return a};if("function"===typeof a)return function(b,c,f,g){return a(b,c,f,g)};if("string"===typeof a&&(-1!==a.indexOf(".")||-1!==a.indexOf("[")||
-1!==a.indexOf("("))){var c=function(a,b,f){var g,j;if(""!==f){j=Ja(f);for(var i=0,m=j.length;i<m;i++){f=j[i].match(ca);g=j[i].match(W);if(f){j[i]=j[i].replace(ca,"");""!==j[i]&&(a=a[j[i]]);g=[];j.splice(0,i+1);j=j.join(".");if(h.isArray(a)){i=0;for(m=a.length;i<m;i++)g.push(c(a[i],b,j))}a=f[0].substring(1,f[0].length-1);a=""===a?g:g.join(a);break}else if(g){j[i]=j[i].replace(W,"");a=a[j[i]]();continue}if(null===a||a[j[i]]===k)return k;a=a[j[i]]}}return a};return function(b,e){return c(b,e,a)}}return function(b){return b[a]}}
function N(a){if(h.isPlainObject(a))return N(a._);if(null===a)return function(){};if("function"===typeof a)return function(b,d,e){a(b,"set",d,e)};if("string"===typeof a&&(-1!==a.indexOf(".")||-1!==a.indexOf("[")||-1!==a.indexOf("("))){var b=function(a,d,e){var e=Ja(e),f;f=e[e.length-1];for(var g,j,i=0,m=e.length-1;i<m;i++){g=e[i].match(ca);j=e[i].match(W);if(g){e[i]=e[i].replace(ca,"");a[e[i]]=[];f=e.slice();f.splice(0,i+1);g=f.join(".");if(h.isArray(d)){j=0;for(m=d.length;j<m;j++)f={},b(f,d[j],g),
a[e[i]].push(f)}else a[e[i]]=d;return}j&&(e[i]=e[i].replace(W,""),a=a[e[i]](d));if(null===a[e[i]]||a[e[i]]===k)a[e[i]]={};a=a[e[i]]}if(f.match(W))a[f.replace(W,"")](d);else a[f.replace(ca,"")]=d};return function(c,d){return b(c,d,a)}}return function(b,d){b[a]=d}}function Ka(a){return D(a.aoData,"_aData")}function oa(a){a.aoData.length=0;a.aiDisplayMaster.length=0;a.aiDisplay.length=0;a.aIds={}}function pa(a,b,c){for(var d=-1,e=0,f=a.length;e<f;e++)a[e]==b?d=e:a[e]>b&&a[e]--; -1!=d&&c===k&&a.splice(d,
1)}function da(a,b,c,d){var e=a.aoData[b],f,g=function(c,d){for(;c.childNodes.length;)c.removeChild(c.firstChild);c.innerHTML=B(a,b,d,"display")};if("dom"===c||(!c||"auto"===c)&&"dom"===e.src)e._aData=Ia(a,e,d,d===k?k:e._aData).data;else{var j=e.anCells;if(j)if(d!==k)g(j[d],d);else{c=0;for(f=j.length;c<f;c++)g(j[c],c)}}e._aSortData=null;e._aFilterData=null;g=a.aoColumns;if(d!==k)g[d].sType=null;else{c=0;for(f=g.length;c<f;c++)g[c].sType=null;La(a,e)}}function Ia(a,b,c,d){var e=[],f=b.firstChild,g,
j,i=0,m,l=a.aoColumns,q=a._rowReadObject,d=d!==k?d:q?{}:[],t=function(a,b){if("string"===typeof a){var c=a.indexOf("@");-1!==c&&(c=a.substring(c+1),N(a)(d,b.getAttribute(c)))}},G=function(a){if(c===k||c===i)j=l[i],m=h.trim(a.innerHTML),j&&j._bAttrSrc?(N(j.mData._)(d,m),t(j.mData.sort,a),t(j.mData.type,a),t(j.mData.filter,a)):q?(j._setter||(j._setter=N(j.mData)),j._setter(d,m)):d[i]=m;i++};if(f)for(;f;){g=f.nodeName.toUpperCase();if("TD"==g||"TH"==g)G(f),e.push(f);f=f.nextSibling}else{e=b.anCells;
f=0;for(g=e.length;f<g;f++)G(e[f])}if(b=b.firstChild?b:b.nTr)(b=b.getAttribute("id"))&&N(a.rowId)(d,b);return{data:d,cells:e}}function Ha(a,b,c,d){var e=a.aoData[b],f=e._aData,g=[],j,i,m,l,q;if(null===e.nTr){j=c||H.createElement("tr");e.nTr=j;e.anCells=g;j._DT_RowIndex=b;La(a,e);l=0;for(q=a.aoColumns.length;l<q;l++){m=a.aoColumns[l];i=c?d[l]:H.createElement(m.sCellType);i._DT_CellIndex={row:b,column:l};g.push(i);if((!c||m.mRender||m.mData!==l)&&(!h.isPlainObject(m.mData)||m.mData._!==l+".display"))i.innerHTML=
B(a,b,l,"display");m.sClass&&(i.className+=" "+m.sClass);m.bVisible&&!c?j.appendChild(i):!m.bVisible&&c&&i.parentNode.removeChild(i);m.fnCreatedCell&&m.fnCreatedCell.call(a.oInstance,i,B(a,b,l),f,b,l)}r(a,"aoRowCreatedCallback",null,[j,f,b,g])}e.nTr.setAttribute("role","row")}function La(a,b){var c=b.nTr,d=b._aData;if(c){var e=a.rowIdFn(d);e&&(c.id=e);d.DT_RowClass&&(e=d.DT_RowClass.split(" "),b.__rowc=b.__rowc?qa(b.__rowc.concat(e)):e,h(c).removeClass(b.__rowc.join(" ")).addClass(d.DT_RowClass));
d.DT_RowAttr&&h(c).attr(d.DT_RowAttr);d.DT_RowData&&h(c).data(d.DT_RowData)}}function lb(a){var b,c,d,e,f,g=a.nTHead,j=a.nTFoot,i=0===h("th, td",g).length,m=a.oClasses,l=a.aoColumns;i&&(e=h("<tr/>").appendTo(g));b=0;for(c=l.length;b<c;b++)f=l[b],d=h(f.nTh).addClass(f.sClass),i&&d.appendTo(e),a.oFeatures.bSort&&(d.addClass(f.sSortingClass),!1!==f.bSortable&&(d.attr("tabindex",a.iTabIndex).attr("aria-controls",a.sTableId),Ma(a,f.nTh,b))),f.sTitle!=d[0].innerHTML&&d.html(f.sTitle),Na(a,"header")(a,d,
f,m);i&&ea(a.aoHeader,g);h(g).find(">tr").attr("role","row");h(g).find(">tr>th, >tr>td").addClass(m.sHeaderTH);h(j).find(">tr>th, >tr>td").addClass(m.sFooterTH);if(null!==j){a=a.aoFooter[0];b=0;for(c=a.length;b<c;b++)f=l[b],f.nTf=a[b].cell,f.sClass&&h(f.nTf).addClass(f.sClass)}}function fa(a,b,c){var d,e,f,g=[],j=[],i=a.aoColumns.length,m;if(b){c===k&&(c=!1);d=0;for(e=b.length;d<e;d++){g[d]=b[d].slice();g[d].nTr=b[d].nTr;for(f=i-1;0<=f;f--)!a.aoColumns[f].bVisible&&!c&&g[d].splice(f,1);j.push([])}d=
0;for(e=g.length;d<e;d++){if(a=g[d].nTr)for(;f=a.firstChild;)a.removeChild(f);f=0;for(b=g[d].length;f<b;f++)if(m=i=1,j[d][f]===k){a.appendChild(g[d][f].cell);for(j[d][f]=1;g[d+i]!==k&&g[d][f].cell==g[d+i][f].cell;)j[d+i][f]=1,i++;for(;g[d][f+m]!==k&&g[d][f].cell==g[d][f+m].cell;){for(c=0;c<i;c++)j[d+c][f+m]=1;m++}h(g[d][f].cell).attr("rowspan",i).attr("colspan",m)}}}}function P(a){var b=r(a,"aoPreDrawCallback","preDraw",[a]);if(-1!==h.inArray(!1,b))C(a,!1);else{var b=[],c=0,d=a.asStripeClasses,e=
d.length,f=a.oLanguage,g=a.iInitDisplayStart,j="ssp"==y(a),i=a.aiDisplay;a.bDrawing=!0;g!==k&&-1!==g&&(a._iDisplayStart=j?g:g>=a.fnRecordsDisplay()?0:g,a.iInitDisplayStart=-1);var g=a._iDisplayStart,m=a.fnDisplayEnd();if(a.bDeferLoading)a.bDeferLoading=!1,a.iDraw++,C(a,!1);else if(j){if(!a.bDestroying&&!mb(a))return}else a.iDraw++;if(0!==i.length){f=j?a.aoData.length:m;for(j=j?0:g;j<f;j++){var l=i[j],q=a.aoData[l];null===q.nTr&&Ha(a,l);var t=q.nTr;if(0!==e){var G=d[c%e];q._sRowStripe!=G&&(h(t).removeClass(q._sRowStripe).addClass(G),
q._sRowStripe=G)}r(a,"aoRowCallback",null,[t,q._aData,c,j,l]);b.push(t);c++}}else c=f.sZeroRecords,1==a.iDraw&&"ajax"==y(a)?c=f.sLoadingRecords:f.sEmptyTable&&0===a.fnRecordsTotal()&&(c=f.sEmptyTable),b[0]=h("<tr/>",{"class":e?d[0]:""}).append(h("<td />",{valign:"top",colSpan:V(a),"class":a.oClasses.sRowEmpty}).html(c))[0];r(a,"aoHeaderCallback","header",[h(a.nTHead).children("tr")[0],Ka(a),g,m,i]);r(a,"aoFooterCallback","footer",[h(a.nTFoot).children("tr")[0],Ka(a),g,m,i]);d=h(a.nTBody);d.children().detach();
d.append(h(b));r(a,"aoDrawCallback","draw",[a]);a.bSorted=!1;a.bFiltered=!1;a.bDrawing=!1}}function T(a,b){var c=a.oFeatures,d=c.bFilter;c.bSort&&nb(a);d?ga(a,a.oPreviousSearch):a.aiDisplay=a.aiDisplayMaster.slice();!0!==b&&(a._iDisplayStart=0);a._drawHold=b;P(a);a._drawHold=!1}function ob(a){var b=a.oClasses,c=h(a.nTable),c=h("<div/>").insertBefore(c),d=a.oFeatures,e=h("<div/>",{id:a.sTableId+"_wrapper","class":b.sWrapper+(a.nTFoot?"":" "+b.sNoFooter)});a.nHolding=c[0];a.nTableWrapper=e[0];a.nTableReinsertBefore=
a.nTable.nextSibling;for(var f=a.sDom.split(""),g,j,i,m,l,q,k=0;k<f.length;k++){g=null;j=f[k];if("<"==j){i=h("<div/>")[0];m=f[k+1];if("'"==m||'"'==m){l="";for(q=2;f[k+q]!=m;)l+=f[k+q],q++;"H"==l?l=b.sJUIHeader:"F"==l&&(l=b.sJUIFooter);-1!=l.indexOf(".")?(m=l.split("."),i.id=m[0].substr(1,m[0].length-1),i.className=m[1]):"#"==l.charAt(0)?i.id=l.substr(1,l.length-1):i.className=l;k+=q}e.append(i);e=h(i)}else if(">"==j)e=e.parent();else if("l"==j&&d.bPaginate&&d.bLengthChange)g=pb(a);else if("f"==j&&
d.bFilter)g=qb(a);else if("r"==j&&d.bProcessing)g=rb(a);else if("t"==j)g=sb(a);else if("i"==j&&d.bInfo)g=tb(a);else if("p"==j&&d.bPaginate)g=ub(a);else if(0!==n.ext.feature.length){i=n.ext.feature;q=0;for(m=i.length;q<m;q++)if(j==i[q].cFeature){g=i[q].fnInit(a);break}}g&&(i=a.aanFeatures,i[j]||(i[j]=[]),i[j].push(g),e.append(g))}c.replaceWith(e);a.nHolding=null}function ea(a,b){var c=h(b).children("tr"),d,e,f,g,j,i,m,l,q,k;a.splice(0,a.length);f=0;for(i=c.length;f<i;f++)a.push([]);f=0;for(i=c.length;f<
i;f++){d=c[f];for(e=d.firstChild;e;){if("TD"==e.nodeName.toUpperCase()||"TH"==e.nodeName.toUpperCase()){l=1*e.getAttribute("colspan");q=1*e.getAttribute("rowspan");l=!l||0===l||1===l?1:l;q=!q||0===q||1===q?1:q;g=0;for(j=a[f];j[g];)g++;m=g;k=1===l?!0:!1;for(j=0;j<l;j++)for(g=0;g<q;g++)a[f+g][m+j]={cell:e,unique:k},a[f+g].nTr=d}e=e.nextSibling}}}function ra(a,b,c){var d=[];c||(c=a.aoHeader,b&&(c=[],ea(c,b)));for(var b=0,e=c.length;b<e;b++)for(var f=0,g=c[b].length;f<g;f++)if(c[b][f].unique&&(!d[f]||
!a.bSortCellsTop))d[f]=c[b][f].cell;return d}function sa(a,b,c){r(a,"aoServerParams","serverParams",[b]);if(b&&h.isArray(b)){var d={},e=/(.*?)\[\]$/;h.each(b,function(a,b){var c=b.name.match(e);c?(c=c[0],d[c]||(d[c]=[]),d[c].push(b.value)):d[b.name]=b.value});b=d}var f,g=a.ajax,j=a.oInstance,i=function(b){r(a,null,"xhr",[a,b,a.jqXHR]);c(b)};if(h.isPlainObject(g)&&g.data){f=g.data;var m="function"===typeof f?f(b,a):f,b="function"===typeof f&&m?m:h.extend(!0,b,m);delete g.data}m={data:b,success:function(b){var c=
b.error||b.sError;c&&K(a,0,c);a.json=b;i(b)},dataType:"json",cache:!1,type:a.sServerMethod,error:function(b,c){var d=r(a,null,"xhr",[a,null,a.jqXHR]);-1===h.inArray(!0,d)&&("parsererror"==c?K(a,0,"Invalid JSON response",1):4===b.readyState&&K(a,0,"Ajax error",7));C(a,!1)}};a.oAjaxData=b;r(a,null,"preXhr",[a,b]);a.fnServerData?a.fnServerData.call(j,a.sAjaxSource,h.map(b,function(a,b){return{name:b,value:a}}),i,a):a.sAjaxSource||"string"===typeof g?a.jqXHR=h.ajax(h.extend(m,{url:g||a.sAjaxSource})):
"function"===typeof g?a.jqXHR=g.call(j,b,i,a):(a.jqXHR=h.ajax(h.extend(m,g)),g.data=f)}function mb(a){return a.bAjaxDataGet?(a.iDraw++,C(a,!0),sa(a,vb(a),function(b){wb(a,b)}),!1):!0}function vb(a){var b=a.aoColumns,c=b.length,d=a.oFeatures,e=a.oPreviousSearch,f=a.aoPreSearchCols,g,j=[],i,m,l,k=X(a);g=a._iDisplayStart;i=!1!==d.bPaginate?a._iDisplayLength:-1;var t=function(a,b){j.push({name:a,value:b})};t("sEcho",a.iDraw);t("iColumns",c);t("sColumns",D(b,"sName").join(","));t("iDisplayStart",g);t("iDisplayLength",
i);var G={draw:a.iDraw,columns:[],order:[],start:g,length:i,search:{value:e.sSearch,regex:e.bRegex}};for(g=0;g<c;g++)m=b[g],l=f[g],i="function"==typeof m.mData?"function":m.mData,G.columns.push({data:i,name:m.sName,searchable:m.bSearchable,orderable:m.bSortable,search:{value:l.sSearch,regex:l.bRegex}}),t("mDataProp_"+g,i),d.bFilter&&(t("sSearch_"+g,l.sSearch),t("bRegex_"+g,l.bRegex),t("bSearchable_"+g,m.bSearchable)),d.bSort&&t("bSortable_"+g,m.bSortable);d.bFilter&&(t("sSearch",e.sSearch),t("bRegex",
e.bRegex));d.bSort&&(h.each(k,function(a,b){G.order.push({column:b.col,dir:b.dir});t("iSortCol_"+a,b.col);t("sSortDir_"+a,b.dir)}),t("iSortingCols",k.length));b=n.ext.legacy.ajax;return null===b?a.sAjaxSource?j:G:b?j:G}function wb(a,b){var c=ta(a,b),d=b.sEcho!==k?b.sEcho:b.draw,e=b.iTotalRecords!==k?b.iTotalRecords:b.recordsTotal,f=b.iTotalDisplayRecords!==k?b.iTotalDisplayRecords:b.recordsFiltered;if(d){if(1*d<a.iDraw)return;a.iDraw=1*d}oa(a);a._iRecordsTotal=parseInt(e,10);a._iRecordsDisplay=parseInt(f,
10);d=0;for(e=c.length;d<e;d++)O(a,c[d]);a.aiDisplay=a.aiDisplayMaster.slice();a.bAjaxDataGet=!1;P(a);a._bInitComplete||ua(a,b);a.bAjaxDataGet=!0;C(a,!1)}function ta(a,b){var c=h.isPlainObject(a.ajax)&&a.ajax.dataSrc!==k?a.ajax.dataSrc:a.sAjaxDataProp;return"data"===c?b.aaData||b[c]:""!==c?S(c)(b):b}function qb(a){var b=a.oClasses,c=a.sTableId,d=a.oLanguage,e=a.oPreviousSearch,f=a.aanFeatures,g='<input type="search" class="'+b.sFilterInput+'"/>',j=d.sSearch,j=j.match(/_INPUT_/)?j.replace("_INPUT_",
g):j+g,b=h("<div/>",{id:!f.f?c+"_filter":null,"class":b.sFilter}).append(h("<label/>").append(j)),f=function(){var b=!this.value?"":this.value;b!=e.sSearch&&(ga(a,{sSearch:b,bRegex:e.bRegex,bSmart:e.bSmart,bCaseInsensitive:e.bCaseInsensitive}),a._iDisplayStart=0,P(a))},g=null!==a.searchDelay?a.searchDelay:"ssp"===y(a)?400:0,i=h("input",b).val(e.sSearch).attr("placeholder",d.sSearchPlaceholder).on("keyup.DT search.DT input.DT paste.DT cut.DT",g?Oa(f,g):f).on("keypress.DT",function(a){if(13==a.keyCode)return!1}).attr("aria-controls",
c);h(a.nTable).on("search.dt.DT",function(b,c){if(a===c)try{i[0]!==H.activeElement&&i.val(e.sSearch)}catch(d){}});return b[0]}function ga(a,b,c){var d=a.oPreviousSearch,e=a.aoPreSearchCols,f=function(a){d.sSearch=a.sSearch;d.bRegex=a.bRegex;d.bSmart=a.bSmart;d.bCaseInsensitive=a.bCaseInsensitive};Ga(a);if("ssp"!=y(a)){xb(a,b.sSearch,c,b.bEscapeRegex!==k?!b.bEscapeRegex:b.bRegex,b.bSmart,b.bCaseInsensitive);f(b);for(b=0;b<e.length;b++)yb(a,e[b].sSearch,b,e[b].bEscapeRegex!==k?!e[b].bEscapeRegex:e[b].bRegex,
e[b].bSmart,e[b].bCaseInsensitive);zb(a)}else f(b);a.bFiltered=!0;r(a,null,"search",[a])}function zb(a){for(var b=n.ext.search,c=a.aiDisplay,d,e,f=0,g=b.length;f<g;f++){for(var j=[],i=0,m=c.length;i<m;i++)e=c[i],d=a.aoData[e],b[f](a,d._aFilterData,e,d._aData,i)&&j.push(e);c.length=0;h.merge(c,j)}}function yb(a,b,c,d,e,f){if(""!==b){for(var g=[],j=a.aiDisplay,d=Pa(b,d,e,f),e=0;e<j.length;e++)b=a.aoData[j[e]]._aFilterData[c],d.test(b)&&g.push(j[e]);a.aiDisplay=g}}function xb(a,b,c,d,e,f){var d=Pa(b,
d,e,f),f=a.oPreviousSearch.sSearch,g=a.aiDisplayMaster,j,e=[];0!==n.ext.search.length&&(c=!0);j=Ab(a);if(0>=b.length)a.aiDisplay=g.slice();else{if(j||c||f.length>b.length||0!==b.indexOf(f)||a.bSorted)a.aiDisplay=g.slice();b=a.aiDisplay;for(c=0;c<b.length;c++)d.test(a.aoData[b[c]]._sFilterRow)&&e.push(b[c]);a.aiDisplay=e}}function Pa(a,b,c,d){a=b?a:Qa(a);c&&(a="^(?=.*?"+h.map(a.match(/"[^"]+"|[^ ]+/g)||[""],function(a){if('"'===a.charAt(0))var b=a.match(/^"(.*)"$/),a=b?b[1]:a;return a.replace('"',
"")}).join(")(?=.*?")+").*$");return RegExp(a,d?"i":"")}function Ab(a){var b=a.aoColumns,c,d,e,f,g,j,i,h,l=n.ext.type.search;c=!1;d=0;for(f=a.aoData.length;d<f;d++)if(h=a.aoData[d],!h._aFilterData){j=[];e=0;for(g=b.length;e<g;e++)c=b[e],c.bSearchable?(i=B(a,d,e,"filter"),l[c.sType]&&(i=l[c.sType](i)),null===i&&(i=""),"string"!==typeof i&&i.toString&&(i=i.toString())):i="",i.indexOf&&-1!==i.indexOf("&")&&(va.innerHTML=i,i=Wb?va.textContent:va.innerText),i.replace&&(i=i.replace(/[\r\n]/g,"")),j.push(i);
h._aFilterData=j;h._sFilterRow=j.join(" ");c=!0}return c}function Bb(a){return{search:a.sSearch,smart:a.bSmart,regex:a.bRegex,caseInsensitive:a.bCaseInsensitive}}function Cb(a){return{sSearch:a.search,bSmart:a.smart,bRegex:a.regex,bCaseInsensitive:a.caseInsensitive}}function tb(a){var b=a.sTableId,c=a.aanFeatures.i,d=h("<div/>",{"class":a.oClasses.sInfo,id:!c?b+"_info":null});c||(a.aoDrawCallback.push({fn:Db,sName:"information"}),d.attr("role","status").attr("aria-live","polite"),h(a.nTable).attr("aria-describedby",
b+"_info"));return d[0]}function Db(a){var b=a.aanFeatures.i;if(0!==b.length){var c=a.oLanguage,d=a._iDisplayStart+1,e=a.fnDisplayEnd(),f=a.fnRecordsTotal(),g=a.fnRecordsDisplay(),j=g?c.sInfo:c.sInfoEmpty;g!==f&&(j+=" "+c.sInfoFiltered);j+=c.sInfoPostFix;j=Eb(a,j);c=c.fnInfoCallback;null!==c&&(j=c.call(a.oInstance,a,d,e,f,g,j));h(b).html(j)}}function Eb(a,b){var c=a.fnFormatNumber,d=a._iDisplayStart+1,e=a._iDisplayLength,f=a.fnRecordsDisplay(),g=-1===e;return b.replace(/_START_/g,c.call(a,d)).replace(/_END_/g,
c.call(a,a.fnDisplayEnd())).replace(/_MAX_/g,c.call(a,a.fnRecordsTotal())).replace(/_TOTAL_/g,c.call(a,f)).replace(/_PAGE_/g,c.call(a,g?1:Math.ceil(d/e))).replace(/_PAGES_/g,c.call(a,g?1:Math.ceil(f/e)))}function ha(a){var b,c,d=a.iInitDisplayStart,e=a.aoColumns,f;c=a.oFeatures;var g=a.bDeferLoading;if(a.bInitialised){ob(a);lb(a);fa(a,a.aoHeader);fa(a,a.aoFooter);C(a,!0);c.bAutoWidth&&Fa(a);b=0;for(c=e.length;b<c;b++)f=e[b],f.sWidth&&(f.nTh.style.width=v(f.sWidth));r(a,null,"preInit",[a]);T(a);e=
y(a);if("ssp"!=e||g)"ajax"==e?sa(a,[],function(c){var f=ta(a,c);for(b=0;b<f.length;b++)O(a,f[b]);a.iInitDisplayStart=d;T(a);C(a,!1);ua(a,c)},a):(C(a,!1),ua(a))}else setTimeout(function(){ha(a)},200)}function ua(a,b){a._bInitComplete=!0;(b||a.oInit.aaData)&&$(a);r(a,null,"plugin-init",[a,b]);r(a,"aoInitComplete","init",[a,b])}function Ra(a,b){var c=parseInt(b,10);a._iDisplayLength=c;Sa(a);r(a,null,"length",[a,c])}function pb(a){for(var b=a.oClasses,c=a.sTableId,d=a.aLengthMenu,e=h.isArray(d[0]),f=
e?d[0]:d,d=e?d[1]:d,e=h("<select/>",{name:c+"_length","aria-controls":c,"class":b.sLengthSelect}),g=0,j=f.length;g<j;g++)e[0][g]=new Option("number"===typeof d[g]?a.fnFormatNumber(d[g]):d[g],f[g]);var i=h("<div><label/></div>").addClass(b.sLength);a.aanFeatures.l||(i[0].id=c+"_length");i.children().append(a.oLanguage.sLengthMenu.replace("_MENU_",e[0].outerHTML));h("select",i).val(a._iDisplayLength).on("change.DT",function(){Ra(a,h(this).val());P(a)});h(a.nTable).on("length.dt.DT",function(b,c,d){a===
c&&h("select",i).val(d)});return i[0]}function ub(a){var b=a.sPaginationType,c=n.ext.pager[b],d="function"===typeof c,e=function(a){P(a)},b=h("<div/>").addClass(a.oClasses.sPaging+b)[0],f=a.aanFeatures;d||c.fnInit(a,b,e);f.p||(b.id=a.sTableId+"_paginate",a.aoDrawCallback.push({fn:function(a){if(d){var b=a._iDisplayStart,i=a._iDisplayLength,h=a.fnRecordsDisplay(),l=-1===i,b=l?0:Math.ceil(b/i),i=l?1:Math.ceil(h/i),h=c(b,i),k,l=0;for(k=f.p.length;l<k;l++)Na(a,"pageButton")(a,f.p[l],l,h,b,i)}else c.fnUpdate(a,
e)},sName:"pagination"}));return b}function Ta(a,b,c){var d=a._iDisplayStart,e=a._iDisplayLength,f=a.fnRecordsDisplay();0===f||-1===e?d=0:"number"===typeof b?(d=b*e,d>f&&(d=0)):"first"==b?d=0:"previous"==b?(d=0<=e?d-e:0,0>d&&(d=0)):"next"==b?d+e<f&&(d+=e):"last"==b?d=Math.floor((f-1)/e)*e:K(a,0,"Unknown paging action: "+b,5);b=a._iDisplayStart!==d;a._iDisplayStart=d;b&&(r(a,null,"page",[a]),c&&P(a));return b}function rb(a){return h("<div/>",{id:!a.aanFeatures.r?a.sTableId+"_processing":null,"class":a.oClasses.sProcessing}).html(a.oLanguage.sProcessing).insertBefore(a.nTable)[0]}
function C(a,b){a.oFeatures.bProcessing&&h(a.aanFeatures.r).css("display",b?"block":"none");r(a,null,"processing",[a,b])}function sb(a){var b=h(a.nTable);b.attr("role","grid");var c=a.oScroll;if(""===c.sX&&""===c.sY)return a.nTable;var d=c.sX,e=c.sY,f=a.oClasses,g=b.children("caption"),j=g.length?g[0]._captionSide:null,i=h(b[0].cloneNode(!1)),m=h(b[0].cloneNode(!1)),l=b.children("tfoot");l.length||(l=null);i=h("<div/>",{"class":f.sScrollWrapper}).append(h("<div/>",{"class":f.sScrollHead}).css({overflow:"hidden",
position:"relative",border:0,width:d?!d?null:v(d):"100%"}).append(h("<div/>",{"class":f.sScrollHeadInner}).css({"box-sizing":"content-box",width:c.sXInner||"100%"}).append(i.removeAttr("id").css("margin-left",0).append("top"===j?g:null).append(b.children("thead"))))).append(h("<div/>",{"class":f.sScrollBody}).css({position:"relative",overflow:"auto",width:!d?null:v(d)}).append(b));l&&i.append(h("<div/>",{"class":f.sScrollFoot}).css({overflow:"hidden",border:0,width:d?!d?null:v(d):"100%"}).append(h("<div/>",
{"class":f.sScrollFootInner}).append(m.removeAttr("id").css("margin-left",0).append("bottom"===j?g:null).append(b.children("tfoot")))));var b=i.children(),k=b[0],f=b[1],t=l?b[2]:null;if(d)h(f).on("scroll.DT",function(){var a=this.scrollLeft;k.scrollLeft=a;l&&(t.scrollLeft=a)});h(f).css(e&&c.bCollapse?"max-height":"height",e);a.nScrollHead=k;a.nScrollBody=f;a.nScrollFoot=t;a.aoDrawCallback.push({fn:la,sName:"scrolling"});return i[0]}function la(a){var b=a.oScroll,c=b.sX,d=b.sXInner,e=b.sY,b=b.iBarWidth,
f=h(a.nScrollHead),g=f[0].style,j=f.children("div"),i=j[0].style,m=j.children("table"),j=a.nScrollBody,l=h(j),q=j.style,t=h(a.nScrollFoot).children("div"),n=t.children("table"),o=h(a.nTHead),p=h(a.nTable),s=p[0],r=s.style,u=a.nTFoot?h(a.nTFoot):null,x=a.oBrowser,U=x.bScrollOversize,Xb=D(a.aoColumns,"nTh"),Q,L,R,w,Ua=[],y=[],z=[],A=[],B,C=function(a){a=a.style;a.paddingTop="0";a.paddingBottom="0";a.borderTopWidth="0";a.borderBottomWidth="0";a.height=0};L=j.scrollHeight>j.clientHeight;if(a.scrollBarVis!==
L&&a.scrollBarVis!==k)a.scrollBarVis=L,$(a);else{a.scrollBarVis=L;p.children("thead, tfoot").remove();u&&(R=u.clone().prependTo(p),Q=u.find("tr"),R=R.find("tr"));w=o.clone().prependTo(p);o=o.find("tr");L=w.find("tr");w.find("th, td").removeAttr("tabindex");c||(q.width="100%",f[0].style.width="100%");h.each(ra(a,w),function(b,c){B=aa(a,b);c.style.width=a.aoColumns[B].sWidth});u&&I(function(a){a.style.width=""},R);f=p.outerWidth();if(""===c){r.width="100%";if(U&&(p.find("tbody").height()>j.offsetHeight||
"scroll"==l.css("overflow-y")))r.width=v(p.outerWidth()-b);f=p.outerWidth()}else""!==d&&(r.width=v(d),f=p.outerWidth());I(C,L);I(function(a){z.push(a.innerHTML);Ua.push(v(h(a).css("width")))},L);I(function(a,b){if(h.inArray(a,Xb)!==-1)a.style.width=Ua[b]},o);h(L).height(0);u&&(I(C,R),I(function(a){A.push(a.innerHTML);y.push(v(h(a).css("width")))},R),I(function(a,b){a.style.width=y[b]},Q),h(R).height(0));I(function(a,b){a.innerHTML='<div class="dataTables_sizing">'+z[b]+"</div>";a.childNodes[0].style.height=
"0";a.childNodes[0].style.overflow="hidden";a.style.width=Ua[b]},L);u&&I(function(a,b){a.innerHTML='<div class="dataTables_sizing">'+A[b]+"</div>";a.childNodes[0].style.height="0";a.childNodes[0].style.overflow="hidden";a.style.width=y[b]},R);if(p.outerWidth()<f){Q=j.scrollHeight>j.offsetHeight||"scroll"==l.css("overflow-y")?f+b:f;if(U&&(j.scrollHeight>j.offsetHeight||"scroll"==l.css("overflow-y")))r.width=v(Q-b);(""===c||""!==d)&&K(a,1,"Possible column misalignment",6)}else Q="100%";q.width=v(Q);
g.width=v(Q);u&&(a.nScrollFoot.style.width=v(Q));!e&&U&&(q.height=v(s.offsetHeight+b));c=p.outerWidth();m[0].style.width=v(c);i.width=v(c);d=p.height()>j.clientHeight||"scroll"==l.css("overflow-y");e="padding"+(x.bScrollbarLeft?"Left":"Right");i[e]=d?b+"px":"0px";u&&(n[0].style.width=v(c),t[0].style.width=v(c),t[0].style[e]=d?b+"px":"0px");p.children("colgroup").insertBefore(p.children("thead"));l.scroll();if((a.bSorted||a.bFiltered)&&!a._drawHold)j.scrollTop=0}}function I(a,b,c){for(var d=0,e=0,
f=b.length,g,j;e<f;){g=b[e].firstChild;for(j=c?c[e].firstChild:null;g;)1===g.nodeType&&(c?a(g,j,d):a(g,d),d++),g=g.nextSibling,j=c?j.nextSibling:null;e++}}function Fa(a){var b=a.nTable,c=a.aoColumns,d=a.oScroll,e=d.sY,f=d.sX,g=d.sXInner,j=c.length,i=ma(a,"bVisible"),m=h("th",a.nTHead),l=b.getAttribute("width"),k=b.parentNode,t=!1,n,o,p=a.oBrowser,d=p.bScrollOversize;(n=b.style.width)&&-1!==n.indexOf("%")&&(l=n);for(n=0;n<i.length;n++)o=c[i[n]],null!==o.sWidth&&(o.sWidth=Fb(o.sWidthOrig,k),t=!0);if(d||
!t&&!f&&!e&&j==V(a)&&j==m.length)for(n=0;n<j;n++)i=aa(a,n),null!==i&&(c[i].sWidth=v(m.eq(n).width()));else{j=h(b).clone().css("visibility","hidden").removeAttr("id");j.find("tbody tr").remove();var s=h("<tr/>").appendTo(j.find("tbody"));j.find("thead, tfoot").remove();j.append(h(a.nTHead).clone()).append(h(a.nTFoot).clone());j.find("tfoot th, tfoot td").css("width","");m=ra(a,j.find("thead")[0]);for(n=0;n<i.length;n++)o=c[i[n]],m[n].style.width=null!==o.sWidthOrig&&""!==o.sWidthOrig?v(o.sWidthOrig):
"",o.sWidthOrig&&f&&h(m[n]).append(h("<div/>").css({width:o.sWidthOrig,margin:0,padding:0,border:0,height:1}));if(a.aoData.length)for(n=0;n<i.length;n++)t=i[n],o=c[t],h(Gb(a,t)).clone(!1).append(o.sContentPadding).appendTo(s);h("[name]",j).removeAttr("name");o=h("<div/>").css(f||e?{position:"absolute",top:0,left:0,height:1,right:0,overflow:"hidden"}:{}).append(j).appendTo(k);f&&g?j.width(g):f?(j.css("width","auto"),j.removeAttr("width"),j.width()<k.clientWidth&&l&&j.width(k.clientWidth)):e?j.width(k.clientWidth):
l&&j.width(l);for(n=e=0;n<i.length;n++)k=h(m[n]),g=k.outerWidth()-k.width(),k=p.bBounding?Math.ceil(m[n].getBoundingClientRect().width):k.outerWidth(),e+=k,c[i[n]].sWidth=v(k-g);b.style.width=v(e);o.remove()}l&&(b.style.width=v(l));if((l||f)&&!a._reszEvt)b=function(){h(E).on("resize.DT-"+a.sInstance,Oa(function(){$(a)}))},d?setTimeout(b,1E3):b(),a._reszEvt=!0}function Fb(a,b){if(!a)return 0;var c=h("<div/>").css("width",v(a)).appendTo(b||H.body),d=c[0].offsetWidth;c.remove();return d}function Gb(a,
b){var c=Hb(a,b);if(0>c)return null;var d=a.aoData[c];return!d.nTr?h("<td/>").html(B(a,c,b,"display"))[0]:d.anCells[b]}function Hb(a,b){for(var c,d=-1,e=-1,f=0,g=a.aoData.length;f<g;f++)c=B(a,f,b,"display")+"",c=c.replace(Yb,""),c=c.replace(/&nbsp;/g," "),c.length>d&&(d=c.length,e=f);return e}function v(a){return null===a?"0px":"number"==typeof a?0>a?"0px":a+"px":a.match(/\d$/)?a+"px":a}function X(a){var b,c,d=[],e=a.aoColumns,f,g,j,i;b=a.aaSortingFixed;c=h.isPlainObject(b);var m=[];f=function(a){a.length&&
!h.isArray(a[0])?m.push(a):h.merge(m,a)};h.isArray(b)&&f(b);c&&b.pre&&f(b.pre);f(a.aaSorting);c&&b.post&&f(b.post);for(a=0;a<m.length;a++){i=m[a][0];f=e[i].aDataSort;b=0;for(c=f.length;b<c;b++)g=f[b],j=e[g].sType||"string",m[a]._idx===k&&(m[a]._idx=h.inArray(m[a][1],e[g].asSorting)),d.push({src:i,col:g,dir:m[a][1],index:m[a]._idx,type:j,formatter:n.ext.type.order[j+"-pre"]})}return d}function nb(a){var b,c,d=[],e=n.ext.type.order,f=a.aoData,g=0,j,i=a.aiDisplayMaster,h;Ga(a);h=X(a);b=0;for(c=h.length;b<
c;b++)j=h[b],j.formatter&&g++,Ib(a,j.col);if("ssp"!=y(a)&&0!==h.length){b=0;for(c=i.length;b<c;b++)d[i[b]]=b;g===h.length?i.sort(function(a,b){var c,e,g,j,i=h.length,k=f[a]._aSortData,n=f[b]._aSortData;for(g=0;g<i;g++)if(j=h[g],c=k[j.col],e=n[j.col],c=c<e?-1:c>e?1:0,0!==c)return"asc"===j.dir?c:-c;c=d[a];e=d[b];return c<e?-1:c>e?1:0}):i.sort(function(a,b){var c,g,j,i,k=h.length,n=f[a]._aSortData,o=f[b]._aSortData;for(j=0;j<k;j++)if(i=h[j],c=n[i.col],g=o[i.col],i=e[i.type+"-"+i.dir]||e["string-"+i.dir],
c=i(c,g),0!==c)return c;c=d[a];g=d[b];return c<g?-1:c>g?1:0})}a.bSorted=!0}function Jb(a){for(var b,c,d=a.aoColumns,e=X(a),a=a.oLanguage.oAria,f=0,g=d.length;f<g;f++){c=d[f];var j=c.asSorting;b=c.sTitle.replace(/<.*?>/g,"");var i=c.nTh;i.removeAttribute("aria-sort");c.bSortable&&(0<e.length&&e[0].col==f?(i.setAttribute("aria-sort","asc"==e[0].dir?"ascending":"descending"),c=j[e[0].index+1]||j[0]):c=j[0],b+="asc"===c?a.sSortAscending:a.sSortDescending);i.setAttribute("aria-label",b)}}function Va(a,
b,c,d){var e=a.aaSorting,f=a.aoColumns[b].asSorting,g=function(a,b){var c=a._idx;c===k&&(c=h.inArray(a[1],f));return c+1<f.length?c+1:b?null:0};"number"===typeof e[0]&&(e=a.aaSorting=[e]);c&&a.oFeatures.bSortMulti?(c=h.inArray(b,D(e,"0")),-1!==c?(b=g(e[c],!0),null===b&&1===e.length&&(b=0),null===b?e.splice(c,1):(e[c][1]=f[b],e[c]._idx=b)):(e.push([b,f[0],0]),e[e.length-1]._idx=0)):e.length&&e[0][0]==b?(b=g(e[0]),e.length=1,e[0][1]=f[b],e[0]._idx=b):(e.length=0,e.push([b,f[0]]),e[0]._idx=0);T(a);"function"==
typeof d&&d(a)}function Ma(a,b,c,d){var e=a.aoColumns[c];Wa(b,{},function(b){!1!==e.bSortable&&(a.oFeatures.bProcessing?(C(a,!0),setTimeout(function(){Va(a,c,b.shiftKey,d);"ssp"!==y(a)&&C(a,!1)},0)):Va(a,c,b.shiftKey,d))})}function wa(a){var b=a.aLastSort,c=a.oClasses.sSortColumn,d=X(a),e=a.oFeatures,f,g;if(e.bSort&&e.bSortClasses){e=0;for(f=b.length;e<f;e++)g=b[e].src,h(D(a.aoData,"anCells",g)).removeClass(c+(2>e?e+1:3));e=0;for(f=d.length;e<f;e++)g=d[e].src,h(D(a.aoData,"anCells",g)).addClass(c+
(2>e?e+1:3))}a.aLastSort=d}function Ib(a,b){var c=a.aoColumns[b],d=n.ext.order[c.sSortDataType],e;d&&(e=d.call(a.oInstance,a,b,ba(a,b)));for(var f,g=n.ext.type.order[c.sType+"-pre"],j=0,i=a.aoData.length;j<i;j++)if(c=a.aoData[j],c._aSortData||(c._aSortData=[]),!c._aSortData[b]||d)f=d?e[j]:B(a,j,b,"sort"),c._aSortData[b]=g?g(f):f}function xa(a){if(a.oFeatures.bStateSave&&!a.bDestroying){var b={time:+new Date,start:a._iDisplayStart,length:a._iDisplayLength,order:h.extend(!0,[],a.aaSorting),search:Bb(a.oPreviousSearch),
columns:h.map(a.aoColumns,function(b,d){return{visible:b.bVisible,search:Bb(a.aoPreSearchCols[d])}})};r(a,"aoStateSaveParams","stateSaveParams",[a,b]);a.oSavedState=b;a.fnStateSaveCallback.call(a.oInstance,a,b)}}function Kb(a,b,c){var d,e,f=a.aoColumns,b=function(b){if(b&&b.time){var g=r(a,"aoStateLoadParams","stateLoadParams",[a,b]);if(-1===h.inArray(!1,g)&&(g=a.iStateDuration,!(0<g&&b.time<+new Date-1E3*g)&&!(b.columns&&f.length!==b.columns.length))){a.oLoadedState=h.extend(!0,{},b);b.start!==k&&
(a._iDisplayStart=b.start,a.iInitDisplayStart=b.start);b.length!==k&&(a._iDisplayLength=b.length);b.order!==k&&(a.aaSorting=[],h.each(b.order,function(b,c){a.aaSorting.push(c[0]>=f.length?[0,c[1]]:c)}));b.search!==k&&h.extend(a.oPreviousSearch,Cb(b.search));if(b.columns){d=0;for(e=b.columns.length;d<e;d++)g=b.columns[d],g.visible!==k&&(f[d].bVisible=g.visible),g.search!==k&&h.extend(a.aoPreSearchCols[d],Cb(g.search))}r(a,"aoStateLoaded","stateLoaded",[a,b])}}c()};if(a.oFeatures.bStateSave){var g=
a.fnStateLoadCallback.call(a.oInstance,a,b);g!==k&&b(g)}else c()}function ya(a){var b=n.settings,a=h.inArray(a,D(b,"nTable"));return-1!==a?b[a]:null}function K(a,b,c,d){c="DataTables warning: "+(a?"table id="+a.sTableId+" - ":"")+c;d&&(c+=". For more information about this error, please see http://datatables.net/tn/"+d);if(b)E.console&&console.log&&console.log(c);else if(b=n.ext,b=b.sErrMode||b.errMode,a&&r(a,null,"error",[a,d,c]),"alert"==b)alert(c);else{if("throw"==b)throw Error(c);"function"==
typeof b&&b(a,d,c)}}function F(a,b,c,d){h.isArray(c)?h.each(c,function(c,d){h.isArray(d)?F(a,b,d[0],d[1]):F(a,b,d)}):(d===k&&(d=c),b[c]!==k&&(a[d]=b[c]))}function Xa(a,b,c){var d,e;for(e in b)b.hasOwnProperty(e)&&(d=b[e],h.isPlainObject(d)?(h.isPlainObject(a[e])||(a[e]={}),h.extend(!0,a[e],d)):a[e]=c&&"data"!==e&&"aaData"!==e&&h.isArray(d)?d.slice():d);return a}function Wa(a,b,c){h(a).on("click.DT",b,function(b){h(a).blur();c(b)}).on("keypress.DT",b,function(a){13===a.which&&(a.preventDefault(),c(a))}).on("selectstart.DT",
function(){return!1})}function z(a,b,c,d){c&&a[b].push({fn:c,sName:d})}function r(a,b,c,d){var e=[];b&&(e=h.map(a[b].slice().reverse(),function(b){return b.fn.apply(a.oInstance,d)}));null!==c&&(b=h.Event(c+".dt"),h(a.nTable).trigger(b,d),e.push(b.result));return e}function Sa(a){var b=a._iDisplayStart,c=a.fnDisplayEnd(),d=a._iDisplayLength;b>=c&&(b=c-d);b-=b%d;if(-1===d||0>b)b=0;a._iDisplayStart=b}function Na(a,b){var c=a.renderer,d=n.ext.renderer[b];return h.isPlainObject(c)&&c[b]?d[c[b]]||d._:"string"===
typeof c?d[c]||d._:d._}function y(a){return a.oFeatures.bServerSide?"ssp":a.ajax||a.sAjaxSource?"ajax":"dom"}function ia(a,b){var c=[],c=Lb.numbers_length,d=Math.floor(c/2);b<=c?c=Y(0,b):a<=d?(c=Y(0,c-2),c.push("ellipsis"),c.push(b-1)):(a>=b-1-d?c=Y(b-(c-2),b):(c=Y(a-d+2,a+d-1),c.push("ellipsis"),c.push(b-1)),c.splice(0,0,"ellipsis"),c.splice(0,0,0));c.DT_el="span";return c}function Da(a){h.each({num:function(b){return za(b,a)},"num-fmt":function(b){return za(b,a,Ya)},"html-num":function(b){return za(b,
a,Aa)},"html-num-fmt":function(b){return za(b,a,Aa,Ya)}},function(b,c){x.type.order[b+a+"-pre"]=c;b.match(/^html\-/)&&(x.type.search[b+a]=x.type.search.html)})}function Mb(a){return function(){var b=[ya(this[n.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments));return n.ext.internal[a].apply(this,b)}}var n=function(a){this.$=function(a,b){return this.api(!0).$(a,b)};this._=function(a,b){return this.api(!0).rows(a,b).data()};this.api=function(a){return a?new s(ya(this[x.iApiIndex])):new s(this)};
this.fnAddData=function(a,b){var c=this.api(!0),d=h.isArray(a)&&(h.isArray(a[0])||h.isPlainObject(a[0]))?c.rows.add(a):c.row.add(a);(b===k||b)&&c.draw();return d.flatten().toArray()};this.fnAdjustColumnSizing=function(a){var b=this.api(!0).columns.adjust(),c=b.settings()[0],d=c.oScroll;a===k||a?b.draw(!1):(""!==d.sX||""!==d.sY)&&la(c)};this.fnClearTable=function(a){var b=this.api(!0).clear();(a===k||a)&&b.draw()};this.fnClose=function(a){this.api(!0).row(a).child.hide()};this.fnDeleteRow=function(a,
b,c){var d=this.api(!0),a=d.rows(a),e=a.settings()[0],h=e.aoData[a[0][0]];a.remove();b&&b.call(this,e,h);(c===k||c)&&d.draw();return h};this.fnDestroy=function(a){this.api(!0).destroy(a)};this.fnDraw=function(a){this.api(!0).draw(a)};this.fnFilter=function(a,b,c,d,e,h){e=this.api(!0);null===b||b===k?e.search(a,c,d,h):e.column(b).search(a,c,d,h);e.draw()};this.fnGetData=function(a,b){var c=this.api(!0);if(a!==k){var d=a.nodeName?a.nodeName.toLowerCase():"";return b!==k||"td"==d||"th"==d?c.cell(a,b).data():
c.row(a).data()||null}return c.data().toArray()};this.fnGetNodes=function(a){var b=this.api(!0);return a!==k?b.row(a).node():b.rows().nodes().flatten().toArray()};this.fnGetPosition=function(a){var b=this.api(!0),c=a.nodeName.toUpperCase();return"TR"==c?b.row(a).index():"TD"==c||"TH"==c?(a=b.cell(a).index(),[a.row,a.columnVisible,a.column]):null};this.fnIsOpen=function(a){return this.api(!0).row(a).child.isShown()};this.fnOpen=function(a,b,c){return this.api(!0).row(a).child(b,c).show().child()[0]};
this.fnPageChange=function(a,b){var c=this.api(!0).page(a);(b===k||b)&&c.draw(!1)};this.fnSetColumnVis=function(a,b,c){a=this.api(!0).column(a).visible(b);(c===k||c)&&a.columns.adjust().draw()};this.fnSettings=function(){return ya(this[x.iApiIndex])};this.fnSort=function(a){this.api(!0).order(a).draw()};this.fnSortListener=function(a,b,c){this.api(!0).order.listener(a,b,c)};this.fnUpdate=function(a,b,c,d,e){var h=this.api(!0);c===k||null===c?h.row(b).data(a):h.cell(b,c).data(a);(e===k||e)&&h.columns.adjust();
(d===k||d)&&h.draw();return 0};this.fnVersionCheck=x.fnVersionCheck;var b=this,c=a===k,d=this.length;c&&(a={});this.oApi=this.internal=x.internal;for(var e in n.ext.internal)e&&(this[e]=Mb(e));this.each(function(){var e={},g=1<d?Xa(e,a,!0):a,j=0,i,e=this.getAttribute("id"),m=!1,l=n.defaults,q=h(this);if("table"!=this.nodeName.toLowerCase())K(null,0,"Non-table node initialisation ("+this.nodeName+")",2);else{fb(l);gb(l.column);J(l,l,!0);J(l.column,l.column,!0);J(l,h.extend(g,q.data()));var t=n.settings,
j=0;for(i=t.length;j<i;j++){var o=t[j];if(o.nTable==this||o.nTHead&&o.nTHead.parentNode==this||o.nTFoot&&o.nTFoot.parentNode==this){var s=g.bRetrieve!==k?g.bRetrieve:l.bRetrieve;if(c||s)return o.oInstance;if(g.bDestroy!==k?g.bDestroy:l.bDestroy){o.oInstance.fnDestroy();break}else{K(o,0,"Cannot reinitialise DataTable",3);return}}if(o.sTableId==this.id){t.splice(j,1);break}}if(null===e||""===e)this.id=e="DataTables_Table_"+n.ext._unique++;var p=h.extend(!0,{},n.models.oSettings,{sDestroyWidth:q[0].style.width,
sInstance:e,sTableId:e});p.nTable=this;p.oApi=b.internal;p.oInit=g;t.push(p);p.oInstance=1===b.length?b:q.dataTable();fb(g);Ca(g.oLanguage);g.aLengthMenu&&!g.iDisplayLength&&(g.iDisplayLength=h.isArray(g.aLengthMenu[0])?g.aLengthMenu[0][0]:g.aLengthMenu[0]);g=Xa(h.extend(!0,{},l),g);F(p.oFeatures,g,"bPaginate bLengthChange bFilter bSort bSortMulti bInfo bProcessing bAutoWidth bSortClasses bServerSide bDeferRender".split(" "));F(p,g,["asStripeClasses","ajax","fnServerData","fnFormatNumber","sServerMethod",
"aaSorting","aaSortingFixed","aLengthMenu","sPaginationType","sAjaxSource","sAjaxDataProp","iStateDuration","sDom","bSortCellsTop","iTabIndex","fnStateLoadCallback","fnStateSaveCallback","renderer","searchDelay","rowId",["iCookieDuration","iStateDuration"],["oSearch","oPreviousSearch"],["aoSearchCols","aoPreSearchCols"],["iDisplayLength","_iDisplayLength"]]);F(p.oScroll,g,[["sScrollX","sX"],["sScrollXInner","sXInner"],["sScrollY","sY"],["bScrollCollapse","bCollapse"]]);F(p.oLanguage,g,"fnInfoCallback");
z(p,"aoDrawCallback",g.fnDrawCallback,"user");z(p,"aoServerParams",g.fnServerParams,"user");z(p,"aoStateSaveParams",g.fnStateSaveParams,"user");z(p,"aoStateLoadParams",g.fnStateLoadParams,"user");z(p,"aoStateLoaded",g.fnStateLoaded,"user");z(p,"aoRowCallback",g.fnRowCallback,"user");z(p,"aoRowCreatedCallback",g.fnCreatedRow,"user");z(p,"aoHeaderCallback",g.fnHeaderCallback,"user");z(p,"aoFooterCallback",g.fnFooterCallback,"user");z(p,"aoInitComplete",g.fnInitComplete,"user");z(p,"aoPreDrawCallback",
g.fnPreDrawCallback,"user");p.rowIdFn=S(g.rowId);hb(p);var u=p.oClasses;h.extend(u,n.ext.classes,g.oClasses);q.addClass(u.sTable);p.iInitDisplayStart===k&&(p.iInitDisplayStart=g.iDisplayStart,p._iDisplayStart=g.iDisplayStart);null!==g.iDeferLoading&&(p.bDeferLoading=!0,e=h.isArray(g.iDeferLoading),p._iRecordsDisplay=e?g.iDeferLoading[0]:g.iDeferLoading,p._iRecordsTotal=e?g.iDeferLoading[1]:g.iDeferLoading);var v=p.oLanguage;h.extend(!0,v,g.oLanguage);v.sUrl&&(h.ajax({dataType:"json",url:v.sUrl,success:function(a){Ca(a);
J(l.oLanguage,a);h.extend(true,v,a);ha(p)},error:function(){ha(p)}}),m=!0);null===g.asStripeClasses&&(p.asStripeClasses=[u.sStripeOdd,u.sStripeEven]);var e=p.asStripeClasses,x=q.children("tbody").find("tr").eq(0);-1!==h.inArray(!0,h.map(e,function(a){return x.hasClass(a)}))&&(h("tbody tr",this).removeClass(e.join(" ")),p.asDestroyStripes=e.slice());e=[];t=this.getElementsByTagName("thead");0!==t.length&&(ea(p.aoHeader,t[0]),e=ra(p));if(null===g.aoColumns){t=[];j=0;for(i=e.length;j<i;j++)t.push(null)}else t=
g.aoColumns;j=0;for(i=t.length;j<i;j++)Ea(p,e?e[j]:null);jb(p,g.aoColumnDefs,t,function(a,b){ka(p,a,b)});if(x.length){var w=function(a,b){return a.getAttribute("data-"+b)!==null?b:null};h(x[0]).children("th, td").each(function(a,b){var c=p.aoColumns[a];if(c.mData===a){var d=w(b,"sort")||w(b,"order"),e=w(b,"filter")||w(b,"search");if(d!==null||e!==null){c.mData={_:a+".display",sort:d!==null?a+".@data-"+d:k,type:d!==null?a+".@data-"+d:k,filter:e!==null?a+".@data-"+e:k};ka(p,a)}}})}var U=p.oFeatures,
e=function(){if(g.aaSorting===k){var a=p.aaSorting;j=0;for(i=a.length;j<i;j++)a[j][1]=p.aoColumns[j].asSorting[0]}wa(p);U.bSort&&z(p,"aoDrawCallback",function(){if(p.bSorted){var a=X(p),b={};h.each(a,function(a,c){b[c.src]=c.dir});r(p,null,"order",[p,a,b]);Jb(p)}});z(p,"aoDrawCallback",function(){(p.bSorted||y(p)==="ssp"||U.bDeferRender)&&wa(p)},"sc");var a=q.children("caption").each(function(){this._captionSide=h(this).css("caption-side")}),b=q.children("thead");b.length===0&&(b=h("<thead/>").appendTo(q));
p.nTHead=b[0];b=q.children("tbody");b.length===0&&(b=h("<tbody/>").appendTo(q));p.nTBody=b[0];b=q.children("tfoot");if(b.length===0&&a.length>0&&(p.oScroll.sX!==""||p.oScroll.sY!==""))b=h("<tfoot/>").appendTo(q);if(b.length===0||b.children().length===0)q.addClass(u.sNoFooter);else if(b.length>0){p.nTFoot=b[0];ea(p.aoFooter,p.nTFoot)}if(g.aaData)for(j=0;j<g.aaData.length;j++)O(p,g.aaData[j]);else(p.bDeferLoading||y(p)=="dom")&&na(p,h(p.nTBody).children("tr"));p.aiDisplay=p.aiDisplayMaster.slice();
p.bInitialised=true;m===false&&ha(p)};g.bStateSave?(U.bStateSave=!0,z(p,"aoDrawCallback",xa,"state_save"),Kb(p,g,e)):e()}});b=null;return this},x,s,o,u,Za={},Nb=/[\r\n]/g,Aa=/<.*?>/g,Zb=/^\d{2,4}[\.\/\-]\d{1,2}[\.\/\-]\d{1,2}([T ]{1}\d{1,2}[:\.]\d{2}([\.:]\d{2})?)?$/,$b=RegExp("(\\/|\\.|\\*|\\+|\\?|\\||\\(|\\)|\\[|\\]|\\{|\\}|\\\\|\\$|\\^|\\-)","g"),Ya=/[',$£€¥%\u2009\u202F\u20BD\u20a9\u20BArfkɃΞ]/gi,M=function(a){return!a||!0===a||"-"===a?!0:!1},Ob=function(a){var b=parseInt(a,10);return!isNaN(b)&&
isFinite(a)?b:null},Pb=function(a,b){Za[b]||(Za[b]=RegExp(Qa(b),"g"));return"string"===typeof a&&"."!==b?a.replace(/\./g,"").replace(Za[b],"."):a},$a=function(a,b,c){var d="string"===typeof a;if(M(a))return!0;b&&d&&(a=Pb(a,b));c&&d&&(a=a.replace(Ya,""));return!isNaN(parseFloat(a))&&isFinite(a)},Qb=function(a,b,c){return M(a)?!0:!(M(a)||"string"===typeof a)?null:$a(a.replace(Aa,""),b,c)?!0:null},D=function(a,b,c){var d=[],e=0,f=a.length;if(c!==k)for(;e<f;e++)a[e]&&a[e][b]&&d.push(a[e][b][c]);else for(;e<
f;e++)a[e]&&d.push(a[e][b]);return d},ja=function(a,b,c,d){var e=[],f=0,g=b.length;if(d!==k)for(;f<g;f++)a[b[f]][c]&&e.push(a[b[f]][c][d]);else for(;f<g;f++)e.push(a[b[f]][c]);return e},Y=function(a,b){var c=[],d;b===k?(b=0,d=a):(d=b,b=a);for(var e=b;e<d;e++)c.push(e);return c},Rb=function(a){for(var b=[],c=0,d=a.length;c<d;c++)a[c]&&b.push(a[c]);return b},qa=function(a){var b;a:{if(!(2>a.length)){b=a.slice().sort();for(var c=b[0],d=1,e=b.length;d<e;d++){if(b[d]===c){b=!1;break a}c=b[d]}}b=!0}if(b)return a.slice();
b=[];var e=a.length,f,g=0,d=0;a:for(;d<e;d++){c=a[d];for(f=0;f<g;f++)if(b[f]===c)continue a;b.push(c);g++}return b};n.util={throttle:function(a,b){var c=b!==k?b:200,d,e;return function(){var b=this,g=+new Date,j=arguments;d&&g<d+c?(clearTimeout(e),e=setTimeout(function(){d=k;a.apply(b,j)},c)):(d=g,a.apply(b,j))}},escapeRegex:function(a){return a.replace($b,"\\$1")}};var A=function(a,b,c){a[b]!==k&&(a[c]=a[b])},ca=/\[.*?\]$/,W=/\(\)$/,Qa=n.util.escapeRegex,va=h("<div>")[0],Wb=va.textContent!==k,Yb=
/<.*?>/g,Oa=n.util.throttle,Sb=[],w=Array.prototype,ac=function(a){var b,c,d=n.settings,e=h.map(d,function(a){return a.nTable});if(a){if(a.nTable&&a.oApi)return[a];if(a.nodeName&&"table"===a.nodeName.toLowerCase())return b=h.inArray(a,e),-1!==b?[d[b]]:null;if(a&&"function"===typeof a.settings)return a.settings().toArray();"string"===typeof a?c=h(a):a instanceof h&&(c=a)}else return[];if(c)return c.map(function(){b=h.inArray(this,e);return-1!==b?d[b]:null}).toArray()};s=function(a,b){if(!(this instanceof
s))return new s(a,b);var c=[],d=function(a){(a=ac(a))&&(c=c.concat(a))};if(h.isArray(a))for(var e=0,f=a.length;e<f;e++)d(a[e]);else d(a);this.context=qa(c);b&&h.merge(this,b);this.selector={rows:null,cols:null,opts:null};s.extend(this,this,Sb)};n.Api=s;h.extend(s.prototype,{any:function(){return 0!==this.count()},concat:w.concat,context:[],count:function(){return this.flatten().length},each:function(a){for(var b=0,c=this.length;b<c;b++)a.call(this,this[b],b,this);return this},eq:function(a){var b=
this.context;return b.length>a?new s(b[a],this[a]):null},filter:function(a){var b=[];if(w.filter)b=w.filter.call(this,a,this);else for(var c=0,d=this.length;c<d;c++)a.call(this,this[c],c,this)&&b.push(this[c]);return new s(this.context,b)},flatten:function(){var a=[];return new s(this.context,a.concat.apply(a,this.toArray()))},join:w.join,indexOf:w.indexOf||function(a,b){for(var c=b||0,d=this.length;c<d;c++)if(this[c]===a)return c;return-1},iterator:function(a,b,c,d){var e=[],f,g,j,h,m,l=this.context,
n,o,u=this.selector;"string"===typeof a&&(d=c,c=b,b=a,a=!1);g=0;for(j=l.length;g<j;g++){var r=new s(l[g]);if("table"===b)f=c.call(r,l[g],g),f!==k&&e.push(f);else if("columns"===b||"rows"===b)f=c.call(r,l[g],this[g],g),f!==k&&e.push(f);else if("column"===b||"column-rows"===b||"row"===b||"cell"===b){o=this[g];"column-rows"===b&&(n=Ba(l[g],u.opts));h=0;for(m=o.length;h<m;h++)f=o[h],f="cell"===b?c.call(r,l[g],f.row,f.column,g,h):c.call(r,l[g],f,g,h,n),f!==k&&e.push(f)}}return e.length||d?(a=new s(l,a?
e.concat.apply([],e):e),b=a.selector,b.rows=u.rows,b.cols=u.cols,b.opts=u.opts,a):this},lastIndexOf:w.lastIndexOf||function(a,b){return this.indexOf.apply(this.toArray.reverse(),arguments)},length:0,map:function(a){var b=[];if(w.map)b=w.map.call(this,a,this);else for(var c=0,d=this.length;c<d;c++)b.push(a.call(this,this[c],c));return new s(this.context,b)},pluck:function(a){return this.map(function(b){return b[a]})},pop:w.pop,push:w.push,reduce:w.reduce||function(a,b){return ib(this,a,b,0,this.length,
1)},reduceRight:w.reduceRight||function(a,b){return ib(this,a,b,this.length-1,-1,-1)},reverse:w.reverse,selector:null,shift:w.shift,slice:function(){return new s(this.context,this)},sort:w.sort,splice:w.splice,toArray:function(){return w.slice.call(this)},to$:function(){return h(this)},toJQuery:function(){return h(this)},unique:function(){return new s(this.context,qa(this))},unshift:w.unshift});s.extend=function(a,b,c){if(c.length&&b&&(b instanceof s||b.__dt_wrapper)){var d,e,f,g=function(a,b,c){return function(){var d=
b.apply(a,arguments);s.extend(d,d,c.methodExt);return d}};d=0;for(e=c.length;d<e;d++)f=c[d],b[f.name]="function"===typeof f.val?g(a,f.val,f):h.isPlainObject(f.val)?{}:f.val,b[f.name].__dt_wrapper=!0,s.extend(a,b[f.name],f.propExt)}};s.register=o=function(a,b){if(h.isArray(a))for(var c=0,d=a.length;c<d;c++)s.register(a[c],b);else for(var e=a.split("."),f=Sb,g,j,c=0,d=e.length;c<d;c++){g=(j=-1!==e[c].indexOf("()"))?e[c].replace("()",""):e[c];var i;a:{i=0;for(var m=f.length;i<m;i++)if(f[i].name===g){i=
f[i];break a}i=null}i||(i={name:g,val:{},methodExt:[],propExt:[]},f.push(i));c===d-1?i.val=b:f=j?i.methodExt:i.propExt}};s.registerPlural=u=function(a,b,c){s.register(a,c);s.register(b,function(){var a=c.apply(this,arguments);return a===this?this:a instanceof s?a.length?h.isArray(a[0])?new s(a.context,a[0]):a[0]:k:a})};o("tables()",function(a){var b;if(a){b=s;var c=this.context;if("number"===typeof a)a=[c[a]];else var d=h.map(c,function(a){return a.nTable}),a=h(d).filter(a).map(function(){var a=h.inArray(this,
d);return c[a]}).toArray();b=new b(a)}else b=this;return b});o("table()",function(a){var a=this.tables(a),b=a.context;return b.length?new s(b[0]):a});u("tables().nodes()","table().node()",function(){return this.iterator("table",function(a){return a.nTable},1)});u("tables().body()","table().body()",function(){return this.iterator("table",function(a){return a.nTBody},1)});u("tables().header()","table().header()",function(){return this.iterator("table",function(a){return a.nTHead},1)});u("tables().footer()",
"table().footer()",function(){return this.iterator("table",function(a){return a.nTFoot},1)});u("tables().containers()","table().container()",function(){return this.iterator("table",function(a){return a.nTableWrapper},1)});o("draw()",function(a){return this.iterator("table",function(b){"page"===a?P(b):("string"===typeof a&&(a="full-hold"===a?!1:!0),T(b,!1===a))})});o("page()",function(a){return a===k?this.page.info().page:this.iterator("table",function(b){Ta(b,a)})});o("page.info()",function(){if(0===
this.context.length)return k;var a=this.context[0],b=a._iDisplayStart,c=a.oFeatures.bPaginate?a._iDisplayLength:-1,d=a.fnRecordsDisplay(),e=-1===c;return{page:e?0:Math.floor(b/c),pages:e?1:Math.ceil(d/c),start:b,end:a.fnDisplayEnd(),length:c,recordsTotal:a.fnRecordsTotal(),recordsDisplay:d,serverSide:"ssp"===y(a)}});o("page.len()",function(a){return a===k?0!==this.context.length?this.context[0]._iDisplayLength:k:this.iterator("table",function(b){Ra(b,a)})});var Tb=function(a,b,c){if(c){var d=new s(a);
d.one("draw",function(){c(d.ajax.json())})}if("ssp"==y(a))T(a,b);else{C(a,!0);var e=a.jqXHR;e&&4!==e.readyState&&e.abort();sa(a,[],function(c){oa(a);for(var c=ta(a,c),d=0,e=c.length;d<e;d++)O(a,c[d]);T(a,b);C(a,!1)})}};o("ajax.json()",function(){var a=this.context;if(0<a.length)return a[0].json});o("ajax.params()",function(){var a=this.context;if(0<a.length)return a[0].oAjaxData});o("ajax.reload()",function(a,b){return this.iterator("table",function(c){Tb(c,!1===b,a)})});o("ajax.url()",function(a){var b=
this.context;if(a===k){if(0===b.length)return k;b=b[0];return b.ajax?h.isPlainObject(b.ajax)?b.ajax.url:b.ajax:b.sAjaxSource}return this.iterator("table",function(b){h.isPlainObject(b.ajax)?b.ajax.url=a:b.ajax=a})});o("ajax.url().load()",function(a,b){return this.iterator("table",function(c){Tb(c,!1===b,a)})});var ab=function(a,b,c,d,e){var f=[],g,j,i,m,l,n;i=typeof b;if(!b||"string"===i||"function"===i||b.length===k)b=[b];i=0;for(m=b.length;i<m;i++){j=b[i]&&b[i].split&&!b[i].match(/[\[\(:]/)?b[i].split(","):
[b[i]];l=0;for(n=j.length;l<n;l++)(g=c("string"===typeof j[l]?h.trim(j[l]):j[l]))&&g.length&&(f=f.concat(g))}a=x.selector[a];if(a.length){i=0;for(m=a.length;i<m;i++)f=a[i](d,e,f)}return qa(f)},bb=function(a){a||(a={});a.filter&&a.search===k&&(a.search=a.filter);return h.extend({search:"none",order:"current",page:"all"},a)},cb=function(a){for(var b=0,c=a.length;b<c;b++)if(0<a[b].length)return a[0]=a[b],a[0].length=1,a.length=1,a.context=[a.context[b]],a;a.length=0;return a},Ba=function(a,b){var c,
d,e,f=[],g=a.aiDisplay;e=a.aiDisplayMaster;var j=b.search;c=b.order;d=b.page;if("ssp"==y(a))return"removed"===j?[]:Y(0,e.length);if("current"==d){c=a._iDisplayStart;for(d=a.fnDisplayEnd();c<d;c++)f.push(g[c])}else if("current"==c||"applied"==c)if("none"==j)f=e.slice();else if("applied"==j)f=g.slice();else{if("removed"==j){var i={};c=0;for(d=g.length;c<d;c++)i[g[c]]=null;f=h.map(e,function(a){return!i.hasOwnProperty(a)?a:null})}}else if("index"==c||"original"==c){c=0;for(d=a.aoData.length;c<d;c++)"none"==
j?f.push(c):(e=h.inArray(c,g),(-1===e&&"removed"==j||0<=e&&"applied"==j)&&f.push(c))}return f};o("rows()",function(a,b){a===k?a="":h.isPlainObject(a)&&(b=a,a="");var b=bb(b),c=this.iterator("table",function(c){var e=b,f;return ab("row",a,function(a){var b=Ob(a),i=c.aoData;if(b!==null&&!e)return[b];f||(f=Ba(c,e));if(b!==null&&h.inArray(b,f)!==-1)return[b];if(a===null||a===k||a==="")return f;if(typeof a==="function")return h.map(f,function(b){var c=i[b];return a(b,c._aData,c.nTr)?b:null});if(a.nodeName){var b=
a._DT_RowIndex,m=a._DT_CellIndex;if(b!==k)return i[b]&&i[b].nTr===a?[b]:[];if(m)return i[m.row]&&i[m.row].nTr===a?[m.row]:[];b=h(a).closest("*[data-dt-row]");return b.length?[b.data("dt-row")]:[]}if(typeof a==="string"&&a.charAt(0)==="#"){b=c.aIds[a.replace(/^#/,"")];if(b!==k)return[b.idx]}b=Rb(ja(c.aoData,f,"nTr"));return h(b).filter(a).map(function(){return this._DT_RowIndex}).toArray()},c,e)},1);c.selector.rows=a;c.selector.opts=b;return c});o("rows().nodes()",function(){return this.iterator("row",
function(a,b){return a.aoData[b].nTr||k},1)});o("rows().data()",function(){return this.iterator(!0,"rows",function(a,b){return ja(a.aoData,b,"_aData")},1)});u("rows().cache()","row().cache()",function(a){return this.iterator("row",function(b,c){var d=b.aoData[c];return"search"===a?d._aFilterData:d._aSortData},1)});u("rows().invalidate()","row().invalidate()",function(a){return this.iterator("row",function(b,c){da(b,c,a)})});u("rows().indexes()","row().index()",function(){return this.iterator("row",
function(a,b){return b},1)});u("rows().ids()","row().id()",function(a){for(var b=[],c=this.context,d=0,e=c.length;d<e;d++)for(var f=0,g=this[d].length;f<g;f++){var h=c[d].rowIdFn(c[d].aoData[this[d][f]]._aData);b.push((!0===a?"#":"")+h)}return new s(c,b)});u("rows().remove()","row().remove()",function(){var a=this;this.iterator("row",function(b,c,d){var e=b.aoData,f=e[c],g,h,i,m,l;e.splice(c,1);g=0;for(h=e.length;g<h;g++)if(i=e[g],l=i.anCells,null!==i.nTr&&(i.nTr._DT_RowIndex=g),null!==l){i=0;for(m=
l.length;i<m;i++)l[i]._DT_CellIndex.row=g}pa(b.aiDisplayMaster,c);pa(b.aiDisplay,c);pa(a[d],c,!1);0<b._iRecordsDisplay&&b._iRecordsDisplay--;Sa(b);c=b.rowIdFn(f._aData);c!==k&&delete b.aIds[c]});this.iterator("table",function(a){for(var c=0,d=a.aoData.length;c<d;c++)a.aoData[c].idx=c});return this});o("rows.add()",function(a){var b=this.iterator("table",function(b){var c,f,g,h=[];f=0;for(g=a.length;f<g;f++)c=a[f],c.nodeName&&"TR"===c.nodeName.toUpperCase()?h.push(na(b,c)[0]):h.push(O(b,c));return h},
1),c=this.rows(-1);c.pop();h.merge(c,b);return c});o("row()",function(a,b){return cb(this.rows(a,b))});o("row().data()",function(a){var b=this.context;if(a===k)return b.length&&this.length?b[0].aoData[this[0]]._aData:k;var c=b[0].aoData[this[0]];c._aData=a;h.isArray(a)&&c.nTr.id&&N(b[0].rowId)(a,c.nTr.id);da(b[0],this[0],"data");return this});o("row().node()",function(){var a=this.context;return a.length&&this.length?a[0].aoData[this[0]].nTr||null:null});o("row.add()",function(a){a instanceof h&&
a.length&&(a=a[0]);var b=this.iterator("table",function(b){return a.nodeName&&"TR"===a.nodeName.toUpperCase()?na(b,a)[0]:O(b,a)});return this.row(b[0])});var db=function(a,b){var c=a.context;if(c.length&&(c=c[0].aoData[b!==k?b:a[0]])&&c._details)c._details.remove(),c._detailsShow=k,c._details=k},Ub=function(a,b){var c=a.context;if(c.length&&a.length){var d=c[0].aoData[a[0]];if(d._details){(d._detailsShow=b)?d._details.insertAfter(d.nTr):d._details.detach();var e=c[0],f=new s(e),g=e.aoData;f.off("draw.dt.DT_details column-visibility.dt.DT_details destroy.dt.DT_details");
0<D(g,"_details").length&&(f.on("draw.dt.DT_details",function(a,b){e===b&&f.rows({page:"current"}).eq(0).each(function(a){a=g[a];a._detailsShow&&a._details.insertAfter(a.nTr)})}),f.on("column-visibility.dt.DT_details",function(a,b){if(e===b)for(var c,d=V(b),f=0,h=g.length;f<h;f++)c=g[f],c._details&&c._details.children("td[colspan]").attr("colspan",d)}),f.on("destroy.dt.DT_details",function(a,b){if(e===b)for(var c=0,d=g.length;c<d;c++)g[c]._details&&db(f,c)}))}}};o("row().child()",function(a,b){var c=
this.context;if(a===k)return c.length&&this.length?c[0].aoData[this[0]]._details:k;if(!0===a)this.child.show();else if(!1===a)db(this);else if(c.length&&this.length){var d=c[0],c=c[0].aoData[this[0]],e=[],f=function(a,b){if(h.isArray(a)||a instanceof h)for(var c=0,k=a.length;c<k;c++)f(a[c],b);else a.nodeName&&"tr"===a.nodeName.toLowerCase()?e.push(a):(c=h("<tr><td/></tr>").addClass(b),h("td",c).addClass(b).html(a)[0].colSpan=V(d),e.push(c[0]))};f(a,b);c._details&&c._details.detach();c._details=h(e);
c._detailsShow&&c._details.insertAfter(c.nTr)}return this});o(["row().child.show()","row().child().show()"],function(){Ub(this,!0);return this});o(["row().child.hide()","row().child().hide()"],function(){Ub(this,!1);return this});o(["row().child.remove()","row().child().remove()"],function(){db(this);return this});o("row().child.isShown()",function(){var a=this.context;return a.length&&this.length?a[0].aoData[this[0]]._detailsShow||!1:!1});var bc=/^([^:]+):(name|visIdx|visible)$/,Vb=function(a,b,
c,d,e){for(var c=[],d=0,f=e.length;d<f;d++)c.push(B(a,e[d],b));return c};o("columns()",function(a,b){a===k?a="":h.isPlainObject(a)&&(b=a,a="");var b=bb(b),c=this.iterator("table",function(c){var e=a,f=b,g=c.aoColumns,j=D(g,"sName"),i=D(g,"nTh");return ab("column",e,function(a){var b=Ob(a);if(a==="")return Y(g.length);if(b!==null)return[b>=0?b:g.length+b];if(typeof a==="function"){var e=Ba(c,f);return h.map(g,function(b,f){return a(f,Vb(c,f,0,0,e),i[f])?f:null})}var k=typeof a==="string"?a.match(bc):
"";if(k)switch(k[2]){case "visIdx":case "visible":b=parseInt(k[1],10);if(b<0){var n=h.map(g,function(a,b){return a.bVisible?b:null});return[n[n.length+b]]}return[aa(c,b)];case "name":return h.map(j,function(a,b){return a===k[1]?b:null});default:return[]}if(a.nodeName&&a._DT_CellIndex)return[a._DT_CellIndex.column];b=h(i).filter(a).map(function(){return h.inArray(this,i)}).toArray();if(b.length||!a.nodeName)return b;b=h(a).closest("*[data-dt-column]");return b.length?[b.data("dt-column")]:[]},c,f)},
1);c.selector.cols=a;c.selector.opts=b;return c});u("columns().header()","column().header()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].nTh},1)});u("columns().footer()","column().footer()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].nTf},1)});u("columns().data()","column().data()",function(){return this.iterator("column-rows",Vb,1)});u("columns().dataSrc()","column().dataSrc()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].mData},
1)});u("columns().cache()","column().cache()",function(a){return this.iterator("column-rows",function(b,c,d,e,f){return ja(b.aoData,f,"search"===a?"_aFilterData":"_aSortData",c)},1)});u("columns().nodes()","column().nodes()",function(){return this.iterator("column-rows",function(a,b,c,d,e){return ja(a.aoData,e,"anCells",b)},1)});u("columns().visible()","column().visible()",function(a,b){var c=this.iterator("column",function(b,c){if(a===k)return b.aoColumns[c].bVisible;var f=b.aoColumns,g=f[c],j=b.aoData,
i,m,l;if(a!==k&&g.bVisible!==a){if(a){var n=h.inArray(!0,D(f,"bVisible"),c+1);i=0;for(m=j.length;i<m;i++)l=j[i].nTr,f=j[i].anCells,l&&l.insertBefore(f[c],f[n]||null)}else h(D(b.aoData,"anCells",c)).detach();g.bVisible=a;fa(b,b.aoHeader);fa(b,b.aoFooter);b.aiDisplay.length||h(b.nTBody).find("td[colspan]").attr("colspan",V(b));xa(b)}});a!==k&&(this.iterator("column",function(c,e){r(c,null,"column-visibility",[c,e,a,b])}),(b===k||b)&&this.columns.adjust());return c});u("columns().indexes()","column().index()",
function(a){return this.iterator("column",function(b,c){return"visible"===a?ba(b,c):c},1)});o("columns.adjust()",function(){return this.iterator("table",function(a){$(a)},1)});o("column.index()",function(a,b){if(0!==this.context.length){var c=this.context[0];if("fromVisible"===a||"toData"===a)return aa(c,b);if("fromData"===a||"toVisible"===a)return ba(c,b)}});o("column()",function(a,b){return cb(this.columns(a,b))});o("cells()",function(a,b,c){h.isPlainObject(a)&&(a.row===k?(c=a,a=null):(c=b,b=null));
h.isPlainObject(b)&&(c=b,b=null);if(null===b||b===k)return this.iterator("table",function(b){var d=a,e=bb(c),f=b.aoData,g=Ba(b,e),j=Rb(ja(f,g,"anCells")),i=h([].concat.apply([],j)),l,m=b.aoColumns.length,n,o,u,s,r,v;return ab("cell",d,function(a){var c=typeof a==="function";if(a===null||a===k||c){n=[];o=0;for(u=g.length;o<u;o++){l=g[o];for(s=0;s<m;s++){r={row:l,column:s};if(c){v=f[l];a(r,B(b,l,s),v.anCells?v.anCells[s]:null)&&n.push(r)}else n.push(r)}}return n}if(h.isPlainObject(a))return a.column!==
k&&a.row!==k&&h.inArray(a.row,g)!==-1?[a]:[];c=i.filter(a).map(function(a,b){return{row:b._DT_CellIndex.row,column:b._DT_CellIndex.column}}).toArray();if(c.length||!a.nodeName)return c;v=h(a).closest("*[data-dt-row]");return v.length?[{row:v.data("dt-row"),column:v.data("dt-column")}]:[]},b,e)});var d=this.columns(b),e=this.rows(a),f,g,j,i,m;this.iterator("table",function(a,b){f=[];g=0;for(j=e[b].length;g<j;g++){i=0;for(m=d[b].length;i<m;i++)f.push({row:e[b][g],column:d[b][i]})}},1);var l=this.cells(f,
c);h.extend(l.selector,{cols:b,rows:a,opts:c});return l});u("cells().nodes()","cell().node()",function(){return this.iterator("cell",function(a,b,c){return(a=a.aoData[b])&&a.anCells?a.anCells[c]:k},1)});o("cells().data()",function(){return this.iterator("cell",function(a,b,c){return B(a,b,c)},1)});u("cells().cache()","cell().cache()",function(a){a="search"===a?"_aFilterData":"_aSortData";return this.iterator("cell",function(b,c,d){return b.aoData[c][a][d]},1)});u("cells().render()","cell().render()",
function(a){return this.iterator("cell",function(b,c,d){return B(b,c,d,a)},1)});u("cells().indexes()","cell().index()",function(){return this.iterator("cell",function(a,b,c){return{row:b,column:c,columnVisible:ba(a,c)}},1)});u("cells().invalidate()","cell().invalidate()",function(a){return this.iterator("cell",function(b,c,d){da(b,c,a,d)})});o("cell()",function(a,b,c){return cb(this.cells(a,b,c))});o("cell().data()",function(a){var b=this.context,c=this[0];if(a===k)return b.length&&c.length?B(b[0],
c[0].row,c[0].column):k;kb(b[0],c[0].row,c[0].column,a);da(b[0],c[0].row,"data",c[0].column);return this});o("order()",function(a,b){var c=this.context;if(a===k)return 0!==c.length?c[0].aaSorting:k;"number"===typeof a?a=[[a,b]]:a.length&&!h.isArray(a[0])&&(a=Array.prototype.slice.call(arguments));return this.iterator("table",function(b){b.aaSorting=a.slice()})});o("order.listener()",function(a,b,c){return this.iterator("table",function(d){Ma(d,a,b,c)})});o("order.fixed()",function(a){if(!a){var b=
this.context,b=b.length?b[0].aaSortingFixed:k;return h.isArray(b)?{pre:b}:b}return this.iterator("table",function(b){b.aaSortingFixed=h.extend(!0,{},a)})});o(["columns().order()","column().order()"],function(a){var b=this;return this.iterator("table",function(c,d){var e=[];h.each(b[d],function(b,c){e.push([c,a])});c.aaSorting=e})});o("search()",function(a,b,c,d){var e=this.context;return a===k?0!==e.length?e[0].oPreviousSearch.sSearch:k:this.iterator("table",function(e){e.oFeatures.bFilter&&ga(e,
h.extend({},e.oPreviousSearch,{sSearch:a+"",bRegex:null===b?!1:b,bSmart:null===c?!0:c,bCaseInsensitive:null===d?!0:d}),1)})});u("columns().search()","column().search()",function(a,b,c,d){return this.iterator("column",function(e,f){var g=e.aoPreSearchCols;if(a===k)return g[f].sSearch;e.oFeatures.bFilter&&(h.extend(g[f],{sSearch:a+"",bRegex:null===b?!1:b,bSmart:null===c?!0:c,bCaseInsensitive:null===d?!0:d}),ga(e,e.oPreviousSearch,1))})});o("state()",function(){return this.context.length?this.context[0].oSavedState:
null});o("state.clear()",function(){return this.iterator("table",function(a){a.fnStateSaveCallback.call(a.oInstance,a,{})})});o("state.loaded()",function(){return this.context.length?this.context[0].oLoadedState:null});o("state.save()",function(){return this.iterator("table",function(a){xa(a)})});n.versionCheck=n.fnVersionCheck=function(a){for(var b=n.version.split("."),a=a.split("."),c,d,e=0,f=a.length;e<f;e++)if(c=parseInt(b[e],10)||0,d=parseInt(a[e],10)||0,c!==d)return c>d;return!0};n.isDataTable=
n.fnIsDataTable=function(a){var b=h(a).get(0),c=!1;if(a instanceof n.Api)return!0;h.each(n.settings,function(a,e){var f=e.nScrollHead?h("table",e.nScrollHead)[0]:null,g=e.nScrollFoot?h("table",e.nScrollFoot)[0]:null;if(e.nTable===b||f===b||g===b)c=!0});return c};n.tables=n.fnTables=function(a){var b=!1;h.isPlainObject(a)&&(b=a.api,a=a.visible);var c=h.map(n.settings,function(b){if(!a||a&&h(b.nTable).is(":visible"))return b.nTable});return b?new s(c):c};n.camelToHungarian=J;o("$()",function(a,b){var c=
this.rows(b).nodes(),c=h(c);return h([].concat(c.filter(a).toArray(),c.find(a).toArray()))});h.each(["on","one","off"],function(a,b){o(b+"()",function(){var a=Array.prototype.slice.call(arguments);a[0]=h.map(a[0].split(/\s/),function(a){return!a.match(/\.dt\b/)?a+".dt":a}).join(" ");var d=h(this.tables().nodes());d[b].apply(d,a);return this})});o("clear()",function(){return this.iterator("table",function(a){oa(a)})});o("settings()",function(){return new s(this.context,this.context)});o("init()",function(){var a=
this.context;return a.length?a[0].oInit:null});o("data()",function(){return this.iterator("table",function(a){return D(a.aoData,"_aData")}).flatten()});o("destroy()",function(a){a=a||!1;return this.iterator("table",function(b){var c=b.nTableWrapper.parentNode,d=b.oClasses,e=b.nTable,f=b.nTBody,g=b.nTHead,j=b.nTFoot,i=h(e),f=h(f),k=h(b.nTableWrapper),l=h.map(b.aoData,function(a){return a.nTr}),o;b.bDestroying=!0;r(b,"aoDestroyCallback","destroy",[b]);a||(new s(b)).columns().visible(!0);k.off(".DT").find(":not(tbody *)").off(".DT");
h(E).off(".DT-"+b.sInstance);e!=g.parentNode&&(i.children("thead").detach(),i.append(g));j&&e!=j.parentNode&&(i.children("tfoot").detach(),i.append(j));b.aaSorting=[];b.aaSortingFixed=[];wa(b);h(l).removeClass(b.asStripeClasses.join(" "));h("th, td",g).removeClass(d.sSortable+" "+d.sSortableAsc+" "+d.sSortableDesc+" "+d.sSortableNone);f.children().detach();f.append(l);g=a?"remove":"detach";i[g]();k[g]();!a&&c&&(c.insertBefore(e,b.nTableReinsertBefore),i.css("width",b.sDestroyWidth).removeClass(d.sTable),
(o=b.asDestroyStripes.length)&&f.children().each(function(a){h(this).addClass(b.asDestroyStripes[a%o])}));c=h.inArray(b,n.settings);-1!==c&&n.settings.splice(c,1)})});h.each(["column","row","cell"],function(a,b){o(b+"s().every()",function(a){var d=this.selector.opts,e=this;return this.iterator(b,function(f,g,h,i,m){a.call(e[b](g,"cell"===b?h:d,"cell"===b?d:k),g,h,i,m)})})});o("i18n()",function(a,b,c){var d=this.context[0],a=S(a)(d.oLanguage);a===k&&(a=b);c!==k&&h.isPlainObject(a)&&(a=a[c]!==k?a[c]:
a._);return a.replace("%d",c)});n.version="1.10.19";n.settings=[];n.models={};n.models.oSearch={bCaseInsensitive:!0,sSearch:"",bRegex:!1,bSmart:!0};n.models.oRow={nTr:null,anCells:null,_aData:[],_aSortData:null,_aFilterData:null,_sFilterRow:null,_sRowStripe:"",src:null,idx:-1};n.models.oColumn={idx:null,aDataSort:null,asSorting:null,bSearchable:null,bSortable:null,bVisible:null,_sManualType:null,_bAttrSrc:!1,fnCreatedCell:null,fnGetData:null,fnSetData:null,mData:null,mRender:null,nTh:null,nTf:null,
sClass:null,sContentPadding:null,sDefaultContent:null,sName:null,sSortDataType:"std",sSortingClass:null,sSortingClassJUI:null,sTitle:null,sType:null,sWidth:null,sWidthOrig:null};n.defaults={aaData:null,aaSorting:[[0,"asc"]],aaSortingFixed:[],ajax:null,aLengthMenu:[10,25,50,100],aoColumns:null,aoColumnDefs:null,aoSearchCols:[],asStripeClasses:null,bAutoWidth:!0,bDeferRender:!1,bDestroy:!1,bFilter:!0,bInfo:!0,bLengthChange:!0,bPaginate:!0,bProcessing:!1,bRetrieve:!1,bScrollCollapse:!1,bServerSide:!1,
bSort:!0,bSortMulti:!0,bSortCellsTop:!1,bSortClasses:!0,bStateSave:!1,fnCreatedRow:null,fnDrawCallback:null,fnFooterCallback:null,fnFormatNumber:function(a){return a.toString().replace(/\B(?=(\d{3})+(?!\d))/g,this.oLanguage.sThousands)},fnHeaderCallback:null,fnInfoCallback:null,fnInitComplete:null,fnPreDrawCallback:null,fnRowCallback:null,fnServerData:null,fnServerParams:null,fnStateLoadCallback:function(a){try{return JSON.parse((-1===a.iStateDuration?sessionStorage:localStorage).getItem("DataTables_"+
a.sInstance+"_"+location.pathname))}catch(b){}},fnStateLoadParams:null,fnStateLoaded:null,fnStateSaveCallback:function(a,b){try{(-1===a.iStateDuration?sessionStorage:localStorage).setItem("DataTables_"+a.sInstance+"_"+location.pathname,JSON.stringify(b))}catch(c){}},fnStateSaveParams:null,iStateDuration:7200,iDeferLoading:null,iDisplayLength:10,iDisplayStart:0,iTabIndex:0,oClasses:{},oLanguage:{oAria:{sSortAscending:": activate to sort column ascending",sSortDescending:": activate to sort column descending"},
oPaginate:{sFirst:"First",sLast:"Last",sNext:"Next",sPrevious:"Previous"},sEmptyTable:"No data available in table",sInfo:"Showing _START_ to _END_ of _TOTAL_ entries",sInfoEmpty:"Showing 0 to 0 of 0 entries",sInfoFiltered:"(filtered from _MAX_ total entries)",sInfoPostFix:"",sDecimal:"",sThousands:",",sLengthMenu:"Show _MENU_ entries",sLoadingRecords:"Loading...",sProcessing:"Processing...",sSearch:"Search:",sSearchPlaceholder:"",sUrl:"",sZeroRecords:"No matching records found"},oSearch:h.extend({},
n.models.oSearch),sAjaxDataProp:"data",sAjaxSource:null,sDom:"lfrtip",searchDelay:null,sPaginationType:"simple_numbers",sScrollX:"",sScrollXInner:"",sScrollY:"",sServerMethod:"GET",renderer:null,rowId:"DT_RowId"};Z(n.defaults);n.defaults.column={aDataSort:null,iDataSort:-1,asSorting:["asc","desc"],bSearchable:!0,bSortable:!0,bVisible:!0,fnCreatedCell:null,mData:null,mRender:null,sCellType:"td",sClass:"",sContentPadding:"",sDefaultContent:null,sName:"",sSortDataType:"std",sTitle:null,sType:null,sWidth:null};
Z(n.defaults.column);n.models.oSettings={oFeatures:{bAutoWidth:null,bDeferRender:null,bFilter:null,bInfo:null,bLengthChange:null,bPaginate:null,bProcessing:null,bServerSide:null,bSort:null,bSortMulti:null,bSortClasses:null,bStateSave:null},oScroll:{bCollapse:null,iBarWidth:0,sX:null,sXInner:null,sY:null},oLanguage:{fnInfoCallback:null},oBrowser:{bScrollOversize:!1,bScrollbarLeft:!1,bBounding:!1,barWidth:0},ajax:null,aanFeatures:[],aoData:[],aiDisplay:[],aiDisplayMaster:[],aIds:{},aoColumns:[],aoHeader:[],
aoFooter:[],oPreviousSearch:{},aoPreSearchCols:[],aaSorting:null,aaSortingFixed:[],asStripeClasses:null,asDestroyStripes:[],sDestroyWidth:0,aoRowCallback:[],aoHeaderCallback:[],aoFooterCallback:[],aoDrawCallback:[],aoRowCreatedCallback:[],aoPreDrawCallback:[],aoInitComplete:[],aoStateSaveParams:[],aoStateLoadParams:[],aoStateLoaded:[],sTableId:"",nTable:null,nTHead:null,nTFoot:null,nTBody:null,nTableWrapper:null,bDeferLoading:!1,bInitialised:!1,aoOpenRows:[],sDom:null,searchDelay:null,sPaginationType:"two_button",
iStateDuration:0,aoStateSave:[],aoStateLoad:[],oSavedState:null,oLoadedState:null,sAjaxSource:null,sAjaxDataProp:null,bAjaxDataGet:!0,jqXHR:null,json:k,oAjaxData:k,fnServerData:null,aoServerParams:[],sServerMethod:null,fnFormatNumber:null,aLengthMenu:null,iDraw:0,bDrawing:!1,iDrawError:-1,_iDisplayLength:10,_iDisplayStart:0,_iRecordsTotal:0,_iRecordsDisplay:0,oClasses:{},bFiltered:!1,bSorted:!1,bSortCellsTop:null,oInit:null,aoDestroyCallback:[],fnRecordsTotal:function(){return"ssp"==y(this)?1*this._iRecordsTotal:
this.aiDisplayMaster.length},fnRecordsDisplay:function(){return"ssp"==y(this)?1*this._iRecordsDisplay:this.aiDisplay.length},fnDisplayEnd:function(){var a=this._iDisplayLength,b=this._iDisplayStart,c=b+a,d=this.aiDisplay.length,e=this.oFeatures,f=e.bPaginate;return e.bServerSide?!1===f||-1===a?b+d:Math.min(b+a,this._iRecordsDisplay):!f||c>d||-1===a?d:c},oInstance:null,sInstance:null,iTabIndex:0,nScrollHead:null,nScrollFoot:null,aLastSort:[],oPlugins:{},rowIdFn:null,rowId:null};n.ext=x={buttons:{},
classes:{},builder:"-source-",errMode:"alert",feature:[],search:[],selector:{cell:[],column:[],row:[]},internal:{},legacy:{ajax:null},pager:{},renderer:{pageButton:{},header:{}},order:{},type:{detect:[],search:{},order:{}},_unique:0,fnVersionCheck:n.fnVersionCheck,iApiIndex:0,oJUIClasses:{},sVersion:n.version};h.extend(x,{afnFiltering:x.search,aTypes:x.type.detect,ofnSearch:x.type.search,oSort:x.type.order,afnSortData:x.order,aoFeatures:x.feature,oApi:x.internal,oStdClasses:x.classes,oPagination:x.pager});
h.extend(n.ext.classes,{sTable:"dataTable",sNoFooter:"no-footer",sPageButton:"paginate_button",sPageButtonActive:"current",sPageButtonDisabled:"disabled",sStripeOdd:"odd",sStripeEven:"even",sRowEmpty:"dataTables_empty",sWrapper:"dataTables_wrapper",sFilter:"dataTables_filter",sInfo:"dataTables_info",sPaging:"dataTables_paginate paging_",sLength:"dataTables_length",sProcessing:"dataTables_processing",sSortAsc:"sorting_asc",sSortDesc:"sorting_desc",sSortable:"sorting",sSortableAsc:"sorting_asc_disabled",
sSortableDesc:"sorting_desc_disabled",sSortableNone:"sorting_disabled",sSortColumn:"sorting_",sFilterInput:"",sLengthSelect:"",sScrollWrapper:"dataTables_scroll",sScrollHead:"dataTables_scrollHead",sScrollHeadInner:"dataTables_scrollHeadInner",sScrollBody:"dataTables_scrollBody",sScrollFoot:"dataTables_scrollFoot",sScrollFootInner:"dataTables_scrollFootInner",sHeaderTH:"",sFooterTH:"",sSortJUIAsc:"",sSortJUIDesc:"",sSortJUI:"",sSortJUIAscAllowed:"",sSortJUIDescAllowed:"",sSortJUIWrapper:"",sSortIcon:"",
sJUIHeader:"",sJUIFooter:""});var Lb=n.ext.pager;h.extend(Lb,{simple:function(){return["previous","next"]},full:function(){return["first","previous","next","last"]},numbers:function(a,b){return[ia(a,b)]},simple_numbers:function(a,b){return["previous",ia(a,b),"next"]},full_numbers:function(a,b){return["first","previous",ia(a,b),"next","last"]},first_last_numbers:function(a,b){return["first",ia(a,b),"last"]},_numbers:ia,numbers_length:7});h.extend(!0,n.ext.renderer,{pageButton:{_:function(a,b,c,d,e,
f){var g=a.oClasses,j=a.oLanguage.oPaginate,i=a.oLanguage.oAria.paginate||{},m,l,n=0,o=function(b,d){var k,s,u,r,v=function(b){Ta(a,b.data.action,true)};k=0;for(s=d.length;k<s;k++){r=d[k];if(h.isArray(r)){u=h("<"+(r.DT_el||"div")+"/>").appendTo(b);o(u,r)}else{m=null;l="";switch(r){case "ellipsis":b.append('<span class="ellipsis">&#x2026;</span>');break;case "first":m=j.sFirst;l=r+(e>0?"":" "+g.sPageButtonDisabled);break;case "previous":m=j.sPrevious;l=r+(e>0?"":" "+g.sPageButtonDisabled);break;case "next":m=
j.sNext;l=r+(e<f-1?"":" "+g.sPageButtonDisabled);break;case "last":m=j.sLast;l=r+(e<f-1?"":" "+g.sPageButtonDisabled);break;default:m=r+1;l=e===r?g.sPageButtonActive:""}if(m!==null){u=h("<a>",{"class":g.sPageButton+" "+l,"aria-controls":a.sTableId,"aria-label":i[r],"data-dt-idx":n,tabindex:a.iTabIndex,id:c===0&&typeof r==="string"?a.sTableId+"_"+r:null}).html(m).appendTo(b);Wa(u,{action:r},v);n++}}}},s;try{s=h(b).find(H.activeElement).data("dt-idx")}catch(u){}o(h(b).empty(),d);s!==k&&h(b).find("[data-dt-idx="+
s+"]").focus()}}});h.extend(n.ext.type.detect,[function(a,b){var c=b.oLanguage.sDecimal;return $a(a,c)?"num"+c:null},function(a){if(a&&!(a instanceof Date)&&!Zb.test(a))return null;var b=Date.parse(a);return null!==b&&!isNaN(b)||M(a)?"date":null},function(a,b){var c=b.oLanguage.sDecimal;return $a(a,c,!0)?"num-fmt"+c:null},function(a,b){var c=b.oLanguage.sDecimal;return Qb(a,c)?"html-num"+c:null},function(a,b){var c=b.oLanguage.sDecimal;return Qb(a,c,!0)?"html-num-fmt"+c:null},function(a){return M(a)||
"string"===typeof a&&-1!==a.indexOf("<")?"html":null}]);h.extend(n.ext.type.search,{html:function(a){return M(a)?a:"string"===typeof a?a.replace(Nb," ").replace(Aa,""):""},string:function(a){return M(a)?a:"string"===typeof a?a.replace(Nb," "):a}});var za=function(a,b,c,d){if(0!==a&&(!a||"-"===a))return-Infinity;b&&(a=Pb(a,b));a.replace&&(c&&(a=a.replace(c,"")),d&&(a=a.replace(d,"")));return 1*a};h.extend(x.type.order,{"date-pre":function(a){a=Date.parse(a);return isNaN(a)?-Infinity:a},"html-pre":function(a){return M(a)?
"":a.replace?a.replace(/<.*?>/g,"").toLowerCase():a+""},"string-pre":function(a){return M(a)?"":"string"===typeof a?a.toLowerCase():!a.toString?"":a.toString()},"string-asc":function(a,b){return a<b?-1:a>b?1:0},"string-desc":function(a,b){return a<b?1:a>b?-1:0}});Da("");h.extend(!0,n.ext.renderer,{header:{_:function(a,b,c,d){h(a.nTable).on("order.dt.DT",function(e,f,g,h){if(a===f){e=c.idx;b.removeClass(c.sSortingClass+" "+d.sSortAsc+" "+d.sSortDesc).addClass(h[e]=="asc"?d.sSortAsc:h[e]=="desc"?d.sSortDesc:
c.sSortingClass)}})},jqueryui:function(a,b,c,d){h("<div/>").addClass(d.sSortJUIWrapper).append(b.contents()).append(h("<span/>").addClass(d.sSortIcon+" "+c.sSortingClassJUI)).appendTo(b);h(a.nTable).on("order.dt.DT",function(e,f,g,h){if(a===f){e=c.idx;b.removeClass(d.sSortAsc+" "+d.sSortDesc).addClass(h[e]=="asc"?d.sSortAsc:h[e]=="desc"?d.sSortDesc:c.sSortingClass);b.find("span."+d.sSortIcon).removeClass(d.sSortJUIAsc+" "+d.sSortJUIDesc+" "+d.sSortJUI+" "+d.sSortJUIAscAllowed+" "+d.sSortJUIDescAllowed).addClass(h[e]==
"asc"?d.sSortJUIAsc:h[e]=="desc"?d.sSortJUIDesc:c.sSortingClassJUI)}})}}});var eb=function(a){return"string"===typeof a?a.replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;"):a};n.render={number:function(a,b,c,d,e){return{display:function(f){if("number"!==typeof f&&"string"!==typeof f)return f;var g=0>f?"-":"",h=parseFloat(f);if(isNaN(h))return eb(f);h=h.toFixed(c);f=Math.abs(h);h=parseInt(f,10);f=c?b+(f-h).toFixed(c).substring(2):"";return g+(d||"")+h.toString().replace(/\B(?=(\d{3})+(?!\d))/g,
a)+f+(e||"")}}},text:function(){return{display:eb,filter:eb}}};h.extend(n.ext.internal,{_fnExternApiFunc:Mb,_fnBuildAjax:sa,_fnAjaxUpdate:mb,_fnAjaxParameters:vb,_fnAjaxUpdateDraw:wb,_fnAjaxDataSrc:ta,_fnAddColumn:Ea,_fnColumnOptions:ka,_fnAdjustColumnSizing:$,_fnVisibleToColumnIndex:aa,_fnColumnIndexToVisible:ba,_fnVisbleColumns:V,_fnGetColumns:ma,_fnColumnTypes:Ga,_fnApplyColumnDefs:jb,_fnHungarianMap:Z,_fnCamelToHungarian:J,_fnLanguageCompat:Ca,_fnBrowserDetect:hb,_fnAddData:O,_fnAddTr:na,_fnNodeToDataIndex:function(a,
b){return b._DT_RowIndex!==k?b._DT_RowIndex:null},_fnNodeToColumnIndex:function(a,b,c){return h.inArray(c,a.aoData[b].anCells)},_fnGetCellData:B,_fnSetCellData:kb,_fnSplitObjNotation:Ja,_fnGetObjectDataFn:S,_fnSetObjectDataFn:N,_fnGetDataMaster:Ka,_fnClearTable:oa,_fnDeleteIndex:pa,_fnInvalidate:da,_fnGetRowElements:Ia,_fnCreateTr:Ha,_fnBuildHead:lb,_fnDrawHead:fa,_fnDraw:P,_fnReDraw:T,_fnAddOptionsHtml:ob,_fnDetectHeader:ea,_fnGetUniqueThs:ra,_fnFeatureHtmlFilter:qb,_fnFilterComplete:ga,_fnFilterCustom:zb,
_fnFilterColumn:yb,_fnFilter:xb,_fnFilterCreateSearch:Pa,_fnEscapeRegex:Qa,_fnFilterData:Ab,_fnFeatureHtmlInfo:tb,_fnUpdateInfo:Db,_fnInfoMacros:Eb,_fnInitialise:ha,_fnInitComplete:ua,_fnLengthChange:Ra,_fnFeatureHtmlLength:pb,_fnFeatureHtmlPaginate:ub,_fnPageChange:Ta,_fnFeatureHtmlProcessing:rb,_fnProcessingDisplay:C,_fnFeatureHtmlTable:sb,_fnScrollDraw:la,_fnApplyToChildren:I,_fnCalculateColumnWidths:Fa,_fnThrottle:Oa,_fnConvertToWidth:Fb,_fnGetWidestNode:Gb,_fnGetMaxLenString:Hb,_fnStringToCss:v,
_fnSortFlatten:X,_fnSort:nb,_fnSortAria:Jb,_fnSortListener:Va,_fnSortAttachListener:Ma,_fnSortingClasses:wa,_fnSortData:Ib,_fnSaveState:xa,_fnLoadState:Kb,_fnSettingsFromNode:ya,_fnLog:K,_fnMap:F,_fnBindAction:Wa,_fnCallbackReg:z,_fnCallbackFire:r,_fnLengthOverflow:Sa,_fnRenderer:Na,_fnDataSource:y,_fnRowAttributes:La,_fnExtend:Xa,_fnCalculateEnd:function(){}});h.fn.dataTable=n;n.$=h;h.fn.dataTableSettings=n.settings;h.fn.dataTableExt=n.ext;h.fn.DataTable=function(a){return h(this).dataTable(a).api()};
h.each(n,function(a,b){h.fn.DataTable[a]=b});return h.fn.dataTable});

Some files were not shown because too many files have changed in this diff Show More