Greasy Fork

网课视频学习助手

支持:乌鲁木齐建设职业培训中心、山东开放大学、师学通国培计划、山东省文化和旅游厅继续教育公共服务平台、甘肃省公务员网络培训网、山东省教师教育网、广东人才继续教育网、四平农村成人高等专科学校、继续教育学习平台、兰州大学、安徽继续教育在线、江西省补贴性线上职业培训、贵州继续教育网、河南专技培训、泰安市专业技术人员、河南省地矿系统专业技术、自贡开放大学、河南新闻出版学校、天水博通职业技术培训学校、兰州资源环境职业技术大学、国家智慧教育公共服务平台、北京教师学习网、甘肃庆阳、兰州文理学院继续教育、浙江省住房和城乡建设行业专业技术人员继续教育系统、学习图强、优学院、福建师范继续教育、河南新闻出版学校、漯河远程教育、河南省专业技术人员学习公社、良医教育、梦想在线、专技天下、广西住房城乡建设行业专业人员、兰州理工大学、广东远程职业培训平台、良师在线、全国文化和旅游市场在线培训系统、贵州省专业技术人员继续教育平台。

目前为 2023-10-05 提交的版本。查看 最新版本

// ==UserScript==
// @name         网课视频学习助手
// @namespace    http://tampermonkey.net/
// @version      3.4.9
// @description  支持:乌鲁木齐建设职业培训中心、山东开放大学、师学通国培计划、山东省文化和旅游厅继续教育公共服务平台、甘肃省公务员网络培训网、山东省教师教育网、广东人才继续教育网、四平农村成人高等专科学校、继续教育学习平台、兰州大学、安徽继续教育在线、江西省补贴性线上职业培训、贵州继续教育网、河南专技培训、泰安市专业技术人员、河南省地矿系统专业技术、自贡开放大学、河南新闻出版学校、天水博通职业技术培训学校、兰州资源环境职业技术大学、国家智慧教育公共服务平台、北京教师学习网、甘肃庆阳、兰州文理学院继续教育、浙江省住房和城乡建设行业专业技术人员继续教育系统、学习图强、优学院、福建师范继续教育、河南新闻出版学校、漯河远程教育、河南省专业技术人员学习公社、良医教育、梦想在线、专技天下、广西住房城乡建设行业专业人员、兰州理工大学、广东远程职业培训平台、良师在线、全国文化和旅游市场在线培训系统、贵州省专业技术人员继续教育平台。
// @author       
// @match        *://*/*
// @grant        GM_xmlhttpRequest
// @grant        GM_openInTab
// @grant        GM_setValue
// @grant        GM_getValue
// @grant        window.close
// @noframes
// @icon         https://www.zhihuishu.com/favicon.ico
// @connect      www.gaozhiwang.top
// @connect      localhost
// @license      MIT
// ==/UserScript==


