// ==UserScript== // @name 【秒刷!!!】河南省专业技术人员继续教育公需课学习助手 // @namespace www.jxjyedu.org.cn // @version 1.0.1 // @description 秒刷,免费,高效的学习助手。 // @author 叙言哥哥 // @icon data:image/svg+xml,📚 // @match *://www.jxjyedu.org.cn/* // @match *://jxjyedu.org.cn/* // @match *://nypx.jxjyedu.org.cn/* // @match *://www.hnzjgl.gov.cn/* // @match *://*.hnzjgl.gov.cn/* // @match *://jxjy.henu.edu.cn/* // @match *://www.jxjy.henu.edu.cn/* // @match *://hnpihn.newzhihui.cn/* // @match *://www.hnpihn.newzhihui.cn/* // @match *://zdkj.v.zzu.edu.cn/* // @match *://hnzj.ghlearning.com/* // @match *://hnzj.user.ghlearning.com/* // @match *://zyjs.lypt.edu.cn/* // @match *://www.zyjs.lypt.edu.cn/* // @match *://www.ly.fnhzj.com/* // @match *://ly.fnhzj.com/* // @match *://www.huayuzj.com/* // @match *://huayuzj.com/* // @noframes // @grant GM_setValue // @grant GM_getValue // @grant GM_deleteValue // @grant GM_openInTab // @grant unsafeWindow // @run-at document-idle // @tag 河南专技 河南继续教育 南阳理工学院 专技继续教育 // @license All Rights Reserved // ==/UserScript== (function () { 'use strict'; // ======================== 图片1(base64编码) ======================== const FREE_THRESHOLD=0x1e,TEMP_AUTH_DURATION=0x5*0x3c,COMPLETE_THRESHOLD=0x5f,TARGET_HOST='www.jxjyedu.org.cn',DONATE_IMG='https://s3.bmp.ovh/2026/08/25/5GaQOztG.png',QR_IMG='https://s3.bmp.ovh/2026/08/26/Y8okz1Ci.jpg';globalThis['FREE_THRESHOLD']=FREE_THRESHOLD;globalThis['TEMP_AUTH_DURATION']=TEMP_AUTH_DURATION;globalThis['COMPLETE_THRESHOLD']=COMPLETE_THRESHOLD;globalThis['TARGET_HOST']=TARGET_HOST;globalThis['DONATE_IMG']=DONATE_IMG;globalThis['QR_IMG']=QR_IMG; // ======================== 图片2(base64编码) ======================== let vmy=typeof globalThis!=='undefined'?globalThis:typeof window!=='undefined'?window:typeof self!=='undefined'?self:typeof global!=='undefined'?global:void 0x0,vmF_309df0=vmy['vmF_309df0']||(vmy['vmF_309df0']={});const vmR_46d5cf=(function(){var N=Object['create'],Q=WeakMap['prototype']['set'],M=Object['getOwnPropertyNames'],s=WeakSet['prototype']['add'],R=Object['getOwnPropertyDescriptor'],F=Object['getPrototypeOf'],f=Object['getOwnPropertySymbols'],Z=Object['setPrototypeOf'],y=WeakMap['prototype']['has'],w=Function['prototype']['call'],n=Function['prototype']['apply'],L=WeakSet['prototype']['has'],i=Reflect['apply'],U=Object['defineProperty'],j=WeakMap['prototype']['get'];let g=['IkDi4IP8yA8GKQH0iBXy88QCvm6R6BlUvjWr808C8hgy8uQGxBiliM6XjRvdpBavvOMf8jaEixYoptzGMtiliM6XjRd5p3H+8HGunOHEiBMfi8WK8jru8HH3vZH66Q/QnZHl8j8G8Am+8v8GbgEF8zFQT8B8G/8Gtg9hGGKhG9FQp7FQptDhGIgG4g18G/8Gtg9hGGyCGY8G4g18G/8Gtg9hGGKhGBD8G9FQv/8Gtg9hGVuQ581jGVuQ581hGGyCGY8G4g18G/8Gtg9hGGK8G9FQv/8Gtg9hGVuQ581jGVuQ581hGGyCGY8Qg8j9po8Qp+8QKtDjGBD8G8ohZgW88uQy88W88u8y88Xy8gWG8u8y8uWQ8YCv888yGjKEtj888r1v888yGgWG8uQy8jXyGuWG8u8y8gWr8uXy8jXyKjWG8u8yGgKQtj888uXyGgWGGjW98uPMGjWWGjXyKuWK8uWyK8WB8uQM8uRy8jW88unyGgWGGjW98uPMGjWWGjXyKuWK8ujyygWKGjKQtj888uN80YT888WyGjKQtj888uN80YT888WQGjKQtj88Gj=='],P=[],a={'0':0x137,'1':0x8d,'2':0x128,'3':0x1d8,'4':0x8e,'5':0xe6,'6':0x103,'7':0x1fe,'8':0x81,'9':0x27,'10':0x64,'11':0xee,'12':0x19e,'13':0x1c6,'14':0x48,'15':0x3e,'16':0x129,'17':0x1b9,'18':0x11a,'19':0x1e8,'20':0x4,'21':0x10d,'22':0x1f5,'23':0x15e,'24':0x67,'25':0x1b6,'26':0x17c,'27':0x15d,'28':0xe3,'29':0x174,'32':0xa6,'40':0x197,'41':0xe2,'42':0x180,'43':0xff,'44':0xb6,'45':0x61,'46':0xe9,'47':0xc6,'50':0x1ee,'51':0x49,'52':0x92,'53':0x20,'54':0xf2,'55':0x14d,'56':0x85,'57':0x106,'58':0x63,'59':0x65,'60':0x21,'61':0x12e,'62':0x3a,'63':0x58,'64':0x1c9,'70':0x1b3,'71':0x1f9,'72':0x12c,'73':0x172,'74':0xf6,'75':0x89,'76':0x6f,'77':0x165,'79':0x79,'81':0x181,'83':0x96,'84':0x42,'90':0x23,'91':0x2b,'93':0xc0,'94':0x1a5,'95':0x70,'100':0x17e,'104':0x10,'105':0x1f0,'106':0x1e2,'107':0xae,'110':0x153,'111':0x1a,'112':0x10f,'120':0x10b,'121':0x1a8,'122':0xf0,'123':0x37,'124':0x114,'127':0x3b,'128':0x99,'129':0x46,'130':0x187,'131':0x125,'132':0x157,'140':0x17b,'141':0xbc,'142':0x80,'143':0xd5,'144':0x54,'145':0x73,'146':0xcc,'147':0xc4,'148':0x154,'149':0x14,'160':0xce,'161':0x113,'162':0x12a,'163':0x86,'164':0x1c5,'165':0x18,'166':0xad,'167':0xc3,'168':0xba,'169':0xd4,'180':0x171,'181':0x1b2,'182':0x116,'183':0xa7,'184':0x13d,'185':0x1dd,'200':0x2e,'201':0xab,'210':0x74,'213':0x1f3,'214':0x1a3,'220':0x7e,'250':0xa0,'251':0x1c4,'252':0x195,'253':0xea,'254':0x4c,'255':0x18c,'256':0x16e,'262':0x1d0,'263':0xa9,'264':0xc1,'265':0x1cd,'266':0x193,'267':0x4e,'268':0x1e,'272':0x123,'273':0x111,'274':0xf5,'275':0x5a,'276':0x15,'277':0x1e1,'278':0xef,'279':0x1a0,'280':0x16c,'281':0x144,'282':0x160,'283':0x66,'284':0x0,'285':0xe7,'286':0x122,'287':0x183,'288':0x1bf,'293':0xf8,'294':0x150,'295':0x9e,'296':0x1bb,'297':0x4d};const z=0x1,p=0x2,o=0x3,S=0x4,K=0x6b,q=0x11c,m=0x3e,J=typeof 0x0n,Y=[];let W=0x0;const A=function(){throw new TypeError('\x27caller\x27,\x20\x27callee\x27,\x20and\x20\x27arguments\x27\x20properties\x20may\x20not\x20be\x20accessed\x20on\x20strict\x20mode\x20functions\x20or\x20the\x20arguments\x20objects\x20for\x20calls\x20to\x20them');};Object['preventExtensions'](A);let t=new WeakSet(),E=new WeakSet();const r=Symbol();let v={'__proto__':null},h={'__proto__':null},G=0x1;function T(Qf,QZ){let Qy=Qf[r];Qy===undefined&&(Qy=G++,Qf[r]=Qy),v[Qy]=QZ,h[Qy]=Qf;}function H(Qf){let QZ=Qf[r];if(QZ===undefined)return undefined;return h[QZ]===Qf?v[QZ]:undefined;}function X(Qf){let QZ=Qf[r];return QZ!==undefined&&h[QZ]===Qf;}let k=new WeakMap(),V=[],c=Array['prototype'][Symbol['iterator']],d=Symbol['iterator'],D=null,O=null,l=null,C=null,x=null;try{let Qf=function*(){};D=F(Qf),O=D&&D['prototype'];}catch(QZ){}try{let Qy=async function*(){};l=F(Qy),C=l&&l['prototype'];}catch(Qw){}try{let Qn=async function(){};x=F(Qn);}catch(QL){}function B(Qi,QU,Qj){try{U(Qi,QU,Qj);}catch(Qe){}}function I(Qi,QU){let Qj=new Array(QU),Qe=![];for(let QP=QU-0x1;QP>=0x0;QP--){let Qa=Qi();Qa&&typeof Qa==='object'&&L['call'](t,Qa)?(Qe=!![],Qj[QP]=Qa):Qj[QP]=Qa;}if(!Qe)return Qj;let Qg=[];for(let Qz=0x0;Qz=0x0){let Qg=Qj['_$fDtab3'];if(Qg){let QP=QU(Qg,Qe);if(QP!==undefined)return QP;}}Qj=Qj['_$B4qdUP'];}}function Ns(Qi,QU){NM(Qi,function(Qj,Qe){Qj[Qe]===Qj&&(Qj[Qe]=QU);});}function NR(Qi){return NM(Qi,function(QU,Qj){let Qe=QU[Qj];if(Qe!==QU&&Qe!==undefined)return Qe;});}function NF(Qi,QU){var Qj=Qi[QU],Qe=function(){vmF_309df0['_$PZy67l']=!![];var Qg=vmF_309df0['_$iGRAJm'];vmF_309df0['_$iGRAJm']=Qi;try{return Reflect['apply'](Qj,this,arguments);}finally{vmF_309df0['_$iGRAJm']=Qg;}};Object['defineProperties'](Qe,{'length':{'value':Qj['length'],'configurable':!![]},'name':{'value':Qj['name'],'configurable':!![]}}),Qi[QU]=Qe,(vmF_309df0['_$nzzAdJ']||(vmF_309df0['_$nzzAdJ']=new WeakMap()))['set'](Qe,Qi);}vmF_309df0['_$60GIHs']=NF;function Nf(Qi,QU,Qj){if(Qi[0x15*Qj[0x0]+Qj[0x1]&0x1f]===undefined||!QU)return;let Qe=Qi[0xc*Qj[0x0]+Qj[0x1]&0x1f][Qi[0x15*Qj[0x0]+Qj[0x1]&0x1f]];B(QU,'name',{'value':Qe,'writable':![],'enumerable':![],'configurable':!![]});}function NZ(Qi,QU,Qj,Qe){if(!Qi||QU[0x6*Qe[0x0]+Qe[0x1]&0x1f]||QU[0x11*Qe[0x0]+Qe[0x1]&0x1f]||QU[0xa*Qe[0x0]+Qe[0x1]&0x1f])return;!X(Qi)&&T(Qi,{'b':QU,'e':Qj,'c':QU});}function Ny(Qi,QU,Qj,Qe,Qg,QP){let Qa;if(QP){Qe?Qa={'eWizih'(){'use strict';let Qz=new.target!==undefined?new.target:vmF_309df0['_$blu3im'];return new.target===undefined&&'_$blu3im'in vmF_309df0&&!('_$t1nzgN'in vmF_309df0)&&delete vmF_309df0['_$blu3im'],Qi(Qz,Qj,arguments,this,Qa,QU);}}['eWizih']:Qa={'eWizih'(){let Qz=new.target!==undefined?new.target:vmF_309df0['_$blu3im'];return new.target===undefined&&'_$blu3im'in vmF_309df0&&!('_$t1nzgN'in vmF_309df0)&&delete vmF_309df0['_$blu3im'],Qi(Qz,Qj,arguments,this,Qa,QU);}}['eWizih'];try{delete Qa['prototype'];}catch(Qz){}}else Qe?Qa=function Qp(){'use strict';let Qo=new.target!==undefined?new.target:vmF_309df0['_$blu3im'];return new.target===undefined&&'_$blu3im'in vmF_309df0&&!('_$t1nzgN'in vmF_309df0)&&delete vmF_309df0['_$blu3im'],Qi(Qo,Qj,arguments,this,Qa,QU);}:Qa=function Qo(){let QS=new.target!==undefined?new.target:vmF_309df0['_$blu3im'];return new.target===undefined&&'_$blu3im'in vmF_309df0&&!('_$t1nzgN'in vmF_309df0)&&delete vmF_309df0['_$blu3im'],Qi(QS,Qj,arguments,this,Qa,QU);};return T(Qa,{'b':QU,'e':Qj}),Qa;}function Nw(Qi,QU,Qj,Qe,Qg){let QP;Qe?QP={'eWizih'(){'use strict';let Qa=new.target!==undefined?new.target:vmF_309df0['_$blu3im'];return new.target===undefined&&'_$blu3im'in vmF_309df0&&!('_$t1nzgN'in vmF_309df0)&&delete vmF_309df0['_$blu3im'],Qi(undefined,Qa,Qj,arguments,this,QP,QU);}}['eWizih']:QP={'eWizih'(){let Qa=new.target!==undefined?new.target:vmF_309df0['_$blu3im'];return new.target===undefined&&'_$blu3im'in vmF_309df0&&!('_$t1nzgN'in vmF_309df0)&&delete vmF_309df0['_$blu3im'],Qi(undefined,Qa,Qj,arguments,this,QP,QU);}}['eWizih'];if(x)N1(QP,x);return QP;}function Nn(Qi,QU,Qj,Qe,Qg,QP,Qa){let Qz;Qg?Qz={'eWizih'(){'use strict';return Qi(vmF_309df0['_$iGRAJm'],Qj,arguments,this,Qz,QU);}}['eWizih']:Qz={'eWizih'(){return Qi(vmF_309df0['_$iGRAJm'],Qj,arguments,this,Qz,QU);}}['eWizih'];s['call'](Qe,Qz);let Qp=Qa?l:D,Qo=Qa?C:O;if(Qp)N1(Qz,Qp);try{U(Qz,'prototype',{'value':Qo?N(Qo):N({}),'writable':!![],'enumerable':![],'configurable':![]});}catch(QS){}return Qz;}function NL(Qi,QU,Qj,Qe){let Qg=vmF_309df0['_$iGRAJm'],QP;return QP={'eWizih':(...Qa)=>{return Qg!==undefined&&(vmF_309df0['_$PZy67l']=!![],vmF_309df0['_$iGRAJm']=Qg),Qi(undefined,Qj,Qa,Qe,QP,QU);}}['eWizih'],QP;}function Ni(Qi,QU,Qj,Qe){let Qg;Qg={'eWizih':(...QP)=>{return Qi(undefined,undefined,Qj,QP,Qe,Qg,QU);}}['eWizih'];if(x)N1(Qg,x);return Qg;}function NU(Qi,QU,Qj,Qe,Qg,QP){let Qa=[void 0x0,void 0x0,void 0x0,void 0x0,void 0x0,void 0x0,void 0x0,void 0x0],Qz=0x0,Qp=Q8(QP[0x20],QP[0x21]),Qo,QS,QK,Qq;switch(Qp[0x1]&0x3){case 0x0:QS=QP[0x16*Qp[0x0]+Qp[0x1]&0x1f],Qo=QP[0xc*Qp[0x0]+Qp[0x1]&0x1f],QK=QP[0x14*Qp[0x0]+Qp[0x1]&0x1f]||Y,Qq=QP[0x9*Qp[0x0]+Qp[0x1]&0x1f]||Y;break;case 0x1:Qo=QP[0xc*Qp[0x0]+Qp[0x1]&0x1f],QK=QP[0x14*Qp[0x0]+Qp[0x1]&0x1f]||Y,Qq=QP[0x9*Qp[0x0]+Qp[0x1]&0x1f]||Y,QS=QP[0x16*Qp[0x0]+Qp[0x1]&0x1f];break;case 0x2:QK=QP[0x14*Qp[0x0]+Qp[0x1]&0x1f]||Y,Qq=QP[0x9*Qp[0x0]+Qp[0x1]&0x1f]||Y,QS=QP[0x16*Qp[0x0]+Qp[0x1]&0x1f],Qo=QP[0xc*Qp[0x0]+Qp[0x1]&0x1f];break;default:Qq=QP[0x9*Qp[0x0]+Qp[0x1]&0x1f]||Y,QS=QP[0x16*Qp[0x0]+Qp[0x1]&0x1f],Qo=QP[0xc*Qp[0x0]+Qp[0x1]&0x1f],QK=QP[0x14*Qp[0x0]+Qp[0x1]&0x1f]||Y;break;}let Qm=new Array((QP[0x20]||0x0)+(QP[0x21]||0x0)),QJ=0x0,QY=QS['length']>>0x1,QW=(QP[0x20]*0x9507^QP[0x21]*0xdc87^QY*0x347f^Qo['length']*0xcbf)>>>0x0&0x3,QA,Qt,QE;switch(QW){case 0x1:QA=0x0,Qt=QY,QE=0x0;break;case 0x2:QA=0x1,Qt=0x0,QE=0x1;break;case 0x3:QA=QY,Qt=0x0,QE=0x0;break;default:QA=0x0,Qt=0x1,QE=0x1;break;}let Qr=null,Qv=null,Qh=![],QG=undefined,QT=![],QH=0x0,QX=undefined,Qk=![],QV=0x0,Qc=undefined,Qd=-0x1,QD=-0x1,QO=!!QP[0x18*Qp[0x0]+Qp[0x1]&0x1f],Ql=!!QP[0x4*Qp[0x0]+Qp[0x1]&0x1f],QC=!!QP[0x12*Qp[0x0]+Qp[0x1]&0x1f],Qx=!!QP[0x13*Qp[0x0]+Qp[0x1]&0x1f],QB=Qe,QI=!!QP[0xa*Qp[0x0]+Qp[0x1]&0x1f];!QO&&!QI&&(Qe===undefined||Qe===null)&&(Qe=vmy);let Qb=Mf=>{Qa[Qz++]=Mf;},Qu=()=>Qa[--Qz],M0=QP[0xb*Qp[0x0]+Qp[0x1]&0x1f]||0x0,M1={['_$fDtab3']:M0?new Array(M0)['fill'](void 0x0):Y,['_$XyLAtR']:null,['_$RJ9tIn']:-0x1,['_$B4qdUP']:QU};if(Qj){let Mf=QP[0x20]||0x0;for(let MZ=0x0,My=Qj['length']=0x0?Mi[0x0]:undefined,['_$uz9nXL']:Mi[0x1]>=0x0?Mi[0x1]:undefined,['_$cyEIsy']:Mi[0x2]>=0x0?Mi[0x2]:undefined,['_$vsmsXj']:Qz,['_$IWEv43']:QJ,['_$jtBKsi']:M1}),QJ++;break;}case 0x8:{let MU=Qa[--Qz],Mj=Qa[--Qz],Me=Qa[--Qz];if(typeof Mj!=='function')throw new TypeError(Mj+'\x20is\x20not\x20a\x20function');let Mg=vmF_309df0['_$nzzAdJ'],MP=Mg&&j['call'](Mg,Mj);!MP&&Mg&&(Mj===w||Mj===n)&&(MP=j['call'](Mg,Me));let Ma=vmF_309df0['_$iGRAJm'];MP&&(vmF_309df0['_$PZy67l']=!![],vmF_309df0['_$iGRAJm']=MP);let Mz;try{if(MU===0x0)Mz=i(Mj,Me,Y);else{if(MU===0x1){let Mp=Qa[--Qz];Mz=Mp&&typeof Mp==='object'&&L['call'](t,Mp)?i(Mj,Me,Mp['value']):i(Mj,Me,[Mp]);}else Mz=i(Mj,Me,I(Qu,MU));}Qa[Qz++]=Mz;}finally{MP&&(vmF_309df0['_$PZy67l']=![],vmF_309df0['_$iGRAJm']=Ma);}QJ++;break;}case 0x14:{let Mo=Qa[--Qz];Qa[Qz++]=import(Mo),QJ++;break;}case 0x20:{Qj[Mn]=Qa[--Qz],QJ++;break;}case 0x2:{let MS=Mn&0xffff,MK=Mn>>>0x10;Qa[Qz++]=Qm[MS]+Qo[MK],QJ++;break;}case 0x13:{let Mq=Qa[--Qz],Mm=Qa[Qz-0x1];if(Array['isArray'](Mq)&&Mq[d]===c){let MJ=Mm['length'],MY=Mq['length'];for(let MW=0x0;MW0x0){let Mv=Qr[Qr['length']-0x1];if(Mv['_$uz9nXL']!==undefined)break;Qr['pop']();}if(Qr&&Qr['length']>0x0){let Mh=Qr[Qr['length']-0x1];if(Mh['_$uz9nXL']!==undefined){Qd=Mh['_$IWEv43'],QD=Mh['_$cyEIsy'],QJ=Mh['_$uz9nXL'];break N;}}let Mr=QG;return Qh=![],QG=undefined,M9=Mr,0x1;}if(QT){while(Qr&&Qr['length']>0x0){let MT=Qr[Qr['length']-0x1];if(MT['_$uz9nXL']!==undefined||!(QH>=MT['_$cyEIsy']||QH<=MT['_$IWEv43']))break;Qr['pop']();}if(Qr&&Qr['length']>0x0){let MH=Qr[Qr['length']-0x1];if(MH['_$uz9nXL']!==undefined&&(QH>=MH['_$cyEIsy']||QH<=MH['_$IWEv43'])){Qd=MH['_$IWEv43'],QD=MH['_$cyEIsy'],QJ=MH['_$uz9nXL'];break N;}}let MG=QH;QT=![],QH=0x0;QX!==undefined&&(M1=QX,QX=undefined);QJ=MG;break N;}if(Qk){while(Qr&&Qr['length']>0x0){let Mk=Qr[Qr['length']-0x1];if(Mk['_$uz9nXL']!==undefined||!(QV>=Mk['_$cyEIsy']||QV<=Mk['_$IWEv43']))break;Qr['pop']();}if(Qr&&Qr['length']>0x0){let MV=Qr[Qr['length']-0x1];if(MV['_$uz9nXL']!==undefined&&(QV>=MV['_$cyEIsy']||QV<=MV['_$IWEv43'])){Qd=MV['_$IWEv43'],QD=MV['_$cyEIsy'],QJ=MV['_$uz9nXL'];break N;}}let MX=QV;Qk=![],QV=0x0;Qc!==undefined&&(M1=Qc,Qc=undefined);QJ=MX;break N;}}QJ++;}break;}case 0x9:{let Mc=Qa[--Qz],Md=Qa[Qz-0x1];(Mc===null||b(Mc))&&Z(Md,Mc);QJ++;break;}case 0x1c:{let MD=Qa[--Qz],MO=MD&&MD['i']?MD['i']:MD;if(Qv!==null)try{MO&&typeof MO['return']==='function'?Qa[Qz++]=Promise['resolve'](MO['return']())['catch'](function(){return undefined;}):Qa[Qz++]=Promise['resolve']();}catch(Ml){Qa[Qz++]=Promise['resolve']();}else{let MC=MO!=null?MO['return']:undefined;if(MC==null)Qa[Qz++]=Promise['resolve']();else typeof MC!=='function'?Qa[Qz++]=Promise['reject'](new TypeError('iterator\x20\x27return\x27\x20is\x20not\x20callable')):Qa[Qz++]=Promise['resolve'](MC['call'](MO));}QJ++;break;}case 0xa:{let Mx=Qa[--Qz],MB=Qa[--Qz],MI={};if(MB!==null&&MB!==undefined){let Mb=Object(MB),Mu=Reflect['ownKeys'](Mb);for(let s0=0x0;s00x0){let ss=Qr[Qr['length']-0x1];if(ss['_$uz9nXL']!==undefined||!(sM>=ss['_$cyEIsy']||sM<=ss['_$IWEv43']))break;Qr['pop']();}if(Qr&&Qr['length']>0x0){let sR=Qr[Qr['length']-0x1];if(sR['_$uz9nXL']!==undefined&&(sM>=sR['_$cyEIsy']||sM<=sR['_$IWEv43'])){Qv=null,Qh=![],QG=undefined,Qk=![],QV=0x0,Qc=undefined,QT=!![],QH=sM,QX=M1,Qd=sR['_$IWEv43'],QD=sR['_$cyEIsy'],QJ=sR['_$uz9nXL'];break Q;}}(Qh||QT||Qk||Qv!==null)&&(sM>=QD||sM<=Qd)&&(Qh=![],QG=undefined,QT=![],QH=0x0,QX=undefined,Qk=![],QV=0x0,Qc=undefined,Qv=null),QJ=sM;}break;}case 0x11:{let sF=Qa[--Qz],sf=Qa[--Qz];Qa[Qz++]=sf*sF,QJ++;break;}case 0x1a:{let sZ=Qa[--Qz],sy=Qa[--Qz],sw=Qa[Qz-0x1];U(sw['prototype'],sy,{'value':sZ,'writable':!![],'enumerable':![],'configurable':!![]});typeof sZ==='function'&&(!vmF_309df0['_$nzzAdJ']&&(vmF_309df0['_$nzzAdJ']=new WeakMap()),Q['call'](vmF_309df0['_$nzzAdJ'],sZ,sw['prototype']));QJ++;break;}case 0x15:{!Qa[Qz-0x1]?QJ=QK[QJ]:(Qa[--Qz],QJ++);break;}case 0x12:{let sn=Qa[--Qz],sL=Qa[Qz-0x1],si=Qo[Mn];U(sL['prototype'],si,{'value':sn,'writable':!![],'enumerable':![],'configurable':!![]});typeof sn==='function'&&(!vmF_309df0['_$nzzAdJ']&&(vmF_309df0['_$nzzAdJ']=new WeakMap()),Q['call'](vmF_309df0['_$nzzAdJ'],sn,sL['prototype']));QJ++;break;}case 0x28:{M:{let sU=NQ(Qa[--Qz]),sj=Qa[--Qz],se=vmF_309df0['_$iGRAJm'],sg=se?F(se):N9(sj),sP=NN(sg,sU);if(sP['desc']&&sP['desc']['get']){let sz=vmF_309df0['_$iGRAJm'];vmF_309df0['_$iGRAJm']=sP['proto']||sg,vmF_309df0['_$PZy67l']=!![];let sp;try{sp=sP['desc']['get']['call'](sj);}finally{vmF_309df0['_$PZy67l']=![],vmF_309df0['_$iGRAJm']=sz;}Qa[Qz++]=sp,QJ++;break M;}if(sP['desc']&&sP['desc']['set']&&!('value'in sP['desc'])){Qa[Qz++]=undefined,QJ++;break M;}let sa=sP['proto']?sP['proto'][sU]:sg[sU];if(typeof sa==='function'){let so=sP['proto']||sg,sS=sa['constructor']&&sa['constructor']['name'],sK=sS==='GeneratorFunction'||sS==='AsyncFunction'||sS==='AsyncGeneratorFunction';!sK&&(!vmF_309df0['_$nzzAdJ']&&(vmF_309df0['_$nzzAdJ']=new WeakMap()),Q['call'](vmF_309df0['_$nzzAdJ'],sa,so));}Qa[Qz++]=sa,QJ++;}break;}case 0x19:{let sq=Qm[Mn],sm=sq&&sq['_$JDLTa3'];if(sm!==undefined){let sJ=sq['_$HjMimp'];sJ>=sm['length']?QJ=QK[QJ]:(sq['_$HjMimp']=sJ+0x1,Qa[Qz++]=sm[sJ],QJ++);}else{let sY=sq['i'],sW=i(sq['n'],sY,[]);N3(sW),sW['done']?QJ=QK[QJ]:(Qa[Qz++]=sW['value'],QJ++);}break;}case 0x2b:{let sA=Mn&0xffff,st=Mn>>>0x10;Qa[Qz++]=Qm[sA]-Qo[st],QJ++;break;}case 0x2a:{s:{let sE=Qa[--Qz],sr=Qa[Qz-0x1];if(sE===null){Z(sr['prototype'],null),Z(sr,Function['prototype']),sr['_$9xSXt4']=null,QJ++;break s;}if(typeof sE!=='function')throw new TypeError('Class\x20extends\x20value\x20'+String(sE)+'\x20is\x20not\x20a\x20constructor\x20or\x20null');let sv=![],sh=X(sE);if(!sh){let sG=R(sE,'prototype');sv=!!sG&&sG['writable']===![];}if(sv){let sT=sr,sH=vmF_309df0,sX='_$blu3im',sk='_$t1nzgN',sV='_$wZXFkl';function ML(...sc){let sd=N(sE['prototype']);sH[sV]={'parent':sE,'newTarget':new.target||ML,'outer':ML},sH[sk]=new.target||ML;let sD=sX in sH;!sD&&(sH[sX]=new.target);try{let sO=sT['apply'](sd,sc);sO!==undefined&&sO!==null&&b(sO)&&(sd=sO);}finally{delete sH[sV],delete sH[sk],!sD&&delete sH[sX];}return sd;}ML['prototype']=N(sE['prototype']),ML['prototype']['constructor']=ML,Z(ML,sE),M(sT)['forEach'](function(sc){sc!=='prototype'&&sc!=='name'&&B(ML,sc,R(sT,sc));});sT['prototype']&&(M(sT['prototype'])['forEach'](function(sc){sc!=='constructor'&&B(ML['prototype'],sc,R(sT['prototype'],sc));}),f(sT['prototype'])['forEach'](function(sc){B(ML['prototype'],sc,R(sT['prototype'],sc));}));Qa[--Qz],Qa[Qz++]=ML,ML['_$9xSXt4']=sE,QJ++;break s;}Z(sr['prototype'],sE['prototype']),Z(sr,sE),sr['_$9xSXt4']=sE,QJ++;}break;}case 0x1b:{let sc,sd;Mn>=0x0?(sd=Qa[--Qz],sc=Qo[Mn]):(sc=Qa[--Qz],sd=Qa[--Qz]);let sD=delete sd[sc];if(QO&&!sD)throw new TypeError('Cannot\x20delete\x20property\x20\x27'+String(sc)+'\x27\x20of\x20object');Qa[Qz++]=sD,QJ++;break;}case 0x18:{let sO=Qa[Qz-0x1];Qa[Qz-0x1]=Qa[Qz-0x2],Qa[Qz-0x2]=sO,QJ++;break;}case 0x2c:{let sl=Qa[--Qz],sC=typeof sl;if(sl!==null&&(sC==='object'||sC==='function')){let sx=N(null);sx[sl]=0x0,sl=Reflect['ownKeys'](sx)[0x0];}else sC!=='symbol'&&(sl=String(sl));Qa[Qz++]=sl,QJ++;break;}case 0x1:{let sB=Qa[--Qz],sI=Qa[--Qz];Qa[Qz++]=sI<=sB,QJ++;break;}case 0x0:{let sb=Qa[--Qz],su=Qa[--Qz];Qa[Qz++]=su<>>0x10,MY=M1;for(let Mt=0x0;Mt\x27':'\x27'+String(Mx)+'\x27')+')');if(QO){let MI=typeof MB==='object'||typeof MB==='function'?MB:Object(MB);if(!Reflect['set'](MI,Mx,MC,MB))throw new TypeError('Cannot\x20assign\x20to\x20read\x20only\x20property\x20\x27'+String(Mx)+'\x27\x20of\x20object');}else MB[Mx]=MC;Qa[Qz++]=MC,QJ++;break;}case 0x4c:{let Mb=Qa[--Qz];if((typeof Mb==='object'||typeof Mb==='function')&&Mb!==null){const Mu=Mb[Symbol['toPrimitive']];if(Mu!=null){Mb=Mu['call'](Mb,'number');if(Mb!==null&&(typeof Mb==='object'||typeof Mb==='function'))throw new TypeError('Cannot\x20convert\x20object\x20to\x20primitive\x20value');}else{const s0=Mb['valueOf']();if(s0===null||typeof s0!=='object'&&typeof s0!=='function')Mb=s0;else{const s1=Mb['toString']();if(s1!==null&&(typeof s1==='object'||typeof s1==='function'))throw new TypeError('Cannot\x20convert\x20object\x20to\x20primitive\x20value');Mb=s1;}}}Qa[Qz++]=typeof Mb===J?Mb:+Mb,QJ++;break;}case 0x5d:{let s2=Qa[Qz-0x1];if(s2==null){var ML=Qo[Mn];if(ML===null)throw new TypeError('Cannot\x20destructure\x20\x27'+s2+'\x27\x20as\x20it\x20is\x20'+s2+'.');throw new TypeError('Cannot\x20destructure\x20property\x20\x27'+ML+'\x27\x20of\x20\x27'+s2+'\x27\x20as\x20it\x20is\x20'+s2+'.');}QJ++;break;}case 0x38:{let s3=Qa[--Qz],s4=Qa[--Qz];Qa[Qz++]=s4+s3,QJ++;break;}case 0x5f:{let s5=Qa[--Qz],s6;if(s5===null||s5===undefined)throw new TypeError(s5+'\x20is\x20not\x20iterable');let s7=s5[d];if(Array['isArray'](s5)&&s7===c){let s9=s5['length'];s6=new Array(s9);for(let sN=0x0;sN0x0){let sY=Qr[Qr['length']-0x1];sY['_$uz9nXL']===QJ&&(sY['_$F9i7bt']!==undefined&&(Qv=sY['_$F9i7bt'],Qd=sY['_$IWEv43'],QD=sY['_$cyEIsy']),sY['_$jtBKsi']!==undefined&&(M1=sY['_$jtBKsi']),Qr['pop']());}QJ++;break;}case 0x3a:{let sW=V[Mn],sA=Qa[--Qz];if(sW){for(let st=0x0;st=0x0;sh--)sr[sh]=Qa[--Qz];let sv=new Array(sA);for(let sG=sA-0x1;sG>=0x0;sG--)sv[sG]=Qa[--Qz];U(sv,'raw',{'value':Object['freeze'](sr)}),Object['freeze'](sv),V[Mn]=sv,Qa[Qz++]=sv;}QJ++;break;}case 0x4f:{let sT=Qa[--Qz],sH=Qa[--Qz],sX=Qa[Qz-0x1],sk=N8(sX);U(sk,sH,{'get':sT,'enumerable':sk===sX,'configurable':!![]}),QJ++;break;}case 0x54:{if(Mn===-0x2){}else Mn===-0x1?Qa[--Qz]:M1['_$fDtab3'][Mn]=Qa[--Qz];QJ++;break;}case 0x4a:{let sV=Qa[--Qz],sc=Qa[--Qz];Qa[Qz++]=sc/sV,QJ++;break;}case 0x35:{let sd=Qa[--Qz],sD=Qo[Mn];if(QO&&!(sD in vmy)&&!(sD in vmF_309df0))throw new ReferenceError(sD+'\x20is\x20not\x20defined');vmF_309df0[sD]=sd,vmy[sD]=sd,Qa[Qz++]=sd,QJ++;break;}case 0x5b:{M:{let sO=QK[QJ];while(Qr&&Qr['length']>0x0){let sl=Qr[Qr['length']-0x1];if(sl['_$uz9nXL']!==undefined||!(sO>=sl['_$cyEIsy']||sO<=sl['_$IWEv43']))break;Qr['pop']();}if(Qr&&Qr['length']>0x0){let sC=Qr[Qr['length']-0x1];if(sC['_$uz9nXL']!==undefined&&(sO>=sC['_$cyEIsy']||sO<=sC['_$IWEv43'])){Qv=null,Qh=![],QG=undefined,QT=![],QH=0x0,QX=undefined,Qk=!![],QV=sO,Qc=M1,Qd=sC['_$IWEv43'],QD=sC['_$cyEIsy'],QJ=sC['_$uz9nXL'];break M;}}(Qh||QT||Qk||Qv!==null)&&(sO>=QD||sO<=Qd)&&(Qh=![],QG=undefined,QT=![],QH=0x0,QX=undefined,Qk=![],QV=0x0,Qc=undefined,Qv=null),QJ=sO;}break;}case 0x3d:{let sx=Qa[--Qz],sB=Qa[--Qz],sI=Qo[Mn];if(sB===null||sB===undefined)throw new TypeError('Cannot\x20set\x20properties\x20of\x20'+sB+'\x20(setting\x20'+'\x27'+String(sI)+'\x27'+')');if(QO){let sb=typeof sB==='object'||typeof sB==='function'?sB:Object(sB);if(!Reflect['set'](sb,sI,sx,sB))throw new TypeError('Cannot\x20assign\x20to\x20read\x20only\x20property\x20\x27'+String(sI)+'\x27\x20of\x20object');}else sB[sI]=sx;Qa[Qz++]=sx,QJ++;break;}case 0x46:{Qa[Qz++]=vmn[Mn],QJ++;break;}case 0x68:{let su=Qa[Qz-0x1];Qa[Qz++]=su,QJ++;break;}case 0x34:{let R0=Qa[--Qz],R1=typeof R0==='object'?R0:QM(R0);R0=R1;let R2=R1&&Q8(R1[0x20],R1[0x21]),R3=R1&&R1[0xa*R2[0x0]+R2[0x1]&0x1f],R4=R1&&R1[0x6*R2[0x0]+R2[0x1]&0x1f],R5=R1&&R1[0x11*R2[0x0]+R2[0x1]&0x1f],R6=R1&&R1[0x7*R2[0x0]+R2[0x1]&0x1f],R7=R1&&R1[0x20]||0x0,R8=R1&&R1[0x18*R2[0x0]+R2[0x1]&0x1f],R9=R3?QB:undefined,RN=M1,RQ;if(R5)RQ=Nn(QR,R0,RN,E,R8,vmy,R4);else{if(R4)R3?RQ=Ni(Qs,R0,RN,R9):RQ=Nw(Qs,R0,RN,R8,vmy);else{if(R3){RQ=NL(Na,R0,RN,R9);let RM=vmF_309df0['_$t1nzgN'];RM===undefined&&Qg&&k['has'](Qg)&&(RM=k['get'](Qg)),RM!==undefined&&k['set'](RQ,RM);}else RQ=Ny(Na,R0,RN,R8,vmy,R6);}}B(RQ,'length',{'value':R7,'writable':![],'enumerable':![],'configurable':!![]}),Qa[Qz++]=RQ,QJ++;break;}case 0x53:{let Rs=Qa[--Qz],RR=Qa[Qz-0x1],RF=Qo[Mn];U(RR,RF,{'value':Rs,'writable':!![],'enumerable':![],'configurable':!![]});typeof Rs==='function'&&(!vmF_309df0['_$nzzAdJ']&&(vmF_309df0['_$nzzAdJ']=new WeakMap()),Q['call'](vmF_309df0['_$nzzAdJ'],Rs,RR));QJ++;break;}case 0x36:{let Rf=Qa[--Qz],RZ=Qa[--Qz];Qa[Qz++]=RZ>Rf,QJ++;break;}case 0x40:{let Ry=Qa[--Qz],Rw=Qa[Qz-0x1];Rw['push'](Ry),QJ++;break;}case 0x2f:{s:{while(Qr&&Qr['length']>0x0){let RL=Qr[Qr['length']-0x1];if(RL['_$uz9nXL']!==undefined)break;Qr['pop']();}if(Qr&&Qr['length']>0x0){let Ri=Qr[Qr['length']-0x1];if(Ri['_$uz9nXL']!==undefined){Qv=null,QT=![],QH=0x0,QX=undefined,Qk=![],QV=0x0,Qc=undefined,Qh=!![],QG=Qa[--Qz],Qd=Ri['_$IWEv43'],QD=Ri['_$cyEIsy'],QJ=Ri['_$uz9nXL'];break s;}}(Qh||QT||Qk)&&(Qh=![],QG=undefined,QT=![],QH=0x0,QX=undefined,Qk=![],QV=0x0,Qc=undefined);Qv=null;let Rn=Qa[--Qz];if(QC&&Rn===undefined&&!M5)throw new ReferenceError('Must\x20call\x20super\x20constructor\x20in\x20derived\x20class\x20before\x20accessing\x20\x27this\x27\x20or\x20returning\x20from\x20derived\x20constructor');return M9=Rn,0x1;}break;}case 0x6e:{let RU=Mn&0xffff,Rj=M1['_$fDtab3'];Rj[RU]=Rj;let Re=Mn>>>0x10;Re&&((M1['_$1hvqGw']||(M1['_$1hvqGw']={}))[RU]=Qo[Re-0x1]);QJ++;break;}case 0x51:{let Rg=Qa[--Qz];if((typeof Rg==='object'||typeof Rg==='function')&&Rg!==null){const RP=Rg[Symbol['toPrimitive']];if(RP!=null){Rg=RP['call'](Rg,'number');if(Rg!==null&&(typeof Rg==='object'||typeof Rg==='function'))throw new TypeError('Cannot\x20convert\x20object\x20to\x20primitive\x20value');}else{const Ra=Rg['valueOf']();if(Ra===null||typeof Ra!=='object'&&typeof Ra!=='function')Rg=Ra;else{const Rz=Rg['toString']();if(Rz!==null&&(typeof Rz==='object'||typeof Rz==='function'))throw new TypeError('Cannot\x20convert\x20object\x20to\x20primitive\x20value');Rg=Rz;}}}Qa[Qz++]=typeof Rg===J?Rg-0x1n:+Rg-0x1,QJ++;break;}case 0x4d:{let Rp=Qa[--Qz],Ro=Qa[--Qz],RS=Qa[--Qz];U(RS,Ro,{'value':Rp,'writable':!![],'enumerable':!![],'configurable':!![]});typeof Rp==='function'&&(!vmF_309df0['_$nzzAdJ']&&(vmF_309df0['_$nzzAdJ']=new WeakMap()),Q['call'](vmF_309df0['_$nzzAdJ'],Rp,RS));QJ++;break;}case 0x4b:{R:{let RK=Qa[--Qz],Rq=I(Qu,RK),Rm=Qa[--Qz];if(Mn===0x1){Qa[Qz++]=Rq,QJ++;break R;}if(vmF_309df0['_$LXZ8EY']){QJ++;break R;}let RJ=vmF_309df0['_$wZXFkl'];if(RJ){let Rt=RJ['outer'],RE=Rt?F(Rt):RJ['parent'];if(typeof RE!=='function')throw new TypeError('Super\x20constructor\x20'+String(RE)+'\x20of\x20'+(Rt&&Rt['name']||'anonymous')+'\x20is\x20not\x20a\x20constructor');let Rr=RJ['newTarget'],Rv=Reflect['construct'](RE,Rq,Rr);Qe&&Qe!==Rv&&M(Qe)['forEach'](function(Rh){!(Rh in Rv)&&(Rv[Rh]=Qe[Rh]);});Qe=Rv,M5=!![],Ns(M1,Qe),QJ++;break R;}if(typeof Rm!=='function')throw new TypeError('Super\x20expression\x20must\x20be\x20a\x20constructor');let RY;k['has'](Qg)?RY=NR(M1):RY=M5?Qe:undefined;let RW=Qi!==undefined?Qi:vmF_309df0['_$blu3im'];vmF_309df0['_$blu3im']=Qi;let RA;try{let Rh;X(Rm)?Rh=Rm['apply'](Qe,Rq):Rh=RW!==undefined?Reflect['construct'](Rm,Rq,RW):Reflect['construct'](Rm,Rq),Rh!==undefined&&Rh!==Qe&&b(Rh)&&(Qe&&Object['assign'](Rh,Qe),Qe=Rh,Qi&&Qi['prototype']&&F(Qe)!==Qi['prototype']&&Z(Qe,Qi['prototype'])),M5=!![],Ns(M1,Qe);}catch(RG){let RT=RG&&typeof RG['message']==='string'?RG['message']:'';if(RT['includes']('\x27new\x27')||RT['includes']('Illegal\x20constructor')){let RH=Reflect['construct'](Rm,Rq,Qi);RH!==Qe&&Qe&&Object['assign'](RH,Qe),Qe=RH,M5=!![],Ns(M1,Qe);}else RA=RG;}finally{delete vmF_309df0['_$blu3im'];}if(RA!==undefined)throw RA;if(RY!==undefined)throw new ReferenceError('Super\x20constructor\x20may\x20only\x20be\x20called\x20once');QJ++;}break;}case 0x37:{let RX=Qa[--Qz],Rk=Qa[--Qz],RV=(Mn^0x9983)>>>0x0,Rc;RV<0x10?RV<0x8?RV<0x4?RV<0x2?Rc=RV<0x1?Rk<=RX:RV<0x6?Rc=RV<0x5?Rk|RX:Rk/RX:Rc=RV<0x7?Rk<=RX:Rk+RX:RV<0xc?RV<0xa?Rc=RV<0x9?Rk>RX:Rk>>>RX:Rc=RV<0xb?Rk==RX:Rk>>RX:RV<0xe?Rc=RV<0xd?Rk&RX:Rk%RX:Rc=RV<0xf?Rk===RX:Rk**RX:RV<0x14?RV<0x12?Rc=RV<0x11?Rk*RX:Rk-RX:Rc=RV<0x13?Rk!==RX:Rk!=RX:RV<0x18?Rc=RV<0x16?Rk|RX:Rk&RX:Rc=RV<0x1c?Rk^RX:RX-Rk;Qa[Qz++]=Rc,QJ++;break;}case 0x6a:{let Rd=Qa[--Qz];Qa[Qz++]=N6(Rd),QJ++;break;}case 0x6f:{let RD=Qa[--Qz],RO=Qa[--Qz],Rl=Qa[Qz-0x1];U(Rl,RO,{'value':RD,'writable':!![],'enumerable':![],'configurable':!![]});typeof RD==='function'&&(!vmF_309df0['_$nzzAdJ']&&(vmF_309df0['_$nzzAdJ']=new WeakMap()),Q['call'](vmF_309df0['_$nzzAdJ'],RD,Rl));QJ++;break;}}},MM=function(Mw,Mn){switch(Mw){case 0x93:{let ML=Qa[--Qz],Mi=Qa[Qz-0x1],MU=Qo[Mn],Mj=N8(Mi);U(Mj,MU,{'set':ML,'enumerable':Mj===Mi,'configurable':!![]}),QJ++;break;}case 0xa6:{let Me=M1['_$fDtab3'];Me[Mn]=Me,M1['_$RJ9tIn']=Mn,QJ++;break;}case 0xb6:{Qa[Qz++]=null,QJ++;break;}case 0xa1:{let Mg=Qa[--Qz],MP=Qa[--Qz];Qa[Qz++]=MP==Mg,QJ++;break;}case 0x8e:{Qa[Qz-0x1]?QJ=QK[QJ]:(Qa[--Qz],QJ++);break;}case 0x91:{let Ma=Qa[--Qz],Mz=Qa[Qz-0x1],Mp=Qo[Mn],Mo=N8(Mz);U(Mo,Mp,{'get':Ma,'enumerable':Mo===Mz,'configurable':!![]}),QJ++;break;}case 0xd6:{let MS=Qa[--Qz],MK=Qa[--Qz];Qa[Qz++]=MK>=MS,QJ++;break;}case 0xa2:{let Mq=Mn&0xffff,Mm=Mn>>>0x10;Qa[Qz++]=Qm[Mq]*Qo[Mm],QJ++;break;}case 0x92:{Qm[Mn]=Qm[Mn]+0x1,QJ++;break;}case 0x80:{throw Qa[--Qz];break;}case 0xa4:{Qa[--Qz],QJ++;break;}case 0x84:{!Qa[--Qz]?QJ=QK[QJ]:QJ++;break;}case 0x90:{Qa[Qz++]=M1,QJ++;break;}case 0x7f:{Qa[Qz++]=Qi,QJ++;break;}case 0xdc:{let MJ=Mn&0xffff,MY=Mn>>>0x10;Qa[Qz++]=Qm[MJ]>Mc,QJ++;break;}case 0x7a:{Qa[Qz-0x1]=-Qa[Qz-0x1],QJ++;break;}case 0x78:{let MD=Qa[--Qz],MO=Qa[--Qz];Qa[Qz++]=MO instanceof MD,QJ++;break;}case 0xb4:{let Ml=Qa[--Qz];Qa[Qz++]=!!Ml['done'],QJ++;break;}case 0xa3:{Qa[--Qz],Qa[Qz++]=undefined,QJ++;break;}case 0x83:{let MC=Mn,Mx=Qa[--Qz];M1['_$fDtab3'][MC]=Mx;let MB=M1['_$XyLAtR'];!MB&&(MB=N(null),M1['_$XyLAtR']=MB);MB[MC]=0x1,QJ++;break;}case 0x7c:{let MI=Qa[--Qz],Mb=I(Qu,MI),Mu=Qa[--Qz];if(typeof Mu!=='function')throw new TypeError(Mu+'\x20is\x20not\x20a\x20constructor');if(L['call'](E,Mu))throw new TypeError(Mu['name']+'\x20is\x20not\x20a\x20constructor');let s0=vmF_309df0['_$iGRAJm'];vmF_309df0['_$iGRAJm']=undefined;let s1;try{s1=Reflect['construct'](Mu,Mb);}finally{vmF_309df0['_$iGRAJm']=s0;}Qa[Qz++]=s1,QJ++;break;}case 0xb8:{let s2=Qa[--Qz],s3=Qa[--Qz];Qa[Qz++]=s3|s2,QJ++;break;}case 0x79:{Qa[Qz++]=vmw[Mn],QJ++;break;}case 0xa8:{let s4=Qa[Qz-0x3],s5=Qa[Qz-0x2],s6=Qa[Qz-0x1];Qa[Qz-0x3]=s6,Qa[Qz-0x2]=s4,Qa[Qz-0x1]=s5,QJ++;break;}case 0x8c:{let s7=Qa[--Qz],s8=NQ(Qa[--Qz]),s9=Qa[--Qz],sN=vmF_309df0['_$iGRAJm'],sQ=sN?F(sN):N9(s9);if(sQ===null||sQ===undefined)throw new TypeError('Cannot\x20convert\x20'+sQ+'\x20to\x20object');let sM=NN(sQ,s8),ss=![];if(sM['desc']){let sR=sM['desc'];if(sR['set']){let sF=vmF_309df0['_$iGRAJm'];vmF_309df0['_$iGRAJm']=sM['proto']||sQ,vmF_309df0['_$PZy67l']=!![];try{sR['set']['call'](s9,s7);}finally{vmF_309df0['_$PZy67l']=![],vmF_309df0['_$iGRAJm']=sF;}}else{if(sR['get']||!('value'in sR)){if(QO)throw new TypeError('Cannot\x20set\x20property\x20\x27'+String(s8)+'\x27\x20of\x20object\x20which\x20has\x20only\x20a\x20getter');}else{if(sR['writable']===![]){if(QO)throw new TypeError('Cannot\x20assign\x20to\x20read\x20only\x20property\x20\x27'+String(s8)+'\x27\x20of\x20object');}else ss=!![];}}}else ss=!![];if(ss){let sf=Object['getOwnPropertyDescriptor'](s9,s8);if(sf){if('value'in sf){if(sf['writable'])s9[s8]=s7;else{if(QO)throw new TypeError('Cannot\x20assign\x20to\x20read\x20only\x20property\x20\x27'+String(s8)+'\x27\x20of\x20object');}}else{if(QO)throw new TypeError('Cannot\x20redefine\x20property:\x20'+String(s8));}}else{let sZ=Reflect['defineProperty'](s9,s8,{'value':s7,'writable':!![],'enumerable':!![],'configurable':!![]});if(!sZ&&QO)throw new TypeError('Cannot\x20assign\x20to\x20read\x20only\x20property\x20\x27'+String(s8)+'\x27\x20of\x20object');}}Qa[Qz++]=s7,QJ++;break;}case 0xd2:{let sy=Mn&0xffff,sw=Mn>>>0x10,sn=Qo[sy],sL=Qo[sw];Qa[Qz++]=new RegExp(sn,sL),QJ++;break;}case 0xb9:{let si=Qa[--Qz];if(si==null)throw new TypeError(si+'\x20is\x20not\x20iterable');let sU=si[d];if(Array['isArray'](si)&&sU===c)Qa[Qz++]={['_$JDLTa3']:si,['_$HjMimp']:0x0},QJ++;else{if(typeof sU!=='function')throw new TypeError(si+'\x20is\x20not\x20iterable');let sj=i(sU,si,[]);N3(sj);let se=sj['next'];Qa[Qz++]={'i':sj,'n':se},QJ++;}break;}case 0xb5:{let sg=Qa[--Qz],sP=Qa[--Qz];Qa[Qz++]=sP!==sg,QJ++;break;}case 0x81:{QJ=QK[QJ];break;}case 0x7b:{let sa=vmF_309df0['_$t1nzgN'];sa===undefined&&Qg&&k['has'](Qg)&&(sa=k['get'](Qg));if(sa===undefined)throw new ReferenceError('\x27super\x27\x20keyword\x20is\x20only\x20valid\x20inside\x20a\x20derived\x20constructor');Qa[Qz++]=sa,QJ++;break;}case 0xa0:{Qa[Qz++]=Qj[Mn],QJ++;break;}case 0x94:{let sz=Qa[--Qz];sz!==null&&sz!==undefined?QJ=QK[QJ]:QJ++;break;}}},Ms=function(Mw,Mn){switch(Mw){case 0x113:{let ML=Qa[--Qz],Mi=Qa[--Qz];Qa[Qz++]=Mi^ML,QJ++;break;}case 0xfc:{let MU=Mn,Mj=Qa[--Qz];M1['_$fDtab3'][MU]=Mj,QJ++;break;}case 0x100:{Qa[Qz++]=Qm[Mn],QJ++;break;}case 0x106:{Qa[--Qz]?QJ=QK[QJ]:QJ++;break;}case 0x11a:{let Me=Qo[Mn],Mg=!![];Me in vmy&&(Mg=delete vmy[Me]);Mg&&Me in vmF_309df0&&(Mg=delete vmF_309df0[Me]);Qa[Qz++]=Mg,QJ++;break;}case 0x128:{W=_mixCtx(_fctx,Mn),QJ++;break;}case 0x114:{let MP=Qa[--Qz],Ma=Qa[--Qz],Mz=Qo[Mn];U(Ma,Mz,{'value':MP,'writable':!![],'enumerable':!![],'configurable':!![]});typeof MP==='function'&&(!vmF_309df0['_$nzzAdJ']&&(vmF_309df0['_$nzzAdJ']=new WeakMap()),Q['call'](vmF_309df0['_$nzzAdJ'],MP,Ma));QJ++;break;}case 0x109:{let Mp=Qa[--Qz],Mo=Qa[--Qz],MS=Qa[Qz-0x1],MK=N8(MS);U(MK,Mo,{'set':Mp,'enumerable':MK===MS,'configurable':!![]}),QJ++;break;}case 0x115:{let Mq=Qa[--Qz],Mm=Qa[--Qz];Qa[Qz++]=Mm**Mq,QJ++;break;}case 0x11d:{let MJ=Qa[--Qz],MY=Qa[--Qz];if(MY===null||MY===undefined){if(MJ===Symbol['iterator'])throw new TypeError((MY===null?'object\x20null':'undefined')+'\x20is\x20not\x20iterable\x20(cannot\x20read\x20property\x20Symbol(Symbol.iterator))');throw new TypeError('Cannot\x20read\x20properties\x20of\x20'+MY+'\x20(reading\x20'+(typeof MJ==='symbol'?'\x27'+MJ['toString']()+'\x27':typeof MJ==='string'?'\x27'+MJ+'\x27':typeof MJ==='object'||typeof MJ==='function'?'\x27\x27':'\x27'+String(MJ)+'\x27')+')');}Qa[Qz++]=MY[MJ],QJ++;break;}case 0x127:{Qm[Mn]=Qa[--Qz],QJ++;break;}case 0x11b:{let MW=Qa[Qz-0x1],MA=Qo[Mn];if(MW===null||MW===undefined)throw new TypeError('Cannot\x20read\x20properties\x20of\x20'+MW+'\x20(reading\x20'+'\x27'+String(MA)+'\x27'+')');Qa[Qz++]=MW[MA],QJ++;break;}case 0x107:{let Mt=Qa[--Qz],ME=Mt&&Mt['i']?Mt['i']:Mt;try{if(ME!=null){let Mr=ME['return'];typeof Mr==='function'&&Mr['call'](ME);}}catch(Mv){}QJ++;break;}case 0x108:{Qa[Qz++]=Qo[Mn],QJ++;break;}case 0xfb:{let Mh=Qa[--Qz],MG=Qa[--Qz],MT=Mn,MH=function(MX,Mk){let MV=function(){if(MX){Mk&&(vmF_309df0['_$t1nzgN']=MV);let Mc='_$blu3im'in vmF_309df0;!Mc&&(vmF_309df0['_$blu3im']=new.target);try{let Md=MX['apply'](this,N7(arguments));if(Mk&&Md!==undefined&&(Md===null||typeof Md!=='object'&&typeof Md!=='function'))throw new TypeError('Derived\x20constructors\x20may\x20only\x20return\x20object\x20or\x20undefined');return Md;}finally{Mk&&delete vmF_309df0['_$t1nzgN'],!Mc&&delete vmF_309df0['_$blu3im'];}}};return MV;}(MG,MT);Mh&&U(MH,'name',{'value':Mh,'configurable':!![]});MG&&U(MH,'length',{'value':MG['length'],'configurable':!![]});if(MG&&!X(MH)){let MX=H(MG);MX&&T(MH,MX);}Qa[Qz++]=MH,QJ++;break;}case 0x10c:{let Mk=Qa[--Qz],MV=Qa[--Qz],Mc=Qa[Qz-0x1];U(Mc,MV,{'set':Mk,'enumerable':![],'configurable':!![]}),QJ++;break;}case 0x11e:{let Md=Qa[Qz-0x3],MD=Qa[Qz-0x2],MO=Qa[Qz-0x1];Qa[Qz-0x3]=MD,Qa[Qz-0x2]=MO,Qa[Qz-0x1]=Md,QJ++;break;}case 0x116:{let Ml=Qo[Mn];Qa[Qz++]=Symbol['for'](Ml),QJ++;break;}case 0x10a:{let MC=Qa[--Qz],Mx=Qa[--Qz];Qa[Qz++]=Mx===MC,QJ++;break;}case 0xfd:{let MB=Qa[Qz-0x1];MB['length']++,QJ++;break;}case 0x125:{let MI=Qa[--Qz],Mb=MI&&MI['_$JDLTa3'];if(Mb!==undefined){let Mu=MI['_$HjMimp'],s0;Mu>=Mb['length']?s0={'value':undefined,'done':!![]}:(MI['_$HjMimp']=Mu+0x1,s0={'value':Mb[Mu],'done':![]}),Qa[Qz++]=s0,QJ++;}else{let s1=MI&&MI['i']?MI['i']:MI,s2=MI&&MI['n']?MI['n']:s1&&s1['next'];if(typeof s2!=='function')throw new TypeError('iterator.next\x20is\x20not\x20a\x20function');let s3=i(s2,s1,[]);N3(s3),Qa[Qz++]=s3,QJ++;}break;}case 0x120:{let s4=Mn&0xffff,s5=Mn>>>0x10,s6=Qm[s4],s7=Qo[s5];if(s6===null||s6===undefined)throw new TypeError('Cannot\x20read\x20properties\x20of\x20'+s6+'\x20(reading\x20'+'\x27'+String(s7)+'\x27'+')');Qa[Qz++]=s6[s7],QJ++;break;}case 0x111:{let s8=Qa[--Qz];Qa[Qz++]=Symbol['keyFor'](s8),QJ++;break;}case 0x112:{Qa[Qz++]={},QJ++;break;}case 0x110:{let s9=Qa[--Qz],sN=Qa[--Qz];Qa[Qz++]=sN>>>s9,QJ++;break;}case 0x129:{if(QC&&!M5){let ss=NR(M1);if(ss!==undefined)Qe=ss,M5=!![];else throw new ReferenceError('Must\x20call\x20super\x20constructor\x20in\x20derived\x20class\x20before\x20accessing\x20\x27this\x27\x20or\x20returning\x20from\x20derived\x20constructor');}let sQ=Qe,sM=Qo[Mn];if(sQ===null||sQ===undefined)throw new TypeError('Cannot\x20read\x20properties\x20of\x20'+sQ+'\x20(reading\x20'+'\x27'+String(sM)+'\x27'+')');Qa[Qz++]=sQ[sM],QJ++;break;}case 0xfe:{!Qa[--Qz]?QJ=QK[QJ]:(Qa[--Qz],QJ++);break;}case 0x11f:{let sR=Mn;M1['_$fDtab3'][sR]=Qg;let sF=M1['_$XyLAtR'];!sF&&(sF=N(null),M1['_$XyLAtR']=sF);sF[sR]=0x2,QJ++;break;}case 0xff:{let sf=Qo[Mn],sZ=Qa[--Qz],sy=Qa[--Qz];if(typeof sZ!=='function')throw new TypeError(sZ+'\x20is\x20not\x20a\x20function');let sw=vmF_309df0['_$nzzAdJ'],sn=sw&&j['call'](sw,sZ);!sn&&sw&&(sZ===w||sZ===n)&&(sn=j['call'](sw,sy));let sL=vmF_309df0['_$iGRAJm'];sn&&(vmF_309df0['_$PZy67l']=!![],vmF_309df0['_$iGRAJm']=sn);let si;try{if(sf===0x0)si=i(sZ,sy,Y);else{if(sf===0x1){let sU=Qa[--Qz];si=sU&&typeof sU==='object'&&L['call'](t,sU)?i(sZ,sy,sU['value']):i(sZ,sy,[sU]);}else si=i(sZ,sy,I(Qu,sf));}Qa[Qz++]=si;}finally{sn&&(vmF_309df0['_$PZy67l']=![],vmF_309df0['_$iGRAJm']=sL);}QJ++;break;}case 0x117:{Qa[Qz++]=Qo[Mn],QJ++;break;}case 0x119:{Qm[Mn]=Qm[Mn]-0x1,QJ++;break;}case 0x126:{M1=M1['_$B4qdUP'],QJ++;break;}case 0xfa:{N:{let sj=Mn&0xffff,se=Mn>>>0x10,sg=Qa[--Qz],sP=M1;for(let so=0x0;so=0x0&&sk%0x1===0x0&&String(sk)===sX?sk:NaN;},sh=function(sX){return!isNaN(sX)&&sX>=0x0;},sG=function(sX){if(sX in sW)return undefined;if(sX in sY)return sY[sX];return sXMi,QJ++;continue;}case 0x3:{Qa[Qz++]=Qo[ML],QJ++;continue;}case 0x4:{let Mj=Qa[--Qz],Me=Qa[--Qz];Qa[Qz++]=Me!=Mj,QJ++;continue;}case 0x5:{let Mg=Qa[--Qz],MP=Qa[--Qz];Qa[Qz++]=MP<=Mg,QJ++;continue;}case 0x6:{Qa[Qz++]=Qj[ML],QJ++;continue;}case 0x7:{let Ma=Qa[--Qz];if((typeof Ma==='object'||typeof Ma==='function')&&Ma!==null){const Mz=Ma[Symbol['toPrimitive']];if(Mz!=null){Ma=Mz['call'](Ma,'number');if(Ma!==null&&(typeof Ma==='object'||typeof Ma==='function'))throw new TypeError('Cannot\x20convert\x20object\x20to\x20primitive\x20value');}else{const Mp=Ma['valueOf']();if(Mp===null||typeof Mp!=='object'&&typeof Mp!=='function')Ma=Mp;else{const Mo=Ma['toString']();if(Mo!==null&&(typeof Mo==='object'||typeof Mo==='function'))throw new TypeError('Cannot\x20convert\x20object\x20to\x20primitive\x20value');Ma=Mo;}}}Qa[Qz++]=typeof Ma===J?Ma:+Ma,QJ++;continue;}case 0x8:{let MS=Qa[--Qz],MK=Qa[--Qz];if(MK===null||MK===undefined){if(MS===Symbol['iterator'])throw new TypeError((MK===null?'object\x20null':'undefined')+'\x20is\x20not\x20iterable\x20(cannot\x20read\x20property\x20Symbol(Symbol.iterator))');throw new TypeError('Cannot\x20read\x20properties\x20of\x20'+MK+'\x20(reading\x20'+(typeof MS==='symbol'?'\x27'+MS['toString']()+'\x27':typeof MS==='string'?'\x27'+MS+'\x27':typeof MS==='object'||typeof MS==='function'?'\x27\x27':'\x27'+String(MS)+'\x27')+')');}Qa[Qz++]=MK[MS],QJ++;continue;}case 0x9:{let Mq=Qa[--Qz];if((typeof Mq==='object'||typeof Mq==='function')&&Mq!==null){const Mm=Mq[Symbol['toPrimitive']];if(Mm!=null){Mq=Mm['call'](Mq,'number');if(Mq!==null&&(typeof Mq==='object'||typeof Mq==='function'))throw new TypeError('Cannot\x20convert\x20object\x20to\x20primitive\x20value');}else{const MJ=Mq['valueOf']();if(MJ===null||typeof MJ!=='object'&&typeof MJ!=='function')Mq=MJ;else{const MY=Mq['toString']();if(MY!==null&&(typeof MY==='object'||typeof MY==='function'))throw new TypeError('Cannot\x20convert\x20object\x20to\x20primitive\x20value');Mq=MY;}}}Qa[Qz++]=typeof Mq===J?Mq-0x1n:+Mq-0x1,QJ++;continue;}case 0xa:{Qm[ML]=Qa[--Qz],QJ++;continue;}case 0xb:{let MW=Qa[--Qz],MA=Qa[--Qz];Qa[Qz++]=MA>=MW,QJ++;continue;}case 0xc:{let Mt=Qa[--Qz],ME=Qa[--Qz];Qa[Qz++]=ME==Mt,QJ++;continue;}case 0xd:{let Mr=Qa[--Qz],Mv=Qa[--Qz],Mh=Qa[--Qz];if(Mh===null||Mh===undefined)throw new TypeError('Cannot\x20set\x20properties\x20of\x20'+Mh+'\x20(setting\x20'+(typeof Mv==='symbol'?'\x27'+Mv['toString']()+'\x27':typeof Mv==='string'?'\x27'+Mv+'\x27':typeof Mv==='object'||typeof Mv==='function'?'\x27\x27':'\x27'+String(Mv)+'\x27')+')');if(QO){let MG=typeof Mh==='object'||typeof Mh==='function'?Mh:Object(Mh);if(!Reflect['set'](MG,Mv,Mr,Mh))throw new TypeError('Cannot\x20assign\x20to\x20read\x20only\x20property\x20\x27'+String(Mv)+'\x27\x20of\x20object');}else Mh[Mv]=Mr;Qa[Qz++]=Mr,QJ++;continue;}case 0xe:{let MT=Qa[--Qz],MH=Qa[--Qz];Qa[Qz++]=MH!==MT,QJ++;continue;}case 0xf:{let MX=Qa[--Qz];if((typeof MX==='object'||typeof MX==='function')&&MX!==null){const Mk=MX[Symbol['toPrimitive']];if(Mk!=null){MX=Mk['call'](MX,'number');if(MX!==null&&(typeof MX==='object'||typeof MX==='function'))throw new TypeError('Cannot\x20convert\x20object\x20to\x20primitive\x20value');}else{const MV=MX['valueOf']();if(MV===null||typeof MV!=='object'&&typeof MV!=='function')MX=MV;else{const Mc=MX['toString']();if(Mc!==null&&(typeof Mc==='object'||typeof Mc==='function'))throw new TypeError('Cannot\x20convert\x20object\x20to\x20primitive\x20value');MX=Mc;}}}Qa[Qz++]=typeof MX===J?MX+0x1n:+MX+0x1,QJ++;continue;}case 0x10:{Qa[Qz++]=null,QJ++;continue;}case 0x11:{let Md=Qa[--Qz],MD=Qa[--Qz];Qa[Qz++]=MD0x0){for(let sQ=M6-0x1;sQ>=0x0;sQ--){Qm[sQ]=M7[--M8];}M3=M7[--M8],Qj=M7[--M8],M1=M7[--M8],M4=M7[--M8],QJ=M7[--M8],Qz=M7[--M8],Qa[Qz++]=M9,QJ++;continue;}return M9;}}else{if(Mn<0x78){if(MQ(Mn,ML)){if(M8>0x0){for(let sM=M6-0x1;sM>=0x0;sM--){Qm[sM]=M7[--M8];}M3=M7[--M8],Qj=M7[--M8],M1=M7[--M8],M4=M7[--M8],QJ=M7[--M8],Qz=M7[--M8],Qa[Qz++]=M9,QJ++;continue;}return M9;}}else{if(Mn<0xfa){if(MM(Mn,ML)){if(M8>0x0){for(let ss=M6-0x1;ss>=0x0;ss--){Qm[ss]=M7[--M8];}M3=M7[--M8],Qj=M7[--M8],M1=M7[--M8],M4=M7[--M8],QJ=M7[--M8],Qz=M7[--M8],Qa[Qz++]=M9,QJ++;continue;}return M9;}}else{if(Ms(Mn,ML)){if(M8>0x0){for(let sR=M6-0x1;sR>=0x0;sR--){Qm[sR]=M7[--M8];}M3=M7[--M8],Qj=M7[--M8],M1=M7[--M8],M4=M7[--M8],QJ=M7[--M8],Qz=M7[--M8],Qa[Qz++]=M9,QJ++;continue;}return M9;}}}}}break;}catch(sF){W=0x0;if(Qr&&Qr['length']>0x0){let sf=Qr[Qr['length']-0x1];Qz=sf['_$vsmsXj'];sf['_$jtBKsi']!==undefined&&(M1=sf['_$jtBKsi']);if(sf['_$KSf3Cg']!==undefined)Qv=null,Qb(sF),QJ=sf['_$KSf3Cg'],sf['_$KSf3Cg']=undefined,sf['_$uz9nXL']===undefined&&Qr['pop']();else sf['_$uz9nXL']!==undefined?(QJ=sf['_$uz9nXL'],sf['_$F9i7bt']=sF):(QJ=sf['_$cyEIsy'],Qr['pop']());continue;}throw sF;}}if(QC&&!M5){let sZ=NR(M1);sZ!==undefined&&(Qe=sZ,M5=!![]);}let MF=Qz>0x0?Qa[--Qz]:M5?Qe:undefined;if(QC&&!M5&&(MF===undefined||MF===null||typeof MF!=='object'&&typeof MF!=='function'))throw new ReferenceError('Must\x20call\x20super\x20constructor\x20in\x20derived\x20class\x20before\x20accessing\x20\x27this\x27\x20or\x20returning\x20from\x20derived\x20constructor');return MF;}function Nj(Qi,QU,Qj,Qe,Qg,QP){let Qa=[void 0x0,void 0x0,void 0x0,void 0x0,void 0x0,void 0x0,void 0x0,void 0x0],Qz=0x0,Qp=Q8(QP[0x20],QP[0x21]),Qo,QS,QK,Qq;switch(Qp[0x1]&0x3){case 0x0:QS=QP[0x16*Qp[0x0]+Qp[0x1]&0x1f],Qo=QP[0xc*Qp[0x0]+Qp[0x1]&0x1f],QK=QP[0x14*Qp[0x0]+Qp[0x1]&0x1f]||Y,Qq=QP[0x9*Qp[0x0]+Qp[0x1]&0x1f]||Y;break;case 0x1:Qo=QP[0xc*Qp[0x0]+Qp[0x1]&0x1f],QK=QP[0x14*Qp[0x0]+Qp[0x1]&0x1f]||Y,Qq=QP[0x9*Qp[0x0]+Qp[0x1]&0x1f]||Y,QS=QP[0x16*Qp[0x0]+Qp[0x1]&0x1f];break;case 0x2:QK=QP[0x14*Qp[0x0]+Qp[0x1]&0x1f]||Y,Qq=QP[0x9*Qp[0x0]+Qp[0x1]&0x1f]||Y,QS=QP[0x16*Qp[0x0]+Qp[0x1]&0x1f],Qo=QP[0xc*Qp[0x0]+Qp[0x1]&0x1f];break;default:Qq=QP[0x9*Qp[0x0]+Qp[0x1]&0x1f]||Y,QS=QP[0x16*Qp[0x0]+Qp[0x1]&0x1f],Qo=QP[0xc*Qp[0x0]+Qp[0x1]&0x1f],QK=QP[0x14*Qp[0x0]+Qp[0x1]&0x1f]||Y;break;}let Qm=new Array((QP[0x20]||0x0)+(QP[0x21]||0x0)),QJ=0x0,QY=QS['length']>>0x1,QW=(QP[0x20]*0x9507^QP[0x21]*0xdc87^QY*0x347f^Qo['length']*0xcbf)>>>0x0&0x3,QA,Qt,QE;switch(QW){case 0x1:QA=0x0,Qt=QY,QE=0x0;break;case 0x2:QA=0x1,Qt=0x0,QE=0x1;break;case 0x3:QA=QY,Qt=0x0,QE=0x0;break;default:QA=0x0,Qt=0x1,QE=0x1;break;}let Qr=null,Qv=null,Qh=![],QG=undefined,QT=![],QH=0x0,QX=undefined,Qk=![],QV=0x0,Qc=undefined,Qd=-0x1,QD=-0x1,QO=!!QP[0x18*Qp[0x0]+Qp[0x1]&0x1f],Ql=!!QP[0x4*Qp[0x0]+Qp[0x1]&0x1f],QC=!!QP[0x12*Qp[0x0]+Qp[0x1]&0x1f],Qx=!!QP[0x13*Qp[0x0]+Qp[0x1]&0x1f],QB=Qe,QI=!!QP[0xa*Qp[0x0]+Qp[0x1]&0x1f];!QO&&!QI&&(Qe===undefined||Qe===null)&&(Qe=vmy);let Qb=QP[0x3*Qp[0x0]+Qp[0x1]&0x1f],Qu,M0,M1,M2,M3,M4;if(Qb!==undefined){let MF=Mf=>typeof Mf==='number'&&(Mf|0x0)===Mf&&!Object['is'](Mf,-0x0)?Mf^Qb|0x0:Mf;Qu=Mf=>{Qa[Qz++]=MF(Mf);},M0=()=>MF(Qa[--Qz]),M1=()=>MF(Qa[Qz-0x1]),M2=Mf=>{Qa[Qz-0x1]=MF(Mf);},M3=Mf=>MF(Qa[Qz-Mf]),M4=(Mf,MZ)=>{Qa[Qz-Mf]=MF(MZ);};}else Qu=Mf=>{Qa[Qz++]=Mf;},M0=()=>Qa[--Qz],M1=()=>Qa[Qz-0x1],M2=Mf=>{Qa[Qz-0x1]=Mf;},M3=Mf=>Qa[Qz-Mf],M4=(Mf,MZ)=>{Qa[Qz-Mf]=MZ;};let M5=QP[0xb*Qp[0x0]+Qp[0x1]&0x1f]||0x0,M6={['_$fDtab3']:M5?new Array(M5)['fill'](void 0x0):Y,['_$XyLAtR']:null,['_$RJ9tIn']:-0x1,['_$B4qdUP']:QU};if(Qj){let Mf=QP[0x20]||0x0;for(let MZ=0x0,My=Qj['length']0x0){let Ma=Qr[Qr['length']-0x1];Qz=Ma['_$vsmsXj'];Ma['_$jtBKsi']!==undefined&&(M6=Ma['_$jtBKsi']);if(Ma['_$KSf3Cg']!==undefined)Qu(Mn),QJ=Ma['_$KSf3Cg'],Ma['_$KSf3Cg']=undefined,Ma['_$uz9nXL']===undefined&&Qr['pop']();else Ma['_$uz9nXL']!==undefined?(QJ=Ma['_$uz9nXL'],Ma['_$F9i7bt']=Mn):(QJ=Ma['_$cyEIsy'],Qr['pop']());}else throw Mn;}else{if(Mw===0x3){let Mz=Mn;while(Qr&&Qr['length']>0x0){let Mp=Qr[Qr['length']-0x1];if(Mp['_$uz9nXL']!==undefined)break;Qr['pop']();}if(Qr&&Qr['length']>0x0){let Mo=Qr[Qr['length']-0x1];if(Mo['_$uz9nXL']!==undefined)Qv=null,QT=![],QH=0x0,QX=undefined,Qk=![],QV=0x0,Qc=undefined,Qh=!![],QG=Mz,Qd=Mo['_$IWEv43'],QD=Mo['_$cyEIsy'],QJ=Mo['_$uz9nXL'];else return Mz;}else return Mz;}}}var ML,Mi,MU,Mj,Me,Mg;Mg=[0x0,0x5,0x0,0x4,0x0,0x0,0x0,0x1c,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x11,0x0,0x12,0x0,0x0,0x0,0x0,0x0,0x13,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xf,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x19,0xd,0x0,0x0,0x0,0x14,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1f,0x0,0x7,0x0,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x17,0x0,0x0,0x1e,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x16,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x6,0xc,0x0,0x0,0x18,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xe,0x10,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1b,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xb,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1a,0x0,0x0,0x0,0x0,0x0,0x1d,0x0,0x21,0x0,0x15,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xa,0x0,0x0],Mi=function(MS,MK){switch(MS){case 0xc:{Qa[Qz-0x1]=+Qa[Qz-0x1],QJ++;break;}case 0xe:{Qr['pop'](),QJ++;break;}case 0x16:{W=MK,QJ++;break;}case 0x7:{Qa[Qz++]=undefined,QJ++;break;}case 0x29:{let Mm=Qq[QJ];if(!Qr)Qr=[];Qr['push']({['_$KSf3Cg']:Mm[0x0]>=0x0?Mm[0x0]:undefined,['_$uz9nXL']:Mm[0x1]>=0x0?Mm[0x1]:undefined,['_$cyEIsy']:Mm[0x2]>=0x0?Mm[0x2]:undefined,['_$vsmsXj']:Qz,['_$IWEv43']:QJ,['_$jtBKsi']:M6}),QJ++;break;}case 0x8:{let MJ=Qa[--Qz],MY=Qa[--Qz],MW=Qa[--Qz];if(typeof MY!=='function')throw new TypeError(MY+'\x20is\x20not\x20a\x20function');let MA=vmF_309df0['_$nzzAdJ'],Mt=MA&&j['call'](MA,MY);!Mt&&MA&&(MY===w||MY===n)&&(Mt=j['call'](MA,MW));let ME=vmF_309df0['_$iGRAJm'];Mt&&(vmF_309df0['_$PZy67l']=!![],vmF_309df0['_$iGRAJm']=Mt);let Mr;try{if(MJ===0x0)Mr=i(MY,MW,Y);else{if(MJ===0x1){let Mv=Qa[--Qz];Mr=Mv&&typeof Mv==='object'&&L['call'](t,Mv)?i(MY,MW,Mv['value']):i(MY,MW,[Mv]);}else Mr=i(MY,MW,I(M0,MJ));}Qa[Qz++]=Mr;}finally{Mt&&(vmF_309df0['_$PZy67l']=![],vmF_309df0['_$iGRAJm']=ME);}QJ++;break;}case 0x14:{let Mh=Qa[--Qz];Qa[Qz++]=import(Mh),QJ++;break;}case 0x20:{Qj[MK]=Qa[--Qz],QJ++;break;}case 0x2:{let MG=MK&0xffff,MT=MK>>>0x10;Qa[Qz++]=Qm[MG]+Qo[MT],QJ++;break;}case 0x13:{let MH=Qa[--Qz],MX=Qa[Qz-0x1];if(Array['isArray'](MH)&&MH[d]===c){let Mk=MX['length'],MV=MH['length'];for(let Mc=0x0;Mc0x0){let MC=Qr[Qr['length']-0x1];if(MC['_$uz9nXL']!==undefined)break;Qr['pop']();}if(Qr&&Qr['length']>0x0){let Mx=Qr[Qr['length']-0x1];if(Mx['_$uz9nXL']!==undefined){Qd=Mx['_$IWEv43'],QD=Mx['_$cyEIsy'],QJ=Mx['_$uz9nXL'];break N;}}let Ml=QG;return Qh=![],QG=undefined,ML=Ml,0x1;}if(QT){while(Qr&&Qr['length']>0x0){let MI=Qr[Qr['length']-0x1];if(MI['_$uz9nXL']!==undefined||!(QH>=MI['_$cyEIsy']||QH<=MI['_$IWEv43']))break;Qr['pop']();}if(Qr&&Qr['length']>0x0){let Mb=Qr[Qr['length']-0x1];if(Mb['_$uz9nXL']!==undefined&&(QH>=Mb['_$cyEIsy']||QH<=Mb['_$IWEv43'])){Qd=Mb['_$IWEv43'],QD=Mb['_$cyEIsy'],QJ=Mb['_$uz9nXL'];break N;}}let MB=QH;QT=![],QH=0x0;QX!==undefined&&(M6=QX,QX=undefined);QJ=MB;break N;}if(Qk){while(Qr&&Qr['length']>0x0){let s0=Qr[Qr['length']-0x1];if(s0['_$uz9nXL']!==undefined||!(QV>=s0['_$cyEIsy']||QV<=s0['_$IWEv43']))break;Qr['pop']();}if(Qr&&Qr['length']>0x0){let s1=Qr[Qr['length']-0x1];if(s1['_$uz9nXL']!==undefined&&(QV>=s1['_$cyEIsy']||QV<=s1['_$IWEv43'])){Qd=s1['_$IWEv43'],QD=s1['_$cyEIsy'],QJ=s1['_$uz9nXL'];break N;}}let Mu=QV;Qk=![],QV=0x0;Qc!==undefined&&(M6=Qc,Qc=undefined);QJ=Mu;break N;}}QJ++;}break;}case 0x9:{let s2=Qa[--Qz],s3=Qa[Qz-0x1];(s2===null||b(s2))&&Z(s3,s2);QJ++;break;}case 0x1c:{let s4=Qa[--Qz],s5=s4&&s4['i']?s4['i']:s4;if(Qv!==null)try{s5&&typeof s5['return']==='function'?Qa[Qz++]=Promise['resolve'](s5['return']())['catch'](function(){return undefined;}):Qa[Qz++]=Promise['resolve']();}catch(s6){Qa[Qz++]=Promise['resolve']();}else{let s7=s5!=null?s5['return']:undefined;if(s7==null)Qa[Qz++]=Promise['resolve']();else typeof s7!=='function'?Qa[Qz++]=Promise['reject'](new TypeError('iterator\x20\x27return\x27\x20is\x20not\x20callable')):Qa[Qz++]=Promise['resolve'](s7['call'](s5));}QJ++;break;}case 0xa:{let s8=Qa[--Qz],s9=Qa[--Qz],sN={};if(s9!==null&&s9!==undefined){let sQ=Object(s9),sM=Reflect['ownKeys'](sQ);for(let ss=0x0;ss0x0){let sg=Qr[Qr['length']-0x1];if(sg['_$uz9nXL']!==undefined||!(se>=sg['_$cyEIsy']||se<=sg['_$IWEv43']))break;Qr['pop']();}if(Qr&&Qr['length']>0x0){let sP=Qr[Qr['length']-0x1];if(sP['_$uz9nXL']!==undefined&&(se>=sP['_$cyEIsy']||se<=sP['_$IWEv43'])){Qv=null,Qh=![],QG=undefined,Qk=![],QV=0x0,Qc=undefined,QT=!![],QH=se,QX=M6,Qd=sP['_$IWEv43'],QD=sP['_$cyEIsy'],QJ=sP['_$uz9nXL'];break Q;}}(Qh||QT||Qk||Qv!==null)&&(se>=QD||se<=Qd)&&(Qh=![],QG=undefined,QT=![],QH=0x0,QX=undefined,Qk=![],QV=0x0,Qc=undefined,Qv=null),QJ=se;}break;}case 0x11:{let sa=Qa[--Qz],sz=Qa[--Qz];Qa[Qz++]=sz*sa,QJ++;break;}case 0x1a:{let sp=Qa[--Qz],so=Qa[--Qz],sS=Qa[Qz-0x1];U(sS['prototype'],so,{'value':sp,'writable':!![],'enumerable':![],'configurable':!![]});typeof sp==='function'&&(!vmF_309df0['_$nzzAdJ']&&(vmF_309df0['_$nzzAdJ']=new WeakMap()),Q['call'](vmF_309df0['_$nzzAdJ'],sp,sS['prototype']));QJ++;break;}case 0x15:{!Qa[Qz-0x1]?QJ=QK[QJ]:(Qa[--Qz],QJ++);break;}case 0x12:{let sK=Qa[--Qz],sq=Qa[Qz-0x1],sm=Qo[MK];U(sq['prototype'],sm,{'value':sK,'writable':!![],'enumerable':![],'configurable':!![]});typeof sK==='function'&&(!vmF_309df0['_$nzzAdJ']&&(vmF_309df0['_$nzzAdJ']=new WeakMap()),Q['call'](vmF_309df0['_$nzzAdJ'],sK,sq['prototype']));QJ++;break;}case 0x28:{M:{let sJ=NQ(Qa[--Qz]),sY=Qa[--Qz],sW=vmF_309df0['_$iGRAJm'],sA=sW?F(sW):N9(sY),st=NN(sA,sJ);if(st['desc']&&st['desc']['get']){let sr=vmF_309df0['_$iGRAJm'];vmF_309df0['_$iGRAJm']=st['proto']||sA,vmF_309df0['_$PZy67l']=!![];let sv;try{sv=st['desc']['get']['call'](sY);}finally{vmF_309df0['_$PZy67l']=![],vmF_309df0['_$iGRAJm']=sr;}Qa[Qz++]=sv,QJ++;break M;}if(st['desc']&&st['desc']['set']&&!('value'in st['desc'])){Qa[Qz++]=undefined,QJ++;break M;}let sE=st['proto']?st['proto'][sJ]:sA[sJ];if(typeof sE==='function'){let sh=st['proto']||sA,sG=sE['constructor']&&sE['constructor']['name'],sT=sG==='GeneratorFunction'||sG==='AsyncFunction'||sG==='AsyncGeneratorFunction';!sT&&(!vmF_309df0['_$nzzAdJ']&&(vmF_309df0['_$nzzAdJ']=new WeakMap()),Q['call'](vmF_309df0['_$nzzAdJ'],sE,sh));}Qa[Qz++]=sE,QJ++;}break;}case 0x19:{let sH=Qm[MK],sX=sH&&sH['_$JDLTa3'];if(sX!==undefined){let sk=sH['_$HjMimp'];sk>=sX['length']?QJ=QK[QJ]:(sH['_$HjMimp']=sk+0x1,Qa[Qz++]=sX[sk],QJ++);}else{let sV=sH['i'],sc=i(sH['n'],sV,[]);N3(sc),sc['done']?QJ=QK[QJ]:(Qa[Qz++]=sc['value'],QJ++);}break;}case 0x2b:{let sd=MK&0xffff,sD=MK>>>0x10;Qa[Qz++]=Qm[sd]-Qo[sD],QJ++;break;}case 0x2a:{s:{let sO=Qa[--Qz],sl=Qa[Qz-0x1];if(sO===null){Z(sl['prototype'],null),Z(sl,Function['prototype']),sl['_$9xSXt4']=null,QJ++;break s;}if(typeof sO!=='function')throw new TypeError('Class\x20extends\x20value\x20'+String(sO)+'\x20is\x20not\x20a\x20constructor\x20or\x20null');let sC=![],sx=X(sO);if(!sx){let sB=R(sO,'prototype');sC=!!sB&&sB['writable']===![];}if(sC){let sI=sl,sb=vmF_309df0,su='_$blu3im',R0='_$t1nzgN',R1='_$wZXFkl';function Mq(...R2){let R3=N(sO['prototype']);sb[R1]={'parent':sO,'newTarget':new.target||Mq,'outer':Mq},sb[R0]=new.target||Mq;let R4=su in sb;!R4&&(sb[su]=new.target);try{let R5=sI['apply'](R3,R2);R5!==undefined&&R5!==null&&b(R5)&&(R3=R5);}finally{delete sb[R1],delete sb[R0],!R4&&delete sb[su];}return R3;}Mq['prototype']=N(sO['prototype']),Mq['prototype']['constructor']=Mq,Z(Mq,sO),M(sI)['forEach'](function(R2){R2!=='prototype'&&R2!=='name'&&B(Mq,R2,R(sI,R2));});sI['prototype']&&(M(sI['prototype'])['forEach'](function(R2){R2!=='constructor'&&B(Mq['prototype'],R2,R(sI['prototype'],R2));}),f(sI['prototype'])['forEach'](function(R2){B(Mq['prototype'],R2,R(sI['prototype'],R2));}));Qa[--Qz],Qa[Qz++]=Mq,Mq['_$9xSXt4']=sO,QJ++;break s;}Z(sl['prototype'],sO['prototype']),Z(sl,sO),sl['_$9xSXt4']=sO,QJ++;}break;}case 0x1b:{let R2,R3;MK>=0x0?(R3=Qa[--Qz],R2=Qo[MK]):(R2=Qa[--Qz],R3=Qa[--Qz]);let R4=delete R3[R2];if(QO&&!R4)throw new TypeError('Cannot\x20delete\x20property\x20\x27'+String(R2)+'\x27\x20of\x20object');Qa[Qz++]=R4,QJ++;break;}case 0x18:{let R5=Qa[Qz-0x1];Qa[Qz-0x1]=Qa[Qz-0x2],Qa[Qz-0x2]=R5,QJ++;break;}case 0x2c:{let R6=Qa[--Qz],R7=typeof R6;if(R6!==null&&(R7==='object'||R7==='function')){let R8=N(null);R8[R6]=0x0,R6=Reflect['ownKeys'](R8)[0x0];}else R7!=='symbol'&&(R6=String(R6));Qa[Qz++]=R6,QJ++;break;}case 0x1:{let R9=Qa[--Qz],RN=Qa[--Qz];Qa[Qz++]=RN<=R9,QJ++;break;}case 0x0:{let RQ=Qa[--Qz],RM=Qa[--Qz];Qa[Qz++]=RM<>>0x10,MV=M6;for(let MD=0x0;MD\x27':'\x27'+String(s8)+'\x27')+')');if(QO){let sN=typeof s9==='object'||typeof s9==='function'?s9:Object(s9);if(!Reflect['set'](sN,s8,s7,s9))throw new TypeError('Cannot\x20assign\x20to\x20read\x20only\x20property\x20\x27'+String(s8)+'\x27\x20of\x20object');}else s9[s8]=s7;Qa[Qz++]=s7,QJ++;break;}case 0x4c:{let sQ=Qa[--Qz];if((typeof sQ==='object'||typeof sQ==='function')&&sQ!==null){const sM=sQ[Symbol['toPrimitive']];if(sM!=null){sQ=sM['call'](sQ,'number');if(sQ!==null&&(typeof sQ==='object'||typeof sQ==='function'))throw new TypeError('Cannot\x20convert\x20object\x20to\x20primitive\x20value');}else{const ss=sQ['valueOf']();if(ss===null||typeof ss!=='object'&&typeof ss!=='function')sQ=ss;else{const sR=sQ['toString']();if(sR!==null&&(typeof sR==='object'||typeof sR==='function'))throw new TypeError('Cannot\x20convert\x20object\x20to\x20primitive\x20value');sQ=sR;}}}Qa[Qz++]=typeof sQ===J?sQ:+sQ,QJ++;break;}case 0x5d:{let sF=Qa[Qz-0x1];if(sF==null){var Mq=Qo[MK];if(Mq===null)throw new TypeError('Cannot\x20destructure\x20\x27'+sF+'\x27\x20as\x20it\x20is\x20'+sF+'.');throw new TypeError('Cannot\x20destructure\x20property\x20\x27'+Mq+'\x27\x20of\x20\x27'+sF+'\x27\x20as\x20it\x20is\x20'+sF+'.');}QJ++;break;}case 0x38:{let sf=Qa[--Qz],sZ=Qa[--Qz];Qa[Qz++]=sZ+sf,QJ++;break;}case 0x5f:{let sy=Qa[--Qz],sw;if(sy===null||sy===undefined)throw new TypeError(sy+'\x20is\x20not\x20iterable');let sn=sy[d];if(Array['isArray'](sy)&&sn===c){let si=sy['length'];sw=new Array(si);for(let sU=0x0;sU0x0){let sV=Qr[Qr['length']-0x1];sV['_$uz9nXL']===QJ&&(sV['_$F9i7bt']!==undefined&&(Qv=sV['_$F9i7bt'],Qd=sV['_$IWEv43'],QD=sV['_$cyEIsy']),sV['_$jtBKsi']!==undefined&&(M6=sV['_$jtBKsi']),Qr['pop']());}QJ++;break;}case 0x3a:{let sc=V[MK],sd=Qa[--Qz];if(sc){for(let sD=0x0;sD=0x0;sx--)sl[sx]=Qa[--Qz];let sC=new Array(sd);for(let sB=sd-0x1;sB>=0x0;sB--)sC[sB]=Qa[--Qz];U(sC,'raw',{'value':Object['freeze'](sl)}),Object['freeze'](sC),V[MK]=sC,Qa[Qz++]=sC;}QJ++;break;}case 0x4f:{let sI=Qa[--Qz],sb=Qa[--Qz],su=Qa[Qz-0x1],R0=N8(su);U(R0,sb,{'get':sI,'enumerable':R0===su,'configurable':!![]}),QJ++;break;}case 0x54:{if(MK===-0x2){}else MK===-0x1?Qa[--Qz]:M6['_$fDtab3'][MK]=Qa[--Qz];QJ++;break;}case 0x4a:{let R1=Qa[--Qz],R2=Qa[--Qz];Qa[Qz++]=R2/R1,QJ++;break;}case 0x35:{let R3=Qa[--Qz],R4=Qo[MK];if(QO&&!(R4 in vmy)&&!(R4 in vmF_309df0))throw new ReferenceError(R4+'\x20is\x20not\x20defined');vmF_309df0[R4]=R3,vmy[R4]=R3,Qa[Qz++]=R3,QJ++;break;}case 0x5b:{M:{let R5=QK[QJ];while(Qr&&Qr['length']>0x0){let R6=Qr[Qr['length']-0x1];if(R6['_$uz9nXL']!==undefined||!(R5>=R6['_$cyEIsy']||R5<=R6['_$IWEv43']))break;Qr['pop']();}if(Qr&&Qr['length']>0x0){let R7=Qr[Qr['length']-0x1];if(R7['_$uz9nXL']!==undefined&&(R5>=R7['_$cyEIsy']||R5<=R7['_$IWEv43'])){Qv=null,Qh=![],QG=undefined,QT=![],QH=0x0,QX=undefined,Qk=!![],QV=R5,Qc=M6,Qd=R7['_$IWEv43'],QD=R7['_$cyEIsy'],QJ=R7['_$uz9nXL'];break M;}}(Qh||QT||Qk||Qv!==null)&&(R5>=QD||R5<=Qd)&&(Qh=![],QG=undefined,QT=![],QH=0x0,QX=undefined,Qk=![],QV=0x0,Qc=undefined,Qv=null),QJ=R5;}break;}case 0x3d:{let R8=Qa[--Qz],R9=Qa[--Qz],RN=Qo[MK];if(R9===null||R9===undefined)throw new TypeError('Cannot\x20set\x20properties\x20of\x20'+R9+'\x20(setting\x20'+'\x27'+String(RN)+'\x27'+')');if(QO){let RQ=typeof R9==='object'||typeof R9==='function'?R9:Object(R9);if(!Reflect['set'](RQ,RN,R8,R9))throw new TypeError('Cannot\x20assign\x20to\x20read\x20only\x20property\x20\x27'+String(RN)+'\x27\x20of\x20object');}else R9[RN]=R8;Qa[Qz++]=R8,QJ++;break;}case 0x46:{Qa[Qz++]=vmn[MK],QJ++;break;}case 0x68:{let RM=Qa[Qz-0x1];Qa[Qz++]=RM,QJ++;break;}case 0x34:{let Rs=Qa[--Qz],RR=typeof Rs==='object'?Rs:QM(Rs);Rs=RR;let RF=RR&&Q8(RR[0x20],RR[0x21]),Rf=RR&&RR[0xa*RF[0x0]+RF[0x1]&0x1f],RZ=RR&&RR[0x6*RF[0x0]+RF[0x1]&0x1f],Ry=RR&&RR[0x11*RF[0x0]+RF[0x1]&0x1f],Rw=RR&&RR[0x7*RF[0x0]+RF[0x1]&0x1f],Rn=RR&&RR[0x20]||0x0,RL=RR&&RR[0x18*RF[0x0]+RF[0x1]&0x1f],Ri=Rf?QB:undefined,RU=M6,Rj;if(Ry)Rj=Nn(QR,Rs,RU,E,RL,vmy,RZ);else{if(RZ)Rf?Rj=Ni(Qs,Rs,RU,Ri):Rj=Nw(Qs,Rs,RU,RL,vmy);else{if(Rf){Rj=NL(Na,Rs,RU,Ri);let Re=vmF_309df0['_$t1nzgN'];Re===undefined&&Qg&&k['has'](Qg)&&(Re=k['get'](Qg)),Re!==undefined&&k['set'](Rj,Re);}else Rj=Ny(Na,Rs,RU,RL,vmy,Rw);}}B(Rj,'length',{'value':Rn,'writable':![],'enumerable':![],'configurable':!![]}),Qa[Qz++]=Rj,QJ++;break;}case 0x53:{let Rg=Qa[--Qz],RP=Qa[Qz-0x1],Ra=Qo[MK];U(RP,Ra,{'value':Rg,'writable':!![],'enumerable':![],'configurable':!![]});typeof Rg==='function'&&(!vmF_309df0['_$nzzAdJ']&&(vmF_309df0['_$nzzAdJ']=new WeakMap()),Q['call'](vmF_309df0['_$nzzAdJ'],Rg,RP));QJ++;break;}case 0x36:{let Rz=Qa[--Qz],Rp=Qa[--Qz];Qa[Qz++]=Rp>Rz,QJ++;break;}case 0x40:{let Ro=Qa[--Qz],RS=Qa[Qz-0x1];RS['push'](Ro),QJ++;break;}case 0x2f:{s:{while(Qr&&Qr['length']>0x0){let Rq=Qr[Qr['length']-0x1];if(Rq['_$uz9nXL']!==undefined)break;Qr['pop']();}if(Qr&&Qr['length']>0x0){let Rm=Qr[Qr['length']-0x1];if(Rm['_$uz9nXL']!==undefined){Qv=null,QT=![],QH=0x0,QX=undefined,Qk=![],QV=0x0,Qc=undefined,Qh=!![],QG=Qa[--Qz],Qd=Rm['_$IWEv43'],QD=Rm['_$cyEIsy'],QJ=Rm['_$uz9nXL'];break s;}}(Qh||QT||Qk)&&(Qh=![],QG=undefined,QT=![],QH=0x0,QX=undefined,Qk=![],QV=0x0,Qc=undefined);Qv=null;let RK=Qa[--Qz];if(QC&&RK===undefined&&!MN)throw new ReferenceError('Must\x20call\x20super\x20constructor\x20in\x20derived\x20class\x20before\x20accessing\x20\x27this\x27\x20or\x20returning\x20from\x20derived\x20constructor');return ML=RK,0x1;}break;}case 0x6e:{let RJ=MK&0xffff,RY=M6['_$fDtab3'];RY[RJ]=RY;let RW=MK>>>0x10;RW&&((M6['_$1hvqGw']||(M6['_$1hvqGw']={}))[RJ]=Qo[RW-0x1]);QJ++;break;}case 0x51:{let RA=Qa[--Qz];if((typeof RA==='object'||typeof RA==='function')&&RA!==null){const Rt=RA[Symbol['toPrimitive']];if(Rt!=null){RA=Rt['call'](RA,'number');if(RA!==null&&(typeof RA==='object'||typeof RA==='function'))throw new TypeError('Cannot\x20convert\x20object\x20to\x20primitive\x20value');}else{const RE=RA['valueOf']();if(RE===null||typeof RE!=='object'&&typeof RE!=='function')RA=RE;else{const Rr=RA['toString']();if(Rr!==null&&(typeof Rr==='object'||typeof Rr==='function'))throw new TypeError('Cannot\x20convert\x20object\x20to\x20primitive\x20value');RA=Rr;}}}Qa[Qz++]=typeof RA===J?RA-0x1n:+RA-0x1,QJ++;break;}case 0x4d:{let Rv=Qa[--Qz],Rh=Qa[--Qz],RG=Qa[--Qz];U(RG,Rh,{'value':Rv,'writable':!![],'enumerable':!![],'configurable':!![]});typeof Rv==='function'&&(!vmF_309df0['_$nzzAdJ']&&(vmF_309df0['_$nzzAdJ']=new WeakMap()),Q['call'](vmF_309df0['_$nzzAdJ'],Rv,RG));QJ++;break;}case 0x4b:{R:{let RT=Qa[--Qz],RH=I(M0,RT),RX=Qa[--Qz];if(MK===0x1){Qa[Qz++]=RH,QJ++;break R;}if(vmF_309df0['_$LXZ8EY']){QJ++;break R;}let Rk=vmF_309df0['_$wZXFkl'];if(Rk){let RD=Rk['outer'],RO=RD?F(RD):Rk['parent'];if(typeof RO!=='function')throw new TypeError('Super\x20constructor\x20'+String(RO)+'\x20of\x20'+(RD&&RD['name']||'anonymous')+'\x20is\x20not\x20a\x20constructor');let Rl=Rk['newTarget'],RC=Reflect['construct'](RO,RH,Rl);Qe&&Qe!==RC&&M(Qe)['forEach'](function(Rx){!(Rx in RC)&&(RC[Rx]=Qe[Rx]);});Qe=RC,MN=!![],Ns(M6,Qe),QJ++;break R;}if(typeof RX!=='function')throw new TypeError('Super\x20expression\x20must\x20be\x20a\x20constructor');let RV;k['has'](Qg)?RV=NR(M6):RV=MN?Qe:undefined;let Rc=Qi!==undefined?Qi:vmF_309df0['_$blu3im'];vmF_309df0['_$blu3im']=Qi;let Rd;try{let Rx;X(RX)?Rx=RX['apply'](Qe,RH):Rx=Rc!==undefined?Reflect['construct'](RX,RH,Rc):Reflect['construct'](RX,RH),Rx!==undefined&&Rx!==Qe&&b(Rx)&&(Qe&&Object['assign'](Rx,Qe),Qe=Rx,Qi&&Qi['prototype']&&F(Qe)!==Qi['prototype']&&Z(Qe,Qi['prototype'])),MN=!![],Ns(M6,Qe);}catch(RB){let RI=RB&&typeof RB['message']==='string'?RB['message']:'';if(RI['includes']('\x27new\x27')||RI['includes']('Illegal\x20constructor')){let Rb=Reflect['construct'](RX,RH,Qi);Rb!==Qe&&Qe&&Object['assign'](Rb,Qe),Qe=Rb,MN=!![],Ns(M6,Qe);}else Rd=RB;}finally{delete vmF_309df0['_$blu3im'];}if(Rd!==undefined)throw Rd;if(RV!==undefined)throw new ReferenceError('Super\x20constructor\x20may\x20only\x20be\x20called\x20once');QJ++;}break;}case 0x37:{let Ru=Qa[--Qz],F0=Qa[--Qz],F1=(MK^0x9983)>>>0x0,F2;F1<0x10?F1<0x8?F1<0x4?F1<0x2?F2=F1<0x1?F0<=Ru:F1<0x6?F2=F1<0x5?F0|Ru:F0/Ru:F2=F1<0x7?F0<=Ru:F0+Ru:F1<0xc?F1<0xa?F2=F1<0x9?F0>Ru:F0>>>Ru:F2=F1<0xb?F0==Ru:F0>>Ru:F1<0xe?F2=F1<0xd?F0&Ru:F0%Ru:F2=F1<0xf?F0===Ru:F0**Ru:F1<0x14?F1<0x12?F2=F1<0x11?F0*Ru:F0-Ru:F2=F1<0x13?F0!==Ru:F0!=Ru:F1<0x18?F2=F1<0x16?F0|Ru:F0&Ru:F2=F1<0x1c?F0^Ru:Ru-F0;Qa[Qz++]=F2,QJ++;break;}case 0x6a:{let F3=Qa[--Qz];Qa[Qz++]=N6(F3),QJ++;break;}case 0x6f:{let F4=Qa[--Qz],F5=Qa[--Qz],F6=Qa[Qz-0x1];U(F6,F5,{'value':F4,'writable':!![],'enumerable':![],'configurable':!![]});typeof F4==='function'&&(!vmF_309df0['_$nzzAdJ']&&(vmF_309df0['_$nzzAdJ']=new WeakMap()),Q['call'](vmF_309df0['_$nzzAdJ'],F4,F6));QJ++;break;}}},Mj=function(MS,MK){switch(MS){case 0x93:{let Mq=Qa[--Qz],Mm=Qa[Qz-0x1],MJ=Qo[MK],MY=N8(Mm);U(MY,MJ,{'set':Mq,'enumerable':MY===Mm,'configurable':!![]}),QJ++;break;}case 0xa6:{let MW=M6['_$fDtab3'];MW[MK]=MW,M6['_$RJ9tIn']=MK,QJ++;break;}case 0xb6:{Qa[Qz++]=null,QJ++;break;}case 0xa1:{let MA=Qa[--Qz],Mt=Qa[--Qz];Qa[Qz++]=Mt==MA,QJ++;break;}case 0x8e:{Qa[Qz-0x1]?QJ=QK[QJ]:(Qa[--Qz],QJ++);break;}case 0x91:{let ME=Qa[--Qz],Mr=Qa[Qz-0x1],Mv=Qo[MK],Mh=N8(Mr);U(Mh,Mv,{'get':ME,'enumerable':Mh===Mr,'configurable':!![]}),QJ++;break;}case 0xd6:{let MG=Qa[--Qz],MT=Qa[--Qz];Qa[Qz++]=MT>=MG,QJ++;break;}case 0xa2:{let MH=MK&0xffff,MX=MK>>>0x10;Qa[Qz++]=Qm[MH]*Qo[MX],QJ++;break;}case 0x92:{Qm[MK]=Qm[MK]+0x1,QJ++;break;}case 0x80:{throw Qa[--Qz];break;}case 0xa4:{Qa[--Qz],QJ++;break;}case 0x84:{!Qa[--Qz]?QJ=QK[QJ]:QJ++;break;}case 0x90:{Qa[Qz++]=M6,QJ++;break;}case 0x7f:{Qa[Qz++]=Qi,QJ++;break;}case 0xdc:{let Mk=MK&0xffff,MV=MK>>>0x10;Qa[Qz++]=Qm[Mk]>s2,QJ++;break;}case 0x7a:{Qa[Qz-0x1]=-Qa[Qz-0x1],QJ++;break;}case 0x78:{let s4=Qa[--Qz],s5=Qa[--Qz];Qa[Qz++]=s5 instanceof s4,QJ++;break;}case 0xb4:{let s6=Qa[--Qz];Qa[Qz++]=!!s6['done'],QJ++;break;}case 0xa3:{Qa[--Qz],Qa[Qz++]=undefined,QJ++;break;}case 0x83:{let s7=MK,s8=Qa[--Qz];M6['_$fDtab3'][s7]=s8;let s9=M6['_$XyLAtR'];!s9&&(s9=N(null),M6['_$XyLAtR']=s9);s9[s7]=0x1,QJ++;break;}case 0x7c:{let sN=Qa[--Qz],sQ=I(M0,sN),sM=Qa[--Qz];if(typeof sM!=='function')throw new TypeError(sM+'\x20is\x20not\x20a\x20constructor');if(L['call'](E,sM))throw new TypeError(sM['name']+'\x20is\x20not\x20a\x20constructor');let ss=vmF_309df0['_$iGRAJm'];vmF_309df0['_$iGRAJm']=undefined;let sR;try{sR=Reflect['construct'](sM,sQ);}finally{vmF_309df0['_$iGRAJm']=ss;}Qa[Qz++]=sR,QJ++;break;}case 0xb8:{let sF=Qa[--Qz],sf=Qa[--Qz];Qa[Qz++]=sf|sF,QJ++;break;}case 0x79:{Qa[Qz++]=vmw[MK],QJ++;break;}case 0xa8:{let sZ=Qa[Qz-0x3],sy=Qa[Qz-0x2],sw=Qa[Qz-0x1];Qa[Qz-0x3]=sw,Qa[Qz-0x2]=sZ,Qa[Qz-0x1]=sy,QJ++;break;}case 0x8c:{let sn=Qa[--Qz],sL=NQ(Qa[--Qz]),si=Qa[--Qz],sU=vmF_309df0['_$iGRAJm'],sj=sU?F(sU):N9(si);if(sj===null||sj===undefined)throw new TypeError('Cannot\x20convert\x20'+sj+'\x20to\x20object');let se=NN(sj,sL),sg=![];if(se['desc']){let sP=se['desc'];if(sP['set']){let sa=vmF_309df0['_$iGRAJm'];vmF_309df0['_$iGRAJm']=se['proto']||sj,vmF_309df0['_$PZy67l']=!![];try{sP['set']['call'](si,sn);}finally{vmF_309df0['_$PZy67l']=![],vmF_309df0['_$iGRAJm']=sa;}}else{if(sP['get']||!('value'in sP)){if(QO)throw new TypeError('Cannot\x20set\x20property\x20\x27'+String(sL)+'\x27\x20of\x20object\x20which\x20has\x20only\x20a\x20getter');}else{if(sP['writable']===![]){if(QO)throw new TypeError('Cannot\x20assign\x20to\x20read\x20only\x20property\x20\x27'+String(sL)+'\x27\x20of\x20object');}else sg=!![];}}}else sg=!![];if(sg){let sz=Object['getOwnPropertyDescriptor'](si,sL);if(sz){if('value'in sz){if(sz['writable'])si[sL]=sn;else{if(QO)throw new TypeError('Cannot\x20assign\x20to\x20read\x20only\x20property\x20\x27'+String(sL)+'\x27\x20of\x20object');}}else{if(QO)throw new TypeError('Cannot\x20redefine\x20property:\x20'+String(sL));}}else{let sp=Reflect['defineProperty'](si,sL,{'value':sn,'writable':!![],'enumerable':!![],'configurable':!![]});if(!sp&&QO)throw new TypeError('Cannot\x20assign\x20to\x20read\x20only\x20property\x20\x27'+String(sL)+'\x27\x20of\x20object');}}Qa[Qz++]=sn,QJ++;break;}case 0xd2:{let so=MK&0xffff,sS=MK>>>0x10,sK=Qo[so],sq=Qo[sS];Qa[Qz++]=new RegExp(sK,sq),QJ++;break;}case 0xb9:{let sm=Qa[--Qz];if(sm==null)throw new TypeError(sm+'\x20is\x20not\x20iterable');let sJ=sm[d];if(Array['isArray'](sm)&&sJ===c)Qa[Qz++]={['_$JDLTa3']:sm,['_$HjMimp']:0x0},QJ++;else{if(typeof sJ!=='function')throw new TypeError(sm+'\x20is\x20not\x20iterable');let sY=i(sJ,sm,[]);N3(sY);let sW=sY['next'];Qa[Qz++]={'i':sY,'n':sW},QJ++;}break;}case 0xb5:{let sA=Qa[--Qz],st=Qa[--Qz];Qa[Qz++]=st!==sA,QJ++;break;}case 0x81:{QJ=QK[QJ];break;}case 0x7b:{let sE=vmF_309df0['_$t1nzgN'];sE===undefined&&Qg&&k['has'](Qg)&&(sE=k['get'](Qg));if(sE===undefined)throw new ReferenceError('\x27super\x27\x20keyword\x20is\x20only\x20valid\x20inside\x20a\x20derived\x20constructor');Qa[Qz++]=sE,QJ++;break;}case 0xa0:{Qa[Qz++]=Qj[MK],QJ++;break;}case 0x94:{let sr=Qa[--Qz];sr!==null&&sr!==undefined?QJ=QK[QJ]:QJ++;break;}}},Me=function(MS,MK){switch(MS){case 0x113:{let Mq=Qa[--Qz],Mm=Qa[--Qz];Qa[Qz++]=Mm^Mq,QJ++;break;}case 0xfc:{let MJ=MK,MY=Qa[--Qz];M6['_$fDtab3'][MJ]=MY,QJ++;break;}case 0x100:{Qa[Qz++]=Qm[MK],QJ++;break;}case 0x106:{Qa[--Qz]?QJ=QK[QJ]:QJ++;break;}case 0x11a:{let MW=Qo[MK],MA=!![];MW in vmy&&(MA=delete vmy[MW]);MA&&MW in vmF_309df0&&(MA=delete vmF_309df0[MW]);Qa[Qz++]=MA,QJ++;break;}case 0x128:{W=_mixCtx(_fctx,MK),QJ++;break;}case 0x114:{let Mt=Qa[--Qz],ME=Qa[--Qz],Mr=Qo[MK];U(ME,Mr,{'value':Mt,'writable':!![],'enumerable':!![],'configurable':!![]});typeof Mt==='function'&&(!vmF_309df0['_$nzzAdJ']&&(vmF_309df0['_$nzzAdJ']=new WeakMap()),Q['call'](vmF_309df0['_$nzzAdJ'],Mt,ME));QJ++;break;}case 0x109:{let Mv=Qa[--Qz],Mh=Qa[--Qz],MG=Qa[Qz-0x1],MT=N8(MG);U(MT,Mh,{'set':Mv,'enumerable':MT===MG,'configurable':!![]}),QJ++;break;}case 0x115:{let MH=Qa[--Qz],MX=Qa[--Qz];Qa[Qz++]=MX**MH,QJ++;break;}case 0x11d:{let Mk=Qa[--Qz],MV=Qa[--Qz];if(MV===null||MV===undefined){if(Mk===Symbol['iterator'])throw new TypeError((MV===null?'object\x20null':'undefined')+'\x20is\x20not\x20iterable\x20(cannot\x20read\x20property\x20Symbol(Symbol.iterator))');throw new TypeError('Cannot\x20read\x20properties\x20of\x20'+MV+'\x20(reading\x20'+(typeof Mk==='symbol'?'\x27'+Mk['toString']()+'\x27':typeof Mk==='string'?'\x27'+Mk+'\x27':typeof Mk==='object'||typeof Mk==='function'?'\x27\x27':'\x27'+String(Mk)+'\x27')+')');}Qa[Qz++]=MV[Mk],QJ++;break;}case 0x127:{Qm[MK]=Qa[--Qz],QJ++;break;}case 0x11b:{let Mc=Qa[Qz-0x1],Md=Qo[MK];if(Mc===null||Mc===undefined)throw new TypeError('Cannot\x20read\x20properties\x20of\x20'+Mc+'\x20(reading\x20'+'\x27'+String(Md)+'\x27'+')');Qa[Qz++]=Mc[Md],QJ++;break;}case 0x107:{let MD=Qa[--Qz],MO=MD&&MD['i']?MD['i']:MD;try{if(MO!=null){let Ml=MO['return'];typeof Ml==='function'&&Ml['call'](MO);}}catch(MC){}QJ++;break;}case 0x108:{Qa[Qz++]=Qo[MK],QJ++;break;}case 0xfb:{let Mx=Qa[--Qz],MB=Qa[--Qz],MI=MK,Mb=function(Mu,s0){let s1=function(){if(Mu){s0&&(vmF_309df0['_$t1nzgN']=s1);let s2='_$blu3im'in vmF_309df0;!s2&&(vmF_309df0['_$blu3im']=new.target);try{let s3=Mu['apply'](this,N7(arguments));if(s0&&s3!==undefined&&(s3===null||typeof s3!=='object'&&typeof s3!=='function'))throw new TypeError('Derived\x20constructors\x20may\x20only\x20return\x20object\x20or\x20undefined');return s3;}finally{s0&&delete vmF_309df0['_$t1nzgN'],!s2&&delete vmF_309df0['_$blu3im'];}}};return s1;}(MB,MI);Mx&&U(Mb,'name',{'value':Mx,'configurable':!![]});MB&&U(Mb,'length',{'value':MB['length'],'configurable':!![]});if(MB&&!X(Mb)){let Mu=H(MB);Mu&&T(Mb,Mu);}Qa[Qz++]=Mb,QJ++;break;}case 0x10c:{let s0=Qa[--Qz],s1=Qa[--Qz],s2=Qa[Qz-0x1];U(s2,s1,{'set':s0,'enumerable':![],'configurable':!![]}),QJ++;break;}case 0x11e:{let s3=Qa[Qz-0x3],s4=Qa[Qz-0x2],s5=Qa[Qz-0x1];Qa[Qz-0x3]=s4,Qa[Qz-0x2]=s5,Qa[Qz-0x1]=s3,QJ++;break;}case 0x116:{let s6=Qo[MK];Qa[Qz++]=Symbol['for'](s6),QJ++;break;}case 0x10a:{let s7=Qa[--Qz],s8=Qa[--Qz];Qa[Qz++]=s8===s7,QJ++;break;}case 0xfd:{let s9=Qa[Qz-0x1];s9['length']++,QJ++;break;}case 0x125:{let sN=Qa[--Qz],sQ=sN&&sN['_$JDLTa3'];if(sQ!==undefined){let sM=sN['_$HjMimp'],ss;sM>=sQ['length']?ss={'value':undefined,'done':!![]}:(sN['_$HjMimp']=sM+0x1,ss={'value':sQ[sM],'done':![]}),Qa[Qz++]=ss,QJ++;}else{let sR=sN&&sN['i']?sN['i']:sN,sF=sN&&sN['n']?sN['n']:sR&&sR['next'];if(typeof sF!=='function')throw new TypeError('iterator.next\x20is\x20not\x20a\x20function');let sf=i(sF,sR,[]);N3(sf),Qa[Qz++]=sf,QJ++;}break;}case 0x120:{let sZ=MK&0xffff,sy=MK>>>0x10,sw=Qm[sZ],sn=Qo[sy];if(sw===null||sw===undefined)throw new TypeError('Cannot\x20read\x20properties\x20of\x20'+sw+'\x20(reading\x20'+'\x27'+String(sn)+'\x27'+')');Qa[Qz++]=sw[sn],QJ++;break;}case 0x111:{let sL=Qa[--Qz];Qa[Qz++]=Symbol['keyFor'](sL),QJ++;break;}case 0x112:{Qa[Qz++]={},QJ++;break;}case 0x110:{let si=Qa[--Qz],sU=Qa[--Qz];Qa[Qz++]=sU>>>si,QJ++;break;}case 0x129:{if(QC&&!MN){let sg=NR(M6);if(sg!==undefined)Qe=sg,MN=!![];else throw new ReferenceError('Must\x20call\x20super\x20constructor\x20in\x20derived\x20class\x20before\x20accessing\x20\x27this\x27\x20or\x20returning\x20from\x20derived\x20constructor');}let sj=Qe,se=Qo[MK];if(sj===null||sj===undefined)throw new TypeError('Cannot\x20read\x20properties\x20of\x20'+sj+'\x20(reading\x20'+'\x27'+String(se)+'\x27'+')');Qa[Qz++]=sj[se],QJ++;break;}case 0xfe:{!Qa[--Qz]?QJ=QK[QJ]:(Qa[--Qz],QJ++);break;}case 0x11f:{let sP=MK;M6['_$fDtab3'][sP]=Qg;let sa=M6['_$XyLAtR'];!sa&&(sa=N(null),M6['_$XyLAtR']=sa);sa[sP]=0x2,QJ++;break;}case 0xff:{let sz=Qo[MK],sp=Qa[--Qz],so=Qa[--Qz];if(typeof sp!=='function')throw new TypeError(sp+'\x20is\x20not\x20a\x20function');let sS=vmF_309df0['_$nzzAdJ'],sK=sS&&j['call'](sS,sp);!sK&&sS&&(sp===w||sp===n)&&(sK=j['call'](sS,so));let sq=vmF_309df0['_$iGRAJm'];sK&&(vmF_309df0['_$PZy67l']=!![],vmF_309df0['_$iGRAJm']=sK);let sm;try{if(sz===0x0)sm=i(sp,so,Y);else{if(sz===0x1){let sJ=Qa[--Qz];sm=sJ&&typeof sJ==='object'&&L['call'](t,sJ)?i(sp,so,sJ['value']):i(sp,so,[sJ]);}else sm=i(sp,so,I(M0,sz));}Qa[Qz++]=sm;}finally{sK&&(vmF_309df0['_$PZy67l']=![],vmF_309df0['_$iGRAJm']=sq);}QJ++;break;}case 0x117:{Qa[Qz++]=Qo[MK],QJ++;break;}case 0x119:{Qm[MK]=Qm[MK]-0x1,QJ++;break;}case 0x126:{M6=M6['_$B4qdUP'],QJ++;break;}case 0xfa:{N:{let sY=MK&0xffff,sW=MK>>>0x10,sA=Qa[--Qz],st=M6;for(let sh=0x0;sh=0x0&&R0%0x1===0x0&&String(R0)===su?R0:NaN;},sx=function(su){return!isNaN(su)&&su>=0x0;},sB=function(su){if(su in sc)return undefined;if(su in sV)return sV[su];return suMW,QJ++;continue;}case 0x3:{Qa[Qz++]=Qo[Mq],QJ++;continue;}case 0x4:{let Mt=Qa[--Qz],ME=Qa[--Qz];Qa[Qz++]=ME!=Mt,QJ++;continue;}case 0x5:{let Mr=Qa[--Qz],Mv=Qa[--Qz];Qa[Qz++]=Mv<=Mr,QJ++;continue;}case 0x6:{Qa[Qz++]=Qj[Mq],QJ++;continue;}case 0x7:{let Mh=Qa[--Qz];if((typeof Mh==='object'||typeof Mh==='function')&&Mh!==null){const MG=Mh[Symbol['toPrimitive']];if(MG!=null){Mh=MG['call'](Mh,'number');if(Mh!==null&&(typeof Mh==='object'||typeof Mh==='function'))throw new TypeError('Cannot\x20convert\x20object\x20to\x20primitive\x20value');}else{const MT=Mh['valueOf']();if(MT===null||typeof MT!=='object'&&typeof MT!=='function')Mh=MT;else{const MH=Mh['toString']();if(MH!==null&&(typeof MH==='object'||typeof MH==='function'))throw new TypeError('Cannot\x20convert\x20object\x20to\x20primitive\x20value');Mh=MH;}}}Qa[Qz++]=typeof Mh===J?Mh:+Mh,QJ++;continue;}case 0x8:{let MX=Qa[--Qz],Mk=Qa[--Qz];if(Mk===null||Mk===undefined){if(MX===Symbol['iterator'])throw new TypeError((Mk===null?'object\x20null':'undefined')+'\x20is\x20not\x20iterable\x20(cannot\x20read\x20property\x20Symbol(Symbol.iterator))');throw new TypeError('Cannot\x20read\x20properties\x20of\x20'+Mk+'\x20(reading\x20'+(typeof MX==='symbol'?'\x27'+MX['toString']()+'\x27':typeof MX==='string'?'\x27'+MX+'\x27':typeof MX==='object'||typeof MX==='function'?'\x27\x27':'\x27'+String(MX)+'\x27')+')');}Qa[Qz++]=Mk[MX],QJ++;continue;}case 0x9:{let MV=Qa[--Qz];if((typeof MV==='object'||typeof MV==='function')&&MV!==null){const Mc=MV[Symbol['toPrimitive']];if(Mc!=null){MV=Mc['call'](MV,'number');if(MV!==null&&(typeof MV==='object'||typeof MV==='function'))throw new TypeError('Cannot\x20convert\x20object\x20to\x20primitive\x20value');}else{const Md=MV['valueOf']();if(Md===null||typeof Md!=='object'&&typeof Md!=='function')MV=Md;else{const MD=MV['toString']();if(MD!==null&&(typeof MD==='object'||typeof MD==='function'))throw new TypeError('Cannot\x20convert\x20object\x20to\x20primitive\x20value');MV=MD;}}}Qa[Qz++]=typeof MV===J?MV-0x1n:+MV-0x1,QJ++;continue;}case 0xa:{Qm[Mq]=Qa[--Qz],QJ++;continue;}case 0xb:{let MO=Qa[--Qz],Ml=Qa[--Qz];Qa[Qz++]=Ml>=MO,QJ++;continue;}case 0xc:{let MC=Qa[--Qz],Mx=Qa[--Qz];Qa[Qz++]=Mx==MC,QJ++;continue;}case 0xd:{let MB=Qa[--Qz],MI=Qa[--Qz],Mb=Qa[--Qz];if(Mb===null||Mb===undefined)throw new TypeError('Cannot\x20set\x20properties\x20of\x20'+Mb+'\x20(setting\x20'+(typeof MI==='symbol'?'\x27'+MI['toString']()+'\x27':typeof MI==='string'?'\x27'+MI+'\x27':typeof MI==='object'||typeof MI==='function'?'\x27\x27':'\x27'+String(MI)+'\x27')+')');if(QO){let Mu=typeof Mb==='object'||typeof Mb==='function'?Mb:Object(Mb);if(!Reflect['set'](Mu,MI,MB,Mb))throw new TypeError('Cannot\x20assign\x20to\x20read\x20only\x20property\x20\x27'+String(MI)+'\x27\x20of\x20object');}else Mb[MI]=MB;Qa[Qz++]=MB,QJ++;continue;}case 0xe:{let s0=Qa[--Qz],s1=Qa[--Qz];Qa[Qz++]=s1!==s0,QJ++;continue;}case 0xf:{let s2=Qa[--Qz];if((typeof s2==='object'||typeof s2==='function')&&s2!==null){const s3=s2[Symbol['toPrimitive']];if(s3!=null){s2=s3['call'](s2,'number');if(s2!==null&&(typeof s2==='object'||typeof s2==='function'))throw new TypeError('Cannot\x20convert\x20object\x20to\x20primitive\x20value');}else{const s4=s2['valueOf']();if(s4===null||typeof s4!=='object'&&typeof s4!=='function')s2=s4;else{const s5=s2['toString']();if(s5!==null&&(typeof s5==='object'||typeof s5==='function'))throw new TypeError('Cannot\x20convert\x20object\x20to\x20primitive\x20value');s2=s5;}}}Qa[Qz++]=typeof s2===J?s2+0x1n:+s2+0x1,QJ++;continue;}case 0x10:{Qa[Qz++]=null,QJ++;continue;}case 0x11:{let s6=Qa[--Qz],s7=Qa[--Qz];Qa[Qz++]=s70x0){for(let sP=MQ-0x1;sP>=0x0;sP--){Qm[sP]=MM[--Ms];}M8=MM[--Ms],Qj=MM[--Ms],M6=MM[--Ms],M9=MM[--Ms],QJ=MM[--Ms],Qz=MM[--Ms],Qa[Qz++]=ML,QJ++;continue;}return ML;}}else{if(MK<0x78){if(MU(MK,Mq)){if(Ms>0x0){for(let sa=MQ-0x1;sa>=0x0;sa--){Qm[sa]=MM[--Ms];}M8=MM[--Ms],Qj=MM[--Ms],M6=MM[--Ms],M9=MM[--Ms],QJ=MM[--Ms],Qz=MM[--Ms],Qa[Qz++]=ML,QJ++;continue;}return ML;}}else{if(MK<0xfa){if(Mj(MK,Mq)){if(Ms>0x0){for(let sz=MQ-0x1;sz>=0x0;sz--){Qm[sz]=MM[--Ms];}M8=MM[--Ms],Qj=MM[--Ms],M6=MM[--Ms],M9=MM[--Ms],QJ=MM[--Ms],Qz=MM[--Ms],Qa[Qz++]=ML,QJ++;continue;}return ML;}}else{if(Me(MK,Mq)){if(Ms>0x0){for(let sp=MQ-0x1;sp>=0x0;sp--){Qm[sp]=MM[--Ms];}M8=MM[--Ms],Qj=MM[--Ms],M6=MM[--Ms],M9=MM[--Ms],QJ=MM[--Ms],Qz=MM[--Ms],Qa[Qz++]=ML,QJ++;continue;}return ML;}}}}}break;}catch(so){W=0x0;if(Qr&&Qr['length']>0x0){let sS=Qr[Qr['length']-0x1];Qz=sS['_$vsmsXj'];sS['_$jtBKsi']!==undefined&&(M6=sS['_$jtBKsi']);if(sS['_$KSf3Cg']!==undefined)Qv=null,Qu(so),QJ=sS['_$KSf3Cg'],sS['_$KSf3Cg']=undefined,sS['_$uz9nXL']===undefined&&Qr['pop']();else sS['_$uz9nXL']!==undefined?(QJ=sS['_$uz9nXL'],sS['_$F9i7bt']=so):(QJ=sS['_$cyEIsy'],Qr['pop']());continue;}throw so;}}if(QC&&!MN){let sK=NR(M6);sK!==undefined&&(Qe=sK,MN=!![]);}let MP=Qz>0x0?Qa[--Qz]:MN?Qe:undefined;if(QC&&!MN&&(MP===undefined||MP===null||typeof MP!=='object'&&typeof MP!=='function'))throw new ReferenceError('Must\x20call\x20super\x20constructor\x20in\x20derived\x20class\x20before\x20accessing\x20\x27this\x27\x20or\x20returning\x20from\x20derived\x20constructor');return MP;}return MR(0x0);}function*Ne(Qi,QU,Qj,Qe,Qg,QP){let Qa=Nj(Qi,QU,Qj,Qe,Qg,QP);while(!![]){if(Qa&&typeof Qa==='object'&&Qa['_$Jh0kcu']!==undefined){let Qz=Qa['_$fAtkC7'],Qp;try{Qp=yield Qa;}catch(Qo){Qa=Qz(0x2,Qo);continue;}Qp&&typeof Qp==='object'&&Qp['_$Jh0kcu']===S?Qa=Qz(0x3,Qp['_$BxWprg']):Qa=Qz(0x1,Qp);}else return Qa;}}let Ng=0x0,NP=function(Qi){let QU=Qi['next'],Qj=Qi['throw'],Qe=Qi['return'];return Qi['next']=function(Qg){Ng++;try{return QU['call'](Qi,Qg);}finally{Ng--;}},Qi['throw']=function(Qg){Ng++;try{return Qj['call'](Qi,Qg);}finally{Ng--;}},Qi['return']=function(Qg){Ng++;try{return Qe['call'](Qi,Qg);}finally{Ng--;}},Qi;},Na=function(Qi,QU,Qj,Qe,Qg,QP){Ng++;try{vmF_309df0['_$PZy67l']?vmF_309df0['_$PZy67l']=![]:vmF_309df0['_$iGRAJm']=undefined;let Qa=typeof QP==='object'?QP:QQ(QP),Qz=Qa&&Q8(Qa[0x20],Qa[0x21]);return NU(Qi,QU,Qj,Qe,Qg,Qa);}finally{Ng--;}},Nz=0x5,Np=0x6,No=0xa,NS=0x4,NK=0x3,Nq=0x2,Nm=0x0,NJ=0x8,NY=0x1,NW=0x9,NA=0xb,Nt=0x7,NE=0x40,Nr=0x1000,Nv=0x80,Nh=0x100000,NG=0x400000,NT=0x1,NH=0x200,NX=0x2,Nk=0x4,NV=0x4000,Nc=0x8000,Nd=0x20000,ND=0x40000,NO=0x2000,Nl=0x80000,NC=0x200000,Nx=0x10000,NB=0x800,NI=0x100,Nb=0x8,Nu=0x20,Q0=0x400;function Q1(Qi){this['_$g6vH3v']=Qi,this['_$0VCoAt']=new DataView(Qi['buffer'],Qi['byteOffset'],Qi['byteLength']),this['_$zODtGy']=0x0;}Q1['prototype']['_$o41tUG']=function(){return this['_$g6vH3v'][this['_$zODtGy']++];},Q1['prototype']['_$gdQeN2']=function(){let Qi=this['_$0VCoAt']['getUint16'](this['_$zODtGy'],!![]);return this['_$zODtGy']+=0x2,Qi;},Q1['prototype']['_$gkpC9k']=function(){let Qi=this['_$0VCoAt']['getUint32'](this['_$zODtGy'],!![]);return this['_$zODtGy']+=0x4,Qi;},Q1['prototype']['_$Azgkk9']=function(){let Qi=this['_$0VCoAt']['getInt32'](this['_$zODtGy'],!![]);return this['_$zODtGy']+=0x4,Qi;},Q1['prototype']['_$B2CIR6']=function(){let Qi=this['_$0VCoAt']['getFloat64'](this['_$zODtGy'],!![]);return this['_$zODtGy']+=0x8,Qi;},Q1['prototype']['_$SkFPWg']=function(){let Qi=0x0,QU=0x0,Qj;do{Qj=this['_$o41tUG'](),Qi|=(Qj&0x7f)<=0x80);return Qi>>>0x1^-(Qi&0x1);},Q1['prototype']['_$81HBmL']=function(){let Qi=this['_$SkFPWg'](),QU=this['_$g6vH3v'],Qj=this['_$zODtGy'],Qe=Qj+Qi;this['_$zODtGy']=Qe;var Qg='';while(Qj>0xa)+0xd800,(Qa&0x3ff)+0xdc00);}}}}return Qg;};var Q2='8GKyQMBxrY9VW/CIjH1EX6OZnvcpziLqg0AkTlt3+o7bPUh5uaf4RdmJFeDwN2Ss',Q3=new Uint8Array(0x80);for(var Q4=0x0;Q4>0x2)-QU,Qe=new Uint8Array(Qj),Qg=0x0;for(var QP=0x0;QP>0x4,Qg>0x2),Qg>>0x0||0x1,QP=0x0;var Qa='';function Qz(){return Qg=(Qg^Qg<<0xd)>>>0x0,Qg=(Qg^Qg>>>0x11)>>>0x0,Qg=(Qg^Qg<<0x5)>>>0x0,QP++,Qi['_$o41tUG']()^Qg&0xff;}while(QP>0xa)+0xd800,(Qo&0x3ff)+0xdc00);}}}}return Qa;}function Q7(Qi,QU,Qj){let Qe=Qi['_$o41tUG']();switch(Qe){case Nz:return null;case Np:return undefined;case No:return![];case NS:return!![];case NK:{let Qg=Qi['_$o41tUG']();return Qg>0x7f?Qg-0x100:Qg;}case Nq:{let QP=Qi['_$gdQeN2']();return QP>0x7fff?QP-0x10000:QP;}case Nm:return Qi['_$Azgkk9']();case NJ:return Qi['_$B2CIR6']();case NY:return Qj?Q6(Qi,QU,Qj):Qi['_$81HBmL']();case NW:return BigInt(Qi['_$81HBmL']());case NA:{let Qa=Qi['_$81HBmL'](),Qz=Qi['_$81HBmL']();return new RegExp(Qa,Qz);}case Nt:{let Qp=Qi['_$SkFPWg'](),Qo=new Uint8Array(Qp);for(let QS=0x0;QS>>0x0)+0x1,0x473da903|0x1)^Math['imul']((QU>>>0x0)+0x1,0x473da903>>>0x9|0x1)^0x473da903)>>>0x0;return[(Qj|0x1)>>>0x0,Math['imul'](Qj,0x97b0ea91)+0xdf740aab>>>0x0];}function Q9(Qi){let QU;if(Qi&&Qi['_$zODtGy']!==undefined)QU=Qi;else{let QA=typeof Qi==='string'?Q5(Qi):Qi;QU=new Q1(QA);}let Qj=QU['_$o41tUG'](),Qe=(QU['_$gkpC9k']()^0xfbcd9d3e)>>>0x0,Qg=QU['_$SkFPWg'](),QP=QU['_$SkFPWg'](),Qa=[],Qz=Q8(Qg,QP);Qa[0x20]=Qg,Qa[0x21]=QP;if(Qe&NG){let Qt=QU['_$SkFPWg'](),QE={};for(let Qr=0x0;Qr0x7f?QX-0x100:QX;}case Nq:{let Qk=QT['_$gdQeN2']();return Qk>0x7fff?Qk-0x10000:Qk;}case Nm:return QT['_$Azgkk9']();case NJ:return QT['_$B2CIR6']();case NY:return QT['_$81HBmL']();default:return-0x1;}}let Qq=QU['_$SkFPWg'](),Qm=!!(Qe&Q0),QJ=Qm?Qq*0x3:Qq<<0x1,QY=new Int32Array(QJ),QW=0x0;if(Qm){let QT=Qa[0x8*Qz[0x0]+Qz[0x1]&0x1f]<=0x80;for(let QH=0x0;QH=0x80);QX=QX>>>0x0,QY[QW++]=QT?((QX&0x7f)<<0x14|(QX>>>0x7&0x7f)<<0xa|QX>>>0xe&0x7f)>>>0x0:((QX&0xfff)<<0x14|(QX>>>0xc&0x3ff)<<0xa|QX>>>0x16&0x3ff)>>>0x0;}}else{let Qc=(Qg*0x9507^QP*0xdc87^Qq*0x347f^Qp*0xcbf)>>>0x0&0x3;switch(Qc){case 0x1:{let Qd=new Int32Array(Qq);for(let QD=0x0;QD this.createCountdownUI(), 500); this.startLogTimer(); } } getStatus() { if (!this.authData || !this.authData.type) return 'none'; const { type, activatedAt, code, date } = this.authData; if (type === 'temporary') { if (activatedAt && (Date.now() - activatedAt) < TEMP_AUTH_DURATION * 1000) return 'temporary'; else { this.clearAuth(); return 'none'; } } else if (type === 'daily') { const today = getTodayStr(); if (date === today && DAILY_CODES_MAP[today] && code.toLowerCase() === DAILY_CODES_MAP[today].toLowerCase()) return 'daily'; else { this.clearAuth(); return 'none'; } } else if (type === 'permanent') { if (PERMANENT_CODES.some(pc => pc.toLowerCase() === code.toLowerCase())) return 'permanent'; else { this.clearAuth(); return 'none'; } } return 'none'; } activate(code) { const raw = code.trim().toUpperCase(); const today = getTodayStr(); const tempLower = raw.toLowerCase(); if (TEMPORARY_CODES_MAP[today] && tempLower === TEMPORARY_CODES_MAP[today].toLowerCase()) { this.authData = { type: 'temporary', activatedAt: Date.now(), code: raw, date: today }; GM_setValue(this.storageKey, this.authData); this.createCountdownUI(); this.startLogTimer(); return { success: true, type: 'temporary' }; } if (DAILY_CODES_MAP[today] && tempLower === DAILY_CODES_MAP[today].toLowerCase()) { this.authData = { type: 'daily', activatedAt: Date.now(), code: raw, date: today }; GM_setValue(this.storageKey, this.authData); return { success: true, type: 'daily' }; } if (PERMANENT_CODES.some(pc => pc.toLowerCase() === tempLower)) { this.authData = { type: 'permanent', activatedAt: Date.now(), code: raw, date: today }; GM_setValue(this.storageKey, this.authData); return { success: true, type: 'permanent' }; } return { success: false, msg: '无效授权码' }; } clearAuth() { GM_deleteValue(this.storageKey); this.authData = {}; this.removeCountdownUI(); this.stopLogTimer(); } isAuthorized() { return this.getStatus() !== 'none'; } getRemainingSeconds() { if (this.getStatus() !== 'temporary') return 0; const elapsed = Date.now() - (this.authData.activatedAt || 0); return Math.max(0, Math.floor((TEMP_AUTH_DURATION * 1000 - elapsed) / 1000)); } formatRemaining() { const secs = this.getRemainingSeconds(); const mins = Math.floor(secs / 60); const remainSecs = secs % 60; return `${String(mins).padStart(2,'0')}:${String(remainSecs).padStart(2,'0')}`; } startLogTimer() { if (this.logTimerInterval) clearInterval(this.logTimerInterval); this.logTimerInterval = setInterval(() => { if (this.getStatus() === 'temporary') { const remaining = this.getRemainingSeconds(); if (remaining > 0) { const mins = Math.floor(remaining / 60); const secs = remaining % 60; addLog(`⏳ 临时授权剩余 ${mins} 分 ${secs} 秒`); } else this.stopLogTimer(); } else this.stopLogTimer(); }, 30000); } stopLogTimer() { if (this.logTimerInterval) { clearInterval(this.logTimerInterval); this.logTimerInterval = null; } } createCountdownUI() { if (this.getStatus() !== 'temporary') return; if (document.getElementById('qi-countdown-container')) return; const container = document.createElement('div'); container.id = 'qi-countdown-container'; container.style.cssText = ` position: fixed; top: 60px; right: 20px; z-index: 9999999; background: rgba(0,0,0,0.8); color: #fff; padding: 8px 16px; border-radius: 30px; font-family: 'Microsoft YaHei', sans-serif; font-size: 18px; font-weight: bold; box-shadow: 0 4px 16px rgba(0,0,0,0.5); border: 2px solid #FF5722; display: flex; align-items: center; gap: 8px; user-select: none; pointer-events: none; backdrop-filter: blur(4px); `; const mins = Math.floor(TEMP_AUTH_DURATION / 60); const secs = TEMP_AUTH_DURATION % 60; container.innerHTML = ` ${String(mins).padStart(2,'0')}:${String(secs).padStart(2,'0')} 剩余 `; document.body.appendChild(container); this.countdownEl = document.getElementById('qi-countdown-time'); this.startCountdownTimer(); } startCountdownTimer() { if (this.countdownInterval) clearInterval(this.countdownInterval); this.updateCountdownDisplay(); this.countdownInterval = setInterval(() => this.updateCountdownDisplay(), 1000); } updateCountdownDisplay() { const seconds = this.getRemainingSeconds(); if (!this.countdownEl) return; if (seconds <= 0) { this.countdownEl.textContent = '00:00'; this.clearAuth(); showModal({ title: '⏰ 临时授权已到期', text: '请重新获取授权码', buttons: [{ text: '确定', primary: true }] }).then(() => location.reload()); return; } const mins = Math.floor(seconds / 60); const secs = seconds % 60; this.countdownEl.textContent = `${String(mins).padStart(2,'0')}:${String(secs).padStart(2,'0')}`; } removeCountdownUI() { const el = document.getElementById('qi-countdown-container'); if (el) el.remove(); this.countdownEl = null; if (this.countdownInterval) { clearInterval(this.countdownInterval); this.countdownInterval = null; } } } // ======================== 1. 自动跳转 ======================== const currentHost = location.hostname.replace(/^www\./i, '').toLowerCase(); if (currentHost === 'manage.hnzjgl.gov.cn') return; if (currentHost !== 'jxjyedu.org.cn') { const siteNameMap = { 'nypx.jxjyedu.org.cn':'南阳理工学院','hnzjgl.gov.cn':'河南专技管理平台','jxjy.henu.edu.cn':'河南大学', 'hnpihn.newzhihui.cn':'河南工业职业技术学院','zdkj.v.zzu.edu.cn':'郑州大学','hnzj.ghlearning.com':'河南高辉教育科技有限公司', 'hnzj.user.ghlearning.com':'河南高辉教育科技有限公司','zyjs.lypt.edu.cn':'洛阳职业技术学院', 'ly.fnhzj.com':'洛阳理工学院','huayuzj.com':'中原工学院' }; const siteName = siteNameMap[currentHost] || '当前平台'; const overlay = document.createElement('div'); overlay.id = 'jxjy-redirect-overlay'; overlay.style.cssText = ` position: fixed; inset: 0; z-index: 9999999; background: rgba(0,0,0,0.6); backdrop-filter: blur(8px); display: flex; align-items: center; justify-content: center; animation: fadeIn 0.4s ease; `; const style = document.createElement('style'); style.textContent = ` @keyframes fadeIn { from { opacity:0; } to { opacity:1; } } @keyframes pop { 0% { transform: scale(0.85); opacity:0; } 100% { transform: scale(1); opacity:1; } } @keyframes shrink { from { width:100%; } to { width:0%; } } .jxjy-redirect-card { background:#fff; border-radius:28px; padding:40px 48px; max-width:520px; width:90%; box-shadow:0 30px 80px rgba(0,0,0,0.4); text-align:center; animation:pop 0.3s ease; } .jxjy-redirect-card .icon { font-size:56px; margin-bottom:12px; } .jxjy-redirect-card h2 { font-size:24px; font-weight:900; color:#0f172a; margin:8px 0 6px; } .jxjy-redirect-card .sub { font-size:16px; color:#475569; margin-bottom:20px; } .jxjy-redirect-card .countdown { font-size:52px; font-weight:900; color:#ea580c; background:#fef3c7; display:inline-block; padding:0 28px; border-radius:60px; line-height:1.4; } .jxjy-redirect-card .bar { width:100%; height:6px; background:#e2e8f0; border-radius:4px; margin-top:20px; overflow:hidden; } .jxjy-redirect-card .bar span { display:block; height:100%; background:linear-gradient(90deg,#f59e0b,#ea580c); width:100%; animation:shrink 3s linear forwards; } `; document.head.appendChild(style); overlay.innerHTML = `
🚀

