\u6682\u65e0\u7ae0\u8282\u6570\u636e
'}\n// ==UserScript== // @name 爱问答助手 // @namespace aiask/askHelper // @version 2.4.1 // @author aiask // @description 全平台问答助手,一键获取整个页面的试题答案,目前支持【超星学习通、知到智慧树、国家开放大学、广东开放大学、江苏开放大学、上海开放大学、云南开放大学、芯位教育、云慕学苑、职教云、川农在线、安徽继续教育平台、青书学堂、睿学在线、成教云、京人平台、绎通继教云、学起Plus、云上河开、河南继续教育、四川开放大学、良师在线、继教云、日照专业技术人员继续教育、麦能网、21tb、168网校、云班课、电大中专、learnin、西财在线、春风雨】,更多平台开发中... // @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAAXNSR0IArs4c6QAAAHVQTFRFR3BMgICBQD8/QUVHQ0ZIRUhKX2FiQD8/Tk1NP0VJPzs7Pz8/QD4+UE9QQD8/PVlnQD8/M6vj////n5+fN5C60NDQSl9qOXWSZL/qTFNXzOr4QWl8yMjItLS02traOIOnNZzN6OfnlJeZ9/f3PYGgpdrzmdXxgSBJqQAAABB0Uk5TAP5E6vys+7/Q0RhsfPFV/OwFarYAAAEESURBVHjapdHrboMgGIBhUHBaD/sAlTE8VOt2/5c4GlBMRZOl7w8j+kQQ0FaVwbG48IDq+piMPcgkO1bD/8DXvhD4/fb9ePDuGiqa2krV7pO1AxSLYIl2ABoeTLSvYMBi4N0sphOAlVaqg1aTPggmZYYaFvNMBYGQz6G6m2vbhEBvF81MxALFTDpbQQd3ZhvBgxqiFfBEO/CJ7ZxkNPcUbWBwn5DJw4KSsJHcHPCTLLDuQxpLkiMLbAIWJs1wBRVkyAFXT7Sa+AYQjTywNfOD74DNA18I9Ifjpg7Es/3Jj5eKyIEcBgNwhk5L8XMPonMQQcfNhBfRpIfbFbiRskCX5enFyz/07TSN9vGxKwAAAABJRU5ErkJggg== // @match *://*.chaoxing.com/* // @match *://*.hlju.edu.cn/* // @match *://*.ecust.edu.cn/* // @match *://lms.ouchn.cn/* // @match *://*.ouchn.cn/* // @match *://xczxzdbf.moodle.qwbx.ouchn.cn/* // @match *://study.ouchn.cn/* // @match *://moodle.syxy.ouchn.cn/* // @match *://moodle.qwbx.ouchn.cn/* // @match *://*.tongyi.com/* // @match *://chatglm.cn/* // @match *://xinghuo.xfyun.cn/* // @match *://chat.deepseek.com/* // @match *://*.zhihuishu.com/* // @match *://course.ougd.cn/* // @match *://elearning.bjou.edu.cn/* // @match *://whkpc.hnqtyq.cn:5678/* // @match *://www.51xinwei.com/* // @match *://*.w-ling.cn/* // @match *://*.edu-edu.com/* // @match *://xuexi.jsou.cn/* // @match *://*.icve.com.cn/* // @match *://zice.cnzx.info/* // @match *://any.cnzx.info:81/* // @match *://www.icourse163.org/* // @match *://*.shou.org.cn/* // @match *://*.ahjxjy.cn/* // @match *://*.chinaedu.net/* // @match *://*.qingshuxuetang.com/* // @match *://cce.org.uooconline.com/* // @match *://*.courshare.cn/* // @match *://*.cep.webtrn.cn/* // @match *://*.webtrn.cn/* // @match *://*.cj-edu.com/* // @match *://*.ytccr.com/* // @match *://*.exam-cloud.cn/* // @match *://gdrtvu.exam-cloud.cn/* // @match *://*.open.ha.cn/* // @match *://lhycjy.cloudwis.tech/* // @match *://*.sclecb.cn/* // @match *://*.web2.superchutou.com/* // @match *://*.ls365.net/* // @match *://*.jijiaox.com/* // @match *://*.wencaischool.net/* // @match *://sdrz.gxk.yxlearning.com/* // @match *://*.crjxjy.net/* // @match *://*.cjnep.net/* // @match *://*.91huayi.com/* // @match *://teach.ynou.edu.cn/* // @match *://*.edu-edu.com.cn/* // @match *://*.21tb.com/* // @match *://*.168wangxiao.com/* // @match *://*.mynep.com/* // @match *://www.mosoteach.cn/* // @match *://*.aufe.edu.cn/* // @match *://*.learnin.com.cn/* // @match *://*.ouchn.edu.cn/* // @match *://*.swufe-online.com/* // @match *://ks.cqsdx.cn/* // @match *://*.qau.edu.cn/* // @match *://*.gdufemooc.cn/* // @match *://*.telfri-edu.com/* // @match *://www.beeline-ai.com/* // @match *://*.wxic.edu.cn/* // @match *://*.yxbyun.com/* // @match *://*.wdjycj.com/* // @match *://*.hbcjpt.com/* // @match *://*.csmu.edu.cn/* // @match *://*.ketangx.net/* // @match *://*.cnzx.info/* // @match *://www.asklib.com/* // @match *://*.xust.edu.cn/* // @match *://*.whut.edu.cn/* // @match *://*.wwwwsoft.com/* // @match *://*.dufe.edu.cn/* // @match *://*.lygtc.edu.cn/* // @match *://*.iwdjy.com/* // @match *://*.jijiaool.com/* // @match *://lms.cjzx.hblll.com/* // @match *://*.ouc-online.com.cn/* // @require https://lib.baomitu.com/vue/3.4.27/vue.global.min.js // @require https://lib.baomitu.com/vue-demi/0.14.6/index.iife.js // @require data:application/javascript,%3Bwindow.Vue%3DVue%3B // @require https://lib.baomitu.com/element-plus/2.8.2/index.full.min.js // @require https://lib.baomitu.com/jquery/3.6.0/jquery.min.js // @require https://lib.baomitu.com/dompurify/3.1.6/purify.min.js // @require https://lib.baomitu.com/crypto-js/4.2.0/crypto-js.min.js // @resource ElementPlus https://lib.baomitu.com/element-plus/2.8.2/index.min.css // @connect 127.0.0.1 // @connect icodef.com // @connect muketool.com // @connect wk66.top // @connect 82.157.105.20 // @connect zhihuishu.com // @connect greasyfork.org // @connect chaoxing.com // @connect shou.org.cn // @connect jsdelivr.net // @connect jsdmirror.cn // @connect gitee.com // @connect vxo.im // @connect zeroai.chat // @connect forestpolice.org // @connect scriptcat.org // @connect aiask.site // @connect * // @grant GM_addStyle // @grant GM_deleteValue // @grant GM_getResourceText // @grant GM_getValue // @grant GM_info // @grant GM_listValues // @grant GM_setValue // @grant GM_xmlhttpRequest // @grant unsafeWindow // @run-at document-start // ==/UserScript== // hello (e=>{if(typeof GM_addStyle=="function"){GM_addStyle(e);return}const d=document.createElement("style");d.textContent=e,document.head.append(d)})(" .base-container[data-v-05def6d1]{padding:0}.tips-card[data-v-05def6d1],.config-card[data-v-05def6d1]{margin-bottom:20px}.card-header[data-v-05def6d1]{display:flex;align-items:center;justify-content:space-between}.card-title[data-v-05def6d1]{font-size:16px;font-weight:600;color:#1f2937}.config-list[data-v-05def6d1]{display:flex;flex-direction:column;gap:20px}.config-item[data-v-05def6d1]{padding:16px;background:#fff;border-radius:12px;transition:all .3s;border:1px solid #e5e7eb}.config-item[data-v-05def6d1]:hover{background:#fafbfc;box-shadow:0 2px 8px #0000000d}.config-item-content[data-v-05def6d1]{display:flex;justify-content:space-between;align-items:center;gap:20px}.config-label[data-v-05def6d1]{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.label-text[data-v-05def6d1]{font-size:15px;font-weight:500;color:#374151}.info-icon[data-v-05def6d1]{color:#9ca3af;cursor:help;font-size:16px}.info-icon[data-v-05def6d1]:hover{color:#667eea}.config-control[data-v-05def6d1]{display:flex;align-items:center;flex-shrink:0}.checkbox-group[data-v-05def6d1]{display:flex;flex-wrap:wrap;gap:12px}.hotkey-input-wrapper[data-v-05def6d1]{position:relative}.hotkey-input-wrapper[data-v-05def6d1] .el-input.recording{border-color:#f56c6c;animation:pulse-05def6d1 1.5s infinite}.hotkey-input-wrapper[data-v-05def6d1] .el-input.recording input{background-color:#fef0f0;cursor:pointer}.hotkey-input-wrapper[data-v-05def6d1] .el-input input{cursor:pointer}@keyframes pulse-05def6d1{0%,to{box-shadow:0 0 #f56c6c66}50%{box-shadow:0 0 0 6px #f56c6c00}}@media (max-width: 768px){.config-item-content[data-v-05def6d1]{flex-direction:column;align-items:flex-start}.config-control[data-v-05def6d1]{width:100%}.config-control .el-input[data-v-05def6d1],.config-control .el-select[data-v-05def6d1]{width:100%;max-width:100%!important}} "); (function (vue, N, F, J, Q) { 'use strict'; var e = Object.defineProperty, __publicField = (t, n, a) => ((t, n, a) => n in t ? e(t, n, { enumerable: !0, configurable: !0, writable: !0, value: a }) : t[n] = a)(t, "symbol" != typeof n ? n + "" : n, a); var K = vue.defineComponent({ name: "ArrowLeft", __name: "arrow-left", setup: e => (e, t) => (vue.openBlock(), vue.createElementBlock("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 1024 1024" }, [ vue.createElementVNode("path", { fill: "currentColor", d: "M609.408 149.376 277.76 489.6a32 32 0 0 0 0 44.672l331.648 340.352a29.12 29.12 0 0 0 41.728 0 30.59 30.59 0 0 0 0-42.752L339.264 511.936l311.872-319.872a30.59 30.59 0 0 0 0-42.688 29.12 29.12 0 0 0-41.728 0" }) ])) }), W = vue.defineComponent({ name: "ArrowRight", __name: "arrow-right", setup: e => (e, t) => (vue.openBlock(), vue.createElementBlock("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 1024 1024" }, [ vue.createElementVNode("path", { fill: "currentColor", d: "M340.864 149.312a30.59 30.59 0 0 0 0 42.752L652.736 512 340.864 831.872a30.59 30.59 0 0 0 0 42.752 29.12 29.12 0 0 0 41.728 0L714.24 534.336a32 32 0 0 0 0-44.672L382.592 149.376a29.12 29.12 0 0 0-41.728 0z" }) ])) }), Y = vue.defineComponent({ name: "ChatDotRound", __name: "chat-dot-round", setup: e => (e, t) => (vue.openBlock(), vue.createElementBlock("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 1024 1024" }, [ vue.createElementVNode("path", { fill: "currentColor", d: "m174.72 855.68 135.296-45.12 23.68 11.84C388.096 849.536 448.576 864 512 864c211.84 0 384-166.784 384-352S723.84 160 512 160 128 326.784 128 512c0 69.12 24.96 139.264 70.848 199.232l22.08 28.8-46.272 115.584zm-45.248 82.56A32 32 0 0 1 89.6 896l58.368-145.92C94.72 680.32 64 596.864 64 512 64 299.904 256 96 512 96s448 203.904 448 416-192 416-448 416a461.06 461.06 0 0 1-206.912-48.384l-175.616 58.56z" }), vue.createElementVNode("path", { fill: "currentColor", d: "M512 563.2a51.2 51.2 0 1 1 0-102.4 51.2 51.2 0 0 1 0 102.4m192 0a51.2 51.2 0 1 1 0-102.4 51.2 51.2 0 0 1 0 102.4m-384 0a51.2 51.2 0 1 1 0-102.4 51.2 51.2 0 0 1 0 102.4" }) ])) }), Z = vue.defineComponent({ name: "Coin", __name: "coin", setup: e => (e, t) => (vue.openBlock(), vue.createElementBlock("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 1024 1024" }, [ vue.createElementVNode("path", { fill: "currentColor", d: "m161.92 580.736 29.888 58.88C171.328 659.776 160 681.728 160 704c0 82.304 155.328 160 352 160s352-77.696 352-160c0-22.272-11.392-44.16-31.808-64.32l30.464-58.432C903.936 615.808 928 657.664 928 704c0 129.728-188.544 224-416 224S96 833.728 96 704c0-46.592 24.32-88.576 65.92-123.264" }), vue.createElementVNode("path", { fill: "currentColor", d: "m161.92 388.736 29.888 58.88C171.328 467.84 160 489.792 160 512c0 82.304 155.328 160 352 160s352-77.696 352-160c0-22.272-11.392-44.16-31.808-64.32l30.464-58.432C903.936 423.808 928 465.664 928 512c0 129.728-188.544 224-416 224S96 641.728 96 512c0-46.592 24.32-88.576 65.92-123.264" }), vue.createElementVNode("path", { fill: "currentColor", d: "M512 544c-227.456 0-416-94.272-416-224S284.544 96 512 96s416 94.272 416 224-188.544 224-416 224m0-64c196.672 0 352-77.696 352-160S708.672 160 512 160s-352 77.696-352 160 155.328 160 352 160" }) ])) }), X = vue.defineComponent({ name: "CollectionTag", __name: "collection-tag", setup: e => (e, t) => (vue.openBlock(), vue.createElementBlock("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 1024 1024" }, [ vue.createElementVNode("path", { fill: "currentColor", d: "M256 128v698.88l196.032-156.864a96 96 0 0 1 119.936 0L768 826.816V128zm-32-64h576a32 32 0 0 1 32 32v797.44a32 32 0 0 1-51.968 24.96L531.968 720a32 32 0 0 0-39.936 0L243.968 918.4A32 32 0 0 1 192 893.44V96a32 32 0 0 1 32-32" }) ])) }), ee = vue.defineComponent({ name: "CopyDocument", __name: "copy-document", setup: e => (e, t) => (vue.openBlock(), vue.createElementBlock("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 1024 1024" }, [ vue.createElementVNode("path", { fill: "currentColor", d: "M768 832a128 128 0 0 1-128 128H192A128 128 0 0 1 64 832V384a128 128 0 0 1 128-128v64a64 64 0 0 0-64 64v448a64 64 0 0 0 64 64h448a64 64 0 0 0 64-64z" }), vue.createElementVNode("path", { fill: "currentColor", d: "M384 128a64 64 0 0 0-64 64v448a64 64 0 0 0 64 64h448a64 64 0 0 0 64-64V192a64 64 0 0 0-64-64zm0-64h448a128 128 0 0 1 128 128v448a128 128 0 0 1-128 128H384a128 128 0 0 1-128-128V192A128 128 0 0 1 384 64" }) ])) }), te = vue.defineComponent({ name: "DataAnalysis", __name: "data-analysis", setup: e => (e, t) => (vue.openBlock(), vue.createElementBlock("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 1024 1024" }, [ vue.createElementVNode("path", { fill: "currentColor", d: "m665.216 768 110.848 192h-73.856L591.36 768H433.024L322.176 960H248.32l110.848-192H160a32 32 0 0 1-32-32V192H64a32 32 0 0 1 0-64h896a32 32 0 1 1 0 64h-64v544a32 32 0 0 1-32 32zM832 192H192v512h640zM352 448a32 32 0 0 1 32 32v64a32 32 0 0 1-64 0v-64a32 32 0 0 1 32-32m160-64a32 32 0 0 1 32 32v128a32 32 0 0 1-64 0V416a32 32 0 0 1 32-32m160-64a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V352a32 32 0 0 1 32-32" }) ])) }), ne = vue.defineComponent({ name: "Delete", __name: "delete", setup: e => (e, t) => (vue.openBlock(), vue.createElementBlock("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 1024 1024" }, [ vue.createElementVNode("path", { fill: "currentColor", d: "M160 256H96a32 32 0 0 1 0-64h256V95.936a32 32 0 0 1 32-32h256a32 32 0 0 1 32 32V192h256a32 32 0 1 1 0 64h-64v672a32 32 0 0 1-32 32H192a32 32 0 0 1-32-32zm448-64v-64H416v64zM224 896h576V256H224zm192-128a32 32 0 0 1-32-32V416a32 32 0 0 1 64 0v320a32 32 0 0 1-32 32m192 0a32 32 0 0 1-32-32V416a32 32 0 0 1 64 0v320a32 32 0 0 1-32 32" }) ])) }), ae = vue.defineComponent({ name: "Document", __name: "document", setup: e => (e, t) => (vue.openBlock(), vue.createElementBlock("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 1024 1024" }, [ vue.createElementVNode("path", { fill: "currentColor", d: "M832 384H576V128H192v768h640zm-26.496-64L640 154.496V320zM160 64h480l256 256v608a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32m160 448h384v64H320zm0-192h160v64H320zm0 384h384v64H320z" }) ])) }), se = vue.defineComponent({ name: "Download", __name: "download", setup: e => (e, t) => (vue.openBlock(), vue.createElementBlock("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 1024 1024" }, [ vue.createElementVNode("path", { fill: "currentColor", d: "M160 832h704a32 32 0 1 1 0 64H160a32 32 0 1 1 0-64m384-253.696 236.288-236.352 45.248 45.248L508.8 704 192 387.2l45.248-45.248L480 584.704V128h64z" }) ])) }), oe = vue.defineComponent({ name: "EditPen", __name: "edit-pen", setup: e => (e, t) => (vue.openBlock(), vue.createElementBlock("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 1024 1024" }, [ vue.createElementVNode("path", { fill: "currentColor", d: "m199.04 672.64 193.984 112 224-387.968-193.92-112-224 388.032zm-23.872 60.16 32.896 148.288 144.896-45.696zM455.04 229.248l193.92 112 56.704-98.112-193.984-112zM104.32 708.8l384-665.024 304.768 175.936L409.152 884.8h.064l-248.448 78.336zm384 254.272v-64h448v64z" }) ])) }), ie = vue.defineComponent({ name: "Edit", __name: "edit", setup: e => (e, t) => (vue.openBlock(), vue.createElementBlock("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 1024 1024" }, [ vue.createElementVNode("path", { fill: "currentColor", d: "M832 512a32 32 0 1 1 64 0v352a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32h352a32 32 0 0 1 0 64H192v640h640z" }), vue.createElementVNode("path", { fill: "currentColor", d: "m469.952 554.24 52.8-7.552L847.104 222.4a32 32 0 1 0-45.248-45.248L477.44 501.44l-7.552 52.8zm422.4-422.4a96 96 0 0 1 0 135.808l-331.84 331.84a32 32 0 0 1-18.112 9.088L436.8 623.68a32 32 0 0 1-36.224-36.224l15.104-105.6a32 32 0 0 1 9.024-18.112l331.904-331.84a96 96 0 0 1 135.744 0z" }) ])) }), re = vue.defineComponent({ name: "FolderOpened", __name: "folder-opened", setup: e => (e, t) => (vue.openBlock(), vue.createElementBlock("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 1024 1024" }, [ vue.createElementVNode("path", { fill: "currentColor", d: "M878.08 448H241.92l-96 384h636.16zM832 384v-64H485.76L357.504 192H128v448l57.92-231.744A32 32 0 0 1 216.96 384zm-24.96 512H96a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32h287.872l128.384 128H864a32 32 0 0 1 32 32v96h23.04a32 32 0 0 1 31.04 39.744l-112 448A32 32 0 0 1 807.04 896" }) ])) }), le = vue.defineComponent({ name: "Folder", __name: "folder", setup: e => (e, t) => (vue.openBlock(), vue.createElementBlock("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 1024 1024" }, [ vue.createElementVNode("path", { fill: "currentColor", d: "M128 192v640h768V320H485.76L357.504 192zm-32-64h287.872l128.384 128H928a32 32 0 0 1 32 32v576a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32" }) ])) }), ce = vue.defineComponent({ name: "House", __name: "house", setup: e => (e, t) => (vue.openBlock(), vue.createElementBlock("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 1024 1024" }, [ vue.createElementVNode("path", { fill: "currentColor", d: "M192 413.952V896h640V413.952L512 147.328zM139.52 374.4l352-293.312a32 32 0 0 1 40.96 0l352 293.312A32 32 0 0 1 896 398.976V928a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V398.976a32 32 0 0 1 11.52-24.576" }) ])) }), pe = vue.defineComponent({ name: "Key", __name: "key", setup: e => (e, t) => (vue.openBlock(), vue.createElementBlock("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 1024 1024" }, [ vue.createElementVNode("path", { fill: "currentColor", d: "M448 456.064V96a32 32 0 0 1 32-32.064L672 64a32 32 0 0 1 0 64H512v128h160a32 32 0 0 1 0 64H512v128a256 256 0 1 1-64 8.064M512 896a192 192 0 1 0 0-384 192 192 0 0 0 0 384" }) ])) }), ue = vue.defineComponent({ name: "Lock", __name: "lock", setup: e => (e, t) => (vue.openBlock(), vue.createElementBlock("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 1024 1024" }, [ vue.createElementVNode("path", { fill: "currentColor", d: "M224 448a32 32 0 0 0-32 32v384a32 32 0 0 0 32 32h576a32 32 0 0 0 32-32V480a32 32 0 0 0-32-32zm0-64h576a96 96 0 0 1 96 96v384a96 96 0 0 1-96 96H224a96 96 0 0 1-96-96V480a96 96 0 0 1 96-96" }), vue.createElementVNode("path", { fill: "currentColor", d: "M512 544a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V576a32 32 0 0 1 32-32m192-160v-64a192 192 0 1 0-384 0v64zM512 64a256 256 0 0 1 256 256v128H256V320A256 256 0 0 1 512 64" }) ])) }), de = vue.defineComponent({ name: "Minus", __name: "minus", setup: e => (e, t) => (vue.openBlock(), vue.createElementBlock("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 1024 1024" }, [ vue.createElementVNode("path", { fill: "currentColor", d: "M128 544h768a32 32 0 1 0 0-64H128a32 32 0 0 0 0 64" }) ])) }), me = vue.defineComponent({ name: "Notebook", __name: "notebook", setup: e => (e, t) => (vue.openBlock(), vue.createElementBlock("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 1024 1024" }, [ vue.createElementVNode("path", { fill: "currentColor", d: "M192 128v768h640V128zm-32-64h704a32 32 0 0 1 32 32v832a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32" }), vue.createElementVNode("path", { fill: "currentColor", d: "M672 128h64v768h-64zM96 192h128q32 0 32 32t-32 32H96q-32 0-32-32t32-32m0 192h128q32 0 32 32t-32 32H96q-32 0-32-32t32-32m0 192h128q32 0 32 32t-32 32H96q-32 0-32-32t32-32m0 192h128q32 0 32 32t-32 32H96q-32 0-32-32t32-32" }) ])) }), he = vue.defineComponent({ name: "Plus", __name: "plus", setup: e => (e, t) => (vue.openBlock(), vue.createElementBlock("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 1024 1024" }, [ vue.createElementVNode("path", { fill: "currentColor", d: "M480 480V128a32 32 0 0 1 64 0v352h352a32 32 0 1 1 0 64H544v352a32 32 0 1 1-64 0V544H128a32 32 0 0 1 0-64z" }) ])) }), fe = vue.defineComponent({ name: "QuestionFilled", __name: "question-filled", setup: e => (e, t) => (vue.openBlock(), vue.createElementBlock("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 1024 1024" }, [ vue.createElementVNode("path", { fill: "currentColor", d: "M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m23.744 191.488c-52.096 0-92.928 14.784-123.2 44.352-30.976 29.568-45.76 70.4-45.76 122.496h80.256c0-29.568 5.632-52.8 17.6-68.992 13.376-19.712 35.2-28.864 66.176-28.864 23.936 0 42.944 6.336 56.32 19.712 12.672 13.376 19.712 31.68 19.712 54.912 0 17.6-6.336 34.496-19.008 49.984l-8.448 9.856c-45.76 40.832-73.216 70.4-82.368 89.408-9.856 19.008-14.08 42.24-14.08 68.992v9.856h80.96v-9.856c0-16.896 3.52-31.68 10.56-45.76 6.336-12.672 15.488-24.64 28.16-35.2 33.792-29.568 54.208-48.576 60.544-55.616 16.896-22.528 26.048-51.392 26.048-86.592q0-64.416-42.24-101.376c-28.16-25.344-65.472-37.312-111.232-37.312m-12.672 406.208a54.27 54.27 0 0 0-38.72 14.784 49.4 49.4 0 0 0-15.488 38.016c0 15.488 4.928 28.16 15.488 38.016A54.85 54.85 0 0 0 523.072 768c15.488 0 28.16-4.928 38.72-14.784a51.52 51.52 0 0 0 16.192-38.72 51.97 51.97 0 0 0-15.488-38.016 55.94 55.94 0 0 0-39.424-14.784" }) ])) }), ye = vue.defineComponent({ name: "Refresh", __name: "refresh", setup: e => (e, t) => (vue.openBlock(), vue.createElementBlock("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 1024 1024" }, [ vue.createElementVNode("path", { fill: "currentColor", d: "M771.776 794.88A384 384 0 0 1 128 512h64a320 320 0 0 0 555.712 216.448H654.72a32 32 0 1 1 0-64h149.056a32 32 0 0 1 32 32v148.928a32 32 0 1 1-64 0v-50.56zM276.288 295.616h92.992a32 32 0 0 1 0 64H220.16a32 32 0 0 1-32-32V178.56a32 32 0 0 1 64 0v50.56A384 384 0 0 1 896.128 512h-64a320 320 0 0 0-555.776-216.384z" }) ])) }), ge = vue.defineComponent({ name: "Search", __name: "search", setup: e => (e, t) => (vue.openBlock(), vue.createElementBlock("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 1024 1024" }, [ vue.createElementVNode("path", { fill: "currentColor", d: "m795.904 750.72 124.992 124.928a32 32 0 0 1-45.248 45.248L750.656 795.904a416 416 0 1 1 45.248-45.248zM480 832a352 352 0 1 0 0-704 352 352 0 0 0 0 704" }) ])) }), we = vue.defineComponent({ name: "Setting", __name: "setting", setup: e => (e, t) => (vue.openBlock(), vue.createElementBlock("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 1024 1024" }, [ vue.createElementVNode("path", { fill: "currentColor", d: "M600.704 64a32 32 0 0 1 30.464 22.208l35.2 109.376c14.784 7.232 28.928 15.36 42.432 24.512l112.384-24.192a32 32 0 0 1 34.432 15.36L944.32 364.8a32 32 0 0 1-4.032 37.504l-77.12 85.12a357 357 0 0 1 0 49.024l77.12 85.248a32 32 0 0 1 4.032 37.504l-88.704 153.6a32 32 0 0 1-34.432 15.296L708.8 803.904c-13.44 9.088-27.648 17.28-42.368 24.512l-35.264 109.376A32 32 0 0 1 600.704 960H423.296a32 32 0 0 1-30.464-22.208L357.696 828.48a352 352 0 0 1-42.56-24.64l-112.32 24.256a32 32 0 0 1-34.432-15.36L79.68 659.2a32 32 0 0 1 4.032-37.504l77.12-85.248a357 357 0 0 1 0-48.896l-77.12-85.248A32 32 0 0 1 79.68 364.8l88.704-153.6a32 32 0 0 1 34.432-15.296l112.32 24.256c13.568-9.152 27.776-17.408 42.56-24.64l35.2-109.312A32 32 0 0 1 423.232 64H600.64zm-23.424 64H446.72l-36.352 113.088-24.512 11.968a294 294 0 0 0-34.816 20.096l-22.656 15.36-116.224-25.088-65.28 113.152 79.68 88.192-1.92 27.136a293 293 0 0 0 0 40.192l1.92 27.136-79.808 88.192 65.344 113.152 116.224-25.024 22.656 15.296a294 294 0 0 0 34.816 20.096l24.512 11.968L446.72 896h130.688l36.48-113.152 24.448-11.904a288 288 0 0 0 34.752-20.096l22.592-15.296 116.288 25.024 65.28-113.152-79.744-88.192 1.92-27.136a293 293 0 0 0 0-40.256l-1.92-27.136 79.808-88.128-65.344-113.152-116.288 24.96-22.592-15.232a288 288 0 0 0-34.752-20.096l-24.448-11.904L577.344 128zM512 320a192 192 0 1 1 0 384 192 192 0 0 1 0-384m0 64a128 128 0 1 0 0 256 128 128 0 0 0 0-256" }) ])) }), ve = vue.defineComponent({ name: "TrophyBase", __name: "trophy-base", setup: e => (e, t) => (vue.openBlock(), vue.createElementBlock("svg", { xmlns: "http://www.w3.org/2000/svg", "xml:space": "preserve", viewBox: "0 0 1024 1024" }, [ vue.createElementVNode("path", { fill: "currentColor", d: "M918.4 201.6c-6.4-6.4-12.8-9.6-22.4-9.6H768V96c0-9.6-3.2-16-9.6-22.4S745.6 64 736 64H288c-9.6 0-16 3.2-22.4 9.6S256 86.4 256 96v96H128c-9.6 0-16 3.2-22.4 9.6S96 217.6 96 224c3.2 108.8 25.6 185.6 64 224 34.4 34.4 77.56 55.65 127.65 61.99 10.91 20.44 24.78 39.25 41.95 56.41 40.86 40.86 91 65.47 150.4 71.9V768h-96c-9.6 0-16 3.2-22.4 9.6S352 790.4 352 800s3.2 16 9.6 22.4 12.8 9.6 22.4 9.6h256c9.6 0 16-3.2 22.4-9.6s9.6-12.8 9.6-22.4-3.2-16-9.6-22.4-12.8-9.6-22.4-9.6h-96V637.26c59.4-7.71 109.54-30.01 150.4-70.86 17.2-17.2 31.51-36.06 42.81-56.55 48.93-6.51 90.02-27.7 126.79-61.85 38.4-38.4 60.8-112 64-224 0-6.4-3.2-16-9.6-22.4M256 438.4c-19.2-6.4-35.2-19.2-51.2-35.2-22.4-22.4-35.2-70.4-41.6-147.2H256zm390.4 80C608 553.6 566.4 576 512 576s-99.2-19.2-134.4-57.6S320 438.4 320 384V128h384v256q0 81.6-57.6 134.4m172.8-115.2c-16 16-32 25.6-51.2 35.2V256h92.8c-6.4 76.8-19.2 124.8-41.6 147.2M768 896H256c-9.6 0-16 3.2-22.4 9.6S224 918.4 224 928s3.2 16 9.6 22.4 12.8 9.6 22.4 9.6h512c9.6 0 16-3.2 22.4-9.6s9.6-12.8 9.6-22.4-3.2-16-9.6-22.4-12.8-9.6-22.4-9.6" }) ])) }), xe = vue.defineComponent({ name: "Upload", __name: "upload", setup: e => (e, t) => (vue.openBlock(), vue.createElementBlock("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 1024 1024" }, [ vue.createElementVNode("path", { fill: "currentColor", d: "M160 832h704a32 32 0 1 1 0 64H160a32 32 0 1 1 0-64m384-578.304V704h-64V247.296L237.248 490.048 192 444.8 508.8 128l316.8 316.8-45.312 45.248z" }) ])) }), be = vue.defineComponent({ name: "User", __name: "user", setup: e => (e, t) => (vue.openBlock(), vue.createElementBlock("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 1024 1024" }, [ vue.createElementVNode("path", { fill: "currentColor", d: "M512 512a192 192 0 1 0 0-384 192 192 0 0 0 0 384m0 64a256 256 0 1 1 0-512 256 256 0 0 1 0 512m320 320v-96a96 96 0 0 0-96-96H288a96 96 0 0 0-96 96v96a32 32 0 1 1-64 0v-96a160 160 0 0 1 160-160h448a160 160 0 0 1 160 160v96a32 32 0 1 1-64 0" }) ])) }); let ke; const setActivePinia = e => ke = e, _e = Symbol(); function isPlainObject(e) { return e && "object" == typeof e && "[object Object]" === Object.prototype.toString.call(e) && "function" != typeof e.toJSON; } var qe, Ce; (Ce = qe || (qe = {})).direct = "direct", Ce.patchObject = "patch object", Ce.patchFunction = "patch function"; const noop = () => {}; function addSubscription(e, t, n, a = noop) { e.push(t); const removeSubscription = () => { const n = e.indexOf(t); n > -1 && (e.splice(n, 1), a()); }; return !n && vue.getCurrentScope() && vue.onScopeDispose(removeSubscription), removeSubscription; } function triggerSubscriptions(e, ...t) { e.slice().forEach((e => { e(...t); })); } const fallbackRunWithContext = e => e(), Te = Symbol(), Ae = Symbol(); function mergeReactiveObjects(e, t) { e instanceof Map && t instanceof Map ? t.forEach(((t, n) => e.set(n, t))) : e instanceof Set && t instanceof Set && t.forEach(e.add, e); for (const n in t) { if (!t.hasOwnProperty(n)) continue; const a = t[n], s = e[n]; isPlainObject(s) && isPlainObject(a) && e.hasOwnProperty(n) && !vue.isRef(a) && !vue.isReactive(a) ? e[n] = mergeReactiveObjects(s, a) : e[n] = a; } return e; } const He = Symbol(); const {assign: Ee} = Object; function createSetupStore(e, t, n = {}, a, s, r) { let l; const c = Ee({ actions: {} }, n), f = { deep: !0 }; let y, w, v, x = [], b = []; const k = a.state.value[e]; let _; function $patch(t) { let n; y = w = !1, "function" == typeof t ? (t(a.state.value[e]), n = { type: qe.patchFunction, storeId: e, events: v }) : (mergeReactiveObjects(a.state.value[e], t), n = { type: qe.patchObject, payload: t, storeId: e, events: v }); const s = _ = Symbol(); vue.nextTick().then((() => { _ === s && (y = !0); })), w = !0, triggerSubscriptions(x, n, a.state.value[e]); } r || k || (a.state.value[e] = {}), vue.ref({}); const q = r ? function() { const {state: e} = n, t = e ? e() : {}; this.$patch((e => { Ee(e, t); })); } : noop; const action = (t, n = "") => { if (Te in t) return t[Ae] = n, t; const wrappedAction = function() { setActivePinia(a); const n = Array.from(arguments), s = [], o = []; let i; triggerSubscriptions(b, { args: n, name: wrappedAction[Ae], store: T, after: function(e) { s.push(e); }, onError: function(e) { o.push(e); } }); try { i = t.apply(this && this.$id === e ? this : T, n); } catch (r) { throw triggerSubscriptions(o, r), r; } return i instanceof Promise ? i.then((e => (triggerSubscriptions(s, e), e))).catch((e => (triggerSubscriptions(o, e), Promise.reject(e)))) : (triggerSubscriptions(s, i), i); }; return wrappedAction[Te] = !0, wrappedAction[Ae] = n, wrappedAction; }, C = { _p: a, $id: e, $onAction: addSubscription.bind(null, b), $patch: $patch, $reset: q, $subscribe(t, n = {}) { const s = addSubscription(x, t, n.detached, (() => o())), o = l.run((() => vue.watch((() => a.state.value[e]), (a => { ("sync" === n.flush ? w : y) && t({ storeId: e, type: qe.direct, events: v }, a); }), Ee({}, f, n)))); return s; }, $dispose: function() { l.stop(), x = [], b = [], a._s.delete(e); } }, T = vue.reactive(C); a._s.set(e, T); const A = (a._a && a._a.runWithContext || fallbackRunWithContext)((() => a._e.run((() => (l = vue.effectScope()).run((() => t({ action: action }))))))); for (const o in A) { const t = A[o]; if (vue.isRef(t) && (!vue.isRef(E = t) || !E.effect) || vue.isReactive(t)) r || (!k || isPlainObject(H = t) && H.hasOwnProperty(He) || (vue.isRef(t) ? t.value = k[o] : mergeReactiveObjects(t, k[o])), a.state.value[e][o] = t); else if ("function" == typeof t) { const e = action(t, o); A[o] = e, c.actions[o] = t; } } var H, E; return Ee(T, A), Ee(vue.toRaw(T), A), Object.defineProperty(T, "$state", { get: () => a.state.value[e], set: e => { $patch((t => { Ee(t, e); })); } }), a._p.forEach((e => { Ee(T, l.run((() => e({ store: T, app: a._a, pinia: a, options: c })))); })), k && r && n.hydrate && n.hydrate(T.$state, k), y = !0, w = !0, T; } function defineStore(e, t, n) { let a, s; const o = "function" == typeof t; function useStore(e, n) { const i = vue.hasInjectionContext(); (e = e || (i ? vue.inject(_e, null) : null)) && setActivePinia(e), (e = ke)._s.has(a) || (o ? createSetupStore(a, t, s, e) : function(e, t, n) { const {state: a, actions: s, getters: o} = t, i = n.state.value[e]; createSetupStore(e, (function() { i || (n.state.value[e] = a ? a() : {}); const t = vue.toRefs(n.state.value[e]); return Ee(t, s, Object.keys(o || {}).reduce(((t, a) => (t[a] = vue.markRaw(vue.computed((() => { setActivePinia(n); const t = n._s.get(e); return o[a].call(t, t); }))), t)), {})); }), t, n, 0, !0); }(a, s, e)); return e._s.get(a); } return "string" == typeof e ? (a = e, s = o ? n : t) : (s = e, a = e.id), useStore.$id = a, useStore; } var Se = (() => "undefined" != typeof GM_deleteValue ? GM_deleteValue : void 0)(), $e = (() => "undefined" != typeof GM_getResourceText ? GM_getResourceText : void 0)(), je = (() => "undefined" != typeof GM_getValue ? GM_getValue : void 0)(), ze = (() => "undefined" != typeof GM_info ? GM_info : void 0)(), Ie = (() => "undefined" != typeof GM_listValues ? GM_listValues : void 0)(), Le = (() => "undefined" != typeof GM_setValue ? GM_setValue : void 0)(), Oe = (() => "undefined" != typeof GM_xmlhttpRequest ? GM_xmlhttpRequest : void 0)(), Me = (() => "undefined" != typeof unsafeWindow ? unsafeWindow : void 0)(); const Ve = "AiAsk_"; class Cache { static set(e, t, n = 0) { e = Ve + e; const a = { value: t, expire: n > 0 ? Date.now() + 1e3 * n : 0 }; return Le(e, a), je(e); } static get(e, t = null) { const n = je(e = Ve + e); return n && n.expire && n.expire < Date.now() ? (Se(e), t) : n ? n.value : t; } static match(e) { return e = Ve + e, Ie().filter((t => t.startsWith(e))); } static matchGet(e) { const t = Ve + e; let n = Ie().filter((e => e.startsWith(t))).map((e => { const t = je(e, { value: null, expire: 0 }).value; return t && (t.key = e.replace(Ve, "")), t; })).filter((e => null !== e)); return n.sort(((e, t) => (t.createTime || 0) - (e.createTime || 0))), n; } static remove(e) { Se(Ve + e); } static clear() { Ie().filter((e => e.startsWith(Ve))).forEach(Se); } static matchRemove(e) { e = Ve + e, Ie().filter((t => t.startsWith(e))).forEach(Se); } } function getDefaultExportFromCjs(e) { return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e; } var Ue, De, Pe = { exports: {} }, Ne = { exports: {} }; Ue = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", De = { rotl: function(e, t) { return e << t | e >>> 32 - t; }, rotr: function(e, t) { return e << 32 - t | e >>> t; }, endian: function(e) { if (e.constructor == Number) return 16711935 & De.rotl(e, 8) | 4278255360 & De.rotl(e, 24); for (var t = 0; t < e.length; t++) e[t] = De.endian(e[t]); return e; }, randomBytes: function(e) { for (var t = []; e > 0; e--) t.push(Math.floor(256 * Math.random())); return t; }, bytesToWords: function(e) { for (var t = [], n = 0, a = 0; n < e.length; n++, a += 8) t[a >>> 5] |= e[n] << 24 - a % 32; return t; }, wordsToBytes: function(e) { for (var t = [], n = 0; n < 32 * e.length; n += 8) t.push(e[n >>> 5] >>> 24 - n % 32 & 255); return t; }, bytesToHex: function(e) { for (var t = [], n = 0; n < e.length; n++) t.push((e[n] >>> 4).toString(16)), t.push((15 & e[n]).toString(16)); return t.join(""); }, hexToBytes: function(e) { for (var t = [], n = 0; n < e.length; n += 2) t.push(parseInt(e.substr(n, 2), 16)); return t; }, bytesToBase64: function(e) { for (var t = [], n = 0; n < e.length; n += 3) for (var a = e[n] << 16 | e[n + 1] << 8 | e[n + 2], s = 0; s < 4; s++) 8 * n + 6 * s <= 8 * e.length ? t.push(Ue.charAt(a >>> 6 * (3 - s) & 63)) : t.push("="); return t.join(""); }, base64ToBytes: function(e) { e = e.replace(/[^A-Z0-9+\/]/gi, ""); for (var t = [], n = 0, a = 0; n < e.length; a = ++n % 4) 0 != a && t.push((Ue.indexOf(e.charAt(n - 1)) & Math.pow(2, -2 * a + 8) - 1) << 2 * a | Ue.indexOf(e.charAt(n)) >>> 6 - 2 * a); return t; } }, Ne.exports = De; var Fe, Be, Re, Ge, Je, Qe = Ne.exports, Ke = { utf8: { stringToBytes: function(e) { return Ke.bin.stringToBytes(unescape(encodeURIComponent(e))); }, bytesToString: function(e) { return decodeURIComponent(escape(Ke.bin.bytesToString(e))); } }, bin: { stringToBytes: function(e) { for (var t = [], n = 0; n < e.length; n++) t.push(255 & e.charCodeAt(n)); return t; }, bytesToString: function(e) { for (var t = [], n = 0; n < e.length; n++) t.push(String.fromCharCode(e[n])); return t.join(""); } } }, We = Ke, isBuffer_1 = function(e) { return null != e && (isBuffer(e) || function(e) { return "function" == typeof e.readFloatLE && "function" == typeof e.slice && isBuffer(e.slice(0, 0)); }(e) || !!e._isBuffer); }; function isBuffer(e) { return !!e.constructor && "function" == typeof e.constructor.isBuffer && e.constructor.isBuffer(e); } Fe = Qe, Be = We.utf8, Re = isBuffer_1, Ge = We.bin, (Je = function(e, t) { e.constructor == String ? e = t && "binary" === t.encoding ? Ge.stringToBytes(e) : Be.stringToBytes(e) : Re(e) ? e = Array.prototype.slice.call(e, 0) : Array.isArray(e) || e.constructor === Uint8Array || (e = e.toString()); for (var n = Fe.bytesToWords(e), a = 8 * e.length, s = 1732584193, o = -271733879, i = -1732584194, r = 271733878, l = 0; l < n.length; l++) n[l] = 16711935 & (n[l] << 8 | n[l] >>> 24) | 4278255360 & (n[l] << 24 | n[l] >>> 8); n[a >>> 5] |= 128 << a % 32, n[14 + (a + 64 >>> 9 << 4)] = a; var c = Je._ff, p = Je._gg, u = Je._hh, d = Je._ii; for (l = 0; l < n.length; l += 16) { var m = s, h = o, f = i, y = r; s = c(s, o, i, r, n[l + 0], 7, -680876936), r = c(r, s, o, i, n[l + 1], 12, -389564586), i = c(i, r, s, o, n[l + 2], 17, 606105819), o = c(o, i, r, s, n[l + 3], 22, -1044525330), s = c(s, o, i, r, n[l + 4], 7, -176418897), r = c(r, s, o, i, n[l + 5], 12, 1200080426), i = c(i, r, s, o, n[l + 6], 17, -1473231341), o = c(o, i, r, s, n[l + 7], 22, -45705983), s = c(s, o, i, r, n[l + 8], 7, 1770035416), r = c(r, s, o, i, n[l + 9], 12, -1958414417), i = c(i, r, s, o, n[l + 10], 17, -42063), o = c(o, i, r, s, n[l + 11], 22, -1990404162), s = c(s, o, i, r, n[l + 12], 7, 1804603682), r = c(r, s, o, i, n[l + 13], 12, -40341101), i = c(i, r, s, o, n[l + 14], 17, -1502002290), s = p(s, o = c(o, i, r, s, n[l + 15], 22, 1236535329), i, r, n[l + 1], 5, -165796510), r = p(r, s, o, i, n[l + 6], 9, -1069501632), i = p(i, r, s, o, n[l + 11], 14, 643717713), o = p(o, i, r, s, n[l + 0], 20, -373897302), s = p(s, o, i, r, n[l + 5], 5, -701558691), r = p(r, s, o, i, n[l + 10], 9, 38016083), i = p(i, r, s, o, n[l + 15], 14, -660478335), o = p(o, i, r, s, n[l + 4], 20, -405537848), s = p(s, o, i, r, n[l + 9], 5, 568446438), r = p(r, s, o, i, n[l + 14], 9, -1019803690), i = p(i, r, s, o, n[l + 3], 14, -187363961), o = p(o, i, r, s, n[l + 8], 20, 1163531501), s = p(s, o, i, r, n[l + 13], 5, -1444681467), r = p(r, s, o, i, n[l + 2], 9, -51403784), i = p(i, r, s, o, n[l + 7], 14, 1735328473), s = u(s, o = p(o, i, r, s, n[l + 12], 20, -1926607734), i, r, n[l + 5], 4, -378558), r = u(r, s, o, i, n[l + 8], 11, -2022574463), i = u(i, r, s, o, n[l + 11], 16, 1839030562), o = u(o, i, r, s, n[l + 14], 23, -35309556), s = u(s, o, i, r, n[l + 1], 4, -1530992060), r = u(r, s, o, i, n[l + 4], 11, 1272893353), i = u(i, r, s, o, n[l + 7], 16, -155497632), o = u(o, i, r, s, n[l + 10], 23, -1094730640), s = u(s, o, i, r, n[l + 13], 4, 681279174), r = u(r, s, o, i, n[l + 0], 11, -358537222), i = u(i, r, s, o, n[l + 3], 16, -722521979), o = u(o, i, r, s, n[l + 6], 23, 76029189), s = u(s, o, i, r, n[l + 9], 4, -640364487), r = u(r, s, o, i, n[l + 12], 11, -421815835), i = u(i, r, s, o, n[l + 15], 16, 530742520), s = d(s, o = u(o, i, r, s, n[l + 2], 23, -995338651), i, r, n[l + 0], 6, -198630844), r = d(r, s, o, i, n[l + 7], 10, 1126891415), i = d(i, r, s, o, n[l + 14], 15, -1416354905), o = d(o, i, r, s, n[l + 5], 21, -57434055), s = d(s, o, i, r, n[l + 12], 6, 1700485571), r = d(r, s, o, i, n[l + 3], 10, -1894986606), i = d(i, r, s, o, n[l + 10], 15, -1051523), o = d(o, i, r, s, n[l + 1], 21, -2054922799), s = d(s, o, i, r, n[l + 8], 6, 1873313359), r = d(r, s, o, i, n[l + 15], 10, -30611744), i = d(i, r, s, o, n[l + 6], 15, -1560198380), o = d(o, i, r, s, n[l + 13], 21, 1309151649), s = d(s, o, i, r, n[l + 4], 6, -145523070), r = d(r, s, o, i, n[l + 11], 10, -1120210379), i = d(i, r, s, o, n[l + 2], 15, 718787259), o = d(o, i, r, s, n[l + 9], 21, -343485551), s = s + m >>> 0, o = o + h >>> 0, i = i + f >>> 0, r = r + y >>> 0; } return Fe.endian([ s, o, i, r ]); })._ff = function(e, t, n, a, s, o, i) { var r = e + (t & n | ~t & a) + (s >>> 0) + i; return (r << o | r >>> 32 - o) + t; }, Je._gg = function(e, t, n, a, s, o, i) { var r = e + (t & a | n & ~a) + (s >>> 0) + i; return (r << o | r >>> 32 - o) + t; }, Je._hh = function(e, t, n, a, s, o, i) { var r = e + (t ^ n ^ a) + (s >>> 0) + i; return (r << o | r >>> 32 - o) + t; }, Je._ii = function(e, t, n, a, s, o, i) { var r = e + (n ^ (t | ~a)) + (s >>> 0) + i; return (r << o | r >>> 32 - o) + t; }, Je._blocksize = 16, Je._digestsize = 16, Pe.exports = function(e, t) { if (null == e) throw new Error("Illegal argument " + e); var n = Fe.wordsToBytes(Je(e, t)); return t && t.asBytes ? n : t && t.asString ? Ge.bytesToString(n) : Fe.bytesToHex(n); }; const Ye = getDefaultExportFromCjs(Pe.exports), Ze = [ { type: "hook", name: "\u4e91\u5e55\u5b66\u82d1hook", match: location.host.includes("w-ling.cn"), main: e => { Me.mainClass = J("#app")[0].__vue__.$route.path; let t = new MutationObserver((async e => { Me.mainClass !== J("#app")[0].__vue__.$route.path && (Me.mainClass = J("#app")[0].__vue__.$route.path, "homework-detail-container" === Me.mainClass && await waitUntil((function() { return 0 !== J(".selectDan").length; })), vuePageChange$1(), t.disconnect()); })); J("#app").length >= 1 && t.observe(J("#app")[0], { subtree: !0, attributes: !0, childList: !0 }); } }, { type: "save", name: "\u4e91\u5e55\u5b66\u82d1\u6536\u5f55", match: () => location.host.includes("w-ling.cn") && location.href.includes("practiceRecord"), question: { html: ".selectDan >div >div", question: ".title", options: ".selectItem label .tagbq", type: ".question-box .tag", workType: "yunmuxueyuan", pageType: "yunmuxueyuan" }, init: async () => { await waitUntil((function() { return isExist(".selectDan >div >div"); })); }, answerHook: e => { const t = J(e.html).parent().find("h3").text().split("\u3001")[1]; e.question = e.question.replace(/^\d+\u3001/, ""), e.question = e.question.replace(/\(\d+\u5206\)$/, ""); let n = J(e.html).find(".anaylize > span:eq(0)").text().replace("\u4f5c\u7b54\u6b63\u786e\uff1a", ""); switch ("" === n && (n = J(e.html).find(".falsanaly > span:eq(1)").text().replace("\u6b63\u786e\u7b54\u6848\uff1a", "")), t) { case "\u5355\u9009\u9898": case "\u591a\u9009\u9898": let t = n.split(""); if (e.answer = t.map((t => e.options[t.charCodeAt(0) - 65])), 0 === e.answer.length) return; e.answer.length > 1 ? e.type = "1" : e.type = "0"; break; case "\u5224\u65ad\u9898": e.type = "3", "T" == n && (e.answer = [ "\u6b63\u786e" ]), "F" == n && (e.answer = [ "\u9519\u8bef" ]); break; case "\u586b\u7a7a\u9898": e.answer = J(e.html).find(".riganswer > span").first().nextAll("span").map(((e, t) => removeHtml(J(t).text()))).get(), e.type = "2"; } return e; } }, { type: "ask", name: "\u4e91\u5e55\u5b66\u82d1", tips: "", match: () => location.host.includes("w-ling.cn") && (location.href.includes("practicePaper") || location.href.includes("examIndex")), types: [ "0", "1", "3" ], question: { html: ".selectDan >div >div", question: ".title", options: ".selectItem label .tagbq", type: ".question-box .tag", workType: "yunmuxueyuan", pageType: "yunmuxueyuan" }, init: async () => { await waitUntil((function() { return 0 !== J(".selectDan >div >div").length; })); }, next: () => {}, ischecked: e => e.parent().parent().hasClass("is-checked"), questionHook: e => { e.question = e.question.replace(/^\d+\u3001/, ""), e.question = e.question.replace(/\(\d+\u5206\)$/, ""); switch (J(e.html).parent().find("h4").text().split("\u3001")[1]) { case "\u5355\u9009\u9898": e.type = "0"; break; case "\u591a\u9009\u9898": e.type = "1"; break; case "\u5224\u65ad\u9898": e.type = "3", e.$options = J(e.html).find(".selectItem label"), e.options = e.$options.map(((e, t) => removeHtml(J(t).text()))).get(), e.$options; break; case "\u586b\u7a7a\u9898": e.type = "2"; } return e; }, setAnswer: e => { switch (e.type) { case "3": break; case "2": return J(e.html).find(".tiankong input").each(((t, n) => { let a = J(n).parent()[0].__vue__; J(n).val(e.answer[t]); const s = new Event("input"); n.dispatchEvent(s), a.$emit("change", e.answer[t]); })), !1; } return !0; }, finish: e => {} } ]; class Answer { constructor() {} static score(e, t) { let n = Cache.get("api_" + e, { score: 0 }); n.score += t, Cache.set("api_" + e, n, 600); } static async getAllAnswers(e) { const t = [ this.getAnswer1(e) ]; return Promise.all(t); } static async getAnswersFree(e) { const t = [ this.getMainAnswer(e), this.getAnswer1(e) ]; return Promise.all(t); } static async getAnswer1(e) { let t = function() { let e = Array.from({ length: 4 }, (() => Math.floor(255 * Math.random()))).join("."); return { "X-Forwarded-For": e, "X-Real-IP": e }; }(); return new Promise((n => { request("http://cx.icodef.com/wyn-nb?v=4", "POST", { question: e.question }, t).then((e => { let t = e[1]; try { e = JSON.parse(e[0].responseText); } catch (s) { n({ form: "\u4e00\u4e4b\u9898\u5e93", answer: null, error: s, duration: t }); } let a = ""; if (1 === e.code) { let t = e.data.replace(/javascript:void\(0\);/g, "").trim().replace(/\n/g, ""); [ "\u53db\u9006", "\u516c\u4f17\u53f7", "\u674e\u6052\u96c5", "\u4e00\u4e4b" ].every((e => !t.includes(e))) && (a = t.split("#")); } n({ form: "\u4e00\u4e4b\u9898\u5e93", answer: a, duration: t }); })).catch((e => { "timeout" === e && this.score("icodef", -1), n({ form: "\u4e00\u4e4b\u9898\u5e93", answer: "", msg: e, duration: 5e3 }); })); })); } static async getAnswer2(e) { return new Promise((t => { [ 0, 1, 2 ].includes(parseInt(e.type)) ? request("https://api.muketool.com/cx/v2/query", "POST", { question: e.question, type: parseInt(e.type) }, {}).then((e => { let n = e[1]; e = JSON.parse(e[0].responseText), t({ form: "muketool", answer: 1 === e.code ? e.data.split("#") : "", duration: n }); })).catch((e => { "timeout" === e && this.score("muketool", -1), t({ form: "muketool", answer: "" }); })) : t({ form: "muketool", answer: "", duration: "\u4e0d\u652f\u6301\u7684\u9898\u578b" }); })); } static getTimestamp() { return Math.floor((new Date).getTime() / 1e3); } static cacheAnswer(e) { const t = { type: e.type, question: e.question, options: e.options, answer: e.answer }, n = questionHash(t.type, t.question, t.options); t.createTime = this.getTimestamp(), Cache.set("ques1_" + n, t); } static async getCacheAnswer(e) { const t = questionHash(e.type, e.question, e.options); e.type, e.question, e.options; let n = Cache.get("ques1_" + t); return n ? { form: "\u672c\u5730\u7f13\u5b58", answer: n.answer, duration: 10 } : { form: "\u672c\u5730\u7f13\u5b58", answer: "", duration: 10, msg: "\u672a\u627e\u5230\u7f13\u5b58" }; } static getMainAnswer(e) { const t = { type: e.type, question: e.question, options: e.options.map((e => e)), workType: e.workType, pageType: e.pageType }; return new Promise((e => { requestApi("https://www.aiask.site/v1/question/search", "POST", t, {}).then((t => { let n = t[1]; 200 === (t = JSON.parse(t[0].responseText)).code && t.data.answer ? e({ form: "\u7231\u95ee\u7b54\u9898\u5e93", answer: t.data.answer, duration: n, msg: t.msg }) : e({ form: "\u7231\u95ee\u7b54\u9898\u5e93", answer: "", duration: n, msg: t.msg }); })).catch((t => { e({ form: "\u7231\u95ee\u7b54\u9898\u5e93", answer: "", error: t, duration: 10, msg: "\u8bf7\u6c42\u5931\u8d25" }); })); })); } static async syncQuestionList(e) { return new Promise((t => { requestApi("https://www.aiask.site/v1/question/sync", "POST", e, {}).then((e => { e[0].responseText, t(e[0].responseText); })).catch((e => { t(e); })); })); } static async syncPaper(e) { return new Promise((t => { requestApi("https://www.aiask.site/v1/question/courseSync", "POST", e, {}).then((e => { e[0].responseText, t(e[0].responseText); })).catch((e => { t(e); })); })); } } const defaultSetAnswer = async (e, t, n, a) => { var s; switch (e) { case "xx": for (let s = 0; s < n.$options.length; s++) if (t.includes(s)) { if (a.ischecked && a.ischecked(n.$options.eq(s))) continue; n.$options.eq(s).click(), await sleep(Math.floor(300 * Math.random() + 200)); } else a.ischecked && a.ischecked(n.$options.eq(s)) && (n.$options.eq(s).click(), await sleep(Math.floor(300 * Math.random() + 200))); break; case "pd": let e = t; 0 == n.options.length ? n.$options.each(((t, n) => { isTrue(e) && isTrue(removeHtml(J(n).html())) && J(n).click(), isFalse(e) && isFalse(removeHtml(J(n).html())) && J(n).click(); })) : n.$options.each(((t, a) => { isTrue(e) && isTrue(n.options[t]) && J(a).click(), isFalse(e) && isFalse(n.options[t]) && J(a).click(); })); break; case "jd": J(n.html).find("textarea").each((function(e) { Me.UE.getEditor(J(this).attr("name")).ready((function() { this.setContent(t[e].replace(/\u7b2c.\u7a7a:/g, "")); })); })), null == (s = J(n.html).find(".savebtndiv>a")) || s.click(); } }, ApiAnswerMatch = (e, t, n = !1) => { const a = getAskStore(); let s, o = 0, i = !0, r = t.type, l = t.html, c = [], p = [ "", c, t, a.rule ]; switch (t.$options && "function" == typeof t.$options && (t.$options = t.$options()), r) { case "0": case "1": for (let s = 0; s < e.length; s++) { let a = e[s].answer; "" == a && (a = []), n && (Array.isArray(a) ? a = a.map((e => { let n = e.charCodeAt() - 65; return t.options[n]; })) : (a = a.replace(/[^a-zA-Z]/g, ""), a = a.split("").map((e => { let n = e.charCodeAt() - 65; return t.options[n]; })))); let o = matchAnswer(a, t.options); e[s].match = o; } if (c = e.filter((e => e.match.length > 0)), 0 === c.length) return { res: e, haveAnswer: !1 }; if (c.length > 1) { if (!c.every((e => e.match.length === c[0].match.length))) { let e = c[0]; for (let t = 1; t < c.length; t++) c[t].match.length > e.match.length && (e = c[t]); c = [ e ]; } } let a = c[0].match; p[0] = "xx", p[1] = a; break; case "3": if (c = e.map((e => { let t = e.answer; return "object" == typeof t && (t = t[0]), isTrue(t) ? e.answer = "\u6b63\u786e" : isFalse(t) ? e.answer = "\u9519\u8bef" : e.answer = "", e; })), c = e.filter((e => "" !== e.answer)), 0 === c.length) return { res: e, haveAnswer: !1 }; p[0] = "pd", p[1] = c[0].answer; break; case "2": case "9": case "4": case "5": case "6": case "7": if (o = J(l).find("textarea").length, 0 === o && (o = t.$options.length), c = e.filter((e => e.answer.length > 0)), 0 === c.length) return { res: e, haveAnswer: !1 }; if (s = c[0].answer, "string" == typeof s && (s = [ s ]), 0 !== o && (c = c.filter((e => ("string" == typeof e.answer ? 1 : e.answer.length) === o)), 0 === c.length)) return { res: e, haveAnswer: !1 }; p[0] = "jd", p[1] = s; break; case "14": if (o = t.$options.length, c = e.filter((e => e.answer.length > 0 && e.answer.length === o)), 0 === c.length) return { res: e, haveAnswer: !1 }; if (s = c[0].answer, c = c.filter((e => ("string" == typeof e.answer ? 1 : e.answer.length) === o)), 0 === c.length) return { res: e, haveAnswer: !1 }; p[0] = "wxtk", p[1] = s; break; case "11": if (c = e.filter((e => "object" == typeof e.answer)), 0 === c.length) return { res: e, haveAnswer: !1 }; s = c[0].answer, p[0] = "lx", p[1] = s; break; default: return { res: e, haveAnswer: !1 }; } return a.rule.setAnswerHook && "function" == typeof a.rule.setAnswerHook && a.rule.setAnswerHook({ type: r, answer: p[1], html: t.html, ques: t }), a.rule.setAnswer && "function" == typeof a.rule.setAnswer && (i = a.rule.setAnswer({ type: r, answer: p[1], html: l, ques: t, rule: a.rule })), i && defaultSetAnswer(p[0], p[1], t, a.rule), { res: e, form: c ? c[0] : [], haveAnswer: !0 }; }, Xe = class _Paper { static getPaper(e) { return Cache.get(`${_Paper.prefix}_${e}`); } static setPaper(e, t) { if (!e || !t) return; const n = _Paper.getPaper(e) || { chapter: [] }; t.chapter && t.chapter.forEach((e => { const t = n.chapter.find((t => t.hash === e.hash)); t ? (e.question.forEach((e => { const n = t.question.findIndex((t => t.hash === e.hash)); -1 !== n ? t.question[n] = e : t.question.push(e); })), Object.keys(e).forEach((n => { "question" !== n && (t[n] = e[n]); }))) : n.chapter.push(e); })), Object.keys(t).forEach((e => { "chapter" !== e && (n[e] = t[e]); })), Cache.set(`${_Paper.prefix}_${e}`, n), Answer.syncPaper(n); } static hasChapter(e, t) { const n = _Paper.getPaper(e); return !(!n || !n.chapter) && n.chapter.some((e => e.hash === t)); } static getAllPapers() { return Cache.matchGet(`${_Paper.prefix}_`); } }; __publicField(Xe, "prefix", "paper_"); let et = Xe; function glyphToPath(e, t) { if (0 === t) return { cmds: [], crds: [] }; const n = e.tables.get("loca"), a = e.tables.get("glyf"); if (!n || !a) return { cmds: [], crds: [] }; let s, o; if (0 === e.indexToLocFormat ? (s = 2 * n.getUint16(2 * t), o = 2 * n.getUint16(2 * (t + 1))) : (s = n.getUint32(4 * t), o = n.getUint32(4 * (t + 1))), s === o) return { cmds: [], crds: [] }; const i = [], r = []; try { const t = a.getInt16(s); t > 0 ? function(e, t, n, a, s) { let o = t + 10; const i = []; for (let f = 0; f < n; f++) i.push(e.getUint16(o)), o += 2; const r = e.getUint16(o); o += 2 + r; const l = i[i.length - 1] + 1, c = []; for (let f = 0; f < l; ) { const t = e.getUint8(o++); if (c.push(t), f++, 8 & t) { const n = e.getUint8(o++); for (let e = 0; e < n; e++) c.push(t), f++; } } const p = []; let u = 0; for (let f = 0; f < l; f++) { const t = c[f]; if (2 & t) { const n = e.getUint8(o++); u += 16 & t ? n : -n; } else if (!(16 & t)) { const t = e.getInt16(o); o += 2, u += t; } p.push(u); } const d = []; let m = 0; for (let f = 0; f < l; f++) { const t = c[f]; if (4 & t) { const n = e.getUint8(o++); m += 32 & t ? n : -n; } else if (!(32 & t)) { const t = e.getInt16(o); o += 2, m += t; } d.push(m); } let h = 0; for (let f = 0; f < n; f++) { const e = i[f]; for (let t = h; t <= e; t++) { const e = 1 & c[t]; a.push(e ? "L" : "Q"), s.push(p[t], d[t]); } h = e + 1; } }(a, s, t, i, r) : t < 0 && function(e, t, n, a, s) { let o = n + 10; const i = 32; let r; do { r = t.getUint16(o), o += 2; const n = t.getUint16(o); o += 2; o += r & 1 ? 4 : 2, r & 128 ? o += 8 : r & 64 ? o += 4 : r & 8 && (o += 2); const i = glyphToPath(e, n); a.push(...i.cmds), s.push(...i.crds); } while (r & i); }(e, a, s, i, r); } catch (l) { return { cmds: [], crds: [] }; } return { cmds: i, crds: r }; } const tt = { parse: function(e) { const t = new DataView(e); let n = 0; t.getUint32(n), n += 4; const a = t.getUint16(n); n += 2, n += 6; const s = new Map; for (let c = 0; c < a; c++) { const a = String.fromCharCode(t.getUint8(n), t.getUint8(n + 1), t.getUint8(n + 2), t.getUint8(n + 3)); n += 4, t.getUint32(n), n += 4; const o = t.getUint32(n); n += 4; const i = t.getUint32(n); n += 4, s.set(a, new DataView(e, o, i)); } const o = s.get("head"); if (!o) throw new Error("Missing head table"); const i = o.getInt16(50), r = o.getUint16(18), l = s.get("maxp"); if (!l) throw new Error("Missing maxp table"); return { tables: s, numGlyphs: l.getUint16(4), indexToLocFormat: i, unitsPerEm: r }; }, U: { codeToGlyph: function(e, t) { const n = e.tables.get("cmap"); if (!n) return 0; const a = n.getUint16(2); let s = -1; for (let i = 0; i < a; i++) { const e = n.getUint16(4 + 8 * i), t = n.getUint16(4 + 8 * i + 2), a = n.getUint32(4 + 8 * i + 4); if (3 === e && 1 === t || 0 === e) { s = a; break; } } if (-1 === s) return 0; const o = n.getUint16(s); return 4 === o ? function(e, t, n) { const a = e.getUint16(t + 6) / 2, s = t + 14, o = s + 2 * a + 2, i = o + 2 * a, r = i + 2 * a; for (let l = 0; l < a; l++) { if (e.getUint16(s + 2 * l) >= n) { const t = e.getUint16(o + 2 * l); if (t <= n) { const a = e.getUint16(r + 2 * l); if (0 === a) { return n + e.getInt16(i + 2 * l) & 65535; } { const s = r + 2 * l + a + 2 * (n - t), o = e.getUint16(s); if (0 !== o) { return o + e.getInt16(i + 2 * l) & 65535; } } } break; } } return 0; }(n, s, t) : 12 === o ? function(e, t, n) { const a = e.getUint32(t + 12); for (let s = 0; s < a; s++) { const a = t + 16 + 12 * s, o = e.getUint32(a), i = e.getUint32(a + 4), r = e.getUint32(a + 8); if (n >= o && n <= i) return r + (n - o); } return 0; }(n, s, t) : 0; }, glyphToPath: glyphToPath } }, decode = async () => { var e; const t = Me.document.querySelectorAll("style"); let n = null; if (t.forEach((e => { var t; -1 !== (null == (t = e.textContent) ? void 0 : t.indexOf("font-cxsecret")) && (n = e); })), !n) return !0; const a = null == (e = n.textContent) ? void 0 : e.match(/base64,([\w\W]+?)'/); if (!a) return; const s = base64ToUint8Array(a[1]), o = tt.parse(s.buffer); let i = await ttfDownload1("https://www.forestpolice.org/ttf/2.0/table.json") || await ttfDownload1("https://jsd.vxo.im/gh/chengbianruan/staticfile/c.json") || await ttfDownload1("https://cdn.jsdelivr.net/gh/chengbianruan/staticfile/c.json"); if (!i) return !1; let r = {}; for (let l = 19968; l < 40870; l++) { let e = tt.U.codeToGlyph(o, l); if (!e) continue; const t = tt.U.glyphToPath(o, e), n = somd5(JSON.stringify(t)).slice(24); r[l] = i[n]; } return Me.document.querySelectorAll(".font-cxsecret").forEach((e => { let t = e.innerHTML; Object.keys(r).forEach((e => { const n = new RegExp(String.fromCharCode(e), "g"); t = t.replace(n, String.fromCharCode(r[e])); })), e.innerHTML = t, e.classList.remove("font-cxsecret"); })), !0; }, base64ToUint8Array = e => { const t = atob(e), n = new Uint8Array(t.length); for (let a = 0; a < t.length; a++) n[a] = t.charCodeAt(a); return n; }, nt = [ { type: "save", name: "\u5b66\u4e60\u901a\u8003\u8bd5\u65b0\u7248\u6536\u5f55", match: () => location.href.includes("work/view") || location.href.includes("test/reVersionPaperMarkContentNew"), question: { html: ".questionLi", question: "h3.mark_name", options: "ul.mark_letter.colorDeep > li", type: ".colorShallow", workType: "zj", pageType: "cx" }, answerHook: e => { let t = removeHtml(J(e.html).find('span[class="colorShallow"]').html()); if ("" === t) return null; let n = t.match(/^\((.+?)\)/); if (null === n) return null; e.type = n[1].split(",")[0], e.question = titleClean(e.question.split(t)[1].trim()).trim(), e.options = removeStartChar(e.options); const a = J(e.html).find(".mark_score>.totalScore>i").text(), s = t.match(/(\d+(\.\d+)?)/); let o, i = J(e.html).find(".marking_dui").length > 0 || Number(a) == ((null == s ? void 0 : s[0]) || 0) && 0 != Number(a), r = typeMatch(t); if (0 == Number(a) && !i && "3" == r) return null; if (!i) switch (r) { case "0": case "1": case "3": 0 != Number(a) && (i = !0); } switch (console.log(t, "quesType", r), r) { case "0": case "1": e.type = r, e.answer = J(e.html).find(".mark_answer>div>span.colorGreen:eq(0)").text().replace("\u6b63\u786e\u7b54\u6848:", "").trim().split("").map((t => e.options[t.charCodeAt(0) - 65])), e.answer = e.answer.filter((e => "" !== e)), 0 === e.answer.length && i && (e.answer = J(e.html).find(".mark_answer>div>span.colorDeep:eq(0)").text().replace("\u6211\u7684\u7b54\u6848:", "").trim().split("").map((t => e.options[t.charCodeAt(0) - 65])), e.answer = e.answer.filter((e => "" !== e))); break; case "3": if (e.type = "3", e.options = [], e.answer = judgeAnswer(J(e.html).find(".mark_answer>div>span.colorGreen:eq(0)").text().replace("\u6b63\u786e\u7b54\u6848", "")), e.answer, 0 === e.answer.length) { if (o = removeHtml(J(e.html).find(".mark_answer>div>span.colorDeep:eq(0)").html()), e.answer = judgeAnswer(o), 0 === e.answer.length) return null; i || (e.answer = "\u6b63\u786e" === e.answer[0] ? [ "\u9519\u8bef" ] : [ "\u6b63\u786e" ]); } break; case "4": if (e.type = "4", e.answer = removeHtml(J(e.html).find(".mark_answer>div>.colorGreen:eq(0)").html()).replace("\u6b63\u786e\u7b54\u6848\uff1a", "").trim(), e.answer.length < 10) return null; e.answer = [ e.answer ]; break; case "5": if (e.type = "5", e.answer = removeHtml(J(e.html).find(".mark_answer>div>.colorGreen:eq(0)").html()).replace("\u6b63\u786e\u7b54\u6848\uff1a", "").trim(), e.answer.length < 10) return null; e.answer = [ e.answer ]; break; case "7": if (e.type = "7", e.answer = removeHtml(J(e.html).find(".mark_answer>div>.colorGreen:eq(0)").html()).replace("\u6b63\u786e\u7b54\u6848\uff1a", "").trim(), e.answer.length < 10) return null; e.answer = [ e.answer ]; break; case "6": if (e.type = "6", e.answer = removeHtml(J(e.html).find(".mark_answer>div>.colorGreen:eq(0)").html()).replace("\u6b63\u786e\u7b54\u6848\uff1a", "").trim(), e.answer.length < 10) return null; e.answer = [ e.answer ]; break; case "2": if (e.type = "2", e.answer = J(e.html).find(".mark_answer>div>.colorGreen:eq(0)>dd").map(((e, t) => removeHtml(J(t).html()).replace(`(${e + 1})`, "").trim())).get(), 0 == e.answer.length) { const t = J(e.html).find(".mark_answer>div>.colorDeep:eq(0)>dd").map(((e, t) => removeHtml(J(t).html()).replace(`(${e + 1})`, "").trim())).get(); J(e.html).find(".mark_answer>div>.colorDeep:eq(0)>dd>.marking_dui").length == t.length && (e.answer = t); } break; default: return null; } return e; }, paper: async e => { const t = { platform: "cx" }, n = J("#courseId").val(), a = (Me.document.body.innerHTML.match(/(?:examId|relationId)=(\d+)/) || [])[1] || "", s = `https://mobilelearn.chaoxing.com/v2/apis/class/getClassDetail?courseId=${n}&classId=${J("#classId").val()}`; await request(s, "GET").then((e => { const n = JSON.parse(e[0].responseText).data.course.data[0]; t.name = n.name, t.info = {}, t.info.imageurl = n.imageurl; })), t.hash = n, t.info = {}, t.chapter = [ { hash: `${a}`, name: J(".mark_title").text().trim(), question: e } ], et.setPaper(t.hash, t); } }, { type: "hook", name: "hook", match: location.href.includes("work/selectWorkQuestionYiPiYue") && location.href.includes("mooc2=0"), main: e => { location.href.includes("mooc2=0") ? Me.location.href = location.href.replace("mooc2=0", "mooc2=1") : Me.location.href = location.href + "&mooc2=1"; } }, { type: "save", name: "\u5b66\u4e60\u901a\u4f5c\u4e1a\u6536\u5f55\u65b0", match: () => location.href.includes("work/selectWorkQuestionYiPiYue") && location.href.includes("mooc2=1"), question: { html: ".TiMu", question: ".Zy_TItle .clearfix", options: "ul.Zy_ulTop li", type: ".newZy_TItle", workType: "zj", pageType: "cx" }, answerHook: e => { e.type = J(e.html).find(".newZy_TItle").text().replace(/\u3010|\u3011/g, "").trim(); let t, n = J(e.html).find(".marking_dui").length > 0; switch (removeHtml(J(e.html).find(".Py_addpy:eq(0)").html()), e.question = titleClean(e.question).trim(), e.type) { case "\u5355\u9009\u9898": case "\u591a\u9009\u9898": e.type = "\u5355\u9009\u9898" === e.type ? "0" : "1", e.options = J(e.html).find("ul.Zy_ulTop li").map(((e, t) => { let n = J(t).find("i.fl").text().trim(), a = removeHtml(J(t).html()); return "" === n ? a.trim() : a.split(n)[1].trim(); })).get(), e.answer = J(e.html).find(".correctAnswer >.fl.answerCon").text().trim().split("").map((t => e.options[t.charCodeAt(0) - 65])), 0 === e.answer.length && n && (e.answer = J(e.html).find(".myAnswer > .fl.answerCon").text().trim().split("").map((t => e.options[t.charCodeAt(0) - 65]))); break; case "\u5224\u65ad\u9898": if (e.type = "3", e.answer = J(e.html).find(".correctAnswer > .fl.answerCon").text().trim().split("").map((e => e.includes("\u6b63\u786e") || e.includes("\u5bf9") || e.includes("\u221a") ? "\u6b63\u786e" : e.includes("\u9519\u8bef") || e.includes("\u9519") || e.includes("\xd7") ? "\u9519\u8bef" : null)).filter((e => null !== e)), 0 === e.answer.length) { t = removeHtml(J(e.html).find(".fl.answerCon").html()); let [n, a] = [ ".marking_dui", ".marking_cuo" ].map((t => J(e.html).find(t).length)); if (n + a === 0) return null; if (t.includes("\u6b63\u786e") || t.includes("\u5bf9") || t.includes("\u221a")) e.answer = [ "\u6b63\u786e" ]; else { if (!(t.includes("\u9519\u8bef") || t.includes("\u9519") || t.includes("\xd7"))) return null; e.answer = [ "\u9519\u8bef" ]; } 0 === n && 0 !== a && (e.answer = "\u6b63\u786e" === e.answer[0] ? "\u9519\u8bef" : "\u6b63\u786e"); } break; case "\u586b\u7a7a\u9898": e.type = "2", e.answer = J(e.html).find(".correctAnswerBx>.correctAnswer>p:not(.clear)").map(((e, t) => removeHtml(J(t).html()).replace(`(${e + 1})`, "").trim())).get().filter((e => "" !== e)), 0 == e.answer.length && (e.answer = J(e.html).find(".myAllAnswerBx>.myAnswerBx>.myAnswer").map(((e, t) => removeHtml(J(t).html()).replace(/\u7b2c[\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d]+\u7a7a\uff1a/, "").trim())).get(), e.answer.length !== J(e.html).find(".marking_dui").length && (e.answer = [])); break; case "\u5206\u5f55\u9898": if (e.type = "9", e.answer = J(e.html).find(".correctAnswerBx>.correctAnswer>p:not(.clear)").map(((e, t) => removeHtml(J(t).html()))).get().filter((e => "" !== e)), e.answer.length != J(e.html).find(".CorrectOrNot").length) { if (J(e.html).find(".marking_cuo").length > 0) return null; if (e.answer = J(e.html).find(".myAnswerBx>.myAnswer>p:not(.clear)").map(((e, t) => removeHtml(J(t).html()))).get().filter((e => "" !== e)), e.answer.length != J(e.html).find(".CorrectOrNot").length) return null; } e.answer; break; case "\u8fde\u7ebf\u9898": e.type = "11"; let a = J(e.html).find("ul.firstUlList>li:not(.groupTitile)").map(((e, t) => { let n = J(t).clone(); return n.find(".fl").remove(), removeHtml(n.html()); })).get(), s = J(e.html).find("ul.secondUlList>li:not(.groupTitile)").map(((e, t) => { let n = J(t).clone(); return n.find(".fl").remove(), removeHtml(n.html()); })).get(); t = J(e.html).find(".correctAnswer >.fl.answerCon >.collectAnswer").map(((e, t) => removeHtml(J(t).text()))).get(), e.options = [ a, s ]; let o = {}; t.forEach((e => { let [t, n] = e.split("-"); t.charCodeAt(0) >= 65 ? t = (t.charCodeAt(0) - 65).toString() : /^\d+$/.test(t) && (t = (parseInt(t) - 1).toString()), n.charCodeAt(0) >= 65 ? n = (n.charCodeAt(0) - 65).toString() : /^\d+$/.test(n) && (n = (parseInt(n) - 1).toString()), o[a[t]] = s[n]; })), e.answer = o, e.answer; break; default: return e.type, null; } return e; }, paper: async e => { const t = { platform: "cx" }, n = Me.courseId, a = Me.jobid, s = `https://mobilelearn.chaoxing.com/v2/apis/class/getClassDetail?courseId=${n}&classId=${Me.classId}`; await request(s, "GET").then((e => { const n = JSON.parse(e[0].responseText).data.course.data[0]; t.name = n.name, t.info = {}, t.info.imageurl = n.imageurl; })), t.hash = n, t.info = {}, t.chapter = [ { hash: `${a}`, name: J(".ceyan_name>h3").text().trim(), question: e } ], et.setPaper(t.hash, t); } }, { type: "ask", name: "\u5b66\u4e60\u901a\u65b0\u7248\u4f5c\u4e1a", match: /\/mooc2\/work\/dowork/i.test(location.pathname), types: [ "0", "1", "2", "3", "4", "5", "6", "7", "9" ], question: { html: ".questionLi", question: "h3", options: "ul:eq(0) li .after, .answer_p", type: "input[name^=answertype]:eq(0)", workType: "zy", pageType: "cx" }, questionHook: e => { const t = removeHtml(J(e.html).find(".colorShallow").html()); return e.question = titleClean(e.question.split(t)[1].trim()).trim(), e.$options = J(e.html).find(".answerBg"), e; }, setAnswerHook: e => { qc(e.html), qc1(e.html); } }, { type: "ask", name: "\u5b66\u4e60\u901a\u65b0\u7248\u8003\u8bd5", match: /exam\/preview/i.test(location.pathname) || /exam\/test\/reVersionTestStartNew/i.test(location.pathname), types: [ "0", "1", "2", "3", "4", "5", "6", "7", "9" ], question: { html: ".questionLi", question: "h3", options: "ul:eq(0) li .after, .answer_p", type: "input[name^=type]:not([name=type])", workType: "ks", pageType: "cx" }, questionHook: e => { const t = removeHtml(J(e.html).find(".colorShallow").html()); if (e.question = titleClean(e.question.split(t)[1].trim()).trim(), e.$options = J(e.html).find(".answerBg"), "3" === e.type) e.options = []; return e; }, setAnswerHook: e => { qc(e.html), qc1(e.html); }, next: () => { J('.nextDiv .jb_btn:contains("\u4e0b\u4e00\u9898")').click(); } }, { type: "ask", name: "\u5b66\u4e60\u901a\u65e7\u7248\u4f5c\u4e1a", match: /work\/doHomeWorkNew/i.test(location.pathname) && 0 == location.href.includes("mooc2=1"), types: [ "0", "1", "2", "3", "4", "5", "6", "7", "9" ], init: async () => { if (!(await decode())) return msg("\u9875\u9762\u89e3\u5bc6\u5931\u8d25\uff0c\u65e0\u6cd5\u7b54\u9898\uff0c\u8bf7\u5c1d\u8bd5\u5207\u6362\u7f51\u7edc\u6216\u53cd\u9988\u7ed9\u4f5c\u8005\u5427", "error"), !1; }, question: { html: ".TiMu", question: ".clearfix.fontLabel", options: "ul:eq(0) li .after", type: "input[name^=answertype]:eq(0), .answer_p", workType: "zy", pageType: "cx" }, questionHook: e => { switch (e.question = titleClean(e.question).trim(), e.$options = J(e.html).find(".fl.before"), e.type) { case "3": e.options = J(e.html).find("ul:eq(0) li").map(((e, t) => J(t).find(".ri").length > 0 ? "\u6b63\u786e" : J(t).find(".wr").length > 0 ? "\u9519\u8bef" : isTrue(J(t).attr("aria-label") || "") ? "\u6b63\u786e" : isFalse(J(t).attr("aria-label") || "") ? "\u9519\u8bef" : void 0)).get(), e.$options = J(e.html).find("ul>li"); break; case "11": let t = J(e.html).find("ul.firstUlList>li:not(.groupTitile)").map(((e, t) => { let n = J(t).clone(); return n.find(".fl").remove(), removeHtml(n.html()); })).get(), n = J(e.html).find("ul.secondUlList>li:not(.groupTitile)").map(((e, t) => { let n = J(t).clone(); return n.find(".fl").remove(), removeHtml(n.html()); })).get(); e.options = [ t, n ], e.$options = J(e.html).find("ul.thirdUlList>li:not(.groupTitile)"); } return e; }, setAnswerHook: e => { qc(e.html), qc1(e.html); }, setAnswer: e => { switch (e.type) { case "11": return e.ques.$options.each(((t, n) => { let a = e.ques.options[0], s = e.ques.options[1], o = e.answer[a[t]], i = s.indexOf(o); o = String.fromCharCode(i + 65), J(n).find("select>option").each(((e, t) => { J(t).val(), J(t).val() == o && J(t).prop("selected", !0); })); })), e.answer, !1; case "3": let t = e.answer; return e.ques.$options.each(((e, n) => { isTrue(t) && (isTrue(removeHtml(J(n).html())) || J(n).find(".ri").length > 0) && J(n).find("input").click(), isFalse(t) && (isFalse(removeHtml(J(n).html())) || J(n).find(".wr").length > 0) && J(n).find("input").click(); })), !1; default: return !0; } } }, { type: "ask", name: "\u5b66\u4e60\u901a\u65b0\u7248\u7ae0\u8282", match: /work\/doHomeWorkNew/i.test(location.pathname) && location.href.includes("mooc2=1"), types: [ "0", "1", "2", "3", "4", "5", "6", "7", "9" ], init: async () => { if (!(await decode())) return msg("\u9875\u9762\u89e3\u5bc6\u5931\u8d25\uff0c\u65e0\u6cd5\u7b54\u9898\uff0c\u8bf7\u5c1d\u8bd5\u5207\u6362\u7f51\u7edc\u6216\u53cd\u9988\u7ed9\u4f5c\u8005\u5427", "error"), !1; }, question: { html: ".TiMu", question: ".clearfix.fontLabel", options: "ul:eq(0) li .after, .answer_p", type: "input[name^=answertype]:eq(0)", workType: "zj", pageType: "cx" }, questionHook: e => { switch (e.question = titleClean(e.question).trim(), e.type) { case "3": e.options = J(e.html).find("ul:eq(0) li").map(((e, t) => "true" === J(t).find(".num_option").attr("data") ? "\u6b63\u786e" : "false" === J(t).find(".num_option").attr("data") ? "\u9519\u8bef" : void 0)).get(), e.options = []; break; case "11": let t = J(e.html).find("ul.firstUlList>li:not(.groupTitile)").map(((e, t) => { let n = J(t).clone(); return n.find(".fl").remove(), removeHtml(n.html()); })).get(), n = J(e.html).find("ul.secondUlList>li:not(.groupTitile)").map(((e, t) => { let n = J(t).clone(); return n.find(".fl").remove(), removeHtml(n.html()); })).get(); e.options = [ t, n ], e.$options = J(e.html).find("ul.thirdUlList>li:not(.groupTitile)"); break; default: e.type; } return e; }, setAnswerHook: e => { qc(e.html), qc1(e.html); }, setAnswer: e => (e.ques.options, "11" !== e.type || (e.ques.$options.each(((t, n) => { let a = e.ques.options[0], s = e.ques.options[1], o = e.answer[a[t]], i = s.indexOf(o); o = String.fromCharCode(i + 65), Me.$(n).find(".dept_select").chosen().val(o).trigger("chosen:updated"); })), e.answer, !1)) } ], at = [ { type: "ask", name: "\u667a\u6167\u6811\u7ae0\u8282", tips: "\u667a\u6167\u6811\u5fc5\u987b\u5f00\u81ea\u52a8\u8df3\u8f6c\uff0c\u5426\u5219\u7b54\u6848\u53ef\u80fd\u65e0\u6cd5\u4fdd\u5b58\u5bfc\u81f4\u4f4e\u5206\uff01", match: location.href.includes("zhihuishu.com") && !location.href.includes("checkHomework") && location.host.includes("zhihuishu") && ("/stuExamWeb.html" === location.pathname || location.href.includes("/webExamList/dohomework/") || location.href.includes("/webExamList/doexamination/")), types: [ "0", "1", "2", "3" ], question: { html: ".examPaper_box > div:eq(1) >div:not(.examPaper_partTit)", question: ".subject_describe.dynamic-fonts:eq(0) div:eq(0)", options: ".subject_node .nodeLab .label.clearfix .node_detail", type: ".subject_type span:first-child", workType: "zhs", pageType: "zhs" }, init: async () => { await waitUntil((function() { return !J(".yidun_popup").hasClass("yidun_popup--light") && Me.zhsques; })); }, next: () => { J(".switch-btn-box button:eq(1)").click(); }, questionHook: (e, t) => { const n = Me.zhsques.examBase.workExamParts.map((e => e.questionDtos)).flat()[t]; return e.type = typeConvert(n.questionType.name), e.question = removeHtml(n.name), e.options = n.questionOptions ? n.questionOptions.map((e => removeHtml(e.content))) : [], "3" == e.type && (e.options = []), e; } }, { type: "save", name: "\u667a\u6167\u6811\u4f5c\u4e1a\u6536\u5f55", match: location.href.includes("zhihuishu.com") && location.href.includes("checkHomework") && location.host.includes("zhihuishu") && ("/stuExamWeb.html" === location.pathname || location.href.includes("/webExamList/checkHomework/")), question: { html: ".questionType", question: ".subject_describe", options: ".examquestions-answer", type: ".newZy_TItle", workType: "zhs", pageType: "zhs" }, init: async () => { await waitUntil((function() { return J(".questionType").length > 0 && Me.zhsques && Me.zhsimgAnswer; })); }, answerHook: e => { let t = J(e.html).find(".examPaper_subject").attr("data-questionid"); const n = Me.zhsimgAnswer; let a = Me.zhsques.examBase.workExamParts.map((e => e.questionDtos)).flat().find((e => e.id == t)); return a.answer = n[a.id], e.question = removeHtml(a.name), e.type = typeConvert(a.questionType.name), e.options = a.questionOptions.map((e => removeHtml(e.content))), e.answer = a.answer.split("").map((t => e.options[t.charCodeAt(0) - 65])), "3" == e.type && (e.options = [], e.answer = isTrue(e.answer[0]) ? [ "\u6b63\u786e" ] : isFalse(e.answer[0]) ? [ "\u9519\u8bef" ] : []), e; } } ], st = [ { type: "hook", name: "\u82af\u4f4d\u6559\u80b2hook", match: "www.beeline-ai.com" === location.host, main: async e => { const getPageIdentifier = () => J(".el-main > div:eq(0)").attr("class"); Me.mainClass = getPageIdentifier(); const t = new MutationObserver((async e => { const n = getPageIdentifier(); Me.mainClass !== n && (Me.mainClass = n, "homework-detail-container" === n && await waitUntil((() => 0 === J(".el-loading-mask").length)), vuePageChange$1(), t.disconnect()); for (const a of e) if ("attributes" === a.type && "class" === a.attributeName) { const e = a.target.textContent; if (e && (e.includes("\u4e0b\u4e00\u9898") || e.includes("\u4e0a\u4e00\u9898"))) { vuePageChange$1(), t.disconnect(); break; } } })); J("body").length >= 1 && t.observe(J("body")[0], { subtree: !0, attributes: !0, childList: !0 }); } }, { type: "ask", name: "\u82af\u4f4d\u6559\u80b2\u4f5c\u4e1a", tips: "\u82af\u4f4d\u6559\u80b2\u4ec5\u652f\u6301\u9009\u62e9\u5224\u65ad\uff0c\u5176\u4ed6\u9898\u578b\u5f85\u9002\u914d", match: () => "www.beeline-ai.com" === location.host && (/student\/#\/courseInfo\/[A-Za-z0-9]+\/homework/i.test(location.href) || /student\/#\/courseInfo\/[A-Za-z0-9]+\/exam/i.test(location.href)), types: [ "0", "1", "3" ], question: { html: ".content-area > div.content", question: ".content", options: ".el-radio-group label .label,.el-checkbox-group label .label", type: ".question-box .tag", workType: "xinwei", pageType: "xinwei" }, init: async () => { await waitUntil((function() { return 0 !== J(".question-box").length; })); }, next: () => { J('.toggle-box > button:contains("\u4e0b\u4e00\u9898")').click(); }, ischecked: e => e.parent().parent().hasClass("is-checked"), questionHook: e => (e.type = typeMatch(J(e.html).find(".question-box>.tag").text()), e) }, { type: "save", name: "\u82af\u4f4d\u6559\u80b2\u6536\u5f55", match: () => "www.beeline-ai.com" === location.host && location.href.includes("/homeworkDetailPage"), question: { html: ".question-content-body", question: ".topic-title", options: ".el-radio-group label .label,.el-checkbox-group label .label", type: ".question-box .tag", workType: "xinwei", pageType: "xinwei" }, init: async () => { await waitUntil((function() { return 0 !== J(".question-content-body").length; })); }, answerHook: e => { e.type = typeMatch(J(e.html).find(".question-box>.tag").text()); let t = J(e.html).find(".answer-area > span:eq(1)").text(); switch (e.type) { case "0": case "1": let n = t.split(","); if (e.answer = n.map((t => e.options[t.charCodeAt(0) - 65])), 0 === e.answer.length) return; break; case "3": "T" == t && (e.answer = [ "\u6b63\u786e" ]), "F" == t && (e.answer = [ "\u9519\u8bef" ]); } return e; } } ], ot = [ { type: "hook", name: "\u667a\u666e\u6e05\u8a00token\u83b7\u53d6", match: /chatglm.cn\/main\//i.test(location.href), main: e => { const t = e.app, n = document.cookie.split(";"); let a = ""; n.forEach((e => { /chatglm_refresh_token/i.test(e) && (a = e.split("=")[1]); })), a && (t.app.gpt.forEach((e => { "GLM" === e.name && (e.key = a); })), t.setConfig(t.app), msg("\u667a\u666e\u6e05\u8a00token\u83b7\u53d6\u6210\u529f")); } }, { type: "hook", name: "\u8baf\u98de\u661f\u706btoken\u83b7\u53d6", match: /xinghuo.xfyun.cn\/desk/i.test(location.href), main: e => { const t = e.app, n = document.cookie.split(";"); let a = ""; n.forEach((e => { /ssoSessionId/i.test(e) && (a = e.split("=")[1]); })), a && (t.app.gpt.forEach((e => { "spark" === e.name && (e.key = a); })), t.setConfig(t.app), msg("\u8baf\u98de\u661f\u706btoken\u83b7\u53d6\u6210\u529f")); } } ], it = { single_selection: "\u5355\u9009\u9898", multiple_selection: "\u591a\u9009\u9898", true_or_false: "\u5224\u65ad\u9898", fill_in_blank: "\u586b\u7a7a\u9898", short_answer: "\u7b80\u7b54\u9898", text: "\u6587\u672c", analysis: "\u7efc\u5408\u9898", matching: "\u5339\u914d\u9898", random: "\u968f\u673a\u9898", cloze: "\u5b8c\u5f62\u586b\u7a7a\u9898" }, rt = [ { type: "hook", name: "\u56fd\u5f00hook", match: location.host.includes("ouchn.cn"), main: e => { Me.mainClass = getUrl(); let t = new MutationObserver((async e => { Me.mainClass !== getUrl() && (Me.mainClass = getUrl(), "homework-detail-container" === Me.mainClass && await waitUntil((function() { return 0 !== J(".selectDan").length; })), vuePageChange$1(), t.disconnect()); })); J("body").length >= 1 && t.observe(J("body")[0], { subtree: !0, attributes: !0, childList: !0 }); } }, { type: "save", name: "\u56fd\u5f00\u7b54\u6848\u6536\u5f55\u65e7", match: /\/exam\/([0-9]+)\/subjects#\/submission\/([0-9]+)/i.test(location.href), question: { html: "li.subject", question: ".summary-title .subject-description", options: ".subject-options li .option-content", type: ".subject-point > span:eq(0)", workType: "guokai", pageType: "guokai" }, init: async () => { await waitUntil((function() { return J(".loading-gif").hasClass("ng-hide"); })); }, answerHook: e => { const t = Me.angular.element(e.html).scope().subject; if ("text" === t.type) return; let n = !1; const a = parseFloat(t.point), s = parseFloat(t.score), o = 0 !== a && a === s; let i = J(`
${e.answer}
`), !1; } return !0; } }, { type: "save", name: "\u804c\u6559\u4e91\u6536\u5f55", match: () => location.href.includes("examrecord_recordDetail.action"), question: { html: ".q_content", question: ".divQuestionTitle", options: ".questionOptions>div.q_option_readonly", type: ".question-box .tag", workType: "zhijiaoyun", pageType: "zhijiaoyun" }, init: async () => { await waitUntil((function() { return 0 !== J(".q_content").length; })); }, answerHook: e => { const t = J(e.html).find(".exam.icon_examright").length, n = J(e.html).find("input[name='quesId']:not([id='']").attr("id"), a = J(`input#qId${n}`).attr("qtype"), s = J(e.html).find("span[name^='questionIndex']").text().trim() + "\u3001", o = J(e.html).find(".q_score").text().trim(); switch (e.question = e.question.replace(s, "").replace(o, "").trim(), e.options = J(e.html).find(".questionOptions>div.q_option_readonly").map(((e, t) => { let n = J(t).find("span[name='optionIndexName']").text().trim(); return removeHtml(J(t).html()).replace(n, "").trim(); })).get(), a) { case "\u5355\u9879\u9009\u62e9\u9898": case "\u5355\u9009\u9898": case "singlechoice": e.type = "0"; break; case "\u591a\u9879\u9009\u62e9\u9898": case "\u591a\u9009\u9898": case "multichoice": e.type = "1"; break; case "\u5224\u65ad\u9898": case "bijudgement": e.type = "3"; break; case "fillblank": case "\u586b\u7a7a\u9898": e.type = "2"; const t = J(e.html).find(".answerOption>span:eq(0)").clone(); t.find(".exam_answers").remove(), e.question = titleClean(removeHtml(t.html())).replace(/\uff08.*?\u5206\uff09/g, "").trim(); break; case "cloze": case "\u5b8c\u5f62\u586b\u7a7a": e.type = "14", e.options = J(e.html).find(".questionOptions>.exam_cloze_choice").map(((e, t) => [ J(t).find(".optionContent").map(((e, t) => removeHtml(J(t).html()))).get() ])).get(), e.answer = J(e.html).find(".exam_rightAnswer .answer_table .one_answer>span").map(((t, n) => { const a = J(n).text().trim(); return e.options[t][a.charCodeAt(0) - 65]; })).get(); break; case "textarea": e.type = "4", e.options = [], e.answer = removeHtml(J(e.html).find(".exam_rightAnswer .has_standard_answer").html()); } switch (e.type) { case "0": case "1": if (e.answer = J(e.html).find('.exam_rightAnswer .exam_answers_tit>span[name="rightAnswer"]').text().trim().split("").map((t => e.options[t.charCodeAt(0) - 65])), e.answer, 0 == e.answer.length) { if (0 == t) return; e.answer = J(e.html).find('.exam_stu_answer span[name="stuAnswer"]').text().trim().split("").map((t => e.options[t.charCodeAt(0) - 65])); } break; case "2": e.answer = 0 == t ? J(e.html).find(".exam_rightAnswer span.fillblank_answer").map(((e, t) => removeHtml(J(t).html()))).get() : J(e.html).find(".exam_stu_answer span.fillblank_answer").map(((e, t) => removeHtml(J(t).html()))).get(), e.answer; break; case "3": e.options = []; let n = J(e.html).find('.exam_stu_answer span[name="stuAnswer"]').text().trim(); [ "\u6b63\u786e", "\u9519\u8bef" ].includes(n) && t && (e.answer = [ n ]); } return e; } }, { type: "save", name: "\u667a\u6167\u804c\u6559\u6536\u5f55", match: () => "zjy2.icve.com.cn" === location.host && (location.href.includes("/spocviewsJob") || location.href.includes("/viewExam")), question: { html: ".subjectDet", question: ".seeTitle .htmlP.ql-editor", options: ".optionList .htmlP.ql-editor", type: ".question-box .tag", workType: "zhijiaoyun", pageType: "zhijiaoyun" }, init: async () => { await waitUntil((function() { return 0 !== J(".subjectDet").length; })); }, answerHook: e => { const t = J(e.html).find(".xvhao").text().trim(); e.type = typeConvert(t.match(/\u3010(.*)\u3011/)[1].trim().replace("\u586b\u7a7a\u9898(\u5ba2\u89c2)", "\u586b\u7a7a\u9898")); let n = J(e.html).find(".answer").text().trim(); switch (e.answer = n.split(",").map((t => e.options[t.charCodeAt(0) - 65])), e.type) { case "2": e.options = [], e.answer = J(e.html).find(".answer>span").map(((e, t) => removeHtml(J(t).html()))).get(); break; case "3": e.options = J(e.html).find(".optionList>div").map(((e, t) => removeHtml(J(t).html()))).get(), e.answer = n.split(",").map((t => e.options[t.charCodeAt(0) - 65])), e.answer = judgeAnswer(e.answer[0]), e.options = []; break; case "11": const t = J(e.html).find(".optionList .matching>.htmlP.ql-editor").map(((e, t) => removeHtml(J(t).html()))).get(), a = J(e.html).find(".optionList>.text .htmlP.ql-editor").map(((e, t) => removeHtml(J(t).html()))).get(); e.options = [ t, a ]; let s = {}; n = J(e.html).find(".answer>span").map(((e, n) => { let [o, i] = J(n).text().trim().split("."); o.charCodeAt(0) >= 65 ? o = (o.charCodeAt(0) - 65).toString() : /^\d+$/.test(o) && (o = (parseInt(o) - 1).toString()), i.charCodeAt(0) >= 65 ? i = (i.charCodeAt(0) - 65).toString() : /^\d+$/.test(i) && (i = (parseInt(i) - 1).toString()), s[t[o]] = a[i]; })), e.answer = s; } return e; } }, { type: "ask", name: "\u667a\u6167\u804c\u6559+\u7b54\u9898", tips: "\u8be5\u5e73\u53f0\u95ee\u9898\u8f83\u591a\uff0c\u9047\u5230\u8bf7\u53cd\u9988\u7ed9\u4f5c\u8005", match: () => location.href.includes("coursePreview/jobTest") || location.href.includes("spockeepTest") || location.href.includes("spocjobTest"), types: [ "0", "1", "3" ], question: { html: ".subjectDet", question: ".ql-editor", options: ".optionList .ql-editor", type: ".question-box .tag", workType: "zhijiaoyun", pageType: "zhijiaoyun" }, init: async () => { await waitUntil((function() { return 0 !== J(".subjectDet").length; })); }, next: () => {}, ischecked: e => e.parent().parent().parent().hasClass("is-checked"), questionHook: e => { const t = J(e.html).find(".title.titleTwo").text().trim(); if (e.type = typeConvert(t.match(/\u3010(.*)\u3011/)[1].trim().replace("\u586b\u7a7a\u9898(\u5ba2\u89c2)", "\u586b\u7a7a\u9898")), "3" === e.type) e.options = [], e.$options = J(e.html).find(".optionList>div label"); return e; }, setAnswer: e => !0, finish: e => {} }, { type: "save", name: "\u667a\u6167\u804c\u6559+\u6536\u5f55", match: () => "zyk.icve.com.cn" === location.host && (location.href.includes("/coursePreview/viewJob1") || location.href.includes("/viewExam")), question: { html: ".subjectDet", question: ".seeTitle>span:eq(1)", options: ".optionList>div", type: ".question-box .tag", workType: "zhijiaoyun", pageType: "zhijiaoyun" }, init: async () => { await waitUntil((function() { return 0 !== J(".subjectDet").length; })); }, answerHook: e => { e.options = removeStartChar(e.options); const t = J(e.html).find(".xvhao").text().trim(); e.type = typeConvert(t.match(/\u3010(.*)\u3011/)[1].trim().replace("\u586b\u7a7a\u9898(\u5ba2\u89c2)", "\u586b\u7a7a\u9898")); let n = J(e.html).find(".answer").text().trim(); switch (e.answer = n.split(",").map((t => e.options[t.charCodeAt(0) - 65])), e.type) { case "2": e.options = [], e.answer = J(e.html).find(".answer>span").map(((e, t) => removeHtml(J(t).html()))).get(); break; case "3": e.options = J(e.html).find(".optionList>div").map(((e, t) => removeHtml(J(t).html()))).get(), e.answer = n.split(",").map((t => e.options[t.charCodeAt(0) - 65])), e.answer = judgeAnswer(e.answer[0]), e.options = []; } return e; } }, { type: "save", name: "ai\u4f18\u8bfe\u6536\u5f55", match: () => "ai.icve.com.cn" === location.host && location.href.includes("/view-exams/"), question: { html: () => { let e = J(".examination-paper")[0].__vue__.$refs.Questions.sjtmtxlist, t = []; return e.sort(((e, t) => e.txdm - t.txdm)), e.forEach((e => { e.sjtmlist.forEach((e => { t.push(e); })); })), t; }, question: ".seeTitle>span:eq(1)", options: ".optionList>div", type: ".question-box .tag", workType: "zhijiaoyun", pageType: "zhijiaoyun" }, init: async () => { await waitUntil((function() { return 0 !== J(".examination-paper")[0].__vue__.$refs.Questions.sjtmtxlist.length; })); let e = J(".examination-paper")[0].__vue__.$refs.Questions.sjtmtxlist, t = []; e.sort(((e, t) => e.txdm - t.txdm)), e.forEach((e => { e.sjtmlist.forEach((e => { t.push(e); })); })), Me.quesList = t; }, answerHook: (e, t) => { const n = e.html; e.type = typeMatch(n.txdmmc), e.question = titleClean(n.tmmc); let a = []; const s = n.sjtmxxlist.map((e => { let t = removeHtml(e.xxnr); return "1" === e.sfzqda && a.push(t), t; })); return e.options = s, e.answer = a, e; }, paper: async e => { const t = J(".examination-paper")[0].__vue__.sjAllInfo, n = { platform: "icve" }; n.hash = t.sskcid, n.info = {}; const a = "https://ai.icve.com.cn/gjspxpt/jsjkKcgl/getKcjbxx?id=" + t.sskcid; await request(a, "GET").then((e => { const t = JSON.parse(e[0].responseText).content; n.name = t.kcmc, n.info = {}, n.info.imageurl = t.kctpfm; })), n.chapter = [ { hash: `${t.sjid}`, name: t.sjmc, question: e } ], et.setPaper(n.hash, n); } }, { type: "ask", name: "ai\u4f18\u8bfe\u7b54\u9898", tips: "", match: () => "ai.icve.com.cn" === location.host && location.href.includes("/preview-exam/"), types: [ "0", "1" ], question: { html: () => { let e = J(".examination-paper")[0].__vue__.$refs.Questions.sjtmtxlist, t = []; return e.sort(((e, t) => e.txdm - t.txdm)), e.forEach((e => { e.sjtmlist.forEach((e => { t.push(e); })); })), t; }, question: ".seeTitle>span:eq(1)", options: "label", type: ".question-box .tag", workType: "zhijiaoyun", pageType: "zhijiaoyun" }, init: async () => { await waitUntil((function() { return 0 !== J(".examination-paper")[0].__vue__.$refs.Questions.sjtmtxlist.length; })); }, toquestion: e => { J(".topic-zpx-list>.topic-zpx>div>span:eq(" + e + ")").click(); }, next: () => {}, ischecked: e => e.hasClass("wrongXz"), questionHook: e => { const t = e.html; e.type = typeMatch(t.txdmmc), e.question = titleClean(t.tmmc); let n = []; const a = t.sjtmxxlist.map((e => { let t = removeHtml(e.xxnr); return "1" === e.sfzqda && n.push(t), t; })); return e.options = a, e.answer = n, e.html = J(".content-center"), e.$options = () => J("label"), e; }, setAnswer: e => !0, finish: e => {} } ], ut = [ { type: "ask", name: "\u5ddd\u519c\u5728\u7ebf\u7b54\u9898", tips: "", match: () => location.host.includes("cnzx.info") && location.href.includes("KaoShi/ShiTiYe.aspx"), types: [ "0", "1", "3" ], question: { html: "li.question", question: ".wenti >p.stem", options: ".wenti > ol > li", type: ".question_head > span:eq(0)", workType: "cnzx", pageType: "cnzx" }, init: async () => {}, ischecked: e => e.find("input").prop("checked"), questionHook: e => (e.$options = J(e.html).find(".wenti > ol > li input"), 0 !== e.options.length && (e.type = "radio" === e.$options.eq(0).attr("type") ? "0" : "1", 2 === e.options.length && e.options.includes("\u6b63\u786e") && e.options.includes("\u9519\u8bef") && (e.type = "3", e.options = [])), e), setAnswer: e => "3" !== e.type || (J(e.html).find(".wenti > ol > li").each(((t, n) => { isTrue(e.answer) && isTrue(removeHtml(J(n).html())) && e.ques.$options.eq(t).click(), isFalse(e.answer) && isFalse(removeHtml(J(n).html())) && e.ques.$options.eq(t).click(); })), !1), finish: e => { J("li.paginationjs-next.J-paginationjs-next").click(); } }, { type: "save", name: "\u5ddd\u519c\u5728\u7ebf\u6536\u5f55", match: () => location.host.includes("cnzx.info") && location.href.includes("ZaiXianLianXi.aspx"), question: { html: ".ShiTi>.ShiTiMiaoShu", question: ".ShiTiMiaoShu", options: ".el-radio-group label .label,.el-checkbox-group label .label", type: ".question-box .tag", workType: "cnzx", pageType: "cnzx" }, init: async () => {}, answerHook: e => { J(e.html).text(), e.question = removeHtml(titleClean(removeHtml(J(e.html).html()))); let t = J("ul.TiXing>li.DangQianTiXing:eq(0)>a").text(), n = [], a = J(e.html).next(); switch (e.options = removeStartChar(a.find("ul li").map(((e, t) => (J(t).hasClass("DaAn1") && n.push(e), titleClean(removeHtml(J(t).html()))))).get()), e.answer = n.map((t => e.options[t])), t) { case "\u5355\u9009\u9898": case "\u8bcd\u6c47\u4e0e\u7ed3\u6784": case "\u4ea4\u9645\u7528\u8bed": e.type = "0"; break; case "\u591a\u9009\u9898": e.type = "1"; break; case "\u5224\u65ad\u9898": e.type = "3", e.options = [], e.answer = isTrue(e.answer[0]) ? [ "\u6b63\u786e" ] : isFalse(e.answer[0]) ? [ "\u9519\u8bef" ] : []; } return e; } } ], dt = [ { type: "ask", name: "\u5b89\u5fbd\u7ee7\u7eed\u6559\u80b2\u7b54\u9898(\u65e7\u7248)", tips: "", match: () => location.href.includes("study/html/content/studying/?courseOpenId=") || location.href.includes("study/html/content/sxsk/?courseOpenId=") || location.href.includes("study/html/content/tkOnline/?courseOpenId=") || location.href.includes("study/html/content/bkExam/?courseOpenId="), types: [ "0", "1", "3" ], question: { html: ".e-q-body>.e-q", question: ".ErichText", options: "ul>li>.ErichText", type: ".question-box .tag", workType: "ahjxjy", pageType: "ahjxjy" }, init: async () => { if (await waitUntil((function() { return isExist(".e-q-body>.e-q") && isExist(".e-item"); })), !isExist(".photo-time") && !isExist(".btn_save")) return !1; }, ischecked: e => e.parent().hasClass("checked"), questionHook: e => { var t; const n = J(e.html).parent().parent(); switch (e.type = n ? null == (t = n.attr("id")) ? void 0 : t.trim() : "", e.type) { case "2": e.type = "1"; break; case "1": e.type = "0"; break; case "3": e.type = "3", e.$options = J(e.html).find("ul>li"); break; case "4": e.type = "2"; break; case "5": e.type = "4"; break; default: e.type, e.type = "8"; } return e; }, setAnswer: e => { switch (e.type) { case "4": case "2": return J(e.html).find("textarea.answer-input").focus(), J(e.html).find(" textarea.answer-input"), J(e.html).find(".answer-input.edui-default").each(((t, n) => { let a = J(n).attr("id"), s = Me.UE.getEditor(a); s.ready((function() { s.setContent(`${e.answer[t]}
`); })); })), J(e.html).find(".answer-input").blur(), !1; } return !0; }, finish: e => {} }, { type: "save", name: "\u5b89\u5fbd\u7ee7\u7eed\u6559\u80b2\u6536\u5f55(\u65e7\u7248)", tips: "\u8be5\u5e73\u53f0\u4ec5\u652f\u6301\u5355\u9009\u3001\u591a\u9009\u3001\u5224\u65ad\u9898\u578b\uff0c\u5176\u4ed6\u9898\u578b\u6682\u4e0d\u652f\u6301", match: () => location.href.includes("study/html/content/studying/?courseOpenId=") || location.href.includes("study/html/content/sxsk/?courseOpenId=") || location.href.includes("study/html/content/tkOnline/?courseOpenId=") || location.href.includes("study/html/content/bkExam/?courseOpenId="), question: { html: ".e-q-body>.e-q", question: ".ErichText", options: "ul>li>.ErichText", type: ".question-box .tag", workType: "ahjxjy", pageType: "ahjxjy" }, init: async () => { if (await waitUntil((function() { return isExist(".e-save"), isExist(".e-q-body>.e-q") && isExist(".w_e-q-panel"); })), !isExist(".e-quest-review")) return !1; }, answerHook: e => { var t; const n = J(e.html).parent().parent(); e.type = n ? null == (t = n.attr("id")) ? void 0 : t.trim() : "", e.$options = J(e.html).find("ul>li"); let a = J(e.html).find("ul>li.checked").map(((e, t) => removeHtml(J(t).find(".ErichText").html()))).get(); const s = J(e.html).find(".e-q-right").length > 0; e.answer = a.filter((e => "" !== e)); let o = J(e.html).find(".e-ans-ref .e-ans-r").map(((e, t) => removeHtml(J(t).html()))).get(); 1 === o.length && o[0].length > 1 && (o = o[0].split("\u3001")); let i = o.map((t => { let n = t.charCodeAt() - 65; return e.options[n]; })).filter((e => "" !== e && void 0 !== e)); switch (e.type) { case "2": e.type = "1"; break; case "1": e.type = "0"; break; case "3": e.type = "3", e.answer = J(e.html).find("ul>li.checked").map(((e, t) => removeHtml(J(t).html()))).get(), e.options = [], isTrue(e.answer[0]) ? e.answer = [ "\u6b63\u786e" ] : isFalse(e.answer[0]) ? e.answer = [ "\u9519\u8bef" ] : e.answer = []; break; case "4": e.type = "2", e.options = []; break; case "5": e.type = "4", i = [ removeHtml(J(e.html).find(".e-ans-ref>.e-ans-r").html()) ], e.options = []; break; case "11": e.type = "19"; const t = J(e.html).find("form").map(((e, t) => ({ type: "0", question: removeHtml(J(t).find(".e-q-q .ErichText").html()), options: J(t).find("ul li .ErichText").map(((e, t) => removeHtml(J(t).html()))).get() }))).get(); i = i.length > 0 ? judgeAnswer(i[0]) : [], e.options = t; default: return void e.type; } if (i.length > 0) return e.answer = i, e; if (!s && "3" === e.type && e.answer.length > 0) { if (e.answer = function(e) { if (!isTrue(e[0]) && !isFalse(e[0])) return e[0], []; return isTrue(e[0]) ? [ "\u9519\u8bef" ] : isFalse(e[0]) ? [ "\u6b63\u786e" ] : []; }(e.answer), 0 === e.answer.length) return; } else if (!s) return; return e; }, paper: e => { const t = Me.online, n = { platform: "ahjxjy" }; n.hash = t.courseOpenId, n.name = Me.localStorage.courseNmae, n.info = {}, n.chapter = [ { hash: `${t.cell.id}`, name: t.cell.title, question: e } ], et.setPaper(n.hash, n); } }, { type: "save", name: "\u5b89\u5fbd\u7ee7\u7eed\u6559\u80b2\u6536\u5f55(\u65b0\u7248)", tips: "\u8be5\u5e73\u53f0\u4ec5\u652f\u6301\u5355\u9009\u3001\u591a\u9009\u3001\u5224\u65ad\u9898\u578b\uff0c\u5176\u4ed6\u9898\u578b\u6682\u4e0d\u652f\u6301", match: () => location.href.includes("/myHomework/answerRecord") || location.href.includes("/myHomework/assignment") || location.href.includes("/myExam/examDetails") || location.href.includes("/myExam/examHistory"), question: { html: ".option>div[id='answer-card-area']", question: ".ErichText", options: "ul>li>.ErichText", type: ".question-box .tag", workType: "ahjxjy", pageType: "ahjxjy" }, init: async () => { await waitUntil((function() { return isExist(".option>div[id='answer-card-area']"); })); }, answerHook: (e, t) => { const n = J("micro-app-body>#app>div")[0].__vue__.hierarchyList[t]; e.type = typeMatch(n.name), e.question = titleClean(removeHtml(n.Content)); const {options: a, answer: s} = n.CourseQuestionOptionList.reduce(((e, t) => { const n = removeHtml(t.Content); return t.IsAnswer && e.answer.push(n), e.options.push(n), e; }), { options: [], answer: [] }); return e.options = a, e.answer = "3" === e.type ? [ judgeAnswer(s[0]) ] : s, "3" === e.type && (e.options = []), e; } }, { type: "ask", name: "\u5b89\u5fbd\u7ee7\u7eed\u6559\u80b2\u7b54\u9898(\u65b0\u7248)", tips: "\u5355\u9898\u95f4\u9694\u5fc5\u987b\u5927\u4e8e 3 \u79d2\uff01\uff01\u5426\u5219\u5bb9\u6613\u5f02\u5e38\uff01\uff01", match: () => location.href.includes("/myHomework/assignment") || location.href.includes("/myExam/examDetails"), types: [ "0", "1", "3" ], minDelay: 3e3, answerDelay: 1e3, question: { html: ".option>div[id='answer-card-area']", question: ".ErichText", options: "ul.answer-list>li", type: ".question-box .tag", workType: "ahjxjy", pageType: "ahjxjy" }, init: async () => { if (await waitUntil((function() { return isExist(".option>div[id='answer-card-area']"); })), !J(".submit-area").text().includes("\u63d0\u4ea4")) return !1; const e = J("micro-app-body>#app>div")[0].__vue__, t = e.hierarchyList[0]; e.goAnchor(t.Id); }, toquestion: e => { const t = J("micro-app-body>#app>div")[0].__vue__, n = t.hierarchyList[e]; (null == n ? void 0 : n.Id) && t.goAnchor(n.Id); }, ischecked: e => e.hasClass("on"), questionHook: (e, t) => { const n = J("micro-app-body>#app>div")[0].__vue__.hierarchyList[t]; e.type = typeMatch(n.name), e.question = titleClean(removeHtml(n.Content)); let a = []; return n.CourseQuestionOptionList.forEach((e => { const t = removeHtml(e.Content); e.IsAnswer, a.push(t); })), e.options = a, e.html = "body", e.$options = () => J("ul.answer-list>li"), e; }, setAnswer: e => !0, finish: e => {} }, { type: "ask", name: "\u5b89\u5fbd\u7ee7\u7eed\u6559\u80b2\u7b54\u9898(\u81ea\u8003)", tips: "", match: () => location.href.includes("/userinfo/testPaper"), types: [ "0", "1", "3" ], question: { html: ".item-card-area", question: ".desc", options: "ul>li", type: ".question-box .tag", workType: "ahjxjy", pageType: "ahjxjy" }, init: async () => { if (await waitUntil((function() { return isExist(".exam-paper-wrap"); })), isExist(".exam-process-area")) return !1; const e = J(".exam-paper-wrap")[0].__vue__.topicList.map((e => e.getPaperList)).flat(); window.Zques = e; }, ischecked: e => e.parent().hasClass("checked"), questionHook: (e, t) => { const n = Zques[t]; e.type = typeMatch(n.questionTypeName), e.question = titleClean(removeHtml(n.content)); const {options: a, answer: s} = n.courseQuestionOptionList.reduce(((e, t) => { const n = removeHtml(t.content); return t.isAnswer && e.answer.push(n), e.options.push(n), e; }), { options: [], answer: [] }); return e.options = a, e.answer = "3" === e.type ? [ judgeAnswer(s[0]) ] : s, "3" === e.type && (e.options = []), e; }, setAnswer: e => { switch (e.type) { case "4": case "2": return J(e.html).find("textarea.answer-input").focus(), J(e.html).find(" textarea.answer-input"), J(e.html).find(".answer-input.edui-default").each(((t, n) => { let a = J(n).attr("id"), s = Me.UE.getEditor(a); s.ready((function() { s.setContent(`${e.answer[t]}
`); })); })), J(e.html).find(".answer-input").blur(), !1; } return !0; }, finish: e => {} }, { type: "save", name: "\u5b89\u5fbd\u7ee7\u7eed\u6559\u80b2\u6536\u5f55(\u81ea\u8003)", tips: "\u8be5\u5e73\u53f0\u4ec5\u652f\u6301\u5355\u9009\u3001\u591a\u9009\u3001\u5224\u65ad\u9898\u578b\uff0c\u5176\u4ed6\u9898\u578b\u6682\u4e0d\u652f\u6301", match: () => location.href.includes("/userinfo/testPaper"), question: { html: ".item-card-area", question: ".ErichText", options: "ul>li>.ErichText", type: ".question-box .tag", workType: "ahjxjy", pageType: "ahjxjy" }, init: async () => { if (await waitUntil((function() { return isExist(".exam-paper-wrap"); })), !isExist(".score-describe")) return !1; const e = J(".exam-paper-wrap")[0].__vue__.topicList.map((e => e.getPaperList)).flat(); window.Zques = e; }, answerHook: (e, t) => { const n = Zques[t]; e.type = typeMatch(n.questionTypeName), e.question = titleClean(removeHtml(n.content)); const {options: a, answer: s} = n.courseQuestionOptionList.reduce(((e, t) => { const n = removeHtml(t.content); return t.isAnswer && e.answer.push(n), e.options.push(n), e; }), { options: [], answer: [] }); return e.options = a, e.answer = "3" === e.type ? [ judgeAnswer(s[0]) ] : s, "3" === e.type && (e.options = []), e; } } ], mt = [ { type: "save", name: "\u9752\u4e66\u4f5c\u4e1a\u7b54\u9898\u6536\u5f55", match: () => location.host.includes("qingshuxuetang.com") && (location.href.includes("Student/ExercisePaper?courseId=") || location.href.includes("Student/ViewQuiz?quizId=") || location.href.includes("Student/SimulationExercise/Detail?id=") || location.href.includes("Student/Quiz/Detail?id=")), question: { html: ".paper-container > .question-detail-container", question: ".question-detail-description", options: ".question-detail-options .question-detail-option .option-description-preview", type: ".question-detail-type-desc", workType: "qingshu", pageType: "qingshu" }, init: async () => { await waitUntil((function() { return isExist(".question-detail-container") && Me.qsques; })); }, answerHook: (e, t) => { const n = Me.qsques[t]; switch (e.question = removeHtml(n.description), e.options = n.options ? n.options.map((e => removeHtml(e.description))) : [], e.type = typeConvert(n.typeDesc), e.answer = n.solution.split("").map((t => e.options[t.charCodeAt(0) - 65])), e.type) { case "3": e.options = [], e.answer = isTrue(e.answer[0]) ? [ "\u6b63\u786e" ] : isFalse(e.answer[0]) ? [ "\u9519\u8bef" ] : [ "" ]; break; case "15": e.options = [], e.answer = [], n.subQuestions.forEach((t => { let n = t.options ? t.options.map((e => removeHtml(e.description))) : [], a = t.solution.split("").map((e => n[e.charCodeAt(0) - 65])); e.answer.push(a), e.options.push(n); })); } return e; } }, { type: "ask", name: "\u9752\u4e66\u5b66\u5802\u4f5c\u4e1a\u7b54\u9898", tips: "", match: () => location.host.includes("qingshuxuetang.com") && (location.href.includes("/Student/ExercisePaper") || location.href.includes("Student/ExamPaper") || location.href.includes("Student/ViewQuiz") || location.href.includes("Student/SimulationExercise/Detail") || location.href.includes("Student/Quiz/Detail")), types: [ "0", "1", "3" ], question: { html: ".paper-container > .question-detail-container", question: ".question-detail-description", options: ".question-detail-options .question-detail-option .option-description", type: ".question-detail-type-desc", workType: "qingshu", pageType: "qingshu" }, init: async () => { await waitUntil((function() { return isExist(".question-detail-container") && Me.qsques; })); }, next: () => {}, ischecked: e => e.parent().find("input").prop("checked"), toquestion: e => { J(`.group_item:eq(${e})`), J(`.group_item:eq(${e})`).click(); }, questionHook: (e, t) => { const n = Me.qsques[t]; if (e.question = removeHtml(n.description), e.options = n.options ? n.options.map((e => removeHtml(e.description))) : [], e.type = typeConvert(n.typeDesc), "3" === e.type) e.options = []; return e; }, setAnswer: e => !0, finish: e => {} } ], ht = [ { type: "save", name: "\u4f18\u8bfe\u5728\u7ebf\u6536\u5f55", match: () => "cce.org.uooconline.com" === location.host && (location.href.includes("/exam/paper") || location.href.includes("/exam/")), question: { html: ".queContainer", question: ".topic-title", options: ".el-radio-group label .label,.el-checkbox-group label .label", type: ".question-box .tag", workType: "uooc", pageType: "uooc" }, init: async () => { await waitUntil((function() { return 0 !== J(".queContainer").length; })); }, answerHook: e => { const t = Me.angular.element(e.html).scope().question; if (e.type = typeConvert(t.type_text), e.question = t.question, e.options = t.options_app.map((e => e.value)), e.answer = t.answer.map((e => t.options[e])), "3" === e.type) e.options = [], e.answer = judgeAnswer(e.answer[0]); return e; } } ], ft = [ { type: "ask", name: "\u4eac\u4eba\u5e73\u53f0\u7b54\u9898", tips: "", match: () => location.host.includes("cj-edu.com") && (location.href.includes("/Examination") || location.href.includes("/ExamInfo")), types: [ "0", "1", "3" ], question: { html: ".el-main>.all_subject>div.el-row", question: "div.stem", options: "ul li > label > span.el-radio__label > div:nth-child(2),ul li > label > span.el-checkbox__label > div:nth-child(2)", type: ".question-box .tag", workType: "cjedu", pageType: "cjedu" }, init: async () => { await waitUntil((function() { return 0 !== J(".el-main>.all_subject>div.el-row").length; })); }, next: () => {}, ischecked: e => e.parent().parent().hasClass("is-checked"), questionHook: e => { switch (J(e.html).prevAll("h1").first().text().trim()) { case "\u5355\u9009\u9898": e.type = "0"; break; case "\u591a\u9009\u9898": e.type = "1"; break; case "\u5224\u65ad\u9898": e.$options = J(e.html).find("ul li>label"), e.options = [], e.type = "3"; } return e; }, setAnswer: e => !0, finish: e => {} }, { type: "save", name: "\u4eac\u4eba\u5e73\u53f0\u4f5c\u4e1a\u6536\u5f55", match: () => location.host.includes("cj-edu.com") && location.href.includes("/ViewAnswerSheet"), question: { html: ".el-main>.all_subject>div.el-row", question: "p.stem", options: "ul li > label > span.el-radio__label > div:nth-child(2),ul li > label > span.el-checkbox__label > div:nth-child(2)", type: ".question-box .tag", workType: "cjedu", pageType: "cjedu" }, init: async () => { await waitUntil((function() { return 0 !== J(".el-main>.all_subject>div.el-row").length; })); }, answerHook: e => { let t = J(e.html).find(".seeStudentAnswer>p.answer").text().replace("\u53c2\u8003\u7b54\u6848\uff1a", "").trim(), n = J(e.html).prevAll("h1").first().text().trim(); switch (e.options.length > 0 && (e.answer = t.split(",").map((t => e.options[t.charCodeAt(0) - 65]))), n) { case "\u5355\u9009\u9898": e.type = "0"; break; case "\u591a\u9009\u9898": e.type = "1"; break; case "\u5224\u65ad\u9898": e.options = [], e.answer = judgeAnswer(t), e.type = "3"; } return e; } } ], yt = [ { type: "hook", name: "hook", match: location.host.includes("ytccr.com"), main: e => { const getHash = () => getUrl(); Me.mainClass = getHash(); let t = new MutationObserver((async e => { Me.mainClass !== getHash() && (Me.mainClass = getHash(), vuePageChange$1(), t.disconnect()); })); J("#app").length >= 1 && t.observe(J("#app")[0], { subtree: !0, attributes: !0, childList: !0 }); } }, { type: "ask", name: "\u7ece\u901a\u7ee7\u6559\u4e91\u7b54\u9898", tips: "", match: () => location.host.includes("ytccr.com") && location.href.includes("learning-work") && location.href.includes("type=3"), types: [ "0", "1", "3" ], question: { html: ".border-item", question: ".title.qa-title", options: ".opts-list .opt-title-cnt", type: ".question-box .tag", workType: "ytccr", pageType: "ytccr" }, init: async () => { await waitUntil((function() { return 0 !== J(".border-item").length; })); }, next: () => {}, ischecked: e => e.parent().parent().hasClass("is-checked"), questionHook: e => { if (e.type = typeConvert(J(e.html).find(".qtype").text().trim()), "3" === e.type) e.options = []; return e; }, setAnswer: e => !0, finish: e => {} }, { type: "save", name: "\u7ece\u901a\u7ee7\u6559\u4e91\u6536\u5f55", match: () => location.host.includes("ytccr.com") && location.href.includes("learning-work") && location.href.includes("type=5"), question: { html: ".border-item", question: ".title.qa-title", options: ".opts-list .opt-title-cnt", type: ".question-box .tag", workType: "ytccr", pageType: "ytccr" }, init: async () => { await waitUntil((function() { return 0 !== J(".border-item").length; })); }, answerHook: e => { e.type = typeConvert(J(e.html).find(".qtype").text().trim()); let t = J(e.html).find(".u-text-success,.u-text-danger").text().split("\uff0c")[0].trim(); if (t = t.match(/[A-Z]+$/)[0].trim(), e.answer = t.split("").map((t => e.options[t.charCodeAt(0) - 65])), 0 === e.answer.length) return e; if ("3" === e.type) e.options = [], e.answer = judgeAnswer(e.answer[0]); return e; } } ], gt = [ { type: "ask", name: "\u5b66\u8d77\u8003\u8bd5", tips: "", match: () => location.href.includes("oxer/page/ots/examIndex.html"), types: [ "0", "1", "3" ], question: { html: ".queItemClass", question: "dt > div.din:eq(1)", options: "dd > div", type: ".question-box .tag", workType: "xueqi", pageType: "xueqi" }, init: async () => { await waitUntil((function() { return isExist(".queItemClass"); })), Me.document.onkeydown = null, Me.oncontextmenu = null; }, next: () => {}, ischecked: e => e.parent().hasClass("cur"), questionHook: e => { let t = J(e.html).parent().find("div .fb:eq(0)").text().split("\u3001")[1]; if (t.includes("\u5224\u65ad") && (t = "\u5224\u65ad\u9898"), e.type = typeMatch(t), "3" === e.type) e.options = [], e.$options = J(e.html).find("input"); return e; }, setAnswer: e => { if ("3" === e.type) { let t = e.answer; return e.ques.$options.each(((e, n) => { isTrue(t) && isTrue(removeHtml(J(n).val())) && J(n).click(), isFalse(t) && isFalse(removeHtml(J(n).val())) && J(n).click(); })), !1; } return !0; }, finish: e => {} }, { type: "save", name: "\u5b66\u671f\u8003\u8bd5\u6536\u5f55", match: () => location.href.includes("OTS-UniverDetail.html"), question: { html: ".dl_list", question: "dt > div.fl:eq(1)", options: "dd > var", type: ".question-box .tag", workType: "xueqi", pageType: "xueqi" }, init: async () => { await waitUntil((function() { return isExist(".dl_list"); })); }, answerHook: e => { var t, n, a, s, o; const i = J(e.html).attr("queid"), r = e.html._ms_context_.el.questions.find((e => e.id === i)); r.questionTypeName.includes("\u5224\u65ad") && (r.questionTypeName = "\u5224\u65ad\u9898"), e.type = typeMatch(r.questionTypeName), e.question = removeHtml(r.stem), console.log(r), e.options = (null == (n = null == (t = r.answerArea) ? void 0 : t.optionList) ? void 0 : n.sort(((e, t) => e.sequence - t.sequence)).map((e => removeHtml(e.content)))) || []; let l = r.answer.ans || (null == (a = r.answer.ansL) ? void 0 : a.join("")) || null; if (l) e.answer = l.split("").map((t => e.options[t.charCodeAt(0) - 65])); else { const t = (null == (o = null == (s = r.answerArea) ? void 0 : s.optionList) ? void 0 : o.filter((e => e.isTrue)).map((e => removeHtml(e.content)))) || []; if (0 === r.answerScore) return; e.answer = t; } return "3" === e.type && (e.options = [], e.answer = judgeAnswer(l)), e; }, paper: e => { const t = J(".dl_list:eq(0)")[0]._ms_context_.loop.category, n = J(".dl_list:eq(0)")[0]._ms_context_.oAnswerDetailInfo, a = { platform: "xueqi" }; a.hash = t.code, a.name = t.value, a.info = {}, a.chapter = [ { hash: `${n.arrangementid}`, name: n.arrangementname, question: e } ], et.setPaper(a.hash, a); } } ], wt = [ { type: "hook", name: "hook", match: "gdrtvu.exam-cloud.cn" === location.host, main: e => { unsafeWindow.mainClass = getUrl(); let t = new MutationObserver((async e => { unsafeWindow.mainClass !== getUrl() && (unsafeWindow.mainClass = getUrl(), vuePageChange(), t.disconnect()); })); J("#app").length >= 1 && t.observe(J("#app")[0], { subtree: !0, attributes: !0, childList: !0 }); } }, { type: "ask", name: "\u7b54\u9898", tips: "\u516c\u544a", match: () => location.host.includes("exam-cloud.cn") && location.href.includes("oe-web/online-exam/exam"), types: [ "0", "1", "3" ], question: { html: ".question-container", question: ".question-body:first", options: ".option .question-options", type: ".question-header .container", workType: "guangkai", pageType: "guangkai" }, init: async () => { await waitUntil((function() { return isExist(".question-container"); })); }, next: () => {}, ischecked: e => e.parent().parent().hasClass("is-checked"), questionHook: e => { let t = J(".list .current-question").parent().parent().find(".title").text(); if (console.log(t), t = t.split("\u3001")[1], t = t.replace(/\(.*\)/, "").trim(), console.log(t), e.type = typeConvert(t), "8" == e.type ? e.type = typeMatch(t) : e.type, "3" === e.type) e.options = []; return e; }, setAnswer: e => !0, finish: e => { J(".next .qm-primary-button").length && J(".next .qm-primary-button")[0].click(); } } ], vt = [ { type: "hook", name: "hook", match: location.host.includes("open.ha.cn"), main: e => { const getHash = () => J(".stuHomeworkVersionId.active").attr("id"); Me.mainClass = getHash(); let t = new MutationObserver((async e => { getHash(), Me.mainClass !== getHash() && (Me.mainClass = getHash(), vuePageChange$1(), t.disconnect()); })); J(".homeworkBody").length >= 1 && t.observe(J(".homeworkBody")[0], { subtree: !0, attributes: !0, childList: !0 }); } }, { type: "ask", name: "\u4e91\u4e0a\u6cb3\u5f00\u7b54\u9898", tips: "", match: () => location.host.includes("open.ha.cn") && location.href.includes("/homework/showHomeworkByStatus") && location.href.includes("checked=false"), types: [ "0", "1" ], question: { html: ".layui-colla-content > .insert", question: ".window-title", options: ".option-title", type: ".question-box .tag", workType: "openha", pageType: "openha" }, init: async () => { await waitUntil((function() { return isExist(".layui-colla-content > .insert"); })); }, next: () => {}, ischecked: e => e.parent().parent().hasClass("is-checked"), questionHook: e => (e.options = e.$options.map(((t, n) => { let a = J(n).find(".numberCover").text().trim(); return removeHtml(e.$options.eq(t).html()).replace(a, "").trim(); })).get(), e.type = typeConvert(J(e.html).find(".questionDiv>.float-l:eq(1)").text().trim()), e.$options = J(e.html).find(".option-title .numberCover"), e), setAnswer: e => !0, finish: e => {} }, { type: "save", name: "\u4e91\u4e0a\u6cb3\u5f00\u6536\u5f55", match: () => location.host.includes("open.ha.cn") && location.href.includes("/homework/showHomeworkByStatus") && location.href.includes("checked=true"), question: { html: ".layui-colla-content > .insert", question: ".window-title", options: ".option-title", type: ".question-box .tag", workType: "openha", pageType: "openha" }, init: async () => { await waitUntil((function() { return isExist(".layui-colla-content > .insert"); })); }, answerHook: e => { let t = []; const n = 0 == J(e.html).find(".option-title.error2").length; if (e.options = e.$options.map(((n, a) => { let s = J(a).find(".numberCover").text().trim(), o = removeHtml(e.$options.eq(n).html()).replace(s, "").trim(); return J(a).hasClass("answer-title") && t.push(o), o; })).get(), e.type = typeConvert(J(e.html).find(".questionDiv>.float-l:eq(1)").text().trim()), n) return e.answer = t, J(e.html).find(".option-title.error2"), e; }, paper: e => { const t = Me.homework, n = { platform: "openha" }; n.hash = t.courseId, n.name = t.courseName, n.info = {}, n.chapter = [ { hash: `${t.homeworkId}`, name: t.title, question: e } ], et.setPaper(n.hash, n); } } ], xt = [ { type: "ask", name: "\u6cb3\u5357\u7ee7\u7eed\u6559\u80b2\u7b54\u9898", tips: "", match: () => location.href.includes("uc/task/startTask"), types: [ "0", "1" ], answerDelay: 1e3, minDelay: 1e3, question: { html: ".carousel-inner>.item.changeless-box", question: ".exam-tg-txt__wrap.e-tg-box", options: ".ic-options-list address", type: ".question-box .tag", workType: "cloudwis", pageType: "cloudwis" }, init: async () => { if (await waitUntil((function() { return isExist(".carousel-inner>.item.changeless-box"); })), !isExist("#finish")) return !1; await waitUntil((function() { let e = J(".carousel-inner>article").filter(((e, t) => J(t).hasClass("temporary-box"))).eq(0).index(); return e > 0 ? (J(".slide-tihao:eq(" + e + ")")[0].click(), !1) : (J(".slide-tihao:eq(0)")[0].click(), !0); })); }, toquestion: e => { J(".slide-tihao:eq(" + e + ")")[0].click(); }, ischecked: e => e.find(".checked").length > 0, questionHook: e => (e.type = typeConvert(J(e.html).attr("data-name") || ""), e.$options = J(e.html).find(".ic-options__wrap label"), e.question = e.question.replace(/^\(\d+\)/, "").trim(), e.question = e.question.replace(/\(\d+\u5206\)$/, "").trim(), e), setAnswer: e => !0, finish: e => {} }, { type: "ask", name: "\u6cb3\u5357\u7ee7\u7eed\u6559\u80b2\u8003\u8bd5\u7b54\u9898", tips: "", match: () => location.href.includes("uc/exam/record/startExamination"), types: [ "0", "1" ], question: { html: ".trunk-box", question: ".exam-tg-txt__wrap.e-tg-box", options: ".ic-options-list address", type: ".question-box .tag", workType: "cloudwis", pageType: "cloudwis" }, init: async () => { if (await waitUntil((function() { return isExist(".trunk-box") && isExist(".ic-ac-checkbox-ol"); })), await waitUntil((function() { return window.scrollTo(0, document.body.scrollHeight), J(".ic-ac-checkbox-ol li").length == J(".trunk-box").length; })), !isExist("#submit-btn")) return !1; }, next: () => { J("#carousel-professional").carousel("next"); }, ischecked: e => e.find(".checked").length > 0, questionHook: e => { const t = J(e.html).attr("data-type"); switch (console.log(t), t) { case "1": e.type = "0"; break; case "2": e.type = "1"; break; case "3": e.type = "3", e.options = []; } return e.question = e.question.replace(/^\d+\u3001/, "").trim(), e.question = e.question.replace(/\(\d+\u5206\)$/, "").trim(), e.question = e.question.replace(/\[\S+\]$/, "").trim(), e.$options = J(e.html).find(".ic-options__wrap label"), e; }, setAnswer: e => !0, finish: e => {} }, { type: "save", name: "\u6cb3\u5357\u7ee7\u7eed\u6559\u80b2\u6536\u5f55", match: () => location.href.includes("uc/task/startTask"), question: { html: ".carousel-inner>.item.changeless-box", question: ".exam-tg-txt__wrap.e-tg-box", options: ".ic-options-list address", type: ".question-box .tag", workType: "cloudwis", pageType: "cloudwis" }, init: async () => { if (await waitUntil((function() { return isExist(".carousel-inner>.item.changeless-box") && isExist(".slide-tihao"); })), isExist("#finish")) return !1; await waitUntil((function() { let e = J(".carousel-inner>article").filter(((e, t) => J(t).hasClass("temporary-box"))).eq(0).index(); return e > 0 ? (J(".slide-tihao:eq(" + e + ")")[0].click(), !1) : (J(".slide-tihao:eq(0)")[0].click(), !0); })); }, next: () => {}, answerHook: e => { const t = J(e.html).find(".analysis-box .fs20.c-primary.vam").text().trim().split(""); return e.type = typeConvert(J(e.html).attr("data-name") || ""), e.answer = t.map((t => e.options[t.charCodeAt(0) - 65])), e.question = e.question.replace(/^\(\d+\)/, "").trim(), e.question = e.question.replace(/\(\d+\u5206\)$/, "").trim(), e; } }, { type: "save", name: "\u6cb3\u5357\u7ee7\u7eed\u6559\u80b2\u8003\u8bd5\u6536\u5f55", match: () => location.href.includes("uc/exam/record/startExamination"), question: { html: ".trunk-box.answer-question", question: ".exam-tg-txt__wrap.e-tg-box", options: ".ic-options-list address", type: ".question-box .tag", workType: "cloudwis", pageType: "cloudwis" }, init: async () => { if (await waitUntil((function() { return isExist(".trunk-box") && isExist(".ic-ac-correct"); })), await waitUntil((function() { return window.scrollTo(0, document.body.scrollHeight), J(".ic-ac-correct,.ic-ac-error").length == J(".trunk-box").length; })), isExist("#submit-btn")) return !1; }, next: () => { J(".next-slide").click(); }, answerHook: e => { const t = J(e.html).attr("data-type"); console.log(t); const n = J(e.html).find(".ic-options__wrap label").filter(((e, t) => J(t).find(".checked").length > 0)).map(((e, t) => removeHtml(J(t).html()))).get(); switch (e.answer = n.map((t => e.options[t.charCodeAt(0) - 65])), e.question = e.question.replace(/^\d+\u3001/, "").trim(), e.question = e.question.replace(/\(\d+\u5206\)$/, "").trim(), e.question = e.question.replace(/\[\S+\]$/, "").trim(), t) { case "1": e.type = "0"; break; case "2": e.type = "1"; break; case "3": e.type = "3", e.options = [], e.answer = judgeAnswer(e.answer[0]); } return e; } } ], bt = [ { type: "hook", name: "hook", match: location.host.includes("sclecb.cn"), main: e => { const getHash = () => getUrl(); Me.mainClass = getHash(); let t = new MutationObserver((async e => { Me.mainClass !== getHash() && (Me.mainClass = getHash(), vuePageChange$1(), t.disconnect()); })); J("#app").length >= 1 && t.observe(J("#app")[0], { subtree: !0, attributes: !0, childList: !0 }); } }, { type: "ask", name: "\u56db\u5ddd\u5f00\u653e\u5927\u5b66\u7b54\u9898", tips: "", match: () => "study.sclecb.cn" === location.host && /\/[0-9]+\/show/i.test(location.href), types: [ "0", "1", "3" ], question: { html: ".testpaper-question.js-testpaper-question", question: ".testpaper-question-stem", options: ".testpaper-question-choices li", type: ".question-box .tag", workType: "sclecb", pageType: "sclecb" }, init: async () => { await waitUntil((function() { return isExist(".testpaper-question.js-testpaper-question"); })); }, next: () => {}, ischecked: e => e.hasClass("checked"), questionHook: e => { switch (e.options = removeStartChar(e.options), e.$options = J(e.html).find(".testpaper-question-choice-inputs > label > input"), e.type = typeConvert(J(e.html).parent().parent().find(".panel-heading>strong").text().trim()), e.type, e.type) { case "0": case "1": break; case "3": e.$options = J(e.html).find(".radio-inline"); } return e; }, setAnswer: e => !0, finish: e => {} }, { type: "ask", name: "\u56db\u5ddd\u5f00\u653e\u5927\u5b66\u7b54\u9898\u65e7", tips: "", match: () => location.host.includes("sclecb.cn") && /student\/course\/study\/[0-9a-zA-Z]+\/test\/redo/i.test(location.href), types: [ "0", "1" ], question: { html: ".questiono-item", question: ".clearfix.questiono-header h6", options: ".common_test_option .processing_img", type: ".question-box .tag", workType: "sclecb", pageType: "sclecb" }, init: async () => { await waitUntil((function() { return isExist(".questiono-item"); })); }, next: () => {}, ischecked: e => e.hasClass("checked"), questionHook: e => { const t = J(e.html).parent().parent().find("div:eq(0)").text().trim(); switch (!0) { case t.includes("\u5355\u9009\u9898"): e.type = "0"; break; case t.includes("\u591a\u9009\u9898"): e.type = "1"; break; case t.includes("\u5224\u65ad\u9898"): e.type = "3", e.options = [], e.$options = J(e.html).find(".common_test_option > label"); break; default: return; } return e; }, setAnswer: e => !0, finish: e => {} }, { type: "save", name: "\u56db\u5ddd\u5f00\u653e\u5927\u5b66\u6536\u5f55", match: () => "study.sclecb.cn" === location.host && (/task\/[0-9]+\/activity_show/i.test(location.href) || /result\/[0-9]+\/show/i.test(location.href)), question: { html: ".testpaper-question.js-testpaper-question", question: ".testpaper-question-stem", options: ".testpaper-question-choices li", type: ".question-box .tag", workType: "sclecb", pageType: "sclecb" }, init: async () => { await waitUntil((function() { return isExist(".testpaper-question.js-testpaper-question"); })); }, answerHook: (e, t) => { let n = []; e.options = e.$options.map(((e, t) => { const a = removeHtml(J(t).clone().find(".testpaper-question-choice-index").remove().end().html()); return J(t).hasClass("testpaper-question-choice-right") && n.push(a), a; })).get(), e.answer = n, e.type = typeConvert(J(".js-panel-card>span").eq(t).prevAll("p").first().text().trim()); const a = J(".js-panel-card>span").eq(t).hasClass("bg-success"); switch (e.type) { case "0": case "1": break; case "3": let t = ""; t = J(e.html).find(".testpaper-question-result").text().replace("\u4f60\u7684\u7b54\u6848\u662f", "").trim(), e.answer = judgeAnswer(t); } if ((a || !(e.answer.length > 0) || "3" != e.type) && a) return e; } } ], kt = [ { type: "hook", name: "hook", match: location.host.includes("superchutou.com"), main: e => { const getHash = () => getUrl(); Me.mainClass = getHash(); let t = new MutationObserver((async e => { Me.mainClass !== getHash() && (Me.mainClass = getHash(), vuePageChange$1(), t.disconnect()); })); J("#root").length >= 1 && t.observe(J("#root")[0], { subtree: !0, attributes: !0, childList: !0 }); } }, { type: "ask", name: "\u51fa\u5934\u7cfb\u7edf\u7b54\u9898", tips: "", match: () => location.host.includes("superchutou.com") && location.href.includes("onlineclass/exam/"), types: [ "0", "1" ], question: { html: "[class^='single_excer_item']", question: "[class^='title_content'] > [class^='title_content_text']:eq(1)", options: "[class^='options_content'] label", type: ".question-box .tag", workType: "chutou", pageType: "chutou" }, init: async () => { await waitUntil((function() { return isExist("[class^='single_excer_item']"); })); }, next: () => {}, ischecked: e => e.parent().parent().hasClass("is-checked"), questionHook: e => { let t = J(e.html).find("[class^='title_content'] > span:eq(1)").text(); if (t = t.replace(/\u3010|\u3011/g, "").trim(), e.type = typeConvert(t), e.options = removeStartChar(e.options), "3" === e.type) e.options = []; return e; }, setAnswer: e => !0, finish: e => {} }, { type: "save", name: "\u51fa\u5934\u6536\u5f55", match: () => location.host.includes("superchutou.com") && location.href.includes("/onlineclass/analysis/"), question: { html: "[class^='single_excer_item']", question: "[class^='title_content'] > [class^='title_content_text']:eq(1)", options: "[class^='options_content'] label", type: ".question-box .tag", workType: "chutou", pageType: "chutou" }, init: async () => { await waitUntil((function() { return isExist("dl>dd>span"); })); }, answerHook: e => { let t = J(e.html).find("[class^='title_content'] > span:eq(1)").text(); t = t.replace(/\u3010|\u3011/g, "").trim(), e.type = typeConvert(t), e.options = removeStartChar(e.options); const n = J(e.html).find(".ant-collapse-header>div.ant-row>div.ant-col.ant-col-18>div:eq(1)").text().replace("\u53c2\u8003\u7b54\u6848\uff1a", "").trim(); switch (e.type) { case "0": case "1": e.answer = n.split("").map((t => e.options[t.charCodeAt(0) - 65])); break; case "3": e.options = [], e.answer = judgeAnswer(n); } return e; } } ], _t = [ { type: "ask", name: "\u826f\u5e08\u5728\u7ebf\u7b54\u9898", tips: "", match: () => location.host.includes("ls365.net") && (location.href.includes("student/examing.aspx") || location.href.includes("Student/myhomework.aspx")), types: [ "0", "1" ], question: { html: ".exam_question", question: ".exam_question_title", options: ".question_select .select_detail", type: ".exam_question_title strong", workType: "ls365", pageType: "ls365" }, init: async () => { await waitUntil((function() { return isExist(".exam_question"); })); }, next: () => {}, ischecked: e => e.parent().parent().hasClass("is-checked"), questionHook: e => { let t = J(e.html).find(".exam_question_title").clone(); t.find(".question_number").remove(), t.find("strong").remove(), t.find(".exam_feed_back").remove(), e.question = removeHtml(t.html()); let n = J(e.html).find(".exam_question_title strong").text(); return n = n.replace(/\[|\]/g, "").trim(), e.type = typeConvert(n), e; }, setAnswer: e => !0, finish: e => {} }, { type: "save", name: "\u826f\u5e08\u5728\u7ebf\u8003\u8bd5\u6536\u5f55", match: () => location.host.includes("ls365.net") && location.href.includes("User/Student/ViewPaper.aspx"), question: { html: "[name^='anchor_']", question: ".title-img-ctr", options: ".pold .phtml", type: ".QuestionsType", workType: "ls365", pageType: "ls365" }, init: async () => { await waitUntil((function() { return isExist("[name^='anchor_']"); })); }, answerHook: e => { let t = J(e.html).find(".QuestionsType").text(); t = t.replace(/\[|\]/g, "").trim(), e.type = typeConvert(t); let n = J(e.html).find(".my-work-answer>p").filter(((e, t) => t.innerText.includes("\u53c2\u8003\u7b54\u6848"))).map(((e, t) => J(t).find(".two").text())).get(); if (0 !== n.length) return e.answer = n[0].split("").map((t => e.options[t.charCodeAt(0) - 65])), e; } }, { type: "save", name: "\u826f\u5e08\u5728\u7ebf\u4f5c\u4e1a\u6536\u5f55", match: () => location.host.includes("ls365.net") && location.href.includes("Student/myhomework_after.aspx"), question: { html: "[name^='anchor_']", question: ".my-work-nav>.col-md-10", options: ".pold .phtml", type: ".QuestionsType", workType: "ls365", pageType: "ls365" }, init: async () => { await waitUntil((function() { return isExist("[name^='anchor_']"); })); }, answerHook: e => { let t = J(e.html).find(".my-work-nav>div:eq(0)>span:eq(0)").text(); t = t.replace(/\[|\]/g, "").trim(), e.type = typeConvert(t); let n = J(e.html).find(".my-work-answer>p").filter(((e, t) => t.innerText.includes("\u53c2\u8003\u7b54\u6848"))).map(((e, t) => J(t).find(".two").text())).get(); if (0 !== n.length) return e.answer = n[0].split("").map((t => e.options[t.charCodeAt(0) - 65])), e; } } ], qt = [ { type: "hook", name: "hook", match: location.host.includes("jijiaox.com"), main: e => { Me.mainClass = J("#app")[0].__vue__.$route.path; let t = new MutationObserver((async e => { Me.mainClass !== J("#app")[0].__vue__.$route.path && (Me.mainClass = J("#app")[0].__vue__.$route.path, vuePageChange(), t.disconnect()); })); J("#app").length >= 1 && t.observe(J("#app")[0], { subtree: !0, attributes: !0, childList: !0 }); } }, { type: "ask", name: "\u7ee7\u6559\u4e91\u8003\u8bd5\u7b54\u9898", tips: "", match: () => location.host.includes("jijiaox.com") && (location.href.includes("/mg/studentindexexam/") || !location.href.includes("examrec")), types: [ "0", "1", "3", "4" ], question: { html: ".question>div", question: ".topic-title", options: ".ml_2 label", type: ".question-box .tag", workType: "jijiaox", pageType: "jijiaox" }, init: async () => { await waitUntil((function() { return isExist(".question>div"); })); }, next: () => {}, ischecked: e => e.hasClass("is-checked"), questionHook: (e, t) => { const n = J(".page")[0].__vue__.$data.testInfo.studentPraxisList[t]; switch (e.options = n.options ? n.options : [], "string" == typeof e.options && (e.options = []), e.question = removeHtml(n.title), n.type) { case "single": e.type = "0"; break; case "muti": e.type = "1"; break; case "charge": e.type = "3"; break; case "text": e.type = "4"; break; default: console.log(n.type, "\u672a\u77e5\u7c7b\u578b"); } return e; }, setAnswer: e => "4" !== e.type || (J(e.html).find(".editor")[0].__vue__.editor.txt.html(e.answer[0]), !1), finish: e => {} }, { type: "save", name: "\u7ee7\u6559\u4e91\u8003\u8bd5\u6536\u5f55", match: () => location.host.includes("jijiaox.com") && location.href.includes("/mg/studentindexexam/examrec/"), question: { html: ".question>div", question: ".topic-title", options: ".el-radio-group label .label,.el-checkbox-group label .label", type: ".question-box .tag", workType: "jijiaox", pageType: "jijiaox" }, init: async () => { await waitUntil((function() { return isExist(".question>div"); })); }, answerHook: (e, t) => { const n = J(".page")[0].__vue__.$data.testInfo.studentPraxisList[t], a = n.answer; switch (e.options = n.options ? n.options : [], "string" == typeof e.options && (e.options = []), e.question = removeHtml(n.title), n.type) { case "single": e.type = "0"; break; case "muti": e.type = "1"; break; case "charge": e.type = "3", e.answer = "1" == a ? [ "\u6b63\u786e" ] : "-1" == a ? [ "\u9519\u8bef" ] : []; break; case "text": e.type = "4", e.answer = [ removeHtml(a) ]; break; default: console.log(n.type, "\u672a\u77e5\u7c7b\u578b"); } switch (e.type) { case "0": case "1": console.log("________", a), e.answer = "string" == typeof a ? a.split("").map((t => e.options[t.charCodeAt(0) - 65])) : a.map((t => (console.log(t), e.options[t.charCodeAt(0) - 65]))); } return console.log(e), e; } } ], Ct = [ { type: "hook", name: "hook", match: location.host.includes("wencaischool.net") && J("#app").length, main: e => { Me.mainClass = J("#app")[0].__vue__.$route.path; let t = new MutationObserver((async e => { Me.mainClass !== J("#app")[0].__vue__.$route.path && (Me.mainClass = J("#app")[0].__vue__.$route.path, vuePageChange(), t.disconnect()); })); J("#app").length >= 1 && t.observe(J("#app")[0], { subtree: !0, attributes: !0, childList: !0 }); const n = document.createElement("style"); n.type = "text/css", n.innerHTML = "* {\n font-size: 13px !important;\n }", document.head.appendChild(n); } }, { type: "ask", name: "\u67e0\u6aac\u6587\u624d\u8003\u8bd5\u7b54\u9898", tips: "\u6b64\u5e73\u53f0\u7b54\u9898\u95f4\u9694\u5c3d\u91cf3s\u5de6\u53f3\uff0c\u5426\u5219\u53ef\u80fd\u9009\u4e0d\u4e0a\u7b54\u6848", match: () => location.host.includes("wencaischool.net") && location.href.includes("/separation/exam/index.html"), types: [ "0", "1", "2", "3", "4", "5", "6", "7", "14" ], minDelay: 2e3, answerDelay: 1e3, question: { html: ".tmList", question: ".tmTitleTxt", options: ".perRad .opCont", type: ".question-box .tag", workType: "wencai", pageType: "wencai" }, init: async () => { await waitUntil((function() { return isExist(".tmList") && J("#onlineExamArea")[0].__vue__._data.itemsList.length > 0; })); }, next: () => {}, ischecked: e => e[0].checked, questionHook: e => { let t = J(e.html).find(".tmc.tm").attr("ttype"); return e.type = typeConvert({ 1: "\u586b\u7a7a\u9898", 2: "\u7b80\u7b54\u9898", 3: "\u5355\u9009\u9898", 4: "\u591a\u9009\u9898", 5: "\u9605\u8bfb\u7406\u89e3", 12: "\u5b8c\u5f62\u586b\u7a7a" }[t]), e.$options = J(e.html).find(".perRad input"), e; }, setAnswer: e => { switch (e.type) { case "4": return J(e.html).find("textarea").focus(), document.execCommand("selectAll"), document.execCommand("insertText", !1, e.answer[0]), !1; case "2": J(e.html).find(".ansbox.inputAnswer input").each((async (t, n) => { n.focus(), document.execCommand("selectAll"); let a = e.answer[t]; document.execCommand("insertText", !1, a), await sleep(1e3); })); } return !0; }, finish: e => {} }, { type: "save", name: "\u67e0\u6aac\u6587\u624d\u8003\u8bd5\u6536\u5f55", match: () => location.host.includes("wencaischool.net") && location.href.includes("/separation/exam/index.html"), question: { html: ".tmList", question: ".tmTitleTxt", options: ".perRad .opCont", type: ".question-box .tag", workType: "wencai", pageType: "wencai" }, init: async () => { await waitUntil((function() { return isExist(".tmList") && J("#onlineExamArea")[0].__vue__._data.itemsList.length > 0; })); }, answerHook: (e, t) => { const n = J("#onlineExamArea")[0].__vue__._data.itemsList[t]; e.question = removeHtml(n.itemName), e.options = n.optionNodes.map((e => removeHtml(e.optionContent))); e.type = typeConvert({ 1: "\u586b\u7a7a\u9898", 2: "\u7b80\u7b54\u9898", 3: "\u5355\u9009\u9898", 4: "\u591a\u9009\u9898", 5: "\u9605\u8bfb\u7406\u89e3", 12: "\u5b8c\u5f62\u586b\u7a7a" }[n.itemType]); let a = n.itemAnswer[0].optionContent; switch (e.type) { case "0": case "1": e.answer = a.split("").map((t => e.options[t.charCodeAt(0) - 65])); break; case "4": e.answer = removeHtml(a); break; case "2": e.answer = n.itemAnswer.map((e => removeHtml(e.optionContent))); } return e; } }, { type: "ask", name: "\u67e0\u6aac\u6587\u624d\u4f5c\u4e1a\u7b54\u9898", tips: "", match: () => location.host.includes("wencaischool.net") && location.href.includes("/exam/portal/exam.jsp"), types: [ "0", "1", "2", "3" ], question: { html: "table[id^='tblItem_'][islabel='0']", question: "table>tbody>tr:eq(0)>td:eq(0)", options: "table>tbody>tr:eq(1)>td:eq(0) table>tbody>tr>td>label", type: ".question-box .tag", workType: "wencai", pageType: "wencai" }, init: async () => { await waitUntil((function() { return isExist("table[id^='tblItem_'][islabel=0]"); })), J(".aah_wrapper>div").css("z-index", 9999); }, next: () => {}, ischecked: e => e[0].checked, questionHook: e => { let t = removeHtml(J(e.html).parent().parent().prevAll("tr").filter((function() { return J(this).find("table[islabel='1']").length > 0; })).first().html()); if (e.type = typeMatch(t), "8" == e.type && t.includes("\u9009\u62e9\u9898") && (e.type = "0"), "3" === e.type) e.options = []; return e; }, setAnswer: e => { if ("2" === e.type) { const t = J(e.html).find("table>tbody>tr:eq(0)>td:eq(0)>input"); t.length == e.answer.length && t.each((async (t, n) => { n.value = "", n.focus(), document.execCommand("selectAll"); let a = e.answer[t]; document.execCommand("insertText", !1, a), await sleep(1e3); })); } return !0; }, finish: e => {} }, { type: "save", name: "\u67e0\u6aac\u6587\u624d\u4f5c\u4e1a\u6536\u5f55", match: () => location.host.includes("wencaischool.net") && location.href.includes("/openlearning/exam/portal/view_answer.jsp"), question: { html: "tr[id^='trScore_']", question: "table>tbody>tr:eq(0)>td:eq(0)", options: "table>tbody>tr:eq(1)>td:eq(0) table>tbody>tr>td>label", type: ".question-box .tag", workType: "wencai", pageType: "wencai" }, init: async () => {}, answerHook: (e, t) => { const n = removeHtml(J(e.html).prevAll("tr:not([id])").first().html()); switch (e.type = typeMatch(n), "8" == e.type && n.includes("\u9009\u62e9\u9898") && (e.type = "0"), e.type) { case "0": case "1": case "3": const t = J(e.html).find("table>tbody>tr:eq(1)>td:eq(0)>div[style='color:darkred;font-size:10pt']").text().split("\u7b54\u6848\uff1a")[1].split("]")[0]; e.answer = t.split("").map((t => e.options[t.charCodeAt(0) - 65])), "3" == e.type && (e.options = [], e.answer = judgeAnswer(e.answer[0])); break; case "2": const n = J(e.html).find("table>tbody>tr:eq(0)>td:eq(0)").clone(); n.find("input").remove(), e.answer = n.find("nobr").map(((e, t) => { const n = removeHtml(J(t).html()); return /\[\u53c2\u8003\u7b54\u6848\uff1a(.+?)\]/.exec(n)[1]; })).get(), n.find("nobr").remove(), n.find("font").remove(), e.question = removeHtml(n.html()); } return e; } } ], Tt = [ { type: "save", name: "yxlearning\u6536\u5f55", match: () => location.host.includes("yxlearning.com") && location.href.includes("exam/start?myExamRecordId"), question: { html: ".subject>.mb20.sub", question: ".ls1.lh30.text-f666", options: "ul.options>li.cursor-p", type: ".question-box .tag", workType: "yxlearning", pageType: "yxlearning" }, init: async () => { if (await waitUntil((function() { return isExist(".mb20.sub"); })), !Me.yxques) return !1; }, answerHook: (e, t) => { const n = []; Me.yxques.questionStemRPS.forEach(((e, t) => { e.listPaperQuestionRP.forEach(((e, t) => { n.push(e); })); })); const a = n[t]; e.question = titleClean(removeHtml(a.questionName)); const s = a.type, o = []; switch (e.options = removeStartChar(a.paperOptionRPS.map((e => removeHtml(e.context)))), a.paperOptionRPS.forEach(((t, n) => { 1 == t.standardAnswer && o.push(e.options[n]); })), e.answer = o, s) { case 1: e.type = "3", e.options = [], e.answer = judgeAnswer(e.answer[0]); break; case 2: e.type = "0"; break; case 3: e.type = "1"; } return e; } }, { type: "ask", name: "\u65e5\u7167\u4e13\u4e1a\u6280\u672f\u4eba\u5458\u7b54\u9898", tips: "", match: () => location.host.includes("yxlearning.com") && location.href.includes("exam/start?myExamRecordId"), types: [ "0", "1", "3" ], question: { html: ".mb20.sub", question: ".ls1.lh30.text-f666", options: ".cursor-p", type: ".question-box .tag", workType: "yxlearning", pageType: "yxlearning" }, init: async () => { await waitUntil((function() { return isExist(".mb20.sub"); })); }, next: () => {}, ischecked: e => e.hasClass("active"), questionHook: e => { if (e.options = removeStartChar(J(e.html).find("ul>li").map(((e, t) => removeHtml(J(t).html()))).get()), e.$options = J(e.html).find("ul>li"), e.type = typeConvert(J(e.html).parent().prevAll(".title").first().find("[du-html='questionStemName']").text().trim()), "3" === e.type) e.options = [], e.$options = J(e.html).find("ul>li"); return e; }, setAnswer: e => !0, finish: e => {} } ], At = [ { type: "ask", name: "\u9ea6\u80fd\u7f51\u7b54\u9898", tips: "", match: () => location.href.includes("lms/web/onlineexam/exambegin"), types: [ "0", "1", "3" ], question: { html: "#exam_form>.sdiv", question: ".eptimu_name", options: ".ansdiv > .optiondiv", type: ".eptimu_title", workType: "cjnep", pageType: "cjnep" }, init: async () => { await waitUntil((function() { return isExist(".sdiv"); })); }, toquestion: e => { J(`.controldiv > a:eq(${e})`), J(`.epcl_circle:eq(${e})`)[0].click(); }, ischecked: e => e.parent().parent().hasClass("is-checked"), questionHook: e => { if (e.question = e.question.replace(/^[0-9]+\u3001/, "").trim(), e.question = titleClean(e.question), e.options = removeStartChar(e.options), e.type = typeMatch(J(e.html).find(".eptimu_title").text().trim()), e.$options = J(e.html).find(".ansdiv input"), "3" === e.type) e.options = []; return e; }, setAnswer: e => { switch (e.type) { case "3": let t = e.answer; return J(e.html).find(".ansdiv input").each(((e, n) => { isTrue(t) && "1" == J(n).val() && J(n).click(), isFalse(t) && "0" == J(n).val() && J(n).click(); })), !1; case "2": case "4": case "5": case "6": const n = J(e.html).find(".ansdiv textarea"), a = e.answer.join(";"); n.val(a), n.trigger("input"), n.trigger("keydown"), n.trigger("change"), n.trigger("blur"), n.trigger("focus"); const s = n[0]; if (s) { [ "input", "change", "blur", "focus" ].forEach((e => { const t = new Event(e, { bubbles: !0 }); s.dispatchEvent(t); })); } return !1; } return !0; }, finish: e => {} }, { type: "save", name: "\u9ea6\u80fd\u7f51\u7b54\u9898\u6536\u5f55", match: () => location.href.includes("lms/web/exam/examshow"), question: { html: "#exam_form>.sdiv", question: ".eptimu_name", options: ".ansdiv > .optiondiv", type: ".eptimu_title", workType: "cjnep", pageType: "cjnep" }, init: async () => { await waitUntil((function() { return isExist(".sdiv"); })); }, answerHook: e => { switch (e.type = typeMatch(J(e.html).find(".eptimu_title").text().trim()), e.question = e.question.replace(/^[0-9]+\u3001/, "").trim(), e.question = titleClean(e.question), e.options = removeStartChar(e.$options.map(((e, t) => { let n = J(t).clone(); return J(n).find("img").remove(), removeHtml(J(n).html()).trim(); })).get()), e.type) { case "0": case "1": e.answer = e.$options.map(((t, n) => { var a; return (null == (a = J(n).find("img").attr("src")) ? void 0 : a.includes("exam-yes")) && e.options[t]; })).get().filter((e => void 0 !== e)); break; case "3": e.answer = e.$options.map(((t, n) => { var a; return (null == (a = J(n).find("img").attr("src")) ? void 0 : a.includes("exam-yes")) && e.options[t]; })).get().filter((e => void 0 !== e)), e.answer = judgeAnswer(e.answer), e.options = []; break; case "4": e.options = []; let t = removeHtml(J(e.html).find(".eptimu_answer.ansdiv").html()).trim(); t.includes("\u6b63\u786e\u7b54\u6848\uff1a") ? e.answer = t.split("\u6b63\u786e\u7b54\u6848\uff1a")[1].trim() : e.answer = []; } return e; } } ], Ht = [ { type: "ask", name: "\u9ea6\u80fd\u7f51\u7b54\u9898", tips: "", match: () => location.host.includes("mynep.com") && location.href.includes("my-exam/exambegin"), types: [ "0", "1" ], question: { html: ".et_test", question: ".et_title", options: "ul>.et_answer>label", type: ".question-box .tag", workType: "mynep", pageType: "mynep" }, init: async () => {}, toquestion: e => { Me.select_num(e + 1); }, next: () => {}, ischecked: e => e.parent().find("input").prop("checked"), questionHook: e => { e.question = e.question.replace(/\u7b2c\d+\u9898\uff1a/, ""), e.options = removeStartChar(e.options); switch (J(e.html).find('input[id^="question-num-isdone"]').attr("question_num_type_id")) { case "1": e.type = "0"; break; case "2": e.type = "1"; } return e; }, setAnswer: e => !0, finish: e => {} }, { type: "save", name: "\u9ea6\u80fd\u7f51\u6536\u5f55", match: () => location.host.includes("mynep.com") && location.href.includes("web/my-exam/examshow"), question: { html: ".et_test", question: ".et_title", options: "ul>.et_answer>label", type: ".question-box .tag", workType: "mynep", pageType: "mynep" }, init: async () => {}, answerHook: e => { const t = J(e.html).find(".et_title").clone(); t.find(".exam-btn").remove(), t.find("div").remove(), e.question = removeHtml(t.html()).replace(/\u7b2c\d+\u9898\uff1a/, "").trim(), e.options = []; const n = []; J(e.html).find(".et_answer>.et_answer>.et_answer>label").map(((t, a) => { e.options.push(removeHtml(J(a).html()).trim()), J(a).parent().find("input").prop("checked") && n.push(t); })).get(), e.options = removeStartChar(e.options), e.answer = n.map((t => e.options[t])); switch (J(e.html).find('input[id^="question-num-isdone"]').attr("question_num_type_id")) { case "1": e.type = "0"; break; case "2": e.type = "1"; break; default: return !1; } return e; } } ], Et = [ { type: "hook", name: "hook", match: location.host.includes("91huayi.com"), main: e => { const getHash = () => J(".dd_01").attr("questionid"); Me.mainClass = getHash(); let t = new MutationObserver((async e => { Me.mainClass !== getHash() && (Me.mainClass = getHash(), "homework-detail-container" === Me.mainClass && await waitUntil((function() { return 0 === J(".el-loading-mask").length; })), vuePageChange$1(), t.disconnect()); })); J(".box").length >= 1 && t.observe(J(".box")[0], { subtree: !0, attributes: !0, childList: !0 }); } }, { type: "ask", name: "\u534e\u533b\u7f51\u7b54\u9898", tips: "", match: () => location.host.includes("91huayi.com") && location.href.includes("/ExamInterface/ComputerExamIndex"), types: [ "0", "1" ], question: { html: "#exampage", question: ".dd_01", options: ".dd_02", type: ".big_type", workType: "huayi", pageType: "huayi" }, init: async () => {}, next: () => { var e; null == (e = J("#btnNext")) || e.click(); }, ischecked: e => e.prop("checked"), questionHook: e => { const t = J(e.html).find(".dd_01").clone(); return t.find(".dd_01_red").remove(), e.question = removeHtml(t.html()), e.options = removeStartChar(e.options), e.type = typeMatch(J(e.html).find(".big_type").text()), e.$options = J(e.html).find("dd.q-content input"), e; }, setAnswer: e => { switch (console.log(e), e.type) { case "0": case "1": return e.ques.$options.each(((t, n) => { if (e.answer.includes(t)) { if (e.rule.ischecked && e.rule.ischecked(J(n))) return; n.click(); } else e.rule.ischecked && e.rule.ischecked(J(n)) && n.click(); })), !1; } return !0; }, finish: e => {} }, { type: "ask", name: "\u534e\u533b\u7f51\u8003\u8bd5", tips: "", match: () => location.host.includes("91huayi.com") && location.href.includes("/pages/exam.aspx?cwid="), types: [ "0" ], question: { html: ".test>table", question: "thead", options: "tbody>tr>td>label", type: ".big_type", workType: "huayi", pageType: "huayi" }, init: async () => {}, next: () => { var e; null == (e = J("#btnNext")) || e.click(); }, ischecked: e => e.prop("checked"), questionHook: e => (e.question = titleClean(e.question), e.question = e.question.replace(/^\d+\u3001/, ""), e.options = removeStartChar(e.options), 0 !== e.options.length && (e.type = "0"), e), setAnswer: e => !0, finish: e => {} } ], St = [ { type: "ask", name: "\u4e91\u5357\u5f00\u653e\u5927\u5b66\u7b54\u9898", tips: "", match: () => location.href.includes("hw/student/studentStartHomework.action") && location.host.includes("teach.ynou.edu.cn"), types: [ "0", "1", "3" ], question: { html: ".e_juan02biaoti", question: ".qcontent > p:first", options: ".signDefault>.label", type: ".question-box .tag", workType: "ynou", pageType: "ynou" }, init: async () => { await waitUntil((function() { return 0 !== J(".e_juan02biaoti").length; })), J("body").css("text-align", "left"); }, next: () => {}, ischecked: e => (e.find("input").is(":checked"), e.find("input").is(":checked")), questionHook: e => { e.options = []; const t = J(e.html).find(".e_juan02daan").clone(); t.find(".clear").nextAll().remove(); const n = removeHtml(t.html()), a = n.split(/[A][\u3001\.\uff0e]/)[0].trim(); null !== a && (e.question = a), e.question = a, e.question = a; const s = n.match(/(?:[A-G](?:[\u3001.]|\s)?\s?.*?)(?=\s*[A-G](?:[\u3001.]|\s)?|\s*$)/gs); if (null !== s) { const t = removeOptionsStartChar(s.map((e => e.trim()))); !1 !== t && (e.options = t); } const o = J(e.html).find(".signDefault").attr("answer_control"); return "radio" === o && e.options.length > 1 && (e.type = "0"), "checkbox" === o && e.options.length > 1 && (e.type = "1"), "radio" === o && 0 === e.options.length && (e.type = "3"), e; }, setAnswer: e => { if (console.log(e), "3" === e.type) { let t = e.answer; return e.ques.$options.each(((e, n) => { isTrue(t) && isTrue(removeHtml(J(n).html())) && J(n).click(), isFalse(t) && isFalse(removeHtml(J(n).html())) && J(n).click(); })), !1; } return !0; }, finish: e => {} }, { type: "save", name: "\u6536\u5f55", match: () => location.href.includes("/hw/student/studentViewHomework.action") && location.host.includes("teach.ynou.edu.cn"), question: { html: ".e_juan02biaoti", question: ".qcontent > p:first", options: ".signDefault>.label", type: ".question-box .tag", workType: "ynou", pageType: "ynou" }, init: async () => { await waitUntil((function() { return 0 !== J(".e_juan02biaoti").length; })), J("body").css("text-align", "left"); }, answerHook: e => { e.options = []; const t = J(e.html).find(".e_juan02daan").clone(); t.find(".clear").nextAll().remove(); const n = removeHtml(t.html()), a = n.split(/[A][\u3001\.\uff0e]/)[0].trim(); if (null === a) return null; e.question = a; const s = n.match(/(?:[A-G](?:[\u3001.]|\s)?\s?.*?)(?=\s*[A-G](?:[\u3001.]|\s)?|\s*$)/gs); if (null !== s) { const t = removeOptionsStartChar(s.map((e => e.trim()))); if (0 == t) return null; e.options = t; } const o = J(e.html).find(".signDefault").attr("answer_control"); "radio" === o && e.options.length > 1 && (e.type = "0"), "checkbox" === o && e.options.length > 1 && (e.type = "1"), "radio" === o && 0 === e.options.length && (e.type = "3"); const i = J(e.html).find(".right_answer>font").text(); switch (e.type) { case "0": case "1": e.answer = i.split("").map((t => e.options[t.charCodeAt(0) - 65])); break; case "3": e.answer = isTrue(i) ? "\u6b63\u786e" : isFalse(i) ? "\u9519\u8bef" : ""; } return e; } } ], $t = [ { type: "hook", name: "hook", match: location.host.includes("21tb.com"), main: e => { const getHash = () => J("#examIngEmsRightPanel").attr("class"); Me.mainClass = getHash(); let t = new MutationObserver((async e => { Me.mainClass !== getHash() && (Me.mainClass = getHash(), vuePageChange$1(), t.disconnect()); })); J("#examIngEmsRightPanel").length >= 1 && t.observe(J("#examIngEmsRightPanel")[0], { subtree: !0, attributes: !0, childList: !0 }); } }, { type: "ask", name: "21tb\u7b54\u9898", tips: "", match: () => location.host.includes("21tb.com") && location.href.includes("exercise/newExercise.fullExerciseTemp.do"), types: [ "0", "1", "3" ], question: { html: ".paper-content > .question-panel-middle", question: ".question-stem>.name", options: "ul.question-options>li>label", type: ".question-box .tag", workType: "21tb", pageType: "21tb" }, init: async () => { if (J(".view-paper-content").length > 0) return !1; }, next: () => {}, ischecked: e => e.parent().find("input").prop("checked"), questionHook: e => { e.question = titleClean(e.question), e.question = e.question.replace(/\uff08\d+\u5206\uff09$/, "").trim(), e.options = e.options.map((e => e.replace(/^[A-Z]\s*\.\s*/, ""))), e.options = removeStartChar(e.options); const t = J(e.html).attr("class") || ""; switch (console.log(t), !0) { case t.includes("SINGLE"): e.type = "0"; break; case t.includes("MULTIPLE"): e.type = "1"; break; case t.includes("JUDGMENT"): e.type = "3", e.options = []; } return e; }, setAnswer: e => !0, finish: e => {} }, { type: "save", name: "21tb\u6536\u5f55", match: () => location.host.includes("21tb.com") && location.href.includes("exercise/newExercise.fullExerciseTemp.do"), question: { html: "form > .question-panel-middle", question: ".question-stem>.name", options: "ul.question-options>li>label", type: ".question-box .tag", workType: "21tb", pageType: "21tb" }, init: async () => { if (console.log(J(".view-paper-content").length), 0 == J(".view-paper-content").length) return !1; }, answerHook: e => { e.question = titleClean(e.question), e.question = e.question.replace(/\uff08\d+\u5206\uff09$/, "").trim(), e.options = e.options.map((e => e.replace(/^[A-Z]\s*\.\s*/, ""))), e.options = removeStartChar(e.options); const t = J(e.html).attr("questtype") || "", n = J(e.html).find(".true-answer").text().split("\uff1a")[1].trim(); switch (!0) { case t.includes("SINGLE"): e.type = "0", e.answer = n.split(", ").map((t => e.options[t.charCodeAt(0) - 65])); break; case t.includes("MULTIPLE"): e.type = "1", e.answer = n.split(", ").map((t => e.options[t.charCodeAt(0) - 65])); break; case t.includes("JUDGMENT"): e.type = "3", e.options = [], e.answer = judgeAnswer(n); } return console.log(e), e; } }, { type: "ask", name: "21tb\u8003\u8bd5\u7b54\u9898", tips: "", match: () => location.host.includes("21tb.com") && location.href.includes("ems/html/examCenter/fullExamTemp.do"), types: [ "0", "1", "3" ], question: { html: ".paper-content > .question-panel-middle", question: ".question-stem", options: "ul.question-options>li>label", type: ".question-box .tag", workType: "21tb", pageType: "21tb" }, init: async () => { if (J(".view-paper-content").length > 0) return !1; }, next: () => {}, ischecked: e => e.parent().find("input").prop("checked"), questionHook: e => { const t = J(e.html).find(".question-stem").clone(); t.find(".num").remove(), e.question = titleClean(removeHtml(t.html())).replace(/^\./, ""), e.question = e.question.replace(/\uff08\d+\u5206\uff09$/, "").trim(), e.options = e.options.map((e => e.replace(/^[A-Z]\s*\.\s*/, ""))), e.options = removeStartChar(e.options); const n = J(e.html).attr("class") || ""; switch (console.log(n), !0) { case n.includes("SINGLE"): e.type = "0"; break; case n.includes("MULTIPLE"): e.type = "1"; break; case n.includes("JUDGMENT"): e.type = "3", e.options = []; } return e; }, setAnswer: e => !0, finish: e => {} } ], jt = [ { type: "hook", name: "hook", match: location.host.includes("168wangxiao.com"), main: e => { const getHash = () => (J(".question-submit-btn").text(), J(".question-submit-btn").text() || J(".listTit>span").text()); Me.mainClass = getHash(); let t = new MutationObserver((async e => { Me.mainClass !== getHash() && (Me.mainClass = getHash(), "homework-detail-container" === Me.mainClass && await waitUntil((function() { return 0 === J(".el-loading-mask").length; })), vuePageChange$1(), t.disconnect()); })); J("#app").length >= 1 && (J("#app")[0], t.observe(J("#app")[0], { subtree: !0, attributes: !0, childList: !0 })); } }, { type: "ask", name: "168\u7f51\u6821\u7b54\u9898", tips: "168\u7f51\u6821\u76ee\u524d\u652f\u6301\u9009\u62e9\u3001\u5224\u65ad\u3001\u586b\u7a7a\u3001\u7b80\u7b54\uff0c\u5176\u4ed6\u9898\u578b\u8bf7\u53cd\u9988\u7ed9\u4f5c\u8005", match: () => location.host.includes("168wangxiao.com") && location.href.includes("/web/learningCenter/details/"), types: [ "0", "1", "2", "3", "4" ], question: { html: ".question-item-container", question: ".title-content", options: ".options .opt-content", type: ".type", workType: "168wx", pageType: "168wx" }, init: async () => (await waitUntil((function() { return 0 !== J(".question-item-container").length; })), !J(".question-submit-btn").text().includes("\u91cd\u65b0\u7b54\u9898")), next: () => {}, ischecked: e => e.parent().parent().hasClass("is-checked"), questionHook: e => { const t = J(e.html).find(".type").text(); return e.type = typeMatch(t), e; }, setAnswer: e => "4" !== e.type || (J(e.html).find(".ql-editor"), J(e.html).find(".ql-editor")[0].innerHTML = e.answer[0], !1), finish: e => {} }, { type: "save", name: "168\u7f51\u6821\u7b54\u9898", match: () => location.host.includes("168wangxiao.com") && location.href.includes("/web/learningCenter/details/"), question: { html: ".question-item-container", question: ".title-content", options: ".options .opt-content", type: ".type", workType: "168wx", pageType: "168wx" }, init: async () => (await waitUntil((function() { return 0 !== J(".question-item-container").length; })), J(".question-submit-btn").text().includes("\u91cd\u65b0\u7b54\u9898")), answerHook: e => { const t = J(e.html).find(".type").text(); switch (e.type = typeMatch(t), e.answer = J(e.html).find(".options .opt-content.is-correct-answer").map(((e, t) => removeHtml(J(t).html()))).get(), e.type) { case "2": e.options = [], e.answer = J(e.html).find(".analyze-container>.answer>.text-container>p").map(((e, t) => removeHtml(J(t).html()))).get(); break; case "3": e.options = [], e.answer = [ judgeAnswer(e.answer[0]) ]; break; case "4": e.options = [], e.answer = J(e.html).find(".analyze-container>.answer>.text-container").map(((e, t) => removeHtml(J(t).html()))).get(); } return e; } }, { type: "ask", name: "168\u7f51\u6821\u8003\u8bd5", tips: "", match: () => location.host.includes("168wangxiao.com") && location.href.includes("/web/examination/answer"), types: [ "0", "1", "2", "3", "4" ], question: { html: ".Answer-area", question: ".listTit>span", options: ".el-checkbox-group>label", type: ".type", workType: "168wx", pageType: "168wx" }, init: async () => { await waitUntil((function() { return 0 !== J(".Answer-area").length; })); }, next: () => { J('button:contains("\u4e0b\u4e00\u9898")').click(); }, ischecked: e => e.parent().parent().hasClass("is-checked"), questionHook: e => (e.options = removeOptionsStartChar(e.options), e.type = typeMatch(J(".tit-type").text()), e), setAnswer: e => "4" !== e.type || (J(e.html).find(".ql-editor"), J(e.html).find(".ql-editor")[0].innerHTML = e.answer[0], !1), finish: e => {} } ], zt = [ { type: "ask", name: "\u4e91\u73ed\u8bfe\u7b54\u9898", tips: "", match: () => "www.mosoteach.cn" === location.host && location.href.includes("/web/index.php?c=interaction_quiz&m=reply"), types: [ "0", "1" ], question: { html: ".topic-item", question: ".t-subject", options: ".t-option.t-item label,.t-judge.t-item label", type: ".t-type", workType: "mosoteach", pageType: "mosoteach" }, init: async () => { await waitUntil((function() { var e; return 0 !== (null == (e = J("#app")[0]) ? void 0 : e.__vue__.$data.topics.length); })); }, next: () => {}, ischecked: e => e.hasClass("is-checked"), questionHook: (e, t) => { const n = J("#app")[0].__vue__.$data.topics[t]; e.question = titleClean(removeHtml(n.subject)); const a = n.options; switch (a.sort(((e, t) => e.item_no - t.item_no)), e.options = a.map((e => removeHtml(e.content))), n.type) { case "SINGLE": e.type = "0"; break; case "MULTI": e.type = "1"; break; case "TF": e.type = "3"; } return e; }, setAnswer: e => !0, finish: e => {} }, { type: "save", name: "\u4e91\u73ed\u8bfe\u6536\u5f55", match: () => "www.mosoteach.cn" === location.host && location.href.includes("/web/index.php?c=interaction_quiz&m=person_quiz_result"), question: { html: ".topic-list > .topic-item", question: ".topic-title", options: ".el-radio-group label .label,.el-checkbox-group label .label", type: ".question-box .tag", workType: "mosoteach", pageType: "mosoteach" }, init: async () => { await waitUntil((function() { var e; return 0 !== (null == (e = J("#app")[0]) ? void 0 : e.__vue__.$data.topics.length); })); }, answerHook: (e, t) => { const n = J("#app")[0].__vue__.$data.topics[t]; e.question = titleClean(removeHtml(n.subject)); const a = n.options; switch (a.sort(((e, t) => e.item_no - t.item_no)), e.options = a.map((e => removeHtml(e.content))), e.answer = n.answers.map((t => e.options[t])), n.type) { case "SINGLE": e.type = "0"; break; case "MULTI": e.type = "1"; break; case "TF": e.type = "3", e.answer = "F" === n.tfAnswer ? "\u9519\u8bef" : "T" === n.tfAnswer ? "\u6b63\u786e" : ""; break; default: return null; } return e; } } ], It = [ { type: "hook", name: "hook", match: "www.learnin.com.cn" === location.host, main: e => { const getHash = () => { try { return J(".page-student-course-topic-do-container")[0].__vue__.$data.topic.studentTopic.id; } catch (e) { return ""; } }; Me.mainClass = getHash(); let t = new MutationObserver((async e => { Me.mainClass !== getHash() && (Me.mainClass = getHash(), vuePageChange$1(), t.disconnect()); })); J("#app").length >= 1 && t.observe(J("#app")[0], { subtree: !0, attributes: !0, childList: !0 }); } }, { type: "save", name: "learnin\u6536\u5f55", match: () => "www.learnin.com.cn" === location.host && location.href.includes("/user/#/user/student/course/") && 0 == J("button:contains('\u63d0\u4ea4\u4f5c\u4e1a')").length, question: { html: ".store-question-item-container", question: ".question-title", options: ".question-info>.question-option-list>.option-item", type: ".item-question-header>.header-left", workType: "learnin", pageType: "learnin" }, init: async () => { await waitUntil((function() { return isExist(".store-question-item-container"); })); }, answerHook: (e, t) => { const n = J(".page-student-course-topic-do-container")[0].__vue__.$data.topic.topicItems[0].childList, a = n[t]; switch (n[t], a.questionTypeCode) { case "judgment": e.type = "3"; break; case "single": e.type = "0"; break; case "multiple": e.type = "1"; break; default: return e; } e.question = titleClean(removeHtml(a.questionTitle)); let s = [], o = []; return a.optionList.forEach((e => { const t = removeHtml(e.content); e.isAnswer && o.push(t), s.push(t); })), e.options = s, e.answer = o, "3" == e.type && (e.options = [], e.answer = judgeAnswer(o[0])), e; } }, { type: "ask", name: "learnin\u7b54\u9898", tips: "", match: () => "www.learnin.com.cn" === location.host && location.href.includes("/user/#/user/student/course/") && 1 == J("button:contains('\u63d0\u4ea4\u4f5c\u4e1a')").length, types: [ "0", "1", "3" ], question: { html: ".store-question-item-container", question: ".question-title", options: ".question-info>.question-option-list>.option-item>.option-index", type: ".item-question-header>.header-left", workType: "learnin", pageType: "learnin" }, init: async () => { await waitUntil((function() { return isExist(".store-question-item-container"); })); }, next: () => {}, ischecked: e => e.hasClass("active"), questionHook: (e, t) => { const n = J(".page-student-course-topic-do-container")[0].__vue__.$data.topic.topicItems[0].childList, a = n[t]; switch (n[t], a.questionTypeCode) { case "judgment": e.type = "3"; break; case "single": e.type = "0"; break; case "multiple": e.type = "1"; break; default: return e; } e.question = titleClean(removeHtml(a.questionTitle)); let s = []; return a.optionList.forEach((e => { const t = removeHtml(e.content); s.push(t); })), e.options = s, "3" == e.type && (e.options = []), e; }, setAnswer: e => !0, finish: e => {} } ], Lt = [ { type: "hook", name: "hook", match: location.host.includes("ouchn.edu.cn"), main: e => { const getHash = () => getUrl(); Me.mainClass = getHash(); let t = new MutationObserver((async e => { Me.mainClass !== getHash() && (Me.mainClass = getHash(), vuePageChange$1(), t.disconnect()); })); J("#app").length >= 1 && t.observe(J("#app")[0], { subtree: !0, attributes: !0, childList: !0 }); } }, { type: "ask", name: "\u7535\u5927\u7b54\u9898", tips: "", match: () => location.host.includes("ouchn.edu.cn") && location.href.includes("learningPlatform/#/myExamDetails/examQuestion"), types: [ "0" ], question: { html: ".everyQuest", question: ".topicTitle", options: ".optionList .topicTitle", type: ".question-box .tag", workType: "ouchn", pageType: "ouchn" }, init: async () => { await waitUntil((function() { return isExist(".everyQuest"); })); }, next: () => {}, ischecked: e => e.parent().parent().hasClass("is-checked"), questionHook: e => (e.type = "0", e), setAnswer: e => !0, finish: e => {} }, { type: "save", name: "\u7535\u5927\u6536\u5f55", match: () => location.host.includes("ouchn.edu.cn") && location.href.includes("learningPlatform/#/myExamDetails/testPaper"), question: { html: ".everyQuest", question: ".topicTitle", options: ".optionList .topicTitle", type: ".question-box .tag", workType: "ouchn", pageType: "ouchn" }, init: async () => { await waitUntil((function() { return isExist(".everyQuest"); })); }, answerHook: e => { const t = J(e.html).find('.rightAndWrong>span:contains("\u6b63\u786e\u7b54\u6848")').text().replace("\u6b63\u786e\u7b54\u6848\uff1a", "").trim(), n = e.options; let a = []; return t.split("").forEach((e => { a.push(n[e.charCodeAt(0) - 65]); })), 1 == a.length ? e.type = "0" : e.type = "1", e.answer = a, e; } } ], Ot = [ { type: "hook", name: "mooc", match: "www.icourse163.org" === location.host, main: e => { Me.mainClass = J("#courseLearn-inner-box > div:eq(0)").attr("class"); let t = new MutationObserver((async e => { Me.mainClass !== J("#courseLearn-inner-box > div:eq(0)").attr("class") && (Me.mainClass = J("#courseLearn-inner-box > div:eq(0)").attr("class"), "homework-detail-container" === Me.mainClass && await waitUntil((function() { return 0 === J(".el-loading-mask").length; })), vuePageChange$1(), t.disconnect()); })); J("#courseLearn-inner-box").length >= 1 && t.observe(J("#courseLearn-inner-box")[0], { subtree: !0, attributes: !0, childList: !0 }); } }, { type: "ask", name: "mooc\u7b54\u9898", tips: "\u4e2d\u56fd\u5927\u5b66MOOC\u9650\u5236\u7b54\u9898\u901f\u5ea6\uff0c\u8bf7\u4e0d\u8981\u8fc7\u5feb", match: () => "www.icourse163.org" === location.host && location.href.includes("#/learn/quiz?id="), types: [ "0", "1", "2", "3" ], question: { html: ".u-questionItem", question: ".f-richEditorText", options: "ul.choices>li>input", type: ".qaCate.j-qacate.f-fl", workType: "mooc", pageType: "mooc" }, init: async () => { await waitUntil((function() { return J(".u-questionItem").length, 0 !== J(".u-questionItem").length; })); }, next: () => {}, ischecked: e => e.parent().parent().hasClass("is-checked"), questionHook: (e, t) => { J(e.html).find(".qaCate.j-qacate.f-fl > span:eq(0)").attr("class"); const n = Me.learnUtilQuestionList[t]; switch (e.question = removeHtml(n.title), e.options = n.options.map((e => removeHtml(e.content))), n.type) { case 1: e.type = "0"; break; case 2: e.type = "1"; break; case 3: e.type = "2"; break; case 4: e.type = "3", e.options = []; break; default: n.type, e.type = "8"; } return e; }, setAnswer: e => { switch (e.type) { case "2": return J(e.html).find(".u-baseinputui>textarea").each(((t, n) => { J(n).val(e.answer[t]), J(n).focus(), J(n).blur(); })), !1; case "3": let t = e.answer; J(e.html).find("ul.choices>li").each(((e, n) => { isTrue(t) && J(n).find(".u-icon-correct").length > 0 && J(n).find("input").click(), isFalse(t) && J(n).find(".u-icon-wrong").length > 0 && J(n).find("input").click(); })); } return !0; }, finish: e => {} }, { type: "save", name: "\u4e2d\u56fd\u5927\u5b66mooc\u6536\u5f55", match: () => "www.icourse163.org" === location.host && location.href.includes("#/learn/quizscore?id="), question: { html: ".u-questionItem", question: ".f-richEditorText", options: "ul.choices li>input", type: ".qaCate.j-qacate.f-fl", workType: "mooc", pageType: "mooc" }, init: async () => { await waitUntil((function() { return J(".u-questionItem").length, 0 !== J(".u-questionItem").length; })); }, answerHook: (e, t) => { const n = Me.learnUtilQuestionList[t]; e.question = removeHtml(n.title); let a = [], s = []; switch (n.options.forEach((e => { a.push(removeHtml(e.content)), e.answer && s.push(removeHtml(e.content)); })), e.options = a, e.answer = s, n.type) { case 1: e.type = "0"; break; case 2: e.type = "1"; break; case 3: e.type = "2", e.answer = [ n.stdAnswer ]; break; case 4: e.type = "3", e.options = []; break; default: n.type; } return e; } } ], Mt = [ { type: "ask", name: "\u897f\u8d22\u5728\u7ebf\u7b54\u9898", tips: "", match: () => (location.host.includes("swufe-online.com") || location.host.includes("webtrn.cn")) && (location.href.includes("learnspace/course/test/coursewareTest_intoRedoTestPage.action") || location.href.includes("learnspace/learn/learn/templateeight/index.action") || location.href.includes("learnspace/course/test/coursewareTest_intoTestPage.action")), types: [ "0", "1", "3" ], question: { html: ".bank_test > .test_item", question: ".test_item_tit", options: ".test_item_theme>ul>li>label, .test_item_theme>label", type: ".question-box .tag", workType: "swufe", pageType: "swufe" }, init: async () => { await waitUntil((function() { return isExist(".bank_test > .test_item"); })); }, next: () => {}, ischecked: e => e.parent().parent().hasClass("is-checked"), questionHook: e => { const t = J(e.html).find(".test_item_tit").clone(); if (t.find(".tipNodo").remove(), e.question = removeHtml(t.html()), e.question = titleClean(e.question), e.type = typeMatch(J(e.html).prevAll(".test_item_type").first().text()), e.question = e.question.replace(/^[.*?]\s*/, "").replace(/^\u3010.*?\u3011\s*/, "").replace(/\s*\uff08\d+\.\d+\u5206\uff09$/, "").replace(/^\d+\./, "").trim().replace(/^\d+\uff0e/, "").trim().replace(/^\d+ ./, "").trim(), e.options = removeStartChar(e.options), "3" === e.type) e.options = []; return e; }, setAnswer: e => !0, finish: e => {} }, { type: "save", name: "\u897f\u8d22\u5728\u7ebf\u9636\u6bb5\u6d4b\u9a8c\u6536\u5f55", match: () => (location.host.includes("swufe-online.com") || location.host.includes("webtrn.cn")) && (location.href.includes("learnspace/course/test/coursewareTest_intoTestAnswerPage.action") || location.href.includes("learnspace/learn/learn/templateeight/index.action")), question: { html: ".bank_test > .test_item", question: ".test_item_tit", options: ".test_item_theme>ul>li>.zdh_op_con", type: ".question-box .tag", workType: "swufe", pageType: "swufe" }, init: async () => {}, answerHook: e => { e.type = typeMatch(J(e.html).prevAll(".test_item_type").first().text()), e.question = e.question.replace(/^[.*?]\s*/, "").replace(/^\u3010.*?\u3011\s*/, "").replace(/\s*\uff08\d+\.\d+\u5206\uff09$/, "").replace(/^\d+\./, "").trim().replace(/^\d+\uff0e/, "").trim().replace(/^\d+ ./, "").trim(), e.options = removeStartChar(e.options); const t = J(e.html).find(".test_item_key_tit").text().replace("\u53c2\u8003\u7b54\u6848\uff1a", "").trim(); switch (e.type) { case "0": case "1": e.answer = t.split("").map((t => { let n = t.charCodeAt() - 65; return e.options[n]; })); break; case "3": e.answer = judgeAnswer(t), e.options = []; } return e; } }, { type: "ask", name: "\u897f\u8d22\u5728\u7ebf\u7efc\u5408\u7ec3\u4e60\u7b54\u9898", tips: "\u897f\u8d22\u5728\u7ebf\u6536\u5f55\u8bf7\u91cd\u65b0\u70b9\u51fb\u9898\u578b\u5207\u6362\u89e6\u53d1", match: () => location.host.includes("swufe-online.com") && location.href.includes("/learnspace/userDefine/t_test.jsp?courseId="), types: [ "0", "1", "3" ], question: { html: ".timu_title", question: ".timu_title", options: ".test_item_theme>ul>li", type: ".question-box .tag", workType: "swufe", pageType: "swufe" }, init: async () => { if (await waitUntil((function() { return isExist(".timu_title"); })), !document.body.innerHTML.includes("\u63d0\u4ea4\u7b54\u9898\u540e\u663e\u793a")) return !1; J(".layui-tab-title>li").on("click", (function() { vuePageChange$1(); })); }, next: () => {}, ischecked: e => e.parent().parent().hasClass("is-checked"), questionHook: (e, t) => { const n = J(e.html).attr("id"); return e.type = typeMatch(J(".layui-this").text()), e.question = removeHtml(J(e.html).html()), e.options = J(`#${n}`).map((function() { let t = [], n = J(this).next(), a = []; for (;n.length && n.hasClass("question-item-opt"); ) a.push(removeHtml(n[0].outerHTML)), t.push(n), n = n.next(); return e.$options = J(t.map((e => e[0]))).find("label"), a; })).get(), e.options = removeStartChar(e.options), e; }, setAnswer: e => !0, finish: e => {} }, { type: "save", name: "\u897f\u8d22\u5728\u7ebf\u7efc\u5408\u4f5c\u4e1a\u6536\u5f55", match: () => location.host.includes("swufe-online.com") && location.href.includes("/learnspace/userDefine/t_test.jsp?courseId="), question: { html: ".timu_title", question: ".timu_title", options: ".test_item_theme>ul>li", type: ".question-box .tag", workType: "swufe", pageType: "swufe" }, init: async () => { if (await waitUntil((function() { return isExist(".timu_title"); })), document.body.innerHTML.includes("\u63d0\u4ea4\u7b54\u9898\u540e\u663e\u793a")) return !1; J(".layui-tab-title>li").on("click", (function() { vuePageChange$1(); })); }, answerHook: e => { const t = J(e.html).attr("id"); switch (e.type = typeMatch(J(".layui-this").text()), e.question = removeHtml(J(e.html).html()), e.options = J(`#${t}`).map((function() { let t = [], n = J(this).next(), a = []; for (;n.length && n.hasClass("question-item-opt"); ) a.push(removeHtml(n[0].outerHTML)), t.push(n), n = n.next(); return e.$options = J(t.map((e => e[0]))).find("label"), a; })).get(), e.options = removeStartChar(e.options), e.type) { case "0": case "1": const n = J(`#${t}`).nextAll(".ans").first().find("span:eq(0)").text(); e.answer = n.trim().split("").map((t => { let n = t.charCodeAt() - 65; return e.options[n]; })); break; case "3": e.answer = judgeAnswer(J(`#${t}`).nextAll(".ans").first().find("span:eq(0)").text().trim()), e.options = []; break; case "7": case "4": e.answer = removeHtml(J(`#${t}`).nextAll(".ans").first().html()).replace("\u6b63\u786e\u7b54\u6848\uff1a", "").trim(), e.options = []; break; default: e.type; } return e; } } ], Vt = [ { type: "ask", name: "\u91cd\u5e86\u6cd5\u6cbb\u8003\u8bd5\u7b54\u9898", tips: "\u672c\u5e73\u53f0\u65e0\u7b54\u6848\u6536\u5f55\uff0c\u9700\u8981\u81ea\u884c\u8865\u5145\u9898\u5e93\uff0c\u5efa\u8bae\u4f7f\u7528\u9898\u5e93\u5bfc\u5165\u529f\u80fd", match: () => "ks.cqsdx.cn" === location.host && location.pathname.includes("/exam/user/bind"), types: [ "0", "1", "3" ], question: { html: ".qlist", question: "span:eq(1)", options: "label", type: ".badge.badge-danger", workType: "cqsdx", pageType: "cqsdx" }, init: async () => { await waitUntil((function() { return isExist(".qlist"); })); }, toquestion: e => { J(`#question_card button:eq(${e})`).click(); }, next: () => {}, ischecked: e => e.find("div").hasClass("checked"), questionHook: e => { const t = J(e.html).find(".badge.badge-danger").text(); if (e.type = typeMatch(t), e.question = e.question.replace(/\u206B/g, "").trim(), e.options = e.options.map((e => e.replace(/\u206B/g, "").trim())), "3" === e.type) e.options = []; return e; }, setAnswer: e => !0, finish: e => {} } ], Ut = [ { type: "hook", name: "hook", match: location.host.includes("telfri-edu.com"), main: e => { const getHash = () => getUrl(); Me.mainClass = getHash(); let t = new MutationObserver((async e => { Me.mainClass !== getHash() && (Me.mainClass = getHash(), vuePageChange$1(), t.disconnect()); })); J("#app").length >= 1 && t.observe(J("#app")[0], { subtree: !0, attributes: !0, childList: !0 }); } }, { type: "ask", name: "olearn\u7b54\u9898", tips: "", match: () => location.host.includes("telfri-edu.com") && location.href.includes("/learn/homework/do/"), types: [ "0", "1", "3" ], question: { html: ".topic-group>.topic-container", question: ".topic-title", options: ".topic-answer .radio-wrap .radio-text", type: ".question-box .tag", workType: "olearn", pageType: "olearn" }, init: async () => { await waitUntil((function() { return isExist(".topic-group>.topic-container"); })); }, next: () => {}, ischecked: e => e.hasClass("is-active"), questionHook: e => { let t = J(e.html).prevAll(".topic-title").first().find(".title-bold").text().trim(); return e.$options = J(e.html).find(".topic-answer .radio-wrap>label"), e.type = typeMatch(t), e; }, setAnswer: e => !0, finish: e => {} }, { type: "save", name: "olearn\u6536\u5f55", match: () => location.host.includes("telfri-edu.com") && location.href.includes("/learn/homework/show/"), question: { html: ".topic-group>.topic-container", question: ".topic-title", options: ".topic-answer .radio-wrap .radio-text", type: ".question-box .tag", workType: "olearn", pageType: "olearn" }, init: async () => { await waitUntil((function() { return isExist(".topic-group>.topic-container"); })); }, answerHook: e => { let t = J(e.html).prevAll(".topic-title").first().find(".title-bold").text().trim(); e.type = typeMatch(t); const n = J(e.html).find(".standard-answer>.analysis-text").text().trim(); switch (e.type) { case "0": case "1": e.answer = n.split("").map((t => e.options[t.charCodeAt(0) - 65])); break; case "3": e.options = [], e.answer = judgeAnswer(n); } return e; } } ], Dt = [ { type: "hook", name: "hook", match: location.host.includes("yxbyun.com"), main: e => { const getHash = () => J("#app")[0].__vue__.$route.path; Me.mainClass = getHash(); let t = new MutationObserver((async e => { Me.mainClass !== getHash() && (Me.mainClass = getHash(), vuePageChange$1(), t.disconnect()); })); J("#app").length >= 1 && t.observe(J("#app")[0], { subtree: !0, attributes: !0, childList: !0 }); } }, { type: "save", name: "\u4ebf\u5b66\u5b9d\u6536\u5f55", match: () => location.host.includes("yxbyun.com") && (location.href.includes("yxbstudent/#/testPaper") || location.href.includes("yxbstudent/#/finalExam")), question: { html: ".test_wrap", question: ".content", options: ".el-radio-group input", type: ".question-box .tag", workType: "yxbyun", pageType: "yxbyun" }, init: async () => { await waitUntil((function() { return isExist(".test_wrap"); })); }, answerHook: e => { var t; const n = J(e.html).find("div:eq(0)")[0].__vue__, a = (null == (t = n.pagerData) ? void 0 : t.question) || n.smallPaper.questionTopic; return e.type = typeMatch(n.queTypeName), e.question = titleClean(removeHtml(a.questionTitle)), e.options = (a.optionList || a.questionOptionList).map((e => removeHtml(e.questionContent))), [ "0", "1", "3" ].includes(e.type) && (e.answer = a.questionAnswer.split(",").map((t => e.options[t.charCodeAt(0) - 65]))), "3" === e.type && (e.options = [], e.answer = judgeAnswer(e.answer)), e; } }, { type: "ask", name: "\u4ebf\u5b66\u5b9d\u7b54\u9898", match: () => location.host.includes("yxbyun.com") && (location.href.includes("yxbstudent/#/testPaper") || location.href.includes("yxbstudent/#/finalExam")), types: [ "0", "1", "3" ], question: { html: ".test_wrap", question: ".content", options: ".answer>.daan,.el-radio-group>label", type: ".question-box .tag", workType: "yxbyun", pageType: "yxbyun" }, init: async () => { await waitUntil((function() { return isExist(".test_wrap"); })); }, next: () => {}, ischecked: e => e.hasClass("active"), questionHook: e => { var t; const n = J(e.html).find("div:eq(0)")[0].__vue__, a = (null == (t = n.pagerData) ? void 0 : t.question) || n.smallPaper.questionTopic; if (e.type = typeMatch(n.queTypeName), e.question = titleClean(removeHtml(a.questionTitle)), e.options = (a.optionList || a.questionOptionList).map((e => removeHtml(e.questionContent))), "3" === e.type) e.options = []; return e; }, setAnswer: e => { if ("3" === e.type) { let t = e.answer; return e.ques.$options.each(((e, n) => { isTrue(t) && isTrue(removeHtml(J(n).parent().html())) && J(n).click(), isFalse(t) && isFalse(removeHtml(J(n).parent().html())) && J(n).click(), removeHtml(J(n).parent().html()); })), !1; } return !0; }, finish: e => {} } ], Pt = [ { type: "hook", name: "hook", match: location.host.includes("wdjycj.com") || location.host.includes("iwdjy.com"), main: e => { const getHash = () => getUrl(); Me.mainClass = getHash(); let t = new MutationObserver((async e => { Me.mainClass !== getHash() && (Me.mainClass = getHash(), vuePageChange$1(), t.disconnect()); })); J("#app").length >= 1 && t.observe(J("#app")[0], { subtree: !0, attributes: !0, childList: !0 }); } }, { type: "save", name: "\u6587\u9876\u5728\u7ebf\u6536\u5f55", match: () => location.href.includes("/testpaper-test-result?resultId=") || location.href.includes("/testpaper-test?id"), question: { html: ".st-item", question: ".st-title", options: ".st-main>p", type: ".question-box .tag", workType: "wdzx", pageType: "wdzx" }, init: async () => { await waitUntil((function() { return isExist(".st-item"); })); let e = []; try { J(".exam-html")[0].__vue__.test.lists.forEach(((t, n) => { t.question_lists.forEach(((t, n) => { e.push(t); })); })); } catch (t) {} Me.ques = e; }, answerHook: (e, t) => { var n; const a = Me.ques[t], s = []; switch (e.question = titleClean(removeHtml(a.content)), e.options = (null == (n = a.appanswer) ? void 0 : n.map((e => { const t = removeHtml(e.text); return e.right && s.push(t), removeHtml(t); }))) || [], a.tm_type) { case 4: e.type = "3", e.answer = judgeAnswer("1" == a.answer ? "\u6b63\u786e" : "0" == a.answer ? "\u9519\u8bef" : ""); break; case 5: e.type = "2", e.question = e.question.replace(/{#answer}/g, "_____"), e.answer = a.answer.split("|").map((e => e.includes("\u203b") ? e.split("\u203b")[0] : e)); break; case 2: e.type = "0", e.answer = s; break; case 3: e.type = "1", e.answer = s; break; case 1: e.type = "4", e.answer = removeHtml(a.answer); break; default: a.tm_type; } return e; } }, { type: "ask", name: "\u6587\u9876\u5728\u7ebf\u7b54\u9898", tips: "", match: () => location.href.includes("/testpaper-test?id=") || location.href.includes("/final-exam"), types: [ "0", "1", "2", "3" ], question: { html: ".st-item", question: ".st-title", options: ".st-main>p", type: ".question-box .tag", workType: "wdzx", pageType: "wdzx" }, init: async () => { await waitUntil((function() { return isExist(".st-item"); })); }, next: () => {}, toquestion: e => { J(`.card-box .bj:eq(${e})`).click(); }, ischecked: e => J(e).find("input").prop("checked"), questionHook: (e, t) => { e.options = removeOptionsStartChar(e.options); const n = J(e.html).find(".st-title").clone(); J(n).find("strong").remove(), e.question = removeHtml(J(n).html()); let a = J(e.html).prevAll(".title").first().text().trim(); return e.type = typeMatch(a), e.$options = J(e.html).find(".answer-box>.answer>label"), e; }, setAnswer: e => { switch (e.type) { case "4": case "5": case "6": case "7": return J(e.html).find(".answer-text>div")[0].__vue__.msg.yourAnswer = e.answer[0], J(e.html).find(".quill-editor").map(((t, n) => { n.__vue__.value = e.answer[t]; })), !1; case "2": let setYourAnswerById = function(e, t, n) { for (let a of e) if (Array.isArray(a.itemlists)) for (let e of a.itemlists) if (e.id === t) return e.yourAnswer = n, !0; return !1; }; const t = J(e.html).find("span.bj input").attr("name"); return setYourAnswerById(J(".exam-html")[0].__vue__.answerCard, Number(t), e.answer), e.answer, !1; } return !0; }, finish: e => {} } ], Nt = [ { type: "ask", name: "\u6b66\u6c49\u7406\u5de5\u7ee7\u7eed\u6559\u80b2\u7b54\u9898", tips: "\u6b66\u6c49\u7406\u5de5\u7ee7\u7eed\u6559\u80b2\u4ec5\u652f\u6301\u9009\u62e9\u3001\u5224\u65ad\u9898\u5176\u4ed6\u9898\u578b\u6682\u4e0d\u652f\u6301\uff0c\u82e5\u6709\u9700\u8981\u8bf7\u53cd\u9988\u7ed9\u4f5c\u8005", match: () => location.href.includes("/web/exercise.htm"), question: { html: ".pad_top", question: "div:eq(0)", options: ".radio>label", type: ".question-box .tag", workType: "whut", pageType: "whut" }, init: async () => { await waitUntil((function() { return 0 !== J(".pad_top").length; })); }, next: () => {}, ischecked: e => e.find("input").is(":checked"), questionHook: e => { e.question = titleClean(e.question), e.question = e.question.replace(/^\d+\s*[\u3001.\uff09)]/, "").trim(), e.options = removeOptionsStartChar(e.options); let t = J(e.html).prevAll(".p-title").first().clone(); return t = t.remove("span"), e.type = typeMatch(t.text()), e.type, e; }, setAnswer: e => !0, finish: e => {} }, { type: "save", name: "\u6b66\u6c49\u7406\u5de5\u7ee7\u7eed\u6559\u80b2\u6536\u5f55", match: () => location.href.includes("/web/showexercise.htm"), question: { html: ".pad_top", question: "div:eq(0)", options: ".radio>label", type: ".question-box .tag", workType: "whut", pageType: "whut" }, init: async () => { await waitUntil((function() { return 0 !== J(".pad_top").length; })); }, answerHook: e => { e.question = titleClean(e.question), e.question = e.question.replace(/^\d+\s*[\u3001.\uff09)]/, "").trim(), e.options = removeOptionsStartChar(e.options); const t = !J(e.html).children("p").first().text().includes("\u9519\u8bef:"); let n = [], a = J(e.html).prevAll(".p-title").first().clone(); switch (a = a.remove("span"), e.type = typeMatch(a.text()), e.type) { case "0": case "1": if (e.$options.each(((t, a) => { J(a).find("input").is(":checked") && n.push(e.options[t]); })), t) e.answer = n; else { let t = J(e.html).children("p").first().text().match(/\u3010(.*?)\u3011/); n = [], t && t[1].split(";").forEach((t => { n.push(e.options[t.charCodeAt(0) - 65]); })), e.answer = n; } break; case "3": if (e.$options.each(((t, a) => { J(a).find("input").is(":checked") && n.push(e.options[t]); })), t) e.answer = n[0]; else { let t = J(e.html).children("p").first().text().match(/\u3010(.*?)\u3011/); n = [], t && t[1].split(";").forEach((t => { n.push(e.options[t.charCodeAt(0) - 65]); })), e.answer = n[0]; } e.options = []; } return e; } } ], Ft = [ { type: "save", name: "\u4e1c\u5317\u8d22\u7ecf\u5927\u5b66\u6210\u6559\u6536\u5f55", match: () => location.host.includes("dufe.edu.cn") && (location.href.includes("/HomeWorkPaper") || location.href.includes("/HomeWorkHistoryPaper") || location.href.includes("/ExercisesPaper")), question: { html: ".QuestTrunk,.HistoryQuestTrunk", question: ".CBTPaperMain-divInline", options: ".CBTPaperMain-options li", type: ".question-box .tag", workType: "dufe", pageType: "dufe" }, init: async () => { await waitUntil((function() { return isExist(".QuestTrunk,.HistoryQuestTrunk"); })); }, answerHook: e => { const t = e.html.vtree[0].vmodel._trunks[0], n = e.html.vtree[0].vmodel._type; let a = [], s = []; const getOption = () => { t.QUESTION_OPTIONS.forEach((e => { const t = removeHtml(e.OPTION_CONTENT); "1" === e.ISTRUE && a.push(t), s.push(t); })); }; switch (n) { case "001": e.type = "0", getOption(); break; case "002": e.type = "1", getOption(); break; case "004": e.type = "3", e.options = [], a = "1" === t.QUESTION_OPTIONS[0].ISTRUE ? [ "\u6b63\u786e" ] : "0" === t.QUESTION_OPTIONS[0].ISTRUE ? [ "\u9519\u8bef" ] : []; break; case "005": e.type = "4", a = [ removeHtml(t.QUESTION_OPTIONS[0].OPTION_CONTENT) ]; } return e.question = titleClean(t.QUESTION_TITLE), e.options = s, e.answer = a, e; } }, { type: "ask", name: "\u4e1c\u5317\u8d22\u7ecf\u5927\u5b66\u6210\u6559\u7b54\u9898", match: () => location.host.includes("dufe.edu.cn") && (location.href.includes("/HomeWorkPaper") || location.href.includes("/ExercisesPaper")), types: [ "0", "1", "3", "4" ], question: { html: ".QuestTrunk", question: ".CBTPaperMain-divInline", options: ".CBTPaperMain-options li>label", type: ".question-box .tag", workType: "dufe", pageType: "dufe" }, init: async () => {}, next: () => {}, ischecked: e => e.parent().find("input").prop("checked"), questionHook: e => { const t = e.html.vtree[0].vmodel._trunks[0], n = e.html.vtree[0].vmodel._type; let a = [], s = []; const getOption = () => { t.QUESTION_OPTIONS.forEach((e => { const t = removeHtml(e.OPTION_CONTENT); "1" === e.ISTRUE && a.push(t), s.push(t); })); }; switch (n) { case "001": e.type = "0", getOption(); break; case "002": e.type = "1", getOption(); break; case "004": e.type = "3", e.options = [], a = "1" === t.QUESTION_OPTIONS[0].ISTRUE ? [ "\u6b63\u786e" ] : "0" === t.QUESTION_OPTIONS[0].ISTRUE ? [ "\u9519\u8bef" ] : []; break; case "005": e.type = "4", a = [ removeHtml(t.QUESTION_OPTIONS[0].OPTION_CONTENT) ]; } return e.question = titleClean(t.QUESTION_TITLE), e.options = s, e.answer = a, e; }, setAnswer: e => { if ("4" === e.type) { const t = J(e.html).find("textarea")[0]; return t._ms_context_._answer = e.answer[0], t._ms_context_._save(), !1; } return !0; }, finish: e => {} }, { type: "ask", name: "\u4e1c\u5317\u8d22\u7ecf\u5927\u5b66\u6210\u6559\u7b54\u9898(\u7efc\u5408)", match: () => location.host.includes("dufe.edu.cn") && location.href.includes("/CompHomeworkPaper"), types: [ "0", "1", "3", "4" ], question: { html: ".Question", question: ".CBTPaperMain-trunkTitle", options: "ul.Question-options>li", type: ".question-box .tag", workType: "dufe", pageType: "dufe" }, init: async () => {}, next: () => {}, ischecked: e => e.parent().find("input").prop("checked"), questionHook: e => { const t = (e => { var t; if (e) { const n = Object.keys(e).find((e => e.startsWith("__reactEventHandlers"))); if (n) { const t = e[n]; return console.log("React \u4e8b\u4ef6\u5904\u7406\u5bf9\u8c61:", t), t; } if (!n) { const n = Object.keys(e).find((e => e.startsWith("__reactInternalInstance$") || e.startsWith("__reactFiber$"))); if (n && (null == (t = e[n]) ? void 0 : t.memoizedProps)) return console.log("React \u5185\u90e8\u6570\u636e:", e[n].memoizedProps), e[n].memoizedProps; } } else console.error("\u672a\u627e\u5230 .Question \u5143\u7d20"); })(e.html).children[0]._owner.memoizedProps; return e.type = { SingleChoice: "0", MultipleChoice: "1" }[t.type], e.options = removeStartChar(e.options), e; }, setAnswer: e => { if ("4" === e.type) { const t = J(e.html).find("textarea")[0]; return t._ms_context_._answer = e.answer[0], t._ms_context_._save(), !1; } return !0; }, finish: e => {} } ], Bt = { single: "0", multiple: "1", judge: "3" }, Rt = [ { type: "hook", name: "hook", match: location.host.includes("lygtc.edu.cn"), main: () => { const getHash = () => J("#app")[0].__vue__.$route.path; Me.mainClass = getHash(); const e = new MutationObserver((async () => { const t = getHash(); Me.mainClass !== t && (Me.mainClass = t, vuePageChange$1(), e.disconnect()); })), t = J("#app")[0]; t && e.observe(t, { subtree: !0, attributes: !0, childList: !0 }); } }, { type: "save", name: "\u6625\u98ce\u96e8\u6536\u5f55", match: () => location.host.includes("lygtc.edu.cn") && (location.href.includes("/student/#/my-study/homework/records/detail") || location.href.includes("/student/#/my-study/homework")), question: { html: ".questions>div>div[id],.question>div>div[id]", question: ".topic-title", options: ".el-radio-group label .label,.el-checkbox-group label .label", type: ".question-box .tag", workType: "cfy", pageType: "cfy" }, init: async () => { await waitUntil((() => 0 !== J(".questions>div>div[id],.question>div>div[id]").length)); }, answerHook: e => { const t = J(e.html).find(">div")[0].__vue__.question; return e.question = titleClean(removeHtml(t.title)), e.options = JSON.parse(t.options).map((e => e.content)), e.answer = t.answer.split("").map((t => e.options[t.charCodeAt(0) - 65])).filter(Boolean), e.type = Bt[t.type] || "", "judge" === t.type && (e.options = [], e.answer = [ judgeAnswer(t.answer) ]), t.type, e; } }, { type: "ask", name: "\u6625\u98ce\u96e8\u7b54\u9898", tips: "\u516c\u544a", match: () => location.host.includes("lygtc.edu.cn") && location.href.includes("/student/#/my-study/homework"), types: Object.values(Bt), question: { html: ".question>div>div[id]", question: ".question-title>.title", options: ".radio-option", type: ".question-box .tag", workType: "cfy", pageType: "cfy" }, init: async () => { await waitUntil((() => 0 !== J(".question>div>div[id]").length)); }, next: () => {}, ischecked: e => e.find(".el-radio__input.is-checked").length > 0, questionHook: e => { e.options = removeStartChar(e.options); const t = J(e.html).find(">div")[0].__vue__.question; return e.question = titleClean(removeHtml(t.title)), e.options = JSON.parse(t.options).map((e => e.content)), e.type = Bt[t.type] || "", "judge" === t.type && (e.options = [], e.answer = [ judgeAnswer(t.answer) ]), e; }, setAnswer: () => !0, finish: () => {} } ], Gt = [ { type: "hook", name: "hook", match: location.host.includes("jijiaool.com"), main: e => { const getHash = () => J(".contentIframe").attr("src"); Me.mainClass = getHash(); let t = new MutationObserver((async e => { Me.mainClass !== getHash() && (Me.mainClass = getHash(), vuePageChange$1(), t.disconnect()); })); J(".contentIframe").length >= 1 && t.observe(J(".contentIframe")[0], { subtree: !0, attributes: !0, childList: !0 }); } }, { type: "ask", name: "\u7ee7\u6559\u5728\u7ebf\u7b54\u9898", match: () => location.href.includes("jijiaool.com") && location.href.includes("/Learning/CourseOnlineExamination"), types: [ "0", "1" ], question: { html: ".bank_test>.test_item", question: ".test_item_tit", options: ".test_item_theme>ul>li>label", type: ".question-box .tag", workType: "jijiaool", pageType: "jijiaool" }, init: async () => { await waitUntil((function() { return isExist(".bank_test>.test_item"); })); }, next: () => {}, ischecked: e => e.parent().parent().hasClass("is-checked"), questionHook: e => { e.options = removeOptionsStartChar(e.options); const t = J(e.html).prevAll(".test_item_type").first().text().trim(); return e.type = typeMatch(t), e; }, setAnswer: e => !0, finish: e => {} }, { type: "save", name: "\u7ee7\u6559\u5728\u7ebf\u6536\u5f55", match: () => location.href.includes("jijiaool.com") && location.href.includes("/Learning/CourseExamWorkPageDetail"), question: { html: ".bank_test>.test_item", question: ".test_item_tit", options: ".test_item_theme>ul>li>label", type: ".question-box .tag", workType: "jijiaool", pageType: "jijiaool" }, init: async () => { await waitUntil((function() { return isExist(".bank_test>.test_item"); })); }, answerHook: e => { const t = J(e.html).find(".test_item_tit").clone(); t.find(".tipNodo").remove(), e.question = titleClean(removeHtml(t.html())), e.options = removeOptionsStartChar(e.options); const n = removeHtml(J(e.html).find(".test_item_tit:eq(1)").html().replace(/ \u6b63\u786e\u7b54\u6848\uff1a/g, "").trim()), a = J(e.html).prevAll(".test_item_type").first().text().trim(); switch (e.type = typeMatch(a), e.type) { case "0": case "1": e.answer = n.split("").map((t => e.options[t.charCodeAt(0) - 65])); break; case "3": e.answer = judgeAnswer(n), e.options = []; } return e; } } ], Jt = Object.freeze(Object.defineProperty({ __proto__: null, a21tb: $t, ahjxjy: dt, cfy: Rt, chaoxing: nt, chatglm: ot, chengjiaoyun: lt, chutou: kt, cjedu: ft, cjnep: At, cloudwis: xt, cnzx: ut, cqsdx: Vt, dufe: Ft, gkks: wt, guokai: rt, huayi: Et, jijiaool: Gt, jijiaox: qt, jsou: ct, learnin: It, ls365: _t, mooc: Ot, mosoteach: zt, mynep: Ht, olearn: Ut, openha: vt, ouchn: Lt, qingshu: mt, sclecb: bt, swufe: Mt, uooc: ht, wdjycj: Pt, wencai: Ct, whut: Nt, wx168: jt, xinwei: st, xueqi: gt, ynou: St, ytccr: yt, yunmuxueyuan: Ze, yxbyun: Dt, yxlearning: Tt, zhihuishu: at, zhijiaoyun: pt }, Symbol.toStringTag, { value: "Module" })), Qt = []; for (const ar in Jt) Qt.push(...Jt[ar]); const parseRule = async e => { await waitUntil((() => void 0 !== Me[Xt + "app"])); const t = e.filter((e => "function" == typeof e.match ? e.match() : e.match)), n = getAppStore(), a = { app: n, ask: getAskStore() }; if (!t.length) return n.app.alert = "\u5f53\u524d\u6ca1\u6709\u4efb\u52a1", console.log("\u6ca1\u6709\u5339\u914d\u5230\u89c4\u5219", "error"), void addLog("\u6ca1\u6709\u5339\u914d\u5230\u89c4\u5219", "error"); for (const s of t) { if (console.log(`\u5339\u914d\u5230\u89c4\u5219\uff1a${s.name}`, "success"), addLog(`\u5339\u914d\u5230\u89c4\u5219\uff1a${s.name}`, "success"), s.init) { let e = await s.init(); if ("boolean" == typeof e && !1 === e) continue; } n.alert = `\u5f53\u524d\u4efb\u52a1:${s.name}`, "hook" === s.type && s.main(a), "ask" === s.type && askParser(s, a), "save" === s.type && saveParser(s, a); } }, saveParser = (e, t) => { const n = t.app, a = t.ask; a.rule = e, e.tips && (a.tips = e.tips); const s = questionSaveParser(e.question, e.answerHook || null).filter((e => null != e && 0 !== e.answer.length && "" !== e.answer && "8" != e.type)).map((e => (e.question = titleClean(e.question), e))); if (a.saveQuestionData = s, s.forEach((e => { 0 !== e.answer.length && Answer.cacheAnswer(e); })), e.paper && "function" == typeof e.paper) try { e.paper(s); } catch (i) { addLog("\u6574\u5377\u7f13\u5b58\u5f02\u5e38", "error"); } const o = { questionList: s, pageType: e.question.pageType }; n.setPage("question"), s.length && Answer.syncQuestionList(o), n.app.alert = `\u9898\u5e93\u6536\u5f55\u5b8c\u6210\uff0c\u5171\u7f13\u5b58${s.length}\u9053\u9898\u76ee`, msg(`\u9898\u5e93\u6536\u5f55\u5b8c\u6210\uff0c\u5171\u7f13\u5b58${s.length}\u9053\u9898\u76ee`, "success"), e.next && e.next(); }, askParser = (e, t) => { const n = t.app, a = t.ask; a.rule = e, e.minDelay && (a.minDelay = e.minDelay, a.delay < a.minDelay && (a.delay = a.minDelay)), e.tips && (a.tips = e.tips), n.app.showFloat = !n.app.hideFloat, n.setPage("ask"), a.clearQuestion(); questionParser(e.question, e.questionHook || null).map((e => (e.question = titleClean(e.question), "3" == e.type && (e.options = []), e))).forEach((e => { a.addQuestion(e); })), a.autoAnswer && a.toggleStart(); }, questionSaveParser = (e, t) => { "function" == typeof e.html && (e.html = e.html()); return J(e.html).map(((n, a) => { const s = removeHtml(J(a).find(e.question).html()), o = J(a).find(e.options).map(((e, t) => removeHtml(J(t).html()))).get(), i = J(a).find(e.type).val(), r = J(a)[0]; let l = { question: titleClean(s ?? ""), options: o, $options: J(a).find(e.options), $answer: J(a).find(e.answer), answer: [], type: i, html: r }; try { t && (l = t(l, n)); } catch (c) { console.log("\u6536\u5f55hook\u62a5\u9519", c); } return null == l || null == l ? null : (l.question && "" != l.question && (l.question = titleClean(l.question)), l.options && l.options.length > 0 && (l.options = removeStartChar(l.options)), { question: l.question, options: l.options, answer: l.answer, type: l.type, hash: questionHash(l.type, l.question, l.options) }); })).get(); }, questionParser = (e, t) => { "function" == typeof e.html && (e.html = e.html()); return J(e.html).map(((n, a) => { const s = removeHtml(J(a).find(e.question).html()), o = J(a).find(e.options).map(((e, t) => removeHtml(J(t).html()))).get(), i = J(a).find(e.type).val(), r = e.workType, l = J(a)[0]; let c = { question: titleClean(s ?? ""), options: o, $options: J(a).find(e.options), type: i, html: l, workType: r, pageType: e.pageType }; return t && (c = t(c, n)), c; })).get(); }; class AnonymousIdentityOptimized { static generateShortId() { return Date.now().toString(36).padStart(8, "0").slice(-8) + Array.from({ length: 8 }, (() => "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"[Math.floor(62 * Math.random())])).join(""); } static validateId(e) { return /^[0-9A-Za-z]{16}$/.test(e); } static getAnonymousId() { if (this.cachedAnonymousId) return this.cachedAnonymousId; let e = je(this.STORAGE_KEY); return e && this.validateId(e) || (e = this.generateShortId(), Le(this.STORAGE_KEY, e)), this.cachedAnonymousId = e, e; } static getStableCanvasFingerprint() { try { const e = document.createElement("canvas"); e.width = 220, e.height = 30; const t = e.getContext("2d", { willReadFrequently: !0 }); if (!t) return ""; t.textBaseline = "alphabetic", t.fillStyle = "#000", t.font = "16px Arial", t.fillText("AiAsk,\ud83c\udf10.\ud83d\ude00", 2, 20); const n = t.getImageData(0, 0, 220, 30).data; let a = 0; for (let s = 0; s < n.length; s += 40) a = (a << 5) - a + n[s], a |= 0; return a.toString(36); } catch (e) { return ""; } } static getWebGLFingerprint() { try { const e = document.createElement("canvas"), t = e.getContext("webgl") || e.getContext("experimental-webgl"); if (!t) return ""; const n = t.getExtension("WEBGL_debug_renderer_info"); if (!n) return t.getParameter(t.VERSION) + "|" + t.getParameter(t.VENDOR); const a = t.getParameter(n.UNMASKED_VENDOR_WEBGL); return a + "|" + t.getParameter(n.UNMASKED_RENDERER_WEBGL); } catch (e) { return ""; } } static getDeviceFingerprint() { if (this.cachedFingerprint) return this.cachedFingerprint; const e = je(this.FINGERPRINT_KEY); if (e && e.version === this.FP_VERSION && e.value) return this.cachedFingerprint = e.value, e.value, e.value; const t = [ this.normalizeUserAgent(navigator.userAgent), navigator.language, navigator.platform, screen.colorDepth, screen.pixelDepth || screen.colorDepth, (new Date).getTimezoneOffset(), navigator.hardwareConcurrency || 0, navigator.maxTouchPoints || 0, navigator.deviceMemory || 0, this.getWebGLFingerprint(), this.getStableCanvasFingerprint() ].filter(Boolean).join("|"), n = Ye(t).substring(0, 12); return Le(this.FINGERPRINT_KEY, { value: n, version: this.FP_VERSION, createdAt: Date.now() }), this.cachedFingerprint = n, n; } static normalizeUserAgent(e) { return e.includes("Chrome") ? "Chrome" : e.includes("Firefox") ? "Firefox" : e.includes("Safari") ? "Safari" : e.includes("Edge") ? "Edge" : e.includes("Opera") ? "Opera" : "Unknown"; } static getIdentity() { return { anonymous_id: this.getAnonymousId(), device_fingerprint: this.getDeviceFingerprint() }; } static clear() { Le(this.STORAGE_KEY, null), Le(this.FINGERPRINT_KEY, null), this.cachedAnonymousId = null, this.cachedFingerprint = null; } static regenerateFingerprint() { return Le(this.FINGERPRINT_KEY, null), this.cachedFingerprint = null, this.getDeviceFingerprint(); } static getDebugInfo() { return { anonymous_id: this.getAnonymousId(), device_fingerprint: this.getDeviceFingerprint(), fingerprint_components: { browser: this.normalizeUserAgent(navigator.userAgent), language: navigator.language, platform: navigator.platform, screen_color: screen.colorDepth, timezone: (new Date).getTimezoneOffset(), hardware: navigator.hardwareConcurrency, webgl: this.getWebGLFingerprint() }, storage: { fp_stored: je(this.FINGERPRINT_KEY), id_stored: je(this.STORAGE_KEY) } }; } static async testStability(e = 10) { const t = []; for (let a = 0; a < e; a++) { this.cachedFingerprint = null; const e = this.getDeviceFingerprint(); t.push(e), await new Promise((e => setTimeout(e, 100))); } const n = new Set(t); n.size, n.size, Array.from(n), n.size, 1 === n.size || n.size; } } __publicField(AnonymousIdentityOptimized, "STORAGE_KEY", "anonymous_id"), __publicField(AnonymousIdentityOptimized, "FINGERPRINT_KEY", "device_fingerprint"), __publicField(AnonymousIdentityOptimized, "FP_VERSION", "v2"), __publicField(AnonymousIdentityOptimized, "cachedAnonymousId", null), __publicField(AnonymousIdentityOptimized, "cachedFingerprint", null); const Kt = 864e5, Wt = [ { id: "492563", name: "GreasyFork", home: "https://greasyfork.org/zh-CN/scripts/492563-%E7%88%B1%E9%97%AE%E7%AD%94%E5%8A%A9%E6%89%8B", updateurl: "https://greasyfork.org/zh-CN/scripts/492563.json", getdata: e => { const t = JSON.parse(e[0].responseText); return { version: t.version, code_updated_at: formatDate(t.code_updated_at) }; } }, { id: "2384", name: "\u811a\u672c\u732b", home: "https://scriptcat.org/zh-CN/script-show-page/2384", updateurl: "https://scriptcat.org/api/v2/scripts/2384", getdata: e => { const t = JSON.parse(e[0].responseText); return { version: t.data.script.version, code_updated_at: formatDate(new Date(1e3 * t.data.updatetime).toISOString()) }; } } ]; function getAppStore() { return Me[Xt + "app"]; } function getAskStore() { return Me[Xt + "ask"]; } function request(e, t, n = void 0, a = void 0, s = 5e3) { "GET" === t && n && (e += `?${new URLSearchParams(n).toString()}`), "POST" === t && (a = { ...a }); const o = { "User-Agent": Me.navigator.userAgent, "Content-Type": "application/json", referer: location.href, ...a }; return new Promise(((a, i) => { const r = Date.now(); Oe({ method: t, url: e, headers: o, data: "GET" !== t ? JSON.stringify(n) : void 0, timeout: s, onload: function(e) { const t = Date.now(); a([ e, t - r ]); }, ontimeout: () => i(new Error("\u63a5\u53e3\u8bf7\u6c42\u8d85\u65f6")), onerror: e => { i(e); } }); })); } function requestApi(e, t, n = void 0, a = void 0, s = 5e3) { return new Promise((async (o, i) => { const r = Cache.get("user", {}), l = r && r.user && r.api_key; let c; { if (!l) { const e = AnonymousIdentityOptimized.getIdentity(); n = { ...n, anonymous_id: e.anonymous_id, device_fingerprint: e.device_fingerprint }; } const e = function(e) { const {html: t, ...n} = e, flatten = (e, t = "") => { const n = []; return Object.keys(e).sort().forEach((a => { const s = t ? `${t}.${a}` : a, o = e[a]; null != o && (Array.isArray(o) && 0 === o.length || ("object" != typeof o || Array.isArray(o) || 0 !== Object.keys(o).length) && (Array.isArray(o) ? o.every((e => "object" != typeof e)) ? n.push(`${s}=${o.sort().join(",")}`) : n.push(`${s}=${JSON.stringify(o)}`) : "object" == typeof o ? n.push(...flatten(o, s)) : n.push(`${s}=${o}`))); })), n; }, a = flatten(n).join("&"); return Ye(a); }(n); a = { ...a, aka: e }, c = await encrypt(JSON.stringify(n), e); } const p = { "User-Agent": Me.navigator.userAgent, "Content-Type": "application/json", referer: location.href, v: en.script.version, ...a }; if (l) p.Authorization = `Bearer ${r.api_key}`; else { const e = AnonymousIdentityOptimized.getIdentity(); p["X-Anonymous-ID"] = e.anonymous_id, p["X-Device-FP"] = e.device_fingerprint; } const u = Date.now(); Oe({ method: t, url: e, headers: p, data: JSON.stringify({ data: c }), timeout: s, onload: async function(e) { const t = Date.now() - u; let n = JSON.parse(e.responseText); if (n.encrypted) { n = await decrypt(n.data); const a = { ...e, responseText: n }; o([ a, t ]); } else o([ e, t ]); }, ontimeout: () => i(new Error("\u63a5\u53e3\u8bf7\u6c42\u8d85\u65f6")), onerror: e => { i(e); } }); })); } const vuePageChange$1 = async () => { if (Me.vuePageChangeLock) return; Me.vuePageChangeLock = !0; const e = getAppStore(), t = getAskStore(); t.questionInx = 0, e.app.showFloat = !1, e.setPage("home"), t.clearQuestion(), await parseRule(Qt), Me.vuePageChangeLock = !1; }, addLog = (e, t = "info") => { const n = getAppStore(), a = (new Date).toLocaleString(); try { n.addLog({ time: a, type: t, content: e }); } catch (s) { console.log(e); } }, compareVersions = (e, t) => { const normalize = e => e.split(".").map(Number), n = normalize(e), a = normalize(t); for (let s = 0; s < Math.max(n.length, a.length); s++) { const e = n[s] || 0, t = a[s] || 0; if (t > e) return !0; if (t < e) return !1; } return !1; }, updateFn = async (e = !0) => { if (!getAppStore().app.checkUpdate) return; const t = Cache.get("lastCheckTime"); if (e && t && Date.now() - t < Kt) { new Date(t + Kt).toLocaleString(); } else try { const e = await Promise.allSettled(Wt.map((async e => { try { e.name, e.updateurl, addLog(`[${e.name}] \u5f00\u59cb\u68c0\u6d4b\u66f4\u65b0`, "info"); const t = await request(e.updateurl, "GET", {}, {}), n = e.getdata(t); return e.name, { script: e, updateInfo: n }; } catch (t) { throw e.name, String(t), addLog(`[${e.name}] \u66f4\u65b0\u68c0\u6d4b\u5931\u8d25: ${String(t)}`, "error"), t; } }))); Cache.set("lastCheckTime", Date.now()); const t = e.filter((e => "fulfilled" === e.status)); e.filter((e => "rejected" === e.status)); if (0 === t.length) return void msg("\u6240\u6709\u66f4\u65b0\u6e90\u68c0\u6d4b\u5931\u8d25\uff0c\u8bf7\u53cd\u9988\u7ed9\u4f5c\u8005\u3002", "error"); let n = !1, a = !0; for (const {value: s} of t) { const {script: e, updateInfo: t} = s; if (compareVersions(en.script.version, t.version)) { msg(`\n\u68c0\u6d4b\u5230\u65b0\u7248\u672c\uff1a${t.version}
\n\u811a\u672c\u6e90\uff1a${e.name}
\n\u66f4\u65b0\u65f6\u95f4\uff1a${t.code_updated_at}
\n \n")).replace(/<\/xmp>/g, ""); let a = (e = N.sanitize(e, { ALLOWED_TAGS: [ "img", "br", "sub", "sup" ], ALLOWED_ATTR: [ "src", "href" ], ALLOW_DATA_ATTR: !1, KEEP_CONTENT: !0 })).match(/
${escapeHtml(n.trim())}`))),
t = t.replace(/`([^`]+)`/g, ((e, t) => protect(`${escapeHtml(t)}`))),
t = t.replace(/\[([^\]]+)\]\(([^)]+)\)/g, ((e, t, n) => protect(`${t}`))),
t = t.replace(/\*\*(.+?)\*\*/g, "$1"), t = t.replace(/__(.+?)__/g, "$1"),
t = t.replace(/\*(.+?)\*/g, "$1"), t = t.replace(/_(.+?)_/g, "$1"),
t = t.replace(/^### (.+)$/gm, "\u7231\u95ee\u7b54\u52a9\u624b
\n${t + 1}\u3001[${typeConvert(e.type, !1)}]${e.question}
\n${n = e.options,
"object" != typeof n ? "" : n.map(((e, t) => String.fromCharCode(65 + t) + "." + e)).join("
")}
\u7b54\u6848\uff1a${answerFormat(e.answer)}
\n \n `; var n; })).join("\u6682\u65e0\u7ae0\u8282\u6570\u636e
'}\n\u590d\u6742\u9898\u578b\uff0c\u90e8\u5206\u5185\u5bb9\u53ef\u80fd\u65e0\u6cd5\u5b8c\u6574\u663e\u793a
' : (a = '")); let s = '\u6682\u65e0\u9898\u76ee\u6570\u636e
', getHtmlStyles = () => "\n * {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n }\n\n body {\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', \n 'Microsoft YaHei', 'Helvetica Neue', Helvetica, Arial, sans-serif;\n line-height: 1.6;\n color: #333;\n background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n padding: 20px;\n }\n\n .container {\n max-width: 1200px;\n margin: 0 auto;\n background: white;\n border-radius: 12px;\n box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);\n overflow: hidden;\n }\n\n .header {\n background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n color: white;\n padding: 40px;\n position: relative;\n }\n\n .course-title {\n font-size: 32px;\n margin-bottom: 10px;\n font-weight: 600;\n }\n\n .chapter-subtitle {\n font-size: 24px;\n margin-top: 10px;\n opacity: 0.95;\n }\n\n .meta-info {\n display: flex;\n gap: 12px;\n flex-wrap: wrap;\n margin-top: 16px;\n }\n\n .badge {\n display: inline-block;\n padding: 6px 16px;\n background: rgba(255, 255, 255, 0.2);\n border-radius: 20px;\n font-size: 14px;\n backdrop-filter: blur(10px);\n }\n\n .date {\n padding: 6px 16px;\n font-size: 14px;\n opacity: 0.9;\n }\n\n .watermark {\n position: absolute;\n top: 20px;\n right: 40px;\n opacity: 0.3;\n font-size: 14px;\n }\n\n .content {\n padding: 40px;\n }\n\n .chapter {\n margin-bottom: 40px;\n page-break-inside: avoid;\n }\n\n .chapter-title {\n font-size: 24px;\n color: #667eea;\n margin-bottom: 24px;\n padding-bottom: 12px;\n border-bottom: 3px solid #667eea;\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .chapter-number {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 40px;\n height: 40px;\n background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n color: white;\n border-radius: 50%;\n font-size: 18px;\n font-weight: bold;\n }\n\n .question {\n margin-bottom: 30px;\n padding: 24px;\n background: #f8f9fa;\n border-radius: 12px;\n border-left: 4px solid #667eea;\n page-break-inside: avoid;\n }\n\n .question-header {\n display: flex;\n gap: 12px;\n margin-bottom: 12px;\n align-items: center;\n }\n\n .question-number {\n display: inline-block;\n padding: 4px 12px;\n background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n color: white;\n border-radius: 12px;\n font-size: 14px;\n font-weight: 600;\n }\n\n .question-type {\n color: #667eea;\n font-weight: 600;\n font-size: 14px;\n }\n\n .question-content {\n font-size: 16px;\n margin-bottom: 16px;\n line-height: 1.8;\n color: #2c3e50;\n font-weight: 500;\n }\n\n .options {\n margin: 16px 0;\n }\n\n .option {\n display: flex;\n padding: 12px 16px;\n margin-bottom: 8px;\n background: white;\n border-radius: 8px;\n border: 1px solid #e0e0e0;\n transition: all 0.2s;\n }\n\n .option:hover {\n border-color: #667eea;\n transform: translateX(4px);\n }\n\n .option.is-answer {\n background: #f0f9ff;\n border: 2px solid #67c23a;\n color: #67c23a;\n font-weight: 500;\n }\n\n .option-label {\n font-weight: 600;\n margin-right: 12px;\n min-width: 24px;\n }\n\n .option-content {\n flex: 1;\n }\n\n .answer-section {\n margin-top: 16px;\n padding: 16px;\n background: white;\n border-radius: 8px;\n border: 2px solid #67c23a;\n }\n\n .answer-section h4 {\n color: #67c23a;\n margin-bottom: 12px;\n font-size: 16px;\n }\n\n .answer-tag {\n display: inline-block;\n padding: 6px 16px;\n background: #67c23a;\n color: white;\n border-radius: 16px;\n margin-right: 8px;\n margin-bottom: 8px;\n font-size: 14px;\n }\n\n .answer-content {\n padding: 12px;\n background: #f0f9ff;\n border-radius: 8px;\n color: #409eff;\n line-height: 1.6;\n }\n\n .no-answer {\n color: #999;\n font-style: italic;\n }\n\n .note {\n color: #999;\n font-size: 14px;\n font-style: italic;\n }\n\n .empty {\n text-align: center;\n color: #999;\n padding: 40px;\n font-size: 16px;\n }\n\n .footer {\n background: #f8f9fa;\n padding: 24px;\n text-align: center;\n color: #666;\n border-top: 1px solid #e0e0e0;\n }\n\n img {\n max-width: 100%;\n height: auto;\n border-radius: 8px;\n margin: 8px 0;\n }\n\n @media print {\n body {\n background: white;\n padding: 0;\n }\n \n .container {\n box-shadow: none;\n }\n \n .question, .chapter {\n page-break-inside: avoid;\n }\n }\n\n @media (max-width: 768px) {\n .container {\n border-radius: 0;\n }\n \n .header, .content {\n padding: 20px;\n }\n \n .course-title {\n font-size: 24px;\n }\n }\n", downloadHtml = (e, t) => { const n = new Blob([ e ], { type: "text/html;charset=utf-8" }), a = URL.createObjectURL(n), s = document.createElement("a"); s.href = a, s.download = t, document.body.appendChild(s), s.click(), document.body.removeChild(s), URL.revokeObjectURL(a); }, deletePaper = async (e, t) => { t && t.stopPropagation(); try { await F.ElMessageBox.confirm(`\u786e\u5b9a\u8981\u5220\u9664\u8bfe\u7a0b"${e.name || e.courseName || "\u672a\u547d\u540d\u8bfe\u7a0b"}"\u5417\uff1f\u6b64\u64cd\u4f5c\u4e0d\u53ef\u6062\u590d\uff01`, "\u5220\u9664\u786e\u8ba4", { confirmButtonText: "\u786e\u5b9a\u5220\u9664", cancelButtonText: "\u53d6\u6d88", type: "warning", confirmButtonClass: "el-button--danger" }), Cache.remove(e.key), l.value && l.value.key === e.key && backToPaperList(), loadPapers(), F.ElMessage.success("\u5220\u9664\u6210\u529f\uff01"); } catch (n) { "cancel" !== n && console.error("\u5220\u9664\u9519\u8bef:", n); } }, clearAllPapers = async () => { if (0 !== t.value.length) try { await F.ElMessageBox.confirm(`\u786e\u5b9a\u8981\u6e05\u7a7a\u6240\u6709\u8bd5\u5377\u5417\uff1f\u5171 ${t.value.length} \u95e8\u8bfe\u7a0b\u5c06\u88ab\u5220\u9664\uff0c\u6b64\u64cd\u4f5c\u4e0d\u53ef\u6062\u590d\uff01`, "\u6e05\u7a7a\u786e\u8ba4", { confirmButtonText: "\u786e\u5b9a\u6e05\u7a7a", cancelButtonText: "\u53d6\u6d88", type: "error", confirmButtonClass: "el-button--danger" }), Cache.matchRemove("paper__"), backToPaperList(), loadPapers(), F.ElMessage.success("\u5df2\u6e05\u7a7a\u6240\u6709\u8bd5\u5377\uff01"); } catch (e) { "cancel" !== e && console.error("\u6e05\u7a7a\u9519\u8bef:", e); } else F.ElMessage.warning("\u5f53\u524d\u6ca1\u6709\u8bd5\u5377\u6570\u636e"); }; return (e, i) => { const u = vue.resolveComponent("el-alert"), d = vue.resolveComponent("el-card"), m = vue.resolveComponent("el-icon"), h = vue.resolveComponent("el-input"), f = vue.resolveComponent("el-button"), y = vue.resolveComponent("el-tag"), g = vue.resolveComponent("el-empty"), w = vue.resolveComponent("el-divider"), v = vue.resolveDirective("loading"); return vue.openBlock(), vue.createElementBlock("div", qs, [ l.value ? l.value && !c.value ? (vue.openBlock(), vue.createElementBlock("div", Os, [ vue.createVNode(d, { class: "header-card", shadow: "hover" }, { default: vue.withCtx((() => [ vue.createElementVNode("div", Ms, [ vue.createElementVNode("div", Vs, [ vue.createVNode(f, { type: "primary", onClick: backToPaperList, plain: "" }, { default: vue.withCtx((() => [ vue.createVNode(m, null, { default: vue.withCtx((() => [ vue.createVNode(vue.unref(W), { style: { transform: "rotate(180deg)" } }) ])), _: 1 }), vue.createTextVNode(" \u8fd4\u56de\u8bfe\u7a0b\u5217\u8868 ") ])), _: 1 }), vue.createVNode(f, { type: "success", onClick: i[1] || (i[1] = e => exportPaperToHtml(l.value)), icon: vue.unref(se) }, { default: vue.withCtx((() => [ vue.createTextVNode(" \u5bfc\u51fa\u6574\u4e2a\u8bfe\u7a0b ") ])), _: 1 }, 8, [ "icon" ]), vue.createVNode(f, { type: "danger", onClick: i[2] || (i[2] = e => deletePaper(l.value)), icon: vue.unref(ne) }, { default: vue.withCtx((() => [ vue.createTextVNode(" \u5220\u9664\u6b64\u8bfe\u7a0b ") ])), _: 1 }, 8, [ "icon" ]) ]), vue.createElementVNode("div", Us, [ vue.createElementVNode("h2", null, vue.toDisplayString(l.value.name || l.value.courseName || "\u672a\u547d\u540d\u8bfe\u7a0b"), 1), vue.createElementVNode("div", Ds, [ vue.createVNode(y, { type: "success" }, { default: vue.withCtx((() => [ vue.createTextVNode(vue.toDisplayString(l.value.chapterCount) + " \u4e2a\u7ae0\u8282", 1) ])), _: 1 }), vue.createVNode(y, { type: "warning" }, { default: vue.withCtx((() => [ vue.createTextVNode(vue.toDisplayString(l.value.totalQuestions) + " \u9053\u9898\u76ee", 1) ])), _: 1 }) ]) ]) ]) ])), _: 1 }), vue.createElementVNode("div", Ps, [ l.value.chapter && 0 !== l.value.chapter.length ? vue.createCommentVNode("", !0) : (vue.openBlock(), vue.createBlock(g, { key: 0, description: "\u6682\u65e0\u7ae0\u8282\u6570\u636e" })), (vue.openBlock(!0), vue.createElementBlock(vue.Fragment, null, vue.renderList(l.value.chapter, ((e, t) => (vue.openBlock(), vue.createBlock(d, { key: t, class: "chapter-card", shadow: "hover", onClick: t => (e => { c.value = e; })(e) }, { default: vue.withCtx((() => [ vue.createElementVNode("div", Ns, [ vue.createElementVNode("div", Fs, vue.toDisplayString(t + 1), 1), vue.createElementVNode("div", Bs, [ vue.createElementVNode("h3", Rs, vue.toDisplayString(e.name || e.title || "\u672a\u547d\u540d\u7ae0\u8282"), 1), vue.createElementVNode("div", Gs, [ vue.createVNode(y, { size: "small", type: "primary" }, { default: vue.withCtx((() => { var t; return [ vue.createTextVNode(vue.toDisplayString((null == (t = e.question) ? void 0 : t.length) || 0) + " \u9053\u9898\u76ee ", 1) ]; })), _: 2 }, 1024) ]) ]), vue.createElementVNode("div", Js, [ vue.createVNode(f, { type: "success", size: "small", onClick: vue.withModifiers((t => ((e, t) => { try { const n = generateChapterHtml(e, t); downloadHtml(n, `${e.name || e.courseName}-${t.name || t.title || "\u7ae0\u8282"}.html`), F.ElMessage.success("\u5bfc\u51fa\u6210\u529f\uff01"); } catch (n) { F.ElMessage.error("\u5bfc\u51fa\u5931\u8d25\uff0c\u8bf7\u91cd\u8bd5"), console.error("\u5bfc\u51fa\u9519\u8bef:", n); } })(l.value, e)), [ "stop" ]), icon: vue.unref(se) }, { default: vue.withCtx((() => [ vue.createTextVNode(" \u5bfc\u51fa ") ])), _: 2 }, 1032, [ "onClick", "icon" ]), vue.createVNode(m, { class: "chapter-arrow" }, { default: vue.withCtx((() => [ vue.createVNode(vue.unref(W)) ])), _: 1 }) ]) ]) ])), _: 2 }, 1032, [ "onClick" ])))), 128)) ]) ])) : c.value ? (vue.openBlock(), vue.createElementBlock("div", Qs, [ vue.createVNode(d, { class: "header-card", shadow: "hover" }, { default: vue.withCtx((() => [ vue.createElementVNode("div", Ks, [ vue.createVNode(f, { type: "primary", onClick: backToChapterList, plain: "" }, { default: vue.withCtx((() => [ vue.createVNode(m, null, { default: vue.withCtx((() => [ vue.createVNode(vue.unref(W), { style: { transform: "rotate(180deg)" } }) ])), _: 1 }), vue.createTextVNode(" \u8fd4\u56de\u7ae0\u8282\u5217\u8868 ") ])), _: 1 }), vue.createElementVNode("div", Ws, [ vue.createElementVNode("h2", null, vue.toDisplayString(c.value.name || c.value.title || "\u672a\u547d\u540d\u7ae0\u8282"), 1), vue.createVNode(y, { type: "primary" }, { default: vue.withCtx((() => { var e; return [ vue.createTextVNode(vue.toDisplayString((null == (e = c.value.question) ? void 0 : e.length) || 0) + " \u9053\u9898\u76ee", 1) ]; })), _: 1 }) ]) ]) ])), _: 1 }), vue.createElementVNode("div", Ys, [ c.value.question && 0 !== c.value.question.length ? vue.createCommentVNode("", !0) : (vue.openBlock(), vue.createBlock(g, { key: 0, description: "\u6682\u65e0\u9898\u76ee\u6570\u636e" })), (vue.openBlock(!0), vue.createElementBlock(vue.Fragment, null, vue.renderList(c.value.question, ((e, t) => (vue.openBlock(), vue.createBlock(d, { key: t, class: "question-card", shadow: "hover" }, { default: vue.withCtx((() => [ vue.createElementVNode("div", Zs, "\u7b2c " + vue.toDisplayString(t + 1) + " \u9898", 1), vue.createElementVNode("div", { class: "question-title", innerHTML: "[" + vue.unref(typeConvert)(e.type ?? "", !1) + "] " + cl_img_format(e.question) }, null, 8, Xs), e.options && e.options.length > 0 ? (vue.openBlock(), vue.createElementBlock("div", eo, [ "object" == typeof e.options[0] ? (vue.openBlock(), vue.createElementBlock("div", to, no)) : (vue.openBlock(), vue.createElementBlock("div", ao, [ (vue.openBlock(!0), vue.createElementBlock(vue.Fragment, null, vue.renderList(e.options, ((t, o) => { return vue.openBlock(), vue.createElementBlock("div", { key: o, class: vue.normalizeClass([ "option-item", { "is-answer": e.answer && e.answer.includes(t) } ]) }, [ vue.createElementVNode("span", so, vue.toDisplayString((i = o, String.fromCharCode(65 + i))) + ".", 1), vue.createElementVNode("span", { class: "option-content", innerHTML: cl_img_format(t) }, null, 8, oo) ], 2); var i; })), 128)) ])) ])) : vue.createCommentVNode("", !0), vue.createElementVNode("div", io, [ vue.createVNode(w, { "content-position": "left" }, { default: vue.withCtx((() => [ ro ])), _: 1 }), Array.isArray(e.answer) && e.options && 0 === e.options.length ? (vue.openBlock(), vue.createElementBlock("div", lo, [ (vue.openBlock(!0), vue.createElementBlock(vue.Fragment, null, vue.renderList(e.answer, ((e, t) => (vue.openBlock(), vue.createBlock(y, { key: t, type: "success", style: { margin: "4px" } }, { default: vue.withCtx((() => [ vue.createTextVNode(vue.toDisplayString(e), 1) ])), _: 2 }, 1024)))), 128)) ])) : Array.isArray(e.answer) ? (vue.openBlock(), vue.createElementBlock("div", co, [ (vue.openBlock(!0), vue.createElementBlock(vue.Fragment, null, vue.renderList(e.answer, ((e, t) => (vue.openBlock(), vue.createElementBlock("span", { key: t }, [ vue.createVNode(y, { type: "success", style: { margin: "4px" } }, { default: vue.withCtx((() => [ vue.createTextVNode(vue.toDisplayString(e), 1) ])), _: 2 }, 1024) ])))), 128)) ])) : e.answer ? (vue.openBlock(), vue.createElementBlock("div", { key: 2, class: "answer-content", innerHTML: cl_img_format(e.answer) }, null, 8, po)) : (vue.openBlock(), vue.createElementBlock("div", uo, "\u6682\u65e0\u7b54\u6848")) ]) ])), _: 2 }, 1024)))), 128)) ]) ])) : vue.createCommentVNode("", !0) : (vue.openBlock(), vue.createElementBlock("div", Cs, [ vue.createVNode(d, { class: "tips-card", shadow: "hover" }, { default: vue.withCtx((() => [ vue.createVNode(u, { type: "info", closable: !1, "show-icon": "" }, { default: vue.withCtx((() => [ Ts ])), _: 1 }) ])), _: 1 }), vue.createVNode(d, { class: "search-card", shadow: "hover" }, { default: vue.withCtx((() => [ vue.createElementVNode("div", As, [ vue.createVNode(h, { modelValue: r.value, "onUpdate:modelValue": i[0] || (i[0] = e => r.value = e), size: "large", placeholder: "\ud83d\udd0d \u641c\u7d22\u8bfe\u7a0b\u540d\u79f0...", clearable: "", style: { flex: "1" } }, { prefix: vue.withCtx((() => [ vue.createVNode(m, null, { default: vue.withCtx((() => [ vue.createVNode(vue.unref(ge)) ])), _: 1 }) ])), _: 1 }, 8, [ "modelValue" ]), vue.createVNode(f, { type: "danger", size: "large", onClick: clearAllPapers, icon: vue.unref(ne), disabled: 0 === t.value.length }, { default: vue.withCtx((() => [ vue.createTextVNode(" \u6e05\u7a7a\u6240\u6709 ") ])), _: 1 }, 8, [ "icon", "disabled" ]) ]), vue.createElementVNode("div", Hs, [ vue.createVNode(y, { type: "info", effect: "plain" }, { default: vue.withCtx((() => [ vue.createTextVNode(" \u5171 " + vue.toDisplayString(t.value.length) + " \u95e8\u8bfe\u7a0b ", 1) ])), _: 1 }), r.value ? (vue.openBlock(), vue.createBlock(y, { key: 0, type: "primary", effect: "plain" }, { default: vue.withCtx((() => [ vue.createTextVNode(" \u641c\u7d22\u7ed3\u679c: " + vue.toDisplayString(p.value.length) + " \u95e8 ", 1) ])), _: 1 })) : vue.createCommentVNode("", !0) ]) ])), _: 1 }), vue.withDirectives((vue.openBlock(), vue.createElementBlock("div", Es, [ 0 === p.value.length ? (vue.openBlock(), vue.createBlock(g, { key: 0, description: "\u6682\u65e0\u8bd5\u5377\u6570\u636e" })) : vue.createCommentVNode("", !0), (vue.openBlock(!0), vue.createElementBlock(vue.Fragment, null, vue.renderList(p.value, ((e, t) => (vue.openBlock(), vue.createBlock(d, { key: t, class: "paper-card", shadow: "hover", onClick: t => (e => { l.value = e, c.value = null; })(e) }, { default: vue.withCtx((() => [ vue.createElementVNode("div", Ss, [ vue.createVNode(m, { class: "paper-icon", size: 32, color: "#409EFF" }, { default: vue.withCtx((() => [ vue.createVNode(vue.unref(le)) ])), _: 1 }), vue.createElementVNode("div", $s, [ vue.createElementVNode("h3", js, vue.toDisplayString(e.name || e.courseName || "\u672a\u547d\u540d\u8bfe\u7a0b"), 1), vue.createElementVNode("div", zs, [ vue.createVNode(y, { size: "small", type: "success" }, { default: vue.withCtx((() => [ vue.createTextVNode(vue.toDisplayString(e.chapterCount) + " \u4e2a\u7ae0\u8282 ", 1) ])), _: 2 }, 1024), vue.createVNode(y, { size: "small", type: "warning" }, { default: vue.withCtx((() => [ vue.createTextVNode(vue.toDisplayString(e.totalQuestions) + " \u9053\u9898\u76ee ", 1) ])), _: 2 }, 1024) ]) ]) ]), vue.createVNode(w, { style: { margin: "12px 0" } }), vue.createElementVNode("div", Is, [ vue.createElementVNode("div", Ls, [ vue.createVNode(f, { type: "success", size: "small", onClick: vue.withModifiers((t => exportPaperToHtml(e)), [ "stop" ]), icon: vue.unref(se) }, { default: vue.withCtx((() => [ vue.createTextVNode(" \u5bfc\u51fa ") ])), _: 2 }, 1032, [ "onClick", "icon" ]), vue.createVNode(f, { type: "danger", size: "small", onClick: vue.withModifiers((t => deletePaper(e, t)), [ "stop" ]), icon: vue.unref(ne) }, { default: vue.withCtx((() => [ vue.createTextVNode(" \u5220\u9664 ") ])), _: 2 }, 1032, [ "onClick", "icon" ]) ]), vue.createVNode(m, null, { default: vue.withCtx((() => [ vue.createVNode(vue.unref(W)) ])), _: 1 }) ]) ])), _: 2 }, 1032, [ "onClick" ])))), 128)) ])), [ [ v, o.value ] ]) ])) ]); }; } }), ho = vue.defineComponent({ __name: "Log", setup(e) { const t = sn(), getColor = e => { switch (e) { case "warn": return "orange"; case "error": return "red"; case "success": return "green"; default: return "blue"; } }; return (e, a) => { const o = vue.resolveComponent("el-table-column"), i = vue.resolveComponent("el-table"); return vue.openBlock(), vue.createBlock(i, { data: vue.unref(t).logs, style: { width: "100%" } }, { default: vue.withCtx((() => [ vue.createVNode(o, { prop: "time", label: "\u65f6\u95f4", width: "180" }, { default: vue.withCtx((({row: e}) => [ vue.createElementVNode("span", null, vue.toDisplayString(e.time), 1) ])), _: 1 }), vue.createVNode(o, { prop: "content", label: "\u5185\u5bb9" }, { default: vue.withCtx((({row: e}) => [ vue.createElementVNode("span", { style: vue.normalizeStyle({ color: getColor(e.type) }) }, vue.toDisplayString(e.content), 5) ])), _: 1 }) ])), _: 1 }, 8, [ "data" ]); }; } }), fo = defineStore("ai", { state: () => ({ aiMsg: "", aiLoading: !1 }), actions: { currentAiMd() { return simpleMarkdownToHtml(this.aiMsg); }, resetAi() { this.aiMsg = "", this.aiLoading = !1; } } }), yo = { class: "ai-container" }, go = vue.createElementVNode("div", { class: "card-header" }, [ vue.createElementVNode("span", { class: "card-title" }, "\ud83e\udd16 AI\u667a\u80fd\u641c\u9898") ], -1), wo = { class: "search-type" }, vo = { class: "card-header" }, xo = vue.createElementVNode("span", { class: "card-title" }, "\ud83d\udca1 AI\u89e3\u7b54", -1), bo = { class: "result-content" }, ko = [ "innerHTML" ], _o = vue.createElementVNode("div", { class: "card-header" }, [ vue.createElementVNode("span", { class: "card-title" }, "\ud83d\udcda \u7231\u95ee\u7b54\u9898\u5e93") ], -1), qo = vue.createElementVNode("div", { style: { "font-size": "60px" } }, "\ud83d\udea7", -1), Co = vue.createElementVNode("div", { class: "card-header" }, [ vue.createElementVNode("span", { class: "card-title" }, "\u2139\ufe0f \u670d\u52a1\u8bf4\u660e") ], -1), To = [ "innerHTML" ], Ao = vue.defineComponent({ __name: "Ai", setup(e) { let t = getApp(), o = t.gpt[t.gptIndex]; const r = fo(), l = vue.ref(""), search = async () => { if (l.value) { if (r.resetAi(), "2" === p.value) return r.aiMsg = "\u7231\u95ee\u7b54\u5b98\u65b9\u9898\u5e93\u5f00\u53d1\u4e2d...", void msg("\u7231\u95ee\u7b54\u5b98\u65b9\u9898\u5e93\u5f00\u53d1\u4e2d..."); r.aiLoading = !0; try { await aiAsk(l.value, (e => { r.aiLoading = !1, r.aiMsg += e, console.log(r.aiMsg); }), (() => { r.aiMsg.length <= 0 && (r.aiMsg = o.msg); }), "\u4f60\u662f\u4e00\u4e2a\u4e13\u4e1a\u7684\u7b54\u9898\u52a9\u624b\uff0c\u8bf7\u6839\u636e\u7528\u6237\u63d0\u4f9b\u7684\u9898\u76ee\u8fdb\u884c\u89e3\u7b54\u3002\n\n\u8981\u6c42\uff1a\n1. \u4ed4\u7ec6\u5206\u6790\u9898\u76ee\u5185\u5bb9\uff0c\u7406\u89e3\u9898\u76ee\u8981\u6c42\n2. \u63d0\u4f9b\u51c6\u786e\u3001\u7b80\u6d01\u7684\u7b54\u6848\n3. \u5982\u679c\u662f\u9009\u62e9\u9898\uff0c\u8bf7\u76f4\u63a5\u7ed9\u51fa\u6b63\u786e\u9009\u9879\uff08\u5982\uff1aA\u3001B\u3001C\u3001D\u6216\u591a\u9009\u7ec4\u5408\uff09\n4. \u5982\u679c\u662f\u586b\u7a7a\u9898\u6216\u7b80\u7b54\u9898\uff0c\u8bf7\u7ed9\u51fa\u7b80\u660e\u627c\u8981\u7684\u7b54\u6848\n5. \u5982\u679c\u9898\u76ee\u4e0d\u6e05\u6670\u6216\u65e0\u6cd5\u786e\u5b9a\u7b54\u6848\uff0c\u8bf7\u8bf4\u660e\u539f\u56e0\n6. \u56de\u7b54\u8981\u6709\u6761\u7406\uff0c\u5fc5\u8981\u65f6\u53ef\u4ee5\u7b80\u8981\u8bf4\u660e\u7406\u7531\n\n\u8bf7\u5f00\u59cb\u89e3\u7b54\uff1a"); } catch (e) { console.error("AI\u68c0\u7d22\u8d85\u65f6\uff0c\u53ef\u80fd\u662f\u7f51\u7edc\u95ee\u9898\u6216\u8005\u5bf9\u5e94GPT\u7684cookie\u5931\u6548", e), r.aiMsg = o.msg; } finally { r.aiLoading = !1; } } }, c = [ { label: "AI\u68c0\u7d22", value: "1", key: "ai" }, { label: "\u7231\u95ee\u7b54\u9898\u5e93", value: "2", key: "ask" } ], p = vue.ref("1"); return (e, t) => { const i = vue.resolveComponent("el-input"), u = vue.resolveComponent("el-radio-button"), d = vue.resolveComponent("el-radio-group"), m = vue.resolveComponent("el-icon"), h = vue.resolveComponent("el-button"), f = vue.resolveComponent("el-card"), y = vue.resolveComponent("el-tag"), g = vue.resolveComponent("el-empty"), w = vue.resolveDirective("loading"); return vue.openBlock(), vue.createElementBlock("div", yo, [ vue.createVNode(f, { class: "search-card", shadow: "hover" }, { header: vue.withCtx((() => [ go ])), default: vue.withCtx((() => [ vue.createVNode(i, { modelValue: l.value, "onUpdate:modelValue": t[0] || (t[0] = e => l.value = e), type: "textarea", placeholder: "\u8bf7\u8f93\u5165\u9898\u76ee\u6216\u95ee\u9898\uff0cAI\u5c06\u4e3a\u60a8\u63d0\u4f9b\u8be6\u7ec6\u89e3\u7b54...", rows: 5, autosize: { minRows: 5, maxRows: 10 }, style: { "margin-bottom": "16px" } }, null, 8, [ "modelValue" ]), vue.createElementVNode("div", wo, [ vue.createVNode(d, { modelValue: p.value, "onUpdate:modelValue": t[1] || (t[1] = e => p.value = e), size: "default" }, { default: vue.withCtx((() => [ (vue.openBlock(), vue.createElementBlock(vue.Fragment, null, vue.renderList(c, (e => vue.createVNode(u, { value: e.value, key: e.value }, { default: vue.withCtx((() => [ vue.createTextVNode(vue.toDisplayString(e.label), 1) ])), _: 2 }, 1032, [ "value" ]))), 64)) ])), _: 1 }, 8, [ "modelValue" ]) ]), vue.createVNode(h, { type: "primary", size: "large", style: { width: "100%", "margin-top": "16px" }, onClick: search, loading: vue.unref(r).aiLoading }, { default: vue.withCtx((() => [ vue.createVNode(m, { style: { "margin-right": "8px" } }, { default: vue.withCtx((() => [ vue.createVNode(vue.unref(ge)) ])), _: 1 }), vue.createTextVNode(" " + vue.toDisplayString(vue.unref(r).aiLoading ? "\u641c\u7d22\u4e2d..." : "\u5f00\u59cb\u641c\u7d22"), 1) ])), _: 1 }, 8, [ "loading" ]) ])), _: 1 }), "1" === p.value && (vue.unref(r).aiMsg || vue.unref(r).aiLoading) ? (vue.openBlock(), vue.createBlock(f, { key: 0, class: "result-card", shadow: "hover" }, { header: vue.withCtx((() => [ vue.createElementVNode("div", vo, [ xo, vue.unref(r).aiLoading ? vue.createCommentVNode("", !0) : (vue.openBlock(), vue.createBlock(y, { key: 0, type: "success", size: "small" }, { default: vue.withCtx((() => [ vue.createTextVNode("\u89e3\u7b54\u5b8c\u6210") ])), _: 1 })) ]) ])), default: vue.withCtx((() => [ vue.withDirectives((vue.openBlock(), vue.createElementBlock("div", bo, [ !vue.unref(r).aiLoading && vue.unref(r).aiMsg ? (vue.openBlock(), vue.createElementBlock("div", { key: 0, innerHTML: vue.unref(r).currentAiMd(), class: "markdown-body" }, null, 8, ko)) : vue.unref(r).aiLoading ? vue.createCommentVNode("", !0) : (vue.openBlock(), vue.createBlock(g, { key: 1, description: "AI\u7b54\u9898\u4ec5\u4f9b\u53c2\u8003\uff0c\u4e0d\u4fdd\u8bc1\u51c6\u786e\u6027" })) ])), [ [ w, vue.unref(r).aiLoading ] ]) ])), _: 1 })) : vue.createCommentVNode("", !0), "2" === p.value ? (vue.openBlock(), vue.createBlock(f, { key: 1, class: "result-card", shadow: "hover" }, { header: vue.withCtx((() => [ _o ])), default: vue.withCtx((() => [ vue.createVNode(g, { description: "\u7231\u95ee\u7b54\u5b98\u65b9\u9898\u5e93\u5f00\u53d1\u4e2d\uff0c\u656c\u8bf7\u671f\u5f85...(\u771f\u7684\u5feb\u597d\u4e86)" }, { image: vue.withCtx((() => [ qo ])), _: 1 }) ])), _: 1 })) : vue.createCommentVNode("", !0), "1" === p.value ? (vue.openBlock(), vue.createBlock(f, { key: 2, class: "copyright-card", shadow: "hover" }, { header: vue.withCtx((() => [ Co ])), default: vue.withCtx((() => [ vue.createElementVNode("div", { class: "copyright-content", innerHTML: vue.unref(markToHtml)(`\u5f53\u524d\u91c7\u7528\u7684\u662f **${vue.unref(o).name}** \u670d\u52a1\uff0c\u4ec5\u4f9b\u6d4b\u8bd5\u4f7f\u7528\uff0c\u4e0d\u4fdd\u8bc1\u51c6\u786e\u6027\u3002\n \n\u5982\u6709\u4fb5\u6743\uff0c\u8bf7\u8054\u7cfb\u6211\u4eec\u5220\u9664\u3002\n \n\u8bf7\u5927\u5bb6\u591a\u591a\u652f\u6301\u5b98\u65b9\uff1a[${vue.unref(o).home}](${vue.unref(o).home})`) }, null, 8, To) ])), _: 1 })) : vue.createCommentVNode("", !0) ]); }; } }), Ho = { key: 2, style: { width: "calc(100% - 130px)", "margin-left": "10px" } }, Eo = { key: 0, style: { color: "red", "margin-top": "5px" } }, So = vue.defineComponent({ __name: "ParamTable", props: { data: {}, presetValues: {} }, setup(e) { const t = e.presetValues || []; return (e, s) => { const o = vue.resolveComponent("el-input"), i = vue.resolveComponent("el-table-column"), r = vue.resolveComponent("el-option"), l = vue.resolveComponent("el-select"), c = vue.resolveComponent("el-button"), p = vue.resolveComponent("el-table"); return vue.openBlock(), vue.createElementBlock("div", null, [ vue.createVNode(p, { data: e.data, border: "" }, { default: vue.withCtx((() => [ vue.createVNode(i, { label: "Key", width: "200" }, { default: vue.withCtx((({row: e}) => [ vue.createVNode(o, { modelValue: e.key, "onUpdate:modelValue": t => e.key = t, placeholder: "Key", style: { width: "100%" } }, null, 8, [ "modelValue", "onUpdate:modelValue" ]) ])), _: 1 }), vue.createVNode(i, { label: "Value" }, { default: vue.withCtx((({row: e}) => [ vue.createVNode(l, { modelValue: e.valueType, "onUpdate:modelValue": t => e.valueType = t, placeholder: "Value Type", style: { width: "120px" } }, { default: vue.withCtx((() => [ vue.createVNode(r, { label: "\u5185\u7f6e\u503c", value: "preset" }), vue.createVNode(r, { label: "\u81ea\u5b9a\u4e49", value: "custom" }) ])), _: 2 }, 1032, [ "modelValue", "onUpdate:modelValue" ]), "custom" === e.valueType ? (vue.openBlock(), vue.createBlock(o, { key: 0, modelValue: e.value, "onUpdate:modelValue": t => e.value = t, placeholder: "Value", style: { width: "calc(100% - 130px)", "margin-left": "10px" } }, null, 8, [ "modelValue", "onUpdate:modelValue" ])) : vue.createCommentVNode("", !0), "preset" === e.valueType ? (vue.openBlock(), vue.createBlock(l, { key: 1, modelValue: e.value, "onUpdate:modelValue": t => e.value = t, placeholder: "\u9009\u62e9\u5185\u7f6e\u503c", style: { width: "calc(100% - 130px)", "margin-left": "10px" } }, { default: vue.withCtx((() => [ (vue.openBlock(!0), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(t), (e => (vue.openBlock(), vue.createBlock(r, { key: e.key, label: e.label, value: e.value }, null, 8, [ "label", "value" ])))), 128)) ])), _: 2 }, 1032, [ "modelValue", "onUpdate:modelValue" ])) : vue.createCommentVNode("", !0), "code" === e.valueType ? (vue.openBlock(), vue.createElementBlock("div", Ho, [ vue.createVNode(o, { modelValue: e.value, "onUpdate:modelValue": t => e.value = t, placeholder: "\u8bf7\u8f93\u5165\u4ee3\u7801", type: "textarea", style: { width: "100%" } }, null, 8, [ "modelValue", "onUpdate:modelValue" ]), vue.createVNode(c, { size: "small", type: "primary", style: { "margin-top": "5px" }, onClick: t => (e => { if ("code" === e.valueType) try { e.error = ""; const t = new Function(`return ${e.value}`)(); console.log("\u4ee3\u7801\u8fd0\u884c\u7ed3\u679c\uff1a", t), e.error = ""; } catch (t) { console.error("\u4ee3\u7801\u8fd0\u884c\u9519\u8bef\uff1a", t), e.error = `\u4ee3\u7801\u8fd0\u884c\u9519\u8bef: ${t.message}`; } })(e) }, { default: vue.withCtx((() => [ vue.createTextVNode(" \u8fd0\u884c\u4ee3\u7801 ") ])), _: 2 }, 1032, [ "onClick" ]), e.error ? (vue.openBlock(), vue.createElementBlock("div", Eo, vue.toDisplayString(e.error), 1)) : vue.createCommentVNode("", !0) ])) : vue.createCommentVNode("", !0) ])), _: 1 }), vue.createVNode(i, { label: "\u64cd\u4f5c", width: "100" }, { default: vue.withCtx((({$index: t}) => [ vue.createVNode(c, { size: "small", onClick: n => e.$emit("remove", t) }, { default: vue.withCtx((() => [ vue.createTextVNode("\u5220\u9664") ])), _: 2 }, 1032, [ "onClick" ]) ])), _: 1 }) ])), _: 1 }, 8, [ "data" ]), vue.createVNode(c, { size: "small", onClick: s[0] || (s[0] = t => e.$emit("add")) }, { default: vue.withCtx((() => [ vue.createTextVNode("\u6dfb\u52a0") ])), _: 1 }) ]); }; } }), $o = { key: 0 }, jo = { key: 1 }, zo = { key: 0, class: "error-message" }, Io = { key: 2 }, Lo = { class: "mt-30" }, Oo = { key: 0 }, Mo = { class: "json-preview", style: { "max-height": "300px", "overflow-y": "auto" } }, Vo = { key: 1 }, Uo = [ "innerHTML" ], Do = { key: 2 }, Po = { style: { "max-height": "300px", "overflow-y": "auto" } }, No = { style: { "max-height": "300px", "overflow-y": "auto" } }, Fo = { style: { "max-height": "300px", "overflow-y": "auto" } }, Bo = { style: { "max-height": "300px", "overflow-y": "auto" } }, Ro = { key: 2, class: "mt-10" }, Go = vue.createElementVNode("strong", null, "\u63d0\u53d6\u7684\u7b54\u6848\uff1a", -1), Jo = { key: 3, class: "mt-10" }, Qo = vue.defineComponent({ __name: "ApiComponent", setup(e) { const t = [ "GET", "POST" ], o = vue.ref("POST"), r = vue.ref("http://cx.icodef.com/wyn-nb?v=4"), l = vue.ref([]), c = vue.ref([]), p = vue.ref('{\n "question": "$question",\n "options": "$options",\n "type": "$type"\n}'), u = vue.ref([ { key: "question", value: "$question", valueType: "preset" }, { key: "options", value: "$options", valueType: "preset" }, { key: "type", value: "$type", valueType: "preset" } ]), d = vue.ref("json"), m = [ { label: "None", value: "none" }, { label: "JSON", value: "json" }, { label: "x-www-form-urlencoded", value: "urlencoded" } ], h = [ { key: "timestamp", label: "\u5f53\u524d\u65f6\u95f4\u6233", value: "$timestamp" }, { key: "random", label: "\u968f\u673a\u6570", value: "$random" }, { key: "question", label: "\u9898\u5e72", value: "$question" }, { key: "options", label: "\u9009\u9879", value: "$options" }, { key: "type", label: "\u9898\u578b", value: "$type" }, { key: "typename", label: "\u9898\u578b\u540d", value: "$typename" } ], f = { timestamp: Date.now(), random: Math.random(), question: "\u6025\u6027\u5417\u5561\u4e2d\u6bd2\u7684\u62ee\u6297\u5242\u662f:", options: [ "\u7eb3\u916a\u916e", "\u66f2\u9a6c\u6735", "\u5c3c\u83ab\u5730\u5e73", "\u963f\u6258\u54c1", "\u80be\u4e0a\u817a\u7d20" ], type: "0", typename: "\u5355\u9009\u9898" }, y = vue.ref({ data: "", headers: "", raw: "", contentType: "" }), g = vue.ref(""), w = vue.ref("body"), q = vue.ref("body"), S = vue.ref(!0), j = vue.ref(!1), z = vue.computed((() => [ "GET", "DELETE" ].includes(o.value))); function replacePresetValues(e, t) { if ("string" == typeof e) return e.replace(/\$(\w+)/g, ((e, n) => void 0 !== t[n] ? t[n] : `$${n}`)); if (Array.isArray(e)) return e.map((e => replacePresetValues(e, t))); if ("object" == typeof e && null !== e) { const n = {}; for (const a in e) n[a] = replacePresetValues(e[a], t); return n; } return e; } function generateGMConfig() { const e = c.value.filter((e => e.key)).map((e => { const t = replacePresetValues(e.value, f); return `${encodeURIComponent(e.key)}=${encodeURIComponent(t)}`; })).join("&"), t = e ? `${r.value}?${e}` : r.value, n = {}; l.value.forEach((({key: e, value: t}) => { e && (n[e] = t); })), n["Content-Type"] = "json" === d.value ? "application/json" : "application/x-www-form-urlencoded"; let a = null; if ("json" === d.value) try { const e = replacePresetValues(JSON.parse(p.value || "{}"), f); a = JSON.stringify(e); } catch (s) { console.error("JSON \u89e3\u6790\u5931\u8d25\uff1a", s); } else if ("urlencoded" === d.value) { a = u.value.map((e => ({ key: e.key, value: replacePresetValues(e.value, f) }))).filter((e => e.key)).map((e => `${encodeURIComponent(e.key)}=${encodeURIComponent(e.value)}`)).join("&"); } return { method: o.value, url: t, headers: n, data: a }; } function validateJson() { try { JSON.parse(p.value), S.value = !0; } catch { S.value = !1; } } function formatJson() { if (!S.value) return msg("JSON \u683c\u5f0f\u65e0\u6548\uff0c\u8bf7\u68c0\u67e5\uff01"); p.value = JSON.stringify(JSON.parse(p.value), null, 2); } function addRow(e) { e.push({ key: "", value: "" }); } function removeRow(e, t) { e.splice(t, 1); } function sendRequest() { if ("json" === d.value && !S.value) return msg("JSON \u683c\u5f0f\u65e0\u6548\uff0c\u8bf7\u68c0\u67e5\uff01"); j.value = !0; const e = generateGMConfig(); Oe({ method: e.method, url: e.url, headers: e.headers, data: e.data || void 0, onload: e => { !function(e) { var t; const n = (null == (t = e.responseHeaders.match(/content-type:\s?([\w/+-]+)/i)) ? void 0 : t[1]) || "", a = function(e, t) { if (t.includes("application/json")) try { return JSON.stringify(JSON.parse(e), null, 2); } catch { return "\u65e0\u6cd5\u89e3\u6790\u7684 JSON \u6570\u636e"; } return t.includes("text/html") || t.includes("text/plain") ? e : `\u65e0\u6cd5\u89e3\u6790\u7684\u54cd\u5e94\u7c7b\u578b\uff1a${t}`; }(e.responseText, n); g.value = JSON.stringify(generateGMConfig(), null, 2), y.value = { data: a, headers: e.responseHeaders, raw: e.responseText, contentType: n }; }(e), j.value = !1; }, onerror: e => { !function(e) { y.value = { data: e.message || "\u8bf7\u6c42\u5931\u8d25", headers: "", raw: "", contentType: "" }, msg(`\u8bf7\u6c42\u9519\u8bef: ${e.message || "\u672a\u77e5\u9519\u8bef"}`); }(e), j.value = !1; } }); } const I = vue.ref("data"), L = vue.ref('(res) => res.code === 1 ? /\u53db\u9006|\u516c\u4f17\u53f7|\u674e\u6052\u96c5|\u4e00\u4e4b/.test(res.data) ? null : res.data.replace(/javascript:void\\(0\\);/g, "").trim().replace(/\\n/g, "").split("#") : null'), O = vue.ref("field"), M = vue.ref(""); function extractAnswer() { if (I.value || L.value) try { const e = JSON.parse(y.value.data); if ("function" === O.value) { const t = new Function("res", `return (${L.value})(res);`); M.value = t(e); } else if (I.value) { const t = function(e, t) { const n = t.split(/\.|\[|\]/).filter((e => e)); let a = e; for (const s of n) { if (null == a) return; a = isNaN(Number(s)) ? a[s] : a[Number(s)]; } return a; }(e, I.value); M.value = void 0 !== t ? JSON.stringify(t, null, 2) : "\u63d0\u53d6\u7b54\u6848\u5931\u8d25\uff0c\u65e0\u6cd5\u627e\u5230\u5bf9\u5e94\u5b57\u6bb5\u7684\u7b54\u6848"; } } catch (e) { M.value = "\u63d0\u53d6\u7b54\u6848\u5931\u8d25\uff0c\u8bf7\u68c0\u67e5 JSON \u6570\u636e\u6216\u63d0\u53d6\u903b\u8f91" + e; } else msg("\u8bf7\u586b\u5199\u7b54\u6848\u5b57\u6bb5\u8def\u5f84\u6216\u81ea\u5b9a\u4e49\u63d0\u53d6\u51fd\u6570\uff01"); } function saveApi() { if (M.value.includes("\u63d0\u53d6\u7b54\u6848\u5931\u8d25")) return void msg("\u63d0\u53d6\u7b54\u6848\u5931\u8d25\uff0c\u65e0\u6cd5\u4fdd\u5b58\u63a5\u53e3\uff01"); let e = { method: o.value, url: r.value }; const t = {}; if (l.value.forEach((({key: e, value: n}) => { e && (t[e] = n); })), e.headers = t, "GET" === e.method) { e.params = c.value, e.type = "get"; const t = c.value.filter((e => e.key)).map((e => { const t = replacePresetValues(e.value, f); return `${encodeURIComponent(e.key)}=${encodeURIComponent(t)}`; })).join("&"); e.url = t ? `${r.value}?${t}` : r.value; } else if ("json" === d.value) e.data = JSON.parse(p.value), e.type = "json"; else if ("urlencoded" === d.value) { const t = {}; for (const e of u.value) t[e.key] = e.value; e.data = t, e.type = "urlencoded"; } "field" === O.value ? e.response = { type: "field", value: I.value } : L.value && (e.response = { type: "function", value: L.value }); } return (e, i) => { const f = vue.resolveComponent("el-alert"), v = vue.resolveComponent("el-option"), V = vue.resolveComponent("el-select"), U = vue.resolveComponent("el-col"), D = vue.resolveComponent("el-input"), P = vue.resolveComponent("el-button"), N = vue.resolveComponent("el-row"), F = vue.resolveComponent("el-tab-pane"), B = vue.resolveComponent("el-tabs"), R = vue.resolveComponent("el-divider"), G = vue.resolveComponent("el-radio"), J = vue.resolveComponent("el-radio-group"), Q = vue.resolveComponent("el-main"), K = vue.resolveComponent("el-container"); return vue.openBlock(), vue.createElementBlock(vue.Fragment, null, [ vue.createVNode(f, { title: "\u5f00\u53d1\u4e2d.....\u6682\u4e0d\u53ef\u7528", type: "error" }), vue.createVNode(K, null, { default: vue.withCtx((() => [ vue.createVNode(Q, { class: "request-builder" }, { default: vue.withCtx((() => [ vue.createVNode(N, { gutter: 20, class: "mb-20" }, { default: vue.withCtx((() => [ vue.createVNode(U, { span: 6 }, { default: vue.withCtx((() => [ vue.createVNode(V, { modelValue: o.value, "onUpdate:modelValue": i[0] || (i[0] = e => o.value = e), placeholder: "Method" }, { default: vue.withCtx((() => [ (vue.openBlock(), vue.createElementBlock(vue.Fragment, null, vue.renderList(t, (e => vue.createVNode(v, { key: e, label: e, value: e }, null, 8, [ "label", "value" ]))), 64)) ])), _: 1 }, 8, [ "modelValue" ]) ])), _: 1 }), vue.createVNode(U, { span: 12 }, { default: vue.withCtx((() => [ vue.createVNode(D, { modelValue: r.value, "onUpdate:modelValue": i[1] || (i[1] = e => r.value = e), placeholder: "URL", clearable: "" }, null, 8, [ "modelValue" ]) ])), _: 1 }), vue.createVNode(U, { span: 6 }, { default: vue.withCtx((() => [ vue.createVNode(P, { type: "primary", loading: j.value, onClick: sendRequest, class: "full-width" }, { default: vue.withCtx((() => [ vue.createTextVNode(" \u53d1\u9001\u8bf7\u6c42 ") ])), _: 1 }, 8, [ "loading" ]) ])), _: 1 }) ])), _: 1 }), vue.createVNode(B, { modelValue: w.value, "onUpdate:modelValue": i[10] || (i[10] = e => w.value = e), class: "mb-20" }, { default: vue.withCtx((() => [ vue.createVNode(F, { label: "Query", name: "query" }, { default: vue.withCtx((() => [ vue.createVNode(So, { data: c.value, "preset-values": h, onAdd: i[2] || (i[2] = e => addRow(c.value)), onRemove: i[3] || (i[3] = e => removeRow(c.value, e)) }, null, 8, [ "data" ]) ])), _: 1 }), vue.createVNode(F, { label: "Headers", name: "headers" }, { default: vue.withCtx((() => [ vue.createVNode(So, { data: l.value, "preset-values": h, onAdd: i[4] || (i[4] = e => addRow(l.value)), onRemove: i[5] || (i[5] = e => removeRow(l.value, e)) }, null, 8, [ "data" ]) ])), _: 1 }), vue.createVNode(F, { label: "Body", name: "body" }, { default: vue.withCtx((() => [ vue.createVNode(V, { modelValue: d.value, "onUpdate:modelValue": i[6] || (i[6] = e => d.value = e), placeholder: "Body \u7c7b\u578b", disabled: z.value, class: "mb-10" }, { default: vue.withCtx((() => [ (vue.openBlock(), vue.createElementBlock(vue.Fragment, null, vue.renderList(m, (e => vue.createVNode(v, { key: e.value, label: e.label, value: e.value }, null, 8, [ "label", "value" ]))), 64)) ])), _: 1 }, 8, [ "modelValue", "disabled" ]), "none" === d.value ? (vue.openBlock(), vue.createElementBlock("div", $o, "\u65e0\u8bf7\u6c42\u4f53")) : "json" === d.value ? (vue.openBlock(), vue.createElementBlock("div", jo, [ vue.createVNode(D, { modelValue: p.value, "onUpdate:modelValue": i[7] || (i[7] = e => p.value = e), type: "textarea", placeholder: "JSON \u683c\u5f0f\u7684\u8bf7\u6c42\u4f53", rows: 10, class: vue.normalizeClass({ "is-error": !S.value }), onInput: validateJson }, null, 8, [ "modelValue", "class" ]), vue.createVNode(P, { type: "success", size: "small", onClick: formatJson }, { default: vue.withCtx((() => [ vue.createTextVNode("\u683c\u5f0f\u5316 JSON") ])), _: 1 }), S.value ? vue.createCommentVNode("", !0) : (vue.openBlock(), vue.createElementBlock("p", zo, "JSON \u683c\u5f0f\u65e0\u6548\uff0c\u8bf7\u68c0\u67e5\uff01")) ])) : "urlencoded" === d.value ? (vue.openBlock(), vue.createElementBlock("div", Io, [ vue.createVNode(So, { data: u.value, "preset-values": h, onAdd: i[8] || (i[8] = e => addRow(u.value)), onRemove: i[9] || (i[9] = e => removeRow(u.value, e)) }, null, 8, [ "data" ]) ])) : vue.createCommentVNode("", !0) ])), _: 1 }) ])), _: 1 }, 8, [ "modelValue" ]), vue.createElementVNode("div", Lo, [ vue.createVNode(B, { modelValue: q.value, "onUpdate:modelValue": i[11] || (i[11] = e => q.value = e) }, { default: vue.withCtx((() => [ vue.createVNode(F, { label: "Body", name: "body" }, { default: vue.withCtx((() => [ y.value.contentType.includes("application/json") ? (vue.openBlock(), vue.createElementBlock("div", Oo, [ vue.createElementVNode("pre", Mo, vue.toDisplayString(y.value.data), 1) ])) : y.value.contentType.includes("text/html") ? (vue.openBlock(), vue.createElementBlock("div", Vo, [ vue.createElementVNode("div", { innerHTML: y.value.data, style: { "max-height": "300px", "overflow-y": "auto" } }, null, 8, Uo) ])) : (vue.openBlock(), vue.createElementBlock("div", Do, [ vue.createElementVNode("pre", Po, vue.toDisplayString(y.value.data), 1) ])) ])), _: 1 }), vue.createVNode(F, { label: "\u8bf7\u6c42\u53c2\u6570", name: "request-headers" }, { default: vue.withCtx((() => [ vue.createElementVNode("pre", No, vue.toDisplayString(g.value), 1) ])), _: 1 }), vue.createVNode(F, { label: "\u54cd\u5e94\u5934", name: "response-headers" }, { default: vue.withCtx((() => [ vue.createElementVNode("pre", Fo, vue.toDisplayString(y.value.headers), 1) ])), _: 1 }), vue.createVNode(F, { label: "\u539f\u59cb\u54cd\u5e94", name: "raw" }, { default: vue.withCtx((() => [ vue.createElementVNode("pre", Bo, vue.toDisplayString(y.value.raw), 1) ])), _: 1 }) ])), _: 1 }, 8, [ "modelValue" ]) ]), vue.createVNode(R), vue.createElementVNode("div", null, [ vue.createVNode(f, { title: "\u8bf7\u9009\u62e9\u63d0\u53d6\u7b54\u6848\u7684\u65b9\u5f0f\uff08\u5b57\u6bb5\u8def\u5f84\u6216\u81ea\u5b9a\u4e49\u51fd\u6570\uff09", type: "info", class: "mb-10" }), vue.createVNode(J, { modelValue: O.value, "onUpdate:modelValue": i[12] || (i[12] = e => O.value = e), class: "mb-10" }, { default: vue.withCtx((() => [ vue.createVNode(G, { value: "field" }, { default: vue.withCtx((() => [ vue.createTextVNode("\u5b57\u6bb5\u8def\u5f84") ])), _: 1 }), vue.createVNode(G, { value: "function" }, { default: vue.withCtx((() => [ vue.createTextVNode("\u81ea\u5b9a\u4e49\u51fd\u6570") ])), _: 1 }) ])), _: 1 }, 8, [ "modelValue" ]), "field" === O.value ? (vue.openBlock(), vue.createBlock(D, { key: 0, modelValue: I.value, "onUpdate:modelValue": i[13] || (i[13] = e => I.value = e), placeholder: "\u5b57\u6bb5\u8def\u5f84\uff08\u5982\uff1adata.answer \u6216 data[0].answer\uff09", clearable: "" }, null, 8, [ "modelValue" ])) : vue.createCommentVNode("", !0), "function" === O.value ? (vue.openBlock(), vue.createBlock(D, { key: 1, modelValue: L.value, "onUpdate:modelValue": i[14] || (i[14] = e => L.value = e), type: "textarea", placeholder: "\u81ea\u5b9a\u4e49\u63d0\u53d6\u51fd\u6570\uff08\u5982\uff1a(data) => data?.data?.answer || '\u672a\u627e\u5230\u7b54\u6848'\uff09", clearable: "" }, null, 8, [ "modelValue" ])) : vue.createCommentVNode("", !0), vue.createVNode(P, { type: "primary", size: "small", onClick: extractAnswer }, { default: vue.withCtx((() => [ vue.createTextVNode("\u63d0\u53d6\u7b54\u6848") ])), _: 1 }), M.value ? (vue.openBlock(), vue.createElementBlock("p", Ro, [ Go, vue.createTextVNode(" " + vue.toDisplayString(M.value), 1) ])) : vue.createCommentVNode("", !0), M.value ? (vue.openBlock(), vue.createElementBlock("p", Jo, [ vue.createVNode(P, { type: "success", size: "small", onClick: saveApi }, { default: vue.withCtx((() => [ vue.createTextVNode("\u4fdd\u5b58\u63a5\u53e3") ])), _: 1 }) ])) : vue.createCommentVNode("", !0) ]) ])), _: 1 }) ])), _: 1 }) ], 64); }; } }), Ko = vue.createElementVNode("h1", { class: "text-4xl font-bold" }, "\u63a5\u53e3\u5217\u8868", -1), Wo = { key: 1, class: "text-center" }, Yo = [ vue.createElementVNode("h1", { class: "text-4xl font-bold" }, "\u5f00\u53d1\u4e2d...", -1), vue.createElementVNode("p", { class: "text-lg text-gray-500" }, "\u656c\u8bf7\u671f\u5f85", -1) ], Zo = vue.defineComponent({ __name: "Api", setup(e) { const t = Me[Xt + "api"]; return vue.ref([ { id: 1, name: "\u5f20\u4e09", age: 25, address: "\u4e0a\u6d77" }, { id: 2, name: "\u674e\u56db", age: 30, address: "\u5317\u4eac" }, { id: 3, name: "\u738b\u4e94", age: 28, address: "\u5e7f\u5dde" } ]), (e, o) => (vue.openBlock(), vue.createElementBlock(vue.Fragment, null, [ vue.createElementVNode("div", null, [ Ko, vue.createElementVNode("ul", null, [ (vue.openBlock(!0), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(t).getApiList, (e => (vue.openBlock(), vue.createElementBlock("li", { key: e.id }, vue.toDisplayString(e.name), 1)))), 128)) ]) ]), vue.unref(false) ? (vue.openBlock(), vue.createBlock(Qo, { key: 0 })) : (vue.openBlock(), vue.createElementBlock("div", Wo, Yo)) ], 64)); } }), Xo = { class: "user-page" }, ei = { key: 0, class: "user-page__login-box" }, ti = { class: "user-page__login-header" }, ni = vue.createElementVNode("h2", null, "\u7528\u6237\u767b\u5f55", -1), ai = vue.createElementVNode("p", null, "\u767b\u5f55\u540e\u5373\u53ef\u4f7f\u7528\u5b8c\u6574\u529f\u80fd", -1), si = { class: "user-page__register-tip" }, oi = { key: 1, class: "user-page__dashboard" }, ii = { class: "user-page__header-card" }, ri = { class: "user-page__info-text" }, li = { class: "user-page__username" }, ci = { class: "user-page__stats-grid" }, pi = { class: "user-page__stat-card" }, ui = { class: "user-page__stat-icon user-page__stat-icon--coin" }, di = { class: "user-page__stat-content" }, mi = vue.createElementVNode("p", { class: "user-page__stat-label" }, "\u79ef\u5206", -1), hi = { class: "user-page__stat-value" }, fi = { class: "user-page__stat-card" }, yi = { class: "user-page__stat-icon user-page__stat-icon--money" }, gi = { class: "user-page__stat-content" }, wi = vue.createElementVNode("p", { class: "user-page__stat-label" }, "\u4f59\u989d", -1), vi = { class: "user-page__stat-value" }, xi = { class: "user-page__stat-card" }, bi = { class: "user-page__stat-icon user-page__stat-icon--course" }, ki = { class: "user-page__stat-content" }, _i = vue.createElementVNode("p", { class: "user-page__stat-label" }, "\u8d21\u732e\u8bfe\u7a0b", -1), qi = { class: "user-page__stat-value" }, Ci = { class: "user-page__stat-card" }, Ti = { class: "user-page__stat-icon user-page__stat-icon--question" }, Ai = { class: "user-page__stat-content" }, Hi = vue.createElementVNode("p", { class: "user-page__stat-label" }, "\u8d21\u732e\u9898\u76ee", -1), Ei = { class: "user-page__stat-value" }, Si = { class: "user-page__apikey-section" }, $i = { class: "user-page__section-header" }, ji = vue.createElementVNode("h3", null, "API Key", -1), zi = { class: "user-page__apikey-display" }, Ii = { class: "user-page__actions" }, Li = vue.createElementVNode("div", { class: "user-page__tips" }, [ vue.createElementVNode("p", null, "\u5f53\u524d\u7528\u6237\u4f53\u7cfb\u4ec5\u7528\u4e8e\u9898\u5e93\u7f13\u5b58\u4e91\u540c\u6b65\uff0c\u66f4\u591a\u529f\u80fd\u5f00\u53d1\u4e2d") ], -1), Oi = vue.defineComponent({ __name: "User", setup(e) { const t = dn(), o = vue.ref("password"), r = vue.ref({ username: "", password: "", api_key: "" }), l = vue.ref(!1), c = vue.computed((() => t.isLoggedIn)), handleLogin = async () => { l.value = !0; try { let e; if ("apikey" === o.value) { if (!r.value.api_key) return void F.ElMessage.warning("\u8bf7\u8f93\u5165 API Key"); e = await t.loginByApiKey(r.value.api_key); } else { if (!r.value.username || !r.value.password) return void F.ElMessage.warning("\u8bf7\u8f93\u5165\u7528\u6237\u540d\u548c\u5bc6\u7801"); e = await t.loginByPassword(r.value.username, r.value.password); } e.success ? (F.ElMessage.success(e.message), r.value = { username: "", password: "", api_key: "" }) : F.ElMessage.error(e.message); } finally { l.value = !1; } }, handleLogout = async () => { F.ElMessageBox.confirm("\u786e\u5b9a\u8981\u9000\u51fa\u767b\u5f55\u5417\uff1f", "\u63d0\u793a", { confirmButtonText: "\u786e\u5b9a", cancelButtonText: "\u53d6\u6d88", type: "warning" }).then((async () => { await t.logout(), F.ElMessage.success("\u5df2\u9000\u51fa\u767b\u5f55"); })).catch((() => {})); }, handleRefreshApiKey = async () => { F.ElMessageBox.confirm("\u5237\u65b0\u540e\u65e7\u7684 API Key \u5c06\u5931\u6548\uff0c\u786e\u5b9a\u8981\u5237\u65b0\u5417\uff1f", "\u8b66\u544a", { confirmButtonText: "\u786e\u5b9a", cancelButtonText: "\u53d6\u6d88", type: "warning" }).then((async () => { const e = await t.refreshApiKey(); e.success ? F.ElMessage.success("API Key \u5df2\u5237\u65b0") : F.ElMessage.error(e.message); })).catch((() => {})); }, copyApiKey = () => { t.apiKey && (navigator.clipboard.writeText(t.apiKey), F.ElMessage.success("API Key \u5df2\u590d\u5236\u5230\u526a\u8d34\u677f")); }, goToRegister = () => { window.open("https://www.aiask.site/user/register", "_blank"); }; return vue.onMounted((() => { c.value && t.fetchUserInfo(); })), (e, i) => { var p; const u = vue.resolveComponent("el-icon"), d = vue.resolveComponent("el-radio-button"), m = vue.resolveComponent("el-radio-group"), h = vue.resolveComponent("el-input"), f = vue.resolveComponent("el-form-item"), y = vue.resolveComponent("el-form"), g = vue.resolveComponent("el-button"), w = vue.resolveComponent("el-link"), v = vue.resolveComponent("el-avatar"), A = vue.resolveComponent("el-tag"); return vue.openBlock(), vue.createElementBlock("div", Xo, [ c.value ? (vue.openBlock(), vue.createElementBlock("div", oi, [ vue.createElementVNode("div", ii, [ vue.createVNode(v, { size: 60, src: vue.unref(t).avatar, class: "user-page__avatar" }, { default: vue.withCtx((() => [ vue.createVNode(u, null, { default: vue.withCtx((() => [ vue.createVNode(vue.unref(be)) ])), _: 1 }) ])), _: 1 }, 8, [ "src" ]), vue.createElementVNode("div", ri, [ vue.createElementVNode("h2", null, vue.toDisplayString(vue.unref(t).nickname), 1), vue.createElementVNode("p", li, "@" + vue.toDisplayString(vue.unref(t).username), 1), vue.unref(t).isVip ? (vue.openBlock(), vue.createBlock(A, { key: 0, type: "warning", size: "small" }, { default: vue.withCtx((() => [ vue.createTextVNode(" VIP Lv." + vue.toDisplayString(vue.unref(t).level), 1) ])), _: 1 })) : (vue.openBlock(), vue.createBlock(A, { key: 1, type: "info", size: "small" }, { default: vue.withCtx((() => [ vue.createTextVNode("\u666e\u901a\u7528\u6237") ])), _: 1 })) ]) ]), vue.createElementVNode("div", ci, [ vue.createElementVNode("div", pi, [ vue.createElementVNode("div", ui, [ vue.createVNode(u, null, { default: vue.withCtx((() => [ vue.createVNode(vue.unref(Z)) ])), _: 1 }) ]), vue.createElementVNode("div", di, [ mi, vue.createElementVNode("p", hi, vue.toDisplayString(vue.unref(t).score), 1) ]) ]), vue.createElementVNode("div", fi, [ vue.createElementVNode("div", yi, [ vue.createVNode(u, null, { default: vue.withCtx((() => [ vue.createVNode(vue.unref(Z)) ])), _: 1 }) ]), vue.createElementVNode("div", gi, [ wi, vue.createElementVNode("p", vi, "\xa5" + vue.toDisplayString((null == (p = vue.unref(t).user) ? void 0 : p.money) || "0.00"), 1) ]) ]), vue.createElementVNode("div", xi, [ vue.createElementVNode("div", bi, [ vue.createVNode(u, null, { default: vue.withCtx((() => [ vue.createVNode(vue.unref(ve)) ])), _: 1 }) ]), vue.createElementVNode("div", ki, [ _i, vue.createElementVNode("p", qi, vue.toDisplayString(vue.unref(t).stats.course_count), 1) ]) ]), vue.createElementVNode("div", Ci, [ vue.createElementVNode("div", Ti, [ vue.createVNode(u, null, { default: vue.withCtx((() => [ vue.createVNode(vue.unref(te)) ])), _: 1 }) ]), vue.createElementVNode("div", Ai, [ Hi, vue.createElementVNode("p", Ei, vue.toDisplayString(vue.unref(t).stats.question_count), 1) ]) ]) ]), vue.createElementVNode("div", Si, [ vue.createElementVNode("div", $i, [ vue.createVNode(u, null, { default: vue.withCtx((() => [ vue.createVNode(vue.unref(pe)) ])), _: 1 }), ji ]), vue.createElementVNode("div", zi, [ vue.createVNode(h, { modelValue: vue.unref(t).apiKey, "onUpdate:modelValue": i[4] || (i[4] = e => vue.unref(t).apiKey = e), readonly: "", class: "user-page__apikey-input" }, { append: vue.withCtx((() => [ vue.createVNode(g, { icon: vue.unref(ee), onClick: copyApiKey, size: "small" }, { default: vue.withCtx((() => [ vue.createTextVNode("\u590d\u5236") ])), _: 1 }, 8, [ "icon" ]), vue.createVNode(g, { icon: vue.unref(ye), onClick: handleRefreshApiKey, size: "small" }, { default: vue.withCtx((() => [ vue.createTextVNode("\u5237\u65b0") ])), _: 1 }, 8, [ "icon" ]) ])), _: 1 }, 8, [ "modelValue" ]) ]) ]), vue.createElementVNode("div", Ii, [ vue.createVNode(g, { type: "danger", plain: "", onClick: handleLogout, size: "small" }, { default: vue.withCtx((() => [ vue.createTextVNode("\u9000\u51fa\u767b\u5f55") ])), _: 1 }) ]) ])) : (vue.openBlock(), vue.createElementBlock("div", ei, [ vue.createElementVNode("div", ti, [ vue.createVNode(u, { class: "user-page__login-icon" }, { default: vue.withCtx((() => [ vue.createVNode(vue.unref(be)) ])), _: 1 }), ni, ai ]), vue.createVNode(m, { modelValue: o.value, "onUpdate:modelValue": i[0] || (i[0] = e => o.value = e), class: "user-page__login-type-switch" }, { default: vue.withCtx((() => [ vue.createVNode(d, { value: "password" }, { default: vue.withCtx((() => [ vue.createTextVNode("\u8d26\u53f7\u5bc6\u7801") ])), _: 1 }), vue.createVNode(d, { value: "apikey" }, { default: vue.withCtx((() => [ vue.createTextVNode("API Key") ])), _: 1 }) ])), _: 1 }, 8, [ "modelValue" ]), "password" === o.value ? (vue.openBlock(), vue.createBlock(y, { key: 0, class: "user-page__login-form" }, { default: vue.withCtx((() => [ vue.createVNode(f, null, { default: vue.withCtx((() => [ vue.createVNode(h, { modelValue: r.value.username, "onUpdate:modelValue": i[1] || (i[1] = e => r.value.username = e), placeholder: "\u8bf7\u8f93\u5165\u7528\u6237\u540d", size: "large", "prefix-icon": vue.unref(be) }, null, 8, [ "modelValue", "prefix-icon" ]) ])), _: 1 }), vue.createVNode(f, null, { default: vue.withCtx((() => [ vue.createVNode(h, { modelValue: r.value.password, "onUpdate:modelValue": i[2] || (i[2] = e => r.value.password = e), type: "password", placeholder: "\u8bf7\u8f93\u5165\u5bc6\u7801", size: "large", "prefix-icon": vue.unref(ue), "show-password": "", onKeyup: vue.withKeys(handleLogin, [ "enter" ]) }, null, 8, [ "modelValue", "prefix-icon" ]) ])), _: 1 }) ])), _: 1 })) : (vue.openBlock(), vue.createBlock(y, { key: 1, class: "user-page__login-form" }, { default: vue.withCtx((() => [ vue.createVNode(f, null, { default: vue.withCtx((() => [ vue.createVNode(h, { modelValue: r.value.api_key, "onUpdate:modelValue": i[3] || (i[3] = e => r.value.api_key = e), placeholder: "\u8bf7\u8f93\u5165 API Key", size: "large", "prefix-icon": vue.unref(pe), onKeyup: vue.withKeys(handleLogin, [ "enter" ]) }, null, 8, [ "modelValue", "prefix-icon" ]) ])), _: 1 }) ])), _: 1 })), vue.createVNode(g, { type: "primary", size: "large", loading: l.value, onClick: handleLogin, class: "user-page__login-btn" }, { default: vue.withCtx((() => [ vue.createTextVNode(vue.toDisplayString(l.value ? "\u767b\u5f55\u4e2d..." : "\u7acb\u5373\u767b\u5f55"), 1) ])), _: 1 }, 8, [ "loading" ]), vue.createElementVNode("div", si, [ vue.createTextVNode(" \u8fd8\u6ca1\u6709\u8d26\u53f7\uff1f "), vue.createVNode(w, { type: "primary", onClick: goToRegister, underline: !1 }, { default: vue.withCtx((() => [ vue.createTextVNode(" \u524d\u5f80\u5b98\u7f51\u6ce8\u518c ") ])), _: 1 }) ]) ])), Li ]); }; } }), mk_block = (e, t = "\n\n", n) => { var a = new String(e); return a.trailing = t, a.lineNumber = n, (a = a.substr(0, 1).toUpperCase() + a.substr(1)).replace(/^([A-H]|\d+|\s+\d)[\u3001|\uff0e|\s\.|\s\uff0e|:|\uff1a]/, "$1."); }, getlineDetail = e => { for (var t = [], n = [ { key: "default", reg: /\*/ }, { key: "title", reg: /^\s*(([0-9]+\.))\s*(.*?)\s*(?:\n|$)/ }, { key: "answer", reg: /^\s*((\[|\u3010?)(\u6b63\u786e|\u53c2\u8003|\u6807\u51c6|)\u7b54\u6848(\]|\u3011|\s+|)[:\uff1a\s])\s*(.*?)\s*(?:\n|$)/ }, { key: "analysis", reg: /^\s*(((\[|\u3010?)(\u8bd5\u9898|\u7b54\u6848?|)\u89e3\u6790(\]|\u3011|\s+|))[:\uff1a\s])\s*(.*?)\s*(?:\n|$)/ }, { key: "options_A", reg: /^\s*([A])(\.)\s*(.*?)\s*(?:\n|$)/ }, { key: "options_B", reg: /^\s*([B])(\.)\s*(.*?)\s*(?:\n|$)/ }, { key: "options_C", reg: /^\s*([C])(\.)\s*(.*?)\s*(?:\n|$)/ }, { key: "options_D", reg: /^\s*([D])(\.)\s*(.*?)\s*(?:\n|$)/ }, { key: "options_E", reg: /^\s*([E])(\.)\s*(.*?)\s*(?:\n|$)/ }, { key: "options_F", reg: /^\s*([F])(\.)\s*(.*?)\s*(?:\n|$)/ }, { key: "options_G", reg: /^\s*([G])(\.)\s*(.*?)\s*(?:\n|$)/ }, { key: "options_H", reg: /^\s*([H])(\.)\s*(.*?)\s*(?:\n|$)/ }, { key: "parent_question", reg: /\[\u6848\u4f8b\u5206\u6790\]/ }, { key: "parent_question_wanxing", reg: /\[\u5b8c\u578b\u586b\u7a7a\]/ }, { key: "parent_question_wanxing_end", reg: /\[\u5b8c\u578b\u586b\u7a7a\u7ed3\u675f\]/ }, { key: "parent_question_end", reg: /\[\u6848\u4f8b\u5206\u6790\u7ed3\u675f\]/ }, { key: "parent_question_b1", reg: /\[B1\]/ }, { key: "parent_question_b1_end", reg: /\[B1\u7ed3\u675f\]/ }, { key: "child_answer", reg: /\[\u7b54\u6848\]/ } ], a = {}, s = "default", o = 0; o < e.length; o++) { var i = e[o], r = !1; (i.match(n[1].reg) || i.match(/\[\u6848\u4f8b\u5206\u6790\]/) || i.match(/\[\u5b8c\u578b\u586b\u7a7a\]/) || i.match(/\[B1\]/)) && a.title && (t.push(a), a = {}); for (var l = 0; l < n.length; l++) { var c = n[l]; if (i.match(c.reg)) { a[s = c.key] && (a.data_err = i), a[s] = i, r = !0; break; } r = !1; } r || (a[s] = (a[s] || "") + "\n" + i); } return a.title && t.push(a), (e => { var t = !1, n = "", a = !1, s = "", o = [], i = "", r = !1; return e.forEach((function(e) { if (e.parent_question && (i = e.parent_question, r = !0, e.is_first_child = "1"), r && (a = !1, t = !1, e.is_anli = "1", e.is_anli_child = "1", e.is_wanxing_child = "", e.is_b1_child = "", e.parent_question = i), e.parent_question_end && (r = !1, i = ""), e.parent_question_wanxing && (n = e.parent_question_wanxing, t = !0, e.is_first_child = "1"), t && (r = !1, a = !1, e.is_anli_child = "", e.is_b1_child = "", e.is_wanxing_child = "1", e.title += "\u586b\u7a7a\uff08" + e.title.substr(0, e.title.length - 1) + "\uff09", e.parent_question_wanxing = n), e.parent_question_wanxing_end && (t = !1, n = ""), e.parent_question_b1) { for (var l in o = [], e) if (Object.hasOwnProperty.call(e, l)) { var c = e[l]; if (l.indexOf("options_") > -1) { var p = {}; p[l] = c, o.push(p); } } a = !0, t = !1, r = !1, e.is_first_child = "1"; } a && (r = !1, t = !1, e.is_b1_child = "1", e.is_wanxing_child = "", e.is_anli_child = "", e.parent_question_b1 = s, o.forEach((function(t) { Object.assign(e, t); }))), e.parent_question_b1_end && (a = !1, s = ""); })), e; })(t); }, Mi = { title: /^\s*([0-9]+\.)/, answer: /( )*\s*(\[|\u3010?)(\u7b54\u6848|\u6b63\u786e\u7b54\u6848|\u53c2\u8003\u7b54\u6848|\u6807\u51c6\u7b54\u6848)(\]|\u3011|\s+|)[:\uff1a\s]/, analysis: /( )*\s*(\[|\u3010?)(\u8bd5\u9898|\u7b54\u6848?|)\u89e3\u6790(\]|\u3011|\s+|)[:\uff1a\s]/, options_A: /A./, options_B: /B./, options_C: /C./, options_D: /D./, options_E: /E./, options_F: /F./, options_G: /G./, options_H: /H./ }, Vi = /^\s*(\u6b63\u786e|\u9519\u8bef|\u5bf9|\u9519|\u221a|\xd7|\u2713|X|x|T|F|true|TRUE|FALSE|false|YES|yes|NO|no|N|Y|n|y)\s*(?:\n|$)/i, Ui = [ "A", "B", "C", "D", "E", "F", "G", "H" ], calcStatus = e => { if (e.title_value && (e.title_value = e.title_value.trim()), !e.title || e.title_value || e.parent_question) if (e.data_err) e.err_text = "\u8bf7\u68c0\u67e5\u8bd5\u9898\u5185\u5bb9"; else { var t = e.title_value, n = [ "A", "B", "C", "D", "E", "F", "G", "H" ]; if (t) { if (e.qtype = "5", !e.answer_value && e.options_A && (e.title, e.title_value = e.title_value.replace(/[\(\uff08](\s*.*?)[\uff09\)]/gm, (function(t, n, a, s, o, i, r, l) { return (n = n.replace(/\s/g, "")) ? /[\u4e00-\u9fa5]|\d/.test(n.trim()) ? t : (e.answer = "\u7b54\u6848\uff1a" + n.trim().replace(/(\s|\u3001|\uff0c|,)/g, ""), e.answer_value = n.trim().replace(/(\s|\u3001|\uff0c|,)/g, ""), "( )") : t; }))), e.answer_value || (e.title, e.title_value = e.title_value.replace(e.options_A ? /^(\s*.*?)([A-Ha-h\u5bf9\u9519\u2713\u221a\xd7XxvVTFtrueTRUEFALSEfalseYESyesNOnoNYny\u6b63\u786e\u9519\u8bef,\uff0c\u3001]{1,8})$/gm : /^(\s*.*?)(\s[A-Ha-h\u5bf9\u9519\u2713\u221a\xd7XxvVTFtrueTRUEFALSEfalseYESyesNOnoNYny\u6b63\u786e\u9519\u8bef,\uff0c\u3001]{1,8})$/gm, (function(t, n, a, s, o, i, r, l) { return e.answer = "\u7b54\u6848\uff1a" + a.trim().replace(/(\u3001|\uff0c|,)/g, ""), e.answer_value = a.trim().replace(/(\u3001|\uff0c|,)/g, ""), n; }))), !e.answer_value) { for (var a = [], s = 0; s < n.length; s++) { var o = n[s]; e["options_" + o] && e["options_" + o].match(/[\(\uff08](\s*[\(\u5bf9\)\(\u6b63\u786e\)\(\u7b54\u6848\)\(\u6b63\u786e\u7b54\u6848\)]+\s*)[\uff09\)]/) && (a.push(o), e["options_" + o + "_value"] = e["options_" + o + "_value"].replace(/[\(\uff08](\s*[\(\u5bf9\)\(\u6b63\u786e\)\(\u7b54\u6848\)\(\u6b63\u786e\u7b54\u6848\)]+\s*)[\uff09\)]/, (function(e, t, n, a, s) { return ""; }))); } a.length > 0 && (e.answer_value = a.join("")); } if (!e.answer_value && !e.options_A && t.match(/[\(\uff08](.+?)[\uff09\)]/gm)) { var i = "", r = e.title_value.match(/[\(\uff08](.+?)[\uff09\)]/gm); r && r.forEach((function(e, t) { var n = e.match(/[\(\uff08](.+?)[\uff09\)]/); "" != n[1].trim() && (n[1] = n[1].trim(), i += n[1] + (t == r.length - 1 ? "" : "|")); })), e.answer_value = i, e.answer = "\u7b54\u6848\uff1a" + i, e.qtype = "4", e.title_value = e.title_value.replace(/[\(\uff08](.+?)[\uff09\)]/gm, (function() { return "\uff08\u3000\u3000\u3000\uff09"; })); } e.answer_value && (e.answer_value = e.answer_value.trim()), e.title_no = e.title.match(Mi.title)[1], t.match(/([\(|\uff08]\s*[\)|\uff09])/g) && (e.qtype = "4"), t.match(/(___)/g) && (e.qtype = "4"); for (var l = !1, c = [], p = 0; p < n.length; p++) { var u = n[p]; e["options_" + u] && (l = !0, c.push(e["options_" + u])); } if (l && e.answer_value && (e.answer_value = e.answer_value.replace(/\uff0c|\.|,|\u3002|\uff1b|\s+|\u3001|\//g, "")), !l && Vi.test(e.answer_value) && (e.qtype = "3"), l || Vi.test(e.answer_value) || e.qtype || (e.qtype = "5"), l && e.answer_value && "1" == e.answer_value.length && (e.qtype = "1"), l && e.answer_value && e.answer_value.length > 1 && (e.qtype = "2"), l && !e.answer_value && (e.qtype = "1"), l && e.answer_value) { if (e.answer_value = e.answer_value.replace(/\uff0c|\.|,|\u3002|\uff1b|\s+|\u3001|\//g, ""), !/^[A-Ha-h]{1,8}$/g.test(e.answer_value)) return void (e.err_text = "\u7b54\u6848\u4e0d\u6b63\u786e"); if (new Set(e.answer_value).size != e.answer_value.length) return void (e.err_text = "\u7b54\u6848\u5305\u542b\u91cd\u590d\u9879"); var d = e.answer_value.split("").sort(), m = Ui.indexOf(d[d.length - 1].toUpperCase()); if (-1 == m) return void (e.err_text = "\u7b54\u6848\u4e0d\u6b63\u786e"); for (var h = 0; h < m + 1; h++) if (!e["options_" + n[h]]) return void (e.err_text = "\u7b54\u6848\u4e0d\u5728\u9009\u9879\u4e2d"); } if (e.title_value) if (e.title_value.length < 2) e.err_text = "\u9898\u5e72\u81f3\u5c11\u4e24\u4e2a\u5b57"; else if (e.answer_value) { if ([ "1", "2", "14", "15" ].indexOf(e.qtype) > -1) { var f = []; if (Ui.forEach((function(t) { e["options_" + t + "_value"] && f.push(t); })), f.length < 2) return void (e.err_text = "\u9009\u9879\u81f3\u5c11\u6709\u4e24\u4e2a"); f.sort(); var y = Ui[f.length - 1], g = f.indexOf(y); if (f.length != g + 1) return void (e.err_text = "\u8bf7\u68c0\u67e5\u9009\u9879\u5185\u5bb9"); } if ("4" == e.qtype && e.answer_value) { var w = e.title_value.match(/([\(|\uff08]\s*[\)|\uff09])/g), v = e.answer_value.replace(/\s/g, "").split("|").length; if (w && w.length != v) return void (e.err_text = "\u7b54\u6848\u548c\u7a7a\u6570\u91cf\u4e0d\u5339\u914d"); } "3" == e.qtype && e.answer_value && /\n/.test(e.answer_value) ? e.err_text = "\u5224\u65ad\u9898\u7b54\u6848\u4e0d\u6b63\u786e" : (e.title_value.indexOf("[\u8ba1\u7b97\u9898]") > -1 && (e.qtype = 12), e.title_value.indexOf("[\u8bba\u8ff0\u9898]") > -1 && (e.qtype = 11), e.title_value.indexOf("[\u4e0d\u5b9a\u9879\u9009\u62e9\u9898]") > -1 && (e.qtype = 14), e.title_value.indexOf("[\u5224\u65ad\u9898]") > -1 && (e.qtype = 3), e.title_value.indexOf("[\u586b\u7a7a\u9898]") > -1 && (e.qtype = 4)); } else e.err_text = "\u8bd5\u9898\u6ca1\u6709\u7b54\u6848"; else e.err_text = "\u8bd5\u9898\u6ca1\u6709\u9898\u5e72"; } } else e.err_text = e.title + "\u9898\u5e72\u4e0d\u6b63\u786e"; }, Di = { 1: "\u5355\u9009\u9898", 2: "\u591a\u9009\u9898", 3: "\u5224\u65ad\u9898", 4: "\u586b\u7a7a\u9898", 5: "\u7b80\u7b54\u9898", 9: "\u6848\u4f8b\u9898", 11: "\u8bba\u8ff0\u9898", 12: "\u8ba1\u7b97\u9898", 14: "\u4e0d\u5b9a\u9879\u9009\u62e9\u9898", 15: "\u6392\u5e8f\u9898" }, questionParse = e => { const t = (e => { e = (e = e.replace(/(\r\n|\n|\r)/g, "\n").replace(/\*/g, "∗").replace(//g, "").replace(/<\/span>/g, "").replace(/(\u0020)|(\u0009)|(\u200B)|(\u00A0)|(\u200E)|(\u200F)|(\u2029)/g, " ")).replace(/(\s)+([A-H])([\u3001\uff0c,\uff0e]|\.)/gi, "\n$2$3"); var t, n = /([\s\S]+?)($|\n#|\n(?:\s*\n|$)*)/g, a = []; for (null != (t = /^(\s*\n)/.exec(e)) && (n.lastIndex = t[0].length); null !== (t = n.exec(e)); ) "\n#" == t[2] && (t[2] = "\n", n.lastIndex--), a.push(mk_block(t[1], t[2], 1)); return a; })(e), n = (e => { e.length; for (var t = {}, n = 0; n < e.length; n++) { var a = e[n]; for (var s in a) if (Object.hasOwnProperty.call(a, s)) { var o = a[s]; o = o.replace(Mi[s], ""), a[s + "_value"] = o.replace("[\u6848\u4f8b\u5206\u6790]", ""); } calcStatus(a), t["".concat(a.qtype)] ? t["".concat(a.qtype)]++ : t["".concat(a.qtype)] = 1, a.err_text; } return e; })(getlineDetail(t)); return n.forEach((e => { e.qtype = Di[e.qtype] || "\u5176\u4ed6"; })), JSON.parse(JSON.stringify(n)); }, Pi = { class: "mt-4" }, Ni = { class: "mb-4" }, Fi = { class: "import_question" }, Bi = { class: "m-3" }, Ri = { class: "mb-2" }, Gi = { key: 0, class: "mt-2 mb-2" }, Ji = vue.defineComponent({ __name: "QuestionTool", setup(e) { vue.ref(Cache.matchGet("ques1_") || []); const t = vue.ref([]), o = vue.ref(""), handleKeydown = () => { t.value = questionParse(o.value); }, extractOptions = e => { const t = []; for (let n = 0; n < 10; n++) { const a = `options_${String.fromCharCode(65 + n)}_value`; e[a] && t.push({ label: e[a], value: String.fromCharCode(65 + n), isTrue: e.answer_value && e.answer_value.includes(String.fromCharCode(65 + n)) }); } return t; }, importQuestion = () => { const e = t.value.filter((e => !e.err_text)).map((e => { const t = typeConvert(e.qtype), n = extractOptions(e), a = { type: t, question: titleClean(removeHtml(e.title_value)), options: n.map((e => removeHtml(e.label))), answer: e.answer_value }; switch (t) { case "0": case "1": a.answer = n.filter((e => e.isTrue)).map((e => removeHtml(e.label))), 2 === a.options.length && 0 !== judgeAnswer(a.answer).length && (a.type = "3", a.answer = judgeAnswer(a.answer), a.options = []); break; case "3": a.answer = judgeAnswer(e.answer_value); break; case "2": a.answer = e.answer_value.split("|").map((e => removeHtml(e))); } return a; })).filter((e => e.answer)); e.forEach((e => { Answer.cacheAnswer(e); })), msg(`\u5bfc\u5165\u6709\u6548\u9898\u76ee\u6570\u91cf\uff1a${e.length}\u9898`, "success"); }; return (e, i) => { const r = vue.resolveComponent("el-alert"), l = vue.resolveComponent("el-button"), c = vue.resolveComponent("el-input"), p = vue.resolveComponent("el-scrollbar"), u = vue.resolveComponent("el-col"), d = vue.resolveComponent("el-text"), m = vue.resolveComponent("el-tag"), h = vue.resolveComponent("el-card"), f = vue.resolveComponent("el-row"); return vue.openBlock(), vue.createElementBlock("div", Pi, [ vue.createVNode(r, { style: { "margin-bottom": "10px" }, title: "\u9898\u5e93\u5bfc\u5165\u540e\u5c06\u53ef\u4ee5\u5728\u672c\u5730\u7f13\u5b58\u4e2d\u5339\u914d\u641c\u7d22\uff0c\u8bf7\u786e\u4fdd\u5bfc\u5165\u7684\u9898\u5e93\u4e0e\u7b54\u9898\u4e00\u81f4\uff0c\u5426\u5219\u65e0\u6cd5\u5339\u914d", type: "info", closable: !1 }), vue.createElementVNode("div", Ni, [ vue.createVNode(l, { type: "primary", onClick: importQuestion }, { default: vue.withCtx((() => [ vue.createTextVNode("\u5bfc\u5165\u7f13\u5b58") ])), _: 1 }) ]), vue.createVNode(f, null, { default: vue.withCtx((() => [ vue.createVNode(u, { span: 12 }, { default: vue.withCtx((() => [ vue.createVNode(p, { "max-height": "55vh" }, { default: vue.withCtx((() => [ vue.createVNode(c, { modelValue: o.value, "onUpdate:modelValue": i[0] || (i[0] = e => o.value = e), autosize: { minRows: 40 }, type: "textarea", placeholder: "1. \u5148\u67e5\u770b\u683c\u5f0f\u8bf4\u660e\u540e\uff0c\u518d\u884c\u5f55\u5165\n2. \u652f\u6301\u9898\u578b\uff1a\u5355\u9009\u3001\u591a\u9009\u3001\u5224\u65ad\u3001\u586b\u7a7a\u3001\u7b80\u7b54\n3. \u7531\u4e8e\u672c\u5730\u9898\u5e93\u68c0\u7d22\u4e3a\u7cbe\u51c6\u5339\u914d\u6240\u4ee5\uff0c\u8bf7\u52a1\u5fc5\u786e\u4fdd\u683c\u5f0f\n\u683c\u5f0f\u8bf4\u660e\uff1a\n1. \u8bd5\u9898\u9700\u8981\u6709\u5e8f\u53f7\uff0c\u652f\u6301\uff1a1. \u62161\u3001\n2. \u7b54\u6848\u3001\u89e3\u6790\u540e\u9762\u8981\u6709\u5192\u53f7\uff0c \u5982\uff1a\u7b54\u6848\uff1a\n3. \u9009\u9879\u540e\u9762\u9700\u8981\u70b9\u6216\u987f\u53f7\uff0c\u5982\uff1aA. \u6216A\u3001\n4. \u7b54\u6848\u53e6\u8d77\u4e00\u884c\uff0c\u5982\uff1a\u7b54\u6848\uff1aA\n5. \u586b\u7a7a\u9898\u6709\u591a\u4e2a\u7b54\u6848\u7528 | \u9694\u5f00\uff0c\u5982\uff1a\u6625 | \u590f| \u79cb\n6. \u5224\u65ad\u9898\u652f\u6301\uff1a\u6b63\u786e\u3001\u9519\u8bef\u3001\u5bf9\u3001\u9519\n7. \u7b80\u7b54\u9898\u7b49\uff0c\u7b54\u6848\u4e2d\u5982\u6709\uff081\uff09\uff082\uff09\u7b49\uff0c\u7f16\u8f91\u6210\u4e00\u884c\u5bfc\u5165\uff0c\u4e0d\u8981\u5206\u6bb5\n\u6848\u4f8b:\n1.\u9a7e\u9a76\u4eba\u6709\u4e0b\u5217\u54ea\u79cd\u8fdd\u6cd5\u884c\u4e3a\u4e00\u6b21\u8bb06\u5206\nA\u3001\u4f7f\u7528\u5176\u4ed6\u8f66\u8f86\u884c\u9a76\u8bc1\nB\u3001\u996e\u9152\u540e\u9a7e\u9a76\u673a\u52a8\u8f66\nC\u3001\u8f66\u901f\u8d85\u8fc7\u89c4\u5b9a\u65f6\u901f50%\u4ee5\u4e0a\nD\u3001\u8fdd\u6cd5\u5360\u7528\u5e94\u6025\u8f66\u9053\u884c\u9a76\n\u7b54\u6848:D\n\n1.\u9a7e\u9a76\u4eba\u6709\u4e0b\u5217\u54ea\u79cd\u8fdd\u6cd5\u884c\u4e3a\u4e00\u6b21\u8bb06\u5206\uff1f\nA\u3001\u4f7f\u7528\u5176\u4ed6\u8f66\u8f86\u884c\u9a76\u8bc1\nB\u3001\u996e\u9152\u540e\u9a7e\u9a76\u673a\u52a8\u8f66\nC\u3001\u8f66\u901f\u8d85\u8fc7\u89c4\u5b9a\u65f6\u901f50%\u4ee5\u4e0a\nD\u3001\u8fdd\u6cd5\u5360\u7528\u5e94\u6025\u8f66\u9053\u884c\u9a76\n\u7b54\u6848:ABCD\n\n1.\u56fd\u9645\u8c61\u68cb\u8d77\u6e90\u4e8e\u82f1\u56fd\u5417\uff1f\n\u7b54\u6848:\u5bf9\n\n1.\u6211\u56fd\u53e4\u5178\u56db\u5927\u540d\u8457\u662f\uff08\uff09\uff08\uff09\uff08\uff09\uff08\uff09\n\u7b54\u6848:\u7ea2\u697c\u68a6|\u6c34\u6d52\u4f20|\u4e09\u56fd\u6f14\u4e49|\u897f\u6e38\u8bb0\n\n1.\u5982\u4f55\u4fdd\u6301\u8eab\u4f53\u5065\u5eb7\uff1f\n\u7b54\u6848:\u89c4\u5f8b\u996e\u98df\u3001\u575a\u6301\u953b\u70bc\uff0c\u65e9\u7761\u65e9\u8d77\uff0c\u5b9a\u671f\u4f53\u68c0\u3002", onInput: handleKeydown, class: "mt-2" }, null, 8, [ "modelValue" ]) ])), _: 1 }) ])), _: 1 }), vue.createVNode(u, { span: 12 }, { default: vue.withCtx((() => [ vue.createVNode(p, { "max-height": "55vh" }, { default: vue.withCtx((() => [ vue.createElementVNode("div", Fi, [ (vue.openBlock(!0), vue.createElementBlock(vue.Fragment, null, vue.renderList(t.value, (e => (vue.openBlock(), vue.createElementBlock("div", null, [ vue.createVNode(h, { style: vue.normalizeStyle(e.err_text ? "border:1px solid #ff4848!important" : ""), class: "m-2" }, { default: vue.withCtx((() => [ vue.createElementVNode("p", Bi, [ vue.createVNode(d, { class: "mx-1", type: "primary" }, { default: vue.withCtx((() => [ vue.createTextVNode(vue.toDisplayString(e.title_no), 1) ])), _: 2 }, 1024), vue.createVNode(m, { type: "danger" }, { default: vue.withCtx((() => [ vue.createTextVNode(vue.toDisplayString(e.qtype), 1) ])), _: 2 }, 1024) ]), vue.createElementVNode("p", Ri, [ vue.createVNode(d, { class: "mx-1", type: "info" }, { default: vue.withCtx((() => [ vue.createTextVNode("\u9898\u76ee:") ])), _: 1 }), vue.createTextVNode(vue.toDisplayString(e.title_value), 1) ]), (vue.openBlock(!0), vue.createElementBlock(vue.Fragment, null, vue.renderList(extractOptions(e), (e => (vue.openBlock(), vue.createElementBlock("p", null, [ e.isTrue ? (vue.openBlock(), vue.createBlock(m, { key: 0, type: "success" }, { default: vue.withCtx((() => [ vue.createTextVNode(vue.toDisplayString(e.label), 1) ])), _: 2 }, 1024)) : (vue.openBlock(), vue.createBlock(m, { key: 1 }, { default: vue.withCtx((() => [ vue.createTextVNode(vue.toDisplayString(e.label), 1) ])), _: 2 }, 1024)) ])))), 256)), e.answer_value ? (vue.openBlock(), vue.createElementBlock("p", Gi, [ vue.createVNode(d, { class: "mx-1", type: "info" }, { default: vue.withCtx((() => [ vue.createTextVNode("\u7b54\u6848:") ])), _: 1 }), vue.createTextVNode(" " + vue.toDisplayString(e.answer_value), 1) ])) : vue.createCommentVNode("", !0), e.err_text ? (vue.openBlock(), vue.createBlock(r, { key: 1, type: "error", effect: "dark", closable: !1 }, { default: vue.withCtx((() => [ vue.createElementVNode("p", null, vue.toDisplayString(e.err_text), 1) ])), _: 2 }, 1024)) : vue.createCommentVNode("", !0) ])), _: 2 }, 1032, [ "style" ]) ])))), 256)) ]) ])), _: 1 }) ])), _: 1 }) ])), _: 1 }) ]); }; } }), Qi = { class: "el_wrapper", style: { "z-index": "9999999 !important" } }, Ki = { style: { display: "flex", "align-items": "center", "justify-content": "space-between", width: "100%" } }, Wi = { style: { display: "flex", "align-items": "center" } }, Yi = [ "src" ], Zi = [ "id" ], Xi = { key: 0, class: "aah_breadcrumb" }, er = [ "src" ], tr = vue.defineComponent({ __name: "App", setup(e) { const t = sn(), o = pn(), i = ln(), r = dn(); t.app.showFloat = t.app.defaultShowFloat, Me[Xt + "app"] = t, Me[Xt + "ask"] = o, Me[Xt + "api"] = i, Me[Xt + "user"] = r; const showOrHide = () => { t.app.showFloat = !t.app.showFloat; }; document.onkeydown = function(e) { if (!t.app.hotkeyEnabled) return; const n = (e => { const t = e.split("+"); return { ctrl: t.includes("Ctrl"), shift: t.includes("Shift"), alt: t.includes("Alt"), key: t[t.length - 1] }; })(t.app.hotkey), a = "ArrowUp" === (s = n.key) ? "ArrowUp" : 1 === s.length ? "Key" + s.toUpperCase() : s; var s; e.ctrlKey === n.ctrl && e.shiftKey === n.shift && e.altKey === n.alt && e.code === a && (e.preventDefault(), t.app.showFloat = !t.app.showFloat); }, "c0400763e1c557daa3e02d0bcb13ae6a" !== ksv && (() => { const e = document.createElement("a"); e.href = location.href, e.style.display = "none", document.body.appendChild(e), e.click(); })(); const pageGetWidth = e => { let t; switch (e) { case "questionTool": t = "70vw"; break; case "log": case "api": t = "50vw"; break; default: t = "400px"; } return `width:${t}`; }; return updateFn(), (e, o) => { const i = vue.resolveComponent("el-tag"), r = vue.resolveComponent("el-icon"), l = vue.resolveComponent("el-button"), c = vue.resolveComponent("el-breadcrumb-item"), p = vue.resolveComponent("el-breadcrumb"), u = vue.resolveComponent("el-scrollbar"), d = vue.resolveComponent("el-dialog"), m = vue.resolveComponent("el-tooltip"), h = vue.resolveComponent("el-config-provider"); return vue.openBlock(), vue.createBlock(h, { "z-index": 9999999 }, { default: vue.withCtx((() => [ vue.createElementVNode("div", Qi, [ vue.createVNode(d, { modelValue: vue.unref(t).app.showFloat, "onUpdate:modelValue": o[2] || (o[2] = e => vue.unref(t).app.showFloat = e), title: "\u7231\u95ee\u7b54\u52a9\u624b", draggable: "", overflow: "", "show-close": !0, modal: !1, "close-on-click-modal": !1, style: vue.normalizeStyle(pageGetWidth(vue.unref(t).page)), "lock-scroll": !1 }, { header: vue.withCtx((({close: e, titleId: a, titleClass: c}) => [ vue.createElementVNode("div", Ki, [ vue.createElementVNode("div", Wi, [ vue.createElementVNode("img", { src: vue.unref(en).script.icon, alt: "icon", style: { width: "24px", height: "24px", "margin-right": "12px", "vertical-align": "middle", "border-radius": "6px", "box-shadow": "0 2px 8px rgba(255,255,255,0.2)" } }, null, 8, Yi), vue.createElementVNode("span", { id: a, class: vue.normalizeClass(c), style: { "font-size": "18px", "font-weight": "600" } }, vue.toDisplayString(vue.unref(en).script.name), 11, Zi), vue.createVNode(i, { size: "small", style: { "margin-left": "12px", background: "rgba(255,255,255,0.2)", border: "none", color: "white" } }, { default: vue.withCtx((() => [ vue.createTextVNode(" v" + vue.toDisplayString(vue.unref(en).script.version), 1) ])), _: 1 }) ]), "home" != vue.unref(t).page ? (vue.openBlock(), vue.createBlock(l, { key: 0, onClick: o[0] || (o[0] = e => vue.unref(t).setPage("home")), size: "small", style: { background: "rgba(255,255,255,0.2)", border: "none", color: "white" } }, { default: vue.withCtx((() => [ vue.createVNode(r, { style: { "margin-right": "4px" } }, { default: vue.withCtx((() => [ vue.createVNode(vue.unref(K)) ])), _: 1 }), vue.createTextVNode(" \u8fd4\u56de\u9996\u9875 ") ])), _: 1 })) : vue.createCommentVNode("", !0) ]) ])), default: vue.withCtx((() => [ vue.createVNode(u, { "max-height": "55vh" }, { default: vue.withCtx((() => [ "home" != vue.unref(t).page ? (vue.openBlock(), vue.createElementBlock("div", Xi, [ vue.createVNode(p, { separator: "/" }, { default: vue.withCtx((() => [ vue.createVNode(c, { onClick: o[1] || (o[1] = e => vue.unref(t).setPage("home")), style: { cursor: "pointer" } }, { default: vue.withCtx((() => [ vue.createElementVNode("a", null, [ vue.createVNode(r, null, { default: vue.withCtx((() => [ vue.createVNode(vue.unref(ce)) ])), _: 1 }), vue.createTextVNode(" \u9996\u9875") ]) ])), _: 1 }), vue.createVNode(c, null, { default: vue.withCtx((() => [ vue.createTextVNode(vue.toDisplayString(vue.unref(t).page), 1) ])), _: 1 }) ])), _: 1 }) ])) : vue.createCommentVNode("", !0), "home" == vue.unref(t).page ? (vue.openBlock(), vue.createBlock(qn, { key: 1 })) : "user" == vue.unref(t).page ? (vue.openBlock(), vue.createBlock(Oi, { key: 2 })) : "Base" == vue.unref(t).page ? (vue.openBlock(), vue.createBlock(oa, { key: 3 })) : "ask" == vue.unref(t).page ? (vue.openBlock(), vue.createBlock(ka, { key: 4 })) : "question" == vue.unref(t).page ? (vue.openBlock(), vue.createBlock($a, { key: 5 })) : "preview" == vue.unref(t).page ? (vue.openBlock(), vue.createBlock(_s, { key: 6 })) : "paperLibrary" == vue.unref(t).page ? (vue.openBlock(), vue.createBlock(mo, { key: 7 })) : "questionTool" == vue.unref(t).page ? (vue.openBlock(), vue.createBlock(Ji, { key: 8 })) : "log" == vue.unref(t).page ? (vue.openBlock(), vue.createBlock(ho, { key: 9 })) : "ai" == vue.unref(t).page ? (vue.openBlock(), vue.createBlock(Ao, { key: 10 })) : "api" == vue.unref(t).page ? (vue.openBlock(), vue.createBlock(Zo, { key: 11 })) : vue.createCommentVNode("", !0) ])), _: 1 }) ])), _: 1 }, 8, [ "modelValue", "style" ]), vue.withDirectives(vue.createElementVNode("div", { class: "minimized-dialog", onClick: showOrHide }, [ vue.createElementVNode("div", { onClick: showOrHide }, [ vue.createVNode(m, { content: vue.unref(t).app.alert, placement: "top", visible: !vue.unref(t).app.showFloat && vue.unref(t).app.alertBubble }, { default: vue.withCtx((() => [ vue.createElementVNode("img", { src: vue.unref("data:image/svg+xml,%3csvg%20class='icon'%20viewBox='0%200%201024%201024'%20xmlns='http://www.w3.org/2000/svg'%20width='200'%20height='200'%3e%3cpath%20d='m253.36%201024-115.278-58.836v-53.206c-64.889-68.266-62.918-94.729%2014.075-153.424-23.506-17.594-63.762%202.675-77.275-36.315%2047.435-42.93%2070.378-101.063%2087.973-162.01a326.695%20326.695%200%200%201%20208.037-226.617c4.645-89.38%2086.847-143.43%20178.479-112.605l-35.612%2090.365c105.145%207.32%20192.414%2045.042%20256.317%20123.303%2040.538%2015.483%2038.849-34.767%2069.252-40.82l11.964%2058.273%2050.391-27.306c28.151%2018.72-5.208%2031.951-10.416%2052.22%2014.78%2020.128%2028.996%2040.538%2044.479%2060.244a142.867%20142.867%200%200%201%2028.996%20114.153c-12.528%2077.838-30.263%20154.831-41.101%20233.092A1276.939%201276.939%200%200%200%20918.433%201024H897.32l-89.24-70.378%209.994-10.416-17.735%2036.878-68.408-20.128-39.411%2023.788-42.227-21.114c-28.151%2014.076-52.502%2036.034-86.565%2027.307l-9.009-37.863H332.747L306.144%201024zm-9.993-380.041-.844.985%20126.68%2019.706%2010.838%2010.979c-29.277%2032.374-19.846%2074.178-29.7%20110.493l34.064%2030.263-35.19%2094.87a412.274%20412.274%200%200%200%20233.515%202.11l9.712-26.602%2012.809%2015.905-11.824%2050.672%205.35%204.645c16.749-11.682%2033.218-24.21%2050.812-34.626a84.454%2084.454%200%200%201%2026.04-5.348l7.46%2033.922%2048.842-23.788%2052.925%2014.076c-1.83-43.212-2.956-80.935-5.912-118.517%200-4.926-9.853-9.29-15.061-14.075l-5.63-23.225%2014.075-100.922h18.72l3.238-1.267c-11.964%20106.412%208.023%20202.266%2087.128%20281.512%208.727-48.842%2016.61-93.321%2024.632-137.66%207.46-40.96%2015.061-81.92%2022.521-122.88%2010.557-48.42%2025.477-97.262-10.979-140.755l-30.825%2038.004c0-16.469%201.126-33.078%201.126-49.546%200-70.378-53.206-104.723-115.983-76.29a232.951%20232.951%200%200%201-32.937%209.43c16.046-32.373-3.519-52.924-25.477-70.377a292.21%20292.21%200%200%200-209.304-70.378c-11.401.703-22.802%200-40.256%200l45.183-104.582c-40.397%2010.979-74.038%2014.78-94.73%2045.464s14.92%2045.886%2020.833%2069.674c-110.212%204.364-202.69%2080.513-236.611%20193.117l-70.378%20172.708%2049.124%203.519%205.63%2054.191c32.514-26.04%2026.04-61.088%2030.262-92.899h17.876v58.414l30.967%206.334c1.407-6.616%202.393-11.683%203.66-16.469%209.148-34.626-19.706-59.117-22.38-91.491zm-37.863%20178.9-6.475%2020.833-25.336%2084.453c1.548%208.868%200%2023.225%205.067%2025.477%2032.374%2016.046%2065.733%2029.277%20104.16%2045.746%2021.113-65.452%2063.621-114.435%2069.533-180.872-37.3-16.187-70.941-31.53-104.722-44.338-17.032-6.756-36.315-10.979-35.049%2019.002zm121.754-38.848%2010.556-90.225-48.138-6.193v78.964zm-168.907%2096.98%2023.084-73.474c-28.152-10.416-47.576-9.29-56.303%2015.483s2.674%2042.79%2032.937%2057.992z'%20fill='%23353947'/%3e%3cpath%20d='M198.607%20548.948c33.922-112.604%20126.68-188.472%20235.907-192.272-5.912-23.788-41.1-39.553-20.832-69.674s54.332-34.486%2094.729-45.465L463.228%20346.12h40.256a292.21%20292.21%200%200%201%20209.304%2070.378c21.958%2017.735%2042.227%2038.286%2025.477%2070.378l.986-.985c-30.967%2026.743-32.797%2059.399-19.847%2095.15L744.599%20622l-40.819-6.192-103.174-14.076-62.214-93.04-31.67%2050.672c-19.425-5.63-26.603.845-20.691%2020.692l-21.536-.845a165.67%20165.67%200%200%200-100.078-17.172l-10.416-86.565-37.44%2031.248-44.339%2042.226zm255.19-62.917-10.556-10.557c-17.173-17.032-35.049-15.061-47.294%203.378s-4.786%2036.737%2012.105%2050.25c20.128%2016.046%2034.907%209.712%2045.745-11.542%2014.217-10.838%2015.202-21.395%200-31.811z'%20fill='%23F5F5F6'%20data-spm-anchor-id='a313x.search_index.0.i5.dc0f3a810XA6r8'%20class='selected'/%3e%3cpath%20d='m592.442%20886.763-9.712%2026.603a412.274%20412.274%200%200%201-233.514-2.112l35.189-94.87-34.063-30.543c9.853-36.315%200-78.12%2029.7-110.494a198.184%20198.184%200%200%200%20105.425-94.87c16.328%202.394%2026.04-1.688%2020.692-20.69l31.67-4.927%2063.058%2078.542c0%207.882-1.97%2018.017%201.971%2023.084%2030.966%2038.708%2023.788%2080.935%2014.076%20123.865-8.587%2036.034-16.469%2071.364-24.492%20106.412zm-149.624-223.24c0%2014.076-2.815%2023.648%200%2026.885%2020.27%2020.691%2020.832%2045.605%2019.566%2071.927a96.84%2096.84%200%200%200%203.237%2031.107c5.912%2020.41%2012.668%2041.382%2038.426%2044.056a48.56%2048.56%200%200%200%2053.347-35.189%20696.602%20696.602%200%200%200%2018.58-80.371c6.052-6.475%2035.47-2.534%2018.157-36.597z'%20fill='%23F5F5F6'/%3e%3cpath%20d='M600.606%20602.013%20703.78%20616.09l40.82%205.349c37.863%209.993%2022.943%2041.241%2026.461%2065.17L756.986%20787.53l-49.828%2078.12-21.395%2031.529-10.134%2021.395a84.454%2084.454%200%200%200-26.04%205.348c-17.594%2010.416-34.063%2022.944-50.813%2034.626v-5.208h-5.067l11.823-50.672c16.047-61.932%2032.937-123.724%2047.717-185.938%205.348-22.662-25.477-68.267-51.94-82.624zM927.3%20706.736c-7.46%2040.96-15.061%2081.92-22.521%20122.88-8.023%2044.338-15.906%2088.817-24.633%20137.66-79.105-79.387-98.529-175.242-87.128-281.513z'%20fill='%23B3DCF8'/%3e%3cpath%20d='m199.029%20843.692%206.475-20.832h45.605c2.111-39.271-20.973-30.263-38.427-30.122-1.548-29.981%2018.017-25.758%2035.049-18.58%2034.063%2013.231%2067.422%2028.151%20104.722%2044.479-5.912%2066.437-48.42%20115.42-69.533%20180.871-38.427-16.186-71.927-29.418-104.16-45.182-4.786-2.252-3.519-16.61-5.067-25.477h33.5l26.321-70.378z'%20fill='%2387BC85'/%3e%3cpath%20d='M738.265%20486.03a232.951%20232.951%200%200%200%2032.937-9.43c62.777-28.151%20116.405%206.615%20115.983%2076.29%200%2016.468-.704%2033.077-1.126%2049.546l1.126-.986-12.105-2.674-21.536%2016.75-29.98%208.305a86.565%2086.565%200%200%201-91.633-59.259c2.393-26.462%204.645-52.924%207.038-79.527zm113.731%2061.792-61.37-52.502c-3.94%2035.752-6.615%2059.822-10.275%2093.18z'%20fill='%23F5F5F6'%20data-spm-anchor-id='a313x.search_index.0.i3.dc0f3a810XA6r8'/%3e%3cpath%20d='M198.607%20548.948h73.615c-28.151%2042.227-74.178%2076.853-59.117%20137.66-4.223%2031.81%202.252%2066.859-30.263%2092.899l-6.052-54.473-49.124-3.519z'%20fill='%23AED4EF'/%3e%3cpath%20d='m927.3%20706.736-134.28-21.113-3.238%201.266%206.897-37.863%2027.025-7.742%2031.248-8.867%2029.84-20.691%202.393-10.276-.422.986%2030.262-36.738c35.752%2043.776%2020.832%2092.618%2010.276%20141.038zm-557.675-42.79-126.68-19.706a171.3%20171.3%200%200%201%2016.75-41.1c21.817-29.278%2046.168-56.303%2069.533-84.454%203.238%209.15%206.757%2018.157%209.572%2027.307q15.624%2049.123%2030.966%2098.529z'%20fill='%23F5F5F6'/%3e%3cpath%20d='M763.18%20810.473c5.207%204.645%2014.075%209.009%2015.06%2014.076%202.956%2037.582%204.082%2075.304%205.912%20118.516l-52.925-14.075-47.997%2023.787-7.601-34.766c14.075-1.97%2020.55-7.883%2010.979-21.817%2021.395%2011.682%2023.788-9.994%2033.359-19.003z'%20fill='%23AED4EF'/%3e%3cpath%20d='M601.169%20634.106c26.462%2014.075%2057.288%2059.962%2051.939%2082.624-14.076%2062.214-31.67%20124.006-47.716%20185.938l-12.95-15.905c8.023-35.33%2015.905-70.378%2024.35-105.99%2010.135-42.93%2017.314-85.157-14.075-123.865-3.519-4.785-.985-14.92-1.548-22.802zM328.806%20518.404c-23.365%2028.152-47.716%2055.458-69.533%2084.454a171.3%20171.3%200%200%200-16.75%2041.1l.844-.985-12.386%2043.072h-17.876c-15.061-60.385%2030.403-94.87%2059.117-137.097l44.338-42.226z'%20fill='%23484F5E'/%3e%3cpath%20d='m327.258%20784.011-37.582-17.454v-78.964l48.138%206.193z'%20fill='%23D55375'/%3e%3cpath%20d='m823.704%20641.284-27.025%207.742-6.897%2037.863h-18.72c-3.52-23.928%2011.4-55.176-26.463-65.17l-25.195-40.96%2012.527-16.187a86.565%2086.565%200%200%200%2091.35%2059.259zm-454.079%2022.662V644.1l12.246-12.95c8.445%201.267%2020.41%206.897%2024.773%203.237%2020.55-17.031%2038.99-36.455%2058.132-55.176l20.973%201.548a198.184%20198.184%200%200%201-105.708%2094.87z'%20fill='%23484F5E'/%3e%3cpath%20d='m199.029%20843.692%2034.485%2014.075-26.321%2070.378h-33.5z'%20fill='%23CAE7AF'/%3e%3cpath%20d='m230.98%20686.326%2012.387-43.071c2.675%2031.67%2031.53%2056.302%2022.24%2091.35-1.267%204.786-2.252%209.854-3.66%2016.47l-30.966-6.335z'%20fill='%23F5F5F6'/%3e%3cpath%20d='m763.18%20810.473-44.058%2067.704-11.964-12.528%2050.39-78.4z'%20fill='%23484F5E'/%3e%3cpath%20d='M212.682%20792.738c17.454%200%2040.538-9.15%2038.427%2030.122h-45.605z'%20fill='%23CDEAB1'/%3e%3cpath%20d='m598.917%20957.985-5.349-4.645h5.067z'%20fill='%23484F5E'/%3e%3cpath%20d='M464.495%20579.211c-19.143%2018.72-37.582%2038.145-58.132%2055.176-4.364%203.66-16.328-1.97-24.773-3.237l-17.173-69.111a165.67%20165.67%200%200%201%20100.078%2017.172z'%20fill='%23AED4EF'/%3e%3cpath%20d='m364.417%20562.039%2017.173%2069.111-12.246%2012.95Q354%20594.976%20338.377%20545.57c-2.815-9.149-6.334-18.157-9.571-27.306l-12.246-11.542%2037.441-30.967z'%20fill='%23353947'/%3e%3cpath%20d='M600.606%20602.013v31.67l-62.214-79.245-31.67%204.926%2031.388-50.39z'%20fill='%23484F5E'/%3e%3cpath%20d='M453.797%20517.278c-10.838%2021.255-25.617%2028.152-45.745%2011.542-16.891-14.075-24.633-31.529-12.105-50.25s30.121-20.41%2047.294-3.378c-23.507.986-34.767%2011.542-29.137%2039.412l39.693%203.097z'%20fill='%23AED4EF'/%3e%3cpath%20d='m731.931%20564.572-12.809%2015.624c-12.95-35.752-11.12-68.407%2019.847-95.15-2.111%2026.602-4.363%2053.064-7.038%2079.526z'%20fill='%23353947'/%3e%3cpath%20d='M506.722%20559.787c5.348%2019.002-4.364%2023.084-20.691%2020.69-6.194-19.846.985-26.32%2020.69-20.69z'%20fill='%23484F5E'/%3e%3cpath%20d='M453.797%20485.749c15.202%2010.416%2014.076%2020.973%200%2031.53v-31.812zm-10.556-10.557%2010.556%2010.557-10.556-10.557z'%20fill='%23AED4EF'/%3e%3cpath%20d='m442.818%20663.524%20151.313%2022.099c17.313%2034.062-12.105%2030.121-18.157%2036.596a696.602%20696.602%200%200%201-18.58%2080.09%2048.56%2048.56%200%200%201-52.784%2034.908c-25.758-2.675-32.514-23.647-38.426-44.057a96.84%2096.84%200%200%201-3.237-31.107c1.266-26.321%200-51.235-19.566-71.926-3.378-2.956-.563-12.387-.563-26.603zm66.297%20153.987c41.523-26.462%2042.226-60.384%2034.766-98.53l-55.317-10.274c-.422%2038.707-15.202%2075.163%2020.55%20108.804zm198.043%2048.138%2011.964%2012.528c-9.57%209.008-11.964%2030.685-33.359%2019.002z'%20fill='%23353947'/%3e%3cpath%20d='M686.186%20896.757c9.571%2014.075%202.955%2019.846-10.98%2021.817zm165.81-348.935-71.645%2040.679c3.66-33.36%206.334-57.429%2010.276-93.18z'%20fill='%23353947'/%3e%3cpath%20d='m884.792%20611.726-29.84%2020.69-1.408-16.89%2021.536-16.75z'%20fill='%23484F5E'%20data-spm-anchor-id='a313x.search_index.0.i4.dc0f3a810XA6r8'%20class='selected'/%3e%3cpath%20d='m853.544%20615.526%201.408%2016.89-31.248%208.868v-17.453zm31.248-3.8-9.712-12.95%2012.105%202.674z'%20fill='%23353947'/%3e%3cpath%20d='m443.522%20474.91%2010.557%2010.557v31.952l-39.693-3.097c-6.194-27.87%205.63-38.426%2029.136-39.411z'%20fill='%23F5F5F6'/%3e%3cpath%20d='M509.115%20817.51c-35.753-33.64-20.973-70.377-20.55-108.803l55.316%2010.275c7.883%2038.145%206.757%2072.067-34.766%2098.529z'%20fill='%23E25679'/%3e%3c/svg%3e"), onClick: showOrHide }, null, 8, er) ])), _: 1 }, 8, [ "content", "visible" ]) ]) ], 512), [ [ vue.vShow, !vue.unref(t).app.showFloat ] ]) ]) ])), _: 1 }); }; } }); (e => { const t = GM_getResourceText(e); GM_addStyle(t); })("ElementPlus"); const nr = { ef16b0304b00ce71fd40a6ec2ee77005: "ACDFGHIJ", "735b46e223cfc7bad9b86c9937c75234": "BDEFG", "24ec8818a8cc7ef047261e702dac5815": "ABCDEFGHIJ", "196888b3dcb1e1bfff5881cb653ba923": "BDEFGH", b935cd024690d61b8fba0484a66108f0: "ABCDEGH", "2015082c8ae5776bfd6939c5b987bde8": "BEF", "95018628ad8e26805393ebbb913f5655": "AF", "9cbff65dc6a768716f51443d6086a1c3": "BDG", b8f6dedb0bf830a10b66369b1c602088: "CFG", "1ad38a724dc5bac06ce6d1c63b0184cf": "ACDEFGI", "6ba30ef9d51b4c81a126ff6d17ee4fb2": "AEFHIJ", "78a0d910c07fde12bafafda0f23c8b31": "CEH", "9ae999623635bc09942f1d0eb59e6837": "BH", "7d6006b8e10d9dffbe1fa0570757caa7": "DH", "86eba22e064f8fe7223621469d91c696": "ACDF", "4e585ee0c6ac7c985615389285c830ef": "BCF", "5ff23de904db9fb6485cddb667995cd7": "ABCDEFGHI", fc402dcdbd1751096532c45785acbbbe: "DF", ece41fab3f00663e05f8f58eb73d24dd: "ABCDEFGH", "784388b61ba6bc8106194478e383908a": "CDFIJ", e735470377881c422d187ce9bb7f4f24: "ACDEG", "6a721d0773b4945fbe8f550da3850005": "ABCDEFI", cfcabe2eeaeef886169447086ac23b96: "AEG", c38f5ab64c8b82df3bb66f8f9831097b: "AEF", b684fb365965c6b3488eeedcae114384: "ADEF", "1c402ceeda5ea92b80fe8b5b5bcbdc4d": "ACF", ce75bbb9a8b72f97de5a8bb03ee95df7: "J", e21ba3c8d7f8bbb66e4af7a9182d87a5: "ACGI", "445adaca0de2f938fe7bacf8140eef36": "ABF", "4f14c1e0a1eccde02ee4f0a77eaa78cd": "BCEF", e78e28ee7040cdf3894293cd2eeade9b: "H", ee5a026e9664d3d75f0471b9bc826c98: "EF", "904d82937a49e762ec1fa7c53574bb39": "ADF", "2ee96820a6a35990bff61a607953274c": "BDDF", dc13afaff7b568f31d96c0ff8b5998b8: "ABEF", "13c11253a2bb72c3726d318163662263": "ABCF", ca8b276d3213cfda5e6406c0930dfdb5: "CDF", "0d38524f7ca472260864ef7b79b11591": "ABCDG", "0e9bfd8011be1eddfcf97102f9e21ab6": "DEF", ca88100d2fd190136cdcb3ffe1648820: "DG", "2d8c02e62a414df727f2bd36d4231c68": "ABCFG", "099b9f86638886c7ca57401d4360165c": "ABCDEFG", "7a0a8f7222c07c8c24c4a6d201105ecc": "ACEF", "181f54c34d485b426b900e2c777a831c": "AEFHI", "993215603eb31c60f31aa261267790e8": "ABCEF", fcae686eac9b3de629da73618ea6cdc0: "ABCDF", "8b6271d28906b0a6a765ea1c37c31ff9": "ABDF", "5dfd875662f18654b374acd37e6c3790": "CF", e8b47f587340890e698ccb14ef1f39c4: "CDEF", de2c87983e695e599c1a2f6836277a4f: "ABDEF", "8a46cf5b7a0845cbe4d03b64630a4792": "A", "53422e877a081b1b4f6e4c212ab57cf1": "AB", "29d95a58cdb26116c1906879055c8c81": "ABC", "5ba8eea749f56522bb1a5f252bfa3647": "ABCD", "16374490395999a162f0652a32d13b8b": "ABCDE", "8b2a7f5a361969be6a905da99af21b44": "ABCDEF", e12185b3db81b9ec20d0402632e83f74: "ACDEF", "83bd97c6c3ac69318ad965f7776a51b4": "ABCE", bedb4b64e5f1a1e47af4f461c59c0682: "ABD", f09e72b012b4e90e2008662ae01f9f66: "ABDE", e329dd6e7aecd220d271ba06a87c1d4f: "ABE", "8d234f3f7209a68f21d4e2b8f367d0b3": "AC", "51f6ac2445476dc718eb710ae28d26e3": "ACD", "6fd0d649bcb9f81660389156d9fdbf03": "ACDE", "79b887d55f7fbe5f8f1e29537c4099b7": "ACE", d23fcd2143ca2071fc33f912cf1c28e4: "AD", "32e93bed7ac49065a1af9639795f4b47": "ADE", "81e4110d9047c39ea1444a178b7cd33d": "AE", db7b924f30f69a55e36735b16f52dac0: "B", "84c04e4ecc048bd34e35382ec3ea64a5": "BC", "50ba53e0c5817f04cd5f2053e6193569": "BCD", "26fee236555e7629f11308452c47b032": "BCDE", d22d3cc146b96cf9d049da3decb8060e: "BCDEF", a90e4a238e95a9ef750a1e0844b6730b: "BCDG", a4bfbd439f12870ac2294ac4f59c2ade: "BCE", d7e98cd9fa6c9fc480ebcba65bbd5ed7: "BD", "859f062ed997fc06bebde9c00669d29d": "BDE", "1ad8f209d08633c3cee74a4f48862c4f": "BDEF", "8d34b7e5f05d2d9188a6d40a0f882cb0": "BDF", fe4bf0dc5ee6f3e858034bacfbd8c657: "BE", be0eb600553b1c72f65f4eeed6eece84: "C", "322d75dc959f260a6cb15bae2149972f": "CD", a897c5097bbbf5f66ad491c083a897f2: "CDE", b01f11bd3ef4311b47cef1a032dde5c2: "CE", "1a09dd8805d368791a8bc18050cf76a9": "D", "6a1137dfc861563b83e2579024ce929f": "DE", "2e256e5ceb7a86e50fe2c93f622d30ac": "E", ddeacacae3b5f3ceb9ae1638d1585271: "EG", "19be069faa48362663d092896fa7d4d4": "F", "52113efae9e75eacdb3529fefb168982": "G" }, get_href = () => location.href, hookXHR = () => { const e = { send: XMLHttpRequest.prototype.send }; Object.defineProperty(XMLHttpRequest.prototype, "send", { configurable: !1, writable: !1, value: function(t) { return this.addEventListener("readystatechange", (function() { switch (!0) { case /onlineexamh5new.zhihuishu.com/i.test(get_href()): if (4 === this.readyState && (this.response.includes("workExamParts") || this.response.includes("lookHomework"))) { const e = JSON.parse(this.response); Me.zhsques = e.rt; } if (4 === this.readyState && this.responseURL.includes("getAnswerImgInfo")) { let e = {}; const t = JSON.parse(this.response).rt; for (let n in JSON.parse(this.response).rt) e[n] = nr[somd5(t[n])], e[n] || (somd5(t[n]), t[n]); Me.zhsimgAnswer = e; } break; case /icve.com.cn/i.test(location.host): 4 === this.readyState && this.responseURL && (this.responseURL.includes("examRecordPaperList") || this.responseURL.includes("queryXsDtjgSjInfo")) && JSON.parse(this.response); break; case /qingshuxuetang.com/i.test(get_href()): if (4 === this.readyState && (this.responseURL.includes("Student/DetailData") || this.responseURL.includes("Student/SimulationExercise/DetailData") || this.responseURL.includes("Student/Quiz/DetailData"))) { const e = JSON.parse(this.response); Me.qsques = e.data.paperDetail.questions, e.data.paperDetail.questions; } break; case /cce.org.uooconline.com/i.test(get_href()): if (4 === this.readyState && this.responseURL.includes("/exam/view?cid=")) { const e = JSON.parse(this.response); Me.cceques = e.data.questions, e.data.questions; } break; case /cj-edu.com/i.test(get_href()): if (4 === this.readyState && this.responseURL.includes("api/student/getHomeworkStudentInfo.do")) { const e = JSON.parse(this.response); Me.cjques = e.data, e.data; } break; case /gxk.yxlearning.com/i.test(get_href()): if (4 === this.readyState && this.responseURL.includes("cms/paper/start-do-paper-or-test.gson")) { const e = JSON.parse(this.response); Me.yxques = e.attribute.data, e.data; } } })), e.send.call(this, t); } }); }, loadVue = () => { var e, t, n; const a = function() { const e = vue.effectScope(!0), t = e.run((() => vue.ref({}))); let n = [], a = []; const s = vue.markRaw({ install(e) { setActivePinia(s), s._a = e, e.provide(_e, s), e.config.globalProperties.$pinia = s, a.forEach((e => n.push(e))), a = []; }, use(e) { return this._a ? n.push(e) : a.push(e), this; }, _p: n, _a: null, _e: e, _s: new Map, state: t }); return s; }(), s = vue.createApp(tr); s.use(F), s.use(a); const l = document.createElement("div"), c = document.createElement("div"); c.id = "AiAskApp", window.self !== window.top && (null == (t = null == (e = window.top) ? void 0 : e.location) ? void 0 : t.origin) === window.location.origin && nn.iframe ? (c.id = "AiAskAppTop", null == (n = window.top) || n.document.body.appendChild(l)) : document.body.append(l); const p = l.attachShadow({ mode: "closed" }); p.appendChild(c); try { const e = document.createElement("style"); e.textContent = $e("ElementPlus") + '#aiAskApp{text-align:left!important}#AiAskApp .el_wrapper>div{pointer-events:none;z-index:999999!important}#AiAskApp .el_wrapper>div>div{pointer-events:none;z-index:999999!important}.el-notification.right{min-height:84px}.el-dialog{pointer-events:auto;border-radius:16px!important;overflow:hidden;box-shadow:0 12px 48px #0000001f!important;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:999999!important;background:linear-gradient(135deg,#667eea,#764ba2)!important;padding:0!important;max-width:95vw!important}.el-dialog__header{background:transparent!important;color:#fff!important;padding:20px 24px!important;margin:0!important}.el-dialog__title{color:#fff!important;font-weight:600;font-size:18px}.el-dialog__headerbtn .el-dialog__close{color:#fff!important;font-size:20px}.el-dialog__body{padding:0!important;background:#fff!important;border-radius:0 0 16px 16px!important}@media (max-width: 600px){#AiAskApp .el-scrollbar,#AiAskApp .el-scrollbar__wrap{max-height:50vh!important}}@media (min-width: 601px){#AiAskApp .el-scrollbar,#AiAskApp .el-scrollbar__wrap{max-height:70vh!important}}.el-scrollbar__view{background:#fff!important;padding:16px!important}.minimized-dialog img{pointer-events:auto;width:50px!important;height:50px!important;z-index:9999999!important;position:fixed;bottom:0;right:0;cursor:pointer}.aah_breadcrumb{margin-bottom:16px;padding:12px 16px;background:#fffffff2;border-radius:8px;border:1px solid rgba(229,231,235,.5);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.aah_breadcrumb .el-breadcrumb__item a{color:#667eea;font-weight:500;transition:color .3s}.aah_breadcrumb .el-breadcrumb__item a:hover{color:#764ba2}.el-card{border-radius:12px!important;border:1px solid #e5e7eb!important;box-shadow:0 1px 3px #0000000d!important;transition:all .3s cubic-bezier(.4,0,.2,1)!important;margin-bottom:12px;overflow:hidden;background:#fff!important}.el-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000014!important;border-color:#667eea!important}.el-card__body{padding:16px!important}.el-alert{border-radius:8px!important;border:1px solid!important;padding:12px 16px!important;margin-bottom:12px}.el-alert--info{background:#f0f9ff!important;border-color:#bae6fd!important}.el-alert--warning{background:#fffbeb!important;border-color:#fde68a!important}.el-alert--error{background:#fef2f2!important;border-color:#fecaca!important}.el-alert--success{background:#f0fdf4!important;border-color:#bbf7d0!important}.el-button{border-radius:12px!important;padding:12px 24px!important;font-weight:500;transition:all .3s cubic-bezier(.4,0,.2,1)!important;border:none!important}.el-button--primary{background:linear-gradient(135deg,#667eea,#764ba2)!important;box-shadow:0 4px 12px #667eea4d}.el-button--primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #667eea66!important}.el-button--primary.is-plain{background:#fff!important;border:2px solid #667eea!important;color:#667eea!important}.el-button--primary.is-plain:hover{background:linear-gradient(135deg,#667eea,#764ba2)!important;color:#fff!important}.el-button--small{padding:8px 16px!important;border-radius:10px!important}.aah_btn{width:100%}.el-tag{border-radius:8px!important;padding:6px 16px!important;border:none!important;font-weight:500;box-shadow:0 2px 8px #00000014}.el-tag--primary{background:linear-gradient(135deg,#667eea,#764ba2)!important;color:#fff!important}.el-tag--info{background:linear-gradient(135deg,#a5b4fc,#818cf8)!important;color:#fff!important}.el-divider{margin:24px 0!important}.el-divider__text{background:#fff0!important;padding:0 16px!important}.el-input__wrapper{border-radius:12px!important;box-shadow:0 2px 8px #0000000d!important;transition:all .3s;padding:8px 16px!important}.el-input__wrapper:hover{box-shadow:0 4px 12px #0000001a!important}.el-input__wrapper.is-focus{box-shadow:0 4px 16px #667eea4d!important;border-color:#667eea!important}.el-input__inner{border:none!important;margin:auto}.el-textarea__inner{border-radius:12px!important;box-shadow:0 2px 8px #0000000d!important;padding:12px 16px!important;transition:all .3s}.el-textarea__inner:focus{box-shadow:0 4px 16px #667eea4d!important}.aah_title{font-size:15px;font-weight:600;line-height:1.8;color:#1f2937;margin-bottom:12px;padding:12px;background:#fff;border-radius:8px;border:1px solid #e5e7eb;border-left:3px solid #667eea;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical}.aah_title img{max-width:100%;height:auto;overflow:hidden;border-radius:8px;margin:12px 0}.aah_options{transition:all .2s;cursor:pointer}.aah_options:hover{border-color:#667eea;background:#f9fafb}.aah_options[style*="color:green"]{background:#f0fdf4!important;border-color:#86efac!important;font-weight:600;color:#166534!important}.aah_active{box-shadow:0 0 5px #0af}.aah_bomHet50{padding:13px 0 13px 10px}.aah_bomHet50 span{display:inline-block;line-height:24px;padding-left:14px;color:#a8a8b3}.aah_bomHet50 span i{display:inline-block;width:10px;height:10px;border:1px solid #DBDFE9;border-radius:2px;vertical-align:middle;margin-right:4px;margin-top:-2px}.aah_bomHet50 .dq i{background-color:#ecf5ff;box-shadow:0 0 5px #0af}.aah_bomHet50 .yp i{background-color:#f0f9eb;border-color:#409eff}.aah_bomHet50 .wp i{background-color:#fef0f0;border-color:#f56c6c}.el-dialog .el-form{max-height:65vh;overflow-y:auto;padding-right:8px}.el-dialog .el-form::-webkit-scrollbar{width:6px}.el-dialog .el-form::-webkit-scrollbar-thumb{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:3px}.el-dialog .el-form::-webkit-scrollbar-track{background:#f1f5f9;border-radius:3px}.el-dialog .el-form-item{margin-bottom:18px}.el-dialog .el-form-item__label{font-weight:600;color:#fff;margin-bottom:8px}.el-dialog .flex.mb-4{margin-bottom:12px}.el-dialog .option-input{flex:1}.el-upload__input{display:none!important}.question-card{margin-bottom:20px;animation:slideIn .3s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.log-container{margin:20px}.hljs{display:block;overflow-x:auto;padding:16px;background:#1f2937;color:#e5e7eb;border-radius:12px;box-shadow:0 4px 12px #0000001a}.is-error{border:2px solid #ef4444!important;box-shadow:0 0 0 3px #ef44441a!important}.error-message{color:#ef4444;margin-top:8px;font-size:13px;font-weight:500}.el-form-item{margin-bottom:20px}.el-form-item__label{font-weight:600;color:#374151}.el-slider__bar{background:linear-gradient(90deg,#667eea,#764ba2)!important}.el-slider__button{border:3px solid #667eea!important;box-shadow:0 2px 8px #667eea66}.el-checkbox__input.is-checked .el-checkbox__inner,.el-radio__input.is-checked .el-radio__inner{background:linear-gradient(135deg,#667eea,#764ba2)!important;border-color:#667eea!important}.el-empty{padding:40px 0}.el-empty__description{color:#9ca3af;font-size:15px}.el-watermark{border-radius:16px}.el-pagination{margin-top:24px;display:flex;justify-content:center}.el-pagination.is-background .el-pager li{border-radius:8px!important;margin:0 4px}.el-pagination.is-background .el-pager li.is-active{background:linear-gradient(135deg,#667eea,#764ba2)!important}.el-dropdown-menu{border-radius:12px!important;border:none!important;box-shadow:0 8px 24px #0000001f!important;padding:8px!important}.el-dropdown-menu__item{border-radius:8px!important;margin:4px 0;transition:all .3s}.el-dropdown-menu__item:hover{background:linear-gradient(135deg,#f0f4ff,#e0e7ff)!important;color:#667eea!important}.el-switch.is-checked .el-switch__core{background:linear-gradient(135deg,#667eea,#764ba2)!important}.el-select__wrapper{border-radius:12px!important;box-shadow:0 2px 8px #0000000d!important}.el-select__wrapper.is-focused{box-shadow:0 4px 16px #667eea4d!important}.el-tooltip__popper{border-radius:8px!important;padding:12px 16px!important}.el-loading-mask{border-radius:16px!important;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.el-row{margin-bottom:16px}@media (max-width: 768px){.el-dialog{width:95%!important;max-width:95vw!important;margin:0 auto}.el-card{margin-bottom:12px}.aah_title{font-size:14px;padding:12px}.el-button{padding:10px 20px!important}}.el-scrollbar__wrap::-webkit-scrollbar{width:8px;height:8px}.el-scrollbar__wrap::-webkit-scrollbar-thumb{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:4px}.el-scrollbar__wrap::-webkit-scrollbar-track{background:#f1f5f9;border-radius:4px}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .3s ease-out}.glass-effect{background:#ffffffd9;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.user-page{padding:0;max-width:100%}.user-page__login-box{max-width:380px;margin:30px auto;padding:32px 28px;background:#fff;border-radius:14px;box-shadow:0 4px 16px #00000014}.user-page__login-header{text-align:center;margin-bottom:28px}.user-page__login-icon{font-size:56px;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:12px}.user-page__login-header h2{margin:12px 0 6px;font-size:24px;font-weight:600;color:#1f2937}.user-page__login-header p{margin:0;color:#6b7280;font-size:13px}.user-page__login-type-switch{width:100%;display:flex;margin-bottom:20px}.user-page__login-type-switch .el-radio-button{flex:1}.user-page__login-type-switch .el-radio-button__inner{width:100%;border-radius:8px!important}.user-page__login-form{margin-bottom:20px}.user-page__login-form .el-form-item{margin-bottom:14px}.user-page__login-btn{width:100%;height:44px;font-size:15px;font-weight:600;border-radius:10px!important}.user-page__register-tip{text-align:center;margin-top:20px;color:#6b7280;font-size:13px}.user-page__register-tip .el-link{font-weight:600;margin-left:4px}.user-page__dashboard{padding:12px;max-width:100%;margin:0 auto}.user-page__header-card{display:flex;align-items:center;gap:14px;padding:18px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;margin-bottom:12px;box-shadow:0 4px 12px #667eea40}.user-page__avatar{flex-shrink:0;border:3px solid rgba(255,255,255,.5);box-shadow:0 4px 12px #0003}.user-page__info-text h2{margin:0 0 4px;color:#fff;font-size:18px;font-weight:700;text-shadow:0 2px 8px rgba(0,0,0,.3)}.user-page__username{margin:0 0 8px;color:#fffffff2;font-size:12px;text-shadow:0 1px 4px rgba(0,0,0,.2)}.user-page__stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:12px}.user-page__stat-card{display:flex;align-items:center;gap:10px;padding:12px;background:#fff;border-radius:10px;box-shadow:0 2px 6px #0000000f;transition:all .3s ease}.user-page__stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 10px #0000001a}.user-page__stat-icon{width:34px;height:34px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0}.user-page__stat-icon--coin{background:linear-gradient(135deg,#ffd89b,#f39c12);color:#fff}.user-page__stat-icon--money{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.user-page__stat-icon--course{background:linear-gradient(135deg,#f093fb,#f5576c);color:#fff}.user-page__stat-icon--question{background:linear-gradient(135deg,#4facfe,#00f2fe);color:#fff}.user-page__stat-content{flex:1;min-width:0}.user-page__stat-label{margin:0 0 2px;color:#6b7280;font-size:11px;font-weight:500}.user-page__stat-value{margin:0;color:#1f2937;font-size:17px;font-weight:700}.user-page__apikey-section{padding:14px;background:#fff;border-radius:12px;box-shadow:0 2px 6px #0000000f;margin-bottom:12px}.user-page__section-header{display:flex;align-items:center;gap:8px;margin-bottom:10px}.user-page__section-header .el-icon{font-size:18px;color:#667eea}.user-page__section-header h3{margin:0;font-size:15px;font-weight:600;color:#1f2937}.user-page__apikey-display{margin-top:10px}.user-page__apikey-input .el-input__inner{font-family:Courier New,monospace;font-size:12px}.user-page__actions{display:flex;justify-content:center;gap:10px;padding:12px;background:#fff;border-radius:12px;box-shadow:0 2px 6px #0000000f}@media (max-width: 768px){.user-page__dashboard{padding:10px}.user-page__header-card{flex-direction:column;text-align:center;padding:16px}.user-page__stats-grid{grid-template-columns:repeat(2,1fr);gap:8px}.user-page__stat-card{padding:10px}.user-page__stat-icon{width:32px;height:32px;font-size:16px}.user-page__stat-value{font-size:16px}.user-page__apikey-section{padding:12px}.user-page__actions{flex-direction:column}.user-page__actions .el-button{width:100%}}.home-container{padding:0;text-align:center}.user-status-card{margin-bottom:15px}.user-status{display:flex;justify-content:space-between;align-items:center}.user-info{display:flex;align-items:center;gap:15px}.user-details h3{margin:0 0 5px;font-size:18px;font-weight:600}.user-details p{margin:0;font-size:14px;color:#606266}.features-tags{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:16px 0}.pages-grid{display:flex;flex-wrap:wrap;gap:12px;margin:16px 0;justify-content:center}.page-button{min-width:160px;flex:0 1 calc(25% - 9px);justify-content:center}@media (max-width: 768px){.page-button{flex:0 1 calc(50% - 6px)}}@media (max-width: 480px){.page-button{flex:1 1 100%}}.version-section{margin:16px 0;text-align:center}.version-section p{margin:12px 0;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px}.sponsor-link{color:#667eea;text-decoration:none;font-weight:500;transition:color .3s}.sponsor-link:hover{color:#764ba2;text-decoration:underline}.paper-library-container{padding:0}.tips-card{margin-bottom:16px}.search-card{margin-bottom:20px}.search-header{display:flex;gap:12px;align-items:center}.search-stats{display:flex;gap:12px;margin-top:16px;justify-content:center}.papers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-bottom:20px}.paper-card{cursor:pointer;transition:all .3s ease}.paper-card:hover{transform:translateY(-4px);box-shadow:0 8px 16px #0000001a}.paper-header{display:flex;align-items:flex-start;gap:12px}.paper-icon{flex-shrink:0}.paper-info{flex:1;min-width:0}.paper-title{margin:0 0 8px;font-size:16px;font-weight:600;color:#303133;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paper-meta{display:flex;gap:8px;flex-wrap:wrap}.paper-footer{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#909399}.paper-actions{display:flex;align-items:center;gap:8px}.header-card{margin-bottom:20px}.header-content{display:flex;flex-direction:column;gap:16px}.header-actions{display:flex;gap:12px;flex-wrap:wrap}.course-info h2,.chapter-info-header h2{margin:0 0 12px;font-size:20px;font-weight:600;color:#303133}.course-stats,.chapter-info-header{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.chapters-list{display:flex;flex-direction:column;gap:12px}.chapter-card{cursor:pointer;transition:all .3s ease}.chapter-card:hover{transform:translate(4px);box-shadow:0 4px 12px #0000001a}.chapter-header{display:flex;align-items:center;gap:16px}.chapter-number{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;flex-shrink:0}.chapter-info{flex:1;min-width:0}.chapter-title{margin:0 0 8px;font-size:16px;font-weight:600;color:#303133}.chapter-arrow{flex-shrink:0;font-size:20px;color:#909399}.chapter-actions{display:flex;align-items:center;gap:12px;margin-left:auto}.questions-container{display:flex;flex-direction:column;gap:16px}.question-card{transition:all .3s ease}.question-card:hover{box-shadow:0 4px 12px #0000001a}.question-number{display:inline-block;padding:4px 12px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:12px;font-size:14px;font-weight:600;margin-bottom:12px}.question-title{font-size:15px;line-height:1.8;color:#303133;margin-bottom:16px;font-weight:500}.question-options{margin-bottom:16px}.option-item{display:flex;align-items:flex-start;padding:10px 12px;margin-bottom:8px;background:#f5f7fa;border-radius:8px;transition:all .2s ease}.option-item:hover{background:#e8edf3}.option-item.is-answer{background:#f0f9ff;border:1px solid #67c23a;color:#67c23a;font-weight:500}.option-label{flex-shrink:0;font-weight:600;margin-right:8px;min-width:24px}.option-content{flex:1;line-height:1.6}.question-answer{margin-top:16px}.answer-content{padding:12px;background:#f0f9ff;border-radius:8px;color:#409eff;line-height:1.6}.preview-container{padding:0}.preview-header{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:16px;padding:24px 32px;margin-bottom:20px;box-shadow:0 8px 24px #667eea40;position:relative;overflow:hidden}.preview-header:before{content:"";position:absolute;top:-50%;right:-10%;width:300px;height:300px;background:#ffffff1a;border-radius:50%;animation:float 6s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-20px) rotate(180deg)}}.header-content{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px;position:relative;z-index:1}.header-title h2{color:#fff;font-size:28px;font-weight:700;margin:0 0 8px;text-shadow:0 2px 8px rgba(0,0,0,.1)}.header-title p{color:#ffffffe6;font-size:14px;margin:0;letter-spacing:2px}.header-stats{display:flex;gap:24px;align-items:center}.stat-item{display:flex;flex-direction:column;align-items:center;background:#ffffff26;padding:12px 24px;border-radius:12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);min-width:100px}.stat-number{font-size:32px;font-weight:700;color:#fff;line-height:1;margin-bottom:4px}.stat-label{font-size:12px;color:#ffffffd9;letter-spacing:1px}.stat-divider{width:1px;height:40px;background:#ffffff4d}.preview-alert{margin-bottom:20px;border-radius:12px!important}.search-section{margin-bottom:24px}.search-result-info{margin-top:16px;text-align:center;animation:slideInDown .3s ease-out}@keyframes slideInDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.empty-state{padding:60px 20px}.empty-icon{font-size:80px;margin-bottom:16px;animation:bounce 2s ease-in-out infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.questions-list{display:flex;flex-direction:column;gap:20px;margin-bottom:24px}.question-item-wrapper{animation:fadeInUp .4s ease-out}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.question-item-card{background:#fff;border-radius:16px;padding:24px;box-shadow:0 2px 12px #00000014;border:2px solid transparent;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1);overflow:hidden}.question-item-card:before{content:"";position:absolute;top:0;left:0;width:5px;height:100%;background:linear-gradient(180deg,#667eea,#764ba2);transition:width .3s ease}.question-item-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px #667eea33;border-color:#667eea}.question-item-card:hover:before{width:8px}.question-badge{position:absolute;top:-12px;left:20px;z-index:10}.badge-number{display:inline-flex;align-items:center;justify-content:center;min-width:48px;height:48px;padding:0 12px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-size:20px;font-weight:700;border-radius:12px;box-shadow:0 4px 12px #667eea66}.question-actions-top{position:absolute;top:20px;right:20px;display:flex;gap:8px;z-index:10}.question-actions-top .el-button{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 2px 8px #0000001a}.question-main{margin-top:24px}.question-header-section{margin-bottom:16px}.question-type-tag{font-size:14px;font-weight:600;padding:8px 16px!important;border-radius:8px!important;background:linear-gradient(135deg,#667eea,#764ba2)!important;border:none!important;color:#fff!important}.question-text{font-size:16px;line-height:1.8;color:#1f2937;margin-bottom:20px;padding:16px;background:#f8fafc;border-radius:12px;border-left:4px solid #667eea}.question-text img{max-width:100%;height:auto;border-radius:8px;margin:12px 0}.options-section{margin-bottom:24px}.complex-question-tip{margin-bottom:16px}.options-list{display:flex;flex-direction:column;gap:12px}.option-item{display:flex;align-items:flex-start;gap:12px;padding:16px;background:#f8fafc;border:2px solid #e5e7eb;border-radius:12px;transition:all .3s ease;position:relative;cursor:pointer}.option-item:hover{background:#f0f4ff;border-color:#667eea;transform:translate(4px)}.option-item.option-correct{background:linear-gradient(135deg,#f0fdf4,#dcfce7);border-color:#22c55e;border-width:2px}.option-item.option-correct:hover{background:linear-gradient(135deg,#dcfce7,#bbf7d0);transform:translate(4px) scale(1.01)}.option-letter{display:flex;align-items:center;justify-content:center;min-width:36px;height:36px;background:#fff;border:2px solid #667eea;border-radius:50%;color:#667eea;font-size:16px;font-weight:700;flex-shrink:0;transition:all .3s ease}.option-item.option-correct .option-letter{background:#22c55e;border-color:#22c55e;color:#fff}.option-text{flex:1;line-height:1.6;color:#374151;padding-top:6px}.correct-badge{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:#22c55e;color:#fff;border-radius:50%;font-size:18px;font-weight:700;flex-shrink:0;box-shadow:0 2px 8px #22c55e4d;animation:scaleIn .3s ease-out}@keyframes scaleIn{0%{transform:scale(0)}to{transform:scale(1)}}.answer-section{background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border-radius:12px;padding:20px;border:2px solid #0ea5e9;margin-top:20px}.answer-header{display:flex;align-items:center;gap:8px;margin-bottom:16px;color:#0369a1;font-size:16px;font-weight:700}.answer-header .el-icon{font-size:24px}.answer-content-wrapper{margin-top:12px}.answer-tags{display:flex;flex-wrap:wrap;gap:10px}.answer-tags .el-tag{font-size:16px;padding:10px 20px!important;border-radius:10px!important;font-weight:600;box-shadow:0 2px 8px #22c55e4d}.answer-text{padding:16px;background:#fff;border-radius:8px;line-height:1.8;color:#374151;box-shadow:0 2px 8px #0000000d}.no-answer{display:flex;align-items:center;gap:8px;color:#9ca3af;font-style:italic;padding:12px}.no-answer .el-icon{font-size:20px}.pagination-wrapper{display:flex;justify-content:center;padding:32px 0;background:#fff;border-radius:16px;box-shadow:0 2px 12px #00000014}.preview-container .el-watermark{min-height:200px}@media (max-width: 768px){.preview-header{padding:20px}.header-content{flex-direction:column;align-items:flex-start}.header-title h2{font-size:24px}.header-stats{width:100%;justify-content:space-around}.stat-item{min-width:auto;flex:1}.question-item-card{padding:20px 16px}.question-badge{left:12px}.badge-number{min-width:40px;height:40px;font-size:18px}.question-actions-top{top:12px;right:12px}.question-text{font-size:15px;padding:14px}.option-item{padding:12px}.option-letter{min-width:32px;height:32px;font-size:14px}.answer-section{padding:16px}.pagination-wrapper{padding:20px 0}}@media print{.preview-header,.preview-alert,.search-section,.question-actions-top,.pagination-wrapper{display:none!important}.question-item-card{break-inside:avoid;box-shadow:none;border:1px solid #e5e7eb;margin-bottom:16px}}', p.appendChild(e); } catch (u) { console.error("\u5e94\u7528\u6837\u5f0f\u8868\u65f6\u51fa\u9519:", u); } s.mount(c); }, run = async () => { var e; (e = document.createElement("iframe")).style.display = "none", document.body.appendChild(e), window.console = e.contentWindow.console; (Me === Me.top || [ /\/work\/doHomeWorkNew/i, /selectWorkQuestionYiPiYue/i, /uooconline.com/i, /edu-edu.com/i, /hblearning\/exam\/portal\/exam.jsp/i ].some((e => e.test(location.href))) || Qt.some((e => "hook" !== e.type && ("function" == typeof e.match ? e.match() : e.match)))) && (loadVue(), parseRule(Qt)); }; (() => { if (hookXHR(), /onlineexamh5new.zhihuishu.com/i.test(get_href())) { const e = Me.yxyz; Me.yxyz = function(t, n) { !Me.yxyzpush && (Me.yxyzpush = []); let a = e(t, n); return Me.yxyzpush.push({ ...t, data: a }), a; }; } if (/icve.com.cn/i.test(get_href()) || /courshare.cn/i.test(get_href()) || /webtrn.cn/i.test(get_href())) { const e = Me.open; Me.open = function() { return arguments[2] = "", e.apply(this, arguments); }; } if (/ytccr.com/i.test(get_href())) { const e = localStorage.getItem; localStorage.getItem = function(t) { if ("_debugger" === t) return !0; return e.apply(this, arguments); }; } if (/91huayi.com/i.test(get_href())) { const e = Me.$.cookie; Me.$.cookie = function(t, n, a) { return console.log("Cookie\u64cd\u4f5c:", t, n, a), t.startsWith("switchTime") && void 0 !== n ? (n = void 0, e.apply(this, [ t, n, a ])) : e.apply(this, arguments); }; } })(), Qt.filter((e => e.match && e.hook)).forEach((e => { e.hook(); })), "complete" === document.readyState ? run() : window.addEventListener("load", run); })(Vue, DOMPurify, ElementPlus, $, CryptoJS);