"use strict";
var __awaiter = this && this.__awaiter || function (e, t, n, l) {
    return new (n || (n = Promise))(function (i, o) {
        function r(e) {
            try {
                s(l.next(e))
            } catch (e) {
                o(e)
            }
        }

        function a(e) {
            try {
                s(l.throw(e))
            } catch (e) {
                o(e)
            }
        }

        function s(e) {
            var t;
            e.done ? i(e.value) : (t = e.value, t instanceof n ? t : new n(function (e) {
                e(t)
            })).then(r, a)
        }

        s((l = l.apply(e, t || [])).next())
    })
};
!function () {
    let basehost = "http://www.gaozhiwang.top"
    let bserUrl = "http://www.gaozhiwang.top:7001"
    const panelcss = "\n        .myTool{\n            background: #fff;\n            width: 234px;\n            font-size: 14px;\n            display: flex;\n            flex-direction: column;\n            align-items: center;\n            position: fixed;\n            z-index: 999;\n            top: 70px;\n            left: 44px;\n            box-sizing: border-box;\n            padding: 15px 9px;\n            border-radius: 5px;\n            box-shadow: 0 0 9px rgba(0,0,0,.5);\n        }\n        .controls{\n            position: absolute;\n            right: 12px;\n            font-size: 27px;\n            top: 9px;\n            cursor: pointer;\n            transition: all 0.4s;\n        }\n        .controls:hover{\n            color: #1f74c;\n            transform: rotate(360deg);\n        }\n        \n        .myTool-content{\n            transition: all 0.4s;\n            overflow: hidden;\n        }\n        .mytoolkeyipt{\n            width: 130px;\n            height: 22px !important;\n            outline: none;\n            padding: 0px 3px;\n            border: 1px solid #757575FF;\n            border-radius: 3px;\n            font-size: 13px;\n            padding: 0px 3px;\n            margin-right: 5px;\n            margin-top: 2px;\n        }\n        .addkey-btn{\n            color: #fff;\n            background: #1f74ca;\n        }\n        .removkey-btn{\n            color: #000;\n            display: none;\n            background: #eee;\n        }\n        .handleKeyBtn{\n            width: 54px;\n            height: 24px;\n            margin-top: 2px;\n            border: none;\n            font-size: 12px;\n            border-radius: 2px;\n            cursor: pointer;\n        }\n        \n        .handleSpeedUp{\n            background: orange;\n            font-size: 12px;\n            color: #fff;\n            padding: 4px 15px;\n            border-radius: 5px;\n            margin: 0 auto;\n            max-width: 80px;\n            margin-top: 10px;\n            cursor: pointer;\n            text-align: center;\n        }\n        .ctxTipWrap{\n            min-width: 200px;\n            min-height: 50px;\n            text-align: center;\n            line-height: 50px;\n            background: #fff;\n            position: fixed;\n            z-index: 999;\n            left: 50%;\n            top: 50%;\n            border-radius: 9px;\n            box-shadow: 0 0 5px rgba(0,0,0,.6);\n            display:none;\n        }\n        .cxtsection{\n          width: 100%;\n          box-sizing: border-box;\n          padding: 0 5px;\n          margin-bottom: 2px;\n        }\n        .cxtsection .ctx-title{\n          text-align: left;\n          margin-top: 12px;\n          font-size: 12px;\n          color: #4e5969;\n          border-left: 2px solid #1f74ca;\n          border-radius: 2px;\n          padding-left: 3px;\n          line-height: 16px;\n        }\n        .ctxsection2{\n          display: flex;\n          justify-content: space-between;\n        }\n        .ctxsection2 .speed-select{\n          width: 50%;\n          height: 22px !important;\n          outline: none;\n          position: relative;\n          top: 10px;\n          border: 1px solid #757575FF;\n          border-radius: 3px;\n          padding-left: 10px;\n        }\n        .ctxsection3{\n            display: flex;\n            align-items: center;\n            justify-content: space-between;\n        }\n        .feedbackBtn{\n            font-size: 13px;\n            position: relative;\n            top: 5px;\n            cursor: pointer;\n            color: #000;\n        }\n        a{\n            text-decoration: none;\n        }\n    ",
        panelhtml = `\n<div class="myTool">\n    <div class="controls ctxcontrols">×</div>\n    <div class=''><a style="color: black;" href="${basehost}" target="_blank">📺高智Ai自动学习程序</a></div>\n    \n    <div class="myTool-content">\n        <div class="nokey">\n            <div class="btns">\n                <div class="btn1"\n                     style="text-align: center;color: #1776FDFF;text-decoration: underline;margin: 5px 0;cursor: pointer;">\n                    <a href="${basehost}" target="_blank">点击获取Key</a>\n                </div>\n                <a href="${basehost}" id="slogan" target="_blank" style="text-decoration: none;">\n         \n                </a>\n            </div>\n        </div>\n    \n        <div class="cxtsection ctxsection1">\n          <div class="ctx-title title3">\n            输入Key:\n          </div>\n          <div class="ipt-wrap" style="display: flex;align-items: center;justify-content: space-between;">\n            <input class="mytoolkeyipt" />\n            <div style="width: 120px;height: 18px;margin-right: 5px;display: none;" class="mytoolkey"></div>\n            <button class="handleKeyBtn addkey-btn" id="addKey">绑定</button>\n            <button class="handleKeyBtn removkey-btn" id="removeKey">解绑</button>\n          </div>\n        </div>\n\n        <div class="cxtsection ctxsection2">\n          <div class="ctx-title">\n            设置倍速:\n          </div>\n          <select name="" id="ctxspeed" class="speed-select">\n            <option value="1" class="option">\n              × 1.0\n            </option>\n            <option value="5" class="option">\n              × 5.00\n            </option>\n            <option value="10" class="option" selected="selected">\n              × 10.00\n            </option>\n            <option value="16" class="option">\n              × 16.00\n            </option>\n          </select>\n        </div>\n        \n        <div class="cxtsection ctxsection3">\n          <div class="ctx-title">\n            意见反馈:\n          </div>\n          <a href="${basehost}"><div class="feedbackBtn">去反馈</div></a>\n        </div>\n        \n        <div class="scriptTip" style="display: none;border-radius: 4px;margin-top: 9px;font-size: 12px;background: rgba(108,201,255,0.5);box-sizing: border-box;padding: 5px;">\n            <div class="title">提示:</div>\n            <p style="margin: 6px 0;">1.兴趣课全网目前仅支持最高1.5倍速</p>\n        </div>\n        <div class="cxtsection cxtsection3" style="display: none"> \n          <div class="ctx-title">\n            当前作答题目:\n          </div>\n          <div class="ctxtopic-name">贵州省贵阳市毓秀路27号贵州省人才大市场4楼</div>\n        </div>\n        \n        <div class="handleSpeedUp">点击加速</div>\n    </div>\n    \n    <div id="ctxTipWrap" class="ctxTipWrap"></div>\n</div>\n    `;
    let ElementObj = {}, Internetcourse = {
        zhihuishu: {id: 1, mainClass: "zhihuishu", name: "智慧树", host: ["zhihuishu.com"]},
        uxueyuan: {id: 2, mainClass: "uxueyuan", name: "U学院", host: ["ua.ulearning.cn"]},
        ningmengwencai: {
            id: 3,
            mainClass: "ningmengwencai",
            name: "柠檬文才",
            host: ["www.wencaischool.net", "study.wencaischool.net", "learning.wencaischool.net"]
        },
        xuexitong: {id: 4, mainClass: "xuexitong", name: "学习通", host: []},
        henanxinxueyuan: {id: 5, mainClass: "henanxinxueyuan", name: "河南新闻出版学校", host: ["218.29.91.122:81"]},
        fujianshifan: {id: 6, mainClass: "fujianshifan", name: "福建师范继续教育", host: ["neo.fjnu.cn"]},
        gxcic: {
            id: 7,
            mainClass: "gxcic",
            name: "广西住房城乡建设行业专业人员继续教育平台",
            host: ["jxjy.gxcic.net:9092"]
        },
        luohexueyuan: {id: 8, mainClass: "luohexueyuan", name: "漯河学院", host: ["lhycjy.cloudwis.tech"]},
        mengxiangzaixian: {id: 9, mainClass: "mengxiangzaixian", name: "梦想在线", host: ["www.mxdxedu.com"]},
        fjsf2: {id: 6, mainClass: "fjsf2", name: "fjnu", host: ["nto.fjnu.cn"]},
        liangyijiaoyu: {id: 11, mainClass: "liangyijiaoyu", name: "良医教育", host: ["www.sclyedu.com"]},
        zjzx: {id: 12, mainClass: "zjzx", name: "安徽专业技术人员继续教育在线", host: ["www.zjzx.ah.cn"]},
        zxpxmr: {id: 13, mainClass: "zxpxmr", name: "全国文化和旅游市场在线培训系统", host: ["zxpx.mr.mct.gov.cn"]},
        ggfw: {id: 14, mainClass: "ggfw", name: "广东远程职业培训平台", host: ["ggfw.hrss.gd.gov.cn"]},
        liangshizaixian: {id: 15, mainClass: "liangshizaixian", name: "良师在线", host: []},
        gzjxjy: {
            id: 16,
            mainClass: "gzjxjy",
            name: "贵州省专业技术人员继续教育平台",
            host: ["gzjxjy.gzsrs.cn", "www.gzjxjy.gzsrs.cn"],
            runtype: -1
        },
        mingshiclass: {id: 17, mainClass: "mingshiclass", name: "名师课堂", host: ["saas.mingshiclass.com"]},
        qiangshi: {id: 18, mainClass: "qiangshi", name: "强师", host: ["zjdx-kfkc.webtrn.cn/"]},
        lanzhgoulgjs: {
            id: 19,
            mainClass: "lanzhgoulgjs",
            name: "兰州理工大学教师",
            host: ["gs.chinamde.cn", "gansu.chinamde.cn"]
        },
        beijingjiaoshi: {id: 20, mainClass: "beijingjiaoshi", name: "北京教师学习网", host: []},
        qingyangzgzjzj: {
            id: 21,
            mainClass: "qingyangzgzjzj",
            name: "甘肃庆阳继续教育",
            host: ["gsmtdzj.zgzjzj.com", "qingyang.zgzjzj.com/", "lzksj.zgzjzj.com", "pl.zgzjzj.com", "www.zgzjzj.com", "bys.zgzjzj.com", "www.zgzjzj.com"]
        },
        lanzhouwenli: {id: 22, mainClass: "lanzhouwenli", name: "兰州文理学院继续教育", host: ["jxjypt.luas.edu.cn"]},
        xuexituqiang: {id: 23, mainClass: "xuexituqiang", name: "学习图强", host: ["user.hzboolan.cn"]},
        guojiazhihuijiaoyu: {
            id: 24,
            mainClass: "guojiazhihuijiaoyu",
            name: "国家智慧教育公共服务平台",
            host: ["teacher.vocational.smartedu.cn"]
        },
        lanzhouchengren: {
            id: 25,
            mainClass: "lanzhouchengren",
            name: "兰州大学成人教育",
            host: ["courseresource.zhihuishu.com", "lzulms.chinaedu.net"]
        },
        tsbtchinamde: {
            id: 26,
            mainClass: "tsbtchinamde",
            name: "天水博通职业技术培训学校",
            host: ["tsbt.chinamde.cn", "btzjc.tsbtgs.cn", "www.tsbtgs.cn"]
        },
        henangongshe: {
            id: 27,
            mainClass: "henangongshe",
            name: "河南省专业技术人员学习公社",
            host: [],
            remark: "和北京教师一样的"
        },
        zjzjsrc: {
            id: 28,
            mainClass: "zjzjsrc",
            name: "浙江省住房和城乡建设行业专业技术人员继续教育系统",
            host: ["zj.zjjsrc.cn"]
        },
        lzrejxjy: {
            id: 29,
            mainClass: "lzrejxjy",
            name: "兰州资源环境职业技术大学",
            host: ["lzrejxjy.webtrn.cn", "zjyxldpx-kfkc.webtrn.cn"]
        },
        xuzhouyikedaxue: {
            id: 30,
            mainClass: "xuzhouyikedaxue",
            name: "徐州医科大学",
            host: ["cjyxljy.xzhmu.edu.cn", "ycjy.lut.edu.cn", "cj1047-kfkc.webtrn.cn"]
        },
        xibeisfzyjy: {
            id: 31,
            mainClass: "xibeisfzyjy",
            name: "西北师范大学专业技术人员继续教育基地",
            host: ["sdzj.nweduline.com", "xbsd.lt-edu.net", "preview.dccloud.com.cn"]
        },
        zgrtvu: {id: 32, mainClass: "zgrtvu", name: "自贡开发大学", host: ["zgrtvu.peixunyun.cn", "ua.peixunyun.cn"]},
        henandikuang: {
            id: 33,
            mainClass: "henandikuang",
            name: "河南省地矿系统专业技术人员继续教育网络学习平台",
            host: ["dkgc.zyk.ghlearning.com"]
        },
        tazhuanjipx: {
            id: 34,
            mainClass: "tazhuanjipx",
            name: "泰安市专业技术人员续教育培训平台",
            host: ["ta.zhuanjipx.com"]
        },
        henanzhuanjipeixun: {
            id: 35,
            mainClass: "henanzhuanjipeixun",
            name: "河南专技培训",
            host: ["www.jxjyedu.org.cn"]
        },
        zhejiangtjj: {
            id: 32,
            mainClass: "zhejiangtjj",
            name: "浙江统计教育培训在线学习中心",
            host: ["edu.tjj.zj.gov.cn"]
        },
        guizhouzxjxjy: {id: 37, mainClass: "guizhouzxjxjy", name: "贵州继续教育网", host: ["guizhou.zxjxjy.com"]},
        jiangxizhipeizaixian: {
            id: 38,
            mainClass: "jiangxizhipeizaixian",
            name: " 江西职业培训",
            host: ["jiangxi.zhipeizaixian.com"]
        },
        anhuijixujyzx: {id: 39, mainClass: "anhuijixujyzx", name: " 安徽继续教育在线", host: ["main.ahjxjy.cn"]},
        lanzhoudxgs: {id: 40, mainClass: "lanzhoudxgs", name: " 兰州大学教育培训", host: ["gsjzlzu.sccchina.net"]},
        jidianshejijiaoyu: {
            id: 41,
            mainClass: "jidianshejijiaoyu",
            name: "继续教育学习平台",
            host: ["scjylearning.o-learn.cn", "gzmtulearning.o-learn.cn"]
        },
        henanzhujianjy: {
            id: 42,
            mainClass: "henanzhujianjy",
            name: "河南省住建专业技术人员继续教育",
            host: ["zjpx.icitpower.com:8080"]
        },
        sipingnengcun: {id: 43, mainClass: "sipingnengcun", name: "四平农村成人高等专科学校", host: ["www.jxuxue.com"]},
        ycjyluteducn: {
            id: 44,
            mainClass: "ycjyluteducn",
            name: "兰州理工大学现代远程教育学习平台",
            host: ["ycjy.lut.edu.cn"]
        },
        gdrcjxjyw: {id: 45, mainClass: "gdrcjxjyw", name: "广东人才继续教育网", host: ["gdjyw.ahsjxjy.com"]},
        shandongqlteacher: {
            id: 46,
            mainClass: "shandongqlteacher",
            name: "山东省教师教育网",
            host: ["player.qlteacher.com"]
        },
        shixuetong: {id: 47, mainClass: "shixuetong", name: "师学通", host: ["tn202346009.stu.teacher.com.cn"]},
        shandongenhualvyou: {
            id: 48,
            mainClass: "shandongenhualvyou",
            name: "山东省文化和旅游厅继续教育公共服务平台",
            host: ["123.232.43.194:8088"]
        },
        gansugongwuyuan: {
            id: 49,
            mainClass: "gansugongwuyuan",
            name: "甘肃省公务员网络培训网",
            host: ["www.gsgwypx.com.cn:86"]
        },
        wlmqcol: {id: 50, mainClass: "wlmqcol", name: "乌鲁木齐建设职业培训中心", host: ["www.wlmqcol.com"]},
        shandongzhuanyejisu: {
            id: 51,
            mainClass: "lzrejxjy",
            name: "山东省省直专业技术人员继续教育公需课平台",
            host: ["zjshpx-kfkc.webtrn.cn"]
        },
        chongqingzhuanye: {
            id: 52,
            mainClass: "chongqingzhuanye",
            name: "重庆专业技术人员继续教育",
            host: ["mooc1.cqrspx.cn"]
        },
        jiaoyuganbuwang: {
            id: 53,
            mainClass: "jiaoyuganbuwang",
            name: "中国教育干部网络学院",
            host: ["study.enaea.edu.cn"]
        }
    }, speedArr = [1, 3, 5, 10, 16], toolOption = {accelerator: 1, CtxMain: null, SchoolType: -1};

    class Main {
        constructor() {
            this.studentType = 1, this.speedStatus = 0, this.listenVidoeStatusTimer = null, this.init()
        }

        init() {
            setTimeout(() => {
                localStorage.getItem("schoolInfoColletion") || this.colletionSchoolData()
            }, 2500)
        }

        updateSpeedElement(e) {
            0 != this.speedStatus && (ElementObj.$video.playbackRate = e)
        }

        handleClickSpeedUp(e) {
            return __awaiter(this, void 0, void 0, function* () {
                let e = localStorage.getItem("mytoolkey");
                if (e) {
                    this.speedStatus = 1;
                    let t = yield fetchData({
                        method: "GET",
                        url: bserUrl + `/speedup?toolkey=${e}&canuse=${toolOption.SchoolType}`
                    });
                    if (200 != t.code) return void showTip(`🔉🔉🔉${t.message}`, 5e3, !0);
                    this.speedStatus = 1, toolOption.CtxMain.play(), this.randomListen()
                } else e ? alert("程序错误,请联系客服") : (alert("请先购买key"), window.open(basehost))
            })
        }

        handleAddKey(e) {
            return __awaiter(this, void 0, void 0, function* () {
                if (!ElementObj.$ipt.value) return void window.open(basehost);
                (yield fetchData({
                    method: "GET",
                    url: bserUrl + "/vertifykey?toolkey=" + ElementObj.$ipt.value
                })).data.count > 0 ? (localStorage.setItem("mytoolkey", ElementObj.$ipt.value), localStorage.setItem("_localSpeed", toolOption.accelerator.toString()), e(ElementObj.$ipt.value)) : alert("输入的key不存在")
            })
        }

        handleRemoveKey() {
            localStorage.removeItem("mytoolkey"), localStorage.removeItem("_localSpeed"), ElementObj.$title3.innerText = "绑定key:", ElementObj.$mytoolkey.style.display = "none", ElementObj.$ctxsection2.style.display = "none", ElementObj.$nokey.style.display = "block", ElementObj.$ipt.style.display = "block", ElementObj.$addKey.style.display = "block", ElementObj.$removeKey.style.display = "none", ElementObj.$handleSpeedUp.style.background = "orange", ElementObj.$handleSpeedUp.innerText = "点击加速", this.updateSpeedElement(1)
        }

        stopSpeedUp() {
            this.speedStatus = 0, toolOption.CtxMain.updateSpeedElement(1), ElementObj.$handleSpeedUp.style.background = "orange", ElementObj.$handleSpeedUp.innerText = "点击加速", showTip("🔉停止加速成功")
        }

        handleChangeCtxSpeed(e) {
            let t = localStorage.getItem("mytoolkey");
            if (t) {
                let t = speedArr, n = Number(e);
                e && t.includes(n) && (toolOption.accelerator = n, localStorage.setItem("_localSpeed", n.toString()), ElementObj.$video && (ElementObj.$video.playbackRate = n))
            } else t ? alert("程序错误,请联系客服") : (alert("请先购买key"), window.open(basehost))
        }

        colletionSchoolData() {
            return __awaiter(this, void 0, void 0, function* () {
                let e = `s${toolOption.SchoolType}`;
                200 == (yield fetchData({
                    method: "GET",
                    url: bserUrl + "/colletionschool?schoolType=" + e
                })).code && localStorage.setItem("schoolInfoColletion", `${new Date}`)
            })
        }

        randomListen() {
            setTimeout(() => {
                let e = localStorage.getItem("mytoolkey");
                ElementObj.$video && (ElementObj.$video.paused || e || ElementObj.$video.pause())
            }, 5e3)
        }

        listenVidoeStatus(e, t) {
            if (!e) return;
            let n = 0;
            this.listenVidoeStatusTimer = setInterval(() => {
                e.readyState < 4 && (console.log(`检测到${n}次,视频正在加载`), (n += 1) >= 20 && location.reload()), e.paused && (n += 1, console.log(`检测到视频暂停了${n}次`), "function" == typeof t ? n >= 20 ? location.reload() : t() : console.log("callback不是一个函数"))
            }, 3e3)
        }

        changeHtml(e) {
            return __awaiter(this, void 0, void 0, function* () {
                let t = document.createElement("div");
                t.setAttribute("class", "ctxstatsbox"), t.setAttribute("style", "\n                width: 100%;\n                height: 100%;\n                background: #eae9e9;\n                position: absolute;\n                z-index: 999;\n                overflow: scroll;\n                top: 0;\n                padding-left: 10px;\n            "), e.appendChild(t), yield sleep(300), ElementObj.$ctxstatsbox = document.querySelector(".ctxstatsbox"), this.addInfo("🔉初始化已完成,正在播放")
            })
        }

        addInfo(e, t) {
            document.querySelectorAll(".ctxstatsbox_li").length >= 15 && (ElementObj.$ctxstatsbox.innerHTML = "");
            let n = `<li class="ctxstatsbox_li" style="color: ${0 == t ? "#f01414" : "#000"};line-height: 30px;font-size: 16px;list-style: none;">${e}</li>`;
            ElementObj.$ctxstatsbox.innerHTML += n
        }

        listenPageHide() {
            let e;
            document.addEventListener("visibilitychange", () => {
                if (document.hidden) {
                    console.log("页面被隐藏");
                    let t = 0;
                    e = setInterval(() => {
                        (t += 1) >= 5 && this.addInfo("⚠️⚠️⚠️请勿长时间隐藏该学习页面", 0)
                    }, 5e3)
                } else clearInterval(e), console.log("页面被显示")
            })
        }
    }

    class zhihuishu extends Main {
        constructor() {
            super(), this.AllVideo = [], this.currentIndex = 0, this.taskLength = 0, this.studyVideoType = 2, this._init()
        }

        _init() {
            this.AllVideo = document.querySelectorAll(".video, .lessonItem, .file-item"), this.taskLength = this.AllVideo.length, this.getCurrentIndex()
        }

        getStudyVideoType() {
            let e = document.querySelector(".newListTest"), t = document.querySelector("#demandBox");
            e ? this.studyVideoType = 1 : t ? this.studyVideoType = 3 : (this.studyVideoType = 2, toolOption.accelerator = 1.5)
        }

        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                this.getStudyVideoType();
                let e = "current_play";
                1 == this.studyVideoType ? e = "current_play" : 2 == this.studyVideoType ? e = "lessonItemActive" : 3 == this.studyVideoType && (e = "active");
                for (let t = 0; t < this.AllVideo.length; t++) {
                    1 == this.AllVideo[t].classList.contains(e) && (this.currentIndex = t)
                }
                3 == this.studyVideoType && this.handleClickSpeedUp()
            })
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
                yield sleep(1e3), ElementObj.$video = $el("video"), ElementObj.$video.play(), this.updateSpeedElement(), ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "加速成功", ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () {
                    if (ElementObj.$handleSpeedUp.style.background = "orange", ElementObj.$handleSpeedUp.innerText = "点击加速", yield sleep(200), this.currentIndex += 1, 2 == this.studyVideoType) setTimeout(() => {
                        this.handleClickSpeedUp()
                    }, 5e3); else {
                        let e = this.AllVideo[this.currentIndex];
                        yield sleep(500), e.click(), yield sleep(3500), this.handleClickSpeedUp()
                    }
                }), !1), ElementObj.$video.addEventListener("pause", () => {
                    setTimeout(() => {
                        new Answer
                    }, 1500)
                })
            })
        }

        updateSpeedElement() {
            var e, t;
            if (3 == this.studyVideoType) {
                e = document.querySelector('div.speedTab15[rate="1.5"]');
                var n = $el(".speedBox");
                n.style.backgroundImage = "url(https://mytools-1316767856.cos.ap-shanghai.myqcloud.com/speed1.5.png)", n.style.backgroundSize = "100% 100%"
            } else e = document.querySelector('div.speedTab.speedTab15[rate="1.5"]');
            e && (e.setAttribute("rate", toolOption.accelerator.toString()), e.textContent = `X ${toolOption.accelerator}`, null == (t = $el(`.speedList [rate="${1 === toolOption.accelerator ? "1.0" : toolOption.accelerator}"]`)) || t.click());
            ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "加速成功"
        }
    }

    zhihuishu.ctxid = 1;

    class Answer {
        constructor() {
            this.EleObj = {}, this.init()
        }

        init() {
            this.EleObj.$numbers = document.querySelectorAll(".number"), this.EleObj.$close = document.querySelectorAll(".el-dialog__header>button")[4], this.EleObj.$numbers.length && this.eachTopic()
        }

        eachTopic() {
            return __awaiter(this, void 0, void 0, function* () {
                document.querySelectorAll(".topic-item")[1].click(), sleep(1100), this.EleObj.$numbers.length > 1 ? (this.EleObj.$numbers[1].click(), setTimeout(() => {
                    document.querySelectorAll(".topic-item")[1].click(), this.EleObj.$close.click(), ElementObj.$video.play()
                }, 1e3)) : (this.EleObj.$close.click(), ElementObj.$video.play())
            })
        }
    }

    class uxueyuan extends Main {
        constructor() {
            super(), this.taskLength = 0, this.currentIndex = 0, this._init()
        }

        _init() {
            this.getCurrentIndex()
        }

        getCurrentIndex() {
            ElementObj.$allTask = document.querySelectorAll(".page-name");
            ElementObj.$allTask.forEach((e, t) => {
                e.classList.contains("active") && (this.currentIndex = t)
            })
        }

        getVideoDom() {
            return new Promise(e => {
                let t = 0, n = setInterval(() => {
                    ElementObj.$video = document.querySelector("video"), t += 1, ElementObj.$video && (clearInterval(n), e(1)), t > 5 && (clearInterval(n), e(2))
                }, 1e3)
            })
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
                let e = yield this.getVideoDom();
                1 == e && (ElementObj.$video.play(), ElementObj.$video.volume = 0, setTimeout(() => {
                    ElementObj.$video.playbackRate = toolOption.accelerator
                }, 3500), ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "加速成功", ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () {
                    this.currentIndex >= ElementObj.$allTask.length && alert("课程全部播放完成"), yield sleep(500), this.currentIndex += 1, ElementObj.$allTask[this.currentIndex].click(), yield sleep(2500), this.handleClickSpeedUp()
                }), !1)), 2 == e && (showTip("⚠️⚠️⚠️未检测到视频,3秒后切换下一节", 3e3), yield sleep(3e3), this.currentIndex += 1, ElementObj.$allTask[this.currentIndex].click(), yield sleep(2500), this.play())
            })
        }

        updateSpeedElement() {
            let e = document.querySelector(".mejs__button.mejs__speed-button>button");
            e && (e.innerHTML = `${toolOption.accelerator}.00x`), ElementObj.$video.playbackRate = toolOption.accelerator
        }
    }

    class fujianshifan extends Main {
        constructor() {
            super(), this.taskLength = 0, this.currentIndex = 0, this.currentMidiaType = "video", this._init()
        }

        _init() {
            let e = document.querySelectorAll(".section");
            new Promise(t => {
                e.forEach((n, l) => {
                    n.childNodes[0].click(), sleep(20), l == e.length - 1 && t(!0)
                })
            }).then(e => {
                setTimeout(() => {
                    ElementObj.$allStudyTask = document.querySelectorAll(".section li"), this.getCurrentIndex()
                }, 2e3)
            })
        }

        getCurrentIndex() {
            let e = document.querySelector(".active").id;
            ElementObj.$allStudyTask.forEach((t, n) => {
                t.id == e && (this.currentIndex = n)
            })
        }

        play() {
            ElementObj.$allStudyTask[this.currentIndex].click(), setTimeout(() => {
                ElementObj.$video = document.querySelector("video"), ElementObj.$video ? (this.currentMidiaType = "video", this.handlePlayVideo()) : (this.currentMidiaType = "doc", this.handlePlayDoc())
            }, 2e3)
        }

        nextPlay() {
            sleep(1e3), this.currentIndex += 1, this.handleClickSpeedUp()
        }

        handlePlayVideo() {
            this.updateSpeedElement(toolOption.accelerator), ElementObj.$video.play(), ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "加速成功", ElementObj.$video.addEventListener("ended", () => {
                this.nextPlay()
            }, !1)
        }

        handlePlayDoc() {
            var e;
            ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "加速成功";
            let t = null === (e = document.querySelector("#lg-counter-all")) || void 0 === e ? void 0 : e.innerHTML,
                n = document.querySelector(".lg-actions>.lg-next"), l = Number(t), i = setInterval(() => {
                    if (l <= 0 || !n) return clearInterval(i), void this.nextPlay();
                    n.click(), l -= 1
                }, 1e3)
        }
    }

    class henanxinxueyuan extends Main {
        constructor() {
            super(), this.currentIndex = 0, this.taskLength = 0, this._init()
        }

        _init() {
            ElementObj.$allTask = document.querySelectorAll(".collapseCont"), this.taskLength = ElementObj.$allTask.length, this.getCurrentIndex()
        }

        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
            })
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
                ElementObj.$allTask[this.currentIndex].click(), yield sleep(2e3), ElementObj.$video = document.querySelector("video"), this.updateSpeedElement(toolOption.accelerator), ElementObj.$video.play(), ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "加速成功", ElementObj.$video.addEventListener("ended", () => {
                    this.currentIndex += 1, setTimeout(() => {
                        this.handleClickSpeedUp()
                    }, 1500)
                }, !1)
            })
        }
    }

    henanxinxueyuan.ctxname = "河南新闻学院";

    class ningmengwencai extends Main {
        constructor() {
            super(), this.taskLength = 0, this.currentIndex = 0, this._init()
        }

        _init() {
            ElementObj.$allTask = document.querySelectorAll(".childSection"), this.taskLength = ElementObj.$allTask.length, this.getCurrentIndex()
        }

        getCurrentIndex() {
            ElementObj.$allTask.forEach((e, t) => {
                e.className.includes("active") && (this.currentIndex = t)
            })
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
                ElementObj.$allTask[this.currentIndex].click(), yield sleep(2e3), ElementObj.$video = document.querySelector("video"), this.updateSpeedElement(toolOption.accelerator);
                let e = document.querySelector(".layui-layer-btn0");
                e && e.click(), ElementObj.$video.play(), ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "加速成功", ElementObj.$video.addEventListener("ended", () => {
                    if (this.currentIndex += 1, this.currentIndex > ElementObj.$allTask.length) return;
                    document.querySelector("#saveBtn").click(), setTimeout(() => {
                        this.handleClickSpeedUp()
                    }, 2500)
                }, !1)
            })
        }
    }

    class luohexueyuan extends Main {
        constructor() {
            super(), this.taskLength = 0, this.currentIndex = 0, this.loaded = !1, this._init()
        }

        _init() {
            ElementObj.$allTask = document.querySelectorAll("li.catalog-box");
            let e = setInterval(() => {
                ElementObj.$allTask = document.querySelectorAll("li.catalog-box"), ElementObj.$allTask.length && (clearInterval(e), showTip("🔉🔉🔉初始化完成"))
            }, 1e3)
        }

        getCurrentIndex() {
            ElementObj.$allTask.forEach((e, t) => {
                e.lastElementChild.firstElementChild.className.includes("activeCss") && (this.currentIndex = t)
            }), this.loaded = !0
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
                this.loaded || this.getCurrentIndex(), ElementObj.$allTask[this.currentIndex].lastElementChild.click(), yield sleep(2e3), ElementObj.$video = document.querySelector("video"), this.updateSpeedElement(toolOption.accelerator), ElementObj.$video.play(), ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "加速成功", ElementObj.$video.addEventListener("ended", () => {
                    ElementObj.$handleSpeedUp.style.background = "orange", ElementObj.$handleSpeedUp.innerText = "点击加速", this.currentIndex += 1, setTimeout(() => {
                        this.handleClickSpeedUp()
                    }, 1500)
                }, !1)
            })
        }
    }

    class gxcic extends Main {
        constructor() {
            super(), this.parentIndex = 0, this.currentIndex = 0, this.currentTaskEle = null, this.taskLength = 0, this._init()
        }

        _init() {
            let e = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                ElementObj.$allTaskParentNodes = null === document || void 0 === document ? void 0 : document.querySelectorAll(".ant-collapse-item"), ElementObj.$allTask = null === document || void 0 === document ? void 0 : document.querySelectorAll(".course-detail-content-section-info-text"), ElementObj.$allTask.length && ElementObj.$allTaskParentNodes.length && (clearInterval(e), this.getCurrentIndex())
            }), 1e3)
        }

        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                ElementObj.$allTaskParentNodes.forEach((e, t) => {
                    e.className.includes("ant-collapse-item-active") && (this.parentIndex = t)
                }), ElementObj.$allTask.forEach((e, t) => {
                    e.className.includes("course-detail-current") && (this.currentIndex = t, this.currentTaskEle = e)
                }), this.currentTaskEle && showTip("初始化完成,可点击加速")
            })
        }

        getVideoDom() {
            return new Promise(e => {
                let t = setInterval(() => {
                    ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0))
                }, 1e3)
            })
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
                yield this.getVideoDom(), ElementObj.$video.play(), this.updateSpeedElement(toolOption.accelerator), ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "加速成功", ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () {
                    let e = this.currentTaskEle.parentElement.parentElement.nextSibling;
                    e ? (this.currentIndex += 1, this.currentTaskEle = e, this.currentTaskEle.click()) : (this.parentIndex += 1, this.currentIndex += 1, ElementObj.$allTaskParentNodes[this.parentIndex].lastChild.firstChild.firstChild.click(), yield sleep(1500), ElementObj.$allTask = null === document || void 0 === document ? void 0 : document.querySelectorAll(".course-detail-content-section-info-text"), this.currentTaskEle = ElementObj.$allTask[this.currentIndex], this.currentTaskEle.click());
                    yield sleep(5e3), this.handleClickSpeedUp()
                }), !1), ElementObj.$video.addEventListener("pause", () => {
                    setTimeout(() => {
                        ElementObj.$video.volume = 0, ElementObj.$video.setAttribute("muted", "muted"), ElementObj.$video.play()
                    }, 1500)
                })
            })
        }
    }

    class liangyijiaoyu extends Main {
        constructor() {
            super(), this.taskLength = 0, this.currentIndex = 0, this._init()
        }

        _init() {
        }

        getCurrentIndex() {
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
            })
        }
    }

    class mengxiangzaixian extends Main {
        constructor() {
            super(), this.currentIndex = 0, this.taskLength = 0, this._init()
        }

        _init() {
            this.getCurrentIndex()
        }

        getCurrentIndex() {
            ElementObj.$allTask = document.querySelectorAll(".el-card__body button i");
            ElementObj.$allTask.forEach((e, t) => {
                e.parentElement.className.includes("el-button--primary") && (this.currentIndex = t)
            })
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
                ElementObj.$allTask.length || (ElementObj.$allTask = document.querySelectorAll(".el-card__body button i")), ElementObj.$allTask[this.currentIndex].click(), yield sleep(2e3), ElementObj.$video = document.querySelector("video"), this.updateSpeedElement(toolOption.accelerator), ElementObj.$video.play(), ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "加速成功", ElementObj.$video.addEventListener("ended", () => {
                    this.currentIndex += 1, setTimeout(() => {
                        this.handleClickSpeedUp()
                    }, 1500)
                }, !1)
            })
        }
    }

    class fjsf2 extends Main {
        constructor() {
            super(), this.taskLength = 0, this.parentIndex = 0, this.currentIndex = 0, this.currentMidiaType = "video", this._init()
        }

        _init() {
            ElementObj.$allTaskParentNodes = null === document || void 0 === document ? void 0 : document.querySelectorAll(".section");
            document.querySelectorAll(".section");
            this.getCurrentIndex()
        }

        getCurrentIndex() {
            ElementObj.$allTaskParentNodes.forEach((e, t) => {
                let n = e.querySelectorAll("li");
                null == n || n.forEach((e, l) => {
                    e.className.includes("active") && (this.parentIndex = t, this.currentIndex = l, ElementObj.$allTask = n)
                })
            })
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
                ElementObj.$allTask[this.currentIndex].click(), yield sleep(2e3), document.querySelector(".lg-close") ? (this.currentMidiaType = "doc", this.handlePlayDoc()) : (this.currentMidiaType = "video", this.handlePlayVideo())
            })
        }

        nextPlay() {
            return __awaiter(this, void 0, void 0, function* () {
                if (yield sleep(1e3), this.currentIndex >= ElementObj.$allTask.length - 1) {
                    if (this.parentIndex += 1, this.currentIndex = 0, this.parentIndex >= ElementObj.$allTaskParentNodes.length) return void alert("已全部播放完");
                    let e = ElementObj.$allTaskParentNodes[this.parentIndex].querySelectorAll("li");
                    e.length ? ElementObj.$allTask = e : (ElementObj.$allTaskParentNodes[this.parentIndex].childNodes[0].click(), yield sleep(300), ElementObj.$allTask = ElementObj.$allTaskParentNodes[this.parentIndex].querySelectorAll("li"))
                } else this.currentIndex += 1;
                this.handleClickSpeedUp()
            })
        }

        handlePlayVideo() {
            ElementObj.$video = document.querySelector("video"), this.updateSpeedElement(toolOption.accelerator), ElementObj.$video.play(), ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "加速成功", ElementObj.$video.addEventListener("ended", () => {
                this.nextPlay()
            }, !1)
        }

        handlePlayDoc() {
            return __awaiter(this, void 0, void 0, function* () {
                ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "加速成功", yield sleep(1500);
                let e = document.querySelector(".lg-toggle-thumb"), t = 1;
                if (e) {
                    e.click(), t = document.querySelectorAll(".lg-thumb-item").length
                }
                yield sleep(2e3), document.querySelector(".lg-close").click(), this.nextPlay()
            })
        }
    }

    class xuexitong extends Main {
        constructor() {
            super(), this.taskLength = 0, this.currentIndex = 0, this.currentMidiaType = "video", this._init()
        }

        _init() {
            ElementObj.$allTaskParentNodes = null === document || void 0 === document ? void 0 : document.querySelectorAll(".section");
            document.querySelectorAll(".section");
            this.getCurrentIndex()
        }

        getCurrentIndex() {
            ElementObj.$allTaskParentNodes.forEach((e, t) => {
                let n = e.querySelectorAll("li");
                null == n || n.forEach((e, t) => {
                    e.className.includes("active")
                })
            })
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
            })
        }
    }

    class zjzx extends Main {
        constructor() {
            super(), this.taskLength = 0, this.currentIndex = 0, this._init()
        }

        _init() {
            ElementObj.$allTask = document.querySelectorAll(".nLi"), this.getCurrentIndex()
        }

        getCurrentIndex() {
            ElementObj.$allTask.forEach((e, t) => {
                e.querySelector("li").classList.contains("active") && (this.currentIndex = t)
            })
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
                ElementObj.$video = document.querySelector("video"), ElementObj.$video.playbackRate = toolOption.accelerator, ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "加速成功", ElementObj.$video.addEventListener("ended", () => {
                    setTimeout(() => {
                        this.handleClickSpeedUp()
                    }, 5e3)
                })
            })
        }
    }

    class zxpxmr extends Main {
        constructor() {
            super(), this.taskLength = 0, this.currentIndex = 0, this._init()
        }

        _init() {
            window.alert = function () {
                return !1
            };
            let e = setInterval(() => {
                ElementObj.$allTask = document.querySelectorAll(".kecheng_play_mian_list_item"), ElementObj.$allTask.length && (showTip("🔉初始化完成,可点击加速", 3e3), clearInterval(e), this.getCurrentIndex())
            }, 1e3)
        }

        getCurrentIndex() {
            ElementObj.$allTask.forEach((e, t) => {
                e.classList.contains("kecheng_play_mian_list_item_progress_playing") && (this.currentIndex = t)
            })
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
                ElementObj.$video = document.querySelector("video"), ElementObj.$video.playbackRate = toolOption.accelerator, ElementObj.$video.play(), ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "加速成功", this.simulationClick(), ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () {
                    if (clearInterval(this.timer), this.currentIndex >= ElementObj.$allTask.length - 1) return void alert("课程已全部部分完");
                    this.currentIndex += 1;
                    let e = document.querySelector("#btn-sure");
                    yield sleep(2e3), null == e || e.click(), setTimeout(() => {
                        this.handleClickSpeedUp()
                    }, 5e3)
                })), ElementObj.$video.addEventListener("pause", () => {
                    console.log("播放暂停了"), setTimeout(() => {
                        ElementObj.$video.play()
                    }, 1e3)
                })
            })
        }

        simulationClick() {
            var e = new KeyboardEvent("keydown", {keyCode: 8, which: 8});
            this.timer = setInterval(() => {
                try {
                    document.dispatchEvent(e)
                } catch (e) {
                }
            }, 3e3)
        }
    }

    class ggfw extends Main {
        constructor() {
            super(), this.taskLength = 0, this.currentIndex = 0, this._init()
        }

        _init() {
            ElementObj.$parentNodes = document.querySelectorAll(".learnList"), ElementObj.$parentNodes.length && this.selectOneClass(), new Promise(e => {
                let t = setInterval(() => {
                    ElementObj.$allTask = document.querySelectorAll(".courseItem"), ElementObj.$allTask.length && (clearInterval(t), this.getCurrentIndex(), e(!0))
                }, 1e3)
            }).then(e => {
                ElementObj.$handleSpeedUp.style.display = "none";
                let t = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    ElementObj.$video = document.querySelector("video"), ElementObj.$video.setAttribute("muted", "muted"), ElementObj.$video.setAttribute("autoplay", "autoplay");
                    let e = document.querySelector(".volume-icon");
                    if (e.click(), yield sleep(500), e.click(), ElementObj.$video) {
                        clearInterval(t), showTip("🔉初始化完成,即将自动播放", 3e3), yield sleep(300);
                        let e = document.querySelector(".prism-big-play-btn");
                        console.log("$playBtn===>>>", e), e.click(), yield this.handleClickSpeedUp()
                    }
                }), 1e3)
            })
        }

        getCurrentIndex() {
            ElementObj.$allTask.forEach((e, t) => {
                e.classList.contains("active") && (this.currentIndex = t)
            })
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
                yield sleep(3e3), localStorage.setItem("ctx-status", ""), ElementObj.$video.play(), setTimeout(() => {
                    ElementObj.$video.playbackRate = toolOption.accelerator, ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "加速成功"
                }, 1500), this.listenVidoeStatus(ElementObj.$video, () => {
                    ElementObj.$video.volume = 0, ElementObj.$video.play()
                }), ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () {
                    if (clearInterval(this.timer), ElementObj.$allTask = document.querySelectorAll(".courseItem"), yield sleep(300), this.currentIndex >= ElementObj.$allTask.length - 1) {
                        return localStorage.setItem("ctx-status", "done"), document.querySelector(".sc-box").click(), yield sleep(1500), document.querySelectorAll(".menu-box ul li")[3].click(), yield sleep(2e3), void window.location.reload()
                    }
                    this.currentIndex += 1, this.handleClickSpeedUp(), yield sleep(2500), ElementObj.$allTask[this.currentIndex].click()
                })), ElementObj.$video.addEventListener("pause", () => {
                    console.log("播放暂停了"), setTimeout(() => {
                        ElementObj.$video.play()
                    }, 1e3)
                })
            })
        }

        selectOneClass() {
            let e = setTimeout(() => __awaiter(this, void 0, void 0, function* () {
                clearInterval(e), document.querySelector("#tab-second").click(), yield sleep(2500), ElementObj.$parentNodes = document.querySelectorAll(".course_item"), yield sleep(200), ElementObj.$parentNodes[0].click()
            }), 3e3)
        }
    }

    class mingshiclass extends Main {
        constructor() {
            super(), this.taskLength = 0, this.currentIndex = 0, this.parentIndex = -1, this._init()
        }

        _init() {
            document.querySelector(".title-box .setMealName") ? this.selectOneClass() : this.initPlayPage()
        }

        initPlayPage() {
            new Promise(e => {
                let t = setInterval(() => {
                    ElementObj.$allTask = document.querySelectorAll(".course-list .course-item"), ElementObj.$allTask.length && (clearInterval(t), this.getCurrentIndex(), e(!0))
                }, 1e3)
            }).then(e => new Promise(e => __awaiter(this, void 0, void 0, function* () {
                ElementObj.$video = document.querySelector("video"), yield sleep(3e3), ElementObj.$video && (showTip("🔉初始化完成,播放开始", 3e3), e(!0))
            }))).then(e => {
                this.handleClickSpeedUp()
            })
        }

        getCurrentIndex() {
            ElementObj.$allTask.forEach((e, t) => {
                e.querySelector(".course-name").classList.contains("play-status") && (this.currentIndex = t)
            }), console.log("this.currentIndex ===>>", this.currentIndex)
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
                ElementObj.$video = document.querySelector("video"), ElementObj.$video.setAttribute("muted", "muted"), ElementObj.$video.setAttribute("autoplay", "autoplay"), ElementObj.$video.volume = 0, yield sleep(3500), document.querySelector(".play_btn").click(), ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "加速成功", ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () {
                    if (console.log("播放结束了"), this.currentIndex >= ElementObj.$allTask.length - 1) {
                        let e = document.querySelector(".back-img");
                        return sleep(200), e.click(), void setTimeout(() => {
                            location.reload()
                        }, 3e3)
                    }
                    this.currentIndex += 1;
                    let e = ElementObj.$allTask[this.currentIndex];
                    yield sleep(5e3), null == e || e.click(), setTimeout(() => {
                        this.handleClickSpeedUp()
                    }, 2e3)
                })), ElementObj.$video.addEventListener("pause", () => {
                    console.log("播放暂停了"), setTimeout(() => {
                        ElementObj.$video.play()
                    }, 3e3)
                })
            })
        }

        selectOneClass() {
            let e = setTimeout(() => __awaiter(this, void 0, void 0, function* () {
                clearInterval(e), ElementObj.$parentNodes = document.querySelectorAll(".content-box>.course-list>div"), yield sleep(200), ElementObj.$parentNodes.forEach((e, t) => {
                    if ("未完成" == e.querySelector(".course_item_brief").lastChild.innerText && -1 == this.parentIndex) return this.parentIndex = t, !0
                }), yield sleep(200), console.log("this.parentIndex===>>", this.parentIndex), ElementObj.$parentNodes[this.parentIndex].click(), setTimeout(() => {
                    this.initPlayPage()
                }, 2500)
            }), 1e3)
        }
    }

    mingshiclass.ctxid = 17;

    class qiangshi extends Main {
        constructor() {
            super(), this.taskLength = 0, this.currentIndex = -1, this._init()
        }

        _init() {
            try {
                let e = document.querySelectorAll("iframe")[2].contentWindow.document.querySelectorAll("iframe")[0].contentWindow;
                this._document = e.document
            } catch (e) {
            }
            let e = setInterval(() => {
                try {
                    let t = document.querySelector(".contentIframe").contentWindow;
                    ElementObj.$allTask = t.document.querySelectorAll(".s_point"), ElementObj.$allTask.length && (clearInterval(e), this.getCurrentIndex())
                } catch (e) {
                }
            }, 1e3)
        }

        getCurrentIndex() {
            ElementObj.$allTask.forEach((e, t) => {
                e.querySelector(".item_done_icon").classList.contains("done_icon_show") || -1 != this.currentIndex || (this.currentIndex = t)
            }), console.log("this.currentIndex==>>>", this.currentIndex), -1 != this.currentIndex ? (showTip("⚠️⚠️⚠️初始化完成,即将开始播放", 3e3), setTimeout(() => {
                this.handleClickSpeedUp()
            }, 4500), ElementObj.$handleSpeedUp.style.display = "none") : alert("当前章节课程已全部学完")
        }

        getVideoDom() {
            return new Promise(e => {
                let t = setInterval(() => {
                    try {
                        let n = document.querySelectorAll("iframe")[2].contentDocument.querySelectorAll("iframe")[0].contentDocument;
                        ElementObj.$video = null == n ? void 0 : n.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0))
                    } catch (e) {
                    }
                }, 1e3)
            })
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
                ElementObj.$allTask[this.currentIndex].click(), yield sleep(3500), yield this.getVideoDom(), console.log("ElementObj.$video===>>", ElementObj.$video), ElementObj.$video.volume = 0, this._document.querySelector("#player_pause").click(), ElementObj.$video.play(), setTimeout(() => {
                    ElementObj.$video.playbackRate = localStorage.getItem("_localSpeed") || toolOption.accelerator
                }, 3e3), ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () {
                    this.currentIndex >= ElementObj.$allTask.length - 1 ? alert("课程已全部部分完") : (this.currentIndex += 1, showTip("⚠️⚠️⚠️正在切换课程", 3500), setTimeout(() => {
                        this.handleClickSpeedUp()
                    }, 4e3))
                })), ElementObj.$video.addEventListener("pause", () => {
                    console.log("播放暂停了"), setTimeout(() => {
                        ElementObj.$video.volume = 0, ElementObj.$video.play(), ElementObj.$video.playbackRate = localStorage.getItem("_localSpeed") || toolOption.accelerator
                    }, 1500)
                })
            })
        }
    }

    qiangshi.ctxid = 18;

    class lanzhgoulgjs extends Main {
        constructor() {
            super(), this.taskLength = 0, this.currentIndex = -1, this._init()
        }

        _init() {
            let e = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                let t = document.querySelectorAll(".chapterlist .drop p"),
                    n = document.querySelectorAll(".chapterlist .videoList p");
                (t.length || n.length) && (clearInterval(e), ElementObj.$allTask = t.length ? t : n, this.getCurrentIndex())
            }), 1e3)
        }

        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                let e = [];
                ElementObj.$allTask.forEach((t, n) => {
                    let l = t.querySelector(".class_percent");
                    if (l) {
                        let t = l.innerText;
                        e.push(parseInt(t))
                    } else e.push(0)
                }), e.reverse();
                for (var t = 0; t <= e.length - 1; t++) if (e[t] < 98) {
                    console.log(t, "===>>>", e[t]), this.currentIndex = e.length - t - 1;
                    break
                }
                if (console.log("111111111this.currentIndex==>>>", this.currentIndex), 0 == this.currentIndex) {
                    ElementObj.$allTask[1].querySelector("a").click(), yield sleep(4e3), ElementObj.$allTask = document.querySelectorAll(".chapterlist .drop p"), yield sleep(200);
                    let e = ElementObj.$allTask[0].querySelector(".class_percent").innerText;
                    if (!(parseInt(e) < 98)) return void alert("当前科目课程已全部播放完");
                    this.currentIndex = 0
                }
                -1 != this.currentIndex ? (ElementObj.$handleSpeedUp.style.display = "none", showTip("🔉🔉🔉初始化完成,5s后开始播放", 3e3), console.log("this.currentIndex==>>>", this.currentIndex), this.handleClickSpeedUp()) : alert("当前科目课程已全部播放完")
            })
        }

        getVideoDom() {
            return new Promise(e => {
                let t = setInterval(() => {
                    ElementObj.$video = document.querySelector("video");
                    let n = ElementObj.$video.src, l = document.querySelector("iframe");
                    console.log("ElementObj.$video==>>>", ElementObj.$video), console.log("$iframe==>>>", l), n && (clearInterval(t), e(1)), l && (clearInterval(t), e(2))
                }, 1e3)
            })
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
                let e = ElementObj.$allTask[this.currentIndex].querySelector("a");
                yield sleep(300), e.click(), yield sleep(3e3);
                let t = yield this.getVideoDom();
                if (1 == t) {
                    clearInterval(this.listenVidoeStatusTimer), ElementObj.$video.setAttribute("muted", "muted"), ElementObj.$video.volume = 0, yield sleep(200), ElementObj.$video.play(), ElementObj.$video.playbackRate = toolOption.accelerator, ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "加速成功", this.listenVidoeStatus(ElementObj.$video, () => {
                        ElementObj.$video.volume = 0, ElementObj.$video.play()
                    });
                    let e = document.querySelector(".ckplayer-ckplayer");
                    this.changeHtml(e), this.reloadPage(), this.listenPageHide(), this.listenAbnormal(1), ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () {
                        location.reload()
                    }))
                }
                if (2 == t) {
                    let e = document.querySelector("#thirdplayer");
                    this.changeHtml(e), this.reloadPage(), this.listenPageHide(), this.listenAbnormal(0)
                }
            })
        }

        reloadPage() {
            return __awaiter(this, void 0, void 0, function* () {
            })
        }

        listenAbnormal(e) {
            showTip("🔉课件正在学习,请务点击或长时间隐藏");
            let t = 0;
            setInterval(() => {
                if (t += 1, 0 == e) this.addInfo(`已监测${t}次,当前状态正在学习`); else {
                    let e = (ElementObj.$video.currentTime / 60).toFixed(2);
                    this.addInfo(`已监测${t}次,当前状态正在学习,已播放${e}分钟`)
                }
                document.querySelector(".layui-layer-btn0") && location.reload()
            }, 5e3)
        }

        changeHtml(e) {
            return __awaiter(this, void 0, void 0, function* () {
                let t = document.createElement("div");
                t.setAttribute("class", "ctxstatsbox"), t.setAttribute("style", "\n                width: 796px;\n                height: 545px;\n                background: #eae9e9;\n                position: absolute;\n                z-index: 10;\n                overflow: scroll;\n                top: 0;\n                padding-left: 10px;\n            "), e.appendChild(t), yield sleep(300), ElementObj.$ctxstatsbox = document.querySelector(".ctxstatsbox"), this.addInfo("🔉初始化已完成,正在播放"), this.addInfo("⚠️⚠️⚠️课程采用倒着播放,请勿手动更换课程", 0)
            })
        }

        addInfo(e, t) {
            document.querySelectorAll(".ctxstatsbox_li").length >= 15 && (ElementObj.$ctxstatsbox.innerHTML = "");
            let n = `<li class="ctxstatsbox_li" style="color: ${0 == t ? "#f01414" : "#000"};line-height: 30px;font-size: 16px;">${e}</li>`;
            ElementObj.$ctxstatsbox.innerHTML += n
        }

        listenPageHide() {
            let e;
            document.addEventListener("visibilitychange", () => {
                if (document.hidden) {
                    console.log("页面被隐藏");
                    let t = 0;
                    e = setInterval(() => {
                        (t += 1) >= 5 && this.addInfo("⚠️⚠️⚠️请勿长时间隐藏该学习页面", 0)
                    }, 5e3)
                } else clearInterval(e), console.log("页面被显示")
            })
        }
    }

    class beijingjiaoshi extends Main {
        constructor() {
            super(), this.taskLength = 0, this.topIndex = 0, this.parentIndex = -1, this.currentIndex = -1, this.videoplaying = -1, this.timer = null, this._init()
        }

        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let e = document.querySelector(".item_btn");
                if (ElementObj.$topNode = document.querySelectorAll(".el-collapse-item"), e) yield sleep(2e3), e.click(), setTimeout(() => {
                    window.close()
                }, 1500); else if (ElementObj.$topNode.length) {
                    let e = yield this.getDoing();
                    console.log("index========>>>", e), ElementObj.statusEles[e].click(), yield sleep(3e3), this.getParentIndex()
                } else {
                    let e = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                        ElementObj.$allTask = document.querySelectorAll(".course-info .video-title"), ElementObj.$allTask.length && (clearInterval(e), this.getCurrentIndex())
                    }), 1e3)
                }
            })
        }

        getParentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                console.log("getParentIndex==>>"), ElementObj.$topNode = document.querySelectorAll(".el-collapse-item"), yield sleep(200);
                let e = ElementObj.$topNode.length, t = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    this.topIndex >= e - 1 && clearInterval(t), yield sleep(2e3);
                    let n = ElementObj.$topNode[this.topIndex];
                    0 != this.topIndex && n.querySelector(".item-title-col").click(), yield sleep(300), ElementObj.$parentNodes = n.querySelectorAll(".el-table__row"), yield sleep(300), ElementObj.$parentNodes.forEach((e, n) => __awaiter(this, void 0, void 0, function* () {
                        if ("课程:100%" != e.querySelector(".course_num").innerText && -1 == this.parentIndex) {
                            clearInterval(t), this.parentIndex = n;
                            let l = e.querySelector(".to-study");
                            yield sleep(200), l.click(), setTimeout(() => {
                                window.close()
                            }, 1500)
                        }
                    })), this.topIndex += 1
                }), 3e3)
            })
        }

        getDoing() {
            return new Promise(e => {
                let t = !1;
                ElementObj.statusEles = document.querySelectorAll(".li-item .el-progress-bar__inner"), ElementObj.statusEles.forEach((n, l) => {
                    let i = n.style.width;
                    console.log("status===>>>", i), parseInt(i) <= 98 && 0 == t && (t = !0, e(l))
                }), t || e(0)
            })
        }

        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                ElementObj.$allTask.forEach((e, t) => {
                    "100%" != e.querySelector(".four").innerText && -1 == this.currentIndex && (this.currentIndex = t)
                }), ElementObj.$handleSpeedUp.style.display = "none", showTip("🔉初始化完成,5秒后开始播放", 3e3);
                let e = ElementObj.$allTask[this.currentIndex];
                yield sleep(200), e.click(), setTimeout(() => {
                    this.handleClickSpeedUp()
                }, 4500), console.log("this.currentIndex==>>>", this.currentIndex)
            })
        }

        getVideoDom() {
            return new Promise(e => {
                let t = setInterval(() => {
                    ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0))
                }, 1e3)
            })
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.timer), yield this.getVideoDom(), ElementObj.$video.setAttribute("muted", "muted"), ElementObj.$video.volume = 0;
                let e = document.querySelector(".xgplayer-start");
                yield sleep(200), e.click(), ElementObj.$video.playbackRate = toolOption.accelerator, this.punchCard(), ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "加速成功", this.listenVidoeStatus(), ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () {
                    if (this.currentIndex >= ElementObj.$allTask.length - 1) return setTimeout(() => {
                        window.close()
                    }, 1500), void location.replace("https://www.ttcdw.cn/p/uc/project");
                    this.currentIndex += 1;
                    let e = ElementObj.$allTask[this.currentIndex];
                    yield sleep(300), e.click(), setTimeout(() => {
                        this.handleClickSpeedUp()
                    }, 4500)
                })), ElementObj.$video.addEventListener("pause", () => {
                    console.log("视频暂停了")
                }), ElementObj.$video.addEventListener("playing", () => {
                    console.log("视频正在播放中")
                }), ElementObj.$video.addEventListener("waiting", () => {
                    console.log("waiting,视频正在加载中")
                })
            })
        }

        listenVidoeStatus() {
            this.timer = setInterval(() => {
                if (ElementObj.$video = document.querySelector("video"), ElementObj.$video) {
                    let e = ElementObj.$video.paused;
                    console.log("视频当前是否暂停==>>>>", e), console.log("readyState==>>>", ElementObj.$video.readyState), e && (ElementObj.$video.setAttribute("muted", "muted"), ElementObj.$video.volume = 0, ElementObj.$video.play())
                }
            }, 3e3)
        }

        punchCard() {
            setInterval(() => {
                let e = document.querySelector("#comfirmClock");
                e && e.click()
            }, 5e3)
        }
    }

    class qingyangzgzjzj extends Main {
        constructor() {
            super(), this.taskLength = 0, this.parentIndex = -1, this.currentIndex = -1, this._init()
        }

        _init() {
            let e = setInterval(() => {
                ElementObj.$parentNodes = document.querySelectorAll(".swiper-slide"), ElementObj.$parentNodes.length && (clearInterval(e), this.getParentIndex())
            }, 1e3)
        }

        getParentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                showTip("正在初始化", 1500), ElementObj.$parentNodes.forEach((e, t) => {
                    let n = e.querySelector(".progresstext").innerText;
                    parseInt(n) < 97 && -1 == this.parentIndex && (this.parentIndex = t, console.log(parseInt(n)), console.log("parentIndex==>>>", this.parentIndex), ElementObj.$parentNodes[this.parentIndex].querySelector(".left-img").click())
                }), -1 != this.parentIndex ? this.getCurrentIndex() : alert("课程已全部播放完")
            })
        }

        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                ElementObj.$allTask = document.querySelectorAll(".class-catlog ul li ul li"), yield sleep(2e3), console.log("this.currentIndex==>>", this.currentIndex), ElementObj.$handleSpeedUp.style.display = "none", showTip("🔉初始化完成,5秒后自动开始播放", 3e3), this.handleClickSpeedUp()
            })
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.timer), yield this.getVideoDom(), ElementObj.$video = document.querySelector("video"), ElementObj.$video.volume = 0, ElementObj.$video.setAttribute("muted", "muted"), ElementObj.$video.playbackRate = toolOption.accelerator, ElementObj.$video.play(), ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "加速成功", this.listenVidoeStatus(), ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () {
                    if (ElementObj.$allTask = document.querySelectorAll(".class-catlog ul li ul li"), yield sleep(1500), this.currentIndex >= ElementObj.$allTask.length - 1) return this.parentIndex >= ElementObj.$parentNodes.length - 1 ? void alert("课程已全部播放完了") : (this.parentIndex += 1, yield sleep(200), ElementObj.$parentNodes[this.parentIndex].querySelector(".left-img").click(), this.currentIndex = 0, showTip("🔉正在切换视频,5秒后开始播放"), void setTimeout(() => {
                        this.handleClickSpeedUp()
                    }, 5e3));
                    this.currentIndex += 1;
                    let e = document.querySelector(".nextdontcheatorshit");
                    yield sleep(200), null == e || e.click(), setTimeout(() => {
                        this.handleClickSpeedUp()
                    }, 5e3)
                })), ElementObj.$video.addEventListener("pause", () => {
                    console.log("视频暂停了")
                }), ElementObj.$video.addEventListener("playing", () => {
                    console.log("视频正在播放中")
                }), ElementObj.$video.addEventListener("waiting", () => {
                    console.log("waiting,视频正在加载中")
                })
            })
        }

        getVideoDom() {
            return new Promise(e => {
                let t = setInterval(() => {
                    ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0))
                }, 1e3)
            })
        }

        listenVidoeStatus() {
            this.timer = setInterval(() => {
                if (ElementObj.$video = document.querySelector("video"), ElementObj.$video) {
                    let e = ElementObj.$video.paused;
                    console.log("视频当前是否暂停==>>>>", e), e && (ElementObj.$video.setAttribute("muted", "muted"), ElementObj.$video.volume = 0, ElementObj.$video.play())
                }
            }, 3e3)
        }
    }

    class lanzhouwenli extends Main {
        constructor() {
            super(), this.taskLength = 0, this.parentIndex = -1, this.currentIndex = -1, this._init()
        }

        _init() {
            let e = setInterval(() => {
                ElementObj.$allTask = document.querySelectorAll(".video"), ElementObj.$allTask.length && (clearInterval(e), this.getCurrentIndex())
            }, 1e3)
        }

        getParentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
            })
        }

        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                ElementObj.$allTask.forEach((e, t) => {
                    let n = e.querySelector(".el-progress__text").innerText;
                    parseInt(n) < 96 && -1 == this.currentIndex && (this.currentIndex = t)
                }), -1 != this.currentIndex ? (showTip("🔉🔉🔉初始化完成,即将开始播放", 3e3), yield sleep(2e3), ElementObj.$allTask[this.currentIndex].click(), yield sleep(2500), this.handleClickSpeedUp()) : alert("当前章节课程已全部播放完")
            })
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
                yield this.getVideoDom(), document.querySelector(".volume-icon").classList.add("mute"), ElementObj.$video.volume = 0, yield sleep(200), ElementObj.$video.playbackRate = toolOption.accelerator, ElementObj.$video.play(), ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "加速成功", ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () {
                    if (yield sleep(1500), this.currentIndex >= ElementObj.$allTask.length - 1 && (this.parentIndex += 1, yield sleep(200), ElementObj.$parentNodes[this.parentIndex].querySelector(".left-img").click(), this.parentIndex >= ElementObj.$parentNodes.length - 1)) return void alert("课程已全部播放完了");
                    let e = document.querySelector(".videoleft img");
                    yield sleep(200), e.click(), showTip("正在切换课程", 3e3), setTimeout(() => __awaiter(this, void 0, void 0, function* () {
                        this.currentIndex += 1;
                        let e = ElementObj.$allTask[this.currentIndex];
                        yield sleep(2e3), null == e || e.click(), setTimeout(() => {
                            this.handleClickSpeedUp()
                        }, 5e3)
                    }), 5500)
                })), ElementObj.$video.addEventListener("pause", () => {
                    console.log("播放暂停了"), setTimeout(() => {
                        ElementObj.$video.play()
                    }, 4e3)
                })
            })
        }

        getVideoDom() {
            return new Promise(e => {
                let t = setInterval(() => {
                    ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0))
                }, 1e3)
            })
        }
    }

    class xuexituqiang extends Main {
        constructor() {
            super(), this.taskLength = 0, this.parentIndex = -1, this.currentIndex = -1, this._init()
        }

        _init() {
            let e = setInterval(() => {
                ElementObj.$allTask = document.querySelectorAll(".lesson"), ElementObj.$allTask.length && (clearInterval(e), this.getCurrentIndex())
            }, 1e3)
        }

        getParentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
            })
        }

        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                ElementObj.$allTask.forEach((e, t) => {
                    e.classList.contains("lesson-in") && (this.currentIndex = t)
                }), showTip("🔉🔉🔉初始化完成,可点击播放", 3e3)
            })
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
                yield this.getVideoDom(), yield sleep(200), ElementObj.$video.playbackRate = toolOption.accelerator, ElementObj.$video.play(), ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "加速成功", ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () {
                    if (yield sleep(1500), this.currentIndex >= ElementObj.$allTask.length - 1) return void alert("当前章节课程已全部播放完了");
                    this.currentIndex += 1;
                    let e = ElementObj.$allTask[this.currentIndex];
                    yield sleep(2e3), null == e || e.click(), setTimeout(() => {
                        this.handleClickSpeedUp()
                    }, 5e3)
                })), ElementObj.$video.addEventListener("pause", () => {
                    console.log("播放暂停了"), setTimeout(() => {
                        ElementObj.$video.play()
                    }, 1e3)
                })
            })
        }

        getVideoDom() {
            return new Promise(e => {
                let t = setInterval(() => {
                    ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0))
                }, 1e3)
            })
        }
    }

    class guojiazhihuijiaoyu extends Main {
        constructor() {
            super(), this.taskLength = 0, this.currentIndex = -1, this._init()
        }

        _init() {
            let e = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                let t = document.querySelectorAll(".video-title .four");
                t.length && (clearInterval(e), ElementObj.$allTask = t, this.getCurrentIndex())
            }), 1e3)
        }

        getCurrentIndex() {
            ElementObj.$allTask.forEach((e, t) => {
                "100%" != e.innerText && -1 == this.currentIndex && (this.currentIndex = t)
            }), -1 == this.currentIndex && (this.currentIndex = 0), showTip("🔉🔉🔉初始化完成,可点击加速", 3e3), console.log("this.currentIndex==>>>", this.currentIndex)
        }

        getVideoDom() {
            return new Promise(e => {
                let t = setInterval(() => {
                    ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0))
                }, 1e3)
            })
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
                let e = ElementObj.$allTask[this.currentIndex];
                yield sleep(300), e.click(), yield sleep(3e3), document.querySelector(".xgplayer-icon-play").click(), yield this.getVideoDom(), ElementObj.$video.play(), ElementObj.$video.playbackRate = toolOption.accelerator, this.listenVidoeStatus();
                let t = document.querySelector(".layui-layer-btn0");
                t && t.click(), ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "加速成功", this.listenTopic(), ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () {
                    let e = document.querySelector(".layui-layer-btn0");
                    yield sleep(3e3), e && e.click(), this.currentIndex += 1, setTimeout(() => {
                        this.handleClickSpeedUp()
                    }, 5e3)
                }))
            })
        }

        listenTopic() {
            setInterval(() => {
                try {
                    document.querySelector("#submit") && this.answerTopic()
                } catch (e) {
                }
            }, 5e3)
        }

        answerTopic() {
            return __awaiter(this, void 0, void 0, function* () {
                let e = document.querySelectorAll(".choice li")[0];
                yield sleep(200), e.click();
                let t = document.querySelector("#submit");
                yield sleep(1e3), t.click(), yield sleep(2e3), t = document.querySelector("#submit"), yield sleep(200), t.click(), yield sleep(4500);
                let n = document.querySelector(".layui-layer-btn0");
                yield sleep(200), n.click()
            })
        }

        listenVidoeStatus() {
            this.timer = setInterval(() => {
                if (ElementObj.$video = document.querySelector("video"), ElementObj.$video) {
                    let e = ElementObj.$video.paused;
                    console.log("视频当前是否暂停==>>>>", e), e && (ElementObj.$video.setAttribute("muted", "muted"), ElementObj.$video.volume = 0, ElementObj.$video.play())
                }
            }, 1e4)
        }
    }

    class lanzhouchengren extends Main {
        constructor() {
            super(), this.taskLength = 0, this.parentIndex = -1, this.currentIndex = -1, this.videoplaying = 3, this.loadedCount = 0, this.type = 1, this._init()
        }

        _init() {
            let e = setInterval(() => {
                ElementObj.$allTask = document.querySelectorAll(".activity li"), ElementObj.$allTask.length && (clearInterval(e), this.getCurrentIndex())
            }, 1e3)
        }

        getParentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
            })
        }

        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                ElementObj.$allTask.forEach((e, t) => {
                    e.classList.contains("cur") && (this.currentIndex = t)
                }), -1 == this.currentIndex && (this.currentIndex = 0), console.log("currentIndex==>>", this.currentIndex), ElementObj.$handleSpeedUp.style.display = "none", showTip("🔉初始化完成,5秒后开始播放", 3e3), this.handleClickSpeedUp()
            })
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
                yield this.getVideoDom(), yield sleep(200), 1 == this.type && setTimeout(() => __awaiter(this, void 0, void 0, function* () {
                    this.currentIndex += 1;
                    let e = ElementObj.$allTask[this.currentIndex], t = null == e ? void 0 : e.querySelector("h3");
                    yield sleep(2e3), null == t || t.click()
                }), 3e3), 2 == this.type && (ElementObj.$video.volume = 0, ElementObj.$video.playbackRate = toolOption.accelerator, ElementObj.$video.play(), ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "加速成功", this.reloadPage(), ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () {
                    if (this.videoplaying = 3, yield sleep(1500), this.currentIndex >= ElementObj.$allTask.length - 1) return void alert("当前章节课程已全部播放完了");
                    this.currentIndex += 1;
                    let e = ElementObj.$allTask[this.currentIndex], t = null == e ? void 0 : e.querySelector("h3");
                    yield sleep(2e3), null == t || t.click()
                })), ElementObj.$video.addEventListener("pause", () => {
                    console.log("播放暂停了"), this.videoplaying = 1, setTimeout(() => {
                        ElementObj.$video.play()
                    }, 1e3)
                }), ElementObj.$video.addEventListener("playing", () => {
                    this.videoplaying = 2, console.log("视频正在播放中")
                }))
            })
        }

        getVideoDom() {
            return new Promise(e => {
                let t = setInterval(() => {
                    ElementObj.$video = document.querySelector("video"), ElementObj.$myFrame = document.querySelector("#myFrame"), ElementObj.$video && (clearInterval(t), this.type = 2, e(!0)), ElementObj.$myFrame && (clearInterval(t), this.type = 1, e(!0))
                }, 1e3)
            })
        }

        reloadPage() {
            return __awaiter(this, void 0, void 0, function* () {
                let e = 600, t = 0, n = setInterval(() => {
                    (t += 1) % 15 == 0 && (console.log(`程序正在检测中,已成功检测${t}次`), console.clear()), t % 5 == 0 && console.log(`程序正在检测中,已成功检测${t}次`), e <= 0 && (clearInterval(n), location.reload()), e -= 1
                }, 1e3)
            })
        }
    }

    class tsbtchinamde extends Main {
        constructor() {
            super(), this.taskLength = 0, this.studyType = 1, this.currentIndex = -1, this._init()
        }

        _init() {
            let e = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                let t = document.querySelectorAll(".chapterlist .item p"),
                    n = document.querySelectorAll(".chapterlist .chapter-li .drop p");
                console.log(t), (t.length || n.length) && (clearInterval(e), ElementObj.$allTask = n.length ? n : t, this.getCurrentIndex(), ElementObj.$handleSpeedUp.style.display = "none")
            }), 1e3)
        }

        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                let e = [];
                ElementObj.$allTask.forEach((t, n) => {
                    let l = t.querySelector(".class_percent");
                    if (l) {
                        let t = l.innerText;
                        e.push(parseInt(t))
                    } else e.push(0)
                }), e.reverse();
                for (var t = 0; t <= e.length - 1; t++) if (e[t] < 98) {
                    console.log(t, "===>>>", e[t]), this.currentIndex = e.length - t - 1;
                    break
                }
                if (console.log("111111111this.currentIndex==>>>", this.currentIndex), 0 == this.currentIndex) {
                    ElementObj.$allTask[1].querySelector("a").click(), yield sleep(4e3), ElementObj.$allTask = document.querySelectorAll(".chapterlist .drop p"), yield sleep(200);
                    let e = ElementObj.$allTask[0].querySelector(".class_percent").innerText;
                    if (!(parseInt(e) < 98)) return void alert("当前科目课程已全部播放完");
                    this.currentIndex = 0
                }
                -1 != this.currentIndex ? (ElementObj.$handleSpeedUp.style.display = "none", showTip("🔉🔉🔉初始化完成,5s后开始播放", 3e3), console.log("this.currentIndex==>>>", this.currentIndex), this.handleClickSpeedUp()) : alert("当前科目课程已全部播放完")
            })
        }

        getVideoDom() {
            return new Promise(e => {
                let t = setInterval(() => {
                    ElementObj.$video = document.querySelector("video"), ElementObj.$video.src ? (clearInterval(t), e(1)) : (clearInterval(t), e(2))
                }, 1e3)
            })
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.timer);
                let e = ElementObj.$allTask[this.currentIndex].querySelector("a");
                yield sleep(300), e.click(), this.studyType = yield this.getVideoDom(), 1 == this.studyType && (ElementObj.$video.volume = 0, ElementObj.$video.setAttribute("muted", "muted"), yield sleep(200), ElementObj.$video.play(), ElementObj.$video.playbackRate = toolOption.accelerator, ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "加速成功", this.listenVidoeStatus(ElementObj.$video, () => {
                    ElementObj.$video.volume = 0, ElementObj.$video.play()
                }));
                let t = 1 == this.studyType ? $el("#player") : $el("#thirdplayer");
                this.changeHtml(t), this.reloadPage(), this.listenPageHide(), 1 == this.studyType ? this.listenAbnormal(1) : this.listenAbnormal(0), setTimeout(() => {
                    this.addInfo("⚠️⚠️⚠️课程采用倒着播放,请勿手动更换课程", 0)
                }, 1e3), ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () {
                    location.reload()
                }))
            })
        }

        reloadPage() {
            return __awaiter(this, void 0, void 0, function* () {
                let e = 360, t = setInterval(() => {
                    e <= 0 && (clearInterval(t), location.reload()), e -= 1
                }, 1e3)
            })
        }

        listenAbnormal(e) {
            showTip("🔉课件正在学习,请务点击或长时间隐藏");
            let t = 0;
            setInterval(() => {
                if (t += 1, console.log("type==>>>", e), 0 == e && this.addInfo(`已监测${t}次,当前状态正在学习`), 1 == e) {
                    let e = (ElementObj.$video.currentTime / 60).toFixed(2);
                    this.addInfo(`已监测${t}次,当前状态正在学习,已播放${e}分钟`)
                }
                document.querySelector(".layui-layer-btn0") && location.reload()
            }, 5e3)
        }
    }

    tsbtchinamde.ctxid = 26;

    class zjzjsrc extends Main {
        constructor() {
            super(), this.taskLength = 0, this.currentIndex = -1, this._init()
        }

        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let e = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    console.log("已寻找1次");
                    let t = document.querySelector("td .btn-xs");
                    ElementObj.$video = document.querySelector("video"), t && (clearInterval(e), t.click(), yield sleep(2e3), ElementObj.$allTask = document.querySelectorAll(".btn-xs[name='btn1']"), this.getCurrentIndex()), ElementObj.$video && (ElementObj.$handleSpeedUp.style.display = "none", clearInterval(e), this.handleClickSpeedUp())
                }), 1e3)
            })
        }

        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                showTip("正在初始化"), ElementObj.$handleSpeedUp.style.display = "none";
                let e = 0, t = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    e >= ElementObj.$allTask.length - 1 && (clearInterval(t), alert("检测到课程已全不学完")), ElementObj.$allTask[e].click(), yield sleep(200);
                    let n = document.querySelector(".btn-xs[value='开始学习']");
                    null == n || n.click(), yield sleep(200);
                    let l = document.querySelectorAll(".progress-bar"), i = -1;
                    for (var o = 0; o <= l.length - 1; o++) {
                        let e = l[o].style.width;
                        if (console.log("status==>>", e), 100 != parseInt(e)) {
                            i = o, clearInterval(t);
                            break
                        }
                    }
                    yield sleep(1e3), -1 != i && (clearInterval(t), this.step2(i)), e += 1
                }), 5e3)
            })
        }

        step2(e) {
            let t = document.querySelectorAll("td a")[e];
            GM_openInTab(t.href, {active: !0}), setTimeout(() => {
                window.close()
            }, 1500)
        }

        getVideoDom() {
            return new Promise(e => {
                let t = setInterval(() => {
                    ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0))
                }, 1e3)
            })
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.timer), yield this.getVideoDom(), ElementObj.$video.volume = 0, ElementObj.$video.setAttribute("muted", "muted"), yield sleep(200), ElementObj.$video.play(), ElementObj.$video.playbackRate = toolOption.accelerator, ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () {
                    this.videoplaying = -1, GM_openInTab("https://zj.zjjsrc.cn/member/project_toMyCourseList.page", {active: !0})
                })), ElementObj.$video.addEventListener("pause", () => {
                    let e;
                    clearInterval(e), e = setTimeout(() => {
                        document.querySelector(".vjs-play-control").click()
                    }, 100)
                })
            })
        }
    }

    zjzjsrc.ctxid = 26;

    class gzjxjy extends Main {
        constructor() {
            super(), this.taskLength = 0, this.currentIndex = -1, this._init()
        }

        _init() {
            let e = setInterval(() => {
                ElementObj.$allTask = document.querySelectorAll(".el-step"), ElementObj.$allTask.length && (clearInterval(e), this.getCurrentIndex())
            }, 1e3)
        }

        getCurrentIndex() {
            let e = -1;
            ElementObj.$allTask.forEach((t, n) => {
                t.querySelector(".status-tip") || -1 != this.currentIndex || (this.currentIndex = n), t.classList.contains("active") && (e = n)
            }), console.log("贵州===>>>", this.currentIndex), e != this.currentIndex && ElementObj.$allTask[this.currentIndex].querySelector(".step-title").click(), showTip("✅✅✅初始化完成,即将开始自动播放"), ElementObj.$handleSpeedUp.style.display = "none", this.handleClickSpeedUp()
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
                yield this.getVideoDom(), ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => {
                    ElementObj.$video.playbackRate = toolOption.accelerator, ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "加速成功"
                }, 3e3), ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () {
                    clearInterval(this.timer), this.currentIndex >= ElementObj.$allTask.length - 1 ? alert("课程已全部部分完") : (this.currentIndex += 1, yield sleep(500), ElementObj.$allTask[this.currentIndex].querySelector(".step-title").click(), showTip("✅✅✅5秒后自动切换下一个", 4500), setTimeout(() => {
                        location.reload()
                    }, 5e3))
                })), ElementObj.$video.addEventListener("pause", () => __awaiter(this, void 0, void 0, function* () {
                    yield sleep(1e3);
                    let e = document.querySelector(".dialog-footer button");
                    e ? e.click() : setTimeout(() => {
                        ElementObj.$video.play()
                    }, 1e3)
                }))
            })
        }

        getVideoDom() {
            return new Promise(e => {
                let t = setInterval(() => {
                    ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0))
                }, 1e3)
            })
        }
    }

    class gzjxjy_Answer {
        constructor() {
            this.currentIndex = 0, this.$allTask = document.querySelectorAll(".question-title"), this.currentTask = {
                type: 1,
                topicName: "",
                option: []
            }, this.timer = 0, this._init()
        }

        _init() {
            let e = setInterval(() => {
                this.timer += 1, this.timer > 1920 && (this.submit(), clearInterval(e))
            }, 1e3), t = setInterval(() => {
                this.$allTask = document.querySelectorAll(".question-title"), this.$allTask.length && (clearInterval(t), showTip("🔉初始化完成,可点击加速", 3e3), this.play())
            }, 1e3)
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
                yield sleep(2e3);
                let e = this.$allTask[this.currentIndex], t = e.querySelector(".show-text");
                this.currentTask.topicName = t.innerText, ElementObj.$ctxTopicName = document.querySelector(".cxtsection3 .ctxtopic-name"), ElementObj.$ctxTopicName.innerText = this.currentTask.topicName, this.currentTask.option = [];
                let n = e.querySelectorAll(".el-radio__label");
                n.length ? this.currentTask.type = 1 : (this.currentTask.type = 2, n = e.querySelectorAll(".el-checkbox__label")), n.forEach((e, t) => {
                    this.currentTask.option.push(e.innerText)
                });
                let l = yield this.searchDate(this.currentTask);
                console.log("res===>>>", l);
                let i = 0, o = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    if (i >= n.length) {
                        if (clearInterval(o), yield sleep(2e3), this.currentIndex >= this.$allTask.length - 1) return;
                        this.currentIndex += 1, this.play()
                    }
                    if (-1 != l.indexOf(`${i}`)) {
                        n[i].click()
                    }
                    i += 1
                }), 500)
            })
        }

        searchDate(e) {
            return __awaiter(this, void 0, void 0, function* () {
                let t = yield fetchData({url: bserUrl + `/searchtopic?topicname=${e.topicName}`, method: "GET"}),
                    n = ["0"];
                if (t.result.topickey) n = t.result.topickey.split(","); else {
                    2 == e.type && (n = ["0", "1", "2"]);
                    let t = `\n                <div class="cxtsection cxtsection4">\n                      <div class="tag">未搜索到</div>\n                      <div class="ctxtopic-name">${e.topicName}</div>\n                    </div>\n                `;
                    ElementObj.$myTool.innerHTML += t
                }
                return n
            })
        }

        saveTopic() {
            new Promise(e => __awaiter(this, void 0, void 0, function* () {
                let t = yield fetchData({
                    method: "GET",
                    url: bserUrl + `/savetopic?topic=${JSON.stringify(this.currentTask)}`
                });
                e(t)
            }))
        }

        submit() {
            document.querySelector(".btn-submit").click()
        }
    }

    class lzrejxjy extends Main {
        constructor() {
            super(), this.taskLength = 0, this.currentIndex = -1, this._init()
        }

        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let e = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    console.log("===>>>已寻找1次");
                    try {
                        let t = document.querySelectorAll(".my-center2RM .pull-left a.trans")[1];
                        if (console.log(!!t), t) return clearInterval(e), GM_setValue("homeUrl", location.href), null == t || t.click(), showTip("🔉正在初始化"), yield sleep(2e3), ElementObj.$parentNodes = document.querySelectorAll(".class2Li"), void this.findParentIndex();
                        document.querySelectorAll(".learn-menu-cell").length && (clearInterval(e), this.getCurrentIndex())
                    } catch (e) {
                    }
                }), 1e3)
            })
        }

        getCurrentIndex() {
            var e;
            return __awaiter(this, void 0, void 0, function* () {
                let t = document.querySelectorAll(".learn-menu-cell")[1];
                if (!t.classList.contains("learn-menu-cur")) {
                    t.querySelector("a").click()
                }
                yield sleep(3e3);
                let n = document.querySelector(".contentIframe");
                ElementObj._document = n.contentWindow.document, ElementObj.$allTask = ElementObj._document.querySelectorAll(".s_point"), showTip("正在初始化"), ElementObj.$handleSpeedUp.style.display = "none";
                for (var l = 0; l <= ElementObj.$allTask.length - 1; l++) {
                    if (!ElementObj.$allTask[l].querySelector(".item_done_icon").classList.contains("done_icon_show")) {
                        this.currentIndex = l;
                        break
                    }
                }
                if (-1 == this.currentIndex) {
                    let e = GM_getValue("homeUrl", null);
                    return console.log("homeUrl==>>>", e), GM_openInTab(e, {active: !0}), void setTimeout(() => {
                        window.close()
                    }, 1500)
                }
                null === (e = ElementObj.$allTask[this.currentIndex]) || void 0 === e || e.click(), showTip("初始化完成,5秒后开始播放"), this.handleClickSpeedUp()
            })
        }

        findParentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                let e;
                ElementObj.$handleSpeedUp.style.display = "none", ElementObj.$parentNodes.forEach((t, n) => {
                    let l = t.querySelector(".color-theme").innerText;
                    parseInt(l) <= 98 && -1 == this.currentIndex && (this.currentIndex = n, e = t.querySelector("a.btn-theme"))
                }), -1 != this.currentIndex ? (e.click(), setTimeout(() => {
                    window.close()
                }, 1500)) : alert("全部课程已学完")
            })
        }

        getVideoDom() {
            return new Promise(e => {
                let t = setInterval(() => {
                    let n = ElementObj._document.querySelector("#mainFrame").contentWindow.document;
                    ElementObj.$video = n.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0))
                }, 1e3)
            })
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime), yield this.getVideoDom(), ElementObj.$video.volume = 0, ElementObj.$video.setAttribute("muted", "muted"), yield sleep(200), ElementObj.$video.play(), ElementObj.$video.playbackRate = toolOption.accelerator, this.listenRebort(), this.listenVidoeStatus(ElementObj.$video, () => {
                    ElementObj.$video.volume = 0, ElementObj.$video.play()
                }), ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () {
                    if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                        let e = GM_getValue("homeUrl", null);
                        return console.log("homeUrl==>>>", e), GM_openInTab(e, {active: !0}), void setTimeout(() => {
                            window.close()
                        }, 1500)
                    }
                    this.currentIndex += 1, ElementObj.$allTask[this.currentIndex].click(), showTip("🔉正在切换课程"), setTimeout(() => {
                        this.handleClickSpeedUp()
                    }, 5e3)
                })), ElementObj.$video.addEventListener("pause", () => {
                    ElementObj.$video.volume = 0, ElementObj.$video.play()
                })
            })
        }

        updateSpeedElement(e) {
            localStorage.setItem("_localSpeed", e.toString()), ElementObj.$video.playbackRate = e
        }

        listenRebort() {
            this.listenRebortTime = setInterval(() => {
                console.log("人机检测中==》》》");
                let e = document.querySelector(".layui-layer-btn0");
                e && setTimeout(() => {
                    e.click(), ElementObj.$video.play()
                }, 3e3)
            }, 1e4)
        }
    }

    lzrejxjy.ctxid = 26;

    class xuzhouyikedaxue extends Main {
        constructor() {
            super(), this.taskLength = 0, this.currentIndex = -1, this.parentIndex = -1, this._init()
        }

        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let e = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    console.log("===>>>已寻找1次");
                    try {
                        let t = document.querySelector("#courseware_main_menu").querySelector("a");
                        t && (clearInterval(e), t.click(), this.findParentIndex())
                    } catch (e) {
                    }
                }), 1e3)
            })
        }

        findParentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                showTip("🔉正在初始化", 2500), yield sleep(4500), ElementObj.$handleSpeedUp.style.display = "none";
                let e = document.querySelector(".contentIframe").contentWindow.document;
                ElementObj.$parentNodes = e.querySelectorAll(".vcon li"), ElementObj.$parentNodes.forEach((e, t) => {
                    let n = e.querySelector("span");
                    (n.classList.contains("undo") || n.classList.contains("doing")) && -1 == this.parentIndex && (this.parentIndex = t)
                }), console.log("this.parentIndex===>>>", this.parentIndex), -1 != this.parentIndex ? (ElementObj.$parentNodes[this.parentIndex].querySelector("a").click(), this.getCurrentIndex()) : alert("当前课程已全部播发完")
            })
        }

        getCurrentIndex() {
            var e;
            return __awaiter(this, void 0, void 0, function* () {
                showTip("正在初始化", 2500), yield sleep(4500);
                let t = document.querySelector(".contentIframe");
                ElementObj._document = t.contentWindow.document, ElementObj.$allTask = ElementObj._document.querySelectorAll(".menub"), this.currentIndex = 0, null === (e = ElementObj.$allTask[this.currentIndex]) || void 0 === e || e.click(), showTip("初始化完成,5秒后开始播放"), this.handleClickSpeedUp()
            })
        }

        getVideoDom() {
            return new Promise(e => {
                let t = setInterval(() => {
                    let n = document.querySelector(".contentIframe");
                    ElementObj._document = n.contentWindow.document;
                    let l = ElementObj._document.querySelector("#mainFrame").contentDocument;
                    if (ElementObj.$video = l.querySelector("video"), ElementObj.$video) return clearInterval(t), void e(1);
                    l.querySelector("#content_frame");
                    clearInterval(t), e(2)
                }, 1e3)
            })
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime), clearInterval(this.timer2);
                let e = yield this.getVideoDom();
                console.log("studytype===>>>", e), this.listenRebort(), 1 == e && (ElementObj.$video.volume = 0, yield sleep(200), ElementObj.$video.play(), setTimeout(() => {
                    ElementObj.$video.playbackRate = toolOption.accelerator
                }, 3e3), this.listenVidoeStatus(ElementObj.$video, () => {
                    ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => {
                        ElementObj.$video.playbackRate = toolOption.accelerator
                    }, 3e3)
                }), ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () {
                    yield sleep(3e3), this.playNext()
                }))), 2 == e && (this.timer2 = setTimeout(() => {
                    this.playNext()
                }, 7e3))
            })
        }

        listenRebort() {
            this.listenRebortTime = setInterval(() => {
                let e = document.querySelector(".layui-layer-btn a");
                e && (e.click(), ElementObj.$video.play(), setTimeout(() => {
                    ElementObj.$video.playbackRate = toolOption.accelerator
                }, 3e3))
            }, 1e4)
        }

        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
                if (showTip("✅✅✅播放完成,正在切换课程", 3500), this.currentIndex >= ElementObj.$allTask.length - 1) return this.parentIndex += 1, ElementObj.$parentNodes[this.parentIndex].querySelector("a").click(), void setTimeout(() => {
                    this.getCurrentIndex()
                }, 4500);
                this.currentIndex += 1, ElementObj.$allTask[this.currentIndex].click(), setTimeout(() => {
                    this.handleClickSpeedUp()
                }, 4e3)
            })
        }
    }

    xuzhouyikedaxue.ctxid = 26;

    class xibeisfzyjy extends Main {
        constructor() {
            super(), this.studyType = 2, this.taskLength = 0, this.parentIndex = -1, this.currentIndex = -1, this.swiperIndex = -1, this._init()
        }

        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let e = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    console.log("===>>>已寻找1次");
                    try {
                        let t = document.querySelectorAll(".el-tree-node"),
                            n = document.querySelectorAll(".m-chapterList .section");
                        (t.length || n.length) && (this.studyType = t.length ? 2 : 1, ElementObj.$allTask = t.length ? t : n, clearInterval(e), this.getCurrentIndex()), ElementObj.$parentNodes = document.querySelectorAll(".project-courseBottom"), ElementObj.$parentNodes.length && (clearInterval(e), this.getParentIndex()), "preview.dccloud.com.cn" == location.host && (clearInterval(e), yield sleep(1500), window.close())
                    } catch (e) {
                    }
                }), 1e3)
            })
        }

        getParentIndex() {
            for (var e = 0; e <= ElementObj.$parentNodes.length - 1; e++) {
                if ("已学习" != ElementObj.$parentNodes[e].querySelector("span")) {
                    this.parentIndex = e;
                    break
                }
            }
            -1 == this.parentIndex && alert("课程已全部学完"), ElementObj.$parentNodes[e].querySelector(".project-courseButton").click()
        }

        getSwiperIndex() {
            var e;
            return __awaiter(this, void 0, void 0, function* () {
                if (ElementObj.$video = document.querySelector("video"), yield sleep(200), !ElementObj.$video) return ElementObj.$docs = document.querySelectorAll(".abcd"), void (ElementObj.$docs.length && this.playDoc());
                if (ElementObj.$swiperItem = document.querySelectorAll(".public-articleSlideList"), ElementObj.$swiperItem.length) {
                    for (var t = 0; t <= ElementObj.$swiperItem.length - 1; t++) {
                        if ("已学习" != ElementObj.$swiperItem[t].querySelector(".video-status").innerText) {
                            this.swiperIndex = t;
                            break
                        }
                    }
                    if (console.log("this.swiperIndex==>>", this.swiperIndex), -1 == this.swiperIndex) this.playNext(); else if (0 == this.swiperIndex) this.handleClickSpeedUp(); else {
                        ElementObj.$swiperItem[this.swiperIndex].querySelector(".el-icon-video-play").click(), showTip("⚠️⚠️⚠️正在初始化", 3500);
                        let t = null === (e = document.querySelector(".el-message-box__btns")) || void 0 === e ? void 0 : e.lastChild;
                        yield sleep(2e3), t.click(), setTimeout(() => {
                            this.handleClickSpeedUp()
                        }, 5e3)
                    }
                } else this.handleClickSpeedUp()
            })
        }

        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                ElementObj.$handleSpeedUp.style.display = "none", showTip("正在初始化", 2500), yield sleep(3500);
                let e = 1 == this.studyType ? "section-cur" : "study";
                ElementObj.$allTask.forEach((t, n) => {
                    if (1 == this.studyType) {
                        t.classList.contains(e) && (this.currentIndex = n)
                    }
                    if (2 == this.studyType) {
                        "已学习" != t.querySelector("i").title && -1 == this.currentIndex && (this.currentIndex = n)
                    }
                }), -1 != this.currentIndex ? (2 == this.studyType && -1 != this.currentIndex && this.playNext(this.currentIndex - 1), showTip("⚠️⚠️⚠️初始化,请稍后", 3e3), 1 == this.studyType && this.handleClickSpeedUp(), 2 == this.studyType && this.getSwiperIndex()) : alert("当前课程章节已全部播放完")
            })
        }

        getVideoDom() {
            return new Promise(e => {
                let t = setInterval(() => {
                    ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0))
                }, 1e3)
            })
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
                if (clearInterval(this.listenVidoeStatusTimer), clearInterval(this.timer), yield this.getVideoDom(), ElementObj.$video.volume = 0, ElementObj.$video.setAttribute("muted", "muted"), yield sleep(200), ElementObj.$video.play(), setTimeout(() => {
                    ElementObj.$video.playbackRate = toolOption.accelerator
                }, 3e3), 2 == this.studyType) {
                    let e = yield this.getDocIndex();
                    setTimeout(() => {
                        this.eachPlayDoc(e)
                    }, 3e3), this.changeHtml($el("#video")), this.listenPageHide(), this.listenPlayTime(), this.reloadPage()
                }
                this.listenVidoeStatus(ElementObj.$video, () => {
                    ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => {
                        ElementObj.$video.playbackRate = toolOption.accelerator
                    }, 3e3)
                }), ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () {
                    var e;
                    if (showTip("🔉正在切换课程", 2500), 2 == this.studyType) if (this.swiperIndex >= ElementObj.$swiperItem.length - 1) location.reload(); else {
                        this.swiperIndex += 1, ElementObj.$swiperItem[this.swiperIndex].querySelector(".el-icon-video-play").click(), showTip("⚠️⚠️⚠️正在切换视频", 5e3);
                        let t = null === (e = document.querySelector(".el-message-box__btns")) || void 0 === e ? void 0 : e.lastChild;
                        yield sleep(2e3), t.click(), setTimeout(() => {
                            this.handleClickSpeedUp()
                        }, 5e3)
                    }
                    if (1 == this.studyType) {
                        if (this.currentIndex >= ElementObj.$allTask.length - 1) return void alert("当前章节课程已学完");
                        let e;
                        this.currentIndex += 1, null == (e = ElementObj.$allTask[this.currentIndex].querySelector("a")) || e.click()
                    }
                }))
            })
        }

        getDocIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                ElementObj.$docs = document.querySelectorAll(".abcd .file-box"), yield sleep(200), console.log("ElementObj.$docs==>>>", ElementObj.$docs);
                let e = -1;
                for (var t = 0; t <= ElementObj.$docs.length - 1; t++) {
                    if ("( 已完成 )" != ElementObj.$docs[t].querySelector(".fs12").innerText) {
                        e = t;
                        break
                    }
                }
                return e
            })
        }

        playDoc(e) {
            return __awaiter(this, void 0, void 0, function* () {
                let e = yield this.getDocIndex();
                console.log("index=====>>>", e), -1 != e ? this.eachPlayDoc(e, () => {
                    setTimeout(() => __awaiter(this, void 0, void 0, function* () {
                        this.playNext()
                    }), 2e3)
                }) : this.playNext()
            })
        }

        eachPlayDoc(e = 0, t) {
            if (console.log("eachPlayDoc===>>", e), -1 == e) return;
            let n = setInterval(() => {
                console.log("index===>>", e), e >= ElementObj.$docs.length - 1 && (clearInterval(n), console.log("结束"), "function" == typeof t && t()), ElementObj.$docs[e].querySelector("button").click(), e += 1
            }, 2e3)
        }

        playNext(e) {
            var t;
            return __awaiter(this, void 0, void 0, function* () {
                if (null != e && (this.currentIndex = e), this.currentIndex >= ElementObj.$allTask.length - 1) return void alert("当前章节课程已学完");
                this.currentIndex += 1;
                let n = ElementObj.$allTask[this.currentIndex].querySelectorAll("span")[1];
                null == n || n.click(), yield sleep(2e3);
                let l = null === (t = document.querySelector(".el-message-box__btns")) || void 0 === t ? void 0 : t.lastChild;
                l && l.click(), showTip("⚠️⚠️⚠️正在切换下一节", 4e3), setTimeout(() => {
                    this.getSwiperIndex()
                }, 4500)
            })
        }

        listenPlayTime() {
            showTip("🔉课件正在学习,请务点击或长时间隐藏");
            let e = 0;
            this.timer = setInterval(() => {
                e += 1;
                let t = (ElementObj.$video.currentTime / 60).toFixed(2);
                this.addInfo(`已监测${e}次,当前状态正在学习,已播放${t}分钟`)
            }, 5e3)
        }

        reloadPage() {
            return __awaiter(this, void 0, void 0, function* () {
                let e = 360, t = setInterval(() => {
                    e <= 0 && (clearInterval(t), location.reload()), e -= 1
                }, 1e3)
            })
        }
    }

    xibeisfzyjy.ctxid = 26;

    class henangongshe extends Main {
        constructor() {
            super(), this.taskLength = 0, this.parentIndex = -1, this.currentIndex = -1, this.videoplaying = -1, this.timer = null, this._init()
        }

        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let e = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    let t = document.querySelectorAll("#bxkBtudyDiv a");
                    t.length && (clearInterval(e), this.getParentIndex(t)), ElementObj.$allTask = document.querySelectorAll(".course-info .video-title"), ElementObj.$allTask.length && (clearInterval(e), this.getCurrentIndex()), ElementObj.$handleSpeedUp.style.display = "none"
                }), 1e3)
            })
        }

        getParentIndex(e) {
            return __awaiter(this, void 0, void 0, function* () {
                e[0].click(), showTip("⚠️⚠️⚠️正在初始化", 3e3), yield sleep(3e3), ElementObj.$parentNodes = document.querySelectorAll("tbody tr");
                for (var t = 0; t <= ElementObj.$parentNodes.length - 1; t++) {
                    let e = ElementObj.$parentNodes[t].querySelector("span").innerText;
                    if (parseInt(e) <= 98) {
                        this.parentIndex = t;
                        break
                    }
                }
                if (-1 == this.parentIndex) {
                    e[1].click(), yield sleep(3e3), ElementObj.$parentNodes = document.querySelectorAll("tbody tr");
                    for (t = 0; t <= ElementObj.$parentNodes.length - 1; t++) {
                        let e = ElementObj.$parentNodes[t].querySelector("span").innerText;
                        if (parseInt(e) <= 98) {
                            this.parentIndex = t;
                            break
                        }
                    }
                }
                if (-1 == this.parentIndex) return void alert("全部课程已学完");
                let n = GM_setValue("homeUrl", location.href);
                console.log("homeUrl==>>>", n), ElementObj.$parentNodes[this.parentIndex].querySelector("button").click(), setTimeout(() => {
                    window.close()
                }, 5500)
            })
        }

        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                showTip("⚠️⚠️⚠️正在初始化", 3500), ElementObj.$allTask.forEach((e, t) => {
                    "100%" != e.querySelector(".four").innerText && -1 == this.currentIndex && (this.currentIndex = t)
                }), ElementObj.$handleSpeedUp.style.display = "none", showTip("🔉初始化完成,5秒后开始播放", 3e3);
                let e = ElementObj.$allTask[this.currentIndex];
                yield sleep(200), e.click(), setTimeout(() => {
                    this.handleClickSpeedUp()
                }, 4500), console.log("this.currentIndex==>>>", this.currentIndex)
            })
        }

        getVideoDom() {
            return new Promise(e => {
                let t = setInterval(() => {
                    ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0))
                }, 1e3)
            })
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer), yield this.getVideoDom(), ElementObj.$video.setAttribute("muted", "muted"), ElementObj.$video.volume = 0;
                let e = document.querySelector(".xgplayer-start");
                yield sleep(200), e.click(), ElementObj.$video.playbackRate = toolOption.accelerator, ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "加速成功", this.punchCard(), this.listenVidoeStatus(ElementObj.$video, () => {
                    ElementObj.$video.volume = 0, ElementObj.$video.play()
                }), ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () {
                    if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                        setTimeout(() => {
                            window.close()
                        }, 1500);
                        let e = GM_getValue("homeUrl", null);
                        return console.log("homeUrl==>>>", e), void GM_openInTab(e, {active: !0})
                    }
                    this.currentIndex += 1;
                    let e = ElementObj.$allTask[this.currentIndex];
                    yield sleep(300), e.click(), setTimeout(() => {
                        this.handleClickSpeedUp()
                    }, 4500)
                }))
            })
        }

        punchCard() {
            setInterval(() => {
                let e = document.querySelector("#comfirmClock");
                e && e.click()
            }, 5e3)
        }

        updateSpeedElement(e) {
            localStorage.setItem("_localSpeed", e.toString()), ElementObj.$video.playbackRate = e
        }
    }

    class zgrtvu extends Main {
        constructor() {
            super(), this.taskLength = 0, this.parentIndex = -1, this.currentIndex = -1, this.videoplaying = -1, this.timer = null, this._init()
        }

        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let e = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    let t = document.querySelector(".head_right button");
                    t && (clearInterval(e), t.click()), ElementObj.$allTask = document.querySelectorAll(".page-name"), ElementObj.$allTask.length && (clearInterval(e), this.getCurrentIndex()), ElementObj.$handleSpeedUp.style.display = "none"
                }), 1e3)
            })
        }

        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                showTip("⚠️⚠️⚠️正在初始化", 3500), ElementObj.$allTask.forEach((e, t) => {
                    e.classList.contains("complete") || -1 != this.currentIndex || (this.currentIndex = t)
                }), ElementObj.$handleSpeedUp.style.display = "none", showTip("🔉初始化完成,5秒后开始播放", 3e3);
                let e = ElementObj.$allTask[this.currentIndex];
                yield sleep(200), e.click(), setTimeout(() => {
                    this.handleClickSpeedUp()
                }, 4500), console.log("this.currentIndex==>>>", this.currentIndex)
            })
        }

        getVideoDom() {
            return new Promise(e => {
                let t = setInterval(() => {
                    ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0))
                }, 1e3)
            })
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer), yield this.getVideoDom(), ElementObj.$video.setAttribute("muted", "muted"), ElementObj.$video.volume = 0;
                let e = document.querySelector(".mejs__overlay-button");
                yield sleep(200), e.click(), ElementObj.$video.playbackRate = toolOption.accelerator, ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "加速成功", this.punchCard(), this.listenVidoeStatus(ElementObj.$video, () => {
                    ElementObj.$video.volume = 0, ElementObj.$video.play()
                }), ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () {
                    if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                        setTimeout(() => {
                            window.close()
                        }, 1500);
                        let e = document.querySelector(".back-btn");
                        return yield sleep(200), void e.click()
                    }
                    this.currentIndex += 1;
                    let e = ElementObj.$allTask[this.currentIndex];
                    yield sleep(300), e.click(), setTimeout(() => {
                        this.handleClickSpeedUp()
                    }, 4500)
                }))
            })
        }

        punchCard() {
            setInterval(() => {
                console.log("人机检测中");
                let e = document.querySelector(".btn-submit");
                e && e.click()
            }, 5e3)
        }
    }

    class henandikuang extends Main {
        constructor() {
            super(), this.taskLength = 0, this.parentIndex = -1, this.currentIndex = -1, this.videoplaying = -1, this.timer = null, this._init()
        }

        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let e = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    if (ElementObj.$parentNodes = document.querySelectorAll(".state-l"), ElementObj.$parentNodes.length) return clearInterval(e), void ElementObj.$parentNodes[0].querySelector(".btn span").click();
                    ElementObj.$parentNodes = document.querySelectorAll(".course-card-item"), ElementObj.$parentNodes.length && (clearInterval(e), this.getParentIndex()), ElementObj.$allTask = document.querySelectorAll(".pt5 li"), ElementObj.$allTask.length && (clearInterval(e), this.getCurrentIndex()), ElementObj.$handleSpeedUp.style.display = "none"
                }), 1e3)
            })
        }

        getParentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                let e = -1;
                for (var t = 0; t < ElementObj.$parentNodes.length - 1; t++) {
                    let n = ElementObj.$parentNodes[t].querySelector(".progress-bar").style.width;
                    if (parseInt(n) < 98) {
                        e = t;
                        break
                    }
                }
                -1 != e ? ElementObj.$parentNodes[t].querySelector("a").click() : alert("当前课程已全部学完,请更换其它课程")
            })
        }

        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                showTip("⚠️⚠️⚠️正在初始化", 1500), ElementObj.$allTask.forEach((e, t) => {
                    let n = e.querySelector(".badge").innerText;
                    100 != parseInt(n) && -1 == this.currentIndex && (this.currentIndex = t)
                }), showTip("⚠️⚠初始化完成,5秒后开始播放", 3e3);
                let e = ElementObj.$allTask[this.currentIndex];
                yield sleep(200), e.click(), setTimeout(() => {
                    this.handleClickSpeedUp()
                }, 4500), console.log("this.currentIndex==>>>", this.currentIndex)
            })
        }

        getVideoDom() {
            return new Promise(e => {
                let t = setInterval(() => {
                    ElementObj.$video = document.querySelectorAll("video")[1], ElementObj.$video && (clearInterval(t), e(!0))
                }, 1e3)
            })
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer), yield this.getVideoDom(), ElementObj.$video.setAttribute("muted", "muted"), ElementObj.$video.volume = 0, ElementObj.$video.play(), ElementObj.$video.playbackRate = toolOption.accelerator, ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "加速成功", this.listenVidoeStatus(ElementObj.$video, () => {
                    ElementObj.$video.volume = 0, ElementObj.$video.play()
                }), ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () {
                    if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                        let e = document.querySelector("a.back");
                        return yield sleep(200), void e.click()
                    }
                    this.currentIndex += 1;
                    let e = ElementObj.$allTask[this.currentIndex];
                    yield sleep(300), e.click(), setTimeout(() => {
                        this.handleClickSpeedUp()
                    }, 4500)
                }))
            })
        }
    }

    class tazhuanjipx extends Main {
        constructor() {
            super(), this.taskLength = 0, this.parentIndex = -1, this.currentIndex = -1, this.videoplaying = -1, this.timer = null, this._init()
        }

        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                this.handleClickSpeedUp()
            })
        }

        getParentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                this.handleClickSpeedUp()
            })
        }

        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                showTip("⚠️⚠️⚠️正在初始化", 1500), ElementObj.$allTask.forEach((e, t) => {
                    let n = e.querySelector(".badge").innerText;
                    100 != parseInt(n) && -1 == this.currentIndex && (this.currentIndex = t)
                }), showTip("⚠️⚠初始化完成,5秒后开始播放", 3e3);
                let e = ElementObj.$allTask[this.currentIndex];
                yield sleep(200), e.click(), setTimeout(() => {
                    this.handleClickSpeedUp()
                }, 4500), console.log("this.currentIndex==>>>", this.currentIndex)
            })
        }

        getVideoDom() {
            return new Promise(e => {
                let t = setInterval(() => {
                    ElementObj.$video = document.querySelectorAll("video")[1], ElementObj.$video && (clearInterval(t), e(!0))
                }, 1e3)
            })
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer), yield this.getVideoDom(), ElementObj.$video.setAttribute("muted", "muted"), ElementObj.$video.volume = 0, ElementObj.$video.play(), ElementObj.$video.playbackRate = toolOption.accelerator, ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "加速成功", this.listenVidoeStatus(ElementObj.$video, () => {
                    ElementObj.$video.volume = 0, ElementObj.$video.play()
                }), ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () {
                    this.currentIndex >= ElementObj.$allTask.length - 1 ? alert("全部课程已播放完") : setTimeout(() => {
                        this.handleClickSpeedUp()
                    }, 4500)
                }))
            })
        }
    }

    class henanzhuanjipeixun extends Main {
        constructor() {
            super(), this.taskLength = 0, this.parentIndex = -1, this.currentIndex = -1, this.videoplaying = -1, this.timer = null, this._init()
        }

        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let e = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    var t;
                    try {
                        ElementObj.$allTask = document.querySelectorAll("tbody tr"), ElementObj.$allTask.length && (clearInterval(e), this.getCurrentIndex());
                        let n = null === (t = document.querySelector("#playerFrame")) || void 0 === t ? void 0 : t.contentDocument;
                        ElementObj.$video = n.querySelector("video"), ElementObj.$video && (clearInterval(e), this.handleClickSpeedUp()), ElementObj.$handleSpeedUp.style.display = "none"
                    } catch (e) {
                    }
                }), 1e3)
            })
        }

        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                showTip("⚠️⚠️⚠️正在初始化", 1500), ElementObj.$allTask.forEach((e, t) => {
                    if (t > 1) {
                        let n = e.querySelectorAll("td")[2].innerText;
                        100 != parseInt(n) && -1 == this.currentIndex && (this.currentIndex = t)
                    }
                }), console.log("this.currentIndex===>>>", this.currentIndex);
                let e = location.href;
                GM_setValue("homeUrl", e), showTip("⚠️⚠初始化完成,5秒后开始播放", 3e3);
                let t = ElementObj.$allTask[this.currentIndex].querySelectorAll("td")[3].querySelector("a");
                yield sleep(200), t.click(), yield sleep(1500), document.querySelector("input.textbtn").click(), setTimeout(() => {
                    window.close()
                }, 4500), console.log("this.currentIndex==>>>", this.currentIndex)
            })
        }

        getVideoDom() {
            return new Promise(e => {
                let t = setInterval(() => {
                    var n;
                    let l = null === (n = document.querySelector("#playerFrame")) || void 0 === n ? void 0 : n.contentDocument;
                    ElementObj.$video = l.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0))
                }, 1e3)
            })
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer), yield this.getVideoDom(), ElementObj.$video.setAttribute("muted", "muted"), ElementObj.$video.volume = 0, ElementObj.$video.play(), ElementObj.$video.playbackRate = toolOption.accelerator, ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "加速成功", this.listenVidoeStatus(ElementObj.$video, () => {
                    ElementObj.$video.volume = 0, ElementObj.$video.play()
                }), ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () {
                    setTimeout(() => {
                        window.close()
                    }, 2500);
                    let e = GM_getValue("homeUrl", null);
                    console.log("homeUrl==>>>", e), GM_openInTab(e, {active: !0})
                }))
            })
        }
    }

    class zhejiangtjj extends Main {
        constructor() {
            super(), this.taskLength = 0, this.parentIndex = -1, this.currentIndex = -1, this.videoplaying = -1, this.timer = null, this._init()
        }

        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let e = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        let t = document.querySelectorAll(".course_2"),
                            n = document.querySelectorAll("tbody tr.el-table__row");
                        if (t.length || n.length) {
                            clearInterval(e), ElementObj.$parentNodes = t.length ? t : n;
                            let l = t.length ? 1 : 2;
                            this.getParentIndex(l)
                        }
                        ElementObj.$allTask = document.querySelectorAll(".page-name"), ElementObj.$allTask.length && (clearInterval(e), this.getCurrentIndex()), ElementObj.$handleSpeedUp.style.display = "none"
                    } catch (e) {
                    }
                }), 1e3)
            })
        }

        getParentIndex(e) {
            return __awaiter(this, void 0, void 0, function* () {
                showTip("⚠️⚠️⚠️正在初始化", 1500);
                let t = 1 == e ? 0 : -1;
                if (ElementObj.$parentNodes.forEach((e, n) => {
                    if (n > t) {
                        let t = e.querySelector(".el-progress__text").innerText;
                        100 != parseInt(t) && -1 == this.currentIndex && (this.currentIndex = n)
                    }
                }), console.log("this.currentIndex===>>>", this.currentIndex), -1 == this.currentIndex && 2 == e) {
                    return GM_openInTab("https://edu.tjj.zj.gov.cn/#/personal?componentId=ClassList&type=classlist", {active: !0}), void setTimeout(() => {
                        window.close()
                    }, 3500)
                }
                showTip("⚠️⚠初始化完成,5秒后开始播放", 3e3);
                let n = ElementObj.$parentNodes[this.currentIndex].querySelector("button");
                yield sleep(200), n.click(), setTimeout(() => {
                    location.reload()
                }, 3e3), console.log("this.currentIndex==>>>", this.currentIndex)
            })
        }

        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                showTip("⚠️⚠️⚠️正在初始化", 3500), ElementObj.$allTask.forEach((e, t) => {
                    e.classList.contains("complete") || -1 != this.currentIndex || (this.currentIndex = t)
                }), ElementObj.$handleSpeedUp.style.display = "none", showTip("🔉初始化完成,5秒后开始播放", 3e3);
                let e = ElementObj.$allTask[this.currentIndex];
                yield sleep(200), e.click(), setTimeout(() => {
                    this.handleClickSpeedUp()
                }, 4500), console.log("this.currentIndex==>>>", this.currentIndex)
            })
        }

        getVideoDom() {
            return new Promise(e => {
                let t = setInterval(() => {
                    var n;
                    let l = null === (n = document.querySelector("#playerFrame")) || void 0 === n ? void 0 : n.contentDocument;
                    ElementObj.$video = l.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0))
                }, 1e3)
            })
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer), yield this.getVideoDom(), ElementObj.$video.setAttribute("muted", "muted"), ElementObj.$video.volume = 0;
                let e = document.querySelector(".mejs__overlay-button");
                yield sleep(200), e.click(), ElementObj.$video.playbackRate = toolOption.accelerator, ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "加速成功", this.punchCard(), this.listenVidoeStatus(ElementObj.$video, () => {
                    ElementObj.$video.volume = 0, ElementObj.$video.play()
                }), ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () {
                    if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                        setTimeout(() => {
                            window.close()
                        }, 3500);
                        let e = document.querySelector(".back-btn");
                        return yield sleep(200), void e.click()
                    }
                    this.currentIndex += 1;
                    let e = ElementObj.$allTask[this.currentIndex];
                    yield sleep(300), e.click(), setTimeout(() => {
                        this.handleClickSpeedUp()
                    }, 4500)
                }))
            })
        }

        punchCard() {
            setInterval(() => {
                let e = document.querySelector(".btn-submit");
                e && e.click()
            }, 5e3)
        }
    }

    class guizhouzxjxjy extends Main {
        constructor() {
            super(), this.taskLength = 0, this.parentIndex = -1, this.currentIndex = -1, this.videoplaying = -1, this.timer = null, this._init()
        }

        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let e = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        ElementObj.$allTask = document.querySelectorAll(".lcml_djj_list li"), ElementObj.$allTask.length && (clearInterval(e), this.getCurrentIndex()), ElementObj.$handleSpeedUp.style.display = "none"
                    } catch (e) {
                    }
                }), 1e3)
            })
        }

        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                showTip("⚠️⚠️⚠️正在初始化", 1500);
                ElementObj.$allTask.forEach((e, t) => {
                    e.classList.contains("on") && -1 == this.currentIndex && (this.currentIndex = t)
                }), console.log("this.currentIndex===>>>", this.currentIndex), showTip("⚠️⚠初始化完成,5秒后开始播放", 3e3), ElementObj.$allTask[this.currentIndex].click(), showTip("⚠️⚠初始化完成,5秒后开始播放", 3e3), setTimeout(() => {
                    this.handleClickSpeedUp()
                }, 4500)
            })
        }

        getVideoDom() {
            return new Promise(e => {
                let t = setInterval(() => {
                    let n = document.querySelector(".xgplayer-start");
                    n && n.click(), ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0))
                }, 1e3)
            })
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer), yield this.getVideoDom(), ElementObj.$video.setAttribute("muted", "muted"), ElementObj.$video.volume = 0, ElementObj.$video.play(), ElementObj.$video.playbackRate = toolOption.accelerator, ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "加速成功", this.listenVidoeStatus(ElementObj.$video, () => {
                    ElementObj.$video.volume = 0, ElementObj.$video.play()
                }), ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () {
                    if (this.currentIndex >= ElementObj.$allTask.length - 1) return void alert("当前课程视频已全部播放完");
                    this.currentIndex += 1;
                    let e = ElementObj.$allTask[this.currentIndex];
                    yield sleep(300), e.click(), setTimeout(() => {
                        this.handleClickSpeedUp()
                    }, 4500)
                }))
            })
        }
    }

    class jiangxizhipeizaixian extends Main {
        constructor() {
            super(), this.taskLength = 0, this.parentIndex = -1, this.currentIndex = -1, this.timer = null, this._init()
        }

        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let e = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        ElementObj.$allTask = document.querySelectorAll(".units_wrap_box___1ncip"), ElementObj.$allTask.length && (clearInterval(e), this.getCurrentIndex()), ElementObj.$handleSpeedUp.style.display = "none"
                    } catch (e) {
                    }
                }), 1e3)
            })
        }

        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                showTip("⚠️⚠️⚠️正在初始化", 1500), ElementObj.$allTask.forEach((e, t) => {
                    let n = e.querySelector(".progress_get_on___3TDga"), l = e.querySelector(".not_start___3dAwS");
                    (n || l) && -1 == this.currentIndex && (this.currentIndex = t)
                }), -1 == this.currentIndex && (this.currentIndex = 0), console.log("this.currentIndex===>>>", this.currentIndex), showTip("⚠️⚠初始化完成,5秒后开始播放", 3e3), ElementObj.$allTask[this.currentIndex].click(), showTip("⚠️⚠初始化完成,5秒后开始播放", 3e3), setTimeout(() => {
                    this.handleClickSpeedUp()
                }, 4500)
            })
        }

        getVideoDom() {
            return new Promise(e => {
                let t = setInterval(() => {
                    ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0))
                }, 1e3)
            })
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer), yield this.getVideoDom(), ElementObj.$video.setAttribute("muted", "muted"), ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => {
                    ElementObj.$video.playbackRate = toolOption.accelerator
                }, 3500), ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "加速成功", this.listenVidoeStatus(ElementObj.$video, () => {
                    ElementObj.$video.volume = 0, ElementObj.$video.play()
                }), ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () {
                    if (this.currentIndex >= ElementObj.$allTask.length - 1) return void alert("当前课程视频已全部播放完");
                    this.currentIndex += 1;
                    let e = ElementObj.$allTask[this.currentIndex];
                    yield sleep(300), e.click(), setTimeout(() => {
                        this.handleClickSpeedUp()
                    }, 4500)
                })), ElementObj.$video.addEventListener("pause", () => {
                    setTimeout(() => {
                        ElementObj.$video.volume = 0, ElementObj.$video.play()
                    }, 1500)
                })
            })
        }
    }

    class anhuijixujyzx extends Main {
        constructor() {
            super(), this.taskLength = 0, this.parentIndex = -1, this.currentIndex = -1, this.timer = null, this._init()
        }

        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let e = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    var t;
                    try {
                        ElementObj.$btn_dropdown = document.querySelector(".btn_dropdown"), null === (t = ElementObj.$btn_dropdown) || void 0 === t || t.click();
                        let n = document.querySelector(".btn.btn-green");
                        n && (clearInterval(e), yield sleep(300), n.click()), ElementObj.$allTask = document.querySelectorAll(".list-order.clefix>li"), ElementObj.$allTask.length && (clearInterval(e), this.getCurrentIndex()), ElementObj.$handleSpeedUp.style.display = "none"
                    } catch (e) {
                    }
                }), 1e3)
            })
        }

        getCurrentIndex() {
            var e;
            return __awaiter(this, void 0, void 0, function* () {
                showTip("⚠️⚠️⚠️初始化完成,5秒后开始播放", 1500), yield sleep(1500), "none" != $el("#sectionlist").style.display && (null === (e = ElementObj.$btn_dropdown) || void 0 === e || e.click()), setTimeout(() => {
                    this.handleClickSpeedUp()
                }, 4500)
            })
        }

        getIndex() {
            let e = 0;
            for (var t = 0; t <= ElementObj.$allTask.length - 1; t++) {
                if (ElementObj.$allTask[t].querySelector(".current")) {
                    e = t;
                    break
                }
            }
            return e
        }

        getVideoDom() {
            return new Promise(e => {
                let t = setTimeout(() => {
                    ElementObj.$video = document.querySelector("video"), ElementObj.$video ? (clearInterval(t), e(1)) : (clearInterval(t), e(2))
                }, 3e3)
            })
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer);
                let e = yield this.getVideoDom();
                if (1 == e && (ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => {
                    ElementObj.$video.playbackRate = toolOption.accelerator
                }, 3500), ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "加速成功", this.listenVidoeStatus(ElementObj.$video, () => {
                    ElementObj.$video.volume = 0, ElementObj.$video.play()
                }), ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () {
                    showTip("⚠️⚠️⚠️检测到视频已播放完,5秒后自动切换下一个视频", 4500), yield sleep(5e3), this.playNext()
                })), ElementObj.$video.addEventListener("pause", () => {
                    setTimeout(() => {
                        ElementObj.$video.volume = 0, ElementObj.$video.play()
                    }, 1500)
                })), 2 == e) {
                    let e = this.getIndex();
                    console.log("index===>>>", e);
                    let t = ElementObj.$allTask[e + 1].querySelector("a.toggle_lesson").title.indexOf("作业");
                    if (console.log("nextTaskTitle==>>", t), -1 != t) {
                        return console.log("ElementObj.$allTask[index+2]", ElementObj.$allTask[e + 2]), void ElementObj.$allTask[e + 2].querySelectorAll("li>a")[1].click()
                    }
                    let n = document.querySelector(".preNext.next");
                    yield sleep(200), n.click()
                }
            })
        }

        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
                let e = this.getIndex();
                if (console.log("index===>>>", e), e >= ElementObj.$allTask.length - 1) return void alert("当前课程已全部播放完");
                if (-1 != ElementObj.$allTask[e + 1].querySelector("a.toggle_lesson").title.indexOf("作业")) return void ElementObj.$allTask[e + 2].click();
                let t = document.querySelector(".btn.btn-green");
                yield sleep(300), t.click(), setTimeout(() => {
                    document.querySelector(".jw-reset.jw-icon") && alert("当前课程视频已全部播放完")
                }, 4500)
            })
        }
    }

    class lanzhoudxgs extends Main {
        constructor() {
            super(), this.taskLength = 0, this.parentIndex = -1, this.currentIndex = -1, this.timer = null, this.listenVidoeStatusTimer = null, this._init()
        }

        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let e = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    var t;
                    try {
                        ElementObj.$btn_dropdown = document.querySelector("#catalogA"), null === (t = ElementObj.$btn_dropdown) || void 0 === t || t.click(), ElementObj.$allTask = document.querySelectorAll("li.activity-node"), ElementObj.$allTask.length && (clearInterval(e), this.getCurrentIndex()), ElementObj.$handleSpeedUp.style.display = "none"
                    } catch (e) {
                    }
                }), 1e3)
            })
        }

        getCurrentIndex() {
            var e;
            return __awaiter(this, void 0, void 0, function* () {
                showTip("⚠️⚠️⚠️初始化完成,5秒后开始播放", 1500), yield sleep(1500), "none" != $el("#toolsContentDiv").style.display && (null === (e = ElementObj.$btn_dropdown) || void 0 === e || e.click());
                let t = [];
                ElementObj.$allTask.forEach((e, n) => {
                    e.querySelector(".cedu-file-video") && t.push(e)
                }), ElementObj.$allTask = t, this.currentIndex = 0, setTimeout(() => {
                    this.handleClickSpeedUp()
                }, 4500)
            })
        }

        getVideoDom() {
            return new Promise(e => {
                let t = setInterval(() => {
                    let n = document.querySelector(".vjs-big-play-button");
                    ElementObj.$video = document.querySelector("video"), ElementObj.$video && n && (clearInterval(t), e(!0))
                }, 1e3)
            })
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer), yield this.getVideoDom(), ElementObj.$video.setAttribute("muted", "muted"), ElementObj.$video.volume = 0;
                let e = document.querySelector(".vjs-big-play-button");
                yield sleep(200), console.log("$playBtn===>>", e), null == e || e.click(), yield sleep(2500), ElementObj.$video.pause(), setTimeout(() => {
                    ElementObj.$video.currentTime -= 30, ElementObj.$video.play()
                }, 2500), setTimeout(() => {
                    ElementObj.$video.playbackRate = toolOption.accelerator
                }, 3500), this.changeHtml($el("#video_div")), this.listenPlayTime(), this.listenPageHide(), this.listenVidoeStatus(ElementObj.$video, () => {
                    ElementObj.$video.volume = 0, ElementObj.$video.play()
                }), ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () {
                    this.playNext()
                })), ElementObj.$video.addEventListener("pause", () => {
                    setTimeout(() => {
                        ElementObj.$video.volume = 0, ElementObj.$video.play()
                    }, 1500)
                })
            })
        }

        listenPlayTime() {
            showTip("🔉课件正在学习,请务点击或长时间隐藏");
            let e = 0;
            this.timer = setInterval(() => {
                e += 1;
                let t = (ElementObj.$video.currentTime / 60).toFixed(2);
                this.addInfo(`已监测${e}次,当前状态正在学习,已播放${t}分钟`), ElementObj.$video.currentTime >= ElementObj.$video.duration - 4 && this.playNext()
            }, 5e3)
        }

        listenVidoeStatus(e, t) {
            if (!e) return;
            let n = 0;
            this.timer2 = setInterval(() => {
                e.readyState < 4 && (console.log(`检测到${n}次,视频正在加载`), this.addInfo(`检测到${n}次,视频正在加载`, 0), (n += 1) >= 20 && location.reload()), e.paused && (n += 1, console.log(`检测到视频暂停了${n}次`), "function" == typeof t ? n >= 20 ? location.reload() : t() : console.log("callback不是一个函数"))
            }, 3e3)
        }

        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
                showTip("⚠️⚠️⚠️检测到视频已播放完,5秒后自动切换下一个视频", 4500), yield sleep(5e3), this.currentIndex += 1;
                let e = ElementObj.$allTask[this.currentIndex];
                yield sleep(300), e.querySelector(".cedu-file-video") ? e.click() : alert("当前课程视频已全部播放完")
            })
        }
    }

    class jidianshejijiaoyu extends Main {
        constructor() {
            super(), this.taskLength = 0, this.parentIndex = -1, this.currentIndex = -1, this.swiperIndex = -1, this.timer = null, this.listenVidoeStatusTimer = null, this._init()
        }

        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let e = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        if (document.querySelector(".layui-layer-btn0")) return clearInterval(e), void this.playNext();
                        ElementObj.$allTask = document.querySelectorAll(".course_chapter_item"), ElementObj.$allTask.length && (clearInterval(e), this.getCurrentIndex()), ElementObj.$handleSpeedUp.style.display = "none"
                    } catch (e) {
                    }
                }), 1e3)
            })
        }

        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                showTip("⚠️⚠️⚠️初始化完成,5秒后开始播放", 1500), yield sleep(1500), ElementObj.$allTask.forEach((e, t) => {
                    e.querySelector("i.fa-circle") || -1 != this.currentIndex || (this.currentIndex = t)
                }), -1 != this.currentIndex ? (ElementObj.$allTask[this.currentIndex].querySelector(".section_title").click(), showTip("⚠️⚠️⚠️正在初始化", 3500), setTimeout(() => {
                    this.getSwiperIndex()
                }, 4500)) : alert("当前课程已全部播放完")
            })
        }

        getSwiperIndex() {
            ElementObj.$swiperItem = document.querySelectorAll("#menu_tarr_content .courseware_menu_item"), this.swiperIndex = -1;
            for (var e = 0; e <= ElementObj.$swiperItem.length - 1; e++) {
                let t = ElementObj.$swiperItem[e];
                if (t.querySelector(".icon-note-video-learning")) {
                    this.swiperIndex = e, t.click(), setTimeout(() => {
                        this.handleClickSpeedUp()
                    }, 3500);
                    break
                }
            }
            -1 == this.swiperIndex && location.reload()
        }

        getVideoDom() {
            return new Promise(e => {
                let t = setInterval(() => {
                    let n = document.querySelector(".vjs-big-play-button");
                    ElementObj.$video = document.querySelector("video"), ElementObj.$video && n && (clearInterval(t), e(!0))
                }, 1e3)
            })
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer), yield this.getVideoDom(), ElementObj.$video.setAttribute("muted", "muted"), ElementObj.$video.volume = 0, yield sleep(2500), ElementObj.$video.play(), this.changeHtml($el(".video-play")), this.listenPlayTime(), this.listenPageHide(), this.listenVidoeStatus(ElementObj.$video, () => {
                    ElementObj.$video.volume = 0, ElementObj.$video.play()
                }), ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () {
                    this.playNext()
                })), ElementObj.$video.addEventListener("pause", () => {
                    setTimeout(() => {
                        ElementObj.$video.volume = 0, ElementObj.$video.play()
                    }, 1500)
                })
            })
        }

        listenPlayTime() {
            showTip("🔉课件正在学习,请务点击或长时间隐藏");
            let e = 0;
            this.timer = setInterval(() => {
                e += 1;
                let t = (ElementObj.$video.currentTime / 60).toFixed(2);
                this.addInfo(`已监测${e}次,当前状态正在学习,已播放${t}分钟`), document.querySelector(".complete") && (this.addInfo("✅✅✅,当前视频播放完成,5秒后自动切换下一个视频"), this.swiperIndex >= ElementObj.$swiperItem.length - 1 ? location.reload() : (this.swiperIndex += 1, $el("#right_tarr").click(), setTimeout(() => {
                    this.handleClickSpeedUp()
                }, 3500))), ElementObj.$video.currentTime >= ElementObj.$video.duration - 4 && this.playNext()
            }, 5e3)
        }

        listenVidoeStatus(e, t) {
            if (!e) return;
            let n = 0;
            this.timer2 = setInterval(() => {
                e.readyState < 4 && (console.log(`检测到${n}次,视频正在加载`), this.addInfo(`检测到${n}次,视频正在加载`, 0), (n += 1) >= 20 && location.reload()), e.paused && (n += 1, console.log(`检测到视频暂停了${n}次`), "function" == typeof t ? n >= 20 ? location.reload() : t() : console.log("callback不是一个函数"))
            }, 3e3)
        }

        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
                showTip("⚠️⚠️⚠️检测到视频已播放完,5秒后自动切换下一个视频", 4500), yield sleep(5e3);
                let e = document.querySelector(".layui-layer-btn0");
                e && (e.click(), yield sleep(2e3), location.reload())
            })
        }
    }

    class sipingnengcun extends Main {
        constructor() {
            super(), this.taskLength = 0, this.parentIndex = -1, this.currentIndex = -1, this.timer = null, this._init()
        }

        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let e = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        ElementObj.$allTask = document.querySelectorAll(".videolist_item"), ElementObj.$allTask.length && (clearInterval(e), this.getCurrentIndex()), ElementObj.$handleSpeedUp.style.display = "none"
                    } catch (e) {
                    }
                }), 1e3)
            })
        }

        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                ElementObj.$allTask.forEach((e, t) => {
                    e.querySelector(".el-progress").classList.contains("is-success") || -1 != this.currentIndex || (this.currentIndex = t)
                }), -1 != this.currentIndex ? (ElementObj.$allTask[this.currentIndex].click(), showTip("⚠️⚠️⚠️初始化完成,5秒后开始播放", 3500), setTimeout(() => {
                    this.handleClickSpeedUp()
                }, 4500)) : alert("当前课程视频已全部播放完")
            })
        }

        getVideoDom() {
            return new Promise(e => {
                let t = setInterval(() => {
                    ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0))
                }, 1e3)
            })
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer), yield this.getVideoDom(), ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => {
                    ElementObj.$video.playbackRate = toolOption.accelerator
                }, 3500), this.listenVidoeStatus(ElementObj.$video, () => {
                    ElementObj.$video.volume = 0, ElementObj.$video.play()
                }), ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () {
                    showTip("⚠️⚠️⚠️检测到视频已播放完,5秒后自动切换下一个视频", 4500), this.currentIndex >= ElementObj.$allTask.length - 1 ? alert("当前课程所以视频已播放完") : (this.currentIndex += 1, setTimeout(() => {
                        this.handleClickSpeedUp()
                    }, 4500))
                })), ElementObj.$video.addEventListener("pause", () => {
                    setTimeout(() => {
                        ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => {
                            ElementObj.$video.playbackRate = toolOption.accelerator
                        }, 3500)
                    }, 1500)
                })
            })
        }
    }

    class ycjyluteducn extends Main {
        constructor() {
            super(), this.taskLength = 0, this.currentIndex = -1, this.parentIndex = -1, this._init()
        }

        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let e = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    console.log("===>>>已寻找1次");
                    try {
                        let t = document.querySelector("#courseware_main_menu").querySelector("a");
                        t && (clearInterval(e), t.click(), this.findParentIndex())
                    } catch (e) {
                    }
                }), 1e3)
            })
        }

        findParentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                showTip("🔉正在初始化", 2500), yield sleep(4500), ElementObj.$handleSpeedUp.style.display = "none";
                let e = document.querySelector(".contentIframe").contentWindow.document;
                ElementObj.$parentNodes = e.querySelectorAll(".vcon li"), ElementObj.$parentNodes.forEach((e, t) => {
                    let n = e.querySelector("span");
                    (n.classList.contains("undo") || n.classList.contains("doing")) && -1 == this.parentIndex && (this.parentIndex = t)
                }), console.log("this.parentIndex===>>>", this.parentIndex), -1 != this.parentIndex ? (ElementObj.$parentNodes[this.parentIndex].querySelector("a").click(), this.getCurrentIndex()) : alert("当前课程已全部播发完")
            })
        }

        getCurrentIndex() {
            var e;
            return __awaiter(this, void 0, void 0, function* () {
                showTip("正在初始化", 2500), yield sleep(4500);
                let t = document.querySelector(".contentIframe");
                ElementObj._document = t.contentWindow.document, ElementObj.$allTask = ElementObj._document.querySelectorAll(".menub"), this.currentIndex = 0, null === (e = ElementObj.$allTask[this.currentIndex]) || void 0 === e || e.click(), showTip("初始化完成,5秒后开始播放"), this.handleClickSpeedUp()
            })
        }

        getVideoDom() {
            return new Promise(e => {
                let t = setInterval(() => {
                    let n = ElementObj._document.querySelector("#mainFrame").contentDocument;
                    if (ElementObj.$video = n.querySelector("video"), ElementObj.$video) return clearInterval(t), void e(1);
                    n.querySelector("#content_frame");
                    clearInterval(t), e(2)
                }, 1e3)
            })
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime), clearInterval(this.timer2);
                let e = yield this.getVideoDom();
                this.listenRebort(), 1 == e && (ElementObj.$video.volume = 0, yield sleep(200), ElementObj.$video.play(), setTimeout(() => {
                    ElementObj.$video.playbackRate = toolOption.accelerator
                }, 3e3), this.listenVidoeStatus(ElementObj.$video, () => {
                    ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => {
                        ElementObj.$video.playbackRate = toolOption.accelerator
                    }, 3e3)
                }), ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () {
                    yield sleep(3e3), this.playNext()
                }))), 2 == e && (this.timer2 = setTimeout(() => {
                    this.playNext()
                }, 7e3))
            })
        }

        listenRebort() {
            this.listenRebortTime = setInterval(() => {
                let e = document.querySelector(".layui-layer-btn a");
                e && (e.click(), ElementObj.$video.play(), setTimeout(() => {
                    ElementObj.$video.playbackRate = toolOption.accelerator
                }, 3e3))
            }, 1e4)
        }

        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
                if (showTip("✅✅✅播放完成,正在切换课程", 3500), this.currentIndex >= ElementObj.$allTask.length - 1) return this.parentIndex += 1, ElementObj.$parentNodes[this.parentIndex].querySelector("a").click(), void setTimeout(() => {
                    this.getCurrentIndex()
                }, 4500);
                this.currentIndex += 1, ElementObj.$allTask[this.currentIndex].click(), yield sleep(5e3), this.handleClickSpeedUp()
            })
        }
    }

    ycjyluteducn.ctxid = 26;

    class gdrcjxjyw extends Main {
        constructor() {
            super(), this.taskLength = 0, this.parentIndex = -1, this.currentIndex = -1, this.timer = null, this._init()
        }

        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let e = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        let t = document.querySelectorAll(".player-table")[2];
                        ElementObj.$allTask = t.querySelectorAll("td"), ElementObj.$allTask.length && (clearInterval(e), this.getCurrentIndex()), ElementObj.$handleSpeedUp.style.display = "none"
                    } catch (e) {
                    }
                }), 1e3)
            })
        }

        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                let e = -1;
                if (ElementObj.$allTask.forEach((t, n) => {
                    let l = t.querySelector(".playLine").innerText;
                    100 != parseInt(l) && -1 == this.currentIndex && (this.currentIndex = n), t.classList.contains("couBg") && (e = n)
                }), -1 != this.currentIndex) {
                    if (this.currentIndex != e) {
                        ElementObj.$allTask[this.currentIndex].querySelector("a").click()
                    }
                    showTip("⚠️⚠️⚠️初始化完成,5秒后开始播放", 3500), setTimeout(() => {
                        this.handleClickSpeedUp()
                    }, 4500)
                } else alert("当前课程视频已全部播放完")
            })
        }

        getVideoDom() {
            return new Promise(e => {
                let t = setInterval(() => {
                    let n = document.querySelector("#c_frame").contentDocument;
                    ElementObj.$video = n.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0))
                }, 1e3)
            })
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer), yield this.getVideoDom(), ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => {
                    ElementObj.$video.playbackRate = toolOption.accelerator
                }, 3500), this.listenVidoeStatus(ElementObj.$video, () => {
                    ElementObj.$video.volume = 0, ElementObj.$video.play()
                }), ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () {
                    showTip("⚠️⚠️⚠️检测到视频已播放完,5秒后自动切换下一个视频", 4500), yield sleep(3e3), location.reload()
                })), ElementObj.$video.addEventListener("pause", () => {
                    setTimeout(() => {
                        ElementObj.$video.volume = 0, ElementObj.$video.play(), ElementObj.$video.playbackRate = toolOption.accelerator
                    }, 1500)
                })
            })
        }
    }

    class shandongqlteacher extends Main {
        constructor() {
            super(), this.taskLength = 0, this.parentIndex = -1, this.currentIndex = -1, this.timer = null, this._init()
        }

        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let e = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        ElementObj.$allTask = document.querySelectorAll("app-course-catalogue.ng-star-inserted .ant-list-items li"), ElementObj.$allTask.length && (clearInterval(e), this.getCurrentIndex()), ElementObj.$handleSpeedUp.style.display = "none"
                    } catch (e) {
                    }
                }), 1e3)
            })
        }

        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                ElementObj.$allTask.forEach((e, t) => {
                    e.querySelector("div.align-items-center") || -1 != this.currentIndex || (this.currentIndex = t)
                }), -1 != this.currentIndex ? (showTip("⚠️⚠️⚠️初始化完成,5秒后开始播放", 3500), setTimeout(() => {
                    this.handleClickSpeedUp()
                }, 4500)) : alert("当前课程视频已全部播放完")
            })
        }

        getVideoDom() {
            return new Promise(e => {
                let t = setInterval(() => {
                    ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0))
                }, 1e3)
            })
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer), clearInterval(this.timer), yield this.getVideoDom(), ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => {
                    ElementObj.$video.playbackRate = toolOption.accelerator
                }, 3500), this.changeHtml($el("#tencent_player")), this.listenPageHide(), this.listenPlayTime(), this.listenVidoeStatus(ElementObj.$video, () => {
                    ElementObj.$video.volume = 0, ElementObj.$video.play()
                }), ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () {
                    showTip("⚠️⚠️⚠️检测到视频已播放完,5秒后自动切换下一个视频", 4500), yield sleep(3e3), this.currentIndex += 1, ElementObj.$allTask[this.currentIndex].click(), setTimeout(() => {
                        this.handleClickSpeedUp()
                    }, 4500)
                })), ElementObj.$video.addEventListener("pause", () => {
                    setTimeout(() => {
                        ElementObj.$video.volume = 0, ElementObj.$video.play(), ElementObj.$video.playbackRate = toolOption.accelerator
                    }, 1500)
                })
            })
        }

        listenPlayTime() {
            showTip("⚠️⚠️⚠️课件正在学习,请务点击或长时间隐藏");
            let e = 0;
            this.timer = setInterval(() => {
                e += 1;
                let t = (ElementObj.$video.currentTime / 60).toFixed(2), n = $el(".count-down").innerText;
                this.addInfo(`已监测${e}次,当前状态正在学习,已播放${t}分钟, ${n}`)
            }, 5e3)
        }
    }

    class shixuetong extends Main {
        constructor() {
            super(), this.taskLength = 0, this.parentIndex = -1, this.currentIndex = -1, this.timer = null, this._init()
        }

        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let e = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        ElementObj.$allTask = document.querySelectorAll(".Nvideo-item li"), ElementObj.$allTask.length && (clearInterval(e), $el(".Nvideo-playbox").style.position = "relative", this.getCurrentIndex()), ElementObj.$handleSpeedUp.style.display = "none"
                    } catch (e) {
                    }
                }), 1e3)
            })
        }

        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                this.currentIndex = 0, showTip("⚠️⚠️⚠️初始化完成,5秒后开始播放", 3500), setTimeout(() => {
                    this.handleClickSpeedUp()
                }, 4500)
            })
        }

        getVideoDom() {
            return new Promise(e => {
                let t = setInterval(() => {
                    ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0))
                }, 1e3)
            })
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer), clearInterval(this.timer), yield this.getVideoDom(), ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => {
                    ElementObj.$video.playbackRate = toolOption.accelerator
                }, 3500), this.changeHtml($el(".video")), this.listenPageHide(), this.listenPlayTime(), this.listenVidoeStatus(ElementObj.$video, () => {
                    ElementObj.$video.volume = 0, ElementObj.$video.play()
                }), ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () {
                    showTip("⚠️⚠️⚠️检测到视频已播放完,5秒后自动切换下一个视频", 4500), yield sleep(3e3), this.currentIndex += 1, ElementObj.$allTask[this.currentIndex].click(), setTimeout(() => {
                        this.handleClickSpeedUp()
                    }, 4500)
                })), ElementObj.$video.addEventListener("pause", () => {
                    setTimeout(() => {
                        ElementObj.$video.volume = 0, ElementObj.$video.play(), ElementObj.$video.playbackRate = toolOption.accelerator
                    }, 1500)
                })
            })
        }

        listenPlayTime() {
            showTip("⚠️⚠️⚠️课件正在学习,请务点击或长时间隐藏");
            let e = 0;
            this.timer = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                e += 1;
                let t = (ElementObj.$video.currentTime / 60).toFixed(2);
                if (this.addInfo(`已监测${e}次,当前状态正在学习,已播放${t}分钟`), e % 30 == 0) {
                    let e = $el("#courseStudyBestMinutesNumber").innerText,
                        t = document.querySelector(".studyCourseTimeRefresh");
                    null == t || t.click(), yield sleep(2e3);
                    let n = `✅✅✅本课程最长可累计时间:${e}分钟,您已成功学习${$el("#courseStudyMinutesNumber").innerText}分钟`;
                    this.addInfo(n, 0)
                }
            }), 5e3)
        }
    }

    class shandongenhualvyou extends Main {
        constructor() {
            super(), this.taskLength = 0, this.parentIndex = -1, this.currentIndex = -1, this.timer = null, this._init()
        }

        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let e = document.querySelector("#dashboard-toolbar-nav li");
                null == e || e.click();
                let t = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        ElementObj.$allTask = document.querySelectorAll("li.task-item"), ElementObj.$allTask.length && (clearInterval(t), this.getCurrentIndex()), ElementObj.$handleSpeedUp.style.display = "none"
                    } catch (e) {
                    }
                }), 1e3)
            })
        }

        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                ElementObj.$allTask.forEach((e, t) => {
                    e.querySelector(".es-icon-iccheckcircleblack24px") || -1 != this.currentIndex || (this.currentIndex = t)
                }), -1 == this.currentIndex && (this.currentIndex = 0), showTip("⚠️⚠️⚠️初始化完成,5秒后开始播放", 3500), setTimeout(() => {
                    this.handleClickSpeedUp()
                }, 4500)
            })
        }

        getVideoDom() {
            return new Promise(e => {
                let t = setInterval(() => {
                    let n = document.querySelector("#task-content-iframe");
                    n.contentDocument;
                    ElementObj.$video = n.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0))
                }, 1e3)
            })
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer), clearInterval(this.timer), yield this.getVideoDom(), ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => {
                    ElementObj.$video.playbackRate = toolOption.accelerator
                }, 3500), this.changeHtml($el(".video")), this.listenPageHide(), this.listenPlayTime(), this.listenVidoeStatus(ElementObj.$video, () => {
                    ElementObj.$video.volume = 0, ElementObj.$video.play()
                }), ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () {
                    showTip("⚠️⚠️⚠️检测到视频已播放完,5秒后自动切换下一个视频", 4500), yield sleep(3e3), this.currentIndex += 1, ElementObj.$allTask[this.currentIndex].click(), setTimeout(() => {
                        this.handleClickSpeedUp()
                    }, 4500)
                })), ElementObj.$video.addEventListener("pause", () => {
                    setTimeout(() => {
                        ElementObj.$video.volume = 0, ElementObj.$video.play(), ElementObj.$video.playbackRate = toolOption.accelerator
                    }, 1500)
                })
            })
        }

        listenPlayTime() {
            showTip("⚠️⚠️⚠️课件正在学习,请务点击或长时间隐藏");
            let e = 0;
            this.timer = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                e += 1;
                let t = (ElementObj.$video.currentTime / 60).toFixed(2),
                    n = (ElementObj.$video.duration / 60).toFixed(2);
                this.addInfo(`已监测${e}次,当前状态正在学习,已播放${t}分钟,视频总时长为${n}`)
            }), 5e3)
        }
    }

    class gansugongwuyuan extends Main {
        constructor() {
            super(), this.taskLength = 0, this.parentIndex = -1, this.currentIndex = -1, this.timer = null, this._init()
        }

        _init() {
            return __awaiter(this, void 0, void 0, function* () {
            })
        }

        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
            })
        }

        getVideoDom() {
            return new Promise(e => {
                let t = setInterval(() => {
                    ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0))
                }, 1e3)
            })
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer), clearInterval(this.timer), yield this.getVideoDom(), ElementObj.$video.play(), setTimeout(() => {
                    ElementObj.$video.playbackRate = toolOption.accelerator
                }, 3500), ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () {
                    alert("视频已播放完")
                })), ElementObj.$video.addEventListener("pause", () => {
                    setTimeout(() => __awaiter(this, void 0, void 0, function* () {
                        let e = document.querySelector("#dvMsgBtns input");
                        null == e || e.click(), yield sleep(2e3), ElementObj.$video.play(), ElementObj.$video.playbackRate = toolOption.accelerator
                    }), 2500)
                })
            })
        }
    }

    class wlmqcol extends Main {
        constructor() {
            super(), this.taskLength = 0, this.parentIndex = -1, this.currentIndex = -1, this.timer = null, this._init()
        }

        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let e = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        let t = document.querySelector("#tab-second");
                        if (t) return clearInterval(e), t.click(), void this.getCurrentIndex();
                        document.querySelector("video") && (clearInterval(e), this.handleClickSpeedUp()), ElementObj.$handleSpeedUp.style.display = "none"
                    } catch (e) {
                    }
                }), 1e3)
            })
        }

        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                yield sleep(1e3), ElementObj.$allTask = document.querySelectorAll(".task-list");
                for (var e = 0; e <= ElementObj.$allTask.length - 1; e++) {
                    if (!ElementObj.$allTask[e].querySelector(".icon-yiwancheng")) {
                        this.currentIndex = e;
                        break
                    }
                }
                if (-1 == this.currentIndex) return void alert("当前课程已全部播放完");
                let t = document.querySelectorAll(".task-list")[this.currentIndex].querySelector("span");
                null == t || t.click(), setTimeout(() => {
                    this.handleClickSpeedUp()
                }, 3e3)
            })
        }

        getVideoDom() {
            return new Promise(e => {
                let t = setInterval(() => {
                    ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0))
                }, 1e3)
            })
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer), clearInterval(this.timer), yield this.getVideoDom(), ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => {
                    ElementObj.$video.playbackRate = toolOption.accelerator
                }, 3500), ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () {
                    this.playNext()
                })), ElementObj.$video.addEventListener("pause", () => {
                    setTimeout(() => __awaiter(this, void 0, void 0, function* () {
                        ElementObj.$video.volume = 0, ElementObj.$video.play(), ElementObj.$video.playbackRate = toolOption.accelerator
                    }), 2500)
                })
            })
        }

        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
                let e = document.querySelectorAll(".el-breadcrumb__inner.is-link")[1];
                null == e || e.click(), setTimeout(() => {
                    location.reload()
                }, 3500)
            })
        }
    }

    class shandongzhuanyejisu extends Main {
        constructor() {
            super(), this.taskLength = 0, this.currentIndex = -1, this._init()
        }

        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let e = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    console.log("===>>>已寻找1次");
                    try {
                        document.querySelectorAll(".learn-menu-cell").length && (clearInterval(e), this.getCurrentIndex())
                    } catch (e) {
                    }
                }), 1e3)
            })
        }

        getCurrentIndex() {
            var e;
            return __awaiter(this, void 0, void 0, function* () {
                let t = document.querySelector(".contentIframe");
                ElementObj._document = t.contentWindow.document, ElementObj.$allTask = ElementObj._document.querySelectorAll(".s_point"), showTip("正在初始化"), ElementObj.$handleSpeedUp.style.display = "none";
                for (var n = 0; n <= ElementObj.$allTask.length - 1; n++) {
                    if (!ElementObj.$allTask[n].querySelector(".item_done_icon").classList.contains("done_icon_show")) {
                        this.currentIndex = n;
                        break
                    }
                }
                -1 != this.currentIndex ? (null === (e = ElementObj.$allTask[this.currentIndex]) || void 0 === e || e.click(), showTip("初始化完成,5秒后开始播放"), this.handleClickSpeedUp()) : alert("当前课程已全部学完")
            })
        }

        getVideoDom() {
            return new Promise(e => {
                let t = setInterval(() => {
                    let n = ElementObj._document.querySelector("#mainFrame").contentWindow.document;
                    ElementObj.$video = n.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0))
                }, 1e3)
            })
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime), yield this.getVideoDom(), ElementObj.$video.volume = 0, yield sleep(200), ElementObj.$video.play(), setTimeout(() => {
                    ElementObj.$video.playbackRate = toolOption.accelerator
                }, 3e3), this.listenRebort(), this.listenVidoeStatus(ElementObj.$video, () => {
                    ElementObj.$video.volume = 0, ElementObj.$video.play()
                }), ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () {
                    this.currentIndex >= ElementObj.$allTask.length - 1 ? alert("当前课程已全部学完") : (this.currentIndex += 1, ElementObj.$allTask[this.currentIndex].click(), showTip("🔉正在切换课程"), setTimeout(() => {
                        this.handleClickSpeedUp()
                    }, 5e3))
                })), ElementObj.$video.addEventListener("pause", () => {
                    ElementObj.$video.volume = 0, ElementObj.$video.play()
                })
            })
        }

        updateSpeedElement(e) {
            localStorage.setItem("_localSpeed", e.toString()), ElementObj.$video.playbackRate = e
        }

        listenRebort() {
            this.listenRebortTime = setInterval(() => {
                console.log("人机检测中==》》》");
                let e = document.querySelector(".layui-layer-btn0");
                e && setTimeout(() => {
                    e.click(), ElementObj.$video.play()
                }, 3e3)
            }, 1e4)
        }
    }

    shandongzhuanyejisu.ctxid = 26;

    class chongqingzhuanye extends Main {
        constructor() {
            super(), this.taskLength = 0, this.currentIndex = -1, this._init()
        }

        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let e = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    console.log("===>>>已寻找1次");
                    try {
                        ElementObj.$allTask = document.querySelectorAll("ul li ul li .posCatalog_select"), ElementObj.$allTask.length && (clearInterval(e), this.getCurrentIndex())
                    } catch (e) {
                    }
                }), 1e3)
            })
        }

        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                showTip("✅✅✅正在初始化"), ElementObj.$handleSpeedUp.style.display = "none";
                for (var e = 0; e <= ElementObj.$allTask.length - 1; e++) {
                    if (!ElementObj.$allTask[e].querySelector(".icon_Completed")) {
                        this.currentIndex = e;
                        break
                    }
                }
                if (-1 == this.currentIndex) return void alert("当前课程已全部学完");
                ElementObj.$allTask[this.currentIndex].querySelector(".posCatalog_name").click(), showTip("初始化完成,5秒后开始播放"), this.handleClickSpeedUp()
            })
        }

        getVideoDom() {
            return new Promise(e => {
                let t = 0, n = setInterval(() => {
                    var l, i;
                    let o = null === (i = null === (l = document.querySelector("#iframe").contentDocument) || void 0 === l ? void 0 : l.querySelector("iframe")) || void 0 === i ? void 0 : i.contentDocument;
                    ElementObj.$video = o.querySelector("video"), t += 1, ElementObj.$video && (clearInterval(n), e(!0)), t > 10 && (clearInterval(n), e(!1))
                }, 1e3)
            })
        }

        play() {
            var e;
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime), clearInterval(this.timer);
                let t = yield this.getVideoDom();
                if (t) {
                    ElementObj.$video.volume = 0, yield sleep(200), ElementObj.$video.play(), setTimeout(() => {
                        ElementObj.$video.playbackRate = toolOption.accelerator
                    }, 3e3);
                    let t = null === (e = $el("#iframe").contentDocument.querySelector("iframe")) || void 0 === e ? void 0 : e.contentDocument.querySelector("#reader");
                    this.changeHtml(t), this.listenPageHide(), this.listenPlayTime(), this.listenVidoeStatus(ElementObj.$video, () => {
                        ElementObj.$video.volume = 0, ElementObj.$video.play()
                    }), ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () {
                        this.playNext()
                    })), ElementObj.$video.addEventListener("pause", () => {
                        ElementObj.$video.volume = 0, ElementObj.$video.play()
                    })
                }
                t || (showTip("⚠️⚠️⚠️未检测到视频,5秒后切换下一节", 4500), setTimeout(() => {
                    this.playNext()
                }, 3e3))
            })
        }

        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
                yield sleep(3e3), this.currentIndex >= ElementObj.$allTask.length - 1 ? alert("当前课程已全部学完") : (this.currentIndex += 1, ElementObj.$allTask[this.currentIndex].querySelector(".posCatalog_name").click(), showTip("⚠️⚠️⚠️正在切换课程", 4500), setTimeout(() => {
                    this.handleClickSpeedUp()
                }, 5e3))
            })
        }

        listenPlayTime() {
            showTip("🔉课件正在学习,请务点击或长时间隐藏");
            let e = 0;
            this.timer = setInterval(() => {
                var t;
                e += 1;
                let n = (ElementObj.$video.currentTime / 60).toFixed(2),
                    l = (ElementObj.$video.duration / 60).toFixed(2);
                this.addInfo(`已监测${e}次,当前状态正在学习,已播放${n}分钟,视频总时长为${l}分钟`);
                let i = null === (t = document.querySelector("#iframe").contentDocument) || void 0 === t ? void 0 : t.querySelector(".ans-job-icon");
                "任务点已完成" == (null == i ? void 0 : i.getAttribute("aria-label")) && (clearInterval(this.timer), this.addInfo("✅✅✅监测到当前任务已完成,5秒后自动切换下一节", 1), setTimeout(() => {
                    this.playNext()
                }, 3e3))
            }, 3e3)
        }

        addInfo(e, t) {
            var n, l;
            ElementObj.$ctxstatsbox = null === (n = $el("#iframe").contentDocument.querySelector("iframe")) || void 0 === n ? void 0 : n.contentDocument.querySelector(".ctxstatsbox"), (null === (l = $el("#iframe").contentDocument.querySelector("iframe")) || void 0 === l ? void 0 : l.contentDocument.querySelectorAll(".ctxstatsbox_li")).length >= 15 && (ElementObj.$ctxstatsbox.innerHTML = "");
            let i = `<li class="ctxstatsbox_li" style="color: ${0 == t ? "#f01414" : "#000"};line-height: 30px;font-size: 16px;list-style: none;">${e}</li>`;
            ElementObj.$ctxstatsbox.innerHTML += i
        }
    }

    chongqingzhuanye.ctxid = 26;

    class jiaoyuganbuwang extends Main {
        constructor() {
            super(), this.taskLength = 0, this.currentIndex = -1, this._init()
        }

        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let e = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    console.log("===>>>已寻找1次");
                    try {
                        let t = document.querySelectorAll(".customcur-tabs-wrapper li")[1];
                        if (t) return clearInterval(e), t.click(), void this.getParentIndex();
                        if (ElementObj.$video = document.querySelector("video"), ElementObj.$video) return clearInterval(e), void this.getCurrentIndex()
                    } catch (e) {
                    }
                }), 1e3)
            })
        }

        getParentIndex() {
            var e;
            return __awaiter(this, void 0, void 0, function* () {
                showTip("✅✅✅正在初始化", 3e3), ElementObj.$handleSpeedUp.style.display = "none", yield sleep(3e3), GM_setValue("homeUrl", location.href), showTip("初始化完成,5秒后开始播放"), yield sleep(3e3);
                let t = document.querySelectorAll("tr")[2].lastChild;
                null === (e = t.querySelector("a")) || void 0 === e || e.click(), this.handleClickSpeedUp(), setTimeout(() => {
                    window.close()
                }, 5e3)
            })
        }

        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                ElementObj.$allTask = document.querySelectorAll(".cvtb-MCK-course-content"), yield sleep(100);
                for (var e = 0; e <= ElementObj.$allTask.length - 1; e++) {
                    let t = ElementObj.$allTask[e].querySelector(".cvtb-MCK-CsCt-studyProgress");
                    if (100 != parseInt(t.innerText)) {
                        this.currentIndex = e;
                        break
                    }
                }
                ElementObj.$allTask[this.currentIndex].click(), setTimeout(() => {
                    this.handleClickSpeedUp()
                }, 3e3)
            })
        }

        getVideoDom() {
            return new Promise(e => {
                let t = setInterval(() => {
                    ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0))
                }, 1e3)
            })
        }

        play() {
            return __awaiter(this, void 0, void 0, function* () {
                ElementObj.$handleSpeedUp.style.display = "none", clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime), clearInterval(this.timer);
                yield this.getVideoDom();
                ElementObj.$video.volume = 0, yield sleep(200), ElementObj.$video.play(), setTimeout(() => {
                    ElementObj.$video.playbackRate = toolOption.accelerator
                }, 3e3), this.listenRebort(), this.listenVidoeStatus(ElementObj.$video, () => {
                    ElementObj.$video.volume = 0, ElementObj.$video.play()
                }), ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () {
                    this.playNext()
                })), ElementObj.$video.addEventListener("pause", () => {
                    ElementObj.$video.volume = 0, ElementObj.$video.play()
                })
            })
        }

        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
                if (yield sleep(2e3), this.currentIndex >= ElementObj.$allTask.length - 1) {
                    let e = GM_getValue("homeUrl", null);
                    return GM_openInTab(e, {active: !0}), void setTimeout(() => {
                        window.close()
                    }, 3e3)
                }
                this.currentIndex += 1, setTimeout(() => {
                    this.handleClickSpeedUp()
                }, 5e3)
            })
        }

        listenPlayTime() {
            showTip("🔉课件正在学习,请务点击或长时间隐藏");
            let e = 0;
            this.timer = setInterval(() => {
                e += 1;
                let t = ElementObj.$allTask[this.currentIndex].querySelector(".cvtb-MCK-CsCt-studyProgress"),
                    n = parseInt(t.innerText), l = (ElementObj.$video.duration / 60).toFixed(2);
                this.addInfo(`已监测${e}次,当前状态正在学习,当前播放进度为${n}%,视频总时长为${l}分钟`), 100 == n && (clearInterval(this.timer), this.addInfo("✅✅✅监测到当前任务已完成,5秒后自动切换下一节", 1), setTimeout(() => {
                    this.playNext()
                }, 3e3))
            }, 3e3)
        }

        listenRebort() {
            this.listenRebortTime = setInterval(() => {
                console.log("人机检测中==》》》");
                let e = document.querySelector(".dialog-button-container button");
                e && e.click()
            }, 1e4)
        }
    }

    jiaoyuganbuwang.ctxid = 26;

    class Addpanel {
        constructor() {
            this.$panelWrap = document.createElement("div"), this.$panelStyle = document.createElement("style"), this._init()
        }

        _init() {
            var e, t, n, l, i, o;
            this.$panelWrap.innerHTML = panelhtml, this.$panelStyle.innerHTML = panelcss, null === (e = document.querySelector("head")) || void 0 === e || e.appendChild(this.$panelStyle), 3 == toolOption.SchoolType ? null === (t = document.querySelector("#bigContainer")) || void 0 === t || t.appendChild(this.$panelWrap) : 7 == toolOption.SchoolType ? null === (n = document.querySelector(".layout-content")) || void 0 === n || n.appendChild(this.$panelWrap) : 11 == toolOption.SchoolType ? null === (l = document.querySelector(".task-dashboard-page")) || void 0 === l || l.appendChild(this.$panelWrap) : 18 == toolOption.SchoolType ? null === (i = document.querySelector(".screen_wide_1")) || void 0 === i || i.appendChild(this.$panelWrap) : null === (o = document.querySelector("body")) || void 0 === o || o.appendChild(this.$panelWrap), ElementObj.$title3 = document.querySelector(".title3"), ElementObj.$mytoolkey = document.querySelector(".mytoolkey"), ElementObj.$nokey = document.querySelector(".nokey"), ElementObj.$addKey = document.getElementById("addKey"), ElementObj.$removeKey = document.getElementById("removeKey"), ElementObj.$ipt = document.querySelector(".mytoolkeyipt"), ElementObj.$handleSpeedUp = document.querySelector(".handleSpeedUp"), ElementObj.$playButton = document.querySelector("#playButton"), ElementObj.$ctxTipWrap = document.querySelector("#ctxTipWrap"), ElementObj.$ctxsection2 = document.querySelector(".ctxsection2"), ElementObj.$ctxcontrols = document.querySelector(".ctxcontrols");
            let r = localStorage.getItem("mytoolkey");
            r && this.handleSetHtml(r), this.optimizePannel(), this.setSpeedOption(), this.addEvent(), this.getSlogan()
        }

        optimizePannel() {
            -1 != [14, 24].indexOf(toolOption.SchoolType) && (toolOption.accelerator = 1, speedArr = [1]), 2 == toolOption.SchoolType && ($el(".myTool").style.left = "unset", $el(".myTool").style.right = "44px", $el(".ipt-wrap").style.marginTop = "3px", ElementObj.$ipt.style.padding = "11px 3px"), 9 == toolOption.SchoolType && ($el(".handleKeyBtn").style.lineHeight = "16px"), 16 == toolOption.SchoolType && ($el(".cxtsection3").style.display = "block", ElementObj.$myTool = document.querySelector(".myTool")), -1 != [7, 12, 13, 22, 53].indexOf(toolOption.SchoolType) && (speedArr = [1, 2, 3], toolOption.accelerator = 3), -1 != [38, 45, 46, 52].indexOf(toolOption.SchoolType) && ($el(".myTool").style.left = "unset", $el(".myTool").style.right = "44px"), 17 == toolOption.SchoolType && (toolOption.accelerator = 1, speedArr = [1, 10]), 18 == toolOption.SchoolType && ($el(".btn1").style.width = "74%", $el(".btn1").style.paddingTop = "0", $el(".btn1").style.paddingBottom = "0", $el("#slogan").style.position = "relative", $el("#slogan").style.left = "-40px", speedArr = [1, 2, 3, 5]), 19 == toolOption.SchoolType && (toolOption.accelerator = 1, speedArr = [1], $el(".myTool").style.width = "202px"), 23 == toolOption.SchoolType && ($el(".myTool").style.top = "176px", toolOption.accelerator = 1, speedArr = [1]), 25 == toolOption.SchoolType && (toolOption.accelerator = 2, speedArr = [1, 2]), 26 == toolOption.SchoolType && ($el(".myTool").style.width = "202px"), 16 == toolOption.SchoolType && (2 == Internetcourse.gzjxjy.runtype && (ElementObj.$handleSpeedUp.style.display = "none", ElementObj.$speedSelect = document.querySelector(".ctxsection2"), ElementObj.$speedSelect.style.display = "none"), 1 == Internetcourse.gzjxjy.runtype && (ElementObj.$ctxsection3 = document.querySelector(".cxtsection3"), ElementObj.$ctxsection3.style.display = "none")), 32 != toolOption.SchoolType && 36 != toolOption.SchoolType || ($el(".myTool").style.left = "unset", $el(".myTool").style.right = "44px", speedArr = [1, 1.1]), 37 == toolOption.SchoolType && (speedArr = [1, 2, 5]), 38 == toolOption.SchoolType && (speedArr = [1, 2]), 40 == toolOption.SchoolType && (speedArr = [1, 2]), 41 == toolOption.SchoolType && (speedArr = [1]), 51 == toolOption.SchoolType && ($el(".myTool").style.left = "76px", speedArr = [1, 2, 10], toolOption.accelerator = 2)
        }

        setSpeedOption() {
            ElementObj.$speedSelect = document.querySelector("#ctxspeed");
            let e = "";
            for (var t = 0; t < speedArr.length; t++) {
                e += `\n                <option value="${1.1 == speedArr[t] ? 1 : speedArr[t]}" class="option">\n                  × ${1.1 == speedArr[t] ? 1.2 : speedArr[t]}.0\n                </option>\n                `
            }
            ElementObj.$speedSelect.innerHTML = e;
            var n = localStorage.getItem("_localSpeed");
            n && (ElementObj.$speedSelect.value = n, toolOption.accelerator = Number(n))
        }

        handleSetHtml(e) {
            try {
                ElementObj.$ipt.style.display = "none", ElementObj.$title3.innerText = "当前key:", ElementObj.$mytoolkey.innerText = e, ElementObj.$mytoolkey.style.display = "block", ElementObj.$nokey.style.display = "none", ElementObj.$removeKey.style.display = "block", ElementObj.$addKey.style.display = "none", ElementObj.userKey = e
            } catch (e) {
            }
        }

        addEvent() {
            ElementObj.$addKey.addEventListener("click", () => {
                toolOption.CtxMain.handleAddKey(e => {
                    this.handleSetHtml(e)
                })
            }), ElementObj.$removeKey.addEventListener("click", () => {
                toolOption.CtxMain.handleRemoveKey()
            }), ElementObj.$handleSpeedUp.addEventListener("click", () => {
                toolOption.CtxMain.handleClickSpeedUp()
            }), ElementObj.$ctxsection2.addEventListener("change", e => {
                toolOption.CtxMain.handleChangeCtxSpeed(e.target.value)
            }), ElementObj.$ctxcontrols.addEventListener("click", () => {
                let e = document.querySelector(".myTool-content"), t = GM_getValue("hideCtx", null);
                t ? (e.style.height = "auto", ElementObj.$ctxcontrols.innerText = "×") : (e.style.height = "0px", ElementObj.$ctxcontrols.innerText = "🔛"), GM_setValue("hideCtx", !t)
            })
        }

        getSlogan() {
            fetchData({url: bserUrl + "/getslogan", method: "GET"}).then(e => {
                ElementObj.$slogan = document.querySelector("#slogan"), ElementObj.$slogan.innerHTML = e.result.text1
            })
        }
    }

    function $el(e, t = window.document) {
        const n = t.querySelector(e);
        return null === n ? void 0 : n
    }

    function sleep(e) {
        return new Promise(t => setTimeout(t, e))
    }

    function fetchData(e) {
        return new Promise(t => {
            try {
                GM_xmlhttpRequest(Object.assign(Object.assign({}, e), {
                    onload: function (e) {
                        200 == e.status && t(JSON.parse(e.response))
                    }
                }))
            } catch (n) {
                fetch(e.url, {method: e.method}).then(e => e.json()).then(e => {
                    t(e)
                })
            }
        })
    }

    function showTip(e, t = 1500, n) {
        ElementObj.$ctxTipWrap.style.display = "block", ElementObj.$ctxTipWrap.innerText = e;
        setTimeout(() => {
            ElementObj.$ctxTipWrap.style.display = "none"
        }, t);
        n && alert(e)
    }

    function recognitionType() {
        let current_host = location.host;
        if (!/www.gaozhiwang.top/.test(current_host)) {
            for (let key in Internetcourse) {
                if (Internetcourse[key].host.includes(current_host) && (toolOption.CtxMain = eval(key), toolOption.SchoolType = Internetcourse[key].id), /www.ttcdw.cn/.test(current_host)) {
                    let e = document.querySelector("#paramsUn");
                    toolOption.SchoolType = Internetcourse.beijingjiaoshi.id, toolOption.CtxMain = beijingjiaoshi
                }
                if (/gzjxjy.gzsrs.cn/.test(current_host)) {
                    let e = document.querySelector(".survey-header-subtitle");
                    e ? (toolOption.CtxMain = gzjxjy_Answer, Internetcourse.gzjxjy.runtype = 2) : (toolOption.CtxMain = gzjxjy, Internetcourse.gzjxjy.runtype = 1), toolOption.SchoolType = Internetcourse.gzjxjy.id
                }
            }
            toolOption.CtxMain || (toolOption.CtxMain = zjzjsrc, toolOption.SchoolType = Internetcourse.zjzjsrc.id)
        }
    }

    function hack() {
        var e;
        const t = null == (e = $el(".video-study")) ? void 0 : e.__vue__, n = () => {
        };
        t.checkout = n, t.notTrustScript = n, t.checkoutNotTrustScript = n;
        const l = t.videoClick;
        t.videoClick = function (...e) {
            const n = new PointerEvent("click"), i = Object.create({isTrusted: !0});
            return Object.setPrototypeOf(i, n), e[e.length - 1] = i, l.apply(t, e)
        }, t.videoClick = function (...e) {
            return e[e.length - 1] = {isTrusted: !0}, l.apply(t, e)
        }
    }

    setTimeout(() => {
        if (recognitionType(), 1 == toolOption.SchoolType) try {
            hack()
        } catch (e) {
        }
        toolOption.CtxMain = new toolOption.CtxMain, new Addpanel
    }, 5e3)
}();