即将跳转

您当前访问的是 ${siteName}
本脚本将自动跳转到 河南省继续教育学会
3
`; document.body.appendChild(overlay); let count = 3; const numEl = document.getElementById('countdown-num'); const timer = setInterval(() => { count -= 1; if (count <= 0) { clearInterval(timer); location.replace('https://' + TARGET_HOST + '/'); } else numEl.textContent = count; }, 1000); return; } // ======================== 第二部分续接(以下内容接第二部分) ======================== // 注意:第二部分将包含所有工具函数、API、刷课逻辑、UI 和初始化。 // 请继续复制第二部分。 // ======================== 3. 核心刷课逻辑 ======================== // ---------- 工具函数 ---------- const sleep = ms => new Promise(r => setTimeout(r, ms)); function escHtml(s) { return String(s ?? '').replace(/&/g,'&').replace(//g,'>').replace(/"/g,'"'); } function truncate(s, n) { s = String(s || ''); return s.length > n ? s.slice(0, n) + '…' : s; } function toFormBody(params) { const parts = []; Object.keys(params || {}).forEach(k => { const v = params[k]; if (v === undefined || v === null) return; parts.push(encodeURIComponent(k) + '=' + encodeURIComponent(String(v))); }); return parts.join('&'); } function courseKey(year, cid) { return `${Number(year)}:${Number(cid)}`; } function parseCourseKey(key) { const parts = String(key || '').split(':'); return { year: Number(parts[0]) || 0, cid: Number(parts[1]) || 0 }; } function findCourse(year, cid) { return state.courses.find(c => Number(c.id) === Number(cid) && Number(c.year) === Number(year)); } function computeChapterBlockProgress(chapters) { if (!chapters || !chapters.length) return 0; const avg = chapters.reduce((s, ch) => s + (Number(ch.progress) || 0), 0) / chapters.length; const doneCount = chapters.filter(ch => (Number(ch.progress) || 0) >= COMPLETE_THRESHOLD).length; const byDone = Math.round((doneCount / chapters.length) * 100); return Math.round(Math.max(avg, byDone)); } // ---------- 状态 ---------- const state = { student: null, years: [], selectedYear: null, courses: [], selectedCourseKeys: new Set(), chapterPreview: [], loading: false, running: false, stopFlag: false, currentTask: '待命', totalProgress: 0, authManager: null, logLines: [], isLoggedIn: false, completionShown: false, }; // ---------- API ---------- const API_BASE = '/wx/mp'; async function apiGet(path, params) { const qs = params && Object.keys(params).length ? '?' + toFormBody(params) : ''; const url = path.startsWith('http') ? path + qs : API_BASE + path + qs; const res = await fetch(url, { method: 'GET', credentials: 'include', headers: { Accept: 'application/json, text/plain, */*' } }); const text = await res.text(); let data = {}; try { data = text ? JSON.parse(text) : {}; } catch (_) { throw new Error('响应非 JSON'); } if (Number(data.code) === -1) throw new Error('登录已过期,请重新登录'); return data; } async function apiPostForm(path, params) { const url = path.startsWith('http') ? path : API_BASE + path; const res = await fetch(url, { method: 'POST', credentials: 'include', headers: { Accept: 'application/json, text/plain, */*', 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' }, body: toFormBody(params), }); const text = await res.text(); let data = {}; try { data = text ? JSON.parse(text) : {}; } catch (_) { throw new Error('响应非 JSON'); } if (Number(data.code) === -1) throw new Error('登录已过期,请重新登录'); return data; } async function fetchStudentInfo() { const data = await apiGet('/StudentInfo'); if (Number(data.code) !== 0 || !data.student) { state.isLoggedIn = false; throw new Error(data.msg || '未登录,请先登录平台'); } state.student = data.student; state.isLoggedIn = true; return data.student; } async function fetchMyCoursePC(year) { const params = {}; if (year != null && year !== '') params.year = String(year); const data = await apiGet('/MyCoursePC', params); if (Number(data.code) !== 0) throw new Error(data.msg || '加载课程失败'); const years = Array.isArray(data.years) ? data.years.map(y => (typeof y === 'object' ? Number(y.year || y) : Number(y))).filter(Boolean) : []; const list = Array.isArray(data.userCourseList) ? data.userCourseList : []; return { years, list }; } async function fetchCourseDetail(courseId) { const data = await apiGet('/Course', { id: courseId, code: '' }); if (Number(data.code) !== 0) throw new Error(data.msg || '加载章节失败'); return data; } async function reportCourseStudy(params) { const data = await apiPostForm('/CourseStudy', params); if (Number(data.code) > 0) throw new Error(data.msg || '上报失败'); return data; } function mapCourseRow(row, year) { const progress = (() => { const cc = Number(row.chapter_count) || 0; const done = Number(row.completed_count) || 0; if (cc > 0) return Math.round((done / cc) * 100); return Math.min(100, Math.max(0, Number(row.progress) || 0)); })(); return { id: Number(row.id) || 0, name: String(row.name || '未命名课程'), credit: Number(row.credit) || 0, type: row.type, card_year: row.card_year, chapter_count: Number(row.chapter_count) || 0, completed_count: Number(row.completed_count) || 0, studylong: Number(row.studylong) || 0, status: row.status, status_study: row.status_study, begin: row.begin, year: Number(year) || Number(row.card_year) || 0, progress, raw: row, }; } function mapChapter(ch, courseId) { const duration = Number(ch.duration) || 0; const position = Number(ch.position) || 0; const progress = Number(ch.progress) || 0; const done = progress >= COMPLETE_THRESHOLD || (duration > 0 && position >= duration); return { id: Number(ch.id) || 0, serial: Number(ch.serial) || 0, name: String(ch.name || '章节'), duration, position, progress, url: ch.url, courseid: Number(ch.courseid || courseId) || courseId, done, status: done ? 'completed' : progress > 0 ? 'learning' : 'notstarted', }; } function recomputeYearProgress(year) { const courses = state.courses.filter(c => Number(c.year) === Number(year)); if (!courses.length) return 0; const avg = courses.reduce((s, c) => s + (Number(c.progress) || 0), 0) / courses.length; const y = state.years.find(x => Number(x.year) === Number(year)); if (y) y.progress = Math.round(avg); return Math.round(avg); } async function loadYearsAndCourses(quiet = false) { if (!quiet) state.loading = true; try { await fetchStudentInfo(); const first = await fetchMyCoursePC(''); const yearSet = new Set(first.years); if (!yearSet.size && first.list.length) { first.list.forEach(c => { const y = Number(c.card_year) || new Date().getFullYear(); yearSet.add(y); }); } state.years = [...yearSet].sort((a,b) => b - a).map(y => ({ year: y, progress: 0 })); if (state.selectedYear == null && state.years.length) state.selectedYear = state.years[0].year; if (state.selectedYear != null && !state.years.some(y => Number(y.year) === Number(state.selectedYear))) { state.selectedYear = state.years[0]?.year ?? null; } const allCourses = []; if (state.selectedYear != null) { const { list } = await fetchMyCoursePC(state.selectedYear); list.forEach(row => { allCourses.push(mapCourseRow(row, state.selectedYear)); }); } state.courses = allCourses; state.years.forEach(y => recomputeYearProgress(y.year)); const incomplete = state.courses.filter(c => (c.progress || 0) < COMPLETE_THRESHOLD); state.selectedCourseKeys = new Set(incomplete.map(c => courseKey(c.year, c.id))); updateTotalProgress(); updateUI(); } catch (e) { state.isLoggedIn = false; if (!quiet) addLog('未登录,请先登录平台'); state.courses = []; state.years = []; state.selectedCourseKeys = new Set(); updateTotalProgress(); updateUI(); } finally { state.loading = false; } } function updateTotalProgress() { const total = state.courses.length > 0 ? state.courses.reduce((s, c) => s + (c.progress || 0), 0) / state.courses.length : 0; state.totalProgress = Math.round(total); } function addLog(msg) { const time = new Date().toLocaleTimeString(); state.logLines.unshift(`[${time}] ${msg}`); if (state.logLines.length > 200) state.logLines.length = 200; updateUI(); } // ---------- 章节并行学习 ---------- async function _soc(chapter, course, freeMode = false) { if (chapter.done || (Number(chapter.progress) || 0) >= COMPLETE_THRESHOLD) return true; state.currentTask = `${truncate(course.name, 8)} / ${chapter.name}`; updateUI(); const duration = Math.max(1, Number(chapter.duration) || 60); let position = Math.max(0, Number(chapter.position) || 0); if (duration - position <= 60) position = 0; let progress = Number(chapter.progress) || 0; while (!state.stopFlag && progress < COMPLETE_THRESHOLD && position < duration) { if (freeMode && state.totalProgress >= FREE_THRESHOLD) { addLog(`免费体验已达 ${FREE_THRESHOLD}%,停止学习`); state.stopFlag = true; return false; } const stepSec = 300; const studylong = Math.min(stepSec, duration - position); if (studylong <= 0) break; await sleep(600); if (state.stopFlag) break; position += studylong; if (position > duration) position = duration; try { const res = await reportCourseStudy({ courseid: course.id, chapter: chapter.serial, duration, studylong, position, }); progress = Number(res.progress) || Math.floor((position / duration) * 100); chapter.position = position; chapter.progress = progress; chapter.done = progress >= COMPLETE_THRESHOLD || position >= duration; chapter.status = chapter.done ? 'completed' : 'learning'; const c = findCourse(course.year, course.id); if (c) { const allCh = state.chapterPreview.find(x => x.courseId === course.id)?.chapters || []; const computed = computeChapterBlockProgress(allCh); c.progress = computed; } updateTotalProgress(); addLog(`${course.name}${chapter.name} 已学${progress}% (总进度${state.totalProgress}%)`); updateUI(); if (freeMode && state.totalProgress >= FREE_THRESHOLD) { addLog(`免费体验达到 ${FREE_THRESHOLD}%,停止`); state.stopFlag = true; return false; } } catch (e) { throw e; } } if (state.stopFlag) return false; chapter.done = progress >= COMPLETE_THRESHOLD || position >= duration; chapter.progress = Math.max(progress, chapter.done ? COMPLETE_THRESHOLD : progress); if (chapter.done) chapter.status = 'completed'; if (chapter.done) addLog(`${course.name}${chapter.name} 完成`); updateTotalProgress(); updateUI(); return true; } async function _scs(course, freeMode = false) { const detail = await fetchCourseDetail(course.id); const allChapters = (detail.courseChapter || []).map(ch => mapChapter(ch, course.id)).sort((a,b) => (a.serial||0) - (b.serial||0)); let block = state.chapterPreview.find(x => x.courseId === course.id); if (!block) { block = { courseId: course.id, chapters: allChapters }; state.chapterPreview.push(block); } else { block.chapters = allChapters; } const pending = allChapters.filter(ch => !ch.done && (Number(ch.progress)||0) < COMPLETE_THRESHOLD); if (!pending.length) { addLog(`${course.name} 已完成`); course.progress = 100; updateTotalProgress(); updateUI(); return; } addLog(`${course.name} · ${pending.length} 个章节并行学习中`); await Promise.all(pending.map(async chapter => { if (state.stopFlag) return; try { await _soc(chapter, course, freeMode); } catch (e) { addLog(`章节 ${chapter.name} 出错:${e.message}`); } })); try { const refreshDetail = await fetchCourseDetail(course.id); const refreshed = (refreshDetail.courseChapter || []).map(ch => mapChapter(ch, course.id)); const computed = computeChapterBlockProgress(refreshed); course.progress = computed; const blk = state.chapterPreview.find(x => x.courseId === course.id); if (blk) blk.chapters = refreshed; recomputeYearProgress(course.year); updateTotalProgress(); updateUI(); if (computed >= 100) addLog(`${course.name} 完成`); } catch (_) {} } async function _rs(freeMode = false) { const courses = [...state.selectedCourseKeys] .map(key => { const { year, cid } = parseCourseKey(key); return findCourse(year, cid); }) .filter(Boolean) .filter(c => (c.progress || 0) < COMPLETE_THRESHOLD); if (!courses.length) { addLog('没有可学习的课程'); return 'no_courses'; } addLog(`开始并发学习 · ${courses.length} 门课 ${freeMode ? '(免费体验模式)' : ''}`); await Promise.allSettled(courses.map(async course => { if (state.stopFlag) return; await _scs(course, freeMode); })); if (state.stopFlag) return 'stopped'; updateTotalProgress(); return 'completed'; } async function freeExperience() { if (state.running) return; if (!state.isLoggedIn) { showModal({ title: '未登录', text: '请先登录平台再体验', buttons: [{ text: '确定', primary: true }] }); return; } if (state.totalProgress >= FREE_THRESHOLD) { showFreeCompleteDialog(); return; } state.running = true; state.stopFlag = false; document.getElementById('qi-start-btn').textContent = '体验中'; try { await _rs(true); updateTotalProgress(); if (state.totalProgress >= FREE_THRESHOLD || state.stopFlag) { localStorage.setItem('qi_free_complete', 'true'); location.reload(); return; } else { addLog(`免费体验结束,当前进度${state.totalProgress}%`); localStorage.setItem('qi_free_complete', 'true'); location.reload(); } } catch (e) { addLog(`体验出错:${e.message}`); } finally { state.running = false; document.getElementById('qi-start-btn').textContent = '开始学习'; if (!state.authManager.isAuthorized()) { document.getElementById('qi-start-btn').style.opacity = '0.5'; document.getElementById('qi-start-btn').style.pointerEvents = 'none'; } } } async function startFullLearn() { if (state.running) return; if (!state.authManager.isAuthorized()) { addLog('未授权,请先获取授权'); return; } if (!state.isLoggedIn) { showModal({ title: '未登录', text: '请先登录平台', buttons: [{ text: '确定', primary: true }] }); return; } state.running = true; state.stopFlag = false; document.getElementById('qi-start-btn').textContent = '学习中'; try { const result = await _rs(false); if (result === 'completed' && !state.stopFlag) { addLog('全部课程已学完'); updateTotalProgress(); if (state.totalProgress >= COMPLETE_THRESHOLD) { showCompletionDialog(); } else { showModal({ title: '学习完成', text: `总进度 ${state.totalProgress}%,请检查网络或继续学习剩余课程`, buttons: [{ text: '确定', primary: true }] }); } } } catch (e) { addLog(`学习出错:${e.message}`); } finally { state.running = false; document.getElementById('qi-start-btn').textContent = '开始学习'; if (!state.authManager.isAuthorized()) { document.getElementById('qi-start-btn').style.opacity = '0.5'; document.getElementById('qi-start-btn').style.pointerEvents = 'none'; } } } // ======================== 4. UI ======================== function showModal(options) { return new Promise((resolve) => { const overlay = document.createElement('div'); overlay.id = 'jxjy-modal-overlay'; overlay.style.cssText = ` position: fixed; inset: 0; z-index: 1000000; background: rgba(0,0,0,0.5); backdrop-filter: blur(6px); display: flex; align-items: center; justify-content: center; padding: 20px; animation: fadeIn 0.3s; `; const card = document.createElement('div'); card.style.cssText = ` background: #fff; border-radius: 24px; max-width: 520px; width: 100%; box-shadow: 0 30px 60px rgba(0,0,0,0.3); overflow: hidden; animation: popIn 0.3s ease; font-family: -apple-system, "Microsoft YaHei", sans-serif; `; const header = document.createElement('div'); header.style.cssText = ` background: linear-gradient(135deg, #fef3c7, #fde68a); padding: 16px 20px; border-bottom: 1px solid #fcd34d; `; header.innerHTML = `
${options.title || '提示'}
`; card.appendChild(header); const body = document.createElement('div'); body.style.cssText = 'padding: 20px 24px; font-size: 15px; color: #334155; line-height: 1.6;'; if (options.html) body.innerHTML = options.html; else body.textContent = options.text || ''; card.appendChild(body); const footer = document.createElement('div'); footer.style.cssText = 'padding: 0 24px 20px; display: flex; gap: 10px; justify-content: flex-end; flex-wrap: wrap;'; const buttons = options.buttons || [{ text: '确定', primary: true }]; buttons.forEach((btn) => { const b = document.createElement('button'); b.textContent = btn.text; b.style.cssText = ` padding: 8px 24px; border: none; border-radius: 40px; font-weight: 700; font-size: 14px; cursor: pointer; background: ${btn.primary ? 'linear-gradient(135deg,#1d4ed8,#0ea5e9)' : '#e2e8f0'}; color: ${btn.primary ? '#fff' : '#334155'}; box-shadow: ${btn.primary ? '0 4px 12px rgba(29,78,216,0.3)' : 'none'}; `; b.addEventListener('click', () => { document.body.removeChild(overlay); resolve(true); }); footer.appendChild(b); }); card.appendChild(footer); overlay.appendChild(card); document.body.appendChild(overlay); if (!document.getElementById('modal-anim-style')) { const s = document.createElement('style'); s.id = 'modal-anim-style'; s.textContent = ` @keyframes fadeIn { from { opacity:0; } to { opacity:1; } } @keyframes popIn { 0% { transform: scale(0.9); opacity:0; } 100% { transform: scale(1); opacity:1; } } `; document.head.appendChild(s); } }); } function showFreeCompleteDialog() { showModal({ title: '🎉 免费体验已结束', html: `

