├── version.txt ├── .github └── workflows │ └── upbpb.yml └── _worker.js /version.txt: -------------------------------------------------------------------------------- 1 | v4.0.1 2 | -------------------------------------------------------------------------------- /.github/workflows/upbpb.yml: -------------------------------------------------------------------------------- 1 | name: Auto Update Worker 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | schedule: 8 | - cron: "0 1 * * *" # 每天凌晨1点运行 9 | workflow_dispatch: 10 | inputs: 11 | force_update: 12 | description: '是否强制更新(忽略版本检查)' 13 | required: false 14 | default: 'false' 15 | 16 | permissions: 17 | contents: write 18 | 19 | jobs: 20 | update: 21 | runs-on: ubuntu-latest 22 | steps: 23 | - name: 检出仓库 24 | uses: actions/checkout@v4 25 | 26 | - name: 设置环境 27 | run: | 28 | echo "REPO_URL=https://api.github.com/repos/bia-pain-bache/BPB-Worker-Panel/releases" >> $GITHUB_ENV 29 | echo "TARGET_FILE=worker.zip" >> $GITHUB_ENV 30 | 31 | - name: 检查并更新 Worker 32 | env: 33 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # 使用 GitHub Token 认证 34 | run: | 35 | # 日志函数 36 | log() { echo "[$(date +'%Y-%m-%d %H:%M:%S')] $1"; } 37 | 38 | log "开始检查更新..." 39 | 40 | # 获取本地版本 41 | LOCAL_VERSION=$(cat version.txt 2>/dev/null || echo "") 42 | log "本地版本: ${LOCAL_VERSION:-无}" 43 | 44 | # 获取最新 Release 45 | log "获取最新 Release 信息..." 46 | RESPONSE=$(curl -s --retry 3 -H "Authorization: token $GITHUB_TOKEN" -H "Accept: application/vnd.github.v3+json" "$REPO_URL") 47 | if [ $? -ne 0 ]; then 48 | log "ERROR: 无法访问 GitHub API" 49 | exit 1 50 | fi 51 | 52 | TAG_NAME=$(echo "$RESPONSE" | jq -r '.[0].tag_name') 53 | DOWNLOAD_URL=$(echo "$RESPONSE" | jq -r '.[0].assets[] | select(.name == "'"$TARGET_FILE"'") | .browser_download_url') 54 | 55 | if [ -z "$DOWNLOAD_URL" ] || [ "$DOWNLOAD_URL" == "null" ]; then 56 | log "ERROR: 未找到 $TARGET_FILE" 57 | exit 1 58 | fi 59 | log "最新版本: $TAG_NAME" 60 | 61 | # 判断是否需要更新 62 | FORCE_UPDATE=${{ github.event.inputs.force_update || 'false' }} 63 | if [ "$LOCAL_VERSION" = "$TAG_NAME" ] && [ "$FORCE_UPDATE" != "true" ]; then 64 | log "已是最新版本,无需更新" 65 | exit 0 66 | fi 67 | 68 | # 下载并更新 69 | log "下载 $TARGET_FILE..." 70 | wget -q -O "$TARGET_FILE" "$DOWNLOAD_URL" 71 | log "解压 $TARGET_FILE..." 72 | unzip -o "$TARGET_FILE" 73 | rm "$TARGET_FILE" 74 | echo "$TAG_NAME" > version.txt 75 | log "更新完成,新版本: $TAG_NAME" 76 | 77 | - name: 提交更改 78 | if: success() # 仅在更新成功时提交 79 | uses: stefanzweifel/git-auto-commit-action@v5 80 | with: 81 | commit_message: "🔄 自动同步 Worker 版本: ${{ steps.check_update.outputs.tag_name || '未知' }}" 82 | commit_author: "github-actions[bot] " 83 | -------------------------------------------------------------------------------- /_worker.js: -------------------------------------------------------------------------------- 1 | // Build: 2025-11-17T12:13:59.178Z 2 | // @ts-nocheck 3 | let e=99109,t=49845,r=9028,n=35260,i=54176,s=32167,a=23597,o=52933,c=18821,u=94009,l=79446,d=640,w=5211,h=56313,A=46115,f=10406,p=19800,E=30443,B=74315,H=78788,g=38970,m=34738,y=17694,T=60886,x=5720,b=68965,R=93883,v=98903,M=16518,k=4119,S=53771,_=69793,C=80903,P=80455,O=5155,L=99235,I=75168,D=99105,z=28255,U=921,N=81674,X=75264,W=37809,j=49716,F=55924,K=36087,J=79801,Z=29357,V=18505,G=85167,Y=27723,Q=37003,q=60978,$=96625,ee=72473,te=26839,re=41691,ne=70925,ie=15103,se=71089,ae=52442,oe=88468,ce=71468,ue=59111,le=12991,de=33436,we=32036,he=5209,Ae=98547,fe=38844,pe=54015,Ee=75774,Be=61784,He=43513,ge=82332,me=39483,ye=47748,Te=84324,xe=76155,be=18939,Re=72538,ve=71927,Me=98104,ke=53414,Se=59739,_e=11342,Ce=97458,Pe=16792,Oe=72767,Le=10239,Ie=21416,De=97301,ze=26379,Ue=10032,Ne=91253,Xe=31949,We=41099,je=75387,Fe=74523,Ke=88112,Je=82370,Ze=27556,Ve=52367,Ge=42626,Ye=19653,Qe=42589,qe=52530,$e=98157,et=41036,tt=790,rt=46630,nt=57308,it=92537,st=77289,at=91919,ot=47404,ct=99133,ut=49042,lt=52677,dt=80060,wt=52068,ht=51981,At=42519,ft=77978,pt=65560,Et=92368,Bt=21927,Ht=70506,gt=84548,mt=54314,yt=78092,Tt=10572,xt=11138,bt=38593,Rt=89314,vt=82127,Mt=17193,kt=58958,St=96784,_t=14340,Ct=78291,Pt=21320,Ot=81050,Lt=58065,It=21263,Dt=89367,zt=75710,Ut=97353,Nt=86517,Xt=52022,Wt=32528,jt=87789,Ft=36275,Kt=99783,Jt=68209;function Zt(){return 446}function Vt(){return 308}function Gt(){return 882}function Yt(){return 540}function Qt(){return 860}function qt(){return 117}function $t(){return 888}function er(){return 226}function tr(){return 192}function rr(){return 952}function nr(){return 248}function ir(){return 485}function sr(){return 747}function ar(){return 74}function or(){return 254}function cr(){return 115}function ur(){return 896}function lr(){return 154}function dr(){return 697}function wr(){return 777}function hr(){return 819}function Ar(){return 212}function fr(){return 629}function pr(){return 554}function Er(){return 979}function Br(){return 89}function Hr(){return 759}function gr(){return 651}function mr(){return 737}function yr(){return 457}function Tr(){return 414}function xr(){return 339}function br(){return 784}function Rr(){return 687}function vr(){return 220}function Mr(){return 909}function kr(){return 368}function Sr(){return 878}function _r(){return 124}function Cr(){return 709}function Pr(){return 135}function Or(){return 227}function Lr(){return 177}function Ir(){return 537}function Dr(){return 220}function zr(){return 440}function Ur(){return 190}function Nr(){return 315}function Xr(){return 186}function Wr(){return 356}function jr(){return 327}function Fr(){return 892}function Kr(){return 990}function Jr(){return 491}function Zr(){return 693}function Vr(){return 80}function Gr(){return 875}function Yr(){return 611}function Qr(){return 358}function qr(){return 952}function $r(){return 456}function en(){return 924}function tn(){return 999}function rn(){return 938}function nn(){return 879}function sn(){return 416}function an(){return 841}function on(){return 478}function cn(){return 47}function un(){return 714}function ln(){return 230}function dn(){return 687}function wn(){return 985}function hn(){return 963}function An(){return 892}function fn(){return 503}function pn(){return 834}function En(){return 156}function Bn(){return 826}function Hn(){return 139}function gn(){return 838}function mn(){return 868}function yn(){return 3}function Tn(){return 86}function xn(){return 450}function bn(){return 334}function Rn(){return 65}function vn(){return 157}function Mn(){return 174}function kn(){return 981}function Sn(){return 71}function _n(){return 722}function Cn(){return 418}var Pn=Object.create,On=Object.defineProperty,Ln=Object.getOwnPropertyDescriptor,In=Object.getOwnPropertyNames,Dn=Object.getPrototypeOf,zn=Object.prototype.hasOwnProperty,Un=(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')}),Nn,Xn=(e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let i of In(t))zn.call(e,i)||i===r||On(e,i,{get:()=>t[i],enumerable:!(n=Ln(t,i))||n.enumerable});return e},Wn=(e,t,r)=>(r=null!=e?Pn(Dn(e)):{},Xn(!t&&e&&e.__esModule?r:On(r,"default",{value:e,enumerable:!0}),e)),jn=((e,t)=>function r(){return t||(0,e[In(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(a,o){if(!r[a]){if(!t[a]){var c="function"==typeof Un&&Un;if(!o&&c)return c(a,!0);if(s)return s(a,!0);var u=new Error("Cannot find module '"+a+"'");throw u.code="MODULE_NOT_FOUND",u}var l=r[a]={exports:{}};t[a][0].call(l.exports,function(e){var r;return i(t[a][1][e]||e)},l,l.exports,e,t,r,n)}return r[a].exports}for(var s="function"==typeof Un&&Un,a=0;a>2,o=(3&t)<<4|r>>4,c=1>6:64,u=2>4,r=(15&a)<<4|(o=s.indexOf(e.charAt(u++)))>>2,n=(3&o)<<6|(c=s.indexOf(e.charAt(u++))),w[l++]=t,64!==o&&(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"),a=e("./stream/DataLengthProbe");function o(e,t,r,n,i){this.compressedSize=e,this.uncompressedSize=t,this.crc32=r,this.compression=n,this.compressedContent=i}o.prototype={getContentWorker:function(){var e=new i(n.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a("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)}},o.createWorkerFrom=function(e,t,r){return e.pipe(new s).pipe(new a("uncompressedSize")).pipe(t.compressWorker(r)).pipe(new a("compressedSize")).withStreamInfo("compression",t)},t.exports=o},{"./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,a=0+r;e^=-1;for(var o=0;o>>8^s[255&(e^t[o])];return-1^e}(0|t,e,e.length,0):function(e,t,r,n){var s=i,a=0+r;e^=-1;for(var o=0;o>>8^s[255&(e^t.charCodeAt(o))];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"),a=e("./stream/GenericWorker"),o=n?"uint8array":"array";function c(e,t){a.call(this,"FlateWorker/"+e),this._pako=null,this._pakoAction=e,this._pakoOptions=t,this.meta={}}r.magic="\b\0",s.inherits(c,a),c.prototype.processChunk=function(e){this.meta=e.meta,null===this._pako&&this._createPako(),this._pako.push(s.transformTo(o,e.data),!1)},c.prototype.flush=function(){a.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},c.prototype.cleanUp=function(){a.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,a,l){var d,w,h=e.file,A=e.compression,f=l!==o.utf8encode,p=s.transformTo("string",l(h.name)),E=s.transformTo("string",o.utf8encode(h.name)),B=h.comment,H=s.transformTo("string",l(B)),g=s.transformTo("string",o.utf8encode(B)),m=E.length!==h.name.length,y=g.length!==B.length,T="",x="",b="",R=h.dir,v=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,_=0,C,P,O;R&&(S|=16),"UNIX"===a?(_=798,S|=(C=h.unixPermissions,P=R,O=C,C||(O=P?16893:33204),(65535&O)<<16)):(_=20,S|=function(e){return 63&(e||0)}(h.dosPermissions)),d=v.getUTCHours(),d<<=6,d|=v.getUTCMinutes(),d<<=5,d|=v.getUTCSeconds()/2,w=v.getUTCFullYear()-1980,w<<=4,w|=v.getUTCMonth()+1,w<<=5,w|=v.getUTCDate(),m&&(x=n(1,1)+n(c(p),4)+E,T+="up"+n(x.length,2)+x),y&&(b=n(1,1)+n(c(H),4)+g,T+="uc"+n(b.length,2)+b);var L="";return L+="\n\0",L+=n(k,2),L+=A.magic,L+=n(d,2),L+=n(w,2),L+=n(M.crc32,4),L+=n(M.compressedSize,4),L+=n(M.uncompressedSize,4),L+=n(p.length,2),L+=n(T.length,2),{fileRecord:u.LOCAL_FILE_HEADER+L+p+T,dirRecord:u.CENTRAL_FILE_HEADER+n(_,2)+L+n(H.length,2)+"\0\0\0\0"+n(S,4)+n(i,4)+p+T+H}}var s=e("../utils"),a=e("../stream/GenericWorker"),o=e("../utf8"),c=e("../crc32"),u=e("../signature");function l(e,t,r,n){a.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,a),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,a.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"),a=e("./StringReader"),o=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 o(e):i.uint8array?new c(n.transformTo("uint8array",e)):new s(n.transformTo("array",e)):new a(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"),a=e("../base64"),o=e("../support"),c=e("../external"),u=null;if(o.nodestream)try{u=e("../nodejs/NodejsStreamOutputAdapter")}catch(e){}function l(e,t){return new c.Promise(function(r,i){var s=[],o=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 a.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[a++]=224|r>>>12:(t[a++]=240|r>>>18,t[a++]=128|r>>>12&63),t[a++]=128|r>>>6&63),t[a++]=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,a=e.length,c=new Array(2*a);for(t=r=0;t>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,a),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 a=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}(t),c=t;a!==t.length&&(i.uint8array?(c=t.subarray(0,a),this.leftOver=t.subarray(a,t.length)):(c=t.slice(0,a),this.leftOver=t.slice(a,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,a),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"),a=e("./external");function o(e){return e}function c(e,t){for(var r=0;r>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>>6:(r<65536?t[a++]=224|r>>>12:(t[a++]=240|r>>>18,t[a++]=128|r>>>12&63),t[a++]=128|r>>>6&63),t[a++]=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>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+a[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,a=0;0!==r;){for(r-=a=2e3>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t,r,i){var s=n,a=i+r;e^=-1;for(var o=i;o>>8^s[255&(e^t[o])];return-1^e}},{}],46:[function(e,t,r){var n,i=e("../utils/common"),s=e("./trees"),a=e("./adler32"),o=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,b=262,R=42,v=113,M=1,k=2,S=3,_=4;function C(e,t){return e.msg=c[t],t}function P(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 I(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,L(e.strm)}function D(e,t){e.pending_buf[e.pending++]=t}function z(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,a=e.prev_length,o=e.nice_match,c=e.strstart>e.w_size-b?e.strstart-(e.w_size-b):0,u=e.window,l=e.w_mask,d=e.prev,w=e.strstart+x,h=u[s+a-1],A=u[s+a];e.prev_length>=e.good_match&&(i>>=2),o>e.lookahead&&(o=e.lookahead);do{if(u[(r=t)+a]===A&&u[r+a-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]&&sc&&0!=--i);return a<=e.lookahead?a:e.lookahead}function N(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-b)){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=a(u.adler,l,h,d):2===u.state.wrap&&(u.adler=o(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&&(e.ins_h=(e.ins_h<=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<=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(N(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,I(e,!1),0===e.strm.avail_out))return 1;if(e.strstart-e.block_start>=e.w_size-b&&(I(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(I(e,!0),0===e.strm.avail_out?3:4):(e.strstart>e.block_start&&(I(e,!1),e.strm.avail_out),1)}),new j(4,4,8,4,X),new j(4,5,16,8,X),new j(4,6,32,32,X),new j(4,4,16,16,W),new j(8,16,32,32,W),new j(8,16,128,128,W),new j(8,32,128,256,W),new j(32,128,258,1024,W),new j(32,258,258,4096,W)],r.deflateInit=function(e,t){return Z(e,t,8,15,8,0)},r.deflateInit2=Z,r.deflateReset=J,r.deflateResetKeep=K,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,a,c;if(!e||!e.state||5>8&255),D(i,i.gzhead.time>>16&255),D(i,i.gzhead.time>>24&255),D(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),D(i,255&i.gzhead.os),i.gzhead.extra&&i.gzhead.extra.length&&(D(i,255&i.gzhead.extra.length),D(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(e.adler=o(e.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=69):(D(i,0),D(i,0),D(i,0),D(i,0),D(i,0),D(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),D(i,3),i.status=v);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=v,z(i,u),0!==i.strstart&&(z(i,e.adler>>>16),z(i,65535&e.adler)),e.adler=1}if(69===i.status)if(i.gzhead.extra){for(a=i.pending;i.gzindex<(65535&i.gzhead.extra.length)&&(i.pending!==i.pending_buf_size||(i.gzhead.hcrc&&i.pending>a&&(e.adler=o(e.adler,i.pending_buf,i.pending-a,a)),L(e),a=i.pending,i.pending!==i.pending_buf_size));)D(i,255&i.gzhead.extra[i.gzindex]),i.gzindex++;i.gzhead.hcrc&&i.pending>a&&(e.adler=o(e.adler,i.pending_buf,i.pending-a,a)),i.gzindex===i.gzhead.extra.length&&(i.gzindex=0,i.status=73)}else i.status=73;if(73===i.status)if(i.gzhead.name){a=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>a&&(e.adler=o(e.adler,i.pending_buf,i.pending-a,a)),L(e),a=i.pending,i.pending===i.pending_buf_size)){c=1;break}c=i.gzindexa&&(e.adler=o(e.adler,i.pending_buf,i.pending-a,a)),0===c&&(i.gzindex=0,i.status=91)}else i.status=91;if(91===i.status)if(i.gzhead.comment){a=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>a&&(e.adler=o(e.adler,i.pending_buf,i.pending-a,a)),L(e),a=i.pending,i.pending===i.pending_buf_size)){c=1;break}c=i.gzindexa&&(e.adler=o(e.adler,i.pending_buf,i.pending-a,a)),0===c&&(i.status=103)}else i.status=103;if(103===i.status&&(i.gzhead.hcrc?(i.pending+2>i.pending_buf_size&&L(e),i.pending+2<=i.pending_buf_size&&(D(i,255&e.adler),D(i,e.adler>>8&255),e.adler=0,i.status=v)):i.status=v),0!==i.pending){if(L(e),0===e.avail_out)return i.last_flush=-1,0}else if(0===e.avail_in&&P(t)<=P(r)&&4!==t)return C(e,-5);if(666===i.status&&0!==e.avail_in)return C(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&&(N(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&&(I(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(I(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(I(e,!1),0===e.strm.avail_out)?1:2}(i,t):3===i.strategy?function(e,t){for(var r,n,i,a,o=e.window;;){if(e.lookahead<=x){if(N(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&&(I(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(I(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(I(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&&(O(i.head),0===i.lookahead&&(i.strstart=0,i.block_start=0,i.insert=0))),L(e),0===e.avail_out))return i.last_flush=-1,0}return 4!==t?0:i.wrap<=0?1:(2===i.wrap?(D(i,255&e.adler),D(i,e.adler>>8&255),D(i,e.adler>>16&255),D(i,e.adler>>24&255),D(i,255&e.total_in),D(i,e.total_in>>8&255),D(i,e.total_in>>16&255),D(i,e.total_in>>24&255)):(z(i,e.adler>>>16),z(i,65535&e.adler)),L(e),0=r.w_size&&(0===o&&(O(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,N(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))R[s++]=65535&H;else{if(!(16&g)){if(!(64&g)){H=f[(65535&H)+(h&(1<>>=g,A-=g),A<15&&(h+=b[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-a)>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=a.wsize?(n.arraySet(a.window,t,r-a.wsize,a.wsize,0),a.wnext=0,a.whave=a.wsize):(i<(s=a.wsize-a.wnext)&&(s=i),n.arraySet(a.window,t,r-i,s,a.wnext),(i-=s)?(n.arraySet(a.window,t,r-i,i,0),a.wnext=i,a.whave=a.wsize):(a.wnext+=s,a.wnext===a.wsize&&(a.wnext=0),a.whave>>8&255,r.check=s(r.check,I,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,_=8+(15&(p>>>=4)),0===r.wbits)r.wbits=_;else if(_>r.wbits){e.msg="invalid window size",r.mode=30;break}r.dmax=1<<_,e.adler=r.check=1,r.mode=512&p?10:12,E=p=0;break;case 2:for(;E<16;){if(0===h)break e;h--,p+=c[l++]<>8&1),512&r.flags&&(I[0]=255&p,I[1]=p>>>8&255,r.check=s(r.check,I,2,0)),E=p=0,r.mode=3;case 3:for(;E<32;){if(0===h)break e;h--,p+=c[l++]<>>8&255,I[2]=p>>>16&255,I[3]=p>>>24&255,r.check=s(r.check,I,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&&(I[0]=255&p,I[1]=p>>>8&255,r.check=s(r.check,I,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,I,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&&(_=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,_)),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[l+g++],r.head&&_&&r.length<65536&&(r.head.name+=String.fromCharCode(_)),_&&g>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>>=5,E-=5,r.ndist=1+(31&p),p>>>=5,E-=5,r.ncode=4+(15&p),p>>>=4,E-=4,286>>=3,E-=3}for(;r.have<19;)r.lens[D[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,P={bits:r.lenbits},C=o(0,r.lens,0,19,r.lencode,0,r.work,P),r.lenbits=P.bits,C){e.msg="invalid code lengths set",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have>>16&255,v=65535&L,!((T=L>>>24)<=E);){if(0===h)break e;h--,p+=c[l++]<>>=T,E-=T,r.lens[r.have++]=v;else{if(16===v){for(O=T+2;E>>=T,E-=T,0===r.have){e.msg="invalid bit length repeat",r.mode=30;break}_=r.lens[r.have-1],g=3+(3&p),p>>>=2,E-=2}else if(17===v){for(O=T+3;E>>=T)),p>>>=3,E-=3}else{for(O=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++]=_}}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,P={bits:r.lenbits},C=o(1,r.lens,0,r.nlen,r.lencode,0,r.work,P),r.lenbits=P.bits,C){e.msg="invalid literal/lengths set",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,P={bits:r.distbits},C=o(2,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,P),r.distbits=P.bits,C){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,a(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;R=(L=r.lencode[p&(1<>>16&255,v=65535&L,!((T=L>>>24)<=E);){if(0===h)break e;h--,p+=c[l++]<>M)])>>>16&255,v=65535&L,!(M+(T=L>>>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=v,0===R){r.mode=26;break}if(32&R){r.back=-1,r.mode=12;break}if(64&R){e.msg="invalid literal/length code",r.mode=30;break}r.extra=15&R,r.mode=22;case 22:if(r.extra){for(O=r.extra;E>>=r.extra,E-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;R=(L=r.distcode[p&(1<>>16&255,v=65535&L,!((T=L>>>24)<=E);){if(0===h)break e;h--,p+=c[l++]<>M)])>>>16&255,v=65535&L,!(M+(T=L>>>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&R){e.msg="invalid distance code",r.mode=30;break}r.offset=v,r.extra=15&R,r.mode=24;case 24:if(r.extra){for(O=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(AB?(g=D[z+d[x]],P[O+d[x]]):(g=96,0),h=1<>k)+(A-=h)]=H<<24|g<<16|m,0!==A;);for(h=1<>=1;if(0!==h?(C&=h-1,C+=h):C=0,x++,0==--L[T]){if(T===R)break;T=t[r+d[x]]}if(v>>7)]}function D(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function z(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),a=0;for(n=1;n<=A;n++)s[n]=a=a+r[n-1]<<1;for(i=0;i<=t;i++){var o=e[2*i+1];0!==o&&(e[2*i]=N(s[o]++,o))}}function W(e){var t;for(t=0;t>1;1<=r;r--)K(e,s,r);for(i=c;r=e.heap[1],e.heap[1]=e.heap[e.heap_len--],K(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++,K(e,s,1),2<=e.heap_len;);e.heap[--e.heap_max]=e.heap[1],function(e,t){var r,n,i,s,a,o,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>=7;n>>=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?(z(e,2+(n?1:0),3),J(e,b,R)):(z(e,4+(n?1:0),3),function(e,t,r,n){var i;for(z(e,t-257,5),z(e,r-1,5),z(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*I(t)]++),e.last_lit===e.lit_bufsize-1},r._tr_align=function(e){var t;z(e,2,3),U(e,E,b),16===(t=e).bi_valid?(D(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,a=1,o={},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 Kn(){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=undefined,i=e=>btoa(String.fromCharCode(...e));return{publicKey:i(new Uint8Array(await crypto.subtle.exportKey("raw",e.publicKey))),privateKey:i(r)}}function Jn(e){if(!e)return!1;const t=undefined;return/^(?!-)(?:[A-Za-z0-9-]{1,63}.)+[A-Za-z]{2,}$/.test(e)}async function Zn(e,t=!1){const{dohURL:r}=globalThis.globalConfig,n=`${r}?name=${encodeURIComponent(e)}`,i={ipv4:`${n}&type=A`,ipv6:`${n}&type=AAAA`};try{const e=await Vn(i.ipv4,1),r=undefined;return{ipv4:e,ipv6:t?[]:await Vn(i.ipv6,28)}}catch(t){const r=t instanceof Error?t.message:String(t);throw new Error(`Error resolving DNS for ${e}: ${r}`)}}async function Vn(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 Gn(){const{settings:{VLConfigs:e,TRConfigs:t},dict:{_VL_:r,_TR_:n}}=globalThis;return[].concatIf(e,r).concatIf(t,n)}async function Yn(e){const{httpConfig:{hostName:t},settings:{enableIPv6:r,customCdnAddrs:n,cleanIPs:i}}=globalThis,{ipv4:s,ipv6:a}=await Zn(t,!r),o=undefined;return[t,"www.speedtest.net",...s,...a.map(e=>`[${e}]`),...i].concatIf(!e,n)}function Qn(e,t,r,n,i,s){const{settings:{cleanIPs:a,customCdnAddrs:o},dict:{_VL_:c,_VL_CAP_:u,_TR_CAP_:l}}=globalThis,d=undefined,w=o.includes(r)?" C":i?" F":"",h=s?"🔗 ":"",A=n===c?u:l;let f;return f=a.includes(r)?"Clean IP":Jn(r)?"Domain":ri(r)?"IPv4":ni(r)?"IPv6":"",`💦 ${e} - ${h}${A}${w} - ${f} : ${t}`}function qn(e){let t="";for(let r=0;re.charCodeAt(0).toString(16).padStart(2,"0")).join("").match(/.{2}/g).map(e=>parseInt(e,16))}function ri(e){const t=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 ni(e){const t=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 ii(e){try{const t=undefined,r=new URL(e).hostname,n=undefined;return{host:r,isHostDomain:Jn(r)}}catch{return{host:"",isHostDomain:!1}}}function si(e){const{httpConfig:{hostName:t},settings:{customCdnAddrs:r,customCdnHost:n,customCdnSni:i}}=globalThis,s=r.includes(e),a=undefined,o=undefined;return{host:s?n:t,sni:s?i:qn(t),allowInsecure:s}}function ai(e,t){const r=/^(?:\[(?.+?)\]|(?[^:]+))(:(?\d+))?$/,n=e.match(r);if(!n||!n.groups)return{host:"",port:0};const{ipv6:i,host:s,port:a}=n.groups;let o=i??s??"";t&&i&&(o=`[${i}]`);const c=undefined;return{host:o,port:a?Number(a):0}}function oi(e){const{defaultHttpsPorts:t}=globalThis.httpConfig;return t.includes(e)}var ci=e=>"direct"===e,ui=e=>"block"===e;function li(e){const{customBypassRules:t,customBypassSanctionRules:r,customBlockRules:n}=globalThis.settings;return{bypass:{geosites:e.filter(e=>ci(e.type)).map(e=>e.geosite),geoips:e.filter(e=>ci(e.type)&&e.geoip).map(e=>e.geoip),domains:[...t.filter(Jn),...r.filter(Jn)],ips:t.filter(e=>!Jn(e))},block:{geosites:e.filter(e=>ui(e.type)).map(e=>e.geosite),geoips:e.filter(e=>ui(e.type)&&e.geoip).map(e=>e.geoip),domains:n.filter(Jn),ips:n.filter(e=>!Jn(e))}}}function di(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})=>ci(e)&&r&&n===t).map(({geosite:e,geoip:t})=>({geosite:e,geoip:t})),geosites:e.filter(({type:e,geoip:r,dns:n})=>ci(e)&&!r&&n===t).map(e=>e.geosite),domains:n.filter(Jn)},antiSanctionDNS:{geosites:e.filter(e=>ci(e.type)&&e.dns===r).map(e=>e.geosite),domains:i.filter(Jn)}},block:{geosites:e.filter(e=>ui(e.type)).map(e=>e.geosite),domains:s.filter(Jn)}}}function wi(e,t){if(e&&t)return e===t?String(e):`${e}-${t}`}function hi(e){return(new TextDecoder).decode(Uint8Array.from(atob(e),e=>e.charCodeAt(0)))}function Ai(e){const t=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)}function fi(e,t,r,n,i){const s={"Content-Type":"application/json",...i},a={success:e,status:t,message:r??null,body:n??null};return new Response(JSON.stringify(a),{status:t,headers:s})}async function pi(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 Fn(t)),r!==i.panelVersion&&(i=await Ei(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 Ei(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 a=async(e,t)=>{const n=i?.[e]??s?.[e]??r[e];return t?await t(n):n},o=[["remoteDNS"],["remoteDnsHost","remoteDNS",Bi],["localDNS"],["antiSanctionDNS"],["enableIPv6"],["fakeDNS"],["logLevel"],["allowLANConnection"],["proxyIPMode"],["proxyIPs"],["prefixes"],["outProxy"],["outProxyParams","outProxy",Hi],["cleanIPs"],["customCdnAddrs"],["customCdnHost"],["customCdnSni"],["bestVLTRInterval"],["VLConfigs"],["TRConfigs"],["ports"],["fingerprint"],["enableTFO"],["fragmentMode"],["fragmentLengthMin"],["fragmentLengthMax"],["fragmentIntervalMin"],["fragmentIntervalMax"],["fragmentMaxSplitMin"],["fragmentMaxSplitMax"],["fragmentPackets"],["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(o.map(async([e,t,r])=>[e,await a(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 Bi(e){const{host:t,isHostDomain:r}=ii(e),n={host:t,isDomain:r,ipv4:[],ipv6:[]};if(r){const{ipv4:e,ipv6:r}=await Zn(t);n.ipv4=e,n.ipv6=r}return n}function Hi(e){if(!e)return{};const{_SS_:t,_TR_:r,_VL_:n,_VM_:i}=globalThis.dict;let s=new URL(e);const a=s.protocol.slice(0,-1),o="ss"===a?t:a.replace("socks5","socks");if(o===i){const e=JSON.parse(hi(s.host));return{protocol:o,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:o,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(o){case n:return u(!0,{uuid:s.username});case r:return u(!0,{password:s.username});case t:const e=hi(s.username),[i,...a]=e.split(":");return u(!0,{method:i,password:a.join(":")});case"socks":case"http":let o,c;try{const e=hi(s.username);e.includes(":")&&([o,c]=e.split(":"))}catch(e){o=s.username,c=s.password}return u(!1,{user:o||void 0,pass:c||void 0});default:return{}}}async function gi(e,t){const r=await pi(e,t);globalThis.settings=r.settings}function mi(e,t){const{pathname:r}=new URL(e.url),{UUID:n,TR_PASS:i,FALLBACK:s,DOH_URL:a}=t;globalThis.globalConfig={userID:n,TrPass:i,pathName:decodeURIComponent(r),fallbackDomain:s||"speed.cloudflare.com",dohURL:a||"https://cloudflare-dns.com/dns-query"}}function yi(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 Ti(e,t){const{_VL_CAP_:r,_TR_CAP_:n,_website_:i}=globalThis.dict,{UUID:s,TR_PASS:a,SUB_PATH:o,kv:c}=t,{pathname:u,origin:l,searchParams:d,hostname:w}=new URL(e.url);if(!["/secrets","/favicon.ico"].includes(decodeURIComponent(u))){if(!s||!a)throw new Error(`Please set ${r} UUID and ${n} password first. Visit here to generate them.`,{cause:"init"});if(!Ai(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.0.1",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:o||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",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.0.1"};var xi=new TextEncoder,bi=new TextDecoder,Ri=2**32;function vi(...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 Mi(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 ki(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}`),Wi=(e,t)=>e.name===t;function ji(e){return parseInt(e.name.slice(4),10)}function Fi(e){switch(e){case"ES256":return"P-256";case"ES384":return"P-384";case"ES512":return"P-521";default:throw new Error("unreachable")}}function Ki(e,t){if(t&&!e.usages.includes(t))throw new TypeError(`CryptoKey does not support this operation, its usages must include ${t}.`)}function Ji(e,t,r){switch(t){case"HS256":case"HS384":case"HS512":{if(!Wi(e.algorithm,"HMAC"))throw Xi("HMAC");const r=parseInt(t.slice(2),10),n=undefined;if(ji(e.algorithm.hash)!==r)throw Xi(`SHA-${r}`,"algorithm.hash");break}case"RS256":case"RS384":case"RS512":{if(!Wi(e.algorithm,"RSASSA-PKCS1-v1_5"))throw Xi("RSASSA-PKCS1-v1_5");const r=parseInt(t.slice(2),10),n=undefined;if(ji(e.algorithm.hash)!==r)throw Xi(`SHA-${r}`,"algorithm.hash");break}case"PS256":case"PS384":case"PS512":{if(!Wi(e.algorithm,"RSA-PSS"))throw Xi("RSA-PSS");const r=parseInt(t.slice(2),10),n=undefined;if(ji(e.algorithm.hash)!==r)throw Xi(`SHA-${r}`,"algorithm.hash");break}case"Ed25519":case"EdDSA":if(!Wi(e.algorithm,"Ed25519"))throw Xi("Ed25519");break;case"ML-DSA-44":case"ML-DSA-65":case"ML-DSA-87":if(!Wi(e.algorithm,t))throw Xi(t);break;case"ES256":case"ES384":case"ES512":{if(!Wi(e.algorithm,"ECDSA"))throw Xi("ECDSA");const r=Fi(t),n=undefined;if(e.algorithm.namedCurve!==r)throw Xi(r,"algorithm.namedCurve");break}default:throw new TypeError("CryptoKey does not support this operation")}Ki(e,r)}function Zi(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 Vi=(e,...t)=>Zi("Key must be ",e,...t),Gi=(e,t,...r)=>Zi(`Key for the ${e} algorithm must be `,t,...r),Yi=e=>{if("CryptoKey"===e?.[Symbol.toStringTag])return!0;try{return e instanceof CryptoKey}catch{return!1}},Qi=e=>"KeyObject"===e?.[Symbol.toStringTag],qi=e=>Yi(e)||Qi(e);function $i(...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 es=e=>"object"==typeof e&&null!==e;function ts(e){if(!es(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 rs(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 ns(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 Di('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}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 Di('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break;case"EC":switch(e.alg){case"ES256":t={name:"ECDSA",namedCurve:"P-256"},r=e.d?["sign"]:["verify"];break;case"ES384":t={name:"ECDSA",namedCurve:"P-384"},r=e.d?["sign"]:["verify"];break;case"ES512":t={name:"ECDSA",namedCurve:"P-521"},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 Di('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}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 Di('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break;default:throw new Di('Invalid or unsupported JWK "kty" (Key Type) Parameter value')}return{algorithm:t,keyUsages:r}}async function is(e){if(!e.alg)throw new TypeError('"alg" argument is required when "jwk.alg" is not present');const{algorithm:t,keyUsages:r}=ns(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)}function ss(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 Di(`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 as(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 os=e=>ts(e)&&"string"==typeof e.kty,cs=e=>"oct"!==e.kty&&("AKP"===e.kty&&"string"==typeof e.priv||"string"==typeof e.d),us=e=>"oct"!==e.kty&&void 0===e.d&&void 0===e.priv,ls=e=>"oct"===e.kty&&"string"==typeof e.k,ds,ws=async(e,t,r,n=!1)=>{ds||=new WeakMap;let i=ds.get(e);if(i?.[r])return i[r];const s=await is({...t,alg:r});return n&&Object.freeze(e),i?i[r]=s:ds.set(e,{[r]:s}),s},hs=(e,t)=>{ds||=new WeakMap;let r=ds.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("given KeyObject instance cannot be used for this algorithm")}s=e.toCryptoKey(e.asymmetricKeyType,i,n?[]:["deriveBits"])}if("ed25519"===e.asymmetricKeyType){if("EdDSA"!==t&&"Ed25519"!==t)throw new TypeError("given KeyObject instance cannot be used for this algorithm");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("given KeyObject instance cannot be used for this algorithm");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("given KeyObject instance cannot be used for this algorithm")}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=undefined,a=new Map([["prime256v1","P-256"],["secp384r1","P-384"],["secp521r1","P-521"]]).get(e.asymmetricKeyDetails?.namedCurve);if(!a)throw new TypeError("given KeyObject instance cannot be used for this algorithm");"ES256"===t&&"P-256"===a&&(s=e.toCryptoKey({name:"ECDSA",namedCurve:a},i,[n?"verify":"sign"])),"ES384"===t&&"P-384"===a&&(s=e.toCryptoKey({name:"ECDSA",namedCurve:a},i,[n?"verify":"sign"])),"ES512"===t&&"P-521"===a&&(s=e.toCryptoKey({name:"ECDSA",namedCurve:a},i,[n?"verify":"sign"])),t.startsWith("ECDH-ES")&&(s=e.toCryptoKey({name:"ECDH",namedCurve:a},i,n?[]:["deriveBits"]))}if(!s)throw new TypeError("given KeyObject instance cannot be used for this algorithm");return r?r[t]=s:ds.set(e,{[t]:s}),s};async function As(e,t){if(e instanceof Uint8Array)return e;if(Yi(e))return e;if(Qi(e)){if("secret"===e.type)return e.export();if("toCryptoKey"in e&&"function"==typeof e.toCryptoKey)try{return hs(e,t)}catch(e){if(e instanceof TypeError)throw e}let r=e.export({format:"jwk"});return ws(e,r,t)}if(os(e))return e.k?_i(e.k):ws(e,e,t,!0);throw new Error("unreachable")}var fs=e=>e?.[Symbol.toStringTag],ps=(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},Es=(e,t,r)=>{if(!(t instanceof Uint8Array)){if(os(t)){if(ls(t)&&ps(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(!qi(t))throw new TypeError(Gi(e,t,"CryptoKey","KeyObject","JSON Web Key","Uint8Array"));if("secret"!==t.type)throw new TypeError(`${fs(t)} instances for symmetric algorithms must be of type "secret"`)}},Bs=(e,t,r)=>{if(os(t))switch(r){case"decrypt":case"sign":if(cs(t)&&ps(e,t,r))return;throw new TypeError("JSON Web Key for this operation be a private JWK");case"encrypt":case"verify":if(us(t)&&ps(e,t,r))return;throw new TypeError("JSON Web Key for this operation be a public JWK")}if(!qi(t))throw new TypeError(Gi(e,t,"CryptoKey","KeyObject","JSON Web Key"));if("secret"===t.type)throw new TypeError(`${fs(t)} instances for asymmetric algorithms must not be of type "secret"`);if("public"===t.type)switch(r){case"sign":throw new TypeError(`${fs(t)} instances for asymmetric algorithm signing must be of type "private"`);case"decrypt":throw new TypeError(`${fs(t)} instances for asymmetric algorithm decryption must be of type "private"`)}if("private"===t.type)switch(r){case"verify":throw new TypeError(`${fs(t)} instances for asymmetric algorithm verifying must be of type "public"`);case"encrypt":throw new TypeError(`${fs(t)} instances for asymmetric algorithm encryption must be of type "public"`)}};function Hs(e,t,r){switch(e.substring(0,2)){case"A1":case"A2":case"di":case"HS":case"PB":Es(e,t,r);break;default:Bs(e,t,r)}}function gs(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 Di(`alg ${e} is not supported either by JOSE or your javascript runtime`)}}async function ms(e,t,r){if(t instanceof Uint8Array){if(!e.startsWith("HS"))throw new TypeError(Vi(t,"CryptoKey","KeyObject","JSON Web Key"));return crypto.subtle.importKey("raw",t,{hash:`SHA-${e.slice(-3)}`,name:"HMAC"},!1,[r])}return Ji(t,e,r),t}async function ys(e,t,r,n){const i=await ms(e,t,"verify");rs(e,i);const s=gs(e,i.algorithm);try{return await crypto.subtle.verify(s,i,r,n)}catch{return!1}}async function Ts(e,t,r){if(!ts(e))throw new zi("Flattened JWS must be an object");if(void 0===e.protected&&void 0===e.header)throw new zi('Flattened JWS must have either of the "protected" or "header" members');if(void 0!==e.protected&&"string"!=typeof e.protected)throw new zi("JWS Protected Header incorrect type");if(void 0===e.payload)throw new zi("JWS Payload missing");if("string"!=typeof e.signature)throw new zi("JWS Signature missing or incorrect type");if(void 0!==e.header&&!ts(e.header))throw new zi("JWS Unprotected Header incorrect type");let n={};if(e.protected)try{const t=_i(e.protected);n=JSON.parse(bi.decode(t))}catch{throw new zi("JWS Protected Header is invalid")}if(!$i(n,e.header))throw new zi("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");const i={...n,...e.header},s=undefined;let a=!0;if(ss(zi,new Map([["b64",!0]]),r?.crit,n,i).has("b64")&&(a=n.b64,"boolean"!=typeof a))throw new zi('The "b64" (base64url-encode payload) Header Parameter must be a boolean');const{alg:o}=i;if("string"!=typeof o||!o)throw new zi('JWS "alg" (Algorithm) Header Parameter missing or invalid');const c=r&&as("algorithms",r.algorithms);if(c&&!c.has(o))throw new Ii('"alg" (Algorithm) Header Parameter value not allowed');if(a){if("string"!=typeof e.payload)throw new zi("JWS Payload must be a string")}else if("string"!=typeof e.payload&&!(e.payload instanceof Uint8Array))throw new zi("JWS Payload must be a string or an Uint8Array instance");let u=!1;"function"==typeof t&&(t=await t(n,e),u=!0),Hs(o,t,"verify");const l=vi(void 0!==e.protected?Mi(e.protected):new Uint8Array,Mi("."),"string"==typeof e.payload?a?Mi(e.payload):xi.encode(e.payload):e.payload);let d;try{d=_i(e.signature)}catch{throw new zi("Failed to base64url decode the signature")}const w=await As(t,o),h=undefined;if(!await ys(o,w,d,l))throw new Ni;let A;if(a)try{A=_i(e.payload)}catch{throw new zi("Failed to base64url decode the payload")}else A="string"==typeof e.payload?xi.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 xs(e,t,r){if(e instanceof Uint8Array&&(e=bi.decode(e)),"string"!=typeof e)throw new zi("Compact JWS must be a string or Uint8Array");const{0:n,1:i,2:s,length:a}=e.split(".");if(3!==a)throw new zi("Invalid Compact JWS");const o=await Ts({payload:i,protected:n,signature:s},t,r),c={payload:o.payload,protectedHeader:o.protectedHeader};return"function"==typeof t?{...c,key:o.key}:c}var bs=e=>Math.floor(e.getTime()/1e3),Rs=60,vs=3600,Ms=86400,ks=7*Ms,Ss=31557600,_s=/^(\+|\-)? ?(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i;function Cs(e){const t=_s.exec(e);if(!t||t[4]&&t[1])throw new TypeError("Invalid time period format");const r=parseFloat(t[2]),n=undefined;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*Rs);break;case"hour":case"hours":case"hr":case"hrs":case"h":i=Math.round(r*vs);break;case"day":case"days":case"d":i=Math.round(r*Ms);break;case"week":case"weeks":case"w":i=Math.round(r*ks);break;default:i=Math.round(r*Ss);break}return"-"===t[1]||"ago"===t[4]?-i:i}function Ps(e,t){if(!Number.isFinite(t))throw new TypeError(`Invalid ${e} input`);return t}var Os=e=>e.includes("/")?e.toLowerCase():`application/${e.toLowerCase()}`,Ls=(e,t)=>"string"==typeof e?t.includes(e):!!Array.isArray(e)&&t.some(Set.prototype.has.bind(new Set(e)));function Is(e,t,r={}){let n;try{n=JSON.parse(bi.decode(t))}catch{}if(!ts(n))throw new Ui("JWT Claims Set must be a top-level JSON object");const{typ:i}=r;if(i&&("string"!=typeof e.typ||Os(e.typ)!==Os(i)))throw new Oi('unexpected "typ" JWT header value',n,"typ","check_failed");const{requiredClaims:s=[],issuer:a,subject:o,audience:c,maxTokenAge:u}=r,l=[...s];void 0!==u&&l.push("iat"),void 0!==c&&l.push("aud"),void 0!==o&&l.push("sub"),void 0!==a&&l.push("iss");for(const e of new Set(l.reverse()))if(!(e in n))throw new Oi(`missing required "${e}" claim`,n,e,"missing");if(a&&!(Array.isArray(a)?a:[a]).includes(n.iss))throw new Oi('unexpected "iss" claim value',n,"iss","check_failed");if(o&&n.sub!==o)throw new Oi('unexpected "sub" claim value',n,"sub","check_failed");if(c&&!Ls(n.aud,"string"==typeof c?[c]:c))throw new Oi('unexpected "aud" claim value',n,"aud","check_failed");let d;switch(typeof r.clockTolerance){case"string":d=Cs(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=bs(w||new Date);if((void 0!==n.iat||u)&&"number"!=typeof n.iat)throw new Oi('"iat" claim must be a number',n,"iat","invalid");if(void 0!==n.nbf){if("number"!=typeof n.nbf)throw new Oi('"nbf" claim must be a number',n,"nbf","invalid");if(n.nbf>h+d)throw new Oi('"nbf" claim timestamp check failed',n,"nbf","check_failed")}if(void 0!==n.exp){if("number"!=typeof n.exp)throw new Oi('"exp" claim must be a number',n,"exp","invalid");if(n.exp<=h-d)throw new Li('"exp" claim timestamp check failed',n,"exp","check_failed")}if(u){const e=h-n.iat,t=undefined;if(e-d>("number"==typeof u?u:Cs(u)))throw new Li('"iat" claim timestamp check failed (too far in the past)',n,"iat","check_failed");if(e<0-d)throw new Oi('"iat" claim timestamp check failed (it should be in the past)',n,"iat","check_failed")}return n}var Ds=class{#e;constructor(e){if(!ts(e))throw new TypeError("JWT Claims Set MUST be an object");this.#e=structuredClone(e)}data(){return xi.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=Ps("setNotBefore",e):e instanceof Date?this.#e.nbf=Ps("setNotBefore",bs(e)):this.#e.nbf=bs(new Date)+Cs(e)}set exp(e){"number"==typeof e?this.#e.exp=Ps("setExpirationTime",e):e instanceof Date?this.#e.exp=Ps("setExpirationTime",bs(e)):this.#e.exp=bs(new Date)+Cs(e)}set iat(e){void 0===e?this.#e.iat=bs(new Date):e instanceof Date?this.#e.iat=Ps("setIssuedAt",bs(e)):this.#e.iat=Ps("setIssuedAt","string"==typeof e?bs(new Date)+Cs(e):e)}};async function zs(e,t,r){const n=await xs(e,t,r);if(n.protectedHeader.crit?.includes("b64")&&!1===n.protectedHeader.b64)throw new Ui("JWTs MUST NOT use unencoded payload");const i=undefined,s={payload:Is(n.protectedHeader,n.payload,r),protectedHeader:n.protectedHeader};return"function"==typeof t?{...s,key:n.key}:s}async function Us(e,t,r){const n=await ms(e,t,"sign");rs(e,n);const i=await crypto.subtle.sign(gs(e,n.algorithm),n,r);return new Uint8Array(i)}var Ns=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){if(this.#t)throw new TypeError("setProtectedHeader can only be called once");return this.#t=e,this}setUnprotectedHeader(e){if(this.#r)throw new TypeError("setUnprotectedHeader can only be called once");return this.#r=e,this}async sign(e,t){if(!this.#t&&!this.#r)throw new zi("either setProtectedHeader or setUnprotectedHeader must be called before #sign()");if(!$i(this.#t,this.#r))throw new zi("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");const r={...this.#t,...this.#r},n=undefined;let i=!0;if(ss(zi,new Map([["b64",!0]]),t?.crit,this.#t,r).has("b64")&&(i=this.#t.b64,"boolean"!=typeof i))throw new zi('The "b64" (base64url-encode payload) Header Parameter must be a boolean');const{alg:s}=r;if("string"!=typeof s||!s)throw new zi('JWS "alg" (Algorithm) Header Parameter missing or invalid');let a,o,c,u;Hs(s,e,"sign"),i?(a=Ci(this.#e),o=Mi(a)):(o=this.#e,a=""),this.#t?(c=Ci(JSON.stringify(this.#t)),u=Mi(c)):(c="",u=new Uint8Array);const l=vi(u,Mi("."),o),d=await As(e,s),w=undefined,h={signature:Ci(await Us(s,d,l)),payload:a};return this.#r&&(h.header=this.#r),this.#t&&(h.protected=c),h}},Xs=class{#n;constructor(e){this.#n=new Ns(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}`}},Ws=class{#t;#i;constructor(e={}){this.#i=new Ds(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 Xs(this.#i.data());if(r.setProtectedHeader(this.#t),Array.isArray(this.#t?.crit)&&this.#t.crit.includes("b64")&&!1===this.#t.b64)throw new Ui("JWTs MUST NOT use unencoded payload");return r.sign(e,t)}};async function js(e,t){if("POST"!==e.method)return fi(!1,405,"Method not allowed.");const r=undefined,n=undefined;if(await e.text()!==await t.kv.get("pwd"))return fi(!1,401,"Wrong password.");let i=await t.kv.get("secretKey");i||(i=Fs(),await t.kv.put("secretKey",i));const s=(new TextEncoder).encode(i),{userID:a}=globalThis.globalConfig,o=undefined;return fi(!0,200,"Successfully generated Auth token",null,{"Set-Cookie":`jwtToken=${await new Ws({userID:a}).setProtectedHeader({alg:"HS256"}).setIssuedAt().setExpirationTime("24h").sign(s)}; HttpOnly; Secure; Max-Age=604800; Path=/; SameSite=Strict`,"Content-Type":"text/plain"})}function Fs(){const e=new Uint8Array(32);return crypto.getRandomValues(e),Array.from(e,e=>e.toString(16).padStart(2,"0")).join("")}async function Ks(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:a}=await zs(s,n);return console.log(`Successfully authenticated, User ID: ${a.userID}`),!0}catch(e){const t=e instanceof Error?e.message:String(e);return console.log(t),!1}}async function Js(e,t){let r=await Ks(e,t);const n=await t.kv.get("pwd");if(n&&!r)return fi(!1,401,"Unauthorized.");const i=await e.text();return i===n?fi(!1,400,"Please enter a new Password."):(await t.kv.put("pwd",i),fi(!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 Zs(){const{localDNS:e,antiSanctionDNS:t,blockMalware:r,blockPhishing:n,blockCryptominers:i,blockAds:s,blockPorn:a,bypassIran:o,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:a,type:"block",format:"text",geosite:"nsfw",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-clash-rules/release/nsfw.txt"},{rule:o,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 Vs(e,t,r){const{localDNS:n,remoteDNS:i,warpRemoteDNS:s,antiSanctionDNS:a,outProxyParams:o,remoteDnsHost:c,enableIPv6:u,fakeDNS:l,allowLANConnection:d}=globalThis.settings,w="localhost"===n?"system":`${n}#DIRECT`,h=undefined,A=undefined,f=`${t?s:i}#${t?`💦 Warp ${r?"Pro ":""}- Best Ping 🚀`:e?"💦 Best Ping 🚀":"✅ Selector"}`,p={},E={};if(e&&!t){const{server:e}=o;Jn(e)&&(E[e]=f)}if(c.isDomain&&!t){const{ipv4:e,ipv6:t,host:r}=c;p[r]=e.concatIf(u,t)}const B=undefined,H=di(Zs()),g=undefined;[...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]=`${a}#DIRECT`);const{host:e,isHostDomain:t}=ii(a);t&&y.push(e)}y.forEach(e=>E[e]=w);const T=undefined;let x="redir-host",b={};l&&(x="fake-ip",b={"fake-ip-range":"198.18.0.1/16","fake-ip-filter-mode":"blacklist","fake-ip-filter":["+.lan","+.local"]});const R=undefined;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,...b}}function Gs(e){const{blockUDP443:t}=globalThis.settings,r=undefined,n=li(Zs()),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=>qs(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=>qs(e,"DIRECT")),"MATCH,✅ Selector"]}function Ys(){const e=undefined;return Zs().reduce((e,t)=>(Qs(e,t),e),{}).omitEmpty()}function Qs(e,t){const{geosite:r,geoip:n,geositeURL:i,geoipURL:s,format:a}=t,o="text"===a?"txt":a,c=(t,r,n)=>{e[t]={type:"http",format:a,behavior:r,path:`./ruleset/${t}.${o}`,interval:86400,url:n}};r&&i&&c(r,"domain",i),n&&s&&c(n,"ipcidr",s)}function qs(e,t){const r=(e=ni(e)?e.replace(/\[|\]/g,""):e).includes("/")?"":ri(e)?"/32":"/128";return`IP-CIDR,${e}${r},${t}`}function $s(e,t,r,n,i,s,a,o,c){return{name:e,type:t,server:r.replace(/\[|\]/g,""),port:n,"ip-version":i?"ipv4-prefer":"ipv4",tfo:s,udp:!1,...c,...a,...o}}function ea(e,t,r,n){const{dict:{_VL_:i,_TR_:s},globalConfig:{userID:a,TrPass:o},settings:{fingerprint:c,enableTFO:u,enableIPv6:l}}=globalThis,d=oi(n);if(e===s&&!d)return null;const{host:w,sni:h,allowInsecure:A}=si(r),f=d?ia(e,"tls",A,h,"http/1.1",c):{},p=sa("ws",void 0,ei(e),w,void 0,2560);return $s(t,e,r,n,l,u,f,p,e===i?{uuid:a,"packet-encoding":""}:{password:o})}function ta(e,t,r,n,i){const{amneziaNoiseCount:s,amneziaNoiseSizeMin:a,amneziaNoiseSizeMax:o,enableIPv6:c}=globalThis.settings,{host:u,port:l}=ai(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:a,jmax:o}:void 0}}function ra(){const{dict:{_SS_:e,_VL_:t,_TR_:r,_VM_:n},settings:{outProxy:i,outProxyParams:{protocol:s,server:a,port:o,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:b}}}=globalThis,{searchParams:R}=new URL(i),v=R.get("ed"),M=v?+v:void 0,k=ia(s,A,!1,p||a,g,E,m,y),S=sa(f,T,H,B,x,M);switch(s){case"http":return $s("","http",a,o,!1,!1,{},{},{username:c,password:u});case"socks":return $s("","socks5",a,o,!1,!1,{},{},{username:c,password:u});case e:return $s("","ss",a,o,!1,!1,{},{},{cipher:d,password:l});case t:return $s("",t,a,o,!1,!1,k,S,{uuid:w,flow:h});case n:return $s("",n,a,o,!1,!1,k,S,{uuid:w,cipher:"auto",alterId:b});case r:if("none"===A)return;return $s("",r,a,o,!1,!1,k,S,{password:l});default:return}}function na(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 ia(e,t,r,n,i,s,a,o){if(!["tls","reality"].includes(t))return{};const{_TR_:c}=globalThis.dict,u={tls:!0,[e===c?"sni":"servername"]:n,"client-fingerprint":"randomized"===s?"random":s,"skip-cert-verify":r};return"tls"===t?{...u,alpn:i?.split(",")}:"reality"===t&&a&&o?{...u,"reality-opts":{"public-key":a,"short-id":o}}:{}}function sa(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 aa={enable:!0,stack:"mixed","auto-route":!0,"strict-route":!0,"auto-detect-interface":!0,"dns-hijack":["any:53","tcp://any:53"],mtu:9e3},oa={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 ca(e,t,r,n,i,s,a){const{logLevel:o,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":o.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 Vs(i,s,a),tun:aa,sniffer:oa,proxies:e,"proxy-groups":[{name:"✅ Selector",type:"select",proxies:t}],"rule-providers":Ys(),rules:Gs(s),ntp:{enable:!0,server:"time.cloudflare.com",port:123,interval:30}},d=undefined,w=na(s?`💦 Warp ${a?"Pro ":""}- Best Ping 🚀`:"💦 Best Ping 🚀",r,s);return l["proxy-groups"].push(w),s&&l["proxy-groups"].push(na(`💦 WoW ${a?"Pro ":""}- Best Ping 🚀`,n,s)),i&&l["proxy-groups"].push(na("💦 🔗 Best Ping 🚀",n,s)),l}async function ua(){const{outProxy:e,ports:t}=globalThis.settings,r=e?ra():void 0,n=!!r,i=[],s=[],a=[],o=await Yn(!1),c=Gn(),u=["💦 Best Ping 🚀"].concatIf(n,"💦 🔗 Best Ping 🚀");c.forEach(e=>{let c=1;t.forEach(t=>{o.forEach(o=>{const l=Qn(c,t,o,e,!1,!1),d=ea(e,l,o,t);if(d){if(i.push(l),u.push(l),a.push(d),n){const n=Qn(c,t,o,e,!1,!0);let i=structuredClone(r);i.name=n,i["dialer-proxy"]=l,a.push(i),s.push(n),u.push(n)}c++}})})});const l=await ca(a,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 la(e,t,r){const{warpEndpoints:n}=globalThis.settings,{warpAccounts:i}=await pi(e,t),s=[],a=[],o=[],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}🌍`;a.push(l),u.push(n,l);const d=ta(i[0],n,e,"",r),w=ta(i[1],l,e,n,!1);o.push(d,w)});const l=await ca(o,u,s,a,!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 da(){const{localDNS:e,antiSanctionDNS:t,blockMalware:r,blockPhishing:n,blockCryptominers:i,blockAds:s,blockPorn:a,bypassIran:o,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:a,type:"block",geosite:"geosite-nsfw",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-nsfw.srs"},{rule:o,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 wa(e,t){const{localDNS:r,remoteDNS:n,warpRemoteDNS:i,antiSanctionDNS:s,outProxyParams:a,remoteDnsHost:o,enableIPv6:c,fakeDNS:u}=globalThis.settings,l=undefined,d=new URL(n).protocol.replace(":",""),w=[{type:e?"udp":d,server:e?i:o.host,detour:e?"💦 Warp - Best Ping 🚀":t?"💦 Best Ping 🚀":"✅ Selector",tag:"dns-remote"}];"localhost"===r?ha(w,"local","dns-direct",void 0,void 0,void 0):ha(w,"udp","dns-direct",r,void 0,void 0);const h=[{clash_mode:"Direct",server:"dns-direct"},{clash_mode:"Global",server:"dns-remote"}];if(t&&!e){const{server:e}=a;Jn(e)&&h.push({domain:e,server:"dns-remote"})}if(o.isDomain&&!e){const{ipv4:e,ipv6:t,host:r}=o,n=undefined;ha(w,"hosts","hosts",void 0,void 0,void 0,r,e.concatIf(c,t)),h.unshift({ip_accept_any:!0,server:"hosts"})}const A=undefined,f=di(da()),p=undefined;[...f.block.geosites,...f.block.domains].length&&Aa(h,"reject",void 0,f.block.geosites,void 0,f.block.domains),f.bypass.localDNS.geositeGeoips.forEach(({geosite:e,geoip:t})=>{Aa(h,"dns-direct",void 0,[e],t,void 0)});const E=undefined;[...f.bypass.localDNS.geosites,...f.bypass.localDNS.domains].length&&Aa(h,"dns-direct",void 0,f.bypass.localDNS.geosites,void 0,f.bypass.localDNS.domains);const B=undefined;if([...f.bypass.antiSanctionDNS.geosites,...f.bypass.antiSanctionDNS.domains].length){const e=ii(s);Aa(h,"dns-anti-sanction",void 0,f.bypass.antiSanctionDNS.geosites,void 0,f.bypass.antiSanctionDNS.domains),e.isHostDomain?ha(w,"https","dns-anti-sanction",e.host,void 0,"dns-direct"):ha(w,"udp","dns-anti-sanction",s,void 0,void 0)}return u&&(ha(w,"fakeip","dns-fake",void 0,void 0,void 0,void 0,void 0,"198.18.0.0/15",c?"fc00::/18":void 0),Aa(h,"dns-fake","tun-in",void 0,void 0,void 0,["A","AAAA"])),{servers:w,rules:h,strategy:c?"prefer_ipv4":"ipv4_only",independent_cache:!0}}function ha(e,t,r,n,i,s,a,o,c,u){e.push({type:t,server:n,detour:i,domain_resolver:s?{server:s,strategy:"ipv4_only"}:void 0,predefined:a?{[a]:o}:void 0,inet4_range:c,inet6_range:u,tag:r})}function Aa(e,t,r,n,i,s,a){const o=n&&i;e.push({inbound:r,type:o?"logical":void 0,mode:o?"and":void 0,rules:o?[{rule_set:n},{rule_set:i}]:void 0,rule_set:n?.length&&!i?n:void 0,domain_suffix:s?.omitEmpty(),query_type:a,action:"reject"===t?"reject":"route",server:"reject"===t?void 0:t})}function fa(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&&pa(i,"reject",void 0,void 0,void 0,void 0,"udp","quic",443):pa(i,"reject",void 0,void 0,void 0,void 0,"udp");const s=da(),a=li(s),o=undefined;[...a.block.geosites,...a.block.domains].length&&pa(i,"reject",a.block.domains,void 0,a.block.geosites);const c=undefined;[...a.block.geoips,...a.block.ips].length&&pa(i,"reject",void 0,a.block.ips,void 0,a.block.geoips);const u=undefined;[...a.bypass.geosites,...a.bypass.domains].length&&pa(i,"direct",a.bypass.domains,void 0,a.bypass.geosites);const l=undefined;[...a.bypass.geoips,...a.bypass.ips].length&&pa(i,"direct",void 0,a.bypass.ips,void 0,a.bypass.geoips);const d=n?"prefer_ipv4":"ipv4_only",w=undefined;return{rules:i,rule_set:s.reduce((e,t)=>(Ea(e,t),e),[]).omitEmpty(),auto_detect_interface:!0,default_domain_resolver:{server:"dns-direct",strategy:d,rewrite_ttl:60},final:"✅ Selector"}}function pa(e,t,r,n,i,s,a,o,c){e.push({rule_set:i||s,domain_suffix:r?.length?r:void 0,ip_cidr:n?.length?n:void 0,network:a,protocol:o,port:c,action:"reject"===t?"reject":"route",outbound:"direct"===t?"direct":void 0})}function Ea(e,t){const{geosite:r,geositeURL:n,geoip:i,geoipURL:s}=t,a=(t,r)=>e.push({type:"remote",tag:t,format:"binary",url:r,download_detour:"direct"});r&&n&&a(r,n),i&&s&&a(i,s)}function Ba(e,t,r,n,i,s,a,o){return{tag:e,type:t,server:r,server_port:n,tcp_fast_open:i,...s,tls:a,transport:o}}function Ha(e,t,r,n,i){const{dict:{_VL_:s},globalConfig:{userID:a,TrPass:o},settings:{fingerprint:c,enableTFO:u}}=globalThis,{host:l,sni:d,allowInsecure:w}=si(r),h=xa("ws","none",ei(e),l,void 0,2560),A=oi(n)?Ta("tls",i,w,d,"http/1.1",c):void 0;return Ba(t,e,r,n,u,e===s?{uuid:a,packet_encoding:"",network:"tcp"}:{password:o,network:"tcp"},A,h)}function ga(e,t,r,n){const{host:i,port:s}=ai(r,!1),{warpIPv6:a,reserved:o,publicKey:c,privateKey:u}=e;return{tag:t,detour:n||void 0,type:"wireguard",address:["172.16.0.2/32",a],mtu:1280,peers:[{address:n?"162.159.192.1":i,port:n?2408:s,public_key:c,reserved:ti(o),allowed_ips:["0.0.0.0/0","::/0"],persistent_keepalive_interval:5}],private_key:u}}function ma(){const{dict:{_VL_:e,_TR_:t,_SS_:r,_VM_:n},settings:{outProxy:i,outProxyParams:{protocol:s,server:a,port:o,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:b}}}=globalThis,{searchParams:R}=new URL(i),v=R.get("ed"),M=v?+v:void 0,k=Ta(A,!1,!1,p||a,g,E,m,y),S=xa(f,T,H,B,x,M);switch(s){case"http":return Ba("",s,a,o,!1,{username:c,password:u});case"socks":return Ba("",s,a,o,!1,{username:c,password:u,version:"5",network:"tcp"});case r:return Ba("",s,a,o,!1,{method:d,password:l,network:"tcp"});case e:return Ba("",s,a,o,!1,{uuid:w,flow:h,network:"tcp"},k,S);case n:return Ba("",s,a,o,!1,{uuid:w,security:"auto",alter_id:b,network:"tcp"},k,S);case t:return Ba("",s,a,o,!1,{password:l,network:"tcp"},k,S);default:return}}function ya(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 Ta(e,t,r,n,i,s,a,o){if(!["tls","reality"].includes(e))return;const c=i?.split(",").filter(e=>"h2"!==e),u={enabled:!0,server_name:n,record_fragment:t,insecure:r,alpn:c,utls:{enabled:!!s,fingerprint:s}};return"tls"===e?u:"reality"===e&&a&&o?{...u,reality:{enabled:!0,public_key:a,short_id:o}}:void 0}function xa(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 ba={type:"tun",tag:"tun-in",address:["172.19.0.1/28"],mtu:9e3,auto_route:!0,strict_route:!0,stack:"mixed"};function Ra(){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,a){const{logLevel:o}=globalThis.settings,c={log:{disabled:"none"===o,level:"none"===o?void 0:"warning"===o?"warn":o,timestamp:!0},dns:await wa(s,a),inbounds:[ba,Ra()],outbounds:[...e,{type:"selector",tag:"✅ Selector",outbounds:r,interrupt_exist_connections:!1},{type:"direct",tag:"direct"}],endpoints:t.omitEmpty(),route:fa(s,a),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=undefined,l=ya(s?"💦 Warp - Best Ping 🚀":"💦 Best Ping 🚀",n,s);return c.outbounds.push(l),s&&c.outbounds.push(ya("💦 WoW - Best Ping 🚀",i,s)),a&&c.outbounds.push(ya("💦 🔗 Best Ping 🚀",i,s)),c}async function Ma(e){const{outProxy:t,ports:r}=globalThis.settings,n=t?ma():void 0,i=!!n,s=[],a=[],o=[],c=Gn(),u=await Yn(e),l=r.filter(t=>!e||oi(t)),d=["💦 Best Ping 🚀"].concatIf(i,"💦 🔗 Best Ping 🚀");c.forEach(t=>{let r=1;l.forEach(c=>{u.forEach(u=>{const l=Qn(r,c,u,t,e,!1),w=Ha(t,l,u,c,e);if(o.push(w),s.push(l),d.push(l),i){const i=Qn(r,c,u,t,e,!0),s=structuredClone(n);s.tag=i,s.detour=l,o.push(s),a.push(i),d.push(i)}r++})})});const w=await va(o,[],d,s,a,!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 ka(e,t){const{warpEndpoints:r}=globalThis.settings,{warpAccounts:n}=await pi(e,t),i=[],s=[],a=[],o=["💦 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),o.push(r,c);const u=ga(n[0],r,e),l=ga(n[1],c,e,r);a.push(u,l)});const c=await va([],a,o,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 Sa(){const{localDNS:e,antiSanctionDNS:t,blockMalware:r,blockPhishing:n,blockCryptominers:i,blockAds:s,blockPorn:a,bypassIran:o,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:a,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:o,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 _a(e,t,r,n,i,s){const{localDNS:a,remoteDNS:o,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 Zn(n,d);h[n]=[...e,...t]}let p=!0,E=r?c:o;t&&(E=`https://${i}/dns-query`,i&&s&&(h[i]=s),p=!1);const B=Ca(E,void 0,void 0,void 0,void 0,"remote-dns");A.push(B);const H=undefined,g=di(Sa()),m=undefined;[...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=Ca(a,[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(Jn).map(e=>`full:${e}`)];if(y.length){const e=Ca(u,y,void 0,p,!0);A.push(e);const{host:t,isHostDomain:r}=ii(u);r&&T.push(`full:${t}`)}if(s?.filter(Jn).forEach(e=>T.push(`full:${e}`)),T.length){const e=Ca(a,T,void 0,p);A.push(e),f.push(...T)}if(w){const e=f.length?Ca("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 Ca(e,t,r,n,i,s){return{address:e,domains:t,expectIPs:r,skipFallback:n,finalQuery:i,tag:s}}function Pa(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"}],a=undefined,o=t?e?"all-chains":"all-proxies":e?"chain":r?"direct":"proxy",c=undefined;Oa(s,["remote-dns"],void 0,void 0,void 0,void 0,void 0,t?"all-proxies":"proxy",t),Oa(s,["dns"],void 0,void 0,void 0,void 0,void 0,"direct",!1),Oa(s,void 0,["geosite:private"],void 0,void 0,void 0,void 0,"direct",!1),Oa(s,void 0,void 0,["geoip:private"],void 0,void 0,void 0,"direct",!1),n||r?i&&Oa(s,void 0,void 0,void 0,443,"udp",void 0,"block",!1):Oa(s,void 0,void 0,void 0,void 0,"udp",void 0,"block",!1);const u=undefined,l=li(Sa()),d=[...l.block.geosites,...l.block.domains.map(e=>`domain:${e}`)];d.length&&Oa(s,void 0,d,void 0,void 0,void 0,void 0,"block");const w=[...l.block.geoips,...l.block.ips];w.length&&Oa(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&&Oa(s,void 0,h,void 0,void 0,void 0,void 0,"direct");const A=[...l.bypass.geoips,...l.bypass.ips];A.length&&Oa(s,void 0,void 0,A,void 0,void 0,void 0,"direct"),r&&(Oa(s,void 0,void 0,void 0,void 0,"tcp",["tls"],"proxy",!1),Oa(s,void 0,void 0,void 0,void 0,"tcp",["http"],"http-fragment",!1),Oa(s,void 0,void 0,void 0,void 0,"udp",["quic"],"udp-noise",!1),Oa(s,void 0,void 0,void 0,"443,2053,2083,2087,2096,8443","udp",void 0,"udp-noise",!1));const f=undefined;return Oa(s,void 0,void 0,void 0,void 0,n||r?"tcp,udp":"tcp",void 0,o,t),s}var Oa=(e,t,r,n,i,s,a,o,c)=>e.push({inboundTag:t,domain:r,ip:n,port:i,network:s,protocol:a,balancerTag:c?o:void 0,outboundTag:c?void 0:o,type:"field"});function La(e,t,r){const n=undefined;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 Ia(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 Da(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 za(e,t,r,n,i,s){const{fragmentPackets:a,fragmentLengthMin:o,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||a,length:n||wi(o,c),interval:i||wi(u,l),maxSplit:wi(d,w)}},E={sockopt:ja(!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 Ua(e,t,r,n){const{settings:{fingerprint:i,enableTFO:s},globalConfig:{userID:a,TrPass:o},dict:{_VL_:c}}=globalThis,u=oi(r),{host:l,sni:d,allowInsecure:w}=si(t),h={network:"ws",...Wa("ws","none",`${ei(e)}?ed=2560`,l),security:u?"tls":"none",tlsSettings:u?Fa(d,i,"http/1.1",w):void 0,sockopt:n?ja(!1,!1,void 0,"fragment"):ja(!0,s,"UseIP")};return Da(e,"proxy",!1,e===c?{vnext:[{address:t,port:r,users:[{id:a,encryption:"none"}]}]}:{servers:[{address:t,port:r,password:o}]},h)}function Na(e,t,r,n){const{warpIPv6:i,reserved:s,publicKey:a,privateKey:o}=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:a,keepAlive:5}],reserved:ti(s),secretKey:o};const l=r?"proxy":n&&"xray"===c?"udp-noise":"",d=l?{sockopt:ja(!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:a}=globalThis.settings;u={...u,wnoise:e,wnoisecount:wi(t,r),wpayloadsize:wi(n,i),wnoisedelay:wi(s,a)}}return{protocol:"wireguard",settings:u,streamSettings:d,tag:r?"chain":"proxy"}}function Xa(){const{dict:{_VL_:e,_TR_:t,_SS_:r,_VM_:n},settings:{outProxyParams:{protocol:i,server:s,port:a,user:o,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:b,authority:R}}}=globalThis,v={network:A||"raw",...Wa(A,T,B,E,x,b,R),security:h,tlsSettings:"tls"===h?Fa(f||s,p,H,!1):void 0,realitySettings:"reality"===h?Ka(f,p,g,m,y):void 0,sockopt:ja(!1,!1,"UseIPv4","proxy")},M=!("reality"===h||"grpc"===A);switch(i){case"http":case"socks":return Da(i,"chain",M,{servers:[{address:s,port:a,users:[{user:o,pass:c}]}]},v);case r:return Da(i,"chain",M,{servers:[{address:s,port:a,method:l,password:u}]},v);case e:return Da(i,"chain",M,{vnext:[{address:s,port:a,users:[{id:d,flow:w,encryption:"none"}]}]},v);case n:return Da(i,"chain",M,{vnext:[{address:s,port:a,users:[{id:d,security:"auto"}]}]},v);case t:return Da(i,"chain",M,{servers:[{address:s,port:a,password:u}]},v);default:return}}function Wa(e,t,r="/",n,i,s,a){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:a,multiMode:"multi"===s,serviceName:i}};default:return{}}}function ja(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 Fa(e,t,r,n){return{serverName:e,fingerprint:t,alpn:r?.split(","),allowInsecure:n}}function Ka(e,t,r,n,i){return{serverName:e,fingerprint:t,publicKey:r,shortId:n,spiderX:i,show:!1,allowInsecure:!1}}function Ja(e,t,r){return{tag:e,selector:[t],strategy:{type:"leastPing"},fallbackTag:r?"proxy-2":void 0}}async function Za(e,t,r,n,i,s,a,o,c,u,l){const{fakeDNS:d,bestWarpInterval:w,bestVLTRInterval:h,logLevel:A,allowLANConnection:f}=globalThis.settings;let p,E;r&&(p=[Ja("all-proxies","proxy",i)].concatIf(n,Ja("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=undefined;return{remarks:e,version:{min:"25.10.15"},log:{loglevel:A},dns:await _a(o,a,s,c,u,l),inbounds:[La(f,a,d),Ia(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:Pa(n,r,a,s),balancers:p},observatory:E,policy:{levels:{0:{connIdle:300,handshake:4,uplinkOnly:1,downlinkOnly:1}},system:{statsOutboundUplink:!0,statsOutboundDownlink:!0}},stats:{}}}async function Va(e,t,r,n,i){const s=!!n.length,a=undefined,o=`💦 ${s?"🔗 ":""}Best Ping F 🚀`,c=[...n,...r];if(i){const e=za(!0,!1,"fragment");c.push(e)}const u=await Za(o,c,!0,s,!0,!1,!1,t);s&&await Va(e,t,r,[],i),e.push(u)}async function Ga(e,t,r){const{httpConfig:{hostName:n},settings:{fragmentIntervalMin:i,fragmentIntervalMax:s}}=globalThis,a=!!r,o=[],c=undefined;["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(a){const e=$a(r,`chain-${n+1}`,`proxy-${n+1}`);o.push(e)}const c=$a(t,`proxy-${n+1}`,`fragment-${n+1}`),u=undefined,l=za(!0,!1,`fragment-${n+1}`,e,wi(i,s));o.push(c,l)});const u=a?"🔗 ":"",l=await Za(`💦 ${u}Best Fragment 😎`,o,!0,a,!1,!1,!1,[],n);r&&await Ga(e,t),e.push(l)}async function Ya(e){const t=za(!0,!1,"proxy"),r=za(!1,!0,"udp-noise"),n=undefined,i=[t,za(!0,!1,"http-fragment",void 0,void 0,"1-1"),r],s=await Za("💦 1 - Workerless ⭐",i,!1,!1,!1,!1,!0,[],void 0,"cloudflare-dns.com",["cloudflare.com"]),a=await Za("💦 2 - Workerless ⭐",i,!1,!1,!1,!1,!0,[],void 0,"dns.google",["8.8.8.8","8.8.4.4"]);e.push(s,a)}async function Qa(e){const{outProxy:t,ports:r}=globalThis.settings,n=t?Xa():void 0,i=await Yn(e),s=r.filter(t=>!e||oi(t)),a=Gn(),o=[],c=[],u=[],l=e?[za(!0,!1,"fragment")]:[];let d=1;for(const t of a){let r=1;for(const a of s)for(const s of i){const i=Ua(t,s,a,e),w=[i,...l],h=$a(i,`proxy-${d}`);c.push(h);const A=Qn(r,a,s,t,e,!1),f=await Za(A,w,!1,!1,!1,!1,!1,[s]);if(o.push(f),n){const i=Qn(r,a,s,t,e,!0),c=await Za(i,[n,...w],!1,!0,!1,!1,!1,[s]);o.push(c);const l=$a(n,`chain-${d}`,`proxy-${d}`);u.push(l)}r++,d++}}return await Va(o,i,c,u,e),e&&(await Ga(o,c[0],n),await Ya(o)),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 qa(e,t,r,n){const{warpEndpoints:i}=globalThis.settings,{warpAccounts:s}=await pi(e,t),a=r?" Pro ":" ",o=[],c=[],u=[],l=[],d=r&&!n?[za(!1,!0,"udp-noise")]:[];for(const[e,t]of i.entries()){const{host:n}=ai(t);Jn(n)&&l.push(n);const i=Na(s[0],t,!1,r),w=Na(s[1],t,!0,r),h=await Za(`💦 ${e+1} - Warp${a}🇮🇷`,[i,...d],!1,!1,!1,!0,!1,[n]),A=await Za(`💦 ${e+1} - WoW${a}🌍`,[w,i,...d],!1,!0,!1,!0,!1,[n]);o.push(h,A);const f=$a(i,`proxy-${e+1}`);c.push(f);const p=$a(w,`chain-${e+1}`,`proxy-${e+1}`);u.push(p)}const w=await Za(`💦 Warp${a}- Best Ping 🚀`,[...c,...d],!0,!1,!1,!0,!1,l),h=await Za(`💦 WoW${a}- Best Ping 🚀`,[...u,...c,...d],!0,!0,!1,!0,!1,l);return o.push(w,h),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"}})}function $a(e,t,r){const n=structuredClone(e);return n.tag=t,r&&n.streamSettings&&(n.streamSettings.sockopt.dialerProxy=r),n}import{connect as eo}from"cloudflare:sockets";var to=1,ro=2;async function no(e,t,r,n,i,s,a){async function o(t,r){const i=eo({hostname:t,port:r});e.value=i,a(`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){a(`direct connection failed, trying to use Proxy IP for ${t}`);const e=undefined,i=w(n?.length?n:h(c)??u),{host:s,port:o}=ai(i,!0);t=s||t,r=o||r}else if("prefix"===e){a(`direct connection failed, trying to generate dynamic prefix for ${t}`);const e=undefined,r=w(n?.length?n:h(l)??d),s=await uo(t,r);s?t=s:i.close(1011,"Retry connection failed: Invalid Prefix")}try{const e=await o(t,r);e.closed.catch(e=>console.log("retry TCP socket closed error",e)).finally(()=>co(i)),io(e,i,s,null,a)}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=undefined;io(await o(t,r),i,s,c,a)}catch(e){const t=e instanceof Error?e.message:String(e);console.error(`Connection failed: ${e}`),i.close(1011,`Connection failed: ${t}`)}}async function io(e,t,r,n,i){let s=r,a=!1;const o=new WritableStream({start(){},async write(e,r){a=!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 ${a}`)},abort(t){console.error("remoteConnection.readable abort",t),oo(e)}});try{await e.readable.pipeTo(o)}catch(r){console.error("VLRemoteSocketToWS has exception.",r),oo(e),co(t)}!1===a&&n&&(i("retry"),n())}function so(e,t,r){let n=!1;const i=undefined;return new ReadableStream({start(i){e.addEventListener("message",e=>{if(n)return;const t=e.data;i.enqueue(t)}),e.addEventListener("close",()=>{co(e),n||i.close()}),e.addEventListener("error",e=>{r("webSocketServer has error"),i.error(e)});const{earlyData:s,error:a}=ao(t);a?i.error(a):s&&i.enqueue(s)},pull(e){},cancel(t){n||(r(`ReadableStream was canceled, due to ${t}`),n=!0,co(e))}})}function ao(e){if(!e)return{earlyData:null,error:null};try{e=e.replace(/-/g,"+").replace(/_/g,"/");const t=atob(e),r=undefined;return{earlyData:Uint8Array.from(t,e=>e.charCodeAt(0)).buffer,error:null}}catch(e){return{earlyData:null,error:e}}}function oo(e){if(e)try{e.close()}catch(e){console.error("Failed to close TCP socket:",e)}}function co(e){try{1!==e.readyState&&2!==e.readyState||e.close()}catch(e){console.error("safeCloseWebSocket error",e)}}async function uo(e,t){let r=e;if(!ri(e)){const{ipv4:t}=await Zn(e,!0);if(!t.length)throw new Error("Unable to find IPv4 in DNS records");r=t[0]}return lo(r,t)}function lo(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 wo(e){const t=new WebSocketPair,[r,n]=Object.values(t);n.accept();let i="",s="";const a=(e,t)=>{console.log(`[${i}:${s}] ${e}`,t||"")},o=e.headers.get("sec-websocket-protocol")||"",c=so(n,o,a);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:o,portRemote:c=443,addressRemote:w="",rawDataIndex:h,VLVersion:A=new Uint8Array([0,0]),isUDP:f}=ho(e,t);if(i=w,s=`${c}--${Math.random()} ${f?"udp ":"tcp "} `,r)throw new Error(o);const p=new Uint8Array([A[0],0]),E=e.slice(h);if(f){if(53===c){d=!0;const{write:e}=await po(n,p,a);return l=e,void l(E)}throw new Error("UDP proxy only enable for DNS which is port 53")}no(u,w,c,E,n,p,a)},close(){oo(u.value)},abort(e){a("readableWebSocketStream is abort",JSON.stringify(e))}});return c.pipeTo(w).catch(e=>{a("readableWebSocketStream pipeTo error",e),oo(u.value)}),new Response(null,{status:101,webSocket:r})}function ho(e,t){if(e.byteLength<24)return{hasError:!0,message:"invalid data"};const r=new Uint8Array(e.slice(0,1)),n=undefined,i=undefined,s=undefined;if(!(fo(new Uint8Array(e.slice(1,17)))===t))return{hasError:!0,message:"invalid user"};const a=new Uint8Array(e.slice(17,18))[0],o=new Uint8Array(e.slice(18+a,18+a+1))[0];let c=!1;if(1===o);else{if(2!==o)return{hasError:!0,message:`command ${o} is not support, command 01-tcp,02-udp,03-mux`};c=!0}const u=18+a+1,l=e.slice(u,u+2),d=new DataView(l).getUint16(0);let w=u+2;const h=undefined,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:`invild 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 Ao(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 fo(e,t=0){const r=Ao(e,t);if(!Ai(r))throw TypeError("Stringified UUID is invalid");return r}async function po(e,t,r){let n=!1;const i=new TransformStream({start(e){},transform(e,t){for(let r=0;r>8&255,255&c]);1===e.readyState&&(r(`doh success and dns message length is ${c}`),n?e.send(await new Blob([u,o]).arrayBuffer()):(e.send(await new Blob([t,u,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 Eo(e){const t=new WebSocketPair,[r,n]=Object.values(t);n.accept();let i="",s="";const a=(e,t)=>{console.log(`[${i}:${s}] ${e}`,t||"")},o=e.headers.get("sec-websocket-protocol")||"",c=so(n,o,a);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:o,portRemote:c=443,addressRemote:d="",rawClientData:w}=Bo(e);if(i=d,s=`${c}--${Math.random()} tcp`,r)throw new Error(o);no(u,d,c,w,n,null,a)},close(){oo(u.value)},abort(e){a("readableWebSocketStream is aborted",JSON.stringify(e))}});return c.pipeTo(d).catch(e=>{a("readableWebSocketStream pipeTo error",e),oo(u.value)}),new Response(null,{status:101,webSocket:r})}function Bo(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!==Ho(s))return{hasError:!0,message:"invalid password"};const a=e.slice(58);if(a.byteLength<6)return{hasError:!0,message:"invalid SOCKS5 request data"};const o=new DataView(a),c=undefined;if(1!==o.getUint8(0))return{hasError:!0,message:"unsupported command, only TCP (CONNECT) is allowed"};const u=o.getUint8(1);let l=0,d=2,w="";switch(u){case 1:l=4,w=new Uint8Array(a.slice(d,d+l)).join(".");break;case 3:l=new Uint8Array(a.slice(d,d+1))[0],d+=1,w=(new TextDecoder).decode(a.slice(d,d+l));break;case 4:{l=16;const e=new DataView(a.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=a.slice(h,h+2),f=undefined;return{hasError:!1,addressRemote:w,portRemote:new DataView(A).getUint16(0),rawClientData:a.slice(h+4)}}function Ho(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=undefined,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),a=8*s.length;for(s.push(128);s.length%64!=56;)s.push(0);const o=Math.floor(a/4294967296),c=4294967295&a;for(let e=3;e>=0;e--)s.push(o>>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[a,o,c,u,l,d,w,h]=r;for(let e=0;e<64;e++){const r=undefined,s=undefined,A=h+(t(l,6)^t(l,11)^t(l,25))+(l&d^~l&w)+n[e]+i[e]|0,f=undefined,p=a&o^a&c^o&c,E=undefined;h=w,w=d,d=l,l=u+A|0,u=c,c=o,o=a,a=A+((t(a,2)^t(a,13)^t(a,22))+p|0)|0}r[0]=r[0]+a|0,r[1]=r[1]+o|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 go=Wn(jn(),1);async function mo(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 wo(e);case"tr":return await Eo(e);default:return await So(e)}}catch(e){return new Response("Failed to parse WebSocket path config",{status:400})}}async function yo(e,t){const{pathName:r}=globalThis.globalConfig;switch(r){case"/panel":return await Oo(e,t);case"/panel/settings":return await ko(e,t);case"/panel/update-settings":return await vo(e,t);case"/panel/reset-settings":return await Mo(e,t);case"/panel/reset-password":return await Js(e,t);case"/panel/my-ip":return await _o(e);case"/panel/update-warp":return await Do(e,t);case"/panel/get-warp-configs":return await Co(e,t);default:return await So(e)}}async function To(e){const t=e instanceof Error?e.message:String(e),r=undefined,n=(await zo("H4sIAAAAAAAAA4VU0W7TMBT9FW+IdZXqpu02tCWOJQYFIW3atI4HnirXvklMHTuy3bSl6h/wC/wcX4KcZGxjIJTEis+N7z33+MTk4P3Nu/svt1NU+FJREkakmM5T0JQUwAQlJXiGeMGsA59+vv+AzztMsxLSWsK6MtYjbrQH7dPDtRS+SAXUkgNuJgOppZdMYceZgnR8SImXXgG9vL1Et0yDQvXpcDQck6jFiZJ6iSyoVHKjUWEhS6OM1WE2lNxQ4vxWAY2tMX6HMTfK2HihGF8mGAfaYDvw1ejizclFlmC8YHyZW7PS4iGUZQ1u7JPPhRCPKVzBhFnHk2qDwnNabZDNF+x4NEDdPZyc9fcLI7aDIN2uAJkXPh6PRq+TpvX2tWQ2lzoeJUK6SrFtnCnYJF9XzstsizvlYg7ag02YkrnG0kPpHqDMaI8zVkq1jd3WeSjxSiYt45rZ406BfvKixzb6J9xPPGw8bip1NZomhoLZJS6NgN+irgvp4YWoJ6cX5+8v/yrqeBKu/2s4OTsboMehVbIY757yflq049ylexZvsf6e/XvxPthG72qwXnKmutZLKYSCpNu1EwvlnkSttUjUuj/IQomQNZIiBWuNbfaLSQ2WkmJMiSxzxBVzrjWrs/yZVxFTPj0MTr8yuTmk6NH0xFVMh7xVmOIarJMhQyCQNnvu5DeIXcmUAksf/pGwKvAbN7woKSb054/vaGZK8IXUOVqD9mhtjc4PSFRMKKkoWdD5fHp3d3M3v57OZm8/TudzEi0oiSpKoiZNOzpuZeWpMpypmTeW5TDMwX/yUB73gj2ujYBeH6Vpinqg2UKB6KGjIyQMX5Wg/bAxUiPIlXR+yIRoFza+6vUTEnU1SNSKGzVnzy/ue2s/iwQAAA==",!0)).replace("__ERROR_MESSAGE__",t);return new Response(n,{status:200,headers:{"Content-Type":"text/html; charset=utf-8"}})}async function xo(e,t){const{pathName:r}=globalThis.globalConfig;return"/login"===r?await Lo(e,t):"/login/authenticate"===r?await js(e,t):await So(e)}function bo(){return fi(!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 Ro(e,t){await gi(e,t);const{globalConfig:{pathName:r},httpConfig:{client:n,subPath:i}}=globalThis;switch(r){case`/sub/normal/${i}`:switch(n){case"xray":return await Qa(!1);case"sing-box":return await Ma(!1);case"clash":return await ua();default:break}case`/sub/fragment/${i}`:switch(n){case"xray":return await Qa(!0);case"sing-box":return await Ma(!0);default:break}case`/sub/warp/${i}`:switch(n){case"xray":return await qa(e,t,!1,!1);case"sing-box":return await ka(e,t);case"clash":return await la(e,t,!1);default:break}case`/sub/warp-pro/${i}`:switch(n){case"xray":return await qa(e,t,!0,!1);case"xray-knocker":return await qa(e,t,!0,!0);case"clash":return await la(e,t,!0);default:break}default:return await So(e)}}async function vo(e,t){if("PUT"!==e.method)return fi(!1,405,"Method not allowed.");const r=undefined;if(!await Ks(e,t))return fi(!1,401,"Unauthorized or expired session.");const n=undefined;return fi(!0,200,"",await Ei(e,t))}async function Mo(e,t){if("POST"!==e.method)return fi(!1,405,"Method not allowed!");const r=undefined;if(!await Ks(e,t))return fi(!1,401,"Unauthorized or expired session.");try{const{settings:e}=globalThis;return await t.kv.put("proxySettings",JSON.stringify(e)),fi(!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 ko(e,t){const r=Boolean(await t.kv.get("pwd")),n=undefined;if(!await Ks(e,t))return fi(!1,401,"Unauthorized or expired session.",{isPassSet:r});const i=await pi(e,t),{subPath:s}=globalThis.httpConfig,a=undefined;return fi(!0,200,void 0,{proxySettings:i.settings,isPassSet:r,subPath:s})}async function So(e){const{fallbackDomain:t}=globalThis.globalConfig,{url:r,method:n,headers:i,body:s}=e,a=new URL(r);a.hostname=t,a.protocol="https:";const o=new Request(a.toString(),{method:n,headers:i,body:s,redirect:"manual"});return await fetch(o)}async function _o(e){const t=await e.text();try{const e=await fetch(`http://ip-api.com/json/${t}?nocache=${Date.now()}`),r=undefined;return fi(!0,200,"",await e.json())}catch(e){const t=e instanceof Error?e.message:String(e);return console.error("Error fetching IP address:",e),fi(!1,500,`Error fetching IP address: ${t}`)}}async function Co(e,t){const{httpConfig:{client:r},dict:{_project_:n}}=globalThis,i="amnezia"===r,s=undefined;if(!await Ks(e,t))return new Response("Unauthorized or expired session.",{status:401});const{warpAccounts:a,settings:o}=await pi(e,t),{warpIPv6:c,publicKey:u,privateKey:l}=a[0],{warpEndpoints:d,warpRemoteDNS:w,amneziaNoiseCount:h,amneziaNoiseSizeMin:A,amneziaNoiseSizeMax:f}=o,p=new go.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 Po(){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 Oo(e,t){const r=undefined;if(await t.kv.get("pwd")){const r=undefined;if(!await Ks(e,t)){const{urlOrigin:e}=globalThis.httpConfig;return Response.redirect(`${e}/login`,302)}}const n=await zo("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",!1);return new Response(n,{headers:{"Content-Type":"text/html; charset=utf-8"}})}async function Lo(e,t){const r=undefined;if(await Ks(e,t)){const{urlOrigin:e}=globalThis.httpConfig;return Response.redirect(`${e}/panel`,302)}const n=await zo("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",!1);return new Response(n,{headers:{"Content-Type":"text/html; charset=utf-8"}})}async function Io(){const e=await zo("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",!1);return new Response(e,{headers:{"Content-Type":"text/html; charset=utf-8"}})}async function Do(e,t){if("POST"===e.method){const r=undefined;if(!await Ks(e,t))return fi(!1,401,"Unauthorized.");try{return await Fn(t),fi(!0,200,"Warp configs updated successfully!")}catch(e){const t=e instanceof Error?e.message:String(e);return console.log(e),fi(!1,500,`An error occurred while updating Warp configs: ${t}`)}}return fi(!1,405,"Method not allowd.")}async function zo(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=undefined;return(new TextDecoder).decode(e)}return n}var Uo={async fetch(e,t){try{const r=e.headers.get("Upgrade");if(mi(e,t),"websocket"===r)return yi(t),await mo(e);{Ti(e,t);const{pathName:r}=globalThis.globalConfig,n=undefined;switch(r.split("/")[1]){case"panel":return await yo(e,t);case"sub":return await Ro(e,t);case"login":return await xo(e,t);case"logout":return bo();case"secrets":return await Io();case"favicon.ico":return await Po();default:return await So(e)}}}catch(e){return await To(e)}}};export{Uo as default}; --------------------------------------------------------------------------------