diff --git a/_worker.js b/_worker.js index 2b987ee3..ce73b251 100644 --- a/_worker.js +++ b/_worker.js @@ -1,3 +1,3 @@ -// Build: 2025-10-10T00:24:25.058Z +// Build: 2026-03-14T01:37:24.039Z // @ts-nocheck -let e=40571,c=90279,t=58693,d=19678,f=85367,r=28745,n=4243,a=31248,i=78066,s=53524,o=8751,u=60747,l=79188,w=7353,h=47975,A=78450,b=43145,p=20843,E=26307,B=97061,H=96321,m=5851,g=67820,y=28680,x=45029,T=83620,R=93340,v=43847,M=18706,k=6544,S=74013,_=53024,C=15453,P=91684,O=82954,D=75213,L=23162,I=44381,U=60603,N=77854,z=74712,W=20377,X=85649,F=20466,j=94090,$=74870,J=57790,K=64186,V=51096,Z=49779,Y=44368,G=72599,Q=4392,q=75208,ee=60058,ce=53858,te=13111,de=95932,fe=52477,re=28462,ne=87694,ae=39928,ie=26635,se=25188,oe=59,ue=72853,le=49977,we=29814,he=2089,Ae=65180,be=50617,pe=46165,Ee=38261,Be=14695,He=304,me=93149,ge=18284,ye=69300,xe=22835,Te=25359,Re=91324,ve=94093,Me=57797,ke=48227,Se=4425,_e=68613,Ce=67715,Pe=9555,Oe=53435,De=19828,Le=35102,Ie=47485,Ue=38877,Ne=54561,ze=97002,We=62390,Xe=9158,Fe=85085,je=26107,$e=19620,Je=58213,Ke=59463,Ve=26066,Ze=28794,Ye=77869,Ge=42200,Qe=7684,qe=35234,ec=52590,cc=23842,tc=50703,dc=46514,fc=47209,rc=73473,nc=86333,ac=57639,ic=20438,sc=29619,oc=43912,uc=28989,lc=45955,wc=37174,hc=35670,Ac=32327,bc=59155,pc=4569,Ec=38458,Bc=13703,Hc=16596,mc=47603,gc=50771,yc=69413,xc=7441,Tc=49147,Rc=24423,vc=23628,Mc=8336,kc=5112,Sc=18539,_c=38522,Cc=36812,Pc=97211,Oc=59981,Dc=1726,Lc=8601,Ic=36629,Uc=49689,Nc=67095,zc=15019,Wc=81017,Xc=48660,Fc=95897,jc=70062,$c=2408,Jc=34583,Kc=50775,Vc=305,Zc=99303,Yc=41548,Gc=90434,Qc=58730,qc=77069,et=89222,ct=95921,tt=94839,dt=92379,ft=33983,rt=61746,nt=74032,at=55064,it=19834,st=95684,ot=61436,ut=64124,lt=16647,wt=32898,ht=64445,At=7651,bt=91760,pt=32619,Et=32447,Bt=8592,Ht=3698,mt=26221,gt=19118,yt=79267,xt=48865,Tt=79065,Rt=92396,vt=37167,Mt=85133,kt=66506,St=67813,_t=80019,Ct=41409,Pt=47490,Ot=54971,Dt=70553,Lt=72908,It=39664,Ut=73743,Nt=98694,zt=63970,Wt=76373,Xt=72466,Ft=1949,jt=11736,$t=76146,Jt=18579,Kt=3890,Vt=10837,Zt=4888,Yt=86301,Gt=67053,Qt=47796,qt=82850,ed=16609,cd=12894,td=81445,dd=85187,fd=56733,rd=95405,nd=71816;function ad(){return 588}function id(){return 519}function sd(){return 974}function od(){return 191}function ud(){return 920}function ld(){return 79}function wd(){return 51}function hd(){return 745}function Ad(){return 907}function bd(){return 218}function pd(){return 973}function Ed(){return 13}function Bd(){return 89}function Hd(){return 480}function md(){return 569}function gd(){return 211}function yd(){return 459}function xd(){return 624}function Td(){return 621}function Rd(){return 341}function vd(){return 924}function Md(){return 658}function kd(){return 800}function Sd(){return 43}function _d(){return 970}function Cd(){return 42}function Pd(){return 824}function Od(){return 680}function Dd(){return 878}function Ld(){return 59}function Id(){return 156}function Ud(){return 346}function Nd(){return 630}function zd(){return 431}function Wd(){return 814}function Xd(){return 699}function Fd(){return 468}function jd(){return 28}function $d(){return 113}function Jd(){return 341}function Kd(){return 937}function Vd(){return 963}function Zd(){return 322}function Yd(){return 443}function Gd(){return 342}function Qd(){return 561}function qd(){return 660}function ef(){return 501}function cf(){return 382}function tf(){return 361}function df(){return 379}function ff(){return 708}function rf(){return 919}function nf(){return 670}function af(){return 179}function sf(){return 306}function of(){return 427}function uf(){return 228}function lf(){return 222}function wf(){return 936}function hf(){return 383}function Af(){return 829}function bf(){return 688}function pf(){return 264}function Ef(){return 388}function Bf(){return 654}function Hf(){return 849}function mf(){return 144}function gf(){return 614}function yf(){return 141}function xf(){return 120}function Tf(){return 955}function Rf(){return 856}function vf(){return 40}function Mf(){return 949}function kf(){return 298}function Sf(){return 486}function _f(){return 275}function Cf(){return 675}function Pf(){return 109}function Of(){return 251}function Df(){return 682}function Lf(){return 163}function If(){return 696}function Uf(){return 776}function Nf(){return 636}function zf(){return 144}function Wf(){return 355}function Xf(){return 866}function Ff(){return 984}function jf(){return 536}function $f(){return 195}function Jf(){return 298}function Kf(){return 588}function Vf(){return 944}function Zf(){return 255}function Yf(){return 544}function Gf(){return 349}function Qf(){return 496}function qf(){return 746}function er(){return 86}function cr(){return 511}function tr(){return 982}function dr(){return 387}function fr(){return 491}function rr(){return 196}function nr(){return 646}function ar(){return 101}function ir(){return 394}function sr(){return 772}function or(){return 27}function ur(){return 61}function lr(){return 402}function wr(){return 421}function hr(){return 935}function Ar(){return 818}function br(){return 79}function pr(){return 83}function Er(){return 565}function Br(){return 788}function Hr(){return 473}function mr(){return 773}function gr(){return 284}function yr(){return 828}function xr(){return 390}function Tr(){return 4}function Rr(){return 647}function vr(){return 228}function Mr(){return 732}function kr(){return 452}function Sr(){return 902}function _r(){return 390}function Cr(){return 459}function Pr(){return 581}function Or(){return 310}function Dr(){return 14}function Lr(){return 93}function Ir(){return 64}function Ur(){return 305}function Nr(){return 393}function zr(){return 372}function Wr(){return 249}function Xr(){return 569}function Fr(){return 491}function jr(){return 571}function $r(){return 783}function Jr(){return 162}function Kr(){return 731}function Vr(){return 97}function Zr(){return 558}function Yr(){return 469}function Gr(){return 276}function Qr(){return 717}function qr(){return 161}function en(){return 846}function cn(){return 802}function tn(){return 703}function dn(){return 488}function fn(){return 741}function rn(){return 550}function nn(){return 126}function an(){return 369}function sn(){return 559}function on(){return 253}function un(){return 478}function ln(){return 645}function wn(){return 576}function hn(){return 536}function An(){return 111}function bn(){return 508}function pn(){return 329}function En(){return 95}function Bn(){return 249}function Hn(){return 454}function mn(){return 961}function gn(){return 869}function yn(){return 782}function xn(){return 989}function Tn(){return 205}function Rn(){return 377}function vn(){return 306}function Mn(){return 545}function kn(){return 406}function Sn(){return 169}function _n(){return 950}function Cn(){return 690}function Pn(){return 846}function On(){return 165}function Dn(){return 798}function Ln(){return 552}function In(){return 895}function Un(){return 407}function Nn(){return 992}function zn(){return 549}function Wn(){return 734}function Xn(){return 688}function Fn(){return 21}function jn(){return 170}function $n(){return 894}function Jn(){return 386}function Kn(){return 95}function Vn(){return 882}function Zn(){return 614}function Yn(){return 338}function Gn(){return 53}function Qn(){return 189}var qn=Object.create,ea=Object.defineProperty,ca=Object.getOwnPropertyDescriptor,ta=Object.getOwnPropertyNames,da=Object.getPrototypeOf,fa=Object.prototype.hasOwnProperty,ra=e=>{throw TypeError(e)},na=(e,c,t)=>c in e?ea(e,c,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[c]=t,aa=(e=>"undefined"!=typeof require?require:"undefined"!=typeof Proxy?new Proxy(e,{get:(e,c)=>("undefined"!=typeof require?require:e)[c]}):e)(function(e){if("undefined"!=typeof require)return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')}),ia,sa=(e,c,t,d)=>{if(c&&"object"==typeof c||"function"==typeof c)for(let f of ta(c))fa.call(e,f)||f===t||ea(e,f,{get:()=>c[f],enumerable:!(d=ca(c,f))||d.enumerable});return e},oa=(e,c,t)=>(t=null!=e?qn(da(e)):{},sa(!c&&e&&e.__esModule?t:ea(t,"default",{value:e,enumerable:!0}),e)),ua=(e,c,t)=>na(e,"symbol"!=typeof c?c+"":c,t),la=(e,c,t)=>c.has(e)||ra("Cannot "+t),wa=(e,c,t)=>(la(e,c,"read from private field"),t?t.call(e):c.get(e)),ha=(e,c,t)=>c.has(e)?ra("Cannot add the same private member more than once"):c instanceof WeakSet?c.add(e):c.set(e,t),Aa=(e,c,t,d)=>(la(e,c,"write to private field"),d?d.call(e,t):c.set(e,t),t),ba=((e,c)=>function t(){return c||(0,e[ta(e)[0]])((c={exports:{}}).exports,c),c.exports})({"node_modules/jszip/dist/jszip.min.js"(e,c){!function(t){"object"==typeof e&&void 0!==c?c.exports=t():"function"==typeof define&&define.amd?define([],t):("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).JSZip=t()}(function(){return function e(c,t,d){function f(n,a){if(!t[n]){if(!c[n]){var i="function"==typeof aa&&aa;if(!a&&i)return i(n,!0);if(r)return r(n,!0);var s=new Error("Cannot find module '"+n+"'");throw s.code="MODULE_NOT_FOUND",s}var o=t[n]={exports:{}};c[n][0].call(o.exports,function(e){var t;return f(c[n][1][e]||e)},o,o.exports,e,c,t,d)}return t[n].exports}for(var r="function"==typeof aa&&aa,n=0;n>2,a=(3&c)<<4|t>>4,i=1<<2|f>>6:64,s=2<<2|(n=r.indexOf(e.charAt(s++)))>>4,t=(15&n)<<4|(a=r.indexOf(e.charAt(s++)))>>2,d=(3&a)<<6|(i=r.indexOf(e.charAt(s++))),l[o++]=c,64!==a&&(l[o++]=t),64!==i&&(l[o++]=d);return l}},{"./support":30,"./utils":32}],2:[function(e,c,t){var d=e("./external"),f=e("./stream/DataWorker"),r=e("./stream/Crc32Probe"),n=e("./stream/DataLengthProbe");function a(e,c,t,d,f){this.compressedSize=e,this.uncompressedSize=c,this.crc32=t,this.compression=d,this.compressedContent=f}a.prototype={getContentWorker:function(){var e=new f(d.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new n("data_length")),c=this;return e.on("end",function(){if(this.streamInfo.data_length!==c.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),e},getCompressedWorker:function(){return new f(d.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},a.createWorkerFrom=function(e,c,t){return e.pipe(new r).pipe(new n("uncompressedSize")).pipe(c.compressWorker(t)).pipe(new n("compressedSize")).withStreamInfo("compression",c)},c.exports=a},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(e,c,t){var d=e("./stream/GenericWorker");t.STORE={magic:"\0\0",compressWorker:function(){return new d("STORE compression")},uncompressWorker:function(){return new d("STORE decompression")}},t.DEFLATE=e("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(e,c,t){var d=e("./utils"),f=function(){for(var e,c=[],t=0;t<256;t++){e=t;for(var d=0;d<8;d++)e=1&e?3988292384^e>>>1:e>>>1;c[t]=e}return c}();c.exports=function(e,c){return void 0!==e&&e.length?"string"!==d.getTypeOf(e)?function(e,c,t,d){var r=f,n=0+t;e^=-1;for(var a=0;a>>8^r[255&(e^c[a])];return-1^e}(0|c,e,e.length,0):function(e,c,t,d){var r=f,n=0+t;e^=-1;for(var a=0;a>>8^r[255&(e^c.charCodeAt(a))];return-1^e}(0|c,e,e.length,0):0}},{"./utils":32}],5:[function(e,c,t){t.base64=!1,t.binary=!1,t.dir=!1,t.createFolders=!0,t.date=null,t.compression=null,t.compressionOptions=null,t.comment=null,t.unixPermissions=null,t.dosPermissions=null},{}],6:[function(e,c,t){var d=null;d="undefined"!=typeof Promise?Promise:e("lie"),c.exports={Promise:d}},{lie:37}],7:[function(e,c,t){var d="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,f=e("pako"),r=e("./utils"),n=e("./stream/GenericWorker"),a=d?"uint8array":"array";function i(e,c){n.call(this,"FlateWorker/"+e),this._pako=null,this._pakoAction=e,this._pakoOptions=c,this.meta={}}t.magic="\b\0",r.inherits(i,n),i.prototype.processChunk=function(e){this.meta=e.meta,null===this._pako&&this._createPako(),this._pako.push(r.transformTo(a,e.data),!1)},i.prototype.flush=function(){n.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},i.prototype.cleanUp=function(){n.prototype.cleanUp.call(this),this._pako=null},i.prototype._createPako=function(){this._pako=new f[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var e=this;this._pako.onData=function(c){e.push({data:c,meta:e.meta})}},t.compressWorker=function(e){return new i("Deflate",e)},t.uncompressWorker=function(){return new i("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(e,c,t){function d(e,c){var t,d="";for(t=0;t>>=8;return d}function f(e,c,t,f,n,o){var u,l,w=e.file,h=e.compression,A=o!==a.utf8encode,b=r.transformTo("string",o(w.name)),p=r.transformTo("string",a.utf8encode(w.name)),E=w.comment,B=r.transformTo("string",o(E)),H=r.transformTo("string",a.utf8encode(E)),m=p.length!==w.name.length,g=H.length!==E.length,y="",x="",T="",R=w.dir,v=w.date,M={crc32:0,compressedSize:0,uncompressedSize:0};c&&!t||(M.crc32=e.crc32,M.compressedSize=e.compressedSize,M.uncompressedSize=e.uncompressedSize);var k=0;c&&(k|=8),A||!m&&!g||(k|=2048);var S=0,_=0,C,P,O;R&&(S|=16),"UNIX"===n?(_=798,S|=(C=w.unixPermissions,P=R,O=C,C||(O=P?16893:33204),(65535&O)<<16)):(_=20,S|=function(e){return 63&(e||0)}(w.dosPermissions)),u=v.getUTCHours(),u<<=6,u|=v.getUTCMinutes(),u<<=5,u|=v.getUTCSeconds()/2,l=v.getUTCFullYear()-1980,l<<=4,l|=v.getUTCMonth()+1,l<<=5,l|=v.getUTCDate(),m&&(x=d(1,1)+d(i(b),4)+p,y+="up"+d(x.length,2)+x),g&&(T=d(1,1)+d(i(B),4)+H,y+="uc"+d(T.length,2)+T);var D="";return D+="\n\0",D+=d(k,2),D+=h.magic,D+=d(u,2),D+=d(l,2),D+=d(M.crc32,4),D+=d(M.compressedSize,4),D+=d(M.uncompressedSize,4),D+=d(b.length,2),D+=d(y.length,2),{fileRecord:s.LOCAL_FILE_HEADER+D+b+y,dirRecord:s.CENTRAL_FILE_HEADER+d(_,2)+D+d(B.length,2)+"\0\0\0\0"+d(S,4)+d(f,4)+b+y+B}}var r=e("../utils"),n=e("../stream/GenericWorker"),a=e("../utf8"),i=e("../crc32"),s=e("../signature");function o(e,c,t,d){n.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=c,this.zipPlatform=t,this.encodeFileName=d,this.streamFiles=e,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}r.inherits(o,n),o.prototype.push=function(e){var c=e.meta.percent||0,t=this.entriesCount,d=this._sources.length;this.accumulate?this.contentBuffer.push(e):(this.bytesWritten+=e.data.length,n.prototype.push.call(this,{data:e.data,meta:{currentFile:this.currentFile,percent:t?(c+100*(t-d-1))/t:100}}))},o.prototype.openedSource=function(e){this.currentSourceOffset=this.bytesWritten,this.currentFile=e.file.name;var c=this.streamFiles&&!e.file.dir;if(c){var t=f(e,c,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:t.fileRecord,meta:{percent:0}})}else this.accumulate=!0},o.prototype.closedSource=function(e){this.accumulate=!1;var c=this.streamFiles&&!e.file.dir,t=f(e,c,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName),r;if(this.dirRecords.push(t.dirRecord),c)this.push({data:(r=e,s.DATA_DESCRIPTOR+d(r.crc32,4)+d(r.compressedSize,4)+d(r.uncompressedSize,4)),meta:{percent:100}});else for(this.push({data:t.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},o.prototype.flush=function(){for(var e=this.bytesWritten,c=0;c=this.index;c--)t=(t<<8)+this.byteAt(c);return this.index+=e,t},readString:function(e){return d.transformTo("string",this.readData(e))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var e=this.readInt(4);return new Date(Date.UTC(1980+(e>>25&127),(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(31&e)<<1))}},c.exports=f},{"../utils":32}],19:[function(e,c,t){var d=e("./Uint8ArrayReader");function f(e){d.call(this,e)}e("../utils").inherits(f,d),f.prototype.readData=function(e){this.checkOffset(e);var c=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,c},c.exports=f},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(e,c,t){var d=e("./DataReader");function f(e){d.call(this,e)}e("../utils").inherits(f,d),f.prototype.byteAt=function(e){return this.data.charCodeAt(this.zero+e)},f.prototype.lastIndexOfSignature=function(e){return this.data.lastIndexOf(e)-this.zero},f.prototype.readAndCheckSignature=function(e){return e===this.readData(4)},f.prototype.readData=function(e){this.checkOffset(e);var c=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,c},c.exports=f},{"../utils":32,"./DataReader":18}],21:[function(e,c,t){var d=e("./ArrayReader");function f(e){d.call(this,e)}e("../utils").inherits(f,d),f.prototype.readData=function(e){if(this.checkOffset(e),0===e)return new Uint8Array(0);var c=this.data.subarray(this.zero+this.index,this.zero+this.index+e);return this.index+=e,c},c.exports=f},{"../utils":32,"./ArrayReader":17}],22:[function(e,c,t){var d=e("../utils"),f=e("../support"),r=e("./ArrayReader"),n=e("./StringReader"),a=e("./NodeBufferReader"),i=e("./Uint8ArrayReader");c.exports=function(e){var c=d.getTypeOf(e);return d.checkSupport(c),"string"!==c||f.uint8array?"nodebuffer"===c?new a(e):f.uint8array?new i(d.transformTo("uint8array",e)):new r(d.transformTo("array",e)):new n(e)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(e,c,t){t.LOCAL_FILE_HEADER="PK",t.CENTRAL_FILE_HEADER="PK",t.CENTRAL_DIRECTORY_END="PK",t.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK",t.ZIP64_CENTRAL_DIRECTORY_END="PK",t.DATA_DESCRIPTOR="PK\b"},{}],24:[function(e,c,t){var d=e("./GenericWorker"),f=e("../utils");function r(e){d.call(this,"ConvertWorker to "+e),this.destType=e}f.inherits(r,d),r.prototype.processChunk=function(e){this.push({data:f.transformTo(this.destType,e.data),meta:e.meta})},c.exports=r},{"../utils":32,"./GenericWorker":28}],25:[function(e,c,t){var d=e("./GenericWorker"),f=e("../crc32");function r(){d.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}e("../utils").inherits(r,d),r.prototype.processChunk=function(e){this.streamInfo.crc32=f(e.data,this.streamInfo.crc32||0),this.push(e)},c.exports=r},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(e,c,t){var d=e("../utils"),f=e("./GenericWorker");function r(e){f.call(this,"DataLengthProbe for "+e),this.propName=e,this.withStreamInfo(e,0)}d.inherits(r,f),r.prototype.processChunk=function(e){if(e){var c=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=c+e.data.length}f.prototype.processChunk.call(this,e)},c.exports=r},{"../utils":32,"./GenericWorker":28}],27:[function(e,c,t){var d=e("../utils"),f=e("./GenericWorker");function r(e){f.call(this,"DataWorker");var c=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,e.then(function(e){c.dataIsReady=!0,c.data=e,c.max=e&&e.length||0,c.type=d.getTypeOf(e),c.isPaused||c._tickAndRepeat()},function(e){c.error(e)})}d.inherits(r,f),r.prototype.cleanUp=function(){f.prototype.cleanUp.call(this),this.data=null},r.prototype.resume=function(){return!!f.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,d.delay(this._tickAndRepeat,[],this)),!0)},r.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(d.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},r.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var e=null,c=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":e=this.data.substring(this.index,c);break;case"uint8array":e=this.data.subarray(this.index,c);break;case"array":case"nodebuffer":e=this.data.slice(this.index,c)}return this.index=c,this.push({data:e,meta:{percent:this.max?this.index/this.max*100:0}})},c.exports=r},{"../utils":32,"./GenericWorker":28}],28:[function(e,c,t){function d(e){this.name=e||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}d.prototype={push:function(e){this.emit("data",e)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(e){this.emit("error",e)}return!0},error:function(e){return!this.isFinished&&(this.isPaused?this.generatedError=e:(this.isFinished=!0,this.emit("error",e),this.previous&&this.previous.error(e),this.cleanUp()),!0)},on:function(e,c){return this._listeners[e].push(c),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(e,c){if(this._listeners[e])for(var t=0;t "+e:e}},c.exports=d},{}],29:[function(e,c,t){var d=e("../utils"),f=e("./ConvertWorker"),r=e("./GenericWorker"),n=e("../base64"),a=e("../support"),i=e("../external"),s=null;if(a.nodestream)try{s=e("../nodejs/NodejsStreamOutputAdapter")}catch(e){}function o(e,c){return new i.Promise(function(t,f){var r=[],a=e._internalType,i=e._outputType,s=e._mimeType;e.on("data",function(e,t){r.push(e),c&&c(t)}).on("error",function(e){r=[],f(e)}).on("end",function(){try{var e=function(e,c,t){switch(e){case"blob":return d.newBlob(d.transformTo("arraybuffer",c),t);case"base64":return n.encode(c);default:return d.transformTo(e,c)}}(i,function(e,c){var t,d=0,f=null,r=0;for(t=0;t>>6:(t<65536?c[n++]=224|t>>>12:(c[n++]=240|t>>>18,c[n++]=128|t>>>12&63),c[n++]=128|t>>>6&63),c[n++]=128|63&t);return c}(e)},t.utf8decode=function(e){return f.nodebuffer?d.transformTo("nodebuffer",e).toString("utf-8"):function(e){var c,t,f,r,n=e.length,i=new Array(2*n);for(c=t=0;c<128)i[t++]=f;else if(4<(r=a[f]))i[t++]=65533,c+=r-1;else{for(f&=2===r?31:3===r?15:7;1<<6|63&e[c++],r--;1<65536?i[t++]=f:(f-=65536,i[t++]=55296|f>>10&1023,i[t++]=56320|1023&f)}return i.length!==t&&(i.subarray?i=i.subarray(0,t):i.length=t),d.applyFromCharCode(i)}(e=d.transformTo(f.uint8array?"uint8array":"array",e))},d.inherits(s,n),s.prototype.processChunk=function(e){var c=d.transformTo(f.uint8array?"uint8array":"array",e.data);if(this.leftOver&&this.leftOver.length){if(f.uint8array){var r=c;(c=new Uint8Array(r.length+this.leftOver.length)).set(this.leftOver,0),c.set(r,this.leftOver.length)}else c=this.leftOver.concat(c);this.leftOver=null}var n=function(e,c){var t;for((c=c||e.length)>e.length&&(c=e.length),t=c-1;0<=t&&128==(192&e[t]);)t--;return t<0||0===t?c:t+a[e[t]]>c?t:c}(c),i=c;n!==c.length&&(f.uint8array?(i=c.subarray(0,n),this.leftOver=c.subarray(n,c.length)):(i=c.slice(0,n),this.leftOver=c.slice(n,c.length))),this.push({data:t.utf8decode(i),meta:e.meta})},s.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:t.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},t.Utf8DecodeWorker=s,d.inherits(o,n),o.prototype.processChunk=function(e){this.push({data:t.utf8encode(e.data),meta:e.meta})},t.Utf8EncodeWorker=o},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(e,c,t){var d=e("./support"),f=e("./base64"),r=e("./nodejsUtils"),n=e("./external");function a(e){return e}function i(e,c){for(var t=0;t<0)throw new Error("Corrupted zip: missing "+Math.abs(d)+" bytes.")},prepareReader:function(e){this.reader=d(e)},load:function(e){this.prepareReader(e),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},c.exports=i},{"./reader/readerFor":22,"./signature":23,"./support":30,"./utils":32,"./zipEntry":34}],34:[function(e,c,t){var d=e("./reader/readerFor"),f=e("./utils"),r=e("./compressedObject"),n=e("./crc32"),a=e("./utf8"),i=e("./compressions"),s=e("./support");function o(e,c){this.options=e,this.loadOptions=c}o.prototype={isEncrypted:function(){return!(1&~this.bitFlag)},useUTF8:function(){return!(2048&~this.bitFlag)},readLocalPart:function(e){var c,t;if(e.skip(22),this.fileNameLength=e.readInt(2),t=e.readInt(2),this.fileName=e.readData(this.fileNameLength),e.skip(t),-1===this.compressedSize||-1===this.uncompressedSize)throw new Error("Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)");if(null===(c=function(e){for(var c in i)if(Object.prototype.hasOwnProperty.call(i,c)&&i[c].magic===e)return i[c];return null}(this.compressionMethod)))throw new Error("Corrupted zip : compression "+f.pretty(this.compressionMethod)+" unknown (inner file : "+f.transformTo("string",this.fileName)+")");this.decompressed=new r(this.compressedSize,this.uncompressedSize,this.crc32,c,e.readData(this.compressedSize))},readCentralPart:function(e){this.versionMadeBy=e.readInt(2),e.skip(2),this.bitFlag=e.readInt(2),this.compressionMethod=e.readString(2),this.date=e.readDate(),this.crc32=e.readInt(4),this.compressedSize=e.readInt(4),this.uncompressedSize=e.readInt(4);var c=e.readInt(2);if(this.extraFieldsLength=e.readInt(2),this.fileCommentLength=e.readInt(2),this.diskNumberStart=e.readInt(2),this.internalFileAttributes=e.readInt(2),this.externalFileAttributes=e.readInt(4),this.localHeaderOffset=e.readInt(4),this.isEncrypted())throw new Error("Encrypted zip are not supported");e.skip(c),this.readExtraFields(e),this.parseZIP64ExtraField(e),this.fileComment=e.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var e=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),0==e&&(this.dosPermissions=63&this.externalFileAttributes),3==e&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var e=d(this.extraFields[1].value);this.uncompressedSize===f.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===f.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===f.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===f.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(e){var c,t,d,f=e.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});e.index+4<65537&&(e.subarray&&r||!e.subarray&&f))return String.fromCharCode.apply(null,d.shrinkBuf(e,c));for(var t="",n=0;n>>6:(t<65536?c[n++]=224|t>>>12:(c[n++]=240|t>>>18,c[n++]=128|t>>>12&63),c[n++]=128|t>>>6&63),c[n++]=128|63&t);return c},t.buf2binstring=function(e){return i(e,e.length)},t.binstring2buf=function(e){for(var c=new d.Buf8(e.length),t=0,f=c.length;t<(r=n[f]))s[d++]=65533,t+=r-1;else{for(f&=2===r?31:3===r?15:7;1<<6|63&e[t++],r--;1<65536?s[d++]=f:(f-=65536,s[d++]=55296|f>>10&1023,s[d++]=56320|1023&f)}return i(s,d)},t.utf8border=function(e,c){var t;for((c=c||e.length)>e.length&&(c=e.length),t=c-1;0<=t&&128==(192&e[t]);)t--;return t<0||0===t?c:t+n[e[t]]>c?t:c}},{"./common":41}],43:[function(e,c,t){c.exports=function(e,c,t,d){for(var f=65535&e,r=e>>>16&65535,n=0;0!==t;){for(t-=n=2e3<<16}},{}],44:[function(e,c,t){c.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],45:[function(e,c,t){var d=function(){for(var e,c=[],t=0;t<256;t++){e=t;for(var d=0;d<8;d++)e=1&e?3988292384^e>>>1:e>>>1;c[t]=e}return c}();c.exports=function(e,c,t,f){var r=d,n=f+t;e^=-1;for(var a=f;a>>8^r[255&(e^c[a])];return-1^e}},{}],46:[function(e,c,t){var d,f=e("../utils/common"),r=e("./trees"),n=e("./adler32"),a=e("./crc32"),i=e("./messages"),s=0,o=4,u=0,l=-2,w=-1,h=4,A=2,b=8,p=9,E=286,B=30,H=19,m=573,g=15,y=3,x=258,T=262,R=42,v=113,M=1,k=2,S=3,_=4;function C(e,c){return e.msg=i[c],c}function P(e){return(e<<1)-(4e.avail_out&&(t=e.avail_out),0!==t&&(f.arraySet(e.output,c.pending_buf,c.pending_out,t,e.next_out),e.next_out+=t,c.pending_out+=t,e.total_out+=t,e.avail_out-=t,c.pending-=t,0===c.pending&&(c.pending_out=0))}function L(e,c){r._tr_flush_block(e,0<=e.block_start?e.block_start:-1,e.strstart-e.block_start,c),e.block_start=e.strstart,D(e.strm)}function I(e,c){e.pending_buf[e.pending++]=c}function U(e,c){e.pending_buf[e.pending++]=c>>>8&255,e.pending_buf[e.pending++]=255&c}function N(e,c){var t,d,f=e.max_chain_length,r=e.strstart,n=e.prev_length,a=e.nice_match,i=e.strstart>e.w_size-T?e.strstart-(e.w_size-T):0,s=e.window,o=e.w_mask,u=e.prev,l=e.strstart+x,w=s[r+n-1],h=s[r+n];e.prev_length>=e.good_match&&(f>>=2),a>e.lookahead&&(a=e.lookahead);do{if(s[(t=c)+n]===h&&s[t+n-1]===w&&s[t]===s[r]&&s[++t]===s[r+1]){r+=2,t++;do{}while(s[++r]===s[++t]&&s[++r]===s[++t]&&s[++r]===s[++t]&&s[++r]===s[++t]&&s[++r]===s[++t]&&s[++r]===s[++t]&&s[++r]===s[++t]&&s[++r]===s[++t]&&r<=(n=d))break;w=s[r+n-1],h=s[r+n]}}}while((c=u[c&o])>i&&0!=--f);return n<=e.lookahead?n:e.lookahead}function z(e){var c,t,d,r,i,s,o,u,l,w,h=e.w_size;do{if(r=e.window_size-e.lookahead-e.strstart,e.strstart>=h+(h-T)){for(f.arraySet(e.window,e.window,h,h,0),e.match_start-=h,e.strstart-=h,e.block_start-=h,c=t=e.hash_size;d=e.head[--c],e.head[c]=h<=d?d-h:0,--t;);for(c=t=h;d=e.prev[--c],e.prev[c]=h<=d?d-h:0,--t;);r+=h}if(0===e.strm.avail_in)break;if(s=e.strm,o=e.window,u=e.strstart+e.lookahead,w=void 0,(l=r)<(w=s.avail_in)&&(w=l),t=0===w?0:(s.avail_in-=w,f.arraySet(o,s.input,s.next_in,w,u),1===s.state.wrap?s.adler=n(s.adler,o,w,u):2===s.state.wrap&&(s.adler=a(s.adler,o,w,u)),s.next_in+=w,s.total_in+=w,w),e.lookahead+=t,e.lookahead+e.insert>=3)for(i=e.strstart-e.insert,e.ins_h=e.window[i],e.ins_h=(e.ins_h<<<3)););}while(e.lookahead=3&&(e.ins_h=(e.ins_h<<=e.w_size-T&&(e.match_length=N(e,t)),e.match_length>=3)if(d=r._tr_tally(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){for(e.match_length--;e.strstart++,e.ins_h=(e.ins_h<=3&&(e.ins_h=(e.ins_h<<=e.w_size-T&&(e.match_length=N(e,t),e.match_length<=5&&(1===e.strategy||3===e.match_length&&4096=3&&e.match_length<=e.prev_length){for(f=e.strstart+e.lookahead-3,d=r._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;++e.strstart<=f&&(e.ins_h=(e.ins_h<e.pending_buf_size-5&&(t=e.pending_buf_size-5);;){if(e.lookahead<=1){if(z(e),0===e.lookahead&&0===c)return 1;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var d=e.block_start+t;if((0===e.strstart||e.strstart>=d)&&(e.lookahead=e.strstart-d,e.strstart=d,L(e,!1),0===e.strm.avail_out))return 1;if(e.strstart-e.block_start>=e.w_size-T&&(L(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===c?(L(e,!0),0===e.strm.avail_out?3:4):(e.strstart>e.block_start&&(L(e,!1),e.strm.avail_out),1)}),new F(4,4,8,4,W),new F(4,5,16,8,W),new F(4,6,32,32,W),new F(4,4,16,16,X),new F(8,16,32,32,X),new F(8,16,128,128,X),new F(8,32,128,256,X),new F(32,128,258,1024,X),new F(32,258,258,4096,X)],t.deflateInit=function(e,c){return K(e,c,8,15,8,0)},t.deflateInit2=K,t.deflateReset=J,t.deflateResetKeep=$,t.deflateSetHeader=function(e,c){return e&&e.state?2!==e.state.wrap?l:(e.state.gzhead=c,0):l},t.deflate=function(e,c){var t,f,n,i;if(!e||!e.state||5<0)return e?C(e,l):l;if(f=e.state,!e.output||!e.input&&0!==e.avail_in||666===f.status&&4!==c)return C(e,0===e.avail_out?-5:l);if(f.strm=e,t=f.last_flush,f.last_flush=c,f.status===R)if(2===f.wrap)e.adler=0,I(f,31),I(f,139),I(f,8),f.gzhead?(I(f,(f.gzhead.text?1:0)+(f.gzhead.hcrc?2:0)+(f.gzhead.extra?4:0)+(f.gzhead.name?8:0)+(f.gzhead.comment?16:0)),I(f,255&f.gzhead.time),I(f,f.gzhead.time>>8&255),I(f,f.gzhead.time>>16&255),I(f,f.gzhead.time>>24&255),I(f,9===f.level?2:2<=f.strategy||f.level<2?4:0),I(f,255&f.gzhead.os),f.gzhead.extra&&f.gzhead.extra.length&&(I(f,255&f.gzhead.extra.length),I(f,f.gzhead.extra.length>>8&255)),f.gzhead.hcrc&&(e.adler=a(e.adler,f.pending_buf,f.pending,0)),f.gzindex=0,f.status=69):(I(f,0),I(f,0),I(f,0),I(f,0),I(f,0),I(f,9===f.level?2:2<=f.strategy||f.level<2?4:0),I(f,3),f.status=v);else{var s=8+(f.w_bits-8<<4)<<8;s|=(2<=f.strategy||f.level<2?0:f.level<6?1:6===f.level?2:3)<<6,0!==f.strstart&&(s|=32),s+=31-s%31,f.status=v,U(f,s),0!==f.strstart&&(U(f,e.adler>>>16),U(f,65535&e.adler)),e.adler=1}if(69===f.status)if(f.gzhead.extra){for(n=f.pending;f.gzindex<(65535&f.gzhead.extra.length)&&(f.pending!==f.pending_buf_size||(f.gzhead.hcrc&&f.pending>n&&(e.adler=a(e.adler,f.pending_buf,f.pending-n,n)),D(e),n=f.pending,f.pending!==f.pending_buf_size));)I(f,255&f.gzhead.extra[f.gzindex]),f.gzindex++;f.gzhead.hcrc&&f.pending>n&&(e.adler=a(e.adler,f.pending_buf,f.pending-n,n)),f.gzindex===f.gzhead.extra.length&&(f.gzindex=0,f.status=73)}else f.status=73;if(73===f.status)if(f.gzhead.name){n=f.pending;do{if(f.pending===f.pending_buf_size&&(f.gzhead.hcrc&&f.pending>n&&(e.adler=a(e.adler,f.pending_buf,f.pending-n,n)),D(e),n=f.pending,f.pending===f.pending_buf_size)){i=1;break}i=f.gzindexn&&(e.adler=a(e.adler,f.pending_buf,f.pending-n,n)),0===i&&(f.gzindex=0,f.status=91)}else f.status=91;if(91===f.status)if(f.gzhead.comment){n=f.pending;do{if(f.pending===f.pending_buf_size&&(f.gzhead.hcrc&&f.pending>n&&(e.adler=a(e.adler,f.pending_buf,f.pending-n,n)),D(e),n=f.pending,f.pending===f.pending_buf_size)){i=1;break}i=f.gzindexn&&(e.adler=a(e.adler,f.pending_buf,f.pending-n,n)),0===i&&(f.status=103)}else f.status=103;if(103===f.status&&(f.gzhead.hcrc?(f.pending+2>f.pending_buf_size&&D(e),f.pending+2<=f.pending_buf_size&&(I(f,255&e.adler),I(f,e.adler>>8&255),e.adler=0,f.status=v)):f.status=v),0!==f.pending){if(D(e),0===e.avail_out)return f.last_flush=-1,0}else if(0===e.avail_in&&P(c)<=P(t)&&4!==c)return C(e,-5);if(666===f.status&&0!==e.avail_in)return C(e,-5);if(0!==e.avail_in||0!==f.lookahead||0!==c&&666!==f.status){var o=2===f.strategy?function(e,c){for(var t;;){if(0===e.lookahead&&(z(e),0===e.lookahead)){if(0===c)return 1;break}if(e.match_length=0,t=r._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,t&&(L(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===c?(L(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(L(e,!1),0===e.strm.avail_out)?1:2}(f,c):3===f.strategy?function(e,c){for(var t,d,f,n,a=e.window;;){if(e.lookahead<=x){if(z(e),e.lookahead<=x&&0===c)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&0e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(t=r._tr_tally(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(t=r._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),t&&(L(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===c?(L(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(L(e,!1),0===e.strm.avail_out)?1:2}(f,c):d[f.level].func(f,c);if(3!==o&&4!==o||(f.status=666),1===o||3===o)return 0===e.avail_out&&(f.last_flush=-1),0;if(2===o&&(1===c?r._tr_align(f):5!==c&&(r._tr_stored_block(f,0,0,!1),3===c&&(O(f.head),0===f.lookahead&&(f.strstart=0,f.block_start=0,f.insert=0))),D(e),0===e.avail_out))return f.last_flush=-1,0}return 4!==c?0:f.wrap<=0?1:(2===f.wrap?(I(f,255&e.adler),I(f,e.adler>>8&255),I(f,e.adler>>16&255),I(f,e.adler>>24&255),I(f,255&e.total_in),I(f,e.total_in>>8&255),I(f,e.total_in>>16&255),I(f,e.total_in>>24&255)):(U(f,e.adler>>>16),U(f,65535&e.adler)),D(e),0=t.w_size&&(0===a&&(O(t.head),t.strstart=0,t.block_start=0,t.insert=0),u=new f.Buf8(t.w_size),f.arraySet(u,c,w-t.w_size,t.w_size,0),c=u,w=t.w_size),i=e.avail_in,s=e.next_in,o=e.input,e.avail_in=w,e.next_in=0,e.input=c,z(t);t.lookahead>=3;){for(d=t.strstart,r=t.lookahead-2;t.ins_h=(t.ins_h<>>=H=B>>>24,h-=H,0==(H=B>>>16&255))R[r++]=65535&B;else{if(!(16&H)){if(!(64&H)){B=A[(65535&B)+(w&(1<>>=H,h-=H),h<15&&(w+=T[d++]<<>>=H=B>>>24,h-=H,!(16&(H=B>>>16&255))){if(!(64&H)){B=b[(65535&B)+(w&(1<>>=H,h-=H,(H=r-n)<(H=g-H)&&t.sane){e.msg="invalid distance too far back",t.mode=30;break e}if(x=l,(y=0)===u){if(y+=s-H,H>3,w&=(1<<(h-=m<<3))-1,e.next_in=d,e.next_out=r,e.avail_in=d>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function b(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new d.Buf16(320),this.work=new d.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function p(e){var c;return e&&e.state?(c=e.state,e.total_in=e.total_out=c.total=0,e.msg="",c.wrap&&(e.adler=1&c.wrap),c.mode=1,c.last=0,c.havedict=0,c.dmax=32768,c.head=null,c.hold=0,c.bits=0,c.lencode=c.lendyn=new d.Buf32(w),c.distcode=c.distdyn=new d.Buf32(h),c.sane=1,c.back=-1,0):u}function E(e){var c;return e&&e.state?((c=e.state).wsize=0,c.whave=0,c.wnext=0,p(e)):u}function B(e,c){var t,d;return e&&e.state?(d=e.state,c<0?(t=0,c=-c):(t=1+(c>>4),c<48&&(c&=15)),c&&(c<8||15=n.wsize?(d.arraySet(n.window,c,t-n.wsize,n.wsize,0),n.wnext=0,n.whave=n.wsize):(f<(r=n.wsize-n.wnext)&&(r=f),d.arraySet(n.window,c,t-f,r,n.wnext),(f-=r)?(d.arraySet(n.window,c,t-f,f,0),n.wnext=f,n.whave=n.wsize):(n.wnext+=r,n.wnext===n.wsize&&(n.wnext=0),n.whave>>8&255,t.check=r(t.check,L,2,0),p=b=0,t.mode=2;break}if(t.flags=0,t.head&&(t.head.done=!1),!(1&t.wrap)||(((255&b)<<8)+(b>>8))%31){e.msg="incorrect header check",t.mode=30;break}if(8!=(15&b)){e.msg="unknown compression method",t.mode=30;break}if(p-=4,_=8+(15&(b>>>=4)),0===t.wbits)t.wbits=_;else if(_>t.wbits){e.msg="invalid window size",t.mode=30;break}t.dmax=1<<_,e.adler=t.check=1,t.mode=512&b?10:12,p=b=0;break;case 2:for(;p<16;){if(0===w)break e;w--,b+=i[o++]<>8&1),512&t.flags&&(L[0]=255&b,L[1]=b>>>8&255,t.check=r(t.check,L,2,0)),p=b=0,t.mode=3;case 3:for(;p<32;){if(0===w)break e;w--,b+=i[o++]<>>8&255,L[2]=b>>>16&255,L[3]=b>>>24&255,t.check=r(t.check,L,4,0)),p=b=0,t.mode=4;case 4:for(;p<16;){if(0===w)break e;w--,b+=i[o++]<>8),512&t.flags&&(L[0]=255&b,L[1]=b>>>8&255,t.check=r(t.check,L,2,0)),p=b=0,t.mode=5;case 5:if(1024&t.flags){for(;p<16;){if(0===w)break e;w--,b+=i[o++]<>>8&255,t.check=r(t.check,L,2,0)),p=b=0}else t.head&&(t.head.extra=null);t.mode=6;case 6:if(1024&t.flags&&(w<(H=t.length)&&(H=w),H&&(t.head&&(_=t.head.extra_len-t.length,t.head.extra||(t.head.extra=new Array(t.head.extra_len)),d.arraySet(t.head.extra,i,o,H,_)),512&t.flags&&(t.check=r(t.check,i,H,o)),w-=H,o+=H,t.length-=H),t.length))break e;t.length=0,t.mode=7;case 7:if(2048&t.flags){if(0===w)break e;for(H=0;_=i[o+H++],t.head&&_&&t.length<65536&&(t.head.name+=String.fromCharCode(_)),_&&H<16;){if(0===w)break e;w--,b+=i[o++]<>9&1,t.head.done=!0),e.adler=t.check=0,t.mode=12;break;case 10:for(;p<32;){if(0===w)break e;w--,b+=i[o++]<>>=7&p,p-=7&p,t.mode=27;break}for(;p<3;){if(0===w)break e;w--,b+=i[o++]<>>=1)){case 0:t.mode=14;break;case 1:if(x(t),t.mode=20,6!==c)break;b>>>=2,p-=2;break e;case 2:t.mode=17;break;case 3:e.msg="invalid block type",t.mode=30}b>>>=2,p-=2;break;case 14:for(b>>>=7&p,p-=7&p;p<32;){if(0===w)break e;w--,b+=i[o++]<>>16^65535)){e.msg="invalid stored block lengths",t.mode=30;break}if(t.length=65535&b,p=b=0,t.mode=15,6===c)break e;case 15:t.mode=16;case 16:if(H=t.length){if(w<14;){if(0===w)break e;w--,b+=i[o++]<>>=5,p-=5,t.ndist=1+(31&b),b>>>=5,p-=5,t.ncode=4+(15&b),b>>>=4,p-=4,286<3;){if(0===w)break e;w--,b+=i[o++]<>>=3,p-=3}for(;t.have<19;)t.lens[I[t.have++]]=0;if(t.lencode=t.lendyn,t.lenbits=7,P={bits:t.lenbits},C=a(0,t.lens,0,19,t.lencode,0,t.work,P),t.lenbits=P.bits,C){e.msg="invalid code lengths set",t.mode=30;break}t.have=0,t.mode=19;case 19:for(;t.have<>>16&255,v=65535&D,!((y=D>>>24)<=p);){if(0===w)break e;w--,b+=i[o++]<<16)b>>>=y,p-=y,t.lens[t.have++]=v;else{if(16===v){for(O=y+2;p>>=y,p-=y,0===t.have){e.msg="invalid bit length repeat",t.mode=30;break}_=t.lens[t.have-1],H=3+(3&b),b>>>=2,p-=2}else if(17===v){for(O=y+3;p>>=y)),b>>>=3,p-=3}else{for(O=y+7;p>>=y)),b>>>=7,p-=7}if(t.have+H>t.nlen+t.ndist){e.msg="invalid bit length repeat",t.mode=30;break}for(;H--;)t.lens[t.have++]=_}}if(30===t.mode)break;if(0===t.lens[256]){e.msg="invalid code -- missing end-of-block",t.mode=30;break}if(t.lenbits=9,P={bits:t.lenbits},C=a(1,t.lens,0,t.nlen,t.lencode,0,t.work,P),t.lenbits=P.bits,C){e.msg="invalid literal/lengths set",t.mode=30;break}if(t.distbits=6,t.distcode=t.distdyn,P={bits:t.distbits},C=a(2,t.lens,t.nlen,t.ndist,t.distcode,0,t.work,P),t.distbits=P.bits,C){e.msg="invalid distances set",t.mode=30;break}if(t.mode=20,6===c)break e;case 20:t.mode=21;case 21:if(6<=w&&258<=h){e.next_out=l,e.avail_out=h,e.next_in=o,e.avail_in=w,t.hold=b,t.bits=p,n(e,B),l=e.next_out,s=e.output,h=e.avail_out,o=e.next_in,i=e.input,w=e.avail_in,b=t.hold,p=t.bits,12===t.mode&&(t.back=-1);break}for(t.back=0;R=(D=t.lencode[b&(1<>>16&255,v=65535&D,!((y=D>>>24)<=p);){if(0===w)break e;w--,b+=i[o++]<<>M)])>>>16&255,v=65535&D,!(M+(y=D>>>24)<=p);){if(0===w)break e;w--,b+=i[o++]<>>=M,p-=M,t.back+=M}if(b>>>=y,p-=y,t.back+=y,t.length=v,0===R){t.mode=26;break}if(32&R){t.back=-1,t.mode=12;break}if(64&R){e.msg="invalid literal/length code",t.mode=30;break}t.extra=15&R,t.mode=22;case 22:if(t.extra){for(O=t.extra;p>>=t.extra,p-=t.extra,t.back+=t.extra}t.was=t.length,t.mode=23;case 23:for(;R=(D=t.distcode[b&(1<>>16&255,v=65535&D,!((y=D>>>24)<=p);){if(0===w)break e;w--,b+=i[o++]<<>M)])>>>16&255,v=65535&D,!(M+(y=D>>>24)<=p);){if(0===w)break e;w--,b+=i[o++]<>>=M,p-=M,t.back+=M}if(b>>>=y,p-=y,t.back+=y,64&R){e.msg="invalid distance code",t.mode=30;break}t.offset=v,t.extra=15&R,t.mode=24;case 24:if(t.extra){for(O=t.extra;p>>=t.extra,p-=t.extra,t.back+=t.extra}if(t.offset>t.dmax){e.msg="invalid distance too far back",t.mode=30;break}t.mode=25;case 25:if(0===h)break e;if(H=B-h,t.offset>H){if((H=t.offset-H)>t.whave&&t.sane){e.msg="invalid distance too far back",t.mode=30;break}m=H>t.wnext?(H-=t.wnext,t.wsize-H):t.wnext-H,H>t.length&&(H=t.length),g=t.window}else g=s,m=l-t.offset,H=t.length;for(h<32;){if(0===w)break e;w--,b|=i[o++]<<32;){if(0===w)break e;w--,b+=i[o++]<E?(H=I[U+u[x]],P[O+u[x]]):(H=96,0),w=1<<>k)+(h-=w)]=B<<24|H<<16|m,0!==h;);for(w=1<>=1;if(0!==w?(C&=w-1,C+=w):C=0,x++,0==--D[y]){if(y===R)break;y=c[t+u[x]]}if(v<<(M=y-k);M+k<=0);)M++,S<<=1;if(_+=1<<_||2===e&&592<_)return 1;s[A=C&b]=v<<24|M<<16|p-o}}return 0!==C&&(s[p+C]=y-k<<24|64<<16),l.bits=v,0}},{"../utils/common":41}],51:[function(e,c,t){c.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],52:[function(e,c,t){var d=e("../utils/common"),f=0,r=1;function n(e){for(var c=e.length;0<=--c;)e[c]=0}var a=0,i=29,s=256,o=286,u=30,l=19,w=573,h=15,A=16,b=7,p=256,E=16,B=17,H=18,m=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],g=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],y=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],x=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],T=new Array(576);n(T);var R=new Array(60);n(R);var v=new Array(512);n(v);var M=new Array(256);n(M);var k=new Array(i);n(k);var S,_,C,P=new Array(u);function O(e,c,t,d,f){this.static_tree=e,this.extra_bits=c,this.extra_base=t,this.elems=d,this.max_length=f,this.has_stree=e&&e.length}function D(e,c){this.dyn_tree=e,this.max_code=0,this.stat_desc=c}function L(e){return e<256?v[e]:v[256+(e>>>7)]}function I(e,c){e.pending_buf[e.pending++]=255&c,e.pending_buf[e.pending++]=c>>>8&255}function U(e,c,t){e.bi_valid>A-t?(e.bi_buf|=c<>A-e.bi_valid,e.bi_valid+=t-A):(e.bi_buf|=c<>>=1,t<<=1,0<--c;);return t>>>1}function W(e,c,t){var d,f,r=new Array(16),n=0;for(d=1;d<=h;d++)r[d]=n=n+t[d-1]<<1;for(f=0;f<=c;f++){var a=e[2*f+1];0!==a&&(e[2*f]=z(r[a]++,a))}}function X(e){var c;for(c=0;c<=d[t]}function $(e,c,t){for(var d=e.heap[t],f=t<<1;f<=e.heap_len&&(f<<=1;e.heap[t]=d}function J(e,c,t){var d,f,r,n,a=0;if(0!==e.last_lit)for(;d=e.pending_buf[e.d_buf+2*a]<<8|e.pending_buf[e.d_buf+2*a+1],f=e.pending_buf[e.l_buf+a],a++,0===d?N(e,f,c):(N(e,(r=M[f])+s+1,c),0!==(n=m[r])&&U(e,f-=k[r],n),N(e,r=L(--d),t),0!==(n=g[r])&&U(e,d-=P[r],n)),a>1;1<=t;t--)$(e,r,t);for(f=i;t=e.heap[1],e.heap[1]=e.heap[e.heap_len--],$(e,r,1),d=e.heap[1],e.heap[--e.heap_max]=t,e.heap[--e.heap_max]=d,r[2*f]=r[2*t]+r[2*d],e.depth[f]=(e.depth[t]>=e.depth[d]?e.depth[t]:e.depth[d])+1,r[2*t+1]=r[2*d+1]=f,e.heap[1]=f++,$(e,r,1),2<=e.heap_len;);e.heap[--e.heap_max]=e.heap[1],function(e,c){var t,d,f,r,n,a,i=c.dyn_tree,s=c.max_code,o=c.stat_desc.static_tree,u=c.stat_desc.has_stree,l=c.stat_desc.extra_bits,A=c.stat_desc.extra_base,b=c.stat_desc.max_length,p=0;for(r=0;r<=h;r++)e.bl_count[r]=0;for(i[2*e.heap[e.heap_max]+1]=0,t=e.heap_max+1;t<(r=i[2*i[2*(d=e.heap[t])+1]+1]+1)&&(r=b,p++),i[2*d+1]=r,s<=d&&(n=l[d-A]),a=i[2*d],e.opt_len+=a*(r+n),u&&(e.static_len+=a*(o[2*d+1]+n)));if(0!==p){do{for(r=b-1;0===e.bl_count[r];)r--;e.bl_count[r]--,e.bl_count[r+1]+=2,e.bl_count[b]--,p-=2}while(0<(f=e.heap[--t])||(i[2*f+1]!==r&&(e.opt_len+=(r-i[2*f+1])*i[2*f],i[2*f+1]=r),d--)}}(e,c),W(r,s,e.bl_count)}function V(e,c,t){var d,f,r=-1,n=c[1],a=0,i=7,s=4;for(0===n&&(i=138,s=3),c[2*(t+1)+1]=65535,d=0;d<=t;d++)f=n,n=c[2*(d+1)+1],++a<=10?e.bl_tree[34]++:e.bl_tree[36]++,r=f,s=(a=0)===n?(i=138,3):f===n?(i=6,3):(i=7,4))}function Z(e,c,t){var d,f,r=-1,n=c[1],a=0,i=7,s=4;for(0===n&&(i=138,s=3),d=0;d<=t;d++)if(f=n,n=c[2*(d+1)+1],!(++a>=7;d<<7,e=0;e<1<<=h;c++)r[c]=0;for(e=0;e<=143;)T[2*e+1]=8,e++,r[8]++;for(;e<=255;)T[2*e+1]=9,e++,r[9]++;for(;e<=279;)T[2*e+1]=7,e++,r[7]++;for(;e<=287;)T[2*e+1]=8,e++,r[8]++;for(W(T,287,r),e=0;e>>=1)if(1&t&&0!==e.dyn_ltree[2*c])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(c=32;c>>3,(r=e.static_len+3+7>>>3)<=f&&(f=r)):f=r=t+5,t+4<=f&&-1!==c?G(e,c,t,d):4===e.strategy||r===f?(U(e,2+(d?1:0),3),J(e,T,R)):(U(e,4+(d?1:0),3),function(e,c,t,d){var f;for(U(e,c-257,5),U(e,t-1,5),U(e,d-4,4),f=0;f>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&c,e.pending_buf[e.l_buf+e.last_lit]=255&t,e.last_lit++,0===c?e.dyn_ltree[2*t]++:(e.matches++,c--,e.dyn_ltree[2*(M[t]+s+1)]++,e.dyn_dtree[2*L(c)]++),e.last_lit===e.lit_bufsize-1},t._tr_align=function(e){var c;U(e,2,3),N(e,p,T),16===(c=e).bi_valid?(I(c,c.bi_buf),c.bi_buf=0,c.bi_valid=0):8<=c.bi_valid&&(c.pending_buf[c.pending++]=255&c.bi_buf,c.bi_buf>>=8,c.bi_valid-=8)}},{"../utils/common":41}],53:[function(e,c,t){c.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(e,c,t){(function(e){!function(e,c){if(!e.setImmediate){var t,d,f,r,n=1,a={},i=!1,s=e.document,o=Object.getPrototypeOf&&Object.getPrototypeOf(e);o=o&&o.setTimeout?o:e,t="[object process]"==={}.toString.call(e.process)?function(e){process.nextTick(function(){l(e)})}:function(){if(e.postMessage&&!e.importScripts){var c=!0,t=e.onmessage;return e.onmessage=function(){c=!1},e.postMessage("","*"),e.onmessage=t,c}}()?(r="setImmediate$"+Math.random()+"$",e.addEventListener?e.addEventListener("message",w,!1):e.attachEvent("onmessage",w),function(c){e.postMessage(r+c,"*")}):e.MessageChannel?((f=new MessageChannel).port1.onmessage=function(e){l(e.data)},function(e){f.port2.postMessage(e)}):s&&"onreadystatechange"in s.createElement("script")?(d=s.documentElement,function(e){var c=s.createElement("script");c.onreadystatechange=function(){l(e),c.onreadystatechange=null,d.removeChild(c),c=null},d.appendChild(c)}):function(e){setTimeout(l,0,e)},o.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var c=new Array(arguments.length-1),d=0;de+c,0),t=new Uint8Array(c);let d=0;for(const c of e)t.set(c,d),d+=c.length;return t}function ma(e){if(Uint8Array.prototype.toBase64)return e.toBase64();const c=32768,t=[];for(let d=0;d2){const c=t.pop();e+=`one of type ${t.join(", ")}, or ${c}.`}else 2===t.length?e+=`one of type ${t[0]} or ${t[1]}.`:e+=`of type ${t[0]}.`;return null==c?e+=` Received ${c}`:"function"==typeof c&&c.name?e+=` Received function ${c.name}`:"object"==typeof c&&null!=c&&c.constructor?.name&&(e+=` Received an instance of ${c.constructor.name}`),e}ua(Da,"code","ERR_JWS_SIGNATURE_VERIFICATION_FAILED");var Fa=(e,...c)=>Xa("Key must be ",e,...c);function ja(e,c,...t){return Xa(`Key for the ${e} algorithm must be `,c,...t)}function $a(e){return"CryptoKey"===e?.[Symbol.toStringTag]}function Ja(e){return"KeyObject"===e?.[Symbol.toStringTag]}var Ka=e=>$a(e)||Ja(e),Va=(...e)=>{const c=e.filter(Boolean);if(0===c.length||1===c.length)return!0;let t;for(const e of c){const c=Object.keys(e);if(t&&0!==t.size)for(const e of c){if(t.has(e))return!1;t.add(e)}else t=new Set(c)}return!0};function Za(e){return"object"==typeof e&&null!==e}var Ya=e=>{if(!Za(e)||"[object Object]"!==Object.prototype.toString.call(e))return!1;if(null===Object.getPrototypeOf(e))return!0;let c=e;for(;null!==Object.getPrototypeOf(c);)c=Object.getPrototypeOf(c);return Object.getPrototypeOf(e)===c},Ga=(e,c)=>{if(e.startsWith("RS")||e.startsWith("PS")){const{modulusLength:t}=c.algorithm;if("number"!=typeof t||t<2048)throw new TypeError(`${e} requires key modulusLength to be 2048 bits or larger`)}};function Qa(e){let c,t;switch(e.kty){case"AKP":switch(e.alg){case"ML-DSA-44":case"ML-DSA-65":case"ML-DSA-87":c={name:e.alg},t=e.priv?["sign"]:["verify"];break;default:throw new ka('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break;case"RSA":switch(e.alg){case"PS256":case"PS384":case"PS512":c={name:"RSA-PSS",hash:`SHA-${e.alg.slice(-3)}`},t=e.d?["sign"]:["verify"];break;case"RS256":case"RS384":case"RS512":c={name:"RSASSA-PKCS1-v1_5",hash:`SHA-${e.alg.slice(-3)}`},t=e.d?["sign"]:["verify"];break;case"RSA-OAEP":case"RSA-OAEP-256":case"RSA-OAEP-384":case"RSA-OAEP-512":c={name:"RSA-OAEP",hash:`SHA-${parseInt(e.alg.slice(-3),10)||1}`},t=e.d?["decrypt","unwrapKey"]:["encrypt","wrapKey"];break;default:throw new ka('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break;case"EC":switch(e.alg){case"ES256":c={name:"ECDSA",namedCurve:"P-256"},t=e.d?["sign"]:["verify"];break;case"ES384":c={name:"ECDSA",namedCurve:"P-384"},t=e.d?["sign"]:["verify"];break;case"ES512":c={name:"ECDSA",namedCurve:"P-521"},t=e.d?["sign"]:["verify"];break;case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":c={name:"ECDH",namedCurve:e.crv},t=e.d?["deriveBits"]:[];break;default:throw new ka('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break;case"OKP":switch(e.alg){case"Ed25519":case"EdDSA":c={name:"Ed25519"},t=e.d?["sign"]:["verify"];break;case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":c={name:e.crv},t=e.d?["deriveBits"]:[];break;default:throw new ka('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break;default:throw new ka('Invalid or unsupported JWK "kty" (Key Type) Parameter value')}return{algorithm:c,keyUsages:t}}var qa=async e=>{if(!e.alg)throw new TypeError('"alg" argument is required when "jwk.alg" is not present');const{algorithm:c,keyUsages:t}=Qa(e),d={...e};return"AKP"!==d.kty&&delete d.alg,delete d.use,crypto.subtle.importKey("jwk",d,c,e.ext??(!e.d&&!e.priv),e.key_ops??t)},ei=(e,c,t,d,f)=>{if(void 0!==f.crit&&void 0===d?.crit)throw new e('"crit" (Critical) Header Parameter MUST be integrity protected');if(!d||void 0===d.crit)return new Set;if(!Array.isArray(d.crit)||0===d.crit.length||d.crit.some(e=>"string"!=typeof e||0===e.length))throw new e('"crit" (Critical) Header Parameter MUST be an array of non-empty strings when present');let r;r=void 0!==t?new Map([...Object.entries(t),...c.entries()]):c;for(const c of d.crit){if(!r.has(c))throw new ka(`Extension Header Parameter "${c}" is not recognized`);if(void 0===f[c])throw new e(`Extension Header Parameter "${c}" is missing`);if(r.get(c)&&void 0===d[c])throw new e(`Extension Header Parameter "${c}" MUST be integrity protected`)}return new Set(d.crit)},ci=(e,c)=>{if(void 0!==c&&(!Array.isArray(c)||c.some(e=>"string"!=typeof e)))throw new TypeError(`"${e}" option must be an array of strings`);if(c)return new Set(c)},ti;function di(e){return Ya(e)&&"string"==typeof e.kty}function fi(e){return"oct"!==e.kty&&("AKP"===e.kty&&"string"==typeof e.priv||"string"==typeof e.d)}function ri(e){return"oct"!==e.kty&&void 0===e.d&&void 0===e.priv}function ni(e){return"oct"===e.kty&&"string"==typeof e.k}var ai=async(e,c,t,d=!1)=>{ti||(ti=new WeakMap);let f=ti.get(e);if(f?.[t])return f[t];const r=await qa({...c,alg:t});return d&&Object.freeze(e),f?f[t]=r:ti.set(e,{[t]:r}),r},ii=(e,c)=>{ti||(ti=new WeakMap);let t=ti.get(e);if(t?.[c])return t[c];const d="public"===e.type,f=!!d;let r;if("x25519"===e.asymmetricKeyType){switch(c){case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":break;default:throw new TypeError("given KeyObject instance cannot be used for this algorithm")}r=e.toCryptoKey(e.asymmetricKeyType,f,d?[]:["deriveBits"])}if("ed25519"===e.asymmetricKeyType){if("EdDSA"!==c&&"Ed25519"!==c)throw new TypeError("given KeyObject instance cannot be used for this algorithm");r=e.toCryptoKey(e.asymmetricKeyType,f,[d?"verify":"sign"])}switch(e.asymmetricKeyType){case"ml-dsa-44":case"ml-dsa-65":case"ml-dsa-87":if(c!==e.asymmetricKeyType.toUpperCase())throw new TypeError("given KeyObject instance cannot be used for this algorithm");r=e.toCryptoKey(e.asymmetricKeyType,f,[d?"verify":"sign"])}if("rsa"===e.asymmetricKeyType){let t;switch(c){case"RSA-OAEP":t="SHA-1";break;case"RS256":case"PS256":case"RSA-OAEP-256":t="SHA-256";break;case"RS384":case"PS384":case"RSA-OAEP-384":t="SHA-384";break;case"RS512":case"PS512":case"RSA-OAEP-512":t="SHA-512";break;default:throw new TypeError("given KeyObject instance cannot be used for this algorithm")}if(c.startsWith("RSA-OAEP"))return e.toCryptoKey({name:"RSA-OAEP",hash:t},f,d?["encrypt"]:["decrypt"]);r=e.toCryptoKey({name:c.startsWith("PS")?"RSA-PSS":"RSASSA-PKCS1-v1_5",hash:t},f,[d?"verify":"sign"])}if("ec"===e.asymmetricKeyType){const t=undefined,n=new Map([["prime256v1","P-256"],["secp384r1","P-384"],["secp521r1","P-521"]]).get(e.asymmetricKeyDetails?.namedCurve);if(!n)throw new TypeError("given KeyObject instance cannot be used for this algorithm");"ES256"===c&&"P-256"===n&&(r=e.toCryptoKey({name:"ECDSA",namedCurve:n},f,[d?"verify":"sign"])),"ES384"===c&&"P-384"===n&&(r=e.toCryptoKey({name:"ECDSA",namedCurve:n},f,[d?"verify":"sign"])),"ES512"===c&&"P-521"===n&&(r=e.toCryptoKey({name:"ECDSA",namedCurve:n},f,[d?"verify":"sign"])),c.startsWith("ECDH-ES")&&(r=e.toCryptoKey({name:"ECDH",namedCurve:n},f,d?[]:["deriveBits"]))}if(!r)throw new TypeError("given KeyObject instance cannot be used for this algorithm");return t?t[c]=r:ti.set(e,{[c]:r}),r},si=async(e,c)=>{if(e instanceof Uint8Array)return e;if($a(e))return e;if(Ja(e)){if("secret"===e.type)return e.export();if("toCryptoKey"in e&&"function"==typeof e.toCryptoKey)try{return ii(e,c)}catch(e){if(e instanceof TypeError)throw e}let t=e.export({format:"jwk"});return ai(e,t,c)}if(di(e))return e.k?ya(e.k):ai(e,e,c,!0);throw new Error("unreachable")},oi=e=>e?.[Symbol.toStringTag],ui=(e,c,t)=>{if(void 0!==c.use){let e;switch(t){case"sign":case"verify":e="sig";break;case"encrypt":case"decrypt":e="enc";break}if(c.use!==e)throw new TypeError(`Invalid key for this operation, its "use" must be "${e}" when present`)}if(void 0!==c.alg&&c.alg!==e)throw new TypeError(`Invalid key for this operation, its "alg" must be "${e}" when present`);if(Array.isArray(c.key_ops)){let d;switch(!0){case"sign"===t||"verify"===t:case"dir"===e:case e.includes("CBC-HS"):d=t;break;case e.startsWith("PBES2"):d="deriveBits";break;case/^A\d{3}(?:GCM)?(?:KW)?$/.test(e):d=!e.includes("GCM")&&e.endsWith("KW")?"encrypt"===t?"wrapKey":"unwrapKey":t;break;case"encrypt"===t&&e.startsWith("RSA"):d="wrapKey";break;case"decrypt"===t:d=e.startsWith("RSA")?"unwrapKey":"deriveBits";break}if(d&&!1===c.key_ops?.includes?.(d))throw new TypeError(`Invalid key for this operation, its "key_ops" must include "${d}" when present`)}return!0},li=(e,c,t)=>{if(!(c instanceof Uint8Array)){if(di(c)){if(ni(c)&&ui(e,c,t))return;throw new TypeError('JSON Web Key for symmetric algorithms must have JWK "kty" (Key Type) equal to "oct" and the JWK "k" (Key Value) present')}if(!Ka(c))throw new TypeError(ja(e,c,"CryptoKey","KeyObject","JSON Web Key","Uint8Array"));if("secret"!==c.type)throw new TypeError(`${oi(c)} instances for symmetric algorithms must be of type "secret"`)}},wi=(e,c,t)=>{if(di(c))switch(t){case"decrypt":case"sign":if(fi(c)&&ui(e,c,t))return;throw new TypeError("JSON Web Key for this operation be a private JWK");case"encrypt":case"verify":if(ri(c)&&ui(e,c,t))return;throw new TypeError("JSON Web Key for this operation be a public JWK")}if(!Ka(c))throw new TypeError(ja(e,c,"CryptoKey","KeyObject","JSON Web Key"));if("secret"===c.type)throw new TypeError(`${oi(c)} instances for asymmetric algorithms must not be of type "secret"`);if("public"===c.type)switch(t){case"sign":throw new TypeError(`${oi(c)} instances for asymmetric algorithm signing must be of type "private"`);case"decrypt":throw new TypeError(`${oi(c)} instances for asymmetric algorithm decryption must be of type "private"`);default:break}if("private"===c.type)switch(t){case"verify":throw new TypeError(`${oi(c)} instances for asymmetric algorithm verifying must be of type "public"`);case"encrypt":throw new TypeError(`${oi(c)} instances for asymmetric algorithm encryption must be of type "public"`);default:break}},hi=(e,c,t)=>{const d=undefined;e.startsWith("HS")||"dir"===e||e.startsWith("PBES2")||/^A(?:128|192|256)(?:GCM)?(?:KW)?$/.test(e)||/^A(?:128|192|256)CBC-HS(?:256|384|512)$/.test(e)?li(e,c,t):wi(e,c,t)},Ai=(e,c)=>{const t=`SHA-${e.slice(-3)}`;switch(e){case"HS256":case"HS384":case"HS512":return{hash:t,name:"HMAC"};case"PS256":case"PS384":case"PS512":return{hash:t,name:"RSA-PSS",saltLength:parseInt(e.slice(-3),10)>>3};case"RS256":case"RS384":case"RS512":return{hash:t,name:"RSASSA-PKCS1-v1_5"};case"ES256":case"ES384":case"ES512":return{hash:t,name:"ECDSA",namedCurve:c.namedCurve};case"Ed25519":case"EdDSA":return{name:"Ed25519"};case"ML-DSA-44":case"ML-DSA-65":case"ML-DSA-87":return{name:e};default:throw new ka(`alg ${e} is not supported either by JOSE or your javascript runtime`)}},bi=async(e,c,t)=>{if(c instanceof Uint8Array){if(!e.startsWith("HS"))throw new TypeError(Fa(c,"CryptoKey","KeyObject","JSON Web Key"));return crypto.subtle.importKey("raw",c,{hash:`SHA-${e.slice(-3)}`,name:"HMAC"},!1,[t])}return Wa(c,e,t),c},pi=async(e,c,t,d)=>{const f=await bi(e,c,"verify");Ga(e,f);const r=Ai(e,f.algorithm);try{return await crypto.subtle.verify(r,f,t,d)}catch{return!1}};async function Ei(e,c,t){if(!Ya(e))throw new Sa("Flattened JWS must be an object");if(void 0===e.protected&&void 0===e.header)throw new Sa('Flattened JWS must have either of the "protected" or "header" members');if(void 0!==e.protected&&"string"!=typeof e.protected)throw new Sa("JWS Protected Header incorrect type");if(void 0===e.payload)throw new Sa("JWS Payload missing");if("string"!=typeof e.signature)throw new Sa("JWS Signature missing or incorrect type");if(void 0!==e.header&&!Ya(e.header))throw new Sa("JWS Unprotected Header incorrect type");let d={};if(e.protected)try{const c=ya(e.protected);d=JSON.parse(Ea.decode(c))}catch{throw new Sa("JWS Protected Header is invalid")}if(!Va(d,e.header))throw new Sa("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");const f={...d,...e.header},r=undefined;let n=!0;if(ei(Sa,new Map([["b64",!0]]),t?.crit,d,f).has("b64")&&(n=d.b64,"boolean"!=typeof n))throw new Sa('The "b64" (base64url-encode payload) Header Parameter must be a boolean');const{alg:a}=f;if("string"!=typeof a||!a)throw new Sa('JWS "alg" (Algorithm) Header Parameter missing or invalid');const i=t&&ci("algorithms",t.algorithms);if(i&&!i.has(a))throw new Ma('"alg" (Algorithm) Header Parameter value not allowed');if(n){if("string"!=typeof e.payload)throw new Sa("JWS Payload must be a string")}else if("string"!=typeof e.payload&&!(e.payload instanceof Uint8Array))throw new Sa("JWS Payload must be a string or an Uint8Array instance");let s=!1;"function"==typeof c&&(c=await c(d,e),s=!0),hi(a,c,"verify");const o=Ha(pa.encode(e.protected??""),pa.encode("."),"string"==typeof e.payload?pa.encode(e.payload):e.payload);let u;try{u=ya(e.signature)}catch{throw new Sa("Failed to base64url decode the signature")}const l=await si(c,a),w=undefined;if(!await pi(a,l,u,o))throw new Da;let h;if(n)try{h=ya(e.payload)}catch{throw new Sa("Failed to base64url decode the payload")}else h="string"==typeof e.payload?pa.encode(e.payload):e.payload;const A={payload:h};return void 0!==e.protected&&(A.protectedHeader=d),void 0!==e.header&&(A.unprotectedHeader=e.header),s?{...A,key:l}:A}async function Bi(e,c,t){if(e instanceof Uint8Array&&(e=Ea.decode(e)),"string"!=typeof e)throw new Sa("Compact JWS must be a string or Uint8Array");const{0:d,1:f,2:r,length:n}=e.split(".");if(3!==n)throw new Sa("Invalid Compact JWS");const a=await Ei({payload:f,protected:d,signature:r},c,t),i={payload:a.payload,protectedHeader:a.protectedHeader};return"function"==typeof c?{...i,key:a.key}:i}var Hi=e=>Math.floor(e.getTime()/1e3),mi=60,gi=3600,yi=86400,xi=7*yi,Ti=31557600,Ri=/^(\+|\-)? ?(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i,vi=e=>{const c=Ri.exec(e);if(!c||c[4]&&c[1])throw new TypeError("Invalid time period format");const t=parseFloat(c[2]),d=undefined;let f;switch(c[3].toLowerCase()){case"sec":case"secs":case"second":case"seconds":case"s":f=Math.round(t);break;case"minute":case"minutes":case"min":case"mins":case"m":f=Math.round(t*mi);break;case"hour":case"hours":case"hr":case"hrs":case"h":f=Math.round(t*gi);break;case"day":case"days":case"d":f=Math.round(t*yi);break;case"week":case"weeks":case"w":f=Math.round(t*xi);break;default:f=Math.round(t*Ti);break}return"-"===c[1]||"ago"===c[4]?-f:f};function Mi(e,c){if(!Number.isFinite(c))throw new TypeError(`Invalid ${e} input`);return c}var ki=e=>e.includes("/")?e.toLowerCase():`application/${e.toLowerCase()}`,Si=(e,c)=>"string"==typeof e?c.includes(e):!!Array.isArray(e)&&c.some(Set.prototype.has.bind(new Set(e))),_i;function Ci(e,c,t={}){let d;try{d=JSON.parse(Ea.decode(c))}catch{}if(!Ya(d))throw new _a("JWT Claims Set must be a top-level JSON object");const{typ:f}=t;if(f&&("string"!=typeof e.typ||ki(e.typ)!==ki(f)))throw new Ra('unexpected "typ" JWT header value',d,"typ","check_failed");const{requiredClaims:r=[],issuer:n,subject:a,audience:i,maxTokenAge:s}=t,o=[...r];void 0!==s&&o.push("iat"),void 0!==i&&o.push("aud"),void 0!==a&&o.push("sub"),void 0!==n&&o.push("iss");for(const e of new Set(o.reverse()))if(!(e in d))throw new Ra(`missing required "${e}" claim`,d,e,"missing");if(n&&!(Array.isArray(n)?n:[n]).includes(d.iss))throw new Ra('unexpected "iss" claim value',d,"iss","check_failed");if(a&&d.sub!==a)throw new Ra('unexpected "sub" claim value',d,"sub","check_failed");if(i&&!Si(d.aud,"string"==typeof i?[i]:i))throw new Ra('unexpected "aud" claim value',d,"aud","check_failed");let u;switch(typeof t.clockTolerance){case"string":u=vi(t.clockTolerance);break;case"number":u=t.clockTolerance;break;case"undefined":u=0;break;default:throw new TypeError("Invalid clockTolerance option type")}const{currentDate:l}=t,w=Hi(l||new Date);if((void 0!==d.iat||s)&&"number"!=typeof d.iat)throw new Ra('"iat" claim must be a number',d,"iat","invalid");if(void 0!==d.nbf){if("number"!=typeof d.nbf)throw new Ra('"nbf" claim must be a number',d,"nbf","invalid");if(d.nbf>w+u)throw new Ra('"nbf" claim timestamp check failed',d,"nbf","check_failed")}if(void 0!==d.exp){if("number"!=typeof d.exp)throw new Ra('"exp" claim must be a number',d,"exp","invalid");if(d.exp<=w-u)throw new va('"exp" claim timestamp check failed',d,"exp","check_failed")}if(s){const e=w-d.iat,c=undefined;if(e-u>("number"==typeof s?s:vi(s)))throw new va('"iat" claim timestamp check failed (too far in the past)',d,"iat","check_failed");if(e<0-u)throw new Ra('"iat" claim timestamp check failed (it should be in the past)',d,"iat","check_failed")}return d}var Pi=class{constructor(e){if(ha(this,_i),!Ya(e))throw new TypeError("JWT Claims Set MUST be an object");Aa(this,_i,structuredClone(e))}data(){return pa.encode(JSON.stringify(wa(this,_i)))}get iss(){return wa(this,_i).iss}set iss(e){wa(this,_i).iss=e}get sub(){return wa(this,_i).sub}set sub(e){wa(this,_i).sub=e}get aud(){return wa(this,_i).aud}set aud(e){wa(this,_i).aud=e}set jti(e){wa(this,_i).jti=e}set nbf(e){"number"==typeof e?wa(this,_i).nbf=Mi("setNotBefore",e):e instanceof Date?wa(this,_i).nbf=Mi("setNotBefore",Hi(e)):wa(this,_i).nbf=Hi(new Date)+vi(e)}set exp(e){"number"==typeof e?wa(this,_i).exp=Mi("setExpirationTime",e):e instanceof Date?wa(this,_i).exp=Mi("setExpirationTime",Hi(e)):wa(this,_i).exp=Hi(new Date)+vi(e)}set iat(e){void 0===e?wa(this,_i).iat=Hi(new Date):e instanceof Date?wa(this,_i).iat=Mi("setIssuedAt",Hi(e)):wa(this,_i).iat=Mi("setIssuedAt","string"==typeof e?Hi(new Date)+vi(e):e)}};async function Oi(e,c,t){const d=await Bi(e,c,t);if(d.protectedHeader.crit?.includes("b64")&&!1===d.protectedHeader.b64)throw new _a("JWTs MUST NOT use unencoded payload");const f=undefined,r={payload:Ci(d.protectedHeader,d.payload,t),protectedHeader:d.protectedHeader};return"function"==typeof c?{...r,key:d.key}:r}_i=new WeakMap;var Di=async(e,c,t)=>{const d=await bi(e,c,"sign");Ga(e,d);const f=await crypto.subtle.sign(Ai(e,d.algorithm),d,t);return new Uint8Array(f)},Li,Ii,Ui,Ni=class{constructor(e){if(ha(this,Li),ha(this,Ii),ha(this,Ui),!(e instanceof Uint8Array))throw new TypeError("payload must be an instance of Uint8Array");Aa(this,Li,e)}setProtectedHeader(e){if(wa(this,Ii))throw new TypeError("setProtectedHeader can only be called once");return Aa(this,Ii,e),this}setUnprotectedHeader(e){if(wa(this,Ui))throw new TypeError("setUnprotectedHeader can only be called once");return Aa(this,Ui,e),this}async sign(e,c){if(!wa(this,Ii)&&!wa(this,Ui))throw new Sa("either setProtectedHeader or setUnprotectedHeader must be called before #sign()");if(!Va(wa(this,Ii),wa(this,Ui)))throw new Sa("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");const t={...wa(this,Ii),...wa(this,Ui)},d=undefined;let f=!0;if(ei(Sa,new Map([["b64",!0]]),c?.crit,wa(this,Ii),t).has("b64")&&(f=wa(this,Ii).b64,"boolean"!=typeof f))throw new Sa('The "b64" (base64url-encode payload) Header Parameter must be a boolean');const{alg:r}=t;if("string"!=typeof r||!r)throw new Sa('JWS "alg" (Algorithm) Header Parameter missing or invalid');hi(r,e,"sign");let n=wa(this,Li),a;f&&(n=pa.encode(xa(n))),a=wa(this,Ii)?pa.encode(xa(JSON.stringify(wa(this,Ii)))):pa.encode("");const i=Ha(a,pa.encode("."),n),s=await si(e,r),o=undefined,u={signature:xa(await Di(r,s,i)),payload:""};return f&&(u.payload=Ea.decode(n)),wa(this,Ui)&&(u.header=wa(this,Ui)),wa(this,Ii)&&(u.protected=Ea.decode(a)),u}},zi;Li=new WeakMap,Ii=new WeakMap,Ui=new WeakMap;var Wi=class{constructor(e){ha(this,zi),Aa(this,zi,new Ni(e))}setProtectedHeader(e){return wa(this,zi).setProtectedHeader(e),this}async sign(e,c){const t=await wa(this,zi).sign(e,c);if(void 0===t.payload)throw new TypeError("use the flattened module for creating JWS with b64: false");return`${t.protected}.${t.payload}.${t.signature}`}},Xi,Fi;zi=new WeakMap;var ji=class{constructor(e={}){ha(this,Xi),ha(this,Fi),Aa(this,Fi,new Pi(e))}setIssuer(e){return wa(this,Fi).iss=e,this}setSubject(e){return wa(this,Fi).sub=e,this}setAudience(e){return wa(this,Fi).aud=e,this}setJti(e){return wa(this,Fi).jti=e,this}setNotBefore(e){return wa(this,Fi).nbf=e,this}setExpirationTime(e){return wa(this,Fi).exp=e,this}setIssuedAt(e){return wa(this,Fi).iat=e,this}setProtectedHeader(e){return Aa(this,Xi,e),this}async sign(e,c){const t=new Wi(wa(this,Fi).data());if(t.setProtectedHeader(wa(this,Xi)),Array.isArray(wa(this,Xi)?.crit)&&wa(this,Xi).crit.includes("b64")&&!1===wa(this,Xi).b64)throw new _a("JWTs MUST NOT use unencoded payload");return t.sign(e,c)}};async function $i(e,c){if("POST"!==e.method)return await Do(!1,405,"Method not allowed.");const t=undefined,d=undefined;if(await e.text()!==await c.kv.get("pwd"))return await Do(!1,401,"Wrong password.");let f=await c.kv.get("secretKey");f||(f=Ji(),await c.kv.put("secretKey",f));const r=(new TextEncoder).encode(f),n=await new ji({userID:Uo.userID}).setProtectedHeader({alg:"HS256"}).setIssuedAt().setExpirationTime("24h").sign(r);return await Do(!0,200,"Successfully generated Auth token",null,{"Set-Cookie":`jwtToken=${n}; HttpOnly; Secure; Max-Age=604800; Path=/; SameSite=Strict`,"Content-Type":"text/plain"})}function Ji(){const e=new Uint8Array(32);return crypto.getRandomValues(e),Array.from(e,e=>e.toString(16).padStart(2,"0")).join("")}async function Ki(e,c){try{const t=await c.kv.get("secretKey"),d=(new TextEncoder).encode(t),f=e.headers.get("Cookie")?.match(/(^|;\s*)jwtToken=([^;]*)/),r=f?f[2]:null;if(!r)return console.log("Unauthorized: Token not available!"),!1;const{payload:n}=await Oi(r,d);return console.log(`Successfully authenticated, User ID: ${n.userID}`),!0}catch(e){return console.log(e),!1}}async function Vi(){return await Do(!0,200,"Successfully logged out!",null,{"Set-Cookie":"jwtToken=; Secure; SameSite=None; Expires=Thu, 01 Jan 1970 00:00:00 GMT","Content-Type":"text/plain"})}async function Zi(e,c){let t=await Ki(e,c);const d=await c.kv.get("pwd");if(d&&!t)return await Do(!1,401,"Unauthorized.");const f=await e.text();return f===d?await Do(!1,400,"Please enter a new Password."):(await c.kv.put("pwd",f),await Do(!0,200,"Successfully logged in!",null,{"Set-Cookie":"jwtToken=; Path=/; Secure; SameSite=None; Expires=Thu, 01 Jan 1970 00:00:00 GMT","Content-Type":"text/plain"}))}function Yi(e){if(!e)return!1;const c=undefined;return/^(?!-)(?:[A-Za-z0-9-]{1,63}.)+[A-Za-z]{2,}$/.test(e)}async function Gi(e,c=!1){const t=`${Uo.dohURL}?name=${encodeURIComponent(e)}`,d={ipv4:`${t}&type=A`,ipv6:`${t}&type=AAAA`};try{const e=await Qi(d.ipv4,1),t=undefined;return{ipv4:e,ipv6:c?[]:await Qi(d.ipv6,28)}}catch(c){throw new Error(`Error resolving DNS for ${e}: ${c.message}`)}}async function Qi(e,c){try{const t=await fetch(e,{headers:{accept:"application/dns-json"}}),d=await t.json();return d.Answer?d.Answer.filter(e=>e.type===c).map(e=>e.data):[]}catch(c){throw new Error(`Failed to fetch DNS records from ${e}: ${c.message}`)}}async function qi(e){const c=await Gi(No.hostName,!Eo.VLTRenableIPv6),t=[No.hostName,"www.speedtest.net",...c.ipv4,...c.ipv6.map(e=>`[${e}]`),...Eo.cleanIPs];return e?t:[...t,...Eo.customCdnAddrs]}function es(e,c){const t=c?1:0,d=e[t].account.config;return{warpIPv6:`${d.interface.addresses.v6}/128`,reserved:d.client_id,publicKey:d.peers[0].public_key,privateKey:e[t].privateKey}}function cs(e,c,t,d,f,r){let n;const a=r?"🔗 ":"",i=f?` ${f}`:"";return n=Eo.cleanIPs.includes(t)?"Clean IP":Yi(t)?"Domain":ns(t)?"IPv4":as(t)?"IPv6":"",`💦 ${e} - ${a}${d}${i} - ${n} : ${c}`}function ts(e){let c="";for(let t=0;t<.5?e[t].toUpperCase():e[t];return c}function ds(e,c){let t="";const d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",f=62,r=Math.floor(Math.random()*(c-e+1))+e;for(let e=0;ee.charCodeAt(0).toString(16).padStart(2,"0")).join("").match(/.{2}/g).map(e=>parseInt(e,16))}function ns(e){const c=undefined;return/^(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(?:\/([0-9]|[1-2][0-9]|3[0-2]))?$/.test(e)}function as(e){const c=undefined;return/^\[(?:(?:[a-fA-F0-9]{1,4}:){7}[a-fA-F0-9]{1,4}|(?:[a-fA-F0-9]{1,4}:){1,7}:|::(?:[a-fA-F0-9]{1,4}:){0,7}|(?:[a-fA-F0-9]{1,4}:){1,6}:[a-fA-F0-9]{1,4}|(?:[a-fA-F0-9]{1,4}:){1,5}(?::[a-fA-F0-9]{1,4}){1,2}|(?:[a-fA-F0-9]{1,4}:){1,4}(?::[a-fA-F0-9]{1,4}){1,3}|(?:[a-fA-F0-9]{1,4}:){1,3}(?::[a-fA-F0-9]{1,4}){1,4}|(?:[a-fA-F0-9]{1,4}:){1,2}(?::[a-fA-F0-9]{1,4}){1,5}|[a-fA-F0-9]{1,4}:(?::[a-fA-F0-9]{1,4}){1,6})\](?:\/(1[0-1][0-9]|12[0-8]|[0-9]?[0-9]))?$/.test(e)}function is(e){try{const c=undefined,t=new URL(e).hostname,d=undefined;return{host:t,isHostDomain:Yi(t)}}catch{return{host:null,isHostDomain:!1}}}function ss(e,c){const t=/^(?:\[(?.+?)\]|(?[^:]+))(:(?\d+))?$/,d=e.match(t);if(!d)return null;let f=d.groups.ipv6;c&&f&&(f=`[${f}]`);const r=undefined,n=undefined;return{host:f||d.groups.host,port:d.groups.port?parseInt(d.groups.port,10):null}}function os(e){return No.defaultHttpsPorts.includes(e)}async function us(e,c){try{return c()}catch(c){console.log("An error occured while parsing chain proxy: ",c);const t=await e.kv.get("proxySettings",{type:"json"});return void await e.kv.put("proxySettings",JSON.stringify({...t,outProxy:"",outProxyParams:{}}))}}async function ls(e){const c=[],t="https://api.cloudflareclient.com/v0a4005/reg",d=[await ws(),await ws()],f={install_id:"",fcm_token:"",tos:(new Date).toISOString(),type:"Android",model:"PC",locale:"en_US",warp_enabled:!0},r=async e=>{try{const c=await fetch(t,{method:"POST",headers:{"User-Agent":"insomnia/8.6.1","Content-Type":"application/json"},body:JSON.stringify({...f,key:e.publicKey})});return await c.json()}catch(e){throw new Error("Failed to get warp configs.",e)}};for(const e of d){const t=await r(e);c.push({privateKey:e.privateKey,account:t})}const n=JSON.stringify(c);return await e.kv.put("warpConfigs",n),n}async function ws(){const e=await crypto.subtle.generateKey({name:"X25519",namedCurve:"X25519"},!0,["deriveBits"]),c=await crypto.subtle.exportKey("pkcs8",e.privateKey),t=new Uint8Array(c).slice(-32),d=undefined,f=e=>btoa(String.fromCharCode(...e));return{publicKey:f(new Uint8Array(await crypto.subtle.exportKey("raw",e.publicKey))),privateKey:f(t)}}async function hs(e,c){let t,d;try{if(t=await c.kv.get("proxySettings",{type:"json"}),d=await c.kv.get("warpConfigs",{type:"json"}),!t){t=await As(e,c);const f=undefined;d=await ls(c)}return No.panelVersion!==t.panelVersion&&(t=await As(e,c)),{settings:t,warpConfigs:d}}catch(e){throw console.log(e),new Error(`An error occurred while getting KV - ${e.message}`)}}async function As(e,c){let t="POST"===e.method?await e.json():null;const d=t?.resetSettings;let f;if(!d)try{f=await c.kv.get("proxySettings",{type:"json"})}catch(e){throw console.log(e),new Error(`An error occurred while getting current KV settings - ${e}`)}const r=(e,c,r)=>{if(d)return c;if(!t)return f?.[e]??c;const n=t[e];return"function"==typeof r?r(n):n},n=r("remoteDNS","https://8.8.8.8/dns-query"),a=async()=>{const{host:e,isHostDomain:c}=is(n),t={host:e,isDomain:c};if(c){const{ipv4:c,ipv6:d}=await Gi(e);t.ipv4=c,t.ipv6=d}return t},i={remoteDNS:n,dohHost:await a(),localDNS:r("localDNS","8.8.8.8"),antiSanctionDNS:r("antiSanctionDNS","78.157.42.100"),VLTRFakeDNS:r("VLTRFakeDNS",!1),proxyIPMode:r("proxyIPMode","proxyip"),proxyIPs:r("proxyIPs",[]),prefixes:r("prefixes",[]),outProxy:r("outProxy",""),outProxyParams:r("outProxy",{},e=>bs(e)),cleanIPs:r("cleanIPs",[]),VLTRenableIPv6:r("VLTRenableIPv6",!0),customCdnAddrs:r("customCdnAddrs",[]),customCdnHost:r("customCdnHost",""),customCdnSni:r("customCdnSni",""),bestVLTRInterval:r("bestVLTRInterval",30),VLConfigs:r("VLConfigs",!0),TRConfigs:r("TRConfigs",!0),ports:r("ports",[443]),fingerprint:r("fingerprint","chrome"),fragmentMode:r("fragmentMode","custom"),fragmentLengthMin:r("fragmentLengthMin",100),fragmentLengthMax:r("fragmentLengthMax",200),fragmentIntervalMin:r("fragmentIntervalMin",1),fragmentIntervalMax:r("fragmentIntervalMax",1),fragmentPackets:r("fragmentPackets","tlshello"),bypassIran:r("bypassIran",!1),bypassChina:r("bypassChina",!1),bypassRussia:r("bypassRussia",!1),bypassOpenAi:r("bypassOpenAi",!1),bypassMicrosoft:r("bypassMicrosoft",!1),bypassOracle:r("bypassOracle",!1),bypassDocker:r("bypassDocker",!1),bypassAdobe:r("bypassAdobe",!1),bypassEpicGames:r("bypassEpicGames",!1),bypassIntel:r("bypassIntel",!1),bypassAmd:r("bypassAmd",!1),bypassNvidia:r("bypassNvidia",!1),bypassAsus:r("bypassAsus",!1),bypassHp:r("bypassHp",!1),bypassLenovo:r("bypassLenovo",!1),blockAds:r("blockAds",!1),blockPorn:r("blockPorn",!1),blockUDP443:r("blockUDP443",!1),customBypassRules:r("customBypassRules",[]),customBlockRules:r("customBlockRules",[]),customBypassSanctionRules:r("customBypassSanctionRules",[]),warpEndpoints:r("warpEndpoints",["engage.cloudflareclient.com:2408"]),warpFakeDNS:r("warpFakeDNS",!1),warpEnableIPv6:r("warpEnableIPv6",!0),bestWarpInterval:r("bestWarpInterval",30),xrayUdpNoises:r("xrayUdpNoises",[{type:"rand",packet:"50-100",delay:"1-1",count:5}]),knockerNoiseMode:r("knockerNoiseMode","quic"),noiseCountMin:r("noiseCountMin",10),noiseCountMax:r("noiseCountMax",15),noiseSizeMin:r("noiseSizeMin",5),noiseSizeMax:r("noiseSizeMax",10),noiseDelayMin:r("noiseDelayMin",1),noiseDelayMax:r("noiseDelayMax",1),amneziaNoiseCount:r("amneziaNoiseCount",5),amneziaNoiseSizeMin:r("amneziaNoiseSizeMin",50),amneziaNoiseSizeMax:r("amneziaNoiseSizeMax",100),panelVersion:No.panelVersion};try{await c.kv.put("proxySettings",JSON.stringify(i))}catch(e){throw console.log(e),new Error(`An error occurred while updating KV - ${e}`)}return i}function bs(e){if(!e)return{};const{hostname:c,port:t,username:d,password:f,search:r,protocol:n}=new URL(e),a=n.slice(0,-1);let i={protocol:"ss"===a?atob("c2hhZG93c29ja3M="):a,server:c,port:+t};const s=()=>{const e=new URLSearchParams(r);for(const[c,t]of e)i[c]=t};switch(a){case atob("dmxlc3M="):i.uuid=d,s();break;case atob("dHJvamFu"):i.password=d,s();break;case atob("c3M="):const e=(new TextDecoder).decode(Uint8Array.from(atob(d),e=>e.charCodeAt(0))),[c,...t]=e.split(":");i.method=c,i.password=t.join(":"),s();break;case atob("c29ja3M="):case"http":i.user=d,i.pass=f;break;default:return{}}return i}async function ps(e,c,t){const d="localhost"===Eo.localDNS?"system":`${Eo.localDNS}#DIRECT`,f=undefined,r=c?`💦 Warp ${t?"Pro ":""}- Best Ping 🚀`:e?"💦 Best Ping 🚀":"✅ Selector",n={enable:!0,listen:"0.0.0.0:1053",ipv6:Eo.VLTRenableIPv6&&!c||Eo.warpEnableIPv6&&c,"respect-rules":!0,"use-system-hosts":!1,nameserver:[`${c?"1.1.1.1":Eo.remoteDNS}#${r}`],"proxy-server-nameserver":[d],"nameserver-policy":{"raw.githubusercontent.com":d,"time.cloudflare.com":d}};if(Eo.dohHost.isDomain&&!c){const{ipv4:e,ipv6:c,host:t}=Eo.dohHost;n.hosts={[t]:Eo.VLTRenableIPv6?[...e,...c]:e}}const a=is(Eo.antiSanctionDNS);if(a.isHostDomain&&(n["nameserver-policy"][a.host]=d),e&&!c){const e=Eo.outProxyParams.server;Yi(e)&&(n["nameserver-policy"][e]=`${Eo.remoteDNS}#${r}`)}const i=Rs();Eo.customBlockRules.forEach(e=>{Yi(e)&&(n.hosts||(n.hosts={}),n.hosts[`+.${e}`]="rcode://refused")}),Eo.customBypassRules.forEach(e=>{Yi(e)&&(n["nameserver-policy"][`+.${e}`]=`${Eo.localDNS}#DIRECT`)}),Eo.customBypassSanctionRules.forEach(e=>{Yi(e)&&(n["nameserver-policy"][`+.${e}`]=`${Eo.antiSanctionDNS}#DIRECT`)});for(const{rule:e,ruleProvider:c,type:t,dns:d}of i){if(!e||!c?.geosite)continue;const{geosite:f}=c;"DIRECT"===t?n["nameserver-policy"][`rule-set:${f}`]=d:(n.hosts||(n.hosts={}),n.hosts[`rule-set:${f}`]="rcode://refused")}const s=undefined;return(Eo.VLTRFakeDNS&&!c||Eo.warpFakeDNS&&c)&&Object.assign(n,{"enhanced-mode":"fake-ip","fake-ip-range":"198.18.0.1/16","fake-ip-filter":["*","+.lan","+.local"]}),n}function Es(e){const c=Rs();Eo.customBlockRules.forEach(e=>{const t=Yi(e);c.push({rule:!0,type:"REJECT",domain:t?e:null,ip:t?null:e})});const t=undefined;[...Eo.customBypassRules,...Eo.customBypassSanctionRules].forEach(e=>{const t=Yi(e);c.push({rule:!0,type:"DIRECT",domain:t?e:null,ip:t?null:e})});const d={};function f(e){const{geosite:c,geoip:t,geositeURL:f,geoipURL:r,format:n}=e,a="text"===n?"txt":n,i=(e,c,t)=>{e&&(d[e]={type:"http",format:n,behavior:c,url:t,path:`./ruleset/${e}.${a}`,interval:86400})};i(c,"domain",f),i(t,"ipcidr",r)}const r=new Map;c.forEach(e=>{if(!e.rule)return;const{type:c,domain:t,ip:d,ruleProvider:n}=e,{geosite:a,geoip:i}=n||{};r.has(c)||r.set(c,{domain:[],ip:[],geosite:[],geoip:[]}),t&&r.get(c).domain.push(t),d&&r.get(c).ip.push(d),a&&r.get(c).geosite.push(a),i&&r.get(c).geoip.push(i),(a||i)&&f(n)});let n=["GEOIP,lan,DIRECT,no-resolve"];function a(e,c,t,d,f){t&&t.forEach(e=>n.push(`DOMAIN-SUFFIX,${e},${f}`)),e&&e.forEach(e=>n.push(`RULE-SET,${e},${f}`)),d&&d.forEach(e=>{const c=ns(e)?"IP-CIDR":"IP-CIDR6",t=as(e)?e.replace(/\[|\]/g,""):e,d=e.includes("/")?"":ns(e)?"/32":"/128";n.push(`${c},${t}${d},${f}`)}),c&&c.forEach(e=>n.push(`RULE-SET,${e},${f}`))}e?Eo.blockUDP443&&n.push("AND,((NETWORK,udp),(DST-PORT,443)),REJECT"):n.push("NETWORK,udp,REJECT");for(const[e,c]of r){const{domain:t,ip:d,geosite:f,geoip:r}=c;t.length&&a(null,null,t,null,e),f.length&&a(f,null,null,null,e),d.length&&a(null,null,null,d,e),r.length&&a(null,r,null,null,e)}return n.push("MATCH,✅ Selector"),{rules:n,ruleProviders:d}}function Bs(e,c,t,d,f,r){const n=os(t),a=as(c)?c.replace(/\[|\]/g,""):c,i=Eo.VLTRenableIPv6?"dual":"ipv4",s="randomized"===Eo.fingerprint?"random":Eo.fingerprint,o={name:e,type:atob("dmxlc3M="),server:a,port:t,uuid:Uo.userID,udp:!1,"packet-encoding":"","ip-version":i,tls:n,network:"ws",tfo:!0,"ws-opts":{path:fs("vl"),headers:{Host:d},"max-early-data":2560,"early-data-header-name":"Sec-WebSocket-Protocol"}};return n&&Object.assign(o,{servername:f,alpn:["http/1.1"],"client-fingerprint":s,"skip-cert-verify":r}),o}function Hs(e,c,t,d,f,r){const n=as(c)?c.replace(/\[|\]/g,""):c,a=Eo.VLTRenableIPv6?"dual":"ipv4",i="randomized"===Eo.fingerprint?"random":Eo.fingerprint;return{name:e,type:atob("dHJvamFu"),server:n,port:t,password:Uo.TrPass,udp:!1,"ip-version":a,tls:!0,network:"ws",tfo:!0,"ws-opts":{path:fs("tr"),headers:{Host:d},"max-early-data":2560,"early-data-header-name":"Sec-WebSocket-Protocol"},sni:f,alpn:["http/1.1"],"client-fingerprint":i,"skip-cert-verify":r}}function ms(e,c,t,d,f){const{host:r,port:n}=ss(t),a=Eo.warpEnableIPv6?"dual":"ipv4",{warpIPv6:i,reserved:s,publicKey:o,privateKey:u}=es(e,d);let l={name:c,type:"wireguard",ip:"172.16.0.2/32",ipv6:i,"ip-version":a,"private-key":u,server:d?"162.159.192.1":r,port:d?2408:n,"public-key":o,"allowed-ips":["0.0.0.0/0","::/0"],reserved:s,udp:!0,mtu:1280};return d&&(l["dialer-proxy"]=d),f&&(l["amnezia-wg-option"]={jc:String(Eo.amneziaNoiseCount),jmin:String(Eo.amneziaNoiseSizeMin),jmax:String(Eo.amneziaNoiseSizeMax)}),l}function gs(){const{outProxyParams:e}=Eo,{protocol:c,server:t,port:d}=e,f={name:"",type:c,server:t,port:d,"dialer-proxy":""};if([atob("c29ja3M="),"http"].includes(c)){const{user:t,pass:d}=e;return f.username=t,f.password=d,c===atob("c29ja3M=")&&(f.type=atob("c29ja3M1")),f}if(c===atob("c2hhZG93c29ja3M=")){const{password:c,method:t}=e;return f.cipher=t,f.password=c,f.type=atob("c3M="),f}const{security:r,type:n,sni:a,fp:i,alpn:s,pbk:o,sid:u,headerType:l,host:w,path:h,serviceName:A}=e;if(c===atob("dmxlc3M=")){const{uuid:c,flow:t}=e;f.uuid=c,f.flow=t}if(c===atob("dHJvamFu")){const{password:c}=e;f.password=c}if("tls"===r){const e=s?s?.split(","):[];Object.assign(f,{tls:!0,servername:a,alpn:e,"client-fingerprint":i})}if("reality"===r&&Object.assign(f,{tls:!0,servername:a,"client-fingerprint":i,"reality-opts":{"public-key":o,"short-id":u}}),"http"===l){f.network="http";const e=h?.split(",");f["http-opts"]={method:"GET",path:e,headers:{Connection:["keep-alive"],"Content-Type":["application/octet-stream"]}}}if("ws"===n||"httpupgrade"===n){const e=h?.split("?ed=")[0];if(f.network="ws",f["ws-opts"]={path:e,headers:{Host:w}},"httpupgrade"===n)f["ws-opts"][`${atob("djJyYXk=")}-http-upgrade`]=!0,f["ws-opts"][`${atob("djJyYXk=")}-http-upgrade-fast-open`]=!0;else{const e=+h?.split("?ed=")[1];f["ws-opts"]["max-early-data"]=e,f["ws-opts"]["early-data-header-name"]="Sec-WebSocket-Protocol"}}return"grpc"===n&&(f.network=n,f["grpc-opts"]={"grpc-service-name":A}),f}async function ys(e,c,t,d,f,r,n){const{rules:a,ruleProviders:i}=Es(r),s={"mixed-port":7890,ipv6:!0,"allow-lan":!0,mode:"rule","log-level":"warning","disable-keep-alive":!1,"keep-alive-idle":10,"keep-alive-interval":15,...!r&&{"tcp-concurrent":!0},"unified-delay":!1,"geo-auto-update":!0,"geo-update-interval":168,"external-controller":"127.0.0.1:9090","external-ui-url":"https://github.com/MetaCubeX/metacubexd/archive/refs/heads/gh-pages.zip","external-ui":"ui","external-controller-cors":{"allow-origins":["*"],"allow-private-network":!0},profile:{"store-selected":!0,"store-fake-ip":!0},dns:await ps(f,r,n),tun:{enable:!0,stack:"mixed","auto-route":!0,"strict-route":!0,"auto-detect-interface":!0,"dns-hijack":["any:53","tcp://any:53"],mtu:9e3},sniffer:{enable:!0,"force-dns-mapping":!0,"parse-pure-ip":!0,"override-destination":!0,sniff:{HTTP:{ports:[80,8080,8880,2052,2082,2086,2095]},TLS:{ports:[443,8443,2053,2083,2087,2096]}}},proxies:e,"proxy-groups":[{name:"✅ Selector",type:"select",proxies:c}],"rule-providers":i,rules:a,ntp:{enable:!0,server:"time.cloudflare.com",port:123,interval:30}},o=(e,c)=>s["proxy-groups"].push({name:e,type:"url-test",url:"https://www.gstatic.com/generate_204",interval:r?Eo.bestWarpInterval:Eo.bestVLTRInterval,tolerance:50,proxies:c});return o(r?`💦 Warp ${n?"Pro ":""}- Best Ping 🚀`:"💦 Best Ping 🚀",t),r&&o(`💦 WoW ${n?"Pro ":""}- Best Ping 🚀`,d),f&&o("💦 🔗 Best Ping 🚀",d),s}async function xs(e){let c;Eo.outProxy&&(c=await us(e,gs));const t=await qi(!1),d=[],f=[],r=[],n=[...Eo.VLConfigs?[atob("VkxFU1M=")]:[],...Eo.TRConfigs?[atob("VHJvamFu")]:[]],a=["💦 Best Ping 🚀",...c?["💦 🔗 Best Ping 🚀"]:[]];n.forEach(e=>{let n=1;Eo.ports.forEach(i=>{t.forEach(t=>{let s;const o=Eo.customCdnAddrs.includes(t),u=o?"C":"",l=o?Eo.customCdnSni:ts(No.hostName),w=o?Eo.customCdnHost:No.hostName,h=cs(n,i,t,e,u).replace(" : "," - ");if(e===atob("VkxFU1M=")&&(s=Bs(h,t,i,w,l,o)),e===atob("VHJvamFu")&&os(i)&&(s=Hs(h,t,i,w,l,o)),s){if(d.push(h),a.push(h),r.push(s),c){const d=cs(n,i,t,e,u,!0);let s=structuredClone(c);s.name=d,s["dialer-proxy"]=h,r.push(s),f.push(d),a.push(d)}n++}})})});const i=await ys(r,a,d,f,c,!1,!1);return new Response(JSON.stringify(i,null,4),{status:200,headers:{"Content-Type":"text/plain;charset=utf-8","Cache-Control":"no-store","CDN-Cache-Control":"no-store"}})}async function Ts(e,c,t){const{warpConfigs:d}=await hs(e,c),f=[],r=[],n=[],a=[`💦 Warp ${t?"Pro ":""}- Best Ping 🚀`,`💦 WoW ${t?"Pro ":""}- Best Ping 🚀`];Eo.warpEndpoints.forEach((e,c)=>{const i=`💦 ${c+1} - Warp ${t?"Pro ":""}🇮🇷`;f.push(i);const s=`💦 ${c+1} - WoW ${t?"Pro ":""}🌍`;r.push(s),a.push(i,s);const o=ms(d,i,e,"",t),u=ms(d,s,e,i);n.push(o,u)});const i=await ys(n,a,f,r,!1,!0,t);return new Response(JSON.stringify(i,null,4),{status:200,headers:{"Content-Type":"text/plain;charset=utf-8","Cache-Control":"no-store","CDN-Cache-Control":"no-store"}})}function Rs(){const e="localhost"===Eo.localDNS?"system":`${Eo.localDNS}#DIRECT`;return[{rule:!0,type:"REJECT",ruleProvider:{format:"text",geosite:"malware",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-clash-rules/release/malware.txt",geoip:"malware-cidr",geoipURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-clash-rules/release/malware-ip.txt"}},{rule:!0,type:"REJECT",ruleProvider:{format:"text",geosite:"phishing",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-clash-rules/release/phishing.txt",geoip:"phishing-cidr",geoipURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-clash-rules/release/phishing-ip.txt"}},{rule:!0,type:"REJECT",ruleProvider:{format:"text",geosite:"cryptominers",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-clash-rules/release/cryptominers.txt"}},{rule:Eo.blockAds,type:"REJECT",ruleProvider:{format:"text",geosite:"category-ads-all",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-clash-rules/release/category-ads-all.txt"}},{rule:Eo.blockPorn,type:"REJECT",ruleProvider:{format:"text",geosite:"nsfw",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-clash-rules/release/nsfw.txt"}},{rule:Eo.bypassIran,type:"DIRECT",dns:e,ruleProvider:{format:"text",geosite:"ir",geoip:"ir-cidr",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-clash-rules/release/ir.txt",geoipURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-clash-rules/release/ircidr.txt"}},{rule:Eo.bypassChina,type:"DIRECT",dns:e,ruleProvider:{format:"yaml",geosite:"cn",geoip:"cn-cidr",geositeURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/cn.yaml",geoipURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geoip/cn.yaml"}},{rule:Eo.bypassRussia,type:"DIRECT",dns:e,ruleProvider:{format:"yaml",geosite:"ru",geoip:"ru-cidr",geositeURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/category-ru.yaml",geoipURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geoip/ru.yaml"}},{rule:Eo.bypassOpenAi,type:"DIRECT",dns:`${Eo.antiSanctionDNS}#DIRECT`,ruleProvider:{format:"yaml",geosite:"openai",geositeURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/openai.yaml"}},{rule:Eo.bypassMicrosoft,type:"DIRECT",dns:`${Eo.antiSanctionDNS}#DIRECT`,ruleProvider:{format:"yaml",geosite:"microsoft",geositeURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/microsoft.yaml"}},{rule:Eo.bypassOracle,type:"DIRECT",dns:`${Eo.antiSanctionDNS}#DIRECT`,ruleProvider:{format:"yaml",geosite:"oracle",geositeURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/oracle.yaml"}},{rule:Eo.bypassDocker,type:"DIRECT",dns:`${Eo.antiSanctionDNS}#DIRECT`,ruleProvider:{format:"yaml",geosite:"docker",geositeURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/docker.yaml"}},{rule:Eo.bypassAdobe,type:"DIRECT",dns:`${Eo.antiSanctionDNS}#DIRECT`,ruleProvider:{format:"yaml",geosite:"adobe",geositeURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/adobe.yaml"}},{rule:Eo.bypassEpicGames,type:"DIRECT",dns:`${Eo.antiSanctionDNS}#DIRECT`,ruleProvider:{format:"yaml",geosite:"epicgames",geositeURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/epicgames.yaml"}},{rule:Eo.bypassIntel,type:"DIRECT",dns:`${Eo.antiSanctionDNS}#DIRECT`,ruleProvider:{format:"yaml",geosite:"intel",geositeURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/intel.yaml"}},{rule:Eo.bypassAmd,type:"DIRECT",dns:`${Eo.antiSanctionDNS}#DIRECT`,ruleProvider:{format:"yaml",geosite:"amd",geositeURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/amd.yaml"}},{rule:Eo.bypassNvidia,type:"DIRECT",dns:`${Eo.antiSanctionDNS}#DIRECT`,ruleProvider:{format:"yaml",geosite:"nvidia",geositeURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/nvidia.yaml"}},{rule:Eo.bypassAsus,type:"DIRECT",dns:`${Eo.antiSanctionDNS}#DIRECT`,ruleProvider:{format:"yaml",geosite:"asus",geositeURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/asus.yaml"}},{rule:Eo.bypassHp,type:"DIRECT",dns:`${Eo.antiSanctionDNS}#DIRECT`,ruleProvider:{format:"yaml",geosite:"hp",geositeURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/hp.yaml"}},{rule:Eo.bypassLenovo,type:"DIRECT",dns:`${Eo.antiSanctionDNS}#DIRECT`,ruleProvider:{format:"yaml",geosite:"lenovo",geositeURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/lenovo.yaml"}}]}async function vs(e,c){const t=undefined,d=new URL(Eo.remoteDNS).protocol.replace(":",""),f=[{type:e?"udp":d,server:e?"1.1.1.1":Eo.dohHost.host,detour:e?"💦 Warp - Best Ping 🚀":c?"💦 Best Ping 🚀":"✅ Selector",tag:"dns-remote"}];function r(e,c,t,d,r,n){f.push({type:e,...c&&{server:c},...t&&{server_port:t},...d&&{detour:d},...n&&{domain_resolver:{server:n,strategy:"ipv4_only"}},tag:r})}"localhost"===Eo.localDNS?r("local",null,null,null,"dns-direct"):r("udp",Eo.localDNS,53,null,"dns-direct");const n=[{domain:["raw.githubusercontent.com"],server:"dns-direct"},{clash_mode:"Direct",server:"dns-direct"},{clash_mode:"Global",server:"dns-remote"}];if(c){const{server:e}=Eo.outProxyParams;Yi(e)&&n.unshift({domain:e,server:"dns-remote"})}if(Eo.dohHost.isDomain&&!e){const{ipv4:e,ipv6:c,host:t}=Eo.dohHost;f.push({type:"hosts",tag:"hosts",predefined:{[t]:[...e,...Eo.VLTRenableIPv6?c:[]]}}),n.unshift({ip_accept_any:!0,server:"hosts"})}function a(e,c,t,d){let f,r;const a=[];c&&(r="and",f="logical",a.push({rule_set:e},{rule_set:c}));const i="reject"===d?"reject":"route",s="reject"===d?null:d;n.push({...f&&{type:f},...r&&{mode:r},...a.length&&{rules:a},...e&&!c&&{rule_set:e},...t&&{domain_suffix:t},action:i,...s&&{server:s}})}const i=Ls();Eo.customBlockRules.forEach(e=>{Yi(e)&&i.unshift({rule:!0,domain:e,type:"reject"})}),Eo.customBypassRules.forEach(e=>{Yi(e)&&i.push({rule:!0,domain:e,type:"direct",dns:"dns-direct"})}),Eo.customBypassSanctionRules.forEach(e=>{Yi(e)&&i.push({rule:!0,domain:e,type:"direct",dns:"dns-anti-sanction"})});const s=new Map;for(const{rule:e,geosite:c,geoip:t,domain:d,type:f,dns:r}of i)if(e)if(c&&t&&"direct"===f)a(c,t,null,r);else{const e=r||f;s.has(e)||s.set(e,{geosite:[],domain:[]}),c&&s.get(e).geosite.push(c),d&&s.get(e).domain.push(d)}for(const[e,c]of s){const{geosite:t,domain:d}=c;d.length&&a(null,null,d,e),t.length&&a(t,null,null,e)}const o=undefined;if(s.has("dns-anti-sanction")){const e=is(Eo.antiSanctionDNS);e.isHostDomain?r("https",e.host,443,null,"dns-anti-sanction","dns-direct"):r("udp",Eo.antiSanctionDNS,53,null,"dns-anti-sanction",null)}const u=undefined;if(Eo.VLTRFakeDNS&&!e||Eo.warpFakeDNS&&e){const c={type:"fakeip",tag:"dns-fake",inet4_range:"198.18.0.0/15"},t=undefined;(Eo.VLTRenableIPv6&&!e||Eo.warpEnableIPv6&&e)&&(c.inet6_range="fc00::/18"),f.push(c),n.push({disable_cache:!0,inbound:"tun-in",query_type:["A","AAAA"],server:"dns-fake"})}return{servers:f,rules:n,strategy:"ipv4_only",independent_cache:!0}}function Ms(e){const c=[{ip_cidr:"172.18.0.2",action:"hijack-dns"},{clash_mode:"Direct",outbound:"direct"},{clash_mode:"Global",outbound:"✅ Selector"},{action:"sniff"},{protocol:"dns",action:"hijack-dns"},{ip_is_private:!0,outbound:"direct"}];function t(e,t,d,f,r,n,a,i){const s="reject"===i?"reject":"route",o="direct"===i?"direct":null;c.push({...d&&{rule_set:d},...f&&{rule_set:f},...e&&{domain_suffix:e},...t&&{ip_cidr:t},...r&&{network:r},...n&&{protocol:n},...a&&{port:a},action:s,...o&&{outbound:o}})}e?Eo.blockUDP443&&t(null,null,null,null,"udp","quic",443,"reject"):t(null,null,null,null,"udp",null,null,"reject");const d=Ls();Eo.customBlockRules.forEach(e=>{const c=Yi(e);d.push({rule:!0,type:"reject",domain:c?e:null,ip:c?null:as(e)?e.replace(/\[|\]/g,""):e})});const f=undefined;[...Eo.customBypassRules,...Eo.customBypassSanctionRules].forEach(e=>{const c=Yi(e);d.push({rule:!0,type:"direct",domain:c?e:null,ip:c?null:as(e)?e.replace(/\[|\]/g,""):e})});const r=[];function n(e){const{geosite:c,geositeURL:t,geoip:d,geoipURL:f}=e;c&&r.push({type:"remote",tag:c,format:"binary",url:t,download_detour:"direct"}),d&&r.push({type:"remote",tag:d,format:"binary",url:f,download_detour:"direct"})}const a=new Map;d.forEach(e=>{const{rule:c,type:t,domain:d,ip:f,geosite:r,geoip:i}=e;c&&(a.has(t)||a.set(t,{domain:[],ip:[],geosite:[],geoip:[]}),d&&a.get(t).domain.push(d),f&&a.get(t).ip.push(f),r&&a.get(t).geosite.push(r),i&&a.get(t).geoip.push(i),(r||i)&&n(e))});for(const[e,c]of a){const{domain:d,ip:f,geosite:r,geoip:n}=c;d.length&&t(d,null,null,null,null,null,null,e),r.length&&t(null,null,r,null,null,null,null,e),f.length&&t(null,f,null,null,null,null,null,e),n.length&&t(null,null,null,n,null,null,null,e)}return{rules:c,rule_set:r,auto_detect_interface:!0,default_domain_resolver:{server:"dns-direct",strategy:Eo.VLTRenableIPv6?"prefer_ipv4":"ipv4_only",rewrite_ttl:60},final:"✅ Selector"}}function ks(e,c,t,d,f,r,n){const a={tag:e,type:atob("dmxlc3M="),server:c,server_port:t,uuid:Uo.userID,network:"tcp",tcp_fast_open:!0,packet_encoding:"",transport:{early_data_header_name:"Sec-WebSocket-Protocol",max_early_data:2560,headers:{Host:d},path:fs("vl"),type:"ws"}};return os(t)&&(a.tls={alpn:"http/1.1",enabled:!0,insecure:r,server_name:f,record_fragment:n,utls:{enabled:!0,fingerprint:Eo.fingerprint}}),a}function Ss(e,c,t,d,f,r,n){const a={tag:e,type:atob("dHJvamFu"),password:Uo.TrPass,server:c,server_port:t,network:"tcp",tcp_fast_open:!0,transport:{early_data_header_name:"Sec-WebSocket-Protocol",max_early_data:2560,headers:{Host:d},path:fs("tr"),type:"ws"}};return os(t)&&(a.tls={alpn:"http/1.1",enabled:!0,insecure:r,server_name:f,record_fragment:n,utls:{enabled:!0,fingerprint:Eo.fingerprint}}),a}function _s(e,c,t,d){const{host:f,port:r}=ss(t),n=d?"162.159.192.1":f,a=d?2408:r,{warpIPv6:i,reserved:s,publicKey:o,privateKey:u}=es(e,d),l={tag:c,type:"wireguard",address:["172.16.0.2/32",i],mtu:1280,peers:[{address:n,port:a,public_key:o,reserved:rs(s),allowed_ips:["0.0.0.0/0","::/0"],persistent_keepalive_interval:5}],private_key:u};return d&&(l.detour=d),l}function Cs(){const{outProxyParams:e}=Eo,{protocol:c,server:t,port:d}=e,f={type:c,tag:"",server:t,server_port:d,detour:""};if([atob("c29ja3M="),"http"].includes(c)){const{user:t,pass:d}=e;return f.username=t,f.password=d,c===atob("c29ja3M=")&&(f.version="5"),f}if(c===atob("c2hhZG93c29ja3M=")){const{password:c,method:t}=e;return f.method=t,f.password=c,f}if(c===atob("dmxlc3M=")){const{uuid:c,flow:t}=e;f.uuid=c,f.flow=t}if(c===atob("dHJvamFu")){const{password:c}=e;f.password=c}const{security:r,type:n,sni:a,fp:i,alpn:s,pbk:o,sid:u,headerType:l,host:w,path:h,serviceName:A}=e;if("tls"===r||"reality"===r){const e=s?s?.split(",").filter(e=>"h2"!==e):[];f.tls={enabled:!0,server_name:a,insecure:!1,alpn:e,utls:{enabled:!0,fingerprint:i}},"reality"===r&&(f.tls.reality={enabled:!0,public_key:o,short_id:u},delete f.tls.alpn)}if("http"===l){const e=w?.split(",");f.transport={type:"http",host:e,path:h,method:"GET",headers:{Connection:["keep-alive"],"Content-Type":["application/octet-stream"]}}}if("ws"===n||"httpupgrade"===n){const e=h?.split("?ed=")[0];if(f.transport={type:n,path:e},"ws"===n){const e=+h?.split("?ed=")[1]||0;Object.assign(f.transport,{max_early_data:e,early_data_header_name:"Sec-WebSocket-Protocol",headers:{Host:w}})}else f.transport.host=w}return"grpc"===n&&(f.transport={type:"grpc",service_name:A}),f}async function Ps(e,c,t,d,f,r,n,a){const i={log:{level:"warn",timestamp:!0},dns:await vs(r,a),inbounds:[{type:"tun",tag:"tun-in",address:["172.18.0.1/30",...n?["fdfe:dcba:9876::1/126"]:[]],mtu:9e3,auto_route:!0,strict_route:!0,endpoint_independent_nat:!0,stack:"mixed"},{type:"mixed",tag:"mixed-in",listen:"0.0.0.0",listen_port:2080}],outbounds:[...e,{type:"selector",tag:"✅ Selector",outbounds:t,interrupt_exist_connections:!1},{type:"direct",tag:"direct"}],route:Ms(r),ntp:{enabled:!0,server:"time.cloudflare.com",server_port:123,domain_resolver:"dns-direct",interval:"30m",write_to_system:!1},experimental:{cache_file:{enabled:!0,store_fakeip:!0},clash_api:{external_controller:"127.0.0.1:9090",external_ui:"ui",external_ui_download_url:"https://github.com/MetaCubeX/metacubexd/archive/refs/heads/gh-pages.zip",external_ui_download_detour:"direct",default_mode:"Rule"}}};c.length&&(i.endpoints=c);const s=(e,c)=>i.outbounds.push({type:"urltest",tag:e,outbounds:c,url:"https://www.gstatic.com/generate_204",interrupt_exist_connections:!1,interval:r?`${Eo.bestWarpInterval}s`:`${Eo.bestVLTRInterval}s`});return s(r?"💦 Warp - Best Ping 🚀":"💦 Best Ping 🚀",d),r&&s("💦 WoW - Best Ping 🚀",f),a&&s("💦 🔗 Best Ping 🚀",f),i}async function Os(e,c){let t;Eo.outProxy&&(t=await us(e,Cs));const d=[],f=[],r=[],n=[...Eo.VLConfigs?[atob("VkxFU1M=")]:[],...Eo.TRConfigs?[atob("VHJvamFu")]:[]],a=await qi(c),i=c?Eo.ports.filter(e=>os(e)):Eo.ports,s=["💦 Best Ping 🚀",...t?["💦 🔗 Best Ping 🚀"]:[]];n.forEach(e=>{let n=1;i.forEach(i=>{a.forEach(a=>{const o=Eo.customCdnAddrs.includes(a),u=c?"F":o?"C":"",l=o?Eo.customCdnSni:ts(No.hostName),w=o?Eo.customCdnHost:No.hostName,h=cs(n,i,a,e,u),A=e===atob("VkxFU1M=")?ks(h,a,i,w,l,o,c):Ss(h,a,i,w,l,o,c);if(r.push(A),d.push(h),s.push(h),t){const c=cs(n,i,a,e,u,!0),d=structuredClone(t);d.tag=c,d.detour=h,r.push(d),f.push(c),s.push(c)}n++})})});const o=await Ps(r,[],s,d,f,!1,Eo.VLTRenableIPv6,t);return new Response(JSON.stringify(o,null,4),{status:200,headers:{"Content-Type":"text/plain;charset=utf-8","Cache-Control":"no-store","CDN-Cache-Control":"no-store"}})}async function Ds(e,c){const{warpConfigs:t}=await hs(e,c),d=[],f=[],r=[],n=["💦 Warp - Best Ping 🚀","💦 WoW - Best Ping 🚀"];Eo.warpEndpoints.forEach((e,c)=>{const a=`💦 ${c+1} - Warp 🇮🇷`;d.push(a);const i=`💦 ${c+1} - WoW 🌍`;f.push(i),n.push(a,i);const s=_s(t,a,e,""),o=_s(t,i,e,a);r.push(s,o)});const a=await Ps([],r,n,d,f,!0,Eo.warpEnableIPv6);return new Response(JSON.stringify(a,null,4),{status:200,headers:{"Content-Type":"text/plain;charset=utf-8","Cache-Control":"no-store","CDN-Cache-Control":"no-store"}})}function Ls(){return[{rule:!0,type:"reject",geosite:"geosite-malware",geoip:"geoip-malware",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-malware.srs",geoipURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geoip-malware.srs"},{rule:!0,type:"reject",geosite:"geosite-phishing",geoip:"geoip-phishing",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-phishing.srs",geoipURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geoip-phishing.srs"},{rule:!0,type:"reject",geosite:"geosite-cryptominers",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-cryptominers.srs"},{rule:Eo.blockAds,type:"reject",geosite:"geosite-category-ads-all",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-category-ads-all.srs"},{rule:Eo.blockPorn,type:"reject",geosite:"geosite-nsfw",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-nsfw.srs"},{rule:Eo.bypassIran,type:"direct",dns:"dns-direct",geosite:"geosite-ir",geoip:"geoip-ir",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-ir.srs",geoipURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geoip-ir.srs"},{rule:Eo.bypassChina,type:"direct",dns:"dns-direct",geosite:"geosite-cn",geoip:"geoip-cn",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-cn.srs",geoipURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geoip-cn.srs"},{rule:Eo.bypassRussia,type:"direct",dns:"dns-direct",geosite:"geosite-category-ru",geoip:"geoip-ru",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-category-ru.srs",geoipURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geoip-ru.srs"},{rule:Eo.bypassOpenAi,type:"direct",dns:"dns-anti-sanction",geosite:"geosite-openai",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-openai.srs"},{rule:Eo.bypassMicrosoft,type:"direct",dns:"dns-anti-sanction",geosite:"geosite-microsoft",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-microsoft.srs"},{rule:Eo.bypassOracle,type:"direct",dns:"dns-anti-sanction",geosite:"geosite-oracle",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-oracle.srs"},{rule:Eo.bypassDocker,type:"direct",dns:"dns-anti-sanction",geosite:"geosite-docker",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-docker.srs"},{rule:Eo.bypassAdobe,type:"direct",dns:"dns-anti-sanction",geosite:"geosite-adobe",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-adobe.srs"},{rule:Eo.bypassEpicGames,type:"direct",dns:"dns-anti-sanction",geosite:"geosite-epicgames",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-epicgames.srs"},{rule:Eo.bypassIntel,type:"direct",dns:"dns-anti-sanction",geosite:"geosite-intel",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-intel.srs"},{rule:Eo.bypassAmd,type:"direct",dns:"dns-anti-sanction",geosite:"geosite-amd",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-amd.srs"},{rule:Eo.bypassNvidia,type:"direct",dns:"dns-anti-sanction",geosite:"geosite-nvidia",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-nvidia.srs"},{rule:Eo.bypassAsus,type:"direct",dns:"dns-anti-sanction",geosite:"geosite-asus",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-asus.srs"},{rule:Eo.bypassHp,type:"direct",dns:"dns-anti-sanction",geosite:"geosite-hp",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-hp.srs"},{rule:Eo.bypassLenovo,type:"direct",dns:"dns-anti-sanction",geosite:"geosite-lenovo",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-lenovo.srs"}]}async function Is(e,c,t,d,f,r){function n(e,c,t,d,f){return{address:e,...c&&{domains:c},...t&&{expectIPs:t},...d&&{skipFallback:d},...f&&{tag:f}}}const a={};if(Eo.dohHost.isDomain&&!t&&!d){const{ipv4:e,ipv6:c,host:t}=Eo.dohHost;a[t]=Eo.VLTRenableIPv6?[...e,...c]:e}const i=Ys(),s=i.filter(({type:e})=>"block"===e);Eo.customBlockRules.forEach(e=>{Yi(e)&&s.push({rule:!0,domain:e})});for(const{rule:e,domain:c}of s)e&&(a[c]=["127.0.0.1"]);const o=c?await Gi(c,!Eo.VLTRenableIPv6):void 0;o&&(a[c]=[...o.ipv4,...o.ipv6]);const u=Object.keys(a).length?{hosts:a}:{},l=Eo.VLTRenableIPv6&&!d||Eo.warpEnableIPv6&&d,w={...u,servers:[],queryStrategy:!d||l?"UseIP":"UseIPv4",tag:"dns"};let h=!0,A=d?"1.1.1.1":Eo.remoteDNS;t&&(w.hosts||(w.hosts={}),A=`https://${f}/dns-query`,w.hosts[f]=r,h=!1,w.disableFallbackIfMatch=!0);const b=n(A,null,null,null,"remote-dns");w.servers.push(b);const p=i.filter(({type:e})=>"direct"===e);Yi(r?.[0])&&p.push({rule:!0,domain:`full:${r[0]}`,dns:Eo.localDNS}),e.forEach(e=>{Yi(e)&&p.push({rule:!0,domain:`full:${e}`,dns:Eo.localDNS})}),Eo.customBypassRules.forEach(e=>{Yi(e)&&p.push({rule:!0,domain:`domain:${e}`,dns:Eo.localDNS})}),Eo.customBypassSanctionRules.forEach(e=>{Yi(e)&&p.push({rule:!0,domain:`domain:${e}`,dns:Eo.antiSanctionDNS})});const{host:E,isHostDomain:B}=is(Eo.antiSanctionDNS);B&&p.push({rule:!0,domain:`full:${E}`,dns:Eo.localDNS});const H=[],m=new Map;for(const{rule:e,domain:c,ip:t,dns:d}of p)if(e){if(t){const e=n(d,[c],[t],h);w.servers.push(e)}else m.has(d)||m.set(d,[]),m.get(d).push(c);c&&H.push(c)}for(const[e,c]of m)if(c.length){const t=n(e,c,null,h);w.servers.push(t)}const g=undefined;if(Eo.VLTRFakeDNS&&!d||Eo.warpFakeDNS&&d){const e=H.length?n("fakedns",H,null,!1):"fakedns";w.servers.unshift(e)}return w}function Us(e,c,t,d){const f=[{inboundTag:["mixed-in"],port:53,outboundTag:"dns-out",type:"field"},{inboundTag:["dns-in"],outboundTag:"dns-out",type:"field"}],r=(e,c,t,d,r,n,a,i)=>f.push({...e&&{inboundTag:e},...c&&{domain:c},...t&&{ip:t},...d&&{port:d},...r&&{network:r},...n&&{protocol:[n]},...i?{balancerTag:a}:{outboundTag:a},type:"field"}),n=undefined,a=c?e?"all-chains":"all":e?"chain":t?"direct":"proxy",i=undefined;r(["remote-dns"],null,null,null,null,null,c?"all":"proxy",c),r(["dns"],null,null,null,null,null,"direct"),r(null,["geosite:private"],null,null,null,null,"direct"),r(null,null,["geoip:private"],null,null,null,"direct"),d&&Eo.blockUDP443&&r(null,null,null,443,"udp",null,"block"),d||t||r(null,null,null,null,"udp",null,"block",null);const s=Ys(),o=undefined;[...Eo.customBypassRules,...Eo.customBypassSanctionRules].forEach(e=>{const c=Yi(e);s.push({rule:!0,type:"direct",domain:c?`domain:${e}`:null,ip:c?null:e})}),Eo.customBlockRules.forEach(e=>{const c=Yi(e);s.push({rule:!0,type:"block",domain:c?`domain:${e}`:null,ip:c?null:e})});const u=new Map;for(const{rule:e,type:c,ip:t,domain:d}of s)e&&(u.has(c)||u.set(c,{domain:[],ip:[]}),d&&u.get(c).domain.push(d),t&&u.get(c).ip.push(t));for(const[e,c]of u){const{domain:t,ip:d}=c;t.length&&r(null,t,null,null,null,null,e,null),d.length&&r(null,null,d,null,null,null,e,null)}t&&(r(null,null,null,null,"tcp","tls","proxy"),r(null,null,null,null,"tcp","http","http-fragment"),r(null,null,null,null,"udp","quic","udp-noise"),r(null,null,null,"443,2053,2083,2087,2096,8443","udp",null,"udp-noise"));const l=undefined;return r(null,null,null,null,d||t?"tcp,udp":"tcp",null,a,c),f}function Ns(e,c,t,d,f,r,n){const a=`${fs("vl")}?ed=2560`,i={protocol:atob("dmxlc3M="),settings:{vnext:[{address:c,port:t,users:[{id:Uo.userID,encryption:"none",level:8}]}]},streamSettings:{network:"ws",security:"none",sockopt:{},wsSettings:{host:d,path:a}},tag:e};os(t)&&(i.streamSettings.security="tls",i.streamSettings.tlsSettings={allowInsecure:n,fingerprint:Eo.fingerprint,alpn:["http/1.1"],serverName:f});const s=i.streamSettings.sockopt;return r?s.dialerProxy="fragment":(s.domainStrategy="UseIP",s.tcpFastOpen=!0,s.happyEyeballs={tryDelayMs:250,prioritizeIPv6:!1,interleave:2,maxConcurrentTry:4}),i}function zs(e,c,t,d,f,r,n){const a=`${fs("tr")}?ed=2560`,i={protocol:atob("dHJvamFu"),settings:{servers:[{address:c,port:t,password:Uo.TrPass,level:8}]},streamSettings:{network:"ws",security:"none",sockopt:{},wsSettings:{host:d,path:a}},tag:e};os(t)&&(i.streamSettings.security="tls",i.streamSettings.tlsSettings={allowInsecure:n,fingerprint:Eo.fingerprint,alpn:["http/1.1"],serverName:f});const s=i.streamSettings.sockopt;return r?s.dialerProxy="fragment":(s.domainStrategy="UseIP",s.tcpFastOpen=!0,s.happyEyeballs={tryDelayMs:250,prioritizeIPv6:!1,interleave:2,maxConcurrentTry:4}),i}function Ws(e,c,t,d){const{warpIPv6:f,reserved:r,publicKey:n,privateKey:a}=es(e,t),i={protocol:"wireguard",settings:{address:["172.16.0.2/32",f],mtu:1280,peers:[{endpoint:t?"162.159.192.1:2408":c,publicKey:n,keepAlive:5}],reserved:rs(r),secretKey:a},tag:t?"chain":"proxy"};let s="";if(t&&(s="proxy"),!t&&d&&"xray"===No.client&&(s="udp-noise"),s&&(i.streamSettings={sockopt:{dialerProxy:s}}),"xray-knocker"===No.client&&!t){const{knockerNoiseMode:e,noiseCountMin:c,noiseCountMax:t,noiseSizeMin:d,noiseSizeMax:f,noiseDelayMin:r,noiseDelayMax:n}=Eo;Object.assign(i.settings,{wnoise:e,wnoisecount:c===t?String(c):`${c}-${t}`,wpayloadsize:d===f?String(d):`${d}-${f}`,wnoisedelay:r===n?String(r):`${r}-${n}`})}return i}function Xs(){const{outProxyParams:e}=Eo,{protocol:c,security:t,type:d,server:f,port:r}=e,n={protocol:c,mux:{enabled:!0,concurrency:8,xudpConcurrency:16,xudpProxyUDP443:"reject"},settings:{},streamSettings:{network:d||"raw",security:t,sockopt:{dialerProxy:"proxy"}},tag:"chain"};if([atob("c29ja3M="),"http"].includes(c)){const{user:c,pass:t}=e;return n.settings.servers=[{address:f,port:r,users:[{user:c,pass:t,level:8}]}],n}if(c===atob("c2hhZG93c29ja3M=")){const{password:c,method:t}=e;return n.settings.servers=[{address:f,method:t,ota:!1,password:c,port:r,level:8}],n}if(c===atob("dmxlc3M=")){const{uuid:c,flow:t}=e;n.settings.vnext=[{address:f,port:r,users:[{encryption:"none",flow:t,id:c,level:8,security:"auto"}]}]}if(c===atob("dHJvamFu")){const{password:c}=e;n.settings.servers=[{address:f,port:r,password:c,level:8}]}const{sni:a,fp:i,alpn:s,pbk:o,sid:u,spx:l,headerType:w,host:h,path:A,authority:b,serviceName:p,mode:E}=e;if("tls"===t){const e=s?s?.split(","):[];n.streamSettings.tlsSettings={allowInsecure:!1,fingerprint:i,alpn:e,serverName:a}}if("reality"===t&&(delete n.mux,n.streamSettings.realitySettings={fingerprint:i,publicKey:o,serverName:a,shortId:u,spiderX:l}),"http"===w){const e=A?.split(","),c=h?.split(",");n.streamSettings.tcpSettings={header:{request:{headers:{Host:c},method:"GET",path:e,version:"1.1"},response:{headers:{"Content-Type":["application/octet-stream"]},reason:"OK",status:"200",version:"1.1"},type:"http"}}}return["tcp","raw"].includes(d)&&"reality"!==t&&!w&&(n.streamSettings.rawSettings={header:{type:"none"}}),"ws"===d&&(n.streamSettings.wsSettings={host:h,path:A}),"httpupgrade"===d&&(n.streamSettings.httpupgradeSettings={host:h,path:A}),"grpc"===d&&(delete n.mux,n.streamSettings.grpcSettings={authority:b,multiMode:"multi"===E,serviceName:p}),n}function Fs(e,c,t,d,f){const r={tag:t,protocol:"freedom",settings:{}};if(e){const{fragmentPackets:e,fragmentLengthMin:c,fragmentLengthMax:t,fragmentIntervalMin:n,fragmentIntervalMax:a}=Eo;r.settings.fragment={packets:e,length:d||`${c}-${t}`,interval:f||`${n}-${a}`},r.streamSettings={sockopt:{tcpFastOpen:!0,domainStrategy:"UseIP",happyEyeballs:{tryDelayMs:250,prioritizeIPv6:!1,interleave:2,maxConcurrentTry:4}}}}if(c){r.settings.noises=[];const c=undefined;structuredClone(Eo.xrayUdpNoises).forEach(e=>{const c=e.count;delete e.count,r.settings.noises.push(...Array.from({length:c},()=>e))}),e||(r.settings.domainStrategy=Eo.warpEnableIPv6?"UseIPv4v6":"UseIPv4")}return r}async function js(e,c,t,d,f,r,n,a,i,s,o){const u=Eo.VLTRFakeDNS&&!r||Eo.warpFakeDNS&&r,l={remarks:e,log:{loglevel:"warning"},dns:await Is(a,i,n,r,s,o),inbounds:[{port:10808,protocol:"socks",settings:{auth:"noauth",udp:!0,userLevel:8},sniffing:{destOverride:["http","tls",...n?["quic"]:[],...u?["fakedns"]:[]],enabled:!0,routeOnly:!0},tag:"mixed-in"},{port:10853,protocol:"dokodemo-door",settings:{address:"1.1.1.1",network:"tcp,udp",port:53},tag:"dns-in"}],outbounds:[...c,{protocol:"dns",tag:"dns-out"},{protocol:"freedom",settings:{domainStrategy:"UseIP"},tag:"direct"},{protocol:"blackhole",settings:{response:{type:"http"}},tag:"block"}],policy:{levels:{8:{connIdle:300,downlinkOnly:1,handshake:4,uplinkOnly:1}},system:{statsOutboundUplink:!0,statsOutboundDownlink:!0}},routing:{domainStrategy:"IPIfNonMatch",rules:Us(d,t,n,r)},stats:{}};if(t){const e=(e,c,t)=>({tag:e,selector:[c],strategy:{type:"leastPing"},...t&&{fallbackTag:"proxy-2"}});if(l.routing.balancers=[e("all","proxy",f)],d){const c=e("all-chains","chain",!1);l.routing.balancers.push(c)}l.observatory={subjectSelector:d?["chain","proxy"]:["proxy"],probeUrl:"https://www.gstatic.com/generate_204",probeInterval:`${r?Eo.bestWarpInterval:Eo.bestVLTRInterval}s`,enableConcurrency:!0}}return l}async function $s(e,c,t,d,f){const r=d.length,n=undefined,a=`💦 ${r?"🔗 ":""}Best Ping 🚀`,i=[...d,...t];if(f){const e=Fs(!0,!1,"fragment");i.push(e)}const s=await js(a,i,!0,r,!0,!1,!1,c,null);r&&await $s(e,c,t,[],f),e.push(s)}async function Js(e,c,t){const d=undefined,f=[];["10-20","20-30","30-40","40-50","50-60","60-70","70-80","80-90","90-100","10-30","20-40","30-50","40-60","50-70","60-80","70-90","80-100","100-200"].forEach((e,d)=>{if(c){const e=structuredClone(c);e.tag=`chain-${d+1}`,e.streamSettings.sockopt.dialerProxy=`proxy-${d+1}`,f.push(e)}const r=structuredClone(t);r.tag=`proxy-${d+1}`,r.streamSettings.sockopt.dialerProxy=`fragment-${d+1}`;const n=undefined,a=Fs(!0,!1,`fragment-${d+1}`,e,`${Eo.fragmentIntervalMin}-${Eo.fragmentIntervalMax}`);f.push(r,a)});const r=c?"🔗 ":"",n=await js(`💦 ${r}Best Fragment 😎`,f,!0,c,!1,!1,!1,[],No.hostName);c&&await Js(e,!1,t),e.push(n)}async function Ks(e){const c=Fs(!0,!1,"proxy"),t=Fs(!1,!0,"udp-noise"),d=Fs(!0,!1,"http-fragment");d.settings.fragment.packets="1-1";const f=[c,d,t],r=await js("💦 1 - Workerless ⭐",f,!1,!1,!1,!1,!0,[],!1,"cloudflare-dns.com",["cloudflare.com"]),n=await js("💦 2 - Workerless ⭐",f,!1,!1,!1,!1,!0,[],!1,"dns.google",["8.8.8.8","8.8.4.4"]);e.push(r,n)}async function Vs(e,c){let t;Eo.outProxy&&(t=await us(e,Xs));const d=await qi(c),f=Eo.ports.filter(e=>!c||os(e)),r=[...Eo.VLConfigs?[atob("VkxFU1M=")]:[],...Eo.TRConfigs?[atob("VHJvamFu")]:[]],n=[],a=[],i=[];let s=1;const o=c?[Fs(!0,!1,"fragment")]:[];for(const e of r){let r=1;for(const u of f)for(const f of d){const d=Eo.customCdnAddrs.includes(f)&&!c,l=d?Eo.customCdnSni:ts(No.hostName),w=d?Eo.customCdnHost:No.hostName,h=d?"C":c?"F":"",A=e===atob("VkxFU1M=")?Ns("proxy",f,u,w,l,c,d):zs("proxy",f,u,w,l,c,d),b=[A,...o],p=structuredClone(A);p.tag=`proxy-${s}`,a.push(p);const E=cs(r,u,f,e,h,!1),B=await js(E,b,!1,!1,!1,!1,!1,[f],null);if(n.push(B),t){const c=cs(r,u,f,e,h,!0),d=await js(c,[t,...b],!1,!0,!1,!1,!1,[f],null);n.push(d);const a=structuredClone(t);a.tag=`chain-${s}`,a.streamSettings.sockopt.dialerProxy=`proxy-${s}`,i.push(a)}r++,s++}}return await $s(n,d,a,i,c),c&&(await Js(n,t,a[0]),await Ks(n)),new Response(JSON.stringify(n,null,4),{status:200,headers:{"Content-Type":"text/plain;charset=utf-8","Cache-Control":"no-store","CDN-Cache-Control":"no-store"}})}async function Zs(e,c,t,d){const{warpConfigs:f}=await hs(e,c),r=t?" Pro ":" ",n=[],a=[],i=[],s=t&&!d?[Fs(!1,!0,"udp-noise")]:[];for(const[e,c]of Eo.warpEndpoints.entries()){const d=[...s],o=[...s],u=c.split(":")[0],l=Ws(f,c,!1,t),w=Ws(f,c,!0,t);d.unshift(l),o.unshift(w,l);const h=await js(`💦 ${e+1} - Warp${r}🇮🇷`,d,!1,!1,!1,!0,!1,[u],null);n.push(h);const A=await js(`💦 ${e+1} - WoW${r}🌍`,o,!1,!0,!1,!0,!1,[u],null);n.push(A);const b=structuredClone(l);b.tag=`proxy-${e+1}`,a.push(b);const p=structuredClone(w);p.tag=`chain-${e+1}`,p.streamSettings.sockopt.dialerProxy=`proxy-${e+1}`,i.push(p)}const o=Eo.warpEndpoints.map(e=>e.split(":")[0]).filter(e=>Yi(e)),u=[...a,...s],l=[...i,...a,...s],w=await js(`💦 Warp${r}- Best Ping 🚀`,u,!0,!1,!1,!0,!1,o,null),h=await js(`💦 WoW${r}- Best Ping 🚀`,l,!0,!0,!1,!0,!1,o,null);return n.push(w,h),new Response(JSON.stringify(n,null,4),{status:200,headers:{"Content-Type":"text/plain;charset=utf-8","Cache-Control":"no-store","CDN-Cache-Control":"no-store"}})}function Ys(){return[{rule:Eo.blockAds,type:"block",domain:"geosite:category-ads-all"},{rule:Eo.blockAds,type:"block",domain:"geosite:category-ads-ir"},{rule:Eo.blockPorn,type:"block",domain:"geosite:category-porn"},{rule:Eo.bypassIran,type:"direct",domain:"geosite:category-ir",ip:"geoip:ir",dns:Eo.localDNS},{rule:Eo.bypassChina,type:"direct",domain:"geosite:cn",ip:"geoip:cn",dns:Eo.localDNS},{rule:Eo.bypassRussia,type:"direct",domain:"geosite:category-ru",ip:"geoip:ru",dns:Eo.localDNS},{rule:Eo.bypassOpenAi,type:"direct",domain:"geosite:openai",dns:Eo.antiSanctionDNS},{rule:Eo.bypassMicrosoft,type:"direct",domain:"geosite:microsoft",dns:Eo.antiSanctionDNS},{rule:Eo.bypassOracle,type:"direct",domain:"geosite:oracle",dns:Eo.antiSanctionDNS},{rule:Eo.bypassDocker,type:"direct",domain:"geosite:docker",dns:Eo.antiSanctionDNS},{rule:Eo.bypassAdobe,type:"direct",domain:"geosite:adobe",dns:Eo.antiSanctionDNS},{rule:Eo.bypassEpicGames,type:"direct",domain:"geosite:epicgames",dns:Eo.antiSanctionDNS},{rule:Eo.bypassIntel,type:"direct",domain:"geosite:intel",dns:Eo.antiSanctionDNS},{rule:Eo.bypassAmd,type:"direct",domain:"geosite:amd",dns:Eo.antiSanctionDNS},{rule:Eo.bypassNvidia,type:"direct",domain:"geosite:nvidia",dns:Eo.antiSanctionDNS},{rule:Eo.bypassAsus,type:"direct",domain:"geosite:asus",dns:Eo.antiSanctionDNS},{rule:Eo.bypassHp,type:"direct",domain:"geosite:hp",dns:Eo.antiSanctionDNS},{rule:Eo.bypassLenovo,type:"direct",domain:"geosite:lenovo",dns:Eo.antiSanctionDNS}]}Xi=new WeakMap,Fi=new WeakMap;import{connect as Gs}from"cloudflare:sockets";var Qs=1,qs=2;async function eo(e,c,t,d,f,r,n){async function a(c,t){const f=Gs({hostname:c,port:t});e.value=f,n(`connected to ${c}:${t}`);const r=f.writable.getWriter();return await r.write(d),r.releaseLock(),f}async function i(){let e;const{proxyMode:d,panelIPs:i}=zo,s=e=>e[Math.floor(Math.random()*e.length)],o=e=>e?e.split(",").map(e=>e.trim()).filter(Boolean):void 0;if("proxyip"===d){n(`direct connection failed, trying to use Proxy IP for ${c}`);try{const d=o(zo.envProxyIPs)||zo.defaultProxyIPs,f=undefined,r=s(i.length?i:d),{host:n,port:u}=ss(r,!0);e=await a(n||c,u||t)}catch(e){console.error("Proxy IP connection failed:",e),f.close(1011,"Proxy IP connection failed: "+e.message)}}else if("prefix"===d){n(`direct connection failed, trying to generate dynamic prefix for ${c}`);try{const d=o(zo.envPrefixes)||zo.defaultPrefixes,f=undefined,r=s(i.length?i:d),n=await no(c,r);e=await a(n,t)}catch(e){console.error("Prefix connection failed:",e),f.close(1011,"Prefix connection failed: "+e.message)}}e.closed.catch(e=>{console.log("retry tcpSocket closed error",e)}).finally(()=>{ro(f)}),co(e,f,r,null,n)}try{const e=undefined;co(await a(c,t),f,r,i,n)}catch(e){console.error("Connection failed:",err),f.close(1011,"Connection failed")}}async function co(e,c,t,d,f){let r=t,n=!1;await e.readable.pipeTo(new WritableStream({start(){},async write(e,t){n=!0,1!==c.readyState&&t.error("webSocket.readyState is not open, maybe close"),r?(c.send(await new Blob([r,e]).arrayBuffer()),r=null):c.send(e)},close(){f(`remoteConnection!.readable is close with hasIncomingData is ${n}`)},abort(e){console.error("remoteConnection!.readable abort",e)}})).catch(e=>{console.error("VLRemoteSocketToWS has exception ",e.stack||e),ro(c)}),!1===n&&d&&(f("retry"),d())}function to(e,c,t){let d=!1;const f=undefined;return new ReadableStream({start(f){e.addEventListener("message",e=>{if(d)return;const c=e.data;f.enqueue(c)}),e.addEventListener("close",()=>{ro(e),d||f.close()}),e.addEventListener("error",e=>{t("webSocketServer has error"),f.error(e)});const{earlyData:r,error:n}=fo(c);n?f.error(n):r&&f.enqueue(r)},pull(e){},cancel(c){d||(t(`ReadableStream was canceled, due to ${c}`),d=!0,ro(e))}})}function fo(e){if(!e)return{earlyData:null,error:null};try{e=e.replace(/-/g,"+").replace(/_/g,"/");const c=atob(e),t=undefined;return{earlyData:Uint8Array.from(c,e=>e.charCodeAt(0)).buffer,error:null}}catch(e){return{earlyData:null,error:e}}}function ro(e){try{1!==e.readyState&&2!==e.readyState||e.close()}catch(e){console.error("safeCloseWebSocket error",e)}}async function no(e,c){let t=e;if(!ns(e)){const{ipv4:c}=await Gi(e,!0);if(!c.length)throw new Error("Unable to find IPv4 in DNS records");t=c[0]}return ao(t,c)}function ao(e,c){const t=e.split(".");if(4!==t.length)throw new Error("Invalid IPv4 address");const d=t.map(e=>{const c=parseInt(e,10);if(c<0||c>255)throw new Error("Invalid IPv4 address");return c.toString(16).padStart(2,"0")}),f=c.match(/^\[([0-9A-Fa-f:]+)\]$/);if(f)return`[${f[1]}${d[0]}${d[1]}:${d[2]}${d[3]}]`}async function io(e){const c=new WebSocketPair,[t,d]=Object.values(c);d.accept();let f="",r="";const n=(e,c)=>{console.log(`[${f}:${r}] ${e}`,c||"")},a=e.headers.get("sec-websocket-protocol")||"",i=to(d,a,n);let s={value:null},o=null,u=!1;return i.pipeTo(new WritableStream({async write(e){if(u&&o)return o(e);if(s.value){const c=s.value.writable.getWriter();return await c.write(e),void c.releaseLock()}const{hasError:c,message:t,portRemote:a=443,addressRemote:i="",rawDataIndex:l,VLVersion:w=new Uint8Array([0,0]),isUDP:h}=so(e,Uo.userID);if(f=i,r=`${a}--${Math.random()} ${h?"udp ":"tcp "} `,c)throw new Error(t);const A=new Uint8Array([w[0],0]),b=e.slice(l);if(h){if(53===a){u=!0;const{write:e}=await wo(d,A,n);return o=e,void o(b)}throw new Error("UDP proxy only enable for DNS which is port 53")}eo(s,i,a,b,d,A,n)},close(){n("readableWebSocketStream is close")},abort(e){n("readableWebSocketStream is abort",JSON.stringify(e))}})).catch(e=>{n("readableWebSocketStream pipeTo error",e)}),new Response(null,{status:101,webSocket:t})}function so(e,c){if(e.byteLength<24)return{hasError:!0,message:"invalid data"};const t=new Uint8Array(e.slice(0,1));let d=!1,f=!1;const r=undefined,n=undefined;if(d=lo(new Uint8Array(e.slice(1,17)))===c,!d)return{hasError:!0,message:"invalid user"};const a=new Uint8Array(e.slice(17,18))[0],i=new Uint8Array(e.slice(18+a,18+a+1))[0];if(1===i);else{if(2!==i)return{hasError:!0,message:`command ${i} is not support, command 01-tcp,02-udp,03-mux`};f=!0}const s=18+a+1,o=e.slice(s,s+2),u=new DataView(o).getUint16(0);let l=s+2;const w=undefined,h=new Uint8Array(e.slice(l,l+1))[0];let A=0,b=l+1,p="";switch(h){case 1:A=4,p=new Uint8Array(e.slice(b,b+A)).join(".");break;case 2:A=new Uint8Array(e.slice(b,b+1))[0],b+=1,p=(new TextDecoder).decode(e.slice(b,b+A));break;case 3:{A=16;const c=new DataView(e.slice(b,b+A)),t=[];for(let e=0;e<8;e++)t.push(c.getUint16(2*e).toString(16));p=t.join(":");break}default:return{hasError:!0,message:`invild addressType is ${h}`}}return p?{hasError:!1,addressRemote:p,addressType:h,portRemote:u,rawDataIndex:b+A,VLVersion:t,isUDP:f}:{hasError:!0,message:`addressValue is empty, addressType is ${h}`}}var oo=[];for(let e=0;e<256;++e)oo.push((e+256).toString(16).slice(1));function uo(e,c=0){return(oo[e[c+0]]+oo[e[c+1]]+oo[e[c+2]]+oo[e[c+3]]+"-"+oo[e[c+4]]+oo[e[c+5]]+"-"+oo[e[c+6]]+oo[e[c+7]]+"-"+oo[e[c+8]]+oo[e[c+9]]+"-"+oo[e[c+10]]+oo[e[c+11]]+oo[e[c+12]]+oo[e[c+13]]+oo[e[c+14]]+oo[e[c+15]]).toLowerCase()}function lo(e,c=0){const t=uo(e,c);if(!Io(t))throw TypeError("Stringified UUID is invalid");return t}async function wo(e,c,t){let d=!1;const f=new TransformStream({start(e){},transform(e,c){for(let t=0;t>8&255,255&a]);1===e.readyState&&(t(`doh success and dns message length is ${a}`),d?e.send(await new Blob([i,n]).arrayBuffer()):(e.send(await new Blob([c,i,n]).arrayBuffer()),d=!0))}})).catch(e=>{t("dns udp has error"+e)});const r=f.writable.getWriter();return{write(e){r.write(e)}}}async function ho(e){const c=new WebSocketPair,[t,d]=Object.values(c);d.accept();let f="",r="";const n=(e,c)=>{console.log(`[${f}:${r}] ${e}`,c||"")},a=e.headers.get("sec-websocket-protocol")||"",i=to(d,a,n);let s={value:null},o=null;return i.pipeTo(new WritableStream({async write(e,c){if(null)return o(e);if(s.value){const c=s.value.writable.getWriter();return await c.write(e),void c.releaseLock()}const{hasError:t,message:a,portRemote:i=443,addressRemote:u="",rawClientData:l}=Ao(e);if(f=u,r=`${i}--${Math.random()} tcp`,t)throw new Error(a);eo(s,u,i,l,d,null,n)},close(){n("readableWebSocketStream is closed")},abort(e){n("readableWebSocketStream is aborted",JSON.stringify(e))}})).catch(e=>{n("readableWebSocketStream pipeTo error",e)}),new Response(null,{status:101,webSocket:t})}function Ao(e){if(e.byteLength<56)return{hasError:!0,message:"invalid data"};let c=56;if(13!==new Uint8Array(e.slice(56,57))[0]||10!==new Uint8Array(e.slice(57,58))[0])return{hasError:!0,message:"invalid header format (missing CR LF)"};const t=undefined;if((new TextDecoder).decode(e.slice(0,c))!==bo(Uo.TrPass))return{hasError:!0,message:"invalid password"};const d=e.slice(58);if(d.byteLength<6)return{hasError:!0,message:"invalid SOCKS5 request data"};const f=new DataView(d),r=undefined;if(1!==f.getUint8(0))return{hasError:!0,message:"unsupported command, only TCP (CONNECT) is allowed"};const n=f.getUint8(1);let a=0,i=2,s="";switch(n){case 1:a=4,s=new Uint8Array(d.slice(i,i+a)).join(".");break;case 3:a=new Uint8Array(d.slice(i,i+1))[0],i+=1,s=(new TextDecoder).decode(d.slice(i,i+a));break;case 4:{a=16;const e=new DataView(d.slice(i,i+a)),c=[];for(let t=0;t<8;t++)c.push(e.getUint16(2*t).toString(16));s=c.join(":");break}default:return{hasError:!0,message:`invalid addressType is ${n}`}}if(!s)return{hasError:!0,message:`address is empty, addressType is ${n}`};const o=i+a,u=d.slice(o,o+2),l=undefined;return{hasError:!1,addressRemote:s,portRemote:new DataView(u).getUint16(0),rawClientData:d.slice(o+4)}}function bo(e){const c=(e,c)=>e>>>c|e<<32-c,t=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428],d=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],f=undefined,r=(e=>{const c=[];for(let t=0;t>6,128|63&d):d<55296||d>=57344?c.push(224|d>>12,128|d>>6&63,128|63&d):(t++,d=65536+((1023&d)<<10|1023&e.charCodeAt(t)),c.push(240|d>>18,128|d>>12&63,128|d>>6&63,128|63&d))}return c})(e),n=8*r.length;for(r.push(128);r.length%64!=56;)r.push(0);const a=Math.floor(n/4294967296),i=4294967295&n;for(let e=3;e>=0;e--)r.push(a>>8*e&255);for(let e=3;e>=0;e--)r.push(i>>8*e&255);for(let e=0;e>>3,d=c(f[e-2],17)^c(f[e-2],19)^f[e-2]>>>10;f[e]=f[e-16]+t+f[e-7]+d|0}let[n,a,i,s,o,u,l,w]=t;for(let e=0;e<64;e++){const t=undefined,r=undefined,h=w+(c(o,6)^c(o,11)^c(o,25))+(o&u^~o&l)+d[e]+f[e]|0,A=undefined,b=n&a^n&i^a&i,p=undefined;w=l,l=u,u=o,o=s+h|0,s=i,i=a,a=n,n=h+((c(n,2)^c(n,13)^c(n,22))+b|0)|0}t[0]=t[0]+n|0,t[1]=t[1]+a|0,t[2]=t[2]+i|0,t[3]=t[3]+s|0,t[4]=t[4]+o|0,t[5]=t[5]+u|0,t[6]=t[6]+l|0,t[7]=t[7]+w|0}return t.slice(0,7).map(e=>("00000000"+(e>>>0).toString(16)).slice(-8)).join("")}var po=oa(ba(),1),Eo={};async function Bo(e){const c=Uo.pathName.replace("/","")||"";try{const{protocol:t,mode:d,panelIPs:f}=JSON.parse(atob(c));switch(Object.assign(zo,{wsProtocol:t,proxyMode:d,panelIPs:f}),t){case"vl":return await io(e);case"tr":return await ho(e);default:return await vo(e)}}catch(e){return new Response("Failed to parse WebSocket path config",{status:400})}}async function Ho(e,c){switch(Uo.pathName){case"/panel":return await _o(e,c);case"/panel/settings":return await Ro(e,c);case"/panel/update-settings":return await xo(e,c);case"/panel/reset-settings":return await To(e,c);case"/panel/reset-password":return await Zi(e,c);case"/panel/my-ip":return await Mo(e);case"/panel/update-warp":return await Oo(e,c);case"/panel/get-warp-configs":return await ko(e,c);default:return await vo(e)}}async function mo(e){const c=Lo("3c21444f43545950452068746d6c3e3c68746d6c206c616e673d656e3e3c686561643e3c6d65746120636861727365743d5554462d383e3c6d657461206e616d653d76696577706f727420636f6e74656e743d2277696474683d6465766963652d77696474682c696e697469616c2d7363616c653d31223e3c7469746c653e4250422050616e656c2076332e362e313c2f7469746c653e3c6c696e6b2072656c3d69636f6e20687265663d2f66617669636f6e2e69636f3e3c7374796c653e3a726f6f747b2d2d636f6c6f723a626c61636b3b2d2d6865616465722d636f6c6f723a233039363339663b2d2d6261636b67726f756e642d636f6c6f723a236666663b2d2d626f726465722d636f6c6f723a236464643b2d2d6865616465722d736861646f773a3270782032707820347078207267626128302c20302c20302c20302e3235297d626f64792c68746d6c7b6865696768743a313030253b77696474683a313030253b6d617267696e3a303b646973706c61793a666c65783b6a7573746966792d636f6e74656e743a63656e7465723b616c69676e2d6974656d733a63656e7465723b666f6e742d66616d696c793a73797374656d2d75693b636f6c6f723a766172282d2d636f6c6f72293b6261636b67726f756e642d636f6c6f723a766172282d2d6261636b67726f756e642d636f6c6f72293b746578742d616c69676e3a63656e7465727d626f64792e6461726b2d6d6f64657b2d2d636f6c6f723a77686974653b2d2d6865616465722d636f6c6f723a233334393844423b2d2d6261636b67726f756e642d636f6c6f723a233132313231323b2d2d6865616465722d736861646f773a32707820327078203470782072676261283235352c203235352c203235352c20302e3235297d68317b636f6c6f723a766172282d2d6865616465722d636f6c6f72293b746578742d736861646f773a766172282d2d6865616465722d736861646f77297d617b636f6c6f723a766172282d2d6865616465722d636f6c6f72297d2e69636f6e7b766572746963616c2d616c69676e3a6d6964646c653b6865696768743a3372656d7d3c2f7374796c653e3c2f686561643e3c626f64793e3c6469762069643d6572726f722d636f6e7461696e65723e3c68313e3c696d6720636c6173733d69636f6e207372633d2f66617669636f6e2e69636f20616c743d22425042204c6f676f223e204250422050616e656c203c7370616e2069643d70616e656c2d76657273696f6e207374796c653d666f6e742d73697a653a736d616c6c65723e76332e362e313c2f7370616e3e3c2f68313e3c6469762069643d6572726f722d6d6573736167653e3c68323ee29d8c20536f6d657468696e672077656e742077726f6e67213c2f68323e3c703e3c623e5f5f4552524f525f4d4553534147455f5f3c2f623e3c2f703e3c2f6469763e3c2f6469763e3c7363726970743e6c6f63616c53746f726167652e6765744974656d28276461726b4d6f64652729203d3d3d2027656e61626c65642720262620646f63756d656e742e626f64792e636c6173734c6973742e61646428276461726b2d6d6f646527293b3c2f7363726970743e3c2f626f64793e3c2f68746d6c3e").replace("__ERROR_MESSAGE__",e.message);return new Response(c,{status:200,headers:{"Content-Type":"text/html"}})}async function go(e,c){return"/login"===Uo.pathName?await Co(e,c):"/login/authenticate"===Uo.pathName?await $i(e,c):await vo(e)}async function yo(e,c){const t=await hs(e,c);Eo=t.settings;const{client:d,subPath:f}=No,r=undefined;switch(decodeURIComponent(Uo.pathName)){case`/sub/normal/${f}`:switch(d){case"xray":return await Vs(c,!1);case"sing-box":return await Os(c,!1);case"clash":return await xs(c);default:break}case`/sub/fragment/${f}`:switch(d){case"xray":return await Vs(c,!0);case"sing-box":return await Os(c,!0);default:break}case`/sub/warp/${f}`:switch(d){case"xray":return await Zs(e,c,!1,!1);case"sing-box":return await Ds(e,c);case"clash":return await Ts(e,c,!1);default:break}case`/sub/warp-pro/${f}`:switch(d){case"xray":return await Zs(e,c,!0,!1);case"xray-knocker":return await Zs(e,c,!0,!0);case"clash":return await Ts(e,c,!0);default:break}default:return await vo(e)}}async function xo(e,c){if("POST"===e.method){const t=undefined;if(!await Ki(e,c))return await Do(!1,401,"Unauthorized or expired session.");const d=await As(e,c);return await Do(!0,200,null,d)}return await Do(!1,405,"Method not allowed.")}async function To(e,c){if("POST"===e.method){const t=undefined;if(!await Ki(e,c))return await Do(!1,401,"Unauthorized or expired session.");const d=await As(e,c);return await Do(!0,200,null,d)}return await Do(!1,405,"Method not allowed!")}async function Ro(e,c){const t=!!await c.kv.get("pwd"),d=undefined;if(!await Ki(e,c))return await Do(!1,401,"Unauthorized or expired session.",{isPassSet:t});const f=undefined,r={proxySettings:(await hs(e,c)).settings,isPassSet:t,subPath:No.subPath};return await Do(!0,200,null,r)}async function vo(e){const{url:c,method:t,headers:d,body:f}=e,r=new URL(c);r.hostname=Uo.fallbackDomain,r.protocol="https:";const n=new Request(r.toString(),{method:t,headers:d,body:f,redirect:"manual"});return await fetch(n)}async function Mo(e){const c=await e.text();try{const e=await fetch(`http://ip-api.com/json/${c}?nocache=${Date.now()}`),t=await e.json();return await Do(!0,200,null,t)}catch(e){return console.error("Error fetching IP address:",e),await Do(!1,500,`Error fetching IP address: ${e}`)}}async function ko(e,c){const t="amnezia"===No.client,d=undefined;if(!await Ki(e,c))return new Response("Unauthorized or expired session.",{status:401});const{warpConfigs:f,settings:r}=await hs(e,c),n=es(f,!1),{warpIPv6:a,publicKey:i,privateKey:s}=n,{warpEndpoints:o,amneziaNoiseCount:u,amneziaNoiseSizeMin:l,amneziaNoiseSizeMax:w}=r,h=new po.default,A=e=>e.split("\n").map(e=>e.trim()).join("\n"),b=t?`Jc = ${u}\n Jmin = ${l}\n Jmax = ${w}\n S1 = 0\n S2 = 0\n H1 = 0\n H2 = 0\n H3 = 0\n H4 = 0`:"";try{o.forEach((e,c)=>{h.file(`${atob("QlBC")}-Warp-${c+1}.conf`,A(`[Interface]\n PrivateKey = ${s}\n Address = 172.16.0.2/32, ${a}\n DNS = 1.1.1.1, 1.0.0.1\n MTU = 1280\n ${b}\n [Peer]\n PublicKey = ${i}\n AllowedIPs = 0.0.0.0/0, ::/0\n Endpoint = ${e}\n PersistentKeepalive = 25`))});const e=await h.generateAsync({type:"blob"}),c=await e.arrayBuffer();return new Response(c,{headers:{"Content-Type":"application/zip","Content-Disposition":`attachment; filename="${atob("QlBC")}-Warp-${t?"Pro-":""}configs.zip"`}})}catch(e){return new Response(`Error generating ZIP file: ${e}`,{status:500})}}async function So(){const e="AAABAAEAQEAAAAEAIAAoQgAAFgAAACgAAABAAAAAgAAAAAEAIAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAABMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcASGtEBSs/KFsRGRCyAwQC5wAAAPoBAgHtDxYOvyU2InFEZD8QTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcAOVQ1LgcLB9UAAAD/AQEA/ykjGP9ANyb/MCod/wUEA/8AAAD/AgQC6yo/J1dMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcAOVU2KwIDAu4AAAD/Wk01/9W3f//105L/9dOS//XTkv/jxIf/emlI/wYFA/8AAAD/JjgjZkxwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAEptRQE2UDM3IjMgehQdEqsNFAzHBwsHzw4VDcUWIRWmJTcjcTpVNilMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcASGpDBgcKBtcAAAD/lYBY//XTkv/105L/9dOS//XTkv/105L/9dOS//TSkf+xjE7/DQoF/wABAPg6VTYsTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcAS25GAC1DKlQHCwfXAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/DBILwzVPMjhMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHACo/J1sAAAD/VUkz//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/xzIj/5LJh/5t5Qv8AAAD/EhoRrUxwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcAPls5IA4VDbwAAAD/BAMC/0k+K/+VgFn/y695/+rKi//00pH/6MiK/8aqdv+JdlH/Ny8h/wAAAP8AAAD9FyIVmkVlQA1McEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwARGRC0AAAA/8Gmc//105L/9dOS//XTkv/105L/9dOS//XTkv/105L/6r90/+SyYf/jsWD/MiYV/wAAAPlCYj4STHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcANlAyNQIEAuoAAAD/S0As/9O2fv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv+/pHH/Lykc/wAAAP8JDQjSQF88GUxwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBIakMFAAEA9R4aEv/00pH/9dOS//XTkv/105L/9dOS//XTkv/105L/8s2K/+SyYf/ksmH/5LJh/3pfM/8AAAD/LkQrUExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcAO1g3JQIDAu0CAQH/iXZR//TSkf/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS/+7Njv9bTjb/AAAA/wkNCM9GZ0EKTHBHAExwRwBMcEcATHBHAExwRwBMcEcAOFQ0LwAAAP9bTjb/9dOS//XTkv/105L/9dOS//XTkv/105L/9NKR/+i6bv/ksmH/5LJh/+SyYf+XdkD/AAAA/yo+J21McEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcARWZBDAcLBtgAAAD/lH9Y//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9NKR/15PM/8AAAD/ExwRp0tuRgBMcEcATHBHAExwRwBMcEcATHBHAC1EKlYAAAD/iXZR//XTkv/105L/9dOS//XTkv/105L/9dOS/+3Ffv/ksmH/5LJh/+SyYf/ksmH/kXE9/wAAAP8qPidmTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHABspGYwAAAD/ZVc8//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/lunH/MSYU/wAAAP8sQSlUTHBHAExwRwBMcEcATHBHAExwRwAjNCB3AAAA/66WZ//105L/9dOS//XTkv/105L/9dOS//DKhf/ksmL/5LJh/+SyYf/ksmH/5LJh/2ROKv8AAAD/NE4xPExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAEJhPRMAAQD2ExAL/+fHiv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/6bxw/7WNTP8AAAD/CAwH0ktuRgBMcEcATHBHAExwRwBMcEcAHSobjwAAAP/JrXf/9dOS//XTkv/105L/9dOS//HMiP/ks2P/5LJh/+SyYf/ksmH/5LJh/92tXv8WEQn/AgMC60lrRARMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwAlNyNuAAAA/4RyTv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS/+e4av/ksmH/QzQc/wAAAP82UDI2THBHAExwRwBMcEcATHBHABYhFaEAAAD/3b6D//XTkv/105L/9dOS//LNif/ltWX/5LJh/+SyYf/ksmH/5LJh/+OxYP9iTCn/AAAA/x4tHIRMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcADhYOuwQDAv/kxIf/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//TRkP/ksmL/5LJh/6J+RP8AAAD/HiwchkxwRwBMcEcATHBHAExwRwASGxGxAAAA/+7Njv/105L/9dOS//DLhv/ltGX/5LJh/+SyYf/ksmH/5LJh/9WmWv9bRyb/AAAA/wgMB9dFZkELTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAAIDAucqJBn/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/wyoX/5LJh/+SyYf/drF3/BQMC/w4WDr5McEcATHBHAExwRwBMcEcADxYOvgYGA//105L/9dOS/+/Igv/ksmL/5LJh/+SyYf/gr1//rohK/19KKP8LCQT/AAAA/wUIBd88WTgkTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAEptRQAAAAD8QTgm//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/6r91/+SyYf/ksmH/5LJh/yMcD/8EBgTiTHBHAExwRwBMcEcATHBHAAsQCsoPDQn/zK95/7CUYf+Pbz3/dFsx/1ZDJP8xJhT/CAcD/wAAAP8AAAD/AgMC7B4sHIRFZUANTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBJbEQAAAAA/EM5J//105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9NKQ/+W0ZP/ksmH/5LJh/+SyYf81KRb/AAAA8kxwRwBMcEcATHBHAExwRwAHCwfYAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAEA8wsRC8ccKhqQMUguSUdpQwZMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAAABAO0yKx7/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS/+/Igv/ksmH/5LJh/+SyYf/ksmH/MicV/wAAAO9McEcATHBHAExwRwBMcEcAHiwcghAXDroZJReeIDAegik8JmQzTDBEPlw6IElsRAFMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwAJDgnRFRIM//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/ou27/5LJh/+SyYf/ksmH/5LJh/xoUCv8HCwfYTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcAFB4TpwAAAP/cvYL/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/yzYr/5LJh/+SyYf/ksmH/5LJh/8yfVv8AAAD/FB0Sq0xwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHACQ1IXUAAAD/o4xh//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/6r50/+SyYf/ksmH/5LJh/+SyYf+AZDb/AAAA/yY5I2tMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwA0TjE7AAAA/2FUOv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/8s6L/+SyYv/ksmH/5LJh/+SyYf/ZqVz/GRMK/wABAPhBXzwYTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcASGpDBQECAfAXEw3/8tGQ//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS/+m8cP/ksmH/5LJh/+SyYf/ksmH/XEcn/wAAAP8aJxmOTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHADhTNC4fLh2FDhUNwAUIBeAAAADpBwsH2RIbEbMlNiJ0P147G0xwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwASHBGuAAAA/8Clcv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//DLhv/ksmH/5LJh/+SyYf/ksmH/kXE9/wAAAP8FCAXeRWVADUxwRwBMcEcATHBHAExwRwBMcEcARWVADhQdEqUAAAD/AAAA/wAAAP8PDQn/GhYP/wgHBf8AAAD/AAAA/wAAAPkaJhiQRWVADExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcAKT0mYAAAAP9yYkT/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//TSkf/nuWz/5LJh/+SyYf/ksmH/mXhB/wYEAv8CAwLtOVU2LExwRwBMcEcATHBHAExwRwBMcEcAO1g3JggMB9cAAAD/KCIX/5aBWf/dvoT/9dOS//XTkv/z0ZD/zbF6/4NxTv8bFxD/AAAA/wcLB9k6VTYsTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAEJiPRAAAQD3HhoR//PRkf/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/ux4D/5LJh/+SyYf/jsWD/el8z/wEBAP8CAwLwNlAyOExwRwBMcEcATHBHAExwRwBMcEcANlAyNQIDAu4BAAD/eWhI//HQkP/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/68qM/3JiQ/8CAQH/AgMC8TdRMzZMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcAExwRqQAAAP+7oW//9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/00Y//5bVm/+SyYf/gr1//XUgn/wAAAP8CBALuNE4xOExwRwBMcEcATHBHAExwRwBMcEcAP106HQMEA+kAAAD/i3dS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/k35X/wAAAP8EBwThRWVADExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHADFJLkQAAAD/Y1U6//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/6r91/+SyYf/AllH/MCUU/wAAAP8JDQjRPFk4JUxwRwBMcEcATHBHAExwRwBMcEcARmhCCQsQCsoAAAD/gnBN//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv9tXkH/AAAA/x4sHIhMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBKbUUABwsH2Q0LB//oyIr/9dOS//XTkv/105L/9dOS//XTkv/105L/8MmE/+KxYP+DZjf/CQcD/wAAAP8VHxOgRmhBCkxwRwBMcEcATHBHAExwRwBMcEcAS25GABMdEqgAAAD/aFk+//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/786O/yIeFP8BAgH0QmI+EUxwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHACIyH3kAAAD/jnpU//XTkv/105L/9dOS//XTkv/105L/9NGQ/8adWv82Khb/AAAA/wIDAvApPSdZTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHACg7JWIAAAD/Licb/+/Ojv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv+GdFD/AAAA/yc6JWZMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwA/XTsbAAAA+iYgFv/z0ZH/9dOS//XTkv/105L/8M6O/4JtSP8JBwT/AAAA/w8WDrs9WjkgTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAD9dOxoCAwLuCAcE/8queP/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/zrF6/wAAAP8THRKqTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHABMcEqwAAAD/sJhp//XTkv/105L/qpJl/yMeFf8AAAD/BQcE4yo/KFhLbkYATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAEtuRgARGRCyAAAA/5R/WP/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//PRkf8HBgT/CAwH1UxwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwAwRy1JAAAA/1JHMf/WuH//SD0q/wAAAP8AAAD/FiEVnUVlQA5McEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwArQChXAAAA/0I4J//00pH/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/FBEM/wECAeJMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcASGtDAwQHBOAGBQP/CgkG/wAAAP8LEArJNU4xOkxwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBCYj4UAwQC6QcGBP/Psnv/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9NKR/wgHBf8IDAfWTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwAiMyBzAAAA/wUHBOMqPidcSm1FAkxwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcAFiEVngAAAP97akn/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS/9K0fP8AAAD/EhwRrkxwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcAR2lCBitAKV9FZUAOTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcANU8xOAAAAP4hHBP/7cyN//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv+MeVP/AAAA/yY4I2tMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcASWxEAgoPCc0AAAD/qJBj//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/y0JD/KSMY/wABAPdAXzwVTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAEZnQQ0AAQD0AAAA/wgHBP9lVjz/1bd+//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9NKR//HMiP/tw3v/f2c+/wAAAP8YIxaZTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcAPls6HR8tHIUDBAPoAAAA/wMDAv9IPiv/p49h/+zGgf/wyYT/8MqE//DJhP/wyYP/78iC/+7HgP/txX3/7MN6/+vAdf/pvHD/57hq/+SzYv/ksmH/on5E/wQDAf8CBALrQWA8GExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcASGpDBSxBKVUNFAzCAAAA/wAAAP8VEQn/ZE4q/7KLS//jsWD/5LJh/+SyYf/ksmH/5LJh/+SyYf/ksmH/5LJh/+SyYf/hsF//gGQ2/wYEAv8AAQD4MUkuQ0xwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHADlUNSwZJReXAAEA9AAAAP8AAAD/HBYM/2NNKv+hfkT/1qdb/+SyYf/ksmH/5LJh/+GvX/+jf0X/LyQT/wAAAP8CAwLwMUguQ0xwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAERkPw8qPyheEhsRsAABAPUAAAD/AAAA/wAAAP8WEQn/KB8R/yYeEP8KCAT/AAAA/wAAAP8PFw61PFk4JUxwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBFZkEKMkovRCExH38THBGwCQ0I0gMFA+QFBwTiCxELyB0rG484UjQwTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcA////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////gD////////8AH////////gAP///+AH/8AAf///wAH/wAB///8AAH/AAD///gAAP4AAP//8AAAfgAA///gAAB+AAD//+AAAD4AAP//wAAAPgAA///AAAAeAAH//8AAAB4AAf//wAAAHgAD///AAAAeAAf//8AAAB4AH///wAAAHgH////AAAAf/////8AAAB//////wAAAH//////AAAAf/////8AAAD+AP///4AAAPgAP///gAAB8AAf//+AAAPgAA///8AAB8AAB///wAAPgAAH///gAB+AAAP//+AAfwAAA///4AD+AAAD///wA/4AAAP///AH/AAAA///8B/4AAAD///4P/gAAAP///j/8AAAA//////gAAAD/////+AAAAf/////8AAAB//////8AAAP//////+AAB///////+AAP////////AD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8=",c=Uint8Array.from(atob(e),e=>e.charCodeAt(0));return new Response(c,{headers:{"Content-Type":"image/x-icon","Cache-Control":"public, max-age=86400"}})}async function _o(e,c){const t=undefined;if(await c.kv.get("pwd")){const t=undefined;if(!await Ki(e,c))return Response.redirect(`${No.urlOrigin}/login`,302)}const d=Lo("3c21444f43545950452068746d6c3e3c68746d6c206c616e673d656e3e3c686561643e3c6d65746120636861727365743d5554462d383e3c6d657461206e616d653d76696577706f727420636f6e74656e743d2277696474683d6465766963652d77696474682c696e697469616c2d7363616c653d31223e3c7469746c653e4250422050616e656c2076332e362e313c2f7469746c653e3c6c696e6b2072656c3d69636f6e20687265663d2f66617669636f6e2e69636f3e3c6c696e6b2072656c3d7374796c65736865657420687265663d68747470733a2f2f63646e6a732e636c6f7564666c6172652e636f6d2f616a61782f6c6962732f666f6e742d617765736f6d652f342e372e302f6373732f666f6e742d617765736f6d652e6d696e2e6373733e3c6c696e6b2072656c3d7374796c65736865657420687265663d2268747470733a2f2f666f6e74732e676f6f676c65617069732e636f6d2f637373323f66616d696c793d4d6174657269616c2b53796d626f6c732b526f756e6465643a6f70737a2c776768742c46494c4c2c475241444032302e2e34382c3130302e2e3730302c302e2e312c2d35302e2e3230302669636f6e5f6e616d65733d6164645f636972636c652c6175746f72656e65772c636865636b5f636972636c652c636f6e74656e745f636f70792c64656c6574652c646f776e6c6f61642c66696e6765727072696e742c696e666f2c6b65795f766572746963616c2c6f70656e5f696e5f6e65772c71725f636f64652c73657474696e67732c73686172652c7465726d696e616c2c74756e652c76657269666965642c7669736962696c6974792c7669736962696c6974795f6f666626646973706c61793d626c6f636b223e3c7374796c653e3a726f6f747b2d2d636f6c6f723a626c61636b3b2d2d7072696d6172792d636f6c6f723a233039363339663b2d2d7365636f6e646172792d636f6c6f723a233334393864623b2d2d6865616465722d636f6c6f723a233039363339663b2d2d6261636b67726f756e642d636f6c6f723a236666663b2d2d666f726d2d6261636b67726f756e642d636f6c6f723a236639663966393b2d2d7461626c652d6163746976652d636f6c6f723a236632663266323b2d2d68722d746578742d636f6c6f723a233362336233623b2d2d6c61626c652d746578742d636f6c6f723a233333333b2d2d626f726465722d636f6c6f723a236464643b2d2d627574746f6e2d636f6c6f723a233039363339663b2d2d696e7075742d6261636b67726f756e642d636f6c6f723a77686974653b2d2d6865616465722d736861646f773a3270782032707820347078207267626128302c20302c20302c20302e3235293b2d2d636f6e7461696e65722d626f726465722d7261646975733a323870783b2d2d696e6e65722d636f6e7461696e65722d626f726465722d7261646975733a313470783b2d2d656c656d656e742d626f726465722d7261646975733a313070783b2d2d636f6e7461696e65722d70616464696e673a323870783b2d2d636f6e7461696e65722d6761703a323070783b2d2d636f6e7461696e65722d626f782d736861646f773a302032707820347078207267626128302c20302c20302c20302e31293b2d2d696e6e65722d636f6e7461696e65722d70616464696e673a313470783b2d2d696e6e65722d636f6e7461696e65722d6761703a313470787d626f64797b666f6e742d66616d696c793a5477656d6f6a6920436f756e74727920466c6167732c73797374656d2d75693b6261636b67726f756e642d636f6c6f723a766172282d2d6261636b67726f756e642d636f6c6f72293b636f6c6f723a766172282d2d636f6c6f72293b746578742d616c69676e3a63656e7465727d2a2c3a3a61667465722c3a3a6265666f72657b626f782d73697a696e673a626f726465722d626f787d626f64792e6461726b2d6d6f64657b2d2d636f6c6f723a77686974653b2d2d7072696d6172792d636f6c6f723a233039363339463b2d2d7365636f6e646172792d636f6c6f723a233334393844423b2d2d6865616465722d636f6c6f723a233334393844423b2d2d6261636b67726f756e642d636f6c6f723a233132313231323b2d2d666f726d2d6261636b67726f756e642d636f6c6f723a233132313231323b2d2d7461626c652d6163746976652d636f6c6f723a233235323532353b2d2d68722d746578742d636f6c6f723a234435443544353b2d2d6c61626c652d746578742d636f6c6f723a234446444644463b2d2d626f726465722d636f6c6f723a233335333533353b2d2d627574746f6e2d636f6c6f723a233334393844423b2d2d696e7075742d6261636b67726f756e642d636f6c6f723a233235323532353b2d2d6865616465722d736861646f773a32707820327078203470782072676261283235352c203235352c203235352c20302e3235293b2d2d636f6e7461696e65722d626f782d736861646f773a3020327078203470782072676261283235352c203235352c203235352c20302e31297d68317b636f6c6f723a766172282d2d6865616465722d636f6c6f72293b746578742d736861646f773a766172282d2d6865616465722d736861646f77297d2e69636f6e7b766572746963616c2d616c69676e3a6d6964646c653b6865696768743a3372656d7d2e636f6e7461696e65727b646973706c61793a666c65783b666c65782d646972656374696f6e3a636f6c756d6e3b626f726465723a31707820736f6c696420766172282d2d626f726465722d636f6c6f72293b626f726465722d7261646975733a766172282d2d636f6e7461696e65722d626f726465722d726164697573293b70616464696e673a766172282d2d636f6e7461696e65722d70616464696e67293b626f782d736861646f773a766172282d2d636f6e7461696e65722d626f782d736861646f77297d2e73656374696f6e202e636f6e7461696e65727b6761703a766172282d2d636f6e7461696e65722d676170297d2e636f6e7461696e65723e2e73656374696f6e7b6d617267696e3a307d2e696e6e65722d636f6e7461696e65727b646973706c61793a666c65783b666c65782d646972656374696f6e3a636f6c756d6e3b6761703a766172282d2d696e6e65722d636f6e7461696e65722d676170293b626f782d736861646f773a766172282d2d636f6e7461696e65722d626f782d736861646f77293b626f726465723a31707820736f6c696420766172282d2d626f726465722d636f6c6f72293b626f726465722d7261646975733a766172282d2d696e6e65722d636f6e7461696e65722d626f726465722d726164697573293b70616464696e673a766172282d2d696e6e65722d636f6e7461696e65722d70616464696e67297d2e666f726d2d636f6e7461696e65727b6d61782d77696474683a3930253b6d617267696e3a30206175746f3b6261636b67726f756e643a766172282d2d666f726d2d6261636b67726f756e642d636f6c6f72293b6d617267696e2d626f74746f6d3a333070787d2e636f6e666967466f726d7b646973706c61793a666c65783b666c65782d646972656374696f6e3a636f6c756d6e7d2e73656374696f6e7b646973706c61793a666c65783b666c65782d646972656374696f6e3a636f6c756d6e3b6761703a766172282d2d636f6e7461696e65722d676170293b6d617267696e2d626f74746f6d3a766172282d2d636f6e7461696e65722d676170297d2e666f726d2d636f6e74726f6c7b77696474683a313030253b646973706c61793a666c65783b666c65782d646972656374696f6e3a636f6c756d6e3b616c69676e2d6974656d733a63656e7465723b6a7573746966792d636f6e74656e743a73706163652d6265747765656e3b6761703a313670787d2e666f726d2d636f6e74726f6c206469767b646973706c61793a666c65783b666c65783a313b77696474683a313030257d2e666f726d2d636f6e74726f6c206c6162656c7b666c65783a313b746578742d616c69676e3a63656e7465723b77696474683a313030253b666f6e742d7765696768743a3730303b636f6c6f723a766172282d2d6c61626c652d746578742d636f6c6f72297d696e7075745b747970653d6e756d6265725d2c696e7075745b747970653d746578745d2c696e7075745b747970653d75726c5d2c73656c6563742c74657874617265617b77696474683a313030253b746578742d616c69676e3a63656e7465723b70616464696e673a313070783b6c696e652d6865696768743a312e353b626f726465723a31707820736f6c696420766172282d2d626f726465722d636f6c6f72293b626f726465722d7261646975733a766172282d2d656c656d656e742d626f726465722d726164697573293b636f6c6f723a766172282d2d6c61626c652d746578742d636f6c6f72293b6261636b67726f756e642d636f6c6f723a766172282d2d696e7075742d6261636b67726f756e642d636f6c6f72293b7472616e736974696f6e3a626f726465722d636f6c6f72202e337320656173657d74657874617265617b666f6e742d66616d696c793a696e68657269743b726573697a653a6e6f6e653b636f6c6f723a766172282d2d636f6c6f72293b6d61782d6865696768743a63616c6328356c68202b2031307078297d696e7075745b747970653d6e756d6265725d3a666f6375732c696e7075745b747970653d746578745d3a666f6375732c696e7075745b747970653d75726c5d3a666f6375732c73656c6563743a666f6375732c74657874617265613a666f6375737b626f726465722d636f6c6f723a766172282d2d7365636f6e646172792d636f6c6f72293b6f75746c696e653a307d696e7075745b747970653d6e756d6265725d3a726561642d6f6e6c792c696e7075745b747970653d746578745d3a726561642d6f6e6c792c696e7075745b747970653d75726c5d3a726561642d6f6e6c792c74657874617265613a726561642d6f6e6c797b636f6c6f723a677261793b6261636b67726f756e642d636f6c6f723a766172282d2d666f726d2d6261636b67726f756e642d636f6c6f72297d2e666f726d2d636f6e74726f6c20696e7075745b747970653d70617373776f72645d7b746578742d616c69676e3a63656e7465723b77696474683a3530253b70616464696e673a313070783b626f726465723a31707820736f6c696420766172282d2d626f726465722d636f6c6f72293b626f726465722d7261646975733a766172282d2d656c656d656e742d626f726465722d726164697573293b636f6c6f723a766172282d2d6c61626c652d746578742d636f6c6f72293b6261636b67726f756e642d636f6c6f723a766172282d2d696e7075742d6261636b67726f756e642d636f6c6f72293b7472616e736974696f6e3a626f726465722d636f6c6f72202e337320656173657d2e666f726d2d636f6e74726f6c20696e7075745b747970653d70617373776f72645d3a666f6375737b626f726465722d636f6c6f723a766172282d2d7365636f6e646172792d636f6c6f72293b6f75746c696e653a307d2e666f726d2d636f6e74726f6c20612c612e6c696e6b7b77696474683a313030253b746578742d6465636f726174696f6e3a6e6f6e657d612e7363616e6e65727b6d617267696e2d6c6566743a3870783b77696474683a756e7365743b636f6c6f723a766172282d2d627574746f6e2d636f6c6f72297d627574746f6e2e726576657273657b77696474683a313030253b6261636b67726f756e642d636f6c6f723a766172282d2d666f726d2d6261636b67726f756e642d636f6c6f72293b666f6e742d7765696768743a3630303b636f6c6f723a766172282d2d627574746f6e2d636f6c6f72293b626f726465722d636f6c6f723a766172282d2d7072696d6172792d636f6c6f72293b626f726465723a31707820736f6c69643b70616464696e673a313070787d2e70726f746f636f6c737b666c65782d646972656374696f6e3a726f773b666c65782d777261703a777261707d2e70726f746f7b6761703a3870783b646973706c61793a666c65783b616c69676e2d6974656d733a63656e7465723b666c65782d646972656374696f6e3a726f773b6a7573746966792d636f6e74656e743a63656e7465727d2e70726f746f206c6162656c7b77696474683a756e7365743b666c65783a756e7365747d2e6d696e2d6d61787b666c65783a313b77696474683a313030253b646973706c61793a666c65783b616c69676e2d6974656d733a63656e7465723b6761703a3470787d2e6d696e2d6d617820696e7075747b77696474683a313030257d2e6d696e2d6d6178207370616e7b746578742d616c69676e3a63656e7465723b77686974652d73706163653a7072657d2e706f7274732d626c6f636b2074687b746578742d777261703a6e6f777261703b6261636b67726f756e642d636f6c6f723a677261797d2e706f7274732d626c6f636b2074643a66697273742d6368696c647b746578742d616c69676e3a63656e7465723b666f6e742d73697a653a6c61726765727d2e706f7274732d626c6f636b2074643a6c6173742d6368696c647b646973706c61793a677269643b677269642d74656d706c6174652d636f6c756d6e733a3166722031667220316672203166727d2e72756c65737b6761703a313670783b646973706c61793a666c65783b666c65782d646972656374696f6e3a726f773b77696474683a313030253b666c65782d777261703a777261707d2e666f726d2d636f6e74726f6c206469762e726f7574696e677b6761703a3570783b646973706c61793a666c65783b666c65783a313b6d617267696e3a303b616c69676e2d6974656d733a63656e7465723b6d61782d77696474683a6669742d636f6e74656e747d2e726f7574696e67206c6162656c7b746578742d616c69676e3a6c6566743b77696474683a756e7365743b666f6e742d7765696768743a3430303b666f6e742d73697a653a313030253b746578742d777261703a6e6f777261707d2e666f726d2d636f6e74726f6c2e6170706c797b666c65782d777261703a777261703b666c65782d646972656374696f6e3a726f773b70616464696e673a766172282d2d636f6e7461696e65722d70616464696e672920303b6761703a3870783b6a7573746966792d636f6e74656e743a63656e7465723b666c65783a756e7365747d627574746f6e2e6170706c792d73657474696e67737b6d617267696e3a307d627574746f6e2e70616e656c2d73657474696e67737b666c65783a756e7365743b626f726465723a6e6f6e653b637572736f723a706f696e7465723b77696474683a6669742d636f6e74656e743b6d617267696e3a303b6261636b67726f756e643a3020303b636f6c6f723a766172282d2d7072696d6172792d636f6c6f72297d2e6d6174657269616c2d73796d626f6c732d726f756e6465647b766572746963616c2d616c69676e3a6d6964646c653b646973706c61793a696e6c696e652d626c6f636b3b6d617267696e3a30203570782030203570783b666f6e742d766172696174696f6e2d73657474696e67733a2746494c4c2720302c277767687427203430302c27475241442720302c276f70737a272032347d61202e6d6174657269616c2d73796d626f6c732d726f756e6465647b636f6c6f723a766172282d2d7365636f6e646172792d636f6c6f72297d64657461696c733a6e6f74283a6c6173742d6f662d74797065297b626f726465722d626f74746f6d3a31707820736f6c696420766172282d2d626f726465722d636f6c6f72297d73756d6d6172797b666f6e742d7765696768743a3730303b637572736f723a706f696e7465723b746578742d616c69676e3a6c6566743b746578742d777261703a6e6f777261707d73756d6d6172793a3a6d61726b65727b666f6e742d73697a653a312e3572656d3b636f6c6f723a766172282d2d7365636f6e646172792d636f6c6f72297d73756d6d6172793a666f6375732d76697369626c657b6f75746c696e653a307d68322c68337b646973706c61793a666c65783b746578742d616c69676e3a63656e7465723b636f6c6f723a766172282d2d68722d746578742d636f6c6f72293b6a7573746966792d636f6e74656e743a63656e7465723b616c69676e2d6974656d733a63656e7465727d68347b6d617267696e3a307d68727b6d617267696e3a31707820303b626f726465723a31707820736f6c696420766172282d2d626f726465722d636f6c6f72297d2e666f6f7465722d636f6e7461696e65727b6f766572666c6f772d783a6175746f3b646973706c61793a666c65787d2e666f6f7465727b646973706c61793a666c65783b666f6e742d7765696768743a3630303b6d617267696e3a31307078206175746f3b6a7573746966792d636f6e74656e743a63656e7465723b616c69676e2d6974656d733a63656e7465723b6761703a313070787d2e666f6f74657220697b666f6e742d73697a653a333670787d2e666f6f74657220612c2e666f6f74657220612e6c696e6b7b636f6c6f723a766172282d2d636f6c6f72293b746578742d6465636f726174696f6e3a756e6465726c696e653b77696474683a756e7365743b666c65783a756e7365747d2e666f6f74657220627574746f6e7b6d617267696e3a756e7365743b6261636b67726f756e643a233231323132313b6d61782d77696474683a6669742d636f6e74656e747d2e666f6f746572202e6c6f676f75747b6261636b67726f756e643a3020303b636f6c6f723a766172282d2d636f6c6f72293b6d617267696e3a303b626f726465723a6e6f6e653b637572736f723a706f696e7465727d2e6769746875622d636f6e7461696e65727b646973706c61793a666c65783b616c69676e2d6974656d733a63656e7465723b6a7573746966792d636f6e74656e743a63656e7465723b6761703a3870783b666c65782d777261703a777261707d6c6162656c7b646973706c61793a626c6f636b3b666f6e742d7765696768743a3630303b636f6c6f723a766172282d2d6c61626c652d746578742d636f6c6f72297d2e627574746f6e7b646973706c61793a666c65783b616c69676e2d6974656d733a63656e7465723b6a7573746966792d636f6e74656e743a63656e7465723b77696474683a31343070783b77686974652d73706163653a6e6f777261703b70616464696e673a3134707820313470783b666f6e742d73697a653a313670783b666f6e742d7765696768743a3630303b6c65747465722d73706163696e673a3170783b626f726465723a6e6f6e653b626f726465722d7261646975733a766172282d2d656c656d656e742d626f726465722d726164697573293b636f6c6f723a236666663b6261636b67726f756e642d636f6c6f723a766172282d2d7072696d6172792d636f6c6f72293b637572736f723a706f696e7465723b6f75746c696e653a303b626f782d736861646f773a30203570782031307078207267626128302c302c302c2e32293b7472616e736974696f6e3a616c6c202e337320656173653b6d617267696e2d72696768743a6175746f3b6d617267696e2d6c6566743a6175746f7d7461626c6520627574746f6e7b6d617267696e2d746f703a6175746f3b6d617267696e2d626f74746f6d3a6175746f3b6d61782d6865696768743a6669742d636f6e74656e743b666f6e742d73697a653a313670783b666f6e742d7765696768743a3630303b626f726465723a6e6f6e653b6261636b67726f756e642d636f6c6f723a756e7365743b637572736f723a706f696e7465723b636f6c6f723a766172282d2d6c61626c652d746578742d636f6c6f72293b70616464696e673a307d7461626c6520627574746f6e207370616e2e6d6174657269616c2d73796d626f6c732d726f756e6465647b666f6e742d73697a653a323870783b6d617267696e3a303b636f6c6f723a766172282d2d627574746f6e2d636f6c6f72297d7461626c6520746420646976207370616e2e6d6174657269616c2d73796d626f6c732d726f756e6465647b636f6c6f723a233366623935307d2e627574746f6e7b666f6e742d7765696768743a3630303b666f6e742d73697a653a312e3172656d3b77696474683a6d61782d636f6e74656e747d696e7075745b747970653d636865636b626f785d7b6261636b67726f756e642d636f6c6f723a766172282d2d696e7075742d6261636b67726f756e642d636f6c6f72297d2e627574746f6e2e64697361626c65647b6261636b67726f756e642d636f6c6f723a236363633b636f6c6f723a236666663b637572736f723a6e6f742d616c6c6f7765643b626f782d736861646f773a6e6f6e653b706f696e7465722d6576656e74733a6e6f6e657d2e627574746f6e3a686f7665727b6261636b67726f756e642d636f6c6f723a233239383062393b626f782d736861646f773a30203870782031357078207267626128302c302c302c2e33293b7472616e73666f726d3a7472616e736c61746559282d327078297d7461626c6520627574746f6e3a666f6375732c7461626c6520627574746f6e3a686f7665727b636f6c6f723a766172282d2d7072696d6172792d636f6c6f72293b7472616e73666f726d3a7472616e736c61746559282d327078297d2e6865616465722d636f6e7461696e657220627574746f6e3a686f7665727b7472616e73666f726d3a7363616c6528312e31297d2e6865616465722d636f6e7461696e65727b6761703a313070783b646973706c61793a666c65783b6a7573746966792d636f6e74656e743a63656e7465727d2e6865616465722d636f6e7461696e65722068337b646973706c61793a666c65783b6a7573746966792d636f6e74656e743a63656e7465727d627574746f6e2e627574746f6e3a686f7665727b636f6c6f723a236666667d2e627574746f6e3a6163746976657b7472616e73666f726d3a7472616e736c6174655928317078293b626f782d736861646f773a302033707820377078207267626128302c302c302c2e33297d7461626c6520627574746f6e3a6163746976657b7472616e73666f726d3a7472616e736c6174655928317078297d2e7461626c652d636f6e7461696e65727b6f766572666c6f772d783a6175746f7d2e6164642d6e6f6973657b6261636b67726f756e643a3020303b6d617267696e3a303b626f726465723a6e6f6e653b637572736f723a706f696e7465723b636f6c6f723a677265656e7d2e64656c6574652d6e6f6973657b6261636b67726f756e643a3020303b6d617267696e3a303b626f726465723a6e6f6e653b637572736f723a706f696e7465723b636f6c6f723a233862303030307d2e7461626c652d636f6e7461696e6572207461626c657b77696474683a313030253b626f726465723a31707820736f6c696420766172282d2d626f726465722d636f6c6f72293b626f726465722d636f6c6c617073653a73657061726174653b626f726465722d73706163696e673a303b626f726465722d7261646975733a766172282d2d696e6e65722d636f6e7461696e65722d626f726465722d726164697573293b6d617267696e2d626f74746f6d3a323070783b6f766572666c6f773a68696464656e7d2e7461626c652d636f6e7461696e65722074626f64797b646973706c61793a666c65783b666c65782d646972656374696f6e3a636f6c756d6e7d2e7461626c652d636f6e7461696e65722074727b646973706c61793a666c65783b666c65782d646972656374696f6e3a726f777d2e7461626c652d636f6e7461696e65722074722074643a66697273742d6368696c647b636f6c6f723a766172282d2d6c61626c652d746578742d636f6c6f72293b746578742d777261703a6e6f777261707d2e7461626c652d636f6e7461696e65722074722074643a6e74682d6368696c642832297b666c65782d646972656374696f6e3a726f773b6761703a3870787d2e6d792d69707b6f766572666c6f772d783a6175746f7d2e6d792d6970207461626c657b77696474683a313030253b626f726465723a31707820736f6c696420766172282d2d626f726465722d636f6c6f72293b626f726465722d636f6c6c617073653a73657061726174653b626f726465722d73706163696e673a303b626f726465722d7261646975733a766172282d2d696e6e65722d636f6e7461696e65722d626f726465722d726164697573293b6d617267696e2d626f74746f6d3a323070783b6f766572666c6f773a68696464656e7d2e6d792d69702074642c2e6d792d69702074687b746578742d777261703a6e6f777261703b70616464696e673a313070783b626f726465722d626f74746f6d3a31707820736f6c696420766172282d2d626f726465722d636f6c6f72297d2e6d792d69702074643a66697273742d6368696c642c2e6d792d69702074687b6261636b67726f756e642d636f6c6f723a766172282d2d7461626c652d6163746976652d636f6c6f72293b666f6e742d7765696768743a3730307d2e7461626c652d636f6e7461696e65722074642c2e7461626c652d636f6e7461696e65722074687b646973706c61793a666c65783b666c65782d646972656374696f6e3a636f6c756d6e3b6a7573746966792d636f6e74656e743a63656e7465723b70616464696e673a313070783b77696474683a313030253b6761703a313070783b626f726465722d626f74746f6d3a31707820736f6c696420766172282d2d626f726465722d636f6c6f72297d2e7461626c652d636f6e7461696e6572207464206469767b646973706c61793a666c65783b616c69676e2d6974656d733a63656e7465727d2e7461626c652d636f6e7461696e65722074723a686f7665727b6261636b67726f756e642d636f6c6f723a766172282d2d7461626c652d6163746976652d636f6c6f72297d2e6d6f64616c7b646973706c61793a6e6f6e653b706f736974696f6e3a66697865643b7a2d696e6465783a313b6c6566743a303b746f703a303b77696474683a313030253b6865696768743a313030253b6f766572666c6f773a6175746f3b6261636b67726f756e642d636f6c6f723a7267626128302c302c302c2e34297d2e6d6f64616c2d636f6e74656e747b77696474683a6669742d636f6e74656e743b746578742d616c69676e3a63656e7465723b6261636b67726f756e642d636f6c6f723a766172282d2d666f726d2d6261636b67726f756e642d636f6c6f72293b6d617267696e3a6175746f3b70616464696e673a31307078203230707820323070783b626f726465723a31707820736f6c696420766172282d2d626f726465722d636f6c6f72293b626f726465722d7261646975733a313070783b626f782d736861646f773a302032707820347078207267626128302c302c302c2e31293b706f736974696f6e3a6162736f6c7574653b746f703a3530253b6c6566743a3530253b7472616e73666f726d3a7472616e736c617465282d3530252c2d353025297d2e6d6f64616c2d6865616465727b646973706c61793a666c65783b666c65782d646972656374696f6e3a636f6c756d6e3b616c69676e2d6974656d733a63656e7465723b6d617267696e2d626f74746f6d3a313070787d2e71722d7469746c657b616c69676e2d73656c663a63656e7465723b666f6e742d7765696768743a3730307d2e636c6f73657b616c69676e2d73656c663a666c65782d656e643b636f6c6f723a766172282d2d636f6c6f72293b666c6f61743a72696768743b666f6e742d73697a653a323870783b666f6e742d7765696768743a3730307d2e636c6f73653a666f6375732c2e636c6f73653a686f7665727b636f6c6f723a233030303b746578742d6465636f726174696f6e3a6e6f6e653b637572736f723a706f696e7465727d2370617373776f72644572726f727b636f6c6f723a7265643b6d617267696e2d626f74746f6d3a313070787d2e6d6f64616c51527b646973706c61793a6e6f6e653b706f736974696f6e3a66697865643b7a2d696e6465783a313b6c6566743a303b746f703a303b77696474683a313030253b6865696768743a313030253b6f766572666c6f773a6175746f3b6261636b67726f756e642d636f6c6f723a7267626128302c302c302c2e34297d2e666c6f6174696e672d627574746f6e7b706f736974696f6e3a66697865643b626f74746f6d3a323070783b6c6566743a323070783b6261636b67726f756e642d636f6c6f723a766172282d2d636f6c6f72293b636f6c6f723a236666663b626f726465723a6e6f6e653b626f726465722d7261646975733a3530253b77696474683a363070783b6865696768743a363070783b666f6e742d73697a653a323470783b637572736f723a706f696e7465723b626f782d736861646f773a302034707820387078207267626128302c302c302c2e32293b7472616e736974696f6e3a6261636b67726f756e642d636f6c6f72202e33732c7472616e73666f726d202e33737d2e666c6f6174696e672d627574746f6e3a686f7665727b7472616e73666f726d3a7363616c6528312e31297d626f64792e6461726b2d6d6f6465202e666c6f6174696e672d627574746f6e7b6261636b67726f756e642d636f6c6f723a766172282d2d636f6c6f72297d2e666c6f6174696e672d627574746f6e20697b636f6c6f723a766172282d2d6261636b67726f756e642d636f6c6f72297d626f64792e6461726b2d6d6f6465202e666c6f6174696e672d627574746f6e3a686f7665727b7472616e73666f726d3a7363616c6528312e31297d2e726566726573682d67656f2d6c6f636174696f6e7b6261636b67726f756e643a3020303b6d617267696e3a303b626f726465723a6e6f6e653b637572736f723a706f696e7465727d2e726566726573682d6d792d69707b636f6c6f723a766172282d2d627574746f6e2d636f6c6f72297d64657461696c732068337b646973706c61793a666c65783b6a7573746966792d636f6e74656e743a63656e7465727d2e7564702d6e6f6973657b6d617267696e2d626f74746f6d3a313070787d2e70617373776f72642d777261707065727b706f736974696f6e3a72656c61746976657d2e70617373776f72642d7772617070657220696e7075745b747970653d70617373776f72645d2c2e70617373776f72642d7772617070657220696e7075745b747970653d746578745d7b77696474683a313030253b70616464696e672d72696768743a343070783b6d617267696e3a307d2e746f67676c652d70617373776f72647b706f736974696f6e3a6162736f6c7574653b746f703a3530253b72696768743a313070783b7472616e73666f726d3a7472616e736c61746559282d353025293b637572736f723a706f696e7465723b757365722d73656c6563743a6e6f6e653b636f6c6f723a236139613961397d2e70617373776f72642d6572726f727b636f6c6f723a7265643b6d617267696e2d626f74746f6d3a313070787d73756d6d6172792068337b646973706c61793a696e6c696e652d666c65783b616c69676e2d6974656d733a63656e7465727d406d65646961206f6e6c792073637265656e20616e6420286d696e2d77696474683a3736387078297b2e666f726d2d636f6e7461696e65727b6d61782d77696474683a3630257d2e666f726d2d636f6e74726f6c7b666c65782d646972656374696f6e3a726f777d2e666f726d2d636f6e74726f6c206c6162656c7b746578742d616c69676e3a6c6566747d7d3c2f7374796c653e3c2f686561643e3c626f64793e3c68313e3c696d6720636c6173733d69636f6e207372633d2f66617669636f6e2e69636f20616c743d22425042204c6f676f223e204250422050616e656c203c7370616e2069643d70616e656c2d76657273696f6e207374796c653d666f6e742d73697a653a736d616c6c65723e76332e362e313c2f7370616e3e3c2f68313e3c64697620636c6173733d22666f726d2d636f6e7461696e657220636f6e7461696e6572223e3c68323e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e73657474696e67733c2f7370616e3e2053657474696e67733c2f68323e3c666f726d2069643d636f6e666967466f726d20636c6173733d636f6e666967466f726d206f6e7375626d69743d75706461746553657474696e6773286576656e74293e3c64657461696c7320636c6173733d64657461696c733e3c73756d6d6172793e3c68333e564c455353202d2054726f6a616e203c6120687265663d68747470733a2f2f6269612d7061696e2d62616368652e6769746875622e696f2f4250422d576f726b65722d50616e656c2f636f6e66696775726174696f6e2f766c6573732d74726f6a616e2f207461726765743d5f626c616e6b207469746c653d48656c703e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e696e666f3c2f7370616e3e3c2f613e3c2f68333e3c2f73756d6d6172793e3c64697620636c6173733d73656374696f6e3e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d72656d6f7465444e533ef09f8c8f2052656d6f746520444e533c2f6c6162656c3e3c6469763e3c696e70757420747970653d746578742069643d72656d6f7465444e53206e616d653d72656d6f7465444e532072657175697265643e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d6c6f63616c444e533ef09f8f9aefb88f204c6f63616c20444e533c2f6c6162656c3e3c6469763e3c696e70757420747970653d746578742069643d6c6f63616c444e53206e616d653d6c6f63616c444e532072657175697265643e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d564c545246616b65444e533ef09fa7a22046616b6520444e533c2f6c6162656c3e3c6469763e3c73656c6563742069643d564c545246616b65444e53206e616d653d564c545246616b65444e533e3c6f7074696f6e2076616c75653d747275653e456e61626c65643c2f6f7074696f6e3e3c6f7074696f6e2076616c75653d66616c73653e44697361626c65643c2f6f7074696f6e3e3c2f73656c6563743e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d6f757450726f78793ee29c88efb88f20436861696e2050726f78793c2f6c6162656c3e3c6469763e3c696e70757420747970653d746578742069643d6f757450726f7879206e616d653d6f757450726f78793e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d636c65616e4950733ee29ca820436c65616e20495073202f20446f6d61696e73203c6120636c6173733d7363616e6e657220687265663d68747470733a2f2f6769746875622e636f6d2f6269612d7061696e2d62616368652f436c6f7564666c6172652d436c65616e2d49502d5363616e6e6572207469746c653d5363616e6e6572207461726765743d5f626c616e6b2072656c3d226e6f6f70656e6572206e6f7265666572726572223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e6f70656e5f696e5f6e65773c2f7370616e3e3c2f613e3c2f6c6162656c3e3c6469763e3c746578746172656120747970653d746578742069643d636c65616e495073206e616d653d636c65616e49507320726f77733d313e3c2f74657874617265613e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d564c5452656e61626c65495076363ef09f949b20495076363c2f6c6162656c3e3c6469763e3c73656c6563742069643d564c5452656e61626c6549507636206e616d653d564c5452656e61626c65495076363e3c6f7074696f6e2076616c75653d747275653e456e61626c65643c2f6f7074696f6e3e3c6f7074696f6e2076616c75653d66616c73653e44697361626c65643c2f6f7074696f6e3e3c2f73656c6563743e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d564c436f6e666967733ee29a99efb88f2050726f746f636f6c733c2f6c6162656c3e3c6469763e3c64697620636c6173733d2270726f746f636f6c7320696e6e65722d636f6e7461696e6572223e3c64697620636c6173733d70726f746f3e3c696e70757420747970653d636865636b626f782069643d564c436f6e66696773206e616d653d564c436f6e666967732076616c75653d74727565206f6e6368616e67653d68616e646c6550726f746f636f6c4368616e6765286576656e74293e203c6c6162656c20666f723d564c436f6e666967733e564c4553533c2f6c6162656c3e3c2f6469763e3c64697620636c6173733d70726f746f3e3c696e70757420747970653d636865636b626f782069643d5452436f6e66696773206e616d653d5452436f6e666967732076616c75653d74727565206f6e6368616e67653d68616e646c6550726f746f636f6c4368616e6765286576656e74293e203c6c6162656c20666f723d5452436f6e666967733e54726f6a616e3c2f6c6162656c3e3c2f6469763e3c2f6469763e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d746c732d706f7274733ef09f949220544c5320506f7274733c2f6c6162656c3e3c6469763e3c6469762069643d746c732d706f72747320636c6173733d2272756c657320696e6e65722d636f6e7461696e6572223e3c2f6469763e3c2f6469763e3c2f6469763e3c6469762069643d6e6f6e652d746c7320636c6173733d666f726d2d636f6e74726f6c207374796c653d646973706c61793a6e6f6e653e3c6c6162656c20666f723d6e6f6e2d746c732d706f7274733ef09f9493204e6f6e6520544c5320506f7274733c2f6c6162656c3e3c6469763e3c6469762069643d6e6f6e2d746c732d706f72747320636c6173733d2272756c657320696e6e65722d636f6e7461696e6572223e3c2f6469763e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d66696e6765727072696e743ef09f91862046696e6765727072696e743c2f6c6162656c3e3c6469763e3c73656c6563742069643d66696e6765727072696e74206e616d653d66696e6765727072696e743e3c6f7074696f6e2076616c75653d6368726f6d653e6368726f6d653c2f6f7074696f6e3e3c6f7074696f6e2076616c75653d66697265666f783e66697265666f783c2f6f7074696f6e3e3c6f7074696f6e2076616c75653d7361666172693e7361666172693c2f6f7074696f6e3e3c6f7074696f6e2076616c75653d696f733e696f733c2f6f7074696f6e3e3c6f7074696f6e2076616c75653d616e64726f69643e616e64726f69643c2f6f7074696f6e3e3c6f7074696f6e2076616c75653d656467653e656467653c2f6f7074696f6e3e3c6f7074696f6e2076616c75653d3336303e3336303c2f6f7074696f6e3e3c6f7074696f6e2076616c75653d71713e71713c2f6f7074696f6e3e3c6f7074696f6e2076616c75653d72616e646f6d3e72616e646f6d3c2f6f7074696f6e3e3c6f7074696f6e2076616c75653d72616e646f6d697a65643e72616e646f6d697a65643c2f6f7074696f6e3e3c2f73656c6563743e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d62657374564c5452496e74657276616c3ef09f9484204265737420496e74657276616c3c2f6c6162656c3e3c6469763e3c696e70757420747970653d6e756d6265722069643d62657374564c5452496e74657276616c206e616d653d62657374564c5452496e74657276616c206d696e3d3130206d61783d39303e3c2f6469763e3c2f6469763e3c64697620636c6173733d636f6e7461696e65723e3c64697620636c6173733d73656374696f6e3e3c68343e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e74756e653c2f7370616e3e2050726f78792049503c2f68343e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d70726f787949504d6f64653ef09f8e9aefb88f204d6f64653c2f6c6162656c3e3c6469763e3c73656c6563742069643d70726f787949504d6f6465206e616d653d70726f787949504d6f64653e3c6f7074696f6e2076616c75653d70726f787969703e50726f78792049503c2f6f7074696f6e3e3c6f7074696f6e2076616c75653d7072656669783e4e415436343c2f6f7074696f6e3e3c2f73656c6563743e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d70726f78794950733ef09f938d2050726f787920495073202f20446f6d61696e73203c6120636c6173733d7363616e6e657220687265663d68747470733a2f2f7777772e6e736c6f6f6b75702e696f2f646f6d61696e732f6270622e796f757365662e6973656761726f2e636f6d2f646e732d7265636f7264732f207469746c653d2250726f78792049507322207461726765743d5f626c616e6b2072656c3d226e6f6f70656e6572206e6f7265666572726572223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e6f70656e5f696e5f6e65773c2f7370616e3e3c2f613e3c2f6c6162656c3e3c6469763e3c746578746172656120747970653d746578742069643d70726f7879495073206e616d653d70726f787949507320726f77733d313e3c2f74657874617265613e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d70726566697865733ef09f938d204e41543634205072656669786573203c6120636c6173733d7363616e6e657220687265663d68747470733a2f2f6769746875622e636f6d2f6269612d7061696e2d62616368652f4250422d576f726b65722d50616e656c2f626c6f622f6d61696e2f4e4154363450726566697865732e6d64207469746c653d224e4154363420707265666978657322207461726765743d5f626c616e6b2072656c3d226e6f6f70656e6572206e6f7265666572726572223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e6f70656e5f696e5f6e65773c2f7370616e3e3c2f613e3c2f6c6162656c3e3c6469763e3c746578746172656120747970653d746578742069643d7072656669786573206e616d653d707265666978657320726f77733d313e3c2f74657874617265613e3c2f6469763e3c2f6469763e3c2f6469763e3c2f6469763e3c64697620636c6173733d636f6e7461696e65723e3c64697620636c6173733d73656374696f6e3e3c68343e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e74756e653c2f7370616e3e20437573746f6d2043444e3c2f68343e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d637573746f6d43646e41646472733ef09f9280204164647265737365733c2f6c6162656c3e3c6469763e3c746578746172656120747970653d746578742069643d637573746f6d43646e4164647273206e616d653d637573746f6d43646e416464727320726f77733d313e3c2f74657874617265613e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d637573746f6d43646e486f73743ef09f928020486f73743c2f6c6162656c3e3c6469763e3c696e70757420747970653d746578742069643d637573746f6d43646e486f7374206e616d653d637573746f6d43646e486f73743e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d637573746f6d43646e536e693ef09f928020534e493c2f6c6162656c3e3c6469763e3c696e70757420747970653d746578742069643d637573746f6d43646e536e69206e616d653d637573746f6d43646e536e693e3c2f6469763e3c2f6469763e3c2f6469763e3c2f6469763e3c2f6469763e3c2f64657461696c733e3c64657461696c733e3c73756d6d6172793e3c68333e5872617920467261676d656e74203c6120687265663d68747470733a2f2f6269612d7061696e2d62616368652e6769746875622e696f2f4250422d576f726b65722d50616e656c2f636f6e66696775726174696f6e2f667261676d656e742f207461726765743d5f626c616e6b207469746c653d48656c703e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e696e666f3c2f7370616e3e3c2f613e3c2f68333e3c2f73756d6d6172793e3c64697620636c6173733d73656374696f6e3e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d667261676d656e744d6f64653ef09f8e9aefb88f204d6f64653c2f6c6162656c3e3c6469763e3c73656c6563742069643d667261676d656e744d6f6465206e616d653d667261676d656e744d6f6465206f6e6368616e67653d68616e646c65467261676d656e744d6f646528293e3c6f7074696f6e2076616c75653d637573746f6d3e437573746f6d3c2f6f7074696f6e3e3c6f7074696f6e2076616c75653d6c6f773e4c6f773c2f6f7074696f6e3e3c6f7074696f6e2076616c75653d6d656469756d3e4d656469756d3c2f6f7074696f6e3e3c6f7074696f6e2076616c75653d686967683e486967683c2f6f7074696f6e3e3c2f73656c6563743e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d667261676d656e744c656e6774684d696e3ef09f9390204c656e6774683c2f6c6162656c3e3c64697620636c6173733d6d696e2d6d61783e3c696e70757420747970653d6e756d6265722069643d667261676d656e744c656e6774684d696e206e616d653d667261676d656e744c656e6774684d696e206d696e3d31302072657175697265643e203c7370616e3e2d3c2f7370616e3e203c696e70757420747970653d6e756d6265722069643d667261676d656e744c656e6774684d6178206e616d653d667261676d656e744c656e6774684d6178206d61783d3530302072657175697265643e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d667261676d656e74496e74657276616c4d696e3ef09f959e20496e74657276616c3c2f6c6162656c3e3c64697620636c6173733d6d696e2d6d61783e3c696e70757420747970653d6e756d6265722069643d667261676d656e74496e74657276616c4d696e206e616d653d667261676d656e74496e74657276616c4d696e206d696e3d31206d61783d33302072657175697265643e203c7370616e3e2d3c2f7370616e3e203c696e70757420747970653d6e756d6265722069643d667261676d656e74496e74657276616c4d6178206e616d653d667261676d656e74496e74657276616c4d6178206d696e3d31206d61783d33302072657175697265643e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d667261676d656e745061636b6574733ef09f93a6205061636b6574733c2f6c6162656c3e3c6469763e3c73656c6563742069643d667261676d656e745061636b657473206e616d653d667261676d656e745061636b6574733e3c6f7074696f6e2076616c75653d746c7368656c6c6f3e746c7368656c6c6f3c2f6f7074696f6e3e3c6f7074696f6e2076616c75653d312d313e312d313c2f6f7074696f6e3e3c6f7074696f6e2076616c75653d312d323e312d323c2f6f7074696f6e3e3c6f7074696f6e2076616c75653d312d333e312d333c2f6f7074696f6e3e3c6f7074696f6e2076616c75653d312d353e312d353c2f6f7074696f6e3e3c2f73656c6563743e3c2f6469763e3c2f6469763e3c2f6469763e3c2f64657461696c733e3c64657461696c733e3c73756d6d6172793e3c68333e576172702047656e6572616c203c6120687265663d68747470733a2f2f6269612d7061696e2d62616368652e6769746875622e696f2f4250422d576f726b65722d50616e656c2f636f6e66696775726174696f6e2f776172702f207461726765743d5f626c616e6b207469746c653d48656c703e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e696e666f3c2f7370616e3e3c2f613e3c2f68333e3c2f73756d6d6172793e3c64697620636c6173733d73656374696f6e3e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d77617270456e64706f696e74733ee29ca820456e64706f696e7473203c6120636c6173733d7363616e6e657220687265663d68747470733a2f2f6769746875622e636f6d2f6269612d7061696e2d62616368652f4250422d576172702d5363616e6e6572207469746c653d5363616e6e6572207461726765743d5f626c616e6b2072656c3d226e6f6f70656e6572206e6f7265666572726572223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e6f70656e5f696e5f6e65773c2f7370616e3e3c2f613e3c2f6c6162656c3e3c6469763e3c746578746172656120747970653d746578742069643d77617270456e64706f696e7473206e616d653d77617270456e64706f696e747320726f77733d312072657175697265643e3c2f74657874617265613e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d7761727046616b65444e533ef09fa7a22046616b6520444e533c2f6c6162656c3e3c6469763e3c73656c6563742069643d7761727046616b65444e53206e616d653d7761727046616b65444e533e3c6f7074696f6e2076616c75653d747275653e456e61626c65643c2f6f7074696f6e3e3c6f7074696f6e2076616c75653d66616c73653e44697361626c65643c2f6f7074696f6e3e3c2f73656c6563743e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d77617270456e61626c65495076363ef09f949b20495076363c2f6c6162656c3e3c6469763e3c73656c6563742069643d77617270456e61626c6549507636206e616d653d77617270456e61626c65495076363e3c6f7074696f6e2076616c75653d747275653e456e61626c65643c2f6f7074696f6e3e3c6f7074696f6e2076616c75653d66616c73653e44697361626c65643c2f6f7074696f6e3e3c2f73656c6563743e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d6265737457617270496e74657276616c3ef09f9484204265737420496e74657276616c3c2f6c6162656c3e3c6469763e3c696e70757420747970653d6e756d6265722069643d6265737457617270496e74657276616c206e616d653d6265737457617270496e74657276616c206d696e3d3130206d61783d39303e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d7265667265736842746e3ee299bbefb88f2057617270204163636f756e74733c2f6c6162656c3e3c6469763e3c627574746f6e20747970653d627574746f6e20636c6173733d22627574746f6e207265766572736522206f6e636c69636b3d75706461746557617270436f6e6669677328293e5570646174653c7370616e2069643d776172702d75706461746520636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e6175746f72656e65773c2f7370616e3e3c2f627574746f6e3e3c2f6469763e3c2f6469763e3c2f6469763e3c2f64657461696c733e3c64657461696c733e3c73756d6d6172793e3c68333e576172702050524f203c6120687265663d68747470733a2f2f6269612d7061696e2d62616368652e6769746875622e696f2f4250422d576f726b65722d50616e656c2f636f6e66696775726174696f6e2f776172702d70726f2f207461726765743d5f626c616e6b207469746c653d48656c703e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e696e666f3c2f7370616e3e3c2f613e3c2f68333e3c2f73756d6d6172793e3c64697620636c6173733d73656374696f6e3e3c64697620636c6173733d636f6e7461696e65723e3c64697620636c6173733d73656374696f6e3e3c68343e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e74756e653c2f7370616e3e204d616873614e47204e6f6973653c2f68343e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d6b6e6f636b65724e6f6973654d6f64653ef09f98b5e2808df09f92ab204d6f64653c2f6c6162656c3e3c6469763e3c696e70757420747970653d746578742069643d6b6e6f636b65724e6f6973654d6f6465206e616d653d6b6e6f636b65724e6f6973654d6f6465207469746c653d2246696c6c20696e20276e6f6e65272c202771756963272c202772616e646f6d272c206f7220616e792048455820737472696e67206c696b6520276565303030303030303130386161616127222072657175697265643e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d6e6f697365436f756e744d696e3ef09f8e9aefb88f20436f756e743c2f6c6162656c3e3c64697620636c6173733d6d696e2d6d61783e3c696e70757420747970653d6e756d6265722069643d6e6f697365436f756e744d696e206e616d653d6e6f697365436f756e744d696e206d696e3d312072657175697265643e203c7370616e3e2d3c2f7370616e3e203c696e70757420747970653d6e756d6265722069643d6e6f697365436f756e744d6178206e616d653d6e6f697365436f756e744d6178206d696e3d312072657175697265643e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d6e6f69736553697a654d696e3ef09f938f2053697a653c2f6c6162656c3e3c64697620636c6173733d6d696e2d6d61783e3c696e70757420747970653d6e756d6265722069643d6e6f69736553697a654d696e206e616d653d6e6f69736553697a654d696e206d696e3d312072657175697265643e203c7370616e3e2d3c2f7370616e3e203c696e70757420747970653d6e756d6265722069643d6e6f69736553697a654d6178206e616d653d6e6f69736553697a654d6178206d696e3d312072657175697265643e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d6e6f69736544656c61794d696e3ef09f959e2044656c61793c2f6c6162656c3e3c64697620636c6173733d6d696e2d6d61783e3c696e70757420747970653d6e756d6265722069643d6e6f69736544656c61794d696e206e616d653d6e6f69736544656c61794d696e206d696e3d312072657175697265643e203c7370616e3e2d3c2f7370616e3e203c696e70757420747970653d6e756d6265722069643d6e6f69736544656c61794d6178206e616d653d6e6f69736544656c61794d6178206d696e3d312072657175697265643e3c2f6469763e3c2f6469763e3c2f6469763e3c2f6469763e3c64697620636c6173733d636f6e7461696e65723e3c64697620636c6173733d73656374696f6e3e3c68343e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e74756e653c2f7370616e3e20436c617368202d20416d6e657a6961204e6f6973653c2f68343e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d616d6e657a69614e6f697365436f756e743ef09f8e9aefb88f20436f756e743c2f6c6162656c3e3c6469763e3c696e70757420747970653d6e756d6265722069643d616d6e657a69614e6f697365436f756e74206e616d653d616d6e657a69614e6f697365436f756e74206d696e3d312072657175697265643e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d616d6e657a69614e6f69736553697a654d696e3ef09f938f2053697a653c2f6c6162656c3e3c64697620636c6173733d6d696e2d6d61783e3c696e70757420747970653d6e756d6265722069643d616d6e657a69614e6f69736553697a654d696e206e616d653d616d6e657a69614e6f69736553697a654d696e206d696e3d312072657175697265643e203c7370616e3e2d3c2f7370616e3e203c696e70757420747970653d6e756d6265722069643d616d6e657a69614e6f69736553697a654d6178206e616d653d616d6e657a69614e6f69736553697a654d6178206d696e3d312072657175697265643e3c2f6469763e3c2f6469763e3c2f6469763e3c2f6469763e3c6469762069643d7564702d6e6f6973652d636f6e7461696e657220636c6173733d636f6e7461696e65723e3c64697620636c6173733d6865616465722d636f6e7461696e65723e3c68343e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e74756e653c2f7370616e3e2076327261794e47202d2076327261794e204e6f6973653c2f68343e3c627574746f6e20747970653d627574746f6e20636c6173733d6164642d6e6f697365206f6e636c69636b3d6164645564704e6f6973652874727565293e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e6164645f636972636c653c2f7370616e3e3c2f627574746f6e3e3c2f6469763e3c6469762069643d6e6f6973657320636c6173733d73656374696f6e3e3c2f6469763e3c2f6469763e3c2f6469763e3c2f64657461696c733e3c64657461696c733e3c73756d6d6172793e3c68333e526f7574696e672052756c6573203c6120687265663d68747470733a2f2f6269612d7061696e2d62616368652e6769746875622e696f2f4250422d576f726b65722d50616e656c2f636f6e66696775726174696f6e2f726f7574696e672d72756c65732f207461726765743d5f626c616e6b207469746c653d48656c703e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e696e666f3c2f7370616e3e3c2f613e3c2f68333e3c2f73756d6d6172793e3c64697620636c6173733d73656374696f6e3e3c64697620636c6173733d636f6e7461696e65723e3c68343e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e74756e653c2f7370616e3e205072657365742052756c65733c2f68343e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d6279706173732d72756c65733ef09f9fa9204279706173732072756c65733c2f6c6162656c3e3c6469763e3c6469762069643d6279706173732d72756c657320636c6173733d2272756c657320696e6e65722d636f6e7461696e6572223e3c64697620636c6173733d726f7574696e673e3c696e70757420747970653d636865636b626f782069643d6279706173734972616e206e616d653d6279706173734972616e2076616c75653d747275653e203c6c6162656c20666f723d6279706173734972616e3e4972616e3c2f6c6162656c3e3c2f6469763e3c64697620636c6173733d726f7574696e673e3c696e70757420747970653d636865636b626f782069643d6279706173734368696e61206e616d653d6279706173734368696e612076616c75653d747275653e203c6c6162656c20666f723d6279706173734368696e613e4368696e613c2f6c6162656c3e3c2f6469763e3c64697620636c6173733d726f7574696e673e3c696e70757420747970653d636865636b626f782069643d627970617373527573736961206e616d653d6279706173735275737369612076616c75653d747275653e203c6c6162656c20666f723d6279706173735275737369613e5275737369613c2f6c6162656c3e3c2f6469763e3c2f6469763e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d626c6f636b2d72756c65733ef09f9fa520426c6f636b2072756c65733c2f6c6162656c3e3c6469763e3c6469762069643d626c6f636b2d72756c657320636c6173733d2272756c657320696e6e65722d636f6e7461696e6572223e3c64697620636c6173733d726f7574696e673e3c696e70757420747970653d636865636b626f782069643d626c6f636b416473206e616d653d626c6f636b4164732076616c75653d747275653e203c6c6162656c20666f723d626c6f636b4164733e4164732e3c2f6c6162656c3e3c2f6469763e3c64697620636c6173733d726f7574696e673e3c696e70757420747970653d636865636b626f782069643d626c6f636b506f726e206e616d653d626c6f636b506f726e2076616c75653d747275653e203c6c6162656c20666f723d626c6f636b506f726e3e506f726e3c2f6c6162656c3e3c2f6469763e3c64697620636c6173733d726f7574696e673e3c696e70757420747970653d636865636b626f782069643d626c6f636b554450343433206e616d653d626c6f636b5544503434332076616c75653d747275653e203c6c6162656c20666f723d626c6f636b5544503434333e515549433c2f6c6162656c3e3c2f6469763e3c2f6469763e3c2f6469763e3c2f6469763e3c2f6469763e3c64697620636c6173733d636f6e7461696e65723e3c68343e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e74756e653c2f7370616e3e20437573746f6d2052756c65733c2f68343e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d637573746f6d42797061737352756c65733ef09f9fa92042797061737320495073202f20446f6d61696e733c2f6c6162656c3e3c6469763e3c746578746172656120747970653d746578742069643d637573746f6d42797061737352756c6573206e616d653d637573746f6d42797061737352756c657320726f77733d313e3c2f74657874617265613e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d637573746f6d426c6f636b52756c65733ef09f9fa520426c6f636b20495073202f20446f6d61696e733c2f6c6162656c3e3c6469763e3c746578746172656120747970653d746578742069643d637573746f6d426c6f636b52756c6573206e616d653d637573746f6d426c6f636b52756c657320726f77733d313e3c2f74657874617265613e3c2f6469763e3c2f6469763e3c2f6469763e3c64697620636c6173733d636f6e7461696e65723e3c68343e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e74756e653c2f7370616e3e2053616e6374696f6e2052756c65733c2f68343e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d616e746953616e6374696f6e444e533ef09f8c8f20416e74692053616e6374696f6e20444e533c2f6c6162656c3e3c6469763e3c696e70757420747970653d746578742069643d616e746953616e6374696f6e444e53206e616d653d616e746953616e6374696f6e444e532072657175697265643e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d6279706173732d73616e6374696f6e2d72756c65733ef09f9fa9204279706173732072756c65733c2f6c6162656c3e3c6469763e3c6469762069643d6279706173732d73616e6374696f6e2d72756c657320636c6173733d2272756c657320696e6e65722d636f6e7461696e6572223e3c64697620636c6173733d726f7574696e673e3c696e70757420747970653d636865636b626f782069643d6279706173734f70656e4169206e616d653d6279706173734f70656e41692076616c75653d747275653e203c6c6162656c20666f723d6279706173734f70656e41693e436861744750543c2f6c6162656c3e3c2f6469763e3c64697620636c6173733d726f7574696e673e3c696e70757420747970653d636865636b626f782069643d6279706173734d6963726f736f6674206e616d653d6279706173734d6963726f736f66742076616c75653d747275653e203c6c6162656c20666f723d6279706173734d6963726f736f66743e4d6963726f736f66743c2f6c6162656c3e3c2f6469763e3c64697620636c6173733d726f7574696e673e3c696e70757420747970653d636865636b626f782069643d6279706173734f7261636c65206e616d653d6279706173734f7261636c652076616c75653d747275653e203c6c6162656c20666f723d6279706173734f7261636c653e4f7261636c653c2f6c6162656c3e3c2f6469763e3c64697620636c6173733d726f7574696e673e3c696e70757420747970653d636865636b626f782069643d627970617373446f636b6572206e616d653d627970617373446f636b65722076616c75653d747275653e203c6c6162656c20666f723d627970617373446f636b65723e446f636b65723c2f6c6162656c3e3c2f6469763e3c64697620636c6173733d726f7574696e673e3c696e70757420747970653d636865636b626f782069643d62797061737341646f6265206e616d653d62797061737341646f62652076616c75653d747275653e203c6c6162656c20666f723d62797061737341646f62653e41646f62653c2f6c6162656c3e3c2f6469763e3c64697620636c6173733d726f7574696e673e3c696e70757420747970653d636865636b626f782069643d6279706173734570696347616d6573206e616d653d6279706173734570696347616d65732076616c75653d747275653e203c6c6162656c20666f723d6279706173734570696347616d65733e457069632047616d65733c2f6c6162656c3e3c2f6469763e3c64697620636c6173733d726f7574696e673e3c696e70757420747970653d636865636b626f782069643d627970617373496e74656c206e616d653d627970617373496e74656c2076616c75653d747275653e203c6c6162656c20666f723d627970617373496e74656c3e496e74656c3c2f6c6162656c3e3c2f6469763e3c64697620636c6173733d726f7574696e673e3c696e70757420747970653d636865636b626f782069643d627970617373416d64206e616d653d627970617373416d642076616c75653d747275653e203c6c6162656c20666f723d627970617373416d643e414d443c2f6c6162656c3e3c2f6469763e3c64697620636c6173733d726f7574696e673e3c696e70757420747970653d636865636b626f782069643d6279706173734e7669646961206e616d653d6279706173734e76696469612076616c75653d747275653e203c6c6162656c20666f723d6279706173734e76696469613e4e76696469613c2f6c6162656c3e3c2f6469763e3c64697620636c6173733d726f7574696e673e3c696e70757420747970653d636865636b626f782069643d62797061737341737573206e616d653d627970617373417375732076616c75653d747275653e203c6c6162656c20666f723d627970617373417375733e417375733c2f6c6162656c3e3c2f6469763e3c64697620636c6173733d726f7574696e673e3c696e70757420747970653d636865636b626f782069643d6279706173734870206e616d653d62797061737348702076616c75653d747275653e203c6c6162656c20666f723d62797061737348703e48503c2f6c6162656c3e3c2f6469763e3c64697620636c6173733d726f7574696e673e3c696e70757420747970653d636865636b626f782069643d6279706173734c656e6f766f206e616d653d6279706173734c656e6f766f2076616c75653d747275653e203c6c6162656c20666f723d6279706173734c656e6f766f3e4c656e6f766f3c2f6c6162656c3e3c2f6469763e3c2f6469763e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d637573746f6d42797061737353616e6374696f6e52756c65733ef09f9fa92042797061737320446f6d61696e733c2f6c6162656c3e3c6469763e3c746578746172656120747970653d746578742069643d637573746f6d42797061737353616e6374696f6e52756c6573206e616d653d637573746f6d42797061737353616e6374696f6e52756c657320726f77733d313e3c2f74657874617265613e3c2f6469763e3c2f6469763e3c2f6469763e3c2f6469763e3c2f64657461696c733e3c6469762069643d6170706c7920636c6173733d22666f726d2d636f6e74726f6c206170706c79223e3c627574746f6e20747970653d7375626d69742069643d6170706c79427574746f6e20636c6173733d22627574746f6e2064697361626c6564206170706c792d73657474696e67732220666f726d3d636f6e666967466f726d3e4170706c79203c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e636865636b5f636972636c653c2f7370616e3e3c2f627574746f6e3e203c627574746f6e20747970653d627574746f6e20636c6173733d70616e656c2d73657474696e6773207469746c653d2252657365742070616e656c2073657474696e677320746f2064656661756c7422206f6e636c69636b3d726573657453657474696e677328293e3c692069643d726566726573682d62746e20636c6173733d2266612066612d726566726573682066612d32782220617269612d68696464656e3d747275653e3c2f693e3c2f627574746f6e3e203c627574746f6e20747970653d627574746f6e20636c6173733d70616e656c2d73657474696e6773207469746c653d224578706f72742070616e656c2073657474696e677322206f6e636c69636b3d6578706f727453657474696e677328293e3c6920636c6173733d2266612066612d636c6f75642d646f776e6c6f61642066612d32782220617269612d68696464656e3d747275653e3c2f693e3c2f627574746f6e3e203c627574746f6e20747970653d627574746f6e20636c6173733d70616e656c2d73657474696e6773207469746c653d22496d706f72742070616e656c2073657474696e677322206f6e636c69636b3d696d706f727453657474696e677328293e3c6920636c6173733d2266612066612d636c6f75642d75706c6f61642066612d32782220617269612d68696464656e3d747275653e3c2f693e203c696e70757420747970653d66696c652069643d66696c65496e707574206163636570743d2e646174207374796c653d646973706c61793a6e6f6e65206f6e6368616e67653d75706c6f616453657474696e6773286576656e74293e3c2f627574746f6e3e3c2f6469763e3c2f666f726d3e3c2f6469763e3c64697620636c6173733d22666f726d2d636f6e7461696e657220636f6e7461696e6572223e3c68323e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e73686172653c2f7370616e3e20537562736372697074696f6e733c2f68323e3c64657461696c733e3c73756d6d6172793e3c68333e4e6f726d616c203c6120687265663d68747470733a2f2f6269612d7061696e2d62616368652e6769746875622e696f2f4250422d576f726b65722d50616e656c2f75736167652f6e6f726d616c2f207461726765743d5f626c616e6b207469746c653d48656c703e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e696e666f3c2f7370616e3e3c2f613e3c2f68333e3c2f73756d6d6172793e3c64697620636c6173733d7461626c652d636f6e7461696e65723e3c7461626c652069643d66756c6c2d6e6f726d616c2d636f6e666967732d7461626c653e3c74723e3c74643e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e76327261794e473c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e4d616873614e473c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e76327261794e3c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e76327261794e2d50524f3c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e537472656973616e643c2f7370616e3e3c2f6469763e3c2f74643e3c74643e3c627574746f6e207469746c653d22446973706c617920515220636f646522206f6e636c69636b3d226f70656e515228276e6f726d616c272c202778726179272c20274e6f726d616c272c20274e6f726d616c20537562736372697074696f6e2729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e71725f636f64653c2f7370616e3e3c2f627574746f6e3e203c627574746f6e207469746c653d22436f707920737562736372697074696f6e2055524c22206f6e636c69636b3d2273756255524c28276e6f726d616c272c202778726179272c20274e6f726d616c2729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e636f6e74656e745f636f70793c2f7370616e3e3c2f627574746f6e3e203c627574746f6e207469746c653d22446f776e6c6f616420636f6e66696722206f6e636c69636b3d22646c55524c28276e6f726d616c272c2027787261792729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e646f776e6c6f61643c2f7370616e3e3c2f627574746f6e3e3c2f74643e3c2f74723e3c74723e3c74643e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e73696e672d626f783c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e76327261794e202873696e672d626f78293c2f7370616e3e3c2f6469763e3c2f74643e3c74643e3c627574746f6e207469746c653d22446973706c617920515220636f646522206f6e636c69636b3d226f70656e515228276e6f726d616c272c202773696e672d626f78272c20274e6f726d616c272c20274e6f726d616c20537562736372697074696f6e272c207472756529223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e71725f636f64653c2f7370616e3e3c2f627574746f6e3e203c627574746f6e207469746c653d22436f707920737562736372697074696f6e2055524c22206f6e636c69636b3d2273756255524c28276e6f726d616c272c202773696e672d626f78272c20274e6f726d616c2729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e636f6e74656e745f636f70793c2f7370616e3e3c2f627574746f6e3e203c627574746f6e207469746c653d22446f776e6c6f616420636f6e66696722206f6e636c69636b3d22646c55524c28276e6f726d616c272c202773696e672d626f782729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e646f776e6c6f61643c2f7370616e3e3c2f627574746f6e3e3c2f74643e3c2f74723e3c74723e3c74643e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e436c617368204d6574613c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e436c6173682056657267653c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e466c436c6173683c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e53746173683c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e76327261794e20286d69686f6d6f293c2f7370616e3e3c2f6469763e3c2f74643e3c74643e3c627574746f6e207469746c653d22446973706c617920515220636f646522206f6e636c69636b3d226f70656e515228276e6f726d616c272c2027636c617368272c20274e6f726d616c272c20274e6f726d616c20537562736372697074696f6e2729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e71725f636f64653c2f7370616e3e3c2f627574746f6e3e203c627574746f6e207469746c653d22436f707920737562736372697074696f6e2055524c22206f6e636c69636b3d2273756255524c28276e6f726d616c272c2027636c617368272c20274e6f726d616c2729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e636f6e74656e745f636f70793c2f7370616e3e3c2f627574746f6e3e203c627574746f6e207469746c653d22446f776e6c6f616420636f6e66696722206f6e636c69636b3d22646c55524c28276e6f726d616c272c2027636c6173682729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e646f776e6c6f61643c2f7370616e3e3c2f627574746f6e3e3c2f74643e3c2f74723e3c2f7461626c653e3c2f6469763e3c2f64657461696c733e3c64657461696c733e3c73756d6d6172793e3c68333e467261676d656e74203c6120687265663d68747470733a2f2f6269612d7061696e2d62616368652e6769746875622e696f2f4250422d576f726b65722d50616e656c2f75736167652f667261676d656e742f207461726765743d5f626c616e6b207469746c653d48656c703e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e696e666f3c2f7370616e3e3c2f613e3c2f68333e3c2f73756d6d6172793e3c64697620636c6173733d7461626c652d636f6e7461696e65723e3c7461626c652069643d667261672d7375622d7461626c653e3c74723e3c74643e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e76327261794e473c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e4d616873614e473c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e76327261794e3c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e76327261794e2d50524f3c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e537472656973616e643c2f7370616e3e3c2f6469763e3c2f74643e3c74643e3c627574746f6e207469746c653d22446973706c617920515220636f646522206f6e636c69636b3d226f70656e51522827667261676d656e74272c202778726179272c2027467261676d656e74272c2027467261676d656e7420537562736372697074696f6e2729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e71725f636f64653c2f7370616e3e3c2f627574746f6e3e203c627574746f6e207469746c653d22436f707920737562736372697074696f6e2055524c22206f6e636c69636b3d2273756255524c2827667261676d656e74272c202778726179272c2027467261676d656e742729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e636f6e74656e745f636f70793c2f7370616e3e3c2f627574746f6e3e203c627574746f6e207469746c653d22446f776e6c6f616420636f6e66696722206f6e636c69636b3d22646c55524c2827667261676d656e74272c2027787261792729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e646f776e6c6f61643c2f7370616e3e3c2f627574746f6e3e3c2f74643e3c2f74723e3c74723e3c74643e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e73696e672d626f783c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e76327261794e202873696e672d626f78293c2f7370616e3e3c2f6469763e3c2f74643e3c74643e3c627574746f6e207469746c653d22446973706c617920515220636f646522206f6e636c69636b3d226f70656e51522827667261676d656e74272c202773696e672d626f78272c2027467261676d656e74272c2027467261676d656e7420537562736372697074696f6e272c207472756529223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e71725f636f64653c2f7370616e3e3c2f627574746f6e3e203c627574746f6e207469746c653d22436f707920737562736372697074696f6e2055524c22206f6e636c69636b3d2273756255524c2827667261676d656e74272c202773696e672d626f78272c2027467261676d656e742729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e636f6e74656e745f636f70793c2f7370616e3e3c2f627574746f6e3e203c627574746f6e207469746c653d22446f776e6c6f616420636f6e66696722206f6e636c69636b3d22646c55524c2827667261676d656e74272c202773696e672d626f782729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e646f776e6c6f61643c2f7370616e3e3c2f627574746f6e3e3c2f74643e3c2f74723e3c2f7461626c653e3c2f6469763e3c2f64657461696c733e3c64657461696c733e3c73756d6d6172793e3c68333e57617270203c6120687265663d68747470733a2f2f6269612d7061696e2d62616368652e6769746875622e696f2f4250422d576f726b65722d50616e656c2f75736167652f776172702f207461726765743d5f626c616e6b207469746c653d48656c703e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e696e666f3c2f7370616e3e3c2f613e3c2f68333e3c2f73756d6d6172793e3c64697620636c6173733d7461626c652d636f6e7461696e65723e3c7461626c652069643d776172702d636f6e666967732d7461626c653e3c74723e3c74643e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e76327261794e473c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e76327261794e3c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e537472656973616e643c2f7370616e3e3c2f6469763e3c2f74643e3c74643e3c627574746f6e207469746c653d22446973706c617920515220636f646522206f6e636c69636b3d226f70656e5152282777617270272c202778726179272c202757617270272c20275761727020537562736372697074696f6e2729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e71725f636f64653c2f7370616e3e3c2f627574746f6e3e203c627574746f6e207469746c653d22436f707920737562736372697074696f6e2055524c22206f6e636c69636b3d2273756255524c282777617270272c202778726179272c2027576172702729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e636f6e74656e745f636f70793c2f7370616e3e3c2f627574746f6e3e203c627574746f6e207469746c653d22446f776e6c6f616420636f6e66696722206f6e636c69636b3d22646c55524c282777617270272c2027787261792729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e646f776e6c6f61643c2f7370616e3e3c2f627574746f6e3e3c2f74643e3c2f74723e3c74723e3c74643e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e73696e672d626f783c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e76327261794e202873696e672d626f78293c2f7370616e3e3c2f6469763e3c2f74643e3c74643e3c627574746f6e207469746c653d22446973706c617920515220636f646522206f6e636c69636b3d226f70656e5152282777617270272c202773696e672d626f78272c202757617270272c20275761727020537562736372697074696f6e272c207472756529223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e71725f636f64653c2f7370616e3e3c2f627574746f6e3e203c627574746f6e207469746c653d22436f707920737562736372697074696f6e2055524c22206f6e636c69636b3d2273756255524c282777617270272c202773696e672d626f78272c2027576172702729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e636f6e74656e745f636f70793c2f7370616e3e3c2f627574746f6e3e203c627574746f6e207469746c653d22446f776e6c6f616420636f6e66696722206f6e636c69636b3d22646c55524c282777617270272c202773696e672d626f782729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e646f776e6c6f61643c2f7370616e3e3c2f627574746f6e3e3c2f74643e3c2f74723e3c74723e3c74643e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e436c617368204d6574613c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e436c6173682056657267653c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e466c436c6173683c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e53746173683c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e76327261794e20286d69686f6d6f293c2f7370616e3e3c2f6469763e3c2f74643e3c74643e3c627574746f6e207469746c653d22446973706c617920515220636f646522206f6e636c69636b3d226f70656e5152282777617270272c2027636c617368272c202757617270272c20275761727020537562736372697074696f6e2729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e71725f636f64653c2f7370616e3e3c2f627574746f6e3e203c627574746f6e207469746c653d22436f707920737562736372697074696f6e2055524c22206f6e636c69636b3d2273756255524c282777617270272c2027636c617368272c2027576172702729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e636f6e74656e745f636f70793c2f7370616e3e3c2f627574746f6e3e203c627574746f6e207469746c653d22446f776e6c6f616420636f6e66696722206f6e636c69636b3d22646c55524c282777617270272c2027636c6173682729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e646f776e6c6f61643c2f7370616e3e3c2f627574746f6e3e3c2f74643e3c2f74723e3c74723e3c74643e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e5769726567756172643c2f7370616e3e3c2f6469763e3c2f74643e3c74643e3c627574746f6e207469746c653d22446f776e6c6f616420636f6e66696773207a6970222069643d646c436f6e6669677342746e20747970653d627574746f6e206f6e636c69636b3d646f776e6c6f616457617270436f6e666967732866616c7365293e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e646f776e6c6f61643c2f7370616e3e3c2f627574746f6e3e3c2f74643e3c2f74723e3c2f7461626c653e3c2f6469763e3c2f64657461696c733e3c64657461696c733e3c73756d6d6172793e3c68333e576172702050524f203c6120687265663d68747470733a2f2f6269612d7061696e2d62616368652e6769746875622e696f2f4250422d576f726b65722d50616e656c2f75736167652f776172702d70726f2f207461726765743d5f626c616e6b207469746c653d48656c703e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e696e666f3c2f7370616e3e3c2f613e3c2f68333e3c2f73756d6d6172793e3c64697620636c6173733d7461626c652d636f6e7461696e65723e3c7461626c652069643d776172702d70726f2d636f6e666967732d7461626c653e3c74723e3c74643e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e76327261794e473c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e76327261794e3c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e537472656973616e643c2f7370616e3e3c2f6469763e3c2f74643e3c74643e3c627574746f6e207469746c653d22446973706c617920515220636f646522206f6e636c69636b3d226f70656e51522827776172702d70726f272c202778726179272c2027576172702050726f272c2027576172702050726f20537562736372697074696f6e2729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e71725f636f64653c2f7370616e3e3c2f627574746f6e3e203c627574746f6e207469746c653d22436f707920737562736372697074696f6e2055524c22206f6e636c69636b3d2273756255524c2827776172702d70726f272c202778726179272c2027576172702050726f2729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e636f6e74656e745f636f70793c2f7370616e3e3c2f627574746f6e3e203c627574746f6e207469746c653d22446f776e6c6f616420636f6e66696722206f6e636c69636b3d22646c55524c2827776172702d70726f272c2027787261792729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e646f776e6c6f61643c2f7370616e3e3c2f627574746f6e3e3c2f74643e3c2f74723e3c74723e3c74643e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e4d616873614e473c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e76327261794e2d50524f3c2f7370616e3e3c2f6469763e3c2f74643e3c74643e3c627574746f6e207469746c653d22446973706c617920515220636f646522206f6e636c69636b3d226f70656e51522827776172702d70726f272c2027787261792d6b6e6f636b6572272c2027576172702050726f272c2027576172702050726f20537562736372697074696f6e2729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e71725f636f64653c2f7370616e3e3c2f627574746f6e3e203c627574746f6e207469746c653d22436f707920737562736372697074696f6e2055524c22206f6e636c69636b3d2273756255524c2827776172702d70726f272c2027787261792d6b6e6f636b6572272c2027576172702050726f2729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e636f6e74656e745f636f70793c2f7370616e3e3c2f627574746f6e3e203c627574746f6e207469746c653d22446f776e6c6f616420636f6e66696722206f6e636c69636b3d22646c55524c2827776172702d70726f272c2027787261792d6b6e6f636b65722729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e646f776e6c6f61643c2f7370616e3e3c2f627574746f6e3e3c2f74643e3c2f74723e3c74723e3c74643e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e436c617368204d6574613c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e436c6173682056657267653c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e466c436c6173683c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e53746173683c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e76327261794e20286d69686f6d6f293c2f7370616e3e3c2f6469763e3c2f74643e3c74643e3c627574746f6e207469746c653d22446973706c617920515220636f646522206f6e636c69636b3d226f70656e51522827776172702d70726f272c2027636c617368272c2027576172702050726f272c2027576172702050726f20537562736372697074696f6e2729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e71725f636f64653c2f7370616e3e3c2f627574746f6e3e203c627574746f6e207469746c653d22436f707920737562736372697074696f6e2055524c22206f6e636c69636b3d2273756255524c2827776172702d70726f272c2027636c617368272c2027576172702050726f2729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e636f6e74656e745f636f70793c2f7370616e3e3c2f627574746f6e3e203c627574746f6e207469746c653d22446f776e6c6f616420636f6e66696722206f6e636c69636b3d22646c55524c2827776172702d70726f272c2027636c6173682729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e646f776e6c6f61643c2f7370616e3e3c2f627574746f6e3e3c2f74643e3c2f74723e3c74723e3c74643e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e416d6e657a69613c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e57472054756e6e656c3c2f7370616e3e3c2f6469763e3c2f74643e3c74643e3c627574746f6e207469746c653d22446f776e6c6f616420636f6e66696773207a6970222069643d646c416d6e657a6961436f6e6669677342746e20747970653d627574746f6e206f6e636c69636b3d646f776e6c6f616457617270436f6e666967732874727565293e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e646f776e6c6f61643c2f7370616e3e3c2f627574746f6e3e3c2f74643e3c2f74723e3c2f7461626c653e3c2f6469763e3c2f64657461696c733e3c2f6469763e3c64697620636c6173733d22666f726d2d636f6e7461696e657220636f6e7461696e6572223e3c6469762069643d7265736574506173734d6f64616c20636c6173733d6d6f64616c3e3c64697620636c6173733d6d6f64616c2d636f6e74656e743e3c7370616e20636c6173733d636c6f73652069643d636c6f7365526573657450617373206f6e636c69636b3d636c6f736552657365745061737328293e2674696d65733b3c2f7370616e3e3c666f726d2069643d70617373776f72644368616e6765466f726d206f6e7375626d69743d726573657450617373776f7264286576656e74293e3c68323e4368616e67652050617373776f72643c2f68323e3c64697620636c6173733d73656374696f6e3e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d6e657750617373776f72643e4e65772050617373776f72643c2f6c6162656c3e3c64697620636c6173733d70617373776f72642d777261707065723e3c696e70757420747970653d70617373776f72642069643d6e657750617373776f7264206e616d653d6e657750617373776f72642072657175697265643e203c7370616e20636c6173733d226d6174657269616c2d73796d626f6c732d726f756e64656420746f67676c652d70617373776f7264223e7669736962696c6974795f6f66663c2f7370616e3e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d636f6e6669726d50617373776f72643e436f6e6669726d2050617373776f72643c2f6c6162656c3e3c64697620636c6173733d70617373776f72642d777261707065723e3c696e70757420747970653d70617373776f72642069643d636f6e6669726d50617373776f7264206e616d653d636f6e6669726d50617373776f72642072657175697265643e203c7370616e20636c6173733d226d6174657269616c2d73796d626f6c732d726f756e64656420746f67676c652d70617373776f7264223e7669736962696c6974795f6f66663c2f7370616e3e3c2f6469763e3c2f6469763e3c2f6469763e3c6469762069643d70617373776f72644572726f7220636c6173733d70617373776f72642d6572726f723e3c2f6469763e3c627574746f6e2069643d6368616e676550617373776f726442746e20747970653d7375626d697420636c6173733d627574746f6e3e4368616e67652050617373776f72643c2f627574746f6e3e3c2f666f726d3e3c2f6469763e3c2f6469763e3c6469762069643d71724d6f64616c20636c6173733d6d6f64616c51523e3c64697620636c6173733d6d6f64616c2d636f6e74656e7420636c6173733d6d6f64616c2d636f6e74656e743e3c64697620636c6173733d6d6f64616c2d6865616465723e3c7370616e2069643d636c6f7365515220636c6173733d636c6f7365206f6e636c69636b3d636c6f7365515228293e2674696d65733b3c2f7370616e3e203c7370616e2069643d7172636f64655469746c6520636c6173733d71722d7469746c653e3c2f7370616e3e3c2f6469763e3c6469762069643d7172636f64652d636f6e7461696e65723e3c2f6469763e3c2f6469763e3c2f6469763e3c64697620636c6173733d6865616465722d636f6e7461696e65723e3c68323e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e66696e6765727072696e743c2f7370616e3e204d792049503c2f68323e3c627574746f6e20747970653d627574746f6e2069643d726566726573682d67656f2d6c6f636174696f6e20636c6173733d726566726573682d67656f2d6c6f636174696f6e206f6e636c69636b3d66657463684950496e666f28293e3c6920636c6173733d2266612066612d726566726573682066612d327820726566726573682d6d792d69702220617269612d68696464656e3d747275653e3c2f693e3c2f627574746f6e3e3c2f6469763e3c64697620636c6173733d6d792d69703e3c7461626c652069643d69707320636c6173733d6d792d69703e3c74686561643e3c74683e496e666f726d6174696f6e3c2f74683e3c74683e436c6f7564666c61726520746172676574733c2f74683e3c74683e4f7468657220746172676574733c2f74683e3c2f74686561643e3c74626f64793e3c74723e3c74643e49503c2f74643e3c74642069643d63662d69703e3c2f74643e3c74642069643d69703e3c2f74643e3c2f74723e3c74723e3c74643e436f756e7472793c2f74643e3c74642069643d63662d636f756e7472793e3c2f74643e3c74642069643d636f756e7472793e3c2f74643e3c2f74723e3c74723e3c74643e436974793c2f74643e3c74642069643d63662d636974793e3c2f74643e3c74642069643d636974793e3c2f74643e3c2f74723e3c74723e3c74643e4953503c2f74643e3c74642069643d63662d6973703e3c2f74643e3c74642069643d6973703e3c2f74643e3c2f74723e3c2f74626f64793e3c2f7461626c653e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f6f7465722d636f6e7461696e65723e3c64697620636c6173733d666f6f7465723e3c64697620636c6173733d6769746875622d636f6e7461696e65723e3c6920636c6173733d2266612066612d676974687562223e3c2f693e203c6120636c6173733d6c696e6b2069643d6769746875622d6c696e6b20687265663d68747470733a2f2f6769746875622e636f6d2f6269612d7061696e2d62616368652f4250422d576f726b65722d50616e656c207461726765743d5f626c616e6b3e4769746875623c2f613e3c2f6469763e3c627574746f6e2069643d6f70656e52657365745061737320636c6173733d627574746f6e206f6e636c69636b3d6f70656e52657365745061737328293e4368616e67652050617373776f7264203c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e6b65795f766572746963616c3c2f7370616e3e3c2f627574746f6e3e203c627574746f6e20747970653d627574746f6e2069643d6c6f676f757420636c6173733d6c6f676f7574207469746c653d224c6f67206f757422206f6e636c69636b3d6c6f676f7574286576656e74293e3c6920636c6173733d2266612066612d706f7765722d6f66662066612d32782220617269612d68696464656e3d747275653e3c2f693e3c2f627574746f6e3e3c2f6469763e3c2f6469763e3c627574746f6e2069643d6461726b4d6f6465546f67676c6520636c6173733d666c6f6174696e672d627574746f6e206f6e636c69636b3d6461726b4d6f6465546f67676c6528293e3c692069643d6d6f646549636f6e20636c6173733d2266612066612d32782066612d61646a757374206461726b2d6d6f64652220617269612d68696464656e3d747275653e3c2f693e3c2f627574746f6e3e3c73637269707420747970653d6d6f64756c652064656665723d64656665723e696d706f7274207b20706f6c7966696c6c436f756e747279466c6167456d6f6a6973207d2066726f6d202268747470733a2f2f63646e2e736b797061636b2e6465762f636f756e7472792d666c61672d656d6f6a692d706f6c7966696c6c223b0a2020202020202020706f6c7966696c6c436f756e747279466c6167456d6f6a697328293b3c2f7363726970743e3c736372697074207372633d68747470733a2f2f63646e6a732e636c6f7564666c6172652e636f6d2f616a61782f6c6962732f7172636f64656a732f312e302e302f7172636f64652e6d696e2e6a733e3c2f7363726970743e3c7363726970743e22656e61626c6564223d3d3d6c6f63616c53746f726167652e6765744974656d28226461726b4d6f646522292626646f63756d656e742e626f64792e636c6173734c6973742e61646428226461726b2d6d6f646522293b636f6e737420666f726d3d646f63756d656e742e676574456c656d656e74427949642822636f6e666967466f726d22292c5b73656c656374456c656d656e74732c6e756d496e707574456c656d656e74732c696e707574456c656d656e74732c7465787461726561456c656d656e74732c636865636b626f78456c656d656e74735d3d5b2273656c656374222c22696e7075745b747970653d6e756d6265725d222c22696e7075743a6e6f74285b747970653d66696c655d29222c227465787461726561222c22696e7075745b747970653d636865636b626f785d225d2e6d617028653d3e666f726d2e717565727953656c6563746f72416c6c286529292c64656661756c744874747073506f7274733d5b3434332c383434332c323035332c323038332c323038372c323039365d2c64656661756c7448747470506f7274733d5b38302c383038302c383838302c323035322c323038322c323038362c323039355d2c646f6d61696e52656765783d2f5e283f3d2e7b312c3235337d2429283f3a283f3a5b612d7a412d5a302d395d283f3a5b612d7a412d5a302d392d5d7b302c36317d5b612d7a412d5a302d395d293f295c2e292b5b612d7a412d5a5d7b322c36337d242f2c6970763452656765783d2f5e283f3a283f3a32355b302d355d7c325b302d345d5c647c5b30315d3f5c645c643f295c2e297b337d283f3a32355b302d355d7c325b302d345d5c647c5b30315d3f5c645c643f29242f2c6970763652656765783d2f5e5c5b283f3a283f3a5b612d66412d46302d395d7b312c347d3a297b377d5b612d66412d46302d395d7b312c347d7c283f3a5b612d66412d46302d395d7b312c347d3a297b312c377d3a7c283f3a5b612d66412d46302d395d7b312c347d3a297b312c367d3a5b612d66412d46302d395d7b312c347d7c283f3a5b612d66412d46302d395d7b312c347d3a297b312c357d283f3a3a5b612d66412d46302d395d7b312c347d297b312c327d7c283f3a5b612d66412d46302d395d7b312c347d3a297b312c347d283f3a3a5b612d66412d46302d395d7b312c347d297b312c337d7c283f3a5b612d66412d46302d395d7b312c347d3a297b312c337d283f3a3a5b612d66412d46302d395d7b312c347d297b312c347d7c283f3a5b612d66412d46302d395d7b312c347d3a297b312c327d283f3a3a5b612d66412d46302d395d7b312c347d297b312c357d7c5b612d66412d46302d395d7b312c347d3a283f3a3a5b612d66412d46302d395d7b312c347d297b312c367d7c3a283f3a3a5b612d66412d46302d395d7b312c347d297b312c377d295c5d242f3b66756e6374696f6e20696e69746961746550616e656c2865297b636f6e73747b564c436f6e666967733a742c5452436f6e666967733a6e2c706f7274733a6f2c787261795564704e6f697365733a617d3d653b4f626a6563742e61737369676e28676c6f62616c546869732c7b61637469766550726f746f636f6c733a742b6e2c616374697665546c73506f7274733a6f2e66696c74657228653d3e64656661756c744874747073506f7274732e696e636c75646573286529292c787261794e6f697365436f756e743a612e6c656e6774687d292c706f70756c61746550616e656c2865292c72656e646572506f727473426c6f636b286f2e6d6170284e756d62657229292c72656e6465725564704e6f697365426c6f636b2861292c696e697469617465466f726d28292c66657463684950496e666f28297d66756e6374696f6e20706f70756c61746550616e656c2865297b73656c656374456c656d656e74732e666f724561636828743d3e742e76616c75653d655b742e69645d292c636865636b626f78456c656d656e74732e666f724561636828743d3e742e636865636b65643d655b742e69645d292c696e707574456c656d656e74732e666f724561636828743d3e742e76616c75653d655b742e69645d292c7465787461726561456c656d656e74732e666f724561636828743d3e7b636f6e7374206e3d742e69642c6f3d646f63756d656e742e676574456c656d656e7442794964286e292c613d655b6e5d3f2e6a6f696e28225c725c6e22292c733d655b6e5d2e6c656e6774683b6f2e7374796c652e6865696768743d226175746f222c732626286f2e726f77733d73292c6f2e76616c75653d617d297d66756e6374696f6e20696e697469617465466f726d28297b636f6e737420653d646f63756d656e742e676574456c656d656e74427949642822636f6e666967466f726d22293b676c6f62616c546869732e696e697469616c466f726d446174613d6e657720466f726d446174612865292c656e61626c654170706c79427574746f6e28292c652e6164644576656e744c697374656e65722822696e707574222c656e61626c654170706c79427574746f6e292c652e6164644576656e744c697374656e657228226368616e6765222c656e61626c654170706c79427574746f6e293b646f63756d656e742e717565727953656c6563746f72416c6c2822746578746172656122292e666f724561636828653d3e7b652e6164644576656e744c697374656e65722822696e707574222c66756e6374696f6e28297b746869732e7374796c652e6865696768743d226175746f222c746869732e7374796c652e6865696768743d60247b746869732e7363726f6c6c4865696768747d7078607d297d292c68616e646c65467261676d656e744d6f646528297d66756e6374696f6e20686173466f726d446174614368616e67656428297b636f6e737420653d653d3e4f626a6563742e66726f6d456e747269657328652e656e74726965732829292c743d646f63756d656e742e676574456c656d656e74427949642822636f6e666967466f726d22292c6e3d6e657720466f726d446174612874292c6f3d6528676c6f62616c546869732e696e697469616c466f726d44617461292c613d65286e293b72657475726e204a534f4e2e737472696e67696679286f29213d3d4a534f4e2e737472696e676966792861297d66756e6374696f6e20656e61626c654170706c79427574746f6e28297b636f6e737420653d646f63756d656e742e676574456c656d656e744279496428226170706c79427574746f6e22292c743d686173466f726d446174614368616e67656428293b652e64697361626c65643d21742c652e636c6173734c6973742e746f67676c65282264697361626c6564222c2174297d66756e6374696f6e206f70656e52657365745061737328297b646f63756d656e742e676574456c656d656e744279496428227265736574506173734d6f64616c22292e7374796c652e646973706c61793d22626c6f636b222c646f63756d656e742e626f64792e7374796c652e6f766572666c6f773d2268696464656e227d66756e6374696f6e20636c6f736552657365745061737328297b646f63756d656e742e676574456c656d656e744279496428227265736574506173734d6f64616c22292e7374796c652e646973706c61793d226e6f6e65222c646f63756d656e742e626f64792e7374796c652e6f766572666c6f773d22227d66756e6374696f6e20636c6f7365515228297b636f6e737420653d646f63756d656e742e676574456c656d656e7442794964282271724d6f64616c22292c743d646f63756d656e742e676574456c656d656e744279496428227172636f64652d636f6e7461696e657222293b652e7374796c652e646973706c61793d226e6f6e65222c742e6c617374456c656d656e744368696c642e72656d6f766528297d66756e6374696f6e206461726b4d6f6465546f67676c6528297b636f6e737420653d646f63756d656e742e626f64792e636c6173734c6973742e746f67676c6528226461726b2d6d6f646522293b6c6f63616c53746f726167652e7365744974656d28226461726b4d6f6465222c653f22656e61626c6564223a2264697361626c656422297d6173796e632066756e6374696f6e20676574497044657461696c732865297b7472797b636f6e737420743d617761697420666574636828222f70616e656c2f6d792d6970222c7b6d6574686f643a22504f5354222c626f64793a657d292c6e3d617761697420742e6a736f6e28292c7b737563636573733a6f2c7374617475733a612c6d6573736167653a732c626f64793a727d3d6e3b696628216f297468726f77206e6577204572726f72286073746174757320247b617d202d20247b737d60293b72657475726e20727d63617463682865297b636f6e736f6c652e6572726f7228224665746368696e67204950206572726f723a222c652e6d6573736167657c7c65297d7d6173796e632066756e6374696f6e2066657463684950496e666f28297b636f6e737420653d646f63756d656e742e676574456c656d656e74427949642822726566726573682d67656f2d6c6f636174696f6e22292e717565727953656c6563746f7228226922293b652e636c6173734c6973742e616464282266612d7370696e22293b636f6e737420743d28653d222d222c743d222d222c6e3d222d222c6f3d222d222c613d222d222c73293d3e7b636f6e737420723d222d22213d3d6e3f537472696e672e66726f6d436f6465506f696e74282e2e2e5b2e2e2e6e5d2e6d617028653d3e3132373436322b652e63686172436f646541742830292d363529293a22222c6c3d28652c74293d3e646f63756d656e742e676574456c656d656e74427949642865292e74657874436f6e74656e743d743b6c28733f2263662d6970223a226970222c65292c6c28733f2263662d636f756e747279223a22636f756e747279222c60247b747d20247b727d60292c6c28733f2263662d63697479223a2263697479222c6f292c6c28733f2263662d697370223a22697370222c61297d3b7472797b636f6e7374206e3d6177616974206665746368282268747470733a2f2f697077686f2e69732f3f6e6f63616368653d222b446174652e6e6f7728292c7b63616368653a226e6f2d73746f7265227d292c7b737563636573733a6f2c69703a612c6d6573736167653a737d3d6177616974206e2e6a736f6e28293b696628216f297468726f77206e6577204572726f7228604665746368204f746865722074617267657473204950206661696c656420617420247b6e2e75726c7d202d20247b737d60293b636f6e73747b636f756e7472793a722c636f756e747279436f64653a6c2c636974793a692c6973703a637d3d617761697420676574497044657461696c732861293b7428612c722c6c2c692c63292c652e636c6173734c6973742e72656d6f7665282266612d7370696e22297d63617463682865297b636f6e736f6c652e6572726f7228224665746368696e67204950206572726f723a222c652e6d6573736167657c7c65297d7472797b636f6e7374206e3d6177616974206665746368282268747470733a2f2f697076342e6963616e68617a69702e636f6d2f3f6e6f63616368653d222b446174652e6e6f7728292c7b63616368653a226e6f2d73746f7265227d293b696628216e2e6f6b297b636f6e737420653d6177616974206e2e7465787428293b7468726f77206e6577204572726f722860466574636820436c6f7564666c6172652074617267657473204950206661696c656420776974682073746174757320247b6e2e7374617475737d20617420247b6e2e75726c7d202d20247b657d60297d636f6e7374206f3d6177616974206e2e7465787428292c7b636f756e7472793a612c636f756e747279436f64653a732c636974793a722c6973703a6c7d3d617761697420676574497044657461696c73286f293b74286f2c612c732c722c6c2c2130292c652e636c6173734c6973742e72656d6f7665282266612d7370696e22297d63617463682865297b636f6e736f6c652e6572726f7228224665746368696e67204950206572726f723a222c652e6d6573736167657c7c65297d7d66756e6374696f6e20646f776e6c6f616457617270436f6e666967732865297b636f6e737420743d653f223f6170703d616d6e657a6961223a22223b77696e646f772e6c6f636174696f6e2e687265663d222f70616e656c2f6765742d776172702d636f6e66696773222b747d66756e6374696f6e2067656e657261746553756255726c28652c742c6e2c6f297b636f6e737420613d6e65772055524c2877696e646f772e6c6f636174696f6e2e68726566293b72657475726e20612e706174686e616d653d602f7375622f247b657d2f247b676c6f62616c546869732e737562506174687d602c742626612e736561726368506172616d732e617070656e642822617070222c74292c6e262628612e686173683d60f09f92a620247b61746f622822516c424322297d20247b6e7d60292c6f3f6073696e672d626f783a2f2f696d706f72742d72656d6f74652d70726f66696c653f75726c3d247b612e687265667d603a612e687265667d66756e6374696f6e2073756255524c28652c742c6e2c6f297b636f7079546f436c6970626f6172642867656e657261746553756255726c28652c742c6e2c6f29297d6173796e632066756e6374696f6e20646c55524c28652c74297b636f6e7374206e3d67656e657261746553756255726c28652c74293b7472797b636f6e737420653d6177616974206665746368286e292c743d617761697420652e7465787428293b69662821652e6f6b297468726f77206e6577204572726f72286073746174757320247b652e7374617475737d20617420247b652e75726c7d202d20247b747d60293b646f776e6c6f61644a534f4e28742c22636f6e6669672e6a736f6e22297d63617463682865297b636f6e736f6c652e6572726f722822446f776e6c6f6164206572726f723a222c652e6d6573736167657c7c65297d7d66756e6374696f6e20646f776e6c6f61644a534f4e28652c74297b636f6e7374206e3d6e657720426c6f62285b655d2c7b747970653a22746578742f706c61696e227d292c6f3d646f63756d656e742e637265617465456c656d656e7428226122293b6f2e687265663d55524c2e6372656174654f626a65637455524c286e292c6f2e646f776e6c6f61643d742c646f63756d656e742e626f64792e617070656e644368696c64286f292c6f2e636c69636b28292c646f63756d656e742e626f64792e72656d6f76654368696c64286f297d66756e6374696f6e206578706f727453657474696e677328297b636f6e737420653d76616c696461746553657474696e677328292c743d4a534f4e2e737472696e6769667928652c6e756c6c2c34293b646f776e6c6f61644a534f4e2862746f612874292c60247b61746f622822516c424322297d2d73657474696e67732e64617460297d66756e6374696f6e20696d706f727453657474696e677328297b636f6e737420653d646f63756d656e742e676574456c656d656e7442794964282266696c65496e70757422293b652e76616c75653d22222c652e636c69636b28297d6173796e632066756e6374696f6e2075706c6f616453657474696e67732865297b636f6e737420743d652e7461726765742e66696c65735b305d3b69662874297472797b636f6e7374206e3d617761697420742e7465787428292c6f3d61746f62286e292c613d4a534f4e2e7061727365286f293b75706461746553657474696e677328652c61292c696e69746961746550616e656c2861297d63617463682865297b636f6e736f6c652e6572726f7228224661696c656420746f20696d706f72742073657474696e67733a222c652e6d657373616765297d7d66756e6374696f6e206f70656e515228652c742c6e2c6f2c61297b636f6e737420733d646f63756d656e742e676574456c656d656e7442794964282271724d6f64616c22292c723d646f63756d656e742e676574456c656d656e744279496428227172636f64652d636f6e7461696e657222292c6c3d67656e657261746553756255726c28652c742c6e2c61293b646f63756d656e742e676574456c656d656e744279496428227172636f64655469746c6522292e74657874436f6e74656e743d6f2c732e7374796c652e646973706c61793d22626c6f636b223b6c657420693d646f63756d656e742e637265617465456c656d656e74282264697622293b692e636c6173734e616d653d227172636f6465222c692e7374796c652e70616464696e673d22327078222c692e7374796c652e6261636b67726f756e64436f6c6f723d2223666666666666222c6e6577205152436f646528692c7b746578743a6c2c77696474683a3235362c6865696768743a3235362c636f6c6f724461726b3a2223303030303030222c636f6c6f724c696768743a2223666666666666222c636f72726563744c6576656c3a5152436f64652e436f72726563744c6576656c2e487d292c722e617070656e644368696c642869297d66756e6374696f6e20636f7079546f436c6970626f6172642865297b6e6176696761746f722e636c6970626f6172642e7772697465546578742865292e7468656e2828293d3e616c6572742822e29c8520436f7069656420746f20636c6970626f6172643a5c6e5c6e222b6529292e636174636828653d3e636f6e736f6c652e6572726f7228224661696c656420746f20636f70793a222c6529297d6173796e632066756e6374696f6e2075706461746557617270436f6e6669677328297b69662821636f6e6669726d2822e29aa0efb88f2041726520796f7520737572653f22292972657475726e3b636f6e737420653d646f63756d656e742e676574456c656d656e74427949642822776172702d75706461746522293b646f63756d656e742e626f64792e7374796c652e637572736f723d2277616974222c652e636c6173734c6973742e616464282266612d7370696e22293b7472797b636f6e737420743d617761697420666574636828222f70616e656c2f7570646174652d77617270222c7b6d6574686f643a22504f5354222c63726564656e7469616c733a22696e636c756465227d292c7b737563636573733a6e2c7374617475733a6f2c6d6573736167653a617d3d617761697420742e6a736f6e28293b696628646f63756d656e742e626f64792e7374796c652e637572736f723d2264656661756c74222c652e636c6173734c6973742e72656d6f7665282266612d7370696e22292c216e297468726f7720616c6572742860e29aa0efb88f20416e206572726f72206f6363757265642c20506c656173652074727920616761696e215c6ee29b9420247b617d60292c6e6577204572726f72286073746174757320247b6f7d202d20247b617d60293b616c6572742822e29c85205761727020636f6e666967732075706461746564207375636365737366756c6c792122297d63617463682865297b636f6e736f6c652e6572726f7228225570646174696e67205761727020636f6e66696773206572726f723a222c652e6d6573736167657c7c65297d7d66756e6374696f6e2068616e646c6550726f746f636f6c4368616e67652865297b72657475726e20652e7461726765742e636865636b65643f28676c6f62616c546869732e61637469766550726f746f636f6c732b2b2c2130293a28676c6f62616c546869732e61637469766550726f746f636f6c732d2d2c303d3d3d676c6f62616c546869732e61637469766550726f746f636f6c733f28652e70726576656e7444656661756c7428292c652e7461726765742e636865636b65643d21652e7461726765742e636865636b65642c616c6572742822e29b94204174206c65617374206f6e652050726f746f636f6c2073686f756c642062652073656c65637465642122292c676c6f62616c546869732e61637469766550726f746f636f6c732b2b2c2131293a766f69642030297d66756e6374696f6e2068616e646c65506f72744368616e67652865297b636f6e737420743d4e756d62657228652e7461726765742e6e616d65293b72657475726e20652e7461726765742e636865636b65643f28676c6f62616c546869732e616374697665546c73506f7274732e707573682874292c2130293a28676c6f62616c546869732e616374697665546c73506f7274733d676c6f62616c546869732e616374697665546c73506f7274732e66696c74657228653d3e65213d3d74292c303d3d3d676c6f62616c546869732e616374697665546c73506f7274732e6c656e6774683f28652e70726576656e7444656661756c7428292c652e7461726765742e636865636b65643d21652e7461726765742e636865636b65642c616c6572742822e29b94204174206c65617374206f6e6520544c5320706f72742073686f756c642062652073656c65637465642122292c676c6f62616c546869732e616374697665546c73506f7274732e707573682874292c2131293a766f69642030297d66756e6374696f6e2068616e646c65467261676d656e744d6f646528297b636f6e737420653d646f63756d656e742e676574456c656d656e74427949642822667261676d656e744d6f646522292e76616c75652c743d4f626a6563742e66726f6d456e747269657328676c6f62616c546869732e696e697469616c466f726d446174612e656e74726965732829292c6e3d5b22667261676d656e744c656e6774684d696e222c22667261676d656e744c656e6774684d6178222c22667261676d656e74496e74657276616c4d696e222c22667261676d656e74496e74657276616c4d6178225d2c6f3d7b6c6f773a5b3130302c3230302c312c315d2c6d656469756d3a5b35302c3130302c312c355d2c686967683a5b31302c32302c31302c32305d2c637573746f6d3a6e2e6d617028653d3e745b655d297d3b6e2e666f72456163682828742c6e293d3e7b636f6e737420613d646f63756d656e742e676574456c656d656e74427949642874293b612e76616c75653d6f5b655d5b6e5d2c22637573746f6d22213d3d653f612e7365744174747269627574652822726561646f6e6c79222c227472756522293a612e72656d6f76654174747269627574652822726561646f6e6c7922297d297d66756e6374696f6e20726573657453657474696e677328297b69662821636f6e6669726d2822e29aa0efb88f20546869732077696c6c20726573657420616c6c2070616e656c2073657474696e67732e5c6e5c6ee29d932041726520796f7520737572653f22292972657475726e3b636f6e737420653d646f63756d656e742e676574456c656d656e74427949642822726566726573682d62746e22293b652e636c6173734c6973742e616464282266612d7370696e22293b646f63756d656e742e626f64792e7374796c652e637572736f723d2277616974222c666574636828222f70616e656c2f72657365742d73657474696e6773222c7b6d6574686f643a22504f5354222c626f64793a4a534f4e2e737472696e67696679287b726573657453657474696e67733a21307d292c63726564656e7469616c733a22696e636c756465222c686561646572733a7b22436f6e74656e742d54797065223a226170706c69636174696f6e2f6a736f6e227d7d292e7468656e28653d3e652e6a736f6e2829292e7468656e28287b737563636573733a742c7374617475733a6e2c6d6573736167653a6f2c626f64793a617d293d3e7b696628646f63756d656e742e626f64792e7374796c652e637572736f723d2264656661756c74222c652e636c6173734c6973742e72656d6f7665282266612d7370696e22292c2174297468726f77206e6577204572726f72286073746174757320247b6e7d202d20247b6f7d60293b696e69746961746550616e656c2861292c616c6572742822e29c852050616e656c2073657474696e677320726573657420746f2064656661756c74207375636365737366756c6c79215c6ef09f92a120506c656173652075706461746520796f757220737562736372697074696f6e732e22297d292e636174636828653d3e636f6e736f6c652e6572726f7228225265736574696e672073657474696e6773206572726f723a222c652e6d6573736167657c7c6529297d66756e6374696f6e2076616c696461746553657474696e677328297b636f6e737420653d646f63756d656e742e676574456c656d656e74427949642822636f6e666967466f726d22292c743d6e657720466f726d446174612865292c6e3d5b5d2c6f3d5b22756470587261794e6f6973654d6f6465222c22756470587261794e6f6973655061636b6574222c22756470587261794e6f69736544656c61794d696e222c22756470587261794e6f69736544656c61794d6178222c22756470587261794e6f697365436f756e74225d2e6d617028653d3e742e676574416c6c286529293b696628215b76616c696461746552656d6f7465444e5328292c76616c696461746553616e6374696f6e446e7328292c76616c69646174654c6f63616c444e5328292c76616c69646174654d756c7469706c65486f73744e616d657328292c76616c696461746550726f787949507328292c76616c69646174654e41543634507265666978657328292c76616c696461746557617270456e64706f696e747328292c76616c69646174654d696e4d617828292c76616c6964617465436861696e50726f787928292c76616c6964617465437573746f6d43646e28292c76616c69646174654b6e6f636b65724e6f69736528292c76616c6964617465587261794e6f69736573286f292c76616c6964617465437573746f6d52756c657328295d2e657665727928426f6f6c65616e292972657475726e21313b636f6e737420613d4f626a6563742e66726f6d456e747269657328742e656e74726965732829292c5b732c722c6c2c692c635d3d6f3b732e666f72456163682828652c74293d3e7b6e2e70757368287b747970653a652c7061636b65743a725b745d2c64656c61793a60247b6c5b745d7d2d247b695b745d7d602c636f756e743a635b745d7d297d292c612e787261795564704e6f697365733d6e3b636f6e737420643d5b2e2e2e64656661756c7448747470506f7274732c2e2e2e64656661756c744874747073506f7274735d3b72657475726e20612e706f7274733d642e7265647563652828652c6e293d3e28742e686173286e2e746f537472696e672829292626652e70757368286e292c65292c5b5d292c636865636b626f78456c656d656e74732e666f724561636828653d3e7b615b652e69645d3d742e68617328652e6964297d292c73656c656374456c656d656e74732e666f724561636828653d3e7b6c657420743d615b652e69645d3b2274727565223d3d3d74262628743d2130292c2266616c7365223d3d3d74262628743d2131292c615b652e69645d3d747d292c696e707574456c656d656e74732e666f724561636828653d3e7b22737472696e67223d3d747970656f6620615b652e69645d262628615b652e69645d3d615b652e69645d2e7472696d2829297d292c6e756d496e707574456c656d656e74732e666f724561636828653d3e7b615b652e69645d3d4e756d62657228615b652e69645d2e7472696d2829297d292c7465787461726561456c656d656e74732e666f724561636828653d3e7b636f6e737420743d652e69642c6e3d615b745d3b615b745d3d6e3f2e73706c697428225c6e22292e6d617028653d3e652e7472696d2829292e66696c74657228426f6f6c65616e297c7c5b5d7d292c617d66756e6374696f6e2075706461746553657474696e677328652c74297b652e70726576656e7444656661756c7428292c652e73746f7050726f7061676174696f6e28293b636f6e7374206e3d76616c696461746553657474696e677328293b696628216e2972657475726e21313b636f6e7374206f3d747c7c6e2c613d646f63756d656e742e676574456c656d656e744279496428226170706c79427574746f6e22293b646f63756d656e742e626f64792e7374796c652e637572736f723d2277616974223b636f6e737420733d612e76616c75653b612e76616c75653d22e28c9b204c6f6164696e672e2e2e222c666574636828222f70616e656c2f7570646174652d73657474696e6773222c7b6d6574686f643a22504f5354222c626f64793a4a534f4e2e737472696e67696679286f292c63726564656e7469616c733a22696e636c756465222c686561646572733a7b22436f6e74656e742d54797065223a226170706c69636174696f6e2f6a736f6e227d7d292e7468656e28653d3e652e6a736f6e2829292e7468656e28287b737563636573733a652c7374617475733a742c6d6573736167653a6e7d293d3e7b6966283430313d3d3d74262628616c6572742822e29aa0efb88f2053657373696f6e20657870697265642120506c65617365206c6f67696e20616761696e2e22292c77696e646f772e6c6f636174696f6e2e687265663d222f6c6f67696e22292c2165297468726f77206e6577204572726f72286073746174757320247b747d202d20247b6e7d60293b696e69746961746550616e656c286f292c616c6572742822e29c852053657474696e6773206170706c696564207375636365737366756c6c79215c6ef09f92a120506c656173652075706461746520796f757220737562736372697074696f6e732e22297d292e636174636828653d3e636f6e736f6c652e6572726f7228225570646174652073657474696e6773206572726f723a222c652e6d6573736167657c7c6529292e66696e616c6c792828293d3e7b646f63756d656e742e626f64792e7374796c652e637572736f723d2264656661756c74222c612e76616c75653d737d297d66756e6374696f6e2076616c696461746552656d6f7465444e5328297b6c657420653b636f6e737420743d676574456c6d56616c7565282272656d6f7465444e5322293b7472797b653d6e65772055524c2874297d63617463682865297b72657475726e20616c6572742822e29b9420496e76616c696420444e532c20506c6561736520656e74657220612055524c2e22292c21317d72657475726e5b227463703a222c2268747470733a222c22746c733a225d2e696e636c7564657328652e70726f746f636f6c293f215b22312e312e312e31222c22312e302e302e31222c22312e312e312e32222c22312e302e302e32222c22312e312e312e33222c22312e302e302e33222c22323630363a343730303a343730303a3a31313131222c22323630363a343730303a343730303a3a31303031222c22323630363a343730303a343730303a3a31313132222c22323630363a343730303a343730303a3a31303032222c22323630363a343730303a343730303a3a31313133222c22323630363a343730303a343730303a3a31303033222c22636c6f7564666c6172652d646e732e636f6d222c2273656375726974792e636c6f7564666c6172652d646e732e636f6d222c2266616d696c792e636c6f7564666c6172652d646e732e636f6d222c226f6e652e6f6e652e6f6e652e6f6e65222c2231646f7431646f7431646f7431225d2e696e636c7564657328652e686f73746e616d65297c7c28616c6572742822e29b9420436c6f7564666c61726520444e53206973206e6f7420616c6c6f77656420666f7220776f726b6572732e5c6ef09f92a120506c6561736520757365206f74686572207075626c696320444e532073657276657273206c696b6520476f6f676c652c20416467756172642e2e2e22292c2131293a28616c6572742822e29b9420506c6561736520656e746572205443502c20446f48206f7220446f5420736572766572732e22292c2131297d66756e6374696f6e2076616c696461746553616e6374696f6e446e7328297b636f6e737420653d676574456c6d56616c75652822616e746953616e6374696f6e444e5322293b6c657420743b7472797b743d6e65772055524c2865292e686f73746e616d657d63617463687b743d657d72657475726e2121697356616c6964486f73744e616d6528742c2131297c7c28616c6572742860e29b9420496e76616c696420495073206f7220446f6d61696e732e5c6ee29aa0efb88f20247b747d60292c2131297d66756e6374696f6e2076616c69646174654c6f63616c444e5328297b636f6e737420653d676574456c6d56616c756528226c6f63616c444e5322293b72657475726e2128216970763452656765782e746573742865292626226c6f63616c686f737422213d3d65297c7c28616c6572742860e29b9420496e76616c6964206c6f63616c20444e532e5c6ef09f92a120506c656173652066696c6c20696e20616e20495076342061646472657373206f7220226c6f63616c686f7374222e5c6e5c6ee29aa0efb88f20247b657d60292c2131297d66756e6374696f6e207061727365456c6d56616c7565732865297b72657475726e20646f63756d656e742e676574456c656d656e74427949642865292e76616c75653f2e73706c697428225c6e22292e6d617028653d3e652e7472696d2829292e66696c74657228426f6f6c65616e297c7c5b5d7d66756e6374696f6e20676574456c6d56616c75652865297b72657475726e20646f63756d656e742e676574456c656d656e74427949642865292e76616c75653f2e7472696d28297d66756e6374696f6e207061727365486f7374506f72742865297b636f6e737420743d652e6d61746368282f5e283f3c686f73743e5c5b2e2a3f5c5d7c5b5e3a5d2b29283f3a3a283f3c706f72743e5c642b29293f242f293b72657475726e20743f7b686f73743a742e67726f7570732e686f73742c706f72743a742e67726f7570732e706f72743f2b742e67726f7570732e706f72743a6e756c6c7d3a6e756c6c7d66756e6374696f6e20697356616c6964486f73744e616d6528652c74297b636f6e7374206e3d7061727365486f7374506f727428652e7472696d2829293b696628216e2972657475726e21313b636f6e73747b686f73743a6f2c706f72743a617d3d6e3b72657475726e2821617c7c2128613e36353533357c7c613c31292926262821287426262161292626286970763652656765782e74657374286f297c7c6970763452656765782e74657374286f297c7c646f6d61696e52656765782e74657374286f2929297d66756e6374696f6e2076616c6964617465437573746f6d52756c657328297b636f6e737420653d2f5e283f3a283f3a32355b302d355d7c325b302d345d5c647c5b30315d3f5c645c643f295c2e297b337d283f3a32355b302d355d7c325b302d345d5c647c5b30315d3f5c645c643f29283f3a5c2f283f3a5b302d395d7c5b312d325d5b302d395d7c335b302d325d29293f242f2c743d2f5e283f3a283f3a5b612d66412d46302d395d7b312c347d3a297b377d5b612d66412d46302d395d7b312c347d7c283f3a5b612d66412d46302d395d7b312c347d3a297b312c377d3a7c283f3a5b612d66412d46302d395d7b312c347d3a297b312c367d3a5b612d66412d46302d395d7b312c347d7c283f3a5b612d66412d46302d395d7b312c347d3a297b312c357d283f3a3a5b612d66412d46302d395d7b312c347d297b312c327d7c283f3a5b612d66412d46302d395d7b312c347d3a297b312c347d283f3a3a5b612d66412d46302d395d7b312c347d297b312c337d7c283f3a5b612d66412d46302d395d7b312c347d3a297b312c337d283f3a3a5b612d66412d46302d395d7b312c347d297b312c347d7c283f3a5b612d66412d46302d395d7b312c347d3a297b312c327d283f3a3a5b612d66412d46302d395d7b312c347d297b312c357d7c5b612d66412d46302d395d7b312c347d3a283f3a3a5b612d66412d46302d395d7b312c347d297b312c367d7c3a283f3a3a5b612d66412d46302d395d7b312c347d297b312c377d7c3a3a29283f3a5c2f283f3a31325b302d385d7c315b30315d3f5b302d395d7c5b302d395d3f5b302d395d29293f242f2c6e3d5b22637573746f6d42797061737352756c6573222c22637573746f6d426c6f636b52756c6573222c22637573746f6d42797061737353616e6374696f6e52756c6573225d2e666c61744d6170287061727365456c6d56616c756573292e66696c746572286e3d3e21652e74657374286e29262621742e74657374286e29262621646f6d61696e52656765782e74657374286e29293b72657475726e216e2e6c656e6774687c7c28616c6572742822e29b9420496e76616c6964204950732c20446f6d61696e73206f722049502072616e6765732e5c6ef09f92a120506c6561736520656e74657220656163682076616c756520696e2061206e6577206c696e652e5c6e5c6e222b6e2e6d617028653d3e60e29aa0efb88f20247b657d60292e6a6f696e28225c6e2229292c2131297d66756e6374696f6e2076616c69646174654d756c7469706c65486f73744e616d657328297b636f6e737420653d5b22636c65616e495073222c22637573746f6d43646e4164647273222c22637573746f6d43646e536e69222c22637573746f6d43646e486f7374225d2e666c61744d6170287061727365456c6d56616c756573292e66696c74657228653d3e21697356616c6964486f73744e616d65286529293b72657475726e21652e6c656e6774687c7c28616c6572742822e29b9420496e76616c696420495073206f7220446f6d61696e732e5c6ef09f92a120506c6561736520656e74657220656163682076616c756520696e2061206e6577206c696e652e5c6e5c6e222b652e6d617028653d3e60e29aa0efb88f20247b657d60292e6a6f696e28225c6e2229292c2131297d66756e6374696f6e2076616c696461746550726f787949507328297b636f6e737420653d7061727365456c6d56616c756573282270726f787949507322292e66696c74657228653d3e21697356616c6964486f73744e616d65286529293b72657475726e21652e6c656e6774687c7c28616c6572742822e29b9420496e76616c69642070726f7879204950732e5c6ef09f92a120506c6561736520656e74657220656163682076616c756520696e2061206e6577206c696e652e5c6e5c6e222b652e6d617028653d3e60e29aa0efb88f20247b657d60292e6a6f696e28225c6e2229292c2131297d66756e6374696f6e2076616c69646174654e41543634507265666978657328297b636f6e737420653d7061727365456c6d56616c7565732822707265666978657322292e66696c74657228653d3e216970763652656765782e74657374286529293b72657475726e21652e6c656e6774687c7c28616c6572742822e29b9420496e76616c6964204e41543634207072656669782e5c6ef09f92a120506c6561736520656e74657220656163682070726566697820696e2061206e6577206c696e65207573696e67205b5d2e5c6e5c6e222b652e6d617028653d3e60e29aa0efb88f20247b657d60292e6a6f696e28225c6e2229292c2131297d66756e6374696f6e2076616c696461746557617270456e64706f696e747328297b636f6e737420653d7061727365456c6d56616c756573282277617270456e64706f696e747322292e66696c74657228653d3e21697356616c6964486f73744e616d6528652c213029293b72657475726e21652e6c656e6774687c7c28616c6572742822e29b9420496e76616c696420656e64706f696e742e5c6e5c6e222b652e6d617028653d3e60e29aa0efb88f20247b657d60292e6a6f696e28225c6e2229292c2131297d66756e6374696f6e2076616c69646174654d696e4d617828297b636f6e73745b652c742c6e2c6f2c612c732c722c6c2c692c635d3d5b22667261676d656e744c656e6774684d696e222c22667261676d656e744c656e6774684d6178222c22667261676d656e74496e74657276616c4d696e222c22667261676d656e74496e74657276616c4d6178222c226e6f697365436f756e744d696e222c226e6f697365436f756e744d6178222c226e6f69736553697a654d696e222c226e6f69736553697a654d6178222c226e6f69736544656c61794d696e222c226e6f69736544656c61794d6178225d2e6d617028653d3e7061727365496e7428676574456c6d56616c75652865292c313029293b72657475726e2128653e3d747c7c6e3e6f7c7c613e737c7c723e6c7c7c693e63297c7c28616c6572742822e29b94204d696e696d756d2073686f756c6420626520736d616c6c6572206f7220657175616c20746f204d6178696d756d2122292c2131297d66756e6374696f6e2076616c6964617465436861696e50726f787928297b636f6e737420653d676574456c6d56616c756528226f757450726f787922292c743d2f766c6573733a5c2f5c2f5b5e5c73405d2b405b5e5c733a5d2b3a5b5e5c735d2b2f2e746573742865292c6e3d2f74726f6a616e3a5c2f5c2f5b5e5c73405d2b405b5e5c733a5d2b3a5b5e5c735d2b2f2e746573742865292c6f3d2f73733a5c2f5c2f5b5e5c73405d2b405b5e5c733a5d2b3a5b5e5c735d2b2f2e746573742865292c613d2f73656375726974793d2f2e746573742865292c733d2f5e28687474707c736f636b73293a5c2f5c2f283f3a285b5e3a405d2b293a285b5e3a405d2b2940293f285b5e3a405d2b293a285c642b29242f2e746573742865292c723d2f73656375726974793d28746c737c6e6f6e657c7265616c697479292f2c6c3d722e746573742865292c693d2f747970653d287463707c677270637c7773292f2e746573742865293b6966282821742626216e7c7c21286126266c7c7c2161297c7c2169292626216f262621732626652972657475726e20616c6572742822e29b9420496e76616c696420436f6e666967215c6ef09f92a12054686520636861696e2070726f78792073686f756c6420626520564c4553532c2054726f6a616e2c20536861646f77736f636b732c20536f636b73206f722048747470215c6ef09f92a120564c4553532c2054726f6a616e20616e6420536861646f77736f636b73207472616e736d697373696f6e2073686f756c6420626520475250432c5753206f72205443505c6ef09f92a120564c4553532c2054726f6a616e20616e6420536861646f77736f636b732073656375726974792073686f756c6420626520544c532c205265616c697479206f72204e6f6e655c6ef09f92a120536f636b73206f7220687474702073686f756c64206265206c696b653a5c6e202b2028736f636b73206f722068747470293a2f2f757365723a7061737340686f73743a706f72745c6e202b2028736f636b73206f722068747470293a2f2f686f73743a706f727422292c21313b6c657420633d652e6d617463682872293b636f6e737420643d633f2e5b315d7c7c6e756c6c3b633d652e6d61746368282f3a285c642b295c3f2f293b72657475726e21742626216e7c7c22746c7322213d3d647c7c22343433223d3d3d28633f2e5b315d7c7c6e756c6c297c7c28616c6572742822e29b9420564c45535320544c5320706f72742063616e206265206f6e6c792034343320746f206265207573656420617320612070726f787920636861696e2122292c2131297d66756e6374696f6e2076616c6964617465437573746f6d43646e28297b636f6e737420653d676574456c6d56616c75652822637573746f6d43646e486f737422292c743d676574456c6d56616c75652822637573746f6d43646e536e6922292c6e3d7061727365456c6d56616c7565732822637573746f6d43646e416464727322293b72657475726e2128286e2e6c656e6774687c7c2222213d3d657c7c2222213d3d7429262621286e2e6c656e67746826266526267429297c7c28616c6572742827e29b9420416c6c2022437573746f6d22206669656c64732073686f756c642062652066696c6c6564206f722064656c6574656420746f6765746865722127292c2131297d66756e6374696f6e2076616c69646174654b6e6f636b65724e6f69736528297b636f6e737420653d676574456c6d56616c756528226b6e6f636b65724e6f6973654d6f646522293b72657475726e21212f5e286e6f6e657c717569637c72616e646f6d7c5b302d39412d46612d665d2b29242f2e746573742865297c7c28616c6572742827e29b9420496e76616c6964206e6f69736520206d6f64652e5c6ef09f92a120506c656173652075736520226e6f6e65222c202271756963222c202272616e646f6d22206f7220612076616c6964206865782076616c75652e27292c2131297d66756e6374696f6e2076616c6964617465587261794e6f697365732865297b636f6e73745b742c6e2c6f2c615d3d652c733d2f5e283f3a5b412d5a612d7a302d392b2f5d7b347d292a283f3a5b412d5a612d7a302d392b2f5d7b327d3d3d7c5b412d5a612d7a302d392b2f5d7b337d3d293f242f3b6c657420723d21313b72657475726e20742e666f72456163682828652c74293d3e7b6966284e756d626572286f5b745d293e4e756d62657228615b745d292972657475726e20616c6572742822e29b9420546865206d696e696d756d206e6f6973652064656c61792073686f756c6420626520736d616c6c6572206f7220657175616c20746f206d6178696d756d2122292c766f696428723d2130293b7377697463682865297b6361736522626173653634223a732e74657374286e5b745d297c7c28616c6572742822e29b942054686520426173653634206e6f697365207061636b6574206973206e6f7420612076616c6964206261736536342076616c75652122292c723d2130293b627265616b3b636173652272616e64223a7b2f5e5c642b2d5c642b242f2e74657374286e5b745d297c7c28616c6572742822e29b94205468652052616e646f6d206e6f697365207061636b65742073686f756c6420626520612072616e6765206c696b6520302d3130206f722031302d33302122292c723d2130293b636f6e73745b652c6f5d3d6e5b745d2e73706c697428222d22292e6d6170284e756d626572293b653e6f262628616c6572742822e29b9420546865206d696e696d756d2052616e646f6d206e6f697365207061636b65742073686f756c6420626520736d616c6c6572206f7220657175616c20746f206d6178696d756d2122292c723d2130293b627265616b7d6361736522686578223a2f5e283f3d283f3a5b302d39412d46612d665d7b327d292a24295b302d39412d46612d665d2b242f2e74657374286e5b745d297c7c28616c6572742822e29b942054686520486578206e6f697365207061636b6574206973206e6f7420612076616c6964206865782076616c7565212049742073686f756c642068617665206576656e206c656e67746820616e6420636f6e736973746564206f6620302d392c20612d6620616e6420412d462e22292c723d2130297d7d292c21727d66756e6374696f6e206c6f676f75742865297b652e70726576656e7444656661756c7428292c666574636828222f6c6f676f7574222c7b6d6574686f643a22474554222c63726564656e7469616c733a2273616d652d6f726967696e227d292e7468656e28653d3e652e6a736f6e2829292e7468656e28287b737563636573733a652c7374617475733a742c6d6573736167653a6e7d293d3e7b6966282165297468726f77206e6577204572726f72286073746174757320247b747d202d20247b6e7d60293b77696e646f772e6c6f636174696f6e2e687265663d222f6c6f67696e227d292e636174636828653d3e636f6e736f6c652e6572726f7228224c6f676f7574206572726f723a222c652e6d6573736167657c7c6529297d66756e6374696f6e20726573657450617373776f72642865297b652e70726576656e7444656661756c7428293b636f6e737420743d646f63756d656e742e676574456c656d656e744279496428227265736574506173734d6f64616c22292c6e3d646f63756d656e742e676574456c656d656e744279496428226e657750617373776f726422292c6f3d646f63756d656e742e676574456c656d656e74427949642822636f6e6669726d50617373776f726422292c613d646f63756d656e742e676574456c656d656e7442794964282270617373776f72644572726f7222292c733d6e2e76616c75653b69662873213d3d6f2e76616c75652972657475726e20612e74657874436f6e74656e743d2250617373776f72647320646f206e6f74206d61746368222c21313b636f6e737420723d2f5b412d5a5d2f2e746573742873292c6c3d2f5b302d395d2f2e746573742873292c693d732e6c656e6774683e3d383b69662821287226266c262669292972657475726e20612e74657874436f6e74656e743d22e29aa0efb88f2050617373776f7264206d75737420636f6e7461696e206174206c65617374206f6e65206361706974616c206c65747465722c206f6e65206e756d6265722c20616e64206265206174206c6561737420382063686172616374657273206c6f6e672e222c21313b666574636828222f70616e656c2f72657365742d70617373776f7264222c7b6d6574686f643a22504f5354222c686561646572733a7b22436f6e74656e742d54797065223a22746578742f706c61696e227d2c626f64793a732c63726564656e7469616c733a2273616d652d6f726967696e227d292e7468656e28653d3e652e6a736f6e2829292e7468656e28287b737563636573733a652c7374617475733a742c6d6573736167653a6e7d293d3e7b6966282165297468726f7720612e74657874436f6e74656e743d60e29aa0efb88f20247b6e7d602c6e6577204572726f72286073746174757320247b747d202d20247b6e7d60293b616c6572742822e29c852050617373776f7264206368616e676564207375636365737366756c6c792120f09f918d22292c77696e646f772e6c6f636174696f6e2e687265663d222f6c6f67696e227d292e636174636828653d3e636f6e736f6c652e6572726f72282252657365742070617373776f7264206572726f723a222c652e6d6573736167657c7c6529292e66696e616c6c792828293d3e7b742e7374796c652e646973706c61793d226e6f6e65222c646f63756d656e742e626f64792e7374796c652e6f766572666c6f773d22227d297d66756e6374696f6e2072656e646572506f727473426c6f636b2865297b6c657420743d22222c6e3d22223b5b2e2e2e77696e646f772e6f726967696e2e696e636c756465732822776f726b6572732e64657622293f64656661756c7448747470506f7274733a5b5d2c2e2e2e64656661756c744874747073506f7274735d2e666f7245616368286f3d3e7b636f6e737420613d652e696e636c75646573286f293f22636865636b6564223a22223b6c657420733d22222c723d22223b64656661756c744874747073506f7274732e696e636c75646573286f29262628733d27636c6173733d22687474707322272c723d276f6e636c69636b3d2268616e646c65506f72744368616e6765286576656e74292227293b636f6e7374206c3d605c6e2020202020202020202020203c64697620636c6173733d22726f7574696e67223e5c6e202020202020202020202020202020203c696e70757420747970653d22636865636b626f7822206e616d653d247b6f7d20247b737d2076616c75653d22747275652220247b617d20247b727d3e5c6e202020202020202020202020202020203c6c6162656c3e247b6f7d3c2f6c6162656c3e5c6e2020202020202020202020203c2f6469763e603b64656661756c744874747073506f7274732e696e636c75646573286f293f6e2b3d6c3a742b3d6c7d292c646f63756d656e742e676574456c656d656e74427949642822746c732d706f72747322292e696e6e657248544d4c3d6e2c74262628646f63756d656e742e676574456c656d656e744279496428226e6f6e2d746c732d706f72747322292e696e6e657248544d4c3d742c646f63756d656e742e676574456c656d656e744279496428226e6f6e652d746c7322292e7374796c652e646973706c61793d22666c657822297d66756e6374696f6e206164645564704e6f69736528652c742c6e297b636f6e7374206f3d743f3f676c6f62616c546869732e787261794e6f697365436f756e742c613d6e7c7c7b747970653a2272616e64222c7061636b65743a2235302d313030222c64656c61793a22312d35222c636f756e743a357d2c733d646f63756d656e742e637265617465456c656d656e74282264697622293b732e636c6173734e616d653d22696e6e65722d636f6e7461696e6572222c732e69643d607564702d6e6f6973652d247b6f2b317d602c732e696e6e657248544d4c3d605c6e20202020202020203c64697620636c6173733d226865616465722d636f6e7461696e6572223e5c6e2020202020202020202020203c68343e4e6f69736520247b6f2b317d3c2f68343e5c6e2020202020202020202020203c627574746f6e20747970653d22627574746f6e2220636c6173733d2264656c6574652d6e6f697365223e5c6e202020202020202020202020202020203c7370616e20636c6173733d226d6174657269616c2d73796d626f6c732d726f756e646564223e64656c6574653c2f7370616e3e5c6e2020202020202020202020203c2f627574746f6e3e2020202020205c6e20202020202020203c2f6469763e5c6e20202020202020203c64697620636c6173733d2273656374696f6e223e5c6e2020202020202020202020203c64697620636c6173733d22666f726d2d636f6e74726f6c223e5c6e202020202020202020202020202020203c6c6162656c3ef09f98b5e2808df09f92ab204d6f64653c2f6c6162656c3e5c6e202020202020202020202020202020203c6469763e5c6e20202020202020202020202020202020202020203c73656c656374206e616d653d22756470587261794e6f6973654d6f6465223e5c6e2020202020202020202020202020202020202020202020203c6f7074696f6e2076616c75653d226261736536342220247b22626173653634223d3d3d612e747970653f2273656c6563746564223a22227d3e4261736536343c2f6f7074696f6e3e5c6e2020202020202020202020202020202020202020202020203c6f7074696f6e2076616c75653d2272616e642220247b2272616e64223d3d3d612e747970653f2273656c6563746564223a22227d3e52616e646f6d3c2f6f7074696f6e3e5c6e2020202020202020202020202020202020202020202020203c6f7074696f6e2076616c75653d227374722220247b22737472223d3d3d612e747970653f2273656c6563746564223a22227d3e537472696e673c2f6f7074696f6e3e5c6e2020202020202020202020202020202020202020202020203c6f7074696f6e2076616c75653d226865782220247b22686578223d3d3d612e747970653f2273656c6563746564223a22227d3e4865783c2f6f7074696f6e3e5c6e20202020202020202020202020202020202020203c2f73656c6563743e5c6e202020202020202020202020202020203c2f6469763e5c6e2020202020202020202020203c2f6469763e5c6e2020202020202020202020203c64697620636c6173733d22666f726d2d636f6e74726f6c223e5c6e202020202020202020202020202020203c6c6162656c3ef09f93a5205061636b65743c2f6c6162656c3e5c6e202020202020202020202020202020203c6469763e5c6e20202020202020202020202020202020202020203c696e70757420747970653d227465787422206e616d653d22756470587261794e6f6973655061636b6574222076616c75653d22247b612e7061636b65747d223e5c6e202020202020202020202020202020203c2f6469763e5c6e2020202020202020202020203c2f6469763e5c6e2020202020202020202020203c64697620636c6173733d22666f726d2d636f6e74726f6c223e5c6e202020202020202020202020202020203c6c6162656c3ef09f8e9aefb88f20436f756e743c2f6c6162656c3e5c6e202020202020202020202020202020203c6469763e5c6e20202020202020202020202020202020202020203c696e70757420747970653d226e756d62657222206e616d653d22756470587261794e6f697365436f756e74222076616c75653d22247b612e636f756e747d22206d696e3d2231222072657175697265643e5c6e202020202020202020202020202020203c2f6469763e5c6e2020202020202020202020203c2f6469763e5c6e2020202020202020202020203c64697620636c6173733d22666f726d2d636f6e74726f6c223e5c6e202020202020202020202020202020203c6c6162656c3ef09f959e2044656c61793c2f6c6162656c3e5c6e202020202020202020202020202020203c64697620636c6173733d226d696e2d6d6178223e5c6e20202020202020202020202020202020202020203c696e70757420747970653d226e756d62657222206e616d653d22756470587261794e6f69736544656c61794d696e225c6e20202020202020202020202020202020202020202020202076616c75653d22247b612e64656c61792e73706c697428222d22295b305d7d22206d696e3d2231222072657175697265643e5c6e20202020202020202020202020202020202020203c7370616e3e202d203c2f7370616e3e5c6e20202020202020202020202020202020202020203c696e70757420747970653d226e756d62657222206e616d653d22756470587261794e6f69736544656c61794d6178225c6e20202020202020202020202020202020202020202020202076616c75653d22247b612e64656c61792e73706c697428222d22295b315d7d22206d696e3d2231222072657175697265643e5c6e202020202020202020202020202020203c2f6469763e5c6e2020202020202020202020203c2f6469763e5c6e20202020202020203c2f6469763e602c732e717565727953656c6563746f7228222e64656c6574652d6e6f69736522292e6164644576656e744c697374656e65722822636c69636b222c64656c6574655564704e6f697365292c732e717565727953656c6563746f72282273656c65637422292e6164644576656e744c697374656e657228226368616e6765222c67656e65726174655564704e6f697365292c646f63756d656e742e676574456c656d656e744279496428226e6f6973657322292e617070656e642873292c652626656e61626c654170706c79427574746f6e28292c676c6f62616c546869732e787261794e6f697365436f756e742b2b7d66756e6374696f6e2067656e65726174655564704e6f6973652865297b636f6e737420743d652e7461726765742e636c6f7365737428222e696e6e65722d636f6e7461696e657222292e717565727953656c6563746f7228275b6e616d653d22756470587261794e6f6973655061636b6574225d27293b73776974636828652e7461726765742e76616c7565297b6361736522626173653634223a742e76616c75653d28653d3e7b636f6e737420743d6e65772055696e74384172726179284d6174682e6365696c28332a652f3429293b72657475726e2063727970746f2e67657452616e646f6d56616c7565732874292c62746f6128537472696e672e66726f6d43686172436f6465282e2e2e7429292e736c69636528302c65297d29283634293b627265616b3b636173652272616e64223a742e76616c75653d2235302d313030223b627265616b3b6361736522686578223a742e76616c75653d28653d3e7b636f6e737420743d6e65772055696e74384172726179284d6174682e6365696c28652f3229293b72657475726e2063727970746f2e67657452616e646f6d56616c7565732874292c5b2e2e2e745d2e6d617028653d3e652e746f537472696e67283136292e706164537461727428322c22302229292e6a6f696e282222292e736c69636528302c65297d29283634293b627265616b3b6361736522737472223a742e76616c75653d28653d3e7b636f6e737420743d224142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a30313233343536373839222c6e3d6e65772055696e743841727261792865293b72657475726e2041727261792e66726f6d2863727970746f2e67657452616e646f6d56616c756573286e292c653d3e745b652536325d292e6a6f696e282222297d29283634297d7d66756e6374696f6e2064656c6574655564704e6f6973652865297b696628313d3d3d676c6f62616c546869732e787261794e6f697365436f756e742972657475726e20766f696420616c6572742822e29b9420596f752063616e6e6f742064656c65746520616c6c206e6f697365732122293b636f6e6669726d2822e29aa0efb88f20546869732077696c6c2064656c65746520746865206e6f6973652e5c6e5c6ee29d932041726520796f7520737572653f2229262628652e7461726765742e636c6f7365737428222e696e6e65722d636f6e7461696e657222292e72656d6f766528292c656e61626c654170706c79427574746f6e28292c676c6f62616c546869732e787261794e6f697365436f756e742d2d297d66756e6374696f6e2072656e6465725564704e6f697365426c6f636b2865297b646f63756d656e742e676574456c656d656e744279496428226e6f6973657322292e696e6e657248544d4c3d22222c652e666f72456163682828652c74293d3e7b6164645564704e6f6973652821312c742c65297d292c676c6f62616c546869732e787261794e6f697365436f756e743d652e6c656e6774687d666574636828222f70616e656c2f73657474696e677322292e7468656e286173796e6320653d3e652e6a736f6e2829292e7468656e28653d3e7b636f6e73747b737563636573733a742c7374617475733a6e2c6d6573736167653a6f2c626f64793a617d3d653b6966283430313d3d3d6e262621612e697350617373536574297b636f6e737420653d646f63756d656e742e717565727953656c6563746f7228222e636c6f736522293b6f70656e52657365745061737328292c652e7374796c652e646973706c61793d226e6f6e65227d6966282174297468726f77206e6577204572726f72286073746174757320247b6e7d202d20247b6f7d60293b636f6e73747b737562506174683a732c70726f787953657474696e67733a727d3d613b676c6f62616c546869732e737562506174683d656e636f6465555249436f6d706f6e656e742873292c696e69746961746550616e656c2872297d292e636174636828653d3e636f6e736f6c652e6572726f72282244617461207175657279206572726f723a222c652e6d6573736167657c7c6529292e66696e616c6c792828293d3e7b77696e646f772e6f6e636c69636b3d653d3e7b636f6e737420743d646f63756d656e742e676574456c656d656e7442794964282271724d6f64616c22292c6e3d646f63756d656e742e676574456c656d656e744279496428227172636f64652d636f6e7461696e657222293b652e7461726765743d3d74262628742e7374796c652e646973706c61793d226e6f6e65222c6e2e6c617374456c656d656e744368696c642e72656d6f76652829297d7d292c646f63756d656e742e717565727953656c6563746f72416c6c28222e746f67676c652d70617373776f726422292e666f724561636828653d3e7b652e6164644576656e744c697374656e65722822636c69636b222c66756e6374696f6e28297b636f6e737420653d746869732e70726576696f7573456c656d656e745369626c696e672c743d2270617373776f7264223d3d3d652e747970653b652e747970653d743f2274657874223a2270617373776f7264222c746869732e74657874436f6e74656e743d743f227669736962696c697479223a227669736962696c6974795f6f6666227d297d293b3c2f7363726970743e3c2f626f64793e3c2f68746d6c3e");return new Response(d,{headers:{"Content-Type":"text/html"}})}async function Co(e,c){const t=undefined;if(await Ki(e,c))return Response.redirect(`${No.urlOrigin}/panel`,302);const d=Lo("3c21444f43545950452068746d6c3e3c68746d6c206c616e673d656e3e3c686561643e3c6d65746120636861727365743d5554462d383e3c6d657461206e616d653d76696577706f727420636f6e74656e743d2277696474683d6465766963652d77696474682c696e697469616c2d7363616c653d31223e3c7469746c653e4250422050616e656c2076332e362e313c2f7469746c653e3c6c696e6b2072656c3d69636f6e20687265663d2f66617669636f6e2e69636f3e3c6c696e6b20687265663d2268747470733a2f2f666f6e74732e676f6f676c65617069732e636f6d2f637373323f66616d696c793d4d6174657269616c2b53796d626f6c732b526f756e6465643a6f70737a2c776768742c46494c4c2c475241444032302e2e34382c3130302e2e3730302c302e2e312c2d35302e2e3230302669636f6e5f6e616d65733d6c6f67696e2c7669736962696c6974792c7669736962696c6974795f6f666626646973706c61793d626c6f636b222072656c3d7374796c6573686565743e3c7374796c653e3a726f6f747b2d2d636f6c6f723a626c61636b3b2d2d7072696d6172792d636f6c6f723a233039363339663b2d2d6865616465722d636f6c6f723a233039363339663b2d2d6261636b67726f756e642d636f6c6f723a236666663b2d2d666f726d2d6261636b67726f756e642d636f6c6f723a236639663966393b2d2d6c61626c652d746578742d636f6c6f723a233333333b2d2d68322d636f6c6f723a233362336233623b2d2d626f726465722d636f6c6f723a236464643b2d2d696e7075742d6261636b67726f756e642d636f6c6f723a77686974653b2d2d6865616465722d736861646f773a3270782032707820347078207267626128302c20302c20302c20302e3235297d626f64792c68746d6c7b6865696768743a313030253b6d617267696e3a307d626f64797b666f6e742d66616d696c793a73797374656d2d75693b6261636b67726f756e642d636f6c6f723a766172282d2d6261636b67726f756e642d636f6c6f72293b706f736974696f6e3a72656c61746976653b6f766572666c6f773a68696464656e3b746578742d616c69676e3a63656e7465727d626f64792e6461726b2d6d6f64657b2d2d636f6c6f723a77686974653b2d2d7072696d6172792d636f6c6f723a233039363339463b2d2d6865616465722d636f6c6f723a233334393844423b2d2d6261636b67726f756e642d636f6c6f723a233132313231323b2d2d666f726d2d6261636b67726f756e642d636f6c6f723a233132313231323b2d2d6c61626c652d746578742d636f6c6f723a234446444644463b2d2d68322d636f6c6f723a234435443544353b2d2d626f726465722d636f6c6f723a233335333533353b2d2d696e7075742d6261636b67726f756e642d636f6c6f723a233235323532353b2d2d6865616465722d736861646f773a32707820327078203470782072676261283235352c203235352c203235352c20302e3235297d2e636f6e7461696e65727b706f736974696f6e3a6162736f6c7574653b746f703a3530253b6c6566743a3530253b7472616e73666f726d3a7472616e736c617465282d3530252c2d353025293b77696474683a3930257d68317b636f6c6f723a766172282d2d6865616465722d636f6c6f72293b746578742d736861646f773a766172282d2d6865616465722d736861646f77297d2e69636f6e7b766572746963616c2d616c69676e3a6d6964646c653b6865696768743a3372656d7d68327b636f6c6f723a766172282d2d68322d636f6c6f72297d2e666f726d2d636f6e7461696e65727b6261636b67726f756e643a766172282d2d666f726d2d6261636b67726f756e642d636f6c6f72293b626f726465723a31707820736f6c696420766172282d2d626f726465722d636f6c6f72293b626f726465722d7261646975733a323870783b626f782d736861646f773a302032707820347078207267626128302c302c302c2e31293b70616464696e673a323070783b6761703a323070783b646973706c61793a666c65783b666c65782d646972656374696f6e3a636f6c756d6e7d2e6c6f67696e2d666f726d7b646973706c61793a666c65783b666c65782d646972656374696f6e3a636f6c756d6e3b6761703a3870787d2e666f726d2d636f6e74726f6c7b646973706c61793a666c65783b6a7573746966792d636f6e74656e743a73706163652d6265747765656e3b616c69676e2d6974656d733a63656e7465723b6761703a313670787d6c6162656c7b666f6e742d7765696768743a3730303b636f6c6f723a766172282d2d6c61626c652d746578742d636f6c6f72297d2e70617373776f72642d777261707065727b646973706c61793a666c65783b77696474683a313030253b706f736974696f6e3a72656c61746976657d2e70617373776f72642d7772617070657220696e7075745b747970653d70617373776f72645d2c2e70617373776f72642d7772617070657220696e7075745b747970653d746578745d7b77696474683a313030253b70616464696e672d72696768743a343070783b746578742d616c69676e3a63656e7465723b6d617267696e3a307d2e746f67676c652d70617373776f72647b706f736974696f6e3a6162736f6c7574653b746f703a3530253b72696768743a313070783b7472616e73666f726d3a7472616e736c61746559282d353025293b637572736f723a706f696e7465723b757365722d73656c6563743a6e6f6e653b636f6c6f723a236139613961397d696e7075745b747970653d70617373776f72645d2c696e7075745b747970653d746578745d7b70616464696e673a313070783b626f726465723a31707820736f6c696420766172282d2d626f726465722d636f6c6f72293b626f726465722d7261646975733a313070783b636f6c6f723a766172282d2d6c61626c652d746578742d636f6c6f72293b6261636b67726f756e642d636f6c6f723a766172282d2d696e7075742d6261636b67726f756e642d636f6c6f72297d2e68696e747b636f6c6f723a7265643b6d617267696e2d626f74746f6d3a313070787d627574746f6e7b6761703a313070783b646973706c61793a666c65783b6a7573746966792d636f6e74656e743a63656e7465723b616c69676e2d6974656d733a63656e7465723b77696474683a313030253b70616464696e673a313270783b666f6e742d73697a653a312e3172656d3b666f6e742d7765696768743a3630303b626f726465723a6e6f6e653b626f726465722d7261646975733a313070783b636f6c6f723a236666663b6261636b67726f756e642d636f6c6f723a766172282d2d7072696d6172792d636f6c6f72293b637572736f723a706f696e7465723b7472616e736974696f6e3a6261636b67726f756e642d636f6c6f72202e337320656173657d2e627574746f6e3a666f6375732c2e627574746f6e3a686f7665727b6261636b67726f756e642d636f6c6f723a233239383062393b626f782d736861646f773a30203870782031357078207267626128302c302c302c2e33293b7472616e73666f726d3a7472616e736c61746559282d327078297d2e627574746f6e3a6163746976657b7472616e73666f726d3a7472616e736c6174655928317078293b626f782d736861646f773a302033707820377078207267626128302c302c302c2e33297d2e6d6174657269616c2d73796d626f6c732d726f756e6465647b666f6e742d766172696174696f6e2d73657474696e67733a2746494c4c2720312c277767687427203430302c27475241442720302c276f70737a272032347d406d65646961206f6e6c792073637265656e20616e6420286d696e2d77696474683a3537367078297b2e636f6e7461696e65727b77696474683a3730257d7d406d65646961206f6e6c792073637265656e20616e6420286d696e2d77696474683a3736387078297b2e636f6e7461696e65727b77696474683a3530257d7d406d65646961206f6e6c792073637265656e20616e6420286d696e2d77696474683a3939327078297b2e636f6e7461696e65727b77696474683a3330257d7d3c2f7374796c653e3c2f686561643e3c626f64793e3c64697620636c6173733d636f6e7461696e65723e3c68313e3c696d6720636c6173733d69636f6e207372633d2f66617669636f6e2e69636f20616c743d22425042204c6f676f223e204250422050616e656c203c7370616e2069643d70616e656c2d76657273696f6e207374796c653d666f6e742d73697a653a736d616c6c65723e76332e362e313c2f7370616e3e3c2f68313e3c64697620636c6173733d666f726d2d636f6e7461696e65723e3c68323e55736572204c6f67696e3c2f68323e3c666f726d2069643d6c6f67696e466f726d20636c6173733d6c6f67696e2d666f726d3e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d70617373776f72643e50617373776f72643c2f6c6162656c3e3c64697620636c6173733d70617373776f72642d777261707065723e3c696e70757420747970653d70617373776f72642069643d70617373776f7264206e616d653d70617373776f72642072657175697265643e203c7370616e2069643d746f67676c6550617373776f726420636c6173733d226d6174657269616c2d73796d626f6c732d726f756e64656420746f67676c652d70617373776f7264223e7669736962696c6974795f6f66663c2f7370616e3e3c2f6469763e3c2f6469763e3c6469762069643d70617373776f72644572726f7220636c6173733d68696e743e3c2f6469763e3c627574746f6e20747970653d7375626d697420636c6173733d627574746f6e3e4c6f67696e203c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e6c6f67696e3c2f7370616e3e3c2f627574746f6e3e3c2f666f726d3e3c2f6469763e3c2f6469763e3c7363726970743e22656e61626c6564223d3d3d6c6f63616c53746f726167652e6765744974656d28226461726b4d6f646522292626646f63756d656e742e626f64792e636c6173734c6973742e61646428226461726b2d6d6f646522292c646f63756d656e742e676574456c656d656e744279496428226c6f67696e466f726d22292e6164644576656e744c697374656e657228227375626d6974222c6173796e6320653d3e7b652e70726576656e7444656661756c7428293b636f6e737420743d646f63756d656e742e676574456c656d656e7442794964282270617373776f726422292e76616c75653b7472797b636f6e737420653d617761697420666574636828222f6c6f67696e2f61757468656e746963617465222c7b6d6574686f643a22504f5354222c686561646572733a7b22436f6e74656e742d54797065223a22746578742f706c61696e227d2c626f64793a747d292c7b737563636573733a6f2c7374617475733a6e2c6d6573736167653a737d3d617761697420652e6a736f6e28293b696628216f297b7468726f7720646f63756d656e742e676574456c656d656e7442794964282270617373776f72644572726f7222292e74657874436f6e74656e743d22e29aa0efb88f2057726f6e672050617373776f726421222c6e6577204572726f7228604c6f67696e206661696c656420776974682073746174757320247b6e7d3a20247b737d60297d77696e646f772e6c6f636174696f6e2e687265663d222f70616e656c227d63617463682865297b636f6e736f6c652e6572726f7228224c6f67696e206572726f723a222c652e6d6573736167657c7c65297d7d292c646f63756d656e742e676574456c656d656e74427949642822746f67676c6550617373776f726422292e6164644576656e744c697374656e65722822636c69636b222c66756e6374696f6e28297b636f6e737420653d646f63756d656e742e676574456c656d656e7442794964282270617373776f726422292c743d2270617373776f7264223d3d3d652e747970653b652e747970653d743f2274657874223a2270617373776f7264222c746869732e74657874436f6e74656e743d743f227669736962696c6974795f6f6666223a227669736962696c697479227d293b3c2f7363726970743e3c2f626f64793e3c2f68746d6c3e");return new Response(d,{headers:{"Content-Type":"text/html"}})}async function Po(){const e=Lo("3c21444f43545950452068746d6c3e3c68746d6c206c616e673d656e3e3c686561643e3c6d65746120636861727365743d5554462d383e3c6d657461206e616d653d76696577706f727420636f6e74656e743d2277696474683d6465766963652d77696474682c696e697469616c2d7363616c653d31223e3c7469746c653e4250422050616e656c2076332e362e313c2f7469746c653e3c6c696e6b2072656c3d69636f6e20687265663d2f66617669636f6e2e69636f3e3c6c696e6b20687265663d2268747470733a2f2f666f6e74732e676f6f676c65617069732e636f6d2f637373323f66616d696c793d4d6174657269616c2b53796d626f6c732b526f756e6465643a6f70737a2c776768742c46494c4c2c475241444032302e2e34382c3130302e2e3730302c302e2e312c2d35302e2e3230302669636f6e5f6e616d65733d636f6e74656e745f636f70792c7265667265736826646973706c61793d626c6f636b222072656c3d7374796c6573686565743e3c7374796c653e3a726f6f747b2d2d636f6c6f723a626c61636b3b2d2d7072696d6172792d636f6c6f723a233039363339663b2d2d6865616465722d636f6c6f723a233039363339663b2d2d6261636b67726f756e642d636f6c6f723a236666663b2d2d666f726d2d6261636b67726f756e642d636f6c6f723a236639663966393b2d2d6c61626c652d746578742d636f6c6f723a233333333b2d2d68322d636f6c6f723a233362336233623b2d2d626f726465722d636f6c6f723a236464643b2d2d696e7075742d6261636b67726f756e642d636f6c6f723a77686974653b2d2d6865616465722d736861646f773a3270782032707820347078207267626128302c20302c20302c20302e3235297d626f64797b666f6e742d66616d696c793a73797374656d2d75693b6261636b67726f756e642d636f6c6f723a766172282d2d6261636b67726f756e642d636f6c6f72293b636f6c6f723a766172282d2d6c61626c652d746578742d636f6c6f72293b746578742d616c69676e3a63656e7465727d626f64792e6461726b2d6d6f64657b2d2d636f6c6f723a77686974653b2d2d7072696d6172792d636f6c6f723a233039363339463b2d2d6865616465722d636f6c6f723a233334393844423b2d2d6261636b67726f756e642d636f6c6f723a233132313231323b2d2d666f726d2d6261636b67726f756e642d636f6c6f723a233132313231323b2d2d6c61626c652d746578742d636f6c6f723a234446444644463b2d2d68322d636f6c6f723a234435443544353b2d2d626f726465722d636f6c6f723a233335333533353b2d2d696e7075742d6261636b67726f756e642d636f6c6f723a233235323532353b2d2d6865616465722d736861646f773a32707820327078203470782072676261283235352c203235352c203235352c20302e3235297d2e636f6e7461696e65727b706f736974696f6e3a6162736f6c7574653b746f703a3530253b6c6566743a3530253b7472616e73666f726d3a7472616e736c617465282d3530252c2d353025293b77696474683a3930253b70616464696e673a323070787d68317b636f6c6f723a766172282d2d6865616465722d636f6c6f72293b746578742d736861646f773a766172282d2d6865616465722d736861646f77297d2e69636f6e7b766572746963616c2d616c69676e3a6d6964646c653b6865696768743a3372656d7d68327b636f6c6f723a766172282d2d68322d636f6c6f72297d68337b636f6c6f723a766172282d2d6c61626c652d746578742d636f6c6f72297d2e666f726d2d636f6e7461696e65727b646973706c61793a666c65783b666c65782d646972656374696f6e3a636f6c756d6e3b6761703a323070783b6261636b67726f756e643a766172282d2d666f726d2d6261636b67726f756e642d636f6c6f72293b626f726465723a31707820736f6c696420766172282d2d626f726465722d636f6c6f72293b626f726465722d7261646975733a323870783b626f782d736861646f773a302032707820347078207267626128302c302c302c2e31293b70616464696e673a323070787d2e76616c75652d636f6e7461696e65727b636f6c6f723a766172282d2d6c61626c652d746578742d636f6c6f72293b646973706c61793a666c65783b666c65782d646972656374696f6e3a726f773b6a7573746966792d636f6e74656e743a63656e7465723b616c69676e2d6974656d733a63656e7465723b6761703a3870787d2e6f75747075742d636f6e7461696e65727b77696474683a313030253b70616464696e673a3870783b746578742d616c69676e3a63656e7465723b6261636b67726f756e642d636f6c6f723a766172282d2d696e7075742d6261636b67726f756e642d636f6c6f72293b636f6c6f723a766172282d2d6c61626c652d746578742d636f6c6f72293b626f726465723a31707820736f6c696420766172282d2d626f726465722d636f6c6f72293b626f726465722d7261646975733a313070787d2e636f70792d69636f6e7b637572736f723a706f696e7465723b7472616e736974696f6e3a636f6c6f72202e32737d2e636f70792d69636f6e3a686f7665727b636f6c6f723a233239383062397d627574746f6e7b6761703a313070783b646973706c61793a666c65783b6a7573746966792d636f6e74656e743a63656e7465723b616c69676e2d6974656d733a63656e7465723b77696474683a313030253b70616464696e673a313270783b666f6e742d73697a653a312e3172656d3b666f6e742d7765696768743a3630303b626f726465723a6e6f6e653b626f726465722d7261646975733a313070783b636f6c6f723a236666663b6261636b67726f756e642d636f6c6f723a766172282d2d7072696d6172792d636f6c6f72293b637572736f723a706f696e7465723b7472616e736974696f6e3a6261636b67726f756e642d636f6c6f72202e337320656173657d2e627574746f6e3a666f6375732c2e627574746f6e3a686f7665727b6261636b67726f756e642d636f6c6f723a233239383062393b626f782d736861646f773a30203870782031357078207267626128302c302c302c2e33293b7472616e73666f726d3a7472616e736c61746559282d327078297d2e627574746f6e3a6163746976657b7472616e73666f726d3a7472616e736c6174655928317078293b626f782d736861646f773a302033707820377078207267626128302c302c302c2e33297d2e627574746f6e3a6163746976657b7472616e73666f726d3a7472616e736c6174655928317078293b626f782d736861646f773a302033707820377078207267626128302c302c302c2e33297d2e6d6174657269616c2d73796d626f6c732d726f756e6465647b637572736f723a706f696e7465723b666f6e742d766172696174696f6e2d73657474696e67733a2746494c4c2720302c277767687427203430302c27475241442720302c276f70737a272032347d2e726566726573682d67656f2d6c6f636174696f6e7b6261636b67726f756e643a3020303b6d617267696e3a303b626f726465723a6e6f6e653b637572736f723a706f696e7465727d406d65646961206f6e6c792073637265656e20616e6420286d696e2d77696474683a3537367078297b2e636f6e7461696e65727b77696474683a3730257d7d406d65646961206f6e6c792073637265656e20616e6420286d696e2d77696474683a3736387078297b2e636f6e7461696e65727b77696474683a3530257d7d406d65646961206f6e6c792073637265656e20616e6420286d696e2d77696474683a3939327078297b2e636f6e7461696e65727b77696474683a3430257d7d3c2f7374796c653e3c2f686561643e3c626f64793e3c64697620636c6173733d636f6e7461696e65723e3c68313e3c696d6720636c6173733d69636f6e207372633d2f66617669636f6e2e69636f20616c743d22425042204c6f676f223e204250422050616e656c203c7370616e2069643d70616e656c2d76657273696f6e207374796c653d666f6e742d73697a653a736d616c6c65723e76332e362e313c2f7370616e3e3c2f68313e3c64697620636c6173733d666f726d2d636f6e7461696e65723e3c64697620636c6173733d76616c75652d636f6e7461696e65723e3c68323e536563726574732067656e657261746f723c2f68323e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e646564206f6e636c69636b3d67656e657261746543726564656e7469616c7328293e726566726573683c2f7370616e3e3c2f6469763e3c6469763e3c68333e52616e646f6d20555549443c2f68333e3c64697620636c6173733d76616c75652d636f6e7461696e65723e3c64697620636c6173733d6f75747075742d636f6e7461696e65723e3c7370616e2069643d7575696420636c6173733d6f75747075743e3c2f7370616e3e3c2f6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e646564206f6e636c69636b3d22636f7079546f436c6970626f6172642827757569642729223e636f6e74656e745f636f70793c2f7370616e3e3c2f6469763e3c2f6469763e3c6469763e3c68333e52616e646f6d2054726f6a616e2050617373776f72643c2f68333e3c64697620636c6173733d76616c75652d636f6e7461696e65723e3c64697620636c6173733d6f75747075742d636f6e7461696e65723e3c7370616e2069643d74722d70617373776f726420636c6173733d6f75747075743e3c2f7370616e3e3c2f6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e646564206f6e636c69636b3d22636f7079546f436c6970626f617264282774722d70617373776f72642729223e636f6e74656e745f636f70793c2f7370616e3e3c2f6469763e3c2f6469763e3c6469763e3c68333e52616e646f6d20537562736372697074696f6e2055524920706174683c2f68333e3c64697620636c6173733d76616c75652d636f6e7461696e65723e3c64697620636c6173733d6f75747075742d636f6e7461696e65723e3c7370616e2069643d7375622d7061746820636c6173733d6f75747075743e3c2f7370616e3e3c2f6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e646564206f6e636c69636b3d22636f7079546f436c6970626f61726428277375622d706174682729223e636f6e74656e745f636f70793c2f7370616e3e3c2f6469763e3c2f6469763e3c627574746f6e20636c6173733d627574746f6e20636c6173733d627574746f6e206f6e636c69636b3d636f7079546f436c6970626f61726428293e436f707920616c6c203c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e636f6e74656e745f636f70793c2f7370616e3e3c2f627574746f6e3e3c2f6469763e3c2f6469763e3c7363726970743e6c657420757569642c70617373776f72642c757269506174683b66756e6374696f6e2067656e65726174655555494428297b72657475726e2063727970746f2e72616e646f6d5555494428297d66756e6374696f6e2067656e65726174655374726f6e6750617373776f726428297b636f6e737420743d224142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383921402324255e262a28295f2b5b5d7b7d7c3b3a272c2e3c3e3f223b6c657420653d22223b636f6e7374206e3d6e65772055696e74384172726179283136293b63727970746f2e67657452616e646f6d56616c756573286e293b666f72286c6574206f3d303b6f3c31363b6f2b2b29652b3d745b6e5b6f5d2538375d3b72657475726e20657d66756e6374696f6e2067656e65726174655375625552495061746828297b636f6e737420743d224142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383921405f5f5343524950545f5f2a5f2d2b3b3a2c2e223b6c657420653d22223b636f6e7374206e3d6e65772055696e74384172726179283136293b63727970746f2e67657452616e646f6d56616c756573286e293b666f72286c6574206f3d303b6f3c31363b6f2b2b29652b3d745b6e5b6f5d2537345d3b72657475726e20657d66756e6374696f6e2067656e657261746543726564656e7469616c7328297b757569643d67656e65726174655555494428292c70617373776f72643d67656e65726174655374726f6e6750617373776f726428292c757269506174683d67656e65726174655375625552495061746828292c646f63756d656e742e676574456c656d656e744279496428227575696422292e74657874436f6e74656e743d757569642c646f63756d656e742e676574456c656d656e7442794964282274722d70617373776f726422292e74657874436f6e74656e743d70617373776f72642c646f63756d656e742e676574456c656d656e744279496428227375622d7061746822292e74657874436f6e74656e743d757269506174687d22656e61626c6564223d3d3d6c6f63616c53746f726167652e6765744974656d28226461726b4d6f646522292626646f63756d656e742e626f64792e636c6173734c6973742e61646428226461726b2d6d6f646522292c67656e657261746543726564656e7469616c7328292c77696e646f772e636f7079546f436c6970626f6172643d66756e6374696f6e2874297b636f6e737420653d743f646f63756d656e742e676574456c656d656e74427949642874292e74657874436f6e74656e743a60555549443d247b757569647d5c6e54525f504153533d247b70617373776f72647d5c6e5355425f504154483d247b757269506174687d603b6e6176696761746f722e636c6970626f6172642e7772697465546578742865292e7468656e2828293d3e616c6572742822e29c8520436f7069656420746f20636c6970626f617264212229292e636174636828743d3e636f6e736f6c652e6572726f7228224661696c656420746f20636f707920746578743a222c7429297d3b3c2f7363726970743e3c2f626f64793e3c2f68746d6c3e");return new Response(e,{headers:{"Content-Type":"text/html"}})}async function Oo(e,c){if("POST"===e.method){const t=undefined;if(!await Ki(e,c))return await Do(!1,401,"Unauthorized.");try{return await ls(c),await Do(!0,200,"Warp configs updated successfully!")}catch(e){return console.log(e),await Do(!1,500,`An error occurred while updating Warp configs: ${e}`)}}return await Do(!1,405,"Method not allowd.")}async function Do(e,c,t,d,f){return new Response(JSON.stringify({success:e,status:c,message:t||"",body:d||""}),{headers:f||{"Content-Type":t?"text/plain":"application/json"}})}function Lo(e){const c=new Uint8Array(e.match(/.{1,2}/g).map(e=>parseInt(e,16))),t=undefined;return(new TextDecoder).decode(c)}function Io(e){const c=undefined;return/^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(e)}var Uo={},No={},zo={};function Wo(e,c){const{pathname:t}=new URL(e.url),{UUID:d,TR_PASS:f,FALLBACK:r,DOH_URL:n}=c;Object.assign(Uo,{userID:d,TrPass:f,pathName:t,fallbackDomain:r||"speed.cloudflare.com",dohURL:n||"https://cloudflare-dns.com/dns-query"})}function Xo(e){Object.assign(zo,{defaultProxyIPs:[atob("YnBiLnlvdXNlZi5pc2VnYXJvLmNvbQ==")],defaultPrefixes:["WzJhMDI6ODk4OjE0Njo2NDo6XQ==","WzI2MDI6ZmM1OTpiMDo2NDo6XQ==","WzI2MDI6ZmM1OToxMTo2NDo6XQ=="].map(atob),envProxyIPs:e.PROXY_IP,envPrefixes:e.PREFIX})}function Fo(e,c){const{pathname:t,origin:d,search:f}=new URL(e.url),{SUB_PATH:r,kv:n}=c,{userID:a,TrPass:i}=Uo,s=new URLSearchParams(f);if(!["/secrets","/favicon.ico"].includes(t)){if(!a||!i)throw new Error(`Please set UUID and ${atob("VHJvamFu")} password first. Please visit here to generate them.`,{cause:"init"});if(!Io(a))throw new Error(`Invalid UUID: ${a}`,{cause:"init"});if("object"!=typeof n)throw new Error(`KV Dataset is not properly set! Please refer to tutorials.`,{cause:"init"})}Object.assign(No,{panelVersion:"3.6.1",defaultHttpPorts:[80,8080,2052,2082,2086,2095,8880],defaultHttpsPorts:[443,8443,2053,2083,2087,2096],hostName:e.headers.get("Host"),client:s.get("app"),urlOrigin:d,subPath:r||a})}var jo={async fetch(e,c){try{const t=e.headers.get("Upgrade");if(Wo(e,c),"websocket"===t)return Xo(c),await Bo(e);{Fo(e,c);const t=Uo.pathName;return t.startsWith("/panel")?await Ho(e,c):t.startsWith("/sub")?await yo(e,c):t.startsWith("/login")?await go(e,c):t.startsWith("/logout")?await Vi(e,c):t.startsWith("/secrets")?await Po():t.startsWith("/favicon.ico")?await So():await vo(e)}}catch(e){return await mo(e)}}};export{jo as default}; \ No newline at end of file +let e=2973,t=17291,r=59166,n=7846,i=5137,s=31976,o=7693,a=72139,c=45004,u=91633,l=55648,d=85848,w=61006,h=95648,A=81659,f=47159,p=36407,E=58995,B=54109,H=86846,g=2982,m=15091,y=71430,T=86982,x=53446,v=85680,b=11546,R=91004,M=81728,k=58895,S=70655,C=4714,_=16528,O=90411,L=15345,P=35473,D=19128,I=86100,N=34408,U=57240,z=62858,X=43001,j=38961,W=94104,F=75027,J=6409,K=36246,Y=43149,Z=72251,G=67042,V=75230,Q=32617,q=21898,$=57784,ee=5453,te=3893,re=30378,ne=66321,ie=91979,se=94047,oe=37546,ae=33927,ce=68453,ue=63494,le=6357,de=91355,we=26867,he=36504,Ae=25107,fe=13809,pe=71222,Ee=38113,Be=39811,He=31105,ge=82102,me=42209,ye=31414,Te=71728,xe=51689,ve=83636,be=45919,Re=35345,Me=11306,ke=29510,Se=73027,Ce=54057,_e=38512,Oe=42713,Le=81558,Pe=85410,De=60392,Ie=26728,Ne=91970,Ue=56984,ze=71979,Xe=2262,je=66413,We=56355,Fe=34059,Je=2980,Ke=67286,Ye=40140,Ze=5760,Ge=43955,Ve=51054,Qe=34839,qe=65837,$e=69203,et=62368,tt=39704,rt=50185,nt=47269,it=12992,st=94362,ot=68680,at=68708,ct=98149,ut=61290,lt=24025,dt=88455,wt=58944,ht=64535,At=92796,ft=40488,pt=46496,Et=95324,Bt=60423,Ht=95250,gt=60219,mt=50775,yt=2439,Tt=70856,xt=62659,vt=14446,bt=91498,Rt=73903,Mt=33657,kt=33340,St=14443,Ct=53021,_t=84705,Ot=94899,Lt=37629,Pt=1472,Dt=64983,It=32812,Nt=35661,Ut=15893,zt=37,Xt=40272,jt=37489,Wt=64878,Ft=9139,Jt=36883,Kt=8140,Yt=79098,Zt=24762,Gt=87987,Vt=57772,Qt=43176,qt=15111,$t=83532,er=98532,tr=73804,rr=11451,nr=55197,ir=56131,sr=18380,or=87316,ar=45699,cr=61402,ur=33012,lr=3330,dr=28989,wr=42147,hr=87865,Ar=95214,fr=45820,pr=70202,Er=90988,Br=89282,Hr=37589,gr=57020,mr=67473,yr=99816,Tr=75548,xr=59714,vr=49760,br=63247,Rr=7104,Mr=95702,kr=75133,Sr=85359,Cr=3933,_r=68389,Or=99927,Lr=18462,Pr=15057,Dr=30021,Ir=4261,Nr=51964,Ur=2949,zr=18141,Xr=33404,jr=14150,Wr=65775,Fr=84647,Jr=74657,Kr=89302,Yr=45908,Zr=4310,Gr=96876,Vr=13265,Qr=35746,qr=49431,$r=27163,en=35113,tn=92475,rn=6277,nn=71329,sn=92782,on=51167,an=40449,cn=9964,un=80772,ln=21516,dn=91993,wn=19061,hn=47955,An=67972,fn=29851,pn=80614,En=27579,Bn=76313,Hn=79070,gn=9853,mn=40847,yn=72461,Tn=98773,xn=73478,vn=36609,bn=8578,Rn=62453,Mn=19320,kn=85739,Sn=33366,Cn=8298,_n=22182,On=21853,Ln=39779,Pn=95212,Dn=16321,In=40690,Nn=40483,Un=37530,zn=63206,Xn=60635,jn=66724,Wn=91356,Fn=85340,Jn=14951,Kn=60852,Yn=25213,Zn=34902,Gn=49857,Vn=89411,Qn=88699,qn=37011,$n=1337,ei=6369,ti=21709,ri=52591,ni=17136,ii=15780,si=93565,oi=83080,ai=78009,ci=67868,ui=7427,li=93326,di=41198,wi=1792,hi=85416,Ai=88952,fi=18938,pi=10381,Ei=33009,Bi=90506,Hi=41450,gi=93526,mi=32185,yi=5054,Ti=75453,xi=44447,vi=54263,bi=42752,Ri=33555,Mi=88116,ki=88709,Si=9731,Ci=13560,_i=77076,Oi=2978,Li=65850,Pi=32771,Di=49554,Ii=81021,Ni=31106,Ui=60160,zi=13224,Xi=30994,ji=96206,Wi=82736,Fi=9841,Ji=49057,Ki=91152,Yi=20549,Zi=29600,Gi=82141,Vi=9505,Qi=31687,qi=18382,$i=62006,es=7518,ts=11669,rs=94200,ns=38372,is=33169,ss=80846,os=48897,as=86263,cs=9841,us=9031,ls=43319,ds=81242,ws=30501,hs=54691,As=51271,fs=72615,ps=78669,Es=50285,Bs=5910,Hs=4956,gs=27188,ms=80323,ys=62103,Ts=25110,xs=90496,vs=85057,bs=634,Rs=70587,Ms=33795,ks=74220,Ss=31233,Cs=52733,_s=5966,Os=13874,Ls=26613,Ps=87894,Ds=57510,Is=50557,Ns=34260,Us=62400,zs=85854,Xs=15944,js=84539,Ws=17425,Fs=26434,Js=23227,Ks=94324,Ys=70818,Zs=38276,Gs=99878,Vs=23902,Qs=78726,qs=40874,$s=75948,eo=16072,to=47672,ro=60122,no=48349,io=16176,so=75359,oo=38638,ao=92309,co=60630,uo=53958,lo=15850,wo=9284,ho=54439,Ao=51231,fo=30655,po=2678,Eo=85720,Bo=87464,Ho=74753,go=65409,mo=20138,yo=80328,To=13565,xo=3183,vo=49642,bo=78294,Ro=4637,Mo=59982,ko=44857,So=78119,Co=16199,_o=42269,Oo=62730,Lo=50754,Po=87938,Do=16537,Io=34288,No=16592,Uo=58651,zo=62429,Xo=80493,jo=33979,Wo=90194,Fo=36917,Jo=36451,Ko=60355,Yo=22358,Zo=79583,Go=17237,Vo=81055,Qo=44073,qo=98128,$o=86586,ea=82203,ta=67858,ra=68109,na=37949,ia=14907,sa=21761,oa=16096;function aa(){return 775}function ca(){return 917}function ua(){return 913}function la(){return 933}function da(){return 797}function wa(){return 868}function ha(){return 67}function Aa(){return 989}function fa(){return 372}function pa(){return 525}function Ea(){return 556}function Ba(){return 761}function Ha(){return 863}function ga(){return 424}function ma(){return 586}function ya(){return 386}function Ta(){return 792}function xa(){return 437}function va(){return 275}function ba(){return 275}function Ra(){return 301}function Ma(){return 340}function ka(){return 842}function Sa(){return 789}function Ca(){return 436}function _a(){return 811}function Oa(){return 758}function La(){return 416}function Pa(){return 67}function Da(){return 68}function Ia(){return 556}function Na(){return 136}function Ua(){return 555}function za(){return 437}function Xa(){return 959}function ja(){return 514}function Wa(){return 405}function Fa(){return 793}function Ja(){return 288}function Ka(){return 116}function Ya(){return 552}function Za(){return 161}function Ga(){return 410}function Va(){return 365}function Qa(){return 797}function qa(){return 252}function $a(){return 690}function ec(){return 451}function tc(){return 490}function rc(){return 787}function nc(){return 440}function ic(){return 991}function sc(){return 308}function oc(){return 940}function ac(){return 241}function cc(){return 35}function uc(){return 224}function lc(){return 984}function dc(){return 85}function wc(){return 885}function hc(){return 404}function Ac(){return 886}function fc(){return 548}function pc(){return 161}function Ec(){return 267}function Bc(){return 24}function Hc(){return 219}function gc(){return 634}function mc(){return 88}function yc(){return 194}function Tc(){return 827}function xc(){return 480}function vc(){return 182}function bc(){return 204}function Rc(){return 726}function Mc(){return 13}function kc(){return 124}function Sc(){return 638}function Cc(){return 63}function _c(){return 479}function Oc(){return 315}function Lc(){return 319}function Pc(){return 227}function Dc(){return 312}function Ic(){return 619}function Nc(){return 398}function Uc(){return 640}function zc(){return 391}function Xc(){return 509}function jc(){return 50}function Wc(){return 791}function Fc(){return 924}function Jc(){return 346}function Kc(){return 810}function Yc(){return 315}function Zc(){return 825}function Gc(){return 61}function Vc(){return 927}function Qc(){return 672}function qc(){return 517}function $c(){return 910}function eu(){return 123}function tu(){return 962}function ru(){return 982}function nu(){return 492}function iu(){return 213}function su(){return 449}function ou(){return 293}function au(){return 524}function cu(){return 49}function uu(){return 521}function lu(){return 799}function du(){return 855}function wu(){return 842}function hu(){return 578}function Au(){return 520}function fu(){return 606}function pu(){return 19}function Eu(){return 125}function Bu(){return 772}function Hu(){return 569}function gu(){return 897}function mu(){return 814}function yu(){return 396}function Tu(){return 993}function xu(){return 38}function vu(){return 174}function bu(){return 821}function Ru(){return 121}function Mu(){return 865}function ku(){return 359}function Su(){return 950}function Cu(){return 405}function _u(){return 217}function Ou(){return 271}function Lu(){return 144}function Pu(){return 203}function Du(){return 911}function Iu(){return 355}function Nu(){return 832}function Uu(){return 177}function zu(){return 85}function Xu(){return 335}function ju(){return 791}function Wu(){return 562}function Fu(){return 484}function Ju(){return 357}function Ku(){return 920}function Yu(){return 859}function Zu(){return 655}function Gu(){return 437}function Vu(){return 154}function Qu(){return 81}function qu(){return 622}function $u(){return 346}function el(){return 720}function tl(){return 499}function rl(){return 323}function nl(){return 137}function il(){return 271}function sl(){return 411}function ol(){return 623}function al(){return 523}function cl(){return 490}function ul(){return 246}function ll(){return 481}function dl(){return 690}function wl(){return 785}function hl(){return 413}function Al(){return 25}function fl(){return 561}function pl(){return 79}function El(){return 890}function Bl(){return 959}function Hl(){return 490}function gl(){return 17}function ml(){return 457}function yl(){return 61}function Tl(){return 437}function xl(){return 152}function vl(){return 370}function bl(){return 685}function Rl(){return 749}function Ml(){return 18}function kl(){return 250}function Sl(){return 980}function Cl(){return 361}function _l(){return 955}function Ol(){return 236}function Ll(){return 266}function Pl(){return 131}function Dl(){return 580}function Il(){return 257}function Nl(){return 951}function Ul(){return 759}function zl(){return 324}function Xl(){return 688}function jl(){return 191}function Wl(){return 645}function Fl(){return 221}function Jl(){return 520}function Kl(){return 730}function Yl(){return 158}function Zl(){return 635}function Gl(){return 708}function Vl(){return 628}function Ql(){return 548}function ql(){return 207}function $l(){return 798}function ed(){return 350}function td(){return 203}function rd(){return 308}function nd(){return 23}function id(){return 545}function sd(){return 880}function od(){return 335}function ad(){return 654}function cd(){return 116}function ud(){return 231}function ld(){return 421}function dd(){return 129}function wd(){return 70}function hd(){return 189}function Ad(){return 592}function fd(){return 510}function pd(){return 450}function Ed(){return 388}function Bd(){return 221}function Hd(){return 216}function gd(){return 142}function md(){return 528}function yd(){return 835}function Td(){return 542}var xd=Object.create,vd=Object.defineProperty,bd=Object.getOwnPropertyDescriptor,Rd=Object.getOwnPropertyNames,Md=Object.getPrototypeOf,kd=Object.prototype.hasOwnProperty,Sd=(e=>"undefined"!=typeof require?require:"undefined"!=typeof Proxy?new Proxy(e,{get:(e,t)=>("undefined"!=typeof require?require:e)[t]}):e)(function(e){if("undefined"!=typeof require)return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')}),Cd,_d=(e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let i of Rd(t))kd.call(e,i)||i===r||vd(e,i,{get:()=>t[i],enumerable:!(n=bd(t,i))||n.enumerable});return e},Od=(e,t,r)=>(r=null!=e?xd(Md(e)):{},_d(!t&&e&&e.__esModule?r:vd(r,"default",{value:e,enumerable:!0}),e)),Ld=((e,t)=>function r(){return t||(0,e[Rd(e)[0]])((t={exports:{}}).exports,t),t.exports})({"node_modules/jszip/dist/jszip.min.js"(e,t){!function(r){"object"==typeof e&&void 0!==t?t.exports=r():"function"==typeof define&&define.amd?define([],r):("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).JSZip=r()}(function(){return function e(t,r,n){function i(o,a){if(!r[o]){if(!t[o]){var c="function"==typeof Sd&&Sd;if(!a&&c)return c(o,!0);if(s)return s(o,!0);var u=new Error("Cannot find module '"+o+"'");throw u.code="MODULE_NOT_FOUND",u}var l=r[o]={exports:{}};t[o][0].call(l.exports,function(e){var r;return i(t[o][1][e]||e)},l,l.exports,e,t,r,n)}return r[o].exports}for(var s="function"==typeof Sd&&Sd,o=0;o>2,a=(3&t)<<4|r>>4,c=1<<2|i>>6:64,u=2<<2|(o=s.indexOf(e.charAt(u++)))>>4,r=(15&o)<<4|(a=s.indexOf(e.charAt(u++)))>>2,n=(3&a)<<6|(c=s.indexOf(e.charAt(u++))),w[l++]=t,64!==a&&(w[l++]=r),64!==c&&(w[l++]=n);return w}},{"./support":30,"./utils":32}],2:[function(e,t,r){var n=e("./external"),i=e("./stream/DataWorker"),s=e("./stream/Crc32Probe"),o=e("./stream/DataLengthProbe");function a(e,t,r,n,i){this.compressedSize=e,this.uncompressedSize=t,this.crc32=r,this.compression=n,this.compressedContent=i}a.prototype={getContentWorker:function(){var e=new i(n.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new o("data_length")),t=this;return e.on("end",function(){if(this.streamInfo.data_length!==t.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),e},getCompressedWorker:function(){return new i(n.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},a.createWorkerFrom=function(e,t,r){return e.pipe(new s).pipe(new o("uncompressedSize")).pipe(t.compressWorker(r)).pipe(new o("compressedSize")).withStreamInfo("compression",t)},t.exports=a},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(e,t,r){var n=e("./stream/GenericWorker");r.STORE={magic:"\0\0",compressWorker:function(){return new n("STORE compression")},uncompressWorker:function(){return new n("STORE decompression")}},r.DEFLATE=e("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(e,t,r){var n=e("./utils"),i=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t){return void 0!==e&&e.length?"string"!==n.getTypeOf(e)?function(e,t,r,n){var s=i,o=0+r;e^=-1;for(var a=0;a>>8^s[255&(e^t[a])];return-1^e}(0|t,e,e.length,0):function(e,t,r,n){var s=i,o=0+r;e^=-1;for(var a=0;a>>8^s[255&(e^t.charCodeAt(a))];return-1^e}(0|t,e,e.length,0):0}},{"./utils":32}],5:[function(e,t,r){r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(e,t,r){var n=null;n="undefined"!=typeof Promise?Promise:e("lie"),t.exports={Promise:n}},{lie:37}],7:[function(e,t,r){var n="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,i=e("pako"),s=e("./utils"),o=e("./stream/GenericWorker"),a=n?"uint8array":"array";function c(e,t){o.call(this,"FlateWorker/"+e),this._pako=null,this._pakoAction=e,this._pakoOptions=t,this.meta={}}r.magic="\b\0",s.inherits(c,o),c.prototype.processChunk=function(e){this.meta=e.meta,null===this._pako&&this._createPako(),this._pako.push(s.transformTo(a,e.data),!1)},c.prototype.flush=function(){o.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},c.prototype.cleanUp=function(){o.prototype.cleanUp.call(this),this._pako=null},c.prototype._createPako=function(){this._pako=new i[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var e=this;this._pako.onData=function(t){e.push({data:t,meta:e.meta})}},r.compressWorker=function(e){return new c("Deflate",e)},r.uncompressWorker=function(){return new c("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(e,t,r){function n(e,t){var r,n="";for(r=0;r>>=8;return n}function i(e,t,r,i,o,l){var d,w,h=e.file,A=e.compression,f=l!==a.utf8encode,p=s.transformTo("string",l(h.name)),E=s.transformTo("string",a.utf8encode(h.name)),B=h.comment,H=s.transformTo("string",l(B)),g=s.transformTo("string",a.utf8encode(B)),m=E.length!==h.name.length,y=g.length!==B.length,T="",x="",v="",b=h.dir,R=h.date,M={crc32:0,compressedSize:0,uncompressedSize:0};t&&!r||(M.crc32=e.crc32,M.compressedSize=e.compressedSize,M.uncompressedSize=e.uncompressedSize);var k=0;t&&(k|=8),f||!m&&!y||(k|=2048);var S=0,C=0,_,O,L;b&&(S|=16),"UNIX"===o?(C=798,S|=(_=h.unixPermissions,O=b,L=_,_||(L=O?16893:33204),(65535&L)<<16)):(C=20,S|=function(e){return 63&(e||0)}(h.dosPermissions)),d=R.getUTCHours(),d<<=6,d|=R.getUTCMinutes(),d<<=5,d|=R.getUTCSeconds()/2,w=R.getUTCFullYear()-1980,w<<=4,w|=R.getUTCMonth()+1,w<<=5,w|=R.getUTCDate(),m&&(x=n(1,1)+n(c(p),4)+E,T+="up"+n(x.length,2)+x),y&&(v=n(1,1)+n(c(H),4)+g,T+="uc"+n(v.length,2)+v);var P="";return P+="\n\0",P+=n(k,2),P+=A.magic,P+=n(d,2),P+=n(w,2),P+=n(M.crc32,4),P+=n(M.compressedSize,4),P+=n(M.uncompressedSize,4),P+=n(p.length,2),P+=n(T.length,2),{fileRecord:u.LOCAL_FILE_HEADER+P+p+T,dirRecord:u.CENTRAL_FILE_HEADER+n(C,2)+P+n(H.length,2)+"\0\0\0\0"+n(S,4)+n(i,4)+p+T+H}}var s=e("../utils"),o=e("../stream/GenericWorker"),a=e("../utf8"),c=e("../crc32"),u=e("../signature");function l(e,t,r,n){o.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=t,this.zipPlatform=r,this.encodeFileName=n,this.streamFiles=e,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}s.inherits(l,o),l.prototype.push=function(e){var t=e.meta.percent||0,r=this.entriesCount,n=this._sources.length;this.accumulate?this.contentBuffer.push(e):(this.bytesWritten+=e.data.length,o.prototype.push.call(this,{data:e.data,meta:{currentFile:this.currentFile,percent:r?(t+100*(r-n-1))/r:100}}))},l.prototype.openedSource=function(e){this.currentSourceOffset=this.bytesWritten,this.currentFile=e.file.name;var t=this.streamFiles&&!e.file.dir;if(t){var r=i(e,t,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}})}else this.accumulate=!0},l.prototype.closedSource=function(e){this.accumulate=!1;var t=this.streamFiles&&!e.file.dir,r=i(e,t,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName),s;if(this.dirRecords.push(r.dirRecord),t)this.push({data:(s=e,u.DATA_DESCRIPTOR+n(s.crc32,4)+n(s.compressedSize,4)+n(s.uncompressedSize,4)),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},l.prototype.flush=function(){for(var e=this.bytesWritten,t=0;t=this.index;t--)r=(r<<8)+this.byteAt(t);return this.index+=e,r},readString:function(e){return n.transformTo("string",this.readData(e))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var e=this.readInt(4);return new Date(Date.UTC(1980+(e>>25&127),(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(31&e)<<1))}},t.exports=i},{"../utils":32}],19:[function(e,t,r){var n=e("./Uint8ArrayReader");function i(e){n.call(this,e)}e("../utils").inherits(i,n),i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(e,t,r){var n=e("./DataReader");function i(e){n.call(this,e)}e("../utils").inherits(i,n),i.prototype.byteAt=function(e){return this.data.charCodeAt(this.zero+e)},i.prototype.lastIndexOfSignature=function(e){return this.data.lastIndexOf(e)-this.zero},i.prototype.readAndCheckSignature=function(e){return e===this.readData(4)},i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{"../utils":32,"./DataReader":18}],21:[function(e,t,r){var n=e("./ArrayReader");function i(e){n.call(this,e)}e("../utils").inherits(i,n),i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return new Uint8Array(0);var t=this.data.subarray(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{"../utils":32,"./ArrayReader":17}],22:[function(e,t,r){var n=e("../utils"),i=e("../support"),s=e("./ArrayReader"),o=e("./StringReader"),a=e("./NodeBufferReader"),c=e("./Uint8ArrayReader");t.exports=function(e){var t=n.getTypeOf(e);return n.checkSupport(t),"string"!==t||i.uint8array?"nodebuffer"===t?new a(e):i.uint8array?new c(n.transformTo("uint8array",e)):new s(n.transformTo("array",e)):new o(e)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(e,t,r){r.LOCAL_FILE_HEADER="PK",r.CENTRAL_FILE_HEADER="PK",r.CENTRAL_DIRECTORY_END="PK",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK",r.ZIP64_CENTRAL_DIRECTORY_END="PK",r.DATA_DESCRIPTOR="PK\b"},{}],24:[function(e,t,r){var n=e("./GenericWorker"),i=e("../utils");function s(e){n.call(this,"ConvertWorker to "+e),this.destType=e}i.inherits(s,n),s.prototype.processChunk=function(e){this.push({data:i.transformTo(this.destType,e.data),meta:e.meta})},t.exports=s},{"../utils":32,"./GenericWorker":28}],25:[function(e,t,r){var n=e("./GenericWorker"),i=e("../crc32");function s(){n.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}e("../utils").inherits(s,n),s.prototype.processChunk=function(e){this.streamInfo.crc32=i(e.data,this.streamInfo.crc32||0),this.push(e)},t.exports=s},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(e,t,r){var n=e("../utils"),i=e("./GenericWorker");function s(e){i.call(this,"DataLengthProbe for "+e),this.propName=e,this.withStreamInfo(e,0)}n.inherits(s,i),s.prototype.processChunk=function(e){if(e){var t=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=t+e.data.length}i.prototype.processChunk.call(this,e)},t.exports=s},{"../utils":32,"./GenericWorker":28}],27:[function(e,t,r){var n=e("../utils"),i=e("./GenericWorker");function s(e){i.call(this,"DataWorker");var t=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,e.then(function(e){t.dataIsReady=!0,t.data=e,t.max=e&&e.length||0,t.type=n.getTypeOf(e),t.isPaused||t._tickAndRepeat()},function(e){t.error(e)})}n.inherits(s,i),s.prototype.cleanUp=function(){i.prototype.cleanUp.call(this),this.data=null},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,n.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(n.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var e=null,t=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":e=this.data.substring(this.index,t);break;case"uint8array":e=this.data.subarray(this.index,t);break;case"array":case"nodebuffer":e=this.data.slice(this.index,t)}return this.index=t,this.push({data:e,meta:{percent:this.max?this.index/this.max*100:0}})},t.exports=s},{"../utils":32,"./GenericWorker":28}],28:[function(e,t,r){function n(e){this.name=e||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}n.prototype={push:function(e){this.emit("data",e)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(e){this.emit("error",e)}return!0},error:function(e){return!this.isFinished&&(this.isPaused?this.generatedError=e:(this.isFinished=!0,this.emit("error",e),this.previous&&this.previous.error(e),this.cleanUp()),!0)},on:function(e,t){return this._listeners[e].push(t),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(e,t){if(this._listeners[e])for(var r=0;r "+e:e}},t.exports=n},{}],29:[function(e,t,r){var n=e("../utils"),i=e("./ConvertWorker"),s=e("./GenericWorker"),o=e("../base64"),a=e("../support"),c=e("../external"),u=null;if(a.nodestream)try{u=e("../nodejs/NodejsStreamOutputAdapter")}catch(e){}function l(e,t){return new c.Promise(function(r,i){var s=[],a=e._internalType,c=e._outputType,u=e._mimeType;e.on("data",function(e,r){s.push(e),t&&t(r)}).on("error",function(e){s=[],i(e)}).on("end",function(){try{var e=function(e,t,r){switch(e){case"blob":return n.newBlob(n.transformTo("arraybuffer",t),r);case"base64":return o.encode(t);default:return n.transformTo(e,t)}}(c,function(e,t){var r,n=0,i=null,s=0;for(r=0;r>>6:(r<65536?t[o++]=224|r>>>12:(t[o++]=240|r>>>18,t[o++]=128|r>>>12&63),t[o++]=128|r>>>6&63),t[o++]=128|63&r);return t}(e)},r.utf8decode=function(e){return i.nodebuffer?n.transformTo("nodebuffer",e).toString("utf-8"):function(e){var t,r,i,s,o=e.length,c=new Array(2*o);for(t=r=0;t<128)c[r++]=i;else if(4<(s=a[i]))c[r++]=65533,t+=s-1;else{for(i&=2===s?31:3===s?15:7;1<<6|63&e[t++],s--;1<65536?c[r++]=i:(i-=65536,c[r++]=55296|i>>10&1023,c[r++]=56320|1023&i)}return c.length!==r&&(c.subarray?c=c.subarray(0,r):c.length=r),n.applyFromCharCode(c)}(e=n.transformTo(i.uint8array?"uint8array":"array",e))},n.inherits(u,o),u.prototype.processChunk=function(e){var t=n.transformTo(i.uint8array?"uint8array":"array",e.data);if(this.leftOver&&this.leftOver.length){if(i.uint8array){var s=t;(t=new Uint8Array(s.length+this.leftOver.length)).set(this.leftOver,0),t.set(s,this.leftOver.length)}else t=this.leftOver.concat(t);this.leftOver=null}var o=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0||0===r?t:r+a[e[r]]>t?r:t}(t),c=t;o!==t.length&&(i.uint8array?(c=t.subarray(0,o),this.leftOver=t.subarray(o,t.length)):(c=t.slice(0,o),this.leftOver=t.slice(o,t.length))),this.push({data:r.utf8decode(c),meta:e.meta})},u.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:r.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},r.Utf8DecodeWorker=u,n.inherits(l,o),l.prototype.processChunk=function(e){this.push({data:r.utf8encode(e.data),meta:e.meta})},r.Utf8EncodeWorker=l},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(e,t,r){var n=e("./support"),i=e("./base64"),s=e("./nodejsUtils"),o=e("./external");function a(e){return e}function c(e,t){for(var r=0;r<0)throw new Error("Corrupted zip: missing "+Math.abs(n)+" bytes.")},prepareReader:function(e){this.reader=n(e)},load:function(e){this.prepareReader(e),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},t.exports=c},{"./reader/readerFor":22,"./signature":23,"./support":30,"./utils":32,"./zipEntry":34}],34:[function(e,t,r){var n=e("./reader/readerFor"),i=e("./utils"),s=e("./compressedObject"),o=e("./crc32"),a=e("./utf8"),c=e("./compressions"),u=e("./support");function l(e,t){this.options=e,this.loadOptions=t}l.prototype={isEncrypted:function(){return!(1&~this.bitFlag)},useUTF8:function(){return!(2048&~this.bitFlag)},readLocalPart:function(e){var t,r;if(e.skip(22),this.fileNameLength=e.readInt(2),r=e.readInt(2),this.fileName=e.readData(this.fileNameLength),e.skip(r),-1===this.compressedSize||-1===this.uncompressedSize)throw new Error("Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)");if(null===(t=function(e){for(var t in c)if(Object.prototype.hasOwnProperty.call(c,t)&&c[t].magic===e)return c[t];return null}(this.compressionMethod)))throw new Error("Corrupted zip : compression "+i.pretty(this.compressionMethod)+" unknown (inner file : "+i.transformTo("string",this.fileName)+")");this.decompressed=new s(this.compressedSize,this.uncompressedSize,this.crc32,t,e.readData(this.compressedSize))},readCentralPart:function(e){this.versionMadeBy=e.readInt(2),e.skip(2),this.bitFlag=e.readInt(2),this.compressionMethod=e.readString(2),this.date=e.readDate(),this.crc32=e.readInt(4),this.compressedSize=e.readInt(4),this.uncompressedSize=e.readInt(4);var t=e.readInt(2);if(this.extraFieldsLength=e.readInt(2),this.fileCommentLength=e.readInt(2),this.diskNumberStart=e.readInt(2),this.internalFileAttributes=e.readInt(2),this.externalFileAttributes=e.readInt(4),this.localHeaderOffset=e.readInt(4),this.isEncrypted())throw new Error("Encrypted zip are not supported");e.skip(t),this.readExtraFields(e),this.parseZIP64ExtraField(e),this.fileComment=e.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var e=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),0==e&&(this.dosPermissions=63&this.externalFileAttributes),3==e&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var e=n(this.extraFields[1].value);this.uncompressedSize===i.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===i.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===i.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===i.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(e){var t,r,n,i=e.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});e.index+4<65537&&(e.subarray&&s||!e.subarray&&i))return String.fromCharCode.apply(null,n.shrinkBuf(e,t));for(var r="",o=0;o>>6:(r<65536?t[o++]=224|r>>>12:(t[o++]=240|r>>>18,t[o++]=128|r>>>12&63),t[o++]=128|r>>>6&63),t[o++]=128|63&r);return t},r.buf2binstring=function(e){return c(e,e.length)},r.binstring2buf=function(e){for(var t=new n.Buf8(e.length),r=0,i=t.length;r<(s=o[i]))u[n++]=65533,r+=s-1;else{for(i&=2===s?31:3===s?15:7;1<<6|63&e[r++],s--;1<65536?u[n++]=i:(i-=65536,u[n++]=55296|i>>10&1023,u[n++]=56320|1023&i)}return c(u,n)},r.utf8border=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0||0===r?t:r+o[e[r]]>t?r:t}},{"./common":41}],43:[function(e,t,r){t.exports=function(e,t,r,n){for(var i=65535&e,s=e>>>16&65535,o=0;0!==r;){for(r-=o=2e3<<16}},{}],44:[function(e,t,r){t.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],45:[function(e,t,r){var n=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t,r,i){var s=n,o=i+r;e^=-1;for(var a=i;a>>8^s[255&(e^t[a])];return-1^e}},{}],46:[function(e,t,r){var n,i=e("../utils/common"),s=e("./trees"),o=e("./adler32"),a=e("./crc32"),c=e("./messages"),u=0,l=4,d=0,w=-2,h=-1,A=4,f=2,p=8,E=9,B=286,H=30,g=19,m=573,y=15,T=3,x=258,v=262,b=42,R=113,M=1,k=2,S=3,C=4;function _(e,t){return e.msg=c[t],t}function O(e){return(e<<1)-(4e.avail_out&&(r=e.avail_out),0!==r&&(i.arraySet(e.output,t.pending_buf,t.pending_out,r,e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,0===t.pending&&(t.pending_out=0))}function D(e,t){s._tr_flush_block(e,0<=e.block_start?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,P(e.strm)}function I(e,t){e.pending_buf[e.pending++]=t}function N(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function U(e,t){var r,n,i=e.max_chain_length,s=e.strstart,o=e.prev_length,a=e.nice_match,c=e.strstart>e.w_size-v?e.strstart-(e.w_size-v):0,u=e.window,l=e.w_mask,d=e.prev,w=e.strstart+x,h=u[s+o-1],A=u[s+o];e.prev_length>=e.good_match&&(i>>=2),a>e.lookahead&&(a=e.lookahead);do{if(u[(r=t)+o]===A&&u[r+o-1]===h&&u[r]===u[s]&&u[++r]===u[s+1]){s+=2,r++;do{}while(u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&s<=(o=n))break;h=u[s+o-1],A=u[s+o]}}}while((t=d[t&l])>c&&0!=--i);return o<=e.lookahead?o:e.lookahead}function z(e){var t,r,n,s,c,u,l,d,w,h,A=e.w_size;do{if(s=e.window_size-e.lookahead-e.strstart,e.strstart>=A+(A-v)){for(i.arraySet(e.window,e.window,A,A,0),e.match_start-=A,e.strstart-=A,e.block_start-=A,t=r=e.hash_size;n=e.head[--t],e.head[t]=A<=n?n-A:0,--r;);for(t=r=A;n=e.prev[--t],e.prev[t]=A<=n?n-A:0,--r;);s+=A}if(0===e.strm.avail_in)break;if(u=e.strm,l=e.window,d=e.strstart+e.lookahead,h=void 0,(w=s)<(h=u.avail_in)&&(h=w),r=0===h?0:(u.avail_in-=h,i.arraySet(l,u.input,u.next_in,h,d),1===u.state.wrap?u.adler=o(u.adler,l,h,d):2===u.state.wrap&&(u.adler=a(u.adler,l,h,d)),u.next_in+=h,u.total_in+=h,h),e.lookahead+=r,e.lookahead+e.insert>=3)for(c=e.strstart-e.insert,e.ins_h=e.window[c],e.ins_h=(e.ins_h<<<3)););}while(e.lookahead=3&&(e.ins_h=(e.ins_h<<=e.w_size-v&&(e.match_length=U(e,r)),e.match_length>=3)if(n=s._tr_tally(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){for(e.match_length--;e.strstart++,e.ins_h=(e.ins_h<=3&&(e.ins_h=(e.ins_h<<=e.w_size-v&&(e.match_length=U(e,r),e.match_length<=5&&(1===e.strategy||3===e.match_length&&4096=3&&e.match_length<=e.prev_length){for(i=e.strstart+e.lookahead-3,n=s._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;++e.strstart<=i&&(e.ins_h=(e.ins_h<e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(z(e),0===e.lookahead&&0===t)return 1;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+r;if((0===e.strstart||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,D(e,!1),0===e.strm.avail_out))return 1;if(e.strstart-e.block_start>=e.w_size-v&&(D(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(D(e,!0),0===e.strm.avail_out?3:4):(e.strstart>e.block_start&&(D(e,!1),e.strm.avail_out),1)}),new W(4,4,8,4,X),new W(4,5,16,8,X),new W(4,6,32,32,X),new W(4,4,16,16,j),new W(8,16,32,32,j),new W(8,16,128,128,j),new W(8,32,128,256,j),new W(32,128,258,1024,j),new W(32,258,258,4096,j)],r.deflateInit=function(e,t){return Y(e,t,8,15,8,0)},r.deflateInit2=Y,r.deflateReset=K,r.deflateResetKeep=J,r.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?w:(e.state.gzhead=t,0):w},r.deflate=function(e,t){var r,i,o,c;if(!e||!e.state||5<0)return e?_(e,w):w;if(i=e.state,!e.output||!e.input&&0!==e.avail_in||666===i.status&&4!==t)return _(e,0===e.avail_out?-5:w);if(i.strm=e,r=i.last_flush,i.last_flush=t,i.status===b)if(2===i.wrap)e.adler=0,I(i,31),I(i,139),I(i,8),i.gzhead?(I(i,(i.gzhead.text?1:0)+(i.gzhead.hcrc?2:0)+(i.gzhead.extra?4:0)+(i.gzhead.name?8:0)+(i.gzhead.comment?16:0)),I(i,255&i.gzhead.time),I(i,i.gzhead.time>>8&255),I(i,i.gzhead.time>>16&255),I(i,i.gzhead.time>>24&255),I(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),I(i,255&i.gzhead.os),i.gzhead.extra&&i.gzhead.extra.length&&(I(i,255&i.gzhead.extra.length),I(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(e.adler=a(e.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=69):(I(i,0),I(i,0),I(i,0),I(i,0),I(i,0),I(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),I(i,3),i.status=R);else{var u=8+(i.w_bits-8<<4)<<8;u|=(2<=i.strategy||i.level<2?0:i.level<6?1:6===i.level?2:3)<<6,0!==i.strstart&&(u|=32),u+=31-u%31,i.status=R,N(i,u),0!==i.strstart&&(N(i,e.adler>>>16),N(i,65535&e.adler)),e.adler=1}if(69===i.status)if(i.gzhead.extra){for(o=i.pending;i.gzindex<(65535&i.gzhead.extra.length)&&(i.pending!==i.pending_buf_size||(i.gzhead.hcrc&&i.pending>o&&(e.adler=a(e.adler,i.pending_buf,i.pending-o,o)),P(e),o=i.pending,i.pending!==i.pending_buf_size));)I(i,255&i.gzhead.extra[i.gzindex]),i.gzindex++;i.gzhead.hcrc&&i.pending>o&&(e.adler=a(e.adler,i.pending_buf,i.pending-o,o)),i.gzindex===i.gzhead.extra.length&&(i.gzindex=0,i.status=73)}else i.status=73;if(73===i.status)if(i.gzhead.name){o=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>o&&(e.adler=a(e.adler,i.pending_buf,i.pending-o,o)),P(e),o=i.pending,i.pending===i.pending_buf_size)){c=1;break}c=i.gzindexo&&(e.adler=a(e.adler,i.pending_buf,i.pending-o,o)),0===c&&(i.gzindex=0,i.status=91)}else i.status=91;if(91===i.status)if(i.gzhead.comment){o=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>o&&(e.adler=a(e.adler,i.pending_buf,i.pending-o,o)),P(e),o=i.pending,i.pending===i.pending_buf_size)){c=1;break}c=i.gzindexo&&(e.adler=a(e.adler,i.pending_buf,i.pending-o,o)),0===c&&(i.status=103)}else i.status=103;if(103===i.status&&(i.gzhead.hcrc?(i.pending+2>i.pending_buf_size&&P(e),i.pending+2<=i.pending_buf_size&&(I(i,255&e.adler),I(i,e.adler>>8&255),e.adler=0,i.status=R)):i.status=R),0!==i.pending){if(P(e),0===e.avail_out)return i.last_flush=-1,0}else if(0===e.avail_in&&O(t)<=O(r)&&4!==t)return _(e,-5);if(666===i.status&&0!==e.avail_in)return _(e,-5);if(0!==e.avail_in||0!==i.lookahead||0!==t&&666!==i.status){var l=2===i.strategy?function(e,t){for(var r;;){if(0===e.lookahead&&(z(e),0===e.lookahead)){if(0===t)return 1;break}if(e.match_length=0,r=s._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(D(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(D(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(D(e,!1),0===e.strm.avail_out)?1:2}(i,t):3===i.strategy?function(e,t){for(var r,n,i,o,a=e.window;;){if(e.lookahead<=x){if(z(e),e.lookahead<=x&&0===t)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&0e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(r=s._tr_tally(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=s._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(D(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(D(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(D(e,!1),0===e.strm.avail_out)?1:2}(i,t):n[i.level].func(i,t);if(3!==l&&4!==l||(i.status=666),1===l||3===l)return 0===e.avail_out&&(i.last_flush=-1),0;if(2===l&&(1===t?s._tr_align(i):5!==t&&(s._tr_stored_block(i,0,0,!1),3===t&&(L(i.head),0===i.lookahead&&(i.strstart=0,i.block_start=0,i.insert=0))),P(e),0===e.avail_out))return i.last_flush=-1,0}return 4!==t?0:i.wrap<=0?1:(2===i.wrap?(I(i,255&e.adler),I(i,e.adler>>8&255),I(i,e.adler>>16&255),I(i,e.adler>>24&255),I(i,255&e.total_in),I(i,e.total_in>>8&255),I(i,e.total_in>>16&255),I(i,e.total_in>>24&255)):(N(i,e.adler>>>16),N(i,65535&e.adler)),P(e),0=r.w_size&&(0===a&&(L(r.head),r.strstart=0,r.block_start=0,r.insert=0),d=new i.Buf8(r.w_size),i.arraySet(d,t,h-r.w_size,r.w_size,0),t=d,h=r.w_size),c=e.avail_in,u=e.next_in,l=e.input,e.avail_in=h,e.next_in=0,e.input=t,z(r);r.lookahead>=3;){for(n=r.strstart,s=r.lookahead-2;r.ins_h=(r.ins_h<>>=g=H>>>24,A-=g,0==(g=H>>>16&255))b[s++]=65535&H;else{if(!(16&g)){if(!(64&g)){H=f[(65535&H)+(h&(1<>>=g,A-=g),A<15&&(h+=v[n++]<<>>=g=H>>>24,A-=g,!(16&(g=H>>>16&255))){if(!(64&g)){H=p[(65535&H)+(h&(1<>>=g,A-=g,(g=s-o)<(g=y-g)&&r.sane){e.msg="invalid distance too far back",r.mode=30;break e}if(x=w,(T=0)===d){if(T+=u-g,g>3,h&=(1<<(A-=m<<3))-1,e.next_in=n,e.next_out=s,e.avail_in=n>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function p(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new n.Buf16(320),this.work=new n.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function E(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=1,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new n.Buf32(h),t.distcode=t.distdyn=new n.Buf32(A),t.sane=1,t.back=-1,0):d}function B(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,E(e)):d}function H(e,t){var r,n;return e&&e.state?(n=e.state,t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||15=o.wsize?(n.arraySet(o.window,t,r-o.wsize,o.wsize,0),o.wnext=0,o.whave=o.wsize):(i<(s=o.wsize-o.wnext)&&(s=i),n.arraySet(o.window,t,r-i,s,o.wnext),(i-=s)?(n.arraySet(o.window,t,r-i,i,0),o.wnext=i,o.whave=o.wsize):(o.wnext+=s,o.wnext===o.wsize&&(o.wnext=0),o.whave>>8&255,r.check=s(r.check,D,2,0),E=p=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&p)<<8)+(p>>8))%31){e.msg="incorrect header check",r.mode=30;break}if(8!=(15&p)){e.msg="unknown compression method",r.mode=30;break}if(E-=4,C=8+(15&(p>>>=4)),0===r.wbits)r.wbits=C;else if(C>r.wbits){e.msg="invalid window size",r.mode=30;break}r.dmax=1<<16;){if(0===h)break e;h--,p+=c[l++]<>8&1),512&r.flags&&(D[0]=255&p,D[1]=p>>>8&255,r.check=s(r.check,D,2,0)),E=p=0,r.mode=3;case 3:for(;E<32;){if(0===h)break e;h--,p+=c[l++]<>>8&255,D[2]=p>>>16&255,D[3]=p>>>24&255,r.check=s(r.check,D,4,0)),E=p=0,r.mode=4;case 4:for(;E<16;){if(0===h)break e;h--,p+=c[l++]<>8),512&r.flags&&(D[0]=255&p,D[1]=p>>>8&255,r.check=s(r.check,D,2,0)),E=p=0,r.mode=5;case 5:if(1024&r.flags){for(;E<16;){if(0===h)break e;h--,p+=c[l++]<>>8&255,r.check=s(r.check,D,2,0)),E=p=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(h<(g=r.length)&&(g=h),g&&(r.head&&(C=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),n.arraySet(r.head.extra,c,l,g,C)),512&r.flags&&(r.check=s(r.check,c,g,l)),h-=g,l+=g,r.length-=g),r.length))break e;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===h)break e;for(g=0;C=c[l+g++],r.head&&C&&r.length<65536&&(r.head.name+=String.fromCharCode(C)),C&&g<16;){if(0===h)break e;h--,p+=c[l++]<>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=12;break;case 10:for(;E<32;){if(0===h)break e;h--,p+=c[l++]<>>=7&E,E-=7&E,r.mode=27;break}for(;E<3;){if(0===h)break e;h--,p+=c[l++]<>>=1)){case 0:r.mode=14;break;case 1:if(x(r),r.mode=20,6!==t)break;p>>>=2,E-=2;break e;case 2:r.mode=17;break;case 3:e.msg="invalid block type",r.mode=30}p>>>=2,E-=2;break;case 14:for(p>>>=7&E,E-=7&E;E<32;){if(0===h)break e;h--,p+=c[l++]<>>16^65535)){e.msg="invalid stored block lengths",r.mode=30;break}if(r.length=65535&p,E=p=0,r.mode=15,6===t)break e;case 15:r.mode=16;case 16:if(g=r.length){if(h<14;){if(0===h)break e;h--,p+=c[l++]<>>=5,E-=5,r.ndist=1+(31&p),p>>>=5,E-=5,r.ncode=4+(15&p),p>>>=4,E-=4,286<3;){if(0===h)break e;h--,p+=c[l++]<>>=3,E-=3}for(;r.have<19;)r.lens[I[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,O={bits:r.lenbits},_=a(0,r.lens,0,19,r.lencode,0,r.work,O),r.lenbits=O.bits,_){e.msg="invalid code lengths set",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have<>>16&255,R=65535&P,!((T=P>>>24)<=E);){if(0===h)break e;h--,p+=c[l++]<<16)p>>>=T,E-=T,r.lens[r.have++]=R;else{if(16===R){for(L=T+2;E>>=T,E-=T,0===r.have){e.msg="invalid bit length repeat",r.mode=30;break}C=r.lens[r.have-1],g=3+(3&p),p>>>=2,E-=2}else if(17===R){for(L=T+3;E>>=T)),p>>>=3,E-=3}else{for(L=T+7;E>>=T)),p>>>=7,E-=7}if(r.have+g>r.nlen+r.ndist){e.msg="invalid bit length repeat",r.mode=30;break}for(;g--;)r.lens[r.have++]=C}}if(30===r.mode)break;if(0===r.lens[256]){e.msg="invalid code -- missing end-of-block",r.mode=30;break}if(r.lenbits=9,O={bits:r.lenbits},_=a(1,r.lens,0,r.nlen,r.lencode,0,r.work,O),r.lenbits=O.bits,_){e.msg="invalid literal/lengths set",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,O={bits:r.distbits},_=a(2,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,O),r.distbits=O.bits,_){e.msg="invalid distances set",r.mode=30;break}if(r.mode=20,6===t)break e;case 20:r.mode=21;case 21:if(6<=h&&258<=A){e.next_out=w,e.avail_out=A,e.next_in=l,e.avail_in=h,r.hold=p,r.bits=E,o(e,H),w=e.next_out,u=e.output,A=e.avail_out,l=e.next_in,c=e.input,h=e.avail_in,p=r.hold,E=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;b=(P=r.lencode[p&(1<>>16&255,R=65535&P,!((T=P>>>24)<=E);){if(0===h)break e;h--,p+=c[l++]<<>M)])>>>16&255,R=65535&P,!(M+(T=P>>>24)<=E);){if(0===h)break e;h--,p+=c[l++]<>>=M,E-=M,r.back+=M}if(p>>>=T,E-=T,r.back+=T,r.length=R,0===b){r.mode=26;break}if(32&b){r.back=-1,r.mode=12;break}if(64&b){e.msg="invalid literal/length code",r.mode=30;break}r.extra=15&b,r.mode=22;case 22:if(r.extra){for(L=r.extra;E>>=r.extra,E-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;b=(P=r.distcode[p&(1<>>16&255,R=65535&P,!((T=P>>>24)<=E);){if(0===h)break e;h--,p+=c[l++]<<>M)])>>>16&255,R=65535&P,!(M+(T=P>>>24)<=E);){if(0===h)break e;h--,p+=c[l++]<>>=M,E-=M,r.back+=M}if(p>>>=T,E-=T,r.back+=T,64&b){e.msg="invalid distance code",r.mode=30;break}r.offset=R,r.extra=15&b,r.mode=24;case 24:if(r.extra){for(L=r.extra;E>>=r.extra,E-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg="invalid distance too far back",r.mode=30;break}r.mode=25;case 25:if(0===A)break e;if(g=H-A,r.offset>g){if((g=r.offset-g)>r.whave&&r.sane){e.msg="invalid distance too far back",r.mode=30;break}m=g>r.wnext?(g-=r.wnext,r.wsize-g):r.wnext-g,g>r.length&&(g=r.length),y=r.window}else y=u,m=w-r.offset,g=r.length;for(A<32;){if(0===h)break e;h--,p|=c[l++]<<32;){if(0===h)break e;h--,p+=c[l++]<B?(g=I[N+d[x]],O[L+d[x]]):(g=96,0),h=1<<>k)+(A-=h)]=H<<24|g<<16|m,0!==A;);for(h=1<>=1;if(0!==h?(_&=h-1,_+=h):_=0,x++,0==--P[T]){if(T===b)break;T=t[r+d[x]]}if(R<<(M=T-k);M+k<=0);)M++,S<<=1;if(C+=1<<256?R[e]:R[256+(e>>>7)]}function I(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function N(e,t,r){e.bi_valid>f-r?(e.bi_buf|=t<>f-e.bi_valid,e.bi_valid+=r-f):(e.bi_buf|=t<>>=1,r<<=1,0<--t;);return r>>>1}function X(e,t,r){var n,i,s=new Array(16),o=0;for(n=1;n<=A;n++)s[n]=o=o+r[n-1]<<1;for(i=0;i<=t;i++){var a=e[2*i+1];0!==a&&(e[2*i]=z(s[a]++,a))}}function j(e){var t;for(t=0;t<=n[r]}function J(e,t,r){for(var n=e.heap[r],i=r<<1;i<=e.heap_len&&(i<<=1;e.heap[r]=n}function K(e,t,r){var n,i,s,o,a=0;if(0!==e.last_lit)for(;n=e.pending_buf[e.d_buf+2*a]<<8|e.pending_buf[e.d_buf+2*a+1],i=e.pending_buf[e.l_buf+a],a++,0===n?U(e,i,t):(U(e,(s=M[i])+u+1,t),0!==(o=m[s])&&N(e,i-=k[s],o),U(e,s=D(--n),r),0!==(o=y[s])&&N(e,n-=O[s],o)),a>1;1<=r;r--)J(e,s,r);for(i=c;r=e.heap[1],e.heap[1]=e.heap[e.heap_len--],J(e,s,1),n=e.heap[1],e.heap[--e.heap_max]=r,e.heap[--e.heap_max]=n,s[2*i]=s[2*r]+s[2*n],e.depth[i]=(e.depth[r]>=e.depth[n]?e.depth[r]:e.depth[n])+1,s[2*r+1]=s[2*n+1]=i,e.heap[1]=i++,J(e,s,1),2<=e.heap_len;);e.heap[--e.heap_max]=e.heap[1],function(e,t){var r,n,i,s,o,a,c=t.dyn_tree,u=t.max_code,l=t.stat_desc.static_tree,d=t.stat_desc.has_stree,w=t.stat_desc.extra_bits,f=t.stat_desc.extra_base,p=t.stat_desc.max_length,E=0;for(s=0;s<=A;s++)e.bl_count[s]=0;for(c[2*e.heap[e.heap_max]+1]=0,r=e.heap_max+1;r<(s=c[2*c[2*(n=e.heap[r])+1]+1]+1)&&(s=p,E++),c[2*n+1]=s,u<=n&&(o=w[n-f]),a=c[2*n],e.opt_len+=a*(s+o),d&&(e.static_len+=a*(l[2*n+1]+o)));if(0!==E){do{for(s=p-1;0===e.bl_count[s];)s--;e.bl_count[s]--,e.bl_count[s+1]+=2,e.bl_count[p]--,E-=2}while(0<(i=e.heap[--r])||(c[2*i+1]!==s&&(e.opt_len+=(s-c[2*i+1])*c[2*i],c[2*i+1]=s),n--)}}(e,t),X(s,u,e.bl_count)}function Z(e,t,r){var n,i,s=-1,o=t[1],a=0,c=7,u=4;for(0===o&&(c=138,u=3),t[2*(r+1)+1]=65535,n=0;n<=r;n++)i=o,o=t[2*(n+1)+1],++a<=10?e.bl_tree[34]++:e.bl_tree[36]++,s=i,u=(a=0)===o?(c=138,3):i===o?(c=6,3):(c=7,4))}function G(e,t,r){var n,i,s=-1,o=t[1],a=0,c=7,u=4;for(0===o&&(c=138,u=3),n=0;n<=r;n++)if(i=o,o=t[2*(n+1)+1],!(++a>=7;n<<7,e=0;e<1<<=A;t++)s[t]=0;for(e=0;e<=143;)v[2*e+1]=8,e++,s[8]++;for(;e<=255;)v[2*e+1]=9,e++,s[9]++;for(;e<=279;)v[2*e+1]=7,e++,s[7]++;for(;e<=287;)v[2*e+1]=8,e++,s[8]++;for(X(v,287,s),e=0;e>>=1)if(1&r&&0!==e.dyn_ltree[2*t])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(t=32;t>>3,(s=e.static_len+3+7>>>3)<=i&&(i=s)):i=s=r+5,r+4<=i&&-1!==t?Q(e,t,r,n):4===e.strategy||s===i?(N(e,2+(n?1:0),3),K(e,v,b)):(N(e,4+(n?1:0),3),function(e,t,r,n){var i;for(N(e,t-257,5),N(e,r-1,5),N(e,n-4,4),i=0;i>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&r,e.last_lit++,0===t?e.dyn_ltree[2*r]++:(e.matches++,t--,e.dyn_ltree[2*(M[r]+u+1)]++,e.dyn_dtree[2*D(t)]++),e.last_lit===e.lit_bufsize-1},r._tr_align=function(e){var t;N(e,2,3),U(e,E,v),16===(t=e).bi_valid?(I(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):8<=t.bi_valid&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)}},{"../utils/common":41}],53:[function(e,t,r){t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(e,t,r){(function(e){!function(e,t){if(!e.setImmediate){var r,n,i,s,o=1,a={},c=!1,u=e.document,l=Object.getPrototypeOf&&Object.getPrototypeOf(e);l=l&&l.setTimeout?l:e,r="[object process]"==={}.toString.call(e.process)?function(e){process.nextTick(function(){w(e)})}:function(){if(e.postMessage&&!e.importScripts){var t=!0,r=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=r,t}}()?(s="setImmediate$"+Math.random()+"$",e.addEventListener?e.addEventListener("message",h,!1):e.attachEvent("onmessage",h),function(t){e.postMessage(s+t,"*")}):e.MessageChannel?((i=new MessageChannel).port1.onmessage=function(e){w(e.data)},function(e){i.port2.postMessage(e)}):u&&"onreadystatechange"in u.createElement("script")?(n=u.documentElement,function(e){var t=u.createElement("script");t.onreadystatechange=function(){w(e),t.onreadystatechange=null,n.removeChild(t),t=null},n.appendChild(t)}):function(e){setTimeout(w,0,e)},l.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),n=0;n{try{const t=await fetch(r,{method:"POST",headers:{"User-Agent":"insomnia/8.6.1","Content-Type":"application/json"},body:JSON.stringify({install_id:"",fcm_token:"",tos:(new Date).toISOString(),type:"Android",model:"PC",locale:"en_US",warp_enabled:!0,key:e.publicKey})});return await t.json()}catch(e){const t=e instanceof Error?e.message:String(e);throw new Error(`Failed to get warp configs: ${t}`)}};for(const e of n){const{config:r}=await i(e);t.push({privateKey:e.privateKey,warpIPv6:`${r.interface.addresses.v6}/128`,reserved:r.client_id,publicKey:r.peers[0].public_key})}return await e.kv.put("warpAccounts",JSON.stringify(t)),t}async function Dd(){const e=await crypto.subtle.generateKey({name:"X25519",namedCurve:"X25519"},!0,["deriveBits"]),t=await crypto.subtle.exportKey("pkcs8",e.privateKey),r=new Uint8Array(t).slice(-32),n=void 0,i=e=>btoa(String.fromCharCode(...e));return{publicKey:i(new Uint8Array(await crypto.subtle.exportKey("raw",e.publicKey))),privateKey:i(r)}}function Id(e){if(!e)return!1;const t=void 0;return/^(?!-)(?:[A-Za-z0-9-]{1,63}.)+[A-Za-z]{2,}$/.test(e)}async function Nd(e,t=!1){const r=`https://cloudflare-dns.com/dns-query?name=${encodeURIComponent(e)}`,n={ipv4:`${r}&type=A`,ipv6:`${r}&type=AAAA`};try{const e=await Ud(n.ipv4,1),r=void 0;return{ipv4:e,ipv6:t?[]:await Ud(n.ipv6,28)}}catch(t){const r=t instanceof Error?t.message:String(t);throw new Error(`Error resolving DNS for ${e}: ${r}`)}}async function Ud(e,t){try{const r=await fetch(e,{headers:{accept:"application/dns-json"}}),n=await r.json();return n.Answer?n.Answer.filter(e=>e.type===t).map(e=>e.data):[]}catch(t){const r=t instanceof Error?t.message:String(t);throw new Error(`Failed to fetch DNS records from ${e}: ${r}`)}}function zd(){const{settings:{VLConfigs:e,TRConfigs:t},dict:{_VL_:r,_TR_:n}}=globalThis;return[].concatIf(e,r).concatIf(t,n)}async function Xd(e){const{httpConfig:{hostName:t},settings:{enableIPv6:r,customCdnAddrs:n,cleanIPs:i}}=globalThis,{ipv4:s,ipv6:o}=await Nd(t,!r),a=void 0;return[t,"www.speedtest.net",...s,...o.map(e=>`[${e}]`),...i].concatIf(!e,n)}function jd(e,t,r,n,i,s){const{settings:{cleanIPs:o,customCdnAddrs:a},dict:{_VL_:c,_VL_CAP_:u,_TR_CAP_:l}}=globalThis,d=void 0,w=a.includes(r)?" C":i?" F":"",h=s?"🔗 ":"",A=n===c?u:l;let f;return f=o.includes(r)?"Clean IP":Id(r)?"Domain":Yd(r)?"IPv4":Zd(r)?"IPv6":"",`💦 ${e} - ${h}${A}${w} - ${f} : ${t}`}function Wd(e){let t="";for(let r=0;r<.5?e[r].toUpperCase():e[r];return t}function Fd(e,t){let r="";const n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",i=Math.floor(Math.random()*(t-e+1))+e;for(let e=0;ee.charCodeAt(0).toString(16).padStart(2,"0")).join("").match(/.{2}/g).map(e=>parseInt(e,16))}function Yd(e){const t=void 0;return/^(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(?:\/([0-9]|[1-2][0-9]|3[0-2]))?$/.test(e)}function Zd(e){const t=void 0;return/^\[(?:(?:[a-fA-F0-9]{1,4}:){7}[a-fA-F0-9]{1,4}|(?:[a-fA-F0-9]{1,4}:){1,7}:|::(?:[a-fA-F0-9]{1,4}:){0,7}|(?:[a-fA-F0-9]{1,4}:){1,6}:[a-fA-F0-9]{1,4}|(?:[a-fA-F0-9]{1,4}:){1,5}(?::[a-fA-F0-9]{1,4}){1,2}|(?:[a-fA-F0-9]{1,4}:){1,4}(?::[a-fA-F0-9]{1,4}){1,3}|(?:[a-fA-F0-9]{1,4}:){1,3}(?::[a-fA-F0-9]{1,4}){1,4}|(?:[a-fA-F0-9]{1,4}:){1,2}(?::[a-fA-F0-9]{1,4}){1,5}|[a-fA-F0-9]{1,4}:(?::[a-fA-F0-9]{1,4}){1,6})\](?:\/(1[0-1][0-9]|12[0-8]|[0-9]?[0-9]))?$/.test(e)}function Gd(e){try{const t=void 0,r=new URL(e).hostname,n=void 0;return{host:r,isHostDomain:Id(r)}}catch{return{host:"",isHostDomain:!1}}}function Vd(e){const{httpConfig:{hostName:t},settings:{customCdnAddrs:r,customCdnHost:n,customCdnSni:i}}=globalThis,s=r.includes(e),o=void 0,a=void 0;return{host:s?n:t,sni:s?i:Wd(t),allowInsecure:s}}function Qd(e,t){const r=/^(?:\[(?.+?)\]|(?[^:]+))(:(?\d+))?$/,n=e.match(r);if(!n||!n.groups)return{host:"",port:0};const{ipv6:i,host:s,port:o}=n.groups;let a=i??s??"";t&&i&&(a=`[${i}]`);const c=void 0;return{host:a,port:o?Number(o):0}}function qd(e){const{defaultHttpsPorts:t}=globalThis.httpConfig;return t.includes(e)}var $d=e=>"direct"===e,ew=e=>"block"===e;function tw(e){const{customBypassRules:t,customBypassSanctionRules:r,customBlockRules:n}=globalThis.settings;return{bypass:{geosites:e.filter(e=>$d(e.type)).map(e=>e.geosite),geoips:e.filter(e=>$d(e.type)&&e.geoip).map(e=>e.geoip),domains:[...t.filter(Id),...r.filter(Id)],ips:t.filter(e=>!Id(e))},block:{geosites:e.filter(e=>ew(e.type)).map(e=>e.geosite),geoips:e.filter(e=>ew(e.type)&&e.geoip).map(e=>e.geoip),domains:n.filter(Id),ips:n.filter(e=>!Id(e))}}}function rw(e){const{localDNS:t,antiSanctionDNS:r,customBypassRules:n,customBypassSanctionRules:i,customBlockRules:s}=globalThis.settings;return{bypass:{localDNS:{geositeGeoips:e.filter(({type:e,geoip:r,dns:n})=>$d(e)&&r&&n===t).map(({geosite:e,geoip:t})=>({geosite:e,geoip:t})),geosites:e.filter(({type:e,geoip:r,dns:n})=>$d(e)&&!r&&n===t).map(e=>e.geosite),domains:n.filter(Id)},antiSanctionDNS:{geosites:e.filter(e=>$d(e.type)&&e.dns===r).map(e=>e.geosite),domains:i.filter(Id)}},block:{geosites:e.filter(e=>ew(e.type)).map(e=>e.geosite),domains:s.filter(Id)}}}function nw(e,t){if(e&&t)return e===t?String(e):`${e}-${t}`}function iw(e){return btoa(String.fromCharCode(...(new TextEncoder).encode(e)))}function sw(e){return(new TextDecoder).decode(Uint8Array.from(atob(e),e=>e.charCodeAt(0)))}function ow(e){const t=void 0;return/^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(e)}function aw(e,t,r,n,i){const s={"Content-Type":"application/json",...i},o={success:e,status:t,message:r??null,body:n??null};return new Response(JSON.stringify(o),{status:t,headers:s})}async function cw(e,t){const{httpConfig:{panelVersion:r},settings:n}=globalThis;let i,s;try{return i=await t.kv.get("proxySettings",{type:"json"}),s=await t.kv.get("warpAccounts",{type:"json"}),i||(await t.kv.put("proxySettings",JSON.stringify(n)),i=n),s||(s=await Pd(t)),r!==i.panelVersion&&(i=await uw(e,t)),{settings:i,warpAccounts:s}}catch(e){console.log(e);const t=e instanceof Error?e.message:String(e);throw new Error(`An error occurred while getting KV: ${t}`)}}async function uw(e,t){const{settings:r,httpConfig:{panelVersion:n}}=globalThis,i="PUT"===e.method?await e.json():null;let s;try{s=await t.kv.get("proxySettings",{type:"json"})}catch(e){const t=e instanceof Error?e.message:String(e);throw console.log(t),new Error(`An error occurred while getting current KV settings: ${t}`)}const o=async(e,t)=>{const n=i?.[e]??s?.[e]??r[e];return t?await t(n):n},a=[["remoteDNS"],["remoteDnsHost","remoteDNS",lw],["localDNS"],["antiSanctionDNS"],["enableIPv6"],["fakeDNS"],["logLevel"],["allowLANConnection"],["proxyIPMode"],["proxyIPs"],["prefixes"],["outProxy"],["outProxyParams","outProxy",dw],["cleanIPs"],["customCdnAddrs"],["customCdnHost"],["customCdnSni"],["bestVLTRInterval"],["VLConfigs"],["TRConfigs"],["ports"],["fingerprint"],["enableTFO"],["fragmentMode"],["fragmentLengthMin"],["fragmentLengthMax"],["fragmentIntervalMin"],["fragmentIntervalMax"],["fragmentMaxSplitMin"],["fragmentMaxSplitMax"],["fragmentPackets"],["enableECH"],["echServerName"],["bypassIran"],["bypassChina"],["bypassRussia"],["bypassOpenAi"],["bypassGoogleAi"],["bypassMicrosoft"],["bypassOracle"],["bypassDocker"],["bypassAdobe"],["bypassEpicGames"],["bypassIntel"],["bypassAmd"],["bypassNvidia"],["bypassAsus"],["bypassHp"],["bypassLenovo"],["blockAds"],["blockPorn"],["blockUDP443"],["blockMalware"],["blockPhishing"],["blockCryptominers"],["customBypassRules"],["customBlockRules"],["customBypassSanctionRules"],["warpRemoteDNS"],["warpEndpoints"],["bestWarpInterval"],["xrayUdpNoises"],["knockerNoiseMode"],["noiseCountMin"],["noiseCountMax"],["noiseSizeMin"],["noiseSizeMax"],["noiseDelayMin"],["noiseDelayMax"],["amneziaNoiseCount"],["amneziaNoiseSizeMin"],["amneziaNoiseSizeMax"]],c=await Promise.all(a.map(async([e,t,r])=>[e,await o(t??e,r)])),u={...Object.fromEntries(c),panelVersion:n};try{return await t.kv.put("proxySettings",JSON.stringify(u)),u}catch(e){const t=e instanceof Error?e.message:String(e);throw console.log(e),new Error(`An error occurred while updating KV: ${t}`)}}async function lw(e){const{host:t,isHostDomain:r}=Gd(e),n={host:t,isDomain:r,ipv4:[],ipv6:[]};if(r){const{ipv4:e,ipv6:r}=await Nd(t);n.ipv4=e,n.ipv6=r}return n}function dw(e){if(!e)return{};const{_SS_:t,_TR_:r,_VL_:n,_VM_:i}=globalThis.dict;let s=new URL(e);const o=s.protocol.slice(0,-1),a="ss"===o?t:o.replace("socks5","socks");if(a===i){const e=JSON.parse(sw(s.host));return{protocol:a,uuid:e.id,server:e.add,port:+e.port,aid:+e.aid,type:e.net,headerType:e.type,serviceName:e.path,authority:e.authority,path:e.path||void 0,host:e.host||void 0,security:e.tls,sni:e.sni,fp:e.fp,alpn:e.alpn||void 0}}const c={protocol:a,server:s.hostname,port:+s.port},u=(e,t)=>{if(e)for(const[e,t]of s.searchParams)c[e]=t||void 0;return{...c,...t}};switch(a){case n:return u(!0,{uuid:s.username});case r:return u(!0,{password:s.username});case t:const e=sw(s.username),[i,...o]=e.split(":");return u(!0,{method:i,password:o.join(":")});case"socks":case"http":let a,c;try{const e=sw(s.username);e.includes(":")&&([a,c]=e.split(":"))}catch(e){a=s.username,c=s.password}return u(!1,{user:a||void 0,pass:c||void 0});default:return{}}}async function ww(e,t){const r=await cw(e,t);globalThis.settings=r.settings}function hw(e,t){const{pathname:r}=new URL(e.url),{UUID:n,TR_PASS:i,FALLBACK:s,DOH_URL:o}=t;globalThis.globalConfig={userID:n,TrPass:i,pathName:decodeURIComponent(r),fallbackDomain:s||"speed.cloudflare.com",dohURL:o||"https://cloudflare-dns.com/dns-query"}}function Aw(e){const{_public_proxy_ip_:t}=globalThis.dict;globalThis.wsConfig={envProxyIPs:e.PROXY_IP,envPrefixes:e.PREFIX,defaultProxyIPs:[t],defaultPrefixes:["[2a02:898:146:64::]","[2602:fc59:b0:64::]","[2602:fc59:11:64::]"]}}function fw(e,t){const{_VL_CAP_:r,_TR_CAP_:n,_website_:i}=globalThis.dict,{UUID:s,TR_PASS:o,SUB_PATH:a,kv:c}=t,{pathname:u,origin:l,searchParams:d,hostname:w}=new URL(e.url);if(!["/secrets","/favicon.ico"].includes(decodeURIComponent(u))){if(!s||!o)throw new Error(`Please set ${r} UUID and ${n} password first. Visit here to generate them.`,{cause:"init"});if(!ow(s))throw new Error(`Invalid UUID: ${s}`,{cause:"init"});if("object"!=typeof c)throw new Error(`KV Dataset is not properly set! Please refer to tutorials.`,{cause:"init"})}globalThis.httpConfig={panelVersion:"4.1.3",defaultHttpPorts:[80,8080,2052,2082,2086,2095,8880],defaultHttpsPorts:[443,8443,2053,2083,2087,2096],hostName:w,client:decodeURIComponent(d.get("app")??""),urlOrigin:l,subPath:a||s}}Array.prototype.concatIf=function(e,t){return e?Array.isArray(t)?[...this,...t]:[...this,t]:this},Object.prototype.omitEmpty=function(){if(0!==Object.keys(this).length)return this},globalThis.dict={_VL_:atob("dmxlc3M="),_VL_CAP_:atob("VkxFU1M="),_VM_:atob("dm1lc3M="),_TR_:atob("dHJvamFu"),_TR_CAP_:atob("VHJvamFu"),_SS_:atob("c2hhZG93c29ja3M="),_V2_:atob("djJyYXk="),_project_:atob("QlBC"),_website_:atob("aHR0cHM6Ly9iaWEtcGFpbi1iYWNoZS5naXRodWIuaW8vQlBCLVdvcmtlci1QYW5lbC8="),_public_proxy_ip_:atob("YnBiLnlvdXNlZi5pc2VnYXJvLmNvbQ==")},globalThis.settings={localDNS:"8.8.8.8",antiSanctionDNS:"178.22.122.100",fakeDNS:!1,enableIPv6:!0,allowLANConnection:!1,logLevel:"warning",remoteDNS:"https://8.8.8.8/dns-query",remoteDnsHost:{host:"8.8.8.8",isDomain:!1,ipv4:[],ipv6:[]},proxyIPMode:"proxyip",proxyIPs:[],prefixes:[],outProxy:"",outProxyParams:{},cleanIPs:[],customCdnAddrs:[],customCdnHost:"",customCdnSni:"",bestVLTRInterval:30,VLConfigs:!0,TRConfigs:!0,ports:[443],fingerprint:"chrome",enableTFO:!1,fragmentMode:"custom",fragmentLengthMin:100,fragmentLengthMax:200,fragmentIntervalMin:1,fragmentIntervalMax:1,fragmentMaxSplitMin:void 0,fragmentMaxSplitMax:void 0,fragmentPackets:"tlshello",enableECH:!1,echServerName:"",bypassIran:!1,bypassChina:!1,bypassRussia:!1,bypassOpenAi:!1,bypassGoogleAi:!1,bypassMicrosoft:!1,bypassOracle:!1,bypassDocker:!1,bypassAdobe:!1,bypassEpicGames:!1,bypassIntel:!1,bypassAmd:!1,bypassNvidia:!1,bypassAsus:!1,bypassHp:!1,bypassLenovo:!1,blockAds:!1,blockPorn:!1,blockUDP443:!1,blockMalware:!1,blockPhishing:!1,blockCryptominers:!1,customBypassRules:[],customBlockRules:[],customBypassSanctionRules:[],warpRemoteDNS:"1.1.1.1",warpEndpoints:["engage.cloudflareclient.com:2408"],bestWarpInterval:30,xrayUdpNoises:[{type:"rand",packet:"50-100",delay:"1-1",applyTo:"ip",count:5}],knockerNoiseMode:"quic",noiseCountMin:10,noiseCountMax:15,noiseSizeMin:5,noiseSizeMax:10,noiseDelayMin:1,noiseDelayMax:1,amneziaNoiseCount:5,amneziaNoiseSizeMin:50,amneziaNoiseSizeMax:100,panelVersion:"4.1.3"};var pw=new TextEncoder,Ew=new TextDecoder,Bw=2**32;function Hw(...e){const t=e.reduce((e,{length:t})=>e+t,0),r=new Uint8Array(t);let n=0;for(const t of e)r.set(t,n),n+=t.length;return r}function gw(e){const t=new Uint8Array(e.length);for(let r=0;r127)throw new TypeError("non-ASCII string encountered in encode()");t[r]=n}return t}function mw(e){if(Uint8Array.prototype.toBase64)return e.toBase64();const t=32768,r=[];for(let n=0;nnew TypeError(`CryptoKey does not support this operation, its ${t} must be ${e}`),bw=(e,t)=>e.name===t;function Rw(e){return parseInt(e.name.slice(4),10)}function Mw(e,t){const r=void 0;if(Rw(e.hash)!==t)throw vw(`SHA-${t}`,"algorithm.hash")}function kw(e){switch(e){case"ES256":return"P-256";case"ES384":return"P-384";case"ES512":return"P-521";default:throw new Error("unreachable")}}function Sw(e,t){if(t&&!e.usages.includes(t))throw new TypeError(`CryptoKey does not support this operation, its usages must include ${t}.`)}function Cw(e,t,r){switch(t){case"HS256":case"HS384":case"HS512":if(!bw(e.algorithm,"HMAC"))throw vw("HMAC");Mw(e.algorithm,parseInt(t.slice(2),10));break;case"RS256":case"RS384":case"RS512":if(!bw(e.algorithm,"RSASSA-PKCS1-v1_5"))throw vw("RSASSA-PKCS1-v1_5");Mw(e.algorithm,parseInt(t.slice(2),10));break;case"PS256":case"PS384":case"PS512":if(!bw(e.algorithm,"RSA-PSS"))throw vw("RSA-PSS");Mw(e.algorithm,parseInt(t.slice(2),10));break;case"Ed25519":case"EdDSA":if(!bw(e.algorithm,"Ed25519"))throw vw("Ed25519");break;case"ML-DSA-44":case"ML-DSA-65":case"ML-DSA-87":if(!bw(e.algorithm,t))throw vw(t);break;case"ES256":case"ES384":case"ES512":{if(!bw(e.algorithm,"ECDSA"))throw vw("ECDSA");const r=kw(t),n=void 0;if(e.algorithm.namedCurve!==r)throw vw(r,"algorithm.namedCurve");break}default:throw new TypeError("CryptoKey does not support this operation")}Sw(e,r)}function _w(e,t,...r){if((r=r.filter(Boolean)).length>2){const t=r.pop();e+=`one of type ${r.join(", ")}, or ${t}.`}else 2===r.length?e+=`one of type ${r[0]} or ${r[1]}.`:e+=`of type ${r[0]}.`;return null==t?e+=` Received ${t}`:"function"==typeof t&&t.name?e+=` Received function ${t.name}`:"object"==typeof t&&null!=t&&t.constructor?.name&&(e+=` Received an instance of ${t.constructor.name}`),e}var Ow=(e,...t)=>_w("Key must be ",e,...t),Lw=(e,t,...r)=>_w(`Key for the ${e} algorithm must be `,t,...r),Pw=class extends Error{static code="ERR_JOSE_GENERIC";code="ERR_JOSE_GENERIC";constructor(e,t){super(e,t),this.name=this.constructor.name,Error.captureStackTrace?.(this,this.constructor)}},Dw=class extends Pw{static code="ERR_JWT_CLAIM_VALIDATION_FAILED";code="ERR_JWT_CLAIM_VALIDATION_FAILED";claim;reason;payload;constructor(e,t,r="unspecified",n="unspecified"){super(e,{cause:{claim:r,reason:n,payload:t}}),this.claim=r,this.reason=n,this.payload=t}},Iw=class extends Pw{static code="ERR_JWT_EXPIRED";code="ERR_JWT_EXPIRED";claim;reason;payload;constructor(e,t,r="unspecified",n="unspecified"){super(e,{cause:{claim:r,reason:n,payload:t}}),this.claim=r,this.reason=n,this.payload=t}},Nw=class extends Pw{static code="ERR_JOSE_ALG_NOT_ALLOWED";code="ERR_JOSE_ALG_NOT_ALLOWED"},Uw=class extends Pw{static code="ERR_JOSE_NOT_SUPPORTED";code="ERR_JOSE_NOT_SUPPORTED"},zw=class extends Pw{static code="ERR_JWS_INVALID";code="ERR_JWS_INVALID"},Xw=class extends Pw{static code="ERR_JWT_INVALID";code="ERR_JWT_INVALID"},jw=class extends Pw{static code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED";code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED";constructor(e="signature verification failed",t){super(e,t)}},Ww=e=>{if("CryptoKey"===e?.[Symbol.toStringTag])return!0;try{return e instanceof CryptoKey}catch{return!1}},Fw=e=>"KeyObject"===e?.[Symbol.toStringTag],Jw=e=>Ww(e)||Fw(e),Kw=Symbol();function Yw(e,t){if(e)throw new TypeError(`${t} can only be called once`)}function Zw(e,t,r){try{return Tw(e)}catch{throw new r(`Failed to base64url decode the ${t}`)}}var Gw=e=>"object"==typeof e&&null!==e;function Vw(e){if(!Gw(e)||"[object Object]"!==Object.prototype.toString.call(e))return!1;if(null===Object.getPrototypeOf(e))return!0;let t=e;for(;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function Qw(...e){const t=e.filter(Boolean);if(0===t.length||1===t.length)return!0;let r;for(const e of t){const t=Object.keys(e);if(r&&0!==r.size)for(const e of t){if(r.has(e))return!1;r.add(e)}else r=new Set(t)}return!0}var qw=e=>Vw(e)&&"string"==typeof e.kty,$w=e=>"oct"!==e.kty&&("AKP"===e.kty&&"string"==typeof e.priv||"string"==typeof e.d),eh=e=>"oct"!==e.kty&&void 0===e.d&&void 0===e.priv,th=e=>"oct"===e.kty&&"string"==typeof e.k;function rh(e,t){if(e.startsWith("RS")||e.startsWith("PS")){const{modulusLength:r}=t.algorithm;if("number"!=typeof r||r<2048)throw new TypeError(`${e} requires key modulusLength to be 2048 bits or larger`)}}function nh(e,t){const r=`SHA-${e.slice(-3)}`;switch(e){case"HS256":case"HS384":case"HS512":return{hash:r,name:"HMAC"};case"PS256":case"PS384":case"PS512":return{hash:r,name:"RSA-PSS",saltLength:parseInt(e.slice(-3),10)>>3};case"RS256":case"RS384":case"RS512":return{hash:r,name:"RSASSA-PKCS1-v1_5"};case"ES256":case"ES384":case"ES512":return{hash:r,name:"ECDSA",namedCurve:t.namedCurve};case"Ed25519":case"EdDSA":return{name:"Ed25519"};case"ML-DSA-44":case"ML-DSA-65":case"ML-DSA-87":return{name:e};default:throw new Uw(`alg ${e} is not supported either by JOSE or your javascript runtime`)}}async function ih(e,t,r){if(t instanceof Uint8Array){if(!e.startsWith("HS"))throw new TypeError(Ow(t,"CryptoKey","KeyObject","JSON Web Key"));return crypto.subtle.importKey("raw",t,{hash:`SHA-${e.slice(-3)}`,name:"HMAC"},!1,[r])}return Cw(t,e,r),t}async function sh(e,t,r){const n=await ih(e,t,"sign");rh(e,n);const i=await crypto.subtle.sign(nh(e,n.algorithm),n,r);return new Uint8Array(i)}async function oh(e,t,r,n){const i=await ih(e,t,"verify");rh(e,i);const s=nh(e,i.algorithm);try{return await crypto.subtle.verify(s,i,r,n)}catch{return!1}}var ah='Invalid or unsupported JWK "alg" (Algorithm) Parameter value';function ch(e){let t,r;switch(e.kty){case"AKP":switch(e.alg){case"ML-DSA-44":case"ML-DSA-65":case"ML-DSA-87":t={name:e.alg},r=e.priv?["sign"]:["verify"];break;default:throw new Uw(ah)}break;case"RSA":switch(e.alg){case"PS256":case"PS384":case"PS512":t={name:"RSA-PSS",hash:`SHA-${e.alg.slice(-3)}`},r=e.d?["sign"]:["verify"];break;case"RS256":case"RS384":case"RS512":t={name:"RSASSA-PKCS1-v1_5",hash:`SHA-${e.alg.slice(-3)}`},r=e.d?["sign"]:["verify"];break;case"RSA-OAEP":case"RSA-OAEP-256":case"RSA-OAEP-384":case"RSA-OAEP-512":t={name:"RSA-OAEP",hash:`SHA-${parseInt(e.alg.slice(-3),10)||1}`},r=e.d?["decrypt","unwrapKey"]:["encrypt","wrapKey"];break;default:throw new Uw(ah)}break;case"EC":switch(e.alg){case"ES256":case"ES384":case"ES512":t={name:"ECDSA",namedCurve:{ES256:"P-256",ES384:"P-384",ES512:"P-521"}[e.alg]},r=e.d?["sign"]:["verify"];break;case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":t={name:"ECDH",namedCurve:e.crv},r=e.d?["deriveBits"]:[];break;default:throw new Uw(ah)}break;case"OKP":switch(e.alg){case"Ed25519":case"EdDSA":t={name:"Ed25519"},r=e.d?["sign"]:["verify"];break;case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":t={name:e.crv},r=e.d?["deriveBits"]:[];break;default:throw new Uw(ah)}break;default:throw new Uw('Invalid or unsupported JWK "kty" (Key Type) Parameter value')}return{algorithm:t,keyUsages:r}}async function uh(e){if(!e.alg)throw new TypeError('"alg" argument is required when "jwk.alg" is not present');const{algorithm:t,keyUsages:r}=ch(e),n={...e};return"AKP"!==n.kty&&delete n.alg,delete n.use,crypto.subtle.importKey("jwk",n,t,e.ext??(!e.d&&!e.priv),e.key_ops??r)}var lh="given KeyObject instance cannot be used for this algorithm",dh,wh=async(e,t,r,n=!1)=>{dh||=new WeakMap;let i=dh.get(e);if(i?.[r])return i[r];const s=await uh({...t,alg:r});return n&&Object.freeze(e),i?i[r]=s:dh.set(e,{[r]:s}),s},hh=(e,t)=>{dh||=new WeakMap;let r=dh.get(e);if(r?.[t])return r[t];const n="public"===e.type,i=!!n;let s;if("x25519"===e.asymmetricKeyType){switch(t){case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":break;default:throw new TypeError(lh)}s=e.toCryptoKey(e.asymmetricKeyType,i,n?[]:["deriveBits"])}if("ed25519"===e.asymmetricKeyType){if("EdDSA"!==t&&"Ed25519"!==t)throw new TypeError(lh);s=e.toCryptoKey(e.asymmetricKeyType,i,[n?"verify":"sign"])}switch(e.asymmetricKeyType){case"ml-dsa-44":case"ml-dsa-65":case"ml-dsa-87":if(t!==e.asymmetricKeyType.toUpperCase())throw new TypeError(lh);s=e.toCryptoKey(e.asymmetricKeyType,i,[n?"verify":"sign"])}if("rsa"===e.asymmetricKeyType){let r;switch(t){case"RSA-OAEP":r="SHA-1";break;case"RS256":case"PS256":case"RSA-OAEP-256":r="SHA-256";break;case"RS384":case"PS384":case"RSA-OAEP-384":r="SHA-384";break;case"RS512":case"PS512":case"RSA-OAEP-512":r="SHA-512";break;default:throw new TypeError(lh)}if(t.startsWith("RSA-OAEP"))return e.toCryptoKey({name:"RSA-OAEP",hash:r},i,n?["encrypt"]:["decrypt"]);s=e.toCryptoKey({name:t.startsWith("PS")?"RSA-PSS":"RSASSA-PKCS1-v1_5",hash:r},i,[n?"verify":"sign"])}if("ec"===e.asymmetricKeyType){const r=void 0,o=new Map([["prime256v1","P-256"],["secp384r1","P-384"],["secp521r1","P-521"]]).get(e.asymmetricKeyDetails?.namedCurve);if(!o)throw new TypeError(lh);const a={ES256:"P-256",ES384:"P-384",ES512:"P-521"};a[t]&&o===a[t]&&(s=e.toCryptoKey({name:"ECDSA",namedCurve:o},i,[n?"verify":"sign"])),t.startsWith("ECDH-ES")&&(s=e.toCryptoKey({name:"ECDH",namedCurve:o},i,n?[]:["deriveBits"]))}if(!s)throw new TypeError(lh);return r?r[t]=s:dh.set(e,{[t]:s}),s};async function Ah(e,t){if(e instanceof Uint8Array)return e;if(Ww(e))return e;if(Fw(e)){if("secret"===e.type)return e.export();if("toCryptoKey"in e&&"function"==typeof e.toCryptoKey)try{return hh(e,t)}catch(e){if(e instanceof TypeError)throw e}let r=e.export({format:"jwk"});return wh(e,r,t)}if(qw(e))return e.k?Tw(e.k):wh(e,e,t,!0);throw new Error("unreachable")}function fh(e,t,r,n,i){if(void 0!==i.crit&&void 0===n?.crit)throw new e('"crit" (Critical) Header Parameter MUST be integrity protected');if(!n||void 0===n.crit)return new Set;if(!Array.isArray(n.crit)||0===n.crit.length||n.crit.some(e=>"string"!=typeof e||0===e.length))throw new e('"crit" (Critical) Header Parameter MUST be an array of non-empty strings when present');let s;s=void 0!==r?new Map([...Object.entries(r),...t.entries()]):t;for(const t of n.crit){if(!s.has(t))throw new Uw(`Extension Header Parameter "${t}" is not recognized`);if(void 0===i[t])throw new e(`Extension Header Parameter "${t}" is missing`);if(s.get(t)&&void 0===n[t])throw new e(`Extension Header Parameter "${t}" MUST be integrity protected`)}return new Set(n.crit)}function ph(e,t){if(void 0!==t&&(!Array.isArray(t)||t.some(e=>"string"!=typeof e)))throw new TypeError(`"${e}" option must be an array of strings`);if(t)return new Set(t)}var Eh=e=>e?.[Symbol.toStringTag],Bh=(e,t,r)=>{if(void 0!==t.use){let e;switch(r){case"sign":case"verify":e="sig";break;case"encrypt":case"decrypt":e="enc";break}if(t.use!==e)throw new TypeError(`Invalid key for this operation, its "use" must be "${e}" when present`)}if(void 0!==t.alg&&t.alg!==e)throw new TypeError(`Invalid key for this operation, its "alg" must be "${e}" when present`);if(Array.isArray(t.key_ops)){let n;switch(!0){case"sign"===r||"verify"===r:case"dir"===e:case e.includes("CBC-HS"):n=r;break;case e.startsWith("PBES2"):n="deriveBits";break;case/^A\d{3}(?:GCM)?(?:KW)?$/.test(e):n=!e.includes("GCM")&&e.endsWith("KW")?"encrypt"===r?"wrapKey":"unwrapKey":r;break;case"encrypt"===r&&e.startsWith("RSA"):n="wrapKey";break;case"decrypt"===r:n=e.startsWith("RSA")?"unwrapKey":"deriveBits";break}if(n&&!1===t.key_ops?.includes?.(n))throw new TypeError(`Invalid key for this operation, its "key_ops" must include "${n}" when present`)}return!0},Hh=(e,t,r)=>{if(!(t instanceof Uint8Array)){if(qw(t)){if(th(t)&&Bh(e,t,r))return;throw new TypeError('JSON Web Key for symmetric algorithms must have JWK "kty" (Key Type) equal to "oct" and the JWK "k" (Key Value) present')}if(!Jw(t))throw new TypeError(Lw(e,t,"CryptoKey","KeyObject","JSON Web Key","Uint8Array"));if("secret"!==t.type)throw new TypeError(`${Eh(t)} instances for symmetric algorithms must be of type "secret"`)}},gh=(e,t,r)=>{if(qw(t))switch(r){case"decrypt":case"sign":if($w(t)&&Bh(e,t,r))return;throw new TypeError("JSON Web Key for this operation must be a private JWK");case"encrypt":case"verify":if(eh(t)&&Bh(e,t,r))return;throw new TypeError("JSON Web Key for this operation must be a public JWK")}if(!Jw(t))throw new TypeError(Lw(e,t,"CryptoKey","KeyObject","JSON Web Key"));if("secret"===t.type)throw new TypeError(`${Eh(t)} instances for asymmetric algorithms must not be of type "secret"`);if("public"===t.type)switch(r){case"sign":throw new TypeError(`${Eh(t)} instances for asymmetric algorithm signing must be of type "private"`);case"decrypt":throw new TypeError(`${Eh(t)} instances for asymmetric algorithm decryption must be of type "private"`)}if("private"===t.type)switch(r){case"verify":throw new TypeError(`${Eh(t)} instances for asymmetric algorithm verifying must be of type "public"`);case"encrypt":throw new TypeError(`${Eh(t)} instances for asymmetric algorithm encryption must be of type "public"`)}};function mh(e,t,r){switch(e.substring(0,2)){case"A1":case"A2":case"di":case"HS":case"PB":Hh(e,t,r);break;default:gh(e,t,r)}}async function yh(e,t,r){if(!Vw(e))throw new zw("Flattened JWS must be an object");if(void 0===e.protected&&void 0===e.header)throw new zw('Flattened JWS must have either of the "protected" or "header" members');if(void 0!==e.protected&&"string"!=typeof e.protected)throw new zw("JWS Protected Header incorrect type");if(void 0===e.payload)throw new zw("JWS Payload missing");if("string"!=typeof e.signature)throw new zw("JWS Signature missing or incorrect type");if(void 0!==e.header&&!Vw(e.header))throw new zw("JWS Unprotected Header incorrect type");let n={};if(e.protected)try{const t=Tw(e.protected);n=JSON.parse(Ew.decode(t))}catch{throw new zw("JWS Protected Header is invalid")}if(!Qw(n,e.header))throw new zw("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");const i={...n,...e.header},s=void 0;let o=!0;if(fh(zw,new Map([["b64",!0]]),r?.crit,n,i).has("b64")&&(o=n.b64,"boolean"!=typeof o))throw new zw('The "b64" (base64url-encode payload) Header Parameter must be a boolean');const{alg:a}=i;if("string"!=typeof a||!a)throw new zw('JWS "alg" (Algorithm) Header Parameter missing or invalid');const c=r&&ph("algorithms",r.algorithms);if(c&&!c.has(a))throw new Nw('"alg" (Algorithm) Header Parameter value not allowed');if(o){if("string"!=typeof e.payload)throw new zw("JWS Payload must be a string")}else if("string"!=typeof e.payload&&!(e.payload instanceof Uint8Array))throw new zw("JWS Payload must be a string or an Uint8Array instance");let u=!1;"function"==typeof t&&(t=await t(n,e),u=!0),mh(a,t,"verify");const l=Hw(void 0!==e.protected?gw(e.protected):new Uint8Array,gw("."),"string"==typeof e.payload?o?gw(e.payload):pw.encode(e.payload):e.payload),d=Zw(e.signature,"signature",zw),w=await Ah(t,a),h=void 0;if(!await oh(a,w,d,l))throw new jw;let A;A=o?Zw(e.payload,"payload",zw):"string"==typeof e.payload?pw.encode(e.payload):e.payload;const f={payload:A};return void 0!==e.protected&&(f.protectedHeader=n),void 0!==e.header&&(f.unprotectedHeader=e.header),u?{...f,key:w}:f}async function Th(e,t,r){if(e instanceof Uint8Array&&(e=Ew.decode(e)),"string"!=typeof e)throw new zw("Compact JWS must be a string or Uint8Array");const{0:n,1:i,2:s,length:o}=e.split(".");if(3!==o)throw new zw("Invalid Compact JWS");const a=await yh({payload:i,protected:n,signature:s},t,r),c={payload:a.payload,protectedHeader:a.protectedHeader};return"function"==typeof t?{...c,key:a.key}:c}var xh=e=>Math.floor(e.getTime()/1e3),vh=60,bh=3600,Rh=86400,Mh=7*Rh,kh=31557600,Sh=/^(\+|\-)? ?(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i;function Ch(e){const t=Sh.exec(e);if(!t||t[4]&&t[1])throw new TypeError("Invalid time period format");const r=parseFloat(t[2]),n=void 0;let i;switch(t[3].toLowerCase()){case"sec":case"secs":case"second":case"seconds":case"s":i=Math.round(r);break;case"minute":case"minutes":case"min":case"mins":case"m":i=Math.round(r*vh);break;case"hour":case"hours":case"hr":case"hrs":case"h":i=Math.round(r*bh);break;case"day":case"days":case"d":i=Math.round(r*Rh);break;case"week":case"weeks":case"w":i=Math.round(r*Mh);break;default:i=Math.round(r*kh);break}return"-"===t[1]||"ago"===t[4]?-i:i}function _h(e,t){if(!Number.isFinite(t))throw new TypeError(`Invalid ${e} input`);return t}var Oh=e=>e.includes("/")?e.toLowerCase():`application/${e.toLowerCase()}`,Lh=(e,t)=>"string"==typeof e?t.includes(e):!!Array.isArray(e)&&t.some(Set.prototype.has.bind(new Set(e)));function Ph(e,t,r={}){let n;try{n=JSON.parse(Ew.decode(t))}catch{}if(!Vw(n))throw new Xw("JWT Claims Set must be a top-level JSON object");const{typ:i}=r;if(i&&("string"!=typeof e.typ||Oh(e.typ)!==Oh(i)))throw new Dw('unexpected "typ" JWT header value',n,"typ","check_failed");const{requiredClaims:s=[],issuer:o,subject:a,audience:c,maxTokenAge:u}=r,l=[...s];void 0!==u&&l.push("iat"),void 0!==c&&l.push("aud"),void 0!==a&&l.push("sub"),void 0!==o&&l.push("iss");for(const e of new Set(l.reverse()))if(!(e in n))throw new Dw(`missing required "${e}" claim`,n,e,"missing");if(o&&!(Array.isArray(o)?o:[o]).includes(n.iss))throw new Dw('unexpected "iss" claim value',n,"iss","check_failed");if(a&&n.sub!==a)throw new Dw('unexpected "sub" claim value',n,"sub","check_failed");if(c&&!Lh(n.aud,"string"==typeof c?[c]:c))throw new Dw('unexpected "aud" claim value',n,"aud","check_failed");let d;switch(typeof r.clockTolerance){case"string":d=Ch(r.clockTolerance);break;case"number":d=r.clockTolerance;break;case"undefined":d=0;break;default:throw new TypeError("Invalid clockTolerance option type")}const{currentDate:w}=r,h=xh(w||new Date);if((void 0!==n.iat||u)&&"number"!=typeof n.iat)throw new Dw('"iat" claim must be a number',n,"iat","invalid");if(void 0!==n.nbf){if("number"!=typeof n.nbf)throw new Dw('"nbf" claim must be a number',n,"nbf","invalid");if(n.nbf>h+d)throw new Dw('"nbf" claim timestamp check failed',n,"nbf","check_failed")}if(void 0!==n.exp){if("number"!=typeof n.exp)throw new Dw('"exp" claim must be a number',n,"exp","invalid");if(n.exp<=h-d)throw new Iw('"exp" claim timestamp check failed',n,"exp","check_failed")}if(u){const e=h-n.iat,t=void 0;if(e-d>("number"==typeof u?u:Ch(u)))throw new Iw('"iat" claim timestamp check failed (too far in the past)',n,"iat","check_failed");if(e<0-d)throw new Dw('"iat" claim timestamp check failed (it should be in the past)',n,"iat","check_failed")}return n}var Dh=class{#e;constructor(e){if(!Vw(e))throw new TypeError("JWT Claims Set MUST be an object");this.#e=structuredClone(e)}data(){return pw.encode(JSON.stringify(this.#e))}get iss(){return this.#e.iss}set iss(e){this.#e.iss=e}get sub(){return this.#e.sub}set sub(e){this.#e.sub=e}get aud(){return this.#e.aud}set aud(e){this.#e.aud=e}set jti(e){this.#e.jti=e}set nbf(e){"number"==typeof e?this.#e.nbf=_h("setNotBefore",e):e instanceof Date?this.#e.nbf=_h("setNotBefore",xh(e)):this.#e.nbf=xh(new Date)+Ch(e)}set exp(e){"number"==typeof e?this.#e.exp=_h("setExpirationTime",e):e instanceof Date?this.#e.exp=_h("setExpirationTime",xh(e)):this.#e.exp=xh(new Date)+Ch(e)}set iat(e){void 0===e?this.#e.iat=xh(new Date):e instanceof Date?this.#e.iat=_h("setIssuedAt",xh(e)):this.#e.iat=_h("setIssuedAt","string"==typeof e?xh(new Date)+Ch(e):e)}};async function Ih(e,t,r){const n=await Th(e,t,r);if(n.protectedHeader.crit?.includes("b64")&&!1===n.protectedHeader.b64)throw new Xw("JWTs MUST NOT use unencoded payload");const i=void 0,s={payload:Ph(n.protectedHeader,n.payload,r),protectedHeader:n.protectedHeader};return"function"==typeof t?{...s,key:n.key}:s}var Nh=class{#e;#t;#r;constructor(e){if(!(e instanceof Uint8Array))throw new TypeError("payload must be an instance of Uint8Array");this.#e=e}setProtectedHeader(e){return Yw(this.#t,"setProtectedHeader"),this.#t=e,this}setUnprotectedHeader(e){return Yw(this.#r,"setUnprotectedHeader"),this.#r=e,this}async sign(e,t){if(!this.#t&&!this.#r)throw new zw("either setProtectedHeader or setUnprotectedHeader must be called before #sign()");if(!Qw(this.#t,this.#r))throw new zw("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");const r={...this.#t,...this.#r},n=void 0;let i=!0;if(fh(zw,new Map([["b64",!0]]),t?.crit,this.#t,r).has("b64")&&(i=this.#t.b64,"boolean"!=typeof i))throw new zw('The "b64" (base64url-encode payload) Header Parameter must be a boolean');const{alg:s}=r;if("string"!=typeof s||!s)throw new zw('JWS "alg" (Algorithm) Header Parameter missing or invalid');let o,a,c,u;mh(s,e,"sign"),i?(o=xw(this.#e),a=gw(o)):(a=this.#e,o=""),this.#t?(c=xw(JSON.stringify(this.#t)),u=gw(c)):(c="",u=new Uint8Array);const l=Hw(u,gw("."),a),d=await Ah(e,s),w=void 0,h={signature:xw(await sh(s,d,l)),payload:o};return this.#r&&(h.header=this.#r),this.#t&&(h.protected=c),h}},Uh=class{#n;constructor(e){this.#n=new Nh(e)}setProtectedHeader(e){return this.#n.setProtectedHeader(e),this}async sign(e,t){const r=await this.#n.sign(e,t);if(void 0===r.payload)throw new TypeError("use the flattened module for creating JWS with b64: false");return`${r.protected}.${r.payload}.${r.signature}`}},zh=class{#t;#i;constructor(e={}){this.#i=new Dh(e)}setIssuer(e){return this.#i.iss=e,this}setSubject(e){return this.#i.sub=e,this}setAudience(e){return this.#i.aud=e,this}setJti(e){return this.#i.jti=e,this}setNotBefore(e){return this.#i.nbf=e,this}setExpirationTime(e){return this.#i.exp=e,this}setIssuedAt(e){return this.#i.iat=e,this}setProtectedHeader(e){return this.#t=e,this}async sign(e,t){const r=new Uh(this.#i.data());if(r.setProtectedHeader(this.#t),Array.isArray(this.#t?.crit)&&this.#t.crit.includes("b64")&&!1===this.#t.b64)throw new Xw("JWTs MUST NOT use unencoded payload");return r.sign(e,t)}};async function Xh(e,t){if("POST"!==e.method)return aw(!1,405,"Method not allowed.");const r=void 0,n=void 0;if(await e.text()!==await t.kv.get("pwd"))return aw(!1,401,"Wrong password.");let i=await t.kv.get("secretKey");i||(i=jh(),await t.kv.put("secretKey",i));const s=(new TextEncoder).encode(i),{userID:o}=globalThis.globalConfig,a=void 0;return aw(!0,200,"Successfully generated Auth token",null,{"Set-Cookie":`jwtToken=${await new zh({userID:o}).setProtectedHeader({alg:"HS256"}).setIssuedAt().setExpirationTime("24h").sign(s)}; HttpOnly; Secure; Max-Age=604800; Path=/; SameSite=Strict`,"Content-Type":"text/plain"})}function jh(){const e=new Uint8Array(32);return crypto.getRandomValues(e),Array.from(e,e=>e.toString(16).padStart(2,"0")).join("")}async function Wh(e,t){try{const r=await t.kv.get("secretKey");if(null===r)return console.log("Secret key not found in KV."),!1;const n=(new TextEncoder).encode(r),i=e.headers.get("Cookie")?.match(/(^|;\s*)jwtToken=([^;]*)/),s=i?i[2]:null;if(!s)return console.log("Unauthorized: Token not available!"),!1;const{payload:o}=await Ih(s,n);return console.log(`Successfully authenticated, User ID: ${o.userID}`),!0}catch(e){const t=e instanceof Error?e.message:String(e);return console.log(t),!1}}async function Fh(e,t){let r=await Wh(e,t);const n=await t.kv.get("pwd");if(n&&!r)return aw(!1,401,"Unauthorized.");const i=await e.text();return i===n?aw(!1,400,"Please enter a new Password."):(await t.kv.put("pwd",i),aw(!0,200,"Successfully logged in!",null,{"Set-Cookie":"jwtToken=; Path=/; Secure; SameSite=None; Expires=Thu, 01 Jan 1970 00:00:00 GMT","Content-Type":"text/plain"}))}function Jh(){const{localDNS:e,antiSanctionDNS:t,blockMalware:r,blockPhishing:n,blockCryptominers:i,blockAds:s,blockPorn:o,bypassIran:a,bypassChina:c,bypassRussia:u,bypassOpenAi:l,bypassGoogleAi:d,bypassMicrosoft:w,bypassOracle:h,bypassDocker:A,bypassAdobe:f,bypassEpicGames:p,bypassIntel:E,bypassAmd:B,bypassNvidia:H,bypassAsus:g,bypassHp:m,bypassLenovo:y}=globalThis.settings;return[{rule:r,type:"block",format:"text",geosite:"malware",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-clash-rules/release/malware.txt",geoip:"malware-cidr",geoipURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-clash-rules/release/malware-ip.txt"},{rule:n,type:"block",format:"text",geosite:"phishing",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-clash-rules/release/phishing.txt",geoip:"phishing-cidr",geoipURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-clash-rules/release/phishing-ip.txt"},{rule:i,type:"block",format:"text",geosite:"cryptominers",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-clash-rules/release/cryptominers.txt"},{rule:s,type:"block",format:"text",geosite:"category-ads-all",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-clash-rules/release/category-ads-all.txt"},{rule:o,type:"block",format:"text",geosite:"nsfw",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-clash-rules/release/nsfw.txt"},{rule:a,type:"direct",dns:e,format:"text",geosite:"ir",geoip:"ir-cidr",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-clash-rules/release/ir.txt",geoipURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-clash-rules/release/ircidr.txt"},{rule:c,type:"direct",dns:e,format:"yaml",geosite:"cn",geoip:"cn-cidr",geositeURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/cn.yaml",geoipURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geoip/cn.yaml"},{rule:u,type:"direct",dns:e,format:"yaml",geosite:"ru",geoip:"ru-cidr",geositeURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/category-ru.yaml",geoipURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geoip/ru.yaml"},{rule:l,type:"direct",dns:t,format:"yaml",geosite:"openai",geositeURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/openai.yaml"},{rule:d,type:"direct",dns:t,format:"yaml",geosite:"googleai",geositeURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/google-deepmind.yaml"},{rule:w,type:"direct",dns:t,format:"yaml",geosite:"microsoft",geositeURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/microsoft.yaml"},{rule:h,type:"direct",dns:t,format:"yaml",geosite:"oracle",geositeURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/oracle.yaml"},{rule:A,type:"direct",dns:t,format:"yaml",geosite:"docker",geositeURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/docker.yaml"},{rule:f,type:"direct",dns:t,format:"yaml",geosite:"adobe",geositeURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/adobe.yaml"},{rule:p,type:"direct",dns:t,format:"yaml",geosite:"epicgames",geositeURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/epicgames.yaml"},{rule:E,type:"direct",dns:t,format:"yaml",geosite:"intel",geositeURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/intel.yaml"},{rule:B,type:"direct",dns:t,format:"yaml",geosite:"amd",geositeURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/amd.yaml"},{rule:H,type:"direct",dns:t,format:"yaml",geosite:"nvidia",geositeURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/nvidia.yaml"},{rule:g,type:"direct",dns:t,format:"yaml",geosite:"asus",geositeURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/asus.yaml"},{rule:m,type:"direct",dns:t,format:"yaml",geosite:"hp",geositeURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/hp.yaml"},{rule:y,type:"direct",dns:t,format:"yaml",geosite:"lenovo",geositeURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/lenovo.yaml"}].filter(({rule:e})=>e)}async function Kh(e,t,r){const{localDNS:n,remoteDNS:i,warpRemoteDNS:s,antiSanctionDNS:o,outProxyParams:a,remoteDnsHost:c,enableIPv6:u,fakeDNS:l,allowLANConnection:d}=globalThis.settings,w="localhost"===n?"system":`${n}#DIRECT`,h=void 0,A=void 0,f=`${t?s:i}#${t?`💦 Warp ${r?"Pro ":""}- Best Ping 🚀`:e?"💦 Best Ping 🚀":"✅ Selector"}`,p={},E={};if(e&&!t){const{server:e}=a;Id(e)&&(E[e]=f)}if(c.isDomain&&!t){const{ipv4:e,ipv6:t,host:r}=c;p[r]=e.concatIf(u,t)}const B=void 0,H=rw(Jh()),g=void 0;[...H.block.geosites.map(e=>`rule-set:${e}`),...H.block.domains.map(e=>`+.${e}`)].forEach(e=>p[e]="rcode://refused");const m=[...H.bypass.antiSanctionDNS.geosites.map(e=>`rule-set:${e}`),...H.bypass.antiSanctionDNS.domains.map(e=>`+.${e}`)],y=[...H.bypass.localDNS.geositeGeoips.map(({geosite:e})=>`rule-set:${e}`),...H.bypass.localDNS.geosites.map(e=>`rule-set:${e}`),...H.bypass.localDNS.domains.map(e=>`+.${e}`)];if(m.length){m.forEach(e=>E[e]=`${o}#DIRECT`);const{host:e,isHostDomain:t}=Gd(o);t&&y.push(e)}y.forEach(e=>E[e]=w);const T=void 0;let x="redir-host",v={};l&&(x="fake-ip",v={"fake-ip-range":"198.18.0.1/16","fake-ip-filter-mode":"blacklist","fake-ip-filter":["+.lan","+.local"]});const b=void 0;return{enable:!0,"respect-rules":!0,"use-system-hosts":!1,listen:(d?"0.0.0.0":"127.0.0.1")+":1053",ipv6:u,hosts:p.omitEmpty(),nameserver:[f],"proxy-server-nameserver":[w],"direct-nameserver":[w],"direct-nameserver-follow-policy":!0,"nameserver-policy":E.omitEmpty(),"enhanced-mode":x,...v}}function Yh(e){const{blockUDP443:t}=globalThis.settings,r=void 0,n=tw(Jh()),i=["GEOIP,lan,DIRECT,no-resolve"];return e?t&&i.push("AND,((NETWORK,udp),(DST-PORT,443)),REJECT"):i.push("NETWORK,udp,REJECT"),[...i,...n.block.geosites.map(e=>`RULE-SET,${e},REJECT`),...n.block.domains.map(e=>`DOMAIN-SUFFIX,${e},REJECT`),...n.block.geoips.map(e=>`RULE-SET,${e},REJECT`),...n.block.ips.map(e=>Vh(e,"REJECT")),...n.bypass.geosites.map(e=>`RULE-SET,${e},DIRECT`),...n.bypass.domains.map(e=>`DOMAIN-SUFFIX,${e},DIRECT`),...n.bypass.geoips.map(e=>`RULE-SET,${e},DIRECT`),...n.bypass.ips.map(e=>Vh(e,"DIRECT")),"MATCH,✅ Selector"]}function Zh(){const e=void 0;return Jh().reduce((e,t)=>(Gh(e,t),e),{}).omitEmpty()}function Gh(e,t){const{geosite:r,geoip:n,geositeURL:i,geoipURL:s,format:o}=t,a="text"===o?"txt":o,c=(t,r,n)=>{e[t]={type:"http",format:o,behavior:r,path:`./ruleset/${t}.${a}`,interval:86400,url:n}};r&&i&&c(r,"domain",i),n&&s&&c(n,"ipcidr",s)}function Vh(e,t){const r=(e=Zd(e)?e.replace(/\[|\]/g,""):e).includes("/")?"":Yd(e)?"/32":"/128";return`IP-CIDR,${e}${r},${t}`}function Qh(e,t,r,n,i,s,o,a,c){return{name:e,type:t,server:r.replace(/\[|\]/g,""),port:n,"ip-version":i?"ipv4-prefer":"ipv4",tfo:s,udp:!1,...c,...o,...a}}function qh(e,t,r,n){const{dict:{_VL_:i,_TR_:s},globalConfig:{userID:o,TrPass:a},settings:{fingerprint:c,enableTFO:u,enableIPv6:l,enableECH:d,echServerName:w}}=globalThis,h=qd(n);if(e===s&&!h)return null;const{host:A,sni:f,allowInsecure:p}=Vd(r),E=h?rA(e,"tls",p,f,d,w||void 0,"http/1.1",c):{},B=nA("ws",void 0,Jd(e),A,void 0,2560);return Qh(t,e,r,n,l,u,E,B,e===i?{uuid:o,"packet-encoding":""}:{password:a})}function $h(e,t,r,n,i){const{amneziaNoiseCount:s,amneziaNoiseSizeMin:o,amneziaNoiseSizeMax:a,enableIPv6:c}=globalThis.settings,{host:u,port:l}=Qd(r,!1),d=c?"ipv4-prefer":"ipv4",{warpIPv6:w,reserved:h,publicKey:A,privateKey:f}=e;return{name:t,type:"wireguard",ip:"172.16.0.2/32",ipv6:w,"ip-version":d,"private-key":f,server:n?"162.159.192.1":u,port:n?2408:l,"public-key":A,"allowed-ips":["0.0.0.0/0","::/0"],reserved:h,udp:!0,mtu:1280,"dialer-proxy":n||void 0,"amnezia-wg-option":i?{jc:s,jmin:o,jmax:a}:void 0}}function eA(){const{dict:{_SS_:e,_VL_:t,_TR_:r,_VM_:n},settings:{outProxy:i,outProxyParams:{protocol:s,server:o,port:a,user:c,pass:u,password:l,method:d,uuid:w,flow:h,security:A,type:f,sni:p,fp:E,host:B,path:H,alpn:g,pbk:m,sid:y,headerType:T,serviceName:x,aid:v}}}=globalThis,{searchParams:b}=new URL(i),R=b.get("ed"),M=R?+R:void 0,k=rA(s,A,!1,p||o,!1,void 0,g,E,m,y),S=nA(f,T,H,B,x,M);switch(s){case"http":return Qh("","http",o,a,!1,!1,{},{},{username:c,password:u});case"socks":return Qh("","socks5",o,a,!1,!1,{},{},{username:c,password:u});case e:return Qh("","ss",o,a,!1,!1,{},{},{cipher:d,password:l});case t:return Qh("",t,o,a,!1,!1,k,S,{uuid:w,flow:h});case n:return Qh("",n,o,a,!1,!1,k,S,{uuid:w,cipher:"auto",alterId:v});case r:if("none"===A)return;return Qh("",r,o,a,!1,!1,k,S,{password:l});default:return}}function tA(e,t,r){const{bestWarpInterval:n,bestVLTRInterval:i}=globalThis.settings;return{name:e,type:"url-test",proxies:t,url:"https://www.gstatic.com/generate_204",interval:r?n:i,tolerance:50}}function rA(e,t,r,n,i,s,o,a,c,u){if(!["tls","reality"].includes(t))return{};const{_TR_:l}=globalThis.dict,d={tls:!0,[e===l?"sni":"servername"]:n,"client-fingerprint":"randomized"===a?"random":a,"skip-cert-verify":r};return"tls"===t?{...d,alpn:o?.split(","),"ech-opts":i?{enable:!0,"query-server-name":s}:void 0}:"reality"===t&&c&&u?{...d,"reality-opts":{"public-key":c,"short-id":u}}:{}}function nA(e,t,r="/",n,i,s){switch(r=r?.split("?")[0],e){case"tcp":return"http"===t?{network:"http","http-opts":{method:"GET",path:r.split(","),headers:{Host:n?.split(","),Connection:["keep-alive"],"Content-Type":["application/octet-stream"]}}}:{network:"tcp"};case"ws":return{network:"ws","ws-opts":{path:r,"max-early-data":s,"early-data-header-name":s?"Sec-WebSocket-Protocol":void 0,headers:{Host:n}}};case"httpupgrade":const{_V2_:e}=globalThis.dict;return{network:"ws","ws-opts":{[`${e}-http-upgrade`]:!0,[`${e}-http-upgrade-fast-open`]:!0,path:r,headers:{Host:n}}};case"grpc":return{network:"grpc","grpc-opts":{"grpc-service-name":i}};default:return{}}}var iA={enable:!0,stack:"mixed","auto-route":!0,"strict-route":!0,"auto-detect-interface":!0,"dns-hijack":["any:53","tcp://any:53"],mtu:9e3},sA={enable:!0,"force-dns-mapping":!0,"parse-pure-ip":!0,"override-destination":!0,sniff:{HTTP:{ports:[80,8080,8880,2052,2082,2086,2095]},TLS:{ports:[443,8443,2053,2083,2087,2096]}}};async function oA(e,t,r,n,i,s,o){const{logLevel:a,allowLANConnection:c}=globalThis.settings,u=s?{}:{"disable-keep-alive":!1,"keep-alive-idle":10,"keep-alive-interval":15,"tcp-concurrent":!0},l={"mixed-port":7890,ipv6:!0,"allow-lan":c,"unified-delay":!1,"log-level":a.replace("none","silent"),mode:"rule",...u,"geo-auto-update":!0,"geo-update-interval":168,"external-controller":"127.0.0.1:9090","external-controller-cors":{"allow-origins":["*"],"allow-private-network":!0},"external-ui":"ui","external-ui-url":"https://github.com/MetaCubeX/metacubexd/archive/refs/heads/gh-pages.zip",profile:{"store-selected":!0,"store-fake-ip":!0},dns:await Kh(i,s,o),tun:iA,sniffer:sA,proxies:e,"proxy-groups":[{name:"✅ Selector",type:"select",proxies:t}],"rule-providers":Zh(),rules:Yh(s),ntp:{enable:!0,server:"time.cloudflare.com",port:123,interval:30}},d=void 0,w=tA(s?`💦 Warp ${o?"Pro ":""}- Best Ping 🚀`:"💦 Best Ping 🚀",r,s);return l["proxy-groups"].push(w),s&&l["proxy-groups"].push(tA(`💦 WoW ${o?"Pro ":""}- Best Ping 🚀`,n,s)),i&&l["proxy-groups"].push(tA("💦 🔗 Best Ping 🚀",n,s)),l}async function aA(){const{outProxy:e,ports:t}=globalThis.settings,r=e?eA():void 0,n=!!r,i=[],s=[],o=[],a=await Xd(!1),c=zd(),u=["💦 Best Ping 🚀"].concatIf(n,"💦 🔗 Best Ping 🚀");c.forEach(e=>{let c=1;t.forEach(t=>{a.forEach(a=>{const l=jd(c,t,a,e,!1,!1),d=qh(e,l,a,t);if(d){if(i.push(l),u.push(l),o.push(d),n){const n=jd(c,t,a,e,!1,!0);let i=structuredClone(r);i.name=n,i["dialer-proxy"]=l,o.push(i),s.push(n),u.push(n)}c++}})})});const l=await oA(o,u,i,s,n,!1,!1);return new Response(JSON.stringify(l,null,4),{status:200,headers:{"Content-Type":"text/plain;charset=utf-8","Cache-Control":"no-store","CDN-Cache-Control":"no-store"}})}async function cA(e,t,r){const{warpEndpoints:n}=globalThis.settings,{warpAccounts:i}=await cw(e,t),s=[],o=[],a=[],c=r?"Pro ":"",u=[`💦 Warp ${c}- Best Ping 🚀`,`💦 WoW ${c}- Best Ping 🚀`];n.forEach((e,t)=>{const n=`💦 ${t+1} - Warp ${c}🇮🇷`;s.push(n);const l=`💦 ${t+1} - WoW ${c}🌍`;o.push(l),u.push(n,l);const d=$h(i[0],n,e,"",r),w=$h(i[1],l,e,n,!1);a.push(d,w)});const l=await oA(a,u,s,o,!1,!0,r);return new Response(JSON.stringify(l,null,4),{status:200,headers:{"Content-Type":"text/plain;charset=utf-8","Cache-Control":"no-store","CDN-Cache-Control":"no-store"}})}function uA(){const{localDNS:e,antiSanctionDNS:t,blockMalware:r,blockPhishing:n,blockCryptominers:i,blockAds:s,blockPorn:o,bypassIran:a,bypassChina:c,bypassRussia:u,bypassOpenAi:l,bypassGoogleAi:d,bypassMicrosoft:w,bypassOracle:h,bypassDocker:A,bypassAdobe:f,bypassEpicGames:p,bypassIntel:E,bypassAmd:B,bypassNvidia:H,bypassAsus:g,bypassHp:m,bypassLenovo:y}=globalThis.settings;return[{rule:r,type:"block",geosite:"geosite-malware",geoip:"geoip-malware",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-malware.srs",geoipURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geoip-malware.srs"},{rule:n,type:"block",geosite:"geosite-phishing",geoip:"geoip-phishing",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-phishing.srs",geoipURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geoip-phishing.srs"},{rule:i,type:"block",geosite:"geosite-cryptominers",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-cryptominers.srs"},{rule:s,type:"block",geosite:"geosite-category-ads-all",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-category-ads-all.srs"},{rule:o,type:"block",geosite:"geosite-nsfw",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-nsfw.srs"},{rule:a,type:"direct",dns:e,geosite:"geosite-ir",geoip:"geoip-ir",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-ir.srs",geoipURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geoip-ir.srs"},{rule:c,type:"direct",dns:e,geosite:"geosite-cn",geoip:"geoip-cn",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-cn.srs",geoipURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geoip-cn.srs"},{rule:u,type:"direct",dns:e,geosite:"geosite-category-ru",geoip:"geoip-ru",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-category-ru.srs",geoipURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geoip-ru.srs"},{rule:l,type:"direct",dns:t,geosite:"geosite-openai",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-openai.srs"},{rule:d,type:"direct",dns:t,geosite:"geosite-google-deepmind",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-google-deepmind.srs"},{rule:w,type:"direct",dns:t,geosite:"geosite-microsoft",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-microsoft.srs"},{rule:h,type:"direct",dns:t,geosite:"geosite-oracle",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-oracle.srs"},{rule:A,type:"direct",dns:t,geosite:"geosite-docker",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-docker.srs"},{rule:f,type:"direct",dns:t,geosite:"geosite-adobe",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-adobe.srs"},{rule:p,type:"direct",dns:t,geosite:"geosite-epicgames",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-epicgames.srs"},{rule:E,type:"direct",dns:t,geosite:"geosite-intel",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-intel.srs"},{rule:B,type:"direct",dns:t,geosite:"geosite-amd",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-amd.srs"},{rule:H,type:"direct",dns:t,geosite:"geosite-nvidia",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-nvidia.srs"},{rule:g,type:"direct",dns:t,geosite:"geosite-asus",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-asus.srs"},{rule:m,type:"direct",dns:t,geosite:"geosite-hp",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-hp.srs"},{rule:y,type:"direct",dns:t,geosite:"geosite-lenovo",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-lenovo.srs"}].filter(({rule:e})=>e)}async function lA(e,t){const{localDNS:r,remoteDNS:n,warpRemoteDNS:i,antiSanctionDNS:s,outProxyParams:o,remoteDnsHost:a,enableIPv6:c,fakeDNS:u,enableECH:l,echServerName:d}=globalThis.settings,w=void 0,h=new URL(n).protocol.replace(":",""),A=[{type:e?"udp":h,server:e?i:a.host,detour:e?"💦 Warp - Best Ping 🚀":t?"💦 Best Ping 🚀":"✅ Selector",tag:"dns-remote"}];"localhost"===r?dA(A,"local","dns-direct",void 0,void 0,void 0):dA(A,"udp","dns-direct",r,void 0,void 0);const f=[{clash_mode:"Direct",server:"dns-direct"},{clash_mode:"Global",server:"dns-remote"}];if(l){const{hostName:e}=globalThis.httpConfig;wA(f,"dns-direct",void 0,void 0,void 0,[d||e],["HTTPS"])}if(t&&!e){const{server:e}=o;Id(e)&&f.push({domain:e,server:"dns-remote"})}if(a.isDomain&&!e){const{ipv4:e,ipv6:t,host:r}=a,n=void 0;dA(A,"hosts","hosts",void 0,void 0,void 0,r,e.concatIf(c,t)),f.unshift({ip_accept_any:!0,server:"hosts"})}const p=void 0,E=rw(uA()),B=void 0;[...E.block.geosites,...E.block.domains].length&&wA(f,"reject",void 0,E.block.geosites,void 0,E.block.domains),E.bypass.localDNS.geositeGeoips.forEach(({geosite:e,geoip:t})=>{wA(f,"dns-direct",void 0,[e],t,void 0)});const H=void 0;[...E.bypass.localDNS.geosites,...E.bypass.localDNS.domains].length&&wA(f,"dns-direct",void 0,E.bypass.localDNS.geosites,void 0,E.bypass.localDNS.domains);const g=void 0;if([...E.bypass.antiSanctionDNS.geosites,...E.bypass.antiSanctionDNS.domains].length){const e=Gd(s);wA(f,"dns-anti-sanction",void 0,E.bypass.antiSanctionDNS.geosites,void 0,E.bypass.antiSanctionDNS.domains),e.isHostDomain?dA(A,"https","dns-anti-sanction",e.host,void 0,"dns-direct"):dA(A,"udp","dns-anti-sanction",s,void 0,void 0)}return u&&(dA(A,"fakeip","dns-fake",void 0,void 0,void 0,void 0,void 0,"198.18.0.0/15",c?"fc00::/18":void 0),wA(f,"dns-fake","tun-in",void 0,void 0,void 0,["A","AAAA"])),{servers:A,rules:f,strategy:c?"prefer_ipv4":"ipv4_only",independent_cache:!0}}function dA(e,t,r,n,i,s,o,a,c,u){e.push({type:t,server:n,detour:i,domain_resolver:s?{server:s,strategy:"ipv4_only"}:void 0,predefined:o?{[o]:a}:void 0,inet4_range:c,inet6_range:u,tag:r})}function wA(e,t,r,n,i,s,o){const a=n&&i;e.push({inbound:r,type:a?"logical":void 0,mode:a?"and":void 0,rules:a?[{rule_set:n},{rule_set:i}]:void 0,rule_set:n?.length&&!i?n:void 0,domain_suffix:s?.omitEmpty(),query_type:o,action:"reject"===t?"reject":"route",server:"reject"===t?void 0:t})}function hA(e,t){const{blockUDP443:r,enableIPv6:n}=globalThis.settings,i=[{ip_cidr:"172.19.0.2",action:"hijack-dns"},{clash_mode:"Direct",outbound:"direct"},{clash_mode:"Global",outbound:"✅ Selector"},{action:"sniff"},{protocol:"dns",action:"hijack-dns"},{ip_is_private:!0,outbound:"direct"}];e?r&&AA(i,"reject",void 0,void 0,void 0,void 0,"udp","quic",443):AA(i,"reject",void 0,void 0,void 0,void 0,"udp");const s=uA(),o=tw(s),a=void 0;[...o.block.geosites,...o.block.domains].length&&AA(i,"reject",o.block.domains,void 0,o.block.geosites);const c=void 0;[...o.block.geoips,...o.block.ips].length&&AA(i,"reject",void 0,o.block.ips,void 0,o.block.geoips);const u=void 0;[...o.bypass.geosites,...o.bypass.domains].length&&AA(i,"direct",o.bypass.domains,void 0,o.bypass.geosites);const l=void 0;[...o.bypass.geoips,...o.bypass.ips].length&&AA(i,"direct",void 0,o.bypass.ips,void 0,o.bypass.geoips);const d=n?"prefer_ipv4":"ipv4_only",w=void 0;return{rules:i,rule_set:s.reduce((e,t)=>(fA(e,t),e),[]).omitEmpty(),auto_detect_interface:!0,default_domain_resolver:{server:"dns-direct",strategy:d,rewrite_ttl:60},final:"✅ Selector"}}function AA(e,t,r,n,i,s,o,a,c){e.push({rule_set:i||s,domain_suffix:r?.length?r:void 0,ip_cidr:n?.length?n:void 0,network:o,protocol:a,port:c,action:"reject"===t?"reject":"route",outbound:"direct"===t?"direct":void 0})}function fA(e,t){const{geosite:r,geositeURL:n,geoip:i,geoipURL:s}=t,o=(t,r)=>e.push({type:"remote",tag:t,format:"binary",url:r,download_detour:"direct"});r&&n&&o(r,n),i&&s&&o(i,s)}function pA(e,t,r,n,i,s,o,a){return{tag:e,type:t,server:r,server_port:n,tcp_fast_open:i,...s,tls:o,transport:a}}function EA(e,t,r,n,i){const{dict:{_VL_:s},globalConfig:{userID:o,TrPass:a},settings:{fingerprint:c,enableTFO:u,enableECH:l,echServerName:d}}=globalThis,{host:w,sni:h,allowInsecure:A}=Vd(r),f=yA("ws","none",Jd(e),w,void 0,2560),p=qd(n)?mA("tls",i,A,h,l&&!i,d||void 0,"http/1.1",c):void 0;return pA(t,e,r,n,u,e===s?{uuid:o,packet_encoding:"",network:"tcp"}:{password:a,network:"tcp"},p,f)}function BA(e,t,r,n){const{host:i,port:s}=Qd(r,!1),{warpIPv6:o,reserved:a,publicKey:c,privateKey:u}=e;return{tag:t,detour:n||void 0,type:"wireguard",address:["172.16.0.2/32",o],mtu:1280,peers:[{address:n?"162.159.192.1":i,port:n?2408:s,public_key:c,reserved:Kd(a),allowed_ips:["0.0.0.0/0","::/0"],persistent_keepalive_interval:5}],private_key:u}}function HA(){const{dict:{_VL_:e,_TR_:t,_SS_:r,_VM_:n},settings:{outProxy:i,outProxyParams:{protocol:s,server:o,port:a,user:c,pass:u,password:l,method:d,uuid:w,flow:h,security:A,type:f,sni:p,fp:E,host:B,path:H,alpn:g,pbk:m,sid:y,headerType:T,serviceName:x,aid:v}}}=globalThis,{searchParams:b}=new URL(i),R=b.get("ed"),M=R?+R:void 0,k=mA(A,!1,!1,p||o,!1,void 0,g,E,m,y),S=yA(f,T,H,B,x,M);switch(s){case"http":return pA("",s,o,a,!1,{username:c,password:u});case"socks":return pA("",s,o,a,!1,{username:c,password:u,version:"5",network:"tcp"});case r:return pA("",s,o,a,!1,{method:d,password:l,network:"tcp"});case e:return pA("",s,o,a,!1,{uuid:w,flow:h,network:"tcp"},k,S);case n:return pA("",s,o,a,!1,{uuid:w,security:"auto",alter_id:v,network:"tcp"},k,S);case t:return pA("",s,o,a,!1,{password:l,network:"tcp"},k,S);default:return}}function gA(e,t,r){const{bestWarpInterval:n,bestVLTRInterval:i}=globalThis.settings;return{type:"urltest",tag:e,outbounds:t,url:"https://www.gstatic.com/generate_204",interrupt_exist_connections:!1,interval:r?`${n}s`:`${i}s`}}function mA(e,t,r,n,i,s,o,a,c,u){if(!["tls","reality"].includes(e))return;const l=o?.split(",").filter(e=>"h2"!==e),d={enabled:!0,server_name:n,record_fragment:t,insecure:r,alpn:l,utls:{enabled:!!a,fingerprint:a},ech:i?{enabled:!0,query_server_name:s}:void 0};return"tls"===e?d:"reality"===e&&c&&u?{...d,reality:{enabled:!0,public_key:c,short_id:u}}:void 0}function yA(e,t,r="/",n,i,s){switch(r=r?.split("?")[0],e){case"tcp":return"http"===t?{type:"http",host:n?.split(","),path:r,method:"GET",headers:{Connection:["keep-alive"],"Content-Type":["application/octet-stream"]}}:void 0;case"ws":return{type:"ws",path:r?.split("?ed=")[0],max_early_data:s,early_data_header_name:s?"Sec-WebSocket-Protocol":void 0,headers:{Host:n}};case"httpupgrade":return{type:"httpupgrade",host:n,path:r?.split("?ed=")[0]};case"grpc":return{type:"grpc",service_name:i};default:return}}var TA={type:"tun",tag:"tun-in",address:["172.19.0.1/28"],mtu:9e3,auto_route:!0,strict_route:!0,stack:"mixed"};function xA(){const{allowLANConnection:e}=globalThis.settings;return{type:"mixed",tag:"mixed-in",listen:e?"0.0.0.0":"127.0.0.1",listen_port:2080}}async function vA(e,t,r,n,i,s,o){const{logLevel:a}=globalThis.settings,c={log:{disabled:"none"===a,level:"none"===a?void 0:"warning"===a?"warn":a,timestamp:!0},dns:await lA(s,o),inbounds:[TA,xA()],outbounds:[...e,{type:"selector",tag:"✅ Selector",outbounds:r,interrupt_exist_connections:!1},{type:"direct",tag:"direct"}],endpoints:t.omitEmpty(),route:hA(s,o),ntp:{enabled:!0,server:"time.cloudflare.com",server_port:123,domain_resolver:"dns-direct",interval:"30m",write_to_system:!1},experimental:{cache_file:{enabled:!0,store_fakeip:!0},clash_api:{external_controller:"127.0.0.1:9090",external_ui:"ui",default_mode:"Rule",external_ui_download_url:"https://github.com/MetaCubeX/metacubexd/archive/refs/heads/gh-pages.zip",external_ui_download_detour:"direct"}}},u=void 0,l=gA(s?"💦 Warp - Best Ping 🚀":"💦 Best Ping 🚀",n,s);return c.outbounds.push(l),s&&c.outbounds.push(gA("💦 WoW - Best Ping 🚀",i,s)),o&&c.outbounds.push(gA("💦 🔗 Best Ping 🚀",i,s)),c}async function bA(e){const{outProxy:t,ports:r}=globalThis.settings,n=t?HA():void 0,i=!!n,s=[],o=[],a=[],c=zd(),u=await Xd(e),l=r.filter(t=>!e||qd(t)),d=["💦 Best Ping 🚀"].concatIf(i,"💦 🔗 Best Ping 🚀");c.forEach(t=>{let r=1;l.forEach(c=>{u.forEach(u=>{const l=jd(r,c,u,t,e,!1),w=EA(t,l,u,c,e);if(a.push(w),s.push(l),d.push(l),i){const i=jd(r,c,u,t,e,!0),s=structuredClone(n);s.tag=i,s.detour=l,a.push(s),o.push(i),d.push(i)}r++})})});const w=await vA(a,[],d,s,o,!1,i);return new Response(JSON.stringify(w,null,4),{status:200,headers:{"Content-Type":"text/plain;charset=utf-8","Cache-Control":"no-store","CDN-Cache-Control":"no-store"}})}async function RA(e,t){const{warpEndpoints:r}=globalThis.settings,{warpAccounts:n}=await cw(e,t),i=[],s=[],o=[],a=["💦 Warp - Best Ping 🚀","💦 WoW - Best Ping 🚀"];r.forEach((e,t)=>{const r=`💦 ${t+1} - Warp 🇮🇷`;i.push(r);const c=`💦 ${t+1} - WoW 🌍`;s.push(c),a.push(r,c);const u=BA(n[0],r,e),l=BA(n[1],c,e,r);o.push(u,l)});const c=await vA([],o,a,i,s,!0,!1);return new Response(JSON.stringify(c,null,4),{status:200,headers:{"Content-Type":"text/plain;charset=utf-8","Cache-Control":"no-store","CDN-Cache-Control":"no-store"}})}function MA(){const{localDNS:e,antiSanctionDNS:t,blockMalware:r,blockPhishing:n,blockCryptominers:i,blockAds:s,blockPorn:o,bypassIran:a,bypassChina:c,bypassRussia:u,bypassOpenAi:l,bypassGoogleAi:d,bypassMicrosoft:w,bypassOracle:h,bypassDocker:A,bypassAdobe:f,bypassEpicGames:p,bypassIntel:E,bypassAmd:B,bypassNvidia:H,bypassAsus:g,bypassHp:m,bypassLenovo:y}=globalThis.settings;return[{rule:s,type:"block",geosite:"geosite:category-ads-all"},{rule:s,type:"block",geosite:"geosite:category-ads-ir"},{rule:o,type:"block",geosite:"geosite:category-porn"},{rule:r,type:"block",geosite:"geosite:malware",geoip:"geoip:malware"},{rule:n,type:"block",geosite:"geosite:phishing",geoip:"geoip:phishing"},{rule:i,type:"block",geosite:"geosite:cryptominers"},{rule:a,type:"direct",geosite:"geosite:category-ir",geoip:"geoip:ir",dns:e},{rule:c,type:"direct",geosite:"geosite:cn",geoip:"geoip:cn",dns:e},{rule:u,type:"direct",geosite:"geosite:category-ru",geoip:"geoip:ru",dns:e},{rule:l,type:"direct",geosite:"geosite:openai",dns:t},{rule:d,type:"direct",geosite:"geosite:google-deepmind",dns:t},{rule:w,type:"direct",geosite:"geosite:microsoft",dns:t},{rule:h,type:"direct",geosite:"geosite:oracle",dns:t},{rule:A,type:"direct",geosite:"geosite:docker",dns:t},{rule:f,type:"direct",geosite:"geosite:adobe",dns:t},{rule:p,type:"direct",geosite:"geosite:epicgames",dns:t},{rule:E,type:"direct",geosite:"geosite:intel",dns:t},{rule:B,type:"direct",geosite:"geosite:amd",dns:t},{rule:H,type:"direct",geosite:"geosite:nvidia",dns:t},{rule:g,type:"direct",geosite:"geosite:asus",dns:t},{rule:m,type:"direct",geosite:"geosite:hp",dns:t},{rule:y,type:"direct",geosite:"geosite:lenovo",dns:t}].filter(({rule:e})=>e)}async function kA(e,t,r,n,i,s){const{localDNS:o,remoteDNS:a,warpRemoteDNS:c,antiSanctionDNS:u,remoteDnsHost:l,enableIPv6:d,fakeDNS:w}=globalThis.settings,h={},A=[],f=[];if(l.isDomain&&!t&&!r){const{ipv4:e,ipv6:t,host:r}=l;h[r]=e.concatIf(d,t)}if(n){const{ipv4:e,ipv6:t}=await Nd(n,d);h[n]=[...e,...t]}let p=!0,E=r?c:a;t&&(E=`https://${i}/dns-query`,i&&s&&(h[i]=s),p=!1);const B=SA(E,void 0,void 0,void 0,void 0,"remote-dns");A.push(B);const H=void 0,g=rw(MA()),m=void 0;[...g.block.geosites,...g.block.domains.map(e=>`domain:${e}`)].forEach(e=>h[e]="#3"),g.bypass.localDNS.geositeGeoips.forEach(({geosite:e,geoip:t})=>{const r=SA(o,[e],[t],p);A.push(r),f.push(e)});const y=[...g.bypass.antiSanctionDNS.geosites,...g.bypass.antiSanctionDNS.domains.map(e=>`domain:${e}`)],T=[...g.bypass.localDNS.geosites,...g.bypass.localDNS.domains.map(e=>`domain:${e}`),...e.filter(Id).map(e=>`full:${e}`)];if(y.length){const e=SA(u,y,void 0,p,!0);A.push(e);const{host:t,isHostDomain:r}=Gd(u);r&&T.push(`full:${t}`)}if(s?.filter(Id).forEach(e=>T.push(`full:${e}`)),T.length){const e=SA(o,T,void 0,p);A.push(e),f.push(...T)}if(w){const e=f.length?SA("fakedns",f,void 0,!1,void 0):"fakedns";A.unshift(e)}return{hosts:h.omitEmpty(),servers:A,queryStrategy:r&&!d?"UseIPv4":"UseIP",tag:"dns"}}function SA(e,t,r,n,i,s){return{address:e,domains:t,expectIPs:r,skipFallback:n,finalQuery:i,tag:s}}function CA(e,t,r,n){const{blockUDP443:i}=globalThis.settings,s=[{inboundTag:["mixed-in"],port:53,outboundTag:"dns-out",type:"field"},{inboundTag:["dns-in"],outboundTag:"dns-out",type:"field"}],o=void 0,a=t?e?"all-chains":"all-proxies":e?"chain":r?"direct":"proxy",c=void 0;_A(s,["remote-dns"],void 0,void 0,void 0,void 0,void 0,t?"all-proxies":"proxy",t),_A(s,["dns"],void 0,void 0,void 0,void 0,void 0,"direct",!1),_A(s,void 0,["geosite:private"],void 0,void 0,void 0,void 0,"direct",!1),_A(s,void 0,void 0,["geoip:private"],void 0,void 0,void 0,"direct",!1),n||r?i&&_A(s,void 0,void 0,void 0,443,"udp",void 0,"block",!1):_A(s,void 0,void 0,void 0,void 0,"udp",void 0,"block",!1);const u=void 0,l=tw(MA()),d=[...l.block.geosites,...l.block.domains.map(e=>`domain:${e}`)];d.length&&_A(s,void 0,d,void 0,void 0,void 0,void 0,"block");const w=[...l.block.geoips,...l.block.ips];w.length&&_A(s,void 0,void 0,w,void 0,void 0,void 0,"block");const h=[...l.bypass.geosites,...l.bypass.domains.map(e=>`domain:${e}`)];h.length&&_A(s,void 0,h,void 0,void 0,void 0,void 0,"direct");const A=[...l.bypass.geoips,...l.bypass.ips];A.length&&_A(s,void 0,void 0,A,void 0,void 0,void 0,"direct"),r&&(_A(s,void 0,void 0,void 0,void 0,"tcp",["tls"],"proxy",!1),_A(s,void 0,void 0,void 0,void 0,"tcp",["http"],"http-fragment",!1),_A(s,void 0,void 0,void 0,void 0,"udp",["quic"],"udp-noise",!1),_A(s,void 0,void 0,void 0,"443,2053,2083,2087,2096,8443","udp",void 0,"udp-noise",!1));const f=void 0;return _A(s,void 0,void 0,void 0,void 0,n||r?"tcp,udp":"tcp",void 0,a,t),s}var _A=(e,t,r,n,i,s,o,a,c)=>e.push({inboundTag:t,domain:r,ip:n,port:i,network:s,protocol:o,balancerTag:c?a:void 0,outboundTag:c?void 0:a,type:"field"});function OA(e,t,r){const n=void 0;return{listen:e?"0.0.0.0":"127.0.0.1",port:10808,protocol:"socks",settings:{auth:"noauth",udp:!0},sniffing:{destOverride:["http","tls"].concatIf(t,"quic").concatIf(r,"fakedns"),enabled:!0,routeOnly:!0},tag:"mixed-in"}}function LA(e){return{listen:e?"0.0.0.0":"127.0.0.1",port:10853,protocol:"dokodemo-door",settings:{address:"1.1.1.1",network:"tcp,udp",port:53},tag:"dns-in"}}function PA(e,t,r,n,i){return{protocol:e,mux:r?{enabled:!0,concurrency:8,xudpConcurrency:16,xudpProxyUDP443:"reject"}:void 0,settings:n,streamSettings:i,tag:t}}function DA(e,t,r,n,i,s){const{fragmentPackets:o,fragmentLengthMin:a,fragmentLengthMax:c,fragmentIntervalMin:u,fragmentIntervalMax:l,fragmentMaxSplitMin:d,fragmentMaxSplitMax:w,enableTFO:h,xrayUdpNoises:A,enableIPv6:f}=globalThis.settings;let p={},E;if(e&&(p={fragment:{packets:s||o,length:n||nw(a,c),interval:i||nw(u,l),maxSplit:nw(d,w)}},E={sockopt:XA(!0,h,"UseIP")}),t){const t=[];A.forEach(e=>{const{count:r,...n}=e;t.push(...Array.from({length:r},()=>n))}),p={...p,noises:t,domainStrategy:e?void 0:f?"UseIPv4v6":"UseIPv4"}}return{protocol:"freedom",settings:p,streamSettings:E,tag:r}}function IA(e,t,r,n){const{settings:{fingerprint:i,enableTFO:s,enableECH:o,echServerName:a},globalConfig:{userID:c,TrPass:u},dict:{_VL_:l}}=globalThis,d=qd(r),{host:w,sni:h,allowInsecure:A}=Vd(t),f=d?jA(h,i,"http/1.1",A,o&&!n,a||void 0):void 0,p={network:"ws",...zA("ws","none",`${Jd(e)}?ed=2560`,w),security:d?"tls":"none",tlsSettings:f,sockopt:n?XA(!1,!1,void 0,"fragment"):XA(!0,s,"UseIP")};return PA(e,"proxy",!1,e===l?{vnext:[{address:t,port:r,users:[{id:c,encryption:"none"}]}]}:{servers:[{address:t,port:r,password:u}]},p)}function NA(e,t,r,n){const{warpIPv6:i,reserved:s,publicKey:o,privateKey:a}=e,{client:c}=globalThis.httpConfig;let u={address:["172.16.0.2/32",i],mtu:1280,peers:[{endpoint:r?"162.159.192.1:2408":t,publicKey:o,keepAlive:5}],reserved:Kd(s),secretKey:a};const l=r?"proxy":n&&"xray"===c?"udp-noise":"",d=l?{sockopt:XA(!1,!1,void 0,l)}:void 0;if("xray-knocker"===c&&!r){const{knockerNoiseMode:e,noiseCountMin:t,noiseCountMax:r,noiseSizeMin:n,noiseSizeMax:i,noiseDelayMin:s,noiseDelayMax:o}=globalThis.settings;u={...u,wnoise:e,wnoisecount:nw(t,r),wpayloadsize:nw(n,i),wnoisedelay:nw(s,o)}}return{protocol:"wireguard",settings:u,streamSettings:d,tag:r?"chain":"proxy"}}function UA(){const{dict:{_VL_:e,_TR_:t,_SS_:r,_VM_:n},settings:{outProxyParams:{protocol:i,server:s,port:o,user:a,pass:c,password:u,method:l,uuid:d,flow:w,security:h,type:A,sni:f,fp:p,host:E,path:B,alpn:H,pbk:g,sid:m,spx:y,headerType:T,serviceName:x,mode:v,authority:b}}}=globalThis,R={network:A||"raw",...zA(A,T,B,E,x,v,b),security:h,tlsSettings:"tls"===h?jA(f||s,p,H,!1,!1,void 0):void 0,realitySettings:"reality"===h?WA(f,p,g,m,y):void 0,sockopt:XA(!1,!1,"UseIPv4","proxy")},M=!("reality"===h||"grpc"===A);switch(i){case"http":case"socks":return PA(i,"chain",M,{servers:[{address:s,port:o,users:[{user:a,pass:c}]}]},R);case r:return PA(i,"chain",M,{servers:[{address:s,port:o,method:l,password:u}]},R);case e:return PA(i,"chain",M,{vnext:[{address:s,port:o,users:[{id:d,flow:w,encryption:"none"}]}]},R);case n:return PA(i,"chain",M,{vnext:[{address:s,port:o,users:[{id:d,security:"auto"}]}]},R);case t:return PA(i,"chain",M,{servers:[{address:s,port:o,password:u}]},R);default:return}}function zA(e,t,r="/",n,i,s,o){switch(e){case"tcp":case"raw":return{rawSettings:{header:"http"===t?{type:"http",request:{headers:{Host:n?.split(","),"Accept-Encoding":["gzip, deflate"],Connection:["keep-alive"],Pragma:"no-cache"},path:r.split(","),method:"GET",version:"1.1"}}:{type:"none"}}};case"ws":return{wsSettings:{host:n,path:r}};case"httpupgrade":return{httpupgradeSettings:{host:n,path:r}};case"grpc":return{grpcSettings:{authority:o,multiMode:"multi"===s,serviceName:i}};default:return{}}}function XA(e,t,r,n){return{domainStrategy:r,dialerProxy:n,tcpFastOpen:t||void 0,happyEyeballs:e?{tryDelayMs:250,prioritizeIPv6:!1,interleave:2,maxConcurrentTry:4}:void 0}}function jA(e,t,r,n,i,s){const{localDNS:o}=globalThis.settings,a="localhost"===o?"8.8.8.8":o;return{serverName:e,fingerprint:t,alpn:r?.split(","),allowInsecure:n,echConfigList:i?s?`${s}+udp://${a}`:`udp://${a}`:void 0}}function WA(e,t,r,n,i){return{serverName:e,fingerprint:t,publicKey:r,shortId:n,spiderX:i,show:!1,allowInsecure:!1}}function FA(e,t,r){return{tag:e,selector:[t],strategy:{type:"leastPing"},fallbackTag:r?"proxy-2":void 0}}async function JA(e,t,r,n,i,s,o,a,c,u,l){const{fakeDNS:d,bestWarpInterval:w,bestVLTRInterval:h,logLevel:A,allowLANConnection:f}=globalThis.settings;let p,E;r&&(p=[FA("all-proxies","proxy",i)].concatIf(n,FA("all-chains","chain",!1)),E={subjectSelector:n?["chain","proxy"]:["proxy"],probeUrl:"https://www.gstatic.com/generate_204",probeInterval:`${s?w:h}s`,enableConcurrency:!0});const B=void 0;return{remarks:e,version:{min:"25.10.15"},log:{loglevel:A},dns:await kA(a,o,s,c,u,l),inbounds:[OA(f,o,d),LA(f)],outbounds:[...t,{protocol:"dns",settings:{nonIPQuery:"reject"},tag:"dns-out"},{protocol:"freedom",settings:{domainStrategy:"UseIP"},tag:"direct"},{protocol:"blackhole",settings:{response:{type:"http"}},tag:"block"}],routing:{domainStrategy:"IPIfNonMatch",rules:CA(n,r,o,s),balancers:p},observatory:E,policy:{levels:{0:{connIdle:300,handshake:4,uplinkOnly:1,downlinkOnly:1}},system:{statsOutboundUplink:!0,statsOutboundDownlink:!0}},stats:{}}}async function KA(e,t,r,n,i){const s=!!n.length,o=void 0,a=void 0,c=`💦 ${s?"🔗 ":""}Best Ping${i?" F":""} 🚀`,u=[...n,...r];if(i){const e=DA(!0,!1,"fragment");u.push(e)}const l=await JA(c,u,!0,s,!0,!1,!1,t);s&&await KA(e,t,r,[],i),e.push(l)}async function YA(e,t,r){const{httpConfig:{hostName:n},settings:{fragmentIntervalMin:i,fragmentIntervalMax:s}}=globalThis,o=!!r,a=[],c=void 0;["1-5","1-10","10-20","20-30","30-40","40-50","50-60","60-70","70-80","80-90","90-100","10-30","20-40","30-50","40-60","50-70","60-80","70-90","80-100","100-200"].forEach((e,n)=>{if(o){const e=QA(r,`chain-${n+1}`,`proxy-${n+1}`);a.push(e)}const c=QA(t,`proxy-${n+1}`,`fragment-${n+1}`),u=void 0,l=DA(!0,!1,`fragment-${n+1}`,e,nw(i,s));a.push(c,l)});const u=o?"🔗 ":"",l=await JA(`💦 ${u}Best Fragment 😎`,a,!0,o,!1,!1,!1,[],n);r&&await YA(e,t),e.push(l)}async function ZA(e){const t=DA(!0,!1,"proxy"),r=DA(!1,!0,"udp-noise"),n=void 0,i=[t,DA(!0,!1,"http-fragment",void 0,void 0,"1-1"),r],s=await JA("💦 1 - Workerless ⭐",i,!1,!1,!1,!1,!0,[],void 0,"cloudflare-dns.com",["cloudflare.com"]),o=await JA("💦 2 - Workerless ⭐",i,!1,!1,!1,!1,!0,[],void 0,"dns.google",["8.8.8.8","8.8.4.4"]);e.push(s,o)}async function GA(e){const{outProxy:t,ports:r}=globalThis.settings,n=t?UA():void 0,i=await Xd(e),s=r.filter(t=>!e||qd(t)),o=zd(),a=[],c=[],u=[],l=e?[DA(!0,!1,"fragment")]:[];let d=1;for(const t of o){let r=1;for(const o of s)for(const s of i){const i=IA(t,s,o,e),w=[i,...l],h=QA(i,`proxy-${d}`);c.push(h);const A=jd(r,o,s,t,e,!1),f=await JA(A,w,!1,!1,!1,!1,!1,[s]);if(a.push(f),n){const i=jd(r,o,s,t,e,!0),c=await JA(i,[n,...w],!1,!0,!1,!1,!1,[s]);a.push(c);const l=QA(n,`chain-${d}`,`proxy-${d}`);u.push(l)}r++,d++}}return await KA(a,i,c,u,e),e&&(await YA(a,c[0],n),await ZA(a)),new Response(JSON.stringify(a,null,4),{status:200,headers:{"Content-Type":"text/plain;charset=utf-8","Cache-Control":"no-store","CDN-Cache-Control":"no-store"}})}async function VA(e,t,r,n){const{warpEndpoints:i}=globalThis.settings,{warpAccounts:s}=await cw(e,t),o=r?" Pro ":" ",a=[],c=[],u=[],l=[],d=r&&!n?[DA(!1,!0,"udp-noise")]:[];for(const[e,t]of i.entries()){const{host:n}=Qd(t);Id(n)&&l.push(n);const i=NA(s[0],t,!1,r),w=NA(s[1],t,!0,r),h=await JA(`💦 ${e+1} - Warp${o}🇮🇷`,[i,...d],!1,!1,!1,!0,!1,[n]),A=await JA(`💦 ${e+1} - WoW${o}🌍`,[w,i,...d],!1,!0,!1,!0,!1,[n]);a.push(h,A);const f=QA(i,`proxy-${e+1}`);c.push(f);const p=QA(w,`chain-${e+1}`,`proxy-${e+1}`);u.push(p)}const w=await JA(`💦 Warp${o}- Best Ping 🚀`,[...c,...d],!0,!1,!1,!0,!1,l),h=await JA(`💦 WoW${o}- Best Ping 🚀`,[...u,...c,...d],!0,!0,!1,!0,!1,l);return a.push(w,h),new Response(JSON.stringify(a,null,4),{status:200,headers:{"Content-Type":"text/plain;charset=utf-8","Cache-Control":"no-store","CDN-Cache-Control":"no-store"}})}function QA(e,t,r){const n=structuredClone(e);return n.tag=t,r&&n.streamSettings&&(n.streamSettings.sockopt.dialerProxy=r),n}import{connect as qA}from"cloudflare:sockets";var $A=1,ef=2;async function tf(e,t,r,n,i,s,o){async function a(t,r){const i=qA({hostname:t,port:r});e.value=i,o(`connected to ${t}:${r}`);const s=i.writable.getWriter();return await s.write(n),s.releaseLock(),i}async function c(){const{proxyMode:e,panelIPs:n,envProxyIPs:c,defaultProxyIPs:u,envPrefixes:l,defaultPrefixes:d}=globalThis.wsConfig,w=e=>e[Math.floor(Math.random()*e.length)],h=e=>e?e.split(",").map(e=>e.trim()).filter(Boolean):void 0;if("proxyip"===e){o(`direct connection failed, trying to use Proxy IP for ${t}`);const e=void 0,i=w(n?.length?n:h(c)??u),{host:s,port:a}=Qd(i,!0);t=s||t,r=a||r}else if("prefix"===e){o(`direct connection failed, trying to generate dynamic prefix for ${t}`);const e=void 0,r=w(n?.length?n:h(l)??d),s=await cf(t,r);s?t=s:i.close(1011,"Retry connection failed: Invalid Prefix")}try{const e=await a(t,r);e.closed.catch(e=>console.log("retry TCP socket closed error",e)).finally(()=>af(i)),rf(e,i,s,null,o)}catch(e){const t=e instanceof Error?e.message:String(e);console.error("Retry connection failed:",e),i.close(1011,`Retry connection failed: ${t}`)}}try{const e=void 0;rf(await a(t,r),i,s,c,o)}catch(e){const t=e instanceof Error?e.message:String(e);console.error(`Connection failed: ${e}`),i.close(1011,`Connection failed: ${t}`)}}async function rf(e,t,r,n,i){let s=r,o=!1;const a=new WritableStream({start(){},async write(e,r){o=!0,1!==t.readyState&&r.error("webSocket.readyState is not open, maybe close"),s?(t.send(await new Blob([s,e]).arrayBuffer()),s=null):t.send(e)},close(){i(`remoteConnection.readable is close with hasIncomingData is ${o}`)},abort(t){console.error("remoteConnection.readable abort",t),of(e)}});try{await e.readable.pipeTo(a)}catch(r){console.error("VLRemoteSocketToWS has exception.",r),of(e),af(t)}!1===o&&n&&(i("retry"),n())}function nf(e,t,r){let n=!1;const i=void 0;return new ReadableStream({start(i){e.addEventListener("message",e=>{if(n)return;const t=e.data;i.enqueue(t)}),e.addEventListener("close",()=>{af(e),n||i.close()}),e.addEventListener("error",e=>{r("webSocketServer has error"),i.error(e)});const{earlyData:s,error:o}=sf(t);o?i.error(o):s&&i.enqueue(s)},pull(e){},cancel(t){n||(r(`ReadableStream was canceled, due to ${t}`),n=!0,af(e))}})}function sf(e){if(!e)return{earlyData:null,error:null};try{e=e.replace(/-/g,"+").replace(/_/g,"/");const t=atob(e),r=void 0;return{earlyData:Uint8Array.from(t,e=>e.charCodeAt(0)).buffer,error:null}}catch(e){return{earlyData:null,error:e}}}function of(e){if(e)try{e.close()}catch(e){console.error("Failed to close TCP socket:",e)}}function af(e){try{1!==e.readyState&&2!==e.readyState||e.close()}catch(e){console.error("safeCloseWebSocket error",e)}}async function cf(e,t){let r=e;if(!Yd(e)){const{ipv4:t}=await Nd(e,!0);if(!t.length)throw new Error("Unable to find IPv4 in DNS records");r=t[0]}return uf(r,t)}function uf(e,t){const r=e.split(".");if(4!==r.length)throw new Error("Invalid IPv4 address");const n=r.map(e=>{const t=parseInt(e,10);if(t<0||t>255)throw new Error("Invalid IPv4 address");return t.toString(16).padStart(2,"0")}),i=t.match(/^\[([0-9A-Fa-f:]+)\]$/);if(i)return`[${i[1]}${n[0]}${n[1]}:${n[2]}${n[3]}]`}async function lf(e){const t=new WebSocketPair,[r,n]=Object.values(t);n.accept();let i="",s="";const o=(e,t)=>{console.log(`[${i}:${s}] ${e}`,t||"")},a=e.headers.get("sec-websocket-protocol")||"",c=nf(n,a,o);let u={value:null},l=null,d=!1;const w=new WritableStream({async write(e){if(d&&l)return l(e);if(u.value){const t=u.value.writable.getWriter();return await t.write(e),void t.releaseLock()}const{userID:t}=globalThis.globalConfig,{hasError:r,message:a,portRemote:c=443,addressRemote:w="",rawDataIndex:h,VLVersion:A=new Uint8Array([0,0]),isUDP:f}=df(e,t);if(i=w,s=`${c}--${Math.random()} ${f?"udp ":"tcp "} `,r)throw new Error(a);const p=new Uint8Array([A[0],0]),E=e.slice(h);if(f){if(53===c){d=!0;const{write:e}=await Af(n,p,o);return l=e,void l(E)}throw new Error("UDP proxy only enable for DNS which is port 53")}tf(u,w,c,E,n,p,o)},close(){of(u.value)},abort(e){o("readableWebSocketStream is abort",JSON.stringify(e))}});return c.pipeTo(w).catch(e=>{o("readableWebSocketStream pipeTo error",e),of(u.value)}),new Response(null,{status:101,webSocket:r})}function df(e,t){if(e.byteLength<24)return{hasError:!0,message:"invalid data"};const r=new Uint8Array(e.slice(0,1)),n=void 0,i=void 0,s=void 0;if(!(hf(new Uint8Array(e.slice(1,17)))===t))return{hasError:!0,message:"invalid user"};const o=new Uint8Array(e.slice(17,18))[0],a=new Uint8Array(e.slice(18+o,18+o+1))[0];let c=!1;if(1===a);else{if(2!==a)return{hasError:!0,message:`command ${a} is not supported, command 01-tcp,02-udp,03-mux`};c=!0}const u=18+o+1,l=e.slice(u,u+2),d=new DataView(l).getUint16(0);let w=u+2;const h=void 0,A=new Uint8Array(e.slice(w,w+1))[0];let f=0,p=w+1,E="";switch(A){case 1:f=4,E=new Uint8Array(e.slice(p,p+f)).join(".");break;case 2:f=new Uint8Array(e.slice(p,p+1))[0],p+=1,E=(new TextDecoder).decode(e.slice(p,p+f));break;case 3:{f=16;const t=new DataView(e.slice(p,p+f)),r=[];for(let e=0;e<8;e++)r.push(t.getUint16(2*e).toString(16));E=r.join(":");break}default:return{hasError:!0,message:`invalid addressType is ${A}`}}return E?{hasError:!1,addressRemote:E,addressType:A,portRemote:d,rawDataIndex:p+f,VLVersion:r,isUDP:c}:{hasError:!0,message:`addressValue is empty, addressType is ${A}`}}function wf(e,t=0){const r=[];for(let e=0;e<256;++e)r.push((e+256).toString(16).slice(1));return(r[e[t+0]]+r[e[t+1]]+r[e[t+2]]+r[e[t+3]]+"-"+r[e[t+4]]+r[e[t+5]]+"-"+r[e[t+6]]+r[e[t+7]]+"-"+r[e[t+8]]+r[e[t+9]]+"-"+r[e[t+10]]+r[e[t+11]]+r[e[t+12]]+r[e[t+13]]+r[e[t+14]]+r[e[t+15]]).toLowerCase()}function hf(e,t=0){const r=wf(e,t);if(!ow(r))throw TypeError("Stringified UUID is invalid");return r}async function Af(e,t,r){let n=!1;const i=new TransformStream({start(e){},transform(e,t){for(let r=0;r>8&255,255&a]);1===e.readyState&&(r(`doh success and dns message length is ${a}`),n?e.send(await new Blob([c,o]).arrayBuffer()):(e.send(await new Blob([t,c,o]).arrayBuffer()),n=!0))}})).catch(e=>{r("dns udp has error"+e)});const s=i.writable.getWriter();return{write(e){s.write(e)}}}async function ff(e){const t=new WebSocketPair,[r,n]=Object.values(t);n.accept();let i="",s="";const o=(e,t)=>{console.log(`[${i}:${s}] ${e}`,t||"")},a=e.headers.get("sec-websocket-protocol")||"",c=nf(n,a,o);let u={value:null},l=null;const d=new WritableStream({async write(e,t){if(null)return l(e);if(u.value){const t=u.value.writable.getWriter();return await t.write(e),void t.releaseLock()}const{hasError:r,message:a,portRemote:c=443,addressRemote:d="",rawClientData:w}=pf(e);if(i=d,s=`${c}--${Math.random()} tcp`,r)throw new Error(a);tf(u,d,c,w,n,null,o)},close(){of(u.value)},abort(e){o("readableWebSocketStream is aborted",JSON.stringify(e))}});return c.pipeTo(d).catch(e=>{o("readableWebSocketStream pipeTo error",e),of(u.value)}),new Response(null,{status:101,webSocket:r})}function pf(e){if(e.byteLength<56)return{hasError:!0,message:"invalid data"};let t=56;const r=new Uint8Array(e.slice(t,57))[0],n=new Uint8Array(e.slice(57,58))[0];if(13!==r||10!==n)return{hasError:!0,message:"invalid header format (missing CR LF)"};const i=(new TextDecoder).decode(e.slice(0,t)),{TrPass:s}=globalThis.globalConfig;if(i!==Ef(s))return{hasError:!0,message:"invalid password"};const o=e.slice(58);if(o.byteLength<6)return{hasError:!0,message:"invalid SOCKS5 request data"};const a=new DataView(o),c=void 0;if(1!==a.getUint8(0))return{hasError:!0,message:"unsupported command, only TCP (CONNECT) is allowed"};const u=a.getUint8(1);let l=0,d=2,w="";switch(u){case 1:l=4,w=new Uint8Array(o.slice(d,d+l)).join(".");break;case 3:l=new Uint8Array(o.slice(d,d+1))[0],d+=1,w=(new TextDecoder).decode(o.slice(d,d+l));break;case 4:{l=16;const e=new DataView(o.slice(d,d+l)),t=[];for(let r=0;r<8;r++)t.push(e.getUint16(2*r).toString(16));w=t.join(":");break}default:return{hasError:!0,message:`invalid addressType is ${u}`}}if(!w)return{hasError:!0,message:`address is empty, addressType is ${u}`};const h=d+l,A=o.slice(h,h+2),f=void 0;return{hasError:!1,addressRemote:w,portRemote:new DataView(A).getUint16(0),rawClientData:o.slice(h+4)}}function Ef(e){const t=(e,t)=>e>>>t|e<<32-t,r=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428],n=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],i=void 0,s=(e=>{const t=[];for(let r=0;r>6,128|63&n):n<55296||n>=57344?t.push(224|n>>12,128|n>>6&63,128|63&n):(r++,n=65536+((1023&n)<<10|1023&e.charCodeAt(r)),t.push(240|n>>18,128|n>>12&63,128|n>>6&63,128|63&n))}return t})(e),o=8*s.length;for(s.push(128);s.length%64!=56;)s.push(0);const a=Math.floor(o/4294967296),c=4294967295&o;for(let e=3;e>=0;e--)s.push(a>>8*e&255);for(let e=3;e>=0;e--)s.push(c>>8*e&255);for(let e=0;e>>3,n=t(i[e-2],17)^t(i[e-2],19)^i[e-2]>>>10;i[e]=i[e-16]+r+i[e-7]+n|0}let[o,a,c,u,l,d,w,h]=r;for(let e=0;e<64;e++){const r=void 0,s=void 0,A=h+(t(l,6)^t(l,11)^t(l,25))+(l&d^~l&w)+n[e]+i[e]|0,f=void 0,p=o&a^o&c^a&c,E=void 0;h=w,w=d,d=l,l=u+A|0,u=c,c=a,a=o,o=A+((t(o,2)^t(o,13)^t(o,22))+p|0)|0}r[0]=r[0]+o|0,r[1]=r[1]+a|0,r[2]=r[2]+c|0,r[3]=r[3]+u|0,r[4]=r[4]+l|0,r[5]=r[5]+d|0,r[6]=r[6]+w|0,r[7]=r[7]+h|0}return r.slice(0,7).map(e=>("00000000"+(e>>>0).toString(16)).slice(-8)).join("")}var Bf=Od(Ld(),1);async function Hf(e){const{pathName:t}=globalThis.globalConfig,r=t.replace("/","");try{const{protocol:t,mode:n,panelIPs:i}=JSON.parse(atob(r));switch(globalThis.wsConfig={...globalThis.wsConfig,wsProtocol:t,proxyMode:n,panelIPs:i},t){case"vl":return await lf(e);case"tr":return await ff(e);default:return await Sf(e)}}catch(e){return new Response("Failed to parse WebSocket path config",{status:400})}}async function gf(e,t){const{pathName:r}=globalThis.globalConfig;switch(r){case"/panel":return await Pf(e,t);case"/panel/settings":return await kf(e,t);case"/panel/update-settings":return await Rf(e,t);case"/panel/reset-settings":return await Mf(e,t);case"/panel/reset-password":return await Fh(e,t);case"/panel/my-ip":return await Cf(e);case"/panel/update-warp":return await Nf(e,t);case"/panel/get-warp-configs":return await _f(e,t);default:return await Sf(e)}}async function mf(e,t){const r=void 0;if(!await Wh(e,t)){const{urlOrigin:e}=globalThis.httpConfig;return Response.redirect(`${e}/login`,302)}const{pathName:n}=globalThis.globalConfig;switch(n){case"/proxy-ip":return await Tf();case"/proxy-ip/get":return await Of();default:return await Sf(e)}}async function yf(e){const t=e instanceof Error?e.message:String(e),r=void 0,n=(await Uf("H4sIAAAAAAAAA4VU7W7TMBR9Fa+IdZWapB8b2hLHEoOCkDZtWscPflWufZOYOnZku2lL1TfgFXg5ngQ5ydjGQCiJFZ8b33vu8Ynx0fubd/dfbmeocKUk2I9IUpWnoAgugHKCS3AUsYIaCy79fP8hOO8wRUtIawGbShuHmFYOlEt7G8FdkXKoBYOgmQyFEk5QGVhGJaTjHsFOOAnk8vYS3VIFEtWn4Tic4qjFsRRqhQzIVDCtUGEgS6OM1n4WCqYJtm4ngcRGa7cPAqalNvFSUrZKgsDTBtOBr0YXb6YXWRIES8pWudFrxR9CWdbg2jz5nHP+mMIWlOtNPKm2yD+n1RaZfElPRkPU3eHkbHBYar4beun2BYi8cPF4NHqdNK23ryU1uVDxKOHCVpLu4kzCNvm6tk5ku6BTLmagHJiESpGrQDgo7QOUaeWCjJZC7mK7sw7KYC2SlnFNzUmnwCB50WMb/RMeJA62LmgqdTWaJkJOzSooNYffom4K4eCFqNPTi/P3l38VdTzx1/81nJydDdHj0CpZjPdPeT8t2nHu0j2Lt9jgQP+9+OBto/Y1GCcYlV3rpeBcQtLt2tRAecBRay0cte73shDMRY0ET8EYbZr9okKBIbgYEyzKHDFJrW3Nag175lVEpUt73ulXOtc9gh5Nj21Flc9b+WlQg7HCZ/AE0mbPrfgGsS2plGDIwz/iV3l+44YXwcWE/PzxHc11Ca4QKkcbUA5tjFb5EY6KCcEVwUuyWMzu7m7uFtez+fztx9ligaMlwVFFcNSkaUfLjKgckZpROXfa0BzCHNwnB+VJ39vjWnPoD1CapqgPii4l8D46PkZcs3UJyoWNkRpBroR1IeW8Xdj4qj9IcNTVwFErbtScPb8A2I1+uIsEAAA=",!0)).replace("__ERROR_MESSAGE__",t);return new Response(n,{status:200,headers:{"Content-Type":"text/html; charset=utf-8"}})}async function Tf(){const e=await Uf("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",!1);return new Response(e,{headers:{"Content-Type":"text/html; charset=utf-8"}})}async function xf(e,t){const{pathName:r}=globalThis.globalConfig;return"/login"===r?await Df(e,t):"/login/authenticate"===r?await Xh(e,t):await Sf(e)}function vf(){return aw(!0,200,"Successfully logged out!",null,{"Set-Cookie":"jwtToken=; Secure; SameSite=None; Expires=Thu, 01 Jan 1970 00:00:00 GMT","Content-Type":"text/plain"})}async function bf(e,t){await ww(e,t);const{globalConfig:{pathName:r},httpConfig:{client:n,subPath:i}}=globalThis;switch(r){case`/sub/normal/${i}`:switch(n){case"xray":return await GA(!1);case"sing-box":return await bA(!1);case"clash":return await aA();default:break}case`/sub/raw/${i}`:switch(n){case"xray":case"sing-box":return await Wf();default:break}case`/sub/fragment/${i}`:switch(n){case"xray":return await GA(!0);case"sing-box":return await bA(!0);default:break}case`/sub/warp/${i}`:switch(n){case"xray":return await VA(e,t,!1,!1);case"sing-box":return await RA(e,t);case"clash":return await cA(e,t,!1);default:break}case`/sub/warp-pro/${i}`:switch(n){case"xray":return await VA(e,t,!0,!1);case"xray-knocker":return await VA(e,t,!0,!0);case"clash":return await cA(e,t,!0);default:break}default:return await Sf(e)}}async function Rf(e,t){if("PUT"!==e.method)return aw(!1,405,"Method not allowed.");const r=void 0;if(!await Wh(e,t))return aw(!1,401,"Unauthorized or expired session.");const n=void 0;return aw(!0,200,"",await uw(e,t))}async function Mf(e,t){if("POST"!==e.method)return aw(!1,405,"Method not allowed!");const r=void 0;if(!await Wh(e,t))return aw(!1,401,"Unauthorized or expired session.");try{const{settings:e}=globalThis;return await t.kv.put("proxySettings",JSON.stringify(e)),aw(!0,200,"",e)}catch(e){const t=e instanceof Error?e.message:String(e);throw console.log(e),new Error(`An error occurred while updating KV: ${t}`)}}async function kf(e,t){const r=Boolean(await t.kv.get("pwd")),n=void 0;if(!await Wh(e,t))return aw(!1,401,"Unauthorized or expired session.",{isPassSet:r});const i=await cw(e,t),{subPath:s}=globalThis.httpConfig,o=void 0;return aw(!0,200,void 0,{proxySettings:i.settings,isPassSet:r,subPath:s})}async function Sf(e){const{fallbackDomain:t}=globalThis.globalConfig,{url:r,method:n,headers:i,body:s}=e,o=new URL(r);o.hostname=t,o.protocol="https:";const a=new Request(o.toString(),{method:n,headers:i,body:s,redirect:"manual"});return await fetch(a)}async function Cf(e){const t=await e.text();try{const e=await fetch(`http://ip-api.com/json/${t}?nocache=${Date.now()}`),r=void 0;return aw(!0,200,"",await e.json())}catch(e){const t=e instanceof Error?e.message:String(e);return console.error("Error fetching IP address:",e),aw(!1,500,`Error fetching IP address: ${t}`)}}async function _f(e,t){const{httpConfig:{client:r},dict:{_project_:n}}=globalThis,i="amnezia"===r,s=void 0;if(!await Wh(e,t))return new Response("Unauthorized or expired session.",{status:401});const{warpAccounts:o,settings:a}=await cw(e,t),{warpIPv6:c,publicKey:u,privateKey:l}=o[0],{warpEndpoints:d,warpRemoteDNS:w,amneziaNoiseCount:h,amneziaNoiseSizeMin:A,amneziaNoiseSizeMax:f}=a,p=new Bf.default,E=e=>e.split("\n").map(e=>e.trim()).join("\n");try{d?.forEach((e,t)=>{const r=`[Interface]\n PrivateKey = ${l}\n Address = 172.16.0.2/32, ${c}\n DNS = ${w}\n MTU = 1280\n ${i?`Jc = ${h}\n Jmin = ${A}\n Jmax = ${f}\n S1 = 0\n S2 = 0\n H1 = 0\n H2 = 0\n H3 = 0\n H4 = 0`:""}\n [Peer]\n PublicKey = ${u}\n AllowedIPs = 0.0.0.0/0, ::/0\n Endpoint = ${e}\n PersistentKeepalive = 25`;p.file(`${n}-Warp-${t+1}.conf`,E(r))});const e=await p.generateAsync({type:"blob"}),t=await e.arrayBuffer();return new Response(t,{headers:{"Content-Type":"application/zip","Content-Disposition":`attachment; filename="${n}-Warp-${i?"Pro-":""}configs.zip"`}})}catch(e){const t=e instanceof Error?e.message:String(e);return new Response(`Error generating ZIP file: ${t}`,{status:500})}}async function Of(){const e=await Nd(globalThis.dict._public_proxy_ip_,!0),t=void 0;return aw(!0,200,void 0,await jf(e.ipv4))}async function Lf(){const e="AAABAAEAQEAAAAEAIAAoQgAAFgAAACgAAABAAAAAgAAAAAEAIAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAABMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcASGtEBSs/KFsRGRCyAwQC5wAAAPoBAgHtDxYOvyU2InFEZD8QTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcAOVQ1LgcLB9UAAAD/AQEA/ykjGP9ANyb/MCod/wUEA/8AAAD/AgQC6yo/J1dMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcAOVU2KwIDAu4AAAD/Wk01/9W3f//105L/9dOS//XTkv/jxIf/emlI/wYFA/8AAAD/JjgjZkxwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAEptRQE2UDM3IjMgehQdEqsNFAzHBwsHzw4VDcUWIRWmJTcjcTpVNilMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcASGpDBgcKBtcAAAD/lYBY//XTkv/105L/9dOS//XTkv/105L/9dOS//TSkf+xjE7/DQoF/wABAPg6VTYsTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcAS25GAC1DKlQHCwfXAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/DBILwzVPMjhMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHACo/J1sAAAD/VUkz//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/xzIj/5LJh/5t5Qv8AAAD/EhoRrUxwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcAPls5IA4VDbwAAAD/BAMC/0k+K/+VgFn/y695/+rKi//00pH/6MiK/8aqdv+JdlH/Ny8h/wAAAP8AAAD9FyIVmkVlQA1McEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwARGRC0AAAA/8Gmc//105L/9dOS//XTkv/105L/9dOS//XTkv/105L/6r90/+SyYf/jsWD/MiYV/wAAAPlCYj4STHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcANlAyNQIEAuoAAAD/S0As/9O2fv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv+/pHH/Lykc/wAAAP8JDQjSQF88GUxwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBIakMFAAEA9R4aEv/00pH/9dOS//XTkv/105L/9dOS//XTkv/105L/8s2K/+SyYf/ksmH/5LJh/3pfM/8AAAD/LkQrUExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcAO1g3JQIDAu0CAQH/iXZR//TSkf/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS/+7Njv9bTjb/AAAA/wkNCM9GZ0EKTHBHAExwRwBMcEcATHBHAExwRwBMcEcAOFQ0LwAAAP9bTjb/9dOS//XTkv/105L/9dOS//XTkv/105L/9NKR/+i6bv/ksmH/5LJh/+SyYf+XdkD/AAAA/yo+J21McEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcARWZBDAcLBtgAAAD/lH9Y//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9NKR/15PM/8AAAD/ExwRp0tuRgBMcEcATHBHAExwRwBMcEcATHBHAC1EKlYAAAD/iXZR//XTkv/105L/9dOS//XTkv/105L/9dOS/+3Ffv/ksmH/5LJh/+SyYf/ksmH/kXE9/wAAAP8qPidmTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHABspGYwAAAD/ZVc8//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/lunH/MSYU/wAAAP8sQSlUTHBHAExwRwBMcEcATHBHAExwRwAjNCB3AAAA/66WZ//105L/9dOS//XTkv/105L/9dOS//DKhf/ksmL/5LJh/+SyYf/ksmH/5LJh/2ROKv8AAAD/NE4xPExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAEJhPRMAAQD2ExAL/+fHiv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/6bxw/7WNTP8AAAD/CAwH0ktuRgBMcEcATHBHAExwRwBMcEcAHSobjwAAAP/JrXf/9dOS//XTkv/105L/9dOS//HMiP/ks2P/5LJh/+SyYf/ksmH/5LJh/92tXv8WEQn/AgMC60lrRARMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwAlNyNuAAAA/4RyTv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS/+e4av/ksmH/QzQc/wAAAP82UDI2THBHAExwRwBMcEcATHBHABYhFaEAAAD/3b6D//XTkv/105L/9dOS//LNif/ltWX/5LJh/+SyYf/ksmH/5LJh/+OxYP9iTCn/AAAA/x4tHIRMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcADhYOuwQDAv/kxIf/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//TRkP/ksmL/5LJh/6J+RP8AAAD/HiwchkxwRwBMcEcATHBHAExwRwASGxGxAAAA/+7Njv/105L/9dOS//DLhv/ltGX/5LJh/+SyYf/ksmH/5LJh/9WmWv9bRyb/AAAA/wgMB9dFZkELTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAAIDAucqJBn/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/wyoX/5LJh/+SyYf/drF3/BQMC/w4WDr5McEcATHBHAExwRwBMcEcADxYOvgYGA//105L/9dOS/+/Igv/ksmL/5LJh/+SyYf/gr1//rohK/19KKP8LCQT/AAAA/wUIBd88WTgkTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAEptRQAAAAD8QTgm//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/6r91/+SyYf/ksmH/5LJh/yMcD/8EBgTiTHBHAExwRwBMcEcATHBHAAsQCsoPDQn/zK95/7CUYf+Pbz3/dFsx/1ZDJP8xJhT/CAcD/wAAAP8AAAD/AgMC7B4sHIRFZUANTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBJbEQAAAAA/EM5J//105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9NKQ/+W0ZP/ksmH/5LJh/+SyYf81KRb/AAAA8kxwRwBMcEcATHBHAExwRwAHCwfYAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAEA8wsRC8ccKhqQMUguSUdpQwZMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAAABAO0yKx7/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS/+/Igv/ksmH/5LJh/+SyYf/ksmH/MicV/wAAAO9McEcATHBHAExwRwBMcEcAHiwcghAXDroZJReeIDAegik8JmQzTDBEPlw6IElsRAFMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwAJDgnRFRIM//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/ou27/5LJh/+SyYf/ksmH/5LJh/xoUCv8HCwfYTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcAFB4TpwAAAP/cvYL/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/yzYr/5LJh/+SyYf/ksmH/5LJh/8yfVv8AAAD/FB0Sq0xwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHACQ1IXUAAAD/o4xh//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/6r50/+SyYf/ksmH/5LJh/+SyYf+AZDb/AAAA/yY5I2tMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwA0TjE7AAAA/2FUOv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/8s6L/+SyYv/ksmH/5LJh/+SyYf/ZqVz/GRMK/wABAPhBXzwYTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcASGpDBQECAfAXEw3/8tGQ//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS/+m8cP/ksmH/5LJh/+SyYf/ksmH/XEcn/wAAAP8aJxmOTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHADhTNC4fLh2FDhUNwAUIBeAAAADpBwsH2RIbEbMlNiJ0P147G0xwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwASHBGuAAAA/8Clcv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//DLhv/ksmH/5LJh/+SyYf/ksmH/kXE9/wAAAP8FCAXeRWVADUxwRwBMcEcATHBHAExwRwBMcEcARWVADhQdEqUAAAD/AAAA/wAAAP8PDQn/GhYP/wgHBf8AAAD/AAAA/wAAAPkaJhiQRWVADExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcAKT0mYAAAAP9yYkT/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//TSkf/nuWz/5LJh/+SyYf/ksmH/mXhB/wYEAv8CAwLtOVU2LExwRwBMcEcATHBHAExwRwBMcEcAO1g3JggMB9cAAAD/KCIX/5aBWf/dvoT/9dOS//XTkv/z0ZD/zbF6/4NxTv8bFxD/AAAA/wcLB9k6VTYsTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAEJiPRAAAQD3HhoR//PRkf/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/ux4D/5LJh/+SyYf/jsWD/el8z/wEBAP8CAwLwNlAyOExwRwBMcEcATHBHAExwRwBMcEcANlAyNQIDAu4BAAD/eWhI//HQkP/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/68qM/3JiQ/8CAQH/AgMC8TdRMzZMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcAExwRqQAAAP+7oW//9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/00Y//5bVm/+SyYf/gr1//XUgn/wAAAP8CBALuNE4xOExwRwBMcEcATHBHAExwRwBMcEcAP106HQMEA+kAAAD/i3dS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/k35X/wAAAP8EBwThRWVADExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHADFJLkQAAAD/Y1U6//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/6r91/+SyYf/AllH/MCUU/wAAAP8JDQjRPFk4JUxwRwBMcEcATHBHAExwRwBMcEcARmhCCQsQCsoAAAD/gnBN//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv9tXkH/AAAA/x4sHIhMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBKbUUABwsH2Q0LB//oyIr/9dOS//XTkv/105L/9dOS//XTkv/105L/8MmE/+KxYP+DZjf/CQcD/wAAAP8VHxOgRmhBCkxwRwBMcEcATHBHAExwRwBMcEcAS25GABMdEqgAAAD/aFk+//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/786O/yIeFP8BAgH0QmI+EUxwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHACIyH3kAAAD/jnpU//XTkv/105L/9dOS//XTkv/105L/9NGQ/8adWv82Khb/AAAA/wIDAvApPSdZTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHACg7JWIAAAD/Licb/+/Ojv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv+GdFD/AAAA/yc6JWZMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwA/XTsbAAAA+iYgFv/z0ZH/9dOS//XTkv/105L/8M6O/4JtSP8JBwT/AAAA/w8WDrs9WjkgTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAD9dOxoCAwLuCAcE/8queP/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/zrF6/wAAAP8THRKqTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHABMcEqwAAAD/sJhp//XTkv/105L/qpJl/yMeFf8AAAD/BQcE4yo/KFhLbkYATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAEtuRgARGRCyAAAA/5R/WP/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//PRkf8HBgT/CAwH1UxwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwAwRy1JAAAA/1JHMf/WuH//SD0q/wAAAP8AAAD/FiEVnUVlQA5McEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwArQChXAAAA/0I4J//00pH/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/FBEM/wECAeJMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcASGtDAwQHBOAGBQP/CgkG/wAAAP8LEArJNU4xOkxwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBCYj4UAwQC6QcGBP/Psnv/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9NKR/wgHBf8IDAfWTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwAiMyBzAAAA/wUHBOMqPidcSm1FAkxwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcAFiEVngAAAP97akn/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS/9K0fP8AAAD/EhwRrkxwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcAR2lCBitAKV9FZUAOTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcANU8xOAAAAP4hHBP/7cyN//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv+MeVP/AAAA/yY4I2tMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcASWxEAgoPCc0AAAD/qJBj//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/y0JD/KSMY/wABAPdAXzwVTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAEZnQQ0AAQD0AAAA/wgHBP9lVjz/1bd+//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9NKR//HMiP/tw3v/f2c+/wAAAP8YIxaZTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcAPls6HR8tHIUDBAPoAAAA/wMDAv9IPiv/p49h/+zGgf/wyYT/8MqE//DJhP/wyYP/78iC/+7HgP/txX3/7MN6/+vAdf/pvHD/57hq/+SzYv/ksmH/on5E/wQDAf8CBALrQWA8GExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcASGpDBSxBKVUNFAzCAAAA/wAAAP8VEQn/ZE4q/7KLS//jsWD/5LJh/+SyYf/ksmH/5LJh/+SyYf/ksmH/5LJh/+SyYf/hsF//gGQ2/wYEAv8AAQD4MUkuQ0xwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHADlUNSwZJReXAAEA9AAAAP8AAAD/HBYM/2NNKv+hfkT/1qdb/+SyYf/ksmH/5LJh/+GvX/+jf0X/LyQT/wAAAP8CAwLwMUguQ0xwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAERkPw8qPyheEhsRsAABAPUAAAD/AAAA/wAAAP8WEQn/KB8R/yYeEP8KCAT/AAAA/wAAAP8PFw61PFk4JUxwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBFZkEKMkovRCExH38THBGwCQ0I0gMFA+QFBwTiCxELyB0rG484UjQwTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcA////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////gD////////8AH////////gAP///+AH/8AAf///wAH/wAB///8AAH/AAD///gAAP4AAP//8AAAfgAA///gAAB+AAD//+AAAD4AAP//wAAAPgAA///AAAAeAAH//8AAAB4AAf//wAAAHgAD///AAAAeAAf//8AAAB4AH///wAAAHgH////AAAAf/////8AAAB//////wAAAH//////AAAAf/////8AAAD+AP///4AAAPgAP///gAAB8AAf//+AAAPgAA///8AAB8AAB///wAAPgAAH///gAB+AAAP//+AAfwAAA///4AD+AAAD///wA/4AAAP///AH/AAAA///8B/4AAAD///4P/gAAAP///j/8AAAA//////gAAAD/////+AAAAf/////8AAAB//////8AAAP//////+AAB///////+AAP////////AD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8=",t=Uint8Array.from(atob(e),e=>e.charCodeAt(0));return new Response(t,{headers:{"Content-Type":"image/x-icon","Cache-Control":"public, max-age=86400"}})}async function Pf(e,t){const r=void 0;if(await t.kv.get("pwd")){const r=void 0;if(!await Wh(e,t)){const{urlOrigin:e}=globalThis.httpConfig;return Response.redirect(`${e}/login`,302)}}const n=await Uf("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",!1);return new Response(n,{headers:{"Content-Type":"text/html; charset=utf-8"}})}async function Df(e,t){const r=void 0;if(await Wh(e,t)){const{urlOrigin:e}=globalThis.httpConfig;return Response.redirect(`${e}/panel`,302)}const n=await Uf("H4sIAAAAAAAAA51Y/W7cNhJ/FUap4xUqabW73tjWV9rEySFAigZNikNxKFquNJJYU6SO5H51q2fo//3rHuOe517gXuFAUvvlXSfBgbYskjOcj9/McOTkyd33rz7+9P41qlVDs0Q/EcWsSoFlSQ24yJIGFEZ5jYUElf748Y1/068x3EC6ILBsuVAo50wBU6mzJIWq0wIWJAffTDzCiCKY+jLHFNKRkyWKKArZy/cv0XvMgKLFVTAKJsnQrieUsHskgKYk5wzVAsp0WOKFngUk5z2BWXdqpVoZDYclZ0oGFecVBdwSGeS8GeZSjl+UuCF0nX6HFQiC6dcf1s2MU/n1D3zOCigi3srfvWVVK+/N23fvvL/98O3dN+MwCK5uvFEYBsF1GHphEIw8fxoGwTgMn2lFftH2y5TyijBvQSSZEUrU+uD1F16WzwoiW4rX6Yzy/N4xRkm1piBrAJUl5j2LBOdq4/s5p1xEM4rz+9j3W0EaLNb96tPw9vnktox9X+MC4mR5hvP7SmibtltlqddLLppzm7d6xL5P8YyCr2CltluTyUSLGe/mMz20CC4OJBdFEfs+Ye1cnZ6/rImCvbKyxgVfRuN2hfTvVbtCoprhQeih/icYT91uxou1p6NwUwOpahWNwvAibrCoCItCs73RQPsW00iupYLGn5P4RIEFFoNTp7hxyyVRhLNIAMWKLCDmCxAl5cuoJkUBLDauwJRULMqBKRBGblBgce83vIAdUFsbzwH15gSoydXtzd3Ls0CNxno8jtVu/xSruzd6HMF1N9XjBK7JVI/HEXs6nurxeczG06mH9g+LXKALACYMxGbnYTyTnM4VxIq30TS8iCmUyrwogZnUxkbmjWIFA38aXugUu3BjUzai2/Ciq0ebQzgPPepaoHotj/btmtvpYsE2CxCK5Jj2mDakKCjEfYBNBDRdPT6W0rvS7QIDyN60vdN60rOAubH1fDRqV0hySgrUR+MBIFsiX+CCzGU0vmlX8YyvtgaFDxNFj2Dkxi0uCsKqaBy2q7jCrX3p60xUUljF+uEXREBucMg5nTesC0ytMipvPk9ujr5pVwc+EJweM/42l4qUa78v/pFscQ7+DNQSgMXG3T5R0Mg+kcyZo+ftqqN4BtSm8tICcR2G8SEID0Pd7YIWS7nkovCXArctiGNlbNCYgnGS46e8yGTBP9S6hXS797P3STKty8+bQzEWCV8YA640DCe1Y1+8AsWrioK/FfGJPBF97dMHnmbKTwObJflcSC6ilhMjaC515AOFXEWMM+i9+RTf6tGdtffEum1wGdn/RxQbvk/C+FilPl+V3C6oCVN9egooen/6M64Ub4y8bjZXirONCa6TXHgYoz0sZ4LzFNloNG5XsYlSSX6HaBSMBDTxYdg+D8Otn4zTH3WHuY0fsf3oAjkB1gBvI+UhPwomEgGW0AXWCVHJ87n0trNa322bM6X+9iac3R6Xm5t2hUbTB/Vm4j4SgeN25e6E4lwn2eYs5ahduceCJu0KXZ/I6YKmb9B8aRs0X9gGzZaJBRYEayf4EpQirJLRpe7XLtHIu9Td2yW6CkPvUrdvlyj0LnVbd4nGV903DRQEI87oGslcADCEWYEGDWG2QY2m18/blbs5uMPs+nV40X0B+/Xzm7Ps0y9jv70dn2WfaPZkaFvEZGjbcd2KZElBFiinWMp0x5Ql9ShLSFP1G6Z1liI/6pwRpip1dN/9jlfcydC+BU9kixkiRdrqqb8AIYk+QUtP9ykgG0wpiGzbsWsurdzoUKnjWzNL6nH2owShhRKWDOtxlmgSLc3cSW/0xLLu76izBwpOs8RcHqjkYlfJsvf9SzI0m4e8D0t6lphSg45KoTW8fzdfNruZgH/OiYAi27vIVvKtzF6O81j8ogeF38mOvxF2TizIYvvU6h+o9FoILno5uh5uyWz+WVPkfNYQ1RPZjcw4vNfbbjymZEYtNr0qPX8ytEgcqiZzQVqVOcB0aS+cNE0pzzH9oLjAFQQVqLcKmoGjG+bveAGO++xZwfN5A0wFppU2qrwjUgW4KCyh6awd19sRVqBeU9CvL9dvi4GzCxTH1VyvF8CUPgIYiIFjjXc8LNcsR5BmGwhaAZroDko8p2rgxjlnUiGVPipjh5AbLDCdQ6zEemO5IMVLTBQqQeX1wBkadYZ4rmpgurtU4HibBlTNi8h5//2Hj45nm1EZbZxX9u7xP65bcCJH34bDlmLCnM7TDolU53obOc9zkDLinlRYzWXEvAakxBVEsuvFQ/Cb5GzgxqQcPOHuRtWCL9FnDTLx47iBlvxq+6X+n7/+9d9//4n+Ljir0DaYnzgegyUyDINfbfyUmFAo0JKoGlnV0Fcb1kXoq43sfnW7JWEFXwY6CnSBDuyH+dAUEqfLsfYYuMaRnEIA5mzHnm0mkeNB0Nv6xx/gdt0nAuE4+c5GQ05Jfu945ZyZjnbg7kD8Aug9le5naZpCoNMrtn9S9cLA50R7Gk/VRB65Vr1wjlPciQ4WnM6Nk2GfRsnQVvSh+Q/M/wCrYihQkREAAA==",!1);return new Response(n,{headers:{"Content-Type":"text/html; charset=utf-8"}})}async function If(){const e=await Uf("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",!1);return new Response(e,{headers:{"Content-Type":"text/html; charset=utf-8"}})}async function Nf(e,t){if("POST"===e.method){const r=void 0;if(!await Wh(e,t))return aw(!1,401,"Unauthorized.");try{return await Pd(t),aw(!0,200,"Warp configs updated successfully!")}catch(e){const t=e instanceof Error?e.message:String(e);return console.log(e),aw(!1,500,`An error occurred while updating Warp configs: ${t}`)}}return aw(!1,405,"Method not allowed.")}async function Uf(e,t){const r=Uint8Array.from(atob(e),e=>e.charCodeAt(0)),n=new Blob([r]).stream().pipeThrough(new DecompressionStream("gzip"));if(t){const e=await new Response(n).arrayBuffer(),t=void 0;return(new TextDecoder).decode(e)}return n}async function zf(e){const t=new URL(e.url),{subPath:r}=globalThis.httpConfig,{dohURL:n}=globalThis.globalConfig;if(t.pathname!==`/dns-query/${r}`)return Sf(e);const i=new URL(n);t.searchParams.forEach((e,t)=>{i.searchParams.set(t,e)});const s=new Request(i.toString(),e);return fetch(s)}function Xf(e,t){const r=[];for(let n=0;n{const w=r.includes(a),h=w?"tls":"none",A=new URL(`${i}://config`);i===s?(A.username=e,A.searchParams.append("encryption","none")):A.username=t;const f=Jd(i);return A.hostname=o,A.port=a.toString(),A.searchParams.append("host",u),A.searchParams.append("type","ws"),A.searchParams.append("security",h),A.hash=d,"sing-box"===n?(A.searchParams.append("eh","Sec-WebSocket-Protocol"),A.searchParams.append("ed","2560"),A.searchParams.append("path",f)):A.searchParams.append("path",`${f}?ed=2560`),w&&(A.searchParams.append("sni",l),A.searchParams.append("fp",c),A.searchParams.append("alpn","http/1.1")),A.href};let B="",H="",g="",m=1;const y=await Xd(!1);if(u.forEach(e=>{y.forEach(t=>{const r=l.includes(t),n=r?w:Wd(i),a=r?d:i;if(h){const r=jd(m,e,t,s,!1,!1),i=E(atob("dmxlc3M="),t,e,a,n,r);B+=`${i}\n`}if(A){const r=jd(m,e,t,o,!1,!1),i=E(atob("dHJvamFu"),t,e,a,n,r);H+=`${i}\n`}m++})}),f){let e=`#${encodeURIComponent("💦 Chain proxy 🔗")}`;if(f.startsWith("socks")||f.startsWith("http")){const t=/^(?:socks|http):\/\/([^@]+)@/,r=f.match(t),n=!!r&&r[1];g=n?f.replace(n,btoa(n))+e:f+e}else g=f.split("#")[0]+e}const T=btoa(B+H+g);return new Response(T,{status:200,headers:{"Content-Type":"text/plain;charset=utf-8","Cache-Control":"no-store, no-cache, must-revalidate, proxy-revalidate","CDN-Cache-Control":"no-store","Profile-Title":`base64:${iw(`💦 ${a} Raw`)}`,DNS:p}})}var Ff={async fetch(e,t){try{const r=e.headers.get("Upgrade");if(hw(e,t),"websocket"===r)return Aw(t),await Hf(e);{fw(e,t);const{pathName:r}=globalThis.globalConfig,n=void 0;switch(r.split("/")[1]){case"panel":return await gf(e,t);case"sub":return await bf(e,t);case"login":return await xf(e,t);case"logout":return vf();case"secrets":return await If();case"favicon.ico":return await Lf();case"dns-query":return await zf(e);case"proxy-ip":return await mf(e,t);default:return await Sf(e)}}}catch(e){return await yf(e)}}};export{Ff as default}; \ No newline at end of file diff --git a/version.txt b/version.txt index c7c6e800..ac8cb4ee 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -v3.6.1 +v4.1.3