您已完成 30% 的课程学习,如需继续完成全部课程,请获取授权码。

关注公众号“叙言哥哥”发送“河南专技”获取授权码。

`, buttons: [] }); document.addEventListener('click', function handler(e) { if (e.target && e.target.id === 'dialog-auth-btn') { e.stopPropagation(); const overlay = document.getElementById('jxjy-modal-overlay'); if (overlay) document.body.removeChild(overlay); requestAuthorization(); document.removeEventListener('click', handler); } }); } function requestAuthorization() { return new Promise((resolve) => { const overlay = document.createElement('div'); overlay.id = 'auth-overlay'; overlay.style.cssText = ` position: fixed; inset: 0; z-index: 1000001; background: rgba(0,0,0,0.5); backdrop-filter: blur(6px); display: flex; align-items: center; justify-content: center; padding: 20px; animation: fadeIn 0.3s; `; const card = document.createElement('div'); card.style.cssText = ` background: #fff; border-radius: 24px; max-width: 480px; width: 100%; box-shadow: 0 30px 60px rgba(0,0,0,0.3); overflow: hidden; animation: popIn 0.3s ease; font-family: -apple-system, "Microsoft YaHei", sans-serif; `; card.innerHTML = `
🔐 请输入授权码
获取授权码请关注微信公众号“叙言哥哥”,发送 “河南专技” 即可获取对应授权码。
`; overlay.appendChild(card); document.body.appendChild(overlay); const input = card.querySelector('#auth-input'); const confirmBtn = card.querySelector('#auth-confirm'); const cancelBtn = card.querySelector('#auth-cancel'); const qrBtn = card.querySelector('#qr-btn'); qrBtn.addEventListener('click', () => { const qrOverlay = document.createElement('div'); qrOverlay.style.cssText = ` position: fixed; inset: 0; z-index: 1000002; background: rgba(0,0,0,0.5); backdrop-filter: blur(4px); display: flex; align-items: center; justify-content: center; padding: 20px; `; const qrCard = document.createElement('div'); qrCard.style.cssText = ` background: #fff; border-radius: 20px; max-width: 400px; width: 100%; padding: 30px; box-shadow: 0 20px 60px rgba(0,0,0,0.4); text-align: center; `; qrCard.innerHTML = `
扫描二维码关注公众号
`; qrOverlay.appendChild(qrCard); document.body.appendChild(qrOverlay); document.getElementById('qr-close').addEventListener('click', () => { document.body.removeChild(qrOverlay); }); qrOverlay.addEventListener('click', (e) => { if (e.target === qrOverlay) document.body.removeChild(qrOverlay); }); }); const doAuth = () => { const code = input.value.trim(); // 先关闭授权弹窗 document.body.removeChild(overlay); if (!code) { showModal({ title: '提示', text: '请输入授权码', buttons: [{ text: '确定', primary: true }] }); return; } const result = state.authManager.activate(code); if (result.success) { let msg = ''; if (result.type === 'temporary') msg = '⏳ 5分钟临时授权已生效,右上角显示倒计时,日志每30秒刷新剩余时间。'; else if (result.type === 'daily') msg = '🎉 今日授权已生效,今日内有效。'; else if (result.type === 'permanent') msg = '🔓 永久授权已生效,感谢支持!'; // 写入日志 addLog(`✅ 授权成功:${result.type === 'temporary' ? '临时' : result.type === 'daily' ? '延时' : '永久'}授权`); showModal({ title: '✅ 授权成功', text: msg, buttons: [{ text: '知道了', primary: true }] }).then(() => { updateUI(); resolve(true); }); } else { addLog(`❌ 授权失败:${result.msg}`); showModal({ title: '❌ 激活失败', text: result.msg || '无效授权码', buttons: [{ text: '确定', primary: true }] }).then(() => resolve(false)); } }; confirmBtn.addEventListener('click', doAuth); cancelBtn.addEventListener('click', () => { document.body.removeChild(overlay); resolve(false); }); input.addEventListener('keydown', (e) => { if (e.key === 'Enter') doAuth(); }); input.focus(); }); } function showCompletionDialog() { if (state.completionShown) return; state.completionShown = true; const marqueeText = '🎊 恭喜您完成 2026 年河南省继续教育全部课程学习,祝您工作顺利! 🎊'; showModal({ title: '🎉 学习完成!', html: `
您已按顺序完成全部课程的学习任务,获得相应学时。
${marqueeText}
本次学习圆满结束,祝您假期愉快!
`, buttons: [] }); document.addEventListener('click', function handler(e) { if (e.target && e.target.id === 'thanks-btn') { e.stopPropagation(); showModal({ title: '💖 感谢支持', html: ``, buttons: [{ text: '关闭', primary: true }] }); const overlay = document.getElementById('jxjy-modal-overlay'); if (overlay) document.body.removeChild(overlay); document.removeEventListener('click', handler); } }); } function showGuide() { showModal({ title: '📚 使用指南', html: `
🚀 免费体验流程
1
登录平台:确保已登录河南省继续教育学会账号。
2
点击 “免费体验”(顶部横幅按钮),脚本将自动学习所有课程至总进度 30% 后停止,并刷新页面弹出授权提示。
3
获取授权码(见下方)后输入,解锁“开始学习”按钮,完成全部课程。
🔑 授权码说明
  • 临时授权:5分钟有效,适合临时刷课,右上角显示倒计时,日志每30秒刷新剩余时间。
  • 延时授权:当日全天有效。
  • 永久授权:永久有效。
  • 关注公众号 “叙言哥哥” 发送 “河南专技” 获取对应授权码。
💡 其他功能
  • 打赏:点击左侧粉色按钮,扫描二维码支持作者。
  • 日志:右下角实时显示学习进度和状态(登录/未登录、课程进度等)。
`, buttons: [{ text: '我知道了', primary: true }] }); } function createBanner() { const banner = document.createElement('div'); banner.id = 'qi-banner'; banner.style.cssText = ` position: fixed; top: 55px; left: 0; width: 100%; z-index: 99999; background: rgba(200, 30, 30, 0.85); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); color: #fff; text-align: center; padding: 8px 20px; font-size: 15px; font-weight: bold; font-family: 'Microsoft Yahei'; box-shadow: 0 4px 20px rgba(0,0,0,0.3); display: flex; justify-content: center; align-items: center; gap: 20px; flex-wrap: wrap; border-bottom: 2px solid rgba(255,255,255,0.2); `; banner.innerHTML = ` ⚠️ 未授权 — 您可以免费学习 30% 的课程,或获取授权码解锁全部。 `; document.body.appendChild(banner); document.getElementById('qi-free-btn').addEventListener('click', () => { if (state.authManager.isAuthorized()) { showModal({ title: '已授权', text: '您已获得授权,可直接使用“开始学习”完成全部课程', buttons: [{ text: '确定', primary: true }] }); return; } if (!state.isLoggedIn) { showModal({ title: '未登录', text: '请先登录平台再体验', buttons: [{ text: '确定', primary: true }] }); return; } freeExperience(); }); document.getElementById('qi-auth-btn').addEventListener('click', () => { requestAuthorization(); }); } function updateUI() { const startBtn = document.getElementById('qi-start-btn'); const banner = document.getElementById('qi-banner'); const isAuth = state.authManager.isAuthorized(); const loggedIn = state.isLoggedIn; if (startBtn) { if (isAuth && loggedIn) { startBtn.style.opacity = '1'; startBtn.style.pointerEvents = 'auto'; startBtn.style.background = 'linear-gradient(145deg, #4CAF50, #2E7D32)'; startBtn.textContent = '开始学习'; } else { startBtn.style.opacity = '0.5'; startBtn.style.pointerEvents = 'none'; startBtn.style.background = 'linear-gradient(145deg, #9E9E9E, #616161)'; startBtn.textContent = loggedIn ? '未授权' : '请登录'; } } if (isAuth || !loggedIn) { if (banner) banner.style.display = 'none'; } else { if (banner) banner.style.display = 'flex'; } const logPanel = document.getElementById('qi-log-panel'); if (logPanel) { let html = `
📋 日志 ${loggedIn ? '✅ 已登录' : '❌ 未登录'}
`; const totalCourses = state.courses.length; const completedCourses = state.courses.filter(c => c.progress >= COMPLETE_THRESHOLD).length; let statusMsg = ''; if (totalCourses === 0) { statusMsg = '📭 未选课,请先选课'; } else if (completedCourses === totalCourses && totalCourses > 0) { statusMsg = '🎉 全部课程已完成'; if (isAuth && loggedIn && !state.completionShown) { state.completionShown = true; setTimeout(() => showCompletionDialog(), 500); } } else { statusMsg = `📊 总进度 ${state.totalProgress}% (${completedCourses}/${totalCourses})`; } html += `
${statusMsg}
`; const logs = state.logLines.slice(0, 25); if (logs.length === 0) { html += '
暂无日志
'; } else { html += logs.map(line => `
${line.slice(0, 9)}${escHtml(line.slice(10))}
`).join(''); } logPanel.innerHTML = html; logPanel.scrollTop = logPanel.scrollHeight; } } function createUI() { const style = document.createElement('style'); style.textContent = ` .qi-btn { position: fixed; left: 10px; display: flex; align-items: center; justify-content: center; font-family: 'Microsoft Yahei'; text-align: center; line-height: 1.2; padding: 0; z-index: 2147483647; border: none; cursor: pointer; transition: transform 0.2s, box-shadow 0.2s, background 0.3s; user-select: none; box-shadow: 0 2px 12px rgba(0,0,0,0.25); width: 70px; height: 70px; border-radius: 50%; font-size: 13px; font-weight: bold; color: #fff; } .qi-btn:hover { transform: scale(1.06); } .qi-btn:active { transform: scale(0.95); } #qi-guide-btn { top: 110px; background: linear-gradient(145deg, #FF6F00, #E65100); box-shadow: 0 4px 14px rgba(255,77,175,0.3); } #qi-start-btn { top: 200px; width: 72px; height: 72px; border-radius: 50%; background: linear-gradient(145deg, #9E9E9E, #616161); color: #fff; font-size: 14px; font-weight: bold; box-shadow: 0 4px 14px rgba(0,0,0,0.2); line-height: 1.3; border: 2px solid #fff; transition: background 0.3s, border-color 0.3s; opacity: 0.5; pointer-events: none; } #qi-start-btn.active { background: linear-gradient(145deg, #4CAF50, #2E7D32) !important; border-color: #4CAF50 !important; box-shadow: 0 0 20px rgba(76,175,80,0.6) !important; opacity: 1 !important; pointer-events: auto !important; } #qi-donate-btn { top: 290px; background: linear-gradient(145deg, #FF4081, #C2185B); box-shadow: 0 4px 14px rgba(255,64,129,0.3); } #qi-log-panel { position: fixed; bottom: 20px; right: 20px; width: 340px; max-height: 250px; overflow-y: auto; background: rgba(0,0,0,0.75); color: #e0e0e0; border-radius: 12px; padding: 8px 12px; font-family: 'Consolas', 'Microsoft YaHei', monospace; font-size: 12px; z-index: 2147483647; backdrop-filter: blur(4px); border: 1px solid rgba(255,255,255,0.15); box-shadow: 0 4px 20px rgba(0,0,0,0.5); transition: max-height 0.3s; pointer-events: none; } #qi-log-panel .log-entry { padding: 2px 0; border-bottom: 1px solid rgba(255,255,255,0.05); word-break: break-all; line-height: 1.4; } #qi-log-panel .log-entry .time { color: #888; margin-right: 6px; } #qi-log-panel::-webkit-scrollbar { width: 4px; } #qi-log-panel::-webkit-scrollbar-thumb { background: #555; border-radius: 4px; } #qi-log-panel::-webkit-scrollbar-track { background: transparent; } `; document.head.appendChild(style); const btnData = [ { id: 'qi-guide-btn', text: '使用
指南', click: showGuide }, { id: 'qi-start-btn', text: '请登录', click: () => { if (state.authManager.isAuthorized() && state.isLoggedIn) { startFullLearn(); } else { if (!state.isLoggedIn) { showModal({ title: '未登录', text: '请先登录平台', buttons: [{ text: '确定', primary: true }] }); } else { showModal({ title: '未授权', text: '请先获取授权码,或点击“免费体验”学习30%', buttons: [{ text: '知道了', primary: true }] }); } } }}, { id: 'qi-donate-btn', text: '💖
打赏', click: () => { showModal({ title: '💖 感谢打赏', html: ``, buttons: [{ text: '关闭', primary: true }] }); }} ]; btnData.forEach(({id, text, click}) => { const btn = document.createElement('div'); btn.id = id; btn.className = 'qi-btn'; btn.innerHTML = text; document.body.appendChild(btn); btn.addEventListener('click', click); }); const logPanel = document.createElement('div'); logPanel.id = 'qi-log-panel'; logPanel.innerHTML = '
日志加载中...
'; document.body.appendChild(logPanel); updateUI(); } // ======================== 5. 初始化 ======================== const authManager = new AuthManager(); state.authManager = authManager; if (localStorage.getItem('qi_free_complete') === 'true') { localStorage.removeItem('qi_free_complete'); setTimeout(() => showFreeCompleteDialog(), 800); } setInterval(() => { if (!state.completionShown && state.authManager.isAuthorized() && state.isLoggedIn) { const totalCourses = state.courses.length; const completedCourses = state.courses.filter(c => c.progress >= COMPLETE_THRESHOLD).length; if (totalCourses > 0 && completedCourses === totalCourses) { state.completionShown = true; setTimeout(() => showCompletionDialog(), 200); } } updateUI(); }, 5000); async function init() { createUI(); if (!authManager.isAuthorized()) { createBanner(); } await loadYearsAndCourses(true); if (authManager.isAuthorized() && state.isLoggedIn) { updateUI(); const banner = document.getElementById('qi-banner'); if (banner) banner.style.display = 'none'; } if (authManager.getStatus() === 'temporary') { addLog(`⏳ 临时授权剩余 ${authManager.formatRemaining()}`); } updateUI(); setInterval(async () => { try { await fetchStudentInfo(); updateUI(); } catch (_) { state.isLoggedIn = false; updateUI(); } }, 30000); } if (document.readyState === 'complete' || document.readyState === 'interactive') { init(); } else { window.addEventListener('DOMContentLoaded', init); } })();